glimmervoid 0.46.1 → 0.46.2-next.104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{benchmark-panel-DChPUXGA.js → benchmark-panel-xSvlb82T.js} +1 -1
- package/dist/client/assets/benchmark-panel-xSvlb82T.js.br +0 -0
- package/dist/client/assets/{dialogs-DdT1F2S6.js → dialogs-CsBM709_.js} +1 -1
- package/dist/client/assets/dialogs-CsBM709_.js.br +0 -0
- package/dist/client/assets/{hooks-panel-BsUFFLp2.js → hooks-panel-B7rgryyG.js} +1 -1
- package/dist/client/assets/hooks-panel-B7rgryyG.js.br +0 -0
- package/dist/client/assets/{index-BReL4NSr.js → index-In1pKLyK.js} +4 -4
- package/dist/client/assets/index-In1pKLyK.js.br +0 -0
- package/dist/client/assets/{issues-panel-D28hf84c.js → issues-panel-BvkLz0pA.js} +1 -1
- package/dist/client/assets/issues-panel-BvkLz0pA.js.br +0 -0
- package/dist/client/assets/{plan-face-CJorgkgV.js → plan-face-B_2vu3O-.js} +1 -1
- package/dist/client/assets/plan-face-B_2vu3O-.js.br +0 -0
- package/dist/client/assets/{pr-scope-tabs-jELwYeSS.js → pr-scope-tabs-BBY0zxGB.js} +1 -1
- package/dist/client/assets/pr-scope-tabs-BBY0zxGB.js.br +0 -0
- package/dist/client/assets/{radar-panel-CTcFyxm0.js → radar-panel-9qe7QP0p.js} +1 -1
- package/dist/client/assets/radar-panel-9qe7QP0p.js.br +0 -0
- package/dist/client/assets/{review-queue-panel-R9p5_F6Q.js → review-queue-panel-D8vwdvPH.js} +1 -1
- package/dist/client/assets/review-queue-panel-D8vwdvPH.js.br +0 -0
- package/dist/client/assets/{settings-panel-3mnXcihD.js → settings-panel-C0UStpKa.js} +2 -2
- package/dist/client/assets/settings-panel-C0UStpKa.js.br +0 -0
- package/dist/client/assets/{trace-panel-6p6YymRs.js → trace-panel-CoQywm9H.js} +1 -1
- package/dist/client/assets/trace-panel-CoQywm9H.js.br +0 -0
- package/dist/client/assets/{usage-panel-DBzi4xwe.js → usage-panel-Y0qy6nIG.js} +1 -1
- package/dist/client/assets/usage-panel-Y0qy6nIG.js.br +0 -0
- package/dist/client/assets/{visions-panel-BMCIETcz.js → visions-panel-DZcLVbo8.js} +1 -1
- package/dist/client/assets/visions-panel-DZcLVbo8.js.br +0 -0
- package/dist/client/index.html +1 -1
- package/dist/client/index.html.br +0 -0
- package/package.json +1 -1
- package/dist/client/assets/benchmark-panel-DChPUXGA.js.br +0 -0
- package/dist/client/assets/dialogs-DdT1F2S6.js.br +0 -0
- package/dist/client/assets/hooks-panel-BsUFFLp2.js.br +0 -0
- package/dist/client/assets/index-BReL4NSr.js.br +0 -0
- package/dist/client/assets/issues-panel-D28hf84c.js.br +0 -0
- package/dist/client/assets/plan-face-CJorgkgV.js.br +0 -0
- package/dist/client/assets/pr-scope-tabs-jELwYeSS.js.br +0 -0
- package/dist/client/assets/radar-panel-CTcFyxm0.js.br +0 -0
- package/dist/client/assets/review-queue-panel-R9p5_F6Q.js.br +0 -0
- package/dist/client/assets/settings-panel-3mnXcihD.js.br +0 -0
- package/dist/client/assets/trace-panel-6p6YymRs.js.br +0 -0
- package/dist/client/assets/usage-panel-DBzi4xwe.js.br +0 -0
- package/dist/client/assets/visions-panel-BMCIETcz.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,kt as xe,l as Se,m as O,mt as Ce,n as we,o as k,qt as Te,rt as Ee,s as De,t as Oe,tn as ke,v as Ae,wn as je,wt as Me,x as Ne,y as Pe,yt as Fe,z as Ie}from"./dom-helpers-B98sy9ep.js";import{S as Le,_ as Re,a as ze,b as Be,c as Ve,d as He,f as Ue,g as We,h as Ge,i as Ke,l as A,m as qe,n as Je,o as Ye,p as Xe,r as Ze,s as Qe,t as $e,u as j,v as et,x as tt,y as nt}from"./control-ws-C8SS9PPx.js";import{a as rt,c as it,d as M,f as N,i as at,l as ot,m as P,n as st,o as ct,p as lt,s as ut,u as dt}from"./poll-ago-DdlzkUaM.js";import{C as ft,Ct as pt,Dt as mt,E as ht,J as gt,K as _t,O as vt,Ot as yt,Q as bt,R as xt,St,T as Ct,Tt as wt,U as Tt,Y as Et,Z as Dt,_ as Ot,_t as kt,a as At,at as jt,b as Mt,bt as Nt,c as Pt,ct as Ft,d as It,et as Lt,f as Rt,ft as zt,gt as Bt,h as Vt,ht as Ht,i as Ut,it as Wt,k as Gt,m as Kt,mt as qt,n as Jt,o as Yt,ot as Xt,p as Zt,pt as Qt,q as $t,rt as en,s as tn,t as nn,u as rn,ut as an,v as on,vt as sn,w as cn,wt as ln,x as un,xt as dn,y as fn,yt as pn,z as mn}from"./ui-prefs-Dvsgw_ZF.js";import{C as hn,T as gn,c as _n,g as vn,h as yn,i as bn,m as xn,n as Sn,o as F,p as Cn,r as wn,s as Tn,t as En,u as Dn,w as On}from"./action-status-D9Sf2cZp.js";import{A as kn,C as An,D as jn,E as Mn,F as Nn,I as Pn,L as Fn,M as In,N as Ln,O as Rn,P as zn,R as Bn,S as Vn,T as Hn,_ as Un,a as Wn,b as Gn,c as Kn,d as qn,f as Jn,g as Yn,h as Xn,i as Zn,j as Qn,k as $n,l as er,m as tr,n as nr,o as rr,p as ir,r as ar,s as or,t as sr,u as cr,v as lr,w as ur,x as dr,y as fr,z as pr}from"./card-dom-BeRjc5Sk.js";import{n as mr,t as hr}from"./roving-keys-core-BDobx2It.js";import{a as gr,i as _r,n as vr,r as yr,t as br}from"./modal-5t7_5VCF.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var xr=new Map,Sr=new Set;function Cr(e){let t=he.safeParse(e);if(!t.success)Ve(`reviews`,`dropped github-prs: ${Le(t.error.issues)}`);else{xr=new Map(Object.entries(t.data.prs));for(let e of Sr)e()}}function wr(e){return xr.get(e.toLowerCase())}function Tr(e){Sr.add(e)}function Er(e){return e===`remote`?`remote`:`local`}function Dr(e,t){return Er(t)===`local`||e!==`shutdown`}var Or=Object.freeze({setTimeoutFn:(e,t)=>setTimeout(e,t),clearTimeoutFn:e=>clearTimeout(e),setIntervalFn:(e,t)=>setInterval(e,t),clearIntervalFn:e=>clearInterval(e)});function kr(e){return typeof e!=`object`||!e||!(`unref`in e)||typeof e.unref!=`function`||e.unref(),e}function Ar({mode:e,delayMs:t,run:n,setTimeoutFn:r=Or.setTimeoutFn,clearTimeoutFn:i=Or.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&&kr(o))}return{schedule:c,cancel:s,get isArmed(){return o!==null}}}function jr(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 Mr=Object.freeze({layout:`desktop`,activeView:`focus`,phoneScreen:null,focusedSessionId:null,selectedSessionId:null,borrowedCardId:null}),Nr=e=>e||null,Pr=Object.freeze({setLayout:e=>({layout:e}),setActiveView:e=>({activeView:e}),setPhoneScreen:e=>({phoneScreen:Nr(e)}),focusSession:e=>({focusedSessionId:Nr(e)}),selectSession:e=>({selectedSessionId:Nr(e)}),borrowCard:e=>({borrowedCardId:Nr(e)})});function Fr(e){let t=Object.freeze({...Mr,...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 Mr))throw Error(`ui-state: unknown key "${r}"`);Object.is(t[r],e[r])||n.push(r)}return n}function o(e,r){let i=Pr[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 I=Fr(),Ir=()=>I.snapshot().activeView;function Lr(){return I.snapshot().borrowedCardId}function Rr(e,t,n,{className:r}={}){if(!e?.card||!n)return;let i=Lr();i&&i!==t&&zr();let a=e.card;a._cardHostClass&&a._cardHostClass!==r&&a.classList.remove(a._cardHostClass),a._cardHostClass=r||``,r&&a.classList.add(r),Oe(a,n),I.dispatch(`borrowCard`,t),e._ensureTerminalReady?.(),e._setBorrowed?.(!0),e._showPreferredFace?.()}function zr(){let e=Lr();if(I.dispatch(`borrowCard`,null),!e)return null;let t=P.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,dt)),e}var Br=68,Vr=42,Hr=768,Ur=.68,Wr=64,Gr=5,Kr=8,qr=85;function Jr(e,t,n){return Math.min(Math.max(e,t),n)}function Yr({viewportWidthPx:e,viewportHeightPx:t,verticalProgress:n,isRightToLeft:r=!1,arcProgress:i=0}){let a=Jr(e/Hr,Ur,1),o=(Gr+70*n*n)*t/100,s=Math.max(o,Wr),c=qr*t/100,l=Jr(i*Kr*t/100,Wr-s,c-s),u=-.45*e,d=1.45*e;return{scale:a,spriteWidthPx:Br,spriteHeightPx:Vr,topPx:s,startXpx:r?d:u,endXpx:r?u:d,facing:r?-1:1,arcPx:l}}function Xr(e,t){let n=Number.isFinite(t)&&t>0?t:1;return Math.max(1,Math.round(e*n))/n}function Zr(e,t,n){let r=Xr(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 Qr=Yr({viewportWidthPx:1440,viewportHeightPx:900,verticalProgress:0});function $r(e,t=``){let n=k(`div`,`flying-animal-preview ${t}`.trim());n.setAttribute(`aria-hidden`,`true`),n.style.setProperty(`--nyan-width`,`${Qr.spriteWidthPx}px`),n.style.setProperty(`--nyan-height`,`${Qr.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 ei(){let e=mt(Ut().flyingAnimalsExcludedSprites);return e===null?null:yt[e]??null}var ti=[],ni=new Set;function ri(e){let t=m.safeParse(e);if(t.success){ti=t.data;for(let e of ni)e()}}function ii(e){return ti.find(t=>t.agent===e)??null}function ai(e){return ni.add(e),()=>{ni.delete(e)}}function oi(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 si({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 ci(e,t){if(!e)return null;let n=t.get(e);return!n||(n.currentState||b.DORMANT)===b.DORMANT?null:e}function li(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 ui(e,t){let n=0;for(let r of t)li(r,e)&&n++;return n}function di(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 fi(){let e=[];for(let[,t]of P)e.push(t.card.dataset.session??``);return e}function pi(e){return ui(e,fi())}function mi(e){return di(e??``,fi())}function L(){return I.snapshot().selectedSessionId}function hi(e){I.dispatch(`selectSession`,e)}function gi(e){return I.subscribe((t,n)=>{n.includes(`selectedSessionId`)&&e(t.selectedSessionId)})}var _i=`modulepreload`,vi=function(e){return`/`+e},yi={},bi=function(e){return e.pathname.endsWith(`.css`)},xi=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},Si=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=vi(t,n);let r=s(t),i=bi(r);return xi(yi,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`:_i,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 Ci(e,t=`explicit-state`){let n=P.get(e);if(!n)return null;let r=oi(n.currentState,t);return r&&tr(n,{type:r,id:e}),n}function wi(e,{rememberFocus:t=!0}={}){hi(e),t&&mn(e)}function Ti(){return ci(Yt(),P)}function Ei(e=lt){let t=[...P];return Rn(t,e)}function Di(e,t){let n=P.get(e);return n?tr(n,t):A(t)?!0:(F({source:`Session action`,sessionId:e,message:`${l} Try the action again once the header shows Connected.`}),!1)}var Oi=`Add session`;function ki(e){return e.type===`add-session-result`&&e.error?e.error:e.type===`error`?e.message:`The session was not added.`}var Ai=!1;function ji(e){Ai||(Ai=!0,Si(()=>import(`./dialogs-DdT1F2S6.js`).then(t=>{Ai=!1,e(t)},()=>{Ai=!1,F({source:Oi,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 Mi(){ji(e=>e.createAddSessionDialog())}async function Ni(e,t){try{let n=mi(t),r=await j(`add-session`,{name:n,path:e},{timeoutMs:En});if(r.type===`add-session-result`&&r.ok){Sn(Oi);return}F({source:Oi,message:ki(r)})}catch(e){F({source:Oi,message:`The session was not added: ${Tn(e,En)} Add it again once the server answers.`})}}function Pi(e,t){e&&Ni(e,t)}async function Fi(e,t){try{let n=await j(`quick-session`,{id:e},{timeoutMs:En});if(n.type===`add-session-result`&&n.ok){Sn(Oi),n.sessionId&&t(n.sessionId);return}F({source:Oi,sessionId:e,message:ki(n)})}catch(t){F({source:Oi,sessionId:e,message:`The session was not added: ${Tn(t,En)} Add it again once the server answers.`})}}function Ii(e,t){Fi(e,t)}var Li=39e5,Ri=`Remove session`;async function zi(e,t,n,r=[]){try{let i=await j(`remove-session`,{id:t,discardWork:n,confirmedKeptPaths:r},{timeoutMs:Li});if(i.type!==`remove-session-result`||i.ok)return;if(!i.canDiscardWork){F({source:Ri,sessionId:t,message:`"${lt(e)}" was not removed: ${i.error??`the server gave no reason`}. Try Remove again from its actions menu.`});return}gr({title:`Remove Session`,message:i.error??`Remove session "${lt(e)}"?`,confirmLabel:`Remove`,danger:!0,onConfirm:()=>{zi(e,t,!0,(i.keptPaths??[]).map(e=>e.path))}})}catch(n){F({source:Ri,sessionId:t,message:`"${lt(e)}" was not removed: ${Tn(n,Li)} Try Remove again from its actions menu.`})}}function Bi(e){let t=P.get(e);t&&zi(t,e,!1)}var Vi=`(max-width: 768px)`,Hi=`(pointer: coarse)`;function Ui({coarse:e,narrowWidth:t}={}){return e===!0&&t===!0?`phone`:`desktop`}var Wi=window.matchMedia?.(Hi),Gi=window.matchMedia?.(Vi);function Ki(){return Ui({coarse:!!Wi?.matches,narrowWidth:!!Gi?.matches})}function qi(e){document.documentElement.dataset.layout!==e&&(document.documentElement.dataset.layout=e)}function Ji(){I.subscribe((e,t)=>{t.includes(`layout`)&&qi(e.layout)});let e=Ki();qi(e),I.dispatch(`setLayout`,e);let t=()=>I.dispatch(`setLayout`,Ki());return Wi?.addEventListener?.(`change`,t),Gi?.addEventListener?.(`change`,t),e}function Yi(){return I.snapshot().layout===`phone`}function Xi(e){return I.subscribe((t,n)=>{n.includes(`layout`)&&e(t.layout)})}function Zi(e,t,n){return{body:String(n||`Session needs attention`),tag:`glimmervoid-${e||``}-${t||``}`,renotify:!0}}var Qi=4e3;function $i(e,t){return`glimmervoid-notify-claim-${e||``}-${t||``}`}function ea(e,t,n,r=Qi){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 ta=`#plan/`;function na(e){return`${ta}${encodeURIComponent(e)}`}function ra(e){if(!e.startsWith(ta))return null;let t=e.slice(6);if(!t||t.includes(`/`))return null;try{return decodeURIComponent(t)||null}catch{return null}}function ia(){return typeof Notification>`u`?null:Notification}function aa(){return ia()!==null}function oa(){let e=ia();return e?e.permission:`unavailable`}async function sa(){let e=ia();if(!e)return`denied`;if(e.permission!=="default")return e.permission;try{return await e.requestPermission()}catch{return e.permission}}function ca(){return!aa()&&!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.`:aa()?oa()===`denied`&&Mt()?`Blocked by the browser. Allow notifications for this site in its site settings.`:null:`This browser does not support desktop notifications.`}function la(){return Mt()&&oa()==="default"}function ua(e=()=>{}){let t=k(`div`,`notification-permission`),n=()=>{let r=ca();if(t.replaceChildren(),t.hidden=!r&&!la(),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,sa().then(()=>{n(),e()})}),t.append(i)};return n(),{element:t,refresh:n}}var da=`Notifications`,fa=`Desktop notifications are blocked by the browser, so alerts show only in this tab. Allow notifications for this site to get them again.`,pa=new Map,ma=!1;function ha(){ma||(ma=!0,F({source:da,message:fa,hidesInStreamerMode:!1}))}function ga(e,t){let n=pa.get(e)??new Set;n.add(t),pa.set(e,n),t.addEventListener(`close`,()=>n.delete(t))}function _a(e){let t=pa.get(e);if(t){pa.delete(e);for(let e of t)e.close()}}function va(e){return!aa()||!Mt()||document.documentElement.hasAttribute(`data-streamer`)?!1:e||!document.hasFocus()}function ya(e=!1){return va(e)&&oa()===`granted`}function ba({session:e,category:t,message:n,kind:r,ignoreFocus:i=!1}={}){let a=ia();if(!a||!va(!!i)||(a.permission===`denied`&&ha(),a.permission!==`granted`)||(Sn(da),!ea(window.localStorage,$i(e,t),Date.now())))return;let o=typeof e==`string`?e:``,s=P.get(o),c=s?lt(s):``;try{let i=new a(c||`Glimmervoid`,Zi(e,t,n));i.onclick=()=>{window.focus(),r===`plan`&&o&&(window.location.hash=na(o)),i.close()},s&&ga(o,i)}catch{}}var xa=`claude-code`;function Sa(e,{defaultId:t=xa}={}){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 Ca=`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 wa(e){let t=typeof e==`object`&&e?e:null;return t===null||!Array.isArray(t.agents)||t.error||Sa(t.agents).options.length>0?{canSpawn:!0,guidance:``}:{canSpawn:!1,guidance:Ca}}var Ta={agent:`upcoming`,repoRoots:`upcoming`,firstSession:`upcoming`};function Ea(e,t){return e<t?`done`:e===t?`current`:`upcoming`}function Da({agentListing:e,repoRoots:t}){let n=wa(e).canSpawn?t.length===0?2:3:1;return{agent:Ea(1,n),repoRoots:Ea(2,n),firstSession:Ea(3,n)}}var Oa=[[`agent`,`agent`],[`repoRoots`,`repo_roots`],[`firstSession`,`first_session`]];function ka({step:e,state:t}){return`${e}:${t}`}function Aa(e,t){let n=[];for(let[r,i]of Oa){let a=t[r];if(a===`upcoming`)continue;let o={step:i,state:a};e.has(ka(o))||n.push(o)}return n}function ja(e){return Sa(typeof e==`object`&&e?e.agents:[]).options.map(e=>e.label).join(`, `)}function Ma(e){return e===1?`1 git repo`:`${e} git repos`}function Na(e,t){let n=[...e];for(let e of t){let t=e.trim();t&&!n.includes(t)&&n.push(t)}return n.length===e.length?null:n}function Pa(e,t){return e.length>0?[]:t.filter(e=>e.gitRepoCount>0).map(e=>e.path)}var Fa=0,Ia=`Could not read the current repository roots.`;function La(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}async function Ra(e){let t=await j(`get-settings`,{});if(t.type!==`settings`)return Ia;let n=t.settings.repoRoots;if(!La(n))return Ia;let r=Na(n,e);if(!r)return null;let i=await j(`update-settings`,{settings:{repoRoots:r}});return i.type===`settings-error`?i.message:null}function za({onAdded:e}){Fa+=1;let t=`repo-roots-adder-path-${Fa}`,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=`/path/to/your/checkouts`,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 Ra([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`,Ma(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 Ba=`npm install -g @anthropic-ai/claude-code`,Va={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>`},Ha=null,Ua=null,Wa=null,Ga=null,Ka={steps:Ta,agentSummary:``,repoRoots:[]},qa=0,Ja=!1,Ya=!1,Xa=new Set,Za=bn(`first-run-load-status`),Qa=ua();function $a(e){A({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`onboarding`,action:e}})}function eo(e){for(let t of Aa(Xa,e))A({type:`dashboard-telemetry`,event:`onboarding_step`,properties:t})&&Xa.add(ka(t))}function to({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=Va[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 no(){return Yi()?`No supported agent is on PATH of the machine running Glimmervoid. Install Claude Code, Codex or Grok there, then rescan.`:`No supported agent is on PATH. Install Claude Code, Codex or Grok, then rescan.`}function ro(){let e=k(`div`,`first-run-command-row`);if(e.append(k(`code`,`first-run-command`,Ba)),!navigator.clipboard?.writeText)return e;let t=k(`button`,`btn-dialog btn-dialog-cancel`,`Copy`);t.type=`button`;let n=k(`span`,`first-run-copy-status`);return n.setAttribute(`role`,`status`),t.addEventListener(`click`,async()=>{let e=Pe(Ba);n.textContent=e?await e.then(()=>`Copied`,()=>`Copy failed`):`Copy failed`}),e.append(t,n),e}function io(){let e=k(`div`,`first-run-step-actions`);Wa=k(`button`,`btn-dialog btn-dialog-cancel`,`Rescan`),Wa.type=`button`,Wa.addEventListener(`click`,()=>{$a(`rescan`),co({rescanAgents:!0})}),e.append(Wa);let t=[k(`p`,`first-run-step-text`,no()),ro(),e];return Ja?[...t,k(`p`,`first-run-step-hint`,`Still missing after a rescan? Restart Glimmervoid from a terminal where the command runs. Other terminal agents go under customAgents.`)]:t}function ao(){let e=Ga??za({onAdded:e=>{$a(e===`typed`?`add-root-typed`:`add-root-suggested`),co({rescanAgents:!1})}});return Ga=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 oo(){let e=k(`div`,`first-run-step-actions`),t=k(`button`,`btn-dialog btn-dialog-confirm`,`+ Session`);return t.type=`button`,t.addEventListener(`click`,()=>{$a(`add-session`),Mi()}),e.append(t),[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.`),e]}function so(){if(!Ua)return;let{steps:e,agentSummary:t,repoRoots:n}=Ka;Ua.replaceChildren(to({title:`1. Agent CLI`,state:e.agent,summary:t,badge:`MISSING`,body:io}),to({title:`2. Repository roots`,state:e.repoRoots,summary:n.join(`, `),badge:`NEEDED`,body:ao}),to({title:`3. First session`,state:e.firstSession,summary:``,badge:``,body:oo}))}async function co({rescanAgents:e}){qa+=1;let t=qa;Wa&&(Wa.disabled=!0);try{let[n,r]=await Promise.all([j(`list-agents`,e?{rescan:!0}:{},{timeoutMs:En}),j(`scan-repo-roots`,{includeSuggestions:!0},{timeoutMs:En})]);if(t!==qa)return;let i=r.type===`repo-roots-scanned`,a=i?r.directories.map(e=>e.root):[],o=i?r.suggestions??[]:[],s=Pa(a,o);if(s.length>0&&!Ya){Ya=!0;let e=await Ra(s).catch(e=>String(e));if(t!==qa)return;if(!e){co({rescanAgents:!1});return}}let c=Da({agentListing:n,repoRoots:a});e&&(Ja=c.agent===`current`),Ka={steps:c,agentSummary:ja(n),repoRoots:a},Za.clear(),so(),eo(Ka.steps),Ga?.setSuggestions(o)}catch(e){if(Wa&&(Wa.disabled=!1),t!==qa)return;Za.show(`error`,`The checklist could not load: ${Tn(e,En)} It loads again once the server answers. If it stays like this, check the terminal running Glimmervoid, or run glimmervoid doctor.`)}}function lo(){if(Ha)return Ha;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`,Ua=k(`ol`,`first-run-steps`);let n=k(`div`,`first-run-optional`);return n.append(k(`span`,`first-run-eyebrow`,`OPTIONAL`),Qa.element),e.append(k(`span`,`first-run-eyebrow`,`FIRST RUN`),t,Ua,Za.element,n),Ha=e,so(),e}function uo(e,t){if(!t){Ha?.parentElement===e&&(Ha.hidden=!0);return}let n=lo(),r=!n.hidden&&n.parentElement===e;n.parentElement!==e&&e.append(n),n.hidden=!1,Qa.refresh(),r||co({rescanAgents:!1})}function fo(){Ha&&!Ha.hidden&&Ha.isConnected&&co({rescanAgents:!1})}var po=new Set([`http:`,`https:`]);function mo(e){let t;try{t=new URL(e)}catch{return null}return po.has(t.protocol)?t.href:null}var ho=2,go=8,_o=/^ {0,3}(`{3,}|~{3,})([^`]*)$/,vo=/^(\s*)(?:([-+*])|(\d+)[.)])\s+(.+)$/,yo=/^ {0,3}(?:(?:\*\s*){3,}|(?:-\s*){3,}|(?:_\s*){3,})$/,bo=/^:?-{3,}:?$/,xo=/^[A-Za-z0-9_+#.-]{1,32}$/;function So(e){return E(e,{overlongLine:`reject`})}function Co(e){let t=e.trim().split(/\s+/)[0]??``;return xo.test(t)?t:``}function wo(e,t){if(!t)return;let n=e.at(-1);n?.type===`text`?n.text+=t:e.push({type:`text`,text:t})}function To(e,t){return e.startsWith(`**`,t)?`**`:e.startsWith(`__`,t)?`__`:null}function Eo(e,t){return e.startsWith(`*`,t)?`*`:e.startsWith(`_`,t)?`_`:null}function Do(e,t,n){let r=e.indexOf(t,n);return r>n?r:-1}function Oo(e,t){let n=e.indexOf(t);return function(r){return n===-1?-1:(n>=r||(n=e.indexOf(t,r)),n)}}function ko(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>ho)return-1}return-1}function Ao(e,t,n){if(e[t]!==`[`)return null;let r=n(t+1);if(r<=t+1||e[r+1]!==`(`)return null;let i=ko(e,r+2);return i===-1?null:{label:e.slice(t+1,r),target:e.slice(r+2,i),end:i+1}}function jo(e){let t=[],n=Oo(e,`]`),r=0;for(;r<e.length;){let i=Ao(e,r,n);if(i){let e=mo(i.target.trim());e&&t.push({type:`link`,href:e,children:jo(i.label)}),e||wo(t,i.label),r=i.end;continue}if(e.startsWith("`",r)){let n=Do(e,"`",r+1);if(n!==-1){t.push({type:`code`,text:e.slice(r+1,n)}),r=n+1;continue}}let a=To(e,r);if(a){let n=Do(e,a,r+a.length);if(n!==-1){t.push({type:`strong`,children:jo(e.slice(r+a.length,n))}),r=n+a.length;continue}}let o=Eo(e,r);if(o){let n=Do(e,o,r+1);if(n!==-1){t.push({type:`emphasis`,children:jo(e.slice(r+1,n))}),r=n+1;continue}}wo(t,e[r]),r++}return t}function Mo(e){return e.map(e=>e.type===`text`||e.type===`code`?e.text:Mo(e.children)).join(``)}var No=`plan-h-`;function Po(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),`${No}${r===1?n:`${n}-${r}`}`}function Fo(e){if(typeof e!=`string`||!e.includes(`|`))return!1;let t=Io(e);return t.length<2?!1:t.every(e=>bo.test(e))}function Io(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 Lo(e){let t=vo.exec(e);return t?{indent:t[1].replace(/\t/g,` `).length,ordered:!!t[3],content:t[4]}:null}function Ro(e,t,n,r){let i=Lo(e[t]);if(!i)return null;let a=[],o=i.ordered,s=i.indent,c=t;for(;c<e.length;){let t=Lo(e[c]);if(!t||t.indent<s)break;if(t.indent>s){if(r>=go)break;let t=Ro(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:jo(t.content)}]}),c++}}return{block:{type:`list`,ordered:o,items:a},next:c}}function zo(e,t){let n=e[t]??``;return n.trim()===``||So(n)||_o.test(n)||yo.test(n)||Lo(n)||/^ {0,3}>/.test(n)?!0:t+1<e.length&&n.includes(`|`)&&Fo(e[t+1])}function Bo(e,t,n){let r=[],i=0;for(;i<e.length;){let a=e[i];if(a.trim()===``){i++;continue}let o=_o.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:Co(o[2]),text:t.join(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dialogs-CsBM709_.js","assets/dom-helpers-B98sy9ep.js","assets/zod-BRLv4KqJ.js","assets/control-ws-C8SS9PPx.js","assets/poll-ago-DdlzkUaM.js","assets/action-status-D9Sf2cZp.js","assets/modal-5t7_5VCF.js","assets/plan-face-B_2vu3O-.js","assets/roving-keys-core-BDobx2It.js","assets/review-queue-panel-D8vwdvPH.js","assets/ui-prefs-Dvsgw_ZF.js","assets/pr-scope-tabs-BBY0zxGB.js","assets/issues-panel-BvkLz0pA.js","assets/usage-panel-Y0qy6nIG.js","assets/radar-panel-9qe7QP0p.js","assets/visions-panel-DZcLVbo8.js","assets/hooks-panel-B7rgryyG.js","assets/trace-panel-CoQywm9H.js","assets/benchmark-panel-xSvlb82T.js","assets/settings-panel-C0UStpKa.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,kt as xe,l as Se,m as O,mt as Ce,n as we,o as k,qt as Te,rt as Ee,s as De,t as Oe,tn as ke,v as Ae,wn as je,wt as Me,x as Ne,y as Pe,yt as Fe,z as Ie}from"./dom-helpers-B98sy9ep.js";import{S as Le,_ as Re,a as ze,b as Be,c as Ve,d as He,f as Ue,g as We,h as Ge,i as Ke,l as A,m as qe,n as Je,o as Ye,p as Xe,r as Ze,s as Qe,t as $e,u as j,v as et,x as tt,y as nt}from"./control-ws-C8SS9PPx.js";import{a as rt,c as it,d as M,f as N,i as at,l as ot,m as P,n as st,o as ct,p as lt,s as ut,u as dt}from"./poll-ago-DdlzkUaM.js";import{C as ft,Ct as pt,Dt as mt,E as ht,J as gt,K as _t,O as vt,Ot as yt,Q as bt,R as xt,St,T as Ct,Tt as wt,U as Tt,Y as Et,Z as Dt,_ as Ot,_t as kt,a as At,at as jt,b as Mt,bt as Nt,c as Pt,ct as Ft,d as It,et as Lt,f as Rt,ft as zt,gt as Bt,h as Vt,ht as Ht,i as Ut,it as Wt,k as Gt,m as Kt,mt as qt,n as Jt,o as Yt,ot as Xt,p as Zt,pt as Qt,q as $t,rt as en,s as tn,t as nn,u as rn,ut as an,v as on,vt as sn,w as cn,wt as ln,x as un,xt as dn,y as fn,yt as pn,z as mn}from"./ui-prefs-Dvsgw_ZF.js";import{C as hn,T as gn,c as _n,g as vn,h as yn,i as bn,m as xn,n as Sn,o as F,p as Cn,r as wn,s as Tn,t as En,u as Dn,w as On}from"./action-status-D9Sf2cZp.js";import{A as kn,C as An,D as jn,E as Mn,F as Nn,I as Pn,L as Fn,M as In,N as Ln,O as Rn,P as zn,R as Bn,S as Vn,T as Hn,_ as Un,a as Wn,b as Gn,c as Kn,d as qn,f as Jn,g as Yn,h as Xn,i as Zn,j as Qn,k as $n,l as er,m as tr,n as nr,o as rr,p as ir,r as ar,s as or,t as sr,u as cr,v as lr,w as ur,x as dr,y as fr,z as pr}from"./card-dom-BeRjc5Sk.js";import{n as mr,t as hr}from"./roving-keys-core-BDobx2It.js";import{a as gr,i as _r,n as vr,r as yr,t as br}from"./modal-5t7_5VCF.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var xr=new Map,Sr=new Set;function Cr(e){let t=he.safeParse(e);if(!t.success)Ve(`reviews`,`dropped github-prs: ${Le(t.error.issues)}`);else{xr=new Map(Object.entries(t.data.prs));for(let e of Sr)e()}}function wr(e){return xr.get(e.toLowerCase())}function Tr(e){Sr.add(e)}function Er(e){return e===`remote`?`remote`:`local`}function Dr(e,t){return Er(t)===`local`||e!==`shutdown`}var Or=Object.freeze({setTimeoutFn:(e,t)=>setTimeout(e,t),clearTimeoutFn:e=>clearTimeout(e),setIntervalFn:(e,t)=>setInterval(e,t),clearIntervalFn:e=>clearInterval(e)});function kr(e){return typeof e!=`object`||!e||!(`unref`in e)||typeof e.unref!=`function`||e.unref(),e}function Ar({mode:e,delayMs:t,run:n,setTimeoutFn:r=Or.setTimeoutFn,clearTimeoutFn:i=Or.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&&kr(o))}return{schedule:c,cancel:s,get isArmed(){return o!==null}}}function jr(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 Mr=Object.freeze({layout:`desktop`,activeView:`focus`,phoneScreen:null,focusedSessionId:null,selectedSessionId:null,borrowedCardId:null}),Nr=e=>e||null,Pr=Object.freeze({setLayout:e=>({layout:e}),setActiveView:e=>({activeView:e}),setPhoneScreen:e=>({phoneScreen:Nr(e)}),focusSession:e=>({focusedSessionId:Nr(e)}),selectSession:e=>({selectedSessionId:Nr(e)}),borrowCard:e=>({borrowedCardId:Nr(e)})});function Fr(e){let t=Object.freeze({...Mr,...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 Mr))throw Error(`ui-state: unknown key "${r}"`);Object.is(t[r],e[r])||n.push(r)}return n}function o(e,r){let i=Pr[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 I=Fr(),Ir=()=>I.snapshot().activeView;function Lr(){return I.snapshot().borrowedCardId}function Rr(e,t,n,{className:r}={}){if(!e?.card||!n)return;let i=Lr();i&&i!==t&&zr();let a=e.card;a._cardHostClass&&a._cardHostClass!==r&&a.classList.remove(a._cardHostClass),a._cardHostClass=r||``,r&&a.classList.add(r),Oe(a,n),I.dispatch(`borrowCard`,t),e._ensureTerminalReady?.(),e._setBorrowed?.(!0),e._showPreferredFace?.()}function zr(){let e=Lr();if(I.dispatch(`borrowCard`,null),!e)return null;let t=P.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,dt)),e}var Br=68,Vr=42,Hr=768,Ur=.68,Wr=64,Gr=5,Kr=8,qr=85;function Jr(e,t,n){return Math.min(Math.max(e,t),n)}function Yr({viewportWidthPx:e,viewportHeightPx:t,verticalProgress:n,isRightToLeft:r=!1,arcProgress:i=0}){let a=Jr(e/Hr,Ur,1),o=(Gr+70*n*n)*t/100,s=Math.max(o,Wr),c=qr*t/100,l=Jr(i*Kr*t/100,Wr-s,c-s),u=-.45*e,d=1.45*e;return{scale:a,spriteWidthPx:Br,spriteHeightPx:Vr,topPx:s,startXpx:r?d:u,endXpx:r?u:d,facing:r?-1:1,arcPx:l}}function Xr(e,t){let n=Number.isFinite(t)&&t>0?t:1;return Math.max(1,Math.round(e*n))/n}function Zr(e,t,n){let r=Xr(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 Qr=Yr({viewportWidthPx:1440,viewportHeightPx:900,verticalProgress:0});function $r(e,t=``){let n=k(`div`,`flying-animal-preview ${t}`.trim());n.setAttribute(`aria-hidden`,`true`),n.style.setProperty(`--nyan-width`,`${Qr.spriteWidthPx}px`),n.style.setProperty(`--nyan-height`,`${Qr.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 ei(){let e=mt(Ut().flyingAnimalsExcludedSprites);return e===null?null:yt[e]??null}var ti=[],ni=new Set;function ri(e){let t=m.safeParse(e);if(t.success){ti=t.data;for(let e of ni)e()}}function ii(e){return ti.find(t=>t.agent===e)??null}function ai(e){return ni.add(e),()=>{ni.delete(e)}}function oi(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 si({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 ci(e,t){if(!e)return null;let n=t.get(e);return!n||(n.currentState||b.DORMANT)===b.DORMANT?null:e}function li(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 ui(e,t){let n=0;for(let r of t)li(r,e)&&n++;return n}function di(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 fi(){let e=[];for(let[,t]of P)e.push(t.card.dataset.session??``);return e}function pi(e){return ui(e,fi())}function mi(e){return di(e??``,fi())}function L(){return I.snapshot().selectedSessionId}function hi(e){I.dispatch(`selectSession`,e)}function gi(e){return I.subscribe((t,n)=>{n.includes(`selectedSessionId`)&&e(t.selectedSessionId)})}var _i=`modulepreload`,vi=function(e){return`/`+e},yi={},bi=function(e){return e.pathname.endsWith(`.css`)},xi=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},Si=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=vi(t,n);let r=s(t),i=bi(r);return xi(yi,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`:_i,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 Ci(e,t=`explicit-state`){let n=P.get(e);if(!n)return null;let r=oi(n.currentState,t);return r&&tr(n,{type:r,id:e}),n}function wi(e,{rememberFocus:t=!0}={}){hi(e),t&&mn(e)}function Ti(){return ci(Yt(),P)}function Ei(e=lt){let t=[...P];return Rn(t,e)}function Di(e,t){let n=P.get(e);return n?tr(n,t):A(t)?!0:(F({source:`Session action`,sessionId:e,message:`${l} Try the action again once the header shows Connected.`}),!1)}var Oi=`Add session`;function ki(e){return e.type===`add-session-result`&&e.error?e.error:e.type===`error`?e.message:`The session was not added.`}var Ai=!1;function ji(e){Ai||(Ai=!0,Si(()=>import(`./dialogs-CsBM709_.js`).then(t=>{Ai=!1,e(t)},()=>{Ai=!1,F({source:Oi,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 Mi(){ji(e=>e.createAddSessionDialog())}async function Ni(e,t){try{let n=mi(t),r=await j(`add-session`,{name:n,path:e},{timeoutMs:En});if(r.type===`add-session-result`&&r.ok){Sn(Oi);return}F({source:Oi,message:ki(r)})}catch(e){F({source:Oi,message:`The session was not added: ${Tn(e,En)} Add it again once the server answers.`})}}function Pi(e,t){e&&Ni(e,t)}async function Fi(e,t){try{let n=await j(`quick-session`,{id:e},{timeoutMs:En});if(n.type===`add-session-result`&&n.ok){Sn(Oi),n.sessionId&&t(n.sessionId);return}F({source:Oi,sessionId:e,message:ki(n)})}catch(t){F({source:Oi,sessionId:e,message:`The session was not added: ${Tn(t,En)} Add it again once the server answers.`})}}function Ii(e,t){Fi(e,t)}var Li=39e5,Ri=`Remove session`;async function zi(e,t,n,r=[]){try{let i=await j(`remove-session`,{id:t,discardWork:n,confirmedKeptPaths:r},{timeoutMs:Li});if(i.type!==`remove-session-result`||i.ok)return;if(!i.canDiscardWork){F({source:Ri,sessionId:t,message:`"${lt(e)}" was not removed: ${i.error??`the server gave no reason`}. Try Remove again from its actions menu.`});return}gr({title:`Remove Session`,message:i.error??`Remove session "${lt(e)}"?`,confirmLabel:`Remove`,danger:!0,onConfirm:()=>{zi(e,t,!0,(i.keptPaths??[]).map(e=>e.path))}})}catch(n){F({source:Ri,sessionId:t,message:`"${lt(e)}" was not removed: ${Tn(n,Li)} Try Remove again from its actions menu.`})}}function Bi(e){let t=P.get(e);t&&zi(t,e,!1)}var Vi=`(max-width: 768px)`,Hi=`(pointer: coarse)`;function Ui({coarse:e,narrowWidth:t}={}){return e===!0&&t===!0?`phone`:`desktop`}var Wi=window.matchMedia?.(Hi),Gi=window.matchMedia?.(Vi);function Ki(){return Ui({coarse:!!Wi?.matches,narrowWidth:!!Gi?.matches})}function qi(e){document.documentElement.dataset.layout!==e&&(document.documentElement.dataset.layout=e)}function Ji(){I.subscribe((e,t)=>{t.includes(`layout`)&&qi(e.layout)});let e=Ki();qi(e),I.dispatch(`setLayout`,e);let t=()=>I.dispatch(`setLayout`,Ki());return Wi?.addEventListener?.(`change`,t),Gi?.addEventListener?.(`change`,t),e}function Yi(){return I.snapshot().layout===`phone`}function Xi(e){return I.subscribe((t,n)=>{n.includes(`layout`)&&e(t.layout)})}function Zi(e,t,n){return{body:String(n||`Session needs attention`),tag:`glimmervoid-${e||``}-${t||``}`,renotify:!0}}var Qi=4e3;function $i(e,t){return`glimmervoid-notify-claim-${e||``}-${t||``}`}function ea(e,t,n,r=Qi){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 ta=`#plan/`;function na(e){return`${ta}${encodeURIComponent(e)}`}function ra(e){if(!e.startsWith(ta))return null;let t=e.slice(6);if(!t||t.includes(`/`))return null;try{return decodeURIComponent(t)||null}catch{return null}}function ia(){return typeof Notification>`u`?null:Notification}function aa(){return ia()!==null}function oa(){let e=ia();return e?e.permission:`unavailable`}async function sa(){let e=ia();if(!e)return`denied`;if(e.permission!=="default")return e.permission;try{return await e.requestPermission()}catch{return e.permission}}function ca(){return!aa()&&!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.`:aa()?oa()===`denied`&&Mt()?`Blocked by the browser. Allow notifications for this site in its site settings.`:null:`This browser does not support desktop notifications.`}function la(){return Mt()&&oa()==="default"}function ua(e=()=>{}){let t=k(`div`,`notification-permission`),n=()=>{let r=ca();if(t.replaceChildren(),t.hidden=!r&&!la(),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,sa().then(()=>{n(),e()})}),t.append(i)};return n(),{element:t,refresh:n}}var da=`Notifications`,fa=`Desktop notifications are blocked by the browser, so alerts show only in this tab. Allow notifications for this site to get them again.`,pa=new Map,ma=!1;function ha(){ma||(ma=!0,F({source:da,message:fa,hidesInStreamerMode:!1}))}function ga(e,t){let n=pa.get(e)??new Set;n.add(t),pa.set(e,n),t.addEventListener(`close`,()=>n.delete(t))}function _a(e){let t=pa.get(e);if(t){pa.delete(e);for(let e of t)e.close()}}function va(e){return!aa()||!Mt()||document.documentElement.hasAttribute(`data-streamer`)?!1:e||!document.hasFocus()}function ya(e=!1){return va(e)&&oa()===`granted`}function ba({session:e,category:t,message:n,kind:r,ignoreFocus:i=!1}={}){let a=ia();if(!a||!va(!!i)||(a.permission===`denied`&&ha(),a.permission!==`granted`)||(Sn(da),!ea(window.localStorage,$i(e,t),Date.now())))return;let o=typeof e==`string`?e:``,s=P.get(o),c=s?lt(s):``;try{let i=new a(c||`Glimmervoid`,Zi(e,t,n));i.onclick=()=>{window.focus(),r===`plan`&&o&&(window.location.hash=na(o)),i.close()},s&&ga(o,i)}catch{}}var xa=`claude-code`;function Sa(e,{defaultId:t=xa}={}){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 Ca=`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 wa(e){let t=typeof e==`object`&&e?e:null;return t===null||!Array.isArray(t.agents)||t.error||Sa(t.agents).options.length>0?{canSpawn:!0,guidance:``}:{canSpawn:!1,guidance:Ca}}var Ta={agent:`upcoming`,repoRoots:`upcoming`,firstSession:`upcoming`};function Ea(e,t){return e<t?`done`:e===t?`current`:`upcoming`}function Da({agentListing:e,repoRoots:t}){let n=wa(e).canSpawn?t.length===0?2:3:1;return{agent:Ea(1,n),repoRoots:Ea(2,n),firstSession:Ea(3,n)}}var Oa=[[`agent`,`agent`],[`repoRoots`,`repo_roots`],[`firstSession`,`first_session`]];function ka({step:e,state:t}){return`${e}:${t}`}function Aa(e,t){let n=[];for(let[r,i]of Oa){let a=t[r];if(a===`upcoming`)continue;let o={step:i,state:a};e.has(ka(o))||n.push(o)}return n}function ja(e){return Sa(typeof e==`object`&&e?e.agents:[]).options.map(e=>e.label).join(`, `)}function Ma(e){return e===1?`1 git repo`:`${e} git repos`}function Na(e,t){let n=[...e];for(let e of t){let t=e.trim();t&&!n.includes(t)&&n.push(t)}return n.length===e.length?null:n}function Pa(e,t){return e.length>0?[]:t.filter(e=>e.gitRepoCount>0).map(e=>e.path)}var Fa=0,Ia=`Could not read the current repository roots.`;function La(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}async function Ra(e){let t=await j(`get-settings`,{});if(t.type!==`settings`)return Ia;let n=t.settings.repoRoots;if(!La(n))return Ia;let r=Na(n,e);if(!r)return null;let i=await j(`update-settings`,{settings:{repoRoots:r}});return i.type===`settings-error`?i.message:null}function za({onAdded:e}){Fa+=1;let t=`repo-roots-adder-path-${Fa}`,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=`/path/to/your/checkouts`,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 Ra([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`,Ma(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 Ba=`npm install -g @anthropic-ai/claude-code`,Va={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>`},Ha=null,Ua=null,Wa=null,Ga=null,Ka={steps:Ta,agentSummary:``,repoRoots:[]},qa=0,Ja=!1,Ya=!1,Xa=new Set,Za=bn(`first-run-load-status`),Qa=ua();function $a(e){A({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`onboarding`,action:e}})}function eo(e){for(let t of Aa(Xa,e))A({type:`dashboard-telemetry`,event:`onboarding_step`,properties:t})&&Xa.add(ka(t))}function to({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=Va[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 no(){return Yi()?`No supported agent is on PATH of the machine running Glimmervoid. Install Claude Code, Codex or Grok there, then rescan.`:`No supported agent is on PATH. Install Claude Code, Codex or Grok, then rescan.`}function ro(){let e=k(`div`,`first-run-command-row`);if(e.append(k(`code`,`first-run-command`,Ba)),!navigator.clipboard?.writeText)return e;let t=k(`button`,`btn-dialog btn-dialog-cancel`,`Copy`);t.type=`button`;let n=k(`span`,`first-run-copy-status`);return n.setAttribute(`role`,`status`),t.addEventListener(`click`,async()=>{let e=Pe(Ba);n.textContent=e?await e.then(()=>`Copied`,()=>`Copy failed`):`Copy failed`}),e.append(t,n),e}function io(){let e=k(`div`,`first-run-step-actions`);Wa=k(`button`,`btn-dialog btn-dialog-cancel`,`Rescan`),Wa.type=`button`,Wa.addEventListener(`click`,()=>{$a(`rescan`),co({rescanAgents:!0})}),e.append(Wa);let t=[k(`p`,`first-run-step-text`,no()),ro(),e];return Ja?[...t,k(`p`,`first-run-step-hint`,`Still missing after a rescan? Restart Glimmervoid from a terminal where the command runs. Other terminal agents go under customAgents.`)]:t}function ao(){let e=Ga??za({onAdded:e=>{$a(e===`typed`?`add-root-typed`:`add-root-suggested`),co({rescanAgents:!1})}});return Ga=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 oo(){let e=k(`div`,`first-run-step-actions`),t=k(`button`,`btn-dialog btn-dialog-confirm`,`+ Session`);return t.type=`button`,t.addEventListener(`click`,()=>{$a(`add-session`),Mi()}),e.append(t),[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.`),e]}function so(){if(!Ua)return;let{steps:e,agentSummary:t,repoRoots:n}=Ka;Ua.replaceChildren(to({title:`1. Agent CLI`,state:e.agent,summary:t,badge:`MISSING`,body:io}),to({title:`2. Repository roots`,state:e.repoRoots,summary:n.join(`, `),badge:`NEEDED`,body:ao}),to({title:`3. First session`,state:e.firstSession,summary:``,badge:``,body:oo}))}async function co({rescanAgents:e}){qa+=1;let t=qa;Wa&&(Wa.disabled=!0);try{let[n,r]=await Promise.all([j(`list-agents`,e?{rescan:!0}:{},{timeoutMs:En}),j(`scan-repo-roots`,{includeSuggestions:!0},{timeoutMs:En})]);if(t!==qa)return;let i=r.type===`repo-roots-scanned`,a=i?r.directories.map(e=>e.root):[],o=i?r.suggestions??[]:[],s=Pa(a,o);if(s.length>0&&!Ya){Ya=!0;let e=await Ra(s).catch(e=>String(e));if(t!==qa)return;if(!e){co({rescanAgents:!1});return}}let c=Da({agentListing:n,repoRoots:a});e&&(Ja=c.agent===`current`),Ka={steps:c,agentSummary:ja(n),repoRoots:a},Za.clear(),so(),eo(Ka.steps),Ga?.setSuggestions(o)}catch(e){if(Wa&&(Wa.disabled=!1),t!==qa)return;Za.show(`error`,`The checklist could not load: ${Tn(e,En)} It loads again once the server answers. If it stays like this, check the terminal running Glimmervoid, or run glimmervoid doctor.`)}}function lo(){if(Ha)return Ha;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`,Ua=k(`ol`,`first-run-steps`);let n=k(`div`,`first-run-optional`);return n.append(k(`span`,`first-run-eyebrow`,`OPTIONAL`),Qa.element),e.append(k(`span`,`first-run-eyebrow`,`FIRST RUN`),t,Ua,Za.element,n),Ha=e,so(),e}function uo(e,t){if(!t){Ha?.parentElement===e&&(Ha.hidden=!0);return}let n=lo(),r=!n.hidden&&n.parentElement===e;n.parentElement!==e&&e.append(n),n.hidden=!1,Qa.refresh(),r||co({rescanAgents:!1})}function fo(){Ha&&!Ha.hidden&&Ha.isConnected&&co({rescanAgents:!1})}var po=new Set([`http:`,`https:`]);function mo(e){let t;try{t=new URL(e)}catch{return null}return po.has(t.protocol)?t.href:null}var ho=2,go=8,_o=/^ {0,3}(`{3,}|~{3,})([^`]*)$/,vo=/^(\s*)(?:([-+*])|(\d+)[.)])\s+(.+)$/,yo=/^ {0,3}(?:(?:\*\s*){3,}|(?:-\s*){3,}|(?:_\s*){3,})$/,bo=/^:?-{3,}:?$/,xo=/^[A-Za-z0-9_+#.-]{1,32}$/;function So(e){return E(e,{overlongLine:`reject`})}function Co(e){let t=e.trim().split(/\s+/)[0]??``;return xo.test(t)?t:``}function wo(e,t){if(!t)return;let n=e.at(-1);n?.type===`text`?n.text+=t:e.push({type:`text`,text:t})}function To(e,t){return e.startsWith(`**`,t)?`**`:e.startsWith(`__`,t)?`__`:null}function Eo(e,t){return e.startsWith(`*`,t)?`*`:e.startsWith(`_`,t)?`_`:null}function Do(e,t,n){let r=e.indexOf(t,n);return r>n?r:-1}function Oo(e,t){let n=e.indexOf(t);return function(r){return n===-1?-1:(n>=r||(n=e.indexOf(t,r)),n)}}function ko(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>ho)return-1}return-1}function Ao(e,t,n){if(e[t]!==`[`)return null;let r=n(t+1);if(r<=t+1||e[r+1]!==`(`)return null;let i=ko(e,r+2);return i===-1?null:{label:e.slice(t+1,r),target:e.slice(r+2,i),end:i+1}}function jo(e){let t=[],n=Oo(e,`]`),r=0;for(;r<e.length;){let i=Ao(e,r,n);if(i){let e=mo(i.target.trim());e&&t.push({type:`link`,href:e,children:jo(i.label)}),e||wo(t,i.label),r=i.end;continue}if(e.startsWith("`",r)){let n=Do(e,"`",r+1);if(n!==-1){t.push({type:`code`,text:e.slice(r+1,n)}),r=n+1;continue}}let a=To(e,r);if(a){let n=Do(e,a,r+a.length);if(n!==-1){t.push({type:`strong`,children:jo(e.slice(r+a.length,n))}),r=n+a.length;continue}}let o=Eo(e,r);if(o){let n=Do(e,o,r+1);if(n!==-1){t.push({type:`emphasis`,children:jo(e.slice(r+1,n))}),r=n+1;continue}}wo(t,e[r]),r++}return t}function Mo(e){return e.map(e=>e.type===`text`||e.type===`code`?e.text:Mo(e.children)).join(``)}var No=`plan-h-`;function Po(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),`${No}${r===1?n:`${n}-${r}`}`}function Fo(e){if(typeof e!=`string`||!e.includes(`|`))return!1;let t=Io(e);return t.length<2?!1:t.every(e=>bo.test(e))}function Io(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 Lo(e){let t=vo.exec(e);return t?{indent:t[1].replace(/\t/g,` `).length,ordered:!!t[3],content:t[4]}:null}function Ro(e,t,n,r){let i=Lo(e[t]);if(!i)return null;let a=[],o=i.ordered,s=i.indent,c=t;for(;c<e.length;){let t=Lo(e[c]);if(!t||t.indent<s)break;if(t.indent>s){if(r>=go)break;let t=Ro(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:jo(t.content)}]}),c++}}return{block:{type:`list`,ordered:o,items:a},next:c}}function zo(e,t){let n=e[t]??``;return n.trim()===``||So(n)||_o.test(n)||yo.test(n)||Lo(n)||/^ {0,3}>/.test(n)?!0:t+1<e.length&&n.includes(`|`)&&Fo(e[t+1])}function Bo(e,t,n){let r=[],i=0;for(;i<e.length;){let a=e[i];if(a.trim()===``){i++;continue}let o=_o.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:Co(o[2]),text:t.join(`
|
|
3
3
|
`)});continue}let s=So(a);if(s){let e=jo(s.text);r.push({type:`heading`,level:s.level,id:Po(Mo(e),t),children:e}),i++;continue}if(yo.test(a)){r.push({type:`rule`}),i++;continue}if(i+1<e.length&&a.includes(`|`)&&Fo(e[i+1])){let t=Io(a).map(jo),n=[];for(i+=2;i<e.length&&e[i].includes(`|`)&&e[i].trim()!==``;)n.push(Io(e[i]).map(jo)),i++;r.push({type:`table`,header:t,rows:n});continue}let c=Ro(e,i,t,n);if(c){r.push(c.block),i=c.next;continue}if(n<go&&/^ {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:Bo(a,t,n+1)});continue}let l=[a.trim()];for(i++;i<e.length&&!zo(e,i);)l.push(e[i].trim()),i++;r.push({type:`paragraph`,children:jo(l.join(` `))})}return r}function Vo(e){return Bo(e.replace(/\r\n?/g,`
|
|
4
4
|
`).split(`
|
|
5
5
|
`),{slugCounts:new Map},0)}function Ho(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:Mo(t.children),id:t.id,level:t.level,blocks:[t]}):n.blocks.push(t);return r(),t}function Uo(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`);Uo(t,n.children),e.append(t);continue}if(n.type===`strong`){let t=k(`strong`);Uo(t,n.children),e.append(t);continue}let t=k(`a`,`plan-link`);t.href=n.href,t.target=`_blank`,t.rel=`noopener noreferrer`,Uo(t,n.children),e.append(t)}}function Wo(e){let t=k(`li`);return Go(t,e.children),t}function Go(e,t){for(let n of t)if(n.type===`heading`){let t=k(`h${n.level}`,`plan-heading`);t.id=n.id,Uo(t,n.children),e.append(t)}else if(n.type===`paragraph`){let t=k(`p`,`plan-paragraph`);Uo(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(Wo)),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`);Uo(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`);Uo(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`);Go(t,n.blocks),e.append(t)}else e.append(k(`hr`,`plan-rule`))}function Ko(e){let t=k(`div`,`plan-document`);return Go(t,e),t}function qo(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&&Go(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`);Go(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 Jo={added:`+`,removed:`-`,unchanged:` `,skipped:` `};function Yo(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`,Jo[n.kind]);r.setAttribute(`aria-hidden`,`true`),e.append(r,k(`span`,`plan-diff-text`,n.text)),t.append(e)}return t}var Xo=`glimmervoid-streamer-mode`,Zo=new Set,Qo=qt(Xo,!1)===!0,$o=null;function es(e){document.documentElement.toggleAttribute(`data-streamer`,e),$o?.setAttribute(`aria-pressed`,String(e))}es(Qo);function ts(){return Qo}function ns(e){if(Ht(Xo,e),e!==ts()){Qo=e,es(e);for(let t of Zo)t(e)}}function rs(e){return Zo.add(e),()=>Zo.delete(e)}async function is(e){try{let t=await j(`update-settings`,{settings:{streamerMode:e}},{timeoutMs:En});return t.type===`settings-error`?String(t.message):(ns(e),``)}catch(e){return Tn(e,En)}}var as=`Streamer mode`;async function os(){let e=!ts();e&&ns(!0);let t=await is(e);t?F({source:as,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}):Sn(as)}function ss(){os()}function cs(e){$o=e,es(ts()),e.addEventListener(`click`,ss)}var ls=new Map,us=null;function ds(e){return ls.get(e)??[]}function fs(e){return ds(e).length>0}function ps(e){M(e)?.btnDocs.classList.toggle(`visible`,fs(e))}function ms(e){let t=ds(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 hs(e){let t=ds(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 gs(e,t,n=`quiet`){e.status.textContent=t,e.status.dataset.tone=n}function _s(e){e.preview.replaceChildren(Ko(Vo(e.textarea.value)))}function vs(e,t){gr({title:e,message:`Your unsaved edits will be lost.`,confirmLabel:`Discard`,danger:!0,onConfirm:t})}function ys(e,t,n){e.hasUnsavedChanges?vs(t,n):n()}async function bs(e,t){try{return{reply:await j(e,t,{timeoutMs:En}),failureText:null}}catch(e){return{reply:null,failureText:Tn(e,En)}}}async function xs(e,t){e.docPath=t,e.isBusy=!0,e.baseHash=null,e.textarea.readOnly=!0,ms(e),gs(e,`Loading`),hs(e);let{reply:n,failureText:r}=await bs(`session-doc-read`,{id:e.sessionId,path:t});if(us!==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?(gs(e,i?.error||r||`Could not open this doc`,`warn`),hs(e)):(e.textarea.value=i.text,e.baseHash=i.hash,e.hasUnsavedChanges=!1,e.mode===`preview`&&_s(e),gs(e,``),hs(e))}async function Ss(e){if(e.btnSave.disabled||e.baseHash===null)return;e.isBusy=!0,gs(e,`Saving`),hs(e);let t=e.docPath,n=e.textarea.value,{reply:r,failureText:i}=await bs(`session-doc-save`,{id:e.sessionId,path:t,text:n,baseHash:e.baseHash});if(us!==e||e.docPath!==t)return;e.isBusy=!1;let a=r?.type===`session-doc-save-result`?r:null;!a?.ok||a.hash===void 0?(gs(e,a?.conflict?`The agent changed this file since you opened it. Reload to see its version.`:a?.error||i||`Save failed`,`warn`),hs(e)):(e.baseHash=a.hash,e.hasUnsavedChanges=e.textarea.value!==n,gs(e,e.hasUnsavedChanges?`Unsaved changes`:`Saved`),hs(e))}function Cs(e,t){e.mode=t,t===`preview`&&_s(e),hs(e),t===`edit`&&e.textarea.focus()}function ws(e,t){let n=k(`button`,`plan-control ${t}`,e);return n.type=`button`,n}function Ts(e){let t=ds(e)[0];if(!t||us)return;let n=()=>ys(y,`Close this doc?`,()=>y.close()),r=yr({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=ws(`Edit`,`doc-editor-mode`),l=ws(`Preview`,`doc-editor-mode`),u=ws(`Reload`,`doc-editor-reload`),d=ws(`Save`,`doc-editor-save`),f=ws(`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),br(r.dialog,i);let y={sessionId:e,docPath:t.path,baseHash:null,hasUnsavedChanges:!1,isBusy:!1,mode:ts()?`preview`:`edit`,title:a,select:o,textarea:g,preview:_,status:s,btnEdit:c,btnPreview:l,btnReload:u,btnSave:d,close:()=>{us=null,r.close()}};us=y,g.addEventListener(`input`,()=>{y.hasUnsavedChanges||(y.hasUnsavedChanges=!0,gs(y,`Unsaved changes`),hs(y))}),g.addEventListener(`keydown`,e=>{(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`s`&&(e.preventDefault(),Ss(y))}),o.addEventListener(`change`,()=>{let e=o.value;o.value=y.docPath,ys(y,`Open another doc?`,()=>{xs(y,e)})}),c.addEventListener(`click`,()=>Cs(y,`edit`)),l.addEventListener(`click`,()=>Cs(y,`preview`)),u.addEventListener(`click`,()=>{ys(y,`Reload this doc?`,()=>{xs(y,y.docPath)})}),d.addEventListener(`click`,()=>{Ss(y)}),f.addEventListener(`click`,n),xs(y,t.path),y.mode===`edit`&&g.focus()}function Es(e){us&&us.sessionId===e&&(ms(us),hs(us),!ds(e).some(e=>e.path===us?.docPath)&&gs(us,`This doc is no longer surfaced, so it cannot be saved.`,`warn`))}function Ds(e){ls.set(e.id,e.docs),e.docs.length===0&&ls.delete(e.id),ps(e.id),Es(e.id)}function Os(e){let t=[...ls.keys()];ls.clear();for(let[t,n]of Object.entries(e.sessions))ls.set(t,n);for(let e of new Set([...t,...ls.keys()]))ps(e),Es(e)}var ks=new Map,As=new Set,js=[],Ms=[],Ns=null,Ps=!1;function Fs(e){return ks.get(e)??[]}function Is(e){return Fs(e).length>0}function Ls(e){return As.has(e)}function Rs(e){js.push(e)}function zs(e){Ms.push(e)}function Bs(e){let t=M(e);t&&(t.btnShown.classList.toggle(`visible`,Is(e)),t.shownUnopenedDot.hidden=!Ls(e))}function Vs(e,t){return`/shown/${encodeURIComponent(e)}/${encodeURIComponent(t.id)}`}function Hs(e){window.open(e,`_blank`,`noopener`)}function Us(e){return e.pageTitle??e.name}function Ws(e,t,n){let r=Vs(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`,Us(t))),n)return i;let a=k(`button`,`plan-control shown-open-page`,`Open page`);return a.type=`button`,a.addEventListener(`click`,()=>Hs(r)),i.append(k(`span`,`shown-page-name`,t.name),a),i}function Gs(e){let t=Fs(e.sessionId);return t.find(t=>t.id===e.selectedFileId)??t.at(-1)??null}function Ks(e,t){let n=[...Fs(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??Us(n),r.setAttribute(`aria-label`,Us(n)),r.setAttribute(`aria-pressed`,String(n.id===t.id)),r.append(Ws(e.sessionId,n,!0)),r.addEventListener(`click`,()=>Js(e,n.id)),r}))}function qs(e){let t=Gs(e);if(!t){e.close();return}e.selectedFileId=t.id,e.title.textContent=Us(t),e.stage.replaceChildren(Ws(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 ${st(t.shownAt)}`)),Ks(e,t)}function Js(e,t){e.selectedFileId=t,qs(e)}function Ys(e){if(As.delete(e)){Bs(e);for(let t of js)t(e,[])}}function Xs(e,t){let n=k(`button`,`plan-control ${t}`,e);return n.type=`button`,n}function Zs(e,t=null){let n=Fs(e).at(-1);if(!n)return;Ns?.close();let r=yr({dialogClass:`shown-lightbox`,closeOnBackdrop:!1,onEscape:()=>f.close()}),i=`shown-lightbox-title-${e}`,a=k(`h3`,`shown-lightbox-title`);a.id=i;let o=Xs(`Open full size`,`shown-open-full-size`),s=Xs(`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),br(r.dialog,i);let f={sessionId:e,selectedFileId:t??n.id,title:a,stage:l,details:u,strip:d,btnOpenFullSize:o,close:()=>{Ns===f&&(Ns=null),r.close()}};Ns=f,o.addEventListener(`click`,()=>{let t=Gs(f);t&&Hs(Vs(e,t))}),s.addEventListener(`click`,()=>f.close()),r.overlay.addEventListener(`click`,e=>{e.target===r.overlay&&f.close()}),qs(f),Ys(e)}function Qs(e){return e.slice(-50)}function $s(e,t){if(t.length===0)return;let n=Ns?.sessionId===e;n||As.add(e),Bs(e),n&&Ns&&qs(Ns);for(let n of js)n(e,t)}function ec(e){let t=new Set(Fs(e.id).map(e=>e.id)),n=e.files.filter(e=>!t.has(e.id));if(ks.set(e.id,Qs([...Fs(e.id),...n])),$s(e.id,n),n.length!==0)for(let t of Ms)t(e.id,n)}function tc(e){let t=new Map(ks),n=Ps;Ps=!0,ks.clear();for(let[t,n]of Object.entries(e.sessions))ks.set(t,Qs(n));for(let e of new Set([...t.keys(),...ks.keys()])){Is(e)||As.delete(e);let r=new Set((t.get(e)??[]).map(e=>e.id)),i=n?Fs(e).filter(e=>!r.has(e.id)):[];Bs(e),$s(e,i),Ns?.sessionId===e&&qs(Ns)}}function nc({dialogClass:e,titleText:t,titleId:n,body:r,onCloseRequest:i}){let a=yr({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),br(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 rc({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=Ze(e),m=nc({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(),A(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 ic=2,ac={needsYou:1,broken:2,askedOfYou:3,waiting:4,settled:5},oc={danger:ac.broken,warn:ac.askedOfYou,wait:ac.waiting,ok:ac.settled,muted:ac.settled};function sc(e){return e?oc[e]:ac.settled}function cc(e){let t=[...e].sort((e,t)=>e.tier-t.tier),n=t.slice(ic);return{visible:t.slice(0,ic),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(!Vh)return;let e=Ih(zh,Rh?.anomalies),t=Vh.hidden;Vh.hidden=!e,e&&t&&Rh&&(Yh(),Bh&&Xh())}function Qh(e){zh=e,Zh()}function $h(e){if(Vh)return Vh;let t=Jh();return e.appendChild(t),Zh(),t}function eg(e){Rh=e,Zh(),Vh&&!Vh.hidden&&(Yh(),Bh&&Xh())}var tg=Object.freeze([{kind:`approve`,label:`Approve`},{kind:`revise`,label:`Send feedback`},{kind:`terminal`,label:`Answer in terminal`}]);function ng(e){return e===`approve`||e===`approve-accept-edits`}function rg(e){return(e.state===`decided`||e.state===`closed`)&&ng(e.lastDecision)}function ig(e,t){let n=e.reviews.find(e=>e.agentId===t);return n!==void 0&&rg(n)}function ag(e,t){return e.reviews.find(e=>e.agentId===t)??e.reviews[0]??null}function og(e){let t=ag(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 sg(e,t){return ag(e,t)?.openRevision?.revision??null}function cg(e,t,n){if(n===null)return null;let r=ag(e,t)?.revisions??[],i=r.findIndex(e=>e.revision===n);return i<=0?null:r[i-1].revision}function lg(e,t){let n=t-e;return Number.isFinite(n)?Fe(n,{rounding:`floor`,wording:`abbreviated`,suffix:` ago`,justNowBelowSeconds:60}):`just now`}function ug(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 dg(e,t,n){let r=ug(e,t,n),i=(e.pendingCommentCount??0)>0,a=e.hasUnsavedComment!==!0;return tg.map(({kind:e,label:t})=>({kind:e,label:t,enabled:r&&(e===`terminal`||a&&(e===`revise`?i:!i))}))}function fg(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 pg(e){let t=0;for(let n of e.comments??[])t+=n.comment.trim().length+(n.heading?.length??0);return t}function mg(e){return new TextEncoder().encode(JSON.stringify(e)).byteLength+c}function hg(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`:pg(e)>1e4?`the feedback composes more than the ${le} characters the hook reply carries, so nothing was sent`:mg(e)>be?`the decision is larger than one control frame carries, so nothing was sent`:null}function gg(e){return e?`, ${e}`:``}function _g(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=fg(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 vg(e,t,n){let r=_g(e,t,n);return r?`${r}${gg(e.problem)}`:e.problem??``}function yg(e){let t=ag(e.state,e.selectedAgentId),n=og(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:cg(e.state,t?.agentId??null,n),status:vg(e,t,n),actions:dg(e,t,n),modes:[{kind:`read`,label:`Read`,enabled:!0},{kind:`changes`,label:`Changes`,enabled:cg(e.state,t?.agentId??null,n)!==null&&e.isDraft!==!0},{kind:`edit`,label:`Edit`,enabled:ug(e,t,n)}]}}function bg(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 xg({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 Sg=10;function Cg(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 wg(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 Tg(e,t,n){let r=e.get(t)??[];r.push(n),e.set(t,r)}function Eg(e,t){for(let n of e.hotspots)Tg(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<Sg||Tg(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 Dg(e,t){return t.severity-e.severity||e.openPath.localeCompare(t.openPath)||e.dedupeKey.localeCompare(t.dedupeKey)}function Og(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:Cg(r)});let r=new Map,i=new Map,a=e.error?[e.error]:[];for(let t of e.repos){for(let e of wg(t,n))r.has(e.dedupeKey)||r.set(e.dedupeKey,e);Eg(t,i),t.error&&a.push(e.repos.length>1?`${t.name}: ${t.error}`:t.error)}return{worthALook:[...r.values()].sort(Dg),hintsByOpenPath:i,repos:e.repos.map(e=>({name:e.name,sessionPathPrefix:e.sessionPathPrefix})),errors:a}}function kg(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 Ag=5;function jg(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 Mg(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,Ag);if(a.length>0){let e=k(`div`,`review-look-list`);for(let t of a)e.append(jg(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 Ng(e){return(e??[]).map(e=>{let t=k(`span`,`review-file-hint`,e.text);return t.title=e.title,t})}function Pg(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 Fg(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=Pg(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 Ig(e,t){return t===`merged`||t===`none`||e===`parked`&&t===`pending-review`}function Lg(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 Rg({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=Ug(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 zg({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?Rg({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 Bg(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 ${Ug(t)}.`}function Vg(e,t){return e.namesMergeTarget?null:`merges into ${Ug(t)}`}function Hg({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 Ug(e){return e||`base`}function Wg(e,t){return`Merge into ${Ug(e)}, push it, and rebase this worktree, then keep working (${t})`}function Gg(e){return e===`base-diverged`?`Resync the base branch by hand, then Merge again.`:`Needs manual merge`}function Kg(e,t,n){let r=e!==`parked`||e===`parked`&&t===`base-diverged`;return{isRendered:r,isEnabled:r&&e!==`merging`&&n}}function qg({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 Jg(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 Yg({fetched:e,changedFileCount:t,hasCommits:n}){return!e||t>0||n}function Xg(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=Xg(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 Qg(e){return!e||e.fetched===!1?`recheck`:e.state===`ahead`||e.state===`behind`?`resync`:`recheck`}function $g(e,t,n){let r=n?` (${t})`:``;if(!e||Qg(e)===`recheck`)return`Click to fetch and check again${r}`;let i=e.branch||`Base branch`,a=Xg(e.upstream);return e.state===`behind`?`Click to fast-forward ${i} to ${a}${r}`:`Click to push ${i} to ${a}${r}`}function e_(e){return e?.state!==`in-sync`||e.fetched===!1}function t_(e){if(e.error)return`Resync failed: ${e.error}`;let t=e.branch||`The base branch`,n=Xg(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 n_=new Set([`pending-review`,`parked`]),r_=600,i_=zt(`merge`,Mu),a_=zt(`resolve-or-resync`,Mu),o_={minPx:260,maxPx:700},s_=16,c_=5e3,l_=new Map,u_=new Map,d_=new Map,f_=new Map,p_=new Map,m_=new Map,h_=new Set,g_=new WeakMap,__=new WeakMap,v_=new Set,y_=new Set,b_=!1,x_=null,S_=null,z=null,B=null,C_=null,w_=null,T_=null,E_=null,D_=null,O_=!1,k_=null,A_=null,j_=null,M_=null,N_=new Map,V=null,P_=null;function F_(e,t){let n=k(`button`,`review-icon-button`);return n.type=`button`,n.title=e,n.setAttribute(`aria-label`,e),n.append(hn(t)),n}function I_(){O_=!1,z?.querySelector(`.review-more-menu`)?.remove(),z?.querySelector(`.review-more-button`)?.setAttribute(`aria-expanded`,`false`)}function L_({panel:e}){if(S_=e,!S_)return;let t=S_,n=k(`div`,`review-sidebar-head`),r=k(`span`,`review-sidebar-title`,`Review`);D_=k(`span`,`review-sidebar-session`),r.append(D_);let i=e=>{t.toggleAttribute(`data-collapsed`,e),Et(!e)},a=F_(`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=F_(`Open review`,`M10 3L5 8L10 13`);s.classList.add(`review-sidebar-open`),s.addEventListener(`click`,()=>i(!1)),w_=k(`div`,`review-rail-status`),T_=k(`span`,`review-rail-added`),E_=k(`span`,`review-rail-removed`),w_.append(T_,E_),C_=k(`span`,`review-rail-label`,`Review`),o.append(s,C_,w_),z=k(`div`,`review-controls`),B=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,z,B,c),t.toggleAttribute(`data-collapsed`,!ft()),z_(B),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&O_&&(e.preventDefault(),I_(),z?.querySelector(`.review-more-button`)?.focus())}),document.addEventListener(`pointerdown`,e=>{O_&&e.target instanceof Element&&(z?.contains(e.target)&&e.target.closest(`.review-more-button, .review-more-menu`)||I_())}),Zc({resizer:c,column:t,widthHost:t,widthProperty:`--sidebar-width`,bounds:o_,keyStepPx:s_,getStoredWidth:Zt,setStoredWidth:Dt,growsLeftward:!0}),gi(e=>{O_=!1,j_=null,v_.clear(),y_.clear(),b_=!1,x_=null,e&&fv(e),e&&!mv(e)&&hv(e),H()}),H()}function R_(e,t){let n=l_.get(e);l_.set(e,t),Ig(n,t)&&(d_.delete(e),f_.delete(e),p_.delete(e),e===L()&&pv(e)),e===L()&&H()}function z_(e){let t=!1,n=null,r=null,i=e=>A({type:`watch-session-changes`,id:e}),a=()=>{let e=t&&document.visibilityState===`visible`?L():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),gi(a)}function B_(e){S_&&(e?(Oe(S_,e),H()):(_e(S_),H()))}function V_(e,t,n=null){let r=t||`none`;u_.set(e,n);let i=N_.get(e);i!==void 0&&i!==r&&N_.delete(e),R_(e,r)}function H_(e){let t=N(e);t&&N_.delete(t)&&t===L()&&H()}function U_(e,t,n=null){u_.set(e,n),N_.delete(e),R_(e,t||`none`)}function W_(e,t){d_.set(e,t),f_.delete(e),e===L()&&(x_&&xv(x_,t),H(),Sv())}function G_(e,t){let n=N(e);n&&(f_.set(n,t),n===L()&&H())}function K_(e,t){let n=N(e);if(!n)return;let r=y.safeParse(t);r.success&&r.data.sessionId===n&&(p_.set(n,r.data),n===L()&&H())}function q_(e,t){let n=N(e),r=t;m_.set(n,r),r&&r.action!==void 0&&J_(n,r),n===L()&&H()}function J_(e,t){h_.delete(e),clearTimeout(P_??void 0),P_=null;let n=t_(t);V=n?{forId:e,text:n,isError:!!t.error}:null,V&&!V.isError&&(P_=setTimeout(()=>{V&&V.forId===e&&(V=null),H()},5e3))}function Y_(e){let t=N(e);t&&t===L()&&fv(t)}function X_(e){let t=N(e);if(t!==L())return;let n=!d_.has(t)||f_.has(t),r=!p_.has(t)||Z_(p_.get(t));n&&fv(t),r&&!n&&pv(t),H()}function Z_(e){return e?!!e.error||e.repos.some(e=>e.error!==null):!1}function Q_(e){let t=N(e);l_.delete(t),u_.delete(t),d_.delete(t),f_.delete(t),p_.delete(t),m_.delete(t),h_.delete(t),V&&V.forId===t&&(clearTimeout(P_??void 0),V=null),t===L()?hi(null):H()}function $_(){let e=L(),t=e?P.get(e):null;if(!e||!t)return ev(null,`No session is open to merge.`);if(mv(e))return ev(e,`A workspace session has no worktree to merge.`);if(N_.has(e))return ev(e,`Merge is already on its way for "${bv(t,e)}".`);let n=l_.get(e)||`none`,r=!!d_.get(e)?.hasCommits,i=Kg(n,u_.get(e)||null,cv(t.currentState,r));return Hg({status:n,mergeReason:u_.get(e)||null,live:dv(t.currentState),isMergeRendered:i.isRendered,hasChanges:sv(e)})!==`merge`||!i.isEnabled?ev(e,qg({status:n,hasCommits:r,live:dv(t.currentState),state:t.currentState})??`Nothing to merge in "${bv(t,e)}" right now.`):(lv(e,t.currentState),!0)}function ev(e,t){return j_={forId:e,text:t},clearTimeout(M_??void 0),M_=setTimeout(()=>{j_=null,H()},c_),H(),!1}function tv(){let e=L();if(!e||mv(e))return!1;let t=P.get(e);if(!t)return!1;let n=l_.get(e)||`none`,r=u_.get(e)||null;return Hg({status:n,mergeReason:r,live:dv(t.currentState),isMergeRendered:Kg(n,r,!1).isRendered,hasChanges:sv(e)})!==`resolve`||nv(e)?!1:(rv(e),!0)}function nv(e){return k_?.forId===e&&!k_.isError}function rv(e){let t=A({type:`resolve-session-merge`,id:e});k_=t?{forId:e,text:`Resolve prompt sent`,isError:!1}:{forId:e,text:`Not connected. The resolve prompt was not sent.`,isError:!0},clearTimeout(A_??void 0),A_=setTimeout(()=>{k_=null,H()},t?3e3:c_),H()}function iv(){let e=L();return!e||!P.has(e)||mv(e)||_v(e)?!1:(vv(e),!0)}function av(e){if(!e)return{committed:[],uncommitted:[]};let t=g_.get(e);if(t)return t;let n={committed:Fg(e.committed?.diff||``),uncommitted:Fg(e.uncommitted?.diff||``)};return g_.set(e,n),n}function ov(e){let t=__.get(e);if(t)return t;let n=Og(e);return __.set(e,n),n}function sv(e){let t=av(d_.get(e)),n=[...t.committed,...t.uncommitted],r=d_.get(e)??null;return Yg({fetched:d_.has(e),changedFileCount:Lg(n).files,hasCommits:!!r?.hasCommits})}function cv(e,t){return(se.includes(e)||e===b.RUNNING)&&t}function lv(e,t){t===b.RUNNING?gr({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:()=>uv(e,!0)}):uv(e,!1)}function uv(e,t){N_.has(e)||(A(t?{type:`merge-continue-session`,id:e,force:!0}:{type:`merge-continue-session`,id:e})?(N_.set(e,l_.get(e)||`none`),e===L()&&H()):ev(e,`Not connected. The merge was not sent.`))}function dv(e){return e!==b.DORMANT&&e!==b.DONE&&e!==b.FAILED}function fv(e){A({type:`request-session-diff`,id:e}),pv(e)}function pv(e){p_.has(e)||p_.set(e,null),A({type:`request-change-map`,id:e})}function mv(e){return P.get(e)?.card.dataset.workspace!==void 0}function hv(e){m_.set(e,null),A({type:`request-branch-sync`,id:e}),e===L()&&H()}function gv(e){h_.add(e),clearTimeout(P_??void 0),V&&V.forId===e&&(V=null),A({type:`resync-branch`,id:e}),e===L()&&H()}function _v(e){return h_.has(e)||m_.get(e)===null}function vv(e){_v(e)||(Qg(m_.get(e))===`resync`?gv(e):hv(e))}function yv(e,t){return t?{text:`Resyncing`,loading:!0,error:!1}:V&&V.forId===e?{text:V.text,loading:!1,error:V.isError}:null}function bv(e,t){return e?.card?.dataset.session||t}function xv(e,t){if(!t)return;let{committed:n,uncommitted:r}=av(t);for(let t of n)(t.path===e||t.oldPath===e)&&v_.add(`committed:${t.path}`);for(let t of r)(t.path===e||t.oldPath===e)&&v_.add(`uncommitted:${t.path}`)}function Sv(){if(!B||!x_)return;let e=B.querySelectorAll(`.review-file`);for(let t of e)if(t.dataset.path===x_||t.dataset.oldPath===x_){t.scrollIntoView({block:`nearest`}),x_=null;return}}function Cv(e){x_=e,xv(e,d_.get(L()??``)),H(),Sv()}function wv(){b_=!0,H()}function H(){let e=B?.scrollTop??0;Tv(),B&&(B.scrollTop=e)}function Tv(){if(!z||!B)return;z.replaceChildren(),B.replaceChildren(),C_&&(C_.hidden=!0),w_&&(w_.hidden=!0);let e=L(),t=e?P.get(e):null;if(Dv(e,t),!e||!t){j_&&z.append(Ev(j_.text,!0)),Ov(`No session selected`,`Click a session name to review its changes here.`);return}let n=mv(e),r=l_.get(e)||`none`,i=u_.get(e)||null,a=t.currentState,o=n_.has(r),s=d_.has(e),c=s?d_.get(e):null,l=f_.get(e)??null,{committed:u,uncommitted:d}=av(c),f=!!c?.hasCommits,p=dv(a),m=Kg(r,i,cv(a,f)),h=m_.get(e),g=h_.has(e),_=Ug(t.effectiveBase),v=Lg([...u,...d]),y=Hg({status:r,mergeReason:i,live:p,hasChanges:Yg({fetched:s,changedFileCount:v.files,hasCommits:f}),isMergeRendered:m.isRendered}),b=zg({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||Yi()||e_(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=F_(`Refresh branch sync`,`M13 6A5 5 0 1 0 13 10M13 2v4H9`);n.classList.add(`review-branch-sync-refresh`),n.title=$g(h,a_,y!==`resolve`),n.disabled=_v(e),n.setAttribute(`aria-description`,t),n.addEventListener(`click`,()=>vv(e)),C.append(k(`span`,`sr-only`,t),n)}}if(x||z.append(C),u.length>0)for(let e of Jg(c?.bases??[])){let t=k(`div`,e.isUnverified?`review-diff-base review-diff-base-unverified`:`review-diff-base`,e.text);t.title=e.fullSha,z.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=kv(e,y!==`resolve`);t&&ee.append(t)}ee.childElementCount>0&&z.append(ee),r===`parked`&&z.append(k(`div`,`review-status-explanation`,Gg(i))),C_&&(C_.hidden=!1),w_&&(w_.hidden=!1,w_.setAttribute(`aria-label`,`${b.text}, +${v.added}, -${v.removed}`),w_.title=b.text),T_&&(T_.textContent=`+${v.added}`),E_&&(E_.textContent=`-${v.removed}`);let w=n?null:Pv(e,{status:r,reviewable:o,mergeAction:m,live:p,state:a,effectiveBase:_,primaryAction:y});w&&z.append(w);let T=n?null:yv(e,g),te=!n&&y===`merge`&&!m.isEnabled?qg({status:r,hasCommits:f,live:p,state:a}):null;if(te){let e=k(`div`,`review-control-reason`,te);e.id=`review-merge-reason`,z.append(e),z.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||z.insertBefore(ee,C.isConnected?C.nextSibling:z.firstChild),z.querySelector(`.review-branch-sync-button, .review-branch-sync-refresh`)?.setAttribute(`aria-describedby`,e.id)}if(k_?.forId===e&&z.append(Ev(k_.text,k_.isError)),j_&&(j_.forId===e||j_.forId===null)&&z.append(Ev(j_.text,!0)),l){B.append(k(`p`,`review-diff-error`,l));return}if(x){Ov(b.text,Bg(n,_));return}let E=p_.get(e),ne=E?ov(E):null,re=ne?Mg(ne,{isShowingAll:b_,onShowAll:wv,onOpenFile:Cv}):null;re&&B.append(re);let ie=u.length>0&&d.length>0;u.length>0&&B.append(Av({kind:`committed`,label:ie?`Committed`:null,meaning:Vg(b,_),files:u,changeMapView:ne})),d.length>0&&B.append(Av({kind:`uncommitted`,label:ie?`Not committed yet`:null,meaning:null,files:d,changeMapView:ne}))}function Ev(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 Dv(e,t){if(!D_)return;let n=e&&t?bv(t,e):``;D_.textContent=n,D_.hidden=!n,D_.title=n}function Ov(e,t){if(!B)return;let n=k(`div`,`review-empty`);n.append(k(`div`,`review-empty-title`,e),k(`div`,`review-empty-desc`,t)),B.append(n)}function kv(e,t){let n=m_.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=F_(`Refresh branch sync`,`M13 6A5 5 0 1 0 13 10M13 2v4H9`);return a.classList.add(`review-branch-sync-button`),a.title=$g(n,a_,t),a.disabled=h_.has(e),a.addEventListener(`click`,()=>vv(e)),i.append(a,k(`span`,`review-branch-sync-label`,r)),i}function Av({kind:e,label:t,meaning:n,files:r,changeMapView:i}){let a=k(`div`,`review-section`);a.dataset.kind=e,t&&a.append(jv(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?kg(s,t.path):null;n&&n!==c&&o.append(k(`div`,`review-repo-label`,n)),c=n,o.append(Mv(t,e,i))}return a.append(o),a}function jv(e,t,n){let r=Lg(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 Mv(e,t,n){let r=`${t}:${e.path}`,i=v_.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=Ng(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=v_.has(r);e&&v_.delete(r),e||v_.add(r),H()}),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>=r_&&!y_.has(r)){p=!0;break}d.append(k(`div`,`review-hunk-head`,t.header));for(let e of t.lines){if(f>=r_&&!y_.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`,()=>{y_.add(r),H()}),d.append(e)}return a.append(d),a}function Nv({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 Pv(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(Nv({id:`review-merge-btn`,label:`Merge`,shortcut:i_,title:Wg(o,i_),disabled:!r.isEnabled||N_.has(e),onClick:()=>lv(e,a)})),l&&c.append(Nv({label:`Resolve`,shortcut:a_,title:`Paste a resolve prompt into this session so the agent can finish the merge (${a_})`,disabled:nv(e),onClick:()=>rv(e)}));let u=k(`div`,`review-action-controls`);if(u.append(c),!n||i)return c.childElementCount>0?u:null;let d=F_(`More review actions`,vn);if(d.classList.add(`review-more-button`),d.setAttribute(`aria-haspopup`,`menu`),d.setAttribute(`aria-expanded`,String(O_)),d.setAttribute(`aria-controls`,`review-more-menu`),d.addEventListener(`click`,()=>{O_=!O_,H(),(z?.querySelector(O_?`.review-more-menu button:not(:disabled)`:`.review-more-button`)??z?.querySelector(`.review-more-button`))?.focus()}),c.append(d),!O_)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=Nv({label:`Discard worktree`,danger:!0,disabled:t===`merging`,onClick:()=>{O_=!1,H();let t=bv(P.get(e),e);gr({title:`Discard worktree`,message:`Throw away the worktree changes for "${t}"? This cannot be undone.`,confirmLabel:`Discard`,danger:!0,onConfirm:()=>A({type:`discard-session-worktree`,id:e})})}});n.setAttribute(`role`,`menuitem`),f.append(n)}return u.append(f),u}var Fv=160,Iv=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 Lv(e){let t=e.split(/\r?\n/,1)[0]?.trim()??``;return t.length<=Fv?t:`${t.slice(0,157)}...`}function Rv(e,t){let n=Iv[e];if(!n||!t||typeof t!=`object`||Array.isArray(t))return``;let r=t[n];return typeof r==`string`?Lv(r):``}var zv=5e3;function Bv(e){let t=e.match(/<command-name>([^<]*)<\/command-name>/)?.[1];return t===void 0||/[\r\n]/.test(t)?null:t.trim()||null}function Vv(e,t){if(!e.toolUseId)return Bv(e.text)??`context`;let n=t.get(e.toolUseId);return n?Rv(n.name,n.input)||n.name:`expansion`}function Hv(e){return e.kind!==`expansion`||e.toolUseId?!1:Bv(e.text)!==null}function Uv(e){return e.kind===`prompt`||e.kind===`session`||Hv(e)}function Wv(e){return new TextEncoder().encode(e).byteLength}var Gv={prompt:`PROMPT`,expansion:`EXPANSION`,thinking:`THINKING`,assistant:`ASSISTANT`,tool_call:`TOOL`,tool_result:`RESULT`,session:`SESSION`,notice:`NOTICE`,raw:`RAW`};function Kv(e,t){if(e.kind===`prompt`)return{prefix:`Prompt: `,text:Lv(e.text)};if(e.kind===`thinking`)return{prefix:`Thinking: `,text:Lv(e.text)};if(e.kind===`assistant`)return{prefix:`Assistant: `,text:Lv(e.text)};if(e.kind===`notice`)return{prefix:`Notice: `,text:Lv(e.text)};if(e.kind===`raw`)return{prefix:`Raw: `,text:Lv(e.line)};if(e.kind===`session`)return{prefix:`Session: `,text:`${e.vendor} ${e.vendorSessionId}`};if(e.kind===`expansion`)return{prefix:`Expansion: `,text:Vv(e,t)};if(e.kind===`tool_call`){let t=Rv(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:`${Wv(e.content)} bytes`}}function qv(e){if(!e.agentType)return``;let t=e.agentId?` ${e.agentId.slice(-6)}`:``;return`[${e.agentType}${t}] `}function Jv(e,t){let n=Kv(e,t),r=qv(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:Gv[e.kind],text:`${r}${i}`,tone:o,badges:a}}function Yv(e,t){return{record:e,...Jv(e,t)}}function Xv(e){return e.kind!==`tool_result`&&e.kind!==`expansion`?null:e.toolUseId||null}function Zv(e,t){let n=Xv(e);return!n||t.has(n)?null:n}function Qv(e,t,n=1){e.set(t,(e.get(t)??0)+n)}function $v(e,t){let n=(e.get(t)??0)-1;n>0?e.set(t,n):e.delete(t)}function ey(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=Xv(i.record);a&&t.has(a)&&(n.rows[r]=Yv(i.record,e.toolCallByUseId))}}function ty(){return{turns:[],toolCallByUseId:new Map,unresolvedToolUseCounts:new Map}}function ny(){return{rowCount:0,toolCallCount:0,errorCount:0,resultBytes:0}}function ry(e,t,n){e.metrics.rowCount+=n,t.record.kind===`tool_call`&&(e.metrics.toolCallCount+=n),t.record.kind===`tool_result`&&(e.metrics.resultBytes+=Wv(t.record.content)*n,t.record.isError&&(e.metrics.errorCount+=n))}function iy(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&&Qv(e.unresolvedToolUseCounts,t);let a=Yv(i,e.toolCallByUseId);if(Uv(i)){r={head:a,rows:[],hasTrimmedRows:!1,startedAt:i.ts,metrics:ny()},ry(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:ny()},e.turns.push(r),n.push({turnIndex:e.turns.length-1,isNewTurn:!0,head:null,rows:[]})),r.rows.push(a),ry(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 ay(e,t){let n=ty();iy(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)||Qv(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],ey(e,i),{newTurns:n.turns,mergedHead:c,mergedRows:l,needsRerender:i.size>0}}function oy(e){return e.rows.length+ +!!e.head}function sy(e){let t=0;for(let n of e.turns)t+=oy(n);return t}function cy(e,t){for(let n of t){if(n.record.kind===`tool_call`){e.toolCallByUseId.delete(n.record.toolUseId);continue}let t=Xv(n.record);t&&$v(e.unresolvedToolUseCounts,t)}}function ly(e,t){cy(e,t.head?[t.head,...t.rows]:t.rows)}function uy(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);cy(e,i);for(let e of i)ry(n,e,-1);return n.rows=n.rows.slice(r),n.hasTrimmedRows=!0,r}function dy(e,t=zv){let n=sy(e),r=0;for(;n>t&&r<e.turns.length-1;){let t=e.turns[r];if(!t)break;n-=oy(t),ly(e,t),r+=1}return r>0&&(e.turns=e.turns.slice(r)),n<=t?{droppedTurnCount:r,droppedRowCount:0}:{droppedTurnCount:r,droppedRowCount:uy(e,n-t)}}function fy(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 py(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 my(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 hy(e,t=zv){return!e.selectedSessionId||!e.hasLoadedOnce||e.hasDroppedEarliestRows||e.residentRowCount>=t?!1:e.firstOffset>0}function gy(e,t=zv){return!hy(e,t)||e.hasPendingRequest||!e.selectedSessionId?null:{id:e.selectedSessionId,direction:`earlier`,after:0,endingAt:e.firstOffset}}function _y(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 vy=1e4,yy=null,by=null,xy=[],Sy=null,Cy=null,U=null,wy=null,Ty=!1,Ey=null,Dy=()=>!1,Oy=new Set;function ky(e){for(let t of Oy)t(e)}function Ay(){wy&&=(clearTimeout(wy.timeoutHandle),null)}function jy(){wy=null,Ey=`The trace did not load within ${Math.round(vy/1e3)} s.`,ky({kind:`rebuild`})}function My(e){Ay(),Ty=!1,Ey=null,Sy=e,U=e?{sessionId:e,grouping:ty(),firstOffset:0,nextOffset:0,hasDroppedEarliestRows:!1,filePath:``,hasLoadedOnce:!1}:null,ky({kind:`selection-reset`})}function Ny(e){let t=py(xy,Cy,Sy,e);return Cy&&t===Cy&&(Cy=null),t!==Sy&&(My(t),!0)}function Py(e){if(!yy)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};yy(t)?wy={request:e,timeoutHandle:setTimeout(jy,vy)}:(Ey=l,ky({kind:`header`}))}function Fy(e=!1){if(!yy)return;let t=my({selectedSessionId:Sy,isPanelVisible:e||Dy(),hasPendingRequest:!!wy,hasLoadedOnce:U?.hasLoadedOnce??!1,nextOffset:U?.nextOffset??0});t&&Py(t)}function Iy(){Ty&&!wy&&(Ty=!1,Fy())}function Ly(){if(!U)return;let e=dy(U.grouping),t=e.droppedTurnCount>0||e.droppedRowCount>0,n=t&&!U.hasDroppedEarliestRows;t&&(U.hasDroppedEarliestRows=!0),ky({kind:`trimmed`,trim:{droppedTurnCount:e.droppedTurnCount,droppedRowCount:e.droppedRowCount,hasJustDroppedEarliestRows:n}})}function Ry(e){U&&(ky({kind:`records-appended`,appends:iy(U.grouping,e)}),Ly())}function zy(e){U&&(ky({kind:`records-prepended`,prepend:ay(U.grouping,e)}),Ly())}function By(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 Vy(){return{selectedSessionId:Sy,hasPendingRequest:!!wy,hasLoadedOnce:U?.hasLoadedOnce??!1,hasDroppedEarliestRows:U?.hasDroppedEarliestRows??!1,firstOffset:U?.firstOffset??0,residentRowCount:U?sy(U.grouping):0}}function Hy(){return{sessionOptions:xy,selectedSessionId:Sy,selectedTrace:U,pendingSessionId:wy?.request.id??null,traceFailureText:Ey}}function Uy(e){Oy.add(e)}function Wy(e){Dy=e}function Gy(){if(!yy)return;let e=gy(Vy());e&&Py(e)}function Ky(e){xy.some(t=>t.id===e)&&e!==Sy&&(Cy=null,My(e),Fy(),ky({kind:`rebuild`}))}function qy(){let e=Ny(!0);return Fy(!0),e}function Jy(e){yy=e}function Yy(e){by=e}function Xy(e){Cy=e,by?.()}function Zy(e){xy=fy(e);let t=Ny(Dy());t&&Fy(),ky({kind:`sessions`,hasSelectionChanged:t})}function Qy(e){let t=By(e);if(!t)return;let n=_y({pendingRequest:wy?.request??null,resident:U?{sessionId:U.sessionId,firstOffset:U.firstOffset,nextOffset:U.nextOffset,hasLoadedOnce:U.hasLoadedOnce}:null,reply:{id:t.id,start:t.start,next:t.next,reset:t.reset}});n===`ignore`?Iy():(Ay(),Ey&&(Ey=null,ky({kind:`header`})),n===`stale`?Iy():n===`reset`?(My(t.id),U&&(U.filePath=t.path),Fy(),ky({kind:`rebuild`}),Iy()):U&&(U.filePath=t.path,n===`prepend`?(U.firstOffset=t.start,zy(t.records),Iy()):(n===`seed`&&(U.hasLoadedOnce=!0,U.firstOffset=t.start),U.nextOffset=t.next,Ry(t.records),Iy())))}function $y(e){let t=e?.id;typeof t==`string`&&t===Sy&&Dy()&&(wy?Ty=!0:Fy())}function eb(e){let t=e?.id;if(typeof t!=`string`||wy?.request.id!==t)return!1;Ay(),Ty=!1;let n=e?.message;return Ey=typeof n==`string`&&n?n:`The trace could not be read.`,ky({kind:`rebuild`}),!0}function tb(e){Ay(),Ty=!1,Ey=e?null:l,e?(ky({kind:`header`}),Fy()):ky({kind:`rebuild`})}var nb=80,rb=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 ib(e){return e.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)}function ab(e){return e.includes(`.`)?e.replace(/0+$/,``).replace(/\.$/,``):e}function ob(e){if(typeof e!=`number`||!Number.isFinite(e))return`-`;let t=Math.round(e);return`${t<0?`-`:``}${ib(String(Math.abs(t)))}`}function sb(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}$${ib(r)}.${i}`}function cb(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}${ab((n/1e3).toFixed(1))}k`:n<999995e3?`${t}${ab((n/1e6).toFixed(2))}M`:`${t}${ab((n/1e9).toFixed(2))}B`}function lb(e){return typeof e!=`number`||!Number.isFinite(e)?`ok`:e>=100?`crit`:e>=nb?`warn`:`ok`}function ub(e){let t=Me(e?.max,null);return t===null||t<=0?null:t}function db(e){let t=ub(e),n=Me(e?.pct,null);return t===null||n===null?null:n*100}function fb(e,t){let n=ub(t),r=Me(e?.projectedTokens,null);return n===null||r===null?null:r/n*100}var pb=90;function mb(e){let t=e?.budget?.rows;return Array.isArray(t)?t.filter(e=>e&&Me(e.budgetUsd,null)!==null):[]}function hb(e){let t=Me(e?.pct,null);return t===null?0:t}function gb(e,t){let n=e?.[t];if(!n||typeof n!=`object`)return null;let r=Me(n.pct,null),i=Me(n.resetsAtMs,null);return r===null&&i===null?null:{pct:r,resetsAtMs:i}}function _b(e){return e?.vendor===`codex`?`codex`:`claude`}function vb(e){return gb(e,`fiveHour`)?.pct??null}function yb(e,t=null){let n=vb(t);if(n!==null)return lb(n);let r=lb(db(e?.tokenLimit));return r===`ok`?lb(fb(e?.activeBlock?.projection,e?.tokenLimit)):r}function bb(e,t=null){let n=[],r=yb(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 mb(e)){let e=hb(t);if(e<pb)continue;let r=typeof t?.scope==`string`&&t.scope?t.scope:`budget`;n.push(`budget:${r}:${e>=100?`over`:`near`}`)}return Ce(n)}function xb(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 Sb(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 Cb(e){if(Array.isArray(e))return e.length;let t=Number(e);return Number.isFinite(t)?t:null}function wb(e){if(!e||typeof e!=`object`)return``;let t=[],n=Cb(e.dirs);if(n!==null&&t.push(`${ob(n)} transcript ${n===1?`directory`:`directories`}`),Number.isFinite(e.files)&&t.push(`${ob(e.files)} files`),Number.isFinite(e.entries)&&t.push(`${ob(e.entries)} entries`),Number.isFinite(e.lastScanMs)&&t.push(`last pass ${ob(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 Tb(e){return ae(e?.error,``)}function Eb(e,t){if(!e||typeof e!=`object`)return!1;let n=e.requestId;return n==null||n===t}function Db(e){let t=Me(e?.officialCostUSD,null);if(t!==null&&t>0)return{costUSD:t,source:`official`};let n=Me(e?.costUSD,null);return n!==null&&n>0?{costUSD:n,source:`estimated`}:{costUSD:null,source:null}}function Ob(e){let t=Number(e?.tokens);if(!Number.isFinite(t)||t<=0)return``;let{costUSD:n}=Db(e);return n===null?cb(t):`${cb(t)} ${sb(n)}`}function kb(e){let{source:t}=Db(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 Ab({hasPlan:e,pendingPromptKind:t,hasOpenReview:n,hasApprovedReview:r=!1}){return e&&(n||t===`plan`&&!r)?`plan`:`terminal`}function jb({hasPlan:e,isBorrowed:t,face:n}){return!e||n===`plan`?`hidden`:t?`face`:`navigate`}function Mb(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 Nb(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 Pb(e,t,n,r=``){let i=()=>n.send(Nb(e,n.readState(),t,r)),a=Mb(e,n.readState());a?n.confirm({...a,onConfirm:i}):i()}var Fb=`DORMANT`;function Ib(e){return e?Fe(Date.now()-e,{rounding:`round`,wording:`compact`,suffix:` ago`,justNowBelowSeconds:60}):``}function Lb(e){return[e.worktreeName,e.gitBranch?e.gitBranch.replace(/^refs\/heads\//,``):null,Ib(e.mtime)].filter(Boolean).join(` · `)}function Rb(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">${Hn(e)}</span><span class="resume-item-meta">${Hn(t)}</span>`,n}async function zb(e,t,n){if(t.kind===`this`)return!0;let r=t.kind===`earlier`?t.conversationId:``,i=await _n(`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 Bb={this:`restart`,fresh:`restart-fresh`,earlier:`restart-into`};function Vb(e,t,n,r){let i=n.kind===`earlier`?n.conversationId:``;Pb(Bb[n.kind],t,{readState:r,send:t=>{tr(e,t)},confirm:gr},i)}function Hb(e,{readState:t,canListEarlier:n}){let{overlay:r,dialog:i,close:a,actions:o,btnCancel:s}=vr({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=bn(`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=Rb(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 zb(e,n,d);delete i.dataset.applying,r&&(a(),tr(t,{type:`start-session`,id:e}))}function g(){if(i.dataset.applying!==void 0)return;let n=P.get(e);n?t()===Fb?h(n,f):(a(),Vb(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(_),j(`list-conversations`,{id:e},{timeoutMs:En}).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,Lb(e))}}).catch(e=>{r.isConnected&&(_.textContent=`Could not list earlier conversations: ${Tn(e,En)}`)})}function Ub(e){return e instanceof Error?e.message:String(e)}function Wb(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 Gb(e){return e.split(/[\\/]/).filter(Boolean).at(-1)??e}async function Kb(e){let[t,n]=await Promise.all([j(`get-workspace-repos`,{id:e}),j(`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:Gb(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 qb(e){let{overlay:t,dialog:n,close:r,actions:i,btnCancel:a}=vr({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()),Kb(e).then(e=>{if(t.isConnected){s.textContent=``;for(let t of e)s.append(Wb(t.name,t.path,t.isMember));u.disabled=!1}}).catch(e=>{t.isConnected&&(s.textContent=``,l.textContent=`Could not load repositories: ${Ub(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`,j(`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: ${Ub(e)}`)}).finally(()=>{c.textContent=``,u.disabled=!1}))})}var Jb=e=>e==null?``:String(e),Yb=e=>oe.includes(e),Xb=e=>g.includes(e),Zb=!1;zs(Ph);var Qb=null,$b=null;function ex(){return $b??=Si(()=>import(`./plan-face-CJorgkgV.js`).then(e=>(Qb=e,e),()=>($b=null,null)),__vite__mapDeps([7,1,2,8,6])),$b}function tx(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,ex().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 nx(e){return Zb&&Ql(e.agent)&&e.card.dataset.ephemeral===void 0}function rx(e){return nx(e)&&e.isConversationViewOn&&e.isBorrowed}function ix(e){e.btnConversationView.classList.toggle(`visible`,nx(e)),e.btnConversationView.setAttribute(`aria-checked`,String(e.isConversationViewOn))}function ax(e){Zb=e;for(let t of P.values())!e&&t.face===`conversation`&&t._showTerminalFace?.(),dx(t)}function ox(e){let t=M(e);return!t||!rx(t)?!1:(t.face=`conversation`,t.card.dataset.face=`conversation`,t.termWrap.hidden=!0,t.planFace.hide(),t.conversationFace.show(N(e)),dx(t),Cm(t,N(e)),!0)}function sx(e,t){let n=M(e);if(!n)return;let r=n.isConversationViewOn;n.hasConversationBridge=t.hasConversationBridge,n.conversationApproval=t.conversationApproval,n.isConversationViewOn=t.isConversationViewOn,dx(n),n.conversationFace.refresh(),r!==t.isConversationViewOn&&(t.isConversationViewOn?ox(e):n.face===`conversation`&&n._showTerminalFace?.())}function cx(e){return M(e.id)?.conversationFace.applyTraceResponse(e)===!0}function lx(e){M(e.id)?.conversationFace.applyTraceError(e)}function ux(e){M(e)?.conversationFace.applyTraceChanged(N(e))}function dx(e){ix(e);let t=e.currentState;e.btnRestart.classList.toggle(`visible`,Yb(t)||Xb(t)||t===b.DORMANT),e.btnWorkspaceRepos.classList.toggle(`visible`,e.card.dataset.workspace!==void 0),e.btnTrace.classList.toggle(`visible`,Wn()),e.btnPlan.classList.toggle(`visible`,jb(e)!==`hidden`),e.btnRemove.classList.add(`visible`)}function fx(e){e.sessionMenu.classList.remove(`open`),e.btnSessionMenu.setAttribute(`aria-expanded`,`false`)}function px(e,t){or(e.taskTitleEl,()=>Vn(e,t)),e.nameEl.addEventListener(`dblclick`,n=>{n.preventDefault(),dr(e,t)}),e.nameEl.addEventListener(`click`,()=>{rr(e.nameEl)||hi(t)}),e.nameEl.addEventListener(`keydown`,n=>{n.target===e.nameEl&&(n.key===`F2`||n.key===`Enter`)&&(n.preventDefault(),dr(e,t))}),e.btnRestart.addEventListener(`click`,()=>{fx(e),Hb(t,{readState:()=>e.currentState,canListEarlier:e.card.dataset.ephemeral===void 0})}),e.btnWorkspaceRepos.addEventListener(`click`,()=>{fx(e),qb(t)}),e.btnTrace.addEventListener(`click`,()=>{fx(e),Xy(t)}),e.btnDocs.addEventListener(`click`,()=>{fx(e),Ts(t)}),e.btnShown.addEventListener(`click`,()=>{fx(e),Zs(t)}),e.btnConversationView.addEventListener(`click`,()=>{fx(e),tr(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=>()=>{tr(e,{type:`set-session-guardrails`,id:t,isOn:n})};e.card.dataset.guarded===void 0?gr({title:`Restore guardrails`,message:`This session restarts with guardrails on, interrupting any turn in progress.`,confirmLabel:`Restore guardrails`,danger:!1,onConfirm:n(!0)}):gr({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=jb(e);n!==`hidden`&&(n===`face`?Cx(t):location.hash=na(t))}),e.btnRemove.addEventListener(`click`,()=>{fx(e),Bi(t)});function n(){for(let[,t]of P)t!==e&&fx(t);e.sessionMenu.classList.add(`open`),e.btnSessionMenu.setAttribute(`aria-expanded`,`true`)}e.btnSessionMenu.addEventListener(`click`,t=>{t.stopPropagation(),e.sessionMenu.classList.contains(`open`)?fx(e):n()}),ur({trigger:e.btnSessionMenu,menu:e.sessionMenu,menuItems:()=>[...e.sessionMenu.querySelectorAll(`.popup-menu-item.visible`)],isOpen:()=>e.sessionMenu.classList.contains(`open`),open:n,close:()=>fx(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&&fx(e)},{signal:e.abortController.signal}),e.btnDebug.addEventListener(`click`,n=>{n.stopPropagation(),er(e,t)}),document.addEventListener(`click`,t=>{let n=t.target instanceof Node?t.target:null;e.debugOpen&&!e.card.contains(n)&&nr(e)},{signal:e.abortController.signal})}function mx(e,t,n){let r=M(e);if(r){r.taskTitle=typeof t==`string`?t:null,r.taskTitleIsCustom=n===!0;for(let e of[r.taskTitleEl,r.titleTargetEl])e&&Jn(e,r.taskTitle)}}function hx(e){return typeof e==`string`&&P.has(e)}function gx(){return P.size}function _x(e){let t=e||{};t.cursorBlink!=null&&$p(t.cursorBlink),t.debugMode!=null&&(lr(t.debugMode),Qh(t.debugMode));for(let[,e]of P)e.term&&t.cursorBlink!=null&&(e.term.options.cursorBlink=t.cursorBlink)}function vx(){Ou(P.values(),Au())}function yx(){let e=$n([...P.values()].map(e=>({state:e.currentState,unseenOutcome:e.unseenOutcome}))),t=pr(e);document.title=t>0?`(${t}) Glimmervoid`:`Glimmervoid`}function bx(e,t,n,r={}){if(!dt)return;let i=N(e),a=Jb(n)||b.DORMANT,o=sr(i,Jb(t),a,r),s=a===b.DORMANT;dt.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(),dx(c),dh(c,i)}function u(){ox(i)||l()}let d=new AbortController,f=tx({signal:d.signal,requestPlan:(e,t,n)=>A({type:`session-plan`,id:e,agentId:t,revision:n}),requestDraft:(e,t)=>A({type:`session-plan`,id:e,agentId:t,draft:!0}),showTerminal:u,sendDecision:(e,t)=>A({type:`plan-decision`,id:e,...t}),reportProblem:e=>Kx(i,e)}),p=Dh({signal:d.signal,sendControl:e=>A(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:Jb(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=()=>dh(c,i),c._showTerminalFace=l,c._showPreferredFace=()=>{xx(c)===`plan`?Cx(i):ox(i)||l()},c._setBorrowed=e=>{c.isBorrowed=e,dx(c)},o.card.append(f.el,p.el),P.set(i,c),px(c,i),dx(c),c.btnDocs.classList.toggle(`visible`,fs(i)),Bs(i),a===b.RUNNING&&ot(c,!0),s||ch(c,i),yx(),c}function xx(e){let t=e.planReviewState.reviews.some(e=>e.state===`open`),n=e.planReviewState.reviews.some(rg);return Ab({hasPlan:e.hasPlan,pendingPromptKind:e.pendingPromptKind,hasOpenReview:t,hasApprovedReview:n})}function Sx(e){let t=M(e);return!t?.isBorrowed||xx(t)!==`plan`?!1:Cx(e)}function Cx(e){let t=M(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(N(e)),dx(t),Cm(t,N(e)),!0)}function wx(e,t){let n=M(e);n&&(n.hasPlan=t===!0,dx(n),Sx(e))}function Tx(e){let t=M(e.id);t&&(t.planReviewState=bg(t.planReviewState,e),t.hasPlan=e.hasPlan,t.planFace.update({state:t.planReviewState}),dx(t),Sx(e.id))}function Ex(e){let t=M(e.id);t&&t.planFace.update({draft:e})}function Dx(e){let t=M(e.id);t&&(t.planReviewState={reviews:e.reviews},t.hasPlan=!0,t.planFace.update({response:e}),dx(t))}function Ox(e){if(e.type!==`error`&&e.type!==`session-error`||e.scope!==`plan`&&e.scope!==`plan-decision`)return!1;let t=M(e.id);return t?e.scope===`plan`?(t.planFace.update({requestFailed:!0}),!0):(t.planFace.update({decisionRefused:!0,refusalText:e.message}),!0):!1}function kx(e){for(let[,t]of P)t.planFace.update({isConnected:e})}function Ax(e,t){let n=M(e);n&&(n.effectiveBase=typeof t==`string`?t:void 0)}function jx(e,t){let n=M(e);n&&(n.agent=typeof t==`string`?t:null,dx(n))}function Mx(e,t){let n=M(e);n&&(t?n.card.dataset.worktree=``:delete n.card.dataset.worktree)}function Nx(e,t,n){let r=M(e);r&&(Px(r.card,`guarded`,t),Px(r.card,`guardrailsReleased`,n),qn(r.btnGuardrails,r.card))}function Px(e,t,n){n?e.dataset[t]=``:delete e.dataset[t]}function Fx(e,t,n=!1){let r=M(e);r&&(r.activeAgents=Math.max(0,Number(t)||0),r.awaitingBackgroundTasks=Se(r.currentState,n===!0),r.card.toggleAttribute(`data-monitoring`,r.awaitingBackgroundTasks))}function Ix(e,t){let n=M(e);if(!n)return;let r=Ob(t),i=n.card.querySelector(`.usage-badge`);if(r)n.card.dataset.usage=``,i&&(i.dataset.tipLabel=r,i.dataset.tipDetail=kb(t),An(i));else{if(delete n.card.dataset.usage,!i)return;delete i.dataset.tipLabel,An(i)}}function Lx(e,t){let n=M(e);n&&(n.pendingPromptKind=typeof t==`string`?t:null,n.conversationFace.refresh(),!Sx(e)&&(typeof t!=`string`||t===``)&&n.face===`terminal`&&ox(e))}function Rx(e,t){let n=M(e);n&&(n.unseenOutcome=t??null)}function zx(e,t){t===`pending-review`||t===`parked`||t===`merging`?e.dataset.merge=t:delete e.dataset.merge}function Bx(e,t,n=null){let r=M(e),i=Jb(t)||`none`;r&&zx(r.card,i),V_(N(e),i,Jb(n)||null)}function Vx(e,t,n=null){let r=M(e),i=Jb(t)||`none`;r&&zx(r.card,i),U_(N(e),i,Jb(n)||null)}function Hx(e,t){W_(N(e),t)}function Ux(e,t){let n=M(e);if(!n)return;let r=Jb(t);n.card.dataset.session=r,n.nameEl.textContent=r}function Wx(e){let t=M(e);t&&(nr(t),P.delete(N(e)),Qb?.dropPlanBodyCache(N(e)),t.resizeObserver&&t.resizeObserver.disconnect(),t.abortController&&t.abortController.abort(),th(t,N(e)),Lp(t),t.term&&t.term.dispose(),t.term=null,t.fitAddon=null,t.card&&t.card.remove(),yx())}function Gx(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 Kx(e,t){let n=M(e);n?Xn(n).show(`error`,t):F({source:`Session`,sessionId:typeof e==`string`?e:void 0,message:t})}function qx(e,t){let n=M(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 Jx(e,t){e.term&&(t===b.DONE||t===b.FAILED)&&(e.term.clear(),e.term.reset())}function Yx(e){let t=P.get(e);t&&Ln({state:t.currentState,unseenOutcome:t.unseenOutcome})&&document.visibilityState===`visible`&&(Yi()||document.hasFocus())&&A({type:`dismiss`,id:e,expectedState:t.currentState})}function Xx(e,t,n){let r=document.activeElement;return si({previousState:t,nextState:n,isPhoneLayout:Yi(),isDocumentVisible:document.visibilityState===`visible`,isDocumentFocused:document.hasFocus(),isActiveViewer:e._isActiveViewer?.()===!0,hasFocusInsideTerminal:r instanceof Node&&e.termWrap.contains(r)})}function Zx(){return Ct()&&!ya()}function Qx(e,t,n,r=``){let i=M(e);if(!i)return;let a=Jb(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(),ot(i,a===b.RUNNING)),o===b.DORMANT&&a!==b.DORMANT&&ch(i,N(e)),Bn({state:a})===`resting`&&_a(N(e)),i.card.dataset.state=a,i.card.toggleAttribute(`data-monitoring`,Se(a,i.awaitingBackgroundTasks)),dx(i),(a===b.WAITING&&o!==b.WAITING||a===b.COMPLETE&&o!==b.COMPLETE)&&!Fl(r)&&Zx()&&vd(Kt()),Xx(i,o,a)&&A({type:`dismiss`,id:N(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()&&vd(Kt())),(a===b.DONE||a===b.FAILED)&&Gx(i,c,a),a===b.INITIALIZING&&Jx(i,o),yx()}var $x=`(no path)`;function eS(e){if(!e)return $x;let t=String(e).replace(/[/\\]+$/,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return(n===-1?t:t.slice(n+1))||`(no path)`}function tS(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):$x,a=i.get(r);a||(a={key:r,label:r===`(no path)`?$x:eS(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:eS(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 nS(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 rS({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(hn(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 iS(e,t,n){let{header:r,label:i,count:a,addButton:o,forgetButton:s}=e,c=t.key===$x,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 aS={waitingCount:0,finishedCount:0,failedCount:0},oS={failed:fe[b.FAILED],waiting:fe[b.WAITING],finished:fe[b.COMPLETE]},sS={failed:`failed`,waiting:`needs you`,finished:`finished`},cS=[`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`],lS=2500,uS=`cubic-bezier(0.16, 1, 0.3, 1)`,dS=`cubic-bezier(0.5, 0, 0.2, 1)`,fS=260,pS=200,mS=200,hS=300,gS=28,_S=360,vS=420,yS=200,bS=3,xS=window.matchMedia?.(`(prefers-reduced-motion: reduce)`),SS=new WeakMap;function CS(e){let t=SS.get(e);if(!t)throw Error(`attention banner was not built by buildAttentionBanner`);return t}function wS(e){return!document.hidden&&typeof e.animate==`function`&&e.getClientRects().length>0}function TS(){return xS?.matches??!1}function ES(e){return e.map(e=>({easing:uS,...e}))}function DS(e,t){let n=k(`div`,`attention-banner`);n.setAttribute(`role`,`status`),n.style.setProperty(`--attention-head-tile-px`,`${Mn.headTile}px`),n.style.setProperty(`--attention-tile-px`,`${Mn.tile}px`),n.style.setProperty(`--attention-tile-gap-px`,`${Mn.tileGap}px`),n.style.setProperty(`--attention-overflow-px`,`${Mn.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),SS.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(()=>kS(n)).observe(r),OS(n,aS,[]),n}function OS(e,t,n){let r=CS(e);r.tiles=n,O(e,`.attention-banner-count`).textContent=jn(t);let i=n.length>0;e.toggleAttribute(`data-empty`,!i),e.toggleAttribute(`data-jumpable`,i),i&&GS(e,r),kS(e)}function kS(e){let t=CS(e),n=O(e,`.attention-banner-chips`),r=O(n,`.attention-tile-overflow`),i=wS(e),a=t.tiles.slice(0,Qn(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():NS(n,l[r])});let u=t.headId,d=[],f=null;a.forEach((i,a)=>{let o=t.tileById.get(i.id),s=o??jS(e,i.id);o||(t.tileById.set(i.id,s),d.push(s)),MS(s,i,a===0),(s.parentElement!==n||AS(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)&&LS(e,null),i){for(let e of d)PS(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?IS(r,a):a!==0&&FS(r,a,n)})}}function AS(e){let t=e.previousElementSibling;for(;t?.hasAttribute(`data-leaving`);)t=t.previousElementSibling;return t}function jS(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`,()=>LS(e,t)),n.addEventListener(`pointerleave`,()=>LS(e,null)),n}function MS(e,{kind:t,name:n},r){e.dataset.kind=t,e.toggleAttribute(`data-head`,r);let i=`${n}, ${sS[t]}`;e.title=i,e.setAttribute(`aria-label`,i),Dn(O(e,`.attention-tile-icon`),oS[t])}function NS(e,t){e.toggleAttribute(`data-leaving`,!0),e.style.left=`${t.left}px`,e.style.top=`${t.top}px`;let n=TS()?[{opacity:1},{opacity:0}]:ES([{transform:`none`,opacity:1},{transform:`scale(0.6)`,opacity:0}]),r=e.animate(n,{duration:mS,fill:`forwards`});r.onfinish=()=>e.remove(),r.oncancel=()=>e.remove()}function PS(e){let t=TS()?[{opacity:0},{opacity:1}]:ES([{transform:`scale(0.6)`,opacity:0},{transform:`none`,opacity:1}]);e.animate(t,{duration:pS})}function FS(e,t,n){TS()||e.animate(ES([{transform:`translateX(${t}px)`},{transform:`none`}]),{duration:hS,delay:n*gS,fill:`backwards`})}function IS(e,t){TS()?e.animate([{opacity:.35},{opacity:1}],{duration:_S,easing:uS}):e.animate(ES([{transform:`translateX(${t}px) scale(0.8)`,filter:`brightness(1.8)`},{transform:`scale(1.1)`,offset:.6},{transform:`none`,filter:`none`}]),{duration:_S})}function LS(e,t){let n=CS(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 RS(e){return!e||e.getClientRects().length===0?null:e.getBoundingClientRect()}function zS(e,t,n){let r=CS(e);if(r.flyingIds.has(t))return;let i=r.tileById.get(t);if(!i||!wS(e)){n();return}LS(e,null),r.flyingIds.add(t);let a=r.hooks.rowFor(t),o=i.getBoundingClientRect(),s=RS(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(BS(o,s),VS(s)),u=()=>{c.remove(),r.flyingIds.delete(t),i.isConnected&&(i.style.visibility=``),n()};l.onfinish=u,l.oncancel=u}function BS(e,t){return!t||TS()?[{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 VS(e){return!e||TS()?{duration:yS,fill:`forwards`}:{duration:vS,easing:dS,fill:`forwards`}}function HS(e){let t=CS(e);e.hasAttribute(`data-empty`)&&WS(e,t);for(let e of t.pressAnimations)e.cancel();if(t.pressAnimations=[],!wS(e))return;let n={duration:fS};if(t.pressAnimations.push(e.animate(ES([{opacity:0},{opacity:.07,offset:.3},{opacity:0}]),{...n,pseudoElement:`::after`})),!TS()){t.pressAnimations.push(e.animate(ES([{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(ES([{transform:`none`},{transform:`translateY(${bS}px)`,offset:.3},{transform:`none`}]),n),r.animate(ES([{transform:`none`},{transform:`translateY(-${bS}px)`,offset:.3},{transform:`none`}]),{...n,pseudoElement:`::after`}))}}function US(e){let t=cS.filter(t=>t!==e);return t[Math.floor(Math.random()*t.length)]??cS[0]}function WS(e,t){let n=US(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(()=>GS(e,t),lS)}function GS(e,t){t.allClearLineTimer!==null&&window.clearTimeout(t.allClearLineTimer),t.allClearLineTimer=null,e.toggleAttribute(`data-all-clear-line`,!1)}var KS=e=>e.ui.path,qS=window.matchMedia?.(`(prefers-reduced-motion: reduce)`),JS=null,YS=null,XS=null,ZS=null,QS=null,$S=null,eC=null,W=!1,tC=!1,nC=new Map,rC=new Map,iC=new Map,aC=new Map,oC=null,sC=``,cC=[],lC=new Set;function uC(){return nS(fC(xC()),lC)}function dC(e){let t=oC;if(oC=e||null,t&&t!==oC){let e=rC.get(t);e&&(e.tabIndex=-1,e.setAttribute(`aria-selected`,`false`))}if(oC){let e=rC.get(oC);e&&(e.tabIndex=0,e.setAttribute(`aria-selected`,`true`))}}function fC(e){return tS(e,KS,Ml(e,KS))}function pC(e){let t=aC.get(e.key),n=iC.get(e.key);return(!t||!n)&&(t=rS({onAdd:Pi,onForget:e=>{Nl(e),DC()}}),n=k(`div`,`focus-rail-list`),n.setAttribute(`role`,`listbox`),aC.set(e.key,t),iC.set(e.key,n)),iS(t,e,`rail`),n.setAttribute(`aria-label`,`${e.label} sessions`),{header:t.header,list:n}}function mC(){return W}function hC(){return I.snapshot().focusedSessionId}function gC({rail:e,center:t,resizer:n}){if(JS=e,XS=t,!JS||!XS)return;let r=JS,i=XS;yC(n),r.removeAttribute(`role`),r.removeAttribute(`aria-label`),r.setAttribute(`aria-keyshortcuts`,Xt(Mu)),YS=DS({onJump:jC,rowFor:e=>rC.get(e)},Ru());let a=k(`details`,`rail-status-key`);a.append(k(`summary`,`rail-status-key-summary`,`Status key`),Dl()),r.append(YS,a),QS=k(`div`,`focus-empty`),QS.innerHTML=`<p class="focus-empty-title"></p><p class="focus-empty-desc"></p>`,$S=QS.querySelector(`.focus-empty-title`),eC=QS.querySelector(`.focus-empty-desc`),ZS=k(`div`,`focus-card-slot`),i.append(QS,ZS),r.addEventListener(`keydown`,bC)}var _C={minPx:180,maxPx:480},vC=16;function yC(e){e&&JS&&Zc({resizer:e,column:JS,widthHost:JS,widthProperty:`--rail-width`,bounds:_C,keyStepPx:vC,getStoredWidth:Rt,setStoredWidth:gt})}function bC(e){if(e.key===`Delete`||e.key===`Backspace`){let t=e.target instanceof HTMLElement?e.target:null,n=t?.dataset.id;if(!n||rC.get(n)!==t)return;e.preventDefault(),Bi(n);return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`||e.altKey||e.metaKey||e.ctrlKey||e.shiftKey)return;let t=Pn(uC(),oC,e.key===`ArrowDown`?1:-1);t!=null&&(e.preventDefault(),dC(t),rC.get(t)?.focus())}function xC(){return Nn(Ei(SC))}function SC(e){return e.nameEl?e.nameEl.textContent:e.card&&(e.card.dataset.session||e.card.dataset.id)||``}function CC(e){let{row:t,refs:n}=pl(`button`);t.type=`button`,t.dataset.id=e,t.setAttribute(`role`,`option`),t.addEventListener(`click`,()=>wC(e)),t.addEventListener(`pointerenter`,()=>{YS&&LS(YS,e)}),t.addEventListener(`pointerleave`,()=>{YS&&LS(YS,null)});let{item:r,removeButton:i}=ml(t,()=>Bi(e));return r.setAttribute(`role`,`presentation`),i.tabIndex=-1,Object.assign(t,{_refs:n,_row:r})}function wC(e){let t=Ci(e);t&&(LC(e),NC(t,e))}function TC(e,{id:t,ui:n,state:r,name:i},a){let o=nC.get(t)||`none`;xl(e,e._refs,{ui:n,state:r,name:i??``,mergeStatus:o===`none`?``:o,attentionPosition:a}),e.classList.toggle(`focused`,t===hC()),e.classList.toggle(`has-unopened-shown`,Ls(t));let s=t===oC;e.setAttribute(`aria-selected`,String(s)),e.tabIndex=s?0:-1}function EC(e,t){if(!W)return;let n=e?.card?.dataset.id,r=n?rC.get(n):null;r&&(t===`flag`?r.dataset.activity=e._activity||``:it(r._refs?.glyph))}ct(EC),at(()=>{if(W)for(let[e,t]of rC){let n=P.get(e);n&&(t._refs.elapsed.textContent=rt(n))}});function DC(){if(!W)return;let e=JS;if(!e)return;let t=xC(),n=fC(t),r=new Set,i=zn(t,hC()),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=rC.get(e);o||(o=CC(e),rC.set(e,o)),TC(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,Ag);if(a.length>0){let e=k(`div`,`review-look-list`);for(let t of a)e.append(jg(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 Ng(e){return(e??[]).map(e=>{let t=k(`span`,`review-file-hint`,e.text);return t.title=e.title,t})}function Pg(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 Fg(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=Pg(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 Ig(e,t){return t===`merged`||t===`none`||e===`parked`&&t===`pending-review`}function Lg(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 Rg({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=Ug(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 zg({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?Rg({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 Bg(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 ${Ug(t)}.`}function Vg(e,t){return e.namesMergeTarget?null:`merges into ${Ug(t)}`}function Hg({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 Ug(e){return e||`base`}function Wg(e,t){return`Merge into ${Ug(e)}, push it, and rebase this worktree, then keep working (${t})`}function Gg(e){return e===`base-diverged`?`Resync the base branch by hand, then Merge again.`:`Needs manual merge`}function Kg(e,t,n){let r=e!==`parked`||e===`parked`&&t===`base-diverged`;return{isRendered:r,isEnabled:r&&e!==`merging`&&n}}function qg({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 Jg(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 Yg({fetched:e,changedFileCount:t,hasCommits:n}){return!e||t>0||n}function Xg(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=Xg(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 Qg(e){return!e||e.fetched===!1?`recheck`:e.state===`ahead`||e.state===`behind`?`resync`:`recheck`}function $g(e,t,n){let r=n?` (${t})`:``;if(!e||Qg(e)===`recheck`)return`Click to fetch and check again${r}`;let i=e.branch||`Base branch`,a=Xg(e.upstream);return e.state===`behind`?`Click to fast-forward ${i} to ${a}${r}`:`Click to push ${i} to ${a}${r}`}function e_(e){return e?.state!==`in-sync`||e.fetched===!1}function t_(e){if(e.error)return`Resync failed: ${e.error}`;let t=e.branch||`The base branch`,n=Xg(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 n_=new Set([`pending-review`,`parked`]),r_=600,i_=zt(`merge`,Mu),a_=zt(`resolve-or-resync`,Mu),o_={minPx:260,maxPx:700},s_=16,c_=5e3,l_=new Map,u_=new Map,d_=new Map,f_=new Map,p_=new Map,m_=new Map,h_=new Set,g_=new WeakMap,__=new WeakMap,v_=new Set,y_=new Set,b_=!1,x_=null,S_=null,z=null,B=null,C_=null,w_=null,T_=null,E_=null,D_=null,O_=!1,k_=null,A_=null,j_=null,M_=null,N_=new Map,V=null,P_=null;function F_(e,t){let n=k(`button`,`review-icon-button`);return n.type=`button`,n.title=e,n.setAttribute(`aria-label`,e),n.append(hn(t)),n}function I_(){O_=!1,z?.querySelector(`.review-more-menu`)?.remove(),z?.querySelector(`.review-more-button`)?.setAttribute(`aria-expanded`,`false`)}function L_({panel:e}){if(S_=e,!S_)return;let t=S_,n=k(`div`,`review-sidebar-head`),r=k(`span`,`review-sidebar-title`,`Review`);D_=k(`span`,`review-sidebar-session`),r.append(D_);let i=e=>{t.toggleAttribute(`data-collapsed`,e),Et(!e)},a=F_(`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=F_(`Open review`,`M10 3L5 8L10 13`);s.classList.add(`review-sidebar-open`),s.addEventListener(`click`,()=>i(!1)),w_=k(`div`,`review-rail-status`),T_=k(`span`,`review-rail-added`),E_=k(`span`,`review-rail-removed`),w_.append(T_,E_),C_=k(`span`,`review-rail-label`,`Review`),o.append(s,C_,w_),z=k(`div`,`review-controls`),B=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,z,B,c),t.toggleAttribute(`data-collapsed`,!ft()),z_(B),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&O_&&(e.preventDefault(),I_(),z?.querySelector(`.review-more-button`)?.focus())}),document.addEventListener(`pointerdown`,e=>{O_&&e.target instanceof Element&&(z?.contains(e.target)&&e.target.closest(`.review-more-button, .review-more-menu`)||I_())}),Zc({resizer:c,column:t,widthHost:t,widthProperty:`--sidebar-width`,bounds:o_,keyStepPx:s_,getStoredWidth:Zt,setStoredWidth:Dt,growsLeftward:!0}),gi(e=>{O_=!1,j_=null,v_.clear(),y_.clear(),b_=!1,x_=null,e&&fv(e),e&&!mv(e)&&hv(e),H()}),H()}function R_(e,t){let n=l_.get(e);l_.set(e,t),Ig(n,t)&&(d_.delete(e),f_.delete(e),p_.delete(e),e===L()&&pv(e)),e===L()&&H()}function z_(e){let t=!1,n=null,r=null,i=e=>A({type:`watch-session-changes`,id:e}),a=()=>{let e=t&&document.visibilityState===`visible`?L():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),gi(a)}function B_(e){S_&&(e?(Oe(S_,e),H()):(_e(S_),H()))}function V_(e,t,n=null){let r=t||`none`;u_.set(e,n);let i=N_.get(e);i!==void 0&&i!==r&&N_.delete(e),R_(e,r)}function H_(e){let t=N(e);t&&N_.delete(t)&&t===L()&&H()}function U_(e,t,n=null){u_.set(e,n),N_.delete(e),R_(e,t||`none`)}function W_(e,t){d_.set(e,t),f_.delete(e),e===L()&&(x_&&xv(x_,t),H(),Sv())}function G_(e,t){let n=N(e);n&&(f_.set(n,t),n===L()&&H())}function K_(e,t){let n=N(e);if(!n)return;let r=y.safeParse(t);r.success&&r.data.sessionId===n&&(p_.set(n,r.data),n===L()&&H())}function q_(e,t){let n=N(e),r=t;m_.set(n,r),r&&r.action!==void 0&&J_(n,r),n===L()&&H()}function J_(e,t){h_.delete(e),clearTimeout(P_??void 0),P_=null;let n=t_(t);V=n?{forId:e,text:n,isError:!!t.error}:null,V&&!V.isError&&(P_=setTimeout(()=>{V&&V.forId===e&&(V=null),H()},5e3))}function Y_(e){let t=N(e);t&&t===L()&&fv(t)}function X_(e){let t=N(e);if(t!==L())return;let n=!d_.has(t)||f_.has(t),r=!p_.has(t)||Z_(p_.get(t));n&&fv(t),r&&!n&&pv(t),H()}function Z_(e){return e?!!e.error||e.repos.some(e=>e.error!==null):!1}function Q_(e){let t=N(e);l_.delete(t),u_.delete(t),d_.delete(t),f_.delete(t),p_.delete(t),m_.delete(t),h_.delete(t),V&&V.forId===t&&(clearTimeout(P_??void 0),V=null),t===L()?hi(null):H()}function $_(){let e=L(),t=e?P.get(e):null;if(!e||!t)return ev(null,`No session is open to merge.`);if(mv(e))return ev(e,`A workspace session has no worktree to merge.`);if(N_.has(e))return ev(e,`Merge is already on its way for "${bv(t,e)}".`);let n=l_.get(e)||`none`,r=!!d_.get(e)?.hasCommits,i=Kg(n,u_.get(e)||null,cv(t.currentState,r));return Hg({status:n,mergeReason:u_.get(e)||null,live:dv(t.currentState),isMergeRendered:i.isRendered,hasChanges:sv(e)})!==`merge`||!i.isEnabled?ev(e,qg({status:n,hasCommits:r,live:dv(t.currentState),state:t.currentState})??`Nothing to merge in "${bv(t,e)}" right now.`):(lv(e,t.currentState),!0)}function ev(e,t){return j_={forId:e,text:t},clearTimeout(M_??void 0),M_=setTimeout(()=>{j_=null,H()},c_),H(),!1}function tv(){let e=L();if(!e||mv(e))return!1;let t=P.get(e);if(!t)return!1;let n=l_.get(e)||`none`,r=u_.get(e)||null;return Hg({status:n,mergeReason:r,live:dv(t.currentState),isMergeRendered:Kg(n,r,!1).isRendered,hasChanges:sv(e)})!==`resolve`||nv(e)?!1:(rv(e),!0)}function nv(e){return k_?.forId===e&&!k_.isError}function rv(e){let t=A({type:`resolve-session-merge`,id:e});k_=t?{forId:e,text:`Resolve prompt sent`,isError:!1}:{forId:e,text:`Not connected. The resolve prompt was not sent.`,isError:!0},clearTimeout(A_??void 0),A_=setTimeout(()=>{k_=null,H()},t?3e3:c_),H()}function iv(){let e=L();return!e||!P.has(e)||mv(e)||_v(e)?!1:(vv(e),!0)}function av(e){if(!e)return{committed:[],uncommitted:[]};let t=g_.get(e);if(t)return t;let n={committed:Fg(e.committed?.diff||``),uncommitted:Fg(e.uncommitted?.diff||``)};return g_.set(e,n),n}function ov(e){let t=__.get(e);if(t)return t;let n=Og(e);return __.set(e,n),n}function sv(e){let t=av(d_.get(e)),n=[...t.committed,...t.uncommitted],r=d_.get(e)??null;return Yg({fetched:d_.has(e),changedFileCount:Lg(n).files,hasCommits:!!r?.hasCommits})}function cv(e,t){return(se.includes(e)||e===b.RUNNING)&&t}function lv(e,t){t===b.RUNNING?gr({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:()=>uv(e,!0)}):uv(e,!1)}function uv(e,t){N_.has(e)||(A(t?{type:`merge-continue-session`,id:e,force:!0}:{type:`merge-continue-session`,id:e})?(N_.set(e,l_.get(e)||`none`),e===L()&&H()):ev(e,`Not connected. The merge was not sent.`))}function dv(e){return e!==b.DORMANT&&e!==b.DONE&&e!==b.FAILED}function fv(e){A({type:`request-session-diff`,id:e}),pv(e)}function pv(e){p_.has(e)||p_.set(e,null),A({type:`request-change-map`,id:e})}function mv(e){return P.get(e)?.card.dataset.workspace!==void 0}function hv(e){m_.set(e,null),A({type:`request-branch-sync`,id:e}),e===L()&&H()}function gv(e){h_.add(e),clearTimeout(P_??void 0),V&&V.forId===e&&(V=null),A({type:`resync-branch`,id:e}),e===L()&&H()}function _v(e){return h_.has(e)||m_.get(e)===null}function vv(e){_v(e)||(Qg(m_.get(e))===`resync`?gv(e):hv(e))}function yv(e,t){return t?{text:`Resyncing`,loading:!0,error:!1}:V&&V.forId===e?{text:V.text,loading:!1,error:V.isError}:null}function bv(e,t){return e?.card?.dataset.session||t}function xv(e,t){if(!t)return;let{committed:n,uncommitted:r}=av(t);for(let t of n)(t.path===e||t.oldPath===e)&&v_.add(`committed:${t.path}`);for(let t of r)(t.path===e||t.oldPath===e)&&v_.add(`uncommitted:${t.path}`)}function Sv(){if(!B||!x_)return;let e=B.querySelectorAll(`.review-file`);for(let t of e)if(t.dataset.path===x_||t.dataset.oldPath===x_){t.scrollIntoView({block:`nearest`}),x_=null;return}}function Cv(e){x_=e,xv(e,d_.get(L()??``)),H(),Sv()}function wv(){b_=!0,H()}function H(){let e=B?.scrollTop??0;Tv(),B&&(B.scrollTop=e)}function Tv(){if(!z||!B)return;z.replaceChildren(),B.replaceChildren(),C_&&(C_.hidden=!0),w_&&(w_.hidden=!0);let e=L(),t=e?P.get(e):null;if(Dv(e,t),!e||!t){j_&&z.append(Ev(j_.text,!0)),Ov(`No session selected`,`Click a session name to review its changes here.`);return}let n=mv(e),r=l_.get(e)||`none`,i=u_.get(e)||null,a=t.currentState,o=n_.has(r),s=d_.has(e),c=s?d_.get(e):null,l=f_.get(e)??null,{committed:u,uncommitted:d}=av(c),f=!!c?.hasCommits,p=dv(a),m=Kg(r,i,cv(a,f)),h=m_.get(e),g=h_.has(e),_=Ug(t.effectiveBase),v=Lg([...u,...d]),y=Hg({status:r,mergeReason:i,live:p,hasChanges:Yg({fetched:s,changedFileCount:v.files,hasCommits:f}),isMergeRendered:m.isRendered}),b=zg({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||Yi()||e_(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=F_(`Refresh branch sync`,`M13 6A5 5 0 1 0 13 10M13 2v4H9`);n.classList.add(`review-branch-sync-refresh`),n.title=$g(h,a_,y!==`resolve`),n.disabled=_v(e),n.setAttribute(`aria-description`,t),n.addEventListener(`click`,()=>vv(e)),C.append(k(`span`,`sr-only`,t),n)}}if(x||z.append(C),u.length>0)for(let e of Jg(c?.bases??[])){let t=k(`div`,e.isUnverified?`review-diff-base review-diff-base-unverified`:`review-diff-base`,e.text);t.title=e.fullSha,z.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=kv(e,y!==`resolve`);t&&ee.append(t)}ee.childElementCount>0&&z.append(ee),r===`parked`&&z.append(k(`div`,`review-status-explanation`,Gg(i))),C_&&(C_.hidden=!1),w_&&(w_.hidden=!1,w_.setAttribute(`aria-label`,`${b.text}, +${v.added}, -${v.removed}`),w_.title=b.text),T_&&(T_.textContent=`+${v.added}`),E_&&(E_.textContent=`-${v.removed}`);let w=n?null:Pv(e,{status:r,reviewable:o,mergeAction:m,live:p,state:a,effectiveBase:_,primaryAction:y});w&&z.append(w);let T=n?null:yv(e,g),te=!n&&y===`merge`&&!m.isEnabled?qg({status:r,hasCommits:f,live:p,state:a}):null;if(te){let e=k(`div`,`review-control-reason`,te);e.id=`review-merge-reason`,z.append(e),z.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||z.insertBefore(ee,C.isConnected?C.nextSibling:z.firstChild),z.querySelector(`.review-branch-sync-button, .review-branch-sync-refresh`)?.setAttribute(`aria-describedby`,e.id)}if(k_?.forId===e&&z.append(Ev(k_.text,k_.isError)),j_&&(j_.forId===e||j_.forId===null)&&z.append(Ev(j_.text,!0)),l){B.append(k(`p`,`review-diff-error`,l));return}if(x){Ov(b.text,Bg(n,_));return}let E=p_.get(e),ne=E?ov(E):null,re=ne?Mg(ne,{isShowingAll:b_,onShowAll:wv,onOpenFile:Cv}):null;re&&B.append(re);let ie=u.length>0&&d.length>0;u.length>0&&B.append(Av({kind:`committed`,label:ie?`Committed`:null,meaning:Vg(b,_),files:u,changeMapView:ne})),d.length>0&&B.append(Av({kind:`uncommitted`,label:ie?`Not committed yet`:null,meaning:null,files:d,changeMapView:ne}))}function Ev(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 Dv(e,t){if(!D_)return;let n=e&&t?bv(t,e):``;D_.textContent=n,D_.hidden=!n,D_.title=n}function Ov(e,t){if(!B)return;let n=k(`div`,`review-empty`);n.append(k(`div`,`review-empty-title`,e),k(`div`,`review-empty-desc`,t)),B.append(n)}function kv(e,t){let n=m_.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=F_(`Refresh branch sync`,`M13 6A5 5 0 1 0 13 10M13 2v4H9`);return a.classList.add(`review-branch-sync-button`),a.title=$g(n,a_,t),a.disabled=h_.has(e),a.addEventListener(`click`,()=>vv(e)),i.append(a,k(`span`,`review-branch-sync-label`,r)),i}function Av({kind:e,label:t,meaning:n,files:r,changeMapView:i}){let a=k(`div`,`review-section`);a.dataset.kind=e,t&&a.append(jv(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?kg(s,t.path):null;n&&n!==c&&o.append(k(`div`,`review-repo-label`,n)),c=n,o.append(Mv(t,e,i))}return a.append(o),a}function jv(e,t,n){let r=Lg(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 Mv(e,t,n){let r=`${t}:${e.path}`,i=v_.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=Ng(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=v_.has(r);e&&v_.delete(r),e||v_.add(r),H()}),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>=r_&&!y_.has(r)){p=!0;break}d.append(k(`div`,`review-hunk-head`,t.header));for(let e of t.lines){if(f>=r_&&!y_.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`,()=>{y_.add(r),H()}),d.append(e)}return a.append(d),a}function Nv({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 Pv(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(Nv({id:`review-merge-btn`,label:`Merge`,shortcut:i_,title:Wg(o,i_),disabled:!r.isEnabled||N_.has(e),onClick:()=>lv(e,a)})),l&&c.append(Nv({label:`Resolve`,shortcut:a_,title:`Paste a resolve prompt into this session so the agent can finish the merge (${a_})`,disabled:nv(e),onClick:()=>rv(e)}));let u=k(`div`,`review-action-controls`);if(u.append(c),!n||i)return c.childElementCount>0?u:null;let d=F_(`More review actions`,vn);if(d.classList.add(`review-more-button`),d.setAttribute(`aria-haspopup`,`menu`),d.setAttribute(`aria-expanded`,String(O_)),d.setAttribute(`aria-controls`,`review-more-menu`),d.addEventListener(`click`,()=>{O_=!O_,H(),(z?.querySelector(O_?`.review-more-menu button:not(:disabled)`:`.review-more-button`)??z?.querySelector(`.review-more-button`))?.focus()}),c.append(d),!O_)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=Nv({label:`Discard worktree`,danger:!0,disabled:t===`merging`,onClick:()=>{O_=!1,H();let t=bv(P.get(e),e);gr({title:`Discard worktree`,message:`Throw away the worktree changes for "${t}"? This cannot be undone.`,confirmLabel:`Discard`,danger:!0,onConfirm:()=>A({type:`discard-session-worktree`,id:e})})}});n.setAttribute(`role`,`menuitem`),f.append(n)}return u.append(f),u}var Fv=160,Iv=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 Lv(e){let t=e.split(/\r?\n/,1)[0]?.trim()??``;return t.length<=Fv?t:`${t.slice(0,157)}...`}function Rv(e,t){let n=Iv[e];if(!n||!t||typeof t!=`object`||Array.isArray(t))return``;let r=t[n];return typeof r==`string`?Lv(r):``}var zv=5e3;function Bv(e){let t=e.match(/<command-name>([^<]*)<\/command-name>/)?.[1];return t===void 0||/[\r\n]/.test(t)?null:t.trim()||null}function Vv(e,t){if(!e.toolUseId)return Bv(e.text)??`context`;let n=t.get(e.toolUseId);return n?Rv(n.name,n.input)||n.name:`expansion`}function Hv(e){return e.kind!==`expansion`||e.toolUseId?!1:Bv(e.text)!==null}function Uv(e){return e.kind===`prompt`||e.kind===`session`||Hv(e)}function Wv(e){return new TextEncoder().encode(e).byteLength}var Gv={prompt:`PROMPT`,expansion:`EXPANSION`,thinking:`THINKING`,assistant:`ASSISTANT`,tool_call:`TOOL`,tool_result:`RESULT`,session:`SESSION`,notice:`NOTICE`,raw:`RAW`};function Kv(e,t){if(e.kind===`prompt`)return{prefix:`Prompt: `,text:Lv(e.text)};if(e.kind===`thinking`)return{prefix:`Thinking: `,text:Lv(e.text)};if(e.kind===`assistant`)return{prefix:`Assistant: `,text:Lv(e.text)};if(e.kind===`notice`)return{prefix:`Notice: `,text:Lv(e.text)};if(e.kind===`raw`)return{prefix:`Raw: `,text:Lv(e.line)};if(e.kind===`session`)return{prefix:`Session: `,text:`${e.vendor} ${e.vendorSessionId}`};if(e.kind===`expansion`)return{prefix:`Expansion: `,text:Vv(e,t)};if(e.kind===`tool_call`){let t=Rv(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:`${Wv(e.content)} bytes`}}function qv(e){if(!e.agentType)return``;let t=e.agentId?` ${e.agentId.slice(-6)}`:``;return`[${e.agentType}${t}] `}function Jv(e,t){let n=Kv(e,t),r=qv(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:Gv[e.kind],text:`${r}${i}`,tone:o,badges:a}}function Yv(e,t){return{record:e,...Jv(e,t)}}function Xv(e){return e.kind!==`tool_result`&&e.kind!==`expansion`?null:e.toolUseId||null}function Zv(e,t){let n=Xv(e);return!n||t.has(n)?null:n}function Qv(e,t,n=1){e.set(t,(e.get(t)??0)+n)}function $v(e,t){let n=(e.get(t)??0)-1;n>0?e.set(t,n):e.delete(t)}function ey(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=Xv(i.record);a&&t.has(a)&&(n.rows[r]=Yv(i.record,e.toolCallByUseId))}}function ty(){return{turns:[],toolCallByUseId:new Map,unresolvedToolUseCounts:new Map}}function ny(){return{rowCount:0,toolCallCount:0,errorCount:0,resultBytes:0}}function ry(e,t,n){e.metrics.rowCount+=n,t.record.kind===`tool_call`&&(e.metrics.toolCallCount+=n),t.record.kind===`tool_result`&&(e.metrics.resultBytes+=Wv(t.record.content)*n,t.record.isError&&(e.metrics.errorCount+=n))}function iy(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&&Qv(e.unresolvedToolUseCounts,t);let a=Yv(i,e.toolCallByUseId);if(Uv(i)){r={head:a,rows:[],hasTrimmedRows:!1,startedAt:i.ts,metrics:ny()},ry(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:ny()},e.turns.push(r),n.push({turnIndex:e.turns.length-1,isNewTurn:!0,head:null,rows:[]})),r.rows.push(a),ry(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 ay(e,t){let n=ty();iy(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)||Qv(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],ey(e,i),{newTurns:n.turns,mergedHead:c,mergedRows:l,needsRerender:i.size>0}}function oy(e){return e.rows.length+ +!!e.head}function sy(e){let t=0;for(let n of e.turns)t+=oy(n);return t}function cy(e,t){for(let n of t){if(n.record.kind===`tool_call`){e.toolCallByUseId.delete(n.record.toolUseId);continue}let t=Xv(n.record);t&&$v(e.unresolvedToolUseCounts,t)}}function ly(e,t){cy(e,t.head?[t.head,...t.rows]:t.rows)}function uy(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);cy(e,i);for(let e of i)ry(n,e,-1);return n.rows=n.rows.slice(r),n.hasTrimmedRows=!0,r}function dy(e,t=zv){let n=sy(e),r=0;for(;n>t&&r<e.turns.length-1;){let t=e.turns[r];if(!t)break;n-=oy(t),ly(e,t),r+=1}return r>0&&(e.turns=e.turns.slice(r)),n<=t?{droppedTurnCount:r,droppedRowCount:0}:{droppedTurnCount:r,droppedRowCount:uy(e,n-t)}}function fy(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 py(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 my(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 hy(e,t=zv){return!e.selectedSessionId||!e.hasLoadedOnce||e.hasDroppedEarliestRows||e.residentRowCount>=t?!1:e.firstOffset>0}function gy(e,t=zv){return!hy(e,t)||e.hasPendingRequest||!e.selectedSessionId?null:{id:e.selectedSessionId,direction:`earlier`,after:0,endingAt:e.firstOffset}}function _y(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 vy=1e4,yy=null,by=null,xy=[],Sy=null,Cy=null,U=null,wy=null,Ty=!1,Ey=null,Dy=()=>!1,Oy=new Set;function ky(e){for(let t of Oy)t(e)}function Ay(){wy&&=(clearTimeout(wy.timeoutHandle),null)}function jy(){wy=null,Ey=`The trace did not load within ${Math.round(vy/1e3)} s.`,ky({kind:`rebuild`})}function My(e){Ay(),Ty=!1,Ey=null,Sy=e,U=e?{sessionId:e,grouping:ty(),firstOffset:0,nextOffset:0,hasDroppedEarliestRows:!1,filePath:``,hasLoadedOnce:!1}:null,ky({kind:`selection-reset`})}function Ny(e){let t=py(xy,Cy,Sy,e);return Cy&&t===Cy&&(Cy=null),t!==Sy&&(My(t),!0)}function Py(e){if(!yy)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};yy(t)?wy={request:e,timeoutHandle:setTimeout(jy,vy)}:(Ey=l,ky({kind:`header`}))}function Fy(e=!1){if(!yy)return;let t=my({selectedSessionId:Sy,isPanelVisible:e||Dy(),hasPendingRequest:!!wy,hasLoadedOnce:U?.hasLoadedOnce??!1,nextOffset:U?.nextOffset??0});t&&Py(t)}function Iy(){Ty&&!wy&&(Ty=!1,Fy())}function Ly(){if(!U)return;let e=dy(U.grouping),t=e.droppedTurnCount>0||e.droppedRowCount>0,n=t&&!U.hasDroppedEarliestRows;t&&(U.hasDroppedEarliestRows=!0),ky({kind:`trimmed`,trim:{droppedTurnCount:e.droppedTurnCount,droppedRowCount:e.droppedRowCount,hasJustDroppedEarliestRows:n}})}function Ry(e){U&&(ky({kind:`records-appended`,appends:iy(U.grouping,e)}),Ly())}function zy(e){U&&(ky({kind:`records-prepended`,prepend:ay(U.grouping,e)}),Ly())}function By(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 Vy(){return{selectedSessionId:Sy,hasPendingRequest:!!wy,hasLoadedOnce:U?.hasLoadedOnce??!1,hasDroppedEarliestRows:U?.hasDroppedEarliestRows??!1,firstOffset:U?.firstOffset??0,residentRowCount:U?sy(U.grouping):0}}function Hy(){return{sessionOptions:xy,selectedSessionId:Sy,selectedTrace:U,pendingSessionId:wy?.request.id??null,traceFailureText:Ey}}function Uy(e){Oy.add(e)}function Wy(e){Dy=e}function Gy(){if(!yy)return;let e=gy(Vy());e&&Py(e)}function Ky(e){xy.some(t=>t.id===e)&&e!==Sy&&(Cy=null,My(e),Fy(),ky({kind:`rebuild`}))}function qy(){let e=Ny(!0);return Fy(!0),e}function Jy(e){yy=e}function Yy(e){by=e}function Xy(e){Cy=e,by?.()}function Zy(e){xy=fy(e);let t=Ny(Dy());t&&Fy(),ky({kind:`sessions`,hasSelectionChanged:t})}function Qy(e){let t=By(e);if(!t)return;let n=_y({pendingRequest:wy?.request??null,resident:U?{sessionId:U.sessionId,firstOffset:U.firstOffset,nextOffset:U.nextOffset,hasLoadedOnce:U.hasLoadedOnce}:null,reply:{id:t.id,start:t.start,next:t.next,reset:t.reset}});n===`ignore`?Iy():(Ay(),Ey&&(Ey=null,ky({kind:`header`})),n===`stale`?Iy():n===`reset`?(My(t.id),U&&(U.filePath=t.path),Fy(),ky({kind:`rebuild`}),Iy()):U&&(U.filePath=t.path,n===`prepend`?(U.firstOffset=t.start,zy(t.records),Iy()):(n===`seed`&&(U.hasLoadedOnce=!0,U.firstOffset=t.start),U.nextOffset=t.next,Ry(t.records),Iy())))}function $y(e){let t=e?.id;typeof t==`string`&&t===Sy&&Dy()&&(wy?Ty=!0:Fy())}function eb(e){let t=e?.id;if(typeof t!=`string`||wy?.request.id!==t)return!1;Ay(),Ty=!1;let n=e?.message;return Ey=typeof n==`string`&&n?n:`The trace could not be read.`,ky({kind:`rebuild`}),!0}function tb(e){Ay(),Ty=!1,Ey=e?null:l,e?(ky({kind:`header`}),Fy()):ky({kind:`rebuild`})}var nb=80,rb=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 ib(e){return e.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)}function ab(e){return e.includes(`.`)?e.replace(/0+$/,``).replace(/\.$/,``):e}function ob(e){if(typeof e!=`number`||!Number.isFinite(e))return`-`;let t=Math.round(e);return`${t<0?`-`:``}${ib(String(Math.abs(t)))}`}function sb(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}$${ib(r)}.${i}`}function cb(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}${ab((n/1e3).toFixed(1))}k`:n<999995e3?`${t}${ab((n/1e6).toFixed(2))}M`:`${t}${ab((n/1e9).toFixed(2))}B`}function lb(e){return typeof e!=`number`||!Number.isFinite(e)?`ok`:e>=100?`crit`:e>=nb?`warn`:`ok`}function ub(e){let t=Me(e?.max,null);return t===null||t<=0?null:t}function db(e){let t=ub(e),n=Me(e?.pct,null);return t===null||n===null?null:n*100}function fb(e,t){let n=ub(t),r=Me(e?.projectedTokens,null);return n===null||r===null?null:r/n*100}var pb=90;function mb(e){let t=e?.budget?.rows;return Array.isArray(t)?t.filter(e=>e&&Me(e.budgetUsd,null)!==null):[]}function hb(e){let t=Me(e?.pct,null);return t===null?0:t}function gb(e,t){let n=e?.[t];if(!n||typeof n!=`object`)return null;let r=Me(n.pct,null),i=Me(n.resetsAtMs,null);return r===null&&i===null?null:{pct:r,resetsAtMs:i}}function _b(e){return e?.vendor===`codex`?`codex`:`claude`}function vb(e){return gb(e,`fiveHour`)?.pct??null}function yb(e,t=null){let n=vb(t);if(n!==null)return lb(n);let r=lb(db(e?.tokenLimit));return r===`ok`?lb(fb(e?.activeBlock?.projection,e?.tokenLimit)):r}function bb(e,t=null){let n=[],r=yb(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 mb(e)){let e=hb(t);if(e<pb)continue;let r=typeof t?.scope==`string`&&t.scope?t.scope:`budget`;n.push(`budget:${r}:${e>=100?`over`:`near`}`)}return Ce(n)}function xb(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 Sb(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 Cb(e){if(Array.isArray(e))return e.length;let t=Number(e);return Number.isFinite(t)?t:null}function wb(e){if(!e||typeof e!=`object`)return``;let t=[],n=Cb(e.dirs);if(n!==null&&t.push(`${ob(n)} transcript ${n===1?`directory`:`directories`}`),Number.isFinite(e.files)&&t.push(`${ob(e.files)} files`),Number.isFinite(e.entries)&&t.push(`${ob(e.entries)} entries`),Number.isFinite(e.lastScanMs)&&t.push(`last pass ${ob(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 Tb(e){return ae(e?.error,``)}function Eb(e,t){if(!e||typeof e!=`object`)return!1;let n=e.requestId;return n==null||n===t}function Db(e){let t=Me(e?.officialCostUSD,null);if(t!==null&&t>0)return{costUSD:t,source:`official`};let n=Me(e?.costUSD,null);return n!==null&&n>0?{costUSD:n,source:`estimated`}:{costUSD:null,source:null}}function Ob(e){let t=Number(e?.tokens);if(!Number.isFinite(t)||t<=0)return``;let{costUSD:n}=Db(e);return n===null?cb(t):`${cb(t)} ${sb(n)}`}function kb(e){let{source:t}=Db(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 Ab({hasPlan:e,pendingPromptKind:t,hasOpenReview:n,hasApprovedReview:r=!1}){return e&&(n||t===`plan`&&!r)?`plan`:`terminal`}function jb({hasPlan:e,isBorrowed:t,face:n}){return!e||n===`plan`?`hidden`:t?`face`:`navigate`}function Mb(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 Nb(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 Pb(e,t,n,r=``){let i=()=>n.send(Nb(e,n.readState(),t,r)),a=Mb(e,n.readState());a?n.confirm({...a,onConfirm:i}):i()}var Fb=`DORMANT`;function Ib(e){return e?Fe(Date.now()-e,{rounding:`round`,wording:`compact`,suffix:` ago`,justNowBelowSeconds:60}):``}function Lb(e){return[e.worktreeName,e.gitBranch?e.gitBranch.replace(/^refs\/heads\//,``):null,Ib(e.mtime)].filter(Boolean).join(` · `)}function Rb(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">${Hn(e)}</span><span class="resume-item-meta">${Hn(t)}</span>`,n}async function zb(e,t,n){if(t.kind===`this`)return!0;let r=t.kind===`earlier`?t.conversationId:``,i=await _n(`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 Bb={this:`restart`,fresh:`restart-fresh`,earlier:`restart-into`};function Vb(e,t,n,r){let i=n.kind===`earlier`?n.conversationId:``;Pb(Bb[n.kind],t,{readState:r,send:t=>{tr(e,t)},confirm:gr},i)}function Hb(e,{readState:t,canListEarlier:n}){let{overlay:r,dialog:i,close:a,actions:o,btnCancel:s}=vr({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=bn(`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=Rb(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 zb(e,n,d);delete i.dataset.applying,r&&(a(),tr(t,{type:`start-session`,id:e}))}function g(){if(i.dataset.applying!==void 0)return;let n=P.get(e);n?t()===Fb?h(n,f):(a(),Vb(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(_),j(`list-conversations`,{id:e},{timeoutMs:En}).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,Lb(e))}}).catch(e=>{r.isConnected&&(_.textContent=`Could not list earlier conversations: ${Tn(e,En)}`)})}function Ub(e){return e instanceof Error?e.message:String(e)}function Wb(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 Gb(e){return e.split(/[\\/]/).filter(Boolean).at(-1)??e}async function Kb(e){let[t,n]=await Promise.all([j(`get-workspace-repos`,{id:e}),j(`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:Gb(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 qb(e){let{overlay:t,dialog:n,close:r,actions:i,btnCancel:a}=vr({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()),Kb(e).then(e=>{if(t.isConnected){s.textContent=``;for(let t of e)s.append(Wb(t.name,t.path,t.isMember));u.disabled=!1}}).catch(e=>{t.isConnected&&(s.textContent=``,l.textContent=`Could not load repositories: ${Ub(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`,j(`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: ${Ub(e)}`)}).finally(()=>{c.textContent=``,u.disabled=!1}))})}var Jb=e=>e==null?``:String(e),Yb=e=>oe.includes(e),Xb=e=>g.includes(e),Zb=!1;zs(Ph);var Qb=null,$b=null;function ex(){return $b??=Si(()=>import(`./plan-face-B_2vu3O-.js`).then(e=>(Qb=e,e),()=>($b=null,null)),__vite__mapDeps([7,1,2,8,6])),$b}function tx(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,ex().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 nx(e){return Zb&&Ql(e.agent)&&e.card.dataset.ephemeral===void 0}function rx(e){return nx(e)&&e.isConversationViewOn&&e.isBorrowed}function ix(e){e.btnConversationView.classList.toggle(`visible`,nx(e)),e.btnConversationView.setAttribute(`aria-checked`,String(e.isConversationViewOn))}function ax(e){Zb=e;for(let t of P.values())!e&&t.face===`conversation`&&t._showTerminalFace?.(),dx(t)}function ox(e){let t=M(e);return!t||!rx(t)?!1:(t.face=`conversation`,t.card.dataset.face=`conversation`,t.termWrap.hidden=!0,t.planFace.hide(),t.conversationFace.show(N(e)),dx(t),Cm(t,N(e)),!0)}function sx(e,t){let n=M(e);if(!n)return;let r=n.isConversationViewOn;n.hasConversationBridge=t.hasConversationBridge,n.conversationApproval=t.conversationApproval,n.isConversationViewOn=t.isConversationViewOn,dx(n),n.conversationFace.refresh(),r!==t.isConversationViewOn&&(t.isConversationViewOn?ox(e):n.face===`conversation`&&n._showTerminalFace?.())}function cx(e){return M(e.id)?.conversationFace.applyTraceResponse(e)===!0}function lx(e){M(e.id)?.conversationFace.applyTraceError(e)}function ux(e){M(e)?.conversationFace.applyTraceChanged(N(e))}function dx(e){ix(e);let t=e.currentState;e.btnRestart.classList.toggle(`visible`,Yb(t)||Xb(t)||t===b.DORMANT),e.btnWorkspaceRepos.classList.toggle(`visible`,e.card.dataset.workspace!==void 0),e.btnTrace.classList.toggle(`visible`,Wn()),e.btnPlan.classList.toggle(`visible`,jb(e)!==`hidden`),e.btnRemove.classList.add(`visible`)}function fx(e){e.sessionMenu.classList.remove(`open`),e.btnSessionMenu.setAttribute(`aria-expanded`,`false`)}function px(e,t){or(e.taskTitleEl,()=>Vn(e,t)),e.nameEl.addEventListener(`dblclick`,n=>{n.preventDefault(),dr(e,t)}),e.nameEl.addEventListener(`click`,()=>{rr(e.nameEl)||hi(t)}),e.nameEl.addEventListener(`keydown`,n=>{n.target===e.nameEl&&(n.key===`F2`||n.key===`Enter`)&&(n.preventDefault(),dr(e,t))}),e.btnRestart.addEventListener(`click`,()=>{fx(e),Hb(t,{readState:()=>e.currentState,canListEarlier:e.card.dataset.ephemeral===void 0})}),e.btnWorkspaceRepos.addEventListener(`click`,()=>{fx(e),qb(t)}),e.btnTrace.addEventListener(`click`,()=>{fx(e),Xy(t)}),e.btnDocs.addEventListener(`click`,()=>{fx(e),Ts(t)}),e.btnShown.addEventListener(`click`,()=>{fx(e),Zs(t)}),e.btnConversationView.addEventListener(`click`,()=>{fx(e),tr(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=>()=>{tr(e,{type:`set-session-guardrails`,id:t,isOn:n})};e.card.dataset.guarded===void 0?gr({title:`Restore guardrails`,message:`This session restarts with guardrails on, interrupting any turn in progress.`,confirmLabel:`Restore guardrails`,danger:!1,onConfirm:n(!0)}):gr({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=jb(e);n!==`hidden`&&(n===`face`?Cx(t):location.hash=na(t))}),e.btnRemove.addEventListener(`click`,()=>{fx(e),Bi(t)});function n(){for(let[,t]of P)t!==e&&fx(t);e.sessionMenu.classList.add(`open`),e.btnSessionMenu.setAttribute(`aria-expanded`,`true`)}e.btnSessionMenu.addEventListener(`click`,t=>{t.stopPropagation(),e.sessionMenu.classList.contains(`open`)?fx(e):n()}),ur({trigger:e.btnSessionMenu,menu:e.sessionMenu,menuItems:()=>[...e.sessionMenu.querySelectorAll(`.popup-menu-item.visible`)],isOpen:()=>e.sessionMenu.classList.contains(`open`),open:n,close:()=>fx(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&&fx(e)},{signal:e.abortController.signal}),e.btnDebug.addEventListener(`click`,n=>{n.stopPropagation(),er(e,t)}),document.addEventListener(`click`,t=>{let n=t.target instanceof Node?t.target:null;e.debugOpen&&!e.card.contains(n)&&nr(e)},{signal:e.abortController.signal})}function mx(e,t,n){let r=M(e);if(r){r.taskTitle=typeof t==`string`?t:null,r.taskTitleIsCustom=n===!0;for(let e of[r.taskTitleEl,r.titleTargetEl])e&&Jn(e,r.taskTitle)}}function hx(e){return typeof e==`string`&&P.has(e)}function gx(){return P.size}function _x(e){let t=e||{};t.cursorBlink!=null&&$p(t.cursorBlink),t.debugMode!=null&&(lr(t.debugMode),Qh(t.debugMode));for(let[,e]of P)e.term&&t.cursorBlink!=null&&(e.term.options.cursorBlink=t.cursorBlink)}function vx(){Ou(P.values(),Au())}function yx(){let e=$n([...P.values()].map(e=>({state:e.currentState,unseenOutcome:e.unseenOutcome}))),t=pr(e);document.title=t>0?`(${t}) Glimmervoid`:`Glimmervoid`}function bx(e,t,n,r={}){if(!dt)return;let i=N(e),a=Jb(n)||b.DORMANT,o=sr(i,Jb(t),a,r),s=a===b.DORMANT;dt.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(),dx(c),dh(c,i)}function u(){ox(i)||l()}let d=new AbortController,f=tx({signal:d.signal,requestPlan:(e,t,n)=>A({type:`session-plan`,id:e,agentId:t,revision:n}),requestDraft:(e,t)=>A({type:`session-plan`,id:e,agentId:t,draft:!0}),showTerminal:u,sendDecision:(e,t)=>A({type:`plan-decision`,id:e,...t}),reportProblem:e=>Kx(i,e)}),p=Dh({signal:d.signal,sendControl:e=>A(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:Jb(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=()=>dh(c,i),c._showTerminalFace=l,c._showPreferredFace=()=>{xx(c)===`plan`?Cx(i):ox(i)||l()},c._setBorrowed=e=>{c.isBorrowed=e,dx(c)},o.card.append(f.el,p.el),P.set(i,c),px(c,i),dx(c),c.btnDocs.classList.toggle(`visible`,fs(i)),Bs(i),a===b.RUNNING&&ot(c,!0),s||ch(c,i),yx(),c}function xx(e){let t=e.planReviewState.reviews.some(e=>e.state===`open`),n=e.planReviewState.reviews.some(rg);return Ab({hasPlan:e.hasPlan,pendingPromptKind:e.pendingPromptKind,hasOpenReview:t,hasApprovedReview:n})}function Sx(e){let t=M(e);return!t?.isBorrowed||xx(t)!==`plan`?!1:Cx(e)}function Cx(e){let t=M(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(N(e)),dx(t),Cm(t,N(e)),!0)}function wx(e,t){let n=M(e);n&&(n.hasPlan=t===!0,dx(n),Sx(e))}function Tx(e){let t=M(e.id);t&&(t.planReviewState=bg(t.planReviewState,e),t.hasPlan=e.hasPlan,t.planFace.update({state:t.planReviewState}),dx(t),Sx(e.id))}function Ex(e){let t=M(e.id);t&&t.planFace.update({draft:e})}function Dx(e){let t=M(e.id);t&&(t.planReviewState={reviews:e.reviews},t.hasPlan=!0,t.planFace.update({response:e}),dx(t))}function Ox(e){if(e.type!==`error`&&e.type!==`session-error`||e.scope!==`plan`&&e.scope!==`plan-decision`)return!1;let t=M(e.id);return t?e.scope===`plan`?(t.planFace.update({requestFailed:!0}),!0):(t.planFace.update({decisionRefused:!0,refusalText:e.message}),!0):!1}function kx(e){for(let[,t]of P)t.planFace.update({isConnected:e})}function Ax(e,t){let n=M(e);n&&(n.effectiveBase=typeof t==`string`?t:void 0)}function jx(e,t){let n=M(e);n&&(n.agent=typeof t==`string`?t:null,dx(n))}function Mx(e,t){let n=M(e);n&&(t?n.card.dataset.worktree=``:delete n.card.dataset.worktree)}function Nx(e,t,n){let r=M(e);r&&(Px(r.card,`guarded`,t),Px(r.card,`guardrailsReleased`,n),qn(r.btnGuardrails,r.card))}function Px(e,t,n){n?e.dataset[t]=``:delete e.dataset[t]}function Fx(e,t,n=!1){let r=M(e);r&&(r.activeAgents=Math.max(0,Number(t)||0),r.awaitingBackgroundTasks=Se(r.currentState,n===!0),r.card.toggleAttribute(`data-monitoring`,r.awaitingBackgroundTasks))}function Ix(e,t){let n=M(e);if(!n)return;let r=Ob(t),i=n.card.querySelector(`.usage-badge`);if(r)n.card.dataset.usage=``,i&&(i.dataset.tipLabel=r,i.dataset.tipDetail=kb(t),An(i));else{if(delete n.card.dataset.usage,!i)return;delete i.dataset.tipLabel,An(i)}}function Lx(e,t){let n=M(e);n&&(n.pendingPromptKind=typeof t==`string`?t:null,n.conversationFace.refresh(),!Sx(e)&&(typeof t!=`string`||t===``)&&n.face===`terminal`&&ox(e))}function Rx(e,t){let n=M(e);n&&(n.unseenOutcome=t??null)}function zx(e,t){t===`pending-review`||t===`parked`||t===`merging`?e.dataset.merge=t:delete e.dataset.merge}function Bx(e,t,n=null){let r=M(e),i=Jb(t)||`none`;r&&zx(r.card,i),V_(N(e),i,Jb(n)||null)}function Vx(e,t,n=null){let r=M(e),i=Jb(t)||`none`;r&&zx(r.card,i),U_(N(e),i,Jb(n)||null)}function Hx(e,t){W_(N(e),t)}function Ux(e,t){let n=M(e);if(!n)return;let r=Jb(t);n.card.dataset.session=r,n.nameEl.textContent=r}function Wx(e){let t=M(e);t&&(nr(t),P.delete(N(e)),Qb?.dropPlanBodyCache(N(e)),t.resizeObserver&&t.resizeObserver.disconnect(),t.abortController&&t.abortController.abort(),th(t,N(e)),Lp(t),t.term&&t.term.dispose(),t.term=null,t.fitAddon=null,t.card&&t.card.remove(),yx())}function Gx(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 Kx(e,t){let n=M(e);n?Xn(n).show(`error`,t):F({source:`Session`,sessionId:typeof e==`string`?e:void 0,message:t})}function qx(e,t){let n=M(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 Jx(e,t){e.term&&(t===b.DONE||t===b.FAILED)&&(e.term.clear(),e.term.reset())}function Yx(e){let t=P.get(e);t&&Ln({state:t.currentState,unseenOutcome:t.unseenOutcome})&&document.visibilityState===`visible`&&(Yi()||document.hasFocus())&&A({type:`dismiss`,id:e,expectedState:t.currentState})}function Xx(e,t,n){let r=document.activeElement;return si({previousState:t,nextState:n,isPhoneLayout:Yi(),isDocumentVisible:document.visibilityState===`visible`,isDocumentFocused:document.hasFocus(),isActiveViewer:e._isActiveViewer?.()===!0,hasFocusInsideTerminal:r instanceof Node&&e.termWrap.contains(r)})}function Zx(){return Ct()&&!ya()}function Qx(e,t,n,r=``){let i=M(e);if(!i)return;let a=Jb(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(),ot(i,a===b.RUNNING)),o===b.DORMANT&&a!==b.DORMANT&&ch(i,N(e)),Bn({state:a})===`resting`&&_a(N(e)),i.card.dataset.state=a,i.card.toggleAttribute(`data-monitoring`,Se(a,i.awaitingBackgroundTasks)),dx(i),(a===b.WAITING&&o!==b.WAITING||a===b.COMPLETE&&o!==b.COMPLETE)&&!Fl(r)&&Zx()&&vd(Kt()),Xx(i,o,a)&&A({type:`dismiss`,id:N(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()&&vd(Kt())),(a===b.DONE||a===b.FAILED)&&Gx(i,c,a),a===b.INITIALIZING&&Jx(i,o),yx()}var $x=`(no path)`;function eS(e){if(!e)return $x;let t=String(e).replace(/[/\\]+$/,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return(n===-1?t:t.slice(n+1))||`(no path)`}function tS(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):$x,a=i.get(r);a||(a={key:r,label:r===`(no path)`?$x:eS(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:eS(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 nS(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 rS({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(hn(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 iS(e,t,n){let{header:r,label:i,count:a,addButton:o,forgetButton:s}=e,c=t.key===$x,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 aS={waitingCount:0,finishedCount:0,failedCount:0},oS={failed:fe[b.FAILED],waiting:fe[b.WAITING],finished:fe[b.COMPLETE]},sS={failed:`failed`,waiting:`needs you`,finished:`finished`},cS=[`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`],lS=2500,uS=`cubic-bezier(0.16, 1, 0.3, 1)`,dS=`cubic-bezier(0.5, 0, 0.2, 1)`,fS=260,pS=200,mS=200,hS=300,gS=28,_S=360,vS=420,yS=200,bS=3,xS=window.matchMedia?.(`(prefers-reduced-motion: reduce)`),SS=new WeakMap;function CS(e){let t=SS.get(e);if(!t)throw Error(`attention banner was not built by buildAttentionBanner`);return t}function wS(e){return!document.hidden&&typeof e.animate==`function`&&e.getClientRects().length>0}function TS(){return xS?.matches??!1}function ES(e){return e.map(e=>({easing:uS,...e}))}function DS(e,t){let n=k(`div`,`attention-banner`);n.setAttribute(`role`,`status`),n.style.setProperty(`--attention-head-tile-px`,`${Mn.headTile}px`),n.style.setProperty(`--attention-tile-px`,`${Mn.tile}px`),n.style.setProperty(`--attention-tile-gap-px`,`${Mn.tileGap}px`),n.style.setProperty(`--attention-overflow-px`,`${Mn.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),SS.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(()=>kS(n)).observe(r),OS(n,aS,[]),n}function OS(e,t,n){let r=CS(e);r.tiles=n,O(e,`.attention-banner-count`).textContent=jn(t);let i=n.length>0;e.toggleAttribute(`data-empty`,!i),e.toggleAttribute(`data-jumpable`,i),i&&GS(e,r),kS(e)}function kS(e){let t=CS(e),n=O(e,`.attention-banner-chips`),r=O(n,`.attention-tile-overflow`),i=wS(e),a=t.tiles.slice(0,Qn(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():NS(n,l[r])});let u=t.headId,d=[],f=null;a.forEach((i,a)=>{let o=t.tileById.get(i.id),s=o??jS(e,i.id);o||(t.tileById.set(i.id,s),d.push(s)),MS(s,i,a===0),(s.parentElement!==n||AS(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)&&LS(e,null),i){for(let e of d)PS(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?IS(r,a):a!==0&&FS(r,a,n)})}}function AS(e){let t=e.previousElementSibling;for(;t?.hasAttribute(`data-leaving`);)t=t.previousElementSibling;return t}function jS(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`,()=>LS(e,t)),n.addEventListener(`pointerleave`,()=>LS(e,null)),n}function MS(e,{kind:t,name:n},r){e.dataset.kind=t,e.toggleAttribute(`data-head`,r);let i=`${n}, ${sS[t]}`;e.title=i,e.setAttribute(`aria-label`,i),Dn(O(e,`.attention-tile-icon`),oS[t])}function NS(e,t){e.toggleAttribute(`data-leaving`,!0),e.style.left=`${t.left}px`,e.style.top=`${t.top}px`;let n=TS()?[{opacity:1},{opacity:0}]:ES([{transform:`none`,opacity:1},{transform:`scale(0.6)`,opacity:0}]),r=e.animate(n,{duration:mS,fill:`forwards`});r.onfinish=()=>e.remove(),r.oncancel=()=>e.remove()}function PS(e){let t=TS()?[{opacity:0},{opacity:1}]:ES([{transform:`scale(0.6)`,opacity:0},{transform:`none`,opacity:1}]);e.animate(t,{duration:pS})}function FS(e,t,n){TS()||e.animate(ES([{transform:`translateX(${t}px)`},{transform:`none`}]),{duration:hS,delay:n*gS,fill:`backwards`})}function IS(e,t){TS()?e.animate([{opacity:.35},{opacity:1}],{duration:_S,easing:uS}):e.animate(ES([{transform:`translateX(${t}px) scale(0.8)`,filter:`brightness(1.8)`},{transform:`scale(1.1)`,offset:.6},{transform:`none`,filter:`none`}]),{duration:_S})}function LS(e,t){let n=CS(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 RS(e){return!e||e.getClientRects().length===0?null:e.getBoundingClientRect()}function zS(e,t,n){let r=CS(e);if(r.flyingIds.has(t))return;let i=r.tileById.get(t);if(!i||!wS(e)){n();return}LS(e,null),r.flyingIds.add(t);let a=r.hooks.rowFor(t),o=i.getBoundingClientRect(),s=RS(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(BS(o,s),VS(s)),u=()=>{c.remove(),r.flyingIds.delete(t),i.isConnected&&(i.style.visibility=``),n()};l.onfinish=u,l.oncancel=u}function BS(e,t){return!t||TS()?[{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 VS(e){return!e||TS()?{duration:yS,fill:`forwards`}:{duration:vS,easing:dS,fill:`forwards`}}function HS(e){let t=CS(e);e.hasAttribute(`data-empty`)&&WS(e,t);for(let e of t.pressAnimations)e.cancel();if(t.pressAnimations=[],!wS(e))return;let n={duration:fS};if(t.pressAnimations.push(e.animate(ES([{opacity:0},{opacity:.07,offset:.3},{opacity:0}]),{...n,pseudoElement:`::after`})),!TS()){t.pressAnimations.push(e.animate(ES([{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(ES([{transform:`none`},{transform:`translateY(${bS}px)`,offset:.3},{transform:`none`}]),n),r.animate(ES([{transform:`none`},{transform:`translateY(-${bS}px)`,offset:.3},{transform:`none`}]),{...n,pseudoElement:`::after`}))}}function US(e){let t=cS.filter(t=>t!==e);return t[Math.floor(Math.random()*t.length)]??cS[0]}function WS(e,t){let n=US(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(()=>GS(e,t),lS)}function GS(e,t){t.allClearLineTimer!==null&&window.clearTimeout(t.allClearLineTimer),t.allClearLineTimer=null,e.toggleAttribute(`data-all-clear-line`,!1)}var KS=e=>e.ui.path,qS=window.matchMedia?.(`(prefers-reduced-motion: reduce)`),JS=null,YS=null,XS=null,ZS=null,QS=null,$S=null,eC=null,W=!1,tC=!1,nC=new Map,rC=new Map,iC=new Map,aC=new Map,oC=null,sC=``,cC=[],lC=new Set;function uC(){return nS(fC(xC()),lC)}function dC(e){let t=oC;if(oC=e||null,t&&t!==oC){let e=rC.get(t);e&&(e.tabIndex=-1,e.setAttribute(`aria-selected`,`false`))}if(oC){let e=rC.get(oC);e&&(e.tabIndex=0,e.setAttribute(`aria-selected`,`true`))}}function fC(e){return tS(e,KS,Ml(e,KS))}function pC(e){let t=aC.get(e.key),n=iC.get(e.key);return(!t||!n)&&(t=rS({onAdd:Pi,onForget:e=>{Nl(e),DC()}}),n=k(`div`,`focus-rail-list`),n.setAttribute(`role`,`listbox`),aC.set(e.key,t),iC.set(e.key,n)),iS(t,e,`rail`),n.setAttribute(`aria-label`,`${e.label} sessions`),{header:t.header,list:n}}function mC(){return W}function hC(){return I.snapshot().focusedSessionId}function gC({rail:e,center:t,resizer:n}){if(JS=e,XS=t,!JS||!XS)return;let r=JS,i=XS;yC(n),r.removeAttribute(`role`),r.removeAttribute(`aria-label`),r.setAttribute(`aria-keyshortcuts`,Xt(Mu)),YS=DS({onJump:jC,rowFor:e=>rC.get(e)},Ru());let a=k(`details`,`rail-status-key`);a.append(k(`summary`,`rail-status-key-summary`,`Status key`),Dl()),r.append(YS,a),QS=k(`div`,`focus-empty`),QS.innerHTML=`<p class="focus-empty-title"></p><p class="focus-empty-desc"></p>`,$S=QS.querySelector(`.focus-empty-title`),eC=QS.querySelector(`.focus-empty-desc`),ZS=k(`div`,`focus-card-slot`),i.append(QS,ZS),r.addEventListener(`keydown`,bC)}var _C={minPx:180,maxPx:480},vC=16;function yC(e){e&&JS&&Zc({resizer:e,column:JS,widthHost:JS,widthProperty:`--rail-width`,bounds:_C,keyStepPx:vC,getStoredWidth:Rt,setStoredWidth:gt})}function bC(e){if(e.key===`Delete`||e.key===`Backspace`){let t=e.target instanceof HTMLElement?e.target:null,n=t?.dataset.id;if(!n||rC.get(n)!==t)return;e.preventDefault(),Bi(n);return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`||e.altKey||e.metaKey||e.ctrlKey||e.shiftKey)return;let t=Pn(uC(),oC,e.key===`ArrowDown`?1:-1);t!=null&&(e.preventDefault(),dC(t),rC.get(t)?.focus())}function xC(){return Nn(Ei(SC))}function SC(e){return e.nameEl?e.nameEl.textContent:e.card&&(e.card.dataset.session||e.card.dataset.id)||``}function CC(e){let{row:t,refs:n}=pl(`button`);t.type=`button`,t.dataset.id=e,t.setAttribute(`role`,`option`),t.addEventListener(`click`,()=>wC(e)),t.addEventListener(`pointerenter`,()=>{YS&&LS(YS,e)}),t.addEventListener(`pointerleave`,()=>{YS&&LS(YS,null)});let{item:r,removeButton:i}=ml(t,()=>Bi(e));return r.setAttribute(`role`,`presentation`),i.tabIndex=-1,Object.assign(t,{_refs:n,_row:r})}function wC(e){let t=Ci(e);t&&(LC(e),NC(t,e))}function TC(e,{id:t,ui:n,state:r,name:i},a){let o=nC.get(t)||`none`;xl(e,e._refs,{ui:n,state:r,name:i??``,mergeStatus:o===`none`?``:o,attentionPosition:a}),e.classList.toggle(`focused`,t===hC()),e.classList.toggle(`has-unopened-shown`,Ls(t));let s=t===oC;e.setAttribute(`aria-selected`,String(s)),e.tabIndex=s?0:-1}function EC(e,t){if(!W)return;let n=e?.card?.dataset.id,r=n?rC.get(n):null;r&&(t===`flag`?r.dataset.activity=e._activity||``:it(r._refs?.glyph))}ct(EC),at(()=>{if(W)for(let[e,t]of rC){let n=P.get(e);n&&(t._refs.elapsed.textContent=rt(n))}});function DC(){if(!W)return;let e=JS;if(!e)return;let t=xC(),n=fC(t),r=new Set,i=zn(t,hC()),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=rC.get(e);o||(o=CC(e),rC.set(e,o)),TC(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===sC;sC=c;for(let t of n.groups){let{header:n,list:r}=pC(t);l||e.append(n,r),o(t.rows,r)}for(let[e,t]of[...aC])s.has(e)||(t.header.remove(),iC.get(e)?.remove(),aC.delete(e),iC.delete(e));for(let[e,t]of rC)r.has(e)||(t._row.remove(),rC.delete(e),e===oC&&(oC=null));for(let e of[...nC.keys()])P.has(e)||nC.delete(e);let u=cC;cC=nS(n,lC);let d=hC();if(d&&!P.has(d)){I.dispatch(`focusSession`,null),oC=null;let e=OC(u,d);if(e){let t=!document.activeElement||document.activeElement===document.body;LC(e),t&&NC(P.get(e),e);return}}RC();let f=hC();if(f){let e=P.get(f);e&&e.card.parentElement!==ZS&&FC(e,f)}AC(t,i)}function OC(e,t){let n=e.filter(e=>e===t||P.has(e));if(n.length<2)return cC.find(e=>P.has(e))??null;let r=n.indexOf(t)===n.length-1;return Pn(n,t,r?-1:1)}function kC(){return zn(xC(),hC())}function AC(e,t){YS&&OS(YS,$n(e),t)}function jC(){if(!W)return;YS&&HS(YS);let e=kC()[0]?.id;e&&MC(e)}function MC(e){if(!W)return;rC.get(e)?.scrollIntoView({block:`nearest`}),YS&&zS(YS,e,()=>PC(e));let t=P.get(e);Ci(e),LC(e),NC(t,e)}function NC(e,t){e&&requestAnimationFrame(()=>requestAnimationFrame(()=>{W&&hC()===t&&e.term?.focus()}))}function PC(e){if(qS?.matches||document.hidden)return;let t=rC.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=P.get(e)?.card;n?.animate&&n.animate([{opacity:.8},{opacity:1}],{duration:240,easing:`ease-out`})}function FC(e,t){ZS&&(Rr(e,t,ZS,{className:`focus-centered`}),fh(e,t,!0))}function IC(){let e=hC();e&&(Lr()===e&&zr(),I.dispatch(`focusSession`,null))}function LC(e){W&&P.has(e)&&(Yx(e),wi(e),e!==hC()&&(IC(),I.dispatch(`focusSession`,e),oC=e,DC()))}function RC(){if(!QS||!$S||!eC)return;let e=hC(),t=!!(e&&P.has(e)),n=P.size>0;QS.hidden=t,uo(QS,!n),$S.hidden=!n,eC.hidden=!n,!t&&n&&($S.textContent=`No session selected`,eC.textContent=`Select a session from the rail on the left to focus it here.`)}function zC(e,t){nC.set(N(e),typeof t==`string`&&t?t:`none`),W&&DC()}function BC(e){W&&P.has(e)&&LC(e)}function VC(e){return!W||!P.has(e)?!1:(LC(e),Cx(e))}function HC(e){if(!W)return;let t=uC()[e-1];t&&wC(t)}function UC(e){if(!W)return;let t=Pn(uC(),oC,e);t!=null&&(wC(t),rC.get(t)?.scrollIntoView({block:`nearest`}))}window.addEventListener(`focus`,()=>{let e=hC();W&&e&&Yx(e)});function WC(){JS&&(W=!0,IC(),oC=null,DC(),tC&&kC().length>0?jC():(tC&&YS&&HS(YS),KC()))}function GC(e){tC=!0;try{e()}finally{tC=!1}}function KC(){if(!W||hC())return;let e=Ti();e&&LC(e)}function qC(){W&&=(IC(),oC=null,!1)}var JC=`t-[0-9a-f]{8}`,YC=`No intent yet. The visions proposes one after its first pass.`,XC=`Unowned`,ZC=RegExp(`^${JC}$`);function QC(){return{byProject:{},unowned:[]}}function $C(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 ew(e){if(Array.isArray(e))return e.map($C).filter(e=>e!==null);let t=$C(e);return t?[t]:[]}function tw(e){let t=e?.intent;if(!t||typeof t!=`object`)return QC();let n=t;if(!(Object.hasOwn(n,`byProject`)||Object.hasOwn(n,`unowned`)||Object.hasOwn(n,`global`)))return{byProject:{},unowned:ew(n)};let r=n.byProject&&typeof n.byProject==`object`?n.byProject:{},i=[];for(let[e,t]of Object.entries(r)){let n=ew(t);n.length!==0&&e&&i.push([e,n])}return{byProject:Object.fromEntries(i),unowned:ew(Object.hasOwn(n,`unowned`)?n.unowned:n.global)}}function nw(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 rw(e,t){let n=e||QC(),r=t?.intent;if(!r||typeof r!=`object`)return n;let i=r,a=nw(Array.isArray(i.threads)?ew(i.threads):ew(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 iw(e,t=null){let n=t&&typeof t.get==`function`?t.get(e):null;return typeof n==`string`&&n?n:e}function aw(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:lw(e,r)}))}function ow(e,t=null,n=Date.now()){let r=e||QC(),i=Object.entries(r.byProject||{}).filter(([e,t])=>e&&Array.isArray(t)&&t.length>0).map(([e,n])=>({projectId:e,label:iw(e,t),threads:n})).sort((e,t)=>e.label.localeCompare(t.label)).flatMap(({projectId:e,label:t,threads:r})=>aw(r,{key:e,label:t,now:n})),a=aw(Array.isArray(r.unowned)?r.unowned:[],{key:`unowned`,label:XC,now:n});return i.length+a.length>0?[...a,...i]:[{key:`unowned`,label:XC,text:YC,hasText:!1,active:!1,meta:``}]}function sw(e){return e?.text?`proposed by visions`:``}function cw(e,t=Date.now()){let n=Number(e);return!Number.isFinite(n)||n<=0?``:Fe(Number(t)-n,{rounding:`floor`,wording:`spelled`,suffix:` ago`,justNowBelowSeconds:60})}function lw(e,t=Date.now()){let n=sw(e);if(!n)return``;let r=typeof e?.id==`string`&&e.id?`thread ${e.id}, `:``,i=cw(e?.ts,t);return i?`${r}${n}, ${i}`:`${r}${n}`}function uw(e){let t=Number(e?.range?.start?.line);return!Number.isFinite(t)||t<0?`L?`:`L${Math.floor(t)+1}`}function dw(e){return(typeof e?.hand==`string`?e.hand.trim():``)||null}function fw(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=dw(t);return i?(n.set(r,i),n):(n.delete(r),n)}function pw(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 mw=`hand`,hw=`unseen`,gw=`
|
|
84
|
-
`;function _w(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 vw(e,t){return _w(JSON.stringify([e,...t]))}function yw(e,t){return vw(`finding`,[e,uw(t),String(t.code??``),String(t.message??``)])}function bw(e,t){return vw(`comment`,[e,Tw(t),String(t.message??``)])}function xw(e){return vw(`fix`,[e.uri,Nw(e),e.code,e.message,Pw(e)])}function Sw(e){return vw(`intent`,[e.key,e.text,e.active])}function Cw(e,t,n,r=[],i=null){let a=[...n].map(([e,t])=>vw(`hand`,[e,t])).sort(),o=new Set;for(let r of[...e.keys(),...t.keys(),...n.keys()])o.add(vw(`document`,[r]));for(let[t,n]of e)for(let e of n)o.add(yw(t,e));for(let[e,n]of t)for(let t of n)o.add(bw(e,t));for(let e of r)o.add(xw(e));for(let e of ow(i,null,0))e.hasText&&o.add(Sw(e));let s=[...o].sort();return{signature:[...a,...s].join(gw),handEntries:a,contentEntries:s}}function ww(e,t){let n=new Set(t.split(gw));return e.handEntries.some(e=>!n.has(e))?mw:e.contentEntries.some(e=>!n.has(e))?hw:null}function Tw(e){let t=Number(e?.line);return!Number.isFinite(t)||t<1?`L?`:`L${Math.floor(t)}`}function Ew(e){return Array.isArray(e?.diagnostics)?e.diagnostics:[]}function Dw(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=Ew(t);return i.length===0?(n.delete(r),n):(n.set(r,i),n)}function Ow(e){return Array.isArray(e?.comments)?e.comments:[]}function kw(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=Ow(t);return i.length===0?(n.delete(r),n):(n.set(r,i),n)}function Aw(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 jw(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 Mw=20;function Nw(e){let t=Number(e?.line);return!Number.isFinite(t)||t<0?`L?`:`L${Math.floor(t)+1}`}function Pw(e){return e?.applied===!0?`applied`:`refused`}function Fw(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 Iw(e){let t=typeof e?.uri==`string`?e.uri:``,n=Number(e?.ts);return Fw(e?.fix,{uri:t,ts:Number.isFinite(n)?n:0})}function Lw(e,t,{max:n=Mw}={}){let r=Iw(t);return r?[r,...e].slice(0,Math.max(0,Math.floor(n))):[...e]}function Rw(e,{max:t=Mw}={}){let n=Array.isArray(e?.fixes)?e.fixes:[],r=[];for(let e of n){let t=Fw(e);t&&r.push(t)}return r.slice(0,Math.max(0,Math.floor(t)))}var zw=100;function Bw(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 Vw(e){let t=Array.isArray(e?.events)?e.events:[],n=[];for(let e of t){let t=Bw(e);t&&n.push(t)}return n}function Hw(e){let t=Number(e?.overflow);return!Number.isFinite(t)||t<=0?0:Math.floor(t)}function Uw(e,t){return[...e].sort((e,t)=>t.seq-e.seq).slice(0,Math.max(0,Math.floor(t)))}function Ww(e,t,{max:n=zw}={}){let r=Vw(t);if(r.length===0)return Uw(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 Uw([...i.values()],n)}function Gw(e,{max:t=zw}={}){return Uw(Vw(e),t)}var Kw=new Map,qw=new Map,Jw=new Map,Yw=QC(),Xw=new Map,Zw=null,Qw=!0,$w=[],eT=0,tT=[],nT=null,rT=()=>!1,iT=new Set,aT=Cw(Kw,qw,Jw,tT,Yw),oT=on(),sT=ve({getAck:()=>oT,setAck:e=>{oT=e,Wt(e)},signature:()=>aT.signature,isLooking:()=>rT()});function cT(e){for(let t of iT)t(e)}function lT(){aT=Cw(Kw,qw,Jw,tT,Yw),aT.signature!==``&&sT.refresh(),nT?.(ww(aT,oT))}function uT(e){cT(e),lT()}function dT(){return{findingsByUri:Kw,commentsByUri:qw,handsByUri:Jw,intent:Yw,projectNamesById:Xw,isEnabled:Zw,isConnected:Qw,activityEvents:$w,activityOverflow:eT,fixEntries:tT}}function fT(e){iT.add(e)}function pT(e){rT=e,lT()}function mT(e){nT=e,lT()}function hT(){aT.signature!==``&&sT.acknowledge(),lT()}function gT(e){Xw=e instanceof Map?e:new Map,cT([`intent`])}function _T(e){Zw=e?.visions?.enabled===!0,cT([`feed`])}function vT(e){Qw=e,cT([`connection`])}function yT(e){tT=Lw(tT,e),uT([`fixes`])}function bT(e){Kw=Dw(Kw,e),uT([`feed`])}function xT(e){qw=kw(qw,e),uT([`feed`])}function ST(e){Jw=fw(Jw,e),uT([`feed`])}function CT(e){Yw=rw(Yw,e),uT([`intent`])}function wT(e){$w=Ww($w,e),eT=Hw(e),uT([`activity`])}function TT(e){$w=Gw(e),eT=0,uT([`activity`])}function ET(e){Kw=Aw(e),qw=jw(e),Jw=pw(e),Yw=tw(e),tT=Rw(e),uT([`intent`,`feed`,`fixes`])}var DT=null,OT=null,kT=!1,AT=null,jT=new Set;function MT(e,t){if(!e||typeof e!=`object`)return!1;let n=e.requestId;return typeof n!=`string`||!t||n===t}function NT(){for(let e of jT)e()}function PT(){return{report:DT,hasReportSendFailed:kT}}function FT(e){jT.add(e)}function IT(e){OT=e}function LT(){if(!OT)return;AT=Ze(`hooks-report`);let e=OT({type:`request-hooks-report`,requestId:AT});e!==!kT&&(kT=!e,NT())}function RT(e){MT(e,AT)&&(DT=e,kT=!1,NT())}function zT(){LT()}function BT(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 VT=e=>e.ui.path;function HT({onSelectSession:e}){let t=k(`div`,`phone-board`),n=k(`header`,`phone-topbar`),r=DS({onJump:()=>{HS(r);let e=zn(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`}),zS(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}=pl(`button`);t.type=`button`,t.dataset.id=e,t.addEventListener(`click`,()=>o(e));let{item:r}=ml(t,()=>Bi(e));return r.setAttribute(`role`,`listitem`),p.set(t,{refs:n,item:r}),t}function v(){let e=k(`section`,`phone-board-group`),t=rS({onAdd:Pi,onForget:e=>{Nl(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;xl(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&&(iS(n,t,`Board`),n.rows.setAttribute(`aria-label`,`${t.label} sessions`))}function x(){return Nn(Ei())}function S(){let e=x(),t=tS(e,VT,Ml(e,VT)),n=$n(e);g=In(n);let i=zn(e,null),a=new Map(i.map(({id:e},t)=>[e,t+1]));OS(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(nS(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=P.size===0;s.hidden=!w,c.hidden=w,uo(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||``:it(p.get(r)?.refs.glyph))}return at(()=>{for(let[e,t]of d){let n=P.get(e),r=p.get(t);n&&r&&(r.refs.elapsed.textContent=rt(n))}}),{el:t,topBarEl:n,refresh:S,renderActivity:C,getAttentionCount:()=>g}}var UT=`clipboard`,WT=`upload`,GT=24,KT=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:UT,title:`Paste from the clipboard`}),Object.freeze({id:`attach`,label:`Attach`,bytes:null,action:WT,title:`Upload a photo or file to this session`})]);function qT(e){let t=KT.find(t=>t.id===e);return t?t.bytes:null}function JT(e){return!!e&&e.action===UT}function YT(e){return!!e&&e.action===WT}function XT(e,t,n=GT){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=GT){let r=XT(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 QT={" ":`\0`,"@":`\0`,"[":`\x1B`,"\\":``,"]":``,"^":``,_:``,"?":``};function $T(e){if(e.length!==1)return null;let t=e.toLowerCase();return t>=`a`&&t<=`z`?String.fromCharCode(t.charCodeAt(0)-96):QT[e]??null}function eE({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 KT){t.id===`left`&&r.appendChild(tE(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){YT(t)?d(r):JT(t)?rE(e,n):e(qT(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 ap(e,t),n&&(n.disabled=!1)}return{element:r,takeHeldControl:l}}function tE(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(qT(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 nE=`Paste needs clipboard permission.`;function rE(e,t){let n=null;try{n=navigator.clipboard?.readText?.()}catch{t(nE);return}n?n.then(t=>{t&&e(t)}).catch(()=>t(nE)):t(`Paste is unavailable in this browser.`)}function iE({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`);or(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(hn(Cn)),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 _=bn(`phone-key-status m-0 px-3 py-1`),{element:v,takeHeldControl:y}=eE({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?P.get(x):null;t&&(nh(t,e)?_.clear():_.show(`error`,l))}function w(){let e=x?P.get(x):null;e?.term&&e.term.focus()}h.addEventListener(`click`,w);function T(e){let t=$T(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?P.get(x):null)?._resetSoftKeyboardBuffer?.())},!0);function te(){let e=x?P.get(x):null;e&&x&&dr(e,x,{returnsFocusToTerminal:!1})}function E(){let e=x?P.get(x):null;e&&x&&Vn(e,x)}function ne(){let e=x?P.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;hl(r,{glyph:u,label:d},n,e.awaitingBackgroundTasks,e.pendingPromptKind);let i=e.card?.dataset.session||x;rr(o)||(o.textContent=i),s.dataset.sessionName=i??``,Jn(s,e.taskTitle),f.textContent=rt(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=P.get(e);t&&(x===e&&Lr()===e&&t.card.parentElement===h||(re(),x=e,Rr(t,e,h,{className:`phone-centered`}),S=D(t.card,`.session-actions`,`div`),Oe(S,m),t.renameTargetEl=o,t.titleTargetEl=s,C=t),ne())}function ae(){re(),Lr()===x&&zr(),x=null,ne()}function oe(){if(!x){ne();return}let e=P.get(x);e?e.card.parentElement===h?ne():(ie(x),n.hidden||fh(e,x,!0)):ae()}function se(){let e=x;e&&fh(P.get(e),e,!1)}function ce(){oe();let e=x;if(!e)return;let t=P.get(e);t&&(fh(t,e,!0),Yx(e))}return at(()=>{let e=x?P.get(x):null;e&&(f.textContent=rt(e))}),ne(),{el:n,show:ie,clear:ae,refresh:oe,reveal:ce,unview:se,getSessionId:()=>x}}var aE=`board`,oE=`terminal`,sE=`changes`,cE=Object.freeze({[sE]:oE}),lE=Object.freeze([{id:aE,label:`Focus`,glyph:`▤`},{id:oE,label:`Terminal`,glyph:`▸`}]),uE=[],dE=new Map,G=null,fE=new Map,pE=new Map,mE=new Map,hE=null,K=null,gE=null,_E=null,vE=null,yE=null,bE=new Map,xE=new Set,SE={},q=!1,CE=120,wE=0,TE=0,J=0,EE=null;function DE(){wE=0,TE=0}function OE(){let e=window.visualViewport;G&&(!q||!e?G.removeAttribute(`data-keyboard`):(G.style.setProperty(`--phone-vh`,`${e.height}px`),G.style.setProperty(`--phone-vv-top`,`${e.offsetTop}px`),e.width!==TE&&(TE=e.width,wE=0),wE=Math.max(wE,e.height),wE-e.height>CE?G.dataset.keyboard=`open`:G.removeAttribute(`data-keyboard`)))}function kE(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 AE(e){return e?.querySelector(`.phone-nav-dot`)||null}function jE(e,t){e&&(e.hidden=!t,typeof t==`string`&&(e.dataset.attention=t),typeof t!=`string`&&delete e.dataset.attention)}function ME(){let e=[];for(let t of uE){if(xE.has(t.id))continue;let n=mE.get(t.id)||!1;e.push(n),jE(AE(bE.get(t.id)),n)}jE(AE(vE),Fn(e))}function NE(){let e=k(`div`,`phone-nav-more-menu`);e.hidden=!0;for(let t of uE){let n=kE(t.label,t.glyph,`phone-nav-menu-item`,`phone-nav-dot phone-nav-menu-dot`);n.dataset.screen=t.id,n.hidden=xE.has(t.id),n.addEventListener(`click`,()=>{PE(!1),eD(t.id)}),bE.set(t.id,n),e.appendChild(n)}return e}function PE(e){yE&&vE&&(yE.hidden=!e,vE.setAttribute(`aria-expanded`,String(e)))}function FE(){return!!yE&&!yE.hidden}function IE(){let e=k(`nav`,`phone-nav`);e.setAttribute(`aria-label`,`Screens`);for(let t of lE){let n=kE(t.label,t.glyph);n.dataset.screen=t.id,n.addEventListener(`click`,()=>eD(t.id)),fE.set(t.id,n),e.appendChild(n)}return vE=kE(`More`,`⋯`),vE.setAttribute(`aria-expanded`,`false`),vE.addEventListener(`click`,()=>PE(!FE())),e.appendChild(vE),yE=NE(),e.appendChild(yE),e}function LE(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),pE.set(e,r),r}function RE(){if(G)return;hE=HT({onSelectSession:BE}),ct((e,t)=>{q&&hE?.renderActivity(e,t)}),K=iE({onBack:()=>eD(aE),onShowChanges:()=>eD(sE)}),gE=k(`div`,`phone-review`);let e=k(`div`,`phone-screens`),t={[aE]:hE.el,[oE]:K.el};for(let n of lE)e.appendChild(LE(n.id,n.label,t[n.id]));e.appendChild(LE(sE,`Changes`,zE(gE)));for(let t of uE){let n=k(`div`,`phone-panel phone-${t.id}`);dE.set(t.id,n),e.appendChild(LE(t.id,t.label,n))}G=k(`div`,`phone-shell`),G.id=`phone-shell`,G.append(e,IE()),document.body.appendChild(G),ME(),window.visualViewport?.addEventListener(`resize`,OE),window.visualViewport?.addEventListener(`scroll`,OE),window.addEventListener(`popstate`,YE),document.addEventListener(`click`,e=>{FE()&&yE&&vE&&e.target instanceof Node&&(yE.contains(e.target)||vE.contains(e.target)||PE(!1))}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&FE()&&PE(!1)})}function zE(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`,()=>eD(oE)),_E=k(`span`,`phone-changes-session`),n.append(r,k(`span`,`phone-changes-title`,`Changes`),_E),t.append(n,e),t}function BE(e){if(P.has(e)){if(!hE||!K)throw Error(`Phone shell is not built`);Ci(e,`dormant-fallback`),wi(e),K.show(e),eD(oE)}}function VE(e){return cE[e]??e}function HE(e,t){return t?{glimmervoidScreen:e,glimmervoidNested:!0}:{glimmervoidScreen:VE(e)}}function UE(e){let t=e?.glimmervoidScreen;return typeof t==`string`?t:null}function WE(e){return UE(e)?e.glimmervoidNested===!0?2:1:0}function GE(e){return e===aE?0:cE[e]||SE.canGoBack?.(e)?2:1}function KE(e,t){let n=t?e:VE(e);return UE(history.state)===n&&WE(history.state)===(t?2:1)}function qE(){if(!q||EE!==null)return;let e=I.snapshot().phoneScreen||aE,t=GE(e);if(J>t){EE=location.href,history.go(t-J),J=t;return}let n=J===2;J>0&&!KE(e,n)&&history.replaceState(HE(e,n),``),J===0&&t>0&&(history.pushState(HE(e,!1),``),J=1),J===1&&t===2&&(history.pushState(HE(e,!0),``),J=2)}function JE(){let e=UE(history.state);return e&&QE(e)?(J=WE(history.state),e):(e&&history.replaceState(null,``),J=0,aE)}function YE(e){if(!q)return;if(EE!==null){history.replaceState(history.state,``,EE),EE=null,qE();return}let t=UE(e.state),n=t&&QE(t)?t:aE;J=WE(e.state);let r=I.snapshot().phoneScreen;J<2&&n===r&&SE.canGoBack?.(r)&&SE.onBack?.(r),ZE(n),qE()}function XE(e,t){for(let[n,r]of e)n===t?r.setAttribute(`aria-current`,`page`):r.removeAttribute(`aria-current`)}function ZE(e){if(!vE||!K)throw Error(`Phone shell is not built`);I.dispatch(`setPhoneScreen`,e),PE(!1),$E();for(let[t,n]of pE)n.hidden=t!==e;SE.onScreenShown?.(e),XE(fE,VE(e));let t=bE.has(e);t&&vE.setAttribute(`aria-current`,`page`),t||vE.removeAttribute(`aria-current`),XE(bE,e),e===oE?K.reveal():K.unview()}function QE(e){return pE.has(e)&&!xE.has(e)}function $E(){if(!_E||!K)return;let e=K.getSessionId(),t=e?P.get(e):null,n=t?lt(t):``;_E.textContent=n,_E.title=n}function eD(e){G&&QE(e)&&(ZE(e),qE())}function tD(e){uE.sort((t,n)=>e.indexOf(t.id)-e.indexOf(n.id)),yE?.append(...uE.flatMap(e=>bE.get(e.id)??[]))}function nD(e){SE=e||{},uE=SE.panels||[]}function rD({sessionId:e,linkedScreenId:t}={}){if(q)return;if(RE(),!G||!hE||!K)throw Error(`Phone shell is not built`);q=!0,G.hidden=!1;for(let e of SE.headerControls||[])Oe(e,hE.topBarEl);B_(gE);for(let e of uE)Oe(e.el,dE.get(e.id)),e.el.hidden=!1;OE(),e&&K.show(e);let n=JE();cD(),t&&QE(t)?eD(t):e&&n===aE?eD(oE):(ZE(n),qE())}function iD(){if(q){if(!G||!K)throw Error(`Phone shell is not built`);q=!1,K.clear(),B_(null);for(let e of uE)_e(e.el);for(let e of SE.headerControls||[])_e(e);PE(!1),G.hidden=!0,G.removeAttribute(`data-keyboard`),DE(),J>0&&history.go(-J),J=0,EE=null}}function aD(e){return!q||!hE||!K||!P.has(e)?!1:(BE(e),Cx(e))}function oD(){return q}function sD(){return q&&K?K.getSessionId():null}function cD(){if(!q)return;if(!hE||!K)throw Error(`Phone shell is not built`);pD(),hE.refresh(),K.refresh(),$E(),VE(I.snapshot().phoneScreen||aE)===oE&&!K.getSessionId()&&eD(aE);let e=AE(fE.get(aE));e&&(e.hidden=hE.getAttentionCount()===0)}function lD(e){return q?(BE(e),!0):!1}function uD(e){return!q||!QE(e)?!1:(eD(e),!0)}function dD(e,t){t&&xE.delete(e),t||xE.add(e);let n=bE.get(e);n&&(n.hidden=!t);let r=pE.get(e);r&&!t&&(r.hidden=!0),ME(),!t&&q&&I.snapshot().phoneScreen===e&&eD(aE)}function fD(e,t){mE.set(e,typeof t==`string`&&t?t:t===!0),ME()}function pD(){if(!K)throw Error(`Phone shell is not built`);if(K.getSessionId())return;let e=Ti();e&&(K.show(e),wi(e,{rememberFocus:!1}))}var mD={MERGE:`a merge commit`,SQUASH:`squash and merge`,REBASE:`rebase and merge`},hD=new Set([`FAILURE`,`ERROR`]);function gD(e){return mD[e]}function _D(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&&hD.has(e.checks.state)?`Checks are failing`:e.stage===`ready`?null:`Not ready to merge yet`:`Closed`}function vD(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 yD(e){let t=je.parse({...e,key:`${e.repo}#${e.number}`,stage:`unknown`});return{...t,stage:vD(t)}}var bD=[`Needs you`,`Waiting`,`Ready to merge`,`Drafts`,`Merged today`],xD=[`Ready to merge`,`Needs you`,`Waiting`,`Drafts`,`Merged today`],SD={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`},CD={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`},wD={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`},TD={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 ED(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 DD(e){return bD[e.rows.reduce((e,{pr:t})=>Math.min(e,bD.indexOf(SD[t.stage])),bD.length-1)]}function OD(e){let t=new Map(bD.map(e=>[e,{title:e,prs:[],rows:[]}]));for(let n of ED(e)){let e=t.get(DD(n));if(e)for(let t of n.rows)e.rows.push(t),e.prs.push(t.pr)}return xD.flatMap(e=>t.get(e)??[])}function kD(e){return CD[e]}function AD(e){return wD[e]}function jD(e){return TD[e]}function MD(e,t){return e.flatMap(e=>{let n=t(e.key);if(!n)return[];let r=e.key.slice(0,e.key.lastIndexOf(`#`));return[{...yD({...n,repo:r}),...e}]})}function ND(e){let t=new Map;for(let n of e)for(let e of n.links){let r=ke(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 PD(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 FD=3;function ID(e){if(e.length===1)return{message:`Merged ${e[0].key}`,detailLines:[e[0].title]};let t=e.slice(0,FD).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 LD(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:yD(n).stage}:e};return{...e,drafts:e.drafts.map(n),inFlight:e.inFlight.map(n),queued:e.queued.map(n)}}function RD(e){return e.isDraft?{band:`not-ready`,reason:`draft`}:e.reviewDecision===`CHANGES_REQUESTED`?{band:`waiting-on-author`,reason:`changes-requested`}:e.checksState===`FAILURE`||e.checksState===`ERROR`?{band:`waiting-on-author`,reason:`checks-failing`}:e.checksState===`PENDING`||e.checksState===`EXPECTED`?{band:`not-ready`,reason:`checks-pending`}:e.requestSource===`direct`&&e.reviewDecision===`REVIEW_REQUIRED`?{band:`blocking-others`,reason:`direct-request`}:e.reviewDecision===`APPROVED`?{band:`actionable`,reason:`approved`}:{band:`actionable`,reason:e.requestSource===`direct`?`review-available`:`team-request`}}function zD(e){let t=e.viewerThreads;return t!==void 0&&t.total>0&&t.resolved===t.total}function BD(e){return e.status===`posted`&&VD(e)}function VD(e){if(!zD(e)||ee(e))return!1;let t=WD(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 HD(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[RD(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(GD(r).length>0||BD(r)){n.actionable.push(r);continue}let e=(r.status===`ready`||r.status===`stale`||r.status===`error`)&&!KD(r);e&&t.noReviewNeeded.push(r),r.status===`ready`&&!e&&n[RD(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 UD(e,t){return e.commit===t?e.isViewer||T.has(e.state):!1}function WD(e){return e.liveHead??e.reviewedHead}function GD(e){return(e.threads??[]).filter(e=>!e.isNit&&!e.isResolved)}function KD(e){return GD(e).length>0?!0:ee(e)?!1:VD(e)?!0:!(e.githubReviews??[]).some(t=>UD(t,WD(e)))}function qD(e,t){return`${e}#${t}`}var JD=null,YD=null,XD=new Set;function ZD(e){for(let t of XD)t(e)}function QD(){YD=LD(JD,wr),ZD({kind:`status`})}function $D(e){XD.add(e)}function eO(){return YD}function tO(){return HD(YD)}function nO(e){let t=s.safeParse(e);t.success?(JD=t.data,QD()):Ve(`reviews`,`dropped team-review-status: ${Le(t.error.issues)}`)}function rO(e){ZD({kind:`action-result`,message:e})}function iO(e){ZD({kind:`open-session-result`,message:e})}function aO(e){ZD({kind:`connection`,isConnected:e})}Tr(QD);var oO=1.2,sO=1.55,cO=.12,lO=523.25,uO=2,dO=8,Y=(e,t,n)=>({semitone:e,startBeat:t,beats:n}),fO={melody:[Y(7,4,.5),Y(11,4.5,.5),Y(12,5,3)],bass:[Y(-5,4,1),Y(-12,5,3)]},pO=[{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,...fO.melody],bass:[...e.bass,...fO.bass]}));function mO(e,t){return lO*2**((e+t)/12)}function hO(e,t){let n=(e,n,r)=>e.map(e=>({frequency:mO(e.semitone,t),startSeconds:sO+e.startBeat*cO,durationSeconds:e.beats*cO,waveform:n,gain:r}));return[...n(e.melody,`square`,.2),...n(e.melody,`triangle`,.5),...n(e.bass,`triangle`,.6)]}var gO=[{frequency:220,endFrequency:880,startSeconds:0,durationSeconds:.32,waveform:`triangle`,gain:.25},{frequency:160,endFrequency:45,startSeconds:oO,durationSeconds:.28,waveform:`sine`,gain:1},{frequency:1400,endFrequency:380,startSeconds:oO,durationSeconds:.06,waveform:`square`,gain:.12}];function _O(e){let t=pO[e%pO.length],n=Math.min(e*uO,dO);return{peakGain:.1,tones:[...gO,...hO(t,n)]}}function vO(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 yO(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 bO=.6,xO=.25,SO=1.6;function CO(e){return Math.min(bO+e*xO,SO)}var wO=[`var(--accent)`,`var(--state-running)`,`var(--state-idle)`,`var(--state-waiting)`,`var(--state-failed)`];function TO(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`,wO[e%wO.length]]]}var EO=`<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>`,DO=`<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 OO(){let e=De(`div`,`merge-bullseye-target`,EO);return e.append(k(`span`,`merge-bullseye-ripple`)),e}function kO(){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(De(`div`,`merge-bullseye-dart`,DO)),t.append(n),e.append(t),e}function AO(){let e=k(`div`,`merge-bullseye-range`),t=k(`div`,`merge-bullseye-track`);return t.append(kO()),e.append(OO(),t),e}var jO={title:`BULLSEYE!`,buildScene:AO},MO=6,NO=30,PO=-14,FO=16;function IO(e=Math.random){return[[`--crosshair-start-left`,`${X(MO,NO,e)}%`],[`--crosshair-start-offset-y`,`${X(PO,FO,e)}px`]]}var LO=`<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>`,RO=`<svg viewBox="0 0 22 22" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="M11 0V5M11 17V22M0 11H5M17 11H22"/><circle class="merge-headshot-crosshair-dot" cx="11" cy="11" r="1"/></svg>`,zO=`<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M3 3L8 8M21 3L16 8M3 21L8 16M21 21L16 16"/></svg>`;function BO(){let e=k(`div`,`merge-headshot-sweep`);ue(e,IO());let t=k(`div`,`merge-headshot-aim`);t.append(De(`div`,`merge-headshot-crosshair`,RO));let n=k(`div`,`merge-headshot-bob`);return n.append(t,De(`div`,`merge-headshot-hitmarker`,zO)),e.append(n),e}function VO(){let e=k(`div`,`merge-headshot-range`),t=k(`div`,`merge-headshot-track`);return t.append(BO()),e.append(De(`div`,`merge-headshot-target`,LO),t),e}var HO={title:`HEADSHOT!`,buildScene:VO},UO=[`10`,`J`,`Q`,`K`,`A`],WO=160,GO=19,KO=5,qO=9,JO=780,YO=70,XO=70,ZO=35;function QO(e){let t=UO.length-1,n=e-t/2;return{offsetPx:n*GO,titleSpreadFraction:n/t,tiltDegrees:n*KO,bottomPx:qO-n**2,dealLeadMs:JO-e*YO,flipLeadMs:WO+(t-e)*XO,waveDelayMs:e*ZO}}function $O(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 ek(){return[[`--card-flip-ms`,`${WO}ms`]]}var tk=`<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 nk(e,t){let n=k(`div`,`merge-flush-deal`);ue(n,$O(QO(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`,tk),i.append(k(`div`,`merge-flush-back`),a),r.append(i),n.append(r),n}function rk(){let e=k(`div`,`merge-flush-table`);return ue(e,ek()),e.append(...UO.map(nk)),e}var ik={title:`ROYAL FLUSH!`,buildScene:rk},ak=[1,2,3,4],ok=14,sk=3,ck=3,lk=10,uk=20,dk=2,fk=28,pk=18,mk=.01,hk=1.5,gk=2200,_k=1,vk=120,yk=.35,bk=15,xk=105,Sk=4,Ck=65,wk=145;function Tk(e){return Math.round(e/(Math.PI*pk)*360)}function Ek(e){return uk-e*dk}function Dk(e){return e.rowIndex*ok+e.depthIndex*sk}function Ok(e,t,n){return Array.from({length:n},(r,i)=>e+(t-e)*i/(n-1))}function kk(){return ak.flatMap((e,t)=>Array.from({length:e},(n,r)=>({rowIndex:t,depthIndex:e-1-r})))}function Ak(e,t){let n=yO(Ok(bk,xk,e),t),r=yO(Ok(Ck,wk,e),t);return n.map((e,n)=>({angleDegrees:e+X(-4,Sk,t),depthScalePercent:Math.round(r[n])}))}function jk(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=vO(o),l=vO(o+s),u=c+l,d=X(540,1080,n),f=a>=0?1:-1,p=Dk(e);return{depthIndex:e.depthIndex,launchAngleDegrees:t.angleDegrees,distanceFromHeadPinPx:p,layer:Ek(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/yk)}}function Mk(e=Math.random){let t=kk(),n=Ak(t.length,e);return t.map((t,r)=>jk(t,n[r],e))}function Nk(e){return[[`--pin-left`,`${e.distanceFromHeadPinPx}px`],[`--pin-raise`,`${e.depthIndex*ck}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 Pk(){return Ek(hk)}function Fk(){return Math.max(...kk().map(Dk))+lk}function Ik(){let e=Fk(),t=fk+e+pk-_k;return[[`--ball-follow-px`,`${vk}px`],[`--ball-follow-ms`,`${Math.round(vk/yk)}ms`],[`--ball-follow-spin`,`${Tk(vk)}deg`],[`--ball-size`,`${pk}px`],[`--ball-approach-spin`,`${gk}deg`],[`--ball-impact-inset`,`${t}px`],[`--ball-layer`,String(Pk())],[`--rack-right`,`${fk}px`],[`--rack-width`,`${e}px`],[`--pin-width`,`${lk}px`]]}function Lk(e=Math.random){return e()>=mk?null:yt[Math.floor(e()*yt.length)].sprite}var Rk=`<svg viewBox="0 0 10 24" aria-hidden="true"><path class="merge-strike-pin-body" d="M5 0C7 0 7.6 2 7.2 4C6.9 5.6 6.3 6.6 6.4 8C6.6 10 9.6 12 9.6 16C9.6 19.5 8.4 22 7.6 24H2.4C1.6 22 .4 19.5 .4 16C.4 12 3.4 10 3.6 8C3.7 6.6 3.1 5.6 2.8 4C2.4 2 3 0 5 0Z"/><path class="merge-strike-pin-stripe" d="M3.1 5.2H6.9V6.2H3.1ZM3.4 7H6.6V8H3.4Z"/></svg>`;function zk(e){let t=k(`span`,`merge-strike-pin`);return t.append(De(`span`,`merge-strike-pin-arc`,Rk)),ue(t,Nk(e)),t}function Bk(){let e=Lk();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 Vk(){let e=k(`div`,`merge-strike-lane`);ue(e,Ik());let t=k(`div`,`merge-strike-rack`);t.append(...Mk().map(zk));let n=k(`div`,`merge-strike-track`);return n.append(Bk()),e.append(t,n),e}var Hk={title:`STRIKE!`,buildScene:Vk},Uk=20,Wk=92,Gk=23,Kk=7,qk=-40;function Jk(){let e=vO(72),t=vO(69),n=780*t/1e3;return{launchHeightPx:Uk,peakHeightPx:Wk,heightThroughRimPx:Gk,heightLeavingNetPx:Kk,heightOutOfCardPx:qk,riseMs:e,fallToRimMs:t,speedThroughRimPxPerSecond:n,netCatchMs:Math.round(32/n*1e3),dropMs:vO(47)}}function Yk(e=Jk()){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 Xk=`<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>`,Zk=`<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 Qk(){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 $k(){let e=k(`div`,`merge-swish-court`);ue(e,Yk());let t=k(`div`,`merge-swish-track`);return t.append(Qk()),e.append(De(`div`,`merge-swish-hoop-back`,Xk),t,De(`div`,`merge-swish-hoop-front`,Zk)),e}var eA=[Hk,{title:`SWISH!`,buildScene:$k},jO,HO,ik],tA=48,nA=5600,rA=20,iA=null,aA=[],oA=null,sA=!1,cA=0;function lA(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,TO(e)),t}function uA(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 dA(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 fA(e){let t=k(`div`,`merge-celebration-scene`);return t.setAttribute(`aria-hidden`,`true`),t.append(e.buildScene()),t}function pA(){return eA[Math.floor(Math.random()*eA.length)]}function mA(e){if(Ct())try{fd(_O(e))}catch{}}function hA(e){let t=k(`ul`,`merge-celebration-details`);for(let n of e)t.append(k(`li`,`merge-celebration-detail`,n));return t}function gA(e,t,n){iA?.remove(),mA(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=uA(t.title),s=fA(t);a.append(o,k(`p`,`merge-celebration-message`,e.message),hA(e.detailLines),s);let c=k(`div`,`merge-confetti`);c.style.setProperty(`--confetti-scale`,String(CO(n)));for(let e=0;e<tA;e+=1)c.append(lA(e));i.append(c,a),r.append(i),document.body.append(r),dA(a,o,s),iA=r,window.setTimeout(()=>{r.remove(),iA===r&&(iA=null)},nA)}function _A(e){return sA?`playing`:e?`queued`:`empty`}function vA(){if(!oA)return;let e=aA.length>0;oA.tray.dataset.state=_A(e),oA.count.textContent=e?String(aA.length):``,oA.button.disabled=sA||!e}function yA(){let e=aA.shift();sA=e!==void 0,vA(),e&&(gA(e.text,e.scene,cA),cA+=1,window.setTimeout(yA,nA))}function bA(e,t,n){oA={tray:e,button:t,count:n},t.addEventListener(`click`,()=>{cA=0,yA()}),vA()}function xA(e,t=pA()){aA.push({text:e,scene:t}),aA.length>rA&&aA.shift(),vA()}var SA=null,CA=null,wA=new Set,TA=new Map,EA=!1,DA=new Set;function OA(e){for(let t of DA)t(e)}function kA(){return[...TA].flatMap(([e,t])=>{let n=P.get(e);return!n||t.length===0?[]:[{id:e,title:lt(n)||e,links:t}]})}function AA(){let e=MD(SA?.prs??[],wr),t=PD(CA,e);CA=e,PA(t),OA({kind:`prs`})}function jA(){EA||(EA=!0,queueMicrotask(()=>{EA=!1,AA()}))}function MA(e){DA.add(e)}function NA(){return{prs:MD(SA?.prs??[],wr),status:SA,sessionsByPrKey:ND(kA())}}function PA(e){let t=e.filter(e=>!wA.has(e.key));if(t.length!==0){for(let e of t)wA.add(e.key);xA(ID(t))}}function FA(e){TA=e,jA()}function IA(){OA({kind:`session-state`})}function LA(e){let t=p.safeParse(e);t.success?(SA=t.data,AA()):Ve(`reviews`,`dropped my-prs-status: ${Le(t.error.issues)}`)}function RA(e){OA({kind:`merge-result`,message:e})}function zA(e){OA({kind:`connection`,isConnected:e})}Tr(jA);var BA=[{id:`all`,label:`All`},{id:`reviewing`,label:`Reviewing`},{id:`mine`,label:`Mine`}],VA={turn:`Your turn`,working:`Agent working`,waiting:`Waiting on others`,aside:`Set aside`},HA=[`turn`,`working`,`waiting`,`aside`],UA={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`},WA={directAsk:0,followUp:1,mineNeedsYou:2,teamReady:3,mineReady:4,failedReview:5,staleReview:6};function GA(e,t){return{source:`team`,key:`team:${e.key}`,prKey:ke(e),kind:t,review:e}}function KA(e){return e.status===`ready`?RD(e).band===`blocking-others`?WA.directAsk:WA.teamReady:WA.followUp}function qA(e){return[...e.ready.map(e=>({item:GA(e,`ready`),group:`turn`,turnRank:KA(e)})),...e.attention.map(e=>({item:GA(e,`attention`),group:`turn`,turnRank:e.status===`error`?WA.failedReview:WA.staleReview})),...e.inReview.map(e=>({item:GA(e,`inReview`),group:`working`,turnRank:0})),...e.queued.map(e=>({item:GA(e,`queued`),group:`working`,turnRank:0})),...e.noReviewNeeded.map(e=>({item:GA(e,`settled`),group:`waiting`,turnRank:0})),...e.posted.map(e=>({item:GA(e,`posted`),group:`waiting`,turnRank:0})),...e.discarded.map(e=>({item:GA(e,`discarded`),group:`aside`,turnRank:0}))]}function JA(e,t){let n=UA[e.stage];return n===`turn`&&e.stage!==`ready`&&t.has(ke(e))?`working`:n}function YA(e,t){return OD(e).flatMap(e=>e.rows).map(({pr:e,parentKey:n})=>({item:{source:`mine`,key:`mine:${e.key}`,prKey:ke(e),pr:e,stackedOn:n},group:JA(e,t),turnRank:e.stage===`ready`?WA.mineReady:WA.mineNeedsYou}))}function XA(e,t,n){let r=[...qA(e),...YA(t,n)];return HA.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:VA[e],items:n.map(e=>e.item)}})}function ZA(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 QA(e){return e.find(e=>e.id===`turn`)?.items??[]}function $A(e,t){return t?e.flatMap(e=>e.items).find(e=>e.key===t)??null:null}function ej(e,t){return $A(e,t)?t:e.flatMap(e=>e.items)[0]?.key??null}function tj(e){return e.source===`mine`?qD(e.pr.repo,e.pr.number):qD(e.review.repo,e.review.number)}function nj(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 rj(e){return QA(e).map(e=>({id:e.key,kind:nj(e),name:tj(e)}))}function ij(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 aj(e,t){return rj(e).filter(e=>e.id!==t)}function oj({capturedOrder:e,actedKey:t,groups:n}){let r=QA(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 sj(e,t){let n=QA(e).map(e=>e.key),r=t?n.indexOf(t):-1;return r===-1?``:`${r+1} of ${n.length} in Your turn`}function cj(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 lj(e){return QA(e).map(cj)}function uj({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:Ce([...i]),unseen:Ce([...o])};for(let e of s)o.add(e);return{isShown:s.length>0,acknowledged:Ce([...a]),unseen:Ce([...o])}}function dj(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 fj(e){return new Set(e.flatMap(e=>e.items).map(e=>(e.source===`mine`?e.pr.repo:e.review.repo).toLowerCase())).size>1}function pj(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 mj=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 hj(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`:mj.get(e.key)??null}function gj(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 _j=[],vj=null,yj=null,bj=null,xj=!1,Sj=null,Cj=Pt(),wj=rn(),Tj=new Set(wj.split(`|`).filter(Boolean)),Ej=new Set,Dj=new Set;function Oj(e){for(let t of Dj)t(e)}function kj(e){e!==Cj&&(Cj=e,Tt(e))}function Aj(e){e!==wj&&(wj=e,Tj=new Set(e.split(`|`).filter(Boolean)),_t(e))}function jj(){return eO()!==null&&NA().status!==null}function Mj(){if(!jj())return;let e=uj({turnEntries:lj(_j),acknowledged:Cj,unseen:wj,isLooking:yj?.isLooking()??!1});kj(e.acknowledged),Aj(e.unseen),Sj?.(e.isShown)}function Nj(e){bj=e,Oj({kind:`reveal`})}function Pj(e){Dj.add(e)}function Fj(e){yj=e,Mj()}function Ij(){let{prs:e,sessionsByPrKey:t}=NA();return _j=XA(tO(),e,new Set(t.keys())),Mj(),_j}function Lj(){jj()&&(kj(Ce(lj(_j))),Mj())}function Rj(e){Sj=e,Mj()}function zj(){return wj}function Bj(e){return Tj.has(e)}function Vj(e){return Tj.has(e)?(Aj(Ce([...Tj].filter(t=>t!==e))),!0):!1}function Hj(e){vj=e}function Uj(){return vj}function Wj(){let e=bj;return bj=null,e}function Gj(e){if(e!==xj){xj=e;for(let e of Ej)e()}}function Kj(e){Ej.add(e)}function qj(){return document.documentElement.dataset.layout===`phone`&&xj}function Jj(){qj()&&Oj({kind:`return-to-queue`})}function Yj(){let e=aj(_j,yj?.selectedKey()??null)[0]?.id??null;return e?(Nj(e),!0):!1}function Xj(e){let t=_j.flatMap(e=>e.items).find(t=>t.prKey===e.toLowerCase());return!t||!vj?.openReviews()?!1:(Nj(t.key),Lj(),!0)}$D(e=>{e.kind===`status`&&Ij()}),MA(e=>{e.kind===`prs`&&Ij()});var Zj={OPEN:0,MERGED:1,CLOSED:2};function Qj(e){return e?Zj[e.state]:Zj.OPEN}function $j(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:sc(void 0)};let i=AD(t.stage);return{key:n,text:r,url:t.url,hoverText:`${e.repo}: ${t.title} (${kD(t.stage)})`,look:{icon:jD(t.stage),tone:i},tier:sc(i)}}function eM(e,t){let n=e.map(e=>{let n=t(ke(e));return{link:e,pr:n?yD(n):void 0}});return n.sort((e,t)=>Qj(e.pr)-Qj(t.pr)||t.link.linkedAt-e.link.linkedAt),n.map(({link:e,pr:t})=>$j(e,t))}var tM=new Map;function nM(e){return document.querySelectorAll(`[data-pr-chips-for="${CSS.escape(e)}"]`)}function rM(e){return eM(tM.get(e)??[],wr).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:()=>{Xj(e.key)||Ic(e.url)}}))}function iM(e,t){let n=el(e,e),r=k(`button`,`session-pr-chip-unlink`);r.append(hn(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(),gr({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:()=>{Di(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 aM(e,t){e.dataset.prChipsFor=t,al(e,rM(t),e=>iM(e,t))}function oM(e){for(let t of e){let e=t.dataset.prChipsFor;e&&aM(t,e)}fl()}function sM(e,t){let n=d.shape.links.safeParse(t??[]);tM.set(e,n.success?n.data:[]),oM(nM(e)),FA(tM)}function cM(e){tM.delete(e),FA(tM)}Tr(()=>oM(document.querySelectorAll(`[data-pr-chips-for]`)));var lM=null,uM=new Set;function dM(){lM?.setAttribute(`aria-pressed`,String(!Ct()))}function fM(e){bt(e),dM();for(let t of uM)t(e)}function pM(e){uM.add(e)}function mM(e){lM=e,dM(),e.addEventListener(`click`,()=>fM(!Ct()))}var hM={mine:`Mining merged pull requests.`,run:`Starting the run.`,cancel:`Cancelling the run.`},gM=null,_M=null,vM=!0,yM=new Map,bM=new Map,xM=new Set;function SM(){for(let e of xM)e()}function CM(e){xM.add(e)}function wM(){return{status:gM,isServerConnected:vM,pendingActionBySuite:yM,outcomeBySuite:bM}}function TM(e){_M=e}function EM(e,t){_M?.({type:`benchmark-action`,requestId:Ze(`benchmark`),suiteId:e,action:t})===!0?(yM.set(e,t),bM.set(e,hM[t]),SM()):(bM.set(e,l),SM())}function DM(e){if(vM=e,!e){for(let e of yM.keys())bM.delete(e);yM.clear()}SM()}function OM(e){gM=e,SM()}function kM(e){yM.delete(e.suiteId);let t=gM?.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.`};bM.set(e.suiteId,e.ok?n[e.action]:e.error||`The server refused the action.`),SM()}var AM=45e3,jM=`The server did not answer within ${AM/1e3} s.`,MM=`Select the issue to load its description.`,NM=null,PM=null,FM=new Map,IM=null,LM=new Map,RM=new Map,zM=new Map,BM=new Map,VM=new Map,HM=new Set;function UM(e){for(let t of HM)t(e)}function WM(e){return`${e.key}:${e.updatedAt}`}function GM(e){let t=LM.get(e);t&&(LM.delete(e),RM.set(t.issueKey,{text:jM,tone:`error`}),UM(`detail`))}function KM(e){let t=LM.get(e);return t?(clearTimeout(t.timeoutHandle),LM.delete(e),t):null}function qM(){return{latestStatus:PM,issueByKey:FM,selectedKey:NM}}function JM(e){HM.add(e)}function YM(e){NM=e}function XM(e){return[...LM.values()].some(t=>t.issueKey===e.key)}function ZM(e){return RM.get(e.key)}function QM(e){let t=WM(e),n=BM.get(t);return n===``?`No description.`:n??VM.get(t)??`Loading description.`}function $M(e){let t=WM(e);if(BM.has(t)||[...zM.values()].some(e=>e.cacheKey===t))return;let n=Ze(`issue-detail`);VM.delete(t),IM?.({type:`issue-detail`,requestId:n,repo:e.repo,issueNumber:e.number})?zM.set(n,{cacheKey:t,timeoutHandle:setTimeout(()=>{zM.delete(n),VM.set(t,`${jM} ${MM}`),UM(`detail`)},AM)}):VM.set(t,`${l} ${MM}`)}function eN(e){let t=e.projectId;if(!t||XM(e))return;let n=Ze(`open-issue-session`);IM?.({type:`open-issue-session`,requestId:n,projectId:t,repo:e.repo,issueNumber:e.number})?(LM.set(n,{issueKey:e.key,issueNumber:e.number,timeoutHandle:setTimeout(()=>GM(n),AM)}),RM.set(e.key,{text:`Opening session.`,tone:`busy`}),UM(`detail`)):(RM.set(e.key,{text:l,tone:`error`}),UM(`detail`))}function tN(e){IM?.({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`issues`,action:e}})}function nN(e){IM=e}function rN(){UM(`session-state`)}function iN(e){if(!e){for(let e of LM.values())clearTimeout(e.timeoutHandle),RM.set(e.issueKey,{text:l,tone:`error`});LM.clear();for(let e of zM.values())clearTimeout(e.timeoutHandle),VM.set(e.cacheKey,`${l} ${MM}`);zM.clear(),UM(`status`)}}function aN(e){let t=PM?.issues.find(e=>e.key===NM);PM=e,FM=new Map(e.issues.map(e=>[e.key,e]));let n=e.issues.find(e=>e.key===NM);n&&n.updatedAt!==t?.updatedAt&&$M(n),UM(`status`)}function oN(e){let t=zM.get(e.requestId);t&&(clearTimeout(t.timeoutHandle),zM.delete(e.requestId),e.ok&&e.body!==null&&BM.set(t.cacheKey,e.body),(!e.ok||e.body===null)&&VM.set(t.cacheKey,e.error||`Could not load description. Select the issue to try again.`),UM(`detail`))}function sN(e){if(typeof e.requestId!=`string`)return;let t=KM(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`;RM.set(n,{text:`Session "${r}" ${a}.${i}`,tone:`ok`});let o=PM?.issues.find(e=>e.key===n);o&&typeof e.sessionId==`string`&&(o.sessionId=e.sessionId),UM(`status`);return}let r=typeof e.error==`string`&&e.error?e.error:`Could not open session.`;RM.set(n,{text:r,tone:`error`}),UM(`detail`)}var cN=null,lN=null,uN=null,dN=()=>!1,fN=new Set,pN=new Set,mN=ve({getAck:It,setAck:$t,signature:()=>o({posthog:cN}),isLooking:()=>dN()});function hN(e){for(let t of pN)t(e)}function gN(){lN?.(mN.refresh())}function _N(){return{latest:cN,archivedLocally:fN,traceOpener:uN}}function vN(e){pN.add(e)}function yN(e){dN=e,gN()}function bN(e){fN.add(e)}function xN(){mN.acknowledge(),gN()}function SN(e){lN=e,gN()}function CN(e){uN=e}function wN(e){cN=e,Ee(cN,fN),hN({kind:`status`}),gN()}function TN(e){let t=Ie(cN,e.projectId,e.issueId)?.inFlight===!0;x(cN,e)&&hN({kind:`investigation-activity`,projectId:e.projectId,issueId:e.issueId,wasInFlight:t})}function EN(e){let t=ne(cN,e);hN({kind:`investigation-finished`,frame:e,isPatched:t}),t&&gN()}var DN=rc({requestPrefix:`session-setup`,dialogClass:`dialog coherence-journal-drawer session-setup-dialog`,titleText:`Session setup`,unavailableLabel:`Session setup unavailable`,timeoutMs:15e3});function ON(e){let t=k(`ul`,`session-setup-list`);return t.append(...e.map(e=>k(`li`,null,e))),t}function kN(e,t){e.replaceChildren();function n(t,n){if(n.length===0)return;let r=we(`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`),ON(e.skills)),e.agents.length>0&&t.append(k(`p`,`session-setup-label`,`Agents`),ON(e.agents)),t})),n(`MCP servers`,t.mcpServers.length>0?[ON(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?[ON(t.skills)]:[]),n(`Agents`,t.agents.length>0?[ON(t.agents)]:[])}function AN(e){let t=k(`p`,`coherence-journal-status`,`Loading session setup`);t.setAttribute(`role`,`status`);let n=k(`div`,`session-setup-sections`);DN.open({sessionId:e,status:t,body:[t,n],parts:{sections:n},buildRequest:t=>({type:`session-setup`,id:e,requestId:t})})}function jN(e){let t=DN.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;kN(n,e.setup),t.status.textContent=n.childElementCount>0?``:`No session setup recorded yet`,t.status.hidden=n.childElementCount>0}function MN(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 NN={isVisible:document.visibilityState===`visible`,isFrozen:!1,isProbing:!1,isReplacing:!1},PN=document.visibilityState===`visible`?null:Date.now(),FN=null,IN=null;function LN(){FN!==null&&window.clearTimeout(FN),FN=null}function RN(e){LN();let t=Date.now()+e;FN=window.setTimeout(()=>{FN=null,VN({kind:`heartbeat-due`,lateByMs:Date.now()-t})},e)}function zN(){IN!==null&&window.clearTimeout(IN),IN=null}function BN(e){switch(e.kind){case`probe-control`:Ye(e.deadlineMs,e.isAnnounced).then(e=>{VN({kind:e?`pong`:`pong-missed`})});return;case`replace-control`:Qe();return;case`close-sockets`:zN(),$e(),eh();return;case`reconnect-shown-terminals`:Qm();return;case`hold-input`:Ym();return;case`release-input`:Xm();return;case`schedule-heartbeat`:RN(e.inMs);return;case`cancel-heartbeat`:LN();return}}function VN(e){let t=Re(NN,e);NN=t.state;for(let e of t.actions)BN(e)}function HN(){if(document.visibilityState!==`visible`){PN=Date.now(),VN({kind:`hidden`});return}let e=PN===null?0:Date.now()-PN;PN=null,Xu(`shown`,e),VN({kind:`shown`,hiddenForMs:e})}function UN(e){zN(),Yu(`control-${e}`),e===`connecting`?IN=window.setTimeout(()=>{IN=null,VN({kind:`handshake-overdue`})},We):VN({kind:e===`opened`?`control-opened`:`control-closed`})}function WN(){Xu(`resumed`,PN===null?0:Date.now()-PN),VN({kind:`resumed`})}function GN(){let e=Reflect.get(navigator,`connection`);e instanceof EventTarget&&e.addEventListener(`change`,()=>VN({kind:`network-changed`}))}function KN(){ze(UN),document.addEventListener(`visibilitychange`,HN),document.addEventListener(`freeze`,()=>VN({kind:`frozen`})),document.addEventListener(`resume`,WN),window.addEventListener(`pagehide`,e=>{e.persisted&&VN({kind:`frozen`})}),window.addEventListener(`pageshow`,e=>{e.persisted&&WN()}),window.addEventListener(`online`,()=>VN({kind:`network-changed`})),GN()}var qN={},JN=null,YN=null,XN=ie,ZN=null,QN=!1,$N=null,eP=[],tP=null,nP=()=>null,rP=()=>{},iP=new Set,aP=new Set;function oP(e){for(let t of aP)t(e)}function sP(e){aP.add(e)}function cP(){return qN}function lP(e){return qN={...qN,...e},qN}function uP(){return{status:JN,journal:YN,request:XN,lastAutoCheckAt:ZN,isCheckInFlight:QN,checkSendFailure:$N}}function dP(e){let t=w(XN,e);t!==XN&&(XN=t,oP({kind:`update`,frame:`request`}))}function fP(){dP(A({type:`update-apply`})?`request-sent`:`request-unsent`)}function pP(){ZN=Date.now();let e=A({type:`update-check`});QN=e,$N=e?null:l,oP({kind:`update`,frame:`request`})}function mP(e){rP=e}function hP(){rP()}function gP(e){eP=[...e]}function _P(){return eP}function vP(e=null,t=null,n=null){let r=tP!==null&&(tP.sectionId!==null||tP.isLink);e===null&&n===null&&r||(tP={sectionId:e,settingId:t,hashAtRequest:n??location.hash,isLink:n!==null},oP({kind:`activate`}))}function yP(){let e=tP;return tP=null,e}function bP(e){nP=e}function xP(){for(let e of iP)e()}function SP(e){iP.add(e)}function CP(){return Yi()&&nP()===`section`}function wP(){CP()&&oP({kind:`return-to-list`})}function TP(e){e&&(qN=e,ri(qN.agentLogins),oP({kind:`broadcast`}))}function EP(){oP({kind:`status`})}function DP(e){EP()}function OP(e){JN=e,QN=!1,$N=null,XN=w(XN,`status-frame`),oP({kind:`update`,frame:`status`})}function kP(e){YN=e,XN=w(XN,`progress-frame`),oP({kind:`update`,frame:`progress`})}function AP(e){if(e.scope!==`update`)return!1;let t=C(e.message),n=XN.requested;return XN=w(XN,`error-frame`,t),QN=!1,n||($N=t),oP({kind:`update`,frame:`error`}),!0}function jP(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 MP=200;function NP(e,t=null){return`#settings/${encodeURIComponent(e)}${t?`/${encodeURIComponent(t)}`:``}`}function PP(e){return/^#settings(?:[/?]|$)/.test(e)}function FP(e){let t=e.trim();return t?`#settings?q=${encodeURIComponent(t)}`:`#settings`}function IP(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,MP).join(``).trim()}}function LP(e,t,n){let r=k(`a`,`settings-link`,n);return r.href=NP(e,t),r}var Z=null,RP=null,zP=null,BP=null,VP=null,HP=null,UP=-1,WP=null,GP={isRightToLeft:!1,arcProgress:0},KP=1,qP=3;function JP(){if(!Z||WP===null)return;let e=Yr({viewportWidthPx:document.documentElement.clientWidth,viewportHeightPx:document.documentElement.clientHeight,verticalProgress:WP,...GP});ue(Z,Zr(e,KP,window.devicePixelRatio))}function YP(){HP!==null&&(clearTimeout(HP),HP=null)}function XP(e=fn()){return wt({isEnabled:e,hasReducedMotion:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,isPhone:Yi(),options:Ut()})}function ZP(e){e.onanimationend=null,e.style.animation=`none`,BP&&(BP.style.animation=`none`),e.hidden=!0}function QP(e,t){if(!Z||!RP||!zP||!BP||XP())return;let n=Ut();YP();let r=ln(n,UP,Math.random,t);if(ZP(Z),!r){HP=setTimeout(()=>QP(!1),1e3);return}WP=r.verticalProgress,GP={isRightToLeft:r.isRightToLeft,arcProgress:r.arcProgress},KP=n.flyingAnimalsScale,JP();let i=yt[r.animalIndex];RP.className=`nyan-sprite ${i.sprite}`,zP.className=`nyan-trail ${i.trail}`,UP=r.animalIndex,VP?.classList.remove(`is-booped`),Z.hidden=!1,Z.offsetWidth,Z.style.animation=`nyan-fly ${r.durationSeconds}s linear`,BP.style.animation=`nyan-trail-hold ${r.durationSeconds}s linear`,e&&(Z.style.animationDelay=`-${r.firstDelaySeconds}s`,BP.style.animationDelay=`-${r.firstDelaySeconds}s`),Z.onanimationend=e=>{Z&&e.target===Z&&(ZP(Z),HP=setTimeout(()=>QP(!1),r.gapMs))}}function $P(){VP&&(VP.classList.remove(`is-booped`),VP.offsetWidth,VP.classList.add(`is-booped`))}function eF(e){if(Z&&BP&&e.target===VP)for(let e of[...Z.getAnimations(),...BP.getAnimations()])e.playbackRate=qP}function tF(){if(Z||XP())return;Z=document.createElement(`div`),Z.className=`nyan-flight`,Z.setAttribute(`aria-hidden`,`true`);let e=document.createElement(`div`);e.className=`nyan-trail-window`,BP=document.createElement(`div`),BP.className=`nyan-trail-hold`,zP=document.createElement(`div`),BP.append(zP),e.append(BP),RP=document.createElement(`div`),VP=document.createElement(`div`),VP.className=`nyan-boop`,VP.append(RP),VP.addEventListener(`pointerdown`,$P),VP.addEventListener(`animationend`,eF),Z.append(e,VP),document.body.appendChild(Z),window.addEventListener(`resize`,JP),window.addEventListener(`orientationchange`,JP),QP(!0)}function nF(e){tF(),QP(!1,e)}function rF(){YP(),window.removeEventListener(`resize`,JP),window.removeEventListener(`orientationchange`,JP),Z?.remove(),Z=null,RP=null,zP=null,BP=null,VP=null,UP=-1,WP=null}var iF=!1;function aF(e){let t=document.documentElement;if(iF||(iF=!0,Xi(()=>aF(fn())),window.matchMedia(`(prefers-reduced-motion: reduce)`).addEventListener(`change`,()=>aF(fn()))),e){if(t.dataset.flyingAnimals=`true`,XP(e)){rF();return}tF()}else delete t.dataset.flyingAnimals,rF()}var oF=`•`.repeat(8),sF=`[^/\\\\\\s"'\`<>:]+`,cF=RegExp(`(?<![\\w./\\\\-])(?:/home/${sF}|/Users/${sF}|[A-Za-z]:[\\\\/]Users[\\\\/]${sF}|/root(?![\\w.-]))`,`g`);function lF(e){let t=Lf(e);if(t.length===0)return e;let n=``,r=0;for(let i of t)n+=e.slice(r,i.start)+oF,r=i.end;return n+e.slice(r)}function uF(e){return e.replace(cF,`~`)}function dF(e){return uF(lF(e))}var fF=`.xterm, input, textarea, script, style, [contenteditable]:not([contenteditable="false"])`,pF=[`title`,`label`],mF=new WeakMap,hF=new WeakMap,gF=null;function _F(e){let t=e instanceof Element?e:e.parentElement;return!t||t.closest(fF)!==null}function vF(e){let t=e.parentElement?.closest(`option`);return t!=null&&!t.hasAttribute(`value`)}function yF(e,t){if(t&&e===t.masked)return t;let n=dF(e);return n===e?null:{original:e,masked:n}}function bF(e){let t=vF(e)?null:yF(e.data,mF.get(e));t?(mF.set(e,t),e.data!==t.masked&&(e.data=t.masked)):mF.delete(e)}function xF(e,t){let n=e.getAttribute(t),r=hF.get(e),i=n===null?null:yF(n,r?.get(t));if(!i){r?.delete(t);return}let a=r??new Map;a.set(t,i),hF.set(e,a),n!==i.masked&&e.setAttribute(t,i.masked)}function SF(e){for(let t of pF)xF(e,t)}function CF(e){return e instanceof Element&&e.matches(fF)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}function wF(e){SF(e);let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,CF);for(let e=t.nextNode();e;e=t.nextNode())e instanceof Text&&bF(e),e instanceof Element&&SF(e)}function TF(e){_F(e)||(e instanceof Text&&bF(e),e instanceof Element&&wF(e))}function EF(e){e instanceof Element&&!_F(e)&&SF(e)}function DF(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&&TF(e);for(let e of n)e.isConnected&&EF(e)}function OF(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);kF(e);for(let e=t.nextNode();e;e=t.nextNode())kF(e)}function kF(e){if(e instanceof Text){let t=mF.get(e);t&&e.data===t.masked&&(e.data=t.original);return}if(!(e instanceof Element))return;let t=hF.get(e);if(t)for(let[n,r]of t)e.getAttribute(n)===r.masked&&e.setAttribute(n,r.original)}function AF(){if(gF)return;let e=new MutationObserver(t=>{DF(t),e.takeRecords()});wF(document.body),e.observe(document.body,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:pF}),gF=e}function jF(){gF&&(gF.disconnect(),gF=null,OF(document.body),mF=new WeakMap,hF=new WeakMap)}function MF(e){e?AF():jF()}function NF(){MF(ts()),rs(MF)}function PF(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 FF(e){return typeof e!=`object`||!e||!(`telemetryForcedOff`in e)?!1:e.telemetryForcedOff===!0}function IF(e,t){return t||FF(e)?!1:PF(e)}var LF=2500;function RF({hasSnapshot:e,connectingTerminalCount:t,msSinceConnected:n}){return n<2500&&(!e||t>0)?`wait`:`reveal`}var zF=2e4,BF=null,VF=null,HF={claude:null,codex:null},UF=null,WF=null,GF=null,KF=`all`,qF=!1,JF=null,YF=null,XF=!0,ZF=()=>!1,QF=new Set,$F=ve({getAck:Ot,setAck:en,signature:()=>bb(BF,HF.claude),isLooking:()=>ZF()});function eI(e){for(let t of QF)t(e)}function tI(){UF?.($F.refresh())}function nI(e){qF=e,eI(`refresh-status`),JF&&=(clearTimeout(JF),null),e&&(JF=setTimeout(()=>{JF=null,qF=!1,YF=`Usage did not answer within ${Math.round(zF/1e3)} s. Refresh to try again.`,eI(`refresh-status`)},zF))}function rI(e){let t=rb.find(t=>t.value===e);return t?t.days:null}function iI(){return{report:BF,sessions:VF,planLimitsByVendor:HF,rangeValue:KF}}function aI(){let e=!XF||!qF&&YF!==null;return XF?qF?{text:`Refreshing`,isPending:!0,hasFailure:e}:{text:YF??``,isPending:!1,hasFailure:e}:{text:BF?`${l} The figures below are from before the connection dropped.`:l,isPending:qF,hasFailure:e}}function oI(e){QF.add(e)}function sI(e){ZF=e,tI()}function cI(){$F.acknowledge(),tI()}function lI(e){UF=e,tI()}function uI(e){WF?.({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`usage`,action:e}})}function dI(e){WF=e}function fI(e){KF=e}function pI({force:e=!1}={}){if(!WF)return;GF=Ze(`usage`);let t={type:`request-usage-report`,requestId:GF};e&&(t.force=!0);let n=rI(KF);n!==null&&(t.days=n),YF=null,nI(!0),!WF(t)&&(YF=l,nI(!1))}function mI(e){XF=e,eI(`refresh-status`)}function hI(e){VF=e,eI(`sessions`)}function gI(e){let t=e;HF={...HF,[_b(t)]:t},eI(`plan-limits`),tI()}function _I(e){Eb(e,GF)&&(YF=null,nI(!1),BF=e,eI(`report`),tI())}function vI(){let e=BF?.pricing||(VF?{source:VF.pricingSource}:null),t=Sb(e?.fetchedAt),n=[xb(e,t!==null&&t>0?st(t):``)],r=Tb(BF);r&&n.push(r);let i=wb(BF?.scan);return i&&n.push(i),n}var yI={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},bI=[{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 xI(e,t){return t.isPhoneShellActive?t.phoneScreen===e:t.activeView===e}function SI(e,t){return e.flatMap(e=>!e.gate||!(`fromSettings`in e.gate)?[]:[{view:e,isAvailable:e.gate.fromSettings(t)}])}function CI(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 wI(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 TI(e){return{isActive:e===!0||typeof e==`string`,level:typeof e==`string`?e:null}}function EI(e,t,n){t&&e?.refreshOn?.includes(n)&&t.refresh?.(n)}function DI(e,t,n,r){for(let i of e)xI(i.view,t)&&EI(i,r(i.view),n)}function OI(){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 kI(e,t,n){let r=Number(e);return!e||!Number.isFinite(r)||t-r>n}var AI=`glimmervoid:preload-error-reload-at`,jI=3e4,MI=1e3,NI=OI();function PI(e,t){let n=NI.mountedModuleOf(e.view);n?t(n):NI.show(e).then(t).catch(t=>{throw Ve(`view`,`${e.view} failed to show: ${tt(t)}`),t})}function FI(e){return NI.mountedModuleOf(e)}function II(e){NI.mountEagerViews(e)}function LI(e){let t=()=>{NI.prefetch(e.filter(e=>!e.tab.hidden))};`requestIdleCallback`in window?window.requestIdleCallback(t):setTimeout(t,MI)}function RI(e){window.addEventListener(`vite:preloadError`,()=>{let t=e(),n=Date.now();kI(t.getItem(AI),n,jI)&&(t.setItem(AI,String(n)),location.reload())})}function zI(e){Hj({openTerminal:e.openTerminal,openReviews:e.openReviews}),mP(e.onRestart);let t=[{view:`focus`,label:`Focus`,panelClass:`focus-view`,hasOwnPhoneScreen:!0,hasPanelChrome:!1,hasReviewSidebar:!0,module:{mount:()=>gC({rail:document.getElementById(`focus-rail`),center:document.getElementById(`focus-center`),resizer:document.getElementById(`focus-rail-resizer`)}),activate:WC,deactivate:qC}},{view:`prs`,label:`Reviews`,glyph:`⇅`,panelClass:`pr-view`,gate:{fromSettings:yI.teamReview},load:()=>Si(()=>import(`./review-queue-panel-R9p5_F6Q.js`).then(e=>e.view),__vite__mapDeps([9,1,2,3,4,10,5,6,11,8])),attention:{subscribe:Rj,acknowledge:Lj},onConnectionChange:e=>{zA(e),aO(e)}},{view:`issues`,label:`Issues`,glyph:`#`,panelClass:`issues-view`,gate:{fromSettings:yI.issues},load:()=>Si(()=>import(`./issues-panel-D28hf84c.js`).then(e=>e.view),__vite__mapDeps([12,1,2,4,5,3,11,10,8,6])),refreshOn:[`shown`],onConnectionChange:iN},{view:`usage`,label:`Usage`,glyph:`◔`,panelClass:`usage-view`,gate:{fromSettings:yI.usage},load:()=>Si(()=>import(`./usage-panel-DBzi4xwe.js`).then(e=>e.view),__vite__mapDeps([13,1,2,4])),attention:{subscribe:lI,acknowledge:cI},onConnectionChange:mI,refreshOn:[`shown`,`connected`,`usage-sessions`]},{view:`radar`,label:`Radar`,glyph:`◎`,panelClass:`radar-view`,gate:{fromSettings:yI.posthog},load:()=>Si(()=>import(`./radar-panel-CTcFyxm0.js`).then(e=>e.view),__vite__mapDeps([14,1,2,3,4,5,6,0])),attention:{subscribe:SN,acknowledge:xN}},{view:`visions`,label:`Visions`,glyph:`◇`,panelClass:`visions-view`,gate:{fromSettings:yI.visions},load:()=>Si(()=>import(`./visions-panel-BMCIETcz.js`).then(e=>e.view),__vite__mapDeps([15,1,2,5,3])),attention:{subscribe:mT,acknowledge:hT},refreshOn:[`shown`],onConnectionChange:vT},{view:`hooks`,label:`Hooks`,glyph:`◈`,panelClass:`hooks-view`,load:()=>Si(()=>import(`./hooks-panel-BsUFFLp2.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:Kn},load:()=>Si(()=>import(`./trace-panel-6p6YymRs.js`).then(e=>e.view),__vite__mapDeps([17,1,2,10,5,3])),refreshOn:[`shown`],onAvailabilityChange:e=>CN(e?Xy:null),onConnectionChange:tb},{view:`benchmarks`,label:`Bench`,panelClass:`bench-view`,gate:{fromSettings:yI.benchmarks},load:()=>Si(()=>import(`./benchmark-panel-DChPUXGA.js`).then(e=>e.view),__vite__mapDeps([18,1,2])),onConnectionChange:DM},{view:`settings`,label:`Settings`,glyph:`@`,panelClass:`settings-view`,hasPanelChrome:!1,load:()=>Si(()=>import(`./settings-panel-3mnXcihD.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}=TI(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}wd(Vt()),Td(cn()),aF(fn()),Ji(),Rc(document);var BI=D(document,`#connection-status`,`span`),VI=D(BI,`.connection-label`,`span`),HI=D(document,`#loading-screen`,`div`),UI=D(document,`#loading-status`,`div`),WI=D(document,`#loading-detail`,`div`),GI=D(document,`#shutdown-screen`,`div`),KI=D(document,`#shutdown-status`,`div`),qI=!1,JI=null,YI=!1;function XI(){let e=ei(),t=HI.querySelector(`.loading-spinner`);e&&t&&t.replaceWith($r(e,`loading-animal`))}XI();function ZI(){qI||JI===null||RF({hasSnapshot:YI,connectingTerminalCount:Rm(),msSinceConnected:performance.now()-JI})===`reveal`&&QI()}Lm(ZI);function QI(){if(qI)return;qI=!0,HI.classList.add(`fade-out`),LI(Q);let e=()=>HI.remove();HI.addEventListener(`transitionend`,e,{once:!0}),setTimeout(e,1e3)}function $I(e,t){BI.dataset.state=`shutdown`,VI.textContent=e,BI.title=e,GL.disabled=!0,KI.textContent=t,GI.classList.add(`active`)}var eL=new Set([`disconnected`,`connecting`]);function tL(e,t,n){BI.dataset.state=e,BI.toggleAttribute(`data-reconnected`,n),VI.textContent=t,BI.title=t}function nL(e,t){tL(e,t,e===`connected`&&eL.has(BI.dataset.state??``))}function rL(e,t){BI.dataset.state!==`shutdown`&&tL(e===`verified`?`connected`:e,t,!1)}var iL=1e4,aL=`Server`,oL=`Worktree`,sL=`Worktree warning`,cL=`The server is not answering. Check the terminal running Glimmervoid for errors, or start it again with glimmervoid. This page reconnects on its own.`,lL=`Server not answering. Check the Glimmervoid terminal for errors, or run glimmervoid. This page retries on its own.`,uL=null,dL=!1;function fL(){UI.textContent=`Reconnecting to server...`,WI.textContent=lL,WI.hidden=!dL}function pL(){uL=null,dL=!0,qI?F({source:aL,message:cL,hidesInStreamerMode:!1}):fL()}function mL(){uL!==null||dL||(uL=window.setTimeout(pL,iL))}function hL(){uL!==null&&window.clearTimeout(uL),uL=null,dL=!1,WI.hidden=!0,Sn(aL)}He((e,t)=>{if(e===`connecting`||e===`verified`)rL(e,t);else{nL(e,t),kx(e===`connected`);for(let t of Q)t.onConnectionChange?.(e===`connected`);if(e===`connected`){if(hL(),lR&&uR(lR),GI.classList.contains(`active`)){location.reload();return}fo(),document.body.classList.add(`app-ready`),!qI&&JI===null&&(JI=performance.now(),UI.textContent=`Connecting to sessions...`,setTimeout(QI,LF)),ZI(),FR(),DL(`connected`),j(`get-settings`,{}).then(e=>{e.settings&&(hR(e.settings),Ir()===`settings`&&XL(location.hash))}).catch(()=>{})}else e===`disconnected`&&GI.classList.contains(`active`)?KI.textContent=`Waiting for server...`:(mL(),qI||fL())}});function gL(){rN(),IA(),cD()}function _L(){DC(),gL()}Rs(()=>DC());var vL=null;function yL(e){let t=jP(vL,e);vL=t.knownBuild,t.reload&&location.reload()}function bL(e){gT(new Map(e.filter(e=>!e.ephemeral).map(e=>[e.id,e.name]))),DP(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){_c(t.id,t.coherenceHooks),t.ephemeral||jl(t.path),sM(t.id,t.linkedPrs);let e=hx(t.id);e&&Qx(t.id,t.state,t.stateSince),e&&Gn(t.id,!!t.saneYolo),e&&Nx(t.id,t.isGuarded,t.isGuardrailsReleased),e||bx(t.id,t.name,t.state,MN(t)),qx(t.id,t.failureReason),mx(t.id,t.taskTitle,t.taskTitleIsCustom),jx(t.id,t.agent),Vx(t.id,t.mergeStatus,t.mergeReason),Ax(t.id,t.effectiveBase),Fx(t.id,t.activeAgents,t.awaitingBackgroundTasks),Lx(t.id,t.pendingPromptKind),Rx(t.id,t.unseenOutcome),sx(t.id,t),wx(t.id,t.hasPlan),EL(t.id)}yx(),Jc(P),DC(),KC(),gL(),xL(),$L(location.hash),IR(),YI=!0,ZI()}function xL(){Zy([...P].map(([e,t])=>({id:e,name:lt(t)||e})))}function SL(e,t){wx(e,t?.hasPlan===!0),Rx(e,t?.unseenOutcome),EL(e)}function CL(e){if(!hx(e.id))bx(e.id,e.session,e.to,MN({skipPerms:e.skipPerms,saneYolo:e.saneYolo,stateSince:e.timestamp})),Jc(P),rN();else if(e.to===b.DORMANT&&e.from!==b.DORMANT){let t=P.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;Wx(e.id),bx(e.id,e.session,b.DORMANT,MN({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})),jx(e.id,t?.agent),SL(e.id,t),_L(),X_(e.id),Jc(P)}else Qx(e.id,e.to,e.timestamp,e.event),qx(e.id,e.failureReason),e.saneYolo!==void 0&&Gn(e.id,e.saneYolo),Jc(P),X_(e.id),_L(),ar(e.id),e.to===b.INITIALIZING&&(e.from===b.DONE||e.from===b.FAILED)&&Zm(e.id)}var wL=new Map;function TL(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};wL.set(n.id,e),Ix(n.id,e)}for(let e of[...wL.keys()])t.has(e)||(wL.delete(e),Ix(e,null))}function EL(e){let t=wL.get(e);t&&Ix(e,t)}dI(A),IT(A),Jy(A),nN(A),TM(A),fr(aM),ll(xc),ll(rM),Yn({isReadable:Sc,open:wc}),Un(AN);function DL(e){DI(Q,{isPhoneShellActive:oD(),activeView:Ir(),phoneScreen:I.snapshot().phoneScreen},e,FI)}rs(()=>DL(`settings-updated`));var OL={snapshot:e=>{yL(e.serverBuild),bL(e.sessions)},"hooks-report":e=>RT(e),"save-hook-result":()=>zT(),"delete-hook-result":()=>zT(),"state-change":e=>CL(e),"session-added":e=>{e.ephemeral||jl(e.path),sM(e.id,e.linkedPrs),hx(e.id)||(bx(e.id,e.session,e.state,MN(e)),jx(e.id,e.agent),EL(e.id)),Jc(P),_L(),xL()},"session-close-confirm":e=>{Bi(e.id)},"session-removed":e=>{wn(e.id),Wx(e.id),vc(e.id),Q_(e.id),cM(e.id),Jc(P),_L(),xL()},"session-title":e=>{mx(e.id,e.taskTitle,e.isCustom),_L()},"session-prs":e=>sM(e.id,e.linkedPrs),"session-renamed":e=>{Ux(e.id,e.newName),_L(),xL()},"session-modified":e=>{e.ephemeral||jl(e.path);let t=P.get(String(e.id)),n=L()===String(e.id);_c(e.id,null),Wx(e.id),Q_(e.id),sM(e.id,e.linkedPrs),bx(e.id,e.session,e.state,MN(e)),n&&hi(String(e.id)),jx(e.id,e.agent),SL(e.id,t),Jc(P),_L(),xL()},"session-git":e=>Mx(e.id,!!e.worktree),"session-agents":e=>{Fx(e.id,e.activeAgents,e.awaitingBackgroundTasks),_L(),ar(e.id)},"session-unseen":e=>{Rx(e.id,e.unseenOutcome),yx(),Jc(P),_L()},"session-prompt":e=>{Lx(e.id,e.pendingPromptKind),gL()},"session-merge-status":e=>{Bx(e.id,e.mergeStatus,e.reason),zC(e.id,e.mergeStatus),gL()},"session-worktree-blocked":e=>{F({source:oL,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=>{F({source:sL,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=>{Sn(oL,e.id),Ax(e.id,e.base)},"session-diff":e=>{Hx(e.id,e)},"session-diff-error":e=>{G_(e.id,e.message)},"change-map":e=>K_(e.id,e.map),"branch-sync-status":e=>q_(e.id,e),"session-changed":e=>Y_(e.id),"debug-state-response":e=>Zn(e),"session-trace-response":e=>{cx(e)||Qy(e)},"session-trace-changed":e=>{ux(e.id),$y(e)},"session-conversation":e=>{sx(e.id,e),gL()},"session-plan-changed":e=>{Tx(e),gL()},"session-plan-draft":e=>{Ex(e)},"session-plan-response":e=>{Dx(e)},"session-docs-changed":e=>Ds(e),"session-docs-snapshot":e=>Os(e),"session-shown":e=>ec(e),"session-shown-snapshot":e=>tc(e),"session-coherence-hooks":e=>{_c(e.id,e.coherenceHooks),_L()},"session-coherence":e=>{yc(e),_L()},"session-coherence-snapshot":e=>{bc(e),_L()},"session-coherence-journal-response":e=>Tc(e),"session-setup-response":e=>jN(e),notify:e=>{ba(e),ar(e.session)},"update-status":e=>{FL(e),OP(e)},"update-progress":e=>kP(e.journal),"post-turn-leftovers":e=>LL(e),error:e=>{let t=AP(e),n=eb(e);lx(e);let r=Ox(e);t||n||r||(e.id?Kx(e.id,e.message):F({source:aL,message:e.message}))},"session-error":e=>{H_(e.id),!Ox(e)&&Kx(e.id,e.message)},"settings-updated":e=>{e.settings&&hR(e.settings),fo()},"agent-logins":e=>ri(e.logins),"health-snapshot":e=>{e.stats&&eg(e.stats)},"radar-status":e=>wN(e),"radar-investigation-activity":e=>TN(e),"radar-investigation-finished":e=>EN(e),"team-review-status":e=>nO(e),"github-prs":e=>Cr(e),"my-prs-status":LA,"benchmark-status":e=>OM(e),"benchmark-action-result":e=>kM(e),"my-pr-merge-result":e=>RA(e),"team-review-action-result":e=>rO(e),"open-team-review-session-result":e=>iO(e),"issues-status":e=>aN(e),"issue-detail-result":e=>oN(e),"open-issue-session-result":e=>sN(e),"usage-sessions":e=>{TL(e.sessions),hI(e)},"usage-report":e=>{_I(e),EP()},"plan-limits":e=>gI(e),"usage-budget-alert":e=>ba({session:`budget-${e.scope}-${e.periodKey}`,category:`threshold-${e.threshold}`,message:e.text,ignoreFocus:!0}),"visions-findings":e=>bT(e),"visions-comments":e=>xT(e),"visions-hand":e=>ST(e),"visions-intent":e=>CT(e),"visions-fix":e=>yT(e),"visions-snapshot":e=>ET(e),"ingest-activity":e=>wT(e),"ingest-snapshot":e=>TT(e),"client-trust":e=>kR(e.trust),"shutting-down":()=>$I(`Shutting down...`,`Shutting down sessions...`),restarting:()=>$I(`Restarting...`,`Restarting server...`)};function kL(e){let t=OL[e.type];t&&t(e)}Ke(e=>{kL(e),DL(e.type)});var AL,jL=null;function ML(e,t,n){e.onclick=()=>{let e=Pe(n);e?e.then(()=>{t.textContent=`Copied`}).catch(()=>{t.textContent=`Copy failed`}):t.textContent=`Copy failed`}}var NL=LP(v,h,`Update`).href;function PL(e){let{latestSha:t,latest:n}=e;return typeof n==`string`&&n?n:typeof t==`string`&&t?t:null}function FL(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=PL(e),s=o&&n===`restart`?`${o}:ready`:o;if(a&&i===jL||!a&&AL!==void 0&&s===AL||!a&&s&&Jt()===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=NL,l.hidden=n!==`link`;let u=D(document,`#update-banner-restart`,`button`);u.hidden=n!==`restart`,u.onclick=OR;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?jL=i:(AL=s,Gt(s))}}var IL=!1;function LL({repositories:e,command:t}){let n=D(document,`#post-turn-leftovers-banner`,`div`);if(e.length===0){n.hidden=!0;return}if(IL)return;let r=D(document,`#post-turn-leftovers-copy-status`,`span`);D(document,`#post-turn-leftovers-text`,`span`).textContent=jr(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=()=>{IL=!0,n.hidden=!0}}var RL=D(document,`#telemetry-banner`,`div`);function zL(){Lt(!0),RL.hidden=!0}function BL(e){RL.hidden=!IF(e,ht())}var VL=D(document,`#telemetry-banner-settings`,`a`);VL.href=LP(`privacy`,`telemetry-enabled`,`What's collected`).href,VL.addEventListener(`click`,zL),D(document,`#telemetry-banner-dismiss`,`button`).addEventListener(`click`,zL),D(document,`#btn-add-session-header`,`button`).addEventListener(`click`,Mi);var HL=D(document,`#btn-mute`,`button`);mM(HL);var UL=D(document,`#btn-streamer`,`button`);cs(UL),NF();var WL=D(document,`#power-menu`,`div`),GL=D(document,`#btn-power`,`button`),KL=D(document,`#power-menu-dropdown`,`div`);function qL(e){WL.classList.toggle(`open`,e),GL.setAttribute(`aria-expanded`,String(e))}GL.addEventListener(`click`,e=>{e.stopPropagation(),qL(!WL.classList.contains(`open`))}),ur({trigger:GL,menu:KL,menuItems:()=>[...KL.querySelectorAll(`[role="menuitem"]`)].filter(e=>!e.hidden),isOpen:()=>WL.classList.contains(`open`),open:()=>qL(!0),close:()=>qL(!1)}),document.addEventListener(`click`,e=>{e.target instanceof Node&&(WL.contains(e.target)||qL(!1))}),ge(document.querySelector(`.header`));function JL(e){e&&vP(e),!uD(`settings`)&&$(`settings`,{section:e})}function YL(){PP(location.hash)&&history.replaceState(history.state,``,`${location.pathname}${location.search}`)}function XL(e){return PP(e)?(vP(null,null,e),uD(`settings`)||$(`settings`,{persist:!1}),!0):!1}var ZL=`No plan is stored for this session yet. It appears here once the agent writes one.`,QL=`Plan`;function $L(e){let t=ra(e);return t?!hx(t)||(history.replaceState(history.state,``,`${location.pathname}${location.search}`),oD()?(aD(t)||F({source:QL,sessionId:t,message:ZL}),!0):($(`focus`,{persist:!1}),VC(t)||F({source:QL,sessionId:t,message:ZL}),!0)):!1}function eR(e){return $L(e)?!0:XL(e)}function tR(e){e.newURL===location.href&&eR(location.hash)}document.addEventListener(`click`,e=>{if(!oD()||e.defaultPrevented)return;let t=e.target instanceof Element?e.target.closest(`a[href^="#"]`):null;t instanceof HTMLAnchorElement&&eR(t.hash)&&e.preventDefault()}),bA(D(document,`#celebration-tray`,`div`),D(document,`#btn-celebrations`,`button`),D(document,`#celebration-tray-count`,`span`)),D(document,`#btn-help`,`button`).addEventListener(`click`,()=>{JL(`browser-shortcuts`)});var Q=zI({onRestart:OR,openTerminal:e=>{lD(e)||($(`focus`),BC(e))},openPlan:e=>{$(`focus`),VC(e)},openReviews:()=>aR(`prs`)?(uD(`prs`)||$(`prs`),!0):!1,setPhoneAttention:fD});function nR(){return Q.map(e=>e.view)}var rR=nR();gP(Q),L_({panel:document.getElementById(`review-sidebar`)}),II(Q);function iR(e){return Q.find(t=>t.view===e)}function aR(e){return Q.some(t=>t.view===e&&!t.tab.hidden)}var oR=!0,sR=null;function cR(e){iR(e)?.attention?.acknowledge()}var lR=null;function uR(e){lR=A({type:`dashboard-telemetry`,event:`view_shown`,properties:{view:e}})?null:e}function dR(e){let t=iR(e);t&&(PI(t,e=>EI(t,e,`shown`)),uR(e))}function $(e,{section:t,setting:n,persist:r=!0}={}){let i=iR(e);if(!i||!aR(e))return;let a=Ir();I.dispatch(`setActiveView`,e),oR=r,r&&(sR=null),document.body.dataset.activeView=e,document.body.dataset.reviewSidebarHidden=String(i.hasReviewSidebar!==!0),r&&vt(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&&FI(a)?.deactivate?.(),PI(i,r=>{Ir()===e&&(r.activate?.(),EI(i,r,`shown`),e===`settings`&&t&&vP(t,n??null))}),uR(e),a===`settings`&&e!==`settings`&&YL(),cR(e)}function fR(e,t){let{view:n}=e;e.tab.hidden=!t,dD(n,t),e.onAvailabilityChange?.(t),!oD()&&(!t&&Ir()===n&&$(`focus`),t&&sR===n&&$(n))}function pR(e){for(let{view:t,isAvailable:n}of SI(Q,e))fR(t,n)}function mR(e){let t=CI(rR,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)),tD(t))}function hR(e){Ed(e.isExperimentalBuild===!0&&un()),_x(e),TP(e),_T(e),pR(e),BL(e),mR(e.viewTabOrder),ns(e.streamerMode===!0),ax(e.conversationView===!0)}for(let e of Q)e.gate&&(fR(e,!1),`subscribe`in e.gate&&e.gate.subscribe(t=>fR(e,t)));Yy(()=>{aR(`trace`)&&(uD(`trace`)||$(`trace`))});function gR(){return Q.filter(e=>!e.tab.hidden)}function _R(e,t){let n=e[t];return $(n.view),n.tab}function vR(e,t){let n=gR(),r=n.findIndex(t=>t.view===e);return _R(n,mr(r,t,n.length))}function yR(e){Q.some(e=>e.tab===document.activeElement)&&e.focus()}var bR=null;function xR(e){let t=nR();mR(e),j(`update-settings`,{settings:{viewTabOrder:e}}).then(e=>{e.type===`settings-error`&&mR(t)}).catch(()=>mR(t))}function SR(e){let t=bR;if(bR=null,!t||t===e)return;let n=nR();xR(wI(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=>{bR=t,e.dataTransfer?.setData(`text/plain`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),n.addEventListener(`dragover`,e=>{bR&&bR!==t&&(e.preventDefault(),n.dataset.dropTarget=`true`)}),n.addEventListener(`dragleave`,()=>delete n.dataset.dropTarget),n.addEventListener(`drop`,e=>{e.preventDefault(),delete n.dataset.dropTarget,SR(t)}),n.addEventListener(`dragend`,()=>{bR=null}),n.addEventListener(`keydown`,e=>{if(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)return;let t=gR(),n=t.findIndex(e=>e.view===Ir()),r=hr(e.key,n,t.length,`horizontal`);r!==null&&(e.preventDefault(),_R(t,r).focus())})}var CR=nn(),wR=PP(location.hash),TR=ra(location.hash);if(wR&&(vP(null,null,location.hash),$(`settings`,{persist:!1})),TR&&$(`focus`,{persist:!1}),!wR&&!TR){let e=aR(CR);e||(sR=CR),$(e?CR:`focus`,{persist:e})}nD({panels:BT(Q),onScreenShown:e=>{dR(e),e!==`settings`&&YL(),e===`settings`&&!PP(location.hash)&&vP(),cR(e)},canGoBack:e=>e===`settings`&&CP()||e===`prs`&&qj(),onBack:e=>{e===`settings`&&wP(),e===`prs`&&Jj()},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`),HL,UL,WL]}),SP(qE),Kj(qE);function ER(e){if(e===`phone`){let e=hC();for(let e of Q)FI(e.view)?.deactivate?.();let t=PP(location.hash);rD({sessionId:e??void 0,linkedScreenId:t?`settings`:void 0}),t&&vP(null,null,location.hash);return}let t=sD();iD();let n=Ir();$(aR(n)?n:`focus`,{persist:oR}),t&&BC(t)}Yi()&&ER(`phone`),Xi(ER),window.addEventListener(`hashchange`,tR);function DR({type:e,title:t,confirmLabel:n,danger:r,idleMessage:i,actionAfterKillingSessions:a}){qL(!1);let o=gx(),s=o>0?`Kill ${o} session${o>1?`s`:``} and ${a}?`:i;gr({title:t,message:s,confirmLabel:n,danger:r||o>0,onConfirm:()=>A({type:e})})}function OR(){DR({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`,OR);function kR(e){let t=Dr(`shutdown`,e);D(document,`#btn-shutdown`,`button`).hidden=!t,D(document,`#menu-divider-shutdown`,`div`).hidden=!t}D(document,`#btn-shutdown`,`button`).addEventListener(`click`,()=>{DR({type:`shutdown`,title:`Shut Down Server`,confirmLabel:`Shut Down`,danger:!0,idleMessage:`Shut down the server?`,actionAfterKillingSessions:`shut down the server`})});function AR(){return(document.activeElement?.closest(`.session-card`))?.dataset.id??null}function jR(e){BC(e),wi(e),requestAnimationFrame(()=>requestAnimationFrame(()=>P.get(e)?.term?.focus()))}function MR(){let e=AR()??L();e?Ii(e,jR):document.getElementById(`btn-add-session-header`)?.click()}function NR({action:e,step:t}){switch(e){case`merge`:return $_(),!0;case`close-session`:{let e=L();return e?(Bi(e),!0):!1}case`resolve-or-resync`:return tv()||iv(),!0;case`new-session`:return document.getElementById(`btn-add-session-header`)?.click(),!0;case`quick-session`:return MR(),!0;case`next-attention`:return Yi()?!1:mC()?(jC(),!0):(Ir()===`prs`&&Yj()||GC(()=>$(`focus`)),!0);case`rail-step`:return mC()?(UC(t),!0):!1;case`view-step`:return!Yi()&&(yR(vR(Ir(),t)),!0);case`session-nth`:return mC()?(HC(t),!0):!1;case`streamer-mode`:return ss(),!0}}document.addEventListener(`keydown`,e=>{if(e.repeat||me(e))return;let t=document.activeElement?.classList.contains(`xterm-helper-textarea`)??!1,n=Ft(e,Mu,{isTerminalFocused:t},Fu());n&&(_r()||NR(n)&&e.preventDefault())});var PR=Ar({mode:`trailing`,delayMs:150,run:()=>{A({type:`focus-change`,focused:document.hasFocus()})}});function FR(){PR.schedule()}function IR(){let e=sD();e&&M(e)?._isActiveViewer?.()===!0&&Yx(e)}function LR(){FR(),uh(M(Lr())),IR()}window.addEventListener(`focus`,LR),window.addEventListener(`blur`,LR),document.addEventListener(`visibilitychange`,LR),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&Bp()});var RR=Be(A);window.addEventListener(`error`,e=>{RR(e.error),Ve(`uncaught`,tt(e.error??e.message))}),window.addEventListener(`unhandledrejection`,e=>{RR(e.reason),Ve(`unhandled-rejection`,tt(e.reason))}),RI(()=>window.sessionStorage),window.addEventListener(`pageshow`,e=>{e.persisted&&Bp()}),$h(D(document,`#health-footer-mount`,`div`)),ju(vx),mL(),KN(),Je();export{Yj as $,is as $n,DS as $t,uP as A,cg as An,RD as At,eN as B,Iu as Bn,gD as Bt,fP as C,yg as Cn,wr as Cr,sj as Ct,bP as D,ng as Dn,$D as Dt,wP as E,ig as En,MA as Et,yN as F,cd as Fn,BD as Ft,JM as G,Ol as Gn,pT as Gt,tN as H,Ru as Hn,PT as Ht,vN as I,vd as In,qD as It,CM as J,hl as Jn,Tw as Jt,wM as K,Dl as Kn,fT as Kt,XM as L,sd as Ln,jD as Lt,yP as M,Td as Mn,HD as Mt,bN as N,wd as Nn,zD as Nt,_P as O,sg as On,eO as Ot,_N as P,Od as Pn,VD as Pt,Bj as Q,rs as Qn,ow as Qt,QM as R,od as Rn,kD as Rt,xP as S,hy as Sn,I as Sr,QA as St,hP as T,lg as Tn,NA as Tt,$M as U,Lu as Un,LT as Ut,ZM as V,zu as Vn,_D as Vt,YM as W,Fu as Wn,FT as Wt,pM as X,Zc as Xn,Nw as Xt,fM as Y,$c as Yn,uw as Yt,Fj as Z,ts as Zn,Pw as Zt,IP as _,Ky as _n,mi as _r,cj as _t,uI as a,mb as an,za as ar,Gj as at,TP as b,Vy as bn,ai as br,fj as bt,fI as c,sb as cn,Sa as cr,BA as ct,iI as d,fb as dn,aa as dr,aj as dt,OS as en,Ko as er,Vj as et,vI as f,lb as fn,Yi as fr,dj as ft,LP as g,Gy as gn,pi as gr,oj as gt,nF as h,qy as hn,wi as hr,ZA as ht,bI as i,hb as in,Ho as ir,zj as it,sP as j,Ed as jn,WD as jt,cP as k,hg as kn,GD as kt,oI as l,db as ln,ua as lr,ij as lt,XP as m,Tb as mn,ki as mr,pj as mt,CI as n,rb as nn,qo as nr,Jj as nt,pI as o,ob as on,xa as or,Pj as ot,aF as p,ab as pn,Xi as pr,ej as pt,EM as q,pl as qn,dT as qt,yI as r,yb as rn,Vo as rr,Uj as rt,sI as s,cb as sn,wa as sr,Wj as st,wI as t,Wb as tn,Yo as tr,Ij as tt,aI as u,gb as un,sa as ur,rj as ut,NP as v,Wy as vn,ii as vr,$A as vt,pP as w,xg as wn,Tr as wr,PA as wt,lP as x,Hy as xn,$r as xr,gj as xt,FP as y,Uy as yn,ri as yr,hj as yt,qM as z,Mu as zn,AD as zt};
|
|
84
|
+
`;function _w(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 vw(e,t){return _w(JSON.stringify([e,...t]))}function yw(e,t){return vw(`finding`,[e,uw(t),String(t.code??``),String(t.message??``)])}function bw(e,t){return vw(`comment`,[e,Tw(t),String(t.message??``)])}function xw(e){return vw(`fix`,[e.uri,Nw(e),e.code,e.message,Pw(e)])}function Sw(e){return vw(`intent`,[e.key,e.text,e.active])}function Cw(e,t,n,r=[],i=null){let a=[...n].map(([e,t])=>vw(`hand`,[e,t])).sort(),o=new Set;for(let r of[...e.keys(),...t.keys(),...n.keys()])o.add(vw(`document`,[r]));for(let[t,n]of e)for(let e of n)o.add(yw(t,e));for(let[e,n]of t)for(let t of n)o.add(bw(e,t));for(let e of r)o.add(xw(e));for(let e of ow(i,null,0))e.hasText&&o.add(Sw(e));let s=[...o].sort();return{signature:[...a,...s].join(gw),handEntries:a,contentEntries:s}}function ww(e,t){let n=new Set(t.split(gw));return e.handEntries.some(e=>!n.has(e))?mw:e.contentEntries.some(e=>!n.has(e))?hw:null}function Tw(e){let t=Number(e?.line);return!Number.isFinite(t)||t<1?`L?`:`L${Math.floor(t)}`}function Ew(e){return Array.isArray(e?.diagnostics)?e.diagnostics:[]}function Dw(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=Ew(t);return i.length===0?(n.delete(r),n):(n.set(r,i),n)}function Ow(e){return Array.isArray(e?.comments)?e.comments:[]}function kw(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=Ow(t);return i.length===0?(n.delete(r),n):(n.set(r,i),n)}function Aw(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 jw(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 Mw=20;function Nw(e){let t=Number(e?.line);return!Number.isFinite(t)||t<0?`L?`:`L${Math.floor(t)+1}`}function Pw(e){return e?.applied===!0?`applied`:`refused`}function Fw(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 Iw(e){let t=typeof e?.uri==`string`?e.uri:``,n=Number(e?.ts);return Fw(e?.fix,{uri:t,ts:Number.isFinite(n)?n:0})}function Lw(e,t,{max:n=Mw}={}){let r=Iw(t);return r?[r,...e].slice(0,Math.max(0,Math.floor(n))):[...e]}function Rw(e,{max:t=Mw}={}){let n=Array.isArray(e?.fixes)?e.fixes:[],r=[];for(let e of n){let t=Fw(e);t&&r.push(t)}return r.slice(0,Math.max(0,Math.floor(t)))}var zw=100;function Bw(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 Vw(e){let t=Array.isArray(e?.events)?e.events:[],n=[];for(let e of t){let t=Bw(e);t&&n.push(t)}return n}function Hw(e){let t=Number(e?.overflow);return!Number.isFinite(t)||t<=0?0:Math.floor(t)}function Uw(e,t){return[...e].sort((e,t)=>t.seq-e.seq).slice(0,Math.max(0,Math.floor(t)))}function Ww(e,t,{max:n=zw}={}){let r=Vw(t);if(r.length===0)return Uw(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 Uw([...i.values()],n)}function Gw(e,{max:t=zw}={}){return Uw(Vw(e),t)}var Kw=new Map,qw=new Map,Jw=new Map,Yw=QC(),Xw=new Map,Zw=null,Qw=!0,$w=[],eT=0,tT=[],nT=null,rT=()=>!1,iT=new Set,aT=Cw(Kw,qw,Jw,tT,Yw),oT=on(),sT=ve({getAck:()=>oT,setAck:e=>{oT=e,Wt(e)},signature:()=>aT.signature,isLooking:()=>rT()});function cT(e){for(let t of iT)t(e)}function lT(){aT=Cw(Kw,qw,Jw,tT,Yw),aT.signature!==``&&sT.refresh(),nT?.(ww(aT,oT))}function uT(e){cT(e),lT()}function dT(){return{findingsByUri:Kw,commentsByUri:qw,handsByUri:Jw,intent:Yw,projectNamesById:Xw,isEnabled:Zw,isConnected:Qw,activityEvents:$w,activityOverflow:eT,fixEntries:tT}}function fT(e){iT.add(e)}function pT(e){rT=e,lT()}function mT(e){nT=e,lT()}function hT(){aT.signature!==``&&sT.acknowledge(),lT()}function gT(e){Xw=e instanceof Map?e:new Map,cT([`intent`])}function _T(e){Zw=e?.visions?.enabled===!0,cT([`feed`])}function vT(e){Qw=e,cT([`connection`])}function yT(e){tT=Lw(tT,e),uT([`fixes`])}function bT(e){Kw=Dw(Kw,e),uT([`feed`])}function xT(e){qw=kw(qw,e),uT([`feed`])}function ST(e){Jw=fw(Jw,e),uT([`feed`])}function CT(e){Yw=rw(Yw,e),uT([`intent`])}function wT(e){$w=Ww($w,e),eT=Hw(e),uT([`activity`])}function TT(e){$w=Gw(e),eT=0,uT([`activity`])}function ET(e){Kw=Aw(e),qw=jw(e),Jw=pw(e),Yw=tw(e),tT=Rw(e),uT([`intent`,`feed`,`fixes`])}var DT=null,OT=null,kT=!1,AT=null,jT=new Set;function MT(e,t){if(!e||typeof e!=`object`)return!1;let n=e.requestId;return typeof n!=`string`||!t||n===t}function NT(){for(let e of jT)e()}function PT(){return{report:DT,hasReportSendFailed:kT}}function FT(e){jT.add(e)}function IT(e){OT=e}function LT(){if(!OT)return;AT=Ze(`hooks-report`);let e=OT({type:`request-hooks-report`,requestId:AT});e!==!kT&&(kT=!e,NT())}function RT(e){MT(e,AT)&&(DT=e,kT=!1,NT())}function zT(){LT()}function BT(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 VT=e=>e.ui.path;function HT({onSelectSession:e}){let t=k(`div`,`phone-board`),n=k(`header`,`phone-topbar`),r=DS({onJump:()=>{HS(r);let e=zn(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`}),zS(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}=pl(`button`);t.type=`button`,t.dataset.id=e,t.addEventListener(`click`,()=>o(e));let{item:r}=ml(t,()=>Bi(e));return r.setAttribute(`role`,`listitem`),p.set(t,{refs:n,item:r}),t}function v(){let e=k(`section`,`phone-board-group`),t=rS({onAdd:Pi,onForget:e=>{Nl(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;xl(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&&(iS(n,t,`Board`),n.rows.setAttribute(`aria-label`,`${t.label} sessions`))}function x(){return Nn(Ei())}function S(){let e=x(),t=tS(e,VT,Ml(e,VT)),n=$n(e);g=In(n);let i=zn(e,null),a=new Map(i.map(({id:e},t)=>[e,t+1]));OS(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(nS(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=P.size===0;s.hidden=!w,c.hidden=w,uo(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||``:it(p.get(r)?.refs.glyph))}return at(()=>{for(let[e,t]of d){let n=P.get(e),r=p.get(t);n&&r&&(r.refs.elapsed.textContent=rt(n))}}),{el:t,topBarEl:n,refresh:S,renderActivity:C,getAttentionCount:()=>g}}var UT=`clipboard`,WT=`upload`,GT=24,KT=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:UT,title:`Paste from the clipboard`}),Object.freeze({id:`attach`,label:`Attach`,bytes:null,action:WT,title:`Upload a photo or file to this session`})]);function qT(e){let t=KT.find(t=>t.id===e);return t?t.bytes:null}function JT(e){return!!e&&e.action===UT}function YT(e){return!!e&&e.action===WT}function XT(e,t,n=GT){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=GT){let r=XT(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 QT={" ":`\0`,"@":`\0`,"[":`\x1B`,"\\":``,"]":``,"^":``,_:``,"?":``};function $T(e){if(e.length!==1)return null;let t=e.toLowerCase();return t>=`a`&&t<=`z`?String.fromCharCode(t.charCodeAt(0)-96):QT[e]??null}function eE({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 KT){t.id===`left`&&r.appendChild(tE(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){YT(t)?d(r):JT(t)?rE(e,n):e(qT(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 ap(e,t),n&&(n.disabled=!1)}return{element:r,takeHeldControl:l}}function tE(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(qT(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 nE=`Paste needs clipboard permission.`;function rE(e,t){let n=null;try{n=navigator.clipboard?.readText?.()}catch{t(nE);return}n?n.then(t=>{t&&e(t)}).catch(()=>t(nE)):t(`Paste is unavailable in this browser.`)}function iE({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`);or(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(hn(Cn)),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 _=bn(`phone-key-status m-0 px-3 py-1`),{element:v,takeHeldControl:y}=eE({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?P.get(x):null;t&&(nh(t,e)?_.clear():_.show(`error`,l))}function w(){let e=x?P.get(x):null;e?.term&&e.term.focus()}h.addEventListener(`click`,w);function T(e){let t=$T(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?P.get(x):null)?._resetSoftKeyboardBuffer?.())},!0);function te(){let e=x?P.get(x):null;e&&x&&dr(e,x,{returnsFocusToTerminal:!1})}function E(){let e=x?P.get(x):null;e&&x&&Vn(e,x)}function ne(){let e=x?P.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;hl(r,{glyph:u,label:d},n,e.awaitingBackgroundTasks,e.pendingPromptKind);let i=e.card?.dataset.session||x;rr(o)||(o.textContent=i),s.dataset.sessionName=i??``,Jn(s,e.taskTitle),f.textContent=rt(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=P.get(e);t&&(x===e&&Lr()===e&&t.card.parentElement===h||(re(),x=e,Rr(t,e,h,{className:`phone-centered`}),S=D(t.card,`.session-actions`,`div`),Oe(S,m),t.renameTargetEl=o,t.titleTargetEl=s,C=t),ne())}function ae(){re(),Lr()===x&&zr(),x=null,ne()}function oe(){if(!x){ne();return}let e=P.get(x);e?e.card.parentElement===h?ne():(ie(x),n.hidden||fh(e,x,!0)):ae()}function se(){let e=x;e&&fh(P.get(e),e,!1)}function ce(){oe();let e=x;if(!e)return;let t=P.get(e);t&&(fh(t,e,!0),Yx(e))}return at(()=>{let e=x?P.get(x):null;e&&(f.textContent=rt(e))}),ne(),{el:n,show:ie,clear:ae,refresh:oe,reveal:ce,unview:se,getSessionId:()=>x}}var aE=`board`,oE=`terminal`,sE=`changes`,cE=Object.freeze({[sE]:oE}),lE=Object.freeze([{id:aE,label:`Focus`,glyph:`▤`},{id:oE,label:`Terminal`,glyph:`▸`}]),uE=[],dE=new Map,G=null,fE=new Map,pE=new Map,mE=new Map,hE=null,K=null,gE=null,_E=null,vE=null,yE=null,bE=new Map,xE=new Set,SE={},q=!1,CE=120,wE=0,TE=0,J=0,EE=null;function DE(){wE=0,TE=0}function OE(){let e=window.visualViewport;G&&(!q||!e?G.removeAttribute(`data-keyboard`):(G.style.setProperty(`--phone-vh`,`${e.height}px`),G.style.setProperty(`--phone-vv-top`,`${e.offsetTop}px`),e.width!==TE&&(TE=e.width,wE=0),wE=Math.max(wE,e.height),wE-e.height>CE?G.dataset.keyboard=`open`:G.removeAttribute(`data-keyboard`)))}function kE(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 AE(e){return e?.querySelector(`.phone-nav-dot`)||null}function jE(e,t){e&&(e.hidden=!t,typeof t==`string`&&(e.dataset.attention=t),typeof t!=`string`&&delete e.dataset.attention)}function ME(){let e=[];for(let t of uE){if(xE.has(t.id))continue;let n=mE.get(t.id)||!1;e.push(n),jE(AE(bE.get(t.id)),n)}jE(AE(vE),Fn(e))}function NE(){let e=k(`div`,`phone-nav-more-menu`);e.hidden=!0;for(let t of uE){let n=kE(t.label,t.glyph,`phone-nav-menu-item`,`phone-nav-dot phone-nav-menu-dot`);n.dataset.screen=t.id,n.hidden=xE.has(t.id),n.addEventListener(`click`,()=>{PE(!1),eD(t.id)}),bE.set(t.id,n),e.appendChild(n)}return e}function PE(e){yE&&vE&&(yE.hidden=!e,vE.setAttribute(`aria-expanded`,String(e)))}function FE(){return!!yE&&!yE.hidden}function IE(){let e=k(`nav`,`phone-nav`);e.setAttribute(`aria-label`,`Screens`);for(let t of lE){let n=kE(t.label,t.glyph);n.dataset.screen=t.id,n.addEventListener(`click`,()=>eD(t.id)),fE.set(t.id,n),e.appendChild(n)}return vE=kE(`More`,`⋯`),vE.setAttribute(`aria-expanded`,`false`),vE.addEventListener(`click`,()=>PE(!FE())),e.appendChild(vE),yE=NE(),e.appendChild(yE),e}function LE(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),pE.set(e,r),r}function RE(){if(G)return;hE=HT({onSelectSession:BE}),ct((e,t)=>{q&&hE?.renderActivity(e,t)}),K=iE({onBack:()=>eD(aE),onShowChanges:()=>eD(sE)}),gE=k(`div`,`phone-review`);let e=k(`div`,`phone-screens`),t={[aE]:hE.el,[oE]:K.el};for(let n of lE)e.appendChild(LE(n.id,n.label,t[n.id]));e.appendChild(LE(sE,`Changes`,zE(gE)));for(let t of uE){let n=k(`div`,`phone-panel phone-${t.id}`);dE.set(t.id,n),e.appendChild(LE(t.id,t.label,n))}G=k(`div`,`phone-shell`),G.id=`phone-shell`,G.append(e,IE()),document.body.appendChild(G),ME(),window.visualViewport?.addEventListener(`resize`,OE),window.visualViewport?.addEventListener(`scroll`,OE),window.addEventListener(`popstate`,YE),document.addEventListener(`click`,e=>{FE()&&yE&&vE&&e.target instanceof Node&&(yE.contains(e.target)||vE.contains(e.target)||PE(!1))}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&FE()&&PE(!1)})}function zE(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`,()=>eD(oE)),_E=k(`span`,`phone-changes-session`),n.append(r,k(`span`,`phone-changes-title`,`Changes`),_E),t.append(n,e),t}function BE(e){if(P.has(e)){if(!hE||!K)throw Error(`Phone shell is not built`);Ci(e,`dormant-fallback`),wi(e),K.show(e),eD(oE)}}function VE(e){return cE[e]??e}function HE(e,t){return t?{glimmervoidScreen:e,glimmervoidNested:!0}:{glimmervoidScreen:VE(e)}}function UE(e){let t=e?.glimmervoidScreen;return typeof t==`string`?t:null}function WE(e){return UE(e)?e.glimmervoidNested===!0?2:1:0}function GE(e){return e===aE?0:cE[e]||SE.canGoBack?.(e)?2:1}function KE(e,t){let n=t?e:VE(e);return UE(history.state)===n&&WE(history.state)===(t?2:1)}function qE(){if(!q||EE!==null)return;let e=I.snapshot().phoneScreen||aE,t=GE(e);if(J>t){EE=location.href,history.go(t-J),J=t;return}let n=J===2;J>0&&!KE(e,n)&&history.replaceState(HE(e,n),``),J===0&&t>0&&(history.pushState(HE(e,!1),``),J=1),J===1&&t===2&&(history.pushState(HE(e,!0),``),J=2)}function JE(){let e=UE(history.state);return e&&QE(e)?(J=WE(history.state),e):(e&&history.replaceState(null,``),J=0,aE)}function YE(e){if(!q)return;if(EE!==null){history.replaceState(history.state,``,EE),EE=null,qE();return}let t=UE(e.state),n=t&&QE(t)?t:aE;J=WE(e.state);let r=I.snapshot().phoneScreen;J<2&&n===r&&SE.canGoBack?.(r)&&SE.onBack?.(r),ZE(n),qE()}function XE(e,t){for(let[n,r]of e)n===t?r.setAttribute(`aria-current`,`page`):r.removeAttribute(`aria-current`)}function ZE(e){if(!vE||!K)throw Error(`Phone shell is not built`);I.dispatch(`setPhoneScreen`,e),PE(!1),$E();for(let[t,n]of pE)n.hidden=t!==e;SE.onScreenShown?.(e),XE(fE,VE(e));let t=bE.has(e);t&&vE.setAttribute(`aria-current`,`page`),t||vE.removeAttribute(`aria-current`),XE(bE,e),e===oE?K.reveal():K.unview()}function QE(e){return pE.has(e)&&!xE.has(e)}function $E(){if(!_E||!K)return;let e=K.getSessionId(),t=e?P.get(e):null,n=t?lt(t):``;_E.textContent=n,_E.title=n}function eD(e){G&&QE(e)&&(ZE(e),qE())}function tD(e){uE.sort((t,n)=>e.indexOf(t.id)-e.indexOf(n.id)),yE?.append(...uE.flatMap(e=>bE.get(e.id)??[]))}function nD(e){SE=e||{},uE=SE.panels||[]}function rD({sessionId:e,linkedScreenId:t}={}){if(q)return;if(RE(),!G||!hE||!K)throw Error(`Phone shell is not built`);q=!0,G.hidden=!1;for(let e of SE.headerControls||[])Oe(e,hE.topBarEl);B_(gE);for(let e of uE)Oe(e.el,dE.get(e.id)),e.el.hidden=!1;OE(),e&&K.show(e);let n=JE();cD(),t&&QE(t)?eD(t):e&&n===aE?eD(oE):(ZE(n),qE())}function iD(){if(q){if(!G||!K)throw Error(`Phone shell is not built`);q=!1,K.clear(),B_(null);for(let e of uE)_e(e.el);for(let e of SE.headerControls||[])_e(e);PE(!1),G.hidden=!0,G.removeAttribute(`data-keyboard`),DE(),J>0&&history.go(-J),J=0,EE=null}}function aD(e){return!q||!hE||!K||!P.has(e)?!1:(BE(e),Cx(e))}function oD(){return q}function sD(){return q&&K?K.getSessionId():null}function cD(){if(!q)return;if(!hE||!K)throw Error(`Phone shell is not built`);pD(),hE.refresh(),K.refresh(),$E(),VE(I.snapshot().phoneScreen||aE)===oE&&!K.getSessionId()&&eD(aE);let e=AE(fE.get(aE));e&&(e.hidden=hE.getAttentionCount()===0)}function lD(e){return q?(BE(e),!0):!1}function uD(e){return!q||!QE(e)?!1:(eD(e),!0)}function dD(e,t){t&&xE.delete(e),t||xE.add(e);let n=bE.get(e);n&&(n.hidden=!t);let r=pE.get(e);r&&!t&&(r.hidden=!0),ME(),!t&&q&&I.snapshot().phoneScreen===e&&eD(aE)}function fD(e,t){mE.set(e,typeof t==`string`&&t?t:t===!0),ME()}function pD(){if(!K)throw Error(`Phone shell is not built`);if(K.getSessionId())return;let e=Ti();e&&(K.show(e),wi(e,{rememberFocus:!1}))}var mD={MERGE:`a merge commit`,SQUASH:`squash and merge`,REBASE:`rebase and merge`},hD=new Set([`FAILURE`,`ERROR`]);function gD(e){return mD[e]}function _D(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&&hD.has(e.checks.state)?`Checks are failing`:e.stage===`ready`?null:`Not ready to merge yet`:`Closed`}function vD(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 yD(e){let t=je.parse({...e,key:`${e.repo}#${e.number}`,stage:`unknown`});return{...t,stage:vD(t)}}var bD=[`Needs you`,`Waiting`,`Ready to merge`,`Drafts`,`Merged today`],xD=[`Ready to merge`,`Needs you`,`Waiting`,`Drafts`,`Merged today`],SD={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`},CD={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`},wD={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`},TD={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 ED(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 DD(e){return bD[e.rows.reduce((e,{pr:t})=>Math.min(e,bD.indexOf(SD[t.stage])),bD.length-1)]}function OD(e){let t=new Map(bD.map(e=>[e,{title:e,prs:[],rows:[]}]));for(let n of ED(e)){let e=t.get(DD(n));if(e)for(let t of n.rows)e.rows.push(t),e.prs.push(t.pr)}return xD.flatMap(e=>t.get(e)??[])}function kD(e){return CD[e]}function AD(e){return wD[e]}function jD(e){return TD[e]}function MD(e,t){return e.flatMap(e=>{let n=t(e.key);if(!n)return[];let r=e.key.slice(0,e.key.lastIndexOf(`#`));return[{...yD({...n,repo:r}),...e}]})}function ND(e){let t=new Map;for(let n of e)for(let e of n.links){let r=ke(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 PD(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 FD=3;function ID(e){if(e.length===1)return{message:`Merged ${e[0].key}`,detailLines:[e[0].title]};let t=e.slice(0,FD).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 LD(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:yD(n).stage}:e};return{...e,drafts:e.drafts.map(n),inFlight:e.inFlight.map(n),queued:e.queued.map(n)}}function RD(e){return e.isDraft?{band:`not-ready`,reason:`draft`}:e.reviewDecision===`CHANGES_REQUESTED`?{band:`waiting-on-author`,reason:`changes-requested`}:e.checksState===`FAILURE`||e.checksState===`ERROR`?{band:`waiting-on-author`,reason:`checks-failing`}:e.checksState===`PENDING`||e.checksState===`EXPECTED`?{band:`not-ready`,reason:`checks-pending`}:e.requestSource===`direct`&&e.reviewDecision===`REVIEW_REQUIRED`?{band:`blocking-others`,reason:`direct-request`}:e.reviewDecision===`APPROVED`?{band:`actionable`,reason:`approved`}:{band:`actionable`,reason:e.requestSource===`direct`?`review-available`:`team-request`}}function zD(e){let t=e.viewerThreads;return t!==void 0&&t.total>0&&t.resolved===t.total}function BD(e){return e.status===`posted`&&VD(e)}function VD(e){if(!zD(e)||ee(e))return!1;let t=WD(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 HD(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[RD(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(GD(r).length>0||BD(r)){n.actionable.push(r);continue}let e=(r.status===`ready`||r.status===`stale`||r.status===`error`)&&!KD(r);e&&t.noReviewNeeded.push(r),r.status===`ready`&&!e&&n[RD(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 UD(e,t){return e.commit===t?e.isViewer||T.has(e.state):!1}function WD(e){return e.liveHead??e.reviewedHead}function GD(e){return(e.threads??[]).filter(e=>!e.isNit&&!e.isResolved)}function KD(e){return GD(e).length>0?!0:ee(e)?!1:VD(e)?!0:!(e.githubReviews??[]).some(t=>UD(t,WD(e)))}function qD(e,t){return`${e}#${t}`}var JD=null,YD=null,XD=new Set;function ZD(e){for(let t of XD)t(e)}function QD(){YD=LD(JD,wr),ZD({kind:`status`})}function $D(e){XD.add(e)}function eO(){return YD}function tO(){return HD(YD)}function nO(e){let t=s.safeParse(e);t.success?(JD=t.data,QD()):Ve(`reviews`,`dropped team-review-status: ${Le(t.error.issues)}`)}function rO(e){ZD({kind:`action-result`,message:e})}function iO(e){ZD({kind:`open-session-result`,message:e})}function aO(e){ZD({kind:`connection`,isConnected:e})}Tr(QD);var oO=1.2,sO=1.55,cO=.12,lO=523.25,uO=2,dO=8,Y=(e,t,n)=>({semitone:e,startBeat:t,beats:n}),fO={melody:[Y(7,4,.5),Y(11,4.5,.5),Y(12,5,3)],bass:[Y(-5,4,1),Y(-12,5,3)]},pO=[{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,...fO.melody],bass:[...e.bass,...fO.bass]}));function mO(e,t){return lO*2**((e+t)/12)}function hO(e,t){let n=(e,n,r)=>e.map(e=>({frequency:mO(e.semitone,t),startSeconds:sO+e.startBeat*cO,durationSeconds:e.beats*cO,waveform:n,gain:r}));return[...n(e.melody,`square`,.2),...n(e.melody,`triangle`,.5),...n(e.bass,`triangle`,.6)]}var gO=[{frequency:220,endFrequency:880,startSeconds:0,durationSeconds:.32,waveform:`triangle`,gain:.25},{frequency:160,endFrequency:45,startSeconds:oO,durationSeconds:.28,waveform:`sine`,gain:1},{frequency:1400,endFrequency:380,startSeconds:oO,durationSeconds:.06,waveform:`square`,gain:.12}];function _O(e){let t=pO[e%pO.length],n=Math.min(e*uO,dO);return{peakGain:.1,tones:[...gO,...hO(t,n)]}}function vO(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 yO(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 bO=.6,xO=.25,SO=1.6;function CO(e){return Math.min(bO+e*xO,SO)}var wO=[`var(--accent)`,`var(--state-running)`,`var(--state-idle)`,`var(--state-waiting)`,`var(--state-failed)`];function TO(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`,wO[e%wO.length]]]}var EO=`<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>`,DO=`<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 OO(){let e=De(`div`,`merge-bullseye-target`,EO);return e.append(k(`span`,`merge-bullseye-ripple`)),e}function kO(){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(De(`div`,`merge-bullseye-dart`,DO)),t.append(n),e.append(t),e}function AO(){let e=k(`div`,`merge-bullseye-range`),t=k(`div`,`merge-bullseye-track`);return t.append(kO()),e.append(OO(),t),e}var jO={title:`BULLSEYE!`,buildScene:AO},MO=6,NO=30,PO=-14,FO=16;function IO(e=Math.random){return[[`--crosshair-start-left`,`${X(MO,NO,e)}%`],[`--crosshair-start-offset-y`,`${X(PO,FO,e)}px`]]}var LO=`<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>`,RO=`<svg viewBox="0 0 22 22" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="M11 0V5M11 17V22M0 11H5M17 11H22"/><circle class="merge-headshot-crosshair-dot" cx="11" cy="11" r="1"/></svg>`,zO=`<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M3 3L8 8M21 3L16 8M3 21L8 16M21 21L16 16"/></svg>`;function BO(){let e=k(`div`,`merge-headshot-sweep`);ue(e,IO());let t=k(`div`,`merge-headshot-aim`);t.append(De(`div`,`merge-headshot-crosshair`,RO));let n=k(`div`,`merge-headshot-bob`);return n.append(t,De(`div`,`merge-headshot-hitmarker`,zO)),e.append(n),e}function VO(){let e=k(`div`,`merge-headshot-range`),t=k(`div`,`merge-headshot-track`);return t.append(BO()),e.append(De(`div`,`merge-headshot-target`,LO),t),e}var HO={title:`HEADSHOT!`,buildScene:VO},UO=[`10`,`J`,`Q`,`K`,`A`],WO=160,GO=19,KO=5,qO=9,JO=780,YO=70,XO=70,ZO=35;function QO(e){let t=UO.length-1,n=e-t/2;return{offsetPx:n*GO,titleSpreadFraction:n/t,tiltDegrees:n*KO,bottomPx:qO-n**2,dealLeadMs:JO-e*YO,flipLeadMs:WO+(t-e)*XO,waveDelayMs:e*ZO}}function $O(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 ek(){return[[`--card-flip-ms`,`${WO}ms`]]}var tk=`<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 nk(e,t){let n=k(`div`,`merge-flush-deal`);ue(n,$O(QO(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`,tk),i.append(k(`div`,`merge-flush-back`),a),r.append(i),n.append(r),n}function rk(){let e=k(`div`,`merge-flush-table`);return ue(e,ek()),e.append(...UO.map(nk)),e}var ik={title:`ROYAL FLUSH!`,buildScene:rk},ak=[1,2,3,4],ok=14,sk=3,ck=3,lk=10,uk=20,dk=2,fk=28,pk=18,mk=.01,hk=1.5,gk=2200,_k=1,vk=120,yk=.35,bk=15,xk=105,Sk=4,Ck=65,wk=145;function Tk(e){return Math.round(e/(Math.PI*pk)*360)}function Ek(e){return uk-e*dk}function Dk(e){return e.rowIndex*ok+e.depthIndex*sk}function Ok(e,t,n){return Array.from({length:n},(r,i)=>e+(t-e)*i/(n-1))}function kk(){return ak.flatMap((e,t)=>Array.from({length:e},(n,r)=>({rowIndex:t,depthIndex:e-1-r})))}function Ak(e,t){let n=yO(Ok(bk,xk,e),t),r=yO(Ok(Ck,wk,e),t);return n.map((e,n)=>({angleDegrees:e+X(-4,Sk,t),depthScalePercent:Math.round(r[n])}))}function jk(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=vO(o),l=vO(o+s),u=c+l,d=X(540,1080,n),f=a>=0?1:-1,p=Dk(e);return{depthIndex:e.depthIndex,launchAngleDegrees:t.angleDegrees,distanceFromHeadPinPx:p,layer:Ek(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/yk)}}function Mk(e=Math.random){let t=kk(),n=Ak(t.length,e);return t.map((t,r)=>jk(t,n[r],e))}function Nk(e){return[[`--pin-left`,`${e.distanceFromHeadPinPx}px`],[`--pin-raise`,`${e.depthIndex*ck}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 Pk(){return Ek(hk)}function Fk(){return Math.max(...kk().map(Dk))+lk}function Ik(){let e=Fk(),t=fk+e+pk-_k;return[[`--ball-follow-px`,`${vk}px`],[`--ball-follow-ms`,`${Math.round(vk/yk)}ms`],[`--ball-follow-spin`,`${Tk(vk)}deg`],[`--ball-size`,`${pk}px`],[`--ball-approach-spin`,`${gk}deg`],[`--ball-impact-inset`,`${t}px`],[`--ball-layer`,String(Pk())],[`--rack-right`,`${fk}px`],[`--rack-width`,`${e}px`],[`--pin-width`,`${lk}px`]]}function Lk(e=Math.random){return e()>=mk?null:yt[Math.floor(e()*yt.length)].sprite}var Rk=`<svg viewBox="0 0 10 24" aria-hidden="true"><path class="merge-strike-pin-body" d="M5 0C7 0 7.6 2 7.2 4C6.9 5.6 6.3 6.6 6.4 8C6.6 10 9.6 12 9.6 16C9.6 19.5 8.4 22 7.6 24H2.4C1.6 22 .4 19.5 .4 16C.4 12 3.4 10 3.6 8C3.7 6.6 3.1 5.6 2.8 4C2.4 2 3 0 5 0Z"/><path class="merge-strike-pin-stripe" d="M3.1 5.2H6.9V6.2H3.1ZM3.4 7H6.6V8H3.4Z"/></svg>`;function zk(e){let t=k(`span`,`merge-strike-pin`);return t.append(De(`span`,`merge-strike-pin-arc`,Rk)),ue(t,Nk(e)),t}function Bk(){let e=Lk();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 Vk(){let e=k(`div`,`merge-strike-lane`);ue(e,Ik());let t=k(`div`,`merge-strike-rack`);t.append(...Mk().map(zk));let n=k(`div`,`merge-strike-track`);return n.append(Bk()),e.append(t,n),e}var Hk={title:`STRIKE!`,buildScene:Vk},Uk=20,Wk=92,Gk=23,Kk=7,qk=-40;function Jk(){let e=vO(72),t=vO(69),n=780*t/1e3;return{launchHeightPx:Uk,peakHeightPx:Wk,heightThroughRimPx:Gk,heightLeavingNetPx:Kk,heightOutOfCardPx:qk,riseMs:e,fallToRimMs:t,speedThroughRimPxPerSecond:n,netCatchMs:Math.round(32/n*1e3),dropMs:vO(47)}}function Yk(e=Jk()){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 Xk=`<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>`,Zk=`<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 Qk(){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 $k(){let e=k(`div`,`merge-swish-court`);ue(e,Yk());let t=k(`div`,`merge-swish-track`);return t.append(Qk()),e.append(De(`div`,`merge-swish-hoop-back`,Xk),t,De(`div`,`merge-swish-hoop-front`,Zk)),e}var eA=[Hk,{title:`SWISH!`,buildScene:$k},jO,HO,ik],tA=48,nA=5600,rA=20,iA=null,aA=[],oA=null,sA=!1,cA=0;function lA(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,TO(e)),t}function uA(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 dA(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 fA(e){let t=k(`div`,`merge-celebration-scene`);return t.setAttribute(`aria-hidden`,`true`),t.append(e.buildScene()),t}function pA(){return eA[Math.floor(Math.random()*eA.length)]}function mA(e){if(Ct())try{fd(_O(e))}catch{}}function hA(e){let t=k(`ul`,`merge-celebration-details`);for(let n of e)t.append(k(`li`,`merge-celebration-detail`,n));return t}function gA(e,t,n){iA?.remove(),mA(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=uA(t.title),s=fA(t);a.append(o,k(`p`,`merge-celebration-message`,e.message),hA(e.detailLines),s);let c=k(`div`,`merge-confetti`);c.style.setProperty(`--confetti-scale`,String(CO(n)));for(let e=0;e<tA;e+=1)c.append(lA(e));i.append(c,a),r.append(i),document.body.append(r),dA(a,o,s),iA=r,window.setTimeout(()=>{r.remove(),iA===r&&(iA=null)},nA)}function _A(e){return sA?`playing`:e?`queued`:`empty`}function vA(){if(!oA)return;let e=aA.length>0;oA.tray.dataset.state=_A(e),oA.count.textContent=e?String(aA.length):``,oA.button.disabled=sA||!e}function yA(){let e=aA.shift();sA=e!==void 0,vA(),e&&(gA(e.text,e.scene,cA),cA+=1,window.setTimeout(yA,nA))}function bA(e,t,n){oA={tray:e,button:t,count:n},t.addEventListener(`click`,()=>{cA=0,yA()}),vA()}function xA(e,t=pA()){aA.push({text:e,scene:t}),aA.length>rA&&aA.shift(),vA()}var SA=null,CA=null,wA=new Set,TA=new Map,EA=!1,DA=new Set;function OA(e){for(let t of DA)t(e)}function kA(){return[...TA].flatMap(([e,t])=>{let n=P.get(e);return!n||t.length===0?[]:[{id:e,title:lt(n)||e,links:t}]})}function AA(){let e=MD(SA?.prs??[],wr),t=PD(CA,e);CA=e,PA(t),OA({kind:`prs`})}function jA(){EA||(EA=!0,queueMicrotask(()=>{EA=!1,AA()}))}function MA(e){DA.add(e)}function NA(){return{prs:MD(SA?.prs??[],wr),status:SA,sessionsByPrKey:ND(kA())}}function PA(e){let t=e.filter(e=>!wA.has(e.key));if(t.length!==0){for(let e of t)wA.add(e.key);xA(ID(t))}}function FA(e){TA=e,jA()}function IA(){OA({kind:`session-state`})}function LA(e){let t=p.safeParse(e);t.success?(SA=t.data,AA()):Ve(`reviews`,`dropped my-prs-status: ${Le(t.error.issues)}`)}function RA(e){OA({kind:`merge-result`,message:e})}function zA(e){OA({kind:`connection`,isConnected:e})}Tr(jA);var BA=[{id:`all`,label:`All`},{id:`reviewing`,label:`Reviewing`},{id:`mine`,label:`Mine`}],VA={turn:`Your turn`,working:`Agent working`,waiting:`Waiting on others`,aside:`Set aside`},HA=[`turn`,`working`,`waiting`,`aside`],UA={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`},WA={directAsk:0,followUp:1,mineNeedsYou:2,teamReady:3,mineReady:4,failedReview:5,staleReview:6};function GA(e,t){return{source:`team`,key:`team:${e.key}`,prKey:ke(e),kind:t,review:e}}function KA(e){return e.status===`ready`?RD(e).band===`blocking-others`?WA.directAsk:WA.teamReady:WA.followUp}function qA(e){return[...e.ready.map(e=>({item:GA(e,`ready`),group:`turn`,turnRank:KA(e)})),...e.attention.map(e=>({item:GA(e,`attention`),group:`turn`,turnRank:e.status===`error`?WA.failedReview:WA.staleReview})),...e.inReview.map(e=>({item:GA(e,`inReview`),group:`working`,turnRank:0})),...e.queued.map(e=>({item:GA(e,`queued`),group:`working`,turnRank:0})),...e.noReviewNeeded.map(e=>({item:GA(e,`settled`),group:`waiting`,turnRank:0})),...e.posted.map(e=>({item:GA(e,`posted`),group:`waiting`,turnRank:0})),...e.discarded.map(e=>({item:GA(e,`discarded`),group:`aside`,turnRank:0}))]}function JA(e,t){let n=UA[e.stage];return n===`turn`&&e.stage!==`ready`&&t.has(ke(e))?`working`:n}function YA(e,t){return OD(e).flatMap(e=>e.rows).map(({pr:e,parentKey:n})=>({item:{source:`mine`,key:`mine:${e.key}`,prKey:ke(e),pr:e,stackedOn:n},group:JA(e,t),turnRank:e.stage===`ready`?WA.mineReady:WA.mineNeedsYou}))}function XA(e,t,n){let r=[...qA(e),...YA(t,n)];return HA.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:VA[e],items:n.map(e=>e.item)}})}function ZA(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 QA(e){return e.find(e=>e.id===`turn`)?.items??[]}function $A(e,t){return t?e.flatMap(e=>e.items).find(e=>e.key===t)??null:null}function ej(e,t){return $A(e,t)?t:e.flatMap(e=>e.items)[0]?.key??null}function tj(e){return e.source===`mine`?qD(e.pr.repo,e.pr.number):qD(e.review.repo,e.review.number)}function nj(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 rj(e){return QA(e).map(e=>({id:e.key,kind:nj(e),name:tj(e)}))}function ij(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 aj(e,t){return rj(e).filter(e=>e.id!==t)}function oj({capturedOrder:e,actedKey:t,groups:n}){let r=QA(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 sj(e,t){let n=QA(e).map(e=>e.key),r=t?n.indexOf(t):-1;return r===-1?``:`${r+1} of ${n.length} in Your turn`}function cj(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 lj(e){return QA(e).map(cj)}function uj({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:Ce([...i]),unseen:Ce([...o])};for(let e of s)o.add(e);return{isShown:s.length>0,acknowledged:Ce([...a]),unseen:Ce([...o])}}function dj(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 fj(e){return new Set(e.flatMap(e=>e.items).map(e=>(e.source===`mine`?e.pr.repo:e.review.repo).toLowerCase())).size>1}function pj(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 mj=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 hj(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`:mj.get(e.key)??null}function gj(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 _j=[],vj=null,yj=null,bj=null,xj=!1,Sj=null,Cj=Pt(),wj=rn(),Tj=new Set(wj.split(`|`).filter(Boolean)),Ej=new Set,Dj=new Set;function Oj(e){for(let t of Dj)t(e)}function kj(e){e!==Cj&&(Cj=e,Tt(e))}function Aj(e){e!==wj&&(wj=e,Tj=new Set(e.split(`|`).filter(Boolean)),_t(e))}function jj(){return eO()!==null&&NA().status!==null}function Mj(){if(!jj())return;let e=uj({turnEntries:lj(_j),acknowledged:Cj,unseen:wj,isLooking:yj?.isLooking()??!1});kj(e.acknowledged),Aj(e.unseen),Sj?.(e.isShown)}function Nj(e){bj=e,Oj({kind:`reveal`})}function Pj(e){Dj.add(e)}function Fj(e){yj=e,Mj()}function Ij(){let{prs:e,sessionsByPrKey:t}=NA();return _j=XA(tO(),e,new Set(t.keys())),Mj(),_j}function Lj(){jj()&&(kj(Ce(lj(_j))),Mj())}function Rj(e){Sj=e,Mj()}function zj(){return wj}function Bj(e){return Tj.has(e)}function Vj(e){return Tj.has(e)?(Aj(Ce([...Tj].filter(t=>t!==e))),!0):!1}function Hj(e){vj=e}function Uj(){return vj}function Wj(){let e=bj;return bj=null,e}function Gj(e){if(e!==xj){xj=e;for(let e of Ej)e()}}function Kj(e){Ej.add(e)}function qj(){return document.documentElement.dataset.layout===`phone`&&xj}function Jj(){qj()&&Oj({kind:`return-to-queue`})}function Yj(){let e=aj(_j,yj?.selectedKey()??null)[0]?.id??null;return e?(Nj(e),!0):!1}function Xj(e){let t=_j.flatMap(e=>e.items).find(t=>t.prKey===e.toLowerCase());return!t||!vj?.openReviews()?!1:(Nj(t.key),Lj(),!0)}$D(e=>{e.kind===`status`&&Ij()}),MA(e=>{e.kind===`prs`&&Ij()});var Zj={OPEN:0,MERGED:1,CLOSED:2};function Qj(e){return e?Zj[e.state]:Zj.OPEN}function $j(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:sc(void 0)};let i=AD(t.stage);return{key:n,text:r,url:t.url,hoverText:`${e.repo}: ${t.title} (${kD(t.stage)})`,look:{icon:jD(t.stage),tone:i},tier:sc(i)}}function eM(e,t){let n=e.map(e=>{let n=t(ke(e));return{link:e,pr:n?yD(n):void 0}});return n.sort((e,t)=>Qj(e.pr)-Qj(t.pr)||t.link.linkedAt-e.link.linkedAt),n.map(({link:e,pr:t})=>$j(e,t))}var tM=new Map;function nM(e){return document.querySelectorAll(`[data-pr-chips-for="${CSS.escape(e)}"]`)}function rM(e){return eM(tM.get(e)??[],wr).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:()=>{Xj(e.key)||Ic(e.url)}}))}function iM(e,t){let n=el(e,e),r=k(`button`,`session-pr-chip-unlink`);r.append(hn(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(),gr({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:()=>{Di(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 aM(e,t){e.dataset.prChipsFor=t,al(e,rM(t),e=>iM(e,t))}function oM(e){for(let t of e){let e=t.dataset.prChipsFor;e&&aM(t,e)}fl()}function sM(e,t){let n=d.shape.links.safeParse(t??[]);tM.set(e,n.success?n.data:[]),oM(nM(e)),FA(tM)}function cM(e){tM.delete(e),FA(tM)}Tr(()=>oM(document.querySelectorAll(`[data-pr-chips-for]`)));var lM=null,uM=new Set;function dM(){lM?.setAttribute(`aria-pressed`,String(!Ct()))}function fM(e){bt(e),dM();for(let t of uM)t(e)}function pM(e){uM.add(e)}function mM(e){lM=e,dM(),e.addEventListener(`click`,()=>fM(!Ct()))}var hM={mine:`Mining merged pull requests.`,run:`Starting the run.`,cancel:`Cancelling the run.`},gM=null,_M=null,vM=!0,yM=new Map,bM=new Map,xM=new Set;function SM(){for(let e of xM)e()}function CM(e){xM.add(e)}function wM(){return{status:gM,isServerConnected:vM,pendingActionBySuite:yM,outcomeBySuite:bM}}function TM(e){_M=e}function EM(e,t){_M?.({type:`benchmark-action`,requestId:Ze(`benchmark`),suiteId:e,action:t})===!0?(yM.set(e,t),bM.set(e,hM[t]),SM()):(bM.set(e,l),SM())}function DM(e){if(vM=e,!e){for(let e of yM.keys())bM.delete(e);yM.clear()}SM()}function OM(e){gM=e,SM()}function kM(e){yM.delete(e.suiteId);let t=gM?.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.`};bM.set(e.suiteId,e.ok?n[e.action]:e.error||`The server refused the action.`),SM()}var AM=45e3,jM=`The server did not answer within ${AM/1e3} s.`,MM=`Select the issue to load its description.`,NM=null,PM=null,FM=new Map,IM=null,LM=new Map,RM=new Map,zM=new Map,BM=new Map,VM=new Map,HM=new Set;function UM(e){for(let t of HM)t(e)}function WM(e){return`${e.key}:${e.updatedAt}`}function GM(e){let t=LM.get(e);t&&(LM.delete(e),RM.set(t.issueKey,{text:jM,tone:`error`}),UM(`detail`))}function KM(e){let t=LM.get(e);return t?(clearTimeout(t.timeoutHandle),LM.delete(e),t):null}function qM(){return{latestStatus:PM,issueByKey:FM,selectedKey:NM}}function JM(e){HM.add(e)}function YM(e){NM=e}function XM(e){return[...LM.values()].some(t=>t.issueKey===e.key)}function ZM(e){return RM.get(e.key)}function QM(e){let t=WM(e),n=BM.get(t);return n===``?`No description.`:n??VM.get(t)??`Loading description.`}function $M(e){let t=WM(e);if(BM.has(t)||[...zM.values()].some(e=>e.cacheKey===t))return;let n=Ze(`issue-detail`);VM.delete(t),IM?.({type:`issue-detail`,requestId:n,repo:e.repo,issueNumber:e.number})?zM.set(n,{cacheKey:t,timeoutHandle:setTimeout(()=>{zM.delete(n),VM.set(t,`${jM} ${MM}`),UM(`detail`)},AM)}):VM.set(t,`${l} ${MM}`)}function eN(e){let t=e.projectId;if(!t||XM(e))return;let n=Ze(`open-issue-session`);IM?.({type:`open-issue-session`,requestId:n,projectId:t,repo:e.repo,issueNumber:e.number})?(LM.set(n,{issueKey:e.key,issueNumber:e.number,timeoutHandle:setTimeout(()=>GM(n),AM)}),RM.set(e.key,{text:`Opening session.`,tone:`busy`}),UM(`detail`)):(RM.set(e.key,{text:l,tone:`error`}),UM(`detail`))}function tN(e){IM?.({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`issues`,action:e}})}function nN(e){IM=e}function rN(){UM(`session-state`)}function iN(e){if(!e){for(let e of LM.values())clearTimeout(e.timeoutHandle),RM.set(e.issueKey,{text:l,tone:`error`});LM.clear();for(let e of zM.values())clearTimeout(e.timeoutHandle),VM.set(e.cacheKey,`${l} ${MM}`);zM.clear(),UM(`status`)}}function aN(e){let t=PM?.issues.find(e=>e.key===NM);PM=e,FM=new Map(e.issues.map(e=>[e.key,e]));let n=e.issues.find(e=>e.key===NM);n&&n.updatedAt!==t?.updatedAt&&$M(n),UM(`status`)}function oN(e){let t=zM.get(e.requestId);t&&(clearTimeout(t.timeoutHandle),zM.delete(e.requestId),e.ok&&e.body!==null&&BM.set(t.cacheKey,e.body),(!e.ok||e.body===null)&&VM.set(t.cacheKey,e.error||`Could not load description. Select the issue to try again.`),UM(`detail`))}function sN(e){if(typeof e.requestId!=`string`)return;let t=KM(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`;RM.set(n,{text:`Session "${r}" ${a}.${i}`,tone:`ok`});let o=PM?.issues.find(e=>e.key===n);o&&typeof e.sessionId==`string`&&(o.sessionId=e.sessionId),UM(`status`);return}let r=typeof e.error==`string`&&e.error?e.error:`Could not open session.`;RM.set(n,{text:r,tone:`error`}),UM(`detail`)}var cN=null,lN=null,uN=null,dN=()=>!1,fN=new Set,pN=new Set,mN=ve({getAck:It,setAck:$t,signature:()=>o({posthog:cN}),isLooking:()=>dN()});function hN(e){for(let t of pN)t(e)}function gN(){lN?.(mN.refresh())}function _N(){return{latest:cN,archivedLocally:fN,traceOpener:uN}}function vN(e){pN.add(e)}function yN(e){dN=e,gN()}function bN(e){fN.add(e)}function xN(){mN.acknowledge(),gN()}function SN(e){lN=e,gN()}function CN(e){uN=e}function wN(e){cN=e,Ee(cN,fN),hN({kind:`status`}),gN()}function TN(e){let t=Ie(cN,e.projectId,e.issueId)?.inFlight===!0;x(cN,e)&&hN({kind:`investigation-activity`,projectId:e.projectId,issueId:e.issueId,wasInFlight:t})}function EN(e){let t=ne(cN,e);hN({kind:`investigation-finished`,frame:e,isPatched:t}),t&&gN()}var DN=rc({requestPrefix:`session-setup`,dialogClass:`dialog coherence-journal-drawer session-setup-dialog`,titleText:`Session setup`,unavailableLabel:`Session setup unavailable`,timeoutMs:15e3});function ON(e){let t=k(`ul`,`session-setup-list`);return t.append(...e.map(e=>k(`li`,null,e))),t}function kN(e,t){e.replaceChildren();function n(t,n){if(n.length===0)return;let r=we(`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`),ON(e.skills)),e.agents.length>0&&t.append(k(`p`,`session-setup-label`,`Agents`),ON(e.agents)),t})),n(`MCP servers`,t.mcpServers.length>0?[ON(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?[ON(t.skills)]:[]),n(`Agents`,t.agents.length>0?[ON(t.agents)]:[])}function AN(e){let t=k(`p`,`coherence-journal-status`,`Loading session setup`);t.setAttribute(`role`,`status`);let n=k(`div`,`session-setup-sections`);DN.open({sessionId:e,status:t,body:[t,n],parts:{sections:n},buildRequest:t=>({type:`session-setup`,id:e,requestId:t})})}function jN(e){let t=DN.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;kN(n,e.setup),t.status.textContent=n.childElementCount>0?``:`No session setup recorded yet`,t.status.hidden=n.childElementCount>0}function MN(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 NN={isVisible:document.visibilityState===`visible`,isFrozen:!1,isProbing:!1,isReplacing:!1},PN=document.visibilityState===`visible`?null:Date.now(),FN=null,IN=null;function LN(){FN!==null&&window.clearTimeout(FN),FN=null}function RN(e){LN();let t=Date.now()+e;FN=window.setTimeout(()=>{FN=null,VN({kind:`heartbeat-due`,lateByMs:Date.now()-t})},e)}function zN(){IN!==null&&window.clearTimeout(IN),IN=null}function BN(e){switch(e.kind){case`probe-control`:Ye(e.deadlineMs,e.isAnnounced).then(e=>{VN({kind:e?`pong`:`pong-missed`})});return;case`replace-control`:Qe();return;case`close-sockets`:zN(),$e(),eh();return;case`reconnect-shown-terminals`:Qm();return;case`hold-input`:Ym();return;case`release-input`:Xm();return;case`schedule-heartbeat`:RN(e.inMs);return;case`cancel-heartbeat`:LN();return}}function VN(e){let t=Re(NN,e);NN=t.state;for(let e of t.actions)BN(e)}function HN(){if(document.visibilityState!==`visible`){PN=Date.now(),VN({kind:`hidden`});return}let e=PN===null?0:Date.now()-PN;PN=null,Xu(`shown`,e),VN({kind:`shown`,hiddenForMs:e})}function UN(e){zN(),Yu(`control-${e}`),e===`connecting`?IN=window.setTimeout(()=>{IN=null,VN({kind:`handshake-overdue`})},We):VN({kind:e===`opened`?`control-opened`:`control-closed`})}function WN(){Xu(`resumed`,PN===null?0:Date.now()-PN),VN({kind:`resumed`})}function GN(){let e=Reflect.get(navigator,`connection`);e instanceof EventTarget&&e.addEventListener(`change`,()=>VN({kind:`network-changed`}))}function KN(){ze(UN),document.addEventListener(`visibilitychange`,HN),document.addEventListener(`freeze`,()=>VN({kind:`frozen`})),document.addEventListener(`resume`,WN),window.addEventListener(`pagehide`,e=>{e.persisted&&VN({kind:`frozen`})}),window.addEventListener(`pageshow`,e=>{e.persisted&&WN()}),window.addEventListener(`online`,()=>VN({kind:`network-changed`})),GN()}var qN={},JN=null,YN=null,XN=ie,ZN=null,QN=!1,$N=null,eP=[],tP=null,nP=()=>null,rP=()=>{},iP=new Set,aP=new Set;function oP(e){for(let t of aP)t(e)}function sP(e){aP.add(e)}function cP(){return qN}function lP(e){return qN={...qN,...e},qN}function uP(){return{status:JN,journal:YN,request:XN,lastAutoCheckAt:ZN,isCheckInFlight:QN,checkSendFailure:$N}}function dP(e){let t=w(XN,e);t!==XN&&(XN=t,oP({kind:`update`,frame:`request`}))}function fP(){dP(A({type:`update-apply`})?`request-sent`:`request-unsent`)}function pP(){ZN=Date.now();let e=A({type:`update-check`});QN=e,$N=e?null:l,oP({kind:`update`,frame:`request`})}function mP(e){rP=e}function hP(){rP()}function gP(e){eP=[...e]}function _P(){return eP}function vP(e=null,t=null,n=null){let r=tP!==null&&(tP.sectionId!==null||tP.isLink);e===null&&n===null&&r||(tP={sectionId:e,settingId:t,hashAtRequest:n??location.hash,isLink:n!==null},oP({kind:`activate`}))}function yP(){let e=tP;return tP=null,e}function bP(e){nP=e}function xP(){for(let e of iP)e()}function SP(e){iP.add(e)}function CP(){return Yi()&&nP()===`section`}function wP(){CP()&&oP({kind:`return-to-list`})}function TP(e){e&&(qN=e,ri(qN.agentLogins),oP({kind:`broadcast`}))}function EP(){oP({kind:`status`})}function DP(e){EP()}function OP(e){JN=e,QN=!1,$N=null,XN=w(XN,`status-frame`),oP({kind:`update`,frame:`status`})}function kP(e){YN=e,XN=w(XN,`progress-frame`),oP({kind:`update`,frame:`progress`})}function AP(e){if(e.scope!==`update`)return!1;let t=C(e.message),n=XN.requested;return XN=w(XN,`error-frame`,t),QN=!1,n||($N=t),oP({kind:`update`,frame:`error`}),!0}function jP(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 MP=200;function NP(e,t=null){return`#settings/${encodeURIComponent(e)}${t?`/${encodeURIComponent(t)}`:``}`}function PP(e){return/^#settings(?:[/?]|$)/.test(e)}function FP(e){let t=e.trim();return t?`#settings?q=${encodeURIComponent(t)}`:`#settings`}function IP(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,MP).join(``).trim()}}function LP(e,t,n){let r=k(`a`,`settings-link`,n);return r.href=NP(e,t),r}var Z=null,RP=null,zP=null,BP=null,VP=null,HP=null,UP=-1,WP=null,GP={isRightToLeft:!1,arcProgress:0},KP=1,qP=3;function JP(){if(!Z||WP===null)return;let e=Yr({viewportWidthPx:document.documentElement.clientWidth,viewportHeightPx:document.documentElement.clientHeight,verticalProgress:WP,...GP});ue(Z,Zr(e,KP,window.devicePixelRatio))}function YP(){HP!==null&&(clearTimeout(HP),HP=null)}function XP(e=fn()){return wt({isEnabled:e,hasReducedMotion:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,isPhone:Yi(),options:Ut()})}function ZP(e){e.onanimationend=null,e.style.animation=`none`,BP&&(BP.style.animation=`none`),e.hidden=!0}function QP(e,t){if(!Z||!RP||!zP||!BP||XP())return;let n=Ut();YP();let r=ln(n,UP,Math.random,t);if(ZP(Z),!r){HP=setTimeout(()=>QP(!1),1e3);return}WP=r.verticalProgress,GP={isRightToLeft:r.isRightToLeft,arcProgress:r.arcProgress},KP=n.flyingAnimalsScale,JP();let i=yt[r.animalIndex];RP.className=`nyan-sprite ${i.sprite}`,zP.className=`nyan-trail ${i.trail}`,UP=r.animalIndex,VP?.classList.remove(`is-booped`),Z.hidden=!1,Z.offsetWidth,Z.style.animation=`nyan-fly ${r.durationSeconds}s linear`,BP.style.animation=`nyan-trail-hold ${r.durationSeconds}s linear`,e&&(Z.style.animationDelay=`-${r.firstDelaySeconds}s`,BP.style.animationDelay=`-${r.firstDelaySeconds}s`),Z.onanimationend=e=>{Z&&e.target===Z&&(ZP(Z),HP=setTimeout(()=>QP(!1),r.gapMs))}}function $P(){VP&&(VP.classList.remove(`is-booped`),VP.offsetWidth,VP.classList.add(`is-booped`))}function eF(e){if(Z&&BP&&e.target===VP)for(let e of[...Z.getAnimations(),...BP.getAnimations()])e.playbackRate=qP}function tF(){if(Z||XP())return;Z=document.createElement(`div`),Z.className=`nyan-flight`,Z.setAttribute(`aria-hidden`,`true`);let e=document.createElement(`div`);e.className=`nyan-trail-window`,BP=document.createElement(`div`),BP.className=`nyan-trail-hold`,zP=document.createElement(`div`),BP.append(zP),e.append(BP),RP=document.createElement(`div`),VP=document.createElement(`div`),VP.className=`nyan-boop`,VP.append(RP),VP.addEventListener(`pointerdown`,$P),VP.addEventListener(`animationend`,eF),Z.append(e,VP),document.body.appendChild(Z),window.addEventListener(`resize`,JP),window.addEventListener(`orientationchange`,JP),QP(!0)}function nF(e){tF(),QP(!1,e)}function rF(){YP(),window.removeEventListener(`resize`,JP),window.removeEventListener(`orientationchange`,JP),Z?.remove(),Z=null,RP=null,zP=null,BP=null,VP=null,UP=-1,WP=null}var iF=!1;function aF(e){let t=document.documentElement;if(iF||(iF=!0,Xi(()=>aF(fn())),window.matchMedia(`(prefers-reduced-motion: reduce)`).addEventListener(`change`,()=>aF(fn()))),e){if(t.dataset.flyingAnimals=`true`,XP(e)){rF();return}tF()}else delete t.dataset.flyingAnimals,rF()}var oF=`•`.repeat(8),sF=`[^/\\\\\\s"'\`<>:]+`,cF=RegExp(`(?<![\\w./\\\\-])(?:/home/${sF}|/Users/${sF}|[A-Za-z]:[\\\\/]Users[\\\\/]${sF}|/root(?![\\w.-]))`,`g`);function lF(e){let t=Lf(e);if(t.length===0)return e;let n=``,r=0;for(let i of t)n+=e.slice(r,i.start)+oF,r=i.end;return n+e.slice(r)}function uF(e){return e.replace(cF,`~`)}function dF(e){return uF(lF(e))}var fF=`.xterm, input, textarea, script, style, [contenteditable]:not([contenteditable="false"])`,pF=[`title`,`label`],mF=new WeakMap,hF=new WeakMap,gF=null;function _F(e){let t=e instanceof Element?e:e.parentElement;return!t||t.closest(fF)!==null}function vF(e){let t=e.parentElement?.closest(`option`);return t!=null&&!t.hasAttribute(`value`)}function yF(e,t){if(t&&e===t.masked)return t;let n=dF(e);return n===e?null:{original:e,masked:n}}function bF(e){let t=vF(e)?null:yF(e.data,mF.get(e));t?(mF.set(e,t),e.data!==t.masked&&(e.data=t.masked)):mF.delete(e)}function xF(e,t){let n=e.getAttribute(t),r=hF.get(e),i=n===null?null:yF(n,r?.get(t));if(!i){r?.delete(t);return}let a=r??new Map;a.set(t,i),hF.set(e,a),n!==i.masked&&e.setAttribute(t,i.masked)}function SF(e){for(let t of pF)xF(e,t)}function CF(e){return e instanceof Element&&e.matches(fF)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}function wF(e){SF(e);let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,CF);for(let e=t.nextNode();e;e=t.nextNode())e instanceof Text&&bF(e),e instanceof Element&&SF(e)}function TF(e){_F(e)||(e instanceof Text&&bF(e),e instanceof Element&&wF(e))}function EF(e){e instanceof Element&&!_F(e)&&SF(e)}function DF(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&&TF(e);for(let e of n)e.isConnected&&EF(e)}function OF(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);kF(e);for(let e=t.nextNode();e;e=t.nextNode())kF(e)}function kF(e){if(e instanceof Text){let t=mF.get(e);t&&e.data===t.masked&&(e.data=t.original);return}if(!(e instanceof Element))return;let t=hF.get(e);if(t)for(let[n,r]of t)e.getAttribute(n)===r.masked&&e.setAttribute(n,r.original)}function AF(){if(gF)return;let e=new MutationObserver(t=>{DF(t),e.takeRecords()});wF(document.body),e.observe(document.body,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:pF}),gF=e}function jF(){gF&&(gF.disconnect(),gF=null,OF(document.body),mF=new WeakMap,hF=new WeakMap)}function MF(e){e?AF():jF()}function NF(){MF(ts()),rs(MF)}function PF(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 FF(e){return typeof e!=`object`||!e||!(`telemetryForcedOff`in e)?!1:e.telemetryForcedOff===!0}function IF(e,t){return t||FF(e)?!1:PF(e)}var LF=2500;function RF({hasSnapshot:e,connectingTerminalCount:t,msSinceConnected:n}){return n<2500&&(!e||t>0)?`wait`:`reveal`}var zF=2e4,BF=null,VF=null,HF={claude:null,codex:null},UF=null,WF=null,GF=null,KF=`all`,qF=!1,JF=null,YF=null,XF=!0,ZF=()=>!1,QF=new Set,$F=ve({getAck:Ot,setAck:en,signature:()=>bb(BF,HF.claude),isLooking:()=>ZF()});function eI(e){for(let t of QF)t(e)}function tI(){UF?.($F.refresh())}function nI(e){qF=e,eI(`refresh-status`),JF&&=(clearTimeout(JF),null),e&&(JF=setTimeout(()=>{JF=null,qF=!1,YF=`Usage did not answer within ${Math.round(zF/1e3)} s. Refresh to try again.`,eI(`refresh-status`)},zF))}function rI(e){let t=rb.find(t=>t.value===e);return t?t.days:null}function iI(){return{report:BF,sessions:VF,planLimitsByVendor:HF,rangeValue:KF}}function aI(){let e=!XF||!qF&&YF!==null;return XF?qF?{text:`Refreshing`,isPending:!0,hasFailure:e}:{text:YF??``,isPending:!1,hasFailure:e}:{text:BF?`${l} The figures below are from before the connection dropped.`:l,isPending:qF,hasFailure:e}}function oI(e){QF.add(e)}function sI(e){ZF=e,tI()}function cI(){$F.acknowledge(),tI()}function lI(e){UF=e,tI()}function uI(e){WF?.({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`usage`,action:e}})}function dI(e){WF=e}function fI(e){KF=e}function pI({force:e=!1}={}){if(!WF)return;GF=Ze(`usage`);let t={type:`request-usage-report`,requestId:GF};e&&(t.force=!0);let n=rI(KF);n!==null&&(t.days=n),YF=null,nI(!0),!WF(t)&&(YF=l,nI(!1))}function mI(e){XF=e,eI(`refresh-status`)}function hI(e){VF=e,eI(`sessions`)}function gI(e){let t=e;HF={...HF,[_b(t)]:t},eI(`plan-limits`),tI()}function _I(e){Eb(e,GF)&&(YF=null,nI(!1),BF=e,eI(`report`),tI())}function vI(){let e=BF?.pricing||(VF?{source:VF.pricingSource}:null),t=Sb(e?.fetchedAt),n=[xb(e,t!==null&&t>0?st(t):``)],r=Tb(BF);r&&n.push(r);let i=wb(BF?.scan);return i&&n.push(i),n}var yI={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},bI=[{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 xI(e,t){return t.isPhoneShellActive?t.phoneScreen===e:t.activeView===e}function SI(e,t){return e.flatMap(e=>!e.gate||!(`fromSettings`in e.gate)?[]:[{view:e,isAvailable:e.gate.fromSettings(t)}])}function CI(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 wI(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 TI(e){return{isActive:e===!0||typeof e==`string`,level:typeof e==`string`?e:null}}function EI(e,t,n){t&&e?.refreshOn?.includes(n)&&t.refresh?.(n)}function DI(e,t,n,r){for(let i of e)xI(i.view,t)&&EI(i,r(i.view),n)}function OI(){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 kI(e,t,n){let r=Number(e);return!e||!Number.isFinite(r)||t-r>n}var AI=`glimmervoid:preload-error-reload-at`,jI=3e4,MI=1e3,NI=OI();function PI(e,t){let n=NI.mountedModuleOf(e.view);n?t(n):NI.show(e).then(t).catch(t=>{throw Ve(`view`,`${e.view} failed to show: ${tt(t)}`),t})}function FI(e){return NI.mountedModuleOf(e)}function II(e){NI.mountEagerViews(e)}function LI(e){let t=()=>{NI.prefetch(e.filter(e=>!e.tab.hidden))};`requestIdleCallback`in window?window.requestIdleCallback(t):setTimeout(t,MI)}function RI(e){window.addEventListener(`vite:preloadError`,()=>{let t=e(),n=Date.now();kI(t.getItem(AI),n,jI)&&(t.setItem(AI,String(n)),location.reload())})}function zI(e){Hj({openTerminal:e.openTerminal,openReviews:e.openReviews}),mP(e.onRestart);let t=[{view:`focus`,label:`Focus`,panelClass:`focus-view`,hasOwnPhoneScreen:!0,hasPanelChrome:!1,hasReviewSidebar:!0,module:{mount:()=>gC({rail:document.getElementById(`focus-rail`),center:document.getElementById(`focus-center`),resizer:document.getElementById(`focus-rail-resizer`)}),activate:WC,deactivate:qC}},{view:`prs`,label:`Reviews`,glyph:`⇅`,panelClass:`pr-view`,gate:{fromSettings:yI.teamReview},load:()=>Si(()=>import(`./review-queue-panel-D8vwdvPH.js`).then(e=>e.view),__vite__mapDeps([9,1,2,3,4,10,5,6,11,8])),attention:{subscribe:Rj,acknowledge:Lj},onConnectionChange:e=>{zA(e),aO(e)}},{view:`issues`,label:`Issues`,glyph:`#`,panelClass:`issues-view`,gate:{fromSettings:yI.issues},load:()=>Si(()=>import(`./issues-panel-BvkLz0pA.js`).then(e=>e.view),__vite__mapDeps([12,1,2,4,5,3,11,10,8,6])),refreshOn:[`shown`],onConnectionChange:iN},{view:`usage`,label:`Usage`,glyph:`◔`,panelClass:`usage-view`,gate:{fromSettings:yI.usage},load:()=>Si(()=>import(`./usage-panel-Y0qy6nIG.js`).then(e=>e.view),__vite__mapDeps([13,1,2,4])),attention:{subscribe:lI,acknowledge:cI},onConnectionChange:mI,refreshOn:[`shown`,`connected`,`usage-sessions`]},{view:`radar`,label:`Radar`,glyph:`◎`,panelClass:`radar-view`,gate:{fromSettings:yI.posthog},load:()=>Si(()=>import(`./radar-panel-9qe7QP0p.js`).then(e=>e.view),__vite__mapDeps([14,1,2,3,4,5,6,0])),attention:{subscribe:SN,acknowledge:xN}},{view:`visions`,label:`Visions`,glyph:`◇`,panelClass:`visions-view`,gate:{fromSettings:yI.visions},load:()=>Si(()=>import(`./visions-panel-DZcLVbo8.js`).then(e=>e.view),__vite__mapDeps([15,1,2,5,3])),attention:{subscribe:mT,acknowledge:hT},refreshOn:[`shown`],onConnectionChange:vT},{view:`hooks`,label:`Hooks`,glyph:`◈`,panelClass:`hooks-view`,load:()=>Si(()=>import(`./hooks-panel-B7rgryyG.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:Kn},load:()=>Si(()=>import(`./trace-panel-CoQywm9H.js`).then(e=>e.view),__vite__mapDeps([17,1,2,10,5,3])),refreshOn:[`shown`],onAvailabilityChange:e=>CN(e?Xy:null),onConnectionChange:tb},{view:`benchmarks`,label:`Bench`,panelClass:`bench-view`,gate:{fromSettings:yI.benchmarks},load:()=>Si(()=>import(`./benchmark-panel-xSvlb82T.js`).then(e=>e.view),__vite__mapDeps([18,1,2])),onConnectionChange:DM},{view:`settings`,label:`Settings`,glyph:`@`,panelClass:`settings-view`,hasPanelChrome:!1,load:()=>Si(()=>import(`./settings-panel-C0UStpKa.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}=TI(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}wd(Vt()),Td(cn()),aF(fn()),Ji(),Rc(document);var BI=D(document,`#connection-status`,`span`),VI=D(BI,`.connection-label`,`span`),HI=D(document,`#loading-screen`,`div`),UI=D(document,`#loading-status`,`div`),WI=D(document,`#loading-detail`,`div`),GI=D(document,`#shutdown-screen`,`div`),KI=D(document,`#shutdown-status`,`div`),qI=!1,JI=null,YI=!1;function XI(){let e=ei(),t=HI.querySelector(`.loading-spinner`);e&&t&&t.replaceWith($r(e,`loading-animal`))}XI();function ZI(){qI||JI===null||RF({hasSnapshot:YI,connectingTerminalCount:Rm(),msSinceConnected:performance.now()-JI})===`reveal`&&QI()}Lm(ZI);function QI(){if(qI)return;qI=!0,HI.classList.add(`fade-out`),LI(Q);let e=()=>HI.remove();HI.addEventListener(`transitionend`,e,{once:!0}),setTimeout(e,1e3)}function $I(e,t){BI.dataset.state=`shutdown`,VI.textContent=e,BI.title=e,GL.disabled=!0,KI.textContent=t,GI.classList.add(`active`)}var eL=new Set([`disconnected`,`connecting`]);function tL(e,t,n){BI.dataset.state=e,BI.toggleAttribute(`data-reconnected`,n),VI.textContent=t,BI.title=t}function nL(e,t){tL(e,t,e===`connected`&&eL.has(BI.dataset.state??``))}function rL(e,t){BI.dataset.state!==`shutdown`&&tL(e===`verified`?`connected`:e,t,!1)}var iL=1e4,aL=`Server`,oL=`Worktree`,sL=`Worktree warning`,cL=`The server is not answering. Check the terminal running Glimmervoid for errors, or start it again with glimmervoid. This page reconnects on its own.`,lL=`Server not answering. Check the Glimmervoid terminal for errors, or run glimmervoid. This page retries on its own.`,uL=null,dL=!1;function fL(){UI.textContent=`Reconnecting to server...`,WI.textContent=lL,WI.hidden=!dL}function pL(){uL=null,dL=!0,qI?F({source:aL,message:cL,hidesInStreamerMode:!1}):fL()}function mL(){uL!==null||dL||(uL=window.setTimeout(pL,iL))}function hL(){uL!==null&&window.clearTimeout(uL),uL=null,dL=!1,WI.hidden=!0,Sn(aL)}He((e,t)=>{if(e===`connecting`||e===`verified`)rL(e,t);else{nL(e,t),kx(e===`connected`);for(let t of Q)t.onConnectionChange?.(e===`connected`);if(e===`connected`){if(hL(),lR&&uR(lR),GI.classList.contains(`active`)){location.reload();return}fo(),document.body.classList.add(`app-ready`),!qI&&JI===null&&(JI=performance.now(),UI.textContent=`Connecting to sessions...`,setTimeout(QI,LF)),ZI(),FR(),DL(`connected`),j(`get-settings`,{}).then(e=>{e.settings&&(hR(e.settings),Ir()===`settings`&&XL(location.hash))}).catch(()=>{})}else e===`disconnected`&&GI.classList.contains(`active`)?KI.textContent=`Waiting for server...`:(mL(),qI||fL())}});function gL(){rN(),IA(),cD()}function _L(){DC(),gL()}Rs(()=>DC());var vL=null;function yL(e){let t=jP(vL,e);vL=t.knownBuild,t.reload&&location.reload()}function bL(e){gT(new Map(e.filter(e=>!e.ephemeral).map(e=>[e.id,e.name]))),DP(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){_c(t.id,t.coherenceHooks),t.ephemeral||jl(t.path),sM(t.id,t.linkedPrs);let e=hx(t.id);e&&Qx(t.id,t.state,t.stateSince),e&&Gn(t.id,!!t.saneYolo),e&&Nx(t.id,t.isGuarded,t.isGuardrailsReleased),e||bx(t.id,t.name,t.state,MN(t)),qx(t.id,t.failureReason),mx(t.id,t.taskTitle,t.taskTitleIsCustom),jx(t.id,t.agent),Vx(t.id,t.mergeStatus,t.mergeReason),Ax(t.id,t.effectiveBase),Fx(t.id,t.activeAgents,t.awaitingBackgroundTasks),Lx(t.id,t.pendingPromptKind),Rx(t.id,t.unseenOutcome),sx(t.id,t),wx(t.id,t.hasPlan),EL(t.id)}yx(),Jc(P),DC(),KC(),gL(),xL(),$L(location.hash),IR(),YI=!0,ZI()}function xL(){Zy([...P].map(([e,t])=>({id:e,name:lt(t)||e})))}function SL(e,t){wx(e,t?.hasPlan===!0),Rx(e,t?.unseenOutcome),EL(e)}function CL(e){if(!hx(e.id))bx(e.id,e.session,e.to,MN({skipPerms:e.skipPerms,saneYolo:e.saneYolo,stateSince:e.timestamp})),Jc(P),rN();else if(e.to===b.DORMANT&&e.from!==b.DORMANT){let t=P.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;Wx(e.id),bx(e.id,e.session,b.DORMANT,MN({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})),jx(e.id,t?.agent),SL(e.id,t),_L(),X_(e.id),Jc(P)}else Qx(e.id,e.to,e.timestamp,e.event),qx(e.id,e.failureReason),e.saneYolo!==void 0&&Gn(e.id,e.saneYolo),Jc(P),X_(e.id),_L(),ar(e.id),e.to===b.INITIALIZING&&(e.from===b.DONE||e.from===b.FAILED)&&Zm(e.id)}var wL=new Map;function TL(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};wL.set(n.id,e),Ix(n.id,e)}for(let e of[...wL.keys()])t.has(e)||(wL.delete(e),Ix(e,null))}function EL(e){let t=wL.get(e);t&&Ix(e,t)}dI(A),IT(A),Jy(A),nN(A),TM(A),fr(aM),ll(xc),ll(rM),Yn({isReadable:Sc,open:wc}),Un(AN);function DL(e){DI(Q,{isPhoneShellActive:oD(),activeView:Ir(),phoneScreen:I.snapshot().phoneScreen},e,FI)}rs(()=>DL(`settings-updated`));var OL={snapshot:e=>{yL(e.serverBuild),bL(e.sessions)},"hooks-report":e=>RT(e),"save-hook-result":()=>zT(),"delete-hook-result":()=>zT(),"state-change":e=>CL(e),"session-added":e=>{e.ephemeral||jl(e.path),sM(e.id,e.linkedPrs),hx(e.id)||(bx(e.id,e.session,e.state,MN(e)),jx(e.id,e.agent),EL(e.id)),Jc(P),_L(),xL()},"session-close-confirm":e=>{Bi(e.id)},"session-removed":e=>{wn(e.id),Wx(e.id),vc(e.id),Q_(e.id),cM(e.id),Jc(P),_L(),xL()},"session-title":e=>{mx(e.id,e.taskTitle,e.isCustom),_L()},"session-prs":e=>sM(e.id,e.linkedPrs),"session-renamed":e=>{Ux(e.id,e.newName),_L(),xL()},"session-modified":e=>{e.ephemeral||jl(e.path);let t=P.get(String(e.id)),n=L()===String(e.id);_c(e.id,null),Wx(e.id),Q_(e.id),sM(e.id,e.linkedPrs),bx(e.id,e.session,e.state,MN(e)),n&&hi(String(e.id)),jx(e.id,e.agent),SL(e.id,t),Jc(P),_L(),xL()},"session-git":e=>Mx(e.id,!!e.worktree),"session-agents":e=>{Fx(e.id,e.activeAgents,e.awaitingBackgroundTasks),_L(),ar(e.id)},"session-unseen":e=>{Rx(e.id,e.unseenOutcome),yx(),Jc(P),_L()},"session-prompt":e=>{Lx(e.id,e.pendingPromptKind),gL()},"session-merge-status":e=>{Bx(e.id,e.mergeStatus,e.reason),zC(e.id,e.mergeStatus),gL()},"session-worktree-blocked":e=>{F({source:oL,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=>{F({source:sL,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=>{Sn(oL,e.id),Ax(e.id,e.base)},"session-diff":e=>{Hx(e.id,e)},"session-diff-error":e=>{G_(e.id,e.message)},"change-map":e=>K_(e.id,e.map),"branch-sync-status":e=>q_(e.id,e),"session-changed":e=>Y_(e.id),"debug-state-response":e=>Zn(e),"session-trace-response":e=>{cx(e)||Qy(e)},"session-trace-changed":e=>{ux(e.id),$y(e)},"session-conversation":e=>{sx(e.id,e),gL()},"session-plan-changed":e=>{Tx(e),gL()},"session-plan-draft":e=>{Ex(e)},"session-plan-response":e=>{Dx(e)},"session-docs-changed":e=>Ds(e),"session-docs-snapshot":e=>Os(e),"session-shown":e=>ec(e),"session-shown-snapshot":e=>tc(e),"session-coherence-hooks":e=>{_c(e.id,e.coherenceHooks),_L()},"session-coherence":e=>{yc(e),_L()},"session-coherence-snapshot":e=>{bc(e),_L()},"session-coherence-journal-response":e=>Tc(e),"session-setup-response":e=>jN(e),notify:e=>{ba(e),ar(e.session)},"update-status":e=>{FL(e),OP(e)},"update-progress":e=>kP(e.journal),"post-turn-leftovers":e=>LL(e),error:e=>{let t=AP(e),n=eb(e);lx(e);let r=Ox(e);t||n||r||(e.id?Kx(e.id,e.message):F({source:aL,message:e.message}))},"session-error":e=>{H_(e.id),!Ox(e)&&Kx(e.id,e.message)},"settings-updated":e=>{e.settings&&hR(e.settings),fo()},"agent-logins":e=>ri(e.logins),"health-snapshot":e=>{e.stats&&eg(e.stats)},"radar-status":e=>wN(e),"radar-investigation-activity":e=>TN(e),"radar-investigation-finished":e=>EN(e),"team-review-status":e=>nO(e),"github-prs":e=>Cr(e),"my-prs-status":LA,"benchmark-status":e=>OM(e),"benchmark-action-result":e=>kM(e),"my-pr-merge-result":e=>RA(e),"team-review-action-result":e=>rO(e),"open-team-review-session-result":e=>iO(e),"issues-status":e=>aN(e),"issue-detail-result":e=>oN(e),"open-issue-session-result":e=>sN(e),"usage-sessions":e=>{TL(e.sessions),hI(e)},"usage-report":e=>{_I(e),EP()},"plan-limits":e=>gI(e),"usage-budget-alert":e=>ba({session:`budget-${e.scope}-${e.periodKey}`,category:`threshold-${e.threshold}`,message:e.text,ignoreFocus:!0}),"visions-findings":e=>bT(e),"visions-comments":e=>xT(e),"visions-hand":e=>ST(e),"visions-intent":e=>CT(e),"visions-fix":e=>yT(e),"visions-snapshot":e=>ET(e),"ingest-activity":e=>wT(e),"ingest-snapshot":e=>TT(e),"client-trust":e=>kR(e.trust),"shutting-down":()=>$I(`Shutting down...`,`Shutting down sessions...`),restarting:()=>$I(`Restarting...`,`Restarting server...`)};function kL(e){let t=OL[e.type];t&&t(e)}Ke(e=>{kL(e),DL(e.type)});var AL,jL=null;function ML(e,t,n){e.onclick=()=>{let e=Pe(n);e?e.then(()=>{t.textContent=`Copied`}).catch(()=>{t.textContent=`Copy failed`}):t.textContent=`Copy failed`}}var NL=LP(v,h,`Update`).href;function PL(e){let{latestSha:t,latest:n}=e;return typeof n==`string`&&n?n:typeof t==`string`&&t?t:null}function FL(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=PL(e),s=o&&n===`restart`?`${o}:ready`:o;if(a&&i===jL||!a&&AL!==void 0&&s===AL||!a&&s&&Jt()===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=NL,l.hidden=n!==`link`;let u=D(document,`#update-banner-restart`,`button`);u.hidden=n!==`restart`,u.onclick=OR;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?jL=i:(AL=s,Gt(s))}}var IL=!1;function LL({repositories:e,command:t}){let n=D(document,`#post-turn-leftovers-banner`,`div`);if(e.length===0){n.hidden=!0;return}if(IL)return;let r=D(document,`#post-turn-leftovers-copy-status`,`span`);D(document,`#post-turn-leftovers-text`,`span`).textContent=jr(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=()=>{IL=!0,n.hidden=!0}}var RL=D(document,`#telemetry-banner`,`div`);function zL(){Lt(!0),RL.hidden=!0}function BL(e){RL.hidden=!IF(e,ht())}var VL=D(document,`#telemetry-banner-settings`,`a`);VL.href=LP(`privacy`,`telemetry-enabled`,`What's collected`).href,VL.addEventListener(`click`,zL),D(document,`#telemetry-banner-dismiss`,`button`).addEventListener(`click`,zL),D(document,`#btn-add-session-header`,`button`).addEventListener(`click`,Mi);var HL=D(document,`#btn-mute`,`button`);mM(HL);var UL=D(document,`#btn-streamer`,`button`);cs(UL),NF();var WL=D(document,`#power-menu`,`div`),GL=D(document,`#btn-power`,`button`),KL=D(document,`#power-menu-dropdown`,`div`);function qL(e){WL.classList.toggle(`open`,e),GL.setAttribute(`aria-expanded`,String(e))}GL.addEventListener(`click`,e=>{e.stopPropagation(),qL(!WL.classList.contains(`open`))}),ur({trigger:GL,menu:KL,menuItems:()=>[...KL.querySelectorAll(`[role="menuitem"]`)].filter(e=>!e.hidden),isOpen:()=>WL.classList.contains(`open`),open:()=>qL(!0),close:()=>qL(!1)}),document.addEventListener(`click`,e=>{e.target instanceof Node&&(WL.contains(e.target)||qL(!1))}),ge(document.querySelector(`.header`));function JL(e){e&&vP(e),!uD(`settings`)&&$(`settings`,{section:e})}function YL(){PP(location.hash)&&history.replaceState(history.state,``,`${location.pathname}${location.search}`)}function XL(e){return PP(e)?(vP(null,null,e),uD(`settings`)||$(`settings`,{persist:!1}),!0):!1}var ZL=`No plan is stored for this session yet. It appears here once the agent writes one.`,QL=`Plan`;function $L(e){let t=ra(e);return t?!hx(t)||(history.replaceState(history.state,``,`${location.pathname}${location.search}`),oD()?(aD(t)||F({source:QL,sessionId:t,message:ZL}),!0):($(`focus`,{persist:!1}),VC(t)||F({source:QL,sessionId:t,message:ZL}),!0)):!1}function eR(e){return $L(e)?!0:XL(e)}function tR(e){e.newURL===location.href&&eR(location.hash)}document.addEventListener(`click`,e=>{if(!oD()||e.defaultPrevented)return;let t=e.target instanceof Element?e.target.closest(`a[href^="#"]`):null;t instanceof HTMLAnchorElement&&eR(t.hash)&&e.preventDefault()}),bA(D(document,`#celebration-tray`,`div`),D(document,`#btn-celebrations`,`button`),D(document,`#celebration-tray-count`,`span`)),D(document,`#btn-help`,`button`).addEventListener(`click`,()=>{JL(`browser-shortcuts`)});var Q=zI({onRestart:OR,openTerminal:e=>{lD(e)||($(`focus`),BC(e))},openPlan:e=>{$(`focus`),VC(e)},openReviews:()=>aR(`prs`)?(uD(`prs`)||$(`prs`),!0):!1,setPhoneAttention:fD});function nR(){return Q.map(e=>e.view)}var rR=nR();gP(Q),L_({panel:document.getElementById(`review-sidebar`)}),II(Q);function iR(e){return Q.find(t=>t.view===e)}function aR(e){return Q.some(t=>t.view===e&&!t.tab.hidden)}var oR=!0,sR=null;function cR(e){iR(e)?.attention?.acknowledge()}var lR=null;function uR(e){lR=A({type:`dashboard-telemetry`,event:`view_shown`,properties:{view:e}})?null:e}function dR(e){let t=iR(e);t&&(PI(t,e=>EI(t,e,`shown`)),uR(e))}function $(e,{section:t,setting:n,persist:r=!0}={}){let i=iR(e);if(!i||!aR(e))return;let a=Ir();I.dispatch(`setActiveView`,e),oR=r,r&&(sR=null),document.body.dataset.activeView=e,document.body.dataset.reviewSidebarHidden=String(i.hasReviewSidebar!==!0),r&&vt(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&&FI(a)?.deactivate?.(),PI(i,r=>{Ir()===e&&(r.activate?.(),EI(i,r,`shown`),e===`settings`&&t&&vP(t,n??null))}),uR(e),a===`settings`&&e!==`settings`&&YL(),cR(e)}function fR(e,t){let{view:n}=e;e.tab.hidden=!t,dD(n,t),e.onAvailabilityChange?.(t),!oD()&&(!t&&Ir()===n&&$(`focus`),t&&sR===n&&$(n))}function pR(e){for(let{view:t,isAvailable:n}of SI(Q,e))fR(t,n)}function mR(e){let t=CI(rR,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)),tD(t))}function hR(e){Ed(e.isExperimentalBuild===!0&&un()),_x(e),TP(e),_T(e),pR(e),BL(e),mR(e.viewTabOrder),ns(e.streamerMode===!0),ax(e.conversationView===!0)}for(let e of Q)e.gate&&(fR(e,!1),`subscribe`in e.gate&&e.gate.subscribe(t=>fR(e,t)));Yy(()=>{aR(`trace`)&&(uD(`trace`)||$(`trace`))});function gR(){return Q.filter(e=>!e.tab.hidden)}function _R(e,t){let n=e[t];return $(n.view),n.tab}function vR(e,t){let n=gR(),r=n.findIndex(t=>t.view===e);return _R(n,mr(r,t,n.length))}function yR(e){Q.some(e=>e.tab===document.activeElement)&&e.focus()}var bR=null;function xR(e){let t=nR();mR(e),j(`update-settings`,{settings:{viewTabOrder:e}}).then(e=>{e.type===`settings-error`&&mR(t)}).catch(()=>mR(t))}function SR(e){let t=bR;if(bR=null,!t||t===e)return;let n=nR();xR(wI(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=>{bR=t,e.dataTransfer?.setData(`text/plain`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),n.addEventListener(`dragover`,e=>{bR&&bR!==t&&(e.preventDefault(),n.dataset.dropTarget=`true`)}),n.addEventListener(`dragleave`,()=>delete n.dataset.dropTarget),n.addEventListener(`drop`,e=>{e.preventDefault(),delete n.dataset.dropTarget,SR(t)}),n.addEventListener(`dragend`,()=>{bR=null}),n.addEventListener(`keydown`,e=>{if(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)return;let t=gR(),n=t.findIndex(e=>e.view===Ir()),r=hr(e.key,n,t.length,`horizontal`);r!==null&&(e.preventDefault(),_R(t,r).focus())})}var CR=nn(),wR=PP(location.hash),TR=ra(location.hash);if(wR&&(vP(null,null,location.hash),$(`settings`,{persist:!1})),TR&&$(`focus`,{persist:!1}),!wR&&!TR){let e=aR(CR);e||(sR=CR),$(e?CR:`focus`,{persist:e})}nD({panels:BT(Q),onScreenShown:e=>{dR(e),e!==`settings`&&YL(),e===`settings`&&!PP(location.hash)&&vP(),cR(e)},canGoBack:e=>e===`settings`&&CP()||e===`prs`&&qj(),onBack:e=>{e===`settings`&&wP(),e===`prs`&&Jj()},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`),HL,UL,WL]}),SP(qE),Kj(qE);function ER(e){if(e===`phone`){let e=hC();for(let e of Q)FI(e.view)?.deactivate?.();let t=PP(location.hash);rD({sessionId:e??void 0,linkedScreenId:t?`settings`:void 0}),t&&vP(null,null,location.hash);return}let t=sD();iD();let n=Ir();$(aR(n)?n:`focus`,{persist:oR}),t&&BC(t)}Yi()&&ER(`phone`),Xi(ER),window.addEventListener(`hashchange`,tR);function DR({type:e,title:t,confirmLabel:n,danger:r,idleMessage:i,actionAfterKillingSessions:a}){qL(!1);let o=gx(),s=o>0?`Kill ${o} session${o>1?`s`:``} and ${a}?`:i;gr({title:t,message:s,confirmLabel:n,danger:r||o>0,onConfirm:()=>A({type:e})})}function OR(){DR({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`,OR);function kR(e){let t=Dr(`shutdown`,e);D(document,`#btn-shutdown`,`button`).hidden=!t,D(document,`#menu-divider-shutdown`,`div`).hidden=!t}D(document,`#btn-shutdown`,`button`).addEventListener(`click`,()=>{DR({type:`shutdown`,title:`Shut Down Server`,confirmLabel:`Shut Down`,danger:!0,idleMessage:`Shut down the server?`,actionAfterKillingSessions:`shut down the server`})});function AR(){return(document.activeElement?.closest(`.session-card`))?.dataset.id??null}function jR(e){BC(e),wi(e),requestAnimationFrame(()=>requestAnimationFrame(()=>P.get(e)?.term?.focus()))}function MR(){let e=AR()??L();e?Ii(e,jR):document.getElementById(`btn-add-session-header`)?.click()}function NR({action:e,step:t}){switch(e){case`merge`:return $_(),!0;case`close-session`:{let e=L();return e?(Bi(e),!0):!1}case`resolve-or-resync`:return tv()||iv(),!0;case`new-session`:return document.getElementById(`btn-add-session-header`)?.click(),!0;case`quick-session`:return MR(),!0;case`next-attention`:return Yi()?!1:mC()?(jC(),!0):(Ir()===`prs`&&Yj()||GC(()=>$(`focus`)),!0);case`rail-step`:return mC()?(UC(t),!0):!1;case`view-step`:return!Yi()&&(yR(vR(Ir(),t)),!0);case`session-nth`:return mC()?(HC(t),!0):!1;case`streamer-mode`:return ss(),!0}}document.addEventListener(`keydown`,e=>{if(e.repeat||me(e))return;let t=document.activeElement?.classList.contains(`xterm-helper-textarea`)??!1,n=Ft(e,Mu,{isTerminalFocused:t},Fu());n&&(_r()||NR(n)&&e.preventDefault())});var PR=Ar({mode:`trailing`,delayMs:150,run:()=>{A({type:`focus-change`,focused:document.hasFocus()})}});function FR(){PR.schedule()}function IR(){let e=sD();e&&M(e)?._isActiveViewer?.()===!0&&Yx(e)}function LR(){FR(),uh(M(Lr())),IR()}window.addEventListener(`focus`,LR),window.addEventListener(`blur`,LR),document.addEventListener(`visibilitychange`,LR),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&Bp()});var RR=Be(A);window.addEventListener(`error`,e=>{RR(e.error),Ve(`uncaught`,tt(e.error??e.message))}),window.addEventListener(`unhandledrejection`,e=>{RR(e.reason),Ve(`unhandled-rejection`,tt(e.reason))}),RI(()=>window.sessionStorage),window.addEventListener(`pageshow`,e=>{e.persisted&&Bp()}),$h(D(document,`#health-footer-mount`,`div`)),ju(vx),mL(),KN(),Je();export{Yj as $,is as $n,DS as $t,uP as A,cg as An,RD as At,eN as B,Iu as Bn,gD as Bt,fP as C,yg as Cn,wr as Cr,sj as Ct,bP as D,ng as Dn,$D as Dt,wP as E,ig as En,MA as Et,yN as F,cd as Fn,BD as Ft,JM as G,Ol as Gn,pT as Gt,tN as H,Ru as Hn,PT as Ht,vN as I,vd as In,qD as It,CM as J,hl as Jn,Tw as Jt,wM as K,Dl as Kn,fT as Kt,XM as L,sd as Ln,jD as Lt,yP as M,Td as Mn,HD as Mt,bN as N,wd as Nn,zD as Nt,_P as O,sg as On,eO as Ot,_N as P,Od as Pn,VD as Pt,Bj as Q,rs as Qn,ow as Qt,QM as R,od as Rn,kD as Rt,xP as S,hy as Sn,I as Sr,QA as St,hP as T,lg as Tn,NA as Tt,$M as U,Lu as Un,LT as Ut,ZM as V,zu as Vn,_D as Vt,YM as W,Fu as Wn,FT as Wt,pM as X,Zc as Xn,Nw as Xt,fM as Y,$c as Yn,uw as Yt,Fj as Z,ts as Zn,Pw as Zt,IP as _,Ky as _n,mi as _r,cj as _t,uI as a,mb as an,za as ar,Gj as at,TP as b,Vy as bn,ai as br,fj as bt,fI as c,sb as cn,Sa as cr,BA as ct,iI as d,fb as dn,aa as dr,aj as dt,OS as en,Ko as er,Vj as et,vI as f,lb as fn,Yi as fr,dj as ft,LP as g,Gy as gn,pi as gr,oj as gt,nF as h,qy as hn,wi as hr,ZA as ht,bI as i,hb as in,Ho as ir,zj as it,sP as j,Ed as jn,WD as jt,cP as k,hg as kn,GD as kt,oI as l,db as ln,ua as lr,ij as lt,XP as m,Tb as mn,ki as mr,pj as mt,CI as n,rb as nn,qo as nr,Jj as nt,pI as o,ob as on,xa as or,Pj as ot,aF as p,ab as pn,Xi as pr,ej as pt,EM as q,pl as qn,dT as qt,yI as r,yb as rn,Vo as rr,Uj as rt,sI as s,cb as sn,wa as sr,Wj as st,wI as t,Wb as tn,Yo as tr,Ij as tt,aI as u,gb as un,sa as ur,rj as ut,NP as v,Wy as vn,ii as vr,$A as vt,pP as w,xg as wn,Tr as wr,PA as wt,lP as x,Hy as xn,$r as xr,gj as xt,FP as y,Uy as yn,ri as yr,hj as yt,qM as z,Mu as zn,AD as zt};
|