glimmervoid 0.46.2-next.108 → 0.46.2-next.110
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{benchmark-panel-Bmf8WufS.js → benchmark-panel-7Mwp8_8N.js} +1 -1
- package/dist/client/assets/benchmark-panel-7Mwp8_8N.js.br +0 -0
- package/dist/client/assets/{dialogs-DptiGdfe.js → dialogs-2TynuBlk.js} +1 -1
- package/dist/client/assets/dialogs-2TynuBlk.js.br +0 -0
- package/dist/client/assets/{hooks-panel-BwrhLLIn.js → hooks-panel-z3cBAfkm.js} +1 -1
- package/dist/client/assets/hooks-panel-z3cBAfkm.js.br +0 -0
- package/dist/client/assets/index-B_EPfadE.js +84 -0
- package/dist/client/assets/index-B_EPfadE.js.br +0 -0
- package/dist/client/assets/{issues-panel-BhuCDEyX.js → issues-panel-DDlmaCMc.js} +1 -1
- package/dist/client/assets/issues-panel-DDlmaCMc.js.br +0 -0
- package/dist/client/assets/{plan-face-BsH5T_uv.js → plan-face-CUPpYxiG.js} +1 -1
- package/dist/client/assets/plan-face-CUPpYxiG.js.br +0 -0
- package/dist/client/assets/{pr-scope-tabs-CNYKLxsm.js → pr-scope-tabs-BVTTAk2l.js} +1 -1
- package/dist/client/assets/pr-scope-tabs-BVTTAk2l.js.br +0 -0
- package/dist/client/assets/{radar-panel-BKVc261N.js → radar-panel-DvRmklxX.js} +1 -1
- package/dist/client/assets/radar-panel-DvRmklxX.js.br +0 -0
- package/dist/client/assets/{review-queue-panel-DMh7Hv1B.js → review-queue-panel-CDNG-Bbp.js} +1 -1
- package/dist/client/assets/review-queue-panel-CDNG-Bbp.js.br +0 -0
- package/dist/client/assets/{settings-panel-Dsrc7QAk.js → settings-panel-BlCmPEk0.js} +2 -2
- package/dist/client/assets/settings-panel-BlCmPEk0.js.br +0 -0
- package/dist/client/assets/{trace-panel-LtmXs5te.js → trace-panel-svTuppEP.js} +1 -1
- package/dist/client/assets/trace-panel-svTuppEP.js.br +0 -0
- package/dist/client/assets/{usage-panel-CjtZdXoM.js → usage-panel-CEZmDrzW.js} +1 -1
- package/dist/client/assets/usage-panel-CEZmDrzW.js.br +0 -0
- package/dist/client/assets/{visions-panel-BWqMEjJh.js → visions-panel-DW5taW_d.js} +1 -1
- package/dist/client/assets/visions-panel-DW5taW_d.js.br +0 -0
- package/dist/client/index.html +1 -1
- package/dist/client/index.html.br +0 -0
- package/package.json +1 -1
- package/dist/client/assets/benchmark-panel-Bmf8WufS.js.br +0 -0
- package/dist/client/assets/dialogs-DptiGdfe.js.br +0 -0
- package/dist/client/assets/hooks-panel-BwrhLLIn.js.br +0 -0
- package/dist/client/assets/index-mxFb58g8.js +0 -84
- package/dist/client/assets/index-mxFb58g8.js.br +0 -0
- package/dist/client/assets/issues-panel-BhuCDEyX.js.br +0 -0
- package/dist/client/assets/plan-face-BsH5T_uv.js.br +0 -0
- package/dist/client/assets/pr-scope-tabs-CNYKLxsm.js.br +0 -0
- package/dist/client/assets/radar-panel-BKVc261N.js.br +0 -0
- package/dist/client/assets/review-queue-panel-DMh7Hv1B.js.br +0 -0
- package/dist/client/assets/settings-panel-Dsrc7QAk.js.br +0 -0
- package/dist/client/assets/trace-panel-LtmXs5te.js.br +0 -0
- package/dist/client/assets/usage-panel-CjtZdXoM.js.br +0 -0
- package/dist/client/assets/visions-panel-BWqMEjJh.js.br +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dialogs-2TynuBlk.js","assets/dom-helpers-B98sy9ep.js","assets/zod-BRLv4KqJ.js","assets/control-ws-C8SS9PPx.js","assets/poll-ago-DdlzkUaM.js","assets/action-status-D9Sf2cZp.js","assets/modal-5t7_5VCF.js","assets/plan-face-CUPpYxiG.js","assets/roving-keys-core-BDobx2It.js","assets/plan-face-BKvWQchw.css","assets/review-queue-panel-CDNG-Bbp.js","assets/ui-prefs-Dvsgw_ZF.js","assets/pr-scope-tabs-BVTTAk2l.js","assets/review-queue-panel-Dfky79CM.css","assets/issues-panel-DDlmaCMc.js","assets/issues-panel-CPjbxcmf.css","assets/usage-panel-CEZmDrzW.js","assets/usage-panel-DNM1lX5J.css","assets/radar-panel-DvRmklxX.js","assets/radar-panel-DZnRUVtP.css","assets/visions-panel-DW5taW_d.js","assets/visions-panel-pBP6aaaP.css","assets/hooks-panel-z3cBAfkm.js","assets/hooks-panel-vO6hRv8A.css","assets/trace-panel-svTuppEP.js","assets/trace-panel-8Txvz14_.css","assets/benchmark-panel-7Mwp8_8N.js","assets/benchmark-panel-DDwPBdjB.css","assets/settings-panel-BlCmPEk0.js","assets/settings-panel-DF9_cNvu.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{l as e,m as t,n,o as r,s as i,u as a}from"./zod-BRLv4KqJ.js";import{$ as o,An as s,At as c,C as l,Ct as u,Dn as d,Dt as f,En as p,Et as m,F as h,Gt as g,Ht as _,I as v,Jt as y,Kt as b,L as x,Mn as S,N as C,Nn as w,O as T,On as E,Pn as ee,Qt as D,R as te,Rt as ne,S as re,Tt as ie,Ut as ae,Wt as oe,Xt as se,Zt as ce,_ as le,_t as ue,b as de,c as fe,d as pe,en as me,f as he,g as ge,h as O,ht as _e,j as ve,jt as ye,kt as be,l as xe,m as k,mt as Se,n as Ce,o as A,qt as we,rt as Te,s as Ee,t as De,tn as Oe,v as ke,wn as Ae,wt as je,x as Me,y as Ne,yt as Pe,z as Fe}from"./dom-helpers-B98sy9ep.js";import{S as Ie,_ as Le,a as Re,b as ze,c as Be,d as Ve,f as He,g as Ue,h as We,i as Ge,l as j,m as Ke,n as qe,o as Je,p as Ye,r as Xe,s as Ze,t as Qe,u as M,v as $e,x as et,y as tt}from"./control-ws-C8SS9PPx.js";import{a as nt,c as rt,d as N,f as P,i as it,l as at,m as F,n as ot,o as st,p as ct,s as lt,u as ut}from"./poll-ago-DdlzkUaM.js";import{C as dt,Ct as ft,Dt as pt,E as mt,J as ht,K as gt,O as _t,Ot as vt,Q as yt,R as bt,St as xt,T as St,Tt as Ct,U as wt,Y as Tt,Z as Et,_ as Dt,_t as Ot,a as kt,at as At,b as jt,bt as Mt,c as Nt,ct as Pt,d as Ft,et as It,f as Lt,ft as Rt,gt as zt,h as Bt,ht as Vt,i as Ht,it as Ut,k as Wt,m as Gt,mt as Kt,n as qt,o as Jt,ot as Yt,p as Xt,pt as Zt,q as Qt,rt as $t,s as en,t as tn,u as nn,ut as rn,v as an,vt as on,w as sn,wt as cn,x as ln,xt as un,y as dn,yt as fn,z as pn}from"./ui-prefs-Dvsgw_ZF.js";import{C as mn,T as hn,c as gn,g as _n,h as vn,i as yn,m as bn,n as xn,o as I,p as Sn,r as Cn,s as wn,t as Tn,u as En,w as Dn}from"./action-status-D9Sf2cZp.js";import{A as On,C as kn,D as An,E as jn,F as Mn,I as Nn,L as Pn,M as Fn,N as In,O as Ln,P as Rn,R as zn,S as Bn,T as Vn,_ as Hn,a as Un,b as Wn,c as Gn,d as Kn,f as qn,g as Jn,h as Yn,i as Xn,j as Zn,k as Qn,l as $n,m as er,n as tr,o as nr,p as rr,r as ir,s as ar,t as or,u as sr,v as cr,w as lr,x as ur,y as dr,z as fr}from"./card-dom-BeRjc5Sk.js";import{n as pr,t as mr}from"./roving-keys-core-BDobx2It.js";import{a as hr,i as gr,n as _r,r as vr,t as yr}from"./modal-5t7_5VCF.js";(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),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var br=new Map,xr=new Set;function Sr(e){let t=me.safeParse(e);if(!t.success)Be(`reviews`,`dropped github-prs: ${Ie(t.error.issues)}`);else{br=new Map(Object.entries(t.data.prs));for(let e of xr)e()}}function Cr(e){return br.get(e.toLowerCase())}function wr(e){xr.add(e)}function Tr(e){return e===`remote`?`remote`:`local`}function Er(e,t){return Tr(t)===`local`||e!==`shutdown`}var Dr=Object.freeze({setTimeoutFn:(e,t)=>setTimeout(e,t),clearTimeoutFn:e=>clearTimeout(e),setIntervalFn:(e,t)=>setInterval(e,t),clearIntervalFn:e=>clearInterval(e)});function Or(e){return typeof e!=`object`||!e||!(`unref`in e)||typeof e.unref!=`function`||e.unref(),e}function kr({mode:e,delayMs:t,run:n,setTimeoutFn:r=Dr.setTimeoutFn,clearTimeoutFn:i=Dr.clearTimeoutFn,unref:a=!0}){let o=null;function s(){o&&=(i(o),null)}function c(){e===`leading`&&o||(s(),o=r(()=>{o=null,n()},t),a&&Or(o))}return{schedule:c,cancel:s,get isArmed(){return o!==null}}}function Ar(e){return`Git tracks an old Glimmervoid post-turn report in ${e===1?`1 repository`:`${e} repositories`}. Nothing reads it, so run this to stop git tracking it and commit the deletion git then shows. Glimmervoid deletes the file itself on its next start:`}var jr=Object.freeze({layout:`desktop`,activeView:`focus`,phoneScreen:null,focusedSessionId:null,selectedSessionId:null,borrowedCardId:null}),Mr=e=>e||null,Nr=Object.freeze({setLayout:e=>({layout:e}),setActiveView:e=>({activeView:e}),setPhoneScreen:e=>({phoneScreen:Mr(e)}),focusSession:e=>({focusedSessionId:Mr(e)}),selectSession:e=>({selectedSessionId:Mr(e)}),borrowCard:e=>({borrowedCardId:Mr(e)})});function Pr(e){let t=Object.freeze({...jr,...e}),n=new Set;function r(){return t}function i(e){return typeof e==`function`?(n.add(e),()=>n.delete(e)):()=>{}}function a(e){let n=[];for(let r of Object.keys(e)){if(!(r in jr))throw Error(`ui-state: unknown key "${r}"`);Object.is(t[r],e[r])||n.push(r)}return n}function o(e,r){let i=Nr[e];if(!i)throw Error(`ui-state: unknown action "${e}"`);let o=i(r),s=a(o);if(s.length===0)return t;let c=t;t=Object.freeze({...t,...o});for(let e of n)try{e(t,s,c)}catch{}return t}return{snapshot:r,subscribe:i,dispatch:o}}var L=Pr(),Fr=()=>L.snapshot().activeView;function Ir(){return L.snapshot().borrowedCardId}function Lr(e,t,n,{className:r}={}){if(!e?.card||!n)return;let i=Ir();i&&i!==t&&Rr();let a=e.card;a._cardHostClass&&a._cardHostClass!==r&&a.classList.remove(a._cardHostClass),a._cardHostClass=r||``,r&&a.classList.add(r),De(a,n),L.dispatch(`borrowCard`,t),e._ensureTerminalReady?.(),e._setBorrowed?.(!0),e._showPreferredFace?.()}function Rr(){let e=Ir();if(L.dispatch(`borrowCard`,null),!e)return null;let t=F.get(e);t?._showTerminalFace?.(),t?._setBorrowed?.(!1),t?._setActiveViewer?.(!1);let n=t?.card;return n&&(n._cardHostClass&&n.classList.remove(n._cardHostClass),delete n._cardHostClass,ge(n,ut)),e}var zr=68,Br=42,Vr=768,Hr=.68,Ur=64,Wr=5,Gr=8,Kr=85;function qr(e,t,n){return Math.min(Math.max(e,t),n)}function Jr({viewportWidthPx:e,viewportHeightPx:t,verticalProgress:n,isRightToLeft:r=!1,arcProgress:i=0}){let a=qr(e/Vr,Hr,1),o=(Wr+70*n*n)*t/100,s=Math.max(o,Ur),c=Kr*t/100,l=qr(i*Gr*t/100,Ur-s,c-s),u=-.45*e,d=1.45*e;return{scale:a,spriteWidthPx:zr,spriteHeightPx:Br,topPx:s,startXpx:r?d:u,endXpx:r?u:d,facing:r?-1:1,arcPx:l}}function Yr(e,t){let n=Number.isFinite(t)&&t>0?t:1;return Math.max(1,Math.round(e*n))/n}function Xr(e,t,n){let r=Yr(e.scale*t,n);return[[`--nyan-top`,`${e.topPx}px`],[`--nyan-scale`,String(r)],[`--nyan-width`,`${e.spriteWidthPx}px`],[`--nyan-height`,`${e.spriteHeightPx}px`],[`--nyan-start-x`,`${e.startXpx}px`],[`--nyan-end-x`,`${e.endXpx}px`],[`--nyan-facing`,String(e.facing)],[`--nyan-arc`,`${e.arcPx}px`],[`--nyan-travel`,`${Math.abs(e.endXpx-e.startXpx)/r}px`]]}var Zr=Jr({viewportWidthPx:1440,viewportHeightPx:900,verticalProgress:0});function Qr(e,t=``){let n=A(`div`,`flying-animal-preview ${t}`.trim());n.setAttribute(`aria-hidden`,`true`),n.style.setProperty(`--nyan-width`,`${Zr.spriteWidthPx}px`),n.style.setProperty(`--nyan-height`,`${Zr.spriteHeightPx}px`);let r=A(`div`,`flying-animal-preview-stage`);return r.append(A(`div`,`nyan-trail ${e.trail}`),A(`div`,`nyan-sprite ${e.sprite}`)),n.append(r),n}function $r(){let e=pt(Ht().flyingAnimalsExcludedSprites);return e===null?null:vt[e]??null}var ei=[],ti=new Set;function ni(e){let t=m.safeParse(e);if(t.success){ei=t.data;for(let e of ti)e()}}function ri(e){return ei.find(t=>t.agent===e)??null}function ii(e){return ti.add(e),()=>{ti.delete(e)}}function ai(e,t=`explicit-state`){let n=t===`dormant-fallback`?e||b.DORMANT:e;return n===b.DORMANT?`start-session`:n===b.COMPLETE?`dismiss`:null}function oi({previousState:e,nextState:t,isPhoneLayout:n,isDocumentVisible:r,isDocumentFocused:i,isActiveViewer:a,hasFocusInsideTerminal:o}){return t!==b.COMPLETE||!e||e===b.COMPLETE||!r?!1:n?a:i&&o}function si(e,t){if(!e)return null;let n=t.get(e);return!n||(n.currentState||b.DORMANT)===b.DORMANT?null:e}function ci(e,t){if(e===t)return!0;let n=`${t} (`;if(!e.startsWith(n)||!e.endsWith(`)`))return!1;let r=e.slice(n.length,-1);return/^\d+$/.test(r)}function li(e,t){let n=0;for(let r of t)ci(r,e)&&n++;return n}function ui(e,t){let n=new Set(t);if(!n.has(e))return e;for(let t=2;t<1e3;t++){let r=`${e} (${t})`;if(!n.has(r))return r}return`${e} (${Date.now()})`}function di(){let e=[];for(let[,t]of F)e.push(t.card.dataset.session??``);return e}function fi(e){return li(e,di())}function pi(e){return ui(e??``,di())}function R(){return L.snapshot().selectedSessionId}function mi(e){L.dispatch(`selectSession`,e)}function hi(e){return L.subscribe((t,n)=>{n.includes(`selectedSessionId`)&&e(t.selectedSessionId)})}var gi=`modulepreload`,_i=function(e){return`/`+e},vi={},yi=function(e){return e.pathname.endsWith(`.css`)},bi=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},xi=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=_i(t,n);let r=s(t),i=yi(r);return bi(vi,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:gi,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function Si(e,t=`explicit-state`){let n=F.get(e);if(!n)return null;let r=ai(n.currentState,t);return r&&er(n,{type:r,id:e}),n}function Ci(e,{rememberFocus:t=!0}={}){mi(e),t&&pn(e)}function wi(){return si(Jt(),F)}function Ti(e=ct){let t=[...F];return Ln(t,e)}function Ei(e,t){let n=F.get(e);return n?er(n,t):j(t)?!0:(I({source:`Session action`,sessionId:e,message:`${l} Try the action again once the header shows Connected.`}),!1)}var Di=`Add session`;function Oi(e){return e.type===`add-session-result`&&e.error?e.error:e.type===`error`?e.message:`The session was not added.`}var ki=!1;function Ai(e){ki||(ki=!0,xi(()=>import(`./dialogs-2TynuBlk.js`).then(t=>{ki=!1,e(t)},()=>{ki=!1,I({source:Di,message:`The Add session dialog did not load. Reload the page, then add the session again.`})}),__vite__mapDeps([0,1,2,3,4,5,6])))}function ji(){Ai(e=>e.createAddSessionDialog())}async function Mi(e,t){try{let n=pi(t),r=await M(`add-session`,{name:n,path:e},{timeoutMs:Tn});if(r.type===`add-session-result`&&r.ok){xn(Di);return}I({source:Di,message:Oi(r)})}catch(e){I({source:Di,message:`The session was not added: ${wn(e,Tn)} Add it again once the server answers.`})}}function Ni(e,t){e&&Mi(e,t)}async function Pi(e,t){try{let n=await M(`quick-session`,{id:e},{timeoutMs:Tn});if(n.type===`add-session-result`&&n.ok){xn(Di),n.sessionId&&t(n.sessionId);return}I({source:Di,sessionId:e,message:Oi(n)})}catch(t){I({source:Di,sessionId:e,message:`The session was not added: ${wn(t,Tn)} Add it again once the server answers.`})}}function Fi(e,t){Pi(e,t)}var Ii=39e5,Li=`Remove session`;async function Ri(e,t,n,r=[]){try{let i=await M(`remove-session`,{id:t,discardWork:n,confirmedKeptPaths:r},{timeoutMs:Ii});if(i.type!==`remove-session-result`||i.ok)return;if(!i.canDiscardWork){I({source:Li,sessionId:t,message:`"${ct(e)}" was not removed: ${i.error??`the server gave no reason`}. Try Remove again from its actions menu.`});return}hr({title:`Remove Session`,message:i.error??`Remove session "${ct(e)}"?`,confirmLabel:`Remove`,danger:!0,onConfirm:()=>{Ri(e,t,!0,(i.keptPaths??[]).map(e=>e.path))}})}catch(n){I({source:Li,sessionId:t,message:`"${ct(e)}" was not removed: ${wn(n,Ii)} Try Remove again from its actions menu.`})}}function zi(e){let t=F.get(e);t&&Ri(t,e,!1)}var Bi=`(max-width: 768px)`,Vi=`(pointer: coarse)`;function Hi({coarse:e,narrowWidth:t}={}){return e===!0&&t===!0?`phone`:`desktop`}var Ui=window.matchMedia?.(Vi),Wi=window.matchMedia?.(Bi);function Gi(){return Hi({coarse:!!Ui?.matches,narrowWidth:!!Wi?.matches})}function Ki(e){document.documentElement.dataset.layout!==e&&(document.documentElement.dataset.layout=e)}function qi(){L.subscribe((e,t)=>{t.includes(`layout`)&&Ki(e.layout)});let e=Gi();Ki(e),L.dispatch(`setLayout`,e);let t=()=>L.dispatch(`setLayout`,Gi());return Ui?.addEventListener?.(`change`,t),Wi?.addEventListener?.(`change`,t),e}function Ji(){return L.snapshot().layout===`phone`}function Yi(e){return L.subscribe((t,n)=>{n.includes(`layout`)&&e(t.layout)})}function Xi(e,t,n){return{body:String(n||`Session needs attention`),tag:`glimmervoid-${e||``}-${t||``}`,renotify:!0}}var Zi=4e3;function Qi(e,t){return`glimmervoid-notify-claim-${e||``}-${t||``}`}function $i(e,t,n,r=Zi){try{let i=e.getItem(t);if(i){let e=Number(i);if(Number.isFinite(e)&&n-e<r)return!1}return e.setItem(t,String(n)),!0}catch{return!0}}var ea=`#plan/`;function ta(e){return`${ea}${encodeURIComponent(e)}`}function na(e){if(!e.startsWith(ea))return null;let t=e.slice(6);if(!t||t.includes(`/`))return null;try{return decodeURIComponent(t)||null}catch{return null}}function ra(){return typeof Notification>`u`?null:Notification}function ia(){return ra()!==null}function aa(){let e=ra();return e?e.permission:`unavailable`}async function oa(){let e=ra();if(!e)return`denied`;if(e.permission!=="default")return e.permission;try{return await e.requestPermission()}catch{return e.permission}}function sa(){return!ia()&&!window.isSecureContext?`Browsers allow desktop notifications only over HTTPS or on localhost, and this page is plain HTTP on another address. Open the dashboard on localhost, or use Telegram.`:ia()?aa()===`denied`&&jt()?`Blocked by the browser. Allow notifications for this site in its site settings.`:null:`This browser does not support desktop notifications.`}function ca(){return jt()&&aa()==="default"}function la(e=()=>{}){let t=A(`div`,`notification-permission`),n=()=>{let r=sa();if(t.replaceChildren(),t.hidden=!r&&!ca(),r){t.append(A(`p`,`notification-permission-hint text-xs text-text-muted`,r));return}let i=A(`button`,`btn-dialog btn-dialog-cancel`,`Enable desktop notifications`);i.type=`button`,i.addEventListener(`click`,()=>{i.disabled=!0,oa().then(()=>{n(),e()})}),t.append(i)};return n(),{element:t,refresh:n}}var ua=`Notifications`,da=`Desktop notifications are blocked by the browser, so alerts show only in this tab. Allow notifications for this site to get them again.`,fa=new Map,pa=!1;function ma(){pa||(pa=!0,I({source:ua,message:da,hidesInStreamerMode:!1}))}function ha(e,t){let n=fa.get(e)??new Set;n.add(t),fa.set(e,n),t.addEventListener(`close`,()=>n.delete(t))}function ga(e){let t=fa.get(e);if(t){fa.delete(e);for(let e of t)e.close()}}function _a(e){return!ia()||!jt()||document.documentElement.hasAttribute(`data-streamer`)?!1:e||!document.hasFocus()}function va(e=!1){return _a(e)&&aa()===`granted`}function ya({session:e,category:t,message:n,kind:r,ignoreFocus:i=!1}={}){let a=ra();if(!a||!_a(!!i)||(a.permission===`denied`&&ma(),a.permission!==`granted`)||(xn(ua),!$i(window.localStorage,Qi(e,t),Date.now())))return;let o=typeof e==`string`?e:``,s=F.get(o),c=s?ct(s):``;try{let i=new a(c||`Glimmervoid`,Xi(e,t,n));i.onclick=()=>{window.focus(),r===`plan`&&o&&(window.location.hash=ta(o)),i.close()},s&&ha(o,i)}catch{}}var ba=`claude-code`;function xa(e,{defaultId:t=ba}={}){let n=(Array.isArray(e)?e:[]).filter(e=>e?.resolvable&&typeof e.id==`string`&&e.id).map(e=>{let t=String(e.id);return{id:t,label:typeof e.label==`string`&&e.label?e.label:t}}),r=n.some(e=>e.id===t)?t:n.length>0?n[0].id:t;return{show:n.length>1,options:n,selectedId:r}}var Sa=`No supported agent CLI was found on the PATH Glimmervoid runs with. Install Claude Code (or another supported agent), make sure its command is on that PATH, then run glimmervoid doctor to confirm.`;function Ca(e){let t=typeof e==`object`&&e?e:null;return t===null||!Array.isArray(t.agents)||t.error||xa(t.agents).options.length>0?{canSpawn:!0,guidance:``}:{canSpawn:!1,guidance:Sa}}var wa={agent:`upcoming`,repoRoots:`upcoming`,firstSession:`upcoming`};function Ta(e,t){return e<t?`done`:e===t?`current`:`upcoming`}function Ea({agentListing:e,repoRoots:t}){let n=Ca(e).canSpawn?t.length===0?2:3:1;return{agent:Ta(1,n),repoRoots:Ta(2,n),firstSession:Ta(3,n)}}var Da=[[`agent`,`agent`],[`repoRoots`,`repo_roots`],[`firstSession`,`first_session`]];function Oa({step:e,state:t}){return`${e}:${t}`}function ka(e,t){let n=[];for(let[r,i]of Da){let a=t[r];if(a===`upcoming`)continue;let o={step:i,state:a};e.has(Oa(o))||n.push(o)}return n}function Aa(e){return xa(typeof e==`object`&&e?e.agents:[]).options.map(e=>e.label).join(`, `)}function ja(e){return e===1?`1 git repo`:`${e} git repos`}function Ma(e,t){let n=[...e];for(let e of t){let t=e.trim();t&&!n.includes(t)&&n.push(t)}return n.length===e.length?null:n}function Na(e,t){return e.length>0?[]:t.filter(e=>e.gitRepoCount>0).map(e=>e.path)}var Pa=0,Fa=`Could not read the current repository roots.`;function Ia(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}async function La(e){let t=await M(`get-settings`,{});if(t.type!==`settings`)return Fa;let n=t.settings.repoRoots;if(!Ia(n))return Fa;let r=Ma(n,e);if(!r)return null;let i=await M(`update-settings`,{settings:{repoRoots:r}});return i.type===`settings-error`?i.message:null}function Ra({onAdded:e}){Pa+=1;let t=`repo-roots-adder-path-${Pa}`,n=A(`div`,`repo-roots-adder`),r=A(`div`,`repo-roots-adder-found`),i=A(`span`,`repo-roots-adder-label`,`FOUND ON THIS MACHINE`),a=A(`ul`,`repo-roots-adder-list`);r.append(i,a),r.hidden=!0;let o=A(`label`,`repo-roots-adder-label`,`TYPE A PATH`);o.htmlFor=t;let s=A(`div`,`repo-roots-adder-row`),c=A(`input`,`dialog-input repo-roots-adder-input`);c.id=t,c.type=`text`,c.placeholder=`/path/to/your/checkouts`,c.autocomplete=`off`,c.spellcheck=!1;let l=A(`button`,`btn-dialog btn-dialog-cancel`,`Add`);l.type=`button`,l.disabled=!0,s.append(c,l);let u=A(`p`,`repo-roots-adder-error`);u.setAttribute(`role`,`alert`),n.append(r,o,s,u);let d=!1;function f(e){d=e;for(let t of n.querySelectorAll(`button`))t.disabled=e;e||(l.disabled=c.value.trim()===``)}async function p(t,n){if(!d){f(!0),u.textContent=``;try{let r=await La([t]);if(r){u.textContent=r;return}c.value=``,e(n)}catch(e){u.textContent=`Could not save the folder: ${e instanceof Error?e.message:String(e)}`}finally{f(!1)}}}c.addEventListener(`input`,()=>{l.disabled=d||c.value.trim()===``}),c.addEventListener(`keydown`,e=>{e.key===`Enter`&&c.value.trim()!==``&&(e.preventDefault(),p(c.value.trim(),`typed`))}),l.addEventListener(`click`,()=>{p(c.value.trim(),`typed`)});function m(e){a.textContent=``;for(let t of e){let e=A(`li`,`repo-roots-adder-suggestion`),n=A(`button`,`btn-dialog btn-dialog-cancel`,`Add`);n.type=`button`,n.setAttribute(`aria-label`,`Add ${t.label}`),n.addEventListener(`click`,()=>{p(t.path,`suggested`)}),e.append(A(`span`,`repo-roots-adder-path`,t.label),A(`span`,`repo-roots-adder-count`,ja(t.gitRepoCount)),n),a.append(e)}r.hidden=e.length===0,o.textContent=e.length>0?`OR TYPE A PATH`:`TYPE A PATH`}return{element:n,setSuggestions:m}}var za=`npm install -g @anthropic-ai/claude-code`,Ba={done:`<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="Done"><circle cx="12" cy="12" r="10"></circle><path d="M7.5 12.5l3 3 6-6.5"></path></svg>`,current:`<svg width="18" height="18" viewBox="0 0 24 24" role="img" aria-label="Needed"><path d="M12 3l9 9-9 9-9-9z" fill="currentColor"></path></svg>`,upcoming:`<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" role="img" aria-label="Not started"><circle cx="12" cy="12" r="10"></circle></svg>`},Va=null,Ha=null,Ua=null,Wa=null,Ga={steps:wa,agentSummary:``,repoRoots:[]},Ka=0,qa=!1,Ja=!1,Ya=new Set,Xa=yn(`first-run-load-status`),Za=la();function Qa(e){j({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`onboarding`,action:e}})}function $a(e){for(let t of ka(Ya,e))j({type:`dashboard-telemetry`,event:`onboarding_step`,properties:t})&&Ya.add(Oa(t))}function eo({title:e,state:t,summary:n,badge:r,body:i}){let a=A(`li`,`first-run-step`);a.dataset.state=t,t===`current`&&a.setAttribute(`aria-current`,`step`);let o=A(`div`,`first-run-step-head`),s=A(`span`,`first-run-step-icon`);if(s.innerHTML=Ba[t],o.append(s,A(`span`,`first-run-step-title`,e)),t===`done`&&n&&o.append(A(`span`,`first-run-step-summary`,n)),t===`current`&&r&&o.append(A(`span`,`first-run-step-badge`,r)),a.append(o),t!==`current`)return a;let c=A(`div`,`first-run-step-body`);return c.append(...i()),a.append(c),a}function to(){return Ji()?`No supported agent is on PATH of the machine running Glimmervoid. Install Claude Code, Codex or Grok there, then rescan.`:`No supported agent is on PATH. Install Claude Code, Codex or Grok, then rescan.`}function no(){let e=A(`div`,`first-run-command-row`);if(e.append(A(`code`,`first-run-command`,za)),!navigator.clipboard?.writeText)return e;let t=A(`button`,`btn-dialog btn-dialog-cancel`,`Copy`);t.type=`button`;let n=A(`span`,`first-run-copy-status`);return n.setAttribute(`role`,`status`),t.addEventListener(`click`,async()=>{let e=Ne(za);n.textContent=e?await e.then(()=>`Copied`,()=>`Copy failed`):`Copy failed`}),e.append(t,n),e}function ro(){let e=A(`div`,`first-run-step-actions`);Ua=A(`button`,`btn-dialog btn-dialog-cancel`,`Rescan`),Ua.type=`button`,Ua.addEventListener(`click`,()=>{Qa(`rescan`),so({rescanAgents:!0})}),e.append(Ua);let t=[A(`p`,`first-run-step-text`,to()),no(),e];return qa?[...t,A(`p`,`first-run-step-hint`,`Still missing after a rescan? Restart Glimmervoid from a terminal where the command runs. Other terminal agents go under customAgents.`)]:t}function io(){let e=Wa??Ra({onAdded:e=>{Qa(e===`typed`?`add-root-typed`:`add-root-suggested`),so({rescanAgents:!1})}});return Wa=e,[A(`p`,`first-run-step-text`,`The folder that holds your git checkouts. Each subfolder becomes a project you can start a session in.`),e.element]}function ao(){let e=A(`div`,`first-run-step-actions`),t=A(`button`,`btn-dialog btn-dialog-confirm`,`+ Session`);return t.type=`button`,t.addEventListener(`click`,()=>{Qa(`add-session`),ji()}),e.append(t),[A(`p`,`first-run-step-text`,`Pick a project and an agent. The session runs in its own git worktree, so your checkout is never touched.`),e]}function oo(){if(!Ha)return;let{steps:e,agentSummary:t,repoRoots:n}=Ga;Ha.replaceChildren(eo({title:`1. Agent CLI`,state:e.agent,summary:t,badge:`MISSING`,body:ro}),eo({title:`2. Repository roots`,state:e.repoRoots,summary:n.join(`, `),badge:`NEEDED`,body:io}),eo({title:`3. First session`,state:e.firstSession,summary:``,badge:``,body:ao}))}async function so({rescanAgents:e}){Ka+=1;let t=Ka;Ua&&(Ua.disabled=!0);try{let[n,r]=await Promise.all([M(`list-agents`,e?{rescan:!0}:{},{timeoutMs:Tn}),M(`scan-repo-roots`,{includeSuggestions:!0},{timeoutMs:Tn})]);if(t!==Ka)return;let i=r.type===`repo-roots-scanned`,a=i?r.directories.map(e=>e.root):[],o=i?r.suggestions??[]:[],s=Na(a,o);if(s.length>0&&!Ja){Ja=!0;let e=await La(s).catch(e=>String(e));if(t!==Ka)return;if(!e){so({rescanAgents:!1});return}}let c=Ea({agentListing:n,repoRoots:a});e&&(qa=c.agent===`current`),Ga={steps:c,agentSummary:Aa(n),repoRoots:a},Xa.clear(),oo(),$a(Ga.steps),Wa?.setSuggestions(o)}catch(e){if(Ua&&(Ua.disabled=!1),t!==Ka)return;Xa.show(`error`,`The checklist could not load: ${wn(e,Tn)} It loads again once the server answers. If it stays like this, check the terminal running Glimmervoid, or run glimmervoid doctor.`)}}function co(){if(Va)return Va;let e=A(`section`,`first-run-checklist`);e.setAttribute(`aria-labelledby`,`first-run-title`);let t=A(`h2`,`first-run-title`,`Get to your first session`);t.id=`first-run-title`,Ha=A(`ol`,`first-run-steps`);let n=A(`div`,`first-run-optional`);return n.append(A(`span`,`first-run-eyebrow`,`OPTIONAL`),Za.element),e.append(A(`span`,`first-run-eyebrow`,`FIRST RUN`),t,Ha,Xa.element,n),Va=e,oo(),e}function lo(e,t){if(!t){Va?.parentElement===e&&(Va.hidden=!0);return}let n=co(),r=!n.hidden&&n.parentElement===e;n.parentElement!==e&&e.append(n),n.hidden=!1,Za.refresh(),r||so({rescanAgents:!1})}function uo(){Va&&!Va.hidden&&Va.isConnected&&so({rescanAgents:!1})}var fo=new Set([`http:`,`https:`]);function po(e){let t;try{t=new URL(e)}catch{return null}return fo.has(t.protocol)?t.href:null}var mo=2,ho=8,go=/^ {0,3}(`{3,}|~{3,})([^`]*)$/,_o=/^(\s*)(?:([-+*])|(\d+)[.)])\s+(.+)$/,vo=/^ {0,3}(?:(?:\*\s*){3,}|(?:-\s*){3,}|(?:_\s*){3,})$/,yo=/^:?-{3,}:?$/,bo=/^[A-Za-z0-9_+#.-]{1,32}$/;function xo(e){return D(e,{overlongLine:`reject`})}function So(e){let t=e.trim().split(/\s+/)[0]??``;return bo.test(t)?t:``}function Co(e,t){if(!t)return;let n=e.at(-1);n?.type===`text`?n.text+=t:e.push({type:`text`,text:t})}function wo(e,t){return e.startsWith(`**`,t)?`**`:e.startsWith(`__`,t)?`__`:null}function To(e,t){return e.startsWith(`*`,t)?`*`:e.startsWith(`_`,t)?`_`:null}function Eo(e,t,n){let r=e.indexOf(t,n);return r>n?r:-1}function Do(e,t){let n=e.indexOf(t);return function(r){return n===-1?-1:(n>=r||(n=e.indexOf(t,r)),n)}}function Oo(e,t){let n=1;for(let r=t;r<e.length;r++){let t=e[r];if(t===`(`&&n++,t===`)`&&n--,n===0)return r;if(n>mo)return-1}return-1}function ko(e,t,n){if(e[t]!==`[`)return null;let r=n(t+1);if(r<=t+1||e[r+1]!==`(`)return null;let i=Oo(e,r+2);return i===-1?null:{label:e.slice(t+1,r),target:e.slice(r+2,i),end:i+1}}function Ao(e){let t=[],n=Do(e,`]`),r=0;for(;r<e.length;){let i=ko(e,r,n);if(i){let e=po(i.target.trim());e&&t.push({type:`link`,href:e,children:Ao(i.label)}),e||Co(t,i.label),r=i.end;continue}if(e.startsWith("`",r)){let n=Eo(e,"`",r+1);if(n!==-1){t.push({type:`code`,text:e.slice(r+1,n)}),r=n+1;continue}}let a=wo(e,r);if(a){let n=Eo(e,a,r+a.length);if(n!==-1){t.push({type:`strong`,children:Ao(e.slice(r+a.length,n))}),r=n+a.length;continue}}let o=To(e,r);if(o){let n=Eo(e,o,r+1);if(n!==-1){t.push({type:`emphasis`,children:Ao(e.slice(r+1,n))}),r=n+1;continue}}Co(t,e[r]),r++}return t}function jo(e){return e.map(e=>e.type===`text`||e.type===`code`?e.text:jo(e.children)).join(``)}var Mo=`plan-h-`;function No(e,t){let n=e.toLowerCase().normalize(`NFKD`).replace(/[\u0300-\u036f]/g,``).replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`section`,r=(t.slugCounts.get(n)??0)+1;return t.slugCounts.set(n,r),`${Mo}${r===1?n:`${n}-${r}`}`}function Po(e){if(typeof e!=`string`||!e.includes(`|`))return!1;let t=Fo(e);return t.length<2?!1:t.every(e=>yo.test(e))}function Fo(e){let t=e.trim();return t.startsWith(`|`)&&(t=t.slice(1)),t.endsWith(`|`)&&(t=t.slice(0,-1)),t.split(`|`).map(e=>e.trim())}function Io(e){let t=_o.exec(e);return t?{indent:t[1].replace(/\t/g,` `).length,ordered:!!t[3],content:t[4]}:null}function Lo(e,t,n,r){let i=Io(e[t]);if(!i)return null;let a=[],o=i.ordered,s=i.indent,c=t;for(;c<e.length;){let t=Io(e[c]);if(!t||t.indent<s)break;if(t.indent>s){if(r>=ho)break;let t=Lo(e,c,n,r+1);if(!t||a.length===0)break;a.at(-1)?.children.push(t.block),c=t.next}else{if(t.ordered!==o)break;a.push({children:[{type:`paragraph`,children:Ao(t.content)}]}),c++}}return{block:{type:`list`,ordered:o,items:a},next:c}}function Ro(e,t){let n=e[t]??``;return n.trim()===``||xo(n)||go.test(n)||vo.test(n)||Io(n)||/^ {0,3}>/.test(n)?!0:t+1<e.length&&n.includes(`|`)&&Po(e[t+1])}function zo(e,t,n){let r=[],i=0;for(;i<e.length;){let a=e[i];if(a.trim()===``){i++;continue}let o=go.exec(a);if(o){let t=[],n=o[1][0],a=o[1].length;for(i++;i<e.length;){let r=/^ {0,3}(`{3,}|~{3,})\s*$/.exec(e[i]);if(r&&r[1][0]===n&&r[1].length>=a)break;t.push(e[i]),i++}i<e.length&&i++,r.push({type:`code`,language:So(o[2]),text:t.join(`
|
|
3
|
+
`)});continue}let s=xo(a);if(s){let e=Ao(s.text);r.push({type:`heading`,level:s.level,id:No(jo(e),t),children:e}),i++;continue}if(vo.test(a)){r.push({type:`rule`}),i++;continue}if(i+1<e.length&&a.includes(`|`)&&Po(e[i+1])){let t=Fo(a).map(Ao),n=[];for(i+=2;i<e.length&&e[i].includes(`|`)&&e[i].trim()!==``;)n.push(Fo(e[i]).map(Ao)),i++;r.push({type:`table`,header:t,rows:n});continue}let c=Lo(e,i,t,n);if(c){r.push(c.block),i=c.next;continue}if(n<ho&&/^ {0,3}>/.test(a)){let a=[];for(;i<e.length&&/^ {0,3}>/.test(e[i]);)a.push(e[i].replace(/^ {0,3}> ?/,``)),i++;r.push({type:`blockquote`,blocks:zo(a,t,n+1)});continue}let l=[a.trim()];for(i++;i<e.length&&!Ro(e,i);)l.push(e[i].trim()),i++;r.push({type:`paragraph`,children:Ao(l.join(` `))})}return r}function Bo(e){return zo(e.replace(/\r\n?/g,`
|
|
4
|
+
`).split(`
|
|
5
|
+
`),{slugCounts:new Map},0)}function Vo(e){let t=[],n={heading:null,id:null,level:0,blocks:[]},r=()=>{(n.heading!==null||n.blocks.length!==0)&&t.push(n)};for(let t of e)t.type===`heading`?(r(),n={heading:jo(t.children),id:t.id,level:t.level,blocks:[t]}):n.blocks.push(t);return r(),t}function Ho(e,t){for(let n of t){if(n.type===`text`){e.append(document.createTextNode(n.text));continue}if(n.type===`code`){e.append(A(`code`,`plan-inline-code`,n.text));continue}if(n.type===`emphasis`){let t=A(`em`);Ho(t,n.children),e.append(t);continue}if(n.type===`strong`){let t=A(`strong`);Ho(t,n.children),e.append(t);continue}let t=A(`a`,`plan-link`);t.href=n.href,t.target=`_blank`,t.rel=`noopener noreferrer`,Ho(t,n.children),e.append(t)}}function Uo(e){let t=A(`li`);return Wo(t,e.children),t}function Wo(e,t){for(let n of t)if(n.type===`heading`){let t=A(`h${n.level}`,`plan-heading`);t.id=n.id,Ho(t,n.children),e.append(t)}else if(n.type===`paragraph`){let t=A(`p`,`plan-paragraph`);Ho(t,n.children),e.append(t)}else if(n.type===`list`){let t=n.ordered?A(`ol`,`plan-list`):A(`ul`,`plan-list`);t.append(...n.items.map(Uo)),e.append(t)}else if(n.type===`code`){let t=A(`pre`,`plan-code`),r=A(`code`,n.language?`language-${n.language}`:null,n.text);t.append(r),e.append(t)}else if(n.type===`table`){let t=A(`div`,`plan-table-wrap`),r=A(`table`,`plan-table`),i=A(`thead`),a=A(`tr`);for(let e of n.header){let t=A(`th`);Ho(t,e),a.append(t)}i.append(a);let o=A(`tbody`);for(let e of n.rows){let t=A(`tr`);for(let n of e){let e=A(`td`);Ho(e,n),t.append(e)}o.append(t)}r.append(i,o),t.append(r),e.append(t)}else if(n.type===`blockquote`){let t=A(`blockquote`,`plan-blockquote`);Wo(t,n.blocks),e.append(t)}else e.append(A(`hr`,`plan-rule`))}function Go(e){let t=A(`div`,`plan-document`);return Wo(t,e),t}function Ko(e,{hasComment:t,isComposing:n,onComment:r,attachmentFor:i}){let a=A(`div`,`plan-document`),o=[];for(let s of e){let e=A(`section`,`plan-section`);e.dataset.selected=`false`,e.addEventListener(`click`,()=>{for(let t of o)t.dataset.selected=String(t===e)}),o.push(e);let c=A(`div`,`plan-section-head`),l=s.blocks[0],u=l?.type===`heading`;if(u&&Wo(c,[l]),u||(e.id=`plan-introduction`),!t(s)&&!n(s)){let e=A(`button`,`plan-section-comment`,`Comment`);e.type=`button`,e.setAttribute(`aria-label`,`Comment on ${s.heading??`Introduction`}`),e.addEventListener(`click`,()=>r(s)),c.append(e)}let d=A(`div`,`plan-section-body`);Wo(d,u?s.blocks.slice(1):s.blocks),e.append(c,d);let f=i(s);f&&e.append(f),a.append(e)}return a}var qo={added:`+`,removed:`-`,unchanged:` `,skipped:` `};function Jo(e){let t=A(`div`,`plan-diff`);for(let n of e.lines){let e=A(`div`,`plan-diff-line plan-diff-${n.kind}`),r=A(`span`,`plan-diff-gutter`,qo[n.kind]);r.setAttribute(`aria-hidden`,`true`),e.append(r,A(`span`,`plan-diff-text`,n.text)),t.append(e)}return t}var Yo=`glimmervoid-streamer-mode`,Xo=new Set,Zo=Kt(Yo,!1)===!0,Qo=null;function $o(e){document.documentElement.toggleAttribute(`data-streamer`,e),Qo?.setAttribute(`aria-pressed`,String(e))}$o(Zo);function es(){return Zo}function ts(e){if(Vt(Yo,e),e!==es()){Zo=e,$o(e);for(let t of Xo)t(e)}}function ns(e){return Xo.add(e),()=>Xo.delete(e)}async function rs(e){try{let t=await M(`update-settings`,{settings:{streamerMode:e}},{timeoutMs:Tn});return t.type===`settings-error`?String(t.message):(ts(e),``)}catch(e){return wn(e,Tn)}}var is=`Streamer mode`;async function as(){let e=!es();e&&ts(!0);let t=await rs(e);t?I({source:is,message:`${e?`Streamer mode is on in this browser only. The server did not save it`:`Streamer mode is still on. The server did not save the change`}: ${t} Toggle it again to retry.`,hidesInStreamerMode:!1}):xn(is)}function os(){as()}function ss(e){Qo=e,$o(es()),e.addEventListener(`click`,os)}var cs=new Map,ls=null;function us(e){return cs.get(e)??[]}function ds(e){return us(e).length>0}function fs(e){N(e)?.btnDocs.classList.toggle(`visible`,ds(e))}function ps(e){let t=us(e.sessionId);e.select.replaceChildren(...t.map(t=>{let n=A(`option`,null,t.name);return n.value=t.path,n.selected=t.path===e.docPath,n})),e.select.hidden=t.length<2,e.title.textContent=t.find(t=>t.path===e.docPath)?.name??e.title.textContent}function ms(e){let t=us(e.sessionId).some(t=>t.path===e.docPath);e.btnEdit.setAttribute(`aria-pressed`,String(e.mode===`edit`)),e.btnPreview.setAttribute(`aria-pressed`,String(e.mode===`preview`)),e.textarea.hidden=e.mode!==`edit`,e.preview.hidden=e.mode!==`preview`,e.select.disabled=e.isBusy,e.btnReload.disabled=e.isBusy||!t,e.btnSave.disabled=e.isBusy||!t||e.baseHash===null||!e.hasUnsavedChanges}function hs(e,t,n=`quiet`){e.status.textContent=t,e.status.dataset.tone=n}function gs(e){e.preview.replaceChildren(Go(Bo(e.textarea.value)))}function _s(e,t){hr({title:e,message:`Your unsaved edits will be lost.`,confirmLabel:`Discard`,danger:!0,onConfirm:t})}function vs(e,t,n){e.hasUnsavedChanges?_s(t,n):n()}async function ys(e,t){try{return{reply:await M(e,t,{timeoutMs:Tn}),failureText:null}}catch(e){return{reply:null,failureText:wn(e,Tn)}}}async function bs(e,t){e.docPath=t,e.isBusy=!0,e.baseHash=null,e.textarea.readOnly=!0,ps(e),hs(e,`Loading`),ms(e);let{reply:n,failureText:r}=await ys(`session-doc-read`,{id:e.sessionId,path:t});if(ls!==e||e.docPath!==t)return;e.isBusy=!1,e.textarea.readOnly=!1;let i=n?.type===`session-doc-response`?n:null;!i?.ok||i.text===void 0||i.hash===void 0?(hs(e,i?.error||r||`Could not open this doc`,`warn`),ms(e)):(e.textarea.value=i.text,e.baseHash=i.hash,e.hasUnsavedChanges=!1,e.mode===`preview`&&gs(e),hs(e,``),ms(e))}async function xs(e){if(e.btnSave.disabled||e.baseHash===null)return;e.isBusy=!0,hs(e,`Saving`),ms(e);let t=e.docPath,n=e.textarea.value,{reply:r,failureText:i}=await ys(`session-doc-save`,{id:e.sessionId,path:t,text:n,baseHash:e.baseHash});if(ls!==e||e.docPath!==t)return;e.isBusy=!1;let a=r?.type===`session-doc-save-result`?r:null;!a?.ok||a.hash===void 0?(hs(e,a?.conflict?`The agent changed this file since you opened it. Reload to see its version.`:a?.error||i||`Save failed`,`warn`),ms(e)):(e.baseHash=a.hash,e.hasUnsavedChanges=e.textarea.value!==n,hs(e,e.hasUnsavedChanges?`Unsaved changes`:`Saved`),ms(e))}function Ss(e,t){e.mode=t,t===`preview`&&gs(e),ms(e),t===`edit`&&e.textarea.focus()}function Cs(e,t){let n=A(`button`,`plan-control ${t}`,e);return n.type=`button`,n}function ws(e){let t=us(e)[0];if(!t||ls)return;let n=()=>vs(y,`Close this doc?`,()=>y.close()),r=vr({dialogClass:`doc-editor`,closeOnBackdrop:!1,onEscape:n}),i=`doc-editor-title-${e}`,a=A(`h3`,`doc-editor-title`,t.name);a.id=i;let o=A(`select`,`plan-control doc-editor-picker`);o.setAttribute(`aria-label`,`Doc`);let s=A(`span`,`doc-editor-status`);s.setAttribute(`role`,`status`);let c=Cs(`Edit`,`doc-editor-mode`),l=Cs(`Preview`,`doc-editor-mode`),u=Cs(`Reload`,`doc-editor-reload`),d=Cs(`Save`,`doc-editor-save`),f=Cs(`Close`,`doc-editor-close`),p=A(`div`,`doc-editor-modes`);p.append(c,l);let m=A(`div`,`doc-editor-actions`);m.append(s,u,d,f);let h=A(`div`,`doc-editor-header`);h.append(a,o,p,m);let g=A(`textarea`,`plan-editor doc-editor-text`);g.spellcheck=!0,g.setAttribute(`aria-labelledby`,i);let _=A(`div`,`doc-editor-preview`),v=A(`div`,`doc-editor-body`);v.append(g,_),r.dialog.append(h,v),yr(r.dialog,i);let y={sessionId:e,docPath:t.path,baseHash:null,hasUnsavedChanges:!1,isBusy:!1,mode:es()?`preview`:`edit`,title:a,select:o,textarea:g,preview:_,status:s,btnEdit:c,btnPreview:l,btnReload:u,btnSave:d,close:()=>{ls=null,r.close()}};ls=y,g.addEventListener(`input`,()=>{y.hasUnsavedChanges||(y.hasUnsavedChanges=!0,hs(y,`Unsaved changes`),ms(y))}),g.addEventListener(`keydown`,e=>{(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`s`&&(e.preventDefault(),xs(y))}),o.addEventListener(`change`,()=>{let e=o.value;o.value=y.docPath,vs(y,`Open another doc?`,()=>{bs(y,e)})}),c.addEventListener(`click`,()=>Ss(y,`edit`)),l.addEventListener(`click`,()=>Ss(y,`preview`)),u.addEventListener(`click`,()=>{vs(y,`Reload this doc?`,()=>{bs(y,y.docPath)})}),d.addEventListener(`click`,()=>{xs(y)}),f.addEventListener(`click`,n),bs(y,t.path),y.mode===`edit`&&g.focus()}function Ts(e){ls&&ls.sessionId===e&&(ps(ls),ms(ls),!us(e).some(e=>e.path===ls?.docPath)&&hs(ls,`This doc is no longer surfaced, so it cannot be saved.`,`warn`))}function Es(e){cs.set(e.id,e.docs),e.docs.length===0&&cs.delete(e.id),fs(e.id),Ts(e.id)}function Ds(e){let t=[...cs.keys()];cs.clear();for(let[t,n]of Object.entries(e.sessions))cs.set(t,n);for(let e of new Set([...t,...cs.keys()]))fs(e),Ts(e)}var Os=new Map,ks=new Set,As=[],js=[],Ms=null,Ns=!1;function Ps(e){return Os.get(e)??[]}function Fs(e){return Ps(e).length>0}function Is(e){return ks.has(e)}function Ls(e){As.push(e)}function Rs(e){js.push(e)}function zs(e){let t=N(e);t&&(t.btnShown.classList.toggle(`visible`,Fs(e)),t.shownUnopenedDot.hidden=!Is(e))}function Bs(e,t){return`/shown/${encodeURIComponent(e)}/${encodeURIComponent(t.id)}`}function Vs(e){window.open(e,`_blank`,`noopener`)}function Hs(e){return e.pageTitle??e.name}function Us(e,t,n){let r=Bs(e,t);if(t.kind===`image`){let e=A(`img`,n?`shown-thumb-media`:`shown-stage-media`);return e.src=r,e.alt=t.caption??t.name,e.loading=`lazy`,e.decoding=`async`,e}if(t.kind===`video`){let e=A(`video`,n?`shown-thumb-media`:`shown-stage-media`);return e.src=r,e.preload=`metadata`,e.muted=n,e.controls=!n,e.playsInline=!0,e}let i=A(`div`,n?`shown-thumb-page`:`shown-stage-page`);if(i.append(A(`span`,`shown-page-kind`,`HTML page`),A(`span`,`shown-page-title`,Hs(t))),n)return i;let a=A(`button`,`plan-control shown-open-page`,`Open page`);return a.type=`button`,a.addEventListener(`click`,()=>Vs(r)),i.append(A(`span`,`shown-page-name`,t.name),a),i}function Ws(e){let t=Ps(e.sessionId);return t.find(t=>t.id===e.selectedFileId)??t.at(-1)??null}function Gs(e,t){let n=[...Ps(e.sessionId)].reverse();e.strip.hidden=n.length<2,e.strip.replaceChildren(...n.map(n=>{let r=A(`button`,`shown-thumb`);return r.type=`button`,r.title=n.caption??Hs(n),r.setAttribute(`aria-label`,Hs(n)),r.setAttribute(`aria-pressed`,String(n.id===t.id)),r.append(Us(e.sessionId,n,!0)),r.addEventListener(`click`,()=>qs(e,n.id)),r}))}function Ks(e){let t=Ws(e);if(!t){e.close();return}e.selectedFileId=t.id,e.title.textContent=Hs(t),e.stage.replaceChildren(Us(e.sessionId,t,!1));let n=t.caption?[A(`p`,`shown-caption`,t.caption)]:[];e.details.replaceChildren(...n,A(`p`,`shown-meta`,`${t.name}, shown ${ot(t.shownAt)}`)),Gs(e,t)}function qs(e,t){e.selectedFileId=t,Ks(e)}function Js(e){if(ks.delete(e)){zs(e);for(let t of As)t(e,[])}}function Ys(e,t){let n=A(`button`,`plan-control ${t}`,e);return n.type=`button`,n}function Xs(e,t=null){let n=Ps(e).at(-1);if(!n)return;Ms?.close();let r=vr({dialogClass:`shown-lightbox`,closeOnBackdrop:!1,onEscape:()=>f.close()}),i=`shown-lightbox-title-${e}`,a=A(`h3`,`shown-lightbox-title`);a.id=i;let o=Ys(`Open full size`,`shown-open-full-size`),s=Ys(`Close`,`shown-close`),c=A(`div`,`shown-lightbox-header`);c.append(a,o,s);let l=A(`div`,`shown-stage`),u=A(`div`,`shown-details`),d=A(`div`,`shown-strip`);d.setAttribute(`aria-label`,`Shown files`),r.dialog.append(c,l,u,d),yr(r.dialog,i);let f={sessionId:e,selectedFileId:t??n.id,title:a,stage:l,details:u,strip:d,btnOpenFullSize:o,close:()=>{Ms===f&&(Ms=null),r.close()}};Ms=f,o.addEventListener(`click`,()=>{let t=Ws(f);t&&Vs(Bs(e,t))}),s.addEventListener(`click`,()=>f.close()),r.overlay.addEventListener(`click`,e=>{e.target===r.overlay&&f.close()}),Ks(f),Js(e)}function Zs(e){return e.slice(-50)}function Qs(e,t){if(t.length===0)return;let n=Ms?.sessionId===e;n||ks.add(e),zs(e),n&&Ms&&Ks(Ms);for(let n of As)n(e,t)}function $s(e){let t=new Set(Ps(e.id).map(e=>e.id)),n=e.files.filter(e=>!t.has(e.id));if(Os.set(e.id,Zs([...Ps(e.id),...n])),Qs(e.id,n),n.length!==0)for(let t of js)t(e.id,n)}function ec(e){let t=new Map(Os),n=Ns;Ns=!0,Os.clear();for(let[t,n]of Object.entries(e.sessions))Os.set(t,Zs(n));for(let e of new Set([...t.keys(),...Os.keys()])){Fs(e)||ks.delete(e);let r=new Set((t.get(e)??[]).map(e=>e.id)),i=n?Ps(e).filter(e=>!r.has(e.id)):[];zs(e),Qs(e,i),Ms?.sessionId===e&&Ks(Ms)}}function tc({dialogClass:e,titleText:t,titleId:n,body:r,onCloseRequest:i}){let a=vr({dialogClass:e,closeOnBackdrop:!1,onEscape:i}),o=A(`div`,`coherence-journal-header`),s=A(`h3`,`dialog-title`,t);s.id=n;let c=A(`button`,`btn-dialog btn-dialog-cancel`,`Close`);return c.type=`button`,o.append(s,c),a.dialog.append(o,...r),yr(a.dialog,s.id),c.addEventListener(`click`,i),a.overlay.addEventListener(`click`,e=>{e.target===a.overlay&&i()}),{close:a.close,focusClose:()=>c.focus()}}function nc({requestPrefix:e,dialogClass:t,titleText:n,unavailableLabel:r,timeoutMs:i}){let a=null;function o(e){e.timer!==null&&clearTimeout(e.timer),e.timer=null,e.requestId=null}function s({sessionId:s,status:c,body:l,parts:u,paintBeforeRequest:d,buildRequest:f}){a?.close();let p=Xe(e),m=tc({dialogClass:t,titleText:n,titleId:`${p}-title`,body:l,onCloseRequest:()=>h.close()}),h={sessionId:s,status:c,parts:u,requestId:p,timer:null,close:()=>{o(h),a===h&&(a=null),m.close()}};a=h,d?.(),m.focusClose(),j(f(p))?h.timer=setTimeout(()=>{h.requestId=null,h.timer=null,c.textContent=`${r}: request timed out`},i):(h.requestId=null,c.textContent=`${r}: not connected`)}function c(e){let t=a;return!t||t.sessionId!==e.id||t.requestId===null||t.requestId!==e.requestId?null:(o(t),t)}return{open:s,settleResponse:c,currentPanel:()=>a}}var rc=2,ic={needsYou:1,broken:2,askedOfYou:3,waiting:4,settled:5},ac={danger:ic.broken,warn:ic.askedOfYou,wait:ic.waiting,ok:ic.settled,muted:ic.settled};function oc(e){return e?ac[e]:ic.settled}function sc(e){let t=[...e].sort((e,t)=>e.tier-t.tier),n=t.slice(rc);return{visible:t.slice(0,rc),overflowCount:n.length,overflowHoverText:n.map(e=>`${e.text} ${e.hoverText}`).join(`
|
|
6
|
+
`)}}function cc(e){return e.map(e=>[e.key,e.text,e.hoverText,e.look?.icon,e.look?.tone,e.tier].join(`|`)).join(`
|
|
7
|
+
`)}var lc={decision:`Decision`,retraction:`Retraction`,conjecture:`Conjecture`,resolution:`Resolution`,dismissal:`Dismissal`,defect:`Defect`,experiment:`Experiment`,close:`Close`,unable:`Unable`,escalation:`Escalation`,acknowledgement:`Acknowledgement`,enactment:`Enactment`};function uc(e){return e?.active!==!1||e.reason===ne.notInstalled?[]:[{key:`coherence-hooks`,text:`Hooks off`,hoverText:`Coherence hooks not active: ${e.reason}${e.version?` (${e.version})`:``}`,look:{icon:`failed`,tone:`danger`},tier:ic.broken}]}function dc(e){let t=we.safeParse(e.kind);return{heading:`${t.success?lc[t.data]:e.kind} | ${e.at??`Unknown time`} | ${e.id}`,text:e.text,detail:e.detail,supersedes:e.supersedes?`Supersedes: ${e.supersedes}`:null}}function fc(e,t){let n=[];return e?.active===!1&&n.push(`Coherence hooks not active: ${e.reason}${e.version?` (${e.version})`:``}`),t&&!t.journal.ok&&n.push(`Journal unavailable: ${t.journal.reason}`),{lines:n}}var pc=new Map,mc=new Map,hc=nc({requestPrefix:`coherence-journal`,dialogClass:`dialog coherence-journal-drawer`,titleText:`Coherence journal`,unavailableLabel:`Journal unavailable`,timeoutMs:5e3});function gc(e,t){mc.delete(e),t&&mc.set(e,t),Sc(e)}function _c(e){pc.delete(e),mc.delete(e);let t=hc.currentPanel();t?.sessionId===e&&t.close()}function vc(e){let t=pc.get(e.id);t&&t.updatedAt>e.updatedAt||(pc.set(e.id,e),Sc(e.id))}function yc(e){pc.clear();for(let[t,n]of Object.entries(e.sessions))pc.set(t,n);let t=hc.currentPanel();t&&Sc(t.sessionId)}function bc(e){return uc(mc.get(e)??null).map(t=>({...t,onActivate:()=>Cc(e)}))}function xc(e){return pc.get(e)?.journal.ok===!0}function Sc(e){let t=hc.currentPanel();if(!t||t.sessionId!==e)return;let n=fc(mc.get(e)??null,pc.get(e)??null);t.parts.reading.replaceChildren(...n.lines.map(e=>A(`p`,null,e)))}function Cc(e){let t=A(`div`,`coherence-journal-reading`),n=A(`p`,`coherence-journal-status`,`Loading journal`);n.setAttribute(`role`,`status`);let r=A(`div`,`coherence-journal-entries`);hc.open({sessionId:e,status:n,body:[t,n,r],parts:{reading:t,entries:r},paintBeforeRequest:()=>Sc(e),buildRequest:t=>({type:`session-coherence-journal`,id:e,requestId:t})})}function wc(e){let t=hc.settleResponse(e);t&&(e.ok?(t.status.textContent=e.entries.length===0?`No journal entries`:`${e.entries.length} journal entries (up to 200)`,t.parts.entries.replaceChildren(...e.entries.map(e=>{let t=dc(e),n=A(`article`,`coherence-journal-entry`);return n.append(A(`h4`,null,t.heading),A(`p`,null,t.text)),t.detail&&n.append(A(`p`,null,t.detail)),t.supersedes&&n.append(A(`p`,null,t.supersedes)),n}))):t.status.textContent=`Journal unavailable: ${e.error||`could not read journal`}`)}var Tc=/\bElectron\/\d/,Ec=new Set([`localhost`,`127.0.0.1`]);function Dc(e){return Tc.test(e)}function Oc({userAgent:e,pageHostname:t}){return Dc(e)&&Ec.has(t)}function kc(e){return po(e)!==null}var Ac=new Set([0,1]);function jc({button:e,opensInNewTab:t}){return t&&Ac.has(e)}function Mc(){return Oc({userAgent:navigator.userAgent,pageHostname:location.hostname})}function Nc(e){window.open(e,`_blank`,`noopener,noreferrer`)}async function Pc(e){try{let t=await Ye();return(await fetch(`/open-external`,{method:`POST`,credentials:`same-origin`,cache:`no-store`,headers:{"content-type":`application/json`,"x-glimmervoid-page-token":t},body:JSON.stringify({url:e})})).ok}catch{return!1}}function Fc(e){!Mc()||!kc(e)?Nc(e):Pc(e).then(t=>{t||Nc(e)})}function Ic(e){if(e.defaultPrevented)return;let t=e.target instanceof Element?e.target.closest(`a[href]`):null;t instanceof HTMLAnchorElement&&jc({button:e.button,opensInNewTab:t.target===`_blank`})&&kc(t.href)&&(e.preventDefault(),Fc(t.href))}function Lc(e){Mc()&&(e.addEventListener(`click`,Ic,!0),e.addEventListener(`auxclick`,Ic,!0))}var Rc=`#c084fc`,zc=Object.freeze({failed:{icon:de[b.FAILED],color:`#ef4444`},waiting:{icon:de[b.WAITING],color:`#f59e0b`}});function Bc(e){let{waitingCount:t,failedCount:n}=Qn(Array.isArray(e)?e:[]);return t>0?`waiting`:n>0?`failed`:`idle`}function Vc(e){return Me[e].map(({tag:e,attributes:t})=>`<${e} ${Object.entries(t).map(([e,t])=>`${e}="${t}"`).join(` `)}/>`).join(``)}function Hc(e){if(e===`idle`)return`<path d="M10 8 L22 16 L10 24Z" fill="${Rc}"/>`;let{icon:t,color:n}=zc[e];return`<g color="${n}" transform="translate(4 4) scale(1.5)">${Vc(t)}</g>`}function Uc(e){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect width="32" height="32" rx="6" fill="#0a0810"/><rect x="1" y="1" width="30" height="30" rx="5" fill="none" stroke="#2a2440" stroke-width="1"/>${Hc(e)}</svg>`}function Wc(){let e=document.querySelector(`link[rel="icon"]`);if(e instanceof HTMLLinkElement)return e;let t=document.createElement(`link`);return t.rel=`icon`,t.type=`image/svg+xml`,document.head.append(t),t}var Gc=Wc(),Kc=`idle`;function qc(e){let t=Bc([...e.values()].map(({currentState:e,unseenOutcome:t})=>({state:e,unseenOutcome:t})));t!==Kc&&(Kc=t,Gc.href=`data:image/svg+xml,${encodeURIComponent(Uc(t))}`)}function Jc(e,t){return Number.isFinite(e)?Math.round(Math.min(t.maxPx,Math.max(t.minPx,e))):null}function Yc(e,t){return e===`ArrowRight`?t:e===`ArrowLeft`?-t:null}function Xc({resizer:e,column:t,widthHost:n,widthProperty:r,bounds:i,keyStepPx:a,getStoredWidth:o,setStoredWidth:s,growsLeftward:c=!1}){let l=c?-1:1;e.setAttribute(`aria-valuemin`,String(i.minPx)),e.setAttribute(`aria-valuemax`,String(i.maxPx));let u=t=>{let a=Jc(t,i);return a===null?null:(n.style.setProperty(r,`${a}px`),e.setAttribute(`aria-valuenow`,String(a)),a)},d=o();d!==null&&u(d);let f=0,p=0;e.addEventListener(`pointerdown`,n=>{n.button===0&&(f=n.clientX,p=t.getBoundingClientRect().width,e.setPointerCapture(n.pointerId),e.dataset.dragging=`true`,n.preventDefault())}),e.addEventListener(`pointermove`,t=>{e.hasPointerCapture(t.pointerId)&&u(p+l*(t.clientX-f))});let m=t=>{e.releasePointerCapture(t.pointerId),delete e.dataset.dragging};e.addEventListener(`pointerup`,t=>{e.hasPointerCapture(t.pointerId)&&(m(t),s(u(p+l*(t.clientX-f))))}),e.addEventListener(`pointercancel`,t=>{e.hasPointerCapture(t.pointerId)&&(m(t),u(p))}),e.addEventListener(`dblclick`,()=>{n.style.removeProperty(r),e.setAttribute(`aria-valuenow`,String(Math.round(t.getBoundingClientRect().width))),s(null)}),e.addEventListener(`keydown`,e=>{let n=Yc(e.key,a);if(n===null)return;e.preventDefault();let r=u(t.getBoundingClientRect().width+l*n);r!==null&&s(r)})}var Zc={merged:`M5.45 5.154A4.25 4.25 0 0 0 9.25 7.5h1.378a2.251 2.251 0 1 1 0 1.5H9.25A5.734 5.734 0 0 1 5 7.123v3.505a2.25 2.25 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.95-.218ZM4.25 13.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm8.5-4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM5 3.25a.75.75 0 1 0 0 .005V3.25Z`,draft:`M3.25 1A2.25 2.25 0 0 1 4 5.372v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.251 2.251 0 0 1 3.25 1Zm9.5 14a2.25 2.25 0 1 1 0-4.5 2.25 2.25 0 0 1 0 4.5ZM2.5 3.25a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0ZM3.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm9.5 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM14 7.5a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Zm0-4.25a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Z`,conflict:`M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z`,behind:`M13.03 8.22a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L3.47 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018l2.97 2.97V3.75a.75.75 0 0 1 1.5 0v7.44l2.97-2.97a.75.75 0 0 1 1.06 0Z`,failed:`M2.343 13.657A8 8 0 1 1 13.658 2.343 8 8 0 0 1 2.343 13.657ZM6.03 4.97a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042L6.94 8 4.97 9.97a.749.749 0 0 0 .326 1.275.749.749 0 0 0 .734-.215L8 9.06l1.97 1.97a.749.749 0 0 0 1.275-.326.749.749 0 0 0-.215-.734L9.06 8l1.97-1.97a.749.749 0 0 0-.326-1.275.749.749 0 0 0-.734.215L8 6.94Z`,running:`M8 4a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z`,passed:`M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z`,ready:`M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16Zm3.78-9.72a.751.751 0 0 0-.018-1.042.751.751 0 0 0-1.042-.018L6.75 9.19 5.28 7.72a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042l2 2a.75.75 0 0 0 1.06 0Z`,"changes-requested":`M1 1.75C1 .784 1.784 0 2.75 0h7.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177l-2.914-2.914a.25.25 0 0 0-.177-.073ZM8 3.25a.75.75 0 0 1 .75.75v1.5h1.5a.75.75 0 0 1 0 1.5h-1.5v1.5a.75.75 0 0 1-1.5 0V7h-1.5a.75.75 0 0 1 0-1.5h1.5V4A.75.75 0 0 1 8 3.25Zm-3 8a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Z`,thread:`M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z`,reviewer:`M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z`,"your-turn":`M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16ZM3 5a5 5 0 0 1 10 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.255.255 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.017.017 0 0 0-.003.01l.001.006c0 .002.002.004.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007a.017.017 0 0 0-.003-.01l-1.703-2.554a1.745 1.745 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5Z`,queued:`M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm7-3.25v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5a.75.75 0 0 1 1.5 0Z`,discarded:`M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm9.78-2.22-5.5 5.5a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l5.5-5.5a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z`,stale:`M1.705 8.005a.75.75 0 0 1 .834.656 5.5 5.5 0 0 0 9.592 2.97l-1.204-1.204a.25.25 0 0 1 .177-.427h3.646a.25.25 0 0 1 .25.25v3.646a.25.25 0 0 1-.427.177l-1.38-1.38A7.002 7.002 0 0 1 1.05 8.84a.75.75 0 0 1 .656-.834ZM8 2.5a5.487 5.487 0 0 0-4.131 1.869l1.204 1.204A.25.25 0 0 1 4.896 6H1.25A.25.25 0 0 1 1 5.75V2.104a.25.25 0 0 1 .427-.177l1.38 1.38A7.002 7.002 0 0 1 14.95 7.16a.75.75 0 0 1-1.49.178A5.5 5.5 0 0 0 8 2.5Z`,unknown:`M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.92 6.085h.001a.749.749 0 1 1-1.342-.67c.169-.339.436-.701.849-.977C6.845 4.16 7.369 4 8 4a2.756 2.756 0 0 1 1.637.525c.503.377.863.965.863 1.725 0 .448-.115.83-.329 1.15-.205.307-.47.513-.692.662-.109.072-.22.138-.313.195l-.006.004a6.24 6.24 0 0 0-.26.16.952.952 0 0 0-.276.245.75.75 0 0 1-1.248-.832c.184-.264.42-.489.692-.661.103-.067.207-.132.313-.195l.007-.004c.1-.061.182-.11.258-.161a.969.969 0 0 0 .277-.245C8.96 6.514 9 6.427 9 6.25a.612.612 0 0 0-.262-.525A1.27 1.27 0 0 0 8 5.5c-.369 0-.595.09-.74.187a1.01 1.01 0 0 0-.34.398ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z`,none:`M2 7.75A.75.75 0 0 1 2.75 7h10a.75.75 0 0 1 0 1.5h-10A.75.75 0 0 1 2 7.75Z`};function Qc(e,t){let n=Dn(16,16);return n.classList.add(`pr-status-icon`),t&&(n.dataset.tone=t),n.append(hn(`path`,{d:Zc[e],fill:`currentColor`})),n}function $c(e,{className:t=``,linkUrl:n,ariaLabel:r,onActivate:i}={}){let a=`signal ${t}`.trim(),o=n?fe(a,``,n,e.hoverText):A(`span`,a);return o.title=e.hoverText,r&&o.setAttribute(`aria-label`,r),e.look&&(o.dataset.tone=e.look.tone,o.append(Qc(e.look.icon,e.look.tone))),o.append(e.text),i&&el(o,i,!n),o}function el(e,t,n){e.addEventListener(`click`,e=>{e.stopPropagation(),!e.defaultPrevented&&(e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),t()))}),n&&(e.tabIndex=0,e.setAttribute(`role`,`button`)),e.addEventListener(`keydown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.stopPropagation(),e.preventDefault(),t()))})}function tl(e){e.removeAttribute(`tabindex`),e.removeAttribute(`role`)}function nl(e,t){if(e.closest(`button, a[href]`))for(let e of t){tl(e);for(let t of e.querySelectorAll(`[role="button"]`))tl(t)}}function rl(e){if(e.overflowCount===0)return null;let t=A(`span`,`signal-overflow`,`+${e.overflowCount}`);return t.title=e.overflowHoverText,t}function il(e,t,n=e=>$c(e,e)){let r=cc(t);if(e.dataset.signalSignature===r)return;e.dataset.signalSignature=r;let i=sc(t),a=i.visible.map(n),o=rl(i);o&&a.push(o),nl(e,a),e.hidden=a.length===0,e.replaceChildren(...a)}var al=[],ol=`plan`,sl={parked:{text:`PARKED`,hoverText:`Merge parked`,look:{icon:`failed`,tone:`danger`},tier:ic.broken},merging:{text:`MERGING`,hoverText:`Merging`,look:{icon:`queued`,tone:`wait`},tier:ic.waiting}};function cl(e){al.push(e)}function ll(e){let t=sl[e];return t?[{...t,key:`merge`}]:[]}function ul(e){let t=e.closest(`.session-row`),n=t?.dataset.id;t&&n&&il(e,[...ll(t.dataset.merge??``),...al.flatMap(e=>e(n))])}function dl(){for(let e of document.querySelectorAll(`.session-row-signals`))ul(e)}function fl(e,t=``){let n=A(e,`session-row ${t}`.trim());return n.innerHTML=`<span class="session-row-glyph" aria-hidden="true"></span><span class="session-row-main"><span class="session-row-title"><span class="session-row-name"></span><span class="session-row-cloud" hidden></span></span><span class="session-row-task" hidden></span><span class="session-row-ownership" hidden></span><span class="session-row-meta"><span class="session-row-label"></span><span class="session-row-signals" hidden></span></span></span><span class="session-row-elapsed" aria-hidden="true"></span><span class="session-row-attention-tab" aria-hidden="true" hidden></span>`,{row:n,refs:{glyph:k(n,`.session-row-glyph`),label:k(n,`.session-row-label`),ownership:k(n,`.session-row-ownership`),name:k(n,`.session-row-name`),cloud:k(n,`.session-row-cloud`),task:k(n,`.session-row-task`),signals:k(n,`.session-row-signals`),elapsed:k(n,`.session-row-elapsed`),attentionTab:k(n,`.session-row-attention-tab`)}}}function pl(e,t){let n=A(`div`,`session-row-item`),r=A(`button`,`session-row-remove`);return r.append(mn(bn)),r.type=`button`,r.title=`Remove session`,r.setAttribute(`aria-label`,`Remove session`),r.addEventListener(`click`,e=>{e.stopPropagation(),t()}),n.append(e,r),{item:n,removeButton:r}}function ml(e,t,n,r=!1,i=null){e.dataset.state=n,e.dataset.prompt=i??``;let{icon:a,label:o,isMonitoring:s}=ke(n,r),c=i===ol?`Plan ready`:o;return e.toggleAttribute(`data-monitoring`,s),En(t.glyph,a),t.label.textContent=c,c}function hl(e,t){return e.hidden=!t,t?(e.title=rr(t),e.firstChild||e.append(mn(vn)),e.title):null}function gl(e){let t=e.ownerId?F.get(e.ownerId):void 0,n=t?ct(t):null,r=e.card.dataset.id,i=[...F.values()].filter(e=>e.ownerId===r).length;return On({ownerName:n,ownedCount:i})}function _l(e,t,n){let r=gl(n);return t.ownership.textContent=r??``,t.ownership.hidden=r===null,e.closest(`.session-row-item`)?.toggleAttribute(`data-owned`,n.ownerId!==null&&F.has(n.ownerId)),sr(n.card,r),r}function vl(e){return e===null?null:e===1?`next up`:`#${e} in line`}function yl(e,t,n){t.hidden=n===null,t.textContent=n===null?``:String(n),e.toggleAttribute(`data-attention-head`,n===1)}function bl(e,t,{ui:n,state:r,name:i,mergeStatus:a,attentionPosition:o}){let s=ml(e,t,r,n.awaitingBackgroundTasks,n.pendingPromptKind);t.name.textContent=i;let c=hl(t.cloud,n.card.dataset.remoteWorkspace);t.task.textContent=n.taskTitle,t.task.hidden=!n.taskTitle||n.taskTitle===i,e.dataset.merge=a,ul(t.signals),e.dataset.activity=n._activity||``,t.elapsed.textContent=nt(n);let l=_l(e,t,n);yl(e,t.attentionTab,o);let u=[i,c,n.taskTitle,s,l,vl(o)].filter(Boolean).join(`, `);return e.setAttribute(`aria-label`,u),e.title=u,s}var xl={ready:{label:`Ready`,meaning:`Ready to merge, or nothing left for you to do.`},passed:{label:`Passed`,meaning:`Checks passing, approved, or nothing open.`},failed:{label:`Failed`,meaning:`Checks failing, an automated review failed, or an auto-rebase failed.`},conflict:{label:`Conflict`,meaning:`Merge conflicts with the base branch.`},"your-turn":{label:`Your turn`,meaning:`Waiting on you: a review to give or a thread to answer.`},"changes-requested":{label:`Changes`,meaning:`A reviewer requested changes.`},thread:{label:`Threads`,meaning:`Unresolved review threads or comments.`},behind:{label:`Behind`,meaning:`The branch is behind its base.`},stale:{label:`Out of date`,meaning:`New commits landed since the automated review.`},running:{label:`Running`,meaning:`Checks or an automated review in progress.`},reviewer:{label:`Reviewer`,meaning:`Waiting on a reviewer.`},queued:{label:`Queued`,meaning:`Waiting for an automated review slot.`},draft:{label:`Draft`,meaning:`Still a draft.`},merged:{label:`Merged`,meaning:`Merged.`},discarded:{label:`Discarded`,meaning:`Review discarded or dismissed.`},unknown:{label:`Unknown`,meaning:`GitHub has not computed this yet.`},none:{label:`None`,meaning:`Nothing applies, such as no checks or no review requested.`}},Sl=(e,t,n=!1)=>({state:e,awaitingBackgroundTasks:n,label:n?`Monitoring`:_[e],meaning:t}),Cl=Object.freeze([Sl(b.DORMANT,`Not started yet.`),Sl(b.STARTING,`Setting up the worktree and booting the agent.`),Sl(b.RUNNING,`The agent is mid-turn.`),Sl(b.RUNNING,`The turn ended but background tasks or sub-agents are still running.`,!0),Sl(b.WAITING,`Waiting on a permission prompt or your answer.`),Sl(b.COMPLETE,`Finished a turn you have not looked at yet.`),Sl(b.IDLE,`Ready for the next prompt.`),Sl(b.DONE,`The agent process ended.`),Sl(b.FAILED,`The agent failed to start or crashed. A red line above the terminal says why it could not start; its terminal output shows a crash.`)]);function wl(e,t){let n=A(`section`,`status-legend`),r=A(`dl`,`status-legend-rows`);return r.append(...t),n.append(A(`h2`,`status-legend-title`,e),r),n}function Tl(e,t){let n=A(`div`,`status-legend-row`);return n.append(e,A(`dd`,`status-legend-meaning`,t)),n}function El(){return wl(`Status colors`,Cl.map(e=>{let t=A(`dt`,`status-legend-badge`),n=A(`span`,`status-legend-glyph`),r=A(`span`,`status-legend-name`);n.setAttribute(`aria-hidden`,`true`),t.append(n,r);let i=Tl(t,e.meaning);return ml(i,{glyph:n,label:r},e.state,e.awaitingBackgroundTasks),i}))}function Dl(){return wl(`Pull request icons`,Object.keys(xl).map(e=>{let t=xl[e],n=A(`dt`,`status-legend-badge`);return n.append(Qc(e),A(`span`,`status-legend-name`,t.label)),Tl(n,t.meaning)}))}var Ol=new Set(kt());function kl(){bt([...Ol])}function Al(e){if(!e)return;let t=String(e);Ol.has(t)||(Ol.add(t),kl())}function jl(e,t){let n=new Set;for(let r of e||[]){let e=t(r);if(!e)continue;let i=String(e);n.add(i),Al(i)}return[...Ol].filter(e=>!n.has(e))}function Ml(e){return!e||!Ol.delete(String(e))?!1:(kl(),!0)}var Nl=Object.freeze({[b.IDLE]:`compaction_restore_idle`,[b.COMPLETE]:`compaction_restore_complete`,[b.WAITING]:`compaction_restore_waiting`});function Pl(e){return Object.values(Nl).some(t=>t===e)}var Fl=new Set([`claude-code`,`codex`]),Il=`\x1B`,Ll=`${Il}[200~`,Rl=`${Il}[201~`,zl=400,Bl=4e3,Vl=/^\[Image: source: (.+)\]$/,Hl=`uploads`,Ul=new Set([`Agent`,`Task`]),Wl=/^Async agent launched/,Gl=`<task-notification>`,Kl=/<tool-use-id>([^<]+)<\/tool-use-id>/,ql=/<task-id>([^<]+)<\/task-id>/,Jl=/agentId: ([\w-]+)/,Yl=/<status>([^<]+)<\/status>/,Xl=6e5;function Zl(e){return typeof e==`string`&&Fl.has(e)}function Ql(e,t){if(!Zl(e))return null;let n=t.replace(/\r\n?/g,`
|
|
8
|
+
`).trim();return n?[{data:n.includes(`
|
|
9
|
+
`)?`${Ll}${n}${Rl}`:n,delayBeforeMs:0},{data:`\r`,delayBeforeMs:zl}]:null}function $l(e){return Zl(e)?[{data:`\r`,delayBeforeMs:0}]:null}function eu(e){return Zl(e)?[{data:Il,delayBeforeMs:0}]:null}function tu(e,t){return e===b.WAITING&&typeof t==`string`&&t!==``}function nu(e,t){return e.uuid??`${e.kind}-${e.ts}-${t}`}function ru(e){return typeof e.agentId==`string`}function iu(e){let t=Vl.exec(e.trim());if(!t)return null;let[n,r,i]=t[1].split(/[\\/]/).slice(-3);return n!==Hl||!r||!i?null:`/upload/${encodeURIComponent(r)}/${encodeURIComponent(i)}`}function au(e,t){let n=e[e.length-1];n?.kind===`user`&&n.imageUrls.push(t)}function ou(e){if(!e||typeof e!=`object`)return`Agent`;let t=e.description;return typeof t==`string`&&t.trim()?t.trim():`Agent`}function su(e,t,n){if(!e)return;if(t.isError){e.state=`failed`;return}if(!Wl.test(t.content)){e.state=`done`;return}let r=Jl.exec(t.content)?.[1];r&&n.set(r,e)}function cu(e){return e.trimStart().startsWith(Gl)}function lu(e,t,n){let r=Kl.exec(e)?.[1];if(r)return t.get(r);let i=ql.exec(e)?.[1];return i?n.get(i):void 0}function uu(e,t,n){let r=lu(e,t,n);r?.state===`running`&&(r.state=Yl.exec(e)?.[1]===`completed`?`done`:`failed`)}function du(e){let t=[],n=new Map,r=new Map,i=new Map,a=new Map,o=null;function s(){o&&t.push(o),o=null}function c(e,t){return o??={kind:`work`,key:e,steps:[],agentRuns:[],startedAt:t,endedAt:t},o.endedAt=Math.max(o.endedAt,t),o}return e.forEach((e,o)=>{let l=nu(e,o);if(!ru(e)){if((e.kind===`prompt`||e.kind===`expansion`)&&cu(e.text))uu(e.text,i,a);else if(e.kind===`prompt`)s(),t.push({kind:`user`,key:l,text:e.text,at:e.ts,imageUrls:[]});else if(e.kind===`expansion`)for(let n of e.text.split(`
|
|
10
|
+
`)){let e=iu(n);e&&au(t,e)}else if(e.kind===`assistant`){if(!e.text.trim())return;t.push({kind:`assistant`,key:l,text:e.text,at:e.ts})}else if(e.kind===`notice`)t.push({kind:`notice`,key:l,text:e.text,at:e.ts});else if(e.kind===`thinking`)c(l,e.ts);else if(e.kind===`tool_call`){let t=c(l,e.ts),a={isRunning:!0};if(t.steps.push(a),n.set(e.toolUseId,a),r.set(e.toolUseId,t),!Ul.has(e.name))return;let o={key:l,description:ou(e.input),state:`running`};t.agentRuns.push(o),i.set(e.toolUseId,o)}else if(e.kind===`tool_result`){let t=n.get(e.toolUseId),o=r.get(e.toolUseId);if(!t||!o)return;t.isRunning=!1,o.endedAt=Math.max(o.endedAt,e.ts),su(i.get(e.toolUseId),e,a)}}}),s(),t}function fu(e){return e.flatMap(e=>e.kind===`work`?e.agentRuns.filter(e=>e.state===`running`):[])}function pu(e){let t=e.at(-1);return t?.kind===`work`?t:null}function mu(e){return new Set(e.flatMap(e=>e.kind===`user`?[e.key]:[]))}function hu(e,t,n){if(n-e.sentAt>Xl)return!0;let r=e.text.trim();return t.some(t=>t.kind===`user`&&!e.userKeysAtSend.has(t.key)&&t.text.includes(r))}function gu(e){return`${e} ${e===1?`agent`:`agents`}`}function _u(e){let t=Math.max(1,Math.round(e/1e3)),n=Math.floor(t/60),r=t%60;return n===0?`${r}s`:r===0?`${n}m`:`${n}m ${r}s`}function vu(e){let t=e.agentRuns.length>0?`, ${gu(e.agentRuns.length)}`:``;return`Worked ${_u(e.endedAt-e.startedAt)}${t}`}function yu(e,t){let n=t>0?`${gu(t)} running`:``;return e===null?n:n?`Working ${_u(e)}, ${n}`:`Working ${_u(e)}`}function bu(e){return e.length<=Bl?e:e.slice(e.length-Bl)}var xu=`CommitMono`,Su=[400,700].map(e=>`${e} 14px ${xu}`),Cu=`monospace`;function wu(e){return e.trim().replace(/^['"]|['"]$/g,``)}function Tu(e,t){let n=e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0),r=t?n:n.filter(e=>wu(e)!==xu);return r.length>0?r.join(`, `):Cu}function Eu(e,t,n){return Promise.all(t.map(t=>e.load(t))).then(n,()=>void 0)}function Du(e,t){for(let n of e)n.term&&(n.term.options.fontFamily=t,n._syncGrid?.())}function Ou(){return document.fonts?Su.every(e=>document.fonts.check(e)):!1}function ku(){return Tu(getComputedStyle(document.documentElement).getPropertyValue(`--font-mono`),Ou())}function Au(e){document.fonts&&Eu(document.fonts,Su,e)}var ju=Zt(navigator.userAgent),Mu=`next-attention-keys`,Nu=en();function Pu(){return Nu}function Fu(e,t){t.forEach((t,n)=>{n>0&&e.appendChild(A(`span`,`shortcut-sep`,`+`)),e.appendChild(A(`kbd`,`kbd`,t))})}function Iu(e){let t=A(`span`,`shortcut-keys`);return Fu(t,e),t}function Lu(){let e=Iu(rn(`next-attention`,ju,Nu));return e.classList.add(Mu),e}function Ru(e){Nu=e;let t=rn(`next-attention`,ju,e);for(let e of document.querySelectorAll(`.${Mu}`))e.replaceChildren(),Fu(e,t)}var zu=3e4,Bu=24,Vu=null,Hu=[`Android`,`iPhone`,`iPad`,`Windows`,`Mac OS X`,`Linux`],Uu=[/Firefox\/\d+/,/Edg\/\d+/,/Chrome\/\d+/,/Version\/\d+/];function Wu(){let e=navigator.userAgent,t=Hu.find(t=>e.includes(t))??`unknown platform`;return`${Uu.map(t=>t.exec(e)?.[0]).find(e=>e!==void 0)?.replace(`Version`,`Safari`)??`unknown browser`} on ${t}`}function Gu(){let e=Reflect.get(navigator,`connection`);if(typeof e!=`object`||!e)return[];let t=Reflect.get(e,`type`),n=Reflect.get(e,`rtt`);return[typeof t==`string`?t:``,typeof n==`number`?`${n}ms`:``].filter(e=>e!==``)}function Ku(){return[navigator.onLine?`online`:`offline`,...Gu()].join(` `)}function qu(e,t){let n=[],r=0;for(let i of e){let e=i.length+1;if(r+e>t)break;n.push(i),r+=e}return{takenMarks:n,usedChars:r}}function Ju(e,t){let n=e.join(` `);if(n.length<=t)return n;let r=t-Bu,i=qu(e,r/2),a=qu(e.slice(i.takenMarks.length).reverse(),r-i.usedChars),o=e.length-i.takenMarks.length-a.takenMarks.length;return[...i.takenMarks,`(${o} marks dropped)`,...a.takenMarks.reverse()].join(` `)}function Yu(e){return e.marks.some(e=>e.startsWith(`terminal-bytes`))}function Xu(e){let t=Yu(e)&&!e.isCapped?`terminal live`:`terminal not live after ${zu/1e3} s`,n=`hidden ${Math.round(e.hiddenForMs/1e3)} s, ${t}, ${Wu()}, ${e.networkAtWake}: `,r=n+Ju(e.marks,be-n.length);return j({type:`client-log`,scope:`wake`,text:r.slice(0,be)})}function Zu(){let e=Vu;e&&(e.isCapped||Yu(e))&&Xu(e)&&(Vu=null,clearTimeout(e.capTimer))}function Qu(){Vu&&(Vu.isCapped=!0,Zu())}function $u(e,t){e.marks.push(`${t}+${Math.round(performance.now()-e.startedAtMs)}`)}function ed(e){Vu&&(e===`terminal-bytes`&&Yu(Vu)||($u(Vu,e),(e===`terminal-bytes`||e===`control-opened`)&&Zu()))}function td(e){Vu&&$u(Vu,e===`link`?[`link`,...Gu()].join(`-`):e)}function nd(e,t){Vu||={startedAtMs:performance.now(),hiddenForMs:t,networkAtWake:Ku(),marks:[],isCapped:!1,capTimer:setTimeout(Qu,zu)},ed(e)}var rd=6,id=262144,ad=16384,od=()=>{};function sd(e,t){if(t.length<=ad)e.push(t);else for(let n=0;n<t.length;n+=ad)e.push(t.slice(n,n+ad))}function cd({budget:e=rd,maxChunkBytes:t=id,requestFrame:n,cancelFrame:r}={}){let i=n||(e=>requestAnimationFrame(e)),a=r||(e=>cancelAnimationFrame(e)),o=new Map,s=[],c=0,l=null;function u(){l===null&&(l=i(h))}function d(e){return e.readIdx<e.pending.length}function f(e){d(e)||(e.pending.length=0,e.readIdx=0,e.dirty=!1)}function p(e){return!!(e?.live&&e.dirty&&!e.inFlight&&d(e))}function m(){for(let e of o.values())if(p(e))return!0;return!1}function h(){l=null;let n=s.length,r=0;for(let i=0;i<n&&r<e;i++){let e=s[(c+i)%n],a=o.get(e);if(!p(a))continue;let l=[],m=0;for(;a.readIdx<a.pending.length;){let e=a.pending[a.readIdx];if(typeof e!=`string`){if(m>0)break;a.readIdx++,e.run();continue}let n=t-m;if(m+e.length<=t)sd(l,e),m+=e.length,a.readIdx++;else{m===0&&(sd(l,e.slice(0,n)),m+=n,a.pending[a.readIdx]=e.slice(n));break}}let h=l.pop();if(h===void 0)f(a),r++;else{f(a),d(a)&&a.readIdx>=64&&(a.pending.splice(0,a.readIdx),a.readIdx=0),a.inFlight=!0;for(let e of l)a.write(e,od);a.write(h,()=>{a.live&&(a.inFlight=!1,d(a)&&(a.dirty=!0,u()))}),r++}}n>0&&(c=(c+1)%n),m()&&u()}return{register(e,t){let n=o.get(e);n?(n.write=t,n.live=!0):(o.set(e,{write:t,pending:[],readIdx:0,inFlight:!1,dirty:!1,live:!0}),s.push(e))},unregister(e){let t=o.get(e);if(!t)return;t.live=!1,o.delete(e);let n=s.indexOf(e);n!==-1&&s.splice(n,1),c>=s.length&&(c=0)},enqueue(e,t){let n=o.get(e);n&&t&&(n.pending.push(t),n.dirty=!0,u())},enqueueAction(e,t){let n=o.get(e);n&&(n.pending.push({run:t}),n.dirty=!0,u())},has(e){return o.has(e)},size(){return o.size},running(){return l!==null},stop(){l!==null&&(a(l),l=null)}}}var ld=cd(),ud=.3,dd=null;function fd(){return ft(dd)}function pd(e){return xt(e,dd)}async function md(){try{let e=await fetch(zt,{credentials:`same-origin`,cache:`no-store`});e.ok&&(dd=un(await e.json()))}catch{}}function hd(){let e=new AudioContext;return e.state===`suspended`&&e.resume(),e}function gd(e,t){setTimeout(()=>e.close().catch(()=>{}),(t+.1)*1e3)}function _d(e){vd(on[e]??on.chime)}function vd(e){let t=hd(),n=t.createGain();n.gain.value=e.peakGain,n.connect(t.destination);let r=t.currentTime,i=0;for(let a of e.tones){let e=r+a.startSeconds,o=e+a.durationSeconds,s=t.createOscillator(),c=t.createGain();s.type=a.waveform,s.frequency.setValueAtTime(a.frequency,e),a.endFrequency&&s.frequency.exponentialRampToValueAtTime(a.endFrequency,o),c.gain.setValueAtTime(.001,e),c.gain.exponentialRampToValueAtTime(a.gain??1,e+.01),c.gain.exponentialRampToValueAtTime(.001,o),s.connect(c),c.connect(n),s.start(e),s.stop(o),i=Math.max(i,a.startSeconds+a.durationSeconds)}gd(t,i)}async function yd(e){try{let t=await fetch(Mt(e),{credentials:`same-origin`});return t.ok?await t.arrayBuffer():null}catch{return null}}async function bd(e){let t=await yd(e);if(!t)return!1;let n=hd();try{let e=await n.decodeAudioData(t),r=n.createGain();r.gain.value=ud,r.connect(n.destination);let i=n.createBufferSource();return i.buffer=e,i.connect(r),i.start(),gd(n,e.duration),!0}catch{return n.close().catch(()=>{}),!1}}var xd=[659.25,830.61,987.77,1108.73,987.77,830.61,739.99,659.25,739.99,830.61,987.77,1108.73,987.77,830.61];function Sd(){try{let e=new AudioContext;if(e.state===`suspended`&&e.resume(),e.state===`suspended`)return;let t=e.createGain();t.gain.value=.05,t.connect(e.destination);let n=.125,r=e.currentTime;for(let i=0;i<xd.length;i++){let a=r+i*n,o=e.createOscillator(),s=e.createGain();o.type=`square`,o.frequency.value=xd[i],s.gain.setValueAtTime(.001,a),s.gain.exponentialRampToValueAtTime(1,a+.01),s.gain.exponentialRampToValueAtTime(.001,a+n*.9),o.connect(s),s.connect(t),o.start(a),o.stop(a+n)}let i=r+xd.length*n;t.gain.setValueAtTime(.05,i-.05),t.gain.exponentialRampToValueAtTime(.001,i),setTimeout(()=>e.close().catch(()=>{}),(i-r+.1)*1e3)}catch{}}function Cd(){try{_d(Ot)}catch{}}function wd(e){try{let t=pd(e),n=fn(t);if(!n){_d(t);return}bd(n).then(e=>{e||Cd()})}catch{}}var Td={"--state-monitoring":`#22d3ee`,"--state-monitoring-bg":`rgba(34, 211, 238, 0.06)`,"--state-running":`#22c55e`,"--state-running-bg":`rgba(34, 197, 94, 0.06)`,"--state-waiting":`#f59e0b`,"--state-waiting-bg":`rgba(245, 158, 11, 0.08)`,"--state-failed":`#ef4444`,"--state-failed-bg":`rgba(239, 68, 68, 0.06)`,"--state-initializing":`#6b7280`,"--state-initializing-bg":`rgba(107, 114, 128, 0.06)`,"--state-idle":`#eab308`,"--state-idle-bg":`rgba(234, 179, 8, 0.06)`},Ed={background:`--bg-card`,cursor:`--accent`,cursorAccent:`--bg-card`,black:`--border`,brightBlack:`--text-muted`,red:`#ef4444`,brightRed:`#f87171`,green:`#22c55e`,brightGreen:`#4ade80`,yellow:`#eab308`,brightYellow:`#facc15`,cyan:`#06b6d4`,brightCyan:`#22d3ee`},Dd={golgari:{label:`Golgari (Green/Black)`,colors:{"--bg":`#060b08`,"--bg-card":`#0a120e`,"--bg-header":`#081009`,"--bg-surface":`#0e1a12`,"--border":`#1a2e1f`,"--border-dim":`#122016`,"--border-hover":`#2a4a32`,"--text":`#b8ccbe`,"--text-dim":`#6a9070`,"--text-head":`#dceede`,"--text-muted":`#7a9a80`,"--accent":`#2dd4a0`,"--accent-dim":`#1a9a6e`,...Td,"--state-monitoring":`#22d3ee`,"--state-monitoring-bg":`rgba(34, 211, 238, 0.08)`,"--state-done":`#94a3b8`,"--state-done-bg":`rgba(45, 212, 160, 0.06)`,"--state-starting":`#a78bfa`,"--state-starting-bg":`rgba(167, 139, 250, 0.06)`,"--state-complete":`#34d399`,"--state-complete-bg":`rgba(52, 211, 153, 0.06)`},terminal:{...Ed,foreground:`#c8dece`,blue:`--accent`,brightBlue:`#5ee8bc`,magenta:`#a855f7`,brightMagenta:`#c084fc`,white:`#c8dece`,brightWhite:`#e8f5ea`}},midnight:{label:`Midnight (Blue/Purple)`,colors:{"--bg":`#080816`,"--bg-card":`#0e0e20`,"--bg-header":`#0b0b1a`,"--bg-surface":`#131328`,"--border":`#1c1c38`,"--border-dim":`#141430`,"--border-hover":`#2a2a50`,"--text":`#b8b8d4`,"--text-dim":`#8585b3`,"--text-head":`#dcdcf0`,"--text-muted":`#7c7ca9`,"--accent":`#4f6ef7`,"--accent-dim":`#3a54c0`,...Td,"--state-monitoring":`#22d3ee`,"--state-monitoring-bg":`rgba(34, 211, 238, 0.08)`,"--state-done":`#94a3b8`,"--state-done-bg":`rgba(59, 130, 246, 0.06)`,"--state-starting":`#a855f7`,"--state-starting-bg":`rgba(168, 85, 247, 0.06)`,"--state-complete":`#60a5fa`,"--state-complete-bg":`rgba(96, 165, 250, 0.06)`},terminal:{...Ed,foreground:`#c8c8e0`,blue:`--accent`,brightBlue:`#60a5fa`,magenta:`#a855f7`,brightMagenta:`#c084fc`,white:`#c8c8e0`,brightWhite:`#e8e8ff`}},phyrexian:{label:`Phyrexian (Iridescent)`,colors:{"--bg":`#0a0810`,"--bg-card":`#100e18`,"--bg-header":`#0c0a14`,"--bg-surface":`#16122a`,"--border":`#2a2440`,"--border-dim":`#1e1a32`,"--border-hover":`#3e3660`,"--text":`#c8c0e0`,"--text-dim":`#8d82b9`,"--text-head":`#e8e0ff`,"--text-muted":`#8579b1`,"--accent":`#c084fc`,"--accent-dim":`#9656d6`,...Td,"--state-monitoring":`#60a5fa`,"--state-monitoring-bg":`rgba(96, 165, 250, 0.08)`,"--state-done":`#67e8f9`,"--state-done-bg":`rgba(103, 232, 249, 0.06)`,"--state-starting":`#f472b6`,"--state-starting-bg":`rgba(244, 114, 182, 0.06)`,"--state-complete":`#34d399`,"--state-complete-bg":`rgba(52, 211, 153, 0.06)`},terminal:{...Ed,foreground:`#c8c0e0`,blue:`#67e8f9`,brightBlue:`#a5f3fc`,magenta:`--accent`,brightMagenta:`#d8b4fe`,white:`#c8c0e0`,brightWhite:`#e8e0ff`}},compleated:{label:`Compleated (Light)`,colors:{"--bg":`#ece8e0`,"--bg-card":`#f7f4ee`,"--bg-header":`#f0ece4`,"--bg-surface":`#e4e0d6`,"--border":`#b8b0a0`,"--border-dim":`#ccc6b8`,"--border-hover":`#908878`,"--text":`#2a2622`,"--text-dim":`#5a5448`,"--text-head":`#0e0c0a`,"--text-muted":`#676157`,"--accent":`#0e0c0a`,"--accent-dim":`#2a2622`,"--state-running":`#16803c`,"--state-running-bg":`rgba(22, 128, 60, 0.08)`,"--state-waiting":`#b45309`,"--state-waiting-bg":`rgba(180, 83, 9, 0.08)`,"--state-failed":`#dc2626`,"--state-failed-bg":`rgba(220, 38, 38, 0.06)`,"--state-monitoring":`#0e7490`,"--state-monitoring-bg":`rgba(14, 116, 144, 0.08)`,"--state-done":`#64748b`,"--state-done-bg":`rgba(26, 24, 22, 0.06)`,"--state-initializing":`#6b7280`,"--state-initializing-bg":`rgba(107, 114, 128, 0.06)`,"--state-idle":`#a16207`,"--state-idle-bg":`rgba(161, 98, 7, 0.06)`,"--state-starting":`#7c3aed`,"--state-starting-bg":`rgba(124, 58, 237, 0.06)`,"--state-complete":`#059669`,"--state-complete-bg":`rgba(5, 150, 105, 0.06)`},terminal:{background:`#faf8f4`,foreground:`#1a1816`,cursor:`#1a1816`,cursorAccent:`#faf8f4`,black:`#1a1816`,brightBlack:`#5a5448`,red:`#b91c1c`,brightRed:`#dc2626`,green:`#15803d`,brightGreen:`#16a34a`,yellow:`#92400e`,brightYellow:`#a16207`,blue:`#1d4ed8`,brightBlue:`#2563eb`,magenta:`#6d28d9`,brightMagenta:`#7c3aed`,cyan:`#0e7490`,brightCyan:`#0891b2`,white:`#5a5448`,brightWhite:`#3a3630`}},unicorn:{label:`Rainbow Unicorns (Dark)`,colors:{"--bg":`#191022`,"--bg-card":`#201730`,"--bg-header":`#1c1329`,"--bg-surface":`#281c3c`,"--border":`#3a2c52`,"--border-dim":`#2a2040`,"--border-hover":`#55407a`,"--text":`#d4c8e6`,"--text-dim":`#9a88b8`,"--text-head":`#ede4fa`,"--text-muted":`#a897c4`,"--accent":`#e8a3c4`,"--accent-dim":`#c4739e`,"--state-running":`#42d780`,"--state-running-bg":`rgba(66, 215, 128, 0.10)`,"--state-waiting":`#f79f3b`,"--state-waiting-bg":`rgba(247, 159, 59, 0.10)`,"--state-failed":`#f05442`,"--state-failed-bg":`rgba(240, 84, 66, 0.13)`,"--state-monitoring":`#2dd4bf`,"--state-monitoring-bg":`rgba(45, 212, 191, 0.08)`,"--state-done":`#f04ca4`,"--state-done-bg":`rgba(240, 76, 164, 0.13)`,"--state-initializing":`#8f87a6`,"--state-initializing-bg":`rgba(143, 135, 166, 0.08)`,"--state-idle":`#bcb02f`,"--state-idle-bg":`rgba(188, 176, 47, 0.08)`,"--state-starting":`#a17ef1`,"--state-starting-bg":`rgba(161, 126, 241, 0.08)`,"--state-complete":`#34baf4`,"--state-complete-bg":`rgba(52, 186, 244, 0.14)`},terminal:{background:`#201730`,foreground:`#d4c8e6`,cursor:`--accent`,cursorAccent:`#201730`,black:`#8c7dab`,brightBlack:`#9c8fb5`,red:`#e8887e`,brightRed:`#f4a89f`,green:`#86e0ab`,brightGreen:`#a3edc0`,yellow:`#f0c674`,brightYellow:`#f5d896`,blue:`#9cb3f0`,brightBlue:`#b5c8f5`,magenta:`#dd8ecf`,brightMagenta:`#e6a8dc`,cyan:`#7fd4d0`,brightCyan:`#a0e6e2`,white:`#d4c8e6`,brightWhite:`#f4ecfc`}},"posthog-light":{label:`PostHog (Light)`,colors:{"--bg":`#eeefe9`,"--bg-card":`#fdfdf8`,"--bg-header":`#eeefe9`,"--bg-surface":`#e5e7e0`,"--border":`#bfc1b7`,"--border-dim":`#d2d3cc`,"--border-hover":`#9ea096`,"--text":`#23251d`,"--text-dim":`#65675e`,"--text-head":`#111111`,"--text-muted":`#73756b`,"--accent":`#c03300`,"--accent-dim":`#8e2600`,"--state-running":`#237a36`,"--state-running-bg":`rgba(77, 117, 51, 0.08)`,"--state-waiting":`#b17816`,"--state-waiting-bg":`rgba(177, 120, 22, 0.10)`,"--state-failed":`#8c0d3b`,"--state-failed-bg":`rgba(140, 13, 59, 0.07)`,"--state-monitoring":`#0e7490`,"--state-monitoring-bg":`rgba(14, 116, 144, 0.08)`,"--state-done":`#3e6b9e`,"--state-done-bg":`rgba(62, 107, 158, 0.08)`,"--state-initializing":`#73756b`,"--state-initializing-bg":`rgba(115, 117, 107, 0.07)`,"--state-idle":`#835c19`,"--state-idle-bg":`rgba(131, 92, 25, 0.07)`,"--state-starting":`#a621c8`,"--state-starting-bg":`rgba(166, 33, 200, 0.07)`,"--state-complete":`#34796f`,"--state-complete-bg":`rgba(52, 121, 111, 0.08)`},terminal:{background:`--bg-card`,foreground:`#23251d`,cursor:`--accent`,cursorAccent:`--bg-card`,black:`#23251d`,brightBlack:`#65675e`,red:`#c03300`,brightRed:`#df6133`,green:`#4d7533`,brightGreen:`#6aa84f`,yellow:`#835c19`,brightYellow:`#b17816`,blue:`#3e6b9e`,brightBlue:`#2f80fa`,magenta:`#74108d`,brightMagenta:`#a621c8`,cyan:`#34796f`,brightCyan:`#30abc6`,white:`#4d4f46`,brightWhite:`#23251d`}},"posthog-dark":{label:`PostHog (Dark)`,colors:{"--bg":`#1e1f23`,"--bg-card":`#25262b`,"--bg-header":`#232429`,"--bg-surface":`#2d2e37`,"--border":`#3e424f`,"--border-dim":`#32343f`,"--border-hover":`#626674`,"--text":`#edeef4`,"--text-dim":`#aeb3c2`,"--text-head":`#fafafa`,"--text-muted":`#9ea096`,"--accent":`#f87a4c`,"--accent-dim":`#f54e00`,"--state-running":`#36c46f`,"--state-running-bg":`rgba(54, 196, 111, 0.08)`,"--state-waiting":`#f7a501`,"--state-waiting-bg":`rgba(247, 165, 1, 0.09)`,"--state-failed":`#f35454`,"--state-failed-bg":`rgba(243, 84, 84, 0.09)`,"--state-monitoring":`#22d3ee`,"--state-monitoring-bg":`rgba(34, 211, 238, 0.08)`,"--state-done":`#589df8`,"--state-done-bg":`rgba(88, 157, 248, 0.08)`,"--state-initializing":`#8f8f8c`,"--state-initializing-bg":`rgba(143, 143, 140, 0.07)`,"--state-idle":`#ffce5c`,"--state-idle-bg":`rgba(255, 206, 92, 0.07)`,"--state-starting":`#8567ff`,"--state-starting-bg":`rgba(133, 103, 255, 0.09)`,"--state-complete":`#29dbbb`,"--state-complete-bg":`rgba(41, 219, 187, 0.08)`},terminal:{background:`--bg-card`,foreground:`#edeef4`,cursor:`--accent`,cursorAccent:`--bg-card`,black:`--border`,brightBlack:`--text-muted`,red:`#f35454`,brightRed:`#f87a4c`,green:`#36c46f`,brightGreen:`#96e5b6`,yellow:`#f7a501`,brightYellow:`#ffce5c`,blue:`#2f80fa`,brightBlue:`#9fc4ff`,magenta:`#8567ff`,brightMagenta:`#e2d6ff`,cyan:`#30abc6`,brightCyan:`#29dbbb`,white:`#aeb3c2`,brightWhite:`#fafafa`}}},Od=`phyrexian`,kd=null;function Ad(e){let t=Dd[e];if(!t)return;let n=kd;kd=e;let r=document.documentElement;r.dataset.theme=e;for(let[e,n]of Object.entries(t.colors))r.style.setProperty(e,n);e===`unicorn`&&n!==null&&n!==`unicorn`&&Sd()}function jd(e){document.documentElement.toggleAttribute(`data-show-usage`,e)}function Md(e){document.documentElement.toggleAttribute(`data-arrow-pad`,e)}function Nd(){let e=Dd[kd||Od];if(!e)return{};let t=getComputedStyle(document.documentElement),n={};for(let[r,i]of Object.entries(e.terminal))n[r]=i.startsWith(`--`)?t.getPropertyValue(i).trim():i;return n}function Pd(){return Object.entries(Dd).map(([e,t])=>({id:e,label:t.label}))}var Fd=e().int().min(1).max(500),Id=e().int().min(1).max(200);r(`type`,[a({type:i(`input`),data:t()}),a({type:i(`claim`),cols:Fd,rows:Id}),a({type:i(`unview`)}),a({type:i(`pause-output`)}),a({type:i(`resume-output`)})]);var Ld=a({type:i(`pty-size`),cols:Fd,rows:Id,seq:e().int().nonnegative()}),Rd=a({type:i(`output-beat`)}),zd=r(`type`,[Ld,Rd]),Bd=`history`,Vd=`output`,Hd=`paused`;n([`screen`,`deep`]);function Ud(e){try{return JSON.parse(e)}catch{return null}}function Wd(e){let t=zd.safeParse(Ud(e));return t.success?t.data:null}function Gd(e,t){return!e||!t?!1:e.cols===t.cols&&e.rows===t.rows}function Kd(e){return!e||!Number.isInteger(e.cols)||!Number.isInteger(e.rows)?!1:e.cols>0&&e.rows>0}function qd(e){return{cols:Math.min(Math.max(e.cols,1),500),rows:Math.min(Math.max(e.rows,1),200)}}function Jd({authoritative:e,isActiveViewer:t,lastClaim:n}){return!(t&&Gd(e,n))}function Yd({isDocumentVisible:e,isDocumentFocused:t,hasFocusInsideCard:n,hasWindowBlurredSinceFocus:r,isPhoneLayout:i}){return e?i||t?!0:n&&!r:!1}function Xd({isBorrowedCard:e,isTerminalFaceShown:t}){return!e||!t}function Zd({viewportTopLine:e,scrollbackLineCount:t,isDeepHistoryLoadedOrPending:n}){return e===0&&t>0&&t<5e3&&!n}function Qd(e,t,n){let r=new URLSearchParams;t&&r.set(Bd,`deep`),n&&r.set(Vd,Hd);let i=`/terminals/${encodeURIComponent(e)}`,a=r.toString();return a?`${i}?${a}`:i}function $d({authoritative:e,isActiveViewer:t,isDocumentEngaged:n,isDataWsOpen:r,lastClaim:i}){return!t||!n||!r?`none`:Jd({authoritative:e,isActiveViewer:t,lastClaim:i})?`rebid`:`resync`}function ef({isActiveViewer:e,lastClaim:t,owedClaim:n}){return e?n??t:null}function tf({authoritative:e,applied:t,proposal:n,isActiveViewer:r,isDataWsOpen:i,lastClaim:a}){let o=!!e&&!Gd(e,t),s=Kd(n)?qd(n):null,c=r&&!!s&&!Gd(s,a);return{resizeTo:o?e:null,owedClaim:c?s:null,keepsPendingSettle:r&&!s,sendUnview:!r&&i&&!!a,isFollowing:Jd({authoritative:e,isActiveViewer:r,lastClaim:a})}}function nf(e){return e instanceof ArrayBuffer||ArrayBuffer.isView(e)?new TextDecoder().decode(e):null}function rf(e){let t=nf(e);return t===null?null:Wd(t)}function af(e,t){if(typeof e==`string`)return{kind:`bytes`,data:e};let n=rf(e);return n?n.type===`output-beat`?{kind:`beat`}:t.hasSeenSize?n.seq<=t.lastSeq?{kind:`stale`}:{kind:`size`,cols:n.cols,rows:n.rows,seq:n.seq}:{kind:`attach-size`,cols:n.cols,rows:n.rows,seq:n.seq}:{kind:`ignored`}}var of=``,sf=`\x1B`,cf=`\r`,lf=new Map([[`deleteContentBackward`,of],[`deleteByComposition`,of],[`deleteCompositionText`,of],[`deleteWordBackward`,sf],[`deleteSoftLineBackward`,sf],[`deleteHardLineBackward`,sf]]);function uf(e){return lf.get(e)??``}var df=new Set([`insertFromPaste`,`insertFromPasteAsQuotation`,`insertFromDrop`,`insertFromYank`,`historyUndo`,`historyRedo`]);function ff(e){return typeof e!=`string`||e===``||!df.has(e)}function pf(e){return e?e.keyCode===229||e.key===`Process`:!1}function mf(e,t){let n=Array.from(e??``),r=Array.from(t??``),i=Math.min(n.length,r.length),a=0;for(;a<i&&n[a]===r[a];)a++;return of.repeat(n.length-a)+r.slice(a).join(``).replace(/\r\n|\n|\r/g,cf)}var hf=/https?:\/\/[^\s<>"']+/g,gf=new Set([`.`,`,`,`;`,`:`,`!`,`?`,`'`,`"`]),_f={")":`(`,"]":`[`,"}":`{`};function vf(e,t){let n=0;for(let r of e)r===t&&n++;return n}function yf(e){for(;;){let t=e[e.length-1];if(t===void 0)return e;if(gf.has(t)){e=e.slice(0,-1);continue}let n=_f[t];if(n&&vf(e,n)<vf(e,t))e=e.slice(0,-1);else return e}}function bf(e){let t=[];for(let n of e.matchAll(hf)){let e=yf(n[0]);e.length<=8||t.push({start:n.index,end:n.index+e.length,url:e})}return t}var xf=50;function Sf(){return{activate(e,t){Fc(t)},allowNonHttpProtocols:!1}}function Cf(e,t){let n=t-1;for(;n>0&&e.getLine(n)?.isWrapped&&t-1-n<xf;)n--;let r=t-1;for(;e.getLine(r+1)?.isWrapped&&r-(t-1)<xf;)r++;let i=``,a=[];for(let t=n;t<=r;t++){let n=e.getLine(t);if(!n)break;for(let e=0;e<n.length;e++){let r=n.getCell(e);if(!r)break;if(r.getWidth()===0)continue;let o=r.getChars()||` `;for(let n=0;n<o.length;n++)i+=o[n],a.push({x:e+1,y:t+1})}}return{text:i,cellAt:a}}function wf(e){return e.registerLinkProvider({provideLinks(t,n){let r=e.buffer?.active;if(!r)return n(void 0);let{text:i,cellAt:a}=Cf(r,t),o=[];for(let{start:e,end:t,url:n}of bf(i)){let r=a[e],i=a[t-1];r&&i&&o.push({range:{start:r,end:i},text:n,activate(e,t){Fc(t)}})}n(o.length?o:void 0)}})}var Tf=`(?:password|passwd|pwd|token|api[_-]?key|secret|credential|auth[_-]?token|access[_-]?key|secret[_-]?key|private[_-]?key|client[_-]?secret|connection[_-]?string)`,Ef=`(?:"[^"\\r\\n]*"|'[^'\\r\\n]*'|[^\\s\\r\\n]+)`,z=`[^\\S\\r\\n]`,Df=`${Tf}${z}*(?:=>|[:=])${z}*`,Of=`[?&][A-Za-z0-9_.-]*`,kf=`[^\\r\\n;&|]{0,200}?`,Af=`(?:mysql|mysqldump|mysqladmin|mysqlshow|mariadb|mariadb-dump)`,jf=RegExp(`(${Df})${Ef}`,`gi`),Mf=RegExp(`(\\bBearer${z}+)[A-Za-z0-9._~+/=-]{8,}`,`gi`),Nf=[/\bAKIA[0-9A-Z]{16}\b/g,/\bgh[pousr]_[A-Za-z0-9]{16,}\b/g,/\bgithub_pat_[A-Za-z0-9_]{20,}\b/g,/\bsk-ant-[A-Za-z0-9_-]{20,}/g,/\bsk-[A-Za-z0-9_-]{20,}/g,/\bph[cx]_[A-Za-z0-9]{20,}\b/g,/\bxox[abprs]-[A-Za-z0-9-]{10,}\b/g,/\beyJ[A-Za-z0-9_=-]{6,}\.[A-Za-z0-9_=-]{6,}\.[A-Za-z0-9_=-]{4,}/g,/-----BEGIN(?:[A-Z0-9 ]+)? PRIVATE KEY-----/g],Pf=[RegExp(`((?:^|\\s)--?${Tf}${z}+)${Ef}`,`gi`),RegExp(`((?:^|\\s)-(?:pwd|pw)(?![a-z])${z}*=?${z}*)${Ef}`,`g`),RegExp(`(-AsPlainText${z}+)${Ef}`,`gi`),RegExp(`((?:^|\\s)setx${z}+[^\\s\\r\\n]*${Tf}[^\\s\\r\\n]*${z}+)${Ef}`,`gi`)],Ff=[RegExp(`(\\bauthorization${z}*:${z}*Basic${z}+)[A-Za-z0-9+/=_-]{8,}`,`gi`),RegExp(`(\\bdocker${z}+login\\b${kf}${z}-p(?:${z}+|=))${Ef}`,`gi`),RegExp(`(\\bcurl\\b${kf}${z}(?:--user|-u)(?:${z}+|=)[^\\s:\\r\\n]+:)${Ef}`,`gi`),RegExp(`(\\b${Af}\\b${kf}${z}-p)${Ef}`,`g`),/\b([a-z][a-z0-9+.-]*:\/\/[^\s:/@]+:)[^\s@/]+(?=@)/gi];[...Pf,...Ff];var If=[/-----END(?:[A-Z0-9 ]+)? PRIVATE KEY-----/g,/^([^\S\r\n]*)(?=[A-Za-z0-9+/]*[g-zG-Z+/])(?=[A-Za-z0-9+/=]{60,76}[^\S\r\n]*$)[A-Za-z0-9+/]+={0,2}(?=[^\S\r\n]*$)/gm],Lf=RegExp(`(${Of}(?:${Tf}|_key)=)[^&#\\s]+`,`gi`),Rf=[jf,RegExp(`(\\b(?=[A-Z0-9_]*(?:SECRET|TOKEN|KEY|PASSWORD))[A-Z][A-Z0-9_]*=)${Ef}`,`g`)],zf=[Mf,...Pf,...Ff,...Nf,...If];function Bf(e,t){return[...e.matchAll(t)].map(e=>({matchStart:e.index,valueStart:e.index+(e[1]??``).length,end:e.index+e[0].length}))}function Vf(e,t){let n=0;return e.filter(e=>{for(;n<t.length&&t[n].end<=e.matchStart;)n+=1;let r=t.at(n);return!r||e.matchStart<r.matchStart})}function Hf(e){let t=[];for(let n of e.toSorted((e,t)=>e.start-t.start)){let e=t.at(-1);e&&n.start<=e.end?e.end=Math.max(e.end,n.end):t.push({...n})}return t}function Uf(e){let t=Bf(e,Lf);return Hf([...t,...Rf.flatMap(n=>Vf(Bf(e,n),t)),...zf.flatMap(t=>Bf(e,t))].map(e=>({start:e.valueStart,end:e.end})))}var Wf=`#808080`,Gf=new WeakMap;function Kf(e,t,n){return`${e}:${t}:${n}`}function qf(e){return Kf(e.marker.line,e.x,e.width)}function Jf(e,t){let n=t;for(;n>0&&t-n<63&&e.getLine(n)?.isWrapped;)n--;return n}function Yf(e,t){let n=t;for(;n-t<63&&e.getLine(n+1)?.isWrapped;)n++;return n}function Xf(e,t,n){let r=``;for(let i=t;i<=n;i++)r+=e.getLine(i)?.translateToString(!1)??``;return r}function Zf(e,t,n,r){let i=``,a=[];for(let o=t;o<=n;o++){let t=e.getLine(o);if(!t)break;for(let e=0;e<t.length;e++){let n=t.getCell(e,r);if(!n)break;let s=n.getWidth();if(s===0)continue;let c=n.getChars()||` `;for(let t=0;t<c.length;t++)i+=c[t],a.push({line:o,x:e,width:s})}}return{text:i,cellAt:a}}function Qf(e,t){let n=null;for(let r of t)n&&n.line===r.line?n.width=Math.max(n.width,r.x+r.width-n.x):(n={line:r.line,x:r.x,width:r.width},e.push(n))}function $f(e,t,n,r){let i=[];if(Uf(Xf(e,t,n)).length===0)return i;let{text:a,cellAt:o}=Zf(e,t,n,r);for(let e of Uf(a))Qf(i,o.slice(e.start,e.end));return i}function ep(e,t){let n=e.getNullCell(),r=[],i=t;for(;i<e.length;){let t=Yf(e,i);r.push(...$f(e,i,t,n)),i=t+1}return r}function tp(){return{masks:[],watermark:null,isFullRescanOwed:!0}}function np(e){e.decoration.dispose(),e.marker.dispose()}function rp(e){for(let t of e.masks)np(t);e.masks.length=0,e.watermark?.dispose(),e.watermark=null,e.isFullRescanOwed=!0}function ip(e,t){let n=e.watermark;return e.isFullRescanOwed||!n||n.isDisposed?0:Math.min(n.line,t.baseY)}function ap(e){let t=0;for(;t<e.masks.length&&e.masks[t].marker.isDisposed;)e.masks[t].decoration.dispose(),t++;t>0&&e.masks.splice(0,t)}function op(e,t){let n=new Map,r=e.masks.at(-1);for(;r&&(r.marker.isDisposed||r.marker.line>=t);)e.masks.pop(),r.marker.isDisposed&&r.decoration.dispose(),r.marker.isDisposed||n.set(qf(r),r),r=e.masks.at(-1);return ap(e),n}function sp(e,t){let n={normal:tp(),alternate:tp()},r=e.cols;function i(t){return e.buffer.active.type===t}function a(t,n){if(!i(n)||t.isDisposed)return!1;let r=t.line-e.buffer.active.viewportY;return r>=0&&r<e.rows}function o(t,n,r){t.style.backgroundColor=e.options.theme?.foreground??Wf,t.style.pointerEvents=`none`,t.style.display=a(n,r)?`block`:`none`}function s(e){for(let t of n[e].masks){let n=t.decoration.element;n&&o(n,t.marker,e)}}function c(t,n){let r=e.registerMarker(t.line-(n.baseY+n.cursorY));if(!r)return null;let i=e.registerDecoration({marker:r,x:t.x,width:t.width,layer:`top`});if(!i)return r.dispose(),null;let a=n.type;return i.onRender(e=>o(e,r,a)),{marker:r,decoration:i,x:t.x,width:t.width}}function l(){if(!es())return;let t=e.buffer.active,r=n[t.type],i=Jf(t,ip(r,t)),a=op(r,i);for(let e of ep(t,i)){let n=Kf(e.line,e.x,e.width),i=a.get(n);a.delete(n);let o=i??c(e,t);o&&r.masks.push(o)}for(let e of a.values())np(e);r.watermark?.dispose(),r.watermark=e.registerMarker(-t.cursorY)??null,r.isFullRescanOwed=!1}function u(){rp(n.normal),rp(n.alternate)}function d(){u(),r=e.cols,l()}let f=[e.onWriteParsed(l),e.onResize(({cols:e})=>{e!==r&&(r=e,n.normal.isFullRescanOwed=!0,n.alternate.isFullRescanOwed=!0,l())}),e.buffer.onBufferChange(e=>{rp(n.alternate),s(`normal`),e.type===`alternate`&&l()})],p=ns(d);t.addEventListener(`abort`,()=>{p();for(let e of f)e.dispose();u(),Gf.delete(e)},{once:!0}),Gf.set(e,d)}function cp(e){Gf.get(e)?.()}function lp({hasTerminal:e,isSocketOpen:t,isInputHeld:n}){return e?n||!t?`connecting`:`live`:`none`}var up=`Upload`;async function dp(e,t){return xn(up,e),pp(e,t)}async function fp(e,t){xn(up,e);for(let n of t)await pp(e,n)}async function pp(e,t){let n={"x-glimmervoid-upload-name":encodeURIComponent(t.name)};t.type&&(n[`content-type`]=t.type);try{let r=await fetch(`/upload/${encodeURIComponent(e)}`,{method:`POST`,body:t,headers:n});return r.ok?!0:(I({source:up,sessionId:e,message:await mp(r,t.name)}),!1)}catch{return I({source:up,sessionId:e,message:`${t.name} was not uploaded because the server did not answer. Check that Glimmervoid is running, then drop the file again.`}),!1}}async function mp(e,t){try{let n=await e.json();if(n&&typeof n.error==`string`)return`${t} was not uploaded: ${n.error.replace(/\.$/,``)}. Fix that, then drop the file again.`}catch{}return`${t} was not uploaded (HTTP ${e.status}). Drop the file again, or check the Glimmervoid terminal for errors.`}var hp=10,gp=1.2,_p=.005,vp=4,yp=.08,bp=5;function xp(e,t){let n=Math.abs(t);return n<hp?!1:n>Math.abs(e)*gp}function Sp(e,t,n=1/0){if(!(t>0))return{scrollLines:0,remainderPx:e};let r=Math.trunc(e/t),i=Math.max(-n,Math.min(n,r));return{scrollLines:i===0?0:-i,remainderPx:e-i*t}}function Cp(e,t,n){let r=e.length>=vp?e.slice(1):e.slice();return r.push({positionPx:t,timestampMs:n}),r}function wp(e){if(!e||e.length<2)return 0;let t=e[0],n=e[e.length-1],r=n.timestampMs-t.timestampMs;if(!(r>0))return 0;let i=(n.positionPx-t.positionPx)/r,a=Math.abs(i);if(!(a>=yp))return 0;let o=Math.min(a,bp);return i<0?-o:o}function Tp({velocityPxPerMs:e,startedAtMs:t,cellHeightPx:n,pendingPx:r=0}){return!e||!(n>0)?null:{velocityPxPerMs:e,lastMs:t,cellHeightPx:n,pendingPx:r}}function Ep(e,t){if(!e)return{scrollLines:0,state:null};let n=t-e.lastMs;if(!(n>0))return{scrollLines:0,state:e};let r=Math.abs(e.velocityPxPerMs)-_p*n;if(!(r>0))return{scrollLines:0,state:null};let i=e.velocityPxPerMs<0?-1:1,a=i*r*n,{scrollLines:o,remainderPx:s}=Sp(e.pendingPx+a,e.cellHeightPx);return{scrollLines:o,state:{velocityPxPerMs:i*r,lastMs:t,cellHeightPx:e.cellHeightPx,pendingPx:s}}}function Dp(e,t){return e===`alternate`||!!t&&t!==`none`}function Op(e,t){return!(e>0)||!(t>0)?0:e/t}var kp=1;function Ap(e){return typeof e._core?._viewport?.handleTouchScroll==`function`}function jp(e,t){for(let n of e)if(n.identifier===t)return n;return null}function Mp(e,t){if(Ap(t))return;let n=()=>document.documentElement.dataset.layout===`phone`,r=null,i=0,a=0,o=0,s=!1,c=0,l=[],u=null,d=null,f=()=>{d!==null&&cancelAnimationFrame(d),d=null,u=null},p=()=>Dp(t.buffer?.active?.type,t.modes?.mouseTrackingMode),m=()=>{let e=t.element?.querySelector(`.xterm-screen`);return Op(e?.clientHeight||t.element?.clientHeight||0,t.rows)},h=()=>{r=null,s=!1,c=0,l=[]},g=(e,n,r)=>{let i=e<0?-1:1;for(let a=0;a<Math.abs(e);a++)t.element?.dispatchEvent(new WheelEvent(`wheel`,{deltaY:i,deltaMode:kp,clientX:n,clientY:r,bubbles:!0,cancelable:!0}))},_=()=>{if(d=null,!u)return;if(!e.isConnected||!n()||p()){f();return}let r=t.buffer?.active?.viewportY,{scrollLines:i,state:a}=Ep(u,performance.now());u=a,i!==0&&t.scrollLines(i),u&&(i!==0&&t.buffer?.active?.viewportY===r?f():d=requestAnimationFrame(_))},v=(e,t,n)=>{u=Tp({velocityPxPerMs:e,startedAtMs:t,cellHeightPx:m(),pendingPx:n}),u&&(d=requestAnimationFrame(_))};e.addEventListener(`touchstart`,e=>{if(f(),!n()||e.touches.length!==1){h();return}let t=e.touches[0];r=t.identifier,i=t.clientX,a=t.clientY,o=t.clientY,s=!1,c=0,l=[]},{passive:!0}),e.addEventListener(`touchmove`,e=>{if(r===null||!n())return;let u=jp(e.touches,r);if(!u)return;if(!s){if(!xp(u.clientX-i,u.clientY-a))return;s=!0,o=u.clientY,c=0,l=Cp([],u.clientY,e.timeStamp)}e.cancelable&&e.preventDefault(),c+=u.clientY-o,o=u.clientY,l=Cp(l,u.clientY,e.timeStamp);let d=p(),{scrollLines:f,remainderPx:h}=Sp(c,m(),d?8:void 0);c=h,f!==0&&(d?g(f,u.clientX,u.clientY):t.scrollLines(f))},{passive:!1}),e.addEventListener(`touchend`,e=>{if(!s||p()){h();return}l=Cp(l,o,e.timeStamp);let t=wp(l),n=c;h(),t!==0&&v(t,performance.now(),n)},{passive:!0}),e.addEventListener(`touchcancel`,()=>{f(),h()},{passive:!0})}function Np(e){return e.needsReload?!0:e.wasAttachedWithoutLayout&&e.hasLayoutNow}function Pp(e,t,n=[]){let r=new Set(Array.isArray(n)?n:[n]),i=[];for(let n of e)e.length-i.length>=t&&!r.has(n)&&i.push(n);return i}var Fp=null,Ip=null;function Lp(){return Fp}function Rp(){return Fp?Promise.resolve(Fp):(Ip??=Promise.all([xi(()=>import(`./xterm-BdQ2Kshh.js`).then(e=>e.t),[]),xi(()=>import(`./xterm-BdQ2Kshh.js`).then(e=>e.r),[]),xi(()=>import(`./xterm-BdQ2Kshh.js`).then(e=>e.n),[])]).then(([e,t,n])=>(Fp={Terminal:e.Terminal,FitAddon:t.FitAddon,WebglAddon:n.WebglAddon},Fp)).catch(e=>{throw Ip=null,e}),Ip)}var zp=window.matchMedia?.(`(pointer: coarse)`).matches?4:12,Bp=new Map;function Vp(e){return e.clientWidth>0&&e.clientHeight>0}function Hp(e){let t=e.webglAddon;if(!t)return;let n=[...e.term?.element?.querySelectorAll(`canvas`)??[]];e.webglAddon=null;try{t.dispose()}catch{}for(let e of n)e.getContext(`webgl2`)?.getExtension(`WEBGL_lose_context`)?.loseContext()}function Up(e){Bp.delete(e),e.needsWebGLReload=!1,e.webglAttachedWithoutLayout=!1,Hp(e)}function Wp(e){let t=[e],n=L.snapshot().borrowedCardId,r=n?F.get(n):void 0;r&&t.push(r);for(let e of Pp([...Bp.keys()],zp,t))Up(e),e.needsWebGLReload=!0}function Gp(e){e?.term&&Np({needsReload:e.needsWebGLReload,wasAttachedWithoutLayout:e.webglAttachedWithoutLayout,hasLayoutNow:Vp(e.termWrap)})&&Xp(e,{isForced:!0})}function Kp(){for(let e of Bp.keys()){let t=e.term;if(e.webglAddon&&t)try{t.clearTextureAtlas(),t.refresh(0,t.rows-1)}catch{Up(e),e.needsWebGLReload=!0}}}var qp=!1;function Jp(){qp||(qp=!0,requestAnimationFrame(()=>{qp=!1,Kp()}))}function Yp(e){e?.addEventListener(`contextrestored`,Jp)}function Xp(e,t={}){try{if(e.webglAddon&&!e.needsWebGLReload&&!t.isForced){Bp.delete(e),Bp.set(e,!0);return}e.webglAddon&&(Hp(e),Bp.delete(e));let n=Lp();if(!n)return;Wp(e);let r=new n.WebglAddon;r.onContextLoss(()=>{r.dispose(),e.webglAddon=null,Bp.delete(e),e.needsWebGLReload=!0});let i=e.term;if(!i)throw Error(`webgl: the terminal was disposed before the addon loaded`);i.loadAddon(r),r.onChangeTextureAtlas(Yp),r.onAddTextureAtlasCanvas(Yp),Yp(r.textureAtlas),e.webglAddon=r,e.needsWebGLReload=!1,e.webglAttachedWithoutLayout=!Vp(e.termWrap),Bp.set(e,!0),requestAnimationFrame(()=>{e.webglAddon===r&&e.term&&e.term.refresh(0,e.term.rows-1)})}catch{e.webglAddon=null,e.needsWebGLReload=!1,e.webglAttachedWithoutLayout=!1,Bp.delete(e)}}function Zp(e){let t=Pt(e,ju,{isTerminalFocused:!0},Pu());return t?At(t,document.body.dataset.activeView):!1}var Qp=1024,$p=250,em=`(max-width: 768px)`,tm=12,nm=14,rm=5e4,im=!1;function am(e){im=e}var om=!1;window.addEventListener(`blur`,()=>{om=!0}),window.addEventListener(`focus`,()=>{om=!1});function sm(e){let t=document.activeElement;return Yd({isDocumentVisible:document.visibilityState===`visible`,isDocumentFocused:document.hasFocus(),hasFocusInsideCard:t instanceof Node&&e.contains(t),hasWindowBlurredSinceFocus:om,isPhoneLayout:Ji()})}function cm(e,t){return Xd({isBorrowedCard:L.snapshot().borrowedCardId===t,isTerminalFaceShown:e.face===`terminal`})}var lm=new WeakMap,um=new WeakMap,dm=new WeakSet,fm=new WeakSet,pm=new WeakSet,mm=new WeakMap,hm=5e3,gm=15e3,_m=`Keys you type now are held and sent once the terminal reconnects.`,vm=`The terminal is still reconnecting and its key buffer is full, so new keys are dropped.`,ym=`The agent copied text. The browser needs a click before it can reach your clipboard.`,bm=`The clipboard is unavailable in this browser.`;function xm(e,t,n,r){let i=mm.get(e);i&&(i.clearTimerId!==null&&clearTimeout(i.clearTimerId),i.clearTimerId=null,i.shownKind=t,i.status.show(n,r),n!==`busy`&&(i.clearTimerId=setTimeout(()=>Sm(e,t),n===`ok`?hm:gm)))}function Sm(e,t){let n=mm.get(e);n&&n.shownKind===t&&(n.clearTimerId!==null&&clearTimeout(n.clearTimerId),n.clearTimerId=null,n.shownKind=null,n.status.clear())}function Cm(e){let t=e.buffer.active;return t.viewportY<t.baseY}function wm(e,t,{hasNewOutput:n=!1}={}){let r=mm.get(e)?.jumpToLatestButton;if(!r)return;let i=Cm(t);r.hidden=!i,i?n&&(r.dataset.hasNewOutput=`true`):delete r.dataset.hasNewOutput}function Tm(e,t){if(lm.has(e)||!Cm(t))return;let n=t.buffer.active,r=n.length-n.viewportY;dm.has(e)?lm.set(e,r):um.set(e,r)}function Em(e,t,n){let r=e.term;r&&Zd({viewportTopLine:n,scrollbackLineCount:r.buffer.active.baseY,isDeepHistoryLoadedOrPending:dm.has(e)})&&(dm.add(e),fm.add(e),lm.set(e,r.buffer.active.length-n),ch(t))}var Dm=new WeakMap;function Om(e,t){return document.visibilityState===`visible`&&!cm(e,t)}function km(e,t){if(e&&Xm(e,t))return;let n=e?.dataWs;if(!e||n?.readyState!==WebSocket.OPEN)return;let r=Om(e,t);Dm.get(n)!==r&&(Dm.set(n,r),n.send(JSON.stringify({type:r?`resume-output`:`pause-output`})))}function Am(){for(let[e,t]of F)km(t,e)}document.addEventListener(`visibilitychange`,Am),L.subscribe((e,t)=>{t.includes(`borrowedCardId`)&&Am()});function jm(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return new TextDecoder().decode(n)}function Mm(e,t,n){let r=(n instanceof Error?n.message:``)||String(n);console.error(`[clipboard:${t}]`,n),xm(e,`clipboard`,`error`,`Clipboard ${t} failed: ${r}`)}function Nm(e,t,n,r){let i=Ne(t);i?i.then(()=>{r&&xm(e,`clipboard`,`ok`,r)}).catch(t=>Mm(e,n,t)):xm(e,`clipboard`,`error`,bm)}function Pm(e,t){let n=mm.get(e);n&&(n.pendingClipboardText=t,n.clipboardPrompt.hidden=!1)}function Fm(e){let t=mm.get(e),n=t?.pendingClipboardText;t&&n!=null&&(t.pendingClipboardText=null,t.clipboardPrompt.hidden=!0,Nm(e,n,`osc52 write`,`Copied to the clipboard.`))}function Im(e,t,n){let r=yn(`terminal-notice`),i=A(`div`,`terminal-clipboard-prompt`);i.hidden=!0;let a=A(`button`,`btn-dialog btn-dialog-confirm`,`Copy to clipboard`);a.type=`button`,a.addEventListener(`click`,()=>Fm(t)),i.append(A(`span`,`terminal-clipboard-prompt-text`,ym),a);let o=A(`div`,`terminal-notices`);o.append(i,r.element);let s=A(`button`,`terminal-jump-latest btn-dialog btn-dialog-ghost`,`Jump to latest`);s.type=`button`,s.hidden=!0,s.addEventListener(`click`,()=>{n.scrollToBottom(),n.focus()});let c=A(`div`,`terminal-drop-zone`);c.setAttribute(`aria-hidden`,`true`),c.append(A(`span`,`terminal-drop-zone-label`,`Drop to upload to this session`)),e.append(o,s,c),mm.set(t,{status:r,shownKind:null,clearTimerId:null,clipboardPrompt:i,pendingClipboardText:null,jumpToLatestButton:s})}function Lm(e,t){return F.get(e)===t&&!t.dataWs}function Rm(e){return e.querySelector(`:scope > .terminal-connecting`)}function zm(e){if(Rm(e))return;let t=A(`div`,`terminal-connecting`);t.append(A(`span`,`terminal-connecting-label`,`Connecting`)),e.append(t)}function Bm(e){let t=Rm(e);if(!t)return;t.querySelector(`:scope > .terminal-connecting-animal`)?.remove();let n=$r();n&&t.prepend(Qr(n,`terminal-connecting-animal`))}var Vm=new Set,Hm=new WeakSet;function Um(e){return Vm.add(e),()=>Vm.delete(e)}function Wm(){let e=0;for(let[t,n]of F)n.card.dataset.link===`connecting`&&Om(n,t)&&e++;return e}function Gm(e){let t=lp({hasTerminal:e.term!==null||Hm.has(e),isSocketOpen:e.dataWs?.readyState===WebSocket.OPEN,isInputHeld:ih}),n=t===`connecting`&&!ih&&fm.has(e)?`live`:t;if(n===`none`){delete e.card.dataset.link,Km();return}let r=n===`connecting`&&e.card.dataset.link!==`connecting`;e.card.dataset.link=n,r&&Bm(e.termWrap),Km()}function Km(){for(let e of Vm)e()}function qm(e,t,n){Tm(t,n),ld.unregister(e),t.dataWs=null,Gm(t),t._resetGridClaim?.()}var Jm=new WeakMap;function Ym(e,t,n,r){qm(e,t,n),clearTimeout(Jm.get(t)),Jm.delete(t),r===0&&Ke()?rh(e,t,n):Jm.set(t,setTimeout(()=>{Jm.delete(t),Lm(e,t)&&Ye().catch(()=>{}).then(()=>{Lm(e,t)&&rh(e,t,n)})},r))}function Xm(e,t){let n=pm.has(e),r=!e.dataWs&&F.get(t)===e;return!(n||r)||!e.term||!Om(e,t)?!1:(pm.delete(e),e._dataWsRetryAttempt=0,Ym(t,e,e.term,0),!0)}function Zm(e,t,n){qm(e,t,n),pm.add(t)}var Qm=15e3,$m=new Map;function eh(e){if(!Ke()||$m.has(e)||F.get(e)?.dataWs)return;let t=Qd(e,!1,!1),n=new WebSocket($e(location,We(t)));n.binaryType=`arraybuffer`;let r=[],i=e=>r.push(e),a=()=>th(e,n),o=()=>{n.readyState===WebSocket.CONNECTING&&a()};n.addEventListener(`message`,i),n.addEventListener(`close`,a);let s=setTimeout(o,Ue),c=setTimeout(a,Qm);$m.set(e,{socket:n,attachPath:t,bufferedMessages:r,release:()=>{n.removeEventListener(`message`,i),n.removeEventListener(`close`,a),clearTimeout(s),clearTimeout(c)}})}function th(e,t){let n=$m.get(e);n?.socket===t&&($m.delete(e),n.release(),t.close())}function nh(e,t){let n=$m.get(e);if(!n)return null;let r=n.socket.readyState===WebSocket.CONNECTING||n.socket.readyState===WebSocket.OPEN;return n.attachPath!==t||!r?(th(e,n.socket),null):($m.delete(e),n.release(),n)}function rh(e,t,n){pm.delete(t);let r=lm.get(t);lm.delete(t);let i=um.get(t);um.delete(t);let a=r!==void 0,o=r??i,s=!1,c=Om(t,e),l=Qd(e,a,!c),u=nh(e,l),d=u?.socket??new WebSocket($e(location,We(l)));Dm.set(d,c),d.binaryType=`arraybuffer`,t.dataWs=d,c&&ed(`terminal-connecting`),Gm(t);let f=!1,p=!1,m={hasSeenSize:!1,lastSeq:0},h=setTimeout(()=>{d.readyState===WebSocket.CONNECTING&&(p=!0,c&&ed(`terminal-abandoned`),d.close())},Ue);ld.register(e,(e,t)=>n.write(e,t));let g=r=>{if(t.dataWs!==d)return;let i=af(r.data,m);if(i.kind===`bytes`){lt(t),Dm.get(d)&&ed(`terminal-bytes`);let r=s;if(s=!1,ld.enqueue(e,i.data),!r)return;let a=o??0;ld.enqueueAction(e,()=>{n.scrollToLine(Math.max(0,n.buffer.active.length-a))});return}if(i.kind===`beat`){lt(t);return}if(i.kind===`attach-size`){s=o!==void 0,a||dm.delete(t),m.hasSeenSize=!0,m.lastSeq=i.seq,n.reset(),cp(n),t.ptySize={cols:i.cols,rows:i.rows},t._syncGrid?.();return}if(i.kind!==`size`)return;m.lastSeq=i.seq;let c={cols:i.cols,rows:i.rows};ld.enqueueAction(e,()=>{t.ptySize=c,t._syncGrid?.()})};d.addEventListener(`message`,g),d.addEventListener(`close`,()=>{if(clearTimeout(h),t.dataWs!==d)return;if(c&&!p&&ed(`terminal-closed`),fm.delete(t),!f&&!p&&He(),!Om(t,e)){Zm(e,t,n);return}if(p){Ym(e,t,n,0);return}let r=tt(t._dataWsRetryAttempt||0);t._dataWsRetryAttempt=(t._dataWsRetryAttempt||0)+1,Ym(e,t,n,r)});let _=()=>{clearTimeout(h),f=!0,c&&ed(`terminal-opened`),t._dataWsRetryAttempt=0,fm.delete(t),Gm(t),km(t,e),t._syncGrid?.({isActivationEdge:!0}),t._retryOwedGridClaim?.(),t._inputQueue?.length&&setTimeout(()=>{t.dataWs===d&&ah(t)},50)};d.addEventListener(`open`,_),d.readyState===WebSocket.OPEN&&_();for(let e of u?.bufferedMessages??[])g(e)}var ih=!1;function ah(e){let t=e._inputQueue,n=e.dataWs;if(!ih&&t?.length&&n?.readyState===WebSocket.OPEN){for(let e of t)n.send(JSON.stringify({type:`input`,data:e}));t.length=0,Sm(e,`keys`)}}function oh(){ih=!0;for(let e of F.values())Gm(e)}function sh(){ih=!1;for(let e of F.values())Gm(e),ah(e)}function ch(e){let t=N(e);if(typeof e!=`string`||!t?.term)return;let n=t.dataWs;t._dataWsRetryAttempt=0,Ym(e,t,t.term,0),n?.close()}function lh(){for(let[e,t]of F)t.term&&(Om(t,e)?ch(e):uh(e,t,t.term))}function uh(e,t,n){let r=t.dataWs;r&&(Zm(e,t,n),r.close())}function dh(){for(let[e,t]of F)t.term&&uh(e,t,t.term)}function fh(e,t){let n=e.dataWs;e.dataWs=null,ld.unregister(t),n&&n.readyState<=WebSocket.OPEN&&n.close()}function ph(e,t,n){if(!e||t==null||t===``)return!1;if(n?.fromSoftKeyboard||e._resetSoftKeyboardBuffer?.(),!ih&&!e._inputQueue?.length&&e.dataWs?.readyState===WebSocket.OPEN)return e.dataWs.send(JSON.stringify({type:`input`,data:t})),!0;if(!e._inputQueue)return!1;let r=e.dataWs?.readyState!==WebSocket.OPEN;return e._inputQueue.length>=Qp?(xm(e,`keys`,`error`,vm),!1):(e._inputQueue.push(t),r&&xm(e,`keys`,`busy`,_m),!0)}function mh(e,t,n){let r=window.matchMedia?.(em).matches?tm:nm,i=new n.Terminal({cursorBlink:im,fontSize:r,fontFamily:ku(),theme:Nd(),scrollback:rm,allowProposedApi:!0,linkHandler:Sf()}),a=new n.FitAddon;i.loadAddon(a),zm(e),i.open(e),Im(e,t,i),wf(i),sp(i,t.abortController.signal),t.term=i,t.fitAddon=a,Up(t);let o=null,s=null,c=!1,l=null,u=null;function d(){s!==null&&(clearTimeout(s),s=null)}function f(){if(!c)return null;let e=t.fitAddon;if(!e)return null;let n=e.proposeDimensions();return n?{cols:n.cols,rows:n.rows}:null}function p(e){if(!c||!sm(t.card)||t.dataWs?.readyState!==WebSocket.OPEN)return!1;t.dataWs.send(JSON.stringify({type:`claim`,cols:e.cols,rows:e.rows})),l=e,u=null;let n=Jd({authoritative:t.ptySize??null,isActiveViewer:c,lastClaim:l});return t.card.dataset.grid=n?`following`:`exact`,!0}function m(e){d(),u=e,s=setTimeout(()=>{s=null,p(e)},$p)}function h(){u&&s===null&&p(u)}function g({isActivationEdge:e=!1}={}){let n=t.term;if(!n)return;let r=tf({authoritative:t.ptySize??null,applied:{cols:n.cols,rows:n.rows},proposal:f(),isActiveViewer:c,isDataWsOpen:t.dataWs?.readyState===WebSocket.OPEN,lastClaim:l});r.resizeTo&&n.resize(r.resizeTo.cols,r.resizeTo.rows),t.card.dataset.grid=r.isFollowing?`following`:`exact`,r.keepsPendingSettle||(d(),u=null),r.sendUnview?(l=null,t.dataWs?.send(JSON.stringify({type:`unview`}))):r.owedClaim&&(e&&p(r.owedClaim)||m(r.owedClaim))}function _(){let e=$d({authoritative:t.ptySize??null,isActiveViewer:c,isDocumentEngaged:sm(t.card),isDataWsOpen:t.dataWs?.readyState===WebSocket.OPEN,lastClaim:l});e!==`none`&&(d(),e===`rebid`&&(l=null),g({isActivationEdge:!0}))}let v=new ResizeObserver(()=>{o===null&&(o=requestAnimationFrame(()=>{o=null,g()}))});v.observe(e),t.resizeObserver=v,t._syncGrid=g,t._resetGridClaim=()=>{d(),u=ef({isActiveViewer:c,lastClaim:l,owedClaim:u}),l=null},t._retryOwedGridClaim=h,t._syncGridOnEngagementEdge=_,t._isActiveViewer=()=>c,t._setActiveViewer=e=>{c!==e&&(c=e,d(),u=null,e&&Gp(t),g({isActivationEdge:!0}))},t.card.addEventListener(`focusin`,()=>{om=!1,_()},{signal:t.abortController.signal}),Xp(t);let y=null;i.onScroll(()=>{y===null&&(y=requestAnimationFrame(()=>{y=null,t.term&&(t.term.refresh(0,t.term.rows-1),wm(t,t.term))}))}),i.onWriteParsed(()=>wm(t,i,{hasNewOutput:!0})),i.parser.registerOscHandler(52,e=>{let n=e.indexOf(`;`);if(n<0)return!0;let r=e.slice(n+1);if(r===``||r===`?`)return!0;let i;try{i=jm(r)}catch(e){return Mm(t,`osc52 decode`,e),!0}return document.hasFocus()&&navigator.userActivation?.isActive!==!1?(Nm(t,i,`osc52 write`),!0):(Pm(t,i),!0)}),i.attachCustomKeyEventHandler(e=>{if(e.shiftKey&&e.key===`Enter`)return e.type===`keydown`&&ph(t,`\x1B\r`),!1;if(e.type!==`keydown`)return!0;if(Zp(e))return!1;let n=e.ctrlKey||e.metaKey;if(n&&e.key===`c`&&i.hasSelection()){let e=i.getSelection();return i.clearSelection(),Nm(t,e,`copy`),!1}return n&&e.key===`v`?!1:n&&e.key===`Backspace`?(ph(t,`\x1B`),!1):!0}),hh(e,i,t),Mp(e,i)}function hh(e,t,n){let r=t.textarea;if(!r)return;let i=``,a=()=>{i=r.value},o=()=>{i=``,Ji()&&r.value!==``&&(r.value=``)};n._resetSoftKeyboardBuffer=o;let s=()=>{let e=mf(i,r.value);return i=r.value,e!==``&&(ph(n,e,{fromSoftKeyboard:!0}),t.scrollToBottom(),!0)},c=(t,n)=>{e.addEventListener(t,e=>{Ji()?n(e):a()},!0)};c(`keydown`,e=>{pf(e)?e.stopPropagation():(s(),queueMicrotask(o))}),c(`compositionstart`,e=>{e.stopPropagation()}),c(`compositionupdate`,e=>{e.stopPropagation()}),c(`compositionend`,e=>{e.stopPropagation(),setTimeout(s,0)}),c(`input`,e=>{if(!ff(e.inputType)){queueMicrotask(o);return}if(e.stopPropagation(),s())return;let r=uf(e.inputType);r!==``&&(ph(n,r,{fromSoftKeyboard:!0}),t.scrollToBottom())})}function gh(e,t){e._inputQueue=[];let n=e.term;n&&(n.onData(n=>{ph(e,n),e.unseenOutcome&&j({type:`dismiss`,id:t,expectedState:e.currentState})}),n.onScroll(n=>{Em(e,t,n)}),vh(e.termWrap,t,e.abortController.signal),Gm(e),queueMicrotask(()=>{Lm(t,e)&&rh(t,e,n)}))}function _h(e){return!!e&&Array.from(e.types).includes(`Files`)}function vh(e,t,n){e.addEventListener(`paste`,e=>{let n=e.clipboardData;n&&n.files.length!==0&&n.getData(`text/plain`)===``&&(e.preventDefault(),e.stopPropagation(),fp(t,Array.from(n.files)))},{capture:!0,signal:n}),e.addEventListener(`dragover`,t=>{_h(t.dataTransfer)&&(t.preventDefault(),t.dataTransfer.dropEffect=`copy`,e.dataset.dropTarget=`true`)},{signal:n}),e.addEventListener(`dragleave`,t=>{t.relatedTarget instanceof Node&&e.contains(t.relatedTarget)||delete e.dataset.dropTarget},{signal:n}),e.addEventListener(`drop`,n=>{delete e.dataset.dropTarget,_h(n.dataTransfer)&&(n.preventDefault(),n.stopPropagation(),fp(t,Array.from(n.dataTransfer.files)))},{capture:!0,signal:n})}function yh(e,t){if(e.term||Hm.has(e))return;let n=Lp();if(n){bh(e,t,n);return}Hm.add(e);let r=e._isActiveViewer?.()===!0;e._isActiveViewer=()=>r,e._setActiveViewer=e=>{r=e},zm(e.termWrap),Gm(e),Rp().then(n=>{Hm.delete(e),!(e.term||e.abortController.signal.aborted||F.get(t)!==e)&&(bh(e,t,n),e._setActiveViewer?.(r))},()=>{Hm.delete(e),Gm(e)})}function bh(e,t,n){mh(e.termWrap,e,n),gh(e,t)}function xh(e){e?._syncGridOnEngagementEdge?.()}function Sh(e,t){if(!e)return;yh(e,t),km(e,t),Gp(e);let n=e.term;n&&(n.refresh(0,n.rows-1),xh(e))}function Ch(e,t,n){e&&(n&&yh(e,t),e._setActiveViewer?.(n))}var wh=`conversation:`,Th=1e4,Eh=48,Dh=`, `,Oh=`+`,kh=`■`,Ah=`↑`,jh=1e3,Mh={command:`Run command?`,fileChange:`Apply file changes?`,permissions:`Grant permissions?`},Nh=1;function Ph(e){e?.previewUrl&&URL.revokeObjectURL(e.previewUrl)}function Fh(e,t,n){let r=A(`button`,`conversation-icon-button ${e}`,t);return r.type=`button`,r.title=n,r.setAttribute(`aria-label`,n),r}function Ih(e){return e.conversationApproval!==null||tu(e.currentState,e.pendingPromptKind)}function Lh(e,t,n,r,i=0){let a=n[i];a?setTimeout(()=>{N(e)===t?i>0&&Ih(t)?r(`stopped-by-prompt`):ph(t,a.data)?Lh(e,t,n,r,i+1):r(`unreachable`):r(`unreachable`)},a.delayBeforeMs):r(`sent`)}function Rh({signal:e,sendControl:t,showTerminal:n}){let r=A(`div`,`conversation-face`);r.hidden=!0;let i=A(`div`,`conversation-log`);i.setAttribute(`role`,`log`),i.setAttribute(`aria-live`,`polite`);let a=A(`p`,`conversation-empty`,`No conversation yet. Messages appear here as the agent works.`),o=A(`div`,`conversation-approval`);o.hidden=!0;let s=A(`p`,`conversation-bridge-note`,`Restart this Codex session to connect it to the conversation view. Until then, use the terminal.`);s.hidden=!0;let c=A(`p`,`conversation-bridge-note`,`The session trace is unavailable, so there is nothing to show here. Use the terminal.`);c.hidden=!0;let l=A(`details`,`conversation-working`),u=A(`summary`,`conversation-working-summary`);u.setAttribute(`role`,`status`);let d=A(`ul`,`conversation-agent-list`);l.append(u,d),l.hidden=!0;let f=A(`form`,`conversation-composer`),p=A(`p`,`conversation-status`);p.setAttribute(`role`,`status`);let m=A(`div`,`conversation-attachment`);m.hidden=!0;let h=A(`div`,`conversation-composer-row`),g=Fh(`conversation-attach`,Oh,`Attach a photo or file`),_=A(`input`,`conversation-file-picker`);_.type=`file`,_.hidden=!0;let v=A(`textarea`,`conversation-input`);v.dataset.dashboardShortcuts=`allowed`,v.rows=1,v.placeholder=`Message the agent`,v.setAttribute(`aria-label`,`Message the agent`);let y=Fh(`conversation-stop`,kh,`Stop the current turn (Esc)`),x=Fh(`conversation-send`,Ah,`Send`);x.type=`submit`,h.append(g,v,y,x),f.append(p,m,h,_),r.append(i,l,c,s,o,f);let S=null,C=[],w=0,T=!1,E=null,ee=!1,D=null,te=!1,ne=[],re=[],ie=null,ae=!1,oe=new Set;function se(){return S?N(S)??null:null}function ce(e){p.textContent=e}function le(){v.style.height=`auto`,v.style.height=`${v.scrollHeight+v.offsetHeight-v.clientHeight}px`}function ue(){E&&clearTimeout(E.timeoutHandle),E=null}function de(){if(!S||r.hidden||!c.hidden)return;if(E){ee=!0;return}let e=`${wh}${Nh++}`,n=T?w:null;t(n===null?{type:`session-trace`,id:S,requestId:e,endingAt:`tail`}:{type:`session-trace`,id:S,requestId:e,after:n})?(ee=!1,E={requestId:e,after:n,timeoutHandle:setTimeout(()=>{E=null,de()},Th)}):ce(`Conversation unavailable while disconnected.`)}function fe(){return i.scrollHeight-i.scrollTop-i.clientHeight<=Eh}function pe(e){let t=A(`a`,`conversation-image-link`);t.href=e,t.target=`_blank`,t.rel=`noopener`;let n=A(`img`,`conversation-image`);return n.src=e,n.alt=`Attached image`,n.loading=`lazy`,n.addEventListener(`error`,()=>t.remove(),{once:!0}),t.append(n),t}function me(e){let t=A(`article`,`conversation-message conversation-user is-pending`);return e.text&&t.append(A(`p`,`conversation-text`,e.text)),e.attachment?.previewUrl&&t.append(pe(e.attachment.previewUrl)),e.attachment&&!e.attachment.previewUrl&&t.append(A(`p`,`conversation-attachment-name`,e.attachment.name)),t}function he(e){let t=A(`article`,`conversation-message conversation-${e.kind}`);return e.kind===`assistant`?(t.append(Go(Bo(e.text))),t):(t.append(A(`p`,`conversation-text`,e.text)),e.kind===`user`&&t.append(...e.imageUrls.map(pe)),t)}function ge(e,t){e.replaceChildren(...t.map(e=>{let t=A(`li`,`conversation-agent is-${e.state}`);return t.append(A(`span`,`conversation-agent-name`,e.description),A(`span`,`conversation-agent-state`,e.state)),t}))}function O(e){if(e.agentRuns.length===0)return A(`p`,`conversation-work`,vu(e));let t=A(`details`,`conversation-work`);t.open=oe.has(e.key),t.addEventListener(`toggle`,()=>{t.open?oe.add(e.key):oe.delete(e.key)});let n=A(`ul`,`conversation-agent-list`);return ge(n,e.agentRuns),t.append(A(`summary`,``,vu(e)),n),t}function _e(){return se()?.currentState===b.RUNNING}function ve(){let e=se(),t=fu(re),n=_e()?pu(re)?.agentRuns??[]:[],r=[...new Set([...n,...t])];if(l.hidden=!e||!_e()&&t.length===0,l.hidden||!e)return;let i=_e()?Math.max(0,Date.now()-e.stateSince):null;u.textContent=yu(i,t.length),l.classList.toggle(`has-agents`,r.length>0),ge(d,r)}function ye(){let e=!r.hidden&&_e();e&&!ie&&(ie=setInterval(ve,jh)),!e&&ie&&(clearInterval(ie),ie=null),ve()}function be(){i.scrollTop=i.scrollHeight}function xe(){let e=ae||fe();re=du(C);let t=Date.now(),n=ne.filter(e=>hu(e,re,t));for(let e of n)Ph(e.attachment);ne=ne.filter(e=>!n.includes(e));let r=[...(_e()&&pu(re)?re.slice(0,-1):re).map(e=>e.kind===`work`?O(e):he(e)),...ne.map(me)];i.replaceChildren(...r.length>0?r:[a]),ve(),e&&(be(),requestAnimationFrame(be),T&&(ae=!1))}function k(){if(m.replaceChildren(),m.hidden=!D,D){if(D.previewUrl){let e=A(`img`,`conversation-attachment-thumbnail`);e.src=D.previewUrl,e.alt=``,m.append(e)}m.append(A(`span`,`conversation-attachment-name`,D.name))}}function Se(e){D!==e&&Ph(D),D=e,k()}function Ce(e,t=()=>{}){let n=se();if(!n||!S||!e){ce(`Unable to reach this session.`);return}ce(``);let r={sent:``,unreachable:`Unable to reach this session.`,"stopped-by-prompt":`Not sent: a prompt appeared, so the message was typed but not submitted. Check the terminal.`};Lh(S,n,e,e=>{ce(r[e]),t(e)})}function we(e,n,r){S&&ce(t({type:`conversation-approval`,id:S,requestId:e.requestId,decision:n,...r?{answers:r}:{}})?``:`Unable to send the answer while disconnected.`)}function Te(e,t){let n=A(`button`,`conversation-approval-action`,e);return n.type=`button`,n.addEventListener(`click`,t),n}function Ee(e){return e.kind===`tool`?`Allow ${e.toolName??`this tool`}?`:Mh[e.kind]??`Approve this request?`}function De(e){o.append(A(`p`,`conversation-approval-note`,`This request cannot be shown in full here. Read and answer it in the terminal.`));let t=A(`div`,`conversation-approval-actions`);t.append(Te(`Open terminal`,()=>n()),Te(`Decline`,()=>we(e,`decline`))),o.append(t)}function Oe(e){if(o.append(A(`p`,`conversation-approval-title`,Ee(e)),A(`pre`,`conversation-approval-summary`,e.summary)),e.isSummaryTruncated){De(e);return}let t=A(`div`,`conversation-approval-actions`);t.append(Te(`Approve`,()=>we(e,`accept`))),e.kind!==`tool`&&t.append(Te(`Approve for session`,()=>we(e,`acceptForSession`))),e.alwaysAllowSummary&&(o.append(A(`p`,`conversation-approval-note`,`Always allow adds, for this session only: ${e.alwaysAllowSummary}`)),t.append(Te(`Always allow`,()=>we(e,`acceptForSession`)))),t.append(Te(`Decline`,()=>we(e,`decline`))),o.append(t)}function ke(e){let t=A(`p`,`conversation-approval-title`,e.question);return e.header&&t.prepend(A(`span`,`conversation-question-header`,e.header)),t}function Ae(e,t){o.append(ke(t));let n=A(`div`,`conversation-question-options`);for(let r of t.options){let i=Te(r.label,()=>we(e,`accept`,{[t.question]:r.label}));r.description&&(i.title=r.description),n.append(i)}let r=A(`div`,`conversation-approval-actions`);r.append(Te(`Decline`,()=>we(e,`decline`))),o.append(n,r)}function je(e,t){let n=A(`form`,`conversation-question-form`);t.forEach((e,t)=>{let r=A(`fieldset`,`conversation-question`),i=A(`legend`,`conversation-question-text`,e.question);e.header&&i.prepend(A(`span`,`conversation-question-header`,e.header)),r.append(i);for(let n of e.options){let i=A(`label`,`conversation-question-option`),a=A(`input`);a.type=e.multiSelect?`checkbox`:`radio`,a.name=`question-${t}`,a.value=n.label,i.append(a,A(`span`,``,n.label)),n.description&&(i.title=n.description),r.append(i)}n.append(r)});let r=A(`div`,`conversation-approval-actions`),i=A(`button`,`conversation-approval-action`,`Send answers`);i.type=`submit`,r.append(i,Te(`Decline`,()=>we(e,`decline`))),n.append(r),n.addEventListener(`submit`,r=>{r.preventDefault();let i={};t.forEach((e,t)=>{let r=[...n.querySelectorAll(`input[name="question-${t}"]:checked`)].map(e=>e.value);r.length>0&&(i[e.question]=r.join(Dh))}),Object.keys(i).length===t.length?we(e,`accept`,i):ce(`Answer every question first.`)}),o.append(n)}function Me(e){let t=e.questions??[];if(e.isSummaryTruncated||t.length===0){o.append(A(`p`,`conversation-approval-title`,`Claude Code has a question`),A(`pre`,`conversation-approval-summary`,e.summary)),De(e);return}let[n]=t;t.length===1&&!n.multiSelect?Ae(e,n):je(e,t)}function Ne(e){e.kind===`question`?Me(e):Oe(e)}function Pe(){o.append(A(`p`,`conversation-approval-title`,`The agent is waiting on a prompt`)),o.append(A(`p`,`conversation-approval-note`,`Read and answer it in the terminal.`));let e=A(`div`,`conversation-approval-actions`);e.append(Te(`Open terminal`,()=>n())),o.append(e)}function Fe(){let e=se();o.replaceChildren();let t=e?.conversationApproval??null,n=e?tu(e.currentState,e.pendingPromptKind):!1,r=e?.agent===`codex`&&!e.hasConversationBridge;s.hidden=!r,o.hidden=!t&&!n,x.disabled=!o.hidden||r,Ie(),e&&(t?Ne(t):n&&Pe())}function Ie(){g.disabled=x.disabled||te}function Le(e){let t=Ql(e,v.value);return t||!D?t:$l(e)}function Re(){let e=se();y.disabled=e?.currentState!==b.RUNNING,ye()}f.addEventListener(`submit`,e=>{if(e.preventDefault(),x.disabled)return;let t=Le(se()?.agent);if(!t)return;let n={text:v.value.trim(),attachment:D,sentAt:Date.now(),userKeysAtSend:mu(re)};v.value=``,le(),D=null,k(),ne.push(n),ae=!0,xe(),Ce(t,e=>{e!==`sent`&&(Ph(n.attachment),ne=ne.filter(e=>e!==n),xe())})},{signal:e}),v.addEventListener(`input`,le,{signal:e});let ze=0,Be=new ResizeObserver(()=>{let e=i.clientHeight,t=ze===0;ze=e,t&&e!==0&&(ae=!0,be(),T&&(ae=!1))});Be.observe(i),e?.addEventListener(`abort`,()=>{ie&&clearInterval(ie),Be.disconnect()},{once:!0}),v.addEventListener(`keydown`,e=>{e.key!==`Enter`||e.shiftKey||e.isComposing||Ji()||(e.preventDefault(),f.requestSubmit())},{signal:e}),y.addEventListener(`click`,()=>Ce(eu(se()?.agent)),{signal:e}),g.addEventListener(`click`,()=>_.click(),{signal:e}),_.addEventListener(`change`,()=>{let e=_.files?.[0];if(_.value=``,!e||!S)return;if(x.disabled){ce(`Not attached: the agent is not ready for a message. Check the terminal.`);return}let t=S;te=!0,Ie(),dp(t,e).then(n=>{if(te=!1,Ie(),!n||S!==t)return;let r=e.type.startsWith(`image/`)?URL.createObjectURL(e):null;Se({name:e.name,previewUrl:r})})},{signal:e});function Ve(e){if(S!==e){S=e,C=[],w=0,T=!1,ue(),Se(null),oe.clear();for(let e of ne)Ph(e.attachment);ne=[],ce(``)}r.hidden=!1,c.hidden=!0,ae=!0,xe(),Ue(),de()}function He(){r.hidden=!0,ue(),ye()}function Ue(){r.hidden||(Fe(),Re(),xe())}function We(e){if(!E||e.requestId!==E.requestId)return!1;let t=E;if(ue(),e.id!==S)return!0;let n=t.after!==null&&e.start===t.after&&!e.reset;return t.after!==null&&!n?(T=!1,C=[],de(),!0):(C=bu(t.after===null?[...e.records]:[...C,...e.records]),w=e.next,T=!0,xe(),ee&&de(),!0)}function Ge(e){return!E||e.requestId!==E.requestId?!1:(ue(),ee=!1,c.hidden=!1,!0)}function j(e){e!==S||r.hidden||(c.hidden=!0,de())}return{el:r,show:Ve,hide:He,refresh:Ue,applyTraceResponse:We,applyTraceError:Ge,applyTraceChanged:j}}var zh=22,Bh={image:`Image`,video:`Video`,page:`Page`},Vh=new WeakMap;function Hh(e){let t=e.registerMarker(0);if(!t)return null;let n=Vh.get(e);if(n&&!n.marker.isDisposed&&n.marker.line===t.line)return t.dispose(),n;let r={marker:t,chipCount:0};return Vh.set(e,r),r}function Uh(e,t){let n=A(`button`,`shown-chip`);if(n.type=`button`,n.title=t.caption??t.pageTitle??t.name,n.setAttribute(`aria-label`,`Open ${t.name}`),t.kind===`image`){let r=A(`img`,`shown-chip-thumb`);r.src=`/shown/${encodeURIComponent(e)}/${encodeURIComponent(t.id)}`,r.alt=``,r.decoding=`async`,n.append(r)}return t.kind!==`image`&&n.append(A(`span`,`shown-chip-kind`,Bh[t.kind])),n.append(A(`span`,`shown-chip-name`,t.pageTitle??t.name)),n.addEventListener(`click`,n=>{n.stopPropagation(),Xs(e,t.id)}),n}function Wh(e,t,n){let r=Hh(e);if(!r)return;let i=e.registerDecoration({marker:r.marker,anchor:`right`,x:r.chipCount*zh,width:zh,layer:`top`});if(!i)return;r.chipCount+=1;let a=Uh(t,n);i.onRender(e=>{e.contains(a)||e.replaceChildren(a),e.classList.add(`shown-chip-slot`)})}function Gh(e,t){let n=N(e)?.term;if(n)for(let r of t)Wh(n,e,r)}function Kh(e){if(!e)return 0;let t=0;return e.listenerMismatch&&t++,e.orphanPty&&t++,e.destroyedReachable&&t++,t}function qh(e,t){return e||Kh(t)>0}var Jh={DORMANT:`DOR`,INITIALIZING:`INI`,STARTING:`STA`,RUNNING:`RUN`,WAITING:`WAI`,IDLE:`IDL`,COMPLETE:`CMP`,DONE:`DON`,FAILED:`FAI`},Yh=null,Xh=!1,Zh=!1,Qh=null,$h=null,eg=null,tg=`—`;function ng(e){return e==null?tg:ue(e,`GB`)}function rg(e){return e==null?tg:u(e,{smallestUnit:`s`,dropsZeroRemainder:!1})}function ig(e){return e==null?tg:`${rg(Math.max(0,Math.round((Date.now()-e)/1e3)))} ago`}function ag(){let e=A(`div`,`health-footer`);e.dataset.expanded=`false`,e.hidden=!0;let t=A(`div`,`health-summary`),n=A(`button`,`health-toggle`);n.type=`button`,n.setAttribute(`aria-expanded`,`false`),n.setAttribute(`aria-controls`,`health-detail`);let r=A(`span`,`health-chev`,`▲`);r.setAttribute(`aria-hidden`,`true`),n.append(r,A(`span`,`health-toggle-label`,`Health`));let i=A(`div`,`health-stats`);t.append(n,i);let a=A(`div`,`health-detail`);return a.id=`health-detail`,a.hidden=!0,n.addEventListener(`click`,()=>{Zh=!Zh,e.dataset.expanded=String(Zh),n.setAttribute(`aria-expanded`,String(Zh)),a.hidden=!Zh,Zh&&(j({type:`request-health-snapshot`}),sg())}),e.append(t,a),Qh=e,$h=i,eg=a,e}function og(){if(!$h||!Yh)return;let e=Yh,t=Kh(e.anomalies);$h.innerHTML=`
|
|
11
|
+
<span class="health-stat" title="V8 heap used"><span class="health-stat-label">Heap</span> ${ng(e.process.heapUsed)}</span>
|
|
12
|
+
<span class="health-stat" title="Resident set size (process memory)"><span class="health-stat-label">RSS</span> ${ng(e.process.rss)}</span>
|
|
13
|
+
<span class="health-stat" title="External buffers (PTY data lives here)"><span class="health-stat-label">Ext</span> ${ng(e.process.external)}</span>
|
|
14
|
+
<span class="health-stat" title="Active resources (handles + requests)"><span class="health-stat-label">Hdl</span> ${e.process.activeResources}</span>
|
|
15
|
+
<span class="health-stat" title="Memory headroom at the last start check, and starts held for memory"><span class="health-stat-label">Mem</span> ${ng(e.memoryGate?.headroomBytes)} / ${e.memoryGate?.heldStartCount??0} held</span>
|
|
16
|
+
<span class="health-stat" title="Sessions: alivePty / total"><span class="health-stat-label">Sess</span> ${e.sessions.alivePty}/${e.sessions.total}</span>
|
|
17
|
+
<span class="health-stat" title="WebSockets: control + data"><span class="health-stat-label">WS</span> ${e.websockets.control}+${e.websockets.data}</span>
|
|
18
|
+
<span class="health-stat" title="Server uptime"><span class="health-stat-label">Up</span> ${rg(e.uptimeSeconds)}</span>
|
|
19
|
+
${t>0?`<span class="health-anomaly" title="${t} anomaly type(s), expand for details">⚠ ${t}</span>`:``}
|
|
20
|
+
`}function sg(){if(!eg||!Yh)return;let e=Yh,t=e.process,n=e.websockets,r=e.sessions,i=e.anomalies,a=``;if(Kh(i)>0){let e=[];i.listenerMismatch&&e.push(`Listener count mismatch: data WS listener leaked or missing`),i.orphanPty&&e.push(`Orphan PTY: session has live PTY but state is DONE/FAILED/DORMANT`),i.destroyedReachable&&e.push(`Destroyed session still reachable in sessions map`),a=`
|
|
21
|
+
<div class="health-section health-section-warn">
|
|
22
|
+
<div class="health-section-title">⚠ Anomalies</div>
|
|
23
|
+
${e.map(e=>`<div class="health-row">${e}</div>`).join(``)}
|
|
24
|
+
</div>
|
|
25
|
+
`}let o=r.list.map(e=>{let t=[];e.destroyed&&t.push(`destroyed`),e.pendingRestart&&t.push(`pendingRestart`);let n=Object.entries(e.timers).filter(([,e])=>e).map(([e])=>e).join(`,`)||`none`;return`
|
|
26
|
+
<tr>
|
|
27
|
+
<td>${Vn(e.name)}</td>
|
|
28
|
+
<td class="health-mono">${Jh[e.state]||e.state}</td>
|
|
29
|
+
<td class="health-mono">${e.hasPty?e.ptyPid:tg}</td>
|
|
30
|
+
<td class="health-mono">${ng(e.outputBufferBytes)}</td>
|
|
31
|
+
<td class="health-mono">${e.outputBufferEntries}</td>
|
|
32
|
+
<td class="health-mono">${e.dataListenerCount}</td>
|
|
33
|
+
<td class="health-mono health-dim">${n}</td>
|
|
34
|
+
<td class="health-mono health-dim">${t.join(` `)||``}</td>
|
|
35
|
+
</tr>
|
|
36
|
+
`}).join(``);eg.innerHTML=`
|
|
37
|
+
${a}
|
|
38
|
+
<div class="health-section">
|
|
39
|
+
<div class="health-section-title">Process</div>
|
|
40
|
+
<div class="health-grid">
|
|
41
|
+
<div class="health-row"><span class="health-label">Heap used</span><span class="health-mono">${ng(t.heapUsed)}</span></div>
|
|
42
|
+
<div class="health-row"><span class="health-label">Heap total</span><span class="health-mono">${ng(t.heapTotal)}</span></div>
|
|
43
|
+
<div class="health-row"><span class="health-label">RSS</span><span class="health-mono">${ng(t.rss)}</span></div>
|
|
44
|
+
<div class="health-row"><span class="health-label">External</span><span class="health-mono">${ng(t.external)}</span></div>
|
|
45
|
+
<div class="health-row"><span class="health-label">Array buffers</span><span class="health-mono">${ng(t.arrayBuffers)}</span></div>
|
|
46
|
+
<div class="health-row"><span class="health-label">Active resources</span><span class="health-mono">${t.activeResources}</span></div>
|
|
47
|
+
<div class="health-row"><span class="health-label">Uptime</span><span class="health-mono">${rg(e.uptimeSeconds)}</span></div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
<div class="health-section">
|
|
52
|
+
<div class="health-section-title">Memory gate</div>
|
|
53
|
+
<div class="health-grid">
|
|
54
|
+
<div class="health-row"><span class="health-label">Headroom</span><span class="health-mono">${ng(e.memoryGate?.headroomBytes)}</span></div>
|
|
55
|
+
<div class="health-row"><span class="health-label">Read</span><span class="health-mono">${ig(e.memoryGate?.headroomReadAtMs)}</span></div>
|
|
56
|
+
<div class="health-row"><span class="health-label">Starts held</span><span class="health-mono">${e.memoryGate?.heldStartCount??0}</span></div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
|
|
60
|
+
<div class="health-section">
|
|
61
|
+
<div class="health-section-title">WebSockets</div>
|
|
62
|
+
<div class="health-grid">
|
|
63
|
+
<div class="health-row"><span class="health-label">Control clients</span><span class="health-mono">${n.control}</span></div>
|
|
64
|
+
<div class="health-row"><span class="health-label">Data clients</span><span class="health-mono">${n.data}</span></div>
|
|
65
|
+
<div class="health-row"><span class="health-label">Tracked per session</span><span class="health-mono">${n.dataPerSessionTotal}</span></div>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
<div class="health-section">
|
|
70
|
+
<div class="health-section-title">Sessions (${r.total} total · ${r.alivePty} alive PTY)</div>
|
|
71
|
+
<div class="health-row health-dim">Listeners ${r.totalDataListeners} · Output buffer ${ng(r.totalOutputBufferBytes)}</div>
|
|
72
|
+
<table class="health-table">
|
|
73
|
+
<thead>
|
|
74
|
+
<tr>
|
|
75
|
+
<th>Name</th><th>State</th><th>PID</th><th>Buffer</th><th>Entries</th><th>Listeners</th><th>Timers</th><th>Flags</th>
|
|
76
|
+
</tr>
|
|
77
|
+
</thead>
|
|
78
|
+
<tbody>${o||`<tr><td colspan="8" class="health-dim">No sessions</td></tr>`}</tbody>
|
|
79
|
+
</table>
|
|
80
|
+
</div>
|
|
81
|
+
`}function cg(){if(!Qh)return;let e=qh(Xh,Yh?.anomalies),t=Qh.hidden;Qh.hidden=!e,e&&t&&Yh&&(og(),Zh&&sg())}function lg(e){Xh=e,cg()}function ug(e){if(Qh)return Qh;let t=ag();return e.appendChild(t),cg(),t}function dg(e){Yh=e,cg(),Qh&&!Qh.hidden&&(og(),Zh&&sg())}var fg=Object.freeze([{kind:`approve`,label:`Approve`},{kind:`revise`,label:`Send feedback`},{kind:`terminal`,label:`Answer in terminal`}]);function pg(e){return e===`approve`||e===`approve-accept-edits`}function mg(e){return(e.state===`decided`||e.state===`closed`)&&pg(e.lastDecision)}function hg(e,t){let n=e.reviews.find(e=>e.agentId===t);return n!==void 0&&mg(n)}function gg(e,t){return e.reviews.find(e=>e.agentId===t)??e.reviews[0]??null}function _g(e){let t=gg(e.state,e.selectedAgentId);return t?e.selectedRevision&&t.revisions.some(t=>t.revision===e.selectedRevision)?e.selectedRevision:t.revisions.at(-1)?.revision??null:null}function vg(e,t){return gg(e,t)?.openRevision?.revision??null}function yg(e,t,n){if(n===null)return null;let r=gg(e,t)?.revisions??[],i=r.findIndex(e=>e.revision===n);return i<=0?null:r[i-1].revision}function bg(e,t){let n=t-e;return Number.isFinite(n)?Pe(n,{rounding:`floor`,wording:`abbreviated`,suffix:` ago`,justNowBelowSeconds:60}):`just now`}function xg(e,t,n){return t!==null&&t.state===`open`&&t.openRevision!==null&&t.openRevision.revision===n&&e.body!==null&&e.isConnected&&e.isDraft!==!0&&!e.isDecisionInFlight}function Sg(e,t,n){let r=xg(e,t,n),i=(e.pendingCommentCount??0)>0,a=e.hasUnsavedComment!==!0;return fg.map(({kind:e,label:t})=>({kind:e,label:t,enabled:r&&(e===`terminal`||a&&(e===`revise`?i:!i))}))}function Cg(e,t){return e.openRevision===null?t!==null&&e.approvedRevision===t?`Approved`:e.state===`released`?`Answer in the terminal`:e.state===`decided`?e.lastDecision===`revise`?`Feedback sent, waiting for the next revision`:`Approved`:`Closed`:e.openRevision.revision===t?``:`Rev ${e.openRevision.revision} is the one open`}function wg(e){let t=0;for(let n of e.comments??[])t+=n.comment.trim().length+(n.heading?.length??0);return t}function Tg(e){return new TextEncoder().encode(JSON.stringify(e)).byteLength+c}function Eg(e){let t=e.plan;if(t!==void 0&&t.length===0)return`the edited plan is empty, so nothing was sent`;if(t!==void 0&&new TextEncoder().encode(t).byteLength>524288)return`the edited plan is over the plan size cap, so nothing was sent`;let n=e.comments??[];return n.length>40?`more than 40 section comments are pending, so nothing was sent`:n.find(e=>e.comment.length>4e3||(e.heading?.length??0)>4e3)?`a section comment is over ${se} characters, so nothing was sent`:wg(e)>1e4?`the feedback composes more than the ${ce} characters the hook reply carries, so nothing was sent`:Tg(e)>ye?`the decision is larger than one control frame carries, so nothing was sent`:null}function Dg(e){return e?`, ${e}`:``}function Og(e,t,n){if(!e.isConnected)return`Disconnected`;if(!t||n===null)return`No plan revision selected`;if(e.isDecisionInFlight)return`Sending your decision`;if(e.body===null)return`Loading`;if(e.isDraft===!0)return`Draft`;let r=Cg(t,n);if(r)return r;if(e.hasUnsavedComment===!0)return`Save or cancel the open comment first.`;let i=e.pendingCommentCount??0;return i<=0?``:i===1?`1 comment to send. Remove it to approve.`:`${i} comments to send. Remove them to approve.`}function kg(e,t,n){let r=Og(e,t,n);return r?`${r}${Dg(e.problem)}`:e.problem??``}function Ag(e){let t=gg(e.state,e.selectedAgentId),n=_g(e);return{tabs:e.state.reviews.map(e=>({agentId:e.agentId,label:e.agentId===null?`Main`:e.agentType||`Agent`,selected:e===t})),revisions:(t?.revisions??[]).map(e=>({revision:e.revision,label:`Rev ${e.revision}`,isOpen:e.revision===t?.openRevision?.revision,receivedAt:e.receivedAt,selected:e.revision===n})),selectedAgentId:t?.agentId??null,selectedRevision:n,previousRevision:yg(e.state,t?.agentId??null,n),status:kg(e,t,n),actions:Sg(e,t,n),modes:[{kind:`read`,label:`Read`,enabled:!0},{kind:`changes`,label:`Changes`,enabled:yg(e.state,t?.agentId??null,n)!==null&&e.isDraft!==!0},{kind:`edit`,label:`Edit`,enabled:xg(e,t,n)}]}}function jg(e,t){let n=e.reviews.findIndex(e=>e.agentId===t.agentId),r=[...(n===-1?null:e.reviews[n])?.revisions??[]],i=r.findIndex(e=>e.revision===t.revision),a={revision:t.revision,receivedAt:t.receivedAt,chars:t.chars,title:t.title};r[i===-1?r.length:i]=a,r.sort((e,t)=>e.revision-t.revision);let o={agentId:t.agentId,agentType:t.agentType,revisions:r,state:t.state,openRevision:t.state===`open`?{revision:t.revision,since:t.receivedAt}:null,approvedRevision:t.approvedRevision,lastDecision:t.lastDecision},s=[...e.reviews];return s[n===-1?s.length:n]=o,{reviews:s}}function Mg({headingOffsets:e,scrollTop:t,isScrolledToEnd:n,readingLineOffset:r}){if(e.length===0)return null;if(n)return e.length-1;let i=t+r,a=0;for(let t=0;t<e.length&&!(e[t]>i);t++)a=t;return a}var Ng=10;function Pg(e){let t=new Map;for(let n of e.files){let e=n.path.split(`/`);for(let r=0;r<e.length;r++){let i=e.slice(0,r).join(`/`),a=t.get(i);a!==void 0&&a.localeCompare(n.path)<=0||t.set(i,n.path)}}return t}function Fg(e,t){let n=[],r=new Set(e.files.map(e=>e.path));for(let i of e.links){let a=t.get(i.providerRepo),o=a?.firstChangedPathByDirectory.get(i.packageDir),s=o??i.importers.find(e=>r.has(e))??i.importers[0]??i.consumerManifest,c=o&&a?a.repo:e,l=i.importerCount===1?`file`:`files`,u=i.providerChangedPathCount===1?`file`:`files`,d=i.changedImporterCount===1?`file`:`files`,f=i.isLocalLink?`Linked locally (${i.versionSpec}), so ${i.providerRepo} changes reach it now.`:`Uses ${i.versionSpec} from the registry, so ${i.providerRepo} changes reach it only after a publish.`;i.providerChangedPathCount>0&&(f+=` ${i.providerRepo} changed ${i.providerChangedPathCount} ${u} in ${i.packageDir||`the repository root`}.`),i.changedImporterCount>0&&(f+=` ${i.changedImporterCount} importing ${d} changed here.`),n.push({dedupeKey:`link:${i.providerRepo}:${i.packageName}:${e.name}`,kind:`link`,severity:6,path:s,openPath:`${c.sessionPathPrefix}${s}`,text:`${e.name} imports ${i.packageName} from ${i.providerRepo} in ${i.importerCount} ${l}`,detail:f})}for(let t of e.collisions)n.push({dedupeKey:`collision:${e.sessionPathPrefix}${t.path}:${t.otherSessionId}`,kind:`collision`,severity:5,path:t.path,openPath:`${e.sessionPathPrefix}${t.path}`,text:`Also being changed in "${t.otherSessionName}"`,detail:`Another live session is changing this file, so the two may conflict.`});for(let t of e.coChangeGaps){let r=t.confidence>0?Math.round(t.support/t.confidence):0;n.push({dedupeKey:`co-change:${e.sessionPathPrefix}${t.path}:${t.partner}`,kind:`co-change`,severity:4,path:t.path,openPath:`${e.sessionPathPrefix}${t.path}`,text:`Usually changes with ${t.partner}, which is not in this change`,detail:`${t.support} of the ${r} commits that touched it also touched ${t.partner}.`})}for(let t of e.untestedFiles)n.push({dedupeKey:`untested:${e.sessionPathPrefix}${t.path}`,kind:`untested`,severity:3,path:t.path,openPath:`${e.sessionPathPrefix}${t.path}`,text:`No test reaches it`,detail:`No dependent test was found in the import graph.`});return n}function Ig(e,t,n){let r=e.get(t)??[];r.push(n),e.set(t,r)}function Lg(e,t){for(let n of e.hotspots)Ig(t,`${e.sessionPathPrefix}${n.path}`,{text:`often fixed`,title:`${n.fixCommitCount} of its last ${n.commitCount} commits were fixes.`});for(let n of e.blastRadius)n.transitiveDependentCount<Ng||Ig(t,`${e.sessionPathPrefix}${n.path}`,{text:`${n.transitiveDependentCount} depend on it`,title:`${n.transitiveDependentCount} files depend on it: ${n.directDependentCount} directly, ${n.dependentTestCount} of them tests.`})}function Rg(e,t){return t.severity-e.severity||e.openPath.localeCompare(t.openPath)||e.dedupeKey.localeCompare(t.dedupeKey)}function zg(e){let t=new Set(e.repos.flatMap(e=>e.links.map(e=>e.providerRepo))),n=new Map;for(let r of e.repos)t.has(r.name)&&!n.has(r.name)&&n.set(r.name,{repo:r,firstChangedPathByDirectory:Pg(r)});let r=new Map,i=new Map,a=e.error?[e.error]:[];for(let t of e.repos){for(let e of Fg(t,n))r.has(e.dedupeKey)||r.set(e.dedupeKey,e);Lg(t,i),t.error&&a.push(e.repos.length>1?`${t.name}: ${t.error}`:t.error)}return{worthALook:[...r.values()].sort(Rg),hintsByOpenPath:i,repos:e.repos.map(e=>({name:e.name,sessionPathPrefix:e.sessionPathPrefix})),errors:a}}function Bg(e,t){let n=null;for(let r of e)t.startsWith(r.sessionPathPrefix)&&(n&&n.sessionPathPrefix.length>=r.sessionPathPrefix.length||(n=r));return n?.name??null}var Vg=5;function Hg(e,t){let n=A(`button`,`review-look-line`);return n.type=`button`,n.dataset.kind=e.kind,n.title=`${e.detail} Click to open ${e.path} below.`,n.append(A(`span`,`review-look-file`,e.path),A(`span`,`review-look-text`,e.text)),n.addEventListener(`click`,()=>t(e.openPath)),n}function Ug(e,{isShowingAll:t,onShowAll:n,onOpenFile:r}){if(e.worthALook.length===0&&e.errors.length===0)return null;let i=A(`section`,`review-look`);if(i.append(A(`h3`,`review-group-label`,`Worth a look`)),e.errors.length>0){let t=A(`p`,`review-look-error`,`Could not check this change for anything worth a look.`);t.title=e.errors.join(`
|
|
82
|
+
`),i.append(t)}let a=t?e.worthALook:e.worthALook.slice(0,Vg);if(a.length>0){let e=A(`div`,`review-look-list`);for(let t of a)e.append(Hg(t,r));i.append(e)}let o=e.worthALook.length-a.length;if(o===0)return i;let s=A(`div`,`review-look-more`),c=A(`button`,`review-look-show-all`,`Show all`);return c.type=`button`,c.addEventListener(`click`,n),s.append(A(`span`,`review-look-more-count`,`+${o} more`),c),i.append(s),i}function Wg(e){return(e??[]).map(e=>{let t=A(`span`,`review-file-hint`,e.text);return t.title=e.title,t})}function Gg(e){let t=/^@@+ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]);return!Number.isFinite(n)||!Number.isFinite(r)?null:{oldStart:n,newStart:r}}function Kg(e){let t=[];if(!e)return t;let n=String(e).split(/\r?\n/),r=null,i=null,a=null,o=null,s=()=>{if(a===null)return null;let e=a;return a=e+1,e},c=()=>{if(o===null)return null;let e=o;return o=e+1,e},l=e=>{let n={path:``,oldPath:null,status:`modified`,added:0,removed:0,binary:!1,hunks:[]};t.push(n),i=null;let r=/^diff --git a\/(.+?) b\/(.+)$/.exec(e);return r&&(n.oldPath=r[1]??null,n.path=r[2]??``),n};for(let e of n)if(e.startsWith(`diff --git `))r=l(e);else{if(!r){if(!e.startsWith(`--- `)&&!e.startsWith(`@@`))continue;r=l(`diff --git a/ b/`)}if(r){if(e.startsWith(`new file mode`))r.status=`added`;else if(e.startsWith(`deleted file mode`))r.status=`deleted`;else if(e.startsWith(`rename from `))r.oldPath=e.slice(12),r.status=`renamed`;else if(e.startsWith(`rename to `))r.path=e.slice(10),r.status=`renamed`;else if(e.startsWith(`Binary files`))r.binary=!0;else if(!(e.startsWith(`index `)||e.startsWith(`similarity index`)||e.startsWith(`dissimilarity index`)||e.startsWith(`old mode`)||e.startsWith(`new mode`))){if(e.startsWith(`--- `)){if(e===`--- /dev/null`){r.status=`added`;continue}if(!r.path){let t=e.slice(4).replace(/^a\//,``);t&&t!==`/dev/null`&&(r.oldPath=r.oldPath||t)}}else if(e.startsWith(`+++ `)){if(e===`+++ /dev/null`){r.status=`deleted`;continue}if(!r.path){let t=e.slice(4).replace(/^b\//,``);t&&t!==`/dev/null`&&(r.path=t)}}else if(e.startsWith(`@@`)){i={header:e,lines:[]},r.hunks.push(i);let t=Gg(e);a=t?t.oldStart:null,o=t?t.newStart:null}else if(i){if(e===``)continue;let t=e[0];if(t===`+`){i.lines.push({type:`add`,text:e.slice(1),oldLineNumber:null,newLineNumber:c()}),r.added++;continue}if(t===`-`){i.lines.push({type:`del`,text:e.slice(1),oldLineNumber:s(),newLineNumber:null}),r.removed++;continue}if(t===`\\`){i.lines.push({type:`meta`,text:e.slice(1).trim(),oldLineNumber:null,newLineNumber:null});continue}i.lines.push({type:`context`,text:t===` `?e.slice(1):e,oldLineNumber:s(),newLineNumber:c()})}}}}for(let e of t)e.path||=e.oldPath||`(unknown)`;return t}function qg(e,t){return t===`merged`||t===`none`||e===`parked`&&t===`pending-review`}function Jg(e){let t=0,n=0;for(let r of e||[])t+=r.added||0,n+=r.removed||0;return{files:(e||[]).length,added:t,removed:n}}function Yg({changedFileCount:e,hasCommits:t,canMerge:n,isWorkspace:r,live:i,effectiveBase:a}){let o=`${e} file${e===1?``:`s`} changed`,s=(t,n)=>e>0?`${o}, ${t}`:n;if(r)return{text:e>0?`${o} in this worktree`:`Changes in this worktree`,namesMergeTarget:!1};if(n){let e=e_(a);return{text:s(`ready to merge into ${e}`,`Ready to merge into ${e}`),namesMergeTarget:!0}}return i?t?{text:s(`not ready to merge`,`Not ready to merge`),namesMergeTarget:!1}:{text:s(`not committed yet`,`Not committed yet`),namesMergeTarget:!1}:{text:s(`session ended`,`Session ended`),namesMergeTarget:!1}}function Xg({status:e,mergeReason:t,fetched:n,hasDiffError:r,hasChanges:i,hasCommits:a,canMerge:o,isWorkspace:s,live:c,effectiveBase:l,changedFileCount:u=0}){return e===`parked`&&t===`base-diverged`?{text:`Parked: base branch diverged`,namesMergeTarget:!1}:e===`parked`?{text:`Parked: merge conflict`,namesMergeTarget:!1}:e===`merging`?{text:`Merging`,namesMergeTarget:!1}:e===`merged`?{text:`Merged`,namesMergeTarget:!1}:r?{text:`Could not read changes`,namesMergeTarget:!1}:n?i?Yg({changedFileCount:u,hasCommits:a,canMerge:o,isWorkspace:s,live:c,effectiveBase:l}):{text:`No changes yet`,namesMergeTarget:!1,isEmpty:!0}:{text:`Checking for changes`,namesMergeTarget:!1}}function Zg(e,t){return e?`Edits this session makes in its worktree show up here.`:`Edits this session makes show up here, ready to merge into ${e_(t)}.`}function Qg(e,t){return e.namesMergeTarget?null:`merges into ${e_(t)}`}function $g({status:e,mergeReason:t,live:n,isMergeRendered:r,hasChanges:i}){return e===`parked`&&n&&t!==`base-diverged`?`resolve`:!i&&e!==`parked`&&e!==`merging`?`none`:r?`merge`:`none`}function e_(e){return e||`base`}function t_(e,t){return`Merge into ${e_(e)}, push it, and rebase this worktree, then keep working (${t})`}function n_(e){return e===`base-diverged`?`Resync the base branch by hand, then Merge again.`:`Needs manual merge`}function r_(e,t,n){let r=e!==`parked`||e===`parked`&&t===`base-diverged`;return{isRendered:r,isEnabled:r&&e!==`merging`&&n}}function i_({status:e,hasCommits:t,live:n,state:r}){return e===`merging`?null:t?!n&&(e===`parked`||e===`merged`)?`Session ended.`:!n||e===`parked`?null:r===`INITIALIZING`||r===`STARTING`?`Starting up. Mergeable once the session is live.`:null:n?`Nothing is committed yet. Merge opens once the session commits.`:null}function a_(e){return e.map(e=>{let t=e.member?`${e.member}/ `:``,n=ee(e.sha);return!e.verified||!e.ref?{text:`${t}vs ${n}, base branch not found`,fullSha:e.sha,isUnverified:!0}:{text:`${t}vs ${e.ref} @ ${n}`,fullSha:e.sha,isUnverified:!1}})}function o_({fetched:e,changedFileCount:t,hasCommits:n}){return!e||t>0||n}function s_(e){return e||`its upstream`}function c_(e){if(!e)return null;let t=e.branch||`Base branch`,{state:n,ahead:r,behind:i}=e,a=s_(e.upstream);return n===`no-upstream`?`${t}: no upstream`:n===`unknown`&&e.error&&e.action===void 0?`${t}: sync check failed: ${e.error}`:n===`unknown`?`${t}: sync state unknown vs ${a}`:n===`in-sync`?`${t}: in sync with ${a}`:n===`ahead`?`${t}: ${r} ahead of ${a}`:n===`behind`?`${t}: ${i} behind ${a}`:n===`diverged`?`${t}: ${r} ahead, ${i} behind ${a}`:null}function l_(e){return!e||e.fetched===!1?`recheck`:e.state===`ahead`||e.state===`behind`?`resync`:`recheck`}function u_(e,t,n){let r=n?` (${t})`:``;if(!e||l_(e)===`recheck`)return`Click to fetch and check again${r}`;let i=e.branch||`Base branch`,a=s_(e.upstream);return e.state===`behind`?`Click to fast-forward ${i} to ${a}${r}`:`Click to push ${i} to ${a}${r}`}function d_(e){return e?.state!==`in-sync`||e.fetched===!1}function f_(e){if(e.error)return`Resync failed: ${e.error}`;let t=e.branch||`The base branch`,n=s_(e.upstream);return e.action===`fast-forwarded`?`Fast-forwarded ${t} to ${n}.`:e.action===`pushed`?`Pushed ${t} to ${n}.`:e.state===`diverged`?`${t} has diverged from ${n}. Resolve manually.`:e.state===`in-sync`?null:e.state===`no-upstream`?`${t} has no upstream to resync against.`:`Could not determine sync status.`}var p_=new Set([`pending-review`,`parked`]),m_=600,h_=Rt(`merge`,ju),g_=Rt(`resolve-or-resync`,ju),__={minPx:260,maxPx:700},v_=16,y_=5e3,b_=new Map,x_=new Map,S_=new Map,C_=new Map,w_=new Map,T_=new Map,E_=new Set,D_=new WeakMap,O_=new WeakMap,k_=new Set,A_=new Set,j_=!1,M_=null,N_=null,B=null,V=null,P_=null,F_=null,I_=null,L_=null,R_=null,z_=!1,B_=null,V_=null,H_=null,U_=null,W_=new Map,H=null,G_=null;function K_(e,t){let n=A(`button`,`review-icon-button`);return n.type=`button`,n.title=e,n.setAttribute(`aria-label`,e),n.append(mn(t)),n}function q_(){z_=!1,B?.querySelector(`.review-more-menu`)?.remove(),B?.querySelector(`.review-more-button`)?.setAttribute(`aria-expanded`,`false`)}function J_({panel:e}){if(N_=e,!N_)return;let t=N_,n=A(`div`,`review-sidebar-head`),r=A(`span`,`review-sidebar-title`,`Review`);R_=A(`span`,`review-sidebar-session`),r.append(R_);let i=e=>{t.toggleAttribute(`data-collapsed`,e),Tt(!e)},a=K_(`Close review`,`M6 3L11 8L6 13`);a.classList.add(`review-sidebar-close`),a.addEventListener(`click`,()=>i(!0)),n.append(r,a);let o=A(`div`,`review-sidebar-rail`),s=K_(`Open review`,`M10 3L5 8L10 13`);s.classList.add(`review-sidebar-open`),s.addEventListener(`click`,()=>i(!1)),F_=A(`div`,`review-rail-status`),I_=A(`span`,`review-rail-added`),L_=A(`span`,`review-rail-removed`),F_.append(I_,L_),P_=A(`span`,`review-rail-label`,`Review`),o.append(s,P_,F_),B=A(`div`,`review-controls`),V=A(`div`,`review-sidebar-body`);let c=A(`div`,`review-resize-handle`);c.setAttribute(`role`,`separator`),c.setAttribute(`aria-orientation`,`vertical`),c.setAttribute(`aria-label`,`Resize review sidebar`),c.tabIndex=0,t.append(o,n,B,V,c),t.toggleAttribute(`data-collapsed`,!dt()),X_(V),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&z_&&(e.preventDefault(),q_(),B?.querySelector(`.review-more-button`)?.focus())}),document.addEventListener(`pointerdown`,e=>{z_&&e.target instanceof Element&&(B?.contains(e.target)&&e.target.closest(`.review-more-button, .review-more-menu`)||q_())}),Xc({resizer:c,column:t,widthHost:t,widthProperty:`--sidebar-width`,bounds:__,keyStepPx:v_,getStoredWidth:Xt,setStoredWidth:Et,growsLeftward:!0}),hi(e=>{z_=!1,H_=null,k_.clear(),A_.clear(),j_=!1,M_=null,e&&Cv(e),e&&!Tv(e)&&Ev(e),U()}),U()}function Y_(e,t){let n=b_.get(e);b_.set(e,t),qg(n,t)&&(S_.delete(e),C_.delete(e),w_.delete(e),e===R()&&wv(e)),e===R()&&U()}function X_(e){let t=!1,n=null,r=null,i=e=>j({type:`watch-session-changes`,id:e}),a=()=>{let e=t&&document.visibilityState===`visible`?R():null;e!==n&&(r&&clearInterval(r),r=null,n=e,i(e),e&&(r=setInterval(()=>i(e),f)))};new IntersectionObserver(e=>{t=e[e.length-1]?.isIntersecting??!1,a()}).observe(e),document.addEventListener(`visibilitychange`,a),hi(a)}function Z_(e){N_&&(e?(De(N_,e),U()):(ge(N_),U()))}function Q_(e,t,n=null){let r=t||`none`;x_.set(e,n);let i=W_.get(e);i!==void 0&&i!==r&&W_.delete(e),Y_(e,r)}function $_(e){let t=P(e);t&&W_.delete(t)&&t===R()&&U()}function ev(e,t,n=null){x_.set(e,n),W_.delete(e),Y_(e,t||`none`)}function tv(e,t){S_.set(e,t),C_.delete(e),e===R()&&(M_&&Mv(M_,t),U(),Nv())}function nv(e,t){let n=P(e);n&&(C_.set(n,t),n===R()&&U())}function rv(e,t){let n=P(e);if(!n)return;let r=y.safeParse(t);r.success&&r.data.sessionId===n&&(w_.set(n,r.data),n===R()&&U())}function iv(e,t){let n=P(e),r=t;T_.set(n,r),r&&r.action!==void 0&&av(n,r),n===R()&&U()}function av(e,t){E_.delete(e),clearTimeout(G_??void 0),G_=null;let n=f_(t);H=n?{forId:e,text:n,isError:!!t.error}:null,H&&!H.isError&&(G_=setTimeout(()=>{H&&H.forId===e&&(H=null),U()},5e3))}function ov(e){let t=P(e);t&&t===R()&&Cv(t)}function sv(e){let t=P(e);if(t!==R())return;let n=!S_.has(t)||C_.has(t),r=!w_.has(t)||cv(w_.get(t));n&&Cv(t),r&&!n&&wv(t),U()}function cv(e){return e?!!e.error||e.repos.some(e=>e.error!==null):!1}function lv(e){let t=P(e);b_.delete(t),x_.delete(t),S_.delete(t),C_.delete(t),w_.delete(t),T_.delete(t),E_.delete(t),H&&H.forId===t&&(clearTimeout(G_??void 0),H=null),t===R()?mi(null):U()}function uv(){let e=R(),t=e?F.get(e):null;if(!e||!t)return dv(null,`No session is open to merge.`);if(Tv(e))return dv(e,`A workspace session has no worktree to merge.`);if(W_.has(e))return dv(e,`Merge is already on its way for "${jv(t,e)}".`);let n=b_.get(e)||`none`,r=!!S_.get(e)?.hasCommits,i=r_(n,x_.get(e)||null,yv(t.currentState,r));return $g({status:n,mergeReason:x_.get(e)||null,live:Sv(t.currentState),isMergeRendered:i.isRendered,hasChanges:vv(e)})!==`merge`||!i.isEnabled?dv(e,i_({status:n,hasCommits:r,live:Sv(t.currentState),state:t.currentState})??`Nothing to merge in "${jv(t,e)}" right now.`):(bv(e,t.currentState),!0)}function dv(e,t){return H_={forId:e,text:t},clearTimeout(U_??void 0),U_=setTimeout(()=>{H_=null,U()},y_),U(),!1}function fv(){let e=R();if(!e||Tv(e))return!1;let t=F.get(e);if(!t)return!1;let n=b_.get(e)||`none`,r=x_.get(e)||null;return $g({status:n,mergeReason:r,live:Sv(t.currentState),isMergeRendered:r_(n,r,!1).isRendered,hasChanges:vv(e)})!==`resolve`||pv(e)?!1:(mv(e),!0)}function pv(e){return B_?.forId===e&&!B_.isError}function mv(e){let t=j({type:`resolve-session-merge`,id:e});B_=t?{forId:e,text:`Resolve prompt sent`,isError:!1}:{forId:e,text:`Not connected. The resolve prompt was not sent.`,isError:!0},clearTimeout(V_??void 0),V_=setTimeout(()=>{B_=null,U()},t?3e3:y_),U()}function hv(){let e=R();return!e||!F.has(e)||Tv(e)||Ov(e)?!1:(kv(e),!0)}function gv(e){if(!e)return{committed:[],uncommitted:[]};let t=D_.get(e);if(t)return t;let n={committed:Kg(e.committed?.diff||``),uncommitted:Kg(e.uncommitted?.diff||``)};return D_.set(e,n),n}function _v(e){let t=O_.get(e);if(t)return t;let n=zg(e);return O_.set(e,n),n}function vv(e){let t=gv(S_.get(e)),n=[...t.committed,...t.uncommitted],r=S_.get(e)??null;return o_({fetched:S_.has(e),changedFileCount:Jg(n).files,hasCommits:!!r?.hasCommits})}function yv(e,t){return(oe.includes(e)||e===b.RUNNING)&&t}function bv(e,t){t===b.RUNNING?hr({title:`Merge while working`,message:`This session still looks like it is working. Merging rebases its worktree under it. Merge anyway?`,confirmLabel:`Merge anyway`,onConfirm:()=>xv(e,!0)}):xv(e,!1)}function xv(e,t){W_.has(e)||(j(t?{type:`merge-continue-session`,id:e,force:!0}:{type:`merge-continue-session`,id:e})?(W_.set(e,b_.get(e)||`none`),e===R()&&U()):dv(e,`Not connected. The merge was not sent.`))}function Sv(e){return e!==b.DORMANT&&e!==b.DONE&&e!==b.FAILED}function Cv(e){j({type:`request-session-diff`,id:e}),wv(e)}function wv(e){w_.has(e)||w_.set(e,null),j({type:`request-change-map`,id:e})}function Tv(e){return F.get(e)?.card.dataset.workspace!==void 0}function Ev(e){T_.set(e,null),j({type:`request-branch-sync`,id:e}),e===R()&&U()}function Dv(e){E_.add(e),clearTimeout(G_??void 0),H&&H.forId===e&&(H=null),j({type:`resync-branch`,id:e}),e===R()&&U()}function Ov(e){return E_.has(e)||T_.get(e)===null}function kv(e){Ov(e)||(l_(T_.get(e))===`resync`?Dv(e):Ev(e))}function Av(e,t){return t?{text:`Resyncing`,loading:!0,error:!1}:H&&H.forId===e?{text:H.text,loading:!1,error:H.isError}:null}function jv(e,t){return e?.card?.dataset.session||t}function Mv(e,t){if(!t)return;let{committed:n,uncommitted:r}=gv(t);for(let t of n)(t.path===e||t.oldPath===e)&&k_.add(`committed:${t.path}`);for(let t of r)(t.path===e||t.oldPath===e)&&k_.add(`uncommitted:${t.path}`)}function Nv(){if(!V||!M_)return;let e=V.querySelectorAll(`.review-file`);for(let t of e)if(t.dataset.path===M_||t.dataset.oldPath===M_){t.scrollIntoView({block:`nearest`}),M_=null;return}}function Pv(e){M_=e,Mv(e,S_.get(R()??``)),U(),Nv()}function Fv(){j_=!0,U()}function U(){let e=V?.scrollTop??0;Iv(),V&&(V.scrollTop=e)}function Iv(){if(!B||!V)return;B.replaceChildren(),V.replaceChildren(),P_&&(P_.hidden=!0),F_&&(F_.hidden=!0);let e=R(),t=e?F.get(e):null;if(Rv(e,t),!e||!t){H_&&B.append(Lv(H_.text,!0)),zv(`No session selected`,`Click a session name to review its changes here.`);return}let n=Tv(e),r=b_.get(e)||`none`,i=x_.get(e)||null,a=t.currentState,o=p_.has(r),s=S_.has(e),c=s?S_.get(e):null,l=C_.get(e)??null,{committed:u,uncommitted:d}=gv(c),f=!!c?.hasCommits,p=Sv(a),m=r_(r,i,yv(a,f)),h=T_.get(e),g=E_.has(e),_=e_(t.effectiveBase),v=Jg([...u,...d]),y=$g({status:r,mergeReason:i,live:p,hasChanges:o_({fetched:s,changedFileCount:v.files,hasCommits:f}),isMergeRendered:m.isRendered}),b=Xg({status:r,mergeReason:i,fetched:s,hasDiffError:l!==null,hasChanges:v.files>0||f,hasCommits:f,canMerge:!n&&m.isEnabled,isWorkspace:n,live:p,effectiveBase:_,changedFileCount:v.files}),x=b.isEmpty===!0,S=x||Ji()||d_(h),C=A(`div`,`review-status-headline`);if(C.append(A(`span`,`review-status-text`,b.text)),!n&&!S){let t=c_(h);if(t){C.title=t;let n=K_(`Refresh branch sync`,`M13 6A5 5 0 1 0 13 10M13 2v4H9`);n.classList.add(`review-branch-sync-refresh`),n.title=u_(h,g_,y!==`resolve`),n.disabled=Ov(e),n.setAttribute(`aria-description`,t),n.addEventListener(`click`,()=>kv(e)),C.append(A(`span`,`sr-only`,t),n)}}if(x||B.append(C),u.length>0)for(let e of a_(c?.bases??[])){let t=A(`div`,e.isUnverified?`review-diff-base review-diff-base-unverified`:`review-diff-base`,e.text);t.title=e.fullSha,B.append(t)}let w=A(`div`,`review-status-meta`);if(s&&v.files>0&&w.append(A(`span`,`review-status-added`,`+${v.added}`),A(`span`,`review-status-removed`,`-${v.removed}`),A(`span`,`review-status-spacer`)),!n&&S){let t=Bv(e,y!==`resolve`);t&&w.append(t)}w.childElementCount>0&&B.append(w),r===`parked`&&B.append(A(`div`,`review-status-explanation`,n_(i))),P_&&(P_.hidden=!1),F_&&(F_.hidden=!1,F_.setAttribute(`aria-label`,`${b.text}, +${v.added}, -${v.removed}`),F_.title=b.text),I_&&(I_.textContent=`+${v.added}`),L_&&(L_.textContent=`-${v.removed}`);let T=n?null:Gv(e,{status:r,reviewable:o,mergeAction:m,live:p,state:a,effectiveBase:_,primaryAction:y});T&&B.append(T);let E=n?null:Av(e,g),ee=!n&&y===`merge`&&!m.isEnabled?i_({status:r,hasCommits:f,live:p,state:a}):null;if(ee){let e=A(`div`,`review-control-reason`,ee);e.id=`review-merge-reason`,B.append(e),B.querySelector(`#review-merge-btn`)?.setAttribute(`aria-describedby`,e.id)}if(E?.text){let e=A(`div`,E.loading?`review-control-reason review-loading`:`review-control-reason`,E.text);e.id=`review-resync-reason`,E.error&&e.classList.add(`review-control-reason-error`),e.setAttribute(`role`,`status`),w.append(e),w.isConnected||B.insertBefore(w,C.isConnected?C.nextSibling:B.firstChild),B.querySelector(`.review-branch-sync-button, .review-branch-sync-refresh`)?.setAttribute(`aria-describedby`,e.id)}if(B_?.forId===e&&B.append(Lv(B_.text,B_.isError)),H_&&(H_.forId===e||H_.forId===null)&&B.append(Lv(H_.text,!0)),l){V.append(A(`p`,`review-diff-error`,l));return}if(x){zv(b.text,Zg(n,_));return}let D=w_.get(e),te=D?_v(D):null,ne=te?Ug(te,{isShowingAll:j_,onShowAll:Fv,onOpenFile:Pv}):null;ne&&V.append(ne);let re=u.length>0&&d.length>0;u.length>0&&V.append(Vv({kind:`committed`,label:re?`Committed`:null,meaning:Qg(b,_),files:u,changeMapView:te})),d.length>0&&V.append(Vv({kind:`uncommitted`,label:re?`Not committed yet`:null,meaning:null,files:d,changeMapView:te}))}function Lv(e,t){let n=A(`div`,t?`review-control-reason review-control-reason-error`:`review-resolve-sent`,e);return n.setAttribute(`role`,`status`),n}function Rv(e,t){if(!R_)return;let n=e&&t?jv(t,e):``;R_.textContent=n,R_.hidden=!n,R_.title=n}function zv(e,t){if(!V)return;let n=A(`div`,`review-empty`);n.append(A(`div`,`review-empty-title`,e),A(`div`,`review-empty-desc`,t)),V.append(n)}function Bv(e,t){let n=T_.get(e);if(n===void 0)return null;if(n===null)return A(`span`,`review-branch-sync-text review-loading`,`Checking branch sync...`);let r=c_(n)||`Base branch: sync state unknown`,i=A(`span`,`review-branch-sync-text`);n.state&&(i.dataset.syncState=n.state),n.fetched===!1&&(i.dataset.stale=`true`);let a=K_(`Refresh branch sync`,`M13 6A5 5 0 1 0 13 10M13 2v4H9`);return a.classList.add(`review-branch-sync-button`),a.title=u_(n,g_,t),a.disabled=E_.has(e),a.addEventListener(`click`,()=>kv(e)),i.append(a,A(`span`,`review-branch-sync-label`,r)),i}function Vv({kind:e,label:t,meaning:n,files:r,changeMapView:i}){let a=A(`div`,`review-section`);a.dataset.kind=e,t&&a.append(Hv(t,n,r));let o=A(`div`,`review-diff`),s=i&&i.repos.length>1?i.repos:[],c=null;for(let t of r){let n=s.length>0?Bg(s,t.path):null;n&&n!==c&&o.append(A(`div`,`review-repo-label`,n)),c=n,o.append(Uv(t,e,i))}return a.append(o),a}function Hv(e,t,n){let r=Jg(n),i=A(`div`,`review-section-head`),a=A(`div`,`review-section-id`);a.append(A(`span`,`review-section-label`,e)),t&&a.append(A(`span`,`review-section-meaning`,t));let o=A(`div`,`review-section-stat`);return o.append(A(`span`,`review-stat-files`,`${r.files} file${r.files===1?``:`s`}`),A(`span`,`review-add`,`+${r.added}`),A(`span`,`review-del`,`-${r.removed}`)),i.append(a,o),i}function Uv(e,t,n){let r=`${t}:${e.path}`,i=k_.has(r),a=A(`div`,`review-file`);a.dataset.path=e.path,e.oldPath&&(a.dataset.oldPath=e.oldPath),a.dataset.status=e.status,a.dataset.open=i?`true`:`false`;let o=A(`button`,`review-file-head`);o.type=`button`,o.setAttribute(`aria-expanded`,i?`true`:`false`);let s=A(`span`,`review-file-twisty`,i?`▾`:`▸`);s.setAttribute(`aria-hidden`,`true`);let c=A(`span`,`review-file-name`);c.append(A(`span`,`review-file-path`,e.path));let l=Wg(n?.hintsByOpenPath.get(e.path));if(l.length>0){let e=A(`span`,`review-file-hints`);e.append(...l),c.append(e)}o.append(s,c);let u=A(`span`,`review-file-counts`);if(e.binary&&u.append(A(`span`,`review-bin`,`bin`)),e.binary||u.append(A(`span`,`review-add`,`+${e.added}`),A(`span`,`review-del`,`-${e.removed}`)),o.append(u),o.addEventListener(`click`,()=>{let e=k_.has(r);e&&k_.delete(r),e||k_.add(r),U()}),a.append(o),!i)return a;let d=A(`div`,`review-file-body`);if(e.binary)return d.append(A(`div`,`review-file-binary`,`Binary file not shown`)),a.append(d),a;let f=0,p=!1;for(let t of e.hunks){if(f>=m_&&!A_.has(r)){p=!0;break}d.append(A(`div`,`review-hunk-head`,t.header));for(let e of t.lines){if(f>=m_&&!A_.has(r)){p=!0;break}let t=A(`div`,`review-line review-line-${e.type}`),n=e.type===`add`?`+`:e.type===`del`?`-`:e.type===`meta`?`\\`:` `;t.append(A(`span`,`review-line-gutter`,n)),t.append(A(`span`,`review-line-text`,e.text)),d.append(t),f++}if(p)break}if(p){let e=A(`button`,`review-expand`,`Show the rest of this file`);e.type=`button`,e.addEventListener(`click`,()=>{A_.add(r),U()}),d.append(e)}return a.append(d),a}function Wv({id:e,label:t,shortcut:n,title:r,disabled:i=!1,danger:a=!1,onClick:o}){let s=A(`button`,a?`review-btn review-btn-danger`:`review-btn review-btn-primary`);return s.type=`button`,e&&(s.id=e),r&&(s.title=r),s.disabled=i,s.innerHTML=n?`${t} <kbd class="review-shortcut" aria-hidden="true">${n}</kbd>`:t,s.addEventListener(`click`,o),s}function Gv(e,{status:t,reviewable:n,mergeAction:r,live:i,state:a,effectiveBase:o,primaryAction:s}){let c=A(`div`,`review-actions`),l=s===`resolve`;s===`merge`&&c.append(Wv({id:`review-merge-btn`,label:`Merge`,shortcut:h_,title:t_(o,h_),disabled:!r.isEnabled||W_.has(e),onClick:()=>bv(e,a)})),l&&c.append(Wv({label:`Resolve`,shortcut:g_,title:`Paste a resolve prompt into this session so the agent can finish the merge (${g_})`,disabled:pv(e),onClick:()=>mv(e)}));let u=A(`div`,`review-action-controls`);if(u.append(c),!n||i)return c.childElementCount>0?u:null;let d=K_(`More review actions`,_n);if(d.classList.add(`review-more-button`),d.setAttribute(`aria-haspopup`,`menu`),d.setAttribute(`aria-expanded`,String(z_)),d.setAttribute(`aria-controls`,`review-more-menu`),d.addEventListener(`click`,()=>{z_=!z_,U(),(B?.querySelector(z_?`.review-more-menu button:not(:disabled)`:`.review-more-button`)??B?.querySelector(`.review-more-button`))?.focus()}),c.append(d),!z_)return u;let f=A(`div`,`review-more-menu`);if(f.id=`review-more-menu`,f.setAttribute(`role`,`menu`),f.setAttribute(`aria-label`,`More review actions`),n&&!i){let n=Wv({label:`Discard worktree`,danger:!0,disabled:t===`merging`,onClick:()=>{z_=!1,U();let t=jv(F.get(e),e);hr({title:`Discard worktree`,message:`Throw away the worktree changes for "${t}"? This cannot be undone.`,confirmLabel:`Discard`,danger:!0,onConfirm:()=>j({type:`discard-session-worktree`,id:e})})}});n.setAttribute(`role`,`menuitem`),f.append(n)}return u.append(f),u}var Kv=160,qv=Object.freeze({Bash:`command`,Read:`file_path`,Edit:`file_path`,MultiEdit:`file_path`,Write:`file_path`,NotebookEdit:`notebook_path`,Grep:`pattern`,Glob:`pattern`,WebFetch:`url`,WebSearch:`query`,Task:`description`,Agent:`description`,Skill:`skill`});function Jv(e){let t=e.split(/\r?\n/,1)[0]?.trim()??``;return t.length<=Kv?t:`${t.slice(0,157)}...`}function Yv(e,t){let n=qv[e];if(!n||!t||typeof t!=`object`||Array.isArray(t))return``;let r=t[n];return typeof r==`string`?Jv(r):``}var Xv=5e3;function Zv(e){let t=e.match(/<command-name>([^<]*)<\/command-name>/)?.[1];return t===void 0||/[\r\n]/.test(t)?null:t.trim()||null}function Qv(e,t){if(!e.toolUseId)return Zv(e.text)??`context`;let n=t.get(e.toolUseId);return n?Yv(n.name,n.input)||n.name:`expansion`}function $v(e){return e.kind!==`expansion`||e.toolUseId?!1:Zv(e.text)!==null}function ey(e){return e.kind===`prompt`||e.kind===`session`||$v(e)}function ty(e){return new TextEncoder().encode(e).byteLength}var ny={prompt:`PROMPT`,expansion:`EXPANSION`,thinking:`THINKING`,assistant:`ASSISTANT`,tool_call:`TOOL`,tool_result:`RESULT`,session:`SESSION`,notice:`NOTICE`,raw:`RAW`};function ry(e,t){if(e.kind===`prompt`)return{prefix:`Prompt: `,text:Jv(e.text)};if(e.kind===`thinking`)return{prefix:`Thinking: `,text:Jv(e.text)};if(e.kind===`assistant`)return{prefix:`Assistant: `,text:Jv(e.text)};if(e.kind===`notice`)return{prefix:`Notice: `,text:Jv(e.text)};if(e.kind===`raw`)return{prefix:`Raw: `,text:Jv(e.line)};if(e.kind===`session`)return{prefix:`Session: `,text:`${e.vendor} ${e.vendorSessionId}`};if(e.kind===`expansion`)return{prefix:`Expansion: `,text:Qv(e,t)};if(e.kind===`tool_call`){let t=Yv(e.name,e.input);return t?{prefix:`${e.name}: `,text:t}:{prefix:``,text:e.name}}return{prefix:`${t.get(e.toolUseId)?.name??`Tool`} result: `,text:`${ty(e.content)} bytes`}}function iy(e){if(!e.agentType)return``;let t=e.agentId?` ${e.agentId.slice(-6)}`:``;return`[${e.agentType}${t}] `}function ay(e,t){let n=ry(e,t),r=iy(e),i=e.kind===`tool_call`||e.kind===`tool_result`?`${n.prefix}${n.text}`:n.text,a=[],o=e.kind===`notice`?`muted`:`default`;if(e.kind===`tool_result`&&e.isError&&(o=`error`,a.push(`error`)),e.truncated===!0&&(o!==`error`&&(o=`muted`),a.push(`truncated`)),e.kind===`tool_result`){let n=t.get(e.toolUseId),r=n?e.ts-n.ts:NaN;Number.isFinite(r)&&r>=0&&a.push(r>1e3?`${(r/1e3).toFixed(1)}s`:`${Math.round(r)}ms`)}return{kind:e.kind,tag:ny[e.kind],text:`${r}${i}`,tone:o,badges:a}}function oy(e,t){return{record:e,...ay(e,t)}}function sy(e){return e.kind!==`tool_result`&&e.kind!==`expansion`?null:e.toolUseId||null}function cy(e,t){let n=sy(e);return!n||t.has(n)?null:n}function ly(e,t,n=1){e.set(t,(e.get(t)??0)+n)}function uy(e,t){let n=(e.get(t)??0)-1;n>0?e.set(t,n):e.delete(t)}function dy(e,t){if(t.size!==0)for(let n of e.turns)for(let r=0;r<n.rows.length;r+=1){let i=n.rows[r],a=sy(i.record);a&&t.has(a)&&(n.rows[r]=oy(i.record,e.toolCallByUseId))}}function fy(){return{turns:[],toolCallByUseId:new Map,unresolvedToolUseCounts:new Map}}function py(){return{rowCount:0,toolCallCount:0,errorCount:0,resultBytes:0}}function my(e,t,n){e.metrics.rowCount+=n,t.record.kind===`tool_call`&&(e.metrics.toolCallCount+=n),t.record.kind===`tool_result`&&(e.metrics.resultBytes+=ty(t.record.content)*n,t.record.isError&&(e.metrics.errorCount+=n))}function hy(e,t){for(let n of t)n.kind===`tool_call`&&e.toolCallByUseId.set(n.toolUseId,n);let n=[],r=e.turns[e.turns.length-1]??null;for(let i of t){let t=cy(i,e.toolCallByUseId);t&&ly(e.unresolvedToolUseCounts,t);let a=oy(i,e.toolCallByUseId);if(ey(i)){r={head:a,rows:[],hasTrimmedRows:!1,startedAt:i.ts,metrics:py()},my(r,a,1),e.turns.push(r),n.push({turnIndex:e.turns.length-1,isNewTurn:!0,head:a,rows:[]});continue}r||(r={head:null,rows:[],hasTrimmedRows:!1,startedAt:i.ts,metrics:py()},e.turns.push(r),n.push({turnIndex:e.turns.length-1,isNewTurn:!0,head:null,rows:[]})),r.rows.push(a),my(r,a,1);let o=e.turns.length-1,s=n[n.length-1];s&&s.turnIndex===o?s.rows.push(a):n.push({turnIndex:o,isNewTurn:!1,head:null,rows:[a]})}return n}function gy(e,t){let n=fy();hy(n,t);let r=new Set;for(let[t,i]of n.toolCallByUseId)e.toolCallByUseId.has(t)||(e.toolCallByUseId.set(t,i),r.add(t));let i=new Set;for(let t of r)e.unresolvedToolUseCounts.delete(t)&&i.add(t);for(let[t,r]of n.unresolvedToolUseCounts)e.toolCallByUseId.has(t)||ly(e.unresolvedToolUseCounts,t,r);let a=n.turns[n.turns.length-1],o=e.turns[0],s=!!a&&!!o&&!o.head,c=s?a.head:null,l=s?a.rows:[];if(s){n.turns.pop();let e=a.startedAt,t=o.startedAt;e!==null&&(t===null||e<t)&&(o.startedAt=a.startedAt),o.head=c,o.rows=[...l,...o.rows],o.metrics={rowCount:a.metrics.rowCount+o.metrics.rowCount,toolCallCount:a.metrics.toolCallCount+o.metrics.toolCallCount,errorCount:a.metrics.errorCount+o.metrics.errorCount,resultBytes:a.metrics.resultBytes+o.metrics.resultBytes}}return e.turns=[...n.turns,...e.turns],dy(e,i),{newTurns:n.turns,mergedHead:c,mergedRows:l,needsRerender:i.size>0}}function _y(e){return e.rows.length+ +!!e.head}function vy(e){let t=0;for(let n of e.turns)t+=_y(n);return t}function yy(e,t){for(let n of t){if(n.record.kind===`tool_call`){e.toolCallByUseId.delete(n.record.toolUseId);continue}let t=sy(n.record);t&&uy(e.unresolvedToolUseCounts,t)}}function by(e,t){yy(e,t.head?[t.head,...t.rows]:t.rows)}function xy(e,t){let n=e.turns[0];if(!n)return 0;let r=Math.min(t,n.rows.length);if(r<=0)return 0;let i=n.rows.slice(0,r);yy(e,i);for(let e of i)my(n,e,-1);return n.rows=n.rows.slice(r),n.hasTrimmedRows=!0,r}function Sy(e,t=Xv){let n=vy(e),r=0;for(;n>t&&r<e.turns.length-1;){let t=e.turns[r];if(!t)break;n-=_y(t),by(e,t),r+=1}return r>0&&(e.turns=e.turns.slice(r)),n<=t?{droppedTurnCount:r,droppedRowCount:0}:{droppedTurnCount:r,droppedRowCount:xy(e,n-t)}}function Cy(e){let t=[],n=new Set;for(let r of e)r.id&&r.name&&!n.has(r.id)&&(n.add(r.id),t.push({id:r.id,label:r.name}));return t}function wy(e,t,n,r=!0){return t&&e.some(e=>e.id===t)?t:n&&e.some(e=>e.id===n)?n:r?e[0]?.id??null:null}function Ty(e){return!e.selectedSessionId||!e.isPanelVisible||e.hasPendingRequest?null:e.hasLoadedOnce?{id:e.selectedSessionId,direction:`forward`,after:e.nextOffset}:{id:e.selectedSessionId,direction:`tail`,after:0,endingAt:`tail`}}function Ey(e,t=Xv){return!e.selectedSessionId||!e.hasLoadedOnce||e.hasDroppedEarliestRows||e.residentRowCount>=t?!1:e.firstOffset>0}function Dy(e,t=Xv){return!Ey(e,t)||e.hasPendingRequest||!e.selectedSessionId?null:{id:e.selectedSessionId,direction:`earlier`,after:0,endingAt:e.firstOffset}}function Oy(e){let{pendingRequest:t,resident:n,reply:r}=e;return!t||t.id!==r.id?`ignore`:!n||n.sessionId!==r.id?`stale`:r.reset||r.next<r.start?`reset`:t.direction===`tail`?n.hasLoadedOnce?`stale`:`seed`:t.direction===`earlier`?n.firstOffset===t.endingAt?r.next===t.endingAt?`prepend`:`reset`:`stale`:n.nextOffset===t.after?r.start===t.after?`append`:`reset`:`stale`}var ky=1e4,Ay=null,jy=null,My=[],Ny=null,Py=null,W=null,Fy=null,Iy=!1,Ly=null,Ry=()=>!1,zy=new Set;function By(e){for(let t of zy)t(e)}function Vy(){Fy&&=(clearTimeout(Fy.timeoutHandle),null)}function Hy(){Fy=null,Ly=`The trace did not load within ${Math.round(ky/1e3)} s.`,By({kind:`rebuild`})}function Uy(e){Vy(),Iy=!1,Ly=null,Ny=e,W=e?{sessionId:e,grouping:fy(),firstOffset:0,nextOffset:0,hasDroppedEarliestRows:!1,filePath:``,hasLoadedOnce:!1}:null,By({kind:`selection-reset`})}function Wy(e){let t=wy(My,Py,Ny,e);return Py&&t===Py&&(Py=null),t!==Ny&&(Uy(t),!0)}function Gy(e){if(!Ay)return;let t=e.endingAt===void 0?{type:`session-trace`,id:e.id,after:e.after}:{type:`session-trace`,id:e.id,endingAt:e.endingAt};Ay(t)?Fy={request:e,timeoutHandle:setTimeout(Hy,ky)}:(Ly=l,By({kind:`header`}))}function Ky(e=!1){if(!Ay)return;let t=Ty({selectedSessionId:Ny,isPanelVisible:e||Ry(),hasPendingRequest:!!Fy,hasLoadedOnce:W?.hasLoadedOnce??!1,nextOffset:W?.nextOffset??0});t&&Gy(t)}function qy(){Iy&&!Fy&&(Iy=!1,Ky())}function Jy(){if(!W)return;let e=Sy(W.grouping),t=e.droppedTurnCount>0||e.droppedRowCount>0,n=t&&!W.hasDroppedEarliestRows;t&&(W.hasDroppedEarliestRows=!0),By({kind:`trimmed`,trim:{droppedTurnCount:e.droppedTurnCount,droppedRowCount:e.droppedRowCount,hasJustDroppedEarliestRows:n}})}function Yy(e){W&&(By({kind:`records-appended`,appends:hy(W.grouping,e)}),Jy())}function Xy(e){W&&(By({kind:`records-prepended`,prepend:gy(W.grouping,e)}),Jy())}function Zy(e){if(!e||typeof e!=`object`)return null;let t=e;return typeof t.id!=`string`||!Array.isArray(t.records)||typeof t.next!=`number`||typeof t.start!=`number`?null:{id:t.id,records:t.records,start:t.start,next:t.next,reset:t.reset===!0,path:typeof t.path==`string`?t.path:``}}function Qy(){return{selectedSessionId:Ny,hasPendingRequest:!!Fy,hasLoadedOnce:W?.hasLoadedOnce??!1,hasDroppedEarliestRows:W?.hasDroppedEarliestRows??!1,firstOffset:W?.firstOffset??0,residentRowCount:W?vy(W.grouping):0}}function $y(){return{sessionOptions:My,selectedSessionId:Ny,selectedTrace:W,pendingSessionId:Fy?.request.id??null,traceFailureText:Ly}}function eb(e){zy.add(e)}function tb(e){Ry=e}function nb(){if(!Ay)return;let e=Dy(Qy());e&&Gy(e)}function rb(e){My.some(t=>t.id===e)&&e!==Ny&&(Py=null,Uy(e),Ky(),By({kind:`rebuild`}))}function ib(){let e=Wy(!0);return Ky(!0),e}function ab(e){Ay=e}function ob(e){jy=e}function sb(e){Py=e,jy?.()}function cb(e){My=Cy(e);let t=Wy(Ry());t&&Ky(),By({kind:`sessions`,hasSelectionChanged:t})}function lb(e){let t=Zy(e);if(!t)return;let n=Oy({pendingRequest:Fy?.request??null,resident:W?{sessionId:W.sessionId,firstOffset:W.firstOffset,nextOffset:W.nextOffset,hasLoadedOnce:W.hasLoadedOnce}:null,reply:{id:t.id,start:t.start,next:t.next,reset:t.reset}});n===`ignore`?qy():(Vy(),Ly&&(Ly=null,By({kind:`header`})),n===`stale`?qy():n===`reset`?(Uy(t.id),W&&(W.filePath=t.path),Ky(),By({kind:`rebuild`}),qy()):W&&(W.filePath=t.path,n===`prepend`?(W.firstOffset=t.start,Xy(t.records),qy()):(n===`seed`&&(W.hasLoadedOnce=!0,W.firstOffset=t.start),W.nextOffset=t.next,Yy(t.records),qy())))}function ub(e){let t=e?.id;typeof t==`string`&&t===Ny&&Ry()&&(Fy?Iy=!0:Ky())}function db(e){let t=e?.id;if(typeof t!=`string`||Fy?.request.id!==t)return!1;Vy(),Iy=!1;let n=e?.message;return Ly=typeof n==`string`&&n?n:`The trace could not be read.`,By({kind:`rebuild`}),!0}function fb(e){Vy(),Iy=!1,Ly=e?null:l,e?(By({kind:`header`}),Ky()):By({kind:`rebuild`})}var pb=80,mb=Object.freeze([{value:`7`,label:`Last 7 days`,days:7},{value:`30`,label:`Last 30 days`,days:30},{value:`90`,label:`Last 90 days`,days:90},{value:`all`,label:`All retained`,days:null}]);function hb(e){return e.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)}function gb(e){return e.includes(`.`)?e.replace(/0+$/,``).replace(/\.$/,``):e}function _b(e){if(typeof e!=`number`||!Number.isFinite(e))return`-`;let t=Math.round(e);return`${t<0?`-`:``}${hb(String(Math.abs(t)))}`}function vb(e){if(typeof e!=`number`||!Number.isFinite(e))return`-`;let t=Math.abs(e);if(t===0)return`$0.00`;let n=e<0?`-`:``;if(t<1e-4)return e<0?`above -$0.0001`:`<$0.0001`;if(t<.01)return`${n}$${t.toFixed(4)}`;let[r,i]=t.toFixed(2).split(`.`);return`${n}$${hb(r)}.${i}`}function yb(e){if(typeof e!=`number`||!Number.isFinite(e))return`-`;let t=e<0?`-`:``,n=Math.abs(e);if(n<1e3){let e=Math.round(n);return`${e===0?``:t}${e}`}return n<999950?`${t}${gb((n/1e3).toFixed(1))}k`:n<999995e3?`${t}${gb((n/1e6).toFixed(2))}M`:`${t}${gb((n/1e9).toFixed(2))}B`}function bb(e){return typeof e!=`number`||!Number.isFinite(e)?`ok`:e>=100?`crit`:e>=pb?`warn`:`ok`}function xb(e){let t=je(e?.max,null);return t===null||t<=0?null:t}function Sb(e){let t=xb(e),n=je(e?.pct,null);return t===null||n===null?null:n*100}function Cb(e,t){let n=xb(t),r=je(e?.projectedTokens,null);return n===null||r===null?null:r/n*100}var wb=90;function Tb(e){let t=e?.budget?.rows;return Array.isArray(t)?t.filter(e=>e&&je(e.budgetUsd,null)!==null):[]}function Eb(e){let t=je(e?.pct,null);return t===null?0:t}function Db(e,t){let n=e?.[t];if(!n||typeof n!=`object`)return null;let r=je(n.pct,null),i=je(n.resetsAtMs,null);return r===null&&i===null?null:{pct:r,resetsAtMs:i}}function Ob(e){return e?.vendor===`codex`?`codex`:`claude`}function kb(e){return Db(e,`fiveHour`)?.pct??null}function Ab(e,t=null){let n=kb(t);if(n!==null)return bb(n);let r=bb(Sb(e?.tokenLimit));return r===`ok`?bb(Cb(e?.activeBlock?.projection,e?.tokenLimit)):r}function jb(e,t=null){let n=[],r=Ab(e,t);r!==`ok`&&n.push(`block:${r}`),e?.anomaly?.daily&&n.push(`anomaly:daily`),e?.anomaly?.burn&&n.push(`anomaly:burn`);for(let t of Tb(e)){let e=Eb(t);if(e<wb)continue;let r=typeof t?.scope==`string`&&t.scope?t.scope:`budget`;n.push(`budget:${r}:${e>=100?`over`:`near`}`)}return Se(n)}function Mb(e,t=``){let n=e?.source;if(n===`fetched`){let e=ie(t,``);return e?`Prices fetched from the public model price table, ${e}.`:`Prices fetched from the public model price table.`}if(n===`cache`){let e=ie(t,``);return e?`Prices from the cached public model price table, ${e}.`:`Prices from the cached public model price table.`}return n===`snapshot`?`Prices from the price table bundled with this Glimmervoid build.`:n===`unavailable`?`Model prices could not be loaded, so every cost below counts as zero.`:`Pricing source not reported yet.`}function Nb(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e!=`string`)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Pb(e){if(Array.isArray(e))return e.length;let t=Number(e);return Number.isFinite(t)?t:null}function Fb(e){if(!e||typeof e!=`object`)return``;let t=[],n=Pb(e.dirs);if(n!==null&&t.push(`${_b(n)} transcript ${n===1?`directory`:`directories`}`),Number.isFinite(e.files)&&t.push(`${_b(e.files)} files`),Number.isFinite(e.entries)&&t.push(`${_b(e.entries)} entries`),Number.isFinite(e.lastScanMs)&&t.push(`last pass ${_b(e.lastScanMs)}ms`),t.length===0)return``;let r=`Scanned ${t.join(`, `)}.`;return e.partial===!0?`${r} Some files were skipped this pass and will be re-read on the next one.`:r}function Ib(e){return ie(e?.error,``)}function Lb(e,t){if(!e||typeof e!=`object`)return!1;let n=e.requestId;return n==null||n===t}function Rb(e){let t=je(e?.officialCostUSD,null);if(t!==null&&t>0)return{costUSD:t,source:`official`};let n=je(e?.costUSD,null);return n!==null&&n>0?{costUSD:n,source:`estimated`}:{costUSD:null,source:null}}function zb(e){let t=Number(e?.tokens);if(!Number.isFinite(t)||t<=0)return``;let{costUSD:n}=Rb(e);return n===null?yb(t):`${yb(t)} ${vb(n)}`}function Bb(e){let{source:t}=Rb(e);return t===`official`?`Tokens counted from the transcript; cost reported by Claude Code for this conversation`:`Tokens and estimated API list-price cost for this conversation`}function Vb({hasPlan:e,pendingPromptKind:t,hasOpenReview:n,hasApprovedReview:r=!1}){return e&&(n||t===`plan`&&!r)?`plan`:`terminal`}function Hb({hasPlan:e,isBorrowed:t,face:n}){return!e||n===`plan`?`hidden`:t?`face`:`navigate`}function Ub(e,t){return t===b.RUNNING?e===`restart-fresh`?{title:`Restart fresh`,message:`This agent is mid-turn. A fresh restart ends this conversation and starts a new one. Restart anyway?`,confirmLabel:`Restart fresh`,danger:!0}:e===`restart-into`?{title:`Restart`,message:`This agent is mid-turn. Restarting interrupts the current turn and switches to the earlier conversation you picked. Restart anyway?`,confirmLabel:`Restart`,danger:!0}:{title:`Restart`,message:`This agent is mid-turn. Restarting interrupts the current turn and keeps this conversation. Restart anyway?`,confirmLabel:`Restart`,danger:!1}:null}function Wb(e,t,n,r){let i=ae.includes(t)?`force-restart`:`restart`;return e===`restart-fresh`?{type:i,id:n,fresh:!0}:e===`restart-into`?{type:i,id:n,conversationId:r}:{type:i,id:n}}function Gb(e,t,n,r=``){let i=()=>n.send(Wb(e,n.readState(),t,r)),a=Ub(e,n.readState());a?n.confirm({...a,onConfirm:i}):i()}var Kb=`DORMANT`;function qb(e){return e?Pe(Date.now()-e,{rounding:`round`,wording:`compact`,suffix:` ago`,justNowBelowSeconds:60}):``}function Jb(e){return[e.worktreeName,e.gitBranch?e.gitBranch.replace(/^refs\/heads\//,``):null,qb(e.mtime)].filter(Boolean).join(` · `)}function Yb(e,t){let n=A(`button`,`resume-item`);return n.type=`button`,n.setAttribute(`role`,`option`),n.setAttribute(`aria-selected`,`false`),n.innerHTML=`<span class="resume-item-title">${Vn(e)}</span><span class="resume-item-meta">${Vn(t)}</span>`,n}async function Xb(e,t,n){if(t.kind===`this`)return!0;let r=t.kind===`earlier`?t.conversationId:``,i=await gn(`resume-conversation`,{id:e,conversationId:r},n);return i?i.type===`resume-conversation-ack`&&i.ok?!0:(n.show(`error`,i.type===`error`?i.message:`The conversation was not changed.`),!1):!1}var Zb={this:`restart`,fresh:`restart-fresh`,earlier:`restart-into`};function Qb(e,t,n,r){let i=n.kind===`earlier`?n.conversationId:``;Gb(Zb[n.kind],t,{readState:r,send:t=>{er(e,t)},confirm:hr},i)}function $b(e,{readState:t,canListEarlier:n}){let{overlay:r,dialog:i,close:a,actions:o,btnCancel:s}=_r({title:`Restart`,dialogClass:`dialog resume-dialog`}),c=A(`p`,`dialog-message`,n?`Restart into this conversation, a fresh one, or an earlier one from this repo (any worktree).`:`Restart into this conversation or a fresh one.`),l=A(`div`,`resume-list`);l.setAttribute(`role`,`listbox`),l.setAttribute(`aria-label`,`Conversation to restart into`);let u=A(`button`,`btn-dialog btn-dialog-confirm`,`Restart`);u.type=`button`,o.append(u);let d=yn(`dialog-error`);i.append(c,l,d.element,o);let f={kind:`this`};function p(e,t){for(let e of l.querySelectorAll(`.resume-item`))e.classList.remove(`resume-item-current`),e.setAttribute(`aria-selected`,`false`);e.classList.add(`resume-item-current`),e.setAttribute(`aria-selected`,`true`),f=t}function m(e,t,n){let r=Yb(t,n);return r.addEventListener(`click`,()=>p(r,e)),l.append(r),r}p(m({kind:`this`},`This conversation`,`Keeps the current conversation`),{kind:`this`}),m({kind:`fresh`},`Fresh conversation`,`Ends this conversation and starts a new one`);async function h(t,n){i.dataset.applying=``;let r=await Xb(e,n,d);delete i.dataset.applying,r&&(a(),er(t,{type:`start-session`,id:e}))}function g(){if(i.dataset.applying!==void 0)return;let n=F.get(e);n?t()===Kb?h(n,f):(a(),Qb(n,e,f,t)):a()}if(s.addEventListener(`click`,a),u.addEventListener(`click`,g),requestAnimationFrame(()=>u.focus()),!n)return;let _=A(`div`,`resume-empty`,`Loading earlier conversations...`);l.append(_),M(`list-conversations`,{id:e},{timeoutMs:Tn}).then(e=>{if(!r.isConnected)return;if(e.error){_.textContent=`Could not list earlier conversations: ${e.error}`;return}let t=e.type===`conversations`?e.current??null:null,n=(e.type===`conversations`?e.conversations:[]).filter(e=>e.id!==t);if(n.length===0)_.textContent=`No earlier conversations found for this repo.`;else{_.remove();for(let e of n)m({kind:`earlier`,conversationId:e.id},e.title||e.id,Jb(e))}}).catch(e=>{r.isConnected&&(_.textContent=`Could not list earlier conversations: ${wn(e,Tn)}`)})}function ex(e){return e instanceof Error?e.message:String(e)}function tx(e,t,n=!1){let r=A(`label`,`dialog-checkbox-label`),i=A(`input`);return i.type=`checkbox`,i.className=`dialog-checkbox`,i.value=t,i.checked=n,r.append(i,A(`span`,null,e)),r}function nx(e){return e.split(/[\\/]/).filter(Boolean).at(-1)??e}async function rx(e){let[t,n]=await Promise.all([M(`get-workspace-repos`,{id:e}),M(`scan-repo-roots`,{}).catch(()=>null)]);if(t.type!==`workspace-repos`)throw Error(`Unexpected reply`);if(!t.ok)throw Error(t.error||`Could not read the workspace`);let r=t.repos.map(e=>({name:nx(e),path:e,isMember:!0})),i=new Set(t.repos),a=n?.type===`repo-roots-scanned`?n.directories:[];for(let e of a.flatMap(e=>e.projects))i.has(e.path)||(i.add(e.path),r.push({name:e.name,path:e.path,isMember:!1}));return r}function ix(e){let{overlay:t,dialog:n,close:r,actions:i,btnCancel:a}=_r({title:`Workspace repositories`}),o=A(`p`,`dialog-message`,`Saving restarts the session and resumes its conversation. A removed repository keeps its workspace branch, so committed work survives.`),s=A(`fieldset`,`dialog-workspace-list`);s.setAttribute(`aria-label`,`Workspace repositories`),s.append(A(`div`,`dialog-hint`,`Loading repositories...`));let c=A(`div`,`dialog-hint`);c.setAttribute(`role`,`status`);let l=A(`div`,`dialog-error`),u=A(`button`,`btn-dialog btn-dialog-confirm`,`Save`);u.type=`button`,u.disabled=!0,i.append(u),n.append(o,s,c,l,i),a.addEventListener(`click`,r),requestAnimationFrame(()=>a.focus()),rx(e).then(e=>{if(t.isConnected){s.textContent=``;for(let t of e)s.append(tx(t.name,t.path,t.isMember));u.disabled=!1}}).catch(e=>{t.isConnected&&(s.textContent=``,l.textContent=`Could not load repositories: ${ex(e)}`)}),u.addEventListener(`click`,()=>{let n=[...s.querySelectorAll(`input:checked`)].map(e=>e.value);n.length<2?l.textContent=`Select at least two repositories.`:(l.textContent=``,u.disabled=!0,c.textContent=`Saving`,M(`set-workspace-repos`,{id:e,repos:n}).then(e=>{if(!t.isConnected)return;if(e.type===`set-workspace-repos-result`&&e.ok){r();return}let n=e.type===`set-workspace-repos-result`?e.error:null;l.textContent=n||`Could not update the workspace.`}).catch(e=>{t.isConnected&&(l.textContent=`Could not update the workspace: ${ex(e)}`)}).finally(()=>{c.textContent=``,u.disabled=!1}))})}var ax=e=>e==null?``:String(e),ox=e=>ae.includes(e),sx=e=>g.includes(e),cx=!1;Rs(Gh);var lx=null,ux=null;function dx(){return ux??=xi(()=>import(`./plan-face-CUPpYxiG.js`).then(e=>(lx=e,e),()=>(ux=null,null)),__vite__mapDeps([7,1,2,8,6,9])),ux}function fx(e){let t=A(`section`,`plan-face`);t.hidden=!0;let n=null,r=!1,i=null,a={},o=new Map;function s(s){if(r=!1,e.signal?.aborted)return;if(!s){e.reportProblem(`The plan view did not load. Open the plan again to retry.`),i!==null&&e.showTerminal(),i=null;return}let c=s.createPlanFace(e);t.replaceWith(c.el),c.update(a);for(let e of o.values())c.update({draft:e});o.clear(),n=c,i!==null&&c.show(i)}return{get el(){return n?.el??t},show(e){n?n.show(e):(i=e,!r&&(r=!0,dx().then(s)))},hide(){i=null,n?.hide()},update(e){n?n.update(e):(e.state&&(a.state=e.state),typeof e.isConnected==`boolean`&&(a.isConnected=e.isConnected),e.draft&&o.set(e.draft.agentId,e.draft))}}}function px(e){return cx&&Zl(e.agent)&&e.card.dataset.ephemeral===void 0}function mx(e){return px(e)&&e.isConversationViewOn&&e.isBorrowed}function hx(e){e.btnConversationView.classList.toggle(`visible`,px(e)),e.btnConversationView.setAttribute(`aria-checked`,String(e.isConversationViewOn))}function gx(e){cx=e;for(let t of F.values())!e&&t.face===`conversation`&&t._showTerminalFace?.(),Sx(t)}function _x(e){let t=N(e);return!t||!mx(t)?!1:(t.face=`conversation`,t.card.dataset.face=`conversation`,t.termWrap.hidden=!0,t.planFace.hide(),t.conversationFace.show(P(e)),Sx(t),km(t,P(e)),!0)}function vx(e,t){let n=N(e);if(!n)return;let r=n.isConversationViewOn;n.hasConversationBridge=t.hasConversationBridge,n.conversationApproval=t.conversationApproval,n.isConversationViewOn=t.isConversationViewOn,Sx(n),n.conversationFace.refresh(),r!==t.isConversationViewOn&&(t.isConversationViewOn?_x(e):n.face===`conversation`&&n._showTerminalFace?.())}function yx(e){return N(e.id)?.conversationFace.applyTraceResponse(e)===!0}function bx(e){N(e.id)?.conversationFace.applyTraceError(e)}function xx(e){N(e)?.conversationFace.applyTraceChanged(P(e))}function Sx(e){hx(e);let t=e.currentState;e.btnRestart.classList.toggle(`visible`,ox(t)||sx(t)||t===b.DORMANT),e.btnWorkspaceRepos.classList.toggle(`visible`,e.card.dataset.workspace!==void 0),e.btnTrace.classList.toggle(`visible`,Un()),e.btnPlan.classList.toggle(`visible`,Hb(e)!==`hidden`),e.btnRemove.classList.add(`visible`)}function Cx(e){e.sessionMenu.classList.remove(`open`),e.btnSessionMenu.setAttribute(`aria-expanded`,`false`)}function wx(e,t){ar(e.taskTitleEl,()=>Bn(e,t)),e.nameEl.addEventListener(`dblclick`,n=>{n.preventDefault(),ur(e,t)}),e.nameEl.addEventListener(`click`,()=>{nr(e.nameEl)||mi(t)}),e.nameEl.addEventListener(`keydown`,n=>{n.target===e.nameEl&&(n.key===`F2`||n.key===`Enter`)&&(n.preventDefault(),ur(e,t))}),e.btnRestart.addEventListener(`click`,()=>{Cx(e),$b(t,{readState:()=>e.currentState,canListEarlier:e.card.dataset.ephemeral===void 0})}),e.btnWorkspaceRepos.addEventListener(`click`,()=>{Cx(e),ix(t)}),e.btnTrace.addEventListener(`click`,()=>{Cx(e),sb(t)}),e.btnDocs.addEventListener(`click`,()=>{Cx(e),ws(t)}),e.btnShown.addEventListener(`click`,()=>{Cx(e),Xs(t)}),e.btnConversationView.addEventListener(`click`,()=>{Cx(e),er(e,{type:`set-session-conversation-view`,id:t,isOn:!e.isConversationViewOn})}),e.btnGuardrails.addEventListener(`click`,()=>{if(e.btnGuardrails.getAttribute(`aria-disabled`)===`true`)return;let n=n=>()=>{er(e,{type:`set-session-guardrails`,id:t,isOn:n})};e.card.dataset.guarded===void 0?hr({title:`Restore guardrails`,message:`This session restarts with guardrails on, interrupting any turn in progress.`,confirmLabel:`Restore guardrails`,danger:!1,onConfirm:n(!0)}):hr({title:`Release guardrails`,message:`This session restarts without guardrails, interrupting any turn in progress. It can then read, write and reach anything your account can, including credentials and Glimmervoid itself.`,confirmLabel:`Release guardrails`,danger:!0,onConfirm:n(!1)})}),e.btnPlan.addEventListener(`click`,()=>{let n=Hb(e);n!==`hidden`&&(n===`face`?Px(t):location.hash=ta(t))}),e.btnRemove.addEventListener(`click`,()=>{Cx(e),zi(t)});function n(){for(let[,t]of F)t!==e&&Cx(t);e.sessionMenu.classList.add(`open`),e.btnSessionMenu.setAttribute(`aria-expanded`,`true`)}e.btnSessionMenu.addEventListener(`click`,t=>{t.stopPropagation(),e.sessionMenu.classList.contains(`open`)?Cx(e):n()}),lr({trigger:e.btnSessionMenu,menu:e.sessionMenu,menuItems:()=>[...e.sessionMenu.querySelectorAll(`.popup-menu-item.visible`)],isOpen:()=>e.sessionMenu.classList.contains(`open`),open:n,close:()=>Cx(e),signal:e.abortController.signal}),document.addEventListener(`click`,t=>{let n=t.target instanceof Node?t.target:null;!e.sessionMenu.contains(n)&&n!==e.btnSessionMenu&&Cx(e)},{signal:e.abortController.signal}),e.btnDebug.addEventListener(`click`,n=>{n.stopPropagation(),$n(e,t)}),document.addEventListener(`click`,t=>{let n=t.target instanceof Node?t.target:null;e.debugOpen&&!e.card.contains(n)&&tr(e)},{signal:e.abortController.signal})}function Tx(e,t,n){let r=N(e);if(r){r.taskTitle=typeof t==`string`?t:null,r.taskTitleIsCustom=n===!0;for(let e of[r.taskTitleEl,r.titleTargetEl])e&&qn(e,r.taskTitle)}}function Ex(e){return typeof e==`string`&&F.has(e)}function Dx(){return F.size}function Ox(e){let t=e||{};t.cursorBlink!=null&&am(t.cursorBlink),t.debugMode!=null&&(cr(t.debugMode),lg(t.debugMode));for(let[,e]of F)e.term&&t.cursorBlink!=null&&(e.term.options.cursorBlink=t.cursorBlink)}function kx(){Du(F.values(),ku())}function Ax(){let e=Qn([...F.values()].map(e=>({state:e.currentState,unseenOutcome:e.unseenOutcome}))),t=fr(e);document.title=t>0?`(${t}) Glimmervoid`:`Glimmervoid`}function jx(e,t,n,r={}){if(!ut)return;let i=P(e),a=ax(n)||b.DORMANT,o=or(i,ax(t),a,r),s=a===b.DORMANT;ut.appendChild(o.card);let c;function l(){c.face=`terminal`,c.card.dataset.face=`terminal`,c.termWrap.hidden=!1,c.planFace.hide(),c.conversationFace.hide(),Sx(c),Sh(c,i)}function u(){_x(i)||l()}let d=new AbortController,f=fx({signal:d.signal,requestPlan:(e,t,n)=>j({type:`session-plan`,id:e,agentId:t,revision:n}),requestDraft:(e,t)=>j({type:`session-plan`,id:e,agentId:t,draft:!0}),showTerminal:u,sendDecision:(e,t)=>j({type:`plan-decision`,id:e,...t}),reportProblem:e=>rS(i,e)}),p=Rh({signal:d.signal,sendControl:e=>j(e),showTerminal:l});return c={term:null,fitAddon:null,webglAddon:null,needsWebGLReload:!1,webglAttachedWithoutLayout:!1,dataWs:null,card:o.card,nameEl:o.nameEl,taskTitleEl:o.taskTitleEl,taskTitle:r.taskTitle??null,taskTitleIsCustom:r.taskTitleIsCustom??!1,path:ax(r.path),ownerId:r.ownerId??null,stateSince:typeof r.stateSince==`number`&&Number.isFinite(r.stateSince)?r.stateSince:Date.now(),sessionMenu:o.sessionMenu,termWrap:o.termWrap,btnDebug:o.btnDebug,btnRestart:o.btnRestart,btnSessionMenu:o.btnSessionMenu,btnWorkspaceRepos:o.btnWorkspaceRepos,btnConversationView:o.btnConversationView,btnGuardrails:o.btnGuardrails,btnTrace:o.btnTrace,btnPlan:o.btnPlan,btnDocs:o.btnDocs,btnShown:o.btnShown,shownUnopenedDot:o.shownUnopenedDot,btnRemove:o.btnRemove,debugOverlay:null,debugOpen:!1,abortController:d,currentState:a,face:`terminal`,isBorrowed:!1,hasPlan:!1,pendingPromptKind:null,planReviewState:{reviews:[]},planFace:f,conversationFace:p,conversationApproval:null,hasConversationBridge:!1,isConversationViewOn:!1},c._ensureTerminalReady=()=>Sh(c,i),c._showTerminalFace=l,c._showPreferredFace=()=>{Mx(c)===`plan`?Px(i):_x(i)||l()},c._setBorrowed=e=>{c.isBorrowed=e,Sx(c)},o.card.append(f.el,p.el),F.set(i,c),wx(c,i),Sx(c),c.btnDocs.classList.toggle(`visible`,ds(i)),zs(i),a===b.RUNNING&&at(c,!0),s||yh(c,i),Ax(),c}function Mx(e){let t=e.planReviewState.reviews.some(e=>e.state===`open`),n=e.planReviewState.reviews.some(mg);return Vb({hasPlan:e.hasPlan,pendingPromptKind:e.pendingPromptKind,hasOpenReview:t,hasApprovedReview:n})}function Nx(e){let t=N(e);return!t?.isBorrowed||Mx(t)!==`plan`?!1:Px(e)}function Px(e){let t=N(e);return!t?.isBorrowed||!t.hasPlan?!1:(t.face=`plan`,t.card.dataset.face=`plan`,t.termWrap.hidden=!0,t.conversationFace.hide(),t.planFace.show(P(e)),Sx(t),km(t,P(e)),!0)}function Fx(e,t){let n=N(e);n&&(n.hasPlan=t===!0,Sx(n),Nx(e))}function Ix(e){let t=N(e.id);t&&(t.planReviewState=jg(t.planReviewState,e),t.hasPlan=e.hasPlan,t.planFace.update({state:t.planReviewState}),Sx(t),Nx(e.id))}function Lx(e){let t=N(e.id);t&&t.planFace.update({draft:e})}function Rx(e){let t=N(e.id);t&&(t.planReviewState={reviews:e.reviews},t.hasPlan=!0,t.planFace.update({response:e}),Sx(t))}function zx(e){if(e.type!==`error`&&e.type!==`session-error`||e.scope!==`plan`&&e.scope!==`plan-decision`)return!1;let t=N(e.id);return t?e.scope===`plan`?(t.planFace.update({requestFailed:!0}),!0):(t.planFace.update({decisionRefused:!0,refusalText:e.message}),!0):!1}function Bx(e){for(let[,t]of F)t.planFace.update({isConnected:e})}function Vx(e,t){let n=N(e);n&&(n.effectiveBase=typeof t==`string`?t:void 0)}function Hx(e,t){let n=N(e);n&&(n.agent=typeof t==`string`?t:null,Sx(n))}function Ux(e,t){let n=N(e);n&&(t?n.card.dataset.worktree=``:delete n.card.dataset.worktree)}function Wx(e,t,n){let r=N(e);r&&(Gx(r.card,`guarded`,t),Gx(r.card,`guardrailsReleased`,n),Kn(r.btnGuardrails,r.card))}function Gx(e,t,n){n?e.dataset[t]=``:delete e.dataset[t]}function Kx(e,t,n=!1){let r=N(e);r&&(r.activeAgents=Math.max(0,Number(t)||0),r.awaitingBackgroundTasks=xe(r.currentState,n===!0),r.card.toggleAttribute(`data-monitoring`,r.awaitingBackgroundTasks))}function qx(e,t){let n=N(e);if(!n)return;let r=zb(t),i=n.card.querySelector(`.usage-badge`);if(r)n.card.dataset.usage=``,i&&(i.dataset.tipLabel=r,i.dataset.tipDetail=Bb(t),kn(i));else{if(delete n.card.dataset.usage,!i)return;delete i.dataset.tipLabel,kn(i)}}function Jx(e,t){let n=N(e);n&&(n.pendingPromptKind=typeof t==`string`?t:null,n.conversationFace.refresh(),!Nx(e)&&(typeof t!=`string`||t===``)&&n.face===`terminal`&&_x(e))}function Yx(e,t){let n=N(e);n&&(n.unseenOutcome=t??null)}function Xx(e,t){t===`pending-review`||t===`parked`||t===`merging`?e.dataset.merge=t:delete e.dataset.merge}function Zx(e,t,n=null){let r=N(e),i=ax(t)||`none`;r&&Xx(r.card,i),Q_(P(e),i,ax(n)||null)}function Qx(e,t,n=null){let r=N(e),i=ax(t)||`none`;r&&Xx(r.card,i),ev(P(e),i,ax(n)||null)}function $x(e,t){tv(P(e),t)}function eS(e,t){let n=N(e);if(!n)return;let r=ax(t);n.card.dataset.session=r,n.nameEl.textContent=r}function tS(e){let t=N(e);t&&(tr(t),F.delete(P(e)),lx?.dropPlanBodyCache(P(e)),t.resizeObserver&&t.resizeObserver.disconnect(),t.abortController&&t.abortController.abort(),fh(t,P(e)),Up(t),t.term&&t.term.dispose(),t.term=null,t.fitAddon=null,t.card&&t.card.remove(),Ax())}function nS(e,t,n){if(!t||!e.term)return;let r=n===b.DONE?`Session complete`:`Session failed`,i=n===b.DONE?`\x1B[34m`:`\x1B[31m`;e.term.write(`\r\n\r\n\x1b[2m${i} ${r}\x1b[0m\r\n\r\n\x1b[2m Open the session actions menu and choose Restart to start a new session.\x1b[0m\r\n`)}function rS(e,t){let n=N(e);n?Yn(n).show(`error`,t):I({source:`Session`,sessionId:typeof e==`string`?e:void 0,message:t})}function iS(e,t){let n=N(e);if(!n)return;let r=n.card.querySelector(`:scope > .session-failure-reason`);if(!(n.currentState===b.FAILED&&t)){r?.remove();return}let i=r??A(`p`,`session-failure-reason`);i.setAttribute(`role`,`status`),i.textContent=t,r||n.termWrap.before(i)}function aS(e,t){e.term&&(t===b.DONE||t===b.FAILED)&&(e.term.clear(),e.term.reset())}function oS(e){let t=F.get(e);t&&In({state:t.currentState,unseenOutcome:t.unseenOutcome})&&document.visibilityState===`visible`&&(Ji()||document.hasFocus())&&j({type:`dismiss`,id:e,expectedState:t.currentState})}function sS(e,t,n){let r=document.activeElement;return oi({previousState:t,nextState:n,isPhoneLayout:Ji(),isDocumentVisible:document.visibilityState===`visible`,isDocumentFocused:document.hasFocus(),isActiveViewer:e._isActiveViewer?.()===!0,hasFocusInsideTerminal:r instanceof Node&&e.termWrap.contains(r)})}function cS(){return St()&&!va()}function lS(e,t,n,r=``){let i=N(e);if(!i)return;let a=ax(t),o=i.currentState;i.currentState=a,a!==b.RUNNING&&(i.awaitingBackgroundTasks=!1),i.conversationFace.refresh(),a!==o&&(i.stateSince=typeof n==`number`&&Number.isFinite(n)?n:Date.now(),at(i,a===b.RUNNING)),o===b.DORMANT&&a!==b.DORMANT&&yh(i,P(e)),zn({state:a})===`resting`&&ga(P(e)),i.card.dataset.state=a,i.card.toggleAttribute(`data-monitoring`,xe(a,i.awaitingBackgroundTasks)),Sx(i),(a===b.WAITING&&o!==b.WAITING||a===b.COMPLETE&&o!==b.COMPLETE)&&!Pl(r)&&cS()&&wd(Gt()),sS(i,o,a)&&j({type:`dismiss`,id:P(e),expectedState:b.COMPLETE});let s=a===b.DONE||a===b.FAILED,c=o!==b.DONE&&o!==b.FAILED&&o!==b.INITIALIZING;s&&c&&(i.card.classList.remove(`completion-flash`),requestAnimationFrame(()=>{requestAnimationFrame(()=>{i.card.classList.add(`completion-flash`),i.card.addEventListener(`animationend`,()=>i.card.classList.remove(`completion-flash`),{once:!0})})}),cS()&&wd(Gt())),(a===b.DONE||a===b.FAILED)&&nS(i,c,a),a===b.INITIALIZING&&aS(i,o),Ax()}var uS=`(no path)`;function dS(e){if(!e)return uS;let t=String(e).replace(/[/\\]+$/,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return(n===-1?t:t.slice(n+1))||`(no path)`}function fS(e,t,n){let r=Array.isArray(e)?e:[],i=new Map;for(let e of r){let n=t(e),r=n?String(n):uS,a=i.get(r);a||(a={key:r,label:r===`(no path)`?uS:dS(r),title:r,rows:[]},i.set(r,a)),a.rows.push(e)}if(n)for(let e of n){if(!e)continue;let t=String(e);t===`(no path)`||i.has(t)||i.set(t,{key:t,label:dS(t),title:t,rows:[]})}let a=[...i.values()];return a.sort((e,t)=>e.label.localeCompare(t.label,void 0,{numeric:!0,sensitivity:`base`})||e.key.localeCompare(t.key)),{flat:i.size<=1,order:a.map(e=>e.key),groups:a}}function pS(e,t){if(!e||!Array.isArray(e.groups))return[];let n=t||new Set,r=[];if(e.flat){for(let t of e.groups)for(let e of t.rows)r.push(e.id);return r}let i=new Map(e.groups.map(e=>[e.key,e]));for(let t of e.order){if(n.has(t))continue;let e=i.get(t);if(e)for(let t of e.rows)r.push(t.id)}return r}function mS({onAdd:e,onForget:t}){let n=A(`div`,`session-group-header`),r=A(`span`,`session-group-label`),i=A(`span`,`session-group-count`),a=A(`span`,`session-group-rule`);a.setAttribute(`aria-hidden`,`true`);let o=A(`button`,`session-group-add`,`+`);o.type=`button`,o.addEventListener(`click`,()=>e(n.dataset.path,n.dataset.label));let s=A(`button`,`session-group-forget`);return s.type=`button`,s.append(mn(bn)),s.addEventListener(`click`,()=>t(n.dataset.path)),n.append(r,i,a,s,o),{header:n,label:r,count:i,addButton:o,forgetButton:s}}function hS(e,t,n){let{header:r,label:i,count:a,addButton:o,forgetButton:s}=e,c=t.key===uS,l=t.rows.length===0;r.dataset.path=t.key,r.dataset.label=t.label,r.title=t.title,r.toggleAttribute(`data-empty`,l),i.textContent=t.label,a.textContent=String(t.rows.length),a.title=`${t.rows.length} ${t.rows.length===1?`session`:`sessions`}`,o.hidden=c,s.hidden=c||!l,c||(o.title=`Add a session to ${t.label}`,o.setAttribute(`aria-label`,`Add a session to ${t.label}`)),!c&&l&&(s.title=`Remove ${t.label} from the ${n}`,s.setAttribute(`aria-label`,`Remove ${t.label} from the ${n}`))}var gS={waitingCount:0,finishedCount:0,failedCount:0},_S={failed:de[b.FAILED],waiting:de[b.WAITING],finished:de[b.COMPLETE]},vS={failed:`failed`,waiting:`needs you`,finished:`finished`},yS=[`NI.`,`THIS QUEUE IS DECEASED`,`AND NOW, NOTHING AT ALL`,`TOUCH GRASS, BRIEFLY`,`GO STRETCH`,`THE AGENTS ARE COPING`,`MORALE IS ADEQUATE`,`REQUIESCAT`,`STANDARDS ARE BEING MET`,`THE AGENTS WANT SPACE`,`NO CAUSE FOR ALARM`,`KINDLY GO AWAY`,`THEY COPE WITHOUT YOU`,`PRESS HARDER, PERHAPS`,`OH, WELL DONE`,`THAT DID NOTHING. AGAIN.`,`WELL. YOU TRIED.`,`SUBJECT PRESSED BUTTON`,`THE BUTTON WORKS. YOU?`,`WE HAVE NO PROBLEMS`,`THE LAWYERS SAY RELAX`,`BRING A TOWEL`],bS=2500,xS=`cubic-bezier(0.16, 1, 0.3, 1)`,SS=`cubic-bezier(0.5, 0, 0.2, 1)`,CS=260,wS=200,TS=200,ES=300,DS=28,OS=360,kS=420,AS=200,jS=3,MS=window.matchMedia?.(`(prefers-reduced-motion: reduce)`),NS=new WeakMap;function PS(e){let t=NS.get(e);if(!t)throw Error(`attention banner was not built by buildAttentionBanner`);return t}function FS(e){return!document.hidden&&typeof e.animate==`function`&&e.getClientRects().length>0}function IS(){return MS?.matches??!1}function LS(e){return e.map(e=>({easing:xS,...e}))}function RS(e,t){let n=A(`div`,`attention-banner`);n.setAttribute(`role`,`status`),n.style.setProperty(`--attention-head-tile-px`,`${jn.headTile}px`),n.style.setProperty(`--attention-tile-px`,`${jn.tile}px`),n.style.setProperty(`--attention-tile-gap-px`,`${jn.tileGap}px`),n.style.setProperty(`--attention-overflow-px`,`${jn.overflowSlot}px`);let r=A(`span`,`attention-banner-chips`),i=A(`span`,`attention-tile-overflow`);i.setAttribute(`aria-hidden`,`true`),i.hidden=!0,r.append(i);let a=A(`span`,`attention-banner-line`);a.setAttribute(`aria-hidden`,`true`);let o=A(`span`,`attention-banner-status`);o.append(r,A(`span`,`attention-banner-count`),a);let s=A(`button`,`attention-banner-jump-row`);return s.type=`button`,s.append(o),t&&(t.classList.add(`attention-banner-jump`),s.append(t)),n.addEventListener(`click`,()=>e.onJump()),n.append(s),NS.set(n,{hooks:e,tiles:[],tileById:new Map,headId:null,flyingIds:new Set,tetheredId:null,tetheredRow:null,lastAllClearLine:null,allClearLineTimer:null,pressAnimations:[]}),typeof ResizeObserver==`function`&&new ResizeObserver(()=>BS(n)).observe(r),zS(n,gS,[]),n}function zS(e,t,n){let r=PS(e);r.tiles=n,k(e,`.attention-banner-count`).textContent=An(t);let i=n.length>0;e.toggleAttribute(`data-empty`,!i),e.toggleAttribute(`data-jumpable`,i),i&&nC(e,r),BS(e)}function BS(e){let t=PS(e),n=k(e,`.attention-banner-chips`),r=k(n,`.attention-tile-overflow`),i=FS(e),a=t.tiles.slice(0,Zn(n.clientWidth,t.tiles.length)),o=new Set(a.map(({id:e})=>e)),s=new Map;if(i)for(let[e,n]of t.tileById)s.set(e,n.getBoundingClientRect().left);let c=[...t.tileById].filter(([e])=>!o.has(e)),l=c.map(([,e])=>({left:e.offsetLeft,top:e.offsetTop}));c.forEach(([e,n],r)=>{t.tileById.delete(e),t.flyingIds.has(e)||!i?n.remove():WS(n,l[r])});let u=t.headId,d=[],f=null;a.forEach((i,a)=>{let o=t.tileById.get(i.id),s=o??HS(e,i.id);o||(t.tileById.set(i.id,s),d.push(s)),US(s,i,a===0),(s.parentElement!==n||VS(s)!==f)&&n.insertBefore(s,r),f=s});let p=t.tiles.length-a.length;r.hidden=p===0,r.textContent=`+${p}`,r.title=`${p} more after these`,t.headId=a[0]?.id??null;let m=t.tiles[0]?.kind;if(m&&(e.dataset.headKind=m),m||delete e.dataset.headKind,t.tetheredId&&!o.has(t.tetheredId)&&JS(e,null),i){for(let e of d)GS(e);a.forEach(({id:e},n)=>{let r=t.tileById.get(e),i=s.get(e);if(!r||i===void 0)return;let a=i-r.getBoundingClientRect().left;e===t.headId&&e!==u?qS(r,a):a!==0&&KS(r,a,n)})}}function VS(e){let t=e.previousElementSibling;for(;t?.hasAttribute(`data-leaving`);)t=t.previousElementSibling;return t}function HS(e,t){let n=A(`span`,`attention-tile`);n.setAttribute(`role`,`img`),n.dataset.id=t;let r=A(`span`,`attention-tile-icon`);return r.setAttribute(`aria-hidden`,`true`),n.append(r),n.addEventListener(`pointerenter`,()=>JS(e,t)),n.addEventListener(`pointerleave`,()=>JS(e,null)),n}function US(e,{kind:t,name:n},r){e.dataset.kind=t,e.toggleAttribute(`data-head`,r);let i=`${n}, ${vS[t]}`;e.title=i,e.setAttribute(`aria-label`,i),En(k(e,`.attention-tile-icon`),_S[t])}function WS(e,t){e.toggleAttribute(`data-leaving`,!0),e.style.left=`${t.left}px`,e.style.top=`${t.top}px`;let n=IS()?[{opacity:1},{opacity:0}]:LS([{transform:`none`,opacity:1},{transform:`scale(0.6)`,opacity:0}]),r=e.animate(n,{duration:TS,fill:`forwards`});r.onfinish=()=>e.remove(),r.oncancel=()=>e.remove()}function GS(e){let t=IS()?[{opacity:0},{opacity:1}]:LS([{transform:`scale(0.6)`,opacity:0},{transform:`none`,opacity:1}]);e.animate(t,{duration:wS})}function KS(e,t,n){IS()||e.animate(LS([{transform:`translateX(${t}px)`},{transform:`none`}]),{duration:ES,delay:n*DS,fill:`backwards`})}function qS(e,t){IS()?e.animate([{opacity:.35},{opacity:1}],{duration:OS,easing:xS}):e.animate(LS([{transform:`translateX(${t}px) scale(0.8)`,filter:`brightness(1.8)`},{transform:`scale(1.1)`,offset:.6},{transform:`none`,filter:`none`}]),{duration:OS})}function JS(e,t){let n=PS(e),r=t?n.tileById.get(t):void 0,i=r&&t?t:null;if(i===n.tetheredId||(n.tetheredId&&n.tileById.get(n.tetheredId)?.toggleAttribute(`data-tethered`,!1),n.tetheredRow?.toggleAttribute(`data-tethered`,!1),n.tetheredRow?.style.removeProperty(`--tether`),n.tetheredId=i,n.tetheredRow=null,!r||!i))return;r.toggleAttribute(`data-tethered`,!0);let a=n.hooks.rowFor(i);if(!a)return;let o=getComputedStyle(r).getPropertyValue(`--tile`).trim();o&&a.style.setProperty(`--tether`,o),a.toggleAttribute(`data-tethered`,!0),n.tetheredRow=a}function YS(e){return!e||e.getClientRects().length===0?null:e.getBoundingClientRect()}function XS(e,t,n){let r=PS(e);if(r.flyingIds.has(t))return;let i=r.tileById.get(t);if(!i||!FS(e)){n();return}JS(e,null),r.flyingIds.add(t);let a=r.hooks.rowFor(t),o=i.getBoundingClientRect(),s=YS(a?.querySelector(`.session-row-glyph`)??a),c=i.cloneNode(!0);if(!(c instanceof HTMLElement)){r.flyingIds.delete(t),n();return}c.classList.add(`attention-tile-ghost`),c.setAttribute(`aria-hidden`,`true`),c.removeAttribute(`aria-label`),c.tabIndex=-1,c.style.left=`${o.left}px`,c.style.top=`${o.top}px`,c.style.width=`${o.width}px`,c.style.height=`${o.height}px`,document.body.append(c),i.style.visibility=`hidden`;let l=c.animate(ZS(o,s),QS(s)),u=()=>{c.remove(),r.flyingIds.delete(t),i.isConnected&&(i.style.visibility=``),n()};l.onfinish=u,l.oncancel=u}function ZS(e,t){return!t||IS()?[{opacity:1},{opacity:0}]:[{transform:`none`,opacity:1},{transform:`translateY(-5px) scale(1.2)`,opacity:1,offset:.25},{transform:`translate(${t.left+t.width/2-(e.left+e.width/2)}px, ${t.top+t.height/2-(e.top+e.height/2)}px) scale(${Math.min(1,t.width/e.width)})`,opacity:.2}]}function QS(e){return!e||IS()?{duration:AS,fill:`forwards`}:{duration:kS,easing:SS,fill:`forwards`}}function $S(e){let t=PS(e);e.hasAttribute(`data-empty`)&&tC(e,t);for(let e of t.pressAnimations)e.cancel();if(t.pressAnimations=[],!FS(e))return;let n={duration:CS};if(t.pressAnimations.push(e.animate(LS([{opacity:0},{opacity:.07,offset:.3},{opacity:0}]),{...n,pseudoElement:`::after`})),!IS()){t.pressAnimations.push(e.animate(LS([{transform:`none`},{transform:`scale(0.97) translateY(1px)`,offset:.3},{transform:`none`}]),n));for(let r of e.querySelectorAll(`.attention-banner-jump .kbd`))t.pressAnimations.push(r.animate(LS([{transform:`none`},{transform:`translateY(${jS}px)`,offset:.3},{transform:`none`}]),n),r.animate(LS([{transform:`none`},{transform:`translateY(-${jS}px)`,offset:.3},{transform:`none`}]),{...n,pseudoElement:`::after`}))}}function eC(e){let t=yS.filter(t=>t!==e);return t[Math.floor(Math.random()*t.length)]??yS[0]}function tC(e,t){let n=eC(t.lastAllClearLine);t.lastAllClearLine=n,k(e,`.attention-banner-line`).textContent=n,e.toggleAttribute(`data-all-clear-line`,!0),t.allClearLineTimer!==null&&window.clearTimeout(t.allClearLineTimer),t.allClearLineTimer=window.setTimeout(()=>nC(e,t),bS)}function nC(e,t){t.allClearLineTimer!==null&&window.clearTimeout(t.allClearLineTimer),t.allClearLineTimer=null,e.toggleAttribute(`data-all-clear-line`,!1)}var rC=e=>e.ui.path,iC=window.matchMedia?.(`(prefers-reduced-motion: reduce)`),aC=null,oC=null,sC=null,cC=null,lC=null,uC=null,dC=null,G=!1,fC=!1,pC=new Map,mC=new Map,hC=new Map,gC=new Map,_C=null,vC=``,yC=[],bC=new Set;function xC(){return pS(CC(MC()),bC)}function SC(e){let t=_C;if(_C=e||null,t&&t!==_C){let e=mC.get(t);e&&(e.tabIndex=-1,e.setAttribute(`aria-selected`,`false`))}if(_C){let e=mC.get(_C);e&&(e.tabIndex=0,e.setAttribute(`aria-selected`,`true`))}}function CC(e){return fS(e,rC,jl(e,rC))}function wC(e){let t=gC.get(e.key),n=hC.get(e.key);return(!t||!n)&&(t=mS({onAdd:Ni,onForget:e=>{Ml(e),RC()}}),n=A(`div`,`focus-rail-list`),n.setAttribute(`role`,`listbox`),gC.set(e.key,t),hC.set(e.key,n)),hS(t,e,`rail`),n.setAttribute(`aria-label`,`${e.label} sessions`),{header:t.header,list:n}}function TC(){return G}function EC(){return L.snapshot().focusedSessionId}function DC({rail:e,center:t,resizer:n}){if(aC=e,sC=t,!aC||!sC)return;let r=aC,i=sC;AC(n),r.removeAttribute(`role`),r.removeAttribute(`aria-label`),r.setAttribute(`aria-keyshortcuts`,Yt(ju)),oC=RS({onJump:HC,rowFor:e=>mC.get(e)},Lu());let a=A(`details`,`rail-status-key`);a.append(A(`summary`,`rail-status-key-summary`,`Status key`),El()),r.append(oC,a),lC=A(`div`,`focus-empty`),lC.innerHTML=`<p class="focus-empty-title"></p><p class="focus-empty-desc"></p>`,uC=lC.querySelector(`.focus-empty-title`),dC=lC.querySelector(`.focus-empty-desc`),cC=A(`div`,`focus-card-slot`),i.append(lC,cC),r.addEventListener(`keydown`,jC)}var OC={minPx:180,maxPx:480},kC=16;function AC(e){e&&aC&&Xc({resizer:e,column:aC,widthHost:aC,widthProperty:`--rail-width`,bounds:OC,keyStepPx:kC,getStoredWidth:Lt,setStoredWidth:ht})}function jC(e){if(e.key===`Delete`||e.key===`Backspace`){let t=e.target instanceof HTMLElement?e.target:null,n=t?.dataset.id;if(!n||mC.get(n)!==t)return;e.preventDefault(),zi(n);return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`||e.altKey||e.metaKey||e.ctrlKey||e.shiftKey)return;let t=Nn(xC(),_C,e.key===`ArrowDown`?1:-1);t!=null&&(e.preventDefault(),SC(t),mC.get(t)?.focus())}function MC(){return Mn(Ti(NC))}function NC(e){return e.nameEl?e.nameEl.textContent:e.card&&(e.card.dataset.session||e.card.dataset.id)||``}function PC(e){let{row:t,refs:n}=fl(`button`);t.type=`button`,t.dataset.id=e,t.setAttribute(`role`,`option`),t.addEventListener(`click`,()=>FC(e)),t.addEventListener(`pointerenter`,()=>{oC&&JS(oC,e)}),t.addEventListener(`pointerleave`,()=>{oC&&JS(oC,null)});let{item:r,removeButton:i}=pl(t,()=>zi(e));return r.setAttribute(`role`,`presentation`),i.tabIndex=-1,Object.assign(t,{_refs:n,_row:r})}function FC(e){let t=Si(e);t&&(JC(e),WC(t,e))}function IC(e,{id:t,ui:n,state:r,name:i},a){let o=pC.get(t)||`none`;bl(e,e._refs,{ui:n,state:r,name:i??``,mergeStatus:o===`none`?``:o,attentionPosition:a}),e.classList.toggle(`focused`,t===EC()),e.classList.toggle(`has-unopened-shown`,Is(t));let s=t===_C;e.setAttribute(`aria-selected`,String(s)),e.tabIndex=s?0:-1}function LC(e,t){if(!G)return;let n=e?.card?.dataset.id,r=n?mC.get(n):null;r&&(t===`flag`?r.dataset.activity=e._activity||``:rt(r._refs?.glyph))}st(LC),it(()=>{if(G)for(let[e,t]of mC){let n=F.get(e);n&&(t._refs.elapsed.textContent=nt(n))}});function RC(){if(!G)return;let e=aC;if(!e)return;let t=MC(),n=CC(t),r=new Set,i=Rn(t,EC()),a=new Map(i.map(({id:e},t)=>[e,t+1])),o=(e,t)=>{let n=e.map(e=>e.id).join(`,`),i=t._lastOrderKey===n&&t.childElementCount===e.length;for(let n of e){let{id:e}=n;r.add(e);let o=mC.get(e);o||(o=PC(e),mC.set(e,o)),IC(o,n,a.get(e)??null),i||t.appendChild(o._row)}t._lastOrderKey=n},s=new Set(n.order),c=n.groups.map(e=>e.key).join(`
|
|
83
|
+
`),l=c===vC;vC=c;for(let t of n.groups){let{header:n,list:r}=wC(t);l||e.append(n,r),o(t.rows,r)}for(let[e,t]of[...gC])s.has(e)||(t.header.remove(),hC.get(e)?.remove(),gC.delete(e),hC.delete(e));for(let[e,t]of mC)r.has(e)||(t._row.remove(),mC.delete(e),e===_C&&(_C=null));for(let e of[...pC.keys()])F.has(e)||pC.delete(e);let u=yC;yC=pS(n,bC);let d=EC();if(d&&!F.has(d)){L.dispatch(`focusSession`,null),_C=null;let e=zC(u,d);if(e){let t=!document.activeElement||document.activeElement===document.body;JC(e),t&&WC(F.get(e),e);return}}YC();let f=EC();if(f){let e=F.get(f);e&&e.card.parentElement!==cC&&KC(e,f)}VC(t,i)}function zC(e,t){let n=e.filter(e=>e===t||F.has(e));if(n.length<2)return yC.find(e=>F.has(e))??null;let r=n.indexOf(t)===n.length-1;return Nn(n,t,r?-1:1)}function BC(){return Rn(MC(),EC())}function VC(e,t){oC&&zS(oC,Qn(e),t)}function HC(){if(!G)return;oC&&$S(oC);let e=BC()[0]?.id;e&&UC(e)}function UC(e){if(!G)return;mC.get(e)?.scrollIntoView({block:`nearest`}),oC&&XS(oC,e,()=>GC(e));let t=F.get(e);Si(e),JC(e),WC(t,e)}function WC(e,t){e&&requestAnimationFrame(()=>requestAnimationFrame(()=>{G&&EC()===t&&e.term?.focus()}))}function GC(e){if(iC?.matches||document.hidden)return;let t=mC.get(e);t?.animate&&(t.animate([{transform:`scale(1)`},{transform:`scale(1.045)`,offset:.3},{transform:`scale(1)`}],{duration:360,easing:`cubic-bezier(0.22, 1, 0.36, 1)`}),t._row.animate([{boxShadow:`0 0 0 3px var(--accent)`},{boxShadow:`0 0 0 3px transparent`}],{duration:700,easing:`ease-out`}));let n=F.get(e)?.card;n?.animate&&n.animate([{opacity:.8},{opacity:1}],{duration:240,easing:`ease-out`})}function KC(e,t){cC&&(Lr(e,t,cC,{className:`focus-centered`}),Ch(e,t,!0))}function qC(){let e=EC();e&&(Ir()===e&&Rr(),L.dispatch(`focusSession`,null))}function JC(e){G&&F.has(e)&&(oS(e),Ci(e),e!==EC()&&(qC(),L.dispatch(`focusSession`,e),_C=e,RC()))}function YC(){if(!lC||!uC||!dC)return;let e=EC(),t=!!(e&&F.has(e)),n=F.size>0;lC.hidden=t,lo(lC,!n),uC.hidden=!n,dC.hidden=!n,!t&&n&&(uC.textContent=`No session selected`,dC.textContent=`Select a session from the rail on the left to focus it here.`)}function XC(e,t){pC.set(P(e),typeof t==`string`&&t?t:`none`),G&&RC()}function ZC(e){G&&F.has(e)&&JC(e)}function QC(e){return!G||!F.has(e)?!1:(JC(e),Px(e))}function $C(e){if(!G)return;let t=xC()[e-1];t&&FC(t)}function ew(e){if(!G)return;let t=Nn(xC(),_C,e);t!=null&&(FC(t),mC.get(t)?.scrollIntoView({block:`nearest`}))}window.addEventListener(`focus`,()=>{let e=EC();G&&e&&oS(e)});function tw(){aC&&(G=!0,qC(),_C=null,RC(),fC&&BC().length>0?HC():(fC&&oC&&$S(oC),rw()))}function nw(e){fC=!0;try{e()}finally{fC=!1}}function rw(){if(!G||EC())return;let e=wi();e&&JC(e)}function iw(){G&&=(qC(),_C=null,!1)}var aw=`t-[0-9a-f]{8}`,ow=`No intent yet. The visions proposes one after its first pass.`,sw=`Unowned`,cw=RegExp(`^${aw}$`);function lw(){return{byProject:{},unowned:[]}}function uw(e){if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.text==`string`?t.text:``;if(!n)return null;let r=Number(t.ts),i=Number(t.hits);return{id:typeof t.id==`string`&&cw.test(t.id)?t.id:null,text:n,uris:Array.isArray(t.uris)?t.uris.filter(e=>typeof e==`string`&&e!==``):[],ts:Number.isFinite(r)&&r>0?r:0,hits:Number.isInteger(i)&&i>0?i:1}}function dw(e){if(Array.isArray(e))return e.map(uw).filter(e=>e!==null);let t=uw(e);return t?[t]:[]}function fw(e){let t=e?.intent;if(!t||typeof t!=`object`)return lw();let n=t;if(!(Object.hasOwn(n,`byProject`)||Object.hasOwn(n,`unowned`)||Object.hasOwn(n,`global`)))return{byProject:{},unowned:dw(n)};let r=n.byProject&&typeof n.byProject==`object`?n.byProject:{},i=[];for(let[e,t]of Object.entries(r)){let n=dw(t);n.length!==0&&e&&i.push([e,n])}return{byProject:Object.fromEntries(i),unowned:dw(Object.hasOwn(n,`unowned`)?n.unowned:n.global)}}function pw(e,t){let n=typeof t?.id==`string`?t.id:null;if(!n)return e;let r=e.findIndex(e=>e.id===n);return r<=0?e:[e[r],...e.slice(0,r),...e.slice(r+1)]}function mw(e,t){let n=e||lw(),r=t?.intent;if(!r||typeof r!=`object`)return n;let i=r,a=pw(Array.isArray(i.threads)?dw(i.threads):dw(i),i.active),o=typeof t?.projectId==`string`&&t.projectId?t.projectId:null;if(!o)return{byProject:{...n.byProject},unowned:a};let s={...n.byProject};return a.length===0&&delete s[o],a.length>0&&(s[o]=a),{byProject:s,unowned:n.unowned}}function hw(e,t=null){let n=t&&typeof t.get==`function`?t.get(e):null;return typeof n==`string`&&n?n:e}function gw(e,{key:t,label:n,now:r}){return e.map((e,i)=>({key:`${t}:${e.id||i}`,label:n,text:e.text,hasText:!0,active:i===0,meta:bw(e,r)}))}function _w(e,t=null,n=Date.now()){let r=e||lw(),i=Object.entries(r.byProject||{}).filter(([e,t])=>e&&Array.isArray(t)&&t.length>0).map(([e,n])=>({projectId:e,label:hw(e,t),threads:n})).sort((e,t)=>e.label.localeCompare(t.label)).flatMap(({projectId:e,label:t,threads:r})=>gw(r,{key:e,label:t,now:n})),a=gw(Array.isArray(r.unowned)?r.unowned:[],{key:`unowned`,label:sw,now:n});return i.length+a.length>0?[...a,...i]:[{key:`unowned`,label:sw,text:ow,hasText:!1,active:!1,meta:``}]}function vw(e){return e?.text?`proposed by visions`:``}function yw(e,t=Date.now()){let n=Number(e);return!Number.isFinite(n)||n<=0?``:Pe(Number(t)-n,{rounding:`floor`,wording:`spelled`,suffix:` ago`,justNowBelowSeconds:60})}function bw(e,t=Date.now()){let n=vw(e);if(!n)return``;let r=typeof e?.id==`string`&&e.id?`thread ${e.id}, `:``,i=yw(e?.ts,t);return i?`${r}${n}, ${i}`:`${r}${n}`}function xw(e){let t=Number(e?.range?.start?.line);return!Number.isFinite(t)||t<0?`L?`:`L${Math.floor(t)+1}`}function Sw(e){return(typeof e?.hand==`string`?e.hand.trim():``)||null}function Cw(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=Sw(t);return i?(n.set(r,i),n):(n.delete(r),n)}function ww(e){let t=new Map,n=Array.isArray(e?.documents)?e.documents:[];for(let e of n){let n=typeof e?.uri==`string`?e.uri:``,r=typeof e?.hand==`string`?e.hand.trim():``;n&&r&&t.set(n,r)}return t}var Tw=`hand`,Ew=`unseen`,Dw=`
|
|
84
|
+
`;function Ow(e){let t=2166136261,n=3266489909;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r);t=Math.imul(t^i,16777619)>>>0,n=Math.imul(n^i,2246822507)>>>0}return`${t.toString(36).padStart(7,`0`)}${n.toString(36).padStart(7,`0`)}`}function kw(e,t){return Ow(JSON.stringify([e,...t]))}function Aw(e,t){return kw(`finding`,[e,xw(t),String(t.code??``),String(t.message??``)])}function jw(e,t){return kw(`comment`,[e,Iw(t),String(t.message??``)])}function Mw(e){return kw(`fix`,[e.uri,Ww(e),e.code,e.message,Gw(e)])}function Nw(e){return kw(`intent`,[e.key,e.text,e.active])}function Pw(e,t,n,r=[],i=null){let a=[...n].map(([e,t])=>kw(`hand`,[e,t])).sort(),o=new Set;for(let r of[...e.keys(),...t.keys(),...n.keys()])o.add(kw(`document`,[r]));for(let[t,n]of e)for(let e of n)o.add(Aw(t,e));for(let[e,n]of t)for(let t of n)o.add(jw(e,t));for(let e of r)o.add(Mw(e));for(let e of _w(i,null,0))e.hasText&&o.add(Nw(e));let s=[...o].sort();return{signature:[...a,...s].join(Dw),handEntries:a,contentEntries:s}}function Fw(e,t){let n=new Set(t.split(Dw));return e.handEntries.some(e=>!n.has(e))?Tw:e.contentEntries.some(e=>!n.has(e))?Ew:null}function Iw(e){let t=Number(e?.line);return!Number.isFinite(t)||t<1?`L?`:`L${Math.floor(t)}`}function Lw(e){return Array.isArray(e?.diagnostics)?e.diagnostics:[]}function Rw(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=Lw(t);return i.length===0?(n.delete(r),n):(n.set(r,i),n)}function zw(e){return Array.isArray(e?.comments)?e.comments:[]}function Bw(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=zw(t);return i.length===0?(n.delete(r),n):(n.set(r,i),n)}function Vw(e){let t=new Map,n=Array.isArray(e?.documents)?e.documents:[];for(let e of n){let n=typeof e?.uri==`string`?e.uri:``,r=Array.isArray(e?.diagnostics)?e.diagnostics:[];n&&r.length!==0&&t.set(n,r)}return t}function Hw(e){let t=new Map,n=Array.isArray(e?.documents)?e.documents:[];for(let e of n){let n=typeof e?.uri==`string`?e.uri:``,r=Array.isArray(e?.comments)?e.comments:[];n&&r.length!==0&&t.set(n,r)}return t}var Uw=20;function Ww(e){let t=Number(e?.line);return!Number.isFinite(t)||t<0?`L?`:`L${Math.floor(t)+1}`}function Gw(e){return e?.applied===!0?`applied`:`refused`}function Kw(e,{uri:t=``,ts:n=0}={}){if(!e||typeof e!=`object`)return null;let r=e,i=typeof r.message==`string`?r.message.trim():``;if(!i)return null;let a=Number(r.line),o=Number(r.ts??n);return{uri:typeof r.uri==`string`&&r.uri?r.uri:t,code:typeof r.code==`string`?r.code:``,line:Number.isFinite(a)&&a>0?Math.floor(a):0,message:i,applied:r.applied===!0,ts:Number.isFinite(o)&&o>0?o:0}}function qw(e){let t=typeof e?.uri==`string`?e.uri:``,n=Number(e?.ts);return Kw(e?.fix,{uri:t,ts:Number.isFinite(n)?n:0})}function Jw(e,t,{max:n=Uw}={}){let r=qw(t);return r?[r,...e].slice(0,Math.max(0,Math.floor(n))):[...e]}function Yw(e,{max:t=Uw}={}){let n=Array.isArray(e?.fixes)?e.fixes:[],r=[];for(let e of n){let t=Kw(e);t&&r.push(t)}return r.slice(0,Math.max(0,Math.floor(t)))}var Xw=100;function Zw(e){if(!e||typeof e!=`object`)return null;let t=e,n=Number(t.seq);if(!Number.isFinite(n))return null;let r=typeof t.summary==`string`?t.summary.trim():``;if(!r)return null;let i=Number(t.ts),a=t.scope&&typeof t.scope==`object`?t.scope:{};return{seq:Math.floor(n),source:typeof t.source==`string`?t.source:``,kind:typeof t.kind==`string`?t.kind:``,ts:Number.isFinite(i)&&i>0?i:0,summary:r,root:typeof a.root==`string`&&a.root?a.root:null,sessionId:typeof a.sessionId==`string`&&a.sessionId?a.sessionId:null}}function Qw(e){let t=Array.isArray(e?.events)?e.events:[],n=[];for(let e of t){let t=Zw(e);t&&n.push(t)}return n}function $w(e){let t=Number(e?.overflow);return!Number.isFinite(t)||t<=0?0:Math.floor(t)}function eT(e,t){return[...e].sort((e,t)=>t.seq-e.seq).slice(0,Math.max(0,Math.floor(t)))}function tT(e,t,{max:n=Xw}={}){let r=Qw(t);if(r.length===0)return eT(e,n);let i=new Map;for(let t of e)i.set(t.seq,t);for(let e of r)i.set(e.seq,e);return eT([...i.values()],n)}function nT(e,{max:t=Xw}={}){return eT(Qw(e),t)}var rT=new Map,iT=new Map,aT=new Map,oT=lw(),sT=new Map,cT=null,lT=!0,uT=[],dT=0,fT=[],pT=null,mT=()=>!1,hT=new Set,gT=Pw(rT,iT,aT,fT,oT),_T=an(),vT=_e({getAck:()=>_T,setAck:e=>{_T=e,Ut(e)},signature:()=>gT.signature,isLooking:()=>mT()});function yT(e){for(let t of hT)t(e)}function bT(){gT=Pw(rT,iT,aT,fT,oT),gT.signature!==``&&vT.refresh(),pT?.(Fw(gT,_T))}function xT(e){yT(e),bT()}function ST(){return{findingsByUri:rT,commentsByUri:iT,handsByUri:aT,intent:oT,projectNamesById:sT,isEnabled:cT,isConnected:lT,activityEvents:uT,activityOverflow:dT,fixEntries:fT}}function CT(e){hT.add(e)}function wT(e){mT=e,bT()}function TT(e){pT=e,bT()}function ET(){gT.signature!==``&&vT.acknowledge(),bT()}function DT(e){sT=e instanceof Map?e:new Map,yT([`intent`])}function OT(e){cT=e?.visions?.enabled===!0,yT([`feed`])}function kT(e){lT=e,yT([`connection`])}function AT(e){fT=Jw(fT,e),xT([`fixes`])}function jT(e){rT=Rw(rT,e),xT([`feed`])}function MT(e){iT=Bw(iT,e),xT([`feed`])}function NT(e){aT=Cw(aT,e),xT([`feed`])}function PT(e){oT=mw(oT,e),xT([`intent`])}function FT(e){uT=tT(uT,e),dT=$w(e),xT([`activity`])}function IT(e){uT=nT(e),dT=0,xT([`activity`])}function LT(e){rT=Vw(e),iT=Hw(e),aT=ww(e),oT=fw(e),fT=Yw(e),xT([`intent`,`feed`,`fixes`])}var RT=null,zT=null,BT=!1,VT=null,HT=new Set;function UT(e,t){if(!e||typeof e!=`object`)return!1;let n=e.requestId;return typeof n!=`string`||!t||n===t}function WT(){for(let e of HT)e()}function GT(){return{report:RT,hasReportSendFailed:BT}}function KT(e){HT.add(e)}function qT(e){zT=e}function JT(){if(!zT)return;VT=Xe(`hooks-report`);let e=zT({type:`request-hooks-report`,requestId:VT});e!==!BT&&(BT=!e,WT())}function YT(e){UT(e,VT)&&(RT=e,BT=!1,WT())}function XT(){JT()}function ZT(e){return e.filter(e=>!e.hasOwnPhoneScreen).map(e=>{let t=e.label.trim();return{id:e.view,label:t,glyph:e.glyph||t.charAt(0).toUpperCase(),el:e.el}})}var QT=e=>e.ui.path;function $T({onSelectSession:e}){let t=A(`div`,`phone-board`),n=A(`header`,`phone-topbar`),r=RS({onJump:()=>{$S(r);let e=Rn(x(),null)[0]?.id;e&&a(e)},rowFor:e=>d.get(e)}),i=null;function a(e){i=e,d.get(e)?.scrollIntoView({block:`nearest`}),XS(r,e,()=>{i===e&&o(e)})}function o(t){i=null,e?.(t)}let s=A(`div`,`phone-board-list`),c=A(`div`,`phone-empty`),l=A(`p`,`phone-empty-title`,`No sessions`),u=A(`p`,`phone-empty-desc`,`Spawn a session to start watching.`);c.append(l,u),t.append(n,s,c,r);let d=new Map,f=new Map,p=new WeakMap,m=new WeakMap,h=new WeakMap,g=0;he(n);function _(e){let{row:t,refs:n}=fl(`button`);t.type=`button`,t.dataset.id=e,t.addEventListener(`click`,()=>o(e));let{item:r}=pl(t,()=>zi(e));return r.setAttribute(`role`,`listitem`),p.set(t,{refs:n,item:r}),t}function v(){let e=A(`section`,`phone-board-group`),t=mS({onAdd:Ni,onForget:e=>{Ml(e),S()}}),n=A(`div`,`phone-board-group-rows`);return n.setAttribute(`role`,`list`),e.append(t.header,n),m.set(e,{...t,rows:n}),e}function y(e,t,n){let r=p.get(e);if(!r)return;let{ui:i,state:a,name:o}=t;bl(e,r.refs,{ui:i,state:a,name:o,mergeStatus:i.card?.dataset.merge||``,attentionPosition:n})}function b(e,t){let n=m.get(e);n&&(hS(n,t,`Board`),n.rows.setAttribute(`aria-label`,`${t.label} sessions`))}function x(){return Mn(Ti())}function S(){let e=x(),t=fS(e,QT,jl(e,QT)),n=Qn(e);g=Fn(n);let i=Rn(e,null),a=new Map(i.map(({id:e},t)=>[e,t+1]));zS(r,n,i);let o=new Set(t.order),S=t.order.join(`,`),C=h.get(s)===S&&s.childElementCount===t.groups.length;for(let e of t.groups){let t=f.get(e.key);t||(t=v(),f.set(e.key,t)),b(t,e),C||s.appendChild(t);let n=e.rows.map(e=>e.id).join(`,`),r=m.get(t);if(!r)continue;let i=h.get(r.rows)===n&&r.rows.childElementCount===e.rows.length;for(let t of e.rows){let e=d.get(t.id);e||(e=_(t.id),d.set(t.id,e)),y(e,t,a.get(t.id)??null);let n=p.get(e);n&&(i||r.rows.appendChild(n.item))}h.set(r.rows,n)}h.set(s,S);for(let[e,t]of[...f])o.has(e)||(t.remove(),f.delete(e));let w=new Set(pS(t));for(let[e,t]of[...d]){if(w.has(e))continue;let n=p.get(t);n&&n.item.remove(),d.delete(e)}let T=t.groups.length>0,E=F.size===0;s.hidden=!T,c.hidden=T,lo(c,E),l.hidden=E,u.hidden=E,r.hidden=E}function C(e,t){let n=e.card?.dataset.id,r=n?d.get(n):void 0;r&&(t===`flag`?r.dataset.activity=e._activity||``:rt(p.get(r)?.refs.glyph))}return it(()=>{for(let[e,t]of d){let n=F.get(e),r=p.get(t);n&&r&&(r.refs.elapsed.textContent=nt(n))}}),{el:t,topBarEl:n,refresh:S,renderActivity:C,getAttentionCount:()=>g}}var eE=`clipboard`,tE=`upload`,nE=24,rE=Object.freeze([Object.freeze({id:`esc`,label:`Esc`,bytes:`\x1B`,title:`Send Escape`}),Object.freeze({id:`tab`,label:`Tab`,bytes:` `,title:`Send Tab`}),Object.freeze({id:`left`,label:`←`,bytes:`\x1B[D`,isArrow:!0,title:`Arrow left`}),Object.freeze({id:`up`,label:`↑`,bytes:`\x1B[A`,isArrow:!0,title:`Arrow up`}),Object.freeze({id:`down`,label:`↓`,bytes:`\x1B[B`,isArrow:!0,title:`Arrow down`}),Object.freeze({id:`right`,label:`→`,bytes:`\x1B[C`,isArrow:!0,title:`Arrow right`}),Object.freeze({id:`paste`,label:`Paste`,bytes:null,action:eE,title:`Paste from the clipboard`}),Object.freeze({id:`attach`,label:`Attach`,bytes:null,action:tE,title:`Upload a photo or file to this session`})]);function iE(e){let t=rE.find(t=>t.id===e);return t?t.bytes:null}function aE(e){return!!e&&e.action===eE}function oE(e){return!!e&&e.action===tE}function sE(e,t,n=nE){let r=Math.abs(e)>=Math.abs(t),i=r?e:t;return Math.abs(i)<n?null:r?i>0?`right`:`left`:i>0?`down`:`up`}function cE(e,t,n=nE){let r=sE(e,t,n);if(!r)return null;let i=r===`left`||r===`right`,a=i?e:t,o=Math.floor(Math.abs(a)/n),s=Math.sign(a)*o*n;return{arrowKeyId:r,stepCount:o,consumedX:i?s:e,consumedY:i?t:s}}var lE={" ":`\0`,"@":`\0`,"[":`\x1B`,"\\":``,"]":``,"^":``,_:``,"?":``};function uE(e){if(e.length!==1)return null;let t=e.toLowerCase();return t>=`a`&&t<=`z`?String.fromCharCode(t.charCodeAt(0)-96):lE[e]??null}function dE({send:e,getSessionId:t,reportProblem:n}){let r=A(`div`,`phone-key-strip`);r.setAttribute(`role`,`toolbar`),r.setAttribute(`aria-label`,`Terminal keys`);let i=null,a=null,o=A(`button`,`phone-key phone-key-ctrl`,`Ctrl`);o.type=`button`,o.title=`Hold Ctrl for the next key you type`,o.setAttribute(`aria-pressed`,`false`),o.addEventListener(`pointerdown`,e=>e.preventDefault()),o.addEventListener(`click`,()=>c(!s())),r.appendChild(o);function s(){return o.getAttribute(`aria-pressed`)===`true`}function c(e){o.setAttribute(`aria-pressed`,String(e))}function l(){return s()?(c(!1),!0):!1}for(let t of rE){t.id===`left`&&r.appendChild(fE(e));let n=A(`button`,t.isArrow?`phone-key phone-key-arrow`:`phone-key`,t.label);n.type=`button`,n.dataset.key=t.id,n.title=t.title,t.isArrow&&n.setAttribute(`aria-label`,t.title),n.addEventListener(`pointerdown`,e=>e.preventDefault()),n.addEventListener(`click`,()=>u(t,n)),r.appendChild(n)}function u(t,r){oE(t)?d(r):aE(t)?mE(e,n):e(iE(t.id))}function d(e){a=e,i||(i=A(`input`,`phone-file-picker`),i.type=`file`,i.hidden=!0,i.addEventListener(`change`,f),r.appendChild(i)),i.click()}function f(){let e=i;if(!e)return;let r=e.files?e.files[0]:null;if(e.value=``,!r)return;let o=t?.();o?p(o,r,a):n(`No session is open to upload to.`)}async function p(e,t,n){n&&(n.disabled=!0),await dp(e,t),n&&(n.disabled=!1)}return{element:r,takeHeldControl:l}}function fE(e){let t=A(`button`,`phone-key phone-arrow-pad`,`Arrows`);t.type=`button`,t.title=`Swipe to send arrow keys`;let n=null,r=null;t.addEventListener(`pointerdown`,e=>{e.preventDefault(),r===null&&(t.setPointerCapture(e.pointerId),r=e.pointerId,n={x:e.clientX,y:e.clientY})}),t.addEventListener(`pointermove`,t=>{if(t.pointerId!==r||!n)return;let i=cE(t.clientX-n.x,t.clientY-n.y);if(i){for(let t=0;t<i.stepCount;t++)e(iE(i.arrowKeyId));n={x:n.x+i.consumedX,y:n.y+i.consumedY}}});let i=e=>{e.pointerId===r&&(r=null,n=null)};return t.addEventListener(`pointerup`,i),t.addEventListener(`pointercancel`,i),t}var pE=`Paste needs clipboard permission.`;function mE(e,t){let n=null;try{n=navigator.clipboard?.readText?.()}catch{t(pE);return}n?n.then(t=>{t&&e(t)}).catch(()=>t(pE)):t(`Paste is unavailable in this browser.`)}function hE({onBack:e,onShowChanges:t}){let n=A(`div`,`phone-terminal`),r=A(`header`,`phone-topbar phone-terminal-bar`),i=A(`button`,`phone-back`,`‹`);i.type=`button`,i.setAttribute(`aria-label`,`Back to board`),i.addEventListener(`click`,()=>e?.());let a=A(`div`,`phone-terminal-identity`),o=A(`span`,`phone-terminal-name`);o.title=`Double-tap to rename`,o.addEventListener(`dblclick`,()=>ee());let s=A(`span`,`session-task-title phone-terminal-title`);ar(s,()=>D());let c=A(`span`,`phone-terminal-badge`);c.innerHTML=`<span class="phone-terminal-glyph" aria-hidden="true"></span><span class="phone-terminal-label"></span><span class="phone-terminal-elapsed" aria-hidden="true"></span>`;let u=O(c,`.phone-terminal-glyph`,`span`),d=O(c,`.phone-terminal-label`,`span`),f=O(c,`.phone-terminal-elapsed`,`span`);d.before(o),a.append(s,c);let p=A(`button`,`phone-changes`);p.append(mn(Sn)),p.type=`button`,p.title=`Show this session's code changes`,p.setAttribute(`aria-label`,`Show this session's code changes`),p.addEventListener(`click`,()=>t?.());let m=A(`div`,`phone-terminal-actions`);r.append(i,a,p,m);let h=A(`div`,`phone-card-slot`),g=A(`div`,`phone-empty`);g.innerHTML=`<p class="phone-empty-title">No session selected</p><p class="phone-empty-desc">Select a session from the board to watch it here.</p>`;let _=yn(`phone-key-status m-0 px-3 py-1`),{element:v,takeHeldControl:y}=dE({send:w,getSessionId:()=>x,reportProblem:e=>_.show(`error`,e)});n.append(r,h,g,_.element,v);let x=null,S=null,C=null;function w(e){let t=x?F.get(x):null;t&&(ph(t,e)?_.clear():_.show(`error`,l))}function T(){let e=x?F.get(x):null;e?.term&&e.term.focus()}h.addEventListener(`click`,T);function E(e){let t=uE(e);return!t||!y()?!1:(w(t),!0)}h.addEventListener(`keydown`,e=>{e.ctrlKey||e.metaKey||e.altKey||E(e.key)&&(e.preventDefault(),e.stopPropagation())},!0),h.addEventListener(`input`,e=>{e instanceof InputEvent&&e.data&&E(e.data.slice(-1))&&(e.stopPropagation(),(x?F.get(x):null)?._resetSoftKeyboardBuffer?.())},!0);function ee(){let e=x?F.get(x):null;e&&x&&ur(e,x,{returnsFocusToTerminal:!1})}function D(){let e=x?F.get(x):null;e&&x&&Bn(e,x)}function te(){let e=x?F.get(x):null,t=!!e;if(g.hidden=t,h.hidden=!t,v.hidden=!t,a.hidden=!t,p.hidden=!t,!t){r.removeAttribute(`data-state`),r.removeAttribute(`data-monitoring`),r.removeAttribute(`data-prompt`);return}let n=e.currentState||b.DORMANT;ml(r,{glyph:u,label:d},n,e.awaitingBackgroundTasks,e.pendingPromptKind);let i=e.card?.dataset.session||x;nr(o)||(o.textContent=i),s.dataset.sessionName=i??``,qn(s,e.taskTitle),f.textContent=nt(e)}function ne(){C&&=(delete C.renameTargetEl,delete C.titleTargetEl,null),o.replaceChildren(),S&&=(ge(S),S.parentElement===m&&S.remove(),null)}function re(e){let t=F.get(e);t&&(x===e&&Ir()===e&&t.card.parentElement===h||(ne(),x=e,Lr(t,e,h,{className:`phone-centered`}),S=O(t.card,`.session-actions`,`div`),De(S,m),t.renameTargetEl=o,t.titleTargetEl=s,C=t),te())}function ie(){ne(),Ir()===x&&Rr(),x=null,te()}function ae(){if(!x){te();return}let e=F.get(x);e?e.card.parentElement===h?te():(re(x),n.hidden||Ch(e,x,!0)):ie()}function oe(){let e=x;e&&Ch(F.get(e),e,!1)}function se(){ae();let e=x;if(!e)return;let t=F.get(e);t&&(Ch(t,e,!0),oS(e))}return it(()=>{let e=x?F.get(x):null;e&&(f.textContent=nt(e))}),te(),{el:n,show:re,clear:ie,refresh:ae,reveal:se,unview:oe,getSessionId:()=>x}}var gE=`board`,_E=`terminal`,vE=`changes`,yE=Object.freeze({[vE]:_E}),bE=Object.freeze([{id:gE,label:`Focus`,glyph:`▤`},{id:_E,label:`Terminal`,glyph:`▸`}]),xE=[],SE=new Map,K=null,CE=new Map,wE=new Map,TE=new Map,EE=null,q=null,DE=null,OE=null,kE=null,AE=null,jE=new Map,ME=new Set,NE={},PE=!1,FE=120,IE=0,LE=0,J=0,RE=null;function zE(){IE=0,LE=0}function BE(){let e=window.visualViewport;K&&(!PE||!e?K.removeAttribute(`data-keyboard`):(K.style.setProperty(`--phone-vh`,`${e.height}px`),K.style.setProperty(`--phone-vv-top`,`${e.offsetTop}px`),e.width!==LE&&(LE=e.width,IE=0),IE=Math.max(IE,e.height),IE-e.height>FE?K.dataset.keyboard=`open`:K.removeAttribute(`data-keyboard`)))}function VE(e,t,n=`phone-nav-item`,r=`phone-nav-dot`){let i=A(`button`,n);i.type=`button`;let a=A(`span`,`phone-nav-glyph`,t);a.setAttribute(`aria-hidden`,`true`),i.append(a,A(`span`,`phone-nav-label`,e));let o=A(`span`,r);return o.setAttribute(`aria-hidden`,`true`),o.hidden=!0,i.appendChild(o),i}function HE(e){return e?.querySelector(`.phone-nav-dot`)||null}function UE(e,t){e&&(e.hidden=!t,typeof t==`string`&&(e.dataset.attention=t),typeof t!=`string`&&delete e.dataset.attention)}function WE(){let e=[];for(let t of xE){if(ME.has(t.id))continue;let n=TE.get(t.id)||!1;e.push(n),UE(HE(jE.get(t.id)),n)}UE(HE(kE),Pn(e))}function GE(){let e=A(`div`,`phone-nav-more-menu`);e.hidden=!0;for(let t of xE){let n=VE(t.label,t.glyph,`phone-nav-menu-item`,`phone-nav-dot phone-nav-menu-dot`);n.dataset.screen=t.id,n.hidden=ME.has(t.id),n.addEventListener(`click`,()=>{KE(!1),fD(t.id)}),jE.set(t.id,n),e.appendChild(n)}return e}function KE(e){AE&&kE&&(AE.hidden=!e,kE.setAttribute(`aria-expanded`,String(e)))}function qE(){return!!AE&&!AE.hidden}function JE(){let e=A(`nav`,`phone-nav`);e.setAttribute(`aria-label`,`Screens`);for(let t of bE){let n=VE(t.label,t.glyph);n.dataset.screen=t.id,n.addEventListener(`click`,()=>fD(t.id)),CE.set(t.id,n),e.appendChild(n)}return kE=VE(`More`,`⋯`),kE.setAttribute(`aria-expanded`,`false`),kE.addEventListener(`click`,()=>KE(!qE())),e.appendChild(kE),AE=GE(),e.appendChild(AE),e}function YE(e,t,n){let r=A(`section`,`phone-screen`);return r.dataset.screen=e,r.setAttribute(`aria-label`,t),r.hidden=!0,n&&r.appendChild(n),wE.set(e,r),r}function XE(){if(K)return;EE=$T({onSelectSession:QE}),st((e,t)=>{PE&&EE?.renderActivity(e,t)}),q=hE({onBack:()=>fD(gE),onShowChanges:()=>fD(vE)}),DE=A(`div`,`phone-review`);let e=A(`div`,`phone-screens`),t={[gE]:EE.el,[_E]:q.el};for(let n of bE)e.appendChild(YE(n.id,n.label,t[n.id]));e.appendChild(YE(vE,`Changes`,ZE(DE)));for(let t of xE){let n=A(`div`,`phone-panel phone-${t.id}`);SE.set(t.id,n),e.appendChild(YE(t.id,t.label,n))}K=A(`div`,`phone-shell`),K.id=`phone-shell`,K.append(e,JE()),document.body.appendChild(K),WE(),window.visualViewport?.addEventListener(`resize`,BE),window.visualViewport?.addEventListener(`scroll`,BE),window.addEventListener(`popstate`,sD),document.addEventListener(`click`,e=>{qE()&&AE&&kE&&e.target instanceof Node&&(AE.contains(e.target)||kE.contains(e.target)||KE(!1))}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&qE()&&KE(!1)})}function ZE(e){let t=A(`div`,`phone-changes-screen`),n=A(`header`,`phone-topbar phone-changes-bar`),r=A(`button`,`phone-back`,`‹`);return r.type=`button`,r.setAttribute(`aria-label`,`Back to terminal`),r.addEventListener(`click`,()=>fD(_E)),OE=A(`span`,`phone-changes-session`),n.append(r,A(`span`,`phone-changes-title`,`Changes`),OE),t.append(n,e),t}function QE(e){if(F.has(e)){if(!EE||!q)throw Error(`Phone shell is not built`);Si(e,`dormant-fallback`),Ci(e),q.show(e),fD(_E)}}function $E(e){return yE[e]??e}function eD(e,t){return t?{glimmervoidScreen:e,glimmervoidNested:!0}:{glimmervoidScreen:$E(e)}}function tD(e){let t=e?.glimmervoidScreen;return typeof t==`string`?t:null}function nD(e){return tD(e)?e.glimmervoidNested===!0?2:1:0}function rD(e){return e===gE?0:yE[e]||NE.canGoBack?.(e)?2:1}function iD(e,t){let n=t?e:$E(e);return tD(history.state)===n&&nD(history.state)===(t?2:1)}function aD(){if(!PE||RE!==null)return;let e=L.snapshot().phoneScreen||gE,t=rD(e);if(J>t){RE=location.href,history.go(t-J),J=t;return}let n=J===2;J>0&&!iD(e,n)&&history.replaceState(eD(e,n),``),J===0&&t>0&&(history.pushState(eD(e,!1),``),J=1),J===1&&t===2&&(history.pushState(eD(e,!0),``),J=2)}function oD(){let e=tD(history.state);return e&&uD(e)?(J=nD(history.state),e):(e&&history.replaceState(null,``),J=0,gE)}function sD(e){if(!PE)return;if(RE!==null){history.replaceState(history.state,``,RE),RE=null,aD();return}let t=tD(e.state),n=t&&uD(t)?t:gE;J=nD(e.state);let r=L.snapshot().phoneScreen;J<2&&n===r&&NE.canGoBack?.(r)&&NE.onBack?.(r),lD(n),aD()}function cD(e,t){for(let[n,r]of e)n===t?r.setAttribute(`aria-current`,`page`):r.removeAttribute(`aria-current`)}function lD(e){if(!kE||!q)throw Error(`Phone shell is not built`);L.dispatch(`setPhoneScreen`,e),KE(!1),dD();for(let[t,n]of wE)n.hidden=t!==e;NE.onScreenShown?.(e),cD(CE,$E(e));let t=jE.has(e);t&&kE.setAttribute(`aria-current`,`page`),t||kE.removeAttribute(`aria-current`),cD(jE,e),e===_E?q.reveal():q.unview()}function uD(e){return wE.has(e)&&!ME.has(e)}function dD(){if(!OE||!q)return;let e=q.getSessionId(),t=e?F.get(e):null,n=t?ct(t):``;OE.textContent=n,OE.title=n}function fD(e){K&&uD(e)&&(lD(e),aD())}function pD(e){xE.sort((t,n)=>e.indexOf(t.id)-e.indexOf(n.id)),AE?.append(...xE.flatMap(e=>jE.get(e.id)??[]))}function mD(e){NE=e||{},xE=NE.panels||[]}function hD({sessionId:e,linkedScreenId:t}={}){if(PE)return;if(XE(),!K||!EE||!q)throw Error(`Phone shell is not built`);PE=!0,K.hidden=!1;for(let e of NE.headerControls||[])De(e,EE.topBarEl);Z_(DE);for(let e of xE)De(e.el,SE.get(e.id)),e.el.hidden=!1;BE(),e&&q.show(e);let n=oD();bD(),t&&uD(t)?fD(t):e&&n===gE?fD(_E):(lD(n),aD())}function gD(){if(PE){if(!K||!q)throw Error(`Phone shell is not built`);PE=!1,q.clear(),Z_(null);for(let e of xE)ge(e.el);for(let e of NE.headerControls||[])ge(e);KE(!1),K.hidden=!0,K.removeAttribute(`data-keyboard`),zE(),J>0&&history.go(-J),J=0,RE=null}}function _D(e){return!PE||!EE||!q||!F.has(e)?!1:(QE(e),Px(e))}function vD(){return PE}function yD(){return PE&&q?q.getSessionId():null}function bD(){if(!PE)return;if(!EE||!q)throw Error(`Phone shell is not built`);TD(),EE.refresh(),q.refresh(),dD(),$E(L.snapshot().phoneScreen||gE)===_E&&!q.getSessionId()&&fD(gE);let e=HE(CE.get(gE));e&&(e.hidden=EE.getAttentionCount()===0)}function xD(e){return PE?(QE(e),!0):!1}function SD(e){return!PE||!uD(e)?!1:(fD(e),!0)}function CD(e,t){t&&ME.delete(e),t||ME.add(e);let n=jE.get(e);n&&(n.hidden=!t);let r=wE.get(e);r&&!t&&(r.hidden=!0),WE(),!t&&PE&&L.snapshot().phoneScreen===e&&fD(gE)}function wD(e,t){TE.set(e,typeof t==`string`&&t?t:t===!0),WE()}function TD(){if(!q)throw Error(`Phone shell is not built`);if(q.getSessionId())return;let e=wi();e&&(q.show(e),Ci(e,{rememberFocus:!1}))}var ED={MERGE:`a merge commit`,SQUASH:`squash and merge`,REBASE:`rebase and merge`},DD=new Set([`FAILURE`,`ERROR`]);function OD(e){return ED[e]}function kD(e){return e.state===`MERGED`?`Already merged`:e.state===`OPEN`?e.isDraft?`Drafts cannot be merged`:e.isInMergeQueue?`Already in the merge queue`:e.mergeable===`CONFLICTING`||e.mergeStateStatus===`DIRTY`?`Resolve the merge conflicts first`:e.checks.failing.length>0||e.checks.state!==null&&DD.has(e.checks.state)?`Checks are failing`:e.stage===`ready`?null:`Not ready to merge yet`:`Closed`}function AD(e){return e.state===`MERGED`?`merged`:e.isDraft?`draft`:e.mergeable===`CONFLICTING`||e.mergeStateStatus===`DIRTY`?`conflicts`:e.mergeStateStatus===`BEHIND`?`behind`:e.checks.state===`FAILURE`||e.checks.state===`ERROR`?`checks-failing`:e.reviewDecision===`CHANGES_REQUESTED`?`changes-requested`:e.unresolvedThreads>0?`unresolved-threads`:e.checks.state===`PENDING`||e.checks.state===`EXPECTED`?`checks-pending`:e.reviewDecision===`REVIEW_REQUIRED`||e.mergeStateStatus===`BLOCKED`?`needs-approval`:e.mergeable===`MERGEABLE`&&[`CLEAN`,`HAS_HOOKS`,`UNSTABLE`].includes(e.mergeStateStatus)?`ready`:`unknown`}function jD(e){let t=Ae.parse({...e,key:`${e.repo}#${e.number}`,stage:`unknown`});return{...t,stage:AD(t)}}var MD=[`Needs you`,`Waiting`,`Ready to merge`,`Drafts`,`Merged today`],ND=[`Ready to merge`,`Needs you`,`Waiting`,`Drafts`,`Merged today`],PD={conflicts:`Needs you`,behind:`Needs you`,"checks-failing":`Needs you`,"changes-requested":`Needs you`,"unresolved-threads":`Needs you`,"checks-pending":`Waiting`,"needs-approval":`Waiting`,unknown:`Waiting`,ready:`Ready to merge`,draft:`Drafts`,merged:`Merged today`},FD={merged:`Merged`,draft:`Draft`,conflicts:`Merge conflicts`,behind:`Behind base`,"checks-failing":`Checks failing`,"changes-requested":`Changes requested`,"unresolved-threads":`Unresolved threads`,"checks-pending":`Checks running`,"needs-approval":`Needs approval`,ready:`Ready to merge`,unknown:`Status unknown`},ID={merged:`muted`,draft:`muted`,conflicts:`danger`,behind:`warn`,"checks-failing":`danger`,"changes-requested":`warn`,"unresolved-threads":`warn`,"checks-pending":`wait`,"needs-approval":`wait`,ready:`ok`,unknown:`muted`},LD={merged:`merged`,draft:`draft`,conflicts:`conflict`,behind:`behind`,"checks-failing":`failed`,"changes-requested":`changes-requested`,"unresolved-threads":`thread`,"checks-pending":`running`,"needs-approval":`reviewer`,ready:`ready`,unknown:`unknown`};function RD(e){let t=e.filter(e=>e.state===`OPEN`&&!e.isCrossRepository),n=new Map(t.map(e=>[JSON.stringify([e.repo.toLowerCase(),e.headRefName]),e])),r=new Map,i=[];for(let t of e){let e=t.state===`OPEN`?n.get(JSON.stringify([t.repo.toLowerCase(),t.baseRefName])):void 0;if(!e||e.key===t.key){i.push(t);continue}let a=r.get(e.key)??[];a.push(t),r.set(e.key,a)}let a=[],o=new Set;for(let t of[...i,...e]){if(o.has(t.key))continue;let e=[],n=[{pr:t,parentKey:null,depth:0}];for(;n.length>0;){let t=n.pop();if(!t||o.has(t.pr.key))continue;o.add(t.pr.key),e.push(t);let i=r.get(t.pr.key)??[];for(let e=i.length-1;e>=0;--e)n.push({pr:i[e],parentKey:t.pr.key,depth:t.depth+1})}a.push({root:t,rows:e})}return a}function zD(e){return MD[e.rows.reduce((e,{pr:t})=>Math.min(e,MD.indexOf(PD[t.stage])),MD.length-1)]}function BD(e){let t=new Map(MD.map(e=>[e,{title:e,prs:[],rows:[]}]));for(let n of RD(e)){let e=t.get(zD(n));if(e)for(let t of n.rows)e.rows.push(t),e.prs.push(t.pr)}return ND.flatMap(e=>t.get(e)??[])}function VD(e){return FD[e]}function HD(e){return ID[e]}function UD(e){return LD[e]}function WD(e,t){return e.flatMap(e=>{let n=t(e.key);if(!n)return[];let r=e.key.slice(0,e.key.lastIndexOf(`#`));return[{...jD({...n,repo:r}),...e}]})}function GD(e){let t=new Map;for(let n of e)for(let e of n.links){let r=Oe(e),i=t.get(r)??[];i.at(-1)?.id!==n.id&&(i.push({id:n.id,title:n.title}),t.set(r,i))}return t}function KD(e,t){if(!e)return[];let n=new Set(e.filter(e=>e.state===`OPEN`).map(e=>e.key));return t.filter(e=>e.state===`MERGED`&&n.has(e.key))}var qD=3;function JD(e){if(e.length===1)return{message:`Merged ${e[0].key}`,detailLines:[e[0].title]};let t=e.slice(0,qD).map(e=>`${e.key} ${e.title}`),n=e.length-t.length,r=n>0?[...t,`and ${n} more`]:t;return{message:`Merged ${e.length} pull requests`,detailLines:r}}function YD(e,t){if(!e)return null;let n=e=>{let n=t(e.key);return n?{...e,checksState:n.rollupState,reviewDecision:S(n.reviewDecision,n.opinionatedWriterReviewStates),isDraft:n.isDraft,liveHead:n.headRefOid,prStage:jD(n).stage}:e};return{...e,drafts:e.drafts.map(n),inFlight:e.inFlight.map(n),queued:e.queued.map(n)}}function XD(e){return e.isDraft?{band:`not-ready`,reason:`draft`}:e.reviewDecision===`CHANGES_REQUESTED`?{band:`waiting-on-author`,reason:`changes-requested`}:e.checksState===`FAILURE`||e.checksState===`ERROR`?{band:`waiting-on-author`,reason:`checks-failing`}:e.checksState===`PENDING`||e.checksState===`EXPECTED`?{band:`not-ready`,reason:`checks-pending`}:e.requestSource===`direct`&&e.reviewDecision===`REVIEW_REQUIRED`?{band:`blocking-others`,reason:`direct-request`}:e.reviewDecision===`APPROVED`?{band:`actionable`,reason:`approved`}:{band:`actionable`,reason:e.requestSource===`direct`?`review-available`:`team-request`}}function ZD(e){let t=e.viewerThreads;return t!==void 0&&t.total>0&&t.resolved===t.total}function QD(e){return e.status===`posted`&&$D(e)}function $D(e){if(!ZD(e)||w(e))return!1;let t=nO(e);return e.status===`posted`&&e.postedEvent===`APPROVE`&&e.reviewedHead===t?!1:!(e.githubReviews??[]).some(e=>e.isViewer&&e.state===`APPROVED`&&e.commit===t)}function eO(e){let t={ready:[],noReviewNeeded:[],inReview:[],queued:[],attention:[],posted:[],discarded:[]};if(!e)return t;let n={"blocking-others":[],actionable:[],"waiting-on-author":[],"not-ready":[]},r={"blocking-others":[],actionable:[],"waiting-on-author":[],"not-ready":[]},i=[`blocking-others`,`actionable`,`waiting-on-author`,`not-ready`],a=new Set(e.inFlight.map(e=>e.key));t.inReview.push(...e.inFlight);for(let t of e.queued)a.has(t.key)||r[XD(t).band].push(t);for(let e of i)t.queued.push(...r[e]);let o=new Set(t.queued.map(e=>e.key));for(let r of e.drafts){if(a.has(r.key)||o.has(r.key))continue;if(rO(r).length>0||QD(r)){n.actionable.push(r);continue}let e=(r.status===`ready`||r.status===`stale`||r.status===`error`)&&!iO(r);e&&t.noReviewNeeded.push(r),r.status===`ready`&&!e&&n[XD(r).band].push(r),(r.status===`stale`||r.status===`error`)&&!e&&t.attention.push(r),r.status===`posted`&&t.posted.push(r),r.status===`discarded`&&t.discarded.push(r)}for(let e of i)t.ready.push(...n[e]);return t}function tO(e,t){return e.commit===t?e.isViewer||E.has(e.state):!1}function nO(e){return e.liveHead??e.reviewedHead}function rO(e){return(e.threads??[]).filter(e=>!e.isNit&&!e.isResolved)}function iO(e){return rO(e).length>0?!0:w(e)?!1:$D(e)?!0:!(e.githubReviews??[]).some(t=>tO(t,nO(e)))}function aO(e,t){return`${e}#${t}`}var oO=null,sO=null,cO=new Set;function lO(e){for(let t of cO)t(e)}function uO(){sO=YD(oO,Cr),lO({kind:`status`})}function dO(e){cO.add(e)}function fO(){return sO}function pO(){return eO(sO)}function mO(e){let t=s.safeParse(e);t.success?(oO=t.data,uO()):Be(`reviews`,`dropped team-review-status: ${Ie(t.error.issues)}`)}function hO(e){lO({kind:`action-result`,message:e})}function gO(e){lO({kind:`open-session-result`,message:e})}function _O(e){lO({kind:`connection`,isConnected:e})}wr(uO);var vO=1.2,yO=1.55,bO=.12,xO=523.25,SO=2,CO=8,Y=(e,t,n)=>({semitone:e,startBeat:t,beats:n}),wO={melody:[Y(7,4,.5),Y(11,4.5,.5),Y(12,5,3)],bass:[Y(-5,4,1),Y(-12,5,3)]},TO=[{melody:[Y(0,0,1),Y(4,1,1),Y(7,2,1),Y(9,3,1)],bass:[Y(-12,0,2),Y(-8,2,2)]},{melody:[Y(7,0,.67),Y(7,.67,.67),Y(7,1.33,.67),Y(9,2,1),Y(5,3,1)],bass:[Y(-12,0,2),Y(-7,2,2)]},{melody:[Y(5,0,1),Y(9,1,1),Y(7,2,1),Y(4,3,1)],bass:[Y(-7,0,2),Y(-12,2,2)]},{melody:[Y(12,0,.5),Y(7,.5,.5),Y(12,1,.5),Y(16,1.5,.5),Y(16,2,1),Y(14,3,1)],bass:[Y(-12,0,2),Y(-3,2,2)]},{melody:[Y(4,0,1),Y(7,1,1),Y(4,2,.5),Y(5,2.5,.5),Y(7,3,.5),Y(4,3.5,.5)],bass:[Y(-8,0,2),Y(-12,2,2)]}].map(e=>({melody:[...e.melody,...wO.melody],bass:[...e.bass,...wO.bass]}));function EO(e,t){return xO*2**((e+t)/12)}function DO(e,t){let n=(e,n,r)=>e.map(e=>({frequency:EO(e.semitone,t),startSeconds:yO+e.startBeat*bO,durationSeconds:e.beats*bO,waveform:n,gain:r}));return[...n(e.melody,`square`,.2),...n(e.melody,`triangle`,.5),...n(e.bass,`triangle`,.6)]}var OO=[{frequency:220,endFrequency:880,startSeconds:0,durationSeconds:.32,waveform:`triangle`,gain:.25},{frequency:160,endFrequency:45,startSeconds:vO,durationSeconds:.28,waveform:`sine`,gain:1},{frequency:1400,endFrequency:380,startSeconds:vO,durationSeconds:.06,waveform:`square`,gain:.12}];function kO(e){let t=TO[e%TO.length],n=Math.min(e*SO,CO);return{peakGain:.1,tones:[...OO,...DO(t,n)]}}function AO(e){return Math.round(Math.sqrt(2*e/780)*1e3)}function X(e,t,n=Math.random){return Math.round(e+n()*(t-e))}function jO(e,t=Math.random){let n=[...e];for(let e=n.length-1;e>0;--e){let r=Math.floor(t()*(e+1));[n[e],n[r]]=[n[r],n[e]]}return n}var MO=.6,NO=.25,PO=1.6;function FO(e){return Math.min(MO+e*NO,PO)}var IO=[`var(--accent)`,`var(--state-running)`,`var(--state-idle)`,`var(--state-waiting)`,`var(--state-failed)`];function LO(e,t=Math.random){let n=X(320,520,t),r=X(1800,2800,t);return[[`--confetti-start-x`,`${X(4,96,t)}%`],[`--confetti-x`,`${X(-140,140,t)}px`],[`--confetti-rise`,`${-X(20,55,t)}px`],[`--confetti-fall`,`${X(45,70,t)}vh`],[`--confetti-rise-ms`,`${n}ms`],[`--confetti-fall-ms`,`${r}ms`],[`--confetti-flight-ms`,`${n+r}ms`],[`--confetti-tilt`,`${X(0,180,t)}deg`],[`--confetti-spin`,`${X(-360,360,t)}deg`],[`--confetti-flutter-ms`,`${X(160,340,t)}ms`],[`--confetti-delay`,`${X(0,160,t)}ms`],[`--confetti-color`,IO[e%IO.length]]]}var RO=`<svg viewBox="0 0 36 36" aria-hidden="true"><circle class="merge-bullseye-ring-light" cx="18" cy="18" r="17"/><circle class="merge-bullseye-ring-red" cx="18" cy="18" r="13"/><circle class="merge-bullseye-ring-light" cx="18" cy="18" r="9"/><circle class="merge-bullseye-ring-red" cx="18" cy="18" r="5"/></svg>`,zO=`<svg viewBox="0 0 26 8" aria-hidden="true"><path class="merge-bullseye-dart-flight" d="M0 0L7 3V5L0 8L2 4Z"/><rect class="merge-bullseye-dart-shaft" x="6" y="3.3" width="8" height="1.4"/><rect class="merge-bullseye-dart-barrel" x="13" y="2.5" width="7" height="3" rx="1"/><path class="merge-bullseye-dart-tip" d="M20 3L26 4L20 5Z"/></svg>`;function BO(){let e=Ee(`div`,`merge-bullseye-target`,RO);return e.append(A(`span`,`merge-bullseye-ripple`)),e}function VO(){let e=A(`div`,`merge-bullseye-dart-drift`),t=A(`div`,`merge-bullseye-dart-arc`),n=A(`div`,`merge-bullseye-dart-aim`);return n.append(Ee(`div`,`merge-bullseye-dart`,zO)),t.append(n),e.append(t),e}function HO(){let e=A(`div`,`merge-bullseye-range`),t=A(`div`,`merge-bullseye-track`);return t.append(VO()),e.append(BO(),t),e}var UO={title:`BULLSEYE!`,buildScene:HO},WO=6,GO=30,KO=-14,qO=16;function JO(e=Math.random){return[[`--crosshair-start-left`,`${X(WO,GO,e)}%`],[`--crosshair-start-offset-y`,`${X(KO,qO,e)}px`]]}var YO=`<svg viewBox="0 0 26 40" aria-hidden="true"><path class="merge-headshot-target-body" d="M9 13H17L18 16Q25 18 25 24V40H1V24Q1 18 8 16Z"/><circle class="merge-headshot-target-head" cx="13" cy="7" r="6"/><circle class="merge-headshot-target-ring" cx="13" cy="7" r="3"/><circle class="merge-headshot-target-ring" cx="13" cy="27" r="6"/><circle class="merge-headshot-target-ring" cx="13" cy="27" r="2.5"/></svg>`,XO=`<svg viewBox="0 0 22 22" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="M11 0V5M11 17V22M0 11H5M17 11H22"/><circle class="merge-headshot-crosshair-dot" cx="11" cy="11" r="1"/></svg>`,ZO=`<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M3 3L8 8M21 3L16 8M3 21L8 16M21 21L16 16"/></svg>`;function QO(){let e=A(`div`,`merge-headshot-sweep`);le(e,JO());let t=A(`div`,`merge-headshot-aim`);t.append(Ee(`div`,`merge-headshot-crosshair`,XO));let n=A(`div`,`merge-headshot-bob`);return n.append(t,Ee(`div`,`merge-headshot-hitmarker`,ZO)),e.append(n),e}function $O(){let e=A(`div`,`merge-headshot-range`),t=A(`div`,`merge-headshot-track`);return t.append(QO()),e.append(Ee(`div`,`merge-headshot-target`,YO),t),e}var ek={title:`HEADSHOT!`,buildScene:$O},tk=[`10`,`J`,`Q`,`K`,`A`],nk=160,rk=19,ik=5,ak=9,ok=780,sk=70,ck=70,lk=35;function uk(e){let t=tk.length-1,n=e-t/2;return{offsetPx:n*rk,titleSpreadFraction:n/t,tiltDegrees:n*ik,bottomPx:ak-n**2,dealLeadMs:ok-e*sk,flipLeadMs:nk+(t-e)*ck,waveDelayMs:e*lk}}function dk(e){return[[`--card-offset`,`${e.offsetPx}px`],[`--card-title-spread`,String(e.titleSpreadFraction)],[`--card-tilt`,`${e.tiltDegrees}deg`],[`--card-bottom`,`${e.bottomPx}px`],[`--card-deal-lead-ms`,`${e.dealLeadMs}ms`],[`--card-flip-lead-ms`,`${e.flipLeadMs}ms`],[`--card-wave-delay-ms`,`${e.waveDelayMs}ms`]]}function fk(){return[[`--card-flip-ms`,`${nk}ms`]]}var pk=`<svg viewBox="0 0 10 9" aria-hidden="true"><path d="M5 8.5C5 8.5 0 5.3 0 2.6C0 1.1 1.2 0 2.6 0C3.6 0 4.5 .6 5 1.4C5.5 .6 6.4 0 7.4 0C8.8 0 10 1.1 10 2.6C10 5.3 5 8.5 5 8.5Z"/></svg>`;function mk(e,t){let n=A(`div`,`merge-flush-deal`);le(n,dk(uk(t)));let r=A(`div`,`merge-flush-hop`),i=A(`div`,`merge-flush-card`),a=A(`div`,`merge-flush-face`);return a.append(A(`span`,`merge-flush-rank`,e)),a.insertAdjacentHTML(`beforeend`,pk),i.append(A(`div`,`merge-flush-back`),a),r.append(i),n.append(r),n}function hk(){let e=A(`div`,`merge-flush-table`);return le(e,fk()),e.append(...tk.map(mk)),e}var gk={title:`ROYAL FLUSH!`,buildScene:hk},_k=[1,2,3,4],vk=14,yk=3,bk=3,xk=10,Sk=20,Ck=2,wk=28,Tk=18,Ek=.01,Dk=1.5,Ok=2200,kk=1,Ak=120,jk=.35,Mk=15,Nk=105,Pk=4,Fk=65,Ik=145;function Lk(e){return Math.round(e/(Math.PI*Tk)*360)}function Rk(e){return Sk-e*Ck}function zk(e){return e.rowIndex*vk+e.depthIndex*yk}function Bk(e,t,n){return Array.from({length:n},(r,i)=>e+(t-e)*i/(n-1))}function Vk(){return _k.flatMap((e,t)=>Array.from({length:e},(n,r)=>({rowIndex:t,depthIndex:e-1-r})))}function Hk(e,t){let n=jO(Bk(Mk,Nk,e),t),r=jO(Bk(Fk,Ik,e),t);return n.map((e,n)=>({angleDegrees:e+X(-4,Pk,t),depthScalePercent:Math.round(r[n])}))}function Uk(e,t,n){let r=X(240,380,n),i=t.angleDegrees*Math.PI/180,a=r*Math.cos(i),o=(r*Math.sin(i))**2/1560,s=X(15,45,n),c=AO(o),l=AO(o+s),u=c+l,d=X(540,1080,n),f=a>=0?1:-1,p=zk(e);return{depthIndex:e.depthIndex,launchAngleDegrees:t.angleDegrees,distanceFromHeadPinPx:p,layer:Rk(e.depthIndex),flyXPx:Math.round(a*u/1e3),peakRisePx:Math.round(o),landingDropPx:s,riseMs:c,fallMs:l,flightMs:u,spinDegrees:Math.round(f*d*u/1e3),glintMs:Math.round(180/d*1e3),depthScalePercent:t.depthScalePercent,delayMs:Math.round(p/jk)}}function Wk(e=Math.random){let t=Vk(),n=Hk(t.length,e);return t.map((t,r)=>Uk(t,n[r],e))}function Gk(e){return[[`--pin-left`,`${e.distanceFromHeadPinPx}px`],[`--pin-raise`,`${e.depthIndex*bk}px`],[`--pin-shade`,`${100-e.depthIndex*12}%`],[`--pin-fly-x`,`${e.flyXPx}px`],[`--pin-peak-y`,`${-e.peakRisePx}px`],[`--pin-land-y`,`${e.landingDropPx}px`],[`--pin-rise-ms`,`${e.riseMs}ms`],[`--pin-fall-ms`,`${e.fallMs}ms`],[`--pin-flight-ms`,`${e.flightMs}ms`],[`--pin-spin`,`${e.spinDegrees}deg`],[`--pin-glint-ms`,`${e.glintMs}ms`],[`--pin-depth-scale`,`${e.depthScalePercent}%`],[`--pin-depth-shade`,`${e.depthScalePercent-10}%`],[`--pin-delay`,`${e.delayMs}ms`],[`--pin-layer`,String(e.layer)]]}function Kk(){return Rk(Dk)}function qk(){return Math.max(...Vk().map(zk))+xk}function Jk(){let e=qk(),t=wk+e+Tk-kk;return[[`--ball-follow-px`,`${Ak}px`],[`--ball-follow-ms`,`${Math.round(Ak/jk)}ms`],[`--ball-follow-spin`,`${Lk(Ak)}deg`],[`--ball-size`,`${Tk}px`],[`--ball-approach-spin`,`${Ok}deg`],[`--ball-impact-inset`,`${t}px`],[`--ball-layer`,String(Kk())],[`--rack-right`,`${wk}px`],[`--rack-width`,`${e}px`],[`--pin-width`,`${xk}px`]]}function Yk(e=Math.random){return e()>=Ek?null:vt[Math.floor(e()*vt.length)].sprite}var Xk=`<svg viewBox="0 0 10 24" aria-hidden="true"><path class="merge-strike-pin-body" d="M5 0C7 0 7.6 2 7.2 4C6.9 5.6 6.3 6.6 6.4 8C6.6 10 9.6 12 9.6 16C9.6 19.5 8.4 22 7.6 24H2.4C1.6 22 .4 19.5 .4 16C.4 12 3.4 10 3.6 8C3.7 6.6 3.1 5.6 2.8 4C2.4 2 3 0 5 0Z"/><path class="merge-strike-pin-stripe" d="M3.1 5.2H6.9V6.2H3.1ZM3.4 7H6.6V8H3.4Z"/></svg>`;function Zk(e){let t=A(`span`,`merge-strike-pin`);return t.append(Ee(`span`,`merge-strike-pin-arc`,Xk)),le(t,Gk(e)),t}function Qk(){let e=Yk();if(!e)return A(`span`,`merge-strike-ball`);let t=A(`span`,`merge-strike-ball is-animal`);return t.append(A(`span`,`nyan-sprite ${e}`)),t}function $k(){let e=A(`div`,`merge-strike-lane`);le(e,Jk());let t=A(`div`,`merge-strike-rack`);t.append(...Wk().map(Zk));let n=A(`div`,`merge-strike-track`);return n.append(Qk()),e.append(t,n),e}var eA={title:`STRIKE!`,buildScene:$k},tA=20,nA=92,rA=23,iA=7,aA=-40;function oA(){let e=AO(72),t=AO(69),n=780*t/1e3;return{launchHeightPx:tA,peakHeightPx:nA,heightThroughRimPx:rA,heightLeavingNetPx:iA,heightOutOfCardPx:aA,riseMs:e,fallToRimMs:t,speedThroughRimPxPerSecond:n,netCatchMs:Math.round(32/n*1e3),dropMs:AO(47)}}function sA(e=oA()){return[[`--ball-launch-y`,`${-e.launchHeightPx}px`],[`--ball-peak-y`,`${-e.peakHeightPx}px`],[`--ball-rim-y`,`${-e.heightThroughRimPx}px`],[`--ball-net-exit-y`,`${-e.heightLeavingNetPx}px`],[`--ball-drop-out-y`,`${-e.heightOutOfCardPx}px`],[`--ball-rise-ms`,`${e.riseMs}ms`],[`--ball-fall-to-rim-ms`,`${e.fallToRimMs}ms`],[`--ball-to-rim-ms`,`${e.riseMs+e.fallToRimMs}ms`],[`--ball-net-catch-ms`,`${e.netCatchMs}ms`],[`--ball-drop-ms`,`${e.dropMs}ms`]]}var cA=`<svg viewBox="0 0 40 48" aria-hidden="true"><rect class="merge-swish-pole" x="36" y="28" width="2" height="20"/><rect class="merge-swish-backboard" x="35" y="2" width="3" height="26" rx="1"/><path class="merge-swish-rim" d="M31 18H35M7 18A12 2.5 0 0 1 31 18"/></svg>`,lA=`<svg viewBox="0 0 40 48" aria-hidden="true"><g class="merge-swish-net"><path d="M8 18L12 32M13.5 18L15.5 32M19 18V32M24.5 18L22.5 32M30 18L26 32M9.5 23Q19 25 28.5 23M11 28Q19 29.5 27 28"/></g><path class="merge-swish-rim" d="M7 18A12 2.5 0 0 0 31 18"/></svg>`;function uA(){let e=A(`div`,`merge-swish-ball-drift`),t=A(`div`,`merge-swish-ball-arc`);return t.append(A(`span`,`merge-swish-ball`)),e.append(t),e}function dA(){let e=A(`div`,`merge-swish-court`);le(e,sA());let t=A(`div`,`merge-swish-track`);return t.append(uA()),e.append(Ee(`div`,`merge-swish-hoop-back`,cA),t,Ee(`div`,`merge-swish-hoop-front`,lA)),e}var fA=[eA,{title:`SWISH!`,buildScene:dA},UO,ek,gk],pA=48,mA=5600,hA=20,gA=null,_A=[],vA=null,yA=!1,bA=0;function xA(e){let t=A(`span`,`merge-confetti-piece`),n=A(`span`,`merge-confetti-arc`);return n.append(A(`span`,`merge-confetti-paper`)),t.append(n),le(t,LO(e)),t}function SA(e){let t=A(`p`,`merge-celebration-title`);return t.setAttribute(`aria-hidden`,`true`),Array.from(e).forEach((e,n)=>{let r=A(`span`,`merge-celebration-letter`,e);r.style.setProperty(`--letter-delay`,`${n*45}ms`),t.append(r)}),t}function CA(e,t,n){let r=t.firstElementChild,i=t.lastElementChild;r instanceof HTMLElement&&i instanceof HTMLElement&&(e.style.setProperty(`--celebration-title-width`,`${i.offsetLeft+i.offsetWidth-r.offsetLeft}px`),e.style.setProperty(`--celebration-title-center-y`,`${t.offsetTop+t.offsetHeight/2-n.offsetTop}px`))}function wA(e){let t=A(`div`,`merge-celebration-scene`);return t.setAttribute(`aria-hidden`,`true`),t.append(e.buildScene()),t}function TA(){return fA[Math.floor(Math.random()*fA.length)]}function EA(e){if(St())try{vd(kO(e))}catch{}}function DA(e){let t=A(`ul`,`merge-celebration-details`);for(let n of e)t.append(A(`li`,`merge-celebration-detail`,n));return t}function OA(e,t,n){gA?.remove(),EA(n);let r=A(`div`,`merge-celebration`);r.setAttribute(`role`,`status`);let i=A(`div`,`merge-celebration-card`),a=A(`div`,`merge-celebration-stage`),o=SA(t.title),s=wA(t);a.append(o,A(`p`,`merge-celebration-message`,e.message),DA(e.detailLines),s);let c=A(`div`,`merge-confetti`);c.style.setProperty(`--confetti-scale`,String(FO(n)));for(let e=0;e<pA;e+=1)c.append(xA(e));i.append(c,a),r.append(i),document.body.append(r),CA(a,o,s),gA=r,window.setTimeout(()=>{r.remove(),gA===r&&(gA=null)},mA)}function kA(e){return yA?`playing`:e?`queued`:`empty`}function AA(){if(!vA)return;let e=_A.length>0;vA.tray.dataset.state=kA(e),vA.count.textContent=e?String(_A.length):``,vA.button.disabled=yA||!e}function jA(){let e=_A.shift();yA=e!==void 0,AA(),e&&(OA(e.text,e.scene,bA),bA+=1,window.setTimeout(jA,mA))}function MA(e,t,n){vA={tray:e,button:t,count:n},t.addEventListener(`click`,()=>{bA=0,jA()}),AA()}function NA(e,t=TA()){_A.push({text:e,scene:t}),_A.length>hA&&_A.shift(),AA()}var PA=null,FA=null,IA=new Set,LA=new Map,RA=!1,zA=new Set;function BA(e){for(let t of zA)t(e)}function VA(){return[...LA].flatMap(([e,t])=>{let n=F.get(e);return!n||t.length===0?[]:[{id:e,title:ct(n)||e,links:t}]})}function HA(){let e=WD(PA?.prs??[],Cr),t=KD(FA,e);FA=e,KA(t),BA({kind:`prs`})}function UA(){RA||(RA=!0,queueMicrotask(()=>{RA=!1,HA()}))}function WA(e){zA.add(e)}function GA(){return{prs:WD(PA?.prs??[],Cr),status:PA,sessionsByPrKey:GD(VA())}}function KA(e){let t=e.filter(e=>!IA.has(e.key));if(t.length!==0){for(let e of t)IA.add(e.key);NA(JD(t))}}function qA(e){LA=e,UA()}function JA(){BA({kind:`session-state`})}function YA(e){let t=p.safeParse(e);t.success?(PA=t.data,HA()):Be(`reviews`,`dropped my-prs-status: ${Ie(t.error.issues)}`)}function XA(e){BA({kind:`merge-result`,message:e})}function ZA(e){BA({kind:`connection`,isConnected:e})}wr(UA);var QA=[{id:`all`,label:`All`},{id:`reviewing`,label:`Reviewing`},{id:`mine`,label:`Mine`}],$A={turn:`Your turn`,working:`Agent working`,waiting:`Waiting on others`,aside:`Set aside`},ej=[`turn`,`working`,`waiting`,`aside`],tj={conflicts:`turn`,behind:`turn`,"checks-failing":`turn`,"changes-requested":`turn`,"unresolved-threads":`turn`,ready:`turn`,"checks-pending":`waiting`,"needs-approval":`waiting`,unknown:`waiting`,draft:`aside`,merged:`aside`},nj={directAsk:0,followUp:1,mineNeedsYou:2,teamReady:3,mineReady:4,failedReview:5,staleReview:6};function rj(e,t){return{source:`team`,key:`team:${e.key}`,prKey:Oe(e),kind:t,review:e}}function ij(e){return e.status===`ready`?XD(e).band===`blocking-others`?nj.directAsk:nj.teamReady:nj.followUp}function aj(e){return[...e.ready.map(e=>({item:rj(e,`ready`),group:`turn`,turnRank:ij(e)})),...e.attention.map(e=>({item:rj(e,`attention`),group:`turn`,turnRank:e.status===`error`?nj.failedReview:nj.staleReview})),...e.inReview.map(e=>({item:rj(e,`inReview`),group:`working`,turnRank:0})),...e.queued.map(e=>({item:rj(e,`queued`),group:`working`,turnRank:0})),...e.noReviewNeeded.map(e=>({item:rj(e,`settled`),group:`waiting`,turnRank:0})),...e.posted.map(e=>({item:rj(e,`posted`),group:`waiting`,turnRank:0})),...e.discarded.map(e=>({item:rj(e,`discarded`),group:`aside`,turnRank:0}))]}function oj(e,t){let n=tj[e.stage];return n===`turn`&&e.stage!==`ready`&&t.has(Oe(e))?`working`:n}function sj(e,t){return BD(e).flatMap(e=>e.rows).map(({pr:e,parentKey:n})=>({item:{source:`mine`,key:`mine:${e.key}`,prKey:Oe(e),pr:e,stackedOn:n},group:oj(e,t),turnRank:e.stage===`ready`?nj.mineReady:nj.mineNeedsYou}))}function cj(e,t,n){let r=[...aj(e),...sj(t,n)];return ej.map(e=>{let t=r.filter(t=>t.group===e),n=e===`turn`?t.toSorted((e,t)=>e.turnRank-t.turnRank):t;return{id:e,title:$A[e],items:n.map(e=>e.item)}})}function lj(e,t){if(t===`all`)return[...e];let n=t===`reviewing`?`team`:`mine`;return e.map(e=>({...e,items:e.items.filter(e=>e.source===n)}))}function uj(e){return e.find(e=>e.id===`turn`)?.items??[]}function dj(e,t){return t?e.flatMap(e=>e.items).find(e=>e.key===t)??null:null}function fj(e,t){return dj(e,t)?t:e.flatMap(e=>e.items)[0]?.key??null}function pj(e){return e.source===`mine`?aO(e.pr.repo,e.pr.number):aO(e.review.repo,e.review.number)}function mj(e){return e.source===`team`?e.kind===`attention`&&`status`in e.review&&e.review.status===`error`?`failed`:`waiting`:e.pr.stage===`ready`?`finished`:e.pr.stage===`checks-failing`||e.pr.stage===`conflicts`?`failed`:`waiting`}function hj(e){return uj(e).map(e=>({id:e.key,kind:mj(e),name:pj(e)}))}function gj(e){return{waitingCount:e.filter(e=>e.kind===`waiting`).length,finishedCount:e.filter(e=>e.kind===`finished`).length,failedCount:e.filter(e=>e.kind===`failed`).length}}function _j(e,t){return hj(e).filter(e=>e.id!==t)}function vj({capturedOrder:e,actedKey:t,groups:n}){let r=uj(n).map(e=>e.key).filter(e=>e!==t),i=new Set(r);return e.slice(e.indexOf(t)+1).find(e=>i.has(e))??e.find(e=>i.has(e))??r[0]??null}function yj(e,t){let n=uj(e).map(e=>e.key),r=t?n.indexOf(t):-1;return r===-1?``:`${r+1} of ${n.length} in Your turn`}function bj(e){return e.source===`mine`?`${e.key}@${e.pr.stage}`:`reviewedHead`in e.review?`${e.review.key}@${e.review.reviewedHead}`:`${e.review.key}@${e.kind}`}function xj(e){return uj(e).map(bj)}function Sj({turnEntries:e,acknowledged:t,unseen:n,isLooking:r}){let i=new Set(e),a=new Set(t.split(`|`).filter(e=>i.has(e))),o=new Set(n.split(`|`).filter(e=>i.has(e))),s=[...i].filter(e=>!a.has(e));if(r)return{isShown:!1,acknowledged:Se([...i]),unseen:Se([...o])};for(let e of s)o.add(e);return{isShown:s.length>0,acknowledged:Se([...a]),unseen:Se([...o])}}function Cj(e){let t=e.find(e=>e.id===`working`)?.items.length??0;return t===0?`Nothing needs you right now.`:`Nothing needs you right now. ${t} ${t===1?`pull request is`:`pull requests are`} with an agent.`}function wj(e){return new Set(e.flatMap(e=>e.items).map(e=>(e.source===`mine`?e.pr.repo:e.review.repo).toLowerCase())).size>1}function Tj(e){let t=e.filter(e=>e?.configured===!0);if(t.length===0)return e.find(e=>e!==null)??null;let n=t.toSorted((e,t)=>(e.lastRefreshedAt??e.lastSyncAt??0)-(t.lastRefreshedAt??t.lastSyncAt??0));return{...t.find(e=>e.error)??n[0],isRefreshing:t.some(e=>e.isRefreshing)}}var Ej=new Map([[`j`,`next-row`],[`k`,`previous-row`],[`n`,`next-finding`],[`p`,`previous-finding`],[`x`,`toggle-finding`],[`o`,`open-session`],[`a`,`pick-approve`],[`r`,`pick-request-changes`],[`c`,`pick-comment`]]);function Dj(e){return e.key===`Enter`&&e.metaKey!==e.ctrlKey&&!e.altKey&&!e.shiftKey?`post`:e.metaKey||e.ctrlKey||e.altKey||e.shiftKey?null:e.key===`Escape`?`cancel`:Ej.get(e.key)??null}function Oj(e,t,n){if(e.length===0)return null;let r=t===null?-1:e.indexOf(t);return r===-1?n===1?e[0]:e[e.length-1]:e[Math.min(e.length-1,Math.max(0,r+n))]}var kj=[],Aj=null,jj=null,Mj=null,Nj=!1,Pj=null,Fj=Nt(),Ij=nn(),Lj=new Set(Ij.split(`|`).filter(Boolean)),Rj=new Set,zj=new Set;function Bj(e){for(let t of zj)t(e)}function Vj(e){e!==Fj&&(Fj=e,wt(e))}function Hj(e){e!==Ij&&(Ij=e,Lj=new Set(e.split(`|`).filter(Boolean)),gt(e))}function Uj(){return fO()!==null&&GA().status!==null}function Wj(){if(!Uj())return;let e=Sj({turnEntries:xj(kj),acknowledged:Fj,unseen:Ij,isLooking:jj?.isLooking()??!1});Vj(e.acknowledged),Hj(e.unseen),Pj?.(e.isShown)}function Gj(e){Mj=e,Bj({kind:`reveal`})}function Kj(e){zj.add(e)}function qj(e){jj=e,Wj()}function Jj(){let{prs:e,sessionsByPrKey:t}=GA();return kj=cj(pO(),e,new Set(t.keys())),Wj(),kj}function Yj(){Uj()&&(Vj(Se(xj(kj))),Wj())}function Xj(e){Pj=e,Wj()}function Zj(){return Ij}function Qj(e){return Lj.has(e)}function $j(e){return Lj.has(e)?(Hj(Se([...Lj].filter(t=>t!==e))),!0):!1}function eM(e){Aj=e}function tM(){return Aj}function nM(){let e=Mj;return Mj=null,e}function rM(e){if(e!==Nj){Nj=e;for(let e of Rj)e()}}function iM(e){Rj.add(e)}function aM(){return document.documentElement.dataset.layout===`phone`&&Nj}function oM(){aM()&&Bj({kind:`return-to-queue`})}function sM(){let e=_j(kj,jj?.selectedKey()??null)[0]?.id??null;return e?(Gj(e),!0):!1}function cM(e){let t=kj.flatMap(e=>e.items).find(t=>t.prKey===e.toLowerCase());return!t||!Aj?.openReviews()?!1:(Gj(t.key),Yj(),!0)}dO(e=>{e.kind===`status`&&Jj()}),WA(e=>{e.kind===`prs`&&Jj()});var lM={OPEN:0,MERGED:1,CLOSED:2};function uM(e){return e?lM[e.state]:lM.OPEN}function dM(e,t){let n=`${e.repo}#${e.number}`,r=`#${e.number}`;if(!t)return{key:n,text:r,url:e.url,hoverText:e.repo,look:null,tier:oc(void 0)};let i=HD(t.stage);return{key:n,text:r,url:t.url,hoverText:`${e.repo}: ${t.title} (${VD(t.stage)})`,look:{icon:UD(t.stage),tone:i},tier:oc(i)}}function fM(e,t){let n=e.map(e=>{let n=t(Oe(e));return{link:e,pr:n?jD(n):void 0}});return n.sort((e,t)=>uM(e.pr)-uM(t.pr)||t.link.linkedAt-e.link.linkedAt),n.map(({link:e,pr:t})=>dM(e,t))}var pM=new Map;function mM(e){return document.querySelectorAll(`[data-pr-chips-for="${CSS.escape(e)}"]`)}function hM(e){return fM(pM.get(e)??[],Cr).map(e=>({...e,className:`session-pr-chip`,linkUrl:e.url,ariaLabel:`Show pull request ${e.key} in Reviews`,hoverText:`${e.hoverText}. Show in Reviews; Cmd/Ctrl-click opens GitHub`,onActivate:()=>{cM(e.key)||Fc(e.url)}}))}function gM(e,t){let n=$c(e,e),r=A(`button`,`session-pr-chip-unlink`);r.append(mn(bn)),r.type=`button`,r.title=`Unlink ${e.key} from this session`,r.setAttribute(`aria-label`,`Unlink pull request ${e.key}`),r.addEventListener(`click`,n=>{n.stopPropagation(),n.preventDefault(),hr({title:`Unlink pull request`,message:`Unlink ${e.key} from this session? Its checks and reviews stop showing here until you link it again.`,confirmLabel:`Unlink`,danger:!0,onConfirm:()=>{Ei(t,{type:`unlink-session-pr`,id:t,key:e.key})}})});let i=A(`span`,`session-pr-chip-item`);return i.append(n,r),i}function _M(e,t){e.dataset.prChipsFor=t,il(e,hM(t),e=>gM(e,t))}function vM(e){for(let t of e){let e=t.dataset.prChipsFor;e&&_M(t,e)}dl()}function yM(e,t){let n=d.shape.links.safeParse(t??[]);pM.set(e,n.success?n.data:[]),vM(mM(e)),qA(pM)}function bM(e){pM.delete(e),qA(pM)}wr(()=>vM(document.querySelectorAll(`[data-pr-chips-for]`)));var xM=null,SM=new Set;function CM(){xM?.setAttribute(`aria-pressed`,String(!St()))}function wM(e){yt(e),CM();for(let t of SM)t(e)}function TM(e){SM.add(e)}function EM(e){xM=e,CM(),e.addEventListener(`click`,()=>wM(!St()))}var DM={mine:`Mining merged pull requests.`,run:`Starting the run.`,cancel:`Cancelling the run.`},OM=null,kM=null,AM=!0,jM=new Map,MM=new Map,NM=new Set;function PM(){for(let e of NM)e()}function FM(e){NM.add(e)}function IM(){return{status:OM,isServerConnected:AM,pendingActionBySuite:jM,outcomeBySuite:MM}}function LM(e){kM=e}function RM(e,t){kM?.({type:`benchmark-action`,requestId:Xe(`benchmark`),suiteId:e,action:t})===!0?(jM.set(e,t),MM.set(e,DM[t]),PM()):(MM.set(e,l),PM())}function zM(e){if(AM=e,!e){for(let e of jM.keys())MM.delete(e);jM.clear()}PM()}function BM(e){OM=e,PM()}function VM(e){jM.delete(e.suiteId);let t=OM?.suites.find(t=>t.id===e.suiteId)?.candidateCount??0,n={mine:`Mining finished. ${t} candidate${t===1?``:`s`} awaiting approval in the candidates folder.`,run:`Run ${e.runId??``} started.`,cancel:`Run cancelled.`};MM.set(e.suiteId,e.ok?n[e.action]:e.error||`The server refused the action.`),PM()}var HM=45e3,UM=`The server did not answer within ${HM/1e3} s.`,WM=`Select the issue to load its description.`,GM=null,KM=null,qM=new Map,JM=null,YM=new Map,XM=new Map,ZM=new Map,QM=new Map,$M=new Map,eN=new Set;function tN(e){for(let t of eN)t(e)}function nN(e){return`${e.key}:${e.updatedAt}`}function rN(e){let t=YM.get(e);t&&(YM.delete(e),XM.set(t.issueKey,{text:UM,tone:`error`}),tN(`detail`))}function iN(e){let t=YM.get(e);return t?(clearTimeout(t.timeoutHandle),YM.delete(e),t):null}function aN(){return{latestStatus:KM,issueByKey:qM,selectedKey:GM}}function oN(e){eN.add(e)}function sN(e){GM=e}function cN(e){return[...YM.values()].some(t=>t.issueKey===e.key)}function lN(e){return XM.get(e.key)}function uN(e){let t=nN(e),n=QM.get(t);return n===``?`No description.`:n??$M.get(t)??`Loading description.`}function dN(e){let t=nN(e);if(QM.has(t)||[...ZM.values()].some(e=>e.cacheKey===t))return;let n=Xe(`issue-detail`);$M.delete(t),JM?.({type:`issue-detail`,requestId:n,repo:e.repo,issueNumber:e.number})?ZM.set(n,{cacheKey:t,timeoutHandle:setTimeout(()=>{ZM.delete(n),$M.set(t,`${UM} ${WM}`),tN(`detail`)},HM)}):$M.set(t,`${l} ${WM}`)}function fN(e){let t=e.projectId;if(!t||cN(e))return;let n=Xe(`open-issue-session`);JM?.({type:`open-issue-session`,requestId:n,projectId:t,repo:e.repo,issueNumber:e.number})?(YM.set(n,{issueKey:e.key,issueNumber:e.number,timeoutHandle:setTimeout(()=>rN(n),HM)}),XM.set(e.key,{text:`Opening session.`,tone:`busy`}),tN(`detail`)):(XM.set(e.key,{text:l,tone:`error`}),tN(`detail`))}function pN(e){JM?.({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`issues`,action:e}})}function mN(e){JM=e}function hN(){tN(`session-state`)}function gN(e){if(!e){for(let e of YM.values())clearTimeout(e.timeoutHandle),XM.set(e.issueKey,{text:l,tone:`error`});YM.clear();for(let e of ZM.values())clearTimeout(e.timeoutHandle),$M.set(e.cacheKey,`${l} ${WM}`);ZM.clear(),tN(`status`)}}function _N(e){let t=KM?.issues.find(e=>e.key===GM);KM=e,qM=new Map(e.issues.map(e=>[e.key,e]));let n=e.issues.find(e=>e.key===GM);n&&n.updatedAt!==t?.updatedAt&&dN(n),tN(`status`)}function vN(e){let t=ZM.get(e.requestId);t&&(clearTimeout(t.timeoutHandle),ZM.delete(e.requestId),e.ok&&e.body!==null&&QM.set(t.cacheKey,e.body),(!e.ok||e.body===null)&&$M.set(t.cacheKey,e.error||`Could not load description. Select the issue to try again.`),tN(`detail`))}function yN(e){if(typeof e.requestId!=`string`)return;let t=iN(e.requestId);if(!t)return;let n=t.issueKey;if(e.ok===!0){let r=typeof e.sessionName==`string`?e.sessionName:`issue #${t.issueNumber}`,i=e.pending===!0?` Prompt queued.`:``,a=e.existing===!0?`already open`:`created`;XM.set(n,{text:`Session "${r}" ${a}.${i}`,tone:`ok`});let o=KM?.issues.find(e=>e.key===n);o&&typeof e.sessionId==`string`&&(o.sessionId=e.sessionId),tN(`status`);return}let r=typeof e.error==`string`&&e.error?e.error:`Could not open session.`;XM.set(n,{text:r,tone:`error`}),tN(`detail`)}var bN=null,xN=null,SN=null,CN=()=>!1,wN=new Set,TN=new Set,EN=_e({getAck:Ft,setAck:Qt,signature:()=>o({posthog:bN}),isLooking:()=>CN()});function DN(e){for(let t of TN)t(e)}function ON(){xN?.(EN.refresh())}function kN(){return{latest:bN,archivedLocally:wN,traceOpener:SN}}function AN(e){TN.add(e)}function jN(e){CN=e,ON()}function MN(e){wN.add(e)}function NN(){EN.acknowledge(),ON()}function PN(e){xN=e,ON()}function FN(e){SN=e}function IN(e){bN=e,Te(bN,wN),DN({kind:`status`}),ON()}function LN(e){let t=Fe(bN,e.projectId,e.issueId)?.inFlight===!0;x(bN,e)&&DN({kind:`investigation-activity`,projectId:e.projectId,issueId:e.issueId,wasInFlight:t})}function RN(e){let t=te(bN,e);DN({kind:`investigation-finished`,frame:e,isPatched:t}),t&&ON()}var zN=nc({requestPrefix:`session-setup`,dialogClass:`dialog coherence-journal-drawer session-setup-dialog`,titleText:`Session setup`,unavailableLabel:`Session setup unavailable`,timeoutMs:15e3});function BN(e){let t=A(`ul`,`session-setup-list`);return t.append(...e.map(e=>A(`li`,null,e))),t}function VN(e,t){e.replaceChildren();function n(t,n){if(n.length===0)return;let r=Ce(`session-setup`,t);r.append(...n),e.append(r)}n(`Model`,t.model?[A(`p`,null,t.model)]:[]),n(`Plugins`,t.plugins.map(e=>{let t=A(`div`,`session-setup-plugin`);return t.append(A(`h3`,null,e.name)),e.skills.length>0&&t.append(A(`p`,`session-setup-label`,`Skills`),BN(e.skills)),e.agents.length>0&&t.append(A(`p`,`session-setup-label`,`Agents`),BN(e.agents)),t})),n(`MCP servers`,t.mcpServers.length>0?[BN(t.mcpServers)]:[]),n(`Hooks`,[...t.hookEvents.map(e=>{let t=A(`p`,`session-setup-hook`);return t.append(A(`span`,null,e.event),A(`span`,`session-setup-label`,`${e.runCount} runs`)),t}),...t.hookCommands.map(e=>A(`pre`,`coherence-command`,e))]),n(`Skills`,t.skills.length>0?[BN(t.skills)]:[]),n(`Agents`,t.agents.length>0?[BN(t.agents)]:[])}function HN(e){let t=A(`p`,`coherence-journal-status`,`Loading session setup`);t.setAttribute(`role`,`status`);let n=A(`div`,`session-setup-sections`);zN.open({sessionId:e,status:t,body:[t,n],parts:{sections:n},buildRequest:t=>({type:`session-setup`,id:e,requestId:t})})}function UN(e){let t=zN.settleResponse(e);if(!t)return;if(!e.ok||!e.setup){t.status.textContent=e.error||`Could not read session setup`;return}let n=t.parts.sections;VN(n,e.setup),t.status.textContent=n.childElementCount>0?``:`No session setup recorded yet`,t.status.hidden=n.childElementCount>0}function WN(e){return{skipPerms:e.skipPerms??e.dangerouslySkipPermissions??!1,saneYolo:e.saneYolo===!0,worktree:e.worktree??e.isWorktree??!1,workspace:e.workspace??e.isWorkspace??!1,remoteWorkspace:e.remoteWorkspace??null,guarded:e.guarded??e.isGuarded??!1,guardrailsReleased:e.guardrailsReleased??e.isGuardrailsReleased??!1,ephemeral:e.ephemeral===!0,ownerId:e.ownerId??null,path:e.path,stateSince:e.stateSince,taskTitle:typeof e.taskTitle==`string`?e.taskTitle:null,taskTitleIsCustom:e.taskTitleIsCustom===!0}}var GN={isVisible:document.visibilityState===`visible`,isFrozen:!1,isProbing:!1,isReplacing:!1},KN=document.visibilityState===`visible`?null:Date.now(),qN=null,JN=null;function YN(){qN!==null&&window.clearTimeout(qN),qN=null}function XN(e){YN();let t=Date.now()+e;qN=window.setTimeout(()=>{qN=null,$N({kind:`heartbeat-due`,lateByMs:Date.now()-t})},e)}function ZN(){JN!==null&&window.clearTimeout(JN),JN=null}function QN(e){switch(e.kind){case`probe-control`:Je(e.deadlineMs,e.isAnnounced).then(e=>{$N({kind:e?`pong`:`pong-missed`})});return;case`replace-control`:Ze();return;case`close-sockets`:ZN(),Qe(),dh();return;case`reconnect-shown-terminals`:lh();return;case`hold-input`:oh();return;case`release-input`:sh();return;case`schedule-heartbeat`:XN(e.inMs);return;case`cancel-heartbeat`:YN();return}}function $N(e){let t=Le(GN,e);GN=t.state;for(let e of t.actions)QN(e)}function eP(){if(document.visibilityState!==`visible`){KN=Date.now(),$N({kind:`hidden`});return}let e=KN===null?0:Date.now()-KN;KN=null,nd(`shown`,e),$N({kind:`shown`,hiddenForMs:e})}function tP(e){ZN(),ed(`control-${e}`),e===`connecting`?JN=window.setTimeout(()=>{JN=null,$N({kind:`handshake-overdue`})},Ue):$N({kind:e===`opened`?`control-opened`:`control-closed`})}function nP(){nd(`resumed`,KN===null?0:Date.now()-KN),$N({kind:`resumed`})}function rP(){let e=Reflect.get(navigator,`connection`);e instanceof EventTarget&&e.addEventListener(`change`,()=>{td(`link`),$N({kind:`network-changed`})})}function iP(){Re(tP),document.addEventListener(`visibilitychange`,eP),document.addEventListener(`freeze`,()=>$N({kind:`frozen`})),document.addEventListener(`resume`,nP),window.addEventListener(`pagehide`,e=>{e.persisted&&$N({kind:`frozen`})}),window.addEventListener(`pageshow`,e=>{e.persisted&&nP()}),window.addEventListener(`online`,()=>{td(`online`),$N({kind:`network-changed`})}),window.addEventListener(`offline`,()=>td(`offline`)),rP()}var aP={},oP=null,sP=null,cP=re,lP=null,uP=!1,dP=null,fP=[],pP=null,mP=()=>null,hP=()=>{},gP=new Set,_P=new Set;function vP(e){for(let t of _P)t(e)}function yP(e){_P.add(e)}function bP(){return aP}function xP(e){return aP={...aP,...e},aP}function SP(){return{status:oP,journal:sP,request:cP,lastAutoCheckAt:lP,isCheckInFlight:uP,checkSendFailure:dP}}function CP(e){let t=T(cP,e);t!==cP&&(cP=t,vP({kind:`update`,frame:`request`}))}function wP(){CP(j({type:`update-apply`})?`request-sent`:`request-unsent`)}function TP(){lP=Date.now();let e=j({type:`update-check`});uP=e,dP=e?null:l,vP({kind:`update`,frame:`request`})}function EP(e){hP=e}function DP(){hP()}function OP(e){fP=[...e]}function kP(){return fP}function AP(e=null,t=null,n=null){let r=pP!==null&&(pP.sectionId!==null||pP.isLink);e===null&&n===null&&r||(pP={sectionId:e,settingId:t,hashAtRequest:n??location.hash,isLink:n!==null},vP({kind:`activate`}))}function jP(){let e=pP;return pP=null,e}function MP(e){mP=e}function NP(){for(let e of gP)e()}function PP(e){gP.add(e)}function FP(){return Ji()&&mP()===`section`}function IP(){FP()&&vP({kind:`return-to-list`})}function LP(e){e&&(aP=e,ni(aP.agentLogins),vP({kind:`broadcast`}))}function RP(){vP({kind:`status`})}function zP(e){RP()}function BP(e){oP=e,uP=!1,dP=null,cP=T(cP,`status-frame`),vP({kind:`update`,frame:`status`})}function VP(e){sP=e,cP=T(cP,`progress-frame`),vP({kind:`update`,frame:`progress`})}function HP(e){if(e.scope!==`update`)return!1;let t=C(e.message),n=cP.requested;return cP=T(cP,`error-frame`,t),uP=!1,n||(dP=t),vP({kind:`update`,frame:`error`}),!0}function UP(e,t){return typeof t!=`string`||t===``?{knownBuild:e,reload:!1}:e==null?{knownBuild:t,reload:!1}:e===t?{knownBuild:e,reload:!1}:{knownBuild:t,reload:!0}}var WP=200;function GP(e,t=null){return`#settings/${encodeURIComponent(e)}${t?`/${encodeURIComponent(t)}`:``}`}function KP(e){return/^#settings(?:[/?]|$)/.test(e)}function qP(e){let t=e.trim();return t?`#settings?q=${encodeURIComponent(t)}`:`#settings`}function JP(e){let t=/^#settings(?:\?(.*))?$/.exec(String(e??``));if(!t)return null;let n=new URLSearchParams(t[1]??``).get(`q`)??``;return{query:Array.from(n.trim()).slice(0,WP).join(``).trim()}}function YP(e,t,n){let r=A(`a`,`settings-link`,n);return r.href=GP(e,t),r}var Z=null,XP=null,ZP=null,QP=null,$P=null,eF=null,tF=-1,nF=null,rF={isRightToLeft:!1,arcProgress:0},iF=1,aF=3;function oF(){if(!Z||nF===null)return;let e=Jr({viewportWidthPx:document.documentElement.clientWidth,viewportHeightPx:document.documentElement.clientHeight,verticalProgress:nF,...rF});le(Z,Xr(e,iF,window.devicePixelRatio))}function sF(){eF!==null&&(clearTimeout(eF),eF=null)}function cF(e=dn()){return Ct({isEnabled:e,hasReducedMotion:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,isPhone:Ji(),options:Ht()})}function lF(e){e.onanimationend=null,e.style.animation=`none`,QP&&(QP.style.animation=`none`),e.hidden=!0}function uF(e,t){if(!Z||!XP||!ZP||!QP||cF())return;let n=Ht();sF();let r=cn(n,tF,Math.random,t);if(lF(Z),!r){eF=setTimeout(()=>uF(!1),1e3);return}nF=r.verticalProgress,rF={isRightToLeft:r.isRightToLeft,arcProgress:r.arcProgress},iF=n.flyingAnimalsScale,oF();let i=vt[r.animalIndex];XP.className=`nyan-sprite ${i.sprite}`,ZP.className=`nyan-trail ${i.trail}`,tF=r.animalIndex,$P?.classList.remove(`is-booped`),Z.hidden=!1,Z.offsetWidth,Z.style.animation=`nyan-fly ${r.durationSeconds}s linear`,QP.style.animation=`nyan-trail-hold ${r.durationSeconds}s linear`,e&&(Z.style.animationDelay=`-${r.firstDelaySeconds}s`,QP.style.animationDelay=`-${r.firstDelaySeconds}s`),Z.onanimationend=e=>{Z&&e.target===Z&&(lF(Z),eF=setTimeout(()=>uF(!1),r.gapMs))}}function dF(){$P&&($P.classList.remove(`is-booped`),$P.offsetWidth,$P.classList.add(`is-booped`))}function fF(e){if(Z&&QP&&e.target===$P)for(let e of[...Z.getAnimations(),...QP.getAnimations()])e.playbackRate=aF}function pF(){if(Z||cF())return;Z=document.createElement(`div`),Z.className=`nyan-flight`,Z.setAttribute(`aria-hidden`,`true`);let e=document.createElement(`div`);e.className=`nyan-trail-window`,QP=document.createElement(`div`),QP.className=`nyan-trail-hold`,ZP=document.createElement(`div`),QP.append(ZP),e.append(QP),XP=document.createElement(`div`),$P=document.createElement(`div`),$P.className=`nyan-boop`,$P.append(XP),$P.addEventListener(`pointerdown`,dF),$P.addEventListener(`animationend`,fF),Z.append(e,$P),document.body.appendChild(Z),window.addEventListener(`resize`,oF),window.addEventListener(`orientationchange`,oF),uF(!0)}function mF(e){pF(),uF(!1,e)}function hF(){sF(),window.removeEventListener(`resize`,oF),window.removeEventListener(`orientationchange`,oF),Z?.remove(),Z=null,XP=null,ZP=null,QP=null,$P=null,tF=-1,nF=null}var gF=!1;function _F(e){let t=document.documentElement;if(gF||(gF=!0,Yi(()=>_F(dn())),window.matchMedia(`(prefers-reduced-motion: reduce)`).addEventListener(`change`,()=>_F(dn()))),e){if(t.dataset.flyingAnimals=`true`,cF(e)){hF();return}pF()}else delete t.dataset.flyingAnimals,hF()}var vF=`•`.repeat(8),yF=`[^/\\\\\\s"'\`<>:]+`,bF=RegExp(`(?<![\\w./\\\\-])(?:/home/${yF}|/Users/${yF}|[A-Za-z]:[\\\\/]Users[\\\\/]${yF}|/root(?![\\w.-]))`,`g`);function xF(e){let t=Uf(e);if(t.length===0)return e;let n=``,r=0;for(let i of t)n+=e.slice(r,i.start)+vF,r=i.end;return n+e.slice(r)}function SF(e){return e.replace(bF,`~`)}function CF(e){return SF(xF(e))}var wF=`.xterm, input, textarea, script, style, [contenteditable]:not([contenteditable="false"])`,TF=[`title`,`label`],EF=new WeakMap,DF=new WeakMap,OF=null;function kF(e){let t=e instanceof Element?e:e.parentElement;return!t||t.closest(wF)!==null}function AF(e){let t=e.parentElement?.closest(`option`);return t!=null&&!t.hasAttribute(`value`)}function jF(e,t){if(t&&e===t.masked)return t;let n=CF(e);return n===e?null:{original:e,masked:n}}function MF(e){let t=AF(e)?null:jF(e.data,EF.get(e));t?(EF.set(e,t),e.data!==t.masked&&(e.data=t.masked)):EF.delete(e)}function NF(e,t){let n=e.getAttribute(t),r=DF.get(e),i=n===null?null:jF(n,r?.get(t));if(!i){r?.delete(t);return}let a=r??new Map;a.set(t,i),DF.set(e,a),n!==i.masked&&e.setAttribute(t,i.masked)}function PF(e){for(let t of TF)NF(e,t)}function FF(e){return e instanceof Element&&e.matches(wF)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}function IF(e){PF(e);let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,FF);for(let e=t.nextNode();e;e=t.nextNode())e instanceof Text&&MF(e),e instanceof Element&&PF(e)}function LF(e){kF(e)||(e instanceof Text&&MF(e),e instanceof Element&&IF(e))}function RF(e){e instanceof Element&&!kF(e)&&PF(e)}function zF(e){let t=new Set,n=new Set;for(let r of e){if(r.type===`childList`)for(let e of r.addedNodes)t.add(e);r.type===`characterData`&&t.add(r.target),r.type===`attributes`&&n.add(r.target)}for(let e of t)e.isConnected&&LF(e);for(let e of n)e.isConnected&&RF(e)}function BF(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);VF(e);for(let e=t.nextNode();e;e=t.nextNode())VF(e)}function VF(e){if(e instanceof Text){let t=EF.get(e);t&&e.data===t.masked&&(e.data=t.original);return}if(!(e instanceof Element))return;let t=DF.get(e);if(t)for(let[n,r]of t)e.getAttribute(n)===r.masked&&e.setAttribute(n,r.original)}function HF(){if(OF)return;let e=new MutationObserver(t=>{zF(t),e.takeRecords()});IF(document.body),e.observe(document.body,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:TF}),OF=e}function UF(){OF&&(OF.disconnect(),OF=null,BF(document.body),EF=new WeakMap,DF=new WeakMap)}function WF(e){e?HF():UF()}function GF(){WF(es()),ns(WF)}function KF(e){if(typeof e!=`object`||!e||!(`telemetry`in e))return!1;let{telemetry:t}=e;return typeof t!=`object`||!t||!(`enabled`in t)?!1:t.enabled===!0}function qF(e){return typeof e!=`object`||!e||!(`telemetryForcedOff`in e)?!1:e.telemetryForcedOff===!0}function JF(e,t){return t||qF(e)?!1:KF(e)}var YF=2500;function XF({hasSnapshot:e,connectingTerminalCount:t,msSinceConnected:n}){return n<2500&&(!e||t>0)?`wait`:`reveal`}var ZF=2e4,QF=null,$F=null,eI={claude:null,codex:null},tI=null,nI=null,rI=null,iI=`all`,aI=!1,oI=null,sI=null,cI=!0,lI=()=>!1,uI=new Set,dI=_e({getAck:Dt,setAck:$t,signature:()=>jb(QF,eI.claude),isLooking:()=>lI()});function fI(e){for(let t of uI)t(e)}function pI(){tI?.(dI.refresh())}function mI(e){aI=e,fI(`refresh-status`),oI&&=(clearTimeout(oI),null),e&&(oI=setTimeout(()=>{oI=null,aI=!1,sI=`Usage did not answer within ${Math.round(ZF/1e3)} s. Refresh to try again.`,fI(`refresh-status`)},ZF))}function hI(e){let t=mb.find(t=>t.value===e);return t?t.days:null}function gI(){return{report:QF,sessions:$F,planLimitsByVendor:eI,rangeValue:iI}}function _I(){let e=!cI||!aI&&sI!==null;return cI?aI?{text:`Refreshing`,isPending:!0,hasFailure:e}:{text:sI??``,isPending:!1,hasFailure:e}:{text:QF?`${l} The figures below are from before the connection dropped.`:l,isPending:aI,hasFailure:e}}function vI(e){uI.add(e)}function yI(e){lI=e,pI()}function bI(){dI.acknowledge(),pI()}function xI(e){tI=e,pI()}function SI(e){nI?.({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`usage`,action:e}})}function CI(e){nI=e}function wI(e){iI=e}function TI({force:e=!1}={}){if(!nI)return;rI=Xe(`usage`);let t={type:`request-usage-report`,requestId:rI};e&&(t.force=!0);let n=hI(iI);n!==null&&(t.days=n),sI=null,mI(!0),!nI(t)&&(sI=l,mI(!1))}function EI(e){cI=e,fI(`refresh-status`)}function DI(e){$F=e,fI(`sessions`)}function OI(e){let t=e;eI={...eI,[Ob(t)]:t},fI(`plan-limits`),pI()}function kI(e){Lb(e,rI)&&(sI=null,mI(!1),QF=e,fI(`report`),pI())}function AI(){let e=QF?.pricing||($F?{source:$F.pricingSource}:null),t=Nb(e?.fetchedAt),n=[Mb(e,t!==null&&t>0?ot(t):``)],r=Ib(QF);r&&n.push(r);let i=Fb(QF?.scan);return i&&n.push(i),n}var jI={teamReview:e=>e?.teamReview?.enabled!==!1,issues:e=>e?.issues?.enabled===!0,posthog:e=>e?.posthog?.enabled===!0,visions:e=>e?.visions?.enabled===!0,usage:e=>e?.usage?.enabled!==!1,benchmarks:e=>e?.benchmarks?.enabled===!0},MI=[{rule:`teamReview`,sectionId:`lanes-team-review`,settingId:`team-review-enabled`},{rule:`issues`,sectionId:`lanes-issues`,settingId:`issues-enabled`},{rule:`usage`,sectionId:`machine-usage`,settingId:`usage-enabled`},{rule:`posthog`,sectionId:`lanes-posthog`,settingId:`posthog-enabled`},{rule:`visions`,sectionId:`lanes-visions`,settingId:`visions-enabled`},{rule:`benchmarks`,sectionId:`lanes-benchmarks`,settingId:`benchmarks-enabled`}];function NI(e,t){return t.isPhoneShellActive?t.phoneScreen===e:t.activeView===e}function PI(e,t){return e.flatMap(e=>!e.gate||!(`fromSettings`in e.gate)?[]:[{view:e,isAvailable:e.gate.fromSettings(t)}])}function FI(e,t){let n=new Set(e),r=[...new Set((t??[]).filter(e=>n.has(e)))];return[...r,...e.filter(e=>!r.includes(e))]}function II(e,t,n){let r=e.filter(e=>e!==t);if(r.length===e.length)return[...e];let i=Math.max(0,Math.min(n,r.length));return[...r.slice(0,i),t,...r.slice(i)]}function LI(e){return{isActive:e===!0||typeof e==`string`,level:typeof e==`string`?e:null}}function RI(e,t,n){t&&e?.refreshOn?.includes(n)&&t.refresh?.(n)}function zI(e,t,n,r){for(let i of e)NI(i.view,t)&&RI(i,r(i.view),n)}function BI(){let e=new Map,t=new Map;function n(e,n){let r=t.get(e.view);if(r)return r;let i=n().catch(n=>{throw t.delete(e.view),n});return t.set(e.view,i),i}function r(t,n){return e.get(t.view)||(n.mount(t.el),e.set(t.view,n),n)}function i(t){return e.get(t)??null}function a(t){let i=e.get(t.view);return i?Promise.resolve(i):t.module?Promise.resolve(r(t,t.module)):n(t,t.load).then(e=>r(t,e))}function o(e){for(let t of e)t.module&&r(t,t.module)}async function s(t){for(let r of t)r.load&&!e.has(r.view)&&await n(r,r.load)}return{show:a,mountedModuleOf:i,mountEagerViews:o,prefetch:s}}function VI(e,t,n){let r=Number(e);return!e||!Number.isFinite(r)||t-r>n}var HI=`glimmervoid:preload-error-reload-at`,UI=3e4,WI=1e3,GI=BI();function KI(e,t){let n=GI.mountedModuleOf(e.view);n?t(n):GI.show(e).then(t).catch(t=>{throw Be(`view`,`${e.view} failed to show: ${et(t)}`),t})}function qI(e){return GI.mountedModuleOf(e)}function JI(e){GI.mountEagerViews(e)}function YI(e){let t=()=>{GI.prefetch(e.filter(e=>!e.tab.hidden))};`requestIdleCallback`in window?window.requestIdleCallback(t):setTimeout(t,WI)}function XI(e){window.addEventListener(`vite:preloadError`,()=>{let t=e(),n=Date.now();VI(t.getItem(HI),n,UI)&&(t.setItem(HI,String(n)),location.reload())})}function ZI(e){eM({openTerminal:e.openTerminal,openReviews:e.openReviews}),EP(e.onRestart);let t=[{view:`focus`,label:`Focus`,panelClass:`focus-view`,hasOwnPhoneScreen:!0,hasPanelChrome:!1,hasReviewSidebar:!0,module:{mount:()=>DC({rail:document.getElementById(`focus-rail`),center:document.getElementById(`focus-center`),resizer:document.getElementById(`focus-rail-resizer`)}),activate:tw,deactivate:iw}},{view:`prs`,label:`Reviews`,glyph:`⇅`,panelClass:`pr-view`,gate:{fromSettings:jI.teamReview},load:()=>xi(()=>import(`./review-queue-panel-CDNG-Bbp.js`).then(e=>e.view),__vite__mapDeps([10,1,2,3,4,11,5,6,12,8,13])),attention:{subscribe:Xj,acknowledge:Yj},onConnectionChange:e=>{ZA(e),_O(e)}},{view:`issues`,label:`Issues`,glyph:`#`,panelClass:`issues-view`,gate:{fromSettings:jI.issues},load:()=>xi(()=>import(`./issues-panel-DDlmaCMc.js`).then(e=>e.view),__vite__mapDeps([14,1,2,4,5,3,12,11,8,6,15])),refreshOn:[`shown`],onConnectionChange:gN},{view:`usage`,label:`Usage`,glyph:`◔`,panelClass:`usage-view`,gate:{fromSettings:jI.usage},load:()=>xi(()=>import(`./usage-panel-CEZmDrzW.js`).then(e=>e.view),__vite__mapDeps([16,1,2,4,17])),attention:{subscribe:xI,acknowledge:bI},onConnectionChange:EI,refreshOn:[`shown`,`connected`,`usage-sessions`]},{view:`radar`,label:`Radar`,glyph:`◎`,panelClass:`radar-view`,gate:{fromSettings:jI.posthog},load:()=>xi(()=>import(`./radar-panel-DvRmklxX.js`).then(e=>e.view),__vite__mapDeps([18,1,2,3,4,5,6,0,19])),attention:{subscribe:PN,acknowledge:NN}},{view:`visions`,label:`Visions`,glyph:`◇`,panelClass:`visions-view`,gate:{fromSettings:jI.visions},load:()=>xi(()=>import(`./visions-panel-DW5taW_d.js`).then(e=>e.view),__vite__mapDeps([20,1,2,5,3,21])),attention:{subscribe:TT,acknowledge:ET},refreshOn:[`shown`],onConnectionChange:kT},{view:`hooks`,label:`Hooks`,glyph:`◈`,panelClass:`hooks-view`,load:()=>xi(()=>import(`./hooks-panel-z3cBAfkm.js`).then(e=>e.view),__vite__mapDeps([22,2,1,3,5,6,23])),refreshOn:[`shown`,`connected`,`hooks-updated`]},{view:`trace`,label:`Trace`,panelClass:`trace-view`,gate:{subscribe:Gn},load:()=>xi(()=>import(`./trace-panel-svTuppEP.js`).then(e=>e.view),__vite__mapDeps([24,1,2,11,5,3,25])),refreshOn:[`shown`],onAvailabilityChange:e=>FN(e?sb:null),onConnectionChange:fb},{view:`benchmarks`,label:`Bench`,panelClass:`bench-view`,gate:{fromSettings:jI.benchmarks},load:()=>xi(()=>import(`./benchmark-panel-7Mwp8_8N.js`).then(e=>e.view),__vite__mapDeps([26,1,2,27])),onConnectionChange:zM},{view:`settings`,label:`Settings`,glyph:`@`,panelClass:`settings-view`,hasPanelChrome:!1,load:()=>xi(()=>import(`./settings-panel-BlCmPEk0.js`).then(e=>e.view),__vite__mapDeps([28,1,2,3,4,11,5,6,0,29]))}],n=O(document,`#app-main`,`main`),r=t.map(t=>{let r=A(`button`,`header-tab`,t.label);r.id=`tab-${t.view}`,r.type=`button`,r.draggable=!0;let i=`view-${t.view}`;r.setAttribute(`role`,`tab`),r.setAttribute(`aria-controls`,i);let a=t.view===`focus`;r.setAttribute(`aria-selected`,String(a)),r.tabIndex=a?0:-1,t.glyph&&(r.dataset.phoneGlyph=t.glyph);let o=document.getElementById(i)??A(`section`);if(o.classList.add(t.panelClass),o.id=i,o.setAttribute(`role`,`tabpanel`),o.setAttribute(`aria-labelledby`,r.id),o.hidden=!0,o.parentElement||n.append(o),r.hidden=t.gate!==void 0,o.classList.toggle(`view-panel`,t.hasPanelChrome!==!1),t.attention){let n=A(`span`,`tab-activity`);n.id=`tab-${t.view}-activity`,n.setAttribute(`aria-hidden`,`true`),r.append(n),t.attention.subscribe(r=>{let{isActive:i,level:a}=LI(r);n.classList.toggle(`active`,i),a===null&&n.removeAttribute(`data-attention`),a!==null&&n.setAttribute(`data-attention`,a),e.setPhoneAttention(t.view,r)})}return{...t,tab:r,el:o}});return O(document,`#header-tabs`,`div`).replaceChildren(...r.map(e=>e.tab)),r}Ad(Bt()),jd(sn()),_F(dn()),qi(),Lc(document);var QI=O(document,`#connection-status`,`span`),$I=O(QI,`.connection-label`,`span`),eL=O(document,`#loading-screen`,`div`),tL=O(document,`#loading-status`,`div`),nL=O(document,`#loading-detail`,`div`),rL=O(document,`#shutdown-screen`,`div`),iL=O(document,`#shutdown-status`,`div`),aL=!1,oL=null,sL=!1;function cL(){let e=$r(),t=eL.querySelector(`.loading-spinner`);e&&t&&t.replaceWith(Qr(e,`loading-animal`))}cL();function lL(){aL||oL===null||XF({hasSnapshot:sL,connectingTerminalCount:Wm(),msSinceConnected:performance.now()-oL})===`reveal`&&uL()}Um(lL);function uL(){if(aL)return;aL=!0,eL.classList.add(`fade-out`),YI(Q);let e=()=>eL.remove();eL.addEventListener(`transitionend`,e,{once:!0}),setTimeout(e,1e3)}function dL(e,t){QI.dataset.state=`shutdown`,$I.textContent=e,QI.title=e,rR.disabled=!0,iL.textContent=t,rL.classList.add(`active`)}var fL=new Set([`disconnected`,`connecting`]);function pL(e,t,n){QI.dataset.state=e,QI.toggleAttribute(`data-reconnected`,n),$I.textContent=t,QI.title=t}function mL(e,t){pL(e,t,e===`connected`&&fL.has(QI.dataset.state??``))}function hL(e,t){QI.dataset.state!==`shutdown`&&pL(e===`verified`?`connected`:e,t,!1)}var gL=1e4,_L=`Server`,vL=`Worktree`,yL=`Worktree warning`,bL=`The server is not answering. Check the terminal running Glimmervoid for errors, or start it again with glimmervoid. This page reconnects on its own.`,xL=`Server not answering. Check the Glimmervoid terminal for errors, or run glimmervoid. This page retries on its own.`,SL=null,CL=!1;function wL(){tL.textContent=`Reconnecting to server...`,nL.textContent=xL,nL.hidden=!CL}function TL(){SL=null,CL=!0,aL?I({source:_L,message:bL,hidesInStreamerMode:!1}):wL()}function EL(){SL!==null||CL||(SL=window.setTimeout(TL,gL))}function DL(){SL!==null&&window.clearTimeout(SL),SL=null,CL=!1,nL.hidden=!0,xn(_L)}Ve((e,t)=>{if(e===`connecting`||e===`verified`)hL(e,t);else{mL(e,t),Bx(e===`connected`);for(let t of Q)t.onConnectionChange?.(e===`connected`);if(e===`connected`){if(DL(),xR&&SR(xR),rL.classList.contains(`active`)){location.reload();return}uo(),document.body.classList.add(`app-ready`),!aL&&oL===null&&(oL=performance.now(),tL.textContent=`Connecting to sessions...`,setTimeout(uL,YF)),lL(),qR(),zL(`connected`),M(`get-settings`,{}).then(e=>{e.settings&&(DR(e.settings),Fr()===`settings`&&cR(location.hash))}).catch(()=>{})}else e===`disconnected`&&rL.classList.contains(`active`)?iL.textContent=`Waiting for server...`:(EL(),aL||wL())}});function OL(){hN(),JA(),bD()}function kL(){RC(),OL()}Ls(()=>RC());var AL=null;function jL(e){let t=UP(AL,e);AL=t.knownBuild,t.reload&&location.reload()}function ML(e){DT(new Map(e.filter(e=>!e.ephemeral).map(e=>[e.id,e.name]))),zP(e.filter(e=>!e.ephemeral).map(e=>({id:e.id,name:e.name,agent:e.agent,permissionMode:e.dangerouslySkipPermissions?`Skip permissions`:`Default`})));for(let t of e){gc(t.id,t.coherenceHooks),t.ephemeral||Al(t.path),yM(t.id,t.linkedPrs);let e=Ex(t.id);e&&lS(t.id,t.state,t.stateSince),e&&Wn(t.id,!!t.saneYolo),e&&Wx(t.id,t.isGuarded,t.isGuardrailsReleased),e||jx(t.id,t.name,t.state,WN(t)),iS(t.id,t.failureReason),Tx(t.id,t.taskTitle,t.taskTitleIsCustom),Hx(t.id,t.agent),Qx(t.id,t.mergeStatus,t.mergeReason),Vx(t.id,t.effectiveBase),Kx(t.id,t.activeAgents,t.awaitingBackgroundTasks),Jx(t.id,t.pendingPromptKind),Yx(t.id,t.unseenOutcome),vx(t.id,t),Fx(t.id,t.hasPlan),RL(t.id)}Ax(),qc(F),RC(),rw(),OL(),NL(),dR(location.hash),JR(),sL=!0,lL()}function NL(){cb([...F].map(([e,t])=>({id:e,name:ct(t)||e})))}function PL(e,t){Fx(e,t?.hasPlan===!0),Yx(e,t?.unseenOutcome),RL(e)}function FL(e){if(!Ex(e.id))jx(e.id,e.session,e.to,WN({skipPerms:e.skipPerms,saneYolo:e.saneYolo,stateSince:e.timestamp})),qc(F),hN();else if(e.to===b.DORMANT&&e.from!==b.DORMANT){let t=F.get(String(e.id)),n=document.querySelector(`.session-card[data-id="${CSS.escape(String(e.id))}"]`),r=n instanceof HTMLElement?n:null,i=r?r.dataset.skipPerms!==void 0:!1,a=e.saneYolo??(r?r.dataset.saneYolo!==void 0:!1),o=r?r.dataset.path:void 0;tS(e.id),jx(e.id,e.session,b.DORMANT,WN({skipPerms:i,saneYolo:a,worktree:r?.dataset.worktree!==void 0,workspace:r?.dataset.workspace!==void 0,remoteWorkspace:r?.dataset.remoteWorkspace??null,guarded:r?.dataset.guarded!==void 0,guardrailsReleased:r?.dataset.guardrailsReleased!==void 0,ephemeral:r?.dataset.ephemeral!==void 0,path:o,stateSince:e.timestamp,taskTitle:t?.taskTitle,taskTitleIsCustom:t?.taskTitleIsCustom})),Hx(e.id,t?.agent),PL(e.id,t),kL(),sv(e.id),qc(F)}else lS(e.id,e.to,e.timestamp,e.event),iS(e.id,e.failureReason),e.saneYolo!==void 0&&Wn(e.id,e.saneYolo),qc(F),sv(e.id),kL(),ir(e.id),e.to===b.INITIALIZING&&(e.from===b.DONE||e.from===b.FAILED)&&ch(e.id)}var IL=new Map;function LL(e){let t=new Set;for(let n of e){if(!n?.id)continue;t.add(n.id);let e={tokens:n.tokens,costUSD:n.costUSD,officialCostUSD:n.officialCostUSD};IL.set(n.id,e),qx(n.id,e)}for(let e of[...IL.keys()])t.has(e)||(IL.delete(e),qx(e,null))}function RL(e){let t=IL.get(e);t&&qx(e,t)}CI(j),qT(j),ab(j),mN(j),LM(j),dr(_M),cl(bc),cl(hM),Jn({isReadable:xc,open:Cc}),Hn(HN);function zL(e){zI(Q,{isPhoneShellActive:vD(),activeView:Fr(),phoneScreen:L.snapshot().phoneScreen},e,qI)}ns(()=>zL(`settings-updated`));var BL={snapshot:e=>{jL(e.serverBuild),ML(e.sessions)},"hooks-report":e=>YT(e),"save-hook-result":()=>XT(),"delete-hook-result":()=>XT(),"state-change":e=>FL(e),"session-added":e=>{e.ephemeral||Al(e.path),yM(e.id,e.linkedPrs),Ex(e.id)||(jx(e.id,e.session,e.state,WN(e)),Hx(e.id,e.agent),RL(e.id)),qc(F),kL(),NL()},"session-close-confirm":e=>{zi(e.id)},"session-removed":e=>{Cn(e.id),tS(e.id),_c(e.id),lv(e.id),bM(e.id),qc(F),kL(),NL()},"session-title":e=>{Tx(e.id,e.taskTitle,e.isCustom),kL()},"session-prs":e=>yM(e.id,e.linkedPrs),"session-renamed":e=>{eS(e.id,e.newName),kL(),NL()},"session-modified":e=>{e.ephemeral||Al(e.path);let t=F.get(String(e.id)),n=R()===String(e.id);gc(e.id,null),tS(e.id),lv(e.id),yM(e.id,e.linkedPrs),jx(e.id,e.session,e.state,WN(e)),n&&mi(String(e.id)),Hx(e.id,e.agent),PL(e.id,t),qc(F),kL(),NL()},"session-git":e=>Ux(e.id,!!e.worktree),"session-agents":e=>{Kx(e.id,e.activeAgents,e.awaitingBackgroundTasks),kL(),ir(e.id)},"session-unseen":e=>{Yx(e.id,e.unseenOutcome),Ax(),qc(F),kL()},"session-prompt":e=>{Jx(e.id,e.pendingPromptKind),OL()},"session-merge-status":e=>{Zx(e.id,e.mergeStatus,e.reason),XC(e.id,e.mergeStatus),OL()},"session-worktree-blocked":e=>{I({source:vL,sessionId:e.id,message:`${e.session}: ${e.notice||`The integration branch was not found. Check the integration branch in Settings, then restart the session.`}`})},"session-worktree-warning":e=>{I({source:yL,sessionId:e.id,message:`${e.session}: ${e.notice||`The base branch could not be synced. The session keeps working on its current base.`}`})},"session-worktree-ready":e=>{xn(vL,e.id),Vx(e.id,e.base)},"session-diff":e=>{$x(e.id,e)},"session-diff-error":e=>{nv(e.id,e.message)},"change-map":e=>rv(e.id,e.map),"branch-sync-status":e=>iv(e.id,e),"session-changed":e=>ov(e.id),"debug-state-response":e=>Xn(e),"session-trace-response":e=>{yx(e)||lb(e)},"session-trace-changed":e=>{xx(e.id),ub(e)},"session-conversation":e=>{vx(e.id,e),OL()},"session-plan-changed":e=>{Ix(e),OL()},"session-plan-draft":e=>{Lx(e)},"session-plan-response":e=>{Rx(e)},"session-docs-changed":e=>Es(e),"session-docs-snapshot":e=>Ds(e),"session-shown":e=>$s(e),"session-shown-snapshot":e=>ec(e),"session-coherence-hooks":e=>{gc(e.id,e.coherenceHooks),kL()},"session-coherence":e=>{vc(e),kL()},"session-coherence-snapshot":e=>{yc(e),kL()},"session-coherence-journal-response":e=>wc(e),"session-setup-response":e=>UN(e),notify:e=>{ya(e),ir(e.session)},"update-status":e=>{qL(e),BP(e)},"update-progress":e=>VP(e.journal),"post-turn-leftovers":e=>YL(e),error:e=>{let t=HP(e),n=db(e);bx(e);let r=zx(e);t||n||r||(e.id?rS(e.id,e.message):I({source:_L,message:e.message}))},"session-error":e=>{$_(e.id),!zx(e)&&rS(e.id,e.message)},"settings-updated":e=>{e.settings&&DR(e.settings),uo()},"agent-logins":e=>ni(e.logins),"health-snapshot":e=>{e.stats&&dg(e.stats)},"radar-status":e=>IN(e),"radar-investigation-activity":e=>LN(e),"radar-investigation-finished":e=>RN(e),"team-review-status":e=>mO(e),"github-prs":e=>Sr(e),"my-prs-status":YA,"benchmark-status":e=>BM(e),"benchmark-action-result":e=>VM(e),"my-pr-merge-result":e=>XA(e),"team-review-action-result":e=>hO(e),"open-team-review-session-result":e=>gO(e),"issues-status":e=>_N(e),"issue-detail-result":e=>vN(e),"open-issue-session-result":e=>yN(e),"usage-sessions":e=>{LL(e.sessions),DI(e)},"usage-report":e=>{kI(e),RP()},"plan-limits":e=>OI(e),"usage-budget-alert":e=>ya({session:`budget-${e.scope}-${e.periodKey}`,category:`threshold-${e.threshold}`,message:e.text,ignoreFocus:!0}),"visions-findings":e=>jT(e),"visions-comments":e=>MT(e),"visions-hand":e=>NT(e),"visions-intent":e=>PT(e),"visions-fix":e=>AT(e),"visions-snapshot":e=>LT(e),"ingest-activity":e=>FT(e),"ingest-snapshot":e=>IT(e),"client-trust":e=>VR(e.trust),"shutting-down":()=>dL(`Shutting down...`,`Shutting down sessions...`),restarting:()=>dL(`Restarting...`,`Restarting server...`)};function VL(e){let t=BL[e.type];t&&t(e)}Ge(e=>{VL(e),zL(e.type)});var HL,UL=null;function WL(e,t,n){e.onclick=()=>{let e=Ne(n);e?e.then(()=>{t.textContent=`Copied`}).catch(()=>{t.textContent=`Copy failed`}):t.textContent=`Copy failed`}}var GL=YP(v,h,`Update`).href;function KL(e){let{latestSha:t,latest:n}=e;return typeof n==`string`&&n?n:typeof t==`string`&&t?t:null}function qL(e){let t=O(document,`#update-banner`,`div`),{mode:n,tone:r,text:i}=ve(e),a=r===`security`;if(!e.updateAvailable&&!a){t.hidden=!0;return}let o=KL(e),s=o&&n===`restart`?`${o}:ready`:o;if(a&&i===UL||!a&&HL!==void 0&&s===HL||!a&&s&&qt()===s)return;t.classList.toggle(`update-banner-security`,a);let c=String(e.command??``);O(document,`#update-banner-text`,`span`).textContent=i,O(document,`#update-banner-cmd`,`code`).textContent=c;let l=O(document,`#update-banner-update`,`a`);l.href=GL,l.hidden=n!==`link`;let u=O(document,`#update-banner-restart`,`button`);u.hidden=n!==`restart`,u.onclick=BR;let d=O(document,`#update-banner-cmd`,`code`);d.hidden=n!==`command`;let f=O(document,`#update-banner-copy`,`button`);f.hidden=n!==`command`;let p=O(document,`#update-banner-copy-status`,`span`);p.hidden=n!==`command`,p.textContent=``;let m=O(document,`#update-banner-link`,`a`);m.hidden=!e.releaseUrl,m.href=typeof e.releaseUrl==`string`?e.releaseUrl:``,t.hidden=!1,WL(f,p,c),O(document,`#update-banner-dismiss`,`button`).onclick=()=>{t.hidden=!0,a?UL=i:(HL=s,Wt(s))}}var JL=!1;function YL({repositories:e,command:t}){let n=O(document,`#post-turn-leftovers-banner`,`div`);if(e.length===0){n.hidden=!0;return}if(JL)return;let r=O(document,`#post-turn-leftovers-copy-status`,`span`);O(document,`#post-turn-leftovers-text`,`span`).textContent=Ar(e.length),O(document,`#post-turn-leftovers-cmd`,`code`).textContent=t,r.textContent=``,n.hidden=!1,WL(O(document,`#post-turn-leftovers-copy`,`button`),r,t),O(document,`#post-turn-leftovers-dismiss`,`button`).onclick=()=>{JL=!0,n.hidden=!0}}var XL=O(document,`#telemetry-banner`,`div`);function ZL(){It(!0),XL.hidden=!0}function QL(e){XL.hidden=!JF(e,mt())}var $L=O(document,`#telemetry-banner-settings`,`a`);$L.href=YP(`privacy`,`telemetry-enabled`,`What's collected`).href,$L.addEventListener(`click`,ZL),O(document,`#telemetry-banner-dismiss`,`button`).addEventListener(`click`,ZL),O(document,`#btn-add-session-header`,`button`).addEventListener(`click`,ji);var eR=O(document,`#btn-mute`,`button`);EM(eR);var tR=O(document,`#btn-streamer`,`button`);ss(tR),GF();var nR=O(document,`#power-menu`,`div`),rR=O(document,`#btn-power`,`button`),iR=O(document,`#power-menu-dropdown`,`div`);function aR(e){nR.classList.toggle(`open`,e),rR.setAttribute(`aria-expanded`,String(e))}rR.addEventListener(`click`,e=>{e.stopPropagation(),aR(!nR.classList.contains(`open`))}),lr({trigger:rR,menu:iR,menuItems:()=>[...iR.querySelectorAll(`[role="menuitem"]`)].filter(e=>!e.hidden),isOpen:()=>nR.classList.contains(`open`),open:()=>aR(!0),close:()=>aR(!1)}),document.addEventListener(`click`,e=>{e.target instanceof Node&&(nR.contains(e.target)||aR(!1))}),he(document.querySelector(`.header`));function oR(e){e&&AP(e),!SD(`settings`)&&$(`settings`,{section:e})}function sR(){KP(location.hash)&&history.replaceState(history.state,``,`${location.pathname}${location.search}`)}function cR(e){return KP(e)?(AP(null,null,e),SD(`settings`)||$(`settings`,{persist:!1}),!0):!1}var lR=`No plan is stored for this session yet. It appears here once the agent writes one.`,uR=`Plan`;function dR(e){let t=na(e);return t?!Ex(t)||(history.replaceState(history.state,``,`${location.pathname}${location.search}`),vD()?(_D(t)||I({source:uR,sessionId:t,message:lR}),!0):($(`focus`,{persist:!1}),QC(t)||I({source:uR,sessionId:t,message:lR}),!0)):!1}function fR(e){return dR(e)?!0:cR(e)}function pR(e){e.newURL===location.href&&fR(location.hash)}document.addEventListener(`click`,e=>{if(!vD()||e.defaultPrevented)return;let t=e.target instanceof Element?e.target.closest(`a[href^="#"]`):null;t instanceof HTMLAnchorElement&&fR(t.hash)&&e.preventDefault()}),MA(O(document,`#celebration-tray`,`div`),O(document,`#btn-celebrations`,`button`),O(document,`#celebration-tray-count`,`span`)),O(document,`#btn-help`,`button`).addEventListener(`click`,()=>{oR(`browser-shortcuts`)});var Q=ZI({onRestart:BR,openTerminal:e=>{xD(e)||($(`focus`),ZC(e))},openPlan:e=>{$(`focus`),QC(e)},openReviews:()=>_R(`prs`)?(SD(`prs`)||$(`prs`),!0):!1,setPhoneAttention:wD});function mR(){return Q.map(e=>e.view)}var hR=mR();OP(Q),J_({panel:document.getElementById(`review-sidebar`)}),JI(Q);function gR(e){return Q.find(t=>t.view===e)}function _R(e){return Q.some(t=>t.view===e&&!t.tab.hidden)}var vR=!0,yR=null;function bR(e){gR(e)?.attention?.acknowledge()}var xR=null;function SR(e){xR=j({type:`dashboard-telemetry`,event:`view_shown`,properties:{view:e}})?null:e}function CR(e){let t=gR(e);t&&(KI(t,e=>RI(t,e,`shown`)),SR(e))}function $(e,{section:t,setting:n,persist:r=!0}={}){let i=gR(e);if(!i||!_R(e))return;let a=Fr();L.dispatch(`setActiveView`,e),vR=r,r&&(yR=null),document.body.dataset.activeView=e,document.body.dataset.reviewSidebarHidden=String(i.hasReviewSidebar!==!0),r&&_t(e);for(let t of Q){let n=t.view===e;t.el&&(t.el.hidden=!n),t.tab.setAttribute(`aria-selected`,String(n)),t.tab.tabIndex=n?0:-1}a!==e&&qI(a)?.deactivate?.(),KI(i,r=>{Fr()===e&&(r.activate?.(),RI(i,r,`shown`),e===`settings`&&t&&AP(t,n??null))}),SR(e),a===`settings`&&e!==`settings`&&sR(),bR(e)}function wR(e,t){let{view:n}=e;e.tab.hidden=!t,CD(n,t),e.onAvailabilityChange?.(t),!vD()&&(!t&&Fr()===n&&$(`focus`),t&&yR===n&&$(n))}function TR(e){for(let{view:t,isAvailable:n}of PI(Q,e))wR(t,n)}function ER(e){let t=FI(hR,e);Q.every((e,n)=>e.view===t[n])||(Q.sort((e,n)=>t.indexOf(e.view)-t.indexOf(n.view)),O(document,`#header-tabs`,`div`).append(...Q.map(e=>e.tab)),pD(t))}function DR(e){Md(e.isExperimentalBuild===!0&&ln()),Ox(e),LP(e),OT(e),TR(e),QL(e),ER(e.viewTabOrder),ts(e.streamerMode===!0),gx(e.conversationView===!0)}for(let e of Q)e.gate&&(wR(e,!1),`subscribe`in e.gate&&e.gate.subscribe(t=>wR(e,t)));ob(()=>{_R(`trace`)&&(SD(`trace`)||$(`trace`))});function OR(){return Q.filter(e=>!e.tab.hidden)}function kR(e,t){let n=e[t];return $(n.view),n.tab}function AR(e,t){let n=OR(),r=n.findIndex(t=>t.view===e);return kR(n,pr(r,t,n.length))}function jR(e){Q.some(e=>e.tab===document.activeElement)&&e.focus()}var MR=null;function NR(e){let t=mR();ER(e),M(`update-settings`,{settings:{viewTabOrder:e}}).then(e=>{e.type===`settings-error`&&ER(t)}).catch(()=>ER(t))}function PR(e){let t=MR;if(MR=null,!t||t===e)return;let n=mR();NR(II(n,t,n.indexOf(e)))}for(let e=0;e<Q.length;e++){let{view:t,tab:n}=Q[e];n.addEventListener(`click`,()=>$(t)),n.addEventListener(`dragstart`,e=>{MR=t,e.dataTransfer?.setData(`text/plain`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),n.addEventListener(`dragover`,e=>{MR&&MR!==t&&(e.preventDefault(),n.dataset.dropTarget=`true`)}),n.addEventListener(`dragleave`,()=>delete n.dataset.dropTarget),n.addEventListener(`drop`,e=>{e.preventDefault(),delete n.dataset.dropTarget,PR(t)}),n.addEventListener(`dragend`,()=>{MR=null}),n.addEventListener(`keydown`,e=>{if(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)return;let t=OR(),n=t.findIndex(e=>e.view===Fr()),r=mr(e.key,n,t.length,`horizontal`);r!==null&&(e.preventDefault(),kR(t,r).focus())})}var FR=tn(),IR=KP(location.hash),LR=na(location.hash);if(IR&&(AP(null,null,location.hash),$(`settings`,{persist:!1})),LR&&$(`focus`,{persist:!1}),!IR&&!LR){let e=_R(FR);e||(yR=FR),$(e?FR:`focus`,{persist:e})}mD({panels:ZT(Q),onScreenShown:e=>{CR(e),e!==`settings`&&sR(),e===`settings`&&!KP(location.hash)&&AP(),bR(e)},canGoBack:e=>e===`settings`&&FP()||e===`prs`&&aM(),onBack:e=>{e===`settings`&&IP(),e===`prs`&&oM()},headerControls:[O(document,`.header-title`,`h1`),O(document,`#status-indicator`,`div`),O(document,`#celebration-tray`,`div`),O(document,`#btn-add-session-header`,`button`),O(document,`#btn-help`,`button`),eR,tR,nR]}),PP(aD),iM(aD);function RR(e){if(e===`phone`){let e=EC();for(let e of Q)qI(e.view)?.deactivate?.();let t=KP(location.hash);hD({sessionId:e??void 0,linkedScreenId:t?`settings`:void 0}),t&&AP(null,null,location.hash);return}let t=yD();gD();let n=Fr();$(_R(n)?n:`focus`,{persist:vR}),t&&ZC(t)}Ji()&&RR(`phone`),Yi(RR),window.addEventListener(`hashchange`,pR);function zR({type:e,title:t,confirmLabel:n,danger:r,idleMessage:i,actionAfterKillingSessions:a}){aR(!1);let o=Dx(),s=o>0?`Kill ${o} session${o>1?`s`:``} and ${a}?`:i;hr({title:t,message:s,confirmLabel:n,danger:r||o>0,onConfirm:()=>j({type:e})})}function BR(){zR({type:`restart-server`,title:`Restart Server`,confirmLabel:`Restart`,danger:!1,idleMessage:`Restart the server?`,actionAfterKillingSessions:`restart the server`})}O(document,`#btn-restart`,`button`).addEventListener(`click`,BR);function VR(e){let t=Er(`shutdown`,e);O(document,`#btn-shutdown`,`button`).hidden=!t,O(document,`#menu-divider-shutdown`,`div`).hidden=!t}O(document,`#btn-shutdown`,`button`).addEventListener(`click`,()=>{zR({type:`shutdown`,title:`Shut Down Server`,confirmLabel:`Shut Down`,danger:!0,idleMessage:`Shut down the server?`,actionAfterKillingSessions:`shut down the server`})});function HR(){return(document.activeElement?.closest(`.session-card`))?.dataset.id??null}function UR(e){ZC(e),Ci(e),requestAnimationFrame(()=>requestAnimationFrame(()=>F.get(e)?.term?.focus()))}function WR(){let e=HR()??R();e?Fi(e,UR):document.getElementById(`btn-add-session-header`)?.click()}function GR({action:e,step:t}){switch(e){case`merge`:return uv(),!0;case`close-session`:{let e=R();return e?(zi(e),!0):!1}case`resolve-or-resync`:return fv()||hv(),!0;case`new-session`:return document.getElementById(`btn-add-session-header`)?.click(),!0;case`quick-session`:return WR(),!0;case`next-attention`:return Ji()?!1:TC()?(HC(),!0):(Fr()===`prs`&&sM()||nw(()=>$(`focus`)),!0);case`rail-step`:return TC()?(ew(t),!0):!1;case`view-step`:return!Ji()&&(jR(AR(Fr(),t)),!0);case`session-nth`:return TC()?($C(t),!0):!1;case`streamer-mode`:return os(),!0}}document.addEventListener(`keydown`,e=>{if(e.repeat||pe(e))return;let t=document.activeElement?.classList.contains(`xterm-helper-textarea`)??!1,n=Pt(e,ju,{isTerminalFocused:t},Pu());n&&(gr()||GR(n)&&e.preventDefault())});var KR=kr({mode:`trailing`,delayMs:150,run:()=>{j({type:`focus-change`,focused:document.hasFocus()})}});function qR(){KR.schedule()}function JR(){let e=yD();e&&N(e)?._isActiveViewer?.()===!0&&oS(e)}function YR(){qR(),xh(N(Ir())),JR()}window.addEventListener(`focus`,YR),window.addEventListener(`blur`,YR),document.addEventListener(`visibilitychange`,YR),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&Kp()});var XR=ze(j);window.addEventListener(`error`,e=>{XR(e.error),Be(`uncaught`,et(e.error??e.message))}),window.addEventListener(`unhandledrejection`,e=>{XR(e.reason),Be(`unhandled-rejection`,et(e.reason))}),XI(()=>window.sessionStorage),window.addEventListener(`pageshow`,e=>{e.persisted&&Kp()}),ug(O(document,`#health-footer-mount`,`div`)),Au(kx),EL(),iP(),qe();var ZR=Jt();ZR&&Ye().then(()=>eh(ZR));export{sM as $,rs as $n,RS as $t,SP as A,yg as An,XD as At,fN as B,Fu as Bn,OD as Bt,wP as C,Ag as Cn,Cr,yj as Ct,MP as D,pg as Dn,dO as Dt,IP as E,hg as En,WA as Et,jN as F,md as Fn,QD as Ft,oN as G,Dl as Gn,wT as Gt,pN as H,Lu as Hn,GT as Ht,AN as I,wd as In,aO as It,FM as J,ml as Jn,Iw as Jt,IM as K,El as Kn,CT as Kt,cN as L,pd as Ln,UD as Lt,jP as M,jd as Mn,eO as Mt,MN as N,Ad as Nn,ZD as Nt,kP as O,vg as On,fO as Ot,kN as P,Pd as Pn,$D as Pt,Qj as Q,ns as Qn,_w as Qt,uN as R,fd as Rn,VD as Rt,NP as S,Ey as Sn,L as Sr,uj as St,DP as T,bg as Tn,GA as Tt,dN as U,Iu as Un,JT as Ut,lN as V,Ru as Vn,kD as Vt,sN as W,Pu as Wn,KT as Wt,TM as X,Xc as Xn,Ww as Xt,wM as Y,Qc as Yn,xw as Yt,qj as Z,es as Zn,Gw as Zt,JP as _,rb as _n,pi as _r,bj as _t,SI as a,Tb as an,Ra as ar,rM as at,LP as b,Qy as bn,ii as br,wj as bt,wI as c,vb as cn,xa as cr,QA as ct,gI as d,Cb as dn,ia as dr,_j as dt,zS as en,Go as er,$j as et,AI as f,bb as fn,Ji as fr,Cj as ft,YP as g,nb as gn,fi as gr,vj as gt,mF as h,ib as hn,Ci as hr,lj as ht,MI as i,Eb as in,Vo as ir,Zj as it,yP as j,Md as jn,nO as jt,bP as k,Eg as kn,rO as kt,vI as l,Sb as ln,la as lr,gj as lt,cF as m,Ib as mn,Oi as mr,Tj as mt,FI as n,mb as nn,Ko as nr,oM as nt,TI as o,_b as on,ba as or,Kj as ot,_F as p,gb as pn,Yi as pr,fj as pt,RM as q,fl as qn,ST as qt,jI as r,Ab as rn,Bo as rr,tM as rt,yI as s,yb as sn,Ca as sr,nM as st,II as t,tx as tn,Jo as tr,Jj as tt,_I as u,Db as un,oa as ur,hj as ut,GP as v,tb as vn,ri as vr,dj as vt,TP as w,Mg as wn,wr,KA as wt,xP as x,$y as xn,Qr as xr,Oj as xt,qP as y,eb as yn,ni as yr,Dj as yt,aN as z,ju as zn,HD as zt};
|