glimmervoid 0.45.1-next.76 → 0.45.1-next.78
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/chunks/{main-DwCo9aDq.js → main-D79Zfroc.js} +3 -2
- package/dist/client/assets/{benchmark-panel-Cx06z2NG.js → benchmark-panel-B4g1WsZ5.js} +1 -1
- package/dist/client/assets/benchmark-panel-B4g1WsZ5.js.br +0 -0
- package/dist/client/assets/{dialogs-DFruideh.js → dialogs-8m7180k8.js} +1 -1
- package/dist/client/assets/dialogs-8m7180k8.js.br +0 -0
- package/dist/client/assets/{hooks-panel-B38D20bu.js → hooks-panel-BS8xOh4f.js} +1 -1
- package/dist/client/assets/hooks-panel-BS8xOh4f.js.br +0 -0
- package/dist/client/assets/{index-Cw_GDR2t.js → index-CQTBW33x.js} +4 -4
- package/dist/client/assets/index-CQTBW33x.js.br +0 -0
- package/dist/client/assets/{issues-panel-BMMUK15i.js → issues-panel-Df6U2O29.js} +1 -1
- package/dist/client/assets/issues-panel-Df6U2O29.js.br +0 -0
- package/dist/client/assets/{plan-face-Bumfu--W.js → plan-face-BClsoNpb.js} +1 -1
- package/dist/client/assets/plan-face-BClsoNpb.js.br +0 -0
- package/dist/client/assets/{pr-scope-tabs-B2fIXQ2z.js → pr-scope-tabs-e_OqRqOw.js} +1 -1
- package/dist/client/assets/pr-scope-tabs-e_OqRqOw.js.br +0 -0
- package/dist/client/assets/{radar-panel-C1EkXmny.js → radar-panel-DA4A9eQ3.js} +1 -1
- package/dist/client/assets/radar-panel-DA4A9eQ3.js.br +0 -0
- package/dist/client/assets/{review-queue-panel-BSdeDDiH.js → review-queue-panel-ClVRKiPp.js} +1 -1
- package/dist/client/assets/review-queue-panel-ClVRKiPp.js.br +0 -0
- package/dist/client/assets/{settings-panel-QUc2b6hw.js → settings-panel-D9uy1Omm.js} +2 -2
- package/dist/client/assets/settings-panel-D9uy1Omm.js.br +0 -0
- package/dist/client/assets/{trace-panel-BrdAYIET.js → trace-panel-CeruQF0K.js} +1 -1
- package/dist/client/assets/trace-panel-CeruQF0K.js.br +0 -0
- package/dist/client/assets/{usage-panel-Dz-5iMXv.js → usage-panel-DDmlDx0T.js} +1 -1
- package/dist/client/assets/usage-panel-DDmlDx0T.js.br +0 -0
- package/dist/client/assets/{visions-panel-WD0a6YJR.js → visions-panel-tzrwcp5a.js} +1 -1
- package/dist/client/assets/visions-panel-tzrwcp5a.js.br +0 -0
- package/dist/client/index.html +1 -1
- package/dist/client/index.html.br +0 -0
- package/dist/server/index.js +1 -1
- package/dist/session/statusline-relay.js +1 -1
- package/package.json +1 -1
- package/dist/client/assets/benchmark-panel-Cx06z2NG.js.br +0 -0
- package/dist/client/assets/dialogs-DFruideh.js.br +0 -0
- package/dist/client/assets/hooks-panel-B38D20bu.js.br +0 -0
- package/dist/client/assets/index-Cw_GDR2t.js.br +0 -0
- package/dist/client/assets/issues-panel-BMMUK15i.js.br +0 -0
- package/dist/client/assets/plan-face-Bumfu--W.js.br +0 -0
- package/dist/client/assets/pr-scope-tabs-B2fIXQ2z.js.br +0 -0
- package/dist/client/assets/radar-panel-C1EkXmny.js.br +0 -0
- package/dist/client/assets/review-queue-panel-BSdeDDiH.js.br +0 -0
- package/dist/client/assets/settings-panel-QUc2b6hw.js.br +0 -0
- package/dist/client/assets/trace-panel-BrdAYIET.js.br +0 -0
- package/dist/client/assets/usage-panel-Dz-5iMXv.js.br +0 -0
- package/dist/client/assets/visions-panel-WD0a6YJR.js.br +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dialogs-
|
|
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 ee,O as w,On as T,Pn as te,Qt as E,R as ne,Rt as re,S as ie,Tt as ae,Ut as oe,Wt as se,Xt as ce,Zt as le,_ as ue,_t as de,b as fe,c as pe,d as me,en as he,f as ge,g as _e,h as D,ht as ve,j as ye,jt as be,l as xe,m as O,mt as Se,n as Ce,o as k,qt as we,rt as Te,s as A,t as Ee,tn as De,v as Oe,wn as ke,wt as Ae,x as je,y as Me,yt as Ne,z as Pe}from"./dom-helpers-D7V9q-Y4.js";import{S as Fe,_ as Ie,a as Le,b as Re,c as ze,d as Be,f as Ve,g as He,h as Ue,i as We,l as j,m as Ge,n as Ke,o as qe,p as Je,r as Ye,s as Xe,t as Ze,u as M,v as Qe,x as $e,y as et}from"./control-ws-6I4n2_Rl.js";import{a as tt,c as nt,d as N,f as P,i as rt,l as it,m as F,n as at,o as ot,p as st,s as ct,u as lt}from"./poll-ago-jEMVa0Q3.js";import{C as ut,Ct as dt,Dt as ft,E as pt,J as mt,K as ht,O as gt,Ot as _t,Q as vt,R as yt,St as bt,T as xt,Tt as St,U as Ct,Y as wt,Z as Tt,_ as Et,_t as Dt,a as Ot,at as kt,b as At,bt as jt,c as Mt,ct as Nt,d as Pt,et as Ft,f as It,ft as Lt,gt as Rt,h as zt,ht as Bt,i as Vt,it as Ht,k as Ut,m as Wt,mt as Gt,n as Kt,o as qt,ot as Jt,p as Yt,pt as Xt,q as Zt,rt as Qt,s as $t,t as en,u as tn,ut as nn,v as rn,vt as an,w as on,wt as sn,x as cn,xt as ln,y as un,yt as dn,z as fn}from"./ui-prefs-Kmmz3DzP.js";import{C as pn,S as mn,c as hn,f as gn,h as _n,i as vn,m as yn,n as bn,o as I,p as xn,r as Sn,s as Cn,t as wn,u as Tn,w as En}from"./action-status-hJ8vrTK4.js";import{A as Dn,C as On,D as kn,E as An,F as jn,I as Mn,L as Nn,M as Pn,N as Fn,O as In,P as Ln,R as Rn,S as zn,T as Bn,_ as Vn,a as Hn,b as Un,c as Wn,d as Gn,f as Kn,g as qn,h as Jn,i as Yn,j as Xn,k as Zn,l as Qn,m as $n,n as er,o as tr,p as nr,r as rr,s as ir,t as ar,u as or,v as sr,w as cr,x as lr,y as ur,z as dr}from"./card-dom-D4NvWM47.js";import{n as fr,t as pr}from"./roving-keys-core-BDobx2It.js";import{a as mr,i as hr,n as gr,r as _r,t as vr}from"./modal-CpGyiWuk.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 yr=new Map,br=new Set;function xr(e){let t=he.safeParse(e);if(!t.success)ze(`reviews`,`dropped github-prs: ${Fe(t.error.issues)}`);else{yr=new Map(Object.entries(t.data.prs));for(let e of br)e()}}function Sr(e){return yr.get(e.toLowerCase())}function Cr(e){br.add(e)}function wr(e){return e===`remote`?`remote`:`local`}function Tr(e,t){return wr(t)===`local`||e!==`shutdown`}var Er=Object.freeze({setTimeoutFn:(e,t)=>setTimeout(e,t),clearTimeoutFn:e=>clearTimeout(e),setIntervalFn:(e,t)=>setInterval(e,t),clearIntervalFn:e=>clearInterval(e)});function Dr(e){return typeof e!=`object`||!e||!(`unref`in e)||typeof e.unref!=`function`||e.unref(),e}function Or({mode:e,delayMs:t,run:n,setTimeoutFn:r=Er.setTimeoutFn,clearTimeoutFn:i=Er.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&&Dr(o))}return{schedule:c,cancel:s,get isArmed(){return o!==null}}}function kr(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 Ar=Object.freeze({layout:`desktop`,activeView:`focus`,phoneScreen:null,focusedSessionId:null,selectedSessionId:null,borrowedCardId:null}),jr=e=>e||null,Mr=Object.freeze({setLayout:e=>({layout:e}),setActiveView:e=>({activeView:e}),setPhoneScreen:e=>({phoneScreen:jr(e)}),focusSession:e=>({focusedSessionId:jr(e)}),selectSession:e=>({selectedSessionId:jr(e)}),borrowCard:e=>({borrowedCardId:jr(e)})});function Nr(e){let t=Object.freeze({...Ar,...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 Ar))throw Error(`ui-state: unknown key "${r}"`);Object.is(t[r],e[r])||n.push(r)}return n}function o(e,r){let i=Mr[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=Nr(),Pr=()=>L.snapshot().activeView;function Fr(){return L.snapshot().borrowedCardId}function Ir(e,t,n,{className:r}={}){if(!e?.card||!n)return;let i=Fr();i&&i!==t&&Lr();let a=e.card;a._cardHostClass&&a._cardHostClass!==r&&a.classList.remove(a._cardHostClass),a._cardHostClass=r||``,r&&a.classList.add(r),Ee(a,n),L.dispatch(`borrowCard`,t),e._ensureTerminalReady?.(),e._setBorrowed?.(!0),e._showPreferredFace?.()}function Lr(){let e=Fr();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,_e(n,lt)),e}var Rr=68,zr=42,Br=768,Vr=.68,Hr=64,Ur=5,Wr=8,Gr=85;function Kr(e,t,n){return Math.min(Math.max(e,t),n)}function qr({viewportWidthPx:e,viewportHeightPx:t,verticalProgress:n,isRightToLeft:r=!1,arcProgress:i=0}){let a=Kr(e/Br,Vr,1),o=(Ur+70*n*n)*t/100,s=Math.max(o,Hr),c=Gr*t/100,l=Kr(i*Wr*t/100,Hr-s,c-s),u=-.45*e,d=1.45*e;return{scale:a,spriteWidthPx:Rr,spriteHeightPx:zr,topPx:s,startXpx:r?d:u,endXpx:r?u:d,facing:r?-1:1,arcPx:l}}function Jr(e,t){let n=Number.isFinite(t)&&t>0?t:1;return Math.max(1,Math.round(e*n))/n}function Yr(e,t,n){let r=Jr(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 Xr=qr({viewportWidthPx:1440,viewportHeightPx:900,verticalProgress:0});function Zr(e,t=``){let n=k(`div`,`flying-animal-preview ${t}`.trim());n.setAttribute(`aria-hidden`,`true`),n.style.setProperty(`--nyan-width`,`${Xr.spriteWidthPx}px`),n.style.setProperty(`--nyan-height`,`${Xr.spriteHeightPx}px`);let r=k(`div`,`flying-animal-preview-stage`);return r.append(k(`div`,`nyan-trail ${e.trail}`),k(`div`,`nyan-sprite ${e.sprite}`)),n.append(r),n}function Qr(){let e=ft(Vt().flyingAnimalsExcludedSprites);return e===null?null:_t[e]??null}var $r=[],ei=new Set;function ti(e){let t=m.safeParse(e);if(t.success){$r=t.data;for(let e of ei)e()}}function ni(e){return $r.find(t=>t.agent===e)??null}function ri(e){return ei.add(e),()=>{ei.delete(e)}}function ii(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 ai({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 oi(e,t){if(!e)return null;let n=t.get(e);return!n||(n.currentState||b.DORMANT)===b.DORMANT?null:e}function si(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 ci(e,t){let n=0;for(let r of t)si(r,e)&&n++;return n}function li(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 ui(){let e=[];for(let[,t]of F)e.push(t.card.dataset.session??``);return e}function di(e){return ci(e,ui())}function fi(e){return li(e??``,ui())}function R(){return L.snapshot().selectedSessionId}function pi(e){L.dispatch(`selectSession`,e)}function mi(e){return L.subscribe((t,n)=>{n.includes(`selectedSessionId`)&&e(t.selectedSessionId)})}var hi=`modulepreload`,gi=function(e){return`/`+e},_i={},vi=function(e){return e.pathname.endsWith(`.css`)},yi=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},bi=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=gi(t,n);let r=s(t),i=vi(r);return yi(_i,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`:hi,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 xi(e,t=`explicit-state`){let n=F.get(e);if(!n)return null;let r=ii(n.currentState,t);return r&&$n(n,{type:r,id:e}),n}function Si(e,{rememberFocus:t=!0}={}){pi(e),t&&fn(e)}function Ci(){return oi(qt(),F)}function wi(e=st){let t=[...F];return In(t,e)}function Ti(e,t){let n=F.get(e);return n?$n(n,t):j(t)?!0:(I({source:`Session action`,sessionId:e,message:`${l} Try the action again once the header shows Connected.`}),!1)}var Ei=`Add session`;function Di(e){return e.type===`add-session-result`&&e.error?e.error:e.type===`error`?e.message:`The session was not added.`}var Oi=!1;function ki(e){Oi||(Oi=!0,bi(()=>import(`./dialogs-DFruideh.js`).then(t=>{Oi=!1,e(t)},()=>{Oi=!1,I({source:Ei,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 Ai(){ki(e=>e.createAddSessionDialog())}async function ji(e,t){try{let n=fi(t),r=await M(`add-session`,{name:n,path:e},{timeoutMs:wn});if(r.type===`add-session-result`&&r.ok){bn(Ei);return}I({source:Ei,message:Di(r)})}catch(e){I({source:Ei,message:`The session was not added: ${Cn(e,wn)} Add it again once the server answers.`})}}function Mi(e,t){e&&ji(e,t)}async function Ni(e,t){try{let n=await M(`quick-session`,{id:e},{timeoutMs:wn});if(n.type===`add-session-result`&&n.ok){bn(Ei),n.sessionId&&t(n.sessionId);return}I({source:Ei,sessionId:e,message:Di(n)})}catch(t){I({source:Ei,sessionId:e,message:`The session was not added: ${Cn(t,wn)} Add it again once the server answers.`})}}function Pi(e,t){Ni(e,t)}var Fi=39e5,Ii=`Remove session`;async function Li(e,t,n,r=[]){try{let i=await M(`remove-session`,{id:t,discardWork:n,confirmedKeptPaths:r},{timeoutMs:Fi});if(i.type!==`remove-session-result`||i.ok)return;if(!i.canDiscardWork){I({source:Ii,sessionId:t,message:`"${st(e)}" was not removed: ${i.error??`the server gave no reason`}. Try Remove again from its actions menu.`});return}mr({title:`Remove Session`,message:i.error??`Remove session "${st(e)}"?`,confirmLabel:`Remove`,danger:!0,onConfirm:()=>{Li(e,t,!0,(i.keptPaths??[]).map(e=>e.path))}})}catch(n){I({source:Ii,sessionId:t,message:`"${st(e)}" was not removed: ${Cn(n,Fi)} Try Remove again from its actions menu.`})}}function Ri(e){let t=F.get(e);t&&Li(t,e,!1)}function zi(e,t,n){return{body:String(n||`Session needs attention`),tag:`glimmervoid-${e||``}-${t||``}`,renotify:!0}}var Bi=4e3;function Vi(e,t){return`glimmervoid-notify-claim-${e||``}-${t||``}`}function Hi(e,t,n,r=Bi){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 Ui=`#plan/`;function Wi(e){return`${Ui}${encodeURIComponent(e)}`}function Gi(e){if(!e.startsWith(Ui))return null;let t=e.slice(6);if(!t||t.includes(`/`))return null;try{return decodeURIComponent(t)||null}catch{return null}}function Ki(){return typeof Notification>`u`?null:Notification}function qi(){return Ki()!==null}function Ji(){let e=Ki();return e?e.permission:`unavailable`}async function Yi(){let e=Ki();if(!e)return`denied`;if(e.permission!=="default")return e.permission;try{return await e.requestPermission()}catch{return e.permission}}function Xi(){return!qi()&&!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.`:qi()?Ji()===`denied`&&At()?`Blocked by the browser. Allow notifications for this site in its site settings.`:null:`This browser does not support desktop notifications.`}function Zi(){return At()&&Ji()==="default"}function Qi(e=()=>{}){let t=k(`div`,`notification-permission`),n=()=>{let r=Xi();if(t.replaceChildren(),t.hidden=!r&&!Zi(),r){t.append(k(`p`,`notification-permission-hint text-xs text-text-muted`,r));return}let i=k(`button`,`btn-dialog btn-dialog-cancel`,`Enable desktop notifications`);i.type=`button`,i.addEventListener(`click`,()=>{i.disabled=!0,Yi().then(()=>{n(),e()})}),t.append(i)};return n(),{element:t,refresh:n}}var $i=`Notifications`,ea=`Desktop notifications are blocked by the browser, so alerts show only in this tab. Allow notifications for this site to get them again.`,ta=new Map,na=!1;function ra(){na||(na=!0,I({source:$i,message:ea,hidesInStreamerMode:!1}))}function ia(e,t){let n=ta.get(e)??new Set;n.add(t),ta.set(e,n),t.addEventListener(`close`,()=>n.delete(t))}function aa(e){let t=ta.get(e);if(t){ta.delete(e);for(let e of t)e.close()}}function oa(e){return!qi()||!At()||document.documentElement.hasAttribute(`data-streamer`)?!1:e||!document.hasFocus()}function sa(e=!1){return oa(e)&&Ji()===`granted`}function ca({session:e,category:t,message:n,kind:r,ignoreFocus:i=!1}={}){let a=Ki();if(!a||!oa(!!i)||(a.permission===`denied`&&ra(),a.permission!==`granted`)||(bn($i),!Hi(window.localStorage,Vi(e,t),Date.now())))return;let o=typeof e==`string`?e:``,s=F.get(o),c=s?st(s):``;try{let i=new a(c||`Glimmervoid`,zi(e,t,n));i.onclick=()=>{window.focus(),r===`plan`&&o&&(window.location.hash=Wi(o)),i.close()},s&&ia(o,i)}catch{}}var la=200;function ua(e,t=null){return`#settings/${encodeURIComponent(e)}${t?`/${encodeURIComponent(t)}`:``}`}function da(e){return/^#settings(?:[/?]|$)/.test(e)}function fa(e){let t=e.trim();return t?`#settings?q=${encodeURIComponent(t)}`:`#settings`}function pa(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,la).join(``).trim()}}function ma(e,t,n){let r=k(`a`,`settings-link`,n);return r.href=ua(e,t),r}var ha=Xt(navigator.userAgent),ga=`next-attention-keys`,_a=$t();function va(){return _a}function ya(e,t){t.forEach((t,n)=>{n>0&&e.appendChild(k(`span`,`shortcut-sep`,`+`)),e.appendChild(k(`kbd`,`kbd`,t))})}function ba(e){let t=k(`span`,`shortcut-keys`);return ya(t,e),t}function xa(){let e=ba(nn(`next-attention`,ha,_a));return e.classList.add(ga),e}function Sa(e){_a=e;let t=nn(`next-attention`,ha,e);for(let e of document.querySelectorAll(`.${ga}`))e.replaceChildren(),ya(e,t)}var Ca=`claude-code`;function wa(e,{defaultId:t=Ca}={}){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 Ta=`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 Ea(e){let t=typeof e==`object`&&e?e:null;return t===null||!Array.isArray(t.agents)||t.error||wa(t.agents).options.length>0?{canSpawn:!0,guidance:``}:{canSpawn:!1,guidance:Ta}}var Da={agent:`upcoming`,repoRoots:`upcoming`,firstSession:`upcoming`};function Oa(e,t){return e<t?`done`:e===t?`current`:`upcoming`}function ka({agentListing:e,repoRoots:t}){let n=Ea(e).canSpawn?t.length===0?2:3:1;return{agent:Oa(1,n),repoRoots:Oa(2,n),firstSession:Oa(3,n)}}var Aa=[[`agent`,`agent`],[`repoRoots`,`repo_roots`],[`firstSession`,`first_session`]];function ja({step:e,state:t}){return`${e}:${t}`}function Ma(e,t){let n=[];for(let[r,i]of Aa){let a=t[r];if(a===`upcoming`)continue;let o={step:i,state:a};e.has(ja(o))||n.push(o)}return n}function Na(e){return wa(typeof e==`object`&&e?e.agents:[]).options.map(e=>e.label).join(`, `)}function Pa(e){return e===1?`1 git repo`:`${e} git repos`}function Fa(e,t){let n=t.trim();return!n||e.includes(n)?null:[...e,n]}var Ia=0,La=`Could not read the current repository roots.`;function Ra(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}async function za(e){let t=await M(`get-settings`,{});if(t.type!==`settings`)return La;let n=t.settings.repoRoots;if(!Ra(n))return La;let r=Fa(n,e);if(!r)return null;let i=await M(`update-settings`,{settings:{repoRoots:r}});return i.type===`settings-error`?i.message:null}function Ba({onAdded:e}){Ia+=1;let t=`repo-roots-adder-path-${Ia}`,n=k(`div`,`repo-roots-adder`),r=k(`div`,`repo-roots-adder-found`),i=k(`span`,`repo-roots-adder-label`,`FOUND ON THIS MACHINE`),a=k(`ul`,`repo-roots-adder-list`);r.append(i,a),r.hidden=!0;let o=k(`label`,`repo-roots-adder-label`,`TYPE A PATH`);o.htmlFor=t;let s=k(`div`,`repo-roots-adder-row`),c=k(`input`,`dialog-input repo-roots-adder-input`);c.id=t,c.type=`text`,c.placeholder=`~/src`,c.autocomplete=`off`,c.spellcheck=!1;let l=k(`button`,`btn-dialog btn-dialog-cancel`,`Add`);l.type=`button`,l.disabled=!0,s.append(c,l);let u=k(`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 za(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=k(`li`,`repo-roots-adder-suggestion`),n=k(`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(k(`span`,`repo-roots-adder-path`,t.label),k(`span`,`repo-roots-adder-count`,Pa(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 Va=`npm install -g @anthropic-ai/claude-code`,Ha={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>`},Ua=null,Wa=null,Ga=null,Ka=null,qa={steps:Da,agentSummary:``,repoRoots:[]},Ja=0,Ya=new Set,Xa=vn(`first-run-load-status`),Za=Qi();function Qa(e){j({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`onboarding`,action:e}})}function $a(e){for(let t of Ma(Ya,e))j({type:`dashboard-telemetry`,event:`onboarding_step`,properties:t})&&Ya.add(ja(t))}function eo({title:e,state:t,summary:n,badge:r,body:i}){let a=k(`li`,`first-run-step`);a.dataset.state=t,t===`current`&&a.setAttribute(`aria-current`,`step`);let o=k(`div`,`first-run-step-head`),s=k(`span`,`first-run-step-icon`);if(s.innerHTML=Ha[t],o.append(s,k(`span`,`first-run-step-title`,e)),t===`done`&&n&&o.append(k(`span`,`first-run-step-summary`,n)),t===`current`&&r&&o.append(k(`span`,`first-run-step-badge`,r)),a.append(o),t!==`current`)return a;let c=k(`div`,`first-run-step-body`);return c.append(...i()),a.append(c),a}function to(){let e=k(`div`,`first-run-step-actions`);return Ga=k(`button`,`btn-dialog btn-dialog-cancel`,`Rescan`),Ga.type=`button`,Ga.addEventListener(`click`,()=>{Qa(`rescan`),ao({rescanAgents:!0})}),e.append(Ga,k(`span`,`first-run-step-hint`,`Any other terminal agent can be added under customAgents.`)),[k(`p`,`first-run-step-text`,`No supported agent is on PATH. Install Claude Code, Codex or Grok, then rescan. Rescan still finding nothing means the CLI went into a folder the server cannot see: restart Glimmervoid from a terminal where the command runs.`),k(`code`,`first-run-command`,Va),e]}function no(){let e=Ka??Ba({onAdded:e=>{Qa(e===`typed`?`add-root-typed`:`add-root-suggested`),ao({rescanAgents:!1})}});return Ka=e,[k(`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 ro(){let e=k(`div`,`first-run-step-actions`),t=k(`button`,`btn-dialog btn-dialog-confirm`,`+ Session`);t.type=`button`,t.addEventListener(`click`,()=>{Qa(`add-session`),Ai()});let n=k(`span`,`first-run-step-hint`,`Folders and agents can change later in `);n.append(ma(`machine-sessions`,`repository-roots`,`Settings > Sessions`),`.`),e.append(t,n);let r=k(`p`,`first-run-step-text`,`Run a few at once. When one needs you, `);return r.append(xa(),` jumps straight to it from any tab.`),[k(`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.`),r,e]}function io(){if(!Wa)return;let{steps:e,agentSummary:t,repoRoots:n}=qa;Wa.replaceChildren(eo({title:`1. Agent CLI`,state:e.agent,summary:t,badge:`MISSING`,body:to}),eo({title:`2. Repository roots`,state:e.repoRoots,summary:n.join(`, `),badge:`NEEDED`,body:no}),eo({title:`3. First session`,state:e.firstSession,summary:``,badge:``,body:ro}))}async function ao({rescanAgents:e}){Ja+=1;let t=Ja;Ga&&(Ga.disabled=!0);try{let[n,r]=await Promise.all([M(`list-agents`,e?{rescan:!0}:{},{timeoutMs:wn}),M(`scan-repo-roots`,{includeSuggestions:!0},{timeoutMs:wn})]);if(t!==Ja)return;let i=r.type===`repo-roots-scanned`,a=i?r.directories.map(e=>e.root):[];qa={steps:ka({agentListing:n,repoRoots:a}),agentSummary:Na(n),repoRoots:a},Xa.clear(),io(),$a(qa.steps),Ka?.setSuggestions(i?r.suggestions??[]:[])}catch(e){if(Ga&&(Ga.disabled=!1),t!==Ja)return;Xa.show(`error`,`The checklist could not load: ${Cn(e,wn)} It loads again once the server answers. If it stays like this, check the terminal running Glimmervoid, or run glimmervoid doctor.`)}}function oo(){if(Ua)return Ua;let e=k(`section`,`first-run-checklist`);e.setAttribute(`aria-labelledby`,`first-run-title`);let t=k(`h2`,`first-run-title`,`Get to your first session`);t.id=`first-run-title`,Wa=k(`ol`,`first-run-steps`);let n=k(`p`,`first-run-footer`,`This list goes away once a session exists. Something off? Run `);return n.append(k(`code`,null,`glimmervoid doctor`),` in a terminal.`),e.append(k(`span`,`first-run-eyebrow`,`FIRST RUN`),t,k(`p`,`first-run-intro`,`Glimmervoid runs the agent CLIs you already have, inside the repositories you point it at. Two checks, then start.`),Wa,Xa.element,Za.element,n),Ua=e,io(),e}function so(e,t){if(!t){Ua?.parentElement===e&&(Ua.hidden=!0);return}let n=oo(),r=!n.hidden&&n.parentElement===e;n.parentElement!==e&&e.append(n),n.hidden=!1,Za.refresh(),r||ao({rescanAgents:!1})}function co(){Ua&&!Ua.hidden&&Ua.isConnected&&ao({rescanAgents:!1})}var lo=new Set([`http:`,`https:`]);function uo(e){let t;try{t=new URL(e)}catch{return null}return lo.has(t.protocol)?t.href:null}var fo=2,po=8,mo=/^ {0,3}(`{3,}|~{3,})([^`]*)$/,ho=/^(\s*)(?:([-+*])|(\d+)[.)])\s+(.+)$/,go=/^ {0,3}(?:(?:\*\s*){3,}|(?:-\s*){3,}|(?:_\s*){3,})$/,_o=/^:?-{3,}:?$/,vo=/^[A-Za-z0-9_+#.-]{1,32}$/;function yo(e){return E(e,{overlongLine:`reject`})}function bo(e){let t=e.trim().split(/\s+/)[0]??``;return vo.test(t)?t:``}function xo(e,t){if(!t)return;let n=e.at(-1);n?.type===`text`?n.text+=t:e.push({type:`text`,text:t})}function So(e,t){return e.startsWith(`**`,t)?`**`:e.startsWith(`__`,t)?`__`:null}function Co(e,t){return e.startsWith(`*`,t)?`*`:e.startsWith(`_`,t)?`_`:null}function wo(e,t,n){let r=e.indexOf(t,n);return r>n?r:-1}function To(e,t){let n=e.indexOf(t);return function(r){return n===-1?-1:(n>=r||(n=e.indexOf(t,r)),n)}}function Eo(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>fo)return-1}return-1}function Do(e,t,n){if(e[t]!==`[`)return null;let r=n(t+1);if(r<=t+1||e[r+1]!==`(`)return null;let i=Eo(e,r+2);return i===-1?null:{label:e.slice(t+1,r),target:e.slice(r+2,i),end:i+1}}function Oo(e){let t=[],n=To(e,`]`),r=0;for(;r<e.length;){let i=Do(e,r,n);if(i){let e=uo(i.target.trim());e&&t.push({type:`link`,href:e,children:Oo(i.label)}),e||xo(t,i.label),r=i.end;continue}if(e.startsWith("`",r)){let n=wo(e,"`",r+1);if(n!==-1){t.push({type:`code`,text:e.slice(r+1,n)}),r=n+1;continue}}let a=So(e,r);if(a){let n=wo(e,a,r+a.length);if(n!==-1){t.push({type:`strong`,children:Oo(e.slice(r+a.length,n))}),r=n+a.length;continue}}let o=Co(e,r);if(o){let n=wo(e,o,r+1);if(n!==-1){t.push({type:`emphasis`,children:Oo(e.slice(r+1,n))}),r=n+1;continue}}xo(t,e[r]),r++}return t}function ko(e){return e.map(e=>e.type===`text`||e.type===`code`?e.text:ko(e.children)).join(``)}var Ao=`plan-h-`;function jo(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),`${Ao}${r===1?n:`${n}-${r}`}`}function Mo(e){if(typeof e!=`string`||!e.includes(`|`))return!1;let t=No(e);return t.length<2?!1:t.every(e=>_o.test(e))}function No(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 Po(e){let t=ho.exec(e);return t?{indent:t[1].replace(/\t/g,` `).length,ordered:!!t[3],content:t[4]}:null}function Fo(e,t,n,r){let i=Po(e[t]);if(!i)return null;let a=[],o=i.ordered,s=i.indent,c=t;for(;c<e.length;){let t=Po(e[c]);if(!t||t.indent<s)break;if(t.indent>s){if(r>=po)break;let t=Fo(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:Oo(t.content)}]}),c++}}return{block:{type:`list`,ordered:o,items:a},next:c}}function Io(e,t){let n=e[t]??``;return n.trim()===``||yo(n)||mo.test(n)||go.test(n)||Po(n)||/^ {0,3}>/.test(n)?!0:t+1<e.length&&n.includes(`|`)&&Mo(e[t+1])}function Lo(e,t,n){let r=[],i=0;for(;i<e.length;){let a=e[i];if(a.trim()===``){i++;continue}let o=mo.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:bo(o[2]),text:t.join(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dialogs-8m7180k8.js","assets/dom-helpers-D7V9q-Y4.js","assets/zod-BRLv4KqJ.js","assets/control-ws-6I4n2_Rl.js","assets/poll-ago-jEMVa0Q3.js","assets/action-status-hJ8vrTK4.js","assets/modal-CpGyiWuk.js","assets/plan-face-BClsoNpb.js","assets/roving-keys-core-BDobx2It.js","assets/review-queue-panel-ClVRKiPp.js","assets/ui-prefs-Kmmz3DzP.js","assets/pr-scope-tabs-e_OqRqOw.js","assets/issues-panel-Df6U2O29.js","assets/usage-panel-DDmlDx0T.js","assets/radar-panel-DA4A9eQ3.js","assets/visions-panel-tzrwcp5a.js","assets/hooks-panel-BS8xOh4f.js","assets/trace-panel-CeruQF0K.js","assets/benchmark-panel-B4g1WsZ5.js","assets/settings-panel-D9uy1Omm.js"])))=>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 ee,O as w,On as T,Pn as te,Qt as E,R as ne,Rt as re,S as ie,Tt as ae,Ut as oe,Wt as se,Xt as ce,Zt as le,_ as ue,_t as de,b as fe,c as pe,d as me,en as he,f as ge,g as _e,h as D,ht as ve,j as ye,jt as be,l as xe,m as O,mt as Se,n as Ce,o as k,qt as we,rt as Te,s as A,t as Ee,tn as De,v as Oe,wn as ke,wt as Ae,x as je,y as Me,yt as Ne,z as Pe}from"./dom-helpers-D7V9q-Y4.js";import{S as Fe,_ as Ie,a as Le,b as Re,c as ze,d as Be,f as Ve,g as He,h as Ue,i as We,l as j,m as Ge,n as Ke,o as qe,p as Je,r as Ye,s as Xe,t as Ze,u as M,v as Qe,x as $e,y as et}from"./control-ws-6I4n2_Rl.js";import{a as tt,c as nt,d as N,f as P,i as rt,l as it,m as F,n as at,o as ot,p as st,s as ct,u as lt}from"./poll-ago-jEMVa0Q3.js";import{C as ut,Ct as dt,Dt as ft,E as pt,J as mt,K as ht,O as gt,Ot as _t,Q as vt,R as yt,St as bt,T as xt,Tt as St,U as Ct,Y as wt,Z as Tt,_ as Et,_t as Dt,a as Ot,at as kt,b as At,bt as jt,c as Mt,ct as Nt,d as Pt,et as Ft,f as It,ft as Lt,gt as Rt,h as zt,ht as Bt,i as Vt,it as Ht,k as Ut,m as Wt,mt as Gt,n as Kt,o as qt,ot as Jt,p as Yt,pt as Xt,q as Zt,rt as Qt,s as $t,t as en,u as tn,ut as nn,v as rn,vt as an,w as on,wt as sn,x as cn,xt as ln,y as un,yt as dn,z as fn}from"./ui-prefs-Kmmz3DzP.js";import{C as pn,S as mn,c as hn,f as gn,h as _n,i as vn,m as yn,n as bn,o as I,p as xn,r as Sn,s as Cn,t as wn,u as Tn,w as En}from"./action-status-hJ8vrTK4.js";import{A as Dn,C as On,D as kn,E as An,F as jn,I as Mn,L as Nn,M as Pn,N as Fn,O as In,P as Ln,R as Rn,S as zn,T as Bn,_ as Vn,a as Hn,b as Un,c as Wn,d as Gn,f as Kn,g as qn,h as Jn,i as Yn,j as Xn,k as Zn,l as Qn,m as $n,n as er,o as tr,p as nr,r as rr,s as ir,t as ar,u as or,v as sr,w as cr,x as lr,y as ur,z as dr}from"./card-dom-D4NvWM47.js";import{n as fr,t as pr}from"./roving-keys-core-BDobx2It.js";import{a as mr,i as hr,n as gr,r as _r,t as vr}from"./modal-CpGyiWuk.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 yr=new Map,br=new Set;function xr(e){let t=he.safeParse(e);if(!t.success)ze(`reviews`,`dropped github-prs: ${Fe(t.error.issues)}`);else{yr=new Map(Object.entries(t.data.prs));for(let e of br)e()}}function Sr(e){return yr.get(e.toLowerCase())}function Cr(e){br.add(e)}function wr(e){return e===`remote`?`remote`:`local`}function Tr(e,t){return wr(t)===`local`||e!==`shutdown`}var Er=Object.freeze({setTimeoutFn:(e,t)=>setTimeout(e,t),clearTimeoutFn:e=>clearTimeout(e),setIntervalFn:(e,t)=>setInterval(e,t),clearIntervalFn:e=>clearInterval(e)});function Dr(e){return typeof e!=`object`||!e||!(`unref`in e)||typeof e.unref!=`function`||e.unref(),e}function Or({mode:e,delayMs:t,run:n,setTimeoutFn:r=Er.setTimeoutFn,clearTimeoutFn:i=Er.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&&Dr(o))}return{schedule:c,cancel:s,get isArmed(){return o!==null}}}function kr(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 Ar=Object.freeze({layout:`desktop`,activeView:`focus`,phoneScreen:null,focusedSessionId:null,selectedSessionId:null,borrowedCardId:null}),jr=e=>e||null,Mr=Object.freeze({setLayout:e=>({layout:e}),setActiveView:e=>({activeView:e}),setPhoneScreen:e=>({phoneScreen:jr(e)}),focusSession:e=>({focusedSessionId:jr(e)}),selectSession:e=>({selectedSessionId:jr(e)}),borrowCard:e=>({borrowedCardId:jr(e)})});function Nr(e){let t=Object.freeze({...Ar,...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 Ar))throw Error(`ui-state: unknown key "${r}"`);Object.is(t[r],e[r])||n.push(r)}return n}function o(e,r){let i=Mr[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=Nr(),Pr=()=>L.snapshot().activeView;function Fr(){return L.snapshot().borrowedCardId}function Ir(e,t,n,{className:r}={}){if(!e?.card||!n)return;let i=Fr();i&&i!==t&&Lr();let a=e.card;a._cardHostClass&&a._cardHostClass!==r&&a.classList.remove(a._cardHostClass),a._cardHostClass=r||``,r&&a.classList.add(r),Ee(a,n),L.dispatch(`borrowCard`,t),e._ensureTerminalReady?.(),e._setBorrowed?.(!0),e._showPreferredFace?.()}function Lr(){let e=Fr();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,_e(n,lt)),e}var Rr=68,zr=42,Br=768,Vr=.68,Hr=64,Ur=5,Wr=8,Gr=85;function Kr(e,t,n){return Math.min(Math.max(e,t),n)}function qr({viewportWidthPx:e,viewportHeightPx:t,verticalProgress:n,isRightToLeft:r=!1,arcProgress:i=0}){let a=Kr(e/Br,Vr,1),o=(Ur+70*n*n)*t/100,s=Math.max(o,Hr),c=Gr*t/100,l=Kr(i*Wr*t/100,Hr-s,c-s),u=-.45*e,d=1.45*e;return{scale:a,spriteWidthPx:Rr,spriteHeightPx:zr,topPx:s,startXpx:r?d:u,endXpx:r?u:d,facing:r?-1:1,arcPx:l}}function Jr(e,t){let n=Number.isFinite(t)&&t>0?t:1;return Math.max(1,Math.round(e*n))/n}function Yr(e,t,n){let r=Jr(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 Xr=qr({viewportWidthPx:1440,viewportHeightPx:900,verticalProgress:0});function Zr(e,t=``){let n=k(`div`,`flying-animal-preview ${t}`.trim());n.setAttribute(`aria-hidden`,`true`),n.style.setProperty(`--nyan-width`,`${Xr.spriteWidthPx}px`),n.style.setProperty(`--nyan-height`,`${Xr.spriteHeightPx}px`);let r=k(`div`,`flying-animal-preview-stage`);return r.append(k(`div`,`nyan-trail ${e.trail}`),k(`div`,`nyan-sprite ${e.sprite}`)),n.append(r),n}function Qr(){let e=ft(Vt().flyingAnimalsExcludedSprites);return e===null?null:_t[e]??null}var $r=[],ei=new Set;function ti(e){let t=m.safeParse(e);if(t.success){$r=t.data;for(let e of ei)e()}}function ni(e){return $r.find(t=>t.agent===e)??null}function ri(e){return ei.add(e),()=>{ei.delete(e)}}function ii(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 ai({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 oi(e,t){if(!e)return null;let n=t.get(e);return!n||(n.currentState||b.DORMANT)===b.DORMANT?null:e}function si(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 ci(e,t){let n=0;for(let r of t)si(r,e)&&n++;return n}function li(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 ui(){let e=[];for(let[,t]of F)e.push(t.card.dataset.session??``);return e}function di(e){return ci(e,ui())}function fi(e){return li(e??``,ui())}function R(){return L.snapshot().selectedSessionId}function pi(e){L.dispatch(`selectSession`,e)}function mi(e){return L.subscribe((t,n)=>{n.includes(`selectedSessionId`)&&e(t.selectedSessionId)})}var hi=`modulepreload`,gi=function(e){return`/`+e},_i={},vi=function(e){return e.pathname.endsWith(`.css`)},yi=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},bi=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=gi(t,n);let r=s(t),i=vi(r);return yi(_i,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`:hi,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 xi(e,t=`explicit-state`){let n=F.get(e);if(!n)return null;let r=ii(n.currentState,t);return r&&$n(n,{type:r,id:e}),n}function Si(e,{rememberFocus:t=!0}={}){pi(e),t&&fn(e)}function Ci(){return oi(qt(),F)}function wi(e=st){let t=[...F];return In(t,e)}function Ti(e,t){let n=F.get(e);return n?$n(n,t):j(t)?!0:(I({source:`Session action`,sessionId:e,message:`${l} Try the action again once the header shows Connected.`}),!1)}var Ei=`Add session`;function Di(e){return e.type===`add-session-result`&&e.error?e.error:e.type===`error`?e.message:`The session was not added.`}var Oi=!1;function ki(e){Oi||(Oi=!0,bi(()=>import(`./dialogs-8m7180k8.js`).then(t=>{Oi=!1,e(t)},()=>{Oi=!1,I({source:Ei,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 Ai(){ki(e=>e.createAddSessionDialog())}async function ji(e,t){try{let n=fi(t),r=await M(`add-session`,{name:n,path:e},{timeoutMs:wn});if(r.type===`add-session-result`&&r.ok){bn(Ei);return}I({source:Ei,message:Di(r)})}catch(e){I({source:Ei,message:`The session was not added: ${Cn(e,wn)} Add it again once the server answers.`})}}function Mi(e,t){e&&ji(e,t)}async function Ni(e,t){try{let n=await M(`quick-session`,{id:e},{timeoutMs:wn});if(n.type===`add-session-result`&&n.ok){bn(Ei),n.sessionId&&t(n.sessionId);return}I({source:Ei,sessionId:e,message:Di(n)})}catch(t){I({source:Ei,sessionId:e,message:`The session was not added: ${Cn(t,wn)} Add it again once the server answers.`})}}function Pi(e,t){Ni(e,t)}var Fi=39e5,Ii=`Remove session`;async function Li(e,t,n,r=[]){try{let i=await M(`remove-session`,{id:t,discardWork:n,confirmedKeptPaths:r},{timeoutMs:Fi});if(i.type!==`remove-session-result`||i.ok)return;if(!i.canDiscardWork){I({source:Ii,sessionId:t,message:`"${st(e)}" was not removed: ${i.error??`the server gave no reason`}. Try Remove again from its actions menu.`});return}mr({title:`Remove Session`,message:i.error??`Remove session "${st(e)}"?`,confirmLabel:`Remove`,danger:!0,onConfirm:()=>{Li(e,t,!0,(i.keptPaths??[]).map(e=>e.path))}})}catch(n){I({source:Ii,sessionId:t,message:`"${st(e)}" was not removed: ${Cn(n,Fi)} Try Remove again from its actions menu.`})}}function Ri(e){let t=F.get(e);t&&Li(t,e,!1)}function zi(e,t,n){return{body:String(n||`Session needs attention`),tag:`glimmervoid-${e||``}-${t||``}`,renotify:!0}}var Bi=4e3;function Vi(e,t){return`glimmervoid-notify-claim-${e||``}-${t||``}`}function Hi(e,t,n,r=Bi){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 Ui=`#plan/`;function Wi(e){return`${Ui}${encodeURIComponent(e)}`}function Gi(e){if(!e.startsWith(Ui))return null;let t=e.slice(6);if(!t||t.includes(`/`))return null;try{return decodeURIComponent(t)||null}catch{return null}}function Ki(){return typeof Notification>`u`?null:Notification}function qi(){return Ki()!==null}function Ji(){let e=Ki();return e?e.permission:`unavailable`}async function Yi(){let e=Ki();if(!e)return`denied`;if(e.permission!=="default")return e.permission;try{return await e.requestPermission()}catch{return e.permission}}function Xi(){return!qi()&&!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.`:qi()?Ji()===`denied`&&At()?`Blocked by the browser. Allow notifications for this site in its site settings.`:null:`This browser does not support desktop notifications.`}function Zi(){return At()&&Ji()==="default"}function Qi(e=()=>{}){let t=k(`div`,`notification-permission`),n=()=>{let r=Xi();if(t.replaceChildren(),t.hidden=!r&&!Zi(),r){t.append(k(`p`,`notification-permission-hint text-xs text-text-muted`,r));return}let i=k(`button`,`btn-dialog btn-dialog-cancel`,`Enable desktop notifications`);i.type=`button`,i.addEventListener(`click`,()=>{i.disabled=!0,Yi().then(()=>{n(),e()})}),t.append(i)};return n(),{element:t,refresh:n}}var $i=`Notifications`,ea=`Desktop notifications are blocked by the browser, so alerts show only in this tab. Allow notifications for this site to get them again.`,ta=new Map,na=!1;function ra(){na||(na=!0,I({source:$i,message:ea,hidesInStreamerMode:!1}))}function ia(e,t){let n=ta.get(e)??new Set;n.add(t),ta.set(e,n),t.addEventListener(`close`,()=>n.delete(t))}function aa(e){let t=ta.get(e);if(t){ta.delete(e);for(let e of t)e.close()}}function oa(e){return!qi()||!At()||document.documentElement.hasAttribute(`data-streamer`)?!1:e||!document.hasFocus()}function sa(e=!1){return oa(e)&&Ji()===`granted`}function ca({session:e,category:t,message:n,kind:r,ignoreFocus:i=!1}={}){let a=Ki();if(!a||!oa(!!i)||(a.permission===`denied`&&ra(),a.permission!==`granted`)||(bn($i),!Hi(window.localStorage,Vi(e,t),Date.now())))return;let o=typeof e==`string`?e:``,s=F.get(o),c=s?st(s):``;try{let i=new a(c||`Glimmervoid`,zi(e,t,n));i.onclick=()=>{window.focus(),r===`plan`&&o&&(window.location.hash=Wi(o)),i.close()},s&&ia(o,i)}catch{}}var la=200;function ua(e,t=null){return`#settings/${encodeURIComponent(e)}${t?`/${encodeURIComponent(t)}`:``}`}function da(e){return/^#settings(?:[/?]|$)/.test(e)}function fa(e){let t=e.trim();return t?`#settings?q=${encodeURIComponent(t)}`:`#settings`}function pa(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,la).join(``).trim()}}function ma(e,t,n){let r=k(`a`,`settings-link`,n);return r.href=ua(e,t),r}var ha=Xt(navigator.userAgent),ga=`next-attention-keys`,_a=$t();function va(){return _a}function ya(e,t){t.forEach((t,n)=>{n>0&&e.appendChild(k(`span`,`shortcut-sep`,`+`)),e.appendChild(k(`kbd`,`kbd`,t))})}function ba(e){let t=k(`span`,`shortcut-keys`);return ya(t,e),t}function xa(){let e=ba(nn(`next-attention`,ha,_a));return e.classList.add(ga),e}function Sa(e){_a=e;let t=nn(`next-attention`,ha,e);for(let e of document.querySelectorAll(`.${ga}`))e.replaceChildren(),ya(e,t)}var Ca=`claude-code`;function wa(e,{defaultId:t=Ca}={}){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 Ta=`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 Ea(e){let t=typeof e==`object`&&e?e:null;return t===null||!Array.isArray(t.agents)||t.error||wa(t.agents).options.length>0?{canSpawn:!0,guidance:``}:{canSpawn:!1,guidance:Ta}}var Da={agent:`upcoming`,repoRoots:`upcoming`,firstSession:`upcoming`};function Oa(e,t){return e<t?`done`:e===t?`current`:`upcoming`}function ka({agentListing:e,repoRoots:t}){let n=Ea(e).canSpawn?t.length===0?2:3:1;return{agent:Oa(1,n),repoRoots:Oa(2,n),firstSession:Oa(3,n)}}var Aa=[[`agent`,`agent`],[`repoRoots`,`repo_roots`],[`firstSession`,`first_session`]];function ja({step:e,state:t}){return`${e}:${t}`}function Ma(e,t){let n=[];for(let[r,i]of Aa){let a=t[r];if(a===`upcoming`)continue;let o={step:i,state:a};e.has(ja(o))||n.push(o)}return n}function Na(e){return wa(typeof e==`object`&&e?e.agents:[]).options.map(e=>e.label).join(`, `)}function Pa(e){return e===1?`1 git repo`:`${e} git repos`}function Fa(e,t){let n=t.trim();return!n||e.includes(n)?null:[...e,n]}var Ia=0,La=`Could not read the current repository roots.`;function Ra(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}async function za(e){let t=await M(`get-settings`,{});if(t.type!==`settings`)return La;let n=t.settings.repoRoots;if(!Ra(n))return La;let r=Fa(n,e);if(!r)return null;let i=await M(`update-settings`,{settings:{repoRoots:r}});return i.type===`settings-error`?i.message:null}function Ba({onAdded:e}){Ia+=1;let t=`repo-roots-adder-path-${Ia}`,n=k(`div`,`repo-roots-adder`),r=k(`div`,`repo-roots-adder-found`),i=k(`span`,`repo-roots-adder-label`,`FOUND ON THIS MACHINE`),a=k(`ul`,`repo-roots-adder-list`);r.append(i,a),r.hidden=!0;let o=k(`label`,`repo-roots-adder-label`,`TYPE A PATH`);o.htmlFor=t;let s=k(`div`,`repo-roots-adder-row`),c=k(`input`,`dialog-input repo-roots-adder-input`);c.id=t,c.type=`text`,c.placeholder=`~/src`,c.autocomplete=`off`,c.spellcheck=!1;let l=k(`button`,`btn-dialog btn-dialog-cancel`,`Add`);l.type=`button`,l.disabled=!0,s.append(c,l);let u=k(`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 za(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=k(`li`,`repo-roots-adder-suggestion`),n=k(`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(k(`span`,`repo-roots-adder-path`,t.label),k(`span`,`repo-roots-adder-count`,Pa(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 Va=`npm install -g @anthropic-ai/claude-code`,Ha={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>`},Ua=null,Wa=null,Ga=null,Ka=null,qa={steps:Da,agentSummary:``,repoRoots:[]},Ja=0,Ya=new Set,Xa=vn(`first-run-load-status`),Za=Qi();function Qa(e){j({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`onboarding`,action:e}})}function $a(e){for(let t of Ma(Ya,e))j({type:`dashboard-telemetry`,event:`onboarding_step`,properties:t})&&Ya.add(ja(t))}function eo({title:e,state:t,summary:n,badge:r,body:i}){let a=k(`li`,`first-run-step`);a.dataset.state=t,t===`current`&&a.setAttribute(`aria-current`,`step`);let o=k(`div`,`first-run-step-head`),s=k(`span`,`first-run-step-icon`);if(s.innerHTML=Ha[t],o.append(s,k(`span`,`first-run-step-title`,e)),t===`done`&&n&&o.append(k(`span`,`first-run-step-summary`,n)),t===`current`&&r&&o.append(k(`span`,`first-run-step-badge`,r)),a.append(o),t!==`current`)return a;let c=k(`div`,`first-run-step-body`);return c.append(...i()),a.append(c),a}function to(){let e=k(`div`,`first-run-step-actions`);return Ga=k(`button`,`btn-dialog btn-dialog-cancel`,`Rescan`),Ga.type=`button`,Ga.addEventListener(`click`,()=>{Qa(`rescan`),ao({rescanAgents:!0})}),e.append(Ga,k(`span`,`first-run-step-hint`,`Any other terminal agent can be added under customAgents.`)),[k(`p`,`first-run-step-text`,`No supported agent is on PATH. Install Claude Code, Codex or Grok, then rescan. Rescan still finding nothing means the CLI went into a folder the server cannot see: restart Glimmervoid from a terminal where the command runs.`),k(`code`,`first-run-command`,Va),e]}function no(){let e=Ka??Ba({onAdded:e=>{Qa(e===`typed`?`add-root-typed`:`add-root-suggested`),ao({rescanAgents:!1})}});return Ka=e,[k(`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 ro(){let e=k(`div`,`first-run-step-actions`),t=k(`button`,`btn-dialog btn-dialog-confirm`,`+ Session`);t.type=`button`,t.addEventListener(`click`,()=>{Qa(`add-session`),Ai()});let n=k(`span`,`first-run-step-hint`,`Folders and agents can change later in `);n.append(ma(`machine-sessions`,`repository-roots`,`Settings > Sessions`),`.`),e.append(t,n);let r=k(`p`,`first-run-step-text`,`Run a few at once. When one needs you, `);return r.append(xa(),` jumps straight to it from any tab.`),[k(`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.`),r,e]}function io(){if(!Wa)return;let{steps:e,agentSummary:t,repoRoots:n}=qa;Wa.replaceChildren(eo({title:`1. Agent CLI`,state:e.agent,summary:t,badge:`MISSING`,body:to}),eo({title:`2. Repository roots`,state:e.repoRoots,summary:n.join(`, `),badge:`NEEDED`,body:no}),eo({title:`3. First session`,state:e.firstSession,summary:``,badge:``,body:ro}))}async function ao({rescanAgents:e}){Ja+=1;let t=Ja;Ga&&(Ga.disabled=!0);try{let[n,r]=await Promise.all([M(`list-agents`,e?{rescan:!0}:{},{timeoutMs:wn}),M(`scan-repo-roots`,{includeSuggestions:!0},{timeoutMs:wn})]);if(t!==Ja)return;let i=r.type===`repo-roots-scanned`,a=i?r.directories.map(e=>e.root):[];qa={steps:ka({agentListing:n,repoRoots:a}),agentSummary:Na(n),repoRoots:a},Xa.clear(),io(),$a(qa.steps),Ka?.setSuggestions(i?r.suggestions??[]:[])}catch(e){if(Ga&&(Ga.disabled=!1),t!==Ja)return;Xa.show(`error`,`The checklist could not load: ${Cn(e,wn)} It loads again once the server answers. If it stays like this, check the terminal running Glimmervoid, or run glimmervoid doctor.`)}}function oo(){if(Ua)return Ua;let e=k(`section`,`first-run-checklist`);e.setAttribute(`aria-labelledby`,`first-run-title`);let t=k(`h2`,`first-run-title`,`Get to your first session`);t.id=`first-run-title`,Wa=k(`ol`,`first-run-steps`);let n=k(`p`,`first-run-footer`,`This list goes away once a session exists. Something off? Run `);return n.append(k(`code`,null,`glimmervoid doctor`),` in a terminal.`),e.append(k(`span`,`first-run-eyebrow`,`FIRST RUN`),t,k(`p`,`first-run-intro`,`Glimmervoid runs the agent CLIs you already have, inside the repositories you point it at. Two checks, then start.`),Wa,Xa.element,Za.element,n),Ua=e,io(),e}function so(e,t){if(!t){Ua?.parentElement===e&&(Ua.hidden=!0);return}let n=oo(),r=!n.hidden&&n.parentElement===e;n.parentElement!==e&&e.append(n),n.hidden=!1,Za.refresh(),r||ao({rescanAgents:!1})}function co(){Ua&&!Ua.hidden&&Ua.isConnected&&ao({rescanAgents:!1})}var lo=new Set([`http:`,`https:`]);function uo(e){let t;try{t=new URL(e)}catch{return null}return lo.has(t.protocol)?t.href:null}var fo=2,po=8,mo=/^ {0,3}(`{3,}|~{3,})([^`]*)$/,ho=/^(\s*)(?:([-+*])|(\d+)[.)])\s+(.+)$/,go=/^ {0,3}(?:(?:\*\s*){3,}|(?:-\s*){3,}|(?:_\s*){3,})$/,_o=/^:?-{3,}:?$/,vo=/^[A-Za-z0-9_+#.-]{1,32}$/;function yo(e){return E(e,{overlongLine:`reject`})}function bo(e){let t=e.trim().split(/\s+/)[0]??``;return vo.test(t)?t:``}function xo(e,t){if(!t)return;let n=e.at(-1);n?.type===`text`?n.text+=t:e.push({type:`text`,text:t})}function So(e,t){return e.startsWith(`**`,t)?`**`:e.startsWith(`__`,t)?`__`:null}function Co(e,t){return e.startsWith(`*`,t)?`*`:e.startsWith(`_`,t)?`_`:null}function wo(e,t,n){let r=e.indexOf(t,n);return r>n?r:-1}function To(e,t){let n=e.indexOf(t);return function(r){return n===-1?-1:(n>=r||(n=e.indexOf(t,r)),n)}}function Eo(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>fo)return-1}return-1}function Do(e,t,n){if(e[t]!==`[`)return null;let r=n(t+1);if(r<=t+1||e[r+1]!==`(`)return null;let i=Eo(e,r+2);return i===-1?null:{label:e.slice(t+1,r),target:e.slice(r+2,i),end:i+1}}function Oo(e){let t=[],n=To(e,`]`),r=0;for(;r<e.length;){let i=Do(e,r,n);if(i){let e=uo(i.target.trim());e&&t.push({type:`link`,href:e,children:Oo(i.label)}),e||xo(t,i.label),r=i.end;continue}if(e.startsWith("`",r)){let n=wo(e,"`",r+1);if(n!==-1){t.push({type:`code`,text:e.slice(r+1,n)}),r=n+1;continue}}let a=So(e,r);if(a){let n=wo(e,a,r+a.length);if(n!==-1){t.push({type:`strong`,children:Oo(e.slice(r+a.length,n))}),r=n+a.length;continue}}let o=Co(e,r);if(o){let n=wo(e,o,r+1);if(n!==-1){t.push({type:`emphasis`,children:Oo(e.slice(r+1,n))}),r=n+1;continue}}xo(t,e[r]),r++}return t}function ko(e){return e.map(e=>e.type===`text`||e.type===`code`?e.text:ko(e.children)).join(``)}var Ao=`plan-h-`;function jo(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),`${Ao}${r===1?n:`${n}-${r}`}`}function Mo(e){if(typeof e!=`string`||!e.includes(`|`))return!1;let t=No(e);return t.length<2?!1:t.every(e=>_o.test(e))}function No(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 Po(e){let t=ho.exec(e);return t?{indent:t[1].replace(/\t/g,` `).length,ordered:!!t[3],content:t[4]}:null}function Fo(e,t,n,r){let i=Po(e[t]);if(!i)return null;let a=[],o=i.ordered,s=i.indent,c=t;for(;c<e.length;){let t=Po(e[c]);if(!t||t.indent<s)break;if(t.indent>s){if(r>=po)break;let t=Fo(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:Oo(t.content)}]}),c++}}return{block:{type:`list`,ordered:o,items:a},next:c}}function Io(e,t){let n=e[t]??``;return n.trim()===``||yo(n)||mo.test(n)||go.test(n)||Po(n)||/^ {0,3}>/.test(n)?!0:t+1<e.length&&n.includes(`|`)&&Mo(e[t+1])}function Lo(e,t,n){let r=[],i=0;for(;i<e.length;){let a=e[i];if(a.trim()===``){i++;continue}let o=mo.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:bo(o[2]),text:t.join(`
|
|
3
3
|
`)});continue}let s=yo(a);if(s){let e=Oo(s.text);r.push({type:`heading`,level:s.level,id:jo(ko(e),t),children:e}),i++;continue}if(go.test(a)){r.push({type:`rule`}),i++;continue}if(i+1<e.length&&a.includes(`|`)&&Mo(e[i+1])){let t=No(a).map(Oo),n=[];for(i+=2;i<e.length&&e[i].includes(`|`)&&e[i].trim()!==``;)n.push(No(e[i]).map(Oo)),i++;r.push({type:`table`,header:t,rows:n});continue}let c=Fo(e,i,t,n);if(c){r.push(c.block),i=c.next;continue}if(n<po&&/^ {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:Lo(a,t,n+1)});continue}let l=[a.trim()];for(i++;i<e.length&&!Io(e,i);)l.push(e[i].trim()),i++;r.push({type:`paragraph`,children:Oo(l.join(` `))})}return r}function Ro(e){return Lo(e.replace(/\r\n?/g,`
|
|
4
4
|
`).split(`
|
|
5
5
|
`),{slugCounts:new Map},0)}function zo(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:ko(t.children),id:t.id,level:t.level,blocks:[t]}):n.blocks.push(t);return r(),t}function Bo(e,t){for(let n of t){if(n.type===`text`){e.append(document.createTextNode(n.text));continue}if(n.type===`code`){e.append(k(`code`,`plan-inline-code`,n.text));continue}if(n.type===`emphasis`){let t=k(`em`);Bo(t,n.children),e.append(t);continue}if(n.type===`strong`){let t=k(`strong`);Bo(t,n.children),e.append(t);continue}let t=k(`a`,`plan-link`);t.href=n.href,t.target=`_blank`,t.rel=`noopener noreferrer`,Bo(t,n.children),e.append(t)}}function Vo(e){let t=k(`li`);return Ho(t,e.children),t}function Ho(e,t){for(let n of t)if(n.type===`heading`){let t=k(`h${n.level}`,`plan-heading`);t.id=n.id,Bo(t,n.children),e.append(t)}else if(n.type===`paragraph`){let t=k(`p`,`plan-paragraph`);Bo(t,n.children),e.append(t)}else if(n.type===`list`){let t=n.ordered?k(`ol`,`plan-list`):k(`ul`,`plan-list`);t.append(...n.items.map(Vo)),e.append(t)}else if(n.type===`code`){let t=k(`pre`,`plan-code`),r=k(`code`,n.language?`language-${n.language}`:null,n.text);t.append(r),e.append(t)}else if(n.type===`table`){let t=k(`div`,`plan-table-wrap`),r=k(`table`,`plan-table`),i=k(`thead`),a=k(`tr`);for(let e of n.header){let t=k(`th`);Bo(t,e),a.append(t)}i.append(a);let o=k(`tbody`);for(let e of n.rows){let t=k(`tr`);for(let n of e){let e=k(`td`);Bo(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=k(`blockquote`,`plan-blockquote`);Ho(t,n.blocks),e.append(t)}else e.append(k(`hr`,`plan-rule`))}function Uo(e){let t=k(`div`,`plan-document`);return Ho(t,e),t}function Wo(e,{hasComment:t,isComposing:n,onComment:r,attachmentFor:i}){let a=k(`div`,`plan-document`),o=[];for(let s of e){let e=k(`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=k(`div`,`plan-section-head`),l=s.blocks[0],u=l?.type===`heading`;if(u&&Ho(c,[l]),u||(e.id=`plan-introduction`),!t(s)&&!n(s)){let e=k(`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=k(`div`,`plan-section-body`);Ho(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 Go={added:`+`,removed:`-`,unchanged:` `,skipped:` `};function Ko(e){let t=k(`div`,`plan-diff`);for(let n of e.lines){let e=k(`div`,`plan-diff-line plan-diff-${n.kind}`),r=k(`span`,`plan-diff-gutter`,Go[n.kind]);r.setAttribute(`aria-hidden`,`true`),e.append(r,k(`span`,`plan-diff-text`,n.text)),t.append(e)}return t}var qo=`glimmervoid-streamer-mode`,Jo=new Set,Yo=Gt(qo,!1)===!0,Xo=null;function Zo(e){document.documentElement.toggleAttribute(`data-streamer`,e),Xo?.setAttribute(`aria-pressed`,String(e))}Zo(Yo);function Qo(){return Yo}function $o(e){if(Bt(qo,e),e!==Qo()){Yo=e,Zo(e);for(let t of Jo)t(e)}}function es(e){return Jo.add(e),()=>Jo.delete(e)}async function ts(e){try{let t=await M(`update-settings`,{settings:{streamerMode:e}},{timeoutMs:wn});return t.type===`settings-error`?String(t.message):($o(e),``)}catch(e){return Cn(e,wn)}}var ns=`Streamer mode`;async function rs(){let e=!Qo();e&&$o(!0);let t=await ts(e);t?I({source:ns,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}):bn(ns)}function is(){rs()}function as(e){Xo=e,Zo(Qo()),e.addEventListener(`click`,is)}var os=new Map,ss=null;function cs(e){return os.get(e)??[]}function ls(e){return cs(e).length>0}function us(e){N(e)?.btnDocs.classList.toggle(`visible`,ls(e))}function ds(e){let t=cs(e.sessionId);e.select.replaceChildren(...t.map(t=>{let n=k(`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 fs(e){let t=cs(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 ps(e,t,n=`quiet`){e.status.textContent=t,e.status.dataset.tone=n}function ms(e){e.preview.replaceChildren(Uo(Ro(e.textarea.value)))}function hs(e,t){mr({title:e,message:`Your unsaved edits will be lost.`,confirmLabel:`Discard`,danger:!0,onConfirm:t})}function gs(e,t,n){e.hasUnsavedChanges?hs(t,n):n()}async function _s(e,t){try{return{reply:await M(e,t,{timeoutMs:wn}),failureText:null}}catch(e){return{reply:null,failureText:Cn(e,wn)}}}async function vs(e,t){e.docPath=t,e.isBusy=!0,e.baseHash=null,e.textarea.readOnly=!0,ds(e),ps(e,`Loading`),fs(e);let{reply:n,failureText:r}=await _s(`session-doc-read`,{id:e.sessionId,path:t});if(ss!==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?(ps(e,i?.error||r||`Could not open this doc`,`warn`),fs(e)):(e.textarea.value=i.text,e.baseHash=i.hash,e.hasUnsavedChanges=!1,e.mode===`preview`&&ms(e),ps(e,``),fs(e))}async function ys(e){if(e.btnSave.disabled||e.baseHash===null)return;e.isBusy=!0,ps(e,`Saving`),fs(e);let t=e.docPath,n=e.textarea.value,{reply:r,failureText:i}=await _s(`session-doc-save`,{id:e.sessionId,path:t,text:n,baseHash:e.baseHash});if(ss!==e||e.docPath!==t)return;e.isBusy=!1;let a=r?.type===`session-doc-save-result`?r:null;!a?.ok||a.hash===void 0?(ps(e,a?.conflict?`The agent changed this file since you opened it. Reload to see its version.`:a?.error||i||`Save failed`,`warn`),fs(e)):(e.baseHash=a.hash,e.hasUnsavedChanges=e.textarea.value!==n,ps(e,e.hasUnsavedChanges?`Unsaved changes`:`Saved`),fs(e))}function bs(e,t){e.mode=t,t===`preview`&&ms(e),fs(e),t===`edit`&&e.textarea.focus()}function xs(e,t){let n=k(`button`,`plan-control ${t}`,e);return n.type=`button`,n}function Ss(e){let t=cs(e)[0];if(!t||ss)return;let n=()=>gs(y,`Close this doc?`,()=>y.close()),r=_r({dialogClass:`doc-editor`,closeOnBackdrop:!1,onEscape:n}),i=`doc-editor-title-${e}`,a=k(`h3`,`doc-editor-title`,t.name);a.id=i;let o=k(`select`,`plan-control doc-editor-picker`);o.setAttribute(`aria-label`,`Doc`);let s=k(`span`,`doc-editor-status`);s.setAttribute(`role`,`status`);let c=xs(`Edit`,`doc-editor-mode`),l=xs(`Preview`,`doc-editor-mode`),u=xs(`Reload`,`doc-editor-reload`),d=xs(`Save`,`doc-editor-save`),f=xs(`Close`,`doc-editor-close`),p=k(`div`,`doc-editor-modes`);p.append(c,l);let m=k(`div`,`doc-editor-actions`);m.append(s,u,d,f);let h=k(`div`,`doc-editor-header`);h.append(a,o,p,m);let g=k(`textarea`,`plan-editor doc-editor-text`);g.spellcheck=!0,g.setAttribute(`aria-labelledby`,i);let _=k(`div`,`doc-editor-preview`),v=k(`div`,`doc-editor-body`);v.append(g,_),r.dialog.append(h,v),vr(r.dialog,i);let y={sessionId:e,docPath:t.path,baseHash:null,hasUnsavedChanges:!1,isBusy:!1,mode:Qo()?`preview`:`edit`,title:a,select:o,textarea:g,preview:_,status:s,btnEdit:c,btnPreview:l,btnReload:u,btnSave:d,close:()=>{ss=null,r.close()}};ss=y,g.addEventListener(`input`,()=>{y.hasUnsavedChanges||(y.hasUnsavedChanges=!0,ps(y,`Unsaved changes`),fs(y))}),g.addEventListener(`keydown`,e=>{(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`s`&&(e.preventDefault(),ys(y))}),o.addEventListener(`change`,()=>{let e=o.value;o.value=y.docPath,gs(y,`Open another doc?`,()=>{vs(y,e)})}),c.addEventListener(`click`,()=>bs(y,`edit`)),l.addEventListener(`click`,()=>bs(y,`preview`)),u.addEventListener(`click`,()=>{gs(y,`Reload this doc?`,()=>{vs(y,y.docPath)})}),d.addEventListener(`click`,()=>{ys(y)}),f.addEventListener(`click`,n),vs(y,t.path),y.mode===`edit`&&g.focus()}function Cs(e){ss&&ss.sessionId===e&&(ds(ss),fs(ss),!cs(e).some(e=>e.path===ss?.docPath)&&ps(ss,`This doc is no longer surfaced, so it cannot be saved.`,`warn`))}function ws(e){os.set(e.id,e.docs),e.docs.length===0&&os.delete(e.id),us(e.id),Cs(e.id)}function Ts(e){let t=[...os.keys()];os.clear();for(let[t,n]of Object.entries(e.sessions))os.set(t,n);for(let e of new Set([...t,...os.keys()]))us(e),Cs(e)}var Es=new Map,Ds=new Set,Os=[],ks=[],As=null,js=!1;function Ms(e){return Es.get(e)??[]}function Ns(e){return Ms(e).length>0}function Ps(e){return Ds.has(e)}function Fs(e){Os.push(e)}function Is(e){ks.push(e)}function Ls(e){let t=N(e);t&&(t.btnShown.classList.toggle(`visible`,Ns(e)),t.shownUnopenedDot.hidden=!Ps(e))}function Rs(e,t){return`/shown/${encodeURIComponent(e)}/${encodeURIComponent(t.id)}`}function zs(e){window.open(e,`_blank`,`noopener`)}function Bs(e){return e.pageTitle??e.name}function Vs(e,t,n){let r=Rs(e,t);if(t.kind===`image`){let e=k(`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=k(`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=k(`div`,n?`shown-thumb-page`:`shown-stage-page`);if(i.append(k(`span`,`shown-page-kind`,`HTML page`),k(`span`,`shown-page-title`,Bs(t))),n)return i;let a=k(`button`,`plan-control shown-open-page`,`Open page`);return a.type=`button`,a.addEventListener(`click`,()=>zs(r)),i.append(k(`span`,`shown-page-name`,t.name),a),i}function Hs(e){let t=Ms(e.sessionId);return t.find(t=>t.id===e.selectedFileId)??t.at(-1)??null}function Us(e,t){let n=[...Ms(e.sessionId)].reverse();e.strip.hidden=n.length<2,e.strip.replaceChildren(...n.map(n=>{let r=k(`button`,`shown-thumb`);return r.type=`button`,r.title=n.caption??Bs(n),r.setAttribute(`aria-label`,Bs(n)),r.setAttribute(`aria-pressed`,String(n.id===t.id)),r.append(Vs(e.sessionId,n,!0)),r.addEventListener(`click`,()=>Gs(e,n.id)),r}))}function Ws(e){let t=Hs(e);if(!t){e.close();return}e.selectedFileId=t.id,e.title.textContent=Bs(t),e.stage.replaceChildren(Vs(e.sessionId,t,!1));let n=t.caption?[k(`p`,`shown-caption`,t.caption)]:[];e.details.replaceChildren(...n,k(`p`,`shown-meta`,`${t.name}, shown ${at(t.shownAt)}`)),Us(e,t)}function Gs(e,t){e.selectedFileId=t,Ws(e)}function Ks(e){if(Ds.delete(e)){Ls(e);for(let t of Os)t(e,[])}}function qs(e,t){let n=k(`button`,`plan-control ${t}`,e);return n.type=`button`,n}function Js(e,t=null){let n=Ms(e).at(-1);if(!n)return;As?.close();let r=_r({dialogClass:`shown-lightbox`,closeOnBackdrop:!1,onEscape:()=>f.close()}),i=`shown-lightbox-title-${e}`,a=k(`h3`,`shown-lightbox-title`);a.id=i;let o=qs(`Open full size`,`shown-open-full-size`),s=qs(`Close`,`shown-close`),c=k(`div`,`shown-lightbox-header`);c.append(a,o,s);let l=k(`div`,`shown-stage`),u=k(`div`,`shown-details`),d=k(`div`,`shown-strip`);d.setAttribute(`aria-label`,`Shown files`),r.dialog.append(c,l,u,d),vr(r.dialog,i);let f={sessionId:e,selectedFileId:t??n.id,title:a,stage:l,details:u,strip:d,btnOpenFullSize:o,close:()=>{As===f&&(As=null),r.close()}};As=f,o.addEventListener(`click`,()=>{let t=Hs(f);t&&zs(Rs(e,t))}),s.addEventListener(`click`,()=>f.close()),r.overlay.addEventListener(`click`,e=>{e.target===r.overlay&&f.close()}),Ws(f),Ks(e)}function Ys(e){return e.slice(-50)}function Xs(e,t){if(t.length===0)return;let n=As?.sessionId===e;n||Ds.add(e),Ls(e),n&&As&&Ws(As);for(let n of Os)n(e,t)}function Zs(e){let t=new Set(Ms(e.id).map(e=>e.id)),n=e.files.filter(e=>!t.has(e.id));if(Es.set(e.id,Ys([...Ms(e.id),...n])),Xs(e.id,n),n.length!==0)for(let t of ks)t(e.id,n)}function Qs(e){let t=new Map(Es),n=js;js=!0,Es.clear();for(let[t,n]of Object.entries(e.sessions))Es.set(t,Ys(n));for(let e of new Set([...t.keys(),...Es.keys()])){Ns(e)||Ds.delete(e);let r=new Set((t.get(e)??[]).map(e=>e.id)),i=n?Ms(e).filter(e=>!r.has(e.id)):[];Ls(e),Xs(e,i),As?.sessionId===e&&Ws(As)}}function $s({dialogClass:e,titleText:t,titleId:n,body:r,onCloseRequest:i}){let a=_r({dialogClass:e,closeOnBackdrop:!1,onEscape:i}),o=k(`div`,`coherence-journal-header`),s=k(`h3`,`dialog-title`,t);s.id=n;let c=k(`button`,`btn-dialog btn-dialog-cancel`,`Close`);return c.type=`button`,o.append(s,c),a.dialog.append(o,...r),vr(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 ec({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=Ye(e),m=$s({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 tc=2,nc={needsYou:1,broken:2,askedOfYou:3,waiting:4,settled:5},rc={danger:nc.broken,warn:nc.askedOfYou,wait:nc.waiting,ok:nc.settled,muted:nc.settled};function ic(e){return e?rc[e]:nc.settled}function ac(e){let t=[...e].sort((e,t)=>e.tier-t.tier),n=t.slice(tc);return{visible:t.slice(0,tc),overflowCount:n.length,overflowHoverText:n.map(e=>`${e.text} ${e.hoverText}`).join(`
|
|
@@ -79,6 +79,6 @@ import{l as e,m as t,n,o as r,s as i,u as a}from"./zod-BRLv4KqJ.js";import{$ as
|
|
|
79
79
|
</table>
|
|
80
80
|
</div>
|
|
81
81
|
`}function zh(){if(!kh)return;let e=wh(Dh,Eh?.anomalies),t=kh.hidden;kh.hidden=!e,e&&t&&Eh&&(Lh(),Oh&&Rh())}function Bh(e){Dh=e,zh()}function Vh(e){if(kh)return kh;let t=Ih();return e.appendChild(t),zh(),t}function Hh(e){Eh=e,zh(),kh&&!kh.hidden&&(Lh(),Oh&&Rh())}var Uh=Object.freeze([{kind:`approve`,label:`Approve`},{kind:`revise`,label:`Send feedback`},{kind:`terminal`,label:`Answer in terminal`}]);function Wh(e){return e===`approve`||e===`approve-accept-edits`}function Gh(e){return(e.state===`decided`||e.state===`closed`)&&Wh(e.lastDecision)}function Kh(e,t){let n=e.reviews.find(e=>e.agentId===t);return n!==void 0&&Gh(n)}function qh(e,t){return e.reviews.find(e=>e.agentId===t)??e.reviews[0]??null}function Jh(e){let t=qh(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 Yh(e,t){return qh(e,t)?.openRevision?.revision??null}function Xh(e,t,n){if(n===null)return null;let r=qh(e,t)?.revisions??[],i=r.findIndex(e=>e.revision===n);return i<=0?null:r[i-1].revision}function Zh(e,t){let n=t-e;return Number.isFinite(n)?Ne(n,{rounding:`floor`,wording:`abbreviated`,suffix:` ago`,justNowBelowSeconds:60}):`just now`}function Qh(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 $h(e,t,n){let r=Qh(e,t,n),i=(e.pendingCommentCount??0)>0,a=e.hasUnsavedComment!==!0;return Uh.map(({kind:e,label:t})=>({kind:e,label:t,enabled:r&&(e===`terminal`||a&&(e===`revise`?i:!i))}))}function eg(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 tg(e){let t=0;for(let n of e.comments??[])t+=n.comment.trim().length+(n.heading?.length??0);return t}function ng(e){return new TextEncoder().encode(JSON.stringify(e)).byteLength+c}function rg(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 ${ce} characters, so nothing was sent`:tg(e)>1e4?`the feedback composes more than the ${le} characters the hook reply carries, so nothing was sent`:ng(e)>be?`the decision is larger than one control frame carries, so nothing was sent`:null}function ig(e){return e?`, ${e}`:``}function ag(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=eg(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 og(e,t,n){let r=ag(e,t,n);return r?`${r}${ig(e.problem)}`:e.problem??``}function sg(e){let t=qh(e.state,e.selectedAgentId),n=Jh(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:Xh(e.state,t?.agentId??null,n),status:og(e,t,n),actions:$h(e,t,n),modes:[{kind:`read`,label:`Read`,enabled:!0},{kind:`changes`,label:`Changes`,enabled:Xh(e.state,t?.agentId??null,n)!==null&&e.isDraft!==!0},{kind:`edit`,label:`Edit`,enabled:Qh(e,t,n)}]}}function cg(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 lg({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 ug=10;function dg(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 pg(e,t,n){let r=e.get(t)??[];r.push(n),e.set(t,r)}function mg(e,t){for(let n of e.hotspots)pg(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<ug||pg(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 hg(e,t){return t.severity-e.severity||e.openPath.localeCompare(t.openPath)||e.dedupeKey.localeCompare(t.dedupeKey)}function gg(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:dg(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);mg(t,i),t.error&&a.push(e.repos.length>1?`${t.name}: ${t.error}`:t.error)}return{worthALook:[...r.values()].sort(hg),hintsByOpenPath:i,repos:e.repos.map(e=>({name:e.name,sessionPathPrefix:e.sessionPathPrefix})),errors:a}}function _g(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 yg(e,t){let n=k(`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(k(`span`,`review-look-file`,e.path),k(`span`,`review-look-text`,e.text)),n.addEventListener(`click`,()=>t(e.openPath)),n}function bg(e,{isShowingAll:t,onShowAll:n,onOpenFile:r}){if(e.worthALook.length===0&&e.errors.length===0)return null;let i=k(`section`,`review-look`);if(i.append(k(`h3`,`review-group-label`,`Worth a look`)),e.errors.length>0){let t=k(`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=k(`div`,`review-look-list`);for(let t of a)e.append(yg(t,r));i.append(e)}let o=e.worthALook.length-a.length;if(o===0)return i;let s=k(`div`,`review-look-more`),c=k(`button`,`review-look-show-all`,`Show all`);return c.type=`button`,c.addEventListener(`click`,n),s.append(k(`span`,`review-look-more-count`,`+${o} more`),c),i.append(s),i}function xg(e){return(e??[]).map(e=>{let t=k(`span`,`review-file-hint`,e.text);return t.title=e.title,t})}function Sg(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 Cg(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=Sg(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 wg(e,t){return t===`merged`||t===`none`||e===`parked`&&t===`pending-review`}function Tg(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 Eg({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=jg(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 Dg({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?Eg({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 Og(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 ${jg(t)}.`}function kg(e,t){return e.namesMergeTarget?null:`merges into ${jg(t)}`}function Ag({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 jg(e){return e||`base`}function Mg(e,t){return`Merge into ${jg(e)}, push it, and rebase this worktree, then keep working (${t})`}function Ng(e){return e===`base-diverged`?`Resync the base branch by hand, then Merge again.`:`Needs manual merge`}function Pg(e,t,n){let r=e!==`parked`||e===`parked`&&t===`base-diverged`;return{isRendered:r,isEnabled:r&&e!==`merging`&&n}}function Fg({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 Ig(e){return e.map(e=>{let t=e.member?`${e.member}/ `:``,n=te(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 Lg({fetched:e,changedFileCount:t,hasCommits:n}){return!e||t>0||n}function Rg(e){return e||`its upstream`}function zg(e){if(!e)return null;let t=e.branch||`Base branch`,{state:n,ahead:r,behind:i}=e,a=Rg(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 Bg(e){return!e||e.fetched===!1?`recheck`:e.state===`ahead`||e.state===`behind`?`resync`:`recheck`}function Vg(e,t,n){let r=n?` (${t})`:``;if(!e||Bg(e)===`recheck`)return`Click to fetch and check again${r}`;let i=e.branch||`Base branch`,a=Rg(e.upstream);return e.state===`behind`?`Click to fast-forward ${i} to ${a}${r}`:`Click to push ${i} to ${a}${r}`}function Hg(e){return e?.state!==`in-sync`||e.fetched===!1}function Ug(e){if(e.error)return`Resync failed: ${e.error}`;let t=e.branch||`The base branch`,n=Rg(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 Wg=new Set([`pending-review`,`parked`]),Gg=600,Kg=Lt(`merge`,ha),qg=Lt(`resolve-or-resync`,ha),Jg={minPx:260,maxPx:700},Yg=16,Xg=5e3,Zg=new Map,Qg=new Map,$g=new Map,e_=new Map,t_=new Map,n_=new Map,r_=new Set,i_=new WeakMap,a_=new WeakMap,o_=new Set,s_=new Set,c_=!1,l_=null,u_=null,B=null,V=null,d_=null,f_=null,p_=null,m_=null,h_=null,g_=!1,__=null,v_=null,y_=null,b_=null,x_=new Map,H=null,S_=null;function C_(e,t){let n=k(`button`,`review-icon-button`);return n.type=`button`,n.title=e,n.setAttribute(`aria-label`,e),n.append(mn(t)),n}function w_(){g_=!1,B?.querySelector(`.review-more-menu`)?.remove(),B?.querySelector(`.review-more-button`)?.setAttribute(`aria-expanded`,`false`)}function T_({panel:e}){if(u_=e,!u_)return;let t=u_,n=k(`div`,`review-sidebar-head`),r=k(`span`,`review-sidebar-title`,`Review`);h_=k(`span`,`review-sidebar-session`),r.append(h_);let i=e=>{t.toggleAttribute(`data-collapsed`,e),wt(!e)},a=C_(`Close review`,`M6 3L11 8L6 13`);a.classList.add(`review-sidebar-close`),a.addEventListener(`click`,()=>i(!0)),n.append(r,a);let o=k(`div`,`review-sidebar-rail`),s=C_(`Open review`,`M10 3L5 8L10 13`);s.classList.add(`review-sidebar-open`),s.addEventListener(`click`,()=>i(!1)),f_=k(`div`,`review-rail-status`),p_=k(`span`,`review-rail-added`),m_=k(`span`,`review-rail-removed`),f_.append(p_,m_),d_=k(`span`,`review-rail-label`,`Review`),o.append(s,d_,f_),B=k(`div`,`review-controls`),V=k(`div`,`review-sidebar-body`);let c=k(`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`,!ut()),D_(V),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&g_&&(e.preventDefault(),w_(),B?.querySelector(`.review-more-button`)?.focus())}),document.addEventListener(`pointerdown`,e=>{g_&&e.target instanceof Element&&(B?.contains(e.target)&&e.target.closest(`.review-more-button, .review-more-menu`)||w_())}),Jc({resizer:c,column:t,widthHost:t,widthProperty:`--sidebar-width`,bounds:Jg,keyStepPx:Yg,getStoredWidth:Yt,setStoredWidth:Tt,growsLeftward:!0}),mi(e=>{g_=!1,y_=null,o_.clear(),s_.clear(),c_=!1,l_=null,e&&ev(e),e&&!nv(e)&&rv(e),U()}),U()}function E_(e,t){let n=Zg.get(e);Zg.set(e,t),wg(n,t)&&($g.delete(e),e_.delete(e),t_.delete(e),e===R()&&tv(e)),e===R()&&U()}function D_(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),mi(a)}function O_(e){u_&&(e?(Ee(u_,e),U()):(_e(u_),U()))}function k_(e,t,n=null){let r=t||`none`;Qg.set(e,n);let i=x_.get(e);i!==void 0&&i!==r&&x_.delete(e),E_(e,r)}function A_(e){let t=P(e);t&&x_.delete(t)&&t===R()&&U()}function j_(e,t,n=null){Qg.set(e,n),x_.delete(e),E_(e,t||`none`)}function M_(e,t){$g.set(e,t),e_.delete(e),e===R()&&(l_&&lv(l_,t),U(),uv())}function N_(e,t){let n=P(e);n&&(e_.set(n,t),n===R()&&U())}function P_(e,t){let n=P(e);if(!n)return;let r=y.safeParse(t);r.success&&r.data.sessionId===n&&(t_.set(n,r.data),n===R()&&U())}function F_(e,t){let n=P(e),r=t;n_.set(n,r),r&&r.action!==void 0&&I_(n,r),n===R()&&U()}function I_(e,t){r_.delete(e),clearTimeout(S_??void 0),S_=null;let n=Ug(t);H=n?{forId:e,text:n,isError:!!t.error}:null,H&&!H.isError&&(S_=setTimeout(()=>{H&&H.forId===e&&(H=null),U()},5e3))}function L_(e){let t=P(e);t&&t===R()&&ev(t)}function R_(e){let t=P(e);if(t!==R())return;let n=!$g.has(t)||e_.has(t),r=!t_.has(t)||z_(t_.get(t));n&&ev(t),r&&!n&&tv(t),U()}function z_(e){return e?!!e.error||e.repos.some(e=>e.error!==null):!1}function B_(e){let t=P(e);Zg.delete(t),Qg.delete(t),$g.delete(t),e_.delete(t),t_.delete(t),n_.delete(t),r_.delete(t),H&&H.forId===t&&(clearTimeout(S_??void 0),H=null),t===R()?pi(null):U()}function V_(){let e=R(),t=e?F.get(e):null;if(!e||!t)return H_(null,`No session is open to merge.`);if(nv(e))return H_(e,`A workspace session has no worktree to merge.`);if(x_.has(e))return H_(e,`Merge is already on its way for "${cv(t,e)}".`);let n=Zg.get(e)||`none`,r=!!$g.get(e)?.hasCommits,i=Pg(n,Qg.get(e)||null,X_(t.currentState,r));return Ag({status:n,mergeReason:Qg.get(e)||null,live:$_(t.currentState),isMergeRendered:i.isRendered,hasChanges:Y_(e)})!==`merge`||!i.isEnabled?H_(e,Fg({status:n,hasCommits:r,live:$_(t.currentState),state:t.currentState})??`Nothing to merge in "${cv(t,e)}" right now.`):(Z_(e,t.currentState),!0)}function H_(e,t){return y_={forId:e,text:t},clearTimeout(b_??void 0),b_=setTimeout(()=>{y_=null,U()},Xg),U(),!1}function U_(){let e=R();if(!e||nv(e))return!1;let t=F.get(e);if(!t)return!1;let n=Zg.get(e)||`none`,r=Qg.get(e)||null;return Ag({status:n,mergeReason:r,live:$_(t.currentState),isMergeRendered:Pg(n,r,!1).isRendered,hasChanges:Y_(e)})!==`resolve`||W_(e)?!1:(G_(e),!0)}function W_(e){return __?.forId===e&&!__.isError}function G_(e){let t=j({type:`resolve-session-merge`,id:e});__=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(()=>{__=null,U()},t?3e3:Xg),U()}function K_(){let e=R();return!e||!F.has(e)||nv(e)||av(e)?!1:(ov(e),!0)}function q_(e){if(!e)return{committed:[],uncommitted:[]};let t=i_.get(e);if(t)return t;let n={committed:Cg(e.committed?.diff||``),uncommitted:Cg(e.uncommitted?.diff||``)};return i_.set(e,n),n}function J_(e){let t=a_.get(e);if(t)return t;let n=gg(e);return a_.set(e,n),n}function Y_(e){let t=q_($g.get(e)),n=[...t.committed,...t.uncommitted],r=$g.get(e)??null;return Lg({fetched:$g.has(e),changedFileCount:Tg(n).files,hasCommits:!!r?.hasCommits})}function X_(e,t){return(se.includes(e)||e===b.RUNNING)&&t}function Z_(e,t){t===b.RUNNING?mr({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:()=>Q_(e,!0)}):Q_(e,!1)}function Q_(e,t){x_.has(e)||(j(t?{type:`merge-continue-session`,id:e,force:!0}:{type:`merge-continue-session`,id:e})?(x_.set(e,Zg.get(e)||`none`),e===R()&&U()):H_(e,`Not connected. The merge was not sent.`))}function $_(e){return e!==b.DORMANT&&e!==b.DONE&&e!==b.FAILED}function ev(e){j({type:`request-session-diff`,id:e}),tv(e)}function tv(e){t_.has(e)||t_.set(e,null),j({type:`request-change-map`,id:e})}function nv(e){return F.get(e)?.card.dataset.workspace!==void 0}function rv(e){n_.set(e,null),j({type:`request-branch-sync`,id:e}),e===R()&&U()}function iv(e){r_.add(e),clearTimeout(S_??void 0),H&&H.forId===e&&(H=null),j({type:`resync-branch`,id:e}),e===R()&&U()}function av(e){return r_.has(e)||n_.get(e)===null}function ov(e){av(e)||(Bg(n_.get(e))===`resync`?iv(e):rv(e))}function sv(e,t){return t?{text:`Resyncing`,loading:!0,error:!1}:H&&H.forId===e?{text:H.text,loading:!1,error:H.isError}:null}function cv(e,t){return e?.card?.dataset.session||t}function lv(e,t){if(!t)return;let{committed:n,uncommitted:r}=q_(t);for(let t of n)(t.path===e||t.oldPath===e)&&o_.add(`committed:${t.path}`);for(let t of r)(t.path===e||t.oldPath===e)&&o_.add(`uncommitted:${t.path}`)}function uv(){if(!V||!l_)return;let e=V.querySelectorAll(`.review-file`);for(let t of e)if(t.dataset.path===l_||t.dataset.oldPath===l_){t.scrollIntoView({block:`nearest`}),l_=null;return}}function dv(e){l_=e,lv(e,$g.get(R()??``)),U(),uv()}function fv(){c_=!0,U()}function U(){let e=V?.scrollTop??0;pv(),V&&(V.scrollTop=e)}function pv(){if(!B||!V)return;B.replaceChildren(),V.replaceChildren(),d_&&(d_.hidden=!0),f_&&(f_.hidden=!0);let e=R(),t=e?F.get(e):null;if(hv(e,t),!e||!t){y_&&B.append(mv(y_.text,!0)),gv(`No session selected`,`Click a session name to review its changes here.`);return}let n=nv(e),r=Zg.get(e)||`none`,i=Qg.get(e)||null,a=t.currentState,o=Wg.has(r),s=$g.has(e),c=s?$g.get(e):null,l=e_.get(e)??null,{committed:u,uncommitted:d}=q_(c),f=!!c?.hasCommits,p=$_(a),m=Pg(r,i,X_(a,f)),h=n_.get(e),g=r_.has(e),_=jg(t.effectiveBase),v=Tg([...u,...d]),y=Ag({status:r,mergeReason:i,live:p,hasChanges:Lg({fetched:s,changedFileCount:v.files,hasCommits:f}),isMergeRendered:m.isRendered}),b=Dg({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||Du()||Hg(h),C=k(`div`,`review-status-headline`);if(C.append(k(`span`,`review-status-text`,b.text)),!n&&!S){let t=zg(h);if(t){C.title=t;let n=C_(`Refresh branch sync`,`M13 6A5 5 0 1 0 13 10M13 2v4H9`);n.classList.add(`review-branch-sync-refresh`),n.title=Vg(h,qg,y!==`resolve`),n.disabled=av(e),n.setAttribute(`aria-description`,t),n.addEventListener(`click`,()=>ov(e)),C.append(k(`span`,`sr-only`,t),n)}}if(x||B.append(C),u.length>0)for(let e of Ig(c?.bases??[])){let t=k(`div`,e.isUnverified?`review-diff-base review-diff-base-unverified`:`review-diff-base`,e.text);t.title=e.fullSha,B.append(t)}let ee=k(`div`,`review-status-meta`);if(s&&v.files>0&&ee.append(k(`span`,`review-status-added`,`+${v.added}`),k(`span`,`review-status-removed`,`-${v.removed}`),k(`span`,`review-status-spacer`)),!n&&S){let t=_v(e,y!==`resolve`);t&&ee.append(t)}ee.childElementCount>0&&B.append(ee),r===`parked`&&B.append(k(`div`,`review-status-explanation`,Ng(i))),d_&&(d_.hidden=!1),f_&&(f_.hidden=!1,f_.setAttribute(`aria-label`,`${b.text}, +${v.added}, -${v.removed}`),f_.title=b.text),p_&&(p_.textContent=`+${v.added}`),m_&&(m_.textContent=`-${v.removed}`);let w=n?null:Sv(e,{status:r,reviewable:o,mergeAction:m,live:p,state:a,effectiveBase:_,primaryAction:y});w&&B.append(w);let T=n?null:sv(e,g),te=!n&&y===`merge`&&!m.isEnabled?Fg({status:r,hasCommits:f,live:p,state:a}):null;if(te){let e=k(`div`,`review-control-reason`,te);e.id=`review-merge-reason`,B.append(e),B.querySelector(`#review-merge-btn`)?.setAttribute(`aria-describedby`,e.id)}if(T?.text){let e=k(`div`,T.loading?`review-control-reason review-loading`:`review-control-reason`,T.text);e.id=`review-resync-reason`,T.error&&e.classList.add(`review-control-reason-error`),e.setAttribute(`role`,`status`),ee.append(e),ee.isConnected||B.insertBefore(ee,C.isConnected?C.nextSibling:B.firstChild),B.querySelector(`.review-branch-sync-button, .review-branch-sync-refresh`)?.setAttribute(`aria-describedby`,e.id)}if(__?.forId===e&&B.append(mv(__.text,__.isError)),y_&&(y_.forId===e||y_.forId===null)&&B.append(mv(y_.text,!0)),l){V.append(k(`p`,`review-diff-error`,l));return}if(x){gv(b.text,Og(n,_));return}let E=t_.get(e),ne=E?J_(E):null,re=ne?bg(ne,{isShowingAll:c_,onShowAll:fv,onOpenFile:dv}):null;re&&V.append(re);let ie=u.length>0&&d.length>0;u.length>0&&V.append(vv({kind:`committed`,label:ie?`Committed`:null,meaning:kg(b,_),files:u,changeMapView:ne})),d.length>0&&V.append(vv({kind:`uncommitted`,label:ie?`Not committed yet`:null,meaning:null,files:d,changeMapView:ne}))}function mv(e,t){let n=k(`div`,t?`review-control-reason review-control-reason-error`:`review-resolve-sent`,e);return n.setAttribute(`role`,`status`),n}function hv(e,t){if(!h_)return;let n=e&&t?cv(t,e):``;h_.textContent=n,h_.hidden=!n,h_.title=n}function gv(e,t){if(!V)return;let n=k(`div`,`review-empty`);n.append(k(`div`,`review-empty-title`,e),k(`div`,`review-empty-desc`,t)),V.append(n)}function _v(e,t){let n=n_.get(e);if(n===void 0)return null;if(n===null)return k(`span`,`review-branch-sync-text review-loading`,`Checking branch sync...`);let r=zg(n)||`Base branch: sync state unknown`,i=k(`span`,`review-branch-sync-text`);n.state&&(i.dataset.syncState=n.state),n.fetched===!1&&(i.dataset.stale=`true`);let a=C_(`Refresh branch sync`,`M13 6A5 5 0 1 0 13 10M13 2v4H9`);return a.classList.add(`review-branch-sync-button`),a.title=Vg(n,qg,t),a.disabled=r_.has(e),a.addEventListener(`click`,()=>ov(e)),i.append(a,k(`span`,`review-branch-sync-label`,r)),i}function vv({kind:e,label:t,meaning:n,files:r,changeMapView:i}){let a=k(`div`,`review-section`);a.dataset.kind=e,t&&a.append(yv(t,n,r));let o=k(`div`,`review-diff`),s=i&&i.repos.length>1?i.repos:[],c=null;for(let t of r){let n=s.length>0?_g(s,t.path):null;n&&n!==c&&o.append(k(`div`,`review-repo-label`,n)),c=n,o.append(bv(t,e,i))}return a.append(o),a}function yv(e,t,n){let r=Tg(n),i=k(`div`,`review-section-head`),a=k(`div`,`review-section-id`);a.append(k(`span`,`review-section-label`,e)),t&&a.append(k(`span`,`review-section-meaning`,t));let o=k(`div`,`review-section-stat`);return o.append(k(`span`,`review-stat-files`,`${r.files} file${r.files===1?``:`s`}`),k(`span`,`review-add`,`+${r.added}`),k(`span`,`review-del`,`-${r.removed}`)),i.append(a,o),i}function bv(e,t,n){let r=`${t}:${e.path}`,i=o_.has(r),a=k(`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=k(`button`,`review-file-head`);o.type=`button`,o.setAttribute(`aria-expanded`,i?`true`:`false`);let s=k(`span`,`review-file-twisty`,i?`▾`:`▸`);s.setAttribute(`aria-hidden`,`true`);let c=k(`span`,`review-file-name`);c.append(k(`span`,`review-file-path`,e.path));let l=xg(n?.hintsByOpenPath.get(e.path));if(l.length>0){let e=k(`span`,`review-file-hints`);e.append(...l),c.append(e)}o.append(s,c);let u=k(`span`,`review-file-counts`);if(e.binary&&u.append(k(`span`,`review-bin`,`bin`)),e.binary||u.append(k(`span`,`review-add`,`+${e.added}`),k(`span`,`review-del`,`-${e.removed}`)),o.append(u),o.addEventListener(`click`,()=>{let e=o_.has(r);e&&o_.delete(r),e||o_.add(r),U()}),a.append(o),!i)return a;let d=k(`div`,`review-file-body`);if(e.binary)return d.append(k(`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>=Gg&&!s_.has(r)){p=!0;break}d.append(k(`div`,`review-hunk-head`,t.header));for(let e of t.lines){if(f>=Gg&&!s_.has(r)){p=!0;break}let t=k(`div`,`review-line review-line-${e.type}`),n=e.type===`add`?`+`:e.type===`del`?`-`:e.type===`meta`?`\\`:` `;t.append(k(`span`,`review-line-gutter`,n)),t.append(k(`span`,`review-line-text`,e.text)),d.append(t),f++}if(p)break}if(p){let e=k(`button`,`review-expand`,`Show the rest of this file`);e.type=`button`,e.addEventListener(`click`,()=>{s_.add(r),U()}),d.append(e)}return a.append(d),a}function xv({id:e,label:t,shortcut:n,title:r,disabled:i=!1,danger:a=!1,onClick:o}){let s=k(`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 Sv(e,{status:t,reviewable:n,mergeAction:r,live:i,state:a,effectiveBase:o,primaryAction:s}){let c=k(`div`,`review-actions`),l=s===`resolve`;s===`merge`&&c.append(xv({id:`review-merge-btn`,label:`Merge`,shortcut:Kg,title:Mg(o,Kg),disabled:!r.isEnabled||x_.has(e),onClick:()=>Z_(e,a)})),l&&c.append(xv({label:`Resolve`,shortcut:qg,title:`Paste a resolve prompt into this session so the agent can finish the merge (${qg})`,disabled:W_(e),onClick:()=>G_(e)}));let u=k(`div`,`review-action-controls`);if(u.append(c),!n||i)return c.childElementCount>0?u:null;let d=C_(`More review actions`,_n);if(d.classList.add(`review-more-button`),d.setAttribute(`aria-haspopup`,`menu`),d.setAttribute(`aria-expanded`,String(g_)),d.setAttribute(`aria-controls`,`review-more-menu`),d.addEventListener(`click`,()=>{g_=!g_,U(),(B?.querySelector(g_?`.review-more-menu button:not(:disabled)`:`.review-more-button`)??B?.querySelector(`.review-more-button`))?.focus()}),c.append(d),!g_)return u;let f=k(`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=xv({label:`Discard worktree`,danger:!0,disabled:t===`merging`,onClick:()=>{g_=!1,U();let t=cv(F.get(e),e);mr({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 Cv=160,wv=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 Tv(e){let t=e.split(/\r?\n/,1)[0]?.trim()??``;return t.length<=Cv?t:`${t.slice(0,157)}...`}function Ev(e,t){let n=wv[e];if(!n||!t||typeof t!=`object`||Array.isArray(t))return``;let r=t[n];return typeof r==`string`?Tv(r):``}var Dv=5e3;function Ov(e){let t=e.match(/<command-name>([^<]*)<\/command-name>/)?.[1];return t===void 0||/[\r\n]/.test(t)?null:t.trim()||null}function kv(e,t){if(!e.toolUseId)return Ov(e.text)??`context`;let n=t.get(e.toolUseId);return n?Ev(n.name,n.input)||n.name:`expansion`}function Av(e){return e.kind!==`expansion`||e.toolUseId?!1:Ov(e.text)!==null}function jv(e){return e.kind===`prompt`||e.kind===`session`||Av(e)}function Mv(e){return new TextEncoder().encode(e).byteLength}var Nv={prompt:`PROMPT`,expansion:`EXPANSION`,thinking:`THINKING`,assistant:`ASSISTANT`,tool_call:`TOOL`,tool_result:`RESULT`,session:`SESSION`,notice:`NOTICE`,raw:`RAW`};function Pv(e,t){if(e.kind===`prompt`)return{prefix:`Prompt: `,text:Tv(e.text)};if(e.kind===`thinking`)return{prefix:`Thinking: `,text:Tv(e.text)};if(e.kind===`assistant`)return{prefix:`Assistant: `,text:Tv(e.text)};if(e.kind===`notice`)return{prefix:`Notice: `,text:Tv(e.text)};if(e.kind===`raw`)return{prefix:`Raw: `,text:Tv(e.line)};if(e.kind===`session`)return{prefix:`Session: `,text:`${e.vendor} ${e.vendorSessionId}`};if(e.kind===`expansion`)return{prefix:`Expansion: `,text:kv(e,t)};if(e.kind===`tool_call`){let t=Ev(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:`${Mv(e.content)} bytes`}}function Fv(e){if(!e.agentType)return``;let t=e.agentId?` ${e.agentId.slice(-6)}`:``;return`[${e.agentType}${t}] `}function Iv(e,t){let n=Pv(e,t),r=Fv(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:Nv[e.kind],text:`${r}${i}`,tone:o,badges:a}}function Lv(e,t){return{record:e,...Iv(e,t)}}function Rv(e){return e.kind!==`tool_result`&&e.kind!==`expansion`?null:e.toolUseId||null}function zv(e,t){let n=Rv(e);return!n||t.has(n)?null:n}function Bv(e,t,n=1){e.set(t,(e.get(t)??0)+n)}function Vv(e,t){let n=(e.get(t)??0)-1;n>0?e.set(t,n):e.delete(t)}function Hv(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=Rv(i.record);a&&t.has(a)&&(n.rows[r]=Lv(i.record,e.toolCallByUseId))}}function Uv(){return{turns:[],toolCallByUseId:new Map,unresolvedToolUseCounts:new Map}}function Wv(){return{rowCount:0,toolCallCount:0,errorCount:0,resultBytes:0}}function Gv(e,t,n){e.metrics.rowCount+=n,t.record.kind===`tool_call`&&(e.metrics.toolCallCount+=n),t.record.kind===`tool_result`&&(e.metrics.resultBytes+=Mv(t.record.content)*n,t.record.isError&&(e.metrics.errorCount+=n))}function Kv(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=zv(i,e.toolCallByUseId);t&&Bv(e.unresolvedToolUseCounts,t);let a=Lv(i,e.toolCallByUseId);if(jv(i)){r={head:a,rows:[],hasTrimmedRows:!1,startedAt:i.ts,metrics:Wv()},Gv(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:Wv()},e.turns.push(r),n.push({turnIndex:e.turns.length-1,isNewTurn:!0,head:null,rows:[]})),r.rows.push(a),Gv(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 qv(e,t){let n=Uv();Kv(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)||Bv(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],Hv(e,i),{newTurns:n.turns,mergedHead:c,mergedRows:l,needsRerender:i.size>0}}function Jv(e){return e.rows.length+ +!!e.head}function Yv(e){let t=0;for(let n of e.turns)t+=Jv(n);return t}function Xv(e,t){for(let n of t){if(n.record.kind===`tool_call`){e.toolCallByUseId.delete(n.record.toolUseId);continue}let t=Rv(n.record);t&&Vv(e.unresolvedToolUseCounts,t)}}function Zv(e,t){Xv(e,t.head?[t.head,...t.rows]:t.rows)}function Qv(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);Xv(e,i);for(let e of i)Gv(n,e,-1);return n.rows=n.rows.slice(r),n.hasTrimmedRows=!0,r}function $v(e,t=Dv){let n=Yv(e),r=0;for(;n>t&&r<e.turns.length-1;){let t=e.turns[r];if(!t)break;n-=Jv(t),Zv(e,t),r+=1}return r>0&&(e.turns=e.turns.slice(r)),n<=t?{droppedTurnCount:r,droppedRowCount:0}:{droppedTurnCount:r,droppedRowCount:Qv(e,n-t)}}function ey(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 ty(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 ny(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 ry(e,t=Dv){return!e.selectedSessionId||!e.hasLoadedOnce||e.hasDroppedEarliestRows||e.residentRowCount>=t?!1:e.firstOffset>0}function iy(e,t=Dv){return!ry(e,t)||e.hasPendingRequest||!e.selectedSessionId?null:{id:e.selectedSessionId,direction:`earlier`,after:0,endingAt:e.firstOffset}}function ay(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 oy=1e4,sy=null,cy=null,ly=[],uy=null,dy=null,W=null,fy=null,py=!1,my=null,hy=()=>!1,gy=new Set;function _y(e){for(let t of gy)t(e)}function vy(){fy&&=(clearTimeout(fy.timeoutHandle),null)}function yy(){fy=null,my=`The trace did not load within ${Math.round(oy/1e3)} s.`,_y({kind:`rebuild`})}function by(e){vy(),py=!1,my=null,uy=e,W=e?{sessionId:e,grouping:Uv(),firstOffset:0,nextOffset:0,hasDroppedEarliestRows:!1,filePath:``,hasLoadedOnce:!1}:null,_y({kind:`selection-reset`})}function xy(e){let t=ty(ly,dy,uy,e);return dy&&t===dy&&(dy=null),t!==uy&&(by(t),!0)}function Sy(e){if(!sy)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};sy(t)?fy={request:e,timeoutHandle:setTimeout(yy,oy)}:(my=l,_y({kind:`header`}))}function Cy(e=!1){if(!sy)return;let t=ny({selectedSessionId:uy,isPanelVisible:e||hy(),hasPendingRequest:!!fy,hasLoadedOnce:W?.hasLoadedOnce??!1,nextOffset:W?.nextOffset??0});t&&Sy(t)}function wy(){py&&!fy&&(py=!1,Cy())}function Ty(){if(!W)return;let e=$v(W.grouping),t=e.droppedTurnCount>0||e.droppedRowCount>0,n=t&&!W.hasDroppedEarliestRows;t&&(W.hasDroppedEarliestRows=!0),_y({kind:`trimmed`,trim:{droppedTurnCount:e.droppedTurnCount,droppedRowCount:e.droppedRowCount,hasJustDroppedEarliestRows:n}})}function Ey(e){W&&(_y({kind:`records-appended`,appends:Kv(W.grouping,e)}),Ty())}function Dy(e){W&&(_y({kind:`records-prepended`,prepend:qv(W.grouping,e)}),Ty())}function Oy(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 ky(){return{selectedSessionId:uy,hasPendingRequest:!!fy,hasLoadedOnce:W?.hasLoadedOnce??!1,hasDroppedEarliestRows:W?.hasDroppedEarliestRows??!1,firstOffset:W?.firstOffset??0,residentRowCount:W?Yv(W.grouping):0}}function Ay(){return{sessionOptions:ly,selectedSessionId:uy,selectedTrace:W,pendingSessionId:fy?.request.id??null,traceFailureText:my}}function jy(e){gy.add(e)}function My(e){hy=e}function Ny(){if(!sy)return;let e=iy(ky());e&&Sy(e)}function Py(e){ly.some(t=>t.id===e)&&e!==uy&&(dy=null,by(e),Cy(),_y({kind:`rebuild`}))}function Fy(){let e=xy(!0);return Cy(!0),e}function Iy(e){sy=e}function Ly(e){cy=e}function Ry(e){dy=e,cy?.()}function zy(e){ly=ey(e);let t=xy(hy());t&&Cy(),_y({kind:`sessions`,hasSelectionChanged:t})}function By(e){let t=Oy(e);if(!t)return;let n=ay({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`?wy():(vy(),my&&(my=null,_y({kind:`header`})),n===`stale`?wy():n===`reset`?(by(t.id),W&&(W.filePath=t.path),Cy(),_y({kind:`rebuild`}),wy()):W&&(W.filePath=t.path,n===`prepend`?(W.firstOffset=t.start,Dy(t.records),wy()):(n===`seed`&&(W.hasLoadedOnce=!0,W.firstOffset=t.start),W.nextOffset=t.next,Ey(t.records),wy())))}function Vy(e){let t=e?.id;typeof t==`string`&&t===uy&&hy()&&(fy?py=!0:Cy())}function Hy(e){let t=e?.id;if(typeof t!=`string`||fy?.request.id!==t)return!1;vy(),py=!1;let n=e?.message;return my=typeof n==`string`&&n?n:`The trace could not be read.`,_y({kind:`rebuild`}),!0}function Uy(e){vy(),py=!1,my=e?null:l,e?(_y({kind:`header`}),Cy()):_y({kind:`rebuild`})}var Wy=80,Gy=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 Ky(e){return e.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)}function qy(e){return e.includes(`.`)?e.replace(/0+$/,``).replace(/\.$/,``):e}function Jy(e){if(typeof e!=`number`||!Number.isFinite(e))return`-`;let t=Math.round(e);return`${t<0?`-`:``}${Ky(String(Math.abs(t)))}`}function Yy(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}$${Ky(r)}.${i}`}function Xy(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}${qy((n/1e3).toFixed(1))}k`:n<999995e3?`${t}${qy((n/1e6).toFixed(2))}M`:`${t}${qy((n/1e9).toFixed(2))}B`}function Zy(e){return typeof e!=`number`||!Number.isFinite(e)?`ok`:e>=100?`crit`:e>=Wy?`warn`:`ok`}function Qy(e){let t=Ae(e?.max,null);return t===null||t<=0?null:t}function $y(e){let t=Qy(e),n=Ae(e?.pct,null);return t===null||n===null?null:n*100}function eb(e,t){let n=Qy(t),r=Ae(e?.projectedTokens,null);return n===null||r===null?null:r/n*100}var tb=90;function nb(e){let t=e?.budget?.rows;return Array.isArray(t)?t.filter(e=>e&&Ae(e.budgetUsd,null)!==null):[]}function rb(e){let t=Ae(e?.pct,null);return t===null?0:t}function ib(e,t){let n=e?.[t];if(!n||typeof n!=`object`)return null;let r=Ae(n.pct,null),i=Ae(n.resetsAtMs,null);return r===null&&i===null?null:{pct:r,resetsAtMs:i}}function ab(e){return e?.vendor===`codex`?`codex`:`claude`}function ob(e){return ib(e,`fiveHour`)?.pct??null}function sb(e,t=null){let n=ob(t);if(n!==null)return Zy(n);let r=Zy($y(e?.tokenLimit));return r===`ok`?Zy(eb(e?.activeBlock?.projection,e?.tokenLimit)):r}function cb(e,t=null){let n=[],r=sb(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 nb(e)){let e=rb(t);if(e<tb)continue;let r=typeof t?.scope==`string`&&t.scope?t.scope:`budget`;n.push(`budget:${r}:${e>=100?`over`:`near`}`)}return Se(n)}function lb(e,t=``){let n=e?.source;if(n===`fetched`){let e=ae(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=ae(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 ub(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 db(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=db(e.dirs);if(n!==null&&t.push(`${Jy(n)} transcript ${n===1?`directory`:`directories`}`),Number.isFinite(e.files)&&t.push(`${Jy(e.files)} files`),Number.isFinite(e.entries)&&t.push(`${Jy(e.entries)} entries`),Number.isFinite(e.lastScanMs)&&t.push(`last pass ${Jy(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 pb(e){return ae(e?.error,``)}function mb(e,t){if(!e||typeof e!=`object`)return!1;let n=e.requestId;return n==null||n===t}function hb(e){let t=Ae(e?.officialCostUSD,null);if(t!==null&&t>0)return{costUSD:t,source:`official`};let n=Ae(e?.costUSD,null);return n!==null&&n>0?{costUSD:n,source:`estimated`}:{costUSD:null,source:null}}function gb(e){let t=Number(e?.tokens);if(!Number.isFinite(t)||t<=0)return``;let{costUSD:n}=hb(e);return n===null?Xy(t):`${Xy(t)} ${Yy(n)}`}function _b(e){let{source:t}=hb(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 yb({hasPlan:e,isBorrowed:t,face:n}){return!e||n===`plan`?`hidden`:t?`face`:`navigate`}function bb(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 xb(e,t,n,r){let i=oe.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 Sb(e,t,n,r=``){let i=()=>n.send(xb(e,n.readState(),t,r)),a=bb(e,n.readState());a?n.confirm({...a,onConfirm:i}):i()}var Cb=`DORMANT`;function wb(e){return e?Ne(Date.now()-e,{rounding:`round`,wording:`compact`,suffix:` ago`,justNowBelowSeconds:60}):``}function Tb(e){return[e.worktreeName,e.gitBranch?e.gitBranch.replace(/^refs\/heads\//,``):null,wb(e.mtime)].filter(Boolean).join(` · `)}function Eb(e,t){let n=k(`button`,`resume-item`);return n.type=`button`,n.setAttribute(`role`,`option`),n.setAttribute(`aria-selected`,`false`),n.innerHTML=`<span class="resume-item-title">${Bn(e)}</span><span class="resume-item-meta">${Bn(t)}</span>`,n}async function Db(e,t,n){if(t.kind===`this`)return!0;let r=t.kind===`earlier`?t.conversationId:``,i=await hn(`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 Ob={this:`restart`,fresh:`restart-fresh`,earlier:`restart-into`};function kb(e,t,n,r){let i=n.kind===`earlier`?n.conversationId:``;Sb(Ob[n.kind],t,{readState:r,send:t=>{$n(e,t)},confirm:mr},i)}function Ab(e,{readState:t,canListEarlier:n}){let{overlay:r,dialog:i,close:a,actions:o,btnCancel:s}=gr({title:`Restart`,dialogClass:`dialog resume-dialog`}),c=k(`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=k(`div`,`resume-list`);l.setAttribute(`role`,`listbox`),l.setAttribute(`aria-label`,`Conversation to restart into`);let u=k(`button`,`btn-dialog btn-dialog-confirm`,`Restart`);u.type=`button`,o.append(u);let d=vn(`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=Eb(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 Db(e,n,d);delete i.dataset.applying,r&&(a(),$n(t,{type:`start-session`,id:e}))}function g(){if(i.dataset.applying!==void 0)return;let n=F.get(e);n?t()===Cb?h(n,f):(a(),kb(n,e,f,t)):a()}if(s.addEventListener(`click`,a),u.addEventListener(`click`,g),requestAnimationFrame(()=>u.focus()),!n)return;let _=k(`div`,`resume-empty`,`Loading earlier conversations...`);l.append(_),M(`list-conversations`,{id:e},{timeoutMs:wn}).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,Tb(e))}}).catch(e=>{r.isConnected&&(_.textContent=`Could not list earlier conversations: ${Cn(e,wn)}`)})}function jb(e){return e instanceof Error?e.message:String(e)}function Mb(e,t,n=!1){let r=k(`label`,`dialog-checkbox-label`),i=k(`input`);return i.type=`checkbox`,i.className=`dialog-checkbox`,i.value=t,i.checked=n,r.append(i,k(`span`,null,e)),r}function Nb(e){return e.split(/[\\/]/).filter(Boolean).at(-1)??e}async function Pb(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:Nb(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 Fb(e){let{overlay:t,dialog:n,close:r,actions:i,btnCancel:a}=gr({title:`Workspace repositories`}),o=k(`p`,`dialog-message`,`Saving restarts the session and resumes its conversation. A removed repository keeps its workspace branch, so committed work survives.`),s=k(`fieldset`,`dialog-workspace-list`);s.setAttribute(`aria-label`,`Workspace repositories`),s.append(k(`div`,`dialog-hint`,`Loading repositories...`));let c=k(`div`,`dialog-hint`);c.setAttribute(`role`,`status`);let l=k(`div`,`dialog-error`),u=k(`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()),Pb(e).then(e=>{if(t.isConnected){s.textContent=``;for(let t of e)s.append(Mb(t.name,t.path,t.isMember));u.disabled=!1}}).catch(e=>{t.isConnected&&(s.textContent=``,l.textContent=`Could not load repositories: ${jb(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: ${jb(e)}`)}).finally(()=>{c.textContent=``,u.disabled=!1}))})}var Ib=e=>e==null?``:String(e),Lb=e=>oe.includes(e),Rb=e=>g.includes(e),zb=!1;Is(Sh);var Bb=null,Vb=null;function Hb(){return Vb??=bi(()=>import(`./plan-face-Bumfu--W.js`).then(e=>(Bb=e,e),()=>(Vb=null,null)),__vite__mapDeps([7,1,2,8,6])),Vb}function Ub(e){let t=k(`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,Hb().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 Wb(e){return zb&&Yl(e.agent)&&e.card.dataset.ephemeral===void 0}function Gb(e){return Wb(e)&&e.isConversationViewOn&&e.isBorrowed}function Kb(e){e.btnConversationView.classList.toggle(`visible`,Wb(e)),e.btnConversationView.setAttribute(`aria-checked`,String(e.isConversationViewOn))}function qb(e){zb=e;for(let t of F.values())!e&&t.face===`conversation`&&t._showTerminalFace?.(),$b(t)}function Jb(e){let t=N(e);return!t||!Gb(t)?!1:(t.face=`conversation`,t.card.dataset.face=`conversation`,t.termWrap.hidden=!0,t.planFace.hide(),t.conversationFace.show(P(e)),$b(t),dm(t,P(e)),!0)}function Yb(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,$b(n),n.conversationFace.refresh(),r!==t.isConversationViewOn&&(t.isConversationViewOn?Jb(e):n.face===`conversation`&&n._showTerminalFace?.())}function Xb(e){return N(e.id)?.conversationFace.applyTraceResponse(e)===!0}function Zb(e){N(e.id)?.conversationFace.applyTraceError(e)}function Qb(e){N(e)?.conversationFace.applyTraceChanged(P(e))}function $b(e){Kb(e);let t=e.currentState;e.btnRestart.classList.toggle(`visible`,Lb(t)||Rb(t)||t===b.DORMANT),e.btnWorkspaceRepos.classList.toggle(`visible`,e.card.dataset.workspace!==void 0),e.btnTrace.classList.toggle(`visible`,Hn()),e.btnPlan.classList.toggle(`visible`,yb(e)!==`hidden`),e.btnRemove.classList.add(`visible`)}function ex(e){e.sessionMenu.classList.remove(`open`),e.btnSessionMenu.setAttribute(`aria-expanded`,`false`)}function tx(e,t){ir(e.taskTitleEl,()=>zn(e,t)),e.nameEl.addEventListener(`dblclick`,n=>{n.preventDefault(),lr(e,t)}),e.nameEl.addEventListener(`click`,()=>{tr(e.nameEl)||pi(t)}),e.nameEl.addEventListener(`keydown`,n=>{n.target===e.nameEl&&(n.key===`F2`||n.key===`Enter`)&&(n.preventDefault(),lr(e,t))}),e.btnRestart.addEventListener(`click`,()=>{ex(e),Ab(t,{readState:()=>e.currentState,canListEarlier:e.card.dataset.ephemeral===void 0})}),e.btnWorkspaceRepos.addEventListener(`click`,()=>{ex(e),Fb(t)}),e.btnTrace.addEventListener(`click`,()=>{ex(e),Ry(t)}),e.btnDocs.addEventListener(`click`,()=>{ex(e),Ss(t)}),e.btnShown.addEventListener(`click`,()=>{ex(e),Js(t)}),e.btnConversationView.addEventListener(`click`,()=>{ex(e),$n(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=>()=>{$n(e,{type:`set-session-guardrails`,id:t,isOn:n})};e.card.dataset.guarded===void 0?mr({title:`Restore guardrails`,message:`This session restarts with guardrails on, interrupting any turn in progress.`,confirmLabel:`Restore guardrails`,danger:!1,onConfirm:n(!0)}):mr({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=yb(e);n!==`hidden`&&(n===`face`?dx(t):location.hash=Wi(t))}),e.btnRemove.addEventListener(`click`,()=>{ex(e),Ri(t)});function n(){for(let[,t]of F)t!==e&&ex(t);e.sessionMenu.classList.add(`open`),e.btnSessionMenu.setAttribute(`aria-expanded`,`true`)}e.btnSessionMenu.addEventListener(`click`,t=>{t.stopPropagation(),e.sessionMenu.classList.contains(`open`)?ex(e):n()}),cr({trigger:e.btnSessionMenu,menu:e.sessionMenu,menuItems:()=>[...e.sessionMenu.querySelectorAll(`.popup-menu-item.visible`)],isOpen:()=>e.sessionMenu.classList.contains(`open`),open:n,close:()=>ex(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&&ex(e)},{signal:e.abortController.signal}),e.btnDebug.addEventListener(`click`,n=>{n.stopPropagation(),Qn(e,t)}),document.addEventListener(`click`,t=>{let n=t.target instanceof Node?t.target:null;e.debugOpen&&!e.card.contains(n)&&er(e)},{signal:e.abortController.signal})}function nx(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&&Kn(e,r.taskTitle)}}function rx(e){return typeof e==`string`&&F.has(e)}function ix(){return F.size}function ax(e){let t=e||{};t.cursorBlink!=null&&Vp(t.cursorBlink),t.debugMode!=null&&(sr(t.debugMode),Bh(t.debugMode));for(let[,e]of F)e.term&&t.cursorBlink!=null&&(e.term.options.cursorBlink=t.cursorBlink)}function ox(){Fu(F.values(),Lu())}function sx(){let e=Zn([...F.values()].map(e=>({state:e.currentState,unseenOutcome:e.unseenOutcome}))),t=dr(e);document.title=t>0?`(${t}) Glimmervoid`:`Glimmervoid`}function cx(e,t,n,r={}){if(!lt)return;let i=P(e),a=Ib(n)||b.DORMANT,o=ar(i,Ib(t),a,r),s=a===b.DORMANT;lt.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(),$b(c),$m(c,i)}function u(){Jb(i)||l()}let d=new AbortController,f=Ub({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=>Px(i,e)}),p=hh({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:Ib(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=()=>$m(c,i),c._showTerminalFace=l,c._showPreferredFace=()=>{lx(c)===`plan`?dx(i):Jb(i)||l()},c._setBorrowed=e=>{c.isBorrowed=e,$b(c)},o.card.append(f.el,p.el),F.set(i,c),tx(c,i),$b(c),c.btnDocs.classList.toggle(`visible`,ls(i)),Ls(i),a===b.RUNNING&&it(c,!0),s||Xm(c,i),sx(),c}function lx(e){let t=e.planReviewState.reviews.some(e=>e.state===`open`),n=e.planReviewState.reviews.some(Gh);return vb({hasPlan:e.hasPlan,pendingPromptKind:e.pendingPromptKind,hasOpenReview:t,hasApprovedReview:n})}function ux(e){let t=N(e);return!t?.isBorrowed||lx(t)!==`plan`?!1:dx(e)}function dx(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)),$b(t),dm(t,P(e)),!0)}function fx(e,t){let n=N(e);n&&(n.hasPlan=t===!0,$b(n),ux(e))}function px(e){let t=N(e.id);t&&(t.planReviewState=cg(t.planReviewState,e),t.hasPlan=e.hasPlan,t.planFace.update({state:t.planReviewState}),$b(t),ux(e.id))}function mx(e){let t=N(e.id);t&&t.planFace.update({draft:e})}function hx(e){let t=N(e.id);t&&(t.planReviewState={reviews:e.reviews},t.hasPlan=!0,t.planFace.update({response:e}),$b(t))}function gx(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 _x(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 yx(e,t){let n=N(e);n&&(n.agent=typeof t==`string`?t:null,$b(n))}function bx(e,t){let n=N(e);n&&(t?n.card.dataset.worktree=``:delete n.card.dataset.worktree)}function xx(e,t,n){let r=N(e);r&&(Sx(r.card,`guarded`,t),Sx(r.card,`guardrailsReleased`,n),Gn(r.btnGuardrails,r.card))}function Sx(e,t,n){n?e.dataset[t]=``:delete e.dataset[t]}function Cx(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 wx(e,t){let n=N(e);if(!n)return;let r=gb(t),i=n.card.querySelector(`.usage-badge`);if(r)n.card.dataset.usage=``,i&&(i.dataset.tipLabel=r,i.dataset.tipDetail=_b(t),On(i));else{if(delete n.card.dataset.usage,!i)return;delete i.dataset.tipLabel,On(i)}}function Tx(e,t){let n=N(e);n&&(n.pendingPromptKind=typeof t==`string`?t:null,n.conversationFace.refresh(),!ux(e)&&(typeof t!=`string`||t===``)&&n.face===`terminal`&&Jb(e))}function Ex(e,t){let n=N(e);n&&(n.unseenOutcome=t??null)}function Dx(e,t){t===`pending-review`||t===`parked`||t===`merging`?e.dataset.merge=t:delete e.dataset.merge}function Ox(e,t,n=null){let r=N(e),i=Ib(t)||`none`;r&&Dx(r.card,i),k_(P(e),i,Ib(n)||null)}function kx(e,t,n=null){let r=N(e),i=Ib(t)||`none`;r&&Dx(r.card,i),j_(P(e),i,Ib(n)||null)}function Ax(e,t){M_(P(e),t)}function jx(e,t){let n=N(e);if(!n)return;let r=Ib(t);n.card.dataset.session=r,n.nameEl.textContent=r}function Mx(e){let t=N(e);t&&(er(t),F.delete(P(e)),Bb?.dropPlanBodyCache(P(e)),t.resizeObserver&&t.resizeObserver.disconnect(),t.abortController&&t.abortController.abort(),Um(t,P(e)),Tp(t),t.term&&t.term.dispose(),t.term=null,t.fitAddon=null,t.card&&t.card.remove(),sx())}function Nx(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 Px(e,t){let n=N(e);n?Jn(n).show(`error`,t):I({source:`Session`,sessionId:typeof e==`string`?e:void 0,message:t})}function Fx(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??k(`p`,`session-failure-reason`);i.setAttribute(`role`,`status`),i.textContent=t,r||n.termWrap.before(i)}function Ix(e,t){e.term&&(t===b.DONE||t===b.FAILED)&&(e.term.clear(),e.term.reset())}function Lx(e){let t=F.get(e);t&&Fn({state:t.currentState,unseenOutcome:t.unseenOutcome})&&document.visibilityState===`visible`&&(Du()||document.hasFocus())&&j({type:`dismiss`,id:e,expectedState:t.currentState})}function Rx(e,t,n){let r=document.activeElement;return ai({previousState:t,nextState:n,isPhoneLayout:Du(),isDocumentVisible:document.visibilityState===`visible`,isDocumentFocused:document.hasFocus(),isActiveViewer:e._isActiveViewer?.()===!0,hasFocusInsideTerminal:r instanceof Node&&e.termWrap.contains(r)})}function zx(){return xt()&&!sa()}function Bx(e,t,n,r=``){let i=N(e);if(!i)return;let a=Ib(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(),it(i,a===b.RUNNING)),o===b.DORMANT&&a!==b.DORMANT&&Xm(i,P(e)),Rn({state:a})===`resting`&&aa(P(e)),i.card.dataset.state=a,i.card.toggleAttribute(`data-monitoring`,xe(a,i.awaitingBackgroundTasks)),$b(i),(a===b.WAITING&&o!==b.WAITING||a===b.COMPLETE&&o!==b.COMPLETE)&&!Ml(r)&&zx()&&od(Wt()),Rx(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})})}),zx()&&od(Wt())),(a===b.DONE||a===b.FAILED)&&Nx(i,c,a),a===b.INITIALIZING&&Ix(i,o),sx()}var Vx=`(no path)`;function Hx(e){if(!e)return Vx;let t=String(e).replace(/[/\\]+$/,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return(n===-1?t:t.slice(n+1))||`(no path)`}function Ux(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):Vx,a=i.get(r);a||(a={key:r,label:r===`(no path)`?Vx:Hx(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:Hx(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 Wx(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 Gx({onAdd:e,onForget:t}){let n=k(`div`,`session-group-header`),r=k(`span`,`session-group-label`),i=k(`span`,`session-group-count`),a=k(`span`,`session-group-rule`);a.setAttribute(`aria-hidden`,`true`);let o=k(`button`,`session-group-add`,`+`);o.type=`button`,o.addEventListener(`click`,()=>e(n.dataset.path,n.dataset.label));let s=k(`button`,`session-group-forget`);return s.type=`button`,s.append(mn(xn)),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 Kx(e,t,n){let{header:r,label:i,count:a,addButton:o,forgetButton:s}=e,c=t.key===Vx,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 qx={waitingCount:0,finishedCount:0,failedCount:0},Jx={failed:fe[b.FAILED],waiting:fe[b.WAITING],finished:fe[b.COMPLETE]},Yx={failed:`failed`,waiting:`needs you`,finished:`finished`},Xx=[`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`],Zx=2500,Qx=`cubic-bezier(0.16, 1, 0.3, 1)`,$x=`cubic-bezier(0.5, 0, 0.2, 1)`,eS=260,tS=200,nS=200,rS=300,iS=28,aS=360,oS=420,sS=200,cS=3,lS=window.matchMedia?.(`(prefers-reduced-motion: reduce)`),uS=new WeakMap;function dS(e){let t=uS.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 pS(){return lS?.matches??!1}function mS(e){return e.map(e=>({easing:Qx,...e}))}function hS(e,t){let n=k(`div`,`attention-banner`);n.setAttribute(`role`,`status`),n.style.setProperty(`--attention-head-tile-px`,`${An.headTile}px`),n.style.setProperty(`--attention-tile-px`,`${An.tile}px`),n.style.setProperty(`--attention-tile-gap-px`,`${An.tileGap}px`),n.style.setProperty(`--attention-overflow-px`,`${An.overflowSlot}px`);let r=k(`span`,`attention-banner-chips`),i=k(`span`,`attention-tile-overflow`);i.setAttribute(`aria-hidden`,`true`),i.hidden=!0,r.append(i);let a=k(`span`,`attention-banner-line`);a.setAttribute(`aria-hidden`,`true`);let o=k(`span`,`attention-banner-status`);o.append(r,k(`span`,`attention-banner-count`),a);let s=k(`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),uS.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(()=>_S(n)).observe(r),gS(n,qx,[]),n}function gS(e,t,n){let r=dS(e);r.tiles=n,O(e,`.attention-banner-count`).textContent=kn(t);let i=n.length>0;e.toggleAttribute(`data-empty`,!i),e.toggleAttribute(`data-jumpable`,i),i&&NS(e,r),_S(e)}function _S(e){let t=dS(e),n=O(e,`.attention-banner-chips`),r=O(n,`.attention-tile-overflow`),i=fS(e),a=t.tiles.slice(0,Xn(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():xS(n,l[r])});let u=t.headId,d=[],f=null;a.forEach((i,a)=>{let o=t.tileById.get(i.id),s=o??yS(e,i.id);o||(t.tileById.set(i.id,s),d.push(s)),bS(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)&&TS(e,null),i){for(let e of d)SS(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?wS(r,a):a!==0&&CS(r,a,n)})}}function vS(e){let t=e.previousElementSibling;for(;t?.hasAttribute(`data-leaving`);)t=t.previousElementSibling;return t}function yS(e,t){let n=k(`span`,`attention-tile`);n.setAttribute(`role`,`img`),n.dataset.id=t;let r=k(`span`,`attention-tile-icon`);return r.setAttribute(`aria-hidden`,`true`),n.append(r),n.addEventListener(`pointerenter`,()=>TS(e,t)),n.addEventListener(`pointerleave`,()=>TS(e,null)),n}function bS(e,{kind:t,name:n},r){e.dataset.kind=t,e.toggleAttribute(`data-head`,r);let i=`${n}, ${Yx[t]}`;e.title=i,e.setAttribute(`aria-label`,i),Tn(O(e,`.attention-tile-icon`),Jx[t])}function xS(e,t){e.toggleAttribute(`data-leaving`,!0),e.style.left=`${t.left}px`,e.style.top=`${t.top}px`;let n=pS()?[{opacity:1},{opacity:0}]:mS([{transform:`none`,opacity:1},{transform:`scale(0.6)`,opacity:0}]),r=e.animate(n,{duration:nS,fill:`forwards`});r.onfinish=()=>e.remove(),r.oncancel=()=>e.remove()}function SS(e){let t=pS()?[{opacity:0},{opacity:1}]:mS([{transform:`scale(0.6)`,opacity:0},{transform:`none`,opacity:1}]);e.animate(t,{duration:tS})}function CS(e,t,n){pS()||e.animate(mS([{transform:`translateX(${t}px)`},{transform:`none`}]),{duration:rS,delay:n*iS,fill:`backwards`})}function wS(e,t){pS()?e.animate([{opacity:.35},{opacity:1}],{duration:aS,easing:Qx}):e.animate(mS([{transform:`translateX(${t}px) scale(0.8)`,filter:`brightness(1.8)`},{transform:`scale(1.1)`,offset:.6},{transform:`none`,filter:`none`}]),{duration:aS})}function TS(e,t){let n=dS(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 ES(e){return!e||e.getClientRects().length===0?null:e.getBoundingClientRect()}function DS(e,t,n){let r=dS(e);if(r.flyingIds.has(t))return;let i=r.tileById.get(t);if(!i||!fS(e)){n();return}TS(e,null),r.flyingIds.add(t);let a=r.hooks.rowFor(t),o=i.getBoundingClientRect(),s=ES(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(OS(o,s),kS(s)),u=()=>{c.remove(),r.flyingIds.delete(t),i.isConnected&&(i.style.visibility=``),n()};l.onfinish=u,l.oncancel=u}function OS(e,t){return!t||pS()?[{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 kS(e){return!e||pS()?{duration:sS,fill:`forwards`}:{duration:oS,easing:$x,fill:`forwards`}}function AS(e){let t=dS(e);e.hasAttribute(`data-empty`)&&MS(e,t);for(let e of t.pressAnimations)e.cancel();if(t.pressAnimations=[],!fS(e))return;let n={duration:eS};if(t.pressAnimations.push(e.animate(mS([{opacity:0},{opacity:.07,offset:.3},{opacity:0}]),{...n,pseudoElement:`::after`})),!pS()){t.pressAnimations.push(e.animate(mS([{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(mS([{transform:`none`},{transform:`translateY(${cS}px)`,offset:.3},{transform:`none`}]),n),r.animate(mS([{transform:`none`},{transform:`translateY(-${cS}px)`,offset:.3},{transform:`none`}]),{...n,pseudoElement:`::after`}))}}function jS(e){let t=Xx.filter(t=>t!==e);return t[Math.floor(Math.random()*t.length)]??Xx[0]}function MS(e,t){let n=jS(t.lastAllClearLine);t.lastAllClearLine=n,O(e,`.attention-banner-line`).textContent=n,e.toggleAttribute(`data-all-clear-line`,!0),t.allClearLineTimer!==null&&window.clearTimeout(t.allClearLineTimer),t.allClearLineTimer=window.setTimeout(()=>NS(e,t),Zx)}function NS(e,t){t.allClearLineTimer!==null&&window.clearTimeout(t.allClearLineTimer),t.allClearLineTimer=null,e.toggleAttribute(`data-all-clear-line`,!1)}var PS=e=>e.ui.path,FS=window.matchMedia?.(`(prefers-reduced-motion: reduce)`),IS=null,LS=null,RS=null,zS=null,BS=null,VS=null,HS=null,G=!1,US=!1,WS=new Map,GS=new Map,KS=new Map,qS=new Map,JS=null,YS=``,XS=[],ZS=new Set;function QS(){return Wx(eC(lC()),ZS)}function $S(e){let t=JS;if(JS=e||null,t&&t!==JS){let e=GS.get(t);e&&(e.tabIndex=-1,e.setAttribute(`aria-selected`,`false`))}if(JS){let e=GS.get(JS);e&&(e.tabIndex=0,e.setAttribute(`aria-selected`,`true`))}}function eC(e){return Ux(e,PS,kl(e,PS))}function tC(e){let t=qS.get(e.key),n=KS.get(e.key);return(!t||!n)&&(t=Gx({onAdd:Mi,onForget:e=>{Al(e),hC()}}),n=k(`div`,`focus-rail-list`),n.setAttribute(`role`,`listbox`),qS.set(e.key,t),KS.set(e.key,n)),Kx(t,e,`rail`),n.setAttribute(`aria-label`,`${e.label} sessions`),{header:t.header,list:n}}function nC(){return G}function rC(){return L.snapshot().focusedSessionId}function iC({rail:e,center:t,resizer:n}){if(IS=e,RS=t,!IS||!RS)return;let r=IS,i=RS;sC(n),r.removeAttribute(`role`),r.removeAttribute(`aria-label`),r.setAttribute(`aria-keyshortcuts`,Jt(ha)),LS=hS({onJump:yC,rowFor:e=>GS.get(e)},xa());let a=k(`details`,`rail-status-key`);a.append(k(`summary`,`rail-status-key-summary`,`Status key`),wl()),r.append(LS,a),BS=k(`div`,`focus-empty`),BS.innerHTML=`<p class="focus-empty-title"></p><p class="focus-empty-desc"></p>`,VS=BS.querySelector(`.focus-empty-title`),HS=BS.querySelector(`.focus-empty-desc`),zS=k(`div`,`focus-card-slot`),i.append(BS,zS),r.addEventListener(`keydown`,cC)}var aC={minPx:180,maxPx:480},oC=16;function sC(e){e&&IS&&Jc({resizer:e,column:IS,widthHost:IS,widthProperty:`--rail-width`,bounds:aC,keyStepPx:oC,getStoredWidth:It,setStoredWidth:mt})}function cC(e){if(e.key===`Delete`||e.key===`Backspace`){let t=e.target instanceof HTMLElement?e.target:null,n=t?.dataset.id;if(!n||GS.get(n)!==t)return;e.preventDefault(),Ri(n);return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`||e.altKey||e.metaKey||e.ctrlKey||e.shiftKey)return;let t=Mn(QS(),JS,e.key===`ArrowDown`?1:-1);t!=null&&(e.preventDefault(),$S(t),GS.get(t)?.focus())}function lC(){return jn(wi(uC))}function uC(e){return e.nameEl?e.nameEl.textContent:e.card&&(e.card.dataset.session||e.card.dataset.id)||``}function dC(e){let{row:t,refs:n}=ul(`button`);t.type=`button`,t.dataset.id=e,t.setAttribute(`role`,`option`),t.addEventListener(`click`,()=>fC(e)),t.addEventListener(`pointerenter`,()=>{LS&&TS(LS,e)}),t.addEventListener(`pointerleave`,()=>{LS&&TS(LS,null)});let{item:r,removeButton:i}=dl(t,()=>Ri(e));return r.setAttribute(`role`,`presentation`),i.tabIndex=-1,Object.assign(t,{_refs:n,_row:r})}function fC(e){let t=xi(e);t&&(TC(e),xC(t,e))}function pC(e,{id:t,ui:n,state:r,name:i},a){let o=WS.get(t)||`none`;vl(e,e._refs,{ui:n,state:r,name:i??``,mergeStatus:o===`none`?``:o,attentionPosition:a}),e.classList.toggle(`focused`,t===rC()),e.classList.toggle(`has-unopened-shown`,Ps(t));let s=t===JS;e.setAttribute(`aria-selected`,String(s)),e.tabIndex=s?0:-1}function mC(e,t){if(!G)return;let n=e?.card?.dataset.id,r=n?GS.get(n):null;r&&(t===`flag`?r.dataset.activity=e._activity||``:nt(r._refs?.glyph))}ot(mC),rt(()=>{if(G)for(let[e,t]of GS){let n=F.get(e);n&&(t._refs.elapsed.textContent=tt(n))}});function hC(){if(!G)return;let e=IS;if(!e)return;let t=lC(),n=eC(t),r=new Set,i=Ln(t,rC()),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=GS.get(e);o||(o=dC(e),GS.set(e,o)),pC(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(`
|
|
82
|
+
`),i.append(t)}let a=t?e.worthALook:e.worthALook.slice(0,vg);if(a.length>0){let e=k(`div`,`review-look-list`);for(let t of a)e.append(yg(t,r));i.append(e)}let o=e.worthALook.length-a.length;if(o===0)return i;let s=k(`div`,`review-look-more`),c=k(`button`,`review-look-show-all`,`Show all`);return c.type=`button`,c.addEventListener(`click`,n),s.append(k(`span`,`review-look-more-count`,`+${o} more`),c),i.append(s),i}function xg(e){return(e??[]).map(e=>{let t=k(`span`,`review-file-hint`,e.text);return t.title=e.title,t})}function Sg(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 Cg(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=Sg(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 wg(e,t){return t===`merged`||t===`none`||e===`parked`&&t===`pending-review`}function Tg(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 Eg({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=jg(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 Dg({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?Eg({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 Og(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 ${jg(t)}.`}function kg(e,t){return e.namesMergeTarget?null:`merges into ${jg(t)}`}function Ag({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 jg(e){return e||`base`}function Mg(e,t){return`Merge into ${jg(e)}, push it, and rebase this worktree, then keep working (${t})`}function Ng(e){return e===`base-diverged`?`Resync the base branch by hand, then Merge again.`:`Needs manual merge`}function Pg(e,t,n){let r=e!==`parked`||e===`parked`&&t===`base-diverged`;return{isRendered:r,isEnabled:r&&e!==`merging`&&n}}function Fg({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 Ig(e){return e.map(e=>{let t=e.member?`${e.member}/ `:``,n=te(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 Lg({fetched:e,changedFileCount:t,hasCommits:n}){return!e||t>0||n}function Rg(e){return e||`its upstream`}function zg(e){if(!e)return null;let t=e.branch||`Base branch`,{state:n,ahead:r,behind:i}=e,a=Rg(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 Bg(e){return!e||e.fetched===!1?`recheck`:e.state===`ahead`||e.state===`behind`?`resync`:`recheck`}function Vg(e,t,n){let r=n?` (${t})`:``;if(!e||Bg(e)===`recheck`)return`Click to fetch and check again${r}`;let i=e.branch||`Base branch`,a=Rg(e.upstream);return e.state===`behind`?`Click to fast-forward ${i} to ${a}${r}`:`Click to push ${i} to ${a}${r}`}function Hg(e){return e?.state!==`in-sync`||e.fetched===!1}function Ug(e){if(e.error)return`Resync failed: ${e.error}`;let t=e.branch||`The base branch`,n=Rg(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 Wg=new Set([`pending-review`,`parked`]),Gg=600,Kg=Lt(`merge`,ha),qg=Lt(`resolve-or-resync`,ha),Jg={minPx:260,maxPx:700},Yg=16,Xg=5e3,Zg=new Map,Qg=new Map,$g=new Map,e_=new Map,t_=new Map,n_=new Map,r_=new Set,i_=new WeakMap,a_=new WeakMap,o_=new Set,s_=new Set,c_=!1,l_=null,u_=null,B=null,V=null,d_=null,f_=null,p_=null,m_=null,h_=null,g_=!1,__=null,v_=null,y_=null,b_=null,x_=new Map,H=null,S_=null;function C_(e,t){let n=k(`button`,`review-icon-button`);return n.type=`button`,n.title=e,n.setAttribute(`aria-label`,e),n.append(mn(t)),n}function w_(){g_=!1,B?.querySelector(`.review-more-menu`)?.remove(),B?.querySelector(`.review-more-button`)?.setAttribute(`aria-expanded`,`false`)}function T_({panel:e}){if(u_=e,!u_)return;let t=u_,n=k(`div`,`review-sidebar-head`),r=k(`span`,`review-sidebar-title`,`Review`);h_=k(`span`,`review-sidebar-session`),r.append(h_);let i=e=>{t.toggleAttribute(`data-collapsed`,e),wt(!e)},a=C_(`Close review`,`M6 3L11 8L6 13`);a.classList.add(`review-sidebar-close`),a.addEventListener(`click`,()=>i(!0)),n.append(r,a);let o=k(`div`,`review-sidebar-rail`),s=C_(`Open review`,`M10 3L5 8L10 13`);s.classList.add(`review-sidebar-open`),s.addEventListener(`click`,()=>i(!1)),f_=k(`div`,`review-rail-status`),p_=k(`span`,`review-rail-added`),m_=k(`span`,`review-rail-removed`),f_.append(p_,m_),d_=k(`span`,`review-rail-label`,`Review`),o.append(s,d_,f_),B=k(`div`,`review-controls`),V=k(`div`,`review-sidebar-body`);let c=k(`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`,!ut()),D_(V),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&g_&&(e.preventDefault(),w_(),B?.querySelector(`.review-more-button`)?.focus())}),document.addEventListener(`pointerdown`,e=>{g_&&e.target instanceof Element&&(B?.contains(e.target)&&e.target.closest(`.review-more-button, .review-more-menu`)||w_())}),Jc({resizer:c,column:t,widthHost:t,widthProperty:`--sidebar-width`,bounds:Jg,keyStepPx:Yg,getStoredWidth:Yt,setStoredWidth:Tt,growsLeftward:!0}),mi(e=>{g_=!1,y_=null,o_.clear(),s_.clear(),c_=!1,l_=null,e&&ev(e),e&&!nv(e)&&rv(e),U()}),U()}function E_(e,t){let n=Zg.get(e);Zg.set(e,t),wg(n,t)&&($g.delete(e),e_.delete(e),t_.delete(e),e===R()&&tv(e)),e===R()&&U()}function D_(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),mi(a)}function O_(e){u_&&(e?(Ee(u_,e),U()):(_e(u_),U()))}function k_(e,t,n=null){let r=t||`none`;Qg.set(e,n);let i=x_.get(e);i!==void 0&&i!==r&&x_.delete(e),E_(e,r)}function A_(e){let t=P(e);t&&x_.delete(t)&&t===R()&&U()}function j_(e,t,n=null){Qg.set(e,n),x_.delete(e),E_(e,t||`none`)}function M_(e,t){$g.set(e,t),e_.delete(e),e===R()&&(l_&&lv(l_,t),U(),uv())}function N_(e,t){let n=P(e);n&&(e_.set(n,t),n===R()&&U())}function P_(e,t){let n=P(e);if(!n)return;let r=y.safeParse(t);r.success&&r.data.sessionId===n&&(t_.set(n,r.data),n===R()&&U())}function F_(e,t){let n=P(e),r=t;n_.set(n,r),r&&r.action!==void 0&&I_(n,r),n===R()&&U()}function I_(e,t){r_.delete(e),clearTimeout(S_??void 0),S_=null;let n=Ug(t);H=n?{forId:e,text:n,isError:!!t.error}:null,H&&!H.isError&&(S_=setTimeout(()=>{H&&H.forId===e&&(H=null),U()},5e3))}function L_(e){let t=P(e);t&&t===R()&&ev(t)}function R_(e){let t=P(e);if(t!==R())return;let n=!$g.has(t)||e_.has(t),r=!t_.has(t)||z_(t_.get(t));n&&ev(t),r&&!n&&tv(t),U()}function z_(e){return e?!!e.error||e.repos.some(e=>e.error!==null):!1}function B_(e){let t=P(e);Zg.delete(t),Qg.delete(t),$g.delete(t),e_.delete(t),t_.delete(t),n_.delete(t),r_.delete(t),H&&H.forId===t&&(clearTimeout(S_??void 0),H=null),t===R()?pi(null):U()}function V_(){let e=R(),t=e?F.get(e):null;if(!e||!t)return H_(null,`No session is open to merge.`);if(nv(e))return H_(e,`A workspace session has no worktree to merge.`);if(x_.has(e))return H_(e,`Merge is already on its way for "${cv(t,e)}".`);let n=Zg.get(e)||`none`,r=!!$g.get(e)?.hasCommits,i=Pg(n,Qg.get(e)||null,X_(t.currentState,r));return Ag({status:n,mergeReason:Qg.get(e)||null,live:$_(t.currentState),isMergeRendered:i.isRendered,hasChanges:Y_(e)})!==`merge`||!i.isEnabled?H_(e,Fg({status:n,hasCommits:r,live:$_(t.currentState),state:t.currentState})??`Nothing to merge in "${cv(t,e)}" right now.`):(Z_(e,t.currentState),!0)}function H_(e,t){return y_={forId:e,text:t},clearTimeout(b_??void 0),b_=setTimeout(()=>{y_=null,U()},Xg),U(),!1}function U_(){let e=R();if(!e||nv(e))return!1;let t=F.get(e);if(!t)return!1;let n=Zg.get(e)||`none`,r=Qg.get(e)||null;return Ag({status:n,mergeReason:r,live:$_(t.currentState),isMergeRendered:Pg(n,r,!1).isRendered,hasChanges:Y_(e)})!==`resolve`||W_(e)?!1:(G_(e),!0)}function W_(e){return __?.forId===e&&!__.isError}function G_(e){let t=j({type:`resolve-session-merge`,id:e});__=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(()=>{__=null,U()},t?3e3:Xg),U()}function K_(){let e=R();return!e||!F.has(e)||nv(e)||av(e)?!1:(ov(e),!0)}function q_(e){if(!e)return{committed:[],uncommitted:[]};let t=i_.get(e);if(t)return t;let n={committed:Cg(e.committed?.diff||``),uncommitted:Cg(e.uncommitted?.diff||``)};return i_.set(e,n),n}function J_(e){let t=a_.get(e);if(t)return t;let n=gg(e);return a_.set(e,n),n}function Y_(e){let t=q_($g.get(e)),n=[...t.committed,...t.uncommitted],r=$g.get(e)??null;return Lg({fetched:$g.has(e),changedFileCount:Tg(n).files,hasCommits:!!r?.hasCommits})}function X_(e,t){return(se.includes(e)||e===b.RUNNING)&&t}function Z_(e,t){t===b.RUNNING?mr({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:()=>Q_(e,!0)}):Q_(e,!1)}function Q_(e,t){x_.has(e)||(j(t?{type:`merge-continue-session`,id:e,force:!0}:{type:`merge-continue-session`,id:e})?(x_.set(e,Zg.get(e)||`none`),e===R()&&U()):H_(e,`Not connected. The merge was not sent.`))}function $_(e){return e!==b.DORMANT&&e!==b.DONE&&e!==b.FAILED}function ev(e){j({type:`request-session-diff`,id:e}),tv(e)}function tv(e){t_.has(e)||t_.set(e,null),j({type:`request-change-map`,id:e})}function nv(e){return F.get(e)?.card.dataset.workspace!==void 0}function rv(e){n_.set(e,null),j({type:`request-branch-sync`,id:e}),e===R()&&U()}function iv(e){r_.add(e),clearTimeout(S_??void 0),H&&H.forId===e&&(H=null),j({type:`resync-branch`,id:e}),e===R()&&U()}function av(e){return r_.has(e)||n_.get(e)===null}function ov(e){av(e)||(Bg(n_.get(e))===`resync`?iv(e):rv(e))}function sv(e,t){return t?{text:`Resyncing`,loading:!0,error:!1}:H&&H.forId===e?{text:H.text,loading:!1,error:H.isError}:null}function cv(e,t){return e?.card?.dataset.session||t}function lv(e,t){if(!t)return;let{committed:n,uncommitted:r}=q_(t);for(let t of n)(t.path===e||t.oldPath===e)&&o_.add(`committed:${t.path}`);for(let t of r)(t.path===e||t.oldPath===e)&&o_.add(`uncommitted:${t.path}`)}function uv(){if(!V||!l_)return;let e=V.querySelectorAll(`.review-file`);for(let t of e)if(t.dataset.path===l_||t.dataset.oldPath===l_){t.scrollIntoView({block:`nearest`}),l_=null;return}}function dv(e){l_=e,lv(e,$g.get(R()??``)),U(),uv()}function fv(){c_=!0,U()}function U(){let e=V?.scrollTop??0;pv(),V&&(V.scrollTop=e)}function pv(){if(!B||!V)return;B.replaceChildren(),V.replaceChildren(),d_&&(d_.hidden=!0),f_&&(f_.hidden=!0);let e=R(),t=e?F.get(e):null;if(hv(e,t),!e||!t){y_&&B.append(mv(y_.text,!0)),gv(`No session selected`,`Click a session name to review its changes here.`);return}let n=nv(e),r=Zg.get(e)||`none`,i=Qg.get(e)||null,a=t.currentState,o=Wg.has(r),s=$g.has(e),c=s?$g.get(e):null,l=e_.get(e)??null,{committed:u,uncommitted:d}=q_(c),f=!!c?.hasCommits,p=$_(a),m=Pg(r,i,X_(a,f)),h=n_.get(e),g=r_.has(e),_=jg(t.effectiveBase),v=Tg([...u,...d]),y=Ag({status:r,mergeReason:i,live:p,hasChanges:Lg({fetched:s,changedFileCount:v.files,hasCommits:f}),isMergeRendered:m.isRendered}),b=Dg({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||Du()||Hg(h),C=k(`div`,`review-status-headline`);if(C.append(k(`span`,`review-status-text`,b.text)),!n&&!S){let t=zg(h);if(t){C.title=t;let n=C_(`Refresh branch sync`,`M13 6A5 5 0 1 0 13 10M13 2v4H9`);n.classList.add(`review-branch-sync-refresh`),n.title=Vg(h,qg,y!==`resolve`),n.disabled=av(e),n.setAttribute(`aria-description`,t),n.addEventListener(`click`,()=>ov(e)),C.append(k(`span`,`sr-only`,t),n)}}if(x||B.append(C),u.length>0)for(let e of Ig(c?.bases??[])){let t=k(`div`,e.isUnverified?`review-diff-base review-diff-base-unverified`:`review-diff-base`,e.text);t.title=e.fullSha,B.append(t)}let ee=k(`div`,`review-status-meta`);if(s&&v.files>0&&ee.append(k(`span`,`review-status-added`,`+${v.added}`),k(`span`,`review-status-removed`,`-${v.removed}`),k(`span`,`review-status-spacer`)),!n&&S){let t=_v(e,y!==`resolve`);t&&ee.append(t)}ee.childElementCount>0&&B.append(ee),r===`parked`&&B.append(k(`div`,`review-status-explanation`,Ng(i))),d_&&(d_.hidden=!1),f_&&(f_.hidden=!1,f_.setAttribute(`aria-label`,`${b.text}, +${v.added}, -${v.removed}`),f_.title=b.text),p_&&(p_.textContent=`+${v.added}`),m_&&(m_.textContent=`-${v.removed}`);let w=n?null:Sv(e,{status:r,reviewable:o,mergeAction:m,live:p,state:a,effectiveBase:_,primaryAction:y});w&&B.append(w);let T=n?null:sv(e,g),te=!n&&y===`merge`&&!m.isEnabled?Fg({status:r,hasCommits:f,live:p,state:a}):null;if(te){let e=k(`div`,`review-control-reason`,te);e.id=`review-merge-reason`,B.append(e),B.querySelector(`#review-merge-btn`)?.setAttribute(`aria-describedby`,e.id)}if(T?.text){let e=k(`div`,T.loading?`review-control-reason review-loading`:`review-control-reason`,T.text);e.id=`review-resync-reason`,T.error&&e.classList.add(`review-control-reason-error`),e.setAttribute(`role`,`status`),ee.append(e),ee.isConnected||B.insertBefore(ee,C.isConnected?C.nextSibling:B.firstChild),B.querySelector(`.review-branch-sync-button, .review-branch-sync-refresh`)?.setAttribute(`aria-describedby`,e.id)}if(__?.forId===e&&B.append(mv(__.text,__.isError)),y_&&(y_.forId===e||y_.forId===null)&&B.append(mv(y_.text,!0)),l){V.append(k(`p`,`review-diff-error`,l));return}if(x){gv(b.text,Og(n,_));return}let E=t_.get(e),ne=E?J_(E):null,re=ne?bg(ne,{isShowingAll:c_,onShowAll:fv,onOpenFile:dv}):null;re&&V.append(re);let ie=u.length>0&&d.length>0;u.length>0&&V.append(vv({kind:`committed`,label:ie?`Committed`:null,meaning:kg(b,_),files:u,changeMapView:ne})),d.length>0&&V.append(vv({kind:`uncommitted`,label:ie?`Not committed yet`:null,meaning:null,files:d,changeMapView:ne}))}function mv(e,t){let n=k(`div`,t?`review-control-reason review-control-reason-error`:`review-resolve-sent`,e);return n.setAttribute(`role`,`status`),n}function hv(e,t){if(!h_)return;let n=e&&t?cv(t,e):``;h_.textContent=n,h_.hidden=!n,h_.title=n}function gv(e,t){if(!V)return;let n=k(`div`,`review-empty`);n.append(k(`div`,`review-empty-title`,e),k(`div`,`review-empty-desc`,t)),V.append(n)}function _v(e,t){let n=n_.get(e);if(n===void 0)return null;if(n===null)return k(`span`,`review-branch-sync-text review-loading`,`Checking branch sync...`);let r=zg(n)||`Base branch: sync state unknown`,i=k(`span`,`review-branch-sync-text`);n.state&&(i.dataset.syncState=n.state),n.fetched===!1&&(i.dataset.stale=`true`);let a=C_(`Refresh branch sync`,`M13 6A5 5 0 1 0 13 10M13 2v4H9`);return a.classList.add(`review-branch-sync-button`),a.title=Vg(n,qg,t),a.disabled=r_.has(e),a.addEventListener(`click`,()=>ov(e)),i.append(a,k(`span`,`review-branch-sync-label`,r)),i}function vv({kind:e,label:t,meaning:n,files:r,changeMapView:i}){let a=k(`div`,`review-section`);a.dataset.kind=e,t&&a.append(yv(t,n,r));let o=k(`div`,`review-diff`),s=i&&i.repos.length>1?i.repos:[],c=null;for(let t of r){let n=s.length>0?_g(s,t.path):null;n&&n!==c&&o.append(k(`div`,`review-repo-label`,n)),c=n,o.append(bv(t,e,i))}return a.append(o),a}function yv(e,t,n){let r=Tg(n),i=k(`div`,`review-section-head`),a=k(`div`,`review-section-id`);a.append(k(`span`,`review-section-label`,e)),t&&a.append(k(`span`,`review-section-meaning`,t));let o=k(`div`,`review-section-stat`);return o.append(k(`span`,`review-stat-files`,`${r.files} file${r.files===1?``:`s`}`),k(`span`,`review-add`,`+${r.added}`),k(`span`,`review-del`,`-${r.removed}`)),i.append(a,o),i}function bv(e,t,n){let r=`${t}:${e.path}`,i=o_.has(r),a=k(`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=k(`button`,`review-file-head`);o.type=`button`,o.setAttribute(`aria-expanded`,i?`true`:`false`);let s=k(`span`,`review-file-twisty`,i?`▾`:`▸`);s.setAttribute(`aria-hidden`,`true`);let c=k(`span`,`review-file-name`);c.append(k(`span`,`review-file-path`,e.path));let l=xg(n?.hintsByOpenPath.get(e.path));if(l.length>0){let e=k(`span`,`review-file-hints`);e.append(...l),c.append(e)}o.append(s,c);let u=k(`span`,`review-file-counts`);if(e.binary&&u.append(k(`span`,`review-bin`,`bin`)),e.binary||u.append(k(`span`,`review-add`,`+${e.added}`),k(`span`,`review-del`,`-${e.removed}`)),o.append(u),o.addEventListener(`click`,()=>{let e=o_.has(r);e&&o_.delete(r),e||o_.add(r),U()}),a.append(o),!i)return a;let d=k(`div`,`review-file-body`);if(e.binary)return d.append(k(`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>=Gg&&!s_.has(r)){p=!0;break}d.append(k(`div`,`review-hunk-head`,t.header));for(let e of t.lines){if(f>=Gg&&!s_.has(r)){p=!0;break}let t=k(`div`,`review-line review-line-${e.type}`),n=e.type===`add`?`+`:e.type===`del`?`-`:e.type===`meta`?`\\`:` `;t.append(k(`span`,`review-line-gutter`,n)),t.append(k(`span`,`review-line-text`,e.text)),d.append(t),f++}if(p)break}if(p){let e=k(`button`,`review-expand`,`Show the rest of this file`);e.type=`button`,e.addEventListener(`click`,()=>{s_.add(r),U()}),d.append(e)}return a.append(d),a}function xv({id:e,label:t,shortcut:n,title:r,disabled:i=!1,danger:a=!1,onClick:o}){let s=k(`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 Sv(e,{status:t,reviewable:n,mergeAction:r,live:i,state:a,effectiveBase:o,primaryAction:s}){let c=k(`div`,`review-actions`),l=s===`resolve`;s===`merge`&&c.append(xv({id:`review-merge-btn`,label:`Merge`,shortcut:Kg,title:Mg(o,Kg),disabled:!r.isEnabled||x_.has(e),onClick:()=>Z_(e,a)})),l&&c.append(xv({label:`Resolve`,shortcut:qg,title:`Paste a resolve prompt into this session so the agent can finish the merge (${qg})`,disabled:W_(e),onClick:()=>G_(e)}));let u=k(`div`,`review-action-controls`);if(u.append(c),!n||i)return c.childElementCount>0?u:null;let d=C_(`More review actions`,_n);if(d.classList.add(`review-more-button`),d.setAttribute(`aria-haspopup`,`menu`),d.setAttribute(`aria-expanded`,String(g_)),d.setAttribute(`aria-controls`,`review-more-menu`),d.addEventListener(`click`,()=>{g_=!g_,U(),(B?.querySelector(g_?`.review-more-menu button:not(:disabled)`:`.review-more-button`)??B?.querySelector(`.review-more-button`))?.focus()}),c.append(d),!g_)return u;let f=k(`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=xv({label:`Discard worktree`,danger:!0,disabled:t===`merging`,onClick:()=>{g_=!1,U();let t=cv(F.get(e),e);mr({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 Cv=160,wv=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 Tv(e){let t=e.split(/\r?\n/,1)[0]?.trim()??``;return t.length<=Cv?t:`${t.slice(0,157)}...`}function Ev(e,t){let n=wv[e];if(!n||!t||typeof t!=`object`||Array.isArray(t))return``;let r=t[n];return typeof r==`string`?Tv(r):``}var Dv=5e3;function Ov(e){let t=e.match(/<command-name>([^<]*)<\/command-name>/)?.[1];return t===void 0||/[\r\n]/.test(t)?null:t.trim()||null}function kv(e,t){if(!e.toolUseId)return Ov(e.text)??`context`;let n=t.get(e.toolUseId);return n?Ev(n.name,n.input)||n.name:`expansion`}function Av(e){return e.kind!==`expansion`||e.toolUseId?!1:Ov(e.text)!==null}function jv(e){return e.kind===`prompt`||e.kind===`session`||Av(e)}function Mv(e){return new TextEncoder().encode(e).byteLength}var Nv={prompt:`PROMPT`,expansion:`EXPANSION`,thinking:`THINKING`,assistant:`ASSISTANT`,tool_call:`TOOL`,tool_result:`RESULT`,session:`SESSION`,notice:`NOTICE`,raw:`RAW`};function Pv(e,t){if(e.kind===`prompt`)return{prefix:`Prompt: `,text:Tv(e.text)};if(e.kind===`thinking`)return{prefix:`Thinking: `,text:Tv(e.text)};if(e.kind===`assistant`)return{prefix:`Assistant: `,text:Tv(e.text)};if(e.kind===`notice`)return{prefix:`Notice: `,text:Tv(e.text)};if(e.kind===`raw`)return{prefix:`Raw: `,text:Tv(e.line)};if(e.kind===`session`)return{prefix:`Session: `,text:`${e.vendor} ${e.vendorSessionId}`};if(e.kind===`expansion`)return{prefix:`Expansion: `,text:kv(e,t)};if(e.kind===`tool_call`){let t=Ev(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:`${Mv(e.content)} bytes`}}function Fv(e){if(!e.agentType)return``;let t=e.agentId?` ${e.agentId.slice(-6)}`:``;return`[${e.agentType}${t}] `}function Iv(e,t){let n=Pv(e,t),r=Fv(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:Nv[e.kind],text:`${r}${i}`,tone:o,badges:a}}function Lv(e,t){return{record:e,...Iv(e,t)}}function Rv(e){return e.kind!==`tool_result`&&e.kind!==`expansion`?null:e.toolUseId||null}function zv(e,t){let n=Rv(e);return!n||t.has(n)?null:n}function Bv(e,t,n=1){e.set(t,(e.get(t)??0)+n)}function Vv(e,t){let n=(e.get(t)??0)-1;n>0?e.set(t,n):e.delete(t)}function Hv(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=Rv(i.record);a&&t.has(a)&&(n.rows[r]=Lv(i.record,e.toolCallByUseId))}}function Uv(){return{turns:[],toolCallByUseId:new Map,unresolvedToolUseCounts:new Map}}function Wv(){return{rowCount:0,toolCallCount:0,errorCount:0,resultBytes:0}}function Gv(e,t,n){e.metrics.rowCount+=n,t.record.kind===`tool_call`&&(e.metrics.toolCallCount+=n),t.record.kind===`tool_result`&&(e.metrics.resultBytes+=Mv(t.record.content)*n,t.record.isError&&(e.metrics.errorCount+=n))}function Kv(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=zv(i,e.toolCallByUseId);t&&Bv(e.unresolvedToolUseCounts,t);let a=Lv(i,e.toolCallByUseId);if(jv(i)){r={head:a,rows:[],hasTrimmedRows:!1,startedAt:i.ts,metrics:Wv()},Gv(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:Wv()},e.turns.push(r),n.push({turnIndex:e.turns.length-1,isNewTurn:!0,head:null,rows:[]})),r.rows.push(a),Gv(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 qv(e,t){let n=Uv();Kv(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)||Bv(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],Hv(e,i),{newTurns:n.turns,mergedHead:c,mergedRows:l,needsRerender:i.size>0}}function Jv(e){return e.rows.length+ +!!e.head}function Yv(e){let t=0;for(let n of e.turns)t+=Jv(n);return t}function Xv(e,t){for(let n of t){if(n.record.kind===`tool_call`){e.toolCallByUseId.delete(n.record.toolUseId);continue}let t=Rv(n.record);t&&Vv(e.unresolvedToolUseCounts,t)}}function Zv(e,t){Xv(e,t.head?[t.head,...t.rows]:t.rows)}function Qv(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);Xv(e,i);for(let e of i)Gv(n,e,-1);return n.rows=n.rows.slice(r),n.hasTrimmedRows=!0,r}function $v(e,t=Dv){let n=Yv(e),r=0;for(;n>t&&r<e.turns.length-1;){let t=e.turns[r];if(!t)break;n-=Jv(t),Zv(e,t),r+=1}return r>0&&(e.turns=e.turns.slice(r)),n<=t?{droppedTurnCount:r,droppedRowCount:0}:{droppedTurnCount:r,droppedRowCount:Qv(e,n-t)}}function ey(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 ty(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 ny(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 ry(e,t=Dv){return!e.selectedSessionId||!e.hasLoadedOnce||e.hasDroppedEarliestRows||e.residentRowCount>=t?!1:e.firstOffset>0}function iy(e,t=Dv){return!ry(e,t)||e.hasPendingRequest||!e.selectedSessionId?null:{id:e.selectedSessionId,direction:`earlier`,after:0,endingAt:e.firstOffset}}function ay(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 oy=1e4,sy=null,cy=null,ly=[],uy=null,dy=null,W=null,fy=null,py=!1,my=null,hy=()=>!1,gy=new Set;function _y(e){for(let t of gy)t(e)}function vy(){fy&&=(clearTimeout(fy.timeoutHandle),null)}function yy(){fy=null,my=`The trace did not load within ${Math.round(oy/1e3)} s.`,_y({kind:`rebuild`})}function by(e){vy(),py=!1,my=null,uy=e,W=e?{sessionId:e,grouping:Uv(),firstOffset:0,nextOffset:0,hasDroppedEarliestRows:!1,filePath:``,hasLoadedOnce:!1}:null,_y({kind:`selection-reset`})}function xy(e){let t=ty(ly,dy,uy,e);return dy&&t===dy&&(dy=null),t!==uy&&(by(t),!0)}function Sy(e){if(!sy)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};sy(t)?fy={request:e,timeoutHandle:setTimeout(yy,oy)}:(my=l,_y({kind:`header`}))}function Cy(e=!1){if(!sy)return;let t=ny({selectedSessionId:uy,isPanelVisible:e||hy(),hasPendingRequest:!!fy,hasLoadedOnce:W?.hasLoadedOnce??!1,nextOffset:W?.nextOffset??0});t&&Sy(t)}function wy(){py&&!fy&&(py=!1,Cy())}function Ty(){if(!W)return;let e=$v(W.grouping),t=e.droppedTurnCount>0||e.droppedRowCount>0,n=t&&!W.hasDroppedEarliestRows;t&&(W.hasDroppedEarliestRows=!0),_y({kind:`trimmed`,trim:{droppedTurnCount:e.droppedTurnCount,droppedRowCount:e.droppedRowCount,hasJustDroppedEarliestRows:n}})}function Ey(e){W&&(_y({kind:`records-appended`,appends:Kv(W.grouping,e)}),Ty())}function Dy(e){W&&(_y({kind:`records-prepended`,prepend:qv(W.grouping,e)}),Ty())}function Oy(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 ky(){return{selectedSessionId:uy,hasPendingRequest:!!fy,hasLoadedOnce:W?.hasLoadedOnce??!1,hasDroppedEarliestRows:W?.hasDroppedEarliestRows??!1,firstOffset:W?.firstOffset??0,residentRowCount:W?Yv(W.grouping):0}}function Ay(){return{sessionOptions:ly,selectedSessionId:uy,selectedTrace:W,pendingSessionId:fy?.request.id??null,traceFailureText:my}}function jy(e){gy.add(e)}function My(e){hy=e}function Ny(){if(!sy)return;let e=iy(ky());e&&Sy(e)}function Py(e){ly.some(t=>t.id===e)&&e!==uy&&(dy=null,by(e),Cy(),_y({kind:`rebuild`}))}function Fy(){let e=xy(!0);return Cy(!0),e}function Iy(e){sy=e}function Ly(e){cy=e}function Ry(e){dy=e,cy?.()}function zy(e){ly=ey(e);let t=xy(hy());t&&Cy(),_y({kind:`sessions`,hasSelectionChanged:t})}function By(e){let t=Oy(e);if(!t)return;let n=ay({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`?wy():(vy(),my&&(my=null,_y({kind:`header`})),n===`stale`?wy():n===`reset`?(by(t.id),W&&(W.filePath=t.path),Cy(),_y({kind:`rebuild`}),wy()):W&&(W.filePath=t.path,n===`prepend`?(W.firstOffset=t.start,Dy(t.records),wy()):(n===`seed`&&(W.hasLoadedOnce=!0,W.firstOffset=t.start),W.nextOffset=t.next,Ey(t.records),wy())))}function Vy(e){let t=e?.id;typeof t==`string`&&t===uy&&hy()&&(fy?py=!0:Cy())}function Hy(e){let t=e?.id;if(typeof t!=`string`||fy?.request.id!==t)return!1;vy(),py=!1;let n=e?.message;return my=typeof n==`string`&&n?n:`The trace could not be read.`,_y({kind:`rebuild`}),!0}function Uy(e){vy(),py=!1,my=e?null:l,e?(_y({kind:`header`}),Cy()):_y({kind:`rebuild`})}var Wy=80,Gy=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 Ky(e){return e.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)}function qy(e){return e.includes(`.`)?e.replace(/0+$/,``).replace(/\.$/,``):e}function Jy(e){if(typeof e!=`number`||!Number.isFinite(e))return`-`;let t=Math.round(e);return`${t<0?`-`:``}${Ky(String(Math.abs(t)))}`}function Yy(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}$${Ky(r)}.${i}`}function Xy(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}${qy((n/1e3).toFixed(1))}k`:n<999995e3?`${t}${qy((n/1e6).toFixed(2))}M`:`${t}${qy((n/1e9).toFixed(2))}B`}function Zy(e){return typeof e!=`number`||!Number.isFinite(e)?`ok`:e>=100?`crit`:e>=Wy?`warn`:`ok`}function Qy(e){let t=Ae(e?.max,null);return t===null||t<=0?null:t}function $y(e){let t=Qy(e),n=Ae(e?.pct,null);return t===null||n===null?null:n*100}function eb(e,t){let n=Qy(t),r=Ae(e?.projectedTokens,null);return n===null||r===null?null:r/n*100}var tb=90;function nb(e){let t=e?.budget?.rows;return Array.isArray(t)?t.filter(e=>e&&Ae(e.budgetUsd,null)!==null):[]}function rb(e){let t=Ae(e?.pct,null);return t===null?0:t}function ib(e,t){let n=e?.[t];if(!n||typeof n!=`object`)return null;let r=Ae(n.pct,null),i=Ae(n.resetsAtMs,null);return r===null&&i===null?null:{pct:r,resetsAtMs:i}}function ab(e){return e?.vendor===`codex`?`codex`:`claude`}function ob(e){return ib(e,`fiveHour`)?.pct??null}function sb(e,t=null){let n=ob(t);if(n!==null)return Zy(n);let r=Zy($y(e?.tokenLimit));return r===`ok`?Zy(eb(e?.activeBlock?.projection,e?.tokenLimit)):r}function cb(e,t=null){let n=[],r=sb(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 nb(e)){let e=rb(t);if(e<tb)continue;let r=typeof t?.scope==`string`&&t.scope?t.scope:`budget`;n.push(`budget:${r}:${e>=100?`over`:`near`}`)}return Se(n)}function lb(e,t=``){let n=e?.source;if(n===`fetched`){let e=ae(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=ae(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 ub(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 db(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=db(e.dirs);if(n!==null&&t.push(`${Jy(n)} transcript ${n===1?`directory`:`directories`}`),Number.isFinite(e.files)&&t.push(`${Jy(e.files)} files`),Number.isFinite(e.entries)&&t.push(`${Jy(e.entries)} entries`),Number.isFinite(e.lastScanMs)&&t.push(`last pass ${Jy(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 pb(e){return ae(e?.error,``)}function mb(e,t){if(!e||typeof e!=`object`)return!1;let n=e.requestId;return n==null||n===t}function hb(e){let t=Ae(e?.officialCostUSD,null);if(t!==null&&t>0)return{costUSD:t,source:`official`};let n=Ae(e?.costUSD,null);return n!==null&&n>0?{costUSD:n,source:`estimated`}:{costUSD:null,source:null}}function gb(e){let t=Number(e?.tokens);if(!Number.isFinite(t)||t<=0)return``;let{costUSD:n}=hb(e);return n===null?Xy(t):`${Xy(t)} ${Yy(n)}`}function _b(e){let{source:t}=hb(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 yb({hasPlan:e,isBorrowed:t,face:n}){return!e||n===`plan`?`hidden`:t?`face`:`navigate`}function bb(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 xb(e,t,n,r){let i=oe.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 Sb(e,t,n,r=``){let i=()=>n.send(xb(e,n.readState(),t,r)),a=bb(e,n.readState());a?n.confirm({...a,onConfirm:i}):i()}var Cb=`DORMANT`;function wb(e){return e?Ne(Date.now()-e,{rounding:`round`,wording:`compact`,suffix:` ago`,justNowBelowSeconds:60}):``}function Tb(e){return[e.worktreeName,e.gitBranch?e.gitBranch.replace(/^refs\/heads\//,``):null,wb(e.mtime)].filter(Boolean).join(` · `)}function Eb(e,t){let n=k(`button`,`resume-item`);return n.type=`button`,n.setAttribute(`role`,`option`),n.setAttribute(`aria-selected`,`false`),n.innerHTML=`<span class="resume-item-title">${Bn(e)}</span><span class="resume-item-meta">${Bn(t)}</span>`,n}async function Db(e,t,n){if(t.kind===`this`)return!0;let r=t.kind===`earlier`?t.conversationId:``,i=await hn(`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 Ob={this:`restart`,fresh:`restart-fresh`,earlier:`restart-into`};function kb(e,t,n,r){let i=n.kind===`earlier`?n.conversationId:``;Sb(Ob[n.kind],t,{readState:r,send:t=>{$n(e,t)},confirm:mr},i)}function Ab(e,{readState:t,canListEarlier:n}){let{overlay:r,dialog:i,close:a,actions:o,btnCancel:s}=gr({title:`Restart`,dialogClass:`dialog resume-dialog`}),c=k(`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=k(`div`,`resume-list`);l.setAttribute(`role`,`listbox`),l.setAttribute(`aria-label`,`Conversation to restart into`);let u=k(`button`,`btn-dialog btn-dialog-confirm`,`Restart`);u.type=`button`,o.append(u);let d=vn(`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=Eb(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 Db(e,n,d);delete i.dataset.applying,r&&(a(),$n(t,{type:`start-session`,id:e}))}function g(){if(i.dataset.applying!==void 0)return;let n=F.get(e);n?t()===Cb?h(n,f):(a(),kb(n,e,f,t)):a()}if(s.addEventListener(`click`,a),u.addEventListener(`click`,g),requestAnimationFrame(()=>u.focus()),!n)return;let _=k(`div`,`resume-empty`,`Loading earlier conversations...`);l.append(_),M(`list-conversations`,{id:e},{timeoutMs:wn}).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,Tb(e))}}).catch(e=>{r.isConnected&&(_.textContent=`Could not list earlier conversations: ${Cn(e,wn)}`)})}function jb(e){return e instanceof Error?e.message:String(e)}function Mb(e,t,n=!1){let r=k(`label`,`dialog-checkbox-label`),i=k(`input`);return i.type=`checkbox`,i.className=`dialog-checkbox`,i.value=t,i.checked=n,r.append(i,k(`span`,null,e)),r}function Nb(e){return e.split(/[\\/]/).filter(Boolean).at(-1)??e}async function Pb(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:Nb(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 Fb(e){let{overlay:t,dialog:n,close:r,actions:i,btnCancel:a}=gr({title:`Workspace repositories`}),o=k(`p`,`dialog-message`,`Saving restarts the session and resumes its conversation. A removed repository keeps its workspace branch, so committed work survives.`),s=k(`fieldset`,`dialog-workspace-list`);s.setAttribute(`aria-label`,`Workspace repositories`),s.append(k(`div`,`dialog-hint`,`Loading repositories...`));let c=k(`div`,`dialog-hint`);c.setAttribute(`role`,`status`);let l=k(`div`,`dialog-error`),u=k(`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()),Pb(e).then(e=>{if(t.isConnected){s.textContent=``;for(let t of e)s.append(Mb(t.name,t.path,t.isMember));u.disabled=!1}}).catch(e=>{t.isConnected&&(s.textContent=``,l.textContent=`Could not load repositories: ${jb(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: ${jb(e)}`)}).finally(()=>{c.textContent=``,u.disabled=!1}))})}var Ib=e=>e==null?``:String(e),Lb=e=>oe.includes(e),Rb=e=>g.includes(e),zb=!1;Is(Sh);var Bb=null,Vb=null;function Hb(){return Vb??=bi(()=>import(`./plan-face-BClsoNpb.js`).then(e=>(Bb=e,e),()=>(Vb=null,null)),__vite__mapDeps([7,1,2,8,6])),Vb}function Ub(e){let t=k(`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,Hb().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 Wb(e){return zb&&Yl(e.agent)&&e.card.dataset.ephemeral===void 0}function Gb(e){return Wb(e)&&e.isConversationViewOn&&e.isBorrowed}function Kb(e){e.btnConversationView.classList.toggle(`visible`,Wb(e)),e.btnConversationView.setAttribute(`aria-checked`,String(e.isConversationViewOn))}function qb(e){zb=e;for(let t of F.values())!e&&t.face===`conversation`&&t._showTerminalFace?.(),$b(t)}function Jb(e){let t=N(e);return!t||!Gb(t)?!1:(t.face=`conversation`,t.card.dataset.face=`conversation`,t.termWrap.hidden=!0,t.planFace.hide(),t.conversationFace.show(P(e)),$b(t),dm(t,P(e)),!0)}function Yb(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,$b(n),n.conversationFace.refresh(),r!==t.isConversationViewOn&&(t.isConversationViewOn?Jb(e):n.face===`conversation`&&n._showTerminalFace?.())}function Xb(e){return N(e.id)?.conversationFace.applyTraceResponse(e)===!0}function Zb(e){N(e.id)?.conversationFace.applyTraceError(e)}function Qb(e){N(e)?.conversationFace.applyTraceChanged(P(e))}function $b(e){Kb(e);let t=e.currentState;e.btnRestart.classList.toggle(`visible`,Lb(t)||Rb(t)||t===b.DORMANT),e.btnWorkspaceRepos.classList.toggle(`visible`,e.card.dataset.workspace!==void 0),e.btnTrace.classList.toggle(`visible`,Hn()),e.btnPlan.classList.toggle(`visible`,yb(e)!==`hidden`),e.btnRemove.classList.add(`visible`)}function ex(e){e.sessionMenu.classList.remove(`open`),e.btnSessionMenu.setAttribute(`aria-expanded`,`false`)}function tx(e,t){ir(e.taskTitleEl,()=>zn(e,t)),e.nameEl.addEventListener(`dblclick`,n=>{n.preventDefault(),lr(e,t)}),e.nameEl.addEventListener(`click`,()=>{tr(e.nameEl)||pi(t)}),e.nameEl.addEventListener(`keydown`,n=>{n.target===e.nameEl&&(n.key===`F2`||n.key===`Enter`)&&(n.preventDefault(),lr(e,t))}),e.btnRestart.addEventListener(`click`,()=>{ex(e),Ab(t,{readState:()=>e.currentState,canListEarlier:e.card.dataset.ephemeral===void 0})}),e.btnWorkspaceRepos.addEventListener(`click`,()=>{ex(e),Fb(t)}),e.btnTrace.addEventListener(`click`,()=>{ex(e),Ry(t)}),e.btnDocs.addEventListener(`click`,()=>{ex(e),Ss(t)}),e.btnShown.addEventListener(`click`,()=>{ex(e),Js(t)}),e.btnConversationView.addEventListener(`click`,()=>{ex(e),$n(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=>()=>{$n(e,{type:`set-session-guardrails`,id:t,isOn:n})};e.card.dataset.guarded===void 0?mr({title:`Restore guardrails`,message:`This session restarts with guardrails on, interrupting any turn in progress.`,confirmLabel:`Restore guardrails`,danger:!1,onConfirm:n(!0)}):mr({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=yb(e);n!==`hidden`&&(n===`face`?dx(t):location.hash=Wi(t))}),e.btnRemove.addEventListener(`click`,()=>{ex(e),Ri(t)});function n(){for(let[,t]of F)t!==e&&ex(t);e.sessionMenu.classList.add(`open`),e.btnSessionMenu.setAttribute(`aria-expanded`,`true`)}e.btnSessionMenu.addEventListener(`click`,t=>{t.stopPropagation(),e.sessionMenu.classList.contains(`open`)?ex(e):n()}),cr({trigger:e.btnSessionMenu,menu:e.sessionMenu,menuItems:()=>[...e.sessionMenu.querySelectorAll(`.popup-menu-item.visible`)],isOpen:()=>e.sessionMenu.classList.contains(`open`),open:n,close:()=>ex(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&&ex(e)},{signal:e.abortController.signal}),e.btnDebug.addEventListener(`click`,n=>{n.stopPropagation(),Qn(e,t)}),document.addEventListener(`click`,t=>{let n=t.target instanceof Node?t.target:null;e.debugOpen&&!e.card.contains(n)&&er(e)},{signal:e.abortController.signal})}function nx(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&&Kn(e,r.taskTitle)}}function rx(e){return typeof e==`string`&&F.has(e)}function ix(){return F.size}function ax(e){let t=e||{};t.cursorBlink!=null&&Vp(t.cursorBlink),t.debugMode!=null&&(sr(t.debugMode),Bh(t.debugMode));for(let[,e]of F)e.term&&t.cursorBlink!=null&&(e.term.options.cursorBlink=t.cursorBlink)}function ox(){Fu(F.values(),Lu())}function sx(){let e=Zn([...F.values()].map(e=>({state:e.currentState,unseenOutcome:e.unseenOutcome}))),t=dr(e);document.title=t>0?`(${t}) Glimmervoid`:`Glimmervoid`}function cx(e,t,n,r={}){if(!lt)return;let i=P(e),a=Ib(n)||b.DORMANT,o=ar(i,Ib(t),a,r),s=a===b.DORMANT;lt.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(),$b(c),$m(c,i)}function u(){Jb(i)||l()}let d=new AbortController,f=Ub({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=>Px(i,e)}),p=hh({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:Ib(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=()=>$m(c,i),c._showTerminalFace=l,c._showPreferredFace=()=>{lx(c)===`plan`?dx(i):Jb(i)||l()},c._setBorrowed=e=>{c.isBorrowed=e,$b(c)},o.card.append(f.el,p.el),F.set(i,c),tx(c,i),$b(c),c.btnDocs.classList.toggle(`visible`,ls(i)),Ls(i),a===b.RUNNING&&it(c,!0),s||Xm(c,i),sx(),c}function lx(e){let t=e.planReviewState.reviews.some(e=>e.state===`open`),n=e.planReviewState.reviews.some(Gh);return vb({hasPlan:e.hasPlan,pendingPromptKind:e.pendingPromptKind,hasOpenReview:t,hasApprovedReview:n})}function ux(e){let t=N(e);return!t?.isBorrowed||lx(t)!==`plan`?!1:dx(e)}function dx(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)),$b(t),dm(t,P(e)),!0)}function fx(e,t){let n=N(e);n&&(n.hasPlan=t===!0,$b(n),ux(e))}function px(e){let t=N(e.id);t&&(t.planReviewState=cg(t.planReviewState,e),t.hasPlan=e.hasPlan,t.planFace.update({state:t.planReviewState}),$b(t),ux(e.id))}function mx(e){let t=N(e.id);t&&t.planFace.update({draft:e})}function hx(e){let t=N(e.id);t&&(t.planReviewState={reviews:e.reviews},t.hasPlan=!0,t.planFace.update({response:e}),$b(t))}function gx(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 _x(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 yx(e,t){let n=N(e);n&&(n.agent=typeof t==`string`?t:null,$b(n))}function bx(e,t){let n=N(e);n&&(t?n.card.dataset.worktree=``:delete n.card.dataset.worktree)}function xx(e,t,n){let r=N(e);r&&(Sx(r.card,`guarded`,t),Sx(r.card,`guardrailsReleased`,n),Gn(r.btnGuardrails,r.card))}function Sx(e,t,n){n?e.dataset[t]=``:delete e.dataset[t]}function Cx(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 wx(e,t){let n=N(e);if(!n)return;let r=gb(t),i=n.card.querySelector(`.usage-badge`);if(r)n.card.dataset.usage=``,i&&(i.dataset.tipLabel=r,i.dataset.tipDetail=_b(t),On(i));else{if(delete n.card.dataset.usage,!i)return;delete i.dataset.tipLabel,On(i)}}function Tx(e,t){let n=N(e);n&&(n.pendingPromptKind=typeof t==`string`?t:null,n.conversationFace.refresh(),!ux(e)&&(typeof t!=`string`||t===``)&&n.face===`terminal`&&Jb(e))}function Ex(e,t){let n=N(e);n&&(n.unseenOutcome=t??null)}function Dx(e,t){t===`pending-review`||t===`parked`||t===`merging`?e.dataset.merge=t:delete e.dataset.merge}function Ox(e,t,n=null){let r=N(e),i=Ib(t)||`none`;r&&Dx(r.card,i),k_(P(e),i,Ib(n)||null)}function kx(e,t,n=null){let r=N(e),i=Ib(t)||`none`;r&&Dx(r.card,i),j_(P(e),i,Ib(n)||null)}function Ax(e,t){M_(P(e),t)}function jx(e,t){let n=N(e);if(!n)return;let r=Ib(t);n.card.dataset.session=r,n.nameEl.textContent=r}function Mx(e){let t=N(e);t&&(er(t),F.delete(P(e)),Bb?.dropPlanBodyCache(P(e)),t.resizeObserver&&t.resizeObserver.disconnect(),t.abortController&&t.abortController.abort(),Um(t,P(e)),Tp(t),t.term&&t.term.dispose(),t.term=null,t.fitAddon=null,t.card&&t.card.remove(),sx())}function Nx(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 Px(e,t){let n=N(e);n?Jn(n).show(`error`,t):I({source:`Session`,sessionId:typeof e==`string`?e:void 0,message:t})}function Fx(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??k(`p`,`session-failure-reason`);i.setAttribute(`role`,`status`),i.textContent=t,r||n.termWrap.before(i)}function Ix(e,t){e.term&&(t===b.DONE||t===b.FAILED)&&(e.term.clear(),e.term.reset())}function Lx(e){let t=F.get(e);t&&Fn({state:t.currentState,unseenOutcome:t.unseenOutcome})&&document.visibilityState===`visible`&&(Du()||document.hasFocus())&&j({type:`dismiss`,id:e,expectedState:t.currentState})}function Rx(e,t,n){let r=document.activeElement;return ai({previousState:t,nextState:n,isPhoneLayout:Du(),isDocumentVisible:document.visibilityState===`visible`,isDocumentFocused:document.hasFocus(),isActiveViewer:e._isActiveViewer?.()===!0,hasFocusInsideTerminal:r instanceof Node&&e.termWrap.contains(r)})}function zx(){return xt()&&!sa()}function Bx(e,t,n,r=``){let i=N(e);if(!i)return;let a=Ib(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(),it(i,a===b.RUNNING)),o===b.DORMANT&&a!==b.DORMANT&&Xm(i,P(e)),Rn({state:a})===`resting`&&aa(P(e)),i.card.dataset.state=a,i.card.toggleAttribute(`data-monitoring`,xe(a,i.awaitingBackgroundTasks)),$b(i),(a===b.WAITING&&o!==b.WAITING||a===b.COMPLETE&&o!==b.COMPLETE)&&!Ml(r)&&zx()&&od(Wt()),Rx(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})})}),zx()&&od(Wt())),(a===b.DONE||a===b.FAILED)&&Nx(i,c,a),a===b.INITIALIZING&&Ix(i,o),sx()}var Vx=`(no path)`;function Hx(e){if(!e)return Vx;let t=String(e).replace(/[/\\]+$/,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return(n===-1?t:t.slice(n+1))||`(no path)`}function Ux(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):Vx,a=i.get(r);a||(a={key:r,label:r===`(no path)`?Vx:Hx(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:Hx(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 Wx(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 Gx({onAdd:e,onForget:t}){let n=k(`div`,`session-group-header`),r=k(`span`,`session-group-label`),i=k(`span`,`session-group-count`),a=k(`span`,`session-group-rule`);a.setAttribute(`aria-hidden`,`true`);let o=k(`button`,`session-group-add`,`+`);o.type=`button`,o.addEventListener(`click`,()=>e(n.dataset.path,n.dataset.label));let s=k(`button`,`session-group-forget`);return s.type=`button`,s.append(mn(xn)),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 Kx(e,t,n){let{header:r,label:i,count:a,addButton:o,forgetButton:s}=e,c=t.key===Vx,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 qx={waitingCount:0,finishedCount:0,failedCount:0},Jx={failed:fe[b.FAILED],waiting:fe[b.WAITING],finished:fe[b.COMPLETE]},Yx={failed:`failed`,waiting:`needs you`,finished:`finished`},Xx=[`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`],Zx=2500,Qx=`cubic-bezier(0.16, 1, 0.3, 1)`,$x=`cubic-bezier(0.5, 0, 0.2, 1)`,eS=260,tS=200,nS=200,rS=300,iS=28,aS=360,oS=420,sS=200,cS=3,lS=window.matchMedia?.(`(prefers-reduced-motion: reduce)`),uS=new WeakMap;function dS(e){let t=uS.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 pS(){return lS?.matches??!1}function mS(e){return e.map(e=>({easing:Qx,...e}))}function hS(e,t){let n=k(`div`,`attention-banner`);n.setAttribute(`role`,`status`),n.style.setProperty(`--attention-head-tile-px`,`${An.headTile}px`),n.style.setProperty(`--attention-tile-px`,`${An.tile}px`),n.style.setProperty(`--attention-tile-gap-px`,`${An.tileGap}px`),n.style.setProperty(`--attention-overflow-px`,`${An.overflowSlot}px`);let r=k(`span`,`attention-banner-chips`),i=k(`span`,`attention-tile-overflow`);i.setAttribute(`aria-hidden`,`true`),i.hidden=!0,r.append(i);let a=k(`span`,`attention-banner-line`);a.setAttribute(`aria-hidden`,`true`);let o=k(`span`,`attention-banner-status`);o.append(r,k(`span`,`attention-banner-count`),a);let s=k(`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),uS.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(()=>_S(n)).observe(r),gS(n,qx,[]),n}function gS(e,t,n){let r=dS(e);r.tiles=n,O(e,`.attention-banner-count`).textContent=kn(t);let i=n.length>0;e.toggleAttribute(`data-empty`,!i),e.toggleAttribute(`data-jumpable`,i),i&&NS(e,r),_S(e)}function _S(e){let t=dS(e),n=O(e,`.attention-banner-chips`),r=O(n,`.attention-tile-overflow`),i=fS(e),a=t.tiles.slice(0,Xn(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():xS(n,l[r])});let u=t.headId,d=[],f=null;a.forEach((i,a)=>{let o=t.tileById.get(i.id),s=o??yS(e,i.id);o||(t.tileById.set(i.id,s),d.push(s)),bS(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)&&TS(e,null),i){for(let e of d)SS(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?wS(r,a):a!==0&&CS(r,a,n)})}}function vS(e){let t=e.previousElementSibling;for(;t?.hasAttribute(`data-leaving`);)t=t.previousElementSibling;return t}function yS(e,t){let n=k(`span`,`attention-tile`);n.setAttribute(`role`,`img`),n.dataset.id=t;let r=k(`span`,`attention-tile-icon`);return r.setAttribute(`aria-hidden`,`true`),n.append(r),n.addEventListener(`pointerenter`,()=>TS(e,t)),n.addEventListener(`pointerleave`,()=>TS(e,null)),n}function bS(e,{kind:t,name:n},r){e.dataset.kind=t,e.toggleAttribute(`data-head`,r);let i=`${n}, ${Yx[t]}`;e.title=i,e.setAttribute(`aria-label`,i),Tn(O(e,`.attention-tile-icon`),Jx[t])}function xS(e,t){e.toggleAttribute(`data-leaving`,!0),e.style.left=`${t.left}px`,e.style.top=`${t.top}px`;let n=pS()?[{opacity:1},{opacity:0}]:mS([{transform:`none`,opacity:1},{transform:`scale(0.6)`,opacity:0}]),r=e.animate(n,{duration:nS,fill:`forwards`});r.onfinish=()=>e.remove(),r.oncancel=()=>e.remove()}function SS(e){let t=pS()?[{opacity:0},{opacity:1}]:mS([{transform:`scale(0.6)`,opacity:0},{transform:`none`,opacity:1}]);e.animate(t,{duration:tS})}function CS(e,t,n){pS()||e.animate(mS([{transform:`translateX(${t}px)`},{transform:`none`}]),{duration:rS,delay:n*iS,fill:`backwards`})}function wS(e,t){pS()?e.animate([{opacity:.35},{opacity:1}],{duration:aS,easing:Qx}):e.animate(mS([{transform:`translateX(${t}px) scale(0.8)`,filter:`brightness(1.8)`},{transform:`scale(1.1)`,offset:.6},{transform:`none`,filter:`none`}]),{duration:aS})}function TS(e,t){let n=dS(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 ES(e){return!e||e.getClientRects().length===0?null:e.getBoundingClientRect()}function DS(e,t,n){let r=dS(e);if(r.flyingIds.has(t))return;let i=r.tileById.get(t);if(!i||!fS(e)){n();return}TS(e,null),r.flyingIds.add(t);let a=r.hooks.rowFor(t),o=i.getBoundingClientRect(),s=ES(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(OS(o,s),kS(s)),u=()=>{c.remove(),r.flyingIds.delete(t),i.isConnected&&(i.style.visibility=``),n()};l.onfinish=u,l.oncancel=u}function OS(e,t){return!t||pS()?[{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 kS(e){return!e||pS()?{duration:sS,fill:`forwards`}:{duration:oS,easing:$x,fill:`forwards`}}function AS(e){let t=dS(e);e.hasAttribute(`data-empty`)&&MS(e,t);for(let e of t.pressAnimations)e.cancel();if(t.pressAnimations=[],!fS(e))return;let n={duration:eS};if(t.pressAnimations.push(e.animate(mS([{opacity:0},{opacity:.07,offset:.3},{opacity:0}]),{...n,pseudoElement:`::after`})),!pS()){t.pressAnimations.push(e.animate(mS([{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(mS([{transform:`none`},{transform:`translateY(${cS}px)`,offset:.3},{transform:`none`}]),n),r.animate(mS([{transform:`none`},{transform:`translateY(-${cS}px)`,offset:.3},{transform:`none`}]),{...n,pseudoElement:`::after`}))}}function jS(e){let t=Xx.filter(t=>t!==e);return t[Math.floor(Math.random()*t.length)]??Xx[0]}function MS(e,t){let n=jS(t.lastAllClearLine);t.lastAllClearLine=n,O(e,`.attention-banner-line`).textContent=n,e.toggleAttribute(`data-all-clear-line`,!0),t.allClearLineTimer!==null&&window.clearTimeout(t.allClearLineTimer),t.allClearLineTimer=window.setTimeout(()=>NS(e,t),Zx)}function NS(e,t){t.allClearLineTimer!==null&&window.clearTimeout(t.allClearLineTimer),t.allClearLineTimer=null,e.toggleAttribute(`data-all-clear-line`,!1)}var PS=e=>e.ui.path,FS=window.matchMedia?.(`(prefers-reduced-motion: reduce)`),IS=null,LS=null,RS=null,zS=null,BS=null,VS=null,HS=null,G=!1,US=!1,WS=new Map,GS=new Map,KS=new Map,qS=new Map,JS=null,YS=``,XS=[],ZS=new Set;function QS(){return Wx(eC(lC()),ZS)}function $S(e){let t=JS;if(JS=e||null,t&&t!==JS){let e=GS.get(t);e&&(e.tabIndex=-1,e.setAttribute(`aria-selected`,`false`))}if(JS){let e=GS.get(JS);e&&(e.tabIndex=0,e.setAttribute(`aria-selected`,`true`))}}function eC(e){return Ux(e,PS,kl(e,PS))}function tC(e){let t=qS.get(e.key),n=KS.get(e.key);return(!t||!n)&&(t=Gx({onAdd:Mi,onForget:e=>{Al(e),hC()}}),n=k(`div`,`focus-rail-list`),n.setAttribute(`role`,`listbox`),qS.set(e.key,t),KS.set(e.key,n)),Kx(t,e,`rail`),n.setAttribute(`aria-label`,`${e.label} sessions`),{header:t.header,list:n}}function nC(){return G}function rC(){return L.snapshot().focusedSessionId}function iC({rail:e,center:t,resizer:n}){if(IS=e,RS=t,!IS||!RS)return;let r=IS,i=RS;sC(n),r.removeAttribute(`role`),r.removeAttribute(`aria-label`),r.setAttribute(`aria-keyshortcuts`,Jt(ha)),LS=hS({onJump:yC,rowFor:e=>GS.get(e)},xa());let a=k(`details`,`rail-status-key`);a.append(k(`summary`,`rail-status-key-summary`,`Status key`),wl()),r.append(LS,a),BS=k(`div`,`focus-empty`),BS.innerHTML=`<p class="focus-empty-title"></p><p class="focus-empty-desc"></p>`,VS=BS.querySelector(`.focus-empty-title`),HS=BS.querySelector(`.focus-empty-desc`),zS=k(`div`,`focus-card-slot`),i.append(BS,zS),r.addEventListener(`keydown`,cC)}var aC={minPx:180,maxPx:480},oC=16;function sC(e){e&&IS&&Jc({resizer:e,column:IS,widthHost:IS,widthProperty:`--rail-width`,bounds:aC,keyStepPx:oC,getStoredWidth:It,setStoredWidth:mt})}function cC(e){if(e.key===`Delete`||e.key===`Backspace`){let t=e.target instanceof HTMLElement?e.target:null,n=t?.dataset.id;if(!n||GS.get(n)!==t)return;e.preventDefault(),Ri(n);return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`||e.altKey||e.metaKey||e.ctrlKey||e.shiftKey)return;let t=Mn(QS(),JS,e.key===`ArrowDown`?1:-1);t!=null&&(e.preventDefault(),$S(t),GS.get(t)?.focus())}function lC(){return jn(wi(uC))}function uC(e){return e.nameEl?e.nameEl.textContent:e.card&&(e.card.dataset.session||e.card.dataset.id)||``}function dC(e){let{row:t,refs:n}=ul(`button`);t.type=`button`,t.dataset.id=e,t.setAttribute(`role`,`option`),t.addEventListener(`click`,()=>fC(e)),t.addEventListener(`pointerenter`,()=>{LS&&TS(LS,e)}),t.addEventListener(`pointerleave`,()=>{LS&&TS(LS,null)});let{item:r,removeButton:i}=dl(t,()=>Ri(e));return r.setAttribute(`role`,`presentation`),i.tabIndex=-1,Object.assign(t,{_refs:n,_row:r})}function fC(e){let t=xi(e);t&&(TC(e),xC(t,e))}function pC(e,{id:t,ui:n,state:r,name:i},a){let o=WS.get(t)||`none`;vl(e,e._refs,{ui:n,state:r,name:i??``,mergeStatus:o===`none`?``:o,attentionPosition:a}),e.classList.toggle(`focused`,t===rC()),e.classList.toggle(`has-unopened-shown`,Ps(t));let s=t===JS;e.setAttribute(`aria-selected`,String(s)),e.tabIndex=s?0:-1}function mC(e,t){if(!G)return;let n=e?.card?.dataset.id,r=n?GS.get(n):null;r&&(t===`flag`?r.dataset.activity=e._activity||``:nt(r._refs?.glyph))}ot(mC),rt(()=>{if(G)for(let[e,t]of GS){let n=F.get(e);n&&(t._refs.elapsed.textContent=tt(n))}});function hC(){if(!G)return;let e=IS;if(!e)return;let t=lC(),n=eC(t),r=new Set,i=Ln(t,rC()),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=GS.get(e);o||(o=dC(e),GS.set(e,o)),pC(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
83
|
`),l=c===YS;YS=c;for(let t of n.groups){let{header:n,list:r}=tC(t);l||e.append(n,r),o(t.rows,r)}for(let[e,t]of[...qS])s.has(e)||(t.header.remove(),KS.get(e)?.remove(),qS.delete(e),KS.delete(e));for(let[e,t]of GS)r.has(e)||(t._row.remove(),GS.delete(e),e===JS&&(JS=null));for(let e of[...WS.keys()])F.has(e)||WS.delete(e);let u=XS;XS=Wx(n,ZS);let d=rC();if(d&&!F.has(d)){L.dispatch(`focusSession`,null),JS=null;let e=gC(u,d);if(e){let t=!document.activeElement||document.activeElement===document.body;TC(e),t&&xC(F.get(e),e);return}}EC();let f=rC();if(f){let e=F.get(f);e&&e.card.parentElement!==zS&&CC(e,f)}vC(t,i)}function gC(e,t){let n=e.filter(e=>e===t||F.has(e));if(n.length<2)return XS.find(e=>F.has(e))??null;let r=n.indexOf(t)===n.length-1;return Mn(n,t,r?-1:1)}function _C(){return Ln(lC(),rC())}function vC(e,t){LS&&gS(LS,Zn(e),t)}function yC(){if(!G)return;LS&&AS(LS);let e=_C()[0]?.id;e&&bC(e)}function bC(e){if(!G)return;GS.get(e)?.scrollIntoView({block:`nearest`}),LS&&DS(LS,e,()=>SC(e));let t=F.get(e);xi(e),TC(e),xC(t,e)}function xC(e,t){e&&requestAnimationFrame(()=>requestAnimationFrame(()=>{G&&rC()===t&&e.term?.focus()}))}function SC(e){if(FS?.matches||document.hidden)return;let t=GS.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 CC(e,t){zS&&(Ir(e,t,zS,{className:`focus-centered`}),eh(e,t,!0))}function wC(){let e=rC();e&&(Fr()===e&&Lr(),L.dispatch(`focusSession`,null))}function TC(e){G&&F.has(e)&&(Lx(e),e!==rC()&&(wC(),L.dispatch(`focusSession`,e),JS=e,Si(e),hC()))}function EC(){if(!BS||!VS||!HS)return;let e=rC(),t=!!(e&&F.has(e)),n=F.size>0;BS.hidden=t,so(BS,!n),VS.hidden=!n,HS.hidden=!n,!t&&n&&(VS.textContent=`No session selected`,HS.textContent=`Select a session from the rail on the left to focus it here.`)}function DC(e,t){WS.set(P(e),typeof t==`string`&&t?t:`none`),G&&hC()}function OC(e){G&&F.has(e)&&TC(e)}function kC(e){return!G||!F.has(e)?!1:(TC(e),dx(e))}function AC(e){if(!G)return;let t=QS()[e-1];t&&fC(t)}function jC(e){if(!G)return;let t=Mn(QS(),JS,e);t!=null&&(fC(t),GS.get(t)?.scrollIntoView({block:`nearest`}))}window.addEventListener(`focus`,()=>{let e=rC();G&&e&&Lx(e)});function MC(){IS&&(G=!0,wC(),JS=null,hC(),US&&_C().length>0?yC():(US&&LS&&AS(LS),PC()))}function NC(e){US=!0;try{e()}finally{US=!1}}function PC(){if(!G||rC())return;let e=Ci();e&&TC(e)}function FC(){G&&=(wC(),JS=null,!1)}var IC=`t-[0-9a-f]{8}`,LC=`No intent yet. The visions proposes one after its first pass.`,RC=`Unowned`,zC=RegExp(`^${IC}$`);function BC(){return{byProject:{},unowned:[]}}function VC(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`&&zC.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 HC(e){if(Array.isArray(e))return e.map(VC).filter(e=>e!==null);let t=VC(e);return t?[t]:[]}function UC(e){let t=e?.intent;if(!t||typeof t!=`object`)return BC();let n=t;if(!(Object.hasOwn(n,`byProject`)||Object.hasOwn(n,`unowned`)||Object.hasOwn(n,`global`)))return{byProject:{},unowned:HC(n)};let r=n.byProject&&typeof n.byProject==`object`?n.byProject:{},i=[];for(let[e,t]of Object.entries(r)){let n=HC(t);n.length!==0&&e&&i.push([e,n])}return{byProject:Object.fromEntries(i),unowned:HC(Object.hasOwn(n,`unowned`)?n.unowned:n.global)}}function WC(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 GC(e,t){let n=e||BC(),r=t?.intent;if(!r||typeof r!=`object`)return n;let i=r,a=WC(Array.isArray(i.threads)?HC(i.threads):HC(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 KC(e,t=null){let n=t&&typeof t.get==`function`?t.get(e):null;return typeof n==`string`&&n?n:e}function qC(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:ZC(e,r)}))}function JC(e,t=null,n=Date.now()){let r=e||BC(),i=Object.entries(r.byProject||{}).filter(([e,t])=>e&&Array.isArray(t)&&t.length>0).map(([e,n])=>({projectId:e,label:KC(e,t),threads:n})).sort((e,t)=>e.label.localeCompare(t.label)).flatMap(({projectId:e,label:t,threads:r})=>qC(r,{key:e,label:t,now:n})),a=qC(Array.isArray(r.unowned)?r.unowned:[],{key:`unowned`,label:RC,now:n});return i.length+a.length>0?[...a,...i]:[{key:`unowned`,label:RC,text:LC,hasText:!1,active:!1,meta:``}]}function YC(e){return e?.text?`proposed by visions`:``}function XC(e,t=Date.now()){let n=Number(e);return!Number.isFinite(n)||n<=0?``:Ne(Number(t)-n,{rounding:`floor`,wording:`spelled`,suffix:` ago`,justNowBelowSeconds:60})}function ZC(e,t=Date.now()){let n=YC(e);if(!n)return``;let r=typeof e?.id==`string`&&e.id?`thread ${e.id}, `:``,i=XC(e?.ts,t);return i?`${r}${n}, ${i}`:`${r}${n}`}function QC(e){let t=Number(e?.range?.start?.line);return!Number.isFinite(t)||t<0?`L?`:`L${Math.floor(t)+1}`}function $C(e){return(typeof e?.hand==`string`?e.hand.trim():``)||null}function ew(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=$C(t);return i?(n.set(r,i),n):(n.delete(r),n)}function tw(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 nw=`hand`,rw=`unseen`,iw=`
|
|
84
|
-
`;function aw(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 ow(e,t){return aw(JSON.stringify([e,...t]))}function sw(e,t){return ow(`finding`,[e,QC(t),String(t.code??``),String(t.message??``)])}function cw(e,t){return ow(`comment`,[e,pw(t),String(t.message??``)])}function lw(e){return ow(`fix`,[e.uri,xw(e),e.code,e.message,Sw(e)])}function uw(e){return ow(`intent`,[e.key,e.text,e.active])}function dw(e,t,n,r=[],i=null){let a=[...n].map(([e,t])=>ow(`hand`,[e,t])).sort(),o=new Set;for(let r of[...e.keys(),...t.keys(),...n.keys()])o.add(ow(`document`,[r]));for(let[t,n]of e)for(let e of n)o.add(sw(t,e));for(let[e,n]of t)for(let t of n)o.add(cw(e,t));for(let e of r)o.add(lw(e));for(let e of JC(i,null,0))e.hasText&&o.add(uw(e));let s=[...o].sort();return{signature:[...a,...s].join(iw),handEntries:a,contentEntries:s}}function fw(e,t){let n=new Set(t.split(iw));return e.handEntries.some(e=>!n.has(e))?nw:e.contentEntries.some(e=>!n.has(e))?rw:null}function pw(e){let t=Number(e?.line);return!Number.isFinite(t)||t<1?`L?`:`L${Math.floor(t)}`}function mw(e){return Array.isArray(e?.diagnostics)?e.diagnostics:[]}function hw(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=mw(t);return i.length===0?(n.delete(r),n):(n.set(r,i),n)}function gw(e){return Array.isArray(e?.comments)?e.comments:[]}function _w(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=gw(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 yw(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 bw=20;function xw(e){let t=Number(e?.line);return!Number.isFinite(t)||t<0?`L?`:`L${Math.floor(t)+1}`}function Sw(e){return e?.applied===!0?`applied`:`refused`}function Cw(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 ww(e){let t=typeof e?.uri==`string`?e.uri:``,n=Number(e?.ts);return Cw(e?.fix,{uri:t,ts:Number.isFinite(n)?n:0})}function Tw(e,t,{max:n=bw}={}){let r=ww(t);return r?[r,...e].slice(0,Math.max(0,Math.floor(n))):[...e]}function Ew(e,{max:t=bw}={}){let n=Array.isArray(e?.fixes)?e.fixes:[],r=[];for(let e of n){let t=Cw(e);t&&r.push(t)}return r.slice(0,Math.max(0,Math.floor(t)))}var Dw=100;function Ow(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 kw(e){let t=Array.isArray(e?.events)?e.events:[],n=[];for(let e of t){let t=Ow(e);t&&n.push(t)}return n}function Aw(e){let t=Number(e?.overflow);return!Number.isFinite(t)||t<=0?0:Math.floor(t)}function jw(e,t){return[...e].sort((e,t)=>t.seq-e.seq).slice(0,Math.max(0,Math.floor(t)))}function Mw(e,t,{max:n=Dw}={}){let r=kw(t);if(r.length===0)return jw(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 jw([...i.values()],n)}function Nw(e,{max:t=Dw}={}){return jw(kw(e),t)}var Pw=new Map,Fw=new Map,Iw=new Map,Lw=BC(),Rw=new Map,zw=null,Bw=!0,Vw=[],Hw=0,Uw=[],Ww=null,Gw=()=>!1,Kw=new Set,qw=dw(Pw,Fw,Iw,Uw,Lw),Jw=rn(),Yw=ve({getAck:()=>Jw,setAck:e=>{Jw=e,Ht(e)},signature:()=>qw.signature,isLooking:()=>Gw()});function Xw(e){for(let t of Kw)t(e)}function Zw(){qw=dw(Pw,Fw,Iw,Uw,Lw),qw.signature!==``&&Yw.refresh(),Ww?.(fw(qw,Jw))}function Qw(e){Xw(e),Zw()}function $w(){return{findingsByUri:Pw,commentsByUri:Fw,handsByUri:Iw,intent:Lw,projectNamesById:Rw,isEnabled:zw,isConnected:Bw,activityEvents:Vw,activityOverflow:Hw,fixEntries:Uw}}function eT(e){Kw.add(e)}function tT(e){Gw=e,Zw()}function nT(e){Ww=e,Zw()}function rT(){qw.signature!==``&&Yw.acknowledge(),Zw()}function iT(e){Rw=e instanceof Map?e:new Map,Xw([`intent`])}function aT(e){zw=e?.visions?.enabled===!0,Xw([`feed`])}function oT(e){Bw=e,Xw([`connection`])}function sT(e){Uw=Tw(Uw,e),Qw([`fixes`])}function cT(e){Pw=hw(Pw,e),Qw([`feed`])}function lT(e){Fw=_w(Fw,e),Qw([`feed`])}function uT(e){Iw=ew(Iw,e),Qw([`feed`])}function dT(e){Lw=GC(Lw,e),Qw([`intent`])}function fT(e){Vw=Mw(Vw,e),Hw=Aw(e),Qw([`activity`])}function pT(e){Vw=Nw(e),Hw=0,Qw([`activity`])}function mT(e){Pw=vw(e),Fw=yw(e),Iw=tw(e),Lw=UC(e),Uw=Ew(e),Qw([`intent`,`feed`,`fixes`])}var hT=null,gT=null,_T=!1,vT=null,yT=new Set;function bT(e,t){if(!e||typeof e!=`object`)return!1;let n=e.requestId;return typeof n!=`string`||!t||n===t}function xT(){for(let e of yT)e()}function ST(){return{report:hT,hasReportSendFailed:_T}}function CT(e){yT.add(e)}function wT(e){gT=e}function TT(){if(!gT)return;vT=Ye(`hooks-report`);let e=gT({type:`request-hooks-report`,requestId:vT});e!==!_T&&(_T=!e,xT())}function ET(e){bT(e,vT)&&(hT=e,_T=!1,xT())}function DT(){TT()}function OT(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 kT=e=>e.ui.path;function AT({onSelectSession:e}){let t=k(`div`,`phone-board`),n=k(`header`,`phone-topbar`),r=hS({onJump:()=>{AS(r);let e=Ln(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`}),DS(r,e,()=>{i===e&&o(e)})}function o(t){i=null,e?.(t)}let s=k(`div`,`phone-board-list`),c=k(`div`,`phone-empty`),l=k(`p`,`phone-empty-title`,`No sessions`),u=k(`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;ge(n);function _(e){let{row:t,refs:n}=ul(`button`);t.type=`button`,t.dataset.id=e,t.addEventListener(`click`,()=>o(e));let{item:r}=dl(t,()=>Ri(e));return r.setAttribute(`role`,`listitem`),p.set(t,{refs:n,item:r}),t}function v(){let e=k(`section`,`phone-board-group`),t=Gx({onAdd:Mi,onForget:e=>{Al(e),S()}}),n=k(`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;vl(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&&(Kx(n,t,`Board`),n.rows.setAttribute(`aria-label`,`${t.label} sessions`))}function x(){return jn(wi())}function S(){let e=x(),t=Ux(e,kT,kl(e,kT)),n=Zn(e);g=Pn(n);let i=Ln(e,null),a=new Map(i.map(({id:e},t)=>[e,t+1]));gS(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 ee=new Set(Wx(t));for(let[e,t]of[...d]){if(ee.has(e))continue;let n=p.get(t);n&&n.item.remove(),d.delete(e)}let w=t.groups.length>0,T=F.size===0;s.hidden=!w,c.hidden=w,so(c,T),l.hidden=T,u.hidden=T,r.hidden=T}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||``:nt(p.get(r)?.refs.glyph))}return rt(()=>{for(let[e,t]of d){let n=F.get(e),r=p.get(t);n&&r&&(r.refs.elapsed.textContent=tt(n))}}),{el:t,topBarEl:n,refresh:S,renderActivity:C,getAttentionCount:()=>g}}var jT=`clipboard`,MT=`upload`,NT=24,PT=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:jT,title:`Paste from the clipboard`}),Object.freeze({id:`attach`,label:`Attach`,bytes:null,action:MT,title:`Upload a photo or file to this session`})]);function FT(e){let t=PT.find(t=>t.id===e);return t?t.bytes:null}function IT(e){return!!e&&e.action===jT}function LT(e){return!!e&&e.action===MT}function RT(e,t,n=NT){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 zT(e,t,n=NT){let r=RT(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 BT={" ":`\0`,"@":`\0`,"[":`\x1B`,"\\":``,"]":``,"^":``,_:``,"?":``};function VT(e){if(e.length!==1)return null;let t=e.toLowerCase();return t>=`a`&&t<=`z`?String.fromCharCode(t.charCodeAt(0)-96):BT[e]??null}function HT({send:e,getSessionId:t,reportProblem:n}){let r=k(`div`,`phone-key-strip`);r.setAttribute(`role`,`toolbar`),r.setAttribute(`aria-label`,`Terminal keys`);let i=null,a=null,o=k(`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 PT){t.id===`left`&&r.appendChild(UT(e));let n=k(`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){LT(t)?d(r):IT(t)?GT(e,n):e(FT(t.id))}function d(e){a=e,i||(i=k(`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 qf(e,t),n&&(n.disabled=!1)}return{element:r,takeHeldControl:l}}function UT(e){let t=k(`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=zT(t.clientX-n.x,t.clientY-n.y);if(i){for(let t=0;t<i.stepCount;t++)e(FT(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 WT=`Paste needs clipboard permission.`;function GT(e,t){let n=null;try{n=navigator.clipboard?.readText?.()}catch{t(WT);return}n?n.then(t=>{t&&e(t)}).catch(()=>t(WT)):t(`Paste is unavailable in this browser.`)}function KT({onBack:e,onShowChanges:t}){let n=k(`div`,`phone-terminal`),r=k(`header`,`phone-topbar phone-terminal-bar`),i=k(`button`,`phone-back`,`‹`);i.type=`button`,i.setAttribute(`aria-label`,`Back to board`),i.addEventListener(`click`,()=>e?.());let a=k(`div`,`phone-terminal-identity`),o=k(`span`,`phone-terminal-name`);o.title=`Double-tap to rename`,o.addEventListener(`dblclick`,()=>te());let s=k(`span`,`session-task-title phone-terminal-title`);ir(s,()=>E());let c=k(`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=D(c,`.phone-terminal-glyph`,`span`),d=D(c,`.phone-terminal-label`,`span`),f=D(c,`.phone-terminal-elapsed`,`span`);d.before(o),a.append(s,c);let p=k(`button`,`phone-changes`);p.append(mn(gn)),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=k(`div`,`phone-terminal-actions`);r.append(i,a,p,m);let h=k(`div`,`phone-card-slot`),g=k(`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 _=vn(`phone-key-status m-0 px-3 py-1`),{element:v,takeHeldControl:y}=HT({send:ee,getSessionId:()=>x,reportProblem:e=>_.show(`error`,e)});n.append(r,h,g,_.element,v);let x=null,S=null,C=null;function ee(e){let t=x?F.get(x):null;t&&(Wm(t,e)?_.clear():_.show(`error`,l))}function w(){let e=x?F.get(x):null;e?.term&&e.term.focus()}h.addEventListener(`click`,w);function T(e){let t=VT(e);return!t||!y()?!1:(ee(t),!0)}h.addEventListener(`keydown`,e=>{e.ctrlKey||e.metaKey||e.altKey||T(e.key)&&(e.preventDefault(),e.stopPropagation())},!0),h.addEventListener(`input`,e=>{e instanceof InputEvent&&e.data&&T(e.data.slice(-1))&&(e.stopPropagation(),(x?F.get(x):null)?._resetSoftKeyboardBuffer?.())},!0);function te(){let e=x?F.get(x):null;e&&x&&lr(e,x,{returnsFocusToTerminal:!1})}function E(){let e=x?F.get(x):null;e&&x&&zn(e,x)}function ne(){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;fl(r,{glyph:u,label:d},n,e.awaitingBackgroundTasks,e.pendingPromptKind);let i=e.card?.dataset.session||x;tr(o)||(o.textContent=i),s.dataset.sessionName=i??``,Kn(s,e.taskTitle),f.textContent=tt(e)}function re(){C&&=(delete C.renameTargetEl,delete C.titleTargetEl,null),o.replaceChildren(),S&&=(_e(S),S.parentElement===m&&S.remove(),null)}function ie(e){let t=F.get(e);t&&(x===e&&Fr()===e&&t.card.parentElement===h||(re(),x=e,Ir(t,e,h,{className:`phone-centered`}),S=D(t.card,`.session-actions`,`div`),Ee(S,m),t.renameTargetEl=o,t.titleTargetEl=s,C=t),ne())}function ae(){re(),Fr()===x&&Lr(),x=null,ne()}function oe(){if(!x){ne();return}let e=F.get(x);e?e.card.parentElement===h?ne():(ie(x),n.hidden||eh(e,x,!0)):ae()}function se(){let e=x;e&&eh(F.get(e),e,!1)}function ce(){oe();let e=x;if(!e)return;let t=F.get(e);t&&(eh(t,e,!0),Lx(e))}return rt(()=>{let e=x?F.get(x):null;e&&(f.textContent=tt(e))}),ne(),{el:n,show:ie,clear:ae,refresh:oe,reveal:ce,unview:se,getSessionId:()=>x}}var qT=`board`,JT=`terminal`,YT=`changes`,XT=Object.freeze({[YT]:JT}),ZT=Object.freeze([{id:qT,label:`Focus`,glyph:`▤`},{id:JT,label:`Terminal`,glyph:`▸`}]),QT=[],$T=new Map,K=null,eE=new Map,tE=new Map,nE=new Map,rE=null,q=null,iE=null,aE=null,oE=null,sE=null,cE=new Map,lE=new Set,uE={},dE=!1,fE=120,pE=0,mE=0,J=0,hE=null;function gE(){pE=0,mE=0}function _E(){let e=window.visualViewport;K&&(!dE||!e?K.removeAttribute(`data-keyboard`):(K.style.setProperty(`--phone-vh`,`${e.height}px`),K.style.setProperty(`--phone-vv-top`,`${e.offsetTop}px`),e.width!==mE&&(mE=e.width,pE=0),pE=Math.max(pE,e.height),pE-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=k(`button`,n);i.type=`button`;let a=k(`span`,`phone-nav-glyph`,t);a.setAttribute(`aria-hidden`,`true`),i.append(a,k(`span`,`phone-nav-label`,e));let o=k(`span`,r);return o.setAttribute(`aria-hidden`,`true`),o.hidden=!0,i.appendChild(o),i}function yE(e){return e?.querySelector(`.phone-nav-dot`)||null}function bE(e,t){e&&(e.hidden=!t,typeof t==`string`&&(e.dataset.attention=t),typeof t!=`string`&&delete e.dataset.attention)}function xE(){let e=[];for(let t of QT){if(lE.has(t.id))continue;let n=nE.get(t.id)||!1;e.push(n),bE(yE(cE.get(t.id)),n)}bE(yE(oE),Nn(e))}function SE(){let e=k(`div`,`phone-nav-more-menu`);e.hidden=!0;for(let t of QT){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=lE.has(t.id),n.addEventListener(`click`,()=>{CE(!1),UE(t.id)}),cE.set(t.id,n),e.appendChild(n)}return e}function CE(e){sE&&oE&&(sE.hidden=!e,oE.setAttribute(`aria-expanded`,String(e)))}function wE(){return!!sE&&!sE.hidden}function TE(){let e=k(`nav`,`phone-nav`);e.setAttribute(`aria-label`,`Screens`);for(let t of ZT){let n=vE(t.label,t.glyph);n.dataset.screen=t.id,n.addEventListener(`click`,()=>UE(t.id)),eE.set(t.id,n),e.appendChild(n)}return oE=vE(`More`,`⋯`),oE.setAttribute(`aria-expanded`,`false`),oE.addEventListener(`click`,()=>CE(!wE())),e.appendChild(oE),sE=SE(),e.appendChild(sE),e}function EE(e,t,n){let r=k(`section`,`phone-screen`);return r.dataset.screen=e,r.setAttribute(`aria-label`,t),r.hidden=!0,n&&r.appendChild(n),tE.set(e,r),r}function DE(){if(K)return;rE=AT({onSelectSession:kE}),ot((e,t)=>{dE&&rE?.renderActivity(e,t)}),q=KT({onBack:()=>UE(qT),onShowChanges:()=>UE(YT)}),iE=k(`div`,`phone-review`);let e=k(`div`,`phone-screens`),t={[qT]:rE.el,[JT]:q.el};for(let n of ZT)e.appendChild(EE(n.id,n.label,t[n.id]));e.appendChild(EE(YT,`Changes`,OE(iE)));for(let t of QT){let n=k(`div`,`phone-panel phone-${t.id}`);$T.set(t.id,n),e.appendChild(EE(t.id,t.label,n))}K=k(`div`,`phone-shell`),K.id=`phone-shell`,K.append(e,TE()),document.body.appendChild(K),xE(),window.visualViewport?.addEventListener(`resize`,_E),window.visualViewport?.addEventListener(`scroll`,_E),window.addEventListener(`popstate`,RE),document.addEventListener(`click`,e=>{wE()&&sE&&oE&&e.target instanceof Node&&(sE.contains(e.target)||oE.contains(e.target)||CE(!1))}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&wE()&&CE(!1)})}function OE(e){let t=k(`div`,`phone-changes-screen`),n=k(`header`,`phone-topbar phone-changes-bar`),r=k(`button`,`phone-back`,`‹`);return r.type=`button`,r.setAttribute(`aria-label`,`Back to terminal`),r.addEventListener(`click`,()=>UE(JT)),aE=k(`span`,`phone-changes-session`),n.append(r,k(`span`,`phone-changes-title`,`Changes`),aE),t.append(n,e),t}function kE(e){if(F.has(e)){if(!rE||!q)throw Error(`Phone shell is not built`);xi(e,`dormant-fallback`),Si(e),q.show(e),UE(JT)}}function AE(e){return XT[e]??e}function jE(e,t){return t?{glimmervoidScreen:e,glimmervoidNested:!0}:{glimmervoidScreen:AE(e)}}function ME(e){let t=e?.glimmervoidScreen;return typeof t==`string`?t:null}function NE(e){return ME(e)?e.glimmervoidNested===!0?2:1:0}function PE(e){return e===qT?0:XT[e]||uE.canGoBack?.(e)?2:1}function FE(e,t){let n=t?e:AE(e);return ME(history.state)===n&&NE(history.state)===(t?2:1)}function IE(){if(!dE||hE!==null)return;let e=L.snapshot().phoneScreen||qT,t=PE(e);if(J>t){hE=location.href,history.go(t-J),J=t;return}let n=J===2;J>0&&!FE(e,n)&&history.replaceState(jE(e,n),``),J===0&&t>0&&(history.pushState(jE(e,!1),``),J=1),J===1&&t===2&&(history.pushState(jE(e,!0),``),J=2)}function LE(){let e=ME(history.state);return e&&VE(e)?(J=NE(history.state),e):(e&&history.replaceState(null,``),J=0,qT)}function RE(e){if(!dE)return;if(hE!==null){history.replaceState(history.state,``,hE),hE=null,IE();return}let t=ME(e.state),n=t&&VE(t)?t:qT;J=NE(e.state);let r=L.snapshot().phoneScreen;J<2&&n===r&&uE.canGoBack?.(r)&&uE.onBack?.(r),BE(n),IE()}function zE(e,t){for(let[n,r]of e)n===t?r.setAttribute(`aria-current`,`page`):r.removeAttribute(`aria-current`)}function BE(e){if(!oE||!q)throw Error(`Phone shell is not built`);L.dispatch(`setPhoneScreen`,e),CE(!1),HE();for(let[t,n]of tE)n.hidden=t!==e;uE.onScreenShown?.(e),zE(eE,AE(e));let t=cE.has(e);t&&oE.setAttribute(`aria-current`,`page`),t||oE.removeAttribute(`aria-current`),zE(cE,e),e===JT?q.reveal():q.unview()}function VE(e){return tE.has(e)&&!lE.has(e)}function HE(){if(!aE||!q)return;let e=q.getSessionId(),t=e?F.get(e):null,n=t?st(t):``;aE.textContent=n,aE.title=n}function UE(e){K&&VE(e)&&(BE(e),IE())}function WE(e){QT.sort((t,n)=>e.indexOf(t.id)-e.indexOf(n.id)),sE?.append(...QT.flatMap(e=>cE.get(e.id)??[]))}function GE(e){uE=e||{},QT=uE.panels||[]}function KE({sessionId:e,linkedScreenId:t}={}){if(dE)return;if(DE(),!K||!rE||!q)throw Error(`Phone shell is not built`);dE=!0,K.hidden=!1;for(let e of uE.headerControls||[])Ee(e,rE.topBarEl);O_(iE);for(let e of QT)Ee(e.el,$T.get(e.id)),e.el.hidden=!1;_E(),e&&q.show(e);let n=LE();ZE(),t&&VE(t)?UE(t):e&&n===qT?UE(JT):(BE(n),IE())}function qE(){if(dE){if(!K||!q)throw Error(`Phone shell is not built`);dE=!1,q.clear(),O_(null);for(let e of QT)_e(e.el);for(let e of uE.headerControls||[])_e(e);CE(!1),K.hidden=!0,K.removeAttribute(`data-keyboard`),gE(),J>0&&history.go(-J),J=0,hE=null}}function JE(e){return!dE||!rE||!q||!F.has(e)?!1:(kE(e),dx(e))}function YE(){return dE}function XE(){return dE&&q?q.getSessionId():null}function ZE(){if(!dE)return;if(!rE||!q)throw Error(`Phone shell is not built`);nD(),rE.refresh(),q.refresh(),HE(),AE(L.snapshot().phoneScreen||qT)===JT&&!q.getSessionId()&&UE(qT);let e=yE(eE.get(qT));e&&(e.hidden=rE.getAttentionCount()===0)}function QE(e){return dE?(kE(e),!0):!1}function $E(e){return!dE||!VE(e)?!1:(UE(e),!0)}function eD(e,t){t&&lE.delete(e),t||lE.add(e);let n=cE.get(e);n&&(n.hidden=!t);let r=tE.get(e);r&&!t&&(r.hidden=!0),xE(),!t&&dE&&L.snapshot().phoneScreen===e&&UE(qT)}function tD(e,t){nE.set(e,typeof t==`string`&&t?t:t===!0),xE()}function nD(){if(!q)throw Error(`Phone shell is not built`);if(q.getSessionId())return;let e=Ci();e&&(q.show(e),Si(e,{rememberFocus:!1}))}var rD={MERGE:`a merge commit`,SQUASH:`squash and merge`,REBASE:`rebase and merge`},iD=new Set([`FAILURE`,`ERROR`]);function aD(e){return rD[e]}function oD(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&&iD.has(e.checks.state)?`Checks are failing`:e.stage===`ready`?null:`Not ready to merge yet`:`Closed`}function sD(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 cD(e){let t=ke.parse({...e,key:`${e.repo}#${e.number}`,stage:`unknown`});return{...t,stage:sD(t)}}var lD=[`Needs you`,`Waiting`,`Ready to merge`,`Drafts`,`Merged today`],uD=[`Ready to merge`,`Needs you`,`Waiting`,`Drafts`,`Merged today`],dD={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`},pD={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`},mD={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 hD(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 gD(e){return lD[e.rows.reduce((e,{pr:t})=>Math.min(e,lD.indexOf(dD[t.stage])),lD.length-1)]}function _D(e){let t=new Map(lD.map(e=>[e,{title:e,prs:[],rows:[]}]));for(let n of hD(e)){let e=t.get(gD(n));if(e)for(let t of n.rows)e.rows.push(t),e.prs.push(t.pr)}return uD.flatMap(e=>t.get(e)??[])}function vD(e){return fD[e]}function yD(e){return pD[e]}function bD(e){return mD[e]}function xD(e,t){return e.flatMap(e=>{let n=t(e.key);if(!n)return[];let r=e.key.slice(0,e.key.lastIndexOf(`#`));return[{...cD({...n,repo:r}),...e}]})}function SD(e){let t=new Map;for(let n of e)for(let e of n.links){let r=De(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 CD(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 wD=3;function TD(e){if(e.length===1)return{message:`Merged ${e[0].key}`,detailLines:[e[0].title]};let t=e.slice(0,wD).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 ED(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:cD(n).stage}:e};return{...e,drafts:e.drafts.map(n),inFlight:e.inFlight.map(n),queued:e.queued.map(n)}}function DD(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 OD(e){let t=e.viewerThreads;return t!==void 0&&t.total>0&&t.resolved===t.total}function kD(e){return e.status===`posted`&&AD(e)}function AD(e){if(!OD(e)||ee(e))return!1;let t=ND(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 jD(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[DD(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(PD(r).length>0||kD(r)){n.actionable.push(r);continue}let e=(r.status===`ready`||r.status===`stale`||r.status===`error`)&&!FD(r);e&&t.noReviewNeeded.push(r),r.status===`ready`&&!e&&n[DD(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 MD(e,t){return e.commit===t?e.isViewer||T.has(e.state):!1}function ND(e){return e.liveHead??e.reviewedHead}function PD(e){return(e.threads??[]).filter(e=>!e.isNit&&!e.isResolved)}function FD(e){return PD(e).length>0?!0:ee(e)?!1:AD(e)?!0:!(e.githubReviews??[]).some(t=>MD(t,ND(e)))}function ID(e,t){return`${e}#${t}`}var LD=null,RD=null,zD=new Set;function BD(e){for(let t of zD)t(e)}function VD(){RD=ED(LD,Sr),BD({kind:`status`})}function HD(e){zD.add(e)}function UD(){return RD}function WD(){return jD(RD)}function GD(e){let t=s.safeParse(e);t.success?(LD=t.data,VD()):ze(`reviews`,`dropped team-review-status: ${Fe(t.error.issues)}`)}function KD(e){BD({kind:`action-result`,message:e})}function qD(e){BD({kind:`open-session-result`,message:e})}function JD(e){BD({kind:`connection`,isConnected:e})}Cr(VD);var YD=1.2,XD=1.55,ZD=.12,QD=523.25,$D=2,eO=8,Y=(e,t,n)=>({semitone:e,startBeat:t,beats:n}),tO={melody:[Y(7,4,.5),Y(11,4.5,.5),Y(12,5,3)],bass:[Y(-5,4,1),Y(-12,5,3)]},nO=[{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,...tO.melody],bass:[...e.bass,...tO.bass]}));function rO(e,t){return QD*2**((e+t)/12)}function iO(e,t){let n=(e,n,r)=>e.map(e=>({frequency:rO(e.semitone,t),startSeconds:XD+e.startBeat*ZD,durationSeconds:e.beats*ZD,waveform:n,gain:r}));return[...n(e.melody,`square`,.2),...n(e.melody,`triangle`,.5),...n(e.bass,`triangle`,.6)]}var aO=[{frequency:220,endFrequency:880,startSeconds:0,durationSeconds:.32,waveform:`triangle`,gain:.25},{frequency:160,endFrequency:45,startSeconds:YD,durationSeconds:.28,waveform:`sine`,gain:1},{frequency:1400,endFrequency:380,startSeconds:YD,durationSeconds:.06,waveform:`square`,gain:.12}];function oO(e){let t=nO[e%nO.length],n=Math.min(e*$D,eO);return{peakGain:.1,tones:[...aO,...iO(t,n)]}}function sO(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 cO(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 lO=.6,uO=.25,dO=1.6;function fO(e){return Math.min(lO+e*uO,dO)}var pO=[`var(--accent)`,`var(--state-running)`,`var(--state-idle)`,`var(--state-waiting)`,`var(--state-failed)`];function mO(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`,pO[e%pO.length]]]}var hO=`<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>`,gO=`<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 _O(){let e=A(`div`,`merge-bullseye-target`,hO);return e.append(k(`span`,`merge-bullseye-ripple`)),e}function vO(){let e=k(`div`,`merge-bullseye-dart-drift`),t=k(`div`,`merge-bullseye-dart-arc`),n=k(`div`,`merge-bullseye-dart-aim`);return n.append(A(`div`,`merge-bullseye-dart`,gO)),t.append(n),e.append(t),e}function yO(){let e=k(`div`,`merge-bullseye-range`),t=k(`div`,`merge-bullseye-track`);return t.append(vO()),e.append(_O(),t),e}var bO={title:`BULLSEYE!`,buildScene:yO},xO=6,SO=30,CO=-14,wO=16;function TO(e=Math.random){return[[`--crosshair-start-left`,`${X(xO,SO,e)}%`],[`--crosshair-start-offset-y`,`${X(CO,wO,e)}px`]]}var EO=`<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>`,DO=`<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>`,OO=`<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M3 3L8 8M21 3L16 8M3 21L8 16M21 21L16 16"/></svg>`;function kO(){let e=k(`div`,`merge-headshot-sweep`);ue(e,TO());let t=k(`div`,`merge-headshot-aim`);t.append(A(`div`,`merge-headshot-crosshair`,DO));let n=k(`div`,`merge-headshot-bob`);return n.append(t,A(`div`,`merge-headshot-hitmarker`,OO)),e.append(n),e}function AO(){let e=k(`div`,`merge-headshot-range`),t=k(`div`,`merge-headshot-track`);return t.append(kO()),e.append(A(`div`,`merge-headshot-target`,EO),t),e}var jO={title:`HEADSHOT!`,buildScene:AO},MO=[`10`,`J`,`Q`,`K`,`A`],NO=160,PO=19,FO=5,IO=9,LO=780,RO=70,zO=70,BO=35;function VO(e){let t=MO.length-1,n=e-t/2;return{offsetPx:n*PO,titleSpreadFraction:n/t,tiltDegrees:n*FO,bottomPx:IO-n**2,dealLeadMs:LO-e*RO,flipLeadMs:NO+(t-e)*zO,waveDelayMs:e*BO}}function HO(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 UO(){return[[`--card-flip-ms`,`${NO}ms`]]}var WO=`<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 GO(e,t){let n=k(`div`,`merge-flush-deal`);ue(n,HO(VO(t)));let r=k(`div`,`merge-flush-hop`),i=k(`div`,`merge-flush-card`),a=k(`div`,`merge-flush-face`);return a.append(k(`span`,`merge-flush-rank`,e)),a.insertAdjacentHTML(`beforeend`,WO),i.append(k(`div`,`merge-flush-back`),a),r.append(i),n.append(r),n}function KO(){let e=k(`div`,`merge-flush-table`);return ue(e,UO()),e.append(...MO.map(GO)),e}var qO={title:`ROYAL FLUSH!`,buildScene:KO},JO=[1,2,3,4],YO=14,XO=3,ZO=3,QO=10,$O=20,ek=2,tk=28,nk=18,rk=.01,ik=1.5,ak=2200,ok=1,sk=120,ck=.35,lk=15,uk=105,dk=4,fk=65,pk=145;function mk(e){return Math.round(e/(Math.PI*nk)*360)}function hk(e){return $O-e*ek}function gk(e){return e.rowIndex*YO+e.depthIndex*XO}function _k(e,t,n){return Array.from({length:n},(r,i)=>e+(t-e)*i/(n-1))}function vk(){return JO.flatMap((e,t)=>Array.from({length:e},(n,r)=>({rowIndex:t,depthIndex:e-1-r})))}function yk(e,t){let n=cO(_k(lk,uk,e),t),r=cO(_k(fk,pk,e),t);return n.map((e,n)=>({angleDegrees:e+X(-4,dk,t),depthScalePercent:Math.round(r[n])}))}function bk(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=sO(o),l=sO(o+s),u=c+l,d=X(540,1080,n),f=a>=0?1:-1,p=gk(e);return{depthIndex:e.depthIndex,launchAngleDegrees:t.angleDegrees,distanceFromHeadPinPx:p,layer:hk(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/ck)}}function xk(e=Math.random){let t=vk(),n=yk(t.length,e);return t.map((t,r)=>bk(t,n[r],e))}function Sk(e){return[[`--pin-left`,`${e.distanceFromHeadPinPx}px`],[`--pin-raise`,`${e.depthIndex*ZO}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 Ck(){return hk(ik)}function wk(){return Math.max(...vk().map(gk))+QO}function Tk(){let e=wk(),t=tk+e+nk-ok;return[[`--ball-follow-px`,`${sk}px`],[`--ball-follow-ms`,`${Math.round(sk/ck)}ms`],[`--ball-follow-spin`,`${mk(sk)}deg`],[`--ball-size`,`${nk}px`],[`--ball-approach-spin`,`${ak}deg`],[`--ball-impact-inset`,`${t}px`],[`--ball-layer`,String(Ck())],[`--rack-right`,`${tk}px`],[`--rack-width`,`${e}px`],[`--pin-width`,`${QO}px`]]}function Ek(e=Math.random){return e()>=rk?null:_t[Math.floor(e()*_t.length)].sprite}var Dk=`<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 Ok(e){let t=k(`span`,`merge-strike-pin`);return t.append(A(`span`,`merge-strike-pin-arc`,Dk)),ue(t,Sk(e)),t}function kk(){let e=Ek();if(!e)return k(`span`,`merge-strike-ball`);let t=k(`span`,`merge-strike-ball is-animal`);return t.append(k(`span`,`nyan-sprite ${e}`)),t}function Ak(){let e=k(`div`,`merge-strike-lane`);ue(e,Tk());let t=k(`div`,`merge-strike-rack`);t.append(...xk().map(Ok));let n=k(`div`,`merge-strike-track`);return n.append(kk()),e.append(t,n),e}var jk={title:`STRIKE!`,buildScene:Ak},Mk=20,Nk=92,Pk=23,Fk=7,Ik=-40;function Lk(){let e=sO(72),t=sO(69),n=780*t/1e3;return{launchHeightPx:Mk,peakHeightPx:Nk,heightThroughRimPx:Pk,heightLeavingNetPx:Fk,heightOutOfCardPx:Ik,riseMs:e,fallToRimMs:t,speedThroughRimPxPerSecond:n,netCatchMs:Math.round(32/n*1e3),dropMs:sO(47)}}function Rk(e=Lk()){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 zk=`<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>`,Bk=`<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 Vk(){let e=k(`div`,`merge-swish-ball-drift`),t=k(`div`,`merge-swish-ball-arc`);return t.append(k(`span`,`merge-swish-ball`)),e.append(t),e}function Hk(){let e=k(`div`,`merge-swish-court`);ue(e,Rk());let t=k(`div`,`merge-swish-track`);return t.append(Vk()),e.append(A(`div`,`merge-swish-hoop-back`,zk),t,A(`div`,`merge-swish-hoop-front`,Bk)),e}var Uk=[jk,{title:`SWISH!`,buildScene:Hk},bO,jO,qO],Wk=48,Gk=5600,Kk=20,qk=null,Jk=[],Yk=null,Xk=!1,Zk=0;function Qk(e){let t=k(`span`,`merge-confetti-piece`),n=k(`span`,`merge-confetti-arc`);return n.append(k(`span`,`merge-confetti-paper`)),t.append(n),ue(t,mO(e)),t}function $k(e){let t=k(`p`,`merge-celebration-title`);return t.setAttribute(`aria-hidden`,`true`),Array.from(e).forEach((e,n)=>{let r=k(`span`,`merge-celebration-letter`,e);r.style.setProperty(`--letter-delay`,`${n*45}ms`),t.append(r)}),t}function eA(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 tA(e){let t=k(`div`,`merge-celebration-scene`);return t.setAttribute(`aria-hidden`,`true`),t.append(e.buildScene()),t}function nA(){return Uk[Math.floor(Math.random()*Uk.length)]}function rA(e){if(xt())try{ed(oO(e))}catch{}}function iA(e){let t=k(`ul`,`merge-celebration-details`);for(let n of e)t.append(k(`li`,`merge-celebration-detail`,n));return t}function aA(e,t,n){qk?.remove(),rA(n);let r=k(`div`,`merge-celebration`);r.setAttribute(`role`,`status`);let i=k(`div`,`merge-celebration-card`),a=k(`div`,`merge-celebration-stage`),o=$k(t.title),s=tA(t);a.append(o,k(`p`,`merge-celebration-message`,e.message),iA(e.detailLines),s);let c=k(`div`,`merge-confetti`);c.style.setProperty(`--confetti-scale`,String(fO(n)));for(let e=0;e<Wk;e+=1)c.append(Qk(e));i.append(c,a),r.append(i),document.body.append(r),eA(a,o,s),qk=r,window.setTimeout(()=>{r.remove(),qk===r&&(qk=null)},Gk)}function oA(e){return Xk?`playing`:e?`queued`:`empty`}function sA(){if(!Yk)return;let e=Jk.length>0;Yk.tray.dataset.state=oA(e),Yk.count.textContent=e?String(Jk.length):``,Yk.button.disabled=Xk||!e}function cA(){let e=Jk.shift();Xk=e!==void 0,sA(),e&&(aA(e.text,e.scene,Zk),Zk+=1,window.setTimeout(cA,Gk))}function lA(e,t,n){Yk={tray:e,button:t,count:n},t.addEventListener(`click`,()=>{Zk=0,cA()}),sA()}function uA(e,t=nA()){Jk.push({text:e,scene:t}),Jk.length>Kk&&Jk.shift(),sA()}var dA=null,fA=null,pA=new Set,mA=new Map,hA=!1,gA=new Set;function _A(e){for(let t of gA)t(e)}function vA(){return[...mA].flatMap(([e,t])=>{let n=F.get(e);return!n||t.length===0?[]:[{id:e,title:st(n)||e,links:t}]})}function yA(){let e=xD(dA?.prs??[],Sr),t=CD(fA,e);fA=e,CA(t),_A({kind:`prs`})}function bA(){hA||(hA=!0,queueMicrotask(()=>{hA=!1,yA()}))}function xA(e){gA.add(e)}function SA(){return{prs:xD(dA?.prs??[],Sr),status:dA,sessionsByPrKey:SD(vA())}}function CA(e){let t=e.filter(e=>!pA.has(e.key));if(t.length!==0){for(let e of t)pA.add(e.key);uA(TD(t))}}function wA(e){mA=e,bA()}function TA(){_A({kind:`session-state`})}function EA(e){let t=p.safeParse(e);t.success?(dA=t.data,yA()):ze(`reviews`,`dropped my-prs-status: ${Fe(t.error.issues)}`)}function DA(e){_A({kind:`merge-result`,message:e})}function OA(e){_A({kind:`connection`,isConnected:e})}Cr(bA);var kA=[{id:`all`,label:`All`},{id:`reviewing`,label:`Reviewing`},{id:`mine`,label:`Mine`}],AA={turn:`Your turn`,working:`Agent working`,waiting:`Waiting on others`,aside:`Set aside`},jA=[`turn`,`working`,`waiting`,`aside`],MA={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`},NA={directAsk:0,followUp:1,mineNeedsYou:2,teamReady:3,mineReady:4,failedReview:5,staleReview:6};function PA(e,t){return{source:`team`,key:`team:${e.key}`,prKey:De(e),kind:t,review:e}}function FA(e){return e.status===`ready`?DD(e).band===`blocking-others`?NA.directAsk:NA.teamReady:NA.followUp}function IA(e){return[...e.ready.map(e=>({item:PA(e,`ready`),group:`turn`,turnRank:FA(e)})),...e.attention.map(e=>({item:PA(e,`attention`),group:`turn`,turnRank:e.status===`error`?NA.failedReview:NA.staleReview})),...e.inReview.map(e=>({item:PA(e,`inReview`),group:`working`,turnRank:0})),...e.queued.map(e=>({item:PA(e,`queued`),group:`working`,turnRank:0})),...e.noReviewNeeded.map(e=>({item:PA(e,`settled`),group:`waiting`,turnRank:0})),...e.posted.map(e=>({item:PA(e,`posted`),group:`waiting`,turnRank:0})),...e.discarded.map(e=>({item:PA(e,`discarded`),group:`aside`,turnRank:0}))]}function LA(e,t){let n=MA[e.stage];return n===`turn`&&e.stage!==`ready`&&t.has(De(e))?`working`:n}function RA(e,t){return _D(e).flatMap(e=>e.rows).map(({pr:e,parentKey:n})=>({item:{source:`mine`,key:`mine:${e.key}`,prKey:De(e),pr:e,stackedOn:n},group:LA(e,t),turnRank:e.stage===`ready`?NA.mineReady:NA.mineNeedsYou}))}function zA(e,t,n){let r=[...IA(e),...RA(t,n)];return jA.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:AA[e],items:n.map(e=>e.item)}})}function BA(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 VA(e){return e.find(e=>e.id===`turn`)?.items??[]}function HA(e,t){return t?e.flatMap(e=>e.items).find(e=>e.key===t)??null:null}function UA(e,t){return HA(e,t)?t:e.flatMap(e=>e.items)[0]?.key??null}function WA(e){return e.source===`mine`?ID(e.pr.repo,e.pr.number):ID(e.review.repo,e.review.number)}function GA(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 KA(e){return VA(e).map(e=>({id:e.key,kind:GA(e),name:WA(e)}))}function qA(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 JA(e,t){return KA(e).filter(e=>e.id!==t)}function YA({capturedOrder:e,actedKey:t,groups:n}){let r=VA(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 XA(e,t){let n=VA(e).map(e=>e.key),r=t?n.indexOf(t):-1;return r===-1?``:`${r+1} of ${n.length} in Your turn`}function ZA(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 QA(e){return VA(e).map(ZA)}function $A({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 ej(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 tj(e){return new Set(e.flatMap(e=>e.items).map(e=>(e.source===`mine`?e.pr.repo:e.review.repo).toLowerCase())).size>1}function nj(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 rj=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 ij(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`:rj.get(e.key)??null}function aj(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 oj=[],sj=null,cj=null,lj=null,uj=!1,dj=null,fj=Mt(),pj=tn(),mj=new Set(pj.split(`|`).filter(Boolean)),hj=new Set,gj=new Set;function _j(e){for(let t of gj)t(e)}function vj(e){e!==fj&&(fj=e,Ct(e))}function yj(e){e!==pj&&(pj=e,mj=new Set(e.split(`|`).filter(Boolean)),ht(e))}function bj(){return UD()!==null&&SA().status!==null}function xj(){if(!bj())return;let e=$A({turnEntries:QA(oj),acknowledged:fj,unseen:pj,isLooking:cj?.isLooking()??!1});vj(e.acknowledged),yj(e.unseen),dj?.(e.isShown)}function Sj(e){lj=e,_j({kind:`reveal`})}function Cj(e){gj.add(e)}function wj(e){cj=e,xj()}function Tj(){let{prs:e,sessionsByPrKey:t}=SA();return oj=zA(WD(),e,new Set(t.keys())),xj(),oj}function Ej(){bj()&&(vj(Se(QA(oj))),xj())}function Dj(e){dj=e,xj()}function Oj(){return pj}function kj(e){return mj.has(e)}function Aj(e){return mj.has(e)?(yj(Se([...mj].filter(t=>t!==e))),!0):!1}function jj(e){sj=e}function Mj(){return sj}function Nj(){let e=lj;return lj=null,e}function Pj(e){if(e!==uj){uj=e;for(let e of hj)e()}}function Fj(e){hj.add(e)}function Ij(){return document.documentElement.dataset.layout===`phone`&&uj}function Lj(){Ij()&&_j({kind:`return-to-queue`})}function Rj(){let e=JA(oj,cj?.selectedKey()??null)[0]?.id??null;return e?(Sj(e),!0):!1}function zj(e){let t=oj.flatMap(e=>e.items).find(t=>t.prKey===e.toLowerCase());return!t||!sj?.openReviews()?!1:(Sj(t.key),Ej(),!0)}HD(e=>{e.kind===`status`&&Tj()}),xA(e=>{e.kind===`prs`&&Tj()});var Bj={OPEN:0,MERGED:1,CLOSED:2};function Vj(e){return e?Bj[e.state]:Bj.OPEN}function Hj(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:ic(void 0)};let i=yD(t.stage);return{key:n,text:r,url:t.url,hoverText:`${e.repo}: ${t.title} (${vD(t.stage)})`,look:{icon:bD(t.stage),tone:i},tier:ic(i)}}function Uj(e,t){let n=e.map(e=>{let n=t(De(e));return{link:e,pr:n?cD(n):void 0}});return n.sort((e,t)=>Vj(e.pr)-Vj(t.pr)||t.link.linkedAt-e.link.linkedAt),n.map(({link:e,pr:t})=>Hj(e,t))}var Wj=new Map;function Gj(e){return document.querySelectorAll(`[data-pr-chips-for="${CSS.escape(e)}"]`)}function Kj(e){return Uj(Wj.get(e)??[],Sr).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:()=>{zj(e.key)||Nc(e.url)}}))}function qj(e,t){let n=Zc(e,e),r=k(`button`,`session-pr-chip-unlink`);r.append(mn(xn)),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(),mr({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:()=>{Ti(t,{type:`unlink-session-pr`,id:t,key:e.key})}})});let i=k(`span`,`session-pr-chip-item`);return i.append(n,r),i}function Jj(e,t){e.dataset.prChipsFor=t,nl(e,Kj(t),e=>qj(e,t))}function Yj(e){for(let t of e){let e=t.dataset.prChipsFor;e&&Jj(t,e)}ll()}function Xj(e,t){let n=d.shape.links.safeParse(t??[]);Wj.set(e,n.success?n.data:[]),Yj(Gj(e)),wA(Wj)}function Zj(e){Wj.delete(e),wA(Wj)}Cr(()=>Yj(document.querySelectorAll(`[data-pr-chips-for]`)));var Qj=null,$j=new Set;function eM(){Qj?.setAttribute(`aria-pressed`,String(!xt()))}function tM(e){vt(e),eM();for(let t of $j)t(e)}function nM(e){$j.add(e)}function rM(e){Qj=e,eM(),e.addEventListener(`click`,()=>tM(!xt()))}var iM={mine:`Mining merged pull requests.`,run:`Starting the run.`,cancel:`Cancelling the run.`},aM=null,oM=null,sM=!0,cM=new Map,lM=new Map,uM=new Set;function dM(){for(let e of uM)e()}function fM(e){uM.add(e)}function pM(){return{status:aM,isServerConnected:sM,pendingActionBySuite:cM,outcomeBySuite:lM}}function mM(e){oM=e}function hM(e,t){oM?.({type:`benchmark-action`,requestId:Ye(`benchmark`),suiteId:e,action:t})===!0?(cM.set(e,t),lM.set(e,iM[t]),dM()):(lM.set(e,l),dM())}function gM(e){if(sM=e,!e){for(let e of cM.keys())lM.delete(e);cM.clear()}dM()}function _M(e){aM=e,dM()}function vM(e){cM.delete(e.suiteId);let t=aM?.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.`};lM.set(e.suiteId,e.ok?n[e.action]:e.error||`The server refused the action.`),dM()}var yM=45e3,bM=`The server did not answer within ${yM/1e3} s.`,xM=`Select the issue to load its description.`,SM=null,CM=null,wM=new Map,TM=null,EM=new Map,DM=new Map,OM=new Map,kM=new Map,AM=new Map,jM=new Set;function MM(e){for(let t of jM)t(e)}function NM(e){return`${e.key}:${e.updatedAt}`}function PM(e){let t=EM.get(e);t&&(EM.delete(e),DM.set(t.issueKey,{text:bM,tone:`error`}),MM(`detail`))}function FM(e){let t=EM.get(e);return t?(clearTimeout(t.timeoutHandle),EM.delete(e),t):null}function IM(){return{latestStatus:CM,issueByKey:wM,selectedKey:SM}}function LM(e){jM.add(e)}function RM(e){SM=e}function zM(e){return[...EM.values()].some(t=>t.issueKey===e.key)}function BM(e){return DM.get(e.key)}function VM(e){let t=NM(e),n=kM.get(t);return n===``?`No description.`:n??AM.get(t)??`Loading description.`}function HM(e){let t=NM(e);if(kM.has(t)||[...OM.values()].some(e=>e.cacheKey===t))return;let n=Ye(`issue-detail`);AM.delete(t),TM?.({type:`issue-detail`,requestId:n,repo:e.repo,issueNumber:e.number})?OM.set(n,{cacheKey:t,timeoutHandle:setTimeout(()=>{OM.delete(n),AM.set(t,`${bM} ${xM}`),MM(`detail`)},yM)}):AM.set(t,`${l} ${xM}`)}function UM(e){let t=e.projectId;if(!t||zM(e))return;let n=Ye(`open-issue-session`);TM?.({type:`open-issue-session`,requestId:n,projectId:t,repo:e.repo,issueNumber:e.number})?(EM.set(n,{issueKey:e.key,issueNumber:e.number,timeoutHandle:setTimeout(()=>PM(n),yM)}),DM.set(e.key,{text:`Opening session.`,tone:`busy`}),MM(`detail`)):(DM.set(e.key,{text:l,tone:`error`}),MM(`detail`))}function WM(e){TM?.({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`issues`,action:e}})}function GM(e){TM=e}function KM(){MM(`session-state`)}function qM(e){if(!e){for(let e of EM.values())clearTimeout(e.timeoutHandle),DM.set(e.issueKey,{text:l,tone:`error`});EM.clear();for(let e of OM.values())clearTimeout(e.timeoutHandle),AM.set(e.cacheKey,`${l} ${xM}`);OM.clear(),MM(`status`)}}function JM(e){let t=CM?.issues.find(e=>e.key===SM);CM=e,wM=new Map(e.issues.map(e=>[e.key,e]));let n=e.issues.find(e=>e.key===SM);n&&n.updatedAt!==t?.updatedAt&&HM(n),MM(`status`)}function YM(e){let t=OM.get(e.requestId);t&&(clearTimeout(t.timeoutHandle),OM.delete(e.requestId),e.ok&&e.body!==null&&kM.set(t.cacheKey,e.body),(!e.ok||e.body===null)&&AM.set(t.cacheKey,e.error||`Could not load description. Select the issue to try again.`),MM(`detail`))}function XM(e){if(typeof e.requestId!=`string`)return;let t=FM(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`;DM.set(n,{text:`Session "${r}" ${a}.${i}`,tone:`ok`});let o=CM?.issues.find(e=>e.key===n);o&&typeof e.sessionId==`string`&&(o.sessionId=e.sessionId),MM(`status`);return}let r=typeof e.error==`string`&&e.error?e.error:`Could not open session.`;DM.set(n,{text:r,tone:`error`}),MM(`detail`)}var ZM=null,QM=null,$M=null,eN=()=>!1,tN=new Set,nN=new Set,rN=ve({getAck:Pt,setAck:Zt,signature:()=>o({posthog:ZM}),isLooking:()=>eN()});function iN(e){for(let t of nN)t(e)}function aN(){QM?.(rN.refresh())}function oN(){return{latest:ZM,archivedLocally:tN,traceOpener:$M}}function sN(e){nN.add(e)}function cN(e){eN=e,aN()}function lN(e){tN.add(e)}function uN(){rN.acknowledge(),aN()}function dN(e){QM=e,aN()}function fN(e){$M=e}function pN(e){ZM=e,Te(ZM,tN),iN({kind:`status`}),aN()}function mN(e){let t=Pe(ZM,e.projectId,e.issueId)?.inFlight===!0;x(ZM,e)&&iN({kind:`investigation-activity`,projectId:e.projectId,issueId:e.issueId,wasInFlight:t})}function hN(e){let t=ne(ZM,e);iN({kind:`investigation-finished`,frame:e,isPatched:t}),t&&aN()}var gN=ec({requestPrefix:`session-setup`,dialogClass:`dialog coherence-journal-drawer session-setup-dialog`,titleText:`Session setup`,unavailableLabel:`Session setup unavailable`,timeoutMs:15e3});function _N(e){let t=k(`ul`,`session-setup-list`);return t.append(...e.map(e=>k(`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?[k(`p`,null,t.model)]:[]),n(`Plugins`,t.plugins.map(e=>{let t=k(`div`,`session-setup-plugin`);return t.append(k(`h3`,null,e.name)),e.skills.length>0&&t.append(k(`p`,`session-setup-label`,`Skills`),_N(e.skills)),e.agents.length>0&&t.append(k(`p`,`session-setup-label`,`Agents`),_N(e.agents)),t})),n(`MCP servers`,t.mcpServers.length>0?[_N(t.mcpServers)]:[]),n(`Hooks`,[...t.hookEvents.map(e=>{let t=k(`p`,`session-setup-hook`);return t.append(k(`span`,null,e.event),k(`span`,`session-setup-label`,`${e.runCount} runs`)),t}),...t.hookCommands.map(e=>k(`pre`,`coherence-command`,e))]),n(`Skills`,t.skills.length>0?[_N(t.skills)]:[]),n(`Agents`,t.agents.length>0?[_N(t.agents)]:[])}function yN(e){let t=k(`p`,`coherence-journal-status`,`Loading session setup`);t.setAttribute(`role`,`status`);let n=k(`div`,`session-setup-sections`);gN.open({sessionId:e,status:t,body:[t,n],parts:{sections:n},buildRequest:t=>({type:`session-setup`,id:e,requestId:t})})}function bN(e){let t=gN.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 xN(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 SN={isVisible:document.visibilityState===`visible`,isFrozen:!1,isProbing:!1,isReplacing:!1},CN=document.visibilityState===`visible`?null:Date.now(),wN=null,TN=null;function EN(){wN!==null&&window.clearTimeout(wN),wN=null}function DN(e){EN();let t=Date.now()+e;wN=window.setTimeout(()=>{wN=null,AN({kind:`heartbeat-due`,lateByMs:Date.now()-t})},e)}function ON(){TN!==null&&window.clearTimeout(TN),TN=null}function kN(e){switch(e.kind){case`probe-control`:qe(e.deadlineMs,e.isAnnounced).then(e=>{AN({kind:e?`pong`:`pong-missed`})});return;case`replace-control`:Xe();return;case`close-sockets`:ON(),Ze(),Hm();return;case`reconnect-shown-terminals`:Bm();return;case`hold-input`:Lm();return;case`release-input`:Rm();return;case`schedule-heartbeat`:DN(e.inMs);return;case`cancel-heartbeat`:EN();return}}function AN(e){let t=Ie(SN,e);SN=t.state;for(let e of t.actions)kN(e)}function jN(){if(document.visibilityState!==`visible`){CN=Date.now(),AN({kind:`hidden`});return}let e=CN===null?0:Date.now()-CN;CN=null,AN({kind:`shown`,hiddenForMs:e})}function MN(e){ON(),e===`connecting`?TN=window.setTimeout(()=>{TN=null,AN({kind:`handshake-overdue`})},He):AN({kind:e===`opened`?`control-opened`:`control-closed`})}function NN(){let e=Reflect.get(navigator,`connection`);e instanceof EventTarget&&e.addEventListener(`change`,()=>AN({kind:`network-changed`}))}function PN(){Le(MN),document.addEventListener(`visibilitychange`,jN),document.addEventListener(`freeze`,()=>AN({kind:`frozen`})),document.addEventListener(`resume`,()=>AN({kind:`resumed`})),window.addEventListener(`pagehide`,e=>{e.persisted&&AN({kind:`frozen`})}),window.addEventListener(`pageshow`,e=>{e.persisted&&AN({kind:`resumed`})}),window.addEventListener(`online`,()=>AN({kind:`network-changed`})),NN()}var FN={},IN=null,LN=null,RN=ie,zN=null,BN=!1,VN=null,HN=[],UN=null,WN=()=>null,GN=()=>{},KN=new Set,qN=new Set;function JN(e){for(let t of qN)t(e)}function YN(e){qN.add(e)}function XN(){return FN}function ZN(e){return FN={...FN,...e},FN}function QN(){return{status:IN,journal:LN,request:RN,lastAutoCheckAt:zN,isCheckInFlight:BN,checkSendFailure:VN}}function $N(e){let t=w(RN,e);t!==RN&&(RN=t,JN({kind:`update`,frame:`request`}))}function eP(){$N(j({type:`update-apply`})?`request-sent`:`request-unsent`)}function tP(){zN=Date.now();let e=j({type:`update-check`});BN=e,VN=e?null:l,JN({kind:`update`,frame:`request`})}function nP(e){GN=e}function rP(){GN()}function iP(e){HN=[...e]}function aP(){return HN}function oP(e=null,t=null,n=null){let r=UN!==null&&(UN.sectionId!==null||UN.isLink);e===null&&n===null&&r||(UN={sectionId:e,settingId:t,hashAtRequest:n??location.hash,isLink:n!==null},JN({kind:`activate`}))}function sP(){let e=UN;return UN=null,e}function cP(e){WN=e}function lP(){for(let e of KN)e()}function uP(e){KN.add(e)}function dP(){return Du()&&WN()===`section`}function fP(){dP()&&JN({kind:`return-to-list`})}function pP(e){e&&(FN=e,ti(FN.agentLogins),JN({kind:`broadcast`}))}function mP(){JN({kind:`status`})}function hP(e){mP()}function gP(e){IN=e,BN=!1,VN=null,RN=w(RN,`status-frame`),JN({kind:`update`,frame:`status`})}function _P(e){LN=e,RN=w(RN,`progress-frame`),JN({kind:`update`,frame:`progress`})}function vP(e){if(e.scope!==`update`)return!1;let t=C(e.message),n=RN.requested;return RN=w(RN,`error-frame`,t),BN=!1,n||(VN=t),JN({kind:`update`,frame:`error`}),!0}function yP(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 Z=null,bP=null,xP=null,SP=null,CP=null,wP=null,TP=-1,EP=null,DP={isRightToLeft:!1,arcProgress:0},OP=1,kP=3;function AP(){if(!Z||EP===null)return;let e=qr({viewportWidthPx:document.documentElement.clientWidth,viewportHeightPx:document.documentElement.clientHeight,verticalProgress:EP,...DP});ue(Z,Yr(e,OP,window.devicePixelRatio))}function jP(){wP!==null&&(clearTimeout(wP),wP=null)}function MP(e=un()){return St({isEnabled:e,hasReducedMotion:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,isPhone:Du(),options:Vt()})}function NP(e){e.onanimationend=null,e.style.animation=`none`,SP&&(SP.style.animation=`none`),e.hidden=!0}function PP(e,t){if(!Z||!bP||!xP||!SP||MP())return;let n=Vt();jP();let r=sn(n,TP,Math.random,t);if(NP(Z),!r){wP=setTimeout(()=>PP(!1),1e3);return}EP=r.verticalProgress,DP={isRightToLeft:r.isRightToLeft,arcProgress:r.arcProgress},OP=n.flyingAnimalsScale,AP();let i=_t[r.animalIndex];bP.className=`nyan-sprite ${i.sprite}`,xP.className=`nyan-trail ${i.trail}`,TP=r.animalIndex,CP?.classList.remove(`is-booped`),Z.hidden=!1,Z.offsetWidth,Z.style.animation=`nyan-fly ${r.durationSeconds}s linear`,SP.style.animation=`nyan-trail-hold ${r.durationSeconds}s linear`,e&&(Z.style.animationDelay=`-${r.firstDelaySeconds}s`,SP.style.animationDelay=`-${r.firstDelaySeconds}s`),Z.onanimationend=e=>{Z&&e.target===Z&&(NP(Z),wP=setTimeout(()=>PP(!1),r.gapMs))}}function FP(){CP&&(CP.classList.remove(`is-booped`),CP.offsetWidth,CP.classList.add(`is-booped`))}function IP(e){if(Z&&SP&&e.target===CP)for(let e of[...Z.getAnimations(),...SP.getAnimations()])e.playbackRate=kP}function LP(){if(Z||MP())return;Z=document.createElement(`div`),Z.className=`nyan-flight`,Z.setAttribute(`aria-hidden`,`true`);let e=document.createElement(`div`);e.className=`nyan-trail-window`,SP=document.createElement(`div`),SP.className=`nyan-trail-hold`,xP=document.createElement(`div`),SP.append(xP),e.append(SP),bP=document.createElement(`div`),CP=document.createElement(`div`),CP.className=`nyan-boop`,CP.append(bP),CP.addEventListener(`pointerdown`,FP),CP.addEventListener(`animationend`,IP),Z.append(e,CP),document.body.appendChild(Z),window.addEventListener(`resize`,AP),window.addEventListener(`orientationchange`,AP),PP(!0)}function RP(e){LP(),PP(!1,e)}function zP(){jP(),window.removeEventListener(`resize`,AP),window.removeEventListener(`orientationchange`,AP),Z?.remove(),Z=null,bP=null,xP=null,SP=null,CP=null,TP=-1,EP=null}var BP=!1;function VP(e){let t=document.documentElement;if(BP||(BP=!0,Ou(()=>VP(un())),window.matchMedia(`(prefers-reduced-motion: reduce)`).addEventListener(`change`,()=>VP(un()))),e){if(t.dataset.flyingAnimals=`true`,MP(e)){zP();return}LP()}else delete t.dataset.flyingAnimals,zP()}var HP=`•`.repeat(8),UP=`[^/\\\\\\s"'\`<>:]+`,WP=RegExp(`(?<![\\w./\\\\-])(?:/home/${UP}|/Users/${UP}|[A-Za-z]:[\\\\/]Users[\\\\/]${UP}|/root(?![\\w.-]))`,`g`);function GP(e){let t=Tf(e);if(t.length===0)return e;let n=``,r=0;for(let i of t)n+=e.slice(r,i.start)+HP,r=i.end;return n+e.slice(r)}function KP(e){return e.replace(WP,`~`)}function qP(e){return KP(GP(e))}var JP=`.xterm, input, textarea, script, style, [contenteditable]:not([contenteditable="false"])`,YP=[`title`,`label`],XP=new WeakMap,ZP=new WeakMap,QP=null;function $P(e){let t=e instanceof Element?e:e.parentElement;return!t||t.closest(JP)!==null}function eF(e){let t=e.parentElement?.closest(`option`);return t!=null&&!t.hasAttribute(`value`)}function tF(e,t){if(t&&e===t.masked)return t;let n=qP(e);return n===e?null:{original:e,masked:n}}function nF(e){let t=eF(e)?null:tF(e.data,XP.get(e));t?(XP.set(e,t),e.data!==t.masked&&(e.data=t.masked)):XP.delete(e)}function rF(e,t){let n=e.getAttribute(t),r=ZP.get(e),i=n===null?null:tF(n,r?.get(t));if(!i){r?.delete(t);return}let a=r??new Map;a.set(t,i),ZP.set(e,a),n!==i.masked&&e.setAttribute(t,i.masked)}function iF(e){for(let t of YP)rF(e,t)}function aF(e){return e instanceof Element&&e.matches(JP)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}function oF(e){iF(e);let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,aF);for(let e=t.nextNode();e;e=t.nextNode())e instanceof Text&&nF(e),e instanceof Element&&iF(e)}function sF(e){$P(e)||(e instanceof Text&&nF(e),e instanceof Element&&oF(e))}function cF(e){e instanceof Element&&!$P(e)&&iF(e)}function lF(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&&sF(e);for(let e of n)e.isConnected&&cF(e)}function uF(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);dF(e);for(let e=t.nextNode();e;e=t.nextNode())dF(e)}function dF(e){if(e instanceof Text){let t=XP.get(e);t&&e.data===t.masked&&(e.data=t.original);return}if(!(e instanceof Element))return;let t=ZP.get(e);if(t)for(let[n,r]of t)e.getAttribute(n)===r.masked&&e.setAttribute(n,r.original)}function fF(){if(QP)return;let e=new MutationObserver(t=>{lF(t),e.takeRecords()});oF(document.body),e.observe(document.body,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:YP}),QP=e}function pF(){QP&&(QP.disconnect(),QP=null,uF(document.body),XP=new WeakMap,ZP=new WeakMap)}function mF(e){e?fF():pF()}function hF(){mF(Qo()),es(mF)}function gF(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 _F(e){return typeof e!=`object`||!e||!(`telemetryForcedOff`in e)?!1:e.telemetryForcedOff===!0}function vF(e,t){return t||_F(e)?!1:gF(e)}var yF=2500;function bF({hasSnapshot:e,connectingTerminalCount:t,msSinceConnected:n}){return n<2500&&(!e||t>0)?`wait`:`reveal`}var xF=2e4,SF=null,CF=null,wF={claude:null,codex:null},TF=null,EF=null,DF=null,OF=`all`,kF=!1,AF=null,jF=null,MF=!0,NF=()=>!1,PF=new Set,FF=ve({getAck:Et,setAck:Qt,signature:()=>cb(SF,wF.claude),isLooking:()=>NF()});function IF(e){for(let t of PF)t(e)}function LF(){TF?.(FF.refresh())}function RF(e){kF=e,IF(`refresh-status`),AF&&=(clearTimeout(AF),null),e&&(AF=setTimeout(()=>{AF=null,kF=!1,jF=`Usage did not answer within ${Math.round(xF/1e3)} s. Refresh to try again.`,IF(`refresh-status`)},xF))}function zF(e){let t=Gy.find(t=>t.value===e);return t?t.days:null}function BF(){return{report:SF,sessions:CF,planLimitsByVendor:wF,rangeValue:OF}}function VF(){let e=!MF||!kF&&jF!==null;return MF?kF?{text:`Refreshing`,isPending:!0,hasFailure:e}:{text:jF??``,isPending:!1,hasFailure:e}:{text:SF?`${l} The figures below are from before the connection dropped.`:l,isPending:kF,hasFailure:e}}function HF(e){PF.add(e)}function UF(e){NF=e,LF()}function WF(){FF.acknowledge(),LF()}function GF(e){TF=e,LF()}function KF(e){EF?.({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`usage`,action:e}})}function qF(e){EF=e}function JF(e){OF=e}function YF({force:e=!1}={}){if(!EF)return;DF=Ye(`usage`);let t={type:`request-usage-report`,requestId:DF};e&&(t.force=!0);let n=zF(OF);n!==null&&(t.days=n),jF=null,RF(!0),!EF(t)&&(jF=l,RF(!1))}function XF(e){MF=e,IF(`refresh-status`)}function ZF(e){CF=e,IF(`sessions`)}function QF(e){let t=e;wF={...wF,[ab(t)]:t},IF(`plan-limits`),LF()}function $F(e){mb(e,DF)&&(jF=null,RF(!1),SF=e,IF(`report`),LF())}function eI(){let e=SF?.pricing||(CF?{source:CF.pricingSource}:null),t=ub(e?.fetchedAt),n=[lb(e,t!==null&&t>0?at(t):``)],r=pb(SF);r&&n.push(r);let i=fb(SF?.scan);return i&&n.push(i),n}var tI={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},nI=[{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 rI(e,t){return t.isPhoneShellActive?t.phoneScreen===e:t.activeView===e}function iI(e,t){return e.flatMap(e=>!e.gate||!(`fromSettings`in e.gate)?[]:[{view:e,isAvailable:e.gate.fromSettings(t)}])}function aI(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 oI(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 sI(e){return{isActive:e===!0||typeof e==`string`,level:typeof e==`string`?e:null}}function cI(e,t,n){t&&e?.refreshOn?.includes(n)&&t.refresh?.(n)}function lI(e,t,n,r){for(let i of e)rI(i.view,t)&&cI(i,r(i.view),n)}function uI(){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 dI(e,t,n){let r=Number(e);return!e||!Number.isFinite(r)||t-r>n}var fI=`glimmervoid:preload-error-reload-at`,pI=3e4,mI=1e3,hI=uI();function gI(e,t){let n=hI.mountedModuleOf(e.view);n?t(n):hI.show(e).then(t).catch(t=>{throw ze(`view`,`${e.view} failed to show: ${$e(t)}`),t})}function _I(e){return hI.mountedModuleOf(e)}function vI(e){hI.mountEagerViews(e)}function yI(e){let t=()=>{hI.prefetch(e.filter(e=>!e.tab.hidden))};`requestIdleCallback`in window?window.requestIdleCallback(t):setTimeout(t,mI)}function bI(e){window.addEventListener(`vite:preloadError`,()=>{let t=e(),n=Date.now();dI(t.getItem(fI),n,pI)&&(t.setItem(fI,String(n)),location.reload())})}function xI(e){jj({openTerminal:e.openTerminal,openReviews:e.openReviews}),nP(e.onRestart);let t=[{view:`focus`,label:`Focus`,panelClass:`focus-view`,hasOwnPhoneScreen:!0,hasPanelChrome:!1,hasReviewSidebar:!0,module:{mount:()=>iC({rail:document.getElementById(`focus-rail`),center:document.getElementById(`focus-center`),resizer:document.getElementById(`focus-rail-resizer`)}),activate:MC,deactivate:FC}},{view:`prs`,label:`Reviews`,glyph:`⇅`,panelClass:`pr-view`,gate:{fromSettings:tI.teamReview},load:()=>bi(()=>import(`./review-queue-panel-BSdeDDiH.js`).then(e=>e.view),__vite__mapDeps([9,1,2,3,4,10,5,6,11,8])),attention:{subscribe:Dj,acknowledge:Ej},onConnectionChange:e=>{OA(e),JD(e)}},{view:`issues`,label:`Issues`,glyph:`#`,panelClass:`issues-view`,gate:{fromSettings:tI.issues},load:()=>bi(()=>import(`./issues-panel-BMMUK15i.js`).then(e=>e.view),__vite__mapDeps([12,1,2,4,5,3,11,10,8,6])),refreshOn:[`shown`],onConnectionChange:qM},{view:`usage`,label:`Usage`,glyph:`◔`,panelClass:`usage-view`,gate:{fromSettings:tI.usage},load:()=>bi(()=>import(`./usage-panel-Dz-5iMXv.js`).then(e=>e.view),__vite__mapDeps([13,1,2,4])),attention:{subscribe:GF,acknowledge:WF},onConnectionChange:XF,refreshOn:[`shown`,`connected`,`usage-sessions`]},{view:`radar`,label:`Radar`,glyph:`◎`,panelClass:`radar-view`,gate:{fromSettings:tI.posthog},load:()=>bi(()=>import(`./radar-panel-C1EkXmny.js`).then(e=>e.view),__vite__mapDeps([14,1,2,3,4,5,6,0])),attention:{subscribe:dN,acknowledge:uN}},{view:`visions`,label:`Visions`,glyph:`◇`,panelClass:`visions-view`,gate:{fromSettings:tI.visions},load:()=>bi(()=>import(`./visions-panel-WD0a6YJR.js`).then(e=>e.view),__vite__mapDeps([15,1,2,5,3])),attention:{subscribe:nT,acknowledge:rT},refreshOn:[`shown`],onConnectionChange:oT},{view:`hooks`,label:`Hooks`,glyph:`◈`,panelClass:`hooks-view`,load:()=>bi(()=>import(`./hooks-panel-B38D20bu.js`).then(e=>e.view),__vite__mapDeps([16,2,1,3,5,6])),refreshOn:[`shown`,`connected`,`hooks-updated`]},{view:`trace`,label:`Trace`,panelClass:`trace-view`,gate:{subscribe:Wn},load:()=>bi(()=>import(`./trace-panel-BrdAYIET.js`).then(e=>e.view),__vite__mapDeps([17,1,2,10,5,3])),refreshOn:[`shown`],onAvailabilityChange:e=>fN(e?Ry:null),onConnectionChange:Uy},{view:`benchmarks`,label:`Bench`,panelClass:`bench-view`,gate:{fromSettings:tI.benchmarks},load:()=>bi(()=>import(`./benchmark-panel-Cx06z2NG.js`).then(e=>e.view),__vite__mapDeps([18,1,2])),onConnectionChange:gM},{view:`settings`,label:`Settings`,glyph:`@`,panelClass:`settings-view`,hasPanelChrome:!1,load:()=>bi(()=>import(`./settings-panel-QUc2b6hw.js`).then(e=>e.view),__vite__mapDeps([19,1,2,3,4,10,5,6,0]))}],n=D(document,`#app-main`,`main`),r=t.map(t=>{let r=k(`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)??k(`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=k(`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}=sI(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 D(document,`#header-tabs`,`div`).replaceChildren(...r.map(e=>e.tab)),r}fd(zt()),pd(on()),VP(un()),Eu(),Fc(document);var SI=D(document,`#connection-status`,`span`),CI=D(SI,`.connection-label`,`span`),wI=D(document,`#loading-screen`,`div`),TI=D(document,`#loading-status`,`div`),EI=D(document,`#loading-detail`,`div`),DI=D(document,`#shutdown-screen`,`div`),OI=D(document,`#shutdown-status`,`div`),kI=!1,AI=null,jI=!1;function MI(){let e=Qr(),t=wI.querySelector(`.loading-spinner`);e&&t&&t.replaceWith(Zr(e,`loading-animal`))}MI();function NI(){kI||AI===null||bF({hasSnapshot:jI,connectingTerminalCount:Em(),msSinceConnected:performance.now()-AI})===`reveal`&&PI()}Tm(NI);function PI(){if(kI)return;kI=!0,wI.classList.add(`fade-out`),yI(Q);let e=()=>wI.remove();wI.addEventListener(`transitionend`,e,{once:!0}),setTimeout(e,1e3)}function FI(e,t){SI.dataset.state=`shutdown`,CI.textContent=e,SI.title=e,DL.disabled=!0,OI.textContent=t,DI.classList.add(`active`)}var II=new Set([`disconnected`,`connecting`]);function LI(e,t,n){SI.dataset.state=e,SI.toggleAttribute(`data-reconnected`,n),CI.textContent=t,SI.title=t}function RI(e,t){LI(e,t,e===`connected`&&II.has(SI.dataset.state??``))}function zI(e,t){SI.dataset.state!==`shutdown`&&LI(e===`verified`?`connected`:e,t,!1)}var BI=1e4,VI=`Server`,HI=`Worktree`,UI=`Worktree warning`,WI=`The server is not answering. Check the terminal running Glimmervoid for errors, or start it again with glimmervoid. This page reconnects on its own.`,GI=`Server not answering. Check the Glimmervoid terminal for errors, or run glimmervoid. This page retries on its own.`,KI=null,qI=!1;function JI(){TI.textContent=`Reconnecting to server...`,EI.textContent=GI,EI.hidden=!qI}function YI(){KI=null,qI=!0,kI?I({source:VI,message:WI,hidesInStreamerMode:!1}):JI()}function XI(){KI!==null||qI||(KI=window.setTimeout(YI,BI))}function ZI(){KI!==null&&window.clearTimeout(KI),KI=null,qI=!1,EI.hidden=!0,bn(VI)}Be((e,t)=>{if(e===`connecting`||e===`verified`)zI(e,t);else{RI(e,t),_x(e===`connected`);for(let t of Q)t.onConnectionChange?.(e===`connected`);if(e===`connected`){if(ZI(),GL&&KL(GL),DI.classList.contains(`active`)){location.reload();return}co(),document.body.classList.add(`app-ready`),!kI&&AI===null&&(AI=performance.now(),TI.textContent=`Connecting to sessions...`,setTimeout(PI,yF)),NI(),_R(),lL(`connected`),M(`get-settings`,{}).then(e=>{e.settings&&(ZL(e.settings),Pr()===`settings`&&ML(location.hash))}).catch(()=>{})}else e===`disconnected`&&DI.classList.contains(`active`)?OI.textContent=`Waiting for server...`:(XI(),kI||JI())}});function QI(){KM(),TA(),ZE()}function $I(){hC(),QI()}Fs(()=>hC());var eL=null;function tL(e){let t=yP(eL,e);eL=t.knownBuild,t.reload&&location.reload()}function nL(e){iT(new Map(e.filter(e=>!e.ephemeral).map(e=>[e.id,e.name]))),hP(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){mc(t.id,t.coherenceHooks),t.ephemeral||Ol(t.path),Xj(t.id,t.linkedPrs);let e=rx(t.id);e&&Bx(t.id,t.state,t.stateSince),e&&Un(t.id,!!t.saneYolo),e&&xx(t.id,t.isGuarded,t.isGuardrailsReleased),e||cx(t.id,t.name,t.state,xN(t)),Fx(t.id,t.failureReason),nx(t.id,t.taskTitle,t.taskTitleIsCustom),yx(t.id,t.agent),kx(t.id,t.mergeStatus,t.mergeReason),vx(t.id,t.effectiveBase),Cx(t.id,t.activeAgents,t.awaitingBackgroundTasks),Tx(t.id,t.pendingPromptKind),Ex(t.id,t.unseenOutcome),Yb(t.id,t),fx(t.id,t.hasPlan),cL(t.id)}sx(),Gc(F),hC(),PC(),QI(),rL(),FL(location.hash),vR(),jI=!0,NI()}function rL(){zy([...F].map(([e,t])=>({id:e,name:st(t)||e})))}function iL(e,t){fx(e,t?.hasPlan===!0),Ex(e,t?.unseenOutcome),cL(e)}function aL(e){if(!rx(e.id))cx(e.id,e.session,e.to,xN({skipPerms:e.skipPerms,saneYolo:e.saneYolo,stateSince:e.timestamp})),Gc(F),KM();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;Mx(e.id),cx(e.id,e.session,b.DORMANT,xN({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})),yx(e.id,t?.agent),iL(e.id,t),$I(),R_(e.id),Gc(F)}else Bx(e.id,e.to,e.timestamp,e.event),Fx(e.id,e.failureReason),e.saneYolo!==void 0&&Un(e.id,e.saneYolo),Gc(F),R_(e.id),$I(),rr(e.id),e.to===b.INITIALIZING&&(e.from===b.DONE||e.from===b.FAILED)&&zm(e.id)}var oL=new Map;function sL(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};oL.set(n.id,e),wx(n.id,e)}for(let e of[...oL.keys()])t.has(e)||(oL.delete(e),wx(e,null))}function cL(e){let t=oL.get(e);t&&wx(e,t)}qF(j),wT(j),Iy(j),GM(j),mM(j),ur(Jj),ol(vc),ol(Kj),qn({isReadable:yc,open:xc}),Vn(yN);function lL(e){lI(Q,{isPhoneShellActive:YE(),activeView:Pr(),phoneScreen:L.snapshot().phoneScreen},e,_I)}es(()=>lL(`settings-updated`));var uL={snapshot:e=>{tL(e.serverBuild),nL(e.sessions)},"hooks-report":e=>ET(e),"save-hook-result":()=>DT(),"delete-hook-result":()=>DT(),"state-change":e=>aL(e),"session-added":e=>{e.ephemeral||Ol(e.path),Xj(e.id,e.linkedPrs),rx(e.id)||(cx(e.id,e.session,e.state,xN(e)),yx(e.id,e.agent),cL(e.id)),Gc(F),$I(),rL()},"session-close-confirm":e=>{Ri(e.id)},"session-removed":e=>{Sn(e.id),Mx(e.id),hc(e.id),B_(e.id),Zj(e.id),Gc(F),$I(),rL()},"session-title":e=>{nx(e.id,e.taskTitle,e.isCustom),$I()},"session-prs":e=>Xj(e.id,e.linkedPrs),"session-renamed":e=>{jx(e.id,e.newName),$I(),rL()},"session-modified":e=>{e.ephemeral||Ol(e.path);let t=F.get(String(e.id));mc(e.id,null),Mx(e.id),B_(e.id),Xj(e.id,e.linkedPrs),cx(e.id,e.session,e.state,xN(e)),yx(e.id,e.agent),iL(e.id,t),Gc(F),$I(),rL()},"session-git":e=>bx(e.id,!!e.worktree),"session-agents":e=>{Cx(e.id,e.activeAgents,e.awaitingBackgroundTasks),$I(),rr(e.id)},"session-unseen":e=>{Ex(e.id,e.unseenOutcome),sx(),Gc(F),$I()},"session-prompt":e=>{Tx(e.id,e.pendingPromptKind),QI()},"session-merge-status":e=>{Ox(e.id,e.mergeStatus,e.reason),DC(e.id,e.mergeStatus),QI()},"session-worktree-blocked":e=>{I({source:HI,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:UI,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=>{bn(HI,e.id),vx(e.id,e.base)},"session-diff":e=>{Ax(e.id,e)},"session-diff-error":e=>{N_(e.id,e.message)},"change-map":e=>P_(e.id,e.map),"branch-sync-status":e=>F_(e.id,e),"session-changed":e=>L_(e.id),"debug-state-response":e=>Yn(e),"session-trace-response":e=>{Xb(e)||By(e)},"session-trace-changed":e=>{Qb(e.id),Vy(e)},"session-conversation":e=>{Yb(e.id,e),QI()},"session-plan-changed":e=>{px(e),QI()},"session-plan-draft":e=>{mx(e)},"session-plan-response":e=>{hx(e)},"session-docs-changed":e=>ws(e),"session-docs-snapshot":e=>Ts(e),"session-shown":e=>Zs(e),"session-shown-snapshot":e=>Qs(e),"session-coherence-hooks":e=>{mc(e.id,e.coherenceHooks),$I()},"session-coherence":e=>{gc(e),$I()},"session-coherence-snapshot":e=>{_c(e),$I()},"session-coherence-journal-response":e=>Sc(e),"session-setup-response":e=>bN(e),notify:e=>{ca(e),rr(e.session)},"update-status":e=>{_L(e),gP(e)},"update-progress":e=>_P(e.journal),"post-turn-leftovers":e=>yL(e),error:e=>{let t=vP(e),n=Hy(e);Zb(e);let r=gx(e);t||n||r||(e.id?Px(e.id,e.message):I({source:VI,message:e.message}))},"session-error":e=>{A_(e.id),!gx(e)&&Px(e.id,e.message)},"settings-updated":e=>{e.settings&&ZL(e.settings),co()},"agent-logins":e=>ti(e.logins),"health-snapshot":e=>{e.stats&&Hh(e.stats)},"radar-status":e=>pN(e),"radar-investigation-activity":e=>mN(e),"radar-investigation-finished":e=>hN(e),"team-review-status":e=>GD(e),"github-prs":e=>xr(e),"my-prs-status":EA,"benchmark-status":e=>_M(e),"benchmark-action-result":e=>vM(e),"my-pr-merge-result":e=>DA(e),"team-review-action-result":e=>KD(e),"open-team-review-session-result":e=>qD(e),"issues-status":e=>JM(e),"issue-detail-result":e=>YM(e),"open-issue-session-result":e=>XM(e),"usage-sessions":e=>{sL(e.sessions),ZF(e)},"usage-report":e=>{$F(e),mP()},"plan-limits":e=>QF(e),"usage-budget-alert":e=>ca({session:`budget-${e.scope}-${e.periodKey}`,category:`threshold-${e.threshold}`,message:e.text,ignoreFocus:!0}),"visions-findings":e=>cT(e),"visions-comments":e=>lT(e),"visions-hand":e=>uT(e),"visions-intent":e=>dT(e),"visions-fix":e=>sT(e),"visions-snapshot":e=>mT(e),"ingest-activity":e=>fT(e),"ingest-snapshot":e=>pT(e),"client-trust":e=>dR(e.trust),"shutting-down":()=>FI(`Shutting down...`,`Shutting down sessions...`),restarting:()=>FI(`Restarting...`,`Restarting server...`)};function dL(e){let t=uL[e.type];t&&t(e)}We(e=>{dL(e),lL(e.type)});var fL,pL=null;function mL(e,t,n){e.onclick=()=>{let e=Me(n);e?e.then(()=>{t.textContent=`Copied`}).catch(()=>{t.textContent=`Copy failed`}):t.textContent=`Copy failed`}}var hL=ma(v,h,`Update`).href;function gL(e){let{latestSha:t,latest:n}=e;return typeof n==`string`&&n?n:typeof t==`string`&&t?t:null}function _L(e){let t=D(document,`#update-banner`,`div`),{mode:n,tone:r,text:i}=ye(e),a=r===`security`;if(!e.updateAvailable&&!a){t.hidden=!0;return}let o=gL(e),s=o&&n===`restart`?`${o}:ready`:o;if(a&&i===pL||!a&&fL!==void 0&&s===fL||!a&&s&&Kt()===s)return;t.classList.toggle(`update-banner-security`,a);let c=String(e.command??``);D(document,`#update-banner-text`,`span`).textContent=i,D(document,`#update-banner-cmd`,`code`).textContent=c;let l=D(document,`#update-banner-update`,`a`);l.href=hL,l.hidden=n!==`link`;let u=D(document,`#update-banner-restart`,`button`);u.hidden=n!==`restart`,u.onclick=uR;let d=D(document,`#update-banner-cmd`,`code`);d.hidden=n!==`command`;let f=D(document,`#update-banner-copy`,`button`);f.hidden=n!==`command`;let p=D(document,`#update-banner-copy-status`,`span`);p.hidden=n!==`command`,p.textContent=``;let m=D(document,`#update-banner-link`,`a`);m.hidden=!e.releaseUrl,m.href=typeof e.releaseUrl==`string`?e.releaseUrl:``,t.hidden=!1,mL(f,p,c),D(document,`#update-banner-dismiss`,`button`).onclick=()=>{t.hidden=!0,a?pL=i:(fL=s,Ut(s))}}var vL=!1;function yL({repositories:e,command:t}){let n=D(document,`#post-turn-leftovers-banner`,`div`);if(e.length===0){n.hidden=!0;return}if(vL)return;let r=D(document,`#post-turn-leftovers-copy-status`,`span`);D(document,`#post-turn-leftovers-text`,`span`).textContent=kr(e.length),D(document,`#post-turn-leftovers-cmd`,`code`).textContent=t,r.textContent=``,n.hidden=!1,mL(D(document,`#post-turn-leftovers-copy`,`button`),r,t),D(document,`#post-turn-leftovers-dismiss`,`button`).onclick=()=>{vL=!0,n.hidden=!0}}var bL=D(document,`#telemetry-banner`,`div`);function xL(){Ft(!0),bL.hidden=!0}function SL(e){bL.hidden=!vF(e,pt())}var CL=D(document,`#telemetry-banner-settings`,`a`);CL.href=ma(`privacy`,`telemetry-enabled`,`What's collected`).href,CL.addEventListener(`click`,xL),D(document,`#telemetry-banner-dismiss`,`button`).addEventListener(`click`,xL),D(document,`#btn-add-session-header`,`button`).addEventListener(`click`,Ai);var wL=D(document,`#btn-mute`,`button`);rM(wL);var TL=D(document,`#btn-streamer`,`button`);as(TL),hF();var EL=D(document,`#power-menu`,`div`),DL=D(document,`#btn-power`,`button`),OL=D(document,`#power-menu-dropdown`,`div`);function kL(e){EL.classList.toggle(`open`,e),DL.setAttribute(`aria-expanded`,String(e))}DL.addEventListener(`click`,e=>{e.stopPropagation(),kL(!EL.classList.contains(`open`))}),cr({trigger:DL,menu:OL,menuItems:()=>[...OL.querySelectorAll(`[role="menuitem"]`)].filter(e=>!e.hidden),isOpen:()=>EL.classList.contains(`open`),open:()=>kL(!0),close:()=>kL(!1)}),document.addEventListener(`click`,e=>{e.target instanceof Node&&(EL.contains(e.target)||kL(!1))}),ge(document.querySelector(`.header`));function AL(e){e&&oP(e),!$E(`settings`)&&$(`settings`,{section:e})}function jL(){da(location.hash)&&history.replaceState(history.state,``,`${location.pathname}${location.search}`)}function ML(e){return da(e)?(oP(null,null,e),$E(`settings`)||$(`settings`,{persist:!1}),!0):!1}var NL=`No plan is stored for this session yet. It appears here once the agent writes one.`,PL=`Plan`;function FL(e){let t=Gi(e);return t?!rx(t)||(history.replaceState(history.state,``,`${location.pathname}${location.search}`),YE()?(JE(t)||I({source:PL,sessionId:t,message:NL}),!0):($(`focus`,{persist:!1}),kC(t)||I({source:PL,sessionId:t,message:NL}),!0)):!1}function IL(e){return FL(e)?!0:ML(e)}function LL(e){e.newURL===location.href&&IL(location.hash)}document.addEventListener(`click`,e=>{if(!YE()||e.defaultPrevented)return;let t=e.target instanceof Element?e.target.closest(`a[href^="#"]`):null;t instanceof HTMLAnchorElement&&IL(t.hash)&&e.preventDefault()}),lA(D(document,`#celebration-tray`,`div`),D(document,`#btn-celebrations`,`button`),D(document,`#celebration-tray-count`,`span`)),D(document,`#btn-help`,`button`).addEventListener(`click`,()=>{AL(`browser-shortcuts`)});var Q=xI({onRestart:uR,openTerminal:e=>{QE(e)||($(`focus`),OC(e))},openPlan:e=>{$(`focus`),kC(e)},openReviews:()=>VL(`prs`)?($E(`prs`)||$(`prs`),!0):!1,setPhoneAttention:tD});function RL(){return Q.map(e=>e.view)}var zL=RL();iP(Q),T_({panel:document.getElementById(`review-sidebar`)}),vI(Q);function BL(e){return Q.find(t=>t.view===e)}function VL(e){return Q.some(t=>t.view===e&&!t.tab.hidden)}var HL=!0,UL=null;function WL(e){BL(e)?.attention?.acknowledge()}var GL=null;function KL(e){GL=j({type:`dashboard-telemetry`,event:`view_shown`,properties:{view:e}})?null:e}function qL(e){let t=BL(e);t&&(gI(t,e=>cI(t,e,`shown`)),KL(e))}function $(e,{section:t,setting:n,persist:r=!0}={}){let i=BL(e);if(!i||!VL(e))return;let a=Pr();L.dispatch(`setActiveView`,e),HL=r,r&&(UL=null),document.body.dataset.activeView=e,document.body.dataset.reviewSidebarHidden=String(i.hasReviewSidebar!==!0),r&>(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&&_I(a)?.deactivate?.(),gI(i,r=>{Pr()===e&&(r.activate?.(),cI(i,r,`shown`),e===`settings`&&t&&oP(t,n??null))}),KL(e),a===`settings`&&e!==`settings`&&jL(),WL(e)}function JL(e,t){let{view:n}=e;e.tab.hidden=!t,eD(n,t),e.onAvailabilityChange?.(t),!YE()&&(!t&&Pr()===n&&$(`focus`),t&&UL===n&&$(n))}function YL(e){for(let{view:t,isAvailable:n}of iI(Q,e))JL(t,n)}function XL(e){let t=aI(zL,e);Q.every((e,n)=>e.view===t[n])||(Q.sort((e,n)=>t.indexOf(e.view)-t.indexOf(n.view)),D(document,`#header-tabs`,`div`).append(...Q.map(e=>e.tab)),WE(t))}function ZL(e){md(e.isExperimentalBuild===!0&&cn()),ax(e),pP(e),aT(e),YL(e),SL(e),XL(e.viewTabOrder),$o(e.streamerMode===!0),qb(e.conversationView===!0)}for(let e of Q)e.gate&&(JL(e,!1),`subscribe`in e.gate&&e.gate.subscribe(t=>JL(e,t)));Ly(()=>{VL(`trace`)&&($E(`trace`)||$(`trace`))});function QL(){return Q.filter(e=>!e.tab.hidden)}function $L(e,t){let n=e[t];return $(n.view),n.tab}function eR(e,t){let n=QL(),r=n.findIndex(t=>t.view===e);return $L(n,fr(r,t,n.length))}function tR(e){Q.some(e=>e.tab===document.activeElement)&&e.focus()}var nR=null;function rR(e){let t=RL();XL(e),M(`update-settings`,{settings:{viewTabOrder:e}}).then(e=>{e.type===`settings-error`&&XL(t)}).catch(()=>XL(t))}function iR(e){let t=nR;if(nR=null,!t||t===e)return;let n=RL();rR(oI(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=>{nR=t,e.dataTransfer?.setData(`text/plain`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),n.addEventListener(`dragover`,e=>{nR&&nR!==t&&(e.preventDefault(),n.dataset.dropTarget=`true`)}),n.addEventListener(`dragleave`,()=>delete n.dataset.dropTarget),n.addEventListener(`drop`,e=>{e.preventDefault(),delete n.dataset.dropTarget,iR(t)}),n.addEventListener(`dragend`,()=>{nR=null}),n.addEventListener(`keydown`,e=>{if(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)return;let t=QL(),n=t.findIndex(e=>e.view===Pr()),r=pr(e.key,n,t.length,`horizontal`);r!==null&&(e.preventDefault(),$L(t,r).focus())})}var aR=en(),oR=da(location.hash),sR=Gi(location.hash);if(oR&&(oP(null,null,location.hash),$(`settings`,{persist:!1})),sR&&$(`focus`,{persist:!1}),!oR&&!sR){let e=VL(aR);e||(UL=aR),$(e?aR:`focus`,{persist:e})}GE({panels:OT(Q),onScreenShown:e=>{qL(e),e!==`settings`&&jL(),e===`settings`&&!da(location.hash)&&oP(),WL(e)},canGoBack:e=>e===`settings`&&dP()||e===`prs`&&Ij(),onBack:e=>{e===`settings`&&fP(),e===`prs`&&Lj()},headerControls:[D(document,`.header-title`,`h1`),D(document,`#status-indicator`,`div`),D(document,`#celebration-tray`,`div`),D(document,`#btn-add-session-header`,`button`),D(document,`#btn-help`,`button`),wL,TL,EL]}),uP(IE),Fj(IE);function cR(e){if(e===`phone`){let e=rC();for(let e of Q)_I(e.view)?.deactivate?.();let t=da(location.hash);KE({sessionId:e??void 0,linkedScreenId:t?`settings`:void 0}),t&&oP(null,null,location.hash);return}let t=XE();qE();let n=Pr();$(VL(n)?n:`focus`,{persist:HL}),t&&OC(t)}Du()&&cR(`phone`),Ou(cR),window.addEventListener(`hashchange`,LL);function lR({type:e,title:t,confirmLabel:n,danger:r,idleMessage:i,actionAfterKillingSessions:a}){kL(!1);let o=ix(),s=o>0?`Kill ${o} session${o>1?`s`:``} and ${a}?`:i;mr({title:t,message:s,confirmLabel:n,danger:r||o>0,onConfirm:()=>j({type:e})})}function uR(){lR({type:`restart-server`,title:`Restart Server`,confirmLabel:`Restart`,danger:!1,idleMessage:`Restart the server?`,actionAfterKillingSessions:`restart the server`})}D(document,`#btn-restart`,`button`).addEventListener(`click`,uR);function dR(e){let t=Tr(`shutdown`,e);D(document,`#btn-shutdown`,`button`).hidden=!t,D(document,`#menu-divider-shutdown`,`div`).hidden=!t}D(document,`#btn-shutdown`,`button`).addEventListener(`click`,()=>{lR({type:`shutdown`,title:`Shut Down Server`,confirmLabel:`Shut Down`,danger:!0,idleMessage:`Shut down the server?`,actionAfterKillingSessions:`shut down the server`})});function fR(){return(document.activeElement?.closest(`.session-card`))?.dataset.id??null}function pR(e){OC(e),Si(e),requestAnimationFrame(()=>requestAnimationFrame(()=>F.get(e)?.term?.focus()))}function mR(){let e=fR()??R();e?Pi(e,pR):document.getElementById(`btn-add-session-header`)?.click()}function hR({action:e,step:t}){switch(e){case`merge`:return V_(),!0;case`close-session`:{let e=R();return e?(Ri(e),!0):!1}case`resolve-or-resync`:return U_()||K_(),!0;case`new-session`:return document.getElementById(`btn-add-session-header`)?.click(),!0;case`quick-session`:return mR(),!0;case`next-attention`:return Du()?!1:nC()?(yC(),!0):(Pr()===`prs`&&Rj()||NC(()=>$(`focus`)),!0);case`rail-step`:return nC()?(jC(t),!0):!1;case`view-step`:return!Du()&&(tR(eR(Pr(),t)),!0);case`session-nth`:return nC()?(AC(t),!0):!1;case`streamer-mode`:return is(),!0}}document.addEventListener(`keydown`,e=>{if(e.repeat||me(e))return;let t=document.activeElement?.classList.contains(`xterm-helper-textarea`)??!1,n=Nt(e,ha,{isTerminalFocused:t},va());n&&(hr()||hR(n)&&e.preventDefault())});var gR=Or({mode:`trailing`,delayMs:150,run:()=>{j({type:`focus-change`,focused:document.hasFocus()})}});function _R(){gR.schedule()}function vR(){let e=XE();e&&N(e)?._isActiveViewer?.()===!0&&Lx(e)}function yR(){_R(),Qm(N(Fr())),vR()}window.addEventListener(`focus`,yR),window.addEventListener(`blur`,yR),document.addEventListener(`visibilitychange`,yR),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&Op()});var bR=Re(j);window.addEventListener(`error`,e=>{bR(e.error),ze(`uncaught`,$e(e.error??e.message))}),window.addEventListener(`unhandledrejection`,e=>{bR(e.reason),ze(`unhandled-rejection`,$e(e.reason))}),bI(()=>window.sessionStorage),window.addEventListener(`pageshow`,e=>{e.persisted&&Op()}),Vh(D(document,`#health-footer-mount`,`div`)),Ru(ox),XI(),PN(),Ke();export{Mj as $,Ea as $n,sb as $t,oN as A,gd as An,AD as At,RM as B,fl as Bn,CT as Bt,cP as C,Wh as Cn,Sr as Cr,HD as Ct,YN as D,md as Dn,ND as Dt,QN as E,Xh as En,DD as Et,IM as F,Du as Fn,yD as Ft,tM as G,ts as Gn,QC as Gt,pM as H,Jc as Hn,eT as Ht,UM as I,Ou as In,aD as It,kj as J,Wo as Jn,JC as Jt,nM as K,Uo as Kn,xw as Kt,BM as L,Tl as Ln,oD as Lt,sN as M,od as Mn,ID as Mt,zM as N,Yu as Nn,bD as Nt,sP as O,pd as On,jD as Ot,VM as P,Ju as Pn,vD as Pt,Lj as Q,Ca as Qn,Gy as Qt,WM as R,wl as Rn,ST as Rt,fP as S,Kh as Sn,L as Sr,xA as St,XN as T,rg as Tn,PD as Tt,hM as U,Qo as Un,$w as Ut,LM as V,Xc as Vn,tT as Vt,fM as W,es as Wn,pw as Wt,Aj as X,zo as Xn,gS as Xt,Rj as Y,Ro as Yn,hS as Yt,Tj as Z,Ba as Zn,Mb as Zt,ZN as _,Ay as _n,fi as _r,aj as _t,KF as a,$y as an,ba as ar,qA as at,tP as b,lg as bn,ri as br,CA as bt,JF as c,Zy as cn,pa as cr,ej as ct,BF as d,Fy as dn,Qi as dr,BA as dt,rb as en,wa as er,Oj as et,eI as f,Ny as fn,Yi as fr,YA as ft,pP as g,ky as gn,di as gr,tj as gt,RP as h,jy as hn,Si as hr,ij as ht,nI as i,Yy as in,xa as ir,kA as it,cN as j,Xu as jn,kD as jt,lN as k,fd as kn,OD as kt,HF as l,qy as ln,ua as lr,UA as lt,MP as m,My as mn,Di as mr,HA as mt,aI as n,Jy as nn,ya as nr,Cj as nt,YF as o,ib as on,va as or,KA as ot,VP as p,Py as pn,qi as pr,ZA as pt,wj as q,Ko as qn,Sw as qt,tI as r,Xy as rn,Sa as rr,Nj as rt,UF as s,eb as sn,ma as sr,JA as st,oI as t,nb as tn,ha as tr,Pj as tt,VF as u,pb as un,fa as ur,nj as ut,lP as v,ry as vn,ni as vr,VA as vt,aP as w,Yh as wn,Cr as wr,UD as wt,rP as x,Zh as xn,Zr as xr,SA as xt,eP as y,sg as yn,ti as yr,XA as yt,HM as z,ul as zn,TT as zt};
|
|
84
|
+
`;function aw(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 ow(e,t){return aw(JSON.stringify([e,...t]))}function sw(e,t){return ow(`finding`,[e,QC(t),String(t.code??``),String(t.message??``)])}function cw(e,t){return ow(`comment`,[e,pw(t),String(t.message??``)])}function lw(e){return ow(`fix`,[e.uri,xw(e),e.code,e.message,Sw(e)])}function uw(e){return ow(`intent`,[e.key,e.text,e.active])}function dw(e,t,n,r=[],i=null){let a=[...n].map(([e,t])=>ow(`hand`,[e,t])).sort(),o=new Set;for(let r of[...e.keys(),...t.keys(),...n.keys()])o.add(ow(`document`,[r]));for(let[t,n]of e)for(let e of n)o.add(sw(t,e));for(let[e,n]of t)for(let t of n)o.add(cw(e,t));for(let e of r)o.add(lw(e));for(let e of JC(i,null,0))e.hasText&&o.add(uw(e));let s=[...o].sort();return{signature:[...a,...s].join(iw),handEntries:a,contentEntries:s}}function fw(e,t){let n=new Set(t.split(iw));return e.handEntries.some(e=>!n.has(e))?nw:e.contentEntries.some(e=>!n.has(e))?rw:null}function pw(e){let t=Number(e?.line);return!Number.isFinite(t)||t<1?`L?`:`L${Math.floor(t)}`}function mw(e){return Array.isArray(e?.diagnostics)?e.diagnostics:[]}function hw(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=mw(t);return i.length===0?(n.delete(r),n):(n.set(r,i),n)}function gw(e){return Array.isArray(e?.comments)?e.comments:[]}function _w(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=gw(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 yw(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 bw=20;function xw(e){let t=Number(e?.line);return!Number.isFinite(t)||t<0?`L?`:`L${Math.floor(t)+1}`}function Sw(e){return e?.applied===!0?`applied`:`refused`}function Cw(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 ww(e){let t=typeof e?.uri==`string`?e.uri:``,n=Number(e?.ts);return Cw(e?.fix,{uri:t,ts:Number.isFinite(n)?n:0})}function Tw(e,t,{max:n=bw}={}){let r=ww(t);return r?[r,...e].slice(0,Math.max(0,Math.floor(n))):[...e]}function Ew(e,{max:t=bw}={}){let n=Array.isArray(e?.fixes)?e.fixes:[],r=[];for(let e of n){let t=Cw(e);t&&r.push(t)}return r.slice(0,Math.max(0,Math.floor(t)))}var Dw=100;function Ow(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 kw(e){let t=Array.isArray(e?.events)?e.events:[],n=[];for(let e of t){let t=Ow(e);t&&n.push(t)}return n}function Aw(e){let t=Number(e?.overflow);return!Number.isFinite(t)||t<=0?0:Math.floor(t)}function jw(e,t){return[...e].sort((e,t)=>t.seq-e.seq).slice(0,Math.max(0,Math.floor(t)))}function Mw(e,t,{max:n=Dw}={}){let r=kw(t);if(r.length===0)return jw(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 jw([...i.values()],n)}function Nw(e,{max:t=Dw}={}){return jw(kw(e),t)}var Pw=new Map,Fw=new Map,Iw=new Map,Lw=BC(),Rw=new Map,zw=null,Bw=!0,Vw=[],Hw=0,Uw=[],Ww=null,Gw=()=>!1,Kw=new Set,qw=dw(Pw,Fw,Iw,Uw,Lw),Jw=rn(),Yw=ve({getAck:()=>Jw,setAck:e=>{Jw=e,Ht(e)},signature:()=>qw.signature,isLooking:()=>Gw()});function Xw(e){for(let t of Kw)t(e)}function Zw(){qw=dw(Pw,Fw,Iw,Uw,Lw),qw.signature!==``&&Yw.refresh(),Ww?.(fw(qw,Jw))}function Qw(e){Xw(e),Zw()}function $w(){return{findingsByUri:Pw,commentsByUri:Fw,handsByUri:Iw,intent:Lw,projectNamesById:Rw,isEnabled:zw,isConnected:Bw,activityEvents:Vw,activityOverflow:Hw,fixEntries:Uw}}function eT(e){Kw.add(e)}function tT(e){Gw=e,Zw()}function nT(e){Ww=e,Zw()}function rT(){qw.signature!==``&&Yw.acknowledge(),Zw()}function iT(e){Rw=e instanceof Map?e:new Map,Xw([`intent`])}function aT(e){zw=e?.visions?.enabled===!0,Xw([`feed`])}function oT(e){Bw=e,Xw([`connection`])}function sT(e){Uw=Tw(Uw,e),Qw([`fixes`])}function cT(e){Pw=hw(Pw,e),Qw([`feed`])}function lT(e){Fw=_w(Fw,e),Qw([`feed`])}function uT(e){Iw=ew(Iw,e),Qw([`feed`])}function dT(e){Lw=GC(Lw,e),Qw([`intent`])}function fT(e){Vw=Mw(Vw,e),Hw=Aw(e),Qw([`activity`])}function pT(e){Vw=Nw(e),Hw=0,Qw([`activity`])}function mT(e){Pw=vw(e),Fw=yw(e),Iw=tw(e),Lw=UC(e),Uw=Ew(e),Qw([`intent`,`feed`,`fixes`])}var hT=null,gT=null,_T=!1,vT=null,yT=new Set;function bT(e,t){if(!e||typeof e!=`object`)return!1;let n=e.requestId;return typeof n!=`string`||!t||n===t}function xT(){for(let e of yT)e()}function ST(){return{report:hT,hasReportSendFailed:_T}}function CT(e){yT.add(e)}function wT(e){gT=e}function TT(){if(!gT)return;vT=Ye(`hooks-report`);let e=gT({type:`request-hooks-report`,requestId:vT});e!==!_T&&(_T=!e,xT())}function ET(e){bT(e,vT)&&(hT=e,_T=!1,xT())}function DT(){TT()}function OT(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 kT=e=>e.ui.path;function AT({onSelectSession:e}){let t=k(`div`,`phone-board`),n=k(`header`,`phone-topbar`),r=hS({onJump:()=>{AS(r);let e=Ln(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`}),DS(r,e,()=>{i===e&&o(e)})}function o(t){i=null,e?.(t)}let s=k(`div`,`phone-board-list`),c=k(`div`,`phone-empty`),l=k(`p`,`phone-empty-title`,`No sessions`),u=k(`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;ge(n);function _(e){let{row:t,refs:n}=ul(`button`);t.type=`button`,t.dataset.id=e,t.addEventListener(`click`,()=>o(e));let{item:r}=dl(t,()=>Ri(e));return r.setAttribute(`role`,`listitem`),p.set(t,{refs:n,item:r}),t}function v(){let e=k(`section`,`phone-board-group`),t=Gx({onAdd:Mi,onForget:e=>{Al(e),S()}}),n=k(`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;vl(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&&(Kx(n,t,`Board`),n.rows.setAttribute(`aria-label`,`${t.label} sessions`))}function x(){return jn(wi())}function S(){let e=x(),t=Ux(e,kT,kl(e,kT)),n=Zn(e);g=Pn(n);let i=Ln(e,null),a=new Map(i.map(({id:e},t)=>[e,t+1]));gS(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 ee=new Set(Wx(t));for(let[e,t]of[...d]){if(ee.has(e))continue;let n=p.get(t);n&&n.item.remove(),d.delete(e)}let w=t.groups.length>0,T=F.size===0;s.hidden=!w,c.hidden=w,so(c,T),l.hidden=T,u.hidden=T,r.hidden=T}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||``:nt(p.get(r)?.refs.glyph))}return rt(()=>{for(let[e,t]of d){let n=F.get(e),r=p.get(t);n&&r&&(r.refs.elapsed.textContent=tt(n))}}),{el:t,topBarEl:n,refresh:S,renderActivity:C,getAttentionCount:()=>g}}var jT=`clipboard`,MT=`upload`,NT=24,PT=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:jT,title:`Paste from the clipboard`}),Object.freeze({id:`attach`,label:`Attach`,bytes:null,action:MT,title:`Upload a photo or file to this session`})]);function FT(e){let t=PT.find(t=>t.id===e);return t?t.bytes:null}function IT(e){return!!e&&e.action===jT}function LT(e){return!!e&&e.action===MT}function RT(e,t,n=NT){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 zT(e,t,n=NT){let r=RT(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 BT={" ":`\0`,"@":`\0`,"[":`\x1B`,"\\":``,"]":``,"^":``,_:``,"?":``};function VT(e){if(e.length!==1)return null;let t=e.toLowerCase();return t>=`a`&&t<=`z`?String.fromCharCode(t.charCodeAt(0)-96):BT[e]??null}function HT({send:e,getSessionId:t,reportProblem:n}){let r=k(`div`,`phone-key-strip`);r.setAttribute(`role`,`toolbar`),r.setAttribute(`aria-label`,`Terminal keys`);let i=null,a=null,o=k(`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 PT){t.id===`left`&&r.appendChild(UT(e));let n=k(`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){LT(t)?d(r):IT(t)?GT(e,n):e(FT(t.id))}function d(e){a=e,i||(i=k(`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 qf(e,t),n&&(n.disabled=!1)}return{element:r,takeHeldControl:l}}function UT(e){let t=k(`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=zT(t.clientX-n.x,t.clientY-n.y);if(i){for(let t=0;t<i.stepCount;t++)e(FT(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 WT=`Paste needs clipboard permission.`;function GT(e,t){let n=null;try{n=navigator.clipboard?.readText?.()}catch{t(WT);return}n?n.then(t=>{t&&e(t)}).catch(()=>t(WT)):t(`Paste is unavailable in this browser.`)}function KT({onBack:e,onShowChanges:t}){let n=k(`div`,`phone-terminal`),r=k(`header`,`phone-topbar phone-terminal-bar`),i=k(`button`,`phone-back`,`‹`);i.type=`button`,i.setAttribute(`aria-label`,`Back to board`),i.addEventListener(`click`,()=>e?.());let a=k(`div`,`phone-terminal-identity`),o=k(`span`,`phone-terminal-name`);o.title=`Double-tap to rename`,o.addEventListener(`dblclick`,()=>te());let s=k(`span`,`session-task-title phone-terminal-title`);ir(s,()=>E());let c=k(`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=D(c,`.phone-terminal-glyph`,`span`),d=D(c,`.phone-terminal-label`,`span`),f=D(c,`.phone-terminal-elapsed`,`span`);d.before(o),a.append(s,c);let p=k(`button`,`phone-changes`);p.append(mn(gn)),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=k(`div`,`phone-terminal-actions`);r.append(i,a,p,m);let h=k(`div`,`phone-card-slot`),g=k(`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 _=vn(`phone-key-status m-0 px-3 py-1`),{element:v,takeHeldControl:y}=HT({send:ee,getSessionId:()=>x,reportProblem:e=>_.show(`error`,e)});n.append(r,h,g,_.element,v);let x=null,S=null,C=null;function ee(e){let t=x?F.get(x):null;t&&(Wm(t,e)?_.clear():_.show(`error`,l))}function w(){let e=x?F.get(x):null;e?.term&&e.term.focus()}h.addEventListener(`click`,w);function T(e){let t=VT(e);return!t||!y()?!1:(ee(t),!0)}h.addEventListener(`keydown`,e=>{e.ctrlKey||e.metaKey||e.altKey||T(e.key)&&(e.preventDefault(),e.stopPropagation())},!0),h.addEventListener(`input`,e=>{e instanceof InputEvent&&e.data&&T(e.data.slice(-1))&&(e.stopPropagation(),(x?F.get(x):null)?._resetSoftKeyboardBuffer?.())},!0);function te(){let e=x?F.get(x):null;e&&x&&lr(e,x,{returnsFocusToTerminal:!1})}function E(){let e=x?F.get(x):null;e&&x&&zn(e,x)}function ne(){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;fl(r,{glyph:u,label:d},n,e.awaitingBackgroundTasks,e.pendingPromptKind);let i=e.card?.dataset.session||x;tr(o)||(o.textContent=i),s.dataset.sessionName=i??``,Kn(s,e.taskTitle),f.textContent=tt(e)}function re(){C&&=(delete C.renameTargetEl,delete C.titleTargetEl,null),o.replaceChildren(),S&&=(_e(S),S.parentElement===m&&S.remove(),null)}function ie(e){let t=F.get(e);t&&(x===e&&Fr()===e&&t.card.parentElement===h||(re(),x=e,Ir(t,e,h,{className:`phone-centered`}),S=D(t.card,`.session-actions`,`div`),Ee(S,m),t.renameTargetEl=o,t.titleTargetEl=s,C=t),ne())}function ae(){re(),Fr()===x&&Lr(),x=null,ne()}function oe(){if(!x){ne();return}let e=F.get(x);e?e.card.parentElement===h?ne():(ie(x),n.hidden||eh(e,x,!0)):ae()}function se(){let e=x;e&&eh(F.get(e),e,!1)}function ce(){oe();let e=x;if(!e)return;let t=F.get(e);t&&(eh(t,e,!0),Lx(e))}return rt(()=>{let e=x?F.get(x):null;e&&(f.textContent=tt(e))}),ne(),{el:n,show:ie,clear:ae,refresh:oe,reveal:ce,unview:se,getSessionId:()=>x}}var qT=`board`,JT=`terminal`,YT=`changes`,XT=Object.freeze({[YT]:JT}),ZT=Object.freeze([{id:qT,label:`Focus`,glyph:`▤`},{id:JT,label:`Terminal`,glyph:`▸`}]),QT=[],$T=new Map,K=null,eE=new Map,tE=new Map,nE=new Map,rE=null,q=null,iE=null,aE=null,oE=null,sE=null,cE=new Map,lE=new Set,uE={},dE=!1,fE=120,pE=0,mE=0,J=0,hE=null;function gE(){pE=0,mE=0}function _E(){let e=window.visualViewport;K&&(!dE||!e?K.removeAttribute(`data-keyboard`):(K.style.setProperty(`--phone-vh`,`${e.height}px`),K.style.setProperty(`--phone-vv-top`,`${e.offsetTop}px`),e.width!==mE&&(mE=e.width,pE=0),pE=Math.max(pE,e.height),pE-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=k(`button`,n);i.type=`button`;let a=k(`span`,`phone-nav-glyph`,t);a.setAttribute(`aria-hidden`,`true`),i.append(a,k(`span`,`phone-nav-label`,e));let o=k(`span`,r);return o.setAttribute(`aria-hidden`,`true`),o.hidden=!0,i.appendChild(o),i}function yE(e){return e?.querySelector(`.phone-nav-dot`)||null}function bE(e,t){e&&(e.hidden=!t,typeof t==`string`&&(e.dataset.attention=t),typeof t!=`string`&&delete e.dataset.attention)}function xE(){let e=[];for(let t of QT){if(lE.has(t.id))continue;let n=nE.get(t.id)||!1;e.push(n),bE(yE(cE.get(t.id)),n)}bE(yE(oE),Nn(e))}function SE(){let e=k(`div`,`phone-nav-more-menu`);e.hidden=!0;for(let t of QT){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=lE.has(t.id),n.addEventListener(`click`,()=>{CE(!1),UE(t.id)}),cE.set(t.id,n),e.appendChild(n)}return e}function CE(e){sE&&oE&&(sE.hidden=!e,oE.setAttribute(`aria-expanded`,String(e)))}function wE(){return!!sE&&!sE.hidden}function TE(){let e=k(`nav`,`phone-nav`);e.setAttribute(`aria-label`,`Screens`);for(let t of ZT){let n=vE(t.label,t.glyph);n.dataset.screen=t.id,n.addEventListener(`click`,()=>UE(t.id)),eE.set(t.id,n),e.appendChild(n)}return oE=vE(`More`,`⋯`),oE.setAttribute(`aria-expanded`,`false`),oE.addEventListener(`click`,()=>CE(!wE())),e.appendChild(oE),sE=SE(),e.appendChild(sE),e}function EE(e,t,n){let r=k(`section`,`phone-screen`);return r.dataset.screen=e,r.setAttribute(`aria-label`,t),r.hidden=!0,n&&r.appendChild(n),tE.set(e,r),r}function DE(){if(K)return;rE=AT({onSelectSession:kE}),ot((e,t)=>{dE&&rE?.renderActivity(e,t)}),q=KT({onBack:()=>UE(qT),onShowChanges:()=>UE(YT)}),iE=k(`div`,`phone-review`);let e=k(`div`,`phone-screens`),t={[qT]:rE.el,[JT]:q.el};for(let n of ZT)e.appendChild(EE(n.id,n.label,t[n.id]));e.appendChild(EE(YT,`Changes`,OE(iE)));for(let t of QT){let n=k(`div`,`phone-panel phone-${t.id}`);$T.set(t.id,n),e.appendChild(EE(t.id,t.label,n))}K=k(`div`,`phone-shell`),K.id=`phone-shell`,K.append(e,TE()),document.body.appendChild(K),xE(),window.visualViewport?.addEventListener(`resize`,_E),window.visualViewport?.addEventListener(`scroll`,_E),window.addEventListener(`popstate`,RE),document.addEventListener(`click`,e=>{wE()&&sE&&oE&&e.target instanceof Node&&(sE.contains(e.target)||oE.contains(e.target)||CE(!1))}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&wE()&&CE(!1)})}function OE(e){let t=k(`div`,`phone-changes-screen`),n=k(`header`,`phone-topbar phone-changes-bar`),r=k(`button`,`phone-back`,`‹`);return r.type=`button`,r.setAttribute(`aria-label`,`Back to terminal`),r.addEventListener(`click`,()=>UE(JT)),aE=k(`span`,`phone-changes-session`),n.append(r,k(`span`,`phone-changes-title`,`Changes`),aE),t.append(n,e),t}function kE(e){if(F.has(e)){if(!rE||!q)throw Error(`Phone shell is not built`);xi(e,`dormant-fallback`),Si(e),q.show(e),UE(JT)}}function AE(e){return XT[e]??e}function jE(e,t){return t?{glimmervoidScreen:e,glimmervoidNested:!0}:{glimmervoidScreen:AE(e)}}function ME(e){let t=e?.glimmervoidScreen;return typeof t==`string`?t:null}function NE(e){return ME(e)?e.glimmervoidNested===!0?2:1:0}function PE(e){return e===qT?0:XT[e]||uE.canGoBack?.(e)?2:1}function FE(e,t){let n=t?e:AE(e);return ME(history.state)===n&&NE(history.state)===(t?2:1)}function IE(){if(!dE||hE!==null)return;let e=L.snapshot().phoneScreen||qT,t=PE(e);if(J>t){hE=location.href,history.go(t-J),J=t;return}let n=J===2;J>0&&!FE(e,n)&&history.replaceState(jE(e,n),``),J===0&&t>0&&(history.pushState(jE(e,!1),``),J=1),J===1&&t===2&&(history.pushState(jE(e,!0),``),J=2)}function LE(){let e=ME(history.state);return e&&VE(e)?(J=NE(history.state),e):(e&&history.replaceState(null,``),J=0,qT)}function RE(e){if(!dE)return;if(hE!==null){history.replaceState(history.state,``,hE),hE=null,IE();return}let t=ME(e.state),n=t&&VE(t)?t:qT;J=NE(e.state);let r=L.snapshot().phoneScreen;J<2&&n===r&&uE.canGoBack?.(r)&&uE.onBack?.(r),BE(n),IE()}function zE(e,t){for(let[n,r]of e)n===t?r.setAttribute(`aria-current`,`page`):r.removeAttribute(`aria-current`)}function BE(e){if(!oE||!q)throw Error(`Phone shell is not built`);L.dispatch(`setPhoneScreen`,e),CE(!1),HE();for(let[t,n]of tE)n.hidden=t!==e;uE.onScreenShown?.(e),zE(eE,AE(e));let t=cE.has(e);t&&oE.setAttribute(`aria-current`,`page`),t||oE.removeAttribute(`aria-current`),zE(cE,e),e===JT?q.reveal():q.unview()}function VE(e){return tE.has(e)&&!lE.has(e)}function HE(){if(!aE||!q)return;let e=q.getSessionId(),t=e?F.get(e):null,n=t?st(t):``;aE.textContent=n,aE.title=n}function UE(e){K&&VE(e)&&(BE(e),IE())}function WE(e){QT.sort((t,n)=>e.indexOf(t.id)-e.indexOf(n.id)),sE?.append(...QT.flatMap(e=>cE.get(e.id)??[]))}function GE(e){uE=e||{},QT=uE.panels||[]}function KE({sessionId:e,linkedScreenId:t}={}){if(dE)return;if(DE(),!K||!rE||!q)throw Error(`Phone shell is not built`);dE=!0,K.hidden=!1;for(let e of uE.headerControls||[])Ee(e,rE.topBarEl);O_(iE);for(let e of QT)Ee(e.el,$T.get(e.id)),e.el.hidden=!1;_E(),e&&q.show(e);let n=LE();ZE(),t&&VE(t)?UE(t):e&&n===qT?UE(JT):(BE(n),IE())}function qE(){if(dE){if(!K||!q)throw Error(`Phone shell is not built`);dE=!1,q.clear(),O_(null);for(let e of QT)_e(e.el);for(let e of uE.headerControls||[])_e(e);CE(!1),K.hidden=!0,K.removeAttribute(`data-keyboard`),gE(),J>0&&history.go(-J),J=0,hE=null}}function JE(e){return!dE||!rE||!q||!F.has(e)?!1:(kE(e),dx(e))}function YE(){return dE}function XE(){return dE&&q?q.getSessionId():null}function ZE(){if(!dE)return;if(!rE||!q)throw Error(`Phone shell is not built`);nD(),rE.refresh(),q.refresh(),HE(),AE(L.snapshot().phoneScreen||qT)===JT&&!q.getSessionId()&&UE(qT);let e=yE(eE.get(qT));e&&(e.hidden=rE.getAttentionCount()===0)}function QE(e){return dE?(kE(e),!0):!1}function $E(e){return!dE||!VE(e)?!1:(UE(e),!0)}function eD(e,t){t&&lE.delete(e),t||lE.add(e);let n=cE.get(e);n&&(n.hidden=!t);let r=tE.get(e);r&&!t&&(r.hidden=!0),xE(),!t&&dE&&L.snapshot().phoneScreen===e&&UE(qT)}function tD(e,t){nE.set(e,typeof t==`string`&&t?t:t===!0),xE()}function nD(){if(!q)throw Error(`Phone shell is not built`);if(q.getSessionId())return;let e=Ci();e&&(q.show(e),Si(e,{rememberFocus:!1}))}var rD={MERGE:`a merge commit`,SQUASH:`squash and merge`,REBASE:`rebase and merge`},iD=new Set([`FAILURE`,`ERROR`]);function aD(e){return rD[e]}function oD(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&&iD.has(e.checks.state)?`Checks are failing`:e.stage===`ready`?null:`Not ready to merge yet`:`Closed`}function sD(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 cD(e){let t=ke.parse({...e,key:`${e.repo}#${e.number}`,stage:`unknown`});return{...t,stage:sD(t)}}var lD=[`Needs you`,`Waiting`,`Ready to merge`,`Drafts`,`Merged today`],uD=[`Ready to merge`,`Needs you`,`Waiting`,`Drafts`,`Merged today`],dD={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`},pD={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`},mD={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 hD(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 gD(e){return lD[e.rows.reduce((e,{pr:t})=>Math.min(e,lD.indexOf(dD[t.stage])),lD.length-1)]}function _D(e){let t=new Map(lD.map(e=>[e,{title:e,prs:[],rows:[]}]));for(let n of hD(e)){let e=t.get(gD(n));if(e)for(let t of n.rows)e.rows.push(t),e.prs.push(t.pr)}return uD.flatMap(e=>t.get(e)??[])}function vD(e){return fD[e]}function yD(e){return pD[e]}function bD(e){return mD[e]}function xD(e,t){return e.flatMap(e=>{let n=t(e.key);if(!n)return[];let r=e.key.slice(0,e.key.lastIndexOf(`#`));return[{...cD({...n,repo:r}),...e}]})}function SD(e){let t=new Map;for(let n of e)for(let e of n.links){let r=De(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 CD(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 wD=3;function TD(e){if(e.length===1)return{message:`Merged ${e[0].key}`,detailLines:[e[0].title]};let t=e.slice(0,wD).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 ED(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:cD(n).stage}:e};return{...e,drafts:e.drafts.map(n),inFlight:e.inFlight.map(n),queued:e.queued.map(n)}}function DD(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 OD(e){let t=e.viewerThreads;return t!==void 0&&t.total>0&&t.resolved===t.total}function kD(e){return e.status===`posted`&&AD(e)}function AD(e){if(!OD(e)||ee(e))return!1;let t=ND(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 jD(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[DD(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(PD(r).length>0||kD(r)){n.actionable.push(r);continue}let e=(r.status===`ready`||r.status===`stale`||r.status===`error`)&&!FD(r);e&&t.noReviewNeeded.push(r),r.status===`ready`&&!e&&n[DD(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 MD(e,t){return e.commit===t?e.isViewer||T.has(e.state):!1}function ND(e){return e.liveHead??e.reviewedHead}function PD(e){return(e.threads??[]).filter(e=>!e.isNit&&!e.isResolved)}function FD(e){return PD(e).length>0?!0:ee(e)?!1:AD(e)?!0:!(e.githubReviews??[]).some(t=>MD(t,ND(e)))}function ID(e,t){return`${e}#${t}`}var LD=null,RD=null,zD=new Set;function BD(e){for(let t of zD)t(e)}function VD(){RD=ED(LD,Sr),BD({kind:`status`})}function HD(e){zD.add(e)}function UD(){return RD}function WD(){return jD(RD)}function GD(e){let t=s.safeParse(e);t.success?(LD=t.data,VD()):ze(`reviews`,`dropped team-review-status: ${Fe(t.error.issues)}`)}function KD(e){BD({kind:`action-result`,message:e})}function qD(e){BD({kind:`open-session-result`,message:e})}function JD(e){BD({kind:`connection`,isConnected:e})}Cr(VD);var YD=1.2,XD=1.55,ZD=.12,QD=523.25,$D=2,eO=8,Y=(e,t,n)=>({semitone:e,startBeat:t,beats:n}),tO={melody:[Y(7,4,.5),Y(11,4.5,.5),Y(12,5,3)],bass:[Y(-5,4,1),Y(-12,5,3)]},nO=[{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,...tO.melody],bass:[...e.bass,...tO.bass]}));function rO(e,t){return QD*2**((e+t)/12)}function iO(e,t){let n=(e,n,r)=>e.map(e=>({frequency:rO(e.semitone,t),startSeconds:XD+e.startBeat*ZD,durationSeconds:e.beats*ZD,waveform:n,gain:r}));return[...n(e.melody,`square`,.2),...n(e.melody,`triangle`,.5),...n(e.bass,`triangle`,.6)]}var aO=[{frequency:220,endFrequency:880,startSeconds:0,durationSeconds:.32,waveform:`triangle`,gain:.25},{frequency:160,endFrequency:45,startSeconds:YD,durationSeconds:.28,waveform:`sine`,gain:1},{frequency:1400,endFrequency:380,startSeconds:YD,durationSeconds:.06,waveform:`square`,gain:.12}];function oO(e){let t=nO[e%nO.length],n=Math.min(e*$D,eO);return{peakGain:.1,tones:[...aO,...iO(t,n)]}}function sO(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 cO(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 lO=.6,uO=.25,dO=1.6;function fO(e){return Math.min(lO+e*uO,dO)}var pO=[`var(--accent)`,`var(--state-running)`,`var(--state-idle)`,`var(--state-waiting)`,`var(--state-failed)`];function mO(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`,pO[e%pO.length]]]}var hO=`<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>`,gO=`<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 _O(){let e=A(`div`,`merge-bullseye-target`,hO);return e.append(k(`span`,`merge-bullseye-ripple`)),e}function vO(){let e=k(`div`,`merge-bullseye-dart-drift`),t=k(`div`,`merge-bullseye-dart-arc`),n=k(`div`,`merge-bullseye-dart-aim`);return n.append(A(`div`,`merge-bullseye-dart`,gO)),t.append(n),e.append(t),e}function yO(){let e=k(`div`,`merge-bullseye-range`),t=k(`div`,`merge-bullseye-track`);return t.append(vO()),e.append(_O(),t),e}var bO={title:`BULLSEYE!`,buildScene:yO},xO=6,SO=30,CO=-14,wO=16;function TO(e=Math.random){return[[`--crosshair-start-left`,`${X(xO,SO,e)}%`],[`--crosshair-start-offset-y`,`${X(CO,wO,e)}px`]]}var EO=`<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>`,DO=`<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>`,OO=`<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M3 3L8 8M21 3L16 8M3 21L8 16M21 21L16 16"/></svg>`;function kO(){let e=k(`div`,`merge-headshot-sweep`);ue(e,TO());let t=k(`div`,`merge-headshot-aim`);t.append(A(`div`,`merge-headshot-crosshair`,DO));let n=k(`div`,`merge-headshot-bob`);return n.append(t,A(`div`,`merge-headshot-hitmarker`,OO)),e.append(n),e}function AO(){let e=k(`div`,`merge-headshot-range`),t=k(`div`,`merge-headshot-track`);return t.append(kO()),e.append(A(`div`,`merge-headshot-target`,EO),t),e}var jO={title:`HEADSHOT!`,buildScene:AO},MO=[`10`,`J`,`Q`,`K`,`A`],NO=160,PO=19,FO=5,IO=9,LO=780,RO=70,zO=70,BO=35;function VO(e){let t=MO.length-1,n=e-t/2;return{offsetPx:n*PO,titleSpreadFraction:n/t,tiltDegrees:n*FO,bottomPx:IO-n**2,dealLeadMs:LO-e*RO,flipLeadMs:NO+(t-e)*zO,waveDelayMs:e*BO}}function HO(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 UO(){return[[`--card-flip-ms`,`${NO}ms`]]}var WO=`<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 GO(e,t){let n=k(`div`,`merge-flush-deal`);ue(n,HO(VO(t)));let r=k(`div`,`merge-flush-hop`),i=k(`div`,`merge-flush-card`),a=k(`div`,`merge-flush-face`);return a.append(k(`span`,`merge-flush-rank`,e)),a.insertAdjacentHTML(`beforeend`,WO),i.append(k(`div`,`merge-flush-back`),a),r.append(i),n.append(r),n}function KO(){let e=k(`div`,`merge-flush-table`);return ue(e,UO()),e.append(...MO.map(GO)),e}var qO={title:`ROYAL FLUSH!`,buildScene:KO},JO=[1,2,3,4],YO=14,XO=3,ZO=3,QO=10,$O=20,ek=2,tk=28,nk=18,rk=.01,ik=1.5,ak=2200,ok=1,sk=120,ck=.35,lk=15,uk=105,dk=4,fk=65,pk=145;function mk(e){return Math.round(e/(Math.PI*nk)*360)}function hk(e){return $O-e*ek}function gk(e){return e.rowIndex*YO+e.depthIndex*XO}function _k(e,t,n){return Array.from({length:n},(r,i)=>e+(t-e)*i/(n-1))}function vk(){return JO.flatMap((e,t)=>Array.from({length:e},(n,r)=>({rowIndex:t,depthIndex:e-1-r})))}function yk(e,t){let n=cO(_k(lk,uk,e),t),r=cO(_k(fk,pk,e),t);return n.map((e,n)=>({angleDegrees:e+X(-4,dk,t),depthScalePercent:Math.round(r[n])}))}function bk(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=sO(o),l=sO(o+s),u=c+l,d=X(540,1080,n),f=a>=0?1:-1,p=gk(e);return{depthIndex:e.depthIndex,launchAngleDegrees:t.angleDegrees,distanceFromHeadPinPx:p,layer:hk(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/ck)}}function xk(e=Math.random){let t=vk(),n=yk(t.length,e);return t.map((t,r)=>bk(t,n[r],e))}function Sk(e){return[[`--pin-left`,`${e.distanceFromHeadPinPx}px`],[`--pin-raise`,`${e.depthIndex*ZO}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 Ck(){return hk(ik)}function wk(){return Math.max(...vk().map(gk))+QO}function Tk(){let e=wk(),t=tk+e+nk-ok;return[[`--ball-follow-px`,`${sk}px`],[`--ball-follow-ms`,`${Math.round(sk/ck)}ms`],[`--ball-follow-spin`,`${mk(sk)}deg`],[`--ball-size`,`${nk}px`],[`--ball-approach-spin`,`${ak}deg`],[`--ball-impact-inset`,`${t}px`],[`--ball-layer`,String(Ck())],[`--rack-right`,`${tk}px`],[`--rack-width`,`${e}px`],[`--pin-width`,`${QO}px`]]}function Ek(e=Math.random){return e()>=rk?null:_t[Math.floor(e()*_t.length)].sprite}var Dk=`<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 Ok(e){let t=k(`span`,`merge-strike-pin`);return t.append(A(`span`,`merge-strike-pin-arc`,Dk)),ue(t,Sk(e)),t}function kk(){let e=Ek();if(!e)return k(`span`,`merge-strike-ball`);let t=k(`span`,`merge-strike-ball is-animal`);return t.append(k(`span`,`nyan-sprite ${e}`)),t}function Ak(){let e=k(`div`,`merge-strike-lane`);ue(e,Tk());let t=k(`div`,`merge-strike-rack`);t.append(...xk().map(Ok));let n=k(`div`,`merge-strike-track`);return n.append(kk()),e.append(t,n),e}var jk={title:`STRIKE!`,buildScene:Ak},Mk=20,Nk=92,Pk=23,Fk=7,Ik=-40;function Lk(){let e=sO(72),t=sO(69),n=780*t/1e3;return{launchHeightPx:Mk,peakHeightPx:Nk,heightThroughRimPx:Pk,heightLeavingNetPx:Fk,heightOutOfCardPx:Ik,riseMs:e,fallToRimMs:t,speedThroughRimPxPerSecond:n,netCatchMs:Math.round(32/n*1e3),dropMs:sO(47)}}function Rk(e=Lk()){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 zk=`<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>`,Bk=`<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 Vk(){let e=k(`div`,`merge-swish-ball-drift`),t=k(`div`,`merge-swish-ball-arc`);return t.append(k(`span`,`merge-swish-ball`)),e.append(t),e}function Hk(){let e=k(`div`,`merge-swish-court`);ue(e,Rk());let t=k(`div`,`merge-swish-track`);return t.append(Vk()),e.append(A(`div`,`merge-swish-hoop-back`,zk),t,A(`div`,`merge-swish-hoop-front`,Bk)),e}var Uk=[jk,{title:`SWISH!`,buildScene:Hk},bO,jO,qO],Wk=48,Gk=5600,Kk=20,qk=null,Jk=[],Yk=null,Xk=!1,Zk=0;function Qk(e){let t=k(`span`,`merge-confetti-piece`),n=k(`span`,`merge-confetti-arc`);return n.append(k(`span`,`merge-confetti-paper`)),t.append(n),ue(t,mO(e)),t}function $k(e){let t=k(`p`,`merge-celebration-title`);return t.setAttribute(`aria-hidden`,`true`),Array.from(e).forEach((e,n)=>{let r=k(`span`,`merge-celebration-letter`,e);r.style.setProperty(`--letter-delay`,`${n*45}ms`),t.append(r)}),t}function eA(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 tA(e){let t=k(`div`,`merge-celebration-scene`);return t.setAttribute(`aria-hidden`,`true`),t.append(e.buildScene()),t}function nA(){return Uk[Math.floor(Math.random()*Uk.length)]}function rA(e){if(xt())try{ed(oO(e))}catch{}}function iA(e){let t=k(`ul`,`merge-celebration-details`);for(let n of e)t.append(k(`li`,`merge-celebration-detail`,n));return t}function aA(e,t,n){qk?.remove(),rA(n);let r=k(`div`,`merge-celebration`);r.setAttribute(`role`,`status`);let i=k(`div`,`merge-celebration-card`),a=k(`div`,`merge-celebration-stage`),o=$k(t.title),s=tA(t);a.append(o,k(`p`,`merge-celebration-message`,e.message),iA(e.detailLines),s);let c=k(`div`,`merge-confetti`);c.style.setProperty(`--confetti-scale`,String(fO(n)));for(let e=0;e<Wk;e+=1)c.append(Qk(e));i.append(c,a),r.append(i),document.body.append(r),eA(a,o,s),qk=r,window.setTimeout(()=>{r.remove(),qk===r&&(qk=null)},Gk)}function oA(e){return Xk?`playing`:e?`queued`:`empty`}function sA(){if(!Yk)return;let e=Jk.length>0;Yk.tray.dataset.state=oA(e),Yk.count.textContent=e?String(Jk.length):``,Yk.button.disabled=Xk||!e}function cA(){let e=Jk.shift();Xk=e!==void 0,sA(),e&&(aA(e.text,e.scene,Zk),Zk+=1,window.setTimeout(cA,Gk))}function lA(e,t,n){Yk={tray:e,button:t,count:n},t.addEventListener(`click`,()=>{Zk=0,cA()}),sA()}function uA(e,t=nA()){Jk.push({text:e,scene:t}),Jk.length>Kk&&Jk.shift(),sA()}var dA=null,fA=null,pA=new Set,mA=new Map,hA=!1,gA=new Set;function _A(e){for(let t of gA)t(e)}function vA(){return[...mA].flatMap(([e,t])=>{let n=F.get(e);return!n||t.length===0?[]:[{id:e,title:st(n)||e,links:t}]})}function yA(){let e=xD(dA?.prs??[],Sr),t=CD(fA,e);fA=e,CA(t),_A({kind:`prs`})}function bA(){hA||(hA=!0,queueMicrotask(()=>{hA=!1,yA()}))}function xA(e){gA.add(e)}function SA(){return{prs:xD(dA?.prs??[],Sr),status:dA,sessionsByPrKey:SD(vA())}}function CA(e){let t=e.filter(e=>!pA.has(e.key));if(t.length!==0){for(let e of t)pA.add(e.key);uA(TD(t))}}function wA(e){mA=e,bA()}function TA(){_A({kind:`session-state`})}function EA(e){let t=p.safeParse(e);t.success?(dA=t.data,yA()):ze(`reviews`,`dropped my-prs-status: ${Fe(t.error.issues)}`)}function DA(e){_A({kind:`merge-result`,message:e})}function OA(e){_A({kind:`connection`,isConnected:e})}Cr(bA);var kA=[{id:`all`,label:`All`},{id:`reviewing`,label:`Reviewing`},{id:`mine`,label:`Mine`}],AA={turn:`Your turn`,working:`Agent working`,waiting:`Waiting on others`,aside:`Set aside`},jA=[`turn`,`working`,`waiting`,`aside`],MA={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`},NA={directAsk:0,followUp:1,mineNeedsYou:2,teamReady:3,mineReady:4,failedReview:5,staleReview:6};function PA(e,t){return{source:`team`,key:`team:${e.key}`,prKey:De(e),kind:t,review:e}}function FA(e){return e.status===`ready`?DD(e).band===`blocking-others`?NA.directAsk:NA.teamReady:NA.followUp}function IA(e){return[...e.ready.map(e=>({item:PA(e,`ready`),group:`turn`,turnRank:FA(e)})),...e.attention.map(e=>({item:PA(e,`attention`),group:`turn`,turnRank:e.status===`error`?NA.failedReview:NA.staleReview})),...e.inReview.map(e=>({item:PA(e,`inReview`),group:`working`,turnRank:0})),...e.queued.map(e=>({item:PA(e,`queued`),group:`working`,turnRank:0})),...e.noReviewNeeded.map(e=>({item:PA(e,`settled`),group:`waiting`,turnRank:0})),...e.posted.map(e=>({item:PA(e,`posted`),group:`waiting`,turnRank:0})),...e.discarded.map(e=>({item:PA(e,`discarded`),group:`aside`,turnRank:0}))]}function LA(e,t){let n=MA[e.stage];return n===`turn`&&e.stage!==`ready`&&t.has(De(e))?`working`:n}function RA(e,t){return _D(e).flatMap(e=>e.rows).map(({pr:e,parentKey:n})=>({item:{source:`mine`,key:`mine:${e.key}`,prKey:De(e),pr:e,stackedOn:n},group:LA(e,t),turnRank:e.stage===`ready`?NA.mineReady:NA.mineNeedsYou}))}function zA(e,t,n){let r=[...IA(e),...RA(t,n)];return jA.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:AA[e],items:n.map(e=>e.item)}})}function BA(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 VA(e){return e.find(e=>e.id===`turn`)?.items??[]}function HA(e,t){return t?e.flatMap(e=>e.items).find(e=>e.key===t)??null:null}function UA(e,t){return HA(e,t)?t:e.flatMap(e=>e.items)[0]?.key??null}function WA(e){return e.source===`mine`?ID(e.pr.repo,e.pr.number):ID(e.review.repo,e.review.number)}function GA(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 KA(e){return VA(e).map(e=>({id:e.key,kind:GA(e),name:WA(e)}))}function qA(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 JA(e,t){return KA(e).filter(e=>e.id!==t)}function YA({capturedOrder:e,actedKey:t,groups:n}){let r=VA(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 XA(e,t){let n=VA(e).map(e=>e.key),r=t?n.indexOf(t):-1;return r===-1?``:`${r+1} of ${n.length} in Your turn`}function ZA(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 QA(e){return VA(e).map(ZA)}function $A({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 ej(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 tj(e){return new Set(e.flatMap(e=>e.items).map(e=>(e.source===`mine`?e.pr.repo:e.review.repo).toLowerCase())).size>1}function nj(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 rj=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 ij(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`:rj.get(e.key)??null}function aj(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 oj=[],sj=null,cj=null,lj=null,uj=!1,dj=null,fj=Mt(),pj=tn(),mj=new Set(pj.split(`|`).filter(Boolean)),hj=new Set,gj=new Set;function _j(e){for(let t of gj)t(e)}function vj(e){e!==fj&&(fj=e,Ct(e))}function yj(e){e!==pj&&(pj=e,mj=new Set(e.split(`|`).filter(Boolean)),ht(e))}function bj(){return UD()!==null&&SA().status!==null}function xj(){if(!bj())return;let e=$A({turnEntries:QA(oj),acknowledged:fj,unseen:pj,isLooking:cj?.isLooking()??!1});vj(e.acknowledged),yj(e.unseen),dj?.(e.isShown)}function Sj(e){lj=e,_j({kind:`reveal`})}function Cj(e){gj.add(e)}function wj(e){cj=e,xj()}function Tj(){let{prs:e,sessionsByPrKey:t}=SA();return oj=zA(WD(),e,new Set(t.keys())),xj(),oj}function Ej(){bj()&&(vj(Se(QA(oj))),xj())}function Dj(e){dj=e,xj()}function Oj(){return pj}function kj(e){return mj.has(e)}function Aj(e){return mj.has(e)?(yj(Se([...mj].filter(t=>t!==e))),!0):!1}function jj(e){sj=e}function Mj(){return sj}function Nj(){let e=lj;return lj=null,e}function Pj(e){if(e!==uj){uj=e;for(let e of hj)e()}}function Fj(e){hj.add(e)}function Ij(){return document.documentElement.dataset.layout===`phone`&&uj}function Lj(){Ij()&&_j({kind:`return-to-queue`})}function Rj(){let e=JA(oj,cj?.selectedKey()??null)[0]?.id??null;return e?(Sj(e),!0):!1}function zj(e){let t=oj.flatMap(e=>e.items).find(t=>t.prKey===e.toLowerCase());return!t||!sj?.openReviews()?!1:(Sj(t.key),Ej(),!0)}HD(e=>{e.kind===`status`&&Tj()}),xA(e=>{e.kind===`prs`&&Tj()});var Bj={OPEN:0,MERGED:1,CLOSED:2};function Vj(e){return e?Bj[e.state]:Bj.OPEN}function Hj(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:ic(void 0)};let i=yD(t.stage);return{key:n,text:r,url:t.url,hoverText:`${e.repo}: ${t.title} (${vD(t.stage)})`,look:{icon:bD(t.stage),tone:i},tier:ic(i)}}function Uj(e,t){let n=e.map(e=>{let n=t(De(e));return{link:e,pr:n?cD(n):void 0}});return n.sort((e,t)=>Vj(e.pr)-Vj(t.pr)||t.link.linkedAt-e.link.linkedAt),n.map(({link:e,pr:t})=>Hj(e,t))}var Wj=new Map;function Gj(e){return document.querySelectorAll(`[data-pr-chips-for="${CSS.escape(e)}"]`)}function Kj(e){return Uj(Wj.get(e)??[],Sr).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:()=>{zj(e.key)||Nc(e.url)}}))}function qj(e,t){let n=Zc(e,e),r=k(`button`,`session-pr-chip-unlink`);r.append(mn(xn)),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(),mr({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:()=>{Ti(t,{type:`unlink-session-pr`,id:t,key:e.key})}})});let i=k(`span`,`session-pr-chip-item`);return i.append(n,r),i}function Jj(e,t){e.dataset.prChipsFor=t,nl(e,Kj(t),e=>qj(e,t))}function Yj(e){for(let t of e){let e=t.dataset.prChipsFor;e&&Jj(t,e)}ll()}function Xj(e,t){let n=d.shape.links.safeParse(t??[]);Wj.set(e,n.success?n.data:[]),Yj(Gj(e)),wA(Wj)}function Zj(e){Wj.delete(e),wA(Wj)}Cr(()=>Yj(document.querySelectorAll(`[data-pr-chips-for]`)));var Qj=null,$j=new Set;function eM(){Qj?.setAttribute(`aria-pressed`,String(!xt()))}function tM(e){vt(e),eM();for(let t of $j)t(e)}function nM(e){$j.add(e)}function rM(e){Qj=e,eM(),e.addEventListener(`click`,()=>tM(!xt()))}var iM={mine:`Mining merged pull requests.`,run:`Starting the run.`,cancel:`Cancelling the run.`},aM=null,oM=null,sM=!0,cM=new Map,lM=new Map,uM=new Set;function dM(){for(let e of uM)e()}function fM(e){uM.add(e)}function pM(){return{status:aM,isServerConnected:sM,pendingActionBySuite:cM,outcomeBySuite:lM}}function mM(e){oM=e}function hM(e,t){oM?.({type:`benchmark-action`,requestId:Ye(`benchmark`),suiteId:e,action:t})===!0?(cM.set(e,t),lM.set(e,iM[t]),dM()):(lM.set(e,l),dM())}function gM(e){if(sM=e,!e){for(let e of cM.keys())lM.delete(e);cM.clear()}dM()}function _M(e){aM=e,dM()}function vM(e){cM.delete(e.suiteId);let t=aM?.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.`};lM.set(e.suiteId,e.ok?n[e.action]:e.error||`The server refused the action.`),dM()}var yM=45e3,bM=`The server did not answer within ${yM/1e3} s.`,xM=`Select the issue to load its description.`,SM=null,CM=null,wM=new Map,TM=null,EM=new Map,DM=new Map,OM=new Map,kM=new Map,AM=new Map,jM=new Set;function MM(e){for(let t of jM)t(e)}function NM(e){return`${e.key}:${e.updatedAt}`}function PM(e){let t=EM.get(e);t&&(EM.delete(e),DM.set(t.issueKey,{text:bM,tone:`error`}),MM(`detail`))}function FM(e){let t=EM.get(e);return t?(clearTimeout(t.timeoutHandle),EM.delete(e),t):null}function IM(){return{latestStatus:CM,issueByKey:wM,selectedKey:SM}}function LM(e){jM.add(e)}function RM(e){SM=e}function zM(e){return[...EM.values()].some(t=>t.issueKey===e.key)}function BM(e){return DM.get(e.key)}function VM(e){let t=NM(e),n=kM.get(t);return n===``?`No description.`:n??AM.get(t)??`Loading description.`}function HM(e){let t=NM(e);if(kM.has(t)||[...OM.values()].some(e=>e.cacheKey===t))return;let n=Ye(`issue-detail`);AM.delete(t),TM?.({type:`issue-detail`,requestId:n,repo:e.repo,issueNumber:e.number})?OM.set(n,{cacheKey:t,timeoutHandle:setTimeout(()=>{OM.delete(n),AM.set(t,`${bM} ${xM}`),MM(`detail`)},yM)}):AM.set(t,`${l} ${xM}`)}function UM(e){let t=e.projectId;if(!t||zM(e))return;let n=Ye(`open-issue-session`);TM?.({type:`open-issue-session`,requestId:n,projectId:t,repo:e.repo,issueNumber:e.number})?(EM.set(n,{issueKey:e.key,issueNumber:e.number,timeoutHandle:setTimeout(()=>PM(n),yM)}),DM.set(e.key,{text:`Opening session.`,tone:`busy`}),MM(`detail`)):(DM.set(e.key,{text:l,tone:`error`}),MM(`detail`))}function WM(e){TM?.({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`issues`,action:e}})}function GM(e){TM=e}function KM(){MM(`session-state`)}function qM(e){if(!e){for(let e of EM.values())clearTimeout(e.timeoutHandle),DM.set(e.issueKey,{text:l,tone:`error`});EM.clear();for(let e of OM.values())clearTimeout(e.timeoutHandle),AM.set(e.cacheKey,`${l} ${xM}`);OM.clear(),MM(`status`)}}function JM(e){let t=CM?.issues.find(e=>e.key===SM);CM=e,wM=new Map(e.issues.map(e=>[e.key,e]));let n=e.issues.find(e=>e.key===SM);n&&n.updatedAt!==t?.updatedAt&&HM(n),MM(`status`)}function YM(e){let t=OM.get(e.requestId);t&&(clearTimeout(t.timeoutHandle),OM.delete(e.requestId),e.ok&&e.body!==null&&kM.set(t.cacheKey,e.body),(!e.ok||e.body===null)&&AM.set(t.cacheKey,e.error||`Could not load description. Select the issue to try again.`),MM(`detail`))}function XM(e){if(typeof e.requestId!=`string`)return;let t=FM(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`;DM.set(n,{text:`Session "${r}" ${a}.${i}`,tone:`ok`});let o=CM?.issues.find(e=>e.key===n);o&&typeof e.sessionId==`string`&&(o.sessionId=e.sessionId),MM(`status`);return}let r=typeof e.error==`string`&&e.error?e.error:`Could not open session.`;DM.set(n,{text:r,tone:`error`}),MM(`detail`)}var ZM=null,QM=null,$M=null,eN=()=>!1,tN=new Set,nN=new Set,rN=ve({getAck:Pt,setAck:Zt,signature:()=>o({posthog:ZM}),isLooking:()=>eN()});function iN(e){for(let t of nN)t(e)}function aN(){QM?.(rN.refresh())}function oN(){return{latest:ZM,archivedLocally:tN,traceOpener:$M}}function sN(e){nN.add(e)}function cN(e){eN=e,aN()}function lN(e){tN.add(e)}function uN(){rN.acknowledge(),aN()}function dN(e){QM=e,aN()}function fN(e){$M=e}function pN(e){ZM=e,Te(ZM,tN),iN({kind:`status`}),aN()}function mN(e){let t=Pe(ZM,e.projectId,e.issueId)?.inFlight===!0;x(ZM,e)&&iN({kind:`investigation-activity`,projectId:e.projectId,issueId:e.issueId,wasInFlight:t})}function hN(e){let t=ne(ZM,e);iN({kind:`investigation-finished`,frame:e,isPatched:t}),t&&aN()}var gN=ec({requestPrefix:`session-setup`,dialogClass:`dialog coherence-journal-drawer session-setup-dialog`,titleText:`Session setup`,unavailableLabel:`Session setup unavailable`,timeoutMs:15e3});function _N(e){let t=k(`ul`,`session-setup-list`);return t.append(...e.map(e=>k(`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?[k(`p`,null,t.model)]:[]),n(`Plugins`,t.plugins.map(e=>{let t=k(`div`,`session-setup-plugin`);return t.append(k(`h3`,null,e.name)),e.skills.length>0&&t.append(k(`p`,`session-setup-label`,`Skills`),_N(e.skills)),e.agents.length>0&&t.append(k(`p`,`session-setup-label`,`Agents`),_N(e.agents)),t})),n(`MCP servers`,t.mcpServers.length>0?[_N(t.mcpServers)]:[]),n(`Hooks`,[...t.hookEvents.map(e=>{let t=k(`p`,`session-setup-hook`);return t.append(k(`span`,null,e.event),k(`span`,`session-setup-label`,`${e.runCount} runs`)),t}),...t.hookCommands.map(e=>k(`pre`,`coherence-command`,e))]),n(`Skills`,t.skills.length>0?[_N(t.skills)]:[]),n(`Agents`,t.agents.length>0?[_N(t.agents)]:[])}function yN(e){let t=k(`p`,`coherence-journal-status`,`Loading session setup`);t.setAttribute(`role`,`status`);let n=k(`div`,`session-setup-sections`);gN.open({sessionId:e,status:t,body:[t,n],parts:{sections:n},buildRequest:t=>({type:`session-setup`,id:e,requestId:t})})}function bN(e){let t=gN.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 xN(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 SN={isVisible:document.visibilityState===`visible`,isFrozen:!1,isProbing:!1,isReplacing:!1},CN=document.visibilityState===`visible`?null:Date.now(),wN=null,TN=null;function EN(){wN!==null&&window.clearTimeout(wN),wN=null}function DN(e){EN();let t=Date.now()+e;wN=window.setTimeout(()=>{wN=null,AN({kind:`heartbeat-due`,lateByMs:Date.now()-t})},e)}function ON(){TN!==null&&window.clearTimeout(TN),TN=null}function kN(e){switch(e.kind){case`probe-control`:qe(e.deadlineMs,e.isAnnounced).then(e=>{AN({kind:e?`pong`:`pong-missed`})});return;case`replace-control`:Xe();return;case`close-sockets`:ON(),Ze(),Hm();return;case`reconnect-shown-terminals`:Bm();return;case`hold-input`:Lm();return;case`release-input`:Rm();return;case`schedule-heartbeat`:DN(e.inMs);return;case`cancel-heartbeat`:EN();return}}function AN(e){let t=Ie(SN,e);SN=t.state;for(let e of t.actions)kN(e)}function jN(){if(document.visibilityState!==`visible`){CN=Date.now(),AN({kind:`hidden`});return}let e=CN===null?0:Date.now()-CN;CN=null,AN({kind:`shown`,hiddenForMs:e})}function MN(e){ON(),e===`connecting`?TN=window.setTimeout(()=>{TN=null,AN({kind:`handshake-overdue`})},He):AN({kind:e===`opened`?`control-opened`:`control-closed`})}function NN(){let e=Reflect.get(navigator,`connection`);e instanceof EventTarget&&e.addEventListener(`change`,()=>AN({kind:`network-changed`}))}function PN(){Le(MN),document.addEventListener(`visibilitychange`,jN),document.addEventListener(`freeze`,()=>AN({kind:`frozen`})),document.addEventListener(`resume`,()=>AN({kind:`resumed`})),window.addEventListener(`pagehide`,e=>{e.persisted&&AN({kind:`frozen`})}),window.addEventListener(`pageshow`,e=>{e.persisted&&AN({kind:`resumed`})}),window.addEventListener(`online`,()=>AN({kind:`network-changed`})),NN()}var FN={},IN=null,LN=null,RN=ie,zN=null,BN=!1,VN=null,HN=[],UN=null,WN=()=>null,GN=()=>{},KN=new Set,qN=new Set;function JN(e){for(let t of qN)t(e)}function YN(e){qN.add(e)}function XN(){return FN}function ZN(e){return FN={...FN,...e},FN}function QN(){return{status:IN,journal:LN,request:RN,lastAutoCheckAt:zN,isCheckInFlight:BN,checkSendFailure:VN}}function $N(e){let t=w(RN,e);t!==RN&&(RN=t,JN({kind:`update`,frame:`request`}))}function eP(){$N(j({type:`update-apply`})?`request-sent`:`request-unsent`)}function tP(){zN=Date.now();let e=j({type:`update-check`});BN=e,VN=e?null:l,JN({kind:`update`,frame:`request`})}function nP(e){GN=e}function rP(){GN()}function iP(e){HN=[...e]}function aP(){return HN}function oP(e=null,t=null,n=null){let r=UN!==null&&(UN.sectionId!==null||UN.isLink);e===null&&n===null&&r||(UN={sectionId:e,settingId:t,hashAtRequest:n??location.hash,isLink:n!==null},JN({kind:`activate`}))}function sP(){let e=UN;return UN=null,e}function cP(e){WN=e}function lP(){for(let e of KN)e()}function uP(e){KN.add(e)}function dP(){return Du()&&WN()===`section`}function fP(){dP()&&JN({kind:`return-to-list`})}function pP(e){e&&(FN=e,ti(FN.agentLogins),JN({kind:`broadcast`}))}function mP(){JN({kind:`status`})}function hP(e){mP()}function gP(e){IN=e,BN=!1,VN=null,RN=w(RN,`status-frame`),JN({kind:`update`,frame:`status`})}function _P(e){LN=e,RN=w(RN,`progress-frame`),JN({kind:`update`,frame:`progress`})}function vP(e){if(e.scope!==`update`)return!1;let t=C(e.message),n=RN.requested;return RN=w(RN,`error-frame`,t),BN=!1,n||(VN=t),JN({kind:`update`,frame:`error`}),!0}function yP(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 Z=null,bP=null,xP=null,SP=null,CP=null,wP=null,TP=-1,EP=null,DP={isRightToLeft:!1,arcProgress:0},OP=1,kP=3;function AP(){if(!Z||EP===null)return;let e=qr({viewportWidthPx:document.documentElement.clientWidth,viewportHeightPx:document.documentElement.clientHeight,verticalProgress:EP,...DP});ue(Z,Yr(e,OP,window.devicePixelRatio))}function jP(){wP!==null&&(clearTimeout(wP),wP=null)}function MP(e=un()){return St({isEnabled:e,hasReducedMotion:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,isPhone:Du(),options:Vt()})}function NP(e){e.onanimationend=null,e.style.animation=`none`,SP&&(SP.style.animation=`none`),e.hidden=!0}function PP(e,t){if(!Z||!bP||!xP||!SP||MP())return;let n=Vt();jP();let r=sn(n,TP,Math.random,t);if(NP(Z),!r){wP=setTimeout(()=>PP(!1),1e3);return}EP=r.verticalProgress,DP={isRightToLeft:r.isRightToLeft,arcProgress:r.arcProgress},OP=n.flyingAnimalsScale,AP();let i=_t[r.animalIndex];bP.className=`nyan-sprite ${i.sprite}`,xP.className=`nyan-trail ${i.trail}`,TP=r.animalIndex,CP?.classList.remove(`is-booped`),Z.hidden=!1,Z.offsetWidth,Z.style.animation=`nyan-fly ${r.durationSeconds}s linear`,SP.style.animation=`nyan-trail-hold ${r.durationSeconds}s linear`,e&&(Z.style.animationDelay=`-${r.firstDelaySeconds}s`,SP.style.animationDelay=`-${r.firstDelaySeconds}s`),Z.onanimationend=e=>{Z&&e.target===Z&&(NP(Z),wP=setTimeout(()=>PP(!1),r.gapMs))}}function FP(){CP&&(CP.classList.remove(`is-booped`),CP.offsetWidth,CP.classList.add(`is-booped`))}function IP(e){if(Z&&SP&&e.target===CP)for(let e of[...Z.getAnimations(),...SP.getAnimations()])e.playbackRate=kP}function LP(){if(Z||MP())return;Z=document.createElement(`div`),Z.className=`nyan-flight`,Z.setAttribute(`aria-hidden`,`true`);let e=document.createElement(`div`);e.className=`nyan-trail-window`,SP=document.createElement(`div`),SP.className=`nyan-trail-hold`,xP=document.createElement(`div`),SP.append(xP),e.append(SP),bP=document.createElement(`div`),CP=document.createElement(`div`),CP.className=`nyan-boop`,CP.append(bP),CP.addEventListener(`pointerdown`,FP),CP.addEventListener(`animationend`,IP),Z.append(e,CP),document.body.appendChild(Z),window.addEventListener(`resize`,AP),window.addEventListener(`orientationchange`,AP),PP(!0)}function RP(e){LP(),PP(!1,e)}function zP(){jP(),window.removeEventListener(`resize`,AP),window.removeEventListener(`orientationchange`,AP),Z?.remove(),Z=null,bP=null,xP=null,SP=null,CP=null,TP=-1,EP=null}var BP=!1;function VP(e){let t=document.documentElement;if(BP||(BP=!0,Ou(()=>VP(un())),window.matchMedia(`(prefers-reduced-motion: reduce)`).addEventListener(`change`,()=>VP(un()))),e){if(t.dataset.flyingAnimals=`true`,MP(e)){zP();return}LP()}else delete t.dataset.flyingAnimals,zP()}var HP=`•`.repeat(8),UP=`[^/\\\\\\s"'\`<>:]+`,WP=RegExp(`(?<![\\w./\\\\-])(?:/home/${UP}|/Users/${UP}|[A-Za-z]:[\\\\/]Users[\\\\/]${UP}|/root(?![\\w.-]))`,`g`);function GP(e){let t=Tf(e);if(t.length===0)return e;let n=``,r=0;for(let i of t)n+=e.slice(r,i.start)+HP,r=i.end;return n+e.slice(r)}function KP(e){return e.replace(WP,`~`)}function qP(e){return KP(GP(e))}var JP=`.xterm, input, textarea, script, style, [contenteditable]:not([contenteditable="false"])`,YP=[`title`,`label`],XP=new WeakMap,ZP=new WeakMap,QP=null;function $P(e){let t=e instanceof Element?e:e.parentElement;return!t||t.closest(JP)!==null}function eF(e){let t=e.parentElement?.closest(`option`);return t!=null&&!t.hasAttribute(`value`)}function tF(e,t){if(t&&e===t.masked)return t;let n=qP(e);return n===e?null:{original:e,masked:n}}function nF(e){let t=eF(e)?null:tF(e.data,XP.get(e));t?(XP.set(e,t),e.data!==t.masked&&(e.data=t.masked)):XP.delete(e)}function rF(e,t){let n=e.getAttribute(t),r=ZP.get(e),i=n===null?null:tF(n,r?.get(t));if(!i){r?.delete(t);return}let a=r??new Map;a.set(t,i),ZP.set(e,a),n!==i.masked&&e.setAttribute(t,i.masked)}function iF(e){for(let t of YP)rF(e,t)}function aF(e){return e instanceof Element&&e.matches(JP)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}function oF(e){iF(e);let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,aF);for(let e=t.nextNode();e;e=t.nextNode())e instanceof Text&&nF(e),e instanceof Element&&iF(e)}function sF(e){$P(e)||(e instanceof Text&&nF(e),e instanceof Element&&oF(e))}function cF(e){e instanceof Element&&!$P(e)&&iF(e)}function lF(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&&sF(e);for(let e of n)e.isConnected&&cF(e)}function uF(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);dF(e);for(let e=t.nextNode();e;e=t.nextNode())dF(e)}function dF(e){if(e instanceof Text){let t=XP.get(e);t&&e.data===t.masked&&(e.data=t.original);return}if(!(e instanceof Element))return;let t=ZP.get(e);if(t)for(let[n,r]of t)e.getAttribute(n)===r.masked&&e.setAttribute(n,r.original)}function fF(){if(QP)return;let e=new MutationObserver(t=>{lF(t),e.takeRecords()});oF(document.body),e.observe(document.body,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:YP}),QP=e}function pF(){QP&&(QP.disconnect(),QP=null,uF(document.body),XP=new WeakMap,ZP=new WeakMap)}function mF(e){e?fF():pF()}function hF(){mF(Qo()),es(mF)}function gF(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 _F(e){return typeof e!=`object`||!e||!(`telemetryForcedOff`in e)?!1:e.telemetryForcedOff===!0}function vF(e,t){return t||_F(e)?!1:gF(e)}var yF=2500;function bF({hasSnapshot:e,connectingTerminalCount:t,msSinceConnected:n}){return n<2500&&(!e||t>0)?`wait`:`reveal`}var xF=2e4,SF=null,CF=null,wF={claude:null,codex:null},TF=null,EF=null,DF=null,OF=`all`,kF=!1,AF=null,jF=null,MF=!0,NF=()=>!1,PF=new Set,FF=ve({getAck:Et,setAck:Qt,signature:()=>cb(SF,wF.claude),isLooking:()=>NF()});function IF(e){for(let t of PF)t(e)}function LF(){TF?.(FF.refresh())}function RF(e){kF=e,IF(`refresh-status`),AF&&=(clearTimeout(AF),null),e&&(AF=setTimeout(()=>{AF=null,kF=!1,jF=`Usage did not answer within ${Math.round(xF/1e3)} s. Refresh to try again.`,IF(`refresh-status`)},xF))}function zF(e){let t=Gy.find(t=>t.value===e);return t?t.days:null}function BF(){return{report:SF,sessions:CF,planLimitsByVendor:wF,rangeValue:OF}}function VF(){let e=!MF||!kF&&jF!==null;return MF?kF?{text:`Refreshing`,isPending:!0,hasFailure:e}:{text:jF??``,isPending:!1,hasFailure:e}:{text:SF?`${l} The figures below are from before the connection dropped.`:l,isPending:kF,hasFailure:e}}function HF(e){PF.add(e)}function UF(e){NF=e,LF()}function WF(){FF.acknowledge(),LF()}function GF(e){TF=e,LF()}function KF(e){EF?.({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`usage`,action:e}})}function qF(e){EF=e}function JF(e){OF=e}function YF({force:e=!1}={}){if(!EF)return;DF=Ye(`usage`);let t={type:`request-usage-report`,requestId:DF};e&&(t.force=!0);let n=zF(OF);n!==null&&(t.days=n),jF=null,RF(!0),!EF(t)&&(jF=l,RF(!1))}function XF(e){MF=e,IF(`refresh-status`)}function ZF(e){CF=e,IF(`sessions`)}function QF(e){let t=e;wF={...wF,[ab(t)]:t},IF(`plan-limits`),LF()}function $F(e){mb(e,DF)&&(jF=null,RF(!1),SF=e,IF(`report`),LF())}function eI(){let e=SF?.pricing||(CF?{source:CF.pricingSource}:null),t=ub(e?.fetchedAt),n=[lb(e,t!==null&&t>0?at(t):``)],r=pb(SF);r&&n.push(r);let i=fb(SF?.scan);return i&&n.push(i),n}var tI={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},nI=[{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 rI(e,t){return t.isPhoneShellActive?t.phoneScreen===e:t.activeView===e}function iI(e,t){return e.flatMap(e=>!e.gate||!(`fromSettings`in e.gate)?[]:[{view:e,isAvailable:e.gate.fromSettings(t)}])}function aI(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 oI(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 sI(e){return{isActive:e===!0||typeof e==`string`,level:typeof e==`string`?e:null}}function cI(e,t,n){t&&e?.refreshOn?.includes(n)&&t.refresh?.(n)}function lI(e,t,n,r){for(let i of e)rI(i.view,t)&&cI(i,r(i.view),n)}function uI(){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 dI(e,t,n){let r=Number(e);return!e||!Number.isFinite(r)||t-r>n}var fI=`glimmervoid:preload-error-reload-at`,pI=3e4,mI=1e3,hI=uI();function gI(e,t){let n=hI.mountedModuleOf(e.view);n?t(n):hI.show(e).then(t).catch(t=>{throw ze(`view`,`${e.view} failed to show: ${$e(t)}`),t})}function _I(e){return hI.mountedModuleOf(e)}function vI(e){hI.mountEagerViews(e)}function yI(e){let t=()=>{hI.prefetch(e.filter(e=>!e.tab.hidden))};`requestIdleCallback`in window?window.requestIdleCallback(t):setTimeout(t,mI)}function bI(e){window.addEventListener(`vite:preloadError`,()=>{let t=e(),n=Date.now();dI(t.getItem(fI),n,pI)&&(t.setItem(fI,String(n)),location.reload())})}function xI(e){jj({openTerminal:e.openTerminal,openReviews:e.openReviews}),nP(e.onRestart);let t=[{view:`focus`,label:`Focus`,panelClass:`focus-view`,hasOwnPhoneScreen:!0,hasPanelChrome:!1,hasReviewSidebar:!0,module:{mount:()=>iC({rail:document.getElementById(`focus-rail`),center:document.getElementById(`focus-center`),resizer:document.getElementById(`focus-rail-resizer`)}),activate:MC,deactivate:FC}},{view:`prs`,label:`Reviews`,glyph:`⇅`,panelClass:`pr-view`,gate:{fromSettings:tI.teamReview},load:()=>bi(()=>import(`./review-queue-panel-ClVRKiPp.js`).then(e=>e.view),__vite__mapDeps([9,1,2,3,4,10,5,6,11,8])),attention:{subscribe:Dj,acknowledge:Ej},onConnectionChange:e=>{OA(e),JD(e)}},{view:`issues`,label:`Issues`,glyph:`#`,panelClass:`issues-view`,gate:{fromSettings:tI.issues},load:()=>bi(()=>import(`./issues-panel-Df6U2O29.js`).then(e=>e.view),__vite__mapDeps([12,1,2,4,5,3,11,10,8,6])),refreshOn:[`shown`],onConnectionChange:qM},{view:`usage`,label:`Usage`,glyph:`◔`,panelClass:`usage-view`,gate:{fromSettings:tI.usage},load:()=>bi(()=>import(`./usage-panel-DDmlDx0T.js`).then(e=>e.view),__vite__mapDeps([13,1,2,4])),attention:{subscribe:GF,acknowledge:WF},onConnectionChange:XF,refreshOn:[`shown`,`connected`,`usage-sessions`]},{view:`radar`,label:`Radar`,glyph:`◎`,panelClass:`radar-view`,gate:{fromSettings:tI.posthog},load:()=>bi(()=>import(`./radar-panel-DA4A9eQ3.js`).then(e=>e.view),__vite__mapDeps([14,1,2,3,4,5,6,0])),attention:{subscribe:dN,acknowledge:uN}},{view:`visions`,label:`Visions`,glyph:`◇`,panelClass:`visions-view`,gate:{fromSettings:tI.visions},load:()=>bi(()=>import(`./visions-panel-tzrwcp5a.js`).then(e=>e.view),__vite__mapDeps([15,1,2,5,3])),attention:{subscribe:nT,acknowledge:rT},refreshOn:[`shown`],onConnectionChange:oT},{view:`hooks`,label:`Hooks`,glyph:`◈`,panelClass:`hooks-view`,load:()=>bi(()=>import(`./hooks-panel-BS8xOh4f.js`).then(e=>e.view),__vite__mapDeps([16,2,1,3,5,6])),refreshOn:[`shown`,`connected`,`hooks-updated`]},{view:`trace`,label:`Trace`,panelClass:`trace-view`,gate:{subscribe:Wn},load:()=>bi(()=>import(`./trace-panel-CeruQF0K.js`).then(e=>e.view),__vite__mapDeps([17,1,2,10,5,3])),refreshOn:[`shown`],onAvailabilityChange:e=>fN(e?Ry:null),onConnectionChange:Uy},{view:`benchmarks`,label:`Bench`,panelClass:`bench-view`,gate:{fromSettings:tI.benchmarks},load:()=>bi(()=>import(`./benchmark-panel-B4g1WsZ5.js`).then(e=>e.view),__vite__mapDeps([18,1,2])),onConnectionChange:gM},{view:`settings`,label:`Settings`,glyph:`@`,panelClass:`settings-view`,hasPanelChrome:!1,load:()=>bi(()=>import(`./settings-panel-D9uy1Omm.js`).then(e=>e.view),__vite__mapDeps([19,1,2,3,4,10,5,6,0]))}],n=D(document,`#app-main`,`main`),r=t.map(t=>{let r=k(`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)??k(`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=k(`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}=sI(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 D(document,`#header-tabs`,`div`).replaceChildren(...r.map(e=>e.tab)),r}fd(zt()),pd(on()),VP(un()),Eu(),Fc(document);var SI=D(document,`#connection-status`,`span`),CI=D(SI,`.connection-label`,`span`),wI=D(document,`#loading-screen`,`div`),TI=D(document,`#loading-status`,`div`),EI=D(document,`#loading-detail`,`div`),DI=D(document,`#shutdown-screen`,`div`),OI=D(document,`#shutdown-status`,`div`),kI=!1,AI=null,jI=!1;function MI(){let e=Qr(),t=wI.querySelector(`.loading-spinner`);e&&t&&t.replaceWith(Zr(e,`loading-animal`))}MI();function NI(){kI||AI===null||bF({hasSnapshot:jI,connectingTerminalCount:Em(),msSinceConnected:performance.now()-AI})===`reveal`&&PI()}Tm(NI);function PI(){if(kI)return;kI=!0,wI.classList.add(`fade-out`),yI(Q);let e=()=>wI.remove();wI.addEventListener(`transitionend`,e,{once:!0}),setTimeout(e,1e3)}function FI(e,t){SI.dataset.state=`shutdown`,CI.textContent=e,SI.title=e,DL.disabled=!0,OI.textContent=t,DI.classList.add(`active`)}var II=new Set([`disconnected`,`connecting`]);function LI(e,t,n){SI.dataset.state=e,SI.toggleAttribute(`data-reconnected`,n),CI.textContent=t,SI.title=t}function RI(e,t){LI(e,t,e===`connected`&&II.has(SI.dataset.state??``))}function zI(e,t){SI.dataset.state!==`shutdown`&&LI(e===`verified`?`connected`:e,t,!1)}var BI=1e4,VI=`Server`,HI=`Worktree`,UI=`Worktree warning`,WI=`The server is not answering. Check the terminal running Glimmervoid for errors, or start it again with glimmervoid. This page reconnects on its own.`,GI=`Server not answering. Check the Glimmervoid terminal for errors, or run glimmervoid. This page retries on its own.`,KI=null,qI=!1;function JI(){TI.textContent=`Reconnecting to server...`,EI.textContent=GI,EI.hidden=!qI}function YI(){KI=null,qI=!0,kI?I({source:VI,message:WI,hidesInStreamerMode:!1}):JI()}function XI(){KI!==null||qI||(KI=window.setTimeout(YI,BI))}function ZI(){KI!==null&&window.clearTimeout(KI),KI=null,qI=!1,EI.hidden=!0,bn(VI)}Be((e,t)=>{if(e===`connecting`||e===`verified`)zI(e,t);else{RI(e,t),_x(e===`connected`);for(let t of Q)t.onConnectionChange?.(e===`connected`);if(e===`connected`){if(ZI(),GL&&KL(GL),DI.classList.contains(`active`)){location.reload();return}co(),document.body.classList.add(`app-ready`),!kI&&AI===null&&(AI=performance.now(),TI.textContent=`Connecting to sessions...`,setTimeout(PI,yF)),NI(),_R(),lL(`connected`),M(`get-settings`,{}).then(e=>{e.settings&&(ZL(e.settings),Pr()===`settings`&&ML(location.hash))}).catch(()=>{})}else e===`disconnected`&&DI.classList.contains(`active`)?OI.textContent=`Waiting for server...`:(XI(),kI||JI())}});function QI(){KM(),TA(),ZE()}function $I(){hC(),QI()}Fs(()=>hC());var eL=null;function tL(e){let t=yP(eL,e);eL=t.knownBuild,t.reload&&location.reload()}function nL(e){iT(new Map(e.filter(e=>!e.ephemeral).map(e=>[e.id,e.name]))),hP(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){mc(t.id,t.coherenceHooks),t.ephemeral||Ol(t.path),Xj(t.id,t.linkedPrs);let e=rx(t.id);e&&Bx(t.id,t.state,t.stateSince),e&&Un(t.id,!!t.saneYolo),e&&xx(t.id,t.isGuarded,t.isGuardrailsReleased),e||cx(t.id,t.name,t.state,xN(t)),Fx(t.id,t.failureReason),nx(t.id,t.taskTitle,t.taskTitleIsCustom),yx(t.id,t.agent),kx(t.id,t.mergeStatus,t.mergeReason),vx(t.id,t.effectiveBase),Cx(t.id,t.activeAgents,t.awaitingBackgroundTasks),Tx(t.id,t.pendingPromptKind),Ex(t.id,t.unseenOutcome),Yb(t.id,t),fx(t.id,t.hasPlan),cL(t.id)}sx(),Gc(F),hC(),PC(),QI(),rL(),FL(location.hash),vR(),jI=!0,NI()}function rL(){zy([...F].map(([e,t])=>({id:e,name:st(t)||e})))}function iL(e,t){fx(e,t?.hasPlan===!0),Ex(e,t?.unseenOutcome),cL(e)}function aL(e){if(!rx(e.id))cx(e.id,e.session,e.to,xN({skipPerms:e.skipPerms,saneYolo:e.saneYolo,stateSince:e.timestamp})),Gc(F),KM();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;Mx(e.id),cx(e.id,e.session,b.DORMANT,xN({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})),yx(e.id,t?.agent),iL(e.id,t),$I(),R_(e.id),Gc(F)}else Bx(e.id,e.to,e.timestamp,e.event),Fx(e.id,e.failureReason),e.saneYolo!==void 0&&Un(e.id,e.saneYolo),Gc(F),R_(e.id),$I(),rr(e.id),e.to===b.INITIALIZING&&(e.from===b.DONE||e.from===b.FAILED)&&zm(e.id)}var oL=new Map;function sL(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};oL.set(n.id,e),wx(n.id,e)}for(let e of[...oL.keys()])t.has(e)||(oL.delete(e),wx(e,null))}function cL(e){let t=oL.get(e);t&&wx(e,t)}qF(j),wT(j),Iy(j),GM(j),mM(j),ur(Jj),ol(vc),ol(Kj),qn({isReadable:yc,open:xc}),Vn(yN);function lL(e){lI(Q,{isPhoneShellActive:YE(),activeView:Pr(),phoneScreen:L.snapshot().phoneScreen},e,_I)}es(()=>lL(`settings-updated`));var uL={snapshot:e=>{tL(e.serverBuild),nL(e.sessions)},"hooks-report":e=>ET(e),"save-hook-result":()=>DT(),"delete-hook-result":()=>DT(),"state-change":e=>aL(e),"session-added":e=>{e.ephemeral||Ol(e.path),Xj(e.id,e.linkedPrs),rx(e.id)||(cx(e.id,e.session,e.state,xN(e)),yx(e.id,e.agent),cL(e.id)),Gc(F),$I(),rL()},"session-close-confirm":e=>{Ri(e.id)},"session-removed":e=>{Sn(e.id),Mx(e.id),hc(e.id),B_(e.id),Zj(e.id),Gc(F),$I(),rL()},"session-title":e=>{nx(e.id,e.taskTitle,e.isCustom),$I()},"session-prs":e=>Xj(e.id,e.linkedPrs),"session-renamed":e=>{jx(e.id,e.newName),$I(),rL()},"session-modified":e=>{e.ephemeral||Ol(e.path);let t=F.get(String(e.id));mc(e.id,null),Mx(e.id),B_(e.id),Xj(e.id,e.linkedPrs),cx(e.id,e.session,e.state,xN(e)),yx(e.id,e.agent),iL(e.id,t),Gc(F),$I(),rL()},"session-git":e=>bx(e.id,!!e.worktree),"session-agents":e=>{Cx(e.id,e.activeAgents,e.awaitingBackgroundTasks),$I(),rr(e.id)},"session-unseen":e=>{Ex(e.id,e.unseenOutcome),sx(),Gc(F),$I()},"session-prompt":e=>{Tx(e.id,e.pendingPromptKind),QI()},"session-merge-status":e=>{Ox(e.id,e.mergeStatus,e.reason),DC(e.id,e.mergeStatus),QI()},"session-worktree-blocked":e=>{I({source:HI,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:UI,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=>{bn(HI,e.id),vx(e.id,e.base)},"session-diff":e=>{Ax(e.id,e)},"session-diff-error":e=>{N_(e.id,e.message)},"change-map":e=>P_(e.id,e.map),"branch-sync-status":e=>F_(e.id,e),"session-changed":e=>L_(e.id),"debug-state-response":e=>Yn(e),"session-trace-response":e=>{Xb(e)||By(e)},"session-trace-changed":e=>{Qb(e.id),Vy(e)},"session-conversation":e=>{Yb(e.id,e),QI()},"session-plan-changed":e=>{px(e),QI()},"session-plan-draft":e=>{mx(e)},"session-plan-response":e=>{hx(e)},"session-docs-changed":e=>ws(e),"session-docs-snapshot":e=>Ts(e),"session-shown":e=>Zs(e),"session-shown-snapshot":e=>Qs(e),"session-coherence-hooks":e=>{mc(e.id,e.coherenceHooks),$I()},"session-coherence":e=>{gc(e),$I()},"session-coherence-snapshot":e=>{_c(e),$I()},"session-coherence-journal-response":e=>Sc(e),"session-setup-response":e=>bN(e),notify:e=>{ca(e),rr(e.session)},"update-status":e=>{_L(e),gP(e)},"update-progress":e=>_P(e.journal),"post-turn-leftovers":e=>yL(e),error:e=>{let t=vP(e),n=Hy(e);Zb(e);let r=gx(e);t||n||r||(e.id?Px(e.id,e.message):I({source:VI,message:e.message}))},"session-error":e=>{A_(e.id),!gx(e)&&Px(e.id,e.message)},"settings-updated":e=>{e.settings&&ZL(e.settings),co()},"agent-logins":e=>ti(e.logins),"health-snapshot":e=>{e.stats&&Hh(e.stats)},"radar-status":e=>pN(e),"radar-investigation-activity":e=>mN(e),"radar-investigation-finished":e=>hN(e),"team-review-status":e=>GD(e),"github-prs":e=>xr(e),"my-prs-status":EA,"benchmark-status":e=>_M(e),"benchmark-action-result":e=>vM(e),"my-pr-merge-result":e=>DA(e),"team-review-action-result":e=>KD(e),"open-team-review-session-result":e=>qD(e),"issues-status":e=>JM(e),"issue-detail-result":e=>YM(e),"open-issue-session-result":e=>XM(e),"usage-sessions":e=>{sL(e.sessions),ZF(e)},"usage-report":e=>{$F(e),mP()},"plan-limits":e=>QF(e),"usage-budget-alert":e=>ca({session:`budget-${e.scope}-${e.periodKey}`,category:`threshold-${e.threshold}`,message:e.text,ignoreFocus:!0}),"visions-findings":e=>cT(e),"visions-comments":e=>lT(e),"visions-hand":e=>uT(e),"visions-intent":e=>dT(e),"visions-fix":e=>sT(e),"visions-snapshot":e=>mT(e),"ingest-activity":e=>fT(e),"ingest-snapshot":e=>pT(e),"client-trust":e=>dR(e.trust),"shutting-down":()=>FI(`Shutting down...`,`Shutting down sessions...`),restarting:()=>FI(`Restarting...`,`Restarting server...`)};function dL(e){let t=uL[e.type];t&&t(e)}We(e=>{dL(e),lL(e.type)});var fL,pL=null;function mL(e,t,n){e.onclick=()=>{let e=Me(n);e?e.then(()=>{t.textContent=`Copied`}).catch(()=>{t.textContent=`Copy failed`}):t.textContent=`Copy failed`}}var hL=ma(v,h,`Update`).href;function gL(e){let{latestSha:t,latest:n}=e;return typeof n==`string`&&n?n:typeof t==`string`&&t?t:null}function _L(e){let t=D(document,`#update-banner`,`div`),{mode:n,tone:r,text:i}=ye(e),a=r===`security`;if(!e.updateAvailable&&!a){t.hidden=!0;return}let o=gL(e),s=o&&n===`restart`?`${o}:ready`:o;if(a&&i===pL||!a&&fL!==void 0&&s===fL||!a&&s&&Kt()===s)return;t.classList.toggle(`update-banner-security`,a);let c=String(e.command??``);D(document,`#update-banner-text`,`span`).textContent=i,D(document,`#update-banner-cmd`,`code`).textContent=c;let l=D(document,`#update-banner-update`,`a`);l.href=hL,l.hidden=n!==`link`;let u=D(document,`#update-banner-restart`,`button`);u.hidden=n!==`restart`,u.onclick=uR;let d=D(document,`#update-banner-cmd`,`code`);d.hidden=n!==`command`;let f=D(document,`#update-banner-copy`,`button`);f.hidden=n!==`command`;let p=D(document,`#update-banner-copy-status`,`span`);p.hidden=n!==`command`,p.textContent=``;let m=D(document,`#update-banner-link`,`a`);m.hidden=!e.releaseUrl,m.href=typeof e.releaseUrl==`string`?e.releaseUrl:``,t.hidden=!1,mL(f,p,c),D(document,`#update-banner-dismiss`,`button`).onclick=()=>{t.hidden=!0,a?pL=i:(fL=s,Ut(s))}}var vL=!1;function yL({repositories:e,command:t}){let n=D(document,`#post-turn-leftovers-banner`,`div`);if(e.length===0){n.hidden=!0;return}if(vL)return;let r=D(document,`#post-turn-leftovers-copy-status`,`span`);D(document,`#post-turn-leftovers-text`,`span`).textContent=kr(e.length),D(document,`#post-turn-leftovers-cmd`,`code`).textContent=t,r.textContent=``,n.hidden=!1,mL(D(document,`#post-turn-leftovers-copy`,`button`),r,t),D(document,`#post-turn-leftovers-dismiss`,`button`).onclick=()=>{vL=!0,n.hidden=!0}}var bL=D(document,`#telemetry-banner`,`div`);function xL(){Ft(!0),bL.hidden=!0}function SL(e){bL.hidden=!vF(e,pt())}var CL=D(document,`#telemetry-banner-settings`,`a`);CL.href=ma(`privacy`,`telemetry-enabled`,`What's collected`).href,CL.addEventListener(`click`,xL),D(document,`#telemetry-banner-dismiss`,`button`).addEventListener(`click`,xL),D(document,`#btn-add-session-header`,`button`).addEventListener(`click`,Ai);var wL=D(document,`#btn-mute`,`button`);rM(wL);var TL=D(document,`#btn-streamer`,`button`);as(TL),hF();var EL=D(document,`#power-menu`,`div`),DL=D(document,`#btn-power`,`button`),OL=D(document,`#power-menu-dropdown`,`div`);function kL(e){EL.classList.toggle(`open`,e),DL.setAttribute(`aria-expanded`,String(e))}DL.addEventListener(`click`,e=>{e.stopPropagation(),kL(!EL.classList.contains(`open`))}),cr({trigger:DL,menu:OL,menuItems:()=>[...OL.querySelectorAll(`[role="menuitem"]`)].filter(e=>!e.hidden),isOpen:()=>EL.classList.contains(`open`),open:()=>kL(!0),close:()=>kL(!1)}),document.addEventListener(`click`,e=>{e.target instanceof Node&&(EL.contains(e.target)||kL(!1))}),ge(document.querySelector(`.header`));function AL(e){e&&oP(e),!$E(`settings`)&&$(`settings`,{section:e})}function jL(){da(location.hash)&&history.replaceState(history.state,``,`${location.pathname}${location.search}`)}function ML(e){return da(e)?(oP(null,null,e),$E(`settings`)||$(`settings`,{persist:!1}),!0):!1}var NL=`No plan is stored for this session yet. It appears here once the agent writes one.`,PL=`Plan`;function FL(e){let t=Gi(e);return t?!rx(t)||(history.replaceState(history.state,``,`${location.pathname}${location.search}`),YE()?(JE(t)||I({source:PL,sessionId:t,message:NL}),!0):($(`focus`,{persist:!1}),kC(t)||I({source:PL,sessionId:t,message:NL}),!0)):!1}function IL(e){return FL(e)?!0:ML(e)}function LL(e){e.newURL===location.href&&IL(location.hash)}document.addEventListener(`click`,e=>{if(!YE()||e.defaultPrevented)return;let t=e.target instanceof Element?e.target.closest(`a[href^="#"]`):null;t instanceof HTMLAnchorElement&&IL(t.hash)&&e.preventDefault()}),lA(D(document,`#celebration-tray`,`div`),D(document,`#btn-celebrations`,`button`),D(document,`#celebration-tray-count`,`span`)),D(document,`#btn-help`,`button`).addEventListener(`click`,()=>{AL(`browser-shortcuts`)});var Q=xI({onRestart:uR,openTerminal:e=>{QE(e)||($(`focus`),OC(e))},openPlan:e=>{$(`focus`),kC(e)},openReviews:()=>VL(`prs`)?($E(`prs`)||$(`prs`),!0):!1,setPhoneAttention:tD});function RL(){return Q.map(e=>e.view)}var zL=RL();iP(Q),T_({panel:document.getElementById(`review-sidebar`)}),vI(Q);function BL(e){return Q.find(t=>t.view===e)}function VL(e){return Q.some(t=>t.view===e&&!t.tab.hidden)}var HL=!0,UL=null;function WL(e){BL(e)?.attention?.acknowledge()}var GL=null;function KL(e){GL=j({type:`dashboard-telemetry`,event:`view_shown`,properties:{view:e}})?null:e}function qL(e){let t=BL(e);t&&(gI(t,e=>cI(t,e,`shown`)),KL(e))}function $(e,{section:t,setting:n,persist:r=!0}={}){let i=BL(e);if(!i||!VL(e))return;let a=Pr();L.dispatch(`setActiveView`,e),HL=r,r&&(UL=null),document.body.dataset.activeView=e,document.body.dataset.reviewSidebarHidden=String(i.hasReviewSidebar!==!0),r&>(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&&_I(a)?.deactivate?.(),gI(i,r=>{Pr()===e&&(r.activate?.(),cI(i,r,`shown`),e===`settings`&&t&&oP(t,n??null))}),KL(e),a===`settings`&&e!==`settings`&&jL(),WL(e)}function JL(e,t){let{view:n}=e;e.tab.hidden=!t,eD(n,t),e.onAvailabilityChange?.(t),!YE()&&(!t&&Pr()===n&&$(`focus`),t&&UL===n&&$(n))}function YL(e){for(let{view:t,isAvailable:n}of iI(Q,e))JL(t,n)}function XL(e){let t=aI(zL,e);Q.every((e,n)=>e.view===t[n])||(Q.sort((e,n)=>t.indexOf(e.view)-t.indexOf(n.view)),D(document,`#header-tabs`,`div`).append(...Q.map(e=>e.tab)),WE(t))}function ZL(e){md(e.isExperimentalBuild===!0&&cn()),ax(e),pP(e),aT(e),YL(e),SL(e),XL(e.viewTabOrder),$o(e.streamerMode===!0),qb(e.conversationView===!0)}for(let e of Q)e.gate&&(JL(e,!1),`subscribe`in e.gate&&e.gate.subscribe(t=>JL(e,t)));Ly(()=>{VL(`trace`)&&($E(`trace`)||$(`trace`))});function QL(){return Q.filter(e=>!e.tab.hidden)}function $L(e,t){let n=e[t];return $(n.view),n.tab}function eR(e,t){let n=QL(),r=n.findIndex(t=>t.view===e);return $L(n,fr(r,t,n.length))}function tR(e){Q.some(e=>e.tab===document.activeElement)&&e.focus()}var nR=null;function rR(e){let t=RL();XL(e),M(`update-settings`,{settings:{viewTabOrder:e}}).then(e=>{e.type===`settings-error`&&XL(t)}).catch(()=>XL(t))}function iR(e){let t=nR;if(nR=null,!t||t===e)return;let n=RL();rR(oI(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=>{nR=t,e.dataTransfer?.setData(`text/plain`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),n.addEventListener(`dragover`,e=>{nR&&nR!==t&&(e.preventDefault(),n.dataset.dropTarget=`true`)}),n.addEventListener(`dragleave`,()=>delete n.dataset.dropTarget),n.addEventListener(`drop`,e=>{e.preventDefault(),delete n.dataset.dropTarget,iR(t)}),n.addEventListener(`dragend`,()=>{nR=null}),n.addEventListener(`keydown`,e=>{if(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)return;let t=QL(),n=t.findIndex(e=>e.view===Pr()),r=pr(e.key,n,t.length,`horizontal`);r!==null&&(e.preventDefault(),$L(t,r).focus())})}var aR=en(),oR=da(location.hash),sR=Gi(location.hash);if(oR&&(oP(null,null,location.hash),$(`settings`,{persist:!1})),sR&&$(`focus`,{persist:!1}),!oR&&!sR){let e=VL(aR);e||(UL=aR),$(e?aR:`focus`,{persist:e})}GE({panels:OT(Q),onScreenShown:e=>{qL(e),e!==`settings`&&jL(),e===`settings`&&!da(location.hash)&&oP(),WL(e)},canGoBack:e=>e===`settings`&&dP()||e===`prs`&&Ij(),onBack:e=>{e===`settings`&&fP(),e===`prs`&&Lj()},headerControls:[D(document,`.header-title`,`h1`),D(document,`#status-indicator`,`div`),D(document,`#celebration-tray`,`div`),D(document,`#btn-add-session-header`,`button`),D(document,`#btn-help`,`button`),wL,TL,EL]}),uP(IE),Fj(IE);function cR(e){if(e===`phone`){let e=rC();for(let e of Q)_I(e.view)?.deactivate?.();let t=da(location.hash);KE({sessionId:e??void 0,linkedScreenId:t?`settings`:void 0}),t&&oP(null,null,location.hash);return}let t=XE();qE();let n=Pr();$(VL(n)?n:`focus`,{persist:HL}),t&&OC(t)}Du()&&cR(`phone`),Ou(cR),window.addEventListener(`hashchange`,LL);function lR({type:e,title:t,confirmLabel:n,danger:r,idleMessage:i,actionAfterKillingSessions:a}){kL(!1);let o=ix(),s=o>0?`Kill ${o} session${o>1?`s`:``} and ${a}?`:i;mr({title:t,message:s,confirmLabel:n,danger:r||o>0,onConfirm:()=>j({type:e})})}function uR(){lR({type:`restart-server`,title:`Restart Server`,confirmLabel:`Restart`,danger:!1,idleMessage:`Restart the server?`,actionAfterKillingSessions:`restart the server`})}D(document,`#btn-restart`,`button`).addEventListener(`click`,uR);function dR(e){let t=Tr(`shutdown`,e);D(document,`#btn-shutdown`,`button`).hidden=!t,D(document,`#menu-divider-shutdown`,`div`).hidden=!t}D(document,`#btn-shutdown`,`button`).addEventListener(`click`,()=>{lR({type:`shutdown`,title:`Shut Down Server`,confirmLabel:`Shut Down`,danger:!0,idleMessage:`Shut down the server?`,actionAfterKillingSessions:`shut down the server`})});function fR(){return(document.activeElement?.closest(`.session-card`))?.dataset.id??null}function pR(e){OC(e),Si(e),requestAnimationFrame(()=>requestAnimationFrame(()=>F.get(e)?.term?.focus()))}function mR(){let e=fR()??R();e?Pi(e,pR):document.getElementById(`btn-add-session-header`)?.click()}function hR({action:e,step:t}){switch(e){case`merge`:return V_(),!0;case`close-session`:{let e=R();return e?(Ri(e),!0):!1}case`resolve-or-resync`:return U_()||K_(),!0;case`new-session`:return document.getElementById(`btn-add-session-header`)?.click(),!0;case`quick-session`:return mR(),!0;case`next-attention`:return Du()?!1:nC()?(yC(),!0):(Pr()===`prs`&&Rj()||NC(()=>$(`focus`)),!0);case`rail-step`:return nC()?(jC(t),!0):!1;case`view-step`:return!Du()&&(tR(eR(Pr(),t)),!0);case`session-nth`:return nC()?(AC(t),!0):!1;case`streamer-mode`:return is(),!0}}document.addEventListener(`keydown`,e=>{if(e.repeat||me(e))return;let t=document.activeElement?.classList.contains(`xterm-helper-textarea`)??!1,n=Nt(e,ha,{isTerminalFocused:t},va());n&&(hr()||hR(n)&&e.preventDefault())});var gR=Or({mode:`trailing`,delayMs:150,run:()=>{j({type:`focus-change`,focused:document.hasFocus()})}});function _R(){gR.schedule()}function vR(){let e=XE();e&&N(e)?._isActiveViewer?.()===!0&&Lx(e)}function yR(){_R(),Qm(N(Fr())),vR()}window.addEventListener(`focus`,yR),window.addEventListener(`blur`,yR),document.addEventListener(`visibilitychange`,yR),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&Op()});var bR=Re(j);window.addEventListener(`error`,e=>{bR(e.error),ze(`uncaught`,$e(e.error??e.message))}),window.addEventListener(`unhandledrejection`,e=>{bR(e.reason),ze(`unhandled-rejection`,$e(e.reason))}),bI(()=>window.sessionStorage),window.addEventListener(`pageshow`,e=>{e.persisted&&Op()}),Vh(D(document,`#health-footer-mount`,`div`)),Ru(ox),XI(),PN(),Ke();export{Mj as $,Ea as $n,sb as $t,oN as A,gd as An,AD as At,RM as B,fl as Bn,CT as Bt,cP as C,Wh as Cn,Sr as Cr,HD as Ct,YN as D,md as Dn,ND as Dt,QN as E,Xh as En,DD as Et,IM as F,Du as Fn,yD as Ft,tM as G,ts as Gn,QC as Gt,pM as H,Jc as Hn,eT as Ht,UM as I,Ou as In,aD as It,kj as J,Wo as Jn,JC as Jt,nM as K,Uo as Kn,xw as Kt,BM as L,Tl as Ln,oD as Lt,sN as M,od as Mn,ID as Mt,zM as N,Yu as Nn,bD as Nt,sP as O,pd as On,jD as Ot,VM as P,Ju as Pn,vD as Pt,Lj as Q,Ca as Qn,Gy as Qt,WM as R,wl as Rn,ST as Rt,fP as S,Kh as Sn,L as Sr,xA as St,XN as T,rg as Tn,PD as Tt,hM as U,Qo as Un,$w as Ut,LM as V,Xc as Vn,tT as Vt,fM as W,es as Wn,pw as Wt,Aj as X,zo as Xn,gS as Xt,Rj as Y,Ro as Yn,hS as Yt,Tj as Z,Ba as Zn,Mb as Zt,ZN as _,Ay as _n,fi as _r,aj as _t,KF as a,$y as an,ba as ar,qA as at,tP as b,lg as bn,ri as br,CA as bt,JF as c,Zy as cn,pa as cr,ej as ct,BF as d,Fy as dn,Qi as dr,BA as dt,rb as en,wa as er,Oj as et,eI as f,Ny as fn,Yi as fr,YA as ft,pP as g,ky as gn,di as gr,tj as gt,RP as h,jy as hn,Si as hr,ij as ht,nI as i,Yy as in,xa as ir,kA as it,cN as j,Xu as jn,kD as jt,lN as k,fd as kn,OD as kt,HF as l,qy as ln,ua as lr,UA as lt,MP as m,My as mn,Di as mr,HA as mt,aI as n,Jy as nn,ya as nr,Cj as nt,YF as o,ib as on,va as or,KA as ot,VP as p,Py as pn,qi as pr,ZA as pt,wj as q,Ko as qn,Sw as qt,tI as r,Xy as rn,Sa as rr,Nj as rt,UF as s,eb as sn,ma as sr,JA as st,oI as t,nb as tn,ha as tr,Pj as tt,VF as u,pb as un,fa as ur,nj as ut,lP as v,ry as vn,ni as vr,VA as vt,aP as w,Yh as wn,Cr as wr,UD as wt,rP as x,Zh as xn,Zr as xr,SA as xt,eP as y,sg as yn,ti as yr,XA as yt,HM as z,ul as zn,TT as zt};
|