@cmmd-center/forge 0.13.136 → 0.13.137
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.cjs +2 -2
- package/dist/bin.mjs +2 -2
- package/dist/client/assets/{DiffPanel-DaqlmpHv.js → DiffPanel-B9TB-BHO.js} +2 -2
- package/dist/client/assets/{DiffPanel.logic-CNeDuJXV.js → DiffPanel.logic-B0YyP6X_.js} +2 -2
- package/dist/client/assets/{DiffWorkerPoolProvider-7AKbLYH_.js → DiffWorkerPoolProvider-DJ0db7wQ.js} +2 -2
- package/dist/client/assets/{PullRequestCodePanel-uQGOOGFF.js → PullRequestCodePanel-BQjjizx8.js} +2 -2
- package/dist/client/assets/{Virtualizer-CX04hq93.js → Virtualizer-CFIPzyOA.js} +2 -2
- package/dist/client/assets/{WorkerPoolContext-CWbxmZMK.js → WorkerPoolContext-wx5NJQK1.js} +6 -6
- package/dist/client/assets/{cmmdForgeRuntimeListResource-CX0wIrGL.js → cmmdForgeRuntimeListResource-KXJO7nN7.js} +4 -4
- package/dist/client/assets/{currentForgeWorkspaceStore-CBTn8tE8.js → currentForgeWorkspaceStore-DaowV1uP.js} +2 -2
- package/dist/client/assets/{index-d3qvIP59.js → index-Malj6asI.js} +106 -106
- package/dist/client/index.html +6 -6
- package/dist/forge-build.json +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/workspaceReadinessAtom-D6bgTvKb.js","assets/rolldown-runtime-hePW80VL.js","assets/atomRegistry-C1yW8tyM.js","assets/Stream-mUTFnSY9.js","assets/angular-html-B8mrqUL5.js","assets/html-XwrE-1r6.js","assets/javascript-obGGvMPs.js","assets/css-CNuuLpMC.js","assets/angular-ts-Bzix210W.js","assets/scss-YesllqfO.js","assets/apl-Dhin1L29.js","assets/xml-BlnrEAEy.js","assets/java-DdHNQ9hk.js","assets/json-DAgxKhMr.js","assets/astro-B-4NNgOP.js","assets/typescript-BydbNFcO.js","assets/postcss-BXeXVLqQ.js","assets/tsx-CUOciP0b.js","assets/blade-Wr94ul2N.js","assets/html-derivative-i4STDFnl.js","assets/sql-ClgswhA6.js","assets/bsl-BkkzgIyY.js","assets/sdbl-bTVj8UrX.js","assets/c-iCihek07.js","assets/cairo-DLTphjLi.js","assets/python-gzcpVVnB.js","assets/cobol-Cw2-KvLW.js","assets/coffee-CiiSLhB6.js","assets/cpp-DjoE5qBx.js","assets/regexp-DR20uMnK.js","assets/glsl-D5MA2a_X.js","assets/crystal-wCJpIkgB.js","assets/shellscript-Da78Ox-3.js","assets/edge-DCY0a-ow.js","assets/elixir-DP304Xio.js","assets/elm-o4NJxfws.js","assets/erb-BcNYoZVd.js","assets/ruby-2bd251b9.js","assets/haml-CwEpbK1d.js","assets/graphql-Ctjuxyvl.js","assets/jsx-gTgmArGx.js","assets/lua-FONpmTUP.js","assets/yaml-Du_6cdrH.js","assets/erlang-Cphh6RMH.js","assets/markdown-BYOwaDjH.js","assets/fortran-fixed-form-DEKoE2YW.js","assets/fortran-free-form-CYNrtFtB.js","assets/fsharp-D13ZGOAj.js","assets/gdresource-C0sCabJj.js","assets/gdshader-CBce3t8t.js","assets/gdscript-Cp2uCuqX.js","assets/git-commit-BSykSTBG.js","assets/diff-woXpYk--.js","assets/git-rebase-BDPpS8w6.js","assets/glimmer-js-BONyzAsu.js","assets/glimmer-ts-f9c0GCOe.js","assets/hack-7ztQ7Up-.js","assets/handlebars-ryMP1rBR.js","assets/http-kmH8AyfE.js","assets/hurl-DCZHXKU4.js","assets/csv-Dx-8-gkx.js","assets/hxml-B0Qn7Nwc.js","assets/haxe-OTjmBuCE.js","assets/jinja-B-tLrNsM.js","assets/jison-CBjhYtSs.js","assets/julia-CjHxn3vf.js","assets/r-D6UWEOL2.js","assets/just-CZ9bduw9.js","assets/perl-BAov3eih.js","assets/latex-D9bvcAJr.js","assets/tex-0w6-Dtgt.js","assets/liquid-G0MH4h_m.js","assets/marko-DV5GrDmo.js","assets/less-DVTAwKKz.js","assets/mdc-cg1lnqpW.js","assets/nextflow-BJtWHP5T.js","assets/nextflow-groovy-DJMQeKeT.js","assets/nginx-BTMw9COX.js","assets/nim-B6yJ_yaC.js","assets/php-Cg76ANFt.js","assets/pug-DkgDHZci.js","assets/qml-_a-QhfPD.js","assets/razor-D3EoCAik.js","assets/csharp-Ct8U2NOr.js","assets/rst-YTmaoyaq.js","assets/cmake-Bj61d0ZC.js","assets/sas-B6p8-ynO.js","assets/shaderlab-TOUzSsQk.js","assets/hlsl-Cvrh5tZx.js","assets/shellsession-CVsQGYfZ.js","assets/soy-DEd-qcad.js","assets/sparql-D_iOobhT.js","assets/turtle-ByJddavk.js","assets/stata-RoaAgbqU.js","assets/surrealql-DIn4NJsS.js","assets/svelte-Bj3Hmc9F.js","assets/templ-TjxbArHn.js","assets/go-rLFTqkRN.js","assets/ts-tags-DFwAVxhO.js","assets/twig-BbcH-NR0.js","assets/vue-BNi0qJZP.js","assets/vue-html-DkKkQnZL.js","assets/vue-vine-DFaKYU4X.js","assets/stylus-B6D30XZt.js","assets/xsl-BOPS8gLt.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e,r as t,t as n}from"./rolldown-runtime-hePW80VL.js";import{$ as r,$t as i,Aa as a,An as o,Ar as s,At as c,B as l,Br as u,Bt as d,Ci as f,Dn as p,Ei as m,En as h,Er as g,Fa as _,Fi as v,Fn as y,Gn as b,Gt as x,Ha as ee,Hn as te,Hr as ne,Ht as re,Ia as ie,It as ae,J as oe,Jt as se,Kt as ce,L as le,La as ue,Ln as de,Lt as fe,M as pe,Ma as me,Mr as he,Ni as ge,Nn as _e,Nt as ve,Pi as ye,Pn as be,Pt as xe,Qi as Se,Rn as Ce,Rr as we,Rt as Te,Si as Ee,Ta as De,Tn as Oe,Tr as ke,Tt as Ae,Ua as je,Un as Me,Ur as Ne,Ut as Pe,V as Fe,Va as Ie,Vn as Le,Vr as Re,Vt as ze,W as Be,Wa as Ve,Wn as He,Wr as Ue,Wt as We,X as Ge,Yi as Ke,Yt as qe,Z as Je,Zi as Ye,_ as Xe,_t as Ze,an as Qe,at as $e,bn as et,br as tt,bt as nt,ca as rt,ci as it,ct as at,dn as ot,ea as st,en as ct,et as lt,fi as ut,gi as dt,gn as ft,hn as pt,hr as mt,ht,in as gt,it as _t,ja as vt,jn as yt,jr as bt,jt as xt,ki as St,kr as Ct,kt as wt,li as Tt,ln as Et,m as Dt,mn as Ot,mr as kt,na as At,ni as jt,nt as Mt,oa as Nt,or as Pt,pn as Ft,pt as It,q as Lt,qt as Rt,r as zt,rn as Bt,rr as Vt,rt as Ht,sn as Ut,un as Wt,ut as Gt,vn as Kt,vr as qt,wn as Jt,wr as Yt,wt as Xt,xi as Zt,xn as Qt,y as $t,yi as en,yn as tn,z as nn,zn as rn,zt as an}from"./Stream-mUTFnSY9.js";import{i as on,l as sn,n as cn,o as ln,s as un}from"./atomRegistry-C1yW8tyM.js";import{Sn as dn}from"./CompositeItem-DTyKsv13.js";import{$ as fn,A as pn,B as mn,Bn as hn,C as gn,D as _n,Dt as vn,G as yn,H as S,Hn as C,Jn as bn,Kn as xn,L as Sn,Ln as Cn,M as wn,N as Tn,O as En,Q as Dn,Qt as On,Rt as kn,S as An,Sn as jn,T as Mn,Tn as Nn,U as Pn,Un as Fn,Vn as In,Wn as Ln,Wt as Rn,X as zn,Y as Bn,Yt as Vn,Z as Hn,_n as Un,at as Wn,ct as Gn,dn as Kn,dt as qn,fn as Jn,gn as Yn,gt as Xn,hn as Zn,ht as Qn,in as $n,it as er,ln as tr,lt as nr,mn as rr,mt as ir,ot as ar,pn as or,qn as sr,rn as cr,st as lr,t as ur,tn as dr,tt as fr,un as pr,ut as mr,vt as hr,w as gr,wn as _r,yn as vr,yt as yr,zn as br}from"./cmmdForgeRuntimeListResource-CX0wIrGL.js";import{$t as xr,A as Sr,At as Cr,Bt as wr,C as Tr,Ct as Er,Dt as Dr,En as Or,Et as kr,G as Ar,Gn as jr,Gt as Mr,Hn as Nr,Ht as Pr,In as w,Jt as Fr,Kn as Ir,Kt as Lr,Lt as Rr,Mt as zr,Nn as Br,Nt as Vr,Ot as Hr,Q as Ur,Qt as Wr,R as Gr,Rt as Kr,Sn as qr,U as Jr,Un as Yr,Ut as Xr,Vn as Zr,Vt as Qr,W as $r,Wn as ei,Wt as ti,Xt as ni,Yn as ri,Yt as ii,Zt as ai,_n as oi,_t as si,an as ci,b as li,c as ui,cn as di,dt as fi,en as pi,er as mi,ft as hi,gn as gi,gt as _i,hn as vi,in as yi,j as bi,jt as xi,kn as Si,l as Ci,mt as wi,nn as Ti,nt as Ei,on as Di,pn as Oi,qt as ki,rt as Ai,s as T,sn as ji,tn as Mi,tt as Ni,ut as Pi,vn as E,vt as Fi,w as Ii,x as Li,xn as Ri,yn as zi,zn as Bi,zt as Vi}from"./src-e9jwz4Nc.js";import{$ as Hi,A as Ui,B as Wi,C as Gi,D as Ki,E as qi,F as Ji,G as Yi,H as Xi,I as Zi,J as Qi,K as $i,L as ea,N as ta,O as na,P as ra,Q as ia,R as aa,T as oa,U as sa,W as ca,X as la,Y as ua,Z as da,_ as fa,et as pa,it as ma,nt as ha,q as ga,rt as _a,tt as va,w as ya}from"./cmmdAuthRedirect-Cpw3QgrC.js";import{d as ba,f as xa,n as Sa,t as Ca}from"./utils-MX9zGa4a.js";import{t as D}from"./preload-helper-Czpn1I53.js";import{t as wa}from"./react-D4GEJ3ir.js";import{t as Ta}from"./transport-CgH8pQK3.js";import{a as Ea,i as Da,n as Oa,r as ka,t as Aa}from"./debouncer-BEV7Iuwb.js";import{n as ja,t as Ma}from"./workspaceReadinessAtom-D6bgTvKb.js";import{a as Na,c as Pa,n as Fa,r as Ia,s as La,u as Ra}from"./themePalette-DchQFoHe.js";function za(e){return e[e.length-1]}function Ba(e,t){return typeof e==`function`?e(t):e}var Va=Object.prototype.hasOwnProperty,Ha=Object.prototype.propertyIsEnumerable;function Ua(e){for(let t in e)if(Va.call(e,t))return!0;return!1}var Wa=()=>Object.create(null),Ga=(e,t)=>Ka(e,t,Wa);function Ka(e,t,n=()=>({}),r=0){if(e===t)return e;if(r>500)return t;let i=t,a=Xa(e)&&Xa(i);if(!a&&!(Ja(e)&&Ja(i)))return i;let o=a?e:qa(e);if(!o)return i;let s=a?i:qa(i);if(!s)return i;let c=o.length,l=s.length,u=a?Array(l):n(),d=0;for(let t=0;t<l;t++){let o=a?t:s[t],l=e[o],f=i[o];if(l===f){u[o]=l,(a?t<c:Va.call(e,o))&&d++;continue}if(l===null||f===null||typeof l!=`object`||typeof f!=`object`){u[o]=f;continue}let p=Ka(l,f,n,r+1);u[o]=p,p===l&&d++}return c===l&&d===c?e:u}function qa(e){let t=Object.keys(e);if(t.length!==Object.getOwnPropertyNames(e).length)return!1;let n=Object.getOwnPropertySymbols(e);if(n.length===0)return t;for(let r of n){if(!Ha.call(e,r))return!1;t.push(r)}return t}function Ja(e){if(!Ya(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!Ya(n)||!n.hasOwnProperty(`isPrototypeOf`))}function Ya(e){return Object.prototype.toString.call(e)===`[object Object]`}function Xa(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Za(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,i=e.length;r<i;r++)if(!Za(e[r],t[r],n))return!1;return!0}if(Ja(e)&&Ja(t)){let r=n?.ignoreUndefined??!0;if(n?.partial){for(let i in t)if((!r||t[i]!==void 0)&&!Za(e[i],t[i],n))return!1;return!0}let i=0;if(!r)i=Object.keys(e).length;else for(let t in e)e[t]!==void 0&&i++;let a=0;for(let o in t)if((!r||t[o]!==void 0)&&(a++,a>i||!Za(e[o],t[o],n)))return!1;return i===a}return!1}var Qa=/[\x00-\x1f\x7f"<>`{}]/g;function $a(e){return e.replace(Qa,e=>`%`+e.charCodeAt(0).toString(16).toUpperCase().padStart(2,`0`))}function eo(e){let t;try{t=decodeURI(e)}catch{t=e.replaceAll(/%[0-9A-F]{2}/gi,e=>{try{return decodeURI(e)}catch{return e}})}return $a(t)}var to=[`http:`,`https:`,`mailto:`,`tel:`];function no(e,t){if(!e)return!1;try{let n=new URL(e);return!t.has(n.protocol)}catch{return!1}}function ro(e){if(!e||!/[%\\\x00-\x1f\x7f]/.test(e)&&!e.startsWith(`//`))return{path:e,handledProtocolRelativeURL:!1};let t=/%25|%5C/gi,n=0,r=``,i;for(;(i=t.exec(e))!==null;)r+=eo(e.slice(n,i.index))+i[0],n=t.lastIndex;r+=eo(n?e.slice(n):e);let a=!1;return r.startsWith(`//`)&&(a=!0,r=`/`+r.replace(/^\/+/,``)),{path:r,handledProtocolRelativeURL:a}}function io(e){return/\s|[^\u0000-\u007F]/.test(e)?e.replace(/\s|[^\u0000-\u007F]/gu,encodeURIComponent):e}function ao(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function oo(){throw Error(`Invariant failed`)}var O=t(Ve(),1),so=O.createContext(null);function co(e){return O.useContext(so)}var lo=O.createContext(void 0),uo=O.createContext(void 0),fo=dn();function po(e,t){return e===t}function mo(e,t,n=po){let r=(0,O.useCallback)(t=>{if(!e)return()=>{};let{unsubscribe:n}=e.subscribe(t);return n},[e]),i=(0,O.useCallback)(()=>e?.get(),[e]);return(0,fo.useSyncExternalStoreWithSelector)(r,i,i,t,n)}var ho={};function go(e,t){let n=O.useRef();return r=>{let i=e?.select?e.select(r):r;return e?.structuralSharing??t.options.defaultStructuralSharing?n.current=Ka(n.current,i):i}}function _o(e){let t=co(),n=O.useContext(e.from?uo:lo),r=e.from??n,i=t.stores.getMatchStore(r),a=go(e,t),o=mo(i,e=>e?a(e):ho);if(o!==ho)return o;(e.shouldThrow??!0)&&oo()}function vo(e){return _o({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{let n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}var yo=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},bo=new class extends yo{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},xo={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},So=new class{#e=xo;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function Co(e){setTimeout(e,0)}var wo=typeof window>`u`||`Deno`in globalThis;function To(){}function Eo(e,t){return typeof e==`function`?e(t):e}function Do(e){return typeof e==`number`&&e>=0&&e!==1/0}function Oo(e,t){return Math.max(e+(t||0)-Date.now(),0)}function ko(e,t){return typeof e==`function`?e(t):e}function Ao(e,t){return typeof e==`function`?e(t):e}function jo(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==No(o,t.options))return!1}else if(!Fo(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function Mo(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(Po(t.options.mutationKey)!==Po(a))return!1}else if(!Fo(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function No(e,t){return(t?.queryKeyHashFn||Po)(e)}function Po(e){return JSON.stringify(e,(e,t)=>Bo(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function Fo(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(Array.isArray(e)&&Array.isArray(t)){for(let n=0;n<t.length;n++)if(!Fo(e[n],t[n]))return!1;return!0}let n=Object.keys(t);for(let r of n)if(!Fo(e[r],t[r]))return!1;return!0}return!1}var Io=Object.prototype.hasOwnProperty;function Lo(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=zo(e)&&zo(t);if(!r&&!(Bo(e)&&Bo(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:Io.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=Lo(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function Ro(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function zo(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Bo(e){if(!Vo(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!Vo(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function Vo(e){return Object.prototype.toString.call(e)===`[object Object]`}function Ho(e){return new Promise(t=>{So.setTimeout(t,e)})}function Uo(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:Lo(e,t)}function Wo(e){return e}function Go(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function Ko(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var qo=Symbol();function Jo(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===qo?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Yo(e,t){return typeof e==`function`?e(...t):!!e}function Xo(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var Zo=(()=>{let e=()=>wo;return{isServer(){return e()},setIsServer(t){e=t}}})();function Qo(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var $o=Co;function es(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=$o,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var ts=es(),ns=new class extends yo{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function rs(e){return Math.min(1e3*2**e,3e4)}function is(e){return(e??`online`)!==`online`||ns.isOnline()}var as=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function os(e){let t=!1,n=0,r,i=Qo(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new as(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>bo.isFocused()&&(e.networkMode===`always`||ns.isOnline())&&e.canRun(),u=()=>is(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),m=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(Zo.isServer()?0:3),o=e.retryDelay??rs,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!c){f(r);return}n++,e.onFail?.(n,r),Ho(s).then(()=>l()?void 0:p()).then(()=>{t?f(r):m()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?m():p().then(m),i)}}var ss=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Do(this.gcTime)&&(this.#e=So.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Zo.isServer()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(So.clearTimeout(this.#e),this.#e=void 0)}};function cs(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{Xo(e,()=>t.signal,()=>n=!0)},u=Jo(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?Ko:Go;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?us:ls,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:ls(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.fetchFn=t.options.persister?()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):l}}}function ls(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function us(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}function ds(e,t){return t?ls(e,t)!=null:!1}function fs(e,t){return!t||!e.getPreviousPageParam?!1:us(e,t)!=null}var ps=class extends ss{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=gs(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=gs(this.options);e.data!==void 0&&(this.setState(hs(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=Uo(this.state.data,e,this.options);return this.#l({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#l({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(To).catch(To):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>Ao(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===qo||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>ko(e.options.staleTime,this)===`static`)}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!Oo(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#a&&(this.#s||this.#c()?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#c(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#l({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=Jo(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?cs(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#l({type:`fetch`,meta:a.fetchOptions?.meta}),this.#a=os({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof as&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#l({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#l({type:`pause`})},onContinue:()=>{this.#l({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#a.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof as){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#l({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#l(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...ms(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...hs(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),ts.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function ms(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:is(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function hs(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function gs(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var _s=class extends yo{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=Qo(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),ys(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return bs(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return bs(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof Ao(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!Ro(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&xs(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||Ao(this.options.enabled,this.#t)!==Ao(t.enabled,this.#t)||ko(this.options.staleTime,this.#t)!==ko(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||Ao(this.options.enabled,this.#t)!==Ao(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return Cs(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(To)),t}#g(){this.#b();let e=ko(this.options.staleTime,this.#t);if(Zo.isServer()||this.#r.isStale||!Do(e))return;let t=Oo(this.#r.dataUpdatedAt,e)+1;this.#d=So.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(Zo.isServer()||Ao(this.options.enabled,this.#t)===!1||!Do(this.#p)||this.#p===0)&&(this.#f=So.setInterval(()=>{(this.options.refetchIntervalInBackground||bo.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d!==void 0&&(So.clearTimeout(this.#d),this.#d=void 0)}#x(){this.#f!==void 0&&(So.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&ys(e,t),o=i&&xs(e,n,t,r);(a||o)&&(l={...l,...ms(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(m=`success`,d=Uo(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h)if(i&&d===a?.data&&t.select===this.#c)d=this.#l;else try{this.#c=t.select,d=t.select(d),d=Uo(i?.data,d,t),this.#l=d,this.#s=null}catch(e){this.#s=e}this.#s&&(f=this.#s,d=this.#l,p=Date.now(),m=`error`);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0,x={status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:Ss(e,t),refetch:this.refetch,promise:this.#o,isEnabled:Ao(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=x.data!==void 0,r=x.status===`error`&&!t,i=e=>{r?e.reject(x.error):t&&e.resolve(x.data)},a=()=>{let e=this.#o=x.promise=Qo();i(e)},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||x.data!==o.value)&&a();break;case`rejected`:(!r||x.error!==o.reason)&&a()}}return x}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!Ro(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){ts.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function vs(e,t){return Ao(t.enabled,e)!==!1&&e.state.data===void 0&&(e.state.status!==`error`||Ao(t.retryOnMount,e)!==!1)}function ys(e,t){return vs(e,t)||e.state.data!==void 0&&bs(e,t,t.refetchOnMount)}function bs(e,t,n){if(Ao(t.enabled,e)!==!1&&ko(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&Ss(e,t)}return!1}function xs(e,t,n,r){return(e!==t||Ao(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&Ss(e,n)}function Ss(e,t){return Ao(t.enabled,e)!==!1&&e.isStaleByTime(ko(t.staleTime,e))}function Cs(e,t){return!Ro(e.getCurrentResult(),t)}var k=je(),ws=O.createContext(void 0),Ts=e=>{let t=O.useContext(ws);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},Es=({client:e,children:t})=>(O.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,k.jsx)(ws.Provider,{value:e,children:t})),Ds=O.createContext(!1),Os=()=>O.useContext(Ds);Ds.Provider;function ks(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var As=O.createContext(ks()),js=()=>O.useContext(As),Ms=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?Yo(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},Ns=e=>{O.useEffect(()=>{e.clearReset()},[e])},Ps=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||Yo(n,[e.error,r])),Fs=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},Is=(e,t)=>e.isLoading&&e.isFetching&&!t,Ls=(e,t)=>e?.suspense&&t.isPending,Rs=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function zs(e,t,n){let r=Os(),i=js(),a=Ts(n),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let s=a.getQueryCache().get(o.queryHash),c=e.subscribed!==!1;o._optimisticResults=r?`isRestoring`:c?`optimistic`:void 0,Fs(o),Ms(o,i,s),Ns(i);let l=!a.getQueryCache().get(o.queryHash),[u]=O.useState(()=>new t(a,o)),d=u.getOptimisticResult(o),f=!r&&c;if(O.useSyncExternalStore(O.useCallback(e=>{let t=f?u.subscribe(ts.batchCalls(e)):To;return u.updateResult(),t},[u,f]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),O.useEffect(()=>{u.setOptions(o)},[o,u]),Ls(o,d))throw Rs(o,u,i);if(Ps({result:d,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw d.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,d),o.experimental_prefetchInRender&&!Zo.isServer()&&Is(d,r)&&(l?Rs(o,u,i):s?.promise)?.catch(To).finally(()=>{u.updateResult()}),o.notifyOnChangeProps?d:u.trackResult(d)}function Bs(e,t){return zs(e,_s,t)}function Vs(e){return e}var Hs=g,Us=globalThis.Number,Ws=e=>{if(e===`NaN`)return v(NaN);if(e===`Infinity`)return v(1/0);if(e===`-Infinity`)return v(-1/0);if(e.trim()===``)return ye();let t=Us(e);return Us.isNaN(t)?ye():v(t)},Gs=[[`GET`,`get`],[`POST`,`post`],[`PUT`,`put`],[`DELETE`,`del`],[`PATCH`,`patch`],[`HEAD`,`head`],[`OPTIONS`,`options`],[`TRACE`,`trace`]],Ks=`~effect/http/HttpClientRequest`,qs={[Ks]:Ks,...Se,toJSON(){return{_id:`HttpClientRequest`,method:this.method,url:this.url,urlParams:this.urlParams,hash:this.hash,headers:Nt(this.headers),body:this.body.toJSON()}},pipe(){return Ie(this,arguments)}};function Js(e,t,n,r,i,a){let o=Object.create(qs);return o.method=e,o.url=t,o.urlParams=n,o.hash=r,o.headers=i,o.body=a,o}var Ys=Js(`GET`,``,Wr,ye(),Pr,ni),Xs=e=>(t,n)=>Qs(Ys,{method:e,url:t,...n??void 0}),Zs=Xs(`POST`),Qs=_(2,(e,t)=>{let n=e;return t.method&&(n=$s(n,t.method)),t.url&&(n=ic(n,t.url)),t.headers&&(n=tc(n,t.headers)),t.urlParams&&(n=ac(n,t.urlParams)),t.hash&&(n=oc(n,t.hash)),t.body&&(n=sc(n,t.body)),t.accept&&(n=nc(n,t.accept)),t.acceptJson&&(n=rc(n)),n}),$s=_(2,(e,t)=>Js(t,e.url,e.urlParams,e.hash,e.headers,e.body)),ec=_(3,(e,t,n)=>Js(e.method,e.url,e.urlParams,e.hash,Fr(e.headers,t,n),e.body)),tc=_(2,(e,t)=>Js(e.method,e.url,e.urlParams,e.hash,ii(e.headers,t),e.body)),nc=_(2,(e,t)=>ec(e,`Accept`,t)),rc=nc(`application/json`),ic=_(2,(e,t)=>{if(typeof t==`string`)return Js(e.method,t,e.urlParams,e.hash,e.headers,e.body);let n=new URL(t.toString()),r=xr(n.searchParams),i=Zt(n.hash===``?void 0:n.hash.slice(1));return n.search=``,n.hash=``,Js(e.method,n.toString(),r,i,e.headers,e.body)}),ac=_(2,(e,t)=>Js(e.method,e.url,Mi(e.urlParams,t),e.hash,e.headers,e.body)),oc=_(2,(e,t)=>Js(e.method,e.url,e.urlParams,v(t),e.headers,e.body)),sc=_(2,(e,t)=>{let n=e.headers;return t._tag===`Empty`||t._tag===`FormData`?n=ki(ki(n,`Content-Type`),`Content-length`):(t.contentType&&(n=Fr(n,`content-type`,t.contentType)),t.contentLength!==void 0&&(n=Fr(n,`content-length`,t.contentLength.toString()))),Js(e.method,e.url,e.urlParams,e.hash,n,t)}),cc=e=>ti({b3:`${e.traceId}-${e.spanId}-${e.sampled?`1`:`0`}${ge(e.parent,{onNone:()=>``,onSome:e=>`-${e.spanId}`})}`,traceparent:`00-${e.traceId}-${e.spanId}-${e.sampled?`01`:`00`}`}),lc=`~effect/http/HttpClient`,uc=Tt(`effect/HttpClient`),dc=_(2,(e,t)=>pc(n=>t(e.postprocess(n)),e.preprocess)),fc=dc(Mt(Kr)),pc=(e,t)=>{let n=Object.create(mc);return n.preprocess=t,n.postprocess=e,n.execute=function(n){return e(t(n))},n},mc={[lc]:lc,pipe(){return Ie(this,arguments)},...Se,toJSON(){return{_id:`effect/HttpClient`}},...Object.fromEntries(Gs.map(([e,t])=>[t,function(t,n){return this.execute(Xs(e)(t,n))}]))},hc=e=>pc(t=>Mt(t,t=>Kt(n=>{let i=Sc.get(t),a=i??new AbortController,o=pi(t.url,t.urlParams,m(t.hash));if(jt(o))return r(new Ti({reason:new yi({request:t,cause:o.failure})}));let s=o.success;if(n.getRef(Ct)||n.getRef(_c)(t)){let r=e(t,s,a.signal,n);return i?r:Ft(e=>Ae(e(r),{onSuccess(e){return xc.register(e,a),ct(new Cc(e,a))},onFailure(e){return kt(e)&&a.abort(),lt(e)}}))}return pt(n.getRef(yc)(t),{kind:`client`},r=>{r.attribute(`http.request.method`,t.method),r.attribute(`server.address`,s.origin),s.port!==``&&r.attribute(`server.port`,+s.port),r.attribute(`url.full`,s.toString()),r.attribute(`url.path`,s.pathname),r.attribute(`url.scheme`,s.protocol.slice(0,-1));let o=s.search.slice(1);o!==``&&r.attribute(`url.query`,o);let c=n.getRef(Qr),l=Lr(t.headers,c);for(let e in l)r.attribute(`http.request.header.${e}`,String(l[e]));return t=n.getRef(vc)?tc(t,cc(r)):t,Ft(o=>o(e(t,s,a.signal,n)).pipe(tn(r,{captureStackTrace:!1}),Ae({onSuccess:e=>{r.attribute(`http.response.status_code`,e.status);let t=Lr(e.headers,c);for(let e in t)r.attribute(`http.response.header.${e}`,String(t[e]));return i?ct(e):(xc.register(e,a),ct(new Cc(e,a)))},onFailure(e){return!i&&kt(e)&&a.abort(),lt(e)}})))})})),ct),gc=_(2,(e,t)=>{let n=Oe(t),r=n?`errors-and-responses`:t.retryOn??`errors-and-responses`,i=n?t:t.schedule,o=i&&h(i),s=n?void 0:t.times;return dc(e,ie(r===`errors-only`?ue:ae({schedule:o,times:s,while:Ec}),r===`response-only`?ue:fe({while:n||t.while===void 0?wc:a(wc,t.while),schedule:i,times:s})))}),_c=it(`effect/http/HttpClient/TracerDisabledWhen`,{defaultValue:()=>vt}),vc=it(`effect/HttpClient/TracerPropagationEnabled`,{defaultValue:me}),yc=it(`effect/http/HttpClient/SpanNameGenerator`,{defaultValue:()=>e=>`http.client ${e.method}`}),bc=e=>yt(uc)(oe(t=>nt(e,e=>dc(e,Ot(e=>dt(t,e)))))),xc=(()=>{if(`FinalizationRegistry`in globalThis&&globalThis.FinalizationRegistry){let e=new FinalizationRegistry(e=>{e.abort()});return{register(t,n){e.register(t,n,t)},unregister(t){e.unregister(t)}}}let e=new Map;return{register(t,n){e.set(t,setTimeout(()=>n.abort(),5e3))},unregister(t){let n=e.get(t);n!==void 0&&(clearTimeout(n),e.delete(t))}}})(),Sc=new WeakMap,Cc=class{original;controller;constructor(e,t){this.original=e,this.controller=t}[Rr]=Rr;[wr]=wr;applyInterrupt(e){return Bt(()=>(xc.unregister(this.original),wt(e,()=>gt(()=>{this.controller.abort()}))))}get request(){return this.original.request}get status(){return this.original.status}get headers(){return this.original.headers}get cookies(){return this.original.cookies}get remoteAddress(){return this.original.remoteAddress}get formData(){return this.applyInterrupt(this.original.formData)}get text(){return this.applyInterrupt(this.original.text)}get json(){return this.applyInterrupt(this.original.json)}get urlParamsBody(){return this.applyInterrupt(this.original.urlParamsBody)}get arrayBuffer(){return this.applyInterrupt(this.original.arrayBuffer)}get stream(){return Xe(()=>(xc.unregister(this.original),zt(this.original.stream,gt(()=>{this.controller.abort()}))))}toJSON(){return this.original.toJSON()}[st](){return this.original[st]()}pipe(){return Ie(this,arguments)}},wc=e=>tt(e)||Tc(e),Tc=e=>Di(e)&&(e.reason._tag===`TransportError`||e.reason._tag===`StatusCodeError`&&Ec(e.reason.response)),Ec=e=>e.status===408||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504,Dc=`~effect/ManagedRuntime`,Oc=(e,t)=>{let n=t?.memoMap??_e(),r=He(`parallel`),i=te(r,`sequential`),a={onFiberStart:le(r)},s=e=>e?{...e,onFiberStart:e.onFiberStart?t=>{a.onFiberStart(t),e.onFiberStart(t)}:a.onFiberStart}:a,c,l=Kt(t=>(c||=d(Qe(o(e,n,i),e=>gt(()=>{u.cachedContext=e})),{...a,scheduler:t.currentScheduler}),_t(pe(c)))),u={[Dc]:Dc,memoMap:n,scope:r,contextEffect:l,cachedContext:void 0,context(){return u.cachedContext===void 0?re(u.contextEffect):Promise.resolve(u.cachedContext)},dispose(){return re(u.disposeEffect)},disposeEffect:Bt(()=>(u.contextEffect=Ge(`ManagedRuntime disposed`),u.cachedContext=void 0,Le(u.scope,Pt))),runFork(e,t){return u.cachedContext===void 0?d(kc(u,e),s(t)):ze(u.cachedContext)(e,s(t))},runCallback(e,t){return u.cachedContext===void 0?Te(kc(u,e),s(t)):an(u.cachedContext)(e,s(t))},runSyncExit(e){return u.cachedContext===void 0?Rt(kc(u,e)):se(u.cachedContext)(e)},runSync(e){return u.cachedContext===void 0?ce(kc(u,e)):qe(u.cachedContext)(e)},runPromiseExit(e,t){return u.cachedContext===void 0?Pe(kc(u,e),s(t)):We(u.cachedContext)(e,s(t))},runPromise(e,t){return u.cachedContext===void 0?re(kc(u,e),s(t)):x(u.cachedContext)(e,s(t))}};return u};function kc(e,t){return Mt(e.contextEffect,e=>ve(t,e))}var Ac={accept:!1,observe:!1,missingFrameCount:0,startsNewStream:!1};function jc(e){let t=e===!0;return{accept:t,observe:t,missingFrameCount:0,startsNewStream:t}}function Mc(e,t){let n=e.streamGeneration===void 0&&e.streamId===void 0,r=t.streamGeneration!==void 0||t.streamId!==void 0;return n&&r?jc(t.keyframe):null}function Nc(e,t){return e.streamGeneration===void 0||t.streamGeneration===void 0?null:t.streamGeneration<e.streamGeneration?Ac:t.streamGeneration>e.streamGeneration?jc(t.keyframe):null}function Pc(e,t){if(!e.streamId||!t.streamId)return null;if(e.streamId!==t.streamId)return jc(t.keyframe);if(t.sequence<=e.observedSequence)return Ac;let n=Math.max(0,t.sequence-e.observedSequence-1);return{accept:n===0||t.keyframe===!0,observe:!0,missingFrameCount:n,startsNewStream:!1}}function Fc(e,t){if(t.sequence>e.acceptedSequence)return{accept:!0,observe:!0,missingFrameCount:0,startsNewStream:!1};if(!e.acceptedCapturedAt)return Ac;let n=Date.parse(e.acceptedCapturedAt),r=Date.parse(t.capturedAt);return Number.isNaN(n)||Number.isNaN(r)||r<=n?Ac:{accept:!0,observe:!0,missingFrameCount:0,startsNewStream:!1}}function Ic(e,t){return Mc(e,t)??Nc(e,t)??Pc(e,t)??Fc(e,t)}function Lc(e,t){let n=Ic(e,t);if(!n.observe)return{accept:n.accept,observe:n.observe,missingFrameCount:n.missingFrameCount,state:e};let r=n.startsNewStream?t.sequence:Math.max(e.observedSequence,t.sequence),i={...e,observedSequence:r,gapCount:e.gapCount+n.missingFrameCount},a=n.accept?{...i,acceptedSequence:t.sequence,acceptedCapturedAt:t.capturedAt,...t.streamId?{streamId:t.streamId}:{},...t.streamGeneration===void 0?{}:{streamGeneration:t.streamGeneration}}:i;return{accept:n.accept,observe:n.observe,missingFrameCount:n.missingFrameCount,state:a}}function Rc(e){return{_tag:`Value`,value:e}}function zc(e,t){return{_tag:`Record`,keys:e,value:t}}function Bc(e,t){return{_tag:`Array`,length:e,value:t}}mi(`SourceError`);var Vc=it(`effect/ConfigProvider`,{defaultValue:()=>Wc()}),Hc={...Ke,toJSON(){return{_id:`ConfigProvider`}}};function Uc(e,t,n){let r=Object.create(Hc);return r.get=e,r.mapInput=t,r.prefix=n,r.load=r=>(t&&(r=t(r)),n&&(r=[...n,...r]),e(r)),r}function Wc(e){let t=e?.env??{APP_VERSION:`0.13.4`,BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,TSS_INLINE_CSS_ENABLED:`false`,VITE_COMMIT_SHA:``,VITE_HOSTED_APP_CHANNEL:``,VITE_HTTP_URL:``,VITE_SENTRY_COMMIT_SHA:`5716c4b70da370f76d24ac48e65aafc1819dd6c1`,VITE_SENTRY_DEBUG:``,VITE_SENTRY_DSN:``,VITE_SENTRY_ENABLED:``,VITE_SENTRY_ENVIRONMENT:`production`,VITE_SENTRY_PROFILES_SAMPLE_RATE:``,VITE_SENTRY_RELEASE:`forge-web@0.13.4+5716c4b70da370f76d24ac48e65aafc1819dd6c1`,VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE:``,VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE:``,VITE_SENTRY_TRACES_SAMPLE_RATE:``,VITE_WS_URL:``},n=Gc(t);return Uc(e=>ct(qc(n,t,e)))}function Gc(e){let t={};for(let[n,r]of Object.entries(e)){if(r===void 0)continue;let e=n.split(`_`),i=t;for(let t of e)i.children??={},i=i.children[t]??={};i.value=r}return t}var Kc=/^(0|[1-9][0-9]*)$/;function qc(e,t,n){let r=t[n.map(String).join(`_`)],i=Jc(e,n),a=i?.children?Object.keys(i.children):[];return a.length===0?r===void 0?void 0:Rc(r):a.every(e=>Kc.test(e))?Bc(Math.max(...a.map(e=>parseInt(e,10)))+1,r):zc(new Set(a),r)}function Jc(e,t){if(t.length===0)return e;let n=e;for(let e of t)if(n=n?.children?.[String(e)],!n)return;return n}var Yc=`~effect/Config`,Xc=class{_tag=`ConfigError`;name=`ConfigError`;cause;constructor(e){this.cause=e}get message(){return this.cause.toString()}toString(){return`ConfigError(${this.message})`}},Zc={...Ke,...Ye,[Yc]:Yc,asEffect(){return Mt(Vc.asEffect(),e=>this.parse(e))},toJSON(){return{_id:`Config`}}};function Qc(e){let t=Object.create(Zc);return t.parse=e,t}var $c=$e(function*(e,t){let n=yield*e.load(t);if(n!==void 0)switch(n._tag){case`Value`:return n.value;case`Record`:{if(n.value!==void 0)return n.value;let r={};for(let i of n.keys){let n=yield*$c(e,[...t,i]);n!==void 0&&(r[i]=n)}return r}case`Array`:{if(n.value!==void 0)return n.value;let r=[];for(let i=0;i<n.length;i++)r.push(yield*$c(e,[...t,i]));return r}}}),el=$e(function*(e,t,n){switch(e._tag){case`Objects`:{let r={};for(let i of e.propertySignatures){let e=i.name;if(typeof e==`string`){let a=yield*el(i.type,t,[...n,e]);a!==void 0&&(r[e]=a)}}if(e.indexSignatures.length>0){let i=yield*t.load(n);if(i&&i._tag===`Record`)for(let a of e.indexSignatures){let e=Nr(a.parameter);for(let o of i.keys)if(!Object.hasOwn(r,o)&&e(o)){let e=yield*el(a.type,t,[...n,o]);e!==void 0&&(r[o]=e)}}}return r}case`Arrays`:{let r=yield*t.load(n);if(r&&r._tag===`Value`)return r.value;let i=[];for(let r=0;r<e.elements.length;r++)i.push(yield*el(e.elements[r],t,[...n,r]));return i}case`Union`:return yield*$c(t,n);case`Suspend`:return yield*el(e.thunk(),t,n);default:{let e=yield*t.load(n);return e===void 0?void 0:e._tag===`Value`||e._tag===`Record`&&e.value!==void 0||e._tag===`Array`&&e.value!==void 0?e.value:void 0}}});function tl(e,t){let n=Bi(e),r=Yr(n),i=jr(n.ast),a=typeof t==`string`?[t]:t??[];return Qc(e=>{let t=e.prefix?[...e.prefix,...a]:a;return el(i,e,a).pipe(Ht(e=>r(e).pipe(Xt(e=>new Zr(t.length>0?new ri(t,e):e)))),Xt(e=>new Xc(e)))})}var nl=(e,t,n)=>{let r=oi(e,t),i=E.pipe(Or(oi(E,E),Ir(n)),Or(r));return qr([r,i])},A=ee();function rl(e){return new Promise(t=>globalThis.setTimeout(t,e))}function il(){let e=Error(`The environment connection attempt was cancelled.`);return e.name=`AbortError`,e}function al(e){if(e?.aborted)throw il()}function ol(e,t){return t?t.aborted?Promise.reject(il()):new Promise((n,r)=>{let i=()=>r(il());t.addEventListener(`abort`,i,{once:!0}),e.then(n,r).finally(()=>{t.removeEventListener(`abort`,i)})}):e}function sl(e,t){return t?t.aborted?Promise.reject(il()):new Promise((n,r)=>{let i=globalThis.setTimeout(()=>{t.removeEventListener(`abort`,a),n()},e),a=()=>{globalThis.clearTimeout(i),r(il())};t.addEventListener(`abort`,a,{once:!0})}):rl(e)}var cl=Object.freeze({connectionState:`disconnected`,authState:`unknown`,lastError:null,lastErrorAt:null,role:null,descriptor:null,serverConfig:null,connectedAt:null,disconnectedAt:null,providerAuthority:null}),ll=()=>({...cl}),j=wa()(e=>({byId:{},ensure:t=>e(e=>e.byId[t]?e:{byId:{...e.byId,[t]:ll()}}),patch:(t,n)=>e(e=>({byId:{...e.byId,[t]:{...e.byId[t]??ll(),...n}}})),clear:t=>e(e=>{let{[t]:n,...r}=e.byId;return{byId:r}}),reset:()=>e({byId:{}})}));function ul(e){let t=er(e.environmentId);if(t?.lastAuthenticatedPullRequestCapability!==void 0)return{...e,lastAuthenticatedPullRequestCapability:t.lastAuthenticatedPullRequestCapability};let n=j.getState().byId?.[e.environmentId];return n?.authState===`authenticated`&&n.descriptor?{...e,lastAuthenticatedPullRequestCapability:n.descriptor.capabilities.pullRequests===!0}:e}function dl(e){return!!e.runtimeId?.trim()||vr(e.environmentId).isCloud}function fl(e,t){return e.environmentId===t.environmentId&&e.httpBaseUrl===t.httpBaseUrl&&e.wsBaseUrl===t.wsBaseUrl&&e.runtimeId===t.runtimeId&&e.cmmdOrganizationId===t.cmmdOrganizationId}function pl(e){return e.replacedRecord===null&&e.existing!==null&&fl(e.existing,e.record)}function ml(e){let t=e.replacesEnvironmentId?Hr.make(e.replacesEnvironmentId):null,n=t&&t!==e.environmentId?er(t):null;return{existing:er(e.environmentId)??n,replacedRecord:n}}async function hl(e){return{records:lr(),bearerToken:e?await nr(e.environmentId):null}}async function gl(e){let t=e.replacedRecord?.environmentId??e.record.environmentId;await rr(e.rollback.records),await mr(e.record.environmentId).catch(()=>void 0),e.rollback.bearerToken&&await Xn(t,e.rollback.bearerToken)}async function _l(e){try{e.replacedRecord?await qn(e.replacedRecord.environmentId,e.record):await Gn(e.record),al(e.signal),await mr(e.record.environmentId),e.replacedRecord&&await mr(e.replacedRecord.environmentId),al(e.signal)}catch(t){try{await gl(e)}catch(e){let n=AggregateError([t,e],`Cloud Environment rollback failed.`);throw n.cause=t,n}throw t}}function vl(e){return{lastError:e instanceof Error?e.message:String(e),lastErrorAt:new Date().toISOString()}}var yl=new Map;function bl(e,t){return e.acquire(t?{signal:t}:{})}function xl(e,t){yl.set(e,t)}function Sl(e){return yl.has(e)}function Cl(e,t){let n=yl.get(e);if(t&&n!==t){t.dispose();return}n?.dispose(),yl.delete(e)}async function wl(e){let t=yl.get(e);if(t)return(await t.acquire()).bearerToken;let n=er(e);return n&&dl(n)?null:nr(e)}function Tl(){return{executionCount:0,isPending:!1,lastArgs:void 0,lastExecutionTime:0,nextExecutionTime:0,status:`idle`,maybeExecuteCount:0}}var El={enabled:!0,leading:!0,trailing:!0,wait:0},Dl=class{#e;constructor(e,t){this.fn=e,this.store=new Da(Tl()),this.setOptions=e=>{this.options={...this.options,...e},this.#n()||this.cancel()},this.#t=e=>{this.store.setState(t=>{let n={...t,...e},{isPending:r}=n;return{...n,status:this.#n()?r?`pending`:`idle`:`disabled`}}),Oa(`Throttler`,this)},this.#n=()=>!!Ea(this.options.enabled,this),this.#r=()=>Ea(this.options.wait,this),this.maybeExecute=(...e)=>{this.#t({maybeExecuteCount:this.store.state.maybeExecuteCount+1});let t=Date.now(),n=t-this.store.state.lastExecutionTime,r=this.#r();if(this.options.leading&&n>=r)this.#i(...e);else if(this.#t({lastArgs:e}),!this.#e&&this.options.trailing){let e=r-(this.store.state.lastExecutionTime?t-this.store.state.lastExecutionTime:0);this.#t({isPending:!0}),this.#e=setTimeout(()=>{let{lastArgs:e}=this.store.state;e!==void 0&&this.#i(...e)},e)}},this.#i=(...e)=>{if(!this.#n())return;this.fn(...e);let t=Date.now(),n=t+this.#r();this.#a(),this.#t({executionCount:this.store.state.executionCount+1,lastExecutionTime:t,nextExecutionTime:n,isPending:!1,lastArgs:void 0}),this.options.onExecute?.(e,this),setTimeout(()=>{this.store.state.isPending||this.#t({nextExecutionTime:void 0})},this.#r())},this.flush=()=>{this.store.state.isPending&&this.store.state.lastArgs&&this.#i(...this.store.state.lastArgs)},this.#a=()=>{this.#e&&=(clearTimeout(this.#e),void 0)},this.cancel=()=>{this.#a(),this.#t({lastArgs:void 0,isPending:!1})},this.reset=()=>{this.#t(Tl())},this.key=t.key,this.options={...El,...t},this.#t(this.options.initialState??{}),this.key&&ka.on(`d-Throttler`,e=>{e.payload.key===this.key&&(this.#t(e.payload.store.state),this.setOptions(e.payload.options))})}#t;#n;#r;#i;#a},Ol={all:[`projects`],searchContents:(e,t,n,r,i,a,o)=>[`projects`,`search-contents`,e??null,t,n,r,i,a,o],searchEntries:(e,t,n,r)=>[`projects`,`search-entries`,e??null,t,n,r]},kl={all:[`providers`],checkpointDiff:e=>[`providers`,`checkpointDiff`,e.environmentId??null,e.threadId,e.fromTurnCount,e.toTurnCount,e.cacheScope??null]};function Al(e){let t=null,n=!1;function r(){return t}function i(){n=!0,t?.queryInvalidationThrottler.maybeExecute()}function a(){t?.stop(),t=null}function o(r){if(t?.queryClient===r)return t.refCount+=1,()=>{!t||t.queryClient!==r||(--t.refCount,t.refCount===0&&a())};a(),n=!1;let i=new Dl(()=>{n&&(n=!1,r.invalidateQueries({queryKey:kl.all}),r.invalidateQueries({queryKey:Ol.all}))},{wait:100,leading:!1,trailing:!0});e.createPrimaryEnvironmentConnection(),ea().catch(()=>void 0);let o=ir.subscribe(()=>{Wn()&&e.syncSavedEnvironmentConnections(lr())});return Qn().then(()=>e.syncSavedEnvironmentConnections(lr())).catch(()=>void 0),t={queryClient:r,queryInvalidationThrottler:i,refCount:1,stop:()=>{o(),i.cancel()}},()=>{!t||t.queryClient!==r||(--t.refCount,t.refCount===0&&a())}}return{readActiveService:r,notifyProviderInvalidation:i,stopActiveService:a,start:o}}var jl=class extends Error{status;constructor(e,t){super(e),this.name=`RemoteEnvironmentAuthHttpError`,this.status=t}};function Ml(e,t){let n=new URL(e);return n.pathname=`${n.pathname.endsWith(`/`)?n.pathname.slice(0,-1):n.pathname}${t.startsWith(`/`)?t:`/${t}`}`,n.search=``,n.hash=``,n.toString()}async function Nl(e,t){let n=await e.text();if(!n)return t;try{let e=JSON.parse(n);if(typeof e.error==`string`&&e.error.length>0)return e.error}catch{}return n}async function Pl(e){let t=Ml(e.httpBaseUrl,e.pathname),n;try{n=await fetch(t,{method:e.method??`GET`,headers:{...e.body===void 0?{}:{"content-type":`application/json`},...e.bearerToken?{authorization:`Bearer ${e.bearerToken}`}:{}},...e.body===void 0?{}:{body:JSON.stringify(e.body)},...e.signal?{signal:e.signal}:{}})}catch(e){throw Error(`Failed to fetch remote auth endpoint ${t} (${e.message}).`,{cause:e})}if(!n.ok)throw new jl(await Nl(n,`Remote auth request failed (${n.status}).`),n.status);return await n.json()}async function Fl(e){return Pl({httpBaseUrl:e.httpBaseUrl,pathname:`/api/auth/session`,bearerToken:e.bearerToken,...e.signal?{signal:e.signal}:{}})}async function Il(e){return Pl({httpBaseUrl:e.httpBaseUrl,pathname:`/.well-known/forge/environment`,...e.bearerToken?{bearerToken:e.bearerToken}:{}})}async function Ll(e){return Pl({httpBaseUrl:e.httpBaseUrl,pathname:`/api/auth/ws-token`,method:`POST`,bearerToken:e.bearerToken})}async function Rl(e){let t=new URL(e.wsBaseUrl,window.location.origin);if(e.runtimeTicket)return t.searchParams.set(`runtimeTicket`,e.runtimeTicket),t.searchParams.delete(`wsToken`),t.toString();let n=await Ll({httpBaseUrl:e.httpBaseUrl,bearerToken:e.bearerToken});return t.searchParams.set(`wsToken`,n.token),t.toString()}function zl(e,t){if(t){ja(t,e);return}Ma(e)}function Bl(e){let t=null,n=[];for(let r of e.split(/\r?\n/)){if(r.startsWith(`event:`)){t=r.slice(6).trim();continue}r.startsWith(`data:`)&&n.push(r.slice(5).trimStart())}return{eventName:t,data:n.join(`
|
|
2
|
+
import{n as e,r as t,t as n}from"./rolldown-runtime-hePW80VL.js";import{$ as r,$t as i,Aa as a,An as o,Ar as s,At as c,B as l,Br as u,Bt as d,Ci as f,Dn as p,Ei as m,En as h,Er as g,Fa as _,Fi as v,Fn as y,Gn as b,Gt as x,Ha as ee,Hn as te,Hr as ne,Ht as re,Ia as ie,It as ae,J as oe,Jt as se,Kt as ce,L as le,La as ue,Ln as de,Lt as fe,M as pe,Ma as me,Mr as he,Ni as ge,Nn as _e,Nt as ve,Pi as ye,Pn as be,Pt as xe,Qi as Se,Rn as Ce,Rr as we,Rt as Te,Si as Ee,Ta as De,Tn as Oe,Tr as ke,Tt as Ae,Ua as je,Un as Me,Ur as Ne,Ut as Pe,V as Fe,Va as Ie,Vn as Le,Vr as Re,Vt as ze,W as Be,Wa as Ve,Wn as He,Wr as Ue,Wt as We,X as Ge,Yi as Ke,Yt as qe,Z as Je,Zi as Ye,_ as Xe,_t as Ze,an as Qe,at as $e,bn as et,br as tt,bt as nt,ca as rt,ci as it,ct as at,dn as ot,ea as st,en as ct,et as lt,fi as ut,gi as dt,gn as ft,hn as pt,hr as mt,ht,in as gt,it as _t,ja as vt,jn as yt,jr as bt,jt as xt,ki as St,kr as Ct,kt as wt,li as Tt,ln as Et,m as Dt,mn as Ot,mr as kt,na as At,ni as jt,nt as Mt,oa as Nt,or as Pt,pn as Ft,pt as It,q as Lt,qt as Rt,r as zt,rn as Bt,rr as Vt,rt as Ht,sn as Ut,un as Wt,ut as Gt,vn as Kt,vr as qt,wn as Jt,wr as Yt,wt as Xt,xi as Zt,xn as Qt,y as $t,yi as en,yn as tn,z as nn,zn as rn,zt as an}from"./Stream-mUTFnSY9.js";import{i as on,l as sn,n as cn,o as ln,s as un}from"./atomRegistry-C1yW8tyM.js";import{Sn as dn}from"./CompositeItem-DTyKsv13.js";import{$ as fn,A as pn,B as mn,Bn as hn,C as gn,D as _n,Dt as vn,G as yn,H as S,Hn as C,Jn as bn,Kn as xn,L as Sn,Ln as Cn,M as wn,N as Tn,O as En,Q as Dn,Qt as On,Rt as kn,S as An,Sn as jn,T as Mn,Tn as Nn,U as Pn,Un as Fn,Vn as In,Wn as Ln,Wt as Rn,X as zn,Y as Bn,Yt as Vn,Z as Hn,_n as Un,at as Wn,ct as Gn,dn as Kn,dt as qn,fn as Jn,gn as Yn,gt as Xn,hn as Zn,ht as Qn,in as $n,it as er,ln as tr,lt as nr,mn as rr,mt as ir,ot as ar,pn as or,qn as sr,rn as cr,st as lr,t as ur,tn as dr,tt as fr,un as pr,ut as mr,vt as hr,w as gr,wn as _r,yn as vr,yt as yr,zn as br}from"./cmmdForgeRuntimeListResource-KXJO7nN7.js";import{$t as xr,A as Sr,At as Cr,Bt as wr,C as Tr,Ct as Er,Dt as Dr,En as Or,Et as kr,G as Ar,Gn as jr,Gt as Mr,Hn as Nr,Ht as Pr,In as w,Jt as Fr,Kn as Ir,Kt as Lr,Lt as Rr,Mt as zr,Nn as Br,Nt as Vr,Ot as Hr,Q as Ur,Qt as Wr,R as Gr,Rt as Kr,Sn as qr,U as Jr,Un as Yr,Ut as Xr,Vn as Zr,Vt as Qr,W as $r,Wn as ei,Wt as ti,Xt as ni,Yn as ri,Yt as ii,Zt as ai,_n as oi,_t as si,an as ci,b as li,c as ui,cn as di,dt as fi,en as pi,er as mi,ft as hi,gn as gi,gt as _i,hn as vi,in as yi,j as bi,jt as xi,kn as Si,l as Ci,mt as wi,nn as Ti,nt as Ei,on as Di,pn as Oi,qt as ki,rt as Ai,s as T,sn as ji,tn as Mi,tt as Ni,ut as Pi,vn as E,vt as Fi,w as Ii,x as Li,xn as Ri,yn as zi,zn as Bi,zt as Vi}from"./src-e9jwz4Nc.js";import{$ as Hi,A as Ui,B as Wi,C as Gi,D as Ki,E as qi,F as Ji,G as Yi,H as Xi,I as Zi,J as Qi,K as $i,L as ea,N as ta,O as na,P as ra,Q as ia,R as aa,T as oa,U as sa,W as ca,X as la,Y as ua,Z as da,_ as fa,et as pa,it as ma,nt as ha,q as ga,rt as _a,tt as va,w as ya}from"./cmmdAuthRedirect-Cpw3QgrC.js";import{d as ba,f as xa,n as Sa,t as Ca}from"./utils-MX9zGa4a.js";import{t as D}from"./preload-helper-Czpn1I53.js";import{t as wa}from"./react-D4GEJ3ir.js";import{t as Ta}from"./transport-CgH8pQK3.js";import{a as Ea,i as Da,n as Oa,r as ka,t as Aa}from"./debouncer-BEV7Iuwb.js";import{n as ja,t as Ma}from"./workspaceReadinessAtom-D6bgTvKb.js";import{a as Na,c as Pa,n as Fa,r as Ia,s as La,u as Ra}from"./themePalette-DchQFoHe.js";function za(e){return e[e.length-1]}function Ba(e,t){return typeof e==`function`?e(t):e}var Va=Object.prototype.hasOwnProperty,Ha=Object.prototype.propertyIsEnumerable;function Ua(e){for(let t in e)if(Va.call(e,t))return!0;return!1}var Wa=()=>Object.create(null),Ga=(e,t)=>Ka(e,t,Wa);function Ka(e,t,n=()=>({}),r=0){if(e===t)return e;if(r>500)return t;let i=t,a=Xa(e)&&Xa(i);if(!a&&!(Ja(e)&&Ja(i)))return i;let o=a?e:qa(e);if(!o)return i;let s=a?i:qa(i);if(!s)return i;let c=o.length,l=s.length,u=a?Array(l):n(),d=0;for(let t=0;t<l;t++){let o=a?t:s[t],l=e[o],f=i[o];if(l===f){u[o]=l,(a?t<c:Va.call(e,o))&&d++;continue}if(l===null||f===null||typeof l!=`object`||typeof f!=`object`){u[o]=f;continue}let p=Ka(l,f,n,r+1);u[o]=p,p===l&&d++}return c===l&&d===c?e:u}function qa(e){let t=Object.keys(e);if(t.length!==Object.getOwnPropertyNames(e).length)return!1;let n=Object.getOwnPropertySymbols(e);if(n.length===0)return t;for(let r of n){if(!Ha.call(e,r))return!1;t.push(r)}return t}function Ja(e){if(!Ya(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!Ya(n)||!n.hasOwnProperty(`isPrototypeOf`))}function Ya(e){return Object.prototype.toString.call(e)===`[object Object]`}function Xa(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Za(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,i=e.length;r<i;r++)if(!Za(e[r],t[r],n))return!1;return!0}if(Ja(e)&&Ja(t)){let r=n?.ignoreUndefined??!0;if(n?.partial){for(let i in t)if((!r||t[i]!==void 0)&&!Za(e[i],t[i],n))return!1;return!0}let i=0;if(!r)i=Object.keys(e).length;else for(let t in e)e[t]!==void 0&&i++;let a=0;for(let o in t)if((!r||t[o]!==void 0)&&(a++,a>i||!Za(e[o],t[o],n)))return!1;return i===a}return!1}var Qa=/[\x00-\x1f\x7f"<>`{}]/g;function $a(e){return e.replace(Qa,e=>`%`+e.charCodeAt(0).toString(16).toUpperCase().padStart(2,`0`))}function eo(e){let t;try{t=decodeURI(e)}catch{t=e.replaceAll(/%[0-9A-F]{2}/gi,e=>{try{return decodeURI(e)}catch{return e}})}return $a(t)}var to=[`http:`,`https:`,`mailto:`,`tel:`];function no(e,t){if(!e)return!1;try{let n=new URL(e);return!t.has(n.protocol)}catch{return!1}}function ro(e){if(!e||!/[%\\\x00-\x1f\x7f]/.test(e)&&!e.startsWith(`//`))return{path:e,handledProtocolRelativeURL:!1};let t=/%25|%5C/gi,n=0,r=``,i;for(;(i=t.exec(e))!==null;)r+=eo(e.slice(n,i.index))+i[0],n=t.lastIndex;r+=eo(n?e.slice(n):e);let a=!1;return r.startsWith(`//`)&&(a=!0,r=`/`+r.replace(/^\/+/,``)),{path:r,handledProtocolRelativeURL:a}}function io(e){return/\s|[^\u0000-\u007F]/.test(e)?e.replace(/\s|[^\u0000-\u007F]/gu,encodeURIComponent):e}function ao(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function oo(){throw Error(`Invariant failed`)}var O=t(Ve(),1),so=O.createContext(null);function co(e){return O.useContext(so)}var lo=O.createContext(void 0),uo=O.createContext(void 0),fo=dn();function po(e,t){return e===t}function mo(e,t,n=po){let r=(0,O.useCallback)(t=>{if(!e)return()=>{};let{unsubscribe:n}=e.subscribe(t);return n},[e]),i=(0,O.useCallback)(()=>e?.get(),[e]);return(0,fo.useSyncExternalStoreWithSelector)(r,i,i,t,n)}var ho={};function go(e,t){let n=O.useRef();return r=>{let i=e?.select?e.select(r):r;return e?.structuralSharing??t.options.defaultStructuralSharing?n.current=Ka(n.current,i):i}}function _o(e){let t=co(),n=O.useContext(e.from?uo:lo),r=e.from??n,i=t.stores.getMatchStore(r),a=go(e,t),o=mo(i,e=>e?a(e):ho);if(o!==ho)return o;(e.shouldThrow??!0)&&oo()}function vo(e){return _o({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{let n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}var yo=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},bo=new class extends yo{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},xo={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},So=new class{#e=xo;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function Co(e){setTimeout(e,0)}var wo=typeof window>`u`||`Deno`in globalThis;function To(){}function Eo(e,t){return typeof e==`function`?e(t):e}function Do(e){return typeof e==`number`&&e>=0&&e!==1/0}function Oo(e,t){return Math.max(e+(t||0)-Date.now(),0)}function ko(e,t){return typeof e==`function`?e(t):e}function Ao(e,t){return typeof e==`function`?e(t):e}function jo(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==No(o,t.options))return!1}else if(!Fo(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function Mo(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(Po(t.options.mutationKey)!==Po(a))return!1}else if(!Fo(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function No(e,t){return(t?.queryKeyHashFn||Po)(e)}function Po(e){return JSON.stringify(e,(e,t)=>Bo(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function Fo(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(Array.isArray(e)&&Array.isArray(t)){for(let n=0;n<t.length;n++)if(!Fo(e[n],t[n]))return!1;return!0}let n=Object.keys(t);for(let r of n)if(!Fo(e[r],t[r]))return!1;return!0}return!1}var Io=Object.prototype.hasOwnProperty;function Lo(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=zo(e)&&zo(t);if(!r&&!(Bo(e)&&Bo(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:Io.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=Lo(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function Ro(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function zo(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Bo(e){if(!Vo(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!Vo(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function Vo(e){return Object.prototype.toString.call(e)===`[object Object]`}function Ho(e){return new Promise(t=>{So.setTimeout(t,e)})}function Uo(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:Lo(e,t)}function Wo(e){return e}function Go(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function Ko(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var qo=Symbol();function Jo(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===qo?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Yo(e,t){return typeof e==`function`?e(...t):!!e}function Xo(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var Zo=(()=>{let e=()=>wo;return{isServer(){return e()},setIsServer(t){e=t}}})();function Qo(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var $o=Co;function es(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=$o,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var ts=es(),ns=new class extends yo{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function rs(e){return Math.min(1e3*2**e,3e4)}function is(e){return(e??`online`)!==`online`||ns.isOnline()}var as=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function os(e){let t=!1,n=0,r,i=Qo(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new as(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>bo.isFocused()&&(e.networkMode===`always`||ns.isOnline())&&e.canRun(),u=()=>is(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),m=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(Zo.isServer()?0:3),o=e.retryDelay??rs,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!c){f(r);return}n++,e.onFail?.(n,r),Ho(s).then(()=>l()?void 0:p()).then(()=>{t?f(r):m()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?m():p().then(m),i)}}var ss=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Do(this.gcTime)&&(this.#e=So.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Zo.isServer()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(So.clearTimeout(this.#e),this.#e=void 0)}};function cs(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{Xo(e,()=>t.signal,()=>n=!0)},u=Jo(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?Ko:Go;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?us:ls,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:ls(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.fetchFn=t.options.persister?()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):l}}}function ls(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function us(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}function ds(e,t){return t?ls(e,t)!=null:!1}function fs(e,t){return!t||!e.getPreviousPageParam?!1:us(e,t)!=null}var ps=class extends ss{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=gs(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=gs(this.options);e.data!==void 0&&(this.setState(hs(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=Uo(this.state.data,e,this.options);return this.#l({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#l({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(To).catch(To):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>Ao(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===qo||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>ko(e.options.staleTime,this)===`static`)}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!Oo(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#a&&(this.#s||this.#c()?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#c(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#l({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=Jo(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?cs(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#l({type:`fetch`,meta:a.fetchOptions?.meta}),this.#a=os({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof as&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#l({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#l({type:`pause`})},onContinue:()=>{this.#l({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#a.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof as){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#l({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#l(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...ms(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...hs(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),ts.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function ms(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:is(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function hs(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function gs(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var _s=class extends yo{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=Qo(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),ys(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return bs(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return bs(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof Ao(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!Ro(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&xs(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||Ao(this.options.enabled,this.#t)!==Ao(t.enabled,this.#t)||ko(this.options.staleTime,this.#t)!==ko(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||Ao(this.options.enabled,this.#t)!==Ao(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return Cs(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(To)),t}#g(){this.#b();let e=ko(this.options.staleTime,this.#t);if(Zo.isServer()||this.#r.isStale||!Do(e))return;let t=Oo(this.#r.dataUpdatedAt,e)+1;this.#d=So.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(Zo.isServer()||Ao(this.options.enabled,this.#t)===!1||!Do(this.#p)||this.#p===0)&&(this.#f=So.setInterval(()=>{(this.options.refetchIntervalInBackground||bo.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d!==void 0&&(So.clearTimeout(this.#d),this.#d=void 0)}#x(){this.#f!==void 0&&(So.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&ys(e,t),o=i&&xs(e,n,t,r);(a||o)&&(l={...l,...ms(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(m=`success`,d=Uo(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h)if(i&&d===a?.data&&t.select===this.#c)d=this.#l;else try{this.#c=t.select,d=t.select(d),d=Uo(i?.data,d,t),this.#l=d,this.#s=null}catch(e){this.#s=e}this.#s&&(f=this.#s,d=this.#l,p=Date.now(),m=`error`);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0,x={status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:Ss(e,t),refetch:this.refetch,promise:this.#o,isEnabled:Ao(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=x.data!==void 0,r=x.status===`error`&&!t,i=e=>{r?e.reject(x.error):t&&e.resolve(x.data)},a=()=>{let e=this.#o=x.promise=Qo();i(e)},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||x.data!==o.value)&&a();break;case`rejected`:(!r||x.error!==o.reason)&&a()}}return x}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!Ro(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){ts.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function vs(e,t){return Ao(t.enabled,e)!==!1&&e.state.data===void 0&&(e.state.status!==`error`||Ao(t.retryOnMount,e)!==!1)}function ys(e,t){return vs(e,t)||e.state.data!==void 0&&bs(e,t,t.refetchOnMount)}function bs(e,t,n){if(Ao(t.enabled,e)!==!1&&ko(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&Ss(e,t)}return!1}function xs(e,t,n,r){return(e!==t||Ao(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&Ss(e,n)}function Ss(e,t){return Ao(t.enabled,e)!==!1&&e.isStaleByTime(ko(t.staleTime,e))}function Cs(e,t){return!Ro(e.getCurrentResult(),t)}var k=je(),ws=O.createContext(void 0),Ts=e=>{let t=O.useContext(ws);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},Es=({client:e,children:t})=>(O.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,k.jsx)(ws.Provider,{value:e,children:t})),Ds=O.createContext(!1),Os=()=>O.useContext(Ds);Ds.Provider;function ks(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var As=O.createContext(ks()),js=()=>O.useContext(As),Ms=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?Yo(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},Ns=e=>{O.useEffect(()=>{e.clearReset()},[e])},Ps=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||Yo(n,[e.error,r])),Fs=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},Is=(e,t)=>e.isLoading&&e.isFetching&&!t,Ls=(e,t)=>e?.suspense&&t.isPending,Rs=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function zs(e,t,n){let r=Os(),i=js(),a=Ts(n),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let s=a.getQueryCache().get(o.queryHash),c=e.subscribed!==!1;o._optimisticResults=r?`isRestoring`:c?`optimistic`:void 0,Fs(o),Ms(o,i,s),Ns(i);let l=!a.getQueryCache().get(o.queryHash),[u]=O.useState(()=>new t(a,o)),d=u.getOptimisticResult(o),f=!r&&c;if(O.useSyncExternalStore(O.useCallback(e=>{let t=f?u.subscribe(ts.batchCalls(e)):To;return u.updateResult(),t},[u,f]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),O.useEffect(()=>{u.setOptions(o)},[o,u]),Ls(o,d))throw Rs(o,u,i);if(Ps({result:d,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw d.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,d),o.experimental_prefetchInRender&&!Zo.isServer()&&Is(d,r)&&(l?Rs(o,u,i):s?.promise)?.catch(To).finally(()=>{u.updateResult()}),o.notifyOnChangeProps?d:u.trackResult(d)}function Bs(e,t){return zs(e,_s,t)}function Vs(e){return e}var Hs=g,Us=globalThis.Number,Ws=e=>{if(e===`NaN`)return v(NaN);if(e===`Infinity`)return v(1/0);if(e===`-Infinity`)return v(-1/0);if(e.trim()===``)return ye();let t=Us(e);return Us.isNaN(t)?ye():v(t)},Gs=[[`GET`,`get`],[`POST`,`post`],[`PUT`,`put`],[`DELETE`,`del`],[`PATCH`,`patch`],[`HEAD`,`head`],[`OPTIONS`,`options`],[`TRACE`,`trace`]],Ks=`~effect/http/HttpClientRequest`,qs={[Ks]:Ks,...Se,toJSON(){return{_id:`HttpClientRequest`,method:this.method,url:this.url,urlParams:this.urlParams,hash:this.hash,headers:Nt(this.headers),body:this.body.toJSON()}},pipe(){return Ie(this,arguments)}};function Js(e,t,n,r,i,a){let o=Object.create(qs);return o.method=e,o.url=t,o.urlParams=n,o.hash=r,o.headers=i,o.body=a,o}var Ys=Js(`GET`,``,Wr,ye(),Pr,ni),Xs=e=>(t,n)=>Qs(Ys,{method:e,url:t,...n??void 0}),Zs=Xs(`POST`),Qs=_(2,(e,t)=>{let n=e;return t.method&&(n=$s(n,t.method)),t.url&&(n=ic(n,t.url)),t.headers&&(n=tc(n,t.headers)),t.urlParams&&(n=ac(n,t.urlParams)),t.hash&&(n=oc(n,t.hash)),t.body&&(n=sc(n,t.body)),t.accept&&(n=nc(n,t.accept)),t.acceptJson&&(n=rc(n)),n}),$s=_(2,(e,t)=>Js(t,e.url,e.urlParams,e.hash,e.headers,e.body)),ec=_(3,(e,t,n)=>Js(e.method,e.url,e.urlParams,e.hash,Fr(e.headers,t,n),e.body)),tc=_(2,(e,t)=>Js(e.method,e.url,e.urlParams,e.hash,ii(e.headers,t),e.body)),nc=_(2,(e,t)=>ec(e,`Accept`,t)),rc=nc(`application/json`),ic=_(2,(e,t)=>{if(typeof t==`string`)return Js(e.method,t,e.urlParams,e.hash,e.headers,e.body);let n=new URL(t.toString()),r=xr(n.searchParams),i=Zt(n.hash===``?void 0:n.hash.slice(1));return n.search=``,n.hash=``,Js(e.method,n.toString(),r,i,e.headers,e.body)}),ac=_(2,(e,t)=>Js(e.method,e.url,Mi(e.urlParams,t),e.hash,e.headers,e.body)),oc=_(2,(e,t)=>Js(e.method,e.url,e.urlParams,v(t),e.headers,e.body)),sc=_(2,(e,t)=>{let n=e.headers;return t._tag===`Empty`||t._tag===`FormData`?n=ki(ki(n,`Content-Type`),`Content-length`):(t.contentType&&(n=Fr(n,`content-type`,t.contentType)),t.contentLength!==void 0&&(n=Fr(n,`content-length`,t.contentLength.toString()))),Js(e.method,e.url,e.urlParams,e.hash,n,t)}),cc=e=>ti({b3:`${e.traceId}-${e.spanId}-${e.sampled?`1`:`0`}${ge(e.parent,{onNone:()=>``,onSome:e=>`-${e.spanId}`})}`,traceparent:`00-${e.traceId}-${e.spanId}-${e.sampled?`01`:`00`}`}),lc=`~effect/http/HttpClient`,uc=Tt(`effect/HttpClient`),dc=_(2,(e,t)=>pc(n=>t(e.postprocess(n)),e.preprocess)),fc=dc(Mt(Kr)),pc=(e,t)=>{let n=Object.create(mc);return n.preprocess=t,n.postprocess=e,n.execute=function(n){return e(t(n))},n},mc={[lc]:lc,pipe(){return Ie(this,arguments)},...Se,toJSON(){return{_id:`effect/HttpClient`}},...Object.fromEntries(Gs.map(([e,t])=>[t,function(t,n){return this.execute(Xs(e)(t,n))}]))},hc=e=>pc(t=>Mt(t,t=>Kt(n=>{let i=Sc.get(t),a=i??new AbortController,o=pi(t.url,t.urlParams,m(t.hash));if(jt(o))return r(new Ti({reason:new yi({request:t,cause:o.failure})}));let s=o.success;if(n.getRef(Ct)||n.getRef(_c)(t)){let r=e(t,s,a.signal,n);return i?r:Ft(e=>Ae(e(r),{onSuccess(e){return xc.register(e,a),ct(new Cc(e,a))},onFailure(e){return kt(e)&&a.abort(),lt(e)}}))}return pt(n.getRef(yc)(t),{kind:`client`},r=>{r.attribute(`http.request.method`,t.method),r.attribute(`server.address`,s.origin),s.port!==``&&r.attribute(`server.port`,+s.port),r.attribute(`url.full`,s.toString()),r.attribute(`url.path`,s.pathname),r.attribute(`url.scheme`,s.protocol.slice(0,-1));let o=s.search.slice(1);o!==``&&r.attribute(`url.query`,o);let c=n.getRef(Qr),l=Lr(t.headers,c);for(let e in l)r.attribute(`http.request.header.${e}`,String(l[e]));return t=n.getRef(vc)?tc(t,cc(r)):t,Ft(o=>o(e(t,s,a.signal,n)).pipe(tn(r,{captureStackTrace:!1}),Ae({onSuccess:e=>{r.attribute(`http.response.status_code`,e.status);let t=Lr(e.headers,c);for(let e in t)r.attribute(`http.response.header.${e}`,String(t[e]));return i?ct(e):(xc.register(e,a),ct(new Cc(e,a)))},onFailure(e){return!i&&kt(e)&&a.abort(),lt(e)}})))})})),ct),gc=_(2,(e,t)=>{let n=Oe(t),r=n?`errors-and-responses`:t.retryOn??`errors-and-responses`,i=n?t:t.schedule,o=i&&h(i),s=n?void 0:t.times;return dc(e,ie(r===`errors-only`?ue:ae({schedule:o,times:s,while:Ec}),r===`response-only`?ue:fe({while:n||t.while===void 0?wc:a(wc,t.while),schedule:i,times:s})))}),_c=it(`effect/http/HttpClient/TracerDisabledWhen`,{defaultValue:()=>vt}),vc=it(`effect/HttpClient/TracerPropagationEnabled`,{defaultValue:me}),yc=it(`effect/http/HttpClient/SpanNameGenerator`,{defaultValue:()=>e=>`http.client ${e.method}`}),bc=e=>yt(uc)(oe(t=>nt(e,e=>dc(e,Ot(e=>dt(t,e)))))),xc=(()=>{if(`FinalizationRegistry`in globalThis&&globalThis.FinalizationRegistry){let e=new FinalizationRegistry(e=>{e.abort()});return{register(t,n){e.register(t,n,t)},unregister(t){e.unregister(t)}}}let e=new Map;return{register(t,n){e.set(t,setTimeout(()=>n.abort(),5e3))},unregister(t){let n=e.get(t);n!==void 0&&(clearTimeout(n),e.delete(t))}}})(),Sc=new WeakMap,Cc=class{original;controller;constructor(e,t){this.original=e,this.controller=t}[Rr]=Rr;[wr]=wr;applyInterrupt(e){return Bt(()=>(xc.unregister(this.original),wt(e,()=>gt(()=>{this.controller.abort()}))))}get request(){return this.original.request}get status(){return this.original.status}get headers(){return this.original.headers}get cookies(){return this.original.cookies}get remoteAddress(){return this.original.remoteAddress}get formData(){return this.applyInterrupt(this.original.formData)}get text(){return this.applyInterrupt(this.original.text)}get json(){return this.applyInterrupt(this.original.json)}get urlParamsBody(){return this.applyInterrupt(this.original.urlParamsBody)}get arrayBuffer(){return this.applyInterrupt(this.original.arrayBuffer)}get stream(){return Xe(()=>(xc.unregister(this.original),zt(this.original.stream,gt(()=>{this.controller.abort()}))))}toJSON(){return this.original.toJSON()}[st](){return this.original[st]()}pipe(){return Ie(this,arguments)}},wc=e=>tt(e)||Tc(e),Tc=e=>Di(e)&&(e.reason._tag===`TransportError`||e.reason._tag===`StatusCodeError`&&Ec(e.reason.response)),Ec=e=>e.status===408||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504,Dc=`~effect/ManagedRuntime`,Oc=(e,t)=>{let n=t?.memoMap??_e(),r=He(`parallel`),i=te(r,`sequential`),a={onFiberStart:le(r)},s=e=>e?{...e,onFiberStart:e.onFiberStart?t=>{a.onFiberStart(t),e.onFiberStart(t)}:a.onFiberStart}:a,c,l=Kt(t=>(c||=d(Qe(o(e,n,i),e=>gt(()=>{u.cachedContext=e})),{...a,scheduler:t.currentScheduler}),_t(pe(c)))),u={[Dc]:Dc,memoMap:n,scope:r,contextEffect:l,cachedContext:void 0,context(){return u.cachedContext===void 0?re(u.contextEffect):Promise.resolve(u.cachedContext)},dispose(){return re(u.disposeEffect)},disposeEffect:Bt(()=>(u.contextEffect=Ge(`ManagedRuntime disposed`),u.cachedContext=void 0,Le(u.scope,Pt))),runFork(e,t){return u.cachedContext===void 0?d(kc(u,e),s(t)):ze(u.cachedContext)(e,s(t))},runCallback(e,t){return u.cachedContext===void 0?Te(kc(u,e),s(t)):an(u.cachedContext)(e,s(t))},runSyncExit(e){return u.cachedContext===void 0?Rt(kc(u,e)):se(u.cachedContext)(e)},runSync(e){return u.cachedContext===void 0?ce(kc(u,e)):qe(u.cachedContext)(e)},runPromiseExit(e,t){return u.cachedContext===void 0?Pe(kc(u,e),s(t)):We(u.cachedContext)(e,s(t))},runPromise(e,t){return u.cachedContext===void 0?re(kc(u,e),s(t)):x(u.cachedContext)(e,s(t))}};return u};function kc(e,t){return Mt(e.contextEffect,e=>ve(t,e))}var Ac={accept:!1,observe:!1,missingFrameCount:0,startsNewStream:!1};function jc(e){let t=e===!0;return{accept:t,observe:t,missingFrameCount:0,startsNewStream:t}}function Mc(e,t){let n=e.streamGeneration===void 0&&e.streamId===void 0,r=t.streamGeneration!==void 0||t.streamId!==void 0;return n&&r?jc(t.keyframe):null}function Nc(e,t){return e.streamGeneration===void 0||t.streamGeneration===void 0?null:t.streamGeneration<e.streamGeneration?Ac:t.streamGeneration>e.streamGeneration?jc(t.keyframe):null}function Pc(e,t){if(!e.streamId||!t.streamId)return null;if(e.streamId!==t.streamId)return jc(t.keyframe);if(t.sequence<=e.observedSequence)return Ac;let n=Math.max(0,t.sequence-e.observedSequence-1);return{accept:n===0||t.keyframe===!0,observe:!0,missingFrameCount:n,startsNewStream:!1}}function Fc(e,t){if(t.sequence>e.acceptedSequence)return{accept:!0,observe:!0,missingFrameCount:0,startsNewStream:!1};if(!e.acceptedCapturedAt)return Ac;let n=Date.parse(e.acceptedCapturedAt),r=Date.parse(t.capturedAt);return Number.isNaN(n)||Number.isNaN(r)||r<=n?Ac:{accept:!0,observe:!0,missingFrameCount:0,startsNewStream:!1}}function Ic(e,t){return Mc(e,t)??Nc(e,t)??Pc(e,t)??Fc(e,t)}function Lc(e,t){let n=Ic(e,t);if(!n.observe)return{accept:n.accept,observe:n.observe,missingFrameCount:n.missingFrameCount,state:e};let r=n.startsNewStream?t.sequence:Math.max(e.observedSequence,t.sequence),i={...e,observedSequence:r,gapCount:e.gapCount+n.missingFrameCount},a=n.accept?{...i,acceptedSequence:t.sequence,acceptedCapturedAt:t.capturedAt,...t.streamId?{streamId:t.streamId}:{},...t.streamGeneration===void 0?{}:{streamGeneration:t.streamGeneration}}:i;return{accept:n.accept,observe:n.observe,missingFrameCount:n.missingFrameCount,state:a}}function Rc(e){return{_tag:`Value`,value:e}}function zc(e,t){return{_tag:`Record`,keys:e,value:t}}function Bc(e,t){return{_tag:`Array`,length:e,value:t}}mi(`SourceError`);var Vc=it(`effect/ConfigProvider`,{defaultValue:()=>Wc()}),Hc={...Ke,toJSON(){return{_id:`ConfigProvider`}}};function Uc(e,t,n){let r=Object.create(Hc);return r.get=e,r.mapInput=t,r.prefix=n,r.load=r=>(t&&(r=t(r)),n&&(r=[...n,...r]),e(r)),r}function Wc(e){let t=e?.env??{APP_VERSION:`0.13.4`,BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,TSS_INLINE_CSS_ENABLED:`false`,VITE_COMMIT_SHA:``,VITE_HOSTED_APP_CHANNEL:``,VITE_HTTP_URL:``,VITE_SENTRY_COMMIT_SHA:`bcd01e1ae34a37fd182605061608b45892800be2`,VITE_SENTRY_DEBUG:``,VITE_SENTRY_DSN:``,VITE_SENTRY_ENABLED:``,VITE_SENTRY_ENVIRONMENT:`production`,VITE_SENTRY_PROFILES_SAMPLE_RATE:``,VITE_SENTRY_RELEASE:`forge-web@0.13.4+bcd01e1ae34a37fd182605061608b45892800be2`,VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE:``,VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE:``,VITE_SENTRY_TRACES_SAMPLE_RATE:``,VITE_WS_URL:``},n=Gc(t);return Uc(e=>ct(qc(n,t,e)))}function Gc(e){let t={};for(let[n,r]of Object.entries(e)){if(r===void 0)continue;let e=n.split(`_`),i=t;for(let t of e)i.children??={},i=i.children[t]??={};i.value=r}return t}var Kc=/^(0|[1-9][0-9]*)$/;function qc(e,t,n){let r=t[n.map(String).join(`_`)],i=Jc(e,n),a=i?.children?Object.keys(i.children):[];return a.length===0?r===void 0?void 0:Rc(r):a.every(e=>Kc.test(e))?Bc(Math.max(...a.map(e=>parseInt(e,10)))+1,r):zc(new Set(a),r)}function Jc(e,t){if(t.length===0)return e;let n=e;for(let e of t)if(n=n?.children?.[String(e)],!n)return;return n}var Yc=`~effect/Config`,Xc=class{_tag=`ConfigError`;name=`ConfigError`;cause;constructor(e){this.cause=e}get message(){return this.cause.toString()}toString(){return`ConfigError(${this.message})`}},Zc={...Ke,...Ye,[Yc]:Yc,asEffect(){return Mt(Vc.asEffect(),e=>this.parse(e))},toJSON(){return{_id:`Config`}}};function Qc(e){let t=Object.create(Zc);return t.parse=e,t}var $c=$e(function*(e,t){let n=yield*e.load(t);if(n!==void 0)switch(n._tag){case`Value`:return n.value;case`Record`:{if(n.value!==void 0)return n.value;let r={};for(let i of n.keys){let n=yield*$c(e,[...t,i]);n!==void 0&&(r[i]=n)}return r}case`Array`:{if(n.value!==void 0)return n.value;let r=[];for(let i=0;i<n.length;i++)r.push(yield*$c(e,[...t,i]));return r}}}),el=$e(function*(e,t,n){switch(e._tag){case`Objects`:{let r={};for(let i of e.propertySignatures){let e=i.name;if(typeof e==`string`){let a=yield*el(i.type,t,[...n,e]);a!==void 0&&(r[e]=a)}}if(e.indexSignatures.length>0){let i=yield*t.load(n);if(i&&i._tag===`Record`)for(let a of e.indexSignatures){let e=Nr(a.parameter);for(let o of i.keys)if(!Object.hasOwn(r,o)&&e(o)){let e=yield*el(a.type,t,[...n,o]);e!==void 0&&(r[o]=e)}}}return r}case`Arrays`:{let r=yield*t.load(n);if(r&&r._tag===`Value`)return r.value;let i=[];for(let r=0;r<e.elements.length;r++)i.push(yield*el(e.elements[r],t,[...n,r]));return i}case`Union`:return yield*$c(t,n);case`Suspend`:return yield*el(e.thunk(),t,n);default:{let e=yield*t.load(n);return e===void 0?void 0:e._tag===`Value`||e._tag===`Record`&&e.value!==void 0||e._tag===`Array`&&e.value!==void 0?e.value:void 0}}});function tl(e,t){let n=Bi(e),r=Yr(n),i=jr(n.ast),a=typeof t==`string`?[t]:t??[];return Qc(e=>{let t=e.prefix?[...e.prefix,...a]:a;return el(i,e,a).pipe(Ht(e=>r(e).pipe(Xt(e=>new Zr(t.length>0?new ri(t,e):e)))),Xt(e=>new Xc(e)))})}var nl=(e,t,n)=>{let r=oi(e,t),i=E.pipe(Or(oi(E,E),Ir(n)),Or(r));return qr([r,i])},A=ee();function rl(e){return new Promise(t=>globalThis.setTimeout(t,e))}function il(){let e=Error(`The environment connection attempt was cancelled.`);return e.name=`AbortError`,e}function al(e){if(e?.aborted)throw il()}function ol(e,t){return t?t.aborted?Promise.reject(il()):new Promise((n,r)=>{let i=()=>r(il());t.addEventListener(`abort`,i,{once:!0}),e.then(n,r).finally(()=>{t.removeEventListener(`abort`,i)})}):e}function sl(e,t){return t?t.aborted?Promise.reject(il()):new Promise((n,r)=>{let i=globalThis.setTimeout(()=>{t.removeEventListener(`abort`,a),n()},e),a=()=>{globalThis.clearTimeout(i),r(il())};t.addEventListener(`abort`,a,{once:!0})}):rl(e)}var cl=Object.freeze({connectionState:`disconnected`,authState:`unknown`,lastError:null,lastErrorAt:null,role:null,descriptor:null,serverConfig:null,connectedAt:null,disconnectedAt:null,providerAuthority:null}),ll=()=>({...cl}),j=wa()(e=>({byId:{},ensure:t=>e(e=>e.byId[t]?e:{byId:{...e.byId,[t]:ll()}}),patch:(t,n)=>e(e=>({byId:{...e.byId,[t]:{...e.byId[t]??ll(),...n}}})),clear:t=>e(e=>{let{[t]:n,...r}=e.byId;return{byId:r}}),reset:()=>e({byId:{}})}));function ul(e){let t=er(e.environmentId);if(t?.lastAuthenticatedPullRequestCapability!==void 0)return{...e,lastAuthenticatedPullRequestCapability:t.lastAuthenticatedPullRequestCapability};let n=j.getState().byId?.[e.environmentId];return n?.authState===`authenticated`&&n.descriptor?{...e,lastAuthenticatedPullRequestCapability:n.descriptor.capabilities.pullRequests===!0}:e}function dl(e){return!!e.runtimeId?.trim()||vr(e.environmentId).isCloud}function fl(e,t){return e.environmentId===t.environmentId&&e.httpBaseUrl===t.httpBaseUrl&&e.wsBaseUrl===t.wsBaseUrl&&e.runtimeId===t.runtimeId&&e.cmmdOrganizationId===t.cmmdOrganizationId}function pl(e){return e.replacedRecord===null&&e.existing!==null&&fl(e.existing,e.record)}function ml(e){let t=e.replacesEnvironmentId?Hr.make(e.replacesEnvironmentId):null,n=t&&t!==e.environmentId?er(t):null;return{existing:er(e.environmentId)??n,replacedRecord:n}}async function hl(e){return{records:lr(),bearerToken:e?await nr(e.environmentId):null}}async function gl(e){let t=e.replacedRecord?.environmentId??e.record.environmentId;await rr(e.rollback.records),await mr(e.record.environmentId).catch(()=>void 0),e.rollback.bearerToken&&await Xn(t,e.rollback.bearerToken)}async function _l(e){try{e.replacedRecord?await qn(e.replacedRecord.environmentId,e.record):await Gn(e.record),al(e.signal),await mr(e.record.environmentId),e.replacedRecord&&await mr(e.replacedRecord.environmentId),al(e.signal)}catch(t){try{await gl(e)}catch(e){let n=AggregateError([t,e],`Cloud Environment rollback failed.`);throw n.cause=t,n}throw t}}function vl(e){return{lastError:e instanceof Error?e.message:String(e),lastErrorAt:new Date().toISOString()}}var yl=new Map;function bl(e,t){return e.acquire(t?{signal:t}:{})}function xl(e,t){yl.set(e,t)}function Sl(e){return yl.has(e)}function Cl(e,t){let n=yl.get(e);if(t&&n!==t){t.dispose();return}n?.dispose(),yl.delete(e)}async function wl(e){let t=yl.get(e);if(t)return(await t.acquire()).bearerToken;let n=er(e);return n&&dl(n)?null:nr(e)}function Tl(){return{executionCount:0,isPending:!1,lastArgs:void 0,lastExecutionTime:0,nextExecutionTime:0,status:`idle`,maybeExecuteCount:0}}var El={enabled:!0,leading:!0,trailing:!0,wait:0},Dl=class{#e;constructor(e,t){this.fn=e,this.store=new Da(Tl()),this.setOptions=e=>{this.options={...this.options,...e},this.#n()||this.cancel()},this.#t=e=>{this.store.setState(t=>{let n={...t,...e},{isPending:r}=n;return{...n,status:this.#n()?r?`pending`:`idle`:`disabled`}}),Oa(`Throttler`,this)},this.#n=()=>!!Ea(this.options.enabled,this),this.#r=()=>Ea(this.options.wait,this),this.maybeExecute=(...e)=>{this.#t({maybeExecuteCount:this.store.state.maybeExecuteCount+1});let t=Date.now(),n=t-this.store.state.lastExecutionTime,r=this.#r();if(this.options.leading&&n>=r)this.#i(...e);else if(this.#t({lastArgs:e}),!this.#e&&this.options.trailing){let e=r-(this.store.state.lastExecutionTime?t-this.store.state.lastExecutionTime:0);this.#t({isPending:!0}),this.#e=setTimeout(()=>{let{lastArgs:e}=this.store.state;e!==void 0&&this.#i(...e)},e)}},this.#i=(...e)=>{if(!this.#n())return;this.fn(...e);let t=Date.now(),n=t+this.#r();this.#a(),this.#t({executionCount:this.store.state.executionCount+1,lastExecutionTime:t,nextExecutionTime:n,isPending:!1,lastArgs:void 0}),this.options.onExecute?.(e,this),setTimeout(()=>{this.store.state.isPending||this.#t({nextExecutionTime:void 0})},this.#r())},this.flush=()=>{this.store.state.isPending&&this.store.state.lastArgs&&this.#i(...this.store.state.lastArgs)},this.#a=()=>{this.#e&&=(clearTimeout(this.#e),void 0)},this.cancel=()=>{this.#a(),this.#t({lastArgs:void 0,isPending:!1})},this.reset=()=>{this.#t(Tl())},this.key=t.key,this.options={...El,...t},this.#t(this.options.initialState??{}),this.key&&ka.on(`d-Throttler`,e=>{e.payload.key===this.key&&(this.#t(e.payload.store.state),this.setOptions(e.payload.options))})}#t;#n;#r;#i;#a},Ol={all:[`projects`],searchContents:(e,t,n,r,i,a,o)=>[`projects`,`search-contents`,e??null,t,n,r,i,a,o],searchEntries:(e,t,n,r)=>[`projects`,`search-entries`,e??null,t,n,r]},kl={all:[`providers`],checkpointDiff:e=>[`providers`,`checkpointDiff`,e.environmentId??null,e.threadId,e.fromTurnCount,e.toTurnCount,e.cacheScope??null]};function Al(e){let t=null,n=!1;function r(){return t}function i(){n=!0,t?.queryInvalidationThrottler.maybeExecute()}function a(){t?.stop(),t=null}function o(r){if(t?.queryClient===r)return t.refCount+=1,()=>{!t||t.queryClient!==r||(--t.refCount,t.refCount===0&&a())};a(),n=!1;let i=new Dl(()=>{n&&(n=!1,r.invalidateQueries({queryKey:kl.all}),r.invalidateQueries({queryKey:Ol.all}))},{wait:100,leading:!1,trailing:!0});e.createPrimaryEnvironmentConnection(),ea().catch(()=>void 0);let o=ir.subscribe(()=>{Wn()&&e.syncSavedEnvironmentConnections(lr())});return Qn().then(()=>e.syncSavedEnvironmentConnections(lr())).catch(()=>void 0),t={queryClient:r,queryInvalidationThrottler:i,refCount:1,stop:()=>{o(),i.cancel()}},()=>{!t||t.queryClient!==r||(--t.refCount,t.refCount===0&&a())}}return{readActiveService:r,notifyProviderInvalidation:i,stopActiveService:a,start:o}}var jl=class extends Error{status;constructor(e,t){super(e),this.name=`RemoteEnvironmentAuthHttpError`,this.status=t}};function Ml(e,t){let n=new URL(e);return n.pathname=`${n.pathname.endsWith(`/`)?n.pathname.slice(0,-1):n.pathname}${t.startsWith(`/`)?t:`/${t}`}`,n.search=``,n.hash=``,n.toString()}async function Nl(e,t){let n=await e.text();if(!n)return t;try{let e=JSON.parse(n);if(typeof e.error==`string`&&e.error.length>0)return e.error}catch{}return n}async function Pl(e){let t=Ml(e.httpBaseUrl,e.pathname),n;try{n=await fetch(t,{method:e.method??`GET`,headers:{...e.body===void 0?{}:{"content-type":`application/json`},...e.bearerToken?{authorization:`Bearer ${e.bearerToken}`}:{}},...e.body===void 0?{}:{body:JSON.stringify(e.body)},...e.signal?{signal:e.signal}:{}})}catch(e){throw Error(`Failed to fetch remote auth endpoint ${t} (${e.message}).`,{cause:e})}if(!n.ok)throw new jl(await Nl(n,`Remote auth request failed (${n.status}).`),n.status);return await n.json()}async function Fl(e){return Pl({httpBaseUrl:e.httpBaseUrl,pathname:`/api/auth/session`,bearerToken:e.bearerToken,...e.signal?{signal:e.signal}:{}})}async function Il(e){return Pl({httpBaseUrl:e.httpBaseUrl,pathname:`/.well-known/forge/environment`,...e.bearerToken?{bearerToken:e.bearerToken}:{}})}async function Ll(e){return Pl({httpBaseUrl:e.httpBaseUrl,pathname:`/api/auth/ws-token`,method:`POST`,bearerToken:e.bearerToken})}async function Rl(e){let t=new URL(e.wsBaseUrl,window.location.origin);if(e.runtimeTicket)return t.searchParams.set(`runtimeTicket`,e.runtimeTicket),t.searchParams.delete(`wsToken`),t.toString();let n=await Ll({httpBaseUrl:e.httpBaseUrl,bearerToken:e.bearerToken});return t.searchParams.set(`wsToken`,n.token),t.toString()}function zl(e,t){if(t){ja(t,e);return}Ma(e)}function Bl(e){let t=null,n=[];for(let r of e.split(/\r?\n/)){if(r.startsWith(`event:`)){t=r.slice(6).trim();continue}r.startsWith(`data:`)&&n.push(r.slice(5).trimStart())}return{eventName:t,data:n.join(`
|
|
3
3
|
`)}}function Vl(e,t){let n=Bl(e);if(n.eventName!==`phase`||!n.data)return!1;try{let e=JSON.parse(n.data);return zl(e,t),e.phase===`app-ready`||e.phase===`error`}catch{return!1}}async function Hl(e,t,n){if(!e.body)return;let r=e.body.getReader(),i=new TextDecoder,a=``;for(;!n.aborted;){let{done:e,value:n}=await r.read();if(e)break;a+=i.decode(n,{stream:!0});let o=a.indexOf(`
|
|
4
4
|
|
|
5
5
|
`);for(;o!==-1;){let e=a.slice(0,o);if(a=a.slice(o+2),Vl(e,t))return;o=a.indexOf(`
|
|
6
6
|
|
|
7
|
-
`)}}}var Ul=(e=`/api/workspace/readiness`)=>{if(typeof fetch>`u`)return{close:()=>{}};let t=typeof e==`string`?{url:e}:e,n=!1,r=new AbortController;return fetch(t.url,{credentials:t.bearerToken?`omit`:`include`,signal:r.signal,...t.bearerToken?{headers:{Authorization:`Bearer ${t.bearerToken}`}}:{}}).then(e=>{if(e.ok)return Hl(e,t.environmentId,r.signal)}).catch(()=>{}),{close:()=>{n||(n=!0,r.abort())}}},Wl=6e4;function Gl(e){let t=new URL(e.target.httpBaseUrl);return t.pathname=`${t.pathname.endsWith(`/`)?t.pathname.slice(0,-1):t.pathname}/api/workspace/readiness`,t.search=``,t.hash=``,t.toString()}function Kl(e){let t=new Set,n=null,r=!1,i=!1;return{hasWaiters:()=>t.size>0,wait:()=>{if(r)return Promise.reject(n);if(i)return Promise.resolve();let a=null,o=null,s=new Promise((e,n)=>{o={resolve:e,reject:n},t.add(o)}),c=new Promise((t,n)=>{a=globalThis.setTimeout(()=>{n(Error(`Timed out while waiting for ${e.label} (${e.environmentId}) to stream its shell snapshot.`))},e.timeoutMs)});return Promise.race([s,c]).finally(()=>{a!==null&&globalThis.clearTimeout(a),o!==null&&t.delete(o)})},resolve:()=>{r=!1,n=null,i=!0;let e=[...t];t.clear();for(let t of e)t.resolve()},reject:e=>{r=!0,n=e,i=!1;let a=[...t];t.clear();for(let t of a)t.reject(e)},reset:()=>{r=!1,n=null,i=!1}}}function ql(e){let t=e.knownEnvironment.environmentId;if(!t)throw Error(`Known environment ${e.knownEnvironment.label} is missing its environmentId.`);let n=!1,r=!1,i=null,a=null,o=Kl({environmentId:t,label:e.knownEnvironment.label,timeoutMs:e.bootstrapTimeoutMs??Wl}),s=e.readiness?(e.readiness.openStream??Ul)({url:Gl(e.knownEnvironment),environmentId:t,...e.readiness.bearerToken?{bearerToken:e.readiness.bearerToken}:{}}):null,c=t=>{if(!r){r=!0;let n=Error(t);_(),e.client.dispose(),e.onIdentityMismatch?.(n)}return!1},l=(n,r)=>{if(e.tolerateReportedEnvironmentIdentity)return a===null?(a=n,!0):a===n||c(`Environment connection ${t} reported a changed runtime identity (${a} -> ${n}) via ${r}.`);let i=e.resolveEnvironmentId?.()??t;return i===n||c(`Environment connection ${i} changed identity to ${n} via ${r}.`)},u=()=>e.resolveEnvironmentId?.()??t,d=e.client.server.subscribeLifecycle(t=>{t.type===`welcome`&&l(t.payload.environment.environmentId,`server lifecycle welcome`)&&e.onWelcome?.(t.payload,u())}),f=e.client.server.subscribeConfig(t=>{if(t.type===`snapshot`){if(!l(t.config.environment.environmentId,`server config snapshot`))return;i=t.config,e.onConfigSnapshot?.(t.config);return}if(t.type!==`providerStatuses`||!i)return;let n={...i,providers:t.payload.providers};i=n,e.onConfigSnapshot?.(n)}),p=e.client.orchestration.subscribeShell(t=>{if(t.kind===`snapshot`){e.syncShellSnapshot(t.snapshot,u()),o.resolve();return}e.applyShellEvent(t,u())},{onResubscribe:()=>{n||o.reset()},onError:t=>{if(!n){if(o.hasWaiters()){o.reject(t);return}e.onShellSubscriptionError?.(t,u())}}}),m=e.client.terminal.onEvent(t=>{e.applyTerminalEvent(t,u())}),h=e.client.browser?.onEvent({},t=>{e.applyBrowserEvent(t,u())}),g=e.client.server.subscribeWorkspaceReadiness(e=>{n||D(async()=>{let{setWorkspaceReadinessPhaseForEnvironment:e}=await import(`./workspaceReadinessAtom-D6bgTvKb.js`).then(e=>e.r);return{setWorkspaceReadinessPhaseForEnvironment:e}},__vite__mapDeps([0,1,2,3])).then(({setWorkspaceReadinessPhaseForEnvironment:t})=>{n||t(u(),e)})}),_=()=>{n||(n=!0,e.onDispose?.(),s?.close(),p(),m(),h?.(),d(),f(),g())};return{kind:e.kind,environmentId:t,knownEnvironment:e.knownEnvironment,client:e.client,ensureBootstrapped:()=>o.wait(),reconnect:async()=>{o.reset();try{await e.client.reconnect(),await e.refreshMetadata?.(),await o.wait()}catch(e){throw o.reject(e),e}},...e.ensureProviderAuthority?{ensureProviderAuthority:e.ensureProviderAuthority}:{},dispose:async()=>{_(),await e.client.dispose()}}}var Jl=it(`effect/http/FetchHttpClient/Fetch`,{defaultValue:()=>globalThis.fetch}),Yl=class extends Tt()(`effect/http/FetchHttpClient/RequestInit`){},Xl=bc(ct(hc((e,t,n,r)=>{let i=r.getRef(Jl),a=r.context.mapUnsafe.get(Yl.key)??{},o=a.headers?Mr(Xr(a.headers),e.headers):e.headers,s=r=>nt(ot({try:()=>i(t,{...a,method:e.method,headers:o,body:r,duplex:e.body._tag===`Stream`?`half`:void 0,signal:n}),catch:t=>new Ti({reason:new ci({request:e,cause:t})})}),t=>Vi(e,t));switch(e.body._tag){case`Raw`:case`Uint8Array`:return s(e.body.body);case`FormData`:return s(e.body.formData);case`Stream`:return Mt($t(e.body.stream),s)}return s(void 0)}))),Zl=Jt.pipe(h,Qt(e=>{if(Di(e)&&e.reason._tag===`StatusCodeError`&&e.reason.response.status===429){let t=Ee(e.reason.response.headers[`retry-after`]).pipe(en(Ws),f(()=>5));return ct(ne(t))}return ct(ne(1))})),Ql=$e(function*(e){let t=yield*Lt(),n=ut(t,Hs),r=ut(t,Ce),a=ze(t),o=u(we(e.exportInterval),Ue),s,c=fc(ut(t,uc)).pipe(dc(xe(vc,!1)),gc({schedule:Zl,times:3})),d=ti({"user-agent":`effect-opentelemetry-${e.label}/0.0.0`});e.headers&&(d=Mr(Xr(e.headers),d));let f=Zs(e.url,{headers:d}),p=[],m=Bt(()=>{if(s!==void 0&&n.currentTimeMillisUnsafe()<s)return ft;s!==void 0&&(s=void 0);let t=p;if(e.maxBatchSize!==`disabled`){if(p.length===0)return ft;p=[]}return c.execute(sc(f,e.body(t))).pipe(Fe,et(!1))}).pipe(Be(e=>s===void 0?(s=n.currentTimeMillisUnsafe()+6e4,p=[],Ze(`Disabling exporter for 60 seconds`,e)):ft),l({package:`@effect/opentelemetry`,module:e.label}));return yield*rn(r,m.pipe(It,ht,Et(e.shutdownTimeout))),yield*i(o).pipe(nn(m),at,Gt(r)),{push(t){s===void 0&&(p.push(t),e.maxBatchSize!==`disabled`&&p.length>=e.maxBatchSize&&le(a(m),r))}}}),$l=e=>{let t=e.attributes?nu(Object.entries(e.attributes)):[];return t.push({key:`service.name`,value:{stringValue:e.serviceName}}),e.serviceVersion&&t.push({key:`service.version`,value:{stringValue:e.serviceVersion}}),{attributes:t,droppedAttributesCount:0}},eu=$e(function*(e){let t={...yield*tl(Ri(nl(E,E)),`OTEL_RESOURCE_ATTRIBUTES`),...e?.attributes},n=e?.serviceName??t[`service.name`]??(yield*tl(E,`OTEL_SERVICE_NAME`));delete t[`service.name`];let r=e?.serviceVersion??t[`service.version`]??(yield*tl(Ri(E),`OTEL_SERVICE_VERSION`));return delete t[`service.version`],$l({serviceName:n,serviceVersion:r,attributes:t})},c),tu=e=>{let t=e.attributes.find(e=>e.key===`service.name`);if(!t||!t.value.stringValue)throw Error(`Resource does not contain a service name`);return t.value.stringValue},nu=e=>{let t=[];for(let[n,r]of e)t.push({key:n,value:ru(r)});return t},ru=e=>{if(Array.isArray(e))return{arrayValue:{values:e.map(ru)}};switch(typeof e){case`string`:return{stringValue:e};case`bigint`:return{intValue:Number(e)};case`number`:return Number.isInteger(e)?{intValue:e}:{doubleValue:e};case`boolean`:return{boolValue:e};default:return{stringValue:At(e)}}},iu=class extends Tt()(`effect/observability/OtlpSerialization`){},au=de(iu,{traces:e=>ai(e),metrics:e=>ai(e),logs:e=>ai(e)}),ou=$e(function*(e){let t=yield*eu(e.resource),n=yield*iu,r={name:tu(t)},i=yield*Ql({label:`OtlpTracer`,url:e.url,headers:e.headers,exportInterval:e.exportInterval??ne(5),maxBatchSize:e.maxBatchSize??1e3,body(e){let i={resourceSpans:[{resource:t,scopeSpans:[{scope:r,spans:e}]}]};return n.traces(i)},shutdownTimeout:e.shutdownTimeout??ne(3)});function a(e){e.sampled&&i.push(uu(e))}return he({span(e){return cu({...e,status:{_tag:`Started`,startTime:e.startTime},attributes:new Map,export:a})},context:e.context?function(t,n){return n.currentSpan===void 0?t[`~effect/Effect/evaluate`](n):e.context(t,n.currentSpan)}:void 0})}),su={_tag:`Span`,end(e,t){this.status={_tag:`Ended`,startTime:this.status.startTime,endTime:e,exit:t},this.export(this)},attribute(e,t){this.attributes.set(e,t)},event(e,t,n){this.events.push([e,t,n])},addLinks(e){this.links.push(...e)}},cu=e=>{let t=Object.assign(Object.create(su),e);return t.traceId=St(t.parent)?t.parent.value.traceId:lu(32),t.spanId=lu(16),t.events=[],t},lu=e=>{let t=``;for(let n=0;n<e;n++)t+=`0123456789abcdef`[Math.floor(Math.random()*16)];return t},uu=e=>{let t=e.status,n=nu(e.attributes.entries()),r=e.events.map(([e,t,n])=>({name:e,timeUnixNano:String(t),attributes:n?nu(Object.entries(n)):[],droppedAttributesCount:0})),i;if(t.exit._tag===`Success`)i=pu;else if(mt(t.exit.cause))i={code:du.Ok,message:`Interrupted`},n.push({key:`span.label`,value:{stringValue:`⚠︎ Interrupted`}},{key:`status.interrupted`,value:{boolValue:!0}});else{let e=Yt(t.exit.cause);if(i={code:du.Error},e.length>0){i.message=e[0].message;for(let n of e)r.push({name:`exception`,timeUnixNano:String(t.endTime),droppedAttributesCount:0,attributes:[{key:`exception.type`,value:{stringValue:n.name}},{key:`exception.message`,value:{stringValue:n.message}},{key:`exception.stacktrace`,value:{stringValue:n.stack??`No stack trace available`}}]})}}return{traceId:e.traceId,spanId:e.spanId,parentSpanId:ge(e.parent,{onNone:()=>void 0,onSome:e=>e.spanId}),name:e.name,kind:fu[e.kind],startTimeUnixNano:String(t.startTime),endTimeUnixNano:String(t.endTime),attributes:n,droppedAttributesCount:0,events:r,droppedEventsCount:0,status:i,links:e.links.map(e=>({traceId:e.span.traceId,spanId:e.span.spanId,attributes:nu(Object.entries(e.attributes)),droppedAttributesCount:0})),droppedLinksCount:0}},du={Unset:0,Ok:1,Error:2},fu={unspecified:0,internal:1,server:2,client:3,producer:4,consumer:5},pu={code:du.Ok},mu=1e4,hu={serviceName:`forge-web`,attributes:{"service.runtime":`forge-web`,"service.mode":bn?`electron`:`browser`,"service.version":Cn}},gu=be(Xl,au,de(_c,()=>!0)),_u=null,vu=null,yu=null,bu=null,xu=0,Su=Promise.resolve(),Cu=de(bt,he({span(e){return _u?.span(e)??new s(e)}}));function wu(e={}){return e.exportIntervalMs===void 0&&bu!==null||(Su=Su.finally(()=>Tu(e))),Su}async function Tu(e){let t=Ji(`/api/observability/v1/traces`),n=ra()?.bearerToken,r=Math.max(10,e.exportIntervalMs??mu),i=`${t}|${r}|${n?`bearer`:`cookie`}`;if(bu===i&&_u!==null)return;bu=i;let a=++xu,o=vu,s=yu;_u=null,vu=null,yu=null,await Eu(o,s);let c=Oc(gu),l=c.runSync(Me());try{let e=await c.runPromise(b(l)(ou({url:t,...n?{headers:{Authorization:`Bearer ${n}`}}:{},exportInterval:`${r} millis`,resource:hu})));if(a!==xu){await Eu(c,l);return}_u=e,vu=c,yu=l}catch(e){await Eu(c,l),a===xu&&console.warn(`Failed to configure client tracing exporter`,{error:Du(e),otlpTracesUrl:t})}}async function Eu(e,t){e!==null&&t!==null&&await e.runPromise(Le(t,Pt)).catch(()=>void 0).finally(()=>{e.dispose()})}function Du(e){return e instanceof Error&&e.message.trim().length>0?e.message:String(e)}var Ou=15e3,ku=new Map,Au=un([]).pipe(ln,sn(`slow-rpc-ack-requests`));function ju(e){cn.set(Au,[...e])}function Mu(){return cn.get(Au)}var Nu=`global`;function Pu(e){return!(e.split(`.`).at(-1)??e).startsWith(`subscribe`)}function Fu(e,t,n=Nu){if(!Pu(t))return;Bu(e,n),Hu();let r=Date.now(),i={clientId:n,requestId:e,startedAt:new Date(r).toISOString(),startedAtMs:r,tag:t,thresholdMs:Ou},a=zu(n,e),o=setTimeout(()=>{ku.delete(a),Vu(i)},Ou);ku.set(a,{request:i,timeoutId:o})}function Iu(e,t=Nu){Bu(e,t);let n=Mu();n.some(n=>n.clientId===t&&n.requestId===e)&&ju(n.filter(n=>n.clientId!==t||n.requestId!==e))}function Lu(e){for(let[t,n]of ku)n.request.clientId===e&&(clearTimeout(n.timeoutId),ku.delete(t));ju(Mu().filter(t=>t.clientId!==e))}function Ru(){for(let e of ku.values())clearTimeout(e.timeoutId);ku.clear(),ju([])}function zu(e,t){return`${e}:${t}`}function Bu(e,t){let n=zu(t,e),r=ku.get(n);r&&(clearTimeout(r.timeoutId),ku.delete(n))}function Vu(e){let t=[...Mu(),e];if(t.length<=256){ju(t);return}ju(t.slice(-256))}function Hu(){for(;ku.size>=256;){let e=ku.keys().next().value;if(e===void 0)return;let t=ku.get(e);if(!t)return;Bu(t.request.requestId,t.request.clientId)}}function Uu(){return ma(Au)}var Wu=ia(ui),Gu=1;function Ku(e){return e instanceof Error&&e.message.trim().length>0?e.message:String(e)}function qu(e){let t=new URL(e);if(t.protocol!==`ws:`&&t.protocol!==`wss:`)throw Error(`Unsupported websocket transport URL protocol: ${t.protocol}`);return t.pathname=`/ws`,t.toString()}function Ju(){return{onAttempt:ya,onOpen:Ki,onError:e=>{qi(e)},onClose:e=>{oa(e)},trackGlobalConnection:!0}}function Yu(e){let t=Ju(),n=e?.trackGlobalConnection??!0;return{onAttempt:r=>{n&&t.onAttempt(r),e?.onAttempt?.(r)},onOpen:()=>{n&&t.onOpen(),e?.onOpen?.()},onError:r=>{n&&t.onError(r),e?.onError?.(r)},onClose:r=>{n&&t.onClose(r),e?.onClose?.(r)},trackGlobalConnection:n}}function Xu(e,t){let n=Gu;Gu+=1;let r=Yu(t),i=typeof e==`function`?xt(()=>e()).pipe(nt(e=>qu(e)),Ut(e=>gt(()=>{r.onError(Ku(e))})),c):qu(e),a=de(va,(e,t)=>{r.onAttempt(e);let n=new globalThis.WebSocket(e,t);return n.addEventListener(`open`,()=>{r.onOpen()},{once:!0}),n.addEventListener(`error`,()=>{r.onError(`Unable to connect to the Forge server WebSocket.`)},{once:!0}),n.addEventListener(`close`,e=>{r.onClose({code:e.code,reason:e.reason})},{once:!0}),n}),o=ha(i).pipe(y(a)),s=Qt(p(fa),e=>ct(Re(Gi(e)??0)));return yt(da,nt(Hi({retryPolicy:s,retryTransientErrors:!0}),e=>({...e,run:(t,r)=>{let i=`${n}:${String(t)}`;return e.run(t,e=>(e._tag===`Chunk`||e._tag===`Exit`?Iu(e.requestId,i):(e._tag===`ClientProtocolError`||e._tag===`Defect`)&&Lu(i),r(e))).pipe(Je(gt(()=>{Lu(i)})))},send:(t,r,i)=>{let a=`${n}:${String(t)}`;return r._tag===`Request`&&Fu(r.id,r.tag,a),e.send(t,r,i)}}))).pipe(y(be(o,pa)))}var Zu=/^all fibers interrupted without error$/i;function Qu(e){return On(e)||Zu.test(e.trim())}var $u=Re(250),ed=()=>void 0,td=class extends Error{name=`WsRequestTimeoutError`;timeoutMs;constructor(e){let t=Ne(we(e));super(`WebSocket RPC request timed out after ${t}ms.`),this.timeoutMs=t}},nd=new Set([`OrchestrationGetSnapshotError`]);function rd(e){if(typeof e!=`object`||!e)return!1;let t=e._tag;return typeof t==`string`&&nd.has(t)}function id(e){let t=e instanceof Error?e.message.trim():``;return t.length>0?t:typeof e==`object`&&e?ad(e):String(e)}function ad(e){try{return JSON.stringify(e)}catch{let t=e;return[typeof t._tag==`string`?t._tag:void 0,typeof t.message==`string`?t.message:void 0].filter(Boolean).join(`: `)||Object.prototype.toString.call(e)}}var od=4e3,sd=1e4,cd=500,ld=class{url;lifecycleHandlers;disposed=!1;hasReportedTransportDisconnect=!1;reconnectChain=Promise.resolve();session;heartbeatTimer=null;heartbeatInFlight=!1;protocol;timing;constructor(e,t,n,r){this.url=e,this.lifecycleHandlers=t,this.protocol=n??null,this.timing={heartbeatIntervalMs:r?.heartbeatIntervalMs??od,heartbeatTimeoutMs:r?.heartbeatTimeoutMs??sd,sessionCloseGraceMs:r?.sessionCloseGraceMs??cd},this.session=this.createSession(),this.startHeartbeat()}startHeartbeat(){this.heartbeatTimer===null&&(this.heartbeatTimer=setInterval(()=>{if(this.disposed||this.heartbeatInFlight)return;this.heartbeatInFlight=!0;let e=this.session;this.request(e=>e[T.serverHeartbeat]({}),{timeout:this.timing.heartbeatTimeoutMs}).catch(async()=>{this.disposed||e!==this.session||await this.reconnect()}).finally(()=>{this.heartbeatInFlight=!1})},this.timing.heartbeatIntervalMs))}async request(e,t){if(this.disposed)throw Error(`Transport disposed`);let n=this.session,i=await n.clientPromise,a=Bt(()=>e(i)),o=t?.timeout,s=o===void 0?a:a.pipe(Wt({duration:o,orElse:()=>r(new td(o))}));return await n.runtime.runPromise(s,{signal:t?.signal})}async requestStream(e,t,n){if(this.disposed)throw Error(`Transport disposed`);let r=this.session,i=this.runStreamOnSession(r,e,t,()=>!0,()=>void 0),a=()=>i.cancel();n?.signal?.aborted&&a(),n?.signal?.addEventListener(`abort`,a,{once:!0});try{await i.completed}catch(e){if(n?.signal?.aborted){let e=Error(`RPC stream request was cancelled.`);throw e.name=`AbortError`,e}throw e}finally{n?.signal?.removeEventListener(`abort`,a)}}subscribe(e,t,n){if(this.disposed)return()=>void 0;let r={active:!0,hasReceivedValue:!1,cancelCurrentStream:ed},i=Ne(we(n?.retryDelay??$u));return this.runSubscriptionLoop(e,t,n,r,i),()=>{r.active=!1,r.cancelCurrentStream()}}async runSubscriptionLoop(e,t,n,r,i){for(;r.active&&!this.disposed;){let a=this.session;try{this.notifyResubscribe(r,n);let i=this.startSubscriptionStream(a,e,t,r);r.cancelCurrentStream=i.cancel,await i.completed,r.cancelCurrentStream=ed}catch(e){if(r.cancelCurrentStream=ed,!await this.handleSubscriptionFailure(e,a,r,n,i))return}}}notifyResubscribe(e,t){if(e.hasReceivedValue)try{t?.onResubscribe?.()}catch{}}startSubscriptionStream(e,t,n,r){return this.runStreamOnSession(e,t,n,()=>r.active,()=>{this.hasReportedTransportDisconnect=!1,r.hasReceivedValue=!0})}async handleSubscriptionFailure(e,t,n,r,i){if(!n.active||this.disposed)return!1;if(t!==this.session)return!0;let a=id(e);return Qu(a)?(this.hasReportedTransportDisconnect||console.warn(`WebSocket RPC subscription disconnected`,{error:a}),this.hasReportedTransportDisconnect=!0,await ud(i),!0):(this.reportNonTransportSubscriptionError(e,r),!1)}reportNonTransportSubscriptionError(e,t){rd(e)||Vn(e,{route:`ws-subscribe`,reason:`non-transport-error`}),t?.onError?.(e)}async reconnect(){if(this.disposed)throw Error(`Transport disposed`);let e=this.reconnectChain.then(async()=>{if(this.disposed)throw Error(`Transport disposed`);let e=this.session;this.session=this.createSession(),await this.closeSession(e)});this.reconnectChain=e.catch(e=>{Vn(e,{route:`ws-reconnect`})}),await e}async dispose(){this.disposed||(this.disposed=!0,this.heartbeatTimer!==null&&this.heartbeatTimer!==void 0&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null),await this.closeSession(this.session))}async closeSession(e){let t=e.runtime.runPromise(Le(e.clientScope,Pt)),n=!1,r=null,i=new Promise(e=>{r=setTimeout(()=>{n=!0,e()},this.timing.sessionCloseGraceMs)});try{await Promise.race([t,i])}finally{r!==null&&clearTimeout(r),n&&(console.warn(`WebSocket session close exceeded its grace period; forcing disposal`,{graceMs:this.timing.sessionCloseGraceMs}),t.catch(()=>void 0)),await e.runtime.dispose()}}createSession(){let e=this.protocol??{layer:Xu(this.url,this.lifecycleHandlers),makeClient:Wu},t=Oc(be(e.layer,Cu)),n=t.runSync(Me());return{runtime:t,clientScope:n,clientPromise:t.runPromise(b(n)(e.makeClient))}}runStreamOnSession(e,t,n,r,i){let a,o,s=new Promise((e,t)=>{a=e,o=t});return{cancel:e.runtime.runCallback(xt(()=>e.clientPromise).pipe(Mt(e=>Dt(t(e),e=>gt(()=>{if(r()){i();try{n(e)}catch{}}})))),{onExit:e=>{if(Vt(e)){a();return}o(ke(e.cause))}}),completed:s}}};function ud(e){return new Promise(t=>{setTimeout(t,e)})}var dd=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,fd=/^[A-Za-z0-9_-]+$/;function pd(e){let t=``;for(let n=0;n<e.byteLength;n+=3){let r=e[n]??0,i=e[n+1]??0,a=e[n+2]??0,o=r<<16|i<<8|a;t+=dd[o>>>18&63],t+=dd[o>>>12&63],n+1<e.byteLength&&(t+=dd[o>>>6&63]),n+2<e.byteLength&&(t+=dd[o&63])}return t.replaceAll(`+`,`-`).replaceAll(`/`,`_`)}function md(e){if(e.length===0||!fd.test(e))throw Error(`Bulk transfer chunk is not valid base64url data.`);let t=e.replaceAll(`-`,`+`).replaceAll(`_`,`/`),n=Math.floor(t.length*6/8),r=new Uint8Array(n),i=0,a=0,o=0;for(let e of t){let t=dd.indexOf(e);if(t<0)throw Error(`Bulk transfer chunk is not valid base64url data.`);i=i<<6|t,a+=6,a>=8&&(a-=8,r[o]=i>>>a&255,o+=1)}return r}async function hd(e){let t=new Uint8Array(e.byteLength);t.set(e);let n=await crypto.subtle.digest(`SHA-256`,t.buffer);return Array.from(new Uint8Array(n),e=>e.toString(16).padStart(2,`0`)).join(``)}async function gd(e,t){let n=t?.chunkBytes??262144;if(!Number.isSafeInteger(n)||n<1||n>262144)throw Error(`Bulk transfer chunk size must be between 1 and ${$r}.`);let r=t?.transferId??crypto.randomUUID().replaceAll(`-`,`_`),i=[];for(let t=0;t<e.byteLength;t+=n){let a=e.slice(t,Math.min(t+n,e.byteLength));i.push({kind:`chunk`,transferId:r,offset:t,bytes:a.byteLength,data:pd(a),sha256:await hd(a)})}return{totalBytes:e.byteLength,sha256:await hd(e),chunks:i}}async function _d(e){let t=md(e.data);if(t.byteLength!==e.bytes)throw Error(`Bulk transfer chunk byte count mismatch at offset ${e.offset}: expected ${e.bytes}, received ${t.byteLength}.`);if(await hd(t)!==e.sha256)throw Error(`Bulk transfer chunk integrity mismatch at offset ${e.offset}.`);return t}async function vd(e){let t=new Map,n=[],r=0;for(let i of e.chunks){let e=t.get(i.offset);if(e!==void 0){if(e.bytes!==i.bytes||e.sha256!==i.sha256||e.data!==i.data)throw Error(`Bulk transfer has a conflicting duplicate chunk at offset ${i.offset}.`);continue}if(i.offset!==r)throw Error(`Bulk transfer chunk offset mismatch: expected ${r}, received ${i.offset}.`);let a=await _d(i);t.set(i.offset,i),n.push({chunk:i,bytes:a}),r+=a.byteLength}if(r!==e.totalBytes)throw Error(`Bulk transfer total byte count mismatch: expected ${e.totalBytes}, received ${r}.`);let i=new Uint8Array(e.totalBytes);for(let e of n)i.set(e.bytes,e.chunk.offset);if(await hd(i)!==e.sha256)throw Error(`Bulk transfer payload integrity mismatch.`);return i}var yd=`forge`,bd=RegExp(`^(?:${yd}|t3code)\\/(?:[0-9a-f]{8}|[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})$`);function xd(){return`${yd}/${ce(xa).replace(/-/g,``).slice(0,8).toLowerCase()}`}function Sd(e){return bd.test(e.trim().toLowerCase())}function Cd(e){let t=e.trim().replace(/\/+$/g,``).replace(/\.git$/i,``).toLowerCase();if(/^(?:ssh|https?|git):\/\//i.test(t))try{let e=new URL(t),n=e.pathname.split(`/`).filter(e=>e.length>0).join(`/`);if(e.hostname&&n.includes(`/`))return`${e.hostname}/${n}`}catch{return t}let n=/^git@([^:/\s]+)[:/]([^/\s]+(?:\/[^/\s]+)+)$/i.exec(t);return n?.[1]&&n[2]?`${n[1]}/${n[2]}`:t}function wd(e){let t=e?.trim()??``;if(t.length===0)return null;let n=/^(?:git@github\.com:|ssh:\/\/git@github\.com\/|https:\/\/github\.com\/|git:\/\/github\.com\/)([^/\s]+\/[^/\s]+?)(?:\.git)?\/?$/i.exec(t)?.[1]?.trim()??``;return n.length>0?n:null}function Td(e){let t=e.trim();if(t.length===0)return null;if(t.startsWith(`git@`)){let e=t.slice(4),n=e.search(/[:/]/);return n<=0?null:e.slice(0,n).toLowerCase()}try{return new URL(t).hostname.toLowerCase()}catch{return null}}function Ed(e){return`https://${e}`}function Dd(e){return e===`github.com`||e.includes(`github`)}function Od(e){return e===`gitlab.com`||e.includes(`gitlab`)}function kd(e){return e===`bitbucket.org`}function Ad(e){return e===`dev.azure.com`||e===`ssh.dev.azure.com`||e===`vs-ssh.visualstudio.com`||e.endsWith(`.visualstudio.com`)}function jd(e){let t=Td(e);if(!t)return null;let n=Cd(e),r=`${t}/`;if(!n.startsWith(r))return null;let i=n.slice(r.length);return i.includes(`/`)?Dd(t)?{kind:`github`,name:t===`github.com`?`GitHub`:`GitHub Self-Hosted`,host:t,repositoryPath:i,baseUrl:Ed(t)}:Od(t)?{kind:`gitlab`,name:t===`gitlab.com`?`GitLab`:`GitLab Self-Hosted`,host:t,repositoryPath:i,baseUrl:Ed(t)}:kd(t)?{kind:`bitbucket`,name:`Bitbucket Cloud`,host:t,repositoryPath:i,baseUrl:Ed(t)}:Ad(t)?{kind:`azure-devops`,name:`Azure DevOps`,host:t,repositoryPath:i,baseUrl:Ed(t)}:{kind:`unknown`,name:t,host:t,repositoryPath:i,baseUrl:Ed(t)}:null}var Md={hasUpstream:!1,aheadCount:0,behindCount:0,pr:null,defaultBranch:null,diffVsBase:null};function Nd(e,t){return{...e,...t??Md}}function Pd(e){return{hasUpstream:e.hasUpstream,aheadCount:e.aheadCount,behindCount:e.behindCount,pr:e.pr,defaultBranch:e.defaultBranch,diffVsBase:e.diffVsBase}}function Fd(e){return{isRepo:e.isRepo,...e.hostingProvider?{hostingProvider:e.hostingProvider}:{},hasOriginRemote:e.hasOriginRemote,isDefaultBranch:e.isDefaultBranch,branch:e.branch,hasWorkingTreeChanges:e.hasWorkingTreeChanges,workingTree:e.workingTree}}function Id(e,t){switch(t._tag){case`snapshot`:return Nd(t.local,t.remote);case`localUpdated`:return Nd(t.local,e?Pd(e):null);case`remoteUpdated`:return Nd(e===null?{isRepo:!0,hasOriginRemote:!1,isDefaultBranch:!1,branch:null,hasWorkingTreeChanges:!1,workingTree:{files:[],insertions:0,deletions:0}}:Fd(e),t.remote)}}var Ld=262144,Rd=250;function zd(e){if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch{return String(e)}}function Bd(e){return new Promise(t=>setTimeout(t,e))}function Vd(e){let t=crypto.randomUUID(),n=Xi({controllerId:t,maxPendingWriteBytes:Ld}),r=!1,i=e=>{if(!e.sessionEpoch)throw Error(`Connected Forge runtime does not support epoch-fenced terminal controls.`);n.register({threadId:e.threadId,terminalId:e.terminalId,sessionEpoch:e.sessionEpoch})},a=async e=>{for(;!r;)try{return await e()}catch(e){if(!On(zd(e)))throw e;await Bd(Rd)}throw Error(`Terminal control client was disposed before acknowledgement.`)};return{terminal:{open:async t=>{let n=await e.request(e=>e[T.terminalOpen]({...t,terminalId:t.terminalId??`default`}));return i(n),n},write:async t=>{let r=t.terminalId??`default`;await n.enqueue({threadId:t.threadId,terminalId:r,writeBytes:new TextEncoder().encode(t.data).byteLength,execute:n=>a(()=>e.request(e=>e[T.terminalWrite]({...t,terminalId:r,...n})))})},resize:async t=>{let r=t.terminalId??`default`;await n.enqueue({threadId:t.threadId,terminalId:r,execute:n=>a(()=>e.request(e=>e[T.terminalResize]({...t,terminalId:r,...n})))})},signal:async t=>{let r=t.terminalId??`default`;await n.enqueue({threadId:t.threadId,terminalId:r,execute:n=>a(()=>e.request(e=>e[T.terminalSignal]({...t,terminalId:r,...n})))})},clear:async t=>{let r=t.terminalId??`default`;await n.enqueue({threadId:t.threadId,terminalId:r,execute:n=>a(()=>e.request(e=>e[T.terminalClear]({...t,terminalId:r,...n})))})},restart:async t=>{let r=t.terminalId??`default`,o=null;if(await n.enqueue({threadId:t.threadId,terminalId:r,execute:async n=>{o=(await a(()=>e.request(e=>e[T.terminalRestart]({...t,terminalId:r,...n})))).snapshot}}),o===null)throw Error(`Terminal restart completed without a snapshot.`);return i(o),o},close:async t=>{let r=t.terminalId?[t.terminalId]:n.terminalIds(t.threadId);for(let i of r)await n.enqueue({threadId:t.threadId,terminalId:i,execute:n=>a(()=>e.request(e=>e[T.terminalClose]({...t,terminalId:i,...n})))}),n.remove(t.threadId,i)},onEvent:t=>e.subscribe(e=>e[T.subscribeTerminalEvents]({}),e=>{(e.type===`started`||e.type===`restarted`)&&i(e.snapshot),t(e)})},dispose:()=>{r=!0,n.dispose()}}}function Hd(e){return{createUploadUrl:t=>e.request(e=>e[T.attachmentsCreateUploadUrl](t)),delete:t=>e.request(e=>e[T.attachmentsDelete](t))}}function Ud(e){return{environmentPreflight:t=>e.request(e=>e[T.workspaceEnvironmentPreflight](t)),listDirectory:t=>e.request(e=>e[T.workspaceListDirectory](t)),ensureScratch:t=>e.request(e=>e[T.workspaceEnsureScratch](t))}}async function Wd(e,t){await e.request(e=>e[T.workspaceCancelWriteFile]({transferId:t})).catch(()=>void 0)}var Gd=2e4,Kd=12e4,qd=3e5;function Jd(e){if(e instanceof td)return!0;let t=e instanceof Error?e.message:String(e);return On(t)}async function Yd(e,t){let n=t.type===`thread.turn.start`&&t.bootstrap!==void 0?qd:Gd,r=()=>e.request(e=>e[Ai.dispatchCommand](t),{timeout:n});try{return await r()}catch(t){if(!Jd(t))throw t;return await e.reconnect(),await r()}}function Xd(e){if(!e?.aborted)return;let t=Error(`Bulk transfer was cancelled.`);throw t.name=`AbortError`,t}async function Zd(e,t,n){let r={started:null,completed:null,chunks:[],protocolError:null,receivedBytes:0};if(await e.requestStream(t,e=>Qd(r,e,n),n),r.protocolError!==null)throw r.protocolError;let i=r.started,a=r.completed;if(i===null||a===null)throw Error(`Bulk transfer stream completed without start and completion metadata.`);if(a.transferId!==i.transferId||a.totalBytes!==i.totalBytes||a.sha256!==i.sha256)throw Error(`Bulk transfer completion metadata mismatch.`);return await vd({totalBytes:i.totalBytes,sha256:i.sha256,chunks:r.chunks})}function Qd(e,t,n){if(e.protocolError===null){if(t.kind===`started`){$d(e,t,n);return}if(e.started===null||t.transferId!==e.started.transferId){e.protocolError=Error(`Bulk transfer event identity mismatch.`);return}if(t.kind===`chunk`){ef(e,t,n);return}e.completed=t,n?.onProgress?.({completedBytes:t.totalBytes,totalBytes:t.totalBytes})}}function $d(e,t,n){if(e.started!==null||t.totalBytes>16777216){e.protocolError=Error(`Bulk transfer started with invalid or oversized metadata.`);return}e.started=t,n?.onProgress?.({completedBytes:0,totalBytes:t.totalBytes})}function ef(e,t,n){let r=e.started;if(r!==null){if(e.receivedBytes+=t.bytes,e.receivedBytes>r.totalBytes){e.protocolError=Error(`Bulk transfer exceeded its declared byte count.`);return}e.chunks.push(t),n?.onProgress?.({completedBytes:e.receivedBytes,totalBytes:r.totalBytes})}}async function tf(e,t,n){let r=new TextEncoder().encode(t.contents);if(r.byteLength>16777216)throw Error(`Project file exceeds the ${Ar}-byte write limit.`);let i=await gd(r),a=i.chunks[0]?.transferId??crypto.randomUUID().replaceAll(`-`,`_`),o=!1;try{Xd(n?.signal);let r=await nf(e,t,a,i);return o=!0,n?.onProgress?.({completedBytes:r.nextOffset,totalBytes:i.totalBytes}),await rf(e,a,i,r,n),{relativePath:t.relativePath}}catch(t){throw o&&await Wd(e,a),t}}function nf(e,t,n,r){return e.request(e=>e[T.workspaceBeginWriteFile]({transferId:n,cwd:t.cwd,relativePath:t.relativePath,totalBytes:r.totalBytes,sha256:r.sha256}))}async function rf(e,t,n,r,i){if(r.state!==`completed`){for(let t of n.chunks){if(t.offset<r.nextOffset)continue;Xd(i?.signal);let{kind:a,...o}=t,s=await e.request(e=>e[T.workspaceWriteFileChunk](o));i?.onProgress?.({completedBytes:s.nextOffset,totalBytes:n.totalBytes})}Xd(i?.signal),await e.request(e=>e[T.workspaceCommitWriteFile]({transferId:t}))}}function af(e){let t=Vd(e);return{dispose:()=>(t.dispose(),e.dispose()),reconnect:async()=>{na(),await e.reconnect()},terminal:t.terminal,browser:{openSession:t=>e.request(e=>e[T.browserOpenSession](t)),listSessions:t=>e.request(e=>e[T.browserListSessions](t)),closeSession:t=>e.request(e=>e[T.browserCloseSession](t)),getSession:t=>e.request(e=>e[T.browserGetSession](t)),command:t=>e.request(e=>e[T.browserCommand](t)),clearBrowsingData:t=>e.request(e=>e[T.browserClearBrowsingData](t)),attachDisplay:t=>e.request(e=>e[T.browserAttachDisplay](t)),addDisplayIceCandidate:t=>e.request(e=>e[T.browserAddDisplayIceCandidate](t)),onEvent:(t,n,r)=>e.subscribe(e=>e[T.subscribeBrowserEvents](t),n,r)},computer:{input:t=>e.request(e=>e[T.computerInput](t))},threadDevRuntime:{get:t=>e.request(e=>e[T.threadDevRuntimeGet](t)),allocatePort:t=>e.request(e=>e[T.threadDevRuntimeAllocatePort](t)),release:t=>e.request(e=>e[T.threadDevRuntimeRelease](t))},devTunnel:{register:t=>e.request(e=>e[T.devTunnelRegister](t)),unregister:t=>e.request(e=>e[T.devTunnelUnregister](t)),list:t=>e.request(e=>e[T.devTunnelList](t))},attachments:Hd(e),projects:{searchContents:(t,n)=>e.request(e=>e[T.projectsSearchContents](t),n),searchEntries:t=>e.request(e=>e[T.projectsSearchEntries](t)),readFile:(t,n)=>Zd(e,e=>e[T.workspaceReadFile](t),n),writeFile:(t,n)=>tf(e,t,n)},projectCheckoutDeletion:{preview:t=>e.request(e=>e[T.projectCheckoutDeletionPreview](t)),execute:t=>e.request(e=>e[T.projectCheckoutDeletionExecute](t))},workspace:Ud(e),shell:{openInEditor:t=>e.request(e=>e[T.shellOpenInEditor](t))},git:{pull:t=>e.request(e=>e[T.gitPull](t)),refreshStatus:t=>e.request(e=>e[T.gitRefreshStatus](t)),onStatus:(t,n,r)=>{let i=null;return e.subscribe(e=>e[T.subscribeGitStatus](t),e=>{i=Id(i,e),n(i)},r)},runStackedAction:async(t,n)=>{let r=null;if(await e.requestStream(e=>e[T.gitRunStackedAction](t),e=>{n?.onProgress?.(e),e.kind===`action_finished`&&(r=e.result)}),r)return r;throw Error(`Git action stream completed without a final result.`)},listBranches:t=>e.request(e=>e[T.gitListBranches](t)),createWorktree:t=>e.request(e=>e[T.gitCreateWorktree](t)),removeWorktree:t=>e.request(e=>e[T.gitRemoveWorktree](t)),createBranch:t=>e.request(e=>e[T.gitCreateBranch](t)),checkout:t=>e.request(e=>e[T.gitCheckout](t)),init:t=>e.request(e=>e[T.gitInit](t)),resolvePullRequest:t=>e.request(e=>e[T.gitResolvePullRequest](t)),preparePullRequestThread:t=>e.request(e=>e[T.gitPreparePullRequestThread](t))},pullRequests:{list:t=>e.request(e=>e[T.pullRequestsList](t)),listStats:t=>e.request(e=>e[T.pullRequestsListStats](t)),detail:t=>e.request(e=>e[T.pullRequestsDetail](t)),activity:t=>e.request(e=>e[T.pullRequestsActivity](t)),threadComments:t=>e.request(e=>e[T.pullRequestsThreadComments](t)),diffFileContents:t=>e.request(e=>e[T.pullRequestsDiffFileContents](t)),runAction:t=>e.request(e=>e[T.pullRequestsRunAction](t)),update:t=>e.request(e=>e[T.pullRequestsUpdate](t)),comment:t=>e.request(e=>e[T.pullRequestsComment](t)),updateComment:t=>e.request(e=>e[T.pullRequestsUpdateComment](t)),submitReview:t=>e.request(e=>e[T.pullRequestsSubmitReview](t)),replyToThread:t=>e.request(e=>e[T.pullRequestsReplyToThread](t)),setThreadResolution:t=>e.request(e=>e[T.pullRequestsSetThreadResolution](t)),setReaction:t=>e.request(e=>e[T.pullRequestsSetReaction](t)),invalidate:t=>e.request(e=>e[T.pullRequestsInvalidate](t)),reviewerCandidates:t=>e.request(e=>e[T.pullRequestsReviewerCandidates](t)),requestReviewers:t=>e.request(e=>e[T.pullRequestsRequestReviewers](t))},server:{getConfig:()=>e.request(e=>e[T.serverGetConfig]({})),refreshProviders:()=>e.request(e=>e[T.serverRefreshProviders]({})),startProviderAuth:t=>e.request(e=>e[T.serverStartProviderAuth](t)),repairProviderAuthRuntime:t=>e.request(e=>e[T.serverRepairProviderAuthRuntime](t)),disconnectProviderAuth:t=>e.request(e=>e[T.serverDisconnectProviderAuth](t)),getProviderAuthSession:t=>e.request(e=>e[T.serverGetProviderAuthSession](t)),cancelProviderAuth:t=>e.request(e=>e[T.serverCancelProviderAuth](t)),submitProviderAuthCode:t=>e.request(e=>e[T.serverSubmitProviderAuthCode](t)),syncPersonalCodexToCloud:t=>e.request(e=>e[T.serverSyncPersonalCodexToCloud](t)),syncPersonalClaudeToCloud:t=>e.request(e=>e[T.serverSyncPersonalClaudeToCloud](t)),upsertKeybinding:t=>e.request(e=>e[T.serverUpsertKeybinding](t)),removeKeybinding:t=>e.request(e=>e[T.serverRemoveKeybinding](t)),getSettings:()=>e.request(e=>e[T.serverGetSettings]({})),updateSettings:t=>e.request(e=>e[T.serverUpdateSettings]({patch:t})),updateEnvironmentDisplayName:t=>e.request(e=>e[T.serverUpdateEnvironmentDisplayName](t)),getTraceDiagnostics:t=>e.request(e=>e[T.serverGetTraceDiagnostics](t)),subscribeConfig:(t,n)=>e.subscribe(e=>e[T.subscribeServerConfig]({}),t,n),subscribeLifecycle:(t,n)=>e.subscribe(e=>e[T.subscribeServerLifecycle]({}),t,n),subscribeAuthAccess:(t,n)=>e.subscribe(e=>e[T.subscribeAuthAccess]({}),t,n),subscribeWorkspaceReadiness:(t,n)=>e.subscribe(e=>e[T.subscribeWorkspaceReadiness]({}),t,n)},usage:{getSummary:t=>e.request(e=>e[T.usageGetSummary](t),{timeout:Kd})},orchestration:{dispatchCommand:t=>Yd(e,t),getTurnDiff:(t,n)=>Zd(e,e=>e[Ai.streamTurnDiff](t),n).then(e=>({...t,diff:new TextDecoder().decode(e)})),getFullThreadDiff:(t,n)=>Zd(e,e=>e[Ai.streamFullThreadDiff](t),n).then(e=>({...t,fromTurnCount:0,diff:new TextDecoder().decode(e)})),subscribeShell:(t,n)=>e.subscribe(e=>e[Ai.subscribeShell]({}),t,n),subscribeThread:(t,n,r)=>e.subscribe(e=>e[Ai.subscribeThread](t),n,r)}}}function of(){if(typeof window>`u`)return;let e=Zi();if(!(e?.primaryMode!==`cloud`||!e.bearerToken))return{bearerToken:e.bearerToken,httpBaseUrl:e.httpBaseUrl,wsBaseUrl:e.wsBaseUrl}}function sf(){if(typeof window>`u`)return;let e=Zi(),t=e?.primaryMode===`cloud`?e.desktopLocal:e;if(!(!t?.httpBaseUrl||!t.wsBaseUrl||!t.bearerToken))return{bearerToken:t.bearerToken,httpBaseUrl:t.httpBaseUrl,wsBaseUrl:t.wsBaseUrl,label:t.label}}function cf(e){let t=sr(e);if(!t)throw Error(`Unable to resolve websocket URL for ${e?.label??`primary environment`}.`);return af(new ld(async()=>{await ea().catch(()=>null);let e=of();if(e)try{return await Rl(e)}catch(e){throw Rn(e)&&Ui(`ws-token`),e}return kn(t)}))}function lf(e){return af(new ld(()=>Rl(e),{trackGlobalConnection:!1,onAttempt:()=>e.onConnecting(e.environmentId),onOpen:()=>e.onConnected(e.environmentId),onError:t=>e.onError(e.environmentId,t),onClose:t=>e.onDisconnected(e.environmentId,t.reason)}))}function uf(e){return typeof e==`string`?e:typeof e==`object`&&e&&`detail`in e&&typeof e.detail==`string`?e.detail:e instanceof Error?e.message:String(e)}function df(e){return e.match(/blocked by policy for\s+([^.\s]+(?:\.[^.\s]+)*)\.?/i)?.[1]||(e.match(/navigation to\s+([^.\s]+(?:\.[^.\s]+)*)\s+is restricted/i)?.[1]??null)}function ff(e){let t=uf(e).trim()||`Unknown browser error.`,n=df(t);return/blocked by policy|restricted to allowed domains/i.test(t)?{title:`Browser navigation blocked`,cause:`${n??`This URL`} is not allowed by the current browser policy.`,nextAction:`Use an allowed URL or update the browser allowed-domain setting.`,technicalDetail:t}:/does not match thread|session .*not found|no active browser tab|tab .*not found/i.test(t)?{title:`Browser session is stale`,cause:`Forge no longer has a matching live browser session for this thread.`,nextAction:`Restart the browser session from the Browser options menu.`,technicalDetail:t}:/screenshot|capture|Page\.capture/i.test(t)?{title:`Browser screenshot failed`,cause:`The browser could not capture the current page frame.`,nextAction:`Reload the page, then try the screenshot again.`,technicalDetail:t}:/timed out|timeout/i.test(t)?{title:`Browser action timed out`,cause:`Forge did not receive a response from the browser runtime in time.`,nextAction:`Retry the action. If it keeps failing, restart the browser session.`,technicalDetail:t}:/runtime is not available|browser.*unavailable|not supported|disabled/i.test(t)?{title:`Browser session unavailable`,cause:`This environment does not currently expose the in-app browser runtime.`,nextAction:`Use a workspace with browser support or restart Forge after browser support is enabled.`,technicalDetail:t}:/navigate|navigation|net::|ERR_/i.test(t)?{title:`Browser navigation failed`,cause:`The browser could not load the requested page.`,nextAction:`Check the URL and network access, then try again.`,technicalDetail:t}:{title:`Browser action failed`,cause:`Forge could not complete the browser action.`,nextAction:`Retry the action. If it keeps failing, restart the browser session from the Browser options menu.`,technicalDetail:t}}function pf(e){let t=ff(e);return`${t.cause} ${t.nextAction}`}function mf(e){let t=ff(e);return`${t.title}: ${t.cause} ${t.nextAction}`}var hf={session:null,selectedBrowserId:null,sessionsByBrowserId:{},lastActivityByTabId:{},lastSnapshotContentByTabId:{},lastScreenshotDataUrlByTabId:{},lastScreenshotMetaByTabId:{},lastConsoleLogsByTabId:{},lastConsoleLogsMetaByTabId:{},lastFrameByTabId:{},lastFrameSequenceByTabId:{},lastObservedFrameSequenceByTabId:{},lastFrameStreamIdByTabId:{},lastFrameStreamGenerationByTabId:{},frameGapCountByTabId:{},lastFrameMetaByTabId:{},displayIceCandidatesByClientId:{},lastError:null};function gf(e){return Ln(e)}function _f(e){let t=e.status===`reconnecting`&&e.reason===`network_unreachable`;return e.transport===`remote-webrtc`&&(e.status===`connected`||e.status===`connecting`||e.status===`reconnecting`)&&(e.reason!==`network_unreachable`||t)&&e.reason!==`unsupported_host`}function vf(e){return e.transport!==`remote-webrtc`||e.status===`failed`||e.status===`unsupported`?!1:e.reason!==`network_unreachable`&&e.reason!==`unsupported_host`}function yf(e){let{currentSession:t,nextSession:n}=e;return!t||t.browserId!==n.browserId||t.sessionId!==n.sessionId||!_f(t.display)||!vf(n.display)?n:{...n,display:{...t.display,viewport:n.display.viewport??n.viewport??t.display.viewport,devicePixelRatio:n.display.devicePixelRatio??t.display.devicePixelRatio,iceServers:n.display.iceServers??t.display.iceServers,reconnect:t.display.reconnect??n.display.reconnect}}}function bf(e){let{storedSession:t,nextSession:n}=e;if(!t||t.browserId!==n.browserId||t.sessionId!==n.sessionId)return!1;let r=n.tabs.some(e=>e.navigationStatus===`pending`),i=t.tabs.some(e=>e.navigationStatus===`complete`||e.navigationStatus===`failed`);if(!r||!i)return!1;let a=Date.parse(t.updatedAt),o=Date.parse(n.updatedAt);return Number.isNaN(a)||Number.isNaN(o)?!1:o<a}function M(e,t,n){return e[t]===n?e:{...e,[t]:n}}function xf(e){switch(e.type){case`tab.updated`:return e.payload.tab.tabId;case`tab.closed`:case`snapshot.ready`:case`screenshot.ready`:case`frame.ready`:case`console.logs.ready`:case`display.iceCandidate`:case`display.metrics`:return e.payload.tabId;case`action.failed`:return e.payload.tabId??null;case`display.updated`:case`session.started`:case`session.updated`:case`session.closed`:return null}}function Sf(e,t){let n=xf(t);return n?{...e,lastActivityByTabId:{...e.lastActivityByTabId,[n]:{actor:t.agentId?`agent`:`human`,agentId:t.agentId,browserId:t.browserId,eventType:t.type,...t.type===`action.failed`?{commandType:t.payload.commandType}:{},...t.type===`action.failed`?{message:t.payload.message}:{},createdAt:t.createdAt}}}:e}function Cf(e){switch(e.type){case`session.started`:case`session.updated`:case`tab.updated`:case`snapshot.ready`:case`screenshot.ready`:case`frame.ready`:case`display.updated`:return!0;case`session.closed`:case`tab.closed`:case`console.logs.ready`:case`action.failed`:case`display.iceCandidate`:case`display.metrics`:return!1}}function wf(e){return e===null?`end-of-candidates`:JSON.stringify([e.candidate,e.sdpMid??null,e.sdpMLineIndex??null,e.usernameFragment??null])}function Tf(e,t){let n=wf(t);return e.some(e=>wf(e)===n)?e:[...e,t]}function Ef(e){if(e.type!==`session.closed`)return null;switch(e.payload.reason){case`idle_timeout`:return`The browser was closed after being idle. Reopen the preview to restore this thread's browser.`;case`runtime_shutdown`:return`The browser runtime shut down. Reopen the preview to restore this thread's browser.`;case`thread_archived`:case`clear_browsing_data`:case`user_closed`:case void 0:return null}}function Df(e){let t=e.event.payload.display;return t.status===`failed`||t.status===`unsupported`?t.detail??`Browser display is unavailable.`:e.currentLastError&&/browser display/i.test(e.currentLastError)?null:e.currentLastError}function Of(e,t){let n=e.sessionsByBrowserId[t.browserId]??(e.session?.browserId===t.browserId?e.session:null);if(!n)return!0;let r=n.sessionId===t.payload.sessionId,i=!t.sessionEpoch||!n.sessionEpoch||t.sessionEpoch===n.sessionEpoch;return r&&i}function kf(e,t){let n=e.lastFrameSequenceByTabId[t]??0;return{acceptedSequence:n,observedSequence:e.lastObservedFrameSequenceByTabId[t]??n,...e.lastFrameStreamIdByTabId[t]?{streamId:e.lastFrameStreamIdByTabId[t]}:{},...e.lastFrameStreamGenerationByTabId[t]===void 0?{}:{streamGeneration:e.lastFrameStreamGenerationByTabId[t]},...e.lastFrameMetaByTabId[t]?.capturedAt?{acceptedCapturedAt:e.lastFrameMetaByTabId[t].capturedAt}:{},gapCount:e.frameGapCountByTabId[t]??0}}function Af(e,t){let n=t.payload.tabId,r=Lc(kf(e,n),{sequence:t.payload.sequence,capturedAt:t.payload.capturedAt,...t.payload.streamId?{streamId:t.payload.streamId}:{},...t.payload.streamGeneration===void 0?{}:{streamGeneration:t.payload.streamGeneration},...t.payload.keyframe===void 0?{}:{keyframe:t.payload.keyframe}});return{decision:r,observedSequence:r.state.observedSequence,frameGapCount:r.state.gapCount}}function jf(e,t,n){let r=t.payload.tabId;return{...e,lastObservedFrameSequenceByTabId:{...e.lastObservedFrameSequenceByTabId,[r]:n.observedSequence},frameGapCountByTabId:{...e.frameGapCountByTabId,[r]:n.frameGapCount}}}function Mf(e,t){let n=t.payload.tabId;return{...e,lastFrameByTabId:{...e.lastFrameByTabId,[n]:t.payload.imageDataUrl},lastFrameSequenceByTabId:{...e.lastFrameSequenceByTabId,[n]:t.payload.sequence},lastFrameStreamIdByTabId:t.payload.streamId?{...e.lastFrameStreamIdByTabId,[n]:t.payload.streamId}:e.lastFrameStreamIdByTabId,lastFrameStreamGenerationByTabId:t.payload.streamGeneration===void 0?e.lastFrameStreamGenerationByTabId:{...e.lastFrameStreamGenerationByTabId,[n]:t.payload.streamGeneration},lastFrameMetaByTabId:{...e.lastFrameMetaByTabId,[n]:{capturedAt:t.payload.capturedAt,url:t.payload.url,viewport:t.payload.viewport}},lastError:null}}function Nf(e){let{current:t,event:n,pendingAutoRevealKeys:r,state:i,threadKey:a}=e;if(!Of(t,n))return i;let o=Af(t,n);if(!o.decision.observe)return i;let s=jf(t,n,o),c=o.decision.accept?Mf(s,n):s;return{browserStateByThreadKey:M(i.browserStateByThreadKey,a,c),pendingAutoRevealKeys:r}}var Pf=wa(e=>({browserStateByThreadKey:{},pendingAutoRevealKeys:new Set,setSessionSnapshot:(t,n)=>e(e=>{let r=gf(t),i=e.browserStateByThreadKey[r]??hf,a=n?yf({currentSession:i.sessionsByBrowserId[n.browserId]??i.session,nextSession:n}):null;return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...i,session:a,selectedBrowserId:a?.browserId??i.selectedBrowserId,sessionsByBrowserId:a?{...i.sessionsByBrowserId,[a.browserId]:a}:i.sessionsByBrowserId,lastError:a?null:i.lastError})}}),selectBrowserSession:(t,n)=>e(e=>{let r=gf(t),i=e.browserStateByThreadKey[r]??hf,a=i.sessionsByBrowserId[n]??i.session;return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...i,selectedBrowserId:n,session:a})}}),applyBrowserEvent:(t,n)=>e(e=>{let r=gf(t),i=Cf(n)?new Set(e.pendingAutoRevealKeys).add(r):e.pendingAutoRevealKeys,a=Sf(e.browserStateByThreadKey[r]??hf,n);switch(n.type){case`session.started`:{if(bf({storedSession:a.sessionsByBrowserId[n.payload.snapshot.browserId]??a.session,nextSession:n.payload.snapshot}))return e;let t=yf({currentSession:a.sessionsByBrowserId[n.payload.snapshot.browserId]??a.session,nextSession:n.payload.snapshot});return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,session:t,selectedBrowserId:a.selectedBrowserId??t.browserId,sessionsByBrowserId:{...a.sessionsByBrowserId,[t.browserId]:t},lastError:null}),pendingAutoRevealKeys:i}}case`session.updated`:{let t=yf({currentSession:a.sessionsByBrowserId[n.payload.snapshot.browserId]??a.session,nextSession:n.payload.snapshot});return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,session:a.selectedBrowserId&&a.selectedBrowserId!==n.payload.snapshot.browserId?a.session:t,selectedBrowserId:a.selectedBrowserId??n.payload.snapshot.browserId,sessionsByBrowserId:{...a.sessionsByBrowserId,[t.browserId]:t},lastError:null}),pendingAutoRevealKeys:i}}case`session.closed`:let t=a.selectedBrowserId===n.browserId||a.session?.browserId===n.browserId;return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,session:t?null:a.session,selectedBrowserId:t?null:a.selectedBrowserId,sessionsByBrowserId:Object.fromEntries(Object.entries(a.sessionsByBrowserId).filter(([e])=>e!==n.browserId)),lastError:Ef(n)})};case`display.updated`:{let t=a.session;if(!t||t.sessionId!==n.payload.sessionId)return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,a),pendingAutoRevealKeys:i};let o={...t,display:n.payload.display,updatedAt:n.createdAt};return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,session:o,sessionsByBrowserId:{...a.sessionsByBrowserId,[o.browserId]:o},lastError:Df({currentLastError:a.lastError,event:n})}),pendingAutoRevealKeys:i}}case`tab.updated`:{let t=a.session;if(!t||t.sessionId!==n.payload.sessionId)return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,a),pendingAutoRevealKeys:i};let o=t.tabs.map(e=>e.tabId===n.payload.tab.tabId?{...n.payload.tab,isActive:e.tabId===t.activeTabId}:{...e,isActive:e.tabId===t.activeTabId}).concat(t.tabs.some(e=>e.tabId===n.payload.tab.tabId)?[]:[{...n.payload.tab,isActive:n.payload.tab.tabId===t.activeTabId}]);return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,session:{...t,tabs:o},lastError:null}),pendingAutoRevealKeys:i}}case`tab.closed`:{let t=a.session;if(!t||t.sessionId!==n.payload.sessionId)return e;let i=t.tabs.filter(e=>e.tabId!==n.payload.tabId);return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,session:{...t,tabs:i,activeTabId:t.activeTabId===n.payload.tabId?i[0]?.tabId??null:t.activeTabId}})}}case`snapshot.ready`:return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,lastSnapshotContentByTabId:{...a.lastSnapshotContentByTabId,[n.payload.tabId]:n.payload.content},lastError:null}),pendingAutoRevealKeys:i};case`screenshot.ready`:return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,lastScreenshotDataUrlByTabId:{...a.lastScreenshotDataUrlByTabId,[n.payload.tabId]:n.payload.imageDataUrl},lastScreenshotMetaByTabId:{...a.lastScreenshotMetaByTabId,[n.payload.tabId]:{captureId:n.payload.captureId,capturedAt:n.payload.capturedAt,url:n.payload.url,viewport:n.payload.viewport}},lastError:null}),pendingAutoRevealKeys:i};case`frame.ready`:return Nf({state:e,current:a,event:n,threadKey:r,pendingAutoRevealKeys:i});case`console.logs.ready`:return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,lastConsoleLogsByTabId:{...a.lastConsoleLogsByTabId,[n.payload.tabId]:n.payload.logs},lastConsoleLogsMetaByTabId:{...a.lastConsoleLogsMetaByTabId,[n.payload.tabId]:{capturedAt:n.createdAt,tabId:n.payload.tabId,count:n.payload.logs.length}},lastError:null})};case`display.iceCandidate`:{let t=a.displayIceCandidatesByClientId[n.payload.clientId]??[];return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,displayIceCandidatesByClientId:{...a.displayIceCandidatesByClientId,[n.payload.clientId]:Tf(t,n.payload.candidate)}}),pendingAutoRevealKeys:i}}case`display.metrics`:return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,a),pendingAutoRevealKeys:i};case`action.failed`:return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,lastError:mf(n.payload.message)})};default:return e}}),clearBrowserState:t=>e(e=>{let n=gf(t);if(!(n in e.browserStateByThreadKey))return e;let{[n]:r,...i}=e.browserStateByThreadKey;return{browserStateByThreadKey:i}}),consumeAutoReveal:t=>e(e=>{if(!e.pendingAutoRevealKeys.has(t))return e;let n=new Set(e.pendingAutoRevealKeys);return n.delete(t),{pendingAutoRevealKeys:n}})}));function Ff(e,t){return t?e[gf(t)]??null:null}function If(e){if(e!==void 0)return Object.fromEntries(Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t)))}function Lf(e){return{...e,...e.projectIds===void 0?{}:{projectIds:[...e.projectIds].toSorted((e,t)=>e.localeCompare(t))},...e.cursors===void 0?{}:{cursors:If(e.cursors)}}}var Rf={all:e=>[`pullRequests`,e],list:(e,t)=>[`pullRequests`,e,`list`,Lf(t)],stats:(e,t)=>[`pullRequests`,e,`stats`,[...t].toSorted((e,t)=>`${e.projectId}:${e.repository}#${e.number}`.localeCompare(`${t.projectId}:${t.repository}#${t.number}`))],detail:(e,t)=>[`pullRequests`,e,`detail`,t],activity:(e,t)=>[`pullRequests`,e,`activity`,t],diff:(e,t)=>[`pullRequests`,e,`diff`,t],threadComments:(e,t)=>[`pullRequests`,e,`thread-comments`,t],diffFileContents:(e,t)=>[`pullRequests`,e,`diff-file-contents`,t],reviewerCandidates:(e,t)=>[`pullRequests`,e,`reviewer-candidates`,t]},zf=Hr.make(`command-authority`);function Bf(e){return e[0]===`pullRequests`&&e[1]===zf&&e[2]===`detail`}function Vf(e){return e[0]===`pullRequests`&&e[1]===zf&&e[2]===`list`}function Hf(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}var Uf=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return Uf(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return Uf(t)(e)}}}},Wf=(e,t)=>(n,r,i)=>{let a={storage:Hf(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let p=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>p;let m,h=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??p));let t=a.onRehydrateStorage?.call(a,r()??p)||void 0;return Uf(u.getItem.bind(u))(a.name).then(e=>{if(e)if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(t=>{if(e!==s)return;let[i,o]=t;if(m=a.merge(o,r()??p),n(m,!0),i)return d()}).then(()=>{e===s&&(t?.(r(),void 0),m=r(),o=!0,l.forEach(e=>e(m)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{++s,u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||h(),m||p},Gf=/^(localhost|[a-z0-9.-]+\.localhost|127(?:\.\d{1,3}){3}|\[[0:]+1\]|::1)(?::\d+)?(?:[/?#]|$)/i,Kf=/https?:\/\/[^\s"'`<>]+/gu,qf=new RegExp(String.raw`\u001B(?:\][\s\S]*?(?:\u0007|\u001B\\)|[@-_][0-?]*[ -/]*[@-~])`,`gu`),Jf=/(https?:\/\/(?:localhost|[a-z0-9.-]+\.localhost|127(?:\.\d{1,3}){3}|\[[0:]+1\]|::1|10(?:\.\d{1,3}){3}|172\.(?:1[6-9]|2\d|3[01])(?:\.\d{1,3}){2}|192\.168(?:\.\d{1,3}){2}):)\s+(\d{1,5})(?=[/?#\s]|$)/giu;function Yf(e){let t=e.trim();if(!t||/^[a-z][a-z0-9+.-]*:\/\//i.test(t)&&!/^https?:\/\//i.test(t))return null;let n=t.split(/[/:?#]/,1)[0]??``,r=Gf.test(t)||Qf(n)?`http`:`https`,i=/^https?:\/\//i.test(t)?t:`${r}://${t}`;try{let e=new URL(i);return e.protocol!==`http:`&&e.protocol!==`https:`?null:e.toString()}catch{return null}}function Xf(e){try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`}catch{return!1}}function Zf(e){try{let t=new URL(e);return aa(t.hostname)}catch{return!1}}function Qf(e){return Wi(e)}function $f(e){try{let t=new URL(e);if(t.protocol!==`http:`||!Zf(t.toString())&&!Qf(t.hostname)||!t.port)return null;let n=Number(t.port);return Number.isInteger(n)&&n>0&&n<=65535?n:null}catch{return null}}function ep(e){let t=e.replace(/[.,;!?]+$/u,``);for(;t.endsWith(`)`)||t.endsWith(`]`)||t.endsWith(`}`);){let e=t.at(-1);if(!e)break;let n=e===`)`?`(`:e===`]`?`[`:`{`;if(t.split(n).length-1>=t.split(e).length-1)break;t=t.slice(0,-1)}return t}function tp(e){return e.replace(qf,``).replaceAll(/./gsu,e=>np(e)?``:e).replace(Jf,`$1$2`)}function np(e){let t=e.charCodeAt(0);return t>=0&&t<=8||t===11||t===12||t>=14&&t<=31||t===127}function rp(e){let t=null,n=null,r=tp(e);Kf.lastIndex=0;for(let e of r.matchAll(Kf)){let r=Yf(ep(e[0]));!r||!$f(r)||(t=r,Zf(r)&&(n=r))}return n??t}function ip(e){let t=null;for(let n of e){let e=n.event,r=rp(e.type===`output`?e.data:e.type===`started`||e.type===`restarted`?e.snapshot.history:``);r&&(t=r)}return t}function ap(e){switch(e.type){case`activity`:return e.hasRunningSubprocess;case`started`:case`restarted`:case`exited`:return!1;default:return null}}var op=`full-access`,sp=`default`,cp=`default`,lp=`forge:terminal-state:v1`,up=[],dp=200,fp=8;function pp(e,t){if(t<=3&&e&&typeof e==`object`){let t=e;return{terminalStateByThreadKey:Ap(t.terminalStateByThreadKey??{}),terminalPreviewUrlByThreadKey:Object.fromEntries(Object.entries(t.terminalPreviewUrlByThreadKey??{}).filter(([e,t])=>!!hn(e)&&typeof t?.url==`string`&&!!$f(t.url)&&typeof t?.observedAt==`string`))}}return{terminalStateByThreadKey:{},terminalPreviewUrlByThreadKey:{}}}function mp(){return _n(typeof window<`u`?window.localStorage:void 0)}function hp(e){let t=[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))];return t.length>0?t:[cp]}function gp(e,t){if(e.length===0)return[];let n=new Set(t);return[...new Set(e)].map(e=>e.trim()).filter(e=>e.length>0&&n.has(e))}function _p(e){return`group-${e}`}function vp(e,t){let n=e,r=2;for(;t.has(n);)n=`${e}-${r}`,r+=1;return t.add(n),n}function yp(e,t){return e.findIndex(e=>e.terminalIds.includes(t))}function bp(e){return[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))]}function xp(e,t){let n=new Set(t),r=new Set,i=[],a=new Set;for(let t of e){let e=bp(t.terminalIds).filter(e=>!(!n.has(e)||r.has(e)));if(e.length===0)continue;for(let t of e)r.add(t);let o=t.id.trim().length>0?t.id.trim():_p(e[0]??`default`);i.push({id:vp(o,a),terminalIds:e})}for(let e of t)r.has(e)||i.push({id:vp(_p(e),a),terminalIds:[e]});return i.length===0?[{id:_p(cp),terminalIds:[cp]}]:i}function Sp(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function Cp(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(!r||!i||r.id!==i.id||!Sp(r.terminalIds,i.terminalIds))return!1}return!0}function wp(e,t){return e.terminalOpen===t.terminalOpen&&e.terminalHeight===t.terminalHeight&&e.activeTerminalId===t.activeTerminalId&&e.activeTerminalGroupId===t.activeTerminalGroupId&&Sp(e.terminalIds,t.terminalIds)&&Sp(e.runningTerminalIds,t.runningTerminalIds)&&Cp(e.terminalGroups,t.terminalGroups)}var Tp=Object.freeze({terminalOpen:!1,terminalHeight:280,terminalIds:[cp],runningTerminalIds:[],activeTerminalId:cp,terminalGroups:[{id:_p(cp),terminalIds:[cp]}],activeTerminalGroupId:_p(cp)});function Ep(){return{...Tp,terminalIds:[...Tp.terminalIds],runningTerminalIds:[...Tp.runningTerminalIds],terminalGroups:Vp(Tp.terminalGroups)}}function Dp(){return Tp}function Op(e){let t=hp(e.terminalIds),n=t.length>0?t:[cp],r=gp(e.runningTerminalIds,n),i=n.includes(e.activeTerminalId)?e.activeTerminalId:n[0]??`default`,a=xp(e.terminalGroups,n),o=a.some(t=>t.id===e.activeTerminalGroupId)?e.activeTerminalGroupId:null,s=a.find(e=>e.terminalIds.includes(i))?.id??null,c={terminalOpen:e.terminalOpen,terminalHeight:Number.isFinite(e.terminalHeight)&&e.terminalHeight>0?e.terminalHeight:280,terminalIds:n,runningTerminalIds:r,activeTerminalId:i,terminalGroups:a,activeTerminalGroupId:o??s??a[0]?.id??_p(`default`)};return wp(e,c)?e:c}function kp(e){let t=Op(e);if(t.terminalIds.length<=fp)return t;let n=new Set,r=e=>{!e||n.size>=fp||t.terminalIds.includes(e)&&n.add(e)};r(cp),r(t.activeTerminalId);for(let e of t.runningTerminalIds)r(e);for(let e of t.terminalIds.toReversed())r(e);let i=t.terminalIds.filter(e=>n.has(e)),a=i[i.length-1]??i[0]??`default`,o=i.includes(t.activeTerminalId)?t.activeTerminalId:a;return Op({...t,terminalIds:i.length>0?i:[cp],runningTerminalIds:t.runningTerminalIds.filter(e=>n.has(e)),activeTerminalId:o,terminalGroups:t.terminalGroups.map(e=>({id:e.id,terminalIds:e.terminalIds.filter(e=>n.has(e))})).filter(e=>e.terminalIds.length>0)})}function Ap(e){return Object.fromEntries(Object.entries(e).flatMap(([e,t])=>hn(e)?[[e,kp(t)]]:[]))}function jp(e){return wp(Op(e),Tp)}function Mp(e){return e.trim().length>0}function Np(e){return Ln(e)}function Pp(e,t){return`${Np(e)}\u0000${t}`}function Fp(e,t){return Pp(e,t)}function Ip(e){let t=Date.parse(e);return Number.isFinite(t)?t:0}function Lp(e,t){let n=rp(e);return n?{url:n,observedAt:t}:null}function Rp(e){return Lp(e.history,e.updatedAt)}function zp(e){return e.type===`output`?Lp(e.data,e.createdAt):e.type===`started`||e.type===`restarted`?Lp(e.snapshot.history,e.snapshot.updatedAt):null}function Bp(e,t,n){if(!n)return e;let r=Np(t),i=e[r];return i&&Ip(i.observedAt)>Ip(n.observedAt)||i?.url===n.url&&i.observedAt===n.observedAt?e:{...e,[r]:n}}function Vp(e){return e.map(e=>({id:e.id,terminalIds:[...e.terminalIds]}))}function Hp(e,t,n,r){let i=Pp(n,r.terminalId),a=e[i]??up,o={id:t,event:r},s=a.length>=dp?[...a.slice(1),o]:[...a,o];return{terminalEventEntriesByKey:{...e,[i]:s},nextTerminalEventId:t+1}}function Up(e,t,n,r){let i=Pp(n,r.terminalId);return{terminalEventEntriesByKey:{...e,[i]:[{id:t,event:r}]},nextTerminalEventId:t+1}}function Wp(e){return e.sessionEpoch&&e.sequence!==void 0?{sessionEpoch:e.sessionEpoch,sequence:e.sequence}:null}function Gp(e,t,n){return!t||!e?!1:t.sessionEpoch===e.sessionEpoch?n?t.sequence<e.sequence:t.sequence<=e.sequence:!n}function Kp(e,t){let n={...e},r=!1;for(let e of Object.keys(n))e.startsWith(`${t}\u0000`)&&(delete n[e],r=!0);return r?n:e}function qp(e){return{terminalId:e.terminalId,cwd:e.snapshot.cwd,worktreePath:e.snapshot.worktreePath}}function Jp(e,t){let n=qp(t);return e?.runtimeEnv&&e.cwd===n.cwd&&e.worktreePath===n.worktreePath&&(e.terminalId===void 0||e.terminalId===t.terminalId)?{...n,runtimeEnv:e.runtimeEnv}:n}function Yp(e,t,n){let r=Op(e);if(!Mp(t))return r;let i=!r.terminalIds.includes(t),a=i?[...r.terminalIds,t]:r.terminalIds,o=Vp(r.terminalGroups),s=yp(o,t);if(s>=0&&(o[s].terminalIds=o[s].terminalIds.filter(e=>e!==t),o[s].terminalIds.length===0&&o.splice(s,1)),n===`new`){let e=new Set(o.map(e=>e.id)),n=vp(_p(t),e);return o.push({id:n,terminalIds:[t]}),Op({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:n})}let c=o.findIndex(e=>e.id===r.activeTerminalGroupId);if(c<0&&(c=yp(o,r.activeTerminalId)),c<0){let e=new Set(o.map(e=>e.id)),t=vp(_p(r.activeTerminalId),e);o.push({id:t,terminalIds:[r.activeTerminalId]}),c=o.length-1}let l=o[c];if(!l||i&&!l.terminalIds.includes(t)&&l.terminalIds.length>=4)return r;if(!l.terminalIds.includes(t)){let e=l.terminalIds.indexOf(r.activeTerminalId);e>=0?l.terminalIds.splice(e+1,0,t):l.terminalIds.push(t)}return Op({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:l.id})}function Xp(e,t){let n=Op(e);return n.terminalOpen===t?n:{...n,terminalOpen:t}}function Zp(e,t){let n=Op(e);return!Number.isFinite(t)||t<=0||n.terminalHeight===t?n:{...n,terminalHeight:t}}function Qp(e,t){return Yp(e,t,`split`)}function $p(e,t,n){let r=Yp(e,t,`new`);return n?.openDrawer===!1?{...r,terminalOpen:e.terminalOpen}:r}function em(e,t){let n=Op(e);if(!n.terminalIds.includes(t))return n;let r=n.terminalGroups.find(e=>e.terminalIds.includes(t))?.id??n.activeTerminalGroupId;return n.activeTerminalId===t&&n.activeTerminalGroupId===r?n:{...n,activeTerminalId:t,activeTerminalGroupId:r}}function tm(e,t){let n=Op(e);if(!n.terminalIds.includes(t))return n;let r=n.terminalIds.filter(e=>e!==t);if(r.length===0)return Ep();let i=n.terminalIds.indexOf(t),a=n.activeTerminalId===t?r[Math.min(i,r.length-1)]??r[0]??`default`:n.activeTerminalId,o=n.terminalGroups.map(e=>({...e,terminalIds:e.terminalIds.filter(e=>e!==t)})).filter(e=>e.terminalIds.length>0),s=o.find(e=>e.terminalIds.includes(a))?.id??o[0]?.id??_p(a);return Op({terminalOpen:n.terminalOpen,terminalHeight:n.terminalHeight,terminalIds:r,runningTerminalIds:n.runningTerminalIds.filter(e=>e!==t),activeTerminalId:a,terminalGroups:o,activeTerminalGroupId:s})}function nm(e,t,n){let r=Op(e);if(!r.terminalIds.includes(t)||n===r.runningTerminalIds.includes(t))return r;let i=new Set(r.runningTerminalIds);return n?i.add(t):i.delete(t),{...r,runningTerminalIds:[...i]}}function rm(e,t){return!t||t.threadId.length===0?Dp():e[Np(t)]??Dp()}function im(e,t,n){if(t.threadId.length===0)return e;let r=Np(t),i=rm(e,t),a=n(i);if(a===i)return e;if(jp(a)){if(e[r]===void 0)return e;let{[r]:t,...n}=e;return n}return{...e,[r]:a}}function am(e,t,n){return!t||t.threadId.length===0||n.trim().length===0?up:e[Pp(t,n)]??up}function om(e,t,n){return!t||t.threadId.length===0||n.trim().length===0?null:e[Fp(t,n)]??null}function sm(e,t){if(!t||t.threadId.length===0)return[];let n=`${Np(t)}\u0000`;return Object.entries(e).filter(([e])=>e.startsWith(n)).map(([,e])=>e)}function cm(e,t){return!t||t.threadId.length===0?null:e[Np(t)]??null}var lm=wa()(Wf(e=>{let t=(t,n)=>{e(e=>{let r=im(e.terminalStateByThreadKey,t,n);return r===e.terminalStateByThreadKey?e:{terminalStateByThreadKey:r}})};return{terminalStateByThreadKey:{},terminalLaunchContextByThreadKey:{},terminalEventEntriesByKey:{},terminalSessionSnapshotByKey:{},terminalStreamCursorByKey:{},terminalPreviewUrlByThreadKey:{},nextTerminalEventId:1,setTerminalOpen:(e,n)=>t(e,e=>Xp(e,n)),setTerminalHeight:(e,n)=>t(e,e=>Zp(e,n)),splitTerminal:(e,n)=>t(e,e=>Qp(e,n)),newTerminal:(e,n,r)=>t(e,e=>$p(e,n,r)),ensureTerminal:(e,n,r)=>t(e,e=>{let t=e;return e.terminalIds.includes(n)||(t=$p(t,n)),r?.active===!1&&(t={...t,activeTerminalId:e.activeTerminalId,activeTerminalGroupId:e.activeTerminalGroupId}),(r?.active??!0)&&(t=em(t,n)),r?.open&&(t=Xp(t,!0)),Op(t)}),setActiveTerminal:(e,n)=>t(e,e=>em(e,n)),closeTerminal:(e,n)=>t(e,e=>tm(e,n)),setTerminalLaunchContext:(t,n)=>e(e=>({terminalLaunchContextByThreadKey:{...e.terminalLaunchContextByThreadKey,[Np(t)]:n}})),clearTerminalLaunchContext:t=>e(e=>{let n=Np(t);if(!e.terminalLaunchContextByThreadKey[n])return e;let{[n]:r,...i}=e.terminalLaunchContextByThreadKey;return{terminalLaunchContextByThreadKey:i}}),setTerminalActivity:(e,n,r)=>t(e,e=>nm(e,n,r)),recordTerminalEvent:(t,n)=>e(e=>{let r=Fp(t,n.terminalId),i=Wp(n),a=n.type===`started`||n.type===`restarted`;if(Gp(e.terminalStreamCursorByKey[r],i,a))return e;let o=a&&i?Up(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,n):Hp(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,n),s=i?{...e.terminalStreamCursorByKey,[r]:i}:e.terminalStreamCursorByKey,c=Bp(e.terminalPreviewUrlByThreadKey,t,zp(n));return n.type!==`started`&&n.type!==`restarted`?{...o,terminalStreamCursorByKey:s,terminalPreviewUrlByThreadKey:c}:{...o,terminalStreamCursorByKey:s,terminalPreviewUrlByThreadKey:c,terminalSessionSnapshotByKey:{...e.terminalSessionSnapshotByKey,[Fp(t,n.terminalId)]:n.snapshot}}}),applyTerminalEvent:(t,n)=>e(e=>{let r=Np(t),i=Fp(t,n.terminalId),a=Wp(n),o=n.type===`started`||n.type===`restarted`;if(Gp(e.terminalStreamCursorByKey[i],a,o))return e;let s=e.terminalStateByThreadKey,c=e.terminalLaunchContextByThreadKey,l=e.terminalSessionSnapshotByKey,u=Bp(e.terminalPreviewUrlByThreadKey,t,zp(n));(n.type===`started`||n.type===`restarted`)&&(l={...l,[Fp(t,n.terminalId)]:n.snapshot},s=im(s,t,e=>{let t=e.activeTerminalId===n.terminalId,r=e;return e.terminalIds.includes(n.terminalId)||(r=$p(r,n.terminalId)),t?(r=em(r,n.terminalId),r=Xp(r,!0)):(r=em(r,e.activeTerminalId),r=Xp(r,e.terminalOpen)),Op(r)}),c={...c,[r]:Jp(c[r],n)});let d=ap(n);d!==null&&(s=im(s,t,e=>nm(e,n.terminalId,d)));let f=o&&a?Up(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,n):Hp(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,n),p=a?{...e.terminalStreamCursorByKey,[i]:a}:e.terminalStreamCursorByKey;return{terminalStateByThreadKey:s,terminalLaunchContextByThreadKey:c,terminalSessionSnapshotByKey:l,terminalStreamCursorByKey:p,terminalPreviewUrlByThreadKey:u,...f}}),setTerminalSessionSnapshot:(t,n)=>e(e=>({terminalSessionSnapshotByKey:{...e.terminalSessionSnapshotByKey,[Fp(t,n.terminalId)]:n},terminalPreviewUrlByThreadKey:Bp(e.terminalPreviewUrlByThreadKey,t,Rp(n))})),clearTerminalState:t=>e(e=>{let n=Np(t),r=im(e.terminalStateByThreadKey,t,()=>Ep()),i=e.terminalLaunchContextByThreadKey[n]!==void 0,a=e.terminalPreviewUrlByThreadKey[n]!==void 0,{[n]:o,...s}=e.terminalLaunchContextByThreadKey,{[n]:c,...l}=e.terminalPreviewUrlByThreadKey,u={...e.terminalEventEntriesByKey},d=!1;for(let e of Object.keys(u))e.startsWith(`${n}\u0000`)&&(delete u[e],d=!0);let f={...e.terminalSessionSnapshotByKey},p=!1;for(let e of Object.keys(f))e.startsWith(`${n}\u0000`)&&(delete f[e],p=!0);let m=Kp(e.terminalStreamCursorByKey,n);return r===e.terminalStateByThreadKey&&!i&&!a&&!d&&!p&&m===e.terminalStreamCursorByKey?e:{terminalStateByThreadKey:r,terminalLaunchContextByThreadKey:s,terminalPreviewUrlByThreadKey:l,terminalEventEntriesByKey:u,terminalSessionSnapshotByKey:f,terminalStreamCursorByKey:m}}),removeTerminalState:t=>e(e=>{let n=Np(t),r=e.terminalStateByThreadKey[n]!==void 0,i=e.terminalLaunchContextByThreadKey[n]!==void 0,a=e.terminalPreviewUrlByThreadKey[n]!==void 0,o={...e.terminalEventEntriesByKey},s=!1;for(let e of Object.keys(o))e.startsWith(`${n}\u0000`)&&(delete o[e],s=!0);let c={...e.terminalSessionSnapshotByKey},l=!1;for(let e of Object.keys(c))e.startsWith(`${n}\u0000`)&&(delete c[e],l=!0);let u=Kp(e.terminalStreamCursorByKey,n);if(!r&&!i&&!a&&!s&&!l&&u===e.terminalStreamCursorByKey)return e;let d={...e.terminalStateByThreadKey};delete d[n];let f={...e.terminalLaunchContextByThreadKey};delete f[n];let p={...e.terminalPreviewUrlByThreadKey};return delete p[n],{terminalStateByThreadKey:d,terminalLaunchContextByThreadKey:f,terminalPreviewUrlByThreadKey:p,terminalEventEntriesByKey:o,terminalSessionSnapshotByKey:c,terminalStreamCursorByKey:u}}),removeOrphanedTerminalStates:t=>e(e=>{let n=Object.keys(e.terminalStateByThreadKey).filter(e=>!t.has(e)),r=Object.keys(e.terminalLaunchContextByThreadKey).filter(e=>!t.has(e)),i=Object.keys(e.terminalPreviewUrlByThreadKey).filter(e=>!t.has(e)),a={...e.terminalEventEntriesByKey},o=!1;for(let e of Object.keys(a)){let[n]=e.split(`\0`);n&&!t.has(n)&&(delete a[e],o=!0)}let s={...e.terminalSessionSnapshotByKey},c=!1;for(let e of Object.keys(s)){let[n]=e.split(`\0`);n&&!t.has(n)&&(delete s[e],c=!0)}let l={...e.terminalStreamCursorByKey},u=!1;for(let e of Object.keys(l)){let[n]=e.split(`\0`);n&&!t.has(n)&&(delete l[e],u=!0)}if(n.length===0&&r.length===0&&i.length===0&&!o&&!c&&!u)return e;let d={...e.terminalStateByThreadKey};for(let e of n)delete d[e];let f={...e.terminalLaunchContextByThreadKey};for(let e of r)delete f[e];let p={...e.terminalPreviewUrlByThreadKey};for(let e of i)delete p[e];return{terminalStateByThreadKey:d,terminalLaunchContextByThreadKey:f,terminalPreviewUrlByThreadKey:p,terminalEventEntriesByKey:a,terminalSessionSnapshotByKey:s,terminalStreamCursorByKey:l}})}},{name:lp,version:4,storage:Hf(mp),migrate:pp,partialize:e=>({terminalStateByThreadKey:Ap(e.terminalStateByThreadKey),terminalPreviewUrlByThreadKey:e.terminalPreviewUrlByThreadKey})}));function um(e){return!!(e.prompt.trim()||e.images.length||e.terminalContexts.length||e.persistedAttachments.length||e.stagedSubmission)}function dm(e,t,n){let r=Ln(t),i=Ln(n);if(r===i)return e;let a=e[r];if(!a)return e;let o=e[i];if(o&&um(o)&&!fm(a,o))return null;let s={...e,[i]:{...a,...wm(a,o)}};return delete s[r],s}function fm(e,t){let n=e.stagedSubmission;return!n||!pm(n)||!mm(e,n)||!hm(n,t.stagedSubmission)?!1:gm(e,t)}function pm(e){return!!e.commandId&&!!e.messageId}function mm(e,t){return[e.prompt===t.prompt,bm(e.persistedAttachments,t.attachments),bm(e.terminalContexts,t.terminalContexts)].every(Boolean)}function hm(e,t){return!t||_m(e,t)}function gm(e,t){return[e.prompt===t.prompt,e.lastGeneratedPullRequestPrompt===t.lastGeneratedPullRequestPrompt,Sm(e.images,t.images),xm(e.nonPersistedImageIds,t.nonPersistedImageIds),e.nonPersistedImageIds.length===0,Sm(e.persistedAttachments,t.persistedAttachments),Sm(e.terminalContexts,t.terminalContexts),Cm(e.modelSelectionByProvider,t.modelSelectionByProvider),e.activeProvider===t.activeProvider,e.runtimeMode===t.runtimeMode,e.interactionMode===t.interactionMode].every(Boolean)}function _m(e,t){return[e.commandId===t.commandId&&e.messageId===t.messageId,e.prompt===t.prompt,bm(e.attachments,t.attachments),bm(e.terminalContexts,t.terminalContexts),vm(e.modelSelection,t.modelSelection),vm(e.runtimeMode,t.runtimeMode),vm(e.interactionMode,t.interactionMode),ym(e.executionIntent,t.executionIntent)].every(Boolean)}function vm(e,t){return e===void 0||t===void 0||JSON.stringify(e)===JSON.stringify(t)}function ym(e,t){return!e||!t||e.runtimeId===t.runtimeId}function bm(e,t){return e.length===t.length&&e.every((e,n)=>e.id===t[n]?.id)}function xm(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function Sm(e,t){return e.length===t.length&&e.every((e,n)=>JSON.stringify(e)===JSON.stringify(t[n]))}function Cm(e,t){let n=Object.keys(e).toSorted();return xm(n,Object.keys(t).toSorted())?n.every(n=>JSON.stringify(e[n])===JSON.stringify(t[n])):!1}function wm(e,t){let n=t??e,r=e.stagedSubmission?e:n,i=e.stagedSubmission?n:e;return{modelSelectionByProvider:{...i.modelSelectionByProvider,...r.modelSelectionByProvider},activeProvider:r.activeProvider??i.activeProvider,runtimeMode:r.runtimeMode??i.runtimeMode,interactionMode:r.interactionMode??i.interactionMode}}var Tm=/\n*<terminal_context>\n([\s\S]*?)\n<\/terminal_context>\s*$/,Em=/^\s*<cmmd_context>\n?([\s\S]*?)\n?<\/cmmd_context>\s*/;function Dm(e){return e.replace(/\r\n/g,`
|
|
7
|
+
`)}}}var Ul=(e=`/api/workspace/readiness`)=>{if(typeof fetch>`u`)return{close:()=>{}};let t=typeof e==`string`?{url:e}:e,n=!1,r=new AbortController;return fetch(t.url,{credentials:t.bearerToken?`omit`:`include`,signal:r.signal,...t.bearerToken?{headers:{Authorization:`Bearer ${t.bearerToken}`}}:{}}).then(e=>{if(e.ok)return Hl(e,t.environmentId,r.signal)}).catch(()=>{}),{close:()=>{n||(n=!0,r.abort())}}},Wl=6e4;function Gl(e){let t=new URL(e.target.httpBaseUrl);return t.pathname=`${t.pathname.endsWith(`/`)?t.pathname.slice(0,-1):t.pathname}/api/workspace/readiness`,t.search=``,t.hash=``,t.toString()}function Kl(e){let t=new Set,n=null,r=!1,i=!1;return{hasWaiters:()=>t.size>0,wait:()=>{if(r)return Promise.reject(n);if(i)return Promise.resolve();let a=null,o=null,s=new Promise((e,n)=>{o={resolve:e,reject:n},t.add(o)}),c=new Promise((t,n)=>{a=globalThis.setTimeout(()=>{n(Error(`Timed out while waiting for ${e.label} (${e.environmentId}) to stream its shell snapshot.`))},e.timeoutMs)});return Promise.race([s,c]).finally(()=>{a!==null&&globalThis.clearTimeout(a),o!==null&&t.delete(o)})},resolve:()=>{r=!1,n=null,i=!0;let e=[...t];t.clear();for(let t of e)t.resolve()},reject:e=>{r=!0,n=e,i=!1;let a=[...t];t.clear();for(let t of a)t.reject(e)},reset:()=>{r=!1,n=null,i=!1}}}function ql(e){let t=e.knownEnvironment.environmentId;if(!t)throw Error(`Known environment ${e.knownEnvironment.label} is missing its environmentId.`);let n=!1,r=!1,i=null,a=null,o=Kl({environmentId:t,label:e.knownEnvironment.label,timeoutMs:e.bootstrapTimeoutMs??Wl}),s=e.readiness?(e.readiness.openStream??Ul)({url:Gl(e.knownEnvironment),environmentId:t,...e.readiness.bearerToken?{bearerToken:e.readiness.bearerToken}:{}}):null,c=t=>{if(!r){r=!0;let n=Error(t);_(),e.client.dispose(),e.onIdentityMismatch?.(n)}return!1},l=(n,r)=>{if(e.tolerateReportedEnvironmentIdentity)return a===null?(a=n,!0):a===n||c(`Environment connection ${t} reported a changed runtime identity (${a} -> ${n}) via ${r}.`);let i=e.resolveEnvironmentId?.()??t;return i===n||c(`Environment connection ${i} changed identity to ${n} via ${r}.`)},u=()=>e.resolveEnvironmentId?.()??t,d=e.client.server.subscribeLifecycle(t=>{t.type===`welcome`&&l(t.payload.environment.environmentId,`server lifecycle welcome`)&&e.onWelcome?.(t.payload,u())}),f=e.client.server.subscribeConfig(t=>{if(t.type===`snapshot`){if(!l(t.config.environment.environmentId,`server config snapshot`))return;i=t.config,e.onConfigSnapshot?.(t.config);return}if(t.type!==`providerStatuses`||!i)return;let n={...i,providers:t.payload.providers};i=n,e.onConfigSnapshot?.(n)}),p=e.client.orchestration.subscribeShell(t=>{if(t.kind===`snapshot`){e.syncShellSnapshot(t.snapshot,u()),o.resolve();return}e.applyShellEvent(t,u())},{onResubscribe:()=>{n||o.reset()},onError:t=>{if(!n){if(o.hasWaiters()){o.reject(t);return}e.onShellSubscriptionError?.(t,u())}}}),m=e.client.terminal.onEvent(t=>{e.applyTerminalEvent(t,u())}),h=e.client.browser?.onEvent({},t=>{e.applyBrowserEvent(t,u())}),g=e.client.server.subscribeWorkspaceReadiness(e=>{n||D(async()=>{let{setWorkspaceReadinessPhaseForEnvironment:e}=await import(`./workspaceReadinessAtom-D6bgTvKb.js`).then(e=>e.r);return{setWorkspaceReadinessPhaseForEnvironment:e}},__vite__mapDeps([0,1,2,3])).then(({setWorkspaceReadinessPhaseForEnvironment:t})=>{n||t(u(),e)})}),_=()=>{n||(n=!0,e.onDispose?.(),s?.close(),p(),m(),h?.(),d(),f(),g())};return{kind:e.kind,environmentId:t,knownEnvironment:e.knownEnvironment,client:e.client,ensureBootstrapped:()=>o.wait(),reconnect:async()=>{o.reset();try{await e.client.reconnect(),await e.refreshMetadata?.(),await o.wait()}catch(e){throw o.reject(e),e}},...e.ensureProviderAuthority?{ensureProviderAuthority:e.ensureProviderAuthority}:{},dispose:async()=>{_(),await e.client.dispose()}}}var Jl=it(`effect/http/FetchHttpClient/Fetch`,{defaultValue:()=>globalThis.fetch}),Yl=class extends Tt()(`effect/http/FetchHttpClient/RequestInit`){},Xl=bc(ct(hc((e,t,n,r)=>{let i=r.getRef(Jl),a=r.context.mapUnsafe.get(Yl.key)??{},o=a.headers?Mr(Xr(a.headers),e.headers):e.headers,s=r=>nt(ot({try:()=>i(t,{...a,method:e.method,headers:o,body:r,duplex:e.body._tag===`Stream`?`half`:void 0,signal:n}),catch:t=>new Ti({reason:new ci({request:e,cause:t})})}),t=>Vi(e,t));switch(e.body._tag){case`Raw`:case`Uint8Array`:return s(e.body.body);case`FormData`:return s(e.body.formData);case`Stream`:return Mt($t(e.body.stream),s)}return s(void 0)}))),Zl=Jt.pipe(h,Qt(e=>{if(Di(e)&&e.reason._tag===`StatusCodeError`&&e.reason.response.status===429){let t=Ee(e.reason.response.headers[`retry-after`]).pipe(en(Ws),f(()=>5));return ct(ne(t))}return ct(ne(1))})),Ql=$e(function*(e){let t=yield*Lt(),n=ut(t,Hs),r=ut(t,Ce),a=ze(t),o=u(we(e.exportInterval),Ue),s,c=fc(ut(t,uc)).pipe(dc(xe(vc,!1)),gc({schedule:Zl,times:3})),d=ti({"user-agent":`effect-opentelemetry-${e.label}/0.0.0`});e.headers&&(d=Mr(Xr(e.headers),d));let f=Zs(e.url,{headers:d}),p=[],m=Bt(()=>{if(s!==void 0&&n.currentTimeMillisUnsafe()<s)return ft;s!==void 0&&(s=void 0);let t=p;if(e.maxBatchSize!==`disabled`){if(p.length===0)return ft;p=[]}return c.execute(sc(f,e.body(t))).pipe(Fe,et(!1))}).pipe(Be(e=>s===void 0?(s=n.currentTimeMillisUnsafe()+6e4,p=[],Ze(`Disabling exporter for 60 seconds`,e)):ft),l({package:`@effect/opentelemetry`,module:e.label}));return yield*rn(r,m.pipe(It,ht,Et(e.shutdownTimeout))),yield*i(o).pipe(nn(m),at,Gt(r)),{push(t){s===void 0&&(p.push(t),e.maxBatchSize!==`disabled`&&p.length>=e.maxBatchSize&&le(a(m),r))}}}),$l=e=>{let t=e.attributes?nu(Object.entries(e.attributes)):[];return t.push({key:`service.name`,value:{stringValue:e.serviceName}}),e.serviceVersion&&t.push({key:`service.version`,value:{stringValue:e.serviceVersion}}),{attributes:t,droppedAttributesCount:0}},eu=$e(function*(e){let t={...yield*tl(Ri(nl(E,E)),`OTEL_RESOURCE_ATTRIBUTES`),...e?.attributes},n=e?.serviceName??t[`service.name`]??(yield*tl(E,`OTEL_SERVICE_NAME`));delete t[`service.name`];let r=e?.serviceVersion??t[`service.version`]??(yield*tl(Ri(E),`OTEL_SERVICE_VERSION`));return delete t[`service.version`],$l({serviceName:n,serviceVersion:r,attributes:t})},c),tu=e=>{let t=e.attributes.find(e=>e.key===`service.name`);if(!t||!t.value.stringValue)throw Error(`Resource does not contain a service name`);return t.value.stringValue},nu=e=>{let t=[];for(let[n,r]of e)t.push({key:n,value:ru(r)});return t},ru=e=>{if(Array.isArray(e))return{arrayValue:{values:e.map(ru)}};switch(typeof e){case`string`:return{stringValue:e};case`bigint`:return{intValue:Number(e)};case`number`:return Number.isInteger(e)?{intValue:e}:{doubleValue:e};case`boolean`:return{boolValue:e};default:return{stringValue:At(e)}}},iu=class extends Tt()(`effect/observability/OtlpSerialization`){},au=de(iu,{traces:e=>ai(e),metrics:e=>ai(e),logs:e=>ai(e)}),ou=$e(function*(e){let t=yield*eu(e.resource),n=yield*iu,r={name:tu(t)},i=yield*Ql({label:`OtlpTracer`,url:e.url,headers:e.headers,exportInterval:e.exportInterval??ne(5),maxBatchSize:e.maxBatchSize??1e3,body(e){let i={resourceSpans:[{resource:t,scopeSpans:[{scope:r,spans:e}]}]};return n.traces(i)},shutdownTimeout:e.shutdownTimeout??ne(3)});function a(e){e.sampled&&i.push(uu(e))}return he({span(e){return cu({...e,status:{_tag:`Started`,startTime:e.startTime},attributes:new Map,export:a})},context:e.context?function(t,n){return n.currentSpan===void 0?t[`~effect/Effect/evaluate`](n):e.context(t,n.currentSpan)}:void 0})}),su={_tag:`Span`,end(e,t){this.status={_tag:`Ended`,startTime:this.status.startTime,endTime:e,exit:t},this.export(this)},attribute(e,t){this.attributes.set(e,t)},event(e,t,n){this.events.push([e,t,n])},addLinks(e){this.links.push(...e)}},cu=e=>{let t=Object.assign(Object.create(su),e);return t.traceId=St(t.parent)?t.parent.value.traceId:lu(32),t.spanId=lu(16),t.events=[],t},lu=e=>{let t=``;for(let n=0;n<e;n++)t+=`0123456789abcdef`[Math.floor(Math.random()*16)];return t},uu=e=>{let t=e.status,n=nu(e.attributes.entries()),r=e.events.map(([e,t,n])=>({name:e,timeUnixNano:String(t),attributes:n?nu(Object.entries(n)):[],droppedAttributesCount:0})),i;if(t.exit._tag===`Success`)i=pu;else if(mt(t.exit.cause))i={code:du.Ok,message:`Interrupted`},n.push({key:`span.label`,value:{stringValue:`⚠︎ Interrupted`}},{key:`status.interrupted`,value:{boolValue:!0}});else{let e=Yt(t.exit.cause);if(i={code:du.Error},e.length>0){i.message=e[0].message;for(let n of e)r.push({name:`exception`,timeUnixNano:String(t.endTime),droppedAttributesCount:0,attributes:[{key:`exception.type`,value:{stringValue:n.name}},{key:`exception.message`,value:{stringValue:n.message}},{key:`exception.stacktrace`,value:{stringValue:n.stack??`No stack trace available`}}]})}}return{traceId:e.traceId,spanId:e.spanId,parentSpanId:ge(e.parent,{onNone:()=>void 0,onSome:e=>e.spanId}),name:e.name,kind:fu[e.kind],startTimeUnixNano:String(t.startTime),endTimeUnixNano:String(t.endTime),attributes:n,droppedAttributesCount:0,events:r,droppedEventsCount:0,status:i,links:e.links.map(e=>({traceId:e.span.traceId,spanId:e.span.spanId,attributes:nu(Object.entries(e.attributes)),droppedAttributesCount:0})),droppedLinksCount:0}},du={Unset:0,Ok:1,Error:2},fu={unspecified:0,internal:1,server:2,client:3,producer:4,consumer:5},pu={code:du.Ok},mu=1e4,hu={serviceName:`forge-web`,attributes:{"service.runtime":`forge-web`,"service.mode":bn?`electron`:`browser`,"service.version":Cn}},gu=be(Xl,au,de(_c,()=>!0)),_u=null,vu=null,yu=null,bu=null,xu=0,Su=Promise.resolve(),Cu=de(bt,he({span(e){return _u?.span(e)??new s(e)}}));function wu(e={}){return e.exportIntervalMs===void 0&&bu!==null||(Su=Su.finally(()=>Tu(e))),Su}async function Tu(e){let t=Ji(`/api/observability/v1/traces`),n=ra()?.bearerToken,r=Math.max(10,e.exportIntervalMs??mu),i=`${t}|${r}|${n?`bearer`:`cookie`}`;if(bu===i&&_u!==null)return;bu=i;let a=++xu,o=vu,s=yu;_u=null,vu=null,yu=null,await Eu(o,s);let c=Oc(gu),l=c.runSync(Me());try{let e=await c.runPromise(b(l)(ou({url:t,...n?{headers:{Authorization:`Bearer ${n}`}}:{},exportInterval:`${r} millis`,resource:hu})));if(a!==xu){await Eu(c,l);return}_u=e,vu=c,yu=l}catch(e){await Eu(c,l),a===xu&&console.warn(`Failed to configure client tracing exporter`,{error:Du(e),otlpTracesUrl:t})}}async function Eu(e,t){e!==null&&t!==null&&await e.runPromise(Le(t,Pt)).catch(()=>void 0).finally(()=>{e.dispose()})}function Du(e){return e instanceof Error&&e.message.trim().length>0?e.message:String(e)}var Ou=15e3,ku=new Map,Au=un([]).pipe(ln,sn(`slow-rpc-ack-requests`));function ju(e){cn.set(Au,[...e])}function Mu(){return cn.get(Au)}var Nu=`global`;function Pu(e){return!(e.split(`.`).at(-1)??e).startsWith(`subscribe`)}function Fu(e,t,n=Nu){if(!Pu(t))return;Bu(e,n),Hu();let r=Date.now(),i={clientId:n,requestId:e,startedAt:new Date(r).toISOString(),startedAtMs:r,tag:t,thresholdMs:Ou},a=zu(n,e),o=setTimeout(()=>{ku.delete(a),Vu(i)},Ou);ku.set(a,{request:i,timeoutId:o})}function Iu(e,t=Nu){Bu(e,t);let n=Mu();n.some(n=>n.clientId===t&&n.requestId===e)&&ju(n.filter(n=>n.clientId!==t||n.requestId!==e))}function Lu(e){for(let[t,n]of ku)n.request.clientId===e&&(clearTimeout(n.timeoutId),ku.delete(t));ju(Mu().filter(t=>t.clientId!==e))}function Ru(){for(let e of ku.values())clearTimeout(e.timeoutId);ku.clear(),ju([])}function zu(e,t){return`${e}:${t}`}function Bu(e,t){let n=zu(t,e),r=ku.get(n);r&&(clearTimeout(r.timeoutId),ku.delete(n))}function Vu(e){let t=[...Mu(),e];if(t.length<=256){ju(t);return}ju(t.slice(-256))}function Hu(){for(;ku.size>=256;){let e=ku.keys().next().value;if(e===void 0)return;let t=ku.get(e);if(!t)return;Bu(t.request.requestId,t.request.clientId)}}function Uu(){return ma(Au)}var Wu=ia(ui),Gu=1;function Ku(e){return e instanceof Error&&e.message.trim().length>0?e.message:String(e)}function qu(e){let t=new URL(e);if(t.protocol!==`ws:`&&t.protocol!==`wss:`)throw Error(`Unsupported websocket transport URL protocol: ${t.protocol}`);return t.pathname=`/ws`,t.toString()}function Ju(){return{onAttempt:ya,onOpen:Ki,onError:e=>{qi(e)},onClose:e=>{oa(e)},trackGlobalConnection:!0}}function Yu(e){let t=Ju(),n=e?.trackGlobalConnection??!0;return{onAttempt:r=>{n&&t.onAttempt(r),e?.onAttempt?.(r)},onOpen:()=>{n&&t.onOpen(),e?.onOpen?.()},onError:r=>{n&&t.onError(r),e?.onError?.(r)},onClose:r=>{n&&t.onClose(r),e?.onClose?.(r)},trackGlobalConnection:n}}function Xu(e,t){let n=Gu;Gu+=1;let r=Yu(t),i=typeof e==`function`?xt(()=>e()).pipe(nt(e=>qu(e)),Ut(e=>gt(()=>{r.onError(Ku(e))})),c):qu(e),a=de(va,(e,t)=>{r.onAttempt(e);let n=new globalThis.WebSocket(e,t);return n.addEventListener(`open`,()=>{r.onOpen()},{once:!0}),n.addEventListener(`error`,()=>{r.onError(`Unable to connect to the Forge server WebSocket.`)},{once:!0}),n.addEventListener(`close`,e=>{r.onClose({code:e.code,reason:e.reason})},{once:!0}),n}),o=ha(i).pipe(y(a)),s=Qt(p(fa),e=>ct(Re(Gi(e)??0)));return yt(da,nt(Hi({retryPolicy:s,retryTransientErrors:!0}),e=>({...e,run:(t,r)=>{let i=`${n}:${String(t)}`;return e.run(t,e=>(e._tag===`Chunk`||e._tag===`Exit`?Iu(e.requestId,i):(e._tag===`ClientProtocolError`||e._tag===`Defect`)&&Lu(i),r(e))).pipe(Je(gt(()=>{Lu(i)})))},send:(t,r,i)=>{let a=`${n}:${String(t)}`;return r._tag===`Request`&&Fu(r.id,r.tag,a),e.send(t,r,i)}}))).pipe(y(be(o,pa)))}var Zu=/^all fibers interrupted without error$/i;function Qu(e){return On(e)||Zu.test(e.trim())}var $u=Re(250),ed=()=>void 0,td=class extends Error{name=`WsRequestTimeoutError`;timeoutMs;constructor(e){let t=Ne(we(e));super(`WebSocket RPC request timed out after ${t}ms.`),this.timeoutMs=t}},nd=new Set([`OrchestrationGetSnapshotError`]);function rd(e){if(typeof e!=`object`||!e)return!1;let t=e._tag;return typeof t==`string`&&nd.has(t)}function id(e){let t=e instanceof Error?e.message.trim():``;return t.length>0?t:typeof e==`object`&&e?ad(e):String(e)}function ad(e){try{return JSON.stringify(e)}catch{let t=e;return[typeof t._tag==`string`?t._tag:void 0,typeof t.message==`string`?t.message:void 0].filter(Boolean).join(`: `)||Object.prototype.toString.call(e)}}var od=4e3,sd=1e4,cd=500,ld=class{url;lifecycleHandlers;disposed=!1;hasReportedTransportDisconnect=!1;reconnectChain=Promise.resolve();session;heartbeatTimer=null;heartbeatInFlight=!1;protocol;timing;constructor(e,t,n,r){this.url=e,this.lifecycleHandlers=t,this.protocol=n??null,this.timing={heartbeatIntervalMs:r?.heartbeatIntervalMs??od,heartbeatTimeoutMs:r?.heartbeatTimeoutMs??sd,sessionCloseGraceMs:r?.sessionCloseGraceMs??cd},this.session=this.createSession(),this.startHeartbeat()}startHeartbeat(){this.heartbeatTimer===null&&(this.heartbeatTimer=setInterval(()=>{if(this.disposed||this.heartbeatInFlight)return;this.heartbeatInFlight=!0;let e=this.session;this.request(e=>e[T.serverHeartbeat]({}),{timeout:this.timing.heartbeatTimeoutMs}).catch(async()=>{this.disposed||e!==this.session||await this.reconnect()}).finally(()=>{this.heartbeatInFlight=!1})},this.timing.heartbeatIntervalMs))}async request(e,t){if(this.disposed)throw Error(`Transport disposed`);let n=this.session,i=await n.clientPromise,a=Bt(()=>e(i)),o=t?.timeout,s=o===void 0?a:a.pipe(Wt({duration:o,orElse:()=>r(new td(o))}));return await n.runtime.runPromise(s,{signal:t?.signal})}async requestStream(e,t,n){if(this.disposed)throw Error(`Transport disposed`);let r=this.session,i=this.runStreamOnSession(r,e,t,()=>!0,()=>void 0),a=()=>i.cancel();n?.signal?.aborted&&a(),n?.signal?.addEventListener(`abort`,a,{once:!0});try{await i.completed}catch(e){if(n?.signal?.aborted){let e=Error(`RPC stream request was cancelled.`);throw e.name=`AbortError`,e}throw e}finally{n?.signal?.removeEventListener(`abort`,a)}}subscribe(e,t,n){if(this.disposed)return()=>void 0;let r={active:!0,hasReceivedValue:!1,cancelCurrentStream:ed},i=Ne(we(n?.retryDelay??$u));return this.runSubscriptionLoop(e,t,n,r,i),()=>{r.active=!1,r.cancelCurrentStream()}}async runSubscriptionLoop(e,t,n,r,i){for(;r.active&&!this.disposed;){let a=this.session;try{this.notifyResubscribe(r,n);let i=this.startSubscriptionStream(a,e,t,r);r.cancelCurrentStream=i.cancel,await i.completed,r.cancelCurrentStream=ed}catch(e){if(r.cancelCurrentStream=ed,!await this.handleSubscriptionFailure(e,a,r,n,i))return}}}notifyResubscribe(e,t){if(e.hasReceivedValue)try{t?.onResubscribe?.()}catch{}}startSubscriptionStream(e,t,n,r){return this.runStreamOnSession(e,t,n,()=>r.active,()=>{this.hasReportedTransportDisconnect=!1,r.hasReceivedValue=!0})}async handleSubscriptionFailure(e,t,n,r,i){if(!n.active||this.disposed)return!1;if(t!==this.session)return!0;let a=id(e);return Qu(a)?(this.hasReportedTransportDisconnect||console.warn(`WebSocket RPC subscription disconnected`,{error:a}),this.hasReportedTransportDisconnect=!0,await ud(i),!0):(this.reportNonTransportSubscriptionError(e,r),!1)}reportNonTransportSubscriptionError(e,t){rd(e)||Vn(e,{route:`ws-subscribe`,reason:`non-transport-error`}),t?.onError?.(e)}async reconnect(){if(this.disposed)throw Error(`Transport disposed`);let e=this.reconnectChain.then(async()=>{if(this.disposed)throw Error(`Transport disposed`);let e=this.session;this.session=this.createSession(),await this.closeSession(e)});this.reconnectChain=e.catch(e=>{Vn(e,{route:`ws-reconnect`})}),await e}async dispose(){this.disposed||(this.disposed=!0,this.heartbeatTimer!==null&&this.heartbeatTimer!==void 0&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null),await this.closeSession(this.session))}async closeSession(e){let t=e.runtime.runPromise(Le(e.clientScope,Pt)),n=!1,r=null,i=new Promise(e=>{r=setTimeout(()=>{n=!0,e()},this.timing.sessionCloseGraceMs)});try{await Promise.race([t,i])}finally{r!==null&&clearTimeout(r),n&&(console.warn(`WebSocket session close exceeded its grace period; forcing disposal`,{graceMs:this.timing.sessionCloseGraceMs}),t.catch(()=>void 0)),await e.runtime.dispose()}}createSession(){let e=this.protocol??{layer:Xu(this.url,this.lifecycleHandlers),makeClient:Wu},t=Oc(be(e.layer,Cu)),n=t.runSync(Me());return{runtime:t,clientScope:n,clientPromise:t.runPromise(b(n)(e.makeClient))}}runStreamOnSession(e,t,n,r,i){let a,o,s=new Promise((e,t)=>{a=e,o=t});return{cancel:e.runtime.runCallback(xt(()=>e.clientPromise).pipe(Mt(e=>Dt(t(e),e=>gt(()=>{if(r()){i();try{n(e)}catch{}}})))),{onExit:e=>{if(Vt(e)){a();return}o(ke(e.cause))}}),completed:s}}};function ud(e){return new Promise(t=>{setTimeout(t,e)})}var dd=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,fd=/^[A-Za-z0-9_-]+$/;function pd(e){let t=``;for(let n=0;n<e.byteLength;n+=3){let r=e[n]??0,i=e[n+1]??0,a=e[n+2]??0,o=r<<16|i<<8|a;t+=dd[o>>>18&63],t+=dd[o>>>12&63],n+1<e.byteLength&&(t+=dd[o>>>6&63]),n+2<e.byteLength&&(t+=dd[o&63])}return t.replaceAll(`+`,`-`).replaceAll(`/`,`_`)}function md(e){if(e.length===0||!fd.test(e))throw Error(`Bulk transfer chunk is not valid base64url data.`);let t=e.replaceAll(`-`,`+`).replaceAll(`_`,`/`),n=Math.floor(t.length*6/8),r=new Uint8Array(n),i=0,a=0,o=0;for(let e of t){let t=dd.indexOf(e);if(t<0)throw Error(`Bulk transfer chunk is not valid base64url data.`);i=i<<6|t,a+=6,a>=8&&(a-=8,r[o]=i>>>a&255,o+=1)}return r}async function hd(e){let t=new Uint8Array(e.byteLength);t.set(e);let n=await crypto.subtle.digest(`SHA-256`,t.buffer);return Array.from(new Uint8Array(n),e=>e.toString(16).padStart(2,`0`)).join(``)}async function gd(e,t){let n=t?.chunkBytes??262144;if(!Number.isSafeInteger(n)||n<1||n>262144)throw Error(`Bulk transfer chunk size must be between 1 and ${$r}.`);let r=t?.transferId??crypto.randomUUID().replaceAll(`-`,`_`),i=[];for(let t=0;t<e.byteLength;t+=n){let a=e.slice(t,Math.min(t+n,e.byteLength));i.push({kind:`chunk`,transferId:r,offset:t,bytes:a.byteLength,data:pd(a),sha256:await hd(a)})}return{totalBytes:e.byteLength,sha256:await hd(e),chunks:i}}async function _d(e){let t=md(e.data);if(t.byteLength!==e.bytes)throw Error(`Bulk transfer chunk byte count mismatch at offset ${e.offset}: expected ${e.bytes}, received ${t.byteLength}.`);if(await hd(t)!==e.sha256)throw Error(`Bulk transfer chunk integrity mismatch at offset ${e.offset}.`);return t}async function vd(e){let t=new Map,n=[],r=0;for(let i of e.chunks){let e=t.get(i.offset);if(e!==void 0){if(e.bytes!==i.bytes||e.sha256!==i.sha256||e.data!==i.data)throw Error(`Bulk transfer has a conflicting duplicate chunk at offset ${i.offset}.`);continue}if(i.offset!==r)throw Error(`Bulk transfer chunk offset mismatch: expected ${r}, received ${i.offset}.`);let a=await _d(i);t.set(i.offset,i),n.push({chunk:i,bytes:a}),r+=a.byteLength}if(r!==e.totalBytes)throw Error(`Bulk transfer total byte count mismatch: expected ${e.totalBytes}, received ${r}.`);let i=new Uint8Array(e.totalBytes);for(let e of n)i.set(e.bytes,e.chunk.offset);if(await hd(i)!==e.sha256)throw Error(`Bulk transfer payload integrity mismatch.`);return i}var yd=`forge`,bd=RegExp(`^(?:${yd}|t3code)\\/(?:[0-9a-f]{8}|[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})$`);function xd(){return`${yd}/${ce(xa).replace(/-/g,``).slice(0,8).toLowerCase()}`}function Sd(e){return bd.test(e.trim().toLowerCase())}function Cd(e){let t=e.trim().replace(/\/+$/g,``).replace(/\.git$/i,``).toLowerCase();if(/^(?:ssh|https?|git):\/\//i.test(t))try{let e=new URL(t),n=e.pathname.split(`/`).filter(e=>e.length>0).join(`/`);if(e.hostname&&n.includes(`/`))return`${e.hostname}/${n}`}catch{return t}let n=/^git@([^:/\s]+)[:/]([^/\s]+(?:\/[^/\s]+)+)$/i.exec(t);return n?.[1]&&n[2]?`${n[1]}/${n[2]}`:t}function wd(e){let t=e?.trim()??``;if(t.length===0)return null;let n=/^(?:git@github\.com:|ssh:\/\/git@github\.com\/|https:\/\/github\.com\/|git:\/\/github\.com\/)([^/\s]+\/[^/\s]+?)(?:\.git)?\/?$/i.exec(t)?.[1]?.trim()??``;return n.length>0?n:null}function Td(e){let t=e.trim();if(t.length===0)return null;if(t.startsWith(`git@`)){let e=t.slice(4),n=e.search(/[:/]/);return n<=0?null:e.slice(0,n).toLowerCase()}try{return new URL(t).hostname.toLowerCase()}catch{return null}}function Ed(e){return`https://${e}`}function Dd(e){return e===`github.com`||e.includes(`github`)}function Od(e){return e===`gitlab.com`||e.includes(`gitlab`)}function kd(e){return e===`bitbucket.org`}function Ad(e){return e===`dev.azure.com`||e===`ssh.dev.azure.com`||e===`vs-ssh.visualstudio.com`||e.endsWith(`.visualstudio.com`)}function jd(e){let t=Td(e);if(!t)return null;let n=Cd(e),r=`${t}/`;if(!n.startsWith(r))return null;let i=n.slice(r.length);return i.includes(`/`)?Dd(t)?{kind:`github`,name:t===`github.com`?`GitHub`:`GitHub Self-Hosted`,host:t,repositoryPath:i,baseUrl:Ed(t)}:Od(t)?{kind:`gitlab`,name:t===`gitlab.com`?`GitLab`:`GitLab Self-Hosted`,host:t,repositoryPath:i,baseUrl:Ed(t)}:kd(t)?{kind:`bitbucket`,name:`Bitbucket Cloud`,host:t,repositoryPath:i,baseUrl:Ed(t)}:Ad(t)?{kind:`azure-devops`,name:`Azure DevOps`,host:t,repositoryPath:i,baseUrl:Ed(t)}:{kind:`unknown`,name:t,host:t,repositoryPath:i,baseUrl:Ed(t)}:null}var Md={hasUpstream:!1,aheadCount:0,behindCount:0,pr:null,defaultBranch:null,diffVsBase:null};function Nd(e,t){return{...e,...t??Md}}function Pd(e){return{hasUpstream:e.hasUpstream,aheadCount:e.aheadCount,behindCount:e.behindCount,pr:e.pr,defaultBranch:e.defaultBranch,diffVsBase:e.diffVsBase}}function Fd(e){return{isRepo:e.isRepo,...e.hostingProvider?{hostingProvider:e.hostingProvider}:{},hasOriginRemote:e.hasOriginRemote,isDefaultBranch:e.isDefaultBranch,branch:e.branch,hasWorkingTreeChanges:e.hasWorkingTreeChanges,workingTree:e.workingTree}}function Id(e,t){switch(t._tag){case`snapshot`:return Nd(t.local,t.remote);case`localUpdated`:return Nd(t.local,e?Pd(e):null);case`remoteUpdated`:return Nd(e===null?{isRepo:!0,hasOriginRemote:!1,isDefaultBranch:!1,branch:null,hasWorkingTreeChanges:!1,workingTree:{files:[],insertions:0,deletions:0}}:Fd(e),t.remote)}}var Ld=262144,Rd=250;function zd(e){if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch{return String(e)}}function Bd(e){return new Promise(t=>setTimeout(t,e))}function Vd(e){let t=crypto.randomUUID(),n=Xi({controllerId:t,maxPendingWriteBytes:Ld}),r=!1,i=e=>{if(!e.sessionEpoch)throw Error(`Connected Forge runtime does not support epoch-fenced terminal controls.`);n.register({threadId:e.threadId,terminalId:e.terminalId,sessionEpoch:e.sessionEpoch})},a=async e=>{for(;!r;)try{return await e()}catch(e){if(!On(zd(e)))throw e;await Bd(Rd)}throw Error(`Terminal control client was disposed before acknowledgement.`)};return{terminal:{open:async t=>{let n=await e.request(e=>e[T.terminalOpen]({...t,terminalId:t.terminalId??`default`}));return i(n),n},write:async t=>{let r=t.terminalId??`default`;await n.enqueue({threadId:t.threadId,terminalId:r,writeBytes:new TextEncoder().encode(t.data).byteLength,execute:n=>a(()=>e.request(e=>e[T.terminalWrite]({...t,terminalId:r,...n})))})},resize:async t=>{let r=t.terminalId??`default`;await n.enqueue({threadId:t.threadId,terminalId:r,execute:n=>a(()=>e.request(e=>e[T.terminalResize]({...t,terminalId:r,...n})))})},signal:async t=>{let r=t.terminalId??`default`;await n.enqueue({threadId:t.threadId,terminalId:r,execute:n=>a(()=>e.request(e=>e[T.terminalSignal]({...t,terminalId:r,...n})))})},clear:async t=>{let r=t.terminalId??`default`;await n.enqueue({threadId:t.threadId,terminalId:r,execute:n=>a(()=>e.request(e=>e[T.terminalClear]({...t,terminalId:r,...n})))})},restart:async t=>{let r=t.terminalId??`default`,o=null;if(await n.enqueue({threadId:t.threadId,terminalId:r,execute:async n=>{o=(await a(()=>e.request(e=>e[T.terminalRestart]({...t,terminalId:r,...n})))).snapshot}}),o===null)throw Error(`Terminal restart completed without a snapshot.`);return i(o),o},close:async t=>{let r=t.terminalId?[t.terminalId]:n.terminalIds(t.threadId);for(let i of r)await n.enqueue({threadId:t.threadId,terminalId:i,execute:n=>a(()=>e.request(e=>e[T.terminalClose]({...t,terminalId:i,...n})))}),n.remove(t.threadId,i)},onEvent:t=>e.subscribe(e=>e[T.subscribeTerminalEvents]({}),e=>{(e.type===`started`||e.type===`restarted`)&&i(e.snapshot),t(e)})},dispose:()=>{r=!0,n.dispose()}}}function Hd(e){return{createUploadUrl:t=>e.request(e=>e[T.attachmentsCreateUploadUrl](t)),delete:t=>e.request(e=>e[T.attachmentsDelete](t))}}function Ud(e){return{environmentPreflight:t=>e.request(e=>e[T.workspaceEnvironmentPreflight](t)),listDirectory:t=>e.request(e=>e[T.workspaceListDirectory](t)),ensureScratch:t=>e.request(e=>e[T.workspaceEnsureScratch](t))}}async function Wd(e,t){await e.request(e=>e[T.workspaceCancelWriteFile]({transferId:t})).catch(()=>void 0)}var Gd=2e4,Kd=12e4,qd=3e5;function Jd(e){if(e instanceof td)return!0;let t=e instanceof Error?e.message:String(e);return On(t)}async function Yd(e,t){let n=t.type===`thread.turn.start`&&t.bootstrap!==void 0?qd:Gd,r=()=>e.request(e=>e[Ai.dispatchCommand](t),{timeout:n});try{return await r()}catch(t){if(!Jd(t))throw t;return await e.reconnect(),await r()}}function Xd(e){if(!e?.aborted)return;let t=Error(`Bulk transfer was cancelled.`);throw t.name=`AbortError`,t}async function Zd(e,t,n){let r={started:null,completed:null,chunks:[],protocolError:null,receivedBytes:0};if(await e.requestStream(t,e=>Qd(r,e,n),n),r.protocolError!==null)throw r.protocolError;let i=r.started,a=r.completed;if(i===null||a===null)throw Error(`Bulk transfer stream completed without start and completion metadata.`);if(a.transferId!==i.transferId||a.totalBytes!==i.totalBytes||a.sha256!==i.sha256)throw Error(`Bulk transfer completion metadata mismatch.`);return await vd({totalBytes:i.totalBytes,sha256:i.sha256,chunks:r.chunks})}function Qd(e,t,n){if(e.protocolError===null){if(t.kind===`started`){$d(e,t,n);return}if(e.started===null||t.transferId!==e.started.transferId){e.protocolError=Error(`Bulk transfer event identity mismatch.`);return}if(t.kind===`chunk`){ef(e,t,n);return}e.completed=t,n?.onProgress?.({completedBytes:t.totalBytes,totalBytes:t.totalBytes})}}function $d(e,t,n){if(e.started!==null||t.totalBytes>16777216){e.protocolError=Error(`Bulk transfer started with invalid or oversized metadata.`);return}e.started=t,n?.onProgress?.({completedBytes:0,totalBytes:t.totalBytes})}function ef(e,t,n){let r=e.started;if(r!==null){if(e.receivedBytes+=t.bytes,e.receivedBytes>r.totalBytes){e.protocolError=Error(`Bulk transfer exceeded its declared byte count.`);return}e.chunks.push(t),n?.onProgress?.({completedBytes:e.receivedBytes,totalBytes:r.totalBytes})}}async function tf(e,t,n){let r=new TextEncoder().encode(t.contents);if(r.byteLength>16777216)throw Error(`Project file exceeds the ${Ar}-byte write limit.`);let i=await gd(r),a=i.chunks[0]?.transferId??crypto.randomUUID().replaceAll(`-`,`_`),o=!1;try{Xd(n?.signal);let r=await nf(e,t,a,i);return o=!0,n?.onProgress?.({completedBytes:r.nextOffset,totalBytes:i.totalBytes}),await rf(e,a,i,r,n),{relativePath:t.relativePath}}catch(t){throw o&&await Wd(e,a),t}}function nf(e,t,n,r){return e.request(e=>e[T.workspaceBeginWriteFile]({transferId:n,cwd:t.cwd,relativePath:t.relativePath,totalBytes:r.totalBytes,sha256:r.sha256}))}async function rf(e,t,n,r,i){if(r.state!==`completed`){for(let t of n.chunks){if(t.offset<r.nextOffset)continue;Xd(i?.signal);let{kind:a,...o}=t,s=await e.request(e=>e[T.workspaceWriteFileChunk](o));i?.onProgress?.({completedBytes:s.nextOffset,totalBytes:n.totalBytes})}Xd(i?.signal),await e.request(e=>e[T.workspaceCommitWriteFile]({transferId:t}))}}function af(e){let t=Vd(e);return{dispose:()=>(t.dispose(),e.dispose()),reconnect:async()=>{na(),await e.reconnect()},terminal:t.terminal,browser:{openSession:t=>e.request(e=>e[T.browserOpenSession](t)),listSessions:t=>e.request(e=>e[T.browserListSessions](t)),closeSession:t=>e.request(e=>e[T.browserCloseSession](t)),getSession:t=>e.request(e=>e[T.browserGetSession](t)),command:t=>e.request(e=>e[T.browserCommand](t)),clearBrowsingData:t=>e.request(e=>e[T.browserClearBrowsingData](t)),attachDisplay:t=>e.request(e=>e[T.browserAttachDisplay](t)),addDisplayIceCandidate:t=>e.request(e=>e[T.browserAddDisplayIceCandidate](t)),onEvent:(t,n,r)=>e.subscribe(e=>e[T.subscribeBrowserEvents](t),n,r)},computer:{input:t=>e.request(e=>e[T.computerInput](t))},threadDevRuntime:{get:t=>e.request(e=>e[T.threadDevRuntimeGet](t)),allocatePort:t=>e.request(e=>e[T.threadDevRuntimeAllocatePort](t)),release:t=>e.request(e=>e[T.threadDevRuntimeRelease](t))},devTunnel:{register:t=>e.request(e=>e[T.devTunnelRegister](t)),unregister:t=>e.request(e=>e[T.devTunnelUnregister](t)),list:t=>e.request(e=>e[T.devTunnelList](t))},attachments:Hd(e),projects:{searchContents:(t,n)=>e.request(e=>e[T.projectsSearchContents](t),n),searchEntries:t=>e.request(e=>e[T.projectsSearchEntries](t)),readFile:(t,n)=>Zd(e,e=>e[T.workspaceReadFile](t),n),writeFile:(t,n)=>tf(e,t,n)},projectCheckoutDeletion:{preview:t=>e.request(e=>e[T.projectCheckoutDeletionPreview](t)),execute:t=>e.request(e=>e[T.projectCheckoutDeletionExecute](t))},workspace:Ud(e),shell:{openInEditor:t=>e.request(e=>e[T.shellOpenInEditor](t))},git:{pull:t=>e.request(e=>e[T.gitPull](t)),refreshStatus:t=>e.request(e=>e[T.gitRefreshStatus](t)),onStatus:(t,n,r)=>{let i=null;return e.subscribe(e=>e[T.subscribeGitStatus](t),e=>{i=Id(i,e),n(i)},r)},runStackedAction:async(t,n)=>{let r=null;if(await e.requestStream(e=>e[T.gitRunStackedAction](t),e=>{n?.onProgress?.(e),e.kind===`action_finished`&&(r=e.result)}),r)return r;throw Error(`Git action stream completed without a final result.`)},listBranches:t=>e.request(e=>e[T.gitListBranches](t)),createWorktree:t=>e.request(e=>e[T.gitCreateWorktree](t)),removeWorktree:t=>e.request(e=>e[T.gitRemoveWorktree](t)),createBranch:t=>e.request(e=>e[T.gitCreateBranch](t)),checkout:t=>e.request(e=>e[T.gitCheckout](t)),init:t=>e.request(e=>e[T.gitInit](t)),resolvePullRequest:t=>e.request(e=>e[T.gitResolvePullRequest](t)),preparePullRequestThread:t=>e.request(e=>e[T.gitPreparePullRequestThread](t))},pullRequests:{list:t=>e.request(e=>e[T.pullRequestsList](t)),listStats:t=>e.request(e=>e[T.pullRequestsListStats](t)),detail:t=>e.request(e=>e[T.pullRequestsDetail](t)),activity:t=>e.request(e=>e[T.pullRequestsActivity](t)),threadComments:t=>e.request(e=>e[T.pullRequestsThreadComments](t)),diffFileContents:t=>e.request(e=>e[T.pullRequestsDiffFileContents](t)),runAction:t=>e.request(e=>e[T.pullRequestsRunAction](t)),update:t=>e.request(e=>e[T.pullRequestsUpdate](t)),comment:t=>e.request(e=>e[T.pullRequestsComment](t)),updateComment:t=>e.request(e=>e[T.pullRequestsUpdateComment](t)),submitReview:t=>e.request(e=>e[T.pullRequestsSubmitReview](t)),replyToThread:t=>e.request(e=>e[T.pullRequestsReplyToThread](t)),setThreadResolution:t=>e.request(e=>e[T.pullRequestsSetThreadResolution](t)),setReaction:t=>e.request(e=>e[T.pullRequestsSetReaction](t)),invalidate:t=>e.request(e=>e[T.pullRequestsInvalidate](t)),reviewerCandidates:t=>e.request(e=>e[T.pullRequestsReviewerCandidates](t)),requestReviewers:t=>e.request(e=>e[T.pullRequestsRequestReviewers](t))},server:{getConfig:()=>e.request(e=>e[T.serverGetConfig]({})),refreshProviders:()=>e.request(e=>e[T.serverRefreshProviders]({})),startProviderAuth:t=>e.request(e=>e[T.serverStartProviderAuth](t)),repairProviderAuthRuntime:t=>e.request(e=>e[T.serverRepairProviderAuthRuntime](t)),disconnectProviderAuth:t=>e.request(e=>e[T.serverDisconnectProviderAuth](t)),getProviderAuthSession:t=>e.request(e=>e[T.serverGetProviderAuthSession](t)),cancelProviderAuth:t=>e.request(e=>e[T.serverCancelProviderAuth](t)),submitProviderAuthCode:t=>e.request(e=>e[T.serverSubmitProviderAuthCode](t)),syncPersonalCodexToCloud:t=>e.request(e=>e[T.serverSyncPersonalCodexToCloud](t)),syncPersonalClaudeToCloud:t=>e.request(e=>e[T.serverSyncPersonalClaudeToCloud](t)),upsertKeybinding:t=>e.request(e=>e[T.serverUpsertKeybinding](t)),removeKeybinding:t=>e.request(e=>e[T.serverRemoveKeybinding](t)),getSettings:()=>e.request(e=>e[T.serverGetSettings]({})),updateSettings:t=>e.request(e=>e[T.serverUpdateSettings]({patch:t})),updateEnvironmentDisplayName:t=>e.request(e=>e[T.serverUpdateEnvironmentDisplayName](t)),getTraceDiagnostics:t=>e.request(e=>e[T.serverGetTraceDiagnostics](t)),subscribeConfig:(t,n)=>e.subscribe(e=>e[T.subscribeServerConfig]({}),t,n),subscribeLifecycle:(t,n)=>e.subscribe(e=>e[T.subscribeServerLifecycle]({}),t,n),subscribeAuthAccess:(t,n)=>e.subscribe(e=>e[T.subscribeAuthAccess]({}),t,n),subscribeWorkspaceReadiness:(t,n)=>e.subscribe(e=>e[T.subscribeWorkspaceReadiness]({}),t,n)},usage:{getSummary:t=>e.request(e=>e[T.usageGetSummary](t),{timeout:Kd})},orchestration:{dispatchCommand:t=>Yd(e,t),searchThreads:t=>e.request(e=>e[Ai.searchThreads](t),{timeout:1e4}),getTurnDiff:(t,n)=>Zd(e,e=>e[Ai.streamTurnDiff](t),n).then(e=>({...t,diff:new TextDecoder().decode(e)})),getFullThreadDiff:(t,n)=>Zd(e,e=>e[Ai.streamFullThreadDiff](t),n).then(e=>({...t,fromTurnCount:0,diff:new TextDecoder().decode(e)})),subscribeShell:(t,n)=>e.subscribe(e=>e[Ai.subscribeShell]({}),t,n),subscribeThread:(t,n,r)=>e.subscribe(e=>e[Ai.subscribeThread](t),n,r)}}}function of(){if(typeof window>`u`)return;let e=Zi();if(!(e?.primaryMode!==`cloud`||!e.bearerToken))return{bearerToken:e.bearerToken,httpBaseUrl:e.httpBaseUrl,wsBaseUrl:e.wsBaseUrl}}function sf(){if(typeof window>`u`)return;let e=Zi(),t=e?.primaryMode===`cloud`?e.desktopLocal:e;if(!(!t?.httpBaseUrl||!t.wsBaseUrl||!t.bearerToken))return{bearerToken:t.bearerToken,httpBaseUrl:t.httpBaseUrl,wsBaseUrl:t.wsBaseUrl,label:t.label}}function cf(e){let t=sr(e);if(!t)throw Error(`Unable to resolve websocket URL for ${e?.label??`primary environment`}.`);return af(new ld(async()=>{await ea().catch(()=>null);let e=of();if(e)try{return await Rl(e)}catch(e){throw Rn(e)&&Ui(`ws-token`),e}return kn(t)}))}function lf(e){return af(new ld(()=>Rl(e),{trackGlobalConnection:!1,onAttempt:()=>e.onConnecting(e.environmentId),onOpen:()=>e.onConnected(e.environmentId),onError:t=>e.onError(e.environmentId,t),onClose:t=>e.onDisconnected(e.environmentId,t.reason)}))}function uf(e){return typeof e==`string`?e:typeof e==`object`&&e&&`detail`in e&&typeof e.detail==`string`?e.detail:e instanceof Error?e.message:String(e)}function df(e){return e.match(/blocked by policy for\s+([^.\s]+(?:\.[^.\s]+)*)\.?/i)?.[1]||(e.match(/navigation to\s+([^.\s]+(?:\.[^.\s]+)*)\s+is restricted/i)?.[1]??null)}function ff(e){let t=uf(e).trim()||`Unknown browser error.`,n=df(t);return/blocked by policy|restricted to allowed domains/i.test(t)?{title:`Browser navigation blocked`,cause:`${n??`This URL`} is not allowed by the current browser policy.`,nextAction:`Use an allowed URL or update the browser allowed-domain setting.`,technicalDetail:t}:/does not match thread|session .*not found|no active browser tab|tab .*not found/i.test(t)?{title:`Browser session is stale`,cause:`Forge no longer has a matching live browser session for this thread.`,nextAction:`Restart the browser session from the Browser options menu.`,technicalDetail:t}:/screenshot|capture|Page\.capture/i.test(t)?{title:`Browser screenshot failed`,cause:`The browser could not capture the current page frame.`,nextAction:`Reload the page, then try the screenshot again.`,technicalDetail:t}:/timed out|timeout/i.test(t)?{title:`Browser action timed out`,cause:`Forge did not receive a response from the browser runtime in time.`,nextAction:`Retry the action. If it keeps failing, restart the browser session.`,technicalDetail:t}:/runtime is not available|browser.*unavailable|not supported|disabled/i.test(t)?{title:`Browser session unavailable`,cause:`This environment does not currently expose the in-app browser runtime.`,nextAction:`Use a workspace with browser support or restart Forge after browser support is enabled.`,technicalDetail:t}:/navigate|navigation|net::|ERR_/i.test(t)?{title:`Browser navigation failed`,cause:`The browser could not load the requested page.`,nextAction:`Check the URL and network access, then try again.`,technicalDetail:t}:{title:`Browser action failed`,cause:`Forge could not complete the browser action.`,nextAction:`Retry the action. If it keeps failing, restart the browser session from the Browser options menu.`,technicalDetail:t}}function pf(e){let t=ff(e);return`${t.cause} ${t.nextAction}`}function mf(e){let t=ff(e);return`${t.title}: ${t.cause} ${t.nextAction}`}var hf={session:null,selectedBrowserId:null,sessionsByBrowserId:{},lastActivityByTabId:{},lastSnapshotContentByTabId:{},lastScreenshotDataUrlByTabId:{},lastScreenshotMetaByTabId:{},lastConsoleLogsByTabId:{},lastConsoleLogsMetaByTabId:{},lastFrameByTabId:{},lastFrameSequenceByTabId:{},lastObservedFrameSequenceByTabId:{},lastFrameStreamIdByTabId:{},lastFrameStreamGenerationByTabId:{},frameGapCountByTabId:{},lastFrameMetaByTabId:{},displayIceCandidatesByClientId:{},lastError:null};function gf(e){return Ln(e)}function _f(e){let t=e.status===`reconnecting`&&e.reason===`network_unreachable`;return e.transport===`remote-webrtc`&&(e.status===`connected`||e.status===`connecting`||e.status===`reconnecting`)&&(e.reason!==`network_unreachable`||t)&&e.reason!==`unsupported_host`}function vf(e){return e.transport!==`remote-webrtc`||e.status===`failed`||e.status===`unsupported`?!1:e.reason!==`network_unreachable`&&e.reason!==`unsupported_host`}function yf(e){let{currentSession:t,nextSession:n}=e;return!t||t.browserId!==n.browserId||t.sessionId!==n.sessionId||!_f(t.display)||!vf(n.display)?n:{...n,display:{...t.display,viewport:n.display.viewport??n.viewport??t.display.viewport,devicePixelRatio:n.display.devicePixelRatio??t.display.devicePixelRatio,iceServers:n.display.iceServers??t.display.iceServers,reconnect:t.display.reconnect??n.display.reconnect}}}function bf(e){let{storedSession:t,nextSession:n}=e;if(!t||t.browserId!==n.browserId||t.sessionId!==n.sessionId)return!1;let r=n.tabs.some(e=>e.navigationStatus===`pending`),i=t.tabs.some(e=>e.navigationStatus===`complete`||e.navigationStatus===`failed`);if(!r||!i)return!1;let a=Date.parse(t.updatedAt),o=Date.parse(n.updatedAt);return Number.isNaN(a)||Number.isNaN(o)?!1:o<a}function M(e,t,n){return e[t]===n?e:{...e,[t]:n}}function xf(e){switch(e.type){case`tab.updated`:return e.payload.tab.tabId;case`tab.closed`:case`snapshot.ready`:case`screenshot.ready`:case`frame.ready`:case`console.logs.ready`:case`display.iceCandidate`:case`display.metrics`:return e.payload.tabId;case`action.failed`:return e.payload.tabId??null;case`display.updated`:case`session.started`:case`session.updated`:case`session.closed`:return null}}function Sf(e,t){let n=xf(t);return n?{...e,lastActivityByTabId:{...e.lastActivityByTabId,[n]:{actor:t.agentId?`agent`:`human`,agentId:t.agentId,browserId:t.browserId,eventType:t.type,...t.type===`action.failed`?{commandType:t.payload.commandType}:{},...t.type===`action.failed`?{message:t.payload.message}:{},createdAt:t.createdAt}}}:e}function Cf(e){switch(e.type){case`session.started`:case`session.updated`:case`tab.updated`:case`snapshot.ready`:case`screenshot.ready`:case`frame.ready`:case`display.updated`:return!0;case`session.closed`:case`tab.closed`:case`console.logs.ready`:case`action.failed`:case`display.iceCandidate`:case`display.metrics`:return!1}}function wf(e){return e===null?`end-of-candidates`:JSON.stringify([e.candidate,e.sdpMid??null,e.sdpMLineIndex??null,e.usernameFragment??null])}function Tf(e,t){let n=wf(t);return e.some(e=>wf(e)===n)?e:[...e,t]}function Ef(e){if(e.type!==`session.closed`)return null;switch(e.payload.reason){case`idle_timeout`:return`The browser was closed after being idle. Reopen the preview to restore this thread's browser.`;case`runtime_shutdown`:return`The browser runtime shut down. Reopen the preview to restore this thread's browser.`;case`thread_archived`:case`clear_browsing_data`:case`user_closed`:case void 0:return null}}function Df(e){let t=e.event.payload.display;return t.status===`failed`||t.status===`unsupported`?t.detail??`Browser display is unavailable.`:e.currentLastError&&/browser display/i.test(e.currentLastError)?null:e.currentLastError}function Of(e,t){let n=e.sessionsByBrowserId[t.browserId]??(e.session?.browserId===t.browserId?e.session:null);if(!n)return!0;let r=n.sessionId===t.payload.sessionId,i=!t.sessionEpoch||!n.sessionEpoch||t.sessionEpoch===n.sessionEpoch;return r&&i}function kf(e,t){let n=e.lastFrameSequenceByTabId[t]??0;return{acceptedSequence:n,observedSequence:e.lastObservedFrameSequenceByTabId[t]??n,...e.lastFrameStreamIdByTabId[t]?{streamId:e.lastFrameStreamIdByTabId[t]}:{},...e.lastFrameStreamGenerationByTabId[t]===void 0?{}:{streamGeneration:e.lastFrameStreamGenerationByTabId[t]},...e.lastFrameMetaByTabId[t]?.capturedAt?{acceptedCapturedAt:e.lastFrameMetaByTabId[t].capturedAt}:{},gapCount:e.frameGapCountByTabId[t]??0}}function Af(e,t){let n=t.payload.tabId,r=Lc(kf(e,n),{sequence:t.payload.sequence,capturedAt:t.payload.capturedAt,...t.payload.streamId?{streamId:t.payload.streamId}:{},...t.payload.streamGeneration===void 0?{}:{streamGeneration:t.payload.streamGeneration},...t.payload.keyframe===void 0?{}:{keyframe:t.payload.keyframe}});return{decision:r,observedSequence:r.state.observedSequence,frameGapCount:r.state.gapCount}}function jf(e,t,n){let r=t.payload.tabId;return{...e,lastObservedFrameSequenceByTabId:{...e.lastObservedFrameSequenceByTabId,[r]:n.observedSequence},frameGapCountByTabId:{...e.frameGapCountByTabId,[r]:n.frameGapCount}}}function Mf(e,t){let n=t.payload.tabId;return{...e,lastFrameByTabId:{...e.lastFrameByTabId,[n]:t.payload.imageDataUrl},lastFrameSequenceByTabId:{...e.lastFrameSequenceByTabId,[n]:t.payload.sequence},lastFrameStreamIdByTabId:t.payload.streamId?{...e.lastFrameStreamIdByTabId,[n]:t.payload.streamId}:e.lastFrameStreamIdByTabId,lastFrameStreamGenerationByTabId:t.payload.streamGeneration===void 0?e.lastFrameStreamGenerationByTabId:{...e.lastFrameStreamGenerationByTabId,[n]:t.payload.streamGeneration},lastFrameMetaByTabId:{...e.lastFrameMetaByTabId,[n]:{capturedAt:t.payload.capturedAt,url:t.payload.url,viewport:t.payload.viewport}},lastError:null}}function Nf(e){let{current:t,event:n,pendingAutoRevealKeys:r,state:i,threadKey:a}=e;if(!Of(t,n))return i;let o=Af(t,n);if(!o.decision.observe)return i;let s=jf(t,n,o),c=o.decision.accept?Mf(s,n):s;return{browserStateByThreadKey:M(i.browserStateByThreadKey,a,c),pendingAutoRevealKeys:r}}var Pf=wa(e=>({browserStateByThreadKey:{},pendingAutoRevealKeys:new Set,setSessionSnapshot:(t,n)=>e(e=>{let r=gf(t),i=e.browserStateByThreadKey[r]??hf,a=n?yf({currentSession:i.sessionsByBrowserId[n.browserId]??i.session,nextSession:n}):null;return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...i,session:a,selectedBrowserId:a?.browserId??i.selectedBrowserId,sessionsByBrowserId:a?{...i.sessionsByBrowserId,[a.browserId]:a}:i.sessionsByBrowserId,lastError:a?null:i.lastError})}}),selectBrowserSession:(t,n)=>e(e=>{let r=gf(t),i=e.browserStateByThreadKey[r]??hf,a=i.sessionsByBrowserId[n]??i.session;return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...i,selectedBrowserId:n,session:a})}}),applyBrowserEvent:(t,n)=>e(e=>{let r=gf(t),i=Cf(n)?new Set(e.pendingAutoRevealKeys).add(r):e.pendingAutoRevealKeys,a=Sf(e.browserStateByThreadKey[r]??hf,n);switch(n.type){case`session.started`:{if(bf({storedSession:a.sessionsByBrowserId[n.payload.snapshot.browserId]??a.session,nextSession:n.payload.snapshot}))return e;let t=yf({currentSession:a.sessionsByBrowserId[n.payload.snapshot.browserId]??a.session,nextSession:n.payload.snapshot});return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,session:t,selectedBrowserId:a.selectedBrowserId??t.browserId,sessionsByBrowserId:{...a.sessionsByBrowserId,[t.browserId]:t},lastError:null}),pendingAutoRevealKeys:i}}case`session.updated`:{let t=yf({currentSession:a.sessionsByBrowserId[n.payload.snapshot.browserId]??a.session,nextSession:n.payload.snapshot});return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,session:a.selectedBrowserId&&a.selectedBrowserId!==n.payload.snapshot.browserId?a.session:t,selectedBrowserId:a.selectedBrowserId??n.payload.snapshot.browserId,sessionsByBrowserId:{...a.sessionsByBrowserId,[t.browserId]:t},lastError:null}),pendingAutoRevealKeys:i}}case`session.closed`:let t=a.selectedBrowserId===n.browserId||a.session?.browserId===n.browserId;return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,session:t?null:a.session,selectedBrowserId:t?null:a.selectedBrowserId,sessionsByBrowserId:Object.fromEntries(Object.entries(a.sessionsByBrowserId).filter(([e])=>e!==n.browserId)),lastError:Ef(n)})};case`display.updated`:{let t=a.session;if(!t||t.sessionId!==n.payload.sessionId)return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,a),pendingAutoRevealKeys:i};let o={...t,display:n.payload.display,updatedAt:n.createdAt};return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,session:o,sessionsByBrowserId:{...a.sessionsByBrowserId,[o.browserId]:o},lastError:Df({currentLastError:a.lastError,event:n})}),pendingAutoRevealKeys:i}}case`tab.updated`:{let t=a.session;if(!t||t.sessionId!==n.payload.sessionId)return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,a),pendingAutoRevealKeys:i};let o=t.tabs.map(e=>e.tabId===n.payload.tab.tabId?{...n.payload.tab,isActive:e.tabId===t.activeTabId}:{...e,isActive:e.tabId===t.activeTabId}).concat(t.tabs.some(e=>e.tabId===n.payload.tab.tabId)?[]:[{...n.payload.tab,isActive:n.payload.tab.tabId===t.activeTabId}]);return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,session:{...t,tabs:o},lastError:null}),pendingAutoRevealKeys:i}}case`tab.closed`:{let t=a.session;if(!t||t.sessionId!==n.payload.sessionId)return e;let i=t.tabs.filter(e=>e.tabId!==n.payload.tabId);return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,session:{...t,tabs:i,activeTabId:t.activeTabId===n.payload.tabId?i[0]?.tabId??null:t.activeTabId}})}}case`snapshot.ready`:return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,lastSnapshotContentByTabId:{...a.lastSnapshotContentByTabId,[n.payload.tabId]:n.payload.content},lastError:null}),pendingAutoRevealKeys:i};case`screenshot.ready`:return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,lastScreenshotDataUrlByTabId:{...a.lastScreenshotDataUrlByTabId,[n.payload.tabId]:n.payload.imageDataUrl},lastScreenshotMetaByTabId:{...a.lastScreenshotMetaByTabId,[n.payload.tabId]:{captureId:n.payload.captureId,capturedAt:n.payload.capturedAt,url:n.payload.url,viewport:n.payload.viewport}},lastError:null}),pendingAutoRevealKeys:i};case`frame.ready`:return Nf({state:e,current:a,event:n,threadKey:r,pendingAutoRevealKeys:i});case`console.logs.ready`:return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,lastConsoleLogsByTabId:{...a.lastConsoleLogsByTabId,[n.payload.tabId]:n.payload.logs},lastConsoleLogsMetaByTabId:{...a.lastConsoleLogsMetaByTabId,[n.payload.tabId]:{capturedAt:n.createdAt,tabId:n.payload.tabId,count:n.payload.logs.length}},lastError:null})};case`display.iceCandidate`:{let t=a.displayIceCandidatesByClientId[n.payload.clientId]??[];return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,displayIceCandidatesByClientId:{...a.displayIceCandidatesByClientId,[n.payload.clientId]:Tf(t,n.payload.candidate)}}),pendingAutoRevealKeys:i}}case`display.metrics`:return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,a),pendingAutoRevealKeys:i};case`action.failed`:return{browserStateByThreadKey:M(e.browserStateByThreadKey,r,{...a,lastError:mf(n.payload.message)})};default:return e}}),clearBrowserState:t=>e(e=>{let n=gf(t);if(!(n in e.browserStateByThreadKey))return e;let{[n]:r,...i}=e.browserStateByThreadKey;return{browserStateByThreadKey:i}}),consumeAutoReveal:t=>e(e=>{if(!e.pendingAutoRevealKeys.has(t))return e;let n=new Set(e.pendingAutoRevealKeys);return n.delete(t),{pendingAutoRevealKeys:n}})}));function Ff(e,t){return t?e[gf(t)]??null:null}function If(e){if(e!==void 0)return Object.fromEntries(Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t)))}function Lf(e){return{...e,...e.projectIds===void 0?{}:{projectIds:[...e.projectIds].toSorted((e,t)=>e.localeCompare(t))},...e.cursors===void 0?{}:{cursors:If(e.cursors)}}}var Rf={all:e=>[`pullRequests`,e],list:(e,t)=>[`pullRequests`,e,`list`,Lf(t)],stats:(e,t)=>[`pullRequests`,e,`stats`,[...t].toSorted((e,t)=>`${e.projectId}:${e.repository}#${e.number}`.localeCompare(`${t.projectId}:${t.repository}#${t.number}`))],detail:(e,t)=>[`pullRequests`,e,`detail`,t],activity:(e,t)=>[`pullRequests`,e,`activity`,t],diff:(e,t)=>[`pullRequests`,e,`diff`,t],threadComments:(e,t)=>[`pullRequests`,e,`thread-comments`,t],diffFileContents:(e,t)=>[`pullRequests`,e,`diff-file-contents`,t],reviewerCandidates:(e,t)=>[`pullRequests`,e,`reviewer-candidates`,t]},zf=Hr.make(`command-authority`);function Bf(e){return e[0]===`pullRequests`&&e[1]===zf&&e[2]===`detail`}function Vf(e){return e[0]===`pullRequests`&&e[1]===zf&&e[2]===`list`}function Hf(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}var Uf=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return Uf(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return Uf(t)(e)}}}},Wf=(e,t)=>(n,r,i)=>{let a={storage:Hf(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let p=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>p;let m,h=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??p));let t=a.onRehydrateStorage?.call(a,r()??p)||void 0;return Uf(u.getItem.bind(u))(a.name).then(e=>{if(e)if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(t=>{if(e!==s)return;let[i,o]=t;if(m=a.merge(o,r()??p),n(m,!0),i)return d()}).then(()=>{e===s&&(t?.(r(),void 0),m=r(),o=!0,l.forEach(e=>e(m)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{++s,u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||h(),m||p},Gf=/^(localhost|[a-z0-9.-]+\.localhost|127(?:\.\d{1,3}){3}|\[[0:]+1\]|::1)(?::\d+)?(?:[/?#]|$)/i,Kf=/https?:\/\/[^\s"'`<>]+/gu,qf=new RegExp(String.raw`\u001B(?:\][\s\S]*?(?:\u0007|\u001B\\)|[@-_][0-?]*[ -/]*[@-~])`,`gu`),Jf=/(https?:\/\/(?:localhost|[a-z0-9.-]+\.localhost|127(?:\.\d{1,3}){3}|\[[0:]+1\]|::1|10(?:\.\d{1,3}){3}|172\.(?:1[6-9]|2\d|3[01])(?:\.\d{1,3}){2}|192\.168(?:\.\d{1,3}){2}):)\s+(\d{1,5})(?=[/?#\s]|$)/giu;function Yf(e){let t=e.trim();if(!t||/^[a-z][a-z0-9+.-]*:\/\//i.test(t)&&!/^https?:\/\//i.test(t))return null;let n=t.split(/[/:?#]/,1)[0]??``,r=Gf.test(t)||Qf(n)?`http`:`https`,i=/^https?:\/\//i.test(t)?t:`${r}://${t}`;try{let e=new URL(i);return e.protocol!==`http:`&&e.protocol!==`https:`?null:e.toString()}catch{return null}}function Xf(e){try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`}catch{return!1}}function Zf(e){try{let t=new URL(e);return aa(t.hostname)}catch{return!1}}function Qf(e){return Wi(e)}function $f(e){try{let t=new URL(e);if(t.protocol!==`http:`||!Zf(t.toString())&&!Qf(t.hostname)||!t.port)return null;let n=Number(t.port);return Number.isInteger(n)&&n>0&&n<=65535?n:null}catch{return null}}function ep(e){let t=e.replace(/[.,;!?]+$/u,``);for(;t.endsWith(`)`)||t.endsWith(`]`)||t.endsWith(`}`);){let e=t.at(-1);if(!e)break;let n=e===`)`?`(`:e===`]`?`[`:`{`;if(t.split(n).length-1>=t.split(e).length-1)break;t=t.slice(0,-1)}return t}function tp(e){return e.replace(qf,``).replaceAll(/./gsu,e=>np(e)?``:e).replace(Jf,`$1$2`)}function np(e){let t=e.charCodeAt(0);return t>=0&&t<=8||t===11||t===12||t>=14&&t<=31||t===127}function rp(e){let t=null,n=null,r=tp(e);Kf.lastIndex=0;for(let e of r.matchAll(Kf)){let r=Yf(ep(e[0]));!r||!$f(r)||(t=r,Zf(r)&&(n=r))}return n??t}function ip(e){let t=null;for(let n of e){let e=n.event,r=rp(e.type===`output`?e.data:e.type===`started`||e.type===`restarted`?e.snapshot.history:``);r&&(t=r)}return t}function ap(e){switch(e.type){case`activity`:return e.hasRunningSubprocess;case`started`:case`restarted`:case`exited`:return!1;default:return null}}var op=`full-access`,sp=`default`,cp=`default`,lp=`forge:terminal-state:v1`,up=[],dp=200,fp=8;function pp(e,t){if(t<=3&&e&&typeof e==`object`){let t=e;return{terminalStateByThreadKey:Ap(t.terminalStateByThreadKey??{}),terminalPreviewUrlByThreadKey:Object.fromEntries(Object.entries(t.terminalPreviewUrlByThreadKey??{}).filter(([e,t])=>!!hn(e)&&typeof t?.url==`string`&&!!$f(t.url)&&typeof t?.observedAt==`string`))}}return{terminalStateByThreadKey:{},terminalPreviewUrlByThreadKey:{}}}function mp(){return _n(typeof window<`u`?window.localStorage:void 0)}function hp(e){let t=[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))];return t.length>0?t:[cp]}function gp(e,t){if(e.length===0)return[];let n=new Set(t);return[...new Set(e)].map(e=>e.trim()).filter(e=>e.length>0&&n.has(e))}function _p(e){return`group-${e}`}function vp(e,t){let n=e,r=2;for(;t.has(n);)n=`${e}-${r}`,r+=1;return t.add(n),n}function yp(e,t){return e.findIndex(e=>e.terminalIds.includes(t))}function bp(e){return[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))]}function xp(e,t){let n=new Set(t),r=new Set,i=[],a=new Set;for(let t of e){let e=bp(t.terminalIds).filter(e=>!(!n.has(e)||r.has(e)));if(e.length===0)continue;for(let t of e)r.add(t);let o=t.id.trim().length>0?t.id.trim():_p(e[0]??`default`);i.push({id:vp(o,a),terminalIds:e})}for(let e of t)r.has(e)||i.push({id:vp(_p(e),a),terminalIds:[e]});return i.length===0?[{id:_p(cp),terminalIds:[cp]}]:i}function Sp(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function Cp(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(!r||!i||r.id!==i.id||!Sp(r.terminalIds,i.terminalIds))return!1}return!0}function wp(e,t){return e.terminalOpen===t.terminalOpen&&e.terminalHeight===t.terminalHeight&&e.activeTerminalId===t.activeTerminalId&&e.activeTerminalGroupId===t.activeTerminalGroupId&&Sp(e.terminalIds,t.terminalIds)&&Sp(e.runningTerminalIds,t.runningTerminalIds)&&Cp(e.terminalGroups,t.terminalGroups)}var Tp=Object.freeze({terminalOpen:!1,terminalHeight:280,terminalIds:[cp],runningTerminalIds:[],activeTerminalId:cp,terminalGroups:[{id:_p(cp),terminalIds:[cp]}],activeTerminalGroupId:_p(cp)});function Ep(){return{...Tp,terminalIds:[...Tp.terminalIds],runningTerminalIds:[...Tp.runningTerminalIds],terminalGroups:Vp(Tp.terminalGroups)}}function Dp(){return Tp}function Op(e){let t=hp(e.terminalIds),n=t.length>0?t:[cp],r=gp(e.runningTerminalIds,n),i=n.includes(e.activeTerminalId)?e.activeTerminalId:n[0]??`default`,a=xp(e.terminalGroups,n),o=a.some(t=>t.id===e.activeTerminalGroupId)?e.activeTerminalGroupId:null,s=a.find(e=>e.terminalIds.includes(i))?.id??null,c={terminalOpen:e.terminalOpen,terminalHeight:Number.isFinite(e.terminalHeight)&&e.terminalHeight>0?e.terminalHeight:280,terminalIds:n,runningTerminalIds:r,activeTerminalId:i,terminalGroups:a,activeTerminalGroupId:o??s??a[0]?.id??_p(`default`)};return wp(e,c)?e:c}function kp(e){let t=Op(e);if(t.terminalIds.length<=fp)return t;let n=new Set,r=e=>{!e||n.size>=fp||t.terminalIds.includes(e)&&n.add(e)};r(cp),r(t.activeTerminalId);for(let e of t.runningTerminalIds)r(e);for(let e of t.terminalIds.toReversed())r(e);let i=t.terminalIds.filter(e=>n.has(e)),a=i[i.length-1]??i[0]??`default`,o=i.includes(t.activeTerminalId)?t.activeTerminalId:a;return Op({...t,terminalIds:i.length>0?i:[cp],runningTerminalIds:t.runningTerminalIds.filter(e=>n.has(e)),activeTerminalId:o,terminalGroups:t.terminalGroups.map(e=>({id:e.id,terminalIds:e.terminalIds.filter(e=>n.has(e))})).filter(e=>e.terminalIds.length>0)})}function Ap(e){return Object.fromEntries(Object.entries(e).flatMap(([e,t])=>hn(e)?[[e,kp(t)]]:[]))}function jp(e){return wp(Op(e),Tp)}function Mp(e){return e.trim().length>0}function Np(e){return Ln(e)}function Pp(e,t){return`${Np(e)}\u0000${t}`}function Fp(e,t){return Pp(e,t)}function Ip(e){let t=Date.parse(e);return Number.isFinite(t)?t:0}function Lp(e,t){let n=rp(e);return n?{url:n,observedAt:t}:null}function Rp(e){return Lp(e.history,e.updatedAt)}function zp(e){return e.type===`output`?Lp(e.data,e.createdAt):e.type===`started`||e.type===`restarted`?Lp(e.snapshot.history,e.snapshot.updatedAt):null}function Bp(e,t,n){if(!n)return e;let r=Np(t),i=e[r];return i&&Ip(i.observedAt)>Ip(n.observedAt)||i?.url===n.url&&i.observedAt===n.observedAt?e:{...e,[r]:n}}function Vp(e){return e.map(e=>({id:e.id,terminalIds:[...e.terminalIds]}))}function Hp(e,t,n,r){let i=Pp(n,r.terminalId),a=e[i]??up,o={id:t,event:r},s=a.length>=dp?[...a.slice(1),o]:[...a,o];return{terminalEventEntriesByKey:{...e,[i]:s},nextTerminalEventId:t+1}}function Up(e,t,n,r){let i=Pp(n,r.terminalId);return{terminalEventEntriesByKey:{...e,[i]:[{id:t,event:r}]},nextTerminalEventId:t+1}}function Wp(e){return e.sessionEpoch&&e.sequence!==void 0?{sessionEpoch:e.sessionEpoch,sequence:e.sequence}:null}function Gp(e,t,n){return!t||!e?!1:t.sessionEpoch===e.sessionEpoch?n?t.sequence<e.sequence:t.sequence<=e.sequence:!n}function Kp(e,t){let n={...e},r=!1;for(let e of Object.keys(n))e.startsWith(`${t}\u0000`)&&(delete n[e],r=!0);return r?n:e}function qp(e){return{terminalId:e.terminalId,cwd:e.snapshot.cwd,worktreePath:e.snapshot.worktreePath}}function Jp(e,t){let n=qp(t);return e?.runtimeEnv&&e.cwd===n.cwd&&e.worktreePath===n.worktreePath&&(e.terminalId===void 0||e.terminalId===t.terminalId)?{...n,runtimeEnv:e.runtimeEnv}:n}function Yp(e,t,n){let r=Op(e);if(!Mp(t))return r;let i=!r.terminalIds.includes(t),a=i?[...r.terminalIds,t]:r.terminalIds,o=Vp(r.terminalGroups),s=yp(o,t);if(s>=0&&(o[s].terminalIds=o[s].terminalIds.filter(e=>e!==t),o[s].terminalIds.length===0&&o.splice(s,1)),n===`new`){let e=new Set(o.map(e=>e.id)),n=vp(_p(t),e);return o.push({id:n,terminalIds:[t]}),Op({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:n})}let c=o.findIndex(e=>e.id===r.activeTerminalGroupId);if(c<0&&(c=yp(o,r.activeTerminalId)),c<0){let e=new Set(o.map(e=>e.id)),t=vp(_p(r.activeTerminalId),e);o.push({id:t,terminalIds:[r.activeTerminalId]}),c=o.length-1}let l=o[c];if(!l||i&&!l.terminalIds.includes(t)&&l.terminalIds.length>=4)return r;if(!l.terminalIds.includes(t)){let e=l.terminalIds.indexOf(r.activeTerminalId);e>=0?l.terminalIds.splice(e+1,0,t):l.terminalIds.push(t)}return Op({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:l.id})}function Xp(e,t){let n=Op(e);return n.terminalOpen===t?n:{...n,terminalOpen:t}}function Zp(e,t){let n=Op(e);return!Number.isFinite(t)||t<=0||n.terminalHeight===t?n:{...n,terminalHeight:t}}function Qp(e,t){return Yp(e,t,`split`)}function $p(e,t,n){let r=Yp(e,t,`new`);return n?.openDrawer===!1?{...r,terminalOpen:e.terminalOpen}:r}function em(e,t){let n=Op(e);if(!n.terminalIds.includes(t))return n;let r=n.terminalGroups.find(e=>e.terminalIds.includes(t))?.id??n.activeTerminalGroupId;return n.activeTerminalId===t&&n.activeTerminalGroupId===r?n:{...n,activeTerminalId:t,activeTerminalGroupId:r}}function tm(e,t){let n=Op(e);if(!n.terminalIds.includes(t))return n;let r=n.terminalIds.filter(e=>e!==t);if(r.length===0)return Ep();let i=n.terminalIds.indexOf(t),a=n.activeTerminalId===t?r[Math.min(i,r.length-1)]??r[0]??`default`:n.activeTerminalId,o=n.terminalGroups.map(e=>({...e,terminalIds:e.terminalIds.filter(e=>e!==t)})).filter(e=>e.terminalIds.length>0),s=o.find(e=>e.terminalIds.includes(a))?.id??o[0]?.id??_p(a);return Op({terminalOpen:n.terminalOpen,terminalHeight:n.terminalHeight,terminalIds:r,runningTerminalIds:n.runningTerminalIds.filter(e=>e!==t),activeTerminalId:a,terminalGroups:o,activeTerminalGroupId:s})}function nm(e,t,n){let r=Op(e);if(!r.terminalIds.includes(t)||n===r.runningTerminalIds.includes(t))return r;let i=new Set(r.runningTerminalIds);return n?i.add(t):i.delete(t),{...r,runningTerminalIds:[...i]}}function rm(e,t){return!t||t.threadId.length===0?Dp():e[Np(t)]??Dp()}function im(e,t,n){if(t.threadId.length===0)return e;let r=Np(t),i=rm(e,t),a=n(i);if(a===i)return e;if(jp(a)){if(e[r]===void 0)return e;let{[r]:t,...n}=e;return n}return{...e,[r]:a}}function am(e,t,n){return!t||t.threadId.length===0||n.trim().length===0?up:e[Pp(t,n)]??up}function om(e,t,n){return!t||t.threadId.length===0||n.trim().length===0?null:e[Fp(t,n)]??null}function sm(e,t){if(!t||t.threadId.length===0)return[];let n=`${Np(t)}\u0000`;return Object.entries(e).filter(([e])=>e.startsWith(n)).map(([,e])=>e)}function cm(e,t){return!t||t.threadId.length===0?null:e[Np(t)]??null}var lm=wa()(Wf(e=>{let t=(t,n)=>{e(e=>{let r=im(e.terminalStateByThreadKey,t,n);return r===e.terminalStateByThreadKey?e:{terminalStateByThreadKey:r}})};return{terminalStateByThreadKey:{},terminalLaunchContextByThreadKey:{},terminalEventEntriesByKey:{},terminalSessionSnapshotByKey:{},terminalStreamCursorByKey:{},terminalPreviewUrlByThreadKey:{},nextTerminalEventId:1,setTerminalOpen:(e,n)=>t(e,e=>Xp(e,n)),setTerminalHeight:(e,n)=>t(e,e=>Zp(e,n)),splitTerminal:(e,n)=>t(e,e=>Qp(e,n)),newTerminal:(e,n,r)=>t(e,e=>$p(e,n,r)),ensureTerminal:(e,n,r)=>t(e,e=>{let t=e;return e.terminalIds.includes(n)||(t=$p(t,n)),r?.active===!1&&(t={...t,activeTerminalId:e.activeTerminalId,activeTerminalGroupId:e.activeTerminalGroupId}),(r?.active??!0)&&(t=em(t,n)),r?.open&&(t=Xp(t,!0)),Op(t)}),setActiveTerminal:(e,n)=>t(e,e=>em(e,n)),closeTerminal:(e,n)=>t(e,e=>tm(e,n)),setTerminalLaunchContext:(t,n)=>e(e=>({terminalLaunchContextByThreadKey:{...e.terminalLaunchContextByThreadKey,[Np(t)]:n}})),clearTerminalLaunchContext:t=>e(e=>{let n=Np(t);if(!e.terminalLaunchContextByThreadKey[n])return e;let{[n]:r,...i}=e.terminalLaunchContextByThreadKey;return{terminalLaunchContextByThreadKey:i}}),setTerminalActivity:(e,n,r)=>t(e,e=>nm(e,n,r)),recordTerminalEvent:(t,n)=>e(e=>{let r=Fp(t,n.terminalId),i=Wp(n),a=n.type===`started`||n.type===`restarted`;if(Gp(e.terminalStreamCursorByKey[r],i,a))return e;let o=a&&i?Up(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,n):Hp(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,n),s=i?{...e.terminalStreamCursorByKey,[r]:i}:e.terminalStreamCursorByKey,c=Bp(e.terminalPreviewUrlByThreadKey,t,zp(n));return n.type!==`started`&&n.type!==`restarted`?{...o,terminalStreamCursorByKey:s,terminalPreviewUrlByThreadKey:c}:{...o,terminalStreamCursorByKey:s,terminalPreviewUrlByThreadKey:c,terminalSessionSnapshotByKey:{...e.terminalSessionSnapshotByKey,[Fp(t,n.terminalId)]:n.snapshot}}}),applyTerminalEvent:(t,n)=>e(e=>{let r=Np(t),i=Fp(t,n.terminalId),a=Wp(n),o=n.type===`started`||n.type===`restarted`;if(Gp(e.terminalStreamCursorByKey[i],a,o))return e;let s=e.terminalStateByThreadKey,c=e.terminalLaunchContextByThreadKey,l=e.terminalSessionSnapshotByKey,u=Bp(e.terminalPreviewUrlByThreadKey,t,zp(n));(n.type===`started`||n.type===`restarted`)&&(l={...l,[Fp(t,n.terminalId)]:n.snapshot},s=im(s,t,e=>{let t=e.activeTerminalId===n.terminalId,r=e;return e.terminalIds.includes(n.terminalId)||(r=$p(r,n.terminalId)),t?(r=em(r,n.terminalId),r=Xp(r,!0)):(r=em(r,e.activeTerminalId),r=Xp(r,e.terminalOpen)),Op(r)}),c={...c,[r]:Jp(c[r],n)});let d=ap(n);d!==null&&(s=im(s,t,e=>nm(e,n.terminalId,d)));let f=o&&a?Up(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,n):Hp(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,n),p=a?{...e.terminalStreamCursorByKey,[i]:a}:e.terminalStreamCursorByKey;return{terminalStateByThreadKey:s,terminalLaunchContextByThreadKey:c,terminalSessionSnapshotByKey:l,terminalStreamCursorByKey:p,terminalPreviewUrlByThreadKey:u,...f}}),setTerminalSessionSnapshot:(t,n)=>e(e=>({terminalSessionSnapshotByKey:{...e.terminalSessionSnapshotByKey,[Fp(t,n.terminalId)]:n},terminalPreviewUrlByThreadKey:Bp(e.terminalPreviewUrlByThreadKey,t,Rp(n))})),clearTerminalState:t=>e(e=>{let n=Np(t),r=im(e.terminalStateByThreadKey,t,()=>Ep()),i=e.terminalLaunchContextByThreadKey[n]!==void 0,a=e.terminalPreviewUrlByThreadKey[n]!==void 0,{[n]:o,...s}=e.terminalLaunchContextByThreadKey,{[n]:c,...l}=e.terminalPreviewUrlByThreadKey,u={...e.terminalEventEntriesByKey},d=!1;for(let e of Object.keys(u))e.startsWith(`${n}\u0000`)&&(delete u[e],d=!0);let f={...e.terminalSessionSnapshotByKey},p=!1;for(let e of Object.keys(f))e.startsWith(`${n}\u0000`)&&(delete f[e],p=!0);let m=Kp(e.terminalStreamCursorByKey,n);return r===e.terminalStateByThreadKey&&!i&&!a&&!d&&!p&&m===e.terminalStreamCursorByKey?e:{terminalStateByThreadKey:r,terminalLaunchContextByThreadKey:s,terminalPreviewUrlByThreadKey:l,terminalEventEntriesByKey:u,terminalSessionSnapshotByKey:f,terminalStreamCursorByKey:m}}),removeTerminalState:t=>e(e=>{let n=Np(t),r=e.terminalStateByThreadKey[n]!==void 0,i=e.terminalLaunchContextByThreadKey[n]!==void 0,a=e.terminalPreviewUrlByThreadKey[n]!==void 0,o={...e.terminalEventEntriesByKey},s=!1;for(let e of Object.keys(o))e.startsWith(`${n}\u0000`)&&(delete o[e],s=!0);let c={...e.terminalSessionSnapshotByKey},l=!1;for(let e of Object.keys(c))e.startsWith(`${n}\u0000`)&&(delete c[e],l=!0);let u=Kp(e.terminalStreamCursorByKey,n);if(!r&&!i&&!a&&!s&&!l&&u===e.terminalStreamCursorByKey)return e;let d={...e.terminalStateByThreadKey};delete d[n];let f={...e.terminalLaunchContextByThreadKey};delete f[n];let p={...e.terminalPreviewUrlByThreadKey};return delete p[n],{terminalStateByThreadKey:d,terminalLaunchContextByThreadKey:f,terminalPreviewUrlByThreadKey:p,terminalEventEntriesByKey:o,terminalSessionSnapshotByKey:c,terminalStreamCursorByKey:u}}),removeOrphanedTerminalStates:t=>e(e=>{let n=Object.keys(e.terminalStateByThreadKey).filter(e=>!t.has(e)),r=Object.keys(e.terminalLaunchContextByThreadKey).filter(e=>!t.has(e)),i=Object.keys(e.terminalPreviewUrlByThreadKey).filter(e=>!t.has(e)),a={...e.terminalEventEntriesByKey},o=!1;for(let e of Object.keys(a)){let[n]=e.split(`\0`);n&&!t.has(n)&&(delete a[e],o=!0)}let s={...e.terminalSessionSnapshotByKey},c=!1;for(let e of Object.keys(s)){let[n]=e.split(`\0`);n&&!t.has(n)&&(delete s[e],c=!0)}let l={...e.terminalStreamCursorByKey},u=!1;for(let e of Object.keys(l)){let[n]=e.split(`\0`);n&&!t.has(n)&&(delete l[e],u=!0)}if(n.length===0&&r.length===0&&i.length===0&&!o&&!c&&!u)return e;let d={...e.terminalStateByThreadKey};for(let e of n)delete d[e];let f={...e.terminalLaunchContextByThreadKey};for(let e of r)delete f[e];let p={...e.terminalPreviewUrlByThreadKey};for(let e of i)delete p[e];return{terminalStateByThreadKey:d,terminalLaunchContextByThreadKey:f,terminalPreviewUrlByThreadKey:p,terminalEventEntriesByKey:a,terminalSessionSnapshotByKey:s,terminalStreamCursorByKey:l}})}},{name:lp,version:4,storage:Hf(mp),migrate:pp,partialize:e=>({terminalStateByThreadKey:Ap(e.terminalStateByThreadKey),terminalPreviewUrlByThreadKey:e.terminalPreviewUrlByThreadKey})}));function um(e){return!!(e.prompt.trim()||e.images.length||e.terminalContexts.length||e.persistedAttachments.length||e.stagedSubmission)}function dm(e,t,n){let r=Ln(t),i=Ln(n);if(r===i)return e;let a=e[r];if(!a)return e;let o=e[i];if(o&&um(o)&&!fm(a,o))return null;let s={...e,[i]:{...a,...wm(a,o)}};return delete s[r],s}function fm(e,t){let n=e.stagedSubmission;return!n||!pm(n)||!mm(e,n)||!hm(n,t.stagedSubmission)?!1:gm(e,t)}function pm(e){return!!e.commandId&&!!e.messageId}function mm(e,t){return[e.prompt===t.prompt,bm(e.persistedAttachments,t.attachments),bm(e.terminalContexts,t.terminalContexts)].every(Boolean)}function hm(e,t){return!t||_m(e,t)}function gm(e,t){return[e.prompt===t.prompt,e.lastGeneratedPullRequestPrompt===t.lastGeneratedPullRequestPrompt,Sm(e.images,t.images),xm(e.nonPersistedImageIds,t.nonPersistedImageIds),e.nonPersistedImageIds.length===0,Sm(e.persistedAttachments,t.persistedAttachments),Sm(e.terminalContexts,t.terminalContexts),Cm(e.modelSelectionByProvider,t.modelSelectionByProvider),e.activeProvider===t.activeProvider,e.runtimeMode===t.runtimeMode,e.interactionMode===t.interactionMode].every(Boolean)}function _m(e,t){return[e.commandId===t.commandId&&e.messageId===t.messageId,e.prompt===t.prompt,bm(e.attachments,t.attachments),bm(e.terminalContexts,t.terminalContexts),vm(e.modelSelection,t.modelSelection),vm(e.runtimeMode,t.runtimeMode),vm(e.interactionMode,t.interactionMode),ym(e.executionIntent,t.executionIntent)].every(Boolean)}function vm(e,t){return e===void 0||t===void 0||JSON.stringify(e)===JSON.stringify(t)}function ym(e,t){return!e||!t||e.runtimeId===t.runtimeId}function bm(e,t){return e.length===t.length&&e.every((e,n)=>e.id===t[n]?.id)}function xm(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function Sm(e,t){return e.length===t.length&&e.every((e,n)=>JSON.stringify(e)===JSON.stringify(t[n]))}function Cm(e,t){let n=Object.keys(e).toSorted();return xm(n,Object.keys(t).toSorted())?n.every(n=>JSON.stringify(e[n])===JSON.stringify(t[n])):!1}function wm(e,t){let n=t??e,r=e.stagedSubmission?e:n,i=e.stagedSubmission?n:e;return{modelSelectionByProvider:{...i.modelSelectionByProvider,...r.modelSelectionByProvider},activeProvider:r.activeProvider??i.activeProvider,runtimeMode:r.runtimeMode??i.runtimeMode,interactionMode:r.interactionMode??i.interactionMode}}var Tm=/\n*<terminal_context>\n([\s\S]*?)\n<\/terminal_context>\s*$/,Em=/^\s*<cmmd_context>\n?([\s\S]*?)\n?<\/cmmd_context>\s*/;function Dm(e){return e.replace(/\r\n/g,`
|
|
8
8
|
`).replace(/^\n+|\n+$/g,``)}function Om(e){return Dm(e.text).length>0}function km(e){return!Om(e)}function Am(e){return e.filter(e=>Om(e))}function jm(e){let t=Dm(e.text),n=e.terminalId.trim(),r=e.terminalLabel.trim();if(t.length===0||n.length===0||r.length===0)return null;let i=Math.max(1,Math.floor(e.lineStart));return{terminalId:n,terminalLabel:r,lineStart:i,lineEnd:Math.max(i,Math.floor(e.lineEnd)),text:t}}function Mm(e){return e.lineStart===e.lineEnd?`line ${e.lineStart}`:`lines ${e.lineStart}-${e.lineEnd}`}function Nm(e){return`${e.terminalLabel} ${Mm(e)}`}function Pm(e){return`@${e.terminalLabel.trim().toLowerCase().replace(/\s+/g,`-`)}:${e.lineStart===e.lineEnd?`${e.lineStart}`:`${e.lineStart}-${e.lineEnd}`}`}function Fm(e){return Dm(e.text).split(`
|
|
9
9
|
`).map((t,n)=>` ${e.lineStart+n} | ${t}`)}function Im(e){let t=e.map(e=>jm(e)).filter(e=>e!==null);if(t.length===0)return``;let n=[];for(let e=0;e<t.length;e+=1){let r=t[e];n.push(`- ${Nm(r)}:`),n.push(...Fm(r)),e<t.length-1&&n.push(``)}return[`<terminal_context>`,...n,`</terminal_context>`].join(`
|
|
10
10
|
`)}function Lm(e,t){let n=0,r=``;for(let i of e){if(i!==``){r+=i;continue}let e=t[n]??null;n+=1,e&&(r+=Pm(e))}return r}function Rm(e,t){let n=Lm(e,t).trim(),r=Im(t);return r.length===0?n:n.length>0?`${n}\n\n${r}`:r}function zm(e){let t=Tm.exec(e);if(!t)return{promptText:e,contextCount:0,previewTitle:null,contexts:[]};let n=e.slice(0,t.index).replace(/\n+$/,``),r=Hm(t[1]??``);return{promptText:n,contextCount:r.length,previewTitle:r.length>0?r.map(({header:e,body:t})=>t.length>0?`${e}\n${t}`:e).join(`
|
|
@@ -13,12 +13,12 @@ import{n as e,r as t,t as n}from"./rolldown-runtime-hePW80VL.js";import{$ as r,$
|
|
|
13
13
|
`).trimEnd()}),null)};for(let t of e.split(`
|
|
14
14
|
`)){let e=/^- (.+):$/.exec(t);if(e){r(),n={header:e[1],bodyLines:[]};continue}if(n){if(t.startsWith(` `)){n.bodyLines.push(t.slice(2));continue}t.length===0&&n.bodyLines.push(``)}}return r(),t}function Um(e){let t=0;for(let n of e)n===``&&(t+=1);return t}function Wm(e,t){let n=t-Um(e);return n<=0?e:`${``.repeat(n)}${e}`}function Gm(e){return e===void 0||e===` `||e===`
|
|
15
15
|
`||e===` `||e===`\r`}function Km(e,t){let n=Math.max(0,Math.min(e.length,Math.floor(t))),r=`${Gm(e[n-1])?``:` `} `,i=e[n]===` `?n+1:n;return{prompt:`${e.slice(0,n)}${r}${e.slice(i)}`,cursor:n+r.length,contextIndex:Um(e.slice(0,n))}}function qm(e){return e.replaceAll(``,``)}function Jm(e,t){if(t<0)return{prompt:e,cursor:e.length};let n=0;for(let r=0;r<e.length;r+=1)if(e[r]===``){if(n===t)return{prompt:e.slice(0,r)+e.slice(r+1),cursor:r};n+=1}return{prompt:e,cursor:e.length}}var Ym=e=>Symbol.iterator in e,Xm=e=>`entries`in e,Zm=(e,t)=>{let n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(let[e,t]of n)if(!r.has(e)||!Object.is(t,r.get(e)))return!1;return!0},Qm=(e,t)=>{let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(!Object.is(i.value,a.value))return!1;i=n.next(),a=r.next()}return!!i.done&&!!a.done};function $m(e,t){return Object.is(e,t)?!0:typeof e!=`object`||!e||typeof t!=`object`||!t||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:Ym(e)&&Ym(t)?Xm(e)&&Xm(t)?Zm(e,t):Qm(e,t):Zm({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function eh(e){let t=O.useRef(void 0);return n=>{let r=e(n);return $m(t.current,r)?t.current:t.current=r}}var th=[`draftsByThreadKey`,`draftThreadsByThreadKey`,`logicalProjectDraftThreadKeyByLogicalProjectKey`],nh=[`stickyModelSelectionByProvider`,`stickyActiveProvider`];function rh(e){let t=ah(e.nextLocal,e.version,!1);if(!t)return e.currentStored??e.nextLocal;if(e.currentStored!==null&&e.canMigrate!==void 0&&!e.canMigrate(e.currentStored,e.version))return e.currentStored;if(e.previousLocal===e.currentStored&&(e.canMigrate??ih)(e.currentStored,e.version))return e.nextLocal;let n=ah(e.previousLocal,e.version,!0),r=ah(e.currentStored,e.version,!0);if(!r||!n)return e.currentStored??e.nextLocal;let i={...r.state};for(let e of th)i[e]=lh(n.state[e],r.state[e],t.state[e]);for(let e of nh)uh(n.state[e],t.state[e])||(i[e]=t.state[e]);return JSON.stringify({...r,version:e.version,state:i})}function ih(e,t){if(e===null)return!0;try{let n=JSON.parse(e);return!dh(n)||!dh(n.state)||typeof n.version!=`number`||!Number.isInteger(n.version)?!1:n.version>=1&&n.version<t}catch{return!1}}function ah(e,t,n){if(e===null)return n?{version:t,state:ch()}:null;let r=oh(e);return r&&sh(r,t)?{version:t,state:r.state}:null}function oh(e){try{let t=JSON.parse(e);return dh(t)?t:null}catch{return null}}function sh(e,t){let n=e.state;return e.version!==t||!dh(n)?!1:th.every(e=>dh(n[e]))}function ch(){return Object.fromEntries(th.map(e=>[e,{}]))}function lh(e,t,n){let r={...t};for(let t of new Set([...Object.keys(e),...Object.keys(n)]))uh(e[t],n[t])||(t in n?r[t]=n[t]:delete r[t]);return r}function uh(e,t){return JSON.stringify(e)===JSON.stringify(t)}function dh(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function fh(e){let t;return{getItem:n=>{let r=e.storage.getItem(n);return t===void 0&&(t=r),r},setItem:(n,r)=>{let i=e.storage.getItem(n),a=rh({previousLocal:t??null,currentStored:i,nextLocal:r,version:e.version,...e.canMigrate===void 0?{}:{canMigrate:e.canMigrate}});(a!==i||i===r)&&(e.storage.setItem(n,a),t=r)},removeItem:n=>{e.storage.removeItem(n),t=null}}}function ph(e){let t=e.auth.status!==`unauthenticated`||e.auth.provenance?.credentialScope===`proxied`;return e.enabled&&e.installed&&e.status===`ready`&&t&&e.models.length>0}var mh={providers:{codex:!0,claude:!1,cmmd:!0},meteredEgressApproved:{codex:!1,claude:!1,cmmd:!1},allowedWallets:[`personal`],updatedAt:`1970-01-01T00:00:00.000Z`};function hh(e){if(e==null)return mh;let t=e.providers,n=e.meteredEgressApproved,r=e.allowedWallets;return{providers:{...mh.providers,...t},meteredEgressApproved:{...mh.meteredEgressApproved,...n},allowedWallets:Array.isArray(r)&&r.length>0?r:mh.allowedWallets,updatedAt:typeof e.updatedAt==`string`?e.updatedAt:mh.updatedAt}}function gh(e){switch(e){case`codex`:return`codex`;case`claudeAgent`:return`claude`;case`cmmd`:case`apex`:return`cmmd`;default:return null}}var _h=[`codex`,`claudeAgent`,`cmmd`];function vh(e,t){if(t==null)return null;let n=t.providers;if(typeof n!=`object`||!n)return null;let r=n[e];return typeof r==`boolean`?r:null}function yh(e,t){let n=gh(e);if(n===null)return{offered:!1,reason:`unknown-provider`};let r=vh(n,t);return r===!0?{offered:!0}:r===!1?{offered:!1,reason:`org-disabled`}:hh(t).providers[n]===!0?{offered:!0}:{offered:!1,reason:`policy-unavailable`}}function bh(e,t){return yh(e,t).offered}function xh(e,t){return Sh(e,t).offered}function Sh(e,t){return t===null?{offered:!0}:yh(e,t)}function Ch(e,t){return hh(t).allowedWallets.includes(e)}function wh(e){return Ch(`personal`,e)}function Th(e){return e===`claudeAgent`||e===`codex`}function Eh(e,t){return e!==`claudeAgent`||wh(t)||bh(`claudeAgent`,t)}function Dh(e){return e.isDebugDisclosureEnabled||Th(e.provider)&&wh(e.policy)?!1:!bh(e.provider===`apex`?`apex`:e.provider,e.policy)}function Oh(e){if(!Ph(e)||!Array.isArray(e.accounts))throw Error(`CMMD returned invalid provider accounts.`);return{accounts:e.accounts.filter(kh)}}function kh(e){return Ph(e)?jh(e.provider)&&Mh(e.providerAccountId)&&Ah(e)&&Nh(e.accountEmail)&&Nh(e.accountDisplayName)&&Nh(e.planType)&&typeof e.isDefault==`boolean`&&typeof e.needsReconnect==`boolean`:!1}function Ah(e){return(e.credentialTarget===`primary`||e.credentialTarget===`linked`)&&Array.isArray(e.legacyProviderAccountIds)&&e.legacyProviderAccountIds.every(Mh)}function jh(e){return e===`codex`||e===`claudeAgent`}function Mh(e){return typeof e==`string`&&e.trim().length>0}function Nh(e){return typeof e==`string`||e===null}function Ph(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Fh(e){let t=vr(e);return t.legacyRuntimeId===null?t.shape===`durable-environment`&&typeof e==`string`?e:null:t.legacyRuntimeId}var Ih=class extends Error{constructor(e){super(e===`auth`?`Your CMMD session expired. Sign in again to verify Claude runtime readiness.`:`CMMD denied access to verify Claude runtime readiness. Check your organization permissions.`),this.name=`ForgeProviderAccessAuthorityError`}};async function Lh(e){if(!e.enabled||e.readinessTargetId===null)return null;try{return Bh(await e.load(e.readinessTargetId),e.readinessTargetId)}catch(e){if(e instanceof Ta&&(e.kind===`auth`||e.kind===`permission`))throw new Ih(e.kind);return null}}var Rh=new Set([`not_connected`,`pending`,`claimed`,`activating`,`applied`,`failed`,`stale`]),zh=[`generationId`,`nativeVerifiedAt`,`reason`,`lastErrorCode`,`lastErrorMessage`];function Bh(e,t){if(!Jh(e)||!Kh(e)||!Vh(e,t))throw Error(`CMMD returned invalid Claude runtime readiness.`);return e}function Vh(e,t){if(e.deliveryReceipt===null)return e.nativeExecutable!==!0;if(!Jh(e.deliveryReceipt))return!1;let n=e.deliveryReceipt,r=Jh(n.identity)?n.identity:null;return r!==null&&Hh(n,t)&&Gh(r,e.generationId)}function Hh(e,t){return Uh(e,t)&&Wh(e)}function Uh(e,t){return typeof e.receiptId==`string`&&e.receiptId.trim().length>0&&e.runtimeId===t&&typeof e.machineId==`string`&&e.machineId.trim().length>0&&typeof e.credentialEpoch==`number`&&Number.isSafeInteger(e.credentialEpoch)&&e.credentialEpoch>=0}function Wh(e){return typeof e.issuedAt==`string`&&Number.isFinite(Date.parse(e.issuedAt))&&e.expiresAt===null}function Gh(e,t){return e.kind===`credential_generation`&&e.provider===`claude`&&typeof e.credentialGenerationId==`string`&&e.credentialGenerationId===t}function Kh(e){return typeof e.connected==`boolean`&&Rh.has(String(e.deliveryStatus))&&typeof e.nativeExecutable==`boolean`&&zh.every(t=>qh(e[t]))}function qh(e){return e===null||typeof e==`string`}function Jh(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Yh={credential_expired_refreshing:`CREDENTIAL_EXPIRED_REFRESHING`,credential_reconnect_required:`CREDENTIAL_RECONNECT_REQUIRED`,credential_not_connected:`CREDENTIAL_RECONNECT_REQUIRED`,credential_generation_not_applied:`CREDENTIAL_GENERATION_NOT_APPLIED`,runtime_unavailable:`RUNTIME_UNAVAILABLE`};function Xh(e){return typeof e!=`string`||!Object.hasOwn(Yh,e)?null:Yh[e]??null}var Zh=new Set([`pending`,`claimed`,`activating`]),Qh=2e3;function $h(e){return{readinessTargetId:e,dataUpdatedAt:0,consecutiveUnavailableResponses:0,consecutiveFailedResponses:0}}function eg(e){let t=e.current.readinessTargetId===e.readinessTargetId?e.current:$h(e.readinessTargetId);return e.dataUpdatedAt===0||e.dataUpdatedAt===t.dataUpdatedAt?t:{readinessTargetId:e.readinessTargetId,dataUpdatedAt:e.dataUpdatedAt,consecutiveUnavailableResponses:e.readinessUnavailable?t.consecutiveUnavailableResponses+1:0,consecutiveFailedResponses:e.deliveryStatus===`failed`?t.consecutiveFailedResponses+1:0}}function tg(e,t){if(!e.claudeOffered||!e.claudeConnected)return!1;let n=Xh(e.reason);return n===`CREDENTIAL_EXPIRED_REFRESHING`?!0:e.deliveryStatus===`failed`?n!==`CREDENTIAL_RECONNECT_REQUIRED`&&t.consecutiveFailedResponses<16:e.deliveryStatus===null?t.consecutiveUnavailableResponses>0&&t.consecutiveUnavailableResponses<3:Zh.has(e.deliveryStatus)}function ng(e){return e.credentialMode===`runtime`?e.provider&&ph(e.provider)?{eligible:!0}:{eligible:!1,reason:`runtime-unavailable`}:e.access.status===`loading`?{eligible:!1,reason:`access-loading`}:e.access.status===`error`?{eligible:!1,reason:`access-error`}:rg({provider:e.provider,providerKind:e.providerKind,policy:e.access.policy,personalConnections:e.access.personalConnections,personalReconnectRequired:e.access.personalReconnectRequired,claudeRuntimeReadiness:e.access.claudeRuntimeReadiness})}function rg(e){return!e.provider||!ph(e.provider)?{eligible:!1,reason:`runtime-unavailable`}:e.policy===null?{eligible:!1,reason:`access-error`}:bh(e.providerKind,e.policy)?ag({providerKind:e.providerKind,policy:e.policy,personalConnections:e.personalConnections,personalReconnectRequired:e.personalReconnectRequired,claudeRuntimeReadiness:e.claudeRuntimeReadiness,stage:`live-runtime`}):{eligible:!1,reason:`not-offered`}}function ig(e){return e.access.status===`loading`?{eligible:!1,reason:`access-loading`}:e.access.status===`error`||e.access.policy===null?{eligible:!1,reason:`access-error`}:bh(e.providerKind,e.access.policy)?ag({providerKind:e.providerKind,policy:e.access.policy,personalConnections:e.access.personalConnections,personalReconnectRequired:e.access.personalReconnectRequired,claudeRuntimeReadiness:e.access.claudeRuntimeReadiness,stage:`provisioning`}):{eligible:!1,reason:`not-offered`}}function ag(e){return e.providerKind===`cmmd`||e.providerKind===`apex`?{eligible:!0}:e.providerKind!==`codex`&&e.providerKind!==`claudeAgent`?{eligible:!1,reason:`not-offered`}:og({providerKind:e.providerKind,personalConnections:e.personalConnections,personalReconnectRequired:e.personalReconnectRequired,claudeRuntimeReadiness:e.claudeRuntimeReadiness,workspaceWalletAllowed:Ch(`workspace`,e.policy),stage:e.stage})}function og(e){return sg(e.workspaceWalletAllowed)?{eligible:!0}:cg(e.providerKind,e.personalReconnectRequired)?{eligible:!1,reason:`personal-credential-reconnect-required`}:lg(e.providerKind,e.personalConnections)?fg(e)?{eligible:!1,reason:`environment-not-running`}:ug(e)?{eligible:!0}:{eligible:!1,reason:`native-runtime-not-ready`}:{eligible:!1,reason:`personal-credential-required`}}function sg(e){return e&&!1}function cg(e,t){return e===`codex`&&t?.codex===!0}function lg(e,t){return t?.[e]===!0}function ug(e){return e.providerKind!==`claudeAgent`||e.stage===`provisioning`||pg(e.claudeRuntimeReadiness)}var dg=`runtime_unavailable`;function fg(e){return e.providerKind!==`claudeAgent`||e.stage===`provisioning`?!1:e.claudeRuntimeReadiness?.reason===dg}function pg(e){if(!mg(e))return!1;let t=e.deliveryReceipt?.identity;return t?.kind===`credential_generation`&&t.provider===`claude`&&t.credentialGenerationId===e.generationId}function mg(e){return e?.connected===!0&&e.nativeExecutable===!0&&typeof e.generationId==`string`&&e.generationId.trim().length>0}function hg(e){if(e.status!==`ready`)return!1;if(e.policy===null)return!0;let t=e.policy.providers,n=Ch(`workspace`,e.policy);return t.cmmd?!0:Ch(`personal`,e.policy)||n?t.codex&&e.personalConnections?.codex===!0||t.claude&&e.personalConnections?.claudeAgent===!0:!1}var gg={providers:{codex:!1,claude:!1,cmmd:!1},meteredEgressApproved:{codex:!1,claude:!1,cmmd:!1},allowedWallets:[`personal`],updatedAt:`1970-01-01T00:00:00.000Z`},_g=[`cmmd`,`forge-provider-access`],vg=Qh;function yg(e,t){return!(t instanceof Ih)&&e<3}function bg(e,t=null){return[..._g,e,t]}async function xg(e){e.queryClient.setQueriesData({queryKey:_g},t=>Sg(t,e.provider,e.connected)),await e.queryClient.invalidateQueries({queryKey:_g,refetchType:`all`})}function Sg(e,t,n){return e?.status!==`ready`||e.personalConnections===null?e:{...e,personalConnections:{...e.personalConnections,[t]:n},...t===`codex`?{personalReconnectRequired:{codex:!1}}:{},...t===`claudeAgent`?{claudeRuntimeReadiness:null}:{}}}async function Cg(e,t=null){if(e===`runtime`)return{status:`ready`,policy:null,personalConnections:null,providerAccounts:[],claudeRuntimeReadiness:null};let n=$n(),r=Ag(await n.getOrgProviderPolicy());Ch(`workspace`,r);let[i,a,o,s]=await Promise.all([Eg(()=>n.getProviderAccounts()),Dg({enabled:r.providers.codex,load:()=>n.getUserCodexCredential(),provider:`codex`}),Dg({enabled:r.providers.claude,load:()=>n.getUserClaudeCredential(),provider:`claudeAgent`}),Lh({enabled:r.providers.claude,readinessTargetId:t,load:e=>n.getClaudeRuntimeReadiness(e)})]),c=i.accounts.filter(e=>e.provider===`codex`?r.providers.codex:r.providers.claude),l=wg(c),u=l.codex||a.connected,d=l.claudeAgent||o.connected,f=c.some(e=>e.provider===`codex`&&e.needsReconnect)||a.reconnectRequired;return{status:`ready`,policy:r,personalConnections:{codex:u,claudeAgent:d},providerAccounts:c,...f?{personalReconnectRequired:{codex:!0}}:{},claudeRuntimeReadiness:s}}function wg(e){return{codex:e.some(e=>e.provider===`codex`&&!e.needsReconnect),claudeAgent:e.some(e=>e.provider===`claudeAgent`&&!e.needsReconnect)}}function Tg(e,t){if(e.status!==`ready`)return;let n=e.providerAccounts??[];return(n.find(e=>e.provider===t&&e.isDefault&&!e.needsReconnect)??n.find(e=>e.provider===t&&!e.needsReconnect))?.providerAccountId}async function Eg(e){try{return Oh(await e())}catch{return{accounts:[]}}}async function Dg(e){if(!e.enabled)return{connected:!1,reconnectRequired:!1};try{return Pg(await e.load(),e.provider)}catch{return{connected:!1,reconnectRequired:!1}}}function Og(e){let t=e?.policy?.providers.claude===!0,n=e?.personalConnections?.claudeAgent===!0;return{claudeOffered:t,claudeConnected:n,deliveryStatus:e?.claudeRuntimeReadiness?.deliveryStatus??null,reason:e?.claudeRuntimeReadiness?.reason??null,readinessUnavailable:t&&n&&e?.claudeRuntimeReadiness===null}}function kg(e){let t=(0,A.c)(21),n;t[0]!==e.environmentId||t[1]!==e.runtimeId?(n=e.environmentId==null?e.runtimeId??null:Fh(e.environmentId),t[0]=e.environmentId,t[1]=e.runtimeId,t[2]=n):n=t[2];let r=n,i;t[3]===r?i=t[4]:(i=$h(r),t[3]=r,t[4]=i);let a=(0,O.useRef)(i),o;t[5]!==e.credentialMode||t[6]!==r?(o=bg(e.credentialMode,r),t[5]=e.credentialMode,t[6]=r,t[7]=o):o=t[7];let s;t[8]===r?s=t[9]:(s=()=>Cg(`cmmd-cloud`,r),t[8]=r,t[9]=s);let c=e.enabled&&e.credentialMode===`cmmd-cloud`,l;t[10]===r?l=t[11]:(l=e=>{if(e.state.error instanceof Ih)return!1;let t=Og(e.state.data);return a.current=eg({current:a.current,readinessTargetId:r,dataUpdatedAt:e.state.dataUpdatedAt,readinessUnavailable:r!==null&&t.readinessUnavailable,deliveryStatus:t.deliveryStatus}),r!==null&&tg(t,a.current)?vg:!1},t[10]=r,t[11]=l);let u;t[12]!==o||t[13]!==s||t[14]!==c||t[15]!==l?(u={queryKey:o,queryFn:s,enabled:c,retry:yg,staleTime:3e4,refetchInterval:l},t[12]=o,t[13]=s,t[14]=c,t[15]=l,t[16]=u):u=t[16];let d=Bs(u);if(!e.enabled){let e;return t[17]===Symbol.for(`react.memo_cache_sentinel`)?(e={status:`loading`},t[17]=e):e=t[17],e}if(e.credentialMode===`runtime`){let e;return t[18]===Symbol.for(`react.memo_cache_sentinel`)?(e={status:`ready`,policy:null,personalConnections:null,providerAccounts:[],claudeRuntimeReadiness:null},t[18]=e):e=t[18],e}if(d.isPending){let e;return t[19]===Symbol.for(`react.memo_cache_sentinel`)?(e={status:`loading`},t[19]=e):e=t[19],e}if(d.isError||!d.data){let e;return t[20]===Symbol.for(`react.memo_cache_sentinel`)?(e={status:`error`},t[20]=e):e=t[20],e}return d.data}function Ag(e){if(!Ig(e)||!Ig(e.providers))throw Error(`CMMD returned an invalid organization provider policy.`);let{providers:t,meteredEgressApproved:n,allowedWallets:r,updatedAt:i}=e,a=Ng(r,i);if(!Mg(t)||a===null)throw Error(`CMMD returned an invalid organization provider policy.`);return{providers:{codex:t.codex,claude:t.claude,cmmd:t.cmmd},meteredEgressApproved:jg(n),allowedWallets:[...new Set(a.allowedWallets)],updatedAt:a.updatedAt}}function jg(e){return Ig(e)&&Mg(e)?{codex:e.codex,claude:e.claude,cmmd:e.cmmd}:{codex:!1,claude:!1,cmmd:!1}}function Mg(e){return typeof e.codex==`boolean`&&typeof e.claude==`boolean`&&typeof e.cmmd==`boolean`}function Ng(e,t){return Array.isArray(e)&&e.length>0&&e.every(Fg)&&typeof t==`string`&&t.trim().length>0?{allowedWallets:e,updatedAt:t}:null}function Pg(e,t){if(!Ig(e)||typeof e.connected!=`boolean`)throw Error(`CMMD returned an invalid ${t} connection state.`);if(!e.connected)return{connected:!1,reconnectRequired:!1};if(t===`codex`){if(typeof e.needsReconnect!=`boolean`)throw Error(`CMMD returned an invalid Codex connection state.`);return{connected:!e.needsReconnect,reconnectRequired:e.needsReconnect}}if(typeof e.generationId!=`string`||e.generationId.trim().length===0)throw Error(`CMMD returned an invalid Claude connection state.`);return{connected:!0,reconnectRequired:!1}}function Fg(e){return e===`personal`||e===`workspace`}function Ig(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Lg(e){return e.status===`ready`?e.policy:gg}var Rg=[`cursor`,`opencode`,`gemini`],zg={state:`usable`},Bg={state:`withheld`,reason:`unbuilt`},Vg={state:`withheld`,reason:`not-on-this-environment`};function Hg(e){return Rg.includes(e)}function Ug(e){return e===`gemini`?null:e}function Wg(e,t){if(e===void 0)return t?Vg:zg;if(e.availability===`unavailable`){let t=e.unavailableReason??`not-on-this-environment`,n=t===`not-on-this-environment`&&e.availabilityCheck===`could-not-check`?`could-not-check`:e.unavailableDetail;return n===void 0?{state:`withheld`,reason:t}:{state:`withheld`,reason:t,detail:n}}return e.availability===`available`||ph(e)||Gg(e)?zg:Vg}function Gg(e){return e.installed&&e.auth.status===`unauthenticated`&&e.auth.provenance?.credentialScope!==`proxied`}function Kg(e,t){let n=ig({providerKind:e,access:t});return n.eligible?null:qg(n.reason)}function qg(e){switch(e){case`access-loading`:return{state:`unresolved`,cause:`loading`};case`access-error`:return{state:`unresolved`,cause:`error`};case`not-offered`:return{state:`withheld`,reason:`not-offered`};case`personal-credential-required`:return{state:`withheld`,reason:`not-usable`,detail:`no-connection`};case`personal-credential-reconnect-required`:return{state:`withheld`,reason:`not-usable`,detail:`reconnect-required`};case`native-runtime-not-ready`:return{state:`withheld`,reason:`not-usable`,detail:`delivery-pending`};case`environment-not-running`:return{state:`withheld`,reason:`not-usable`,detail:`environment-not-running`};case`runtime-unavailable`:return null}}function Jg(e){if(Hg(e.provider))return{pick:Bg,run:Bg};let t=Ug(e.provider);return t===null?{pick:Bg,run:Bg}:Yg({...e,providerKind:t})}function Yg(e){return{pick:Qg(e,`pick`),run:Qg(e,`run`)}}function Xg(e){return Qg(e,`pick`)}function Zg(e){return e.providers.filter(t=>Qg({providerKind:t.provider,snapshot:t,access:e.access,credentialMode:e.credentialMode,hasLiveInventory:e.hasLiveInventory},`run`).state===`usable`)}function Qg(e,t){let{providerKind:n}=e;if(e.snapshot?.unavailableReason===`unbuilt`)return Bg;if(e.credentialMode===`runtime`)return $g({...e,providerKind:n},t);if(e.access.status!==`ready`)return{state:`unresolved`,cause:e.access.status};if(!Sh(n,e.access.policy).offered)return{state:`withheld`,reason:`not-offered`};let r=Kg(n,e.access);return r===null?$g({...e,providerKind:n},t):r}function $g(e,t){let n=ng({provider:e.snapshot,providerKind:e.providerKind,access:e.access,credentialMode:e.credentialMode});if(!n.eligible&&n.reason===`environment-not-running`)return{state:`withheld`,reason:`not-usable`,detail:`environment-not-running`};if(!n.eligible&&n.reason===`native-runtime-not-ready`)return{state:`withheld`,reason:`not-usable`,detail:`delivery-pending`};let r=Wg(e.snapshot,e.hasLiveInventory);return!n.eligible&&n.reason===`runtime-unavailable`&&t===`run`?e_(r,e.hasLiveInventory)?zg:Vg:r}function e_(e,t){return e.state===`withheld`&&e.reason===`not-on-this-environment`&&(e.detail===`could-not-check`||!t)}var t_={reasoningEffortLevels:[],supportsFastMode:!1,supportsThinkingToggle:!1,contextWindowOptions:[],promptInjectedEffortLevels:[]},n_=[`codex`,`claudeAgent`,`apex`];function r_(e){for(let t of n_){let n=e.find(e=>e.provider===t);if(n&&a_(n))return t}return e.find(a_)?.provider??null}function i_(e,t){return e.find(e=>e.provider===t)?.models??[]}function a_(e){return ph(e)}function o_(e,t){let n=t??r_(e)??`codex`,r=e.find(e=>e.provider===n);if(r&&a_(r)||n===`codex`)return n;for(let t of n_){let n=e.find(e=>e.provider===t);if(n&&a_(n))return t}return`codex`}function s_(e){return e.providers.filter(t=>Xg({providerKind:t.provider,snapshot:t,access:e.access,credentialMode:e.credentialMode,hasLiveInventory:!0}).state===`usable`)}function c_(e,t,n,r){let i=s_({providers:e,access:n,credentialMode:r});return t&&i.some(e=>e.provider===t)?t:r_(i)}function l_(e,t,n,r){return t==null?c_(e,null,n,r):Zg({providers:e,access:n,credentialMode:r,hasLiveInventory:!0}).some(e=>e.provider===t)?t:null}function u_(e,t,n){let r=Dn(t,n);return e.find(e=>e.slug===r)?.capabilities??t_}function d_(e,t,n){let r=i_(e,t).filter(e=>!e.isLegacy);return r.find(e=>e.slug===n)?.slug??r.find(e=>e.isDefault)?.slug??r.find(e=>e.slug===Fi[t])?.slug??r.find(e=>!e.isCustom)?.slug??r[0]?.slug??Fi[t]}function f_(e){let{provider:t,model:n,models:r,prompt:i,modelOptions:a}=e,o=u_(r,n,t),s=a?.[t],c=s?`effort`in s?s.effort:`reasoningEffort`in s?s.reasoningEffort:null:null,l=fn(o,c)??null,u=t===`codex`?Hn(o,s):zn(o,s),d=o.promptInjectedEffortLevels.length>0&&Bn(i);return{provider:t,promptEffort:l,modelOptionsForDispatch:u,...d?{composerFrameClassName:`ultrathink-frame`}:{},...d?{composerSurfaceClassName:`shadow-[0_0_0_1px_rgba(255,255,255,0.04)_inset]`}:{},...d?{modelPickerIconClassName:`ultrathink-chroma`}:{}}}function p_(e,t,n,r){return i_(t,n).map(({slug:e,name:t,isCustom:n,isDefault:r,isLegacy:i})=>({slug:e,name:t,isCustom:n,isDefault:r,isLegacy:i}))}function m_(e,t,n,r,i){let a=fr(e,r,p_(t,n,e,r));if(a&&!yn(a,e))return a;let o=h_(n,e,i),s=p_(t,n,o,r),c=fr(o,r,s)??d_(n,o);return e&&yn(c,e)?d_(n,e):c}function h_(e,t,n){return!t||!bh(t,n)?o_(e,`codex`):o_(e,t)}function g_(e,t,n,r){return{codex:p_(e,t,`codex`,n===`codex`?r:void 0),claudeAgent:p_(e,t,`claudeAgent`,n===`claudeAgent`?r:void 0),ollama:p_(e,t,`ollama`,n===`ollama`?r:void 0),cmmd:p_(e,t,`cmmd`,n===`cmmd`?r:void 0),apex:p_(e,t,`apex`,n===`apex`?r:void 0),cursor:p_(e,t,`cursor`,n===`cursor`?r:void 0),opencode:p_(e,t,`opencode`,n===`opencode`?r:void 0)}}function __(e,t,n){let r=e.textGenerationModelSelection??{provider:`codex`,model:si.codex},i=h_(t,r.provider,n),a=m_(i,e,t,i===r.provider?r.model:null,n),{modelOptionsForDispatch:o}=f_({provider:i,model:a,models:i_(t,i),prompt:``,modelOptions:{[i]:i===r.provider?r.options:void 0}});return{provider:i,model:a,...o?{options:o}:{}}}function v_(e){return e?.options?{[e.provider]:e.options}:null}function y_(e){if(!e)return null;let t={};for(let[n,r]of Object.entries(e))r?.options&&(t[n]=r.options);return Object.keys(t).length>0?t:null}function b_(e){if(e.activeSelection&&`providerAccountId`in e.activeSelection)return e.activeSelection.providerAccountId;for(let t of e.candidates)if(t?.provider===e.selectedProvider&&`providerAccountId`in t)return t.providerAccountId}function x_(e){let t=t=>t!==void 0&&yn(t,e.selectedProvider)?void 0:t,n=t(e.threadModelSelection?.provider===e.selectedProvider?e.threadModelSelection.model:void 0),r=t(e.projectModelSelection?.provider===e.selectedProvider?e.projectModelSelection.model:void 0),i=Dn(n??r,e.selectedProvider)??d_(e.providers,e.selectedProvider),a=e.draft?.modelSelectionByProvider?.[e.selectedProvider],o=b_({activeSelection:a,selectedProvider:e.selectedProvider,candidates:[e.threadModelSelection,e.projectModelSelection]}),s=t(a?.model),c=s?m_(e.selectedProvider,e.settings,e.providers,s):i,l=y_(e.draft?.modelSelectionByProvider)??v_(e.threadModelSelection)??v_(e.projectModelSelection)??null;return{selectedModel:c,...o?{selectedProviderAccountId:o}:{},modelOptions:l}}var S_=zi({id:E,name:E,mimeType:E,sizeBytes:gi,dataUrl:E}),C_=zi({id:E,name:E,mimeType:E,sizeBytes:gi}),w_=zi({id:E,threadId:zr,createdAt:E,terminalId:E,terminalLabel:E,lineStart:gi,lineEnd:gi}),T_=zi({prompt:E,attachments:ji(S_),files:w(ji(C_)),terminalContexts:ji(w_),startedAt:E,commandId:w(Dr),messageId:w(Cr),modelSelection:w(Ei),runtimeMode:w(hi),interactionMode:w(Pi),executionIntent:w(zi({runtimeId:E,intentId:w(E)}))});function E_(e,t){return Array.isArray(e)?e.flatMap(e=>t(e)??[]):[]}function D_(e){if(!(!e||typeof e.runtimeId!=`string`))return{runtimeId:e.runtimeId,...typeof e.intentId==`string`?{intentId:e.intentId}:{}}}function O_(e){return{...typeof e.commandId==`string`?{commandId:Dr.make(e.commandId)}:{},...typeof e.messageId==`string`?{messageId:Cr.make(e.messageId)}:{}}}function k_(e,t){let n=t.modelSelection(e.modelSelection);return{...n?{modelSelection:n}:{},...t.runtimeMode(e.runtimeMode)?{runtimeMode:e.runtimeMode}:{},...e.interactionMode==="default"||e.interactionMode===`plan`?{interactionMode:e.interactionMode}:{}}}function A_(e,t){if(!e||typeof e!=`object`)return null;let n=e;if(typeof n.prompt!=`string`||typeof n.startedAt!=`string`)return null;let r=D_(n.executionIntent);return{prompt:n.prompt,attachments:E_(n.attachments,t.attachment),files:E_(n.files,t.file),terminalContexts:E_(n.terminalContexts,t.terminalContext),startedAt:n.startedAt,...O_(n),...k_(n,t),...r?{executionIntent:r}:{}}}function j_(e){return{id:e.id,threadId:e.threadId,createdAt:e.createdAt,terminalId:e.terminalId,terminalLabel:e.terminalLabel,lineStart:e.lineStart,lineEnd:e.lineEnd}}function M_(e){return{prompt:e.prompt,attachments:[...e.attachments],files:[...e.files],terminalContexts:e.terminalContexts.map(j_),startedAt:e.startedAt,...e.commandId?{commandId:e.commandId}:{},...e.messageId?{messageId:e.messageId}:{},...e.modelSelection?{modelSelection:e.modelSelection}:{},...e.runtimeMode?{runtimeMode:e.runtimeMode}:{},...e.interactionMode?{interactionMode:e.interactionMode}:{},...e.executionIntent?{executionIntent:e.executionIntent}:{}}}function N_(e){return e?{...e,attachments:[...e.attachments],files:[...e.files??[]],terminalContexts:e.terminalContexts.map(e=>({...e,text:``}))}:null}function P_(e,t,n,r){let i=e[t];if(i?.stagedSubmission)return null;let a=B_(i??F_(),r,n);return a?{previousDraft:i,restoredDraft:a,drafts:{...e,[t]:a}}:null}function F_(){return{prompt:``,images:[],files:[],nonPersistedImageIds:[],persistedAttachments:[],terminalContexts:[],modelSelectionByProvider:{},activeProvider:null,runtimeMode:null,interactionMode:null,stagedSubmission:null}}function I_(e){return`${e.mimeType}\u0000${e.sizeBytes}\u0000${e.name}`}function L_(e){return`${e.terminalId}\u0000${e.lineStart}\u0000${e.lineEnd}`}function R_(e,t){let n=t.terminalId.trim(),r=t.terminalLabel.trim(),i=Dm(t.text);if(!n||!r)return null;let a=Math.max(1,Math.floor(t.lineStart));return{...t,threadId:e,terminalId:n,terminalLabel:r,lineStart:a,lineEnd:Math.max(a,Math.floor(t.lineEnd)),text:i}}function z_(e,t){let n=new Set,r=new Set,i=[];for(let a of t){let t=R_(e,a);if(!t)continue;let o=L_(t);n.has(t.id)||r.has(o)||(i.push(t),n.add(t.id),r.add(o))}return i}function B_(e,t,n){let r=H_(e,t);if(!r)return null;let i=V_(e.files??[],t.files);if(r.images.length+i.length>8)return null;let a=U_(e,t,n),o=[e.prompt,t.prompt].filter(e=>e.length>0).join(`
|
|
16
|
-
`);return{...e,prompt:Wm(o,a.contexts.length),images:r.images,files:i,persistedAttachments:r.attachments,terminalContexts:a.contexts,stashTerminalContexts:[...e.stashTerminalContexts??[],...a.restoredSnapshots]}}function V_(e,t){let n=new Set(e.map(e=>e.id));return[...e,...t.filter(e=>!n.has(e.id))]}function H_(e,t){let n=new Map(t.attachments.map(e=>[e.id,e])),r=[...e.images],i=e.persistedAttachments.filter(t=>e.images.some(e=>e.id===t.id)),a=new Set(r.map(e=>e.id)),o=new Set(r.map(I_));for(let e of t.images){let t=n.get(e.id);if(!t)return null;let s=I_(e);a.has(e.id)||o.has(s)||(r.push(e),i.push(t),a.add(e.id),o.add(s))}return r.length>8?null:{images:r,attachments:i}}function U_(e,t,n){let r=[...e.terminalContexts],i=new Set(r.map(e=>e.id)),a=new Set(r.map(L_)),o=[];for(let e of t.terminalContexts){let t=R_(n,e);!t||i.has(t.id)||a.has(L_(t))||(r.push(t),o.push(t),i.add(t.id),a.add(L_(t)))}return{contexts:r,restoredSnapshots:o}}function W_(e,t){return e.prompt===t.prompt&&JSON.stringify(e.attachments)===JSON.stringify(t.persistedAttachments)&&JSON.stringify(e.files??[])===JSON.stringify((t.files??[]).map(({file:e,type:t,...n})=>n))&&JSON.stringify(e.terminalContexts??[])===JSON.stringify(t.terminalContexts.map(({text:e,...t})=>t))&&JSON.stringify(e.stashTerminalContexts??[])===JSON.stringify(t.stashTerminalContexts??[])}function G_(e){typeof URL<`u`&&e.startsWith(`blob:`)&&URL.revokeObjectURL(e)}function K_(e){if(!e||typeof e!=`object`)return null;let{id:t,name:n,mimeType:r,sizeBytes:i,dataUrl:a}=e;return typeof t!=`string`||typeof n!=`string`||typeof r!=`string`||typeof i!=`number`||!Number.isFinite(i)||typeof a!=`string`||t.length===0||a.length===0?null:{id:t,name:n,mimeType:r,sizeBytes:i,dataUrl:a}}function q_(e){if(!e||typeof e!=`object`)return null;let{id:t,name:n,mimeType:r,sizeBytes:i}=e;return typeof t!=`string`||t.length===0||typeof n!=`string`||typeof r!=`string`||typeof i!=`number`||!Number.isSafeInteger(i)||i<0?null:{id:t,name:n,mimeType:r,sizeBytes:i}}async function J_(e,t){let n=await Promise.all(e.map(async e=>{let n=await t.read(e);return{...e,type:`file`,file:n}}));return n.length===e.length?n:null}function Y_(e){let t=X_(e.dataUrl,e.mimeType);return t?new File([t.content],e.name,{type:t.mimeType}):null}function X_(e,t){let n=e.indexOf(`,`),r=n===-1?e:e.slice(0,n),i=n===-1?``:e.slice(n+1);if(i.length===0)return null;try{return r.includes(`;base64`)?{content:$_(i),mimeType:t}:{content:Q_(i),mimeType:Z_(r,t)}}catch{return null}}function Z_(e,t){return!e.startsWith(`data:`)||!e.includes(`;`)?t:e.slice(5,e.indexOf(`;`))||t}function Q_(e){return decodeURIComponent(e)}function $_(e){let t=atob(e),n=new Uint8Array(new ArrayBuffer(t.length));for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}function ev(e){return e.flatMap(e=>{let t=Y_(e);return t?[{type:`image`,id:e.id,name:e.name,mimeType:e.mimeType,sizeBytes:e.sizeBytes,previewUrl:e.dataUrl,file:t}]:[]})}function tv(e){return{prompt:e.prompt,images:[...e.images],files:[...e.files??[]],persistedAttachments:[...e.persistedAttachments],terminalContexts:[...e.terminalContexts]}}function nv({file:e,previewUrl:t,...n}){return n}function rv(e,t){return e.prompt===t.prompt&&JSON.stringify(e.images.map(nv))===JSON.stringify(t.images.map(nv))&&JSON.stringify((e.files??[]).map(({file:e,...t})=>t))===JSON.stringify(t.files.map(({file:e,...t})=>t))&&JSON.stringify(e.persistedAttachments)===JSON.stringify(t.persistedAttachments)&&JSON.stringify(e.terminalContexts)===JSON.stringify(t.terminalContexts)}function iv(e){let{lastGeneratedPullRequestPrompt:t,...n}=e;return{...n,prompt:``,images:[],files:[],nonPersistedImageIds:[],persistedAttachments:[],terminalContexts:[],stashTerminalContexts:[]}}function N(e){return e.prompt.length===0&&e.lastGeneratedPullRequestPrompt===void 0&&e.images.length===0&&(e.files?.length??0)===0&&e.persistedAttachments.length===0&&e.terminalContexts.length===0&&Object.keys(e.modelSelectionByProvider).length===0&&e.activeProvider===null&&e.runtimeMode===null&&e.interactionMode===null&&e.stagedSubmission==null}function av(e){switch(e){case`codex`:case`claudeAgent`:case`ollama`:case`cmmd`:case`apex`:case`cursor`:case`opencode`:return e;default:return null}}function ov(e){return _i.some(t=>t===e)}function sv(e){return wi.some(t=>t===e)}function cv(e,t,n){let r=e&&typeof e==`object`?e:null,i=r?.codex&&typeof r.codex==`object`?r.codex:null,a=r?.claudeAgent&&typeof r.claudeAgent==`object`?r.claudeAgent:null,o=ov(i?.reasoningEffort)?i.reasoningEffort:t===`codex`&&ov(n?.effort)?n.effort:void 0,s=i?.fastMode===!0?!0:i?.fastMode===!1?!1:t===`codex`&&n?.codexFastMode===!0||typeof n?.serviceTier==`string`&&n.serviceTier===`fast`||void 0,c=o!==void 0||s!==void 0?{...o===void 0?{}:{reasoningEffort:o},...s===void 0?{}:{fastMode:s}}:void 0,l=a?.thinking===!0||a?.thinking!==!1&&void 0,u=sv(a?.effort)?a.effort:void 0,d=a?.fastMode===!0||a?.fastMode!==!1&&void 0,f=typeof a?.contextWindow==`string`&&a.contextWindow.length>0?a.contextWindow:void 0,p=l!==void 0||u!==void 0||d!==void 0||f!==void 0?{...l===void 0?{}:{thinking:l},...u===void 0?{}:{effort:u},...d===void 0?{}:{fastMode:d},...f===void 0?{}:{contextWindow:f}}:void 0;return!c&&!p?null:{...c?{codex:c}:{},...p?{claudeAgent:p}:{}}}function lv(e,t){let n=e&&typeof e==`object`?e:null,r=av(n?.provider??t?.provider);if(r===null)return null;let i=n?.model??t?.model;if(typeof i!=`string`)return null;let a=Dn(i,r);if(!a)return null;let o=cv(n?.options?{[r]:n.options}:t?.modelOptions,r,r===`codex`?t?.legacyCodex:void 0),s=r===`codex`?o?.codex:o?.claudeAgent,c=n?.providerAccountId,l=typeof c==`string`&&c.trim().length>0?c.trim():void 0;return{provider:r,model:a,...l?{providerAccountId:l}:{},...s?{options:s}:{}}}function uv(e,t){if(e===null)return null;let n=t?.[e.provider];return{provider:e.provider,model:e.model,...`providerAccountId`in e&&e.providerAccountId?{providerAccountId:e.providerAccountId}:{},...n?{options:n}:{}}}function dv(e,t){return e?.options===void 0?cv(t):fv(cv(t),e.provider,e.options)}function fv(e,t,n){let{[t]:r,...i}=e??{},a=cv({[t]:n},t);return cv({...i,...a||{}})}function pv(e,t){let n={};if(t)for(let r of[`codex`,`claudeAgent`]){let i=t[r];i&&Object.keys(i).length>0&&(n[r]={provider:r,model:e?.provider===r?e.model:Fi[r],options:i})}return e&&(n[e.provider]=e),n}var mv=`forge:composer-drafts:v1`,hv=5,gv=Oi([`local`,`worktree`]),_v=Br(hi),vv=300,yv=fh({storage:typeof localStorage<`u`?localStorage:gr(),version:hv,canMigrate:Ev}),bv=gn(yv,vv);typeof window<`u`&&typeof window.addEventListener==`function`&&window.addEventListener(`beforeunload`,()=>{bv.flush()});var xv=zi({prompt:E,lastGeneratedPullRequestPrompt:w(E),attachments:ji(S_),files:w(ji(C_)),terminalContexts:w(ji(w_)),stashTerminalContexts:w(ji(zi({...w_.fields,text:E}))),modelSelectionByProvider:w(oi(fi,w(Ei))),activeProvider:w(vi(fi)),runtimeMode:w(hi),interactionMode:w(Pi),stagedSubmission:w(T_)});zi({effort:w(Oi(_i)),codexFastMode:w(di),serviceTier:w(E)}),zi({provider:w(fi),model:w(E),modelOptions:w(vi(Er))}),zi({stickyProvider:w(fi),stickyModel:w(E),stickyModelOptions:w(vi(Er))});var Sv=zi({threadId:zr,environmentId:E,projectId:xi,logicalProjectKey:w(E),createdAt:E,runtimeMode:hi,interactionMode:Pi,branch:vi(E),worktreePath:vi(E),envMode:gv,promotedTo:w(vi(zi({environmentId:E,threadId:E}))),anchorKind:w(Ur),anchorCmmdId:w(vi(E)),linkedPullRequest:w(vi(Ni))}),Cv=zi({draftsByThreadKey:oi(E,xv),draftThreadsByThreadKey:oi(E,Sv),logicalProjectDraftThreadKeyByLogicalProjectKey:oi(E,E),stickyModelSelectionByProvider:w(oi(fi,w(Ei))),stickyActiveProvider:w(vi(fi))}),wv=zi({version:gi,state:Cv}),Tv=Si(wv);function Ev(e,t){if(e===null)return!0;try{let n=JSON.parse(e);if(!n||typeof n!=`object`)return!1;let r=n;return r.version===t?(Tv(n),!0):typeof r.version==`number`&&Number.isInteger(r.version)&&r.version>=1&&r.version<t&&r.state!==null&&typeof r.state==`object`}catch{return!1}}function Dv(e){if(e===null)return new Set;try{let t=Tv(JSON.parse(e));if(t.version!==hv)return null;let n=new Set;for(let e of Object.values(t.state.draftsByThreadKey)){for(let t of e.files??[])n.add(t.id);for(let t of e.stagedSubmission?.files??[])n.add(t.id)}return n}catch{return null}}function Ov(){bv.flush()}var kv=Object.freeze({draftsByThreadKey:{},draftThreadsByThreadKey:{},logicalProjectDraftThreadKeyByLogicalProjectKey:{},stickyModelSelectionByProvider:{},stickyActiveProvider:null}),Av=[],jv=[],Mv=[],Nv=[],Pv=[];Object.freeze(Av),Object.freeze(Mv),Object.freeze(Nv);var Fv=Object.freeze({}),Iv=Object.freeze({activeProvider:null,modelSelectionByProvider:Fv}),Lv=Object.freeze({prompt:``,images:Av,files:jv,nonPersistedImageIds:Mv,persistedAttachments:Nv,terminalContexts:Pv,modelSelectionByProvider:Fv,activeProvider:null,runtimeMode:null,interactionMode:null,stagedSubmission:null});function Rv(){return{prompt:``,images:[],files:[],nonPersistedImageIds:[],persistedAttachments:[],terminalContexts:[],modelSelectionByProvider:{},activeProvider:null,runtimeMode:null,interactionMode:null,stagedSubmission:null}}function zv(e){if(!e||typeof e!=`object`)return null;let t=e,n=t.id,r=t.threadId,i=t.createdAt,a=t.lineStart,o=t.lineEnd;if(typeof n!=`string`||n.length===0||typeof r!=`string`||r.length===0||typeof i!=`string`||i.length===0||typeof a!=`number`||!Number.isFinite(a)||typeof o!=`number`||!Number.isFinite(o))return null;let s=typeof t.terminalId==`string`?t.terminalId.trim():``,c=typeof t.terminalLabel==`string`?t.terminalLabel.trim():``;if(s.length===0||c.length===0)return null;let l=Math.max(1,Math.floor(a));return{id:n,threadId:r,createdAt:i,terminalId:s,terminalLabel:c,lineStart:l,lineEnd:Math.max(l,Math.floor(o))}}function Bv(e,t){return e===`local`||e===`worktree`?e:t?`worktree`:`local`}function Vv(e){return Fn(e)}function Hv(e){return e.trim()}function Uv(e){return typeof e==`string`?e.trim():Ln(e)}function Wv(e,t){let n=hn(e);return n?Uv(n):t?.environmentId?Uv(C(t.environmentId,e)):e}function Gv(e){return hn(e)}function Kv(e,t){if(typeof t==`string`){let e=t.trim();return e.length>0?ba.make(e):null}return t}function P(e,t){let n=Kv(e,t);if(!n)return null;if(typeof n!=`string`){let t=Uv(n);if(e.draftsByThreadKey[t])return t;for(let[t,r]of Object.entries(e.draftThreadsByThreadKey))if(r.environmentId===n.environmentId&&r.threadId===n.threadId)return t;return t}let r=Uv(n);return r.length>0?r:null}function qv(e,t){let n=Kv(e,t);return n?typeof n==`string`?e.draftThreadsByThreadKey[n]?.threadId??zr.make(n):n.threadId:null}function Jv(e,t){let n=P(e,t);return n?e.draftsByThreadKey[n]??null:null}function Yv(e,t){return Object.values(e).includes(t)}function Xv(e,t){return{draftId:e,...t}}function Zv(e,t,n,r,i){let a=r!==void 0&&(r.environmentId!==e.environmentId||r.projectId!==e.projectId),o=i?.worktreePath===void 0?a?null:r?.worktreePath??null:i.worktreePath??null,s=i?.branch===void 0?a?null:r?.branch??null:i.branch??null,c=i?.anchorKind===void 0?r?.anchorKind:i.anchorKind??void 0;return{threadId:t,environmentId:e.environmentId,projectId:e.projectId,logicalProjectKey:n,createdAt:i?.createdAt??r?.createdAt??new Date().toISOString(),runtimeMode:i?.runtimeMode??r?.runtimeMode??`full-access`,interactionMode:i?.interactionMode??r?.interactionMode??`default`,branch:s,worktreePath:o,envMode:i?.envMode??(o?`worktree`:a?`local`:r?.envMode??`local`),promotedTo:null,cmmdTaskId:i?.cmmdTaskId===void 0?r?.cmmdTaskId??null:i.cmmdTaskId,anchorCmmdId:i?.anchorCmmdId===void 0?r?.anchorCmmdId??null:i.anchorCmmdId,linkedPullRequest:i?.linkedPullRequest===void 0?r?.linkedPullRequest??null:i.linkedPullRequest,...c===void 0?{}:{anchorKind:c}}}function Qv(e,t){return!e||!t?e===t:e.environmentId===t.environmentId&&e.threadId===t.threadId}function $v(e){return e?.promotedTo!==null&&e?.promotedTo!==void 0}function ey(e,t){return!!e&&e.threadId===t.threadId&&e.environmentId===t.environmentId&&e.projectId===t.projectId&&e.logicalProjectKey===t.logicalProjectKey&&e.createdAt===t.createdAt&&e.runtimeMode===t.runtimeMode&&e.interactionMode===t.interactionMode&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.envMode===t.envMode&&(e.anchorKind??void 0)===(t.anchorKind??void 0)&&(e.anchorCmmdId??null)===(t.anchorCmmdId??null)&&ty(e.linkedPullRequest,t.linkedPullRequest)&&Qv(e.promotedTo,t.promotedTo)}function ty(e,t){return(e?.projectId??null)===(t?.projectId??null)&&(e?.projectRepositoryId??null)===(t?.projectRepositoryId??null)&&(e?.provider??null)===(t?.provider??null)&&(e?.host??null)===(t?.host??null)&&(e?.repository??null)===(t?.repository??null)&&(e?.number??null)===(t?.number??null)&&(e?.url??null)===(t?.url??null)}function ny(e,t){let n=Object.fromEntries(Object.entries(e.logicalProjectDraftThreadKeyByLogicalProjectKey).filter(([,e])=>e!==t)),{[t]:r,...i}=e.draftThreadsByThreadKey,{[t]:a,...o}=e.draftsByThreadKey;return{draftsByThreadKey:o,draftThreadsByThreadKey:i,logicalProjectDraftThreadKeyByLogicalProjectKey:n}}function ry(e,t){let n={},r=new Map;if(t&&typeof t==`object`)for(let[e,n]of Object.entries(t)){if(typeof n!=`string`||n.length===0)continue;let t=br(e);if(!t)continue;let i=hn(n);if(i){r.set(i.threadId,i.environmentId);continue}r.set(n,t.environmentId)}if(e&&typeof e==`object`)for(let[t,i]of Object.entries(e)){if(typeof t!=`string`||t.length===0||!i||typeof i!=`object`)continue;let e=i,a=hn(t),o=Wv(t),s=a?.threadId??(typeof e.threadId==`string`&&e.threadId.length>0?e.threadId:t),c=a?.environmentId??(typeof e.environmentId==`string`&&e.environmentId.length>0?e.environmentId:r.get(t)),l=e.projectId,u=e.createdAt,d=e.branch,f=e.worktreePath,p=typeof f==`string`?f:null,m=e.promotedTo,h=m&&typeof m==`object`?m:null,g=h&&typeof h.environmentId==`string`&&h.environmentId.length>0&&typeof h.threadId==`string`&&h.threadId.length>0?C(h.environmentId,h.threadId):null;if(typeof l!=`string`||l.length===0||c===void 0)continue;let _=c;n[o]={threadId:s,environmentId:_,projectId:l,logicalProjectKey:typeof e.logicalProjectKey==`string`&&e.logicalProjectKey.length>0?e.logicalProjectKey:a?Vv(In(_,l)):t,createdAt:typeof u==`string`&&u.length>0?u:new Date().toISOString(),runtimeMode:_v(e.runtimeMode)?e.runtimeMode:op,interactionMode:e.interactionMode===`plan`||e.interactionMode==="default"?e.interactionMode:sp,branch:typeof d==`string`?d:null,worktreePath:p,envMode:Bv(e.envMode,p),promotedTo:g}}let i={};if(t&&typeof t==`object`)for(let[e,a]of Object.entries(t)){if(typeof a!=`string`||a.length===0)continue;let t=br(e),o=hn(a),s=Wv(a);if(i[e]=s,o&&r.set(o.threadId,o.environmentId),!t){let t=n[s];t&&!t.logicalProjectKey&&(n[s]={...t,logicalProjectKey:e});continue}n[s]?(n[s]?.projectId!==t.projectId||n[s]?.environmentId!==t.environmentId)&&(n[s]={...n[s],threadId:n[s].threadId,environmentId:t.environmentId,projectId:t.projectId,logicalProjectKey:e}):n[s]={threadId:o?.threadId??s,environmentId:t.environmentId,projectId:t.projectId,logicalProjectKey:e,createdAt:new Date().toISOString(),runtimeMode:op,interactionMode:sp,branch:null,worktreePath:null,envMode:`local`,promotedTo:null}}return{draftThreadsByThreadKey:n,logicalProjectDraftThreadKeyByLogicalProjectKey:i}}function iy(e,t){if(!e||typeof e!=`object`)return{};let n=new Map;for(let[e,r]of Object.entries(t)){let t=Gv(e);t&&n.set(t.threadId,r.environmentId)}let r={};for(let[i,a]of Object.entries(e)){if(typeof i!=`string`||i.length===0||!a||typeof a!=`object`)continue;let e=a,o=typeof e.prompt==`string`?e.prompt:``,s=typeof e.lastGeneratedPullRequestPrompt==`string`?e.lastGeneratedPullRequestPrompt:void 0,c=Array.isArray(e.attachments)?e.attachments.flatMap(e=>{let t=K_(e);return t?[t]:[]}):[],l=Array.isArray(e.files)?e.files.flatMap(e=>{let t=q_(e);return t?[t]:[]}):[],u=Array.isArray(e.terminalContexts)?e.terminalContexts.flatMap(e=>{let t=zv(e);return t?[t]:[]}):[],d=Array.isArray(e.stashTerminalContexts)?e.stashTerminalContexts.flatMap(e=>{let t=zv(e),n=typeof e.text==`string`?e.text:``;return t&&n.length>0?[{...t,text:n}]:[]}):[],f=_v(e.runtimeMode)?e.runtimeMode:null,p=e.interactionMode===`plan`||e.interactionMode==="default"?e.interactionMode:null,m=A_(e.stagedSubmission,{attachment:K_,file:q_,terminalContext:zv,modelSelection:e=>lv(e)??null,runtimeMode:_v}),h=Wm(o,u.length),g=a,_={},v=null;if(e.modelSelectionByProvider&&typeof e.modelSelectionByProvider==`object`)_=e.modelSelectionByProvider,v=av(e.activeProvider);else{let e=cv(g.modelOptions,void 0,g)??null,t=lv(g.modelSelection,{provider:g.provider,model:g.model,modelOptions:e??g.modelOptions,legacyCodex:g}),n=dv(t,e),r=uv(t,n);_=pv(r,n),v=r?.provider??null}let y=Object.keys(_).length>0||v!==null;if(o.length===0&&c.length===0&&l.length===0&&u.length===0&&d.length===0&&!y&&!f&&!p&&!m)continue;let b=hn(i)===null?t[i]===void 0?(()=>{let e=n.get(i);return e?Wv(i,{environmentId:e}):i})():i:Wv(i);r[b]={prompt:h,...s===void 0?{}:{lastGeneratedPullRequestPrompt:s},attachments:c,...l.length>0?{files:l}:{},...u.length>0?{terminalContexts:u}:{},...d.length>0?{stashTerminalContexts:d}:{},...y?{modelSelectionByProvider:_,activeProvider:v}:{},...f?{runtimeMode:f}:{},...p?{interactionMode:p}:{},...m?{stagedSubmission:m}:{}}}return r}function ay(e){if(!e||typeof e!=`object`)return kv;let t=e,n=t.draftsByThreadKey??t.draftsByThreadId,r=t.draftThreadsByThreadKey??t.draftThreadsByThreadId,i=t.logicalProjectDraftThreadKeyByLogicalProjectKey??t.projectDraftThreadKeyByProjectKey??t.projectDraftThreadIdByProjectKey??t.projectDraftThreadIdByProjectId,a=cv(t.stickyModelOptions)??{},o=lv(t.stickyModelSelection,{provider:t.stickyProvider??`codex`,model:t.stickyModel,modelOptions:a}),s=dv(o,a),c=pv(uv(o,s),s),l=av(t.stickyProvider)??null,{draftThreadsByThreadKey:u,logicalProjectDraftThreadKeyByLogicalProjectKey:d}=ry(r,i);return{draftsByThreadKey:iy(n,u),draftThreadsByThreadKey:u,logicalProjectDraftThreadKeyByLogicalProjectKey:d,stickyModelSelectionByProvider:c,stickyActiveProvider:l}}function oy(e){let t={};for(let[n,r]of Object.entries(e.draftsByThreadKey)){if(typeof n!=`string`||n.length===0)continue;let e=Object.keys(r.modelSelectionByProvider).length>0||r.activeProvider!==null;r.prompt.length===0&&r.lastGeneratedPullRequestPrompt===void 0&&r.persistedAttachments.length===0&&(r.files?.length??0)===0&&r.terminalContexts.length===0&&!e&&r.runtimeMode===null&&r.interactionMode===null&&r.stagedSubmission==null||(t[n]={prompt:r.prompt,...r.lastGeneratedPullRequestPrompt===void 0?{}:{lastGeneratedPullRequestPrompt:r.lastGeneratedPullRequestPrompt},attachments:r.persistedAttachments,...(r.files?.length??0)>0?{files:r.files.map(({file:e,type:t,...n})=>n)}:{},...r.terminalContexts.length>0?{terminalContexts:r.terminalContexts.map(e=>({id:e.id,threadId:e.threadId,createdAt:e.createdAt,terminalId:e.terminalId,terminalLabel:e.terminalLabel,lineStart:e.lineStart,lineEnd:e.lineEnd}))}:{},...r.stashTerminalContexts&&r.stashTerminalContexts.length>0?{stashTerminalContexts:r.stashTerminalContexts.map(e=>({id:e.id,threadId:e.threadId,createdAt:e.createdAt,terminalId:e.terminalId,terminalLabel:e.terminalLabel,lineStart:e.lineStart,lineEnd:e.lineEnd,text:e.text}))}:{},...e?{modelSelectionByProvider:r.modelSelectionByProvider,activeProvider:r.activeProvider}:{},...r.runtimeMode?{runtimeMode:r.runtimeMode}:{},...r.interactionMode?{interactionMode:r.interactionMode}:{},...r.stagedSubmission?{stagedSubmission:M_(r.stagedSubmission)}:{}})}return{draftsByThreadKey:t,draftThreadsByThreadKey:e.draftThreadsByThreadKey,logicalProjectDraftThreadKeyByLogicalProjectKey:e.logicalProjectDraftThreadKeyByLogicalProjectKey,stickyModelSelectionByProvider:e.stickyModelSelectionByProvider,stickyActiveProvider:e.stickyActiveProvider}}function sy(e){if(!e||typeof e!=`object`)return kv;let t=e,{draftThreadsByThreadKey:n,logicalProjectDraftThreadKeyByLogicalProjectKey:r}=ry(t.draftThreadsByThreadKey??t.draftThreadsByThreadId,t.logicalProjectDraftThreadKeyByLogicalProjectKey??t.projectDraftThreadKeyByProjectKey??t.projectDraftThreadIdByProjectKey??t.projectDraftThreadIdByProjectId),i={},a=null;if(t.stickyModelSelectionByProvider&&typeof t.stickyModelSelectionByProvider==`object`)i=t.stickyModelSelectionByProvider,a=av(t.stickyActiveProvider);else{let e=cv(t.stickyModelOptions)??{},n=lv(t.stickyModelSelection,{provider:t.stickyProvider,model:t.stickyModel,modelOptions:e}),r=dv(n,e);i=pv(uv(n,r),r),a=av(t.stickyProvider)}return{draftsByThreadKey:iy(t.draftsByThreadKey??t.draftsByThreadId,n),draftThreadsByThreadKey:n,logicalProjectDraftThreadKeyByLogicalProjectKey:r,stickyModelSelectionByProvider:i,stickyActiveProvider:a}}function cy(e){if(e.length===0)return[];try{let t=jn(mv,wv);return!t||t.version!==hv?[]:(t.state.draftsByThreadKey[e]?.attachments??[]).map(e=>e.id)}catch{return[]}}function ly(e){if(e.length===0)return null;try{let t=bv.getItem(mv);if(typeof t!=`string`)return null;let n=Tv(JSON.parse(t));return!n||n.version!==hv?null:n.state.draftsByThreadKey[e]??null}catch{return null}}function uy(e,t,n){let r=new Set;try{bv.flush(),r=new Set(cy(e))}catch{r=new Set}n(n=>{let i=n.draftsByThreadKey[e];if(!i)return n;let a=new Set(i.images.map(e=>e.id)),o=t.filter(e=>a.has(e.id)&&r.has(e.id)),s=i.images.map(e=>e.id).filter(e=>!r.has(e)),c={...i,persistedAttachments:o,nonPersistedImageIds:s},l={...n.draftsByThreadKey};return N(c)?delete l[e]:l[e]=c,{draftsByThreadKey:l}})}function dy(e,t){return e.length>0?e:t?.prompt??``}function fy(e,t){return e?.length?e:t??[]}function py(e){let t=e.stagedSubmission;return{prompt:dy(e.prompt,t),attachments:fy(e.attachments,t?.attachments),files:fy(e.files,t?.files),terminalContexts:fy(e.terminalContexts,t?.terminalContexts)}}function my(e){let t=e.modelSelectionByProvider??{},n=av(e.activeProvider)??null,r=py(e);return{prompt:r.prompt,...e.lastGeneratedPullRequestPrompt===void 0?{}:{lastGeneratedPullRequestPrompt:e.lastGeneratedPullRequestPrompt},images:ev(r.attachments),files:r.files.map(e=>({...e,type:`file`,file:null})),nonPersistedImageIds:[],persistedAttachments:[...r.attachments],terminalContexts:r.terminalContexts.map(t=>{let n=e.stashTerminalContexts?.find(e=>e.id===t.id);return Object.assign({},t,{text:n?.text??``})}),...e.stashTerminalContexts&&e.stashTerminalContexts.length>0?{stashTerminalContexts:e.stashTerminalContexts.map(e=>({...e}))}:{},modelSelectionByProvider:t,activeProvider:n,runtimeMode:e.runtimeMode??null,interactionMode:e.interactionMode??null,stagedSubmission:N_(e.stagedSubmission)}}function hy(e){return{threadId:e.threadId,environmentId:e.environmentId,projectId:e.projectId,logicalProjectKey:e.logicalProjectKey??Vv(In(e.environmentId,e.projectId)),createdAt:e.createdAt,runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,branch:e.branch,worktreePath:e.worktreePath,envMode:e.envMode,promotedTo:e.promotedTo?C(e.promotedTo.environmentId,e.promotedTo.threadId):null,linkedPullRequest:e.linkedPullRequest??null}}var gy=wa()(Wf((e,t)=>{let n=e;return{draftsByThreadKey:{},draftThreadsByThreadKey:{},logicalProjectDraftThreadKeyByLogicalProjectKey:{},stickyModelSelectionByProvider:{},stickyActiveProvider:null,getComposerDraft:e=>Jv(t(),e),getDraftThreadByLogicalProjectKey:e=>t().getDraftSessionByLogicalProjectKey(e),getDraftSessionByLogicalProjectKey:e=>{let n=Hv(e);if(n.length===0)return null;let r=t().logicalProjectDraftThreadKeyByLogicalProjectKey[n];if(!r)return null;let i=t().draftThreadsByThreadKey[r];return!i||$v(i)?null:Xv(ba.make(r),i)},getDraftThreadByProjectRef:e=>t().getDraftSessionByProjectRef(e),getDraftSessionByProjectRef:e=>{for(let[n,r]of Object.entries(t().draftThreadsByThreadKey))if(!$v(r)&&r.projectId===e.projectId&&r.environmentId===e.environmentId)return Xv(ba.make(n),r);return null},getDraftSession:e=>t().draftThreadsByThreadKey[e]??null,getDraftSessionByRef:e=>{for(let n of Object.values(t().draftThreadsByThreadKey))if(n.environmentId===e.environmentId&&n.threadId===e.threadId)return n;return null},getDraftThread:e=>typeof e==`string`?t().getDraftSession(ba.make(e)):t().getDraftSessionByRef(e),getDraftThreadByRef:e=>t().getDraftSessionByRef(e),listDraftThreadKeys:()=>Object.values(t().draftThreadsByThreadKey).map(e=>Ln(C(e.environmentId,e.threadId))),hasDraftThreadsInEnvironment:e=>Object.values(t().draftThreadsByThreadKey).some(t=>t.environmentId===e),setLogicalProjectDraftThreadId:(e,t,r,i)=>{let a=Hv(e);a.length!==0&&r.length!==0&&n(e=>{let n=e.draftThreadsByThreadKey[r],o=e.logicalProjectDraftThreadKeyByLogicalProjectKey[a],s=Zv(t,i?.threadId??n?.threadId??zr.make(r),a,n,i);if(o===r&&ey(n,s))return e;let c={...e.logicalProjectDraftThreadKeyByLogicalProjectKey,[a]:r},l={...e.draftThreadsByThreadKey,[r]:s},u=e.draftsByThreadKey,d=o===void 0?void 0:l[o];return o&&o!==r&&!Yv(c,o)&&!$v(d)&&(delete l[o],e.draftsByThreadKey[o]!==void 0&&(u={...e.draftsByThreadKey},delete u[o])),{draftsByThreadKey:u,draftThreadsByThreadKey:l,logicalProjectDraftThreadKeyByLogicalProjectKey:c}})},setProjectDraftThreadId:(e,n,r)=>{t().setLogicalProjectDraftThreadId(Vv(e),e,n,r)},setDraftThreadContext:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&n(e=>{let t=e.draftThreadsByThreadKey[i];if(!t)return e;let n=r.projectRef??{environmentId:t.environmentId,projectId:t.projectId};if(n.projectId.length===0||n.environmentId.length===0)return e;let a=n.environmentId!==t.environmentId||n.projectId!==t.projectId,o=r.worktreePath===void 0?a?null:t.worktreePath:r.worktreePath??null,s=r.branch===void 0?a?null:t.branch:r.branch??null,c=r.anchorKind===void 0?t.anchorKind:r.anchorKind??void 0,l={threadId:t.threadId,environmentId:n.environmentId,projectId:n.projectId,logicalProjectKey:t.logicalProjectKey,createdAt:r.createdAt===void 0?t.createdAt:r.createdAt||t.createdAt,runtimeMode:r.runtimeMode??t.runtimeMode,interactionMode:r.interactionMode??t.interactionMode,branch:s,worktreePath:o,envMode:r.envMode??(o?`worktree`:a?`local`:t.envMode??`local`),promotedTo:t.promotedTo??null,cmmdTaskId:r.cmmdTaskId===void 0?t.cmmdTaskId??null:r.cmmdTaskId,anchorCmmdId:r.anchorCmmdId===void 0?t.anchorCmmdId??null:r.anchorCmmdId,linkedPullRequest:r.linkedPullRequest===void 0?t.linkedPullRequest??null:r.linkedPullRequest,...c===void 0?{}:{anchorKind:c}};return l.environmentId===t.environmentId&&l.projectId===t.projectId&&l.logicalProjectKey===t.logicalProjectKey&&l.createdAt===t.createdAt&&l.runtimeMode===t.runtimeMode&&l.interactionMode===t.interactionMode&&l.branch===t.branch&&l.worktreePath===t.worktreePath&&l.envMode===t.envMode&&(l.anchorKind??void 0)===(t.anchorKind??void 0)&&(l.anchorCmmdId??null)===(t.anchorCmmdId??null)&&ty(l.linkedPullRequest,t.linkedPullRequest)&&Qv(l.promotedTo,t.promotedTo)?e:{draftThreadsByThreadKey:{...e.draftThreadsByThreadKey,[i]:l}}})},clearProjectDraftThreadId:e=>{n(t=>{let n=Object.entries(t.draftThreadsByThreadKey).find(([,t])=>t.projectId===e.projectId&&t.environmentId===e.environmentId);return n?ny(t,n[0]):t})},clearProjectDraftThreadById:(e,r)=>{let i=P(t(),r)??``;i.length!==0&&n(t=>{let n=t.draftThreadsByThreadKey[i];return!n||n.projectId!==e.projectId||n.environmentId!==e.environmentId?t:ny(t,i)})},markDraftThreadPromoting:(e,r)=>{let i=P(t(),e);i&&n(e=>{let t=e.draftThreadsByThreadKey[i];if(!t)return e;let n=r??C(t.environmentId,t.threadId);return Qv(t.promotedTo,n)?e:{draftThreadsByThreadKey:{...e.draftThreadsByThreadKey,[i]:{...t,promotedTo:n}}}})},finalizePromotedDraftThread:e=>{let r=P(t(),e)??``;r.length!==0&&n(e=>{let t=e.draftThreadsByThreadKey[r];if(!$v(t))return e;let n=Uv(t.promotedTo),i=e.draftsByThreadKey[n],a=e.draftsByThreadKey[r];return ny(a?{...e,draftsByThreadKey:{...e.draftsByThreadKey,[n]:i?{...i,modelSelectionByProvider:{...i.modelSelectionByProvider,...a.modelSelectionByProvider},activeProvider:a.activeProvider,runtimeMode:a.runtimeMode,interactionMode:a.interactionMode}:a}}:e,r)})},clearDraftThread:e=>{let r=P(t(),e)??``;if(r.length===0)return;let i=t().draftsByThreadKey[r];if(i)for(let e of i.images)G_(e.previewUrl);n(e=>{let t=e.draftThreadsByThreadKey[r]!==void 0,n=Object.values(e.logicalProjectDraftThreadKeyByLogicalProjectKey).includes(r),i=e.draftsByThreadKey[r]!==void 0;return!t&&!n&&!i?e:ny(e,r)})},setStickyModelSelection:e=>{let t=lv(e);n(e=>{if(!t)return e;let n={...e.stickyModelSelectionByProvider,[t.provider]:t};return rt(e.stickyModelSelectionByProvider,n)?e.stickyActiveProvider===t.provider?e:{stickyActiveProvider:t.provider}:{stickyModelSelectionByProvider:n,stickyActiveProvider:t.provider}})},applyStickyState:e=>{let r=P(t(),e)??``;r.length!==0&&n(e=>{let t=e.stickyModelSelectionByProvider,n=e.stickyActiveProvider;if(Object.keys(t).length===0&&n===null)return e;let i=e.draftsByThreadKey[r]??Rv(),a={...i.modelSelectionByProvider};for(let[e,n]of Object.entries(t))if(n){let t=a[e];a[e]={...n,model:t?.model??n.model}}if(rt(i.modelSelectionByProvider,a)&&i.activeProvider===n)return e;let o={...i,modelSelectionByProvider:a,activeProvider:n},s={...e.draftsByThreadKey};return N(o)?delete s[r]:s[r]=o,{draftsByThreadKey:s}})},setPrompt:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&n(e=>{let t=e.draftsByThreadKey[i]??Rv();if(t.prompt===r)return e;let n={...t,prompt:r},a={...e.draftsByThreadKey};return N(n)?delete a[i]:a[i]=n,{draftsByThreadKey:a}})},setGeneratedPullRequestPrompt:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&n(e=>{let t=e.draftsByThreadKey[i]??Rv();return{draftsByThreadKey:{...e.draftsByThreadKey,[i]:{...t,lastGeneratedPullRequestPrompt:r}}}})},setPendingAutoSubmit:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&n(e=>{let t=e.draftsByThreadKey[i]??Rv();if((t.pendingAutoSubmit??!1)===r)return e;let n=r?{...t,pendingAutoSubmit:!0}:(()=>{let{pendingAutoSubmit:e,...n}=t;return n})(),a={...e.draftsByThreadKey};return N(n)?delete a[i]:a[i]=n,{draftsByThreadKey:a}})},stageComposerSubmission:(e,r,i,a,o,s,c)=>{let l=P(t(),e)??``;l.length!==0&&(n(e=>{let t=e.draftsByThreadKey[l];if(!t)return e;let n={prompt:t.prompt,attachments:[...c??t.persistedAttachments],files:(t.files??[]).map(({file:e,type:t,...n})=>n),terminalContexts:[...t.terminalContexts],startedAt:r,commandId:i,messageId:a,...o?{executionIntent:o}:{},...s},u={...e.draftsByThreadKey};return u[l]={...t,stagedSubmission:n},{draftsByThreadKey:u}}),bv.flush())},setStagedComposerExecutionIntent:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&(n(e=>{let t=e.draftsByThreadKey[i];return t?.stagedSubmission?{draftsByThreadKey:{...e.draftsByThreadKey,[i]:{...t,stagedSubmission:{...t.stagedSubmission,executionIntent:r}}}}:e}),bv.flush())},clearStagedComposerSubmission:e=>{let r=P(t(),e)??``;r.length!==0&&n(e=>{let t=e.draftsByThreadKey[r];if(!t?.stagedSubmission)return e;let n={...t,stagedSubmission:null},i={...e.draftsByThreadKey};return N(n)?delete i[r]:i[r]=n,{draftsByThreadKey:i}})},setTerminalContexts:(e,r,i)=>{let a=P(t(),e),o=qv(t(),e);if(!a||!o)return;let s=z_(o,r);n(e=>{let t=e.draftsByThreadKey[a]??Rv(),n={...t,prompt:Wm(t.prompt,s.length),terminalContexts:s,...i?.preserveTextForReload?{stashTerminalContexts:s}:{stashTerminalContexts:[]}},r={...e.draftsByThreadKey};return N(n)?delete r[a]:r[a]=n,{draftsByThreadKey:r}})},setModelSelection:(e,r)=>{let i=P(t(),e)??``;if(i.length===0)return;let a=lv(r);n(e=>{let t=e.draftsByThreadKey[i];if(!t&&a===null)return e;let n=t??Rv(),r={...n.modelSelectionByProvider};if(a){let e=r[a.provider];a.options===void 0?r[a.provider]={provider:a.provider,model:a.model,...`providerAccountId`in a&&a.providerAccountId?{providerAccountId:a.providerAccountId}:e&&`providerAccountId`in e&&e.providerAccountId?{providerAccountId:e.providerAccountId}:{},...e?.options?{options:e.options}:{}}:r[a.provider]=a}let o=a?.provider??n.activeProvider;if(rt(n.modelSelectionByProvider,r)&&n.activeProvider===o)return e;let s={...n,modelSelectionByProvider:r,activeProvider:o},c={...e.draftsByThreadKey};return N(s)?delete c[i]:c[i]=s,{draftsByThreadKey:c}})},setModelOptions:(e,r)=>{let i=P(t(),e)??``;if(i.length===0)return;let a=cv(r);n(e=>{let t=e.draftsByThreadKey[i];if(!t&&a===null)return e;let n=t??Rv(),r={...n.modelSelectionByProvider};for(let e of[`codex`,`claudeAgent`]){if(!a||!(e in a))continue;let t=a[e],n=r[e];if(t)r[e]={provider:e,model:n?.model??Fi[e],...n&&`providerAccountId`in n&&n.providerAccountId?{providerAccountId:n.providerAccountId}:{},options:t};else if(n?.options){let{options:t,...i}=n;r[e]=i}}if(rt(n.modelSelectionByProvider,r))return e;let o={...n,modelSelectionByProvider:r},s={...e.draftsByThreadKey};return N(o)?delete s[i]:s[i]=o,{draftsByThreadKey:s}})},setProviderModelOptions:(e,r,i,a)=>{let o=P(t(),e)??``;if(o.length===0)return;let s=av(r);if(s===null)return;let c=cv({[s]:i},s)?.[s];n(e=>{let t=e.draftsByThreadKey[o]??Rv(),n={...t.modelSelectionByProvider},r=n[s];if(c)n[s]={provider:s,model:r?.model??Fi[s],...r&&`providerAccountId`in r&&r.providerAccountId?{providerAccountId:r.providerAccountId}:{},options:c};else if(r?.options){let{options:e,...t}=r;n[s]=t}let i=e.stickyModelSelectionByProvider,l=e.stickyActiveProvider;if(a?.persistSticky===!0){i={...e.stickyModelSelectionByProvider};let n=i[s]??t.modelSelectionByProvider[s]??{provider:s,model:Fi[s]};if(c)i[s]={...n,provider:s,options:c};else if(n.options){let{options:e,...t}=n;i[s]=t}l=t.activeProvider??s}if(rt(t.modelSelectionByProvider,n)&&rt(e.stickyModelSelectionByProvider,i)&&e.stickyActiveProvider===l)return e;let u={...t,modelSelectionByProvider:n},d={...e.draftsByThreadKey};return N(u)?delete d[o]:d[o]=u,{draftsByThreadKey:d,...a?.persistSticky===!0?{stickyModelSelectionByProvider:i,stickyActiveProvider:l}:{}}})},setRuntimeMode:(e,r)=>{let i=P(t(),e)??``;if(i.length===0)return;let a=_v(r)?r:null;n(e=>{let t=e.draftsByThreadKey[i];if(!t&&a===null)return e;let n=t??Rv();if(n.runtimeMode===a)return e;let r={...n,runtimeMode:a},o={...e.draftsByThreadKey};return N(r)?delete o[i]:o[i]=r,{draftsByThreadKey:o}})},setInteractionMode:(e,r)=>{let i=P(t(),e)??``;if(i.length===0)return;let a=r===`plan`||r==="default"?r:null;n(e=>{let t=e.draftsByThreadKey[i];if(!t&&a===null)return e;let n=t??Rv();if(n.interactionMode===a)return e;let r={...n,interactionMode:a},o={...e.draftsByThreadKey};return N(r)?delete o[i]:o[i]=r,{draftsByThreadKey:o}})},addImage:(e,n)=>{let r=P(t(),e),i=qv(t(),e);!r||!i||t().addImages(typeof e==`string`?ba.make(r):e,[n])},addImages:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&r.length!==0&&n(e=>{let t=e.draftsByThreadKey[i]??Rv(),n=new Set(t.images.map(e=>e.id)),a=new Set(t.images.map(e=>I_(e))),o=new Set(t.images.map(e=>e.previewUrl)),s=[];for(let e of r){let t=I_(e);if(n.has(e.id)||a.has(t)){o.has(e.previewUrl)||G_(e.previewUrl);continue}s.push(e),n.add(e.id),a.add(t),o.add(e.previewUrl)}return s.length===0?e:{draftsByThreadKey:{...e.draftsByThreadKey,[i]:{...t,images:[...t.images,...s]}}}})},addFiles:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&r.length!==0&&n(e=>{let t=e.draftsByThreadKey[i]??Rv(),n=new Set((t.files??[]).map(e=>e.id)),a=Math.max(0,8-t.images.length-(t.files?.length??0)),o=r.filter(e=>!n.has(e.id)).slice(0,a);return o.length===0?e:{draftsByThreadKey:{...e.draftsByThreadKey,[i]:{...t,files:[...t.files??[],...o]}}}})},setFiles:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&n(e=>{let t=e.draftsByThreadKey[i]??Rv();return{draftsByThreadKey:{...e.draftsByThreadKey,[i]:{...t,files:[...r]}}}})},removeImage:(e,r)=>{let i=P(t(),e)??``;if(i.length===0)return;let a=t().draftsByThreadKey[i];if(!a)return;let o=a.images.find(e=>e.id===r);o&&G_(o.previewUrl),n(e=>{let t=e.draftsByThreadKey[i];if(!t)return e;let n={...t,images:t.images.filter(e=>e.id!==r),nonPersistedImageIds:t.nonPersistedImageIds.filter(e=>e!==r),persistedAttachments:t.persistedAttachments.filter(e=>e.id!==r)},a={...e.draftsByThreadKey};return N(n)?delete a[i]:a[i]=n,{draftsByThreadKey:a}})},insertTerminalContext:(e,r,i,a)=>{let o=P(t(),e),s=qv(t(),e);if(!o||!s)return!1;let c=!1;return n(e=>{let t=e.draftsByThreadKey[o]??Rv(),n=R_(s,i);if(!n)return e;let l=L_(n);if(t.terminalContexts.some(e=>e.id===n.id)||t.terminalContexts.some(e=>L_(e)===l))return e;c=!0;let u=Math.max(0,Math.min(t.terminalContexts.length,a)),d={...t,prompt:r,terminalContexts:[...t.terminalContexts.slice(0,u),n,...t.terminalContexts.slice(u)]};return{draftsByThreadKey:{...e.draftsByThreadKey,[o]:d}}}),c},addTerminalContext:(e,n)=>{let r=P(t(),e),i=qv(t(),e);!r||!i||t().addTerminalContexts(typeof e==`string`?ba.make(r):e,[n])},addTerminalContexts:(e,r)=>{let i=P(t(),e),a=qv(t(),e);!i||!a||r.length===0||n(e=>{let t=e.draftsByThreadKey[i]??Rv(),n=z_(a,[...t.terminalContexts,...r]).slice(t.terminalContexts.length);return n.length===0?e:{draftsByThreadKey:{...e.draftsByThreadKey,[i]:{...t,prompt:Wm(t.prompt,t.terminalContexts.length+n.length),terminalContexts:[...t.terminalContexts,...n]}}}})},removeTerminalContext:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&r.length!==0&&n(e=>{let t=e.draftsByThreadKey[i];if(!t)return e;let n={...t,terminalContexts:t.terminalContexts.filter(e=>e.id!==r)},a={...e.draftsByThreadKey};return N(n)?delete a[i]:a[i]=n,{draftsByThreadKey:a}})},clearTerminalContexts:e=>{let r=P(t(),e)??``;r.length!==0&&n(e=>{let t=e.draftsByThreadKey[r];if(!t||t.terminalContexts.length===0)return e;let n={...t,terminalContexts:[]},i={...e.draftsByThreadKey};return N(n)?delete i[r]:i[r]=n,{draftsByThreadKey:i}})},clearPersistedAttachments:e=>{let r=P(t(),e)??``;r.length!==0&&n(e=>{let t=e.draftsByThreadKey[r];if(!t)return e;let n={...t,persistedAttachments:[],nonPersistedImageIds:[]},i={...e.draftsByThreadKey};return N(n)?delete i[r]:i[r]=n,{draftsByThreadKey:i}})},syncPersistedAttachments:(e,r)=>{let i=P(t(),e);if(!i)return;let a=new Set(r.map(e=>e.id));n(e=>{let t=e.draftsByThreadKey[i];if(!t)return e;let n={...t,persistedAttachments:r,nonPersistedImageIds:t.nonPersistedImageIds.filter(e=>!a.has(e))},o={...e.draftsByThreadKey};return N(n)?delete o[i]:o[i]=n,{draftsByThreadKey:o}}),Promise.resolve().then(()=>{uy(i,r,n)})},moveComposerDraft:(e,r)=>{let i=dm(t().draftsByThreadKey,e,r);return i!==null&&(n({draftsByThreadKey:i}),bv.flush(),!0)},clearComposerContent:e=>{let r=P(t(),e)??``;r.length!==0&&n(e=>{let t=e.draftsByThreadKey[r];if(!t)return e;let n=iv(t),i={...e.draftsByThreadKey};return N(n)?delete i[r]:i[r]=n,{draftsByThreadKey:i}})},clearComposerContentIfUnchanged:(e,r)=>{let i=P(t(),e)??``;if(i.length===0)return!1;let a=!1;return n(e=>{let t=e.draftsByThreadKey[i];if(!t||!rv(t,r))return e;let n=iv(t),o={...e.draftsByThreadKey};return N(n)?delete o[i]:o[i]=n,a=!0,{draftsByThreadKey:o}}),a},restoreComposerStash:(e,r)=>{let i=P(t(),e)??``,a=qv(t(),e);if(i.length===0||!a)return!1;let o,s;if(n(e=>{let t=P_(e.draftsByThreadKey,i,a,r);return t?(o=t.previousDraft,s=t.restoredDraft,{draftsByThreadKey:t.drafts}):e}),!s)return!1;let c=!1;try{bv.flush();let e=ly(i),n=t().draftsByThreadKey[i];e!==null&&n===s&&W_(e,n)&&(c=!0)}catch{}if(c&&(r.onPersisted?.()??!0))return!0;n(e=>{if(e.draftsByThreadKey[i]!==s)return e;let t={...e.draftsByThreadKey};return o?t[i]=o:delete t[i],{draftsByThreadKey:t}});try{bv.flush()}catch{}return!1}}},{name:mv,version:hv,storage:Hf(()=>bv),migrate:ay,partialize:oy,merge:(e,t)=>{let n=sy(e),r=Object.fromEntries(Object.entries(n.draftsByThreadKey).map(([e,t])=>[e,my(t)])),i=Object.fromEntries(Object.entries(n.draftThreadsByThreadKey).map(([e,t])=>[e,hy(t)]));return{...t,draftsByThreadKey:r,draftThreadsByThreadKey:i,logicalProjectDraftThreadKeyByLogicalProjectKey:n.logicalProjectDraftThreadKeyByLogicalProjectKey,stickyModelSelectionByProvider:n.stickyModelSelectionByProvider??{},stickyActiveProvider:n.stickyActiveProvider??null}}}));function _y(e){let t=(0,A.c)(2),n;return t[0]===e?n=t[1]:(n=t=>Jv(t,e)??Lv,t[0]=e,t[1]=n),gy(n)}function vy(e){let t=(0,A.c)(2),n;return t[0]===e?n=t[1]:(n=t=>{let n=Jv(t,e);return n?{activeProvider:n.activeProvider,modelSelectionByProvider:n.modelSelectionByProvider}:Iv},t[0]=e,t[1]=n),gy(eh(n))}function yy(e){let t=gy.getState();for(let[n,r]of Object.entries(t.draftThreadsByThreadKey))r.environmentId===e.environmentId&&r.threadId===e.threadId&&t.markDraftThreadPromoting(ba.make(n),e)}function by(e){for(let t of e)yy(t)}function xy(e){let t=gy.getState();for(let[n,r]of Object.entries(t.draftThreadsByThreadKey))r.promotedTo&&r.promotedTo.environmentId===e.environmentId&&r.promotedTo.threadId===e.threadId&&t.finalizePromotedDraftThread(ba.make(n))}var Sy=null;function Cy(e){Sy=e}function wy(){if(Sy===null)throw Error(`Environment event handling was used before the service was configured.`);return Sy}function Ty(e){let t=new Set,n=new Map(e.snapshotThreads.map(e=>[e.key,e]));for(let n of e.snapshotThreads)n.deletedAt===null&&n.archivedAt===null&&t.add(n.key);for(let r of e.draftThreadKeys){let e=n.get(r);e&&(e.deletedAt!==null||e.archivedAt!==null)||t.add(r)}return t}function Ey(e){let t=new Map,n=!1;for(let r of e)switch(r.type){case`thread.turn-diff-completed`:case`thread.reverted`:n=!0;break;case`thread.created`:t.set(r.payload.threadId,{clearPromotedDraft:!0,clearDeletedThread:!1,removeTerminalState:!1});break;case`thread.deleted`:t.set(r.payload.threadId,{clearPromotedDraft:!1,clearDeletedThread:!0,removeTerminalState:!0});break;case`thread.archived`:t.set(r.payload.threadId,{clearPromotedDraft:!1,clearDeletedThread:!1,removeTerminalState:!0});break;case`thread.unarchived`:t.set(r.payload.threadId,{clearPromotedDraft:!1,clearDeletedThread:!1,removeTerminalState:!1})}let r=[],i=[],a=[];for(let[e,n]of t)n.clearPromotedDraft&&r.push(e),n.clearDeletedThread&&i.push(e),n.removeTerminalState&&a.push(e);return{promoteDraftThreadIds:r,clearDeletedThreadIds:i,removeTerminalStateThreadIds:a,needsProviderInvalidation:n}}var Dy={threadRef:null,open:!1,minimized:!1,dock:`floating`,position:null};function Oy(e){return{x:Math.max(12,Math.min(e.position.x,e.viewportWidth-e.width-12)),y:Math.max(12,Math.min(e.position.y,e.viewportHeight-e.height-12))}}function ky(e,t){return{...e,threadRef:t,open:!0,minimized:!1}}function Ay(e){let t=e.companion.threadRef;return!e.companion.open||t===null?!1:e.routeThreadRef?.environmentId!==t.environmentId||e.routeThreadRef.threadId!==t.threadId}function jy(e){if(!e||typeof e!=`object`)return null;let t=e;return typeof t.snoozedAt!=`string`||t.snoozedAt.length===0||typeof t.snoozedUntil!=`string`||t.snoozedUntil.length===0?null:{snoozedAt:t.snoozedAt,snoozedUntil:t.snoozedUntil}}function My(e){if(!e||typeof e!=`object`)return{};let t={};for(let[n,r]of Object.entries(e)){if(typeof n!=`string`||n.length===0)continue;let e=jy(r);e&&(t[n]=e)}return t}function Ny(e,t,n){let r=n??new Date().toISOString(),i=Date.parse(r),a=e.threadLastVisitedAtById[t],o=a?Date.parse(a):NaN;return Number.isFinite(o)&&Number.isFinite(i)&&o>=i?e:{...e,threadLastVisitedAtById:{...e.threadLastVisitedAtById,[t]:r}}}function Py(e,t,n){if(!n)return e;let r=Date.parse(n);if(Number.isNaN(r))return e;let i=new Date(r-1).toISOString();return e.threadLastVisitedAtById[t]===i?e:{...e,threadLastVisitedAtById:{...e.threadLastVisitedAtById,[t]:i}}}function Fy(e,t){let n=t in e.threadLastVisitedAtById,r=t in e.threadChangedFilesExpandedById,i=t in e.pinnedThreadById,a=t in e.threadLinkedPrById,o=t in e.pinOrderKeyById,s=t in e.activeOrderKeyById,c=t in e.threadSnoozeById;if(!n&&!r&&!i&&!a&&!o&&!s&&!c)return e;let l={...e.threadLastVisitedAtById},u={...e.threadChangedFilesExpandedById},d={...e.pinnedThreadById},f={...e.threadLinkedPrById},p={...e.pinOrderKeyById},m={...e.activeOrderKeyById},h={...e.threadSnoozeById};return delete l[t],delete u[t],delete d[t],delete f[t],delete p[t],delete m[t],delete h[t],{...e,threadLastVisitedAtById:l,threadChangedFilesExpandedById:u,pinnedThreadById:d,threadLinkedPrById:f,pinOrderKeyById:p,activeOrderKeyById:m,threadSnoozeById:h}}function Iy(e,t,n){if(e.pinnedThreadById[t]===!0===n)return e;if(n)return{...e,pinnedThreadById:{...e.pinnedThreadById,[t]:!0}};let r={...e.pinnedThreadById};return delete r[t],{...e,pinnedThreadById:r}}function Ly(e,t){return Iy(e,t,e.pinnedThreadById[t]!==!0)}function Ry(e,t,n){let r=e.pinOrderKeyById[t];if(n===null){if(r===void 0)return e;let n={...e.pinOrderKeyById};return delete n[t],{...e,pinOrderKeyById:n}}return r===n?e:{...e,pinOrderKeyById:{...e.pinOrderKeyById,[t]:n}}}function zy(e,t,n){let r=e.activeOrderKeyById[t];if(n===null){if(r===void 0)return e;let n={...e.activeOrderKeyById};return delete n[t],{...e,activeOrderKeyById:n}}return r===n?e:{...e,activeOrderKeyById:{...e.activeOrderKeyById,[t]:n}}}function By(e,t,n){if(n===null){if(!(t in e.threadSnoozeById))return e;let n={...e.threadSnoozeById};return delete n[t],{...e,threadSnoozeById:n}}let r=e.threadSnoozeById[t];return r&&r.snoozedAt===n.snoozedAt&&r.snoozedUntil===n.snoozedUntil?e:{...e,threadSnoozeById:{...e.threadSnoozeById,[t]:n}}}function Vy(e,t,n){return e.threadLinkedPrById[t]===n?e:{...e,threadLinkedPrById:{...e.threadLinkedPrById,[t]:n}}}function Hy(e,t){if(!(t in e.threadLinkedPrById))return e;let n={...e.threadLinkedPrById};return delete n[t],{...e,threadLinkedPrById:n}}function Uy(e,t,n,r){let i=e.threadChangedFilesExpandedById[t]??{};return i[n]===r?e:{...e,threadChangedFilesExpandedById:{...e.threadChangedFilesExpandedById,[t]:{...i,[n]:r}}}}var Wy=`forge:ui-state:v1`,Gy=[`t3code:ui-state:v1`,`t3code:renderer-state:v8`,`t3code:renderer-state:v7`,`t3code:renderer-state:v6`,`t3code:renderer-state:v5`,`t3code:renderer-state:v4`,`t3code:renderer-state:v3`,`codething:renderer-state:v4`,`codething:renderer-state:v3`,`codething:renderer-state:v2`,`codething:renderer-state:v1`],Ky=`months`,qy=new Set([`weeks`,`months`,`quarters`]);function Jy(e){return typeof e==`string`&&qy.has(e)?e:Ky}function Yy(e){return Number.isFinite(e)?Math.round(Math.min(560,Math.max(200,e))):360}var Xy={projectExpandedById:{},projectOrder:[],projectGroupOrder:[],lastActiveProject:null,threadLastVisitedAtById:{},threadChangedFilesExpandedById:{},pinnedThreadById:{},threadLinkedPrById:{},pinOrderKeyById:{},activeOrderKeyById:{},threadSnoozeById:{},workspaceDensityById:{},timelineWorkColumnWidth:360,timelineScale:Ky,projectLeadCompanion:Dy},Zy=new Set,Qy=[],$y=new Map,eb=!1;function tb(){if(typeof window>`u`)return Xy;try{let e=window.localStorage.getItem(Wy);if(!e){for(let e of Gy){let t=window.localStorage.getItem(e);if(t)return ub(JSON.parse(t)),Xy}return Xy}let t=JSON.parse(e);return ub(t),{...Xy,projectGroupOrder:nb(t.projectGroupOrderKeys),threadChangedFilesExpandedById:ob(t.threadChangedFilesExpandedById),pinnedThreadById:rb(t.pinnedThreadKeys),threadLinkedPrById:ib(t.threadLinkedPrById),pinOrderKeyById:ab(t.pinOrderKeyById),activeOrderKeyById:ab(t.activeOrderKeyById),threadSnoozeById:My(t.threadSnoozeById),timelineWorkColumnWidth:Yy(t.timelineWorkColumnWidth??360),timelineScale:Jy(t.timelineScale)}}catch{return Xy}}function nb(e){return Array.isArray(e)?[...new Set(e.filter(e=>typeof e==`string`&&e.length>0))]:[]}function rb(e){if(!Array.isArray(e))return{};let t={};for(let n of e)typeof n==`string`&&n.length>0&&(t[n]=!0);return t}function ib(e){if(!e||typeof e!=`object`)return{};let t={};for(let[n,r]of Object.entries(e))typeof n==`string`&&n.length!==0&&typeof r==`string`&&r.trim().length!==0&&(t[n]=r);return t}function ab(e){if(!e||typeof e!=`object`)return{};let t={};for(let[n,r]of Object.entries(e))typeof n==`string`&&n.length>0&&typeof r==`string`&&r.length>0&&(t[n]=r);return t}function ob(e){if(!e||typeof e!=`object`)return{};let t={};for(let[n,r]of Object.entries(e)){let e=sb(r);Object.keys(e).length>0&&(t[n]=e)}return t}function sb(e){let t={};if(!e||typeof e!=`object`)return t;for(let[n,r]of Object.entries(e))n&&typeof r==`boolean`&&r===!1&&(t[n]=!1);return t}function cb(e){for(let t of e)typeof t==`string`&&t.length>0&&Zy.add(t)}function lb(e){for(let t of e)typeof t==`string`&&t.length>0&&!Qy.includes(t)&&Qy.push(t)}function ub(e){Zy.clear(),Qy.length=0,cb(e.expandedProjectCwds??[]),lb(e.projectOrderCwds??[])}function db(e){if(!(typeof window>`u`))try{let t=Object.entries(e.projectExpandedById).filter(([,e])=>e).flatMap(([e])=>{let t=$y.get(e);return t?[t]:[]}),n=e.projectOrder.flatMap(e=>{let t=$y.get(e);return t?[t]:[]}),r=Object.fromEntries(Object.entries(e.threadChangedFilesExpandedById).flatMap(([e,t])=>{let n=Object.fromEntries(Object.entries(t).filter(([,e])=>e===!1));return Object.keys(n).length>0?[[e,n]]:[]}));if(window.localStorage.setItem(Wy,JSON.stringify({expandedProjectCwds:t,projectOrderCwds:n,projectGroupOrderKeys:e.projectGroupOrder,threadChangedFilesExpandedById:r,pinnedThreadKeys:Object.keys(e.pinnedThreadById).filter(t=>e.pinnedThreadById[t]),threadLinkedPrById:e.threadLinkedPrById,pinOrderKeyById:e.pinOrderKeyById,activeOrderKeyById:e.activeOrderKeyById,threadSnoozeById:e.threadSnoozeById,timelineWorkColumnWidth:e.timelineWorkColumnWidth,timelineScale:e.timelineScale})),!eb){eb=!0;for(let e of Gy)window.localStorage.removeItem(e)}}catch{}}var fb=new Aa(db,{wait:500});function pb(e,t){let n=Object.entries(e),r=Object.entries(t);if(n.length!==r.length)return!1;for(let[e,r]of n)if(t[e]!==r)return!1;return!0}function mb(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function hb(e,t){let n=Object.entries(e),r=Object.entries(t);if(n.length!==r.length)return!1;for(let[e,r]of n)if(!(e in t)||!pb(r,t[e]))return!1;return!0}function gb(e,t){let n=new Map($y),r=new Map([...n.entries()].map(([e,t])=>[t,e]));$y.clear();for(let e of t)$y.set(e.key,e.cwd);let i=n.size!==$y.size||t.some(e=>n.get(e.key)!==e.cwd),a={},o=e.projectExpandedById,s=new Map(Qy.map((e,t)=>[e,t])),c=t.map((e,t)=>{let n=r.get(e.cwd),i=o[e.key]??(n?o[n]:void 0)??(Zy.size>0?Zy.has(e.cwd):!0);return a[e.key]=i,{id:e.key,cwd:e.cwd,incomingIndex:t}}),l=e.projectOrder.length>0?(()=>{let t=new Map(c.map(e=>[e.cwd,e.id])),r=new Set,i=[];for(let o of e.projectOrder){let e=(o in a?o:void 0)??(()=>{let e=n.get(o);return e?t.get(e):void 0})();!e||r.has(e)||(r.add(e),i.push(e))}for(let e of c)r.has(e.id)||i.push(e.id);return i})():c.map(e=>({id:e.id,incomingIndex:e.incomingIndex,orderIndex:s.get(e.cwd)??Qy.length+e.incomingIndex})).toSorted((e,t)=>{let n=e.orderIndex-t.orderIndex;return n===0?e.incomingIndex-t.incomingIndex:n}).map(e=>e.id);return pb(e.projectExpandedById,a)&&mb(e.projectOrder,l)&&!i?e:{...e,projectExpandedById:a,projectOrder:l}}function _b(e,t){let n=new Set(t.map(e=>e.key)),r=Object.fromEntries(Object.entries(e.threadLastVisitedAtById).filter(([e])=>n.has(e)));for(let e of t)r[e.key]===void 0&&e.seedVisitedAt!==void 0&&e.seedVisitedAt.length>0&&(r[e.key]=e.seedVisitedAt);let i=Object.fromEntries(Object.entries(e.threadChangedFilesExpandedById).filter(([e])=>n.has(e))),a=Object.fromEntries(Object.entries(e.pinnedThreadById).filter(([e,t])=>n.has(e)&&t)),o=Object.fromEntries(Object.entries(e.threadLinkedPrById).filter(([e])=>n.has(e))),s=Object.fromEntries(Object.entries(e.pinOrderKeyById).filter(([e])=>n.has(e))),c=Object.fromEntries(Object.entries(e.activeOrderKeyById).filter(([e])=>n.has(e))),l=Object.fromEntries(Object.entries(e.threadSnoozeById).filter(([e])=>n.has(e)));return pb(e.threadLastVisitedAtById,r)&&hb(e.threadChangedFilesExpandedById,i)&&pb(e.pinnedThreadById,a)&&pb(e.threadLinkedPrById,o)&&pb(e.pinOrderKeyById,s)&&pb(e.activeOrderKeyById,c)&&pb(e.threadSnoozeById,l)?e:{...e,threadLastVisitedAtById:r,threadChangedFilesExpandedById:i,pinnedThreadById:a,threadLinkedPrById:o,pinOrderKeyById:s,activeOrderKeyById:c,threadSnoozeById:l}}function vb(e,t){return e.lastActiveProject?.environmentId===t?.environmentId&&e.lastActiveProject?.projectId===t?.projectId?e:{...e,lastActiveProject:t}}function yb(e,t,n){return e.workspaceDensityById[t]===n?e:{...e,workspaceDensityById:{...e.workspaceDensityById,[t]:n}}}function bb(e,t){let n=e.projectExpandedById[t]??!0;return{...e,projectExpandedById:{...e.projectExpandedById,[t]:!n}}}function xb(e,t,n){return(e.projectExpandedById[t]??!0)===n?e:{...e,projectExpandedById:{...e.projectExpandedById,[t]:n}}}function Sb(e,t,n){if(t.length===0)return e;let r=new Set(t),i=new Set(n);if(t.every(e=>i.has(e)))return e;let a=e.projectOrder.findIndex(e=>i.has(e));if(a<0)return e;let o=[...e.projectOrder],s=[],c=0;for(let e=o.length-1;e>=0;e--)r.has(o[e])&&(s.unshift(o.splice(e,1)[0]),e<a&&c++);if(s.length===0)return e;let l=a-Math.max(0,c-1);return o.splice(l,0,...s),{...e,projectOrder:o}}function Cb(e,t){let n=[...new Set(t)],r=new Set(n),i=e.projectGroupOrder.filter(e=>r.has(e)),a=new Set(i);for(let e of n)a.has(e)||i.push(e);return mb(e.projectGroupOrder,i)?e:{...e,projectGroupOrder:i}}function wb(e,t,n){if(t===n)return e;let r=e.projectGroupOrder.indexOf(t),i=e.projectGroupOrder.indexOf(n);if(r<0||i<0)return e;let a=[...e.projectGroupOrder],[o]=a.splice(r,1);return o===void 0?e:(a.splice(i,0,o),{...e,projectGroupOrder:a})}var Tb=wa(e=>({...tb(),syncProjects:t=>e(e=>gb(e,t)),syncProjectGroups:t=>e(e=>Cb(e,t)),syncThreads:t=>e(e=>_b(e,t)),markThreadVisited:(t,n)=>e(e=>Ny(e,t,n)),markThreadUnread:(t,n)=>e(e=>Py(e,t,n)),clearThreadUi:t=>e(e=>Fy(e,t)),setThreadPinned:(t,n)=>e(e=>Iy(e,t,n)),toggleThreadPinned:t=>e(e=>Ly(e,t)),setThreadPinOrderKey:(t,n)=>e(e=>Ry(e,t,n)),setThreadActiveOrderKey:(t,n)=>e(e=>zy(e,t,n)),setThreadSnooze:(t,n)=>e(e=>By(e,t,n)),setThreadLinkedPr:(t,n)=>e(e=>Vy(e,t,n)),clearThreadLinkedPr:t=>e(e=>Hy(e,t)),setThreadChangedFilesExpanded:(t,n,r)=>e(e=>Uy(e,t,n,r)),setWorkspaceDensity:(t,n)=>e(e=>yb(e,t,n)),toggleProject:t=>e(e=>bb(e,t)),setProjectExpanded:(t,n)=>e(e=>xb(e,t,n)),reorderProjects:(t,n)=>e(e=>Sb(e,t,n)),reorderProjectGroups:(t,n)=>e(e=>wb(e,t,n)),setLastActiveProject:t=>e(e=>vb(e,t)),setTimelineWorkColumnWidth:t=>e(e=>({...e,timelineWorkColumnWidth:Yy(t)})),setTimelineScale:t=>e(e=>({...e,timelineScale:t})),openProjectLeadCompanion:t=>e(e=>({...e,projectLeadCompanion:ky(e.projectLeadCompanion,t)})),closeProjectLeadCompanion:()=>e(e=>({...e,projectLeadCompanion:{...e.projectLeadCompanion,open:!1}})),setProjectLeadCompanionMinimized:t=>e(e=>({...e,projectLeadCompanion:{...e.projectLeadCompanion,minimized:t}})),setProjectLeadCompanionDock:t=>e(e=>({...e,projectLeadCompanion:{...e.projectLeadCompanion,dock:t}})),setProjectLeadCompanionPosition:t=>e(e=>({...e,projectLeadCompanion:{...e.projectLeadCompanion,position:t}}))}));function Eb(e){Tb.getState().openProjectLeadCompanion(e)}Tb.subscribe(e=>fb.maybeExecute(e)),typeof window<`u`&&typeof window.addEventListener==`function`&&window.addEventListener(`beforeunload`,()=>{fb.flush()});var F=new Map;function Db(e){return!e.isWorking||e.msSinceLastEvent<e.stallThresholdMs?`none`:e.recoveryAttempts<e.maxResubscribeAttempts?`resubscribe`:e.recoveryAttempts<e.maxTotalAttempts?`reconnect`:`none`}var Ob=3e4,kb=1e4,Ab=[/(?:^|\s)\/(?:Users|var|private|tmp|project|repo|home)\/[^\s'"<>)]*/i,/(?:^|\s)[A-Za-z]:\\[^\s'"<>)]*/];function jb(e){let t=e?.trim();return t&&t.length>0?t:null}function Mb(e){return jb(e)??`Project`}function Nb(e,t=`safe`){let n=jb(e);return n?t===`full`?n:n.replaceAll(`\\`,`/`).split(`/`).filter(Boolean).at(-1)??`Local checkout`:`Local checkout`}function Pb(e,t=`Something went wrong. Try again.`){let n=e instanceof Error?e.message:typeof e==`string`?e:String(e),r=dr(n,{fallback:t});return!r||Ab.some(e=>e.test(r))?t:r}var Fb=`Thread not found or you no longer have access.`;function Ib(e){if(e==null)return Fb;let t=Pb(qt(e)?ke(e):e,Fb);return/\bnot found\b/i.test(t)?Fb:t}function Lb(e,t,n){S.getState().setThreadSubscriptionError(e,t,Ib(n))}var Rb=null;function zb(e){Rb=e}function Bb(){if(Rb===null)throw Error(`Thread detail subscriptions were used before the service was configured.`);return Rb}var Vb=9e5,Hb=()=>void 0;function Ub(e,t){return Ln(C(e,t))}function Wb(e){return e.evictionTimeoutId!==null&&(clearTimeout(e.evictionTimeoutId),e.evictionTimeoutId=null),e}function Gb(e){let t=C(e.environmentId,e.threadId),n=S.getState(),r=Tn(n,t);if(r&&qb(r))return!0;let i=Sn(n,t);return i?Kb(i.session?.orchestrationStatus)||i.latestTurn?.state===`running`||i.pendingSourceProposedPlan!==void 0:!1}function Kb(e){return!!(e&&e!==`idle`&&e!==`stopped`)}function qb(e){return e.hasPendingApprovals||e.hasPendingUserInput||e.hasActionableProposedPlan||Kb(e.session?.orchestrationStatus)||e.latestTurn?.state===`running`}function Jb(e){return e.refCount===0&&!Gb(e)}function Yb(e){let t=Bb().readConnection(e.environmentId);return e.unsubscribe===Hb&&!t?!1:(e.unsubscribeConnectionListener!==null&&(e.unsubscribeConnectionListener(),e.unsubscribeConnectionListener=null),e.unsubscribe!==Hb||!t||(e.unsubscribe=t.client.orchestration.subscribeThread({threadId:e.threadId},t=>{e.lastEventAt=Date.now(),e.recoveryAttempts=0,t.kind===`event`?Bb().applyEvent(t.event,e.environmentId):t.kind===`snapshot`&&(S.getState().syncServerThreadDetail(t.snapshot.thread,e.environmentId),S.getState().clearThreadSubscriptionError(e.environmentId,e.threadId))},{onError:t=>Lb(e.environmentId,e.threadId,t)})),!0)}function Xb(e){e.unsubscribeConnectionListener===null&&(e.unsubscribeConnectionListener=Bb().subscribeConnections(()=>{Yb(e)&&(e.lastAccessedAt=Date.now())}),Yb(e))}var Zb=null;function Qb(e){let t=C(e.environmentId,e.threadId),n=S.getState(),r=Tn(n,t);if(r?.latestTurn?.state===`running`||r?.session?.orchestrationStatus===`running`)return!0;let i=Sn(n,t);return i?.latestTurn?.state===`running`||i?.session?.orchestrationStatus===`running`}function $b(e){e.unsubscribe!==Hb&&(e.unsubscribe(),e.unsubscribe=Hb),Yb(e)||Xb(e)}function ex(e,t,n){if(e.recoveryAttempts+=1,e.lastEventAt=Date.now(),console.warn(`[forge] thread-detail liveness watchdog recovering`,{action:t,threadId:String(e.threadId),environmentId:String(e.environmentId),msSinceLastEvent:Math.round(n),recoveryAttempts:e.recoveryAttempts}),t===`resubscribe`){$b(e);return}Bb().readConnection(e.environmentId)?.reconnect().catch(t=>{Vn(t,{route:`thread-detail-liveness-watchdog-reconnect-failed`,threadId:String(e.threadId),environmentId:String(e.environmentId),msSinceLastEvent:String(Math.round(n)),recoveryAttempts:String(e.recoveryAttempts)})})}function tx(){let e=Date.now();for(let t of F.values()){let n=Db({isWorking:Qb(t),msSinceLastEvent:e-t.lastEventAt,stallThresholdMs:Ob,recoveryAttempts:t.recoveryAttempts,maxResubscribeAttempts:2,maxTotalAttempts:4});n!==`none`&&ex(t,n,e-t.lastEventAt)}}function nx(){Zb===null&&(Zb=setInterval(tx,kb))}function rx(){F.size>0||Zb!==null&&(clearInterval(Zb),Zb=null)}function ix(e){let t=F.get(e);return t?(Wb(t),t.unsubscribeConnectionListener?.(),t.unsubscribeConnectionListener=null,F.delete(e),t.unsubscribe(),t.unsubscribe=Hb,rx(),!0):!1}function ax(e){ox(e,!0),j.getState().clear(e)}function ox(e,t=!1){for(let[n,r]of F)if(r.environmentId===e){if(r.refCount===0||t){ix(n);continue}r.unsubscribe(),r.unsubscribe=Hb,Xb(r)}}function sx(e){for(let t=e.messages.length-1;t>=0;--t){let n=e.messages[t];if(n?.role===`user`)return n.createdAt}return null}function cx(e){return e.session?{threadId:e.id,updatedAt:e.session.updatedAt,providerName:e.session.provider,runtimeMode:e.runtimeMode,activeTurnId:e.session.activeTurnId??null,lastError:e.session.lastError??null,status:e.session.orchestrationStatus}:null}function lx(e,t){return{updatedAt:e.updatedAt??e.createdAt,latestUserMessageAt:t?.latestUserMessageAt??sx(e),titleRegeneration:e.titleRegeneration??null}}function ux(e){return{hasPendingApprovals:e?.hasPendingApprovals??!1,hasPendingUserInput:e?.hasPendingUserInput??!1,hasActionableProposedPlan:e?.hasActionableProposedPlan??!1}}function dx(e){let t=C(e.environmentId,e.threadId),n=S.getState(),r=Sn(n,t);if(!r)return null;let i=Tn(n,t);return{id:r.id,projectId:r.projectId,title:r.title,modelSelection:r.modelSelection,runtimeMode:r.runtimeMode,interactionMode:r.interactionMode,branch:r.branch,worktreePath:r.worktreePath,latestTurn:r.latestTurn,createdAt:r.createdAt,...lx(r,i),...ux(i),archivedAt:r.archivedAt,session:cx(r),anchorKind:r.anchorKind,anchorCmmdId:r.anchorCmmdId,kind:r.kind,parentThreadId:r.parentThreadId,status:r.status,workerRole:r.workerRole,goal:r.goal}}function fx(e,t){if(F.size===0)return e;let n=new Set(e.threads.map(e=>e.id)),r=[];for(let e of F.values()){if(e.environmentId!==t||e.refCount<=0||n.has(e.threadId))continue;let i=dx(e);i&&(n.add(i.id),r.push(i))}return r.length===0?e:{...e,threads:[...e.threads,...r]}}function px(e,t){let n=new Set(t);for(let[t,r]of F)r.environmentId===e&&!n.has(r.threadId)&&Jb(r)&&ix(t)}function mx(e){Wb(e),Jb(e)&&(e.evictionTimeoutId=setTimeout(()=>{let t=F.get(Ub(e.environmentId,e.threadId));t&&(t.evictionTimeoutId=null,Jb(t)&&ix(Ub(e.environmentId,e.threadId)))},Vb))}function hx(){if(F.size<=32)return;let e=[...F.entries()].filter(([,e])=>Jb(e)).toSorted(([,e],[,t])=>e.lastAccessedAt-t.lastAccessedAt);for(let[t]of e){if(F.size<=32)return;ix(t)}}function gx(e){Wb(e),Jb(e)&&mx(e)}function _x(e,t){let n=F.get(Ub(e,t));n&&gx(n)}function vx(e){for(let t of F.values())t.environmentId===e&&gx(t);hx()}function yx(e){let t=!1;return()=>{t||(t=!0,e.refCount=Math.max(0,e.refCount-1),e.lastAccessedAt=Date.now(),e.refCount===0&&(gx(e),hx()))}}function bx(e,t){let n=Ub(e,t),r=F.get(n);if(r)return Wb(r),r.refCount+=1,r.lastAccessedAt=Date.now(),Yb(r)||Xb(r),yx(r);let i={environmentId:e,threadId:t,unsubscribe:Hb,unsubscribeConnectionListener:null,refCount:1,lastAccessedAt:Date.now(),evictionTimeoutId:null,lastEventAt:Date.now(),recoveryAttempts:0};return F.set(n,i),Yb(i)||Xb(i),nx(),hx(),yx(i)}function xx(e,t){return e.type!==`thread.message-sent`||t.type!==`thread.message-sent`||e.payload.threadId!==t.payload.threadId||e.payload.messageId!==t.payload.messageId?null:{...t,payload:{...t.payload,attachments:t.payload.attachments??e.payload.attachments,createdAt:e.payload.createdAt,text:!t.payload.streaming&&t.payload.text.length>0?t.payload.text:e.payload.text+t.payload.text}}}function Sx(e){if(e.length<2)return[...e];let t=[];for(let n of e){let e=t.at(-1),r=e?xx(e,n):null;if(r){t[t.length-1]=r;continue}t.push(n)}return t}function Cx(){let e=wn(S.getState());Tb.getState().syncProjects(e.map(e=>({key:Fn(In(e.environmentId,e.id)),cwd:e.cwd})))}function wx(){let e=mn(S.getState());Tb.getState().syncThreads(e.map(e=>({key:Ln(C(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt}))),by(e.map(e=>C(e.environmentId,e.id)))}function Tx(){Cx(),wx();let e=Ty({snapshotThreads:mn(S.getState()).map(e=>({key:Ln(C(e.environmentId,e.id)),deletedAt:null,archivedAt:e.archivedAt})),draftThreadKeys:gy.getState().listDraftThreadKeys()});lm.getState().removeOrphanedTerminalStates(e)}function Ex(e){return e.serverThreadArchivedAt===void 0?e.hasDraftThread:e.serverThreadArchivedAt===null}function Dx(e,t){if(e.length===0)return;let n=Ey(e),r=Sx(e),i=e.some(e=>e.type===`project.created`||e.type===`project.meta-updated`||e.type===`project.deleted`);if(n.needsProviderInvalidation&&wy().notifyProviderInvalidation(),S.getState().applyOrchestrationEvents(r,t),i){let e=wn(S.getState());Tb.getState().syncProjects(e.map(e=>({key:Fn(In(e.environmentId,e.id)),cwd:e.cwd})))}if(e.some(e=>e.type===`thread.created`||e.type===`thread.deleted`)){let e=mn(S.getState());Tb.getState().syncThreads(e.map(e=>({key:Ln(C(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt})))}let a=gy.getState();for(let e of n.promoteDraftThreadIds)yy(C(t,e));for(let e of n.clearDeletedThreadIds)a.clearDraftThread(C(t,e)),Tb.getState().clearThreadUi(Ln(C(t,e)));for(let e of n.removeTerminalStateThreadIds){let n=C(t,e);lm.getState().removeTerminalState(n),Pf.getState().clearBrowserState(n)}vx(t)}function Ox(e,t){Dx([e],t)}function kx(e,t){let n=e.kind===`thread-upserted`?e.thread.id:e.kind===`thread-removed`?e.threadId:null,r=n?C(t,n):null,i=r?Sn(S.getState(),r):void 0;switch(S.getState().applyShellEvent(e,t),e.kind){case`project-upserted`:case`project-removed`:Cx();return;case`thread-upserted`:wx(),!i&&r&&yy(r),i?.archivedAt===null&&e.thread.archivedAt!==null&&r&&(lm.getState().removeTerminalState(r),Pf.getState().clearBrowserState(r)),_x(t,e.thread.id),hx();return;case`thread-removed`:r&&(ix(Ln(r)),gy.getState().clearDraftThread(r),Tb.getState().clearThreadUi(Ln(r)),lm.getState().removeTerminalState(r),Pf.getState().clearBrowserState(r)),wx();return}}function Ax(e,t){return e.invalidateQueries({queryKey:Rf.all(t)})}function jx(e){return{onWelcome:(t,n)=>{e?.(t);let r=wy().readQueryClient();r&&Ax(r,n)},applyShellEvent:kx,syncShellSnapshot:(e,t)=>{let n=fx(e,t);S.getState().syncServerShellSnapshot(n,t),px(t,n.threads.map(e=>e.id)),vx(t),Tx()},applyTerminalEvent:(e,t)=>{let n=C(t,zr.make(e.threadId)),r=Sn(S.getState(),n),i=gy.getState().getDraftThreadByRef(n)!==null;Ex({serverThreadArchivedAt:r?.archivedAt,hasDraftThread:i})&&lm.getState().applyTerminalEvent(n,e)},applyBrowserEvent:(e,t)=>{let n=C(t,zr.make(e.threadId)),r=Sn(S.getState(),n),i=gy.getState().getDraftThreadByRef(n)!==null;Ex({serverThreadArchivedAt:r?.archivedAt,hasDraftThread:i})&&Pf.getState().applyBrowserEvent(n,e)},onShellSubscriptionError:(e,t)=>{wy().setRuntimeError(t,e)}}}function Mx(){return new Date().toISOString()}function Nx(e){j.getState().patch(e,{connectionState:`connecting`,lastError:null,lastErrorAt:null})}function Px(e){let t=Mx();j.getState().patch(e,{connectionState:`connected`,authState:`authenticated`,connectedAt:t,disconnectedAt:null,lastError:null,lastErrorAt:null}),ir.getState().markConnected(e,t)}function Fx(e,t){j.getState().patch(e,{descriptor:t.environment,serverConfig:t})}function Ix(e,t){j.getState().patch(e,{connectionState:`disconnected`,disconnectedAt:Mx(),...t&&t.trim().length>0?{lastError:t,lastErrorAt:Mx()}:{}})}function Lx(e,t){j.getState().patch(e,{connectionState:`error`,...vl(t)})}function Rx(){return new Date().toISOString()}function zx(e){let t=hr();if(!t?.environmentId)throw Error(`Unable to resolve the primary environment.`);let n=e.readConnection(t.environmentId);if(n)return n;let r=of(),i=t.source===`paired-bearer`||!0;return e.registerConnection(ql({kind:`primary`,knownEnvironment:t,client:cf(t),resolveEnvironmentId:()=>hr()?.environmentId??t.environmentId,...i?{readiness:r?{bearerToken:r.bearerToken}:{}}:{},...jx()}))}async function Bx(e){let t=sf();if(!t)throw Error(`Desktop Local runtime is not authenticated. Sign in with CMMD again before importing local projects.`);let n=await Il({httpBaseUrl:t.httpBaseUrl,bearerToken:t.bearerToken}),r=e.readConnection(n.environmentId);if(r)return r;let i=xn({id:n.environmentId,label:t.label,source:`desktop-managed`,target:{httpBaseUrl:t.httpBaseUrl,wsBaseUrl:t.wsBaseUrl}});return e.registerConnection(ql({kind:`desktop-local`,knownEnvironment:{...i,environmentId:n.environmentId,label:n.label},client:lf({environmentId:n.environmentId,httpBaseUrl:t.httpBaseUrl,wsBaseUrl:t.wsBaseUrl,bearerToken:t.bearerToken,onConnecting:Nx,onConnected:Px,onError:(e,t)=>{j.getState().patch(e,{connectionState:`error`,lastError:t,lastErrorAt:Rx()})},onDisconnected:Ix}),...jx()}))}var Vx=new Map;function Hx(e){for(let t of e){let e=Vx.get(t);e===void 0||e<=1?Vx.delete(t):Vx.set(t,e-1)}}async function Ux(e,t){let n=e.environmentId;Vx.set(n,(Vx.get(n)??0)+1);try{return t.readConnection(n)||await t.ensureCmmdRuntimeSavedEnvironmentConnection(e),!0}catch{return Hx([n]),!1}}async function Wx(e){await Qn();let t=(await Promise.all(ar().map(async t=>await Ux(t,e)?t.environmentId:null))).flatMap(e=>e===null?[]:[e]),n=!1;return()=>{n||(n=!0,Hx(t))}}function Gx(){return new Date().toISOString()}async function Kx(e,t){t.readConnection(e)?.kind===`saved`&&(j.getState().clear(e),await t.removeConnection(e).catch(()=>!1))}async function qx(e,t){let n=er(e);if(!n)throw Error(`Saved environment not found.`);let r=t.readConnection(e);if(!r){try{await t.ensureCmmdRuntimeSavedEnvironmentConnection(n)}catch(t){throw Lx(e,t),t}return}Nx(e);try{await r.reconnect()}catch(t){throw Lx(e,t),t}}async function Jx(e,t){t.invalidate(e),ir.getState().remove(e),await mr(e),await Kx(e,t)}async function Yx(e,t){let{existing:n,replacedRecord:r}=ml({environmentId:Hr.make(e.environment.environmentId),replacesEnvironmentId:e.environment.replacesEnvironmentId}),i=Xx(e.environment,n);al(e.signal);let a=await hl(n),o=t.readConnection(i.environmentId)!==null&&pl({existing:n,replacedRecord:r,record:i});return o||(t.invalidate(i.environmentId),await t.removeConnection(i.environmentId).catch(()=>!1)),r&&(t.invalidate(r.environmentId),await t.removeConnection(r.environmentId).catch(()=>!1)),await t.ensureCmmdRuntimeSavedEnvironmentConnection(i,{bearerToken:e.bearerToken,registryExpectation:n&&!r?{kind:`existing-record`,record:n}:{kind:`initial-add`},...e.signal?{signal:e.signal}:{},...e.onBootstrapRetry?{onBootstrapRetry:e.onBootstrapRetry}:{}}),Zx({record:i,replacedRecord:r,persistenceRollback:a,keepsLiveConnection:o,signal:e.signal,dependencies:t})}function Xx(e,t){let n=Hr.make(e.environmentId),{kind:r,cmmdOrganizationId:i,cmmdProjectId:a,runtimeId:o,runtimeTicketExpiresAt:s}=e;return{environmentId:n,label:e.label,wsBaseUrl:Jr(e.wsBaseUrl),httpBaseUrl:e.httpBaseUrl,createdAt:t?.createdAt??Gx(),lastConnectedAt:Gx(),...r===void 0?{}:{kind:r},...i===void 0?{}:{cmmdOrganizationId:i},...a===void 0?{}:{cmmdProjectId:a},...o===void 0?{}:{runtimeId:o},...s===void 0?{}:{runtimeTicketExpiresAt:s}}}async function Zx(e){let{record:t,replacedRecord:n,persistenceRollback:r,keepsLiveConnection:i,signal:a,dependencies:o}=e,s=!1;try{return al(a),await _l({record:t,replacedRecord:n,rollback:r,...a?{signal:a}:{}}),s=!0,al(a),ir.getState().upsert(ul(t)),n&&o.retireEnvironmentId(n.environmentId),t}catch(e){throw i||await o.removeConnection(t.environmentId).catch(()=>!1),s&&await gl({record:t,replacedRecord:n,rollback:r}),al(a),e}}var Qx=`forge.deviceRegistry.deviceKey`,$x=`forge.deviceRegistry.runtimeId`;function eS(e){let t=rS(Qx,e.desktopIdentity?.deviceKey,`device`),n=rS($x,e.desktopIdentity?.runtimeId,`runtime`),r=nS(e.desktopIdentity?.hostKey),i=cS(),a=e.desktopAvailable?`desktop`:lS(),o=e.desktopAvailable?sS(e.desktopIdentity)??uS(i):dS(i);return{device:{...r?{hostKey:r}:{},deviceKey:t,displayName:o,platform:i,deviceType:a,metadata:{clientKind:e.desktopAvailable?`forge-desktop`:`forge-web`,userAgent:window.navigator.userAgent,origin:window.location.origin,...e.desktopIdentity?{desktopIdentity:{hostName:e.desktopIdentity.hostName,computerName:e.desktopIdentity.computerName,platform:e.desktopIdentity.platform}}:{}}},...e.desktopAvailable&&e.includeExecutableRuntime!==!1?{runtime:{runtimeId:n,runtimeKind:`desktop-local`,displayName:`Local Forge Desktop`,endpointUrl:e.desktopEndpointUrl??null,status:`online`,metadata:{origin:window.location.origin}}}:{}}}async function tS(){let e=await window.desktopBridge?.getDeviceIdentity?.()??null;return eS({desktopAvailable:!!window.desktopBridge,desktopIdentity:e,includeExecutableRuntime:!1})}function nS(e){let t=e?.trim()??``;return t.length>0?t:null}function rS(e,t,n){let r=nS(t);return r?(En(e,r),r):oS(e,n)}function iS(){return Mn($x)}function aS(){return Mn(Qx)}function oS(e,t){let n=Mn(e);if(n)return n;let r=`${t}_${crypto.randomUUID()}`;return En(e,r),r}function sS(e){let t=e?.displayName?.trim()??``;return t.length>0?t:null}function cS(){let e=window.navigator.userAgent.toLowerCase();return e.includes(`iphone`)||e.includes(`ipad`)?`ios`:e.includes(`android`)?`android`:e.includes(`mac`)?`macos`:e.includes(`win`)?`windows`:e.includes(`linux`)?`linux`:`unknown`}function lS(){let e=window.navigator.userAgent.toLowerCase();return e.includes(`ipad`)||e.includes(`tablet`)?`tablet`:e.includes(`mobi`)||e.includes(`iphone`)||e.includes(`android`)?`mobile`:`browser`}function uS(e){return e===`macos`?`Mac`:e===`windows`?`Windows PC`:e===`linux`?`Linux Desktop`:`Desktop`}function dS(e){return e===`web`?`Browser`:e===`macos`?`Mac Browser`:e===`windows`?`Windows Browser`:e===`linux`?`Linux Browser`:`Browser`}var fS=`forge.relayControlJournal.v1`;function pS(){if(globalThis.localStorage===void 0)throw Error(`Forge relay control recovery requires durable browser storage.`);return globalThis.localStorage}var mS={read:()=>pS().getItem(fS),write:e=>pS().setItem(fS,e)},hS=null,gS=wa()(e=>({byRuntimeId:{},replace:t=>e({byRuntimeId:t})}));function _S(e){e.subscribe(e=>{let t=new Set(e.records.map(e=>e.runtimeId));gS.getState().replace(Object.fromEntries([...t].map(t=>[t,la(e.records,t)])))})}function vS(){return hS===null&&(hS=ua({storage:mS}),_S(hS)),hS}function yS(){let e=(0,A.c)(1),t=gS(xS),n;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],e[0]=n):n=e[0],(0,O.useEffect)(bS,n),t}function bS(){vS()}function xS(e){return e.byRuntimeId}function SS(e){let t=vS();for(let n of t.records())n.runtimeId===e&&(n.status===`failed`||n.status===`outcome-unknown`)&&t.acknowledge(n.runtimeId,n.actorSessionId,n.transportRequestId)}var CS=class extends Error{code;constructor(e,t){super(t),this.name=`RelayControlRouteError`,this.code=e}};function wS(e){let t=e&&typeof e==`object`?e.code:null;throw t===`PROTOCOL_INCOMPATIBLE`?new CS(`FORGE_RUNTIME_UPDATE_REQUIRED`,`Update Forge on the target runtime before connecting remotely.`):t===`PROTOCOL_ROLLOUT_DENIED`?new CS(`FORGE_REMOTE_CONTROL_NOT_ENABLED`,`Remote control is not enabled for this CMMD account. Synced runtime inventory remains available.`):e}async function TS(e){let t=e.getStoredDeviceKey(),n=t?await e.apiClient.getDeviceRegistry():await e.apiClient.registerDevice(await e.buildDeviceRegistration());return t&&!n.devices.some(e=>e.deviceKey===t)&&(n=await e.apiClient.registerDevice(await e.buildDeviceRegistration())),t??=e.getStoredDeviceKey(),{deviceKey:t,registry:n}}function ES(e){if(!e.deviceKey)throw new CS(`FORGE_CONTROL_DEVICE_UNAUTHORIZED`,`This Forge control surface could not establish CMMD identity.`);let t=e.registry.devices.find(t=>t.deviceKey===e.deviceKey);if(t?.trustState===`revoked`||t?.authorization?.revoked===!0)throw new CS(`FORGE_CONTROL_DEVICE_REVOKED`,`This Forge control surface was revoked by CMMD.`);if(!t||t.trustState!==`trusted`)throw new CS(`FORGE_CONTROL_DEVICE_UNAUTHORIZED`,`This Forge control surface is not trusted by CMMD.`);return t}function DS(e,t){let n=async()=>ES(await TS(t));return{acquireRoute:async()=>{let r=await n(),i=await ca();try{let n=await t.apiClient.issueRelayControlRoute(e,{controlDeviceId:r.id,controlSessionId:t.controlSessionId,scopes:[...Ci],protocolMinVersion:4,protocolMaxVersion:4,...Yi(i)});return $i({route:n,runtimeId:e,endpoint:i})}catch(e){if(e instanceof sa)throw new CS(`FORGE_RUNTIME_UPDATE_REQUIRED`,e.message);return wS(e)}},acquireActionGrant:async r=>{let i=await n();try{return(await t.apiClient.issueRelayActionGrant(e,{controlDeviceId:i.id,controlSessionId:t.controlSessionId,...r})).token}catch(e){return wS(e)}}}}var OS=new Map;async function kS(e,t){let n=Hr.make(e.runtimeId),r=t.readConnection(n);if(r)return r;Nx(n);let i=vS(),a=DS(e.runtimeId,{apiClient:cr,getStoredDeviceKey:aS,buildDeviceRegistration:tS,controlSessionId:i.controlSessionId}),o;try{o=await a.acquireRoute()}catch(e){throw Lx(n,e),e}let s=o,c=ga({acquireRoute:async()=>{let e=s;return s=null,e??a.acquireRoute()},acquireActionGrant:a.acquireActionGrant,journal:i,lifecycle:{onConnecting:()=>Nx(n),onAuthenticated:()=>Px(n),onDisconnected:e=>Ix(n,e.reason),onError:e=>Lx(n,Object.assign(Error(e.message),e))}}),l=af(new ld(o.relayWebSocketUrl,{trackGlobalConnection:!1},{layer:c,makeClient:Qi(Ci)})),u=ql({kind:`saved`,knownEnvironment:{...xn({id:n,label:e.label,source:`manual`,target:{httpBaseUrl:ra()?.target.httpBaseUrl??o.relayWebSocketUrl,wsBaseUrl:o.relayWebSocketUrl}}),environmentId:n},client:l,tolerateReportedEnvironmentIdentity:!0,onConfigSnapshot:e=>Fx(n,e),...jx(e=>{j.getState().patch(n,{descriptor:e.environment})})});try{let[,e]=await Promise.all([u.ensureBootstrapped(),l.server.getConfig()]);return Fx(n,e),Px(n),t.registerConnection(u)}catch(e){throw Lx(n,e),await u.dispose().catch(()=>void 0),e}}function AS(e,t){let n=Hr.make(e.runtimeId),r=t.readConnection(n);if(r)return Promise.resolve(r);let i=OS.get(n);if(i)return i;let a=kS(e,t).finally(()=>{OS.delete(n)});return OS.set(n,a),a}var jS=new Set([`CMMD_AUTH_REQUIRED`,`CMMD_AUTH_EXPIRED`,`INVALID_OR_NON_USER_TOKEN`,`NON_USER_BEARER`,`CMMD_REST_AUTH_ERROR`]);function MS(e){if(!e||typeof e!=`object`)return null;let t=e.code;return typeof t!=`string`||!jS.has(t)?null:t}function NS(e,t){return e===401||e===403||MS(t)!==null}function PS(e){if(!e||typeof e!=`object`)return!1;let t=e.status,n=e.code;return NS(typeof t==`number`?t:void 0,typeof n==`string`?{code:n}:void 0)}var FS=[1e3,2e3,4e3,8e3,12e3,16e3,2e4],IS=9e4,LS=[`all fibers interrupted without error`,`timed out while waiting for forge cloud runtime metadata`,`timed out while waiting for`,`to stream its shell snapshot`,`forge runtime route not found`,`fly-replay`,`could not find a good candidate`,`instance refused connection`],RS=[`Unknown socket error`,`Failed to fetch remote auth endpoint`,`Forge runtime replay target is unavailable`,`Remote auth request failed (502)`,`Remote auth request failed (503)`,`Remote auth request failed (504)`,`Unable to connect to the Forge server WebSocket`];function zS(e){if(typeof e!=`object`||!e)return null;let t=e.status;return typeof t==`number`&&Number.isInteger(t)?t:null}function BS(e){if(PS(e))return!1;let t=zS(e);if(t===502||t===503||t===504||e._tag===`OrchestrationGetSnapshotError`)return!0;let n=e instanceof Error?e.message:String(e),r=n.toLowerCase();return LS.some(e=>r.includes(e))||RS.some(e=>n.includes(e))}function VS(e){return FS[e]??FS[FS.length-1]}function HS(){return IS}function US(e,t){if(!dl(e))return t;let n=null,r=new Promise((t,r)=>{n=globalThis.setTimeout(()=>{r(Error(`Timed out while waiting for Forge Cloud runtime metadata for ${e.environmentId}. The VM may still be starting.`))},HS())});return Promise.race([t,r]).finally(()=>{n!==null&&globalThis.clearTimeout(n)})}function WS(e){let t=e.toLowerCase();return t.includes(`authentication`)||t.includes(`unauthorized`)||t.includes(`forbidden`)||t.includes(`credential`)||t.includes(`runtime ticket`)||t.includes(`status 401`)||t.includes(`status 403`)}var GS=`forge:cloud-runtime-handoffs:v2`,KS=3e5,qS=new Map,JS={clear:()=>qS.clear(),getItem:e=>qS.get(e)??null,key:e=>Array.from(qS.keys())[e]??null,get length(){return qS.size},removeItem:e=>qS.delete(e),setItem:(e,t)=>qS.set(e,t)};function YS(){return typeof window<`u`?window.localStorage:globalThis.localStorage??JS}var XS=wa()(Wf(e=>({byRuntimeId:{},record:t=>e(e=>({byRuntimeId:{...e.byRuntimeId,[t.runtimeId]:t}})),clearRuntime:t=>e(e=>t in e.byRuntimeId?{byRuntimeId:Object.fromEntries(Object.entries(e.byRuntimeId).filter(([e])=>e!==t))}:e),reconcileCatalog:(t,n=Date.now())=>e(e=>{let r=Object.entries(e.byRuntimeId).filter(([,e])=>{if(n-e.recordedAt>KS)return!1;let r=t.find(t=>t.cmmdOrganizationId===e.cmmdOrganizationId&&t.cmmdProjectId===e.cmmdProjectId);return r?.runtimeId===e.previousCatalogRuntimeId&&r.registeredAt===e.catalogRegisteredAt});return r.length===Object.keys(e.byRuntimeId).length?e:{byRuntimeId:Object.fromEntries(r)}}),reset:()=>e({byRuntimeId:{}})}),{name:GS,storage:Hf(YS),partialize:e=>({byRuntimeId:e.byRuntimeId}),version:2}));function ZS(e){XS.getState().record({...e,recordedAt:Date.now()})}function QS(e){XS.getState().clearRuntime(e)}var $S=new Set([`filesystem`,`terminal`,`git`,`project-write`]);function eC(e){return e===`desktop-local`}function tC(e){return e===`cloud`||e===`cloud-vm`||e===`cmmd`||e===`github`}function nC(e){return e.actionKind===`cloud-api`?{available:!0,route:`cloud`,requiresPermissionGate:!1,title:`Cloud API route`,description:`Cloud and Command work routes through authenticated Forge Cloud APIs.`}:$S.has(e.actionKind)?tC(e.workSource)?e.workSource===`cloud-vm`&&e.executionRuntime===`cloud`?{available:!0,route:`cloud-vm`,requiresPermissionGate:!1,title:`Cloud VM route`,description:`Filesystem, terminal, git, and project writes run inside the user's Forge Cloud VM.`}:e.executionRuntime===`cloud`?{available:!0,route:`cloud`,requiresPermissionGate:!1,title:`Cloud work route`,description:`Cloud-scoped filesystem, terminal, git, and project writes run in the Forge Cloud runtime.`}:{available:!1,route:`blocked`,requiresPermissionGate:!1,title:`Open in Forge Cloud`,description:`Cloud projects must execute inside the Forge Cloud runtime. Local Desktop cannot run cloud project filesystem, terminal, git, or project-write actions.`}:eC(e.workSource)?e.surface===`desktop-local`||e.executionRuntime===`desktop-local`?{available:!0,route:`desktop-local`,requiresPermissionGate:!1,title:`Desktop local route`,description:`Local filesystem, terminal, git, and project writes run through the Desktop local backend.`}:e.executionRuntime===`dev-local-web`?{available:!0,route:`dev-local-web`,requiresPermissionGate:!1,title:`Dev local route`,description:`Local Web is a development-only projection and routes local actions through the dev server.`}:{available:!1,route:`blocked`,requiresPermissionGate:!1,title:`Switch to Desktop Local`,description:`Local projects must execute in the Desktop Local runtime. Forge Cloud cannot run local filesystem, terminal, git, or project-write actions.`}:{available:!1,route:`blocked`,requiresPermissionGate:!1,title:`Unknown work source`,description:`Forge cannot safely route local actions for this work source yet.`}:{available:!1,route:`blocked`,requiresPermissionGate:!1,title:`Unsupported route`,description:`Forge does not have a runtime route for this action yet.`}}var rC=`Ready to use. Your cloud project starts when you open the first thread.`;function iC(e){let t=nC({actionKind:`project-write`,surface:`cloud-official`,workSource:`cloud-vm`,executionRuntime:`cloud`});return{actionAuthority:`runtime`,surface:`cloud-official`,hostKind:`user-cloud-vm`,workSource:`cloud-vm`,executionRuntime:`cloud`,modelRuntime:`cloud`,linkState:`cloud-only`,workspaceIdentity:null,hideLocalPath:!0,label:`Cloud project`,description:e?`This project runs in your Forge Cloud VM.`:rC,actionRouteLabel:t.title,actionRouteDescription:t.description,actionRouteAvailable:t.available,requiresPermissionGate:t.requiresPermissionGate}}var aC=3e5;function oC(e,t,n=Date.now()){let r=new Map,i=new Map;for(let t of e){let e={cmmdOrganizationId:t.cmmdOrganizationId,cmmdProjectId:t.cmmdProjectId};r.set(lC(e),e),t.runtimeId!==null&&i.set(t.runtimeId,e)}for(let a of t){if(n-a.recordedAt>aC)continue;let t=r.get(lC({cmmdOrganizationId:a.cmmdOrganizationId,cmmdProjectId:a.cmmdProjectId})),o=e.find(e=>e.cmmdOrganizationId===a.cmmdOrganizationId&&e.cmmdProjectId===a.cmmdProjectId);t&&o?.runtimeId===a.previousCatalogRuntimeId&&o.registeredAt===a.catalogRegisteredAt&&!i.has(a.runtimeId)&&i.set(a.runtimeId,t)}return i}function sC(e){return e.environmentId??`cmmd-cloud-project:${e.cmmdOrganizationId}:${e.cmmdProjectId}`}function cC(e){return{environmentId:sC(e),workspaceRoot:e.workspaceRoot,resolvedRef:e.resolvedRef}}function lC(e){return`cloud:${e.cmmdOrganizationId}:${e.cmmdProjectId}`}function uC(e){let t=/^cloud:(\d+):(\d+)$/.exec(e??``);return t?{cmmdOrganizationId:Number(t[1]),cmmdProjectId:Number(t[2])}:null}function dC(e){return`cloud-runtime:${e}`}var fC=`cloud-unconnected:`;function pC(e,t,n=[]){let r=lC(e);return mC({id:xi.make(`${fC}${r}`),environmentId:Hr.make(sC(e)),name:e.projectName,cwd:``,repositoryIdentity:null,availability:void 0,defaultModelSelection:null,createdAt:void 0,updatedAt:void 0,scripts:[],projectKey:r,environmentPresence:`remote-only`,source:iC(e.runtimeId!==null),memberProjectRefs:t?[t]:[],remoteEnvironmentLabels:[],worktreeMembers:[],activeWorktreeKey:null,preConnectCloud:{runtimeId:e.runtimeId,cmmdOrganizationId:e.cmmdOrganizationId,cmmdProjectId:e.cmmdProjectId,cmmdEnvironmentId:e.cmmdEnvironmentId,registeredAt:e.registeredAt,projectName:e.projectName,githubRepoFullName:e.githubRepoFullName,workspaceRoot:e.workspaceRoot,iconUrl:e.iconUrl,icon:e.icon,status:e.status,removal:e.removal},cloudRemoval:e.removal},n)}function mC(e,t){if(t.length===0)return e;let n=[...e.memberProjectRefs],r=new Set(n.map(e=>`${e.environmentId}:${e.projectId}`));for(let e of t){let t=`${e.environmentId}:${e.projectId}`;r.has(t)||(r.add(t),n.push(e))}return n.length===e.memberProjectRefs.length?e:{...e,memberProjectRefs:n}}function hC(e,t,n,r){if(!e)return null;let i=t.find(t=>t.cmmdEnvironmentId===String(e));if(i)return{row:i,runtimeId:i.runtimeId,matchedByHandoff:!1};let a=vr(e).legacyRuntimeId;if(a){let e=t.find(e=>e.runtimeId===a);if(e)return{row:e,runtimeId:a,matchedByHandoff:!1};let i=oC(t,n,r).get(a);if(!i)return null;let o=t.find(e=>e.cmmdOrganizationId===i.cmmdOrganizationId&&e.cmmdProjectId===i.cmmdProjectId);return o?{row:o,runtimeId:a,matchedByHandoff:!0}:null}let o=t.find(t=>t.runtimeId===null&&sC(t)===String(e));return o?{row:o,runtimeId:null,matchedByHandoff:!1}:null}function gC(e,t=e.runtimeId){return{runtimeId:t,cmmdOrganizationId:e.cmmdOrganizationId,cmmdProjectId:e.cmmdProjectId,cmmdEnvironmentId:e.cmmdEnvironmentId,registeredAt:e.registeredAt,projectName:e.projectName,githubRepoFullName:e.githubRepoFullName,workspaceRoot:e.workspaceRoot,iconUrl:e.iconUrl,icon:e.icon,status:e.status,desiredState:e.desiredState}}function _C(e){return e.desiredState===`stopped`}var vC=15e3;function yC(e){return e===401||e===403}function bC(e){return typeof e!=`object`||!e?!1:e.retryable===!0}function xC(e){return yC(e.status)||e.attempt>=e.maxAttempts||e.status>=200&&e.status<300?!1:e.status>=500||e.status===409&&bC(e.body)}function SC(e,t){let n=e?.trim();if(!n)return null;if(/^-?\d+$/.test(n))return Number(n)*1e3;let r=Date.parse(n);return Number.isNaN(r)?null:r-t}function CC(e){let t=e=>Math.min(vC,Math.max(0,e)),n=SC(e.retryAfter,e.nowMs??Date.now());return t(n===null?300*2**Math.max(0,e.attempt-1):n)}var wC=6e4;function TC(e,t){if(!e||typeof e!=`object`)return t;let n=e.error;return typeof n==`string`&&n.trim().length>0?n:t}var EC=`CMMD returned an invalid Cloud runtime connection descriptor.`;function DC(e,t){let n=e[t];if(typeof n!=`string`||n.length===0)throw Error(EC);return n}function OC(e){if(!e||typeof e!=`object`)throw Error(EC);let t=e;return{httpBaseUrl:DC(t,`httpBaseUrl`),wsBaseUrl:DC(t,`wsBaseUrl`),bearerToken:DC(t,`bearerToken`),expiresAt:DC(t,`expiresAt`)}}async function kC(e){let t=Ji(`/api/cmmd/forge-runtimes/${encodeURIComponent(e.runtimeId)}/connect`),n=ta({method:`POST`,...e.signal?{signal:e.signal}:{},headers:{"Content-Type":`application/json`},body:JSON.stringify(e.organizationId===void 0?{}:{organizationId:e.organizationId})});for(let r=1;r<=8;r+=1){let i=await fetch(t,n),a=await i.json().catch(()=>null);if(i.ok)return OC(a);if(!xC({status:i.status,body:a,attempt:r,maxAttempts:8})){let e=NS(i.status,a)?`CMMD authentication expired while renewing the Cloud runtime connection. Sign in again.`:`CMMD could not renew the Cloud runtime connection (${i.status}).`;throw Object.assign(Error(TC(a,e)),{status:i.status,...MS(a)?{code:MS(a)}:{}})}await sl(CC({attempt:r,retryAfter:i.headers.get(`retry-after`)}),e.signal)}throw Error(`Cloud runtime connection retry budget was exhausted.`)}function AC(e,t){if(!e?.expiresAt)return!0;let n=Date.parse(e.expiresAt);return!Number.isFinite(n)||n<=t+wC}function jC(e){let t=e.requestDescriptor??kC,n=e.now??Date.now,r=e.initialDescriptor??null,i=null,a=!1,o=new AbortController,s=e=>ol(e,o.signal),c=()=>i||(i=s(t({runtimeId:e.runtimeId,...e.organizationId===void 0?{}:{organizationId:e.organizationId},signal:o.signal})).then(async t=>(await s(Promise.resolve(e.validateDescriptor?.(t))),await s(Promise.resolve(e.persistDescriptor?.(t))),await s(Promise.resolve()),r=t,a=!1,t)).then(e=>(i=null,e),e=>{throw i=null,e}),i);return{acquire:e=>{if(o.signal.aborted)return s(Promise.resolve(r));let t=e?.forceRefresh||a||AC(r,n())?c():Promise.resolve(r);return ol(s(t),e?.signal)},invalidate:()=>{a=!0},dispose:()=>{o.abort()}}}function MC(e){let t=e.runtimeId?.trim();if(t)return t;let n=vr(e.environmentId).legacyRuntimeId;if(n)return n;let r=ur().rows,i=Object.values(XS.getState().byRuntimeId);return hC(e.environmentId,r,i)?.runtimeId??null}function NC(e,t,n,r){let i=e,a=jC({runtimeId:t,...e.cmmdOrganizationId===void 0?{}:{organizationId:e.cmmdOrganizationId},...n===void 0?{}:{initialDescriptor:{httpBaseUrl:e.httpBaseUrl,wsBaseUrl:e.wsBaseUrl,bearerToken:n,expiresAt:e.runtimeTicketExpiresAt??null}},validateDescriptor:async e=>{await Fl({httpBaseUrl:e.httpBaseUrl,bearerToken:e.bearerToken})},persistDescriptor:async e=>{if(r&&!r())throw Error(`Saved environment changed while its connection was being acquired.`);let t={...ul(i),httpBaseUrl:e.httpBaseUrl,wsBaseUrl:Jr(e.wsBaseUrl),...e.expiresAt===null?{}:{runtimeTicketExpiresAt:e.expiresAt},lastConnectedAt:new Date().toISOString()};await Gn(t),await mr(t.environmentId),ir.getState().upsert(t),i=t}});return xl(e.environmentId,a),a}function PC(e){let t={wsBaseUrl:e.record.wsBaseUrl,httpBaseUrl:e.record.httpBaseUrl,bearerToken:e.bearerToken,expiresAt:e.record.runtimeTicketExpiresAt??null};return{acquire:()=>Promise.resolve(t)}}var FC=12e4,IC=3e4,LC=3e4;function RC(e){let t=e.expiresAt?Date.parse(e.expiresAt):NaN;if(!Number.isFinite(t))throw Error(`Cloud runtime authority descriptor has no valid expiry.`);return t}function zC(e){if(!e||typeof e!=`object`)return!1;let t=e.status;return t===401||t===403}function BC(e){let t=e.now??Date.now,n=e.renewalSkewMs??FC,r=!1,i=null,a=null,o=RC(e.initialDescriptor),s=()=>{i!==null&&(globalThis.clearTimeout(i),i=null)},c=a=>{if(r)return;s();let c=RC(a);o=c;let l=Math.max(t(),c-n);e.onState?.({kind:`scheduled`,expiresAt:new Date(c).toISOString(),renewAt:new Date(l).toISOString()}),i=globalThis.setTimeout(()=>{i=null,u().catch(()=>void 0)},Math.max(0,l-t()))},l=()=>{if(r)return null;let e=t()+LC;return e>=o?null:(i=globalThis.setTimeout(()=>{i=null,u().catch(()=>void 0)},LC),new Date(e).toISOString())},u=()=>{if(r)return Promise.resolve();if(a)return a;s(),e.onState?.({kind:`renewing`,expiresAt:new Date(o).toISOString()});let n=e.renew().then(async n=>{let i=RC(n);if(i<=t())throw Error(`Cloud runtime authority descriptor is already expired.`);r||(e.onState?.({kind:`ready`,expiresAt:new Date(i).toISOString(),renewedAt:new Date(t()).toISOString()}),c(n))}).catch(t=>{if(r)return;let n=zC(t);throw e.onState?.({kind:`error`,code:n?`authority_auth_rejected`:`authority_renewal_failed`,retryAt:n?null:l()}),t}).finally(()=>{a=null});return a=n,n};return c(e.initialDescriptor),{ensureLive:()=>o>t()+IC?Promise.resolve():u(),renewNow:u,dispose:()=>{r=!0,s()}}}function VC(){return new Date().toISOString()}function HC(e,t,n,r,i){return n()&&j.getState().ensure(e.environmentId),af(new ld(async()=>{let e=e=>Rl({wsBaseUrl:e.wsBaseUrl,httpBaseUrl:e.httpBaseUrl,bearerToken:e.bearerToken,...r?{runtimeTicket:e.bearerToken}:{}}),n=await t.acquire();try{return await e(n)}catch(n){if(!r||!Rn(n))throw n;return e(await t.acquire({forceRefresh:!0}))}},{trackGlobalConnection:!1,onAttempt:()=>{n()&&i.setConnecting(e.environmentId)},onOpen:()=>{n()&&i.setConnected(e.environmentId)},onError:i=>{r&&WS(i)&&t.invalidate?.(),n()&&j.getState().patch(e.environmentId,{connectionState:`error`,lastError:i,lastErrorAt:VC()})},onClose:a=>{r&&(a.code===1008||WS(a.reason))&&t.invalidate?.(),n()&&i.setDisconnected(e.environmentId,a.reason)}}))}async function UC(e,t,n,r,i,a,o){let s=await bl(t,o),[c,l]=await Promise.all([a?Promise.resolve(a):n.server.getConfig(),Fl({httpBaseUrl:s.httpBaseUrl,bearerToken:s.bearerToken,...o?{signal:o}:{}})]);return r()?(j.getState().patch(e.environmentId,{authState:l.authenticated?`authenticated`:`requires-auth`,descriptor:c.environment,serverConfig:c,role:l.authenticated?l.role??i??null:null}),WC(e,c,l.authenticated,r),!0):!1}function WC(e,t,n,r){if(!n||!r())return;let i=er(e.environmentId);i&&ir.getState().upsert({...i,lastAuthenticatedPullRequestCapability:t.environment.capabilities?.pullRequests===!0})}async function GC(e,t,n,r){let i=n.findConnection(e.environmentId);if(i)return i;let a=r?.registryExpectation??{kind:`existing-record`,record:e},o=()=>n.canCommit({record:e,generation:t,registryExpectation:a}),{isCmmdRuntime:s,targetProvider:c,initialTarget:l}=await KC(e,r,o);if(!o())throw qC(e.environmentId,c,s),Error(`Saved environment changed while its connection was being acquired.`);let u=r?.client??HC(e,c,o,s,n),d=YC({record:e,initialTarget:l,targetProvider:c,isCmmdRuntime:s,client:u,canCommit:o,dependencies:n});try{if(!await n.withMetadataTimeout(e,UC(e,c,u,o,r?.role??null,r?.serverConfig??null,r?.signal))||!o())throw Error(`Saved environment changed while its connection was being acquired.`);return n.registerConnection(d)}catch(t){throw s&&Cl(e.environmentId,c),o()&&n.setError(e.environmentId,t),await d.dispose().catch(()=>void 0),t}}async function KC(e,t,n){let r=dl(e)?MC(e):null,i=r!==null,a=await JC(e,t,i,n),o=i?NC(e,r,a??void 0,n):PC({record:e,bearerToken:a});try{return{isCmmdRuntime:i,targetProvider:o,initialTarget:await bl(o,t?.signal)}}catch(t){throw qC(e.environmentId,o,i),t}}function qC(e,t,n){n&&Cl(e,t)}async function JC(e,t,n,r){if(n)return t?.bearerToken;let i=t?.bearerToken??await nr(e.environmentId);if(i)return i;throw r()&&j.getState().patch(e.environmentId,{authState:`requires-auth`,role:null,connectionState:`disconnected`,lastError:`Saved environment is missing its saved credential. Pair it again.`,lastErrorAt:VC()}),Error(`Saved environment is missing its saved credential.`)}function YC(e){let{record:t,initialTarget:n,targetProvider:r,isCmmdRuntime:i,client:a,canCommit:o,dependencies:s}=e,c=xn({id:t.environmentId,label:t.label,source:`manual`,target:{httpBaseUrl:n.httpBaseUrl,wsBaseUrl:n.wsBaseUrl}}),l=i&&n.expiresAt?BC({initialDescriptor:{...n,expiresAt:n.expiresAt},renew:async()=>{let e=await r.acquire({forceRefresh:!0});return{...e,expiresAt:e.expiresAt??null}},onState:e=>{o()&&j.getState().patch(t.environmentId,{providerAuthority:e})}}):null;return ql({kind:`saved`,knownEnvironment:{...c,environmentId:t.environmentId},client:a,readiness:{bearerToken:n.bearerToken},tolerateReportedEnvironmentIdentity:i,refreshMetadata:async()=>{await UC(t,r,a,o)},...l?{ensureProviderAuthority:l.ensureLive,onDispose:l.dispose}:{},onConfigSnapshot:e=>{o()&&j.getState().patch(t.environmentId,{descriptor:e.environment,serverConfig:e})},...s.createHandlers(e=>{o()&&j.getState().patch(t.environmentId,{descriptor:e.environment})})})}var XC=class{readRecord;hasSameTarget;generations=new Map;acquisitions=new Map;constructor(e,t){this.readRecord=e,this.hasSameTarget=t}invalidate(e){this.generations.set(e,this.readGeneration(e)+1)}generationFor(e){return this.readGeneration(e)}isCurrent(e){if(this.readGeneration(e.record.environmentId)!==e.generation)return!1;let t=this.readRecord(e.record.environmentId);return e.registryExpectation.kind===`initial-add`?t===null||this.hasSameTarget(t,e.record):t!==null&&this.hasSameTarget(t,e.registryExpectation.record)}ensure(e,t){let n=this.readGeneration(e.environmentId),r=this.acquisitions.get(e.environmentId);if(r&&r.generation===n&&this.hasSameTarget(r.record,e))return r.promise;let i=t(e,n).finally(()=>{this.acquisitions.get(e.environmentId)?.promise===i&&this.acquisitions.delete(e.environmentId)});return this.acquisitions.set(e.environmentId,{generation:n,record:e,promise:i}),i}async sync(e){await rr(e.records);let t=new Map(e.records.map(e=>[e.environmentId,e]));for(let[e,n]of this.acquisitions){let r=t.get(e);(!r||!this.hasSameTarget(r,n.record))&&this.invalidate(e)}let n=new Set(t.keys());await Promise.all(e.connectedSavedEnvironmentIds.filter(e=>!n.has(e)).map(async t=>{this.invalidate(t),await e.disconnect(t)}))}clear(){this.generations.clear(),this.acquisitions.clear()}readGeneration(e){return this.generations.get(e)??0}};async function ZC(e,t,n){if(!dl(e))return n.ensureSavedEnvironmentConnection(e,t);let r=n.getGeneration(e.environmentId),i=()=>n.registry.isCurrent({record:e,generation:r,registryExpectation:t?.registryExpectation??{kind:`existing-record`,record:e}}),a=null;for(let r=0;r<8;r+=1){al(t?.signal);try{let r=await n.ensureSavedEnvironmentConnection(e,t);return await ol(r.ensureBootstrapped(),t?.signal),r}catch(o){a=o,await QC({error:o,attemptIndex:r,record:e,options:t,dependencies:n,canCommit:i})}}let o=a instanceof Error?a:Error(String(a));throw i()&&n.setRuntimeError(e.environmentId,o),o}async function QC(e){let{error:t,attemptIndex:n,record:r,options:i,dependencies:a,canCommit:o}=e;if(!o())throw t;if(await a.removeConnection(r.environmentId).catch(()=>!1),al(i?.signal),n>=7||!BS(t))throw o()&&a.setRuntimeError(r.environmentId,t),t;let s=VS(n);i?.onBootstrapRetry?.({attempt:n+2,maxAttempts:8,retryDelayMs:s,error:t}),o()&&j.getState().patch(r.environmentId,{connectionState:`connecting`,lastError:null,lastErrorAt:null}),await sl(s,i?.signal)}var $C=new Map,ew=new XC(e=>er(e),fl),tw=new Set,nw=Al({createPrimaryEnvironmentConnection:sw,syncSavedEnvironmentConnections:lw});function rw(){nw.notifyProviderInvalidation()}function iw(){for(let e of tw)e()}function aw(e){let t=$C.get(e.environmentId);if(t&&t!==e)throw Error(`Environment ${e.environmentId} already has an active connection.`);return $C.set(e.environmentId,e),iw(),e}async function ow(e){let t=$C.get(e);return t?($C.delete(e),Cl(e),ox(e),iw(),await t.dispose(),!0):!1}function sw(){return zx({readConnection:dw,registerConnection:aw})}async function cw(e,t){return $C.get(e.environmentId)||ew.ensure(e,(e,n)=>GC(e,n,{findConnection:e=>$C.get(e),registerConnection:aw,canCommit:ew.isCurrent.bind(ew),createHandlers:jx,withMetadataTimeout:US,setConnecting:Nx,setConnected:Px,setDisconnected:Ix,setError:Lx},t))}async function lw(e){await ew.sync({records:e,connectedSavedEnvironmentIds:[...$C.values()].filter(e=>e.kind===`saved`).map(e=>e.environmentId),disconnect:_w})}function uw(e){return tw.add(e),()=>{tw.delete(e)}}function dw(e){return $C.get(e)??null}function fw(e){return AS(e,{readConnection:dw,registerConnection:aw})}function pw(e){let t=dw(e);if(!t)throw Error(`No websocket client registered for environment ${e}.`);return t}function mw(){return sw()}async function hw(){return Bx({readConnection:dw,registerConnection:aw})}function gw(){return{readConnection:dw,removeConnection:ow,ensureSavedEnvironmentConnection:cw,ensureCmmdRuntimeSavedEnvironmentConnection:Sw,invalidate:e=>ew.invalidate(e),retireEnvironmentId:ax}}async function _w(e){await Kx(e,gw())}async function vw(e){await qx(e,gw())}async function yw(){return Wx({readConnection:dw,ensureCmmdRuntimeSavedEnvironmentConnection:Sw})}async function bw(e){await Jx(e,gw())}async function xw(e){return Yx(e,gw())}async function Sw(e,t){return ZC(e,t,{ensureSavedEnvironmentConnection:cw,getGeneration:e=>ew.generationFor(e),registry:ew,removeConnection:ow,setRuntimeError:Lx})}async function Cw(e){await $C.get(e)?.ensureBootstrapped()}async function ww(e){let t=$C.get(e);if(t?.ensureProviderAuthority){await t.ensureProviderAuthority();return}if(Sl(e))throw Error(`Cloud runtime provider authority is not available.`)}function Tw(e){return nw.start(e)}zb({applyEvent:Ox,readConnection:dw,subscribeConnections:uw}),Cy({notifyProviderInvalidation:rw,readQueryClient:()=>nw.readActiveService()?.queryClient??null,setRuntimeError:Lx});function Ew(e){return{environmentId:e.environmentId,threadId:e.threadId}}function Dw(e){return{draftId:e}}function Ow(e){return!e.environmentId||!e.threadId?null:C(e.environmentId,e.threadId)}function kw(e){return e.environmentId&&e.threadId?{kind:`server`,threadRef:C(e.environmentId,e.threadId)}:e.draftId?{kind:`draft`,draftId:e.draftId}:null}function I(e){let t=(0,A.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=Ca(`relative overflow-hidden rounded-sm bg-muted [--skeleton-highlight:--alpha(var(--color-white)/64%)] after:absolute after:inset-0 after:animate-skeleton after:bg-[linear-gradient(120deg,transparent_40%,var(--skeleton-highlight),transparent_60%)] motion-reduce:after:content-none dark:[--skeleton-highlight:--alpha(var(--color-white)/4%)]`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,k.jsx)(`div`,{className:i,"data-slot":`skeleton`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Aw(e,t){if(!De(e)||!De(t))return t;let n={...e};for(let[e,r]of Object.entries(t)){if(r===void 0)continue;let t=n[e];n[e]=De(t)&&De(r)?Aw(t,r):r}return n}function jw(e,t){return un(t).pipe(ln,sn(e))}function Mw(e){return{issues:e.issues,providers:e.providers,settings:e.settings}}var Nw=[],Pw=[],Fw=[],Iw=e=>e?.availableEditors??Nw,Lw=e=>e?.keybindings??Pw,Rw=e=>e?.keybindingsConfigPath??null,zw=e=>e?.observability??null,Bw=e=>e?.providers??Fw,Vw=e=>e?.settings??Li,Hw=jw(`server-welcome`,null),Uw=jw(`server-config`,null),Ww=jw(`server-config-updated`,null),Gw=jw(`server-providers-updated`,null);function Kw(){return cn.get(Uw)}function qw(){return cn.get(Ww)}function Jw(e){rT(e),iT({providers:e.providers}),aT(Mw(e),`snapshot`)}function Yw(e){switch(e.type){case`snapshot`:Jw(e.config);return;case`keybindingsUpdated`:{let t=Kw();if(!t)return;let n={...t,issues:e.payload.issues,keybindings:e.payload.keybindings};rT(n),aT(Mw(n),e.type);return}case`providerStatuses`:Xw(e.payload);return;case`settingsUpdated`:Zw(e.payload.settings);return;case`environmentUpdated`:Qw(e.payload.environment);return}}function Xw(e){let t=Kw();if(iT(e),!t)return;let n={...t,providers:e.providers};rT(n),aT(Mw(n),`providerStatuses`)}function Zw(e){let t=Kw();if(!t)return;let n={...t,settings:e};rT(n),aT(Mw(n),`settingsUpdated`)}function Qw(e){let t=Kw();if(yr()?.environmentId===e.environmentId&&vn(e),!t)return;let n={...t,environment:e};rT(n),aT(Mw(n),`environmentUpdated`)}function $w(e){cn.set(Hw,e)}function eT(e){return oT(Ww,t=>{e(t.payload,t.source)})}function tT(e){let t=!1,n=[e.subscribeLifecycle(e=>{e.type===`welcome`&&$w(e.payload)}),e.subscribeConfig(e=>{Yw(e)})];return Kw()===null&&e.getConfig().then(e=>{t||Kw()!==null||Jw(e)}).catch(()=>void 0),()=>{t=!0;for(let e of n)e()}}var nT=1;function rT(e){cn.set(Uw,e)}function iT(e){cn.set(Gw,e)}function aT(e,t){cn.set(Ww,{id:nT++,payload:e,source:t})}function oT(e,t){return cn.subscribe(e,e=>{e!==null&&t(e)},{immediate:!0})}function sT(e,t){let n=(0,O.useRef)(t);n.current=t;let r=(0,O.useCallback)(e=>{e!==null&&n.current(e)},[]);_a(e,r,{immediate:!0})}function cT(){return ma(Uw)}function lT(){return ma(Uw,Vw)}function uT(){return ma(Uw,Bw)}function dT(){return ma(Uw,Lw)}function fT(){return ma(Uw,Iw)}function pT(){return ma(Uw,Rw)}function mT(){return ma(Uw,zw)}function hT(e){sT(Hw,e)}function gT(){return ma(Hw)}function _T(e){sT(Ww,e)}var vT=`[CLIENT_SETTINGS]`,yT=new Set,bT=li,xT=!1,ST=null,CT=`pending`;function wT(e){CT!==e&&(CT=e,TT())}function TT(){for(let e of yT)e()}function ET(){return bT}function DT(e){bT=e,TT()}function OT(e){return yT.add(e),kT(),()=>{yT.delete(e)}}async function kT(){if(xT)return;if(ST)return ST;let e=(async()=>{try{let e=await tr();e&&DT(e),xT=!0,wT(`ready`)}catch(e){console.error(`${vT} hydrate failed`,e),wT(`failed`)}})().finally(()=>{ST===e&&(ST=null)});return ST=e,ST}var AT=new Set(ei(Ii.fields));function jT(e){let t={},n={};for(let[r,i]of Object.entries(e))AT.has(r)?t[r]=i:n[r]=i;return{serverPatch:t,clientPatch:n}}function MT(){return kT()}var NT=Promise.resolve();function PT(e){let t=NT.then(async()=>{if(await MT(),LT()!==`ready`)throw Error(`${vT} hydration failed; refusing to persist settings.`);return e()});return NT=t.then(()=>void 0,()=>void 0),t}function FT(e){return PT(async()=>{let t=e(ET());await or(t),DT(t)})}function IT(){return(0,O.useSyncExternalStore)(OT,LT,LT)}function LT(){return CT}function RT(){return(0,O.useSyncExternalStore)(OT,BT,zT)}function zT(){return!1}function BT(){return xT}function VT(){let e=RT(),t=UT(HT);return e&&t}function HT(e){return e.legacySidebarEnabled}function UT(e){let t=lT(),n=(0,O.useSyncExternalStore)(OT,ET,()=>li),r=(0,O.useMemo)(()=>({...t,...n}),[n,t]);return(0,O.useMemo)(()=>e?e(r):r,[r,e])}function WT(){let e=(0,A.c)(2),t=GT,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=()=>{t(Tr)},e[0]=n):n=e[0];let r=n,i;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i={updateSettings:t,resetSettings:r},e[1]=i):i=e[1],i}function GT(e){let{serverPatch:t,clientPatch:n}=jT(e);if(Object.keys(t).length>0){let e=Kw();e&&Zw(Aw(e.settings,t)),mw().client.server.updateSettings(t)}Object.keys(n).length>0&&PT(async()=>{let e={...ET(),...n};DT(e),await or(e).catch(qT)}).catch(KT)}function KT(e){console.error(`${vT} persist failed`,e)}function qT(e){console.error(`${vT} persist failed`,e)}function JT(e){return t=>e?pn(t,e.environmentId).projectById[e.projectId]:void 0}function YT(e){let t,n,r;return i=>{let a=e(i);if(!a)return;let o=pn(i,a.environmentId);return r&&t===o&&n===a.threadId?r:(t=o,n=a.threadId,r=Pn(o,a.threadId),r)}}function XT(e){return YT(()=>e)}function ZT(e){return t=>{if(e)return pn(t,e.environmentId).threadSubscriptionErrorById[e.threadId]}}function QT(e){let t,n,r,i;return a=>{if(!e){i=void 0,t=void 0,n=void 0,r=void 0;return}let o=pn(a,e.environmentId).threadShellById,s=o[e.threadId];if(!s){i=void 0,t=void 0,n=void 0,r=void 0;return}let c=s.kind===`master`?s.id:s.parentThreadId,l=c==null?void 0:o[c];if(i&&t===o&&n===s&&r===l)return i;let u=[];if(c!=null){for(let e of Object.values(o))e.kind===`worker`&&e.parentThreadId===c&&u.push(e);u.sort((e,t)=>e.createdAt.localeCompare(t.createdAt))}return t=o,n=s,r=l,i={you:s,master:l,workers:u},i}}function $T(e,t){let n=new Set(e.filter(e=>e.bootstrapped).map(e=>String(e.ref.environmentId))),r=e.filter(e=>{let r=t?.(e.ref.environmentId)??null;return r===null||!n.has(r)}),i=r.filter(e=>e.bootstrapped);return(i.find(e=>e.active)??i.at(-1)??r.find(e=>e.active)??r[0])?.ref}function eE(e,t){return YT(n=>{if(e)return $T(Object.entries(n.environmentStateById).filter(([,t])=>t.threadShellById[e]).map(([t,r])=>({ref:{environmentId:t,threadId:e},active:n.activeEnvironmentId===t,bootstrapped:r.bootstrapComplete})),t)})}var tE,nE=[];function rE(e){return tE===e.environmentStateById&&nE!==void 0?nE:(tE=e.environmentStateById,nE=Object.values(e.environmentStateById).flatMap(e=>Object.values(e.sidebarThreadSummaryById)),nE)}function iE(e){let t=e.payload&&typeof e.payload==`object`?e.payload:null,n=t?.plan;if(!Array.isArray(n))return null;let r=[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=e;if(typeof t.step!=`string`)continue;let n=t.status===`completed`||t.status===`inProgress`?t.status:`pending`;r.push({step:t.step,status:n})}return r.length===0?null:{createdAt:e.createdAt,turnId:e.turnId,...t&&`explanation`in t?{explanation:t.explanation}:{},steps:r}}function aE(e){let t=new Map;return e.map(e=>{let n=t.get(e.step)??0;return t.set(e.step,n+1),{key:`${e.step}:${n}`,step:e}})}function oE(e,t){let n=new Map,r;for(let e of t){let t=iE(e),i=Date.parse(e.createdAt);if(!(!t||Number.isNaN(i))){r??=i;for(let{key:e,step:r}of aE(t.steps)){let t=n.get(e)??{};r.status===`inProgress`&&t.startedAt===void 0&&(t.startedAt=i),r.status===`completed`&&t.completedAt===void 0&&(t.completedAt=i),n.set(e,t)}}}let i=new Map,a=r;for(let[e,t]of[...n.entries()].toSorted((e,t)=>(e[1].completedAt??1/0)-(t[1].completedAt??1/0))){let n=t.completedAt,r=t.startedAt??a;n!==void 0&&(r!==void 0&&n>r&&i.set(e,n-r),a=n)}return{...e,steps:aE(e.steps).map(({key:e,step:t})=>{if(t.status!==`completed`)return t;let n=i.get(e);return n===void 0?t:Object.assign({},t,{durationMs:n})})}}function sE(e){let t=lE(e?.data),n=lE(t?.item),r=lE(n?.result),i=lE(n?.input),a=uE(e?.itemType),o=uE(e?.detail),s=[e?.command,n?.command,i?.command,r?.command,t?.command,a===`command_execution`&&o?cE(o).output:null];for(let e of s){let t=bE(e);if(t)return{command:t,rawCommand:xE(e,t)}}return{command:null,rawCommand:null}}function cE(e){let t=e.trim(),n=/^(?<output>[\s\S]*?)(?:\s*<exited with exit code (?<code>\d+)>)\s*$/i.exec(t);if(!n?.groups)return{output:t.length>0?t:null};let r=Number.parseInt(n.groups.code??``,10),i=n.groups.output?.trim()??``;return{output:i.length>0?i:null,...Number.isInteger(r)?{exitCode:r}:{}}}function lE(e){return e&&typeof e==`object`?e:null}function uE(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function dE(e){let t=e.trim();if(t.startsWith(`'`)&&t.endsWith(`'`)||t.startsWith(`"`)&&t.endsWith(`"`)){let e=t.slice(1,-1).trim();return e.length>0?e:t}return t}function fE(e){let t=dE(e);if(t.length===0)return null;let n=t.replace(/\\/g,`/`).split(`/`).at(-1)?.trim()??``;return n.length>0?n.toLowerCase():null}function pE(e){let t=e.trim();if(t.length===0)return null;if(t.startsWith(`"`)||t.startsWith(`'`)){let e=t.charAt(0),n=t.indexOf(e,1);return n<=0?null:{executable:t.slice(0,n+1),rest:t.slice(n+1).trim()}}let n=t.search(/\s/);return n<0?{executable:t,rest:``}:{executable:t.slice(0,n),rest:t.slice(n).trim()}}var mE=[{executables:[`pwsh`,`pwsh.exe`,`powershell`,`powershell.exe`],wrapperFlagPattern:/(?:^|\s)-command\s+/i},{executables:[`cmd`,`cmd.exe`],wrapperFlagPattern:/(?:^|\s)\/c\s+/i},{executables:[`bash`,`sh`,`zsh`],wrapperFlagPattern:/(?:^|\s)-(?:l)?c\s+/i}];function hE(e){return mE.find(t=>t.executables.includes(e))}function gE(e,t){let n=t.exec(e);if(!n)return null;let r=e.slice(n.index+n[0].length).trim();if(r.length===0)return null;let i=r[0];if((i===`'`||i===`"`)&&!r.endsWith(i))return null;let a=dE(r);return a.length>0?a:null}function _E(e){let t=pE(e);if(!t||t.rest.length===0)return e;let n=fE(t.executable);if(!n)return e;let r=hE(n);return r?gE(t.rest,r.wrapperFlagPattern)??e:e}function vE(e){return/[\s"'`]/.test(e)?`"${e.replace(/"/g,`\\"`)}"`:e}function yE(e){let t=uE(e);if(t)return t;if(!Array.isArray(e))return null;let n=[];for(let t of e){let e=uE(t);e!==null&&n.push(e)}return n.length===0?null:n.map(e=>vE(e)).join(` `)}function bE(e){let t=yE(e);return t?_E(t):null}function xE(e,t){let n=yE(e);return!n||t===null||n===t?null:n}function SE(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function CE(e){return typeof e==`string`&&e.trim().length>0?e:null}function wE(e){let t=CE(e);if(t)return t;let n=Array.isArray(e)?e:null,r=SE(e)?.content,i=CE(r);if(i)return i;let a=n??(Array.isArray(r)?r:null);if(!a)return null;let o=a.flatMap(e=>{let t=CE(e)??CE(SE(e)?.text);return t?[t]:[]});return o.length>0?o.join(`
|
|
16
|
+
`);return{...e,prompt:Wm(o,a.contexts.length),images:r.images,files:i,persistedAttachments:r.attachments,terminalContexts:a.contexts,stashTerminalContexts:[...e.stashTerminalContexts??[],...a.restoredSnapshots]}}function V_(e,t){let n=new Set(e.map(e=>e.id));return[...e,...t.filter(e=>!n.has(e.id))]}function H_(e,t){let n=new Map(t.attachments.map(e=>[e.id,e])),r=[...e.images],i=e.persistedAttachments.filter(t=>e.images.some(e=>e.id===t.id)),a=new Set(r.map(e=>e.id)),o=new Set(r.map(I_));for(let e of t.images){let t=n.get(e.id);if(!t)return null;let s=I_(e);a.has(e.id)||o.has(s)||(r.push(e),i.push(t),a.add(e.id),o.add(s))}return r.length>8?null:{images:r,attachments:i}}function U_(e,t,n){let r=[...e.terminalContexts],i=new Set(r.map(e=>e.id)),a=new Set(r.map(L_)),o=[];for(let e of t.terminalContexts){let t=R_(n,e);!t||i.has(t.id)||a.has(L_(t))||(r.push(t),o.push(t),i.add(t.id),a.add(L_(t)))}return{contexts:r,restoredSnapshots:o}}function W_(e,t){return e.prompt===t.prompt&&JSON.stringify(e.attachments)===JSON.stringify(t.persistedAttachments)&&JSON.stringify(e.files??[])===JSON.stringify((t.files??[]).map(({file:e,type:t,...n})=>n))&&JSON.stringify(e.terminalContexts??[])===JSON.stringify(t.terminalContexts.map(({text:e,...t})=>t))&&JSON.stringify(e.stashTerminalContexts??[])===JSON.stringify(t.stashTerminalContexts??[])}function G_(e){typeof URL<`u`&&e.startsWith(`blob:`)&&URL.revokeObjectURL(e)}function K_(e){if(!e||typeof e!=`object`)return null;let{id:t,name:n,mimeType:r,sizeBytes:i,dataUrl:a}=e;return typeof t!=`string`||typeof n!=`string`||typeof r!=`string`||typeof i!=`number`||!Number.isFinite(i)||typeof a!=`string`||t.length===0||a.length===0?null:{id:t,name:n,mimeType:r,sizeBytes:i,dataUrl:a}}function q_(e){if(!e||typeof e!=`object`)return null;let{id:t,name:n,mimeType:r,sizeBytes:i}=e;return typeof t!=`string`||t.length===0||typeof n!=`string`||typeof r!=`string`||typeof i!=`number`||!Number.isSafeInteger(i)||i<0?null:{id:t,name:n,mimeType:r,sizeBytes:i}}async function J_(e,t){let n=await Promise.all(e.map(async e=>{let n=await t.read(e);return{...e,type:`file`,file:n}}));return n.length===e.length?n:null}function Y_(e){let t=X_(e.dataUrl,e.mimeType);return t?new File([t.content],e.name,{type:t.mimeType}):null}function X_(e,t){let n=e.indexOf(`,`),r=n===-1?e:e.slice(0,n),i=n===-1?``:e.slice(n+1);if(i.length===0)return null;try{return r.includes(`;base64`)?{content:$_(i),mimeType:t}:{content:Q_(i),mimeType:Z_(r,t)}}catch{return null}}function Z_(e,t){return!e.startsWith(`data:`)||!e.includes(`;`)?t:e.slice(5,e.indexOf(`;`))||t}function Q_(e){return decodeURIComponent(e)}function $_(e){let t=atob(e),n=new Uint8Array(new ArrayBuffer(t.length));for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}function ev(e){return e.flatMap(e=>{let t=Y_(e);return t?[{type:`image`,id:e.id,name:e.name,mimeType:e.mimeType,sizeBytes:e.sizeBytes,previewUrl:e.dataUrl,file:t}]:[]})}function tv(e){return{prompt:e.prompt,images:[...e.images],files:[...e.files??[]],persistedAttachments:[...e.persistedAttachments],terminalContexts:[...e.terminalContexts]}}function nv({file:e,previewUrl:t,...n}){return n}function rv(e,t){return e.prompt===t.prompt&&JSON.stringify(e.images.map(nv))===JSON.stringify(t.images.map(nv))&&JSON.stringify((e.files??[]).map(({file:e,...t})=>t))===JSON.stringify(t.files.map(({file:e,...t})=>t))&&JSON.stringify(e.persistedAttachments)===JSON.stringify(t.persistedAttachments)&&JSON.stringify(e.terminalContexts)===JSON.stringify(t.terminalContexts)}function iv(e){let{lastGeneratedPullRequestPrompt:t,...n}=e;return{...n,prompt:``,images:[],files:[],nonPersistedImageIds:[],persistedAttachments:[],terminalContexts:[],stashTerminalContexts:[]}}function N(e){return e.prompt.length===0&&e.lastGeneratedPullRequestPrompt===void 0&&e.images.length===0&&(e.files?.length??0)===0&&e.persistedAttachments.length===0&&e.terminalContexts.length===0&&Object.keys(e.modelSelectionByProvider).length===0&&e.activeProvider===null&&e.runtimeMode===null&&e.interactionMode===null&&e.stagedSubmission==null}function av(e){switch(e){case`codex`:case`claudeAgent`:case`ollama`:case`cmmd`:case`apex`:case`cursor`:case`opencode`:return e;default:return null}}function ov(e){return _i.some(t=>t===e)}function sv(e){return wi.some(t=>t===e)}function cv(e,t,n){let r=e&&typeof e==`object`?e:null,i=r?.codex&&typeof r.codex==`object`?r.codex:null,a=r?.claudeAgent&&typeof r.claudeAgent==`object`?r.claudeAgent:null,o=ov(i?.reasoningEffort)?i.reasoningEffort:t===`codex`&&ov(n?.effort)?n.effort:void 0,s=i?.fastMode===!0?!0:i?.fastMode===!1?!1:t===`codex`&&n?.codexFastMode===!0||typeof n?.serviceTier==`string`&&n.serviceTier===`fast`||void 0,c=o!==void 0||s!==void 0?{...o===void 0?{}:{reasoningEffort:o},...s===void 0?{}:{fastMode:s}}:void 0,l=a?.thinking===!0||a?.thinking!==!1&&void 0,u=sv(a?.effort)?a.effort:void 0,d=a?.fastMode===!0||a?.fastMode!==!1&&void 0,f=typeof a?.contextWindow==`string`&&a.contextWindow.length>0?a.contextWindow:void 0,p=l!==void 0||u!==void 0||d!==void 0||f!==void 0?{...l===void 0?{}:{thinking:l},...u===void 0?{}:{effort:u},...d===void 0?{}:{fastMode:d},...f===void 0?{}:{contextWindow:f}}:void 0;return!c&&!p?null:{...c?{codex:c}:{},...p?{claudeAgent:p}:{}}}function lv(e,t){let n=e&&typeof e==`object`?e:null,r=av(n?.provider??t?.provider);if(r===null)return null;let i=n?.model??t?.model;if(typeof i!=`string`)return null;let a=Dn(i,r);if(!a)return null;let o=cv(n?.options?{[r]:n.options}:t?.modelOptions,r,r===`codex`?t?.legacyCodex:void 0),s=r===`codex`?o?.codex:o?.claudeAgent,c=n?.providerAccountId,l=typeof c==`string`&&c.trim().length>0?c.trim():void 0;return{provider:r,model:a,...l?{providerAccountId:l}:{},...s?{options:s}:{}}}function uv(e,t){if(e===null)return null;let n=t?.[e.provider];return{provider:e.provider,model:e.model,...`providerAccountId`in e&&e.providerAccountId?{providerAccountId:e.providerAccountId}:{},...n?{options:n}:{}}}function dv(e,t){return e?.options===void 0?cv(t):fv(cv(t),e.provider,e.options)}function fv(e,t,n){let{[t]:r,...i}=e??{},a=cv({[t]:n},t);return cv({...i,...a||{}})}function pv(e,t){let n={};if(t)for(let r of[`codex`,`claudeAgent`]){let i=t[r];i&&Object.keys(i).length>0&&(n[r]={provider:r,model:e?.provider===r?e.model:Fi[r],options:i})}return e&&(n[e.provider]=e),n}var mv=`forge:composer-drafts:v1`,hv=5,gv=Oi([`local`,`worktree`]),_v=Br(hi),vv=300,yv=fh({storage:typeof localStorage<`u`?localStorage:gr(),version:hv,canMigrate:Ev}),bv=gn(yv,vv);typeof window<`u`&&typeof window.addEventListener==`function`&&window.addEventListener(`beforeunload`,()=>{bv.flush()});var xv=zi({prompt:E,lastGeneratedPullRequestPrompt:w(E),attachments:ji(S_),files:w(ji(C_)),terminalContexts:w(ji(w_)),stashTerminalContexts:w(ji(zi({...w_.fields,text:E}))),modelSelectionByProvider:w(oi(fi,w(Ei))),activeProvider:w(vi(fi)),runtimeMode:w(hi),interactionMode:w(Pi),stagedSubmission:w(T_)});zi({effort:w(Oi(_i)),codexFastMode:w(di),serviceTier:w(E)}),zi({provider:w(fi),model:w(E),modelOptions:w(vi(Er))}),zi({stickyProvider:w(fi),stickyModel:w(E),stickyModelOptions:w(vi(Er))});var Sv=zi({threadId:zr,environmentId:E,projectId:xi,logicalProjectKey:w(E),createdAt:E,runtimeMode:hi,interactionMode:Pi,branch:vi(E),worktreePath:vi(E),envMode:gv,promotedTo:w(vi(zi({environmentId:E,threadId:E}))),anchorKind:w(Ur),anchorCmmdId:w(vi(E)),linkedPullRequest:w(vi(Ni))}),Cv=zi({draftsByThreadKey:oi(E,xv),draftThreadsByThreadKey:oi(E,Sv),logicalProjectDraftThreadKeyByLogicalProjectKey:oi(E,E),stickyModelSelectionByProvider:w(oi(fi,w(Ei))),stickyActiveProvider:w(vi(fi))}),wv=zi({version:gi,state:Cv}),Tv=Si(wv);function Ev(e,t){if(e===null)return!0;try{let n=JSON.parse(e);if(!n||typeof n!=`object`)return!1;let r=n;return r.version===t?(Tv(n),!0):typeof r.version==`number`&&Number.isInteger(r.version)&&r.version>=1&&r.version<t&&r.state!==null&&typeof r.state==`object`}catch{return!1}}function Dv(e){if(e===null)return new Set;try{let t=Tv(JSON.parse(e));if(t.version!==hv)return null;let n=new Set;for(let e of Object.values(t.state.draftsByThreadKey)){for(let t of e.files??[])n.add(t.id);for(let t of e.stagedSubmission?.files??[])n.add(t.id)}return n}catch{return null}}function Ov(){bv.flush()}var kv=Object.freeze({draftsByThreadKey:{},draftThreadsByThreadKey:{},logicalProjectDraftThreadKeyByLogicalProjectKey:{},stickyModelSelectionByProvider:{},stickyActiveProvider:null}),Av=[],jv=[],Mv=[],Nv=[],Pv=[];Object.freeze(Av),Object.freeze(Mv),Object.freeze(Nv);var Fv=Object.freeze({}),Iv=Object.freeze({activeProvider:null,modelSelectionByProvider:Fv}),Lv=Object.freeze({prompt:``,images:Av,files:jv,nonPersistedImageIds:Mv,persistedAttachments:Nv,terminalContexts:Pv,modelSelectionByProvider:Fv,activeProvider:null,runtimeMode:null,interactionMode:null,stagedSubmission:null});function Rv(){return{prompt:``,images:[],files:[],nonPersistedImageIds:[],persistedAttachments:[],terminalContexts:[],modelSelectionByProvider:{},activeProvider:null,runtimeMode:null,interactionMode:null,stagedSubmission:null}}function zv(e){if(!e||typeof e!=`object`)return null;let t=e,n=t.id,r=t.threadId,i=t.createdAt,a=t.lineStart,o=t.lineEnd;if(typeof n!=`string`||n.length===0||typeof r!=`string`||r.length===0||typeof i!=`string`||i.length===0||typeof a!=`number`||!Number.isFinite(a)||typeof o!=`number`||!Number.isFinite(o))return null;let s=typeof t.terminalId==`string`?t.terminalId.trim():``,c=typeof t.terminalLabel==`string`?t.terminalLabel.trim():``;if(s.length===0||c.length===0)return null;let l=Math.max(1,Math.floor(a));return{id:n,threadId:r,createdAt:i,terminalId:s,terminalLabel:c,lineStart:l,lineEnd:Math.max(l,Math.floor(o))}}function Bv(e,t){return e===`local`||e===`worktree`?e:t?`worktree`:`local`}function Vv(e){return Fn(e)}function Hv(e){return e.trim()}function Uv(e){return typeof e==`string`?e.trim():Ln(e)}function Wv(e,t){let n=hn(e);return n?Uv(n):t?.environmentId?Uv(C(t.environmentId,e)):e}function Gv(e){return hn(e)}function Kv(e,t){if(typeof t==`string`){let e=t.trim();return e.length>0?ba.make(e):null}return t}function P(e,t){let n=Kv(e,t);if(!n)return null;if(typeof n!=`string`){let t=Uv(n);if(e.draftsByThreadKey[t])return t;for(let[t,r]of Object.entries(e.draftThreadsByThreadKey))if(r.environmentId===n.environmentId&&r.threadId===n.threadId)return t;return t}let r=Uv(n);return r.length>0?r:null}function qv(e,t){let n=Kv(e,t);return n?typeof n==`string`?e.draftThreadsByThreadKey[n]?.threadId??zr.make(n):n.threadId:null}function Jv(e,t){let n=P(e,t);return n?e.draftsByThreadKey[n]??null:null}function Yv(e,t){return Object.values(e).includes(t)}function Xv(e,t){return{draftId:e,...t}}function Zv(e,t,n,r,i){let a=r!==void 0&&(r.environmentId!==e.environmentId||r.projectId!==e.projectId),o=i?.worktreePath===void 0?a?null:r?.worktreePath??null:i.worktreePath??null,s=i?.branch===void 0?a?null:r?.branch??null:i.branch??null,c=i?.anchorKind===void 0?r?.anchorKind:i.anchorKind??void 0;return{threadId:t,environmentId:e.environmentId,projectId:e.projectId,logicalProjectKey:n,createdAt:i?.createdAt??r?.createdAt??new Date().toISOString(),runtimeMode:i?.runtimeMode??r?.runtimeMode??`full-access`,interactionMode:i?.interactionMode??r?.interactionMode??`default`,branch:s,worktreePath:o,envMode:i?.envMode??(o?`worktree`:a?`local`:r?.envMode??`local`),promotedTo:null,cmmdTaskId:i?.cmmdTaskId===void 0?r?.cmmdTaskId??null:i.cmmdTaskId,anchorCmmdId:i?.anchorCmmdId===void 0?r?.anchorCmmdId??null:i.anchorCmmdId,linkedPullRequest:i?.linkedPullRequest===void 0?r?.linkedPullRequest??null:i.linkedPullRequest,...c===void 0?{}:{anchorKind:c}}}function Qv(e,t){return!e||!t?e===t:e.environmentId===t.environmentId&&e.threadId===t.threadId}function $v(e){return e?.promotedTo!==null&&e?.promotedTo!==void 0}function ey(e,t){return!!e&&e.threadId===t.threadId&&e.environmentId===t.environmentId&&e.projectId===t.projectId&&e.logicalProjectKey===t.logicalProjectKey&&e.createdAt===t.createdAt&&e.runtimeMode===t.runtimeMode&&e.interactionMode===t.interactionMode&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.envMode===t.envMode&&(e.anchorKind??void 0)===(t.anchorKind??void 0)&&(e.anchorCmmdId??null)===(t.anchorCmmdId??null)&&ty(e.linkedPullRequest,t.linkedPullRequest)&&Qv(e.promotedTo,t.promotedTo)}function ty(e,t){return(e?.projectId??null)===(t?.projectId??null)&&(e?.projectRepositoryId??null)===(t?.projectRepositoryId??null)&&(e?.provider??null)===(t?.provider??null)&&(e?.host??null)===(t?.host??null)&&(e?.repository??null)===(t?.repository??null)&&(e?.number??null)===(t?.number??null)&&(e?.url??null)===(t?.url??null)}function ny(e,t){let n=Object.fromEntries(Object.entries(e.logicalProjectDraftThreadKeyByLogicalProjectKey).filter(([,e])=>e!==t)),{[t]:r,...i}=e.draftThreadsByThreadKey,{[t]:a,...o}=e.draftsByThreadKey;return{draftsByThreadKey:o,draftThreadsByThreadKey:i,logicalProjectDraftThreadKeyByLogicalProjectKey:n}}function ry(e,t){let n={},r=new Map;if(t&&typeof t==`object`)for(let[e,n]of Object.entries(t)){if(typeof n!=`string`||n.length===0)continue;let t=br(e);if(!t)continue;let i=hn(n);if(i){r.set(i.threadId,i.environmentId);continue}r.set(n,t.environmentId)}if(e&&typeof e==`object`)for(let[t,i]of Object.entries(e)){if(typeof t!=`string`||t.length===0||!i||typeof i!=`object`)continue;let e=i,a=hn(t),o=Wv(t),s=a?.threadId??(typeof e.threadId==`string`&&e.threadId.length>0?e.threadId:t),c=a?.environmentId??(typeof e.environmentId==`string`&&e.environmentId.length>0?e.environmentId:r.get(t)),l=e.projectId,u=e.createdAt,d=e.branch,f=e.worktreePath,p=typeof f==`string`?f:null,m=e.promotedTo,h=m&&typeof m==`object`?m:null,g=h&&typeof h.environmentId==`string`&&h.environmentId.length>0&&typeof h.threadId==`string`&&h.threadId.length>0?C(h.environmentId,h.threadId):null;if(typeof l!=`string`||l.length===0||c===void 0)continue;let _=c;n[o]={threadId:s,environmentId:_,projectId:l,logicalProjectKey:typeof e.logicalProjectKey==`string`&&e.logicalProjectKey.length>0?e.logicalProjectKey:a?Vv(In(_,l)):t,createdAt:typeof u==`string`&&u.length>0?u:new Date().toISOString(),runtimeMode:_v(e.runtimeMode)?e.runtimeMode:op,interactionMode:e.interactionMode===`plan`||e.interactionMode==="default"?e.interactionMode:sp,branch:typeof d==`string`?d:null,worktreePath:p,envMode:Bv(e.envMode,p),promotedTo:g}}let i={};if(t&&typeof t==`object`)for(let[e,a]of Object.entries(t)){if(typeof a!=`string`||a.length===0)continue;let t=br(e),o=hn(a),s=Wv(a);if(i[e]=s,o&&r.set(o.threadId,o.environmentId),!t){let t=n[s];t&&!t.logicalProjectKey&&(n[s]={...t,logicalProjectKey:e});continue}n[s]?(n[s]?.projectId!==t.projectId||n[s]?.environmentId!==t.environmentId)&&(n[s]={...n[s],threadId:n[s].threadId,environmentId:t.environmentId,projectId:t.projectId,logicalProjectKey:e}):n[s]={threadId:o?.threadId??s,environmentId:t.environmentId,projectId:t.projectId,logicalProjectKey:e,createdAt:new Date().toISOString(),runtimeMode:op,interactionMode:sp,branch:null,worktreePath:null,envMode:`local`,promotedTo:null}}return{draftThreadsByThreadKey:n,logicalProjectDraftThreadKeyByLogicalProjectKey:i}}function iy(e,t){if(!e||typeof e!=`object`)return{};let n=new Map;for(let[e,r]of Object.entries(t)){let t=Gv(e);t&&n.set(t.threadId,r.environmentId)}let r={};for(let[i,a]of Object.entries(e)){if(typeof i!=`string`||i.length===0||!a||typeof a!=`object`)continue;let e=a,o=typeof e.prompt==`string`?e.prompt:``,s=typeof e.lastGeneratedPullRequestPrompt==`string`?e.lastGeneratedPullRequestPrompt:void 0,c=Array.isArray(e.attachments)?e.attachments.flatMap(e=>{let t=K_(e);return t?[t]:[]}):[],l=Array.isArray(e.files)?e.files.flatMap(e=>{let t=q_(e);return t?[t]:[]}):[],u=Array.isArray(e.terminalContexts)?e.terminalContexts.flatMap(e=>{let t=zv(e);return t?[t]:[]}):[],d=Array.isArray(e.stashTerminalContexts)?e.stashTerminalContexts.flatMap(e=>{let t=zv(e),n=typeof e.text==`string`?e.text:``;return t&&n.length>0?[{...t,text:n}]:[]}):[],f=_v(e.runtimeMode)?e.runtimeMode:null,p=e.interactionMode===`plan`||e.interactionMode==="default"?e.interactionMode:null,m=A_(e.stagedSubmission,{attachment:K_,file:q_,terminalContext:zv,modelSelection:e=>lv(e)??null,runtimeMode:_v}),h=Wm(o,u.length),g=a,_={},v=null;if(e.modelSelectionByProvider&&typeof e.modelSelectionByProvider==`object`)_=e.modelSelectionByProvider,v=av(e.activeProvider);else{let e=cv(g.modelOptions,void 0,g)??null,t=lv(g.modelSelection,{provider:g.provider,model:g.model,modelOptions:e??g.modelOptions,legacyCodex:g}),n=dv(t,e),r=uv(t,n);_=pv(r,n),v=r?.provider??null}let y=Object.keys(_).length>0||v!==null;if(o.length===0&&c.length===0&&l.length===0&&u.length===0&&d.length===0&&!y&&!f&&!p&&!m)continue;let b=hn(i)===null?t[i]===void 0?(()=>{let e=n.get(i);return e?Wv(i,{environmentId:e}):i})():i:Wv(i);r[b]={prompt:h,...s===void 0?{}:{lastGeneratedPullRequestPrompt:s},attachments:c,...l.length>0?{files:l}:{},...u.length>0?{terminalContexts:u}:{},...d.length>0?{stashTerminalContexts:d}:{},...y?{modelSelectionByProvider:_,activeProvider:v}:{},...f?{runtimeMode:f}:{},...p?{interactionMode:p}:{},...m?{stagedSubmission:m}:{}}}return r}function ay(e){if(!e||typeof e!=`object`)return kv;let t=e,n=t.draftsByThreadKey??t.draftsByThreadId,r=t.draftThreadsByThreadKey??t.draftThreadsByThreadId,i=t.logicalProjectDraftThreadKeyByLogicalProjectKey??t.projectDraftThreadKeyByProjectKey??t.projectDraftThreadIdByProjectKey??t.projectDraftThreadIdByProjectId,a=cv(t.stickyModelOptions)??{},o=lv(t.stickyModelSelection,{provider:t.stickyProvider??`codex`,model:t.stickyModel,modelOptions:a}),s=dv(o,a),c=pv(uv(o,s),s),l=av(t.stickyProvider)??null,{draftThreadsByThreadKey:u,logicalProjectDraftThreadKeyByLogicalProjectKey:d}=ry(r,i);return{draftsByThreadKey:iy(n,u),draftThreadsByThreadKey:u,logicalProjectDraftThreadKeyByLogicalProjectKey:d,stickyModelSelectionByProvider:c,stickyActiveProvider:l}}function oy(e){let t={};for(let[n,r]of Object.entries(e.draftsByThreadKey)){if(typeof n!=`string`||n.length===0)continue;let e=Object.keys(r.modelSelectionByProvider).length>0||r.activeProvider!==null;r.prompt.length===0&&r.lastGeneratedPullRequestPrompt===void 0&&r.persistedAttachments.length===0&&(r.files?.length??0)===0&&r.terminalContexts.length===0&&!e&&r.runtimeMode===null&&r.interactionMode===null&&r.stagedSubmission==null||(t[n]={prompt:r.prompt,...r.lastGeneratedPullRequestPrompt===void 0?{}:{lastGeneratedPullRequestPrompt:r.lastGeneratedPullRequestPrompt},attachments:r.persistedAttachments,...(r.files?.length??0)>0?{files:r.files.map(({file:e,type:t,...n})=>n)}:{},...r.terminalContexts.length>0?{terminalContexts:r.terminalContexts.map(e=>({id:e.id,threadId:e.threadId,createdAt:e.createdAt,terminalId:e.terminalId,terminalLabel:e.terminalLabel,lineStart:e.lineStart,lineEnd:e.lineEnd}))}:{},...r.stashTerminalContexts&&r.stashTerminalContexts.length>0?{stashTerminalContexts:r.stashTerminalContexts.map(e=>({id:e.id,threadId:e.threadId,createdAt:e.createdAt,terminalId:e.terminalId,terminalLabel:e.terminalLabel,lineStart:e.lineStart,lineEnd:e.lineEnd,text:e.text}))}:{},...e?{modelSelectionByProvider:r.modelSelectionByProvider,activeProvider:r.activeProvider}:{},...r.runtimeMode?{runtimeMode:r.runtimeMode}:{},...r.interactionMode?{interactionMode:r.interactionMode}:{},...r.stagedSubmission?{stagedSubmission:M_(r.stagedSubmission)}:{}})}return{draftsByThreadKey:t,draftThreadsByThreadKey:e.draftThreadsByThreadKey,logicalProjectDraftThreadKeyByLogicalProjectKey:e.logicalProjectDraftThreadKeyByLogicalProjectKey,stickyModelSelectionByProvider:e.stickyModelSelectionByProvider,stickyActiveProvider:e.stickyActiveProvider}}function sy(e){if(!e||typeof e!=`object`)return kv;let t=e,{draftThreadsByThreadKey:n,logicalProjectDraftThreadKeyByLogicalProjectKey:r}=ry(t.draftThreadsByThreadKey??t.draftThreadsByThreadId,t.logicalProjectDraftThreadKeyByLogicalProjectKey??t.projectDraftThreadKeyByProjectKey??t.projectDraftThreadIdByProjectKey??t.projectDraftThreadIdByProjectId),i={},a=null;if(t.stickyModelSelectionByProvider&&typeof t.stickyModelSelectionByProvider==`object`)i=t.stickyModelSelectionByProvider,a=av(t.stickyActiveProvider);else{let e=cv(t.stickyModelOptions)??{},n=lv(t.stickyModelSelection,{provider:t.stickyProvider,model:t.stickyModel,modelOptions:e}),r=dv(n,e);i=pv(uv(n,r),r),a=av(t.stickyProvider)}return{draftsByThreadKey:iy(t.draftsByThreadKey??t.draftsByThreadId,n),draftThreadsByThreadKey:n,logicalProjectDraftThreadKeyByLogicalProjectKey:r,stickyModelSelectionByProvider:i,stickyActiveProvider:a}}function cy(e){if(e.length===0)return[];try{let t=jn(mv,wv);return!t||t.version!==hv?[]:(t.state.draftsByThreadKey[e]?.attachments??[]).map(e=>e.id)}catch{return[]}}function ly(e){if(e.length===0)return null;try{let t=bv.getItem(mv);if(typeof t!=`string`)return null;let n=Tv(JSON.parse(t));return!n||n.version!==hv?null:n.state.draftsByThreadKey[e]??null}catch{return null}}function uy(e,t,n){let r=new Set;try{bv.flush(),r=new Set(cy(e))}catch{r=new Set}n(n=>{let i=n.draftsByThreadKey[e];if(!i)return n;let a=new Set(i.images.map(e=>e.id)),o=t.filter(e=>a.has(e.id)&&r.has(e.id)),s=i.images.map(e=>e.id).filter(e=>!r.has(e)),c={...i,persistedAttachments:o,nonPersistedImageIds:s},l={...n.draftsByThreadKey};return N(c)?delete l[e]:l[e]=c,{draftsByThreadKey:l}})}function dy(e,t){return e.length>0?e:t?.prompt??``}function fy(e,t){return e?.length?e:t??[]}function py(e){let t=e.stagedSubmission;return{prompt:dy(e.prompt,t),attachments:fy(e.attachments,t?.attachments),files:fy(e.files,t?.files),terminalContexts:fy(e.terminalContexts,t?.terminalContexts)}}function my(e){let t=e.modelSelectionByProvider??{},n=av(e.activeProvider)??null,r=py(e);return{prompt:r.prompt,...e.lastGeneratedPullRequestPrompt===void 0?{}:{lastGeneratedPullRequestPrompt:e.lastGeneratedPullRequestPrompt},images:ev(r.attachments),files:r.files.map(e=>({...e,type:`file`,file:null})),nonPersistedImageIds:[],persistedAttachments:[...r.attachments],terminalContexts:r.terminalContexts.map(t=>{let n=e.stashTerminalContexts?.find(e=>e.id===t.id);return Object.assign({},t,{text:n?.text??``})}),...e.stashTerminalContexts&&e.stashTerminalContexts.length>0?{stashTerminalContexts:e.stashTerminalContexts.map(e=>({...e}))}:{},modelSelectionByProvider:t,activeProvider:n,runtimeMode:e.runtimeMode??null,interactionMode:e.interactionMode??null,stagedSubmission:N_(e.stagedSubmission)}}function hy(e){return{threadId:e.threadId,environmentId:e.environmentId,projectId:e.projectId,logicalProjectKey:e.logicalProjectKey??Vv(In(e.environmentId,e.projectId)),createdAt:e.createdAt,runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,branch:e.branch,worktreePath:e.worktreePath,envMode:e.envMode,promotedTo:e.promotedTo?C(e.promotedTo.environmentId,e.promotedTo.threadId):null,linkedPullRequest:e.linkedPullRequest??null}}var gy=wa()(Wf((e,t)=>{let n=e;return{draftsByThreadKey:{},draftThreadsByThreadKey:{},logicalProjectDraftThreadKeyByLogicalProjectKey:{},stickyModelSelectionByProvider:{},stickyActiveProvider:null,getComposerDraft:e=>Jv(t(),e),getDraftThreadByLogicalProjectKey:e=>t().getDraftSessionByLogicalProjectKey(e),getDraftSessionByLogicalProjectKey:e=>{let n=Hv(e);if(n.length===0)return null;let r=t().logicalProjectDraftThreadKeyByLogicalProjectKey[n];if(!r)return null;let i=t().draftThreadsByThreadKey[r];return!i||$v(i)?null:Xv(ba.make(r),i)},getDraftThreadByProjectRef:e=>t().getDraftSessionByProjectRef(e),getDraftSessionByProjectRef:e=>{for(let[n,r]of Object.entries(t().draftThreadsByThreadKey))if(!$v(r)&&r.projectId===e.projectId&&r.environmentId===e.environmentId)return Xv(ba.make(n),r);return null},getDraftSession:e=>t().draftThreadsByThreadKey[e]??null,getDraftSessionByRef:e=>{for(let n of Object.values(t().draftThreadsByThreadKey))if(n.environmentId===e.environmentId&&n.threadId===e.threadId)return n;return null},getDraftThread:e=>typeof e==`string`?t().getDraftSession(ba.make(e)):t().getDraftSessionByRef(e),getDraftThreadByRef:e=>t().getDraftSessionByRef(e),listDraftThreadKeys:()=>Object.values(t().draftThreadsByThreadKey).map(e=>Ln(C(e.environmentId,e.threadId))),hasDraftThreadsInEnvironment:e=>Object.values(t().draftThreadsByThreadKey).some(t=>t.environmentId===e),setLogicalProjectDraftThreadId:(e,t,r,i)=>{let a=Hv(e);a.length!==0&&r.length!==0&&n(e=>{let n=e.draftThreadsByThreadKey[r],o=e.logicalProjectDraftThreadKeyByLogicalProjectKey[a],s=Zv(t,i?.threadId??n?.threadId??zr.make(r),a,n,i);if(o===r&&ey(n,s))return e;let c={...e.logicalProjectDraftThreadKeyByLogicalProjectKey,[a]:r},l={...e.draftThreadsByThreadKey,[r]:s},u=e.draftsByThreadKey,d=o===void 0?void 0:l[o];return o&&o!==r&&!Yv(c,o)&&!$v(d)&&(delete l[o],e.draftsByThreadKey[o]!==void 0&&(u={...e.draftsByThreadKey},delete u[o])),{draftsByThreadKey:u,draftThreadsByThreadKey:l,logicalProjectDraftThreadKeyByLogicalProjectKey:c}})},setProjectDraftThreadId:(e,n,r)=>{t().setLogicalProjectDraftThreadId(Vv(e),e,n,r)},setDraftThreadContext:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&n(e=>{let t=e.draftThreadsByThreadKey[i];if(!t)return e;let n=r.projectRef??{environmentId:t.environmentId,projectId:t.projectId};if(n.projectId.length===0||n.environmentId.length===0)return e;let a=n.environmentId!==t.environmentId||n.projectId!==t.projectId,o=r.worktreePath===void 0?a?null:t.worktreePath:r.worktreePath??null,s=r.branch===void 0?a?null:t.branch:r.branch??null,c=r.anchorKind===void 0?t.anchorKind:r.anchorKind??void 0,l={threadId:t.threadId,environmentId:n.environmentId,projectId:n.projectId,logicalProjectKey:t.logicalProjectKey,createdAt:r.createdAt===void 0?t.createdAt:r.createdAt||t.createdAt,runtimeMode:r.runtimeMode??t.runtimeMode,interactionMode:r.interactionMode??t.interactionMode,branch:s,worktreePath:o,envMode:r.envMode??(o?`worktree`:a?`local`:t.envMode??`local`),promotedTo:t.promotedTo??null,cmmdTaskId:r.cmmdTaskId===void 0?t.cmmdTaskId??null:r.cmmdTaskId,anchorCmmdId:r.anchorCmmdId===void 0?t.anchorCmmdId??null:r.anchorCmmdId,linkedPullRequest:r.linkedPullRequest===void 0?t.linkedPullRequest??null:r.linkedPullRequest,...c===void 0?{}:{anchorKind:c}};return l.environmentId===t.environmentId&&l.projectId===t.projectId&&l.logicalProjectKey===t.logicalProjectKey&&l.createdAt===t.createdAt&&l.runtimeMode===t.runtimeMode&&l.interactionMode===t.interactionMode&&l.branch===t.branch&&l.worktreePath===t.worktreePath&&l.envMode===t.envMode&&(l.anchorKind??void 0)===(t.anchorKind??void 0)&&(l.anchorCmmdId??null)===(t.anchorCmmdId??null)&&ty(l.linkedPullRequest,t.linkedPullRequest)&&Qv(l.promotedTo,t.promotedTo)?e:{draftThreadsByThreadKey:{...e.draftThreadsByThreadKey,[i]:l}}})},clearProjectDraftThreadId:e=>{n(t=>{let n=Object.entries(t.draftThreadsByThreadKey).find(([,t])=>t.projectId===e.projectId&&t.environmentId===e.environmentId);return n?ny(t,n[0]):t})},clearProjectDraftThreadById:(e,r)=>{let i=P(t(),r)??``;i.length!==0&&n(t=>{let n=t.draftThreadsByThreadKey[i];return!n||n.projectId!==e.projectId||n.environmentId!==e.environmentId?t:ny(t,i)})},markDraftThreadPromoting:(e,r)=>{let i=P(t(),e);i&&n(e=>{let t=e.draftThreadsByThreadKey[i];if(!t)return e;let n=r??C(t.environmentId,t.threadId);return Qv(t.promotedTo,n)?e:{draftThreadsByThreadKey:{...e.draftThreadsByThreadKey,[i]:{...t,promotedTo:n}}}})},finalizePromotedDraftThread:e=>{let r=P(t(),e)??``;r.length!==0&&n(e=>{let t=e.draftThreadsByThreadKey[r];if(!$v(t))return e;let n=Uv(t.promotedTo),i=e.draftsByThreadKey[n],a=e.draftsByThreadKey[r];return ny(a?{...e,draftsByThreadKey:{...e.draftsByThreadKey,[n]:i?{...i,modelSelectionByProvider:{...i.modelSelectionByProvider,...a.modelSelectionByProvider},activeProvider:a.activeProvider,runtimeMode:a.runtimeMode,interactionMode:a.interactionMode}:a}}:e,r)})},clearDraftThread:e=>{let r=P(t(),e)??``;if(r.length===0)return;let i=t().draftsByThreadKey[r];if(i)for(let e of i.images)G_(e.previewUrl);n(e=>{let t=e.draftThreadsByThreadKey[r]!==void 0,n=Object.values(e.logicalProjectDraftThreadKeyByLogicalProjectKey).includes(r),i=e.draftsByThreadKey[r]!==void 0;return!t&&!n&&!i?e:ny(e,r)})},setStickyModelSelection:e=>{let t=lv(e);n(e=>{if(!t)return e;let n={...e.stickyModelSelectionByProvider,[t.provider]:t};return rt(e.stickyModelSelectionByProvider,n)?e.stickyActiveProvider===t.provider?e:{stickyActiveProvider:t.provider}:{stickyModelSelectionByProvider:n,stickyActiveProvider:t.provider}})},applyStickyState:e=>{let r=P(t(),e)??``;r.length!==0&&n(e=>{let t=e.stickyModelSelectionByProvider,n=e.stickyActiveProvider;if(Object.keys(t).length===0&&n===null)return e;let i=e.draftsByThreadKey[r]??Rv(),a={...i.modelSelectionByProvider};for(let[e,n]of Object.entries(t))if(n){let t=a[e];a[e]={...n,model:t?.model??n.model}}if(rt(i.modelSelectionByProvider,a)&&i.activeProvider===n)return e;let o={...i,modelSelectionByProvider:a,activeProvider:n},s={...e.draftsByThreadKey};return N(o)?delete s[r]:s[r]=o,{draftsByThreadKey:s}})},setPrompt:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&n(e=>{let t=e.draftsByThreadKey[i]??Rv();if(t.prompt===r)return e;let n={...t,prompt:r},a={...e.draftsByThreadKey};return N(n)?delete a[i]:a[i]=n,{draftsByThreadKey:a}})},setGeneratedPullRequestPrompt:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&n(e=>{let t=e.draftsByThreadKey[i]??Rv();return{draftsByThreadKey:{...e.draftsByThreadKey,[i]:{...t,lastGeneratedPullRequestPrompt:r}}}})},setPendingAutoSubmit:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&n(e=>{let t=e.draftsByThreadKey[i]??Rv();if((t.pendingAutoSubmit??!1)===r)return e;let n=r?{...t,pendingAutoSubmit:!0}:(()=>{let{pendingAutoSubmit:e,...n}=t;return n})(),a={...e.draftsByThreadKey};return N(n)?delete a[i]:a[i]=n,{draftsByThreadKey:a}})},stageComposerSubmission:(e,r,i,a,o,s,c)=>{let l=P(t(),e)??``;l.length!==0&&(n(e=>{let t=e.draftsByThreadKey[l];if(!t)return e;let n={prompt:t.prompt,attachments:[...c??t.persistedAttachments],files:(t.files??[]).map(({file:e,type:t,...n})=>n),terminalContexts:[...t.terminalContexts],startedAt:r,commandId:i,messageId:a,...o?{executionIntent:o}:{},...s},u={...e.draftsByThreadKey};return u[l]={...t,stagedSubmission:n},{draftsByThreadKey:u}}),bv.flush())},setStagedComposerExecutionIntent:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&(n(e=>{let t=e.draftsByThreadKey[i];return t?.stagedSubmission?{draftsByThreadKey:{...e.draftsByThreadKey,[i]:{...t,stagedSubmission:{...t.stagedSubmission,executionIntent:r}}}}:e}),bv.flush())},clearStagedComposerSubmission:e=>{let r=P(t(),e)??``;r.length!==0&&n(e=>{let t=e.draftsByThreadKey[r];if(!t?.stagedSubmission)return e;let n={...t,stagedSubmission:null},i={...e.draftsByThreadKey};return N(n)?delete i[r]:i[r]=n,{draftsByThreadKey:i}})},setTerminalContexts:(e,r,i)=>{let a=P(t(),e),o=qv(t(),e);if(!a||!o)return;let s=z_(o,r);n(e=>{let t=e.draftsByThreadKey[a]??Rv(),n={...t,prompt:Wm(t.prompt,s.length),terminalContexts:s,...i?.preserveTextForReload?{stashTerminalContexts:s}:{stashTerminalContexts:[]}},r={...e.draftsByThreadKey};return N(n)?delete r[a]:r[a]=n,{draftsByThreadKey:r}})},setModelSelection:(e,r)=>{let i=P(t(),e)??``;if(i.length===0)return;let a=lv(r);n(e=>{let t=e.draftsByThreadKey[i];if(!t&&a===null)return e;let n=t??Rv(),r={...n.modelSelectionByProvider};if(a){let e=r[a.provider];a.options===void 0?r[a.provider]={provider:a.provider,model:a.model,...`providerAccountId`in a&&a.providerAccountId?{providerAccountId:a.providerAccountId}:e&&`providerAccountId`in e&&e.providerAccountId?{providerAccountId:e.providerAccountId}:{},...e?.options?{options:e.options}:{}}:r[a.provider]=a}let o=a?.provider??n.activeProvider;if(rt(n.modelSelectionByProvider,r)&&n.activeProvider===o)return e;let s={...n,modelSelectionByProvider:r,activeProvider:o},c={...e.draftsByThreadKey};return N(s)?delete c[i]:c[i]=s,{draftsByThreadKey:c}})},setModelOptions:(e,r)=>{let i=P(t(),e)??``;if(i.length===0)return;let a=cv(r);n(e=>{let t=e.draftsByThreadKey[i];if(!t&&a===null)return e;let n=t??Rv(),r={...n.modelSelectionByProvider};for(let e of[`codex`,`claudeAgent`]){if(!a||!(e in a))continue;let t=a[e],n=r[e];if(t)r[e]={provider:e,model:n?.model??Fi[e],...n&&`providerAccountId`in n&&n.providerAccountId?{providerAccountId:n.providerAccountId}:{},options:t};else if(n?.options){let{options:t,...i}=n;r[e]=i}}if(rt(n.modelSelectionByProvider,r))return e;let o={...n,modelSelectionByProvider:r},s={...e.draftsByThreadKey};return N(o)?delete s[i]:s[i]=o,{draftsByThreadKey:s}})},setProviderModelOptions:(e,r,i,a)=>{let o=P(t(),e)??``;if(o.length===0)return;let s=av(r);if(s===null)return;let c=cv({[s]:i},s)?.[s];n(e=>{let t=e.draftsByThreadKey[o]??Rv(),n={...t.modelSelectionByProvider},r=n[s];if(c)n[s]={provider:s,model:r?.model??Fi[s],...r&&`providerAccountId`in r&&r.providerAccountId?{providerAccountId:r.providerAccountId}:{},options:c};else if(r?.options){let{options:e,...t}=r;n[s]=t}let i=e.stickyModelSelectionByProvider,l=e.stickyActiveProvider;if(a?.persistSticky===!0){i={...e.stickyModelSelectionByProvider};let n=i[s]??t.modelSelectionByProvider[s]??{provider:s,model:Fi[s]};if(c)i[s]={...n,provider:s,options:c};else if(n.options){let{options:e,...t}=n;i[s]=t}l=t.activeProvider??s}if(rt(t.modelSelectionByProvider,n)&&rt(e.stickyModelSelectionByProvider,i)&&e.stickyActiveProvider===l)return e;let u={...t,modelSelectionByProvider:n},d={...e.draftsByThreadKey};return N(u)?delete d[o]:d[o]=u,{draftsByThreadKey:d,...a?.persistSticky===!0?{stickyModelSelectionByProvider:i,stickyActiveProvider:l}:{}}})},setRuntimeMode:(e,r)=>{let i=P(t(),e)??``;if(i.length===0)return;let a=_v(r)?r:null;n(e=>{let t=e.draftsByThreadKey[i];if(!t&&a===null)return e;let n=t??Rv();if(n.runtimeMode===a)return e;let r={...n,runtimeMode:a},o={...e.draftsByThreadKey};return N(r)?delete o[i]:o[i]=r,{draftsByThreadKey:o}})},setInteractionMode:(e,r)=>{let i=P(t(),e)??``;if(i.length===0)return;let a=r===`plan`||r==="default"?r:null;n(e=>{let t=e.draftsByThreadKey[i];if(!t&&a===null)return e;let n=t??Rv();if(n.interactionMode===a)return e;let r={...n,interactionMode:a},o={...e.draftsByThreadKey};return N(r)?delete o[i]:o[i]=r,{draftsByThreadKey:o}})},addImage:(e,n)=>{let r=P(t(),e),i=qv(t(),e);!r||!i||t().addImages(typeof e==`string`?ba.make(r):e,[n])},addImages:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&r.length!==0&&n(e=>{let t=e.draftsByThreadKey[i]??Rv(),n=new Set(t.images.map(e=>e.id)),a=new Set(t.images.map(e=>I_(e))),o=new Set(t.images.map(e=>e.previewUrl)),s=[];for(let e of r){let t=I_(e);if(n.has(e.id)||a.has(t)){o.has(e.previewUrl)||G_(e.previewUrl);continue}s.push(e),n.add(e.id),a.add(t),o.add(e.previewUrl)}return s.length===0?e:{draftsByThreadKey:{...e.draftsByThreadKey,[i]:{...t,images:[...t.images,...s]}}}})},addFiles:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&r.length!==0&&n(e=>{let t=e.draftsByThreadKey[i]??Rv(),n=new Set((t.files??[]).map(e=>e.id)),a=Math.max(0,8-t.images.length-(t.files?.length??0)),o=r.filter(e=>!n.has(e.id)).slice(0,a);return o.length===0?e:{draftsByThreadKey:{...e.draftsByThreadKey,[i]:{...t,files:[...t.files??[],...o]}}}})},setFiles:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&n(e=>{let t=e.draftsByThreadKey[i]??Rv();return{draftsByThreadKey:{...e.draftsByThreadKey,[i]:{...t,files:[...r]}}}})},removeImage:(e,r)=>{let i=P(t(),e)??``;if(i.length===0)return;let a=t().draftsByThreadKey[i];if(!a)return;let o=a.images.find(e=>e.id===r);o&&G_(o.previewUrl),n(e=>{let t=e.draftsByThreadKey[i];if(!t)return e;let n={...t,images:t.images.filter(e=>e.id!==r),nonPersistedImageIds:t.nonPersistedImageIds.filter(e=>e!==r),persistedAttachments:t.persistedAttachments.filter(e=>e.id!==r)},a={...e.draftsByThreadKey};return N(n)?delete a[i]:a[i]=n,{draftsByThreadKey:a}})},insertTerminalContext:(e,r,i,a)=>{let o=P(t(),e),s=qv(t(),e);if(!o||!s)return!1;let c=!1;return n(e=>{let t=e.draftsByThreadKey[o]??Rv(),n=R_(s,i);if(!n)return e;let l=L_(n);if(t.terminalContexts.some(e=>e.id===n.id)||t.terminalContexts.some(e=>L_(e)===l))return e;c=!0;let u=Math.max(0,Math.min(t.terminalContexts.length,a)),d={...t,prompt:r,terminalContexts:[...t.terminalContexts.slice(0,u),n,...t.terminalContexts.slice(u)]};return{draftsByThreadKey:{...e.draftsByThreadKey,[o]:d}}}),c},addTerminalContext:(e,n)=>{let r=P(t(),e),i=qv(t(),e);!r||!i||t().addTerminalContexts(typeof e==`string`?ba.make(r):e,[n])},addTerminalContexts:(e,r)=>{let i=P(t(),e),a=qv(t(),e);!i||!a||r.length===0||n(e=>{let t=e.draftsByThreadKey[i]??Rv(),n=z_(a,[...t.terminalContexts,...r]).slice(t.terminalContexts.length);return n.length===0?e:{draftsByThreadKey:{...e.draftsByThreadKey,[i]:{...t,prompt:Wm(t.prompt,t.terminalContexts.length+n.length),terminalContexts:[...t.terminalContexts,...n]}}}})},removeTerminalContext:(e,r)=>{let i=P(t(),e)??``;i.length!==0&&r.length!==0&&n(e=>{let t=e.draftsByThreadKey[i];if(!t)return e;let n={...t,terminalContexts:t.terminalContexts.filter(e=>e.id!==r)},a={...e.draftsByThreadKey};return N(n)?delete a[i]:a[i]=n,{draftsByThreadKey:a}})},clearTerminalContexts:e=>{let r=P(t(),e)??``;r.length!==0&&n(e=>{let t=e.draftsByThreadKey[r];if(!t||t.terminalContexts.length===0)return e;let n={...t,terminalContexts:[]},i={...e.draftsByThreadKey};return N(n)?delete i[r]:i[r]=n,{draftsByThreadKey:i}})},clearPersistedAttachments:e=>{let r=P(t(),e)??``;r.length!==0&&n(e=>{let t=e.draftsByThreadKey[r];if(!t)return e;let n={...t,persistedAttachments:[],nonPersistedImageIds:[]},i={...e.draftsByThreadKey};return N(n)?delete i[r]:i[r]=n,{draftsByThreadKey:i}})},syncPersistedAttachments:(e,r)=>{let i=P(t(),e);if(!i)return;let a=new Set(r.map(e=>e.id));n(e=>{let t=e.draftsByThreadKey[i];if(!t)return e;let n={...t,persistedAttachments:r,nonPersistedImageIds:t.nonPersistedImageIds.filter(e=>!a.has(e))},o={...e.draftsByThreadKey};return N(n)?delete o[i]:o[i]=n,{draftsByThreadKey:o}}),Promise.resolve().then(()=>{uy(i,r,n)})},moveComposerDraft:(e,r)=>{let i=dm(t().draftsByThreadKey,e,r);return i!==null&&(n({draftsByThreadKey:i}),bv.flush(),!0)},clearComposerContent:e=>{let r=P(t(),e)??``;r.length!==0&&n(e=>{let t=e.draftsByThreadKey[r];if(!t)return e;let n=iv(t),i={...e.draftsByThreadKey};return N(n)?delete i[r]:i[r]=n,{draftsByThreadKey:i}})},clearComposerContentIfUnchanged:(e,r)=>{let i=P(t(),e)??``;if(i.length===0)return!1;let a=!1;return n(e=>{let t=e.draftsByThreadKey[i];if(!t||!rv(t,r))return e;let n=iv(t),o={...e.draftsByThreadKey};return N(n)?delete o[i]:o[i]=n,a=!0,{draftsByThreadKey:o}}),a},restoreComposerStash:(e,r)=>{let i=P(t(),e)??``,a=qv(t(),e);if(i.length===0||!a)return!1;let o,s;if(n(e=>{let t=P_(e.draftsByThreadKey,i,a,r);return t?(o=t.previousDraft,s=t.restoredDraft,{draftsByThreadKey:t.drafts}):e}),!s)return!1;let c=!1;try{bv.flush();let e=ly(i),n=t().draftsByThreadKey[i];e!==null&&n===s&&W_(e,n)&&(c=!0)}catch{}if(c&&(r.onPersisted?.()??!0))return!0;n(e=>{if(e.draftsByThreadKey[i]!==s)return e;let t={...e.draftsByThreadKey};return o?t[i]=o:delete t[i],{draftsByThreadKey:t}});try{bv.flush()}catch{}return!1}}},{name:mv,version:hv,storage:Hf(()=>bv),migrate:ay,partialize:oy,merge:(e,t)=>{let n=sy(e),r=Object.fromEntries(Object.entries(n.draftsByThreadKey).map(([e,t])=>[e,my(t)])),i=Object.fromEntries(Object.entries(n.draftThreadsByThreadKey).map(([e,t])=>[e,hy(t)]));return{...t,draftsByThreadKey:r,draftThreadsByThreadKey:i,logicalProjectDraftThreadKeyByLogicalProjectKey:n.logicalProjectDraftThreadKeyByLogicalProjectKey,stickyModelSelectionByProvider:n.stickyModelSelectionByProvider??{},stickyActiveProvider:n.stickyActiveProvider??null}}}));function _y(e){let t=(0,A.c)(2),n;return t[0]===e?n=t[1]:(n=t=>Jv(t,e)??Lv,t[0]=e,t[1]=n),gy(n)}function vy(e){let t=(0,A.c)(2),n;return t[0]===e?n=t[1]:(n=t=>{let n=Jv(t,e);return n?{activeProvider:n.activeProvider,modelSelectionByProvider:n.modelSelectionByProvider}:Iv},t[0]=e,t[1]=n),gy(eh(n))}function yy(e){let t=gy.getState();for(let[n,r]of Object.entries(t.draftThreadsByThreadKey))r.environmentId===e.environmentId&&r.threadId===e.threadId&&t.markDraftThreadPromoting(ba.make(n),e)}function by(e){for(let t of e)yy(t)}function xy(e){let t=gy.getState();for(let[n,r]of Object.entries(t.draftThreadsByThreadKey))r.promotedTo&&r.promotedTo.environmentId===e.environmentId&&r.promotedTo.threadId===e.threadId&&t.finalizePromotedDraftThread(ba.make(n))}var Sy=null;function Cy(e){Sy=e}function wy(){if(Sy===null)throw Error(`Environment event handling was used before the service was configured.`);return Sy}function Ty(e){let t=new Set,n=new Map(e.snapshotThreads.map(e=>[e.key,e]));for(let n of e.snapshotThreads)n.deletedAt===null&&n.archivedAt===null&&t.add(n.key);for(let r of e.draftThreadKeys){let e=n.get(r);e&&(e.deletedAt!==null||e.archivedAt!==null)||t.add(r)}return t}function Ey(e){let t=new Map,n=!1;for(let r of e)switch(r.type){case`thread.turn-diff-completed`:case`thread.reverted`:n=!0;break;case`thread.created`:t.set(r.payload.threadId,{clearPromotedDraft:!0,clearDeletedThread:!1,removeTerminalState:!1});break;case`thread.deleted`:t.set(r.payload.threadId,{clearPromotedDraft:!1,clearDeletedThread:!0,removeTerminalState:!0});break;case`thread.archived`:t.set(r.payload.threadId,{clearPromotedDraft:!1,clearDeletedThread:!1,removeTerminalState:!0});break;case`thread.unarchived`:t.set(r.payload.threadId,{clearPromotedDraft:!1,clearDeletedThread:!1,removeTerminalState:!1})}let r=[],i=[],a=[];for(let[e,n]of t)n.clearPromotedDraft&&r.push(e),n.clearDeletedThread&&i.push(e),n.removeTerminalState&&a.push(e);return{promoteDraftThreadIds:r,clearDeletedThreadIds:i,removeTerminalStateThreadIds:a,needsProviderInvalidation:n}}var Dy={threadRef:null,open:!1,minimized:!1,dock:`floating`,position:null};function Oy(e){return{x:Math.max(12,Math.min(e.position.x,e.viewportWidth-e.width-12)),y:Math.max(12,Math.min(e.position.y,e.viewportHeight-e.height-12))}}function ky(e,t){return{...e,threadRef:t,open:!0,minimized:!1}}function Ay(e){let t=e.companion.threadRef;return!e.companion.open||t===null?!1:e.routeThreadRef?.environmentId!==t.environmentId||e.routeThreadRef.threadId!==t.threadId}function jy(e){if(!e||typeof e!=`object`)return null;let t=e;return typeof t.snoozedAt!=`string`||t.snoozedAt.length===0||typeof t.snoozedUntil!=`string`||t.snoozedUntil.length===0?null:{snoozedAt:t.snoozedAt,snoozedUntil:t.snoozedUntil}}function My(e){if(!e||typeof e!=`object`)return{};let t={};for(let[n,r]of Object.entries(e)){if(typeof n!=`string`||n.length===0)continue;let e=jy(r);e&&(t[n]=e)}return t}function Ny(e,t,n){let r=n??new Date().toISOString(),i=Date.parse(r),a=e.threadLastVisitedAtById[t],o=a?Date.parse(a):NaN;return Number.isFinite(o)&&Number.isFinite(i)&&o>=i?e:{...e,threadLastVisitedAtById:{...e.threadLastVisitedAtById,[t]:r}}}function Py(e,t,n){if(!n)return e;let r=Date.parse(n);if(Number.isNaN(r))return e;let i=new Date(r-1).toISOString();return e.threadLastVisitedAtById[t]===i?e:{...e,threadLastVisitedAtById:{...e.threadLastVisitedAtById,[t]:i}}}function Fy(e,t){let n=t in e.threadLastVisitedAtById,r=t in e.threadChangedFilesExpandedById,i=t in e.pinnedThreadById,a=t in e.threadLinkedPrById,o=t in e.pinOrderKeyById,s=t in e.activeOrderKeyById,c=t in e.threadSnoozeById;if(!n&&!r&&!i&&!a&&!o&&!s&&!c)return e;let l={...e.threadLastVisitedAtById},u={...e.threadChangedFilesExpandedById},d={...e.pinnedThreadById},f={...e.threadLinkedPrById},p={...e.pinOrderKeyById},m={...e.activeOrderKeyById},h={...e.threadSnoozeById};return delete l[t],delete u[t],delete d[t],delete f[t],delete p[t],delete m[t],delete h[t],{...e,threadLastVisitedAtById:l,threadChangedFilesExpandedById:u,pinnedThreadById:d,threadLinkedPrById:f,pinOrderKeyById:p,activeOrderKeyById:m,threadSnoozeById:h}}function Iy(e,t,n){if(e.pinnedThreadById[t]===!0===n)return e;if(n)return{...e,pinnedThreadById:{...e.pinnedThreadById,[t]:!0}};let r={...e.pinnedThreadById};return delete r[t],{...e,pinnedThreadById:r}}function Ly(e,t){return Iy(e,t,e.pinnedThreadById[t]!==!0)}function Ry(e,t,n){let r=e.pinOrderKeyById[t];if(n===null){if(r===void 0)return e;let n={...e.pinOrderKeyById};return delete n[t],{...e,pinOrderKeyById:n}}return r===n?e:{...e,pinOrderKeyById:{...e.pinOrderKeyById,[t]:n}}}function zy(e,t,n){let r=e.activeOrderKeyById[t];if(n===null){if(r===void 0)return e;let n={...e.activeOrderKeyById};return delete n[t],{...e,activeOrderKeyById:n}}return r===n?e:{...e,activeOrderKeyById:{...e.activeOrderKeyById,[t]:n}}}function By(e,t,n){if(n===null){if(!(t in e.threadSnoozeById))return e;let n={...e.threadSnoozeById};return delete n[t],{...e,threadSnoozeById:n}}let r=e.threadSnoozeById[t];return r&&r.snoozedAt===n.snoozedAt&&r.snoozedUntil===n.snoozedUntil?e:{...e,threadSnoozeById:{...e.threadSnoozeById,[t]:n}}}function Vy(e,t,n){return e.threadLinkedPrById[t]===n?e:{...e,threadLinkedPrById:{...e.threadLinkedPrById,[t]:n}}}function Hy(e,t){if(!(t in e.threadLinkedPrById))return e;let n={...e.threadLinkedPrById};return delete n[t],{...e,threadLinkedPrById:n}}function Uy(e,t,n,r){let i=e.threadChangedFilesExpandedById[t]??{};return i[n]===r?e:{...e,threadChangedFilesExpandedById:{...e.threadChangedFilesExpandedById,[t]:{...i,[n]:r}}}}var Wy=`forge:ui-state:v1`,Gy=[`t3code:ui-state:v1`,`t3code:renderer-state:v8`,`t3code:renderer-state:v7`,`t3code:renderer-state:v6`,`t3code:renderer-state:v5`,`t3code:renderer-state:v4`,`t3code:renderer-state:v3`,`codething:renderer-state:v4`,`codething:renderer-state:v3`,`codething:renderer-state:v2`,`codething:renderer-state:v1`],Ky=`months`,qy=new Set([`weeks`,`months`,`quarters`]);function Jy(e){return typeof e==`string`&&qy.has(e)?e:Ky}function Yy(e){return Number.isFinite(e)?Math.round(Math.min(560,Math.max(200,e))):360}var Xy={projectExpandedById:{},projectOrder:[],projectGroupOrder:[],lastActiveProject:null,threadLastVisitedAtById:{},threadChangedFilesExpandedById:{},pinnedThreadById:{},threadLinkedPrById:{},pinOrderKeyById:{},activeOrderKeyById:{},threadSnoozeById:{},workspaceDensityById:{},timelineWorkColumnWidth:360,timelineScale:Ky,projectLeadCompanion:Dy},Zy=new Set,Qy=[],$y=new Map,eb=!1;function tb(){if(typeof window>`u`)return Xy;try{let e=window.localStorage.getItem(Wy);if(!e){for(let e of Gy){let t=window.localStorage.getItem(e);if(t)return ub(JSON.parse(t)),Xy}return Xy}let t=JSON.parse(e);return ub(t),{...Xy,projectGroupOrder:nb(t.projectGroupOrderKeys),threadChangedFilesExpandedById:ob(t.threadChangedFilesExpandedById),pinnedThreadById:rb(t.pinnedThreadKeys),threadLinkedPrById:ib(t.threadLinkedPrById),pinOrderKeyById:ab(t.pinOrderKeyById),activeOrderKeyById:ab(t.activeOrderKeyById),threadSnoozeById:My(t.threadSnoozeById),timelineWorkColumnWidth:Yy(t.timelineWorkColumnWidth??360),timelineScale:Jy(t.timelineScale)}}catch{return Xy}}function nb(e){return Array.isArray(e)?[...new Set(e.filter(e=>typeof e==`string`&&e.length>0))]:[]}function rb(e){if(!Array.isArray(e))return{};let t={};for(let n of e)typeof n==`string`&&n.length>0&&(t[n]=!0);return t}function ib(e){if(!e||typeof e!=`object`)return{};let t={};for(let[n,r]of Object.entries(e))typeof n==`string`&&n.length!==0&&typeof r==`string`&&r.trim().length!==0&&(t[n]=r);return t}function ab(e){if(!e||typeof e!=`object`)return{};let t={};for(let[n,r]of Object.entries(e))typeof n==`string`&&n.length>0&&typeof r==`string`&&r.length>0&&(t[n]=r);return t}function ob(e){if(!e||typeof e!=`object`)return{};let t={};for(let[n,r]of Object.entries(e)){let e=sb(r);Object.keys(e).length>0&&(t[n]=e)}return t}function sb(e){let t={};if(!e||typeof e!=`object`)return t;for(let[n,r]of Object.entries(e))n&&typeof r==`boolean`&&r===!1&&(t[n]=!1);return t}function cb(e){for(let t of e)typeof t==`string`&&t.length>0&&Zy.add(t)}function lb(e){for(let t of e)typeof t==`string`&&t.length>0&&!Qy.includes(t)&&Qy.push(t)}function ub(e){Zy.clear(),Qy.length=0,cb(e.expandedProjectCwds??[]),lb(e.projectOrderCwds??[])}function db(e){if(!(typeof window>`u`))try{let t=Object.entries(e.projectExpandedById).filter(([,e])=>e).flatMap(([e])=>{let t=$y.get(e);return t?[t]:[]}),n=e.projectOrder.flatMap(e=>{let t=$y.get(e);return t?[t]:[]}),r=Object.fromEntries(Object.entries(e.threadChangedFilesExpandedById).flatMap(([e,t])=>{let n=Object.fromEntries(Object.entries(t).filter(([,e])=>e===!1));return Object.keys(n).length>0?[[e,n]]:[]}));if(window.localStorage.setItem(Wy,JSON.stringify({expandedProjectCwds:t,projectOrderCwds:n,projectGroupOrderKeys:e.projectGroupOrder,threadChangedFilesExpandedById:r,pinnedThreadKeys:Object.keys(e.pinnedThreadById).filter(t=>e.pinnedThreadById[t]),threadLinkedPrById:e.threadLinkedPrById,pinOrderKeyById:e.pinOrderKeyById,activeOrderKeyById:e.activeOrderKeyById,threadSnoozeById:e.threadSnoozeById,timelineWorkColumnWidth:e.timelineWorkColumnWidth,timelineScale:e.timelineScale})),!eb){eb=!0;for(let e of Gy)window.localStorage.removeItem(e)}}catch{}}var fb=new Aa(db,{wait:500});function pb(e,t){let n=Object.entries(e),r=Object.entries(t);if(n.length!==r.length)return!1;for(let[e,r]of n)if(t[e]!==r)return!1;return!0}function mb(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function hb(e,t){let n=Object.entries(e),r=Object.entries(t);if(n.length!==r.length)return!1;for(let[e,r]of n)if(!(e in t)||!pb(r,t[e]))return!1;return!0}function gb(e,t){let n=new Map($y),r=new Map([...n.entries()].map(([e,t])=>[t,e]));$y.clear();for(let e of t)$y.set(e.key,e.cwd);let i=n.size!==$y.size||t.some(e=>n.get(e.key)!==e.cwd),a={},o=e.projectExpandedById,s=new Map(Qy.map((e,t)=>[e,t])),c=t.map((e,t)=>{let n=r.get(e.cwd),i=o[e.key]??(n?o[n]:void 0)??(Zy.size>0?Zy.has(e.cwd):!0);return a[e.key]=i,{id:e.key,cwd:e.cwd,incomingIndex:t}}),l=e.projectOrder.length>0?(()=>{let t=new Map(c.map(e=>[e.cwd,e.id])),r=new Set,i=[];for(let o of e.projectOrder){let e=(o in a?o:void 0)??(()=>{let e=n.get(o);return e?t.get(e):void 0})();!e||r.has(e)||(r.add(e),i.push(e))}for(let e of c)r.has(e.id)||i.push(e.id);return i})():c.map(e=>({id:e.id,incomingIndex:e.incomingIndex,orderIndex:s.get(e.cwd)??Qy.length+e.incomingIndex})).toSorted((e,t)=>{let n=e.orderIndex-t.orderIndex;return n===0?e.incomingIndex-t.incomingIndex:n}).map(e=>e.id);return pb(e.projectExpandedById,a)&&mb(e.projectOrder,l)&&!i?e:{...e,projectExpandedById:a,projectOrder:l}}function _b(e,t){let n=new Set(t.map(e=>e.key)),r=Object.fromEntries(Object.entries(e.threadLastVisitedAtById).filter(([e])=>n.has(e)));for(let e of t)r[e.key]===void 0&&e.seedVisitedAt!==void 0&&e.seedVisitedAt.length>0&&(r[e.key]=e.seedVisitedAt);let i=Object.fromEntries(Object.entries(e.threadChangedFilesExpandedById).filter(([e])=>n.has(e))),a=Object.fromEntries(Object.entries(e.pinnedThreadById).filter(([e,t])=>n.has(e)&&t)),o=Object.fromEntries(Object.entries(e.threadLinkedPrById).filter(([e])=>n.has(e))),s=Object.fromEntries(Object.entries(e.pinOrderKeyById).filter(([e])=>n.has(e))),c=Object.fromEntries(Object.entries(e.activeOrderKeyById).filter(([e])=>n.has(e))),l=Object.fromEntries(Object.entries(e.threadSnoozeById).filter(([e])=>n.has(e)));return pb(e.threadLastVisitedAtById,r)&&hb(e.threadChangedFilesExpandedById,i)&&pb(e.pinnedThreadById,a)&&pb(e.threadLinkedPrById,o)&&pb(e.pinOrderKeyById,s)&&pb(e.activeOrderKeyById,c)&&pb(e.threadSnoozeById,l)?e:{...e,threadLastVisitedAtById:r,threadChangedFilesExpandedById:i,pinnedThreadById:a,threadLinkedPrById:o,pinOrderKeyById:s,activeOrderKeyById:c,threadSnoozeById:l}}function vb(e,t){return e.lastActiveProject?.environmentId===t?.environmentId&&e.lastActiveProject?.projectId===t?.projectId?e:{...e,lastActiveProject:t}}function yb(e,t,n){return e.workspaceDensityById[t]===n?e:{...e,workspaceDensityById:{...e.workspaceDensityById,[t]:n}}}function bb(e,t){let n=e.projectExpandedById[t]??!0;return{...e,projectExpandedById:{...e.projectExpandedById,[t]:!n}}}function xb(e,t,n){return(e.projectExpandedById[t]??!0)===n?e:{...e,projectExpandedById:{...e.projectExpandedById,[t]:n}}}function Sb(e,t,n){if(t.length===0)return e;let r=new Set(t),i=new Set(n);if(t.every(e=>i.has(e)))return e;let a=e.projectOrder.findIndex(e=>i.has(e));if(a<0)return e;let o=[...e.projectOrder],s=[],c=0;for(let e=o.length-1;e>=0;e--)r.has(o[e])&&(s.unshift(o.splice(e,1)[0]),e<a&&c++);if(s.length===0)return e;let l=a-Math.max(0,c-1);return o.splice(l,0,...s),{...e,projectOrder:o}}function Cb(e,t){let n=[...new Set(t)],r=new Set(n),i=e.projectGroupOrder.filter(e=>r.has(e)),a=new Set(i);for(let e of n)a.has(e)||i.push(e);return mb(e.projectGroupOrder,i)?e:{...e,projectGroupOrder:i}}function wb(e,t,n){if(t===n)return e;let r=e.projectGroupOrder.indexOf(t),i=e.projectGroupOrder.indexOf(n);if(r<0||i<0)return e;let a=[...e.projectGroupOrder],[o]=a.splice(r,1);return o===void 0?e:(a.splice(i,0,o),{...e,projectGroupOrder:a})}var Tb=wa(e=>({...tb(),syncProjects:t=>e(e=>gb(e,t)),syncProjectGroups:t=>e(e=>Cb(e,t)),syncThreads:t=>e(e=>_b(e,t)),markThreadVisited:(t,n)=>e(e=>Ny(e,t,n)),markThreadUnread:(t,n)=>e(e=>Py(e,t,n)),clearThreadUi:t=>e(e=>Fy(e,t)),setThreadPinned:(t,n)=>e(e=>Iy(e,t,n)),toggleThreadPinned:t=>e(e=>Ly(e,t)),setThreadPinOrderKey:(t,n)=>e(e=>Ry(e,t,n)),setThreadActiveOrderKey:(t,n)=>e(e=>zy(e,t,n)),setThreadSnooze:(t,n)=>e(e=>By(e,t,n)),setThreadLinkedPr:(t,n)=>e(e=>Vy(e,t,n)),clearThreadLinkedPr:t=>e(e=>Hy(e,t)),setThreadChangedFilesExpanded:(t,n,r)=>e(e=>Uy(e,t,n,r)),setWorkspaceDensity:(t,n)=>e(e=>yb(e,t,n)),toggleProject:t=>e(e=>bb(e,t)),setProjectExpanded:(t,n)=>e(e=>xb(e,t,n)),reorderProjects:(t,n)=>e(e=>Sb(e,t,n)),reorderProjectGroups:(t,n)=>e(e=>wb(e,t,n)),setLastActiveProject:t=>e(e=>vb(e,t)),setTimelineWorkColumnWidth:t=>e(e=>({...e,timelineWorkColumnWidth:Yy(t)})),setTimelineScale:t=>e(e=>({...e,timelineScale:t})),openProjectLeadCompanion:t=>e(e=>({...e,projectLeadCompanion:ky(e.projectLeadCompanion,t)})),closeProjectLeadCompanion:()=>e(e=>({...e,projectLeadCompanion:{...e.projectLeadCompanion,open:!1}})),setProjectLeadCompanionMinimized:t=>e(e=>({...e,projectLeadCompanion:{...e.projectLeadCompanion,minimized:t}})),setProjectLeadCompanionDock:t=>e(e=>({...e,projectLeadCompanion:{...e.projectLeadCompanion,dock:t}})),setProjectLeadCompanionPosition:t=>e(e=>({...e,projectLeadCompanion:{...e.projectLeadCompanion,position:t}}))}));function Eb(e){Tb.getState().openProjectLeadCompanion(e)}Tb.subscribe(e=>fb.maybeExecute(e)),typeof window<`u`&&typeof window.addEventListener==`function`&&window.addEventListener(`beforeunload`,()=>{fb.flush()});var F=new Map;function Db(e){return!e.isWorking||e.msSinceLastEvent<e.stallThresholdMs?`none`:e.recoveryAttempts<e.maxResubscribeAttempts?`resubscribe`:e.recoveryAttempts<e.maxTotalAttempts?`reconnect`:`none`}var Ob=3e4,kb=1e4,Ab=[/(?:^|\s)\/(?:Users|var|private|tmp|project|repo|home)\/[^\s'"<>)]*/i,/(?:^|\s)[A-Za-z]:\\[^\s'"<>)]*/];function jb(e){let t=e?.trim();return t&&t.length>0?t:null}function Mb(e){return jb(e)??`Project`}function Nb(e,t=`safe`){let n=jb(e);return n?t===`full`?n:n.replaceAll(`\\`,`/`).split(`/`).filter(Boolean).at(-1)??`Local checkout`:`Local checkout`}function Pb(e,t=`Something went wrong. Try again.`){let n=e instanceof Error?e.message:typeof e==`string`?e:String(e),r=dr(n,{fallback:t});return!r||Ab.some(e=>e.test(r))?t:r}var Fb=`Thread not found or you no longer have access.`;function Ib(e){if(e==null)return Fb;let t=Pb(qt(e)?ke(e):e,Fb);return/\bnot found\b/i.test(t)?Fb:t}function Lb(e,t,n){S.getState().setThreadSubscriptionError(e,t,Ib(n))}var Rb=null;function zb(e){Rb=e}function Bb(){if(Rb===null)throw Error(`Thread detail subscriptions were used before the service was configured.`);return Rb}var Vb=9e5,Hb=()=>void 0;function Ub(e,t){return Ln(C(e,t))}function Wb(e){return e.evictionTimeoutId!==null&&(clearTimeout(e.evictionTimeoutId),e.evictionTimeoutId=null),e}function Gb(e){let t=C(e.environmentId,e.threadId),n=S.getState(),r=Tn(n,t);if(r&&qb(r))return!0;let i=Sn(n,t);return i?Kb(i.session?.orchestrationStatus)||i.latestTurn?.state===`running`||i.pendingSourceProposedPlan!==void 0:!1}function Kb(e){return!!(e&&e!==`idle`&&e!==`stopped`)}function qb(e){return e.hasPendingApprovals||e.hasPendingUserInput||e.hasActionableProposedPlan||Kb(e.session?.orchestrationStatus)||e.latestTurn?.state===`running`}function Jb(e){return e.refCount===0&&!Gb(e)}function Yb(e){let t=Bb().readConnection(e.environmentId);return e.unsubscribe===Hb&&!t?!1:(e.unsubscribeConnectionListener!==null&&(e.unsubscribeConnectionListener(),e.unsubscribeConnectionListener=null),e.unsubscribe!==Hb||!t||(e.unsubscribe=t.client.orchestration.subscribeThread({threadId:e.threadId},t=>{e.lastEventAt=Date.now(),e.recoveryAttempts=0,t.kind===`event`?Bb().applyEvent(t.event,e.environmentId):t.kind===`snapshot`&&(S.getState().syncServerThreadDetail(t.snapshot.thread,e.environmentId),S.getState().clearThreadSubscriptionError(e.environmentId,e.threadId))},{onError:t=>Lb(e.environmentId,e.threadId,t)})),!0)}function Xb(e){e.unsubscribeConnectionListener===null&&(e.unsubscribeConnectionListener=Bb().subscribeConnections(()=>{Yb(e)&&(e.lastAccessedAt=Date.now())}),Yb(e))}var Zb=null;function Qb(e){let t=C(e.environmentId,e.threadId),n=S.getState(),r=Tn(n,t);if(r?.latestTurn?.state===`running`||r?.session?.orchestrationStatus===`running`)return!0;let i=Sn(n,t);return i?.latestTurn?.state===`running`||i?.session?.orchestrationStatus===`running`}function $b(e){e.unsubscribe!==Hb&&(e.unsubscribe(),e.unsubscribe=Hb),Yb(e)||Xb(e)}function ex(e,t,n){if(e.recoveryAttempts+=1,e.lastEventAt=Date.now(),console.warn(`[forge] thread-detail liveness watchdog recovering`,{action:t,threadId:String(e.threadId),environmentId:String(e.environmentId),msSinceLastEvent:Math.round(n),recoveryAttempts:e.recoveryAttempts}),t===`resubscribe`){$b(e);return}Bb().readConnection(e.environmentId)?.reconnect().catch(t=>{Vn(t,{route:`thread-detail-liveness-watchdog-reconnect-failed`,threadId:String(e.threadId),environmentId:String(e.environmentId),msSinceLastEvent:String(Math.round(n)),recoveryAttempts:String(e.recoveryAttempts)})})}function tx(){let e=Date.now();for(let t of F.values()){let n=Db({isWorking:Qb(t),msSinceLastEvent:e-t.lastEventAt,stallThresholdMs:Ob,recoveryAttempts:t.recoveryAttempts,maxResubscribeAttempts:2,maxTotalAttempts:4});n!==`none`&&ex(t,n,e-t.lastEventAt)}}function nx(){Zb===null&&(Zb=setInterval(tx,kb))}function rx(){F.size>0||Zb!==null&&(clearInterval(Zb),Zb=null)}function ix(e){let t=F.get(e);return t?(Wb(t),t.unsubscribeConnectionListener?.(),t.unsubscribeConnectionListener=null,F.delete(e),t.unsubscribe(),t.unsubscribe=Hb,rx(),!0):!1}function ax(e){ox(e,!0),j.getState().clear(e)}function ox(e,t=!1){for(let[n,r]of F)if(r.environmentId===e){if(r.refCount===0||t){ix(n);continue}r.unsubscribe(),r.unsubscribe=Hb,Xb(r)}}function sx(e){for(let t=e.messages.length-1;t>=0;--t){let n=e.messages[t];if(n?.role===`user`)return n.createdAt}return null}function cx(e){return e.session?{threadId:e.id,updatedAt:e.session.updatedAt,providerName:e.session.provider,runtimeMode:e.runtimeMode,activeTurnId:e.session.activeTurnId??null,lastError:e.session.lastError??null,status:e.session.orchestrationStatus}:null}function lx(e,t){return{updatedAt:e.updatedAt??e.createdAt,latestUserMessageAt:t?.latestUserMessageAt??sx(e),titleRegeneration:e.titleRegeneration??null}}function ux(e){return{hasPendingApprovals:e?.hasPendingApprovals??!1,hasPendingUserInput:e?.hasPendingUserInput??!1,hasActionableProposedPlan:e?.hasActionableProposedPlan??!1}}function dx(e){let t=C(e.environmentId,e.threadId),n=S.getState(),r=Sn(n,t);if(!r)return null;let i=Tn(n,t);return{id:r.id,projectId:r.projectId,title:r.title,modelSelection:r.modelSelection,runtimeMode:r.runtimeMode,interactionMode:r.interactionMode,branch:r.branch,worktreePath:r.worktreePath,latestTurn:r.latestTurn,createdAt:r.createdAt,...lx(r,i),...ux(i),archivedAt:r.archivedAt,session:cx(r),anchorKind:r.anchorKind,anchorCmmdId:r.anchorCmmdId,kind:r.kind,parentThreadId:r.parentThreadId,status:r.status,workerRole:r.workerRole,goal:r.goal}}function fx(e,t){if(F.size===0)return e;let n=new Set(e.threads.map(e=>e.id)),r=[];for(let e of F.values()){if(e.environmentId!==t||e.refCount<=0||n.has(e.threadId))continue;let i=dx(e);i&&(n.add(i.id),r.push(i))}return r.length===0?e:{...e,threads:[...e.threads,...r]}}function px(e,t){let n=new Set(t);for(let[t,r]of F)r.environmentId===e&&!n.has(r.threadId)&&Jb(r)&&ix(t)}function mx(e){Wb(e),Jb(e)&&(e.evictionTimeoutId=setTimeout(()=>{let t=F.get(Ub(e.environmentId,e.threadId));t&&(t.evictionTimeoutId=null,Jb(t)&&ix(Ub(e.environmentId,e.threadId)))},Vb))}function hx(){if(F.size<=32)return;let e=[...F.entries()].filter(([,e])=>Jb(e)).toSorted(([,e],[,t])=>e.lastAccessedAt-t.lastAccessedAt);for(let[t]of e){if(F.size<=32)return;ix(t)}}function gx(e){Wb(e),Jb(e)&&mx(e)}function _x(e,t){let n=F.get(Ub(e,t));n&&gx(n)}function vx(e){for(let t of F.values())t.environmentId===e&&gx(t);hx()}function yx(e){let t=!1;return()=>{t||(t=!0,e.refCount=Math.max(0,e.refCount-1),e.lastAccessedAt=Date.now(),e.refCount===0&&(gx(e),hx()))}}function bx(e,t){let n=Ub(e,t),r=F.get(n);if(r)return Wb(r),r.refCount+=1,r.lastAccessedAt=Date.now(),Yb(r)||Xb(r),yx(r);let i={environmentId:e,threadId:t,unsubscribe:Hb,unsubscribeConnectionListener:null,refCount:1,lastAccessedAt:Date.now(),evictionTimeoutId:null,lastEventAt:Date.now(),recoveryAttempts:0};return F.set(n,i),Yb(i)||Xb(i),nx(),hx(),yx(i)}function xx(e,t){return e.type!==`thread.message-sent`||t.type!==`thread.message-sent`||e.payload.threadId!==t.payload.threadId||e.payload.messageId!==t.payload.messageId?null:{...t,payload:{...t.payload,attachments:t.payload.attachments??e.payload.attachments,createdAt:e.payload.createdAt,text:!t.payload.streaming&&t.payload.text.length>0?t.payload.text:e.payload.text+t.payload.text}}}function Sx(e){if(e.length<2)return[...e];let t=[];for(let n of e){let e=t.at(-1),r=e?xx(e,n):null;if(r){t[t.length-1]=r;continue}t.push(n)}return t}function Cx(){let e=wn(S.getState());Tb.getState().syncProjects(e.map(e=>({key:Fn(In(e.environmentId,e.id)),cwd:e.cwd})))}function wx(){let e=mn(S.getState());Tb.getState().syncThreads(e.map(e=>({key:Ln(C(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt}))),by(e.map(e=>C(e.environmentId,e.id)))}function Tx(){Cx(),wx();let e=Ty({snapshotThreads:mn(S.getState()).map(e=>({key:Ln(C(e.environmentId,e.id)),deletedAt:null,archivedAt:e.archivedAt})),draftThreadKeys:gy.getState().listDraftThreadKeys()});lm.getState().removeOrphanedTerminalStates(e)}function Ex(e){return e.serverThreadArchivedAt===void 0?e.hasDraftThread:e.serverThreadArchivedAt===null}function Dx(e,t){if(e.length===0)return;let n=Ey(e),r=Sx(e),i=e.some(e=>e.type===`project.created`||e.type===`project.meta-updated`||e.type===`project.deleted`);if(n.needsProviderInvalidation&&wy().notifyProviderInvalidation(),S.getState().applyOrchestrationEvents(r,t),i){let e=wn(S.getState());Tb.getState().syncProjects(e.map(e=>({key:Fn(In(e.environmentId,e.id)),cwd:e.cwd})))}if(e.some(e=>e.type===`thread.created`||e.type===`thread.deleted`)){let e=mn(S.getState());Tb.getState().syncThreads(e.map(e=>({key:Ln(C(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt})))}let a=gy.getState();for(let e of n.promoteDraftThreadIds)yy(C(t,e));for(let e of n.clearDeletedThreadIds)a.clearDraftThread(C(t,e)),Tb.getState().clearThreadUi(Ln(C(t,e)));for(let e of n.removeTerminalStateThreadIds){let n=C(t,e);lm.getState().removeTerminalState(n),Pf.getState().clearBrowserState(n)}vx(t)}function Ox(e,t){Dx([e],t)}function kx(e,t){let n=e.kind===`thread-upserted`?e.thread.id:e.kind===`thread-removed`?e.threadId:null,r=n?C(t,n):null,i=r?Sn(S.getState(),r):void 0;switch(S.getState().applyShellEvent(e,t),e.kind){case`project-upserted`:case`project-removed`:Cx();return;case`thread-upserted`:wx(),!i&&r&&yy(r),i?.archivedAt===null&&e.thread.archivedAt!==null&&r&&(lm.getState().removeTerminalState(r),Pf.getState().clearBrowserState(r)),_x(t,e.thread.id),hx();return;case`thread-removed`:r&&(ix(Ln(r)),gy.getState().clearDraftThread(r),Tb.getState().clearThreadUi(Ln(r)),lm.getState().removeTerminalState(r),Pf.getState().clearBrowserState(r)),wx();return}}function Ax(e,t){return e.invalidateQueries({queryKey:Rf.all(t)})}function jx(e){return{onWelcome:(t,n)=>{e?.(t);let r=wy().readQueryClient();r&&Ax(r,n)},applyShellEvent:kx,syncShellSnapshot:(e,t)=>{let n=fx(e,t);S.getState().syncServerShellSnapshot(n,t),px(t,n.threads.map(e=>e.id)),vx(t),Tx()},applyTerminalEvent:(e,t)=>{let n=C(t,zr.make(e.threadId)),r=Sn(S.getState(),n),i=gy.getState().getDraftThreadByRef(n)!==null;Ex({serverThreadArchivedAt:r?.archivedAt,hasDraftThread:i})&&lm.getState().applyTerminalEvent(n,e)},applyBrowserEvent:(e,t)=>{let n=C(t,zr.make(e.threadId)),r=Sn(S.getState(),n),i=gy.getState().getDraftThreadByRef(n)!==null;Ex({serverThreadArchivedAt:r?.archivedAt,hasDraftThread:i})&&Pf.getState().applyBrowserEvent(n,e)},onShellSubscriptionError:(e,t)=>{wy().setRuntimeError(t,e)}}}function Mx(){return new Date().toISOString()}function Nx(e){j.getState().patch(e,{connectionState:`connecting`,lastError:null,lastErrorAt:null})}function Px(e){let t=Mx();j.getState().patch(e,{connectionState:`connected`,authState:`authenticated`,connectedAt:t,disconnectedAt:null,lastError:null,lastErrorAt:null}),ir.getState().markConnected(e,t)}function Fx(e,t){j.getState().patch(e,{descriptor:t.environment,serverConfig:t})}function Ix(e,t){j.getState().patch(e,{connectionState:`disconnected`,disconnectedAt:Mx(),...t&&t.trim().length>0?{lastError:t,lastErrorAt:Mx()}:{}})}function Lx(e,t){j.getState().patch(e,{connectionState:`error`,...vl(t)})}function Rx(){return new Date().toISOString()}function zx(e){let t=hr();if(!t?.environmentId)throw Error(`Unable to resolve the primary environment.`);let n=e.readConnection(t.environmentId);if(n)return n;let r=of(),i=t.source===`paired-bearer`||!0;return e.registerConnection(ql({kind:`primary`,knownEnvironment:t,client:cf(t),resolveEnvironmentId:()=>hr()?.environmentId??t.environmentId,...i?{readiness:r?{bearerToken:r.bearerToken}:{}}:{},...jx()}))}async function Bx(e){let t=sf();if(!t)throw Error(`Desktop Local runtime is not authenticated. Sign in with CMMD again before importing local projects.`);let n=await Il({httpBaseUrl:t.httpBaseUrl,bearerToken:t.bearerToken}),r=e.readConnection(n.environmentId);if(r)return r;let i=xn({id:n.environmentId,label:t.label,source:`desktop-managed`,target:{httpBaseUrl:t.httpBaseUrl,wsBaseUrl:t.wsBaseUrl}});return e.registerConnection(ql({kind:`desktop-local`,knownEnvironment:{...i,environmentId:n.environmentId,label:n.label},client:lf({environmentId:n.environmentId,httpBaseUrl:t.httpBaseUrl,wsBaseUrl:t.wsBaseUrl,bearerToken:t.bearerToken,onConnecting:Nx,onConnected:Px,onError:(e,t)=>{j.getState().patch(e,{connectionState:`error`,lastError:t,lastErrorAt:Rx()})},onDisconnected:Ix}),...jx()}))}var Vx=new Map;function Hx(e){for(let t of e){let e=Vx.get(t);e===void 0||e<=1?Vx.delete(t):Vx.set(t,e-1)}}async function Ux(e,t){let n=e.environmentId;Vx.set(n,(Vx.get(n)??0)+1);try{return t.readConnection(n)||await t.ensureCmmdRuntimeSavedEnvironmentConnection(e),!0}catch{return Hx([n]),!1}}async function Wx(e){await Qn();let t=(await Promise.all(ar().map(async t=>await Ux(t,e)?t.environmentId:null))).flatMap(e=>e===null?[]:[e]),n=!1;return()=>{n||(n=!0,Hx(t))}}function Gx(){return new Date().toISOString()}async function Kx(e,t){t.readConnection(e)?.kind===`saved`&&(j.getState().clear(e),await t.removeConnection(e).catch(()=>!1))}async function qx(e,t){let n=er(e);if(!n)throw Error(`Saved environment not found.`);let r=t.readConnection(e);if(!r){try{await t.ensureCmmdRuntimeSavedEnvironmentConnection(n)}catch(t){throw Lx(e,t),t}return}Nx(e);try{await r.reconnect()}catch(t){throw Lx(e,t),t}}async function Jx(e,t){t.invalidate(e),ir.getState().remove(e),await mr(e),await Kx(e,t)}async function Yx(e,t){let{existing:n,replacedRecord:r}=ml({environmentId:Hr.make(e.environment.environmentId),replacesEnvironmentId:e.environment.replacesEnvironmentId}),i=Xx(e.environment,n);al(e.signal);let a=await hl(n),o=t.readConnection(i.environmentId)!==null&&pl({existing:n,replacedRecord:r,record:i});return o||(t.invalidate(i.environmentId),await t.removeConnection(i.environmentId).catch(()=>!1)),r&&(t.invalidate(r.environmentId),await t.removeConnection(r.environmentId).catch(()=>!1)),await t.ensureCmmdRuntimeSavedEnvironmentConnection(i,{bearerToken:e.bearerToken,registryExpectation:n&&!r?{kind:`existing-record`,record:n}:{kind:`initial-add`},...e.signal?{signal:e.signal}:{},...e.onBootstrapRetry?{onBootstrapRetry:e.onBootstrapRetry}:{}}),Zx({record:i,replacedRecord:r,persistenceRollback:a,keepsLiveConnection:o,signal:e.signal,dependencies:t})}function Xx(e,t){let n=Hr.make(e.environmentId),{kind:r,cmmdOrganizationId:i,cmmdProjectId:a,runtimeId:o,runtimeTicketExpiresAt:s}=e;return{environmentId:n,label:e.label,wsBaseUrl:Jr(e.wsBaseUrl),httpBaseUrl:e.httpBaseUrl,createdAt:t?.createdAt??Gx(),lastConnectedAt:Gx(),...r===void 0?{}:{kind:r},...i===void 0?{}:{cmmdOrganizationId:i},...a===void 0?{}:{cmmdProjectId:a},...o===void 0?{}:{runtimeId:o},...s===void 0?{}:{runtimeTicketExpiresAt:s}}}async function Zx(e){let{record:t,replacedRecord:n,persistenceRollback:r,keepsLiveConnection:i,signal:a,dependencies:o}=e,s=!1;try{return al(a),await _l({record:t,replacedRecord:n,rollback:r,...a?{signal:a}:{}}),s=!0,al(a),ir.getState().upsert(ul(t)),n&&o.retireEnvironmentId(n.environmentId),t}catch(e){throw i||await o.removeConnection(t.environmentId).catch(()=>!1),s&&await gl({record:t,replacedRecord:n,rollback:r}),al(a),e}}var Qx=`forge.deviceRegistry.deviceKey`,$x=`forge.deviceRegistry.runtimeId`;function eS(e){let t=rS(Qx,e.desktopIdentity?.deviceKey,`device`),n=rS($x,e.desktopIdentity?.runtimeId,`runtime`),r=nS(e.desktopIdentity?.hostKey),i=cS(),a=e.desktopAvailable?`desktop`:lS(),o=e.desktopAvailable?sS(e.desktopIdentity)??uS(i):dS(i);return{device:{...r?{hostKey:r}:{},deviceKey:t,displayName:o,platform:i,deviceType:a,metadata:{clientKind:e.desktopAvailable?`forge-desktop`:`forge-web`,userAgent:window.navigator.userAgent,origin:window.location.origin,...e.desktopIdentity?{desktopIdentity:{hostName:e.desktopIdentity.hostName,computerName:e.desktopIdentity.computerName,platform:e.desktopIdentity.platform}}:{}}},...e.desktopAvailable&&e.includeExecutableRuntime!==!1?{runtime:{runtimeId:n,runtimeKind:`desktop-local`,displayName:`Local Forge Desktop`,endpointUrl:e.desktopEndpointUrl??null,status:`online`,metadata:{origin:window.location.origin}}}:{}}}async function tS(){let e=await window.desktopBridge?.getDeviceIdentity?.()??null;return eS({desktopAvailable:!!window.desktopBridge,desktopIdentity:e,includeExecutableRuntime:!1})}function nS(e){let t=e?.trim()??``;return t.length>0?t:null}function rS(e,t,n){let r=nS(t);return r?(En(e,r),r):oS(e,n)}function iS(){return Mn($x)}function aS(){return Mn(Qx)}function oS(e,t){let n=Mn(e);if(n)return n;let r=`${t}_${crypto.randomUUID()}`;return En(e,r),r}function sS(e){let t=e?.displayName?.trim()??``;return t.length>0?t:null}function cS(){let e=window.navigator.userAgent.toLowerCase();return e.includes(`iphone`)||e.includes(`ipad`)?`ios`:e.includes(`android`)?`android`:e.includes(`mac`)?`macos`:e.includes(`win`)?`windows`:e.includes(`linux`)?`linux`:`unknown`}function lS(){let e=window.navigator.userAgent.toLowerCase();return e.includes(`ipad`)||e.includes(`tablet`)?`tablet`:e.includes(`mobi`)||e.includes(`iphone`)||e.includes(`android`)?`mobile`:`browser`}function uS(e){return e===`macos`?`Mac`:e===`windows`?`Windows PC`:e===`linux`?`Linux Desktop`:`Desktop`}function dS(e){return e===`web`?`Browser`:e===`macos`?`Mac Browser`:e===`windows`?`Windows Browser`:e===`linux`?`Linux Browser`:`Browser`}var fS=`forge.relayControlJournal.v1`;function pS(){if(globalThis.localStorage===void 0)throw Error(`Forge relay control recovery requires durable browser storage.`);return globalThis.localStorage}var mS={read:()=>pS().getItem(fS),write:e=>pS().setItem(fS,e)},hS=null,gS=wa()(e=>({byRuntimeId:{},replace:t=>e({byRuntimeId:t})}));function _S(e){e.subscribe(e=>{let t=new Set(e.records.map(e=>e.runtimeId));gS.getState().replace(Object.fromEntries([...t].map(t=>[t,la(e.records,t)])))})}function vS(){return hS===null&&(hS=ua({storage:mS}),_S(hS)),hS}function yS(){let e=(0,A.c)(1),t=gS(xS),n;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],e[0]=n):n=e[0],(0,O.useEffect)(bS,n),t}function bS(){vS()}function xS(e){return e.byRuntimeId}function SS(e){let t=vS();for(let n of t.records())n.runtimeId===e&&(n.status===`failed`||n.status===`outcome-unknown`)&&t.acknowledge(n.runtimeId,n.actorSessionId,n.transportRequestId)}var CS=class extends Error{code;constructor(e,t){super(t),this.name=`RelayControlRouteError`,this.code=e}};function wS(e){let t=e&&typeof e==`object`?e.code:null;throw t===`PROTOCOL_INCOMPATIBLE`?new CS(`FORGE_RUNTIME_UPDATE_REQUIRED`,`Update Forge on the target runtime before connecting remotely.`):t===`PROTOCOL_ROLLOUT_DENIED`?new CS(`FORGE_REMOTE_CONTROL_NOT_ENABLED`,`Remote control is not enabled for this CMMD account. Synced runtime inventory remains available.`):e}async function TS(e){let t=e.getStoredDeviceKey(),n=t?await e.apiClient.getDeviceRegistry():await e.apiClient.registerDevice(await e.buildDeviceRegistration());return t&&!n.devices.some(e=>e.deviceKey===t)&&(n=await e.apiClient.registerDevice(await e.buildDeviceRegistration())),t??=e.getStoredDeviceKey(),{deviceKey:t,registry:n}}function ES(e){if(!e.deviceKey)throw new CS(`FORGE_CONTROL_DEVICE_UNAUTHORIZED`,`This Forge control surface could not establish CMMD identity.`);let t=e.registry.devices.find(t=>t.deviceKey===e.deviceKey);if(t?.trustState===`revoked`||t?.authorization?.revoked===!0)throw new CS(`FORGE_CONTROL_DEVICE_REVOKED`,`This Forge control surface was revoked by CMMD.`);if(!t||t.trustState!==`trusted`)throw new CS(`FORGE_CONTROL_DEVICE_UNAUTHORIZED`,`This Forge control surface is not trusted by CMMD.`);return t}function DS(e,t){let n=async()=>ES(await TS(t));return{acquireRoute:async()=>{let r=await n(),i=await ca();try{let n=await t.apiClient.issueRelayControlRoute(e,{controlDeviceId:r.id,controlSessionId:t.controlSessionId,scopes:[...Ci],protocolMinVersion:4,protocolMaxVersion:4,...Yi(i)});return $i({route:n,runtimeId:e,endpoint:i})}catch(e){if(e instanceof sa)throw new CS(`FORGE_RUNTIME_UPDATE_REQUIRED`,e.message);return wS(e)}},acquireActionGrant:async r=>{let i=await n();try{return(await t.apiClient.issueRelayActionGrant(e,{controlDeviceId:i.id,controlSessionId:t.controlSessionId,...r})).token}catch(e){return wS(e)}}}}var OS=new Map;async function kS(e,t){let n=Hr.make(e.runtimeId),r=t.readConnection(n);if(r)return r;Nx(n);let i=vS(),a=DS(e.runtimeId,{apiClient:cr,getStoredDeviceKey:aS,buildDeviceRegistration:tS,controlSessionId:i.controlSessionId}),o;try{o=await a.acquireRoute()}catch(e){throw Lx(n,e),e}let s=o,c=ga({acquireRoute:async()=>{let e=s;return s=null,e??a.acquireRoute()},acquireActionGrant:a.acquireActionGrant,journal:i,lifecycle:{onConnecting:()=>Nx(n),onAuthenticated:()=>Px(n),onDisconnected:e=>Ix(n,e.reason),onError:e=>Lx(n,Object.assign(Error(e.message),e))}}),l=af(new ld(o.relayWebSocketUrl,{trackGlobalConnection:!1},{layer:c,makeClient:Qi(Ci)})),u=ql({kind:`saved`,knownEnvironment:{...xn({id:n,label:e.label,source:`manual`,target:{httpBaseUrl:ra()?.target.httpBaseUrl??o.relayWebSocketUrl,wsBaseUrl:o.relayWebSocketUrl}}),environmentId:n},client:l,tolerateReportedEnvironmentIdentity:!0,onConfigSnapshot:e=>Fx(n,e),...jx(e=>{j.getState().patch(n,{descriptor:e.environment})})});try{let[,e]=await Promise.all([u.ensureBootstrapped(),l.server.getConfig()]);return Fx(n,e),Px(n),t.registerConnection(u)}catch(e){throw Lx(n,e),await u.dispose().catch(()=>void 0),e}}function AS(e,t){let n=Hr.make(e.runtimeId),r=t.readConnection(n);if(r)return Promise.resolve(r);let i=OS.get(n);if(i)return i;let a=kS(e,t).finally(()=>{OS.delete(n)});return OS.set(n,a),a}var jS=new Set([`CMMD_AUTH_REQUIRED`,`CMMD_AUTH_EXPIRED`,`INVALID_OR_NON_USER_TOKEN`,`NON_USER_BEARER`,`CMMD_REST_AUTH_ERROR`]);function MS(e){if(!e||typeof e!=`object`)return null;let t=e.code;return typeof t!=`string`||!jS.has(t)?null:t}function NS(e,t){return e===401||e===403||MS(t)!==null}function PS(e){if(!e||typeof e!=`object`)return!1;let t=e.status,n=e.code;return NS(typeof t==`number`?t:void 0,typeof n==`string`?{code:n}:void 0)}var FS=[1e3,2e3,4e3,8e3,12e3,16e3,2e4],IS=9e4,LS=[`all fibers interrupted without error`,`timed out while waiting for forge cloud runtime metadata`,`timed out while waiting for`,`to stream its shell snapshot`,`forge runtime route not found`,`fly-replay`,`could not find a good candidate`,`instance refused connection`],RS=[`Unknown socket error`,`Failed to fetch remote auth endpoint`,`Forge runtime replay target is unavailable`,`Remote auth request failed (502)`,`Remote auth request failed (503)`,`Remote auth request failed (504)`,`Unable to connect to the Forge server WebSocket`];function zS(e){if(typeof e!=`object`||!e)return null;let t=e.status;return typeof t==`number`&&Number.isInteger(t)?t:null}function BS(e){if(PS(e))return!1;let t=zS(e);if(t===502||t===503||t===504||e._tag===`OrchestrationGetSnapshotError`)return!0;let n=e instanceof Error?e.message:String(e),r=n.toLowerCase();return LS.some(e=>r.includes(e))||RS.some(e=>n.includes(e))}function VS(e){return FS[e]??FS[FS.length-1]}function HS(){return IS}function US(e,t){if(!dl(e))return t;let n=null,r=new Promise((t,r)=>{n=globalThis.setTimeout(()=>{r(Error(`Timed out while waiting for Forge Cloud runtime metadata for ${e.environmentId}. The VM may still be starting.`))},HS())});return Promise.race([t,r]).finally(()=>{n!==null&&globalThis.clearTimeout(n)})}function WS(e){let t=e.toLowerCase();return t.includes(`authentication`)||t.includes(`unauthorized`)||t.includes(`forbidden`)||t.includes(`credential`)||t.includes(`runtime ticket`)||t.includes(`status 401`)||t.includes(`status 403`)}var GS=`forge:cloud-runtime-handoffs:v2`,KS=3e5,qS=new Map,JS={clear:()=>qS.clear(),getItem:e=>qS.get(e)??null,key:e=>Array.from(qS.keys())[e]??null,get length(){return qS.size},removeItem:e=>qS.delete(e),setItem:(e,t)=>qS.set(e,t)};function YS(){return typeof window<`u`?window.localStorage:globalThis.localStorage??JS}var XS=wa()(Wf(e=>({byRuntimeId:{},record:t=>e(e=>({byRuntimeId:{...e.byRuntimeId,[t.runtimeId]:t}})),clearRuntime:t=>e(e=>t in e.byRuntimeId?{byRuntimeId:Object.fromEntries(Object.entries(e.byRuntimeId).filter(([e])=>e!==t))}:e),reconcileCatalog:(t,n=Date.now())=>e(e=>{let r=Object.entries(e.byRuntimeId).filter(([,e])=>{if(n-e.recordedAt>KS)return!1;let r=t.find(t=>t.cmmdOrganizationId===e.cmmdOrganizationId&&t.cmmdProjectId===e.cmmdProjectId);return r?.runtimeId===e.previousCatalogRuntimeId&&r.registeredAt===e.catalogRegisteredAt});return r.length===Object.keys(e.byRuntimeId).length?e:{byRuntimeId:Object.fromEntries(r)}}),reset:()=>e({byRuntimeId:{}})}),{name:GS,storage:Hf(YS),partialize:e=>({byRuntimeId:e.byRuntimeId}),version:2}));function ZS(e){XS.getState().record({...e,recordedAt:Date.now()})}function QS(e){XS.getState().clearRuntime(e)}var $S=new Set([`filesystem`,`terminal`,`git`,`project-write`]);function eC(e){return e===`desktop-local`}function tC(e){return e===`cloud`||e===`cloud-vm`||e===`cmmd`||e===`github`}function nC(e){return e.actionKind===`cloud-api`?{available:!0,route:`cloud`,requiresPermissionGate:!1,title:`Cloud API route`,description:`Cloud and Command work routes through authenticated Forge Cloud APIs.`}:$S.has(e.actionKind)?tC(e.workSource)?e.workSource===`cloud-vm`&&e.executionRuntime===`cloud`?{available:!0,route:`cloud-vm`,requiresPermissionGate:!1,title:`Cloud VM route`,description:`Filesystem, terminal, git, and project writes run inside the user's Forge Cloud VM.`}:e.executionRuntime===`cloud`?{available:!0,route:`cloud`,requiresPermissionGate:!1,title:`Cloud work route`,description:`Cloud-scoped filesystem, terminal, git, and project writes run in the Forge Cloud runtime.`}:{available:!1,route:`blocked`,requiresPermissionGate:!1,title:`Open in Forge Cloud`,description:`Cloud projects must execute inside the Forge Cloud runtime. Local Desktop cannot run cloud project filesystem, terminal, git, or project-write actions.`}:eC(e.workSource)?e.surface===`desktop-local`||e.executionRuntime===`desktop-local`?{available:!0,route:`desktop-local`,requiresPermissionGate:!1,title:`Desktop local route`,description:`Local filesystem, terminal, git, and project writes run through the Desktop local backend.`}:e.executionRuntime===`dev-local-web`?{available:!0,route:`dev-local-web`,requiresPermissionGate:!1,title:`Dev local route`,description:`Local Web is a development-only projection and routes local actions through the dev server.`}:{available:!1,route:`blocked`,requiresPermissionGate:!1,title:`Switch to Desktop Local`,description:`Local projects must execute in the Desktop Local runtime. Forge Cloud cannot run local filesystem, terminal, git, or project-write actions.`}:{available:!1,route:`blocked`,requiresPermissionGate:!1,title:`Unknown work source`,description:`Forge cannot safely route local actions for this work source yet.`}:{available:!1,route:`blocked`,requiresPermissionGate:!1,title:`Unsupported route`,description:`Forge does not have a runtime route for this action yet.`}}var rC=`Ready to use. Your cloud project starts when you open the first thread.`;function iC(e){let t=nC({actionKind:`project-write`,surface:`cloud-official`,workSource:`cloud-vm`,executionRuntime:`cloud`});return{actionAuthority:`runtime`,surface:`cloud-official`,hostKind:`user-cloud-vm`,workSource:`cloud-vm`,executionRuntime:`cloud`,modelRuntime:`cloud`,linkState:`cloud-only`,workspaceIdentity:null,hideLocalPath:!0,label:`Cloud project`,description:e?`This project runs in your Forge Cloud VM.`:rC,actionRouteLabel:t.title,actionRouteDescription:t.description,actionRouteAvailable:t.available,requiresPermissionGate:t.requiresPermissionGate}}var aC=3e5;function oC(e,t,n=Date.now()){let r=new Map,i=new Map;for(let t of e){let e={cmmdOrganizationId:t.cmmdOrganizationId,cmmdProjectId:t.cmmdProjectId};r.set(lC(e),e),t.runtimeId!==null&&i.set(t.runtimeId,e)}for(let a of t){if(n-a.recordedAt>aC)continue;let t=r.get(lC({cmmdOrganizationId:a.cmmdOrganizationId,cmmdProjectId:a.cmmdProjectId})),o=e.find(e=>e.cmmdOrganizationId===a.cmmdOrganizationId&&e.cmmdProjectId===a.cmmdProjectId);t&&o?.runtimeId===a.previousCatalogRuntimeId&&o.registeredAt===a.catalogRegisteredAt&&!i.has(a.runtimeId)&&i.set(a.runtimeId,t)}return i}function sC(e){return e.environmentId??`cmmd-cloud-project:${e.cmmdOrganizationId}:${e.cmmdProjectId}`}function cC(e){return{environmentId:sC(e),workspaceRoot:e.workspaceRoot,resolvedRef:e.resolvedRef}}function lC(e){return`cloud:${e.cmmdOrganizationId}:${e.cmmdProjectId}`}function uC(e){let t=/^cloud:(\d+):(\d+)$/.exec(e??``);return t?{cmmdOrganizationId:Number(t[1]),cmmdProjectId:Number(t[2])}:null}function dC(e){return`cloud-runtime:${e}`}var fC=`cloud-unconnected:`;function pC(e,t,n=[]){let r=lC(e);return mC({id:xi.make(`${fC}${r}`),environmentId:Hr.make(sC(e)),name:e.projectName,cwd:``,repositoryIdentity:null,availability:void 0,defaultModelSelection:null,createdAt:void 0,updatedAt:void 0,scripts:[],projectKey:r,environmentPresence:`remote-only`,source:iC(e.runtimeId!==null),memberProjectRefs:t?[t]:[],remoteEnvironmentLabels:[],worktreeMembers:[],activeWorktreeKey:null,preConnectCloud:{runtimeId:e.runtimeId,cmmdOrganizationId:e.cmmdOrganizationId,cmmdProjectId:e.cmmdProjectId,cmmdEnvironmentId:e.cmmdEnvironmentId,registeredAt:e.registeredAt,projectName:e.projectName,githubRepoFullName:e.githubRepoFullName,workspaceRoot:e.workspaceRoot,iconUrl:e.iconUrl,icon:e.icon,status:e.status,removal:e.removal},cloudRemoval:e.removal},n)}function mC(e,t){if(t.length===0)return e;let n=[...e.memberProjectRefs],r=new Set(n.map(e=>`${e.environmentId}:${e.projectId}`));for(let e of t){let t=`${e.environmentId}:${e.projectId}`;r.has(t)||(r.add(t),n.push(e))}return n.length===e.memberProjectRefs.length?e:{...e,memberProjectRefs:n}}function hC(e,t,n,r){if(!e)return null;let i=t.find(t=>t.cmmdEnvironmentId===String(e));if(i)return{row:i,runtimeId:i.runtimeId,matchedByHandoff:!1};let a=vr(e).legacyRuntimeId;if(a){let e=t.find(e=>e.runtimeId===a);if(e)return{row:e,runtimeId:a,matchedByHandoff:!1};let i=oC(t,n,r).get(a);if(!i)return null;let o=t.find(e=>e.cmmdOrganizationId===i.cmmdOrganizationId&&e.cmmdProjectId===i.cmmdProjectId);return o?{row:o,runtimeId:a,matchedByHandoff:!0}:null}let o=t.find(t=>t.runtimeId===null&&sC(t)===String(e));return o?{row:o,runtimeId:null,matchedByHandoff:!1}:null}function gC(e,t=e.runtimeId){return{runtimeId:t,cmmdOrganizationId:e.cmmdOrganizationId,cmmdProjectId:e.cmmdProjectId,cmmdEnvironmentId:e.cmmdEnvironmentId,registeredAt:e.registeredAt,projectName:e.projectName,githubRepoFullName:e.githubRepoFullName,workspaceRoot:e.workspaceRoot,iconUrl:e.iconUrl,icon:e.icon,status:e.status,desiredState:e.desiredState}}function _C(e){return e.desiredState===`stopped`}var vC=15e3;function yC(e){return e===401||e===403}function bC(e){return typeof e!=`object`||!e?!1:e.retryable===!0}function xC(e){return yC(e.status)||e.attempt>=e.maxAttempts||e.status>=200&&e.status<300?!1:e.status>=500||e.status===409&&bC(e.body)}function SC(e,t){let n=e?.trim();if(!n)return null;if(/^-?\d+$/.test(n))return Number(n)*1e3;let r=Date.parse(n);return Number.isNaN(r)?null:r-t}function CC(e){let t=e=>Math.min(vC,Math.max(0,e)),n=SC(e.retryAfter,e.nowMs??Date.now());return t(n===null?300*2**Math.max(0,e.attempt-1):n)}var wC=6e4;function TC(e,t){if(!e||typeof e!=`object`)return t;let n=e.error;return typeof n==`string`&&n.trim().length>0?n:t}var EC=`CMMD returned an invalid Cloud runtime connection descriptor.`;function DC(e,t){let n=e[t];if(typeof n!=`string`||n.length===0)throw Error(EC);return n}function OC(e){if(!e||typeof e!=`object`)throw Error(EC);let t=e;return{httpBaseUrl:DC(t,`httpBaseUrl`),wsBaseUrl:DC(t,`wsBaseUrl`),bearerToken:DC(t,`bearerToken`),expiresAt:DC(t,`expiresAt`)}}async function kC(e){let t=Ji(`/api/cmmd/forge-runtimes/${encodeURIComponent(e.runtimeId)}/connect`),n=ta({method:`POST`,...e.signal?{signal:e.signal}:{},headers:{"Content-Type":`application/json`},body:JSON.stringify(e.organizationId===void 0?{}:{organizationId:e.organizationId})});for(let r=1;r<=8;r+=1){let i=await fetch(t,n),a=await i.json().catch(()=>null);if(i.ok)return OC(a);if(!xC({status:i.status,body:a,attempt:r,maxAttempts:8})){let e=NS(i.status,a)?`CMMD authentication expired while renewing the Cloud runtime connection. Sign in again.`:`CMMD could not renew the Cloud runtime connection (${i.status}).`;throw Object.assign(Error(TC(a,e)),{status:i.status,...MS(a)?{code:MS(a)}:{}})}await sl(CC({attempt:r,retryAfter:i.headers.get(`retry-after`)}),e.signal)}throw Error(`Cloud runtime connection retry budget was exhausted.`)}function AC(e,t){if(!e?.expiresAt)return!0;let n=Date.parse(e.expiresAt);return!Number.isFinite(n)||n<=t+wC}function jC(e){let t=e.requestDescriptor??kC,n=e.now??Date.now,r=e.initialDescriptor??null,i=null,a=!1,o=new AbortController,s=e=>ol(e,o.signal),c=()=>i||(i=s(t({runtimeId:e.runtimeId,...e.organizationId===void 0?{}:{organizationId:e.organizationId},signal:o.signal})).then(async t=>(await s(Promise.resolve(e.validateDescriptor?.(t))),await s(Promise.resolve(e.persistDescriptor?.(t))),await s(Promise.resolve()),r=t,a=!1,t)).then(e=>(i=null,e),e=>{throw i=null,e}),i);return{acquire:e=>{if(o.signal.aborted)return s(Promise.resolve(r));let t=e?.forceRefresh||a||AC(r,n())?c():Promise.resolve(r);return ol(s(t),e?.signal)},invalidate:()=>{a=!0},dispose:()=>{o.abort()}}}function MC(e){let t=e.runtimeId?.trim();if(t)return t;let n=vr(e.environmentId).legacyRuntimeId;if(n)return n;let r=ur().rows,i=Object.values(XS.getState().byRuntimeId);return hC(e.environmentId,r,i)?.runtimeId??null}function NC(e,t,n,r){let i=e,a=jC({runtimeId:t,...e.cmmdOrganizationId===void 0?{}:{organizationId:e.cmmdOrganizationId},...n===void 0?{}:{initialDescriptor:{httpBaseUrl:e.httpBaseUrl,wsBaseUrl:e.wsBaseUrl,bearerToken:n,expiresAt:e.runtimeTicketExpiresAt??null}},validateDescriptor:async e=>{await Fl({httpBaseUrl:e.httpBaseUrl,bearerToken:e.bearerToken})},persistDescriptor:async e=>{if(r&&!r())throw Error(`Saved environment changed while its connection was being acquired.`);let t={...ul(i),httpBaseUrl:e.httpBaseUrl,wsBaseUrl:Jr(e.wsBaseUrl),...e.expiresAt===null?{}:{runtimeTicketExpiresAt:e.expiresAt},lastConnectedAt:new Date().toISOString()};await Gn(t),await mr(t.environmentId),ir.getState().upsert(t),i=t}});return xl(e.environmentId,a),a}function PC(e){let t={wsBaseUrl:e.record.wsBaseUrl,httpBaseUrl:e.record.httpBaseUrl,bearerToken:e.bearerToken,expiresAt:e.record.runtimeTicketExpiresAt??null};return{acquire:()=>Promise.resolve(t)}}var FC=12e4,IC=3e4,LC=3e4;function RC(e){let t=e.expiresAt?Date.parse(e.expiresAt):NaN;if(!Number.isFinite(t))throw Error(`Cloud runtime authority descriptor has no valid expiry.`);return t}function zC(e){if(!e||typeof e!=`object`)return!1;let t=e.status;return t===401||t===403}function BC(e){let t=e.now??Date.now,n=e.renewalSkewMs??FC,r=!1,i=null,a=null,o=RC(e.initialDescriptor),s=()=>{i!==null&&(globalThis.clearTimeout(i),i=null)},c=a=>{if(r)return;s();let c=RC(a);o=c;let l=Math.max(t(),c-n);e.onState?.({kind:`scheduled`,expiresAt:new Date(c).toISOString(),renewAt:new Date(l).toISOString()}),i=globalThis.setTimeout(()=>{i=null,u().catch(()=>void 0)},Math.max(0,l-t()))},l=()=>{if(r)return null;let e=t()+LC;return e>=o?null:(i=globalThis.setTimeout(()=>{i=null,u().catch(()=>void 0)},LC),new Date(e).toISOString())},u=()=>{if(r)return Promise.resolve();if(a)return a;s(),e.onState?.({kind:`renewing`,expiresAt:new Date(o).toISOString()});let n=e.renew().then(async n=>{let i=RC(n);if(i<=t())throw Error(`Cloud runtime authority descriptor is already expired.`);r||(e.onState?.({kind:`ready`,expiresAt:new Date(i).toISOString(),renewedAt:new Date(t()).toISOString()}),c(n))}).catch(t=>{if(r)return;let n=zC(t);throw e.onState?.({kind:`error`,code:n?`authority_auth_rejected`:`authority_renewal_failed`,retryAt:n?null:l()}),t}).finally(()=>{a=null});return a=n,n};return c(e.initialDescriptor),{ensureLive:()=>o>t()+IC?Promise.resolve():u(),renewNow:u,dispose:()=>{r=!0,s()}}}function VC(){return new Date().toISOString()}function HC(e,t,n,r,i){return n()&&j.getState().ensure(e.environmentId),af(new ld(async()=>{let e=e=>Rl({wsBaseUrl:e.wsBaseUrl,httpBaseUrl:e.httpBaseUrl,bearerToken:e.bearerToken,...r?{runtimeTicket:e.bearerToken}:{}}),n=await t.acquire();try{return await e(n)}catch(n){if(!r||!Rn(n))throw n;return e(await t.acquire({forceRefresh:!0}))}},{trackGlobalConnection:!1,onAttempt:()=>{n()&&i.setConnecting(e.environmentId)},onOpen:()=>{n()&&i.setConnected(e.environmentId)},onError:i=>{r&&WS(i)&&t.invalidate?.(),n()&&j.getState().patch(e.environmentId,{connectionState:`error`,lastError:i,lastErrorAt:VC()})},onClose:a=>{r&&(a.code===1008||WS(a.reason))&&t.invalidate?.(),n()&&i.setDisconnected(e.environmentId,a.reason)}}))}async function UC(e,t,n,r,i,a,o){let s=await bl(t,o),[c,l]=await Promise.all([a?Promise.resolve(a):n.server.getConfig(),Fl({httpBaseUrl:s.httpBaseUrl,bearerToken:s.bearerToken,...o?{signal:o}:{}})]);return r()?(j.getState().patch(e.environmentId,{authState:l.authenticated?`authenticated`:`requires-auth`,descriptor:c.environment,serverConfig:c,role:l.authenticated?l.role??i??null:null}),WC(e,c,l.authenticated,r),!0):!1}function WC(e,t,n,r){if(!n||!r())return;let i=er(e.environmentId);i&&ir.getState().upsert({...i,lastAuthenticatedPullRequestCapability:t.environment.capabilities?.pullRequests===!0})}async function GC(e,t,n,r){let i=n.findConnection(e.environmentId);if(i)return i;let a=r?.registryExpectation??{kind:`existing-record`,record:e},o=()=>n.canCommit({record:e,generation:t,registryExpectation:a}),{isCmmdRuntime:s,targetProvider:c,initialTarget:l}=await KC(e,r,o);if(!o())throw qC(e.environmentId,c,s),Error(`Saved environment changed while its connection was being acquired.`);let u=r?.client??HC(e,c,o,s,n),d=YC({record:e,initialTarget:l,targetProvider:c,isCmmdRuntime:s,client:u,canCommit:o,dependencies:n});try{if(!await n.withMetadataTimeout(e,UC(e,c,u,o,r?.role??null,r?.serverConfig??null,r?.signal))||!o())throw Error(`Saved environment changed while its connection was being acquired.`);return n.registerConnection(d)}catch(t){throw s&&Cl(e.environmentId,c),o()&&n.setError(e.environmentId,t),await d.dispose().catch(()=>void 0),t}}async function KC(e,t,n){let r=dl(e)?MC(e):null,i=r!==null,a=await JC(e,t,i,n),o=i?NC(e,r,a??void 0,n):PC({record:e,bearerToken:a});try{return{isCmmdRuntime:i,targetProvider:o,initialTarget:await bl(o,t?.signal)}}catch(t){throw qC(e.environmentId,o,i),t}}function qC(e,t,n){n&&Cl(e,t)}async function JC(e,t,n,r){if(n)return t?.bearerToken;let i=t?.bearerToken??await nr(e.environmentId);if(i)return i;throw r()&&j.getState().patch(e.environmentId,{authState:`requires-auth`,role:null,connectionState:`disconnected`,lastError:`Saved environment is missing its saved credential. Pair it again.`,lastErrorAt:VC()}),Error(`Saved environment is missing its saved credential.`)}function YC(e){let{record:t,initialTarget:n,targetProvider:r,isCmmdRuntime:i,client:a,canCommit:o,dependencies:s}=e,c=xn({id:t.environmentId,label:t.label,source:`manual`,target:{httpBaseUrl:n.httpBaseUrl,wsBaseUrl:n.wsBaseUrl}}),l=i&&n.expiresAt?BC({initialDescriptor:{...n,expiresAt:n.expiresAt},renew:async()=>{let e=await r.acquire({forceRefresh:!0});return{...e,expiresAt:e.expiresAt??null}},onState:e=>{o()&&j.getState().patch(t.environmentId,{providerAuthority:e})}}):null;return ql({kind:`saved`,knownEnvironment:{...c,environmentId:t.environmentId},client:a,readiness:{bearerToken:n.bearerToken},tolerateReportedEnvironmentIdentity:i,refreshMetadata:async()=>{await UC(t,r,a,o)},...l?{ensureProviderAuthority:l.ensureLive,onDispose:l.dispose}:{},onConfigSnapshot:e=>{o()&&j.getState().patch(t.environmentId,{descriptor:e.environment,serverConfig:e})},...s.createHandlers(e=>{o()&&j.getState().patch(t.environmentId,{descriptor:e.environment})})})}var XC=class{readRecord;hasSameTarget;generations=new Map;acquisitions=new Map;constructor(e,t){this.readRecord=e,this.hasSameTarget=t}invalidate(e){this.generations.set(e,this.readGeneration(e)+1)}generationFor(e){return this.readGeneration(e)}isCurrent(e){if(this.readGeneration(e.record.environmentId)!==e.generation)return!1;let t=this.readRecord(e.record.environmentId);return e.registryExpectation.kind===`initial-add`?t===null||this.hasSameTarget(t,e.record):t!==null&&this.hasSameTarget(t,e.registryExpectation.record)}ensure(e,t){let n=this.readGeneration(e.environmentId),r=this.acquisitions.get(e.environmentId);if(r&&r.generation===n&&this.hasSameTarget(r.record,e))return r.promise;let i=t(e,n).finally(()=>{this.acquisitions.get(e.environmentId)?.promise===i&&this.acquisitions.delete(e.environmentId)});return this.acquisitions.set(e.environmentId,{generation:n,record:e,promise:i}),i}async sync(e){await rr(e.records);let t=new Map(e.records.map(e=>[e.environmentId,e]));for(let[e,n]of this.acquisitions){let r=t.get(e);(!r||!this.hasSameTarget(r,n.record))&&this.invalidate(e)}let n=new Set(t.keys());await Promise.all(e.connectedSavedEnvironmentIds.filter(e=>!n.has(e)).map(async t=>{this.invalidate(t),await e.disconnect(t)}))}clear(){this.generations.clear(),this.acquisitions.clear()}readGeneration(e){return this.generations.get(e)??0}};async function ZC(e,t,n){if(!dl(e))return n.ensureSavedEnvironmentConnection(e,t);let r=n.getGeneration(e.environmentId),i=()=>n.registry.isCurrent({record:e,generation:r,registryExpectation:t?.registryExpectation??{kind:`existing-record`,record:e}}),a=null;for(let r=0;r<8;r+=1){al(t?.signal);try{let r=await n.ensureSavedEnvironmentConnection(e,t);return await ol(r.ensureBootstrapped(),t?.signal),r}catch(o){a=o,await QC({error:o,attemptIndex:r,record:e,options:t,dependencies:n,canCommit:i})}}let o=a instanceof Error?a:Error(String(a));throw i()&&n.setRuntimeError(e.environmentId,o),o}async function QC(e){let{error:t,attemptIndex:n,record:r,options:i,dependencies:a,canCommit:o}=e;if(!o())throw t;if(await a.removeConnection(r.environmentId).catch(()=>!1),al(i?.signal),n>=7||!BS(t))throw o()&&a.setRuntimeError(r.environmentId,t),t;let s=VS(n);i?.onBootstrapRetry?.({attempt:n+2,maxAttempts:8,retryDelayMs:s,error:t}),o()&&j.getState().patch(r.environmentId,{connectionState:`connecting`,lastError:null,lastErrorAt:null}),await sl(s,i?.signal)}var $C=new Map,ew=new XC(e=>er(e),fl),tw=new Set,nw=Al({createPrimaryEnvironmentConnection:sw,syncSavedEnvironmentConnections:lw});function rw(){nw.notifyProviderInvalidation()}function iw(){for(let e of tw)e()}function aw(e){let t=$C.get(e.environmentId);if(t&&t!==e)throw Error(`Environment ${e.environmentId} already has an active connection.`);return $C.set(e.environmentId,e),iw(),e}async function ow(e){let t=$C.get(e);return t?($C.delete(e),Cl(e),ox(e),iw(),await t.dispose(),!0):!1}function sw(){return zx({readConnection:dw,registerConnection:aw})}async function cw(e,t){return $C.get(e.environmentId)||ew.ensure(e,(e,n)=>GC(e,n,{findConnection:e=>$C.get(e),registerConnection:aw,canCommit:ew.isCurrent.bind(ew),createHandlers:jx,withMetadataTimeout:US,setConnecting:Nx,setConnected:Px,setDisconnected:Ix,setError:Lx},t))}async function lw(e){await ew.sync({records:e,connectedSavedEnvironmentIds:[...$C.values()].filter(e=>e.kind===`saved`).map(e=>e.environmentId),disconnect:_w})}function uw(e){return tw.add(e),()=>{tw.delete(e)}}function dw(e){return $C.get(e)??null}function fw(e){return AS(e,{readConnection:dw,registerConnection:aw})}function pw(e){let t=dw(e);if(!t)throw Error(`No websocket client registered for environment ${e}.`);return t}function mw(){return sw()}async function hw(){return Bx({readConnection:dw,registerConnection:aw})}function gw(){return{readConnection:dw,removeConnection:ow,ensureSavedEnvironmentConnection:cw,ensureCmmdRuntimeSavedEnvironmentConnection:Sw,invalidate:e=>ew.invalidate(e),retireEnvironmentId:ax}}async function _w(e){await Kx(e,gw())}async function vw(e){await qx(e,gw())}async function yw(){return Wx({readConnection:dw,ensureCmmdRuntimeSavedEnvironmentConnection:Sw})}async function bw(e){await Jx(e,gw())}async function xw(e){return Yx(e,gw())}async function Sw(e,t){return ZC(e,t,{ensureSavedEnvironmentConnection:cw,getGeneration:e=>ew.generationFor(e),registry:ew,removeConnection:ow,setRuntimeError:Lx})}async function Cw(e){await $C.get(e)?.ensureBootstrapped()}async function ww(e){let t=$C.get(e);if(t?.ensureProviderAuthority){await t.ensureProviderAuthority();return}if(Sl(e))throw Error(`Cloud runtime provider authority is not available.`)}function Tw(e){return nw.start(e)}zb({applyEvent:Ox,readConnection:dw,subscribeConnections:uw}),Cy({notifyProviderInvalidation:rw,readQueryClient:()=>nw.readActiveService()?.queryClient??null,setRuntimeError:Lx});function Ew(e){return{environmentId:e.environmentId,threadId:e.threadId}}function Dw(e){return{draftId:e}}function Ow(e){return!e.environmentId||!e.threadId?null:C(e.environmentId,e.threadId)}function kw(e){return e.environmentId&&e.threadId?{kind:`server`,threadRef:C(e.environmentId,e.threadId)}:e.draftId?{kind:`draft`,draftId:e.draftId}:null}function Aw(e){let t=(0,A.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=Ca(`relative overflow-hidden rounded-sm bg-muted [--skeleton-highlight:--alpha(var(--color-white)/64%)] after:absolute after:inset-0 after:animate-skeleton after:bg-[linear-gradient(120deg,transparent_40%,var(--skeleton-highlight),transparent_60%)] motion-reduce:after:content-none dark:[--skeleton-highlight:--alpha(var(--color-white)/4%)]`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,k.jsx)(`div`,{className:i,"data-slot":`skeleton`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function jw(e,t){if(!De(e)||!De(t))return t;let n={...e};for(let[e,r]of Object.entries(t)){if(r===void 0)continue;let t=n[e];n[e]=De(t)&&De(r)?jw(t,r):r}return n}function Mw(e,t){return un(t).pipe(ln,sn(e))}function Nw(e){return{issues:e.issues,providers:e.providers,settings:e.settings}}var Pw=[],Fw=[],Iw=[],Lw=e=>e?.availableEditors??Pw,Rw=e=>e?.keybindings??Fw,zw=e=>e?.keybindingsConfigPath??null,Bw=e=>e?.observability??null,Vw=e=>e?.providers??Iw,Hw=e=>e?.settings??Li,Uw=Mw(`server-welcome`,null),Ww=Mw(`server-config`,null),Gw=Mw(`server-config-updated`,null),Kw=Mw(`server-providers-updated`,null);function qw(){return cn.get(Ww)}function Jw(){return cn.get(Gw)}function Yw(e){iT(e),aT({providers:e.providers}),oT(Nw(e),`snapshot`)}function Xw(e){switch(e.type){case`snapshot`:Yw(e.config);return;case`keybindingsUpdated`:{let t=qw();if(!t)return;let n={...t,issues:e.payload.issues,keybindings:e.payload.keybindings};iT(n),oT(Nw(n),e.type);return}case`providerStatuses`:Zw(e.payload);return;case`settingsUpdated`:Qw(e.payload.settings);return;case`environmentUpdated`:$w(e.payload.environment);return}}function Zw(e){let t=qw();if(aT(e),!t)return;let n={...t,providers:e.providers};iT(n),oT(Nw(n),`providerStatuses`)}function Qw(e){let t=qw();if(!t)return;let n={...t,settings:e};iT(n),oT(Nw(n),`settingsUpdated`)}function $w(e){let t=qw();if(yr()?.environmentId===e.environmentId&&vn(e),!t)return;let n={...t,environment:e};iT(n),oT(Nw(n),`environmentUpdated`)}function eT(e){cn.set(Uw,e)}function tT(e){return sT(Gw,t=>{e(t.payload,t.source)})}function nT(e){let t=!1,n=[e.subscribeLifecycle(e=>{e.type===`welcome`&&eT(e.payload)}),e.subscribeConfig(e=>{Xw(e)})];return qw()===null&&e.getConfig().then(e=>{t||qw()!==null||Yw(e)}).catch(()=>void 0),()=>{t=!0;for(let e of n)e()}}var rT=1;function iT(e){cn.set(Ww,e)}function aT(e){cn.set(Kw,e)}function oT(e,t){cn.set(Gw,{id:rT++,payload:e,source:t})}function sT(e,t){return cn.subscribe(e,e=>{e!==null&&t(e)},{immediate:!0})}function cT(e,t){let n=(0,O.useRef)(t);n.current=t;let r=(0,O.useCallback)(e=>{e!==null&&n.current(e)},[]);_a(e,r,{immediate:!0})}function lT(){return ma(Ww)}function uT(){return ma(Ww,Hw)}function dT(){return ma(Ww,Vw)}function fT(){return ma(Ww,Rw)}function pT(){return ma(Ww,Lw)}function mT(){return ma(Ww,zw)}function hT(){return ma(Ww,Bw)}function gT(e){cT(Uw,e)}function _T(){return ma(Uw)}function vT(e){cT(Gw,e)}var yT=`[CLIENT_SETTINGS]`,bT=new Set,xT=li,ST=!1,CT=null,wT=`pending`;function TT(e){wT!==e&&(wT=e,ET())}function ET(){for(let e of bT)e()}function DT(){return xT}function OT(e){xT=e,ET()}function kT(e){return bT.add(e),AT(),()=>{bT.delete(e)}}async function AT(){if(ST)return;if(CT)return CT;let e=(async()=>{try{let e=await tr();e&&OT(e),ST=!0,TT(`ready`)}catch(e){console.error(`${yT} hydrate failed`,e),TT(`failed`)}})().finally(()=>{CT===e&&(CT=null)});return CT=e,CT}var jT=new Set(ei(Ii.fields));function MT(e){let t={},n={};for(let[r,i]of Object.entries(e))jT.has(r)?t[r]=i:n[r]=i;return{serverPatch:t,clientPatch:n}}function NT(){return AT()}var PT=Promise.resolve();function FT(e){let t=PT.then(async()=>{if(await NT(),RT()!==`ready`)throw Error(`${yT} hydration failed; refusing to persist settings.`);return e()});return PT=t.then(()=>void 0,()=>void 0),t}function IT(e){return FT(async()=>{let t=e(DT());await or(t),OT(t)})}function LT(){return(0,O.useSyncExternalStore)(kT,RT,RT)}function RT(){return wT}function zT(){return(0,O.useSyncExternalStore)(kT,VT,BT)}function BT(){return!1}function VT(){return ST}function HT(){let e=zT(),t=I(UT);return e&&t}function UT(e){return e.legacySidebarEnabled}function I(e){let t=uT(),n=(0,O.useSyncExternalStore)(kT,DT,()=>li),r=(0,O.useMemo)(()=>({...t,...n}),[n,t]);return(0,O.useMemo)(()=>e?e(r):r,[r,e])}function WT(){let e=(0,A.c)(2),t=GT,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=()=>{t(Tr)},e[0]=n):n=e[0];let r=n,i;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i={updateSettings:t,resetSettings:r},e[1]=i):i=e[1],i}function GT(e){let{serverPatch:t,clientPatch:n}=MT(e);if(Object.keys(t).length>0){let e=qw();e&&Qw(jw(e.settings,t)),mw().client.server.updateSettings(t)}Object.keys(n).length>0&&FT(async()=>{let e={...DT(),...n};OT(e),await or(e).catch(qT)}).catch(KT)}function KT(e){console.error(`${yT} persist failed`,e)}function qT(e){console.error(`${yT} persist failed`,e)}function JT(e){return t=>e?pn(t,e.environmentId).projectById[e.projectId]:void 0}function YT(e){let t,n,r;return i=>{let a=e(i);if(!a)return;let o=pn(i,a.environmentId);return r&&t===o&&n===a.threadId?r:(t=o,n=a.threadId,r=Pn(o,a.threadId),r)}}function XT(e){return YT(()=>e)}function ZT(e){return t=>{if(e)return pn(t,e.environmentId).threadSubscriptionErrorById[e.threadId]}}function QT(e){let t,n,r,i;return a=>{if(!e){i=void 0,t=void 0,n=void 0,r=void 0;return}let o=pn(a,e.environmentId).threadShellById,s=o[e.threadId];if(!s){i=void 0,t=void 0,n=void 0,r=void 0;return}let c=s.kind===`master`?s.id:s.parentThreadId,l=c==null?void 0:o[c];if(i&&t===o&&n===s&&r===l)return i;let u=[];if(c!=null){for(let e of Object.values(o))e.kind===`worker`&&e.parentThreadId===c&&u.push(e);u.sort((e,t)=>e.createdAt.localeCompare(t.createdAt))}return t=o,n=s,r=l,i={you:s,master:l,workers:u},i}}function $T(e,t){let n=new Set(e.filter(e=>e.bootstrapped).map(e=>String(e.ref.environmentId))),r=e.filter(e=>{let r=t?.(e.ref.environmentId)??null;return r===null||!n.has(r)}),i=r.filter(e=>e.bootstrapped);return(i.find(e=>e.active)??i.at(-1)??r.find(e=>e.active)??r[0])?.ref}function eE(e,t){return YT(n=>{if(e)return $T(Object.entries(n.environmentStateById).filter(([,t])=>t.threadShellById[e]).map(([t,r])=>({ref:{environmentId:t,threadId:e},active:n.activeEnvironmentId===t,bootstrapped:r.bootstrapComplete})),t)})}var tE,nE=[];function rE(e){return tE===e.environmentStateById&&nE!==void 0?nE:(tE=e.environmentStateById,nE=Object.values(e.environmentStateById).flatMap(e=>Object.values(e.sidebarThreadSummaryById)),nE)}function iE(e){let t=e.payload&&typeof e.payload==`object`?e.payload:null,n=t?.plan;if(!Array.isArray(n))return null;let r=[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=e;if(typeof t.step!=`string`)continue;let n=t.status===`completed`||t.status===`inProgress`?t.status:`pending`;r.push({step:t.step,status:n})}return r.length===0?null:{createdAt:e.createdAt,turnId:e.turnId,...t&&`explanation`in t?{explanation:t.explanation}:{},steps:r}}function aE(e){let t=new Map;return e.map(e=>{let n=t.get(e.step)??0;return t.set(e.step,n+1),{key:`${e.step}:${n}`,step:e}})}function oE(e,t){let n=new Map,r;for(let e of t){let t=iE(e),i=Date.parse(e.createdAt);if(!(!t||Number.isNaN(i))){r??=i;for(let{key:e,step:r}of aE(t.steps)){let t=n.get(e)??{};r.status===`inProgress`&&t.startedAt===void 0&&(t.startedAt=i),r.status===`completed`&&t.completedAt===void 0&&(t.completedAt=i),n.set(e,t)}}}let i=new Map,a=r;for(let[e,t]of[...n.entries()].toSorted((e,t)=>(e[1].completedAt??1/0)-(t[1].completedAt??1/0))){let n=t.completedAt,r=t.startedAt??a;n!==void 0&&(r!==void 0&&n>r&&i.set(e,n-r),a=n)}return{...e,steps:aE(e.steps).map(({key:e,step:t})=>{if(t.status!==`completed`)return t;let n=i.get(e);return n===void 0?t:Object.assign({},t,{durationMs:n})})}}function sE(e){let t=lE(e?.data),n=lE(t?.item),r=lE(n?.result),i=lE(n?.input),a=uE(e?.itemType),o=uE(e?.detail),s=[e?.command,n?.command,i?.command,r?.command,t?.command,a===`command_execution`&&o?cE(o).output:null];for(let e of s){let t=bE(e);if(t)return{command:t,rawCommand:xE(e,t)}}return{command:null,rawCommand:null}}function cE(e){let t=e.trim(),n=/^(?<output>[\s\S]*?)(?:\s*<exited with exit code (?<code>\d+)>)\s*$/i.exec(t);if(!n?.groups)return{output:t.length>0?t:null};let r=Number.parseInt(n.groups.code??``,10),i=n.groups.output?.trim()??``;return{output:i.length>0?i:null,...Number.isInteger(r)?{exitCode:r}:{}}}function lE(e){return e&&typeof e==`object`?e:null}function uE(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function dE(e){let t=e.trim();if(t.startsWith(`'`)&&t.endsWith(`'`)||t.startsWith(`"`)&&t.endsWith(`"`)){let e=t.slice(1,-1).trim();return e.length>0?e:t}return t}function fE(e){let t=dE(e);if(t.length===0)return null;let n=t.replace(/\\/g,`/`).split(`/`).at(-1)?.trim()??``;return n.length>0?n.toLowerCase():null}function pE(e){let t=e.trim();if(t.length===0)return null;if(t.startsWith(`"`)||t.startsWith(`'`)){let e=t.charAt(0),n=t.indexOf(e,1);return n<=0?null:{executable:t.slice(0,n+1),rest:t.slice(n+1).trim()}}let n=t.search(/\s/);return n<0?{executable:t,rest:``}:{executable:t.slice(0,n),rest:t.slice(n).trim()}}var mE=[{executables:[`pwsh`,`pwsh.exe`,`powershell`,`powershell.exe`],wrapperFlagPattern:/(?:^|\s)-command\s+/i},{executables:[`cmd`,`cmd.exe`],wrapperFlagPattern:/(?:^|\s)\/c\s+/i},{executables:[`bash`,`sh`,`zsh`],wrapperFlagPattern:/(?:^|\s)-(?:l)?c\s+/i}];function hE(e){return mE.find(t=>t.executables.includes(e))}function gE(e,t){let n=t.exec(e);if(!n)return null;let r=e.slice(n.index+n[0].length).trim();if(r.length===0)return null;let i=r[0];if((i===`'`||i===`"`)&&!r.endsWith(i))return null;let a=dE(r);return a.length>0?a:null}function _E(e){let t=pE(e);if(!t||t.rest.length===0)return e;let n=fE(t.executable);if(!n)return e;let r=hE(n);return r?gE(t.rest,r.wrapperFlagPattern)??e:e}function vE(e){return/[\s"'`]/.test(e)?`"${e.replace(/"/g,`\\"`)}"`:e}function yE(e){let t=uE(e);if(t)return t;if(!Array.isArray(e))return null;let n=[];for(let t of e){let e=uE(t);e!==null&&n.push(e)}return n.length===0?null:n.map(e=>vE(e)).join(` `)}function bE(e){let t=yE(e);return t?_E(t):null}function xE(e,t){let n=yE(e);return!n||t===null||n===t?null:n}function SE(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function CE(e){return typeof e==`string`&&e.trim().length>0?e:null}function wE(e){let t=CE(e);if(t)return t;let n=Array.isArray(e)?e:null,r=SE(e)?.content,i=CE(r);if(i)return i;let a=n??(Array.isArray(r)?r:null);if(!a)return null;let o=a.flatMap(e=>{let t=CE(e)??CE(SE(e)?.text);return t?[t]:[]});return o.length>0?o.join(`
|
|
17
17
|
`):null}function TE(e){let t=SE(e),n=SE(t?.item),r=SE(n?.result),i=SE(t?.rawOutput),a=[CE(i?.stdout),CE(i?.stderr)].filter(e=>e!==null),o=Array.isArray(t?.content)?t.content.flatMap(e=>{let t=SE(e),n=SE(t?.content),r=t?.type===`content`?CE(n?.text):null;return r?[r]:[]}).join(`
|
|
18
18
|
`):null,s=[n?.aggregatedOutput,r?.content,t?.rawOutput,i?.content,a.length>0?a.join(`
|
|
19
19
|
`):null,i?.output,o,t?.result];for(let e of s){let t=wE(e);if(t)return t}return null}function EE(e,t){let n=e.endsWith(`...`)?e.slice(0,-3):e.endsWith(`…`)?e.slice(0,-1):null;return t.some(t=>{let r=t?.trim();return r?r===e||n!==null&&n.length>0&&r.length>n.length&&r.startsWith(n):!1})}function DE(e){let t=CE(e.toolName)?.trim(),n=e.detail.trim(),r=[e.command,e.rawCommand];if(t){let e=`${t}:`;if(n.toLowerCase().startsWith(e.toLowerCase())&&EE(n.slice(e.length).trim(),r))return!0}if(!EE(n,r))return!1;let i=SE(e.data),a=SE(i?.item),o=SE(a?.input),s=SE(a?.result);return![a?.command,o?.command,s?.command,i?.command].some(e=>Array.isArray(e)?e.some(e=>CE(e)!==null):CE(e)!==null)||a!==null||i?.toolCallId!==void 0||CE(i?.kind)?.toLowerCase()===`execute`}function OE(e){return e.kind===`runtime.warning`&&e.summary.endsWith(`(no displayable text content)`)}function kE(e,t){let n=HE(e?.message);return n&&NE(n)!==NE(t)?n:null}function AE(e){if(typeof e?.itemType==`string`&&Gr(e.itemType))return e.itemType}function jE(e){return e.replace(/\s+/g,` `).trim()}function ME(e,t=84){return e.length<=t?e:`${e.slice(0,t-1).trimEnd()}…`}function NE(e){let t=HE(e);return t?BE(jE(t)).toLowerCase():null}function PE(e){let t=[];for(let n of e.split(/\r?\n/u)){let e=jE(n);e.length>0&&t.push(e)}let n=t.find(e=>e!=="```");return n?ME(n):t.length>1?`${t.length.toLocaleString()} lines`:null}function FE(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function IE(e){let t=VE(VE(e?.data)?.rawOutput);if(!t)return null;let n=FE(t.totalFiles);if(n!==null){let e=t.truncated===!0?`+`:``;return`${n.toLocaleString()} file${n===1?``:`s`}${e}`}let r=HE(t.content);if(r)return PE(r);let i=HE(t.stdout);return i?PE(i):null}function LE(e){let t=TE(e?.data);return t?cE(t).output:null}function RE(e,t){let n=HE(VE(e?.data)?.kind)?.toLowerCase(),r=HE(e?.title??t)?.toLowerCase();return AE(e)===`command_execution`||n===`execute`||r===`terminal`||r===`ran command`}function zE(e,t){let n=HE(e?.detail),r=n?cE(n).output:null,i=NE(t),a=NE(r),o=RE(e,t),s=o?sE(e):{command:null,rawCommand:null},c=s.command;if(o&&c){let t=LE(e);if(t)return t}let l=VE(e?.data),u=r!==null&&DE({detail:r,command:c,rawCommand:s.rawCommand,toolName:l?.toolName,data:l});if(r&&i!==a&&(!o||!u))return r;if(o)return null;let d=IE(e);return d&&NE(d)!==i?d:null}function BE(e){return e.replace(/\s+(?:complete|completed)\s*$/i,``).trim()}function VE(e){return e&&typeof e==`object`?e:null}function HE(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function UE(e){return e&&typeof e==`object`?e:null}function WE(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function GE(e){return KE(e)??WE(e?.title)}function KE(e){if(!e)return null;let t=UE(e.data),n=UE(t?.item),r=UE(n?.input)??UE(t?.input),i=WE(e.title),a=WE(e.itemType),o=WE(n?.name)??WE(n?.toolName)??WE(t?.name)??WE(e.toolName)??i,s=WE(e.detail),c=[o,i,a,s].filter(Boolean).join(` `).toLowerCase();if(!c.includes(`browser`)&&!c.includes(`forge-browser`))return null;switch(qE(o,r,s)){case`open-session`:return`Opened browser session`;case`name-session`:return`Named browser session`;case`new-tab`:return JE(r)??`Opened browser tab`;case`navigate`:return JE(r)??`Navigated browser`;case`reload`:return`Reloaded page`;case`back`:return`Went back`;case`forward`:return`Went forward`;case`screenshot`:return`Captured screenshot`;case`snapshot`:return`Read DOM snapshot`;case`logs`:return`Read console logs`;case`click`:return`Clicked page`;case`type`:return`Typed text`;case`scroll`:return`Scrolled page`;case`viewport`:return`Updated viewport`;case`visibility`:return`Updated browser visibility`;default:return null}}function qE(e,t,n){let r=[WE(t?.type)??WE(t?.command),e,n].filter(Boolean).join(` `).toLowerCase();return/\b(open[-_.\s]?session|create[-_.\s]?session|session[-_.\s]?open)\b/.test(r)?`open-session`:/\b(name[-_.\s]?session|session[-_.\s]?name)\b/.test(r)?`name-session`:/\b(new[-_.\s]?tab|create[-_.\s]?tab|open[-_.\s]?tab)\b/.test(r)?`new-tab`:/\b(navigate|goto|go[-_.\s]?to)\b/.test(r)?`navigate`:/\breload\b/.test(r)?`reload`:/\b(go[-_.\s]?back|back)\b/.test(r)?`back`:/\b(go[-_.\s]?forward|forward)\b/.test(r)?`forward`:/\b(screenshot|capture)\b/.test(r)?`screenshot`:/\b(snapshot|dom[-_.\s]?snapshot|read[-_.\s]?dom)\b/.test(r)?`snapshot`:/\b(console[-_.\s]?logs?|logs?)\b/.test(r)?`logs`:/\bclick\b/.test(r)?`click`:/\btype|fill\b/.test(r)?`type`:/\bscroll\b/.test(r)?`scroll`:/\bviewport\b/.test(r)?`viewport`:/\bvisibility|visible|hidden\b/.test(r)?`visibility`:null}function JE(e){let t=WE(e?.url)??WE(e?.initialUrl);if(!t)return null;try{let e=new URL(t);return e.hostname.length===0?null:`Navigated to ${e.hostname}`}catch{return null}}function YE(e){return e&&typeof e==`object`?e:null}function L(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function XE(e){for(let t of QE(e)){if(t.userActionRequired!==`confirm_github_tool`)continue;let e=YE(t.confirmation),n=YE(e?.request),r=L(e?.confirmationId),i=L(e?.toolName),a=L(e?.operation);if(!(!r||!i||!a||!n))return{confirmationId:r,toolName:i,operation:a,request:n}}return null}function ZE(e){let t=QE(e)[0];if(!t)return null;let n=L(t.userActionRequired);return!n||n===`confirm_github_tool`?null:{action:n,toolName:L(t.toolName),message:L(t.error)??L(t.message)}}function QE(e){if(!e)return[];let t=[],n=new Set,r=(e,i)=>{if(i>8||e==null)return;if(typeof e==`string`){let n=L(e);if(!n)return;let r=$E(n);r&&L(r.userActionRequired)&&t.push(r);return}if(typeof e!=`object`||n.has(e))return;if(n.add(e),Array.isArray(e)){for(let t of e)r(t,i+1);return}let a=e;if(L(a.userActionRequired)){t.push(a);return}for(let e of Object.values(a))r(e,i+1)};return r(e,0),t}function $E(e){try{return YE(JSON.parse(e))}catch{return null}}function eD(e){switch(e){case`create_repository`:return`Create GitHub repository`;case`link_project_repository`:return`Link project repository`;case`push_branch`:return`Push Git branch`;case`create_pull_request`:return`Create pull request`;case`rerun_workflow`:return`Rerun GitHub Actions workflow`;default:return e.split(`_`).filter(Boolean).map(e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(` `)}}function tD(e){return[L(e.request.repoFullName)??(L(e.request.owner)&&L(e.request.name)?`${L(e.request.owner)}/${L(e.request.name)}`:null),L(e.request.cwd),L(e.request.branch),L(e.request.title)].filter(Boolean).join(` - `)}function nD(e){switch(e){case`connect_github`:return`Connect GitHub to continue`;case`connect_cmmd`:return`Forge couldn't authorize this action`;case`start_from_authenticated_forge_session`:return`Open this thread in Forge`;case`link_project_repository`:return`Link this project to GitHub`;case`create_branch`:return`Create a branch before pushing`;case`retry_in_user_vm`:return`Retry in the project VM`;default:return e.split(`_`).filter(Boolean).map(e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(` `)}}function rD(e){switch(e){case`connect_github`:return`Connect GitHub so agents can create repos, push branches, and open PRs.`;case`connect_cmmd`:return`Reconnect Forge, then retry. Your conversation is preserved.`;case`start_from_authenticated_forge_session`:return`Open it in Forge so this action uses your signed-in account.`;case`link_project_repository`:return`Link a GitHub repo to this project before pushing or opening PRs.`;case`create_branch`:return`Forge needs a branch before it can push to GitHub.`;case`retry_in_user_vm`:return`This has to run from the project's cloud VM.`;default:return`Finish the required setup, then retry.`}}function iD(e){return e.action===`connect_cmmd`?rD(e.action):e.message??rD(e.action)}function aD(e,t){return e.action===t.action&&e.toolName===t.toolName&&e.message===t.message}function oD(e){switch(e){case`connect_cmmd`:return`Reconnect Forge`;case`connect_github`:return`Connect GitHub`;default:return`Open Git settings`}}function sD(e){return[`The required Forge GitHub setup has been completed by the user.`,e.toolName?`Retry the previous GitHub tool request for \`${e.toolName}\`.`:`Retry the previous GitHub tool request.`,`Continue the previous GitHub lifecycle request using Forge brokered GitHub tools only.`,"Do not use shell `gh` or direct GitHub CLI commands."].join(`
|
|
20
20
|
`)}function R(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}var cD={};function lD(e){return typeof e==`string`&&e.trim().length>0}function uD(e){let t=R(e);if(!t||!lD(t.requestId)||!R(t.answers)||!R(t.attachmentsByQuestionId))return!1;let n=R(t.questionTextById);if(t.questionTextById!==void 0&&!n)return!1;if(n){for(let e of Object.values(n))if(typeof e!=`string`)return!1}for(let e of Object.values(t.attachmentsByQuestionId)){if(!Array.isArray(e))return!1;for(let t of e){let e=R(t);if(!e||!lD(e.id)||!lD(e.name))return!1}}return!0}function dD(e,t){if(typeof e==`string`)return t.get(e)??e;if(Array.isArray(e))return e.map(e=>dD(e,t));let n=R(e);return n&&`answers`in n?{...n,answers:dD(n.answers,t)}:e}function fD(e,t){let n=t.map(e=>typeof e==`string`?e.trim():``);return n.length>0&&n.every(Boolean)?JSON.stringify([e,n.sort()]):void 0}function pD(e){return e&&typeof e==`object`?e:null}function mD(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function hD(e,t){let n=pD(e.item),r=e.toolName??e.tool??n?.tool??t;if(typeof r!=`string`)return{};let i=r.split(/__|[./]/).at(-1)?.replace(/[_\s]/g,``).toLowerCase();if(!i||!/^(askuserquestion|requestuserinput(?:async)?|askquestion|question)$/.test(i))return{};let a=pD(e.input??e.rawInput??pD(e.state)?.input??n?.arguments),o=a?.questions??pD(a?.params)?.questions;return Array.isArray(o)?{input:{questions:o.map(e=>{let t=pD(e);return{question:mD(t?.question??t?.question_text??t?.prompt??t?.title)}})}}:{}}function gD(e){let t=new Set;for(let n of e){if(n.kind!==`user-input.answer-submitted`||!n.turnId)continue;let e=R(n.payload),r=Object.values(R(e?.questionTextById)??cD),i=fD(n.turnId,r);i&&t.add(i)}if(t.size===0)return e;let n=new Set;for(let r of e){if(!r.kind.startsWith(`tool.`)||!r.turnId)continue;let e=R(r.payload);if(typeof e?.toolCallId!=`string`)continue;let i=hD(R(e.data)??{},e.title).input;if(!i)continue;let a=fD(r.turnId,i.questions.map(e=>e.question));a&&t.has(a)&&n.add(JSON.stringify([r.turnId,e.toolCallId]))}return e.filter(e=>{let t=R(e.payload),r=t?.toolCallId;return e.tone===`error`||/^(failed|declined|stopped|cancelled)$/.test(String(t?.status))||!e.kind.startsWith(`tool.`)||typeof r!=`string`||!n.has(JSON.stringify([e.turnId,r]))})}function _D(e){let t=new Map;for(let n of e){if(n.kind!==`user-input.requested`&&n.kind!==`user-input.resolved`&&n.kind!==`user-input.answer-submitted`)continue;let e=R(n.payload)?.requestId;if(typeof e!=`string`||!e)continue;let r=t.get(e)??[];r.push(n),t.set(e,r)}let n=new Map;for(let[e,r]of t){let t=r.map(e=>R(e.payload)),i=new Map,a=new Map;for(let e of t){for(let[t,n]of Object.entries(R(e.questionTextById)??cD))a.set(t,n);for(let t of Array.isArray(e.questions)?e.questions:[]){let e=R(t);typeof e?.id==`string`&&(i.set(e.id,e),typeof e.question==`string`&&a.set(e.id,e.question))}}let o=Object.fromEntries(a),s=R(R(r.findLast(e=>e.kind===`user-input.answer-submitted`&&R(R(e.payload)?.answers))?.payload)?.answers)??t.map(e=>R(e.answers)).findLast(Boolean)??{},c=Object.fromEntries(Object.entries(s).map(([e,t])=>{let n=i.get(e)?.options,r=new Map;for(let e of Array.isArray(n)?n:[]){let t=R(e);typeof t?.label==`string`&&(typeof t.value==`string`&&r.set(t.value,t.label),r.set(t.label,t.label))}return[e,dD(t,r)]})),l=Object.fromEntries(t.flatMap(e=>Object.entries(R(e.attachmentsByQuestionId)??cD))),u={requestId:e,questionTextById:o,answers:c,attachmentsByQuestionId:l};if(!uD(u))continue;let d=Object.keys(c).length>0||Object.keys(l).length>0;for(let e of r)n.set(e,null);n.set(r[0],{...r[0],kind:`user-input.answer-submitted`,tone:`tool`,summary:d?`User input submitted`:r.some(e=>e.kind===`user-input.resolved`)?`User input dismissed`:`User input requested`,payload:u})}return gD(e.flatMap(e=>{let t=n.get(e);return t===null?[]:[t??e]}))}function vD(e){if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(vD).filter(Boolean).join(`, `);let t=R(e);return t?vD(t.answers):``}function yD(e){let t=Object.values(e.answers).map(vD).filter(Boolean),n=Object.values(e.attachmentsByQuestionId).flat().map(e=>e.name);return(t.length>0?t.join(` · `):n.length>0?n.join(`, `):Object.values(e.questionTextById??{}).join(` · `)).replace(/\s+/g,` `).trim()}function bD(e){return Object.values(e.answers).some(vD)||Object.values(e.attachmentsByQuestionId).some(e=>e.length>0)}function xD(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function SD(e,t){if(typeof e!=`string`)return;let n=e.trim();return n&&n.length<=t?n:void 0}function CD(e){let t=SD(e,4096);if(t)try{let e=new URL(t);return e.protocol===`http:`||e.protocol===`https:`||e.protocol===`data:`?e.href:void 0}catch{return}}function wD(e){let t=SD(e,4096);if(t)try{let e=new URL(t);return e.protocol===`http:`||e.protocol===`https:`?e.href:void 0}catch{return}}function TD(e){let t=xD(e),n=SD(t?.appId,512);if(t?._tag===`app-id`&&n&&/^[A-Za-z0-9._-]+$/u.test(n))return{_tag:`app-id`,appId:n};let r=SD(t?.displayName,160);if(t?._tag===`display-name`&&r)return{_tag:`display-name`,displayName:r}}function ED(e){let t=xD(e);if(t?._tag===`website`){let e=wD(t.pageUrl),n=CD(t.faviconUrl),r=CD(t.faviconUrlDark);if(e)return{_tag:`website`,pageUrl:e,...n?{faviconUrl:n}:{},...r?{faviconUrlDark:r}:{}}}if(t?._tag===`native-app`){let e=TD(t.app);if(e)return{_tag:`native-app`,app:e}}if(t?._tag===`themed-logo`){let e=CD(t.logoUrl),n=CD(t.logoUrlDark);if(e)return{_tag:`themed-logo`,logoUrl:e,...n?{logoUrlDark:n}:{}}}}function DD(e){let t=xD(e),n=SD(t?.key,512),r=SD(t?.name,160),i=t?.kind;if(!n||!r||i!==`browser`&&i!==`computer`&&i!==`integration`)return;let a=ED(t?.icon);return{key:n,name:r,kind:i,...a?{icon:a}:{}}}function OD(e){let t=xD(e),n=t?.toolSurface===`browser`||t?.toolSurface===`computer`?t.toolSurface:void 0,r=ED(t?.toolIcon),i=DD(t?.toolSource);return{...n?{toolSurface:n}:{},...r?{toolIcon:r}:{},...i?{toolSource:i}:{}}}function kD(e,t,n){return e===t||e.endsWith(`.${t}`)?!0:n!==void 0&&e.split(`.`).includes(n)}function AD(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`&&t.protocol!==`http:`)return null;let n=t.hostname.toLowerCase();if(kD(n,`github.com`,`github`)){let e=/^\/([^/]+\/[^/]+)\/pull\/(\d+)(?:\/|$)/u.exec(t.pathname);if(e)return jD(n,e)}let r=/^\/([^/]+(?:\/[^/]+)+)\/pulls\/(\d+)(?:\/|$)/u.exec(t.pathname);if(r){let e=jD(n,r);return e===null?null:{...e,authority:t.host.toLowerCase()}}let i=/^\/([^/]+(?:\/[^/]+)+)\/-\/merge_requests\/(\d+)(?:\/|$)/u.exec(t.pathname);return i?jD(n,i):kD(n,`bitbucket.org`,`bitbucket`)?jD(n,/^\/([^/]+\/[^/]+)\/pull-requests\/(\d+)(?:\/|$)/u.exec(t.pathname)):kD(n,`dev.azure.com`)||n.endsWith(`.visualstudio.com`)?jD(n,/^\/((?:[^/]+\/)*_git\/[^/]+)\/pullrequest\/(\d+)(?:\/|$)/u.exec(t.pathname)):null}function jD(e,t){let n=t?.[1],r=Number(t?.[2]);return n&&Number.isSafeInteger(r)&&r>0?{host:e,repository:n.toLowerCase(),number:r}:null}function MD(e){return e.replace(/\s+(?:complete|completed)\s*$/i,``).trim()}var ND={link_pull_request:[`Link`,`Linking`,`Linked`,`a pull request`],unlink_pull_request:[`Unlink`,`Unlinking`,`Unlinked`,`a pull request`],list_thread_pull_requests:[`Check`,`Checking`,`Checked`,`linked pull requests`],orchestrator_capabilities:[`Get`,`Getting`,`Got`,`orchestration capabilities`],delegate_task:[`Delegate`,`Delegating`,`Delegated`,`a child task`],task_status:[`Get`,`Getting`,`Got`,`delegated task status`],task_cancel:[`Cancel`,`Canceling`,`Canceled`,`delegated task`],schedule_task:[`Schedule`,`Scheduling`,`Scheduled`,`a recurring task`],list_scheduled_tasks:[`List`,`Listing`,`Listed`,`scheduled tasks`],update_scheduled_task:[`Update`,`Updating`,`Updated`,`a scheduled task`],delete_scheduled_task:[`Delete`,`Deleting`,`Deleted`,`a scheduled task`],create_threads:[`Create`,`Creating`,`Created`,`T3 threads`],t3_thread_start:[`Start`,`Starting`,`Started`,`a T3 thread`],t3_thread_list:[`List`,`Listing`,`Listed`,`T3 threads`],t3_thread_read:[`Read`,`Reading`,`Read`,`a T3 thread`],t3_thread_send:[`Send`,`Sending`,`Sent`,`to a T3 thread`],t3_thread_wait:[`Wait`,`Waiting`,`Waited`,`for a T3 thread`],t3_thread_interrupt:[`Interrupt`,`Interrupting`,`Interrupted`,`a T3 thread`],t3_worktree_handoff:[`Hand off`,`Handing off`,`Handed off`,`thread to a git worktree`],t3_worktree_status:[`Get`,`Getting`,`Got`,`thread worktree status`],preview_status:[`Get`,`Getting`,`Got`,`preview browser status`],preview_open:[`Open`,`Opening`,`Opened`,`a page in the preview browser`],preview_navigate:[`Navigate`,`Navigating`,`Navigated`,`the preview browser`],preview_snapshot:[`Take a snapshot of`,`Taking a snapshot of`,`Took a snapshot of`,`the preview page`],preview_click:[`Click`,`Clicking`,`Clicked`,`in the preview browser`],preview_press:[`Press`,`Pressing`,`Pressed`,`a key in the preview browser`],preview_type:[`Type`,`Typing`,`Typed`,`in the preview browser`],preview_scroll:[`Scroll`,`Scrolling`,`Scrolled`,`the preview browser`],preview_resize:[`Resize`,`Resizing`,`Resized`,`the preview browser`],preview_evaluate:[`Evaluate`,`Evaluating`,`Evaluated`,`script in the preview browser`],preview_wait_for:[`Wait`,`Waiting`,`Waited`,`for the preview page`],preview_set_appearance:[`Set`,`Setting`,`Set`,`preview browser appearance`],preview_recording_start:[`Start`,`Starting`,`Started`,`recording the preview browser`],preview_recording_stop:[`Stop`,`Stopping`,`Stopped`,`recording the preview browser`],device_list:[`List`,`Listing`,`Listed`,`simulators and emulators`],device_open:[`Open`,`Opening`,`Opened`,`a device in the Device panel`],device_screenshot:[`Take a screenshot of`,`Taking a screenshot of`,`Took a screenshot of`,`the device`],device_close:[`Close`,`Closing`,`Closed`,`a device`]},PD={link_pull_request:`link-pr`,unlink_pull_request:`unlink-pr`,list_thread_pull_requests:`list-prs`};function FD(e,t,n){if(!e)return null;let r=MD(e).replace(/^(?:mcp__(?:t3-code|t3_code|t3code)__|(?:t3-code|t3_code|t3code)(?:[.:/]|\s*·\s*))/i,``);if(!Object.hasOwn(ND,r))return null;let[i,a,o,s]=ND[r],c=t===`inProgress`?a:t===`completed`?o:t===`failed`?`Failed to ${i.toLowerCase()}`:t===`declined`?`Declined to ${i.toLowerCase()}`:t===`stopped`?`Stopped ${a.toLowerCase()}`:a,l=Object.hasOwn(PD,r)?PD[r]:void 0,u=RD(n),d=RD(u?.arguments)??RD(u?.input)??RD(u?.rawInput),f=(typeof d?.url==`string`?AD(d.url):null)?.number??d?.number;return{displayName:`${c} ${l!==void 0&&l!==`list-prs`&&typeof f==`number`&&Number.isSafeInteger(f)&&f>0?`PR #${f}`:s}`,icon:l===void 0?r.startsWith(`preview_`)?`browser`:r.startsWith(`device_`)?`device`:`t3-code`:`pull-request`,...l===void 0?{}:{action:l}}}function ID(e,t){return e===`failed`||e===`declined`||e===`stopped`?e:t||e===`inProgress`?`inProgress`:`completed`}function LD(e,t){let n=e.toolLifecycleStatus??t,r=e.toolData;if(typeof r==`object`&&r){if(`server`in r&&typeof r.server==`string`&&`tool`in r&&typeof r.tool==`string`)return FD(`${r.server}.${r.tool}`,n,r);if(`toolName`in r&&typeof r.toolName==`string`)return FD(r.toolName,n,r)}return FD(e.toolTitle,n,r)??FD(e.label,n,r)}function RD(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function zD(e){let t=RD(e);switch(t?.status){case`pending`:case`running`:case`waiting`:return`inProgress`;case`cancelled`:case`interrupted`:return`stopped`;case`idle`:return t.taskType===`subagent_batch`?`stopped`:void 0;case`inProgress`:case`completed`:case`failed`:case`declined`:case`stopped`:return t.status;default:return}}function BD(e){return e.tone===`tool`||e.tone===`thinking`||e.tone===`error`||e.command!==void 0&&e.command.trim().length>0||e.requestKind!==void 0||e.itemType!==void 0&&Gr(e.itemType)}function VD(e){let t=e.toLowerCase();return t.includes(`file not found`)||t.includes(`no files found`)||t.includes(`enoent`)||t.includes(`no such file or directory`)||t.includes(`no such file`)||t.includes(`commandnotfoundexception`)||t.includes(`command not found`)||t.includes(`cannot find path`)&&t.includes(`because it does not exist`)||t.includes(`is not recognized`)&&t.includes(`the term '`)||t.includes(`is not recognized as the name of a cmdlet`)||t.includes(`a parameter cannot be found that matches parameter name`)||/<exited with exit code\s+[1-9]\d*\s*>/i.test(e)||/exit(?:ed)? with exit code\s+[1-9]\d*/i.test(e)||/exit code\s*[:\s]\s*[1-9]\d*\b/i.test(e)}function HD(e,t){if(e.tone===`error`||e.toolLifecycleStatus===`failed`||e.toolLifecycleStatus===`declined`)return!0;if(!BD(e))return!1;let n=t?[e.detail,e.command].filter(Boolean).join(`
|
|
21
|
-
`):e.detail??``;return n.length>0&&VD(n)}function UD(e){return HD(e,!0)}function WD(e){return HD(e,!1)}function GD(e){return BD(e)&&!UD(e)&&e.tone!==`thinking`&&e.toolLifecycleStatus!==`inProgress`&&e.toolLifecycleStatus!==`stopped`}function KD(e){let t=e.taskId??``,n=t.indexOf(`:wf:`);return n===-1?e.agentSpawn?.workflowId?`wf:${e.agentSpawn.workflowId}`:e.isWorkflowCoordinator?`wf:${t}`:e.turnId?`direct:${e.turnId}`:`direct:task:${t}`:`wf:${t.slice(0,n)}`}function qD(e){if(e.sourceActivityKind===`tool.updated`||e.sourceActivityKind===`tool.completed`)return e.toolCallId?`tool:${e.turnId??`no-turn`}:${e.toolCallId}`:void 0}function JD(e){let t=[],n=new Map,r=new Map,i=new Map;for(let a of e){if(a.taskId!==void 0&&!a.isBackgroundTask&&(a.sourceActivityKind===`task.started`||a.sourceActivityKind===`task.progress`||a.sourceActivityKind===`task.completed`)&&a.taskId!==void 0){let e=r.get(a.taskId),i=e??KD(a);e===void 0&&r.set(a.taskId,i);let o=i.startsWith(`wf:`)?i.slice(3):null,s=n.get(i);if(s!==void 0){let e=t[s],n=e.agentSpawn?.agentTaskIds.includes(a.taskId)?e.agentSpawn.agentTaskIds:[...e.agentSpawn?.agentTaskIds??[],a.taskId];t[s]={...XD(e,a),id:e.id,createdAt:e.createdAt,turnId:e.turnId??null,...e.taskId===void 0?{}:{taskId:e.taskId},label:e.label,agentSpawn:{workflowId:o,agentTaskIds:n}};continue}n.set(i,t.length),t.push({...a,agentSpawn:{workflowId:o,agentTaskIds:[a.taskId]}});continue}let e=qD(a);if(e!==void 0){let n=i.get(e),r=n===void 0?void 0:t[n];if(n!==void 0&&r&&YD(r,a)){t[n]=XD(r,a);continue}i.delete(e)}let o=t.at(-1);if(o&&YD(o,a)){let e=t.length-1,n=qD(o);n!==void 0&&i.delete(n);let r=XD(o,a);t[e]=r;let s=qD(r);s!==void 0&&i.set(s,e);continue}t.push(a),e!==void 0&&i.set(e,t.length-1)}return t}function YD(e,t){return e.sourceActivityKind!==`tool.updated`&&e.sourceActivityKind!==`tool.completed`||t.sourceActivityKind!==`tool.updated`&&t.sourceActivityKind!==`tool.completed`||e.turnId!==t.turnId||e.sourceActivityKind===`tool.completed`?!1:e.collapseKey!==void 0&&e.collapseKey===t.collapseKey||e.toolCallId!==void 0&&t.toolCallId===void 0&&e.itemType===t.itemType&&MD(e.toolTitle??e.label)===MD(t.toolTitle??t.label)}function XD(e,t){let n=ZD(e.changedFiles,t.changedFiles),r=t.detail??e.detail,i=t.viewedImagePath??e.viewedImagePath,a=t.command??e.command,o=t.rawCommand??e.rawCommand,s=t.toolTitle??e.toolTitle,c=t.toolSurface??e.toolSurface,l=t.toolIcon??e.toolIcon,u=t.toolSource??e.toolSource,d=t.itemType??e.itemType,f=t.requestKind??e.requestKind,p=t.collapseKey??e.collapseKey,m=t.toolCallId??e.toolCallId,h=t.toolLifecycleStatus??e.toolLifecycleStatus,g=t.toolData??e.toolData;return{...e,...t,...r?{detail:r}:{},...i?{viewedImagePath:i}:{},...a?{command:a}:{},...o?{rawCommand:o}:{},...n.length>0?{changedFiles:n}:{},...s?{toolTitle:s}:{},...c?{toolSurface:c}:{},...l?{toolIcon:l}:{},...u?{toolSource:u}:{},...d?{itemType:d}:{},...f?{requestKind:f}:{},...p?{collapseKey:p}:{},...m?{toolCallId:m}:{},...h===void 0?{}:{toolLifecycleStatus:h},...g===void 0?{}:{toolData:g}}}function ZD(e,t){let n=[...e??[],...t??[]];return n.length===0?[]:[...new Set(n)]}function QD(e){if(e.taskId&&(e.sourceActivityKind===`task.progress`||e.sourceActivityKind===`task.completed`))return`task${e.taskId}`;if(e.sourceActivityKind!==`tool.updated`&&e.sourceActivityKind!==`tool.completed`)return;if(e.toolCallId)return`tool:${e.turnId??`no-turn`}:${e.toolCallId}`;let t=MD(e.toolTitle??e.label),n=e.detail?.trim()??``,r=e.itemType??``;if(t.length!==0||n.length!==0||r.length!==0)return[r,t,n].join(``)}function $D(e){let t=aO(e?.data);return oO(e?.toolCallId)??oO(t?.toolCallId)}function eO(e){switch(e){case`command_execution_approval`:case`exec_command_approval`:return`command`;case`file_read_approval`:return`file-read`;case`file_change_approval`:case`apply_patch_approval`:return`file-change`;default:return null}}function tO(e){return e?.requestKind===`command`||e?.requestKind===`file-read`||e?.requestKind===`file-change`?e.requestKind:eO(e?.requestType)??void 0}function nO(e,t,n){let r=oO(n);!r||t.has(r)||(t.add(r),e.push(r))}function rO(e,t,n,r){if(r>4||t.length>=12)return;if(Array.isArray(e)){for(let i of e)if(rO(i,t,n,r+1),t.length>=12)return;return}let i=aO(e);if(i){nO(t,n,i.path),nO(t,n,i.filePath),nO(t,n,i.relativePath),nO(t,n,i.filename),nO(t,n,i.newPath),nO(t,n,i.oldPath);for(let e of[`item`,`result`,`input`,`data`,`changes`,`files`,`edits`,`patch`,`patches`,`operations`])if(e in i&&(rO(i[e],t,n,r+1),t.length>=12))return}}function iO(e){let t=[],n=new Set;return rO(aO(e?.data),t,n,0),t}function aO(e){return e&&typeof e==`object`?e:null}function oO(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}var sO=new WeakMap;function cO(e){return!(e.agentSpawn!==void 0||!BD(e)||UD(e)||GD(e))}function lO(e){let t=sO.get(e);if(t)return t;let n=e.payload&&typeof e.payload==`object`?e.payload:null,r=sE(n),i=iO(n),a=GE(n),o=OD(n),s=e.kind===`task.progress`||e.kind===`task.completed`,c=s&&typeof n?.summary==`string`&&n.summary.length>0?n.summary:null,l=s&&!c&&typeof n?.detail==`string`&&n.detail.length>0?n.detail:null,u=c||l,d=s?!l&&n&&typeof n.detail==`string`&&n.detail.length>0?cE(n.detail).output:null:zE(n,a??e.summary),f=s?null:$D(n),p={id:e.id,createdAt:e.createdAt,turnId:e.turnId,label:u||e.summary,tone:e.kind===`task.progress`?`thinking`:e.tone,sourceActivityKind:e.kind};if(e.kind===`user-input.answer-submitted`){let e=n&&uD(n)?n:null;e&&(p.questionAnswer={requestId:e.requestId,questionTextById:e.questionTextById,answers:e.answers,attachmentsByQuestionId:e.attachmentsByQuestionId})}let m=AE(n),h=tO(n),g=oO(aO(n?.data)?.imagePath);if(d)p.detail=d;else if(e.kind===`runtime.error`||e.kind===`runtime.warning`){let t=kE(n,e.summary);t&&(p.detail=t)}if(g&&(p.viewedImagePath=g),r.command&&(p.command=r.command),r.rawCommand&&(p.rawCommand=r.rawCommand),i.length>0&&(p.changedFiles=i),a&&(p.toolTitle=a),o.toolSurface&&(p.toolSurface=o.toolSurface),o.toolIcon&&(p.toolIcon=o.toolIcon),o.toolSource&&(p.toolSource=o.toolSource),m===`mcp_tool_call`){let e=aO(n?.data),t=typeof e?.toolName==`string`?e.item??e:e?.item;t!==void 0&&(p.toolData=t)}m&&(p.itemType=m),h&&(p.requestKind=h),f&&(p.toolCallId=f);let _=zD(n);!_&&e.kind===`tool.completed`&&(_=`completed`),_&&(p.toolLifecycleStatus=_);let v=e.kind===`task.started`||e.kind===`task.progress`||e.kind===`task.completed`;v&&typeof n?.taskId==`string`&&n.taskId.length>0&&(p.taskId=n.taskId),v&&typeof n?.role==`string`&&n.role.length>0&&(p.agentRole=n.role),v&&(n?.taskType===`local_workflow`||typeof n?.workflowName==`string`&&n.workflowName.length>0)&&(p.isWorkflowCoordinator=!0),v&&n&&n.agentKind!==`agent`&&(p.isBackgroundTask=!0);let y=XE(n);if(y)p.githubConfirmation=y,p.tone=`approval`,p.label=`GitHub action needs approval`,p.toolTitle=eD(y.operation),p.detail=tD(y);else{let e=ZE(n);e&&(p.githubActionRequired=e,p.tone=`approval`,p.label=nD(e.action),p.toolTitle=`GitHub setup required`,p.detail=iD(e))}let b=QD(p);return b&&(p.collapseKey=b),sO.set(e,p),p}var uO=new Set([`tool.started`,`task.started`,`context-window.updated`,`text-generation.usage`,`worktree.stage`,`launch.agent-starting`,`turn.terminal-status`]);function dO(e){return uO.has(e.kind)||e.summary===`Checkpoint captured`}function fO(e,t){return!t.latestTurnId||e.turnId===t.latestTurnId||pO(e)?!0:mO(e,t.latestTurnStartedAt)}function pO(e){return e.kind.startsWith(`worktree.`)||e.kind.startsWith(`setup-script.`)}function mO(e,t){return e.turnId!==null||e.tone!==`error`||t===null?!1:e.createdAt>=t}function hO(e){return e.agentKind===`agent`}function gO(e){let t=e.payload&&typeof e.payload==`object`?e.payload:null;return!t||typeof t.taskId!=`string`?!1:hO(t)}function _O(e){let t=e.payload&&typeof e.payload==`object`?e.payload:null;return t?e.kind===`task.started`||e.kind===`task.progress`||e.kind===`task.updated`||e.kind===`task.completed`?typeof t.agentId==`string`&&t.agentId.trim().length>0||t.timelineBypass===!0?!(e.kind!==`task.updated`&&typeof t.taskId==`string`&&hO(t)):!1:t.timelineBypass===!0||typeof t.agentId==`string`&&t.agentId.trim().length>0:!1}function vO(){if(typeof window>`u`)return!1;try{return window.localStorage.getItem(`forge:debug-mode`)===`true`}catch{return!1}}function yO(e){if(e.kind!==`tool.updated`&&e.kind!==`tool.completed`)return!1;let t=e.payload&&typeof e.payload==`object`?e.payload:null;return typeof t?.detail==`string`&&t.detail.startsWith(`ExitPlanMode:`)}function bO(e,t,n){let r=vO(),i={latestTurnId:t,latestTurnStartedAt:n??null},a=[...e].toSorted(xO),o=new Set;for(let e of a)if((e.kind===`task.started`||e.kind===`task.progress`||e.kind===`task.completed`)&&gO(e)){let t=oO(aO(e.payload)?.toolUseId);t&&o.add(t)}let s=[];for(let e of _D(a)){if(!fO(e,i)||!(e.kind===`task.started`&&gO(e))&&dO(e)||e.kind===`task.started`&&!gO(e)||e.kind===`task.updated`||e.kind===`tool.progress`||e.kind===`turn.plan.updated`||!r&&OE(e)||yO(e)||_O(e))continue;let t=lO(e);if(e.kind===`tool.updated`&&t.itemType===`collab_agent_tool_call`&&t.toolLifecycleStatus===`inProgress`&&t.tone!==`error`){let t=aO(aO(e.payload)?.data)?.toolName;if(t===`Agent`||t===`Task`)continue}(e.kind===`tool.updated`||e.kind===`tool.completed`)&&t.toolCallId&&o.has(t.toolCallId)&&t.tone!==`error`&&t.toolLifecycleStatus!==`failed`||s.push(t)}return JD(s).map(({sourceActivityKind:e,collapseKey:t,isWorkflowCoordinator:n,isBackgroundTask:r,...i})=>i)}function xO(e,t){if(e.sequence!==void 0&&t.sequence!==void 0){if(e.sequence!==t.sequence)return e.sequence-t.sequence}else if(e.sequence!==void 0)return 1;else if(t.sequence!==void 0)return-1;let n=e.createdAt.localeCompare(t.createdAt);if(n!==0)return n;let r=SO(e.kind)-SO(t.kind);return r===0?e.id.localeCompare(t.id):r}function SO(e){return e.endsWith(`.started`)||e===`tool.started`?0:e.endsWith(`.progress`)||e.endsWith(`.updated`)?1:e.endsWith(`.completed`)||e.endsWith(`.resolved`)?2:1}function CO(e){return{id:e.id,kind:`message`,createdAt:e.createdAt,message:e}}function wO(e){return{id:e.id,kind:`proposed-plan`,createdAt:e.createdAt,proposedPlan:e}}function TO(e){return{id:e.id,kind:`work`,createdAt:e.createdAt,entry:e}}function EO(e,t){return e.createdAt.localeCompare(t.createdAt)}function DO(e){switch(e.kind){case`message`:return 0;case`proposed-plan`:return 1;case`work`:return 2}}function OO(e,t){let n=EO(e,t);return n===0?DO(e)<=DO(t):n<0}function kO(e,t){if(e===t)return!0;if(t.length<e.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function AO(e,t){if(t.length===0)return[...e];let n=e.at(-1),r=!0;for(let e=1;e<t.length;e+=1)if(EO(t[e-1],t[e])>0){r=!1;break}if(r&&(n===void 0||OO(n,t[0])))return[...e,...t];let i=[],a=0,o=0;for(;a<e.length||o<t.length;){let n=e[a],r=t[o];n!==void 0&&(r===void 0||OO(n,r))?(i.push(n),a+=1):r!==void 0&&(i.push(r),o+=1)}return i}var jO=e=>e===`assistant`||e===`reasoning`;function MO(e,t){if(!jO(e.role)||e.role!==t.role||!e.streaming||!t.streaming)return!1;let{text:n,updatedAt:r,...i}=e,{text:a,updatedAt:o,...s}=t;return $m(i,s)}function NO(e,t){if(e.length!==t.messages.length)return null;let n=new Map;for(let[r,i]of e.entries()){let e=t.messages[r];if(i!==e){if(!MO(e,i))return null;n.set(e,i)}}return n.size===0?t.entries:t.entries.map(e=>{let t=e.kind===`message`?n.get(e.message):void 0;return t?CO(t):e})}function PO(e,t,n,r=null){if(r!==null&&r.proposedPlans.length===t.length&&r.workEntries.length===n.length&&kO(r.proposedPlans,t)&&kO(r.workEntries,n)){let i=NO(e,r);if(i!==null)return{messages:e,proposedPlans:t,workEntries:n,entries:i}}let i=new Set(n.flatMap(e=>e.questionAnswer?[`async-answer:${e.questionAnswer.requestId}`]:[])),a=e=>e.role!==`user`||!i.has(e.id);if(r!==null&&!r.entries.some(e=>e.kind===`message`&&!a(e.message))&&kO(r.messages,e)&&kO(r.proposedPlans,t)&&kO(r.workEntries,n)){let i=e.slice(r.messages.length).filter(a).map(CO),o=t.slice(r.proposedPlans.length).map(wO),s=n.slice(r.workEntries.length).map(TO),c=[...i,...o,...s].toSorted(EO);return{messages:e,proposedPlans:t,workEntries:n,entries:AO(r.entries,c)}}let o=e.filter(a).map(CO),s=t.map(wO),c=n.map(TO);return{messages:e,proposedPlans:t,workEntries:n,entries:[...o,...s,...c].toSorted(EO)}}var FO=[{value:`codex`,label:`Codex`,available:!0},{value:`claudeAgent`,label:`Claude`,available:!0},{value:`cmmd`,label:`CMMD`,available:!0},{value:`ollama`,label:`Ollama`,available:!1},{value:`cursor`,label:`Cursor`,available:!1}];function IO(e){if(!Number.isFinite(e)||e<0)return`0ms`;if(e<1e3)return`${Math.max(1,Math.round(e))}ms`;if(e<1e4)return`${(e/1e3).toFixed(1)}s`;if(e<6e4)return`${Math.round(e/1e3)}s`;let t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);return n===0?`${t}m`:n===60?`${t+1}m`:`${t}m ${n}s`}function LO(e,t){if(!t)return null;let n=Date.parse(e),r=Date.parse(t);return Number.isNaN(n)||Number.isNaN(r)||r<n?null:IO(r-n)}function RO(e,t){return!e?.startedAt||!e.completedAt?!1:!t||t.orchestrationStatus!==`running`}function zO(e,t,n){let r=t?.orchestrationStatus===`running`?t.activeTurnId??null:null;return r===null?RO(e,t)?n:e?.startedAt??n:e?.turnId===r?e.startedAt??n:n}function BO(e){let t=e?.toLowerCase();return t?t.includes(`stale pending approval request`)||t.includes(`stale pending user-input request`)||t.includes(`unknown pending approval request`)||t.includes(`unknown pending permission request`)||t.includes(`unknown pending user-input request`):!1}function VO(e){let t=new Map,n=[...e].toSorted(xO);for(let e of n){let n=e.payload&&typeof e.payload==`object`?e.payload:null,r=n&&typeof n.requestId==`string`?kr.make(n.requestId):null,i=n&&(n.requestKind===`command`||n.requestKind===`file-read`||n.requestKind===`file-change`)?n.requestKind:n?eO(n.requestType):null,a=n&&typeof n.detail==`string`?n.detail:void 0;if(e.kind===`approval.requested`&&r&&i){t.set(r,{requestId:r,requestKind:i,createdAt:e.createdAt,...a?{detail:a}:{}});continue}if(e.kind===`approval.resolved`&&r){t.delete(r);continue}if(e.kind===`provider.approval.respond.failed`&&r&&BO(a)){t.delete(r);continue}}return[...t.values()].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt))}function HO(e){let t=e?.questions;if(!Array.isArray(t))return null;let n=t.map(e=>{if(!e||typeof e!=`object`)return null;let t=e;if(typeof t.id!=`string`||typeof t.header!=`string`||typeof t.question!=`string`||!Array.isArray(t.options))return null;let n=t.options.map(e=>{if(!e||typeof e!=`object`)return null;let t=e;return typeof t.label!=`string`||typeof t.description!=`string`?null:{label:t.label,description:t.description}}).filter(e=>e!==null);return n.length===0?null:{id:t.id,header:t.header,question:t.question,options:n,multiSelect:t.multiSelect===!0}}).filter(e=>e!==null);return n.length>0?n:null}function UO(e){let t=new Map,n=[...e].toSorted(xO);for(let e of n){let n=e.payload&&typeof e.payload==`object`?e.payload:null,r=n&&typeof n.requestId==`string`?kr.make(n.requestId):null,i=n&&typeof n.detail==`string`?n.detail:void 0;if(e.kind===`user-input.requested`&&r){let i=HO(n);if(!i)continue;t.set(r,{requestId:r,createdAt:e.createdAt,questions:i});continue}if(e.kind===`user-input.resolved`&&r){t.delete(r);continue}e.kind===`provider.user-input.respond.failed`&&r&&BO(i)&&t.delete(r)}return[...t.values()].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt))}function WO(e,t){if(!t)return null;let n=[...e].toSorted(xO),r=null;for(let e of n){let t=ZE(e.payload&&typeof e.payload==`object`?e.payload:null);t&&(r={request:t,turnId:e.turnId})}return!r||r.turnId!==t?null:r.request}function GO(e,t){let n=[...e].toSorted(xO),r=n.filter(e=>e.kind===`turn.plan.updated`),i=(t?r.findLast(e=>e.turnId===t):void 0)??r.at(-1)??null;if(!i)return null;let a=iE(i);if(!a)return null;let o=r.filter(e=>e.turnId===i.turnId),s=o.findLastIndex(e=>iE(e)===null),c=oE(a,o.slice(s+1)),l=i.turnId!==null&&n.some(e=>e.kind===`turn.completed`&&e.turnId===i.turnId&&xO(i,e)<0);return{...c,steps:l?c.steps.map(e=>e.status===`inProgress`?{...e,status:`completed`}:e):c.steps}}function KO(e,t){if(t){let n=[...e].filter(e=>e.turnId===t).toSorted((e,t)=>e.updatedAt.localeCompare(t.updatedAt)||e.id.localeCompare(t.id)).at(-1);if(n)return ck(n)}let n=[...e].toSorted((e,t)=>e.updatedAt.localeCompare(t.updatedAt)||e.id.localeCompare(t.id)).at(-1);return n?ck(n):null}function qO(e){let t=e.threads.find(t=>t.id===e.threadId)?.proposedPlans??[];if(!e.latestTurnSettled){let t=e.latestTurn?.sourceProposedPlan;if(t){let n=e.threads.find(e=>e.id===t.threadId)?.proposedPlans.find(e=>e.id===t.planId);if(n)return ck(n)}}return KO(t,e.latestTurn?.turnId??null)}function JO(e){return e!==null&&e.implementedAt===null}function YO(e,t){return t?e.some(e=>e.turnId===t&&e.tone===`tool`):!1}var XO=new WeakMap;function ZO(e,t){if(e.role!==`assistant`)return[];let n=$O(e.text,{workEntries:t,createdAt:e.createdAt});if(!n)return[];let r=XO.get(e),i=`${e.id}:github-confirmation:${n.confirmationId}`;if(r&&r[0]?.id===i)return r;let a=[{id:i,kind:`work`,createdAt:e.createdAt,entry:{id:i,createdAt:e.createdAt,label:`GitHub action needs approval`,detail:tD(n),tone:`approval`,toolTitle:eD(n.operation),githubConfirmation:n}}];return XO.set(e,a),a}function QO(e,t,n,r){let i=PO(e,t,n,r),a=e.flatMap(e=>ZO(e,n));if(a.length===0)return i;let o=new Set(i.entries.map(e=>e.id)),s=a.filter(e=>!o.has(e.id));return s.length===0?i:{...i,entries:[...i.entries,...s].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt))}}function $O(e,t){if(!e.includes(`confirm_github_tool`))return null;let n=ik(e,/\b(?:New confirmation id|Confirmation id):\s*`?([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})`?/i)??null,r=/\bRepo(?: to create)?:\s*(private|public|internal)\s+`?([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)`?/i.exec(e);if(!n)return null;let i=ek(e,n,t);if(i)return i;if(!r)return null;let a=r[1]?.toLowerCase(),o=r[2],s=r[3];return!o||!s?null:{confirmationId:n,toolName:`forge_github_create_repository`,operation:`create_repository`,request:{owner:o,name:s,visibility:a}}}function ek(e,t,n){if(!tk(e))return null;let r=nk(n?.workEntries??[],n?.createdAt,`forge_github_refresh_credentials`)?.request,i=r?rk(r.cwd):null;return i?{confirmationId:t,toolName:`forge_github_refresh_credentials`,operation:`refresh_credentials`,request:{cwd:i}}:null}function tk(e){return/\bforge_github_refresh_credentials\b/i.test(e)||/\bcredential refresh\b/i.test(e)||/\brefresh(?:ing)? GitHub credentials\b/i.test(e)}function nk(e,t,n){for(let r of e.toReversed()){if(t!==void 0&&r.createdAt>t)continue;let e=r.githubConfirmation;if(e?.toolName===n)return e}return null}function rk(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function ik(e,t){return t.exec(e)?.[1]??null}function ak(e){let t=[...e].toSorted((e,t)=>e.completedAt.localeCompare(t.completedAt)),n={};for(let e=0;e<t.length;e+=1){let r=t[e];r&&(n[r.turnId]=e+1)}return n}function ok(e){return!e||e.status===`closed`?`disconnected`:e.status===`connecting`?`connecting`:e.status===`running`?`running`:`ready`}function sk(e,t){if(t===`disconnected`||t===`connecting`)return null;for(let t of e.toReversed())if(t.kind===`work`&&t.entry.githubConfirmation)return t.entry.githubConfirmation;return null}function ck(e){return{id:e.id,createdAt:e.createdAt,updatedAt:e.updatedAt,turnId:e.turnId,planMarkdown:e.planMarkdown,implementedAt:e.implementedAt,implementationThreadId:e.implementationThreadId}}function lk(e){let t=e.browser,n=t?{openSession:t.openSession,listSessions:t.listSessions,closeSession:t.closeSession,getSession:t.getSession,command:t.command,clearBrowsingData:t.clearBrowsingData,attachDisplay:t.attachDisplay,addDisplayIceCandidate:async e=>{await t.addDisplayIceCandidate(e)},onEvent:(e,n)=>t.onEvent(e,n)}:void 0;return{...n?{browser:n}:{},attachments:{createUploadUrl:t=>e.attachments.createUploadUrl(t),delete:t=>e.attachments.delete(t)},computer:{input:t=>e.computer.input(t)},threadDevRuntime:{get:t=>e.threadDevRuntime.get(t),allocatePort:t=>e.threadDevRuntime.allocatePort(t),release:t=>e.threadDevRuntime.release(t)},devTunnel:{register:t=>e.devTunnel.register(t),unregister:t=>e.devTunnel.unregister(t),list:t=>e.devTunnel.list(t)},terminal:{open:t=>e.terminal.open(t),write:t=>e.terminal.write(t),resize:t=>e.terminal.resize(t),signal:t=>e.terminal.signal(t),clear:t=>e.terminal.clear(t),restart:t=>e.terminal.restart(t),close:t=>e.terminal.close(t),onEvent:t=>e.terminal.onEvent(t)},projects:{searchContents:e.projects.searchContents,searchEntries:e.projects.searchEntries,readFile:e.projects.readFile,writeFile:e.projects.writeFile},workspace:{environmentPreflight:e.workspace.environmentPreflight,listDirectory:e.workspace.listDirectory,ensureScratch:e.workspace.ensureScratch},shell:{openInEditor:t=>e.shell.openInEditor(t)},git:{pull:e.git.pull,refreshStatus:e.git.refreshStatus,onStatus:(t,n,r)=>e.git.onStatus(t,n,r),listBranches:e.git.listBranches,createWorktree:e.git.createWorktree,removeWorktree:e.git.removeWorktree,createBranch:e.git.createBranch,checkout:e.git.checkout,init:e.git.init,resolvePullRequest:e.git.resolvePullRequest,preparePullRequestThread:e.git.preparePullRequestThread},pullRequests:{list:t=>e.pullRequests.list(t),listStats:t=>e.pullRequests.listStats(t),detail:t=>e.pullRequests.detail(t),activity:t=>e.pullRequests.activity(t),threadComments:t=>e.pullRequests.threadComments(t),diffFileContents:t=>e.pullRequests.diffFileContents(t),runAction:t=>e.pullRequests.runAction(t),update:t=>e.pullRequests.update(t),comment:t=>e.pullRequests.comment(t),updateComment:t=>e.pullRequests.updateComment(t),submitReview:t=>e.pullRequests.submitReview(t),replyToThread:t=>e.pullRequests.replyToThread(t),setThreadResolution:t=>e.pullRequests.setThreadResolution(t),setReaction:t=>e.pullRequests.setReaction(t),invalidate:t=>e.pullRequests.invalidate(t),reviewerCandidates:t=>e.pullRequests.reviewerCandidates(t),requestReviewers:t=>e.pullRequests.requestReviewers(t)},orchestration:{dispatchCommand:e.orchestration.dispatchCommand,getTurnDiff:e.orchestration.getTurnDiff,getFullThreadDiff:e.orchestration.getFullThreadDiff,subscribeShell:(t,n)=>e.orchestration.subscribeShell(t,n),subscribeThread:(t,n,r)=>e.orchestration.subscribeThread(t,n,r)}}}function uk(e){if(typeof window>`u`||!e)return;let t=dw(e);return t?lk(t.client):void 0}function dk(e){let t=(0,A.c)(4),n;t[0]===e?n=t[1]:(n=()=>dw(e),t[0]=e,t[1]=n);let r=(0,O.useSyncExternalStore)(uw,n,fk),i,a;return t[2]===r?a=t[3]:(a=r?lk(r.client):void 0,t[2]=r,t[3]=a),i=a,i}function fk(){return null}function pk(e){let t=uk(e);if(!t)throw Error(`Environment API not found for environment ${e}`);return t}var mk=[`preview`,`terminal`,`canvas`,`diff`,`plan`,`task`,`simulator`,`display`,`agents`,`file`,`files`,`pull-request`],hk={isOpen:!1,isMaximized:!1,activeSurfaceId:null,surfaces:[]};function gk(e){return e===null?{id:`browser:new`,kind:`preview`,resourceId:null}:{id:`browser:${e}`,kind:`preview`,resourceId:e}}function _k(e,t,n,r=`execution-intent`){return{id:`file:${e}`,kind:`file`,relativePath:e,revealLine:t,revealRequestId:n,readPolicy:r}}function vk(e){let t=[e.provider,e.environmentId,e.repositoryLinkId??``,e.projectId,e.host.toLowerCase(),e.repository,String(e.number)].map(e=>encodeURIComponent(e)).join(`:`);return{...e,id:`pull-request:${t}`,kind:`pull-request`}}function yk(e){return e===`diff`?{id:`diff`,kind:`diff`,turnId:null,filePath:null}:{id:e,kind:e}}var bk=`workspace:pull-requests`;function xk(e){return typeof e==`object`&&!!e}function Sk(e){return typeof e==`string`&&mk.includes(e)}function Ck(e){return typeof e==`number`&&Number.isFinite(e)?Math.max(1,Math.trunc(e)):null}function wk(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:0}function Tk(e){let t=e.relativePath;return typeof t!=`string`||t.length===0?null:{id:`file:${t}`,kind:`file`,relativePath:t,revealLine:Ck(e.revealLine),revealRequestId:wk(e.revealRequestId),readPolicy:e.readPolicy===`connected-only`?`connected-only`:`execution-intent`}}function Ek(e){let t=e.resourceId;return t==null?{id:`browser:new`,kind:`preview`,resourceId:null}:typeof t!=`string`||t.length===0?null:{id:`browser:${t}`,kind:`preview`,resourceId:t}}function Dk(e){let t=e.turnId,n=e.filePath,r=typeof t==`string`&&t.length>0?Vr.make(t):null;return{id:`diff`,kind:`diff`,turnId:r,filePath:r&&typeof n==`string`&&n.length>0?n:null}}var Ok=new Set([`github`,`gitlab`,`azure-devops`,`bitbucket`,`unknown`]);function kk(e){return typeof e==`string`&&e.length>0}function Ak(e){return e===null||typeof e==`string`}function jk(e){return e===void 0||Ak(e)}function Mk(e){let t=e.provider,n=e.environmentId,r=e.repositoryLinkId,i=e.projectId,a=e.host,o=e.repository,s=Ck(e.number),c=e.title;return![kk(t)&&Ok.has(t),kk(n),Ak(r),kk(i),kk(a),kk(o),s!==null,jk(c)].every(Boolean)||!kk(t)||!kk(n)?null:vk({provider:t,environmentId:Hr.make(n),repositoryLinkId:r,projectId:xi.make(i),host:a,repository:o,number:s,...typeof c==`string`||c===null?{title:c}:{}})}function Nk(e){let t=e.label;if(typeof t!=`string`)return;let n=t.trim();return n.length>0?n:void 0}function Pk(e){if(!xk(e)||!Sk(e.kind))return null;let t=e.kind,n=t===`file`?Tk(e):t===`preview`?Ek(e):t===`diff`?Dk(e):t===`pull-request`?Mk(e):{id:t,kind:t};if(n===null)return null;let r=Nk(e);return r===void 0?n:{...n,label:r}}function Fk(e){let t=[],n=new Set;for(let r of Array.isArray(e)?e:[]){let e=Pk(r);!e||n.has(e.id)||(n.add(e.id),t.push(e))}return t}function Ik(e){if(!xk(e))return null;let t=Fk(e.surfaces);if(t.length===0)return null;let n=e.activeSurfaceId,r=t.some(e=>e.id===n),i=typeof n==`string`&&r?n:t[0]?.id??null;return{isOpen:e.isOpen===!0,activeSurfaceId:i,surfaces:t}}function Lk(e){if(!xk(e)||!xk(e.byThreadKey))return{byThreadKey:{}};let t={};for(let[n,r]of Object.entries(e.byThreadKey)){if(n===bk)continue;let e=Ik(r);e&&(t[n]=e)}return{byThreadKey:t}}var Rk=`forge:right-panel-state`,zk=3,Bk=e=>e===`workspace:pull-requests`;function Vk(e){return`draft:${e}`}function Hk(e){return e.startsWith(`draft:`)}function Uk(e){return e==null||!Number.isFinite(e)?null:Math.max(1,Math.trunc(e))}var Wk=(e,t,n=!0)=>({...e,isOpen:!0,surfaces:e.surfaces.some(e=>e.id===t.id)?e.surfaces:[...e.surfaces,t],activeSurfaceId:n?t.id:e.activeSurfaceId});function Gk(e,t){if(t.length===0){let{label:t,...n}=e;return n}return{...e,label:t}}var z=(e,t,n)=>{let r=e[t]??hk,i=n(r);if(!i.isOpen&&i.activeSurfaceId===null&&i.surfaces.length===0){if(!(t in e))return e;let{[t]:n,...r}=e;return r}return i===r?e:{...e,[t]:i}},Kk=wa()(Wf(e=>({byThreadKey:{},open:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>Wk(e,e.surfaces.find(e=>e.kind===n)??yk(n)))})),openBrowser:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t=n?e.surfaces.filter(e=>e.id!==`browser:new`):e.surfaces;return Wk({...e,surfaces:t},gk(n))})})),revealBrowser:t=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>Wk(e,e.surfaces.find(e=>e.kind===`preview`)??gk(null)))})),openDiff:(t,n,r)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t={id:`diff`,kind:`diff`,turnId:n??null,filePath:n?r??null:null};return{...e,isOpen:!0,activeSurfaceId:t.id,surfaces:e.surfaces.some(e=>e.id===`diff`)?e.surfaces.map(e=>e.id===`diff`?t:e):[...e.surfaces,t]}})})),openFile:(t,n,r,i=`execution-intent`)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t=`file:${n}`,a=e.surfaces.find(e=>e.id===t&&e.kind===`file`),o=_k(n,Uk(r),(a?.revealRequestId??0)+1,i);return{...e,isOpen:!0,activeSurfaceId:o.id,surfaces:a?e.surfaces.map(e=>e.id===o.id?o:e):[...e.surfaces,o]}})})),openPullRequest:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>Wk(e,vk(n)))})),activateSurface:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>e.surfaces.some(e=>e.id===n)?{...e,isOpen:!0,activeSurfaceId:n}:e)})),closeSurface:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t=e.surfaces.findIndex(e=>e.id===n);if(t<0)return e;let r=e.surfaces.filter(e=>e.id!==n);if(e.activeSurfaceId!==n)return{...e,isOpen:r.length>0&&e.isOpen,surfaces:r};let i=r[Math.min(t,r.length-1)]??null;return{...e,isOpen:r.length>0&&e.isOpen,surfaces:r,activeSurfaceId:i?.id??null}})})),closeOtherSurfaces:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t=e.surfaces.find(e=>e.id===n);return!t||e.surfaces.length===1?e:{...e,isOpen:!0,surfaces:[t],activeSurfaceId:t.id}})})),closeSurfacesToRight:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t=e.surfaces.findIndex(e=>e.id===n);if(t<0||t===e.surfaces.length-1)return e;let r=e.surfaces.slice(0,t+1),i=r.some(t=>t.id===e.activeSurfaceId);return{...e,surfaces:r,activeSurfaceId:i?e.activeSurfaceId:n}})})),closeAllSurfaces:t=>e(e=>({byThreadKey:z(e.byThreadKey,t,()=>hk)})),renameSurface:(t,n,r)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t=r.trim();return{...e,surfaces:e.surfaces.map(e=>e.id===n?Gk(e,t):e)}})})),show:t=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>({...e,isOpen:!0}))})),close:t=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>e.isOpen?{...e,isOpen:!1,isMaximized:!1}:e)})),toggleVisibility:t=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>({...e,isOpen:!e.isOpen}))})),toggleMaximized:t=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>e.isOpen?{...e,isMaximized:!(e.isMaximized??!1)}:e)})),removeThread:t=>e(e=>{if(!(t in e.byThreadKey))return e;let{[t]:n,...r}=e.byThreadKey;return{byThreadKey:r}})}),{name:Rk,version:zk,storage:Hf(()=>An),partialize:e=>({byThreadKey:Object.fromEntries(Object.entries(e.byThreadKey).filter(([e])=>!Hk(e)&&!Bk(e)))}),migrate:e=>Lk(e)}));function qk(e,t){let n={hour:`numeric`,minute:`2-digit`,...t?{second:`2-digit`}:{}};return e===`locale`?n:{...n,hour12:e===`12-hour`}}var Jk=new Map;function Yk(e,t){let n=`${e}:${t?`seconds`:`minutes`}`,r=Jk.get(n);if(r)return r;let i=new Intl.DateTimeFormat(void 0,qk(e,t));return Jk.set(n,i),i}function Xk(e,t){return Yk(t,!0).format(new Date(e))}function Zk(e,t){return Yk(t,!1).format(new Date(e))}function Qk(e){let t=Date.now()-new Date(e).getTime();if(t<0)return{value:`just now`,suffix:null};let n=Math.floor(t/1e3);if(n<60)return{value:`just now`,suffix:null};let r=Math.floor(n/60);if(r<60)return{value:`${r}m`,suffix:`ago`};let i=Math.floor(r/60);return i<24?{value:`${i}h`,suffix:`ago`}:{value:`${Math.floor(i/24)}d`,suffix:`ago`}}function $k(e){let t=Qk(e);return t.suffix?`${t.value} ${t.suffix}`:t.value}function eA(e){if(e===null)return null;let t=e.trim();return t.length>0?t:null}var tA=Object.freeze({data:null,error:null,cause:null,isPending:!1}),nA=Object.freeze({...tA,isPending:!0}),rA=un(tA).pipe(ln,sn(`git-status:null`)),iA=()=>void 0,aA=new Map,oA=new Set,sA=new Map,cA=new Map,lA=1e3,uA=on(e=>(oA.add(e),un(nA).pipe(ln,sn(`git-status:${e}`))));function dA(e){return e.environmentId===null||eA(e.cwd)===null?null:`${e.environmentId}:${e.cwd}`}function fA(e){if(e.environmentId===null)return null;let t=dw(e.environmentId);return t?{clientIdentity:t.environmentId,client:t.client.git}:null}function pA(e){let t=dA(e);return t===null?tA:cn.get(uA(t))}function mA(e,t){let n=dA(e);if(n===null)return iA;let r=aA.get(n);return r?(r.refCount+=1,()=>_A(n)):(aA.set(n,{refCount:1,unsubscribe:vA(n,e,t)}),()=>_A(n))}function hA(e,t){let n=dA(e),r=eA(e.cwd);if(n===null||r===null)return Promise.resolve(null);let i=t??fA(e)?.client;if(!i)return Promise.resolve(pA(e).data);let a=sA.get(n);if(a)return a;let o=cA.get(n)??0;if(Date.now()-o<lA)return Promise.resolve(pA(e).data);cA.set(n,Date.now());let s=i.refreshStatus({cwd:r}).finally(()=>{sA.delete(n)});return sA.set(n,s),s}function gA(e){let t=(0,A.c)(4),n=dA(e),r,i;t[0]!==e.cwd||t[1]!==e.environmentId?(r=()=>mA({environmentId:e.environmentId,cwd:e.cwd}),i=[e.environmentId,e.cwd],t[0]=e.cwd,t[1]=e.environmentId,t[2]=r,t[3]=i):(r=t[2],i=t[3]),(0,O.useEffect)(r,i);let a=ma(n===null?rA:uA(n));return n===null?tA:a}function _A(e){let t=aA.get(e);t&&(--t.refCount,!(t.refCount>0)&&(t.unsubscribe(),aA.delete(e)))}function vA(e,t,n){let r=eA(t.cwd);if(r===null)return iA;let i=null,a=iA,o=()=>{let o=n?{clientIdentity:`provided:${e}`,client:n}:fA(t);if(!o){i!==null&&(a(),a=iA,i=null),bA(e);return}i!==o.clientIdentity&&(a(),i=o.clientIdentity,a=yA(e,r,o.client))},s=n?iA:uw(o);return o(),()=>{s(),a()}}function yA(e,t,n){return bA(e),n.onStatus({cwd:t},t=>{cn.set(uA(e),{data:t,error:null,cause:null,isPending:!1})},{onResubscribe:()=>{bA(e)}})}function bA(e){let t=uA(e),n=cn.get(t),r=n.data===null?nA:{...n,error:null,cause:null,isPending:!0};(n.data!==r.data||n.error!==r.error||n.cause!==r.cause||n.isPending!==r.isPending)&&cn.set(t,r)}function xA(e){let t=[];for(let n of e){let e=n.children??[];if(e.length>0){t.push({item:n,isGroupLabel:!0});for(let n of e)t.push({item:n,isGroupLabel:!1});continue}Array.isArray(n.children)||t.push({item:n,isGroupLabel:!1})}return t}function SA(e){let t=document.createElement(`div`);return t.textContent=e,t.className=`px-2 pt-1.5 pb-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70`,t}function CA(e){let t=document.createElement(`button`);return t.type=`button`,t.textContent=e.label,t.disabled=e.disabled,t.className=e.disabled?`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-[11px] text-muted-foreground/50 cursor-not-allowed`:e.destructive?`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-[11px] text-destructive transition-colors hover:bg-accent`:`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-[11px] text-popover-foreground transition-colors hover:bg-accent`,t}function wA(e,t){return new Promise(n=>{let r=document.createElement(`div`);r.style.cssText=`position:fixed;inset:0;z-index:9999`;let i=document.createElement(`div`);i.className=`fixed z-[10000] min-w-[160px] rounded-lg border bg-popover p-1 text-popover-foreground shadow-lg/5 outline-none before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] dark:before:shadow-[0_-1px_--theme(--color-white/6%)]`;let a=t?.x??0,o=t?.y??0;i.style.top=`${o}px`,i.style.left=`${a}px`;function s(e){document.removeEventListener(`keydown`,c),r.remove(),i.remove(),n(e)}function c(e){e.key===`Escape`&&(e.preventDefault(),s(null))}r.addEventListener(`mousedown`,()=>s(null)),document.addEventListener(`keydown`,c);let l=!1;for(let{item:t,isGroupLabel:n}of xA(e)){if(n){i.appendChild(SA(t.label));continue}let e=t.destructive===!0||t.id===`delete`,r=t.disabled===!0;if(e&&!l){let e=document.createElement(`div`);e.className=`-mx-1 my-1 h-px bg-border`,i.appendChild(e),l=!0}let a=CA({label:t.label,disabled:r,destructive:e});r||a.addEventListener(`click`,()=>s(t.id)),i.appendChild(a)}document.body.appendChild(r),document.body.appendChild(i),requestAnimationFrame(()=>{let e=i.getBoundingClientRect();e.right>window.innerWidth&&(i.style.left=`${window.innerWidth-e.width-4}px`),e.bottom>window.innerHeight&&(i.style.top=`${window.innerHeight-e.height-4}px`)})})}var TA;function EA(){return DA(mw().client)}function DA(e){return{getConfig:e.server.getConfig,refreshProviders:e.server.refreshProviders,startProviderAuth:e.server.startProviderAuth,repairProviderAuthRuntime:e.server.repairProviderAuthRuntime,disconnectProviderAuth:e.server.disconnectProviderAuth,getProviderAuthSession:e.server.getProviderAuthSession,cancelProviderAuth:e.server.cancelProviderAuth,submitProviderAuthCode:e.server.submitProviderAuthCode,syncPersonalCodexToCloud:e.server.syncPersonalCodexToCloud,syncPersonalClaudeToCloud:e.server.syncPersonalClaudeToCloud,upsertKeybinding:e.server.upsertKeybinding,removeKeybinding:e.server.removeKeybinding,getSettings:e.server.getSettings,updateSettings:e.server.updateSettings,updateEnvironmentDisplayName:async t=>{let n=await e.server.updateEnvironmentDisplayName({displayName:t});return Qw(n.environment),n}}}function OA(e,t){return{...e,...t,dialogs:{...e.dialogs,...t.dialogs},shell:{...e.shell,...t.shell},contextMenu:{...e.contextMenu,...t.contextMenu},persistence:{...e.persistence,...t.persistence},server:{...e.server,...t.server}}}function kA(e){return{dialogs:{pickFolder:async()=>window.desktopBridge?window.desktopBridge.pickFolder():null,confirm:async e=>window.desktopBridge?window.desktopBridge.confirm(e):window.confirm(e)},shell:{openInEditor:(t,n)=>e.shell.openInEditor({cwd:t,editor:n}),openExternal:async e=>{if(window.desktopBridge){if(!await window.desktopBridge.openExternal(e))throw Error(`Unable to open link.`);return}window.open(e,`_blank`,`noopener,noreferrer`)}},contextMenu:{show:async(e,t)=>window.desktopBridge?window.desktopBridge.showContextMenu(e,t):wA(e,t)},persistence:{getClientSettings:tr,setClientSettings:or,getSavedEnvironmentRegistry:pr,setSavedEnvironmentRegistry:rr,getSavedEnvironmentSecret:Kn,setSavedEnvironmentSecret:Zn,removeSavedEnvironmentSecret:Jn},server:DA(e)}}function AA(){if(typeof window>`u`)return;if(TA)return TA;let e=kA(mw().client);return window.nativeApi?(TA=OA(e,window.nativeApi),TA):(TA=e,TA)}function jA(){let e=AA();if(!e)throw Error(`Local API not found`);return e}function MA(){let e=(0,A.c)(2),[t,n]=(0,O.useState)(NA),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>(n(Ia()),Pa(()=>{n(Ia())})),i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,O.useEffect)(r,i),t}function NA(){return Ia()}function PA(e,t){e.style.setProperty(`--appearance-contrast-base`,`${Math.min(t,100)}%`),e.style.setProperty(`--appearance-contrast-boost`,`${Math.max(t-100,0)}%`),e.style.setProperty(`--appearance-contrast-border-boost`,`${Math.max(t-100,0)/4}%`)}var FA=`-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif`,IA=`ui-monospace, "SF Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace`;function LA(e){let t=e.trim();return t.length===0?``:/^(['"]).*\1$/u.test(t)||/^[a-zA-Z][a-zA-Z0-9-]*$/u.test(t)?t:`"${t.replaceAll(`"`,``)}"`}function RA(e){let t=e.split(`,`).map(LA).filter(e=>e.length>0);return t.length>0?t.join(`, `):null}var zA={appearanceContrastBase:`--appearance-contrast-base`,appearanceContrastBoost:`--appearance-contrast-boost`,appearanceContrastBorderBoost:`--appearance-contrast-border-boost`,fontSans:`--font-sans`,fontMono:`--font-mono`,fontComposer:`--font-composer`,fontTerminal:`--font-terminal`,promptFontSize:`--forge-prompt-font-size`,terminalFontSize:`--forge-terminal-font-size`,glassOpacity:`--glass-opacity`};function BA(e,t){let n=[[zA.fontSans,t.fontFamilySans,FA],[zA.fontMono,t.fontFamilyCode,IA],[zA.fontComposer,t.fontFamilyComposer,`var(--font-sans)`],[zA.fontTerminal,t.fontFamilyTerminal,`var(--font-mono)`]];for(let[t,r,i]of n){let n=RA(r);if(n===null){e.style.removeProperty(t);continue}e.style.setProperty(t,`${n}, ${i}`)}e.style.setProperty(zA.promptFontSize,`${String(t.promptFontSize)}px`),e.style.setProperty(zA.terminalFontSize,`${String(t.terminalFontSize)}px`),e.style.setProperty(zA.glassOpacity,`${String(t.glassOpacity)}%`),PA(e,t.appearanceContrast),t.fontSmoothing?e.style.setProperty(`-webkit-font-smoothing`,`antialiased`):e.style.removeProperty(`-webkit-font-smoothing`)}function VA(){return typeof window<`u`&&typeof localStorage<`u`}function HA(){if(!VA())return{};try{let e=JSON.parse(window.localStorage.getItem(`forge:theme-halves:v1`)??`null`);if(typeof e!=`object`||!e||Array.isArray(e))return{};let t={};for(let n of[`light`,`dark`]){let r=e[n];typeof r==`string`&&(t[n]=r)}return t}catch{return{}}}function UA(){if(!VA())return null;try{return Na(window.localStorage.getItem(Ra))}catch{return null}}function WA(e){if(VA())try{e===null||e.light===void 0&&e.dark===void 0?window.localStorage.removeItem(Ra):window.localStorage.setItem(Ra,JSON.stringify(e))}catch{}}function GA(e,t,n){let r={...e};return n===null?delete r[t]:r[t]=n,r}function KA(e){return e!==null&&(e.light!==void 0||e.dark!==void 0)?e:null}function qA(e,t){let n=(0,A.c)(13),[r,i]=(0,O.useState)(JA),a=MA(),o;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(e,t)=>{let n=GA(HA(),e,t);return WA(n),i(KA(n)),!0},n[0]=o):o=n[0];let s=o,c;n[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>(WA(null),i(null),!0),n[1]=c):c=n[1];let l=c,u;n[2]!==t||n[3]!==r||n[4]!==e?(u=()=>{let n=t===`dark`?`dark`:`light`;Fa(La(e,r,n),n)},n[2]=t,n[3]=r,n[4]=e,n[5]=u):u=n[5];let d;n[6]!==a||n[7]!==t||n[8]!==r||n[9]!==e?(d=[e,t,r,a],n[6]=a,n[7]=t,n[8]=r,n[9]=e,n[10]=d):d=n[10],(0,O.useEffect)(u,d);let f;return n[11]===r?f=n[12]:(f={themeHalves:r,setThemeHalf:s,clearThemeHalves:l},n[11]=r,n[12]=f),f}function JA(){return UA()}var YA=`theme-color`,XA=`meta[name="${YA}"][data-dynamic-theme-color="true"]`,ZA={dark:`#0a0a0a`,light:`#ffffff`};function QA(){let e=document.querySelector(XA);return e||(e=document.createElement(`meta`),e.name=YA,e.setAttribute(`data-dynamic-theme-color`,`true`),document.head.append(e),e)}function $A(e){let t=e?.trim().toLowerCase();return!t||t===`transparent`||t===`rgba(0, 0, 0, 0)`||t===`rgba(0 0 0 / 0)`?null:e?.trim()??null}function ej(){return document.querySelector(`main[data-slot='sidebar-inset']`)??document.querySelector(`[data-slot='sidebar-inner']`)??document.body}function tj(){return document.documentElement.classList.contains(`dark`)?`dark`:`light`}function nj(e=tj()){if(typeof document>`u`||typeof getComputedStyle>`u`)return;document.documentElement.style.backgroundColor=``,document.body.style.backgroundColor=``;let t=$A(getComputedStyle(ej()).backgroundColor),n=$A(getComputedStyle(document.body).backgroundColor),r=t??n??ZA[e];document.documentElement.style.backgroundColor=r,document.body.style.backgroundColor=r,QA().setAttribute(`content`,r)}var rj=`forge:theme`,ij=`(prefers-color-scheme: dark)`;function aj(e){return e===`system`||e===`light`||e===`dark`}function oj(e,t){return typeof e!=`number`||!Number.isFinite(e)?t:Math.min(20,Math.max(11,Math.round(e)))}function sj(){if(!VA())return{theme:`system`,uiFontSize:16,codeFontSize:13};try{let e=window.localStorage.getItem(Yn);if(e){let t=Un(JSON.parse(e));return{theme:aj(t.theme)?t.theme:`system`,uiFontSize:oj(t.uiFontSize,16),codeFontSize:oj(t.codeFontSize,13)}}let t=window.localStorage.getItem(rj);return{theme:aj(t)?t:`system`,uiFontSize:16,codeFontSize:13}}catch{return{theme:`system`,uiFontSize:16,codeFontSize:13}}}function cj(){return typeof window>`u`||typeof window.matchMedia!=`function`||window.matchMedia(ij).matches?`dark`:`light`}function lj(e){return e===`system`?cj():e}function uj(e){if(typeof window>`u`)return;let t=window.desktopBridge;t&&t.setTheme(e).catch(()=>{})}function dj(e,t=!1){let n=lj(e);return typeof document>`u`||typeof window>`u`?n:(t&&document.documentElement.classList.add(`no-transitions`),document.documentElement.classList.toggle(`dark`,n===`dark`),document.documentElement.dataset.theme=e,document.documentElement.style.colorScheme=n,nj(n),uj(e),t&&(document.documentElement.offsetHeight,requestAnimationFrame(()=>{document.documentElement.classList.remove(`no-transitions`)})),n)}function fj(e){typeof document>`u`||document.documentElement.style.setProperty(`--forge-ui-font-size`,`${oj(e,16)}px`)}function pj(e){typeof document>`u`||document.documentElement.style.setProperty(`--forge-code-font-size`,`${oj(e,13)}px`)}function mj(e){fj(e.uiFontSize),pj(e.codeFontSize)}if(typeof document<`u`){let e=sj();dj(e.theme),mj(e)}function hj(){let e=(0,A.c)(33),t=UT(yj),n=UT(vj),r=UT(_j),i=UT(gj),{updateSettings:a}=WT(),o;e[0]===t?o=e[1]:(o=()=>lj(t),e[0]=t,e[1]=o);let[s,c]=(0,O.useState)(o),{themeHalves:l,setThemeHalf:u,clearThemeHalves:d}=qA(n,s),f;e[2]===a?f=e[3]:(f=e=>{a({theme:e}),c(dj(e,!0))},e[2]=a,e[3]=f);let p=f,m;e[4]===a?m=e[5]:(m=e=>{a({themeId:e})},e[4]=a,e[5]=m);let h=m,g;e[6]===a?g=e[7]:(g=e=>{let t=oj(e,16);a({uiFontSize:t}),fj(t)},e[6]=a,e[7]=g);let _=g,v;e[8]===a?v=e[9]:(v=e=>{let t=oj(e,13);a({codeFontSize:t}),pj(t)},e[8]=a,e[9]=v);let y=v,b,x;e[10]===t?(b=e[11],x=e[12]):(b=()=>{c(dj(t))},x=[t],e[10]=t,e[11]=b,e[12]=x),(0,O.useEffect)(b,x);let ee,te;e[13]!==i||e[14]!==r?(ee=()=>{mj({uiFontSize:r,codeFontSize:i})},te=[r,i],e[13]=i,e[14]=r,e[15]=ee,e[16]=te):(ee=e[15],te=e[16]),(0,O.useEffect)(ee,te);let ne,re;e[17]===t?(ne=e[18],re=e[19]):(re=()=>{if(t!==`system`||typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(ij),n=()=>{c(dj(`system`,!0))};return e.addEventListener(`change`,n),()=>{e.removeEventListener(`change`,n)}},ne=[t],e[17]=t,e[18]=ne,e[19]=re),(0,O.useEffect)(re,ne);let ie;return e[20]!==d||e[21]!==i||e[22]!==s||e[23]!==y||e[24]!==p||e[25]!==u||e[26]!==h||e[27]!==_||e[28]!==t||e[29]!==l||e[30]!==n||e[31]!==r?(ie={theme:t,setTheme:p,themeId:n,setThemeId:h,resolvedTheme:s,themeHalves:l,setThemeHalf:u,clearThemeHalves:d,uiFontSize:r,codeFontSize:i,setUiFontSize:_,setCodeFontSize:y},e[20]=d,e[21]=i,e[22]=s,e[23]=y,e[24]=p,e[25]=u,e[26]=h,e[27]=_,e[28]=t,e[29]=l,e[30]=n,e[31]=r,e[32]=ie):ie=e[32],ie}function gj(e){return e.codeFontSize}function _j(e){return e.uiFontSize}function vj(e){return e.themeId}function yj(e){return e.theme}function bj(){let e=(0,A.c)(11),t=UT(kj),n=UT(Oj),r=UT(Dj),i=UT(Ej),a=UT(Tj),o=UT(wj),s=UT(Cj),c=UT(Sj),l=UT(xj),u,d;e[0]!==t||e[1]!==r||e[2]!==i||e[3]!==n||e[4]!==a||e[5]!==c||e[6]!==l||e[7]!==o||e[8]!==s?(u=()=>{typeof document>`u`||BA(document.documentElement,{appearanceContrast:t,fontFamilyCode:r,fontFamilyComposer:i,fontFamilySans:n,fontFamilyTerminal:a,fontSmoothing:c,glassOpacity:l,promptFontSize:o,terminalFontSize:s})},d=[t,r,i,n,a,c,l,o,s],e[0]=t,e[1]=r,e[2]=i,e[3]=n,e[4]=a,e[5]=c,e[6]=l,e[7]=o,e[8]=s,e[9]=u,e[10]=d):(u=e[9],d=e[10]),(0,O.useEffect)(u,d)}function xj(e){return e.glassOpacity}function Sj(e){return e.fontSmoothing}function Cj(e){return e.terminalFontSize}function wj(e){return e.promptFontSize}function Tj(e){return e.fontFamilyTerminal}function Ej(e){return e.fontFamilyComposer}function Dj(e){return e.fontFamilyCode}function Oj(e){return e.fontFamilySans}function kj(e){return e.appearanceContrast}var Aj=`forge:last-editor`;function jj(e){let t=(0,A.c)(5),[n,r]=Nn(Aj,null,bi),i;bb0:{if(n&&e.includes(n)){i=n;break bb0}let r;t[0]===e?r=t[1]:(r=Sr.find(t=>e.includes(t.id))?.id??null,t[0]=e,t[1]=r),i=r}let a=i,o;return t[2]!==a||t[3]!==r?(o=[a,r],t[2]=a,t[3]=r,t[4]=o):o=t[4],o}function Mj(e){let t=new Set(e),n=jn(Aj,bi);if(n&&t.has(n))return n;let r=Sr.find(e=>t.has(e.id))?.id??null;return r&&_r(Aj,r,bi),r??null}async function Nj(e,t){let{availableEditors:n}=await e.server.getConfig(),r=Mj(n);if(!r)throw Error(`No available editors found.`);return await e.shell.openInEditor(t,r),r}var Pj=/https?:\/\/[^\s"'`<>]+/g,Fj=/(?:~\/|\.{1,2}\/|\/|[A-Za-z]:[\\/]|\\\\)[^\s"'`<>]+|[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)+(?::\d+){0,2}/g,Ij=/[.,;!?]+$/;function Lj(e){let t=e.replace(Ij,``);if(t.length===0)return t;let n=(e,n)=>{for(;t.endsWith(n);){if(t.split(e).length-1>=t.split(n).length-1)return;t=t.slice(0,-1)}};return n(`(`,`)`),n(`[`,`]`),n(`{`,`}`),t}function Rj(e,t){return e.start<t.end&&t.start<e.end}function zj(e,t,n,r){let i=[];n.lastIndex=0;for(let a of e.matchAll(n)){let e=a[0],n=a.index??-1;if(n<0||e.length===0)continue;let o=Lj(e);if(o.length===0||t===`path`&&/^https?:\/\//i.test(o))continue;let s={kind:t,text:o,start:n,end:n+o.length};[...r,...i].some(e=>Rj(s,e))||i.push(s)}return i}function Bj(e){return/^[A-Za-z]:[\\/]/.test(e)||e.startsWith(`\\\\`)}function Vj(e){return e.startsWith(`/`)||Bj(e)}function Hj(e){return Bj(e)||/[A-Za-z]:\\/.test(e)}function Uj(e,t,n){let r=e.replace(/[\\/]+$/,``);return n===`\\`?`${r}\\${t.replaceAll(`/`,`\\`)}`:`${r}/${t.replace(/^\/+/,``)}`}function Wj(e){let t=e.match(/^\/Users\/([^/]+)/);if(t?.[1])return`/Users/${t[1]}`;let n=e.match(/^\/home\/([^/]+)/);if(n?.[1])return`/home/${n[1]}`;let r=e.match(/^([A-Za-z]:\\Users\\[^\\]+)/);if(r?.[1])return r[1]}function Gj(e){let t=e,n,r,i=t.match(/:(\d+)$/);if(!i?.[1])return{path:t,line:void 0,column:void 0};n=i[1],t=t.slice(0,-i[0].length);let a=t.match(/:(\d+)$/);return a?.[1]?(r=a[1],t=t.slice(0,-a[0].length)):(r=n,n=void 0),{path:t,line:r,column:n}}function Kj(e){let t=zj(e,`url`,Pj,[]),n=zj(e,`path`,Fj,t);return[...t,...n].toSorted((e,t)=>e.start-t.start)}function qj(e,t){let n=t(e-1);if(!n)return null;let r=e,i=n;for(;r>1&&i.isWrapped;){let e=t(r-2);if(!e)return null;--r,i=e}let a=[],o=0,s=r;for(;;){let e=t(s-1);if(!e)break;let n=t(s)?.isWrapped===!0,r=e.translateToString(!n);if(a.push({bufferLineNumber:s,text:r,startIndex:o,endIndex:o+r.length}),o+=r.length,!n)break;s+=1}return{text:a.map(e=>e.text).join(``),segments:a}}function Jj(e,t){for(let n of e)if(t<n.endIndex)return{x:t-n.startIndex+1,y:n.bufferLineNumber};let n=e[e.length-1];return{x:Math.max(n?.text.length??0,1),y:n?.bufferLineNumber??1}}function Yj(e,t){return{start:Jj(e.segments,t.start),end:Jj(e.segments,t.end-1)}}function Xj(e,t){return e.start.y<=t&&t<=e.end.y}function Zj(e,t=typeof navigator>`u`?``:navigator.platform){return t.length===0?!1:Sa(t)?e.metaKey&&!e.ctrlKey:e.ctrlKey&&!e.metaKey}function Qj(e,t){let{path:n,line:r,column:i}=Gj(e),a=n;if(n.startsWith(`~/`)){let e=Wj(t);if(e){let t=Hj(e)?`\\`:`/`;a=Uj(e,n.slice(2),t)}}else Vj(n)||(a=Uj(t,n,Hj(t)?`\\`:`/`));return r?`${a}:${r}${i?`:${i}`:``}`:a}var $j=`diffs-container`,eM=(()=>{try{return!1}catch{return!1}})(),tM=/(?=^From [a-f0-9]+ .+$)/m,nM=/(?=^diff --git)/gm,rM=/(?<=\n)/,iM=/^(---|\+\+\+)\s+([^\t\r\n]+)/,aM=/^(---|\+\+\+)\s+[ab]\/([^\t\r\n]+)/,oM=/^diff --git (?:"a\/(.+?)"|a\/(.+?)) (?:"b\/(.+?)"|b\/(.+?))$/,sM=/^index ([0-9a-f]+)\.\.([0-9a-f]+)(?: (\d+))?$/i,cM=`header-prefix`,lM=`header-filename-suffix`,uM=`header-metadata`,dM=`header-custom`,fM={dark:`pierre-dark`,light:`pierre-light`},pM=`data-theme-css`,mM=`data-unsafe-css`,hM=`data-diffs-scrollbar-measure`,gM=`data-diffs-code-view-header`,_M=`data-diffs-code-view-footer`,vM=`--diffs-scrollbar-gutter-measured`,yM=1e5,bM={hunkLineCount:50,lineHeight:20,diffHeaderHeight:44,spacing:8},xM={...bM,hunkLineCount:1},SM={paddingTop:8,paddingBottom:8,gap:8},CM={omega:.015,positionEpsilon:.5,velocityEpsilon:.05},wM=Object.freeze({fromStart:0,fromEnd:0}),TM={startingLine:0,totalLines:1/0,bufferBefore:0,bufferAfter:0},EM={startingLine:0,totalLines:0,bufferBefore:0,bufferAfter:0},DM=new Set,OM=null;function kM(e){DM.add(e),OM??=requestAnimationFrame(jM)}function AM(e){DM.delete(e)&&DM.size===0&&OM!=null&&(cancelAnimationFrame(OM),OM=null)}function jM(e){let t=new Set(DM);DM.clear();for(let n of t)try{n(e)}catch(e){console.error(e)}OM=DM.size>0?requestAnimationFrame(jM):null}function MM(e,t,n){if(e===t||e==null||t==null)return e===t;let r=new Set(n),i=Object.keys(e),a=new Set(Object.keys(t));for(let n of i)if(a.delete(n),!r.has(n)&&(!(n in t)||e[n]!==t[n]))return!1;for(let e of Array.from(a))if(!r.has(e))return!1;return!0}function NM(e,t){return e==null||t==null||typeof e==`string`||typeof t==`string`?e===t:e.dark===t.dark&&e.light===t.light}function PM(e,t){let n=e?.theme??fM,r=t?.theme??fM,i=FM(e),a=FM(t);return NM(n,r)&&MM(e,t,[`theme`,`parseDiffOptions`])&&MM(i,a)}function FM(e){if(e!=null&&`parseDiffOptions`in e)return e.parseDiffOptions}function IM(e,t){return e?.start===t?.start&&e?.end===t?.end&&e?.side===t?.side&&e?.endSide===t?.endSide}function LM({scrollTop:e,scrollHeight:t,height:n,fitPerfectly:r=!1,fitPerfectlyOverscroll:i=0,overscrollSize:a}){let o=n+a*2,s=r?n+i*2:o;if(t=Math.max(t,s),o>=t||r){let n=Math.max(e-i,0),r=Math.min(e+s,t);return{top:n,bottom:Math.max(r,n)}}let c=e+n/2-o/2,l=c+o;return c<0&&(c=0),l>t&&(l=t),c=Math.floor(Math.max(c,0)),{top:c,bottom:Math.ceil(Math.max(Math.min(l,t),c))}}function RM(e){let t=e.length;return e.charCodeAt(t-1)===10&&(t--,e.charCodeAt(t-1)===13&&t--),e.slice(0,t)}function zM(e,t){return e-(t===0?0:1)}function BM(e,t){return zM(e,t)+t}var VM=class{diff(e,t,n={}){let r;typeof n==`function`?(r=n,n={}):`callback`in n&&(r=n.callback);let i=this.castInput(e,n),a=this.castInput(t,n),o=this.removeEmpty(this.tokenize(i,n)),s=this.removeEmpty(this.tokenize(a,n));return this.diffWithOptionsObj(o,s,n,r)}diffWithOptionsObj(e,t,n,r){let i=e=>{if(e=this.postProcess(e,n),r){setTimeout(function(){r(e)},0);return}return e},a=t.length,o=e.length,s=1,c=a+o;n.maxEditLength!=null&&(c=Math.min(c,n.maxEditLength));let l=n.timeout??1/0,u=Date.now()+l,d=[{oldPos:-1,lastComponent:void 0}],f=this.extractCommon(d[0],t,e,0,n);if(d[0].oldPos+1>=o&&f+1>=a)return i(this.buildValues(d[0].lastComponent,t,e));let p=-1/0,m=1/0,h=()=>{for(let r=Math.max(p,-s);r<=Math.min(m,s);r+=2){let s,c=d[r-1],l=d[r+1];c&&(d[r-1]=void 0);let u=!1;if(l){let e=l.oldPos-r;u=l&&0<=e&&e<a}let h=c&&c.oldPos+1<o;if(!u&&!h){d[r]=void 0;continue}if(s=!h||u&&c.oldPos<l.oldPos?this.addToPath(l,!0,!1,0,n):this.addToPath(c,!1,!0,1,n),f=this.extractCommon(s,t,e,r,n),s.oldPos+1>=o&&f+1>=a)return i(this.buildValues(s.lastComponent,t,e))||!0;d[r]=s,s.oldPos+1>=o&&(m=Math.min(m,r-1)),f+1>=a&&(p=Math.max(p,r+1))}s++};if(r)(function e(){setTimeout(function(){if(s>c||Date.now()>u)return r(void 0);h()||e()},0)})();else for(;s<=c&&Date.now()<=u;){let e=h();if(e)return e}}addToPath(e,t,n,r,i){let a=e.lastComponent;return a&&!i.oneChangePerToken&&a.added===t&&a.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:a.count+1,added:t,removed:n,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:a}}}extractCommon(e,t,n,r,i){let a=t.length,o=n.length,s=e.oldPos,c=s-r,l=0;for(;c+1<a&&s+1<o&&this.equals(n[s+1],t[c+1],i);)c++,s++,l++,i.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(e.lastComponent={count:l,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=s,c}equals(e,t,n){return n.comparator?n.comparator(e,t):e===t||!!n.ignoreCase&&e.toLowerCase()===t.toLowerCase()}removeEmpty(e){let t=[];for(let n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t}castInput(e,t){return e}tokenize(e,t){return Array.from(e)}join(e){return e.join(``)}postProcess(e,t){return e}get useLongestToken(){return!1}buildValues(e,t,n){let r=[],i;for(;e;)r.push(e),i=e.previousComponent,delete e.previousComponent,e=i;r.reverse();let a=r.length,o=0,s=0,c=0;for(;o<a;o++){let e=r[o];if(e.removed)e.value=this.join(n.slice(c,c+e.count)),c+=e.count;else{if(!e.added&&this.useLongestToken){let r=t.slice(s,s+e.count);r=r.map(function(e,t){let r=n[c+t];return r.length>e.length?r:e}),e.value=this.join(r)}else e.value=this.join(t.slice(s,s+e.count));s+=e.count,e.added||(c+=e.count)}}return r}},HM=new class extends VM{};function UM(e,t,n){return HM.diff(e,t,n)}function WM(e,t){let n;for(n=0;n<e.length&&n<t.length;n++)if(e[n]!=t[n])return e.slice(0,n);return e.slice(0,n)}function GM(e,t){let n;if(!e||!t||e[e.length-1]!=t[t.length-1])return``;for(n=0;n<e.length&&n<t.length;n++)if(e[e.length-(n+1)]!=t[t.length-(n+1)])return e.slice(-n);return e.slice(-n)}function KM(e,t,n){if(e.slice(0,t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);return n+e.slice(t.length)}function qM(e,t,n){if(!t)return e+n;if(e.slice(-t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);return e.slice(0,-t.length)+n}function JM(e,t){return KM(e,t,``)}function YM(e,t){return qM(e,t,``)}function XM(e,t){return t.slice(0,ZM(e,t))}function ZM(e,t){let n=0;e.length>t.length&&(n=e.length-t.length);let r=t.length;e.length<t.length&&(r=e.length);let i=Array(r),a=0;i[0]=0;for(let e=1;e<r;e++){for(t[e]==t[a]?i[e]=i[a]:i[e]=a;a>0&&t[e]!=t[a];)a=i[a];t[e]==t[a]&&a++}a=0;for(let r=n;r<e.length;r++){for(;a>0&&e[r]!=t[a];)a=i[a];e[r]==t[a]&&a++}return a}function QM(e,t){let n=[];for(let r of Array.from(t.segment(e))){let e=r.segment;n.length&&/\s/.test(n[n.length-1])&&/\s/.test(e)?n[n.length-1]+=e:n.push(e)}return n}function $M(e,t){if(t)return tN(e,t)[1];let n;for(n=e.length-1;n>=0&&e[n].match(/\s/);n--);return e.substring(n+1)}function eN(e,t){if(t)return tN(e,t)[0];let n=e.match(/^\s*/);return n?n[0]:``}function tN(e,t){if(!t)return[eN(e),$M(e)];if(t.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);let n=QM(e,t),r=n[0],i=n[n.length-1];return[/\s/.test(r)?r:``,/\s/.test(i)?i:``]}var nN=`a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,rN=RegExp(`[${nN}]+|\\s+|[^${nN}]`,`ug`);new class extends VM{equals(e,t,n){return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()}tokenize(e,t={}){let n;if(t.intlSegmenter){let r=t.intlSegmenter;if(r.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);n=QM(e,r)}else n=e.match(rN)||[];let r=[],i=null;return n.forEach(e=>{/\s/.test(e)?i==null?r.push(e):r.push(r.pop()+e):i!=null&&/\s/.test(i)?r[r.length-1]==i?r.push(r.pop()+e):r.push(i+e):r.push(e),i=e}),r}join(e){return e.map((e,t)=>t==0?e:e.replace(/^\s+/,``)).join(``)}postProcess(e,t){if(!e||t.oneChangePerToken)return e;let n=null,r=null,i=null;return e.forEach(e=>{e.added?r=e:e.removed?i=e:((r||i)&&iN(n,i,r,e,t.intlSegmenter),n=e,r=null,i=null)}),(r||i)&&iN(n,i,r,null,t.intlSegmenter),e}};function iN(e,t,n,r,i){if(t&&n){let[a,o]=tN(t.value,i),[s,c]=tN(n.value,i);if(e){let r=WM(a,s);e.value=qM(e.value,s,r),t.value=JM(t.value,r),n.value=JM(n.value,r)}if(r){let e=GM(o,c);r.value=KM(r.value,c,e),t.value=YM(t.value,e),n.value=YM(n.value,e)}}else if(n){if(e){let e=eN(n.value,i);n.value=n.value.substring(e.length)}if(r){let e=eN(r.value,i);r.value=r.value.substring(e.length)}}else if(e&&r){let n=eN(r.value,i),[a,o]=tN(t.value,i),s=WM(n,a);t.value=JM(t.value,s);let c=GM(JM(n,s),o);t.value=YM(t.value,c),r.value=KM(r.value,n,c),e.value=qM(e.value,n,n.slice(0,n.length-c.length))}else if(r){let e=eN(r.value,i),n=XM($M(t.value,i),e);t.value=YM(t.value,n)}else if(e){let n=XM($M(e.value,i),eN(t.value,i));t.value=JM(t.value,n)}}var aN=new class extends VM{tokenize(e){let t=RegExp(`(\\r?\\n)|[${nN}]+|[^\\S\\n\\r]+|[^${nN}]`,`ug`);return e.match(t)||[]}};function oN(e,t,n){return aN.diff(e,t,n)}var sN=new class extends VM{constructor(){super(...arguments),this.tokenize=lN}equals(e,t,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(`
|
|
21
|
+
`):e.detail??``;return n.length>0&&VD(n)}function UD(e){return HD(e,!0)}function WD(e){return HD(e,!1)}function GD(e){return BD(e)&&!UD(e)&&e.tone!==`thinking`&&e.toolLifecycleStatus!==`inProgress`&&e.toolLifecycleStatus!==`stopped`}function KD(e){let t=e.taskId??``,n=t.indexOf(`:wf:`);return n===-1?e.agentSpawn?.workflowId?`wf:${e.agentSpawn.workflowId}`:e.isWorkflowCoordinator?`wf:${t}`:e.turnId?`direct:${e.turnId}`:`direct:task:${t}`:`wf:${t.slice(0,n)}`}function qD(e){if(e.sourceActivityKind===`tool.updated`||e.sourceActivityKind===`tool.completed`)return e.toolCallId?`tool:${e.turnId??`no-turn`}:${e.toolCallId}`:void 0}function JD(e){let t=[],n=new Map,r=new Map,i=new Map;for(let a of e){if(a.taskId!==void 0&&!a.isBackgroundTask&&(a.sourceActivityKind===`task.started`||a.sourceActivityKind===`task.progress`||a.sourceActivityKind===`task.completed`)&&a.taskId!==void 0){let e=r.get(a.taskId),i=e??KD(a);e===void 0&&r.set(a.taskId,i);let o=i.startsWith(`wf:`)?i.slice(3):null,s=n.get(i);if(s!==void 0){let e=t[s],n=e.agentSpawn?.agentTaskIds.includes(a.taskId)?e.agentSpawn.agentTaskIds:[...e.agentSpawn?.agentTaskIds??[],a.taskId];t[s]={...XD(e,a),id:e.id,createdAt:e.createdAt,turnId:e.turnId??null,...e.taskId===void 0?{}:{taskId:e.taskId},label:e.label,agentSpawn:{workflowId:o,agentTaskIds:n}};continue}n.set(i,t.length),t.push({...a,agentSpawn:{workflowId:o,agentTaskIds:[a.taskId]}});continue}let e=qD(a);if(e!==void 0){let n=i.get(e),r=n===void 0?void 0:t[n];if(n!==void 0&&r&&YD(r,a)){t[n]=XD(r,a);continue}i.delete(e)}let o=t.at(-1);if(o&&YD(o,a)){let e=t.length-1,n=qD(o);n!==void 0&&i.delete(n);let r=XD(o,a);t[e]=r;let s=qD(r);s!==void 0&&i.set(s,e);continue}t.push(a),e!==void 0&&i.set(e,t.length-1)}return t}function YD(e,t){return e.sourceActivityKind!==`tool.updated`&&e.sourceActivityKind!==`tool.completed`||t.sourceActivityKind!==`tool.updated`&&t.sourceActivityKind!==`tool.completed`||e.turnId!==t.turnId||e.sourceActivityKind===`tool.completed`?!1:e.collapseKey!==void 0&&e.collapseKey===t.collapseKey||e.toolCallId!==void 0&&t.toolCallId===void 0&&e.itemType===t.itemType&&MD(e.toolTitle??e.label)===MD(t.toolTitle??t.label)}function XD(e,t){let n=ZD(e.changedFiles,t.changedFiles),r=t.detail??e.detail,i=t.viewedImagePath??e.viewedImagePath,a=t.command??e.command,o=t.rawCommand??e.rawCommand,s=t.toolTitle??e.toolTitle,c=t.toolSurface??e.toolSurface,l=t.toolIcon??e.toolIcon,u=t.toolSource??e.toolSource,d=t.itemType??e.itemType,f=t.requestKind??e.requestKind,p=t.collapseKey??e.collapseKey,m=t.toolCallId??e.toolCallId,h=t.toolLifecycleStatus??e.toolLifecycleStatus,g=t.toolData??e.toolData;return{...e,...t,...r?{detail:r}:{},...i?{viewedImagePath:i}:{},...a?{command:a}:{},...o?{rawCommand:o}:{},...n.length>0?{changedFiles:n}:{},...s?{toolTitle:s}:{},...c?{toolSurface:c}:{},...l?{toolIcon:l}:{},...u?{toolSource:u}:{},...d?{itemType:d}:{},...f?{requestKind:f}:{},...p?{collapseKey:p}:{},...m?{toolCallId:m}:{},...h===void 0?{}:{toolLifecycleStatus:h},...g===void 0?{}:{toolData:g}}}function ZD(e,t){let n=[...e??[],...t??[]];return n.length===0?[]:[...new Set(n)]}function QD(e){if(e.taskId&&(e.sourceActivityKind===`task.progress`||e.sourceActivityKind===`task.completed`))return`task${e.taskId}`;if(e.sourceActivityKind!==`tool.updated`&&e.sourceActivityKind!==`tool.completed`)return;if(e.toolCallId)return`tool:${e.turnId??`no-turn`}:${e.toolCallId}`;let t=MD(e.toolTitle??e.label),n=e.detail?.trim()??``,r=e.itemType??``;if(t.length!==0||n.length!==0||r.length!==0)return[r,t,n].join(``)}function $D(e){let t=aO(e?.data);return oO(e?.toolCallId)??oO(t?.toolCallId)}function eO(e){switch(e){case`command_execution_approval`:case`exec_command_approval`:return`command`;case`file_read_approval`:return`file-read`;case`file_change_approval`:case`apply_patch_approval`:return`file-change`;default:return null}}function tO(e){return e?.requestKind===`command`||e?.requestKind===`file-read`||e?.requestKind===`file-change`?e.requestKind:eO(e?.requestType)??void 0}function nO(e,t,n){let r=oO(n);!r||t.has(r)||(t.add(r),e.push(r))}function rO(e,t,n,r){if(r>4||t.length>=12)return;if(Array.isArray(e)){for(let i of e)if(rO(i,t,n,r+1),t.length>=12)return;return}let i=aO(e);if(i){nO(t,n,i.path),nO(t,n,i.filePath),nO(t,n,i.relativePath),nO(t,n,i.filename),nO(t,n,i.newPath),nO(t,n,i.oldPath);for(let e of[`item`,`result`,`input`,`data`,`changes`,`files`,`edits`,`patch`,`patches`,`operations`])if(e in i&&(rO(i[e],t,n,r+1),t.length>=12))return}}function iO(e){let t=[],n=new Set;return rO(aO(e?.data),t,n,0),t}function aO(e){return e&&typeof e==`object`?e:null}function oO(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}var sO=new WeakMap;function cO(e){return!(e.agentSpawn!==void 0||!BD(e)||UD(e)||GD(e))}function lO(e){let t=sO.get(e);if(t)return t;let n=e.payload&&typeof e.payload==`object`?e.payload:null,r=sE(n),i=iO(n),a=GE(n),o=OD(n),s=e.kind===`task.progress`||e.kind===`task.completed`,c=s&&typeof n?.summary==`string`&&n.summary.length>0?n.summary:null,l=s&&!c&&typeof n?.detail==`string`&&n.detail.length>0?n.detail:null,u=c||l,d=s?!l&&n&&typeof n.detail==`string`&&n.detail.length>0?cE(n.detail).output:null:zE(n,a??e.summary),f=s?null:$D(n),p={id:e.id,createdAt:e.createdAt,turnId:e.turnId,label:u||e.summary,tone:e.kind===`task.progress`?`thinking`:e.tone,sourceActivityKind:e.kind};if(e.kind===`user-input.answer-submitted`){let e=n&&uD(n)?n:null;e&&(p.questionAnswer={requestId:e.requestId,questionTextById:e.questionTextById,answers:e.answers,attachmentsByQuestionId:e.attachmentsByQuestionId})}let m=AE(n),h=tO(n),g=oO(aO(n?.data)?.imagePath);if(d)p.detail=d;else if(e.kind===`runtime.error`||e.kind===`runtime.warning`){let t=kE(n,e.summary);t&&(p.detail=t)}if(g&&(p.viewedImagePath=g),r.command&&(p.command=r.command),r.rawCommand&&(p.rawCommand=r.rawCommand),i.length>0&&(p.changedFiles=i),a&&(p.toolTitle=a),o.toolSurface&&(p.toolSurface=o.toolSurface),o.toolIcon&&(p.toolIcon=o.toolIcon),o.toolSource&&(p.toolSource=o.toolSource),m===`mcp_tool_call`){let e=aO(n?.data),t=typeof e?.toolName==`string`?e.item??e:e?.item;t!==void 0&&(p.toolData=t)}m&&(p.itemType=m),h&&(p.requestKind=h),f&&(p.toolCallId=f);let _=zD(n);!_&&e.kind===`tool.completed`&&(_=`completed`),_&&(p.toolLifecycleStatus=_);let v=e.kind===`task.started`||e.kind===`task.progress`||e.kind===`task.completed`;v&&typeof n?.taskId==`string`&&n.taskId.length>0&&(p.taskId=n.taskId),v&&typeof n?.role==`string`&&n.role.length>0&&(p.agentRole=n.role),v&&(n?.taskType===`local_workflow`||typeof n?.workflowName==`string`&&n.workflowName.length>0)&&(p.isWorkflowCoordinator=!0),v&&n&&n.agentKind!==`agent`&&(p.isBackgroundTask=!0);let y=XE(n);if(y)p.githubConfirmation=y,p.tone=`approval`,p.label=`GitHub action needs approval`,p.toolTitle=eD(y.operation),p.detail=tD(y);else{let e=ZE(n);e&&(p.githubActionRequired=e,p.tone=`approval`,p.label=nD(e.action),p.toolTitle=`GitHub setup required`,p.detail=iD(e))}let b=QD(p);return b&&(p.collapseKey=b),sO.set(e,p),p}var uO=new Set([`tool.started`,`task.started`,`context-window.updated`,`text-generation.usage`,`worktree.stage`,`launch.agent-starting`,`turn.terminal-status`]);function dO(e){return uO.has(e.kind)||e.summary===`Checkpoint captured`}function fO(e,t){return!t.latestTurnId||e.turnId===t.latestTurnId||pO(e)?!0:mO(e,t.latestTurnStartedAt)}function pO(e){return e.kind.startsWith(`worktree.`)||e.kind.startsWith(`setup-script.`)}function mO(e,t){return e.turnId!==null||e.tone!==`error`||t===null?!1:e.createdAt>=t}function hO(e){return e.agentKind===`agent`}function gO(e){let t=e.payload&&typeof e.payload==`object`?e.payload:null;return!t||typeof t.taskId!=`string`?!1:hO(t)}function _O(e){let t=e.payload&&typeof e.payload==`object`?e.payload:null;return t?e.kind===`task.started`||e.kind===`task.progress`||e.kind===`task.updated`||e.kind===`task.completed`?typeof t.agentId==`string`&&t.agentId.trim().length>0||t.timelineBypass===!0?!(e.kind!==`task.updated`&&typeof t.taskId==`string`&&hO(t)):!1:t.timelineBypass===!0||typeof t.agentId==`string`&&t.agentId.trim().length>0:!1}function vO(){if(typeof window>`u`)return!1;try{return window.localStorage.getItem(`forge:debug-mode`)===`true`}catch{return!1}}function yO(e){if(e.kind!==`tool.updated`&&e.kind!==`tool.completed`)return!1;let t=e.payload&&typeof e.payload==`object`?e.payload:null;return typeof t?.detail==`string`&&t.detail.startsWith(`ExitPlanMode:`)}function bO(e,t,n){let r=vO(),i={latestTurnId:t,latestTurnStartedAt:n??null},a=[...e].toSorted(xO),o=new Set;for(let e of a)if((e.kind===`task.started`||e.kind===`task.progress`||e.kind===`task.completed`)&&gO(e)){let t=oO(aO(e.payload)?.toolUseId);t&&o.add(t)}let s=[];for(let e of _D(a)){if(!fO(e,i)||!(e.kind===`task.started`&&gO(e))&&dO(e)||e.kind===`task.started`&&!gO(e)||e.kind===`task.updated`||e.kind===`tool.progress`||e.kind===`turn.plan.updated`||!r&&OE(e)||yO(e)||_O(e))continue;let t=lO(e);if(e.kind===`tool.updated`&&t.itemType===`collab_agent_tool_call`&&t.toolLifecycleStatus===`inProgress`&&t.tone!==`error`){let t=aO(aO(e.payload)?.data)?.toolName;if(t===`Agent`||t===`Task`)continue}(e.kind===`tool.updated`||e.kind===`tool.completed`)&&t.toolCallId&&o.has(t.toolCallId)&&t.tone!==`error`&&t.toolLifecycleStatus!==`failed`||s.push(t)}return JD(s).map(({sourceActivityKind:e,collapseKey:t,isWorkflowCoordinator:n,isBackgroundTask:r,...i})=>i)}function xO(e,t){if(e.sequence!==void 0&&t.sequence!==void 0){if(e.sequence!==t.sequence)return e.sequence-t.sequence}else if(e.sequence!==void 0)return 1;else if(t.sequence!==void 0)return-1;let n=e.createdAt.localeCompare(t.createdAt);if(n!==0)return n;let r=SO(e.kind)-SO(t.kind);return r===0?e.id.localeCompare(t.id):r}function SO(e){return e.endsWith(`.started`)||e===`tool.started`?0:e.endsWith(`.progress`)||e.endsWith(`.updated`)?1:e.endsWith(`.completed`)||e.endsWith(`.resolved`)?2:1}function CO(e){return{id:e.id,kind:`message`,createdAt:e.createdAt,message:e}}function wO(e){return{id:e.id,kind:`proposed-plan`,createdAt:e.createdAt,proposedPlan:e}}function TO(e){return{id:e.id,kind:`work`,createdAt:e.createdAt,entry:e}}function EO(e,t){return e.createdAt.localeCompare(t.createdAt)}function DO(e){switch(e.kind){case`message`:return 0;case`proposed-plan`:return 1;case`work`:return 2}}function OO(e,t){let n=EO(e,t);return n===0?DO(e)<=DO(t):n<0}function kO(e,t){if(e===t)return!0;if(t.length<e.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function AO(e,t){if(t.length===0)return[...e];let n=e.at(-1),r=!0;for(let e=1;e<t.length;e+=1)if(EO(t[e-1],t[e])>0){r=!1;break}if(r&&(n===void 0||OO(n,t[0])))return[...e,...t];let i=[],a=0,o=0;for(;a<e.length||o<t.length;){let n=e[a],r=t[o];n!==void 0&&(r===void 0||OO(n,r))?(i.push(n),a+=1):r!==void 0&&(i.push(r),o+=1)}return i}var jO=e=>e===`assistant`||e===`reasoning`;function MO(e,t){if(!jO(e.role)||e.role!==t.role||!e.streaming||!t.streaming)return!1;let{text:n,updatedAt:r,...i}=e,{text:a,updatedAt:o,...s}=t;return $m(i,s)}function NO(e,t){if(e.length!==t.messages.length)return null;let n=new Map;for(let[r,i]of e.entries()){let e=t.messages[r];if(i!==e){if(!MO(e,i))return null;n.set(e,i)}}return n.size===0?t.entries:t.entries.map(e=>{let t=e.kind===`message`?n.get(e.message):void 0;return t?CO(t):e})}function PO(e,t,n,r=null){if(r!==null&&r.proposedPlans.length===t.length&&r.workEntries.length===n.length&&kO(r.proposedPlans,t)&&kO(r.workEntries,n)){let i=NO(e,r);if(i!==null)return{messages:e,proposedPlans:t,workEntries:n,entries:i}}let i=new Set(n.flatMap(e=>e.questionAnswer?[`async-answer:${e.questionAnswer.requestId}`]:[])),a=e=>e.role!==`user`||!i.has(e.id);if(r!==null&&!r.entries.some(e=>e.kind===`message`&&!a(e.message))&&kO(r.messages,e)&&kO(r.proposedPlans,t)&&kO(r.workEntries,n)){let i=e.slice(r.messages.length).filter(a).map(CO),o=t.slice(r.proposedPlans.length).map(wO),s=n.slice(r.workEntries.length).map(TO),c=[...i,...o,...s].toSorted(EO);return{messages:e,proposedPlans:t,workEntries:n,entries:AO(r.entries,c)}}let o=e.filter(a).map(CO),s=t.map(wO),c=n.map(TO);return{messages:e,proposedPlans:t,workEntries:n,entries:[...o,...s,...c].toSorted(EO)}}var FO=[{value:`codex`,label:`Codex`,available:!0},{value:`claudeAgent`,label:`Claude`,available:!0},{value:`cmmd`,label:`CMMD`,available:!0},{value:`ollama`,label:`Ollama`,available:!1},{value:`cursor`,label:`Cursor`,available:!1}];function IO(e){if(!Number.isFinite(e)||e<0)return`0ms`;if(e<1e3)return`${Math.max(1,Math.round(e))}ms`;if(e<1e4)return`${(e/1e3).toFixed(1)}s`;if(e<6e4)return`${Math.round(e/1e3)}s`;let t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);return n===0?`${t}m`:n===60?`${t+1}m`:`${t}m ${n}s`}function LO(e,t){if(!t)return null;let n=Date.parse(e),r=Date.parse(t);return Number.isNaN(n)||Number.isNaN(r)||r<n?null:IO(r-n)}function RO(e,t){return!e?.startedAt||!e.completedAt?!1:!t||t.orchestrationStatus!==`running`}function zO(e,t,n){let r=t?.orchestrationStatus===`running`?t.activeTurnId??null:null;return r===null?RO(e,t)?n:e?.startedAt??n:e?.turnId===r?e.startedAt??n:n}function BO(e){let t=e?.toLowerCase();return t?t.includes(`stale pending approval request`)||t.includes(`stale pending user-input request`)||t.includes(`unknown pending approval request`)||t.includes(`unknown pending permission request`)||t.includes(`unknown pending user-input request`):!1}function VO(e){let t=new Map,n=[...e].toSorted(xO);for(let e of n){let n=e.payload&&typeof e.payload==`object`?e.payload:null,r=n&&typeof n.requestId==`string`?kr.make(n.requestId):null,i=n&&(n.requestKind===`command`||n.requestKind===`file-read`||n.requestKind===`file-change`)?n.requestKind:n?eO(n.requestType):null,a=n&&typeof n.detail==`string`?n.detail:void 0;if(e.kind===`approval.requested`&&r&&i){t.set(r,{requestId:r,requestKind:i,createdAt:e.createdAt,...a?{detail:a}:{}});continue}if(e.kind===`approval.resolved`&&r){t.delete(r);continue}if(e.kind===`provider.approval.respond.failed`&&r&&BO(a)){t.delete(r);continue}}return[...t.values()].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt))}function HO(e){let t=e?.questions;if(!Array.isArray(t))return null;let n=t.map(e=>{if(!e||typeof e!=`object`)return null;let t=e;if(typeof t.id!=`string`||typeof t.header!=`string`||typeof t.question!=`string`||!Array.isArray(t.options))return null;let n=t.options.map(e=>{if(!e||typeof e!=`object`)return null;let t=e;return typeof t.label!=`string`||typeof t.description!=`string`?null:{label:t.label,description:t.description}}).filter(e=>e!==null);return n.length===0?null:{id:t.id,header:t.header,question:t.question,options:n,multiSelect:t.multiSelect===!0}}).filter(e=>e!==null);return n.length>0?n:null}function UO(e){let t=new Map,n=[...e].toSorted(xO);for(let e of n){let n=e.payload&&typeof e.payload==`object`?e.payload:null,r=n&&typeof n.requestId==`string`?kr.make(n.requestId):null,i=n&&typeof n.detail==`string`?n.detail:void 0;if(e.kind===`user-input.requested`&&r){let i=HO(n);if(!i)continue;t.set(r,{requestId:r,createdAt:e.createdAt,questions:i});continue}if(e.kind===`user-input.resolved`&&r){t.delete(r);continue}e.kind===`provider.user-input.respond.failed`&&r&&BO(i)&&t.delete(r)}return[...t.values()].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt))}function WO(e,t){if(!t)return null;let n=[...e].toSorted(xO),r=null;for(let e of n){let t=ZE(e.payload&&typeof e.payload==`object`?e.payload:null);t&&(r={request:t,turnId:e.turnId})}return!r||r.turnId!==t?null:r.request}function GO(e,t){let n=[...e].toSorted(xO),r=n.filter(e=>e.kind===`turn.plan.updated`),i=(t?r.findLast(e=>e.turnId===t):void 0)??r.at(-1)??null;if(!i)return null;let a=iE(i);if(!a)return null;let o=r.filter(e=>e.turnId===i.turnId),s=o.findLastIndex(e=>iE(e)===null),c=oE(a,o.slice(s+1)),l=i.turnId!==null&&n.some(e=>e.kind===`turn.completed`&&e.turnId===i.turnId&&xO(i,e)<0);return{...c,steps:l?c.steps.map(e=>e.status===`inProgress`?{...e,status:`completed`}:e):c.steps}}function KO(e,t){if(t){let n=[...e].filter(e=>e.turnId===t).toSorted((e,t)=>e.updatedAt.localeCompare(t.updatedAt)||e.id.localeCompare(t.id)).at(-1);if(n)return ck(n)}let n=[...e].toSorted((e,t)=>e.updatedAt.localeCompare(t.updatedAt)||e.id.localeCompare(t.id)).at(-1);return n?ck(n):null}function qO(e){let t=e.threads.find(t=>t.id===e.threadId)?.proposedPlans??[];if(!e.latestTurnSettled){let t=e.latestTurn?.sourceProposedPlan;if(t){let n=e.threads.find(e=>e.id===t.threadId)?.proposedPlans.find(e=>e.id===t.planId);if(n)return ck(n)}}return KO(t,e.latestTurn?.turnId??null)}function JO(e){return e!==null&&e.implementedAt===null}function YO(e,t){return t?e.some(e=>e.turnId===t&&e.tone===`tool`):!1}var XO=new WeakMap;function ZO(e,t){if(e.role!==`assistant`)return[];let n=$O(e.text,{workEntries:t,createdAt:e.createdAt});if(!n)return[];let r=XO.get(e),i=`${e.id}:github-confirmation:${n.confirmationId}`;if(r&&r[0]?.id===i)return r;let a=[{id:i,kind:`work`,createdAt:e.createdAt,entry:{id:i,createdAt:e.createdAt,label:`GitHub action needs approval`,detail:tD(n),tone:`approval`,toolTitle:eD(n.operation),githubConfirmation:n}}];return XO.set(e,a),a}function QO(e,t,n,r){let i=PO(e,t,n,r),a=e.flatMap(e=>ZO(e,n));if(a.length===0)return i;let o=new Set(i.entries.map(e=>e.id)),s=a.filter(e=>!o.has(e.id));return s.length===0?i:{...i,entries:[...i.entries,...s].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt))}}function $O(e,t){if(!e.includes(`confirm_github_tool`))return null;let n=ik(e,/\b(?:New confirmation id|Confirmation id):\s*`?([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})`?/i)??null,r=/\bRepo(?: to create)?:\s*(private|public|internal)\s+`?([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)`?/i.exec(e);if(!n)return null;let i=ek(e,n,t);if(i)return i;if(!r)return null;let a=r[1]?.toLowerCase(),o=r[2],s=r[3];return!o||!s?null:{confirmationId:n,toolName:`forge_github_create_repository`,operation:`create_repository`,request:{owner:o,name:s,visibility:a}}}function ek(e,t,n){if(!tk(e))return null;let r=nk(n?.workEntries??[],n?.createdAt,`forge_github_refresh_credentials`)?.request,i=r?rk(r.cwd):null;return i?{confirmationId:t,toolName:`forge_github_refresh_credentials`,operation:`refresh_credentials`,request:{cwd:i}}:null}function tk(e){return/\bforge_github_refresh_credentials\b/i.test(e)||/\bcredential refresh\b/i.test(e)||/\brefresh(?:ing)? GitHub credentials\b/i.test(e)}function nk(e,t,n){for(let r of e.toReversed()){if(t!==void 0&&r.createdAt>t)continue;let e=r.githubConfirmation;if(e?.toolName===n)return e}return null}function rk(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function ik(e,t){return t.exec(e)?.[1]??null}function ak(e){let t=[...e].toSorted((e,t)=>e.completedAt.localeCompare(t.completedAt)),n={};for(let e=0;e<t.length;e+=1){let r=t[e];r&&(n[r.turnId]=e+1)}return n}function ok(e){return!e||e.status===`closed`?`disconnected`:e.status===`connecting`?`connecting`:e.status===`running`?`running`:`ready`}function sk(e,t){if(t===`disconnected`||t===`connecting`)return null;for(let t of e.toReversed())if(t.kind===`work`&&t.entry.githubConfirmation)return t.entry.githubConfirmation;return null}function ck(e){return{id:e.id,createdAt:e.createdAt,updatedAt:e.updatedAt,turnId:e.turnId,planMarkdown:e.planMarkdown,implementedAt:e.implementedAt,implementationThreadId:e.implementationThreadId}}function lk(e){let t=e.browser,n=t?{openSession:t.openSession,listSessions:t.listSessions,closeSession:t.closeSession,getSession:t.getSession,command:t.command,clearBrowsingData:t.clearBrowsingData,attachDisplay:t.attachDisplay,addDisplayIceCandidate:async e=>{await t.addDisplayIceCandidate(e)},onEvent:(e,n)=>t.onEvent(e,n)}:void 0;return{...n?{browser:n}:{},attachments:{createUploadUrl:t=>e.attachments.createUploadUrl(t),delete:t=>e.attachments.delete(t)},computer:{input:t=>e.computer.input(t)},threadDevRuntime:{get:t=>e.threadDevRuntime.get(t),allocatePort:t=>e.threadDevRuntime.allocatePort(t),release:t=>e.threadDevRuntime.release(t)},devTunnel:{register:t=>e.devTunnel.register(t),unregister:t=>e.devTunnel.unregister(t),list:t=>e.devTunnel.list(t)},terminal:{open:t=>e.terminal.open(t),write:t=>e.terminal.write(t),resize:t=>e.terminal.resize(t),signal:t=>e.terminal.signal(t),clear:t=>e.terminal.clear(t),restart:t=>e.terminal.restart(t),close:t=>e.terminal.close(t),onEvent:t=>e.terminal.onEvent(t)},projects:{searchContents:e.projects.searchContents,searchEntries:e.projects.searchEntries,readFile:e.projects.readFile,writeFile:e.projects.writeFile},workspace:{environmentPreflight:e.workspace.environmentPreflight,listDirectory:e.workspace.listDirectory,ensureScratch:e.workspace.ensureScratch},shell:{openInEditor:t=>e.shell.openInEditor(t)},git:{pull:e.git.pull,refreshStatus:e.git.refreshStatus,onStatus:(t,n,r)=>e.git.onStatus(t,n,r),listBranches:e.git.listBranches,createWorktree:e.git.createWorktree,removeWorktree:e.git.removeWorktree,createBranch:e.git.createBranch,checkout:e.git.checkout,init:e.git.init,resolvePullRequest:e.git.resolvePullRequest,preparePullRequestThread:e.git.preparePullRequestThread},pullRequests:{list:t=>e.pullRequests.list(t),listStats:t=>e.pullRequests.listStats(t),detail:t=>e.pullRequests.detail(t),activity:t=>e.pullRequests.activity(t),threadComments:t=>e.pullRequests.threadComments(t),diffFileContents:t=>e.pullRequests.diffFileContents(t),runAction:t=>e.pullRequests.runAction(t),update:t=>e.pullRequests.update(t),comment:t=>e.pullRequests.comment(t),updateComment:t=>e.pullRequests.updateComment(t),submitReview:t=>e.pullRequests.submitReview(t),replyToThread:t=>e.pullRequests.replyToThread(t),setThreadResolution:t=>e.pullRequests.setThreadResolution(t),setReaction:t=>e.pullRequests.setReaction(t),invalidate:t=>e.pullRequests.invalidate(t),reviewerCandidates:t=>e.pullRequests.reviewerCandidates(t),requestReviewers:t=>e.pullRequests.requestReviewers(t)},orchestration:{dispatchCommand:e.orchestration.dispatchCommand,searchThreads:e.orchestration.searchThreads,getTurnDiff:e.orchestration.getTurnDiff,getFullThreadDiff:e.orchestration.getFullThreadDiff,subscribeShell:(t,n)=>e.orchestration.subscribeShell(t,n),subscribeThread:(t,n,r)=>e.orchestration.subscribeThread(t,n,r)}}}function uk(e){if(typeof window>`u`||!e)return;let t=dw(e);return t?lk(t.client):void 0}function dk(e){let t=(0,A.c)(4),n;t[0]===e?n=t[1]:(n=()=>dw(e),t[0]=e,t[1]=n);let r=(0,O.useSyncExternalStore)(uw,n,fk),i,a;return t[2]===r?a=t[3]:(a=r?lk(r.client):void 0,t[2]=r,t[3]=a),i=a,i}function fk(){return null}function pk(e){let t=uk(e);if(!t)throw Error(`Environment API not found for environment ${e}`);return t}var mk=[`preview`,`terminal`,`canvas`,`diff`,`plan`,`task`,`simulator`,`display`,`agents`,`file`,`files`,`pull-request`],hk={isOpen:!1,isMaximized:!1,activeSurfaceId:null,surfaces:[]};function gk(e){return e===null?{id:`browser:new`,kind:`preview`,resourceId:null}:{id:`browser:${e}`,kind:`preview`,resourceId:e}}function _k(e,t,n,r=`execution-intent`){return{id:`file:${e}`,kind:`file`,relativePath:e,revealLine:t,revealRequestId:n,readPolicy:r}}function vk(e){let t=[e.provider,e.environmentId,e.repositoryLinkId??``,e.projectId,e.host.toLowerCase(),e.repository,String(e.number)].map(e=>encodeURIComponent(e)).join(`:`);return{...e,id:`pull-request:${t}`,kind:`pull-request`}}function yk(e){return e===`diff`?{id:`diff`,kind:`diff`,turnId:null,filePath:null}:{id:e,kind:e}}var bk=`workspace:pull-requests`;function xk(e){return typeof e==`object`&&!!e}function Sk(e){return typeof e==`string`&&mk.includes(e)}function Ck(e){return typeof e==`number`&&Number.isFinite(e)?Math.max(1,Math.trunc(e)):null}function wk(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:0}function Tk(e){let t=e.relativePath;return typeof t!=`string`||t.length===0?null:{id:`file:${t}`,kind:`file`,relativePath:t,revealLine:Ck(e.revealLine),revealRequestId:wk(e.revealRequestId),readPolicy:e.readPolicy===`connected-only`?`connected-only`:`execution-intent`}}function Ek(e){let t=e.resourceId;return t==null?{id:`browser:new`,kind:`preview`,resourceId:null}:typeof t!=`string`||t.length===0?null:{id:`browser:${t}`,kind:`preview`,resourceId:t}}function Dk(e){let t=e.turnId,n=e.filePath,r=typeof t==`string`&&t.length>0?Vr.make(t):null;return{id:`diff`,kind:`diff`,turnId:r,filePath:r&&typeof n==`string`&&n.length>0?n:null}}var Ok=new Set([`github`,`gitlab`,`azure-devops`,`bitbucket`,`unknown`]);function kk(e){return typeof e==`string`&&e.length>0}function Ak(e){return e===null||typeof e==`string`}function jk(e){return e===void 0||Ak(e)}function Mk(e){let t=e.provider,n=e.environmentId,r=e.repositoryLinkId,i=e.projectId,a=e.host,o=e.repository,s=Ck(e.number),c=e.title;return![kk(t)&&Ok.has(t),kk(n),Ak(r),kk(i),kk(a),kk(o),s!==null,jk(c)].every(Boolean)||!kk(t)||!kk(n)?null:vk({provider:t,environmentId:Hr.make(n),repositoryLinkId:r,projectId:xi.make(i),host:a,repository:o,number:s,...typeof c==`string`||c===null?{title:c}:{}})}function Nk(e){let t=e.label;if(typeof t!=`string`)return;let n=t.trim();return n.length>0?n:void 0}function Pk(e){if(!xk(e)||!Sk(e.kind))return null;let t=e.kind,n=t===`file`?Tk(e):t===`preview`?Ek(e):t===`diff`?Dk(e):t===`pull-request`?Mk(e):{id:t,kind:t};if(n===null)return null;let r=Nk(e);return r===void 0?n:{...n,label:r}}function Fk(e){let t=[],n=new Set;for(let r of Array.isArray(e)?e:[]){let e=Pk(r);!e||n.has(e.id)||(n.add(e.id),t.push(e))}return t}function Ik(e){if(!xk(e))return null;let t=Fk(e.surfaces);if(t.length===0)return null;let n=e.activeSurfaceId,r=t.some(e=>e.id===n),i=typeof n==`string`&&r?n:t[0]?.id??null;return{isOpen:e.isOpen===!0,activeSurfaceId:i,surfaces:t}}function Lk(e){if(!xk(e)||!xk(e.byThreadKey))return{byThreadKey:{}};let t={};for(let[n,r]of Object.entries(e.byThreadKey)){if(n===bk)continue;let e=Ik(r);e&&(t[n]=e)}return{byThreadKey:t}}var Rk=`forge:right-panel-state`,zk=3,Bk=e=>e===`workspace:pull-requests`;function Vk(e){return`draft:${e}`}function Hk(e){return e.startsWith(`draft:`)}function Uk(e){return e==null||!Number.isFinite(e)?null:Math.max(1,Math.trunc(e))}var Wk=(e,t,n=!0)=>({...e,isOpen:!0,surfaces:e.surfaces.some(e=>e.id===t.id)?e.surfaces:[...e.surfaces,t],activeSurfaceId:n?t.id:e.activeSurfaceId});function Gk(e,t){if(t.length===0){let{label:t,...n}=e;return n}return{...e,label:t}}var z=(e,t,n)=>{let r=e[t]??hk,i=n(r);if(!i.isOpen&&i.activeSurfaceId===null&&i.surfaces.length===0){if(!(t in e))return e;let{[t]:n,...r}=e;return r}return i===r?e:{...e,[t]:i}},Kk=wa()(Wf(e=>({byThreadKey:{},open:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>Wk(e,e.surfaces.find(e=>e.kind===n)??yk(n)))})),openBrowser:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t=n?e.surfaces.filter(e=>e.id!==`browser:new`):e.surfaces;return Wk({...e,surfaces:t},gk(n))})})),revealBrowser:t=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>Wk(e,e.surfaces.find(e=>e.kind===`preview`)??gk(null)))})),openDiff:(t,n,r)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t={id:`diff`,kind:`diff`,turnId:n??null,filePath:n?r??null:null};return{...e,isOpen:!0,activeSurfaceId:t.id,surfaces:e.surfaces.some(e=>e.id===`diff`)?e.surfaces.map(e=>e.id===`diff`?t:e):[...e.surfaces,t]}})})),openFile:(t,n,r,i=`execution-intent`)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t=`file:${n}`,a=e.surfaces.find(e=>e.id===t&&e.kind===`file`),o=_k(n,Uk(r),(a?.revealRequestId??0)+1,i);return{...e,isOpen:!0,activeSurfaceId:o.id,surfaces:a?e.surfaces.map(e=>e.id===o.id?o:e):[...e.surfaces,o]}})})),openPullRequest:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>Wk(e,vk(n)))})),activateSurface:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>e.surfaces.some(e=>e.id===n)?{...e,isOpen:!0,activeSurfaceId:n}:e)})),closeSurface:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t=e.surfaces.findIndex(e=>e.id===n);if(t<0)return e;let r=e.surfaces.filter(e=>e.id!==n);if(e.activeSurfaceId!==n)return{...e,isOpen:r.length>0&&e.isOpen,surfaces:r};let i=r[Math.min(t,r.length-1)]??null;return{...e,isOpen:r.length>0&&e.isOpen,surfaces:r,activeSurfaceId:i?.id??null}})})),closeOtherSurfaces:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t=e.surfaces.find(e=>e.id===n);return!t||e.surfaces.length===1?e:{...e,isOpen:!0,surfaces:[t],activeSurfaceId:t.id}})})),closeSurfacesToRight:(t,n)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t=e.surfaces.findIndex(e=>e.id===n);if(t<0||t===e.surfaces.length-1)return e;let r=e.surfaces.slice(0,t+1),i=r.some(t=>t.id===e.activeSurfaceId);return{...e,surfaces:r,activeSurfaceId:i?e.activeSurfaceId:n}})})),closeAllSurfaces:t=>e(e=>({byThreadKey:z(e.byThreadKey,t,()=>hk)})),renameSurface:(t,n,r)=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>{let t=r.trim();return{...e,surfaces:e.surfaces.map(e=>e.id===n?Gk(e,t):e)}})})),show:t=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>({...e,isOpen:!0}))})),close:t=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>e.isOpen?{...e,isOpen:!1,isMaximized:!1}:e)})),toggleVisibility:t=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>({...e,isOpen:!e.isOpen}))})),toggleMaximized:t=>e(e=>({byThreadKey:z(e.byThreadKey,t,e=>e.isOpen?{...e,isMaximized:!(e.isMaximized??!1)}:e)})),removeThread:t=>e(e=>{if(!(t in e.byThreadKey))return e;let{[t]:n,...r}=e.byThreadKey;return{byThreadKey:r}})}),{name:Rk,version:zk,storage:Hf(()=>An),partialize:e=>({byThreadKey:Object.fromEntries(Object.entries(e.byThreadKey).filter(([e])=>!Hk(e)&&!Bk(e)))}),migrate:e=>Lk(e)}));function qk(e,t){let n={hour:`numeric`,minute:`2-digit`,...t?{second:`2-digit`}:{}};return e===`locale`?n:{...n,hour12:e===`12-hour`}}var Jk=new Map;function Yk(e,t){let n=`${e}:${t?`seconds`:`minutes`}`,r=Jk.get(n);if(r)return r;let i=new Intl.DateTimeFormat(void 0,qk(e,t));return Jk.set(n,i),i}function Xk(e,t){return Yk(t,!0).format(new Date(e))}function Zk(e,t){return Yk(t,!1).format(new Date(e))}function Qk(e){let t=Date.now()-new Date(e).getTime();if(t<0)return{value:`just now`,suffix:null};let n=Math.floor(t/1e3);if(n<60)return{value:`just now`,suffix:null};let r=Math.floor(n/60);if(r<60)return{value:`${r}m`,suffix:`ago`};let i=Math.floor(r/60);return i<24?{value:`${i}h`,suffix:`ago`}:{value:`${Math.floor(i/24)}d`,suffix:`ago`}}function $k(e){let t=Qk(e);return t.suffix?`${t.value} ${t.suffix}`:t.value}function eA(e){if(e===null)return null;let t=e.trim();return t.length>0?t:null}var tA=Object.freeze({data:null,error:null,cause:null,isPending:!1}),nA=Object.freeze({...tA,isPending:!0}),rA=un(tA).pipe(ln,sn(`git-status:null`)),iA=()=>void 0,aA=new Map,oA=new Set,sA=new Map,cA=new Map,lA=1e3,uA=on(e=>(oA.add(e),un(nA).pipe(ln,sn(`git-status:${e}`))));function dA(e){return e.environmentId===null||eA(e.cwd)===null?null:`${e.environmentId}:${e.cwd}`}function fA(e){if(e.environmentId===null)return null;let t=dw(e.environmentId);return t?{clientIdentity:t.environmentId,client:t.client.git}:null}function pA(e){let t=dA(e);return t===null?tA:cn.get(uA(t))}function mA(e,t){let n=dA(e);if(n===null)return iA;let r=aA.get(n);return r?(r.refCount+=1,()=>_A(n)):(aA.set(n,{refCount:1,unsubscribe:vA(n,e,t)}),()=>_A(n))}function hA(e,t){let n=dA(e),r=eA(e.cwd);if(n===null||r===null)return Promise.resolve(null);let i=t??fA(e)?.client;if(!i)return Promise.resolve(pA(e).data);let a=sA.get(n);if(a)return a;let o=cA.get(n)??0;if(Date.now()-o<lA)return Promise.resolve(pA(e).data);cA.set(n,Date.now());let s=i.refreshStatus({cwd:r}).finally(()=>{sA.delete(n)});return sA.set(n,s),s}function gA(e){let t=(0,A.c)(4),n=dA(e),r,i;t[0]!==e.cwd||t[1]!==e.environmentId?(r=()=>mA({environmentId:e.environmentId,cwd:e.cwd}),i=[e.environmentId,e.cwd],t[0]=e.cwd,t[1]=e.environmentId,t[2]=r,t[3]=i):(r=t[2],i=t[3]),(0,O.useEffect)(r,i);let a=ma(n===null?rA:uA(n));return n===null?tA:a}function _A(e){let t=aA.get(e);t&&(--t.refCount,!(t.refCount>0)&&(t.unsubscribe(),aA.delete(e)))}function vA(e,t,n){let r=eA(t.cwd);if(r===null)return iA;let i=null,a=iA,o=()=>{let o=n?{clientIdentity:`provided:${e}`,client:n}:fA(t);if(!o){i!==null&&(a(),a=iA,i=null),bA(e);return}i!==o.clientIdentity&&(a(),i=o.clientIdentity,a=yA(e,r,o.client))},s=n?iA:uw(o);return o(),()=>{s(),a()}}function yA(e,t,n){return bA(e),n.onStatus({cwd:t},t=>{cn.set(uA(e),{data:t,error:null,cause:null,isPending:!1})},{onResubscribe:()=>{bA(e)}})}function bA(e){let t=uA(e),n=cn.get(t),r=n.data===null?nA:{...n,error:null,cause:null,isPending:!0};(n.data!==r.data||n.error!==r.error||n.cause!==r.cause||n.isPending!==r.isPending)&&cn.set(t,r)}function xA(e){let t=[];for(let n of e){let e=n.children??[];if(e.length>0){t.push({item:n,isGroupLabel:!0});for(let n of e)t.push({item:n,isGroupLabel:!1});continue}Array.isArray(n.children)||t.push({item:n,isGroupLabel:!1})}return t}function SA(e){let t=document.createElement(`div`);return t.textContent=e,t.className=`px-2 pt-1.5 pb-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70`,t}function CA(e){let t=document.createElement(`button`);return t.type=`button`,t.textContent=e.label,t.disabled=e.disabled,t.className=e.disabled?`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-[11px] text-muted-foreground/50 cursor-not-allowed`:e.destructive?`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-[11px] text-destructive transition-colors hover:bg-accent`:`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-[11px] text-popover-foreground transition-colors hover:bg-accent`,t}function wA(e,t){return new Promise(n=>{let r=document.createElement(`div`);r.style.cssText=`position:fixed;inset:0;z-index:9999`;let i=document.createElement(`div`);i.className=`fixed z-[10000] min-w-[160px] rounded-lg border bg-popover p-1 text-popover-foreground shadow-lg/5 outline-none before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] dark:before:shadow-[0_-1px_--theme(--color-white/6%)]`;let a=t?.x??0,o=t?.y??0;i.style.top=`${o}px`,i.style.left=`${a}px`;function s(e){document.removeEventListener(`keydown`,c),r.remove(),i.remove(),n(e)}function c(e){e.key===`Escape`&&(e.preventDefault(),s(null))}r.addEventListener(`mousedown`,()=>s(null)),document.addEventListener(`keydown`,c);let l=!1;for(let{item:t,isGroupLabel:n}of xA(e)){if(n){i.appendChild(SA(t.label));continue}let e=t.destructive===!0||t.id===`delete`,r=t.disabled===!0;if(e&&!l){let e=document.createElement(`div`);e.className=`-mx-1 my-1 h-px bg-border`,i.appendChild(e),l=!0}let a=CA({label:t.label,disabled:r,destructive:e});r||a.addEventListener(`click`,()=>s(t.id)),i.appendChild(a)}document.body.appendChild(r),document.body.appendChild(i),requestAnimationFrame(()=>{let e=i.getBoundingClientRect();e.right>window.innerWidth&&(i.style.left=`${window.innerWidth-e.width-4}px`),e.bottom>window.innerHeight&&(i.style.top=`${window.innerHeight-e.height-4}px`)})})}var TA;function EA(){return DA(mw().client)}function DA(e){return{getConfig:e.server.getConfig,refreshProviders:e.server.refreshProviders,startProviderAuth:e.server.startProviderAuth,repairProviderAuthRuntime:e.server.repairProviderAuthRuntime,disconnectProviderAuth:e.server.disconnectProviderAuth,getProviderAuthSession:e.server.getProviderAuthSession,cancelProviderAuth:e.server.cancelProviderAuth,submitProviderAuthCode:e.server.submitProviderAuthCode,syncPersonalCodexToCloud:e.server.syncPersonalCodexToCloud,syncPersonalClaudeToCloud:e.server.syncPersonalClaudeToCloud,upsertKeybinding:e.server.upsertKeybinding,removeKeybinding:e.server.removeKeybinding,getSettings:e.server.getSettings,updateSettings:e.server.updateSettings,updateEnvironmentDisplayName:async t=>{let n=await e.server.updateEnvironmentDisplayName({displayName:t});return $w(n.environment),n}}}function OA(e,t){return{...e,...t,dialogs:{...e.dialogs,...t.dialogs},shell:{...e.shell,...t.shell},contextMenu:{...e.contextMenu,...t.contextMenu},persistence:{...e.persistence,...t.persistence},server:{...e.server,...t.server}}}function kA(e){return{dialogs:{pickFolder:async()=>window.desktopBridge?window.desktopBridge.pickFolder():null,confirm:async e=>window.desktopBridge?window.desktopBridge.confirm(e):window.confirm(e)},shell:{openInEditor:(t,n)=>e.shell.openInEditor({cwd:t,editor:n}),openExternal:async e=>{if(window.desktopBridge){if(!await window.desktopBridge.openExternal(e))throw Error(`Unable to open link.`);return}window.open(e,`_blank`,`noopener,noreferrer`)}},contextMenu:{show:async(e,t)=>window.desktopBridge?window.desktopBridge.showContextMenu(e,t):wA(e,t)},persistence:{getClientSettings:tr,setClientSettings:or,getSavedEnvironmentRegistry:pr,setSavedEnvironmentRegistry:rr,getSavedEnvironmentSecret:Kn,setSavedEnvironmentSecret:Zn,removeSavedEnvironmentSecret:Jn},server:DA(e)}}function AA(){if(typeof window>`u`)return;if(TA)return TA;let e=kA(mw().client);return window.nativeApi?(TA=OA(e,window.nativeApi),TA):(TA=e,TA)}function jA(){let e=AA();if(!e)throw Error(`Local API not found`);return e}function MA(){let e=(0,A.c)(2),[t,n]=(0,O.useState)(NA),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>(n(Ia()),Pa(()=>{n(Ia())})),i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,O.useEffect)(r,i),t}function NA(){return Ia()}function PA(e,t){e.style.setProperty(`--appearance-contrast-base`,`${Math.min(t,100)}%`),e.style.setProperty(`--appearance-contrast-boost`,`${Math.max(t-100,0)}%`),e.style.setProperty(`--appearance-contrast-border-boost`,`${Math.max(t-100,0)/4}%`)}var FA=`-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif`,IA=`ui-monospace, "SF Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace`;function LA(e){let t=e.trim();return t.length===0?``:/^(['"]).*\1$/u.test(t)||/^[a-zA-Z][a-zA-Z0-9-]*$/u.test(t)?t:`"${t.replaceAll(`"`,``)}"`}function RA(e){let t=e.split(`,`).map(LA).filter(e=>e.length>0);return t.length>0?t.join(`, `):null}var zA={appearanceContrastBase:`--appearance-contrast-base`,appearanceContrastBoost:`--appearance-contrast-boost`,appearanceContrastBorderBoost:`--appearance-contrast-border-boost`,fontSans:`--font-sans`,fontMono:`--font-mono`,fontComposer:`--font-composer`,fontTerminal:`--font-terminal`,promptFontSize:`--forge-prompt-font-size`,terminalFontSize:`--forge-terminal-font-size`,glassOpacity:`--glass-opacity`};function BA(e,t){let n=[[zA.fontSans,t.fontFamilySans,FA],[zA.fontMono,t.fontFamilyCode,IA],[zA.fontComposer,t.fontFamilyComposer,`var(--font-sans)`],[zA.fontTerminal,t.fontFamilyTerminal,`var(--font-mono)`]];for(let[t,r,i]of n){let n=RA(r);if(n===null){e.style.removeProperty(t);continue}e.style.setProperty(t,`${n}, ${i}`)}e.style.setProperty(zA.promptFontSize,`${String(t.promptFontSize)}px`),e.style.setProperty(zA.terminalFontSize,`${String(t.terminalFontSize)}px`),e.style.setProperty(zA.glassOpacity,`${String(t.glassOpacity)}%`),PA(e,t.appearanceContrast),t.fontSmoothing?e.style.setProperty(`-webkit-font-smoothing`,`antialiased`):e.style.removeProperty(`-webkit-font-smoothing`)}function VA(){return typeof window<`u`&&typeof localStorage<`u`}function HA(){if(!VA())return{};try{let e=JSON.parse(window.localStorage.getItem(`forge:theme-halves:v1`)??`null`);if(typeof e!=`object`||!e||Array.isArray(e))return{};let t={};for(let n of[`light`,`dark`]){let r=e[n];typeof r==`string`&&(t[n]=r)}return t}catch{return{}}}function UA(){if(!VA())return null;try{return Na(window.localStorage.getItem(Ra))}catch{return null}}function WA(e){if(VA())try{e===null||e.light===void 0&&e.dark===void 0?window.localStorage.removeItem(Ra):window.localStorage.setItem(Ra,JSON.stringify(e))}catch{}}function GA(e,t,n){let r={...e};return n===null?delete r[t]:r[t]=n,r}function KA(e){return e!==null&&(e.light!==void 0||e.dark!==void 0)?e:null}function qA(e,t){let n=(0,A.c)(13),[r,i]=(0,O.useState)(JA),a=MA(),o;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(e,t)=>{let n=GA(HA(),e,t);return WA(n),i(KA(n)),!0},n[0]=o):o=n[0];let s=o,c;n[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>(WA(null),i(null),!0),n[1]=c):c=n[1];let l=c,u;n[2]!==t||n[3]!==r||n[4]!==e?(u=()=>{let n=t===`dark`?`dark`:`light`;Fa(La(e,r,n),n)},n[2]=t,n[3]=r,n[4]=e,n[5]=u):u=n[5];let d;n[6]!==a||n[7]!==t||n[8]!==r||n[9]!==e?(d=[e,t,r,a],n[6]=a,n[7]=t,n[8]=r,n[9]=e,n[10]=d):d=n[10],(0,O.useEffect)(u,d);let f;return n[11]===r?f=n[12]:(f={themeHalves:r,setThemeHalf:s,clearThemeHalves:l},n[11]=r,n[12]=f),f}function JA(){return UA()}var YA=`theme-color`,XA=`meta[name="${YA}"][data-dynamic-theme-color="true"]`,ZA={dark:`#0a0a0a`,light:`#ffffff`};function QA(){let e=document.querySelector(XA);return e||(e=document.createElement(`meta`),e.name=YA,e.setAttribute(`data-dynamic-theme-color`,`true`),document.head.append(e),e)}function $A(e){let t=e?.trim().toLowerCase();return!t||t===`transparent`||t===`rgba(0, 0, 0, 0)`||t===`rgba(0 0 0 / 0)`?null:e?.trim()??null}function ej(){return document.querySelector(`main[data-slot='sidebar-inset']`)??document.querySelector(`[data-slot='sidebar-inner']`)??document.body}function tj(){return document.documentElement.classList.contains(`dark`)?`dark`:`light`}function nj(e=tj()){if(typeof document>`u`||typeof getComputedStyle>`u`)return;document.documentElement.style.backgroundColor=``,document.body.style.backgroundColor=``;let t=$A(getComputedStyle(ej()).backgroundColor),n=$A(getComputedStyle(document.body).backgroundColor),r=t??n??ZA[e];document.documentElement.style.backgroundColor=r,document.body.style.backgroundColor=r,QA().setAttribute(`content`,r)}var rj=`forge:theme`,ij=`(prefers-color-scheme: dark)`;function aj(e){return e===`system`||e===`light`||e===`dark`}function oj(e,t){return typeof e!=`number`||!Number.isFinite(e)?t:Math.min(20,Math.max(11,Math.round(e)))}function sj(){if(!VA())return{theme:`system`,uiFontSize:16,codeFontSize:13};try{let e=window.localStorage.getItem(Yn);if(e){let t=Un(JSON.parse(e));return{theme:aj(t.theme)?t.theme:`system`,uiFontSize:oj(t.uiFontSize,16),codeFontSize:oj(t.codeFontSize,13)}}let t=window.localStorage.getItem(rj);return{theme:aj(t)?t:`system`,uiFontSize:16,codeFontSize:13}}catch{return{theme:`system`,uiFontSize:16,codeFontSize:13}}}function cj(){return typeof window>`u`||typeof window.matchMedia!=`function`||window.matchMedia(ij).matches?`dark`:`light`}function lj(e){return e===`system`?cj():e}function uj(e){if(typeof window>`u`)return;let t=window.desktopBridge;t&&t.setTheme(e).catch(()=>{})}function dj(e,t=!1){let n=lj(e);return typeof document>`u`||typeof window>`u`?n:(t&&document.documentElement.classList.add(`no-transitions`),document.documentElement.classList.toggle(`dark`,n===`dark`),document.documentElement.dataset.theme=e,document.documentElement.style.colorScheme=n,nj(n),uj(e),t&&(document.documentElement.offsetHeight,requestAnimationFrame(()=>{document.documentElement.classList.remove(`no-transitions`)})),n)}function fj(e){typeof document>`u`||document.documentElement.style.setProperty(`--forge-ui-font-size`,`${oj(e,16)}px`)}function pj(e){typeof document>`u`||document.documentElement.style.setProperty(`--forge-code-font-size`,`${oj(e,13)}px`)}function mj(e){fj(e.uiFontSize),pj(e.codeFontSize)}if(typeof document<`u`){let e=sj();dj(e.theme),mj(e)}function hj(){let e=(0,A.c)(33),t=I(yj),n=I(vj),r=I(_j),i=I(gj),{updateSettings:a}=WT(),o;e[0]===t?o=e[1]:(o=()=>lj(t),e[0]=t,e[1]=o);let[s,c]=(0,O.useState)(o),{themeHalves:l,setThemeHalf:u,clearThemeHalves:d}=qA(n,s),f;e[2]===a?f=e[3]:(f=e=>{a({theme:e}),c(dj(e,!0))},e[2]=a,e[3]=f);let p=f,m;e[4]===a?m=e[5]:(m=e=>{a({themeId:e})},e[4]=a,e[5]=m);let h=m,g;e[6]===a?g=e[7]:(g=e=>{let t=oj(e,16);a({uiFontSize:t}),fj(t)},e[6]=a,e[7]=g);let _=g,v;e[8]===a?v=e[9]:(v=e=>{let t=oj(e,13);a({codeFontSize:t}),pj(t)},e[8]=a,e[9]=v);let y=v,b,x;e[10]===t?(b=e[11],x=e[12]):(b=()=>{c(dj(t))},x=[t],e[10]=t,e[11]=b,e[12]=x),(0,O.useEffect)(b,x);let ee,te;e[13]!==i||e[14]!==r?(ee=()=>{mj({uiFontSize:r,codeFontSize:i})},te=[r,i],e[13]=i,e[14]=r,e[15]=ee,e[16]=te):(ee=e[15],te=e[16]),(0,O.useEffect)(ee,te);let ne,re;e[17]===t?(ne=e[18],re=e[19]):(re=()=>{if(t!==`system`||typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(ij),n=()=>{c(dj(`system`,!0))};return e.addEventListener(`change`,n),()=>{e.removeEventListener(`change`,n)}},ne=[t],e[17]=t,e[18]=ne,e[19]=re),(0,O.useEffect)(re,ne);let ie;return e[20]!==d||e[21]!==i||e[22]!==s||e[23]!==y||e[24]!==p||e[25]!==u||e[26]!==h||e[27]!==_||e[28]!==t||e[29]!==l||e[30]!==n||e[31]!==r?(ie={theme:t,setTheme:p,themeId:n,setThemeId:h,resolvedTheme:s,themeHalves:l,setThemeHalf:u,clearThemeHalves:d,uiFontSize:r,codeFontSize:i,setUiFontSize:_,setCodeFontSize:y},e[20]=d,e[21]=i,e[22]=s,e[23]=y,e[24]=p,e[25]=u,e[26]=h,e[27]=_,e[28]=t,e[29]=l,e[30]=n,e[31]=r,e[32]=ie):ie=e[32],ie}function gj(e){return e.codeFontSize}function _j(e){return e.uiFontSize}function vj(e){return e.themeId}function yj(e){return e.theme}function bj(){let e=(0,A.c)(11),t=I(kj),n=I(Oj),r=I(Dj),i=I(Ej),a=I(Tj),o=I(wj),s=I(Cj),c=I(Sj),l=I(xj),u,d;e[0]!==t||e[1]!==r||e[2]!==i||e[3]!==n||e[4]!==a||e[5]!==c||e[6]!==l||e[7]!==o||e[8]!==s?(u=()=>{typeof document>`u`||BA(document.documentElement,{appearanceContrast:t,fontFamilyCode:r,fontFamilyComposer:i,fontFamilySans:n,fontFamilyTerminal:a,fontSmoothing:c,glassOpacity:l,promptFontSize:o,terminalFontSize:s})},d=[t,r,i,n,a,c,l,o,s],e[0]=t,e[1]=r,e[2]=i,e[3]=n,e[4]=a,e[5]=c,e[6]=l,e[7]=o,e[8]=s,e[9]=u,e[10]=d):(u=e[9],d=e[10]),(0,O.useEffect)(u,d)}function xj(e){return e.glassOpacity}function Sj(e){return e.fontSmoothing}function Cj(e){return e.terminalFontSize}function wj(e){return e.promptFontSize}function Tj(e){return e.fontFamilyTerminal}function Ej(e){return e.fontFamilyComposer}function Dj(e){return e.fontFamilyCode}function Oj(e){return e.fontFamilySans}function kj(e){return e.appearanceContrast}var Aj=`forge:last-editor`;function jj(e){let t=(0,A.c)(5),[n,r]=Nn(Aj,null,bi),i;bb0:{if(n&&e.includes(n)){i=n;break bb0}let r;t[0]===e?r=t[1]:(r=Sr.find(t=>e.includes(t.id))?.id??null,t[0]=e,t[1]=r),i=r}let a=i,o;return t[2]!==a||t[3]!==r?(o=[a,r],t[2]=a,t[3]=r,t[4]=o):o=t[4],o}function Mj(e){let t=new Set(e),n=jn(Aj,bi);if(n&&t.has(n))return n;let r=Sr.find(e=>t.has(e.id))?.id??null;return r&&_r(Aj,r,bi),r??null}async function Nj(e,t){let{availableEditors:n}=await e.server.getConfig(),r=Mj(n);if(!r)throw Error(`No available editors found.`);return await e.shell.openInEditor(t,r),r}var Pj=/https?:\/\/[^\s"'`<>]+/g,Fj=/(?:~\/|\.{1,2}\/|\/|[A-Za-z]:[\\/]|\\\\)[^\s"'`<>]+|[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)+(?::\d+){0,2}/g,Ij=/[.,;!?]+$/;function Lj(e){let t=e.replace(Ij,``);if(t.length===0)return t;let n=(e,n)=>{for(;t.endsWith(n);){if(t.split(e).length-1>=t.split(n).length-1)return;t=t.slice(0,-1)}};return n(`(`,`)`),n(`[`,`]`),n(`{`,`}`),t}function Rj(e,t){return e.start<t.end&&t.start<e.end}function zj(e,t,n,r){let i=[];n.lastIndex=0;for(let a of e.matchAll(n)){let e=a[0],n=a.index??-1;if(n<0||e.length===0)continue;let o=Lj(e);if(o.length===0||t===`path`&&/^https?:\/\//i.test(o))continue;let s={kind:t,text:o,start:n,end:n+o.length};[...r,...i].some(e=>Rj(s,e))||i.push(s)}return i}function Bj(e){return/^[A-Za-z]:[\\/]/.test(e)||e.startsWith(`\\\\`)}function Vj(e){return e.startsWith(`/`)||Bj(e)}function Hj(e){return Bj(e)||/[A-Za-z]:\\/.test(e)}function Uj(e,t,n){let r=e.replace(/[\\/]+$/,``);return n===`\\`?`${r}\\${t.replaceAll(`/`,`\\`)}`:`${r}/${t.replace(/^\/+/,``)}`}function Wj(e){let t=e.match(/^\/Users\/([^/]+)/);if(t?.[1])return`/Users/${t[1]}`;let n=e.match(/^\/home\/([^/]+)/);if(n?.[1])return`/home/${n[1]}`;let r=e.match(/^([A-Za-z]:\\Users\\[^\\]+)/);if(r?.[1])return r[1]}function Gj(e){let t=e,n,r,i=t.match(/:(\d+)$/);if(!i?.[1])return{path:t,line:void 0,column:void 0};n=i[1],t=t.slice(0,-i[0].length);let a=t.match(/:(\d+)$/);return a?.[1]?(r=a[1],t=t.slice(0,-a[0].length)):(r=n,n=void 0),{path:t,line:r,column:n}}function Kj(e){let t=zj(e,`url`,Pj,[]),n=zj(e,`path`,Fj,t);return[...t,...n].toSorted((e,t)=>e.start-t.start)}function qj(e,t){let n=t(e-1);if(!n)return null;let r=e,i=n;for(;r>1&&i.isWrapped;){let e=t(r-2);if(!e)return null;--r,i=e}let a=[],o=0,s=r;for(;;){let e=t(s-1);if(!e)break;let n=t(s)?.isWrapped===!0,r=e.translateToString(!n);if(a.push({bufferLineNumber:s,text:r,startIndex:o,endIndex:o+r.length}),o+=r.length,!n)break;s+=1}return{text:a.map(e=>e.text).join(``),segments:a}}function Jj(e,t){for(let n of e)if(t<n.endIndex)return{x:t-n.startIndex+1,y:n.bufferLineNumber};let n=e[e.length-1];return{x:Math.max(n?.text.length??0,1),y:n?.bufferLineNumber??1}}function Yj(e,t){return{start:Jj(e.segments,t.start),end:Jj(e.segments,t.end-1)}}function Xj(e,t){return e.start.y<=t&&t<=e.end.y}function Zj(e,t=typeof navigator>`u`?``:navigator.platform){return t.length===0?!1:Sa(t)?e.metaKey&&!e.ctrlKey:e.ctrlKey&&!e.metaKey}function Qj(e,t){let{path:n,line:r,column:i}=Gj(e),a=n;if(n.startsWith(`~/`)){let e=Wj(t);if(e){let t=Hj(e)?`\\`:`/`;a=Uj(e,n.slice(2),t)}}else Vj(n)||(a=Uj(t,n,Hj(t)?`\\`:`/`));return r?`${a}:${r}${i?`:${i}`:``}`:a}var $j=`diffs-container`,eM=(()=>{try{return!1}catch{return!1}})(),tM=/(?=^From [a-f0-9]+ .+$)/m,nM=/(?=^diff --git)/gm,rM=/(?<=\n)/,iM=/^(---|\+\+\+)\s+([^\t\r\n]+)/,aM=/^(---|\+\+\+)\s+[ab]\/([^\t\r\n]+)/,oM=/^diff --git (?:"a\/(.+?)"|a\/(.+?)) (?:"b\/(.+?)"|b\/(.+?))$/,sM=/^index ([0-9a-f]+)\.\.([0-9a-f]+)(?: (\d+))?$/i,cM=`header-prefix`,lM=`header-filename-suffix`,uM=`header-metadata`,dM=`header-custom`,fM={dark:`pierre-dark`,light:`pierre-light`},pM=`data-theme-css`,mM=`data-unsafe-css`,hM=`data-diffs-scrollbar-measure`,gM=`data-diffs-code-view-header`,_M=`data-diffs-code-view-footer`,vM=`--diffs-scrollbar-gutter-measured`,yM=1e5,bM={hunkLineCount:50,lineHeight:20,diffHeaderHeight:44,spacing:8},xM={...bM,hunkLineCount:1},SM={paddingTop:8,paddingBottom:8,gap:8},CM={omega:.015,positionEpsilon:.5,velocityEpsilon:.05},wM=Object.freeze({fromStart:0,fromEnd:0}),TM={startingLine:0,totalLines:1/0,bufferBefore:0,bufferAfter:0},EM={startingLine:0,totalLines:0,bufferBefore:0,bufferAfter:0},DM=new Set,OM=null;function kM(e){DM.add(e),OM??=requestAnimationFrame(jM)}function AM(e){DM.delete(e)&&DM.size===0&&OM!=null&&(cancelAnimationFrame(OM),OM=null)}function jM(e){let t=new Set(DM);DM.clear();for(let n of t)try{n(e)}catch(e){console.error(e)}OM=DM.size>0?requestAnimationFrame(jM):null}function MM(e,t,n){if(e===t||e==null||t==null)return e===t;let r=new Set(n),i=Object.keys(e),a=new Set(Object.keys(t));for(let n of i)if(a.delete(n),!r.has(n)&&(!(n in t)||e[n]!==t[n]))return!1;for(let e of Array.from(a))if(!r.has(e))return!1;return!0}function NM(e,t){return e==null||t==null||typeof e==`string`||typeof t==`string`?e===t:e.dark===t.dark&&e.light===t.light}function PM(e,t){let n=e?.theme??fM,r=t?.theme??fM,i=FM(e),a=FM(t);return NM(n,r)&&MM(e,t,[`theme`,`parseDiffOptions`])&&MM(i,a)}function FM(e){if(e!=null&&`parseDiffOptions`in e)return e.parseDiffOptions}function IM(e,t){return e?.start===t?.start&&e?.end===t?.end&&e?.side===t?.side&&e?.endSide===t?.endSide}function LM({scrollTop:e,scrollHeight:t,height:n,fitPerfectly:r=!1,fitPerfectlyOverscroll:i=0,overscrollSize:a}){let o=n+a*2,s=r?n+i*2:o;if(t=Math.max(t,s),o>=t||r){let n=Math.max(e-i,0),r=Math.min(e+s,t);return{top:n,bottom:Math.max(r,n)}}let c=e+n/2-o/2,l=c+o;return c<0&&(c=0),l>t&&(l=t),c=Math.floor(Math.max(c,0)),{top:c,bottom:Math.ceil(Math.max(Math.min(l,t),c))}}function RM(e){let t=e.length;return e.charCodeAt(t-1)===10&&(t--,e.charCodeAt(t-1)===13&&t--),e.slice(0,t)}function zM(e,t){return e-(t===0?0:1)}function BM(e,t){return zM(e,t)+t}var VM=class{diff(e,t,n={}){let r;typeof n==`function`?(r=n,n={}):`callback`in n&&(r=n.callback);let i=this.castInput(e,n),a=this.castInput(t,n),o=this.removeEmpty(this.tokenize(i,n)),s=this.removeEmpty(this.tokenize(a,n));return this.diffWithOptionsObj(o,s,n,r)}diffWithOptionsObj(e,t,n,r){let i=e=>{if(e=this.postProcess(e,n),r){setTimeout(function(){r(e)},0);return}return e},a=t.length,o=e.length,s=1,c=a+o;n.maxEditLength!=null&&(c=Math.min(c,n.maxEditLength));let l=n.timeout??1/0,u=Date.now()+l,d=[{oldPos:-1,lastComponent:void 0}],f=this.extractCommon(d[0],t,e,0,n);if(d[0].oldPos+1>=o&&f+1>=a)return i(this.buildValues(d[0].lastComponent,t,e));let p=-1/0,m=1/0,h=()=>{for(let r=Math.max(p,-s);r<=Math.min(m,s);r+=2){let s,c=d[r-1],l=d[r+1];c&&(d[r-1]=void 0);let u=!1;if(l){let e=l.oldPos-r;u=l&&0<=e&&e<a}let h=c&&c.oldPos+1<o;if(!u&&!h){d[r]=void 0;continue}if(s=!h||u&&c.oldPos<l.oldPos?this.addToPath(l,!0,!1,0,n):this.addToPath(c,!1,!0,1,n),f=this.extractCommon(s,t,e,r,n),s.oldPos+1>=o&&f+1>=a)return i(this.buildValues(s.lastComponent,t,e))||!0;d[r]=s,s.oldPos+1>=o&&(m=Math.min(m,r-1)),f+1>=a&&(p=Math.max(p,r+1))}s++};if(r)(function e(){setTimeout(function(){if(s>c||Date.now()>u)return r(void 0);h()||e()},0)})();else for(;s<=c&&Date.now()<=u;){let e=h();if(e)return e}}addToPath(e,t,n,r,i){let a=e.lastComponent;return a&&!i.oneChangePerToken&&a.added===t&&a.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:a.count+1,added:t,removed:n,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:a}}}extractCommon(e,t,n,r,i){let a=t.length,o=n.length,s=e.oldPos,c=s-r,l=0;for(;c+1<a&&s+1<o&&this.equals(n[s+1],t[c+1],i);)c++,s++,l++,i.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(e.lastComponent={count:l,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=s,c}equals(e,t,n){return n.comparator?n.comparator(e,t):e===t||!!n.ignoreCase&&e.toLowerCase()===t.toLowerCase()}removeEmpty(e){let t=[];for(let n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t}castInput(e,t){return e}tokenize(e,t){return Array.from(e)}join(e){return e.join(``)}postProcess(e,t){return e}get useLongestToken(){return!1}buildValues(e,t,n){let r=[],i;for(;e;)r.push(e),i=e.previousComponent,delete e.previousComponent,e=i;r.reverse();let a=r.length,o=0,s=0,c=0;for(;o<a;o++){let e=r[o];if(e.removed)e.value=this.join(n.slice(c,c+e.count)),c+=e.count;else{if(!e.added&&this.useLongestToken){let r=t.slice(s,s+e.count);r=r.map(function(e,t){let r=n[c+t];return r.length>e.length?r:e}),e.value=this.join(r)}else e.value=this.join(t.slice(s,s+e.count));s+=e.count,e.added||(c+=e.count)}}return r}},HM=new class extends VM{};function UM(e,t,n){return HM.diff(e,t,n)}function WM(e,t){let n;for(n=0;n<e.length&&n<t.length;n++)if(e[n]!=t[n])return e.slice(0,n);return e.slice(0,n)}function GM(e,t){let n;if(!e||!t||e[e.length-1]!=t[t.length-1])return``;for(n=0;n<e.length&&n<t.length;n++)if(e[e.length-(n+1)]!=t[t.length-(n+1)])return e.slice(-n);return e.slice(-n)}function KM(e,t,n){if(e.slice(0,t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);return n+e.slice(t.length)}function qM(e,t,n){if(!t)return e+n;if(e.slice(-t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);return e.slice(0,-t.length)+n}function JM(e,t){return KM(e,t,``)}function YM(e,t){return qM(e,t,``)}function XM(e,t){return t.slice(0,ZM(e,t))}function ZM(e,t){let n=0;e.length>t.length&&(n=e.length-t.length);let r=t.length;e.length<t.length&&(r=e.length);let i=Array(r),a=0;i[0]=0;for(let e=1;e<r;e++){for(t[e]==t[a]?i[e]=i[a]:i[e]=a;a>0&&t[e]!=t[a];)a=i[a];t[e]==t[a]&&a++}a=0;for(let r=n;r<e.length;r++){for(;a>0&&e[r]!=t[a];)a=i[a];e[r]==t[a]&&a++}return a}function QM(e,t){let n=[];for(let r of Array.from(t.segment(e))){let e=r.segment;n.length&&/\s/.test(n[n.length-1])&&/\s/.test(e)?n[n.length-1]+=e:n.push(e)}return n}function $M(e,t){if(t)return tN(e,t)[1];let n;for(n=e.length-1;n>=0&&e[n].match(/\s/);n--);return e.substring(n+1)}function eN(e,t){if(t)return tN(e,t)[0];let n=e.match(/^\s*/);return n?n[0]:``}function tN(e,t){if(!t)return[eN(e),$M(e)];if(t.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);let n=QM(e,t),r=n[0],i=n[n.length-1];return[/\s/.test(r)?r:``,/\s/.test(i)?i:``]}var nN=`a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,rN=RegExp(`[${nN}]+|\\s+|[^${nN}]`,`ug`);new class extends VM{equals(e,t,n){return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()}tokenize(e,t={}){let n;if(t.intlSegmenter){let r=t.intlSegmenter;if(r.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);n=QM(e,r)}else n=e.match(rN)||[];let r=[],i=null;return n.forEach(e=>{/\s/.test(e)?i==null?r.push(e):r.push(r.pop()+e):i!=null&&/\s/.test(i)?r[r.length-1]==i?r.push(r.pop()+e):r.push(i+e):r.push(e),i=e}),r}join(e){return e.map((e,t)=>t==0?e:e.replace(/^\s+/,``)).join(``)}postProcess(e,t){if(!e||t.oneChangePerToken)return e;let n=null,r=null,i=null;return e.forEach(e=>{e.added?r=e:e.removed?i=e:((r||i)&&iN(n,i,r,e,t.intlSegmenter),n=e,r=null,i=null)}),(r||i)&&iN(n,i,r,null,t.intlSegmenter),e}};function iN(e,t,n,r,i){if(t&&n){let[a,o]=tN(t.value,i),[s,c]=tN(n.value,i);if(e){let r=WM(a,s);e.value=qM(e.value,s,r),t.value=JM(t.value,r),n.value=JM(n.value,r)}if(r){let e=GM(o,c);r.value=KM(r.value,c,e),t.value=YM(t.value,e),n.value=YM(n.value,e)}}else if(n){if(e){let e=eN(n.value,i);n.value=n.value.substring(e.length)}if(r){let e=eN(r.value,i);r.value=r.value.substring(e.length)}}else if(e&&r){let n=eN(r.value,i),[a,o]=tN(t.value,i),s=WM(n,a);t.value=JM(t.value,s);let c=GM(JM(n,s),o);t.value=YM(t.value,c),r.value=KM(r.value,n,c),e.value=qM(e.value,n,n.slice(0,n.length-c.length))}else if(r){let e=eN(r.value,i),n=XM($M(t.value,i),e);t.value=YM(t.value,n)}else if(e){let n=XM($M(e.value,i),eN(t.value,i));t.value=JM(t.value,n)}}var aN=new class extends VM{tokenize(e){let t=RegExp(`(\\r?\\n)|[${nN}]+|[^\\S\\n\\r]+|[^${nN}]`,`ug`);return e.match(t)||[]}};function oN(e,t,n){return aN.diff(e,t,n)}var sN=new class extends VM{constructor(){super(...arguments),this.tokenize=lN}equals(e,t,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(`
|
|
22
22
|
`))&&(e=e.trim()),(!n.newlineIsToken||!t.includes(`
|
|
23
23
|
`))&&(t=t.trim())):n.ignoreNewlineAtEof&&!n.newlineIsToken&&(e.endsWith(`
|
|
24
24
|
`)&&(e=e.slice(0,-1)),t.endsWith(`
|
|
@@ -1529,5 +1529,5 @@ XID_Start XIDS`.split(/\s/).map(e=>[HV(e),e])),PH=new Map([[`s`,Z(383)],[Z(383),
|
|
|
1529
1529
|
${GG(n)}
|
|
1530
1530
|
${e}
|
|
1531
1531
|
}
|
|
1532
|
-
}`}function XG(e,t){let n=GG(t);return e.replace(qG,n)}function ZG(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function QG({code:e,pre:t,columnType:n,rowSpan:r,containerSize:i=!1}={}){return e??(e=document.createElement(`code`),e.setAttribute(`data-code`,``),n!=null&&e.setAttribute(`data-${n}`,``),t?.appendChild(e)),r==null?e.style.removeProperty(`grid-row`):e.style.setProperty(`grid-row`,`span ${r}`),i?e.setAttribute(`data-container-size`,``):e.removeAttribute(`data-container-size`),e}function $G(e,t){if(t==null)return;let n=e.shadowRoot??e.attachShadow({mode:`open`});n.innerHTML===``&&(n.innerHTML=t)}function eK(e,{type:t,diffIndicators:n,disableBackground:r,disableLineNumbers:i,overflow:a,split:o,totalLines:s,customProperties:c}){if(c!=null)for(let t in c){let n=c[t];n!=null&&e.setAttribute(t,`${n}`)}switch(t===`diff`?(e.setAttribute(`data-diff`,``),e.removeAttribute(`data-file`)):(e.setAttribute(`data-file`,``),e.removeAttribute(`data-diff`)),n){case`bars`:case`classic`:e.setAttribute(`data-indicators`,n);break;case`none`:e.removeAttribute(`data-indicators`)}return i?e.setAttribute(`data-disable-line-numbers`,``):e.removeAttribute(`data-disable-line-numbers`),r?e.removeAttribute(`data-background`):e.setAttribute(`data-background`,``),t===`diff`?e.setAttribute(`data-diff-type`,o?`split`:`single`):e.removeAttribute(`data-diff-type`),e.setAttribute(`data-overflow`,a),e.style.setProperty(`--diffs-min-number-column-width-default`,`${`${s}`.length}ch`),e}function tK(e){if(typeof HTMLStyleElement<`u`&&e instanceof HTMLStyleElement)return!0;let t=e.tagName??e.nodeName;return typeof t==`string`&&t.toLowerCase()===`style`}function nK(e){return e?.useTokenTransformer===!0||e?.onTokenClick!=null||e?.onTokenEnter!=null||e?.onTokenLeave!=null}function rK(e,t){let n=e?.offsetHeight??0;if(e==null||n===0){t();return}e.style.minHeight=`${n}px`;try{t(),e.offsetHeight}finally{e.style.minHeight=``}}function iK({shadowRoot:e,currentNode:t,themeCSS:n}){if(n.trim()===``){t?.remove();return}return t??=aK(),t.textContent=n,t.parentNode!==e&&e.appendChild(t),t}function aK(){let e=document.createElement(`style`);return e.setAttribute(pM,``),e}var oK=void 0;function sK(){return oK??=`safari`in window&&`pushNotification`in window.safari||/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}if(typeof HTMLElement<`u`&&customElements.get(`diffs-container`)==null){let e;class t extends HTMLElement{constructor(){if(super(),this.shadowRoot!=null)return;let t=this.attachShadow({mode:`open`});e??(e=new CSSStyleSheet,e.replaceSync(HG)),t.adoptedStyleSheets=[e]}connectedCallback(){WG(this.shadowRoot??this.attachShadow({mode:`open`}))}}customElements.define($j,t)}function cK(e){return{...bM,...e}}function lK(e,t){let n=uK(e,t);return t?n:e.diffHeaderHeight+n}function uK(e,t){return e.paddingTop??(t?e.spacing:0)}function dK(e){return e.paddingBottom??e.spacing}function fK(e){switch(e){case`simple`:return 4;case`metadata`:case`line-info`:case`line-info-basic`:case`custom`:return 32}}function pK(e,t){return e===t||e?.cacheKey!=null&&e.cacheKey===t?.cacheKey}function mK(e,t){return NM(e.theme,t.theme)&&e.useTokenTransformer===t.useTokenTransformer&&e.tokenizeMaxLineLength===t.tokenizeMaxLineLength&&e.lineDiffType===t.lineDiffType&&e.maxLineDiffLength===t.maxLineDiffLength}function hK({line:e,spanStart:t,spanLength:n}){return{start:{line:e,character:t},end:{line:e,character:t+n},properties:{"data-diff-span":``},alwaysWrap:!0}}function gK({item:e,arr:t,enableJoin:n,isNeutral:r=!1,isLastItem:i=!1}){let a=t[t.length-1];if(a==null||i||!n){t.push([+!r,e.value]);return}let o=a[0]===0;if(r===o||r&&e.value.length===1&&!o){a[1]+=e.value;return}t.push([+!r,e.value])}function _K(e){return[zM(e.additionStart,e.additionCount)+1,BM(e.additionStart,e.additionCount)+1]}function vK({isPartial:e,rangeSize:t,expandedHunks:n,hunkIndex:r,collapsedContextThreshold:i}){let a=Math.max(t,0);if(a===0||e)return{fromStart:0,fromEnd:0,rangeSize:a,collapsedLines:a,renderAll:!1};if(n===!0||a<=i)return{fromStart:a,fromEnd:0,rangeSize:a,collapsedLines:0,renderAll:!0};let o=n?.get(r),s=Math.min(Math.max(o?.fromStart??0,0),a),c=Math.min(Math.max(o?.fromEnd??0,0),a),l=s+c,u=l>=a;return{fromStart:u?a:s,fromEnd:u?0:c,rangeSize:a,collapsedLines:Math.max(a-l,0),renderAll:u}}function yK(e){let t=e.hunks[e.hunks.length-1];if(t==null||e.isPartial||e.additionLines.length===0||e.deletionLines.length===0)return!1;let n=e.additionLines.length-BM(t.additionStart,t.additionCount),r=e.deletionLines.length-BM(t.deletionStart,t.deletionCount);return n<=0&&r<=0?!1:n!==r}function bK({fileDiff:e,errorPrefix:t}){let n=e.hunks[e.hunks.length-1];if(n==null||e.isPartial||e.additionLines.length===0||e.deletionLines.length===0)return 0;let r=e.additionLines.length-BM(n.additionStart,n.additionCount),i=e.deletionLines.length-BM(n.deletionStart,n.deletionCount);if(r<=0&&i<=0)return 0;if(r!==i)throw Error(`${t}: trailing context mismatch (additions=${r}, deletions=${i}) for ${e.name}`);return Math.min(r,i)}function xK({fileDiff:e,hunkIndex:t,expandedHunks:n,collapsedContextThreshold:r,errorPrefix:i}){if(t!==e.hunks.length-1)return;let a=bK({fileDiff:e,errorPrefix:i});if(a<=0)return;if(n===!0||a<=r)return{fromStart:a,fromEnd:0,rangeSize:a,collapsedLines:0,renderAll:!0};let o=n?.get(e.hunks.length),s=Math.min(Math.max(o?.fromStart??0,0),a);return{fromStart:s,fromEnd:0,rangeSize:a,collapsedLines:a-s,renderAll:s>=a}}function SK({fileDiff:e,lineNumber:t,expandedHunks:n,collapsedContextThreshold:r}){if(n===!0||e.isPartial)return!0;for(let[i,a]of e.hunks.entries()){let[o,s]=_K(a);if(t<o){let s=vK({isPartial:e.isPartial,rangeSize:a.collapsedBefore,expandedHunks:n,hunkIndex:i,collapsedContextThreshold:r}),c=o-s.rangeSize;return s.renderAll||t<c+s.fromStart||t>=o-s.fromEnd}if(t<s)return!0}let i=xK({fileDiff:e,hunkIndex:e.hunks.length-1,expandedHunks:n,collapsedContextThreshold:r,errorPrefix:`isAdditionLineRenderable`});if(i==null||i.renderAll)return!0;let a=e.hunks[e.hunks.length-1],[,o]=_K(a);return t<o+i.fromStart||t>=o+i.rangeSize}function CK({fileDiff:e,lineNumber:t,direction:n,expandedHunks:r,collapsedContextThreshold:i}){if(r===!0||e.isPartial)return t;let a=[],o=1;for(let[t,n]of e.hunks.entries()){let[s,c]=_K(n),l=vK({isPartial:e.isPartial,rangeSize:n.collapsedBefore,expandedHunks:r,hunkIndex:t,collapsedContextThreshold:i}),u=s-l.rangeSize;l.renderAll?a.push([u,s]):(l.fromStart>0&&a.push([u,u+l.fromStart]),l.fromEnd>0&&a.push([s-l.fromEnd,s])),a.push([s,c]),o=c}let s=xK({fileDiff:e,hunkIndex:e.hunks.length-1,expandedHunks:r,collapsedContextThreshold:i,errorPrefix:`getNearestRenderableAdditionLine`});if(s!=null){let e=o;o=e+s.rangeSize,s.renderAll?a.push([e,o]):s.fromStart>0&&a.push([e,e+s.fromStart])}if(t>=o)return t;if(n===`down`){for(let[e,n]of a)if(n>t)return Math.max(e,t);return}for(let e=a.length-1;e>=0;e--){let[n,r]=a[e];if(n<=t)return Math.min(r-1,t)}}function wK({type:e,metrics:t}){return t.hunkSeparatorHeight??fK(e)}function TK({type:e,metrics:t}){return e===`simple`||e===`metadata`||e===`line-info-basic`?0:t.spacing}function EK({type:e,hunkIndex:t,hunkSpecs:n}){switch(e){case`simple`:return t>0;case`metadata`:return n!=null;case`line-info`:case`line-info-basic`:case`custom`:return!0}}function DK(e){return e!==`simple`&&e!==`metadata`}function OK({type:e,metrics:t,hunkIndex:n,hunkSpecs:r}){if(!EK({type:e,hunkIndex:n,hunkSpecs:r}))return;let i=wK({type:e,metrics:t}),a=TK({type:e,metrics:t}),o=n>0?a:0,s=a;return{height:i,gapBefore:o,gapAfter:s,totalHeight:o+i+s}}function kK({type:e,metrics:t}){if(!DK(e))return;let n=wK({type:e,metrics:t}),r=TK({type:e,metrics:t});return{height:n,gapBefore:r,gapAfter:0,totalHeight:r+n}}function AK({diff:e,diffStyle:t,startingLine:n=0,totalLines:r=1/0,expandedHunks:i,collapsedContextThreshold:a=1,callback:o}){let s=jK({diff:e,diffStyle:t,startingLine:n,expandedHunks:i,collapsedContextThreshold:a}),c={viewportStart:n,viewportEnd:n+r,isWindowedHighlight:n>0||r<1/0,splitCount:s.splitCount,unifiedCount:s.unifiedCount,finalHunkIndex:e.hunks.length-1,shouldBreak(){if(!c.isWindowedHighlight)return!1;let e=c.unifiedCount>=n+r,i=c.splitCount>=n+r;return t===`unified`?e:(t===`split`||e)&&i},shouldSkip(e,r){if(!c.isWindowedHighlight)return!1;let i=e>0&&c.unifiedCount+e<=n,a=r>0&&c.splitCount+r<=n;return t===`unified`?i:(t===`split`||i)&&a},incrementCounts(e,n){(t===`unified`||t===`both`)&&(c.unifiedCount+=e),(t===`split`||t===`both`)&&(c.splitCount+=n)},isInWindow(e,n){if(!c.isWindowedHighlight)return!0;let r=c.isInUnifiedWindow(e),i=c.isInSplitWindow(n);return t===`unified`?r:t===`split`?i:r||i},isInUnifiedWindow(e){return!c.isWindowedHighlight||c.unifiedCount>=n-e&&c.unifiedCount<n+r},isInSplitWindow(e){return!c.isWindowedHighlight||c.splitCount>=n-e&&c.splitCount<n+r},emit(e,n=!1){return n||(t===`unified`?c.incrementCounts(1,0):t===`split`?c.incrementCounts(0,1):c.incrementCounts(1,1)),o(e)??!1}};hunkIterator:for(let n=s.hunkIndex;n<e.hunks.length;n++){let r=e.hunks[n];if(r==null)throw Error(`iterateOverDiff: invalid hunk index`);if(c.shouldBreak())break;let o=zM(r.deletionStart,r.deletionCount),s=zM(r.additionStart,r.additionCount),l=!e.isPartial&&r.deletionCount===0?o:r.deletionLineIndex,u=!e.isPartial&&r.additionCount===0?s:r.additionLineIndex,d=vK({isPartial:e.isPartial,rangeSize:r.collapsedBefore,expandedHunks:i,hunkIndex:n,collapsedContextThreshold:a}),f=n===c.finalHunkIndex?xK({fileDiff:e,hunkIndex:n,expandedHunks:i,collapsedContextThreshold:a,errorPrefix:`iterateOverDiff`}):void 0,p=d.fromStart+d.fromEnd;function m(e,n){return f==null||f.collapsedLines<=0||f.fromStart+f.fromEnd>0?0:t===`unified`?e===r.unifiedLineStart+r.unifiedLineCount-1?f.collapsedLines:0:n===r.splitLineStart+r.splitLineCount-1?f.collapsedLines:0}let h=d.collapsedLines===0;function g(){return h?0:(h=!0,d.collapsedLines)}if(c.shouldSkip(p,p))c.incrementCounts(p,p),g();else{let e=r.unifiedLineStart-d.rangeSize,i=r.splitLineStart-d.rangeSize,a=l-d.rangeSize,f=u-d.rangeSize,p=o+1-d.rangeSize,m=s+1-d.rangeSize;if(PK(c,d.fromStart,t,t=>c.emit({hunkIndex:n,hunk:r,collapsedBefore:0,collapsedAfter:0,type:`context-expanded`,deletionLine:{lineNumber:p+t,lineIndex:a+t,noEOFCR:!1,unifiedLineIndex:e+t,splitLineIndex:i+t},additionLine:{unifiedLineIndex:e+t,splitLineIndex:i+t,lineIndex:f+t,lineNumber:m+t,noEOFCR:!1}}))||(e=r.unifiedLineStart-d.fromEnd,i=r.splitLineStart-d.fromEnd,a=l-d.fromEnd,f=u-d.fromEnd,p=o+1-d.fromEnd,m=s+1-d.fromEnd,PK(c,d.fromEnd,t,t=>c.emit({hunkIndex:n,hunk:r,collapsedBefore:g(),collapsedAfter:0,type:`context-expanded`,deletionLine:{lineNumber:p+t,lineIndex:a+t,noEOFCR:!1,unifiedLineIndex:e+t,splitLineIndex:i+t},additionLine:{unifiedLineIndex:e+t,splitLineIndex:i+t,lineIndex:f+t,lineNumber:m+t,noEOFCR:!1}}),()=>{g()})))break hunkIterator}let _=r.unifiedLineStart,v=r.splitLineStart,y=l,b=u,x=o+1,ee=s+1,te=r.hunkContent.at(-1);for(let e of r.hunkContent){if(c.shouldBreak())break hunkIterator;let i=e===te;if(e.type===`context`){if(c.shouldSkip(e.lines,e.lines))c.incrementCounts(e.lines,e.lines),g();else if(PK(c,e.lines,t,t=>{let a=i&&t===e.lines-1,o=_+t,s=v+t;return c.emit({hunkIndex:n,hunk:r,collapsedBefore:g(),collapsedAfter:m(o,s),type:`context`,deletionLine:{lineNumber:x+t,lineIndex:y+t,noEOFCR:a&&r.noEOFCRDeletions,unifiedLineIndex:o,splitLineIndex:s},additionLine:{unifiedLineIndex:o,splitLineIndex:s,lineIndex:b+t,lineNumber:ee+t,noEOFCR:a&&r.noEOFCRAdditions}})},()=>{g()}))break hunkIterator;_+=e.lines,v+=e.lines,y+=e.lines,b+=e.lines,x+=e.lines,ee+=e.lines}else{let a=Math.max(e.deletions,e.additions),o=e.deletions+e.additions;if(!c.shouldSkip(o,a)){let s=FK(c,e,t);(s[0]?.[0]??0)>0&&g();for(let[l,u]of s)for(let s=l;s<u;s++){let l=m(_+s,t===`unified`?v+(s<e.deletions?s:s-e.deletions):v+s);if(c.emit(IK({hunkIndex:n,hunk:r,collapsedBefore:g(),collapsedAfter:l,diffStyle:t,index:s,unifiedLineIndex:_,splitLineIndex:v,additionLineIndex:b,deletionLineIndex:y,additionLineNumber:ee,deletionLineNumber:x,content:e,isLastContent:i,unifiedCount:o,splitCount:a}),!0))break hunkIterator}}g(),c.incrementCounts(o,a),_+=o,v+=a,y+=e.deletions,b+=e.additions,x+=e.deletions,ee+=e.additions}}if(f!=null){let{collapsedLines:n,fromStart:r,fromEnd:i}=f,a=r+i;if(PK(c,a,t,t=>{let r=t===a-1;return c.emit({hunkIndex:e.hunks.length,hunk:void 0,collapsedBefore:0,collapsedAfter:r?n:0,type:`context-expanded`,deletionLine:{lineNumber:x+t,lineIndex:y+t,noEOFCR:!1,unifiedLineIndex:_+t,splitLineIndex:v+t},additionLine:{unifiedLineIndex:_+t,splitLineIndex:v+t,lineIndex:b+t,lineNumber:ee+t,noEOFCR:!1}})},void 0,()=>c.shouldBreak()))break hunkIterator}}}function jK({diff:e,diffStyle:t,startingLine:n,expandedHunks:r,collapsedContextThreshold:i}){if(n<=0||t===`both`)return{hunkIndex:0,splitCount:0,unifiedCount:0};let a=MK({diff:e,expandedHunks:r,collapsedContextThreshold:i}),o=0,s=e.hunks.length-1,c=e.hunks.length;for(;o<=s;){let e=o+s>>1,r=a[e+1];if(r==null)throw Error(`iterateOverDiff: invalid hunk prefix index`);(t===`unified`?r.unifiedCount:r.splitCount)>n?(c=e,s=e-1):o=e+1}if(c>=e.hunks.length){let t=a[e.hunks.length];if(t==null)throw Error(`iterateOverDiff: invalid terminal hunk prefix index`);return{hunkIndex:e.hunks.length,splitCount:t.splitCount,unifiedCount:t.unifiedCount}}let l=a[c];if(l==null)throw Error(`iterateOverDiff: invalid selected hunk prefix index`);return{hunkIndex:c,splitCount:l.splitCount,unifiedCount:l.unifiedCount}}function MK({diff:e,expandedHunks:t,collapsedContextThreshold:n}){let r=0,i=0,a=e.hunks.length-1,o=[{splitCount:0,unifiedCount:0}];for(let s=0;s<e.hunks.length;s++){let c=e.hunks[s];if(c==null)throw Error(`iterateOverDiff: invalid hunk summary index`);let l=vK({isPartial:e.isPartial,rangeSize:c.collapsedBefore,expandedHunks:t,hunkIndex:s,collapsedContextThreshold:n}),u=l.fromStart+l.fromEnd;r+=u+c.splitLineCount,i+=u+c.unifiedLineCount;let d=s===a?xK({fileDiff:e,hunkIndex:s,expandedHunks:t,collapsedContextThreshold:n,errorPrefix:`iterateOverDiff`}):void 0;if(d!=null){let e=d.fromStart+d.fromEnd;r+=e,i+=e}o.push({splitCount:r,unifiedCount:i})}return o}function NK(e,t,n){if(!e.isWindowedHighlight||t<=0)return[0,t];let r=[];function i(n){let i=Math.max(0,e.viewportStart-n),a=Math.min(t,e.viewportEnd-n);a>i&&r.push([i,a])}if(n!==`split`&&i(e.unifiedCount),n!==`unified`&&i(e.splitCount),r.length===0)return[0,0];let a=r[0][0],o=r[0][1];for(let e=1;e<r.length;e++){let t=r[e];a=Math.min(a,t[0]),o=Math.max(o,t[1])}return[a,o]}function PK(e,t,n,r,i,a){let[o,s]=NK(e,t,n);o>0&&(e.incrementCounts(o,o),i?.());let c=o;for(;c<t;){if(a?.()===!0)return!0;if(c>=s){e.incrementCounts(t-c,t-c);break}if(e.isInWindow(0,0)){if(r(c)===!0)return!0}else e.incrementCounts(1,1);c++}return!1}function FK(e,t,n){if(!e.isWindowedHighlight)return[[0,n===`unified`?t.deletions+t.additions:Math.max(t.deletions,t.additions)]];let r=n!==`split`,i=n!==`unified`,a=n===`unified`?`unified`:`split`,o=[];function s(t,n){if(t+n<=e.viewportStart||t>=e.viewportEnd)return;let r=Math.max(0,e.viewportStart-t),i=Math.min(n,e.viewportEnd-t);return i>r?[r,i]:void 0}function c(e,n){return a===`split`?e:n===`additions`?[e[0]+t.deletions,e[1]+t.deletions]:e}function l(e,t){if(e==null)return;let[n,r]=c(e,t);r>n&&o.push([n,r])}if(r&&(l(s(e.unifiedCount,t.deletions),`deletions`),l(s(e.unifiedCount+t.deletions,t.additions),`additions`)),i&&(l(s(e.splitCount,t.deletions),`deletions`),l(s(e.splitCount,t.additions),`additions`)),o.length===0)return o;o.sort((e,t)=>e[0]-t[0]);let u=[o[0]];for(let[e,t]of o.slice(1)){let n=u[u.length-1];e<=n[1]?n[1]=Math.max(n[1],t):u.push([e,t])}return u}function IK({hunkIndex:e,hunk:t,collapsedAfter:n,collapsedBefore:r,diffStyle:i,index:a,unifiedLineIndex:o,splitLineIndex:s,additionLineIndex:c,deletionLineIndex:l,additionLineNumber:u,deletionLineNumber:d,content:f,isLastContent:p,unifiedCount:m,splitCount:h}){let g=a<f.deletions?o+a:void 0,_=i===`unified`?a>=f.deletions?o+a:void 0:a<f.additions?o+f.deletions+a:void 0,v=i===`unified`?s+(a<f.deletions?a:a-f.deletions):s+a,y=a<f.deletions?l+a:void 0,b=a<f.deletions?d+a:void 0,x=i===`unified`?a>=f.deletions?c+(a-f.deletions):void 0:a<f.additions?c+a:void 0,ee=i===`unified`?a>=f.deletions?u+(a-f.deletions):void 0:a<f.additions?u+a:void 0,te=i===`unified`?p&&a===f.deletions-1&&t.noEOFCRDeletions:p&&a===h-1&&t.noEOFCRDeletions,ne=i===`unified`?p&&a===m-1&&t.noEOFCRAdditions:p&&a===h-1&&t.noEOFCRAdditions,re=y!=null&&b!=null&&g!=null?{lineNumber:b,lineIndex:y,noEOFCR:te,unifiedLineIndex:g,splitLineIndex:v}:void 0,ie=x!=null&&ee!=null&&_!=null?{unifiedLineIndex:_,splitLineIndex:v,lineIndex:x,lineNumber:ee,noEOFCR:ne}:void 0;if(re==null&&ie!=null)return{type:`change`,hunkIndex:e,hunk:t,collapsedAfter:n,collapsedBefore:r,deletionLine:void 0,additionLine:ie};if(re!=null&&ie==null)return{type:`change`,hunkIndex:e,hunk:t,collapsedAfter:n,collapsedBefore:r,deletionLine:re,additionLine:void 0};if(re==null||ie==null)throw Error(`iterateOverDiff: missing change line data`);return{type:`change`,hunkIndex:e,hunk:t,collapsedAfter:n,collapsedBefore:r,deletionLine:re,additionLine:ie}}var LK={forcePlainText:!1};function RK(e,t,n,{forcePlainText:r,startingLine:i,totalLines:a,expandedHunks:o,collapsedContextThreshold:s=1}=LK){r?(i??=0,a??=1/0):(i=0,a=1/0);let c=i>0||a<1/0,l=typeof n.theme==`string`?t.getTheme(n.theme).type:void 0,u=gG({theme:n.theme,highlighter:t}),d=r&&!c&&(e.unifiedLineCount>1e3||e.splitLineCount>1e3)?`none`:n.lineDiffType,f={deletionLines:[],additionLines:[]},{maxLineDiffLength:p}=n,m=!r&&!e.isPartial,h=r?o:void 0,g=new Map;function _(e){let t=m?0:e,n=g.get(t)??BK();return g.set(t,n),n}function v(e,t,n,r){if(c){let e=n.at(-1);(e==null||e.targetIndex+e.count!==t)&&(e={targetIndex:t,originalOffset:r.length,count:0},n.push(e)),e.count++}r.push(e)}AK({diff:e,diffStyle:`both`,startingLine:i,totalLines:a,expandedHunks:!c||h,collapsedContextThreshold:s,callback:({hunkIndex:t,additionLine:n,deletionLine:r,type:i})=>{let a=_(t),o=n==null?r.splitLineIndex:n.splitLineIndex;i===`change`&&n!=null&&r!=null&&zK({additionLine:e.additionLines[n.lineIndex],deletionLine:e.deletionLines[r.lineIndex],deletionLineIndex:a.deletionContent.length,additionLineIndex:a.additionContent.length,deletionDecorations:a.deletionDecorations,additionDecorations:a.additionDecorations,lineDiffType:d,maxLineDiffLength:p}),r!=null&&(v(e.deletionLines[r.lineIndex],r.lineIndex,a.deletionSegments,a.deletionContent),a.deletionInfo.push({type:i===`change`?`change-deletion`:i,lineNumber:r.lineNumber,altLineNumber:i===`change`?void 0:n.lineNumber??void 0,lineIndex:`${r.unifiedLineIndex},${o}`})),n!=null&&(v(e.additionLines[n.lineIndex],n.lineIndex,a.additionSegments,a.additionContent),a.additionInfo.push({type:i===`change`?`change-addition`:i,lineNumber:n.lineNumber,altLineNumber:i===`change`?void 0:r.lineNumber??void 0,lineIndex:`${n.unifiedLineIndex},${o}`}))}});for(let i of g.values()){if(i.deletionContent.length===0&&i.additionContent.length===0)continue;let a={name:e.prevName??e.name,contents:i.deletionContent.value},o={name:e.name,contents:i.additionContent.value},{deletionLines:s,additionLines:c}=VK({deletionFile:a,deletionInfo:i.deletionInfo,deletionDecorations:i.deletionDecorations,additionFile:o,additionInfo:i.additionInfo,additionDecorations:i.additionDecorations,highlighter:t,options:n,languageOverride:r?`text`:e.lang});if(m){f.deletionLines=s,f.additionLines=c;continue}if(i.deletionSegments.length>0)for(let e of i.deletionSegments)for(let t=0;t<e.count;t++)f.deletionLines[e.targetIndex+t]=s[e.originalOffset+t];else f.deletionLines.push(...s);if(i.additionSegments.length>0)for(let e of i.additionSegments)for(let t=0;t<e.count;t++)f.additionLines[e.targetIndex+t]=c[e.originalOffset+t];else f.additionLines.push(...c)}return{code:f,themeStyles:u,baseThemeType:l}}function zK({deletionLine:e,additionLine:t,deletionLineIndex:n,additionLineIndex:r,deletionDecorations:i,additionDecorations:a,lineDiffType:o,maxLineDiffLength:s}){if(e==null||t==null||o===`none`||(e=RM(e),t=RM(t),e.length>s||t.length>s))return;let c=o===`char`?UM(e,t):oN(e,t),l=[],u=[],d=o===`word-alt`,f=c.at(-1);for(let e of c){let t=e===f;!e.added&&!e.removed?(gK({item:e,arr:l,enableJoin:d,isNeutral:!0,isLastItem:t}),gK({item:e,arr:u,enableJoin:d,isNeutral:!0,isLastItem:t})):e.removed?gK({item:e,arr:l,enableJoin:d,isLastItem:t}):gK({item:e,arr:u,enableJoin:d,isLastItem:t})}let p=0;for(let e of l)e[0]===1&&i.push(hK({line:n,spanStart:p,spanLength:e[1].length})),p+=e[1].length;p=0;for(let e of u)e[0]===1&&a.push(hK({line:r,spanStart:p,spanLength:e[1].length})),p+=e[1].length}function BK(){return{deletionContent:{push(e){this.value+=e,this.length++},value:``,length:0},additionContent:{push(e){this.value+=e,this.length++},value:``,length:0},deletionInfo:[],additionInfo:[],deletionDecorations:[],additionDecorations:[],deletionSegments:[],additionSegments:[]}}function VK({deletionFile:e,additionFile:t,deletionInfo:n,additionInfo:r,highlighter:i,deletionDecorations:a,additionDecorations:o,languageOverride:s,options:{theme:c=fM,...l}}){let u=s??BW(e.name),d=s??BW(t.name),{state:f,transformers:p}=eG(l.useTokenTransformer),m=typeof c==`string`?{...l,lang:`text`,theme:c,transformers:p,decorations:void 0,defaultColor:!1,cssVariablePrefix:rG(`token`),tokenizeTimeLimit:0}:{...l,lang:`text`,themes:c,transformers:p,decorations:void 0,defaultColor:!1,cssVariablePrefix:rG(`token`),tokenizeTimeLimit:0};return{deletionLines:e.contents===``?[]:(m.lang=u,f.lineInfo=n,m.decorations=a,vG(i.codeToHast(RM(e.contents),m))),additionLines:t.contents===``?[]:(m.lang=d,m.decorations=o,f.lineInfo=r,vG(i.codeToHast(RM(t.contents),m)))}}function HK(e){let t=e.lang??BW(e.name),n=e.lang??(e.prevName==null?`text`:BW(e.prevName));return t===`text`&&n===`text`}function UK(e){let t=[];for(let n of e){let e=sI.get(n);if(e==null)throw Error(`getResolvedLanguages: ${n} is not resolved. Please resolve languages before calling getResolvedLanguages`);t.push(e)}return t}function WK(e){for(let t of Array.isArray(e)?e:[e])if(!sI.has(t))return!1;return!0}async function GK(e){let t=[],n=[];for(let r of e){if(r===`text`||r===`ansi`)continue;let e=LU(r)??IU(r);`then`in e?n.push(e):t.push(e)}return n.length>0&&await Promise.all(n).then(e=>{for(let n of e){if(n==null)throw Error(`resolvedLanguages: unable to resolve language`);t.push(n)}}),t}function KK(e){return YU.getResolvedThemes(e)}async function qK(e){for(let t of e)_W(t);let t=await YU.resolveThemes(e);for(let n=0;n<e.length;n++)vW(e[n],t[n]);return t}var JK={light:`pierre-light`,dark:`pierre-dark`};function YK(e){return e===`dark`?JK.dark:JK.light}var XK=2166136261,ZK=16777619,QK=2654435769,$K=2246822507;function eq(e,t=XK,n=ZK){let r=t>>>0;for(let t=0;t<e.length;t+=1)r^=e.charCodeAt(t),r=Math.imul(r,n)>>>0;return r>>>0}function tq(e,t=`diff-panel`){let n=e.trim(),r=eq(n,XK,ZK).toString(36),i=eq(n,QK,$K).toString(36);return`${t}:${n.length}:${r}:${i}`}function nq(e){return Ca(`flex items-center justify-between gap-2 px-4 wco:pr-[calc(100vw-env(titlebar-area-width)-env(titlebar-area-x)+1em)]`,bn&&e!==`sheet`?`h-[52px] border-b border-border wco:h-[env(titlebar-area-height)]`:`h-12 wco:max-h-[env(titlebar-area-height)]`)}function rq(e){let t=(0,A.c)(10),n=bn&&e.mode!==`sheet`,r=e.mode===`inline`?`w-[42vw] min-w-[360px] max-w-[560px] shrink-0 border-l border-border`:`w-full`,i;t[0]===r?i=t[1]:(i=Ca(`flex h-full min-w-0 flex-col bg-background`,r),t[0]=r,t[1]=i);let a;t[2]!==e.header||t[3]!==e.mode||t[4]!==n?(a=n?(0,k.jsx)(`div`,{className:nq(e.mode),children:e.header}):(0,k.jsx)(`div`,{className:`border-b border-border`,children:(0,k.jsx)(`div`,{className:nq(e.mode),children:e.header})}),t[2]=e.header,t[3]=e.mode,t[4]=n,t[5]=a):a=t[5];let o;return t[6]!==e.children||t[7]!==i||t[8]!==a?(o=(0,k.jsxs)(`div`,{className:i,children:[a,e.children]}),t[6]=e.children,t[7]=i,t[8]=a,t[9]=o):o=t[9],o}function iq(){let e=(0,A.c)(4),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,k.jsx)(I,{className:`absolute left-0 top-1/2 size-6 -translate-y-1/2 rounded-md border border-border/50`}),n=(0,k.jsx)(I,{className:`absolute right-0 top-1/2 size-6 -translate-y-1/2 rounded-md border border-border/50`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,k.jsxs)(`div`,{className:`relative min-w-0 flex-1`,children:[t,n,(0,k.jsxs)(`div`,{className:`flex gap-1 overflow-hidden px-8 py-0.5`,children:[(0,k.jsx)(I,{className:`h-6 w-16 shrink-0 rounded-md`}),(0,k.jsx)(I,{className:`h-6 w-24 shrink-0 rounded-md`}),(0,k.jsx)(I,{className:`h-6 w-24 shrink-0 rounded-md max-sm:hidden`})]})]}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,k.jsxs)(k.Fragment,{children:[r,(0,k.jsxs)(`div`,{className:`flex shrink-0 gap-1`,children:[(0,k.jsx)(I,{className:`size-7 rounded-md`}),(0,k.jsx)(I,{className:`size-7 rounded-md`})]})]}),e[3]=i):i=e[3],i}function aq(e){let t=(0,A.c)(7),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,k.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border/50 px-3 py-2`,children:[(0,k.jsx)(I,{className:`h-4 w-32 rounded-full`}),(0,k.jsx)(I,{className:`ml-auto h-4 w-20 rounded-full`})]}),t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,k.jsxs)(`div`,{className:`space-y-2`,children:[(0,k.jsx)(I,{className:`h-3 w-full rounded-full`}),(0,k.jsx)(I,{className:`h-3 w-full rounded-full`}),(0,k.jsx)(I,{className:`h-3 w-10/12 rounded-full`}),(0,k.jsx)(I,{className:`h-3 w-11/12 rounded-full`}),(0,k.jsx)(I,{className:`h-3 w-9/12 rounded-full`})]}),t[1]=r):r=t[1];let i;t[2]===e.label?i=t[3]:(i=(0,k.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 px-3 py-4`,children:[r,(0,k.jsx)(`span`,{className:`sr-only`,children:e.label})]}),t[2]=e.label,t[3]=i);let a;return t[4]!==e.label||t[5]!==i?(a=(0,k.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col p-2`,children:(0,k.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden rounded-md border border-border/60 bg-card/25`,role:`status`,"aria-live":`polite`,"aria-label":e.label,children:[n,i]})}),t[4]=e.label,t[5]=i,t[6]=a):a=t[6],a}function oq(e){let t=(0,O.useRef)(e);return(0,O.useInsertionEffect)(()=>void(t.current=e)),(0,O.useCallback)((...e)=>t.current(...e),[])}var sq=(0,O.createContext)(void 0);function cq(){return(0,O.useContext)(sq)}var lq={position:`absolute`,top:0,bottom:0,textAlign:`center`,whiteSpace:`normal`,touchAction:`none`},uq={display:`contents`};function dq(){return null}var fq=t(n(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?r(e):typeof define==`function`&&define.amd?define([`exports`],r):r((n||=self).lru_map=n.lru_map||{})})(e,function(e){let t=Symbol(`newer`),n=Symbol(`older`);class r{constructor(e,t){typeof e!=`number`&&(t=e,e=0),this.size=0,this.limit=e,this.oldest=this.newest=void 0,this._keymap=new Map,t&&(this.assign(t),e<1&&(this.limit=this.size))}_markEntryAsUsed(e){e!==this.newest&&(e[t]&&(e===this.oldest&&(this.oldest=e[t]),e[t][n]=e[n]),e[n]&&(e[n][t]=e[t]),e[t]=void 0,e[n]=this.newest,this.newest&&(this.newest[t]=e),this.newest=e)}assign(e){let r,a=this.limit||Number.MAX_VALUE;this._keymap.clear();let o=e[Symbol.iterator]();for(let e=o.next();!e.done;e=o.next()){let o=new i(e.value[0],e.value[1]);if(this._keymap.set(o.key,o),r?(r[t]=o,o[n]=r):this.oldest=o,r=o,a--==0)throw Error(`overflow`)}this.newest=r,this.size=this._keymap.size}get(e){var t=this._keymap.get(e);return t?(this._markEntryAsUsed(t),t.value):void 0}set(e,r){var a=this._keymap.get(e);return a?(a.value=r,this._markEntryAsUsed(a),this):(this._keymap.set(e,a=new i(e,r)),this.newest?(this.newest[t]=a,a[n]=this.newest):this.oldest=a,this.newest=a,++this.size,this.size>this.limit&&this.shift(),this)}shift(){var e=this.oldest;if(e)return this.oldest[t]?(this.oldest=this.oldest[t],this.oldest[n]=void 0):(this.oldest=void 0,this.newest=void 0),e[t]=e[n]=void 0,this._keymap.delete(e.key),--this.size,[e.key,e.value]}find(e){let t=this._keymap.get(e);return t?t.value:void 0}has(e){return this._keymap.has(e)}delete(e){var r=this._keymap.get(e);return r?(this._keymap.delete(r.key),r[t]&&r[n]?(r[n][t]=r[t],r[t][n]=r[n]):r[t]?(r[t][n]=void 0,this.oldest=r[t]):r[n]?(r[n][t]=void 0,this.newest=r[n]):this.oldest=this.newest=void 0,this.size--,r.value):void 0}clear(){this.oldest=this.newest=void 0,this.size=0,this._keymap.clear()}keys(){return new o(this.oldest)}values(){return new s(this.oldest)}entries(){return this}[Symbol.iterator](){return new a(this.oldest)}forEach(e,n){typeof n!=`object`&&(n=this);let r=this.oldest;for(;r;)e.call(n,r.value,r.key,this),r=r[t]}toJSON(){for(var e=Array(this.size),n=0,r=this.oldest;r;)e[n++]={key:r.key,value:r.value},r=r[t];return e}toString(){for(var e=``,n=this.oldest;n;)e+=String(n.key)+`:`+n.value,n=n[t],n&&(e+=` < `);return e}}e.LRUMap=r;function i(e,r){this.key=e,this.value=r,this[t]=void 0,this[n]=void 0}function a(e){this.entry=e}a.prototype[Symbol.iterator]=function(){return this},a.prototype.next=function(){let e=this.entry;return e?(this.entry=e[t],{done:!1,value:[e.key,e.value]}):{done:!0,value:void 0}};function o(e){this.entry=e}o.prototype[Symbol.iterator]=function(){return this},o.prototype.next=function(){let e=this.entry;return e?(this.entry=e[t],{done:!1,value:e.key}):{done:!0,value:void 0}};function s(e){this.entry=e}s.prototype[Symbol.iterator]=function(){return this},s.prototype.next=function(){let e=this.entry;return e?(this.entry=e[t],{done:!1,value:e.value}):{done:!0,value:void 0}}})}))(),1),pq=Symbol(`IGNORE_RESPONSE`),mq=class extends Error{constructor(){super(`WorkerPoolManager: operation canceled because the pool terminated`)}},hq=class extends Error{constructor(){super(`WorkerPoolManager: operation canceled before the task completed`)}},gq=class{options;highlighter;preferredHighlighter;renderOptions;renderOptionsRequestVersion=0;renderOptionsVersion=0;initialized=!1;workers=[];queuedTasks=[];queuedTaskByInstance=new Map;taskByHighlightKey=new Map;activeTaskById=new Map;activeRequestByInstance=new Map;nextRequestId=0;themeSubscribers=new Set;workersFailed=!1;statSubscribers=new Set;fileCache;diffCache;_queuedBroadcast;lifecycleGeneration=0;constructor(e,{langs:t,theme:n=fM,useTokenTransformer:r=!1,lineDiffType:i=`word-alt`,maxLineDiffLength:a=1e3,tokenizeMaxLineLength:o=1e3,preferredHighlighter:s=`shiki-js`}){this.options=e,this.preferredHighlighter=s,this.renderOptions={theme:n,useTokenTransformer:r,lineDiffType:i,maxLineDiffLength:a,tokenizeMaxLineLength:o},this.fileCache=new fq.default.LRUMap(e.totalASTLRUCacheSize??100),this.diffCache=new fq.default.LRUMap(e.totalASTLRUCacheSize??100),this.queueInitialization(t)}isWorkingPool(){return!this.workersFailed}getFileResultCache(e){return e.cacheKey==null?void 0:this.fileCache.get(e.cacheKey)}getDiffResultCache(e){return e.cacheKey==null?void 0:this.diffCache.get(e.cacheKey)}inspectCaches(){let{fileCache:e,diffCache:t}=this;return{fileCache:e,diffCache:t}}evictFileFromCache(e){try{return this.fileCache.delete(e)!==void 0}finally{this.queueBroadcastStateChanges()}}evictDiffFromCache(e){try{return this.diffCache.delete(e)!==void 0}finally{this.queueBroadcastStateChanges()}}async setRenderOptions({theme:e=this.renderOptions.theme??fM,useTokenTransformer:t=this.renderOptions.useTokenTransformer??!1,lineDiffType:n=this.renderOptions.lineDiffType??`word-alt`,maxLineDiffLength:r=this.renderOptions.maxLineDiffLength??1e3,tokenizeMaxLineLength:i=this.renderOptions.tokenizeMaxLineLength??1e3}){let{lifecycleGeneration:a}=this,o=++this.renderOptionsRequestVersion,s=()=>this.isCurrentLifecycle(a)&&this.renderOptionsRequestVersion===o;try{let a={theme:e,useTokenTransformer:t,lineDiffType:n,maxLineDiffLength:r,tokenizeMaxLineLength:i};if(this.isInitialized()||await this.initialize(),!s()||mK(a,this.renderOptions))return;let o=TW(e),c=[];if(NM(a.theme,this.renderOptions.theme)||(c=DW(o)?KK(o):await qK(o)),!s())return;if(this.highlighter!=null)XU(c,this.highlighter);else{let e=await SW({themes:o,langs:[`text`],preferredHighlighter:this.preferredHighlighter});if(!s())return;this.highlighter=e}let l=this.setRenderOptionsOnWorkers(a,c);this.renderOptions=a,this.renderOptionsVersion++,this.diffCache.clear(),this.fileCache.clear(),this.invalidateRenderTasks();for(let e of this.themeSubscribers)e.onThemeChange();await l}catch(e){if(e instanceof mq||!s())return;throw e}}getPreferredHighlighter(){return this.preferredHighlighter}getFileRenderOptions(){let{tokenizeMaxLineLength:e,theme:t,useTokenTransformer:n}=this.renderOptions;return{theme:t,useTokenTransformer:n,tokenizeMaxLineLength:e}}getDiffRenderOptions(){return{...this.renderOptions}}async setRenderOptionsOnWorkers(e,t){if(this.workersFailed)return;this.isInitialized()||await this.initialize();let n=[];for(let r of this.workers){if(!r.initialized)throw console.log({managedWorker:r}),Error(`setRenderOptionsOnWorkers: Somehow we have an uninitialized worker`);n.push(new Promise((n,i)=>{let a=this.generateRequestId(),o={type:`set-render-options`,id:a,request:{type:`set-render-options`,id:a,renderOptions:e,resolvedThemes:t},resolve:n,reject:i,requestStart:Date.now()};this.activeTaskById.set(a,o),r.pendingSetupRequestId=a,r.worker.postMessage(o.request)}))}await Promise.all(n)}subscribeToThemeChanges(e){return this.themeSubscribers.add(e),this.queueBroadcastStateChanges(),()=>{this.unsubscribeToThemeChanges(e),this.queueBroadcastStateChanges()}}unsubscribeToThemeChanges(e){this.themeSubscribers.delete(e),this.queueBroadcastStateChanges()}subscribeToStatChanges(e){return this.statSubscribers.add(e),e(this.getStats()),()=>{this.statSubscribers.delete(e)}}queueBroadcastStateChanges(){this._queuedBroadcast??=requestAnimationFrame(this._broadcastStateChanges)}_broadcastStateChanges=()=>{this._queuedBroadcast!=null&&(cancelAnimationFrame(this._queuedBroadcast),this._queuedBroadcast=void 0);let e=this.getStats();for(let t of this.statSubscribers)t(e)};cleanUpTasks(e){this.detachInstanceFromQueuedTasks(e);let t=this.activeRequestByInstance.get(e);if(t!=null){let n=this.activeTaskById.get(t);yq(n)?(this.detachInstanceFromRenderTask(n,e),!n.primeCache&&n.instances.size===0&&this.removeActiveTask(n)):this.activeTaskById.delete(t)}this.activeRequestByInstance.delete(e),this.queueBroadcastStateChanges()}isInitialized(){return this.initialized===!0}async initialize(e=[]){if(this.initialized!==!0)if(this.initialized===!1){let{lifecycleGeneration:t}=this;this.initialized=new Promise((n,r)=>{(async()=>{try{let r=TW(this.renderOptions.theme),i=[];if(i=DW(r)?KK(r):await qK(r),!this.isCurrentLifecycle(t)){n();return}let a=[];if(a=WK(e)?UK(e):await GK(e),!this.isCurrentLifecycle(t)){n();return}let[o]=await Promise.all([SW({themes:r,langs:[`text`,...e],preferredHighlighter:this.preferredHighlighter}),this.initializeWorkers(i,a)]);if(!this.isCurrentLifecycle(t)){this.terminateWorkers(),n();return}this.highlighter=o,this.initialized=!0,this.diffCache.clear(),this.fileCache.clear(),this.drainQueue(),this.queueBroadcastStateChanges(),n()}catch(e){if(e instanceof mq||!this.isCurrentLifecycle(t)){n();return}this.initialized=!1,this.workersFailed=!0;for(let t of this.queuedTasks)this.rejectRenderTaskCallbacks(t,xq(e));this.queueBroadcastStateChanges(),r(e)}})()}),this.queueBroadcastStateChanges()}else return this.initialized}async initializeWorkers(e,t){this.workersFailed=!1;let n=[],r=VW(),i=r>0?HW():void 0;this.workers.length>0&&this.terminateWorkers();for(let a=0;a<(this.options.poolSize??8);a++){let a=this.options.workerFactory(),o={worker:a,requestId:void 0,pendingSetupRequestId:void 0,initialized:!1,langs:new Set([`text`,...t.map(({name:e})=>e)]),customExtensionsVersion:0};a.addEventListener(`message`,e=>{this.handleWorkerMessage(o,e.data)}),a.addEventListener(`error`,e=>console.error(`Worker error:`,e,o)),this.workers.push(o),n.push(new Promise((n,a)=>{let s=this.generateRequestId(),c={type:`initialize`,id:s,request:{type:`initialize`,id:s,renderOptions:this.renderOptions,preferredHighlighter:this.preferredHighlighter,resolvedThemes:e,resolvedLanguages:t,customExtensionsVersion:i==null?void 0:r,customExtensionMap:i},resolve(){o.initialized=!0,n()},reject:a,requestStart:Date.now()};this.activeTaskById.set(s,c),this.executeTask(o,c)}))}await Promise.all(n)}drainQueue=()=>{if(this._queuedDrain=void 0,this.initialized===!0&&this.queuedTasks.length!==0){for(let e=0;e<this.queuedTasks.length;){let t=this.queuedTasks[e];if(this.hasActiveRequest(t)){e++;continue}let n=vq(t),r=this.getAvailableWorker(n);if(r==null)break;this.queuedTasks.splice(e,1),this.assignWorkerToTask(t,r),this.resolveLanguagesAndExecuteTask(r,t,n)}this.queueBroadcastStateChanges()}};highlightFileAST(e,t){let n=this.getFileResultCache(t);PG(t)||n!=null&&OW(n.options,this.getFileRenderOptions())||this.hasMatchingFileInstanceTask(e,t)||this.submitTask(e,{type:`file`,file:t})}primeFileHighlightCache(e){if(!this.isWorkingPool())return Promise.reject(Error(`WorkerPoolManager.primeFileHighlightCache: worker pool is not working`));let t=this.getOrCreateFileHighlightCacheTask(e);return t==null?Promise.resolve():this.createRenderTaskCallbacks(t)}getOrCreateFileHighlightCacheTask(e){if(e.cacheKey==null){console.warn(`WorkerPoolManager.primeFileHighlightCache: priming highlight cache requires file.cacheKey; skipping "${e.name}".`);return}let t=this.getFileResultCache(e),n=this.getFileHighlightKey(e);if(n==null||PG(e)||t!=null&&OW(t.options,this.getFileRenderOptions()))return;let r=this.getTaskByHighlightKey(n);if(r!=null)return r.primeCache=!0,r.type===`file`?r:void 0;{let t=this.submitCacheTask({type:`file`,file:e},n);return t.type===`file`?t:void 0}}getPlainFileAST(e,t,n,r){if(this.highlighter==null){this.queueInitialization();return}return EG(e,this.highlighter,this.renderOptions,{forcePlainText:!0,startingLine:t,totalLines:n,lines:r})}highlightDiffAST(e,t){let n=this.getDiffResultCache(t);HK(t)||n!=null&&mK(n.options,this.getDiffRenderOptions())||this.hasMatchingDiffInstanceTask(e,t)||this.submitTask(e,{type:`diff`,diff:t})}primeDiffHighlightCache(e){if(!this.isWorkingPool())return Promise.reject(Error(`WorkerPoolManager.primeDiffHighlightCache: worker pool is not working`));let t=this.getOrCreateDiffHighlightCacheTask(e);return t==null?Promise.resolve():this.createRenderTaskCallbacks(t)}getOrCreateDiffHighlightCacheTask(e){if(e.cacheKey==null){console.warn(`WorkerPoolManager.primeDiffHighlightCache: priming highlight cache requires diff.cacheKey; skipping "${e.prevName??e.name}" -> "${e.name}".`);return}let t=this.getDiffResultCache(e),n=this.getDiffHighlightKey(e);if(n==null||HK(e)||t!=null&&mK(t.options,this.getDiffRenderOptions()))return;let r=this.getTaskByHighlightKey(n);if(r!=null)return r.primeCache=!0,r.type===`diff`?r:void 0;{let t=this.submitCacheTask({type:`diff`,diff:e},n);return t.type===`diff`?t:void 0}}getPlainDiffAST(e,t,n,r,i){return this.highlighter==null?void 0:RK(e,this.highlighter,this.renderOptions,{forcePlainText:!0,startingLine:t,totalLines:n,expandedHunks:r,collapsedContextThreshold:i})}terminate(){this.lifecycleGeneration++,this.cancelActiveWorkerTasks(),this.terminateWorkers();let e=new mq;for(let t of this.queuedTasks)this.rejectRenderTaskCallbacks(t,e);this.fileCache.clear(),this.diffCache.clear(),this.activeRequestByInstance.clear(),this.queuedTasks.length=0,this.queuedTaskByInstance.clear(),this.taskByHighlightKey.clear(),this.activeTaskById.clear(),this.highlighter=void 0,this.initialized=!1,this.workersFailed=!1,this.queueBroadcastStateChanges()}isCurrentLifecycle(e){return this.lifecycleGeneration===e}queueInitialization(e){this.initialize(e).catch(e=>{console.error(e)})}cancelActiveWorkerTasks(){let e=new mq;for(let t of this.activeTaskById.values())`reject`in t?t.reject(e):yq(t)&&this.rejectRenderTaskCallbacks(t,e)}terminateWorkers(){for(let e of this.workers)e.worker.terminate();this.workers.length=0}getStats(){return{managerState:this.initialized===!1?`waiting`:this.initialized===!0?`initialized`:`initializing`,totalWorkers:this.workers.length,workersFailed:this.workersFailed,busyWorkers:this.workers.filter(e=>e.requestId!=null||e.pendingSetupRequestId!=null).length,queuedTasks:this.queuedTasks.length,activeTasks:this.activeTaskById.size,themeSubscribers:this.themeSubscribers.size,fileCacheSize:this.fileCache.size,diffCacheSize:this.diffCache.size}}submitTask(e,t){this.initialized===!1&&this.queueInitialization();let n=this.getHighlightKeyForRequest(t),r=n==null?void 0:this.getTaskByHighlightKey(n);if(r!=null){this.detachInstanceFromQueuedTasks(e,r),this.addInstanceToTask(r,e),this.queueBroadcastStateChanges();return}this.detachInstanceFromQueuedTasks(e);let i=this.generateRequestId(),a=Date.now(),{renderOptionsVersion:o}=this,s=(()=>{switch(t.type){case`file`:return{type:`file`,id:i,request:{...t,id:i},instances:new Set([e]),primeCache:!1,highlightKey:n,callbacks:new Set,renderOptionsVersion:o,requestStart:a};case`diff`:return{type:`diff`,id:i,request:{...t,id:i},instances:new Set([e]),primeCache:!1,highlightKey:n,callbacks:new Set,renderOptionsVersion:o,requestStart:a}}})();this.enqueueRenderTask(s,e)}submitCacheTask(e,t){this.initialized===!1&&this.queueInitialization();let n=this.generateRequestId(),r=Date.now(),{renderOptionsVersion:i}=this,a=(()=>{switch(e.type){case`file`:return{type:`file`,id:n,request:{...e,id:n},instances:new Set,primeCache:!0,highlightKey:t,callbacks:new Set,renderOptionsVersion:i,requestStart:r};case`diff`:return{type:`diff`,id:n,request:{...e,id:n},instances:new Set,primeCache:!0,highlightKey:t,callbacks:new Set,renderOptionsVersion:i,requestStart:r}}})();return this.enqueueRenderTask(a),a}enqueueRenderTask(e,t){this.queuedTasks.push(e),t!=null&&this.queuedTaskByInstance.set(t,e),e.highlightKey!=null&&this.taskByHighlightKey.set(e.highlightKey,e),this.queueDrain()}async resolveLanguagesAndExecuteTask(e,t,n){try{let r=n.filter(t=>!e.langs.has(t));if(r.length>0&&(WK(r)?t.request.resolvedLanguages=UK(r):t.request.resolvedLanguages=await GK(r)),!this.activeTaskById.has(t.id)){e.requestId===t.id&&(this.cleanWorkerAndTask(e,t),this.queueBroadcastStateChanges(),this.queuedTasks.length>0&&this.queueDrain());return}this.executeTask(e,t)}catch(n){this.rejectRenderTaskCallbacks(t,xq(n)),this.cleanWorkerAndTask(e,t),this.queueBroadcastStateChanges(),this.queuedTasks.length>0&&this.queueDrain()}}handleWorkerMessage(e,t){let n=this.activeTaskById.get(t.id);try{if(n==null)throw pq;if(t.type===`error`){let e=Error(t.error);if(t.stack&&(e.stack=t.stack),`reject`in n)n.reject(e);else if(yq(n))this.notifyHighlightError(n,e),this.rejectRenderTaskCallbacks(n,e);else throw Error(`handleWorkerMessage: unknown task type`);throw e}switch(t.requestType){case`initialize`:if(n.type!==`initialize`)throw Error(`handleWorkerMessage: task/response dont match`);this.syncCustomExtensionVersion(e,n.request),n.resolve();break;case`set-render-options`:if(n.type!==`set-render-options`)throw Error(`handleWorkerMessage: task/response dont match`);n.resolve();break;case`file`:{if(n.type!==`file`)throw Error(`handleWorkerMessage: task/response dont match`);let{result:r,options:i}=t;if(!this.isCurrentRenderTask(n)||!OW(i,this.getFileRenderOptions()))throw pq;let{request:a}=n;this.syncCustomExtensionVersion(e,a),n.cacheKeyAtDispatch!=null&&this.fileCache.set(n.cacheKeyAtDispatch,{result:r,options:i}),this.resolveRenderTaskCallbacks(n),this.notifyFileInstances(n,r,i);break}case`diff`:{if(n.type!==`diff`)throw Error(`handleWorkerMessage: task/response dont match`);let{result:r,options:i}=t;if(!this.isCurrentRenderTask(n)||!mK(i,this.getDiffRenderOptions()))throw pq;let{request:a}=n;this.syncCustomExtensionVersion(e,a),n.cacheKeyAtDispatch!=null&&this.diffCache.set(n.cacheKeyAtDispatch,{result:r,options:i}),this.resolveRenderTaskCallbacks(n),this.notifyDiffInstances(n,r,i);break}}}catch(e){e!==pq&&console.error(e,n,t)}this.cleanWorkerAndTask(e,n,t.id),this.queueBroadcastStateChanges(),this.queuedTasks.length>0&&this.queueDrain()}_queuedDrain;queueDrain(){this._queuedDrain??(this._queuedDrain=Promise.resolve().then(this.drainQueue),this.queueBroadcastStateChanges())}assignWorkerToTask(e,t){t.requestId=e.id,yq(e)&&(this.clearQueuedInstanceRequests(e),this.trackInstanceRequests(e)),this.activeTaskById.set(e.id,e)}cleanWorkerAndTask(e,t,n=t?.id){e.requestId===n&&(e.requestId=void 0),e.pendingSetupRequestId===n&&(e.pendingSetupRequestId=void 0),t!=null&&(yq(t)&&(this.rejectRenderTaskCallbacks(t,new hq),this.clearInstanceRequests(t),this.clearHighlightKey(t)),this.activeTaskById.delete(t.id))}executeTask(e,t){_q(t.request)&&this.maybeAttachCustomExtensions(e,t.request),this.activeTaskById.has(t.id)||this.assignWorkerToTask(t,e);for(let n of vq(t))e.langs.add(n);try{t.type===`file`?t.cacheKeyAtDispatch=t.request.file.cacheKey:t.type===`diff`&&(t.cacheKeyAtDispatch=t.request.diff.cacheKey),e.worker.postMessage(t.request)}catch(n){console.error(`Failed to post message to worker:`,n),yq(t)?(this.notifyHighlightError(t,n),this.rejectRenderTaskCallbacks(t,xq(n))):`reject`in t&&t.reject(n),this.cleanWorkerAndTask(e,t),this.queuedTasks.length>0&&this.queueDrain()}this.queueBroadcastStateChanges()}maybeAttachCustomExtensions(e,t){if(t.customExtensionsVersion!=null)return;let n=VW();e.customExtensionsVersion>=n||(t.customExtensionsVersion=n,t.customExtensionMap=HW())}syncCustomExtensionVersion(e,t){t.customExtensionsVersion!=null&&(e.customExtensionsVersion=t.customExtensionsVersion)}getAvailableWorker(e){let t;for(let n of this.workers){if(n.requestId!=null||n.pendingSetupRequestId!=null||!n.initialized)continue;if(t=n,e.length===0)break;let r=!0;for(let t of e)if(!n.langs.has(t)){r=!1;break}if(r)break}return t}getFileHighlightKey(e){if(e.cacheKey!=null)return`file:${e.cacheKey}:${this.renderOptionsVersion}`}getDiffHighlightKey(e){if(e.cacheKey!=null)return`diff:${e.cacheKey}:${this.renderOptionsVersion}`}getHighlightKeyForRequest(e){switch(e.type){case`file`:return this.getFileHighlightKey(e.file);case`diff`:return this.getDiffHighlightKey(e.diff)}}hasActiveRequest(e){for(let t of bq(e))if(this.activeRequestByInstance.has(t))return!0;return!1}addInstanceToTask(e,t){e.type,e.instances.add(t),this.activeTaskById.has(e.id)?this.activeRequestByInstance.set(t,e.id):this.queuedTaskByInstance.set(t,e)}detachInstanceFromQueuedTasks(e,t){let n=this.queuedTaskByInstance.get(e);n!=null&&n!==t&&(this.queuedTaskByInstance.delete(e),this.detachInstanceFromRenderTask(n,e),!n.primeCache&&n.instances.size===0&&this.removeQueuedTask(n))}detachInstanceFromRenderTask(e,t){e.type,e.instances.delete(t)}removeQueuedTask(e){let t=this.queuedTasks.indexOf(e);t!==-1&&this.queuedTasks.splice(t,1),this.rejectRenderTaskCallbacks(e,new hq),this.clearQueuedInstanceRequests(e),this.clearHighlightKey(e)}removeActiveTask(e){this.rejectRenderTaskCallbacks(e,new hq),this.clearInstanceRequests(e),this.clearHighlightKey(e),this.activeTaskById.delete(e.id)}createRenderTaskCallbacks(e){return new Promise((t,n)=>{e.callbacks.add({resolve:t,reject:n})})}resolveRenderTaskCallbacks(e){for(let t of e.callbacks)t.resolve();e.callbacks.clear()}rejectRenderTaskCallbacks(e,t){for(let n of e.callbacks)n.reject(t);e.callbacks.clear()}invalidateRenderTasks(){for(let e=this.queuedTasks.length-1;e>=0;e--){let t=this.queuedTasks[e];t.renderOptionsVersion!==this.renderOptionsVersion&&this.removeQueuedTask(t)}for(let e of Array.from(this.activeTaskById.values()))yq(e)&&e.renderOptionsVersion!==this.renderOptionsVersion&&this.removeActiveTask(e)}clearQueuedInstanceRequests(e){for(let t of bq(e))this.queuedTaskByInstance.get(t)===e&&this.queuedTaskByInstance.delete(t)}clearHighlightKey(e){e.highlightKey!=null&&this.taskByHighlightKey.get(e.highlightKey)===e&&this.taskByHighlightKey.delete(e.highlightKey)}trackInstanceRequests(e){for(let t of bq(e))this.activeRequestByInstance.set(t,e.id)}clearInstanceRequests(e){for(let t of bq(e))this.activeRequestByInstance.get(t)===e.id&&this.activeRequestByInstance.delete(t)}notifyFileInstances(e,t,n){for(let r of e.instances)this.activeRequestByInstance.get(r)===e.id&&r.onHighlightSuccess(e.request.file,t,n)}notifyDiffInstances(e,t,n){for(let r of e.instances)this.activeRequestByInstance.get(r)===e.id&&r.onHighlightSuccess(e.request.diff,t,n)}notifyHighlightError(e,t){for(let n of bq(e))this.activeRequestByInstance.get(n)===e.id&&n.onHighlightError(t)}hasMatchingFileInstanceTask(e,t){for(let n of this.iterateRenderTasks())if(n.type===`file`&&this.isCurrentRenderTask(n)&&n.instances.has(e)&&yN(t,n.request.file))return!0;return!1}hasMatchingDiffInstanceTask(e,t){for(let n of this.iterateRenderTasks())if(n.type===`diff`&&this.isCurrentRenderTask(n)&&n.instances.has(e)&&pK(n.request.diff,t))return!0;return!1}getTaskByHighlightKey(e){let t=this.taskByHighlightKey.get(e);return t!=null&&this.isCurrentRenderTask(t)?t:void 0}isCurrentRenderTask(e){return e.renderOptionsVersion===this.renderOptionsVersion}*iterateRenderTasks(){for(let e of this.queuedTasks)yield e;for(let e of this.activeTaskById.values())yq(e)&&(yield e)}generateRequestId(){return`req_${++this.nextRequestId}`}};function _q(e){return e.type===`initialize`||e.type===`file`||e.type===`diff`}function vq(e){let t=new Set;if(e.type===`initialize`||e.type===`set-render-options`)return[];switch(e.type){case`file`:t.add(e.request.file.lang??BW(e.request.file.name));break;case`diff`:t.add(e.request.diff.lang??BW(e.request.diff.name)),t.add(e.request.diff.lang??BW(e.request.diff.prevName??`-`))}return t.delete(`text`),Array.from(t)}function yq(e){return e?.type===`file`||e?.type===`diff`}function bq(e){return e.instances}function xq(e){return e instanceof Error?e:Error(String(e))}var Sq;function Cq({poolOptions:e,highlighterOptions:t}){return Sq??=new gq(e,t),Sq}function wq(){Sq!=null&&(Sq.terminate(),Sq=void 0)}var Tq=(0,O.createContext)(void 0),Eq=0;function Dq({children:e,poolOptions:t,highlighterOptions:n}){let[r]=(0,O.useState)(()=>{if(!(typeof window>`u`))return Cq({poolOptions:t,highlighterOptions:n})});return(0,O.useInsertionEffect)(()=>{if(r!=null)return Eq++,()=>{Eq--}},[r]),(0,O.useEffect)(()=>()=>{Eq===0&&wq()},[]),(0,k.jsx)(Tq.Provider,{value:r,children:e})}function Oq(){return(0,O.useContext)(Tq)}export{AG as $,Ch as $a,bx as $i,uk as $n,j as $o,tT as $r,no as $s,_M as $t,lK as A,l_ as Aa,xC as Ai,Mj as An,Wf as Ao,oD as Ar,Lo as As,aP as At,XG as B,Ug as Ba,pC as Bi,hA as Bn,jd as Bo,QT as Br,mo as Bs,yN as Bt,xK as C,m_ as Ca,vw as Ci,Kj as Cn,rp as Co,MD as Cr,Po as Cs,RP as Ct,mK as D,u_ as Da,uw as Di,Gj as Dn,$f as Do,BD as Dr,jo as Ds,FP as Dt,SK as E,d_ as Ea,Tw as Ei,Yj as En,ip as Eo,GD as Er,Mo as Es,LP as Et,nK as F,Jg as Fa,lC as Fi,MA as Fn,Pf as Fo,JT as Fr,bo as Fs,wN as Ft,BG as G,kg as Ga,XS as Gi,Xk as Gn,Ru as Go,VT as Gr,to as Gs,LM as Gt,JG as H,Lg as Ha,nC as Hi,Qk as Hn,wd as Ho,LT as Hr,co as Hs,BM as Ht,tK as I,Wg as Ia,dC as Ii,DA as In,pf as Io,eE as Ir,yo as Is,CN as It,FG as J,ig as Ja,SS as Ji,hk as Jn,Rl as Jo,Xw as Jr,Za as Js,NM as Jt,zG as K,hg as Ka,NS as Ki,Vk as Kn,Uu as Ko,UT as Kr,ao as Ks,IM as Kt,eK as L,Zg as La,mC as Li,jA as Ln,ff as Lo,XT as Lr,vo as Ls,B as Lt,sK as M,s_ as Ma,hC as Mi,bj as Mn,Vf as Mo,nD as Mr,Ro as Ms,MN as Mt,iK as N,o_ as Na,_C as Ni,hj as Nn,Rf as No,iD as Nr,Yo as Ns,kN as Nt,pK as O,i_ as Oa,jC as Oi,Xj as On,Yf as Oo,yD as Or,To as Os,sP as Ot,rK as P,Yg as Pa,oC as Pi,nj as Pn,Ff as Po,aD as Pr,qo as Ps,TN as Pt,OG as Q,Dh as Qa,iS as Qi,pk as Qn,dl as Qo,eT as Qr,Va as Qs,oM as Qt,$G as R,Rg as Ra,uC as Ri,EA as Rn,af as Ro,ZT as Rr,_o as Rs,xN as Rt,bK as S,g_ as Sa,dw as Si,qj as Sn,cp as So,ID as Sr,Eo as Ss,VP as St,yK as T,f_ as Ta,pw as Ti,Qj as Tn,Zf as To,WD as Tr,Wo as Ts,IP as Tt,WG as U,Tg as Ua,QS as Ui,$k as Un,td as Uo,FT as Ur,so as Us,zM as Ut,YG as V,Cg as Va,cC as Vi,gA as Vn,Sd as Vo,MT as Vr,lo as Vs,_N as Vt,VG as W,xg as Wa,ZS as Wi,Zk as Wn,ld as Wo,IT as Wr,oo as Ws,RM as Wt,NG as X,xh as Xa,tS as Xi,gk as Xn,Ol as Xo,Kw as Xr,Ba as Xs,AM as Xt,PG as Y,_h as Ya,yS as Yi,mk as Yn,kl as Yo,Zw as Yr,io as Ys,MM as Yt,MG as Z,Eh as Za,aS as Zi,yk as Zn,wl as Zo,qw as Zr,Ua as Zs,kM as Zt,AK as _,q_ as _a,hw as _i,lM as _n,sm as _o,RO as _r,fs as _s,dI as _t,uq as a,Oy as aa,mT as ai,wM as an,Rm as ao,zO as ar,Rs as as,UW as at,OK as b,w_ as ba,fw as bi,sM as bn,sp as bo,dO as br,ns as bs,PF as bt,oq as c,xy as ca,gT as ci,fM as cn,Pm as co,ok as cr,Ps as cs,MW as ct,rq as d,vy as da,Dw as di,eM as dn,km as do,qO as dr,Os as ds,OW as dt,Mb as ea,za as ec,fT as ei,gM as en,Sh as eo,dk as er,ol as es,kG as et,tq as f,gy as fa,Ew as fi,$j as fn,Jm as fo,IO as fr,Es as fs,DW as ft,RK as g,ev as ga,xw as gi,nM as gn,cm as go,ak as gr,ds as gs,SW as gt,HK as h,J_ as ha,yw as hi,aM as hn,om as ho,YO as hr,ps as hs,CW as ht,lq as i,Tb as ia,pT as ii,SM as in,$m as io,GO as ir,Fs as is,WW as it,dK as j,c_ as ja,gC as ji,jj as jn,Bf as jo,sD as jr,ko as js,tP as jt,cK as k,r_ as ka,CC as ki,Nj as kn,Hf as ko,bD as kr,Fo as ks,iP as kt,iq as l,Ov as la,hT as li,yM as ln,Nm as lo,QO as lr,Ns as ls,AW as lt,YK as m,tv as ma,kw as mi,iM as mn,am as mo,JO as mr,_s as ms,TW as mt,Dq as n,Pb as na,Ka as nc,_T as ni,dM as nn,ph as no,WO as nr,Bs as ns,EG as nt,dq as o,Ay as oa,uT as oi,TM as on,Vm as oo,VO as or,Ls as os,BW as ot,eq as p,_y as pa,Ow as pi,EM as pn,qm as po,LO as pr,Ts as ps,EW as pt,IG as q,ng as qa,MS as qi,Kk as qn,wu as qo,WT as qr,ro as qs,PM as qt,Oq as r,Eb as ra,dT as ri,xM as rn,eh as ro,sk as rr,zs as rs,wG as rt,cq as s,mv as sa,lT as si,CM as sn,Am as so,UO as sr,Ms as ss,FW as st,Tq as t,Nb as ta,Ga as tc,cT as ti,tM as tn,hh as to,FO as tr,Vs as ts,jG as tt,aq as u,Dv as ua,I as ui,bM as un,Km as uo,KO as ur,js as us,kW as ut,vK as v,C_ as va,Cw as vi,uM as vn,rm as vo,MO as vr,ss as vs,$F as vt,kK as w,__ as wa,bw as wi,Zj as wn,Xf as wo,LD as wr,No as ws,zP as wt,CK as x,x_ as xa,mw as xi,rM as xn,op as xo,cO as xr,ts as xs,AF as xt,_K as y,S_ as ya,ww as yi,cM as yn,lm as yo,bO as yr,os as ys,NF as yt,QG as z,Hg as za,sC as zi,AA as zn,xd as zo,rE as zr,go as zs,bN as zt};
|
|
1533
|
-
//# sourceMappingURL=WorkerPoolContext-
|
|
1532
|
+
}`}function XG(e,t){let n=GG(t);return e.replace(qG,n)}function ZG(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function QG({code:e,pre:t,columnType:n,rowSpan:r,containerSize:i=!1}={}){return e??(e=document.createElement(`code`),e.setAttribute(`data-code`,``),n!=null&&e.setAttribute(`data-${n}`,``),t?.appendChild(e)),r==null?e.style.removeProperty(`grid-row`):e.style.setProperty(`grid-row`,`span ${r}`),i?e.setAttribute(`data-container-size`,``):e.removeAttribute(`data-container-size`),e}function $G(e,t){if(t==null)return;let n=e.shadowRoot??e.attachShadow({mode:`open`});n.innerHTML===``&&(n.innerHTML=t)}function eK(e,{type:t,diffIndicators:n,disableBackground:r,disableLineNumbers:i,overflow:a,split:o,totalLines:s,customProperties:c}){if(c!=null)for(let t in c){let n=c[t];n!=null&&e.setAttribute(t,`${n}`)}switch(t===`diff`?(e.setAttribute(`data-diff`,``),e.removeAttribute(`data-file`)):(e.setAttribute(`data-file`,``),e.removeAttribute(`data-diff`)),n){case`bars`:case`classic`:e.setAttribute(`data-indicators`,n);break;case`none`:e.removeAttribute(`data-indicators`)}return i?e.setAttribute(`data-disable-line-numbers`,``):e.removeAttribute(`data-disable-line-numbers`),r?e.removeAttribute(`data-background`):e.setAttribute(`data-background`,``),t===`diff`?e.setAttribute(`data-diff-type`,o?`split`:`single`):e.removeAttribute(`data-diff-type`),e.setAttribute(`data-overflow`,a),e.style.setProperty(`--diffs-min-number-column-width-default`,`${`${s}`.length}ch`),e}function tK(e){if(typeof HTMLStyleElement<`u`&&e instanceof HTMLStyleElement)return!0;let t=e.tagName??e.nodeName;return typeof t==`string`&&t.toLowerCase()===`style`}function nK(e){return e?.useTokenTransformer===!0||e?.onTokenClick!=null||e?.onTokenEnter!=null||e?.onTokenLeave!=null}function rK(e,t){let n=e?.offsetHeight??0;if(e==null||n===0){t();return}e.style.minHeight=`${n}px`;try{t(),e.offsetHeight}finally{e.style.minHeight=``}}function iK({shadowRoot:e,currentNode:t,themeCSS:n}){if(n.trim()===``){t?.remove();return}return t??=aK(),t.textContent=n,t.parentNode!==e&&e.appendChild(t),t}function aK(){let e=document.createElement(`style`);return e.setAttribute(pM,``),e}var oK=void 0;function sK(){return oK??=`safari`in window&&`pushNotification`in window.safari||/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}if(typeof HTMLElement<`u`&&customElements.get(`diffs-container`)==null){let e;class t extends HTMLElement{constructor(){if(super(),this.shadowRoot!=null)return;let t=this.attachShadow({mode:`open`});e??(e=new CSSStyleSheet,e.replaceSync(HG)),t.adoptedStyleSheets=[e]}connectedCallback(){WG(this.shadowRoot??this.attachShadow({mode:`open`}))}}customElements.define($j,t)}function cK(e){return{...bM,...e}}function lK(e,t){let n=uK(e,t);return t?n:e.diffHeaderHeight+n}function uK(e,t){return e.paddingTop??(t?e.spacing:0)}function dK(e){return e.paddingBottom??e.spacing}function fK(e){switch(e){case`simple`:return 4;case`metadata`:case`line-info`:case`line-info-basic`:case`custom`:return 32}}function pK(e,t){return e===t||e?.cacheKey!=null&&e.cacheKey===t?.cacheKey}function mK(e,t){return NM(e.theme,t.theme)&&e.useTokenTransformer===t.useTokenTransformer&&e.tokenizeMaxLineLength===t.tokenizeMaxLineLength&&e.lineDiffType===t.lineDiffType&&e.maxLineDiffLength===t.maxLineDiffLength}function hK({line:e,spanStart:t,spanLength:n}){return{start:{line:e,character:t},end:{line:e,character:t+n},properties:{"data-diff-span":``},alwaysWrap:!0}}function gK({item:e,arr:t,enableJoin:n,isNeutral:r=!1,isLastItem:i=!1}){let a=t[t.length-1];if(a==null||i||!n){t.push([+!r,e.value]);return}let o=a[0]===0;if(r===o||r&&e.value.length===1&&!o){a[1]+=e.value;return}t.push([+!r,e.value])}function _K(e){return[zM(e.additionStart,e.additionCount)+1,BM(e.additionStart,e.additionCount)+1]}function vK({isPartial:e,rangeSize:t,expandedHunks:n,hunkIndex:r,collapsedContextThreshold:i}){let a=Math.max(t,0);if(a===0||e)return{fromStart:0,fromEnd:0,rangeSize:a,collapsedLines:a,renderAll:!1};if(n===!0||a<=i)return{fromStart:a,fromEnd:0,rangeSize:a,collapsedLines:0,renderAll:!0};let o=n?.get(r),s=Math.min(Math.max(o?.fromStart??0,0),a),c=Math.min(Math.max(o?.fromEnd??0,0),a),l=s+c,u=l>=a;return{fromStart:u?a:s,fromEnd:u?0:c,rangeSize:a,collapsedLines:Math.max(a-l,0),renderAll:u}}function yK(e){let t=e.hunks[e.hunks.length-1];if(t==null||e.isPartial||e.additionLines.length===0||e.deletionLines.length===0)return!1;let n=e.additionLines.length-BM(t.additionStart,t.additionCount),r=e.deletionLines.length-BM(t.deletionStart,t.deletionCount);return n<=0&&r<=0?!1:n!==r}function bK({fileDiff:e,errorPrefix:t}){let n=e.hunks[e.hunks.length-1];if(n==null||e.isPartial||e.additionLines.length===0||e.deletionLines.length===0)return 0;let r=e.additionLines.length-BM(n.additionStart,n.additionCount),i=e.deletionLines.length-BM(n.deletionStart,n.deletionCount);if(r<=0&&i<=0)return 0;if(r!==i)throw Error(`${t}: trailing context mismatch (additions=${r}, deletions=${i}) for ${e.name}`);return Math.min(r,i)}function xK({fileDiff:e,hunkIndex:t,expandedHunks:n,collapsedContextThreshold:r,errorPrefix:i}){if(t!==e.hunks.length-1)return;let a=bK({fileDiff:e,errorPrefix:i});if(a<=0)return;if(n===!0||a<=r)return{fromStart:a,fromEnd:0,rangeSize:a,collapsedLines:0,renderAll:!0};let o=n?.get(e.hunks.length),s=Math.min(Math.max(o?.fromStart??0,0),a);return{fromStart:s,fromEnd:0,rangeSize:a,collapsedLines:a-s,renderAll:s>=a}}function SK({fileDiff:e,lineNumber:t,expandedHunks:n,collapsedContextThreshold:r}){if(n===!0||e.isPartial)return!0;for(let[i,a]of e.hunks.entries()){let[o,s]=_K(a);if(t<o){let s=vK({isPartial:e.isPartial,rangeSize:a.collapsedBefore,expandedHunks:n,hunkIndex:i,collapsedContextThreshold:r}),c=o-s.rangeSize;return s.renderAll||t<c+s.fromStart||t>=o-s.fromEnd}if(t<s)return!0}let i=xK({fileDiff:e,hunkIndex:e.hunks.length-1,expandedHunks:n,collapsedContextThreshold:r,errorPrefix:`isAdditionLineRenderable`});if(i==null||i.renderAll)return!0;let a=e.hunks[e.hunks.length-1],[,o]=_K(a);return t<o+i.fromStart||t>=o+i.rangeSize}function CK({fileDiff:e,lineNumber:t,direction:n,expandedHunks:r,collapsedContextThreshold:i}){if(r===!0||e.isPartial)return t;let a=[],o=1;for(let[t,n]of e.hunks.entries()){let[s,c]=_K(n),l=vK({isPartial:e.isPartial,rangeSize:n.collapsedBefore,expandedHunks:r,hunkIndex:t,collapsedContextThreshold:i}),u=s-l.rangeSize;l.renderAll?a.push([u,s]):(l.fromStart>0&&a.push([u,u+l.fromStart]),l.fromEnd>0&&a.push([s-l.fromEnd,s])),a.push([s,c]),o=c}let s=xK({fileDiff:e,hunkIndex:e.hunks.length-1,expandedHunks:r,collapsedContextThreshold:i,errorPrefix:`getNearestRenderableAdditionLine`});if(s!=null){let e=o;o=e+s.rangeSize,s.renderAll?a.push([e,o]):s.fromStart>0&&a.push([e,e+s.fromStart])}if(t>=o)return t;if(n===`down`){for(let[e,n]of a)if(n>t)return Math.max(e,t);return}for(let e=a.length-1;e>=0;e--){let[n,r]=a[e];if(n<=t)return Math.min(r-1,t)}}function wK({type:e,metrics:t}){return t.hunkSeparatorHeight??fK(e)}function TK({type:e,metrics:t}){return e===`simple`||e===`metadata`||e===`line-info-basic`?0:t.spacing}function EK({type:e,hunkIndex:t,hunkSpecs:n}){switch(e){case`simple`:return t>0;case`metadata`:return n!=null;case`line-info`:case`line-info-basic`:case`custom`:return!0}}function DK(e){return e!==`simple`&&e!==`metadata`}function OK({type:e,metrics:t,hunkIndex:n,hunkSpecs:r}){if(!EK({type:e,hunkIndex:n,hunkSpecs:r}))return;let i=wK({type:e,metrics:t}),a=TK({type:e,metrics:t}),o=n>0?a:0,s=a;return{height:i,gapBefore:o,gapAfter:s,totalHeight:o+i+s}}function kK({type:e,metrics:t}){if(!DK(e))return;let n=wK({type:e,metrics:t}),r=TK({type:e,metrics:t});return{height:n,gapBefore:r,gapAfter:0,totalHeight:r+n}}function AK({diff:e,diffStyle:t,startingLine:n=0,totalLines:r=1/0,expandedHunks:i,collapsedContextThreshold:a=1,callback:o}){let s=jK({diff:e,diffStyle:t,startingLine:n,expandedHunks:i,collapsedContextThreshold:a}),c={viewportStart:n,viewportEnd:n+r,isWindowedHighlight:n>0||r<1/0,splitCount:s.splitCount,unifiedCount:s.unifiedCount,finalHunkIndex:e.hunks.length-1,shouldBreak(){if(!c.isWindowedHighlight)return!1;let e=c.unifiedCount>=n+r,i=c.splitCount>=n+r;return t===`unified`?e:(t===`split`||e)&&i},shouldSkip(e,r){if(!c.isWindowedHighlight)return!1;let i=e>0&&c.unifiedCount+e<=n,a=r>0&&c.splitCount+r<=n;return t===`unified`?i:(t===`split`||i)&&a},incrementCounts(e,n){(t===`unified`||t===`both`)&&(c.unifiedCount+=e),(t===`split`||t===`both`)&&(c.splitCount+=n)},isInWindow(e,n){if(!c.isWindowedHighlight)return!0;let r=c.isInUnifiedWindow(e),i=c.isInSplitWindow(n);return t===`unified`?r:t===`split`?i:r||i},isInUnifiedWindow(e){return!c.isWindowedHighlight||c.unifiedCount>=n-e&&c.unifiedCount<n+r},isInSplitWindow(e){return!c.isWindowedHighlight||c.splitCount>=n-e&&c.splitCount<n+r},emit(e,n=!1){return n||(t===`unified`?c.incrementCounts(1,0):t===`split`?c.incrementCounts(0,1):c.incrementCounts(1,1)),o(e)??!1}};hunkIterator:for(let n=s.hunkIndex;n<e.hunks.length;n++){let r=e.hunks[n];if(r==null)throw Error(`iterateOverDiff: invalid hunk index`);if(c.shouldBreak())break;let o=zM(r.deletionStart,r.deletionCount),s=zM(r.additionStart,r.additionCount),l=!e.isPartial&&r.deletionCount===0?o:r.deletionLineIndex,u=!e.isPartial&&r.additionCount===0?s:r.additionLineIndex,d=vK({isPartial:e.isPartial,rangeSize:r.collapsedBefore,expandedHunks:i,hunkIndex:n,collapsedContextThreshold:a}),f=n===c.finalHunkIndex?xK({fileDiff:e,hunkIndex:n,expandedHunks:i,collapsedContextThreshold:a,errorPrefix:`iterateOverDiff`}):void 0,p=d.fromStart+d.fromEnd;function m(e,n){return f==null||f.collapsedLines<=0||f.fromStart+f.fromEnd>0?0:t===`unified`?e===r.unifiedLineStart+r.unifiedLineCount-1?f.collapsedLines:0:n===r.splitLineStart+r.splitLineCount-1?f.collapsedLines:0}let h=d.collapsedLines===0;function g(){return h?0:(h=!0,d.collapsedLines)}if(c.shouldSkip(p,p))c.incrementCounts(p,p),g();else{let e=r.unifiedLineStart-d.rangeSize,i=r.splitLineStart-d.rangeSize,a=l-d.rangeSize,f=u-d.rangeSize,p=o+1-d.rangeSize,m=s+1-d.rangeSize;if(PK(c,d.fromStart,t,t=>c.emit({hunkIndex:n,hunk:r,collapsedBefore:0,collapsedAfter:0,type:`context-expanded`,deletionLine:{lineNumber:p+t,lineIndex:a+t,noEOFCR:!1,unifiedLineIndex:e+t,splitLineIndex:i+t},additionLine:{unifiedLineIndex:e+t,splitLineIndex:i+t,lineIndex:f+t,lineNumber:m+t,noEOFCR:!1}}))||(e=r.unifiedLineStart-d.fromEnd,i=r.splitLineStart-d.fromEnd,a=l-d.fromEnd,f=u-d.fromEnd,p=o+1-d.fromEnd,m=s+1-d.fromEnd,PK(c,d.fromEnd,t,t=>c.emit({hunkIndex:n,hunk:r,collapsedBefore:g(),collapsedAfter:0,type:`context-expanded`,deletionLine:{lineNumber:p+t,lineIndex:a+t,noEOFCR:!1,unifiedLineIndex:e+t,splitLineIndex:i+t},additionLine:{unifiedLineIndex:e+t,splitLineIndex:i+t,lineIndex:f+t,lineNumber:m+t,noEOFCR:!1}}),()=>{g()})))break hunkIterator}let _=r.unifiedLineStart,v=r.splitLineStart,y=l,b=u,x=o+1,ee=s+1,te=r.hunkContent.at(-1);for(let e of r.hunkContent){if(c.shouldBreak())break hunkIterator;let i=e===te;if(e.type===`context`){if(c.shouldSkip(e.lines,e.lines))c.incrementCounts(e.lines,e.lines),g();else if(PK(c,e.lines,t,t=>{let a=i&&t===e.lines-1,o=_+t,s=v+t;return c.emit({hunkIndex:n,hunk:r,collapsedBefore:g(),collapsedAfter:m(o,s),type:`context`,deletionLine:{lineNumber:x+t,lineIndex:y+t,noEOFCR:a&&r.noEOFCRDeletions,unifiedLineIndex:o,splitLineIndex:s},additionLine:{unifiedLineIndex:o,splitLineIndex:s,lineIndex:b+t,lineNumber:ee+t,noEOFCR:a&&r.noEOFCRAdditions}})},()=>{g()}))break hunkIterator;_+=e.lines,v+=e.lines,y+=e.lines,b+=e.lines,x+=e.lines,ee+=e.lines}else{let a=Math.max(e.deletions,e.additions),o=e.deletions+e.additions;if(!c.shouldSkip(o,a)){let s=FK(c,e,t);(s[0]?.[0]??0)>0&&g();for(let[l,u]of s)for(let s=l;s<u;s++){let l=m(_+s,t===`unified`?v+(s<e.deletions?s:s-e.deletions):v+s);if(c.emit(IK({hunkIndex:n,hunk:r,collapsedBefore:g(),collapsedAfter:l,diffStyle:t,index:s,unifiedLineIndex:_,splitLineIndex:v,additionLineIndex:b,deletionLineIndex:y,additionLineNumber:ee,deletionLineNumber:x,content:e,isLastContent:i,unifiedCount:o,splitCount:a}),!0))break hunkIterator}}g(),c.incrementCounts(o,a),_+=o,v+=a,y+=e.deletions,b+=e.additions,x+=e.deletions,ee+=e.additions}}if(f!=null){let{collapsedLines:n,fromStart:r,fromEnd:i}=f,a=r+i;if(PK(c,a,t,t=>{let r=t===a-1;return c.emit({hunkIndex:e.hunks.length,hunk:void 0,collapsedBefore:0,collapsedAfter:r?n:0,type:`context-expanded`,deletionLine:{lineNumber:x+t,lineIndex:y+t,noEOFCR:!1,unifiedLineIndex:_+t,splitLineIndex:v+t},additionLine:{unifiedLineIndex:_+t,splitLineIndex:v+t,lineIndex:b+t,lineNumber:ee+t,noEOFCR:!1}})},void 0,()=>c.shouldBreak()))break hunkIterator}}}function jK({diff:e,diffStyle:t,startingLine:n,expandedHunks:r,collapsedContextThreshold:i}){if(n<=0||t===`both`)return{hunkIndex:0,splitCount:0,unifiedCount:0};let a=MK({diff:e,expandedHunks:r,collapsedContextThreshold:i}),o=0,s=e.hunks.length-1,c=e.hunks.length;for(;o<=s;){let e=o+s>>1,r=a[e+1];if(r==null)throw Error(`iterateOverDiff: invalid hunk prefix index`);(t===`unified`?r.unifiedCount:r.splitCount)>n?(c=e,s=e-1):o=e+1}if(c>=e.hunks.length){let t=a[e.hunks.length];if(t==null)throw Error(`iterateOverDiff: invalid terminal hunk prefix index`);return{hunkIndex:e.hunks.length,splitCount:t.splitCount,unifiedCount:t.unifiedCount}}let l=a[c];if(l==null)throw Error(`iterateOverDiff: invalid selected hunk prefix index`);return{hunkIndex:c,splitCount:l.splitCount,unifiedCount:l.unifiedCount}}function MK({diff:e,expandedHunks:t,collapsedContextThreshold:n}){let r=0,i=0,a=e.hunks.length-1,o=[{splitCount:0,unifiedCount:0}];for(let s=0;s<e.hunks.length;s++){let c=e.hunks[s];if(c==null)throw Error(`iterateOverDiff: invalid hunk summary index`);let l=vK({isPartial:e.isPartial,rangeSize:c.collapsedBefore,expandedHunks:t,hunkIndex:s,collapsedContextThreshold:n}),u=l.fromStart+l.fromEnd;r+=u+c.splitLineCount,i+=u+c.unifiedLineCount;let d=s===a?xK({fileDiff:e,hunkIndex:s,expandedHunks:t,collapsedContextThreshold:n,errorPrefix:`iterateOverDiff`}):void 0;if(d!=null){let e=d.fromStart+d.fromEnd;r+=e,i+=e}o.push({splitCount:r,unifiedCount:i})}return o}function NK(e,t,n){if(!e.isWindowedHighlight||t<=0)return[0,t];let r=[];function i(n){let i=Math.max(0,e.viewportStart-n),a=Math.min(t,e.viewportEnd-n);a>i&&r.push([i,a])}if(n!==`split`&&i(e.unifiedCount),n!==`unified`&&i(e.splitCount),r.length===0)return[0,0];let a=r[0][0],o=r[0][1];for(let e=1;e<r.length;e++){let t=r[e];a=Math.min(a,t[0]),o=Math.max(o,t[1])}return[a,o]}function PK(e,t,n,r,i,a){let[o,s]=NK(e,t,n);o>0&&(e.incrementCounts(o,o),i?.());let c=o;for(;c<t;){if(a?.()===!0)return!0;if(c>=s){e.incrementCounts(t-c,t-c);break}if(e.isInWindow(0,0)){if(r(c)===!0)return!0}else e.incrementCounts(1,1);c++}return!1}function FK(e,t,n){if(!e.isWindowedHighlight)return[[0,n===`unified`?t.deletions+t.additions:Math.max(t.deletions,t.additions)]];let r=n!==`split`,i=n!==`unified`,a=n===`unified`?`unified`:`split`,o=[];function s(t,n){if(t+n<=e.viewportStart||t>=e.viewportEnd)return;let r=Math.max(0,e.viewportStart-t),i=Math.min(n,e.viewportEnd-t);return i>r?[r,i]:void 0}function c(e,n){return a===`split`?e:n===`additions`?[e[0]+t.deletions,e[1]+t.deletions]:e}function l(e,t){if(e==null)return;let[n,r]=c(e,t);r>n&&o.push([n,r])}if(r&&(l(s(e.unifiedCount,t.deletions),`deletions`),l(s(e.unifiedCount+t.deletions,t.additions),`additions`)),i&&(l(s(e.splitCount,t.deletions),`deletions`),l(s(e.splitCount,t.additions),`additions`)),o.length===0)return o;o.sort((e,t)=>e[0]-t[0]);let u=[o[0]];for(let[e,t]of o.slice(1)){let n=u[u.length-1];e<=n[1]?n[1]=Math.max(n[1],t):u.push([e,t])}return u}function IK({hunkIndex:e,hunk:t,collapsedAfter:n,collapsedBefore:r,diffStyle:i,index:a,unifiedLineIndex:o,splitLineIndex:s,additionLineIndex:c,deletionLineIndex:l,additionLineNumber:u,deletionLineNumber:d,content:f,isLastContent:p,unifiedCount:m,splitCount:h}){let g=a<f.deletions?o+a:void 0,_=i===`unified`?a>=f.deletions?o+a:void 0:a<f.additions?o+f.deletions+a:void 0,v=i===`unified`?s+(a<f.deletions?a:a-f.deletions):s+a,y=a<f.deletions?l+a:void 0,b=a<f.deletions?d+a:void 0,x=i===`unified`?a>=f.deletions?c+(a-f.deletions):void 0:a<f.additions?c+a:void 0,ee=i===`unified`?a>=f.deletions?u+(a-f.deletions):void 0:a<f.additions?u+a:void 0,te=i===`unified`?p&&a===f.deletions-1&&t.noEOFCRDeletions:p&&a===h-1&&t.noEOFCRDeletions,ne=i===`unified`?p&&a===m-1&&t.noEOFCRAdditions:p&&a===h-1&&t.noEOFCRAdditions,re=y!=null&&b!=null&&g!=null?{lineNumber:b,lineIndex:y,noEOFCR:te,unifiedLineIndex:g,splitLineIndex:v}:void 0,ie=x!=null&&ee!=null&&_!=null?{unifiedLineIndex:_,splitLineIndex:v,lineIndex:x,lineNumber:ee,noEOFCR:ne}:void 0;if(re==null&&ie!=null)return{type:`change`,hunkIndex:e,hunk:t,collapsedAfter:n,collapsedBefore:r,deletionLine:void 0,additionLine:ie};if(re!=null&&ie==null)return{type:`change`,hunkIndex:e,hunk:t,collapsedAfter:n,collapsedBefore:r,deletionLine:re,additionLine:void 0};if(re==null||ie==null)throw Error(`iterateOverDiff: missing change line data`);return{type:`change`,hunkIndex:e,hunk:t,collapsedAfter:n,collapsedBefore:r,deletionLine:re,additionLine:ie}}var LK={forcePlainText:!1};function RK(e,t,n,{forcePlainText:r,startingLine:i,totalLines:a,expandedHunks:o,collapsedContextThreshold:s=1}=LK){r?(i??=0,a??=1/0):(i=0,a=1/0);let c=i>0||a<1/0,l=typeof n.theme==`string`?t.getTheme(n.theme).type:void 0,u=gG({theme:n.theme,highlighter:t}),d=r&&!c&&(e.unifiedLineCount>1e3||e.splitLineCount>1e3)?`none`:n.lineDiffType,f={deletionLines:[],additionLines:[]},{maxLineDiffLength:p}=n,m=!r&&!e.isPartial,h=r?o:void 0,g=new Map;function _(e){let t=m?0:e,n=g.get(t)??BK();return g.set(t,n),n}function v(e,t,n,r){if(c){let e=n.at(-1);(e==null||e.targetIndex+e.count!==t)&&(e={targetIndex:t,originalOffset:r.length,count:0},n.push(e)),e.count++}r.push(e)}AK({diff:e,diffStyle:`both`,startingLine:i,totalLines:a,expandedHunks:!c||h,collapsedContextThreshold:s,callback:({hunkIndex:t,additionLine:n,deletionLine:r,type:i})=>{let a=_(t),o=n==null?r.splitLineIndex:n.splitLineIndex;i===`change`&&n!=null&&r!=null&&zK({additionLine:e.additionLines[n.lineIndex],deletionLine:e.deletionLines[r.lineIndex],deletionLineIndex:a.deletionContent.length,additionLineIndex:a.additionContent.length,deletionDecorations:a.deletionDecorations,additionDecorations:a.additionDecorations,lineDiffType:d,maxLineDiffLength:p}),r!=null&&(v(e.deletionLines[r.lineIndex],r.lineIndex,a.deletionSegments,a.deletionContent),a.deletionInfo.push({type:i===`change`?`change-deletion`:i,lineNumber:r.lineNumber,altLineNumber:i===`change`?void 0:n.lineNumber??void 0,lineIndex:`${r.unifiedLineIndex},${o}`})),n!=null&&(v(e.additionLines[n.lineIndex],n.lineIndex,a.additionSegments,a.additionContent),a.additionInfo.push({type:i===`change`?`change-addition`:i,lineNumber:n.lineNumber,altLineNumber:i===`change`?void 0:r.lineNumber??void 0,lineIndex:`${n.unifiedLineIndex},${o}`}))}});for(let i of g.values()){if(i.deletionContent.length===0&&i.additionContent.length===0)continue;let a={name:e.prevName??e.name,contents:i.deletionContent.value},o={name:e.name,contents:i.additionContent.value},{deletionLines:s,additionLines:c}=VK({deletionFile:a,deletionInfo:i.deletionInfo,deletionDecorations:i.deletionDecorations,additionFile:o,additionInfo:i.additionInfo,additionDecorations:i.additionDecorations,highlighter:t,options:n,languageOverride:r?`text`:e.lang});if(m){f.deletionLines=s,f.additionLines=c;continue}if(i.deletionSegments.length>0)for(let e of i.deletionSegments)for(let t=0;t<e.count;t++)f.deletionLines[e.targetIndex+t]=s[e.originalOffset+t];else f.deletionLines.push(...s);if(i.additionSegments.length>0)for(let e of i.additionSegments)for(let t=0;t<e.count;t++)f.additionLines[e.targetIndex+t]=c[e.originalOffset+t];else f.additionLines.push(...c)}return{code:f,themeStyles:u,baseThemeType:l}}function zK({deletionLine:e,additionLine:t,deletionLineIndex:n,additionLineIndex:r,deletionDecorations:i,additionDecorations:a,lineDiffType:o,maxLineDiffLength:s}){if(e==null||t==null||o===`none`||(e=RM(e),t=RM(t),e.length>s||t.length>s))return;let c=o===`char`?UM(e,t):oN(e,t),l=[],u=[],d=o===`word-alt`,f=c.at(-1);for(let e of c){let t=e===f;!e.added&&!e.removed?(gK({item:e,arr:l,enableJoin:d,isNeutral:!0,isLastItem:t}),gK({item:e,arr:u,enableJoin:d,isNeutral:!0,isLastItem:t})):e.removed?gK({item:e,arr:l,enableJoin:d,isLastItem:t}):gK({item:e,arr:u,enableJoin:d,isLastItem:t})}let p=0;for(let e of l)e[0]===1&&i.push(hK({line:n,spanStart:p,spanLength:e[1].length})),p+=e[1].length;p=0;for(let e of u)e[0]===1&&a.push(hK({line:r,spanStart:p,spanLength:e[1].length})),p+=e[1].length}function BK(){return{deletionContent:{push(e){this.value+=e,this.length++},value:``,length:0},additionContent:{push(e){this.value+=e,this.length++},value:``,length:0},deletionInfo:[],additionInfo:[],deletionDecorations:[],additionDecorations:[],deletionSegments:[],additionSegments:[]}}function VK({deletionFile:e,additionFile:t,deletionInfo:n,additionInfo:r,highlighter:i,deletionDecorations:a,additionDecorations:o,languageOverride:s,options:{theme:c=fM,...l}}){let u=s??BW(e.name),d=s??BW(t.name),{state:f,transformers:p}=eG(l.useTokenTransformer),m=typeof c==`string`?{...l,lang:`text`,theme:c,transformers:p,decorations:void 0,defaultColor:!1,cssVariablePrefix:rG(`token`),tokenizeTimeLimit:0}:{...l,lang:`text`,themes:c,transformers:p,decorations:void 0,defaultColor:!1,cssVariablePrefix:rG(`token`),tokenizeTimeLimit:0};return{deletionLines:e.contents===``?[]:(m.lang=u,f.lineInfo=n,m.decorations=a,vG(i.codeToHast(RM(e.contents),m))),additionLines:t.contents===``?[]:(m.lang=d,m.decorations=o,f.lineInfo=r,vG(i.codeToHast(RM(t.contents),m)))}}function HK(e){let t=e.lang??BW(e.name),n=e.lang??(e.prevName==null?`text`:BW(e.prevName));return t===`text`&&n===`text`}function UK(e){let t=[];for(let n of e){let e=sI.get(n);if(e==null)throw Error(`getResolvedLanguages: ${n} is not resolved. Please resolve languages before calling getResolvedLanguages`);t.push(e)}return t}function WK(e){for(let t of Array.isArray(e)?e:[e])if(!sI.has(t))return!1;return!0}async function GK(e){let t=[],n=[];for(let r of e){if(r===`text`||r===`ansi`)continue;let e=LU(r)??IU(r);`then`in e?n.push(e):t.push(e)}return n.length>0&&await Promise.all(n).then(e=>{for(let n of e){if(n==null)throw Error(`resolvedLanguages: unable to resolve language`);t.push(n)}}),t}function KK(e){return YU.getResolvedThemes(e)}async function qK(e){for(let t of e)_W(t);let t=await YU.resolveThemes(e);for(let n=0;n<e.length;n++)vW(e[n],t[n]);return t}var JK={light:`pierre-light`,dark:`pierre-dark`};function YK(e){return e===`dark`?JK.dark:JK.light}var XK=2166136261,ZK=16777619,QK=2654435769,$K=2246822507;function eq(e,t=XK,n=ZK){let r=t>>>0;for(let t=0;t<e.length;t+=1)r^=e.charCodeAt(t),r=Math.imul(r,n)>>>0;return r>>>0}function tq(e,t=`diff-panel`){let n=e.trim(),r=eq(n,XK,ZK).toString(36),i=eq(n,QK,$K).toString(36);return`${t}:${n.length}:${r}:${i}`}function nq(e){return Ca(`flex items-center justify-between gap-2 px-4 wco:pr-[calc(100vw-env(titlebar-area-width)-env(titlebar-area-x)+1em)]`,bn&&e!==`sheet`?`h-[52px] border-b border-border wco:h-[env(titlebar-area-height)]`:`h-12 wco:max-h-[env(titlebar-area-height)]`)}function rq(e){let t=(0,A.c)(10),n=bn&&e.mode!==`sheet`,r=e.mode===`inline`?`w-[42vw] min-w-[360px] max-w-[560px] shrink-0 border-l border-border`:`w-full`,i;t[0]===r?i=t[1]:(i=Ca(`flex h-full min-w-0 flex-col bg-background`,r),t[0]=r,t[1]=i);let a;t[2]!==e.header||t[3]!==e.mode||t[4]!==n?(a=n?(0,k.jsx)(`div`,{className:nq(e.mode),children:e.header}):(0,k.jsx)(`div`,{className:`border-b border-border`,children:(0,k.jsx)(`div`,{className:nq(e.mode),children:e.header})}),t[2]=e.header,t[3]=e.mode,t[4]=n,t[5]=a):a=t[5];let o;return t[6]!==e.children||t[7]!==i||t[8]!==a?(o=(0,k.jsxs)(`div`,{className:i,children:[a,e.children]}),t[6]=e.children,t[7]=i,t[8]=a,t[9]=o):o=t[9],o}function iq(){let e=(0,A.c)(4),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,k.jsx)(Aw,{className:`absolute left-0 top-1/2 size-6 -translate-y-1/2 rounded-md border border-border/50`}),n=(0,k.jsx)(Aw,{className:`absolute right-0 top-1/2 size-6 -translate-y-1/2 rounded-md border border-border/50`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,k.jsxs)(`div`,{className:`relative min-w-0 flex-1`,children:[t,n,(0,k.jsxs)(`div`,{className:`flex gap-1 overflow-hidden px-8 py-0.5`,children:[(0,k.jsx)(Aw,{className:`h-6 w-16 shrink-0 rounded-md`}),(0,k.jsx)(Aw,{className:`h-6 w-24 shrink-0 rounded-md`}),(0,k.jsx)(Aw,{className:`h-6 w-24 shrink-0 rounded-md max-sm:hidden`})]})]}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,k.jsxs)(k.Fragment,{children:[r,(0,k.jsxs)(`div`,{className:`flex shrink-0 gap-1`,children:[(0,k.jsx)(Aw,{className:`size-7 rounded-md`}),(0,k.jsx)(Aw,{className:`size-7 rounded-md`})]})]}),e[3]=i):i=e[3],i}function aq(e){let t=(0,A.c)(7),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,k.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border/50 px-3 py-2`,children:[(0,k.jsx)(Aw,{className:`h-4 w-32 rounded-full`}),(0,k.jsx)(Aw,{className:`ml-auto h-4 w-20 rounded-full`})]}),t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,k.jsxs)(`div`,{className:`space-y-2`,children:[(0,k.jsx)(Aw,{className:`h-3 w-full rounded-full`}),(0,k.jsx)(Aw,{className:`h-3 w-full rounded-full`}),(0,k.jsx)(Aw,{className:`h-3 w-10/12 rounded-full`}),(0,k.jsx)(Aw,{className:`h-3 w-11/12 rounded-full`}),(0,k.jsx)(Aw,{className:`h-3 w-9/12 rounded-full`})]}),t[1]=r):r=t[1];let i;t[2]===e.label?i=t[3]:(i=(0,k.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 px-3 py-4`,children:[r,(0,k.jsx)(`span`,{className:`sr-only`,children:e.label})]}),t[2]=e.label,t[3]=i);let a;return t[4]!==e.label||t[5]!==i?(a=(0,k.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col p-2`,children:(0,k.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden rounded-md border border-border/60 bg-card/25`,role:`status`,"aria-live":`polite`,"aria-label":e.label,children:[n,i]})}),t[4]=e.label,t[5]=i,t[6]=a):a=t[6],a}function oq(e){let t=(0,O.useRef)(e);return(0,O.useInsertionEffect)(()=>void(t.current=e)),(0,O.useCallback)((...e)=>t.current(...e),[])}var sq=(0,O.createContext)(void 0);function cq(){return(0,O.useContext)(sq)}var lq={position:`absolute`,top:0,bottom:0,textAlign:`center`,whiteSpace:`normal`,touchAction:`none`},uq={display:`contents`};function dq(){return null}var fq=t(n(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?r(e):typeof define==`function`&&define.amd?define([`exports`],r):r((n||=self).lru_map=n.lru_map||{})})(e,function(e){let t=Symbol(`newer`),n=Symbol(`older`);class r{constructor(e,t){typeof e!=`number`&&(t=e,e=0),this.size=0,this.limit=e,this.oldest=this.newest=void 0,this._keymap=new Map,t&&(this.assign(t),e<1&&(this.limit=this.size))}_markEntryAsUsed(e){e!==this.newest&&(e[t]&&(e===this.oldest&&(this.oldest=e[t]),e[t][n]=e[n]),e[n]&&(e[n][t]=e[t]),e[t]=void 0,e[n]=this.newest,this.newest&&(this.newest[t]=e),this.newest=e)}assign(e){let r,a=this.limit||Number.MAX_VALUE;this._keymap.clear();let o=e[Symbol.iterator]();for(let e=o.next();!e.done;e=o.next()){let o=new i(e.value[0],e.value[1]);if(this._keymap.set(o.key,o),r?(r[t]=o,o[n]=r):this.oldest=o,r=o,a--==0)throw Error(`overflow`)}this.newest=r,this.size=this._keymap.size}get(e){var t=this._keymap.get(e);return t?(this._markEntryAsUsed(t),t.value):void 0}set(e,r){var a=this._keymap.get(e);return a?(a.value=r,this._markEntryAsUsed(a),this):(this._keymap.set(e,a=new i(e,r)),this.newest?(this.newest[t]=a,a[n]=this.newest):this.oldest=a,this.newest=a,++this.size,this.size>this.limit&&this.shift(),this)}shift(){var e=this.oldest;if(e)return this.oldest[t]?(this.oldest=this.oldest[t],this.oldest[n]=void 0):(this.oldest=void 0,this.newest=void 0),e[t]=e[n]=void 0,this._keymap.delete(e.key),--this.size,[e.key,e.value]}find(e){let t=this._keymap.get(e);return t?t.value:void 0}has(e){return this._keymap.has(e)}delete(e){var r=this._keymap.get(e);return r?(this._keymap.delete(r.key),r[t]&&r[n]?(r[n][t]=r[t],r[t][n]=r[n]):r[t]?(r[t][n]=void 0,this.oldest=r[t]):r[n]?(r[n][t]=void 0,this.newest=r[n]):this.oldest=this.newest=void 0,this.size--,r.value):void 0}clear(){this.oldest=this.newest=void 0,this.size=0,this._keymap.clear()}keys(){return new o(this.oldest)}values(){return new s(this.oldest)}entries(){return this}[Symbol.iterator](){return new a(this.oldest)}forEach(e,n){typeof n!=`object`&&(n=this);let r=this.oldest;for(;r;)e.call(n,r.value,r.key,this),r=r[t]}toJSON(){for(var e=Array(this.size),n=0,r=this.oldest;r;)e[n++]={key:r.key,value:r.value},r=r[t];return e}toString(){for(var e=``,n=this.oldest;n;)e+=String(n.key)+`:`+n.value,n=n[t],n&&(e+=` < `);return e}}e.LRUMap=r;function i(e,r){this.key=e,this.value=r,this[t]=void 0,this[n]=void 0}function a(e){this.entry=e}a.prototype[Symbol.iterator]=function(){return this},a.prototype.next=function(){let e=this.entry;return e?(this.entry=e[t],{done:!1,value:[e.key,e.value]}):{done:!0,value:void 0}};function o(e){this.entry=e}o.prototype[Symbol.iterator]=function(){return this},o.prototype.next=function(){let e=this.entry;return e?(this.entry=e[t],{done:!1,value:e.key}):{done:!0,value:void 0}};function s(e){this.entry=e}s.prototype[Symbol.iterator]=function(){return this},s.prototype.next=function(){let e=this.entry;return e?(this.entry=e[t],{done:!1,value:e.value}):{done:!0,value:void 0}}})}))(),1),pq=Symbol(`IGNORE_RESPONSE`),mq=class extends Error{constructor(){super(`WorkerPoolManager: operation canceled because the pool terminated`)}},hq=class extends Error{constructor(){super(`WorkerPoolManager: operation canceled before the task completed`)}},gq=class{options;highlighter;preferredHighlighter;renderOptions;renderOptionsRequestVersion=0;renderOptionsVersion=0;initialized=!1;workers=[];queuedTasks=[];queuedTaskByInstance=new Map;taskByHighlightKey=new Map;activeTaskById=new Map;activeRequestByInstance=new Map;nextRequestId=0;themeSubscribers=new Set;workersFailed=!1;statSubscribers=new Set;fileCache;diffCache;_queuedBroadcast;lifecycleGeneration=0;constructor(e,{langs:t,theme:n=fM,useTokenTransformer:r=!1,lineDiffType:i=`word-alt`,maxLineDiffLength:a=1e3,tokenizeMaxLineLength:o=1e3,preferredHighlighter:s=`shiki-js`}){this.options=e,this.preferredHighlighter=s,this.renderOptions={theme:n,useTokenTransformer:r,lineDiffType:i,maxLineDiffLength:a,tokenizeMaxLineLength:o},this.fileCache=new fq.default.LRUMap(e.totalASTLRUCacheSize??100),this.diffCache=new fq.default.LRUMap(e.totalASTLRUCacheSize??100),this.queueInitialization(t)}isWorkingPool(){return!this.workersFailed}getFileResultCache(e){return e.cacheKey==null?void 0:this.fileCache.get(e.cacheKey)}getDiffResultCache(e){return e.cacheKey==null?void 0:this.diffCache.get(e.cacheKey)}inspectCaches(){let{fileCache:e,diffCache:t}=this;return{fileCache:e,diffCache:t}}evictFileFromCache(e){try{return this.fileCache.delete(e)!==void 0}finally{this.queueBroadcastStateChanges()}}evictDiffFromCache(e){try{return this.diffCache.delete(e)!==void 0}finally{this.queueBroadcastStateChanges()}}async setRenderOptions({theme:e=this.renderOptions.theme??fM,useTokenTransformer:t=this.renderOptions.useTokenTransformer??!1,lineDiffType:n=this.renderOptions.lineDiffType??`word-alt`,maxLineDiffLength:r=this.renderOptions.maxLineDiffLength??1e3,tokenizeMaxLineLength:i=this.renderOptions.tokenizeMaxLineLength??1e3}){let{lifecycleGeneration:a}=this,o=++this.renderOptionsRequestVersion,s=()=>this.isCurrentLifecycle(a)&&this.renderOptionsRequestVersion===o;try{let a={theme:e,useTokenTransformer:t,lineDiffType:n,maxLineDiffLength:r,tokenizeMaxLineLength:i};if(this.isInitialized()||await this.initialize(),!s()||mK(a,this.renderOptions))return;let o=TW(e),c=[];if(NM(a.theme,this.renderOptions.theme)||(c=DW(o)?KK(o):await qK(o)),!s())return;if(this.highlighter!=null)XU(c,this.highlighter);else{let e=await SW({themes:o,langs:[`text`],preferredHighlighter:this.preferredHighlighter});if(!s())return;this.highlighter=e}let l=this.setRenderOptionsOnWorkers(a,c);this.renderOptions=a,this.renderOptionsVersion++,this.diffCache.clear(),this.fileCache.clear(),this.invalidateRenderTasks();for(let e of this.themeSubscribers)e.onThemeChange();await l}catch(e){if(e instanceof mq||!s())return;throw e}}getPreferredHighlighter(){return this.preferredHighlighter}getFileRenderOptions(){let{tokenizeMaxLineLength:e,theme:t,useTokenTransformer:n}=this.renderOptions;return{theme:t,useTokenTransformer:n,tokenizeMaxLineLength:e}}getDiffRenderOptions(){return{...this.renderOptions}}async setRenderOptionsOnWorkers(e,t){if(this.workersFailed)return;this.isInitialized()||await this.initialize();let n=[];for(let r of this.workers){if(!r.initialized)throw console.log({managedWorker:r}),Error(`setRenderOptionsOnWorkers: Somehow we have an uninitialized worker`);n.push(new Promise((n,i)=>{let a=this.generateRequestId(),o={type:`set-render-options`,id:a,request:{type:`set-render-options`,id:a,renderOptions:e,resolvedThemes:t},resolve:n,reject:i,requestStart:Date.now()};this.activeTaskById.set(a,o),r.pendingSetupRequestId=a,r.worker.postMessage(o.request)}))}await Promise.all(n)}subscribeToThemeChanges(e){return this.themeSubscribers.add(e),this.queueBroadcastStateChanges(),()=>{this.unsubscribeToThemeChanges(e),this.queueBroadcastStateChanges()}}unsubscribeToThemeChanges(e){this.themeSubscribers.delete(e),this.queueBroadcastStateChanges()}subscribeToStatChanges(e){return this.statSubscribers.add(e),e(this.getStats()),()=>{this.statSubscribers.delete(e)}}queueBroadcastStateChanges(){this._queuedBroadcast??=requestAnimationFrame(this._broadcastStateChanges)}_broadcastStateChanges=()=>{this._queuedBroadcast!=null&&(cancelAnimationFrame(this._queuedBroadcast),this._queuedBroadcast=void 0);let e=this.getStats();for(let t of this.statSubscribers)t(e)};cleanUpTasks(e){this.detachInstanceFromQueuedTasks(e);let t=this.activeRequestByInstance.get(e);if(t!=null){let n=this.activeTaskById.get(t);yq(n)?(this.detachInstanceFromRenderTask(n,e),!n.primeCache&&n.instances.size===0&&this.removeActiveTask(n)):this.activeTaskById.delete(t)}this.activeRequestByInstance.delete(e),this.queueBroadcastStateChanges()}isInitialized(){return this.initialized===!0}async initialize(e=[]){if(this.initialized!==!0)if(this.initialized===!1){let{lifecycleGeneration:t}=this;this.initialized=new Promise((n,r)=>{(async()=>{try{let r=TW(this.renderOptions.theme),i=[];if(i=DW(r)?KK(r):await qK(r),!this.isCurrentLifecycle(t)){n();return}let a=[];if(a=WK(e)?UK(e):await GK(e),!this.isCurrentLifecycle(t)){n();return}let[o]=await Promise.all([SW({themes:r,langs:[`text`,...e],preferredHighlighter:this.preferredHighlighter}),this.initializeWorkers(i,a)]);if(!this.isCurrentLifecycle(t)){this.terminateWorkers(),n();return}this.highlighter=o,this.initialized=!0,this.diffCache.clear(),this.fileCache.clear(),this.drainQueue(),this.queueBroadcastStateChanges(),n()}catch(e){if(e instanceof mq||!this.isCurrentLifecycle(t)){n();return}this.initialized=!1,this.workersFailed=!0;for(let t of this.queuedTasks)this.rejectRenderTaskCallbacks(t,xq(e));this.queueBroadcastStateChanges(),r(e)}})()}),this.queueBroadcastStateChanges()}else return this.initialized}async initializeWorkers(e,t){this.workersFailed=!1;let n=[],r=VW(),i=r>0?HW():void 0;this.workers.length>0&&this.terminateWorkers();for(let a=0;a<(this.options.poolSize??8);a++){let a=this.options.workerFactory(),o={worker:a,requestId:void 0,pendingSetupRequestId:void 0,initialized:!1,langs:new Set([`text`,...t.map(({name:e})=>e)]),customExtensionsVersion:0};a.addEventListener(`message`,e=>{this.handleWorkerMessage(o,e.data)}),a.addEventListener(`error`,e=>console.error(`Worker error:`,e,o)),this.workers.push(o),n.push(new Promise((n,a)=>{let s=this.generateRequestId(),c={type:`initialize`,id:s,request:{type:`initialize`,id:s,renderOptions:this.renderOptions,preferredHighlighter:this.preferredHighlighter,resolvedThemes:e,resolvedLanguages:t,customExtensionsVersion:i==null?void 0:r,customExtensionMap:i},resolve(){o.initialized=!0,n()},reject:a,requestStart:Date.now()};this.activeTaskById.set(s,c),this.executeTask(o,c)}))}await Promise.all(n)}drainQueue=()=>{if(this._queuedDrain=void 0,this.initialized===!0&&this.queuedTasks.length!==0){for(let e=0;e<this.queuedTasks.length;){let t=this.queuedTasks[e];if(this.hasActiveRequest(t)){e++;continue}let n=vq(t),r=this.getAvailableWorker(n);if(r==null)break;this.queuedTasks.splice(e,1),this.assignWorkerToTask(t,r),this.resolveLanguagesAndExecuteTask(r,t,n)}this.queueBroadcastStateChanges()}};highlightFileAST(e,t){let n=this.getFileResultCache(t);PG(t)||n!=null&&OW(n.options,this.getFileRenderOptions())||this.hasMatchingFileInstanceTask(e,t)||this.submitTask(e,{type:`file`,file:t})}primeFileHighlightCache(e){if(!this.isWorkingPool())return Promise.reject(Error(`WorkerPoolManager.primeFileHighlightCache: worker pool is not working`));let t=this.getOrCreateFileHighlightCacheTask(e);return t==null?Promise.resolve():this.createRenderTaskCallbacks(t)}getOrCreateFileHighlightCacheTask(e){if(e.cacheKey==null){console.warn(`WorkerPoolManager.primeFileHighlightCache: priming highlight cache requires file.cacheKey; skipping "${e.name}".`);return}let t=this.getFileResultCache(e),n=this.getFileHighlightKey(e);if(n==null||PG(e)||t!=null&&OW(t.options,this.getFileRenderOptions()))return;let r=this.getTaskByHighlightKey(n);if(r!=null)return r.primeCache=!0,r.type===`file`?r:void 0;{let t=this.submitCacheTask({type:`file`,file:e},n);return t.type===`file`?t:void 0}}getPlainFileAST(e,t,n,r){if(this.highlighter==null){this.queueInitialization();return}return EG(e,this.highlighter,this.renderOptions,{forcePlainText:!0,startingLine:t,totalLines:n,lines:r})}highlightDiffAST(e,t){let n=this.getDiffResultCache(t);HK(t)||n!=null&&mK(n.options,this.getDiffRenderOptions())||this.hasMatchingDiffInstanceTask(e,t)||this.submitTask(e,{type:`diff`,diff:t})}primeDiffHighlightCache(e){if(!this.isWorkingPool())return Promise.reject(Error(`WorkerPoolManager.primeDiffHighlightCache: worker pool is not working`));let t=this.getOrCreateDiffHighlightCacheTask(e);return t==null?Promise.resolve():this.createRenderTaskCallbacks(t)}getOrCreateDiffHighlightCacheTask(e){if(e.cacheKey==null){console.warn(`WorkerPoolManager.primeDiffHighlightCache: priming highlight cache requires diff.cacheKey; skipping "${e.prevName??e.name}" -> "${e.name}".`);return}let t=this.getDiffResultCache(e),n=this.getDiffHighlightKey(e);if(n==null||HK(e)||t!=null&&mK(t.options,this.getDiffRenderOptions()))return;let r=this.getTaskByHighlightKey(n);if(r!=null)return r.primeCache=!0,r.type===`diff`?r:void 0;{let t=this.submitCacheTask({type:`diff`,diff:e},n);return t.type===`diff`?t:void 0}}getPlainDiffAST(e,t,n,r,i){return this.highlighter==null?void 0:RK(e,this.highlighter,this.renderOptions,{forcePlainText:!0,startingLine:t,totalLines:n,expandedHunks:r,collapsedContextThreshold:i})}terminate(){this.lifecycleGeneration++,this.cancelActiveWorkerTasks(),this.terminateWorkers();let e=new mq;for(let t of this.queuedTasks)this.rejectRenderTaskCallbacks(t,e);this.fileCache.clear(),this.diffCache.clear(),this.activeRequestByInstance.clear(),this.queuedTasks.length=0,this.queuedTaskByInstance.clear(),this.taskByHighlightKey.clear(),this.activeTaskById.clear(),this.highlighter=void 0,this.initialized=!1,this.workersFailed=!1,this.queueBroadcastStateChanges()}isCurrentLifecycle(e){return this.lifecycleGeneration===e}queueInitialization(e){this.initialize(e).catch(e=>{console.error(e)})}cancelActiveWorkerTasks(){let e=new mq;for(let t of this.activeTaskById.values())`reject`in t?t.reject(e):yq(t)&&this.rejectRenderTaskCallbacks(t,e)}terminateWorkers(){for(let e of this.workers)e.worker.terminate();this.workers.length=0}getStats(){return{managerState:this.initialized===!1?`waiting`:this.initialized===!0?`initialized`:`initializing`,totalWorkers:this.workers.length,workersFailed:this.workersFailed,busyWorkers:this.workers.filter(e=>e.requestId!=null||e.pendingSetupRequestId!=null).length,queuedTasks:this.queuedTasks.length,activeTasks:this.activeTaskById.size,themeSubscribers:this.themeSubscribers.size,fileCacheSize:this.fileCache.size,diffCacheSize:this.diffCache.size}}submitTask(e,t){this.initialized===!1&&this.queueInitialization();let n=this.getHighlightKeyForRequest(t),r=n==null?void 0:this.getTaskByHighlightKey(n);if(r!=null){this.detachInstanceFromQueuedTasks(e,r),this.addInstanceToTask(r,e),this.queueBroadcastStateChanges();return}this.detachInstanceFromQueuedTasks(e);let i=this.generateRequestId(),a=Date.now(),{renderOptionsVersion:o}=this,s=(()=>{switch(t.type){case`file`:return{type:`file`,id:i,request:{...t,id:i},instances:new Set([e]),primeCache:!1,highlightKey:n,callbacks:new Set,renderOptionsVersion:o,requestStart:a};case`diff`:return{type:`diff`,id:i,request:{...t,id:i},instances:new Set([e]),primeCache:!1,highlightKey:n,callbacks:new Set,renderOptionsVersion:o,requestStart:a}}})();this.enqueueRenderTask(s,e)}submitCacheTask(e,t){this.initialized===!1&&this.queueInitialization();let n=this.generateRequestId(),r=Date.now(),{renderOptionsVersion:i}=this,a=(()=>{switch(e.type){case`file`:return{type:`file`,id:n,request:{...e,id:n},instances:new Set,primeCache:!0,highlightKey:t,callbacks:new Set,renderOptionsVersion:i,requestStart:r};case`diff`:return{type:`diff`,id:n,request:{...e,id:n},instances:new Set,primeCache:!0,highlightKey:t,callbacks:new Set,renderOptionsVersion:i,requestStart:r}}})();return this.enqueueRenderTask(a),a}enqueueRenderTask(e,t){this.queuedTasks.push(e),t!=null&&this.queuedTaskByInstance.set(t,e),e.highlightKey!=null&&this.taskByHighlightKey.set(e.highlightKey,e),this.queueDrain()}async resolveLanguagesAndExecuteTask(e,t,n){try{let r=n.filter(t=>!e.langs.has(t));if(r.length>0&&(WK(r)?t.request.resolvedLanguages=UK(r):t.request.resolvedLanguages=await GK(r)),!this.activeTaskById.has(t.id)){e.requestId===t.id&&(this.cleanWorkerAndTask(e,t),this.queueBroadcastStateChanges(),this.queuedTasks.length>0&&this.queueDrain());return}this.executeTask(e,t)}catch(n){this.rejectRenderTaskCallbacks(t,xq(n)),this.cleanWorkerAndTask(e,t),this.queueBroadcastStateChanges(),this.queuedTasks.length>0&&this.queueDrain()}}handleWorkerMessage(e,t){let n=this.activeTaskById.get(t.id);try{if(n==null)throw pq;if(t.type===`error`){let e=Error(t.error);if(t.stack&&(e.stack=t.stack),`reject`in n)n.reject(e);else if(yq(n))this.notifyHighlightError(n,e),this.rejectRenderTaskCallbacks(n,e);else throw Error(`handleWorkerMessage: unknown task type`);throw e}switch(t.requestType){case`initialize`:if(n.type!==`initialize`)throw Error(`handleWorkerMessage: task/response dont match`);this.syncCustomExtensionVersion(e,n.request),n.resolve();break;case`set-render-options`:if(n.type!==`set-render-options`)throw Error(`handleWorkerMessage: task/response dont match`);n.resolve();break;case`file`:{if(n.type!==`file`)throw Error(`handleWorkerMessage: task/response dont match`);let{result:r,options:i}=t;if(!this.isCurrentRenderTask(n)||!OW(i,this.getFileRenderOptions()))throw pq;let{request:a}=n;this.syncCustomExtensionVersion(e,a),n.cacheKeyAtDispatch!=null&&this.fileCache.set(n.cacheKeyAtDispatch,{result:r,options:i}),this.resolveRenderTaskCallbacks(n),this.notifyFileInstances(n,r,i);break}case`diff`:{if(n.type!==`diff`)throw Error(`handleWorkerMessage: task/response dont match`);let{result:r,options:i}=t;if(!this.isCurrentRenderTask(n)||!mK(i,this.getDiffRenderOptions()))throw pq;let{request:a}=n;this.syncCustomExtensionVersion(e,a),n.cacheKeyAtDispatch!=null&&this.diffCache.set(n.cacheKeyAtDispatch,{result:r,options:i}),this.resolveRenderTaskCallbacks(n),this.notifyDiffInstances(n,r,i);break}}}catch(e){e!==pq&&console.error(e,n,t)}this.cleanWorkerAndTask(e,n,t.id),this.queueBroadcastStateChanges(),this.queuedTasks.length>0&&this.queueDrain()}_queuedDrain;queueDrain(){this._queuedDrain??(this._queuedDrain=Promise.resolve().then(this.drainQueue),this.queueBroadcastStateChanges())}assignWorkerToTask(e,t){t.requestId=e.id,yq(e)&&(this.clearQueuedInstanceRequests(e),this.trackInstanceRequests(e)),this.activeTaskById.set(e.id,e)}cleanWorkerAndTask(e,t,n=t?.id){e.requestId===n&&(e.requestId=void 0),e.pendingSetupRequestId===n&&(e.pendingSetupRequestId=void 0),t!=null&&(yq(t)&&(this.rejectRenderTaskCallbacks(t,new hq),this.clearInstanceRequests(t),this.clearHighlightKey(t)),this.activeTaskById.delete(t.id))}executeTask(e,t){_q(t.request)&&this.maybeAttachCustomExtensions(e,t.request),this.activeTaskById.has(t.id)||this.assignWorkerToTask(t,e);for(let n of vq(t))e.langs.add(n);try{t.type===`file`?t.cacheKeyAtDispatch=t.request.file.cacheKey:t.type===`diff`&&(t.cacheKeyAtDispatch=t.request.diff.cacheKey),e.worker.postMessage(t.request)}catch(n){console.error(`Failed to post message to worker:`,n),yq(t)?(this.notifyHighlightError(t,n),this.rejectRenderTaskCallbacks(t,xq(n))):`reject`in t&&t.reject(n),this.cleanWorkerAndTask(e,t),this.queuedTasks.length>0&&this.queueDrain()}this.queueBroadcastStateChanges()}maybeAttachCustomExtensions(e,t){if(t.customExtensionsVersion!=null)return;let n=VW();e.customExtensionsVersion>=n||(t.customExtensionsVersion=n,t.customExtensionMap=HW())}syncCustomExtensionVersion(e,t){t.customExtensionsVersion!=null&&(e.customExtensionsVersion=t.customExtensionsVersion)}getAvailableWorker(e){let t;for(let n of this.workers){if(n.requestId!=null||n.pendingSetupRequestId!=null||!n.initialized)continue;if(t=n,e.length===0)break;let r=!0;for(let t of e)if(!n.langs.has(t)){r=!1;break}if(r)break}return t}getFileHighlightKey(e){if(e.cacheKey!=null)return`file:${e.cacheKey}:${this.renderOptionsVersion}`}getDiffHighlightKey(e){if(e.cacheKey!=null)return`diff:${e.cacheKey}:${this.renderOptionsVersion}`}getHighlightKeyForRequest(e){switch(e.type){case`file`:return this.getFileHighlightKey(e.file);case`diff`:return this.getDiffHighlightKey(e.diff)}}hasActiveRequest(e){for(let t of bq(e))if(this.activeRequestByInstance.has(t))return!0;return!1}addInstanceToTask(e,t){e.type,e.instances.add(t),this.activeTaskById.has(e.id)?this.activeRequestByInstance.set(t,e.id):this.queuedTaskByInstance.set(t,e)}detachInstanceFromQueuedTasks(e,t){let n=this.queuedTaskByInstance.get(e);n!=null&&n!==t&&(this.queuedTaskByInstance.delete(e),this.detachInstanceFromRenderTask(n,e),!n.primeCache&&n.instances.size===0&&this.removeQueuedTask(n))}detachInstanceFromRenderTask(e,t){e.type,e.instances.delete(t)}removeQueuedTask(e){let t=this.queuedTasks.indexOf(e);t!==-1&&this.queuedTasks.splice(t,1),this.rejectRenderTaskCallbacks(e,new hq),this.clearQueuedInstanceRequests(e),this.clearHighlightKey(e)}removeActiveTask(e){this.rejectRenderTaskCallbacks(e,new hq),this.clearInstanceRequests(e),this.clearHighlightKey(e),this.activeTaskById.delete(e.id)}createRenderTaskCallbacks(e){return new Promise((t,n)=>{e.callbacks.add({resolve:t,reject:n})})}resolveRenderTaskCallbacks(e){for(let t of e.callbacks)t.resolve();e.callbacks.clear()}rejectRenderTaskCallbacks(e,t){for(let n of e.callbacks)n.reject(t);e.callbacks.clear()}invalidateRenderTasks(){for(let e=this.queuedTasks.length-1;e>=0;e--){let t=this.queuedTasks[e];t.renderOptionsVersion!==this.renderOptionsVersion&&this.removeQueuedTask(t)}for(let e of Array.from(this.activeTaskById.values()))yq(e)&&e.renderOptionsVersion!==this.renderOptionsVersion&&this.removeActiveTask(e)}clearQueuedInstanceRequests(e){for(let t of bq(e))this.queuedTaskByInstance.get(t)===e&&this.queuedTaskByInstance.delete(t)}clearHighlightKey(e){e.highlightKey!=null&&this.taskByHighlightKey.get(e.highlightKey)===e&&this.taskByHighlightKey.delete(e.highlightKey)}trackInstanceRequests(e){for(let t of bq(e))this.activeRequestByInstance.set(t,e.id)}clearInstanceRequests(e){for(let t of bq(e))this.activeRequestByInstance.get(t)===e.id&&this.activeRequestByInstance.delete(t)}notifyFileInstances(e,t,n){for(let r of e.instances)this.activeRequestByInstance.get(r)===e.id&&r.onHighlightSuccess(e.request.file,t,n)}notifyDiffInstances(e,t,n){for(let r of e.instances)this.activeRequestByInstance.get(r)===e.id&&r.onHighlightSuccess(e.request.diff,t,n)}notifyHighlightError(e,t){for(let n of bq(e))this.activeRequestByInstance.get(n)===e.id&&n.onHighlightError(t)}hasMatchingFileInstanceTask(e,t){for(let n of this.iterateRenderTasks())if(n.type===`file`&&this.isCurrentRenderTask(n)&&n.instances.has(e)&&yN(t,n.request.file))return!0;return!1}hasMatchingDiffInstanceTask(e,t){for(let n of this.iterateRenderTasks())if(n.type===`diff`&&this.isCurrentRenderTask(n)&&n.instances.has(e)&&pK(n.request.diff,t))return!0;return!1}getTaskByHighlightKey(e){let t=this.taskByHighlightKey.get(e);return t!=null&&this.isCurrentRenderTask(t)?t:void 0}isCurrentRenderTask(e){return e.renderOptionsVersion===this.renderOptionsVersion}*iterateRenderTasks(){for(let e of this.queuedTasks)yield e;for(let e of this.activeTaskById.values())yq(e)&&(yield e)}generateRequestId(){return`req_${++this.nextRequestId}`}};function _q(e){return e.type===`initialize`||e.type===`file`||e.type===`diff`}function vq(e){let t=new Set;if(e.type===`initialize`||e.type===`set-render-options`)return[];switch(e.type){case`file`:t.add(e.request.file.lang??BW(e.request.file.name));break;case`diff`:t.add(e.request.diff.lang??BW(e.request.diff.name)),t.add(e.request.diff.lang??BW(e.request.diff.prevName??`-`))}return t.delete(`text`),Array.from(t)}function yq(e){return e?.type===`file`||e?.type===`diff`}function bq(e){return e.instances}function xq(e){return e instanceof Error?e:Error(String(e))}var Sq;function Cq({poolOptions:e,highlighterOptions:t}){return Sq??=new gq(e,t),Sq}function wq(){Sq!=null&&(Sq.terminate(),Sq=void 0)}var Tq=(0,O.createContext)(void 0),Eq=0;function Dq({children:e,poolOptions:t,highlighterOptions:n}){let[r]=(0,O.useState)(()=>{if(!(typeof window>`u`))return Cq({poolOptions:t,highlighterOptions:n})});return(0,O.useInsertionEffect)(()=>{if(r!=null)return Eq++,()=>{Eq--}},[r]),(0,O.useEffect)(()=>()=>{Eq===0&&wq()},[]),(0,k.jsx)(Tq.Provider,{value:r,children:e})}function Oq(){return(0,O.useContext)(Tq)}export{AG as $,Ch as $a,bx as $i,uk as $n,j as $o,nT as $r,no as $s,_M as $t,lK as A,l_ as Aa,xC as Ai,Mj as An,Wf as Ao,oD as Ar,Lo as As,aP as At,XG as B,Ug as Ba,pC as Bi,hA as Bn,jd as Bo,QT as Br,mo as Bs,yN as Bt,xK as C,m_ as Ca,vw as Ci,Kj as Cn,rp as Co,MD as Cr,Po as Cs,RP as Ct,mK as D,u_ as Da,uw as Di,Gj as Dn,$f as Do,BD as Dr,jo as Ds,FP as Dt,SK as E,d_ as Ea,Tw as Ei,Yj as En,ip as Eo,GD as Er,Mo as Es,LP as Et,nK as F,Jg as Fa,lC as Fi,MA as Fn,Pf as Fo,JT as Fr,bo as Fs,wN as Ft,BG as G,kg as Ga,XS as Gi,Xk as Gn,Ru as Go,HT as Gr,to as Gs,LM as Gt,JG as H,Lg as Ha,nC as Hi,Qk as Hn,wd as Ho,RT as Hr,co as Hs,BM as Ht,tK as I,Wg as Ia,dC as Ii,DA as In,pf as Io,eE as Ir,yo as Is,CN as It,FG as J,ig as Ja,SS as Ji,hk as Jn,Rl as Jo,Zw as Jr,Za as Js,NM as Jt,zG as K,hg as Ka,NS as Ki,Vk as Kn,Uu as Ko,I as Kr,ao as Ks,IM as Kt,eK as L,Zg as La,mC as Li,jA as Ln,ff as Lo,XT as Lr,vo as Ls,B as Lt,sK as M,s_ as Ma,hC as Mi,bj as Mn,Vf as Mo,nD as Mr,Ro as Ms,MN as Mt,iK as N,o_ as Na,_C as Ni,hj as Nn,Rf as No,iD as Nr,Yo as Ns,kN as Nt,pK as O,i_ as Oa,jC as Oi,Xj as On,Yf as Oo,yD as Or,To as Os,sP as Ot,rK as P,Yg as Pa,oC as Pi,nj as Pn,Ff as Po,aD as Pr,qo as Ps,TN as Pt,OG as Q,Dh as Qa,iS as Qi,pk as Qn,dl as Qo,tT as Qr,Va as Qs,oM as Qt,$G as R,Rg as Ra,uC as Ri,EA as Rn,af as Ro,ZT as Rr,_o as Rs,xN as Rt,bK as S,g_ as Sa,dw as Si,qj as Sn,cp as So,ID as Sr,Eo as Ss,VP as St,yK as T,f_ as Ta,pw as Ti,Qj as Tn,Zf as To,WD as Tr,Wo as Ts,IP as Tt,WG as U,Tg as Ua,QS as Ui,$k as Un,td as Uo,IT as Ur,so as Us,zM as Ut,YG as V,Cg as Va,cC as Vi,gA as Vn,Sd as Vo,NT as Vr,lo as Vs,_N as Vt,VG as W,xg as Wa,ZS as Wi,Zk as Wn,ld as Wo,LT as Wr,oo as Ws,RM as Wt,NG as X,xh as Xa,tS as Xi,gk as Xn,Ol as Xo,qw as Xr,Ba as Xs,AM as Xt,PG as Y,_h as Ya,yS as Yi,mk as Yn,kl as Yo,Qw as Yr,io as Ys,MM as Yt,MG as Z,Eh as Za,aS as Zi,yk as Zn,wl as Zo,Jw as Zr,Ua as Zs,kM as Zt,AK as _,q_ as _a,hw as _i,lM as _n,sm as _o,RO as _r,fs as _s,dI as _t,uq as a,Oy as aa,hT as ai,wM as an,Rm as ao,zO as ar,Rs as as,UW as at,OK as b,w_ as ba,fw as bi,sM as bn,sp as bo,dO as br,ns as bs,PF as bt,oq as c,xy as ca,_T as ci,fM as cn,Pm as co,ok as cr,Ps as cs,MW as ct,rq as d,vy as da,Dw as di,eM as dn,km as do,qO as dr,Os as ds,OW as dt,Mb as ea,za as ec,pT as ei,gM as en,Sh as eo,dk as er,ol as es,kG as et,tq as f,gy as fa,Ew as fi,$j as fn,Jm as fo,IO as fr,Es as fs,DW as ft,RK as g,ev as ga,xw as gi,nM as gn,cm as go,ak as gr,ds as gs,SW as gt,HK as h,J_ as ha,yw as hi,aM as hn,om as ho,YO as hr,ps as hs,CW as ht,lq as i,Tb as ia,mT as ii,SM as in,$m as io,GO as ir,Fs as is,WW as it,dK as j,c_ as ja,gC as ji,jj as jn,Bf as jo,sD as jr,ko as js,tP as jt,cK as k,r_ as ka,CC as ki,Nj as kn,Hf as ko,bD as kr,Fo as ks,iP as kt,iq as l,Ov as la,gT as li,yM as ln,Nm as lo,QO as lr,Ns as ls,AW as lt,YK as m,tv as ma,kw as mi,iM as mn,am as mo,JO as mr,_s as ms,TW as mt,Dq as n,Pb as na,Ka as nc,vT as ni,dM as nn,ph as no,WO as nr,Bs as ns,EG as nt,dq as o,Ay as oa,dT as oi,TM as on,Vm as oo,VO as or,Ls as os,BW as ot,eq as p,_y as pa,Ow as pi,EM as pn,qm as po,LO as pr,Ts as ps,EW as pt,IG as q,ng as qa,MS as qi,Kk as qn,wu as qo,WT as qr,ro as qs,PM as qt,Oq as r,Eb as ra,fT as ri,xM as rn,eh as ro,sk as rr,zs as rs,wG as rt,cq as s,mv as sa,uT as si,CM as sn,Am as so,UO as sr,Ms as ss,FW as st,Tq as t,Nb as ta,Ga as tc,lT as ti,tM as tn,hh as to,FO as tr,Vs as ts,jG as tt,aq as u,Dv as ua,Aw as ui,bM as un,Km as uo,KO as ur,js as us,kW as ut,vK as v,C_ as va,Cw as vi,uM as vn,rm as vo,MO as vr,ss as vs,$F as vt,kK as w,__ as wa,bw as wi,Zj as wn,Xf as wo,LD as wr,No as ws,zP as wt,CK as x,x_ as xa,mw as xi,rM as xn,op as xo,cO as xr,ts as xs,AF as xt,_K as y,S_ as ya,ww as yi,cM as yn,lm as yo,bO as yr,os as ys,NF as yt,QG as z,Hg as za,sC as zi,AA as zn,xd as zo,rE as zr,go as zs,bN as zt};
|
|
1533
|
+
//# sourceMappingURL=WorkerPoolContext-wx5NJQK1.js.map
|