glimmervoid 0.44.2 → 0.45.1-next.45

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.
Files changed (110) hide show
  1. package/dist/bin/glimmervoid.js +15 -15
  2. package/dist/chunks/{adapters-7AfJ6yb3.js → adapters-BE9BKVW0.js} +24 -24
  3. package/dist/chunks/{adapters-B_ss_kZh.js → adapters-CPaysZkO.js} +1 -1
  4. package/dist/chunks/{agent-api-cli-prUJ5ZGN.js → agent-api-cli-B0l8uLos.js} +1 -1
  5. package/dist/chunks/{agent-api-cli-zwuWZlwk.js → agent-api-cli-Bq9J0_D5.js} +148 -15
  6. package/dist/chunks/{agent-api-core-DQwd2ClI.js → agent-api-core-ClU9-5K3.js} +10 -4
  7. package/dist/chunks/{agent-setup-cli-7hG401Io.js → agent-setup-cli-BA_1AdhQ.js} +2 -2
  8. package/dist/chunks/{contracts-lxJ0sQEl.js → build-channel-qgKwNssc.js} +37 -3
  9. package/dist/chunks/{config-DlKkg6IX.js → config-BqJTnPae.js} +27 -34
  10. package/dist/chunks/{config-path-core-DFt-TemS.js → config-path-core-DUWk0Lui.js} +5 -1
  11. package/dist/chunks/config-store-5xpRLHFo.js +1 -0
  12. package/dist/chunks/{config-store-DIrwF5iQ.js → config-store-BGTg8oKO.js} +77 -78
  13. package/dist/chunks/{git-version-C3lznLS_.js → git-version-BpdkKH2j.js} +1 -1
  14. package/dist/chunks/{grok-Di4aQGre.js → grok-7jK8ZNtf.js} +1 -1
  15. package/dist/chunks/{json-file-DFCTvPjj.js → json-file-BjFK_eSH.js} +2 -7
  16. package/dist/chunks/{main-BCbulgNv.js → main-x9ygUnoL.js} +1226 -1012
  17. package/dist/chunks/{pair-cli-B3VRcrHm.js → pair-cli-Cph4TZ2R.js} +2 -2
  18. package/dist/chunks/{remote-config-C91HwjWq.js → remote-config-CmP36r_s.js} +2 -2
  19. package/dist/chunks/{rtk-resolver-BDHi6RMv.js → rtk-resolver-C_IReILP.js} +1 -1
  20. package/dist/chunks/rtk-resolver-DgnNb1or.js +1 -0
  21. package/dist/chunks/{session-CUc6d7aS.js → session-BwlLY_mv.js} +36 -14
  22. package/dist/chunks/{session-routes--hrsvv7a.js → session-routes-CviNvxcz.js} +9 -1
  23. package/dist/chunks/{settings-cli-C9eCc60b.js → settings-cli-Bete5oVk.js} +11 -10
  24. package/dist/chunks/{settings-readout-core-DK1m5TUq.js → settings-readout-core-CS8MPaIE.js} +14 -8
  25. package/dist/chunks/shown-files-core-soMzCQ1D.js +145 -0
  26. package/dist/chunks/{ssh-sign-cli-DCnHgHqo.js → ssh-sign-cli-DXhuqzuy.js} +2 -2
  27. package/dist/client/assets/action-status-BwqYb9eF.js +1 -0
  28. package/dist/client/assets/action-status-BwqYb9eF.js.br +0 -0
  29. package/dist/client/assets/benchmark-panel-BulIdLtq.js +1 -0
  30. package/dist/client/assets/benchmark-panel-BulIdLtq.js.br +0 -0
  31. package/dist/client/assets/card-dom-DkZgkeG9.js +1 -0
  32. package/dist/client/assets/card-dom-DkZgkeG9.js.br +0 -0
  33. package/dist/client/assets/control-ws-CAcwW-r9.js +4 -0
  34. package/dist/client/assets/control-ws-CAcwW-r9.js.br +0 -0
  35. package/dist/client/assets/dialogs-CCP1ipXD.js +79 -0
  36. package/dist/client/assets/dialogs-CCP1ipXD.js.br +0 -0
  37. package/dist/client/assets/dom-helpers-xJduxDcc.js +1 -0
  38. package/dist/client/assets/dom-helpers-xJduxDcc.js.br +0 -0
  39. package/dist/client/assets/hooks-panel-BWDeSHtM.js +1 -0
  40. package/dist/client/assets/hooks-panel-BWDeSHtM.js.br +0 -0
  41. package/dist/client/assets/index-D6m--U7B.js +84 -0
  42. package/dist/client/assets/index-D6m--U7B.js.br +0 -0
  43. package/dist/client/assets/index-DF3BLGk9.css +2 -0
  44. package/dist/client/assets/index-DF3BLGk9.css.br +0 -0
  45. package/dist/client/assets/issues-panel-B7Y1Lpyx.js +1 -0
  46. package/dist/client/assets/issues-panel-B7Y1Lpyx.js.br +0 -0
  47. package/dist/client/assets/modal-mWl2H7A_.js +1 -0
  48. package/dist/client/assets/modal-mWl2H7A_.js.br +0 -0
  49. package/dist/client/assets/plan-face-DpzZfVeG.js +3 -0
  50. package/dist/client/assets/plan-face-DpzZfVeG.js.br +0 -0
  51. package/dist/client/assets/{poll-ago-Dj148faJ.js → poll-ago-Bc-8mMFj.js} +1 -1
  52. package/dist/client/assets/poll-ago-Bc-8mMFj.js.br +0 -0
  53. package/dist/client/assets/pr-scope-tabs-DftvVYU8.js +1 -0
  54. package/dist/client/assets/pr-scope-tabs-DftvVYU8.js.br +0 -0
  55. package/dist/client/assets/radar-panel-hxjF7m9Z.js +1 -0
  56. package/dist/client/assets/radar-panel-hxjF7m9Z.js.br +0 -0
  57. package/dist/client/assets/review-queue-panel-8bP8Q7RR.js +10 -0
  58. package/dist/client/assets/review-queue-panel-8bP8Q7RR.js.br +0 -0
  59. package/dist/client/assets/roving-keys-core-BDobx2It.js +1 -0
  60. package/dist/client/assets/settings-panel-B50lNcrt.js +4 -0
  61. package/dist/client/assets/settings-panel-B50lNcrt.js.br +0 -0
  62. package/dist/client/assets/trace-panel-Dy-fgi9c.js +2 -0
  63. package/dist/client/assets/trace-panel-Dy-fgi9c.js.br +0 -0
  64. package/dist/client/assets/ui-prefs-CNf6fId2.js +1 -0
  65. package/dist/client/assets/ui-prefs-CNf6fId2.js.br +0 -0
  66. package/dist/client/assets/usage-panel-D2JuiQ4G.js +1 -0
  67. package/dist/client/assets/usage-panel-D2JuiQ4G.js.br +0 -0
  68. package/dist/client/assets/visions-panel-CI6CRn42.js +1 -0
  69. package/dist/client/assets/visions-panel-CI6CRn42.js.br +0 -0
  70. package/dist/client/index.html +14 -8
  71. package/dist/client/index.html.br +0 -0
  72. package/dist/server/index.js +99 -1
  73. package/dist/session/guardrails-open-launcher.js +28 -16
  74. package/dist/session/visions-relay.js +1 -1
  75. package/package.json +1 -1
  76. package/dist/chunks/config-store-LYSRHNQs.js +0 -1
  77. package/dist/chunks/rtk-resolver-Dr4iJsiS.js +0 -1
  78. package/dist/client/assets/action-status-DXcC95xv.js +0 -1
  79. package/dist/client/assets/action-status-DXcC95xv.js.br +0 -0
  80. package/dist/client/assets/benchmark-panel-Cssmnd3z.js +0 -1
  81. package/dist/client/assets/benchmark-panel-Cssmnd3z.js.br +0 -0
  82. package/dist/client/assets/dom-helpers-CcEFPh-F.js +0 -4
  83. package/dist/client/assets/dom-helpers-CcEFPh-F.js.br +0 -0
  84. package/dist/client/assets/hooks-panel-Cli8EeBB.js +0 -1
  85. package/dist/client/assets/hooks-panel-Cli8EeBB.js.br +0 -0
  86. package/dist/client/assets/index-C3nOrTwM.css +0 -2
  87. package/dist/client/assets/index-C3nOrTwM.css.br +0 -0
  88. package/dist/client/assets/index-C8u3ZjM3.js +0 -173
  89. package/dist/client/assets/index-C8u3ZjM3.js.br +0 -0
  90. package/dist/client/assets/issues-panel-Bev1wadi.js +0 -1
  91. package/dist/client/assets/issues-panel-Bev1wadi.js.br +0 -0
  92. package/dist/client/assets/modal-CvDX5-_2.js +0 -1
  93. package/dist/client/assets/modal-CvDX5-_2.js.br +0 -0
  94. package/dist/client/assets/poll-ago-Dj148faJ.js.br +0 -0
  95. package/dist/client/assets/pr-queue-columns-Jleg5z3W.js +0 -1
  96. package/dist/client/assets/pr-queue-columns-Jleg5z3W.js.br +0 -0
  97. package/dist/client/assets/radar-panel-Dtp4ZzT3.js +0 -1
  98. package/dist/client/assets/radar-panel-Dtp4ZzT3.js.br +0 -0
  99. package/dist/client/assets/review-queue-panel-BQvU_-xl.js +0 -2
  100. package/dist/client/assets/review-queue-panel-BQvU_-xl.js.br +0 -0
  101. package/dist/client/assets/settings-panel-DegKCsoZ.js +0 -3
  102. package/dist/client/assets/settings-panel-DegKCsoZ.js.br +0 -0
  103. package/dist/client/assets/trace-panel-DFqImX92.js +0 -1
  104. package/dist/client/assets/trace-panel-DFqImX92.js.br +0 -0
  105. package/dist/client/assets/ui-prefs-CavQQH-s.js +0 -1
  106. package/dist/client/assets/ui-prefs-CavQQH-s.js.br +0 -0
  107. package/dist/client/assets/usage-panel-CEJqXYIA.js +0 -1
  108. package/dist/client/assets/usage-panel-CEJqXYIA.js.br +0 -0
  109. package/dist/client/assets/visions-panel-Dm3iKlhv.js +0 -1
  110. package/dist/client/assets/visions-panel-Dm3iKlhv.js.br +0 -0
@@ -0,0 +1,84 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dialogs-CCP1ipXD.js","assets/dom-helpers-xJduxDcc.js","assets/zod-BRLv4KqJ.js","assets/control-ws-CAcwW-r9.js","assets/poll-ago-Bc-8mMFj.js","assets/action-status-BwqYb9eF.js","assets/modal-mWl2H7A_.js","assets/plan-face-DpzZfVeG.js","assets/roving-keys-core-BDobx2It.js","assets/review-queue-panel-8bP8Q7RR.js","assets/ui-prefs-CNf6fId2.js","assets/pr-scope-tabs-DftvVYU8.js","assets/issues-panel-B7Y1Lpyx.js","assets/usage-panel-D2JuiQ4G.js","assets/radar-panel-hxjF7m9Z.js","assets/visions-panel-CI6CRn42.js","assets/hooks-panel-BWDeSHtM.js","assets/trace-panel-Dy-fgi9c.js","assets/benchmark-panel-BulIdLtq.js","assets/settings-panel-B50lNcrt.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 te,On as w,Qt as ne,R as re,Rt as ie,S as ae,Tt as T,Ut as oe,Wt as se,Xt as ce,Zt as le,_ as E,_t as ue,b as de,c as fe,d as pe,en as me,f as he,g as ge,h as D,ht as _e,j as ve,jt as ye,l as be,m as O,mt as xe,n as Se,o as k,qt as Ce,rt as we,s as A,t as Te,tn as Ee,v as De,wn as Oe,wt as ke,x as Ae,y as je,yt as Me,z as Ne}from"./dom-helpers-xJduxDcc.js";import{S as Pe,_ as Fe,a as Ie,b as Le,c as Re,d as ze,f as Be,g as Ve,h as He,i as Ue,l as j,m as We,n as Ge,o as Ke,p as qe,r as Je,s as Ye,t as Xe,u as Ze,v as Qe,x as $e,y as et}from"./control-ws-CAcwW-r9.js";import{a as tt,c as nt,d as M,f as N,i as rt,l as it,m as P,n as at,o as ot,p as st,s as ct,u as lt}from"./poll-ago-Bc-8mMFj.js";import{C as ut,Ct as dt,Dt as ft,E as pt,J as mt,K as ht,O as gt,Ot as _t,Q as vt,R as yt,St as bt,T as xt,Tt as St,U as Ct,Y as wt,Z as Tt,_ as Et,_t as Dt,a as Ot,at as kt,b as At,bt as jt,c as Mt,ct as Nt,d as Pt,et as Ft,f as It,ft as Lt,gt as Rt,h as zt,ht as Bt,i as Vt,it as Ht,k as Ut,m as Wt,mt as Gt,n as Kt,o as qt,ot as Jt,p as Yt,pt as Xt,q as Zt,rt as Qt,s as $t,t as en,u as tn,ut as nn,v as rn,vt as an,w as on,wt as sn,x as cn,xt as ln,y as un,yt as dn,z as fn}from"./ui-prefs-CNf6fId2.js";import{C as pn,S as mn,c as hn,f as gn,h as _n,i as vn,m as yn,n as bn,o as F,p as xn,r as Sn,s as Cn,t as wn,u as Tn,w as En}from"./action-status-BwqYb9eF.js";import{A as Dn,C as On,D as kn,E as An,F as jn,I as Mn,L as Nn,M as Pn,N as Fn,O as In,P as Ln,R as Rn,S as zn,T as Bn,_ as Vn,a as Hn,b as Un,c as Wn,d as Gn,f as Kn,g as qn,h as Jn,i as Yn,j as Xn,k as Zn,l as Qn,m as $n,n as er,o as tr,p as nr,r as rr,s as ir,t as ar,u as or,v as sr,w as cr,x as lr,y as ur,z as dr}from"./card-dom-DkZgkeG9.js";import{n as fr,t as pr}from"./roving-keys-core-BDobx2It.js";import{a as mr,i as hr,n as gr,r as _r,t as vr}from"./modal-mWl2H7A_.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var yr=new Map,br=new Set;function xr(e){let t=me.safeParse(e);if(!t.success)Re(`reviews`,`dropped github-prs: ${Pe(t.error.issues)}`);else{yr=new Map(Object.entries(t.data.prs));for(let e of br)e()}}function Sr(e){return yr.get(e.toLowerCase())}function Cr(e){br.add(e)}function wr(e){return e===`remote`?`remote`:`local`}function Tr(e,t){return wr(t)===`local`||e!==`shutdown`}var Er=Object.freeze({setTimeoutFn:(e,t)=>setTimeout(e,t),clearTimeoutFn:e=>clearTimeout(e),setIntervalFn:(e,t)=>setInterval(e,t),clearIntervalFn:e=>clearInterval(e)});function Dr(e){return typeof e!=`object`||!e||!(`unref`in e)||typeof e.unref!=`function`||e.unref(),e}function Or({mode:e,delayMs:t,run:n,setTimeoutFn:r=Er.setTimeoutFn,clearTimeoutFn:i=Er.clearTimeoutFn,unref:a=!0}){let o=null;function s(){o&&=(i(o),null)}function c(){e===`leading`&&o||(s(),o=r(()=>{o=null,n()},t),a&&Dr(o))}return{schedule:c,cancel:s,get isArmed(){return o!==null}}}function kr(e){return`Git tracks an old Glimmervoid post-turn report in ${e===1?`1 repository`:`${e} repositories`}. Nothing reads it, so run this to stop git tracking it and commit the deletion git then shows. Glimmervoid deletes the file itself on its next start:`}var Ar=Object.freeze({layout:`desktop`,activeView:`focus`,phoneScreen:null,focusedSessionId:null,selectedSessionId:null,borrowedCardId:null}),jr=e=>e||null,Mr=Object.freeze({setLayout:e=>({layout:e}),setActiveView:e=>({activeView:e}),setPhoneScreen:e=>({phoneScreen:jr(e)}),focusSession:e=>({focusedSessionId:jr(e)}),selectSession:e=>({selectedSessionId:jr(e)}),borrowCard:e=>({borrowedCardId:jr(e)})});function Nr(e){let t=Object.freeze({...Ar,...e}),n=new Set;function r(){return t}function i(e){return typeof e==`function`?(n.add(e),()=>n.delete(e)):()=>{}}function a(e){let n=[];for(let r of Object.keys(e)){if(!(r in Ar))throw Error(`ui-state: unknown key "${r}"`);Object.is(t[r],e[r])||n.push(r)}return n}function o(e,r){let i=Mr[e];if(!i)throw Error(`ui-state: unknown action "${e}"`);let o=i(r),s=a(o);if(s.length===0)return t;let c=t;t=Object.freeze({...t,...o});for(let e of n)try{e(t,s,c)}catch{}return t}return{snapshot:r,subscribe:i,dispatch:o}}var I=Nr(),Pr=()=>I.snapshot().activeView;function Fr(){return I.snapshot().borrowedCardId}function Ir(e,t,n,{className:r}={}){if(!e?.card||!n)return;let i=Fr();i&&i!==t&&Lr();let a=e.card;a._cardHostClass&&a._cardHostClass!==r&&a.classList.remove(a._cardHostClass),a._cardHostClass=r||``,r&&a.classList.add(r),Te(a,n),I.dispatch(`borrowCard`,t),e._ensureTerminalReady?.(),e._setBorrowed?.(!0),e._showPreferredFace?.()}function Lr(){let e=Fr();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,ge(n,lt)),e}var Rr=68,zr=42,Br=768,Vr=.68,Hr=64,Ur=5,Wr=8,Gr=85;function Kr(e,t,n){return Math.min(Math.max(e,t),n)}function qr({viewportWidthPx:e,viewportHeightPx:t,verticalProgress:n,isRightToLeft:r=!1,arcProgress:i=0}){let a=Kr(e/Br,Vr,1),o=(Ur+70*n*n)*t/100,s=Math.max(o,Hr),c=Gr*t/100,l=Kr(i*Wr*t/100,Hr-s,c-s),u=-.45*e,d=1.45*e;return{scale:a,spriteWidthPx:Rr,spriteHeightPx:zr,topPx:s,startXpx:r?d:u,endXpx:r?u:d,facing:r?-1:1,arcPx:l}}function Jr(e,t){let n=Number.isFinite(t)&&t>0?t:1;return Math.max(1,Math.round(e*n))/n}function Yr(e,t,n){let r=Jr(e.scale*t,n);return[[`--nyan-top`,`${e.topPx}px`],[`--nyan-scale`,String(r)],[`--nyan-width`,`${e.spriteWidthPx}px`],[`--nyan-height`,`${e.spriteHeightPx}px`],[`--nyan-start-x`,`${e.startXpx}px`],[`--nyan-end-x`,`${e.endXpx}px`],[`--nyan-facing`,String(e.facing)],[`--nyan-arc`,`${e.arcPx}px`],[`--nyan-travel`,`${Math.abs(e.endXpx-e.startXpx)/r}px`]]}var Xr=qr({viewportWidthPx:1440,viewportHeightPx:900,verticalProgress:0});function Zr(e,t=``){let n=k(`div`,`flying-animal-preview ${t}`.trim());n.setAttribute(`aria-hidden`,`true`),n.style.setProperty(`--nyan-width`,`${Xr.spriteWidthPx}px`),n.style.setProperty(`--nyan-height`,`${Xr.spriteHeightPx}px`);let r=k(`div`,`flying-animal-preview-stage`);return r.append(k(`div`,`nyan-trail ${e.trail}`),k(`div`,`nyan-sprite ${e.sprite}`)),n.append(r),n}function Qr(){let e=ft(Vt().flyingAnimalsExcludedSprites);return e===null?null:_t[e]??null}var $r=[],ei=new Set;function ti(e){let t=m.safeParse(e);if(t.success){$r=t.data;for(let e of ei)e()}}function ni(e){return $r.find(t=>t.agent===e)??null}function ri(e){return ei.add(e),()=>{ei.delete(e)}}function ii(e,t=`explicit-state`){let n=t===`dormant-fallback`?e||b.DORMANT:e;return n===b.DORMANT?`start-session`:n===b.COMPLETE?`dismiss`:null}function ai({previousState:e,nextState:t,isPhoneLayout:n,isDocumentVisible:r,isDocumentFocused:i,isActiveViewer:a,hasFocusInsideTerminal:o}){return t!==b.COMPLETE||!e||e===b.COMPLETE||!r?!1:n?a:i&&o}function oi(e,t){if(!e)return null;let n=t.get(e);return!n||(n.currentState||b.DORMANT)===b.DORMANT?null:e}function si(e,t){if(e===t)return!0;let n=`${t} (`;if(!e.startsWith(n)||!e.endsWith(`)`))return!1;let r=e.slice(n.length,-1);return/^\d+$/.test(r)}function ci(e,t){let n=0;for(let r of t)si(r,e)&&n++;return n}function li(e,t){let n=new Set(t);if(!n.has(e))return e;for(let t=2;t<1e3;t++){let r=`${e} (${t})`;if(!n.has(r))return r}return`${e} (${Date.now()})`}function ui(){let e=[];for(let[,t]of P)e.push(t.card.dataset.session??``);return e}function di(e){return ci(e,ui())}function fi(e){return li(e??``,ui())}function L(){return I.snapshot().selectedSessionId}function pi(e){I.dispatch(`selectSession`,e)}function mi(e){return I.subscribe((t,n)=>{n.includes(`selectedSessionId`)&&e(t.selectedSessionId)})}var hi=`modulepreload`,gi=function(e){return`/`+e},_i={},vi=function(e){return e.pathname.endsWith(`.css`)},yi=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},bi=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=gi(t,n);let r=s(t),i=vi(r);return yi(_i,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:hi,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function xi(e,t=`explicit-state`){let n=P.get(e);if(!n)return null;let r=ii(n.currentState,t);return r&&$n(n,{type:r,id:e}),n}function Si(e,{rememberFocus:t=!0}={}){pi(e),t&&fn(e)}function Ci(){return oi(qt(),P)}function wi(e=st){let t=[...P];return In(t,e)}function Ti(e,t){let n=P.get(e);return n?$n(n,t):j(t)?!0:(F({source:`Session action`,sessionId:e,message:`${l} Try the action again once the header shows Connected.`}),!1)}var Ei=`Add session`;function Di(e){return e.type===`add-session-result`&&e.error?e.error:e.type===`error`?e.message:`The session was not added.`}var Oi=!1;function ki(e){Oi||(Oi=!0,bi(()=>import(`./dialogs-CCP1ipXD.js`).then(t=>{Oi=!1,e(t)},()=>{Oi=!1,F({source:Ei,message:`The Add session dialog did not load. Reload the page, then add the session again.`})}),__vite__mapDeps([0,1,2,3,4,5,6])))}function Ai(){ki(e=>e.createAddSessionDialog())}async function ji(e,t){try{let n=fi(t),r=await Ze(`add-session`,{name:n,path:e},{timeoutMs:wn});if(r.type===`add-session-result`&&r.ok){bn(Ei);return}if(r.type===`add-session-result`&&r.reason===`not-git`){ki(t=>t.openAddSessionDialogForFolderWithoutWorktree({name:n,path:e}));return}F({source:Ei,message:Di(r)})}catch(e){F({source:Ei,message:`The session was not added: ${Cn(e,wn)} Add it again once the server answers.`})}}function Mi(e,t){e&&ji(e,t)}async function Ni(e,t){try{let n=await Ze(`quick-session`,{id:e},{timeoutMs:wn});if(n.type===`add-session-result`&&n.ok){bn(Ei),n.sessionId&&t(n.sessionId);return}F({source:Ei,sessionId:e,message:Di(n)})}catch(t){F({source:Ei,sessionId:e,message:`The session was not added: ${Cn(t,wn)} Add it again once the server answers.`})}}function Pi(e,t){Ni(e,t)}var Fi=39e5,Ii=`Remove session`;async function Li(e,t,n,r=[]){try{let i=await Ze(`remove-session`,{id:t,discardWork:n,confirmedKeptPaths:r},{timeoutMs:Fi});if(i.type!==`remove-session-result`||i.ok)return;if(!i.canDiscardWork){F({source:Ii,sessionId:t,message:`"${st(e)}" was not removed: ${i.error??`the server gave no reason`}. Try Remove again from its actions menu.`});return}mr({title:`Remove Session`,message:i.error??`Remove session "${st(e)}"?`,confirmLabel:`Remove`,danger:!0,onConfirm:()=>{Li(e,t,!0,(i.keptPaths??[]).map(e=>e.path))}})}catch(n){F({source:Ii,sessionId:t,message:`"${st(e)}" was not removed: ${Cn(n,Fi)} Try Remove again from its actions menu.`})}}function Ri(e){let t=P.get(e);t&&Li(t,e,!1)}function zi(e,t,n){return{body:String(n||`Session needs attention`),tag:`glimmervoid-${e||``}-${t||``}`,renotify:!0}}var Bi=4e3;function Vi(e,t){return`glimmervoid-notify-claim-${e||``}-${t||``}`}function Hi(e,t,n,r=Bi){try{let i=e.getItem(t);if(i){let e=Number(i);if(Number.isFinite(e)&&n-e<r)return!1}return e.setItem(t,String(n)),!0}catch{return!0}}var Ui=`#plan/`;function Wi(e){return`${Ui}${encodeURIComponent(e)}`}function Gi(e){if(!e.startsWith(Ui))return null;let t=e.slice(6);if(!t||t.includes(`/`))return null;try{return decodeURIComponent(t)||null}catch{return null}}function Ki(){return typeof Notification>`u`?null:Notification}function qi(){return Ki()!==null}function Ji(){let e=Ki();return e?e.permission:`unavailable`}async function Yi(){let e=Ki();if(!e)return`denied`;if(e.permission!=="default")return e.permission;try{return await e.requestPermission()}catch{return e.permission}}function Xi(){return!qi()&&!window.isSecureContext?`Browsers allow desktop notifications only over HTTPS or on localhost, and this page is plain HTTP on another address. Open the dashboard on localhost, or use Telegram.`:qi()?Ji()===`denied`&&At()?`Blocked by the browser. Allow notifications for this site in its site settings.`:null:`This browser does not support desktop notifications.`}function Zi(){return At()&&Ji()==="default"}function Qi(e=()=>{}){let t=k(`div`,`notification-permission`),n=()=>{let r=Xi();if(t.replaceChildren(),t.hidden=!r&&!Zi(),r){t.append(k(`p`,`notification-permission-hint text-xs text-text-muted`,r));return}let i=k(`button`,`btn-dialog btn-dialog-cancel`,`Enable desktop notifications`);i.type=`button`,i.addEventListener(`click`,()=>{i.disabled=!0,Yi().then(()=>{n(),e()})}),t.append(i)};return n(),{element:t,refresh:n}}var $i=`Notifications`,ea=`Desktop notifications are blocked by the browser, so alerts show only in this tab. Allow notifications for this site to get them again.`,ta=new Map,na=!1;function ra(){na||(na=!0,F({source:$i,message:ea,hidesInStreamerMode:!1}))}function ia(e,t){let n=ta.get(e)??new Set;n.add(t),ta.set(e,n),t.addEventListener(`close`,()=>n.delete(t))}function aa(e){let t=ta.get(e);if(t){ta.delete(e);for(let e of t)e.close()}}function oa(e){return!qi()||!At()||document.documentElement.hasAttribute(`data-streamer`)?!1:e||!document.hasFocus()}function sa(e=!1){return oa(e)&&Ji()===`granted`}function ca({session:e,category:t,message:n,kind:r,ignoreFocus:i=!1}={}){let a=Ki();if(!a||!oa(!!i)||(a.permission===`denied`&&ra(),a.permission!==`granted`)||(bn($i),!Hi(window.localStorage,Vi(e,t),Date.now())))return;let o=typeof e==`string`?e:``,s=P.get(o),c=s?st(s):``;try{let i=new a(c||`Glimmervoid`,zi(e,t,n));i.onclick=()=>{window.focus(),r===`plan`&&o&&(window.location.hash=Wi(o)),i.close()},s&&ia(o,i)}catch{}}var la=200;function ua(e,t=null){return`#settings/${encodeURIComponent(e)}${t?`/${encodeURIComponent(t)}`:``}`}function da(e){return/^#settings(?:[/?]|$)/.test(e)}function fa(e){let t=e.trim();return t?`#settings?q=${encodeURIComponent(t)}`:`#settings`}function pa(e){let t=/^#settings(?:\?(.*))?$/.exec(String(e??``));if(!t)return null;let n=new URLSearchParams(t[1]??``).get(`q`)??``;return{query:Array.from(n.trim()).slice(0,la).join(``).trim()}}function ma(e,t,n){let r=k(`a`,`settings-link`,n);return r.href=ua(e,t),r}var ha=Xt(navigator.userAgent),ga=`next-attention-keys`,_a=$t();function va(){return _a}function ya(e,t){t.forEach((t,n)=>{n>0&&e.appendChild(k(`span`,`shortcut-sep`,`+`)),e.appendChild(k(`kbd`,`kbd`,t))})}function ba(e){let t=k(`span`,`shortcut-keys`);return ya(t,e),t}function xa(){let e=ba(nn(`next-attention`,ha,_a));return e.classList.add(ga),e}function Sa(e){_a=e;let t=nn(`next-attention`,ha,e);for(let e of document.querySelectorAll(`.${ga}`))e.replaceChildren(),ya(e,t)}var Ca=`claude-code`;function wa(e,{defaultId:t=Ca}={}){let n=(Array.isArray(e)?e:[]).filter(e=>e?.resolvable&&typeof e.id==`string`&&e.id).map(e=>{let t=String(e.id);return{id:t,label:typeof e.label==`string`&&e.label?e.label:t}}),r=n.some(e=>e.id===t)?t:n.length>0?n[0].id:t;return{show:n.length>1,options:n,selectedId:r}}var Ta=`No supported agent CLI was found on the PATH Glimmervoid runs with. Install Claude Code (or another supported agent), make sure its command is on that PATH, then run glimmervoid doctor to confirm.`;function Ea(e){let t=typeof e==`object`&&e?e:null;return t===null||!Array.isArray(t.agents)||t.error||wa(t.agents).options.length>0?{canSpawn:!0,guidance:``}:{canSpawn:!1,guidance:Ta}}var Da={agent:`upcoming`,repoRoots:`upcoming`,firstSession:`upcoming`};function Oa(e,t){return e<t?`done`:e===t?`current`:`upcoming`}function ka({agentListing:e,repoRoots:t}){let n=Ea(e).canSpawn?t.length===0?2:3:1;return{agent:Oa(1,n),repoRoots:Oa(2,n),firstSession:Oa(3,n)}}var Aa=[[`agent`,`agent`],[`repoRoots`,`repo_roots`],[`firstSession`,`first_session`]];function ja({step:e,state:t}){return`${e}:${t}`}function Ma(e,t){let n=[];for(let[r,i]of Aa){let a=t[r];if(a===`upcoming`)continue;let o={step:i,state:a};e.has(ja(o))||n.push(o)}return n}function Na(e){return wa(typeof e==`object`&&e?e.agents:[]).options.map(e=>e.label).join(`, `)}function Pa(e){return e===1?`1 git repo`:`${e} git repos`}function Fa(e,t){let n=t.trim();return!n||e.includes(n)?null:[...e,n]}var Ia=0,La=`Could not read the current repository roots.`;function Ra(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}async function za(e){let t=await Ze(`get-settings`,{});if(t.type!==`settings`)return La;let n=t.settings.repoRoots;if(!Ra(n))return La;let r=Fa(n,e);if(!r)return null;let i=await Ze(`update-settings`,{settings:{repoRoots:r}});return i.type===`settings-error`?i.message:null}function Ba({onAdded:e}){Ia+=1;let t=`repo-roots-adder-path-${Ia}`,n=k(`div`,`repo-roots-adder`),r=k(`div`,`repo-roots-adder-found`),i=k(`span`,`repo-roots-adder-label`,`FOUND ON THIS MACHINE`),a=k(`ul`,`repo-roots-adder-list`);r.append(i,a),r.hidden=!0;let o=k(`label`,`repo-roots-adder-label`,`TYPE A PATH`);o.htmlFor=t;let s=k(`div`,`repo-roots-adder-row`),c=k(`input`,`dialog-input repo-roots-adder-input`);c.id=t,c.type=`text`,c.placeholder=`~/src`,c.autocomplete=`off`,c.spellcheck=!1;let l=k(`button`,`btn-dialog btn-dialog-cancel`,`Add`);l.type=`button`,l.disabled=!0,s.append(c,l);let u=k(`p`,`repo-roots-adder-error`);u.setAttribute(`role`,`alert`),n.append(r,o,s,u);let d=!1;function f(e){d=e;for(let t of n.querySelectorAll(`button`))t.disabled=e;e||(l.disabled=c.value.trim()===``)}async function p(t,n){if(!d){f(!0),u.textContent=``;try{let r=await za(t);if(r){u.textContent=r;return}c.value=``,e(n)}catch(e){u.textContent=`Could not save the folder: ${e instanceof Error?e.message:String(e)}`}finally{f(!1)}}}c.addEventListener(`input`,()=>{l.disabled=d||c.value.trim()===``}),c.addEventListener(`keydown`,e=>{e.key===`Enter`&&c.value.trim()!==``&&(e.preventDefault(),p(c.value.trim(),`typed`))}),l.addEventListener(`click`,()=>{p(c.value.trim(),`typed`)});function m(e){a.textContent=``;for(let t of e){let e=k(`li`,`repo-roots-adder-suggestion`),n=k(`button`,`btn-dialog btn-dialog-cancel`,`Add`);n.type=`button`,n.setAttribute(`aria-label`,`Add ${t.label}`),n.addEventListener(`click`,()=>{p(t.path,`suggested`)}),e.append(k(`span`,`repo-roots-adder-path`,t.label),k(`span`,`repo-roots-adder-count`,Pa(t.gitRepoCount)),n),a.append(e)}r.hidden=e.length===0,o.textContent=e.length>0?`OR TYPE A PATH`:`TYPE A PATH`}return{element:n,setSuggestions:m}}var Va=`npm install -g @anthropic-ai/claude-code`,Ha={done:`<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="Done"><circle cx="12" cy="12" r="10"></circle><path d="M7.5 12.5l3 3 6-6.5"></path></svg>`,current:`<svg width="18" height="18" viewBox="0 0 24 24" role="img" aria-label="Needed"><path d="M12 3l9 9-9 9-9-9z" fill="currentColor"></path></svg>`,upcoming:`<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" role="img" aria-label="Not started"><circle cx="12" cy="12" r="10"></circle></svg>`},Ua=null,Wa=null,Ga=null,Ka=null,qa={steps:Da,agentSummary:``,repoRoots:[]},Ja=0,Ya=new Set,Xa=vn(`first-run-load-status`),Za=Qi();function Qa(e){j({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`onboarding`,action:e}})}function $a(e){for(let t of Ma(Ya,e))j({type:`dashboard-telemetry`,event:`onboarding_step`,properties:t})&&Ya.add(ja(t))}function eo({title:e,state:t,summary:n,badge:r,body:i}){let a=k(`li`,`first-run-step`);a.dataset.state=t,t===`current`&&a.setAttribute(`aria-current`,`step`);let o=k(`div`,`first-run-step-head`),s=k(`span`,`first-run-step-icon`);if(s.innerHTML=Ha[t],o.append(s,k(`span`,`first-run-step-title`,e)),t===`done`&&n&&o.append(k(`span`,`first-run-step-summary`,n)),t===`current`&&r&&o.append(k(`span`,`first-run-step-badge`,r)),a.append(o),t!==`current`)return a;let c=k(`div`,`first-run-step-body`);return c.append(...i()),a.append(c),a}function to(){let e=k(`div`,`first-run-step-actions`);return Ga=k(`button`,`btn-dialog btn-dialog-cancel`,`Rescan`),Ga.type=`button`,Ga.addEventListener(`click`,()=>{Qa(`rescan`),ao({rescanAgents:!0})}),e.append(Ga,k(`span`,`first-run-step-hint`,`Any other terminal agent can be added under customAgents.`)),[k(`p`,`first-run-step-text`,`No supported agent is on PATH. Install Claude Code, Codex or Grok, then rescan. Rescan still finding nothing means the CLI went into a folder the server cannot see: restart Glimmervoid from a terminal where the command runs.`),k(`code`,`first-run-command`,Va),e]}function no(){let e=Ka??Ba({onAdded:e=>{Qa(e===`typed`?`add-root-typed`:`add-root-suggested`),ao({rescanAgents:!1})}});return Ka=e,[k(`p`,`first-run-step-text`,`The folder that holds your git checkouts. Each subfolder becomes a project you can start a session in.`),e.element]}function ro(){let e=k(`div`,`first-run-step-actions`),t=k(`button`,`btn-dialog btn-dialog-confirm`,`+ Session`);t.type=`button`,t.addEventListener(`click`,()=>{Qa(`add-session`),Ai()});let n=k(`span`,`first-run-step-hint`,`Folders and agents can change later in `);n.append(ma(`machine-sessions`,`repository-roots`,`Settings > Sessions`),`.`),e.append(t,n);let r=k(`p`,`first-run-step-text`,`Run a few at once. When one needs you, `);return r.append(xa(),` jumps straight to it from any tab.`),[k(`p`,`first-run-step-text`,`Pick a project and an agent. The session runs in its own git worktree, so your checkout is never touched.`),r,e]}function io(){if(!Wa)return;let{steps:e,agentSummary:t,repoRoots:n}=qa;Wa.replaceChildren(eo({title:`1. Agent CLI`,state:e.agent,summary:t,badge:`MISSING`,body:to}),eo({title:`2. Repository roots`,state:e.repoRoots,summary:n.join(`, `),badge:`NEEDED`,body:no}),eo({title:`3. First session`,state:e.firstSession,summary:``,badge:``,body:ro}))}async function ao({rescanAgents:e}){Ja+=1;let t=Ja;Ga&&(Ga.disabled=!0);try{let[n,r]=await Promise.all([Ze(`list-agents`,e?{rescan:!0}:{},{timeoutMs:wn}),Ze(`scan-repo-roots`,{includeSuggestions:!0},{timeoutMs:wn})]);if(t!==Ja)return;let i=r.type===`repo-roots-scanned`,a=i?r.directories.map(e=>e.root):[];qa={steps:ka({agentListing:n,repoRoots:a}),agentSummary:Na(n),repoRoots:a},Xa.clear(),io(),$a(qa.steps),Ka?.setSuggestions(i?r.suggestions??[]:[])}catch(e){if(Ga&&(Ga.disabled=!1),t!==Ja)return;Xa.show(`error`,`The checklist could not load: ${Cn(e,wn)} It loads again once the server answers. If it stays like this, check the terminal running Glimmervoid, or run glimmervoid doctor.`)}}function oo(){if(Ua)return Ua;let e=k(`section`,`first-run-checklist`);e.setAttribute(`aria-labelledby`,`first-run-title`);let t=k(`h2`,`first-run-title`,`Get to your first session`);t.id=`first-run-title`,Wa=k(`ol`,`first-run-steps`);let n=k(`p`,`first-run-footer`,`This list goes away once a session exists. Something off? Run `);return n.append(k(`code`,null,`glimmervoid doctor`),` in a terminal.`),e.append(k(`span`,`first-run-eyebrow`,`FIRST RUN`),t,k(`p`,`first-run-intro`,`Glimmervoid runs the agent CLIs you already have, inside the repositories you point it at. Two checks, then start.`),Wa,Xa.element,Za.element,n),Ua=e,io(),e}function so(e,t){if(!t){Ua?.parentElement===e&&(Ua.hidden=!0);return}let n=oo(),r=!n.hidden&&n.parentElement===e;n.parentElement!==e&&e.append(n),n.hidden=!1,Za.refresh(),r||ao({rescanAgents:!1})}function co(){Ua&&!Ua.hidden&&Ua.isConnected&&ao({rescanAgents:!1})}var lo=new Set([`http:`,`https:`]);function uo(e){let t;try{t=new URL(e)}catch{return null}return lo.has(t.protocol)?t.href:null}var fo=2,po=8,mo=/^ {0,3}(`{3,}|~{3,})([^`]*)$/,ho=/^(\s*)(?:([-+*])|(\d+)[.)])\s+(.+)$/,go=/^ {0,3}(?:(?:\*\s*){3,}|(?:-\s*){3,}|(?:_\s*){3,})$/,_o=/^:?-{3,}:?$/,vo=/^[A-Za-z0-9_+#.-]{1,32}$/;function yo(e){return ne(e,{overlongLine:`reject`})}function bo(e){let t=e.trim().split(/\s+/)[0]??``;return vo.test(t)?t:``}function xo(e,t){if(!t)return;let n=e.at(-1);n?.type===`text`?n.text+=t:e.push({type:`text`,text:t})}function So(e,t){return e.startsWith(`**`,t)?`**`:e.startsWith(`__`,t)?`__`:null}function Co(e,t){return e.startsWith(`*`,t)?`*`:e.startsWith(`_`,t)?`_`:null}function wo(e,t,n){let r=e.indexOf(t,n);return r>n?r:-1}function To(e,t){let n=e.indexOf(t);return function(r){return n===-1?-1:(n>=r||(n=e.indexOf(t,r)),n)}}function Eo(e,t){let n=1;for(let r=t;r<e.length;r++){let t=e[r];if(t===`(`&&n++,t===`)`&&n--,n===0)return r;if(n>fo)return-1}return-1}function Do(e,t,n){if(e[t]!==`[`)return null;let r=n(t+1);if(r<=t+1||e[r+1]!==`(`)return null;let i=Eo(e,r+2);return i===-1?null:{label:e.slice(t+1,r),target:e.slice(r+2,i),end:i+1}}function Oo(e){let t=[],n=To(e,`]`),r=0;for(;r<e.length;){let i=Do(e,r,n);if(i){let e=uo(i.target.trim());e&&t.push({type:`link`,href:e,children:Oo(i.label)}),e||xo(t,i.label),r=i.end;continue}if(e.startsWith("`",r)){let n=wo(e,"`",r+1);if(n!==-1){t.push({type:`code`,text:e.slice(r+1,n)}),r=n+1;continue}}let a=So(e,r);if(a){let n=wo(e,a,r+a.length);if(n!==-1){t.push({type:`strong`,children:Oo(e.slice(r+a.length,n))}),r=n+a.length;continue}}let o=Co(e,r);if(o){let n=wo(e,o,r+1);if(n!==-1){t.push({type:`emphasis`,children:Oo(e.slice(r+1,n))}),r=n+1;continue}}xo(t,e[r]),r++}return t}function ko(e){return e.map(e=>e.type===`text`||e.type===`code`?e.text:ko(e.children)).join(``)}var Ao=`plan-h-`;function jo(e,t){let n=e.toLowerCase().normalize(`NFKD`).replace(/[\u0300-\u036f]/g,``).replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`section`,r=(t.slugCounts.get(n)??0)+1;return t.slugCounts.set(n,r),`${Ao}${r===1?n:`${n}-${r}`}`}function Mo(e){if(typeof e!=`string`||!e.includes(`|`))return!1;let t=No(e);return t.length<2?!1:t.every(e=>_o.test(e))}function No(e){let t=e.trim();return t.startsWith(`|`)&&(t=t.slice(1)),t.endsWith(`|`)&&(t=t.slice(0,-1)),t.split(`|`).map(e=>e.trim())}function Po(e){let t=ho.exec(e);return t?{indent:t[1].replace(/\t/g,` `).length,ordered:!!t[3],content:t[4]}:null}function Fo(e,t,n,r){let i=Po(e[t]);if(!i)return null;let a=[],o=i.ordered,s=i.indent,c=t;for(;c<e.length;){let t=Po(e[c]);if(!t||t.indent<s)break;if(t.indent>s){if(r>=po)break;let t=Fo(e,c,n,r+1);if(!t||a.length===0)break;a.at(-1)?.children.push(t.block),c=t.next}else{if(t.ordered!==o)break;a.push({children:[{type:`paragraph`,children:Oo(t.content)}]}),c++}}return{block:{type:`list`,ordered:o,items:a},next:c}}function Io(e,t){let n=e[t]??``;return n.trim()===``||yo(n)||mo.test(n)||go.test(n)||Po(n)||/^ {0,3}>/.test(n)?!0:t+1<e.length&&n.includes(`|`)&&Mo(e[t+1])}function Lo(e,t,n){let r=[],i=0;for(;i<e.length;){let a=e[i];if(a.trim()===``){i++;continue}let o=mo.exec(a);if(o){let t=[],n=o[1][0],a=o[1].length;for(i++;i<e.length;){let r=/^ {0,3}(`{3,}|~{3,})\s*$/.exec(e[i]);if(r&&r[1][0]===n&&r[1].length>=a)break;t.push(e[i]),i++}i<e.length&&i++,r.push({type:`code`,language:bo(o[2]),text:t.join(`
3
+ `)});continue}let s=yo(a);if(s){let e=Oo(s.text);r.push({type:`heading`,level:s.level,id:jo(ko(e),t),children:e}),i++;continue}if(go.test(a)){r.push({type:`rule`}),i++;continue}if(i+1<e.length&&a.includes(`|`)&&Mo(e[i+1])){let t=No(a).map(Oo),n=[];for(i+=2;i<e.length&&e[i].includes(`|`)&&e[i].trim()!==``;)n.push(No(e[i]).map(Oo)),i++;r.push({type:`table`,header:t,rows:n});continue}let c=Fo(e,i,t,n);if(c){r.push(c.block),i=c.next;continue}if(n<po&&/^ {0,3}>/.test(a)){let a=[];for(;i<e.length&&/^ {0,3}>/.test(e[i]);)a.push(e[i].replace(/^ {0,3}> ?/,``)),i++;r.push({type:`blockquote`,blocks:Lo(a,t,n+1)});continue}let l=[a.trim()];for(i++;i<e.length&&!Io(e,i);)l.push(e[i].trim()),i++;r.push({type:`paragraph`,children:Oo(l.join(` `))})}return r}function Ro(e){return Lo(e.replace(/\r\n?/g,`
4
+ `).split(`
5
+ `),{slugCounts:new Map},0)}function zo(e){let t=[],n={heading:null,id:null,level:0,blocks:[]},r=()=>{(n.heading!==null||n.blocks.length!==0)&&t.push(n)};for(let t of e)t.type===`heading`?(r(),n={heading:ko(t.children),id:t.id,level:t.level,blocks:[t]}):n.blocks.push(t);return r(),t}function Bo(e,t){for(let n of t){if(n.type===`text`){e.append(document.createTextNode(n.text));continue}if(n.type===`code`){e.append(k(`code`,`plan-inline-code`,n.text));continue}if(n.type===`emphasis`){let t=k(`em`);Bo(t,n.children),e.append(t);continue}if(n.type===`strong`){let t=k(`strong`);Bo(t,n.children),e.append(t);continue}let t=k(`a`,`plan-link`);t.href=n.href,t.target=`_blank`,t.rel=`noopener noreferrer`,Bo(t,n.children),e.append(t)}}function Vo(e){let t=k(`li`);return Ho(t,e.children),t}function Ho(e,t){for(let n of t)if(n.type===`heading`){let t=k(`h${n.level}`,`plan-heading`);t.id=n.id,Bo(t,n.children),e.append(t)}else if(n.type===`paragraph`){let t=k(`p`,`plan-paragraph`);Bo(t,n.children),e.append(t)}else if(n.type===`list`){let t=n.ordered?k(`ol`,`plan-list`):k(`ul`,`plan-list`);t.append(...n.items.map(Vo)),e.append(t)}else if(n.type===`code`){let t=k(`pre`,`plan-code`),r=k(`code`,n.language?`language-${n.language}`:null,n.text);t.append(r),e.append(t)}else if(n.type===`table`){let t=k(`div`,`plan-table-wrap`),r=k(`table`,`plan-table`),i=k(`thead`),a=k(`tr`);for(let e of n.header){let t=k(`th`);Bo(t,e),a.append(t)}i.append(a);let o=k(`tbody`);for(let e of n.rows){let t=k(`tr`);for(let n of e){let e=k(`td`);Bo(e,n),t.append(e)}o.append(t)}r.append(i,o),t.append(r),e.append(t)}else if(n.type===`blockquote`){let t=k(`blockquote`,`plan-blockquote`);Ho(t,n.blocks),e.append(t)}else e.append(k(`hr`,`plan-rule`))}function Uo(e){let t=k(`div`,`plan-document`);return Ho(t,e),t}function Wo(e,{hasComment:t,isComposing:n,onComment:r,attachmentFor:i}){let a=k(`div`,`plan-document`),o=[];for(let s of e){let e=k(`section`,`plan-section`);e.dataset.selected=`false`,e.addEventListener(`click`,()=>{for(let t of o)t.dataset.selected=String(t===e)}),o.push(e);let c=k(`div`,`plan-section-head`),l=s.blocks[0],u=l?.type===`heading`;if(u&&Ho(c,[l]),u||(e.id=`plan-introduction`),!t(s)&&!n(s)){let e=k(`button`,`plan-section-comment`,`Comment`);e.type=`button`,e.setAttribute(`aria-label`,`Comment on ${s.heading??`Introduction`}`),e.addEventListener(`click`,()=>r(s)),c.append(e)}let d=k(`div`,`plan-section-body`);Ho(d,u?s.blocks.slice(1):s.blocks),e.append(c,d);let f=i(s);f&&e.append(f),a.append(e)}return a}var Go={added:`+`,removed:`-`,unchanged:` `,skipped:` `};function Ko(e){let t=k(`div`,`plan-diff`);for(let n of e.lines){let e=k(`div`,`plan-diff-line plan-diff-${n.kind}`),r=k(`span`,`plan-diff-gutter`,Go[n.kind]);r.setAttribute(`aria-hidden`,`true`),e.append(r,k(`span`,`plan-diff-text`,n.text)),t.append(e)}return t}var qo=`glimmervoid-streamer-mode`,Jo=new Set,Yo=Gt(qo,!1)===!0,Xo=null;function Zo(e){document.documentElement.toggleAttribute(`data-streamer`,e),Xo?.setAttribute(`aria-pressed`,String(e))}Zo(Yo);function Qo(){return Yo}function $o(e){if(Bt(qo,e),e!==Qo()){Yo=e,Zo(e);for(let t of Jo)t(e)}}function es(e){return Jo.add(e),()=>Jo.delete(e)}async function ts(e){try{let t=await Ze(`update-settings`,{settings:{streamerMode:e}},{timeoutMs:wn});return t.type===`settings-error`?String(t.message):($o(e),``)}catch(e){return Cn(e,wn)}}var ns=`Streamer mode`;async function rs(){let e=!Qo();e&&$o(!0);let t=await ts(e);t?F({source:ns,message:`${e?`Streamer mode is on in this browser only. The server did not save it`:`Streamer mode is still on. The server did not save the change`}: ${t} Toggle it again to retry.`,hidesInStreamerMode:!1}):bn(ns)}function is(){rs()}function as(e){Xo=e,Zo(Qo()),e.addEventListener(`click`,is)}var os=new Map,ss=null;function cs(e){return os.get(e)??[]}function ls(e){return cs(e).length>0}function us(e){M(e)?.btnDocs.classList.toggle(`visible`,ls(e))}function ds(e){let t=cs(e.sessionId);e.select.replaceChildren(...t.map(t=>{let n=k(`option`,null,t.name);return n.value=t.path,n.selected=t.path===e.docPath,n})),e.select.hidden=t.length<2,e.title.textContent=t.find(t=>t.path===e.docPath)?.name??e.title.textContent}function fs(e){let t=cs(e.sessionId).some(t=>t.path===e.docPath);e.btnEdit.setAttribute(`aria-pressed`,String(e.mode===`edit`)),e.btnPreview.setAttribute(`aria-pressed`,String(e.mode===`preview`)),e.textarea.hidden=e.mode!==`edit`,e.preview.hidden=e.mode!==`preview`,e.select.disabled=e.isBusy,e.btnReload.disabled=e.isBusy||!t,e.btnSave.disabled=e.isBusy||!t||e.baseHash===null||!e.hasUnsavedChanges}function ps(e,t,n=`quiet`){e.status.textContent=t,e.status.dataset.tone=n}function ms(e){e.preview.replaceChildren(Uo(Ro(e.textarea.value)))}function hs(e,t){mr({title:e,message:`Your unsaved edits will be lost.`,confirmLabel:`Discard`,danger:!0,onConfirm:t})}function gs(e,t,n){e.hasUnsavedChanges?hs(t,n):n()}async function _s(e,t){try{return{reply:await Ze(e,t,{timeoutMs:wn}),failureText:null}}catch(e){return{reply:null,failureText:Cn(e,wn)}}}async function vs(e,t){e.docPath=t,e.isBusy=!0,e.baseHash=null,e.textarea.readOnly=!0,ds(e),ps(e,`Loading`),fs(e);let{reply:n,failureText:r}=await _s(`session-doc-read`,{id:e.sessionId,path:t});if(ss!==e||e.docPath!==t)return;e.isBusy=!1,e.textarea.readOnly=!1;let i=n?.type===`session-doc-response`?n:null;!i?.ok||i.text===void 0||i.hash===void 0?(ps(e,i?.error||r||`Could not open this doc`,`warn`),fs(e)):(e.textarea.value=i.text,e.baseHash=i.hash,e.hasUnsavedChanges=!1,e.mode===`preview`&&ms(e),ps(e,``),fs(e))}async function ys(e){if(e.btnSave.disabled||e.baseHash===null)return;e.isBusy=!0,ps(e,`Saving`),fs(e);let t=e.docPath,n=e.textarea.value,{reply:r,failureText:i}=await _s(`session-doc-save`,{id:e.sessionId,path:t,text:n,baseHash:e.baseHash});if(ss!==e||e.docPath!==t)return;e.isBusy=!1;let a=r?.type===`session-doc-save-result`?r:null;!a?.ok||a.hash===void 0?(ps(e,a?.conflict?`The agent changed this file since you opened it. Reload to see its version.`:a?.error||i||`Save failed`,`warn`),fs(e)):(e.baseHash=a.hash,e.hasUnsavedChanges=e.textarea.value!==n,ps(e,e.hasUnsavedChanges?`Unsaved changes`:`Saved`),fs(e))}function bs(e,t){e.mode=t,t===`preview`&&ms(e),fs(e),t===`edit`&&e.textarea.focus()}function xs(e,t){let n=k(`button`,`plan-control ${t}`,e);return n.type=`button`,n}function Ss(e){let t=cs(e)[0];if(!t||ss)return;let n=()=>gs(y,`Close this doc?`,()=>y.close()),r=_r({dialogClass:`doc-editor`,closeOnBackdrop:!1,onEscape:n}),i=`doc-editor-title-${e}`,a=k(`h3`,`doc-editor-title`,t.name);a.id=i;let o=k(`select`,`plan-control doc-editor-picker`);o.setAttribute(`aria-label`,`Doc`);let s=k(`span`,`doc-editor-status`);s.setAttribute(`role`,`status`);let c=xs(`Edit`,`doc-editor-mode`),l=xs(`Preview`,`doc-editor-mode`),u=xs(`Reload`,`doc-editor-reload`),d=xs(`Save`,`doc-editor-save`),f=xs(`Close`,`doc-editor-close`),p=k(`div`,`doc-editor-modes`);p.append(c,l);let m=k(`div`,`doc-editor-actions`);m.append(s,u,d,f);let h=k(`div`,`doc-editor-header`);h.append(a,o,p,m);let g=k(`textarea`,`plan-editor doc-editor-text`);g.spellcheck=!0,g.setAttribute(`aria-labelledby`,i);let _=k(`div`,`doc-editor-preview`),v=k(`div`,`doc-editor-body`);v.append(g,_),r.dialog.append(h,v),vr(r.dialog,i);let y={sessionId:e,docPath:t.path,baseHash:null,hasUnsavedChanges:!1,isBusy:!1,mode:Qo()?`preview`:`edit`,title:a,select:o,textarea:g,preview:_,status:s,btnEdit:c,btnPreview:l,btnReload:u,btnSave:d,close:()=>{ss=null,r.close()}};ss=y,g.addEventListener(`input`,()=>{y.hasUnsavedChanges||(y.hasUnsavedChanges=!0,ps(y,`Unsaved changes`),fs(y))}),g.addEventListener(`keydown`,e=>{(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`s`&&(e.preventDefault(),ys(y))}),o.addEventListener(`change`,()=>{let e=o.value;o.value=y.docPath,gs(y,`Open another doc?`,()=>{vs(y,e)})}),c.addEventListener(`click`,()=>bs(y,`edit`)),l.addEventListener(`click`,()=>bs(y,`preview`)),u.addEventListener(`click`,()=>{gs(y,`Reload this doc?`,()=>{vs(y,y.docPath)})}),d.addEventListener(`click`,()=>{ys(y)}),f.addEventListener(`click`,n),vs(y,t.path),y.mode===`edit`&&g.focus()}function Cs(e){ss&&ss.sessionId===e&&(ds(ss),fs(ss),!cs(e).some(e=>e.path===ss?.docPath)&&ps(ss,`This doc is no longer surfaced, so it cannot be saved.`,`warn`))}function ws(e){os.set(e.id,e.docs),e.docs.length===0&&os.delete(e.id),us(e.id),Cs(e.id)}function Ts(e){let t=[...os.keys()];os.clear();for(let[t,n]of Object.entries(e.sessions))os.set(t,n);for(let e of new Set([...t,...os.keys()]))us(e),Cs(e)}var Es=new Map,Ds=new Set,Os=[],ks=[],As=null,js=!1;function Ms(e){return Es.get(e)??[]}function Ns(e){return Ms(e).length>0}function Ps(e){return Ds.has(e)}function Fs(e){Os.push(e)}function Is(e){ks.push(e)}function Ls(e){let t=M(e);t&&(t.btnShown.classList.toggle(`visible`,Ns(e)),t.shownUnopenedDot.hidden=!Ps(e))}function Rs(e,t){return`/shown/${encodeURIComponent(e)}/${encodeURIComponent(t.id)}`}function zs(e){window.open(e,`_blank`,`noopener`)}function Bs(e){return e.pageTitle??e.name}function Vs(e,t,n){let r=Rs(e,t);if(t.kind===`image`){let e=k(`img`,n?`shown-thumb-media`:`shown-stage-media`);return e.src=r,e.alt=t.caption??t.name,e.loading=`lazy`,e.decoding=`async`,e}if(t.kind===`video`){let e=k(`video`,n?`shown-thumb-media`:`shown-stage-media`);return e.src=r,e.preload=`metadata`,e.muted=n,e.controls=!n,e.playsInline=!0,e}let i=k(`div`,n?`shown-thumb-page`:`shown-stage-page`);if(i.append(k(`span`,`shown-page-kind`,`HTML page`),k(`span`,`shown-page-title`,Bs(t))),n)return i;let a=k(`button`,`plan-control shown-open-page`,`Open page`);return a.type=`button`,a.addEventListener(`click`,()=>zs(r)),i.append(k(`span`,`shown-page-name`,t.name),a),i}function Hs(e){let t=Ms(e.sessionId);return t.find(t=>t.id===e.selectedFileId)??t.at(-1)??null}function Us(e,t){let n=[...Ms(e.sessionId)].reverse();e.strip.hidden=n.length<2,e.strip.replaceChildren(...n.map(n=>{let r=k(`button`,`shown-thumb`);return r.type=`button`,r.title=n.caption??Bs(n),r.setAttribute(`aria-label`,Bs(n)),r.setAttribute(`aria-pressed`,String(n.id===t.id)),r.append(Vs(e.sessionId,n,!0)),r.addEventListener(`click`,()=>Gs(e,n.id)),r}))}function Ws(e){let t=Hs(e);if(!t){e.close();return}e.selectedFileId=t.id,e.title.textContent=Bs(t),e.stage.replaceChildren(Vs(e.sessionId,t,!1));let n=t.caption?[k(`p`,`shown-caption`,t.caption)]:[];e.details.replaceChildren(...n,k(`p`,`shown-meta`,`${t.name}, shown ${at(t.shownAt)}`)),Us(e,t)}function Gs(e,t){e.selectedFileId=t,Ws(e)}function Ks(e){if(Ds.delete(e)){Ls(e);for(let t of Os)t(e,[])}}function qs(e,t){let n=k(`button`,`plan-control ${t}`,e);return n.type=`button`,n}function Js(e,t=null){let n=Ms(e).at(-1);if(!n)return;As?.close();let r=_r({dialogClass:`shown-lightbox`,closeOnBackdrop:!1,onEscape:()=>f.close()}),i=`shown-lightbox-title-${e}`,a=k(`h3`,`shown-lightbox-title`);a.id=i;let o=qs(`Open full size`,`shown-open-full-size`),s=qs(`Close`,`shown-close`),c=k(`div`,`shown-lightbox-header`);c.append(a,o,s);let l=k(`div`,`shown-stage`),u=k(`div`,`shown-details`),d=k(`div`,`shown-strip`);d.setAttribute(`aria-label`,`Shown files`),r.dialog.append(c,l,u,d),vr(r.dialog,i);let f={sessionId:e,selectedFileId:t??n.id,title:a,stage:l,details:u,strip:d,btnOpenFullSize:o,close:()=>{As===f&&(As=null),r.close()}};As=f,o.addEventListener(`click`,()=>{let t=Hs(f);t&&zs(Rs(e,t))}),s.addEventListener(`click`,()=>f.close()),r.overlay.addEventListener(`click`,e=>{e.target===r.overlay&&f.close()}),Ws(f),Ks(e)}function Ys(e){return e.slice(-50)}function Xs(e,t){if(t.length===0)return;let n=As?.sessionId===e;n||Ds.add(e),Ls(e),n&&As&&Ws(As);for(let n of Os)n(e,t)}function Zs(e){let t=new Set(Ms(e.id).map(e=>e.id)),n=e.files.filter(e=>!t.has(e.id));if(Es.set(e.id,Ys([...Ms(e.id),...n])),Xs(e.id,n),n.length!==0)for(let t of ks)t(e.id,n)}function Qs(e){let t=new Map(Es),n=js;js=!0,Es.clear();for(let[t,n]of Object.entries(e.sessions))Es.set(t,Ys(n));for(let e of new Set([...t.keys(),...Es.keys()])){Ns(e)||Ds.delete(e);let r=new Set((t.get(e)??[]).map(e=>e.id)),i=n?Ms(e).filter(e=>!r.has(e.id)):[];Ls(e),Xs(e,i),As?.sessionId===e&&Ws(As)}}function $s({dialogClass:e,titleText:t,titleId:n,body:r,onCloseRequest:i}){let a=_r({dialogClass:e,closeOnBackdrop:!1,onEscape:i}),o=k(`div`,`coherence-journal-header`),s=k(`h3`,`dialog-title`,t);s.id=n;let c=k(`button`,`btn-dialog btn-dialog-cancel`,`Close`);return c.type=`button`,o.append(s,c),a.dialog.append(o,...r),vr(a.dialog,s.id),c.addEventListener(`click`,i),a.overlay.addEventListener(`click`,e=>{e.target===a.overlay&&i()}),{close:a.close,focusClose:()=>c.focus()}}function ec({requestPrefix:e,dialogClass:t,titleText:n,unavailableLabel:r,timeoutMs:i}){let a=null;function o(e){e.timer!==null&&clearTimeout(e.timer),e.timer=null,e.requestId=null}function s({sessionId:s,status:c,body:l,parts:u,paintBeforeRequest:d,buildRequest:f}){a?.close();let p=Je(e),m=$s({dialogClass:t,titleText:n,titleId:`${p}-title`,body:l,onCloseRequest:()=>h.close()}),h={sessionId:s,status:c,parts:u,requestId:p,timer:null,close:()=>{o(h),a===h&&(a=null),m.close()}};a=h,d?.(),m.focusClose(),j(f(p))?h.timer=setTimeout(()=>{h.requestId=null,h.timer=null,c.textContent=`${r}: request timed out`},i):(h.requestId=null,c.textContent=`${r}: not connected`)}function c(e){let t=a;return!t||t.sessionId!==e.id||t.requestId===null||t.requestId!==e.requestId?null:(o(t),t)}return{open:s,settleResponse:c,currentPanel:()=>a}}var tc=2,nc={needsYou:1,broken:2,askedOfYou:3,waiting:4,settled:5},rc={danger:nc.broken,warn:nc.askedOfYou,wait:nc.waiting,ok:nc.settled,muted:nc.settled};function ic(e){return e?rc[e]:nc.settled}function ac(e){let t=[...e].sort((e,t)=>e.tier-t.tier),n=t.slice(tc);return{visible:t.slice(0,tc),overflowCount:n.length,overflowHoverText:n.map(e=>`${e.text} ${e.hoverText}`).join(`
6
+ `)}}function oc(e){return e.map(e=>[e.key,e.text,e.hoverText,e.look?.icon,e.look?.tone,e.tier].join(`|`)).join(`
7
+ `)}var sc={decision:`Decision`,retraction:`Retraction`,conjecture:`Conjecture`,resolution:`Resolution`,dismissal:`Dismissal`,defect:`Defect`,experiment:`Experiment`,close:`Close`,unable:`Unable`,escalation:`Escalation`,acknowledgement:`Acknowledgement`,enactment:`Enactment`};function cc(e){return e?.active!==!1||e.reason===ie.notInstalled?[]:[{key:`coherence-hooks`,text:`Hooks off`,hoverText:`Coherence hooks not active: ${e.reason}${e.version?` (${e.version})`:``}`,look:{icon:`failed`,tone:`danger`},tier:nc.broken}]}function lc(e){let t=Ce.safeParse(e.kind);return{heading:`${t.success?sc[t.data]:e.kind} | ${e.at??`Unknown time`} | ${e.id}`,text:e.text,detail:e.detail,supersedes:e.supersedes?`Supersedes: ${e.supersedes}`:null}}function uc(e,t){let n=[];return e?.active===!1&&n.push(`Coherence hooks not active: ${e.reason}${e.version?` (${e.version})`:``}`),t&&!t.journal.ok&&n.push(`Journal unavailable: ${t.journal.reason}`),{lines:n}}var dc=new Map,fc=new Map,pc=ec({requestPrefix:`coherence-journal`,dialogClass:`dialog coherence-journal-drawer`,titleText:`Coherence journal`,unavailableLabel:`Journal unavailable`,timeoutMs:5e3});function mc(e,t){fc.delete(e),t&&fc.set(e,t),bc(e)}function hc(e){dc.delete(e),fc.delete(e);let t=pc.currentPanel();t?.sessionId===e&&t.close()}function gc(e){let t=dc.get(e.id);t&&t.updatedAt>e.updatedAt||(dc.set(e.id,e),bc(e.id))}function _c(e){dc.clear();for(let[t,n]of Object.entries(e.sessions))dc.set(t,n);let t=pc.currentPanel();t&&bc(t.sessionId)}function vc(e){return cc(fc.get(e)??null).map(t=>({...t,onActivate:()=>xc(e)}))}function yc(e){return dc.get(e)?.journal.ok===!0}function bc(e){let t=pc.currentPanel();if(!t||t.sessionId!==e)return;let n=uc(fc.get(e)??null,dc.get(e)??null);t.parts.reading.replaceChildren(...n.lines.map(e=>k(`p`,null,e)))}function xc(e){let t=k(`div`,`coherence-journal-reading`),n=k(`p`,`coherence-journal-status`,`Loading journal`);n.setAttribute(`role`,`status`);let r=k(`div`,`coherence-journal-entries`);pc.open({sessionId:e,status:n,body:[t,n,r],parts:{reading:t,entries:r},paintBeforeRequest:()=>bc(e),buildRequest:t=>({type:`session-coherence-journal`,id:e,requestId:t})})}function Sc(e){let t=pc.settleResponse(e);t&&(e.ok?(t.status.textContent=e.entries.length===0?`No journal entries`:`${e.entries.length} journal entries (up to 200)`,t.parts.entries.replaceChildren(...e.entries.map(e=>{let t=lc(e),n=k(`article`,`coherence-journal-entry`);return n.append(k(`h4`,null,t.heading),k(`p`,null,t.text)),t.detail&&n.append(k(`p`,null,t.detail)),t.supersedes&&n.append(k(`p`,null,t.supersedes)),n}))):t.status.textContent=`Journal unavailable: ${e.error||`could not read journal`}`)}var Cc=/\bElectron\/\d/,wc=new Set([`localhost`,`127.0.0.1`]);function Tc(e){return Cc.test(e)}function Ec({userAgent:e,pageHostname:t}){return Tc(e)&&wc.has(t)}function Dc(e){return uo(e)!==null}var Oc=new Set([0,1]);function kc({button:e,opensInNewTab:t}){return t&&Oc.has(e)}function Ac(){return Ec({userAgent:navigator.userAgent,pageHostname:location.hostname})}function jc(e){window.open(e,`_blank`,`noopener,noreferrer`)}async function Mc(e){try{let t=await qe();return(await fetch(`/open-external`,{method:`POST`,credentials:`same-origin`,cache:`no-store`,headers:{"content-type":`application/json`,"x-glimmervoid-page-token":t},body:JSON.stringify({url:e})})).ok}catch{return!1}}function Nc(e){!Ac()||!Dc(e)?jc(e):Mc(e).then(t=>{t||jc(e)})}function Pc(e){if(e.defaultPrevented)return;let t=e.target instanceof Element?e.target.closest(`a[href]`):null;t instanceof HTMLAnchorElement&&kc({button:e.button,opensInNewTab:t.target===`_blank`})&&Dc(t.href)&&(e.preventDefault(),Nc(t.href))}function Fc(e){Ac()&&(e.addEventListener(`click`,Pc,!0),e.addEventListener(`auxclick`,Pc,!0))}var Ic=`#c084fc`,Lc=Object.freeze({failed:{icon:de[b.FAILED],color:`#ef4444`},waiting:{icon:de[b.WAITING],color:`#f59e0b`}});function Rc(e){let{waitingCount:t,failedCount:n}=Zn(Array.isArray(e)?e:[]);return t>0?`waiting`:n>0?`failed`:`idle`}function zc(e){return Ae[e].map(({tag:e,attributes:t})=>`<${e} ${Object.entries(t).map(([e,t])=>`${e}="${t}"`).join(` `)}/>`).join(``)}function Bc(e){if(e===`idle`)return`<path d="M10 8 L22 16 L10 24Z" fill="${Ic}"/>`;let{icon:t,color:n}=Lc[e];return`<g color="${n}" transform="translate(4 4) scale(1.5)">${zc(t)}</g>`}function Vc(e){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect width="32" height="32" rx="6" fill="#0a0810"/><rect x="1" y="1" width="30" height="30" rx="5" fill="none" stroke="#2a2440" stroke-width="1"/>${Bc(e)}</svg>`}function Hc(){let e=document.querySelector(`link[rel="icon"]`);if(e instanceof HTMLLinkElement)return e;let t=document.createElement(`link`);return t.rel=`icon`,t.type=`image/svg+xml`,document.head.append(t),t}var Uc=Hc(),Wc=`idle`;function Gc(e){let t=Rc([...e.values()].map(({currentState:e,unseenOutcome:t})=>({state:e,unseenOutcome:t})));t!==Wc&&(Wc=t,Uc.href=`data:image/svg+xml,${encodeURIComponent(Vc(t))}`)}function Kc(e,t){return Number.isFinite(e)?Math.round(Math.min(t.maxPx,Math.max(t.minPx,e))):null}function qc(e,t){return e===`ArrowRight`?t:e===`ArrowLeft`?-t:null}function Jc({resizer:e,column:t,widthHost:n,widthProperty:r,bounds:i,keyStepPx:a,getStoredWidth:o,setStoredWidth:s,growsLeftward:c=!1}){let l=c?-1:1;e.setAttribute(`aria-valuemin`,String(i.minPx)),e.setAttribute(`aria-valuemax`,String(i.maxPx));let u=t=>{let a=Kc(t,i);return a===null?null:(n.style.setProperty(r,`${a}px`),e.setAttribute(`aria-valuenow`,String(a)),a)},d=o();d!==null&&u(d);let f=0,p=0;e.addEventListener(`pointerdown`,n=>{n.button===0&&(f=n.clientX,p=t.getBoundingClientRect().width,e.setPointerCapture(n.pointerId),e.dataset.dragging=`true`,n.preventDefault())}),e.addEventListener(`pointermove`,t=>{e.hasPointerCapture(t.pointerId)&&u(p+l*(t.clientX-f))});let m=t=>{e.releasePointerCapture(t.pointerId),delete e.dataset.dragging};e.addEventListener(`pointerup`,t=>{e.hasPointerCapture(t.pointerId)&&(m(t),s(u(p+l*(t.clientX-f))))}),e.addEventListener(`pointercancel`,t=>{e.hasPointerCapture(t.pointerId)&&(m(t),u(p))}),e.addEventListener(`dblclick`,()=>{n.style.removeProperty(r),e.setAttribute(`aria-valuenow`,String(Math.round(t.getBoundingClientRect().width))),s(null)}),e.addEventListener(`keydown`,e=>{let n=qc(e.key,a);if(n===null)return;e.preventDefault();let r=u(t.getBoundingClientRect().width+l*n);r!==null&&s(r)})}var Yc={merged:`M5.45 5.154A4.25 4.25 0 0 0 9.25 7.5h1.378a2.251 2.251 0 1 1 0 1.5H9.25A5.734 5.734 0 0 1 5 7.123v3.505a2.25 2.25 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.95-.218ZM4.25 13.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm8.5-4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM5 3.25a.75.75 0 1 0 0 .005V3.25Z`,draft:`M3.25 1A2.25 2.25 0 0 1 4 5.372v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.251 2.251 0 0 1 3.25 1Zm9.5 14a2.25 2.25 0 1 1 0-4.5 2.25 2.25 0 0 1 0 4.5ZM2.5 3.25a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0ZM3.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm9.5 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM14 7.5a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Zm0-4.25a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Z`,conflict:`M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z`,behind:`M13.03 8.22a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L3.47 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018l2.97 2.97V3.75a.75.75 0 0 1 1.5 0v7.44l2.97-2.97a.75.75 0 0 1 1.06 0Z`,failed:`M2.343 13.657A8 8 0 1 1 13.658 2.343 8 8 0 0 1 2.343 13.657ZM6.03 4.97a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042L6.94 8 4.97 9.97a.749.749 0 0 0 .326 1.275.749.749 0 0 0 .734-.215L8 9.06l1.97 1.97a.749.749 0 0 0 1.275-.326.749.749 0 0 0-.215-.734L9.06 8l1.97-1.97a.749.749 0 0 0-.326-1.275.749.749 0 0 0-.734.215L8 6.94Z`,running:`M8 4a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z`,passed:`M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z`,ready:`M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16Zm3.78-9.72a.751.751 0 0 0-.018-1.042.751.751 0 0 0-1.042-.018L6.75 9.19 5.28 7.72a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042l2 2a.75.75 0 0 0 1.06 0Z`,"changes-requested":`M1 1.75C1 .784 1.784 0 2.75 0h7.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177l-2.914-2.914a.25.25 0 0 0-.177-.073ZM8 3.25a.75.75 0 0 1 .75.75v1.5h1.5a.75.75 0 0 1 0 1.5h-1.5v1.5a.75.75 0 0 1-1.5 0V7h-1.5a.75.75 0 0 1 0-1.5h1.5V4A.75.75 0 0 1 8 3.25Zm-3 8a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Z`,thread:`M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z`,reviewer:`M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z`,"your-turn":`M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16ZM3 5a5 5 0 0 1 10 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.255.255 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.017.017 0 0 0-.003.01l.001.006c0 .002.002.004.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007a.017.017 0 0 0-.003-.01l-1.703-2.554a1.745 1.745 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5Z`,queued:`M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm7-3.25v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5a.75.75 0 0 1 1.5 0Z`,discarded:`M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm9.78-2.22-5.5 5.5a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l5.5-5.5a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z`,stale:`M1.705 8.005a.75.75 0 0 1 .834.656 5.5 5.5 0 0 0 9.592 2.97l-1.204-1.204a.25.25 0 0 1 .177-.427h3.646a.25.25 0 0 1 .25.25v3.646a.25.25 0 0 1-.427.177l-1.38-1.38A7.002 7.002 0 0 1 1.05 8.84a.75.75 0 0 1 .656-.834ZM8 2.5a5.487 5.487 0 0 0-4.131 1.869l1.204 1.204A.25.25 0 0 1 4.896 6H1.25A.25.25 0 0 1 1 5.75V2.104a.25.25 0 0 1 .427-.177l1.38 1.38A7.002 7.002 0 0 1 14.95 7.16a.75.75 0 0 1-1.49.178A5.5 5.5 0 0 0 8 2.5Z`,unknown:`M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.92 6.085h.001a.749.749 0 1 1-1.342-.67c.169-.339.436-.701.849-.977C6.845 4.16 7.369 4 8 4a2.756 2.756 0 0 1 1.637.525c.503.377.863.965.863 1.725 0 .448-.115.83-.329 1.15-.205.307-.47.513-.692.662-.109.072-.22.138-.313.195l-.006.004a6.24 6.24 0 0 0-.26.16.952.952 0 0 0-.276.245.75.75 0 0 1-1.248-.832c.184-.264.42-.489.692-.661.103-.067.207-.132.313-.195l.007-.004c.1-.061.182-.11.258-.161a.969.969 0 0 0 .277-.245C8.96 6.514 9 6.427 9 6.25a.612.612 0 0 0-.262-.525A1.27 1.27 0 0 0 8 5.5c-.369 0-.595.09-.74.187a1.01 1.01 0 0 0-.34.398ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z`,none:`M2 7.75A.75.75 0 0 1 2.75 7h10a.75.75 0 0 1 0 1.5h-10A.75.75 0 0 1 2 7.75Z`};function Xc(e,t){let n=pn(16,16);return n.classList.add(`pr-status-icon`),t&&(n.dataset.tone=t),n.append(En(`path`,{d:Yc[e],fill:`currentColor`})),n}function Zc(e,{className:t=``,linkUrl:n,ariaLabel:r,onActivate:i}={}){let a=`signal ${t}`.trim(),o=n?fe(a,``,n,e.hoverText):k(`span`,a);return o.title=e.hoverText,r&&o.setAttribute(`aria-label`,r),e.look&&(o.dataset.tone=e.look.tone,o.append(Xc(e.look.icon,e.look.tone))),o.append(e.text),i&&Qc(o,i,!n),o}function Qc(e,t,n){e.addEventListener(`click`,e=>{e.stopPropagation(),!e.defaultPrevented&&(e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),t()))}),n&&(e.tabIndex=0,e.setAttribute(`role`,`button`)),e.addEventListener(`keydown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.stopPropagation(),e.preventDefault(),t()))})}function $c(e){e.removeAttribute(`tabindex`),e.removeAttribute(`role`)}function el(e,t){if(e.closest(`button, a[href]`))for(let e of t){$c(e);for(let t of e.querySelectorAll(`[role="button"]`))$c(t)}}function tl(e){if(e.overflowCount===0)return null;let t=k(`span`,`signal-overflow`,`+${e.overflowCount}`);return t.title=e.overflowHoverText,t}function nl(e,t,n=e=>Zc(e,e)){let r=oc(t);if(e.dataset.signalSignature===r)return;e.dataset.signalSignature=r;let i=ac(t),a=i.visible.map(n),o=tl(i);o&&a.push(o),el(e,a),e.hidden=a.length===0,e.replaceChildren(...a)}var rl=[],il=`plan`,al={parked:{text:`PARKED`,hoverText:`Merge parked`,look:{icon:`failed`,tone:`danger`},tier:nc.broken},merging:{text:`MERGING`,hoverText:`Merging`,look:{icon:`queued`,tone:`wait`},tier:nc.waiting}};function ol(e){rl.push(e)}function sl(e){let t=al[e];return t?[{...t,key:`merge`}]:[]}function cl(e){let t=e.closest(`.session-row`),n=t?.dataset.id;t&&n&&nl(e,[...sl(t.dataset.merge??``),...rl.flatMap(e=>e(n))])}function ll(){for(let e of document.querySelectorAll(`.session-row-signals`))cl(e)}function ul(e,t=``){let n=k(e,`session-row ${t}`.trim());return n.innerHTML=`<span class="session-row-glyph" aria-hidden="true"></span><span class="session-row-main"><span class="session-row-title"><span class="session-row-name"></span><span class="session-row-cloud" hidden></span></span><span class="session-row-task" hidden></span><span class="session-row-ownership" hidden></span><span class="session-row-meta"><span class="session-row-label"></span><span class="session-row-signals" hidden></span></span></span><span class="session-row-elapsed" aria-hidden="true"></span><span class="session-row-attention-tab" aria-hidden="true" hidden></span>`,{row:n,refs:{glyph:O(n,`.session-row-glyph`),label:O(n,`.session-row-label`),ownership:O(n,`.session-row-ownership`),name:O(n,`.session-row-name`),cloud:O(n,`.session-row-cloud`),task:O(n,`.session-row-task`),signals:O(n,`.session-row-signals`),elapsed:O(n,`.session-row-elapsed`),attentionTab:O(n,`.session-row-attention-tab`)}}}function dl(e,t){let n=k(`div`,`session-row-item`),r=k(`button`,`session-row-remove`);return r.append(mn(xn)),r.type=`button`,r.title=`Remove session`,r.setAttribute(`aria-label`,`Remove session`),r.addEventListener(`click`,e=>{e.stopPropagation(),t()}),n.append(e,r),{item:n,removeButton:r}}function fl(e,t,n,r=!1,i=null){e.dataset.state=n,e.dataset.prompt=i??``;let{icon:a,label:o,isMonitoring:s}=De(n,r),c=i===il?`Plan ready`:o;return e.toggleAttribute(`data-monitoring`,s),Tn(t.glyph,a),t.label.textContent=c,c}function pl(e,t){return e.hidden=!t,t?(e.title=nr(t),e.firstChild||e.append(mn(yn)),e.title):null}function ml(e){let t=e.ownerId?P.get(e.ownerId):void 0,n=t?st(t):null,r=e.card.dataset.id,i=[...P.values()].filter(e=>e.ownerId===r).length;return Dn({ownerName:n,ownedCount:i})}function hl(e,t,n){let r=ml(n);return t.ownership.textContent=r??``,t.ownership.hidden=r===null,e.closest(`.session-row-item`)?.toggleAttribute(`data-owned`,n.ownerId!==null&&P.has(n.ownerId)),or(n.card,r),r}function gl(e){return e===null?null:e===1?`next up`:`#${e} in line`}function _l(e,t,n){t.hidden=n===null,t.textContent=n===null?``:String(n),e.toggleAttribute(`data-attention-head`,n===1)}function vl(e,t,{ui:n,state:r,name:i,mergeStatus:a,attentionPosition:o}){let s=fl(e,t,r,n.awaitingBackgroundTasks,n.pendingPromptKind);t.name.textContent=i;let c=pl(t.cloud,n.card.dataset.remoteWorkspace);t.task.textContent=n.taskTitle,t.task.hidden=!n.taskTitle||n.taskTitle===i,e.dataset.merge=a,cl(t.signals),e.dataset.activity=n._activity||``,t.elapsed.textContent=tt(n);let l=hl(e,t,n);_l(e,t.attentionTab,o);let u=[i,c,n.taskTitle,s,l,gl(o)].filter(Boolean).join(`, `);return e.setAttribute(`aria-label`,u),e.title=u,s}var yl={ready:{label:`Ready`,meaning:`Ready to merge, or nothing left for you to do.`},passed:{label:`Passed`,meaning:`Checks passing, approved, or nothing open.`},failed:{label:`Failed`,meaning:`Checks failing, an automated review failed, or an auto-rebase failed.`},conflict:{label:`Conflict`,meaning:`Merge conflicts with the base branch.`},"your-turn":{label:`Your turn`,meaning:`Waiting on you: a review to give or a thread to answer.`},"changes-requested":{label:`Changes`,meaning:`A reviewer requested changes.`},thread:{label:`Threads`,meaning:`Unresolved review threads or comments.`},behind:{label:`Behind`,meaning:`The branch is behind its base.`},stale:{label:`Out of date`,meaning:`New commits landed since the automated review.`},running:{label:`Running`,meaning:`Checks or an automated review in progress.`},reviewer:{label:`Reviewer`,meaning:`Waiting on a reviewer.`},queued:{label:`Queued`,meaning:`Waiting for an automated review slot.`},draft:{label:`Draft`,meaning:`Still a draft.`},merged:{label:`Merged`,meaning:`Merged.`},discarded:{label:`Discarded`,meaning:`Review discarded or dismissed.`},unknown:{label:`Unknown`,meaning:`GitHub has not computed this yet.`},none:{label:`None`,meaning:`Nothing applies, such as no checks or no review requested.`}},bl=(e,t,n=!1)=>({state:e,awaitingBackgroundTasks:n,label:n?`Monitoring`:_[e],meaning:t}),xl=Object.freeze([bl(b.DORMANT,`Not started yet.`),bl(b.STARTING,`Setting up the worktree and booting the agent.`),bl(b.RUNNING,`The agent is mid-turn.`),bl(b.RUNNING,`The turn ended but background tasks or sub-agents are still running.`,!0),bl(b.WAITING,`Waiting on a permission prompt or your answer.`),bl(b.COMPLETE,`Finished a turn you have not looked at yet.`),bl(b.IDLE,`Ready for the next prompt.`),bl(b.DONE,`The agent process ended.`),bl(b.FAILED,`The agent failed to start or crashed. A red line above the terminal says why it could not start; its terminal output shows a crash.`)]);function Sl(e,t){let n=k(`section`,`status-legend`),r=k(`dl`,`status-legend-rows`);return r.append(...t),n.append(k(`h2`,`status-legend-title`,e),r),n}function Cl(e,t){let n=k(`div`,`status-legend-row`);return n.append(e,k(`dd`,`status-legend-meaning`,t)),n}function wl(){return Sl(`Status colors`,xl.map(e=>{let t=k(`dt`,`status-legend-badge`),n=k(`span`,`status-legend-glyph`),r=k(`span`,`status-legend-name`);n.setAttribute(`aria-hidden`,`true`),t.append(n,r);let i=Cl(t,e.meaning);return fl(i,{glyph:n,label:r},e.state,e.awaitingBackgroundTasks),i}))}function Tl(){return Sl(`Pull request icons`,Object.keys(yl).map(e=>{let t=yl[e],n=k(`dt`,`status-legend-badge`);return n.append(Xc(e),k(`span`,`status-legend-name`,t.label)),Cl(n,t.meaning)}))}var El=new Set(Ot());function Dl(){yt([...El])}function Ol(e){if(!e)return;let t=String(e);El.has(t)||(El.add(t),Dl())}function kl(e,t){let n=new Set;for(let r of e||[]){let e=t(r);if(!e)continue;let i=String(e);n.add(i),Ol(i)}return[...El].filter(e=>!n.has(e))}function Al(e){return!e||!El.delete(String(e))?!1:(Dl(),!0)}var jl=Object.freeze({[b.IDLE]:`compaction_restore_idle`,[b.COMPLETE]:`compaction_restore_complete`,[b.WAITING]:`compaction_restore_waiting`});function Ml(e){return Object.values(jl).some(t=>t===e)}var Nl=new Set([`claude-code`,`codex`]),Pl=`\x1B`,Fl=`${Pl}[200~`,Il=`${Pl}[201~`,Ll=400,Rl=4e3,zl=/^\[Image: source: (.+)\]$/,Bl=`uploads`,Vl=new Set([`Agent`,`Task`]),Hl=/^Async agent launched/,Ul=`<task-notification>`,Wl=/<tool-use-id>([^<]+)<\/tool-use-id>/,Gl=/<task-id>([^<]+)<\/task-id>/,Kl=/agentId: ([\w-]+)/,ql=/<status>([^<]+)<\/status>/,Jl=6e5;function Yl(e){return typeof e==`string`&&Nl.has(e)}function Xl(e,t){if(!Yl(e))return null;let n=t.replace(/\r\n?/g,`
8
+ `).trim();return n?[{data:n.includes(`
9
+ `)?`${Fl}${n}${Il}`:n,delayBeforeMs:0},{data:`\r`,delayBeforeMs:Ll}]:null}function Zl(e){return Yl(e)?[{data:`\r`,delayBeforeMs:0}]:null}function Ql(e){return Yl(e)?[{data:Pl,delayBeforeMs:0}]:null}function $l(e,t){return e===b.WAITING&&typeof t==`string`&&t!==``}function eu(e,t){return e.uuid??`${e.kind}-${e.ts}-${t}`}function tu(e){return typeof e.agentId==`string`}function nu(e){let t=zl.exec(e.trim());if(!t)return null;let[n,r,i]=t[1].split(/[\\/]/).slice(-3);return n!==Bl||!r||!i?null:`/upload/${encodeURIComponent(r)}/${encodeURIComponent(i)}`}function ru(e,t){let n=e[e.length-1];n?.kind===`user`&&n.imageUrls.push(t)}function iu(e){if(!e||typeof e!=`object`)return`Agent`;let t=e.description;return typeof t==`string`&&t.trim()?t.trim():`Agent`}function au(e,t,n){if(!e)return;if(t.isError){e.state=`failed`;return}if(!Hl.test(t.content)){e.state=`done`;return}let r=Kl.exec(t.content)?.[1];r&&n.set(r,e)}function ou(e){return e.trimStart().startsWith(Ul)}function su(e,t,n){let r=Wl.exec(e)?.[1];if(r)return t.get(r);let i=Gl.exec(e)?.[1];return i?n.get(i):void 0}function cu(e,t,n){let r=su(e,t,n);r?.state===`running`&&(r.state=ql.exec(e)?.[1]===`completed`?`done`:`failed`)}function lu(e){let t=[],n=new Map,r=new Map,i=new Map,a=new Map,o=null;function s(){o&&t.push(o),o=null}function c(e,t){return o??={kind:`work`,key:e,steps:[],agentRuns:[],startedAt:t,endedAt:t},o.endedAt=Math.max(o.endedAt,t),o}return e.forEach((e,o)=>{let l=eu(e,o);if(!tu(e)){if((e.kind===`prompt`||e.kind===`expansion`)&&ou(e.text))cu(e.text,i,a);else if(e.kind===`prompt`)s(),t.push({kind:`user`,key:l,text:e.text,at:e.ts,imageUrls:[]});else if(e.kind===`expansion`)for(let n of e.text.split(`
10
+ `)){let e=nu(n);e&&ru(t,e)}else if(e.kind===`assistant`){if(!e.text.trim())return;t.push({kind:`assistant`,key:l,text:e.text,at:e.ts})}else if(e.kind===`notice`)t.push({kind:`notice`,key:l,text:e.text,at:e.ts});else if(e.kind===`thinking`)c(l,e.ts);else if(e.kind===`tool_call`){let t=c(l,e.ts),a={isRunning:!0};if(t.steps.push(a),n.set(e.toolUseId,a),r.set(e.toolUseId,t),!Vl.has(e.name))return;let o={key:l,description:iu(e.input),state:`running`};t.agentRuns.push(o),i.set(e.toolUseId,o)}else if(e.kind===`tool_result`){let t=n.get(e.toolUseId),o=r.get(e.toolUseId);if(!t||!o)return;t.isRunning=!1,o.endedAt=Math.max(o.endedAt,e.ts),au(i.get(e.toolUseId),e,a)}}}),s(),t}function uu(e){return e.flatMap(e=>e.kind===`work`?e.agentRuns.filter(e=>e.state===`running`):[])}function du(e){let t=e.at(-1);return t?.kind===`work`?t:null}function fu(e){return new Set(e.flatMap(e=>e.kind===`user`?[e.key]:[]))}function pu(e,t,n){if(n-e.sentAt>Jl)return!0;let r=e.text.trim();return t.some(t=>t.kind===`user`&&!e.userKeysAtSend.has(t.key)&&t.text.includes(r))}function mu(e){return`${e} ${e===1?`agent`:`agents`}`}function hu(e){let t=Math.max(1,Math.round(e/1e3)),n=Math.floor(t/60),r=t%60;return n===0?`${r}s`:r===0?`${n}m`:`${n}m ${r}s`}function gu(e){let t=e.agentRuns.length>0?`, ${mu(e.agentRuns.length)}`:``;return`Worked ${hu(e.endedAt-e.startedAt)}${t}`}function _u(e,t){let n=t>0?`${mu(t)} running`:``;return e===null?n:n?`Working ${hu(e)}, ${n}`:`Working ${hu(e)}`}function vu(e){return e.length<=Rl?e:e.slice(e.length-Rl)}var yu=`(max-width: 768px)`,bu=`(pointer: coarse)`;function xu({coarse:e,narrowWidth:t}={}){return e===!0&&t===!0?`phone`:`desktop`}var Su=window.matchMedia?.(bu),Cu=window.matchMedia?.(yu);function wu(){return xu({coarse:!!Su?.matches,narrowWidth:!!Cu?.matches})}function Tu(e){document.documentElement.dataset.layout!==e&&(document.documentElement.dataset.layout=e)}function Eu(){I.subscribe((e,t)=>{t.includes(`layout`)&&Tu(e.layout)});let e=wu();Tu(e),I.dispatch(`setLayout`,e);let t=()=>I.dispatch(`setLayout`,wu());return Su?.addEventListener?.(`change`,t),Cu?.addEventListener?.(`change`,t),e}function Du(){return I.snapshot().layout===`phone`}function Ou(e){return I.subscribe((t,n)=>{n.includes(`layout`)&&e(t.layout)})}var ku=`CommitMono`,Au=[400,700].map(e=>`${e} 14px ${ku}`),ju=`monospace`;function Mu(e){return e.trim().replace(/^['"]|['"]$/g,``)}function Nu(e,t){let n=e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0),r=t?n:n.filter(e=>Mu(e)!==ku);return r.length>0?r.join(`, `):ju}function Pu(e,t,n){return Promise.all(t.map(t=>e.load(t))).then(n,()=>void 0)}function Fu(e,t){for(let n of e)n.term&&(n.term.options.fontFamily=t,n._syncGrid?.())}function Iu(){return document.fonts?Au.every(e=>document.fonts.check(e)):!1}function Lu(){return Nu(getComputedStyle(document.documentElement).getPropertyValue(`--font-mono`),Iu())}function Ru(e){document.fonts&&Pu(document.fonts,Au,e)}var zu=6,Bu=262144,Vu=16384,Hu=()=>{};function Uu(e,t){if(t.length<=Vu)e.push(t);else for(let n=0;n<t.length;n+=Vu)e.push(t.slice(n,n+Vu))}function Wu({budget:e=zu,maxChunkBytes:t=Bu,requestFrame:n,cancelFrame:r}={}){let i=n||(e=>requestAnimationFrame(e)),a=r||(e=>cancelAnimationFrame(e)),o=new Map,s=[],c=0,l=null;function u(){l===null&&(l=i(h))}function d(e){return e.readIdx<e.pending.length}function f(e){d(e)||(e.pending.length=0,e.readIdx=0,e.dirty=!1)}function p(e){return!!(e?.live&&e.dirty&&!e.inFlight&&d(e))}function m(){for(let e of o.values())if(p(e))return!0;return!1}function h(){l=null;let n=s.length,r=0;for(let i=0;i<n&&r<e;i++){let e=s[(c+i)%n],a=o.get(e);if(!p(a))continue;let l=[],m=0;for(;a.readIdx<a.pending.length;){let e=a.pending[a.readIdx];if(typeof e!=`string`){if(m>0)break;a.readIdx++,e.run();continue}let n=t-m;if(m+e.length<=t)Uu(l,e),m+=e.length,a.readIdx++;else{m===0&&(Uu(l,e.slice(0,n)),m+=n,a.pending[a.readIdx]=e.slice(n));break}}let h=l.pop();if(h===void 0)f(a),r++;else{f(a),d(a)&&a.readIdx>=64&&(a.pending.splice(0,a.readIdx),a.readIdx=0),a.inFlight=!0;for(let e of l)a.write(e,Hu);a.write(h,()=>{a.live&&(a.inFlight=!1,d(a)&&(a.dirty=!0,u()))}),r++}}n>0&&(c=(c+1)%n),m()&&u()}return{register(e,t){let n=o.get(e);n?(n.write=t,n.live=!0):(o.set(e,{write:t,pending:[],readIdx:0,inFlight:!1,dirty:!1,live:!0}),s.push(e))},unregister(e){let t=o.get(e);if(!t)return;t.live=!1,o.delete(e);let n=s.indexOf(e);n!==-1&&s.splice(n,1),c>=s.length&&(c=0)},enqueue(e,t){let n=o.get(e);n&&t&&(n.pending.push(t),n.dirty=!0,u())},enqueueAction(e,t){let n=o.get(e);n&&(n.pending.push({run:t}),n.dirty=!0,u())},has(e){return o.has(e)},size(){return o.size},running(){return l!==null},stop(){l!==null&&(a(l),l=null)}}}var Gu=Wu(),Ku=.3,qu=null;function Ju(){return dt(qu)}function Yu(e){return bt(e,qu)}async function Xu(){try{let e=await fetch(Rt,{credentials:`same-origin`,cache:`no-store`});e.ok&&(qu=ln(await e.json()))}catch{}}function Zu(){let e=new AudioContext;return e.state===`suspended`&&e.resume(),e}function Qu(e,t){setTimeout(()=>e.close().catch(()=>{}),(t+.1)*1e3)}function $u(e){ed(an[e]??an.chime)}function ed(e){let t=Zu(),n=t.createGain();n.gain.value=e.peakGain,n.connect(t.destination);let r=t.currentTime,i=0;for(let a of e.tones){let e=r+a.startSeconds,o=e+a.durationSeconds,s=t.createOscillator(),c=t.createGain();s.type=a.waveform,s.frequency.setValueAtTime(a.frequency,e),a.endFrequency&&s.frequency.exponentialRampToValueAtTime(a.endFrequency,o),c.gain.setValueAtTime(.001,e),c.gain.exponentialRampToValueAtTime(a.gain??1,e+.01),c.gain.exponentialRampToValueAtTime(.001,o),s.connect(c),c.connect(n),s.start(e),s.stop(o),i=Math.max(i,a.startSeconds+a.durationSeconds)}Qu(t,i)}async function td(e){try{let t=await fetch(jt(e),{credentials:`same-origin`});return t.ok?await t.arrayBuffer():null}catch{return null}}async function nd(e){let t=await td(e);if(!t)return!1;let n=Zu();try{let e=await n.decodeAudioData(t),r=n.createGain();r.gain.value=Ku,r.connect(n.destination);let i=n.createBufferSource();return i.buffer=e,i.connect(r),i.start(),Qu(n,e.duration),!0}catch{return n.close().catch(()=>{}),!1}}var rd=[659.25,830.61,987.77,1108.73,987.77,830.61,739.99,659.25,739.99,830.61,987.77,1108.73,987.77,830.61];function id(){try{let e=new AudioContext;if(e.state===`suspended`&&e.resume(),e.state===`suspended`)return;let t=e.createGain();t.gain.value=.05,t.connect(e.destination);let n=.125,r=e.currentTime;for(let i=0;i<rd.length;i++){let a=r+i*n,o=e.createOscillator(),s=e.createGain();o.type=`square`,o.frequency.value=rd[i],s.gain.setValueAtTime(.001,a),s.gain.exponentialRampToValueAtTime(1,a+.01),s.gain.exponentialRampToValueAtTime(.001,a+n*.9),o.connect(s),s.connect(t),o.start(a),o.stop(a+n)}let i=r+rd.length*n;t.gain.setValueAtTime(.05,i-.05),t.gain.exponentialRampToValueAtTime(.001,i),setTimeout(()=>e.close().catch(()=>{}),(i-r+.1)*1e3)}catch{}}function ad(){try{$u(Dt)}catch{}}function od(e){try{let t=Yu(e),n=dn(t);if(!n){$u(t);return}nd(n).then(e=>{e||ad()})}catch{}}var sd={"--state-monitoring":`#22d3ee`,"--state-monitoring-bg":`rgba(34, 211, 238, 0.06)`,"--state-running":`#22c55e`,"--state-running-bg":`rgba(34, 197, 94, 0.06)`,"--state-waiting":`#f59e0b`,"--state-waiting-bg":`rgba(245, 158, 11, 0.08)`,"--state-failed":`#ef4444`,"--state-failed-bg":`rgba(239, 68, 68, 0.06)`,"--state-initializing":`#6b7280`,"--state-initializing-bg":`rgba(107, 114, 128, 0.06)`,"--state-idle":`#eab308`,"--state-idle-bg":`rgba(234, 179, 8, 0.06)`},cd={background:`--bg-card`,cursor:`--accent`,cursorAccent:`--bg-card`,black:`--border`,brightBlack:`--text-muted`,red:`#ef4444`,brightRed:`#f87171`,green:`#22c55e`,brightGreen:`#4ade80`,yellow:`#eab308`,brightYellow:`#facc15`,cyan:`#06b6d4`,brightCyan:`#22d3ee`},ld={golgari:{label:`Golgari (Green/Black)`,colors:{"--bg":`#060b08`,"--bg-card":`#0a120e`,"--bg-header":`#081009`,"--bg-surface":`#0e1a12`,"--border":`#1a2e1f`,"--border-dim":`#122016`,"--border-hover":`#2a4a32`,"--text":`#b8ccbe`,"--text-dim":`#6a9070`,"--text-head":`#dceede`,"--text-muted":`#7a9a80`,"--accent":`#2dd4a0`,"--accent-dim":`#1a9a6e`,...sd,"--state-monitoring":`#22d3ee`,"--state-monitoring-bg":`rgba(34, 211, 238, 0.08)`,"--state-done":`#94a3b8`,"--state-done-bg":`rgba(45, 212, 160, 0.06)`,"--state-starting":`#a78bfa`,"--state-starting-bg":`rgba(167, 139, 250, 0.06)`,"--state-complete":`#34d399`,"--state-complete-bg":`rgba(52, 211, 153, 0.06)`},terminal:{...cd,foreground:`#c8dece`,blue:`--accent`,brightBlue:`#5ee8bc`,magenta:`#a855f7`,brightMagenta:`#c084fc`,white:`#c8dece`,brightWhite:`#e8f5ea`}},midnight:{label:`Midnight (Blue/Purple)`,colors:{"--bg":`#080816`,"--bg-card":`#0e0e20`,"--bg-header":`#0b0b1a`,"--bg-surface":`#131328`,"--border":`#1c1c38`,"--border-dim":`#141430`,"--border-hover":`#2a2a50`,"--text":`#b8b8d4`,"--text-dim":`#8585b3`,"--text-head":`#dcdcf0`,"--text-muted":`#7c7ca9`,"--accent":`#4f6ef7`,"--accent-dim":`#3a54c0`,...sd,"--state-monitoring":`#22d3ee`,"--state-monitoring-bg":`rgba(34, 211, 238, 0.08)`,"--state-done":`#94a3b8`,"--state-done-bg":`rgba(59, 130, 246, 0.06)`,"--state-starting":`#a855f7`,"--state-starting-bg":`rgba(168, 85, 247, 0.06)`,"--state-complete":`#60a5fa`,"--state-complete-bg":`rgba(96, 165, 250, 0.06)`},terminal:{...cd,foreground:`#c8c8e0`,blue:`--accent`,brightBlue:`#60a5fa`,magenta:`#a855f7`,brightMagenta:`#c084fc`,white:`#c8c8e0`,brightWhite:`#e8e8ff`}},phyrexian:{label:`Phyrexian (Iridescent)`,colors:{"--bg":`#0a0810`,"--bg-card":`#100e18`,"--bg-header":`#0c0a14`,"--bg-surface":`#16122a`,"--border":`#2a2440`,"--border-dim":`#1e1a32`,"--border-hover":`#3e3660`,"--text":`#c8c0e0`,"--text-dim":`#8d82b9`,"--text-head":`#e8e0ff`,"--text-muted":`#8579b1`,"--accent":`#c084fc`,"--accent-dim":`#9656d6`,...sd,"--state-monitoring":`#60a5fa`,"--state-monitoring-bg":`rgba(96, 165, 250, 0.08)`,"--state-done":`#67e8f9`,"--state-done-bg":`rgba(103, 232, 249, 0.06)`,"--state-starting":`#f472b6`,"--state-starting-bg":`rgba(244, 114, 182, 0.06)`,"--state-complete":`#34d399`,"--state-complete-bg":`rgba(52, 211, 153, 0.06)`},terminal:{...cd,foreground:`#c8c0e0`,blue:`#67e8f9`,brightBlue:`#a5f3fc`,magenta:`--accent`,brightMagenta:`#d8b4fe`,white:`#c8c0e0`,brightWhite:`#e8e0ff`}},compleated:{label:`Compleated (Light)`,colors:{"--bg":`#ece8e0`,"--bg-card":`#f7f4ee`,"--bg-header":`#f0ece4`,"--bg-surface":`#e4e0d6`,"--border":`#b8b0a0`,"--border-dim":`#ccc6b8`,"--border-hover":`#908878`,"--text":`#2a2622`,"--text-dim":`#5a5448`,"--text-head":`#0e0c0a`,"--text-muted":`#676157`,"--accent":`#0e0c0a`,"--accent-dim":`#2a2622`,"--state-running":`#16803c`,"--state-running-bg":`rgba(22, 128, 60, 0.08)`,"--state-waiting":`#b45309`,"--state-waiting-bg":`rgba(180, 83, 9, 0.08)`,"--state-failed":`#dc2626`,"--state-failed-bg":`rgba(220, 38, 38, 0.06)`,"--state-monitoring":`#0e7490`,"--state-monitoring-bg":`rgba(14, 116, 144, 0.08)`,"--state-done":`#64748b`,"--state-done-bg":`rgba(26, 24, 22, 0.06)`,"--state-initializing":`#6b7280`,"--state-initializing-bg":`rgba(107, 114, 128, 0.06)`,"--state-idle":`#a16207`,"--state-idle-bg":`rgba(161, 98, 7, 0.06)`,"--state-starting":`#7c3aed`,"--state-starting-bg":`rgba(124, 58, 237, 0.06)`,"--state-complete":`#059669`,"--state-complete-bg":`rgba(5, 150, 105, 0.06)`},terminal:{background:`#faf8f4`,foreground:`#1a1816`,cursor:`#1a1816`,cursorAccent:`#faf8f4`,black:`#1a1816`,brightBlack:`#5a5448`,red:`#b91c1c`,brightRed:`#dc2626`,green:`#15803d`,brightGreen:`#16a34a`,yellow:`#92400e`,brightYellow:`#a16207`,blue:`#1d4ed8`,brightBlue:`#2563eb`,magenta:`#6d28d9`,brightMagenta:`#7c3aed`,cyan:`#0e7490`,brightCyan:`#0891b2`,white:`#5a5448`,brightWhite:`#3a3630`}},unicorn:{label:`Rainbow Unicorns (Dark)`,colors:{"--bg":`#191022`,"--bg-card":`#201730`,"--bg-header":`#1c1329`,"--bg-surface":`#281c3c`,"--border":`#3a2c52`,"--border-dim":`#2a2040`,"--border-hover":`#55407a`,"--text":`#d4c8e6`,"--text-dim":`#9a88b8`,"--text-head":`#ede4fa`,"--text-muted":`#a897c4`,"--accent":`#e8a3c4`,"--accent-dim":`#c4739e`,"--state-running":`#42d780`,"--state-running-bg":`rgba(66, 215, 128, 0.10)`,"--state-waiting":`#f79f3b`,"--state-waiting-bg":`rgba(247, 159, 59, 0.10)`,"--state-failed":`#f05442`,"--state-failed-bg":`rgba(240, 84, 66, 0.13)`,"--state-monitoring":`#2dd4bf`,"--state-monitoring-bg":`rgba(45, 212, 191, 0.08)`,"--state-done":`#f04ca4`,"--state-done-bg":`rgba(240, 76, 164, 0.13)`,"--state-initializing":`#8f87a6`,"--state-initializing-bg":`rgba(143, 135, 166, 0.08)`,"--state-idle":`#bcb02f`,"--state-idle-bg":`rgba(188, 176, 47, 0.08)`,"--state-starting":`#a17ef1`,"--state-starting-bg":`rgba(161, 126, 241, 0.08)`,"--state-complete":`#34baf4`,"--state-complete-bg":`rgba(52, 186, 244, 0.14)`},terminal:{background:`#201730`,foreground:`#d4c8e6`,cursor:`--accent`,cursorAccent:`#201730`,black:`#8c7dab`,brightBlack:`#9c8fb5`,red:`#e8887e`,brightRed:`#f4a89f`,green:`#86e0ab`,brightGreen:`#a3edc0`,yellow:`#f0c674`,brightYellow:`#f5d896`,blue:`#9cb3f0`,brightBlue:`#b5c8f5`,magenta:`#dd8ecf`,brightMagenta:`#e6a8dc`,cyan:`#7fd4d0`,brightCyan:`#a0e6e2`,white:`#d4c8e6`,brightWhite:`#f4ecfc`}},"posthog-light":{label:`PostHog (Light)`,colors:{"--bg":`#eeefe9`,"--bg-card":`#fdfdf8`,"--bg-header":`#eeefe9`,"--bg-surface":`#e5e7e0`,"--border":`#bfc1b7`,"--border-dim":`#d2d3cc`,"--border-hover":`#9ea096`,"--text":`#23251d`,"--text-dim":`#65675e`,"--text-head":`#111111`,"--text-muted":`#73756b`,"--accent":`#c03300`,"--accent-dim":`#8e2600`,"--state-running":`#237a36`,"--state-running-bg":`rgba(77, 117, 51, 0.08)`,"--state-waiting":`#b17816`,"--state-waiting-bg":`rgba(177, 120, 22, 0.10)`,"--state-failed":`#8c0d3b`,"--state-failed-bg":`rgba(140, 13, 59, 0.07)`,"--state-monitoring":`#0e7490`,"--state-monitoring-bg":`rgba(14, 116, 144, 0.08)`,"--state-done":`#3e6b9e`,"--state-done-bg":`rgba(62, 107, 158, 0.08)`,"--state-initializing":`#73756b`,"--state-initializing-bg":`rgba(115, 117, 107, 0.07)`,"--state-idle":`#835c19`,"--state-idle-bg":`rgba(131, 92, 25, 0.07)`,"--state-starting":`#a621c8`,"--state-starting-bg":`rgba(166, 33, 200, 0.07)`,"--state-complete":`#34796f`,"--state-complete-bg":`rgba(52, 121, 111, 0.08)`},terminal:{background:`--bg-card`,foreground:`#23251d`,cursor:`--accent`,cursorAccent:`--bg-card`,black:`#23251d`,brightBlack:`#65675e`,red:`#c03300`,brightRed:`#df6133`,green:`#4d7533`,brightGreen:`#6aa84f`,yellow:`#835c19`,brightYellow:`#b17816`,blue:`#3e6b9e`,brightBlue:`#2f80fa`,magenta:`#74108d`,brightMagenta:`#a621c8`,cyan:`#34796f`,brightCyan:`#30abc6`,white:`#4d4f46`,brightWhite:`#23251d`}},"posthog-dark":{label:`PostHog (Dark)`,colors:{"--bg":`#1e1f23`,"--bg-card":`#25262b`,"--bg-header":`#232429`,"--bg-surface":`#2d2e37`,"--border":`#3e424f`,"--border-dim":`#32343f`,"--border-hover":`#626674`,"--text":`#edeef4`,"--text-dim":`#aeb3c2`,"--text-head":`#fafafa`,"--text-muted":`#9ea096`,"--accent":`#f87a4c`,"--accent-dim":`#f54e00`,"--state-running":`#36c46f`,"--state-running-bg":`rgba(54, 196, 111, 0.08)`,"--state-waiting":`#f7a501`,"--state-waiting-bg":`rgba(247, 165, 1, 0.09)`,"--state-failed":`#f35454`,"--state-failed-bg":`rgba(243, 84, 84, 0.09)`,"--state-monitoring":`#22d3ee`,"--state-monitoring-bg":`rgba(34, 211, 238, 0.08)`,"--state-done":`#589df8`,"--state-done-bg":`rgba(88, 157, 248, 0.08)`,"--state-initializing":`#8f8f8c`,"--state-initializing-bg":`rgba(143, 143, 140, 0.07)`,"--state-idle":`#ffce5c`,"--state-idle-bg":`rgba(255, 206, 92, 0.07)`,"--state-starting":`#8567ff`,"--state-starting-bg":`rgba(133, 103, 255, 0.09)`,"--state-complete":`#29dbbb`,"--state-complete-bg":`rgba(41, 219, 187, 0.08)`},terminal:{background:`--bg-card`,foreground:`#edeef4`,cursor:`--accent`,cursorAccent:`--bg-card`,black:`--border`,brightBlack:`--text-muted`,red:`#f35454`,brightRed:`#f87a4c`,green:`#36c46f`,brightGreen:`#96e5b6`,yellow:`#f7a501`,brightYellow:`#ffce5c`,blue:`#2f80fa`,brightBlue:`#9fc4ff`,magenta:`#8567ff`,brightMagenta:`#e2d6ff`,cyan:`#30abc6`,brightCyan:`#29dbbb`,white:`#aeb3c2`,brightWhite:`#fafafa`}}},ud=`phyrexian`,dd=null;function fd(e){let t=ld[e];if(!t)return;let n=dd;dd=e;let r=document.documentElement;r.dataset.theme=e;for(let[e,n]of Object.entries(t.colors))r.style.setProperty(e,n);e===`unicorn`&&n!==null&&n!==`unicorn`&&id()}function pd(e){document.documentElement.toggleAttribute(`data-show-usage`,e)}function md(e){document.documentElement.toggleAttribute(`data-arrow-pad`,e)}function hd(){let e=ld[dd||ud];if(!e)return{};let t=getComputedStyle(document.documentElement),n={};for(let[r,i]of Object.entries(e.terminal))n[r]=i.startsWith(`--`)?t.getPropertyValue(i).trim():i;return n}function gd(){return Object.entries(ld).map(([e,t])=>({id:e,label:t.label}))}var _d=e().int().min(1).max(500),vd=e().int().min(1).max(200);r(`type`,[a({type:i(`input`),data:t()}),a({type:i(`claim`),cols:_d,rows:vd}),a({type:i(`unview`)}),a({type:i(`pause-output`)}),a({type:i(`resume-output`)})]);var yd=a({type:i(`pty-size`),cols:_d,rows:vd,seq:e().int().nonnegative()}),bd=a({type:i(`output-beat`)}),xd=r(`type`,[yd,bd]),Sd=`history`,Cd=`output`,wd=`paused`;n([`screen`,`deep`]);function Td(e){try{return JSON.parse(e)}catch{return null}}function Ed(e){let t=xd.safeParse(Td(e));return t.success?t.data:null}function Dd(e,t){return!e||!t?!1:e.cols===t.cols&&e.rows===t.rows}function Od(e){return!e||!Number.isInteger(e.cols)||!Number.isInteger(e.rows)?!1:e.cols>0&&e.rows>0}function kd(e){return{cols:Math.min(Math.max(e.cols,1),500),rows:Math.min(Math.max(e.rows,1),200)}}function Ad({authoritative:e,isActiveViewer:t,lastClaim:n}){return!(t&&Dd(e,n))}function jd({isDocumentVisible:e,isDocumentFocused:t,hasFocusInsideCard:n,hasWindowBlurredSinceFocus:r,isPhoneLayout:i}){return e?i||t?!0:n&&!r:!1}function Md({isBorrowedCard:e,isTerminalFaceShown:t}){return!e||!t}function Nd({viewportTopLine:e,scrollbackLineCount:t,isDeepHistoryLoadedOrPending:n}){return e===0&&t>0&&t<5e3&&!n}function Pd(e,t,n){let r=new URLSearchParams;t&&r.set(Sd,`deep`),n&&r.set(Cd,wd);let i=`/terminals/${encodeURIComponent(e)}`,a=r.toString();return a?`${i}?${a}`:i}function Fd({authoritative:e,isActiveViewer:t,isDocumentEngaged:n,isDataWsOpen:r,lastClaim:i}){return!t||!n||!r?`none`:Ad({authoritative:e,isActiveViewer:t,lastClaim:i})?`rebid`:`resync`}function Id({isActiveViewer:e,lastClaim:t,owedClaim:n}){return e?n??t:null}function Ld({authoritative:e,applied:t,proposal:n,isActiveViewer:r,isDataWsOpen:i,lastClaim:a}){let o=!!e&&!Dd(e,t),s=Od(n)?kd(n):null,c=r&&!!s&&!Dd(s,a);return{resizeTo:o?e:null,owedClaim:c?s:null,keepsPendingSettle:r&&!s,sendUnview:!r&&i&&!!a,isFollowing:Ad({authoritative:e,isActiveViewer:r,lastClaim:a})}}function Rd(e){return e instanceof ArrayBuffer||ArrayBuffer.isView(e)?new TextDecoder().decode(e):null}function zd(e){let t=Rd(e);return t===null?null:Ed(t)}function Bd(e,t){if(typeof e==`string`)return{kind:`bytes`,data:e};let n=zd(e);return n?n.type===`output-beat`?{kind:`beat`}:t.hasSeenSize?n.seq<=t.lastSeq?{kind:`stale`}:{kind:`size`,cols:n.cols,rows:n.rows,seq:n.seq}:{kind:`attach-size`,cols:n.cols,rows:n.rows,seq:n.seq}:{kind:`ignored`}}var Vd=``,Hd=`\x1B`,Ud=`\r`,Wd=new Map([[`deleteContentBackward`,Vd],[`deleteByComposition`,Vd],[`deleteCompositionText`,Vd],[`deleteWordBackward`,Hd],[`deleteSoftLineBackward`,Hd],[`deleteHardLineBackward`,Hd]]);function Gd(e){return Wd.get(e)??``}var Kd=new Set([`insertFromPaste`,`insertFromPasteAsQuotation`,`insertFromDrop`,`insertFromYank`,`historyUndo`,`historyRedo`]);function qd(e){return typeof e!=`string`||e===``||!Kd.has(e)}function Jd(e){return e?e.keyCode===229||e.key===`Process`:!1}function Yd(e,t){let n=Array.from(e??``),r=Array.from(t??``),i=Math.min(n.length,r.length),a=0;for(;a<i&&n[a]===r[a];)a++;return Vd.repeat(n.length-a)+r.slice(a).join(``).replace(/\r\n|\n|\r/g,Ud)}var Xd=/https?:\/\/[^\s<>"']+/g,Zd=new Set([`.`,`,`,`;`,`:`,`!`,`?`,`'`,`"`]),Qd={")":`(`,"]":`[`,"}":`{`};function $d(e,t){let n=0;for(let r of e)r===t&&n++;return n}function ef(e){for(;;){let t=e[e.length-1];if(t===void 0)return e;if(Zd.has(t)){e=e.slice(0,-1);continue}let n=Qd[t];if(n&&$d(e,n)<$d(e,t))e=e.slice(0,-1);else return e}}function tf(e){let t=[];for(let n of e.matchAll(Xd)){let e=ef(n[0]);e.length<=8||t.push({start:n.index,end:n.index+e.length,url:e})}return t}var nf=50;function rf(){return{activate(e,t){Nc(t)},allowNonHttpProtocols:!1}}function af(e,t){let n=t-1;for(;n>0&&e.getLine(n)?.isWrapped&&t-1-n<nf;)n--;let r=t-1;for(;e.getLine(r+1)?.isWrapped&&r-(t-1)<nf;)r++;let i=``,a=[];for(let t=n;t<=r;t++){let n=e.getLine(t);if(!n)break;for(let e=0;e<n.length;e++){let r=n.getCell(e);if(!r)break;if(r.getWidth()===0)continue;let o=r.getChars()||` `;for(let n=0;n<o.length;n++)i+=o[n],a.push({x:e+1,y:t+1})}}return{text:i,cellAt:a}}function of(e){return e.registerLinkProvider({provideLinks(t,n){let r=e.buffer?.active;if(!r)return n(void 0);let{text:i,cellAt:a}=af(r,t),o=[];for(let{start:e,end:t,url:n}of tf(i)){let r=a[e],i=a[t-1];r&&i&&o.push({range:{start:r,end:i},text:n,activate(e,t){Nc(t)}})}n(o.length?o:void 0)}})}var sf=`(?:password|passwd|pwd|token|api[_-]?key|secret|credential|auth[_-]?token|access[_-]?key|secret[_-]?key|private[_-]?key|client[_-]?secret|connection[_-]?string)`,cf=`(?:"[^"\\r\\n]*"|'[^'\\r\\n]*'|[^\\s\\r\\n]+)`,R=`[^\\S\\r\\n]`,lf=`${sf}${R}*(?:=>|[:=])${R}*`,uf=`[?&][A-Za-z0-9_.-]*`,df=`[^\\r\\n;&|]{0,200}?`,ff=`(?:mysql|mysqldump|mysqladmin|mysqlshow|mariadb|mariadb-dump)`,pf=RegExp(`(${lf})${cf}`,`gi`),mf=RegExp(`(\\bBearer${R}+)[A-Za-z0-9._~+/=-]{8,}`,`gi`),hf=[/\bAKIA[0-9A-Z]{16}\b/g,/\bgh[pousr]_[A-Za-z0-9]{16,}\b/g,/\bgithub_pat_[A-Za-z0-9_]{20,}\b/g,/\bsk-ant-[A-Za-z0-9_-]{20,}/g,/\bsk-[A-Za-z0-9_-]{20,}/g,/\bph[cx]_[A-Za-z0-9]{20,}\b/g,/\bxox[abprs]-[A-Za-z0-9-]{10,}\b/g,/\beyJ[A-Za-z0-9_=-]{6,}\.[A-Za-z0-9_=-]{6,}\.[A-Za-z0-9_=-]{4,}/g,/-----BEGIN(?:[A-Z0-9 ]+)? PRIVATE KEY-----/g],gf=[RegExp(`((?:^|\\s)--?${sf}${R}+)${cf}`,`gi`),RegExp(`((?:^|\\s)-(?:pwd|pw)(?![a-z])${R}*=?${R}*)${cf}`,`g`),RegExp(`(-AsPlainText${R}+)${cf}`,`gi`),RegExp(`((?:^|\\s)setx${R}+[^\\s\\r\\n]*${sf}[^\\s\\r\\n]*${R}+)${cf}`,`gi`)],_f=[RegExp(`(\\bauthorization${R}*:${R}*Basic${R}+)[A-Za-z0-9+/=_-]{8,}`,`gi`),RegExp(`(\\bdocker${R}+login\\b${df}${R}-p(?:${R}+|=))${cf}`,`gi`),RegExp(`(\\bcurl\\b${df}${R}(?:--user|-u)(?:${R}+|=)[^\\s:\\r\\n]+:)${cf}`,`gi`),RegExp(`(\\b${ff}\\b${df}${R}-p)${cf}`,`g`),/\b([a-z][a-z0-9+.-]*:\/\/[^\s:/@]+:)[^\s@/]+(?=@)/gi];[...gf,..._f];var vf=[/-----END(?:[A-Z0-9 ]+)? PRIVATE KEY-----/g,/^([^\S\r\n]*)(?=[A-Za-z0-9+/]*[g-zG-Z+/])(?=[A-Za-z0-9+/=]{60,76}[^\S\r\n]*$)[A-Za-z0-9+/]+={0,2}(?=[^\S\r\n]*$)/gm],yf=RegExp(`(${uf}(?:${sf}|_key)=)[^&#\\s]+`,`gi`),bf=[pf,RegExp(`(\\b(?=[A-Z0-9_]*(?:SECRET|TOKEN|KEY|PASSWORD))[A-Z][A-Z0-9_]*=)${cf}`,`g`)],xf=[mf,...gf,..._f,...hf,...vf];function Sf(e,t){return[...e.matchAll(t)].map(e=>({matchStart:e.index,valueStart:e.index+(e[1]??``).length,end:e.index+e[0].length}))}function Cf(e,t){let n=0;return e.filter(e=>{for(;n<t.length&&t[n].end<=e.matchStart;)n+=1;let r=t.at(n);return!r||e.matchStart<r.matchStart})}function wf(e){let t=[];for(let n of e.toSorted((e,t)=>e.start-t.start)){let e=t.at(-1);e&&n.start<=e.end?e.end=Math.max(e.end,n.end):t.push({...n})}return t}function Tf(e){let t=Sf(e,yf);return wf([...t,...bf.flatMap(n=>Cf(Sf(e,n),t)),...xf.flatMap(t=>Sf(e,t))].map(e=>({start:e.valueStart,end:e.end})))}var Ef=`#808080`,Df=new WeakMap;function Of(e,t,n){return`${e}:${t}:${n}`}function kf(e){return Of(e.marker.line,e.x,e.width)}function Af(e,t){let n=t;for(;n>0&&t-n<63&&e.getLine(n)?.isWrapped;)n--;return n}function jf(e,t){let n=t;for(;n-t<63&&e.getLine(n+1)?.isWrapped;)n++;return n}function Mf(e,t,n){let r=``;for(let i=t;i<=n;i++)r+=e.getLine(i)?.translateToString(!1)??``;return r}function Nf(e,t,n,r){let i=``,a=[];for(let o=t;o<=n;o++){let t=e.getLine(o);if(!t)break;for(let e=0;e<t.length;e++){let n=t.getCell(e,r);if(!n)break;let s=n.getWidth();if(s===0)continue;let c=n.getChars()||` `;for(let t=0;t<c.length;t++)i+=c[t],a.push({line:o,x:e,width:s})}}return{text:i,cellAt:a}}function Pf(e,t){let n=null;for(let r of t)n&&n.line===r.line?n.width=Math.max(n.width,r.x+r.width-n.x):(n={line:r.line,x:r.x,width:r.width},e.push(n))}function Ff(e,t,n,r){let i=[];if(Tf(Mf(e,t,n)).length===0)return i;let{text:a,cellAt:o}=Nf(e,t,n,r);for(let e of Tf(a))Pf(i,o.slice(e.start,e.end));return i}function If(e,t){let n=e.getNullCell(),r=[],i=t;for(;i<e.length;){let t=jf(e,i);r.push(...Ff(e,i,t,n)),i=t+1}return r}function Lf(){return{masks:[],watermark:null,isFullRescanOwed:!0}}function Rf(e){e.decoration.dispose(),e.marker.dispose()}function zf(e){for(let t of e.masks)Rf(t);e.masks.length=0,e.watermark?.dispose(),e.watermark=null,e.isFullRescanOwed=!0}function Bf(e,t){let n=e.watermark;return e.isFullRescanOwed||!n||n.isDisposed?0:Math.min(n.line,t.baseY)}function Vf(e){let t=0;for(;t<e.masks.length&&e.masks[t].marker.isDisposed;)e.masks[t].decoration.dispose(),t++;t>0&&e.masks.splice(0,t)}function Hf(e,t){let n=new Map,r=e.masks.at(-1);for(;r&&(r.marker.isDisposed||r.marker.line>=t);)e.masks.pop(),r.marker.isDisposed&&r.decoration.dispose(),r.marker.isDisposed||n.set(kf(r),r),r=e.masks.at(-1);return Vf(e),n}function Uf(e,t){let n={normal:Lf(),alternate:Lf()},r=e.cols;function i(t){return e.buffer.active.type===t}function a(t,n){if(!i(n)||t.isDisposed)return!1;let r=t.line-e.buffer.active.viewportY;return r>=0&&r<e.rows}function o(t,n,r){t.style.backgroundColor=e.options.theme?.foreground??Ef,t.style.pointerEvents=`none`,t.style.display=a(n,r)?`block`:`none`}function s(e){for(let t of n[e].masks){let n=t.decoration.element;n&&o(n,t.marker,e)}}function c(t,n){let r=e.registerMarker(t.line-(n.baseY+n.cursorY));if(!r)return null;let i=e.registerDecoration({marker:r,x:t.x,width:t.width,layer:`top`});if(!i)return r.dispose(),null;let a=n.type;return i.onRender(e=>o(e,r,a)),{marker:r,decoration:i,x:t.x,width:t.width}}function l(){if(!Qo())return;let t=e.buffer.active,r=n[t.type],i=Af(t,Bf(r,t)),a=Hf(r,i);for(let e of If(t,i)){let n=Of(e.line,e.x,e.width),i=a.get(n);a.delete(n);let o=i??c(e,t);o&&r.masks.push(o)}for(let e of a.values())Rf(e);r.watermark?.dispose(),r.watermark=e.registerMarker(-t.cursorY)??null,r.isFullRescanOwed=!1}function u(){zf(n.normal),zf(n.alternate)}function d(){u(),r=e.cols,l()}let f=[e.onWriteParsed(l),e.onResize(({cols:e})=>{e!==r&&(r=e,n.normal.isFullRescanOwed=!0,n.alternate.isFullRescanOwed=!0,l())}),e.buffer.onBufferChange(e=>{zf(n.alternate),s(`normal`),e.type===`alternate`&&l()})],p=es(d);t.addEventListener(`abort`,()=>{p();for(let e of f)e.dispose();u(),Df.delete(e)},{once:!0}),Df.set(e,d)}function Wf(e){Df.get(e)?.()}function Gf({hasTerminal:e,isSocketOpen:t,isInputHeld:n}){return e?n||!t?`connecting`:`live`:`none`}var Kf=`Upload`;async function qf(e,t){return bn(Kf,e),Yf(e,t)}async function Jf(e,t){bn(Kf,e);for(let n of t)await Yf(e,n)}async function Yf(e,t){let n={"x-glimmervoid-upload-name":encodeURIComponent(t.name)};t.type&&(n[`content-type`]=t.type);try{let r=await fetch(`/upload/${encodeURIComponent(e)}`,{method:`POST`,body:t,headers:n});return r.ok?!0:(F({source:Kf,sessionId:e,message:await Xf(r,t.name)}),!1)}catch{return F({source:Kf,sessionId:e,message:`${t.name} was not uploaded because the server did not answer. Check that Glimmervoid is running, then drop the file again.`}),!1}}async function Xf(e,t){try{let n=await e.json();if(n&&typeof n.error==`string`)return`${t} was not uploaded: ${n.error.replace(/\.$/,``)}. Fix that, then drop the file again.`}catch{}return`${t} was not uploaded (HTTP ${e.status}). Drop the file again, or check the Glimmervoid terminal for errors.`}var Zf=10,Qf=1.2,$f=.005,ep=4,tp=.08,np=5;function rp(e,t){let n=Math.abs(t);return n<Zf?!1:n>Math.abs(e)*Qf}function ip(e,t,n=1/0){if(!(t>0))return{scrollLines:0,remainderPx:e};let r=Math.trunc(e/t),i=Math.max(-n,Math.min(n,r));return{scrollLines:i===0?0:-i,remainderPx:e-i*t}}function ap(e,t,n){let r=e.length>=ep?e.slice(1):e.slice();return r.push({positionPx:t,timestampMs:n}),r}function op(e){if(!e||e.length<2)return 0;let t=e[0],n=e[e.length-1],r=n.timestampMs-t.timestampMs;if(!(r>0))return 0;let i=(n.positionPx-t.positionPx)/r,a=Math.abs(i);if(!(a>=tp))return 0;let o=Math.min(a,np);return i<0?-o:o}function sp({velocityPxPerMs:e,startedAtMs:t,cellHeightPx:n,pendingPx:r=0}){return!e||!(n>0)?null:{velocityPxPerMs:e,lastMs:t,cellHeightPx:n,pendingPx:r}}function cp(e,t){if(!e)return{scrollLines:0,state:null};let n=t-e.lastMs;if(!(n>0))return{scrollLines:0,state:e};let r=Math.abs(e.velocityPxPerMs)-$f*n;if(!(r>0))return{scrollLines:0,state:null};let i=e.velocityPxPerMs<0?-1:1,a=i*r*n,{scrollLines:o,remainderPx:s}=ip(e.pendingPx+a,e.cellHeightPx);return{scrollLines:o,state:{velocityPxPerMs:i*r,lastMs:t,cellHeightPx:e.cellHeightPx,pendingPx:s}}}function lp(e,t){return e===`alternate`||!!t&&t!==`none`}function up(e,t){return!(e>0)||!(t>0)?0:e/t}var dp=1;function fp(e){return typeof e._core?._viewport?.handleTouchScroll==`function`}function pp(e,t){for(let n of e)if(n.identifier===t)return n;return null}function mp(e,t){if(fp(t))return;let n=()=>document.documentElement.dataset.layout===`phone`,r=null,i=0,a=0,o=0,s=!1,c=0,l=[],u=null,d=null,f=()=>{d!==null&&cancelAnimationFrame(d),d=null,u=null},p=()=>lp(t.buffer?.active?.type,t.modes?.mouseTrackingMode),m=()=>{let e=t.element?.querySelector(`.xterm-screen`);return up(e?.clientHeight||t.element?.clientHeight||0,t.rows)},h=()=>{r=null,s=!1,c=0,l=[]},g=(e,n,r)=>{let i=e<0?-1:1;for(let a=0;a<Math.abs(e);a++)t.element?.dispatchEvent(new WheelEvent(`wheel`,{deltaY:i,deltaMode:dp,clientX:n,clientY:r,bubbles:!0,cancelable:!0}))},_=()=>{if(d=null,!u)return;if(!e.isConnected||!n()||p()){f();return}let r=t.buffer?.active?.viewportY,{scrollLines:i,state:a}=cp(u,performance.now());u=a,i!==0&&t.scrollLines(i),u&&(i!==0&&t.buffer?.active?.viewportY===r?f():d=requestAnimationFrame(_))},v=(e,t,n)=>{u=sp({velocityPxPerMs:e,startedAtMs:t,cellHeightPx:m(),pendingPx:n}),u&&(d=requestAnimationFrame(_))};e.addEventListener(`touchstart`,e=>{if(f(),!n()||e.touches.length!==1){h();return}let t=e.touches[0];r=t.identifier,i=t.clientX,a=t.clientY,o=t.clientY,s=!1,c=0,l=[]},{passive:!0}),e.addEventListener(`touchmove`,e=>{if(r===null||!n())return;let u=pp(e.touches,r);if(!u)return;if(!s){if(!rp(u.clientX-i,u.clientY-a))return;s=!0,o=u.clientY,c=0,l=ap([],u.clientY,e.timeStamp)}e.cancelable&&e.preventDefault(),c+=u.clientY-o,o=u.clientY,l=ap(l,u.clientY,e.timeStamp);let d=p(),{scrollLines:f,remainderPx:h}=ip(c,m(),d?8:void 0);c=h,f!==0&&(d?g(f,u.clientX,u.clientY):t.scrollLines(f))},{passive:!1}),e.addEventListener(`touchend`,e=>{if(!s||p()){h();return}l=ap(l,o,e.timeStamp);let t=op(l),n=c;h(),t!==0&&v(t,performance.now(),n)},{passive:!0}),e.addEventListener(`touchcancel`,()=>{f(),h()},{passive:!0})}function hp(e){return e.needsReload?!0:e.wasAttachedWithoutLayout&&e.hasLayoutNow}function gp(e,t,n=[]){let r=new Set(Array.isArray(n)?n:[n]),i=[];for(let n of e)e.length-i.length>=t&&!r.has(n)&&i.push(n);return i}var _p=null,vp=null;function yp(){return _p}function bp(){return _p?Promise.resolve(_p):(vp??=Promise.all([bi(()=>import(`./xterm-BdQ2Kshh.js`).then(e=>e.t),[]),bi(()=>import(`./xterm-BdQ2Kshh.js`).then(e=>e.r),[]),bi(()=>import(`./xterm-BdQ2Kshh.js`).then(e=>e.n),[])]).then(([e,t,n])=>(_p={Terminal:e.Terminal,FitAddon:t.FitAddon,WebglAddon:n.WebglAddon},_p)).catch(e=>{throw vp=null,e}),vp)}var xp=window.matchMedia?.(`(pointer: coarse)`).matches?4:12,Sp=new Map;function Cp(e){return e.clientWidth>0&&e.clientHeight>0}function wp(e){let t=e.webglAddon;if(!t)return;let n=[...e.term?.element?.querySelectorAll(`canvas`)??[]];e.webglAddon=null;try{t.dispose()}catch{}for(let e of n)e.getContext(`webgl2`)?.getExtension(`WEBGL_lose_context`)?.loseContext()}function Tp(e){Sp.delete(e),e.needsWebGLReload=!1,e.webglAttachedWithoutLayout=!1,wp(e)}function Ep(e){let t=[e],n=I.snapshot().borrowedCardId,r=n?P.get(n):void 0;r&&t.push(r);for(let e of gp([...Sp.keys()],xp,t))Tp(e),e.needsWebGLReload=!0}function Dp(e){e?.term&&hp({needsReload:e.needsWebGLReload,wasAttachedWithoutLayout:e.webglAttachedWithoutLayout,hasLayoutNow:Cp(e.termWrap)})&&Mp(e,{isForced:!0})}function Op(){for(let e of Sp.keys()){let t=e.term;if(e.webglAddon&&t)try{t.clearTextureAtlas(),t.refresh(0,t.rows-1)}catch{Tp(e),e.needsWebGLReload=!0}}}var kp=!1;function Ap(){kp||(kp=!0,requestAnimationFrame(()=>{kp=!1,Op()}))}function jp(e){e?.addEventListener(`contextrestored`,Ap)}function Mp(e,t={}){try{if(e.webglAddon&&!e.needsWebGLReload&&!t.isForced){Sp.delete(e),Sp.set(e,!0);return}e.webglAddon&&(wp(e),Sp.delete(e));let n=yp();if(!n)return;Ep(e);let r=new n.WebglAddon;r.onContextLoss(()=>{r.dispose(),e.webglAddon=null,Sp.delete(e),e.needsWebGLReload=!0});let i=e.term;if(!i)throw Error(`webgl: the terminal was disposed before the addon loaded`);i.loadAddon(r),r.onChangeTextureAtlas(jp),r.onAddTextureAtlasCanvas(jp),jp(r.textureAtlas),e.webglAddon=r,e.needsWebGLReload=!1,e.webglAttachedWithoutLayout=!Cp(e.termWrap),Sp.set(e,!0),requestAnimationFrame(()=>{e.webglAddon===r&&e.term&&e.term.refresh(0,e.term.rows-1)})}catch{e.webglAddon=null,e.needsWebGLReload=!1,e.webglAttachedWithoutLayout=!1,Sp.delete(e)}}function Np(e){let t=Nt(e,ha,{isTerminalFocused:!0},va());return t?kt(t,document.body.dataset.activeView):!1}var Pp=1024,Fp=250,Ip=`(max-width: 768px)`,Lp=12,Rp=14,zp=5e4,Bp=!1;function Vp(e){Bp=e}var Hp=!1;window.addEventListener(`blur`,()=>{Hp=!0}),window.addEventListener(`focus`,()=>{Hp=!1});function Up(e){let t=document.activeElement;return jd({isDocumentVisible:document.visibilityState===`visible`,isDocumentFocused:document.hasFocus(),hasFocusInsideCard:t instanceof Node&&e.contains(t),hasWindowBlurredSinceFocus:Hp,isPhoneLayout:Du()})}function Wp(e,t){return Md({isBorrowedCard:I.snapshot().borrowedCardId===t,isTerminalFaceShown:e.face===`terminal`})}var Gp=new WeakMap,Kp=new WeakMap,qp=new WeakSet,Jp=new WeakSet,Yp=new WeakSet,Xp=new WeakMap,Zp=5e3,Qp=15e3,$p=`Keys you type now are held and sent once the terminal reconnects.`,em=`The terminal is still reconnecting and its key buffer is full, so new keys are dropped.`,tm=`The agent copied text. The browser needs a click before it can reach your clipboard.`,nm=`The clipboard is unavailable in this browser.`;function rm(e,t,n,r){let i=Xp.get(e);i&&(i.clearTimerId!==null&&clearTimeout(i.clearTimerId),i.clearTimerId=null,i.shownKind=t,i.status.show(n,r),n!==`busy`&&(i.clearTimerId=setTimeout(()=>im(e,t),n===`ok`?Zp:Qp)))}function im(e,t){let n=Xp.get(e);n&&n.shownKind===t&&(n.clearTimerId!==null&&clearTimeout(n.clearTimerId),n.clearTimerId=null,n.shownKind=null,n.status.clear())}function am(e){let t=e.buffer.active;return t.viewportY<t.baseY}function om(e,t,{hasNewOutput:n=!1}={}){let r=Xp.get(e)?.jumpToLatestButton;if(!r)return;let i=am(t);r.hidden=!i,i?n&&(r.dataset.hasNewOutput=`true`):delete r.dataset.hasNewOutput}function sm(e,t){if(Gp.has(e)||!am(t))return;let n=t.buffer.active,r=n.length-n.viewportY;qp.has(e)?Gp.set(e,r):Kp.set(e,r)}function cm(e,t,n){let r=e.term;r&&Nd({viewportTopLine:n,scrollbackLineCount:r.buffer.active.baseY,isDeepHistoryLoadedOrPending:qp.has(e)})&&(qp.add(e),Jp.add(e),Gp.set(e,r.buffer.active.length-n),Rm(t))}var lm=new WeakMap;function um(e,t){return document.visibilityState===`visible`&&!Wp(e,t)}function dm(e,t){if(e&&jm(e,t))return;let n=e?.dataWs;if(!e||n?.readyState!==WebSocket.OPEN)return;let r=um(e,t);lm.get(n)!==r&&(lm.set(n,r),n.send(JSON.stringify({type:r?`resume-output`:`pause-output`})))}function fm(){for(let[e,t]of P)dm(t,e)}document.addEventListener(`visibilitychange`,fm),I.subscribe((e,t)=>{t.includes(`borrowedCardId`)&&fm()});function pm(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return new TextDecoder().decode(n)}function mm(e,t,n){let r=(n instanceof Error?n.message:``)||String(n);console.error(`[clipboard:${t}]`,n),rm(e,`clipboard`,`error`,`Clipboard ${t} failed: ${r}`)}function hm(e,t,n,r){let i=je(t);i?i.then(()=>{r&&rm(e,`clipboard`,`ok`,r)}).catch(t=>mm(e,n,t)):rm(e,`clipboard`,`error`,nm)}function gm(e,t){let n=Xp.get(e);n&&(n.pendingClipboardText=t,n.clipboardPrompt.hidden=!1)}function _m(e){let t=Xp.get(e),n=t?.pendingClipboardText;t&&n!=null&&(t.pendingClipboardText=null,t.clipboardPrompt.hidden=!0,hm(e,n,`osc52 write`,`Copied to the clipboard.`))}function vm(e,t,n){let r=vn(`terminal-notice`),i=k(`div`,`terminal-clipboard-prompt`);i.hidden=!0;let a=k(`button`,`btn-dialog btn-dialog-confirm`,`Copy to clipboard`);a.type=`button`,a.addEventListener(`click`,()=>_m(t)),i.append(k(`span`,`terminal-clipboard-prompt-text`,tm),a);let o=k(`div`,`terminal-notices`);o.append(i,r.element);let s=k(`button`,`terminal-jump-latest btn-dialog btn-dialog-ghost`,`Jump to latest`);s.type=`button`,s.hidden=!0,s.addEventListener(`click`,()=>{n.scrollToBottom(),n.focus()});let c=k(`div`,`terminal-drop-zone`);c.setAttribute(`aria-hidden`,`true`),c.append(k(`span`,`terminal-drop-zone-label`,`Drop to upload to this session`)),e.append(o,s,c),Xp.set(t,{status:r,shownKind:null,clearTimerId:null,clipboardPrompt:i,pendingClipboardText:null,jumpToLatestButton:s})}function ym(e,t){return P.get(e)===t&&!t.dataWs}function bm(e){return e.querySelector(`:scope > .terminal-connecting`)}function xm(e){if(bm(e))return;let t=k(`div`,`terminal-connecting`);t.append(k(`span`,`terminal-connecting-label`,`Connecting`)),e.append(t)}function Sm(e){let t=bm(e);if(!t)return;t.querySelector(`:scope > .terminal-connecting-animal`)?.remove();let n=Qr();n&&t.prepend(Zr(n,`terminal-connecting-animal`))}var Cm=new Set,wm=new WeakSet;function Tm(e){return Cm.add(e),()=>Cm.delete(e)}function Em(){let e=0;for(let[t,n]of P)n.card.dataset.link===`connecting`&&um(n,t)&&e++;return e}function Dm(e){let t=Gf({hasTerminal:e.term!==null||wm.has(e),isSocketOpen:e.dataWs?.readyState===WebSocket.OPEN,isInputHeld:Pm}),n=t===`connecting`&&!Pm&&Jp.has(e)?`live`:t;if(n===`none`){delete e.card.dataset.link,Om();return}let r=n===`connecting`&&e.card.dataset.link!==`connecting`;e.card.dataset.link=n,r&&Sm(e.termWrap),Om()}function Om(){for(let e of Cm)e()}function km(e,t,n){sm(t,n),Gu.unregister(e),t.dataWs=null,Dm(t),t._resetGridClaim?.()}function Am(e,t,n,r){km(e,t,n),r===0&&We()?Nm(e,t,n):setTimeout(()=>{ym(e,t)&&qe().catch(()=>{}).then(()=>{ym(e,t)&&Nm(e,t,n)})},r)}function jm(e,t){return!Yp.has(e)||!e.term||!um(e,t)?!1:(Yp.delete(e),e._dataWsRetryAttempt=0,Am(t,e,e.term,0),!0)}function Mm(e,t,n){km(e,t,n),Yp.add(t)}function Nm(e,t,n){Yp.delete(t);let r=Gp.get(t);Gp.delete(t);let i=Kp.get(t);Kp.delete(t);let a=r!==void 0,o=r??i,s=!1,c=um(t,e),l=Qe(location,He(Pd(e,a,!c))),u=new WebSocket(l);lm.set(u,c),u.binaryType=`arraybuffer`,t.dataWs=u,Dm(t);let d=!1,f=!1,p={hasSeenSize:!1,lastSeq:0},m=setTimeout(()=>{u.readyState===WebSocket.CONNECTING&&(f=!0,u.close())},Ve);Gu.register(e,(e,t)=>n.write(e,t)),u.addEventListener(`message`,r=>{if(t.dataWs!==u)return;let i=Bd(r.data,p);if(i.kind===`bytes`){ct(t);let r=s;if(s=!1,Gu.enqueue(e,i.data),!r)return;let a=o??0;Gu.enqueueAction(e,()=>{n.scrollToLine(Math.max(0,n.buffer.active.length-a))});return}if(i.kind===`beat`){ct(t);return}if(i.kind===`attach-size`){s=o!==void 0,a||qp.delete(t),p.hasSeenSize=!0,p.lastSeq=i.seq,n.reset(),Wf(n),t.ptySize={cols:i.cols,rows:i.rows},t._syncGrid?.();return}if(i.kind!==`size`)return;p.lastSeq=i.seq;let c={cols:i.cols,rows:i.rows};Gu.enqueueAction(e,()=>{t.ptySize=c,t._syncGrid?.()})}),u.addEventListener(`close`,()=>{if(clearTimeout(m),t.dataWs!==u)return;if(Jp.delete(t),!d&&!f&&Be(),!um(t,e)){Mm(e,t,n);return}let r=et(t._dataWsRetryAttempt||0);t._dataWsRetryAttempt=(t._dataWsRetryAttempt||0)+1,Am(e,t,n,r)}),u.addEventListener(`open`,()=>{clearTimeout(m),d=!0,t._dataWsRetryAttempt=0,Jp.delete(t),Dm(t),dm(t,e),t._syncGrid?.({isActivationEdge:!0}),t._retryOwedGridClaim?.(),t._inputQueue?.length&&setTimeout(()=>{t.dataWs===u&&Fm(t)},50)})}var Pm=!1;function Fm(e){let t=e._inputQueue,n=e.dataWs;if(!Pm&&t?.length&&n?.readyState===WebSocket.OPEN){for(let e of t)n.send(JSON.stringify({type:`input`,data:e}));t.length=0,im(e,`keys`)}}function Im(){Pm=!0;for(let e of P.values())Dm(e)}function Lm(){Pm=!1;for(let e of P.values())Dm(e),Fm(e)}function Rm(e){let t=M(e);if(typeof e!=`string`||!t?.term)return;let n=t.dataWs;t._dataWsRetryAttempt=0,Am(e,t,t.term,0),n?.close()}function zm(){for(let[e,t]of P)t.term&&(um(t,e)?Rm(e):Bm(e,t,t.term))}function Bm(e,t,n){let r=t.dataWs;r&&(Mm(e,t,n),r.close())}function Vm(){for(let[e,t]of P)t.term&&Bm(e,t,t.term)}function Hm(e,t){let n=e.dataWs;e.dataWs=null,Gu.unregister(t),n&&n.readyState<=WebSocket.OPEN&&n.close()}function Um(e,t,n){if(!e||t==null||t===``)return!1;if(n?.fromSoftKeyboard||e._resetSoftKeyboardBuffer?.(),!Pm&&!e._inputQueue?.length&&e.dataWs?.readyState===WebSocket.OPEN)return e.dataWs.send(JSON.stringify({type:`input`,data:t})),!0;if(!e._inputQueue)return!1;let r=e.dataWs?.readyState!==WebSocket.OPEN;return e._inputQueue.length>=Pp?(rm(e,`keys`,`error`,em),!1):(e._inputQueue.push(t),r&&rm(e,`keys`,`busy`,$p),!0)}function Wm(e,t,n){let r=window.matchMedia?.(Ip).matches?Lp:Rp,i=new n.Terminal({cursorBlink:Bp,fontSize:r,fontFamily:Lu(),theme:hd(),scrollback:zp,allowProposedApi:!0,linkHandler:rf()}),a=new n.FitAddon;i.loadAddon(a),xm(e),i.open(e),vm(e,t,i),of(i),Uf(i,t.abortController.signal),t.term=i,t.fitAddon=a,Tp(t);let o=null,s=null,c=!1,l=null,u=null;function d(){s!==null&&(clearTimeout(s),s=null)}function f(){if(!c)return null;let e=t.fitAddon;if(!e)return null;let n=e.proposeDimensions();return n?{cols:n.cols,rows:n.rows}:null}function p(e){if(!c||!Up(t.card)||t.dataWs?.readyState!==WebSocket.OPEN)return!1;t.dataWs.send(JSON.stringify({type:`claim`,cols:e.cols,rows:e.rows})),l=e,u=null;let n=Ad({authoritative:t.ptySize??null,isActiveViewer:c,lastClaim:l});return t.card.dataset.grid=n?`following`:`exact`,!0}function m(e){d(),u=e,s=setTimeout(()=>{s=null,p(e)},Fp)}function h(){u&&s===null&&p(u)}function g({isActivationEdge:e=!1}={}){let n=t.term;if(!n)return;let r=Ld({authoritative:t.ptySize??null,applied:{cols:n.cols,rows:n.rows},proposal:f(),isActiveViewer:c,isDataWsOpen:t.dataWs?.readyState===WebSocket.OPEN,lastClaim:l});r.resizeTo&&n.resize(r.resizeTo.cols,r.resizeTo.rows),t.card.dataset.grid=r.isFollowing?`following`:`exact`,r.keepsPendingSettle||(d(),u=null),r.sendUnview?(l=null,t.dataWs?.send(JSON.stringify({type:`unview`}))):r.owedClaim&&(e&&p(r.owedClaim)||m(r.owedClaim))}function _(){let e=Fd({authoritative:t.ptySize??null,isActiveViewer:c,isDocumentEngaged:Up(t.card),isDataWsOpen:t.dataWs?.readyState===WebSocket.OPEN,lastClaim:l});e!==`none`&&(d(),e===`rebid`&&(l=null),g({isActivationEdge:!0}))}let v=new ResizeObserver(()=>{o===null&&(o=requestAnimationFrame(()=>{o=null,g()}))});v.observe(e),t.resizeObserver=v,t._syncGrid=g,t._resetGridClaim=()=>{d(),u=Id({isActiveViewer:c,lastClaim:l,owedClaim:u}),l=null},t._retryOwedGridClaim=h,t._syncGridOnEngagementEdge=_,t._isActiveViewer=()=>c,t._setActiveViewer=e=>{c!==e&&(c=e,d(),u=null,e&&Dp(t),g({isActivationEdge:!0}))},t.card.addEventListener(`focusin`,()=>{Hp=!1,_()},{signal:t.abortController.signal}),Mp(t);let y=null;i.onScroll(()=>{y===null&&(y=requestAnimationFrame(()=>{y=null,t.term&&(t.term.refresh(0,t.term.rows-1),om(t,t.term))}))}),i.onWriteParsed(()=>om(t,i,{hasNewOutput:!0})),i.parser.registerOscHandler(52,e=>{let n=e.indexOf(`;`);if(n<0)return!0;let r=e.slice(n+1);if(r===``||r===`?`)return!0;let i;try{i=pm(r)}catch(e){return mm(t,`osc52 decode`,e),!0}return document.hasFocus()&&navigator.userActivation?.isActive!==!1?(hm(t,i,`osc52 write`),!0):(gm(t,i),!0)}),i.attachCustomKeyEventHandler(e=>{if(e.shiftKey&&e.key===`Enter`)return e.type===`keydown`&&Um(t,`\x1B\r`),!1;if(e.type!==`keydown`)return!0;if(Np(e))return!1;let n=e.ctrlKey||e.metaKey;if(n&&e.key===`c`&&i.hasSelection()){let e=i.getSelection();return i.clearSelection(),hm(t,e,`copy`),!1}return n&&e.key===`v`?!1:n&&e.key===`Backspace`?(Um(t,`\x1B`),!1):!0}),Gm(e,i,t),mp(e,i)}function Gm(e,t,n){let r=t.textarea;if(!r)return;let i=``,a=()=>{i=r.value},o=()=>{i=``,Du()&&r.value!==``&&(r.value=``)};n._resetSoftKeyboardBuffer=o;let s=()=>{let e=Yd(i,r.value);return i=r.value,e!==``&&(Um(n,e,{fromSoftKeyboard:!0}),t.scrollToBottom(),!0)},c=(t,n)=>{e.addEventListener(t,e=>{Du()?n(e):a()},!0)};c(`keydown`,e=>{Jd(e)?e.stopPropagation():(s(),queueMicrotask(o))}),c(`compositionstart`,e=>{e.stopPropagation()}),c(`compositionupdate`,e=>{e.stopPropagation()}),c(`compositionend`,e=>{e.stopPropagation(),setTimeout(s,0)}),c(`input`,e=>{if(!qd(e.inputType)){queueMicrotask(o);return}if(e.stopPropagation(),s())return;let r=Gd(e.inputType);r!==``&&(Um(n,r,{fromSoftKeyboard:!0}),t.scrollToBottom())})}function Km(e,t){e._inputQueue=[];let n=e.term;n&&(n.onData(n=>{Um(e,n),e.unseenOutcome&&j({type:`dismiss`,id:t,expectedState:e.currentState})}),n.onScroll(n=>{cm(e,t,n)}),Jm(e.termWrap,t,e.abortController.signal),Dm(e),queueMicrotask(()=>{ym(t,e)&&Nm(t,e,n)}))}function qm(e){return!!e&&Array.from(e.types).includes(`Files`)}function Jm(e,t,n){e.addEventListener(`paste`,e=>{let n=e.clipboardData;n&&n.files.length!==0&&n.getData(`text/plain`)===``&&(e.preventDefault(),e.stopPropagation(),Jf(t,Array.from(n.files)))},{capture:!0,signal:n}),e.addEventListener(`dragover`,t=>{qm(t.dataTransfer)&&(t.preventDefault(),t.dataTransfer.dropEffect=`copy`,e.dataset.dropTarget=`true`)},{signal:n}),e.addEventListener(`dragleave`,t=>{t.relatedTarget instanceof Node&&e.contains(t.relatedTarget)||delete e.dataset.dropTarget},{signal:n}),e.addEventListener(`drop`,n=>{delete e.dataset.dropTarget,qm(n.dataTransfer)&&(n.preventDefault(),n.stopPropagation(),Jf(t,Array.from(n.dataTransfer.files)))},{capture:!0,signal:n})}function Ym(e,t){if(e.term||wm.has(e))return;let n=yp();if(n){Xm(e,t,n);return}wm.add(e);let r=e._isActiveViewer?.()===!0;e._isActiveViewer=()=>r,e._setActiveViewer=e=>{r=e},xm(e.termWrap),Dm(e),bp().then(n=>{wm.delete(e),!(e.term||e.abortController.signal.aborted||P.get(t)!==e)&&(Xm(e,t,n),e._setActiveViewer?.(r))},()=>{wm.delete(e),Dm(e)})}function Xm(e,t,n){Wm(e.termWrap,e,n),Km(e,t)}function Zm(e){e?._syncGridOnEngagementEdge?.()}function Qm(e,t){if(!e)return;Ym(e,t),dm(e,t),Dp(e);let n=e.term;n&&(n.refresh(0,n.rows-1),Zm(e))}function $m(e,t,n){e&&(n&&Ym(e,t),e._setActiveViewer?.(n))}var eh=`conversation:`,th=1e4,nh=48,rh=`, `,ih=`+`,ah=`■`,oh=`↑`,sh=1e3,ch={command:`Run command?`,fileChange:`Apply file changes?`,permissions:`Grant permissions?`},lh=1;function uh(e){e?.previewUrl&&URL.revokeObjectURL(e.previewUrl)}function dh(e,t,n){let r=k(`button`,`conversation-icon-button ${e}`,t);return r.type=`button`,r.title=n,r.setAttribute(`aria-label`,n),r}function fh(e){return e.conversationApproval!==null||$l(e.currentState,e.pendingPromptKind)}function ph(e,t,n,r,i=0){let a=n[i];a?setTimeout(()=>{M(e)===t?i>0&&fh(t)?r(`stopped-by-prompt`):Um(t,a.data)?ph(e,t,n,r,i+1):r(`unreachable`):r(`unreachable`)},a.delayBeforeMs):r(`sent`)}function mh({signal:e,sendControl:t,showTerminal:n}){let r=k(`div`,`conversation-face`);r.hidden=!0;let i=k(`div`,`conversation-log`);i.setAttribute(`role`,`log`),i.setAttribute(`aria-live`,`polite`);let a=k(`p`,`conversation-empty`,`No conversation yet. Messages appear here as the agent works.`),o=k(`div`,`conversation-approval`);o.hidden=!0;let s=k(`p`,`conversation-bridge-note`,`Restart this Codex session to connect it to the conversation view. Until then, use the terminal.`);s.hidden=!0;let c=k(`p`,`conversation-bridge-note`,`The session trace is unavailable, so there is nothing to show here. Use the terminal.`);c.hidden=!0;let l=k(`details`,`conversation-working`),u=k(`summary`,`conversation-working-summary`);u.setAttribute(`role`,`status`);let d=k(`ul`,`conversation-agent-list`);l.append(u,d),l.hidden=!0;let f=k(`form`,`conversation-composer`),p=k(`p`,`conversation-status`);p.setAttribute(`role`,`status`);let m=k(`div`,`conversation-attachment`);m.hidden=!0;let h=k(`div`,`conversation-composer-row`),g=dh(`conversation-attach`,ih,`Attach a photo or file`),_=k(`input`,`conversation-file-picker`);_.type=`file`,_.hidden=!0;let v=k(`textarea`,`conversation-input`);v.dataset.dashboardShortcuts=`allowed`,v.rows=1,v.placeholder=`Message the agent`,v.setAttribute(`aria-label`,`Message the agent`);let y=dh(`conversation-stop`,ah,`Stop the current turn (Esc)`),x=dh(`conversation-send`,oh,`Send`);x.type=`submit`,h.append(g,v,y,x),f.append(p,m,h,_),r.append(i,l,c,s,o,f);let S=null,C=[],ee=0,te=!1,w=null,ne=!1,re=null,ie=!1,ae=[],T=[],oe=null,se=!1,ce=new Set;function le(){return S?M(S)??null:null}function E(e){p.textContent=e}function ue(){v.style.height=`auto`,v.style.height=`${v.scrollHeight+v.offsetHeight-v.clientHeight}px`}function de(){w&&clearTimeout(w.timeoutHandle),w=null}function fe(){if(!S||r.hidden||!c.hidden)return;if(w){ne=!0;return}let e=`${eh}${lh++}`,n=te?ee:null;t(n===null?{type:`session-trace`,id:S,requestId:e,endingAt:`tail`}:{type:`session-trace`,id:S,requestId:e,after:n})?(ne=!1,w={requestId:e,after:n,timeoutHandle:setTimeout(()=>{w=null,fe()},th)}):E(`Conversation unavailable while disconnected.`)}function pe(){return i.scrollHeight-i.scrollTop-i.clientHeight<=nh}function me(e){let t=k(`a`,`conversation-image-link`);t.href=e,t.target=`_blank`,t.rel=`noopener`;let n=k(`img`,`conversation-image`);return n.src=e,n.alt=`Attached image`,n.loading=`lazy`,n.addEventListener(`error`,()=>t.remove(),{once:!0}),t.append(n),t}function he(e){let t=k(`article`,`conversation-message conversation-user is-pending`);return e.text&&t.append(k(`p`,`conversation-text`,e.text)),e.attachment?.previewUrl&&t.append(me(e.attachment.previewUrl)),e.attachment&&!e.attachment.previewUrl&&t.append(k(`p`,`conversation-attachment-name`,e.attachment.name)),t}function ge(e){let t=k(`article`,`conversation-message conversation-${e.kind}`);return e.kind===`assistant`?(t.append(Uo(Ro(e.text))),t):(t.append(k(`p`,`conversation-text`,e.text)),e.kind===`user`&&t.append(...e.imageUrls.map(me)),t)}function D(e,t){e.replaceChildren(...t.map(e=>{let t=k(`li`,`conversation-agent is-${e.state}`);return t.append(k(`span`,`conversation-agent-name`,e.description),k(`span`,`conversation-agent-state`,e.state)),t}))}function _e(e){if(e.agentRuns.length===0)return k(`p`,`conversation-work`,gu(e));let t=k(`details`,`conversation-work`);t.open=ce.has(e.key),t.addEventListener(`toggle`,()=>{t.open?ce.add(e.key):ce.delete(e.key)});let n=k(`ul`,`conversation-agent-list`);return D(n,e.agentRuns),t.append(k(`summary`,``,gu(e)),n),t}function ve(){return le()?.currentState===b.RUNNING}function ye(){let e=le(),t=uu(T),n=ve()?du(T)?.agentRuns??[]:[],r=[...new Set([...n,...t])];if(l.hidden=!e||!ve()&&t.length===0,l.hidden||!e)return;let i=ve()?Math.max(0,Date.now()-e.stateSince):null;u.textContent=_u(i,t.length),l.classList.toggle(`has-agents`,r.length>0),D(d,r)}function be(){let e=!r.hidden&&ve();e&&!oe&&(oe=setInterval(ye,sh)),!e&&oe&&(clearInterval(oe),oe=null),ye()}function O(){i.scrollTop=i.scrollHeight}function xe(){let e=se||pe();T=lu(C);let t=Date.now(),n=ae.filter(e=>pu(e,T,t));for(let e of n)uh(e.attachment);ae=ae.filter(e=>!n.includes(e));let r=[...(ve()&&du(T)?T.slice(0,-1):T).map(e=>e.kind===`work`?_e(e):ge(e)),...ae.map(he)];i.replaceChildren(...r.length>0?r:[a]),ye(),e&&(O(),requestAnimationFrame(O),te&&(se=!1))}function Se(){if(m.replaceChildren(),m.hidden=!re,re){if(re.previewUrl){let e=k(`img`,`conversation-attachment-thumbnail`);e.src=re.previewUrl,e.alt=``,m.append(e)}m.append(k(`span`,`conversation-attachment-name`,re.name))}}function Ce(e){re!==e&&uh(re),re=e,Se()}function we(e,t=()=>{}){let n=le();if(!n||!S||!e){E(`Unable to reach this session.`);return}E(``);let r={sent:``,unreachable:`Unable to reach this session.`,"stopped-by-prompt":`Not sent: a prompt appeared, so the message was typed but not submitted. Check the terminal.`};ph(S,n,e,e=>{E(r[e]),t(e)})}function A(e,n,r){S&&E(t({type:`conversation-approval`,id:S,requestId:e.requestId,decision:n,...r?{answers:r}:{}})?``:`Unable to send the answer while disconnected.`)}function Te(e,t){let n=k(`button`,`conversation-approval-action`,e);return n.type=`button`,n.addEventListener(`click`,t),n}function Ee(e){return e.kind===`tool`?`Allow ${e.toolName??`this tool`}?`:ch[e.kind]??`Approve this request?`}function De(e){o.append(k(`p`,`conversation-approval-note`,`This request cannot be shown in full here. Read and answer it in the terminal.`));let t=k(`div`,`conversation-approval-actions`);t.append(Te(`Open terminal`,()=>n()),Te(`Decline`,()=>A(e,`decline`))),o.append(t)}function Oe(e){if(o.append(k(`p`,`conversation-approval-title`,Ee(e)),k(`pre`,`conversation-approval-summary`,e.summary)),e.isSummaryTruncated){De(e);return}let t=k(`div`,`conversation-approval-actions`);t.append(Te(`Approve`,()=>A(e,`accept`))),e.kind!==`tool`&&t.append(Te(`Approve for session`,()=>A(e,`acceptForSession`))),e.alwaysAllowSummary&&(o.append(k(`p`,`conversation-approval-note`,`Always allow adds, for this session only: ${e.alwaysAllowSummary}`)),t.append(Te(`Always allow`,()=>A(e,`acceptForSession`)))),t.append(Te(`Decline`,()=>A(e,`decline`))),o.append(t)}function ke(e){let t=k(`p`,`conversation-approval-title`,e.question);return e.header&&t.prepend(k(`span`,`conversation-question-header`,e.header)),t}function Ae(e,t){o.append(ke(t));let n=k(`div`,`conversation-question-options`);for(let r of t.options){let i=Te(r.label,()=>A(e,`accept`,{[t.question]:r.label}));r.description&&(i.title=r.description),n.append(i)}let r=k(`div`,`conversation-approval-actions`);r.append(Te(`Decline`,()=>A(e,`decline`))),o.append(n,r)}function je(e,t){let n=k(`form`,`conversation-question-form`);t.forEach((e,t)=>{let r=k(`fieldset`,`conversation-question`),i=k(`legend`,`conversation-question-text`,e.question);e.header&&i.prepend(k(`span`,`conversation-question-header`,e.header)),r.append(i);for(let n of e.options){let i=k(`label`,`conversation-question-option`),a=k(`input`);a.type=e.multiSelect?`checkbox`:`radio`,a.name=`question-${t}`,a.value=n.label,i.append(a,k(`span`,``,n.label)),n.description&&(i.title=n.description),r.append(i)}n.append(r)});let r=k(`div`,`conversation-approval-actions`),i=k(`button`,`conversation-approval-action`,`Send answers`);i.type=`submit`,r.append(i,Te(`Decline`,()=>A(e,`decline`))),n.append(r),n.addEventListener(`submit`,r=>{r.preventDefault();let i={};t.forEach((e,t)=>{let r=[...n.querySelectorAll(`input[name="question-${t}"]:checked`)].map(e=>e.value);r.length>0&&(i[e.question]=r.join(rh))}),Object.keys(i).length===t.length?A(e,`accept`,i):E(`Answer every question first.`)}),o.append(n)}function Me(e){let t=e.questions??[];if(e.isSummaryTruncated||t.length===0){o.append(k(`p`,`conversation-approval-title`,`Claude Code has a question`),k(`pre`,`conversation-approval-summary`,e.summary)),De(e);return}let[n]=t;t.length===1&&!n.multiSelect?Ae(e,n):je(e,t)}function Ne(e){e.kind===`question`?Me(e):Oe(e)}function Pe(){o.append(k(`p`,`conversation-approval-title`,`The agent is waiting on a prompt`)),o.append(k(`p`,`conversation-approval-note`,`Read and answer it in the terminal.`));let e=k(`div`,`conversation-approval-actions`);e.append(Te(`Open terminal`,()=>n())),o.append(e)}function Fe(){let e=le();o.replaceChildren();let t=e?.conversationApproval??null,n=e?$l(e.currentState,e.pendingPromptKind):!1,r=e?.agent===`codex`&&!e.hasConversationBridge;s.hidden=!r,o.hidden=!t&&!n,x.disabled=!o.hidden||r,Ie(),e&&(t?Ne(t):n&&Pe())}function Ie(){g.disabled=x.disabled||ie}function Le(e){let t=Xl(e,v.value);return t||!re?t:Zl(e)}function Re(){let e=le();y.disabled=e?.currentState!==b.RUNNING,be()}f.addEventListener(`submit`,e=>{if(e.preventDefault(),x.disabled)return;let t=Le(le()?.agent);if(!t)return;let n={text:v.value.trim(),attachment:re,sentAt:Date.now(),userKeysAtSend:fu(T)};v.value=``,ue(),re=null,Se(),ae.push(n),se=!0,xe(),we(t,e=>{e!==`sent`&&(uh(n.attachment),ae=ae.filter(e=>e!==n),xe())})},{signal:e}),v.addEventListener(`input`,ue,{signal:e});let ze=0,Be=new ResizeObserver(()=>{let e=i.clientHeight,t=ze===0;ze=e,t&&e!==0&&(se=!0,O(),te&&(se=!1))});Be.observe(i),e?.addEventListener(`abort`,()=>{oe&&clearInterval(oe),Be.disconnect()},{once:!0}),v.addEventListener(`keydown`,e=>{e.key!==`Enter`||e.shiftKey||e.isComposing||Du()||(e.preventDefault(),f.requestSubmit())},{signal:e}),y.addEventListener(`click`,()=>we(Ql(le()?.agent)),{signal:e}),g.addEventListener(`click`,()=>_.click(),{signal:e}),_.addEventListener(`change`,()=>{let e=_.files?.[0];if(_.value=``,!e||!S)return;if(x.disabled){E(`Not attached: the agent is not ready for a message. Check the terminal.`);return}let t=S;ie=!0,Ie(),qf(t,e).then(n=>{if(ie=!1,Ie(),!n||S!==t)return;let r=e.type.startsWith(`image/`)?URL.createObjectURL(e):null;Ce({name:e.name,previewUrl:r})})},{signal:e});function Ve(e){if(S!==e){S=e,C=[],ee=0,te=!1,de(),Ce(null),ce.clear();for(let e of ae)uh(e.attachment);ae=[],E(``)}r.hidden=!1,c.hidden=!0,se=!0,xe(),Ue(),fe()}function He(){r.hidden=!0,de(),be()}function Ue(){r.hidden||(Fe(),Re(),xe())}function j(e){if(!w||e.requestId!==w.requestId)return!1;let t=w;if(de(),e.id!==S)return!0;let n=t.after!==null&&e.start===t.after&&!e.reset;return t.after!==null&&!n?(te=!1,C=[],fe(),!0):(C=vu(t.after===null?[...e.records]:[...C,...e.records]),ee=e.next,te=!0,xe(),ne&&fe(),!0)}function We(e){return!w||e.requestId!==w.requestId?!1:(de(),ne=!1,c.hidden=!1,!0)}function Ge(e){e!==S||r.hidden||(c.hidden=!0,fe())}return{el:r,show:Ve,hide:He,refresh:Ue,applyTraceResponse:j,applyTraceError:We,applyTraceChanged:Ge}}var hh=22,gh={image:`Image`,video:`Video`,page:`Page`},_h=new WeakMap;function vh(e){let t=e.registerMarker(0);if(!t)return null;let n=_h.get(e);if(n&&!n.marker.isDisposed&&n.marker.line===t.line)return t.dispose(),n;let r={marker:t,chipCount:0};return _h.set(e,r),r}function yh(e,t){let n=k(`button`,`shown-chip`);if(n.type=`button`,n.title=t.caption??t.pageTitle??t.name,n.setAttribute(`aria-label`,`Open ${t.name}`),t.kind===`image`){let r=k(`img`,`shown-chip-thumb`);r.src=`/shown/${encodeURIComponent(e)}/${encodeURIComponent(t.id)}`,r.alt=``,r.decoding=`async`,n.append(r)}return t.kind!==`image`&&n.append(k(`span`,`shown-chip-kind`,gh[t.kind])),n.append(k(`span`,`shown-chip-name`,t.pageTitle??t.name)),n.addEventListener(`click`,n=>{n.stopPropagation(),Js(e,t.id)}),n}function bh(e,t,n){let r=vh(e);if(!r)return;let i=e.registerDecoration({marker:r.marker,anchor:`right`,x:r.chipCount*hh,width:hh,layer:`top`});if(!i)return;r.chipCount+=1;let a=yh(t,n);i.onRender(e=>{e.contains(a)||e.replaceChildren(a),e.classList.add(`shown-chip-slot`)})}function xh(e,t){let n=M(e)?.term;if(n)for(let r of t)bh(n,e,r)}function Sh(e){if(!e)return 0;let t=0;return e.listenerMismatch&&t++,e.orphanPty&&t++,e.destroyedReachable&&t++,t}function Ch(e,t){return e||Sh(t)>0}var wh={DORMANT:`DOR`,INITIALIZING:`INI`,STARTING:`STA`,RUNNING:`RUN`,WAITING:`WAI`,IDLE:`IDL`,COMPLETE:`CMP`,DONE:`DON`,FAILED:`FAI`},Th=null,Eh=!1,Dh=!1,Oh=null,kh=null,Ah=null,jh=`—`;function Mh(e){return e==null?jh:ue(e,`GB`)}function Nh(e){return e==null?jh:u(e,{smallestUnit:`s`,dropsZeroRemainder:!1})}function Ph(e){return e==null?jh:`${Nh(Math.max(0,Math.round((Date.now()-e)/1e3)))} ago`}function Fh(){let e=k(`div`,`health-footer`);e.dataset.expanded=`false`,e.hidden=!0;let t=k(`div`,`health-summary`),n=k(`button`,`health-toggle`);n.type=`button`,n.setAttribute(`aria-expanded`,`false`),n.setAttribute(`aria-controls`,`health-detail`);let r=k(`span`,`health-chev`,`▲`);r.setAttribute(`aria-hidden`,`true`),n.append(r,k(`span`,`health-toggle-label`,`Health`));let i=k(`div`,`health-stats`);t.append(n,i);let a=k(`div`,`health-detail`);return a.id=`health-detail`,a.hidden=!0,n.addEventListener(`click`,()=>{Dh=!Dh,e.dataset.expanded=String(Dh),n.setAttribute(`aria-expanded`,String(Dh)),a.hidden=!Dh,Dh&&(j({type:`request-health-snapshot`}),Lh())}),e.append(t,a),Oh=e,kh=i,Ah=a,e}function Ih(){if(!kh||!Th)return;let e=Th,t=Sh(e.anomalies);kh.innerHTML=`
11
+ <span class="health-stat" title="V8 heap used"><span class="health-stat-label">Heap</span> ${Mh(e.process.heapUsed)}</span>
12
+ <span class="health-stat" title="Resident set size (process memory)"><span class="health-stat-label">RSS</span> ${Mh(e.process.rss)}</span>
13
+ <span class="health-stat" title="External buffers (PTY data lives here)"><span class="health-stat-label">Ext</span> ${Mh(e.process.external)}</span>
14
+ <span class="health-stat" title="Active resources (handles + requests)"><span class="health-stat-label">Hdl</span> ${e.process.activeResources}</span>
15
+ <span class="health-stat" title="Memory headroom at the last start check, and starts held for memory"><span class="health-stat-label">Mem</span> ${Mh(e.memoryGate?.headroomBytes)} / ${e.memoryGate?.heldStartCount??0} held</span>
16
+ <span class="health-stat" title="Sessions: alivePty / total"><span class="health-stat-label">Sess</span> ${e.sessions.alivePty}/${e.sessions.total}</span>
17
+ <span class="health-stat" title="WebSockets: control + data"><span class="health-stat-label">WS</span> ${e.websockets.control}+${e.websockets.data}</span>
18
+ <span class="health-stat" title="Server uptime"><span class="health-stat-label">Up</span> ${Nh(e.uptimeSeconds)}</span>
19
+ ${t>0?`<span class="health-anomaly" title="${t} anomaly type(s), expand for details">⚠ ${t}</span>`:``}
20
+ `}function Lh(){if(!Ah||!Th)return;let e=Th,t=e.process,n=e.websockets,r=e.sessions,i=e.anomalies,a=``;if(Sh(i)>0){let e=[];i.listenerMismatch&&e.push(`Listener count mismatch: data WS listener leaked or missing`),i.orphanPty&&e.push(`Orphan PTY: session has live PTY but state is DONE/FAILED/DORMANT`),i.destroyedReachable&&e.push(`Destroyed session still reachable in sessions map`),a=`
21
+ <div class="health-section health-section-warn">
22
+ <div class="health-section-title">⚠ Anomalies</div>
23
+ ${e.map(e=>`<div class="health-row">${e}</div>`).join(``)}
24
+ </div>
25
+ `}let o=r.list.map(e=>{let t=[];e.destroyed&&t.push(`destroyed`),e.pendingRestart&&t.push(`pendingRestart`);let n=Object.entries(e.timers).filter(([,e])=>e).map(([e])=>e).join(`,`)||`none`;return`
26
+ <tr>
27
+ <td>${Bn(e.name)}</td>
28
+ <td class="health-mono">${wh[e.state]||e.state}</td>
29
+ <td class="health-mono">${e.hasPty?e.ptyPid:jh}</td>
30
+ <td class="health-mono">${Mh(e.outputBufferBytes)}</td>
31
+ <td class="health-mono">${e.outputBufferEntries}</td>
32
+ <td class="health-mono">${e.dataListenerCount}</td>
33
+ <td class="health-mono health-dim">${n}</td>
34
+ <td class="health-mono health-dim">${t.join(` `)||``}</td>
35
+ </tr>
36
+ `}).join(``);Ah.innerHTML=`
37
+ ${a}
38
+ <div class="health-section">
39
+ <div class="health-section-title">Process</div>
40
+ <div class="health-grid">
41
+ <div class="health-row"><span class="health-label">Heap used</span><span class="health-mono">${Mh(t.heapUsed)}</span></div>
42
+ <div class="health-row"><span class="health-label">Heap total</span><span class="health-mono">${Mh(t.heapTotal)}</span></div>
43
+ <div class="health-row"><span class="health-label">RSS</span><span class="health-mono">${Mh(t.rss)}</span></div>
44
+ <div class="health-row"><span class="health-label">External</span><span class="health-mono">${Mh(t.external)}</span></div>
45
+ <div class="health-row"><span class="health-label">Array buffers</span><span class="health-mono">${Mh(t.arrayBuffers)}</span></div>
46
+ <div class="health-row"><span class="health-label">Active resources</span><span class="health-mono">${t.activeResources}</span></div>
47
+ <div class="health-row"><span class="health-label">Uptime</span><span class="health-mono">${Nh(e.uptimeSeconds)}</span></div>
48
+ </div>
49
+ </div>
50
+
51
+ <div class="health-section">
52
+ <div class="health-section-title">Memory gate</div>
53
+ <div class="health-grid">
54
+ <div class="health-row"><span class="health-label">Headroom</span><span class="health-mono">${Mh(e.memoryGate?.headroomBytes)}</span></div>
55
+ <div class="health-row"><span class="health-label">Read</span><span class="health-mono">${Ph(e.memoryGate?.headroomReadAtMs)}</span></div>
56
+ <div class="health-row"><span class="health-label">Starts held</span><span class="health-mono">${e.memoryGate?.heldStartCount??0}</span></div>
57
+ </div>
58
+ </div>
59
+
60
+ <div class="health-section">
61
+ <div class="health-section-title">WebSockets</div>
62
+ <div class="health-grid">
63
+ <div class="health-row"><span class="health-label">Control clients</span><span class="health-mono">${n.control}</span></div>
64
+ <div class="health-row"><span class="health-label">Data clients</span><span class="health-mono">${n.data}</span></div>
65
+ <div class="health-row"><span class="health-label">Tracked per session</span><span class="health-mono">${n.dataPerSessionTotal}</span></div>
66
+ </div>
67
+ </div>
68
+
69
+ <div class="health-section">
70
+ <div class="health-section-title">Sessions (${r.total} total · ${r.alivePty} alive PTY)</div>
71
+ <div class="health-row health-dim">Listeners ${r.totalDataListeners} · Output buffer ${Mh(r.totalOutputBufferBytes)}</div>
72
+ <table class="health-table">
73
+ <thead>
74
+ <tr>
75
+ <th>Name</th><th>State</th><th>PID</th><th>Buffer</th><th>Entries</th><th>Listeners</th><th>Timers</th><th>Flags</th>
76
+ </tr>
77
+ </thead>
78
+ <tbody>${o||`<tr><td colspan="8" class="health-dim">No sessions</td></tr>`}</tbody>
79
+ </table>
80
+ </div>
81
+ `}function Rh(){if(!Oh)return;let e=Ch(Eh,Th?.anomalies),t=Oh.hidden;Oh.hidden=!e,e&&t&&Th&&(Ih(),Dh&&Lh())}function zh(e){Eh=e,Rh()}function Bh(e){if(Oh)return Oh;let t=Fh();return e.appendChild(t),Rh(),t}function Vh(e){Th=e,Rh(),Oh&&!Oh.hidden&&(Ih(),Dh&&Lh())}var Hh=Object.freeze([{kind:`approve`,label:`Approve`},{kind:`revise`,label:`Send feedback`},{kind:`terminal`,label:`Answer in terminal`}]);function Uh(e){return e===`approve`||e===`approve-accept-edits`}function Wh(e){return(e.state===`decided`||e.state===`closed`)&&Uh(e.lastDecision)}function Gh(e,t){let n=e.reviews.find(e=>e.agentId===t);return n!==void 0&&Wh(n)}function Kh(e,t){return e.reviews.find(e=>e.agentId===t)??e.reviews[0]??null}function qh(e){let t=Kh(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 Jh(e,t){return Kh(e,t)?.openRevision?.revision??null}function Yh(e,t,n){if(n===null)return null;let r=Kh(e,t)?.revisions??[],i=r.findIndex(e=>e.revision===n);return i<=0?null:r[i-1].revision}function Xh(e,t){let n=t-e;return Number.isFinite(n)?Me(n,{rounding:`floor`,wording:`abbreviated`,suffix:` ago`,justNowBelowSeconds:60}):`just now`}function Zh(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 Qh(e,t,n){let r=Zh(e,t,n),i=(e.pendingCommentCount??0)>0,a=e.hasUnsavedComment!==!0;return Hh.map(({kind:e,label:t})=>({kind:e,label:t,enabled:r&&(e===`terminal`||a&&(e===`revise`?i:!i))}))}function $h(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 eg(e){let t=0;for(let n of e.comments??[])t+=n.comment.trim().length+(n.heading?.length??0);return t}function tg(e){return new TextEncoder().encode(JSON.stringify(e)).byteLength+c}function ng(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`:eg(e)>1e4?`the feedback composes more than the ${le} characters the hook reply carries, so nothing was sent`:tg(e)>ye?`the decision is larger than one control frame carries, so nothing was sent`:null}function rg(e){return e?`, ${e}`:``}function ig(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=$h(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 ag(e,t,n){let r=ig(e,t,n);return r?`${r}${rg(e.problem)}`:e.problem??``}function og(e){let t=Kh(e.state,e.selectedAgentId),n=qh(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:Yh(e.state,t?.agentId??null,n),status:ag(e,t,n),actions:Qh(e,t,n),modes:[{kind:`read`,label:`Read`,enabled:!0},{kind:`changes`,label:`Changes`,enabled:Yh(e.state,t?.agentId??null,n)!==null&&e.isDraft!==!0},{kind:`edit`,label:`Edit`,enabled:Zh(e,t,n)}]}}function sg(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 cg({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 lg=10;function ug(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 dg(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 fg(e,t,n){let r=e.get(t)??[];r.push(n),e.set(t,r)}function pg(e,t){for(let n of e.hotspots)fg(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<lg||fg(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 mg(e,t){return t.severity-e.severity||e.openPath.localeCompare(t.openPath)||e.dedupeKey.localeCompare(t.dedupeKey)}function hg(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:ug(r)});let r=new Map,i=new Map,a=e.error?[e.error]:[];for(let t of e.repos){for(let e of dg(t,n))r.has(e.dedupeKey)||r.set(e.dedupeKey,e);pg(t,i),t.error&&a.push(e.repos.length>1?`${t.name}: ${t.error}`:t.error)}return{worthALook:[...r.values()].sort(mg),hintsByOpenPath:i,repos:e.repos.map(e=>({name:e.name,sessionPathPrefix:e.sessionPathPrefix})),errors:a}}function gg(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 _g=5;function vg(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 yg(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,_g);if(a.length>0){let e=k(`div`,`review-look-list`);for(let t of a)e.append(vg(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 bg(e){return(e??[]).map(e=>{let t=k(`span`,`review-file-hint`,e.text);return t.title=e.title,t})}function xg(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 Sg(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=xg(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 Cg(e,t){return t===`merged`||t===`none`||e===`parked`&&t===`pending-review`}function wg(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 Tg({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=Ag(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 Eg({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?Tg({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 Dg(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 ${Ag(t)}.`}function Og(e,t){return e.namesMergeTarget?null:`merges into ${Ag(t)}`}function kg({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 Ag(e){return e||`base`}function jg(e,t){return`Merge into ${Ag(e)}, push it, and rebase this worktree, then keep working (${t})`}function Mg(e){return e===`base-diverged`?`Resync the base branch by hand, then Merge again.`:`Needs manual merge`}function Ng(e,t,n){let r=e!==`parked`||e===`parked`&&t===`base-diverged`;return{isRendered:r,isEnabled:r&&e!==`merging`&&n}}function Pg({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 Fg({fetched:e,changedFileCount:t,hasCommits:n}){return!e||t>0||n}function Ig(e){return e||`its upstream`}function Lg(e){if(!e)return null;let t=e.branch||`Base branch`,{state:n,ahead:r,behind:i}=e,a=Ig(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 Rg(e){return!e||e.fetched===!1?`recheck`:e.state===`ahead`||e.state===`behind`?`resync`:`recheck`}function zg(e,t,n){let r=n?` (${t})`:``;if(!e||Rg(e)===`recheck`)return`Click to fetch and check again${r}`;let i=e.branch||`Base branch`,a=Ig(e.upstream);return e.state===`behind`?`Click to fast-forward ${i} to ${a}${r}`:`Click to push ${i} to ${a}${r}`}function Bg(e){return e?.state!==`in-sync`||e.fetched===!1}function Vg(e){if(e.error)return`Resync failed: ${e.error}`;let t=e.branch||`The base branch`,n=Ig(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 Hg=new Set([`pending-review`,`parked`]),Ug=600,Wg=Lt(`merge`,ha),Gg=Lt(`resolve-or-resync`,ha),Kg={minPx:260,maxPx:700},qg=16,Jg=5e3,Yg=new Map,Xg=new Map,Zg=new Map,Qg=new Map,$g=new Map,e_=new Map,t_=new Set,n_=new WeakMap,r_=new WeakMap,i_=new Set,a_=new Set,o_=!1,s_=null,c_=null,z=null,B=null,l_=null,u_=null,d_=null,f_=null,p_=null,m_=!1,h_=null,g_=null,__=null,v_=null,y_=new Map,V=null,b_=null;function x_(e,t){let n=k(`button`,`review-icon-button`);return n.type=`button`,n.title=e,n.setAttribute(`aria-label`,e),n.append(mn(t)),n}function S_(){m_=!1,z?.querySelector(`.review-more-menu`)?.remove(),z?.querySelector(`.review-more-button`)?.setAttribute(`aria-expanded`,`false`)}function C_({panel:e}){if(c_=e,!c_)return;let t=c_,n=k(`div`,`review-sidebar-head`),r=k(`span`,`review-sidebar-title`,`Review`);p_=k(`span`,`review-sidebar-session`),r.append(p_);let i=e=>{t.toggleAttribute(`data-collapsed`,e),wt(!e)},a=x_(`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=x_(`Open review`,`M10 3L5 8L10 13`);s.classList.add(`review-sidebar-open`),s.addEventListener(`click`,()=>i(!1)),u_=k(`div`,`review-rail-status`),d_=k(`span`,`review-rail-added`),f_=k(`span`,`review-rail-removed`),u_.append(d_,f_),l_=k(`span`,`review-rail-label`,`Review`),o.append(s,l_,u_),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`,!ut()),T_(B),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&m_&&(e.preventDefault(),S_(),z?.querySelector(`.review-more-button`)?.focus())}),document.addEventListener(`pointerdown`,e=>{m_&&e.target instanceof Element&&(z?.contains(e.target)&&e.target.closest(`.review-more-button, .review-more-menu`)||S_())}),Jc({resizer:c,column:t,widthHost:t,widthProperty:`--sidebar-width`,bounds:Kg,keyStepPx:qg,getStoredWidth:Yt,setStoredWidth:Tt,growsLeftward:!0}),mi(e=>{m_=!1,__=null,i_.clear(),a_.clear(),o_=!1,s_=null,e&&Q_(e),e&&!ev(e)&&tv(e),H()}),H()}function w_(e,t){let n=Yg.get(e);Yg.set(e,t),Cg(n,t)&&(Zg.delete(e),Qg.delete(e),$g.delete(e),e===L()&&$_(e)),e===L()&&H()}function T_(e){let t=!1,n=null,r=null,i=e=>j({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),mi(a)}function E_(e){c_&&(e?(Te(c_,e),H()):(ge(c_),H()))}function D_(e,t,n=null){let r=t||`none`;Xg.set(e,n);let i=y_.get(e);i!==void 0&&i!==r&&y_.delete(e),w_(e,r)}function O_(e){let t=N(e);t&&y_.delete(t)&&t===L()&&H()}function k_(e,t,n=null){Xg.set(e,n),y_.delete(e),w_(e,t||`none`)}function A_(e,t){Zg.set(e,t),Qg.delete(e),e===L()&&(s_&&sv(s_,t),H(),cv())}function j_(e,t){let n=N(e);n&&(Qg.set(n,t),n===L()&&H())}function M_(e,t){let n=N(e);if(!n)return;let r=y.safeParse(t);r.success&&r.data.sessionId===n&&($g.set(n,r.data),n===L()&&H())}function N_(e,t){let n=N(e),r=t;e_.set(n,r),r&&r.action!==void 0&&P_(n,r),n===L()&&H()}function P_(e,t){t_.delete(e),clearTimeout(b_??void 0),b_=null;let n=Vg(t);V=n?{forId:e,text:n,isError:!!t.error}:null,V&&!V.isError&&(b_=setTimeout(()=>{V&&V.forId===e&&(V=null),H()},5e3))}function F_(e){let t=N(e);t&&t===L()&&Q_(t)}function I_(e){let t=N(e);if(t!==L())return;let n=!Zg.has(t)||Qg.has(t),r=!$g.has(t)||L_($g.get(t));n&&Q_(t),r&&!n&&$_(t),H()}function L_(e){return e?!!e.error||e.repos.some(e=>e.error!==null):!1}function R_(e){let t=N(e);Yg.delete(t),Xg.delete(t),Zg.delete(t),Qg.delete(t),$g.delete(t),e_.delete(t),t_.delete(t),V&&V.forId===t&&(clearTimeout(b_??void 0),V=null),t===L()?pi(null):H()}function z_(){let e=L(),t=e?P.get(e):null;if(!e||!t)return B_(null,`No session is open to merge.`);if(ev(e))return B_(e,`A workspace session has no worktree to merge.`);if(y_.has(e))return B_(e,`Merge is already on its way for "${ov(t,e)}".`);let n=Yg.get(e)||`none`,r=!!Zg.get(e)?.hasCommits,i=Ng(n,Xg.get(e)||null,J_(t.currentState,r));return kg({status:n,mergeReason:Xg.get(e)||null,live:Z_(t.currentState),isMergeRendered:i.isRendered,hasChanges:q_(e)})!==`merge`||!i.isEnabled?B_(e,Pg({status:n,hasCommits:r,live:Z_(t.currentState),state:t.currentState})??`Nothing to merge in "${ov(t,e)}" right now.`):(Y_(e,t.currentState),!0)}function B_(e,t){return __={forId:e,text:t},clearTimeout(v_??void 0),v_=setTimeout(()=>{__=null,H()},Jg),H(),!1}function V_(){let e=L();if(!e||ev(e))return!1;let t=P.get(e);if(!t)return!1;let n=Yg.get(e)||`none`,r=Xg.get(e)||null;return kg({status:n,mergeReason:r,live:Z_(t.currentState),isMergeRendered:Ng(n,r,!1).isRendered,hasChanges:q_(e)})!==`resolve`||H_(e)?!1:(U_(e),!0)}function H_(e){return h_?.forId===e&&!h_.isError}function U_(e){let t=j({type:`resolve-session-merge`,id:e});h_=t?{forId:e,text:`Resolve prompt sent`,isError:!1}:{forId:e,text:`Not connected. The resolve prompt was not sent.`,isError:!0},clearTimeout(g_??void 0),g_=setTimeout(()=>{h_=null,H()},t?3e3:Jg),H()}function W_(){let e=L();return!e||!P.has(e)||ev(e)||rv(e)?!1:(iv(e),!0)}function G_(e){if(!e)return{committed:[],uncommitted:[]};let t=n_.get(e);if(t)return t;let n={committed:Sg(e.committed?.diff||``),uncommitted:Sg(e.uncommitted?.diff||``)};return n_.set(e,n),n}function K_(e){let t=r_.get(e);if(t)return t;let n=hg(e);return r_.set(e,n),n}function q_(e){let t=G_(Zg.get(e)),n=[...t.committed,...t.uncommitted],r=Zg.get(e)??null;return Fg({fetched:Zg.has(e),changedFileCount:wg(n).files,hasCommits:!!r?.hasCommits})}function J_(e,t){return(se.includes(e)||e===b.RUNNING)&&t}function Y_(e,t){t===b.RUNNING?mr({title:`Merge while working`,message:`This session still looks like it is working. Merging rebases its worktree under it. Merge anyway?`,confirmLabel:`Merge anyway`,onConfirm:()=>X_(e,!0)}):X_(e,!1)}function X_(e,t){y_.has(e)||(j(t?{type:`merge-continue-session`,id:e,force:!0}:{type:`merge-continue-session`,id:e})?(y_.set(e,Yg.get(e)||`none`),e===L()&&H()):B_(e,`Not connected. The merge was not sent.`))}function Z_(e){return e!==b.DORMANT&&e!==b.DONE&&e!==b.FAILED}function Q_(e){j({type:`request-session-diff`,id:e}),$_(e)}function $_(e){$g.has(e)||$g.set(e,null),j({type:`request-change-map`,id:e})}function ev(e){return P.get(e)?.card.dataset.workspace!==void 0}function tv(e){e_.set(e,null),j({type:`request-branch-sync`,id:e}),e===L()&&H()}function nv(e){t_.add(e),clearTimeout(b_??void 0),V&&V.forId===e&&(V=null),j({type:`resync-branch`,id:e}),e===L()&&H()}function rv(e){return t_.has(e)||e_.get(e)===null}function iv(e){rv(e)||(Rg(e_.get(e))===`resync`?nv(e):tv(e))}function av(e,t){return t?{text:`Resyncing`,loading:!0,error:!1}:V&&V.forId===e?{text:V.text,loading:!1,error:V.isError}:null}function ov(e,t){return e?.card?.dataset.session||t}function sv(e,t){if(!t)return;let{committed:n,uncommitted:r}=G_(t);for(let t of n)(t.path===e||t.oldPath===e)&&i_.add(`committed:${t.path}`);for(let t of r)(t.path===e||t.oldPath===e)&&i_.add(`uncommitted:${t.path}`)}function cv(){if(!B||!s_)return;let e=B.querySelectorAll(`.review-file`);for(let t of e)if(t.dataset.path===s_||t.dataset.oldPath===s_){t.scrollIntoView({block:`nearest`}),s_=null;return}}function lv(e){s_=e,sv(e,Zg.get(L()??``)),H(),cv()}function uv(){o_=!0,H()}function H(){let e=B?.scrollTop??0;dv(),B&&(B.scrollTop=e)}function dv(){if(!z||!B)return;z.replaceChildren(),B.replaceChildren(),l_&&(l_.hidden=!0),u_&&(u_.hidden=!0);let e=L(),t=e?P.get(e):null;if(pv(e,t),!e||!t){__&&z.append(fv(__.text,!0)),mv(`No session selected`,`Click a session name to review its changes here.`);return}let n=ev(e),r=Yg.get(e)||`none`,i=Xg.get(e)||null,a=t.currentState,o=Hg.has(r),s=Zg.has(e),c=s?Zg.get(e):null,l=Qg.get(e)??null,{committed:u,uncommitted:d}=G_(c),f=!!c?.hasCommits,p=Z_(a),m=Ng(r,i,J_(a,f)),h=e_.get(e),g=t_.has(e),_=Ag(t.effectiveBase),v=wg([...u,...d]),y=kg({status:r,mergeReason:i,live:p,hasChanges:Fg({fetched:s,changedFileCount:v.files,hasCommits:f}),isMergeRendered:m.isRendered}),b=Eg({status:r,mergeReason:i,fetched:s,hasDiffError:l!==null,hasChanges:v.files>0||f,hasCommits:f,canMerge:!n&&m.isEnabled,isWorkspace:n,live:p,effectiveBase:_,changedFileCount:v.files}),x=b.isEmpty===!0,S=x||Du()||Bg(h),C=k(`div`,`review-status-headline`);if(C.append(k(`span`,`review-status-text`,b.text)),!n&&!S){let t=Lg(h);if(t){C.title=t;let n=x_(`Refresh branch sync`,`M13 6A5 5 0 1 0 13 10M13 2v4H9`);n.classList.add(`review-branch-sync-refresh`),n.title=zg(h,Gg,y!==`resolve`),n.disabled=rv(e),n.setAttribute(`aria-description`,t),n.addEventListener(`click`,()=>iv(e)),C.append(k(`span`,`sr-only`,t),n)}}x||z.append(C);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=hv(e,y!==`resolve`);t&&ee.append(t)}ee.childElementCount>0&&z.append(ee),r===`parked`&&z.append(k(`div`,`review-status-explanation`,Mg(i))),l_&&(l_.hidden=!1),u_&&(u_.hidden=!1,u_.setAttribute(`aria-label`,`${b.text}, +${v.added}, -${v.removed}`),u_.title=b.text),d_&&(d_.textContent=`+${v.added}`),f_&&(f_.textContent=`-${v.removed}`);let te=n?null:bv(e,{status:r,reviewable:o,mergeAction:m,live:p,state:a,effectiveBase:_,primaryAction:y});te&&z.append(te);let w=n?null:av(e,g),ne=!n&&y===`merge`&&!m.isEnabled?Pg({status:r,hasCommits:f,live:p,state:a}):null;if(ne){let e=k(`div`,`review-control-reason`,ne);e.id=`review-merge-reason`,z.append(e),z.querySelector(`#review-merge-btn`)?.setAttribute(`aria-describedby`,e.id)}if(w?.text){let e=k(`div`,w.loading?`review-control-reason review-loading`:`review-control-reason`,w.text);e.id=`review-resync-reason`,w.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(h_?.forId===e&&z.append(fv(h_.text,h_.isError)),__&&(__.forId===e||__.forId===null)&&z.append(fv(__.text,!0)),l){B.append(k(`p`,`review-diff-error`,l));return}if(x){mv(b.text,Dg(n,_));return}let re=$g.get(e),ie=re?K_(re):null,ae=ie?yg(ie,{isShowingAll:o_,onShowAll:uv,onOpenFile:lv}):null;ae&&B.append(ae);let T=u.length>0&&d.length>0;u.length>0&&B.append(gv({kind:`committed`,label:T?`Committed`:null,meaning:Og(b,_),files:u,changeMapView:ie})),d.length>0&&B.append(gv({kind:`uncommitted`,label:T?`Not committed yet`:null,meaning:null,files:d,changeMapView:ie}))}function fv(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 pv(e,t){if(!p_)return;let n=e&&t?ov(t,e):``;p_.textContent=n,p_.hidden=!n,p_.title=n}function mv(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 hv(e,t){let n=e_.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=Lg(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=x_(`Refresh branch sync`,`M13 6A5 5 0 1 0 13 10M13 2v4H9`);return a.classList.add(`review-branch-sync-button`),a.title=zg(n,Gg,t),a.disabled=t_.has(e),a.addEventListener(`click`,()=>iv(e)),i.append(a,k(`span`,`review-branch-sync-label`,r)),i}function gv({kind:e,label:t,meaning:n,files:r,changeMapView:i}){let a=k(`div`,`review-section`);a.dataset.kind=e,t&&a.append(_v(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?gg(s,t.path):null;n&&n!==c&&o.append(k(`div`,`review-repo-label`,n)),c=n,o.append(vv(t,e,i))}return a.append(o),a}function _v(e,t,n){let r=wg(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 vv(e,t,n){let r=`${t}:${e.path}`,i=i_.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=bg(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=i_.has(r);e&&i_.delete(r),e||i_.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>=Ug&&!a_.has(r)){p=!0;break}d.append(k(`div`,`review-hunk-head`,t.header));for(let e of t.lines){if(f>=Ug&&!a_.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`,()=>{a_.add(r),H()}),d.append(e)}return a.append(d),a}function yv({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 bv(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(yv({id:`review-merge-btn`,label:`Merge`,shortcut:Wg,title:jg(o,Wg),disabled:!r.isEnabled||y_.has(e),onClick:()=>Y_(e,a)})),l&&c.append(yv({label:`Resolve`,shortcut:Gg,title:`Paste a resolve prompt into this session so the agent can finish the merge (${Gg})`,disabled:H_(e),onClick:()=>U_(e)}));let u=k(`div`,`review-action-controls`);if(u.append(c),!n||i)return c.childElementCount>0?u:null;let d=x_(`More review actions`,_n);if(d.classList.add(`review-more-button`),d.setAttribute(`aria-haspopup`,`menu`),d.setAttribute(`aria-expanded`,String(m_)),d.setAttribute(`aria-controls`,`review-more-menu`),d.addEventListener(`click`,()=>{m_=!m_,H(),(z?.querySelector(m_?`.review-more-menu button:not(:disabled)`:`.review-more-button`)??z?.querySelector(`.review-more-button`))?.focus()}),c.append(d),!m_)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=yv({label:`Discard worktree`,danger:!0,disabled:t===`merging`,onClick:()=>{m_=!1,H();let t=ov(P.get(e),e);mr({title:`Discard worktree`,message:`Throw away the worktree changes for "${t}"? This cannot be undone.`,confirmLabel:`Discard`,danger:!0,onConfirm:()=>j({type:`discard-session-worktree`,id:e})})}});n.setAttribute(`role`,`menuitem`),f.append(n)}return u.append(f),u}var xv=160,Sv=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 Cv(e){let t=e.split(/\r?\n/,1)[0]?.trim()??``;return t.length<=xv?t:`${t.slice(0,157)}...`}function wv(e,t){let n=Sv[e];if(!n||!t||typeof t!=`object`||Array.isArray(t))return``;let r=t[n];return typeof r==`string`?Cv(r):``}var Tv=5e3;function Ev(e){let t=e.match(/<command-name>([^<]*)<\/command-name>/)?.[1];return t===void 0||/[\r\n]/.test(t)?null:t.trim()||null}function Dv(e,t){if(!e.toolUseId)return Ev(e.text)??`context`;let n=t.get(e.toolUseId);return n?wv(n.name,n.input)||n.name:`expansion`}function Ov(e){return e.kind!==`expansion`||e.toolUseId?!1:Ev(e.text)!==null}function kv(e){return e.kind===`prompt`||e.kind===`session`||Ov(e)}function Av(e){return new TextEncoder().encode(e).byteLength}var jv={prompt:`PROMPT`,expansion:`EXPANSION`,thinking:`THINKING`,assistant:`ASSISTANT`,tool_call:`TOOL`,tool_result:`RESULT`,session:`SESSION`,notice:`NOTICE`,raw:`RAW`};function Mv(e,t){if(e.kind===`prompt`)return{prefix:`Prompt: `,text:Cv(e.text)};if(e.kind===`thinking`)return{prefix:`Thinking: `,text:Cv(e.text)};if(e.kind===`assistant`)return{prefix:`Assistant: `,text:Cv(e.text)};if(e.kind===`notice`)return{prefix:`Notice: `,text:Cv(e.text)};if(e.kind===`raw`)return{prefix:`Raw: `,text:Cv(e.line)};if(e.kind===`session`)return{prefix:`Session: `,text:`${e.vendor} ${e.vendorSessionId}`};if(e.kind===`expansion`)return{prefix:`Expansion: `,text:Dv(e,t)};if(e.kind===`tool_call`){let t=wv(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:`${Av(e.content)} bytes`}}function Nv(e){if(!e.agentType)return``;let t=e.agentId?` ${e.agentId.slice(-6)}`:``;return`[${e.agentType}${t}] `}function Pv(e,t){let n=Mv(e,t),r=Nv(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:jv[e.kind],text:`${r}${i}`,tone:o,badges:a}}function Fv(e,t){return{record:e,...Pv(e,t)}}function Iv(e){return e.kind!==`tool_result`&&e.kind!==`expansion`?null:e.toolUseId||null}function Lv(e,t){let n=Iv(e);return!n||t.has(n)?null:n}function Rv(e,t,n=1){e.set(t,(e.get(t)??0)+n)}function zv(e,t){let n=(e.get(t)??0)-1;n>0?e.set(t,n):e.delete(t)}function Bv(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=Iv(i.record);a&&t.has(a)&&(n.rows[r]=Fv(i.record,e.toolCallByUseId))}}function Vv(){return{turns:[],toolCallByUseId:new Map,unresolvedToolUseCounts:new Map}}function Hv(){return{rowCount:0,toolCallCount:0,errorCount:0,resultBytes:0}}function Uv(e,t,n){e.metrics.rowCount+=n,t.record.kind===`tool_call`&&(e.metrics.toolCallCount+=n),t.record.kind===`tool_result`&&(e.metrics.resultBytes+=Av(t.record.content)*n,t.record.isError&&(e.metrics.errorCount+=n))}function Wv(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=Lv(i,e.toolCallByUseId);t&&Rv(e.unresolvedToolUseCounts,t);let a=Fv(i,e.toolCallByUseId);if(kv(i)){r={head:a,rows:[],hasTrimmedRows:!1,startedAt:i.ts,metrics:Hv()},Uv(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:Hv()},e.turns.push(r),n.push({turnIndex:e.turns.length-1,isNewTurn:!0,head:null,rows:[]})),r.rows.push(a),Uv(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 Gv(e,t){let n=Vv();Wv(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)||Rv(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],Bv(e,i),{newTurns:n.turns,mergedHead:c,mergedRows:l,needsRerender:i.size>0}}function Kv(e){return e.rows.length+ +!!e.head}function qv(e){let t=0;for(let n of e.turns)t+=Kv(n);return t}function Jv(e,t){for(let n of t){if(n.record.kind===`tool_call`){e.toolCallByUseId.delete(n.record.toolUseId);continue}let t=Iv(n.record);t&&zv(e.unresolvedToolUseCounts,t)}}function Yv(e,t){Jv(e,t.head?[t.head,...t.rows]:t.rows)}function Xv(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);Jv(e,i);for(let e of i)Uv(n,e,-1);return n.rows=n.rows.slice(r),n.hasTrimmedRows=!0,r}function Zv(e,t=Tv){let n=qv(e),r=0;for(;n>t&&r<e.turns.length-1;){let t=e.turns[r];if(!t)break;n-=Kv(t),Yv(e,t),r+=1}return r>0&&(e.turns=e.turns.slice(r)),n<=t?{droppedTurnCount:r,droppedRowCount:0}:{droppedTurnCount:r,droppedRowCount:Xv(e,n-t)}}function Qv(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 $v(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 ey(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 ty(e,t=Tv){return!e.selectedSessionId||!e.hasLoadedOnce||e.hasDroppedEarliestRows||e.residentRowCount>=t?!1:e.firstOffset>0}function ny(e,t=Tv){return!ty(e,t)||e.hasPendingRequest||!e.selectedSessionId?null:{id:e.selectedSessionId,direction:`earlier`,after:0,endingAt:e.firstOffset}}function ry(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 iy=1e4,ay=null,oy=null,sy=[],cy=null,ly=null,U=null,uy=null,dy=!1,fy=null,py=()=>!1,my=new Set;function hy(e){for(let t of my)t(e)}function gy(){uy&&=(clearTimeout(uy.timeoutHandle),null)}function _y(){uy=null,fy=`The trace did not load within ${Math.round(iy/1e3)} s.`,hy({kind:`rebuild`})}function vy(e){gy(),dy=!1,fy=null,cy=e,U=e?{sessionId:e,grouping:Vv(),firstOffset:0,nextOffset:0,hasDroppedEarliestRows:!1,filePath:``,hasLoadedOnce:!1}:null,hy({kind:`selection-reset`})}function yy(e){let t=$v(sy,ly,cy,e);return ly&&t===ly&&(ly=null),t!==cy&&(vy(t),!0)}function by(e){if(!ay)return;let t=e.endingAt===void 0?{type:`session-trace`,id:e.id,after:e.after}:{type:`session-trace`,id:e.id,endingAt:e.endingAt};ay(t)?uy={request:e,timeoutHandle:setTimeout(_y,iy)}:(fy=l,hy({kind:`header`}))}function xy(e=!1){if(!ay)return;let t=ey({selectedSessionId:cy,isPanelVisible:e||py(),hasPendingRequest:!!uy,hasLoadedOnce:U?.hasLoadedOnce??!1,nextOffset:U?.nextOffset??0});t&&by(t)}function Sy(){dy&&!uy&&(dy=!1,xy())}function Cy(){if(!U)return;let e=Zv(U.grouping),t=e.droppedTurnCount>0||e.droppedRowCount>0,n=t&&!U.hasDroppedEarliestRows;t&&(U.hasDroppedEarliestRows=!0),hy({kind:`trimmed`,trim:{droppedTurnCount:e.droppedTurnCount,droppedRowCount:e.droppedRowCount,hasJustDroppedEarliestRows:n}})}function wy(e){U&&(hy({kind:`records-appended`,appends:Wv(U.grouping,e)}),Cy())}function Ty(e){U&&(hy({kind:`records-prepended`,prepend:Gv(U.grouping,e)}),Cy())}function Ey(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 Dy(){return{selectedSessionId:cy,hasPendingRequest:!!uy,hasLoadedOnce:U?.hasLoadedOnce??!1,hasDroppedEarliestRows:U?.hasDroppedEarliestRows??!1,firstOffset:U?.firstOffset??0,residentRowCount:U?qv(U.grouping):0}}function Oy(){return{sessionOptions:sy,selectedSessionId:cy,selectedTrace:U,pendingSessionId:uy?.request.id??null,traceFailureText:fy}}function ky(e){my.add(e)}function Ay(e){py=e}function jy(){if(!ay)return;let e=ny(Dy());e&&by(e)}function My(e){sy.some(t=>t.id===e)&&e!==cy&&(ly=null,vy(e),xy(),hy({kind:`rebuild`}))}function Ny(){let e=yy(!0);return xy(!0),e}function Py(e){ay=e}function Fy(e){oy=e}function Iy(e){ly=e,oy?.()}function Ly(e){sy=Qv(e);let t=yy(py());t&&xy(),hy({kind:`sessions`,hasSelectionChanged:t})}function Ry(e){let t=Ey(e);if(!t)return;let n=ry({pendingRequest:uy?.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`?Sy():(gy(),fy&&(fy=null,hy({kind:`header`})),n===`stale`?Sy():n===`reset`?(vy(t.id),U&&(U.filePath=t.path),xy(),hy({kind:`rebuild`}),Sy()):U&&(U.filePath=t.path,n===`prepend`?(U.firstOffset=t.start,Ty(t.records),Sy()):(n===`seed`&&(U.hasLoadedOnce=!0,U.firstOffset=t.start),U.nextOffset=t.next,wy(t.records),Sy())))}function zy(e){let t=e?.id;typeof t==`string`&&t===cy&&py()&&(uy?dy=!0:xy())}function By(e){let t=e?.id;if(typeof t!=`string`||uy?.request.id!==t)return!1;gy(),dy=!1;let n=e?.message;return fy=typeof n==`string`&&n?n:`The trace could not be read.`,hy({kind:`rebuild`}),!0}function Vy(e){gy(),dy=!1,fy=e?null:l,e?(hy({kind:`header`}),xy()):hy({kind:`rebuild`})}var Hy=80,Uy=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 Wy(e){return e.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)}function Gy(e){return e.includes(`.`)?e.replace(/0+$/,``).replace(/\.$/,``):e}function Ky(e){if(typeof e!=`number`||!Number.isFinite(e))return`-`;let t=Math.round(e);return`${t<0?`-`:``}${Wy(String(Math.abs(t)))}`}function qy(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}$${Wy(r)}.${i}`}function Jy(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}${Gy((n/1e3).toFixed(1))}k`:n<999995e3?`${t}${Gy((n/1e6).toFixed(2))}M`:`${t}${Gy((n/1e9).toFixed(2))}B`}function Yy(e){return typeof e!=`number`||!Number.isFinite(e)?`ok`:e>=100?`crit`:e>=Hy?`warn`:`ok`}function Xy(e){let t=ke(e?.max,null);return t===null||t<=0?null:t}function Zy(e){let t=Xy(e),n=ke(e?.pct,null);return t===null||n===null?null:n*100}function Qy(e,t){let n=Xy(t),r=ke(e?.projectedTokens,null);return n===null||r===null?null:r/n*100}var $y=90;function eb(e){let t=e?.budget?.rows;return Array.isArray(t)?t.filter(e=>e&&ke(e.budgetUsd,null)!==null):[]}function tb(e){let t=ke(e?.pct,null);return t===null?0:t}function nb(e,t){let n=e?.[t];if(!n||typeof n!=`object`)return null;let r=ke(n.pct,null),i=ke(n.resetsAtMs,null);return r===null&&i===null?null:{pct:r,resetsAtMs:i}}function rb(e){return e?.vendor===`codex`?`codex`:`claude`}function ib(e){return nb(e,`fiveHour`)?.pct??null}function ab(e,t=null){let n=ib(t);if(n!==null)return Yy(n);let r=Yy(Zy(e?.tokenLimit));return r===`ok`?Yy(Qy(e?.activeBlock?.projection,e?.tokenLimit)):r}function ob(e,t=null){let n=[],r=ab(e,t);r!==`ok`&&n.push(`block:${r}`),e?.anomaly?.daily&&n.push(`anomaly:daily`),e?.anomaly?.burn&&n.push(`anomaly:burn`);for(let t of eb(e)){let e=tb(t);if(e<$y)continue;let r=typeof t?.scope==`string`&&t.scope?t.scope:`budget`;n.push(`budget:${r}:${e>=100?`over`:`near`}`)}return xe(n)}function sb(e,t=``){let n=e?.source;if(n===`fetched`){let e=T(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=T(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 cb(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 lb(e){if(Array.isArray(e))return e.length;let t=Number(e);return Number.isFinite(t)?t:null}function ub(e){if(!e||typeof e!=`object`)return``;let t=[],n=lb(e.dirs);if(n!==null&&t.push(`${Ky(n)} transcript ${n===1?`directory`:`directories`}`),Number.isFinite(e.files)&&t.push(`${Ky(e.files)} files`),Number.isFinite(e.entries)&&t.push(`${Ky(e.entries)} entries`),Number.isFinite(e.lastScanMs)&&t.push(`last pass ${Ky(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 db(e){return T(e?.error,``)}function fb(e,t){if(!e||typeof e!=`object`)return!1;let n=e.requestId;return n==null||n===t}function pb(e){let t=ke(e?.officialCostUSD,null);if(t!==null&&t>0)return{costUSD:t,source:`official`};let n=ke(e?.costUSD,null);return n!==null&&n>0?{costUSD:n,source:`estimated`}:{costUSD:null,source:null}}function mb(e){let t=Number(e?.tokens);if(!Number.isFinite(t)||t<=0)return``;let{costUSD:n}=pb(e);return n===null?Jy(t):`${Jy(t)} ${qy(n)}`}function hb(e){let{source:t}=pb(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 gb({hasPlan:e,pendingPromptKind:t,hasOpenReview:n,hasApprovedReview:r=!1}){return e&&(n||t===`plan`&&!r)?`plan`:`terminal`}function _b({hasPlan:e,isBorrowed:t,face:n}){return!e||n===`plan`?`hidden`:t?`face`:`navigate`}function vb(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 yb(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 bb(e,t,n,r=``){let i=()=>n.send(yb(e,n.readState(),t,r)),a=vb(e,n.readState());a?n.confirm({...a,onConfirm:i}):i()}var xb=`DORMANT`;function Sb(e){return e?Me(Date.now()-e,{rounding:`round`,wording:`compact`,suffix:` ago`,justNowBelowSeconds:60}):``}function Cb(e){return[e.worktreeName,e.gitBranch?e.gitBranch.replace(/^refs\/heads\//,``):null,Sb(e.mtime)].filter(Boolean).join(` · `)}function wb(e,t){let n=k(`button`,`resume-item`);return n.type=`button`,n.setAttribute(`role`,`option`),n.setAttribute(`aria-selected`,`false`),n.innerHTML=`<span class="resume-item-title">${Bn(e)}</span><span class="resume-item-meta">${Bn(t)}</span>`,n}async function Tb(e,t,n){if(t.kind===`this`)return!0;let r=t.kind===`earlier`?t.conversationId:``,i=await hn(`resume-conversation`,{id:e,conversationId:r},n);return i?i.type===`resume-conversation-ack`&&i.ok?!0:(n.show(`error`,i.type===`error`?i.message:`The conversation was not changed.`),!1):!1}var Eb={this:`restart`,fresh:`restart-fresh`,earlier:`restart-into`};function Db(e,t,n,r){let i=n.kind===`earlier`?n.conversationId:``;bb(Eb[n.kind],t,{readState:r,send:t=>{$n(e,t)},confirm:mr},i)}function Ob(e,{readState:t,canListEarlier:n}){let{overlay:r,dialog:i,close:a,actions:o,btnCancel:s}=gr({title:`Restart`,dialogClass:`dialog resume-dialog`}),c=k(`p`,`dialog-message`,n?`Restart into this conversation, a fresh one, or an earlier one from this repo (any worktree).`:`Restart into this conversation or a fresh one.`),l=k(`div`,`resume-list`);l.setAttribute(`role`,`listbox`),l.setAttribute(`aria-label`,`Conversation to restart into`);let u=k(`button`,`btn-dialog btn-dialog-confirm`,`Restart`);u.type=`button`,o.append(u);let d=vn(`dialog-error`);i.append(c,l,d.element,o);let f={kind:`this`};function p(e,t){for(let e of l.querySelectorAll(`.resume-item`))e.classList.remove(`resume-item-current`),e.setAttribute(`aria-selected`,`false`);e.classList.add(`resume-item-current`),e.setAttribute(`aria-selected`,`true`),f=t}function m(e,t,n){let r=wb(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 Tb(e,n,d);delete i.dataset.applying,r&&(a(),$n(t,{type:`start-session`,id:e}))}function g(){if(i.dataset.applying!==void 0)return;let n=P.get(e);n?t()===xb?h(n,f):(a(),Db(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(_),Ze(`list-conversations`,{id:e},{timeoutMs:wn}).then(e=>{if(!r.isConnected)return;if(e.error){_.textContent=`Could not list earlier conversations: ${e.error}`;return}let t=e.type===`conversations`?e.current??null:null,n=(e.type===`conversations`?e.conversations:[]).filter(e=>e.id!==t);if(n.length===0)_.textContent=`No earlier conversations found for this repo.`;else{_.remove();for(let e of n)m({kind:`earlier`,conversationId:e.id},e.title||e.id,Cb(e))}}).catch(e=>{r.isConnected&&(_.textContent=`Could not list earlier conversations: ${Cn(e,wn)}`)})}function kb(e){return e instanceof Error?e.message:String(e)}function Ab(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 jb(e){return e.split(/[\\/]/).filter(Boolean).at(-1)??e}async function Mb(e){let[t,n]=await Promise.all([Ze(`get-workspace-repos`,{id:e}),Ze(`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:jb(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 Nb(e){let{overlay:t,dialog:n,close:r,actions:i,btnCancel:a}=gr({title:`Workspace repositories`}),o=k(`p`,`dialog-message`,`Saving restarts the session and resumes its conversation. A removed repository keeps its workspace branch, so committed work survives.`),s=k(`fieldset`,`dialog-workspace-list`);s.setAttribute(`aria-label`,`Workspace repositories`),s.append(k(`div`,`dialog-hint`,`Loading repositories...`));let c=k(`div`,`dialog-hint`);c.setAttribute(`role`,`status`);let l=k(`div`,`dialog-error`),u=k(`button`,`btn-dialog btn-dialog-confirm`,`Save`);u.type=`button`,u.disabled=!0,i.append(u),n.append(o,s,c,l,i),a.addEventListener(`click`,r),requestAnimationFrame(()=>a.focus()),Mb(e).then(e=>{if(t.isConnected){s.textContent=``;for(let t of e)s.append(Ab(t.name,t.path,t.isMember));u.disabled=!1}}).catch(e=>{t.isConnected&&(s.textContent=``,l.textContent=`Could not load repositories: ${kb(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`,Ze(`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: ${kb(e)}`)}).finally(()=>{c.textContent=``,u.disabled=!1}))})}var Pb=e=>e==null?``:String(e),Fb=e=>oe.includes(e),Ib=e=>g.includes(e),Lb=!1;Is(xh);var Rb=null,zb=null;function Bb(){return zb??=bi(()=>import(`./plan-face-DpzZfVeG.js`).then(e=>(Rb=e,e),()=>(zb=null,null)),__vite__mapDeps([7,1,2,8,6])),zb}function Vb(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,Bb().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 Hb(e){return Lb&&Yl(e.agent)&&e.card.dataset.ephemeral===void 0}function Ub(e){return Hb(e)&&e.isConversationViewOn&&e.isBorrowed}function Wb(e){e.btnConversationView.classList.toggle(`visible`,Hb(e)),e.btnConversationView.setAttribute(`aria-checked`,String(e.isConversationViewOn))}function Gb(e){Lb=e;for(let t of P.values())!e&&t.face===`conversation`&&t._showTerminalFace?.(),Zb(t)}function Kb(e){let t=M(e);return!t||!Ub(t)?!1:(t.face=`conversation`,t.card.dataset.face=`conversation`,t.termWrap.hidden=!0,t.planFace.hide(),t.conversationFace.show(N(e)),Zb(t),dm(t,N(e)),!0)}function qb(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,Zb(n),n.conversationFace.refresh(),r!==t.isConversationViewOn&&(t.isConversationViewOn?Kb(e):n.face===`conversation`&&n._showTerminalFace?.())}function Jb(e){return M(e.id)?.conversationFace.applyTraceResponse(e)===!0}function Yb(e){M(e.id)?.conversationFace.applyTraceError(e)}function Xb(e){M(e)?.conversationFace.applyTraceChanged(N(e))}function Zb(e){Wb(e);let t=e.currentState;e.btnRestart.classList.toggle(`visible`,Fb(t)||Ib(t)||t===b.DORMANT),e.btnWorkspaceRepos.classList.toggle(`visible`,e.card.dataset.workspace!==void 0),e.btnTrace.classList.toggle(`visible`,Hn()),e.btnPlan.classList.toggle(`visible`,_b(e)!==`hidden`),e.btnRemove.classList.add(`visible`)}function Qb(e){e.sessionMenu.classList.remove(`open`),e.btnSessionMenu.setAttribute(`aria-expanded`,`false`)}function $b(e,t){ir(e.taskTitleEl,()=>zn(e,t)),e.nameEl.addEventListener(`dblclick`,n=>{n.preventDefault(),lr(e,t)}),e.nameEl.addEventListener(`click`,()=>{tr(e.nameEl)||pi(t)}),e.nameEl.addEventListener(`keydown`,n=>{n.target===e.nameEl&&(n.key===`F2`||n.key===`Enter`)&&(n.preventDefault(),lr(e,t))}),e.btnRestart.addEventListener(`click`,()=>{Qb(e),Ob(t,{readState:()=>e.currentState,canListEarlier:e.card.dataset.ephemeral===void 0})}),e.btnWorkspaceRepos.addEventListener(`click`,()=>{Qb(e),Nb(t)}),e.btnTrace.addEventListener(`click`,()=>{Qb(e),Iy(t)}),e.btnDocs.addEventListener(`click`,()=>{Qb(e),Ss(t)}),e.btnShown.addEventListener(`click`,()=>{Qb(e),Js(t)}),e.btnConversationView.addEventListener(`click`,()=>{Qb(e),$n(e,{type:`set-session-conversation-view`,id:t,isOn:!e.isConversationViewOn})}),e.btnGuardrails.addEventListener(`click`,()=>{if(e.btnGuardrails.getAttribute(`aria-disabled`)===`true`)return;let n=n=>()=>{$n(e,{type:`set-session-guardrails`,id:t,isOn:n})};e.card.dataset.guarded===void 0?mr({title:`Restore guardrails`,message:`This session restarts with guardrails on, interrupting any turn in progress.`,confirmLabel:`Restore guardrails`,danger:!1,onConfirm:n(!0)}):mr({title:`Release guardrails`,message:`This session restarts without guardrails, interrupting any turn in progress. It can then read, write and reach anything your account can, including credentials and Glimmervoid itself.`,confirmLabel:`Release guardrails`,danger:!0,onConfirm:n(!1)})}),e.btnPlan.addEventListener(`click`,()=>{let n=_b(e);n!==`hidden`&&(n===`face`?lx(t):location.hash=Wi(t))}),e.btnRemove.addEventListener(`click`,()=>{Qb(e),Ri(t)});function n(){for(let[,t]of P)t!==e&&Qb(t);e.sessionMenu.classList.add(`open`),e.btnSessionMenu.setAttribute(`aria-expanded`,`true`)}e.btnSessionMenu.addEventListener(`click`,t=>{t.stopPropagation(),e.sessionMenu.classList.contains(`open`)?Qb(e):n()}),cr({trigger:e.btnSessionMenu,menu:e.sessionMenu,menuItems:()=>[...e.sessionMenu.querySelectorAll(`.popup-menu-item.visible`)],isOpen:()=>e.sessionMenu.classList.contains(`open`),open:n,close:()=>Qb(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&&Qb(e)},{signal:e.abortController.signal}),e.btnDebug.addEventListener(`click`,n=>{n.stopPropagation(),Qn(e,t)}),document.addEventListener(`click`,t=>{let n=t.target instanceof Node?t.target:null;e.debugOpen&&!e.card.contains(n)&&er(e)},{signal:e.abortController.signal})}function ex(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&&Kn(e,r.taskTitle)}}function tx(e){return typeof e==`string`&&P.has(e)}function nx(){return P.size}function rx(e){let t=e||{};t.cursorBlink!=null&&Vp(t.cursorBlink),t.debugMode!=null&&(sr(t.debugMode),zh(t.debugMode));for(let[,e]of P)e.term&&t.cursorBlink!=null&&(e.term.options.cursorBlink=t.cursorBlink)}function ix(){Fu(P.values(),Lu())}function ax(){let e=Zn([...P.values()].map(e=>({state:e.currentState,unseenOutcome:e.unseenOutcome}))),t=dr(e);document.title=t>0?`(${t}) Glimmervoid`:`Glimmervoid`}function ox(e,t,n,r={}){if(!lt)return;let i=N(e),a=Pb(n)||b.DORMANT,o=ar(i,Pb(t),a,r),s=a===b.DORMANT;lt.appendChild(o.card);let c;function l(){c.face=`terminal`,c.card.dataset.face=`terminal`,c.termWrap.hidden=!1,c.planFace.hide(),c.conversationFace.hide(),Zb(c),Qm(c,i)}function u(){Kb(i)||l()}let d=new AbortController,f=Vb({signal:d.signal,requestPlan:(e,t,n)=>j({type:`session-plan`,id:e,agentId:t,revision:n}),requestDraft:(e,t)=>j({type:`session-plan`,id:e,agentId:t,draft:!0}),showTerminal:u,sendDecision:(e,t)=>j({type:`plan-decision`,id:e,...t}),reportProblem:e=>Mx(i,e)}),p=mh({signal:d.signal,sendControl:e=>j(e),showTerminal:l});return c={term:null,fitAddon:null,webglAddon:null,needsWebGLReload:!1,webglAttachedWithoutLayout:!1,dataWs:null,card:o.card,nameEl:o.nameEl,taskTitleEl:o.taskTitleEl,taskTitle:r.taskTitle??null,taskTitleIsCustom:r.taskTitleIsCustom??!1,path:Pb(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=()=>Qm(c,i),c._showTerminalFace=l,c._showPreferredFace=()=>{sx(c)===`plan`?lx(i):Kb(i)||l()},c._setBorrowed=e=>{c.isBorrowed=e,Zb(c)},o.card.append(f.el,p.el),P.set(i,c),$b(c,i),Zb(c),c.btnDocs.classList.toggle(`visible`,ls(i)),Ls(i),a===b.RUNNING&&it(c,!0),s||Ym(c,i),ax(),c}function sx(e){let t=e.planReviewState.reviews.some(e=>e.state===`open`),n=e.planReviewState.reviews.some(Wh);return gb({hasPlan:e.hasPlan,pendingPromptKind:e.pendingPromptKind,hasOpenReview:t,hasApprovedReview:n})}function cx(e){let t=M(e);return!t?.isBorrowed||sx(t)!==`plan`?!1:lx(e)}function lx(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)),Zb(t),dm(t,N(e)),!0)}function ux(e,t){let n=M(e);n&&(n.hasPlan=t===!0,Zb(n),cx(e))}function dx(e){let t=M(e.id);t&&(t.planReviewState=sg(t.planReviewState,e),t.hasPlan=e.hasPlan,t.planFace.update({state:t.planReviewState}),Zb(t),cx(e.id))}function fx(e){let t=M(e.id);t&&t.planFace.update({draft:e})}function px(e){let t=M(e.id);t&&(t.planReviewState={reviews:e.reviews},t.hasPlan=!0,t.planFace.update({response:e}),Zb(t))}function mx(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 hx(e){for(let[,t]of P)t.planFace.update({isConnected:e})}function gx(e,t){let n=M(e);n&&(n.effectiveBase=typeof t==`string`?t:void 0)}function _x(e,t){let n=M(e);n&&(n.agent=typeof t==`string`?t:null,Zb(n))}function vx(e,t){let n=M(e);n&&(t?n.card.dataset.worktree=``:delete n.card.dataset.worktree)}function yx(e,t,n){let r=M(e);r&&(bx(r.card,`guarded`,t),bx(r.card,`guardrailsReleased`,n),Gn(r.btnGuardrails,r.card))}function bx(e,t,n){n?e.dataset[t]=``:delete e.dataset[t]}function xx(e,t,n=!1){let r=M(e);r&&(r.activeAgents=Math.max(0,Number(t)||0),r.awaitingBackgroundTasks=be(r.currentState,n===!0),r.card.toggleAttribute(`data-monitoring`,r.awaitingBackgroundTasks))}function Sx(e,t){let n=M(e);if(!n)return;let r=mb(t),i=n.card.querySelector(`.usage-badge`);if(r)n.card.dataset.usage=``,i&&(i.dataset.tipLabel=r,i.dataset.tipDetail=hb(t),On(i));else{if(delete n.card.dataset.usage,!i)return;delete i.dataset.tipLabel,On(i)}}function Cx(e,t){let n=M(e);n&&(n.pendingPromptKind=typeof t==`string`?t:null,n.conversationFace.refresh(),!cx(e)&&(typeof t!=`string`||t===``)&&n.face===`terminal`&&Kb(e))}function wx(e,t){let n=M(e);n&&(n.unseenOutcome=t??null)}function Tx(e,t){t===`pending-review`||t===`parked`||t===`merging`?e.dataset.merge=t:delete e.dataset.merge}function Ex(e,t,n=null){let r=M(e),i=Pb(t)||`none`;r&&Tx(r.card,i),D_(N(e),i,Pb(n)||null)}function Dx(e,t,n=null){let r=M(e),i=Pb(t)||`none`;r&&Tx(r.card,i),k_(N(e),i,Pb(n)||null)}function Ox(e,t){A_(N(e),t)}function kx(e,t){let n=M(e);if(!n)return;let r=Pb(t);n.card.dataset.session=r,n.nameEl.textContent=r}function Ax(e){let t=M(e);t&&(er(t),P.delete(N(e)),Rb?.dropPlanBodyCache(N(e)),t.resizeObserver&&t.resizeObserver.disconnect(),t.abortController&&t.abortController.abort(),Hm(t,N(e)),Tp(t),t.term&&t.term.dispose(),t.term=null,t.fitAddon=null,t.card&&t.card.remove(),ax())}function jx(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 Mx(e,t){let n=M(e);n?Jn(n).show(`error`,t):F({source:`Session`,sessionId:typeof e==`string`?e:void 0,message:t})}function Nx(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 Px(e,t){e.term&&(t===b.DONE||t===b.FAILED)&&(e.term.clear(),e.term.reset())}function Fx(e){let t=P.get(e);t&&Fn({state:t.currentState,unseenOutcome:t.unseenOutcome})&&document.visibilityState===`visible`&&(Du()||document.hasFocus())&&j({type:`dismiss`,id:e,expectedState:t.currentState})}function Ix(e,t,n){let r=document.activeElement;return ai({previousState:t,nextState:n,isPhoneLayout:Du(),isDocumentVisible:document.visibilityState===`visible`,isDocumentFocused:document.hasFocus(),isActiveViewer:e._isActiveViewer?.()===!0,hasFocusInsideTerminal:r instanceof Node&&e.termWrap.contains(r)})}function Lx(){return xt()&&!sa()}function Rx(e,t,n,r=``){let i=M(e);if(!i)return;let a=Pb(t),o=i.currentState;i.currentState=a,a!==b.RUNNING&&(i.awaitingBackgroundTasks=!1),i.conversationFace.refresh(),a!==o&&(i.stateSince=typeof n==`number`&&Number.isFinite(n)?n:Date.now(),it(i,a===b.RUNNING)),o===b.DORMANT&&a!==b.DORMANT&&Ym(i,N(e)),Rn({state:a})===`resting`&&aa(N(e)),i.card.dataset.state=a,i.card.toggleAttribute(`data-monitoring`,be(a,i.awaitingBackgroundTasks)),Zb(i),(a===b.WAITING&&o!==b.WAITING||a===b.COMPLETE&&o!==b.COMPLETE)&&!Ml(r)&&Lx()&&od(Wt()),Ix(i,o,a)&&j({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})})}),Lx()&&od(Wt())),(a===b.DONE||a===b.FAILED)&&jx(i,c,a),a===b.INITIALIZING&&Px(i,o),ax()}var zx=`(no path)`;function Bx(e){if(!e)return zx;let t=String(e).replace(/[/\\]+$/,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return(n===-1?t:t.slice(n+1))||`(no path)`}function Vx(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):zx,a=i.get(r);a||(a={key:r,label:r===`(no path)`?zx:Bx(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:Bx(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 Hx(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 Ux({onAdd:e,onForget:t}){let n=k(`div`,`session-group-header`),r=k(`span`,`session-group-label`),i=k(`span`,`session-group-count`),a=k(`span`,`session-group-rule`);a.setAttribute(`aria-hidden`,`true`);let o=k(`button`,`session-group-add`,`+`);o.type=`button`,o.addEventListener(`click`,()=>e(n.dataset.path,n.dataset.label));let s=k(`button`,`session-group-forget`);return s.type=`button`,s.append(mn(xn)),s.addEventListener(`click`,()=>t(n.dataset.path)),n.append(r,i,a,s,o),{header:n,label:r,count:i,addButton:o,forgetButton:s}}function Wx(e,t,n){let{header:r,label:i,count:a,addButton:o,forgetButton:s}=e,c=t.key===zx,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 Gx={waitingCount:0,finishedCount:0,failedCount:0},Kx={failed:de[b.FAILED],waiting:de[b.WAITING],finished:de[b.COMPLETE]},qx={failed:`failed`,waiting:`needs you`,finished:`finished`},Jx=[`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`],Yx=2500,Xx=`cubic-bezier(0.16, 1, 0.3, 1)`,Zx=`cubic-bezier(0.5, 0, 0.2, 1)`,Qx=260,$x=200,eS=200,tS=300,nS=28,rS=360,iS=420,aS=200,oS=3,sS=window.matchMedia?.(`(prefers-reduced-motion: reduce)`),cS=new WeakMap;function lS(e){let t=cS.get(e);if(!t)throw Error(`attention banner was not built by buildAttentionBanner`);return t}function uS(e){return!document.hidden&&typeof e.animate==`function`&&e.getClientRects().length>0}function dS(){return sS?.matches??!1}function fS(e){return e.map(e=>({easing:Xx,...e}))}function pS(e,t){let n=k(`div`,`attention-banner`);n.setAttribute(`role`,`status`),n.style.setProperty(`--attention-head-tile-px`,`${An.headTile}px`),n.style.setProperty(`--attention-tile-px`,`${An.tile}px`),n.style.setProperty(`--attention-tile-gap-px`,`${An.tileGap}px`),n.style.setProperty(`--attention-overflow-px`,`${An.overflowSlot}px`);let r=k(`span`,`attention-banner-chips`),i=k(`span`,`attention-tile-overflow`);i.setAttribute(`aria-hidden`,`true`),i.hidden=!0,r.append(i);let a=k(`span`,`attention-banner-line`);a.setAttribute(`aria-hidden`,`true`);let o=k(`span`,`attention-banner-status`);o.append(r,k(`span`,`attention-banner-count`),a);let s=k(`button`,`attention-banner-jump-row`);return s.type=`button`,s.append(o),t&&(t.classList.add(`attention-banner-jump`),s.append(t)),n.addEventListener(`click`,()=>e.onJump()),n.append(s),cS.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(()=>hS(n)).observe(r),mS(n,Gx,[]),n}function mS(e,t,n){let r=lS(e);r.tiles=n,O(e,`.attention-banner-count`).textContent=kn(t);let i=n.length>0;e.toggleAttribute(`data-empty`,!i),e.toggleAttribute(`data-jumpable`,i),i&&jS(e,r),hS(e)}function hS(e){let t=lS(e),n=O(e,`.attention-banner-chips`),r=O(n,`.attention-tile-overflow`),i=uS(e),a=t.tiles.slice(0,Xn(n.clientWidth,t.tiles.length)),o=new Set(a.map(({id:e})=>e)),s=new Map;if(i)for(let[e,n]of t.tileById)s.set(e,n.getBoundingClientRect().left);let c=[...t.tileById].filter(([e])=>!o.has(e)),l=c.map(([,e])=>({left:e.offsetLeft,top:e.offsetTop}));c.forEach(([e,n],r)=>{t.tileById.delete(e),t.flyingIds.has(e)||!i?n.remove():yS(n,l[r])});let u=t.headId,d=[],f=null;a.forEach((i,a)=>{let o=t.tileById.get(i.id),s=o??_S(e,i.id);o||(t.tileById.set(i.id,s),d.push(s)),vS(s,i,a===0),(s.parentElement!==n||gS(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)&&CS(e,null),i){for(let e of d)bS(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?SS(r,a):a!==0&&xS(r,a,n)})}}function gS(e){let t=e.previousElementSibling;for(;t?.hasAttribute(`data-leaving`);)t=t.previousElementSibling;return t}function _S(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`,()=>CS(e,t)),n.addEventListener(`pointerleave`,()=>CS(e,null)),n}function vS(e,{kind:t,name:n},r){e.dataset.kind=t,e.toggleAttribute(`data-head`,r);let i=`${n}, ${qx[t]}`;e.title=i,e.setAttribute(`aria-label`,i),Tn(O(e,`.attention-tile-icon`),Kx[t])}function yS(e,t){e.toggleAttribute(`data-leaving`,!0),e.style.left=`${t.left}px`,e.style.top=`${t.top}px`;let n=dS()?[{opacity:1},{opacity:0}]:fS([{transform:`none`,opacity:1},{transform:`scale(0.6)`,opacity:0}]),r=e.animate(n,{duration:eS,fill:`forwards`});r.onfinish=()=>e.remove(),r.oncancel=()=>e.remove()}function bS(e){let t=dS()?[{opacity:0},{opacity:1}]:fS([{transform:`scale(0.6)`,opacity:0},{transform:`none`,opacity:1}]);e.animate(t,{duration:$x})}function xS(e,t,n){dS()||e.animate(fS([{transform:`translateX(${t}px)`},{transform:`none`}]),{duration:tS,delay:n*nS,fill:`backwards`})}function SS(e,t){dS()?e.animate([{opacity:.35},{opacity:1}],{duration:rS,easing:Xx}):e.animate(fS([{transform:`translateX(${t}px) scale(0.8)`,filter:`brightness(1.8)`},{transform:`scale(1.1)`,offset:.6},{transform:`none`,filter:`none`}]),{duration:rS})}function CS(e,t){let n=lS(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 wS(e){return!e||e.getClientRects().length===0?null:e.getBoundingClientRect()}function TS(e,t,n){let r=lS(e);if(r.flyingIds.has(t))return;let i=r.tileById.get(t);if(!i||!uS(e)){n();return}CS(e,null),r.flyingIds.add(t);let a=r.hooks.rowFor(t),o=i.getBoundingClientRect(),s=wS(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(ES(o,s),DS(s)),u=()=>{c.remove(),r.flyingIds.delete(t),i.isConnected&&(i.style.visibility=``),n()};l.onfinish=u,l.oncancel=u}function ES(e,t){return!t||dS()?[{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 DS(e){return!e||dS()?{duration:aS,fill:`forwards`}:{duration:iS,easing:Zx,fill:`forwards`}}function OS(e){let t=lS(e);e.hasAttribute(`data-empty`)&&AS(e,t);for(let e of t.pressAnimations)e.cancel();if(t.pressAnimations=[],!uS(e))return;let n={duration:Qx};if(t.pressAnimations.push(e.animate(fS([{opacity:0},{opacity:.07,offset:.3},{opacity:0}]),{...n,pseudoElement:`::after`})),!dS()){t.pressAnimations.push(e.animate(fS([{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(fS([{transform:`none`},{transform:`translateY(${oS}px)`,offset:.3},{transform:`none`}]),n),r.animate(fS([{transform:`none`},{transform:`translateY(-${oS}px)`,offset:.3},{transform:`none`}]),{...n,pseudoElement:`::after`}))}}function kS(e){let t=Jx.filter(t=>t!==e);return t[Math.floor(Math.random()*t.length)]??Jx[0]}function AS(e,t){let n=kS(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(()=>jS(e,t),Yx)}function jS(e,t){t.allClearLineTimer!==null&&window.clearTimeout(t.allClearLineTimer),t.allClearLineTimer=null,e.toggleAttribute(`data-all-clear-line`,!1)}var MS=e=>e.ui.path,NS=window.matchMedia?.(`(prefers-reduced-motion: reduce)`),PS=null,FS=null,IS=null,LS=null,RS=null,zS=null,BS=null,W=!1,VS=!1,HS=new Map,US=new Map,WS=new Map,GS=new Map,KS=null,qS=``,JS=[],YS=new Set;function XS(){return Hx(QS(sC()),YS)}function ZS(e){let t=KS;if(KS=e||null,t&&t!==KS){let e=US.get(t);e&&(e.tabIndex=-1,e.setAttribute(`aria-selected`,`false`))}if(KS){let e=US.get(KS);e&&(e.tabIndex=0,e.setAttribute(`aria-selected`,`true`))}}function QS(e){return Vx(e,MS,kl(e,MS))}function $S(e){let t=GS.get(e.key),n=WS.get(e.key);return(!t||!n)&&(t=Ux({onAdd:Mi,onForget:e=>{Al(e),pC()}}),n=k(`div`,`focus-rail-list`),n.setAttribute(`role`,`listbox`),GS.set(e.key,t),WS.set(e.key,n)),Wx(t,e,`rail`),n.setAttribute(`aria-label`,`${e.label} sessions`),{header:t.header,list:n}}function eC(){return W}function tC(){return I.snapshot().focusedSessionId}function nC({rail:e,center:t,resizer:n}){if(PS=e,IS=t,!PS||!IS)return;let r=PS,i=IS;aC(n),r.removeAttribute(`role`),r.removeAttribute(`aria-label`),r.setAttribute(`aria-keyshortcuts`,Jt(ha)),FS=pS({onJump:_C,rowFor:e=>US.get(e)},xa());let a=k(`details`,`rail-status-key`);a.append(k(`summary`,`rail-status-key-summary`,`Status key`),wl()),r.append(FS,a),RS=k(`div`,`focus-empty`),RS.innerHTML=`<p class="focus-empty-title"></p><p class="focus-empty-desc"></p>`,zS=RS.querySelector(`.focus-empty-title`),BS=RS.querySelector(`.focus-empty-desc`),LS=k(`div`,`focus-card-slot`),i.append(RS,LS),r.addEventListener(`keydown`,oC)}var rC={minPx:180,maxPx:480},iC=16;function aC(e){e&&PS&&Jc({resizer:e,column:PS,widthHost:PS,widthProperty:`--rail-width`,bounds:rC,keyStepPx:iC,getStoredWidth:It,setStoredWidth:mt})}function oC(e){if(e.key===`Delete`||e.key===`Backspace`){let t=e.target instanceof HTMLElement?e.target:null,n=t?.dataset.id;if(!n||US.get(n)!==t)return;e.preventDefault(),Ri(n);return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`||e.altKey||e.metaKey||e.ctrlKey||e.shiftKey)return;let t=Mn(XS(),KS,e.key===`ArrowDown`?1:-1);t!=null&&(e.preventDefault(),ZS(t),US.get(t)?.focus())}function sC(){return jn(wi(cC))}function cC(e){return e.nameEl?e.nameEl.textContent:e.card&&(e.card.dataset.session||e.card.dataset.id)||``}function lC(e){let{row:t,refs:n}=ul(`button`);t.type=`button`,t.dataset.id=e,t.setAttribute(`role`,`option`),t.addEventListener(`click`,()=>uC(e)),t.addEventListener(`pointerenter`,()=>{FS&&CS(FS,e)}),t.addEventListener(`pointerleave`,()=>{FS&&CS(FS,null)});let{item:r,removeButton:i}=dl(t,()=>Ri(e));return r.setAttribute(`role`,`presentation`),i.tabIndex=-1,Object.assign(t,{_refs:n,_row:r})}function uC(e){let t=xi(e);t&&(CC(e),yC(t,e))}function dC(e,{id:t,ui:n,state:r,name:i},a){let o=HS.get(t)||`none`;vl(e,e._refs,{ui:n,state:r,name:i??``,mergeStatus:o===`none`?``:o,attentionPosition:a}),e.classList.toggle(`focused`,t===tC()),e.classList.toggle(`has-unopened-shown`,Ps(t));let s=t===KS;e.setAttribute(`aria-selected`,String(s)),e.tabIndex=s?0:-1}function fC(e,t){if(!W)return;let n=e?.card?.dataset.id,r=n?US.get(n):null;r&&(t===`flag`?r.dataset.activity=e._activity||``:nt(r._refs?.glyph))}ot(fC),rt(()=>{if(W)for(let[e,t]of US){let n=P.get(e);n&&(t._refs.elapsed.textContent=tt(n))}});function pC(){if(!W)return;let e=PS;if(!e)return;let t=sC(),n=QS(t),r=new Set,i=Ln(t,tC()),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=US.get(e);o||(o=lC(e),US.set(e,o)),dC(o,n,a.get(e)??null),i||t.appendChild(o._row)}t._lastOrderKey=n},s=new Set(n.order),c=n.groups.map(e=>e.key).join(`
83
+ `),l=c===qS;qS=c;for(let t of n.groups){let{header:n,list:r}=$S(t);l||e.append(n,r),o(t.rows,r)}for(let[e,t]of[...GS])s.has(e)||(t.header.remove(),WS.get(e)?.remove(),GS.delete(e),WS.delete(e));for(let[e,t]of US)r.has(e)||(t._row.remove(),US.delete(e),e===KS&&(KS=null));for(let e of[...HS.keys()])P.has(e)||HS.delete(e);let u=JS;JS=Hx(n,YS);let d=tC();if(d&&!P.has(d)){I.dispatch(`focusSession`,null),KS=null;let e=mC(u,d);if(e){let t=!document.activeElement||document.activeElement===document.body;CC(e),t&&yC(P.get(e),e);return}}wC();let f=tC();if(f){let e=P.get(f);e&&e.card.parentElement!==LS&&xC(e,f)}gC(t,i)}function mC(e,t){let n=e.filter(e=>e===t||P.has(e));if(n.length<2)return JS.find(e=>P.has(e))??null;let r=n.indexOf(t)===n.length-1;return Mn(n,t,r?-1:1)}function hC(){return Ln(sC(),tC())}function gC(e,t){FS&&mS(FS,Zn(e),t)}function _C(){if(!W)return;FS&&OS(FS);let e=hC()[0]?.id;e&&vC(e)}function vC(e){if(!W)return;US.get(e)?.scrollIntoView({block:`nearest`}),FS&&TS(FS,e,()=>bC(e));let t=P.get(e);xi(e),CC(e),yC(t,e)}function yC(e,t){e&&requestAnimationFrame(()=>requestAnimationFrame(()=>{W&&tC()===t&&e.term?.focus()}))}function bC(e){if(NS?.matches||document.hidden)return;let t=US.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 xC(e,t){LS&&(Ir(e,t,LS,{className:`focus-centered`}),$m(e,t,!0))}function SC(){let e=tC();e&&(Fr()===e&&Lr(),I.dispatch(`focusSession`,null))}function CC(e){W&&P.has(e)&&(Fx(e),e!==tC()&&(SC(),I.dispatch(`focusSession`,e),KS=e,Si(e),pC()))}function wC(){if(!RS||!zS||!BS)return;let e=tC(),t=!!(e&&P.has(e)),n=P.size>0;RS.hidden=t,so(RS,!n),zS.hidden=!n,BS.hidden=!n,!t&&n&&(zS.textContent=`No session selected`,BS.textContent=`Select a session from the rail on the left to focus it here.`)}function TC(e,t){HS.set(N(e),typeof t==`string`&&t?t:`none`),W&&pC()}function EC(e){W&&P.has(e)&&CC(e)}function DC(e){return!W||!P.has(e)?!1:(CC(e),lx(e))}function OC(e){if(!W)return;let t=XS()[e-1];t&&uC(t)}function kC(e){if(!W)return;let t=Mn(XS(),KS,e);t!=null&&(uC(t),US.get(t)?.scrollIntoView({block:`nearest`}))}window.addEventListener(`focus`,()=>{let e=tC();W&&e&&Fx(e)});function AC(){PS&&(W=!0,SC(),KS=null,pC(),VS&&hC().length>0?_C():(VS&&FS&&OS(FS),MC()))}function jC(e){VS=!0;try{e()}finally{VS=!1}}function MC(){if(!W||tC())return;let e=Ci();e&&CC(e)}function NC(){W&&=(SC(),KS=null,!1)}var PC=`t-[0-9a-f]{8}`,FC=`No intent yet. The visions proposes one after its first pass.`,IC=`Unowned`,LC=RegExp(`^${PC}$`);function RC(){return{byProject:{},unowned:[]}}function zC(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`&&LC.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 BC(e){if(Array.isArray(e))return e.map(zC).filter(e=>e!==null);let t=zC(e);return t?[t]:[]}function VC(e){let t=e?.intent;if(!t||typeof t!=`object`)return RC();let n=t;if(!(Object.hasOwn(n,`byProject`)||Object.hasOwn(n,`unowned`)||Object.hasOwn(n,`global`)))return{byProject:{},unowned:BC(n)};let r=n.byProject&&typeof n.byProject==`object`?n.byProject:{},i=[];for(let[e,t]of Object.entries(r)){let n=BC(t);n.length!==0&&e&&i.push([e,n])}return{byProject:Object.fromEntries(i),unowned:BC(Object.hasOwn(n,`unowned`)?n.unowned:n.global)}}function HC(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 UC(e,t){let n=e||RC(),r=t?.intent;if(!r||typeof r!=`object`)return n;let i=r,a=HC(Array.isArray(i.threads)?BC(i.threads):BC(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 WC(e,t=null){let n=t&&typeof t.get==`function`?t.get(e):null;return typeof n==`string`&&n?n:e}function GC(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:YC(e,r)}))}function KC(e,t=null,n=Date.now()){let r=e||RC(),i=Object.entries(r.byProject||{}).filter(([e,t])=>e&&Array.isArray(t)&&t.length>0).map(([e,n])=>({projectId:e,label:WC(e,t),threads:n})).sort((e,t)=>e.label.localeCompare(t.label)).flatMap(({projectId:e,label:t,threads:r})=>GC(r,{key:e,label:t,now:n})),a=GC(Array.isArray(r.unowned)?r.unowned:[],{key:`unowned`,label:IC,now:n});return i.length+a.length>0?[...a,...i]:[{key:`unowned`,label:IC,text:FC,hasText:!1,active:!1,meta:``}]}function qC(e){return e?.text?`proposed by visions`:``}function JC(e,t=Date.now()){let n=Number(e);return!Number.isFinite(n)||n<=0?``:Me(Number(t)-n,{rounding:`floor`,wording:`spelled`,suffix:` ago`,justNowBelowSeconds:60})}function YC(e,t=Date.now()){let n=qC(e);if(!n)return``;let r=typeof e?.id==`string`&&e.id?`thread ${e.id}, `:``,i=JC(e?.ts,t);return i?`${r}${n}, ${i}`:`${r}${n}`}function XC(e){let t=Number(e?.range?.start?.line);return!Number.isFinite(t)||t<0?`L?`:`L${Math.floor(t)+1}`}function ZC(e){return(typeof e?.hand==`string`?e.hand.trim():``)||null}function QC(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=ZC(t);return i?(n.set(r,i),n):(n.delete(r),n)}function $C(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 ew=`hand`,tw=`unseen`,nw=`
84
+ `;function rw(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 iw(e,t){return rw(JSON.stringify([e,...t]))}function aw(e,t){return iw(`finding`,[e,XC(t),String(t.code??``),String(t.message??``)])}function ow(e,t){return iw(`comment`,[e,dw(t),String(t.message??``)])}function sw(e){return iw(`fix`,[e.uri,yw(e),e.code,e.message,bw(e)])}function cw(e){return iw(`intent`,[e.key,e.text,e.active])}function lw(e,t,n,r=[],i=null){let a=[...n].map(([e,t])=>iw(`hand`,[e,t])).sort(),o=new Set;for(let r of[...e.keys(),...t.keys(),...n.keys()])o.add(iw(`document`,[r]));for(let[t,n]of e)for(let e of n)o.add(aw(t,e));for(let[e,n]of t)for(let t of n)o.add(ow(e,t));for(let e of r)o.add(sw(e));for(let e of KC(i,null,0))e.hasText&&o.add(cw(e));let s=[...o].sort();return{signature:[...a,...s].join(nw),handEntries:a,contentEntries:s}}function uw(e,t){let n=new Set(t.split(nw));return e.handEntries.some(e=>!n.has(e))?ew:e.contentEntries.some(e=>!n.has(e))?tw:null}function dw(e){let t=Number(e?.line);return!Number.isFinite(t)||t<1?`L?`:`L${Math.floor(t)}`}function fw(e){return Array.isArray(e?.diagnostics)?e.diagnostics:[]}function pw(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=fw(t);return i.length===0?(n.delete(r),n):(n.set(r,i),n)}function mw(e){return Array.isArray(e?.comments)?e.comments:[]}function hw(e,t){let n=new Map(e),r=typeof t?.uri==`string`?t.uri:``;if(!r)return n;let i=mw(t);return i.length===0?(n.delete(r),n):(n.set(r,i),n)}function gw(e){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 _w(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 vw=20;function yw(e){let t=Number(e?.line);return!Number.isFinite(t)||t<0?`L?`:`L${Math.floor(t)+1}`}function bw(e){return e?.applied===!0?`applied`:`refused`}function xw(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 Sw(e){let t=typeof e?.uri==`string`?e.uri:``,n=Number(e?.ts);return xw(e?.fix,{uri:t,ts:Number.isFinite(n)?n:0})}function Cw(e,t,{max:n=vw}={}){let r=Sw(t);return r?[r,...e].slice(0,Math.max(0,Math.floor(n))):[...e]}function ww(e,{max:t=vw}={}){let n=Array.isArray(e?.fixes)?e.fixes:[],r=[];for(let e of n){let t=xw(e);t&&r.push(t)}return r.slice(0,Math.max(0,Math.floor(t)))}var Tw=100;function Ew(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 Dw(e){let t=Array.isArray(e?.events)?e.events:[],n=[];for(let e of t){let t=Ew(e);t&&n.push(t)}return n}function Ow(e){let t=Number(e?.overflow);return!Number.isFinite(t)||t<=0?0:Math.floor(t)}function kw(e,t){return[...e].sort((e,t)=>t.seq-e.seq).slice(0,Math.max(0,Math.floor(t)))}function Aw(e,t,{max:n=Tw}={}){let r=Dw(t);if(r.length===0)return kw(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 kw([...i.values()],n)}function jw(e,{max:t=Tw}={}){return kw(Dw(e),t)}var Mw=new Map,Nw=new Map,Pw=new Map,Fw=RC(),Iw=new Map,Lw=null,Rw=!0,zw=[],Bw=0,Vw=[],Hw=null,Uw=()=>!1,Ww=new Set,Gw=lw(Mw,Nw,Pw,Vw,Fw),Kw=rn(),qw=_e({getAck:()=>Kw,setAck:e=>{Kw=e,Ht(e)},signature:()=>Gw.signature,isLooking:()=>Uw()});function Jw(e){for(let t of Ww)t(e)}function Yw(){Gw=lw(Mw,Nw,Pw,Vw,Fw),Gw.signature!==``&&qw.refresh(),Hw?.(uw(Gw,Kw))}function Xw(e){Jw(e),Yw()}function Zw(){return{findingsByUri:Mw,commentsByUri:Nw,handsByUri:Pw,intent:Fw,projectNamesById:Iw,isEnabled:Lw,isConnected:Rw,activityEvents:zw,activityOverflow:Bw,fixEntries:Vw}}function Qw(e){Ww.add(e)}function $w(e){Uw=e,Yw()}function eT(e){Hw=e,Yw()}function tT(){Gw.signature!==``&&qw.acknowledge(),Yw()}function nT(e){Iw=e instanceof Map?e:new Map,Jw([`intent`])}function rT(e){Lw=e?.visions?.enabled===!0,Jw([`feed`])}function iT(e){Rw=e,Jw([`connection`])}function aT(e){Vw=Cw(Vw,e),Xw([`fixes`])}function oT(e){Mw=pw(Mw,e),Xw([`feed`])}function sT(e){Nw=hw(Nw,e),Xw([`feed`])}function cT(e){Pw=QC(Pw,e),Xw([`feed`])}function lT(e){Fw=UC(Fw,e),Xw([`intent`])}function uT(e){zw=Aw(zw,e),Bw=Ow(e),Xw([`activity`])}function dT(e){zw=jw(e),Bw=0,Xw([`activity`])}function fT(e){Mw=gw(e),Nw=_w(e),Pw=$C(e),Fw=VC(e),Vw=ww(e),Xw([`intent`,`feed`,`fixes`])}var pT=null,mT=null,hT=!1,gT=null,_T=new Set;function vT(e,t){if(!e||typeof e!=`object`)return!1;let n=e.requestId;return typeof n!=`string`||!t||n===t}function yT(){for(let e of _T)e()}function bT(){return{report:pT,hasReportSendFailed:hT}}function xT(e){_T.add(e)}function ST(e){mT=e}function CT(){if(!mT)return;gT=Je(`hooks-report`);let e=mT({type:`request-hooks-report`,requestId:gT});e!==!hT&&(hT=!e,yT())}function wT(e){vT(e,gT)&&(pT=e,hT=!1,yT())}function TT(){CT()}function ET(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 DT=e=>e.ui.path;function OT({onSelectSession:e}){let t=k(`div`,`phone-board`),n=k(`header`,`phone-topbar`),r=pS({onJump:()=>{OS(r);let e=Ln(x(),null)[0]?.id;e&&a(e)},rowFor:e=>d.get(e)}),i=null;function a(e){i=e,d.get(e)?.scrollIntoView({block:`nearest`}),TS(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;he(n);function _(e){let{row:t,refs:n}=ul(`button`);t.type=`button`,t.dataset.id=e,t.addEventListener(`click`,()=>o(e));let{item:r}=dl(t,()=>Ri(e));return r.setAttribute(`role`,`listitem`),p.set(t,{refs:n,item:r}),t}function v(){let e=k(`section`,`phone-board-group`),t=Ux({onAdd:Mi,onForget:e=>{Al(e),S()}}),n=k(`div`,`phone-board-group-rows`);return n.setAttribute(`role`,`list`),e.append(t.header,n),m.set(e,{...t,rows:n}),e}function y(e,t,n){let r=p.get(e);if(!r)return;let{ui:i,state:a,name:o}=t;vl(e,r.refs,{ui:i,state:a,name:o,mergeStatus:i.card?.dataset.merge||``,attentionPosition:n})}function b(e,t){let n=m.get(e);n&&(Wx(n,t,`Board`),n.rows.setAttribute(`aria-label`,`${t.label} sessions`))}function x(){return jn(wi())}function S(){let e=x(),t=Vx(e,DT,kl(e,DT)),n=Zn(e);g=Pn(n);let i=Ln(e,null),a=new Map(i.map(({id:e},t)=>[e,t+1]));mS(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(Hx(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 te=t.groups.length>0,w=P.size===0;s.hidden=!te,c.hidden=te,so(c,w),l.hidden=w,u.hidden=w,r.hidden=w}function C(e,t){let n=e.card?.dataset.id,r=n?d.get(n):void 0;r&&(t===`flag`?r.dataset.activity=e._activity||``:nt(p.get(r)?.refs.glyph))}return rt(()=>{for(let[e,t]of d){let n=P.get(e),r=p.get(t);n&&r&&(r.refs.elapsed.textContent=tt(n))}}),{el:t,topBarEl:n,refresh:S,renderActivity:C,getAttentionCount:()=>g}}var kT=`clipboard`,AT=`upload`,jT=24,MT=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:kT,title:`Paste from the clipboard`}),Object.freeze({id:`attach`,label:`Attach`,bytes:null,action:AT,title:`Upload a photo or file to this session`})]);function NT(e){let t=MT.find(t=>t.id===e);return t?t.bytes:null}function PT(e){return!!e&&e.action===kT}function FT(e){return!!e&&e.action===AT}function IT(e,t,n=jT){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 LT(e,t,n=jT){let r=IT(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 RT={" ":`\0`,"@":`\0`,"[":`\x1B`,"\\":``,"]":``,"^":``,_:``,"?":``};function zT(e){if(e.length!==1)return null;let t=e.toLowerCase();return t>=`a`&&t<=`z`?String.fromCharCode(t.charCodeAt(0)-96):RT[e]??null}function BT({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 MT){t.id===`left`&&r.appendChild(VT(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){FT(t)?d(r):PT(t)?UT(e,n):e(NT(t.id))}function d(e){a=e,i||(i=k(`input`,`phone-file-picker`),i.type=`file`,i.hidden=!0,i.addEventListener(`change`,f),r.appendChild(i)),i.click()}function f(){let e=i;if(!e)return;let r=e.files?e.files[0]:null;if(e.value=``,!r)return;let o=t?.();o?p(o,r,a):n(`No session is open to upload to.`)}async function p(e,t,n){n&&(n.disabled=!0),await qf(e,t),n&&(n.disabled=!1)}return{element:r,takeHeldControl:l}}function VT(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=LT(t.clientX-n.x,t.clientY-n.y);if(i){for(let t=0;t<i.stepCount;t++)e(NT(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 HT=`Paste needs clipboard permission.`;function UT(e,t){let n=null;try{n=navigator.clipboard?.readText?.()}catch{t(HT);return}n?n.then(t=>{t&&e(t)}).catch(()=>t(HT)):t(`Paste is unavailable in this browser.`)}function WT({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`,()=>ne());let s=k(`span`,`session-task-title phone-terminal-title`);ir(s,()=>re());let c=k(`span`,`phone-terminal-badge`);c.innerHTML=`<span class="phone-terminal-glyph" aria-hidden="true"></span><span class="phone-terminal-label"></span><span class="phone-terminal-elapsed" aria-hidden="true"></span>`;let u=D(c,`.phone-terminal-glyph`,`span`),d=D(c,`.phone-terminal-label`,`span`),f=D(c,`.phone-terminal-elapsed`,`span`);d.before(o),a.append(s,c);let p=k(`button`,`phone-changes`);p.append(mn(gn)),p.type=`button`,p.title=`Show this session's code changes`,p.setAttribute(`aria-label`,`Show this session's code changes`),p.addEventListener(`click`,()=>t?.());let m=k(`div`,`phone-terminal-actions`);r.append(i,a,p,m);let h=k(`div`,`phone-card-slot`),g=k(`div`,`phone-empty`);g.innerHTML=`<p class="phone-empty-title">No session selected</p><p class="phone-empty-desc">Select a session from the board to watch it here.</p>`;let _=vn(`phone-key-status m-0 px-3 py-1`),{element:v,takeHeldControl:y}=BT({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&&(Um(t,e)?_.clear():_.show(`error`,l))}function te(){let e=x?P.get(x):null;e?.term&&e.term.focus()}h.addEventListener(`click`,te);function w(e){let t=zT(e);return!t||!y()?!1:(ee(t),!0)}h.addEventListener(`keydown`,e=>{e.ctrlKey||e.metaKey||e.altKey||w(e.key)&&(e.preventDefault(),e.stopPropagation())},!0),h.addEventListener(`input`,e=>{e instanceof InputEvent&&e.data&&w(e.data.slice(-1))&&(e.stopPropagation(),(x?P.get(x):null)?._resetSoftKeyboardBuffer?.())},!0);function ne(){let e=x?P.get(x):null;e&&x&&lr(e,x,{returnsFocusToTerminal:!1})}function re(){let e=x?P.get(x):null;e&&x&&zn(e,x)}function ie(){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;fl(r,{glyph:u,label:d},n,e.awaitingBackgroundTasks,e.pendingPromptKind);let i=e.card?.dataset.session||x;tr(o)||(o.textContent=i),s.dataset.sessionName=i??``,Kn(s,e.taskTitle),f.textContent=tt(e)}function ae(){C&&=(delete C.renameTargetEl,delete C.titleTargetEl,null),o.replaceChildren(),S&&=(ge(S),S.parentElement===m&&S.remove(),null)}function T(e){let t=P.get(e);t&&(x===e&&Fr()===e&&t.card.parentElement===h||(ae(),x=e,Ir(t,e,h,{className:`phone-centered`}),S=D(t.card,`.session-actions`,`div`),Te(S,m),t.renameTargetEl=o,t.titleTargetEl=s,C=t),ie())}function oe(){ae(),Fr()===x&&Lr(),x=null,ie()}function se(){if(!x){ie();return}let e=P.get(x);e?e.card.parentElement===h?ie():(T(x),n.hidden||$m(e,x,!0)):oe()}function ce(){let e=x;e&&$m(P.get(e),e,!1)}function le(){se();let e=x;if(!e)return;let t=P.get(e);t&&($m(t,e,!0),Fx(e))}return rt(()=>{let e=x?P.get(x):null;e&&(f.textContent=tt(e))}),ie(),{el:n,show:T,clear:oe,refresh:se,reveal:le,unview:ce,getSessionId:()=>x}}var GT=`board`,KT=`terminal`,qT=`changes`,JT=Object.freeze({[qT]:KT}),YT=Object.freeze([{id:GT,label:`Focus`,glyph:`▤`},{id:KT,label:`Terminal`,glyph:`▸`}]),XT=[],ZT=new Map,G=null,QT=new Map,$T=new Map,eE=new Map,tE=null,K=null,nE=null,rE=null,iE=null,aE=null,oE=new Map,sE=new Set,cE={},q=!1,lE=120,uE=0,dE=0,J=0,fE=null;function pE(){uE=0,dE=0}function mE(){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!==dE&&(dE=e.width,uE=0),uE=Math.max(uE,e.height),uE-e.height>lE?G.dataset.keyboard=`open`:G.removeAttribute(`data-keyboard`)))}function hE(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 gE(e){return e?.querySelector(`.phone-nav-dot`)||null}function _E(e,t){e&&(e.hidden=!t,typeof t==`string`&&(e.dataset.attention=t),typeof t!=`string`&&delete e.dataset.attention)}function vE(){let e=[];for(let t of XT){if(sE.has(t.id))continue;let n=eE.get(t.id)||!1;e.push(n),_E(gE(oE.get(t.id)),n)}_E(gE(iE),Nn(e))}function yE(){let e=k(`div`,`phone-nav-more-menu`);e.hidden=!0;for(let t of XT){let n=hE(t.label,t.glyph,`phone-nav-menu-item`,`phone-nav-dot phone-nav-menu-dot`);n.dataset.screen=t.id,n.hidden=sE.has(t.id),n.addEventListener(`click`,()=>{bE(!1),BE(t.id)}),oE.set(t.id,n),e.appendChild(n)}return e}function bE(e){aE&&iE&&(aE.hidden=!e,iE.setAttribute(`aria-expanded`,String(e)))}function xE(){return!!aE&&!aE.hidden}function SE(){let e=k(`nav`,`phone-nav`);e.setAttribute(`aria-label`,`Screens`);for(let t of YT){let n=hE(t.label,t.glyph);n.dataset.screen=t.id,n.addEventListener(`click`,()=>BE(t.id)),QT.set(t.id,n),e.appendChild(n)}return iE=hE(`More`,`⋯`),iE.setAttribute(`aria-expanded`,`false`),iE.addEventListener(`click`,()=>bE(!xE())),e.appendChild(iE),aE=yE(),e.appendChild(aE),e}function CE(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),$T.set(e,r),r}function wE(){if(G)return;tE=OT({onSelectSession:EE}),ot((e,t)=>{q&&tE?.renderActivity(e,t)}),K=WT({onBack:()=>BE(GT),onShowChanges:()=>BE(qT)}),nE=k(`div`,`phone-review`);let e=k(`div`,`phone-screens`),t={[GT]:tE.el,[KT]:K.el};for(let n of YT)e.appendChild(CE(n.id,n.label,t[n.id]));e.appendChild(CE(qT,`Changes`,TE(nE)));for(let t of XT){let n=k(`div`,`phone-panel phone-${t.id}`);ZT.set(t.id,n),e.appendChild(CE(t.id,t.label,n))}G=k(`div`,`phone-shell`),G.id=`phone-shell`,G.append(e,SE()),document.body.appendChild(G),vE(),window.visualViewport?.addEventListener(`resize`,mE),window.visualViewport?.addEventListener(`scroll`,mE),window.addEventListener(`popstate`,FE),document.addEventListener(`click`,e=>{xE()&&aE&&iE&&e.target instanceof Node&&(aE.contains(e.target)||iE.contains(e.target)||bE(!1))}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&xE()&&bE(!1)})}function TE(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`,()=>BE(KT)),rE=k(`span`,`phone-changes-session`),n.append(r,k(`span`,`phone-changes-title`,`Changes`),rE),t.append(n,e),t}function EE(e){if(P.has(e)){if(!tE||!K)throw Error(`Phone shell is not built`);xi(e,`dormant-fallback`),Si(e),K.show(e),BE(KT)}}function DE(e){return JT[e]??e}function OE(e,t){return t?{glimmervoidScreen:e,glimmervoidNested:!0}:{glimmervoidScreen:DE(e)}}function kE(e){let t=e?.glimmervoidScreen;return typeof t==`string`?t:null}function AE(e){return kE(e)?e.glimmervoidNested===!0?2:1:0}function jE(e){return e===GT?0:JT[e]||cE.canGoBack?.(e)?2:1}function ME(e,t){let n=t?e:DE(e);return kE(history.state)===n&&AE(history.state)===(t?2:1)}function NE(){if(!q||fE!==null)return;let e=I.snapshot().phoneScreen||GT,t=jE(e);if(J>t){fE=location.href,history.go(t-J),J=t;return}let n=J===2;J>0&&!ME(e,n)&&history.replaceState(OE(e,n),``),J===0&&t>0&&(history.pushState(OE(e,!1),``),J=1),J===1&&t===2&&(history.pushState(OE(e,!0),``),J=2)}function PE(){let e=kE(history.state);return e&&RE(e)?(J=AE(history.state),e):(e&&history.replaceState(null,``),J=0,GT)}function FE(e){if(!q)return;if(fE!==null){history.replaceState(history.state,``,fE),fE=null,NE();return}let t=kE(e.state),n=t&&RE(t)?t:GT;J=AE(e.state);let r=I.snapshot().phoneScreen;J<2&&n===r&&cE.canGoBack?.(r)&&cE.onBack?.(r),LE(n),NE()}function IE(e,t){for(let[n,r]of e)n===t?r.setAttribute(`aria-current`,`page`):r.removeAttribute(`aria-current`)}function LE(e){if(!iE||!K)throw Error(`Phone shell is not built`);I.dispatch(`setPhoneScreen`,e),bE(!1),zE();for(let[t,n]of $T)n.hidden=t!==e;cE.onScreenShown?.(e),IE(QT,DE(e));let t=oE.has(e);t&&iE.setAttribute(`aria-current`,`page`),t||iE.removeAttribute(`aria-current`),IE(oE,e),e===KT?K.reveal():K.unview()}function RE(e){return $T.has(e)&&!sE.has(e)}function zE(){if(!rE||!K)return;let e=K.getSessionId(),t=e?P.get(e):null,n=t?st(t):``;rE.textContent=n,rE.title=n}function BE(e){G&&RE(e)&&(LE(e),NE())}function VE(e){XT.sort((t,n)=>e.indexOf(t.id)-e.indexOf(n.id)),aE?.append(...XT.flatMap(e=>oE.get(e.id)??[]))}function HE(e){cE=e||{},XT=cE.panels||[]}function UE({sessionId:e,linkedScreenId:t}={}){if(q)return;if(wE(),!G||!tE||!K)throw Error(`Phone shell is not built`);q=!0,G.hidden=!1;for(let e of cE.headerControls||[])Te(e,tE.topBarEl);E_(nE);for(let e of XT)Te(e.el,ZT.get(e.id)),e.el.hidden=!1;mE(),e&&K.show(e);let n=PE();JE(),t&&RE(t)?BE(t):e&&n===GT?BE(KT):(LE(n),NE())}function WE(){if(q){if(!G||!K)throw Error(`Phone shell is not built`);q=!1,K.clear(),E_(null);for(let e of XT)ge(e.el);for(let e of cE.headerControls||[])ge(e);bE(!1),G.hidden=!0,G.removeAttribute(`data-keyboard`),pE(),J>0&&history.go(-J),J=0,fE=null}}function GE(e){return!q||!tE||!K||!P.has(e)?!1:(EE(e),lx(e))}function KE(){return q}function qE(){return q&&K?K.getSessionId():null}function JE(){if(!q)return;if(!tE||!K)throw Error(`Phone shell is not built`);$E(),tE.refresh(),K.refresh(),zE(),DE(I.snapshot().phoneScreen||GT)===KT&&!K.getSessionId()&&BE(GT);let e=gE(QT.get(GT));e&&(e.hidden=tE.getAttentionCount()===0)}function YE(e){return q?(EE(e),!0):!1}function XE(e){return!q||!RE(e)?!1:(BE(e),!0)}function ZE(e,t){t&&sE.delete(e),t||sE.add(e);let n=oE.get(e);n&&(n.hidden=!t);let r=$T.get(e);r&&!t&&(r.hidden=!0),vE(),!t&&q&&I.snapshot().phoneScreen===e&&BE(GT)}function QE(e,t){eE.set(e,typeof t==`string`&&t?t:t===!0),vE()}function $E(){if(!K)throw Error(`Phone shell is not built`);if(K.getSessionId())return;let e=Ci();e&&(K.show(e),Si(e,{rememberFocus:!1}))}var eD={MERGE:`a merge commit`,SQUASH:`squash and merge`,REBASE:`rebase and merge`},tD=new Set([`FAILURE`,`ERROR`]);function nD(e){return eD[e]}function rD(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&&tD.has(e.checks.state)?`Checks are failing`:e.stage===`ready`?null:`Not ready to merge yet`:`Closed`}function iD(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 aD(e){let t=Oe.parse({...e,key:`${e.repo}#${e.number}`,stage:`unknown`});return{...t,stage:iD(t)}}var oD=[`Needs you`,`Waiting`,`Ready to merge`,`Drafts`,`Merged today`],sD=[`Ready to merge`,`Needs you`,`Waiting`,`Drafts`,`Merged today`],cD={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`},lD={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`},uD={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`},dD={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 fD(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 pD(e){return oD[e.rows.reduce((e,{pr:t})=>Math.min(e,oD.indexOf(cD[t.stage])),oD.length-1)]}function mD(e){let t=new Map(oD.map(e=>[e,{title:e,prs:[],rows:[]}]));for(let n of fD(e)){let e=t.get(pD(n));if(e)for(let t of n.rows)e.rows.push(t),e.prs.push(t.pr)}return sD.flatMap(e=>t.get(e)??[])}function hD(e){return lD[e]}function gD(e){return uD[e]}function _D(e){return dD[e]}function vD(e,t){return e.flatMap(e=>{let n=t(e.key);if(!n)return[];let r=e.key.slice(0,e.key.lastIndexOf(`#`));return[{...aD({...n,repo:r}),...e}]})}function yD(e){let t=new Map;for(let n of e)for(let e of n.links){let r=Ee(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 bD(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 xD=3;function SD(e){if(e.length===1)return{message:`Merged ${e[0].key}`,detailLines:[e[0].title]};let t=e.slice(0,xD).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 CD(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:aD(n).stage}:e};return{...e,drafts:e.drafts.map(n),inFlight:e.inFlight.map(n),queued:e.queued.map(n)}}function wD(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 TD(e){let t=e.viewerThreads;return t!==void 0&&t.total>0&&t.resolved===t.total}function ED(e){return e.status===`posted`&&DD(e)}function DD(e){if(!TD(e)||ee(e))return!1;let t=AD(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 OD(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[wD(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(jD(r).length>0||ED(r)){n.actionable.push(r);continue}let e=(r.status===`ready`||r.status===`stale`||r.status===`error`)&&!MD(r);e&&t.noReviewNeeded.push(r),r.status===`ready`&&!e&&n[wD(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 kD(e,t){return e.commit===t?e.isViewer||w.has(e.state):!1}function AD(e){return e.liveHead??e.reviewedHead}function jD(e){return(e.threads??[]).filter(e=>!e.isNit&&!e.isResolved)}function MD(e){return jD(e).length>0?!0:ee(e)?!1:DD(e)?!0:!(e.githubReviews??[]).some(t=>kD(t,AD(e)))}function ND(e,t){return`${e}#${t}`}var PD=null,FD=null,ID=new Set;function LD(e){for(let t of ID)t(e)}function RD(){FD=CD(PD,Sr),LD({kind:`status`})}function zD(e){ID.add(e)}function BD(){return FD}function VD(){return OD(FD)}function HD(e){let t=s.safeParse(e);t.success?(PD=t.data,RD()):Re(`reviews`,`dropped team-review-status: ${Pe(t.error.issues)}`)}function UD(e){LD({kind:`action-result`,message:e})}function WD(e){LD({kind:`open-session-result`,message:e})}function GD(e){LD({kind:`connection`,isConnected:e})}Cr(RD);var KD=1.2,qD=1.55,JD=.12,YD=523.25,XD=2,ZD=8,Y=(e,t,n)=>({semitone:e,startBeat:t,beats:n}),QD={melody:[Y(7,4,.5),Y(11,4.5,.5),Y(12,5,3)],bass:[Y(-5,4,1),Y(-12,5,3)]},$D=[{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,...QD.melody],bass:[...e.bass,...QD.bass]}));function eO(e,t){return YD*2**((e+t)/12)}function tO(e,t){let n=(e,n,r)=>e.map(e=>({frequency:eO(e.semitone,t),startSeconds:qD+e.startBeat*JD,durationSeconds:e.beats*JD,waveform:n,gain:r}));return[...n(e.melody,`square`,.2),...n(e.melody,`triangle`,.5),...n(e.bass,`triangle`,.6)]}var nO=[{frequency:220,endFrequency:880,startSeconds:0,durationSeconds:.32,waveform:`triangle`,gain:.25},{frequency:160,endFrequency:45,startSeconds:KD,durationSeconds:.28,waveform:`sine`,gain:1},{frequency:1400,endFrequency:380,startSeconds:KD,durationSeconds:.06,waveform:`square`,gain:.12}];function rO(e){let t=$D[e%$D.length],n=Math.min(e*XD,ZD);return{peakGain:.1,tones:[...nO,...tO(t,n)]}}function iO(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 aO(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 oO=.6,sO=.25,cO=1.6;function lO(e){return Math.min(oO+e*sO,cO)}var uO=[`var(--accent)`,`var(--state-running)`,`var(--state-idle)`,`var(--state-waiting)`,`var(--state-failed)`];function dO(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`,uO[e%uO.length]]]}var fO=`<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>`,pO=`<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 mO(){let e=A(`div`,`merge-bullseye-target`,fO);return e.append(k(`span`,`merge-bullseye-ripple`)),e}function hO(){let e=k(`div`,`merge-bullseye-dart-drift`),t=k(`div`,`merge-bullseye-dart-arc`),n=k(`div`,`merge-bullseye-dart-aim`);return n.append(A(`div`,`merge-bullseye-dart`,pO)),t.append(n),e.append(t),e}function gO(){let e=k(`div`,`merge-bullseye-range`),t=k(`div`,`merge-bullseye-track`);return t.append(hO()),e.append(mO(),t),e}var _O={title:`BULLSEYE!`,buildScene:gO},vO=6,yO=30,bO=-14,xO=16;function SO(e=Math.random){return[[`--crosshair-start-left`,`${X(vO,yO,e)}%`],[`--crosshair-start-offset-y`,`${X(bO,xO,e)}px`]]}var CO=`<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>`,wO=`<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>`,TO=`<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M3 3L8 8M21 3L16 8M3 21L8 16M21 21L16 16"/></svg>`;function EO(){let e=k(`div`,`merge-headshot-sweep`);E(e,SO());let t=k(`div`,`merge-headshot-aim`);t.append(A(`div`,`merge-headshot-crosshair`,wO));let n=k(`div`,`merge-headshot-bob`);return n.append(t,A(`div`,`merge-headshot-hitmarker`,TO)),e.append(n),e}function DO(){let e=k(`div`,`merge-headshot-range`),t=k(`div`,`merge-headshot-track`);return t.append(EO()),e.append(A(`div`,`merge-headshot-target`,CO),t),e}var OO={title:`HEADSHOT!`,buildScene:DO},kO=[`10`,`J`,`Q`,`K`,`A`],AO=160,jO=19,MO=5,NO=9,PO=780,FO=70,IO=70,LO=35;function RO(e){let t=kO.length-1,n=e-t/2;return{offsetPx:n*jO,titleSpreadFraction:n/t,tiltDegrees:n*MO,bottomPx:NO-n**2,dealLeadMs:PO-e*FO,flipLeadMs:AO+(t-e)*IO,waveDelayMs:e*LO}}function zO(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 BO(){return[[`--card-flip-ms`,`${AO}ms`]]}var VO=`<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 HO(e,t){let n=k(`div`,`merge-flush-deal`);E(n,zO(RO(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`,VO),i.append(k(`div`,`merge-flush-back`),a),r.append(i),n.append(r),n}function UO(){let e=k(`div`,`merge-flush-table`);return E(e,BO()),e.append(...kO.map(HO)),e}var WO={title:`ROYAL FLUSH!`,buildScene:UO},GO=[1,2,3,4],KO=14,qO=3,JO=3,YO=10,XO=20,ZO=2,QO=28,$O=18,ek=.01,tk=1.5,nk=2200,rk=1,ik=120,ak=.35,ok=15,sk=105,ck=4,lk=65,uk=145;function dk(e){return Math.round(e/(Math.PI*$O)*360)}function fk(e){return XO-e*ZO}function pk(e){return e.rowIndex*KO+e.depthIndex*qO}function mk(e,t,n){return Array.from({length:n},(r,i)=>e+(t-e)*i/(n-1))}function hk(){return GO.flatMap((e,t)=>Array.from({length:e},(n,r)=>({rowIndex:t,depthIndex:e-1-r})))}function gk(e,t){let n=aO(mk(ok,sk,e),t),r=aO(mk(lk,uk,e),t);return n.map((e,n)=>({angleDegrees:e+X(-4,ck,t),depthScalePercent:Math.round(r[n])}))}function _k(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=iO(o),l=iO(o+s),u=c+l,d=X(540,1080,n),f=a>=0?1:-1,p=pk(e);return{depthIndex:e.depthIndex,launchAngleDegrees:t.angleDegrees,distanceFromHeadPinPx:p,layer:fk(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/ak)}}function vk(e=Math.random){let t=hk(),n=gk(t.length,e);return t.map((t,r)=>_k(t,n[r],e))}function yk(e){return[[`--pin-left`,`${e.distanceFromHeadPinPx}px`],[`--pin-raise`,`${e.depthIndex*JO}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 bk(){return fk(tk)}function xk(){return Math.max(...hk().map(pk))+YO}function Sk(){let e=xk(),t=QO+e+$O-rk;return[[`--ball-follow-px`,`${ik}px`],[`--ball-follow-ms`,`${Math.round(ik/ak)}ms`],[`--ball-follow-spin`,`${dk(ik)}deg`],[`--ball-size`,`${$O}px`],[`--ball-approach-spin`,`${nk}deg`],[`--ball-impact-inset`,`${t}px`],[`--ball-layer`,String(bk())],[`--rack-right`,`${QO}px`],[`--rack-width`,`${e}px`],[`--pin-width`,`${YO}px`]]}function Ck(e=Math.random){return e()>=ek?null:_t[Math.floor(e()*_t.length)].sprite}var wk=`<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 Tk(e){let t=k(`span`,`merge-strike-pin`);return t.append(A(`span`,`merge-strike-pin-arc`,wk)),E(t,yk(e)),t}function Ek(){let e=Ck();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 Dk(){let e=k(`div`,`merge-strike-lane`);E(e,Sk());let t=k(`div`,`merge-strike-rack`);t.append(...vk().map(Tk));let n=k(`div`,`merge-strike-track`);return n.append(Ek()),e.append(t,n),e}var Ok={title:`STRIKE!`,buildScene:Dk},kk=20,Ak=92,jk=23,Mk=7,Nk=-40;function Pk(){let e=iO(72),t=iO(69),n=780*t/1e3;return{launchHeightPx:kk,peakHeightPx:Ak,heightThroughRimPx:jk,heightLeavingNetPx:Mk,heightOutOfCardPx:Nk,riseMs:e,fallToRimMs:t,speedThroughRimPxPerSecond:n,netCatchMs:Math.round(32/n*1e3),dropMs:iO(47)}}function Fk(e=Pk()){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 Ik=`<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>`,Lk=`<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 Rk(){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 zk(){let e=k(`div`,`merge-swish-court`);E(e,Fk());let t=k(`div`,`merge-swish-track`);return t.append(Rk()),e.append(A(`div`,`merge-swish-hoop-back`,Ik),t,A(`div`,`merge-swish-hoop-front`,Lk)),e}var Bk=[Ok,{title:`SWISH!`,buildScene:zk},_O,OO,WO],Vk=48,Hk=5600,Uk=20,Wk=null,Gk=[],Kk=null,qk=!1,Jk=0;function Yk(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),E(t,dO(e)),t}function Xk(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 Zk(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 Qk(e){let t=k(`div`,`merge-celebration-scene`);return t.setAttribute(`aria-hidden`,`true`),t.append(e.buildScene()),t}function $k(){return Bk[Math.floor(Math.random()*Bk.length)]}function eA(e){if(xt())try{ed(rO(e))}catch{}}function tA(e){let t=k(`ul`,`merge-celebration-details`);for(let n of e)t.append(k(`li`,`merge-celebration-detail`,n));return t}function nA(e,t,n){Wk?.remove(),eA(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=Xk(t.title),s=Qk(t);a.append(o,k(`p`,`merge-celebration-message`,e.message),tA(e.detailLines),s);let c=k(`div`,`merge-confetti`);c.style.setProperty(`--confetti-scale`,String(lO(n)));for(let e=0;e<Vk;e+=1)c.append(Yk(e));i.append(c,a),r.append(i),document.body.append(r),Zk(a,o,s),Wk=r,window.setTimeout(()=>{r.remove(),Wk===r&&(Wk=null)},Hk)}function rA(e){return qk?`playing`:e?`queued`:`empty`}function iA(){if(!Kk)return;let e=Gk.length>0;Kk.tray.dataset.state=rA(e),Kk.count.textContent=e?String(Gk.length):``,Kk.button.disabled=qk||!e}function aA(){let e=Gk.shift();qk=e!==void 0,iA(),e&&(nA(e.text,e.scene,Jk),Jk+=1,window.setTimeout(aA,Hk))}function oA(e,t,n){Kk={tray:e,button:t,count:n},t.addEventListener(`click`,()=>{Jk=0,aA()}),iA()}function sA(e,t=$k()){Gk.push({text:e,scene:t}),Gk.length>Uk&&Gk.shift(),iA()}var cA=null,lA=null,uA=new Set,dA=new Map,fA=!1,pA=new Set;function mA(e){for(let t of pA)t(e)}function hA(){return[...dA].flatMap(([e,t])=>{let n=P.get(e);return!n||t.length===0?[]:[{id:e,title:st(n)||e,links:t}]})}function gA(){let e=vD(cA?.prs??[],Sr),t=bD(lA,e);lA=e,bA(t),mA({kind:`prs`})}function _A(){fA||(fA=!0,queueMicrotask(()=>{fA=!1,gA()}))}function vA(e){pA.add(e)}function yA(){return{prs:vD(cA?.prs??[],Sr),status:cA,sessionsByPrKey:yD(hA())}}function bA(e){let t=e.filter(e=>!uA.has(e.key));if(t.length!==0){for(let e of t)uA.add(e.key);sA(SD(t))}}function xA(e){dA=e,_A()}function SA(){mA({kind:`session-state`})}function CA(e){let t=p.safeParse(e);t.success?(cA=t.data,gA()):Re(`reviews`,`dropped my-prs-status: ${Pe(t.error.issues)}`)}function wA(e){mA({kind:`merge-result`,message:e})}function TA(e){mA({kind:`connection`,isConnected:e})}Cr(_A);var EA=[{id:`all`,label:`All`},{id:`reviewing`,label:`Reviewing`},{id:`mine`,label:`Mine`}],DA={turn:`Your turn`,working:`Agent working`,waiting:`Waiting on others`,aside:`Set aside`},OA=[`turn`,`working`,`waiting`,`aside`],kA={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`},AA={directAsk:0,followUp:1,mineNeedsYou:2,teamReady:3,mineReady:4,failedReview:5,staleReview:6};function jA(e,t){return{source:`team`,key:`team:${e.key}`,prKey:Ee(e),kind:t,review:e}}function MA(e){return e.status===`ready`?wD(e).band===`blocking-others`?AA.directAsk:AA.teamReady:AA.followUp}function NA(e){return[...e.ready.map(e=>({item:jA(e,`ready`),group:`turn`,turnRank:MA(e)})),...e.attention.map(e=>({item:jA(e,`attention`),group:`turn`,turnRank:e.status===`error`?AA.failedReview:AA.staleReview})),...e.inReview.map(e=>({item:jA(e,`inReview`),group:`working`,turnRank:0})),...e.queued.map(e=>({item:jA(e,`queued`),group:`working`,turnRank:0})),...e.noReviewNeeded.map(e=>({item:jA(e,`settled`),group:`waiting`,turnRank:0})),...e.posted.map(e=>({item:jA(e,`posted`),group:`waiting`,turnRank:0})),...e.discarded.map(e=>({item:jA(e,`discarded`),group:`aside`,turnRank:0}))]}function PA(e,t){let n=kA[e.stage];return n===`turn`&&e.stage!==`ready`&&t.has(Ee(e))?`working`:n}function FA(e,t){return mD(e).flatMap(e=>e.rows).map(({pr:e,parentKey:n})=>({item:{source:`mine`,key:`mine:${e.key}`,prKey:Ee(e),pr:e,stackedOn:n},group:PA(e,t),turnRank:e.stage===`ready`?AA.mineReady:AA.mineNeedsYou}))}function IA(e,t,n){let r=[...NA(e),...FA(t,n)];return OA.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:DA[e],items:n.map(e=>e.item)}})}function LA(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 RA(e){return e.find(e=>e.id===`turn`)?.items??[]}function zA(e,t){return t?e.flatMap(e=>e.items).find(e=>e.key===t)??null:null}function BA(e,t){return zA(e,t)?t:e.flatMap(e=>e.items)[0]?.key??null}function VA(e){return e.source===`mine`?ND(e.pr.repo,e.pr.number):ND(e.review.repo,e.review.number)}function HA(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 UA(e){return RA(e).map(e=>({id:e.key,kind:HA(e),name:VA(e)}))}function WA(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 GA(e,t){return UA(e).filter(e=>e.id!==t)}function KA({capturedOrder:e,actedKey:t,groups:n}){let r=RA(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 qA(e,t){let n=RA(e).map(e=>e.key),r=t?n.indexOf(t):-1;return r===-1?``:`${r+1} of ${n.length} in Your turn`}function JA(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 YA(e){return RA(e).map(JA)}function XA({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:xe([...i]),unseen:xe([...o])};for(let e of s)o.add(e);return{isShown:s.length>0,acknowledged:xe([...a]),unseen:xe([...o])}}function ZA(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 QA(e){return new Set(e.flatMap(e=>e.items).map(e=>(e.source===`mine`?e.pr.repo:e.review.repo).toLowerCase())).size>1}function $A(e){let t=e.filter(e=>e?.configured===!0);if(t.length===0)return e.find(e=>e!==null)??null;let n=t.toSorted((e,t)=>(e.lastRefreshedAt??e.lastSyncAt??0)-(t.lastRefreshedAt??t.lastSyncAt??0));return{...t.find(e=>e.error)??n[0],isRefreshing:t.some(e=>e.isRefreshing)}}var ej=new Map([[`j`,`next-row`],[`k`,`previous-row`],[`n`,`next-finding`],[`p`,`previous-finding`],[`x`,`toggle-finding`],[`o`,`open-session`],[`a`,`pick-approve`],[`r`,`pick-request-changes`],[`c`,`pick-comment`]]);function tj(e){return e.key===`Enter`&&e.metaKey!==e.ctrlKey&&!e.altKey&&!e.shiftKey?`post`:e.metaKey||e.ctrlKey||e.altKey||e.shiftKey?null:e.key===`Escape`?`cancel`:ej.get(e.key)??null}function nj(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 rj=[],ij=null,aj=null,oj=null,sj=!1,cj=null,lj=Mt(),uj=tn(),dj=new Set(uj.split(`|`).filter(Boolean)),fj=new Set,pj=new Set;function mj(e){for(let t of pj)t(e)}function hj(e){e!==lj&&(lj=e,Ct(e))}function gj(e){e!==uj&&(uj=e,dj=new Set(e.split(`|`).filter(Boolean)),ht(e))}function _j(){return BD()!==null&&yA().status!==null}function vj(){if(!_j())return;let e=XA({turnEntries:YA(rj),acknowledged:lj,unseen:uj,isLooking:aj?.isLooking()??!1});hj(e.acknowledged),gj(e.unseen),cj?.(e.isShown)}function yj(e){oj=e,mj({kind:`reveal`})}function bj(e){pj.add(e)}function xj(e){aj=e,vj()}function Sj(){let{prs:e,sessionsByPrKey:t}=yA();return rj=IA(VD(),e,new Set(t.keys())),vj(),rj}function Cj(){_j()&&(hj(xe(YA(rj))),vj())}function wj(e){cj=e,vj()}function Tj(){return uj}function Ej(e){return dj.has(e)}function Dj(e){return dj.has(e)?(gj(xe([...dj].filter(t=>t!==e))),!0):!1}function Oj(e){ij=e}function kj(){return ij}function Aj(){let e=oj;return oj=null,e}function jj(e){if(e!==sj){sj=e;for(let e of fj)e()}}function Mj(e){fj.add(e)}function Nj(){return document.documentElement.dataset.layout===`phone`&&sj}function Pj(){Nj()&&mj({kind:`return-to-queue`})}function Fj(){let e=GA(rj,aj?.selectedKey()??null)[0]?.id??null;return e?(yj(e),!0):!1}function Ij(e){let t=rj.flatMap(e=>e.items).find(t=>t.prKey===e.toLowerCase());return!t||!ij?.openReviews()?!1:(yj(t.key),Cj(),!0)}zD(e=>{e.kind===`status`&&Sj()}),vA(e=>{e.kind===`prs`&&Sj()});var Lj={OPEN:0,MERGED:1,CLOSED:2};function Rj(e){return e?Lj[e.state]:Lj.OPEN}function zj(e,t){let n=`${e.repo}#${e.number}`,r=`#${e.number}`;if(!t)return{key:n,text:r,url:e.url,hoverText:e.repo,look:null,tier:ic(void 0)};let i=gD(t.stage);return{key:n,text:r,url:t.url,hoverText:`${e.repo}: ${t.title} (${hD(t.stage)})`,look:{icon:_D(t.stage),tone:i},tier:ic(i)}}function Bj(e,t){let n=e.map(e=>{let n=t(Ee(e));return{link:e,pr:n?aD(n):void 0}});return n.sort((e,t)=>Rj(e.pr)-Rj(t.pr)||t.link.linkedAt-e.link.linkedAt),n.map(({link:e,pr:t})=>zj(e,t))}var Vj=new Map;function Hj(e){return document.querySelectorAll(`[data-pr-chips-for="${CSS.escape(e)}"]`)}function Uj(e){return Bj(Vj.get(e)??[],Sr).map(e=>({...e,className:`session-pr-chip`,linkUrl:e.url,ariaLabel:`Show pull request ${e.key} in Reviews`,hoverText:`${e.hoverText}. Show in Reviews; Cmd/Ctrl-click opens GitHub`,onActivate:()=>{Ij(e.key)||Nc(e.url)}}))}function Wj(e,t){let n=Zc(e,e),r=k(`button`,`session-pr-chip-unlink`);r.append(mn(xn)),r.type=`button`,r.title=`Unlink ${e.key} from this session`,r.setAttribute(`aria-label`,`Unlink pull request ${e.key}`),r.addEventListener(`click`,n=>{n.stopPropagation(),n.preventDefault(),mr({title:`Unlink pull request`,message:`Unlink ${e.key} from this session? Its checks and reviews stop showing here until you link it again.`,confirmLabel:`Unlink`,danger:!0,onConfirm:()=>{Ti(t,{type:`unlink-session-pr`,id:t,key:e.key})}})});let i=k(`span`,`session-pr-chip-item`);return i.append(n,r),i}function Gj(e,t){e.dataset.prChipsFor=t,nl(e,Uj(t),e=>Wj(e,t))}function Kj(e){for(let t of e){let e=t.dataset.prChipsFor;e&&Gj(t,e)}ll()}function qj(e,t){let n=d.shape.links.safeParse(t??[]);Vj.set(e,n.success?n.data:[]),Kj(Hj(e)),xA(Vj)}function Jj(e){Vj.delete(e),xA(Vj)}Cr(()=>Kj(document.querySelectorAll(`[data-pr-chips-for]`)));var Yj=null,Xj=new Set;function Zj(){Yj?.setAttribute(`aria-pressed`,String(!xt()))}function Qj(e){vt(e),Zj();for(let t of Xj)t(e)}function $j(e){Xj.add(e)}function eM(e){Yj=e,Zj(),e.addEventListener(`click`,()=>Qj(!xt()))}var tM={mine:`Mining merged pull requests.`,run:`Starting the run.`,cancel:`Cancelling the run.`},nM=null,rM=null,iM=!0,aM=new Map,oM=new Map,sM=new Set;function cM(){for(let e of sM)e()}function lM(e){sM.add(e)}function uM(){return{status:nM,isServerConnected:iM,pendingActionBySuite:aM,outcomeBySuite:oM}}function dM(e){rM=e}function fM(e,t){rM?.({type:`benchmark-action`,requestId:Je(`benchmark`),suiteId:e,action:t})===!0?(aM.set(e,t),oM.set(e,tM[t]),cM()):(oM.set(e,l),cM())}function pM(e){if(iM=e,!e){for(let e of aM.keys())oM.delete(e);aM.clear()}cM()}function mM(e){nM=e,cM()}function hM(e){aM.delete(e.suiteId);let t=nM?.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.`};oM.set(e.suiteId,e.ok?n[e.action]:e.error||`The server refused the action.`),cM()}var gM=45e3,_M=`The server did not answer within ${gM/1e3} s.`,vM=`Select the issue to load its description.`,yM=null,bM=null,xM=new Map,SM=null,CM=new Map,wM=new Map,TM=new Map,EM=new Map,DM=new Map,OM=new Set;function kM(e){for(let t of OM)t(e)}function AM(e){return`${e.key}:${e.updatedAt}`}function jM(e){let t=CM.get(e);t&&(CM.delete(e),wM.set(t.issueKey,{text:_M,tone:`error`}),kM(`detail`))}function MM(e){let t=CM.get(e);return t?(clearTimeout(t.timeoutHandle),CM.delete(e),t):null}function NM(){return{latestStatus:bM,issueByKey:xM,selectedKey:yM}}function PM(e){OM.add(e)}function FM(e){yM=e}function IM(e){return[...CM.values()].some(t=>t.issueKey===e.key)}function LM(e){return wM.get(e.key)}function RM(e){let t=AM(e),n=EM.get(t);return n===``?`No description.`:n??DM.get(t)??`Loading description.`}function zM(e){let t=AM(e);if(EM.has(t)||[...TM.values()].some(e=>e.cacheKey===t))return;let n=Je(`issue-detail`);DM.delete(t),SM?.({type:`issue-detail`,requestId:n,repo:e.repo,issueNumber:e.number})?TM.set(n,{cacheKey:t,timeoutHandle:setTimeout(()=>{TM.delete(n),DM.set(t,`${_M} ${vM}`),kM(`detail`)},gM)}):DM.set(t,`${l} ${vM}`)}function BM(e){let t=e.projectId;if(!t||IM(e))return;let n=Je(`open-issue-session`);SM?.({type:`open-issue-session`,requestId:n,projectId:t,repo:e.repo,issueNumber:e.number})?(CM.set(n,{issueKey:e.key,issueNumber:e.number,timeoutHandle:setTimeout(()=>jM(n),gM)}),wM.set(e.key,{text:`Opening session.`,tone:`busy`}),kM(`detail`)):(wM.set(e.key,{text:l,tone:`error`}),kM(`detail`))}function VM(e){SM?.({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`issues`,action:e}})}function HM(e){SM=e}function UM(){kM(`session-state`)}function WM(e){if(!e){for(let e of CM.values())clearTimeout(e.timeoutHandle),wM.set(e.issueKey,{text:l,tone:`error`});CM.clear();for(let e of TM.values())clearTimeout(e.timeoutHandle),DM.set(e.cacheKey,`${l} ${vM}`);TM.clear(),kM(`status`)}}function GM(e){let t=bM?.issues.find(e=>e.key===yM);bM=e,xM=new Map(e.issues.map(e=>[e.key,e]));let n=e.issues.find(e=>e.key===yM);n&&n.updatedAt!==t?.updatedAt&&zM(n),kM(`status`)}function KM(e){let t=TM.get(e.requestId);t&&(clearTimeout(t.timeoutHandle),TM.delete(e.requestId),e.ok&&e.body!==null&&EM.set(t.cacheKey,e.body),(!e.ok||e.body===null)&&DM.set(t.cacheKey,e.error||`Could not load description. Select the issue to try again.`),kM(`detail`))}function qM(e){if(typeof e.requestId!=`string`)return;let t=MM(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`;wM.set(n,{text:`Session "${r}" ${a}.${i}`,tone:`ok`});let o=bM?.issues.find(e=>e.key===n);o&&typeof e.sessionId==`string`&&(o.sessionId=e.sessionId),kM(`status`);return}let r=typeof e.error==`string`&&e.error?e.error:`Could not open session.`;wM.set(n,{text:r,tone:`error`}),kM(`detail`)}var JM=null,YM=null,XM=null,ZM=()=>!1,QM=new Set,$M=new Set,eN=_e({getAck:Pt,setAck:Zt,signature:()=>o({posthog:JM}),isLooking:()=>ZM()});function tN(e){for(let t of $M)t(e)}function nN(){YM?.(eN.refresh())}function rN(){return{latest:JM,archivedLocally:QM,traceOpener:XM}}function iN(e){$M.add(e)}function aN(e){ZM=e,nN()}function oN(e){QM.add(e)}function sN(){eN.acknowledge(),nN()}function cN(e){YM=e,nN()}function lN(e){XM=e}function uN(e){JM=e,we(JM,QM),tN({kind:`status`}),nN()}function dN(e){let t=Ne(JM,e.projectId,e.issueId)?.inFlight===!0;x(JM,e)&&tN({kind:`investigation-activity`,projectId:e.projectId,issueId:e.issueId,wasInFlight:t})}function fN(e){let t=re(JM,e);tN({kind:`investigation-finished`,frame:e,isPatched:t}),t&&nN()}var pN=ec({requestPrefix:`session-setup`,dialogClass:`dialog coherence-journal-drawer session-setup-dialog`,titleText:`Session setup`,unavailableLabel:`Session setup unavailable`,timeoutMs:15e3});function mN(e){let t=k(`ul`,`session-setup-list`);return t.append(...e.map(e=>k(`li`,null,e))),t}function hN(e,t){e.replaceChildren();function n(t,n){if(n.length===0)return;let r=Se(`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`),mN(e.skills)),e.agents.length>0&&t.append(k(`p`,`session-setup-label`,`Agents`),mN(e.agents)),t})),n(`MCP servers`,t.mcpServers.length>0?[mN(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?[mN(t.skills)]:[]),n(`Agents`,t.agents.length>0?[mN(t.agents)]:[])}function gN(e){let t=k(`p`,`coherence-journal-status`,`Loading session setup`);t.setAttribute(`role`,`status`);let n=k(`div`,`session-setup-sections`);pN.open({sessionId:e,status:t,body:[t,n],parts:{sections:n},buildRequest:t=>({type:`session-setup`,id:e,requestId:t})})}function _N(e){let t=pN.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;hN(n,e.setup),t.status.textContent=n.childElementCount>0?``:`No session setup recorded yet`,t.status.hidden=n.childElementCount>0}function vN(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 yN={isVisible:document.visibilityState===`visible`,isFrozen:!1,isProbing:!1,isReplacing:!1},bN=document.visibilityState===`visible`?null:Date.now(),xN=null,SN=null;function CN(){xN!==null&&window.clearTimeout(xN),xN=null}function wN(e){CN();let t=Date.now()+e;xN=window.setTimeout(()=>{xN=null,DN({kind:`heartbeat-due`,lateByMs:Date.now()-t})},e)}function TN(){SN!==null&&window.clearTimeout(SN),SN=null}function EN(e){switch(e.kind){case`probe-control`:Ke(e.deadlineMs,e.isAnnounced).then(e=>{DN({kind:e?`pong`:`pong-missed`})});return;case`replace-control`:Ye();return;case`close-sockets`:TN(),Xe(),Vm();return;case`reconnect-shown-terminals`:zm();return;case`hold-input`:Im();return;case`release-input`:Lm();return;case`schedule-heartbeat`:wN(e.inMs);return;case`cancel-heartbeat`:CN();return}}function DN(e){let t=Fe(yN,e);yN=t.state;for(let e of t.actions)EN(e)}function ON(){if(document.visibilityState!==`visible`){bN=Date.now(),DN({kind:`hidden`});return}let e=bN===null?0:Date.now()-bN;bN=null,DN({kind:`shown`,hiddenForMs:e})}function kN(e){TN(),e===`connecting`?SN=window.setTimeout(()=>{SN=null,DN({kind:`handshake-overdue`})},Ve):DN({kind:e===`opened`?`control-opened`:`control-closed`})}function AN(){let e=Reflect.get(navigator,`connection`);e instanceof EventTarget&&e.addEventListener(`change`,()=>DN({kind:`network-changed`}))}function jN(){Ie(kN),document.addEventListener(`visibilitychange`,ON),document.addEventListener(`freeze`,()=>DN({kind:`frozen`})),document.addEventListener(`resume`,()=>DN({kind:`resumed`})),window.addEventListener(`pagehide`,e=>{e.persisted&&DN({kind:`frozen`})}),window.addEventListener(`pageshow`,e=>{e.persisted&&DN({kind:`resumed`})}),window.addEventListener(`online`,()=>DN({kind:`network-changed`})),AN()}var MN={},NN=null,PN=null,FN=ae,IN=null,LN=!1,RN=null,zN=[],BN=null,VN=()=>null,HN=()=>{},UN=new Set,WN=new Set;function GN(e){for(let t of WN)t(e)}function KN(e){WN.add(e)}function qN(){return MN}function JN(e){return MN={...MN,...e},MN}function YN(){return{status:NN,journal:PN,request:FN,lastAutoCheckAt:IN,isCheckInFlight:LN,checkSendFailure:RN}}function XN(e){let t=te(FN,e);t!==FN&&(FN=t,GN({kind:`update`,frame:`request`}))}function ZN(){XN(j({type:`update-apply`})?`request-sent`:`request-unsent`)}function QN(){IN=Date.now();let e=j({type:`update-check`});LN=e,RN=e?null:l,GN({kind:`update`,frame:`request`})}function $N(e){HN=e}function eP(){HN()}function tP(e){zN=[...e]}function nP(){return zN}function rP(e=null,t=null,n=null){let r=BN!==null&&(BN.sectionId!==null||BN.isLink);e===null&&n===null&&r||(BN={sectionId:e,settingId:t,hashAtRequest:n??location.hash,isLink:n!==null},GN({kind:`activate`}))}function iP(){let e=BN;return BN=null,e}function aP(e){VN=e}function oP(){for(let e of UN)e()}function sP(e){UN.add(e)}function cP(){return Du()&&VN()===`section`}function lP(){cP()&&GN({kind:`return-to-list`})}function uP(e){e&&(MN=e,ti(MN.agentLogins),GN({kind:`broadcast`}))}function dP(){GN({kind:`status`})}function fP(e){dP()}function pP(e){NN=e,LN=!1,RN=null,FN=te(FN,`status-frame`),GN({kind:`update`,frame:`status`})}function mP(e){PN=e,FN=te(FN,`progress-frame`),GN({kind:`update`,frame:`progress`})}function hP(e){if(e.scope!==`update`)return!1;let t=C(e.message),n=FN.requested;return FN=te(FN,`error-frame`,t),LN=!1,n||(RN=t),GN({kind:`update`,frame:`error`}),!0}function gP(e,t){return typeof t!=`string`||t===``?{knownBuild:e,reload:!1}:e==null?{knownBuild:t,reload:!1}:e===t?{knownBuild:e,reload:!1}:{knownBuild:t,reload:!0}}var Z=null,_P=null,vP=null,yP=null,bP=null,xP=null,SP=-1,CP=null,wP={isRightToLeft:!1,arcProgress:0},TP=1,EP=3;function DP(){if(!Z||CP===null)return;let e=qr({viewportWidthPx:document.documentElement.clientWidth,viewportHeightPx:document.documentElement.clientHeight,verticalProgress:CP,...wP});E(Z,Yr(e,TP,window.devicePixelRatio))}function OP(){xP!==null&&(clearTimeout(xP),xP=null)}function kP(e=un()){return St({isEnabled:e,hasReducedMotion:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,isPhone:Du(),options:Vt()})}function AP(e){e.onanimationend=null,e.style.animation=`none`,yP&&(yP.style.animation=`none`),e.hidden=!0}function jP(e,t){if(!Z||!_P||!vP||!yP||kP())return;let n=Vt();OP();let r=sn(n,SP,Math.random,t);if(AP(Z),!r){xP=setTimeout(()=>jP(!1),1e3);return}CP=r.verticalProgress,wP={isRightToLeft:r.isRightToLeft,arcProgress:r.arcProgress},TP=n.flyingAnimalsScale,DP();let i=_t[r.animalIndex];_P.className=`nyan-sprite ${i.sprite}`,vP.className=`nyan-trail ${i.trail}`,SP=r.animalIndex,bP?.classList.remove(`is-booped`),Z.hidden=!1,Z.offsetWidth,Z.style.animation=`nyan-fly ${r.durationSeconds}s linear`,yP.style.animation=`nyan-trail-hold ${r.durationSeconds}s linear`,e&&(Z.style.animationDelay=`-${r.firstDelaySeconds}s`,yP.style.animationDelay=`-${r.firstDelaySeconds}s`),Z.onanimationend=e=>{Z&&e.target===Z&&(AP(Z),xP=setTimeout(()=>jP(!1),r.gapMs))}}function MP(){bP&&(bP.classList.remove(`is-booped`),bP.offsetWidth,bP.classList.add(`is-booped`))}function NP(e){if(Z&&yP&&e.target===bP)for(let e of[...Z.getAnimations(),...yP.getAnimations()])e.playbackRate=EP}function PP(){if(Z||kP())return;Z=document.createElement(`div`),Z.className=`nyan-flight`,Z.setAttribute(`aria-hidden`,`true`);let e=document.createElement(`div`);e.className=`nyan-trail-window`,yP=document.createElement(`div`),yP.className=`nyan-trail-hold`,vP=document.createElement(`div`),yP.append(vP),e.append(yP),_P=document.createElement(`div`),bP=document.createElement(`div`),bP.className=`nyan-boop`,bP.append(_P),bP.addEventListener(`pointerdown`,MP),bP.addEventListener(`animationend`,NP),Z.append(e,bP),document.body.appendChild(Z),window.addEventListener(`resize`,DP),window.addEventListener(`orientationchange`,DP),jP(!0)}function FP(e){PP(),jP(!1,e)}function IP(){OP(),window.removeEventListener(`resize`,DP),window.removeEventListener(`orientationchange`,DP),Z?.remove(),Z=null,_P=null,vP=null,yP=null,bP=null,SP=-1,CP=null}var LP=!1;function RP(e){let t=document.documentElement;if(LP||(LP=!0,Ou(()=>RP(un())),window.matchMedia(`(prefers-reduced-motion: reduce)`).addEventListener(`change`,()=>RP(un()))),e){if(t.dataset.flyingAnimals=`true`,kP(e)){IP();return}PP()}else delete t.dataset.flyingAnimals,IP()}var zP=`•`.repeat(8),BP=`[^/\\\\\\s"'\`<>:]+`,VP=RegExp(`(?<![\\w./\\\\-])(?:/home/${BP}|/Users/${BP}|[A-Za-z]:[\\\\/]Users[\\\\/]${BP}|/root(?![\\w.-]))`,`g`);function HP(e){let t=Tf(e);if(t.length===0)return e;let n=``,r=0;for(let i of t)n+=e.slice(r,i.start)+zP,r=i.end;return n+e.slice(r)}function UP(e){return e.replace(VP,`~`)}function WP(e){return UP(HP(e))}var GP=`.xterm, input, textarea, script, style, [contenteditable]:not([contenteditable="false"])`,KP=[`title`,`label`],qP=new WeakMap,JP=new WeakMap,YP=null;function XP(e){let t=e instanceof Element?e:e.parentElement;return!t||t.closest(GP)!==null}function ZP(e){let t=e.parentElement?.closest(`option`);return t!=null&&!t.hasAttribute(`value`)}function QP(e,t){if(t&&e===t.masked)return t;let n=WP(e);return n===e?null:{original:e,masked:n}}function $P(e){let t=ZP(e)?null:QP(e.data,qP.get(e));t?(qP.set(e,t),e.data!==t.masked&&(e.data=t.masked)):qP.delete(e)}function eF(e,t){let n=e.getAttribute(t),r=JP.get(e),i=n===null?null:QP(n,r?.get(t));if(!i){r?.delete(t);return}let a=r??new Map;a.set(t,i),JP.set(e,a),n!==i.masked&&e.setAttribute(t,i.masked)}function tF(e){for(let t of KP)eF(e,t)}function nF(e){return e instanceof Element&&e.matches(GP)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}function rF(e){tF(e);let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,nF);for(let e=t.nextNode();e;e=t.nextNode())e instanceof Text&&$P(e),e instanceof Element&&tF(e)}function iF(e){XP(e)||(e instanceof Text&&$P(e),e instanceof Element&&rF(e))}function aF(e){e instanceof Element&&!XP(e)&&tF(e)}function oF(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&&iF(e);for(let e of n)e.isConnected&&aF(e)}function sF(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);cF(e);for(let e=t.nextNode();e;e=t.nextNode())cF(e)}function cF(e){if(e instanceof Text){let t=qP.get(e);t&&e.data===t.masked&&(e.data=t.original);return}if(!(e instanceof Element))return;let t=JP.get(e);if(t)for(let[n,r]of t)e.getAttribute(n)===r.masked&&e.setAttribute(n,r.original)}function lF(){if(YP)return;let e=new MutationObserver(t=>{oF(t),e.takeRecords()});rF(document.body),e.observe(document.body,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:KP}),YP=e}function uF(){YP&&(YP.disconnect(),YP=null,sF(document.body),qP=new WeakMap,JP=new WeakMap)}function dF(e){e?lF():uF()}function fF(){dF(Qo()),es(dF)}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 mF(e){return typeof e!=`object`||!e||!(`telemetryForcedOff`in e)?!1:e.telemetryForcedOff===!0}function hF(e,t){return t||mF(e)?!1:pF(e)}var gF=2500;function _F({hasSnapshot:e,connectingTerminalCount:t,msSinceConnected:n}){return n<2500&&(!e||t>0)?`wait`:`reveal`}var vF=2e4,yF=null,bF=null,xF={claude:null,codex:null},SF=null,CF=null,wF=null,TF=`all`,EF=!1,DF=null,OF=null,kF=!0,AF=()=>!1,jF=new Set,MF=_e({getAck:Et,setAck:Qt,signature:()=>ob(yF,xF.claude),isLooking:()=>AF()});function NF(e){for(let t of jF)t(e)}function PF(){SF?.(MF.refresh())}function FF(e){EF=e,NF(`refresh-status`),DF&&=(clearTimeout(DF),null),e&&(DF=setTimeout(()=>{DF=null,EF=!1,OF=`Usage did not answer within ${Math.round(vF/1e3)} s. Refresh to try again.`,NF(`refresh-status`)},vF))}function IF(e){let t=Uy.find(t=>t.value===e);return t?t.days:null}function LF(){return{report:yF,sessions:bF,planLimitsByVendor:xF,rangeValue:TF}}function RF(){let e=!kF||!EF&&OF!==null;return kF?EF?{text:`Refreshing`,isPending:!0,hasFailure:e}:{text:OF??``,isPending:!1,hasFailure:e}:{text:yF?`${l} The figures below are from before the connection dropped.`:l,isPending:EF,hasFailure:e}}function zF(e){jF.add(e)}function BF(e){AF=e,PF()}function VF(){MF.acknowledge(),PF()}function HF(e){SF=e,PF()}function UF(e){CF?.({type:`dashboard-telemetry`,event:`operator_action`,properties:{surface:`usage`,action:e}})}function WF(e){CF=e}function GF(e){TF=e}function KF({force:e=!1}={}){if(!CF)return;wF=Je(`usage`);let t={type:`request-usage-report`,requestId:wF};e&&(t.force=!0);let n=IF(TF);n!==null&&(t.days=n),OF=null,FF(!0),!CF(t)&&(OF=l,FF(!1))}function qF(e){kF=e,NF(`refresh-status`)}function JF(e){bF=e,NF(`sessions`)}function YF(e){let t=e;xF={...xF,[rb(t)]:t},NF(`plan-limits`),PF()}function XF(e){fb(e,wF)&&(OF=null,FF(!1),yF=e,NF(`report`),PF())}function ZF(){let e=yF?.pricing||(bF?{source:bF.pricingSource}:null),t=cb(e?.fetchedAt),n=[sb(e,t!==null&&t>0?at(t):``)],r=db(yF);r&&n.push(r);let i=ub(yF?.scan);return i&&n.push(i),n}var QF={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},$F=[{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 eI(e,t){return t.isPhoneShellActive?t.phoneScreen===e:t.activeView===e}function tI(e,t){return e.flatMap(e=>!e.gate||!(`fromSettings`in e.gate)?[]:[{view:e,isAvailable:e.gate.fromSettings(t)}])}function nI(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 rI(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 iI(e){return{isActive:e===!0||typeof e==`string`,level:typeof e==`string`?e:null}}function aI(e,t,n){t&&e?.refreshOn?.includes(n)&&t.refresh?.(n)}function oI(e,t,n,r){for(let i of e)eI(i.view,t)&&aI(i,r(i.view),n)}function sI(){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 cI(e,t,n){let r=Number(e);return!e||!Number.isFinite(r)||t-r>n}var lI=`glimmervoid:preload-error-reload-at`,uI=3e4,dI=1e3,fI=sI();function pI(e,t){let n=fI.mountedModuleOf(e.view);n?t(n):fI.show(e).then(t).catch(t=>{throw Re(`view`,`${e.view} failed to show: ${$e(t)}`),t})}function mI(e){return fI.mountedModuleOf(e)}function hI(e){fI.mountEagerViews(e)}function gI(e){let t=()=>{fI.prefetch(e.filter(e=>!e.tab.hidden))};`requestIdleCallback`in window?window.requestIdleCallback(t):setTimeout(t,dI)}function _I(e){window.addEventListener(`vite:preloadError`,()=>{let t=e(),n=Date.now();cI(t.getItem(lI),n,uI)&&(t.setItem(lI,String(n)),location.reload())})}function vI(e){Oj({openTerminal:e.openTerminal,openReviews:e.openReviews}),$N(e.onRestart);let t=[{view:`focus`,label:`Focus`,panelClass:`focus-view`,hasOwnPhoneScreen:!0,hasPanelChrome:!1,hasReviewSidebar:!0,module:{mount:()=>nC({rail:document.getElementById(`focus-rail`),center:document.getElementById(`focus-center`),resizer:document.getElementById(`focus-rail-resizer`)}),activate:AC,deactivate:NC}},{view:`prs`,label:`Reviews`,glyph:`⇅`,panelClass:`pr-view`,gate:{fromSettings:QF.teamReview},load:()=>bi(()=>import(`./review-queue-panel-8bP8Q7RR.js`).then(e=>e.view),__vite__mapDeps([9,1,2,3,4,10,5,6,11,8])),attention:{subscribe:wj,acknowledge:Cj},onConnectionChange:e=>{TA(e),GD(e)}},{view:`issues`,label:`Issues`,glyph:`#`,panelClass:`issues-view`,gate:{fromSettings:QF.issues},load:()=>bi(()=>import(`./issues-panel-B7Y1Lpyx.js`).then(e=>e.view),__vite__mapDeps([12,1,2,4,5,3,11,10,8,6])),refreshOn:[`shown`],onConnectionChange:WM},{view:`usage`,label:`Usage`,glyph:`◔`,panelClass:`usage-view`,gate:{fromSettings:QF.usage},load:()=>bi(()=>import(`./usage-panel-D2JuiQ4G.js`).then(e=>e.view),__vite__mapDeps([13,1,2,4])),attention:{subscribe:HF,acknowledge:VF},onConnectionChange:qF,refreshOn:[`shown`,`connected`,`usage-sessions`]},{view:`radar`,label:`Radar`,glyph:`◎`,panelClass:`radar-view`,gate:{fromSettings:QF.posthog},load:()=>bi(()=>import(`./radar-panel-hxjF7m9Z.js`).then(e=>e.view),__vite__mapDeps([14,1,2,3,4,5,6,0])),attention:{subscribe:cN,acknowledge:sN}},{view:`visions`,label:`Visions`,glyph:`◇`,panelClass:`visions-view`,gate:{fromSettings:QF.visions},load:()=>bi(()=>import(`./visions-panel-CI6CRn42.js`).then(e=>e.view),__vite__mapDeps([15,1,2,5,3])),attention:{subscribe:eT,acknowledge:tT},refreshOn:[`shown`],onConnectionChange:iT},{view:`hooks`,label:`Hooks`,glyph:`◈`,panelClass:`hooks-view`,load:()=>bi(()=>import(`./hooks-panel-BWDeSHtM.js`).then(e=>e.view),__vite__mapDeps([16,2,1,3,5,6])),refreshOn:[`shown`,`connected`,`hooks-updated`]},{view:`trace`,label:`Trace`,panelClass:`trace-view`,gate:{subscribe:Wn},load:()=>bi(()=>import(`./trace-panel-Dy-fgi9c.js`).then(e=>e.view),__vite__mapDeps([17,1,2,10,5,3])),refreshOn:[`shown`],onAvailabilityChange:e=>lN(e?Iy:null),onConnectionChange:Vy},{view:`benchmarks`,label:`Bench`,panelClass:`bench-view`,gate:{fromSettings:QF.benchmarks},load:()=>bi(()=>import(`./benchmark-panel-BulIdLtq.js`).then(e=>e.view),__vite__mapDeps([18,1,2])),onConnectionChange:pM},{view:`settings`,label:`Settings`,glyph:`@`,panelClass:`settings-view`,hasPanelChrome:!1,load:()=>bi(()=>import(`./settings-panel-B50lNcrt.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}=iI(r);n.classList.toggle(`active`,i),a===null&&n.removeAttribute(`data-attention`),a!==null&&n.setAttribute(`data-attention`,a),e.setPhoneAttention(t.view,r)})}return{...t,tab:r,el:o}});return D(document,`#header-tabs`,`div`).replaceChildren(...r.map(e=>e.tab)),r}fd(zt()),pd(on()),RP(un()),Eu(),Fc(document);var yI=D(document,`#connection-status`,`span`),bI=D(yI,`.connection-label`,`span`),xI=D(document,`#loading-screen`,`div`),SI=D(document,`#loading-status`,`div`),CI=D(document,`#loading-detail`,`div`),wI=D(document,`#shutdown-screen`,`div`),TI=D(document,`#shutdown-status`,`div`),EI=!1,DI=null,OI=!1;function kI(){let e=Qr(),t=xI.querySelector(`.loading-spinner`);e&&t&&t.replaceWith(Zr(e,`loading-animal`))}kI();function AI(){EI||DI===null||_F({hasSnapshot:OI,connectingTerminalCount:Em(),msSinceConnected:performance.now()-DI})===`reveal`&&jI()}Tm(AI);function jI(){if(EI)return;EI=!0,xI.classList.add(`fade-out`),gI(Q);let e=()=>xI.remove();xI.addEventListener(`transitionend`,e,{once:!0}),setTimeout(e,1e3)}function MI(e,t){yI.dataset.state=`shutdown`,bI.textContent=e,yI.title=e,wL.disabled=!0,TI.textContent=t,wI.classList.add(`active`)}var NI=new Set([`disconnected`,`connecting`]);function PI(e,t,n){yI.dataset.state=e,yI.toggleAttribute(`data-reconnected`,n),bI.textContent=t,yI.title=t}function FI(e,t){PI(e,t,e===`connected`&&NI.has(yI.dataset.state??``))}function II(e,t){yI.dataset.state!==`shutdown`&&PI(e===`verified`?`connected`:e,t,!1)}var LI=1e4,RI=`Server`,zI=`Worktree`,BI=`Worktree warning`,VI=`The server is not answering. Check the terminal running Glimmervoid for errors, or start it again with glimmervoid. This page reconnects on its own.`,HI=`Server not answering. Check the Glimmervoid terminal for errors, or run glimmervoid. This page retries on its own.`,UI=null,WI=!1;function GI(){SI.textContent=`Reconnecting to server...`,CI.textContent=HI,CI.hidden=!WI}function KI(){UI=null,WI=!0,EI?F({source:RI,message:VI,hidesInStreamerMode:!1}):GI()}function qI(){UI!==null||WI||(UI=window.setTimeout(KI,LI))}function JI(){UI!==null&&window.clearTimeout(UI),UI=null,WI=!1,CI.hidden=!0,bn(RI)}ze((e,t)=>{if(e===`connecting`||e===`verified`)II(e,t);else{FI(e,t),hx(e===`connected`);for(let t of Q)t.onConnectionChange?.(e===`connected`);if(e===`connected`){if(JI(),HL&&UL(HL),wI.classList.contains(`active`)){location.reload();return}co(),document.body.classList.add(`app-ready`),!EI&&DI===null&&(DI=performance.now(),SI.textContent=`Connecting to sessions...`,setTimeout(jI,gF)),AI(),mR(),oL(`connected`),Ze(`get-settings`,{}).then(e=>{e.settings&&(JL(e.settings),Pr()===`settings`&&kL(location.hash))}).catch(()=>{})}else e===`disconnected`&&wI.classList.contains(`active`)?TI.textContent=`Waiting for server...`:(qI(),EI||GI())}});function YI(){UM(),SA(),JE()}function XI(){pC(),YI()}Fs(()=>pC());var ZI=null;function QI(e){let t=gP(ZI,e);ZI=t.knownBuild,t.reload&&location.reload()}function $I(e){nT(new Map(e.filter(e=>!e.ephemeral).map(e=>[e.id,e.name]))),fP(e.filter(e=>!e.ephemeral).map(e=>({id:e.id,name:e.name,agent:e.agent,permissionMode:e.dangerouslySkipPermissions?`Skip permissions`:`Default`})));for(let t of e){mc(t.id,t.coherenceHooks),t.ephemeral||Ol(t.path),qj(t.id,t.linkedPrs);let e=tx(t.id);e&&Rx(t.id,t.state,t.stateSince),e&&Un(t.id,!!t.saneYolo),e&&yx(t.id,t.isGuarded,t.isGuardrailsReleased),e||ox(t.id,t.name,t.state,vN(t)),Nx(t.id,t.failureReason),ex(t.id,t.taskTitle,t.taskTitleIsCustom),_x(t.id,t.agent),Dx(t.id,t.mergeStatus,t.mergeReason),gx(t.id,t.effectiveBase),xx(t.id,t.activeAgents,t.awaitingBackgroundTasks),Cx(t.id,t.pendingPromptKind),wx(t.id,t.unseenOutcome),qb(t.id,t),ux(t.id,t.hasPlan),aL(t.id)}ax(),Gc(P),pC(),MC(),YI(),eL(),ML(location.hash),hR(),OI=!0,AI()}function eL(){Ly([...P].map(([e,t])=>({id:e,name:st(t)||e})))}function tL(e,t){ux(e,t?.hasPlan===!0),wx(e,t?.unseenOutcome),aL(e)}function nL(e){if(!tx(e.id))ox(e.id,e.session,e.to,vN({skipPerms:e.skipPerms,saneYolo:e.saneYolo,stateSince:e.timestamp})),Gc(P),UM();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;Ax(e.id),ox(e.id,e.session,b.DORMANT,vN({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})),_x(e.id,t?.agent),tL(e.id,t),XI(),I_(e.id),Gc(P)}else Rx(e.id,e.to,e.timestamp,e.event),Nx(e.id,e.failureReason),e.saneYolo!==void 0&&Un(e.id,e.saneYolo),Gc(P),I_(e.id),XI(),rr(e.id),e.to===b.INITIALIZING&&(e.from===b.DONE||e.from===b.FAILED)&&Rm(e.id)}var rL=new Map;function iL(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};rL.set(n.id,e),Sx(n.id,e)}for(let e of[...rL.keys()])t.has(e)||(rL.delete(e),Sx(e,null))}function aL(e){let t=rL.get(e);t&&Sx(e,t)}WF(j),ST(j),Py(j),HM(j),dM(j),ur(Gj),ol(vc),ol(Uj),qn({isReadable:yc,open:xc}),Vn(gN);function oL(e){oI(Q,{isPhoneShellActive:KE(),activeView:Pr(),phoneScreen:I.snapshot().phoneScreen},e,mI)}es(()=>oL(`settings-updated`));var sL={snapshot:e=>{QI(e.serverBuild),$I(e.sessions)},"hooks-report":e=>wT(e),"save-hook-result":()=>TT(),"delete-hook-result":()=>TT(),"state-change":e=>nL(e),"session-added":e=>{e.ephemeral||Ol(e.path),qj(e.id,e.linkedPrs),tx(e.id)||(ox(e.id,e.session,e.state,vN(e)),_x(e.id,e.agent),aL(e.id)),Gc(P),XI(),eL()},"session-close-confirm":e=>{Ri(e.id)},"session-removed":e=>{Sn(e.id),Ax(e.id),hc(e.id),R_(e.id),Jj(e.id),Gc(P),XI(),eL()},"session-title":e=>{ex(e.id,e.taskTitle,e.isCustom),XI()},"session-prs":e=>qj(e.id,e.linkedPrs),"session-renamed":e=>{kx(e.id,e.newName),XI(),eL()},"session-modified":e=>{e.ephemeral||Ol(e.path);let t=P.get(String(e.id));mc(e.id,null),Ax(e.id),R_(e.id),qj(e.id,e.linkedPrs),ox(e.id,e.session,e.state,vN(e)),_x(e.id,e.agent),tL(e.id,t),Gc(P),XI(),eL()},"session-git":e=>vx(e.id,!!e.worktree),"session-agents":e=>{xx(e.id,e.activeAgents,e.awaitingBackgroundTasks),XI(),rr(e.id)},"session-unseen":e=>{wx(e.id,e.unseenOutcome),ax(),Gc(P),XI()},"session-prompt":e=>{Cx(e.id,e.pendingPromptKind),YI()},"session-merge-status":e=>{Ex(e.id,e.mergeStatus,e.reason),TC(e.id,e.mergeStatus),YI()},"session-worktree-blocked":e=>{F({source:zI,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:BI,sessionId:e.id,message:`${e.session}: ${e.notice||`The base branch could not be synced. The session keeps working on its current base.`}`})},"session-worktree-ready":e=>{bn(zI,e.id),gx(e.id,e.base)},"session-diff":e=>{Ox(e.id,{committed:e.committed,uncommitted:e.uncommitted,hasCommits:e.hasCommits})},"session-diff-error":e=>{j_(e.id,e.message)},"change-map":e=>M_(e.id,e.map),"branch-sync-status":e=>N_(e.id,e),"session-changed":e=>F_(e.id),"debug-state-response":e=>Yn(e),"session-trace-response":e=>{Jb(e)||Ry(e)},"session-trace-changed":e=>{Xb(e.id),zy(e)},"session-conversation":e=>{qb(e.id,e),YI()},"session-plan-changed":e=>{dx(e),YI()},"session-plan-draft":e=>{fx(e)},"session-plan-response":e=>{px(e)},"session-docs-changed":e=>ws(e),"session-docs-snapshot":e=>Ts(e),"session-shown":e=>Zs(e),"session-shown-snapshot":e=>Qs(e),"session-coherence-hooks":e=>{mc(e.id,e.coherenceHooks),XI()},"session-coherence":e=>{gc(e),XI()},"session-coherence-snapshot":e=>{_c(e),XI()},"session-coherence-journal-response":e=>Sc(e),"session-setup-response":e=>_N(e),notify:e=>{ca(e),rr(e.session)},"update-status":e=>{mL(e),pP(e)},"update-progress":e=>mP(e.journal),"post-turn-leftovers":e=>gL(e),error:e=>{let t=hP(e),n=By(e);Yb(e);let r=mx(e);t||n||r||(e.id?Mx(e.id,e.message):F({source:RI,message:e.message}))},"session-error":e=>{O_(e.id),!mx(e)&&Mx(e.id,e.message)},"settings-updated":e=>{e.settings&&JL(e.settings),co()},"agent-logins":e=>ti(e.logins),"health-snapshot":e=>{e.stats&&Vh(e.stats)},"radar-status":e=>uN(e),"radar-investigation-activity":e=>dN(e),"radar-investigation-finished":e=>fN(e),"team-review-status":e=>HD(e),"github-prs":e=>xr(e),"my-prs-status":CA,"benchmark-status":e=>mM(e),"benchmark-action-result":e=>hM(e),"my-pr-merge-result":e=>wA(e),"team-review-action-result":e=>UD(e),"open-team-review-session-result":e=>WD(e),"issues-status":e=>GM(e),"issue-detail-result":e=>KM(e),"open-issue-session-result":e=>qM(e),"usage-sessions":e=>{iL(e.sessions),JF(e)},"usage-report":e=>{XF(e),dP()},"plan-limits":e=>YF(e),"usage-budget-alert":e=>ca({session:`budget-${e.scope}-${e.periodKey}`,category:`threshold-${e.threshold}`,message:e.text,ignoreFocus:!0}),"visions-findings":e=>oT(e),"visions-comments":e=>sT(e),"visions-hand":e=>cT(e),"visions-intent":e=>lT(e),"visions-fix":e=>aT(e),"visions-snapshot":e=>fT(e),"ingest-activity":e=>uT(e),"ingest-snapshot":e=>dT(e),"client-trust":e=>cR(e.trust),"shutting-down":()=>MI(`Shutting down...`,`Shutting down sessions...`),restarting:()=>MI(`Restarting...`,`Restarting server...`)};function cL(e){let t=sL[e.type];t&&t(e)}Ue(e=>{cL(e),oL(e.type)});var lL,uL=null;function dL(e,t,n){e.onclick=()=>{let e=je(n);e?e.then(()=>{t.textContent=`Copied`}).catch(()=>{t.textContent=`Copy failed`}):t.textContent=`Copy failed`}}var fL=ma(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 mL(e){let t=D(document,`#update-banner`,`div`),{mode:n,tone:r,text:i}=ve(e),a=r===`security`;if(!e.updateAvailable&&!a){t.hidden=!0;return}let o=pL(e),s=o&&n===`restart`?`${o}:ready`:o;if(a&&i===uL||!a&&lL!==void 0&&s===lL||!a&&s&&Kt()===s)return;t.classList.toggle(`update-banner-security`,a);let c=String(e.command??``);D(document,`#update-banner-text`,`span`).textContent=i,D(document,`#update-banner-cmd`,`code`).textContent=c;let l=D(document,`#update-banner-update`,`a`);l.href=fL,l.hidden=n!==`link`;let u=D(document,`#update-banner-restart`,`button`);u.hidden=n!==`restart`,u.onclick=sR;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,dL(f,p,c),D(document,`#update-banner-dismiss`,`button`).onclick=()=>{t.hidden=!0,a?uL=i:(lL=s,Ut(s))}}var hL=!1;function gL({repositories:e,command:t}){let n=D(document,`#post-turn-leftovers-banner`,`div`);if(e.length===0){n.hidden=!0;return}if(hL)return;let r=D(document,`#post-turn-leftovers-copy-status`,`span`);D(document,`#post-turn-leftovers-text`,`span`).textContent=kr(e.length),D(document,`#post-turn-leftovers-cmd`,`code`).textContent=t,r.textContent=``,n.hidden=!1,dL(D(document,`#post-turn-leftovers-copy`,`button`),r,t),D(document,`#post-turn-leftovers-dismiss`,`button`).onclick=()=>{hL=!0,n.hidden=!0}}var _L=D(document,`#telemetry-banner`,`div`);function vL(){Ft(!0),_L.hidden=!0}function yL(e){_L.hidden=!hF(e,pt())}var bL=D(document,`#telemetry-banner-settings`,`a`);bL.href=ma(`privacy`,`telemetry-enabled`,`What's collected`).href,bL.addEventListener(`click`,vL),D(document,`#telemetry-banner-dismiss`,`button`).addEventListener(`click`,vL),D(document,`#btn-add-session-header`,`button`).addEventListener(`click`,Ai);var xL=D(document,`#btn-mute`,`button`);eM(xL);var SL=D(document,`#btn-streamer`,`button`);as(SL),fF();var CL=D(document,`#power-menu`,`div`),wL=D(document,`#btn-power`,`button`),TL=D(document,`#power-menu-dropdown`,`div`);function EL(e){CL.classList.toggle(`open`,e),wL.setAttribute(`aria-expanded`,String(e))}wL.addEventListener(`click`,e=>{e.stopPropagation(),EL(!CL.classList.contains(`open`))}),cr({trigger:wL,menu:TL,menuItems:()=>[...TL.querySelectorAll(`[role="menuitem"]`)].filter(e=>!e.hidden),isOpen:()=>CL.classList.contains(`open`),open:()=>EL(!0),close:()=>EL(!1)}),document.addEventListener(`click`,e=>{e.target instanceof Node&&(CL.contains(e.target)||EL(!1))}),he(document.querySelector(`.header`));function DL(e){e&&rP(e),!XE(`settings`)&&$(`settings`,{section:e})}function OL(){da(location.hash)&&history.replaceState(history.state,``,`${location.pathname}${location.search}`)}function kL(e){return da(e)?(rP(null,null,e),XE(`settings`)||$(`settings`,{persist:!1}),!0):!1}var AL=`No plan is stored for this session yet. It appears here once the agent writes one.`,jL=`Plan`;function ML(e){let t=Gi(e);return t?!tx(t)||(history.replaceState(history.state,``,`${location.pathname}${location.search}`),KE()?(GE(t)||F({source:jL,sessionId:t,message:AL}),!0):($(`focus`,{persist:!1}),DC(t)||F({source:jL,sessionId:t,message:AL}),!0)):!1}function NL(e){return ML(e)?!0:kL(e)}function PL(e){e.newURL===location.href&&NL(location.hash)}document.addEventListener(`click`,e=>{if(!KE()||e.defaultPrevented)return;let t=e.target instanceof Element?e.target.closest(`a[href^="#"]`):null;t instanceof HTMLAnchorElement&&NL(t.hash)&&e.preventDefault()}),oA(D(document,`#celebration-tray`,`div`),D(document,`#btn-celebrations`,`button`),D(document,`#celebration-tray-count`,`span`)),D(document,`#btn-help`,`button`).addEventListener(`click`,()=>{DL(`browser-shortcuts`)});var Q=vI({onRestart:sR,openTerminal:e=>{YE(e)||($(`focus`),EC(e))},openPlan:e=>{$(`focus`),DC(e)},openReviews:()=>RL(`prs`)?(XE(`prs`)||$(`prs`),!0):!1,setPhoneAttention:QE});function FL(){return Q.map(e=>e.view)}var IL=FL();tP(Q),C_({panel:document.getElementById(`review-sidebar`)}),hI(Q);function LL(e){return Q.find(t=>t.view===e)}function RL(e){return Q.some(t=>t.view===e&&!t.tab.hidden)}var zL=!0,BL=null;function VL(e){LL(e)?.attention?.acknowledge()}var HL=null;function UL(e){HL=j({type:`dashboard-telemetry`,event:`view_shown`,properties:{view:e}})?null:e}function WL(e){let t=LL(e);t&&(pI(t,e=>aI(t,e,`shown`)),UL(e))}function $(e,{section:t,setting:n,persist:r=!0}={}){let i=LL(e);if(!i||!RL(e))return;let a=Pr();I.dispatch(`setActiveView`,e),zL=r,r&&(BL=null),document.body.dataset.activeView=e,document.body.dataset.reviewSidebarHidden=String(i.hasReviewSidebar!==!0),r&&gt(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&&mI(a)?.deactivate?.(),pI(i,r=>{Pr()===e&&(r.activate?.(),aI(i,r,`shown`),e===`settings`&&t&&rP(t,n??null))}),UL(e),a===`settings`&&e!==`settings`&&OL(),VL(e)}function GL(e,t){let{view:n}=e;e.tab.hidden=!t,ZE(n,t),e.onAvailabilityChange?.(t),!KE()&&(!t&&Pr()===n&&$(`focus`),t&&BL===n&&$(n))}function KL(e){for(let{view:t,isAvailable:n}of tI(Q,e))GL(t,n)}function qL(e){let t=nI(IL,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)),VE(t))}function JL(e){md(e.isExperimentalBuild===!0&&cn()),rx(e),uP(e),rT(e),KL(e),yL(e),qL(e.viewTabOrder),$o(e.streamerMode===!0),Gb(e.conversationView===!0)}for(let e of Q)e.gate&&(GL(e,!1),`subscribe`in e.gate&&e.gate.subscribe(t=>GL(e,t)));Fy(()=>{RL(`trace`)&&(XE(`trace`)||$(`trace`))});function YL(){return Q.filter(e=>!e.tab.hidden)}function XL(e,t){let n=e[t];return $(n.view),n.tab}function ZL(e,t){let n=YL(),r=n.findIndex(t=>t.view===e);return XL(n,fr(r,t,n.length))}function QL(e){Q.some(e=>e.tab===document.activeElement)&&e.focus()}var $L=null;function eR(e){let t=FL();qL(e),Ze(`update-settings`,{settings:{viewTabOrder:e}}).then(e=>{e.type===`settings-error`&&qL(t)}).catch(()=>qL(t))}function tR(e){let t=$L;if($L=null,!t||t===e)return;let n=FL();eR(rI(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=>{$L=t,e.dataTransfer?.setData(`text/plain`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),n.addEventListener(`dragover`,e=>{$L&&$L!==t&&(e.preventDefault(),n.dataset.dropTarget=`true`)}),n.addEventListener(`dragleave`,()=>delete n.dataset.dropTarget),n.addEventListener(`drop`,e=>{e.preventDefault(),delete n.dataset.dropTarget,tR(t)}),n.addEventListener(`dragend`,()=>{$L=null}),n.addEventListener(`keydown`,e=>{if(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)return;let t=YL(),n=t.findIndex(e=>e.view===Pr()),r=pr(e.key,n,t.length,`horizontal`);r!==null&&(e.preventDefault(),XL(t,r).focus())})}var nR=en(),rR=da(location.hash),iR=Gi(location.hash);if(rR&&(rP(null,null,location.hash),$(`settings`,{persist:!1})),iR&&$(`focus`,{persist:!1}),!rR&&!iR){let e=RL(nR);e||(BL=nR),$(e?nR:`focus`,{persist:e})}HE({panels:ET(Q),onScreenShown:e=>{WL(e),e!==`settings`&&OL(),e===`settings`&&!da(location.hash)&&rP(),VL(e)},canGoBack:e=>e===`settings`&&cP()||e===`prs`&&Nj(),onBack:e=>{e===`settings`&&lP(),e===`prs`&&Pj()},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`),xL,SL,CL]}),sP(NE),Mj(NE);function aR(e){if(e===`phone`){let e=tC();for(let e of Q)mI(e.view)?.deactivate?.();let t=da(location.hash);UE({sessionId:e??void 0,linkedScreenId:t?`settings`:void 0}),t&&rP(null,null,location.hash);return}let t=qE();WE();let n=Pr();$(RL(n)?n:`focus`,{persist:zL}),t&&EC(t)}Du()&&aR(`phone`),Ou(aR),window.addEventListener(`hashchange`,PL);function oR({type:e,title:t,confirmLabel:n,danger:r,idleMessage:i,actionAfterKillingSessions:a}){EL(!1);let o=nx(),s=o>0?`Kill ${o} session${o>1?`s`:``} and ${a}?`:i;mr({title:t,message:s,confirmLabel:n,danger:r||o>0,onConfirm:()=>j({type:e})})}function sR(){oR({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`,sR);function cR(e){let t=Tr(`shutdown`,e);D(document,`#btn-shutdown`,`button`).hidden=!t,D(document,`#menu-divider-shutdown`,`div`).hidden=!t}D(document,`#btn-shutdown`,`button`).addEventListener(`click`,()=>{oR({type:`shutdown`,title:`Shut Down Server`,confirmLabel:`Shut Down`,danger:!0,idleMessage:`Shut down the server?`,actionAfterKillingSessions:`shut down the server`})});function lR(){return(document.activeElement?.closest(`.session-card`))?.dataset.id??null}function uR(e){EC(e),Si(e),requestAnimationFrame(()=>requestAnimationFrame(()=>P.get(e)?.term?.focus()))}function dR(){let e=lR()??L();e?Pi(e,uR):document.getElementById(`btn-add-session-header`)?.click()}function fR({action:e,step:t}){switch(e){case`merge`:return z_(),!0;case`close-session`:{let e=L();return e?(Ri(e),!0):!1}case`resolve-or-resync`:return V_()||W_(),!0;case`new-session`:return document.getElementById(`btn-add-session-header`)?.click(),!0;case`quick-session`:return dR(),!0;case`next-attention`:return Du()?!1:eC()?(_C(),!0):(Pr()===`prs`&&Fj()||jC(()=>$(`focus`)),!0);case`rail-step`:return eC()?(kC(t),!0):!1;case`view-step`:return!Du()&&(QL(ZL(Pr(),t)),!0);case`session-nth`:return eC()?(OC(t),!0):!1;case`streamer-mode`:return is(),!0}}document.addEventListener(`keydown`,e=>{if(e.repeat||pe(e))return;let t=document.activeElement?.classList.contains(`xterm-helper-textarea`)??!1,n=Nt(e,ha,{isTerminalFocused:t},va());n&&(hr()||fR(n)&&e.preventDefault())});var pR=Or({mode:`trailing`,delayMs:150,run:()=>{j({type:`focus-change`,focused:document.hasFocus()})}});function mR(){pR.schedule()}function hR(){let e=qE();e&&M(e)?._isActiveViewer?.()===!0&&Fx(e)}function gR(){mR(),Zm(M(Fr())),hR()}window.addEventListener(`focus`,gR),window.addEventListener(`blur`,gR),document.addEventListener(`visibilitychange`,gR),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&Op()});var _R=Le(j);window.addEventListener(`error`,e=>{_R(e.error),Re(`uncaught`,$e(e.error??e.message))}),window.addEventListener(`unhandledrejection`,e=>{_R(e.reason),Re(`unhandled-rejection`,$e(e.reason))}),_I(()=>window.sessionStorage),window.addEventListener(`pageshow`,e=>{e.persisted&&Op()}),Bh(D(document,`#health-footer-mount`,`div`)),Ru(ix),qI(),jN(),Ge();export{kj as $,Ea as $n,ab as $t,rN as A,gd as An,DD as At,FM as B,fl as Bn,xT as Bt,aP as C,Uh as Cn,Sr as Cr,zD as Ct,KN as D,md as Dn,AD as Dt,YN as E,Yh as En,wD as Et,NM as F,Du as Fn,gD as Ft,Qj as G,ts as Gn,XC as Gt,uM as H,Jc as Hn,Qw as Ht,BM as I,Ou as In,nD as It,Ej as J,Wo as Jn,KC as Jt,$j as K,Uo as Kn,yw as Kt,LM as L,Tl as Ln,rD as Lt,iN as M,od as Mn,ND as Mt,IM as N,Yu as Nn,_D as Nt,iP as O,pd as On,OD as Ot,RM as P,Ju as Pn,hD as Pt,Pj as Q,Ca as Qn,Uy as Qt,VM as R,wl as Rn,bT as Rt,lP as S,Gh as Sn,I as Sr,vA as St,qN as T,ng as Tn,jD as Tt,fM as U,Qo as Un,Zw as Ut,PM as V,Xc as Vn,$w as Vt,lM as W,es as Wn,dw as Wt,Dj as X,zo as Xn,mS as Xt,Fj as Y,Ro as Yn,pS as Yt,Sj as Z,Ba as Zn,Ab as Zt,JN as _,Oy as _n,fi as _r,nj as _t,UF as a,Zy as an,ba as ar,WA as at,QN as b,cg as bn,ri as br,bA as bt,GF as c,Yy as cn,pa as cr,ZA as ct,LF as d,Ny as dn,Qi as dr,LA as dt,tb as en,wa as er,Tj as et,ZF as f,jy as fn,Yi as fr,KA as ft,uP as g,Dy as gn,di as gr,QA as gt,FP as h,ky as hn,Si as hr,tj as ht,$F as i,qy as in,xa as ir,EA as it,aN as j,Xu as jn,ED as jt,oN as k,fd as kn,TD as kt,zF as l,Gy as ln,ua as lr,BA as lt,kP as m,Ay as mn,Di as mr,zA as mt,nI as n,Ky as nn,ya as nr,bj as nt,KF as o,nb as on,va as or,UA as ot,RP as p,My as pn,qi as pr,JA as pt,xj as q,Ko as qn,bw as qt,QF as r,Jy as rn,Sa as rr,Aj as rt,BF as s,Qy as sn,ma as sr,GA as st,rI as t,eb as tn,ha as tr,jj as tt,RF as u,db as un,fa as ur,$A as ut,oP as v,ty as vn,ni as vr,RA as vt,nP as w,Jh as wn,Cr as wr,BD as wt,eP as x,Xh as xn,Zr as xr,yA as xt,ZN as y,og as yn,ti as yr,qA as yt,zM as z,ul as zn,CT as zt};