ryco-cli 0.1.12 → 0.1.13
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 +1 -1
- package/dist/bin.mjs +1 -1
- package/dist/client/assets/{AccountSettings-C3v2klAG.js → AccountSettings-Be5_48k0.js} +1 -1
- package/dist/client/assets/{AiFocusSettings-BquKjnWf.js → AiFocusSettings-DIpQXLW2.js} +1 -1
- package/dist/client/assets/{BranchToolbar.logic-CmvD76Cw.js → BranchToolbar.logic-D7slG_zJ.js} +1 -1
- package/dist/client/assets/{ChatRightPanel-DVxRdZWT.js → ChatRightPanel-BIS1DPGa.js} +3 -3
- package/dist/client/assets/{ChatThreadRouteView-DlgAAOCp.js → ChatThreadRouteView-CocRstME.js} +1 -1
- package/dist/client/assets/{CommandPaletteDialog-BnJURcy7.js → CommandPaletteDialog-C5xAo65V.js} +1 -1
- package/dist/client/assets/{ConnectionsSettings-Ccn8q4fG.js → ConnectionsSettings-CXabxSaH.js} +1 -1
- package/dist/client/assets/{DiagnosticsSettings-QXpjXOrH.js → DiagnosticsSettings-CZ3vY43G.js} +1 -1
- package/dist/client/assets/{DraftChatThreadRouteView-DFMY6O91.js → DraftChatThreadRouteView-D8Bt3Qnq.js} +1 -1
- package/dist/client/assets/{HostedConnectionControls-BC4kVWTa.js → HostedConnectionControls-DxAXv0Hd.js} +1 -1
- package/dist/client/assets/{HostedHubRoot-pBGVub10.js → HostedHubRoot-Cc8GYcK6.js} +1 -1
- package/dist/client/assets/{HostedNativeAuthorizationRoute-Df0oSrLR.js → HostedNativeAuthorizationRoute-CTQe7Vjt.js} +1 -1
- package/dist/client/assets/{HostedRelayTrustNotice-ffS_O2AX.js → HostedRelayTrustNotice-BldMySVi.js} +1 -1
- package/dist/client/assets/{IntegrationsSettingsPanel-BHyy-VM0.js → IntegrationsSettingsPanel-D6f3KoqM.js} +1 -1
- package/dist/client/assets/{KeybindingsSettings-BfkONqmZ.js → KeybindingsSettings-D2bNQPI-.js} +1 -1
- package/dist/client/assets/{McpServersSettings-UthT1T80.js → McpServersSettings-B7YqVvV4.js} +1 -1
- package/dist/client/assets/{NewWorktreeDialog-DTZnArOC.js → NewWorktreeDialog-CKr2ioue.js} +1 -1
- package/dist/client/assets/{NoActiveThreadState-jcEAWu7N.js → NoActiveThreadState-BD-eNmfn.js} +1 -1
- package/dist/client/assets/{NodeSecuritySettings-DPqjRphc.js → NodeSecuritySettings-FWM_SeDi.js} +1 -1
- package/dist/client/assets/{OpinionatedPluginsSettings-BSy3F4v6.js → OpinionatedPluginsSettings-BtZQF4Ze.js} +1 -1
- package/dist/client/assets/{PhoneGetAppInterstitial-B2mrJtgM.js → PhoneGetAppInterstitial-CooQgpSw.js} +1 -1
- package/dist/client/assets/{PhoneHome-C-ttaKuE.js → PhoneHome-BtPE7bQn.js} +1 -1
- package/dist/client/assets/{PhoneSettingsSurface-CJddundi.js → PhoneSettingsSurface-tcFCccEL.js} +1 -1
- package/dist/client/assets/{ProjectFavicon-BhQnkxbx.js → ProjectFavicon-qZGdjYCM.js} +1 -1
- package/dist/client/assets/{ProviderModelPicker-COg6CGM4.js → ProviderModelPicker-D0w23uWo.js} +1 -1
- package/dist/client/assets/{ProvidersSettingsPanel-C3aPyCrN.js → ProvidersSettingsPanel-B3aBKY--.js} +1 -1
- package/dist/client/assets/{RootAppShell-3T2sBtpP.js → RootAppShell-C-0ChFVJ.js} +2 -2
- package/dist/client/assets/{SettingsDialog-krsStFrf.js → SettingsDialog-Bbuoh793.js} +1 -1
- package/dist/client/assets/{SettingsPanels-D8Xy3pPC.js → SettingsPanels-Dr4f2y9l.js} +1 -1
- package/dist/client/assets/{SourceControlSettings-KIx9EfEZ.js → SourceControlSettings-CkiYR4lR.js} +1 -1
- package/dist/client/assets/{StatisticsPage-C38pI2_b.js → StatisticsPage-Bjouapmf.js} +1 -1
- package/dist/client/assets/{StatisticsPanel-6sINT28-.js → StatisticsPanel-D_khPph6.js} +1 -1
- package/dist/client/assets/{ThreadStatusIndicators-CL0KGLlj.js → ThreadStatusIndicators-ZImeLExQ.js} +0 -0
- package/dist/client/assets/{ThreadTerminalDrawer-C4NJu8Qs.js → ThreadTerminalDrawer-DDHEuRGB.js} +1 -1
- package/dist/client/assets/{ThreadWorkspacePanel-D9qlHXCA.js → ThreadWorkspacePanel-QF3KwbGm.js} +1 -1
- package/dist/client/assets/{WorkItemsTab-BDAeQe4D.js → WorkItemsTab-AOVwVvb7.js} +1 -1
- package/dist/client/assets/{branding-DeKsIp6g.js → branding-BDfN6Spd.js} +1 -1
- package/dist/client/assets/{capabilities-BkVqeGLQ.js → capabilities-3zgirmmI.js} +1 -1
- package/dist/client/assets/{desktopUpdateAtoms-B9iJXSdW.js → desktopUpdateAtoms-CyfPW2jg.js} +1 -1
- package/dist/client/assets/{desktopWorkspace-B-cSBe8H.js → desktopWorkspace-DHUZEpfy.js} +1 -1
- package/dist/client/assets/{device-DfIh5pQV.js → device-B_qvyvtW.js} +1 -1
- package/dist/client/assets/{editorPreferences-0DWMgcci.js → editorPreferences-DHIJntKF.js} +1 -1
- package/dist/client/assets/{index-Bntnmu6O.js → index-CQmEMMQH.js} +1 -1
- package/dist/client/assets/{main-BjVnVob0.js → main-BKS5Nf2_.js} +2 -2
- package/dist/client/assets/primary-BzLEg2w1.js +2 -0
- package/dist/client/assets/{projectPaths-SSsIvt0g.js → projectPaths-BAd6NFcE.js} +1 -1
- package/dist/client/assets/{providerIconUtils-CzSa_16f.js → providerIconUtils-X0Z3EK-Q.js} +1 -1
- package/dist/client/assets/{runtime-DfGHeCnR.js → runtime-CXut_g4p.js} +1 -1
- package/dist/client/assets/{session-logic-wxhvMgEN.js → session-logic-GZix7S2I.js} +1 -1
- package/dist/client/assets/{sidebarProjectFolders-CGVDJ0ZT.js → sidebarProjectFolders-cnmz3B_-.js} +1 -1
- package/dist/client/assets/storeSelectors-DYekgeHu.js +1 -0
- package/dist/client/assets/{threadPriorityRefreshRuntime-tRDgvBzr.js → threadPriorityRefreshRuntime-Ct5pnIbX.js} +1 -1
- package/dist/client/assets/types-DYekgeHu.js +1 -0
- package/dist/client/assets/{useAtlassian-DC0XOw4u.js → useAtlassian-9-hy2f8z.js} +0 -0
- package/dist/client/assets/{useHandleNewThread-Bvz-DKgn.js → useHandleNewThread-DX2FtXcP.js} +1 -1
- package/dist/client/assets/{usePhoneThreadActions-CAgIq9aZ.js → usePhoneThreadActions-BEa3VzGG.js} +1 -1
- package/dist/client/assets/{useStatistics-CiLROMJP.js → useStatistics-CtunoTE-.js} +1 -1
- package/dist/client/assets/{useThreadActions-Vew3ScxG.js → useThreadActions-fN-Al13y.js} +1 -1
- package/dist/client/index.html +1 -1
- package/package.json +1 -1
- package/dist/client/assets/primary-OskAInOO.js +0 -2
- package/dist/client/assets/storeSelectors-Bpr2pdhU.js +0 -1
- package/dist/client/assets/types-Bpr2pdhU.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,n as t,r as n,t as r}from"./react-SIfiwpqq.js";import{t as i}from"./compiler-runtime-qmuS0Svy.js";import{_ as a,g as o,h as s,l as c,n as l,p as u,t as d,u as f,y as p}from"./env-B4arEvJg.js";import{$c as m,$o as h,Aa as g,Ai as _,Al as v,Ar as y,As as b,Ba as x,Bo as S,Br as C,C as w,Cr as T,Cs as E,Dc as D,Dl as O,Ea as k,Ei as A,El as j,Es as M,Fa as N,Fl as P,Ga as F,Gc as I,Gi as L,Gr as R,Gs as ee,H as te,Ha as ne,Hc as re,Ho as ie,Hs as ae,Ii as oe,Il as se,Ir as ce,Ja as le,Jc as ue,Ki as de,L as fe,La as pe,Ll as me,Ml as he,Mo as ge,Ms as _e,Na as ve,Nr as ye,O as be,Oa as xe,Oc as Se,Or as Ce,Os as we,Pa as Te,Pc as Ee,Pl as De,Qc as Oe,Qo as ke,Qr as Ae,Ra as je,Rc as Me,Ri as Ne,Si as Pe,So as Fe,Sr as Ie,T as Le,Ta as Re,Ti as ze,Tl as Be,Ts as Ve,U as He,Ua as Ue,Ui as We,V as Ge,Vc as Ke,Vo as qe,Vr as Je,Wa as Ye,Wc as Xe,Wi as Ze,Xc as Qe,Xo as $e,Xr as et,Xs as tt,Ya as nt,Yc as rt,Yo as it,Za as at,Zc as ot,Zo as st,Zs as ct,_a as lt,_c as ut,_i as dt,_l as ft,_o as pt,_r as mt,ac as ht,ao as gt,as as _t,ba as vt,bc as yt,bl as bt,br as xt,bs as St,cl as Ct,co as wt,cs as Tt,da as Et,di as Dt,dl as Ot,do as kt,ec as At,ei as jt,el as Mt,eo as Nt,es as Pt,fa as Ft,fi as It,fl as Lt,gc as Rt,gl as zt,go as Bt,gr as Vt,gs as Ht,ha as Ut,hc as Wt,hl as Gt,ho as Kt,ia as qt,ic as Jt,is as Yt,it as Xt,ja as Zt,jc as Qt,jl as $t,ka as en,kl as tn,li as nn,ll as rn,lo as an,ma as on,mi as sn,ml as cn,ns as ln,oc as un,ol as dn,pa as fn,pc as pn,pi as mn,qa as hn,qi as gn,qo as _n,rc as vn,ro as yn,rs as bn,sc as xn,sl as Sn,ss as Cn,st as wn,t as Tn,tc as En,ua as Dn,ui as On,uo as kn,us as An,va as jn,vi as Mn,vr as Nn,vs as Pn,wc as Fn,wi as In,wr as Ln,ws as Rn,xc as zn,xo as Bn,xr as Vn,y as Hn,ya as Un,yc as Wn,yl as Gn,yo as Kn,zl as qn,zo as Jn}from"./src-Vf4LVnMX.js";import{$ as Yn,$t as Xn,B as Zn,Bt as Qn,Ct as $n,Ft as er,G as tr,Gt as nr,H as rr,Ht as ir,It as ar,J as or,Jt as sr,K as cr,Kt as lr,L as ur,Lt as dr,Mt as fr,Nt as z,Pt as pr,Q as mr,Qt as hr,Rt as gr,St as _r,Ut as vr,V as yr,Vt as br,W as xr,Wt as Sr,Xt as Cr,Y as wr,Yt as Tr,Z as Er,Zt as Dr,an as Or,at as kr,bt as Ar,cn as jr,ct as Mr,en as Nr,ft as Pr,in as Fr,it as Ir,jt as Lr,kt as Rr,ln as zr,mt as Br,n as Vr,nn as Hr,nt as Ur,o as Wr,on as Gr,ot as Kr,pt as qr,q as Jr,qt as Yr,r as Xr,rn as Zr,rt as Qr,sn as $r,st as ei,tn as ti,tt as ni,ut as ri,vt as ii,w as ai,wt as oi,xt as si,yt as ci,zt as li}from"./primary-OskAInOO.js";import{Bt as ui,Ct as di,It as fi,Lt as pi,Mt as mi,Rt as hi,_t as gi,bt as _i,gt as vi,i as yi,n as bi,nt as xi,r as Si,rt as Ci,vt as wi,zt as Ti}from"./composerDraftStore-CdJJZe42.js";import{t as Ei}from"./pairingUrl-rQM9kSGT.js";import{n as Di,t as Oi}from"./visibilityPolling-BwzZdaSN.js";import{i as ki}from"./branding-DeKsIp6g.js";import{a as Ai,n as ji,r as Mi}from"./perfInstrumentation-BT27w4tn.js";import{$ as Ni,A as Pi,B as Fi,Bt as Ii,C as Li,D as Ri,E as zi,F as Bi,Ft as Vi,G as Hi,Gt as Ui,H as Wi,Ht as Gi,I as Ki,It as qi,J as Ji,K as Yi,L as Xi,Lt as Zi,M as Qi,N as $i,Nt as ea,O as ta,P as na,Pt as ra,Q as ia,R as aa,Rt as oa,S as sa,St as ca,T as la,U as ua,Ut as da,V as fa,Vt as pa,W as ma,Wt as ha,X as ga,Y as _a,Z as va,_ as ya,_t as ba,a as xa,at as Sa,b as Ca,bt as wa,c as Ta,ct as Ea,d as Da,dt as Oa,et as ka,f as Aa,ft as ja,g as Ma,gt as Na,h as Pa,ht as Fa,it as Ia,j as La,jt as Ra,k as za,l as Ba,lt as Va,m as Ha,mt as Ua,nt as Wa,o as Ga,ot as Ka,p as qa,pt as Ja,q as Ya,rt as B,s as Xa,st as Za,tt as Qa,u as $a,ut as eo,vt as to,w as no,wt as ro,x as io,yt as ao,z as oo,zt as so}from"./authorization-mIJKV2yp.js";import{t as co}from"./presentationTier-xlIjcFab.js";import{r as lo}from"./hostedPairing-PogXRAb7.js";import{t as uo}from"./settingsDialogStore-ygYoScKe.js";import{i as fo}from"./uiStateStore-B6pjzSjj.js";var V=e(r(),1),po=Gt,mo=vn,ho=globalThis.Number,go=e=>{if(e===`NaN`)return Mt(NaN);if(e===`Infinity`)return Mt(1/0);if(e===`-Infinity`)return Mt(-1/0);if(e.trim()===``)return m();let t=ho(e);return ho.isNaN(t)?m():Mt(t)};function _o(e){return{_tag:`Value`,value:e}}function vo(e,t){return{_tag:`Record`,keys:e,value:t}}function yo(e,t){return{_tag:`Array`,length:e,value:t}}Ht(`SourceError`);var bo=yt(`effect/ConfigProvider`,{defaultValue:()=>Oo()}),xo={...dn,toJSON(){return{_id:`ConfigProvider`}}},So=e=>e;function Co(e,t){let n=Object.create(xo);return n.load=e,n.mapInput=t,n}function wo(e,t){return Co(n=>e(t(n)),n=>wo(e,P(t,n)))}function To(e){return wo(e,So)}function Eo(e,t){return e===``&&!t?void 0:e}function Do(e,t){let n=t?.preserveEmptyStrings===!0,r=ko(e);return To(t=>S(jo(r,e,t,n)))}function Oo(e){return Do(e?.env??{APP_VERSION:`0.1.12`,BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,TSS_INLINE_CSS_ENABLED:`false`,VITE_HOSTED_APP_URL:``,VITE_HTTP_URL:``,VITE_RYCO_CLIENT_MODE:`standard`,VITE_RYCO_MOBILE_APP_URL:``,VITE_RYCO_PHONE_APP_INTERSTITIAL:`disabled`,VITE_WS_URL:``},{preserveEmptyStrings:e?.preserveEmptyStrings})}function ko(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){let e=i.children??=Object.create(null);i=e[t]??={}}}return t}var Ao=/^(0|[1-9][0-9]*)$/;function jo(e,t,n,r){let i=n.map(String).join(`_`),a=Eo(Object.hasOwn(t,i)?t[i]:void 0,r),o=Mo(e,n),s=o?.children?Object.keys(o.children):[];return s.length===0?a===void 0?void 0:_o(a):s.every(e=>Ao.test(e))?yo(Math.max(...s.map(e=>parseInt(e,10)))+1,a):vo(new Set(s),a)}function Mo(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 No=`~effect/Config`,Po=class{_tag=`ConfigError`;name=`ConfigError`;cause;constructor(e){this.cause=e}get message(){return this.cause.toString()}toString(){return`ConfigError(${this.message})`}},Fo={...Se({label:`Config`,evaluate(e){return this.parse(e.getRef(bo))}}),[No]:No,toJSON(){return{_id:`Config`}}};function Io(e){let t=Object.create(Fo);return t.evaluator=e,t.parse=t=>e(t,[]).pipe(kn(e=>e.error),F(e=>e._tag===`Resolved`?S(e.value):ne(e.error))),t}var Lo=(e,t)=>({_tag:`Resolved`,value:e,hasInput:t}),Ro=e=>({_tag:`Absent`,error:e}),zo=(e,t)=>({error:e,hasInput:t}),Bo=e=>tn(e,`SourceError`),Vo=(e,t)=>e.pipe(Te(e=>Bo(e)?ne(zo(new Po(e),t)):x(e))),Ho=()=>`<configuration>`,Uo=(e,t)=>e.load(t).pipe(Bt,an(n=>({provider:e,path:t,node:n,toString:Ho}))),Wo=(e,t)=>Uo(e.provider,[...e.path,t]),Go=e=>e?.value,Ko=(e,t)=>Et(fn,e,new on(vt(e=>t(e)),jn())),qo=e=>{switch(e._tag){case`Union`:return e.types.every(qo);case`Objects`:case`Arrays`:case`Suspend`:return!1;default:return!0}},Jo=(e,t)=>{switch(e._tag){case`Objects`:return t?._tag===`Record`;case`Arrays`:return t?._tag===`Array`;case`Union`:return e.types.some(e=>Jo(e,t));case`Suspend`:return Jo(e.thunk(),t);default:return Go(t)!==void 0}},Yo=me(e=>{let t=new WeakSet,n=Dn(e=>{switch(t.add(e),e._tag){case`Objects`:{let t=e.indexSignatures.map(e=>de(e.parameter)),r=hn(function*(n){if(n.node?._tag!==`Record`)return;let r=n.node,i=new Set;for(let t of e.propertySignatures)typeof t.name==`string`&&i.add(t.name);if(t.length>0)for(let e of r.keys)t.some(t=>t(e))&&i.add(e);let a={};for(let e of i){let t=yield*Wo(n,e);t.node!==void 0&&cn(a,e,t)}return a});return Ko(e.recur(n,e=>e),r)}case`Arrays`:{let t=hn(function*(e){if(e.node?._tag!==`Array`)return;let t=[];for(let n=0;n<e.node.length;n++)t.push(yield*Wo(e,n));return t});return Ko(e.recur(n),t)}case`Union`:for(let t of e.types)n(t);return qo(e)?Ko(e,e=>S(Go(e.node))):e.recur(n);case`Suspend`:{let r=e.thunk();return t.has(r)||n(r),e.recur(n)}case`Declaration`:case`Any`:throw new globalThis.Error(`Config.schema does not support opaque StringTree encodings`,{cause:e});default:return Ko(e,e=>S(Go(e.node)))}});return n(e)});function Xo(e,t){let n=We(e),r=Ft(n.ast),i=gn(oe(Yo(n.ast))),a=typeof t==`string`?[t]:t??[];return Io((e,t)=>{let n=[...t,...a];return Vo(Uo(e,n),!1).pipe(F(e=>{let t=Jo(r,e.node);return Vo(i(e).pipe(an(e=>Lo(e,t)),N(e=>{let r=new Po(new Ze(n.length>0?new k(n,e):e));return t?ne(zo(r,!0)):S(Ro(r))})),t)}))})}var Zo=(e,t,n)=>{let r=Dt(e,t),i=Ut(n),a=It.pipe(Pe(We(r),{decode:i.decode,encode:jn({strict:!1}).compose(i.encode)}));return Mn([r,a])};function Qo(e){return Xo(It,e)}function $o(){return{executionCount:0,isPending:!1,lastArgs:void 0,lastExecutionTime:0,nextExecutionTime:0,status:`idle`,maybeExecuteCount:0}}var es={enabled:!0,leading:!0,trailing:!0,wait:0},ts=class{#e;constructor(e,t){this.fn=e,this.store=new Ti($o()),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`}}),pi(`Throttler`,this)},this.#n=()=>!!ui(this.options.enabled,this),this.#r=()=>ui(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($o())},this.key=t.key,this.options={...es,...t},this.#t(this.options.initialState??{}),this.key&&hi.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},ns=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),rs=t(((e,t)=>{t.exports=ns()})),is=e(rs(),1);function as(e){let t=is.unstable_scheduleCallback(4,e);return()=>is.unstable_cancelCallback(t)}var os=V.createContext(Fr({scheduleTask:as,defaultIdleTTL:400})),ss=new WeakMap;function cs(e,t){let n=ss.get(e);n===void 0&&(n=new WeakMap,ss.set(e,n));let r=n.get(t);if(r!==void 0)return r;let i={subscribe(n){return e.subscribe(t,n)},snapshot(){return e.get(t)},getServerSnapshot(){return Dr(t,e)}};return n.set(t,i),i}function ls(e,t){let n=cs(e,t);return V.useSyncExternalStore(n.subscribe,n.snapshot,n.getServerSnapshot)}var us=(e,t)=>{let n=V.useContext(os);return t?ls(n,V.useMemo(()=>Nr(e,t),[e,t])):ls(n,e)},ds=(e,t,n)=>{let r=V.useContext(os);V.useEffect(()=>r.subscribe(e,t,n),[r,e,t,n?.immediate])},fs=`~effect/http/UrlParams`,ps=e=>j(e,fs),ms={...dn,[fs]:fs,[Symbol.iterator](){return this.params[Symbol.iterator]()},toJSON(){return{_id:`UrlParams`,params:Object.fromEntries(this.params)}},[Gn](e){return vs(this,e)},[Be](){return bt(this.params.flat())}},hs=e=>{let t=Object.create(ms);return t.params=e,t},gs=e=>{if(ps(e))return e;let t=_s(e),n=[];for(let e=0;e<t.length;e++)if(Array.isArray(t[e][0])){let[r,i]=t[e];n.push([`${r[0]}[${r.slice(1).join(`][`)}]`,i])}else n.push(t[e]);return hs(n)},_s=e=>{let t=typeof e[Symbol.iterator]==`function`?Qt(e):Object.entries(e),n=[];for(let[e,r]of t)if(Array.isArray(r))for(let t=0;t<r.length;t++)r[t]!==void 0&&n.push([e,String(r[t])]);else if(typeof r==`object`){let t=_s(r);for(let[r,i]of t)n.push([[e,...typeof r==`string`?[r]:r],i])}else r!==void 0&&n.push([e,String(r)]);return n},vs=zt((e,t)=>ys(e.params,t.params)),ys=Ee(po([ft(),ft()])),bs=hs([]),xs=De(2,(e,t)=>{let n=gs(t),r=n.params,i=new Set;for(let e=0;e<r.length;e++)i.add(r[e][0]);for(let t=0;t<e.params.length;t++)i.has(e.params[t][0])||r.push(e.params[t]);return n}),Ss=`~effect/http/HttpBody`;Ht(`HttpBodyError`);var Cs=class{[Ss];constructor(){this[Ss]=Ss}[rn](){return this.toJSON()}toString(){return Ot(this,{ignoreToString:!0})}},ws=new class extends Cs{_tag=`Empty`;toJSON(){return{_id:`effect/HttpBody`,_tag:`Empty`}}},Ts=class extends Cs{_tag=`Uint8Array`;body;contentType;contentLength;constructor(e,t,n){super(),this.body=e,this.contentType=t,this.contentLength=n}toJSON(){return{_id:`effect/HttpBody`,_tag:`Uint8Array`,body:this.contentType.startsWith(`text/`)||this.contentType.endsWith(`json`)?new TextDecoder().decode(this.body):`Uint8Array(${this.body.length})`,contentType:this.contentType,contentLength:this.contentLength}}},Es=(e,t)=>new Ts(e,t??`application/octet-stream`,e.length),Ds=new TextEncoder,Os=(e,t)=>Es(Ds.encode(e),t??`text/plain`),ks=(e,t)=>Os(JSON.stringify(e),t??`application/json`),As=`~effect/http/Cookies`,js=`~effect/http/Cookies/Cookie`;Ht(`CookieError`);var Ms={[As]:As,...Sn,toJSON(){return{_id:`effect/Cookies`,cookies:u(this.cookies,e=>e.toJSON())}},pipe(){return qn(this,arguments)}},Ns=e=>{let t=Object.create(Ms);return t.cookies=e,t},Ps=e=>{let t={};for(let n of e)cn(t,n.name,n);return Ns(t)},Fs=e=>{let t=typeof e==`string`?[e]:e,n=[];for(let e of t){let t=Is(e.trim());t&&n.push(t)}return Ps(n)};function Is(e){let t=e.split(`;`).map(e=>e.trim()).filter(e=>e!==``);if(t.length===0)return;let n=t[0].indexOf(`=`);if(n===-1)return;let r=t[0].slice(0,n);if(!Ls.test(r))return;let i=t[0].slice(n+1),a=zs(i);if(t.length===1)return Object.assign(Object.create(Rs),{name:r,value:a,valueEncoded:i});let o={};for(let e=1;e<t.length;e++){let n=t[e],r=n.indexOf(`=`),i=r===-1?n:n.slice(0,r).trim(),a=r===-1?void 0:n.slice(r+1).trim();switch(i.toLowerCase()){case`domain`:{if(a===void 0)break;let e=a.trim().replace(/^\./,``);e&&(o.domain=e);break}case`expires`:{if(a===void 0)break;let e=new Date(a);isNaN(e.getTime())||(o.expires=e);break}case`max-age`:{if(a===void 0)break;let e=parseInt(a,10);isNaN(e)||(o.maxAge=ut(e));break}case`path`:if(a===void 0)break;a[0]===`/`&&(o.path=a);break;case`priority`:if(a===void 0)break;switch(a.toLowerCase()){case`low`:o.priority=`low`;break;case`medium`:o.priority=`medium`;break;case`high`:o.priority=`high`}break;case`httponly`:o.httpOnly=!0;break;case`secure`:o.secure=!0;break;case`partitioned`:o.partitioned=!0;break;case`samesite`:if(a===void 0)break;switch(a.toLowerCase()){case`lax`:o.sameSite=`lax`;break;case`strict`:o.sameSite=`strict`;break;case`none`:o.sameSite=`none`}}}return Object.assign(Object.create(Rs),{name:r,value:a,valueEncoded:i,options:Object.keys(o).length>0?o:void 0})}var Ls=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Rs={[js]:js,...Sn,toJSON(){return{_id:`effect/Cookies/Cookie`,name:this.name,value:this.value,options:this.options}}},zs=e=>{try{return decodeURIComponent(e)}catch{return e}},Bs=[[`GET`,`get`],[`POST`,`post`],[`PUT`,`put`],[`DELETE`,`del`],[`PATCH`,`patch`],[`HEAD`,`head`],[`OPTIONS`,`options`],[`TRACE`,`trace`]],Vs=(e,t)=>t._tag===`Empty`||t._tag===`FormData`?Qn(Qn(e,`content-type`),`content-length`):(e=t.contentType===void 0?Qn(e,`content-type`):br(e,`content-type`,t.contentType),t.contentLength===void 0?Qn(e,`content-length`):br(e,`content-length`,t.contentLength.toString())),Hs=class extends Ht(`UrlError`){},Us=(e,t,n)=>Ke({try:()=>{let r=new URL(e,Ws());for(let e=0;e<t.params.length;e++){let[n,i]=t.params[e];i!==void 0&&r.searchParams.append(n,i)}return n!==void 0&&(r.hash=n),r},catch:e=>new Hs({cause:e})}),Ws=()=>{if(`location`in globalThis&&globalThis.location!==void 0&&globalThis.location.origin!==void 0&&globalThis.location.pathname!==void 0)return location.origin+location.pathname},Gs=`~effect/http/HttpClientRequest`,Ks={[Gs]:Gs,...Sn,toJSON(){return{_id:`HttpClientRequest`,method:this.method,url:this.url,urlParams:this.urlParams,hash:this.hash,headers:Lt(this.headers),body:this.body.toJSON()}},pipe(){return qn(this,arguments)}};function qs(e,t,n,r,i,a){let o=Object.create(Ks);return o.method=e,o.url=t,o.urlParams=n,o.hash=r,o.headers=i,o.body=a,o}var Js=qs(`GET`,``,bs,m(),er,ws),Ys=e=>(t,n)=>Zs(Js,{method:e,url:t,...n??void 0}),Xs=Ys(`POST`),Zs=De(2,(e,t)=>{let n=e;return t.method&&(n=Qs(n,t.method)),t.url&&(n=rc(n,t.url)),t.headers&&(n=ec(n,t.headers)),t.urlParams&&(n=ic(n,t.urlParams)),t.hash&&(n=ac(n,t.hash)),t.body&&(n=oc(n,t.body)),t.accept&&(n=tc(n,t.accept)),t.acceptJson&&(n=nc(n)),n}),Qs=De(2,(e,t)=>qs(t,e.url,e.urlParams,e.hash,e.headers,e.body)),$s=De(3,(e,t,n)=>qs(e.method,e.url,e.urlParams,e.hash,br(e.headers,t,n),e.body)),ec=De(2,(e,t)=>qs(e.method,e.url,e.urlParams,e.hash,ir(e.headers,t),e.body)),tc=De(2,(e,t)=>$s(e,`Accept`,t)),nc=tc(`application/json`),rc=De(2,(e,t)=>{if(typeof t==`string`)return qs(e.method,t,e.urlParams,e.hash,e.headers,e.body);let n=new URL(t.toString()),r=gs(n.searchParams),i=Xe(n.hash===``?void 0:n.hash.slice(1));return n.search=``,n.hash=``,qs(e.method,n.toString(),r,i,e.headers,e.body)}),ic=De(2,(e,t)=>qs(e.method,e.url,xs(e.urlParams,t),e.hash,e.headers,e.body)),ac=De(2,(e,t)=>qs(e.method,e.url,e.urlParams,Mt(t),e.headers,e.body)),oc=De(2,(e,t)=>qs(e.method,e.url,e.urlParams,e.hash,Vs(e.headers,t),t)),sc=`~effect/http/HttpIncomingMessage`,cc=(e,t)=>{let n=e.headers[`content-type`]??``,r;if(n.includes(`application/json`))try{r=ge(e.json)}catch{}else if(n.includes(`text/`)||n.includes(`urlencoded`))try{r=ge(e.text)}catch{}let i={...t,headers:Lt(e.headers),remoteAddress:e.remoteAddress};return r!==void 0&&(i.body=r),i},lc=`~effect/http/HttpClientResponse`,uc=(e,t)=>new fc(e,t),dc=e=>e.status>=200&&e.status<300?S(e):ne(new nr({reason:new Yr({response:e,request:e.request,description:`non 2xx status code`})})),fc=class extends Ct{[sc];[lc];request;source;constructor(e,t){super(),this.request=e,this.source=t,this[sc]=sc,this[lc]=lc}toJSON(){return cc(this,{_id:`HttpClientResponse`,request:this.request.toJSON(),status:this.status})}get status(){return this.source.status}get headers(){return ar(this.source.headers)}cachedCookies;get cookies(){return this.cachedCookies?this.cachedCookies:this.cachedCookies=Fs(this.source.headers.getSetCookie())}get remoteAddress(){return m()}get stream(){return this.source.body?R({evaluate:()=>this.source.body,onError:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}):Je(new nr({reason:new Sr({request:this.request,response:this,description:`can not create stream from empty body`})}))}get json(){return Ye(this.text,e=>$e({try:()=>e===``?null:JSON.parse(e),catch:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}))}textBody;get text(){return this.textBody??=wt(this.arrayBuffer,e=>new TextDecoder().decode(e))}get urlParamsBody(){return Ye(this.text,e=>$e({try:()=>gs(new URLSearchParams(e)),catch:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}))}formDataBody;get formData(){return this.formDataBody??=it({try:()=>this.source.formData(),catch:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}).pipe(Zt,ge)}arrayBufferBody;get arrayBuffer(){return this.arrayBufferBody||=it({try:()=>this.source.arrayBuffer(),catch:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}).pipe(Zt,ge),this.arrayBufferBody}pipe(){return qn(this,arguments)}},pc=e=>dr({b3:`${e.traceId}-${e.spanId}-${e.sampled?`1`:`0`}${Oe(e.parent,{onNone:()=>``,onSome:e=>`-${e.spanId}`})}`,traceparent:`00-${e.traceId}-${e.spanId}-${e.sampled?`01`:`00`}`}),mc=`~effect/http/HttpClient`,hc=zn(`effect/HttpClient`),gc=De(2,(e,t)=>vc(n=>t(e.postprocess(n)),e.preprocess)),_c=gc(Ye(dc)),vc=(e,t)=>{let n=Object.create(yc);return n.preprocess=t,n.postprocess=e,n.execute=function(n){return e(t(n))},n},yc={[mc]:mc,pipe(){return qn(this,arguments)},...Sn,toJSON(){return{_id:`effect/HttpClient`}},...Object.fromEntries(Bs.map(([e,t])=>[t,function(t,n){return this.execute(Ys(e)(t,n))}]))},bc=e=>vc(t=>Ye(t,t=>ln(n=>{let r=Oc.get(t),i=r??new AbortController,a=Us(t.url,t.urlParams,ue(t.hash));if(Me(a))return ne(new nr({reason:new lr({request:t,cause:a.failure})}));let o=a.success;if(n.getRef(Jt)||n.getRef(Sc)(t)){let a=e(t,o,i.signal,n);return r?a:st(e=>kt(e(a),{onSuccess(e){return Dc.register(e,i),S(new kc(e,i))},onFailure(e){return tt(e)&&i.abort(),Ue(e)}}))}return h(n.getRef(Tc)(t),{kind:`client`},a=>{a.attribute(`http.request.method`,t.method),a.attribute(`server.address`,o.origin),o.port!==``&&a.attribute(`server.port`,+o.port),a.attribute(`url.full`,o.toString()),a.attribute(`url.path`,o.pathname),a.attribute(`url.scheme`,o.protocol.slice(0,-1));let s=o.search.slice(1);s!==``&&a.attribute(`url.query`,s);let c=n.getRef(pr),l=n.getRef(Cc),u=li(t.headers,c);for(let e in u)l(e,`request`)&&a.attribute(`http.request.header.${e}`,String(u[e]));return t=n.getRef(wc)?ec(t,pc(a)):t,st(s=>s(e(t,o,i.signal,n)).pipe(bn(a,{captureStackTrace:!1}),kt({onSuccess:e=>{a.attribute(`http.response.status_code`,e.status);let t=li(e.headers,c);for(let e in t)l(e,`response`)&&a.attribute(`http.response.header.${e}`,String(t[e]));return r?S(e):(Dc.register(e,i),S(new kc(e,i)))},onFailure(e){return!r&&tt(e)&&i.abort(),Ue(e)}})))})})),S),xc=De(2,(e,t)=>{let n=Tt(t),r=n?`errors-and-responses`:t.retryOn??`errors-and-responses`,i=n?t:t.schedule,a=i&&An(i),o=n?void 0:t.times;return gc(e,P(r===`errors-only`?se:Bn({schedule:a,times:o,while:Mc}),r===`response-only`?se:Fe({while:n||t.while===void 0?Ac:v(Ac,t.while),schedule:i,times:o})))}),Sc=yt(`effect/http/HttpClient/TracerDisabledWhen`,{defaultValue:()=>$t}),Cc=yt(`effect/http/HttpClient/TracerHeaderFilter`,{defaultValue:()=>he}),wc=yt(`effect/HttpClient/TracerPropagationEnabled`,{defaultValue:he}),Tc=yt(`effect/http/HttpClient/SpanNameGenerator`,{defaultValue:()=>e=>`http.client ${e.method}`}),Ec=e=>Pn(hc)(je(t=>wt(e,e=>gc(e,ke(e=>D(t,e)))))),Dc=(()=>{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))}}})(),Oc=new WeakMap,kc=class{original;controller;constructor(e,t){this.original=e,this.controller=t}[lc]=lc;[sc]=sc;applyInterrupt(e){return qe(()=>(Dc.unregister(this.original),Kt(e,()=>ie(()=>{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 et(()=>(Dc.unregister(this.original),C(this.original.stream,ie(()=>{this.controller.abort()}))))}toJSON(){return this.original.toJSON()}[rn](){return this.original[rn]()}pipe(){return qn(this,arguments)}},Ac=e=>At(e)||jc(e),jc=e=>Tr(e)&&(e.reason._tag===`TransportError`||e.reason._tag===`StatusCodeError`&&Mc(e.reason.response)),Mc=e=>e.status===408||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504;function Nc(e,t){let n=e.length,r=e.reduce((e,t)=>e+t.retainedBytes,0),i=()=>n<=t.maxEntries&&r<=t.maxBytes;if(i())return[];let a=[],o=e.filter(e=>e.evictable).toSorted((e,t)=>e.lastAccessedAt-t.lastAccessedAt);for(let e of o){if(i())break;a.push(e.key),--n,r=Math.max(0,r-e.retainedBytes)}return a}function Pc(e){return{server:{refreshProviders:e.server.refreshProviders,updateProvider:e.server.updateProvider,getSettings:e.server.getSettings,updateSettings:e.server.updateSettings,upsertKeybinding:e.server.upsertKeybinding,getDiagnosticsSnapshot:e.server.getDiagnosticsSnapshot,discoverSourceControl:e.server.discoverSourceControl,listOpinionatedPlugins:e.server.listOpinionatedPlugins,checkOpinionatedPlugins:e.server.checkOpinionatedPlugins,installOpinionatedPlugin:e.server.installOpinionatedPlugin},...e.keybindings?{keybindings:{replaceCustom:e.keybindings.replaceCustom}}:{},...e.device?{device:e.device}:{},terminal:{open:t=>e.terminal.open(t),write:t=>e.terminal.write(t),resize:t=>e.terminal.resize(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:{listEntries:e.projects.listEntries,readFile:e.projects.readFile,readFileBinary:e.projects.readFileBinary,searchEntries:e.projects.searchEntries,writeFile:e.projects.writeFile,stageFileReference:e.projects.stageFileReference,initializeGit:e.projects.initializeGit},filesystem:{browse:e.filesystem.browse},sourceControl:{lookupRepository:e.sourceControl.lookupRepository,searchRepositories:e.sourceControl.searchRepositories,cloneRepository:e.sourceControl.cloneRepository,publishRepository:e.sourceControl.publishRepository},vcs:{pull:e.vcs.pull,refreshStatus:e.vcs.refreshStatus,onStatus:(t,n,r)=>e.vcs.onStatus(t,n,r),listRefs:e.vcs.listRefs,createWorktree:e.vcs.createWorktree,removeWorktree:e.vcs.removeWorktree,createRef:e.vcs.createRef,switchRef:e.vcs.switchRef,init:e.vcs.init},git:{runStackedAction:e.git.runStackedAction,resolvePullRequest:e.git.resolvePullRequest,preparePullRequestThread:e.git.preparePullRequestThread,createWorktreeForProject:e.git.createWorktreeForProject,findWorktreeForOrigin:e.git.findWorktreeForOrigin,archiveWorktree:e.git.archiveWorktree,restoreWorktree:e.git.restoreWorktree,deleteWorktree:e.git.deleteWorktree},...e.worktrees?{worktrees:{setManualPosition:e.worktrees.setManualPosition}}:{},...e.threads?{threads:{setManualBucket:e.threads.setManualBucket,setManualPosition:e.threads.setManualPosition}}:{},orchestration:{dispatchCommand:e.orchestration.dispatchCommand,getTurnDiff:e.orchestration.getTurnDiff,getWorkflowScript:e.orchestration.getWorkflowScript,getTaskOutput:e.orchestration.getTaskOutput,stopBackgroundTask:e.orchestration.stopBackgroundTask,getFullThreadDiff:e.orchestration.getFullThreadDiff,searchThreadMessages:e.orchestration.searchThreadMessages,...e.orchestration.getThreadWindow?{getThreadWindow:e.orchestration.getThreadWindow}:{},...e.orchestration.getThreadHistoryPage?{getThreadHistoryPage:e.orchestration.getThreadHistoryPage}:{},subscribeShell:(t,n)=>e.orchestration.subscribeShell(t,n),subscribeThread:(t,n,r)=>e.orchestration.subscribeThread(t,n,r),...e.orchestration.subscribeThreadWindow?{subscribeThreadWindow:(t,n,r)=>e.orchestration.subscribeThreadWindow(t,n,r)}:{}},contextHandoff:{getInspectionSummary:e.contextHandoff.getInspectionSummary,listInspectionEntries:e.contextHandoff.listInspectionEntries,readRawPayloadChunk:e.contextHandoff.readRawPayloadChunk,readExportChunk:e.contextHandoff.readExportChunk},mcp:{listWorkspaces:e.mcp.listWorkspaces,listServers:e.mcp.listServers,upsertServer:e.mcp.upsertServer,setServerEnabled:e.mcp.setServerEnabled,removeServer:e.mcp.removeServer,reloadServers:e.mcp.reloadServers,startOauthLogin:e.mcp.startOauthLogin},...e.agentControl?{agentControl:{listProposals:e.agentControl.listProposals,getProposal:e.agentControl.getProposal,acceptProposal:e.agentControl.acceptProposal,rejectProposal:e.agentControl.rejectProposal,subscribeProposals:e.agentControl.subscribeProposals,listIntegrations:e.agentControl.listIntegrations,createIntegration:e.agentControl.createIntegration,updateIntegration:e.agentControl.updateIntegration,resumeIntegrationPairing:e.agentControl.resumeIntegrationPairing,revokeIntegration:e.agentControl.revokeIntegration,deleteIntegration:e.agentControl.deleteIntegration,listMcpInstallations:e.agentControl.listMcpInstallations,connectMcpInstallation:e.agentControl.connectMcpInstallation,repairMcpInstallation:e.agentControl.repairMcpInstallation,disconnectMcpInstallation:e.agentControl.disconnectMcpInstallation}}:{}}}function Fc(e){return{read:t=>{if(!e.canReadConnections()||!t)return;let n=e.readClient(t);return n?Pc(n):void 0}}}function Ic(e,t){if(e.sequence!==t.sequence)return e.sequence-t.sequence;let n=e.updatedAt??``,r=t.updatedAt??``;return n===r?0:n<r?-1:1}function Lc(e){return{sequence:e.snapshotSequence,updatedAt:e.updatedAt}}function Rc(e){if(e.current===null)return`newer`;let t=Ic(e.current,Lc(e.next));return t<0?`newer`:t===0?`current`:`stale`}function zc(e){return e.current===null||e.sequence>e.current.sequence}function Bc(){let e=new Map;return{read:t=>e.get(t)??null,markSnapshot:(t,n)=>{let r=Lc(n),i=e.get(t);(i===void 0||Ic(i,r)<0)&&e.set(t,r)},markEvent:(t,n)=>{let r=e.get(t);(r===void 0||n>r.sequence)&&e.set(t,{sequence:n,updatedAt:r?.updatedAt??null})},clearEnvironment:t=>e.delete(t),clear:()=>e.clear()}}var Vc=class extends Error{status;constructor(e,t){super(e),this.name=`RemoteEnvironmentAuthHttpError`,this.status=t}};function Hc(e){return e instanceof Vc}function Uc(e,t){let n=new URL(e);return n.pathname=t,n.toString()}async function Wc(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 Gc(e,t){let n=Uc(t.httpBaseUrl,t.pathname),r;try{r=await e.fetch(n,{method:t.method??`GET`,headers:{...t.body===void 0?{}:{"content-type":`application/json`},...t.bearerToken?{authorization:`Bearer ${t.bearerToken}`}:{}},...t.body===void 0?{}:{body:JSON.stringify(t.body)}})}catch(e){throw Error(`Failed to fetch remote auth endpoint ${n} (${e.message}).`,{cause:e})}if(!r.ok)throw new Vc(await Wc(r,`Remote auth request failed (${r.status}).`),r.status);return await r.json()}function Kc(e,t){return{bootstrapRemoteBearerSession:async t=>Gc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/bootstrap/bearer`,method:`POST`,body:{credential:t.credential}}),fetchRemoteSessionState:async t=>Gc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/session`,bearerToken:t.bearerToken}),fetchRemoteEnvironmentDescriptor:async t=>Gc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/.well-known/ryco/environment`}),issueRemoteWebSocketToken:async t=>Gc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/ws-token`,method:`POST`,bearerToken:t.bearerToken}),resolveRemoteWebSocketConnectionUrl:async n=>{let r=await Gc(e,{httpBaseUrl:n.httpBaseUrl,pathname:`/api/auth/ws-token`,method:`POST`,bearerToken:n.bearerToken}),i=new URL(n.wsBaseUrl,t);return i.searchParams.set(`wsToken`,r.token),i.toString()}}}function qc(e,t){let n=e.trim();if(!n)throw Error(`Enter a backend URL.`);let r=/^[a-zA-Z][a-zA-Z\d+-]*:\/\//.test(n)||n.startsWith(`//`)?n:`https://${n}`,i=new URL(r,t);return i.pathname=`/`,i.search=``,i.hash=``,i}function Jc(e){let t=new URL(e.toString());return t.protocol===`ws:`?t.protocol=`http:`:t.protocol===`wss:`&&(t.protocol=`https:`),t.pathname=`/`,t.search=``,t.hash=``,t.toString()}function Yc(e){let t=new URL(e.toString());return t.protocol===`http:`?t.protocol=`ws:`:t.protocol===`https:`&&(t.protocol=`wss:`),t.pathname=`/`,t.search=``,t.hash=``,t.toString()}function Xc(e,t,n){let r=e.pairingUrl?.trim()??``;if(r.length>0){let e=new URL(r,t),i=n.readHostedPairingRequest(e);if(i){let e=qc(i.host,t);return{credential:i.token,httpBaseUrl:Jc(e),wsBaseUrl:Yc(e)}}let a=n.readPairingToken(e)??``;if(!a)throw Error(`Pairing URL is missing its token.`);return{credential:a,httpBaseUrl:Jc(e),wsBaseUrl:Yc(e)}}let i=e.host?.trim()??``,a=e.pairingCode?.trim()??``;if(!i)throw Error(`Enter a backend URL.`);if(!a)throw Error(`Enter a pairing code.`);let o=qc(i,t);return{credential:a,httpBaseUrl:Jc(o),wsBaseUrl:Yc(o)}}function Zc(e,t=new Set){return[...e].toSorted((e,n)=>{let r=t.has(e.environmentId);if(r!==t.has(n.environmentId))return r?-1:1;let i=e.lastConnectedAt??``,a=n.lastConnectedAt??``;return i===a?String(e.environmentId).localeCompare(String(n.environmentId)):a.localeCompare(i)})}async function Qc(e,t){let n=Math.max(1,Math.floor(t.concurrency)),r=[...e],i=Array.from({length:Math.min(n,r.length)},async()=>{for(;;){let e=r.shift();if(!e)return;await t.connect(e)}});await Promise.all(i)}function $c(e){let t=new Map,n=new Map,r=e=>p(a(e.environmentId,e.threadId)),i=e=>t.get(r(e))??0,o=e=>{let n=i(e)+1;return t.set(r(e),n),n},s=e=>{t.set(r(e),i(e)+1)},c=t=>{let a=i(t.scope),s=`${r(t.scope)}:${a}:${t.requestKey}`,c=n.get(s);if(c)return c;let l=t.request.mode.kind===`before`?t.request.mode.cursor:`around:${t.request.mode.anchorId}`;e.setRequestState({...t.scope,collection:t.collection,status:`loading`,cursor:l,error:null});let u=e.request(t.scope.environmentId,t.request).then(n=>i(t.scope)===a?(e.apply(t.scope.environmentId,t.scope.threadId,n),e.setRequestState({...t.scope,collection:t.collection,status:`idle`,cursor:null,error:null}),n):null).catch(async n=>{let r=typeof n==`object`&&n?n:null;if(r?._tag===`OrchestrationThreadHistoryError`&&(r.reason===`stale-cursor`||r.reason===`invalid-cursor`||r.reason===`unsupported-version`)&&e.recoverStale&&i(t.scope)===a)try{return await e.recoverStale(t.scope),o(t.scope),null}catch(e){n=e}throw i(t.scope)===a&&e.setRequestState({...t.scope,collection:t.collection,status:`error`,cursor:l,error:n instanceof Error?n.message:String(n)}),n}).finally(()=>{n.get(s)===u&&n.delete(s)});return n.set(s,u),u};return{beginSnapshot:o,invalidate:s,clearEnvironment:e=>{for(let n of t.keys())n.startsWith(`${e}:`)&&t.delete(n)},loadBefore:({scope:e,collection:t,page:n,limit:r})=>!n.hasMoreBefore||n.oldestCursor===null?Promise.resolve(null):c({scope:e,collection:t,request:{threadId:e.threadId,collection:t,mode:{kind:`before`,cursor:n.oldestCursor},limit:r},requestKey:`${t}:before:${n.oldestCursor}:${r}`}),loadAroundMessage:({scope:e,anchorId:t,limit:n})=>c({scope:e,collection:`messages`,request:{threadId:e.threadId,collection:`messages`,mode:{kind:`around`,anchorId:t},limit:n},requestKey:`messages:around:${t}:${n}`})}}var el=()=>void 0,tl=3e5,nl=32,rl=12582912,il=2e3,al=2500,ol=2,sl=class extends Error{constructor(e){super(`Saved environment ${e} connection was cancelled.`),this.name=`SavedEnvironmentConnectionCancelledError`}};function cl(e){let t=new Map,n=new Map,r=new Set,i=new Map,o=Bc(),s=null,c=-1/0,l=()=>{for(let e of r)e();e.onRegistryChange?.()},u=(e,t)=>p(a(e,t)),d=e=>{try{return new TextEncoder().encode(JSON.stringify(e)).byteLength}catch{return 0}},f=(e,t)=>{e.estimatedRetainedBytes=d(t)},m=(e,t)=>{e.estimatedRetainedBytes=Math.min(rl,e.estimatedRetainedBytes+d(t))},h=t=>{t.evictionTimeoutId!==null&&(e.clearTimeout(t.evictionTimeoutId),t.evictionTimeoutId=null)},g=t=>t.refCount===0&&!e.isThreadDetailSubscriptionNonIdle(t.environmentId,t.threadId),_=e=>(r.add(e),()=>r.delete(e)),v=e=>t.get(e)??null,y=e=>{let t=v(e);if(!t)throw Error(`No websocket client registered for environment ${e}.`);return t},b=$c({request:(e,t)=>{let n=y(e).client.orchestration.getThreadHistoryPage;return n?n(t):Promise.reject(Error(`Thread history pagination is unavailable`))},apply:(t,n,r)=>{e.syncThreadHistoryPage?.(t,n,r);let a=i.get(u(t,n));a&&(m(a,r),w())},setRequestState:t=>e.setThreadHistoryRequestState?.(t),recoverStale:async t=>{let n=y(t.environmentId).client.orchestration.getThreadWindow;if(!n)throw Error(`Bounded thread history is unavailable`);let r=await n({threadId:t.threadId,limits:{messages:150,proposedPlans:30,activities:150,checkpoints:30}});e.syncThreadWindowSnapshot?e.syncThreadWindowSnapshot(t.environmentId,r):e.syncThreadDetailSnapshot(t.environmentId,r);let a=i.get(u(t.environmentId,t.threadId));a&&(f(a,r),w())}}),x=t=>{if(t.unsubscribeConnectionListener!==null&&(t.unsubscribeConnectionListener(),t.unsubscribeConnectionListener=null),t.unsubscribe!==el)return!0;let n=v(t.environmentId);if(!n)return!1;let r=!0,i=el,a={environmentId:t.environmentId,threadId:t.threadId},o=()=>{r&&(t.protocol=`legacy`,i(),i=n.client.orchestration.subscribeThread({threadId:t.threadId},n=>{if(n.kind===`snapshot`){b.beginSnapshot(a),f(t,n.snapshot),w(),e.syncThreadDetailSnapshot(t.environmentId,n.snapshot);return}m(t,n.event),w(),e.applyThreadDetailEvent(t.environmentId,n.event)}))};t.unsubscribe=()=>{r=!1,i()};let s=n.client.orchestration.subscribeThreadWindow;if(t.protocol===`legacy`||s===void 0)return o(),!0;let c=!1;return i=s({threadId:t.threadId,limits:{messages:150,proposedPlans:30,activities:150,checkpoints:30}},n=>{if(n.kind===`snapshot`){b.beginSnapshot(a),f(t,n.snapshot),w(),e.syncThreadWindowSnapshot?e.syncThreadWindowSnapshot(t.environmentId,n.snapshot):e.syncThreadDetailSnapshot(t.environmentId,n.snapshot);return}m(t,n.event),w(),e.applyThreadDetailEvent(t.environmentId,n.event)},{onError:()=>{c=!0,i!==el&&o()}}),c&&o(),!0},S=t=>{t.unsubscribeConnectionListener===null&&(t.unsubscribeConnectionListener=_(()=>{x(t)&&(t.lastAccessedAt=e.now())}),x(t))},C=e=>{let t=i.get(e);return t?(h(t),t.unsubscribeConnectionListener?.(),t.unsubscribeConnectionListener=null,i.delete(e),b.invalidate({environmentId:t.environmentId,threadId:t.threadId}),t.unsubscribe(),t.unsubscribe=el,!0):!1},w=()=>{let e=Nc([...i.entries()].map(([e,t])=>({key:e,lastAccessedAt:t.lastAccessedAt,retainedBytes:t.estimatedRetainedBytes,evictable:g(t)})),{maxEntries:nl,maxBytes:rl});for(let t of e)C(t)},T=t=>{h(t),g(t)&&(t.evictionTimeoutId=e.setTimeout(()=>{let e=i.get(u(t.environmentId,t.threadId));e&&(e.evictionTimeoutId=null,g(e)&&C(u(e.environmentId,e.threadId)))},tl))},E=e=>{for(let t of i.values())t.environmentId===e&&T(t);w()},D=(e,t)=>{let n=i.get(u(e,t));n&&T(n)},O=(e,t)=>{let n=new Set(t);for(let[t,r]of i)r.environmentId===e&&!n.has(r.threadId)&&C(t)},k=e=>{let n=t.get(e.environmentId);if(n===e)return e;if(n&&n!==e)throw Error(`Environment ${e.environmentId} already has an active connection.`);t.set(e.environmentId,e);for(let t of i.values())t.environmentId===e.environmentId&&x(t);return l(),e},A=async e=>{let n=t.get(e);if(!n)return!1;t.delete(e),o.clearEnvironment(e),b.clearEnvironment(e),l();for(let t of i.values())t.environmentId===e&&(t.unsubscribe(),t.unsubscribe=el,S(t));return await n.dispose(),!0},j=(t,n)=>{let r=u(t,n),a=i.get(r),o=a??{environmentId:t,threadId:n,unsubscribe:el,unsubscribeConnectionListener:null,refCount:0,lastAccessedAt:e.now(),evictionTimeoutId:null,protocol:`bounded`,estimatedRetainedBytes:0};a||i.set(r,o),h(o),o.refCount+=1,o.lastAccessedAt=e.now(),x(o)||S(o),a||w();let s=!1;return()=>{s||(s=!0,o.refCount=Math.max(0,o.refCount-1),o.lastAccessedAt=e.now(),o.refCount===0&&(T(o),w()))}},M=e=>{for(let[t,n]of i)n.environmentId===e&&C(t)},N=()=>{let t=e.createPrimaryConnection();if(!t)return null;let n=v(t.environmentId);return n?(n!==t&&t.dispose().catch(el),n):k(t)},P=async e=>{let n=e?t.get(e):[...t.values()].find(e=>e.kind===`primary`);n?.kind===`primary`&&n&&await A(n.environmentId).catch(()=>!1)},F=(e,t)=>{let r=v(e.environmentId);if(r)return Promise.resolve(r);let i=n.get(e.environmentId);if(i)return i.promise;let a={cancelled:!1,promise:Promise.resolve().then(async()=>{let n=await t(()=>a.cancelled);if(a.cancelled)throw await A(n.environmentId).catch(()=>!1)||await n.dispose().catch(el),new sl(e.environmentId);return n})};return n.set(e.environmentId,a),a.promise.finally(()=>{n.get(e.environmentId)===a&&n.delete(e.environmentId)})},I=e=>{let t=n.get(e);t&&(t.cancelled=!0,n.delete(e))},L=(t,n)=>{if(!zc({current:o.read(n),sequence:t.sequence}))return;let r=e.stateSink.prepareShellEvent(n,t);e.stateSink.applyShellEvent(n,t),o.markEvent(n,t.sequence),e.stateSink.afterShellEventApplied(n,t,r)},R=(t,n,r)=>{e.onShellSnapshotReceived(n);let i=Rc({current:o.read(n),next:t});if(i===`current`){e.onShellSnapshotCurrent(n),r?.onCurrent();return}i!==`stale`&&(e.stateSink.syncServerShellSnapshot(n,t),e.onShellSnapshotApplied(n),o.markSnapshot(n,t),e.onShellSnapshotReady(n),r?.onReady(),O(n,t.threads.map(e=>e.id)),E(n),e.stateSink.reconcileSnapshotDerivedState())},ee=async()=>{let n=e.listSavedEnvironmentRecords(),r=new Set(n.map(e=>e.environmentId)),i=[...t.values()].filter(e=>e.kind===`saved`).map(e=>e.environmentId).filter(e=>!r.has(e));await Promise.all(i.map(t=>e.disconnectSavedEnvironment(t))),await e.waitForPrimaryShellSnapshotApplied(al),await Qc(Zc(n),{concurrency:ol,connect:async t=>{await F(t,n=>e.connectSavedEnvironment(t,n)).catch(()=>void 0)}})},te=()=>{let e=null,t=!1,n=async()=>{do t=!1,await ee();while(t)};return()=>e?(t=!0,e):(e=n().catch(()=>void 0).finally(()=>{e=null}),e)},ne=n=>{let r=e.now();if(!(r-c<il))for(let e of t.values())e.client.isHeartbeatFresh()||(c=r,e.reconnect().catch(t=>{console.warn(`Environment reconnect after browser resume failed`,{environmentId:e.environmentId,reason:n,error:t instanceof Error?t.message:String(t)})}))},re=()=>{s?.stop(),s=null};return{subscribe:_,list:()=>[...t.values()],read:v,require:y,register:k,remove:A,connectPrimary:N,disconnectPrimary:P,ensureSavedEnvironmentConnection:F,cancelPendingSavedEnvironmentConnection:I,applyShellEvent:L,resetShellProjection:e=>o.clearEnvironment(e),syncShellSnapshot:R,retainThreadDetailSubscription:j,disposeThreadDetailSubscriptionsForEnvironment:M,disposeThreadDetailSubscription:(e,t)=>C(u(e,t)),reconcileThreadDetailSubscriptionEvictionForEnvironment:E,reconcileThreadDetailSubscriptionEvictionForThread:D,reconcileThreadDetailSubscriptionsForEnvironment:O,evictIdleThreadDetailSubscriptionsToCapacity:w,loadOlderThreadHistory:({environmentId:e,threadId:t,collection:n,page:r,limit:i})=>b.loadBefore({scope:{environmentId:e,threadId:t},collection:n,page:r,limit:i}),loadThreadHistoryAroundMessage:({environmentId:e,threadId:t,messageId:n,limit:r})=>b.loadAroundMessage({scope:{environmentId:e,threadId:t},anchorId:n,limit:r}),start:()=>{if(s){let e=s;return e.refCount+=1,()=>{s===e&&(--e.refCount,e.refCount===0&&re())}}re(),e.resetProviderInvalidation();let t=e.createInvalidationThrottle(),n=te();N();let r=e.isHostedMode()?el:e.subscribeSavedEnvironmentRegistry(()=>{e.hasSavedEnvironmentRegistryHydrated()&&n()});e.isHostedMode()||e.waitForSavedEnvironmentRegistryHydration().then(n).catch(el);let i=e.isHostedMode()?el:e.subscribeBrowserResume(ne),a={throttle:t,refCount:1,stop:()=>{r(),i(),t.cancel()}};return s=a,()=>{s===a&&(--a.refCount,a.refCount===0&&re())}},requestProviderInvalidation:()=>{s?.throttle.maybeExecute()},resetForTests:async()=>{re(),c=-1/0;for(let e of i.keys())C(e);await Promise.all([...t.keys()].map(e=>A(e))),n.clear(),o.clear()}}}function ll(e,t){if(!O(e)||!O(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]=O(t)&&O(r)?ll(t,r):r}return n}var ul=lt(e=>$e({try:()=>{let t=e.replace(/("(?:[^"\\]|\\.)*")|\/\/[^\n]*/g,(e,t)=>t?e:``);return t=t.replace(/("(?:[^"\\]|\\.)*")|\/\*[\s\S]*?\*\//g,(e,t)=>t?e:``),t=t.replace(/,(\s*[}\]])/g,`$1`),Mt(JSON.parse(t))},catch:t=>new Re({message:String(t)},e)})),dl=new on(ul,Un());(e=>It.pipe(Pe(e,dl)))(be);function fl(e){return!!(e&&(e.instanceId!==void 0||e.model!==void 0))}function pl(e){if(e.patch===void 0)return e.current?[...e.current]:void 0;if(e.patch.length===0)return;let t=new Map((e.current??[]).map(e=>[e.id,e.value]));for(let n of e.patch)t.set(n.id,n.value);return[...t.entries()].map(([e,t])=>({id:e,value:t}))}function ml(e,t){let n=t.textGenerationModelSelection,r=ll(e,t),i=t.providerInstances===void 0?r:{...r,providerInstances:t.providerInstances};if(!n)return i;let a=n.instanceId??e.textGenerationModelSelection.instanceId,o=n.model??e.textGenerationModelSelection.model,s=fl(n)?n.options:pl({current:e.textGenerationModelSelection.options,patch:n.options});return{...i,textGenerationModelSelection:di(a,o,s)}}var hl=i(),gl=fi();function _l(e){return e.requestedEnvironmentId??e.routedEnvironmentId??e.activeEnvironmentId??e.primaryEnvironmentId??null}var vl=(0,V.createContext)(null);function yl(e){let t=(0,hl.c)(3),n;return t[0]!==e.children||t[1]!==e.value?(n=(0,gl.jsx)(vl.Provider,{value:e.value,children:e.children}),t[0]=e.children,t[1]=e.value,t[2]=n):n=t[2],n}function bl(){return(0,V.useContext)(vl)}function xl(e,t){let n=(0,V.useRef)(t);n.current=t,ds(e,(0,V.useCallback)(e=>{e!==null&&n.current(e)},[]),{immediate:!0})}function Sl(){let e=us(ei),t=bl();return t?t.serverConfig:e}function Cl(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=Kr(t),e[0]=t,e[1]=n),n}function wl(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=kr(t),e[0]=t,e[1]=n),n}function Tl(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=Ur(t),e[0]=t,e[1]=n),n}function El(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=ni(t),e[0]=t,e[1]=n),n}function Dl(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=Qr(t),e[0]=t,e[1]=n),n}function Ol(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=Ir(t),e[0]=t,e[1]=n),n}function kl(e){xl(ri,e)}function Al(e){xl(Mr,e)}var jl=new Set,Ml=new Set,Nl=w,Pl=!1,Fl=null;function Il(){for(let e of jl)e()}function Ll(){for(let e of Ml)e()}function Rl(){return Nl}function zl(e){Nl=e,Il()}function Bl(){return Pl}function Vl(e){Pl!==e&&(Pl=e,Ll())}function Hl(e){return jl.add(e),()=>{jl.delete(e)}}function Ul(){return Fl}function Wl(e){Fl=e}function Gl(e){Fl===e&&(Fl=null)}var Kl=`[CLIENT_SETTINGS]`;function ql(e){let t=Hl(e);return Jl(),t}async function Jl(){if(Bl())return;let e=Ul();if(e)return e;let t=(async()=>{try{let e=await vg().persistence.getClientSettings();e&&zl({...w,...e})}catch(e){console.error(`${Kl} hydrate failed`,e)}finally{Vl(!0)}})().finally(()=>{Gl(t)});return Wl(t),t}function Yl(e){zl(e),vg().persistence.setClientSettings(e).catch(e=>{console.error(`${Kl} persist failed`,e)})}var Xl=new Set(L(be.fields));function Zl(e){let t={},n={};for(let[r,i]of Object.entries(e))Xl.has(r)?t[r]=i:n[r]=i;return{serverPatch:t,clientPatch:n}}function Ql(){return Rl()}function $l(e){let t=(0,hl.c)(6),n=Cl(),r=(0,V.useSyncExternalStore)(ql,Rl,eu),i;t[0]!==r||t[1]!==n?(i={...n,...r},t[0]=r,t[1]=n,t[2]=i):i=t[2];let a=i,o;return t[3]!==a||t[4]!==e?(o=e?e(a):a,t[3]=a,t[4]=e,t[5]=o):o=t[5],o}function eu(){return w}function tu(){let e=(0,hl.c)(9),t=bl(),n=t?.environmentId??null,r=t?.primary??!0,i=t?.connected??!0,a;e[0]!==i||e[1]!==n||e[2]!==r?(a=e=>{let{serverPatch:t,clientPatch:a}=Zl(e);if(Object.keys(t).length>0){if(n&&!r)i?EE(n,t).catch(e=>{console.error(`[SETTINGS] update failed for ${n}`,e)}):console.error(`[SETTINGS] Refused a node setting write while ${n} is disconnected.`);else{let e=Yn();e&&Er(ml(e.settings,t)),vg().server.updateSettings(t)}}Object.keys(a).length>0&&Yl({...Rl(),...a})},e[0]=i,e[1]=n,e[2]=r,e[3]=a):a=e[3];let o=a,s;e[4]===o?s=e[5]:(s=()=>{o(Le)},e[4]=o,e[5]=s);let c=s,l;return e[6]!==c||e[7]!==o?(l={updateSettings:o,resetSettings:c},e[6]=c,e[7]=o,e[8]=l):l=e[8],l}var nu=Object.freeze({data:null,error:null,cause:null,isPending:!1}),ru=Object.freeze({...nu,isPending:!0}),iu=Xn(nu).pipe(hr,Zr(`git-status:null`)),au=()=>void 0,ou=new Map,su=new Set,cu=new Map,lu=new Map,uu=1e3,du=Cr(e=>(su.add(e),Xn(ru).pipe(hr,Zr(`git-status:${e}`))));function fu(e){return e.environmentId===null||e.cwd===null?null:`${e.environmentId}:${e.cwd}`}function pu(e,t){return`${e}:remote-poll=${t?.automaticRemoteRefreshIntervalMs??0}`}function mu(e){if(e.environmentId===null)return null;let t=wE(e.environmentId);return t?{clientIdentity:t.environmentId,client:t.client.vcs}:null}function hu(e){let t=fu(e);return t===null?nu:z.get(du(t))}function gu(e,t,n){let r=fu(e);if(r===null)return au;let i=pu(r,n),a=ou.get(i);return a?(a.refCount+=1,()=>Su(i)):(ou.set(i,{refCount:1,unsubscribe:Cu(r,e,t,n)}),()=>Su(i))}function _u(e,t){return vu(e,t).then(t=>{let n=fu(e);return n!==null&&t!==null&&yu(n,t),t})}function vu(e,t){let n=fu(e);if(n===null||e.cwd===null)return Promise.resolve(null);let r=t??mu(e)?.client;if(!r)return Promise.resolve(hu(e).data);let i=cu.get(n);if(i)return i;let a=lu.get(n)??0;if(Date.now()-a<uu)return Promise.resolve(hu(e).data);lu.set(n,Date.now());let o=r.refreshStatus({cwd:e.cwd}).finally(()=>{cu.delete(n)});return cu.set(n,o),o}function yu(e,t){z.set(du(e),{data:t,error:null,cause:null,isPending:!1})}function bu(e){let t=(0,hl.c)(5),n=fu(e),r=$l(xu),i,a;t[0]!==r||t[1]!==e.cwd||t[2]!==e.environmentId?(i=()=>gu({environmentId:e.environmentId,cwd:e.cwd},void 0,{automaticRemoteRefreshIntervalMs:r}),a=[r,e.environmentId,e.cwd],t[0]=r,t[1]=e.cwd,t[2]=e.environmentId,t[3]=i,t[4]=a):(i=t[3],a=t[4]),(0,V.useEffect)(i,a);let o=us(n===null?iu:du(n));return n===null?nu:o}function xu(e){return e.gitStatusPollIntervalMs}function Su(e){let t=ou.get(e);t&&(--t.refCount,!(t.refCount>0)&&(t.unsubscribe(),ou.delete(e)))}function Cu(e,t,n,r){if(t.cwd===null)return au;let i=t.cwd,a=null,o=au,s=()=>{let s=n?{clientIdentity:`provided:${e}`,client:n}:mu(t);if(!s){a!==null&&(o(),o=au,a=null),Tu(e);return}a!==s.clientIdentity&&(o(),a=s.clientIdentity,o=wu(e,{...t,cwd:i},s.client,r))},c=n?au:SE(s);return s(),()=>{c(),o()}}function wu(e,t,n,r){Tu(e);let i=t.cwd,a=r?.automaticRemoteRefreshIntervalMs??0,o=n.onStatus({cwd:i,...a>0?{automaticRemoteRefreshIntervalMs:a}:{}},t=>{z.set(du(e),{data:t,error:null,cause:null,isPending:!1})},{onResubscribe:()=>{Tu(e)}}),s=!1;return vu(t,n).then(t=>{!s&&t!==null&&yu(e,t)}).catch(()=>void 0),()=>{s=!0,o()}}function Tu(e){let t=du(e),n=z.get(t),r=n.data===null?ru:{...n,error:null,cause:null,isPending:!0};(n.data!==r.data||n.error!==r.error||n.cause!==r.cause||n.isPending!==r.isPending)&&z.set(t,r)}var Eu=Object.freeze({data:null,error:null,isPending:!1}),Du=Object.freeze({data:null,error:null,isPending:!0}),Ou=new Set,ku=Cr(e=>(Ou.add(e),Xn(Du).pipe(hr,Zr(`source-control-discovery:${e}`))));Xn(Eu).pipe(hr,Zr(`source-control-discovery:null`));function Au(e){let t=e.key?.trim();return t&&t.length>0?t:null}function ju(e){let t=new Map;function n(t,n){e.getRegistry().set(ku(t),n)}function r(t){let r=e.getRegistry().get(ku(t)),i=r.data===null?Du:{data:r.data,error:null,isPending:!0};(r.data!==i.data||r.error!==i.error||r.isPending!==i.isPending)&&n(t,i)}function i(e,t){n(e,{data:t,error:null,isPending:!1})}function a(t,r){n(t,{data:e.getRegistry().get(ku(t)).data,error:r instanceof Error?r.message:`Failed to discover source control tools.`,isPending:!1})}function o(n,o){let c=Au(n);if(c===null)return Promise.resolve(null);let l=t.get(c);if(l)return l;let u=o??e.getClient(c);if(!u)return a(c,Error(`Source control discovery client is unavailable.`)),Promise.resolve(s(n).data);r(c);let d=u.discoverSourceControl().then(e=>(i(c,e),e),e=>(a(c,e),s(n).data)).finally(()=>t.delete(c));return t.set(c,d),d}function s(t){let n=Au(t);return n===null?Eu:e.getRegistry().get(ku(n))}function c(){t.clear();for(let e of Ou)n(e,Du);Ou.clear()}return{refresh:o,getSnapshot:s,reset:c}}var Mu={key:`primary`},Nu=3e4,Pu=3e5;function Fu(e){let t=e?.environmentId??null;return t?Xr()?.environmentId===t?Mu:{key:t}:Mu}var Iu=ju({getRegistry:()=>z,getClient:e=>{if(e===Mu.key){let e=Xr()?.environmentId??null,t=e?wE(e):null;if(t)return t.client.server;try{return _g()?.server??null}catch{return null}}let t=wE(ye.make(e));return t?t.client.server:null}}),Lu=Cr(e=>Xn(()=>pt(()=>Iu.refresh({key:e}))).pipe(Hr({staleTime:Nu,revalidateOnMount:!0}),ti(Pu),Zr(`source-control-discovery:auto-refresh:${e}`)));function Ru(e){return Iu.refresh(Fu(e))}function zu(e){return Iu.getSnapshot(Fu(e))}function Bu(e){let t=Au(Fu(e))??Mu.key;return us(Lu(t)),us(ku(t))}function Vu(){return us(qr)}var Hu={now:()=>typeof performance<`u`&&typeof performance.now==`function`?performance.now():Date.now()},Uu={scheduleFrame:e=>{if(typeof requestAnimationFrame==`function`){requestAnimationFrame(()=>e());return}setTimeout(e,0)}};function Wu(){return _i(typeof window>`u`?null:window.localStorage)}function Gu(e=Wu()){return{getItem:async t=>await e.getItem(t),setItem:async(t,n)=>{await e.setItem(t,n)},removeItem:async t=>{await e.removeItem(t)}}}Gu();var Ku=yt(`effect/http/FetchHttpClient/Fetch`,{defaultValue:()=>globalThis.fetch}),qu=class extends zn()(`effect/http/FetchHttpClient/RequestInit`){},Ju=Ec(S(bc((e,t,n,r)=>{let i=r.getRef(Ku),a=r.context.mapUnsafe.get(qu.key)??{},o=a.headers?gr(ar(a.headers),e.headers):e.headers;o[`content-length`]&&(o=Qn(o,`content-length`));let s=r=>wt(it({try:()=>i(t,{...a,method:e.method,headers:o,body:r,duplex:e.body._tag===`Stream`?`half`:void 0,signal:n}),catch:t=>new nr({reason:new sr({request:e,cause:t})})}),t=>uc(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 Ye(Ae(e.body.stream),s)}return s(void 0)}))),Yu=e=>{let t=I(e).pipe(re(go));if(Qe(t))return S(ut(t.value));if(e===void 0)return S(ut(5));let n=Date.parse(e);return Number.isNaN(n)?S(ut(5)):wt(mo,e=>Rt(Math.max(n-e.currentTimeMillisUnsafe(),1)))},Xu=Cn.pipe(An,_t(({output:e})=>Tr(e)&&e.reason._tag===`StatusCodeError`&&e.reason.response.status===429?Yu(e.reason.response.headers[`retry-after`]):S(ut(1)))),Zu=class extends zn()(`effect/observability/OtlpExporter/Flusher`){},Qu=Rn(Zu,()=>{let e=new Set;return{flush:qe(()=>e.size===0?Pt:le(e,se,{concurrency:`unbounded`,discard:!0})),register:t=>Ye(Ve,n=>(e.add(t),M(n,ie(()=>e.delete(t)))))}}),$u=hn(function*(e){let t=yield*pe(),n=Fn(t,mo),r=Fn(t,Ve),i=Wt(pn(e.exportInterval),Wn),a,o=_c(Fn(t,hc)).pipe(gc(Kn(wc,!1)),xc({schedule:Xu,times:3})),s=dr({"user-agent":`effect-opentelemetry-${e.label}/0.0.0`});e.headers&&(s=gr(ar(e.headers),s));let c=Xs(e.url,{headers:s}),l=[],u=qe(()=>{if(a!==void 0&&n.currentTimeMillisUnsafe()<a)return Pt;a!==void 0&&(a=void 0);let t=l;if(e.maxBatchSize!==`disabled`){if(l.length===0)return Pt;l=[]}let[r,i]=e.body(t);return o.execute(oc(c,r)).pipe(xe(i),g,Yt(!1))}).pipe(ve(e=>a===void 0?(a=n.currentTimeMillisUnsafe()+6e4,l=[],gt(`Disabling exporter for 60 seconds`,e)):Pt),en({package:`@effect/opentelemetry`,module:e.label})),d=yield*$r(),f=yield*zr(d)();return yield*(yield*Zu).register(u),yield*M(r,qe(()=>a===void 0?(f(u),Gr(d)):Pt).pipe(Nt,yn,_n(e.shutdownTimeout))),yield*Jn(i).pipe(xe(jr(d,u)),Ye(qt),nt,at(r)),{push(t){a===void 0&&(l.push(t),e.maxBatchSize!==`disabled`&&l.length>=e.maxBatchSize&&f(u))}}}),ed=e=>{let t=e.attributes?rd(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}},td=hn(function*(e){let t=yield*Xo(dt(Zo(mn,mn)),`OTEL_RESOURCE_ATTRIBUTES`),n=e?.serviceName??e?.attributes?.[`service.name`]??(yield*Xo(dt(It),`OTEL_SERVICE_NAME`))??t?.[`service.name`]??(yield*Qo(`OTEL_SERVICE_NAME`)),r=e?.serviceVersion??e?.attributes?.[`service.version`]??(yield*Xo(dt(It),`OTEL_SERVICE_VERSION`))??t?.[`service.version`],i={...t,...e?.attributes};return delete i[`service.name`],delete i[`service.version`],ed({serviceName:n,serviceVersion:r,attributes:i})},Bt),nd=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},rd=e=>{let t=[];for(let[n,r]of e)t.push({key:n,value:id(r)});return t},id=e=>{if(Array.isArray(e))return{arrayValue:{values:e.map(id)}};switch(typeof e){case`string`:return{stringValue:e};case`bigint`:return{intValue:String(e)};case`number`:return Number.isInteger(e)?{intValue:e}:{doubleValue:e};case`boolean`:return{boolValue:e};default:return{stringValue:Ot(e)}}},ad=class extends zn()(`effect/observability/OtlpSerialization`){},od=E(ad,{traces:e=>ks(e),metrics:e=>ks(e),logs:e=>ks(e)}),sd=hn(function*(e){let t=yield*td(e.resource),n=yield*ad,r={name:nd(t)},i=yield*$u({label:`OtlpTracer`,url:e.url,headers:e.headers,exportInterval:e.exportInterval??ut(5),maxBatchSize:e.maxBatchSize??1e3,body(e){let i={resourceSpans:[{resource:t,scopeSpans:[{scope:r,spans:e}]}]};return[n.traces(i),Pt]},shutdownTimeout:e.shutdownTimeout??ut(3)});function a(e){e.sampled&&i.push(dd(e))}return xn({span(e){return ld({...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})}),cd={_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)}},ld=e=>{let t=Object.assign(Object.create(cd),e);return t.traceId=Qe(t.parent)?t.parent.value.traceId:ud(32),t.spanId=ud(16),t.events=[],t},ud=e=>{let t=``;for(let n=0;n<e;n++)t+=`0123456789abcdef`[Math.floor(Math.random()*16)];return t},dd=e=>{let t=e.status,n=rd(e.attributes.entries()),r=e.events.map(([e,t,n])=>({name:e,timeUnixNano:String(t),attributes:n?rd(Object.entries(n)):[],droppedAttributesCount:0})),i;if(t.exit._tag===`Success`)i=md;else if(ct(t.exit.cause))i={code:fd.Ok,message:`Interrupted`},n.push({key:`span.label`,value:{stringValue:`⚠︎ Interrupted`}},{key:`status.interrupted`,value:{boolValue:!0}});else{let e=En(t.exit.cause,{includeCauseInStack:!0});if(i={code:fd.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:Oe(e.parent,{onNone:()=>void 0,onSome:e=>e.spanId}),name:e.name,kind:pd[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:rd(Object.entries(e.attributes)),droppedAttributesCount:0})),droppedLinksCount:0}},fd={Unset:0,Ok:1,Error:2},pd={unspecified:0,internal:1,server:2,client:3,producer:4,consumer:5},md={code:fd.Ok},hd=1e3,gd={serviceName:`ryco-web`,attributes:{"service.runtime":`ryco-web`,"service.mode":d?`electron`:`browser`,"service.version":ki}},_d=St(Ju,od,Qu,E(Sc,()=>!0)),vd=null,yd=null,bd=null,xd=null,Sd=0,Cd=Promise.resolve(),wd=E(un,xn({span(e){return vd?.span(e)??new ht(e)}}));function Td(e={}){return e.exportIntervalMs===void 0&&xd!==null||(Cd=Cd.finally(()=>Ed(e))),Cd}async function Ed(e){let t=xr(`/api/observability/v1/traces`),n=Math.max(10,e.exportIntervalMs??hd),r=`${t}|${n}`;if(xd===r&&vd!==null)return;xd=r;let i=++Sd,a=yd,o=bd;vd=null,yd=null,bd=null,await Dd(a,o);let s=Or(_d),c=s.runSync(b());try{let e=await s.runPromise(_e(c)(sd({url:t,exportInterval:`${n} millis`,resource:gd})));if(i!==Sd){await Dd(s,c);return}vd=e,yd=s,bd=c}catch(e){await Dd(s,c),i===Sd&&console.warn(`Failed to configure client tracing exporter`,{error:Od(e),otlpTracesUrl:t})}}async function Dd(e,t){e!==null&&t!==null&&await e.runPromise(we(t,ee)).catch(()=>void 0).finally(()=>{e.dispose()})}function Od(e){return e instanceof Error&&e.message.trim().length>0?e.message:String(e)}var kd={tracingLayer:wd,performanceEnabled:()=>ji(),recordPerformance:(e,t,n)=>Ai(e,t,n)},Ad=class{#e;#t;#n;#r;#i;#a;#o=0;#s=null;constructor(e={}){this.#e=e.baseDelayMs??1e3,this.#t=e.maxDelayMs??6e4,this.#n=e.stableIntervalMs??6e4,this.#r=e.jitterRatio??.2,this.#i=e.random??Math.random,this.#a=e.now??Date.now}opened(){this.#s=this.#a()}closed(){this.#s!==null&&this.#a()-this.#s>=this.#n&&(this.#o=0),this.#s=null}nextDelay(e){let t=Math.min(this.#o,30);this.#o+=1;let n=Math.min(this.#t,this.#e*2**t),r=Math.max(0,Math.min(1,this.#i())),i=1-this.#r+2*this.#r*r,a=Math.max(250,Math.min(this.#t,Math.round(n*i)));return Math.min(Ie,Math.max(a,Math.max(0,Math.min(Ie,Math.round(e??0)))))}reset(){this.#o=0,this.#s=null}};function jd(e,t){return Pd(e),Pd(t),e.epoch===t.epoch?e.counter===t.counter?0:e.counter<t.counter?-1:1:e.epoch<t.epoch?-1:1}function Md(e,t){return jd(e,t)===0}function Nd(e,t){if(Pd(e),t)return e.epoch>=4294967295n?void 0:{epoch:e.epoch+1n,counter:0n};if(!(e.counter>=18446744073709551615n))return{epoch:e.epoch,counter:e.counter+1n}}function Pd(e){if(typeof e?.epoch!=`bigint`||typeof e.counter!=`bigint`||e.epoch<0n||e.epoch>4294967295n||e.counter<0n||e.counter>18446744073709551615n)throw TypeError(`Relay E2EE sequence positions are bigints within their field ranges.`);return e}function Fd(e){let t=Wi(e.epoch,e.counter);return{epochField:t.slice(0,4),counterField:t.slice(4)}}function Id(e){let t=0n;for(let n=0;n<e.byteLength;n+=1)t=t<<8n|BigInt(e[n]);return t}var Ld=`ryco.relay-e2ee.close.v1`;function Rd(e){return e===2||e===4}function zd(e){let t=tf(e.innerType),n=nf(e.senderDirection),r=af(e.sessionBindingHash),i=Fd(e.finalSend),a=Fd(e.expectedRecv);return Uint8Array.from(Oa([Ld,t,n,r,i.epochField,i.counterField,a.epochField,a.counterField],ja))}function Bd(e){let t=Ja(zd(e));if(t.byteLength!==32)throw TypeError(`Relay E2EE close commitment must be E2EE_CLOSE_COMMITMENT_BYTES long.`);return t}var Vd=5,Hd=Object.freeze([4,8,4,8,32]);function Ud(e){let t=Fd(e.finalSend),n=Fd(e.expectedRecv);return Uint8Array.from(Oa([t.epochField,t.counterField,n.epochField,n.counterField,Bd(e)],ja))}function Wd(e){let t=ta(e);if(t.kind===`error`)return{kind:`error`,reason:t.reason};let n=t.value;if(!Array.isArray(n)||n.length!==Vd)return{kind:`error`,reason:`shape`};for(let e=0;e<Vd;e+=1){let t=n[e];if(!(t instanceof Uint8Array))return{kind:`error`,reason:`shape`};if(t.byteLength!==Hd[e])return{kind:`error`,reason:`field_width`}}let r=n;return{kind:`ok`,value:{finalSendEpochField:r[0],finalSendCounterField:r[1],expectedRecvEpochField:r[2],expectedRecvCounterField:r[3],closeCommitment:r[4],finalSend:{epoch:Id(r[0]),counter:Id(r[1])},expectedRecv:{epoch:Id(r[2]),counter:Id(r[3])}}}}function Gd(e){let t=tf(e.innerType),n=nf(e.senderDirection),r=af(e.sessionBindingHash);Pd(e.envelope),Pd(e.currentNextSend);let i=Wd(e.body);if(i.kind===`error`)return{kind:`invalid`,reason:`malformed_body`,decodeError:i.reason};let a=i.value,o=Fd(e.envelope);if(!Qa(a.finalSendEpochField,o.epochField)||!Qa(a.finalSendCounterField,o.counterField))return{kind:`invalid`,reason:`header_mismatch`};let s=Bd({innerType:t,senderDirection:n,sessionBindingHash:r,finalSend:a.finalSend,expectedRecv:a.expectedRecv});if(!Qa(a.closeCommitment,s))return{kind:`invalid`,reason:`commitment_mismatch`};if(t===2)return jd(a.expectedRecv,e.currentNextSend)>0?{kind:`invalid`,reason:`passed_through_rule`}:{kind:`ok`,value:a};let c=e.closeAnchor;if(c===void 0)throw TypeError(`Relay E2EE strict close-rule requires the receiver's close anchor (§10.1.1).`);return Pd(c),Md(a.expectedRecv,c)?{kind:`ok`,value:a}:{kind:`invalid`,reason:`strict_rule`}}var Kd=Object.freeze({failed:3,unclean_truncation:2,unclean_abrupt:1,clean:0});function qd(e){let t=Kd[e];if(t===void 0)throw TypeError(`Relay E2EE close verdict must be one of the four §10.4 verdicts.`);return t}function Jd(e,t){return qd(t)>qd(e)?t:e}function Yd(e){return e===1||e===2||e===3}var Xd=1;function Zd(e){if(!Yd(e))throw TypeError(`Relay E2EE error records carry a defined §11.3 error code.`);return Uint8Array.from(Oa([e],ja))}function Qd(e){if(!(e instanceof Uint8Array))return{kind:`error`,reason:`malformed`};if(e.byteLength>16)return{kind:`error`,reason:`oversized`};let t=ta(e);if(t.kind===`error`)return{kind:`error`,reason:t.reason};let n=t.value;if(!Array.isArray(n)||n.length!==Xd)return{kind:`error`,reason:`shape`};let r=n[0];return typeof r!=`number`||!Number.isSafeInteger(r)||r<0?{kind:`error`,reason:`shape`}:{kind:`ok`,value:{errorCode:r,defined:Yd(r)}}}var $d=2,ef=class{#e;#t;#n;#r=`open`;#i;#a;#o;#s=!1;#c;#l;#u=!1;#d=0;#f=!1;#p=!1;#m=!1;#h=0;#g;#_=!1;#v;#y=!1;#b=!1;#x;constructor(e){this.#e=Uint8Array.from(af(e.sessionBindingHash)),this.#t=nf(e.sendDirection),this.#n=this.#t===`c2n`?`n2c`:`c2n`}get state(){return this.#r}get branch(){return this.#i}get closeAnchor(){return this.#a}get closeAnchorRecord(){return this.#o}get closeAnchorUnavailable(){return this.#s}get ackExpectedRecv(){return this.#l}get ackExpectedRecvUnavailable(){return this.#u}get pendingRecord(){return this.#r===`close_received`||this.#r===`simultaneous_pending`?this.#u?void 0:`close_ack`:this.#r===`confirmation_due`?`final_confirmation`:void 0}get closeRecordsSent(){return this.#d}get waitsArmed(){return this.#h}get waitDeadlineAt(){return this.#g}get closePhaseActive(){return this.#r!==`open`}get exchangeComplete(){return this.#f}get mayProtectApplicationRecord(){return this.#r===`open`}get mayProtectTerminalError(){return!this.#y&&!this.#b}get terminalErrorSent(){return this.#y}get isLastRecordSender(){return this.#_}get lingerDeadlineAt(){return this.#v}get verdict(){return this.#x}buildClose(e){if(this.#r!==`open`)throw TypeError(`Relay E2EE close machine may only initiate from the application phase.`);return this.#S(2,`close`,e)}buildCloseAck(e){let t=this.pendingRecord;if(t===void 0)throw TypeError(`Relay E2EE close machine owes no close acknowledgement in this state.`);let n=this.ackExpectedRecv;if(n!==void 0&&!Md(Pd(e.expectedRecv),n))throw TypeError(`Relay E2EE close acknowledgement declares the expected-next as of the peer's close.`);return this.#S(4,t,e)}#S(e,t,n){if(this.#y||this.#b)throw TypeError(`Relay E2EE close machine is terminal; no further record may follow.`);if(this.#d>=2)throw TypeError(`Relay E2EE close machine exceeded E2EE_CLOSE_RECORDS_RESERVED records.`);let r={epoch:Pd(n.sendPosition).epoch,counter:n.sendPosition.counter},i={epoch:Pd(n.expectedRecv).epoch,counter:n.expectedRecv.counter},a={innerType:e,body:Ud({innerType:e,senderDirection:this.#t,sessionBindingHash:this.#e,finalSend:r,expectedRecv:i}),position:r,purpose:t};return this.#c=a,a}noteTransmitted(e){let t=this.#c;if(t===void 0||t!==e.record)throw TypeError(`Relay E2EE close machine was told of a record it did not build.`);rf(e.at);let n={epoch:e.epoch,counter:e.counter};if(!Md(n,t.position))throw TypeError(`Relay E2EE close record was protected at a position it does not declare.`);if(t.purpose===`close`&&this.#r!==`open`||t.purpose===`close_ack`&&this.#r!==`close_received`&&this.#r!==`simultaneous_pending`||t.purpose===`final_confirmation`&&this.#r!==`confirmation_due`)throw TypeError(`Relay E2EE close machine left the state this record answers.`);if(this.#c=void 0,this.#d+=1,this.#a===void 0&&!this.#s){let r=Nd(n,e.epochCompleted);r===void 0?(this.#s=!0,this.#k(`unclean_abrupt`)):(this.#a=r,this.#o=t.innerType)}switch(t.purpose){case`close`:this.#r=`awaiting_ack`,this.#T(e.at);return;case`close_ack`:if(this.#l=void 0,this.#r===`close_received`){this.#i=`sequential_responder`,this.#r=`awaiting_confirmation`,this.#T(e.at);return}if(this.#i=`simultaneous`,this.#_=!0,this.#v=e.at+Vi,this.#p){this.#E();return}this.#r=`awaiting_simultaneous_ack`,this.#T(e.at);return;case`final_confirmation`:this.#i=`sequential_initiator`,this.#_=!0,this.#v=e.at+Vi,this.#E();return}}noteTerminalErrorTransmitted(){if(!this.mayProtectTerminalError)throw TypeError(`Relay E2EE close machine permits exactly one terminal E2EEError.`);this.#y=!0,this.#c=void 0,this.#k(`failed`),this.#D()}receive(e){if(!va(e.innerType))throw TypeError(`Relay E2EE inner record type must be a registered type.`);if(Pd(e.envelope),Pd(e.currentNextSend),rf(e.at),e.innerType===3){let t=Qd(e.body);return t.kind===`error`?this.#O(`malformed_error_body`,`Q11`,t.reason):(this.#b=!0,this.#c=void 0,this.#k(`failed`),this.#D(),{kind:`terminal_error`,value:t.value})}return this.#r===`ended`?this.#O(`record_beyond_machine`):e.innerType===1?this.#m||this.#p||this.#r===`complete`?this.#O(`record_beyond_machine`):{kind:`application`}:e.innerType===2?this.#C(e):this.#w(e)}#C(e){if(this.#r!==`open`&&this.#r!==`awaiting_ack`)return this.#O(`record_beyond_machine`);let t=Gd({innerType:2,body:e.body,envelope:e.envelope,sessionBindingHash:this.#e,senderDirection:this.#n,currentNextSend:e.currentNextSend});if(t.kind===`invalid`)return this.#O(t.reason);this.#m=!0;let n=Nd({epoch:e.envelope.epoch,counter:e.envelope.counter},e.epochCompleted===!0);return n===void 0?(this.#u=!0,this.#k(`unclean_abrupt`)):this.#l=n,this.#r===`open`?(this.#i=`sequential_responder`,this.#r=`close_received`,this.#u&&this.#T(e.at),{kind:`close`,branch:`sequential`,value:t.value}):(this.#i=`simultaneous`,this.#r=`simultaneous_pending`,{kind:`close`,branch:`simultaneous`,value:t.value})}#w(e){let t=this.#a;if(!(t!==void 0&&!this.#p&&(this.#r===`awaiting_ack`||this.#r===`awaiting_confirmation`||this.#r===`simultaneous_pending`||this.#r===`awaiting_simultaneous_ack`)))return this.#O(`record_beyond_machine`);let n=Gd({innerType:4,body:e.body,envelope:e.envelope,sessionBindingHash:this.#e,senderDirection:this.#n,currentNextSend:e.currentNextSend,closeAnchor:t});return n.kind===`invalid`?this.#O(n.reason):(this.#p=!0,this.#r===`awaiting_ack`?(this.#i=`sequential_initiator`,this.#r=`confirmation_due`,{kind:`close_ack`,exchangeComplete:!1,value:n.value}):this.#r===`simultaneous_pending`?{kind:`close_ack`,exchangeComplete:!1,value:n.value}:(this.#E(),{kind:`close_ack`,exchangeComplete:!0,value:n.value}))}waitExpired(e){return this.#g!==void 0&&e>this.#g}noteWaitExpired(e){if(!this.waitExpired(e))throw TypeError(`Relay E2EE close machine has no expired T_CLOSE wait.`);return this.#c=void 0,this.#k(`unclean_abrupt`),this.#D(),this.#x}noteChannelEnded(e){return e.incompleteReassembly===!0?this.#k(`unclean_truncation`):this.exchangeComplete||this.#k(`unclean_abrupt`),this.#c=void 0,this.#D(),this.#x??`unclean_abrupt`}noteFatal(){return this.#c=void 0,this.#k(`failed`),this.#D(),this.#x}outerCloseAllowed(e){return!this.closePhaseActive||this.#r===`ended`||this.#r===`complete`||this.waitExpired(e)}shouldLinger(e){return this.#_?this.#v!==void 0&&e<this.#v:!1}#T(e){if(this.#h>=$d)throw TypeError(`Relay E2EE close phase admits at most two T_CLOSE-bounded waits.`);rf(e),this.#h+=1,this.#g=e+ra}#E(){this.#r=`complete`,this.#f=!0,this.#g=void 0,this.#k(`clean`)}#D(){this.#r=`ended`,this.#g=void 0}#O(e,t=`Q7`,n){return this.#c=void 0,this.#k(`failed`),this.#D(),n===void 0?{kind:`fatal`,row:t,reason:e}:{kind:`fatal`,row:t,reason:e,decodeError:n}}#k(e){this.#x=this.#x===void 0?e:Jd(this.#x,e)}};function tf(e){if(!Rd(e))throw TypeError(`Relay E2EE close records are inner type 0x02 or 0x04 only.`);return e}function nf(e){if(!ga(e))throw TypeError(`Relay E2EE direction must be a registered direction label.`);return e}function rf(e){if(typeof e!=`number`||!Number.isFinite(e))throw TypeError(`Relay E2EE close machine requires a finite timestamp.`);return e}function af(e){if(!(e instanceof Uint8Array)||e.byteLength!==32)throw TypeError(`Relay E2EE close records require a full-length session binding hash.`);return e}function of(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}var sf=e=>e?`"${e}" `:``;function cf(e,t=``){if(typeof e!=`boolean`)throw TypeError(sf(t)+`expected boolean, got type=`+typeof e);return e}function lf(e,t=``){if(typeof e!=`number`)throw TypeError(sf(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(sf(t)+`expected integer >= 0, got `+e);return e}function H(e,t,n=``){if(of(e)&&(t===void 0||e.length===t))return e;t!==void 0&&lf(t,`length`);let r=of(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=sf(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}var uf=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError(t===`object`?`expected valid options object`:`"${t}" expected object, got type=${typeof e}`)};function df(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function ff(e,t){H(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function pf(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function mf(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function hf(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var gf=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function _f(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function vf(e){for(let t=0;t<e.length;t++)e[t]=_f(e[t]);return e}var yf=gf?e=>e:vf;function bf(e,t){return uf(e,`defaults`),uf(t,`opts`),Object.assign(e,t)}function xf(e,t){if(e=H(e),t=H(t),e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}function Sf(e,t,n){let r=t,i=n||(()=>[]),a=(e,t)=>r(t,...i(e)).update(e).digest(),o=r(new Uint8Array(e),...i(new Uint8Array));return a.outputLen=o.outputLen,a.blockLen=o.blockLen,a.create=(e,...t)=>r(e,...t),a}var Cf=(e,t)=>{function n(n,...r){if(H(n,void 0,`key`),e.nonceLength!==void 0){let t=r[0];H(t,e.varSizeNonce?void 0:e.nonceLength,`nonce`)}let i=e.tagLength,a=e.nonceLength===void 0?0:1;if(!e.withAAD){for(let e=a;e<r.length;e++)if(of(r[e]))throw Error(`AAD not supported`)}e.withAAD&&r[a]!==void 0&&H(r[a],void 0,`AAD`);let o=t(n,...r),s=(e,t)=>{if(t!==void 0){if(e!==2)throw Error(`cipher output not supported`);H(t,void 0,`output`)}},c=!1;return{encrypt(e,t){if(c)throw Error(`cannot encrypt() twice with same key + nonce`);return c=!0,H(e,void 0,`data`),s(o.encrypt.length,t),o.encrypt(e,t)},decrypt(e,t){if(H(e,void 0,`data`),i&&e.length<i)throw Error(`"ciphertext" expected length >= tagLength=`+i);return s(o.decrypt.length,t),o.decrypt(e,t)}}}return Object.assign(n,e),n};function wf(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(H(t,e,`output`),n&&!Ef(t))throw Error(`invalid output, must be aligned`);return t}function Tf(e,t,n){lf(e),lf(t),cf(n);let r=new Uint8Array(16),i=hf(r);return i.setBigUint64(0,BigInt(t),n),i.setBigUint64(8,BigInt(e),n),r}function Ef(e){return e.byteOffset%4==0}function Df(e){return Uint8Array.from(H(e))}var Of=e=>Uint8Array.from(e.split(``),e=>e.charCodeAt(0)),kf=yf(pf(Of(`expand 16-byte k`))),Af=yf(pf(Of(`expand 32-byte k`)));function U(e,t){return e<<t|e>>>32-t}var jf=64,Mf=16,Nf=2**32-1,Pf=Uint32Array.of();function Ff(e,t,n,r,i,a,o,s){let c=i.length,l=new Uint8Array(jf),u=pf(l),d=gf&&Ef(i)&&Ef(a),f=d?pf(i):Pf,p=d?pf(a):Pf;if(!gf){for(let d=0;d<c;o++){if(e(t,n,r,u,o,s),yf(u),o>=Nf)throw Error(`arx: counter overflow`);let f=Math.min(jf,c-d);for(let e=0,t;e<f;e++)t=d+e,a[t]=i[t]^l[e];d+=f}return}for(let m=0;m<c;o++){if(e(t,n,r,u,o,s),o>=Nf)throw Error(`arx: counter overflow`);let h=Math.min(jf,c-m);if(d&&h===jf){let e=m/4;if(m%4!=0)throw Error(`arx: invalid block position`);for(let t=0,n;t<Mf;t++)n=e+t,p[n]=f[n]^u[t];m+=jf;continue}for(let e=0,t;e<h;e++)t=m+e,a[t]=i[t]^l[e];m+=h}}function If(e,t){let{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:a,rounds:o}=bf({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!=`function`)throw Error(`core must be a function`);return lf(i),lf(o),cf(a),cf(n),(t,s,c,l,u=0)=>{H(t,void 0,`key`),H(s,void 0,`nonce`),H(c,void 0,`data`);let d=c.length;if(l=wf(d,l,!1),lf(u),u<0||u>=Nf)throw Error(`arx: counter overflow`);let f=[],p=t.length,m,h;if(p===32)f.push(m=Df(t)),h=Af;else if(p===16&&n)m=new Uint8Array(32),m.set(t),m.set(t,16),h=kf,f.push(m);else throw H(t,32,`arx key`),Error(`invalid key size`);(!gf||!Ef(s))&&f.push(s=Df(s));let g=pf(m);if(r){if(s.length!==24)throw Error(`arx: extended nonce must be 24 bytes`);let e=s.subarray(0,16);if(gf)r(h,g,pf(e),g);else{let t=yf(Uint32Array.from(h));r(t,g,pf(e),g),mf(t),yf(g)}s=s.subarray(16)}else gf||yf(g);let _=16-i;if(_!==s.length)throw Error(`arx: nonce must be ${_} or 16 bytes`);if(_!==12){let e=new Uint8Array(12);e.set(s,a?0:12-s.length),s=e,f.push(s)}let v=yf(pf(s));try{return Ff(e,h,g,v,c,l,u,o),l}finally{mf(...f)}}}function Lf(e,t){return e[t++]&255|(e[t++]&255)<<8}var Rf=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;destroyed=!1;constructor(e){e=Df(H(e,32,`key`));let t=Lf(e,0),n=Lf(e,2),r=Lf(e,4),i=Lf(e,6),a=Lf(e,8),o=Lf(e,10),s=Lf(e,12),c=Lf(e,14);this.r[0]=t&8191,this.r[1]=(t>>>13|n<<3)&8191,this.r[2]=(n>>>10|r<<6)&7939,this.r[3]=(r>>>7|i<<9)&8191,this.r[4]=(i>>>4|a<<12)&255,this.r[5]=a>>>1&8190,this.r[6]=(a>>>14|o<<2)&8191,this.r[7]=(o>>>11|s<<5)&8065,this.r[8]=(s>>>8|c<<8)&8191,this.r[9]=c>>>5&127;for(let t=0;t<8;t++)this.pad[t]=Lf(e,16+2*t)}process(e,t,n=!1){let r=n?0:2048,{h:i,r:a}=this,o=a[0],s=a[1],c=a[2],l=a[3],u=a[4],d=a[5],f=a[6],p=a[7],m=a[8],h=a[9],g=Lf(e,t+0),_=Lf(e,t+2),v=Lf(e,t+4),y=Lf(e,t+6),b=Lf(e,t+8),x=Lf(e,t+10),S=Lf(e,t+12),C=Lf(e,t+14),w=i[0]+(g&8191),T=i[1]+((g>>>13|_<<3)&8191),E=i[2]+((_>>>10|v<<6)&8191),D=i[3]+((v>>>7|y<<9)&8191),O=i[4]+((y>>>4|b<<12)&8191),k=i[5]+(b>>>1&8191),A=i[6]+((b>>>14|x<<2)&8191),j=i[7]+((x>>>11|S<<5)&8191),M=i[8]+((S>>>8|C<<8)&8191),N=i[9]+(C>>>5|r),P=0,F=P+w*o+5*h*T+5*m*E+5*p*D+5*f*O;P=F>>>13,F&=8191,F+=5*d*k+5*u*A+5*l*j+5*c*M+5*s*N,P+=F>>>13,F&=8191;let I=P+w*s+T*o+5*h*E+5*m*D+5*p*O;P=I>>>13,I&=8191,I+=5*f*k+5*d*A+5*u*j+5*l*M+5*c*N,P+=I>>>13,I&=8191;let L=P+w*c+T*s+E*o+5*h*D+5*m*O;P=L>>>13,L&=8191,L+=5*p*k+5*f*A+5*d*j+5*u*M+5*l*N,P+=L>>>13,L&=8191;let R=P+w*l+T*c+E*s+D*o+5*h*O;P=R>>>13,R&=8191,R+=5*m*k+5*p*A+5*f*j+5*d*M+5*u*N,P+=R>>>13,R&=8191;let ee=P+w*u+T*l+E*c+D*s+O*o;P=ee>>>13,ee&=8191,ee+=5*h*k+5*m*A+5*p*j+5*f*M+5*d*N,P+=ee>>>13,ee&=8191;let te=P+w*d+T*u+E*l+D*c+O*s;P=te>>>13,te&=8191,te+=k*o+5*h*A+5*m*j+5*p*M+5*f*N,P+=te>>>13,te&=8191;let ne=P+w*f+T*d+E*u+D*l+O*c;P=ne>>>13,ne&=8191,ne+=k*s+A*o+5*h*j+5*m*M+5*p*N,P+=ne>>>13,ne&=8191;let re=P+w*p+T*f+E*d+D*u+O*l;P=re>>>13,re&=8191,re+=k*c+A*s+j*o+5*h*M+5*m*N,P+=re>>>13,re&=8191;let ie=P+w*m+T*p+E*f+D*d+O*u;P=ie>>>13,ie&=8191,ie+=k*l+A*c+j*s+M*o+5*h*N,P+=ie>>>13,ie&=8191;let ae=P+w*h+T*m+E*p+D*f+O*d;P=ae>>>13,ae&=8191,ae+=k*u+A*l+j*c+M*s+N*o,P+=ae>>>13,ae&=8191,P=(P<<2)+P|0,P=P+F|0,F=P&8191,P>>>=13,I+=P,i[0]=F,i[1]=I,i[2]=L,i[3]=R,i[4]=ee,i[5]=te,i[6]=ne,i[7]=re,i[8]=ie,i[9]=ae}finalize(){let{h:e,pad:t}=this,n=new Uint16Array(10),r=e[1]>>>13;e[1]&=8191;for(let t=2;t<10;t++)e[t]+=r,r=e[t]>>>13,e[t]&=8191;e[0]+=r*5,r=e[0]>>>13,e[0]&=8191,e[1]+=r,r=e[1]>>>13,e[1]&=8191,e[2]+=r,n[0]=e[0]+5,r=n[0]>>>13,n[0]&=8191;for(let t=1;t<10;t++)n[t]=e[t]+r,r=n[t]>>>13,n[t]&=8191;n[9]-=8192;let i=(r^1)-1;for(let e=0;e<10;e++)n[e]&=i;i=~i;for(let t=0;t<10;t++)e[t]=e[t]&i|n[t];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let a=e[0]+t[0];e[0]=a&65535;for(let n=1;n<8;n++)a=(e[n]+t[n]|0)+(a>>>16)|0,e[n]=a&65535;mf(n)}update(e){df(this),H(e),e=Df(e);let{buffer:t,blockLen:n}=this,r=e.length;for(let i=0;i<r;){let a=Math.min(n-this.pos,r-i);if(a===n){for(;n<=r-i;i+=n)this.process(e,i);continue}t.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===n&&(this.process(t,0,!1),this.pos=0)}return this}destroy(){this.destroyed=!0,mf(this.h,this.r,this.buffer,this.pad)}digestInto(e){df(this),ff(e,this),this.finished=!0;let{buffer:t,h:n}=this,{pos:r}=this;if(r){for(t[r++]=1;r<16;r++)t[r]=0;this.process(t,0,!0)}this.finalize();let i=0;for(let t=0;t<8;t++)e[i++]=n[t]>>>0,e[i++]=n[t]>>>8}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}},zf=Sf(32,e=>new Rf(e));function Bf(e,t,n,r,i,a=20){let o=e[0],s=e[1],c=e[2],l=e[3],u=t[0],d=t[1],f=t[2],p=t[3],m=t[4],h=t[5],g=t[6],_=t[7],v=i,y=n[0],b=n[1],x=n[2],S=o,C=s,w=c,T=l,E=u,D=d,O=f,k=p,A=m,j=h,M=g,N=_,P=v,F=y,I=b,L=x;for(let e=0;e<a;e+=2)S=S+E|0,P=U(P^S,16),A=A+P|0,E=U(E^A,12),S=S+E|0,P=U(P^S,8),A=A+P|0,E=U(E^A,7),C=C+D|0,F=U(F^C,16),j=j+F|0,D=U(D^j,12),C=C+D|0,F=U(F^C,8),j=j+F|0,D=U(D^j,7),w=w+O|0,I=U(I^w,16),M=M+I|0,O=U(O^M,12),w=w+O|0,I=U(I^w,8),M=M+I|0,O=U(O^M,7),T=T+k|0,L=U(L^T,16),N=N+L|0,k=U(k^N,12),T=T+k|0,L=U(L^T,8),N=N+L|0,k=U(k^N,7),S=S+D|0,L=U(L^S,16),M=M+L|0,D=U(D^M,12),S=S+D|0,L=U(L^S,8),M=M+L|0,D=U(D^M,7),C=C+O|0,P=U(P^C,16),N=N+P|0,O=U(O^N,12),C=C+O|0,P=U(P^C,8),N=N+P|0,O=U(O^N,7),w=w+k|0,F=U(F^w,16),A=A+F|0,k=U(k^A,12),w=w+k|0,F=U(F^w,8),A=A+F|0,k=U(k^A,7),T=T+E|0,I=U(I^T,16),j=j+I|0,E=U(E^j,12),T=T+E|0,I=U(I^T,8),j=j+I|0,E=U(E^j,7);let R=0;r[R++]=o+S|0,r[R++]=s+C|0,r[R++]=c+w|0,r[R++]=l+T|0,r[R++]=u+E|0,r[R++]=d+D|0,r[R++]=f+O|0,r[R++]=p+k|0,r[R++]=m+A|0,r[R++]=h+j|0,r[R++]=g+M|0,r[R++]=_+N|0,r[R++]=v+P|0,r[R++]=y+F|0,r[R++]=b+I|0,r[R++]=x+L|0}var Vf=If(Bf,{counterRight:!1,counterLength:4,allowShortKeys:!1}),Hf=new Uint8Array(16),Uf=(e,t)=>{e.update(t);let n=t.length%16;n&&e.update(Hf.subarray(n))},Wf=new Uint8Array(32);function Gf(e,t,n,r,i){i!==void 0&&H(i,void 0,`AAD`);let a=e(t,n,Wf),o=Tf(r.length,i?i.length:0,!0),s=zf.create(a);i&&Uf(s,i),Uf(s,r),s.update(o);let c=s.digest();return mf(a,o),c}var Kf=Cf({blockSize:64,nonceLength:12,tagLength:16,withAAD:!0},(e=>(t,n,r)=>({encrypt(i,a){let o=i.length;a=wf(o+16,a,!1),a.set(i);let s=a.subarray(0,-16);e(t,n,s,s,1);let c=Gf(e,t,n,s,r);return a.set(c,o),mf(c),a},decrypt(i,a){a=wf(i.length-16,a,!1);let o=i.subarray(0,-16),s=i.subarray(-16),c=Gf(e,t,n,o,r);if(!xf(s,c))throw mf(c),Error(`invalid tag`);return a.set(i.subarray(0,-16)),e(t,n,a,a,1),mf(c),a}}))(Vf));function qf(e,t,n){return Fa(e),n===void 0&&(n=new Uint8Array(e.outputLen)),Ea(e,n,t)}var Jf=Uint8Array.of(0),Yf=Uint8Array.of();function Xf(e,t,n,r=32,i){Fa(e),Na(r,`length`),Ua(t,void 0,`prk`);let a=e.outputLen;if(t.length<a)throw Error(`"prk" must be at least HashLen octets`);if(r>255*a)throw Error(`Length must be <= 255*HashLen`);let o=Math.ceil(r/a);if(n===void 0?n=Yf:Ua(n,void 0,`info`),!o)return i&&ba(t),new Uint8Array;let s=i&&o===1?t:new Uint8Array(o*a),{iHash:c,oHash:l}=Ea.create(e,t),u=i?t:new Uint8Array(a),d=o>1?i?.iHash||e.create():void 0;for(let e=0;e<o-1;e++){Jf[0]=e+1;let t=c._cloneInto(d);e&&t.update(u),t.update(n).update(Jf).digestInto(u),l._cloneInto(d).update(u).digestInto(u),s.set(u,a*e)}if(Jf[0]=o,o>1&&c.update(u),c.update(n).update(Jf).digestInto(u),l.update(u).digestInto(u),s.set(u,a*(o-1)),c.destroy(),l.destroy(),d?.destroy(),u!==s&&ba(u),ba(Jf),r===s.length)return s;let f=s.slice(0,r);return ba(s),f}var Zf=`ryco.relay-e2ee.confirmation-key.v1`,Qf=`ryco.relay-e2ee.aead-key.v1`,$f=`ryco.relay-e2ee.ratchet.v1`,ep=wa(Zf),tp=wa(Qf),np=wa($f);function rp(e,t){if(!(e instanceof Uint8Array)||e.byteLength!==32)throw TypeError(`Relay E2EE ${t} must be exactly E2EE_SECRET_BYTES long.`);return e}function ip(e){if(!ga(e))throw TypeError(`Relay E2EE direction must be a registered direction label.`);return e}function ap(e,t){return to(e,Hi(ip(t)))}function op(...e){for(let t of e)if(t instanceof Uint8Array)try{ba(t)}catch{}}function sp(e,t){try{return t()}catch(t){throw op(...e),t}}function cp(e){return Xf(Ja,rp(e,`exporter secret`),ep,32)}function lp(e,t){return Xf(Ja,rp(e,`epoch secret`),ap(tp,t),32)}function up(e,t){return Xf(Ja,rp(e,`epoch secret`),ap(np,t),32)}function dp(e){return sp([e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret],()=>({epochSecretC2N:rp(e.epochSecretC2N,`epoch secret`),epochSecretN2C:rp(e.epochSecretN2C,`epoch secret`),exporterSecret:rp(e.exporterSecret,`exporter secret`),serverConfirmationKey:cp(e.exporterSecret)}))}function fp(e){return dp(e.split())}function pp(e){typeof e!=`object`||!e||op(e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret,e.serverConfirmationKey)}var mp=1+Oa([new Uint8Array(4),new Uint8Array(8),new Uint8Array(4),new Uint8Array(8),new Uint8Array(32)],ja).byteLength,hp=17,gp=Object.freeze([...Array.from({length:2},()=>mp),...Array.from({length:1},()=>hp)]),_p=({version:e,suite:t,key:n})=>{if(e!==1||t!==1)throw TypeError(`Relay E2EE record AEAD selected for an unregistered version or suite.`);return rp(n,`AEAD key`),{seal:(e,t,r)=>Kf(n,e,r).encrypt(t),open:(e,t,r)=>Kf(n,e,r).decrypt(t)}},vp=class e{#e;#t;#n;#r;#i;#a;#o;#s=!1;constructor(t,n,r){let i=ip(t);rp(n,`epoch secret`);let a=e.#c(r);this.#e=i,this.#r=a.epoch,this.#i=a.counter,this.#a=a.epochRecords,this.#o=a.epochBytes,this.#n=lp(n,i),this.#t=n}static#c(e){let t=e?.epoch??0n,n=e?.counter??0n,r=e?.epochRecords??0,i=e?.epochBytes??0;if(typeof t!=`bigint`||t<0n||t>4294967295n)throw RangeError(`Synthetic relay E2EE epoch must be a bigint in the uint32 range.`);if(typeof n!=`bigint`||n<0n||n>18446744073709551615n)throw RangeError(`Synthetic relay E2EE counter must be a bigint in the uint64 range.`);if(!Number.isInteger(r)||r<0||r>=65536)throw RangeError(`Synthetic relay E2EE epoch record count must leave the epoch live.`);if(!Number.isInteger(i)||i<0||i>=268435456)throw RangeError(`Synthetic relay E2EE epoch byte count must leave the epoch live.`);return{epoch:t,counter:n,epochRecords:r,epochBytes:i}}get direction(){return this.#e}get exhausted(){return this.#s}get epoch(){return this.#r}get counter(){return this.#i}get state(){return{epoch:this.#s?void 0:this.#r,counter:this.#s?void 0:this.#i,epochRecords:this.#a,epochBytes:this.#o,exhausted:this.#s}}get aeadKey(){let e=this.#n;if(e===void 0)throw TypeError(`Relay E2EE directional AEAD key is unavailable.`);return e}static#l(e,t){return e>=65536||t>=268435456}capacityFor(t){if(this.#s)return!1;let n=this.#r,r=this.#a,i=this.#o;for(let a of t){if(e.#l(r,i)){if(n>=4294967295n)return!1;n+=1n,r=0,i=0}r+=1,i+=a}return!0}advance(t){if(this.#s)throw TypeError(`Relay E2EE direction is exhausted; no record may advance it.`);if(this.#a+=1,this.#o+=t,!e.#l(this.#a,this.#o))return this.#i>=18446744073709551615n?(this.#u(),{epochCompleted:!1}):(this.#i+=1n,{epochCompleted:!1});if(this.#r>=4294967295n)return this.#u(),{epochCompleted:!0};let n=this.#t,r=this.#n;if(n===void 0)throw TypeError(`Relay E2EE epoch secret is unavailable.`);let i=up(n,this.#e),a=sp([i],()=>lp(i,this.#e));return op(n,r),this.#t=i,this.#n=a,this.#r+=1n,this.#i=0n,this.#a=0,this.#o=0,{epochCompleted:!0}}#u(){this.#s=!0,this.erase()}erase(){op(this.#t,this.#n),this.#t=void 0,this.#n=void 0}};function yp(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.kind===`sent`||t.kind===`failed`&&(t.delivery===`none`||t.delivery===`ambiguous`)}function bp(e){let t,n;try{if(!ia(e.suite))throw TypeError(`Relay E2EE session suite must be a registered suite id.`);if(!(e.sessionBindingHash instanceof Uint8Array)||e.sessionBindingHash.byteLength!==32)throw TypeError(`Relay E2EE session requires a full-length session binding hash.`);if(!Number.isInteger(e.plaintextCeiling)||e.plaintextCeiling<=0)throw RangeError(`Relay E2EE session requires a positive plaintext ceiling.`);let r=ip(e.sendDirection),i=r===`c2n`?`n2c`:`c2n`,a=r===`c2n`?e.secrets.epochSecretC2N:e.secrets.epochSecretN2C,o=r===`c2n`?e.secrets.epochSecretN2C:e.secrets.epochSecretC2N;return t=new vp(r,a,e.testOnlySyntheticSendState),n=new vp(i,o,e.testOnlySyntheticReceiveState),{suite:e.suite,sessionBindingHash:Uint8Array.from(e.sessionBindingHash),plaintextCeiling:e.plaintextCeiling,aeadFactory:e.testOnlyAeadFactory??_p,secrets:e.secrets,send:t,receive:n}}catch(r){throw t?.erase(),n?.erase(),pp(e.secrets),r}}var xp=class{#e=1;#t;#n;#r;#i;#a;#o;#s;#c=`open`;#l=!1;#u=!1;#d=Promise.resolve();constructor(e){let t=bp(e);this.#t=t.suite,this.#n=t.sessionBindingHash,this.#r=t.plaintextCeiling,this.#i=t.aeadFactory,this.#a=t.secrets,this.#o=t.send,this.#s=t.receive}get suite(){return this.#t}get version(){return this.#e}get sendDirection(){return this.#o.direction}get receiveDirection(){return this.#s.direction}get sendState(){return this.#o.state}get receiveState(){return this.#s.state}get postApplicationReserveHeld(){return this.#o.capacityFor(gp)}get sendPathUsable(){return!this.#u&&this.#c!==`unusable`&&this.#c!==`spent`}#f(e,t,n){if(e!==this.#e||t!==this.#t)throw TypeError(`Relay E2EE AEAD selection requires the established version and suite.`);return this.#i({version:e,suite:t,key:n})}async protect(e){if(this.#y(),!va(e.innerType))throw TypeError(`Relay E2EE inner record type must be a registered type.`);if(!(e.body instanceof Uint8Array))throw TypeError(`Relay E2EE inner record body must be a Uint8Array.`);if(typeof e.admit!=`function`||typeof e.transmit!=`function`)throw TypeError(`Relay E2EE sends require an admission and a transmit callback.`);let t=this.#d.then(()=>this.#p(e),()=>this.#p(e));return this.#d=t.then(()=>void 0,()=>void 0),t}async#p(e){if(this.#u)return{kind:`unavailable`,reason:`session_erased`};let t=this.#h(e.innerType);if(t!==void 0)return{kind:`unavailable`,reason:t};if(e.body.byteLength>this.#r)return{kind:`refused`,reason:`e2ee_message_too_large`};let n=1+e.body.byteLength;if(e.innerType===1){if(!this.#o.capacityFor([n,...gp]))return{kind:`close_required`}}else if(!this.#o.capacityFor([n]))return{kind:`exhausted`};let r=32+e.body.byteLength;if(!await e.admit(r))return{kind:`refused`,reason:`e2ee_send_unavailable`};if(this.#u)return{kind:`unavailable`,reason:`session_erased`};let i=this.#o.epoch,a=this.#o.counter,o=Ya({suite:this.#t,epoch:i,counter:a}),s=o[1],c=o[2];if(s!==this.#e||!ia(c)||c!==this.#t)throw TypeError(`Relay E2EE envelope header disagrees with the established session.`);let l=this.#f(s,c,this.#o.aeadKey);try{return await this.#m(e,{epoch:i,counter:a,plaintextBytes:n,aead:l,header:o})}catch{return this.#c=`unusable`,{kind:`send_failed`,epoch:i,counter:a,delivery:`ambiguous`,sendPathUsable:!1,mayEmitError:!1}}}async#m(e,t){let{epoch:n,counter:r,plaintextBytes:i,aead:a,header:o}=t,s=ua(o),c=ma({header:o,sessionBindingHash:this.#n,direction:this.#o.direction}),l=Ji(e.innerType,e.body),u;try{let e=a.seal(s,l,c);u=Yi({suite:this.#t,epoch:n,counter:r,ciphertext:e})}catch{u=void 0}finally{op(l)}let{epochCompleted:d}=this.#o.advance(i);if(u===void 0)return this.#c=`unusable`,{kind:`send_failed`,epoch:n,counter:r,delivery:`none`,sendPathUsable:!1,mayEmitError:!1};this.#g(e.innerType);let f;try{let t=await e.transmit(u);f=yp(t)?t:{kind:`failed`,delivery:`ambiguous`}}catch{f={kind:`failed`,delivery:`ambiguous`}}return f.kind===`sent`?{kind:`protected`,epoch:n,counter:r,plaintextBytes:i,envelopeBytes:u.byteLength,epochCompleted:d}:f.delivery===`none`?(this.#c=`unusable`,{kind:`send_failed`,epoch:n,counter:r,delivery:`none`,sendPathUsable:!1,mayEmitError:!1}):{kind:`send_failed`,epoch:n,counter:r,delivery:`ambiguous`,sendPathUsable:this.sendPathUsable,mayEmitError:this.sendPathUsable}}#h(e){switch(this.#c){case`unusable`:return`send_path_unusable`;case`spent`:return`terminal_record_protected`;case`closing`:return e===1?`application_phase_closed`:void 0;case`open`:return}}#g(e){if(e===3){this.#c=`spent`;return}(e===2||e===4)&&this.#c===`open`&&(this.#c=`closing`)}unprotect(e){if(this.#y(),!(e instanceof Uint8Array))throw TypeError(`Relay E2EE payloads must be a Uint8Array.`);if(this.#l)return this.#v(`receive_terminated`);try{return this.#_(e)}catch(e){throw this.#l=!0,e}}#_(e){let t=oo(e);if(t.kind===`error`)switch(t.reason){case`unsupported_version`:return this.#v(`version_mismatch`);case`unsupported_suite`:return this.#v(`suite_mismatch`);default:return this.#v(`malformed_envelope`)}let n=t.value;if(n.version!==this.#e)return this.#v(`version_mismatch`);if(n.suite!==this.#t)return this.#v(`suite_mismatch`);if(this.#s.exhausted||n.epoch!==this.#s.epoch||n.counter!==this.#s.counter)return this.#v(`sequence_mismatch`);let r=this.#f(n.version,n.suite,this.#s.aeadKey),i=ua(n.header),a=ma({header:n.header,sessionBindingHash:this.#n,direction:this.#s.direction}),o;try{o=r.open(i,n.ciphertext,a)}catch{return this.#v(`authentication_failed`)}let s;try{s=Fi(o)}catch(e){throw op(o),e}if(s.kind===`error`)return op(o),this.#v(s.reason===`truncated`?`malformed_record`:`reserved_inner_type`);let c=n.epoch,l=n.counter,{epochCompleted:u}=sp([o],()=>this.#s.advance(o.byteLength));return{kind:`authenticated`,innerType:s.value.innerType,body:s.value.body,epoch:c,counter:l,plaintextBytes:o.byteLength,epochCompleted:u}}#v(e){return this.#l=!0,{kind:`fatal`,reason:e}}erase(){this.#u||(this.#u=!0,this.#o.erase(),this.#s.erase(),pp(this.#a))}get erased(){return this.#u}#y(){if(this.#u)throw TypeError(`Relay E2EE session has been erased; it is never resumed.`)}},Sp=/^[A-Za-z][A-Za-z0-9._-]{0,63}$/,Cp=64,wp=Symbol(`INVALID_PROFILE_VALUE`),Tp=new Set(mt),Ep={allowIndefinite:!1,allowUndefined:!1,allowInfinity:!1,allowNaN:!1,allowBigInt:!1,strict:!0,useMaps:!0,rejectDuplicateMapKeys:!0,tags:{}},Dp=e=>({ok:!0,value:e}),W=(e,t)=>t===void 0?{ok:!1,error:{code:e}}:{ok:!1,error:{code:e,supported:t}};function Op(e,t){if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n+=1)if(e[n]!==t[n])return!1;return!0}function kp(e,t=0){if(t>Cp)return wp;if(e===null||typeof e==`boolean`||typeof e==`string`)return e;if(typeof e==`number`)return Number.isSafeInteger(e)?e:wp;if(e instanceof Uint8Array)return e;if(Array.isArray(e)){let n=[];for(let r of e){let e=kp(r,t+1);if(e===wp)return wp;n.push(e)}return n}if(e instanceof Map){let n=Object.create(null);for(let[r,i]of e){if(typeof r!=`string`||!Sp.test(r))return wp;let e=kp(i,t+1);if(e===wp)return wp;n[r]=e}return n}return wp}function Ap(e){let t;try{t=eo(e,Ep)}catch{return W(`invalid_encoding`)}if(!(t instanceof Map))return W(`invalid_encoding`);let n;try{n=Oa(t,ja)}catch{return W(`invalid_encoding`)}if(!Op(e,n))return W(`invalid_encoding`);let r=kp(t);return r===wp||r===null||Array.isArray(r)?W(`invalid_encoding`):Dp(r)}function jp(e,t){let n=In(y)({protocolMajor:e.protocolMajor,protocolMinor:e.protocolMinor});return ae(n)?W(`invalid_frame`):n.value.protocolMajor===1?t!==void 0&&(n.value.protocolMajor!==t.protocolMajor||n.value.protocolMinor!==t.protocolMinor)?W(`invalid_frame`):Dp(n.value):W(`protocol_unsupported`,Ln)}function Mp(e,t={}){if(e.byteLength>263168)return W(`frame_too_large`);let n=Ap(e);if(!n.ok)return n;let r=n.value;if(r.type!==`data`&&e.byteLength>262144||r.type===`data`&&r.payload instanceof Uint8Array&&r.payload.byteLength>262144)return W(`frame_too_large`);let i=jp(r,t.expectedVersion);if(!i.ok)return i;if(!(`type`in r))return W(`missing_discriminant`);if(typeof r.type!=`string`)return W(`invalid_frame`);if(!Tp.has(r.type))return W(`unknown_frame_type`);let a=In(Ce)(r);return ae(a)?W(r.type===`ready`?`invalid_limits`:`invalid_frame`):Dp(a.value)}function Np(e){if(typeof e==`object`&&e&&`type`in e&&e.type===`data`&&`payload`in e&&e.payload instanceof Uint8Array&&e.payload.byteLength>262144)return W(`frame_too_large`);let t=In(Ce)(e);if(ae(t))return W((typeof e==`object`&&e&&`type`in e?e.type:void 0)===`ready`?`invalid_limits`:`invalid_frame`);if(t.value.protocolMajor!==1)return W(`protocol_unsupported`,Ln);let n;try{n=Oa(t.value,ja)}catch{return W(`invalid_frame`)}let r=t.value.type===`data`?xt:Nn;return n.byteLength<=r?Dp(n):W(`frame_too_large`)}var Pp={protocolMajor:1,protocolMinor:2},Fp=1,Ip=32,Lp=ca+Ii.byteLength+Ip;function Rp(e){let t=0;for(let n of e)t+=n+Ip;return t}var zp=`Relay E2EE negotiation send buffer is full.`,Bp=`Relay E2EE send is unavailable.`,Vp=`RPC payload exceeds the maximum relay message size.`,Hp=`Relay peer does not support multi-frame RPC messages.`,Up=`Relay send queue is full.`,Wp={fatal_pre_key:`channel_rejected`,fatal_post_key:`channel_rejected`,send_path_unusable:`channel_rejected`};function G(e){return[`node_offline`,`server_draining`,`connection_replaced`,`rate_limited`,`slow_consumer`].includes(e)?{kind:e===`node_offline`?`offline`:e===`server_draining`?`draining`:e===`connection_replaced`?`replacement`:e===`rate_limited`?`rate-limited`:`slow-consumer`,retryable:!0,closeReason:e}:[`revoked`,`node_revoked`,`grant_revoked`].includes(e)?{kind:`revoked`,retryable:!1,closeReason:e}:e===`authorization_failed`?{kind:`authorization-removed`,retryable:!1,closeReason:e}:[`authentication_failed`,`authentication_required`,`ticket_expired`,`ticket_consumed`,`authentication_timeout`].includes(e)?{kind:`authentication`,retryable:e!==`authentication_required`,closeReason:e}:e===`protocol_unsupported`?{kind:`incompatible`,retryable:!1,closeReason:e}:[`protocol_invalid`,`frame_too_large`,`channel_rejected`,`transfer_limit`].includes(e)?{kind:`protocol`,retryable:!1,...e===`protocol_invalid`?{}:{closeReason:e}}:e===`network`?{kind:`network`,retryable:!0}:{kind:`internal`,retryable:!0,closeReason:e}}function Gp(e){return G(Wp[e])}function Kp(){return{kind:`protocol`,retryable:!0,closeReason:`channel_rejected`}}var qp=class{options;#e=null;#t=null;#n=!1;#r=null;#i=0;#a=0;#o=!1;#s=[];#c=0;#l=[];#u=0;#d=!1;#f=!1;#p=!1;#m=!1;#h=null;#g=null;#_=null;#v=null;#y=`negotiating`;#b=null;#x=[];#S=0;#C=0;#w=new Set;#T=Promise.resolve();#E=!1;#D=!1;constructor(e){if(this.options=e,e.ticketExpiresAt<=e.timers.now())throw Error(`Relay attempt is no longer valid.`);let t=ha(e.ticket);try{let e=Np({type:`auth`,peer:`client`,...Pp,relayTicket:t});if(!e.ok)throw Error(`Relay authentication could not be encoded.`);this.#h=e.value}finally{t.fill(0)}e.callbacks.onTransportStatus(`connecting`),e.socket.onOpen(()=>this.#P()),e.socket.onBinaryMessage(e=>this.#F(e)),e.socket.onError(()=>{this.#p||e.events.onError()}),e.socket.onClose(()=>{this.#p||this.#$(G(`network`))})}#O=new pa;get bufferedAmount(){return this.options.socket.bufferedAmount+this.#c+this.#C+this.#S}send(e){if(this.#p||!this.#n||!this.#t||!this.#e)throw Error(`Relay channel is not open.`);if(this.#y===`negotiating`)return this.#j(e,this.#e);if(this.#y===`e2ee`)return this.#k(e);this.#A(e)}#k(e){let t=this.#v;if(!t)return this.#V(Gp(`send_path_unusable`));let n;try{n=t.submit(e)}catch(e){throw this.#V(Gp(`fatal_post_key`)),e}if(!n)throw Error(Bp)}#A(e){let t=da(e,this.#W(this.#e));if(t.kind===`error`)throw e.fill(0),this.#$(G(`transfer_limit`)),Error(t.reason===`peer_unsupported`?Hp:Vp);for(let e of t.payloads)this.#X(Uint8Array.from(e))}#j(e,t){if(e.byteLength>oa(t).plaintextCeiling)throw Error(Vp);let n=Gi(e.byteLength,this.#W(t));if(n.kind===`error`)throw Error(n.reason===`peer_unsupported`?Hp:Vp);let r=Gi(32+e.byteLength,this.#W(t));if(r.kind===`error`)throw Error(r.reason===`peer_unsupported`?Hp:Vp);let i=Math.max(Rp(n.payloadBytes),Rp(r.payloadBytes)),a=Math.max(0,so(t)-Lp);if(this.bufferedAmount+i>a)throw Error(zp);this.#x.push(Uint8Array.from(e)),this.#S+=i}close(e=1e3,t=`closed`){if(!this.#p){if(this.#y===`e2ee`&&this.#v){this.#D=!0,this.options.callbacks.onTransportStatus(`draining`),this.#M();return}this.#N(e,t)}}#M(){let e=this.#v;this.#p||!e||this.#E||!this.#D||(this.#E=!0,e.beginClose().then(t=>{t===`refused`&&!this.#p&&this.#v===e&&(this.#E=!1)},()=>this.#V(Gp(`fatal_post_key`))))}#N(e,t){this.#p||(this.#E=!0,this.options.callbacks.onTransportStatus(`draining`),this.#Z(!0),this.#t&&this.#Q({type:`channel.close`,...Pp,channelId:this.#t}),this.#ee(e,t))}reportUndecodableMessage(e){this.#$(G(e))}#P(){if(!(this.#p||!this.#h)){this.options.callbacks.onTransportStatus(`authenticating`);try{this.options.socket.send(this.#h)}finally{this.#h.fill(0),this.#h=null}this.#g=this.options.timers.setTimeout(()=>this.#$(G(`authentication_timeout`)),Vt)}}#F(e){if(e.byteLength>263168)return this.#$(G(`frame_too_large`));let t=Uint8Array.from(e),n=Mp(t,this.#e?{expectedVersion:Pp}:{});if(t.fill(0),!n.ok)return this.#$(G(`protocol_invalid`));let r=n.value,i=r.type===`data`?(this.#e?.maxDataChunkBytes??262144)+Vn:this.#e?.maxControlFrameBytes??262144;if(e.byteLength>i)return this.#$(G(`frame_too_large`));if(r.type===`ping`)return this.#Q({type:`pong`,...Pp,nonce:Uint8Array.from(r.nonce)});if(r.type===`error`){let e=G(r.code===`invalid_encoding`||r.code===`invalid_frame`||r.code===`invalid_limits`||r.code===`missing_discriminant`||r.code===`unknown_frame_type`?`protocol_invalid`:r.code);return this.#$({...e,...r.retryAfterMs===void 0?{}:{retryAfterMs:r.retryAfterMs}})}if(!this.#e){if(r.type!==`ready`||r.protocolMajor!==1||r.protocolMinor!==2)return this.#$(G(r.type===`ready`?`protocol_unsupported`:`protocol_invalid`));this.#e=r.limits,this.#g&&this.options.timers.clearTimeout(this.#g),this.#g=null,this.options.callbacks.onTransportStatus(`opening-channel`);return}if(r.type===`channel.open`){if(this.#t||r.capability!==`ryco.rpc`||!r.effectiveRole)return this.#$(G(`channel_rejected`));this.#t=r.channelId,this.#r=r.effectiveRole,this.options.callbacks.onRole(this.#r);return}if(r.type===`channel.accept`){if(this.#n||r.channelId!==this.#t||!this.#r)return this.#$(G(`channel_rejected`));if(this.#n=!0,this.options.e2ee){this.#y=`negotiating`,this.#I(this.#e);return}this.#R(`legacy`);return}if(r.type===`channel.close`&&r.reason===void 0&&r.channelId===this.#t&&this.#E)return this.#N(1e3,`closed`);if(r.type===`channel.close`||r.type===`channel.reject`)return r.channelId===this.#t?this.#$(G(r.reason??`channel_rejected`)):this.#$(G(`channel_rejected`));if(r.type===`flow.pause`||r.type===`flow.resume`){if(r.channelId!==this.#t)return this.#$(G(`channel_rejected`));this.#o=r.type===`flow.pause`,this.#o||this.#Z();return}r.type===`data`&&this.#G(r)}#I(e){try{this.#v=this.options.e2ee({limits:e,channel:{channelId:this.#t,capability:`ryco.rpc`,effectiveRole:this.#r,relayProtocolMajor:Pp.protocolMajor,relayProtocolMinor:Pp.protocolMinor},admit:e=>this.#H(e),lockMode:e=>this.#L(e),close:e=>{if(e)return this.#V(e);this.#N(1e3,`closed`)},now:()=>this.options.timers.now(),setTimeout:(e,t)=>this.options.timers.setTimeout(e,t),clearTimeout:e=>this.options.timers.clearTimeout(e)})}catch{this.#V(Gp(`fatal_pre_key`));return}let t=this.#b;this.#b=null,t&&this.#R(t)}#L(e){if(!(this.#p||this.#y!==`negotiating`)){if(!this.#v){this.#b=e;return}this.#R(e)}}#R(e){this.#p||this.#y!==`negotiating`||(this.#y=e,this.#z(e),!this.#p&&(this.options.callbacks.onTransportStatus(`online`),this.options.callbacks.onSessionStatus(`synchronizing`),this.options.events.onOpen()))}#z(e){let t=this.#x;this.#x=[],this.#S=0;for(let n of t){if(!this.#p)try{e===`e2ee`?this.#k(n):this.#A(n)}catch{e===`e2ee`&&!this.#p&&this.#V(Gp(`fatal_post_key`))}n.fill(0)}}#B(){for(let e of this.#x)e.fill(0);this.#x=[],this.#S=0}#V(e){this.#p||(this.#E=!0,this.#Z(!0),this.#t&&e.closeReason&&this.#Q({type:`channel.close`,...Pp,channelId:this.#t,reason:e.closeReason}),this.#$(e))}#H(e){let t=this.#e;if(this.#p||!this.#t||!t)return;let n=Gi(e,this.#W(t));if(n.kind===`error`)return;let r=Rp(n.payloadBytes);if(this.bufferedAmount+r>t.maxQueuedBytes-t.maxControlFrameBytes)return;this.#C+=r;let i={reservedBytes:r,active:!0};this.#w.add(i);let a=()=>i.active?(i.active=!1,this.#w.delete(i),this.#C-=i.reservedBytes,!0):!1;return{release:()=>void a(),send:e=>a()?this.#U(e):!1}}#U(e){let t=this.#e;if(this.#p||!this.#t||!t)return!1;let n=da(e,this.#W(t));if(n.kind===`error`)return!1;for(let e of n.payloads){let t=Uint8Array.from(e),n=t.byteLength+Ip;this.#s.push({bytes:t,reservedBytes:n}),this.#c+=n}return this.#Z(),!0}#W(e){return{maxChunkBytes:e.maxDataChunkBytes,maxMessageBytes:Math.min(T,e.maxQueuedBytes-e.maxControlFrameBytes),peerSupportsChunking:this.#O.peerSupportsChunking}}#G(e){if(this.#p||!this.#n||e.channelId!==this.#t||e.sequence!==this.#i||!this.#e)return this.#$(G(`channel_rejected`));this.#i+=1;let t=Uint8Array.from(e.payload);if(this.#K()+t.byteLength>this.#e.maxQueuedBytes)return t.fill(0),this.#$(G(`slow_consumer`));this.#l.push(t),this.#u+=t.byteLength,this.#q(),this.#J()}#K(){return this.#u+this.#O.heldBytes}#q(){if(!this.#e||!this.#t)return;let e=this.#K();!this.#d&&e>=Math.floor(this.#e.maxQueuedBytes*.75)?(this.#d=!0,this.#Q({type:`flow.pause`,...Pp,channelId:this.#t})):this.#d&&e<=Math.floor(this.#e.maxQueuedBytes*.5)&&(this.#d=!1,this.#Q({type:`flow.resume`,...Pp,channelId:this.#t}))}#J(){this.#f||(this.#f=!0,this.options.timers.queueMicrotask(()=>{if(this.#f=!1,this.#p)return;let e=this.#l.shift();if(e){this.#u-=e.byteLength;let t=Uint8Array.from(e);e.fill(0);let n=this.#O.push(t);if(n.kind===`error`){this.#$(G(`transfer_limit`));return}n.kind===`done`&&this.#Y(n.message)}this.#q(),this.#l.length>0&&this.#J()}))}#Y(e){let t=this.#v;if(!t)return this.options.events.onData(e);let n=async()=>{if(!(this.#p||this.#v!==t))try{let n=await t.intercept(e);n.kind===`rpc`&&!this.#p&&this.options.events.onData(n.message)}catch{this.#V(Gp(`fatal_post_key`))}};this.#T=this.#T.then(n,n)}#X(e){let t=this.#e,n=e.byteLength+Ip;if(this.bufferedAmount+n>t.maxQueuedBytes-t.maxControlFrameBytes)throw e.fill(0),this.#$(G(`slow_consumer`)),Error(Up);this.#s.push({bytes:e,reservedBytes:n}),this.#c+=n,this.#Z()}#Z(e=!1){if(!(this.#p||this.#o||!this.#t||!this.#e)){for(this.#_&&this.options.timers.clearTimeout(this.#_),this.#_=null;this.#s.length>0;){let t=this.#s[0];if(!e&&this.options.socket.bufferedAmount+t.reservedBytes>this.#e.maxQueuedBytes){this.#_=this.options.timers.setTimeout(()=>this.#Z(),10);return}this.#s.shift(),this.#c-=t.reservedBytes;let n=this.#a;if(n>4294967295){t.bytes.fill(0),this.#$(G(`transfer_limit`));return}this.#a+=1,this.#Q({type:`data`,...Pp,channelId:this.#t,sequence:n,payload:t.bytes}),t.bytes.fill(0)}this.#M()}}#Q(e){if(this.#p||this.options.socket.readyState!==Fp)return;let t=Np(e);if(!t.ok||t.value.byteLength>(e.type===`data`?263168:262144))return this.#$(G(`protocol_invalid`));try{this.options.socket.send(t.value)}catch{this.#$(G(`network`))}finally{t.value.fill(0)}}#$(e){this.#p||(this.#m||(this.#m=!0,this.options.callbacks.onFailure(e)),this.options.events.onError(),this.#ee(4e3,e.kind))}#ee(e,t){if(this.#p)return;this.#p=!0,this.#g&&this.options.timers.clearTimeout(this.#g),this.#_&&this.options.timers.clearTimeout(this.#_),this.#g=null,this.#_=null,this.#h?.fill(0),this.#h=null,this.#B();for(let e of this.#s)e.bytes.fill(0);for(let e of this.#l)e.fill(0);let n=this.#v;this.#v=null,n?.dispose({incompleteReassembly:this.#O.incompleteMessage}),this.#O.reset(),this.#s=[],this.#l=[],this.#c=0;for(let e of this.#w)e.active=!1;this.#w.clear(),this.#C=0,this.#u=0,this.options.callbacks.onRole(null),e===1e3&&!this.#m&&this.options.callbacks.onSessionStatus(`closed`);try{this.options.socket.close(e===1e3?1e3:4e3,t.slice(0,64))}catch{}this.options.events.onClose(e,t)}},Jp=`c2n`,Yp=Object.freeze({kind:`rejected`}),Xp=Object.freeze({kind:`claimed`}),Zp={version_mismatch:`Q1`,suite_mismatch:`Q1`,sequence_mismatch:`Q2`,authentication_failed:`Q3`,malformed_envelope:`Q4`,reserved_inner_type:`Q5`,malformed_record:`Q5`,receive_terminated:`Q2`};function Qp(e){let t=e.host,n=()=>t.now(),r=e.onDiagnostic??(()=>void 0),i=oa(t.limits),a=new xp({secrets:e.secrets,suite:e.suite,sessionBindingHash:e.sessionBindingHash,sendDirection:Jp,plaintextCeiling:i.establishable?i.plaintextCeiling:0,...e.testOnlySyntheticSendState===void 0?{}:{testOnlySyntheticSendState:e.testOnlySyntheticSendState},...e.testOnlySyntheticReceiveState===void 0?{}:{testOnlySyntheticReceiveState:e.testOnlySyntheticReceiveState}}),o=new ef({sessionBindingHash:e.sessionBindingHash,sendDirection:Jp}),s=!1,c,l,u=!1,d=!0,f=new Set;function p(e){e.settled||(e.settled=!0,e.plaintext.fill(0),e.reservation.release(),f.delete(e))}function m(){a.erase();for(let e of f)p(e);c!==void 0&&t.clearTimeout(c),c=void 0,l?.(),l=void 0,u=!0}let h=Promise.resolve();function g(e){let t=h.then(e,e);return h=t.then(()=>void 0,()=>void 0),t}async function _(e,n,r,i){let o=r,s;try{if(a.erased)return{kind:`unavailable`};s=await a.protect({innerType:e,body:n,admit:e=>{if(o!==void 0){if(i!==e)throw RangeError(`Relay E2EE reservation does not match the protected record.`);return!0}return o=t.admit(e),o!==void 0},transmit:e=>{let t=o;return o=void 0,t!==void 0&&t.send(e)?{kind:`sent`}:{kind:`failed`,delivery:`none`}}})}finally{o?.release()}return s.kind===`protected`?{kind:`protected`,epoch:s.epoch,counter:s.counter,epochCompleted:s.epochCompleted}:s.kind===`close_required`?{kind:`close_required`}:s.kind===`send_failed`?s.sendPathUsable?{kind:`unavailable`}:{kind:`unusable`}:s.kind===`exhausted`?{kind:`unusable`}:s.kind===`unavailable`?{kind:`unavailable`}:{kind:`refused`}}async function v(e,n){if(s)return Yp;s=!0;let i=o.noteFatal();return await g(async()=>{!a.sendPathUsable||!o.mayProtectTerminalError||(await _(3,Zd(n))).kind===`protected`&&o.noteTerminalErrorTransmitted()}),m(),r({phase:`post_key`,row:e,verdict:i}),t.close(Gp(`fatal_post_key`)),Yp}function y(e){if(s)return;s=!0;let n=o.noteFatal();m(),r({phase:`post_key`,row:`Q10`,verdict:n}),t.close(Gp(e))}function b(){let e=a.sendState;if(e.epoch!==void 0&&e.counter!==void 0)return{epoch:e.epoch,counter:e.counter}}function x(){let e=a.receiveState;if(e.epoch!==void 0&&e.counter!==void 0)return{epoch:e.epoch,counter:e.counter}}function S(){o.noteChannelEnded({at:n()}),w()}function C(){c!==void 0&&t.clearTimeout(c),c=void 0;let e=o.waitDeadlineAt;e!==void 0&&(c=t.setTimeout(()=>{c=void 0,!(s||!o.waitExpired(n()))&&(o.noteWaitExpired(n()),w())},Math.max(1,e-n())))}function w(){if(u||!o.outerCloseAllowed(n()))return;u=!0,c!==void 0&&t.clearTimeout(c),c=void 0;let e=()=>{s||(s=!0,m(),t.close())};if(o.shouldLinger(n())){let r=Math.max(1,(o.lingerDeadlineAt??n())-n());c=t.setTimeout(()=>{c=void 0,e()},r),l?.(),l=void 0;return}e()}async function T(e){return g(async()=>{let t=e(b());if(t.kind===`none`)return`none`;if(t.kind===`degenerate`)return S(),`ended`;let r=t.record,i=await _(r.innerType,r.body);return i.kind===`refused`?`refused`:i.kind===`protected`?(o.noteTransmitted({record:r,epoch:i.epoch,counter:i.counter,epochCompleted:i.epochCompleted,at:n()}),`transmitted`):(S(),`ended`)})}async function E(){for(;o.pendingRecord!==void 0;){let e=await T(e=>{if(s||o.pendingRecord===void 0)return{kind:`none`};let t=o.ackExpectedRecv??x();return t===void 0||e===void 0?{kind:`degenerate`}:{kind:`send`,record:o.buildCloseAck({sendPosition:e,expectedRecv:t})}});if(e===`refused`||e===`none`)break;if(e===`ended`)return}s||(o.exchangeComplete?w():C())}async function D(){if(s||o.closePhaseActive)return`opened`;d=!1;let e=new Promise(e=>{l=e}),t=await T(e=>{if(s||o.closePhaseActive)return{kind:`none`};let t=x();return e===void 0||t===void 0?{kind:`degenerate`}:{kind:`send`,record:o.buildClose({sendPosition:e,expectedRecv:t})}});return t===`refused`?(!s&&!o.closePhaseActive&&(d=!0),`refused`):(t===`transmitted`&&C(),u||await e,`opened`)}async function O(e,n,i){let a=b();if(a===void 0)return S(),Xp;let c=o.receive({innerType:e,body:n,envelope:{epoch:i.epoch,counter:i.counter},epochCompleted:i.epochCompleted,currentNextSend:a,at:i.at});switch(c.kind){case`application`:return{kind:`rpc`,message:n};case`close`:case`close_ack`:return await E(),Xp;case`terminal_error`:return s||(s=!0,m(),r({phase:`post_key`,row:`local`,verdict:o.verdict}),t.close(Gp(`fatal_post_key`))),Yp;case`fatal`:return v(c.row,1)}}async function k(e){if(s)return Yp;if(Xi(e).kind!==`envelope`)return v(`Q6`,1);let t=a.unprotect(e);return t.kind===`fatal`?v(Zp[t.reason],1):O(t.innerType,t.body,{epoch:t.epoch,counter:t.counter,epochCompleted:t.epochCompleted,at:n()})}function A(n){if(s||!d||!o.mayProtectApplicationRecord||n.byteLength>i.plaintextCeiling)return!1;let r=t.admit(32+n.byteLength);if(r===void 0)return!1;if(s||!d||!o.mayProtectApplicationRecord)return r.release(),!1;let a;try{a=Uint8Array.from(n)}catch(e){throw r.release(),e}try{e.testOnlyOnOwnedApplicationPlaintext?.(a)}catch(e){throw a.fill(0),r.release(),e}let c={plaintext:a,reservation:r,settled:!1};return f.add(c),g(async()=>{try{if(s)return;let e=await _(1,c.plaintext,c.reservation,32+c.plaintext.byteLength);if(e.kind===`protected`)return;if(e.kind===`close_required`){D().catch(()=>y(`fatal_post_key`));return}e.kind===`unusable`&&y(`send_path_unusable`)}catch{y(`fatal_post_key`)}finally{p(c)}}),!0}return{intercept:k,submit:A,beginClose:D,dispose:(e={})=>{o.noteChannelEnded({at:n(),...e.incompleteReassembly===void 0?{}:{incompleteReassembly:e.incompleteReassembly}}),s=!0,m()},verdict:()=>o.verdict,sendPosition:b,expectedRecv:x}}var $p=`Noise_IK_25519_ChaChaPoly_SHA256`,em=`Noise_NX_25519_ChaChaPoly_SHA256`,tm=`ryco.relay-e2ee.exporter.v1`;function nm(e){return e===`IK`?$p:em}var rm=Ja.outputLen,im=32,am=32,om=16,sm=65535,cm=18446744073709551615n,lm=wa(tm),um=new Uint8Array,dm=class extends Error{code=`relay_e2ee_noise_handshake_failed`;reason;constructor(e){super(`Relay E2EE Noise handshake failed.`),this.name=`E2eeNoiseHandshakeError`,this.reason=e}};function K(e){throw new dm(e)}function fm(e,t){(!(e instanceof Uint8Array)||e.byteLength!==t)&&K(`invalid_key_material`)}function pm(e,t){return fm(e,t),Uint8Array.from(e)}function mm(...e){for(let t of e)if(t instanceof Uint8Array)try{ba(t)}catch{}}function hm(e,t){let n=qf(Ja,t,e),r,i;try{r=Xf(Ja,n,void 0,2*rm),i=r.slice(0,rm);let e=r.slice(rm);return[i,e]}catch(e){throw mm(i),e}finally{mm(n,r)}}function gm(e){(typeof e!=`bigint`||e<0n)&&K(`invalid_options`),e>=cm&&K(`nonce_exhausted`);let t=new Uint8Array(12),n=e;for(let e=4;e<12;e+=1)t[e]=Number(n&255n),n>>=8n;return t}function _m(e){return(!(e instanceof Uint8Array)||e.byteLength!==rm)&&K(`invalid_key_material`),Xf(Ja,e,lm,32)}var vm=class{#e=void 0;#t=0n;initializeKey(e){e.byteLength!==am&&K(`invalid_key_material`),mm(this.#e),this.#e=e,this.#t=0n}get hasKey(){return this.#e!==void 0}encryptWithAd(e,t){let n=this.#e;if(n===void 0)return t;let r=gm(this.#t),i=Kf(n,r,e).encrypt(t);return ba(r),this.#t+=1n,i}decryptWithAd(e,t){let n=this.#e;if(n===void 0)return t;let r=gm(this.#t),i=Kf(n,r,e).decrypt(t);return ba(r),this.#t+=1n,i}erase(){mm(this.#e),this.#e=void 0,this.#t=0n}},ym=class{#e;#t;#n=new vm;constructor(e){let t=wa(e),n=new Uint8Array(rm);t.byteLength<=rm?n.set(t):n.set(Ja(t)),this.#t=n,this.#e=Uint8Array.from(n)}get hasKey(){return this.#n.hasKey}get handshakeHash(){return Uint8Array.from(this.#t)}mixKey(e){let[t,n]=hm(this.#e,e);try{mm(this.#e),this.#e=t,this.#n.initializeKey(n)}catch(e){throw mm(n),e}}mixHash(e){let t=Ja(to(this.#t,e));mm(this.#t),this.#t=t}encryptAndHash(e){let t=this.#n.encryptWithAd(this.#t,e);return this.mixHash(t),t}decryptAndHash(e){let t=this.#n.decryptWithAd(this.#t,e);return this.mixHash(e),t}splitAndExport(){let[e,t]=hm(this.#e,um),n;try{return n=_m(this.#e),this.erase(),{epochSecretC2N:e,epochSecretN2C:t,exporterSecret:n}}catch(r){throw mm(e,t,n),r}}erase(){mm(this.#e,this.#t),this.#n.erase()}},bm={IK:[[`e`,`es`,`s`,`ss`],[`e`,`ee`,`se`]],NX:[[`e`],[`e`,`ee`,`s`,`es`]]},xm=class{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=0;#u;constructor(e){let t=e.pattern;t!==`IK`&&t!==`NX`&&K(`invalid_options`);let n=e.role;n!==`initiator`&&n!==`responder`&&K(`invalid_options`),e.prologue instanceof Uint8Array||K(`invalid_options`);let r=t===`IK`||n===`responder`,i=t===`IK`&&n===`initiator`;r!==(e.staticSecretKey!==void 0)&&K(`invalid_options`),i!==(e.remoteStaticPublicKey!==void 0)&&K(`invalid_options`);let a=e.staticSecretKey;a!==void 0&&fm(a,im);let o=e.testOnlyEphemeralSecretKey;o!==void 0&&fm(o,im);let s=e.remoteStaticPublicKey===void 0?void 0:pm(e.remoteStaticPublicKey,im);this.#e=n,this.#t=bm[t],this.#a=s;let c=new ym(nm(t));c.mixHash(e.prologue);let l=a===void 0?void 0:Va.getPublicKey(a);t===`IK`&&c.mixHash(n===`initiator`?s:l),this.#n=c,a!==void 0&&(this.#r={secretKey:Uint8Array.from(a),publicKey:l}),this.#c=o,this.#u=n===`initiator`?`awaiting_write`:`awaiting_read`}get status(){return this.#u}get remoteStaticPublicKey(){return this.#a===void 0?void 0:Uint8Array.from(this.#a)}get remoteEphemeralPublicKey(){return this.#o===void 0?void 0:Uint8Array.from(this.#o)}get localEphemeralPublicKey(){return this.#s===void 0?void 0:Uint8Array.from(this.#s)}get testOnlyHandshakeHash(){let e=this.#n.handshakeHash;if(!e.every(e=>e===0))return e}writeMessage(e){this.#d(`awaiting_write`),e instanceof Uint8Array||K(`invalid_options`);try{let t=[];for(let e of this.#t[this.#l])switch(e){case`e`:{let e=this.#p();this.#i=e,this.#e===`initiator`&&(this.#s=Uint8Array.from(e.publicKey)),t.push(e.publicKey),this.#n.mixHash(e.publicKey);break}case`s`:this.#r===void 0&&K(`out_of_sequence`),t.push(this.#n.encryptAndHash(this.#r.publicKey));break;default:this.#m(e)}t.push(this.#n.encryptAndHash(e));let n=to(...t);return n.byteLength>sm&&K(`message_too_large`),this.#f(),n}catch(e){throw this.destroy(),e}}readMessage(e){this.#d(`awaiting_read`),e instanceof Uint8Array||K(`invalid_options`);try{e.byteLength>sm&&K(`message_too_large`);let t=0,n=n=>{t+n>e.byteLength&&K(`malformed_message`);let r=e.subarray(t,t+n);return t+=n,r};for(let e of this.#t[this.#l])switch(e){case`e`:{let e=Uint8Array.from(n(im));this.#o=e,this.#n.mixHash(e);break}case`s`:{let e=n(this.#n.hasKey?im+om:im),t=this.#n.decryptAndHash(e);t.byteLength!==im&&K(`malformed_message`),this.#a=t;break}default:this.#m(e)}let r=this.#n.decryptAndHash(e.subarray(t));return this.#f(),r}catch(e){throw this.destroy(),e}}split(){this.#d(`awaiting_split`);let e;try{return e=this.#n.splitAndExport(),this.#h(),this.#u=`complete`,e}catch(t){throw e!==void 0&&mm(e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret),this.destroy(),t}}destroy(){this.#u!==`complete`&&this.#u!==`destroyed`&&(this.#n.erase(),this.#h(),this.#u=`destroyed`)}#d(e){(this.#u===`complete`||this.#u===`destroyed`)&&K(`handshake_consumed`),this.#u!==e&&K(`out_of_sequence`)}#f(){if(this.#l+=1,this.#l>=this.#t.length){this.#u=`awaiting_split`;return}this.#u=this.#u===`awaiting_write`?`awaiting_read`:`awaiting_write`}#p(){let e=this.#c;if(e!==void 0){let t=Va.getPublicKey(e);return this.#c=void 0,{secretKey:e,publicKey:t}}let t=Va.keygen();return{secretKey:t.secretKey,publicKey:t.publicKey}}#m(e){let t=this.#e===`initiator`,n,r;switch(e){case`ee`:n=this.#i,r=this.#o;break;case`es`:n=t?this.#i:this.#r,r=t?this.#a:this.#o;break;case`se`:n=t?this.#r:this.#i,r=t?this.#o:this.#a;break;case`ss`:n=this.#r,r=this.#a}(n===void 0||r===void 0)&&K(`out_of_sequence`);let i=Va.getSharedSecret(n.secretKey,r);try{this.#n.mixKey(i)}finally{mm(i)}}#h(){mm(this.#i?.secretKey,this.#r?.secretKey,this.#c),this.#i=void 0,this.#r=void 0,this.#c=void 0}},Sm=`ryco.relay-e2ee.confirmation.v1`,Cm=`ryco.relay-e2ee.session.v1`;function wm(e,t){return!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:xf(e,t)}function Tm(e){return Uint8Array.from(Oa(e,ja))}function Em(e){return typeof e==`string`}function Dm(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function Om(e,t){return e instanceof Uint8Array?t===void 0||e.byteLength===t:!1}function km(e){return Uint8Array.from(e)}function Am(e){if((!Array.isArray(e.advertisedSuiteRegistry)||e.advertisedSuiteRegistry.length===0||e.advertisedSuiteRegistry.length>8||!Array.isArray(e.localSuitePreference)||e.localSuitePreference.length===0)&&B(),!Number.isSafeInteger(e.advertisedVersionMin)||!Number.isSafeInteger(e.advertisedVersionMax)||e.advertisedVersionMin>e.advertisedVersionMax||e.advertisedVersionMin>1||1>e.advertisedVersionMax)return{kind:`unusable`,reason:`protocol_version_out_of_range`};let t=La(e.tier);if(!e.advertisedAdmittedPatterns.includes(t))return{kind:`unusable`,reason:`pattern_not_admitted`};let n=e.localSuitePreference.find(t=>ia(t)&&e.advertisedSuiteRegistry.includes(t));return n===void 0||!ia(n)?{kind:`unusable`,reason:`empty_suite_intersection`}:{kind:`usable`,selectedSuite:n}}var jm=5,Mm=3;function Nm(e){return e===`native`||e===`web`}function Pm(e){Nm(e.tier)||B(),ia(e.selectedSuite)||B(),(!Array.isArray(e.offeredSuites)||e.offeredSuites.length===0||e.offeredSuites.length>8||!e.offeredSuites.every(Dm)||!e.offeredSuites.includes(e.selectedSuite))&&B(),Om(e.clientNonce,32)||B(),Om(e.contextCommitment,32)||B(),(!Om(e.noiseMessage1)||e.noiseMessage1.byteLength===0)&&B();let t=Tm([1,e.tier,e.selectedSuite,[...e.offeredSuites],km(e.clientNonce),km(e.contextCommitment),km(e.noiseMessage1)]);return _a(1,t)}function Fm(e){(!Om(e.clientPrekeyTranscript)||e.clientPrekeyTranscript.length===0)&&B();let t=Sa(e.clientPrekeySignature);return Tm([km(e.clientPrekeyTranscript),t,no(e.accountId),la(e.intendedCapability),zi(e.intendedRole)])}var Im=new Uint8Array;function Lm(e){ia(e.acceptedSuite)||B(),(!Em(e.nodePrekeyId)||e.nodePrekeyId.length===0)&&B(),Om(e.contextCommitment,32)||B(),(!Om(e.noiseMessage2)||e.noiseMessage2.byteLength===0)&&B()}function Rm(e){Lm(e);let t=Tm([e.acceptedSuite,e.nodePrekeyId,km(e.contextCommitment),km(e.noiseMessage2)]);return _a(2,t)}function zm(e){let t=fa(e);if(t.kind===`error`||t.value.recordType!==2)return{kind:`error`,reason:`bad_record`};let n=ta(t.value.body);if(n.kind===`error`)return{kind:`error`,reason:`malformed_body`};let r=n.value;if(!Array.isArray(r)||r.length!==jm)return{kind:`error`,reason:`malformed_body`};let[i,a,o,s,c]=r;return!Dm(i)||!Em(a)||a.length===0||!Om(o,32)||!Om(s)||s.byteLength===0||!Om(c,32)?{kind:`error`,reason:`malformed_body`}:{kind:`ok`,value:{acceptedSuite:i,nodePrekeyId:a,contextCommitment:o,noiseMessage2:s,serverConfirmation:c}}}function Bm(e){let t=ta(e);if(t.kind===`error`)return{kind:`error`,reason:`malformed_body`};let n=t.value;if(!Array.isArray(n)||n.length!==Mm)return{kind:`error`,reason:`malformed_body`};let[r,i,a]=n;return!Em(r)||!Em(i)||!Om(a,32)?{kind:`error`,reason:`malformed_body`}:{kind:`ok`,value:{channelOpenCapability:r,channelOpenEffectiveRole:i,nodeAgreementKeyFingerprint:a}}}function Vm(e){let t=ta(e);return(t.kind===`error`||!Array.isArray(t.value))&&B(),t.value}function Hm(e){return(!Om(e.clientHelloWireBytes)||e.clientHelloWireBytes.byteLength===0||!Om(e.serverAcceptTbsWireBytes)||e.serverAcceptTbsWireBytes.byteLength===0)&&B(),Ja(Tm([Sm,km(e.clientHelloWireBytes),km(e.serverAcceptTbsWireBytes),Vm(e.contextBlock)]))}function Um(e,t){return(!Om(e)||!Om(t,32))&&B(),Ea(Ja,e,t)}function Wm(e){(!Om(e.clientHelloWireBytes)||e.clientHelloWireBytes.byteLength===0||!Om(e.serverAcceptWireBytes)||e.serverAcceptWireBytes.byteLength===0)&&B();let t=Ja(Tm([Cm,km(e.clientHelloWireBytes),km(e.serverAcceptWireBytes),Vm(e.contextBlock)]));return t.byteLength!==32&&B(),t}function Gm(e,t){return{kind:`fatal`,row:e,reason:t}}function Km(e){let t=Qi({hubOrigin:e.channel.hubOrigin,channelId:e.channel.channelId,relayProtocolMajor:e.channel.relayProtocolMajor,relayProtocolMinor:e.channel.relayProtocolMinor,e2eeVersion:1,suiteId:e.suite,nodeId:e.advertised.nodeId,nodeIdentityFingerprint:e.advertised.nodeIdentityFingerprint,clientIntendedCapability:e.intendedCapability,clientIntendedRole:e.intendedRole,channelOpenCapability:e.channel.channelOpenCapability,channelOpenEffectiveRole:e.channel.channelOpenEffectiveRole,nodeAgreementFingerprint:Wa(`agreement`,e.advertised.agreementPublicKey),nodeContinuityChainTranscripts:e.advertised.continuityChainTranscripts,nodeContinuityId:e.advertised.continuityId,client:e.client});return{block:t,commitment:Pi(t)}}function qm(e,t,n){return t===e.channelOpenCapability&&n===e.channelOpenEffectiveRole}function Jm(e){return e+qi}var Ym=class{#e;#t;#n=`created`;#r;#i;#a;#o;#s;constructor(e){if(!ia(e.selectedSuite))throw TypeError(`Relay E2EE client handshake requires a registered suite selection.`);this.#e=e,this.#t=e.credentials.tier}get tier(){return this.#t}get state(){return this.#n}get deadlineAt(){return this.#s}deadlineExpired(e){return this.#s!==void 0&&e>this.#s}createHello(e){if(this.#n!==`created`)return this.#u(Gm(`P4`,`handshake_spent`));let t;try{return this.#c(e,e=>{t=e})}catch(e){throw t?.destroy(),this.destroy(),e}}#c(e,t){let n=this.#e,r=n.credentials;if(!qm(n.channel,n.intendedCapability,n.intendedRole))return this.#u(Gm(`P13`,`context_mismatch`));let i=r.tier===`native`?Km({channel:n.channel,advertised:n.advertised,suite:n.selectedSuite,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole,client:{tier:`native`,accountId:r.accountId,identityFingerprint:Wa(`client-identity`,r.identityPublicKey),agreementFingerprint:Wa(`agreement`,r.agreementPublicKey)}}):Km({channel:n.channel,advertised:n.advertised,suite:n.selectedSuite,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole,client:{tier:`web`}}),a=$i({hubOrigin:n.channel.hubOrigin,channelId:n.channel.channelId,relayProtocolMajor:n.channel.relayProtocolMajor,relayProtocolMinor:n.channel.relayProtocolMinor,e2eeVersion:1,suiteId:n.selectedSuite,nodeId:n.advertised.nodeId,contextCommitment:i.commitment}),o;if(r.tier===`native`){if(!wm(Va.getPublicKey(r.agreementSecretKey),r.agreementPublicKey))throw TypeError(`Relay E2EE client agreement secret key does not match its certificate key.`);o=Fm({clientPrekeyTranscript:r.prekeyTranscript,clientPrekeySignature:r.prekeySignature,accountId:r.accountId,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole})}else o=Im;let s=new xm({pattern:La(this.#t),role:`initiator`,prologue:a,staticSecretKey:r.tier===`native`?r.agreementSecretKey:void 0,remoteStaticPublicKey:r.tier===`native`?n.advertised.agreementPublicKey:void 0,testOnlyEphemeralSecretKey:n.testOnlyEphemeralSecretKey});t(s);let c;try{c=s.writeMessage(o)}catch{return s.destroy(),this.#u(Gm(`P10`,`noise`))}let l=Pm({tier:this.#t,selectedSuite:n.selectedSuite,offeredSuites:n.offeredSuites,clientNonce:n.testOnlyClientNonce??ao(32),contextCommitment:i.commitment,noiseMessage1:c});return this.#r=s,this.#i=l,this.#a=i.block,this.#o=i.commitment,this.#s=Jm(e),this.#n=`hello_sent`,{kind:`hello`,record:l,contextBlock:i.block,contextCommitment:i.commitment,prologue:a,deadlineAt:this.#s}}receiveServerAccept(e,t){if(this.#n!==`hello_sent`)return this.#u(Gm(`P16`,`handshake_spent`));let n=this.#r,r=this.#i,i=this.#a,a=this.#o;if(n===void 0||r===void 0||i===void 0||a===void 0)return this.#u(Gm(`P16`,`handshake_spent`));if(this.deadlineExpired(t))return this.#u(Gm(`P20`,`handshake_deadline`));let o;try{return this.#l({payload:e,noise:n,helloRecord:r,contextBlock:i,contextCommitment:a,holdSecrets:e=>{o=e}})}catch(e){throw o!==void 0&&pp(o),this.destroy(),e}}#l(e){let{payload:t,noise:n,helloRecord:r,contextBlock:i,contextCommitment:a}=e,o=zm(t);if(o.kind===`error`)return this.#u(o.reason===`bad_record`?Gm(`P3`,`record_bounds`):Gm(`P16`,`accept_mismatch`));let s=o.value;if(s.acceptedSuite!==this.#e.selectedSuite||s.nodePrekeyId!==this.#e.advertised.prekeyId)return this.#u(Gm(`P16`,`accept_mismatch`));if(!wm(s.contextCommitment,a))return this.#u(Gm(`P13`,`context_mismatch`));let c;try{c=n.readMessage(s.noiseMessage2)}catch{return this.#u(Gm(`P10`,`noise`))}let l=n.remoteStaticPublicKey;if(l===void 0||!wm(l,this.#e.advertised.agreementPublicKey))return this.#u(Gm(`P16`,`accept_mismatch`));let u=Bm(c);if(u.kind===`error`)return this.#u(Gm(`P16`,`accept_mismatch`));let d=u.value;if(d.channelOpenCapability!==this.#e.channel.channelOpenCapability||d.channelOpenEffectiveRole!==this.#e.channel.channelOpenEffectiveRole||!wm(d.nodeAgreementKeyFingerprint,Wa(`agreement`,this.#e.advertised.agreementPublicKey)))return this.#u(Gm(`P13`,`context_mismatch`));let f;try{f=fp(n)}catch{return this.#u(Gm(`P10`,`noise`))}e.holdSecrets(f);let p=Rm({acceptedSuite:this.#e.selectedSuite,nodePrekeyId:s.nodePrekeyId,contextCommitment:s.contextCommitment,noiseMessage2:s.noiseMessage2}),m=Hm({clientHelloWireBytes:r,serverAcceptTbsWireBytes:p,contextBlock:i});if(!wm(Um(f.serverConfirmationKey,m),s.serverConfirmation))return pp(f),this.#u(Gm(`P16`,`confirmation_mismatch`));let h=Wm({clientHelloWireBytes:r,serverAcceptWireBytes:t,contextBlock:i}),g;if(this.#e.credentials.tier===`web`&&(g=n.localEphemeralPublicKey,g===void 0))throw TypeError(`Relay E2EE client handshake has no local ephemeral.`);return this.#n=`established`,this.#r=void 0,{kind:`established`,sessionBindingHash:h,secrets:f,suite:this.#e.selectedSuite,contextBlock:i,serverAcceptTbs:p,confirmationTranscript:m,...g===void 0?{}:{webEphemeralPublicKey:g}}}destroy(){this.#r?.destroy(),this.#r=void 0,this.#n!==`established`&&(this.#n=`failed`)}#u(e){return this.destroy(),e}};function q(e){return{kind:`invalid`,reason:e}}var Xm=new TextEncoder;function Zm(e){let t;try{t=Ri(e.connectedHubOrigin)}catch{return q(`connected_hub_origin_invalid`)}if(e.accountId!==void 0){let t=Xm.encode(e.accountId).byteLength;if(t===0||t>256)return q(`account_scope_invalid`)}let n=za(e.statement);if(n.kind===`error`)return q(n.failure);let r=n.value,i;try{i=na(r.transcript)}catch{return q(`identity_signature_invalid`)}if(!Za({algorithm:`ed25519`,publicKey:r.identityPublicKey,message:i,signature:r.signature}))return q(`identity_signature_invalid`);if(!Qa(Wa(`node-identity`,r.identityPublicKey),r.identityFingerprint))return q(`identity_fingerprint_mismatch`);if(!Qa(Wa(`agreement`,r.prekeyCertificate.agreementPublicKey),r.prekeyCertificate.agreementFingerprint))return q(`agreement_fingerprint_mismatch`);if(r.expiresAt<r.issuedAt)return q(`validity_interval_inverted`);if(r.expiresAt-r.issuedAt>6e5)return q(`validity_interval_too_long`);if(r.issuedAt>e.now+3e5)return q(`issued_at_in_future`);if(r.expiresAt<e.now-3e5)return q(`statement_expired`);if(r.hubOrigin!==t)return q(`hub_origin_mismatch`);let a=r.prekeyCertificate;if(a.expiresAt<=a.createdAt)return q(`prekey_lifetime_inverted`);if(a.expiresAt-a.createdAt>2592e6)return q(`prekey_lifetime_too_long`);if(e.now+3e5<a.createdAt)return q(`prekey_not_yet_valid`);if(a.expiresAt<e.now-3e5)return q(`prekey_expired`);if(!Ki({hubOrigin:r.hubOrigin,nodeId:r.nodeId,identityKeyId:r.identityKeyId,identityPublicKey:r.identityPublicKey,identityFingerprint:r.identityFingerprint,prekeyCertificate:a}))return q(`prekey_cross_signature_invalid`);if(e.pin!==void 0&&r.continuityId!==e.pin.continuityId)return{kind:`identity-event`,event:{reason:`pinned_continuity_id`},statement:r};let o=Bi({chain:r.continuityChain,hubOrigin:r.hubOrigin,continuityId:r.continuityId,identityPublicKey:r.identityPublicKey,...e.pin===void 0?{}:{pinnedIdentityFingerprint:e.pin.identityFingerprint}});if(o.kind===`error`)return e.pin===void 0||o.failure===`malformed_entry`?{kind:`invalid`,reason:`continuity_chain_invalid`,chainFailure:o.failure}:{kind:`identity-event`,event:{reason:`continuity_chain`,failure:o.failure},statement:r};if(e.acceptedPolicyGeneration!==void 0&&r.policyGeneration<e.acceptedPolicyGeneration)return q(`policy_generation_regressed`);let s=Am({tier:e.tier,localSuitePreference:e.localSuitePreference,advertisedSuiteRegistry:r.suiteRegistry,advertisedVersionMin:r.e2eeVersionMin,advertisedVersionMax:r.e2eeVersionMax,advertisedAdmittedPatterns:r.admittedPatterns});return s.kind===`unusable`?{kind:`unusable`,reason:s.reason,statement:r}:{kind:`verified`,statement:r,selectedSuite:s.selectedSuite,anchor:o.pinnedFingerprintUnchanged===void 0?`none`:o.pinnedFingerprintUnchanged?`pin-unchanged`:`pin-updated`}}var Qm=`ryco.relay-e2ee.web-sas.v1`,$m=`node`;function eh(e){return Uint8Array.from(Oa(e,ja))}function th(e){let t=Ka(e.nodeIdentityPublicKey),n=Ia(e.webEphemeralPublicKey);return eh([Qm,$m,ka,t,`web`,Ni,n])}function nh(e){(!(e.sessionBindingHash instanceof Uint8Array)||e.sessionBindingHash.byteLength!==32)&&B();let t=th(e),n=qf(Ja,t,e.sessionBindingHash),r=Xf(Ja,n,wa(Qm),5);return{input:t,prk:n,output:r,display:rh(r)}}function rh(e){(!(e instanceof Uint8Array)||e.byteLength!==5||e.byteLength*8!=Ra.chars*5||Ra.chars!==Ra.groups*Ra.charsPerGroup)&&B();let t=``,n=0,r=0;for(let i of e)for(n=n<<8|i,r+=8;r>=5;)r-=5,t+=ro[n>>r&31];let i=[];for(let e=0;e<t.length;e+=Ra.charsPerGroup)i.push(t.slice(e,e+Ra.charsPerGroup));return i.join(Ra.separator)}var J=Object.freeze({kind:`rejected`}),ih=Object.freeze({kind:`claimed`});function ah(e,t,n){return{nodeId:e.nodeId,nodeIdentityFingerprint:n!==void 0&&t===`pin-unchanged`?n.identityFingerprint:e.identityFingerprint,prekeyId:e.prekeyCertificate.prekeyId,agreementPublicKey:e.prekeyCertificate.agreementPublicKey,continuityChainTranscripts:e.continuityChain.map(e=>e.transcript),continuityId:n===void 0?e.continuityId:n.continuityId}}function oh(e){let t=e.host,n=e.attempt,r=()=>t.now(),i=n.onDiagnostic??(()=>void 0),a=`negotiating`,o=!1,s=!1,c,l,u,d,f,p,m,h,g,_;function v(){d!==void 0&&t.clearTimeout(d),f!==void 0&&t.clearTimeout(f),p!==void 0&&t.clearTimeout(p),m!==void 0&&t.clearTimeout(m),d=void 0,f=void 0,p=void 0,m=void 0;let e=h;h=void 0,e?.();let n=g;g=void 0,n?.()}function y(){let e=l;if(l=void 0,e!==void 0)try{Promise.resolve(n.nativeHandshake?.destroy(e)).catch(()=>void 0)}catch{}}function b(e){return a===`closed`?J:(a=`closed`,v(),c?.destroy(),c=void 0,y(),i({phase:`pre_key`,row:e}),t.close(Gp(`fatal_pre_key`)),J)}function x(){if(a===`negotiating`){if(n.pairingOnly)return b(`local`);a=`legacy`,v(),t.lockMode(`legacy`)}}function S(){return n.credentials.tier===`native`&&n.verifiedPin===void 0}function C(e){if(!oa(t.limits).establishable)return pp(e.secrets),b(`P14`);try{u=Qp({host:t,secrets:e.secrets,suite:e.suite,sessionBindingHash:e.sessionBindingHash})}catch{return b(`P14`)}return a=`e2ee`,v(),t.lockMode(`e2ee`),w(e.sessionBindingHash,e.webEphemeralPublicKey),ih}function w(e,t){if(n.credentials.tier!==`web`)return;let r=n.onWebVerificationCode;if(r===void 0)return;let i=_;if(t===void 0||i===void 0)return;let a;try{a=nh({nodeIdentityPublicKey:i,webEphemeralPublicKey:t,sessionBindingHash:e}).display}catch{return}r(a)}d=t.setTimeout(()=>{if(d=void 0,!(a!==`negotiating`||o)){if(n.selectionClass===`latched`||!n.legacyPermitted){b(`P19`);return}if(n.selectionClass===`unexpected`){n.onUnexpectedNode?.(`none`),b(`P22`);return}x()}},ea);function T(){m=t.setTimeout(()=>{m=void 0,!(a!==`negotiating`||!o)&&b(`P20`)},qi)}async function E(e){if(s)return b(`P4`);s=!0;let c=e===void 0?void 0:Zm({statement:e,connectedHubOrigin:n.hubOrigin,tier:n.credentials.tier,localSuitePreference:n.localSuitePreference,now:r(),...n.accountId===void 0?{}:{accountId:n.accountId},...n.verifiedPin===void 0?{}:{pin:n.verifiedPin},...n.acceptedPolicyGeneration===void 0?{}:{acceptedPolicyGeneration:n.acceptedPolicyGeneration}}),l;if(c!==void 0&&c.kind===`verified`){if(d!==void 0&&t.clearTimeout(d),d=void 0,l=r()+Zi,!await D(c,!0)||a!==`negotiating`||o)return a===`closed`?J:ih}else if(c!==void 0&&(!await D(c,!1)||a!==`negotiating`||o))return a===`closed`?J:ih;return c===void 0||c.kind!==`verified`?n.selectionClass===`latched`?b(`P15`):(i({phase:`pre_key`,row:`K3`}),ih):O(e,c.statement,c.anchor,c.selectedSuite,l??r()+3e3)}function D(e,r){let i=n.onStatement;if(i===void 0)return Promise.resolve(!0);let s,c=new Promise(e=>{s=e}),l=!1,u=()=>d(!1),d=e=>{l||(l=!0,f!==void 0&&t.clearTimeout(f),f=void 0,h===u&&(h=void 0),s(e))};h=u,r&&(f=t.setTimeout(()=>{f=void 0,a===`negotiating`&&!o&&b(`local`),d(!1)},Zi));let p;try{p=i(e)}catch{return b(`local`),d(!1),c}return Promise.resolve(p).then(()=>d(a===`negotiating`&&!o),()=>{a===`negotiating`&&b(`local`),d(!1)}),c}function O(e,t,r,i,s){if(a!==`negotiating`||o)return J;let c=n.credentials;return c.tier===`native`&&!(`agreementSecretKey`in c)?n.nativeHandshake===void 0?A(t,r,i,c,s):k(e,i,s):j(t,r,i,c)}function k(e,i,s){let c=n.nativeHandshake;if(c===void 0)return Promise.resolve(b(`local`));let u,f=new Promise(e=>{u=e}),m=!1,h=()=>_(J),_=e=>{m||(m=!0,p!==void 0&&t.clearTimeout(p),p=void 0,g===h&&(g=void 0),u(e))};g=h;let v=s-r();if(v<=0)return b(`local`),_(J),f;p=t.setTimeout(()=>{p=void 0,a===`negotiating`&&!o&&b(`local`),_(J)},v);let y;try{y=c.start({statement:e,channel:{hubOrigin:n.hubOrigin,channelId:t.channel.channelId,relayProtocolMajor:t.channel.relayProtocolMajor,relayProtocolMinor:t.channel.relayProtocolMinor,channelOpenCapability:t.channel.capability,channelOpenEffectiveRole:t.channel.effectiveRole},selectedSuite:i,offeredSuites:n.localSuitePreference,intendedCapability:t.channel.capability,intendedRole:t.channel.effectiveRole,now:r()})}catch{return b(`local`),_(J),f}return y.then(e=>{if(e.kind===`fatal`){a===`negotiating`&&b(e.result.row),_(J);return}if(m||a!==`negotiating`||o){Promise.resolve(c.destroy(e.handle)).catch(()=>void 0),_(J);return}let n=t.admit(e.result.record.byteLength);if(n===void 0||!n.send(e.result.record)){n?.release(),Promise.resolve(c.destroy(e.handle)).catch(()=>void 0),b(`local`),_(J);return}l=e.handle,o=!0,d!==void 0&&t.clearTimeout(d),d=void 0,T(),_(ih)},()=>{a===`negotiating`&&b(`local`),_(J)}),f}function A(e,i,s,c,l){let u=n.withNativeAgreementSecretKey;if(u===void 0)return Promise.resolve(b(`local`));let d,f=new Promise(e=>{d=e}),m=!1,h=()=>_(J),_=e=>{m||(m=!0,p!==void 0&&t.clearTimeout(p),p=void 0,g===h&&(g=void 0),d(e))};g=h;let v=l-r();if(v<=0)return b(`local`),_(J),f;p=t.setTimeout(()=>{p=void 0,a===`negotiating`&&!o&&b(`local`),_(J)},v);let y;try{y=u(t=>m||a!==`negotiating`||o?J:j(e,i,s,{...c,agreementSecretKey:t}))}catch{return b(`local`),_(J),f}return Promise.resolve(y).then(e=>{if(!m&&a===`negotiating`&&!o){b(`local`),_(J);return}_(e)},()=>{a===`negotiating`&&b(`local`),_(J)}),f}function j(e,i,s,l){if(a!==`negotiating`||o)return J;let u=new Ym({channel:{hubOrigin:n.hubOrigin,channelId:t.channel.channelId,relayProtocolMajor:t.channel.relayProtocolMajor,relayProtocolMinor:t.channel.relayProtocolMinor,channelOpenCapability:t.channel.capability,channelOpenEffectiveRole:t.channel.effectiveRole},advertised:ah(e,i,n.verifiedPin),selectedSuite:s,offeredSuites:n.localSuitePreference,credentials:l,intendedCapability:t.channel.capability,intendedRole:t.channel.effectiveRole}),f;try{f=u.createHello(r())}catch{return b(`local`)}if(f.kind===`fatal`)return c=void 0,u.destroy(),b(f.row);let p=t.admit(f.record.byteLength);return p===void 0||!p.send(f.record)?(p?.release(),u.destroy(),b(`local`)):(l.tier===`web`&&(_=e.identityPublicKey),c=u,o=!0,d!==void 0&&t.clearTimeout(d),d=void 0,T(),ih)}function M(e){let t=fa(e);return t.kind===`error`?b(`P3`):t.value.recordType===2?!o||c===void 0&&l===void 0?b(`P16`):P(e):t.value.recordType===3?b(o?`P17`:`P3`):b(`P3`)}function N(e){return e.kind===`fatal`?b(e.row):n.pairingOnly||S()?(pp(e.secrets),b(`P21`)):C({secrets:e.secrets,suite:e.suite,sessionBindingHash:e.sessionBindingHash,webEphemeralPublicKey:e.webEphemeralPublicKey})}function P(e){let t=l;if(t!==void 0){let i=n.nativeHandshake;return i===void 0?b(`local`):(l=void 0,i.finish(t,e,r()).then(e=>a===`negotiating`?N(e):(e.kind===`established`&&pp(e.secrets),J),()=>a===`negotiating`?b(`local`):J))}return N(c.receiveServerAccept(e,r()))}async function F(e){switch(Xi(e).kind){case`legacy-json`:{let t=aa(e);return t.kind===`ok`?E(t.value):t.reason===`malformed`?E(void 0):o||n.selectionClass===`latched`||!n.legacyPermitted?b(`P18`):n.selectionClass===`unexpected`?(n.onUnexpectedNode?.(`none`),b(`P22`)):x()??{kind:`rpc`,message:e}}case`negotiation`:return M(e);case`envelope`:return b(`P5`);case`other`:return b(`P6`)}}function I(e){switch(Xi(e).kind){case`legacy-json`:{let t=aa(e);return t.kind===`ok`||t.reason===`malformed`?(i({phase:`pre_key`,row:`K20`}),ih):{kind:`rpc`,message:e}}case`envelope`:return b(`P5`);case`negotiation`:return b(`P24`);case`other`:return b(`P6`)}}async function L(e){switch(a){case`negotiating`:return F(e);case`legacy`:return I(e);case`e2ee`:return u===void 0?J:u.intercept(e);case`closed`:return J}}return{intercept:L,submit:e=>u!==void 0&&u.submit(e),beginClose:async()=>u===void 0?(a=`closed`,v(),c?.destroy(),c=void 0,y(),t.close(),`opened`):u.beginClose(),dispose:(e={})=>{a=`closed`,v(),c?.destroy(),c=void 0,y(),u?.dispose(e)},mode:()=>a,abort:()=>{a===`negotiating`&&b(`local`)}}}var sh=new Set([Ge.subscribeShell,Ge.subscribeThread,Ge.subscribeThreadWindow,Tn.subscribeServerConfig,Tn.subscribeServerLifecycle,Tn.subscribeTerminalEvents,Tn.subscribeVcsStatus]),ch=new Set([...sh,Tn.subscribeAuthAccess]);function lh(e,t){return Li(e.effectiveRole,t.tag,e.directoryStatus===`ready`)?e.transportStatus===`online`&&e.browserStatus===`current`&&e.sessionStatus===`ready`||t.stream&&(e.browserStatus===`current`||e.browserStatus===`synchronizing`)&&(e.sessionStatus===`synchronizing`||e.sessionStatus===`replaying`||e.sessionStatus===`delivery-unknown`||e.sessionStatus===`stale`||e.sessionStatus===`closed`)&&sh.has(t.tag):!1}function uh(e){return lh(Xa.getState(),e)}function dh(e){switch(e.code){case`node_offline`:return{kind:`offline`,retryable:!0,...e.retryAfterMs===void 0?{}:{retryAfterMs:e.retryAfterMs}};case`server_draining`:return{kind:`draining`,retryable:!0,...e.retryAfterMs===void 0?{}:{retryAfterMs:e.retryAfterMs}};case`rate_limited`:return{kind:`rate-limited`,retryable:!0,...e.retryAfterMs===void 0?{}:{retryAfterMs:e.retryAfterMs}};case`unsupported_version`:return{kind:`incompatible`,retryable:!1};case`forbidden`:case`authorization_failed`:return{kind:`authorization-removed`,retryable:!1};case`revoked`:return{kind:`revoked`,retryable:!1};default:return{kind:`network`,retryable:!0}}}function fh(){return{nodeId:()=>Xa.getState().selectedNode?.id??null,generation:()=>Xa.getState().generation,isAuthenticated:()=>Xa.getState().accountStatus===`authenticated`,isCurrent:e=>Xa.getState().generation===e,authorizeRequest:uh,shouldReconnect:e=>{let t=Xa.getState();return e===t.generation&&t.accountStatus===`authenticated`&&t.selectedNode!==null&&(t.browserStatus===`current`||t.browserStatus===`synchronizing`)&&t.transportStatus!==`terminal-failure`},transportStatus:(e,t)=>Ga.transportStatus(e,t),sessionStatus:(e,t)=>Ga.sessionStatus(e,t),role:(e,t)=>Ga.role(e,t),failure:(e,t)=>Ga.failure(e,t),markDeliveryUnknown:e=>Ga.markDeliveryUnknown(e),connectionClosed:e=>Ga.connectionClosed(e),connectionRecovered:e=>{let t=Xa.getState();t.generation===e&&t.accountStatus===`authenticated`&&t.directoryStatus===`ready`&&t.browserStatus===`current`&&t.selectedNode!==null&&t.transportStatus!==`terminal-failure`&&Ha().timers.queueMicrotask(()=>{let n=Xa.getState();n.generation===e&&n.selectedNode?.id===t.selectedNode?.id&&Ga.retrySelectedNode()})}}}var ph=class{#e;#t=new Ad;#n=new Map;#r=null;#i;#a=null;#o=0;#s=null;#c=null;#l=!1;constructor(e=fh()){this.#e=e}async nextUrl(){let e=this.#e.nodeId(),t=this.#e.generation();if(!e||t===null||!this.#e.isAuthenticated())throw Error(`No authorized hosted node is selected.`);this.#a=t,this.#e.transportStatus(t,`requesting-ticket`),this.#r=null;try{let n=await this.#e.prepareSocketContext?.();if(!this.#e.isCurrent(t))throw Error(`Hosted node selection changed.`);let r=await qa().issueRelayTicket(e);if(!this.#e.isCurrent(t))throw Error(`Hosted node selection changed.`);return this.#r={ticket:r.ticket,expiresAt:r.expiresAt,generation:t,preparedSocketContext:n,used:!1},this.#e.relayUrl?.()??Ha().relayUrl()}catch(e){if(e instanceof ya&&e.status===401)Ga.expireSession();else if(e instanceof ya){let n=dh(e);this.#i=n.retryAfterMs,this.#e.failure(t,n)}throw e}}createSocket(e){let t=this.#r;if(this.#r=null,!t||t.used||t.expiresAt<=Ha().timers.now())throw Error(`A fresh relay ticket is required for every connection attempt.`);t.used=!0;let n=t.generation,r=t.ticket,i=t.expiresAt,a=this.#o+1;this.#o=a,this.#s=a;let o=()=>this.#s===a,s={onTransportStatus:e=>{o()&&(this.#e.transportStatus(n,e),e===`online`&&this.#l&&(this.#l=!1,this.#e.connectionRecovered?.(n)))},onSessionStatus:e=>{o()&&this.#e.sessionStatus(n,e)},onRole:e=>{o()&&this.#e.role(n,e)},onFailure:e=>{o()&&(this.#i=e.retryAfterMs,this.#t.closed(),this.#n.size>0&&(this.#e.markDeliveryUnknown(n),this.#n.clear()),this.#e.failure(n,e))}};this.#a=n;try{let n=this.#e.createRelaySocket?this.#e.createRelaySocket({url:e,ticket:r,ticketExpiresAt:i,callbacks:s,preparedSocketContext:t.preparedSocketContext}):Ha().createRelaySocket({url:e,ticket:r,ticketExpiresAt:i,callbacks:s});return o()&&(this.#c=n),n}catch(e){throw o()&&(this.#s=null,this.#c=null,this.#a===n&&(this.#a=null)),e}}lifecycleHandlers(){return{webSocketConstructor:e=>this.createSocket(e),isSocketCurrent:e=>e===this.#c,preserveSocketPath:!0,retryTransientErrors:!1,reconnectMaxRetries:1e6,shouldReconnect:()=>this.#a!==null&&this.#e.shouldReconnect(this.#a),authorizeRequest:e=>this.#e.authorizeRequest(e),getReconnectDelayMs:()=>{let e=this.#t.nextDelay(this.#i);return this.#i=void 0,e},onOpen:()=>this.#t.opened(),onClose:(e,t)=>{if(t.intentional)return;let n=this.#a;n!==null&&(this.#t.closed(),this.#l=!0,this.#e.connectionClosed(n))},onRequestStart:e=>{e.stream&&ch.has(e.tag)||this.#n.set(e.id,e.stream?`exit`:`first-chunk`)},onRequestChunk:e=>{this.#n.get(e.id)===`first-chunk`&&this.#n.delete(e.id)},onRequestExit:e=>this.#n.delete(e.id),onRequestInterrupt:e=>this.#n.delete(e.id)}}hasPendingRequests(){return this.#n.size>0}reset(){this.#r=null,this.#n.clear(),this.#i=void 0,this.#a=null,this.#s=null,this.#c=null,this.#l=!1,this.#o=0,this.#t.reset()}},mh=null;function hh(){return mh??=new ph,mh}function gh(){return mh?.hasPendingRequests()??!1}function _h(){mh?.reset(),mh=null}function vh(e){return e===`platform`||e===`cross-platform`?e:void 0}function yh(e){return e.filter(e=>Ca.has(e))}function bh(e){if(!(e instanceof PublicKeyCredential))throw Error(`Passkey ceremony was cancelled.`);return e}async function xh(e,t){let n=typeof e==`object`&&e&&`challenge`in e&&e.challenge instanceof Uint8Array?e:io(e),r=bh(await navigator.credentials.get({publicKey:n,...t?{signal:t}:{}})),i=r.response;if(!(i instanceof AuthenticatorAssertionResponse))throw Error(`Invalid passkey response.`);return{id:r.id,rawId:Ui(r.rawId),response:{clientDataJSON:Ui(i.clientDataJSON),authenticatorData:Ui(i.authenticatorData),signature:Ui(i.signature),...i.userHandle?{userHandle:Ui(i.userHandle)}:{}},type:`public-key`,clientExtensionResults:r.getClientExtensionResults(),...vh(r.authenticatorAttachment)?{authenticatorAttachment:vh(r.authenticatorAttachment)}:{}}}async function Sh(e,t){let n=typeof e==`object`&&e&&`challenge`in e&&e.challenge instanceof Uint8Array?e:sa(e),r=bh(await navigator.credentials.create({publicKey:n,...t?{signal:t}:{}})),i=r.response;if(!(i instanceof AuthenticatorAttestationResponse))throw Error(`Invalid passkey response.`);let a=i.getPublicKey?.()??null,o=i.getAuthenticatorData?.(),s=i.getPublicKeyAlgorithm?.(),c=i.getTransports?.();return{id:r.id,rawId:Ui(r.rawId),response:{clientDataJSON:Ui(i.clientDataJSON),attestationObject:Ui(i.attestationObject),...c?{transports:yh(c)}:{},...s===void 0?{}:{publicKeyAlgorithm:s},...a?{publicKey:Ui(a)}:{},...o?{authenticatorData:Ui(o)}:{}},type:`public-key`,clientExtensionResults:r.getClientExtensionResults(),...vh(r.authenticatorAttachment)?{authenticatorAttachment:vh(r.authenticatorAttachment)}:{}}}var Ch={authenticate:(e,t)=>xh(e,t),register:(e,t)=>Sh(e,t)};function wh(e){return e}var Th={get:e=>vg().persistence.getSavedEnvironmentSecret(wh(e)),set:(e,t)=>vg().persistence.setSavedEnvironmentSecret(wh(e),t),remove:e=>vg().persistence.removeSavedEnvironmentSecret(wh(e))},Eh={webSocketConstructor:(e,t)=>{let n=typeof t==`string`||t===void 0?t:Array.from(t);return new globalThis.WebSocket(e,n)}};function Dh(){Rr(Di)}function Oh(){return us(fr)}function kh(){return us(Lr)}function Ah(e,t,n){let r=e.getBoundingClientRect(),i=Math.min(Math.max(4,t),Math.max(4,window.innerWidth-r.width-4)),a=Math.min(Math.max(4,n),Math.max(4,window.innerHeight-r.height-4));e.style.left=`${i}px`,e.style.top=`${a}px`}function jh(e,t){return new Promise(n=>{let r=document.createElement(`div`);r.style.cssText=`position:fixed;inset:0;z-index:9999`;let i=[],a=e=>{document.removeEventListener(`keydown`,o),r.remove();for(let e of i)e.remove();n(e)},o=e=>{e.key===`Escape`&&(e.preventDefault(),a(null))},s=e=>{for(;i.length>e;)i.pop()?.remove()},c=(e,t,n,r)=>{s(r);let o=document.createElement(`div`);o.className=`fixed z-[10000] min-w-[160px] rounded-md border border-border bg-popover py-1 shadow-xl animate-in fade-in zoom-in-95`,o.style.left=`${t}px`,o.style.top=`${n}px`,o.dataset.level=String(r);for(let t of e){let e=document.createElement(`button`);e.type=`button`;let n=Array.isArray(t.children)&&t.children.length>0,l=!n&&(t.destructive===!0||t.id===`delete`),u=t.disabled===!0;e.disabled=u,e.className=u?`flex w-full items-center gap-2 px-3 py-1.5 text-left text-[11px] text-muted-foreground/60 cursor-not-allowed`:l?`flex w-full items-center gap-2 px-3 py-1.5 text-left text-[11px] text-destructive hover:bg-accent cursor-default`:`flex w-full items-center gap-2 px-3 py-1.5 text-left text-[11px] text-popover-foreground hover:bg-accent cursor-default`;let d=document.createElement(`span`);if(d.className=`min-w-0 flex-1 truncate`,d.textContent=t.label,e.appendChild(d),n){let t=document.createElement(`span`);t.className=`shrink-0 text-muted-foreground/70`,t.textContent=`›`,e.appendChild(t)}u||(n?(e.addEventListener(`mouseenter`,()=>{let n=e.getBoundingClientRect(),a=n.right+4,o=n.top;c(t.children,a,o,r+1);let s=i[r+1];if(!s)return;let l=s.getBoundingClientRect();l.right>window.innerWidth&&Ah(s,n.left-l.width-4,n.top)}),e.addEventListener(`click`,e=>{e.preventDefault()})):(e.addEventListener(`mouseenter`,()=>{s(r+1)}),e.addEventListener(`click`,()=>a(t.id)))),o.appendChild(e)}o.addEventListener(`mouseenter`,()=>{s(r+1)}),document.body.appendChild(o),i[r]=o,requestAnimationFrame(()=>{Ah(o,t,n)})};r.addEventListener(`mousedown`,()=>a(null)),document.addEventListener(`keydown`,o),document.body.appendChild(r),c(e,t?.x??0,t?.y??0,0)})}var Mh=0,Nh=0,Ph=null,Fh=new Set;function Ih(){for(let e of Fh)e()}function Lh(){return Mh>0}function Rh(){return Mh+=1,()=>{--Mh,Mh===0&&Ph&&Hh(Ph.id,null)}}function zh(e){return Fh.add(e),()=>{Fh.delete(e)}}function Bh(){return Ph}function Vh(e){return new Promise(t=>{Ph?.resolve(null),Nh+=1,Ph={id:Nh,items:e,resolve:t},Ih()})}function Hh(e,t){if(!Ph||Ph.id!==e)return;let n=Ph;Ph=null,Ih(),n.resolve(t)}var Uh=6048e5;function Wh(e){return new Date(e+Uh).toISOString()}function Gh(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Kh(e){if(!e.token||e.token.trim().length===0)return!1;let t=Gh(e.expiresAt);return e.expiresAt!==void 0&&t===null?!1:t===null||t>e.nowMs}var qh=`ryco:client-settings:v1`,Jh=`ryco:saved-environment-registry:v1`,Yh=sn({environmentId:ye,label:It,httpBaseUrl:It,wsBaseUrl:It,createdAt:It,lastConnectedAt:nn(It),desktopSsh:Ne(sn({alias:It,hostname:It,username:nn(It),port:nn(On)})),bearerToken:Ne(It),bearerTokenSavedAt:Ne(It),bearerTokenExpiresAt:Ne(It)}),Xh=sn({version:Ne(On),records:Ne(jt(Yh))});function Zh(){return typeof window<`u`}function Qh(e){let t={environmentId:e.environmentId,label:e.label,httpBaseUrl:e.httpBaseUrl,wsBaseUrl:e.wsBaseUrl,createdAt:e.createdAt,lastConnectedAt:e.lastConnectedAt};return e.desktopSsh?{...t,desktopSsh:e.desktopSsh}:t}function $h(e,t){return Kh({token:e.bearerToken,expiresAt:e.bearerTokenExpiresAt,nowMs:t})}function eg(e,t){return e.bearerToken?{...e,bearerTokenSavedAt:e.bearerTokenSavedAt??new Date(t).toISOString(),bearerTokenExpiresAt:e.bearerTokenExpiresAt??Wh(t)}:e}function tg(e){return Qh(e)}function ng(){if(!Zh())return null;try{return gi(qh,Hn)}catch{return null}}function rg(e){Zh()&&wi(qh,e,Hn)}function ig(){if(!Zh())return{};try{return gi(`ryco:saved-environment-registry:v1`,Xh)??{}}catch{return{}}}function ag(e){Zh()&&wi(Jh,e,Xh)}function og(){return ig().records??[]}function sg(e){ag({version:1,records:e})}function cg(){return og().map(e=>Qh(e))}function lg(e){let t=Date.now(),n=new Map(og().map(e=>[e.environmentId,e]));sg(e.map(e=>{let r=n.get(e.environmentId);if(!r||!$h(r,t))return Qh(e);let i=eg(r,t),a=i.bearerToken;if(!a)return Qh(e);let o=i.bearerTokenSavedAt??new Date(t).toISOString(),s=i.bearerTokenExpiresAt??Wh(t);return{environmentId:e.environmentId,label:e.label,httpBaseUrl:e.httpBaseUrl,wsBaseUrl:e.wsBaseUrl,createdAt:e.createdAt,lastConnectedAt:e.lastConnectedAt,...e.desktopSsh?{desktopSsh:e.desktopSsh}:{},bearerToken:a,bearerTokenSavedAt:o,bearerTokenExpiresAt:s}}))}function ug(e){let t=ig(),n=t.records??[],r=n.find(t=>t.environmentId===e);if(!r?.bearerToken)return null;let i=Date.now();if(!$h(r,i))return fg(e),null;let a=eg(r,i);return(a.bearerTokenSavedAt!==r.bearerTokenSavedAt||a.bearerTokenExpiresAt!==r.bearerTokenExpiresAt)&&ag({version:t.version??1,records:n.map(t=>t.environmentId===e?a:t)}),r.bearerToken}function dg(e,t){let n=t.trim();if(n.length===0)return fg(e),!1;let r=ig(),i=r.records??[],a=!1,o=Date.now();return ag({version:r.version??1,records:i.map(t=>{if(t.environmentId!==e)return t;a=!0;let r={environmentId:t.environmentId,label:t.label,httpBaseUrl:t.httpBaseUrl,wsBaseUrl:t.wsBaseUrl,createdAt:t.createdAt,lastConnectedAt:t.lastConnectedAt,bearerToken:n,bearerTokenSavedAt:new Date(o).toISOString(),bearerTokenExpiresAt:Wh(o)};return t.desktopSsh?Object.assign(r,{desktopSsh:t.desktopSsh}):r})}),a}function fg(e){let t=ig();ag({version:t.version??1,records:(t.records??[]).map(t=>t.environmentId===e?tg(t):t)})}var pg;function mg(){return Error(`Local backend API is unavailable before a backend is paired.`)}function Y(e,t){let n=e();return n?t(n):Promise.reject(mg())}function hg(e,t){let n=typeof e==`function`?e:()=>e;return{dialogs:{pickFolder:async e=>window.desktopBridge?window.desktopBridge.pickFolder(e):null,confirm:async e=>window.desktopBridge?window.desktopBridge.confirm(e):window.confirm(e)},shell:{openInEditor:(e,t)=>Y(n,n=>n.shell.openInEditor({cwd:e,editor:t})),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`)},getPathForFile:async e=>window.desktopBridge?.getPathForFile?.(e)||null},contextMenu:{show:async(e,t)=>window.desktopBridge?window.desktopBridge.showContextMenu(e,t):co()===`phone`&&Lh()?Vh(e):jh(e,t)},persistence:{getClientSettings:async()=>window.desktopBridge?window.desktopBridge.getClientSettings():ng(),setClientSettings:async e=>{if(window.desktopBridge)return window.desktopBridge.setClientSettings(e);rg(e)},getSavedEnvironmentRegistry:async()=>window.desktopBridge?window.desktopBridge.getSavedEnvironmentRegistry():cg(),setSavedEnvironmentRegistry:async e=>{if(window.desktopBridge)return window.desktopBridge.setSavedEnvironmentRegistry(e);lg(e)},getSavedEnvironmentSecret:async e=>window.desktopBridge?window.desktopBridge.getSavedEnvironmentSecret(e):ug(e),setSavedEnvironmentSecret:async(e,t)=>window.desktopBridge?window.desktopBridge.setSavedEnvironmentSecret(e,t):dg(e,t),removeSavedEnvironmentSecret:async e=>{if(window.desktopBridge)return window.desktopBridge.removeSavedEnvironmentSecret(e);fg(e)}},server:{getConfig:()=>Y(n,e=>e.server.getConfig()),getAdvertisedEndpoints:()=>Y(n,e=>e.server.getAdvertisedEndpoints()),getDiagnosticsMetrics:()=>Y(n,e=>e.server.getDiagnosticsMetrics()),getStatistics:()=>Y(n,e=>e.server.getStatistics()),getUsageSummary:e=>Y(n,t=>t.server.getUsageSummary(e)),refreshProviders:()=>Y(n,e=>e.server.refreshProviders()),updateProvider:e=>Y(n,t=>t.server.updateProvider(e)),upsertKeybinding:e=>Y(n,t=>t.server.upsertKeybinding(e)),getSettings:()=>Y(n,e=>e.server.getSettings()),updateSettings:e=>Y(n,t=>t.server.updateSettings(e)),getDiagnosticsSnapshot:()=>Y(n,e=>e.server.getDiagnosticsSnapshot()),discoverSourceControl:()=>Y(n,e=>e.server.discoverSourceControl()),listOpinionatedPlugins:()=>Y(n,e=>e.server.listOpinionatedPlugins()),checkOpinionatedPlugins:e=>Y(n,t=>t.server.checkOpinionatedPlugins(e)),installOpinionatedPlugin:e=>Y(n,t=>t.server.installOpinionatedPlugin(e))},keybindings:{replaceCustom:e=>Y(n,t=>t.keybindings.replaceCustom(e))},...t?.includeMcp??e!==void 0?{mcp:{listWorkspaces:()=>Y(n,e=>e.mcp.listWorkspaces()),listServers:e=>Y(n,t=>t.mcp.listServers(e)),upsertServer:e=>Y(n,t=>t.mcp.upsertServer(e)),setServerEnabled:e=>Y(n,t=>t.mcp.setServerEnabled(e)),removeServer:e=>Y(n,t=>t.mcp.removeServer(e)),reloadServers:e=>Y(n,t=>t.mcp.reloadServers(e)),startOauthLogin:e=>Y(n,t=>t.mcp.startOauthLogin(e))}}:{}}}function gg(e,t){let n=t.mcp??e.mcp;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},...n?{mcp:n}:{}}}function _g(){if(!(typeof window>`u`))return pg||(window.nativeApi?(pg=gg(hg(),window.nativeApi),pg):(pg=hg(()=>{let e=Vr();if(!e)return;let t=e.environmentId?wE(e.environmentId)?.client:void 0;return t||l()?t:DE().client},{includeMcp:Vr()!==null}),pg))}function vg(){let e=_g();if(!e)throw Error(`Local API not found`);return e}function yg(e){let t=(t=>(0,V.useSyncExternalStore)(e.subscribe,()=>t(e.getState()),()=>t(e.getState())));return t.getState=e.getState,t.setState=e.setState,t.subscribe=e.subscribe,t}var bg=si({kv:{getRegistry:()=>vg().persistence.getSavedEnvironmentRegistry(),setRegistry:e=>vg().persistence.setSavedEnvironmentRegistry(e.map(e=>_r(e)))},secretKV:Th}),xg=yg(bg.registryStore),X=yg(bg.runtimeStore),Sg=bg.hasHydrated,Cg=bg.waitForHydration,wg=bg.list,Tg=bg.get,Eg=bg.persistRecord,Dg=bg.readBearerToken,Og=bg.writeBearerToken,kg=bg.removeBearerToken;bg.resetForTests,bg.resetRuntimeForTests,bg.getRuntime;function Ag(e){if(l())return null;let t=Vr();return t?.environmentId===e?ci(t):Tg(e)?.httpBaseUrl??null}function jg(e){let t=Ag(e.environmentId);if(!t)throw Error(`Unable to resolve HTTP base URL for environment ${e.environmentId}.`);let n=new URL(yr(t));return n.pathname=e.pathname,e.searchParams&&(n.search=new URLSearchParams(e.searchParams).toString()),n.toString()}function Mg(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 Ng=new Map,Pg=Fc({canReadConnections:()=>!0,readClient:e=>wE(e)?.client??null});function Fg(e){return Ng.get(e)??Pg.read(e)}function Ig(e,t){return Ng.get(e)??(t?Pc(t):void 0)}function Lg(e){let t=Fg(e);if(!t)throw Error(`Environment API not found for environment ${e}`);return t}Object.freeze({entries:[],truncated:!1});var Rg=Object.freeze({data:null,isLoading:!1,isFetching:!1,error:null}),zg=Rg,Bg=Xn(Rg).pipe(hr,Zr(`project-search-entries:null`)),Vg=new Set,Hg=new Map,Ug=Cr(e=>(Vg.add(e),Xn(Rg).pipe(hr,Zr(`project-search-entries:${e}`))));function Wg(e,t,n){return`${e}::${t}::${n}`}function Gg(e){return e.environmentId===null||e.cwd===null?null:Wg(e.environmentId,e.cwd,e.limit??80)}function Kg(e){return e===null?Bg:Ug(e)}function qg(e){return!((e.enabled??!0)&&e.environmentId!==null&&e.cwd!==null&&e.query.length>0)||e.environmentId===null||e.cwd===null?null:{environmentId:e.environmentId,cwd:e.cwd,query:e.query,limit:e.limit??80,staleTime:e.staleTime??15e3}}function Jg(e,t,n){let r=Wg(e,t,n),i=Hg.get(r);return i||(i={environmentId:e,cwd:t,limit:n,token:0,inFlightQuery:null,lastInput:null,observerCount:0,cache:new Map},Hg.set(r,i)),i}function Yg(e,t){let n=Ug(e),r=z.get(n);(r.data!==t.data||r.isLoading!==t.isLoading||r.isFetching!==t.isFetching||r.error!==t.error)&&z.set(n,t)}function Xg(e){let t=z.get(Ug(e));Yg(e,{data:t.data,isLoading:t.data===null,isFetching:!0,error:null})}function Zg(e,t){Yg(e,{data:t,isLoading:!1,isFetching:!1,error:null})}function Qg(e,t){Yg(e,{data:z.get(Ug(e)).data,isLoading:!1,isFetching:!1,error:t})}function $g(e,t,n){let r=n.query,i=++t.token;t.inFlightQuery=r,Xg(e);let a;try{a=Lg(n.environmentId)}catch(n){t.token===i&&(t.inFlightQuery=null,Qg(e,e_(n)));return}a.projects.searchEntries({cwd:n.cwd,query:r,limit:n.limit}).then(n=>{t.cache.set(r,{result:n,fetchedAt:Date.now()}),t.token===i&&(t.inFlightQuery=null,Zg(e,n))}).catch(n=>{t.token===i&&(t.inFlightQuery=null,Qg(e,e_(n)))})}function e_(e){return e instanceof Error?e:Error(String(e))}function t_(e,t){let n=qg(e);if(n===null)return;let r=Wg(n.environmentId,n.cwd,n.limit),i=Jg(n.environmentId,n.cwd,n.limit);if(i.lastInput=n,!t?.force){let e=i.cache.get(n.query);if(e&&Date.now()-e.fetchedAt<n.staleTime){Zg(r,e.result);return}if(i.inFlightQuery===n.query)return}$g(r,i,n)}function n_(e){if(e.environmentId===null||e.cwd===null)return;let t=Jg(e.environmentId,e.cwd,e.limit??80);t.observerCount+=1}function r_(e){let t=Gg(e);if(t===null)return;let n=Hg.get(t);n&&n.observerCount>0&&--n.observerCount}function i_(e){let t=e?.environmentId??null,n=e?.cwd??null;for(let e of Hg.values())(t===null||e.environmentId===t)&&(n===null||e.cwd===n)&&(e.cache.clear(),e.observerCount>0&&e.lastInput!==null&&t_(e.lastInput,{force:!0}))}var a_=Object.freeze({data:null,isLoading:!1,isFetching:!1,error:null,isPending:!0}),o_=a_,s_=`\0`,c_=new Set,l_=Cr(e=>(c_.add(e),Xn(a_).pipe(hr,Zr(`filesystem-browse:${e}`)))),u_=Xn(a_).pipe(hr,Zr(`filesystem-browse:null`)),d_=new Map;function f_(e){if(!((e.enabled??!0)&&e.environmentId!==null&&e.partialPath.length>0)||e.environmentId===null)return null;let t=e.cwd??null,n=`${e.environmentId}${s_}${t??``}${s_}${e.partialPath}`;return{environmentId:e.environmentId,partialPath:e.partialPath,cwd:t,staleTime:e.staleTime??3e4,compositeKey:n}}function p_(e){return f_(e)?.compositeKey??null}function m_(e){return e===null?u_:l_(e)}function h_(e,t){z.set(l_(e),t)}function g_(e){return z.get(l_(e))}async function __(e){let t=++e.fetchToken;e.fetching=!0;let n=g_(e.compositeKey);h_(e.compositeKey,{data:n.data,isLoading:n.data===null,isFetching:!0,error:null,isPending:!0});let r=Array.from(e.subscriberTargets.values()).at(-1),i=r===void 0?Fg(e.environmentId):r;if(!i){if(t!==e.fetchToken)return;e.fetching=!1,h_(e.compositeKey,{data:n.data,isLoading:!1,isFetching:!1,error:Error(`The environment is temporarily unavailable. Reconnecting…`),isPending:!1});return}try{let n=await i.filesystem.browse({partialPath:e.partialPath,...e.cwd?{cwd:e.cwd}:{}});if(t!==e.fetchToken)return;e.fetching=!1,e.hasData=!0,e.lastFetchedAt=Date.now(),e.lastResult=n,h_(e.compositeKey,{data:n,isLoading:!1,isFetching:!1,error:null,isPending:!1})}catch(n){if(t!==e.fetchToken)return;e.fetching=!1;let r=e_(n);h_(e.compositeKey,{data:g_(e.compositeKey).data,isLoading:!1,isFetching:!1,error:r,isPending:!1})}}function v_(e){let t=d_.get(e.compositeKey);return t||(t={compositeKey:e.compositeKey,environmentId:e.environmentId,partialPath:e.partialPath,cwd:e.cwd,staleTime:e.staleTime,subscriberCount:0,lastFetchedAt:0,fetchToken:0,hasData:!1,fetching:!1,lastResult:null,subscriberTargets:new Map},d_.set(e.compositeKey,t)),t}function y_(e){let t=v_(e),n=t.hasData&&Date.now()-t.lastFetchedAt>=t.staleTime;!t.fetching&&(!t.hasData||n)&&__(t)}function b_(e,t){let n=f_(e);if(n===null)return;let r=v_(n);if(!t?.force){if(r.hasData&&Date.now()-r.lastFetchedAt<n.staleTime){h_(n.compositeKey,{data:r.lastResult,isLoading:!1,isFetching:!1,error:null,isPending:!1});return}if(r.fetching)return}__(r)}function x_(e,t){let n=f_(e);if(n===null)return()=>void 0;let r=v_(n),i=Symbol(`filesystem-browse-subscriber`),a=Array.from(r.subscriberTargets.values()).at(-1);return t!==void 0&&r.subscriberTargets.set(i,t),a!==Array.from(r.subscriberTargets.values()).at(-1)&&r.fetching&&(r.fetchToken+=1,r.fetching=!1),r.subscriberCount+=1,y_(n),()=>{let e=d_.get(n.compositeKey);if(e&&e.subscriberCount>0){let t=Array.from(e.subscriberTargets.values()).at(-1);e.subscriberTargets.delete(i),t!==Array.from(e.subscriberTargets.values()).at(-1)&&e.fetching&&(e.fetchToken+=1,e.fetching=!1),--e.subscriberCount}}}function S_(e){b_(e)}function C_(){for(let e of Vg)z.set(Ug(e),Rg);Vg.clear(),Hg.clear();for(let e of d_.values())e.fetchToken+=1;d_.clear();for(let e of c_)z.set(l_(e),a_);c_.clear()}function w_(e){return JSON.stringify([e.environmentId??null,e.threadId,e.fromTurnCount,e.toTurnCount,e.ignoreWhitespace,e.cacheScope??null])}function T_(e){return e.fromTurnCount===0?ze(te)({threadId:e.threadId,toTurnCount:e.toTurnCount,ignoreWhitespace:e.ignoreWhitespace}).pipe(ot(e=>({kind:`fullThreadDiff`,input:e}))):ze(He)({threadId:e.threadId,fromTurnCount:e.fromTurnCount,toTurnCount:e.toTurnCount,ignoreWhitespace:e.ignoreWhitespace}).pipe(ot(e=>({kind:`turnDiff`,input:e})))}function E_(e){return(e.enabled??!0)&&!!e.environmentId&&!!e.threadId&&Qe(T_(e))}function D_(e){return e instanceof Error?e.message:typeof e==`string`?e:``}function O_(e){let t=D_(e).trim();if(t.length===0)return`Failed to load checkpoint diff.`;let n=t.toLowerCase();if(n.includes(`not a git repository`))return`Turn diffs are unavailable because this project is not a git repository.`;if(n.includes(`checkpoint unavailable for thread`)||n.includes(`checkpoint invariant violation`)){let e=t.indexOf(`:`);if(e>=0){let n=t.slice(e+1).trim();if(n.length>0)return n}}return t}function k_(e){let t=D_(e).toLowerCase();return t.includes(`exceeds current turn count`)||t.includes(`checkpoint is unavailable for turn`)||t.includes(`filesystem checkpoint is unavailable`)}function A_(e,t){return k_(t)?e<12:e<3}function j_(e,t){return k_(t)?Math.min(5e3,250*2**(e-1)):Math.min(1e3,100*2**(e-1))}async function M_(e){let t=T_(e);if(!e.environmentId||!e.threadId||rt(t))throw Error(`Checkpoint diff is unavailable.`);let n=Lg(e.environmentId);return t.value.kind===`fullThreadDiff`?await n.orchestration.getFullThreadDiff(t.value.input):await n.orchestration.getTurnDiff(t.value.input)}var N_=Object.freeze({data:null,error:null,isLoading:!1}),P_=Object.freeze({data:null,error:null,isLoading:!0}),F_=N_,I_=Xn(F_).pipe(hr,Zr(`checkpoint-diff:disabled`)),L_=new Set,R_=Cr(e=>(L_.add(e),Xn(P_).pipe(hr,Zr(`checkpoint-diff:${e}`)))),z_=new Map,B_=new Map,V_=()=>void 0;function H_(e,t){z.set(R_(e),t)}function U_(e){return z.get(R_(e))}function W_(e){return new Promise(t=>{setTimeout(t,e)})}function G_(e){let t=++e.generation;e.fetching=!0;let n=U_(e.key);H_(e.key,{data:n.data,error:null,isLoading:n.data===null}),(async()=>{let n=0;for(;;)try{let n=await M_(e.input);if(e.generation!==t)return;e.fetching=!1,e.hasResolved=!0,H_(e.key,{data:n,error:null,isLoading:!1});return}catch(r){let i=Error(O_(r),{cause:r});if(n+=1,e.generation!==t)return;if(!A_(n,i)){e.fetching=!1,H_(e.key,{data:null,error:i,isLoading:!1});return}if(await W_(j_(n,i)),e.generation!==t)return}})()}function K_(e,t){let n=B_.get(e);if(n){n.add(t);return}B_.set(e,new Set([t]))}function q_(e){if(!E_(e)||e.threadId===null)return V_;let t=w_(e),n=z_.get(t);return n||(n={key:t,input:e,threadId:e.threadId,refCount:0,generation:0,hasResolved:!1,fetching:!1},z_.set(t,n),K_(e.threadId,t)),n.refCount+=1,!n.hasResolved&&!n.fetching&&G_(n),()=>{let e=z_.get(t);e&&(e.refCount=Math.max(0,e.refCount-1))}}function J_(e){if(e.hasResolved=!1,e.refCount>0){G_(e);return}e.generation+=1,e.fetching=!1}function Y_(){for(let e of z_.values())J_(e)}function X_(){for(let e of z_.values())e.generation+=1;z_.clear(),B_.clear();for(let e of L_)H_(e,P_);L_.clear()}function Z_(){return Kc(Zn,rr.origin())}var Q_=e=>Z_().bootstrapRemoteBearerSession(e),$_=e=>Z_().fetchRemoteSessionState(e),ev=e=>Z_().fetchRemoteEnvironmentDescriptor(e),tv=e=>Z_().resolveRemoteWebSocketConnectionUrl(e);function nv(e){return Xc(e,rr.origin(),{readPairingToken:Ei,readHostedPairingRequest:lo})}var rv=Object.freeze({lastSnapshotSequence:null,lastEventSequence:null,highestSequence:null,eventCount:0,snapshotCount:0,gapCount:0,lastGap:null,updatedAt:null});function iv(){return new Date().toISOString()}function av(e,t,n){let r=e??rv,i=r.highestSequence===null?t:Math.max(r.highestSequence,t);return{...r,lastSnapshotSequence:t,highestSequence:i,snapshotCount:r.snapshotCount+1,updatedAt:n}}function ov(e,t,n){let r=e??rv,i=r.highestSequence,a=r.gapCount,o=r.lastGap;i!==null&&t>i+1&&(a+=1,o={expectedSequence:i+1,receivedSequence:t,detectedAt:n});let s=i===null?t:Math.max(i,t);return{...r,lastEventSequence:t,highestSequence:s,eventCount:r.eventCount+1,gapCount:a,lastGap:o,updatedAt:n}}var sv=c()(e=>({byEnvironment:{},recordSnapshot:(t,n)=>e(e=>({byEnvironment:{...e.byEnvironment,[t]:av(e.byEnvironment[t],n,iv())}})),recordEvent:(t,n)=>e(e=>({byEnvironment:{...e.byEnvironment,[t]:ov(e.byEnvironment[t],n,iv())}})),reset:()=>e({byEnvironment:{}})}));function cv(e,t){try{sv.getState().recordSnapshot(e,t)}catch{}}function lv(e,t){try{sv.getState().recordEvent(e,t)}catch{}}var uv={recordEvent:lv,recordSnapshot:cv};function dv(e){return oi({...e,pushSequenceMonitor:uv})}zn()(`@ryco/client-runtime/platform/Endpoint`),zn()(`@ryco/client-runtime/platform/Socket`),zn()(`@ryco/client-runtime/platform/AppLifecycle`),zn()(`@ryco/client-runtime/platform/KV`),zn()(`@ryco/client-runtime/platform/SecretKV`),zn()(`@ryco/client-runtime/platform/PasskeyCeremony`),zn()(`@ryco/client-runtime/platform/SessionCredentials`),zn()(`@ryco/client-runtime/platform/DpopSigner`),zn()(`@ryco/client-runtime/platform/PairingCredentialSource`),zn()(`@ryco/client-runtime/platform/AttachmentCodec`),zn()(`@ryco/client-runtime/platform/Clock`),zn()(`@ryco/client-runtime/platform/FrameScheduler`);var fv=xn({span(e){return new ht(e)}}),pv={tracingLayer:E(un,fv),performanceEnabled:()=>!1,recordPerformance:()=>void 0};yt(`@ryco/client-runtime/platform/Observability`,{defaultValue:()=>pv}),zn()(`@ryco/client-runtime/platform/ClientRuntimeConfig`);var mv={clock:{now:()=>Date.now()},frameScheduler:{scheduleFrame:e=>void Promise.resolve().then(e)},observability:pv,isHostedHubMode:()=>!1,resolveAttachmentPreviewUrl:({attachmentId:e})=>e},hv=null;function gv(e){hv=e}function _v(e){hv=null,mv=e}function vv(){if(hv){let e=hv;hv=null,e()}return mv}var yv=`context-compaction`,bv=A(fe);function xv(e){return e.kind===yv}function Sv(e){if(e.kind!==`context-handoff`)return!1;try{let t=bv(e.payload);return t.status===`consumed`||t.status===`failed`||t.status===`delivery-uncertain`}catch{return!1}}function Cv(e){return xv(e)||Sv(e)}function wv(e,t){if(e.length<=t)return[...e];let n=e.slice(-t),r=new Set(n.map(e=>e.id)),i=e.filter(e=>Cv(e)&&!r.has(e.id));return i.length===0?[...n]:[...i,...n]}var Tv=[],Ev=[],Dv=[],Ov=[],kv={},Av={},jv={},Mv={},Nv=new WeakMap,Pv=new WeakMap;function Fv(e,t,n){if(!e||e.length===0||!t)return n;let r=Nv.get(e),i=r?.get(t);if(i)return i;let a=e.flatMap(e=>{let n=t[e];return n?[n]:[]}),o=r??new WeakMap;return o.set(t,a),r||Nv.set(e,o),a}function Iv(e,t){return Fv(e.messageIdsByThreadId[t],e.messageByThreadId[t]??kv,Tv)}function Lv(e,t){return Fv(e.activityIdsByThreadId[t],e.activityByThreadId[t]??Av,Ev)}function Rv(e,t){return Fv(e.proposedPlanIdsByThreadId[t],e.proposedPlanByThreadId[t]??jv,Dv)}function zv(e,t){return Fv(e.turnDiffIdsByThreadId[t],e.turnDiffSummaryByThreadId[t]??Mv,Ov)}function Bv(e,t){let n=e.threadShellById[t];if(!n)return;let r=e.threadSessionById[t]??null,i=e.threadTurnStateById[t],a=Iv(e,t),o=Lv(e,t),s=Rv(e,t),c=zv(e,t),l=Pv.get(n);if(l&&l.session===r&&l.turnState===i&&l.messages===a&&l.activities===o&&l.proposedPlans===s&&l.turnDiffSummaries===c)return l.thread;let u={...n,session:r,latestTurn:i?.latestTurn??null,pendingSourceProposedPlan:i?.pendingSourceProposedPlan,messages:a,activities:o,proposedPlans:s,turnDiffSummaries:c};return Pv.set(n,{session:r,turnState:i,messages:a,activities:o,proposedPlans:s,turnDiffSummaries:c,thread:u}),u}var Vv={projectIds:[],projectById:{},worktreeIds:[],worktreeIdsByProjectId:{},worktreeById:{},threadIds:[],threadIdsByProjectId:{},threadShellById:{},threadSessionById:{},threadTurnStateById:{},messageIdsByThreadId:{},messageByThreadId:{},pendingMessagesByThreadId:{},activityIdsByThreadId:{},activityByThreadId:{},proposedPlanIdsByThreadId:{},proposedPlanByThreadId:{},turnDiffIdsByThreadId:{},turnDiffSummaryByThreadId:{},threadHistoryByThreadId:{},threadHistoryLoadByThreadId:{},sidebarThreadSummaryById:{},bootstrapComplete:!1,hydratedFromCacheAt:void 0},Hv={activeEnvironmentId:null,environmentStateById:{}},Uv=2e3,Wv=500,Gv=[],Kv=[],qv=[],Jv=[];function Yv(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function Xv(e){return wn(e.instanceId)?{...e,model:mi(e.instanceId,e.model)}:e}function Zv(e){return e.map(e=>({...e}))}function Qv(e){return{provider:Hy(e.providerName),providerInstanceId:e.providerInstanceId??void 0,status:Vy(e.status),orchestrationStatus:e.status,activeTurnId:e.activeTurnId??void 0,createdAt:e.updatedAt,updatedAt:e.updatedAt,...e.lastError?{lastError:e.lastError}:{}}}function $v(e,t){let n=t.attachments?.map(t=>({type:`image`,id:t.id,name:t.name,mimeType:t.mimeType,sizeBytes:t.sizeBytes,...vv().isHostedHubMode()?{}:{previewUrl:vv().resolveAttachmentPreviewUrl({environmentId:e,attachmentId:t.id})}}));return{id:t.id,role:t.role,text:t.text,turnId:t.turnId,...t.dispatchMode===void 0?{}:{dispatchMode:t.dispatchMode},createdAt:t.createdAt,streaming:t.streaming,...t.streaming?{}:{completedAt:t.updatedAt},...n&&n.length>0?{attachments:n}:{}}}function ey(e){return{id:e.id,turnId:e.turnId,planMarkdown:e.planMarkdown,implementedAt:e.implementedAt,implementationThreadId:e.implementationThreadId,createdAt:e.createdAt,updatedAt:e.updatedAt}}function ty(e){return{turnId:e.turnId,completedAt:e.completedAt,status:e.status,assistantMessageId:e.assistantMessageId??void 0,checkpointTurnCount:e.checkpointTurnCount,checkpointRef:e.checkpointRef,files:e.files.filter(ny).map(e=>({path:e.path,kind:e.kind,additions:e.additions,deletions:e.deletions}))}}function ny(e){return e.kind!==`modified`||e.additions>0||e.deletions>0}function ry(e,t){return{id:e.id,environmentId:t,name:e.title,cwd:e.workspaceRoot,projectMetadataDir:e.projectMetadataDir,repositoryIdentity:e.repositoryIdentity??null,defaultModelSelection:e.defaultModelSelection?Xv(e.defaultModelSelection):null,customSystemPrompt:e.customSystemPrompt??null,customAvatarContentHash:e.customAvatarContentHash??null,preferredRemoteName:e.preferredRemoteName??null,createdAt:e.createdAt,updatedAt:e.updatedAt,scripts:Zv(e.scripts)}}function iy(e,t){return{id:e.worktreeId,environmentId:t,projectId:e.projectId,title:e.title??null,branch:e.branch,worktreePath:e.worktreePath,origin:e.origin,prNumber:e.prNumber,issueNumber:e.issueNumber,prTitle:e.prTitle,issueTitle:e.issueTitle,prState:e.prState??null,prIsDraft:e.prIsDraft??null,issueState:e.issueState??null,workItemProvider:e.workItemProvider??null,workItemKey:e.workItemKey??null,workItemTitle:e.workItemTitle??null,workItemState:e.workItemState??null,workItemStateName:e.workItemStateName??null,workItemUrl:e.workItemUrl??null,createdAt:e.createdAt,updatedAt:e.updatedAt,archivedAt:e.archivedAt,manualPosition:e.manualPosition}}function ay(e,t){return{id:e.id,environmentId:t,codexThreadId:null,projectId:e.projectId,title:e.title,modelSelection:Xv(e.modelSelection),runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,session:e.session?Qv(e.session):null,messages:e.messages.map(e=>$v(t,e)),proposedPlans:e.proposedPlans.map(ey),error:wr(e.session?.lastError),createdAt:e.createdAt,archivedAt:e.archivedAt,settledOverride:e.settledOverride,settledAt:e.settledAt,updatedAt:e.updatedAt,latestTurn:e.latestTurn,pendingSourceProposedPlan:e.latestTurn?.sourceProposedPlan,branch:e.branch,worktreePath:e.worktreePath,worktreeId:e.worktreeId??null,manualStatusBucket:e.manualStatusBucket??null,manualPosition:e.manualPosition??0,goal:e.goal??null,turnDiffSummaries:e.checkpoints.map(ty),activities:e.activities.map(e=>({...e}))}}function oy(e,t){let n={id:e.id,environmentId:t,codexThreadId:null,projectId:e.projectId,title:e.title,modelSelection:Xv(e.modelSelection),runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,error:wr(e.session?.lastError),createdAt:e.createdAt,archivedAt:e.archivedAt,settledOverride:e.settledOverride,settledAt:e.settledAt,updatedAt:e.updatedAt,branch:e.branch,worktreePath:e.worktreePath,worktreeId:e.worktreeId??null,manualStatusBucket:e.manualStatusBucket??null,manualPosition:e.manualPosition??0,goal:e.goal??null},r=e.session?Qv(e.session):null;return{shell:n,session:r,turnState:{latestTurn:e.latestTurn,pendingSourceProposedPlan:e.latestTurn?.sourceProposedPlan},summary:{id:e.id,environmentId:t,projectId:e.projectId,title:e.title,modelSelection:Xv(e.modelSelection),interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,session:r,providerDriver:r?.provider??null,createdAt:e.createdAt,archivedAt:e.archivedAt,settledOverride:e.settledOverride,settledAt:e.settledAt,updatedAt:e.updatedAt,latestTurn:e.latestTurn,branch:e.branch,worktreePath:e.worktreePath,worktreeId:e.worktreeId??null,manualStatusBucket:e.manualStatusBucket??null,manualPosition:e.manualPosition??0,latestUserMessageAt:e.latestUserMessageAt,hasPendingApprovals:e.hasPendingApprovals,hasPendingUserInput:e.hasPendingUserInput,hasActionableProposedPlan:e.hasActionableProposedPlan,backgroundLiveness:e.backgroundLiveness??null,priority:e.priority}}}function sy(e){return{id:e.id,environmentId:e.environmentId,codexThreadId:e.codexThreadId,projectId:e.projectId,title:e.title,modelSelection:e.modelSelection,runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,error:e.error,createdAt:e.createdAt,archivedAt:e.archivedAt,settledOverride:e.settledOverride,settledAt:e.settledAt,updatedAt:e.updatedAt,branch:e.branch,worktreePath:e.worktreePath,worktreeId:e.worktreeId,manualStatusBucket:e.manualStatusBucket,manualPosition:e.manualPosition,goal:e.goal??null}}function cy(e){return{latestTurn:e.latestTurn,...e.pendingSourceProposedPlan?{pendingSourceProposedPlan:e.pendingSourceProposedPlan}:{}}}function ly(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.threadId===t.threadId&&e.planId===t.planId}function uy(e,t){return e===t?!0:e==null||t==null?!1:e.objective===t.objective&&e.status===t.status&&e.tokenBudget===t.tokenBudget&&e.tokensUsed===t.tokensUsed&&e.timeUsedSeconds===t.timeUsedSeconds&&e.createdAt===t.createdAt&&e.updatedAt===t.updatedAt}function dy(e,t){return e===t?!0:e==null||t==null?!1:e.turnId===t.turnId&&e.state===t.state&&e.requestedAt===t.requestedAt&&e.startedAt===t.startedAt&&e.completedAt===t.completedAt&&e.assistantMessageId===t.assistantMessageId&&ly(e.sourceProposedPlan,t.sourceProposedPlan)}function fy(e,t){return e===t?!0:e==null||t==null?!1:e.provider===t.provider&&e.status===t.status&&e.orchestrationStatus===t.orchestrationStatus&&e.activeTurnId===t.activeTurnId&&e.createdAt===t.createdAt&&e.updatedAt===t.updatedAt&&e.lastError===t.lastError}function py(e,t){return e!==void 0&&e.id===t.id&&e.projectId===t.projectId&&e.title===t.title&&e.interactionMode===t.interactionMode&&e.tokenMode===t.tokenMode&&fy(e.session,t.session)&&e.createdAt===t.createdAt&&e.archivedAt===t.archivedAt&&e.settledOverride===t.settledOverride&&e.settledAt===t.settledAt&&e.updatedAt===t.updatedAt&&dy(e.latestTurn,t.latestTurn)&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.worktreeId===t.worktreeId&&e.manualStatusBucket===t.manualStatusBucket&&e.manualPosition===t.manualPosition&&e.latestUserMessageAt===t.latestUserMessageAt&&e.hasPendingApprovals===t.hasPendingApprovals&&e.hasPendingUserInput===t.hasPendingUserInput&&e.hasActionableProposedPlan===t.hasActionableProposedPlan&&(e.backgroundLiveness??null)===(t.backgroundLiveness??null)&&my(e.priority,t.priority)}function my(e,t){return e===t||e!==void 0&&t!==void 0&&e.tier===t.tier&&e.confidence===t.confidence&&e.reason===t.reason&&e.inputFingerprint===t.inputFingerprint&&e.batchId===t.batchId&&e.modelSelection.instanceId===t.modelSelection.instanceId&&e.modelSelection.model===t.modelSelection.model&&JSON.stringify(e.modelSelection.options)===JSON.stringify(t.modelSelection.options)&&e.rankedAt===t.rankedAt&&e.usableUntil===t.usableUntil}function hy(e,t){return e!==void 0&&e.id===t.id&&e.environmentId===t.environmentId&&e.codexThreadId===t.codexThreadId&&e.projectId===t.projectId&&e.title===t.title&&e.modelSelection===t.modelSelection&&e.runtimeMode===t.runtimeMode&&e.interactionMode===t.interactionMode&&e.tokenMode===t.tokenMode&&e.error===t.error&&e.createdAt===t.createdAt&&e.archivedAt===t.archivedAt&&e.settledOverride===t.settledOverride&&e.settledAt===t.settledAt&&e.updatedAt===t.updatedAt&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.worktreeId===t.worktreeId&&e.manualStatusBucket===t.manualStatusBucket&&e.manualPosition===t.manualPosition&&uy(e.goal,t.goal)}function gy(e,t){return e!==void 0&&e.id===t.id&&e.environmentId===t.environmentId&&e.projectId===t.projectId&&e.title===t.title&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.origin===t.origin&&e.prNumber===t.prNumber&&e.issueNumber===t.issueNumber&&e.prTitle===t.prTitle&&e.issueTitle===t.issueTitle&&e.prState===t.prState&&e.prIsDraft===t.prIsDraft&&e.issueState===t.issueState&&e.workItemProvider===t.workItemProvider&&e.workItemKey===t.workItemKey&&e.workItemTitle===t.workItemTitle&&e.workItemState===t.workItemState&&e.workItemStateName===t.workItemStateName&&e.workItemUrl===t.workItemUrl&&e.createdAt===t.createdAt&&e.updatedAt===t.updatedAt&&e.archivedAt===t.archivedAt&&e.manualPosition===t.manualPosition}function _y(e,t){return e!==void 0&&dy(e.latestTurn,t.latestTurn)&&ly(e.pendingSourceProposedPlan,t.pendingSourceProposedPlan)}function vy(e,t){return e.includes(t)?[...e]:[...e,t]}function yy(e,t){return e.filter(e=>e!==t)}function by(e){return{ids:e.messages.map(e=>e.id),byId:Object.fromEntries(e.messages.map(e=>[e.id,e]))}}function xy(e){return Sy(e.activities)}function Sy(e){return{ids:e.map(e=>e.id),byId:Object.fromEntries(e.map(e=>[e.id,e]))}}function Cy(e){return{ids:e.proposedPlans.map(e=>e.id),byId:Object.fromEntries(e.proposedPlans.map(e=>[e.id,e]))}}function wy(e){return{ids:e.turnDiffSummaries.map(e=>e.turnId),byId:Object.fromEntries(e.turnDiffSummaries.map(e=>[e.turnId,e]))}}function Ty(e){return e.projectIds.flatMap(t=>{let n=e.projectById[t];return n?[n]:[]})}function Ey(e){return e.threadIds.flatMap(t=>{let n=Bv(e,t);return n?[n]:[]})}function Dy(e,t,n,r){let i=e;if(e.threadIds.includes(t)||(i={...i,threadIds:[...i.threadIds,t]}),r!==n){let e=i.threadIdsByProjectId;if(r){let n=e[r]??Gv,i=yy(n,t);if(i.length===0){let{[r]:t,...n}=e;e=n}else Yv(n,i)||(e={...e,[r]:i})}let a=e[n]??Gv,o=vy(a,t);Yv(a,o)||(e={...e,[n]:o}),e!==i.threadIdsByProjectId&&(i={...i,threadIdsByProjectId:e})}return i}function Oy(e,t,n){let r=e.pendingMessagesByThreadId[t.id]??[],i=r.length===0?t:{...t,messages:[...t.messages,...r].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id))},a=sy(t),o=cy(t),s=e.threadShellById[t.id],c=e.threadTurnStateById[t.id],l=Dy(e,t.id,t.projectId,n?.projectId);if(hy(s,a)||(l={...l,threadShellById:{...l.threadShellById,[t.id]:a}}),fy(n?.session??null,t.session)||(l={...l,threadSessionById:{...l.threadSessionById,[t.id]:t.session}}),_y(c,o)||(l={...l,threadTurnStateById:{...l.threadTurnStateById,[t.id]:o}}),n?.messages!==i.messages){let e=by(i);l={...l,messageIdsByThreadId:{...l.messageIdsByThreadId,[i.id]:e.ids},messageByThreadId:{...l.messageByThreadId,[i.id]:e.byId}}}if(r.length>0){let{[i.id]:e,...t}=l.pendingMessagesByThreadId;l={...l,pendingMessagesByThreadId:t}}if(n?.activities!==t.activities){let e=xy(t);l={...l,activityIdsByThreadId:{...l.activityIdsByThreadId,[t.id]:e.ids},activityByThreadId:{...l.activityByThreadId,[t.id]:e.byId}}}if(n?.proposedPlans!==t.proposedPlans){let e=Cy(t);l={...l,proposedPlanIdsByThreadId:{...l.proposedPlanIdsByThreadId,[t.id]:e.ids},proposedPlanByThreadId:{...l.proposedPlanByThreadId,[t.id]:e.byId}}}if(n?.turnDiffSummaries!==t.turnDiffSummaries){let e=wy(t);l={...l,turnDiffIdsByThreadId:{...l.turnDiffIdsByThreadId,[t.id]:e.ids},turnDiffSummaryByThreadId:{...l.turnDiffSummaryByThreadId,[t.id]:e.byId}}}return l}function ky(e,t){let n=e.threadShellById[t.shell.id],r=Dy(e,t.shell.id,t.shell.projectId,n?.projectId);return hy(n,t.shell)||(r={...r,threadShellById:{...r.threadShellById,[t.shell.id]:t.shell}}),fy(e.threadSessionById[t.shell.id]??null,t.session)||(r={...r,threadSessionById:{...r.threadSessionById,[t.shell.id]:t.session}}),_y(e.threadTurnStateById[t.shell.id],t.turnState)||(r={...r,threadTurnStateById:{...r.threadTurnStateById,[t.shell.id]:t.turnState}}),py(e.sidebarThreadSummaryById[t.shell.id],t.summary)||(r={...r,sidebarThreadSummaryById:{...r.sidebarThreadSummaryById,[t.shell.id]:t.summary}}),r}function Ay(e,t){return Object.fromEntries(Object.entries(e).flatMap(([e,n])=>t.has(e)?[[e,n]]:[]))}function jy(e,t){let n=e.threadShellById[t];if(!n)return e;let r=yy(e.threadIds,t),i=yy(e.threadIdsByProjectId[n.projectId]??Gv,t),a=i.length===0?(()=>{let{[n.projectId]:t,...r}=e.threadIdsByProjectId;return r})():{...e.threadIdsByProjectId,[n.projectId]:i},{[t]:o,...s}=e.threadShellById,{[t]:c,...l}=e.threadSessionById,{[t]:u,...d}=e.threadTurnStateById,{[t]:f,...p}=e.messageIdsByThreadId,{[t]:m,...h}=e.messageByThreadId,{[t]:g,..._}=e.pendingMessagesByThreadId,{[t]:v,...y}=e.activityIdsByThreadId,{[t]:b,...x}=e.activityByThreadId,{[t]:S,...C}=e.proposedPlanIdsByThreadId,{[t]:w,...T}=e.proposedPlanByThreadId,{[t]:E,...D}=e.turnDiffIdsByThreadId,{[t]:O,...k}=e.turnDiffSummaryByThreadId,{[t]:A,...j}=e.threadHistoryByThreadId??{},{[t]:M,...N}=e.threadHistoryLoadByThreadId??{},{[t]:P,...F}=e.sidebarThreadSummaryById;return{...e,threadIds:r,threadIdsByProjectId:a,threadShellById:s,threadSessionById:l,threadTurnStateById:d,messageIdsByThreadId:p,messageByThreadId:h,pendingMessagesByThreadId:_,activityIdsByThreadId:y,activityByThreadId:x,proposedPlanIdsByThreadId:C,proposedPlanByThreadId:T,turnDiffIdsByThreadId:D,turnDiffSummaryByThreadId:k,threadHistoryByThreadId:j,threadHistoryLoadByThreadId:N,sidebarThreadSummaryById:F}}function My(e,t){let n=e.environmentStateById[t.environmentId];return n?eb(e,t.environmentId,jy(n,t.threadId)):e}function Ny(e,t){let n=e.worktreeById??{},r=e.worktreeIds??Kv,i=n[t.id],a=i!==void 0&&i.projectId!==t.projectId,o=r.includes(t.id)?r:[...r,t.id],s=e.worktreeIdsByProjectId??{},c=s[t.projectId]??[];if(gy(i,t)&&r.includes(t.id)&&c.includes(t.id))return e;if(a){let e=yy(s[i.projectId]??[],t.id);if(e.length===0){let{[i.projectId]:e,...t}=s;s=t}else s={...s,[i.projectId]:e}}let l=s[t.projectId]??[];return l.includes(t.id)||(s={...s,[t.projectId]:[...l,t.id]}),i===void 0&&o===r&&(o=[...o]),{...e,worktreeIds:o,worktreeIdsByProjectId:s,worktreeById:{...n,[t.id]:t}}}function Py(e,t){let n=e.worktreeById??{},r=n[t];if(!r)return e;let{[t]:i,...a}=n,o=e.worktreeIdsByProjectId??{},s=yy(o[r.projectId]??[],t),c=s.length===0?Object.fromEntries(Object.entries(o).filter(([e])=>e!==r.projectId)):{...o,[r.projectId]:s};return{...e,worktreeIds:yy(e.worktreeIds??Kv,t),worktreeIdsByProjectId:c,worktreeById:a}}function Fy(e){return e===`error`?`error`:e===`missing`?`interrupted`:`completed`}function Iy(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;return e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)}function Ly(e){let t=e.previous?.turnId===e.turnId?e.previous.sourceProposedPlan:e.sourceProposedPlan;return{turnId:e.turnId,state:e.state,requestedAt:e.requestedAt,startedAt:e.startedAt,completedAt:e.completedAt,assistantMessageId:e.assistantMessageId,...t?{sourceProposedPlan:t}:{}}}function Ry(e,t,n){let r=new Set;for(let n of e){if(n.role===`system`){r.add(n.id);continue}n.turnId!==void 0&&n.turnId!==null&&t.has(n.turnId)&&r.add(n.id)}let i=e.filter(e=>e.role===`user`&&r.has(e.id)).length,a=Math.max(0,n-i);if(a>0){let n=e.filter(e=>e.role===`user`&&!r.has(e.id)&&(e.turnId===void 0||e.turnId===null||t.has(e.turnId))).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(0,a);for(let e of n)r.add(e.id)}let o=e.filter(e=>e.role===`assistant`&&r.has(e.id)).length,s=Math.max(0,n-o);if(s>0){let n=e.filter(e=>e.role===`assistant`&&!r.has(e.id)&&(e.turnId===void 0||e.turnId===null||t.has(e.turnId))).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(0,s);for(let e of n)r.add(e.id)}return e.filter(e=>r.has(e.id))}function zy(e,t){return e.filter(e=>e.turnId===null||t.has(e.turnId))}function By(e,t){return e.filter(e=>e.turnId===null||t.has(e.turnId))}function Vy(e){switch(e){case`starting`:return`connecting`;case`running`:return`running`;case`error`:return`error`;case`ready`:case`interrupted`:return`ready`;case`idle`:case`stopped`:return`closed`}}function Hy(e){return _(Xt)(e)?e:Xt.make(`codex`)}function Z(e,t,n){let r=Bv(e,t);if(!r)return e;let i=n(r);return i===r?e:Oy(e,i,r)}function Uy(e,t,n){let r=e.threadShellById[t];return!r||r.updatedAt===n?e:{...e,threadShellById:{...e.threadShellById,[t]:{...r,updatedAt:n}}}}function Wy(e,t,n){let r=e.threadShellById[t],i=e.sidebarThreadSummaryById[t];if(!r&&!i)return e;let a=!r||r.settledOverride===n.settledOverride&&r.settledAt===n.settledAt&&r.updatedAt===n.updatedAt,o=!i||i.settledOverride===n.settledOverride&&i.settledAt===n.settledAt&&i.updatedAt===n.updatedAt;return a&&o?e:{...e,...r?{threadShellById:{...e.threadShellById,[t]:{...r,...n}}}:{},...i?{sidebarThreadSummaryById:{...e.sidebarThreadSummaryById,[t]:{...i,...n}}}:{}}}function Gy(e,t){return{...e,text:t.streaming?`${e.text}${t.text}`:t.text.length>0?t.text:e.text,streaming:t.streaming,...t.turnId===void 0?{}:{turnId:t.turnId},...t.streaming?e.completedAt===void 0?{}:{completedAt:e.completedAt}:t.completedAt===void 0?{}:{completedAt:t.completedAt},...t.attachments===void 0?{}:{attachments:t.attachments}}}function Ky(e,t,n){let r=e.pendingMessagesByThreadId[t]??[],i=r.find(e=>e.id===n.id)?r.map(e=>e.id===n.id?Gy(e,n):e):[...r,n];return{...e,pendingMessagesByThreadId:{...e.pendingMessagesByThreadId,[t]:i}}}function qy(e,t,n,r){let i=e.turnDiffSummaryByThreadId[t],a=i?.[n];return!i||!a||a.assistantMessageId===r?e:{...e,turnDiffSummaryByThreadId:{...e.turnDiffSummaryByThreadId,[t]:{...i,[n]:{...a,assistantMessageId:r}}}}}function Jy(e,t,n){let r=$v(n,{id:t.payload.messageId,role:t.payload.role,text:t.payload.text,...t.payload.attachments===void 0?{}:{attachments:t.payload.attachments},...t.payload.dispatchMode===void 0?{}:{dispatchMode:t.payload.dispatchMode},turnId:t.payload.turnId,streaming:t.payload.streaming,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt}),i=t.payload.threadId;if(!e.threadShellById[i])return Ky(e,i,r);let a=e.messageIdsByThreadId[i]??qv,o=e.messageByThreadId[i]??{},s=e.pendingMessagesByThreadId[i]??[],c=s.find(e=>e.id===r.id),l=o[r.id]??c,u=l?Gy(l,r):r,d=a,f={...o,[r.id]:u},p=e.pendingMessagesByThreadId;if(!o[r.id]&&!a.includes(r.id)&&(d=[...a,r.id],d.length>Uv)){let e=d.slice(-2e3),t=new Set(e);f=Object.fromEntries(Object.entries(f).filter(([e])=>t.has(e))),d=e}if(c){let t=s.filter(e=>e.id!==r.id);if(t.length===0){let{[i]:t,...n}=e.pendingMessagesByThreadId;p=n}else p={...e.pendingMessagesByThreadId,[i]:t}}let m={...e,pendingMessagesByThreadId:p,messageIdsByThreadId:d===a?e.messageIdsByThreadId:{...e.messageIdsByThreadId,[i]:d},messageByThreadId:{...e.messageByThreadId,[i]:f}};if(t.payload.role===`assistant`&&t.payload.turnId!==null){m=qy(m,i,t.payload.turnId,t.payload.messageId);let e=m.threadTurnStateById[i],n=e?.latestTurn??null;if(n===null||n.turnId===t.payload.turnId){let r={latestTurn:Ly({previous:n,turnId:t.payload.turnId,state:t.payload.streaming?`running`:n?.state===`interrupted`?`interrupted`:n?.state===`error`?`error`:`completed`,requestedAt:n?.turnId===t.payload.turnId?n.requestedAt:t.payload.createdAt,startedAt:n?.turnId===t.payload.turnId?n.startedAt??t.payload.createdAt:t.payload.createdAt,sourceProposedPlan:e?.pendingSourceProposedPlan,completedAt:t.payload.streaming?n?.turnId===t.payload.turnId?n.completedAt??null:null:t.payload.updatedAt,assistantMessageId:t.payload.messageId}),...e?.pendingSourceProposedPlan?{pendingSourceProposedPlan:e.pendingSourceProposedPlan}:{}};_y(e,r)||(m={...m,threadTurnStateById:{...m.threadTurnStateById,[i]:r}})}}return Uy(m,i,t.occurredAt)}function Yy(e,t,n){let r=e.length>0?t[e[e.length-1]]:void 0;if(!r||Iy(r,n)<=0)return[...e,n.id];let i=[...e],a=i.findIndex(e=>{let r=t[e];return r?Iy(n,r)<0:!1});return a===-1?i.push(n.id):i.splice(a,0,n.id),i}function Xy(e,t){let n=t.payload.threadId;if(!e.threadShellById[n])return e;let r={...t.payload.activity},i=e.activityIdsByThreadId[n]??Jv,a=e.activityByThreadId[n]??{},o=a[r.id],s=o!==void 0&&(o.createdAt!==r.createdAt||o.sequence!==r.sequence),c=i,l={...a,[r.id]:r};if(o?s&&(c=Yy(i.filter(e=>e!==r.id),l,r)):c=Yy(i,a,r),c.length>Wv){let e=Sy(wv(c.flatMap(e=>{let t=l[e];return t?[t]:[]}),Wv));c=e.ids,l=e.byId}return Uy({...e,activityIdsByThreadId:c===i?e.activityIdsByThreadId:{...e.activityIdsByThreadId,[n]:c},activityByThreadId:{...e.activityByThreadId,[n]:l}},n,t.occurredAt)}function Zy(e){return{projectIds:e.map(e=>e.id),projectById:Object.fromEntries(e.map(e=>[e.id,e]))}}function Qy(e){let t={};for(let n of e)t[n.projectId]=[...t[n.projectId]??[],n.id];return{worktreeIds:e.map(e=>e.id),worktreeIdsByProjectId:t,worktreeById:Object.fromEntries(e.map(e=>[e.id,e]))}}function $y(e,t){return e.environmentStateById[t]??Vv}function eb(e,t,n){let r=e.environmentStateById[t]===n?e.environmentStateById:{...e.environmentStateById,[t]:n};return r===e.environmentStateById?e:{...e,environmentStateById:r}}function tb(e,t,n){let r=t.projects.map(e=>ry(e,n)),i=(t.worktrees??[]).map(e=>iy(e,n)),a=new Set(t.threads.map(e=>e.id)),o={...e,...Zy(r),...Qy(i),threadIds:[],threadIdsByProjectId:{},threadShellById:{},threadSessionById:{},threadTurnStateById:{},sidebarThreadSummaryById:{},messageIdsByThreadId:Ay(e.messageIdsByThreadId,a),messageByThreadId:Ay(e.messageByThreadId,a),pendingMessagesByThreadId:Ay(e.pendingMessagesByThreadId,a),activityIdsByThreadId:Ay(e.activityIdsByThreadId,a),activityByThreadId:Ay(e.activityByThreadId,a),proposedPlanIdsByThreadId:Ay(e.proposedPlanIdsByThreadId,a),proposedPlanByThreadId:Ay(e.proposedPlanByThreadId,a),turnDiffIdsByThreadId:Ay(e.turnDiffIdsByThreadId,a),turnDiffSummaryByThreadId:Ay(e.turnDiffSummaryByThreadId,a),threadHistoryByThreadId:Ay(e.threadHistoryByThreadId??{},a),threadHistoryLoadByThreadId:Ay(e.threadHistoryLoadByThreadId??{},a),bootstrapComplete:!0,hydratedFromCacheAt:void 0};for(let e of t.threads)o=ky(o,oy(e,n));return o}function nb(e,t,n){return eb(e,n,tb($y(e,n),t,n))}function rb(e,t,n){let r=$y(e,n),i=Bv(r,t.id);return eb(e,n,Oy(r,ay(t,n),i))}var ib={oldestCursor:null,newestCursor:null,hasMoreBefore:!1};function ab(e,t){let n=e?.[t.collection];return{messages:e?.messages??ib,proposedPlans:e?.proposedPlans??ib,activities:e?.activities??ib,checkpoints:e?.checkpoints??ib,[t.collection]:{oldestCursor:t.page.oldestCursor??n?.oldestCursor??null,newestCursor:n?.newestCursor??t.page.newestCursor,hasMoreBefore:t.page.hasMoreBefore}}}function ob(e,t,n,r){let i=e;if(t.collection===`messages`){let a={...e.messageByThreadId[n]};for(let e of t.items)a[e.id]=$v(r,e);let o=Object.values(a).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(-2e3).map(e=>e.id),s=new Set(o);i={...i,messageIdsByThreadId:{...i.messageIdsByThreadId,[n]:o},messageByThreadId:{...i.messageByThreadId,[n]:Object.fromEntries(Object.entries(a).filter(([e])=>s.has(e)))}}}else if(t.collection===`activities`){let r={...e.activityByThreadId[n]};for(let e of t.items)r[e.id]={...e};let a=Sy(wv(Object.values(r).toSorted(Iy),Wv));i={...i,activityIdsByThreadId:{...i.activityIdsByThreadId,[n]:a.ids},activityByThreadId:{...i.activityByThreadId,[n]:a.byId}}}else if(t.collection===`proposedPlans`){let r={...e.proposedPlanByThreadId[n]};for(let e of t.items)r[e.id]=ey(e);let a=Object.values(r).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(-200);i={...i,proposedPlanIdsByThreadId:{...i.proposedPlanIdsByThreadId,[n]:a.map(e=>e.id)},proposedPlanByThreadId:{...i.proposedPlanByThreadId,[n]:Object.fromEntries(a.map(e=>[e.id,e]))}}}else{let r={...e.turnDiffSummaryByThreadId[n]};for(let e of t.items)r[e.turnId]=ty(e);let a=Object.values(r).toSorted((e,t)=>(e.checkpointTurnCount??-1)-(t.checkpointTurnCount??-1)||e.turnId.localeCompare(t.turnId)).slice(-500);i={...i,turnDiffIdsByThreadId:{...i.turnDiffIdsByThreadId,[n]:a.map(e=>e.turnId)},turnDiffSummaryByThreadId:{...i.turnDiffSummaryByThreadId,[n]:Object.fromEntries(a.map(e=>[e.turnId,e]))}}}return{...i,threadHistoryByThreadId:{...i.threadHistoryByThreadId,[n]:ab(e.threadHistoryByThreadId?.[n],t)}}}function sb(e,t,n){let r=rb(e,t.thread,n),i=$y(r,n),{[t.thread.id]:a,...o}=i.threadHistoryLoadByThreadId??{};return eb(r,n,{...i,threadHistoryByThreadId:{...i.threadHistoryByThreadId,[t.thread.id]:t.history},threadHistoryLoadByThreadId:o})}function cb(e,t,n,r){return eb(e,r,ob($y(e,r),t,n,r))}function lb(e,t){let n=$y(e,t.environmentId);return eb(e,t.environmentId,{...n,threadHistoryLoadByThreadId:{...n.threadHistoryLoadByThreadId,[t.threadId]:{...n.threadHistoryLoadByThreadId?.[t.threadId],[t.collection]:t.loadState}}})}function ub(e,t,n){switch(t.type){case`project.created`:{let r=ry({id:t.payload.projectId,title:t.payload.title,workspaceRoot:t.payload.workspaceRoot,projectMetadataDir:t.payload.projectMetadataDir,repositoryIdentity:t.payload.repositoryIdentity??null,defaultModelSelection:t.payload.defaultModelSelection,scripts:t.payload.scripts,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt,deletedAt:null},n),i=e.projectIds.find(n=>n===t.payload.projectId||e.projectById[n]?.cwd===t.payload.workspaceRoot)??null,a=e.projectById,o=e.projectIds;if(i!==null&&i!==r.id){let{[i]:t,...n}=e.projectById;a={...n,[r.id]:r},o=e.projectIds.map(e=>e===i?r.id:e)}else a={...e.projectById,[r.id]:r},o=i===null&&!e.projectIds.includes(r.id)?[...e.projectIds,r.id]:e.projectIds;return{...e,projectById:a,projectIds:o}}case`project.meta-updated`:{let n=e.projectById[t.payload.projectId];if(!n)return e;let r={...n,...t.payload.title===void 0?{}:{name:t.payload.title},...t.payload.workspaceRoot===void 0?{}:{cwd:t.payload.workspaceRoot},...t.payload.projectMetadataDir===void 0?{}:{projectMetadataDir:t.payload.projectMetadataDir},...t.payload.repositoryIdentity===void 0?{}:{repositoryIdentity:t.payload.repositoryIdentity??null},...t.payload.defaultModelSelection===void 0?{}:{defaultModelSelection:t.payload.defaultModelSelection?Xv(t.payload.defaultModelSelection):null},...t.payload.scripts===void 0?{}:{scripts:Zv(t.payload.scripts)},...t.payload.preferredRemoteName===void 0?{}:{preferredRemoteName:t.payload.preferredRemoteName??null},updatedAt:t.payload.updatedAt};return{...e,projectById:{...e.projectById,[t.payload.projectId]:r}}}case`project.avatar-set`:{let n=e.projectById[t.payload.projectId];return n?{...e,projectById:{...e.projectById,[t.payload.projectId]:{...n,customAvatarContentHash:t.payload.contentHash??null,updatedAt:t.payload.updatedAt}}}:e}case`project.deleted`:{if(!e.projectById[t.payload.projectId])return e;let{[t.payload.projectId]:n,...r}=e.projectById;return{...e,projectById:r,projectIds:yy(e.projectIds,t.payload.projectId)}}case`thread.created`:{let r=Bv(e,t.payload.threadId);return Oy(e,ay({id:t.payload.threadId,projectId:t.payload.projectId,title:t.payload.title,modelSelection:t.payload.modelSelection,runtimeMode:t.payload.runtimeMode,interactionMode:t.payload.interactionMode,tokenMode:t.payload.tokenMode??`balanced`,branch:t.payload.branch,worktreePath:t.payload.worktreePath,worktreeId:null,manualStatusBucket:null,manualPosition:0,latestTurn:null,goal:null,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt,archivedAt:null,settledOverride:null,settledAt:null,deletedAt:null,messages:[],proposedPlans:[],activities:[],checkpoints:[],session:null},n),r)}case`thread.deleted`:return jy(e,t.payload.threadId);case`thread.archived`:return Z(e,t.payload.threadId,e=>({...e,archivedAt:t.payload.archivedAt,updatedAt:t.payload.updatedAt}));case`thread.unarchived`:return Z(e,t.payload.threadId,e=>({...e,archivedAt:null,updatedAt:t.payload.updatedAt}));case`thread.settled`:return Wy(e,t.payload.threadId,{settledOverride:`settled`,settledAt:t.payload.settledAt,updatedAt:t.payload.updatedAt});case`thread.unsettled`:return Wy(e,t.payload.threadId,{settledOverride:t.payload.reason===`user`?`active`:null,settledAt:null,updatedAt:t.payload.updatedAt});case`thread.meta-updated`:return Z(e,t.payload.threadId,e=>({...e,...t.payload.title===void 0?{}:{title:t.payload.title},...t.payload.modelSelection===void 0?{}:{modelSelection:Xv(t.payload.modelSelection)},...t.payload.branch===void 0?{}:{branch:t.payload.branch},...t.payload.worktreePath===void 0?{}:{worktreePath:t.payload.worktreePath},updatedAt:t.payload.updatedAt}));case`thread.runtime-mode-set`:return Z(e,t.payload.threadId,e=>({...e,runtimeMode:t.payload.runtimeMode,updatedAt:t.payload.updatedAt}));case`thread.interaction-mode-set`:return Z(e,t.payload.threadId,e=>({...e,interactionMode:t.payload.interactionMode,updatedAt:t.payload.updatedAt}));case`thread.token-mode-set`:return Z(e,t.payload.threadId,e=>({...e,tokenMode:t.payload.tokenMode??`balanced`,updatedAt:t.payload.updatedAt}));case`thread.goal-updated`:return Z(e,t.payload.threadId,e=>({...e,goal:t.payload.goal,updatedAt:t.payload.goal.updatedAt}));case`thread.goal-cleared`:return Z(e,t.payload.threadId,e=>({...e,goal:null,updatedAt:t.payload.updatedAt}));case`thread.turn-start-requested`:return Z(e,t.payload.threadId,e=>({...e,...t.payload.modelSelection===void 0?{}:{modelSelection:Xv(t.payload.modelSelection)},runtimeMode:t.payload.runtimeMode,interactionMode:t.payload.interactionMode,tokenMode:t.payload.tokenMode,pendingSourceProposedPlan:t.payload.sourceProposedPlan,updatedAt:t.occurredAt}));case`thread.turn-interrupt-requested`:return t.payload.turnId===void 0?e:Z(e,t.payload.threadId,e=>{let n=e.latestTurn;return n===null||n.turnId!==t.payload.turnId?e:{...e,latestTurn:Ly({previous:n,turnId:t.payload.turnId,state:`interrupted`,requestedAt:n.requestedAt,startedAt:n.startedAt??t.payload.createdAt,completedAt:n.completedAt??t.payload.createdAt,assistantMessageId:n.assistantMessageId}),updatedAt:t.occurredAt}});case`thread.message-sent`:return Jy(e,t,n);case`thread.session-set`:return Z(e,t.payload.threadId,e=>({...e,session:Qv(t.payload.session),error:wr(t.payload.session.lastError),latestTurn:t.payload.session.status===`running`&&t.payload.session.activeTurnId!==null?Ly({previous:e.latestTurn,turnId:t.payload.session.activeTurnId,state:`running`,requestedAt:e.latestTurn?.turnId===t.payload.session.activeTurnId?e.latestTurn.requestedAt:t.payload.session.updatedAt,startedAt:e.latestTurn?.turnId===t.payload.session.activeTurnId?e.latestTurn.startedAt??t.payload.session.updatedAt:t.payload.session.updatedAt,completedAt:null,assistantMessageId:e.latestTurn?.turnId===t.payload.session.activeTurnId?e.latestTurn.assistantMessageId:null,sourceProposedPlan:e.pendingSourceProposedPlan}):e.latestTurn,updatedAt:t.occurredAt}));case`thread.session-stop-requested`:return Z(e,t.payload.threadId,e=>e.session===null?e:{...e,session:{...e.session,status:`closed`,orchestrationStatus:`stopped`,activeTurnId:void 0,updatedAt:t.payload.createdAt},updatedAt:t.occurredAt});case`thread.proposed-plan-upserted`:return Z(e,t.payload.threadId,e=>{let n=ey(t.payload.proposedPlan),r=[...e.proposedPlans.filter(e=>e.id!==n.id),n].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(-200);return{...e,proposedPlans:r,updatedAt:t.occurredAt}});case`thread.turn-diff-completed`:return Z(e,t.payload.threadId,e=>{let n=ty({turnId:t.payload.turnId,checkpointTurnCount:t.payload.checkpointTurnCount,checkpointRef:t.payload.checkpointRef,status:t.payload.status,files:t.payload.files,assistantMessageId:t.payload.assistantMessageId,completedAt:t.payload.completedAt}),r=e.turnDiffSummaries.find(e=>e.turnId===n.turnId);if(r&&r.status!==`missing`&&n.status===`missing`)return e;let i=[...e.turnDiffSummaries.filter(e=>e.turnId!==n.turnId),n].toSorted((e,t)=>(e.checkpointTurnCount??2**53-1)-(t.checkpointTurnCount??2**53-1)).slice(-500),a=e.latestTurn===null||e.latestTurn.turnId===t.payload.turnId?Ly({previous:e.latestTurn,turnId:t.payload.turnId,state:Fy(t.payload.status),requestedAt:e.latestTurn?.requestedAt??t.payload.completedAt,startedAt:e.latestTurn?.startedAt??t.payload.completedAt,completedAt:t.payload.completedAt,assistantMessageId:t.payload.assistantMessageId,sourceProposedPlan:e.pendingSourceProposedPlan}):e.latestTurn;return{...e,turnDiffSummaries:i,latestTurn:a,updatedAt:t.occurredAt}});case`thread.reverted`:return Z(e,t.payload.threadId,e=>{let n=e.turnDiffSummaries.filter(e=>e.checkpointTurnCount!==void 0&&e.checkpointTurnCount<=t.payload.turnCount).toSorted((e,t)=>(e.checkpointTurnCount??2**53-1)-(t.checkpointTurnCount??2**53-1)).slice(-500),r=new Set(n.map(e=>e.turnId)),i=Ry(e.messages,r,t.payload.turnCount).slice(-2e3),a=By(e.proposedPlans,r).slice(-200),o=zy(e.activities,r),s=n.at(-1)??null;return{...e,turnDiffSummaries:n,messages:i,proposedPlans:a,activities:o,pendingSourceProposedPlan:void 0,latestTurn:s===null?null:{turnId:s.turnId,state:Fy(s.status??`ready`),requestedAt:s.completedAt,startedAt:s.completedAt,completedAt:s.completedAt,assistantMessageId:s.assistantMessageId??null},updatedAt:t.occurredAt}});case`thread.activity-appended`:return Xy(e,t);case`worktree.created`:return Ny(e,iy({worktreeId:t.payload.worktreeId,projectId:t.payload.projectId,title:null,branch:t.payload.branch,worktreePath:t.payload.worktreePath,origin:t.payload.origin,prNumber:t.payload.prNumber,issueNumber:t.payload.issueNumber,prTitle:t.payload.prTitle,issueTitle:t.payload.issueTitle,prState:null,prIsDraft:null,issueState:null,workItemProvider:t.payload.workItemProvider??null,workItemKey:t.payload.workItemKey??null,workItemTitle:t.payload.workItemTitle??null,workItemState:t.payload.workItemState??null,workItemStateName:t.payload.workItemStateName??null,workItemUrl:t.payload.workItemUrl??null,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt,archivedAt:null,manualPosition:0},n));case`worktree.archived`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Ny(e,{...n,archivedAt:t.payload.archivedAt,updatedAt:t.payload.archivedAt}):e}case`worktree.metaUpdated`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Ny(e,{...n,...t.payload.title===void 0?{}:{title:t.payload.title},...t.payload.branch===void 0?{}:{branch:t.payload.branch},updatedAt:t.payload.changedAt}):e}case`worktree.sourceControlStateUpdated`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Ny(e,{...n,...t.payload.prNumber===void 0?{}:{prNumber:t.payload.prNumber},...t.payload.prTitle===void 0?{}:{prTitle:t.payload.prTitle},prState:t.payload.prState,prIsDraft:t.payload.prIsDraft,issueState:t.payload.issueState,updatedAt:t.payload.updatedAt}):e}case`worktree.restored`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Ny(e,{...n,archivedAt:null,updatedAt:t.payload.restoredAt}):e}case`worktree.deleted`:return Py(e,t.payload.worktreeId);case`thread.attachedToWorktree`:return Z(e,t.payload.threadId,e=>({...e,worktreeId:t.payload.worktreeId,updatedAt:t.payload.attachedAt}));case`thread.statusBucketOverridden`:return Z(e,t.payload.threadId,e=>({...e,manualStatusBucket:t.payload.bucket,updatedAt:t.payload.changedAt}));case`thread.approval-response-requested`:case`thread.user-input-response-requested`:return e}return e}function db(e,t,n){switch(t.kind){case`project-upserted`:{let r=ry(t.project,n),i=e.projectIds.find(n=>n===t.project.id||e.projectById[n]?.cwd===t.project.workspaceRoot)??null,a=e.projectById,o=e.projectIds;if(i!==null&&i!==r.id){let{[i]:t,...n}=e.projectById;a={...n,[r.id]:r},o=e.projectIds.map(e=>e===i?r.id:e)}else a={...e.projectById,[r.id]:r},o=i===null&&!e.projectIds.includes(r.id)?[...e.projectIds,r.id]:e.projectIds;return{...e,projectById:a,projectIds:o}}case`project-removed`:{if(!e.projectById[t.projectId])return e;let{[t.projectId]:n,...r}=e.projectById;return{...e,projectById:r,projectIds:yy(e.projectIds,t.projectId)}}case`thread-upserted`:return ky(e,oy(t.thread,n));case`worktree-upserted`:return Ny(e,iy(t.worktree,n));case`thread-removed`:return jy(e,t.threadId);case`worktree-removed`:return Py(e,t.worktreeId)}}function fb(e,t,n){if(t.length===0)return e;let r=vv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=$y(e,n),s=eb(e,n,t.reduce((e,t)=>ub(e,t,n),o));return i&&r.observability.recordPerformance(`web.store.orchestration.events.apply`,t,{count:t.length,durationMs:r.clock.now()-a}),s}function pb(e){return Object.entries(e.environmentStateById)}function mb(e,t){return t?$y(e,t):Vv}function hb(e,t){return Ey(mb(e,t))}function gb(e){return pb(e).flatMap(([,e])=>Ty(e))}function _b(e){return pb(e).flatMap(([,e])=>Ey(e))}function vb(e){return pb(e).flatMap(([,e])=>e.threadIds.flatMap(t=>{let n=e.threadShellById[t];return n?[n]:[]}))}function yb(e){return pb(e).flatMap(([e,t])=>t.threadIds.flatMap(n=>{let r=t.sidebarThreadSummaryById[n];return r&&r.environmentId===e?[r]:[]}))}function bb(e){return pb(e).flatMap(([e,t])=>(t.worktreeIds??Kv).flatMap(n=>{let r=t.worktreeById?.[n];return r&&r.environmentId===e?[r]:[]}))}function xb(e,t){if(!t)return[];let n=mb(e,t.environmentId);return(n.worktreeIdsByProjectId?.[t.projectId]??[]).flatMap(e=>{let t=n.worktreeById?.[e];return t?[t]:[]})}function Sb(e,t){return t.length===0?[]:t.length===1?xb(e,t[0]):t.flatMap(t=>xb(e,t))}function Cb(e,t){if(!t)return[];let n=mb(e,t.environmentId);return(n.threadIdsByProjectId[t.projectId]??Gv).flatMap(e=>{let t=n.sidebarThreadSummaryById[e];return t?[t]:[]})}function wb(e,t){return t.length===0?[]:t.length===1?Cb(e,t[0]):t.flatMap(t=>Cb(e,t))}function Tb(e,t){return t?mb(e,t.environmentId).projectById[t.projectId]:void 0}function Eb(e,t){return t?Bv(mb(e,t.environmentId),t.threadId):void 0}function Db(e,t){return t?mb(e,t.environmentId).threadShellById[t.threadId]!==void 0:!1}function Ob(e,t){return t?mb(e,t.environmentId).sidebarThreadSummaryById[t.threadId]:void 0}function kb(e,t,n){let r=Z($y(e,t.environmentId),t.threadId,e=>e.error===n?e:{...e,error:n});return eb(e,t.environmentId,r)}function Ab(e,t,n){let r=vv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=eb(e,n,ub($y(e,n),t,n));return i&&r.observability.recordPerformance(`web.store.orchestration.event.apply`,t,{durationMs:r.clock.now()-a}),o}function jb(e,t,n){let r=vv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=eb(e,n,db($y(e,n),t,n));return i&&r.observability.recordPerformance(`web.store.orchestration.shell.apply`,t,{durationMs:r.clock.now()-a}),o}function Mb(e,t){return e.activeEnvironmentId===t?e:{...e,activeEnvironmentId:t}}function Nb(e,t){if(!e.environmentStateById[t]&&e.activeEnvironmentId!==t)return e;let{[t]:n,...r}=e.environmentStateById;return{...e,activeEnvironmentId:e.activeEnvironmentId===t?null:e.activeEnvironmentId,environmentStateById:r}}function Pb(e,t,n){if(e.environmentStateById[n])return e;let r={...Vv,...Zy(t.projects.filter(e=>e.environmentId===n)),...Qy(t.worktrees.filter(e=>e.environmentId===n)),hydratedFromCacheAt:t.capturedAt};for(let e of t.threads)e.shell.environmentId===n&&e.summary.environmentId===n&&(r=ky(r,{shell:e.shell,session:null,turnState:{latestTurn:e.summary.latestTurn,pendingSourceProposedPlan:e.summary.latestTurn?.sourceProposedPlan},summary:{...e.summary,modelSelection:e.summary.modelSelection??e.shell.modelSelection,session:null,backgroundLiveness:null}}));return eb(e,n,r)}function Fb(e,t,n){let r=e.environmentStateById[t];if(!r)return e;let i=Object.fromEntries(Object.keys(r.threadSessionById).map(e=>[e,null])),a=Object.fromEntries(Object.entries(r.sidebarThreadSummaryById).map(([e,t])=>[e,{...t,session:null,backgroundLiveness:null}]));return eb(e,t,{...r,threadSessionById:i,sidebarThreadSummaryById:a,bootstrapComplete:!1,hydratedFromCacheAt:n})}function Ib(e,t,n,r){let i=Z($y(e,t.environmentId),t.threadId,e=>{if(e.branch===n&&e.worktreePath===r)return e;let t=e.worktreePath!==r;return{...e,branch:n,worktreePath:r,...t?{session:null}:{}}});return eb(e,t.environmentId,i)}function Lb(e,t,n,r,i){let a=$y(e,t),o=a.worktreeById?.[n];return o?eb(e,t,Ny(a,{...o,title:r,updatedAt:i})):e}var Rb=8;function zb(e){let t=e.now??(()=>vv().clock.now()),n=e.schedule??(e=>vv().frameScheduler.scheduleFrame(e)),r=e.thresholdEventsPerMs??10,i=e.rateWindowMs??Rb,a=[],o=[],s=!1;function c(){if(o.length<2)return!1;let e=o[o.length-1]-o[0];return(e<=0?1/0:o.length/e)>r}function l(){if(s=!1,a.length===0)return;let t=a;a=[];let n=e.getState();for(let e of t)n=jb(n,e.event,e.environmentId);e.commitState(n)}function u(e,r){let u=t();o.push(u);let d=u-i;for(;o.length>0&&o[0]<d;)o.shift();if(a.push({event:e,environmentId:r}),c()){s||(s=!0,n(l));return}l()}return{enqueue:u,flush:l,hasPending:()=>a.length>0}}var Q=c((e,t)=>{let n=zb({getState:t,commitState:t=>e(t)});return{...Hv,setActiveEnvironmentId:t=>{n.flush(),e(e=>Mb(e,t))},removeEnvironmentState:t=>{n.flush(),e(e=>Nb(e,t))},hydrateEnvironmentStateFromCache:(t,r)=>{n.flush(),e(e=>Pb(e,t,r))},demoteEnvironmentStateToCachedSnapshot:(t,r)=>{n.flush(),e(e=>Fb(e,t,r))},syncServerShellSnapshot:(t,r)=>{n.flush(),e(e=>nb(e,t,r))},syncServerThreadDetail:(t,r)=>{n.flush(),e(e=>rb(e,t,r))},syncServerThreadWindow:(t,r)=>{n.flush(),e(e=>sb(e,t,r))},syncServerThreadHistoryPage:(t,r,i)=>{n.flush(),e(e=>cb(e,t,r,i))},setServerThreadHistoryLoadState:t=>{n.flush(),e(e=>lb(e,t))},applyOrchestrationEvent:(t,r)=>{n.flush(),e(e=>Ab(e,t,r))},applyOrchestrationEvents:(t,r)=>{n.flush(),e(e=>fb(e,t,r))},applyShellEvent:(e,t)=>n.enqueue(e,t),removeThread:t=>{n.flush(),e(e=>My(e,t))},setThreadError:(t,r)=>{n.flush(),e(e=>kb(e,t,r))},setThreadBranch:(t,r,i)=>{n.flush(),e(e=>Ib(e,t,r,i))},setSidebarWorktreeTitle:(t,r,i,a)=>{n.flush(),e(e=>Lb(e,t,r,i,a))}}});function Bb(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Vb(e){if(e.latestUserMessageAt)return Bb(e.latestUserMessageAt)??-1/0;let t=null;for(let n of e.messages??[]){if(n.role!==`user`)continue;let e=Bb(n.createdAt);e!==null&&(t=t===null?e:Math.max(t,e))}return t===null?Bb(e.updatedAt??e.createdAt)??-1/0:t}function Hb(e,t){return t===`created_at`?Bb(e.createdAt)??-1/0:Vb(e)}function Ub(e,t){return e.toSorted((e,n)=>{let r=Hb(n,t),i=Hb(e,t),a=r===i?0:r>i?1:-1;return a===0?n.id.localeCompare(e.id):a})}function Wb(e,t,n){return Ub(e.filter(e=>e.projectId===t&&e.archivedAt===null),n)[0]??null}function Gb(e){return t=>e?mb(t,e.environmentId).projectById[e.projectId]:void 0}function Kb(e){let t,n,r;return i=>{let a=e(i);if(!a)return;let o=mb(i,a.environmentId);return r&&t===o&&n===a.threadId?r:(t=o,n=a.threadId,r=Bv(o,a.threadId),r)}}function qb(e){return Kb(()=>e)}function Jb(e){return Kb(t=>{if(e){for(let[n,r]of Object.entries(t.environmentStateById))if(r.threadShellById[e])return{environmentId:n,threadId:e}}})}var Yb=(e,t,n)=>t||(n?{id:e,createdAt:n.createdAt,updatedAt:n.updatedAt,latestUserMessageAt:null}:null);function Xb(e,t){let n,r,i,a,o,s=null;return c=>{if(!e)return n=void 0,r=void 0,i=void 0,o=null,s=null,null;let l=mb(c,e);if(n===l.threadIds&&r===l.sidebarThreadSummaryById&&i===l.threadShellById&&a===t)return s;let u=Ub(l.threadIds.flatMap(e=>{let t=Yb(e,l.sidebarThreadSummaryById[e],l.threadShellById[e]);return t?[t]:[]}),t)[0]?.id??null;return n=l.threadIds,r=l.sidebarThreadSummaryById,i=l.threadShellById,a=t,o!==u&&(o=u,s=u?{environmentId:e,threadId:u}:null),s}}gv(()=>{_v({clock:{now:()=>Hu.now()},frameScheduler:{scheduleFrame:e=>Uu.scheduleFrame(e)},observability:kd,isHostedHubMode:()=>l(),resolveAttachmentPreviewUrl:({environmentId:e,attachmentId:t})=>jg({environmentId:e,pathname:`/attachments/${encodeURIComponent(t)}`})})});function Zb(e){switch(e.type){case`activity`:return e.hasRunningSubprocess;case`started`:case`restarted`:case`exited`:return!1;default:return null}}function Qb(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}var $b={enabled:()=>!1,now:()=>0,record:()=>void 0};function ex(){let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,n)=>{e.set(t,n)},removeItem:t=>{e.delete(t)}}}var tx=`ryco:terminal-state:v1`,nx=[],rx=200;function ix(e,t){return t===1&&e&&typeof e==`object`?{terminalStateByThreadKey:Object.fromEntries(Object.entries(e.terminalStateByThreadKey??{}).filter(([e])=>s(e)))}:{terminalStateByThreadKey:{}}}function ax(e){let t=[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))];return t.length>0?t:[vi]}function ox(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 sx(e){return`group-${e}`}function cx(e,t){let n=e,r=2;for(;t.has(n);)n=`${e}-${r}`,r+=1;return t.add(n),n}function lx(e,t){return e.findIndex(e=>e.terminalIds.includes(t))}function ux(e){return[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))]}function dx(e,t){let n=new Set(t),r=new Set,i=[],a=new Set;for(let t of e){let e=ux(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():sx(e[0]??`default`);i.push({id:cx(o,a),terminalIds:e})}for(let e of t)r.has(e)||i.push({id:cx(sx(e),a),terminalIds:[e]});return i.length===0?[{id:sx(vi),terminalIds:[vi]}]:i}function fx(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 px(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||!fx(r.terminalIds,i.terminalIds))return!1}return!0}function mx(e,t){return e.terminalOpen===t.terminalOpen&&e.terminalHeight===t.terminalHeight&&e.activeTerminalId===t.activeTerminalId&&e.activeTerminalGroupId===t.activeTerminalGroupId&&fx(e.terminalIds,t.terminalIds)&&fx(e.runningTerminalIds,t.runningTerminalIds)&&px(e.terminalGroups,t.terminalGroups)}var hx=Object.freeze({terminalOpen:!1,terminalHeight:280,terminalIds:[vi],runningTerminalIds:[],activeTerminalId:vi,terminalGroups:[{id:sx(vi),terminalIds:[vi]}],activeTerminalGroupId:sx(vi)});function gx(){return{...hx,terminalIds:[...hx.terminalIds],runningTerminalIds:[...hx.runningTerminalIds],terminalGroups:Cx(hx.terminalGroups)}}function _x(){return hx}function vx(e){let t=ax(e.terminalIds),n=t.length>0?t:[vi],r=ox(e.runningTerminalIds,n),i=n.includes(e.activeTerminalId)?e.activeTerminalId:n[0]??`default`,a=dx(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??sx(`default`)};return mx(e,c)?e:c}function yx(e){return mx(vx(e),hx)}function bx(e){return e.trim().length>0}function xx(e){return p(e)}function Sx(e,t){return`${xx(e)}\u0000${t}`}function Cx(e){return e.map(e=>({id:e.id,terminalIds:[...e.terminalIds]}))}function wx(e,t,n,r){let i=Sx(n,r.terminalId),a=e[i]??nx,o={id:t,event:r},s=a.length>=rx?[...a.slice(1),o]:[...a,o];return{terminalEventEntriesByKey:{...e,[i]:s},nextTerminalEventId:t+1}}function Tx(e){return{cwd:e.snapshot.cwd,worktreePath:e.snapshot.worktreePath}}function Ex(e,t,n){let r=vx(e);if(!bx(t))return r;let i=!r.terminalIds.includes(t),a=i?[...r.terminalIds,t]:r.terminalIds,o=Cx(r.terminalGroups),s=lx(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=cx(sx(t),e);return o.push({id:n,terminalIds:[t]}),vx({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:n})}let c=o.findIndex(e=>e.id===r.activeTerminalGroupId);if(c<0&&(c=lx(o,r.activeTerminalId)),c<0){let e=new Set(o.map(e=>e.id)),t=cx(sx(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 vx({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:l.id})}function Dx(e,t){let n=vx(e);return n.terminalOpen===t?n:{...n,terminalOpen:t}}function Ox(e,t){let n=vx(e);return!Number.isFinite(t)||t<=0||n.terminalHeight===t?n:{...n,terminalHeight:t}}function kx(e,t){return Ex(e,t,`split`)}function Ax(e,t){return Ex(e,t,`new`)}function jx(e,t){let n=vx(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 Mx(e,t){let n=vx(e);if(!n.terminalIds.includes(t))return n;let r=n.terminalIds.filter(e=>e!==t);if(r.length===0)return gx();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??sx(a);return vx({terminalOpen:n.terminalOpen,terminalHeight:n.terminalHeight,terminalIds:r,runningTerminalIds:n.runningTerminalIds.filter(e=>e!==t),activeTerminalId:a,terminalGroups:o,activeTerminalGroupId:s})}function Nx(e,t,n){let r=vx(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 Px(e,t){return!t||t.threadId.length===0?_x():e[xx(t)]??_x()}function Fx(e,t,n){if(t.threadId.length===0)return e;let r=xx(t),i=Px(e,t),a=n(i);if(a===i)return e;if(yx(a)){if(e[r]===void 0)return e;let{[r]:t,...n}=e;return n}return{...e,[r]:a}}function Ix(e,t,n){return!t||t.threadId.length===0||n.trim().length===0?nx:e[Sx(t,n)]??nx}function Lx(e){let t=e?.storage??ex(),n=e?.observability??$b;return c()(Ci(e=>{let t=(t,n)=>{e(e=>{let r=Fx(e.terminalStateByThreadKey,t,n);return r===e.terminalStateByThreadKey?e:{terminalStateByThreadKey:r}})};return{terminalStateByThreadKey:{},terminalLaunchContextByThreadKey:{},terminalEventEntriesByKey:{},nextTerminalEventId:1,setTerminalOpen:(e,n)=>t(e,e=>Dx(e,n)),setTerminalHeight:(e,n)=>t(e,e=>Ox(e,n)),splitTerminal:(e,n)=>t(e,e=>kx(e,n)),newTerminal:(e,n)=>t(e,e=>Ax(e,n)),ensureTerminal:(e,n,r)=>t(e,e=>{let t=e;return e.terminalIds.includes(n)||(t=Ax(t,n)),r?.active===!1&&(t={...t,activeTerminalId:e.activeTerminalId,activeTerminalGroupId:e.activeTerminalGroupId}),(r?.active??!0)&&(t=jx(t,n)),r?.open&&(t=Dx(t,!0)),vx(t)}),setActiveTerminal:(e,n)=>t(e,e=>jx(e,n)),closeTerminal:(e,n)=>t(e,e=>Mx(e,n)),setTerminalLaunchContext:(t,n)=>e(e=>({terminalLaunchContextByThreadKey:{...e.terminalLaunchContextByThreadKey,[xx(t)]:n}})),clearTerminalLaunchContext:t=>e(e=>{let n=xx(t);if(!e.terminalLaunchContextByThreadKey[n])return e;let{[n]:r,...i}=e.terminalLaunchContextByThreadKey;return{terminalLaunchContextByThreadKey:i}}),setTerminalActivity:(e,n,r)=>t(e,e=>Nx(e,n,r)),recordTerminalEvent:(t,r)=>{let i=n.enabled(),a=i?n.now():0;e(e=>wx(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,r)),i&&n.record(`web.terminal.store.events.record`,r,n.now()-a)},applyTerminalEvent:(t,r)=>{let i=n.enabled(),a=i?n.now():0;e(e=>{let n=xx(t),i=e.terminalStateByThreadKey,a=e.terminalLaunchContextByThreadKey;(r.type===`started`||r.type===`restarted`)&&(i=Fx(i,t,e=>{let t=e;return e.terminalIds.includes(r.terminalId)||(t=Ax(t,r.terminalId)),t=jx(t,r.terminalId),t=Dx(t,!0),vx(t)}),a={...a,[n]:Tx(r)});let o=Zb(r);o!==null&&(i=Fx(i,t,e=>Nx(e,r.terminalId,o)));let s=wx(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,r);return{terminalStateByThreadKey:i,terminalLaunchContextByThreadKey:a,...s}}),i&&n.record(`web.terminal.store.events.apply`,r,n.now()-a)},clearTerminalState:t=>e(e=>{let n=xx(t),r=Fx(e.terminalStateByThreadKey,t,()=>gx()),i=e.terminalLaunchContextByThreadKey[n]!==void 0,{[n]:a,...o}=e.terminalLaunchContextByThreadKey,s={...e.terminalEventEntriesByKey},c=!1;for(let e of Object.keys(s))e.startsWith(`${n}\u0000`)&&(delete s[e],c=!0);return r===e.terminalStateByThreadKey&&!i&&!c?e:{terminalStateByThreadKey:r,terminalLaunchContextByThreadKey:o,terminalEventEntriesByKey:s}}),removeTerminalState:t=>e(e=>{let n=xx(t),r=e.terminalStateByThreadKey[n]!==void 0,i=e.terminalLaunchContextByThreadKey[n]!==void 0,a={...e.terminalEventEntriesByKey},o=!1;for(let e of Object.keys(a))e.startsWith(`${n}\u0000`)&&(delete a[e],o=!0);if(!r&&!i&&!o)return e;let s={...e.terminalStateByThreadKey};delete s[n];let c={...e.terminalLaunchContextByThreadKey};return delete c[n],{terminalStateByThreadKey:s,terminalLaunchContextByThreadKey:c,terminalEventEntriesByKey:a}}),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={...e.terminalEventEntriesByKey},a=!1;for(let e of Object.keys(i)){let[n]=e.split(`\0`);n&&!t.has(n)&&(delete i[e],a=!0)}if(n.length===0&&r.length===0&&!a)return e;let o={...e.terminalStateByThreadKey};for(let e of n)delete o[e];let s={...e.terminalLaunchContextByThreadKey};for(let e of r)delete s[e];return{terminalStateByThreadKey:o,terminalLaunchContextByThreadKey:s,terminalEventEntriesByKey:i}})}},{name:tx,version:2,storage:xi(()=>t),migrate:ix,partialize:e=>({terminalStateByThreadKey:e.terminalStateByThreadKey})}))}var Rx=_i(typeof window<`u`&&!l()?window.localStorage:void 0),zx=Lx({storage:{getItem:e=>Rx.getItem(e),setItem:(e,t)=>{Rx.setItem(e,t)},removeItem:e=>{Rx.removeItem(e)}},observability:{enabled:ji,now:Mi,record:(e,t,n)=>Ai(e,t,{durationMs:n})}}),Bx=class extends or{constructor(e,t){super(e,{observability:kd,socket:Eh},t)}},Vx=class extends cr{constructor(e,t){super(e,{observability:kd,socket:Eh},t)}},Hx=class extends Jr{constructor(e,t){super(e,{observability:kd,socket:Eh},t)}},Ux=`ryco:version-mismatch-dismissals:v1`,Wx=sn({keys:jt(It)});function Gx(e){let t=e?.trim();return t&&t.length>0?t:null}function Kx(e){let t=Gx(ki),n=Gx(e);return!t||!n||t===n?null:{clientVersion:t,serverVersion:n,hint:`Version mismatch. Try syncing the client and server to the same Ryco version.`}}function qx(e){return Kx(e?.environment.serverVersion)}function Jx(e,t){return`${e}:${t.clientVersion}:${t.serverVersion}`}function Yx(){try{return gi(`ryco:version-mismatch-dismissals:v1`,Wx)??{keys:[]}}catch{return{keys:[]}}}function Xx(e){try{wi(Ux,e,Wx)}catch{}}function Zx(e){return e?Yx().keys.includes(e):!1}function Qx(e){if(!e)return;let t=Yx();t.keys.includes(e)||Xx({keys:[...t.keys,e]})}function $x(e,t){let n=Gx(e);return n?t?`${n} Hint: ${t.hint}`:n:t?.hint??null}var eS=`ryco:startup:`;function tS(){return typeof performance<`u`&&typeof performance.mark==`function`}function nS(e){return`${eS}${e}`}function rS(e){if(tS())try{performance.mark(nS(e))}catch{}}function iS(e,t,n){if(!(!tS()||typeof performance.measure!=`function`))try{performance.measure(`${eS}${e}`,{start:nS(t),end:nS(n)})}catch{}}var aS=new Map,oS=new Map;function sS(e,t){let n=aS.get(e.hubOrigin);n===void 0&&t&&(n=new Map,aS.set(e.hubOrigin,n));let r=n?.get(e.accountId);return r===void 0&&t&&n!==void 0&&(r=new Set,n.set(e.accountId,r)),r}function cS(e,t){let n=oS.get(e.hubOrigin);n===void 0&&t&&(n=new Map,oS.set(e.hubOrigin,n));let r=n?.get(e.accountId);return r===void 0&&t&&n!==void 0&&(r=new Map,n.set(e.accountId,r)),r}function lS(e){sS(e,!0)?.add(e.nodeId)}function uS(e){return sS(e,!1)?.has(e.nodeId)??!1}function dS(e){return cS(e,!1)?.get(e.nodeId)}function fS(e,t){let n=cS(e,!0),r=n?.get(e.nodeId);(r===void 0||t>r)&&n?.set(e.nodeId,t)}function pS(){aS.clear(),oS.clear()}var mS=Object.freeze({status:`unavailable`,verificationCode:null}),hS=mS,gS=new Set,_S=[];function vS(e){if(e.status!==hS.status||e.verificationCode!==hS.verificationCode){hS=e;for(let e of gS)e()}}function yS(){return hS}function bS(e){return gS.add(e),()=>void gS.delete(e)}function xS(){_S=[..._S,`e2ee_policy_generation_regressed`].slice(-8);for(let e of gS)e()}function SS(){if(_S.length!==0){_S=[];for(let e of gS)e()}}function CS(){vS({status:`negotiating`,verificationCode:null})}function wS(e){vS({status:e===`e2ee`?`web-unsigned`:`legacy`,verificationCode:e===`e2ee`?hS.verificationCode:null})}function TS(e){hS.status!==`unavailable`&&hS.status!==`legacy`&&vS({status:hS.status,verificationCode:e})}function ES(){vS(mS)}var DS=[1];function OS(){let e=globalThis;return e.isSecureContext===!0&&typeof e.crypto?.getRandomValues==`function`}var kS=OS(),AS=null;function jS(){let e=globalThis.window?.location.origin;if(typeof e!=`string`||e.length===0)return null;let t=Xa.getState(),n=t.selectedNode;return t.accountStatus!==`authenticated`||t.account===null||n===null?null:{hubOrigin:e,accountId:t.account.id,nodeId:n.id}}function MS(e){let t=dS(e);return{hubOrigin:e.hubOrigin,selectionClass:uS(e)?`latched`:`legacy-eligible`,legacyPermitted:!0,pairingOnly:!1,localSuitePreference:DS,credentials:{tier:`web`},...t===void 0?{}:{acceptedPolicyGeneration:t},onStatement:t=>{if(t.kind===`invalid`&&t.reason===`policy_generation_regressed`){xS();return}if(!(`statement`in t))return;let n=dS(e);if(n!==void 0&&t.statement.policyGeneration<n)throw xS(),Error(`Web E2EE policy generation regressed.`);lS(e),fS(e,t.statement.policyGeneration)},onWebVerificationCode:TS}}function NS(e){return e.close(Kp()),{intercept:async()=>({kind:`rejected`}),submit:()=>!1,beginClose:async()=>`refused`,dispose:()=>void 0}}function PS(){if(!kS){wS(`legacy`);return}let e=jS();if(e===null)return NS;let t=MS(e);return e=>{let n={};AS=n,CS();let r=oh({host:{...e,lockMode:t=>{e.lockMode(t),wS(t)}},attempt:t});return{...r,dispose:e=>{r.dispose(e),AS===n&&(AS=null,ES())}}}}var FS;function IS(){if(FS!==void 0)return FS;let e=Xa.getState().accountStatus===`authenticated`,t=Xa.subscribe(()=>{let t=Xa.getState().accountStatus;if(t===`authenticated`){e=!0;return}!e||t!==`signed-out`&&t!==`session-expired`||(e=!1,pS(),SS(),ES())});return FS=()=>{FS=void 0,t()},FS}var LS=c(e=>({open:!1,openIntent:null,setOpen:t=>e({open:t,...t?{}:{openIntent:null}}),toggleOpen:()=>e(e=>({open:!e.open,...e.open?{openIntent:null}:{}})),openAddProject:()=>e(e=>({open:!0,openIntent:{kind:`add-project`,requestId:(e.openIntent?.requestId??0)+1}})),clearOpenIntent:()=>e({openIntent:null})}));function RS(e){return{type:`thread.turn.steer`,commandId:e.commandId,threadId:e.threadId,expectedTurnId:e.expectedTurnId,message:{messageId:e.messageId,role:`user`,text:e.text,attachments:[...e.attachments]},createdAt:e.createdAt,requestedAt:e.requestedAt}}function zS(e,t){return!e||!t?!1:e.instanceId===t.instanceId&&e.model===t.model&&JSON.stringify(e.options??null)===JSON.stringify(t.options??null)}function BS(e){return e.mutationReady?!e.turnRunning||e.activeTurnId===null||e.activeTurnId===void 0?{allowed:!1,reason:`Steering is available only while a turn is running.`}:e.supportsTurnSteering?zS(e.queuedModelSelection,e.activeModelSelection)?e.queuedRuntimeMode!==e.activeRuntimeMode||e.queuedInteractionMode!==e.activeInteractionMode||e.queuedTokenMode!==e.activeTokenMode?{allowed:!1,reason:`The queued runtime settings do not match the active turn.`}:{allowed:!0,expectedTurnId:e.activeTurnId}:{allowed:!1,reason:`The queued provider or model no longer matches the active turn.`}:{allowed:!1,reason:`This provider does not support active-turn steering.`}:{allowed:!1,reason:`Steering is unavailable until the connection is ready.`}}function VS(e,t){return e.filter(e=>e.id!==t)}function HS(e,t,n){let r=e.findIndex(e=>e.id===t);if(r===-1)return[...e];let i=n===`up`?r-1:r+1;if(i<0||i>=e.length)return[...e];let a=[...e],[o]=a.splice(r,1);return a.splice(i,0,o),a}function US(e){return new Set(Object.entries(e).flatMap(([e,t])=>t.length>0?[e]:[]))}var WS=120;function GS(e){let t=e.trimmedPrompt.trim();return t.length>0?t.length>WS?`${t.slice(0,119)}…`:t:e.imageCount>0?e.imageCount===1?`1 image`:`${e.imageCount} images`:e.terminalContextCount>0?e.terminalContextCount===1?`1 terminal context`:`${e.terminalContextCount} terminal contexts`:`Queued message`}function KS(){return c(e=>({queuesByThreadKey:{},steeringIdsByThreadKey:{},enqueue:(t,n)=>e(e=>({queuesByThreadKey:{...e.queuesByThreadKey,[t]:[...e.queuesByThreadKey[t]??[],n]}})),remove:(t,n)=>e(e=>{let r=e.queuesByThreadKey[t];if(!r)return e;let i=e.steeringIdsByThreadKey[t]??[];return{queuesByThreadKey:{...e.queuesByThreadKey,[t]:VS(r,n)},steeringIdsByThreadKey:{...e.steeringIdsByThreadKey,[t]:i.filter(e=>e!==n)}}}),move:(t,n,r)=>e(e=>{let i=e.queuesByThreadKey[t];return i?{queuesByThreadKey:{...e.queuesByThreadKey,[t]:HS(i,n,r)}}:e}),dequeue:t=>e(e=>{let n=e.queuesByThreadKey[t];return!n||n.length===0?e:{queuesByThreadKey:{...e.queuesByThreadKey,[t]:n.slice(1)}}}),clear:t=>e(e=>{if(!(t in e.queuesByThreadKey))return e;let n={...e.queuesByThreadKey},r={...e.steeringIdsByThreadKey};return delete n[t],delete r[t],{queuesByThreadKey:n,steeringIdsByThreadKey:r}}),beginSteer:(t,n)=>e(e=>{let r=e.steeringIdsByThreadKey[t]??[];return r.includes(n)?e:{steeringIdsByThreadKey:{...e.steeringIdsByThreadKey,[t]:[...r,n]}}}),endSteer:(t,n)=>e(e=>{let r=e.steeringIdsByThreadKey[t];return r?.includes(n)?{steeringIdsByThreadKey:{...e.steeringIdsByThreadKey,[t]:r.filter(e=>e!==n)}}:e})}))}var qS=KS(),JS=c(e=>({open:!1,setOpen:t=>e(e=>e.open===t?e:{open:t})}));function YS(){return JS(XS)}function XS(e){return e.open}function ZS(e){JS.getState().setOpen(e)}function QS(e){return`git:${e??``}`}var $S=new Map;function eC(e,t){let n=$S.get(e);return n||(n=new Set,$S.set(e,n)),n.add(t),()=>{let n=$S.get(e);n&&(n.delete(t),n.size===0&&$S.delete(e))}}function tC(e){let t=new Set;for(let n of e){let e=$S.get(n);if(e)for(let n of e)t.add(n)}for(let e of t)e()}var nC=new Set,rC=Cr(e=>(nC.add(e),Xn(0).pipe(hr,Zr(`git-mutation-running:${e}`))));function iC(e){return rC(e)}function aC(e){let t=rC(e);z.set(t,z.get(t)+1)}function oC(e){let t=rC(e);z.set(t,Math.max(0,z.get(t)-1))}var sC=15e3,cC=6e4,lC=100,uC=Object.freeze({pages:[],isPending:!1,isFetchingNextPage:!1,error:null}),dC=Object.freeze({...uC,isPending:!0}),fC=Xn(uC).pipe(hr,Zr(`git-branches:null`)),pC=new Set,mC=Cr(e=>(pC.add(e),Xn(dC).pipe(hr,Zr(`git-branches:${e}`)))),hC=()=>void 0,gC=new Map;function _C(e){return`${e.environmentId}\u0000${e.cwd}\u0000${e.query}`}function vC(e){return e.environmentId===null||e.cwd===null?null:_C({environmentId:e.environmentId,cwd:e.cwd,query:e.query})}function yC(e){return e===null?fC:mC(e)}function bC(e,t){z.set(mC(e),t)}async function xC(e,t,n,r){let i=Fg(e);if(!i)throw Error(`Git refs are unavailable.`);return i.vcs.listRefs({cwd:t,...n.length>0?{query:n}:{},cursor:r,limit:lC})}function SC(e){let t=e[e.length-1];return t?t.nextCursor:null}function CC(e,t){if(e.inFlightPromise)return e.inFlightPromise;let n=t().finally(()=>{e.inFlightPromise===n&&(e.inFlightPromise=null)});return e.inFlightPromise=n,n}async function wC(e){let t=++e.fetchToken,n=z.get(mC(e.key));bC(e.key,{pages:n.pages,isPending:n.pages.length===0,isFetchingNextPage:!1,error:null});try{let n=await xC(e.environmentId,e.cwd,e.query,0);if(t!==e.fetchToken)return;e.loadedPageCount=1,e.lastFetchedAt=Date.now(),e.hasLoadedOnce=!0,bC(e.key,{pages:[n],isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(t!==e.fetchToken)return;bC(e.key,{pages:z.get(mC(e.key)).pages,isPending:!1,isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}}function TC(e){return CC(e,()=>wC(e))}async function EC(e){let t=++e.fetchToken,n=Math.max(1,e.loadedPageCount),r=z.get(mC(e.key));bC(e.key,{pages:r.pages,isPending:r.pages.length===0,isFetchingNextPage:!1,error:null});try{let r=[],i=0;for(let a=0;a<n;a+=1){let n=await xC(e.environmentId,e.cwd,e.query,i);if(t!==e.fetchToken)return;if(r.push(n),n.nextCursor===null)break;i=n.nextCursor}e.loadedPageCount=r.length,e.lastFetchedAt=Date.now(),e.hasLoadedOnce=!0,bC(e.key,{pages:r,isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(t!==e.fetchToken)return;bC(e.key,{pages:z.get(mC(e.key)).pages,isPending:!1,isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}}function DC(e){return CC(e,()=>EC(e))}function OC(e){return e.hasLoadedOnce?DC(e):TC(e)}function kC(e){if(e===null)return;let t=gC.get(e);if(!t)return;let n=z.get(mC(e));if(n.isFetchingNextPage||t.inFlightPromise)return;let r=SC(n.pages);if(r===null)return;bC(e,{...n,isFetchingNextPage:!0,error:null});let i=t.fetchToken;CC(t,async()=>{try{let n=await xC(t.environmentId,t.cwd,t.query,r);if(i!==t.fetchToken)return;let a=z.get(mC(e));t.loadedPageCount=a.pages.length+1,t.lastFetchedAt=Date.now(),bC(e,{pages:[...a.pages,n],isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(i!==t.fetchToken)return;bC(e,{...z.get(mC(e)),isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}})}function AC(e){if(e===null)return;let t=gC.get(e);if(!t){IC(e);return}t.poller?.refresh()??OC(t)}function jC(e){Date.now()-e.lastFetchedAt<sC||(e.poller?.refresh()??OC(e))}function MC(e){if(e.environmentId===null||e.cwd===null)return hC;let t=e.environmentId,n=e.cwd,r=_C({environmentId:t,cwd:n,query:e.query}),i=gC.get(r);if(i)return i.subscriberCount+=1,i.hasLoadedOnce&&jC(i),()=>NC(r);let a={key:r,environmentId:t,cwd:n,query:e.query,subscriberCount:1,loadedPageCount:0,lastFetchedAt:0,fetchToken:0,hasLoadedOnce:!1,inFlightPromise:null,invalidationUnsub:hC,focusListener:null,poller:null};if(gC.set(r,a),a.invalidationUnsub=eC(QS(n),()=>{a.poller?.refresh()??OC(a)}),typeof window<`u`){let e=()=>jC(a);a.focusListener=e,window.addEventListener(`focus`,e)}return typeof window<`u`&&typeof document<`u`?a.poller=Oi({lifecycle:Di,run:()=>OC(a),resolveDelayMs:()=>cC,jitterRatio:.05}):TC(a),()=>NC(r)}function NC(e){let t=gC.get(e);t&&(--t.subscriberCount,!(t.subscriberCount>0)&&(t.invalidationUnsub(),t.focusListener&&typeof window<`u`&&window.removeEventListener(`focus`,t.focusListener),t.poller?.stop(),t.fetchToken+=1,gC.delete(e)))}var PC=new Set,FC=0;async function IC(e){if(PC.has(e)||gC.get(e))return;let t=e.indexOf(`\0`),n=e.lastIndexOf(`\0`);if(t===-1||n===t)return;let r=e.slice(0,t),i=e.slice(t+1,n),a=e.slice(n+1);PC.add(e);let o=FC;try{let t=await xC(r,i,a,0);if(o!==FC||gC.has(e))return;bC(e,{pages:[t],isPending:!1,isFetchingNextPage:!1,error:null})}catch{}finally{o===FC&&PC.delete(e)}}function LC(e){let t=vC(e);t!==null&&(z.get(mC(t)).pages.length>0||IC(t))}function RC(e){return e.flatMap(e=>e.refs)}var zC=3e4,BC=Object.freeze({data:null,isPending:!1,isFetching:!1,isError:!1,error:null}),VC=Xn(BC).pipe(hr,Zr(`git-resolve-pr:null`)),HC=new Set,UC=Cr(e=>(HC.add(e),Xn(BC).pipe(hr,Zr(`git-resolve-pr:${e}`)))),WC=new Map;function GC(e){return`${e.environmentId}\u0000${e.cwd}\u0000${e.reference}`}function KC(e){return e.environmentId===null||e.cwd===null||e.reference===null?null:GC({environmentId:e.environmentId,cwd:e.cwd,reference:e.reference})}function qC(e){return e===null?VC:UC(e)}async function JC(e){let t=++e.fetchToken,n=z.get(UC(e.key));z.set(UC(e.key),{data:n.data,isPending:n.data===null,isFetching:!0,isError:!1,error:null});try{let n=Fg(e.environmentId);if(!n)throw Error(`Pull request lookup is unavailable.`);let r=await n.git.resolvePullRequest({cwd:e.cwd,reference:e.reference});if(t!==e.fetchToken)return;e.lastFetchedAt=Date.now(),z.set(UC(e.key),{data:r,isPending:!1,isFetching:!1,isError:!1,error:null})}catch(n){if(t!==e.fetchToken)return;z.set(UC(e.key),{data:null,isPending:!1,isFetching:!1,isError:!0,error:n instanceof Error?n:Error(`Failed to resolve pull request.`)})}}function YC(e){let t=KC(e);if(t===null||e.environmentId===null||e.cwd===null||e.reference===null)return hC;let n=e.environmentId,r=e.cwd,i=e.reference,a=WC.get(t);if(a)return a.subscriberCount+=1,Date.now()-a.lastFetchedAt>=zC&&JC(a),()=>XC(t);let o={key:t,environmentId:n,cwd:r,reference:i,subscriberCount:1,lastFetchedAt:0,fetchToken:0};return WC.set(t,o),JC(o),()=>XC(t)}function XC(e){let t=WC.get(e);t&&(--t.subscriberCount,!(t.subscriberCount>0)&&(t.fetchToken+=1,WC.delete(e)))}function ZC(){for(let e of gC.values())e.fetchToken+=1,e.invalidationUnsub(),e.focusListener&&typeof window<`u`&&window.removeEventListener(`focus`,e.focusListener),e.poller?.stop();gC.clear(),FC+=1,PC.clear();for(let e of WC.values())e.fetchToken+=1;WC.clear(),$S.clear();for(let e of pC)z.set(mC(e),dC);for(let e of HC)z.set(UC(e),BC);for(let e of nC)z.set(rC(e),0)}var QC=Object.freeze({data:void 0,error:null,status:`pending`,fetchStatus:`idle`,dataUpdatedAt:0,errorUpdatedAt:0});function $C(e){return JSON.stringify(e,(e,t)=>t&&typeof t==`object`&&!Array.isArray(t)?Object.keys(t).toSorted().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function ew(e){return $C(e)}function tw(e){return e instanceof Error?e:Error(String(e))}function nw(e){return e===void 0||e===!0?3:e===!1?0:e}function rw(e){return Math.min(1e3*2**e,3e4)}function iw(e){return new Promise(t=>setTimeout(t,e))}function aw(e,t){if(t.length>e.length)return!1;for(let n=0;n<t.length;n+=1)if($C(e[n])!==$C(t[n]))return!1;return!0}var ow=new class{cache=new Map;prefixIndex=new Map;maxEntries;defaultGcTime;constructor(e){this.maxEntries=Math.max(1,Math.floor(e?.maxEntries??512)),this.defaultGcTime=Math.max(0,e?.defaultGcTime??3e5)}prefixHash(e){return $C(e)}indexEntry(e){for(let t=1;t<=e.key.length;t+=1){let n=this.prefixHash(e.key.slice(0,t)),r=this.prefixIndex.get(n)??new Set;r.add(e.hash),this.prefixIndex.set(n,r)}}unindexEntry(e){for(let t=1;t<=e.key.length;t+=1){let n=this.prefixHash(e.key.slice(0,t)),r=this.prefixIndex.get(n);r&&(r.delete(e.hash),r.size===0&&this.prefixIndex.delete(n))}}clearGcTimer(e){e.gcTimer!==null&&(clearTimeout(e.gcTimer),e.gcTimer=null)}isPinned(e){return e.listeners.size>0||e.observers.size>0||e.promise!==null}removeEntry(e){return this.cache.get(e.hash)!==e||this.isPinned(e)?!1:(this.clearGcTimer(e),e.fetchId+=1,e.state=QC,this.cache.delete(e.hash),this.unindexEntry(e),!0)}scheduleGc(e){if(this.clearGcTimer(e),!(this.isPinned(e)||e.gcTime===1/0)){if(e.gcTime===0){this.removeEntry(e);return}e.gcTimer=setTimeout(()=>{e.gcTimer=null,this.removeEntry(e)},e.gcTime)}}touch(e){e.lastAccessedAt=Date.now(),this.clearGcTimer(e)}evictToCapacity(){if(this.cache.size<=this.maxEntries)return;let e=[...this.cache.values()].filter(e=>!this.isPinned(e)).toSorted((e,t)=>e.lastAccessedAt-t.lastAccessedAt);for(let t of e){if(this.cache.size<=this.maxEntries)break;this.removeEntry(t)}}ensureEntry(e){let t=ew(e),n=this.cache.get(t);return n||(n={key:e,hash:t,state:QC,listeners:new Set,observers:new Set,promise:null,fetchId:0,gcTime:this.defaultGcTime,lastAccessedAt:Date.now(),gcTimer:null},this.cache.set(t,n),this.indexEntry(n),this.evictToCapacity()),this.touch(n),n}setGcTime(e,t){let n=this.ensureEntry(e);n.gcTime=Math.max(0,t??this.defaultGcTime),this.isPinned(n)||this.scheduleGc(n)}getCacheSize(){return this.cache.size}getEntry(e){return this.ensureEntry(e)}getEntryByHash(e){return this.cache.get(e)}getState(e){return this.ensureEntry(e).state}setState(e,t){e.state=t;for(let t of e.listeners)t()}subscribe(e,t){let n=this.ensureEntry(e);return n.listeners.add(t),this.clearGcTimer(n),()=>{n.listeners.delete(t),this.scheduleGc(n)}}addObserver(e,t){let n=this.ensureEntry(e);return n.observers.add(t),this.clearGcTimer(n),()=>{n.observers.delete(t),this.scheduleGc(n)}}isStale(e,t){let n=this.ensureEntry(e);return n.state.status!==`success`||t!==1/0&&Date.now()-n.state.dataUpdatedAt>=t}getQueryData(e){let t=this.cache.get(ew(e));return t?.state.status===`success`?t.state.data:void 0}setQueryData(e,t){let n=this.ensureEntry(e),r=n.state.status===`success`?n.state.data:void 0,i=typeof t==`function`?t(r):t;return i===void 0?r:(this.setState(n,{data:i,error:null,status:`success`,fetchStatus:`idle`,dataUpdatedAt:Date.now(),errorUpdatedAt:n.state.errorUpdatedAt}),this.scheduleGc(n),i)}cancelQueries(e={}){let t=e.queryKey;for(let e of this.cache.values())t&&!aw(e.key,t)||(e.fetchId+=1,e.promise=null,e.state.fetchStatus===`fetching`&&this.setState(e,{...e.state,fetchStatus:`idle`}));return Promise.resolve()}invalidateQueries(e={}){let t=e.queryKey,n=t?[...this.prefixIndex.get(this.prefixHash(t))??[]].map(e=>this.cache.get(e)).filter(e=>e!==void 0):[...this.cache.values()];for(let e of n)if(e.state.status===`success`&&this.setState(e,{...e.state,dataUpdatedAt:0}),e.observers.size>0)for(let t of e.observers)t.refetch();return Promise.resolve()}async fetch(e,t,n={}){let r=this.ensureEntry(e);if(r.promise)return r.promise;let i=++r.fetchId,a=nw(n.retry);this.setState(r,{...r.state,fetchStatus:`fetching`,error:null});let o=(async()=>{for(let e=0;e<=a;e+=1)try{let e=await t();return r.fetchId===i?(this.setState(r,{data:e,error:null,status:`success`,fetchStatus:`idle`,dataUpdatedAt:Date.now(),errorUpdatedAt:r.state.errorUpdatedAt}),e):r.state.status===`success`?r.state.data:void 0}catch(t){if(r.fetchId!==i)return;if(e>=a){let e=tw(t);throw this.setState(r,{data:r.state.data,error:e,status:`error`,fetchStatus:`idle`,dataUpdatedAt:r.state.dataUpdatedAt,errorUpdatedAt:Date.now()}),e}if(await iw(rw(e)),r.fetchId!==i)return}})().finally(()=>{r.promise===o&&(r.promise=null,this.scheduleGc(r),this.evictToCapacity())});return r.promise=o,o}async fetchQuery(e){this.setGcTime(e.queryKey,e.gcTime);let t=e.staleTime??0;return this.isStale(e.queryKey,t)?await this.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:!0}):this.getQueryData(e.queryKey)}async prefetchQuery(e){try{await this.fetchQuery(e)}catch{}}clear(){for(let e of this.cache.values())this.clearGcTimer(e),e.fetchId+=1,e.state=QC;this.cache.clear(),this.prefixIndex.clear()}};function sw(){return ow}function cw(e){return e}function lw(e,t){let n=(0,V.useRef)(null);if(e===void 0)return;if(!t)return e;let r=n.current;if(r&&r.input===e)return r.output;let i=t(e);return n.current={input:e,output:i},i}function uw(e,t,n,r){let i=t.staleTime??0,a=n.fetchStatus===`fetching`,o=n.status===`pending`;return{data:r,error:n.error,status:n.status,fetchStatus:n.fetchStatus,isPending:o,isLoading:o&&a,isError:n.status===`error`,isSuccess:n.status===`success`,isFetching:a,isRefetching:a&&!o,isStale:e.isStale(t.queryKey,i),dataUpdatedAt:n.dataUpdatedAt,refetch:async()=>{await e.fetch(t.queryKey,t.queryFn,{retry:t.retry,force:!0});let n=e.getState(t.queryKey);return uw(e,t,n,n.status===`success`?t.select?t.select(n.data):n.data:void 0)}}}function dw(e){let t=sw(),{queryKey:n}=e,r=ew(n);t.setGcTime(n,e.gcTime);let i=(0,V.useRef)(e);i.current=e;let a=(0,V.useCallback)(e=>t.subscribe(i.current.queryKey,e),[t,r]),o=(0,V.useCallback)(()=>t.getState(i.current.queryKey),[t,r]),s=(0,V.useSyncExternalStore)(a,o,o),c=e.enabled??!0,l=e.staleTime??0,u=e.refetchOnMount;return(0,V.useEffect)(()=>{if(!c)return;let e=i.current,n=t.addObserver(e.queryKey,{refetch:()=>{t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:!0})}}),r=u===`always`;return(r||t.isStale(e.queryKey,l))&&t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:r}),n},[t,r,c,l,u]),(0,V.useEffect)(()=>{if(!c)return;let e=i.current,n=e.refetchInterval;if(n===void 0||n===!1)return;let r=typeof n==`function`?n({state:{data:t.getQueryData(e.queryKey)}}):n;if(!(r===!1||r===void 0||r<=0))return Oi({lifecycle:Di,run:()=>t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:!0}),resolveDelayMs:()=>r,runImmediately:!1,jitterRatio:.05}).stop},[t,r,c,s]),uw(t,e,s,lw(s.status===`success`?s.data:void 0,e.select))}var fw=Object.freeze({status:`idle`,data:void 0,error:null,variables:void 0});function pw(e){let t=(0,V.useRef)(e);t.current=e;let n=(0,V.useRef)(fw),[,r]=(0,V.useReducer)(e=>e+1,0),i=(0,V.useRef)(!0);(0,V.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]);let a=(0,V.useCallback)(e=>{n.current=e,i.current&&r()},[]),o=(0,V.useCallback)(async(e,n)=>{let r=t.current;a({status:`pending`,data:void 0,error:null,variables:e});let i;try{i=r.onMutate?await r.onMutate(e):void 0;let t=await r.mutationFn(e);return await r.onSuccess?.(t,e,i),await n?.onSuccess?.(t,e),await r.onSettled?.(t,null,e,i),await n?.onSettled?.(t,null,e),a({status:`success`,data:t,error:null,variables:e}),t}catch(t){let o=tw(t);throw await r.onError?.(o,e,i),await n?.onError?.(o,e),await r.onSettled?.(void 0,o,e,i),await n?.onSettled?.(void 0,o,e),a({status:`error`,data:void 0,error:o,variables:e}),o}},[a]),s=(0,V.useCallback)(e=>o(e),[o]),c=(0,V.useCallback)((e,t)=>{o(e,t).catch(()=>void 0)},[o]),l=(0,V.useCallback)(()=>{a(fw)},[a]),u=n.current;return{mutate:c,mutateAsync:s,isPending:u.status===`pending`,isIdle:u.status===`idle`,isError:u.status===`error`,isSuccess:u.status===`success`,status:u.status,error:u.error,data:u.data,variables:u.variables,reset:l}}var mw={metaKey:!1,ctrlKey:!1,altKey:!1,shiftKey:!1};function hw(e,t){return e.metaKey===t.metaKey&&e.ctrlKey===t.ctrlKey&&e.altKey===t.altKey&&e.shiftKey===t.shiftKey}var gw=c(e=>({state:mw,setState:t=>e(e=>hw(e.state,t)?e:{state:t}),clear:()=>e(e=>hw(e.state,mw)?e:{state:mw})}));function _w(){return gw(vw)}function vw(e){return e.state}function yw(e){switch(e){case`Meta`:case`OS`:case`Command`:return`metaKey`;case`Control`:return`ctrlKey`;case`Alt`:case`Option`:return`altKey`;case`Shift`:return`shiftKey`;default:return null}}function bw(e){let t=yw(e.key);if(t){let n=gw.getState().state;gw.getState().setState({...n,[t]:e.type===`keydown`});return}gw.getState().setState({metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey})}function xw(){gw.getState().clear()}var Sw=new Set,Cw=c((e,t)=>({selectedThreadKeys:Sw,anchorThreadKey:null,toggleThread:t=>{e(e=>{let n=new Set(e.selectedThreadKeys);return n.has(t)?n.delete(t):n.add(t),{selectedThreadKeys:n,anchorThreadKey:n.has(t)?t:e.anchorThreadKey}})},rangeSelectTo:(t,n)=>{e(e=>{let r=e.anchorThreadKey;if(r===null){let n=new Set(e.selectedThreadKeys);return n.add(t),{selectedThreadKeys:n,anchorThreadKey:t}}let i=n.indexOf(r),a=n.indexOf(t);if(i===-1||a===-1){let n=new Set(e.selectedThreadKeys);return n.add(t),{selectedThreadKeys:n,anchorThreadKey:t}}let o=Math.min(i,a),s=Math.max(i,a),c=new Set(e.selectedThreadKeys);for(let e=o;e<=s;e++){let t=n[e];t!==void 0&&c.add(t)}return{selectedThreadKeys:c,anchorThreadKey:r}})},clearSelection:()=>{let n=t();(n.selectedThreadKeys.size!==0||n.anchorThreadKey!==null)&&e({selectedThreadKeys:Sw,anchorThreadKey:null})},setAnchor:n=>{t().anchorThreadKey!==n&&e({anchorThreadKey:n})},removeFromSelection:t=>{e(e=>{let n=new Set(t),r=!1,i=new Set;for(let t of e.selectedThreadKeys)n.has(t)?r=!0:i.add(t);return r?{selectedThreadKeys:i,anchorThreadKey:e.anchorThreadKey!==null&&n.has(e.anchorThreadKey)?null:e.anchorThreadKey}:e})},hasSelection:()=>t().selectedThreadKeys.size>0}));function ww(e){ES(),Br(e),C_(),ZC(),X_(),Q.getState().demoteEnvironmentStateToCachedSnapshot(e,Date.now()),mr()}function Tw(){for(let e of Object.keys(Q.getState().environmentStateById))Q.getState().removeEnvironmentState(e);yi.setState({draftsByThreadKey:{},draftThreadsByThreadKey:{},logicalProjectDraftThreadKeyByLogicalProjectKey:{},stickyModelSelectionByProvider:{},stickyActiveProvider:null}),zx.setState({terminalStateByThreadKey:{},terminalLaunchContextByThreadKey:{},terminalEventEntriesByKey:{},nextTerminalEventId:1}),qS.setState({queuesByThreadKey:{}}),LS.getState().setOpen(!1),uo.getState().closeSettings(),ZS(!1),xw(),Cw.getState().clearSelection(),fo.setState({projectExpandedById:{},projectOrder:[],projectFoldersById:{},projectFolderOrder:[],projectTreeOrder:[],pinnedThreadKeys:{},threadLastVisitedAtById:{},threadChangedFilesExpandedById:{},threadWorkEntryExpandedById:{},defaultAdvertisedEndpointKey:null}),ow.clear(),mr()}function Ew(){let e=new URL(window.location.origin);return e.protocol=e.protocol===`https:`?`wss:`:`ws:`,e.pathname=`/v1/relay/client`,e.toString()}function Dw(e){return typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer}function Ow(e){return e instanceof ArrayBuffer?{bytes:new Uint8Array(e.slice(0))}:e instanceof Uint8Array?{bytes:Uint8Array.from(e)}:ArrayBuffer.isView(e)?{bytes:Uint8Array.from(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}:Dw(e)?{fail:`protocol_invalid`}:{fail:`frame_too_large`}}var kw=new Set([Up,Vp,Hp,zp,Bp]);function Aw(e){return!(e instanceof Error)||e instanceof DOMException?e:new DOMException(e.message,kw.has(e.message)?`QuotaExceededError`:`InvalidStateError`)}var jw=class extends EventTarget{url;protocol=``;extensions=``;binaryType=`arraybuffer`;CONNECTING=WebSocket.CONNECTING;OPEN=WebSocket.OPEN;CLOSING=WebSocket.CLOSING;CLOSED=WebSocket.CLOSED;onopen=null;onmessage=null;onerror=null;onclose=null;#e;#t=WebSocket.CONNECTING;constructor(e){if(super(),this.url=e.url,e.url!==Ew()||e.ticketExpiresAt<=Date.now())throw Error(`Relay attempt is no longer valid.`);let t=(e.createSocket??(e=>new WebSocket(e)))(e.url);t.binaryType=`arraybuffer`;let n={get bufferedAmount(){return t.bufferedAmount},get readyState(){return t.readyState},send:e=>t.send(Uint8Array.from(e).buffer),close:(e,n)=>t.close(e,n),onOpen:e=>t.addEventListener(`open`,e),onBinaryMessage:e=>t.addEventListener(`message`,t=>{let n=Ow(t.data);`bytes`in n?e(n.bytes):this.#e.reportUndecodableMessage(n.fail)}),onClose:e=>t.addEventListener(`close`,e),onError:e=>t.addEventListener(`error`,e)};try{this.#e=new qp({ticket:e.ticket,ticketExpiresAt:e.ticketExpiresAt,socket:n,callbacks:e.callbacks,...e.e2ee===void 0?{}:{e2ee:e.e2ee},timers:{now:()=>Date.now(),setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e),queueMicrotask:e=>globalThis.queueMicrotask(e)},events:{onOpen:()=>{this.#t=WebSocket.OPEN,this.#n(`open`,new Event(`open`))},onData:e=>this.#n(`message`,new MessageEvent(`message`,{data:e})),onError:()=>this.#n(`error`,new Event(`error`)),onClose:(e,t)=>{this.#t=WebSocket.CLOSED,this.#n(`close`,new CloseEvent(`close`,{code:e,reason:t,wasClean:e===1e3}))}}})}catch(e){try{t.close()}catch{}throw e}}get readyState(){return this.#t}get bufferedAmount(){return this.#e.bufferedAmount}send(e){let t=typeof e==`string`?new TextEncoder().encode(e):e instanceof ArrayBuffer||Dw(e)?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):(()=>{throw new DOMException(`Blob RPC writes are unsupported.`,`DataError`)})();try{this.#e.send(Uint8Array.from(t))}catch(e){throw Aw(e)}}close(e=1e3,t=``){this.#t!==WebSocket.CLOSED&&this.#t!==WebSocket.CLOSING&&(this.#t=WebSocket.CLOSING,this.#e.close(e,t))}#n(e,t){this.dispatchEvent(t);let n=this[`on${e}`];n&&n.call(this,t)}},Mw=!1;function Nw(e){Mw||(Mw=!0,IS(),Aa({endpoint:rr,httpClient:Zn,passkeyCeremony:Ch,sessionCredentials:ur,nodeLifecycle:{activate:async()=>void 0,suspend:async()=>void 0,deactivate:async()=>void 0,clearNodeScopedState:ww,writePrimaryEnvironmentDescriptor:Wr,connectPrimaryEnvironment:_E,disconnectPrimaryEnvironment:gE,setActiveEnvironmentId:e=>Q.getState().setActiveEnvironmentId(e)},timers:{now:()=>Date.now(),setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e),queueMicrotask:e=>globalThis.queueMicrotask(e)},isForeground:()=>globalThis.document?.visibilityState!==`hidden`,subscribeForeground:e=>{let t=()=>{globalThis.document?.visibilityState===`visible`&&e()};return globalThis.document?.addEventListener(`visibilitychange`,t,{once:!0}),()=>globalThis.document?.removeEventListener(`visibilitychange`,t)},hasPendingRelayRequests:gh,resetRelayAttemptFactory:_h,relayUrl:Ew,createRelaySocket:e=>new jw({...e,e2ee:PS()})},e))}var Pw=new class extends Ma{constructor(){super({endpoint:rr,httpClient:Zn,passkeyCeremony:Ch,sessionCredentials:ur})}},Fw=n({HOSTED_SESSION_SYNC_FAILURE_MESSAGE:()=>HOSTED_SESSION_SYNC_FAILURE_MESSAGE,ensureWebHostedRuntimeConfigured:()=>Iw,hostedAccountStore:()=>xa,hostedHubController:()=>Ga,hostedHubStore:()=>Xa,hostedRecoveryCodeDisplayStore:()=>Ta,useHostedAccountStore:()=>Rw,useHostedHubStore:()=>Lw,useHostedRecoveryCodeDisplayStore:()=>zw});Pa(()=>Nw(Pw));function Iw(){Nw(Pw)}var Lw=Object.assign(e=>f(Xa,e),Xa),Rw=Object.assign(e=>f(xa,e),xa),zw=Object.assign(e=>f(Ta,e),Ta);function Bw(e){return/^[a-zA-Z]:([/\\]|$)/.test(e)}function Vw(e){return e.startsWith(`\\\\`)}function Hw(e){return Vw(e)||Bw(e)}function Uw(e){return e===`.`||e===`..`||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`.\\`)||e.startsWith(`..\\`)}function Ww(e){return e===`/`||e===`\\`||/^[a-zA-Z]:[/\\]?$/.test(e)}function Gw(e){return Bw(e)||Vw(e)?`windows`:e.startsWith(`/`)?`unix`:null}function Kw(e){if(e.length===0||Ww(e))return e;let t=Gw(e)===`unix`?e.replace(/\/+$/g,``):e.replace(/[\\/]+$/g,``);return t.length===0?e:/^[a-zA-Z]:$/.test(t)?`${t}\\`:t}function qw(e){let t=Kw(e.trim());return Bw(t)||t.startsWith(`\\\\`)?t.replaceAll(`/`,`\\`).toLowerCase():t}function Jw(e){let t=new Set,n=[];for(let r of e){let e=r?.trim();!e||t.has(e)||(t.add(e),n.push(e))}return n}function Yw(e){let t=e.repositoryIdentity?.rootPath?.trim();if(!t)return null;let n=qw(e.cwd),r=qw(t);if(n.length===0||r.length===0)return null;if(n===r)return``;let i=`${r}${r.includes(`\\`)?`\\`:`/`}`;return n.startsWith(i)?n.slice(i.length).replaceAll(`\\`,`/`):null}function Xw(e,t){return`${e}:${qw(t)}`}function Zw(e){return Xw(e.environmentId,e.cwd)}function Qw(e,t){let n=e.repositoryIdentity?.canonicalKey;if(!n)return null;if(t===`repository`)return n;let r=Yw(e);return r===null||r.length===0?n:`${n}::${r}`}function $w(e,t){let n=t?.groupingMode??`repository`;return n===`separate`?Zw(e):Qw(e,n)??Zw(e)??`${e.environmentId}:${e.id}`}function eT(e){let t=Jw(e.members.map(e=>e.repositoryIdentity?.displayName));if(t.length===1)return t[0];let n=Jw(e.members.map(e=>e.repositoryIdentity?.name));return n.length===1?n[0]:e.representative.name}function tT(e,t){return{key:e.physicalKey,label:e.name,repositoryIdentity:e.repositoryIdentity,variants:[e],ambiguous:t}}function nT(e,t){let n=new Map;for(let r of e){let e=$w({environmentId:r.environmentId,id:r.projectId,cwd:r.cwd,repositoryIdentity:r.repositoryIdentity},t),i=n.get(e)??[];i.push(r),n.set(e,i)}let r=[];for(let[e,t]of n){let n=new Map;for(let e of t)n.set(e.environmentId,(n.get(e.environmentId)??0)+1);let i=Array.from(n.values()).some(e=>e>1);if(i||t.length===1){r.push(...t.map(e=>tT(e,i)));continue}let a=t.toSorted((e,t)=>{let n=e.lastUsedAt??e.lastLiveAt??0;return(t.lastUsedAt??t.lastLiveAt??0)-n||e.physicalKey.localeCompare(t.physicalKey)}),o=a[0];r.push({key:e,label:eT({representative:o,members:t}),repositoryIdentity:o.repositoryIdentity,variants:a,ambiguous:!1})}return r.toSorted((e,t)=>e.label.localeCompare(t.label)||e.key.localeCompare(t.key))}function rT(e){return Zw(e)}function iT(e){return Zw(e)}function aT(e,t){return t.sidebarProjectGroupingOverrides?.[rT(e)]??t.sidebarProjectGroupingMode}function oT(e,t){return $w(e,{groupingMode:aT(e,t)})}function sT(e){return{prepareShellEvent:(e,t)=>{let n=t.kind===`thread-upserted`?t.thread.id:t.kind===`thread-removed`?t.threadId:null,r=n?a(e,n):null;return{previousThread:r?Eb(Q.getState(),r):void 0,threadRef:r}},applyShellEvent:(e,t)=>Q.getState().applyShellEvent(t,e),afterShellEventApplied:(t,n,r)=>{let{previousThread:i,threadRef:a}=r;switch(n.kind){case`project-upserted`:case`project-removed`:cT();return;case`worktree-upserted`:case`worktree-removed`:return;case`thread-upserted`:lT(),!i&&a&&bi(a),i?.archivedAt===null&&n.thread.archivedAt!==null&&a&&zx.getState().removeTerminalState(a),e.supervisor?.().reconcileThreadDetailSubscriptionEvictionForThread(t,n.thread.id),e.supervisor?.().evictIdleThreadDetailSubscriptionsToCapacity();return;case`thread-removed`:a&&(e.supervisor?.().disposeThreadDetailSubscription(t,n.threadId),yi.getState().clearDraftThread(a),fo.getState().clearThreadUi(p(a)),zx.getState().removeTerminalState(a)),lT()}},applyOrchestrationEvents:(e,t)=>Q.getState().applyOrchestrationEvents(t,e),syncServerShellSnapshot:(e,t)=>Q.getState().syncServerShellSnapshot(t,e),reconcileSnapshotDerivedState:()=>{cT(),lT();let e=Qb({snapshotThreads:_b(Q.getState()).map(e=>({key:p(a(e.environmentId,e.id)),deletedAt:null,archivedAt:e.archivedAt})),draftThreadKeys:yi.getState().listDraftThreadKeys()});zx.getState().removeOrphanedTerminalStates(e)},syncProjects:()=>{let e=Ql();fo.getState().syncProjects(gb(Q.getState()).map(t=>({key:Zw(t),logicalKey:oT(t,e),cwd:t.cwd})))},syncThreads:()=>{let e=_b(Q.getState());fo.getState().syncThreads(e.map(e=>({key:p(a(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt})))},clearThreadDraft:e=>{yi.getState().clearDraftThread(e),fo.getState().clearThreadUi(p(e))},clearProjectDraftThread:e=>yi.getState().clearProjectDraftThreadId(e),clearTerminalState:e=>zx.getState().removeTerminalState(e),markProviderInvalidationNeeded:e.markProviderInvalidationNeeded,flushProviderInvalidation:e.flushProviderInvalidation}}function cT(){let e=gb(Q.getState()),t=Ql();fo.getState().syncProjects(e.map(e=>({key:Zw(e),logicalKey:oT(e,t),cwd:e.cwd})))}function lT(){let e=_b(Q.getState());fo.getState().syncThreads(e.map(e=>({key:p(a(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt}))),Si(e.map(e=>a(e.environmentId,e.id)))}var uT=0,dT=1,fT=2,pT=3,mT=class{url;protocol=``;extensions=``;binaryType=`arraybuffer`;CONNECTING=uT;OPEN=dT;CLOSING=fT;CLOSED=pT;onopen=null;onmessage=null;onerror=null;onclose=null;#e;#t;#n=new Map;#r;#i=uT;constructor(e){this.url=e.url,this.#t=e.transportId,this.#e=e.bridge,this.#r=e.bridge.onDesktopWorkspaceTransportEvent?.(e=>this.#a(e)),Promise.resolve().then(async()=>{try{await e.bridge.activateDesktopWorkspaceTransport?.(e.transportId)}catch{this.#o()}})}get readyState(){return this.#i}get bufferedAmount(){return 0}send(e){if(this.#i!==dT)throw Error(`Desktop workspace transport is not open.`);let t=typeof e==`string`?new TextEncoder().encode(e):e instanceof ArrayBuffer?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):null;if(t===null)throw Error(`Desktop workspace transport payload is invalid.`);this.#e.sendDesktopWorkspaceTransport?.(this.#t,Uint8Array.from(t))}close(){this.#i!==fT&&this.#i!==pT&&(this.#i=fT,this.#e.closeDesktopWorkspaceTransport?.(this.#t))}addEventListener(e,t,n){let r=this.#n.get(e)??new Set;r.add({listener:t,once:n?.once??!1}),this.#n.set(e,r)}removeEventListener(e,t){let n=this.#n.get(e);if(n)for(let e of[...n])e.listener===t&&n.delete(e)}#a(e){if(e.transportId===this.#t&&this.#i!==pT)switch(e.type){case`open`:if(this.#i!==uT)return;this.#i=dT,this.#s({type:`open`});return;case`message`:if(this.#i!==dT)return;this.#s({type:`message`,data:Uint8Array.from(e.data)});return;case`error`:this.#s({type:`error`});return;case`close`:this.#i=pT,this.#s({type:`close`,code:e.code,reason:e.reason,wasClean:e.code===1e3}),this.#r?.()}}#o(){this.#i!==pT&&(this.#s({type:`error`}),this.#i=pT,this.#s({type:`close`,code:4401,reason:`Relay unavailable`,wasClean:!1}),this.#r?.())}#s(e){let t=this.#n.get(e.type);if(t)for(let n of[...t])n.once&&t.delete(n),n.listener(e);let n={open:this.onopen,message:this.onmessage,error:this.onerror,close:this.onclose}[e.type];n?.(e)}},hT=class{#e;#t;#n=null;constructor(e,t){this.#e=e,this.#t=t}async nextUrl(){if(!this.#t.prepareDesktopWorkspaceTransport)throw Error(`Desktop workspace transport is unavailable.`);let e=await this.#t.prepareDesktopWorkspaceTransport(this.#e);return this.#n=e.transportId,`ws://desktop-workspace.invalid/${e.transportId}`}createSocket(e){let t=this.#n;if(this.#n=null,!t||!e.endsWith(`/${t}`))throw Error(`Desktop workspace transport requires a fresh opaque handle.`);return new mT({url:e,transportId:t,bridge:this.#t})}};function gT(e){return e instanceof sl}var _T=!1,vT=sT({markProviderInvalidationNeeded:()=>{_T=!0,$().requestProviderInvalidation()},flushProviderInvalidation:()=>{_T=!1,Y_(),i_()},supervisor:$}),yT=150,bT=()=>void 0,xT=/^\[ssh_http:(\d+)\]\s/u,ST=null,CT=!1,wT=null,TT=new Promise(e=>{wT=e}),ET=null;function $(){return ET||(ET=cl({isHostedMode:l,now:Date.now,setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e),createInvalidationThrottle:()=>new ts(()=>{_T&&vT.flushProviderInvalidation()},{wait:100,leading:!1,trailing:!0}),resetProviderInvalidation:()=>{_T=!1},createPrimaryConnection:()=>Vr()?.environmentId?mE():null,listSavedEnvironmentRecords:wg,hasSavedEnvironmentRegistryHydrated:Sg,waitForSavedEnvironmentRegistryHydration:Cg,subscribeSavedEnvironmentRegistry:xg.subscribe,connectSavedEnvironment:(e,t)=>bE(e,void 0,t),disconnectSavedEnvironment:OE,waitForPrimaryShellSnapshotApplied:kT,subscribeBrowserResume:xE,isThreadDetailSubscriptionNonIdle:(e,t)=>jT({environmentId:e,threadId:t}),syncThreadDetailSnapshot:(e,t)=>Q.getState().syncServerThreadDetail(t.thread,e),syncThreadWindowSnapshot:(e,t)=>Q.getState().syncServerThreadWindow(t,e),syncThreadHistoryPage:(e,t,n)=>Q.getState().syncServerThreadHistoryPage(n,t,e),setThreadHistoryRequestState:e=>Q.getState().setServerThreadHistoryLoadState({...e,loadState:{status:e.status,cursor:e.cursor,error:e.error}}),applyThreadDetailEvent:(e,t)=>oE(t,e),stateSink:vT,onShellSnapshotReceived:e=>{e===Vr()?.environmentId&&rS(`primary-shell-snapshot-received`)},onShellSnapshotCurrent:()=>void 0,onShellSnapshotApplied:e=>{e===Vr()?.environmentId&&(rS(`primary-shell-snapshot-applied`),iS(`primary-shell-snapshot`,`primary-shell-snapshot-received`,`primary-shell-snapshot-applied`),rS(`primary-shell-usable`),iS(`primary-shell-ready`,`root-before-load-ready`,`primary-shell-usable`),OT())},onShellSnapshotReady:()=>void 0}),ET)}function DT(){let e=null;return{promise:new Promise(t=>{e=t}),resolve:t=>{e?.(t),e=null}}}function OT(){CT||(CT=!0,wT?.(),wT=null)}async function kT(e){CT||!Vr()?.environmentId||await Promise.race([TT,new Promise(t=>{globalThis.setTimeout(t,e)})])}async function AT(e,t){return await new Promise(n=>{let r=globalThis.setTimeout(()=>n(null),t);e.then(e=>{clearTimeout(r),n(e)},()=>{clearTimeout(r),n(null)})})}function jT(e){let t=a(e.environmentId,e.threadId),n=Q.getState(),r=Ob(n,t);if(r){if(r.hasPendingApprovals||r.hasPendingUserInput||r.hasActionableProposedPlan)return!0;let e=r.session?.orchestrationStatus;if(e&&e!==`idle`&&e!==`stopped`||r.latestTurn?.state===`running`)return!0}let i=Eb(n,t);if(!i)return!1;let o=i.session?.orchestrationStatus;return!!(o&&o!==`idle`&&o!==`stopped`)||i.latestTurn?.state===`running`||i.pendingSourceProposedPlan!==void 0}function MT(e){$().disposeThreadDetailSubscriptionsForEnvironment(e)}function NT(e,t){return $().retainThreadDetailSubscription(e,t)}function PT(e){return $().loadOlderThreadHistory(e)}function FT(e){return $().loadThreadHistoryAroundMessage(e)}function IT(e){return{lastError:e instanceof Error?e.message:String(e),lastErrorAt:new Date().toISOString()}}function LT(){return new Date().toISOString()}function RT(e){if(!(e instanceof Error))return null;let t=xT.exec(e.message);if(!t)return null;let n=Number.parseInt(t[1]??``,10);return Number.isInteger(n)?n:null}function zT(e,t){return RT(e)===t}function BT(e,t){return!e||!t?!1:e.alias===t.alias&&e.hostname===t.hostname&&e.username===t.username&&e.port===t.port}function VT(e){return e?wg().find(t=>BT(t.desktopSsh,e))??null:null}function HT(e){return Object.fromEntries(e.map(e=>[e.environmentId,e]))}function UT(e){return new Map(e.map(e=>[e,Tg(e)??null]))}async function WT(e){let t=HT(wg());for(let[n,r]of e){if(r){t[n]=r;continue}delete t[n]}let n=Object.values(t);await vg().persistence.setSavedEnvironmentRegistry(n.map(e=>_r(e))),xg.setState({byId:t})}async function GT(e,t){let n=window.desktopBridge;if(!n)throw Error(`SSH launch is only available in the desktop app.`);return await n.ensureSshEnvironment(e,t)}function KT(){let e=window.desktopBridge;if(!e)throw Error(`SSH launch is only available in the desktop app.`);return e}async function qT(e){return await KT().fetchSshEnvironmentDescriptor(e)}async function JT(e,t){return await KT().bootstrapSshBearerSession(e,t)}async function YT(e,t){return await KT().fetchSshSessionState(e,t)}async function XT(e,t,n){let r=await KT().issueSshWebSocketToken(t,n),i=new URL(e,window.location.origin);return i.searchParams.set(`wsToken`,r.token),i.toString()}async function ZT(e,t){if(!e.desktopSsh)return{record:e,pairingToken:null,remotePort:null,remoteServerKind:null};let n=await GT(e.desktopSsh,t),r={...e,httpBaseUrl:n.httpBaseUrl,wsBaseUrl:n.wsBaseUrl,desktopSsh:n.target};return(r.httpBaseUrl!==e.httpBaseUrl||r.wsBaseUrl!==e.wsBaseUrl||!BT(r.desktopSsh,e.desktopSsh))&&(await Eg(r),xg.getState().upsert(r)),{record:r,pairingToken:n.pairingToken,remotePort:n.remotePort??null,remoteServerKind:n.remoteServerKind??null}}async function QT(e){let t=UT([e.environmentId]),n=await ZT(e,{issuePairingToken:!0});if(!n.pairingToken)throw await WT(t),Error(`Desktop SSH launch did not return a pairing token.`);let r=await JT(n.record.httpBaseUrl,n.pairingToken).catch(async e=>{await WT(t);let r=[`local ${n.record.httpBaseUrl}`,`remote port ${n.remotePort??`unknown`}`,n.remoteServerKind?`remote server ${n.remoteServerKind}`:null].filter(Boolean).join(`, `),i=e instanceof Error?e.message:String(e);throw Error(`${i} (${r})`)});if(!await Og(n.record.environmentId,r.sessionToken))throw await WT(t),Error(`Unable to persist saved environment credentials.`);return{record:n.record,bearerToken:r.sessionToken,role:r.role??null}}function $T(e){X.getState().patch(e,{connectionState:`connecting`,lastError:null,lastErrorAt:null})}function eE(e){let t=LT();X.getState().patch(e,{connectionState:`connected`,authState:`authenticated`,connectedAt:t,disconnectedAt:null,lastError:null,lastErrorAt:null}),xg.getState().markConnected(e,t)}function tE(e,t){X.getState().patch(e,{connectionState:`disconnected`,disconnectedAt:LT(),...t&&t.trim().length>0?{lastError:t,lastErrorAt:LT()}:{}})}function nE(e,t){X.getState().patch(e,{connectionState:`error`,...IT(t)})}function rE(e){if(e.length<2)return[...e];let t=[];for(let n of e){let e=t.at(-1);if(e?.type===`thread.message-sent`&&n.type===`thread.message-sent`&&e.payload.threadId===n.payload.threadId&&e.payload.messageId===n.payload.messageId){t[t.length-1]={...n,payload:{...n.payload,attachments:n.payload.attachments??e.payload.attachments,createdAt:e.payload.createdAt,text:!n.payload.streaming&&n.payload.text.length>0?n.payload.text:e.payload.text+n.payload.text}};continue}t.push(n)}return t}function iE(e){return e.serverThreadArchivedAt===void 0?e.hasDraftThread:e.serverThreadArchivedAt===null}function aE(e,t){if(e.length===0)return;let n=Mg(e),r=rE(e),i=e.some(e=>e.type===`project.created`||e.type===`project.meta-updated`||e.type===`project.deleted`);n.needsProviderInvalidation&&vT.markProviderInvalidationNeeded(),vT.applyOrchestrationEvents(t,r),i&&vT.syncProjects(t),e.some(e=>e.type===`thread.created`||e.type===`thread.deleted`)&&vT.syncThreads(t);for(let e of n.promoteDraftThreadIds)bi(a(t,e));for(let e of n.clearDeletedThreadIds)vT.clearThreadDraft(a(t,e));for(let n of e)n.type===`project.deleted`&&vT.clearProjectDraftThread(o(t,n.payload.projectId));for(let e of n.removeTerminalStateThreadIds)vT.clearTerminalState(a(t,e));$().reconcileThreadDetailSubscriptionEvictionForEnvironment(t)}function oE(e,t){aE([e],t)}function sE(e=null){let t=()=>e===null||Lw.getState().generation===e;return{resetShellProjection:e=>{t()&&$().resetShellProjection(e)},applyShellEvent:(e,n)=>{t()&&$().applyShellEvent(e,n)},syncShellSnapshot:(n,r)=>{t()&&$().syncShellSnapshot(n,r,{onCurrent:()=>{e!==null&&Ba(r,e)},onReady:()=>{e!==null&&Ba(r,e)}})},applyTerminalEvent:(e,n)=>{if(!t())return;let r=a(n,ce.make(e.threadId)),i=Eb(Q.getState(),r),o=yi.getState().getDraftThreadByRef(r)!==null;iE({serverThreadArchivedAt:i?.archivedAt,hasDraftThread:o})&&zx.getState().applyTerminalEvent(r,e)}}}function cE(e){let t=Ar(e);if(!t)throw Error(`Unable to resolve websocket URL for ${e?.label??`primary environment`}.`);let n=e?.label??null;if(l()){let t=hh(),r=t.lifecycleHandlers(),i=new Hx(()=>t.nextUrl(),{...r,getConnectionLabel:()=>n,getEnvironmentId:()=>e?.environmentId??null,onOpen:()=>{r.onOpen?.(),rS(`primary-ws-open`)}});return tr(i,Pr(i,{manageTransport:!1}))}let r=async e=>{let n=await ai(),r=new URL(t,window.location.origin);return r.pathname=e,r.searchParams.set(`wsToken`,n.token),r.toString()};return tr(new Bx(()=>r(`/ws`),{getConnectionLabel:()=>n,getEnvironmentId:()=>e?.environmentId??null,getVersionMismatchHint:()=>qx(Yn())?.hint??null,onOpen:()=>{rS(`primary-ws-open`)}}),Pr(new Vx(()=>r(`/ws/device`),{getConnectionLabel:()=>n}),{openFrameSource:(e,t)=>$n({udid:e,handlers:t,socket:Eh,resolveUrl:()=>r(`/ws/device-frames`)})}))}async function lE(e,t,n){let r=Tg(e);if(!r)throw Error(`Saved environment ${e} not found.`);let i=r.desktopSsh?await XT(r.wsBaseUrl,r.httpBaseUrl,t):await tv({wsBaseUrl:r.wsBaseUrl,httpBaseUrl:r.httpBaseUrl,bearerToken:t}),a=new URL(i,window.location.origin);return a.pathname=n,a.toString()}function uE(e,t){return X.getState().ensure(e),tr(new Bx(()=>lE(e,t,`/ws`),{getConnectionLabel:()=>Tg(e)?.label??null,getEnvironmentId:()=>e,getVersionMismatchHint:()=>qx(X.getState().byId[e]?.serverConfig)?.hint??null,onAttempt:()=>{$T(e)},onOpen:()=>{eE(e)},onError:t=>{let n=qx(X.getState().byId[e]?.serverConfig);X.getState().patch(e,{connectionState:`error`,lastError:$x(t,n),lastErrorAt:LT()})},onClose:(t,n)=>{n.intentional||tE(e,$x(t.reason,qx(X.getState().byId[e]?.serverConfig)))}}),Pr(new Vx(()=>lE(e,t,`/ws/device`),{getConnectionLabel:()=>Tg(e)?.label??null}),{openFrameSource:(n,r)=>$n({udid:n,handlers:r,socket:Eh,resolveUrl:()=>lE(e,t,`/ws/device-frames`)})}))}async function dE(e,t,n,r,i){let a=Tg(e);if(!a)throw Error(`Saved environment ${e} not found.`);let[o,s]=await Promise.all([i?Promise.resolve(i):n.server.getConfig(),a.desktopSsh?YT(a.httpBaseUrl,t):$_({httpBaseUrl:a.httpBaseUrl,bearerToken:t})]);X.getState().patch(a.environmentId,{authState:s.authenticated?`authenticated`:`requires-auth`,descriptor:o.environment,serverConfig:o,role:s.authenticated?s.role??r??null:null}),xg.getState().rename(a.environmentId,o.environment.label)}function fE(e){return $().register(e)}async function pE(e){return await $().remove(e)}function mE(){let e=Vr();if(!e?.environmentId)throw Error(`Unable to resolve the primary environment.`);let t=$().read(e.environmentId);if(t)return t;let n=l()?Lw.getState().generation:null;return fE(dv({kind:`primary`,knownEnvironment:e,client:cE(e),...n===null?{}:{onResubscribe:e=>$a(e,n),onShellError:e=>Da(e,n)},...sE(n)}))}function hE(){return Vr()?.environmentId?$().connectPrimary():null}async function gE(){await $().disconnectPrimary()}function _E(){return hE()}async function vE(e){let t=globalThis.window?.desktopBridge;if(!t?.prepareDesktopWorkspaceTransport)throw Error(`Desktop workspace transport is unavailable.`);let n=$().read(e.environmentId);if(n)return await n.reconnect(),await n.ensureBootstrapped(),n;let r=new hT(e.environmentId,t),i=new Hx(()=>r.nextUrl(),{preserveSocketPath:!0,webSocketConstructor:e=>r.createSocket(e),retryTransientErrors:!1,reconnectMaxRetries:1e6,getConnectionLabel:()=>e.label,getEnvironmentId:()=>e.environmentId}),a=fE(dv({kind:`saved`,knownEnvironment:{...ii({id:e.environmentId,label:e.label,source:`hub-hosted`,target:{httpBaseUrl:`http://desktop-workspace.invalid`,wsBaseUrl:`ws://desktop-workspace.invalid`}}),environmentId:e.environmentId},client:tr(i),onConfigSnapshot:t=>{X.getState().ensure(e.environmentId),X.getState().patch(e.environmentId,{descriptor:t.environment,serverConfig:t,connectionState:`connected`})},onWelcome:t=>{X.getState().ensure(e.environmentId),X.getState().patch(e.environmentId,{descriptor:t.environment})},...sE()}));try{return await a.ensureBootstrapped(),a}catch(t){throw await pE(e.environmentId).catch(()=>void 0),t}}async function yE(e,t){return await $().ensureSavedEnvironmentConnection(e,n=>bE(e,t,n))}async function bE(e,t,n=()=>!1){let r=e,i=t?.role??null,a=t?.bearerToken??await Dg(e.environmentId),o=t?.client;for(;;){if(!a){if(e.desktopSsh){let e=await QT(r);r=e.record,a=e.bearerToken,i=e.role}else throw await kg(e.environmentId).catch(()=>void 0),X.getState().patch(e.environmentId,{authState:`requires-auth`,role:null,connectionState:`disconnected`,lastError:`Saved environment is missing its saved credential. Pair it again.`,lastErrorAt:LT()}),Error(`Saved environment is missing its saved credential.`)}r=(await ZT(r)).record;let s=a,c=o??uE(r.environmentId,s),l=DT(),u=dv({kind:`saved`,knownEnvironment:{...ii({id:r.environmentId,label:r.label,source:`manual`,target:{httpBaseUrl:r.httpBaseUrl,wsBaseUrl:r.wsBaseUrl}}),environmentId:r.environmentId},client:c,refreshMetadata:async()=>{await dE(r.environmentId,s,c)},onConfigSnapshot:e=>{l.resolve(e),X.getState().patch(r.environmentId,{descriptor:e.environment,serverConfig:e})},onWelcome:e=>{X.getState().patch(r.environmentId,{descriptor:e.environment})},...sE()});try{try{let e=t?.serverConfig??await AT(l.promise,yT);await dE(r.environmentId,s,c,i,e)}catch(e){if(!(r.desktopSsh?zT(e,401):Hc(e)&&e.status===401))throw e;if(!r.desktopSsh)throw await kg(r.environmentId),Error(`Saved environment credential expired. Pair it again.`,{cause:e});let t=await QT(r);r=t.record,a=t.bearerToken,i=t.role,await u.dispose().catch(()=>void 0),o=void 0;continue}if(n())throw await u.dispose().catch(()=>void 0),new sl(r.environmentId);return fE(u),u}catch(e){throw e instanceof sl?e:(nE(r.environmentId,e),await pE(r.environmentId).catch(()=>!1)||await u.dispose().catch(()=>void 0),e)}}}function xE(e){if(typeof document>`u`||typeof window>`u`)return bT;let t=()=>{if(document.visibilityState===`hidden`){ST=Date.now();return}document.visibilityState===`visible`&&ST!==null&&(ST=null,e(`visibilitychange`))},n=t=>{(t.persisted||ST!==null)&&(ST=null,e(`pageshow`))};return document.addEventListener(`visibilitychange`,t),window.addEventListener(`pageshow`,n),()=>{document.removeEventListener(`visibilitychange`,t),window.removeEventListener(`pageshow`,n)}}function SE(e){return $().subscribe(e)}function CE(){return $().list()}function wE(e){return $().read(e)}function TE(e){let t=wE(e);if(!t)throw Error(`No websocket client registered for environment ${e}.`);return t}async function EE(e,t){let n=await TE(e).client.server.updateSettings(t);if(Vr()?.environmentId===e){Er(n);return}let r=X.getState().byId[e]?.serverConfig;r&&X.getState().patch(e,{serverConfig:{...r,settings:n}})}function DE(){return mE()}async function OE(e){let t=Tg(e);$().cancelPendingSavedEnvironmentConnection(e),$().read(e)?.kind===`saved`&&await pE(e).catch(()=>!1),tE(e),t?.desktopSsh&&typeof window<`u`&&(await window.desktopBridge?.disconnectSshEnvironment(t.desktopSsh),await kg(e))}async function kE(e){let t=Tg(e);if(!t)throw Error(`Saved environment not found.`);let n=$().read(e);if(!n){$T(e);try{await yE(t);return}catch(t){if(gT(t))return;throw nE(e,t),t}}$T(e);try{t.desktopSsh&&await ZT(t),await n.reconnect()}catch(n){if(t.desktopSsh)try{let n=await QT(Tg(e)??t);await pE(e).catch(()=>!1),await yE(n.record,{bearerToken:n.bearerToken,role:n.role});return}catch(t){if(gT(t))return;throw nE(e,t),t}throw nE(e,n),n}}async function AE(e){await OE(e),MT(e),xg.getState().remove(e),X.getState().clear(e),Q.getState().removeEnvironmentState(e),await kg(e)}async function jE(e){let t=nv({...e.pairingUrl===void 0?{}:{pairingUrl:e.pairingUrl},...e.host===void 0?{}:{host:e.host},...e.pairingCode===void 0?{}:{pairingCode:e.pairingCode}}),n=e.desktopSsh?await qT(t.httpBaseUrl):await ev({httpBaseUrl:t.httpBaseUrl}),r=n.environmentId,i=UT([r]),a=Tg(r)??VT(e.desktopSsh),o=a&&a.environmentId!==r?a:null,s=e.desktopSsh?await JT(t.httpBaseUrl,t.credential):await Q_({httpBaseUrl:t.httpBaseUrl,credential:t.credential}),c={environmentId:r,label:e.label.trim()||a?.label||n.label,wsBaseUrl:t.wsBaseUrl,httpBaseUrl:t.httpBaseUrl,createdAt:a?.createdAt??LT(),lastConnectedAt:LT(),...e.desktopSsh??a?.desktopSsh?{desktopSsh:e.desktopSsh??a?.desktopSsh}:{}};if(await Eg(c),!await Og(r,s.sessionToken))throw await WT(i),Error(`Unable to persist saved environment credentials.`);return xg.getState().upsert(c),o&&await AE(o.environmentId),await pE(r).catch(()=>!1),await yE(c,{bearerToken:s.sessionToken,role:s.role}),c}async function ME(e,t){let n=await GT(e,{issuePairingToken:!0});if(!n.pairingToken)throw Error(`Desktop SSH launch did not return a pairing token.`);return await jE({label:t?.label?.trim()||n.target.alias,host:n.httpBaseUrl,pairingCode:n.pairingToken,desktopSsh:n.target}).catch(e=>{let t=[`local ${n.httpBaseUrl}`,`remote port ${n.remotePort??`unknown`}`,n.remoteServerKind?`remote server ${n.remoteServerKind}`:null].filter(Boolean).join(`, `),r=e instanceof Error?e.message:String(e);throw Error(`${r} (${t})`)})}async function NE(e){await $().read(e)?.ensureBootstrapped()}function PE(){return $().start()}var FE=n({waitForSavedEnvironmentRegistryHydration:()=>Cg});export{KC as $,rs as $n,w_ as $t,Bw as A,Td as An,Hb as At,_w as B,El as Bn,bb as Bt,Zw as C,Bh as Cn,Ix as Ct,Uw as D,Dh as Dn,Jb as Dt,nT as E,zh as En,Gb as Et,Pw as F,_u as Fn,gb as Ft,aC as G,Ol as Gn,vb as Gt,pw as H,Al as Hn,Sb as Ht,Tw as I,bu as In,Ob as It,RC as J,yl as Jn,Q as Jt,oC as K,wl as Kn,_b as Kt,Cw as L,Ql as Ln,yb as Lt,Rw as M,zu as Mn,Bb as Mt,Lw as N,Ru as Nn,mb as Nt,Vw as O,kh as On,qb as Ot,zw as P,Bu as Pn,Tb as Pt,qC as Q,os as Qn,F_ as Qt,xw as R,$l as Rn,Cb as Rt,iT as S,_g as Sn,zx as St,eT as T,Hh as Tn,Xb as Tt,dw as U,Tl as Un,Eb as Ut,cw as V,Sl as Vn,xb as Vt,sw as W,Dl as Wn,Db as Wt,vC as X,bl as Xn,sv as Xt,yC as Y,_l as Yn,xv as Yt,iC as Z,us as Zn,I_ as Zt,PE as _,wg as _n,iS as _t,gE as a,m_ as an,YC as at,oT as b,X as bn,Zx as bt,DE as c,r_ as cn,qS as ct,FT as d,Gg as dn,BS as dt,R_ as en,QS as et,wE as f,n_ as fn,GS as ft,NT as g,Ig as gn,rS as gt,TE as h,Fg as hn,yS as ht,vE as i,zg as in,MC as it,Fw as j,Vu as jn,Ub as jt,Hw as k,Oh as kn,Wb as kt,CE as l,t_ as ln,RS as lt,AE as m,Lg as mn,bS as mt,jE as n,q_ as nn,LC as nt,OE as o,Kg as on,ZS as ot,kE as p,x_ as pn,LS as pt,kC as q,kl as qn,hb as qt,ME as r,o_ as rn,AC as rt,NE as s,S_ as sn,YS as st,FE as t,E_ as tn,tC as tt,PT as u,p_ as un,US as ut,SE as v,jg as vn,Jx as vt,Xw as w,Rh as wn,Px as wt,rT as x,vg as xn,qx as xt,EE as y,xg as yn,Qx as yt,bw as z,tu as zn,wb as zt};
|
|
1
|
+
import{i as e,n as t,r as n,t as r}from"./react-SIfiwpqq.js";import{t as i}from"./compiler-runtime-qmuS0Svy.js";import{_ as a,g as o,h as s,l as c,n as l,p as u,t as d,u as f,y as p}from"./env-B4arEvJg.js";import{$c as m,$o as h,Aa as g,Ai as _,Al as v,Ar as y,As as b,Ba as x,Bo as S,Br as C,C as w,Cr as T,Cs as E,Dc as D,Dl as O,Ea as k,Ei as A,El as j,Es as M,Fa as N,Fl as P,Ga as F,Gc as I,Gi as L,Gr as R,Gs as ee,H as te,Ha as ne,Hc as re,Ho as ie,Hs as ae,Ii as oe,Il as se,Ir as ce,Ja as le,Jc as ue,Ki as de,L as fe,La as pe,Ll as me,Ml as he,Mo as ge,Ms as _e,Na as ve,Nr as ye,O as be,Oa as xe,Oc as Se,Or as Ce,Os as we,Pa as Te,Pc as Ee,Pl as De,Qc as Oe,Qo as ke,Qr as Ae,Ra as je,Rc as Me,Ri as Ne,Si as Pe,So as Fe,Sr as Ie,T as Le,Ta as Re,Ti as ze,Tl as Be,Ts as Ve,U as He,Ua as Ue,Ui as We,V as Ge,Vc as Ke,Vo as qe,Vr as Je,Wa as Ye,Wc as Xe,Wi as Ze,Xc as Qe,Xo as $e,Xr as et,Xs as tt,Ya as nt,Yc as rt,Yo as it,Za as at,Zc as ot,Zo as st,Zs as ct,_a as lt,_c as ut,_i as dt,_l as ft,_o as pt,_r as mt,ac as ht,ao as gt,as as _t,ba as vt,bc as yt,bl as bt,br as xt,bs as St,cl as Ct,co as wt,cs as Tt,da as Et,di as Dt,dl as Ot,do as kt,ec as At,ei as jt,el as Mt,eo as Nt,es as Pt,fa as Ft,fi as It,fl as Lt,gc as Rt,gl as zt,go as Bt,gr as Vt,gs as Ht,ha as Ut,hc as Wt,hl as Gt,ho as Kt,ia as qt,ic as Jt,is as Yt,it as Xt,ja as Zt,jc as Qt,jl as $t,ka as en,kl as tn,li as nn,ll as rn,lo as an,ma as on,mi as sn,ml as cn,ns as ln,oc as un,ol as dn,pa as fn,pc as pn,pi as mn,qa as hn,qi as gn,qo as _n,rc as vn,ro as yn,rs as bn,sc as xn,sl as Sn,ss as Cn,st as wn,t as Tn,tc as En,ua as Dn,ui as On,uo as kn,us as An,va as jn,vi as Mn,vr as Nn,vs as Pn,wc as Fn,wi as In,wr as Ln,ws as Rn,xc as zn,xo as Bn,xr as Vn,y as Hn,ya as Un,yc as Wn,yl as Gn,yo as Kn,zl as qn,zo as Jn}from"./src-Vf4LVnMX.js";import{$ as Yn,$t as Xn,B as Zn,Bt as Qn,Ct as $n,Ft as er,G as tr,Gt as nr,H as rr,Ht as ir,It as ar,J as or,Jt as sr,K as cr,Kt as lr,L as ur,Lt as dr,Mt as fr,Nt as z,Pt as pr,Q as mr,Qt as hr,Rt as gr,St as _r,Ut as vr,V as yr,Vt as br,W as xr,Wt as Sr,Xt as Cr,Y as wr,Yt as Tr,Z as Er,Zt as Dr,an as Or,at as kr,bt as Ar,cn as jr,ct as Mr,en as Nr,ft as Pr,in as Fr,it as Ir,jt as Lr,kt as Rr,ln as zr,mt as Br,n as Vr,nn as Hr,nt as Ur,o as Wr,on as Gr,ot as Kr,pt as qr,q as Jr,qt as Yr,r as Xr,rn as Zr,rt as Qr,sn as $r,st as ei,tn as ti,tt as ni,ut as ri,vt as ii,w as ai,wt as oi,xt as si,yt as ci,zt as li}from"./primary-BzLEg2w1.js";import{Bt as ui,Ct as di,It as fi,Lt as pi,Mt as mi,Rt as hi,_t as gi,bt as _i,gt as vi,i as yi,n as bi,nt as xi,r as Si,rt as Ci,vt as wi,zt as Ti}from"./composerDraftStore-CdJJZe42.js";import{t as Ei}from"./pairingUrl-rQM9kSGT.js";import{n as Di,t as Oi}from"./visibilityPolling-BwzZdaSN.js";import{i as ki}from"./branding-BDfN6Spd.js";import{a as Ai,n as ji,r as Mi}from"./perfInstrumentation-BT27w4tn.js";import{$ as Ni,A as Pi,B as Fi,Bt as Ii,C as Li,D as Ri,E as zi,F as Bi,Ft as Vi,G as Hi,Gt as Ui,H as Wi,Ht as Gi,I as Ki,It as qi,J as Ji,K as Yi,L as Xi,Lt as Zi,M as Qi,N as $i,Nt as ea,O as ta,P as na,Pt as ra,Q as ia,R as aa,Rt as oa,S as sa,St as ca,T as la,U as ua,Ut as da,V as fa,Vt as pa,W as ma,Wt as ha,X as ga,Y as _a,Z as va,_ as ya,_t as ba,a as xa,at as Sa,b as Ca,bt as wa,c as Ta,ct as Ea,d as Da,dt as Oa,et as ka,f as Aa,ft as ja,g as Ma,gt as Na,h as Pa,ht as Fa,it as Ia,j as La,jt as Ra,k as za,l as Ba,lt as Va,m as Ha,mt as Ua,nt as Wa,o as Ga,ot as Ka,p as qa,pt as Ja,q as Ya,rt as B,s as Xa,st as Za,tt as Qa,u as $a,ut as eo,vt as to,w as no,wt as ro,x as io,yt as ao,z as oo,zt as so}from"./authorization-mIJKV2yp.js";import{t as co}from"./presentationTier-xlIjcFab.js";import{r as lo}from"./hostedPairing-PogXRAb7.js";import{t as uo}from"./settingsDialogStore-ygYoScKe.js";import{i as fo}from"./uiStateStore-B6pjzSjj.js";var V=e(r(),1),po=Gt,mo=vn,ho=globalThis.Number,go=e=>{if(e===`NaN`)return Mt(NaN);if(e===`Infinity`)return Mt(1/0);if(e===`-Infinity`)return Mt(-1/0);if(e.trim()===``)return m();let t=ho(e);return ho.isNaN(t)?m():Mt(t)};function _o(e){return{_tag:`Value`,value:e}}function vo(e,t){return{_tag:`Record`,keys:e,value:t}}function yo(e,t){return{_tag:`Array`,length:e,value:t}}Ht(`SourceError`);var bo=yt(`effect/ConfigProvider`,{defaultValue:()=>Oo()}),xo={...dn,toJSON(){return{_id:`ConfigProvider`}}},So=e=>e;function Co(e,t){let n=Object.create(xo);return n.load=e,n.mapInput=t,n}function wo(e,t){return Co(n=>e(t(n)),n=>wo(e,P(t,n)))}function To(e){return wo(e,So)}function Eo(e,t){return e===``&&!t?void 0:e}function Do(e,t){let n=t?.preserveEmptyStrings===!0,r=ko(e);return To(t=>S(jo(r,e,t,n)))}function Oo(e){return Do(e?.env??{APP_VERSION:`0.1.13`,BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,TSS_INLINE_CSS_ENABLED:`false`,VITE_HOSTED_APP_URL:``,VITE_HTTP_URL:``,VITE_RYCO_CLIENT_MODE:`standard`,VITE_RYCO_MOBILE_APP_URL:``,VITE_RYCO_PHONE_APP_INTERSTITIAL:`disabled`,VITE_WS_URL:``},{preserveEmptyStrings:e?.preserveEmptyStrings})}function ko(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){let e=i.children??=Object.create(null);i=e[t]??={}}}return t}var Ao=/^(0|[1-9][0-9]*)$/;function jo(e,t,n,r){let i=n.map(String).join(`_`),a=Eo(Object.hasOwn(t,i)?t[i]:void 0,r),o=Mo(e,n),s=o?.children?Object.keys(o.children):[];return s.length===0?a===void 0?void 0:_o(a):s.every(e=>Ao.test(e))?yo(Math.max(...s.map(e=>parseInt(e,10)))+1,a):vo(new Set(s),a)}function Mo(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 No=`~effect/Config`,Po=class{_tag=`ConfigError`;name=`ConfigError`;cause;constructor(e){this.cause=e}get message(){return this.cause.toString()}toString(){return`ConfigError(${this.message})`}},Fo={...Se({label:`Config`,evaluate(e){return this.parse(e.getRef(bo))}}),[No]:No,toJSON(){return{_id:`Config`}}};function Io(e){let t=Object.create(Fo);return t.evaluator=e,t.parse=t=>e(t,[]).pipe(kn(e=>e.error),F(e=>e._tag===`Resolved`?S(e.value):ne(e.error))),t}var Lo=(e,t)=>({_tag:`Resolved`,value:e,hasInput:t}),Ro=e=>({_tag:`Absent`,error:e}),zo=(e,t)=>({error:e,hasInput:t}),Bo=e=>tn(e,`SourceError`),Vo=(e,t)=>e.pipe(Te(e=>Bo(e)?ne(zo(new Po(e),t)):x(e))),Ho=()=>`<configuration>`,Uo=(e,t)=>e.load(t).pipe(Bt,an(n=>({provider:e,path:t,node:n,toString:Ho}))),Wo=(e,t)=>Uo(e.provider,[...e.path,t]),Go=e=>e?.value,Ko=(e,t)=>Et(fn,e,new on(vt(e=>t(e)),jn())),qo=e=>{switch(e._tag){case`Union`:return e.types.every(qo);case`Objects`:case`Arrays`:case`Suspend`:return!1;default:return!0}},Jo=(e,t)=>{switch(e._tag){case`Objects`:return t?._tag===`Record`;case`Arrays`:return t?._tag===`Array`;case`Union`:return e.types.some(e=>Jo(e,t));case`Suspend`:return Jo(e.thunk(),t);default:return Go(t)!==void 0}},Yo=me(e=>{let t=new WeakSet,n=Dn(e=>{switch(t.add(e),e._tag){case`Objects`:{let t=e.indexSignatures.map(e=>de(e.parameter)),r=hn(function*(n){if(n.node?._tag!==`Record`)return;let r=n.node,i=new Set;for(let t of e.propertySignatures)typeof t.name==`string`&&i.add(t.name);if(t.length>0)for(let e of r.keys)t.some(t=>t(e))&&i.add(e);let a={};for(let e of i){let t=yield*Wo(n,e);t.node!==void 0&&cn(a,e,t)}return a});return Ko(e.recur(n,e=>e),r)}case`Arrays`:{let t=hn(function*(e){if(e.node?._tag!==`Array`)return;let t=[];for(let n=0;n<e.node.length;n++)t.push(yield*Wo(e,n));return t});return Ko(e.recur(n),t)}case`Union`:for(let t of e.types)n(t);return qo(e)?Ko(e,e=>S(Go(e.node))):e.recur(n);case`Suspend`:{let r=e.thunk();return t.has(r)||n(r),e.recur(n)}case`Declaration`:case`Any`:throw new globalThis.Error(`Config.schema does not support opaque StringTree encodings`,{cause:e});default:return Ko(e,e=>S(Go(e.node)))}});return n(e)});function Xo(e,t){let n=We(e),r=Ft(n.ast),i=gn(oe(Yo(n.ast))),a=typeof t==`string`?[t]:t??[];return Io((e,t)=>{let n=[...t,...a];return Vo(Uo(e,n),!1).pipe(F(e=>{let t=Jo(r,e.node);return Vo(i(e).pipe(an(e=>Lo(e,t)),N(e=>{let r=new Po(new Ze(n.length>0?new k(n,e):e));return t?ne(zo(r,!0)):S(Ro(r))})),t)}))})}var Zo=(e,t,n)=>{let r=Dt(e,t),i=Ut(n),a=It.pipe(Pe(We(r),{decode:i.decode,encode:jn({strict:!1}).compose(i.encode)}));return Mn([r,a])};function Qo(e){return Xo(It,e)}function $o(){return{executionCount:0,isPending:!1,lastArgs:void 0,lastExecutionTime:0,nextExecutionTime:0,status:`idle`,maybeExecuteCount:0}}var es={enabled:!0,leading:!0,trailing:!0,wait:0},ts=class{#e;constructor(e,t){this.fn=e,this.store=new Ti($o()),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`}}),pi(`Throttler`,this)},this.#n=()=>!!ui(this.options.enabled,this),this.#r=()=>ui(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($o())},this.key=t.key,this.options={...es,...t},this.#t(this.options.initialState??{}),this.key&&hi.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},ns=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),rs=t(((e,t)=>{t.exports=ns()})),is=e(rs(),1);function as(e){let t=is.unstable_scheduleCallback(4,e);return()=>is.unstable_cancelCallback(t)}var os=V.createContext(Fr({scheduleTask:as,defaultIdleTTL:400})),ss=new WeakMap;function cs(e,t){let n=ss.get(e);n===void 0&&(n=new WeakMap,ss.set(e,n));let r=n.get(t);if(r!==void 0)return r;let i={subscribe(n){return e.subscribe(t,n)},snapshot(){return e.get(t)},getServerSnapshot(){return Dr(t,e)}};return n.set(t,i),i}function ls(e,t){let n=cs(e,t);return V.useSyncExternalStore(n.subscribe,n.snapshot,n.getServerSnapshot)}var us=(e,t)=>{let n=V.useContext(os);return t?ls(n,V.useMemo(()=>Nr(e,t),[e,t])):ls(n,e)},ds=(e,t,n)=>{let r=V.useContext(os);V.useEffect(()=>r.subscribe(e,t,n),[r,e,t,n?.immediate])},fs=`~effect/http/UrlParams`,ps=e=>j(e,fs),ms={...dn,[fs]:fs,[Symbol.iterator](){return this.params[Symbol.iterator]()},toJSON(){return{_id:`UrlParams`,params:Object.fromEntries(this.params)}},[Gn](e){return vs(this,e)},[Be](){return bt(this.params.flat())}},hs=e=>{let t=Object.create(ms);return t.params=e,t},gs=e=>{if(ps(e))return e;let t=_s(e),n=[];for(let e=0;e<t.length;e++)if(Array.isArray(t[e][0])){let[r,i]=t[e];n.push([`${r[0]}[${r.slice(1).join(`][`)}]`,i])}else n.push(t[e]);return hs(n)},_s=e=>{let t=typeof e[Symbol.iterator]==`function`?Qt(e):Object.entries(e),n=[];for(let[e,r]of t)if(Array.isArray(r))for(let t=0;t<r.length;t++)r[t]!==void 0&&n.push([e,String(r[t])]);else if(typeof r==`object`){let t=_s(r);for(let[r,i]of t)n.push([[e,...typeof r==`string`?[r]:r],i])}else r!==void 0&&n.push([e,String(r)]);return n},vs=zt((e,t)=>ys(e.params,t.params)),ys=Ee(po([ft(),ft()])),bs=hs([]),xs=De(2,(e,t)=>{let n=gs(t),r=n.params,i=new Set;for(let e=0;e<r.length;e++)i.add(r[e][0]);for(let t=0;t<e.params.length;t++)i.has(e.params[t][0])||r.push(e.params[t]);return n}),Ss=`~effect/http/HttpBody`;Ht(`HttpBodyError`);var Cs=class{[Ss];constructor(){this[Ss]=Ss}[rn](){return this.toJSON()}toString(){return Ot(this,{ignoreToString:!0})}},ws=new class extends Cs{_tag=`Empty`;toJSON(){return{_id:`effect/HttpBody`,_tag:`Empty`}}},Ts=class extends Cs{_tag=`Uint8Array`;body;contentType;contentLength;constructor(e,t,n){super(),this.body=e,this.contentType=t,this.contentLength=n}toJSON(){return{_id:`effect/HttpBody`,_tag:`Uint8Array`,body:this.contentType.startsWith(`text/`)||this.contentType.endsWith(`json`)?new TextDecoder().decode(this.body):`Uint8Array(${this.body.length})`,contentType:this.contentType,contentLength:this.contentLength}}},Es=(e,t)=>new Ts(e,t??`application/octet-stream`,e.length),Ds=new TextEncoder,Os=(e,t)=>Es(Ds.encode(e),t??`text/plain`),ks=(e,t)=>Os(JSON.stringify(e),t??`application/json`),As=`~effect/http/Cookies`,js=`~effect/http/Cookies/Cookie`;Ht(`CookieError`);var Ms={[As]:As,...Sn,toJSON(){return{_id:`effect/Cookies`,cookies:u(this.cookies,e=>e.toJSON())}},pipe(){return qn(this,arguments)}},Ns=e=>{let t=Object.create(Ms);return t.cookies=e,t},Ps=e=>{let t={};for(let n of e)cn(t,n.name,n);return Ns(t)},Fs=e=>{let t=typeof e==`string`?[e]:e,n=[];for(let e of t){let t=Is(e.trim());t&&n.push(t)}return Ps(n)};function Is(e){let t=e.split(`;`).map(e=>e.trim()).filter(e=>e!==``);if(t.length===0)return;let n=t[0].indexOf(`=`);if(n===-1)return;let r=t[0].slice(0,n);if(!Ls.test(r))return;let i=t[0].slice(n+1),a=zs(i);if(t.length===1)return Object.assign(Object.create(Rs),{name:r,value:a,valueEncoded:i});let o={};for(let e=1;e<t.length;e++){let n=t[e],r=n.indexOf(`=`),i=r===-1?n:n.slice(0,r).trim(),a=r===-1?void 0:n.slice(r+1).trim();switch(i.toLowerCase()){case`domain`:{if(a===void 0)break;let e=a.trim().replace(/^\./,``);e&&(o.domain=e);break}case`expires`:{if(a===void 0)break;let e=new Date(a);isNaN(e.getTime())||(o.expires=e);break}case`max-age`:{if(a===void 0)break;let e=parseInt(a,10);isNaN(e)||(o.maxAge=ut(e));break}case`path`:if(a===void 0)break;a[0]===`/`&&(o.path=a);break;case`priority`:if(a===void 0)break;switch(a.toLowerCase()){case`low`:o.priority=`low`;break;case`medium`:o.priority=`medium`;break;case`high`:o.priority=`high`}break;case`httponly`:o.httpOnly=!0;break;case`secure`:o.secure=!0;break;case`partitioned`:o.partitioned=!0;break;case`samesite`:if(a===void 0)break;switch(a.toLowerCase()){case`lax`:o.sameSite=`lax`;break;case`strict`:o.sameSite=`strict`;break;case`none`:o.sameSite=`none`}}}return Object.assign(Object.create(Rs),{name:r,value:a,valueEncoded:i,options:Object.keys(o).length>0?o:void 0})}var Ls=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Rs={[js]:js,...Sn,toJSON(){return{_id:`effect/Cookies/Cookie`,name:this.name,value:this.value,options:this.options}}},zs=e=>{try{return decodeURIComponent(e)}catch{return e}},Bs=[[`GET`,`get`],[`POST`,`post`],[`PUT`,`put`],[`DELETE`,`del`],[`PATCH`,`patch`],[`HEAD`,`head`],[`OPTIONS`,`options`],[`TRACE`,`trace`]],Vs=(e,t)=>t._tag===`Empty`||t._tag===`FormData`?Qn(Qn(e,`content-type`),`content-length`):(e=t.contentType===void 0?Qn(e,`content-type`):br(e,`content-type`,t.contentType),t.contentLength===void 0?Qn(e,`content-length`):br(e,`content-length`,t.contentLength.toString())),Hs=class extends Ht(`UrlError`){},Us=(e,t,n)=>Ke({try:()=>{let r=new URL(e,Ws());for(let e=0;e<t.params.length;e++){let[n,i]=t.params[e];i!==void 0&&r.searchParams.append(n,i)}return n!==void 0&&(r.hash=n),r},catch:e=>new Hs({cause:e})}),Ws=()=>{if(`location`in globalThis&&globalThis.location!==void 0&&globalThis.location.origin!==void 0&&globalThis.location.pathname!==void 0)return location.origin+location.pathname},Gs=`~effect/http/HttpClientRequest`,Ks={[Gs]:Gs,...Sn,toJSON(){return{_id:`HttpClientRequest`,method:this.method,url:this.url,urlParams:this.urlParams,hash:this.hash,headers:Lt(this.headers),body:this.body.toJSON()}},pipe(){return qn(this,arguments)}};function qs(e,t,n,r,i,a){let o=Object.create(Ks);return o.method=e,o.url=t,o.urlParams=n,o.hash=r,o.headers=i,o.body=a,o}var Js=qs(`GET`,``,bs,m(),er,ws),Ys=e=>(t,n)=>Zs(Js,{method:e,url:t,...n??void 0}),Xs=Ys(`POST`),Zs=De(2,(e,t)=>{let n=e;return t.method&&(n=Qs(n,t.method)),t.url&&(n=rc(n,t.url)),t.headers&&(n=ec(n,t.headers)),t.urlParams&&(n=ic(n,t.urlParams)),t.hash&&(n=ac(n,t.hash)),t.body&&(n=oc(n,t.body)),t.accept&&(n=tc(n,t.accept)),t.acceptJson&&(n=nc(n)),n}),Qs=De(2,(e,t)=>qs(t,e.url,e.urlParams,e.hash,e.headers,e.body)),$s=De(3,(e,t,n)=>qs(e.method,e.url,e.urlParams,e.hash,br(e.headers,t,n),e.body)),ec=De(2,(e,t)=>qs(e.method,e.url,e.urlParams,e.hash,ir(e.headers,t),e.body)),tc=De(2,(e,t)=>$s(e,`Accept`,t)),nc=tc(`application/json`),rc=De(2,(e,t)=>{if(typeof t==`string`)return qs(e.method,t,e.urlParams,e.hash,e.headers,e.body);let n=new URL(t.toString()),r=gs(n.searchParams),i=Xe(n.hash===``?void 0:n.hash.slice(1));return n.search=``,n.hash=``,qs(e.method,n.toString(),r,i,e.headers,e.body)}),ic=De(2,(e,t)=>qs(e.method,e.url,xs(e.urlParams,t),e.hash,e.headers,e.body)),ac=De(2,(e,t)=>qs(e.method,e.url,e.urlParams,Mt(t),e.headers,e.body)),oc=De(2,(e,t)=>qs(e.method,e.url,e.urlParams,e.hash,Vs(e.headers,t),t)),sc=`~effect/http/HttpIncomingMessage`,cc=(e,t)=>{let n=e.headers[`content-type`]??``,r;if(n.includes(`application/json`))try{r=ge(e.json)}catch{}else if(n.includes(`text/`)||n.includes(`urlencoded`))try{r=ge(e.text)}catch{}let i={...t,headers:Lt(e.headers),remoteAddress:e.remoteAddress};return r!==void 0&&(i.body=r),i},lc=`~effect/http/HttpClientResponse`,uc=(e,t)=>new fc(e,t),dc=e=>e.status>=200&&e.status<300?S(e):ne(new nr({reason:new Yr({response:e,request:e.request,description:`non 2xx status code`})})),fc=class extends Ct{[sc];[lc];request;source;constructor(e,t){super(),this.request=e,this.source=t,this[sc]=sc,this[lc]=lc}toJSON(){return cc(this,{_id:`HttpClientResponse`,request:this.request.toJSON(),status:this.status})}get status(){return this.source.status}get headers(){return ar(this.source.headers)}cachedCookies;get cookies(){return this.cachedCookies?this.cachedCookies:this.cachedCookies=Fs(this.source.headers.getSetCookie())}get remoteAddress(){return m()}get stream(){return this.source.body?R({evaluate:()=>this.source.body,onError:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}):Je(new nr({reason:new Sr({request:this.request,response:this,description:`can not create stream from empty body`})}))}get json(){return Ye(this.text,e=>$e({try:()=>e===``?null:JSON.parse(e),catch:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}))}textBody;get text(){return this.textBody??=wt(this.arrayBuffer,e=>new TextDecoder().decode(e))}get urlParamsBody(){return Ye(this.text,e=>$e({try:()=>gs(new URLSearchParams(e)),catch:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}))}formDataBody;get formData(){return this.formDataBody??=it({try:()=>this.source.formData(),catch:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}).pipe(Zt,ge)}arrayBufferBody;get arrayBuffer(){return this.arrayBufferBody||=it({try:()=>this.source.arrayBuffer(),catch:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}).pipe(Zt,ge),this.arrayBufferBody}pipe(){return qn(this,arguments)}},pc=e=>dr({b3:`${e.traceId}-${e.spanId}-${e.sampled?`1`:`0`}${Oe(e.parent,{onNone:()=>``,onSome:e=>`-${e.spanId}`})}`,traceparent:`00-${e.traceId}-${e.spanId}-${e.sampled?`01`:`00`}`}),mc=`~effect/http/HttpClient`,hc=zn(`effect/HttpClient`),gc=De(2,(e,t)=>vc(n=>t(e.postprocess(n)),e.preprocess)),_c=gc(Ye(dc)),vc=(e,t)=>{let n=Object.create(yc);return n.preprocess=t,n.postprocess=e,n.execute=function(n){return e(t(n))},n},yc={[mc]:mc,pipe(){return qn(this,arguments)},...Sn,toJSON(){return{_id:`effect/HttpClient`}},...Object.fromEntries(Bs.map(([e,t])=>[t,function(t,n){return this.execute(Ys(e)(t,n))}]))},bc=e=>vc(t=>Ye(t,t=>ln(n=>{let r=Oc.get(t),i=r??new AbortController,a=Us(t.url,t.urlParams,ue(t.hash));if(Me(a))return ne(new nr({reason:new lr({request:t,cause:a.failure})}));let o=a.success;if(n.getRef(Jt)||n.getRef(Sc)(t)){let a=e(t,o,i.signal,n);return r?a:st(e=>kt(e(a),{onSuccess(e){return Dc.register(e,i),S(new kc(e,i))},onFailure(e){return tt(e)&&i.abort(),Ue(e)}}))}return h(n.getRef(Tc)(t),{kind:`client`},a=>{a.attribute(`http.request.method`,t.method),a.attribute(`server.address`,o.origin),o.port!==``&&a.attribute(`server.port`,+o.port),a.attribute(`url.full`,o.toString()),a.attribute(`url.path`,o.pathname),a.attribute(`url.scheme`,o.protocol.slice(0,-1));let s=o.search.slice(1);s!==``&&a.attribute(`url.query`,s);let c=n.getRef(pr),l=n.getRef(Cc),u=li(t.headers,c);for(let e in u)l(e,`request`)&&a.attribute(`http.request.header.${e}`,String(u[e]));return t=n.getRef(wc)?ec(t,pc(a)):t,st(s=>s(e(t,o,i.signal,n)).pipe(bn(a,{captureStackTrace:!1}),kt({onSuccess:e=>{a.attribute(`http.response.status_code`,e.status);let t=li(e.headers,c);for(let e in t)l(e,`response`)&&a.attribute(`http.response.header.${e}`,String(t[e]));return r?S(e):(Dc.register(e,i),S(new kc(e,i)))},onFailure(e){return!r&&tt(e)&&i.abort(),Ue(e)}})))})})),S),xc=De(2,(e,t)=>{let n=Tt(t),r=n?`errors-and-responses`:t.retryOn??`errors-and-responses`,i=n?t:t.schedule,a=i&&An(i),o=n?void 0:t.times;return gc(e,P(r===`errors-only`?se:Bn({schedule:a,times:o,while:Mc}),r===`response-only`?se:Fe({while:n||t.while===void 0?Ac:v(Ac,t.while),schedule:i,times:o})))}),Sc=yt(`effect/http/HttpClient/TracerDisabledWhen`,{defaultValue:()=>$t}),Cc=yt(`effect/http/HttpClient/TracerHeaderFilter`,{defaultValue:()=>he}),wc=yt(`effect/HttpClient/TracerPropagationEnabled`,{defaultValue:he}),Tc=yt(`effect/http/HttpClient/SpanNameGenerator`,{defaultValue:()=>e=>`http.client ${e.method}`}),Ec=e=>Pn(hc)(je(t=>wt(e,e=>gc(e,ke(e=>D(t,e)))))),Dc=(()=>{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))}}})(),Oc=new WeakMap,kc=class{original;controller;constructor(e,t){this.original=e,this.controller=t}[lc]=lc;[sc]=sc;applyInterrupt(e){return qe(()=>(Dc.unregister(this.original),Kt(e,()=>ie(()=>{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 et(()=>(Dc.unregister(this.original),C(this.original.stream,ie(()=>{this.controller.abort()}))))}toJSON(){return this.original.toJSON()}[rn](){return this.original[rn]()}pipe(){return qn(this,arguments)}},Ac=e=>At(e)||jc(e),jc=e=>Tr(e)&&(e.reason._tag===`TransportError`||e.reason._tag===`StatusCodeError`&&Mc(e.reason.response)),Mc=e=>e.status===408||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504;function Nc(e,t){let n=e.length,r=e.reduce((e,t)=>e+t.retainedBytes,0),i=()=>n<=t.maxEntries&&r<=t.maxBytes;if(i())return[];let a=[],o=e.filter(e=>e.evictable).toSorted((e,t)=>e.lastAccessedAt-t.lastAccessedAt);for(let e of o){if(i())break;a.push(e.key),--n,r=Math.max(0,r-e.retainedBytes)}return a}function Pc(e){return{server:{refreshProviders:e.server.refreshProviders,updateProvider:e.server.updateProvider,getSettings:e.server.getSettings,updateSettings:e.server.updateSettings,upsertKeybinding:e.server.upsertKeybinding,getDiagnosticsSnapshot:e.server.getDiagnosticsSnapshot,discoverSourceControl:e.server.discoverSourceControl,listOpinionatedPlugins:e.server.listOpinionatedPlugins,checkOpinionatedPlugins:e.server.checkOpinionatedPlugins,installOpinionatedPlugin:e.server.installOpinionatedPlugin},...e.keybindings?{keybindings:{replaceCustom:e.keybindings.replaceCustom}}:{},...e.device?{device:e.device}:{},terminal:{open:t=>e.terminal.open(t),write:t=>e.terminal.write(t),resize:t=>e.terminal.resize(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:{listEntries:e.projects.listEntries,readFile:e.projects.readFile,readFileBinary:e.projects.readFileBinary,searchEntries:e.projects.searchEntries,writeFile:e.projects.writeFile,stageFileReference:e.projects.stageFileReference,initializeGit:e.projects.initializeGit},filesystem:{browse:e.filesystem.browse},sourceControl:{lookupRepository:e.sourceControl.lookupRepository,searchRepositories:e.sourceControl.searchRepositories,cloneRepository:e.sourceControl.cloneRepository,publishRepository:e.sourceControl.publishRepository},vcs:{pull:e.vcs.pull,refreshStatus:e.vcs.refreshStatus,onStatus:(t,n,r)=>e.vcs.onStatus(t,n,r),listRefs:e.vcs.listRefs,createWorktree:e.vcs.createWorktree,removeWorktree:e.vcs.removeWorktree,createRef:e.vcs.createRef,switchRef:e.vcs.switchRef,init:e.vcs.init},git:{runStackedAction:e.git.runStackedAction,resolvePullRequest:e.git.resolvePullRequest,preparePullRequestThread:e.git.preparePullRequestThread,createWorktreeForProject:e.git.createWorktreeForProject,findWorktreeForOrigin:e.git.findWorktreeForOrigin,archiveWorktree:e.git.archiveWorktree,restoreWorktree:e.git.restoreWorktree,deleteWorktree:e.git.deleteWorktree},...e.worktrees?{worktrees:{setManualPosition:e.worktrees.setManualPosition}}:{},...e.threads?{threads:{setManualBucket:e.threads.setManualBucket,setManualPosition:e.threads.setManualPosition}}:{},orchestration:{dispatchCommand:e.orchestration.dispatchCommand,getTurnDiff:e.orchestration.getTurnDiff,getWorkflowScript:e.orchestration.getWorkflowScript,getTaskOutput:e.orchestration.getTaskOutput,stopBackgroundTask:e.orchestration.stopBackgroundTask,getFullThreadDiff:e.orchestration.getFullThreadDiff,searchThreadMessages:e.orchestration.searchThreadMessages,...e.orchestration.getThreadWindow?{getThreadWindow:e.orchestration.getThreadWindow}:{},...e.orchestration.getThreadHistoryPage?{getThreadHistoryPage:e.orchestration.getThreadHistoryPage}:{},subscribeShell:(t,n)=>e.orchestration.subscribeShell(t,n),subscribeThread:(t,n,r)=>e.orchestration.subscribeThread(t,n,r),...e.orchestration.subscribeThreadWindow?{subscribeThreadWindow:(t,n,r)=>e.orchestration.subscribeThreadWindow(t,n,r)}:{}},contextHandoff:{getInspectionSummary:e.contextHandoff.getInspectionSummary,listInspectionEntries:e.contextHandoff.listInspectionEntries,readRawPayloadChunk:e.contextHandoff.readRawPayloadChunk,readExportChunk:e.contextHandoff.readExportChunk},mcp:{listWorkspaces:e.mcp.listWorkspaces,listServers:e.mcp.listServers,upsertServer:e.mcp.upsertServer,setServerEnabled:e.mcp.setServerEnabled,removeServer:e.mcp.removeServer,reloadServers:e.mcp.reloadServers,startOauthLogin:e.mcp.startOauthLogin},...e.agentControl?{agentControl:{listProposals:e.agentControl.listProposals,getProposal:e.agentControl.getProposal,acceptProposal:e.agentControl.acceptProposal,rejectProposal:e.agentControl.rejectProposal,subscribeProposals:e.agentControl.subscribeProposals,listIntegrations:e.agentControl.listIntegrations,createIntegration:e.agentControl.createIntegration,updateIntegration:e.agentControl.updateIntegration,resumeIntegrationPairing:e.agentControl.resumeIntegrationPairing,revokeIntegration:e.agentControl.revokeIntegration,deleteIntegration:e.agentControl.deleteIntegration,listMcpInstallations:e.agentControl.listMcpInstallations,connectMcpInstallation:e.agentControl.connectMcpInstallation,repairMcpInstallation:e.agentControl.repairMcpInstallation,disconnectMcpInstallation:e.agentControl.disconnectMcpInstallation}}:{}}}function Fc(e){return{read:t=>{if(!e.canReadConnections()||!t)return;let n=e.readClient(t);return n?Pc(n):void 0}}}function Ic(e,t){if(e.sequence!==t.sequence)return e.sequence-t.sequence;let n=e.updatedAt??``,r=t.updatedAt??``;return n===r?0:n<r?-1:1}function Lc(e){return{sequence:e.snapshotSequence,updatedAt:e.updatedAt}}function Rc(e){if(e.current===null)return`newer`;let t=Ic(e.current,Lc(e.next));return t<0?`newer`:t===0?`current`:`stale`}function zc(e){return e.current===null||e.sequence>e.current.sequence}function Bc(){let e=new Map;return{read:t=>e.get(t)??null,markSnapshot:(t,n)=>{let r=Lc(n),i=e.get(t);(i===void 0||Ic(i,r)<0)&&e.set(t,r)},markEvent:(t,n)=>{let r=e.get(t);(r===void 0||n>r.sequence)&&e.set(t,{sequence:n,updatedAt:r?.updatedAt??null})},clearEnvironment:t=>e.delete(t),clear:()=>e.clear()}}var Vc=class extends Error{status;constructor(e,t){super(e),this.name=`RemoteEnvironmentAuthHttpError`,this.status=t}};function Hc(e){return e instanceof Vc}function Uc(e,t){let n=new URL(e);return n.pathname=t,n.toString()}async function Wc(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 Gc(e,t){let n=Uc(t.httpBaseUrl,t.pathname),r;try{r=await e.fetch(n,{method:t.method??`GET`,headers:{...t.body===void 0?{}:{"content-type":`application/json`},...t.bearerToken?{authorization:`Bearer ${t.bearerToken}`}:{}},...t.body===void 0?{}:{body:JSON.stringify(t.body)}})}catch(e){throw Error(`Failed to fetch remote auth endpoint ${n} (${e.message}).`,{cause:e})}if(!r.ok)throw new Vc(await Wc(r,`Remote auth request failed (${r.status}).`),r.status);return await r.json()}function Kc(e,t){return{bootstrapRemoteBearerSession:async t=>Gc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/bootstrap/bearer`,method:`POST`,body:{credential:t.credential}}),fetchRemoteSessionState:async t=>Gc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/session`,bearerToken:t.bearerToken}),fetchRemoteEnvironmentDescriptor:async t=>Gc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/.well-known/ryco/environment`}),issueRemoteWebSocketToken:async t=>Gc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/ws-token`,method:`POST`,bearerToken:t.bearerToken}),resolveRemoteWebSocketConnectionUrl:async n=>{let r=await Gc(e,{httpBaseUrl:n.httpBaseUrl,pathname:`/api/auth/ws-token`,method:`POST`,bearerToken:n.bearerToken}),i=new URL(n.wsBaseUrl,t);return i.searchParams.set(`wsToken`,r.token),i.toString()}}}function qc(e,t){let n=e.trim();if(!n)throw Error(`Enter a backend URL.`);let r=/^[a-zA-Z][a-zA-Z\d+-]*:\/\//.test(n)||n.startsWith(`//`)?n:`https://${n}`,i=new URL(r,t);return i.pathname=`/`,i.search=``,i.hash=``,i}function Jc(e){let t=new URL(e.toString());return t.protocol===`ws:`?t.protocol=`http:`:t.protocol===`wss:`&&(t.protocol=`https:`),t.pathname=`/`,t.search=``,t.hash=``,t.toString()}function Yc(e){let t=new URL(e.toString());return t.protocol===`http:`?t.protocol=`ws:`:t.protocol===`https:`&&(t.protocol=`wss:`),t.pathname=`/`,t.search=``,t.hash=``,t.toString()}function Xc(e,t,n){let r=e.pairingUrl?.trim()??``;if(r.length>0){let e=new URL(r,t),i=n.readHostedPairingRequest(e);if(i){let e=qc(i.host,t);return{credential:i.token,httpBaseUrl:Jc(e),wsBaseUrl:Yc(e)}}let a=n.readPairingToken(e)??``;if(!a)throw Error(`Pairing URL is missing its token.`);return{credential:a,httpBaseUrl:Jc(e),wsBaseUrl:Yc(e)}}let i=e.host?.trim()??``,a=e.pairingCode?.trim()??``;if(!i)throw Error(`Enter a backend URL.`);if(!a)throw Error(`Enter a pairing code.`);let o=qc(i,t);return{credential:a,httpBaseUrl:Jc(o),wsBaseUrl:Yc(o)}}function Zc(e,t=new Set){return[...e].toSorted((e,n)=>{let r=t.has(e.environmentId);if(r!==t.has(n.environmentId))return r?-1:1;let i=e.lastConnectedAt??``,a=n.lastConnectedAt??``;return i===a?String(e.environmentId).localeCompare(String(n.environmentId)):a.localeCompare(i)})}async function Qc(e,t){let n=Math.max(1,Math.floor(t.concurrency)),r=[...e],i=Array.from({length:Math.min(n,r.length)},async()=>{for(;;){let e=r.shift();if(!e)return;await t.connect(e)}});await Promise.all(i)}function $c(e){let t=new Map,n=new Map,r=e=>p(a(e.environmentId,e.threadId)),i=e=>t.get(r(e))??0,o=e=>{let n=i(e)+1;return t.set(r(e),n),n},s=e=>{t.set(r(e),i(e)+1)},c=t=>{let a=i(t.scope),s=`${r(t.scope)}:${a}:${t.requestKey}`,c=n.get(s);if(c)return c;let l=t.request.mode.kind===`before`?t.request.mode.cursor:`around:${t.request.mode.anchorId}`;e.setRequestState({...t.scope,collection:t.collection,status:`loading`,cursor:l,error:null});let u=e.request(t.scope.environmentId,t.request).then(n=>i(t.scope)===a?(e.apply(t.scope.environmentId,t.scope.threadId,n),e.setRequestState({...t.scope,collection:t.collection,status:`idle`,cursor:null,error:null}),n):null).catch(async n=>{let r=typeof n==`object`&&n?n:null;if(r?._tag===`OrchestrationThreadHistoryError`&&(r.reason===`stale-cursor`||r.reason===`invalid-cursor`||r.reason===`unsupported-version`)&&e.recoverStale&&i(t.scope)===a)try{return await e.recoverStale(t.scope),o(t.scope),null}catch(e){n=e}throw i(t.scope)===a&&e.setRequestState({...t.scope,collection:t.collection,status:`error`,cursor:l,error:n instanceof Error?n.message:String(n)}),n}).finally(()=>{n.get(s)===u&&n.delete(s)});return n.set(s,u),u};return{beginSnapshot:o,invalidate:s,clearEnvironment:e=>{for(let n of t.keys())n.startsWith(`${e}:`)&&t.delete(n)},loadBefore:({scope:e,collection:t,page:n,limit:r})=>!n.hasMoreBefore||n.oldestCursor===null?Promise.resolve(null):c({scope:e,collection:t,request:{threadId:e.threadId,collection:t,mode:{kind:`before`,cursor:n.oldestCursor},limit:r},requestKey:`${t}:before:${n.oldestCursor}:${r}`}),loadAroundMessage:({scope:e,anchorId:t,limit:n})=>c({scope:e,collection:`messages`,request:{threadId:e.threadId,collection:`messages`,mode:{kind:`around`,anchorId:t},limit:n},requestKey:`messages:around:${t}:${n}`})}}var el=()=>void 0,tl=3e5,nl=32,rl=12582912,il=2e3,al=2500,ol=2,sl=class extends Error{constructor(e){super(`Saved environment ${e} connection was cancelled.`),this.name=`SavedEnvironmentConnectionCancelledError`}};function cl(e){let t=new Map,n=new Map,r=new Set,i=new Map,o=Bc(),s=null,c=-1/0,l=()=>{for(let e of r)e();e.onRegistryChange?.()},u=(e,t)=>p(a(e,t)),d=e=>{try{return new TextEncoder().encode(JSON.stringify(e)).byteLength}catch{return 0}},f=(e,t)=>{e.estimatedRetainedBytes=d(t)},m=(e,t)=>{e.estimatedRetainedBytes=Math.min(rl,e.estimatedRetainedBytes+d(t))},h=t=>{t.evictionTimeoutId!==null&&(e.clearTimeout(t.evictionTimeoutId),t.evictionTimeoutId=null)},g=t=>t.refCount===0&&!e.isThreadDetailSubscriptionNonIdle(t.environmentId,t.threadId),_=e=>(r.add(e),()=>r.delete(e)),v=e=>t.get(e)??null,y=e=>{let t=v(e);if(!t)throw Error(`No websocket client registered for environment ${e}.`);return t},b=$c({request:(e,t)=>{let n=y(e).client.orchestration.getThreadHistoryPage;return n?n(t):Promise.reject(Error(`Thread history pagination is unavailable`))},apply:(t,n,r)=>{e.syncThreadHistoryPage?.(t,n,r);let a=i.get(u(t,n));a&&(m(a,r),w())},setRequestState:t=>e.setThreadHistoryRequestState?.(t),recoverStale:async t=>{let n=y(t.environmentId).client.orchestration.getThreadWindow;if(!n)throw Error(`Bounded thread history is unavailable`);let r=await n({threadId:t.threadId,limits:{messages:150,proposedPlans:30,activities:150,checkpoints:30}});e.syncThreadWindowSnapshot?e.syncThreadWindowSnapshot(t.environmentId,r):e.syncThreadDetailSnapshot(t.environmentId,r);let a=i.get(u(t.environmentId,t.threadId));a&&(f(a,r),w())}}),x=t=>{if(t.unsubscribeConnectionListener!==null&&(t.unsubscribeConnectionListener(),t.unsubscribeConnectionListener=null),t.unsubscribe!==el)return!0;let n=v(t.environmentId);if(!n)return!1;let r=!0,i=el,a={environmentId:t.environmentId,threadId:t.threadId},o=()=>{r&&(t.protocol=`legacy`,i(),i=n.client.orchestration.subscribeThread({threadId:t.threadId},n=>{if(n.kind===`snapshot`){b.beginSnapshot(a),f(t,n.snapshot),w(),e.syncThreadDetailSnapshot(t.environmentId,n.snapshot);return}m(t,n.event),w(),e.applyThreadDetailEvent(t.environmentId,n.event)}))};t.unsubscribe=()=>{r=!1,i()};let s=n.client.orchestration.subscribeThreadWindow;if(t.protocol===`legacy`||s===void 0)return o(),!0;let c=!1;return i=s({threadId:t.threadId,limits:{messages:150,proposedPlans:30,activities:150,checkpoints:30}},n=>{if(n.kind===`snapshot`){b.beginSnapshot(a),f(t,n.snapshot),w(),e.syncThreadWindowSnapshot?e.syncThreadWindowSnapshot(t.environmentId,n.snapshot):e.syncThreadDetailSnapshot(t.environmentId,n.snapshot);return}m(t,n.event),w(),e.applyThreadDetailEvent(t.environmentId,n.event)},{onError:()=>{c=!0,i!==el&&o()}}),c&&o(),!0},S=t=>{t.unsubscribeConnectionListener===null&&(t.unsubscribeConnectionListener=_(()=>{x(t)&&(t.lastAccessedAt=e.now())}),x(t))},C=e=>{let t=i.get(e);return t?(h(t),t.unsubscribeConnectionListener?.(),t.unsubscribeConnectionListener=null,i.delete(e),b.invalidate({environmentId:t.environmentId,threadId:t.threadId}),t.unsubscribe(),t.unsubscribe=el,!0):!1},w=()=>{let e=Nc([...i.entries()].map(([e,t])=>({key:e,lastAccessedAt:t.lastAccessedAt,retainedBytes:t.estimatedRetainedBytes,evictable:g(t)})),{maxEntries:nl,maxBytes:rl});for(let t of e)C(t)},T=t=>{h(t),g(t)&&(t.evictionTimeoutId=e.setTimeout(()=>{let e=i.get(u(t.environmentId,t.threadId));e&&(e.evictionTimeoutId=null,g(e)&&C(u(e.environmentId,e.threadId)))},tl))},E=e=>{for(let t of i.values())t.environmentId===e&&T(t);w()},D=(e,t)=>{let n=i.get(u(e,t));n&&T(n)},O=(e,t)=>{let n=new Set(t);for(let[t,r]of i)r.environmentId===e&&!n.has(r.threadId)&&C(t)},k=e=>{let n=t.get(e.environmentId);if(n===e)return e;if(n&&n!==e)throw Error(`Environment ${e.environmentId} already has an active connection.`);t.set(e.environmentId,e);for(let t of i.values())t.environmentId===e.environmentId&&x(t);return l(),e},A=async e=>{let n=t.get(e);if(!n)return!1;t.delete(e),o.clearEnvironment(e),b.clearEnvironment(e),l();for(let t of i.values())t.environmentId===e&&(t.unsubscribe(),t.unsubscribe=el,S(t));return await n.dispose(),!0},j=(t,n)=>{let r=u(t,n),a=i.get(r),o=a??{environmentId:t,threadId:n,unsubscribe:el,unsubscribeConnectionListener:null,refCount:0,lastAccessedAt:e.now(),evictionTimeoutId:null,protocol:`bounded`,estimatedRetainedBytes:0};a||i.set(r,o),h(o),o.refCount+=1,o.lastAccessedAt=e.now(),x(o)||S(o),a||w();let s=!1;return()=>{s||(s=!0,o.refCount=Math.max(0,o.refCount-1),o.lastAccessedAt=e.now(),o.refCount===0&&(T(o),w()))}},M=e=>{for(let[t,n]of i)n.environmentId===e&&C(t)},N=()=>{let t=e.createPrimaryConnection();if(!t)return null;let n=v(t.environmentId);return n?(n!==t&&t.dispose().catch(el),n):k(t)},P=async e=>{let n=e?t.get(e):[...t.values()].find(e=>e.kind===`primary`);n?.kind===`primary`&&n&&await A(n.environmentId).catch(()=>!1)},F=(e,t)=>{let r=v(e.environmentId);if(r)return Promise.resolve(r);let i=n.get(e.environmentId);if(i)return i.promise;let a={cancelled:!1,promise:Promise.resolve().then(async()=>{let n=await t(()=>a.cancelled);if(a.cancelled)throw await A(n.environmentId).catch(()=>!1)||await n.dispose().catch(el),new sl(e.environmentId);return n})};return n.set(e.environmentId,a),a.promise.finally(()=>{n.get(e.environmentId)===a&&n.delete(e.environmentId)})},I=e=>{let t=n.get(e);t&&(t.cancelled=!0,n.delete(e))},L=(t,n)=>{if(!zc({current:o.read(n),sequence:t.sequence}))return;let r=e.stateSink.prepareShellEvent(n,t);e.stateSink.applyShellEvent(n,t),o.markEvent(n,t.sequence),e.stateSink.afterShellEventApplied(n,t,r)},R=(t,n,r)=>{e.onShellSnapshotReceived(n);let i=Rc({current:o.read(n),next:t});if(i===`current`){e.onShellSnapshotCurrent(n),r?.onCurrent();return}i!==`stale`&&(e.stateSink.syncServerShellSnapshot(n,t),e.onShellSnapshotApplied(n),o.markSnapshot(n,t),e.onShellSnapshotReady(n),r?.onReady(),O(n,t.threads.map(e=>e.id)),E(n),e.stateSink.reconcileSnapshotDerivedState())},ee=async()=>{let n=e.listSavedEnvironmentRecords(),r=new Set(n.map(e=>e.environmentId)),i=[...t.values()].filter(e=>e.kind===`saved`).map(e=>e.environmentId).filter(e=>!r.has(e));await Promise.all(i.map(t=>e.disconnectSavedEnvironment(t))),await e.waitForPrimaryShellSnapshotApplied(al),await Qc(Zc(n),{concurrency:ol,connect:async t=>{await F(t,n=>e.connectSavedEnvironment(t,n)).catch(()=>void 0)}})},te=()=>{let e=null,t=!1,n=async()=>{do t=!1,await ee();while(t)};return()=>e?(t=!0,e):(e=n().catch(()=>void 0).finally(()=>{e=null}),e)},ne=n=>{let r=e.now();if(!(r-c<il))for(let e of t.values())e.client.isHeartbeatFresh()||(c=r,e.reconnect().catch(t=>{console.warn(`Environment reconnect after browser resume failed`,{environmentId:e.environmentId,reason:n,error:t instanceof Error?t.message:String(t)})}))},re=()=>{s?.stop(),s=null};return{subscribe:_,list:()=>[...t.values()],read:v,require:y,register:k,remove:A,connectPrimary:N,disconnectPrimary:P,ensureSavedEnvironmentConnection:F,cancelPendingSavedEnvironmentConnection:I,applyShellEvent:L,resetShellProjection:e=>o.clearEnvironment(e),syncShellSnapshot:R,retainThreadDetailSubscription:j,disposeThreadDetailSubscriptionsForEnvironment:M,disposeThreadDetailSubscription:(e,t)=>C(u(e,t)),reconcileThreadDetailSubscriptionEvictionForEnvironment:E,reconcileThreadDetailSubscriptionEvictionForThread:D,reconcileThreadDetailSubscriptionsForEnvironment:O,evictIdleThreadDetailSubscriptionsToCapacity:w,loadOlderThreadHistory:({environmentId:e,threadId:t,collection:n,page:r,limit:i})=>b.loadBefore({scope:{environmentId:e,threadId:t},collection:n,page:r,limit:i}),loadThreadHistoryAroundMessage:({environmentId:e,threadId:t,messageId:n,limit:r})=>b.loadAroundMessage({scope:{environmentId:e,threadId:t},anchorId:n,limit:r}),start:()=>{if(s){let e=s;return e.refCount+=1,()=>{s===e&&(--e.refCount,e.refCount===0&&re())}}re(),e.resetProviderInvalidation();let t=e.createInvalidationThrottle(),n=te();N();let r=e.isHostedMode()?el:e.subscribeSavedEnvironmentRegistry(()=>{e.hasSavedEnvironmentRegistryHydrated()&&n()});e.isHostedMode()||e.waitForSavedEnvironmentRegistryHydration().then(n).catch(el);let i=e.isHostedMode()?el:e.subscribeBrowserResume(ne),a={throttle:t,refCount:1,stop:()=>{r(),i(),t.cancel()}};return s=a,()=>{s===a&&(--a.refCount,a.refCount===0&&re())}},requestProviderInvalidation:()=>{s?.throttle.maybeExecute()},resetForTests:async()=>{re(),c=-1/0;for(let e of i.keys())C(e);await Promise.all([...t.keys()].map(e=>A(e))),n.clear(),o.clear()}}}function ll(e,t){if(!O(e)||!O(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]=O(t)&&O(r)?ll(t,r):r}return n}var ul=lt(e=>$e({try:()=>{let t=e.replace(/("(?:[^"\\]|\\.)*")|\/\/[^\n]*/g,(e,t)=>t?e:``);return t=t.replace(/("(?:[^"\\]|\\.)*")|\/\*[\s\S]*?\*\//g,(e,t)=>t?e:``),t=t.replace(/,(\s*[}\]])/g,`$1`),Mt(JSON.parse(t))},catch:t=>new Re({message:String(t)},e)})),dl=new on(ul,Un());(e=>It.pipe(Pe(e,dl)))(be);function fl(e){return!!(e&&(e.instanceId!==void 0||e.model!==void 0))}function pl(e){if(e.patch===void 0)return e.current?[...e.current]:void 0;if(e.patch.length===0)return;let t=new Map((e.current??[]).map(e=>[e.id,e.value]));for(let n of e.patch)t.set(n.id,n.value);return[...t.entries()].map(([e,t])=>({id:e,value:t}))}function ml(e,t){let n=t.textGenerationModelSelection,r=ll(e,t),i=t.providerInstances===void 0?r:{...r,providerInstances:t.providerInstances};if(!n)return i;let a=n.instanceId??e.textGenerationModelSelection.instanceId,o=n.model??e.textGenerationModelSelection.model,s=fl(n)?n.options:pl({current:e.textGenerationModelSelection.options,patch:n.options});return{...i,textGenerationModelSelection:di(a,o,s)}}var hl=i(),gl=fi();function _l(e){return e.requestedEnvironmentId??e.routedEnvironmentId??e.activeEnvironmentId??e.primaryEnvironmentId??null}var vl=(0,V.createContext)(null);function yl(e){let t=(0,hl.c)(3),n;return t[0]!==e.children||t[1]!==e.value?(n=(0,gl.jsx)(vl.Provider,{value:e.value,children:e.children}),t[0]=e.children,t[1]=e.value,t[2]=n):n=t[2],n}function bl(){return(0,V.useContext)(vl)}function xl(e,t){let n=(0,V.useRef)(t);n.current=t,ds(e,(0,V.useCallback)(e=>{e!==null&&n.current(e)},[]),{immediate:!0})}function Sl(){let e=us(ei),t=bl();return t?t.serverConfig:e}function Cl(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=Kr(t),e[0]=t,e[1]=n),n}function wl(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=kr(t),e[0]=t,e[1]=n),n}function Tl(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=Ur(t),e[0]=t,e[1]=n),n}function El(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=ni(t),e[0]=t,e[1]=n),n}function Dl(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=Qr(t),e[0]=t,e[1]=n),n}function Ol(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=Ir(t),e[0]=t,e[1]=n),n}function kl(e){xl(ri,e)}function Al(e){xl(Mr,e)}var jl=new Set,Ml=new Set,Nl=w,Pl=!1,Fl=null;function Il(){for(let e of jl)e()}function Ll(){for(let e of Ml)e()}function Rl(){return Nl}function zl(e){Nl=e,Il()}function Bl(){return Pl}function Vl(e){Pl!==e&&(Pl=e,Ll())}function Hl(e){return jl.add(e),()=>{jl.delete(e)}}function Ul(){return Fl}function Wl(e){Fl=e}function Gl(e){Fl===e&&(Fl=null)}var Kl=`[CLIENT_SETTINGS]`;function ql(e){let t=Hl(e);return Jl(),t}async function Jl(){if(Bl())return;let e=Ul();if(e)return e;let t=(async()=>{try{let e=await vg().persistence.getClientSettings();e&&zl({...w,...e})}catch(e){console.error(`${Kl} hydrate failed`,e)}finally{Vl(!0)}})().finally(()=>{Gl(t)});return Wl(t),t}function Yl(e){zl(e),vg().persistence.setClientSettings(e).catch(e=>{console.error(`${Kl} persist failed`,e)})}var Xl=new Set(L(be.fields));function Zl(e){let t={},n={};for(let[r,i]of Object.entries(e))Xl.has(r)?t[r]=i:n[r]=i;return{serverPatch:t,clientPatch:n}}function Ql(){return Rl()}function $l(e){let t=(0,hl.c)(6),n=Cl(),r=(0,V.useSyncExternalStore)(ql,Rl,eu),i;t[0]!==r||t[1]!==n?(i={...n,...r},t[0]=r,t[1]=n,t[2]=i):i=t[2];let a=i,o;return t[3]!==a||t[4]!==e?(o=e?e(a):a,t[3]=a,t[4]=e,t[5]=o):o=t[5],o}function eu(){return w}function tu(){let e=(0,hl.c)(9),t=bl(),n=t?.environmentId??null,r=t?.primary??!0,i=t?.connected??!0,a;e[0]!==i||e[1]!==n||e[2]!==r?(a=e=>{let{serverPatch:t,clientPatch:a}=Zl(e);if(Object.keys(t).length>0){if(n&&!r)i?EE(n,t).catch(e=>{console.error(`[SETTINGS] update failed for ${n}`,e)}):console.error(`[SETTINGS] Refused a node setting write while ${n} is disconnected.`);else{let e=Yn();e&&Er(ml(e.settings,t)),vg().server.updateSettings(t)}}Object.keys(a).length>0&&Yl({...Rl(),...a})},e[0]=i,e[1]=n,e[2]=r,e[3]=a):a=e[3];let o=a,s;e[4]===o?s=e[5]:(s=()=>{o(Le)},e[4]=o,e[5]=s);let c=s,l;return e[6]!==c||e[7]!==o?(l={updateSettings:o,resetSettings:c},e[6]=c,e[7]=o,e[8]=l):l=e[8],l}var nu=Object.freeze({data:null,error:null,cause:null,isPending:!1}),ru=Object.freeze({...nu,isPending:!0}),iu=Xn(nu).pipe(hr,Zr(`git-status:null`)),au=()=>void 0,ou=new Map,su=new Set,cu=new Map,lu=new Map,uu=1e3,du=Cr(e=>(su.add(e),Xn(ru).pipe(hr,Zr(`git-status:${e}`))));function fu(e){return e.environmentId===null||e.cwd===null?null:`${e.environmentId}:${e.cwd}`}function pu(e,t){return`${e}:remote-poll=${t?.automaticRemoteRefreshIntervalMs??0}`}function mu(e){if(e.environmentId===null)return null;let t=wE(e.environmentId);return t?{clientIdentity:t.environmentId,client:t.client.vcs}:null}function hu(e){let t=fu(e);return t===null?nu:z.get(du(t))}function gu(e,t,n){let r=fu(e);if(r===null)return au;let i=pu(r,n),a=ou.get(i);return a?(a.refCount+=1,()=>Su(i)):(ou.set(i,{refCount:1,unsubscribe:Cu(r,e,t,n)}),()=>Su(i))}function _u(e,t){return vu(e,t).then(t=>{let n=fu(e);return n!==null&&t!==null&&yu(n,t),t})}function vu(e,t){let n=fu(e);if(n===null||e.cwd===null)return Promise.resolve(null);let r=t??mu(e)?.client;if(!r)return Promise.resolve(hu(e).data);let i=cu.get(n);if(i)return i;let a=lu.get(n)??0;if(Date.now()-a<uu)return Promise.resolve(hu(e).data);lu.set(n,Date.now());let o=r.refreshStatus({cwd:e.cwd}).finally(()=>{cu.delete(n)});return cu.set(n,o),o}function yu(e,t){z.set(du(e),{data:t,error:null,cause:null,isPending:!1})}function bu(e){let t=(0,hl.c)(5),n=fu(e),r=$l(xu),i,a;t[0]!==r||t[1]!==e.cwd||t[2]!==e.environmentId?(i=()=>gu({environmentId:e.environmentId,cwd:e.cwd},void 0,{automaticRemoteRefreshIntervalMs:r}),a=[r,e.environmentId,e.cwd],t[0]=r,t[1]=e.cwd,t[2]=e.environmentId,t[3]=i,t[4]=a):(i=t[3],a=t[4]),(0,V.useEffect)(i,a);let o=us(n===null?iu:du(n));return n===null?nu:o}function xu(e){return e.gitStatusPollIntervalMs}function Su(e){let t=ou.get(e);t&&(--t.refCount,!(t.refCount>0)&&(t.unsubscribe(),ou.delete(e)))}function Cu(e,t,n,r){if(t.cwd===null)return au;let i=t.cwd,a=null,o=au,s=()=>{let s=n?{clientIdentity:`provided:${e}`,client:n}:mu(t);if(!s){a!==null&&(o(),o=au,a=null),Tu(e);return}a!==s.clientIdentity&&(o(),a=s.clientIdentity,o=wu(e,{...t,cwd:i},s.client,r))},c=n?au:SE(s);return s(),()=>{c(),o()}}function wu(e,t,n,r){Tu(e);let i=t.cwd,a=r?.automaticRemoteRefreshIntervalMs??0,o=n.onStatus({cwd:i,...a>0?{automaticRemoteRefreshIntervalMs:a}:{}},t=>{z.set(du(e),{data:t,error:null,cause:null,isPending:!1})},{onResubscribe:()=>{Tu(e)}}),s=!1;return vu(t,n).then(t=>{!s&&t!==null&&yu(e,t)}).catch(()=>void 0),()=>{s=!0,o()}}function Tu(e){let t=du(e),n=z.get(t),r=n.data===null?ru:{...n,error:null,cause:null,isPending:!0};(n.data!==r.data||n.error!==r.error||n.cause!==r.cause||n.isPending!==r.isPending)&&z.set(t,r)}var Eu=Object.freeze({data:null,error:null,isPending:!1}),Du=Object.freeze({data:null,error:null,isPending:!0}),Ou=new Set,ku=Cr(e=>(Ou.add(e),Xn(Du).pipe(hr,Zr(`source-control-discovery:${e}`))));Xn(Eu).pipe(hr,Zr(`source-control-discovery:null`));function Au(e){let t=e.key?.trim();return t&&t.length>0?t:null}function ju(e){let t=new Map;function n(t,n){e.getRegistry().set(ku(t),n)}function r(t){let r=e.getRegistry().get(ku(t)),i=r.data===null?Du:{data:r.data,error:null,isPending:!0};(r.data!==i.data||r.error!==i.error||r.isPending!==i.isPending)&&n(t,i)}function i(e,t){n(e,{data:t,error:null,isPending:!1})}function a(t,r){n(t,{data:e.getRegistry().get(ku(t)).data,error:r instanceof Error?r.message:`Failed to discover source control tools.`,isPending:!1})}function o(n,o){let c=Au(n);if(c===null)return Promise.resolve(null);let l=t.get(c);if(l)return l;let u=o??e.getClient(c);if(!u)return a(c,Error(`Source control discovery client is unavailable.`)),Promise.resolve(s(n).data);r(c);let d=u.discoverSourceControl().then(e=>(i(c,e),e),e=>(a(c,e),s(n).data)).finally(()=>t.delete(c));return t.set(c,d),d}function s(t){let n=Au(t);return n===null?Eu:e.getRegistry().get(ku(n))}function c(){t.clear();for(let e of Ou)n(e,Du);Ou.clear()}return{refresh:o,getSnapshot:s,reset:c}}var Mu={key:`primary`},Nu=3e4,Pu=3e5;function Fu(e){let t=e?.environmentId??null;return t?Xr()?.environmentId===t?Mu:{key:t}:Mu}var Iu=ju({getRegistry:()=>z,getClient:e=>{if(e===Mu.key){let e=Xr()?.environmentId??null,t=e?wE(e):null;if(t)return t.client.server;try{return _g()?.server??null}catch{return null}}let t=wE(ye.make(e));return t?t.client.server:null}}),Lu=Cr(e=>Xn(()=>pt(()=>Iu.refresh({key:e}))).pipe(Hr({staleTime:Nu,revalidateOnMount:!0}),ti(Pu),Zr(`source-control-discovery:auto-refresh:${e}`)));function Ru(e){return Iu.refresh(Fu(e))}function zu(e){return Iu.getSnapshot(Fu(e))}function Bu(e){let t=Au(Fu(e))??Mu.key;return us(Lu(t)),us(ku(t))}function Vu(){return us(qr)}var Hu={now:()=>typeof performance<`u`&&typeof performance.now==`function`?performance.now():Date.now()},Uu={scheduleFrame:e=>{if(typeof requestAnimationFrame==`function`){requestAnimationFrame(()=>e());return}setTimeout(e,0)}};function Wu(){return _i(typeof window>`u`?null:window.localStorage)}function Gu(e=Wu()){return{getItem:async t=>await e.getItem(t),setItem:async(t,n)=>{await e.setItem(t,n)},removeItem:async t=>{await e.removeItem(t)}}}Gu();var Ku=yt(`effect/http/FetchHttpClient/Fetch`,{defaultValue:()=>globalThis.fetch}),qu=class extends zn()(`effect/http/FetchHttpClient/RequestInit`){},Ju=Ec(S(bc((e,t,n,r)=>{let i=r.getRef(Ku),a=r.context.mapUnsafe.get(qu.key)??{},o=a.headers?gr(ar(a.headers),e.headers):e.headers;o[`content-length`]&&(o=Qn(o,`content-length`));let s=r=>wt(it({try:()=>i(t,{...a,method:e.method,headers:o,body:r,duplex:e.body._tag===`Stream`?`half`:void 0,signal:n}),catch:t=>new nr({reason:new sr({request:e,cause:t})})}),t=>uc(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 Ye(Ae(e.body.stream),s)}return s(void 0)}))),Yu=e=>{let t=I(e).pipe(re(go));if(Qe(t))return S(ut(t.value));if(e===void 0)return S(ut(5));let n=Date.parse(e);return Number.isNaN(n)?S(ut(5)):wt(mo,e=>Rt(Math.max(n-e.currentTimeMillisUnsafe(),1)))},Xu=Cn.pipe(An,_t(({output:e})=>Tr(e)&&e.reason._tag===`StatusCodeError`&&e.reason.response.status===429?Yu(e.reason.response.headers[`retry-after`]):S(ut(1)))),Zu=class extends zn()(`effect/observability/OtlpExporter/Flusher`){},Qu=Rn(Zu,()=>{let e=new Set;return{flush:qe(()=>e.size===0?Pt:le(e,se,{concurrency:`unbounded`,discard:!0})),register:t=>Ye(Ve,n=>(e.add(t),M(n,ie(()=>e.delete(t)))))}}),$u=hn(function*(e){let t=yield*pe(),n=Fn(t,mo),r=Fn(t,Ve),i=Wt(pn(e.exportInterval),Wn),a,o=_c(Fn(t,hc)).pipe(gc(Kn(wc,!1)),xc({schedule:Xu,times:3})),s=dr({"user-agent":`effect-opentelemetry-${e.label}/0.0.0`});e.headers&&(s=gr(ar(e.headers),s));let c=Xs(e.url,{headers:s}),l=[],u=qe(()=>{if(a!==void 0&&n.currentTimeMillisUnsafe()<a)return Pt;a!==void 0&&(a=void 0);let t=l;if(e.maxBatchSize!==`disabled`){if(l.length===0)return Pt;l=[]}let[r,i]=e.body(t);return o.execute(oc(c,r)).pipe(xe(i),g,Yt(!1))}).pipe(ve(e=>a===void 0?(a=n.currentTimeMillisUnsafe()+6e4,l=[],gt(`Disabling exporter for 60 seconds`,e)):Pt),en({package:`@effect/opentelemetry`,module:e.label})),d=yield*$r(),f=yield*zr(d)();return yield*(yield*Zu).register(u),yield*M(r,qe(()=>a===void 0?(f(u),Gr(d)):Pt).pipe(Nt,yn,_n(e.shutdownTimeout))),yield*Jn(i).pipe(xe(jr(d,u)),Ye(qt),nt,at(r)),{push(t){a===void 0&&(l.push(t),e.maxBatchSize!==`disabled`&&l.length>=e.maxBatchSize&&f(u))}}}),ed=e=>{let t=e.attributes?rd(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}},td=hn(function*(e){let t=yield*Xo(dt(Zo(mn,mn)),`OTEL_RESOURCE_ATTRIBUTES`),n=e?.serviceName??e?.attributes?.[`service.name`]??(yield*Xo(dt(It),`OTEL_SERVICE_NAME`))??t?.[`service.name`]??(yield*Qo(`OTEL_SERVICE_NAME`)),r=e?.serviceVersion??e?.attributes?.[`service.version`]??(yield*Xo(dt(It),`OTEL_SERVICE_VERSION`))??t?.[`service.version`],i={...t,...e?.attributes};return delete i[`service.name`],delete i[`service.version`],ed({serviceName:n,serviceVersion:r,attributes:i})},Bt),nd=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},rd=e=>{let t=[];for(let[n,r]of e)t.push({key:n,value:id(r)});return t},id=e=>{if(Array.isArray(e))return{arrayValue:{values:e.map(id)}};switch(typeof e){case`string`:return{stringValue:e};case`bigint`:return{intValue:String(e)};case`number`:return Number.isInteger(e)?{intValue:e}:{doubleValue:e};case`boolean`:return{boolValue:e};default:return{stringValue:Ot(e)}}},ad=class extends zn()(`effect/observability/OtlpSerialization`){},od=E(ad,{traces:e=>ks(e),metrics:e=>ks(e),logs:e=>ks(e)}),sd=hn(function*(e){let t=yield*td(e.resource),n=yield*ad,r={name:nd(t)},i=yield*$u({label:`OtlpTracer`,url:e.url,headers:e.headers,exportInterval:e.exportInterval??ut(5),maxBatchSize:e.maxBatchSize??1e3,body(e){let i={resourceSpans:[{resource:t,scopeSpans:[{scope:r,spans:e}]}]};return[n.traces(i),Pt]},shutdownTimeout:e.shutdownTimeout??ut(3)});function a(e){e.sampled&&i.push(dd(e))}return xn({span(e){return ld({...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})}),cd={_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)}},ld=e=>{let t=Object.assign(Object.create(cd),e);return t.traceId=Qe(t.parent)?t.parent.value.traceId:ud(32),t.spanId=ud(16),t.events=[],t},ud=e=>{let t=``;for(let n=0;n<e;n++)t+=`0123456789abcdef`[Math.floor(Math.random()*16)];return t},dd=e=>{let t=e.status,n=rd(e.attributes.entries()),r=e.events.map(([e,t,n])=>({name:e,timeUnixNano:String(t),attributes:n?rd(Object.entries(n)):[],droppedAttributesCount:0})),i;if(t.exit._tag===`Success`)i=md;else if(ct(t.exit.cause))i={code:fd.Ok,message:`Interrupted`},n.push({key:`span.label`,value:{stringValue:`⚠︎ Interrupted`}},{key:`status.interrupted`,value:{boolValue:!0}});else{let e=En(t.exit.cause,{includeCauseInStack:!0});if(i={code:fd.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:Oe(e.parent,{onNone:()=>void 0,onSome:e=>e.spanId}),name:e.name,kind:pd[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:rd(Object.entries(e.attributes)),droppedAttributesCount:0})),droppedLinksCount:0}},fd={Unset:0,Ok:1,Error:2},pd={unspecified:0,internal:1,server:2,client:3,producer:4,consumer:5},md={code:fd.Ok},hd=1e3,gd={serviceName:`ryco-web`,attributes:{"service.runtime":`ryco-web`,"service.mode":d?`electron`:`browser`,"service.version":ki}},_d=St(Ju,od,Qu,E(Sc,()=>!0)),vd=null,yd=null,bd=null,xd=null,Sd=0,Cd=Promise.resolve(),wd=E(un,xn({span(e){return vd?.span(e)??new ht(e)}}));function Td(e={}){return e.exportIntervalMs===void 0&&xd!==null||(Cd=Cd.finally(()=>Ed(e))),Cd}async function Ed(e){let t=xr(`/api/observability/v1/traces`),n=Math.max(10,e.exportIntervalMs??hd),r=`${t}|${n}`;if(xd===r&&vd!==null)return;xd=r;let i=++Sd,a=yd,o=bd;vd=null,yd=null,bd=null,await Dd(a,o);let s=Or(_d),c=s.runSync(b());try{let e=await s.runPromise(_e(c)(sd({url:t,exportInterval:`${n} millis`,resource:gd})));if(i!==Sd){await Dd(s,c);return}vd=e,yd=s,bd=c}catch(e){await Dd(s,c),i===Sd&&console.warn(`Failed to configure client tracing exporter`,{error:Od(e),otlpTracesUrl:t})}}async function Dd(e,t){e!==null&&t!==null&&await e.runPromise(we(t,ee)).catch(()=>void 0).finally(()=>{e.dispose()})}function Od(e){return e instanceof Error&&e.message.trim().length>0?e.message:String(e)}var kd={tracingLayer:wd,performanceEnabled:()=>ji(),recordPerformance:(e,t,n)=>Ai(e,t,n)},Ad=class{#e;#t;#n;#r;#i;#a;#o=0;#s=null;constructor(e={}){this.#e=e.baseDelayMs??1e3,this.#t=e.maxDelayMs??6e4,this.#n=e.stableIntervalMs??6e4,this.#r=e.jitterRatio??.2,this.#i=e.random??Math.random,this.#a=e.now??Date.now}opened(){this.#s=this.#a()}closed(){this.#s!==null&&this.#a()-this.#s>=this.#n&&(this.#o=0),this.#s=null}nextDelay(e){let t=Math.min(this.#o,30);this.#o+=1;let n=Math.min(this.#t,this.#e*2**t),r=Math.max(0,Math.min(1,this.#i())),i=1-this.#r+2*this.#r*r,a=Math.max(250,Math.min(this.#t,Math.round(n*i)));return Math.min(Ie,Math.max(a,Math.max(0,Math.min(Ie,Math.round(e??0)))))}reset(){this.#o=0,this.#s=null}};function jd(e,t){return Pd(e),Pd(t),e.epoch===t.epoch?e.counter===t.counter?0:e.counter<t.counter?-1:1:e.epoch<t.epoch?-1:1}function Md(e,t){return jd(e,t)===0}function Nd(e,t){if(Pd(e),t)return e.epoch>=4294967295n?void 0:{epoch:e.epoch+1n,counter:0n};if(!(e.counter>=18446744073709551615n))return{epoch:e.epoch,counter:e.counter+1n}}function Pd(e){if(typeof e?.epoch!=`bigint`||typeof e.counter!=`bigint`||e.epoch<0n||e.epoch>4294967295n||e.counter<0n||e.counter>18446744073709551615n)throw TypeError(`Relay E2EE sequence positions are bigints within their field ranges.`);return e}function Fd(e){let t=Wi(e.epoch,e.counter);return{epochField:t.slice(0,4),counterField:t.slice(4)}}function Id(e){let t=0n;for(let n=0;n<e.byteLength;n+=1)t=t<<8n|BigInt(e[n]);return t}var Ld=`ryco.relay-e2ee.close.v1`;function Rd(e){return e===2||e===4}function zd(e){let t=tf(e.innerType),n=nf(e.senderDirection),r=af(e.sessionBindingHash),i=Fd(e.finalSend),a=Fd(e.expectedRecv);return Uint8Array.from(Oa([Ld,t,n,r,i.epochField,i.counterField,a.epochField,a.counterField],ja))}function Bd(e){let t=Ja(zd(e));if(t.byteLength!==32)throw TypeError(`Relay E2EE close commitment must be E2EE_CLOSE_COMMITMENT_BYTES long.`);return t}var Vd=5,Hd=Object.freeze([4,8,4,8,32]);function Ud(e){let t=Fd(e.finalSend),n=Fd(e.expectedRecv);return Uint8Array.from(Oa([t.epochField,t.counterField,n.epochField,n.counterField,Bd(e)],ja))}function Wd(e){let t=ta(e);if(t.kind===`error`)return{kind:`error`,reason:t.reason};let n=t.value;if(!Array.isArray(n)||n.length!==Vd)return{kind:`error`,reason:`shape`};for(let e=0;e<Vd;e+=1){let t=n[e];if(!(t instanceof Uint8Array))return{kind:`error`,reason:`shape`};if(t.byteLength!==Hd[e])return{kind:`error`,reason:`field_width`}}let r=n;return{kind:`ok`,value:{finalSendEpochField:r[0],finalSendCounterField:r[1],expectedRecvEpochField:r[2],expectedRecvCounterField:r[3],closeCommitment:r[4],finalSend:{epoch:Id(r[0]),counter:Id(r[1])},expectedRecv:{epoch:Id(r[2]),counter:Id(r[3])}}}}function Gd(e){let t=tf(e.innerType),n=nf(e.senderDirection),r=af(e.sessionBindingHash);Pd(e.envelope),Pd(e.currentNextSend);let i=Wd(e.body);if(i.kind===`error`)return{kind:`invalid`,reason:`malformed_body`,decodeError:i.reason};let a=i.value,o=Fd(e.envelope);if(!Qa(a.finalSendEpochField,o.epochField)||!Qa(a.finalSendCounterField,o.counterField))return{kind:`invalid`,reason:`header_mismatch`};let s=Bd({innerType:t,senderDirection:n,sessionBindingHash:r,finalSend:a.finalSend,expectedRecv:a.expectedRecv});if(!Qa(a.closeCommitment,s))return{kind:`invalid`,reason:`commitment_mismatch`};if(t===2)return jd(a.expectedRecv,e.currentNextSend)>0?{kind:`invalid`,reason:`passed_through_rule`}:{kind:`ok`,value:a};let c=e.closeAnchor;if(c===void 0)throw TypeError(`Relay E2EE strict close-rule requires the receiver's close anchor (§10.1.1).`);return Pd(c),Md(a.expectedRecv,c)?{kind:`ok`,value:a}:{kind:`invalid`,reason:`strict_rule`}}var Kd=Object.freeze({failed:3,unclean_truncation:2,unclean_abrupt:1,clean:0});function qd(e){let t=Kd[e];if(t===void 0)throw TypeError(`Relay E2EE close verdict must be one of the four §10.4 verdicts.`);return t}function Jd(e,t){return qd(t)>qd(e)?t:e}function Yd(e){return e===1||e===2||e===3}var Xd=1;function Zd(e){if(!Yd(e))throw TypeError(`Relay E2EE error records carry a defined §11.3 error code.`);return Uint8Array.from(Oa([e],ja))}function Qd(e){if(!(e instanceof Uint8Array))return{kind:`error`,reason:`malformed`};if(e.byteLength>16)return{kind:`error`,reason:`oversized`};let t=ta(e);if(t.kind===`error`)return{kind:`error`,reason:t.reason};let n=t.value;if(!Array.isArray(n)||n.length!==Xd)return{kind:`error`,reason:`shape`};let r=n[0];return typeof r!=`number`||!Number.isSafeInteger(r)||r<0?{kind:`error`,reason:`shape`}:{kind:`ok`,value:{errorCode:r,defined:Yd(r)}}}var $d=2,ef=class{#e;#t;#n;#r=`open`;#i;#a;#o;#s=!1;#c;#l;#u=!1;#d=0;#f=!1;#p=!1;#m=!1;#h=0;#g;#_=!1;#v;#y=!1;#b=!1;#x;constructor(e){this.#e=Uint8Array.from(af(e.sessionBindingHash)),this.#t=nf(e.sendDirection),this.#n=this.#t===`c2n`?`n2c`:`c2n`}get state(){return this.#r}get branch(){return this.#i}get closeAnchor(){return this.#a}get closeAnchorRecord(){return this.#o}get closeAnchorUnavailable(){return this.#s}get ackExpectedRecv(){return this.#l}get ackExpectedRecvUnavailable(){return this.#u}get pendingRecord(){return this.#r===`close_received`||this.#r===`simultaneous_pending`?this.#u?void 0:`close_ack`:this.#r===`confirmation_due`?`final_confirmation`:void 0}get closeRecordsSent(){return this.#d}get waitsArmed(){return this.#h}get waitDeadlineAt(){return this.#g}get closePhaseActive(){return this.#r!==`open`}get exchangeComplete(){return this.#f}get mayProtectApplicationRecord(){return this.#r===`open`}get mayProtectTerminalError(){return!this.#y&&!this.#b}get terminalErrorSent(){return this.#y}get isLastRecordSender(){return this.#_}get lingerDeadlineAt(){return this.#v}get verdict(){return this.#x}buildClose(e){if(this.#r!==`open`)throw TypeError(`Relay E2EE close machine may only initiate from the application phase.`);return this.#S(2,`close`,e)}buildCloseAck(e){let t=this.pendingRecord;if(t===void 0)throw TypeError(`Relay E2EE close machine owes no close acknowledgement in this state.`);let n=this.ackExpectedRecv;if(n!==void 0&&!Md(Pd(e.expectedRecv),n))throw TypeError(`Relay E2EE close acknowledgement declares the expected-next as of the peer's close.`);return this.#S(4,t,e)}#S(e,t,n){if(this.#y||this.#b)throw TypeError(`Relay E2EE close machine is terminal; no further record may follow.`);if(this.#d>=2)throw TypeError(`Relay E2EE close machine exceeded E2EE_CLOSE_RECORDS_RESERVED records.`);let r={epoch:Pd(n.sendPosition).epoch,counter:n.sendPosition.counter},i={epoch:Pd(n.expectedRecv).epoch,counter:n.expectedRecv.counter},a={innerType:e,body:Ud({innerType:e,senderDirection:this.#t,sessionBindingHash:this.#e,finalSend:r,expectedRecv:i}),position:r,purpose:t};return this.#c=a,a}noteTransmitted(e){let t=this.#c;if(t===void 0||t!==e.record)throw TypeError(`Relay E2EE close machine was told of a record it did not build.`);rf(e.at);let n={epoch:e.epoch,counter:e.counter};if(!Md(n,t.position))throw TypeError(`Relay E2EE close record was protected at a position it does not declare.`);if(t.purpose===`close`&&this.#r!==`open`||t.purpose===`close_ack`&&this.#r!==`close_received`&&this.#r!==`simultaneous_pending`||t.purpose===`final_confirmation`&&this.#r!==`confirmation_due`)throw TypeError(`Relay E2EE close machine left the state this record answers.`);if(this.#c=void 0,this.#d+=1,this.#a===void 0&&!this.#s){let r=Nd(n,e.epochCompleted);r===void 0?(this.#s=!0,this.#k(`unclean_abrupt`)):(this.#a=r,this.#o=t.innerType)}switch(t.purpose){case`close`:this.#r=`awaiting_ack`,this.#T(e.at);return;case`close_ack`:if(this.#l=void 0,this.#r===`close_received`){this.#i=`sequential_responder`,this.#r=`awaiting_confirmation`,this.#T(e.at);return}if(this.#i=`simultaneous`,this.#_=!0,this.#v=e.at+Vi,this.#p){this.#E();return}this.#r=`awaiting_simultaneous_ack`,this.#T(e.at);return;case`final_confirmation`:this.#i=`sequential_initiator`,this.#_=!0,this.#v=e.at+Vi,this.#E();return}}noteTerminalErrorTransmitted(){if(!this.mayProtectTerminalError)throw TypeError(`Relay E2EE close machine permits exactly one terminal E2EEError.`);this.#y=!0,this.#c=void 0,this.#k(`failed`),this.#D()}receive(e){if(!va(e.innerType))throw TypeError(`Relay E2EE inner record type must be a registered type.`);if(Pd(e.envelope),Pd(e.currentNextSend),rf(e.at),e.innerType===3){let t=Qd(e.body);return t.kind===`error`?this.#O(`malformed_error_body`,`Q11`,t.reason):(this.#b=!0,this.#c=void 0,this.#k(`failed`),this.#D(),{kind:`terminal_error`,value:t.value})}return this.#r===`ended`?this.#O(`record_beyond_machine`):e.innerType===1?this.#m||this.#p||this.#r===`complete`?this.#O(`record_beyond_machine`):{kind:`application`}:e.innerType===2?this.#C(e):this.#w(e)}#C(e){if(this.#r!==`open`&&this.#r!==`awaiting_ack`)return this.#O(`record_beyond_machine`);let t=Gd({innerType:2,body:e.body,envelope:e.envelope,sessionBindingHash:this.#e,senderDirection:this.#n,currentNextSend:e.currentNextSend});if(t.kind===`invalid`)return this.#O(t.reason);this.#m=!0;let n=Nd({epoch:e.envelope.epoch,counter:e.envelope.counter},e.epochCompleted===!0);return n===void 0?(this.#u=!0,this.#k(`unclean_abrupt`)):this.#l=n,this.#r===`open`?(this.#i=`sequential_responder`,this.#r=`close_received`,this.#u&&this.#T(e.at),{kind:`close`,branch:`sequential`,value:t.value}):(this.#i=`simultaneous`,this.#r=`simultaneous_pending`,{kind:`close`,branch:`simultaneous`,value:t.value})}#w(e){let t=this.#a;if(!(t!==void 0&&!this.#p&&(this.#r===`awaiting_ack`||this.#r===`awaiting_confirmation`||this.#r===`simultaneous_pending`||this.#r===`awaiting_simultaneous_ack`)))return this.#O(`record_beyond_machine`);let n=Gd({innerType:4,body:e.body,envelope:e.envelope,sessionBindingHash:this.#e,senderDirection:this.#n,currentNextSend:e.currentNextSend,closeAnchor:t});return n.kind===`invalid`?this.#O(n.reason):(this.#p=!0,this.#r===`awaiting_ack`?(this.#i=`sequential_initiator`,this.#r=`confirmation_due`,{kind:`close_ack`,exchangeComplete:!1,value:n.value}):this.#r===`simultaneous_pending`?{kind:`close_ack`,exchangeComplete:!1,value:n.value}:(this.#E(),{kind:`close_ack`,exchangeComplete:!0,value:n.value}))}waitExpired(e){return this.#g!==void 0&&e>this.#g}noteWaitExpired(e){if(!this.waitExpired(e))throw TypeError(`Relay E2EE close machine has no expired T_CLOSE wait.`);return this.#c=void 0,this.#k(`unclean_abrupt`),this.#D(),this.#x}noteChannelEnded(e){return e.incompleteReassembly===!0?this.#k(`unclean_truncation`):this.exchangeComplete||this.#k(`unclean_abrupt`),this.#c=void 0,this.#D(),this.#x??`unclean_abrupt`}noteFatal(){return this.#c=void 0,this.#k(`failed`),this.#D(),this.#x}outerCloseAllowed(e){return!this.closePhaseActive||this.#r===`ended`||this.#r===`complete`||this.waitExpired(e)}shouldLinger(e){return this.#_?this.#v!==void 0&&e<this.#v:!1}#T(e){if(this.#h>=$d)throw TypeError(`Relay E2EE close phase admits at most two T_CLOSE-bounded waits.`);rf(e),this.#h+=1,this.#g=e+ra}#E(){this.#r=`complete`,this.#f=!0,this.#g=void 0,this.#k(`clean`)}#D(){this.#r=`ended`,this.#g=void 0}#O(e,t=`Q7`,n){return this.#c=void 0,this.#k(`failed`),this.#D(),n===void 0?{kind:`fatal`,row:t,reason:e}:{kind:`fatal`,row:t,reason:e,decodeError:n}}#k(e){this.#x=this.#x===void 0?e:Jd(this.#x,e)}};function tf(e){if(!Rd(e))throw TypeError(`Relay E2EE close records are inner type 0x02 or 0x04 only.`);return e}function nf(e){if(!ga(e))throw TypeError(`Relay E2EE direction must be a registered direction label.`);return e}function rf(e){if(typeof e!=`number`||!Number.isFinite(e))throw TypeError(`Relay E2EE close machine requires a finite timestamp.`);return e}function af(e){if(!(e instanceof Uint8Array)||e.byteLength!==32)throw TypeError(`Relay E2EE close records require a full-length session binding hash.`);return e}function of(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}var sf=e=>e?`"${e}" `:``;function cf(e,t=``){if(typeof e!=`boolean`)throw TypeError(sf(t)+`expected boolean, got type=`+typeof e);return e}function lf(e,t=``){if(typeof e!=`number`)throw TypeError(sf(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(sf(t)+`expected integer >= 0, got `+e);return e}function H(e,t,n=``){if(of(e)&&(t===void 0||e.length===t))return e;t!==void 0&&lf(t,`length`);let r=of(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=sf(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}var uf=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError(t===`object`?`expected valid options object`:`"${t}" expected object, got type=${typeof e}`)};function df(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function ff(e,t){H(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function pf(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function mf(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function hf(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var gf=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function _f(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function vf(e){for(let t=0;t<e.length;t++)e[t]=_f(e[t]);return e}var yf=gf?e=>e:vf;function bf(e,t){return uf(e,`defaults`),uf(t,`opts`),Object.assign(e,t)}function xf(e,t){if(e=H(e),t=H(t),e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}function Sf(e,t,n){let r=t,i=n||(()=>[]),a=(e,t)=>r(t,...i(e)).update(e).digest(),o=r(new Uint8Array(e),...i(new Uint8Array));return a.outputLen=o.outputLen,a.blockLen=o.blockLen,a.create=(e,...t)=>r(e,...t),a}var Cf=(e,t)=>{function n(n,...r){if(H(n,void 0,`key`),e.nonceLength!==void 0){let t=r[0];H(t,e.varSizeNonce?void 0:e.nonceLength,`nonce`)}let i=e.tagLength,a=e.nonceLength===void 0?0:1;if(!e.withAAD){for(let e=a;e<r.length;e++)if(of(r[e]))throw Error(`AAD not supported`)}e.withAAD&&r[a]!==void 0&&H(r[a],void 0,`AAD`);let o=t(n,...r),s=(e,t)=>{if(t!==void 0){if(e!==2)throw Error(`cipher output not supported`);H(t,void 0,`output`)}},c=!1;return{encrypt(e,t){if(c)throw Error(`cannot encrypt() twice with same key + nonce`);return c=!0,H(e,void 0,`data`),s(o.encrypt.length,t),o.encrypt(e,t)},decrypt(e,t){if(H(e,void 0,`data`),i&&e.length<i)throw Error(`"ciphertext" expected length >= tagLength=`+i);return s(o.decrypt.length,t),o.decrypt(e,t)}}}return Object.assign(n,e),n};function wf(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(H(t,e,`output`),n&&!Ef(t))throw Error(`invalid output, must be aligned`);return t}function Tf(e,t,n){lf(e),lf(t),cf(n);let r=new Uint8Array(16),i=hf(r);return i.setBigUint64(0,BigInt(t),n),i.setBigUint64(8,BigInt(e),n),r}function Ef(e){return e.byteOffset%4==0}function Df(e){return Uint8Array.from(H(e))}var Of=e=>Uint8Array.from(e.split(``),e=>e.charCodeAt(0)),kf=yf(pf(Of(`expand 16-byte k`))),Af=yf(pf(Of(`expand 32-byte k`)));function U(e,t){return e<<t|e>>>32-t}var jf=64,Mf=16,Nf=2**32-1,Pf=Uint32Array.of();function Ff(e,t,n,r,i,a,o,s){let c=i.length,l=new Uint8Array(jf),u=pf(l),d=gf&&Ef(i)&&Ef(a),f=d?pf(i):Pf,p=d?pf(a):Pf;if(!gf){for(let d=0;d<c;o++){if(e(t,n,r,u,o,s),yf(u),o>=Nf)throw Error(`arx: counter overflow`);let f=Math.min(jf,c-d);for(let e=0,t;e<f;e++)t=d+e,a[t]=i[t]^l[e];d+=f}return}for(let m=0;m<c;o++){if(e(t,n,r,u,o,s),o>=Nf)throw Error(`arx: counter overflow`);let h=Math.min(jf,c-m);if(d&&h===jf){let e=m/4;if(m%4!=0)throw Error(`arx: invalid block position`);for(let t=0,n;t<Mf;t++)n=e+t,p[n]=f[n]^u[t];m+=jf;continue}for(let e=0,t;e<h;e++)t=m+e,a[t]=i[t]^l[e];m+=h}}function If(e,t){let{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:a,rounds:o}=bf({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!=`function`)throw Error(`core must be a function`);return lf(i),lf(o),cf(a),cf(n),(t,s,c,l,u=0)=>{H(t,void 0,`key`),H(s,void 0,`nonce`),H(c,void 0,`data`);let d=c.length;if(l=wf(d,l,!1),lf(u),u<0||u>=Nf)throw Error(`arx: counter overflow`);let f=[],p=t.length,m,h;if(p===32)f.push(m=Df(t)),h=Af;else if(p===16&&n)m=new Uint8Array(32),m.set(t),m.set(t,16),h=kf,f.push(m);else throw H(t,32,`arx key`),Error(`invalid key size`);(!gf||!Ef(s))&&f.push(s=Df(s));let g=pf(m);if(r){if(s.length!==24)throw Error(`arx: extended nonce must be 24 bytes`);let e=s.subarray(0,16);if(gf)r(h,g,pf(e),g);else{let t=yf(Uint32Array.from(h));r(t,g,pf(e),g),mf(t),yf(g)}s=s.subarray(16)}else gf||yf(g);let _=16-i;if(_!==s.length)throw Error(`arx: nonce must be ${_} or 16 bytes`);if(_!==12){let e=new Uint8Array(12);e.set(s,a?0:12-s.length),s=e,f.push(s)}let v=yf(pf(s));try{return Ff(e,h,g,v,c,l,u,o),l}finally{mf(...f)}}}function Lf(e,t){return e[t++]&255|(e[t++]&255)<<8}var Rf=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;destroyed=!1;constructor(e){e=Df(H(e,32,`key`));let t=Lf(e,0),n=Lf(e,2),r=Lf(e,4),i=Lf(e,6),a=Lf(e,8),o=Lf(e,10),s=Lf(e,12),c=Lf(e,14);this.r[0]=t&8191,this.r[1]=(t>>>13|n<<3)&8191,this.r[2]=(n>>>10|r<<6)&7939,this.r[3]=(r>>>7|i<<9)&8191,this.r[4]=(i>>>4|a<<12)&255,this.r[5]=a>>>1&8190,this.r[6]=(a>>>14|o<<2)&8191,this.r[7]=(o>>>11|s<<5)&8065,this.r[8]=(s>>>8|c<<8)&8191,this.r[9]=c>>>5&127;for(let t=0;t<8;t++)this.pad[t]=Lf(e,16+2*t)}process(e,t,n=!1){let r=n?0:2048,{h:i,r:a}=this,o=a[0],s=a[1],c=a[2],l=a[3],u=a[4],d=a[5],f=a[6],p=a[7],m=a[8],h=a[9],g=Lf(e,t+0),_=Lf(e,t+2),v=Lf(e,t+4),y=Lf(e,t+6),b=Lf(e,t+8),x=Lf(e,t+10),S=Lf(e,t+12),C=Lf(e,t+14),w=i[0]+(g&8191),T=i[1]+((g>>>13|_<<3)&8191),E=i[2]+((_>>>10|v<<6)&8191),D=i[3]+((v>>>7|y<<9)&8191),O=i[4]+((y>>>4|b<<12)&8191),k=i[5]+(b>>>1&8191),A=i[6]+((b>>>14|x<<2)&8191),j=i[7]+((x>>>11|S<<5)&8191),M=i[8]+((S>>>8|C<<8)&8191),N=i[9]+(C>>>5|r),P=0,F=P+w*o+5*h*T+5*m*E+5*p*D+5*f*O;P=F>>>13,F&=8191,F+=5*d*k+5*u*A+5*l*j+5*c*M+5*s*N,P+=F>>>13,F&=8191;let I=P+w*s+T*o+5*h*E+5*m*D+5*p*O;P=I>>>13,I&=8191,I+=5*f*k+5*d*A+5*u*j+5*l*M+5*c*N,P+=I>>>13,I&=8191;let L=P+w*c+T*s+E*o+5*h*D+5*m*O;P=L>>>13,L&=8191,L+=5*p*k+5*f*A+5*d*j+5*u*M+5*l*N,P+=L>>>13,L&=8191;let R=P+w*l+T*c+E*s+D*o+5*h*O;P=R>>>13,R&=8191,R+=5*m*k+5*p*A+5*f*j+5*d*M+5*u*N,P+=R>>>13,R&=8191;let ee=P+w*u+T*l+E*c+D*s+O*o;P=ee>>>13,ee&=8191,ee+=5*h*k+5*m*A+5*p*j+5*f*M+5*d*N,P+=ee>>>13,ee&=8191;let te=P+w*d+T*u+E*l+D*c+O*s;P=te>>>13,te&=8191,te+=k*o+5*h*A+5*m*j+5*p*M+5*f*N,P+=te>>>13,te&=8191;let ne=P+w*f+T*d+E*u+D*l+O*c;P=ne>>>13,ne&=8191,ne+=k*s+A*o+5*h*j+5*m*M+5*p*N,P+=ne>>>13,ne&=8191;let re=P+w*p+T*f+E*d+D*u+O*l;P=re>>>13,re&=8191,re+=k*c+A*s+j*o+5*h*M+5*m*N,P+=re>>>13,re&=8191;let ie=P+w*m+T*p+E*f+D*d+O*u;P=ie>>>13,ie&=8191,ie+=k*l+A*c+j*s+M*o+5*h*N,P+=ie>>>13,ie&=8191;let ae=P+w*h+T*m+E*p+D*f+O*d;P=ae>>>13,ae&=8191,ae+=k*u+A*l+j*c+M*s+N*o,P+=ae>>>13,ae&=8191,P=(P<<2)+P|0,P=P+F|0,F=P&8191,P>>>=13,I+=P,i[0]=F,i[1]=I,i[2]=L,i[3]=R,i[4]=ee,i[5]=te,i[6]=ne,i[7]=re,i[8]=ie,i[9]=ae}finalize(){let{h:e,pad:t}=this,n=new Uint16Array(10),r=e[1]>>>13;e[1]&=8191;for(let t=2;t<10;t++)e[t]+=r,r=e[t]>>>13,e[t]&=8191;e[0]+=r*5,r=e[0]>>>13,e[0]&=8191,e[1]+=r,r=e[1]>>>13,e[1]&=8191,e[2]+=r,n[0]=e[0]+5,r=n[0]>>>13,n[0]&=8191;for(let t=1;t<10;t++)n[t]=e[t]+r,r=n[t]>>>13,n[t]&=8191;n[9]-=8192;let i=(r^1)-1;for(let e=0;e<10;e++)n[e]&=i;i=~i;for(let t=0;t<10;t++)e[t]=e[t]&i|n[t];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let a=e[0]+t[0];e[0]=a&65535;for(let n=1;n<8;n++)a=(e[n]+t[n]|0)+(a>>>16)|0,e[n]=a&65535;mf(n)}update(e){df(this),H(e),e=Df(e);let{buffer:t,blockLen:n}=this,r=e.length;for(let i=0;i<r;){let a=Math.min(n-this.pos,r-i);if(a===n){for(;n<=r-i;i+=n)this.process(e,i);continue}t.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===n&&(this.process(t,0,!1),this.pos=0)}return this}destroy(){this.destroyed=!0,mf(this.h,this.r,this.buffer,this.pad)}digestInto(e){df(this),ff(e,this),this.finished=!0;let{buffer:t,h:n}=this,{pos:r}=this;if(r){for(t[r++]=1;r<16;r++)t[r]=0;this.process(t,0,!0)}this.finalize();let i=0;for(let t=0;t<8;t++)e[i++]=n[t]>>>0,e[i++]=n[t]>>>8}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}},zf=Sf(32,e=>new Rf(e));function Bf(e,t,n,r,i,a=20){let o=e[0],s=e[1],c=e[2],l=e[3],u=t[0],d=t[1],f=t[2],p=t[3],m=t[4],h=t[5],g=t[6],_=t[7],v=i,y=n[0],b=n[1],x=n[2],S=o,C=s,w=c,T=l,E=u,D=d,O=f,k=p,A=m,j=h,M=g,N=_,P=v,F=y,I=b,L=x;for(let e=0;e<a;e+=2)S=S+E|0,P=U(P^S,16),A=A+P|0,E=U(E^A,12),S=S+E|0,P=U(P^S,8),A=A+P|0,E=U(E^A,7),C=C+D|0,F=U(F^C,16),j=j+F|0,D=U(D^j,12),C=C+D|0,F=U(F^C,8),j=j+F|0,D=U(D^j,7),w=w+O|0,I=U(I^w,16),M=M+I|0,O=U(O^M,12),w=w+O|0,I=U(I^w,8),M=M+I|0,O=U(O^M,7),T=T+k|0,L=U(L^T,16),N=N+L|0,k=U(k^N,12),T=T+k|0,L=U(L^T,8),N=N+L|0,k=U(k^N,7),S=S+D|0,L=U(L^S,16),M=M+L|0,D=U(D^M,12),S=S+D|0,L=U(L^S,8),M=M+L|0,D=U(D^M,7),C=C+O|0,P=U(P^C,16),N=N+P|0,O=U(O^N,12),C=C+O|0,P=U(P^C,8),N=N+P|0,O=U(O^N,7),w=w+k|0,F=U(F^w,16),A=A+F|0,k=U(k^A,12),w=w+k|0,F=U(F^w,8),A=A+F|0,k=U(k^A,7),T=T+E|0,I=U(I^T,16),j=j+I|0,E=U(E^j,12),T=T+E|0,I=U(I^T,8),j=j+I|0,E=U(E^j,7);let R=0;r[R++]=o+S|0,r[R++]=s+C|0,r[R++]=c+w|0,r[R++]=l+T|0,r[R++]=u+E|0,r[R++]=d+D|0,r[R++]=f+O|0,r[R++]=p+k|0,r[R++]=m+A|0,r[R++]=h+j|0,r[R++]=g+M|0,r[R++]=_+N|0,r[R++]=v+P|0,r[R++]=y+F|0,r[R++]=b+I|0,r[R++]=x+L|0}var Vf=If(Bf,{counterRight:!1,counterLength:4,allowShortKeys:!1}),Hf=new Uint8Array(16),Uf=(e,t)=>{e.update(t);let n=t.length%16;n&&e.update(Hf.subarray(n))},Wf=new Uint8Array(32);function Gf(e,t,n,r,i){i!==void 0&&H(i,void 0,`AAD`);let a=e(t,n,Wf),o=Tf(r.length,i?i.length:0,!0),s=zf.create(a);i&&Uf(s,i),Uf(s,r),s.update(o);let c=s.digest();return mf(a,o),c}var Kf=Cf({blockSize:64,nonceLength:12,tagLength:16,withAAD:!0},(e=>(t,n,r)=>({encrypt(i,a){let o=i.length;a=wf(o+16,a,!1),a.set(i);let s=a.subarray(0,-16);e(t,n,s,s,1);let c=Gf(e,t,n,s,r);return a.set(c,o),mf(c),a},decrypt(i,a){a=wf(i.length-16,a,!1);let o=i.subarray(0,-16),s=i.subarray(-16),c=Gf(e,t,n,o,r);if(!xf(s,c))throw mf(c),Error(`invalid tag`);return a.set(i.subarray(0,-16)),e(t,n,a,a,1),mf(c),a}}))(Vf));function qf(e,t,n){return Fa(e),n===void 0&&(n=new Uint8Array(e.outputLen)),Ea(e,n,t)}var Jf=Uint8Array.of(0),Yf=Uint8Array.of();function Xf(e,t,n,r=32,i){Fa(e),Na(r,`length`),Ua(t,void 0,`prk`);let a=e.outputLen;if(t.length<a)throw Error(`"prk" must be at least HashLen octets`);if(r>255*a)throw Error(`Length must be <= 255*HashLen`);let o=Math.ceil(r/a);if(n===void 0?n=Yf:Ua(n,void 0,`info`),!o)return i&&ba(t),new Uint8Array;let s=i&&o===1?t:new Uint8Array(o*a),{iHash:c,oHash:l}=Ea.create(e,t),u=i?t:new Uint8Array(a),d=o>1?i?.iHash||e.create():void 0;for(let e=0;e<o-1;e++){Jf[0]=e+1;let t=c._cloneInto(d);e&&t.update(u),t.update(n).update(Jf).digestInto(u),l._cloneInto(d).update(u).digestInto(u),s.set(u,a*e)}if(Jf[0]=o,o>1&&c.update(u),c.update(n).update(Jf).digestInto(u),l.update(u).digestInto(u),s.set(u,a*(o-1)),c.destroy(),l.destroy(),d?.destroy(),u!==s&&ba(u),ba(Jf),r===s.length)return s;let f=s.slice(0,r);return ba(s),f}var Zf=`ryco.relay-e2ee.confirmation-key.v1`,Qf=`ryco.relay-e2ee.aead-key.v1`,$f=`ryco.relay-e2ee.ratchet.v1`,ep=wa(Zf),tp=wa(Qf),np=wa($f);function rp(e,t){if(!(e instanceof Uint8Array)||e.byteLength!==32)throw TypeError(`Relay E2EE ${t} must be exactly E2EE_SECRET_BYTES long.`);return e}function ip(e){if(!ga(e))throw TypeError(`Relay E2EE direction must be a registered direction label.`);return e}function ap(e,t){return to(e,Hi(ip(t)))}function op(...e){for(let t of e)if(t instanceof Uint8Array)try{ba(t)}catch{}}function sp(e,t){try{return t()}catch(t){throw op(...e),t}}function cp(e){return Xf(Ja,rp(e,`exporter secret`),ep,32)}function lp(e,t){return Xf(Ja,rp(e,`epoch secret`),ap(tp,t),32)}function up(e,t){return Xf(Ja,rp(e,`epoch secret`),ap(np,t),32)}function dp(e){return sp([e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret],()=>({epochSecretC2N:rp(e.epochSecretC2N,`epoch secret`),epochSecretN2C:rp(e.epochSecretN2C,`epoch secret`),exporterSecret:rp(e.exporterSecret,`exporter secret`),serverConfirmationKey:cp(e.exporterSecret)}))}function fp(e){return dp(e.split())}function pp(e){typeof e!=`object`||!e||op(e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret,e.serverConfirmationKey)}var mp=1+Oa([new Uint8Array(4),new Uint8Array(8),new Uint8Array(4),new Uint8Array(8),new Uint8Array(32)],ja).byteLength,hp=17,gp=Object.freeze([...Array.from({length:2},()=>mp),...Array.from({length:1},()=>hp)]),_p=({version:e,suite:t,key:n})=>{if(e!==1||t!==1)throw TypeError(`Relay E2EE record AEAD selected for an unregistered version or suite.`);return rp(n,`AEAD key`),{seal:(e,t,r)=>Kf(n,e,r).encrypt(t),open:(e,t,r)=>Kf(n,e,r).decrypt(t)}},vp=class e{#e;#t;#n;#r;#i;#a;#o;#s=!1;constructor(t,n,r){let i=ip(t);rp(n,`epoch secret`);let a=e.#c(r);this.#e=i,this.#r=a.epoch,this.#i=a.counter,this.#a=a.epochRecords,this.#o=a.epochBytes,this.#n=lp(n,i),this.#t=n}static#c(e){let t=e?.epoch??0n,n=e?.counter??0n,r=e?.epochRecords??0,i=e?.epochBytes??0;if(typeof t!=`bigint`||t<0n||t>4294967295n)throw RangeError(`Synthetic relay E2EE epoch must be a bigint in the uint32 range.`);if(typeof n!=`bigint`||n<0n||n>18446744073709551615n)throw RangeError(`Synthetic relay E2EE counter must be a bigint in the uint64 range.`);if(!Number.isInteger(r)||r<0||r>=65536)throw RangeError(`Synthetic relay E2EE epoch record count must leave the epoch live.`);if(!Number.isInteger(i)||i<0||i>=268435456)throw RangeError(`Synthetic relay E2EE epoch byte count must leave the epoch live.`);return{epoch:t,counter:n,epochRecords:r,epochBytes:i}}get direction(){return this.#e}get exhausted(){return this.#s}get epoch(){return this.#r}get counter(){return this.#i}get state(){return{epoch:this.#s?void 0:this.#r,counter:this.#s?void 0:this.#i,epochRecords:this.#a,epochBytes:this.#o,exhausted:this.#s}}get aeadKey(){let e=this.#n;if(e===void 0)throw TypeError(`Relay E2EE directional AEAD key is unavailable.`);return e}static#l(e,t){return e>=65536||t>=268435456}capacityFor(t){if(this.#s)return!1;let n=this.#r,r=this.#a,i=this.#o;for(let a of t){if(e.#l(r,i)){if(n>=4294967295n)return!1;n+=1n,r=0,i=0}r+=1,i+=a}return!0}advance(t){if(this.#s)throw TypeError(`Relay E2EE direction is exhausted; no record may advance it.`);if(this.#a+=1,this.#o+=t,!e.#l(this.#a,this.#o))return this.#i>=18446744073709551615n?(this.#u(),{epochCompleted:!1}):(this.#i+=1n,{epochCompleted:!1});if(this.#r>=4294967295n)return this.#u(),{epochCompleted:!0};let n=this.#t,r=this.#n;if(n===void 0)throw TypeError(`Relay E2EE epoch secret is unavailable.`);let i=up(n,this.#e),a=sp([i],()=>lp(i,this.#e));return op(n,r),this.#t=i,this.#n=a,this.#r+=1n,this.#i=0n,this.#a=0,this.#o=0,{epochCompleted:!0}}#u(){this.#s=!0,this.erase()}erase(){op(this.#t,this.#n),this.#t=void 0,this.#n=void 0}};function yp(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.kind===`sent`||t.kind===`failed`&&(t.delivery===`none`||t.delivery===`ambiguous`)}function bp(e){let t,n;try{if(!ia(e.suite))throw TypeError(`Relay E2EE session suite must be a registered suite id.`);if(!(e.sessionBindingHash instanceof Uint8Array)||e.sessionBindingHash.byteLength!==32)throw TypeError(`Relay E2EE session requires a full-length session binding hash.`);if(!Number.isInteger(e.plaintextCeiling)||e.plaintextCeiling<=0)throw RangeError(`Relay E2EE session requires a positive plaintext ceiling.`);let r=ip(e.sendDirection),i=r===`c2n`?`n2c`:`c2n`,a=r===`c2n`?e.secrets.epochSecretC2N:e.secrets.epochSecretN2C,o=r===`c2n`?e.secrets.epochSecretN2C:e.secrets.epochSecretC2N;return t=new vp(r,a,e.testOnlySyntheticSendState),n=new vp(i,o,e.testOnlySyntheticReceiveState),{suite:e.suite,sessionBindingHash:Uint8Array.from(e.sessionBindingHash),plaintextCeiling:e.plaintextCeiling,aeadFactory:e.testOnlyAeadFactory??_p,secrets:e.secrets,send:t,receive:n}}catch(r){throw t?.erase(),n?.erase(),pp(e.secrets),r}}var xp=class{#e=1;#t;#n;#r;#i;#a;#o;#s;#c=`open`;#l=!1;#u=!1;#d=Promise.resolve();constructor(e){let t=bp(e);this.#t=t.suite,this.#n=t.sessionBindingHash,this.#r=t.plaintextCeiling,this.#i=t.aeadFactory,this.#a=t.secrets,this.#o=t.send,this.#s=t.receive}get suite(){return this.#t}get version(){return this.#e}get sendDirection(){return this.#o.direction}get receiveDirection(){return this.#s.direction}get sendState(){return this.#o.state}get receiveState(){return this.#s.state}get postApplicationReserveHeld(){return this.#o.capacityFor(gp)}get sendPathUsable(){return!this.#u&&this.#c!==`unusable`&&this.#c!==`spent`}#f(e,t,n){if(e!==this.#e||t!==this.#t)throw TypeError(`Relay E2EE AEAD selection requires the established version and suite.`);return this.#i({version:e,suite:t,key:n})}async protect(e){if(this.#y(),!va(e.innerType))throw TypeError(`Relay E2EE inner record type must be a registered type.`);if(!(e.body instanceof Uint8Array))throw TypeError(`Relay E2EE inner record body must be a Uint8Array.`);if(typeof e.admit!=`function`||typeof e.transmit!=`function`)throw TypeError(`Relay E2EE sends require an admission and a transmit callback.`);let t=this.#d.then(()=>this.#p(e),()=>this.#p(e));return this.#d=t.then(()=>void 0,()=>void 0),t}async#p(e){if(this.#u)return{kind:`unavailable`,reason:`session_erased`};let t=this.#h(e.innerType);if(t!==void 0)return{kind:`unavailable`,reason:t};if(e.body.byteLength>this.#r)return{kind:`refused`,reason:`e2ee_message_too_large`};let n=1+e.body.byteLength;if(e.innerType===1){if(!this.#o.capacityFor([n,...gp]))return{kind:`close_required`}}else if(!this.#o.capacityFor([n]))return{kind:`exhausted`};let r=32+e.body.byteLength;if(!await e.admit(r))return{kind:`refused`,reason:`e2ee_send_unavailable`};if(this.#u)return{kind:`unavailable`,reason:`session_erased`};let i=this.#o.epoch,a=this.#o.counter,o=Ya({suite:this.#t,epoch:i,counter:a}),s=o[1],c=o[2];if(s!==this.#e||!ia(c)||c!==this.#t)throw TypeError(`Relay E2EE envelope header disagrees with the established session.`);let l=this.#f(s,c,this.#o.aeadKey);try{return await this.#m(e,{epoch:i,counter:a,plaintextBytes:n,aead:l,header:o})}catch{return this.#c=`unusable`,{kind:`send_failed`,epoch:i,counter:a,delivery:`ambiguous`,sendPathUsable:!1,mayEmitError:!1}}}async#m(e,t){let{epoch:n,counter:r,plaintextBytes:i,aead:a,header:o}=t,s=ua(o),c=ma({header:o,sessionBindingHash:this.#n,direction:this.#o.direction}),l=Ji(e.innerType,e.body),u;try{let e=a.seal(s,l,c);u=Yi({suite:this.#t,epoch:n,counter:r,ciphertext:e})}catch{u=void 0}finally{op(l)}let{epochCompleted:d}=this.#o.advance(i);if(u===void 0)return this.#c=`unusable`,{kind:`send_failed`,epoch:n,counter:r,delivery:`none`,sendPathUsable:!1,mayEmitError:!1};this.#g(e.innerType);let f;try{let t=await e.transmit(u);f=yp(t)?t:{kind:`failed`,delivery:`ambiguous`}}catch{f={kind:`failed`,delivery:`ambiguous`}}return f.kind===`sent`?{kind:`protected`,epoch:n,counter:r,plaintextBytes:i,envelopeBytes:u.byteLength,epochCompleted:d}:f.delivery===`none`?(this.#c=`unusable`,{kind:`send_failed`,epoch:n,counter:r,delivery:`none`,sendPathUsable:!1,mayEmitError:!1}):{kind:`send_failed`,epoch:n,counter:r,delivery:`ambiguous`,sendPathUsable:this.sendPathUsable,mayEmitError:this.sendPathUsable}}#h(e){switch(this.#c){case`unusable`:return`send_path_unusable`;case`spent`:return`terminal_record_protected`;case`closing`:return e===1?`application_phase_closed`:void 0;case`open`:return}}#g(e){if(e===3){this.#c=`spent`;return}(e===2||e===4)&&this.#c===`open`&&(this.#c=`closing`)}unprotect(e){if(this.#y(),!(e instanceof Uint8Array))throw TypeError(`Relay E2EE payloads must be a Uint8Array.`);if(this.#l)return this.#v(`receive_terminated`);try{return this.#_(e)}catch(e){throw this.#l=!0,e}}#_(e){let t=oo(e);if(t.kind===`error`)switch(t.reason){case`unsupported_version`:return this.#v(`version_mismatch`);case`unsupported_suite`:return this.#v(`suite_mismatch`);default:return this.#v(`malformed_envelope`)}let n=t.value;if(n.version!==this.#e)return this.#v(`version_mismatch`);if(n.suite!==this.#t)return this.#v(`suite_mismatch`);if(this.#s.exhausted||n.epoch!==this.#s.epoch||n.counter!==this.#s.counter)return this.#v(`sequence_mismatch`);let r=this.#f(n.version,n.suite,this.#s.aeadKey),i=ua(n.header),a=ma({header:n.header,sessionBindingHash:this.#n,direction:this.#s.direction}),o;try{o=r.open(i,n.ciphertext,a)}catch{return this.#v(`authentication_failed`)}let s;try{s=Fi(o)}catch(e){throw op(o),e}if(s.kind===`error`)return op(o),this.#v(s.reason===`truncated`?`malformed_record`:`reserved_inner_type`);let c=n.epoch,l=n.counter,{epochCompleted:u}=sp([o],()=>this.#s.advance(o.byteLength));return{kind:`authenticated`,innerType:s.value.innerType,body:s.value.body,epoch:c,counter:l,plaintextBytes:o.byteLength,epochCompleted:u}}#v(e){return this.#l=!0,{kind:`fatal`,reason:e}}erase(){this.#u||(this.#u=!0,this.#o.erase(),this.#s.erase(),pp(this.#a))}get erased(){return this.#u}#y(){if(this.#u)throw TypeError(`Relay E2EE session has been erased; it is never resumed.`)}},Sp=/^[A-Za-z][A-Za-z0-9._-]{0,63}$/,Cp=64,wp=Symbol(`INVALID_PROFILE_VALUE`),Tp=new Set(mt),Ep={allowIndefinite:!1,allowUndefined:!1,allowInfinity:!1,allowNaN:!1,allowBigInt:!1,strict:!0,useMaps:!0,rejectDuplicateMapKeys:!0,tags:{}},Dp=e=>({ok:!0,value:e}),W=(e,t)=>t===void 0?{ok:!1,error:{code:e}}:{ok:!1,error:{code:e,supported:t}};function Op(e,t){if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n+=1)if(e[n]!==t[n])return!1;return!0}function kp(e,t=0){if(t>Cp)return wp;if(e===null||typeof e==`boolean`||typeof e==`string`)return e;if(typeof e==`number`)return Number.isSafeInteger(e)?e:wp;if(e instanceof Uint8Array)return e;if(Array.isArray(e)){let n=[];for(let r of e){let e=kp(r,t+1);if(e===wp)return wp;n.push(e)}return n}if(e instanceof Map){let n=Object.create(null);for(let[r,i]of e){if(typeof r!=`string`||!Sp.test(r))return wp;let e=kp(i,t+1);if(e===wp)return wp;n[r]=e}return n}return wp}function Ap(e){let t;try{t=eo(e,Ep)}catch{return W(`invalid_encoding`)}if(!(t instanceof Map))return W(`invalid_encoding`);let n;try{n=Oa(t,ja)}catch{return W(`invalid_encoding`)}if(!Op(e,n))return W(`invalid_encoding`);let r=kp(t);return r===wp||r===null||Array.isArray(r)?W(`invalid_encoding`):Dp(r)}function jp(e,t){let n=In(y)({protocolMajor:e.protocolMajor,protocolMinor:e.protocolMinor});return ae(n)?W(`invalid_frame`):n.value.protocolMajor===1?t!==void 0&&(n.value.protocolMajor!==t.protocolMajor||n.value.protocolMinor!==t.protocolMinor)?W(`invalid_frame`):Dp(n.value):W(`protocol_unsupported`,Ln)}function Mp(e,t={}){if(e.byteLength>263168)return W(`frame_too_large`);let n=Ap(e);if(!n.ok)return n;let r=n.value;if(r.type!==`data`&&e.byteLength>262144||r.type===`data`&&r.payload instanceof Uint8Array&&r.payload.byteLength>262144)return W(`frame_too_large`);let i=jp(r,t.expectedVersion);if(!i.ok)return i;if(!(`type`in r))return W(`missing_discriminant`);if(typeof r.type!=`string`)return W(`invalid_frame`);if(!Tp.has(r.type))return W(`unknown_frame_type`);let a=In(Ce)(r);return ae(a)?W(r.type===`ready`?`invalid_limits`:`invalid_frame`):Dp(a.value)}function Np(e){if(typeof e==`object`&&e&&`type`in e&&e.type===`data`&&`payload`in e&&e.payload instanceof Uint8Array&&e.payload.byteLength>262144)return W(`frame_too_large`);let t=In(Ce)(e);if(ae(t))return W((typeof e==`object`&&e&&`type`in e?e.type:void 0)===`ready`?`invalid_limits`:`invalid_frame`);if(t.value.protocolMajor!==1)return W(`protocol_unsupported`,Ln);let n;try{n=Oa(t.value,ja)}catch{return W(`invalid_frame`)}let r=t.value.type===`data`?xt:Nn;return n.byteLength<=r?Dp(n):W(`frame_too_large`)}var Pp={protocolMajor:1,protocolMinor:2},Fp=1,Ip=32,Lp=ca+Ii.byteLength+Ip;function Rp(e){let t=0;for(let n of e)t+=n+Ip;return t}var zp=`Relay E2EE negotiation send buffer is full.`,Bp=`Relay E2EE send is unavailable.`,Vp=`RPC payload exceeds the maximum relay message size.`,Hp=`Relay peer does not support multi-frame RPC messages.`,Up=`Relay send queue is full.`,Wp={fatal_pre_key:`channel_rejected`,fatal_post_key:`channel_rejected`,send_path_unusable:`channel_rejected`};function G(e){return[`node_offline`,`server_draining`,`connection_replaced`,`rate_limited`,`slow_consumer`].includes(e)?{kind:e===`node_offline`?`offline`:e===`server_draining`?`draining`:e===`connection_replaced`?`replacement`:e===`rate_limited`?`rate-limited`:`slow-consumer`,retryable:!0,closeReason:e}:[`revoked`,`node_revoked`,`grant_revoked`].includes(e)?{kind:`revoked`,retryable:!1,closeReason:e}:e===`authorization_failed`?{kind:`authorization-removed`,retryable:!1,closeReason:e}:[`authentication_failed`,`authentication_required`,`ticket_expired`,`ticket_consumed`,`authentication_timeout`].includes(e)?{kind:`authentication`,retryable:e!==`authentication_required`,closeReason:e}:e===`protocol_unsupported`?{kind:`incompatible`,retryable:!1,closeReason:e}:[`protocol_invalid`,`frame_too_large`,`channel_rejected`,`transfer_limit`].includes(e)?{kind:`protocol`,retryable:!1,...e===`protocol_invalid`?{}:{closeReason:e}}:e===`network`?{kind:`network`,retryable:!0}:{kind:`internal`,retryable:!0,closeReason:e}}function Gp(e){return G(Wp[e])}function Kp(){return{kind:`protocol`,retryable:!0,closeReason:`channel_rejected`}}var qp=class{options;#e=null;#t=null;#n=!1;#r=null;#i=0;#a=0;#o=!1;#s=[];#c=0;#l=[];#u=0;#d=!1;#f=!1;#p=!1;#m=!1;#h=null;#g=null;#_=null;#v=null;#y=`negotiating`;#b=null;#x=[];#S=0;#C=0;#w=new Set;#T=Promise.resolve();#E=!1;#D=!1;constructor(e){if(this.options=e,e.ticketExpiresAt<=e.timers.now())throw Error(`Relay attempt is no longer valid.`);let t=ha(e.ticket);try{let e=Np({type:`auth`,peer:`client`,...Pp,relayTicket:t});if(!e.ok)throw Error(`Relay authentication could not be encoded.`);this.#h=e.value}finally{t.fill(0)}e.callbacks.onTransportStatus(`connecting`),e.socket.onOpen(()=>this.#P()),e.socket.onBinaryMessage(e=>this.#F(e)),e.socket.onError(()=>{this.#p||e.events.onError()}),e.socket.onClose(()=>{this.#p||this.#$(G(`network`))})}#O=new pa;get bufferedAmount(){return this.options.socket.bufferedAmount+this.#c+this.#C+this.#S}send(e){if(this.#p||!this.#n||!this.#t||!this.#e)throw Error(`Relay channel is not open.`);if(this.#y===`negotiating`)return this.#j(e,this.#e);if(this.#y===`e2ee`)return this.#k(e);this.#A(e)}#k(e){let t=this.#v;if(!t)return this.#V(Gp(`send_path_unusable`));let n;try{n=t.submit(e)}catch(e){throw this.#V(Gp(`fatal_post_key`)),e}if(!n)throw Error(Bp)}#A(e){let t=da(e,this.#W(this.#e));if(t.kind===`error`)throw e.fill(0),this.#$(G(`transfer_limit`)),Error(t.reason===`peer_unsupported`?Hp:Vp);for(let e of t.payloads)this.#X(Uint8Array.from(e))}#j(e,t){if(e.byteLength>oa(t).plaintextCeiling)throw Error(Vp);let n=Gi(e.byteLength,this.#W(t));if(n.kind===`error`)throw Error(n.reason===`peer_unsupported`?Hp:Vp);let r=Gi(32+e.byteLength,this.#W(t));if(r.kind===`error`)throw Error(r.reason===`peer_unsupported`?Hp:Vp);let i=Math.max(Rp(n.payloadBytes),Rp(r.payloadBytes)),a=Math.max(0,so(t)-Lp);if(this.bufferedAmount+i>a)throw Error(zp);this.#x.push(Uint8Array.from(e)),this.#S+=i}close(e=1e3,t=`closed`){if(!this.#p){if(this.#y===`e2ee`&&this.#v){this.#D=!0,this.options.callbacks.onTransportStatus(`draining`),this.#M();return}this.#N(e,t)}}#M(){let e=this.#v;this.#p||!e||this.#E||!this.#D||(this.#E=!0,e.beginClose().then(t=>{t===`refused`&&!this.#p&&this.#v===e&&(this.#E=!1)},()=>this.#V(Gp(`fatal_post_key`))))}#N(e,t){this.#p||(this.#E=!0,this.options.callbacks.onTransportStatus(`draining`),this.#Z(!0),this.#t&&this.#Q({type:`channel.close`,...Pp,channelId:this.#t}),this.#ee(e,t))}reportUndecodableMessage(e){this.#$(G(e))}#P(){if(!(this.#p||!this.#h)){this.options.callbacks.onTransportStatus(`authenticating`);try{this.options.socket.send(this.#h)}finally{this.#h.fill(0),this.#h=null}this.#g=this.options.timers.setTimeout(()=>this.#$(G(`authentication_timeout`)),Vt)}}#F(e){if(e.byteLength>263168)return this.#$(G(`frame_too_large`));let t=Uint8Array.from(e),n=Mp(t,this.#e?{expectedVersion:Pp}:{});if(t.fill(0),!n.ok)return this.#$(G(`protocol_invalid`));let r=n.value,i=r.type===`data`?(this.#e?.maxDataChunkBytes??262144)+Vn:this.#e?.maxControlFrameBytes??262144;if(e.byteLength>i)return this.#$(G(`frame_too_large`));if(r.type===`ping`)return this.#Q({type:`pong`,...Pp,nonce:Uint8Array.from(r.nonce)});if(r.type===`error`){let e=G(r.code===`invalid_encoding`||r.code===`invalid_frame`||r.code===`invalid_limits`||r.code===`missing_discriminant`||r.code===`unknown_frame_type`?`protocol_invalid`:r.code);return this.#$({...e,...r.retryAfterMs===void 0?{}:{retryAfterMs:r.retryAfterMs}})}if(!this.#e){if(r.type!==`ready`||r.protocolMajor!==1||r.protocolMinor!==2)return this.#$(G(r.type===`ready`?`protocol_unsupported`:`protocol_invalid`));this.#e=r.limits,this.#g&&this.options.timers.clearTimeout(this.#g),this.#g=null,this.options.callbacks.onTransportStatus(`opening-channel`);return}if(r.type===`channel.open`){if(this.#t||r.capability!==`ryco.rpc`||!r.effectiveRole)return this.#$(G(`channel_rejected`));this.#t=r.channelId,this.#r=r.effectiveRole,this.options.callbacks.onRole(this.#r);return}if(r.type===`channel.accept`){if(this.#n||r.channelId!==this.#t||!this.#r)return this.#$(G(`channel_rejected`));if(this.#n=!0,this.options.e2ee){this.#y=`negotiating`,this.#I(this.#e);return}this.#R(`legacy`);return}if(r.type===`channel.close`&&r.reason===void 0&&r.channelId===this.#t&&this.#E)return this.#N(1e3,`closed`);if(r.type===`channel.close`||r.type===`channel.reject`)return r.channelId===this.#t?this.#$(G(r.reason??`channel_rejected`)):this.#$(G(`channel_rejected`));if(r.type===`flow.pause`||r.type===`flow.resume`){if(r.channelId!==this.#t)return this.#$(G(`channel_rejected`));this.#o=r.type===`flow.pause`,this.#o||this.#Z();return}r.type===`data`&&this.#G(r)}#I(e){try{this.#v=this.options.e2ee({limits:e,channel:{channelId:this.#t,capability:`ryco.rpc`,effectiveRole:this.#r,relayProtocolMajor:Pp.protocolMajor,relayProtocolMinor:Pp.protocolMinor},admit:e=>this.#H(e),lockMode:e=>this.#L(e),close:e=>{if(e)return this.#V(e);this.#N(1e3,`closed`)},now:()=>this.options.timers.now(),setTimeout:(e,t)=>this.options.timers.setTimeout(e,t),clearTimeout:e=>this.options.timers.clearTimeout(e)})}catch{this.#V(Gp(`fatal_pre_key`));return}let t=this.#b;this.#b=null,t&&this.#R(t)}#L(e){if(!(this.#p||this.#y!==`negotiating`)){if(!this.#v){this.#b=e;return}this.#R(e)}}#R(e){this.#p||this.#y!==`negotiating`||(this.#y=e,this.#z(e),!this.#p&&(this.options.callbacks.onTransportStatus(`online`),this.options.callbacks.onSessionStatus(`synchronizing`),this.options.events.onOpen()))}#z(e){let t=this.#x;this.#x=[],this.#S=0;for(let n of t){if(!this.#p)try{e===`e2ee`?this.#k(n):this.#A(n)}catch{e===`e2ee`&&!this.#p&&this.#V(Gp(`fatal_post_key`))}n.fill(0)}}#B(){for(let e of this.#x)e.fill(0);this.#x=[],this.#S=0}#V(e){this.#p||(this.#E=!0,this.#Z(!0),this.#t&&e.closeReason&&this.#Q({type:`channel.close`,...Pp,channelId:this.#t,reason:e.closeReason}),this.#$(e))}#H(e){let t=this.#e;if(this.#p||!this.#t||!t)return;let n=Gi(e,this.#W(t));if(n.kind===`error`)return;let r=Rp(n.payloadBytes);if(this.bufferedAmount+r>t.maxQueuedBytes-t.maxControlFrameBytes)return;this.#C+=r;let i={reservedBytes:r,active:!0};this.#w.add(i);let a=()=>i.active?(i.active=!1,this.#w.delete(i),this.#C-=i.reservedBytes,!0):!1;return{release:()=>void a(),send:e=>a()?this.#U(e):!1}}#U(e){let t=this.#e;if(this.#p||!this.#t||!t)return!1;let n=da(e,this.#W(t));if(n.kind===`error`)return!1;for(let e of n.payloads){let t=Uint8Array.from(e),n=t.byteLength+Ip;this.#s.push({bytes:t,reservedBytes:n}),this.#c+=n}return this.#Z(),!0}#W(e){return{maxChunkBytes:e.maxDataChunkBytes,maxMessageBytes:Math.min(T,e.maxQueuedBytes-e.maxControlFrameBytes),peerSupportsChunking:this.#O.peerSupportsChunking}}#G(e){if(this.#p||!this.#n||e.channelId!==this.#t||e.sequence!==this.#i||!this.#e)return this.#$(G(`channel_rejected`));this.#i+=1;let t=Uint8Array.from(e.payload);if(this.#K()+t.byteLength>this.#e.maxQueuedBytes)return t.fill(0),this.#$(G(`slow_consumer`));this.#l.push(t),this.#u+=t.byteLength,this.#q(),this.#J()}#K(){return this.#u+this.#O.heldBytes}#q(){if(!this.#e||!this.#t)return;let e=this.#K();!this.#d&&e>=Math.floor(this.#e.maxQueuedBytes*.75)?(this.#d=!0,this.#Q({type:`flow.pause`,...Pp,channelId:this.#t})):this.#d&&e<=Math.floor(this.#e.maxQueuedBytes*.5)&&(this.#d=!1,this.#Q({type:`flow.resume`,...Pp,channelId:this.#t}))}#J(){this.#f||(this.#f=!0,this.options.timers.queueMicrotask(()=>{if(this.#f=!1,this.#p)return;let e=this.#l.shift();if(e){this.#u-=e.byteLength;let t=Uint8Array.from(e);e.fill(0);let n=this.#O.push(t);if(n.kind===`error`){this.#$(G(`transfer_limit`));return}n.kind===`done`&&this.#Y(n.message)}this.#q(),this.#l.length>0&&this.#J()}))}#Y(e){let t=this.#v;if(!t)return this.options.events.onData(e);let n=async()=>{if(!(this.#p||this.#v!==t))try{let n=await t.intercept(e);n.kind===`rpc`&&!this.#p&&this.options.events.onData(n.message)}catch{this.#V(Gp(`fatal_post_key`))}};this.#T=this.#T.then(n,n)}#X(e){let t=this.#e,n=e.byteLength+Ip;if(this.bufferedAmount+n>t.maxQueuedBytes-t.maxControlFrameBytes)throw e.fill(0),this.#$(G(`slow_consumer`)),Error(Up);this.#s.push({bytes:e,reservedBytes:n}),this.#c+=n,this.#Z()}#Z(e=!1){if(!(this.#p||this.#o||!this.#t||!this.#e)){for(this.#_&&this.options.timers.clearTimeout(this.#_),this.#_=null;this.#s.length>0;){let t=this.#s[0];if(!e&&this.options.socket.bufferedAmount+t.reservedBytes>this.#e.maxQueuedBytes){this.#_=this.options.timers.setTimeout(()=>this.#Z(),10);return}this.#s.shift(),this.#c-=t.reservedBytes;let n=this.#a;if(n>4294967295){t.bytes.fill(0),this.#$(G(`transfer_limit`));return}this.#a+=1,this.#Q({type:`data`,...Pp,channelId:this.#t,sequence:n,payload:t.bytes}),t.bytes.fill(0)}this.#M()}}#Q(e){if(this.#p||this.options.socket.readyState!==Fp)return;let t=Np(e);if(!t.ok||t.value.byteLength>(e.type===`data`?263168:262144))return this.#$(G(`protocol_invalid`));try{this.options.socket.send(t.value)}catch{this.#$(G(`network`))}finally{t.value.fill(0)}}#$(e){this.#p||(this.#m||(this.#m=!0,this.options.callbacks.onFailure(e)),this.options.events.onError(),this.#ee(4e3,e.kind))}#ee(e,t){if(this.#p)return;this.#p=!0,this.#g&&this.options.timers.clearTimeout(this.#g),this.#_&&this.options.timers.clearTimeout(this.#_),this.#g=null,this.#_=null,this.#h?.fill(0),this.#h=null,this.#B();for(let e of this.#s)e.bytes.fill(0);for(let e of this.#l)e.fill(0);let n=this.#v;this.#v=null,n?.dispose({incompleteReassembly:this.#O.incompleteMessage}),this.#O.reset(),this.#s=[],this.#l=[],this.#c=0;for(let e of this.#w)e.active=!1;this.#w.clear(),this.#C=0,this.#u=0,this.options.callbacks.onRole(null),e===1e3&&!this.#m&&this.options.callbacks.onSessionStatus(`closed`);try{this.options.socket.close(e===1e3?1e3:4e3,t.slice(0,64))}catch{}this.options.events.onClose(e,t)}},Jp=`c2n`,Yp=Object.freeze({kind:`rejected`}),Xp=Object.freeze({kind:`claimed`}),Zp={version_mismatch:`Q1`,suite_mismatch:`Q1`,sequence_mismatch:`Q2`,authentication_failed:`Q3`,malformed_envelope:`Q4`,reserved_inner_type:`Q5`,malformed_record:`Q5`,receive_terminated:`Q2`};function Qp(e){let t=e.host,n=()=>t.now(),r=e.onDiagnostic??(()=>void 0),i=oa(t.limits),a=new xp({secrets:e.secrets,suite:e.suite,sessionBindingHash:e.sessionBindingHash,sendDirection:Jp,plaintextCeiling:i.establishable?i.plaintextCeiling:0,...e.testOnlySyntheticSendState===void 0?{}:{testOnlySyntheticSendState:e.testOnlySyntheticSendState},...e.testOnlySyntheticReceiveState===void 0?{}:{testOnlySyntheticReceiveState:e.testOnlySyntheticReceiveState}}),o=new ef({sessionBindingHash:e.sessionBindingHash,sendDirection:Jp}),s=!1,c,l,u=!1,d=!0,f=new Set;function p(e){e.settled||(e.settled=!0,e.plaintext.fill(0),e.reservation.release(),f.delete(e))}function m(){a.erase();for(let e of f)p(e);c!==void 0&&t.clearTimeout(c),c=void 0,l?.(),l=void 0,u=!0}let h=Promise.resolve();function g(e){let t=h.then(e,e);return h=t.then(()=>void 0,()=>void 0),t}async function _(e,n,r,i){let o=r,s;try{if(a.erased)return{kind:`unavailable`};s=await a.protect({innerType:e,body:n,admit:e=>{if(o!==void 0){if(i!==e)throw RangeError(`Relay E2EE reservation does not match the protected record.`);return!0}return o=t.admit(e),o!==void 0},transmit:e=>{let t=o;return o=void 0,t!==void 0&&t.send(e)?{kind:`sent`}:{kind:`failed`,delivery:`none`}}})}finally{o?.release()}return s.kind===`protected`?{kind:`protected`,epoch:s.epoch,counter:s.counter,epochCompleted:s.epochCompleted}:s.kind===`close_required`?{kind:`close_required`}:s.kind===`send_failed`?s.sendPathUsable?{kind:`unavailable`}:{kind:`unusable`}:s.kind===`exhausted`?{kind:`unusable`}:s.kind===`unavailable`?{kind:`unavailable`}:{kind:`refused`}}async function v(e,n){if(s)return Yp;s=!0;let i=o.noteFatal();return await g(async()=>{!a.sendPathUsable||!o.mayProtectTerminalError||(await _(3,Zd(n))).kind===`protected`&&o.noteTerminalErrorTransmitted()}),m(),r({phase:`post_key`,row:e,verdict:i}),t.close(Gp(`fatal_post_key`)),Yp}function y(e){if(s)return;s=!0;let n=o.noteFatal();m(),r({phase:`post_key`,row:`Q10`,verdict:n}),t.close(Gp(e))}function b(){let e=a.sendState;if(e.epoch!==void 0&&e.counter!==void 0)return{epoch:e.epoch,counter:e.counter}}function x(){let e=a.receiveState;if(e.epoch!==void 0&&e.counter!==void 0)return{epoch:e.epoch,counter:e.counter}}function S(){o.noteChannelEnded({at:n()}),w()}function C(){c!==void 0&&t.clearTimeout(c),c=void 0;let e=o.waitDeadlineAt;e!==void 0&&(c=t.setTimeout(()=>{c=void 0,!(s||!o.waitExpired(n()))&&(o.noteWaitExpired(n()),w())},Math.max(1,e-n())))}function w(){if(u||!o.outerCloseAllowed(n()))return;u=!0,c!==void 0&&t.clearTimeout(c),c=void 0;let e=()=>{s||(s=!0,m(),t.close())};if(o.shouldLinger(n())){let r=Math.max(1,(o.lingerDeadlineAt??n())-n());c=t.setTimeout(()=>{c=void 0,e()},r),l?.(),l=void 0;return}e()}async function T(e){return g(async()=>{let t=e(b());if(t.kind===`none`)return`none`;if(t.kind===`degenerate`)return S(),`ended`;let r=t.record,i=await _(r.innerType,r.body);return i.kind===`refused`?`refused`:i.kind===`protected`?(o.noteTransmitted({record:r,epoch:i.epoch,counter:i.counter,epochCompleted:i.epochCompleted,at:n()}),`transmitted`):(S(),`ended`)})}async function E(){for(;o.pendingRecord!==void 0;){let e=await T(e=>{if(s||o.pendingRecord===void 0)return{kind:`none`};let t=o.ackExpectedRecv??x();return t===void 0||e===void 0?{kind:`degenerate`}:{kind:`send`,record:o.buildCloseAck({sendPosition:e,expectedRecv:t})}});if(e===`refused`||e===`none`)break;if(e===`ended`)return}s||(o.exchangeComplete?w():C())}async function D(){if(s||o.closePhaseActive)return`opened`;d=!1;let e=new Promise(e=>{l=e}),t=await T(e=>{if(s||o.closePhaseActive)return{kind:`none`};let t=x();return e===void 0||t===void 0?{kind:`degenerate`}:{kind:`send`,record:o.buildClose({sendPosition:e,expectedRecv:t})}});return t===`refused`?(!s&&!o.closePhaseActive&&(d=!0),`refused`):(t===`transmitted`&&C(),u||await e,`opened`)}async function O(e,n,i){let a=b();if(a===void 0)return S(),Xp;let c=o.receive({innerType:e,body:n,envelope:{epoch:i.epoch,counter:i.counter},epochCompleted:i.epochCompleted,currentNextSend:a,at:i.at});switch(c.kind){case`application`:return{kind:`rpc`,message:n};case`close`:case`close_ack`:return await E(),Xp;case`terminal_error`:return s||(s=!0,m(),r({phase:`post_key`,row:`local`,verdict:o.verdict}),t.close(Gp(`fatal_post_key`))),Yp;case`fatal`:return v(c.row,1)}}async function k(e){if(s)return Yp;if(Xi(e).kind!==`envelope`)return v(`Q6`,1);let t=a.unprotect(e);return t.kind===`fatal`?v(Zp[t.reason],1):O(t.innerType,t.body,{epoch:t.epoch,counter:t.counter,epochCompleted:t.epochCompleted,at:n()})}function A(n){if(s||!d||!o.mayProtectApplicationRecord||n.byteLength>i.plaintextCeiling)return!1;let r=t.admit(32+n.byteLength);if(r===void 0)return!1;if(s||!d||!o.mayProtectApplicationRecord)return r.release(),!1;let a;try{a=Uint8Array.from(n)}catch(e){throw r.release(),e}try{e.testOnlyOnOwnedApplicationPlaintext?.(a)}catch(e){throw a.fill(0),r.release(),e}let c={plaintext:a,reservation:r,settled:!1};return f.add(c),g(async()=>{try{if(s)return;let e=await _(1,c.plaintext,c.reservation,32+c.plaintext.byteLength);if(e.kind===`protected`)return;if(e.kind===`close_required`){D().catch(()=>y(`fatal_post_key`));return}e.kind===`unusable`&&y(`send_path_unusable`)}catch{y(`fatal_post_key`)}finally{p(c)}}),!0}return{intercept:k,submit:A,beginClose:D,dispose:(e={})=>{o.noteChannelEnded({at:n(),...e.incompleteReassembly===void 0?{}:{incompleteReassembly:e.incompleteReassembly}}),s=!0,m()},verdict:()=>o.verdict,sendPosition:b,expectedRecv:x}}var $p=`Noise_IK_25519_ChaChaPoly_SHA256`,em=`Noise_NX_25519_ChaChaPoly_SHA256`,tm=`ryco.relay-e2ee.exporter.v1`;function nm(e){return e===`IK`?$p:em}var rm=Ja.outputLen,im=32,am=32,om=16,sm=65535,cm=18446744073709551615n,lm=wa(tm),um=new Uint8Array,dm=class extends Error{code=`relay_e2ee_noise_handshake_failed`;reason;constructor(e){super(`Relay E2EE Noise handshake failed.`),this.name=`E2eeNoiseHandshakeError`,this.reason=e}};function K(e){throw new dm(e)}function fm(e,t){(!(e instanceof Uint8Array)||e.byteLength!==t)&&K(`invalid_key_material`)}function pm(e,t){return fm(e,t),Uint8Array.from(e)}function mm(...e){for(let t of e)if(t instanceof Uint8Array)try{ba(t)}catch{}}function hm(e,t){let n=qf(Ja,t,e),r,i;try{r=Xf(Ja,n,void 0,2*rm),i=r.slice(0,rm);let e=r.slice(rm);return[i,e]}catch(e){throw mm(i),e}finally{mm(n,r)}}function gm(e){(typeof e!=`bigint`||e<0n)&&K(`invalid_options`),e>=cm&&K(`nonce_exhausted`);let t=new Uint8Array(12),n=e;for(let e=4;e<12;e+=1)t[e]=Number(n&255n),n>>=8n;return t}function _m(e){return(!(e instanceof Uint8Array)||e.byteLength!==rm)&&K(`invalid_key_material`),Xf(Ja,e,lm,32)}var vm=class{#e=void 0;#t=0n;initializeKey(e){e.byteLength!==am&&K(`invalid_key_material`),mm(this.#e),this.#e=e,this.#t=0n}get hasKey(){return this.#e!==void 0}encryptWithAd(e,t){let n=this.#e;if(n===void 0)return t;let r=gm(this.#t),i=Kf(n,r,e).encrypt(t);return ba(r),this.#t+=1n,i}decryptWithAd(e,t){let n=this.#e;if(n===void 0)return t;let r=gm(this.#t),i=Kf(n,r,e).decrypt(t);return ba(r),this.#t+=1n,i}erase(){mm(this.#e),this.#e=void 0,this.#t=0n}},ym=class{#e;#t;#n=new vm;constructor(e){let t=wa(e),n=new Uint8Array(rm);t.byteLength<=rm?n.set(t):n.set(Ja(t)),this.#t=n,this.#e=Uint8Array.from(n)}get hasKey(){return this.#n.hasKey}get handshakeHash(){return Uint8Array.from(this.#t)}mixKey(e){let[t,n]=hm(this.#e,e);try{mm(this.#e),this.#e=t,this.#n.initializeKey(n)}catch(e){throw mm(n),e}}mixHash(e){let t=Ja(to(this.#t,e));mm(this.#t),this.#t=t}encryptAndHash(e){let t=this.#n.encryptWithAd(this.#t,e);return this.mixHash(t),t}decryptAndHash(e){let t=this.#n.decryptWithAd(this.#t,e);return this.mixHash(e),t}splitAndExport(){let[e,t]=hm(this.#e,um),n;try{return n=_m(this.#e),this.erase(),{epochSecretC2N:e,epochSecretN2C:t,exporterSecret:n}}catch(r){throw mm(e,t,n),r}}erase(){mm(this.#e,this.#t),this.#n.erase()}},bm={IK:[[`e`,`es`,`s`,`ss`],[`e`,`ee`,`se`]],NX:[[`e`],[`e`,`ee`,`s`,`es`]]},xm=class{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=0;#u;constructor(e){let t=e.pattern;t!==`IK`&&t!==`NX`&&K(`invalid_options`);let n=e.role;n!==`initiator`&&n!==`responder`&&K(`invalid_options`),e.prologue instanceof Uint8Array||K(`invalid_options`);let r=t===`IK`||n===`responder`,i=t===`IK`&&n===`initiator`;r!==(e.staticSecretKey!==void 0)&&K(`invalid_options`),i!==(e.remoteStaticPublicKey!==void 0)&&K(`invalid_options`);let a=e.staticSecretKey;a!==void 0&&fm(a,im);let o=e.testOnlyEphemeralSecretKey;o!==void 0&&fm(o,im);let s=e.remoteStaticPublicKey===void 0?void 0:pm(e.remoteStaticPublicKey,im);this.#e=n,this.#t=bm[t],this.#a=s;let c=new ym(nm(t));c.mixHash(e.prologue);let l=a===void 0?void 0:Va.getPublicKey(a);t===`IK`&&c.mixHash(n===`initiator`?s:l),this.#n=c,a!==void 0&&(this.#r={secretKey:Uint8Array.from(a),publicKey:l}),this.#c=o,this.#u=n===`initiator`?`awaiting_write`:`awaiting_read`}get status(){return this.#u}get remoteStaticPublicKey(){return this.#a===void 0?void 0:Uint8Array.from(this.#a)}get remoteEphemeralPublicKey(){return this.#o===void 0?void 0:Uint8Array.from(this.#o)}get localEphemeralPublicKey(){return this.#s===void 0?void 0:Uint8Array.from(this.#s)}get testOnlyHandshakeHash(){let e=this.#n.handshakeHash;if(!e.every(e=>e===0))return e}writeMessage(e){this.#d(`awaiting_write`),e instanceof Uint8Array||K(`invalid_options`);try{let t=[];for(let e of this.#t[this.#l])switch(e){case`e`:{let e=this.#p();this.#i=e,this.#e===`initiator`&&(this.#s=Uint8Array.from(e.publicKey)),t.push(e.publicKey),this.#n.mixHash(e.publicKey);break}case`s`:this.#r===void 0&&K(`out_of_sequence`),t.push(this.#n.encryptAndHash(this.#r.publicKey));break;default:this.#m(e)}t.push(this.#n.encryptAndHash(e));let n=to(...t);return n.byteLength>sm&&K(`message_too_large`),this.#f(),n}catch(e){throw this.destroy(),e}}readMessage(e){this.#d(`awaiting_read`),e instanceof Uint8Array||K(`invalid_options`);try{e.byteLength>sm&&K(`message_too_large`);let t=0,n=n=>{t+n>e.byteLength&&K(`malformed_message`);let r=e.subarray(t,t+n);return t+=n,r};for(let e of this.#t[this.#l])switch(e){case`e`:{let e=Uint8Array.from(n(im));this.#o=e,this.#n.mixHash(e);break}case`s`:{let e=n(this.#n.hasKey?im+om:im),t=this.#n.decryptAndHash(e);t.byteLength!==im&&K(`malformed_message`),this.#a=t;break}default:this.#m(e)}let r=this.#n.decryptAndHash(e.subarray(t));return this.#f(),r}catch(e){throw this.destroy(),e}}split(){this.#d(`awaiting_split`);let e;try{return e=this.#n.splitAndExport(),this.#h(),this.#u=`complete`,e}catch(t){throw e!==void 0&&mm(e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret),this.destroy(),t}}destroy(){this.#u!==`complete`&&this.#u!==`destroyed`&&(this.#n.erase(),this.#h(),this.#u=`destroyed`)}#d(e){(this.#u===`complete`||this.#u===`destroyed`)&&K(`handshake_consumed`),this.#u!==e&&K(`out_of_sequence`)}#f(){if(this.#l+=1,this.#l>=this.#t.length){this.#u=`awaiting_split`;return}this.#u=this.#u===`awaiting_write`?`awaiting_read`:`awaiting_write`}#p(){let e=this.#c;if(e!==void 0){let t=Va.getPublicKey(e);return this.#c=void 0,{secretKey:e,publicKey:t}}let t=Va.keygen();return{secretKey:t.secretKey,publicKey:t.publicKey}}#m(e){let t=this.#e===`initiator`,n,r;switch(e){case`ee`:n=this.#i,r=this.#o;break;case`es`:n=t?this.#i:this.#r,r=t?this.#a:this.#o;break;case`se`:n=t?this.#r:this.#i,r=t?this.#o:this.#a;break;case`ss`:n=this.#r,r=this.#a}(n===void 0||r===void 0)&&K(`out_of_sequence`);let i=Va.getSharedSecret(n.secretKey,r);try{this.#n.mixKey(i)}finally{mm(i)}}#h(){mm(this.#i?.secretKey,this.#r?.secretKey,this.#c),this.#i=void 0,this.#r=void 0,this.#c=void 0}},Sm=`ryco.relay-e2ee.confirmation.v1`,Cm=`ryco.relay-e2ee.session.v1`;function wm(e,t){return!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:xf(e,t)}function Tm(e){return Uint8Array.from(Oa(e,ja))}function Em(e){return typeof e==`string`}function Dm(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function Om(e,t){return e instanceof Uint8Array?t===void 0||e.byteLength===t:!1}function km(e){return Uint8Array.from(e)}function Am(e){if((!Array.isArray(e.advertisedSuiteRegistry)||e.advertisedSuiteRegistry.length===0||e.advertisedSuiteRegistry.length>8||!Array.isArray(e.localSuitePreference)||e.localSuitePreference.length===0)&&B(),!Number.isSafeInteger(e.advertisedVersionMin)||!Number.isSafeInteger(e.advertisedVersionMax)||e.advertisedVersionMin>e.advertisedVersionMax||e.advertisedVersionMin>1||1>e.advertisedVersionMax)return{kind:`unusable`,reason:`protocol_version_out_of_range`};let t=La(e.tier);if(!e.advertisedAdmittedPatterns.includes(t))return{kind:`unusable`,reason:`pattern_not_admitted`};let n=e.localSuitePreference.find(t=>ia(t)&&e.advertisedSuiteRegistry.includes(t));return n===void 0||!ia(n)?{kind:`unusable`,reason:`empty_suite_intersection`}:{kind:`usable`,selectedSuite:n}}var jm=5,Mm=3;function Nm(e){return e===`native`||e===`web`}function Pm(e){Nm(e.tier)||B(),ia(e.selectedSuite)||B(),(!Array.isArray(e.offeredSuites)||e.offeredSuites.length===0||e.offeredSuites.length>8||!e.offeredSuites.every(Dm)||!e.offeredSuites.includes(e.selectedSuite))&&B(),Om(e.clientNonce,32)||B(),Om(e.contextCommitment,32)||B(),(!Om(e.noiseMessage1)||e.noiseMessage1.byteLength===0)&&B();let t=Tm([1,e.tier,e.selectedSuite,[...e.offeredSuites],km(e.clientNonce),km(e.contextCommitment),km(e.noiseMessage1)]);return _a(1,t)}function Fm(e){(!Om(e.clientPrekeyTranscript)||e.clientPrekeyTranscript.length===0)&&B();let t=Sa(e.clientPrekeySignature);return Tm([km(e.clientPrekeyTranscript),t,no(e.accountId),la(e.intendedCapability),zi(e.intendedRole)])}var Im=new Uint8Array;function Lm(e){ia(e.acceptedSuite)||B(),(!Em(e.nodePrekeyId)||e.nodePrekeyId.length===0)&&B(),Om(e.contextCommitment,32)||B(),(!Om(e.noiseMessage2)||e.noiseMessage2.byteLength===0)&&B()}function Rm(e){Lm(e);let t=Tm([e.acceptedSuite,e.nodePrekeyId,km(e.contextCommitment),km(e.noiseMessage2)]);return _a(2,t)}function zm(e){let t=fa(e);if(t.kind===`error`||t.value.recordType!==2)return{kind:`error`,reason:`bad_record`};let n=ta(t.value.body);if(n.kind===`error`)return{kind:`error`,reason:`malformed_body`};let r=n.value;if(!Array.isArray(r)||r.length!==jm)return{kind:`error`,reason:`malformed_body`};let[i,a,o,s,c]=r;return!Dm(i)||!Em(a)||a.length===0||!Om(o,32)||!Om(s)||s.byteLength===0||!Om(c,32)?{kind:`error`,reason:`malformed_body`}:{kind:`ok`,value:{acceptedSuite:i,nodePrekeyId:a,contextCommitment:o,noiseMessage2:s,serverConfirmation:c}}}function Bm(e){let t=ta(e);if(t.kind===`error`)return{kind:`error`,reason:`malformed_body`};let n=t.value;if(!Array.isArray(n)||n.length!==Mm)return{kind:`error`,reason:`malformed_body`};let[r,i,a]=n;return!Em(r)||!Em(i)||!Om(a,32)?{kind:`error`,reason:`malformed_body`}:{kind:`ok`,value:{channelOpenCapability:r,channelOpenEffectiveRole:i,nodeAgreementKeyFingerprint:a}}}function Vm(e){let t=ta(e);return(t.kind===`error`||!Array.isArray(t.value))&&B(),t.value}function Hm(e){return(!Om(e.clientHelloWireBytes)||e.clientHelloWireBytes.byteLength===0||!Om(e.serverAcceptTbsWireBytes)||e.serverAcceptTbsWireBytes.byteLength===0)&&B(),Ja(Tm([Sm,km(e.clientHelloWireBytes),km(e.serverAcceptTbsWireBytes),Vm(e.contextBlock)]))}function Um(e,t){return(!Om(e)||!Om(t,32))&&B(),Ea(Ja,e,t)}function Wm(e){(!Om(e.clientHelloWireBytes)||e.clientHelloWireBytes.byteLength===0||!Om(e.serverAcceptWireBytes)||e.serverAcceptWireBytes.byteLength===0)&&B();let t=Ja(Tm([Cm,km(e.clientHelloWireBytes),km(e.serverAcceptWireBytes),Vm(e.contextBlock)]));return t.byteLength!==32&&B(),t}function Gm(e,t){return{kind:`fatal`,row:e,reason:t}}function Km(e){let t=Qi({hubOrigin:e.channel.hubOrigin,channelId:e.channel.channelId,relayProtocolMajor:e.channel.relayProtocolMajor,relayProtocolMinor:e.channel.relayProtocolMinor,e2eeVersion:1,suiteId:e.suite,nodeId:e.advertised.nodeId,nodeIdentityFingerprint:e.advertised.nodeIdentityFingerprint,clientIntendedCapability:e.intendedCapability,clientIntendedRole:e.intendedRole,channelOpenCapability:e.channel.channelOpenCapability,channelOpenEffectiveRole:e.channel.channelOpenEffectiveRole,nodeAgreementFingerprint:Wa(`agreement`,e.advertised.agreementPublicKey),nodeContinuityChainTranscripts:e.advertised.continuityChainTranscripts,nodeContinuityId:e.advertised.continuityId,client:e.client});return{block:t,commitment:Pi(t)}}function qm(e,t,n){return t===e.channelOpenCapability&&n===e.channelOpenEffectiveRole}function Jm(e){return e+qi}var Ym=class{#e;#t;#n=`created`;#r;#i;#a;#o;#s;constructor(e){if(!ia(e.selectedSuite))throw TypeError(`Relay E2EE client handshake requires a registered suite selection.`);this.#e=e,this.#t=e.credentials.tier}get tier(){return this.#t}get state(){return this.#n}get deadlineAt(){return this.#s}deadlineExpired(e){return this.#s!==void 0&&e>this.#s}createHello(e){if(this.#n!==`created`)return this.#u(Gm(`P4`,`handshake_spent`));let t;try{return this.#c(e,e=>{t=e})}catch(e){throw t?.destroy(),this.destroy(),e}}#c(e,t){let n=this.#e,r=n.credentials;if(!qm(n.channel,n.intendedCapability,n.intendedRole))return this.#u(Gm(`P13`,`context_mismatch`));let i=r.tier===`native`?Km({channel:n.channel,advertised:n.advertised,suite:n.selectedSuite,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole,client:{tier:`native`,accountId:r.accountId,identityFingerprint:Wa(`client-identity`,r.identityPublicKey),agreementFingerprint:Wa(`agreement`,r.agreementPublicKey)}}):Km({channel:n.channel,advertised:n.advertised,suite:n.selectedSuite,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole,client:{tier:`web`}}),a=$i({hubOrigin:n.channel.hubOrigin,channelId:n.channel.channelId,relayProtocolMajor:n.channel.relayProtocolMajor,relayProtocolMinor:n.channel.relayProtocolMinor,e2eeVersion:1,suiteId:n.selectedSuite,nodeId:n.advertised.nodeId,contextCommitment:i.commitment}),o;if(r.tier===`native`){if(!wm(Va.getPublicKey(r.agreementSecretKey),r.agreementPublicKey))throw TypeError(`Relay E2EE client agreement secret key does not match its certificate key.`);o=Fm({clientPrekeyTranscript:r.prekeyTranscript,clientPrekeySignature:r.prekeySignature,accountId:r.accountId,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole})}else o=Im;let s=new xm({pattern:La(this.#t),role:`initiator`,prologue:a,staticSecretKey:r.tier===`native`?r.agreementSecretKey:void 0,remoteStaticPublicKey:r.tier===`native`?n.advertised.agreementPublicKey:void 0,testOnlyEphemeralSecretKey:n.testOnlyEphemeralSecretKey});t(s);let c;try{c=s.writeMessage(o)}catch{return s.destroy(),this.#u(Gm(`P10`,`noise`))}let l=Pm({tier:this.#t,selectedSuite:n.selectedSuite,offeredSuites:n.offeredSuites,clientNonce:n.testOnlyClientNonce??ao(32),contextCommitment:i.commitment,noiseMessage1:c});return this.#r=s,this.#i=l,this.#a=i.block,this.#o=i.commitment,this.#s=Jm(e),this.#n=`hello_sent`,{kind:`hello`,record:l,contextBlock:i.block,contextCommitment:i.commitment,prologue:a,deadlineAt:this.#s}}receiveServerAccept(e,t){if(this.#n!==`hello_sent`)return this.#u(Gm(`P16`,`handshake_spent`));let n=this.#r,r=this.#i,i=this.#a,a=this.#o;if(n===void 0||r===void 0||i===void 0||a===void 0)return this.#u(Gm(`P16`,`handshake_spent`));if(this.deadlineExpired(t))return this.#u(Gm(`P20`,`handshake_deadline`));let o;try{return this.#l({payload:e,noise:n,helloRecord:r,contextBlock:i,contextCommitment:a,holdSecrets:e=>{o=e}})}catch(e){throw o!==void 0&&pp(o),this.destroy(),e}}#l(e){let{payload:t,noise:n,helloRecord:r,contextBlock:i,contextCommitment:a}=e,o=zm(t);if(o.kind===`error`)return this.#u(o.reason===`bad_record`?Gm(`P3`,`record_bounds`):Gm(`P16`,`accept_mismatch`));let s=o.value;if(s.acceptedSuite!==this.#e.selectedSuite||s.nodePrekeyId!==this.#e.advertised.prekeyId)return this.#u(Gm(`P16`,`accept_mismatch`));if(!wm(s.contextCommitment,a))return this.#u(Gm(`P13`,`context_mismatch`));let c;try{c=n.readMessage(s.noiseMessage2)}catch{return this.#u(Gm(`P10`,`noise`))}let l=n.remoteStaticPublicKey;if(l===void 0||!wm(l,this.#e.advertised.agreementPublicKey))return this.#u(Gm(`P16`,`accept_mismatch`));let u=Bm(c);if(u.kind===`error`)return this.#u(Gm(`P16`,`accept_mismatch`));let d=u.value;if(d.channelOpenCapability!==this.#e.channel.channelOpenCapability||d.channelOpenEffectiveRole!==this.#e.channel.channelOpenEffectiveRole||!wm(d.nodeAgreementKeyFingerprint,Wa(`agreement`,this.#e.advertised.agreementPublicKey)))return this.#u(Gm(`P13`,`context_mismatch`));let f;try{f=fp(n)}catch{return this.#u(Gm(`P10`,`noise`))}e.holdSecrets(f);let p=Rm({acceptedSuite:this.#e.selectedSuite,nodePrekeyId:s.nodePrekeyId,contextCommitment:s.contextCommitment,noiseMessage2:s.noiseMessage2}),m=Hm({clientHelloWireBytes:r,serverAcceptTbsWireBytes:p,contextBlock:i});if(!wm(Um(f.serverConfirmationKey,m),s.serverConfirmation))return pp(f),this.#u(Gm(`P16`,`confirmation_mismatch`));let h=Wm({clientHelloWireBytes:r,serverAcceptWireBytes:t,contextBlock:i}),g;if(this.#e.credentials.tier===`web`&&(g=n.localEphemeralPublicKey,g===void 0))throw TypeError(`Relay E2EE client handshake has no local ephemeral.`);return this.#n=`established`,this.#r=void 0,{kind:`established`,sessionBindingHash:h,secrets:f,suite:this.#e.selectedSuite,contextBlock:i,serverAcceptTbs:p,confirmationTranscript:m,...g===void 0?{}:{webEphemeralPublicKey:g}}}destroy(){this.#r?.destroy(),this.#r=void 0,this.#n!==`established`&&(this.#n=`failed`)}#u(e){return this.destroy(),e}};function q(e){return{kind:`invalid`,reason:e}}var Xm=new TextEncoder;function Zm(e){let t;try{t=Ri(e.connectedHubOrigin)}catch{return q(`connected_hub_origin_invalid`)}if(e.accountId!==void 0){let t=Xm.encode(e.accountId).byteLength;if(t===0||t>256)return q(`account_scope_invalid`)}let n=za(e.statement);if(n.kind===`error`)return q(n.failure);let r=n.value,i;try{i=na(r.transcript)}catch{return q(`identity_signature_invalid`)}if(!Za({algorithm:`ed25519`,publicKey:r.identityPublicKey,message:i,signature:r.signature}))return q(`identity_signature_invalid`);if(!Qa(Wa(`node-identity`,r.identityPublicKey),r.identityFingerprint))return q(`identity_fingerprint_mismatch`);if(!Qa(Wa(`agreement`,r.prekeyCertificate.agreementPublicKey),r.prekeyCertificate.agreementFingerprint))return q(`agreement_fingerprint_mismatch`);if(r.expiresAt<r.issuedAt)return q(`validity_interval_inverted`);if(r.expiresAt-r.issuedAt>6e5)return q(`validity_interval_too_long`);if(r.issuedAt>e.now+3e5)return q(`issued_at_in_future`);if(r.expiresAt<e.now-3e5)return q(`statement_expired`);if(r.hubOrigin!==t)return q(`hub_origin_mismatch`);let a=r.prekeyCertificate;if(a.expiresAt<=a.createdAt)return q(`prekey_lifetime_inverted`);if(a.expiresAt-a.createdAt>2592e6)return q(`prekey_lifetime_too_long`);if(e.now+3e5<a.createdAt)return q(`prekey_not_yet_valid`);if(a.expiresAt<e.now-3e5)return q(`prekey_expired`);if(!Ki({hubOrigin:r.hubOrigin,nodeId:r.nodeId,identityKeyId:r.identityKeyId,identityPublicKey:r.identityPublicKey,identityFingerprint:r.identityFingerprint,prekeyCertificate:a}))return q(`prekey_cross_signature_invalid`);if(e.pin!==void 0&&r.continuityId!==e.pin.continuityId)return{kind:`identity-event`,event:{reason:`pinned_continuity_id`},statement:r};let o=Bi({chain:r.continuityChain,hubOrigin:r.hubOrigin,continuityId:r.continuityId,identityPublicKey:r.identityPublicKey,...e.pin===void 0?{}:{pinnedIdentityFingerprint:e.pin.identityFingerprint}});if(o.kind===`error`)return e.pin===void 0||o.failure===`malformed_entry`?{kind:`invalid`,reason:`continuity_chain_invalid`,chainFailure:o.failure}:{kind:`identity-event`,event:{reason:`continuity_chain`,failure:o.failure},statement:r};if(e.acceptedPolicyGeneration!==void 0&&r.policyGeneration<e.acceptedPolicyGeneration)return q(`policy_generation_regressed`);let s=Am({tier:e.tier,localSuitePreference:e.localSuitePreference,advertisedSuiteRegistry:r.suiteRegistry,advertisedVersionMin:r.e2eeVersionMin,advertisedVersionMax:r.e2eeVersionMax,advertisedAdmittedPatterns:r.admittedPatterns});return s.kind===`unusable`?{kind:`unusable`,reason:s.reason,statement:r}:{kind:`verified`,statement:r,selectedSuite:s.selectedSuite,anchor:o.pinnedFingerprintUnchanged===void 0?`none`:o.pinnedFingerprintUnchanged?`pin-unchanged`:`pin-updated`}}var Qm=`ryco.relay-e2ee.web-sas.v1`,$m=`node`;function eh(e){return Uint8Array.from(Oa(e,ja))}function th(e){let t=Ka(e.nodeIdentityPublicKey),n=Ia(e.webEphemeralPublicKey);return eh([Qm,$m,ka,t,`web`,Ni,n])}function nh(e){(!(e.sessionBindingHash instanceof Uint8Array)||e.sessionBindingHash.byteLength!==32)&&B();let t=th(e),n=qf(Ja,t,e.sessionBindingHash),r=Xf(Ja,n,wa(Qm),5);return{input:t,prk:n,output:r,display:rh(r)}}function rh(e){(!(e instanceof Uint8Array)||e.byteLength!==5||e.byteLength*8!=Ra.chars*5||Ra.chars!==Ra.groups*Ra.charsPerGroup)&&B();let t=``,n=0,r=0;for(let i of e)for(n=n<<8|i,r+=8;r>=5;)r-=5,t+=ro[n>>r&31];let i=[];for(let e=0;e<t.length;e+=Ra.charsPerGroup)i.push(t.slice(e,e+Ra.charsPerGroup));return i.join(Ra.separator)}var J=Object.freeze({kind:`rejected`}),ih=Object.freeze({kind:`claimed`});function ah(e,t,n){return{nodeId:e.nodeId,nodeIdentityFingerprint:n!==void 0&&t===`pin-unchanged`?n.identityFingerprint:e.identityFingerprint,prekeyId:e.prekeyCertificate.prekeyId,agreementPublicKey:e.prekeyCertificate.agreementPublicKey,continuityChainTranscripts:e.continuityChain.map(e=>e.transcript),continuityId:n===void 0?e.continuityId:n.continuityId}}function oh(e){let t=e.host,n=e.attempt,r=()=>t.now(),i=n.onDiagnostic??(()=>void 0),a=`negotiating`,o=!1,s=!1,c,l,u,d,f,p,m,h,g,_;function v(){d!==void 0&&t.clearTimeout(d),f!==void 0&&t.clearTimeout(f),p!==void 0&&t.clearTimeout(p),m!==void 0&&t.clearTimeout(m),d=void 0,f=void 0,p=void 0,m=void 0;let e=h;h=void 0,e?.();let n=g;g=void 0,n?.()}function y(){let e=l;if(l=void 0,e!==void 0)try{Promise.resolve(n.nativeHandshake?.destroy(e)).catch(()=>void 0)}catch{}}function b(e){return a===`closed`?J:(a=`closed`,v(),c?.destroy(),c=void 0,y(),i({phase:`pre_key`,row:e}),t.close(Gp(`fatal_pre_key`)),J)}function x(){if(a===`negotiating`){if(n.pairingOnly)return b(`local`);a=`legacy`,v(),t.lockMode(`legacy`)}}function S(){return n.credentials.tier===`native`&&n.verifiedPin===void 0}function C(e){if(!oa(t.limits).establishable)return pp(e.secrets),b(`P14`);try{u=Qp({host:t,secrets:e.secrets,suite:e.suite,sessionBindingHash:e.sessionBindingHash})}catch{return b(`P14`)}return a=`e2ee`,v(),t.lockMode(`e2ee`),w(e.sessionBindingHash,e.webEphemeralPublicKey),ih}function w(e,t){if(n.credentials.tier!==`web`)return;let r=n.onWebVerificationCode;if(r===void 0)return;let i=_;if(t===void 0||i===void 0)return;let a;try{a=nh({nodeIdentityPublicKey:i,webEphemeralPublicKey:t,sessionBindingHash:e}).display}catch{return}r(a)}d=t.setTimeout(()=>{if(d=void 0,!(a!==`negotiating`||o)){if(n.selectionClass===`latched`||!n.legacyPermitted){b(`P19`);return}if(n.selectionClass===`unexpected`){n.onUnexpectedNode?.(`none`),b(`P22`);return}x()}},ea);function T(){m=t.setTimeout(()=>{m=void 0,!(a!==`negotiating`||!o)&&b(`P20`)},qi)}async function E(e){if(s)return b(`P4`);s=!0;let c=e===void 0?void 0:Zm({statement:e,connectedHubOrigin:n.hubOrigin,tier:n.credentials.tier,localSuitePreference:n.localSuitePreference,now:r(),...n.accountId===void 0?{}:{accountId:n.accountId},...n.verifiedPin===void 0?{}:{pin:n.verifiedPin},...n.acceptedPolicyGeneration===void 0?{}:{acceptedPolicyGeneration:n.acceptedPolicyGeneration}}),l;if(c!==void 0&&c.kind===`verified`){if(d!==void 0&&t.clearTimeout(d),d=void 0,l=r()+Zi,!await D(c,!0)||a!==`negotiating`||o)return a===`closed`?J:ih}else if(c!==void 0&&(!await D(c,!1)||a!==`negotiating`||o))return a===`closed`?J:ih;return c===void 0||c.kind!==`verified`?n.selectionClass===`latched`?b(`P15`):(i({phase:`pre_key`,row:`K3`}),ih):O(e,c.statement,c.anchor,c.selectedSuite,l??r()+3e3)}function D(e,r){let i=n.onStatement;if(i===void 0)return Promise.resolve(!0);let s,c=new Promise(e=>{s=e}),l=!1,u=()=>d(!1),d=e=>{l||(l=!0,f!==void 0&&t.clearTimeout(f),f=void 0,h===u&&(h=void 0),s(e))};h=u,r&&(f=t.setTimeout(()=>{f=void 0,a===`negotiating`&&!o&&b(`local`),d(!1)},Zi));let p;try{p=i(e)}catch{return b(`local`),d(!1),c}return Promise.resolve(p).then(()=>d(a===`negotiating`&&!o),()=>{a===`negotiating`&&b(`local`),d(!1)}),c}function O(e,t,r,i,s){if(a!==`negotiating`||o)return J;let c=n.credentials;return c.tier===`native`&&!(`agreementSecretKey`in c)?n.nativeHandshake===void 0?A(t,r,i,c,s):k(e,i,s):j(t,r,i,c)}function k(e,i,s){let c=n.nativeHandshake;if(c===void 0)return Promise.resolve(b(`local`));let u,f=new Promise(e=>{u=e}),m=!1,h=()=>_(J),_=e=>{m||(m=!0,p!==void 0&&t.clearTimeout(p),p=void 0,g===h&&(g=void 0),u(e))};g=h;let v=s-r();if(v<=0)return b(`local`),_(J),f;p=t.setTimeout(()=>{p=void 0,a===`negotiating`&&!o&&b(`local`),_(J)},v);let y;try{y=c.start({statement:e,channel:{hubOrigin:n.hubOrigin,channelId:t.channel.channelId,relayProtocolMajor:t.channel.relayProtocolMajor,relayProtocolMinor:t.channel.relayProtocolMinor,channelOpenCapability:t.channel.capability,channelOpenEffectiveRole:t.channel.effectiveRole},selectedSuite:i,offeredSuites:n.localSuitePreference,intendedCapability:t.channel.capability,intendedRole:t.channel.effectiveRole,now:r()})}catch{return b(`local`),_(J),f}return y.then(e=>{if(e.kind===`fatal`){a===`negotiating`&&b(e.result.row),_(J);return}if(m||a!==`negotiating`||o){Promise.resolve(c.destroy(e.handle)).catch(()=>void 0),_(J);return}let n=t.admit(e.result.record.byteLength);if(n===void 0||!n.send(e.result.record)){n?.release(),Promise.resolve(c.destroy(e.handle)).catch(()=>void 0),b(`local`),_(J);return}l=e.handle,o=!0,d!==void 0&&t.clearTimeout(d),d=void 0,T(),_(ih)},()=>{a===`negotiating`&&b(`local`),_(J)}),f}function A(e,i,s,c,l){let u=n.withNativeAgreementSecretKey;if(u===void 0)return Promise.resolve(b(`local`));let d,f=new Promise(e=>{d=e}),m=!1,h=()=>_(J),_=e=>{m||(m=!0,p!==void 0&&t.clearTimeout(p),p=void 0,g===h&&(g=void 0),d(e))};g=h;let v=l-r();if(v<=0)return b(`local`),_(J),f;p=t.setTimeout(()=>{p=void 0,a===`negotiating`&&!o&&b(`local`),_(J)},v);let y;try{y=u(t=>m||a!==`negotiating`||o?J:j(e,i,s,{...c,agreementSecretKey:t}))}catch{return b(`local`),_(J),f}return Promise.resolve(y).then(e=>{if(!m&&a===`negotiating`&&!o){b(`local`),_(J);return}_(e)},()=>{a===`negotiating`&&b(`local`),_(J)}),f}function j(e,i,s,l){if(a!==`negotiating`||o)return J;let u=new Ym({channel:{hubOrigin:n.hubOrigin,channelId:t.channel.channelId,relayProtocolMajor:t.channel.relayProtocolMajor,relayProtocolMinor:t.channel.relayProtocolMinor,channelOpenCapability:t.channel.capability,channelOpenEffectiveRole:t.channel.effectiveRole},advertised:ah(e,i,n.verifiedPin),selectedSuite:s,offeredSuites:n.localSuitePreference,credentials:l,intendedCapability:t.channel.capability,intendedRole:t.channel.effectiveRole}),f;try{f=u.createHello(r())}catch{return b(`local`)}if(f.kind===`fatal`)return c=void 0,u.destroy(),b(f.row);let p=t.admit(f.record.byteLength);return p===void 0||!p.send(f.record)?(p?.release(),u.destroy(),b(`local`)):(l.tier===`web`&&(_=e.identityPublicKey),c=u,o=!0,d!==void 0&&t.clearTimeout(d),d=void 0,T(),ih)}function M(e){let t=fa(e);return t.kind===`error`?b(`P3`):t.value.recordType===2?!o||c===void 0&&l===void 0?b(`P16`):P(e):t.value.recordType===3?b(o?`P17`:`P3`):b(`P3`)}function N(e){return e.kind===`fatal`?b(e.row):n.pairingOnly||S()?(pp(e.secrets),b(`P21`)):C({secrets:e.secrets,suite:e.suite,sessionBindingHash:e.sessionBindingHash,webEphemeralPublicKey:e.webEphemeralPublicKey})}function P(e){let t=l;if(t!==void 0){let i=n.nativeHandshake;return i===void 0?b(`local`):(l=void 0,i.finish(t,e,r()).then(e=>a===`negotiating`?N(e):(e.kind===`established`&&pp(e.secrets),J),()=>a===`negotiating`?b(`local`):J))}return N(c.receiveServerAccept(e,r()))}async function F(e){switch(Xi(e).kind){case`legacy-json`:{let t=aa(e);return t.kind===`ok`?E(t.value):t.reason===`malformed`?E(void 0):o||n.selectionClass===`latched`||!n.legacyPermitted?b(`P18`):n.selectionClass===`unexpected`?(n.onUnexpectedNode?.(`none`),b(`P22`)):x()??{kind:`rpc`,message:e}}case`negotiation`:return M(e);case`envelope`:return b(`P5`);case`other`:return b(`P6`)}}function I(e){switch(Xi(e).kind){case`legacy-json`:{let t=aa(e);return t.kind===`ok`||t.reason===`malformed`?(i({phase:`pre_key`,row:`K20`}),ih):{kind:`rpc`,message:e}}case`envelope`:return b(`P5`);case`negotiation`:return b(`P24`);case`other`:return b(`P6`)}}async function L(e){switch(a){case`negotiating`:return F(e);case`legacy`:return I(e);case`e2ee`:return u===void 0?J:u.intercept(e);case`closed`:return J}}return{intercept:L,submit:e=>u!==void 0&&u.submit(e),beginClose:async()=>u===void 0?(a=`closed`,v(),c?.destroy(),c=void 0,y(),t.close(),`opened`):u.beginClose(),dispose:(e={})=>{a=`closed`,v(),c?.destroy(),c=void 0,y(),u?.dispose(e)},mode:()=>a,abort:()=>{a===`negotiating`&&b(`local`)}}}var sh=new Set([Ge.subscribeShell,Ge.subscribeThread,Ge.subscribeThreadWindow,Tn.subscribeServerConfig,Tn.subscribeServerLifecycle,Tn.subscribeTerminalEvents,Tn.subscribeVcsStatus]),ch=new Set([...sh,Tn.subscribeAuthAccess]);function lh(e,t){return Li(e.effectiveRole,t.tag,e.directoryStatus===`ready`)?e.transportStatus===`online`&&e.browserStatus===`current`&&e.sessionStatus===`ready`||t.stream&&(e.browserStatus===`current`||e.browserStatus===`synchronizing`)&&(e.sessionStatus===`synchronizing`||e.sessionStatus===`replaying`||e.sessionStatus===`delivery-unknown`||e.sessionStatus===`stale`||e.sessionStatus===`closed`)&&sh.has(t.tag):!1}function uh(e){return lh(Xa.getState(),e)}function dh(e){switch(e.code){case`node_offline`:return{kind:`offline`,retryable:!0,...e.retryAfterMs===void 0?{}:{retryAfterMs:e.retryAfterMs}};case`server_draining`:return{kind:`draining`,retryable:!0,...e.retryAfterMs===void 0?{}:{retryAfterMs:e.retryAfterMs}};case`rate_limited`:return{kind:`rate-limited`,retryable:!0,...e.retryAfterMs===void 0?{}:{retryAfterMs:e.retryAfterMs}};case`unsupported_version`:return{kind:`incompatible`,retryable:!1};case`forbidden`:case`authorization_failed`:return{kind:`authorization-removed`,retryable:!1};case`revoked`:return{kind:`revoked`,retryable:!1};default:return{kind:`network`,retryable:!0}}}function fh(){return{nodeId:()=>Xa.getState().selectedNode?.id??null,generation:()=>Xa.getState().generation,isAuthenticated:()=>Xa.getState().accountStatus===`authenticated`,isCurrent:e=>Xa.getState().generation===e,authorizeRequest:uh,shouldReconnect:e=>{let t=Xa.getState();return e===t.generation&&t.accountStatus===`authenticated`&&t.selectedNode!==null&&(t.browserStatus===`current`||t.browserStatus===`synchronizing`)&&t.transportStatus!==`terminal-failure`},transportStatus:(e,t)=>Ga.transportStatus(e,t),sessionStatus:(e,t)=>Ga.sessionStatus(e,t),role:(e,t)=>Ga.role(e,t),failure:(e,t)=>Ga.failure(e,t),markDeliveryUnknown:e=>Ga.markDeliveryUnknown(e),connectionClosed:e=>Ga.connectionClosed(e),connectionRecovered:e=>{let t=Xa.getState();t.generation===e&&t.accountStatus===`authenticated`&&t.directoryStatus===`ready`&&t.browserStatus===`current`&&t.selectedNode!==null&&t.transportStatus!==`terminal-failure`&&Ha().timers.queueMicrotask(()=>{let n=Xa.getState();n.generation===e&&n.selectedNode?.id===t.selectedNode?.id&&Ga.retrySelectedNode()})}}}var ph=class{#e;#t=new Ad;#n=new Map;#r=null;#i;#a=null;#o=0;#s=null;#c=null;#l=!1;constructor(e=fh()){this.#e=e}async nextUrl(){let e=this.#e.nodeId(),t=this.#e.generation();if(!e||t===null||!this.#e.isAuthenticated())throw Error(`No authorized hosted node is selected.`);this.#a=t,this.#e.transportStatus(t,`requesting-ticket`),this.#r=null;try{let n=await this.#e.prepareSocketContext?.();if(!this.#e.isCurrent(t))throw Error(`Hosted node selection changed.`);let r=await qa().issueRelayTicket(e);if(!this.#e.isCurrent(t))throw Error(`Hosted node selection changed.`);return this.#r={ticket:r.ticket,expiresAt:r.expiresAt,generation:t,preparedSocketContext:n,used:!1},this.#e.relayUrl?.()??Ha().relayUrl()}catch(e){if(e instanceof ya&&e.status===401)Ga.expireSession();else if(e instanceof ya){let n=dh(e);this.#i=n.retryAfterMs,this.#e.failure(t,n)}throw e}}createSocket(e){let t=this.#r;if(this.#r=null,!t||t.used||t.expiresAt<=Ha().timers.now())throw Error(`A fresh relay ticket is required for every connection attempt.`);t.used=!0;let n=t.generation,r=t.ticket,i=t.expiresAt,a=this.#o+1;this.#o=a,this.#s=a;let o=()=>this.#s===a,s={onTransportStatus:e=>{o()&&(this.#e.transportStatus(n,e),e===`online`&&this.#l&&(this.#l=!1,this.#e.connectionRecovered?.(n)))},onSessionStatus:e=>{o()&&this.#e.sessionStatus(n,e)},onRole:e=>{o()&&this.#e.role(n,e)},onFailure:e=>{o()&&(this.#i=e.retryAfterMs,this.#t.closed(),this.#n.size>0&&(this.#e.markDeliveryUnknown(n),this.#n.clear()),this.#e.failure(n,e))}};this.#a=n;try{let n=this.#e.createRelaySocket?this.#e.createRelaySocket({url:e,ticket:r,ticketExpiresAt:i,callbacks:s,preparedSocketContext:t.preparedSocketContext}):Ha().createRelaySocket({url:e,ticket:r,ticketExpiresAt:i,callbacks:s});return o()&&(this.#c=n),n}catch(e){throw o()&&(this.#s=null,this.#c=null,this.#a===n&&(this.#a=null)),e}}lifecycleHandlers(){return{webSocketConstructor:e=>this.createSocket(e),isSocketCurrent:e=>e===this.#c,preserveSocketPath:!0,retryTransientErrors:!1,reconnectMaxRetries:1e6,shouldReconnect:()=>this.#a!==null&&this.#e.shouldReconnect(this.#a),authorizeRequest:e=>this.#e.authorizeRequest(e),getReconnectDelayMs:()=>{let e=this.#t.nextDelay(this.#i);return this.#i=void 0,e},onOpen:()=>this.#t.opened(),onClose:(e,t)=>{if(t.intentional)return;let n=this.#a;n!==null&&(this.#t.closed(),this.#l=!0,this.#e.connectionClosed(n))},onRequestStart:e=>{e.stream&&ch.has(e.tag)||this.#n.set(e.id,e.stream?`exit`:`first-chunk`)},onRequestChunk:e=>{this.#n.get(e.id)===`first-chunk`&&this.#n.delete(e.id)},onRequestExit:e=>this.#n.delete(e.id),onRequestInterrupt:e=>this.#n.delete(e.id)}}hasPendingRequests(){return this.#n.size>0}reset(){this.#r=null,this.#n.clear(),this.#i=void 0,this.#a=null,this.#s=null,this.#c=null,this.#l=!1,this.#o=0,this.#t.reset()}},mh=null;function hh(){return mh??=new ph,mh}function gh(){return mh?.hasPendingRequests()??!1}function _h(){mh?.reset(),mh=null}function vh(e){return e===`platform`||e===`cross-platform`?e:void 0}function yh(e){return e.filter(e=>Ca.has(e))}function bh(e){if(!(e instanceof PublicKeyCredential))throw Error(`Passkey ceremony was cancelled.`);return e}async function xh(e,t){let n=typeof e==`object`&&e&&`challenge`in e&&e.challenge instanceof Uint8Array?e:io(e),r=bh(await navigator.credentials.get({publicKey:n,...t?{signal:t}:{}})),i=r.response;if(!(i instanceof AuthenticatorAssertionResponse))throw Error(`Invalid passkey response.`);return{id:r.id,rawId:Ui(r.rawId),response:{clientDataJSON:Ui(i.clientDataJSON),authenticatorData:Ui(i.authenticatorData),signature:Ui(i.signature),...i.userHandle?{userHandle:Ui(i.userHandle)}:{}},type:`public-key`,clientExtensionResults:r.getClientExtensionResults(),...vh(r.authenticatorAttachment)?{authenticatorAttachment:vh(r.authenticatorAttachment)}:{}}}async function Sh(e,t){let n=typeof e==`object`&&e&&`challenge`in e&&e.challenge instanceof Uint8Array?e:sa(e),r=bh(await navigator.credentials.create({publicKey:n,...t?{signal:t}:{}})),i=r.response;if(!(i instanceof AuthenticatorAttestationResponse))throw Error(`Invalid passkey response.`);let a=i.getPublicKey?.()??null,o=i.getAuthenticatorData?.(),s=i.getPublicKeyAlgorithm?.(),c=i.getTransports?.();return{id:r.id,rawId:Ui(r.rawId),response:{clientDataJSON:Ui(i.clientDataJSON),attestationObject:Ui(i.attestationObject),...c?{transports:yh(c)}:{},...s===void 0?{}:{publicKeyAlgorithm:s},...a?{publicKey:Ui(a)}:{},...o?{authenticatorData:Ui(o)}:{}},type:`public-key`,clientExtensionResults:r.getClientExtensionResults(),...vh(r.authenticatorAttachment)?{authenticatorAttachment:vh(r.authenticatorAttachment)}:{}}}var Ch={authenticate:(e,t)=>xh(e,t),register:(e,t)=>Sh(e,t)};function wh(e){return e}var Th={get:e=>vg().persistence.getSavedEnvironmentSecret(wh(e)),set:(e,t)=>vg().persistence.setSavedEnvironmentSecret(wh(e),t),remove:e=>vg().persistence.removeSavedEnvironmentSecret(wh(e))},Eh={webSocketConstructor:(e,t)=>{let n=typeof t==`string`||t===void 0?t:Array.from(t);return new globalThis.WebSocket(e,n)}};function Dh(){Rr(Di)}function Oh(){return us(fr)}function kh(){return us(Lr)}function Ah(e,t,n){let r=e.getBoundingClientRect(),i=Math.min(Math.max(4,t),Math.max(4,window.innerWidth-r.width-4)),a=Math.min(Math.max(4,n),Math.max(4,window.innerHeight-r.height-4));e.style.left=`${i}px`,e.style.top=`${a}px`}function jh(e,t){return new Promise(n=>{let r=document.createElement(`div`);r.style.cssText=`position:fixed;inset:0;z-index:9999`;let i=[],a=e=>{document.removeEventListener(`keydown`,o),r.remove();for(let e of i)e.remove();n(e)},o=e=>{e.key===`Escape`&&(e.preventDefault(),a(null))},s=e=>{for(;i.length>e;)i.pop()?.remove()},c=(e,t,n,r)=>{s(r);let o=document.createElement(`div`);o.className=`fixed z-[10000] min-w-[160px] rounded-md border border-border bg-popover py-1 shadow-xl animate-in fade-in zoom-in-95`,o.style.left=`${t}px`,o.style.top=`${n}px`,o.dataset.level=String(r);for(let t of e){let e=document.createElement(`button`);e.type=`button`;let n=Array.isArray(t.children)&&t.children.length>0,l=!n&&(t.destructive===!0||t.id===`delete`),u=t.disabled===!0;e.disabled=u,e.className=u?`flex w-full items-center gap-2 px-3 py-1.5 text-left text-[11px] text-muted-foreground/60 cursor-not-allowed`:l?`flex w-full items-center gap-2 px-3 py-1.5 text-left text-[11px] text-destructive hover:bg-accent cursor-default`:`flex w-full items-center gap-2 px-3 py-1.5 text-left text-[11px] text-popover-foreground hover:bg-accent cursor-default`;let d=document.createElement(`span`);if(d.className=`min-w-0 flex-1 truncate`,d.textContent=t.label,e.appendChild(d),n){let t=document.createElement(`span`);t.className=`shrink-0 text-muted-foreground/70`,t.textContent=`›`,e.appendChild(t)}u||(n?(e.addEventListener(`mouseenter`,()=>{let n=e.getBoundingClientRect(),a=n.right+4,o=n.top;c(t.children,a,o,r+1);let s=i[r+1];if(!s)return;let l=s.getBoundingClientRect();l.right>window.innerWidth&&Ah(s,n.left-l.width-4,n.top)}),e.addEventListener(`click`,e=>{e.preventDefault()})):(e.addEventListener(`mouseenter`,()=>{s(r+1)}),e.addEventListener(`click`,()=>a(t.id)))),o.appendChild(e)}o.addEventListener(`mouseenter`,()=>{s(r+1)}),document.body.appendChild(o),i[r]=o,requestAnimationFrame(()=>{Ah(o,t,n)})};r.addEventListener(`mousedown`,()=>a(null)),document.addEventListener(`keydown`,o),document.body.appendChild(r),c(e,t?.x??0,t?.y??0,0)})}var Mh=0,Nh=0,Ph=null,Fh=new Set;function Ih(){for(let e of Fh)e()}function Lh(){return Mh>0}function Rh(){return Mh+=1,()=>{--Mh,Mh===0&&Ph&&Hh(Ph.id,null)}}function zh(e){return Fh.add(e),()=>{Fh.delete(e)}}function Bh(){return Ph}function Vh(e){return new Promise(t=>{Ph?.resolve(null),Nh+=1,Ph={id:Nh,items:e,resolve:t},Ih()})}function Hh(e,t){if(!Ph||Ph.id!==e)return;let n=Ph;Ph=null,Ih(),n.resolve(t)}var Uh=6048e5;function Wh(e){return new Date(e+Uh).toISOString()}function Gh(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Kh(e){if(!e.token||e.token.trim().length===0)return!1;let t=Gh(e.expiresAt);return e.expiresAt!==void 0&&t===null?!1:t===null||t>e.nowMs}var qh=`ryco:client-settings:v1`,Jh=`ryco:saved-environment-registry:v1`,Yh=sn({environmentId:ye,label:It,httpBaseUrl:It,wsBaseUrl:It,createdAt:It,lastConnectedAt:nn(It),desktopSsh:Ne(sn({alias:It,hostname:It,username:nn(It),port:nn(On)})),bearerToken:Ne(It),bearerTokenSavedAt:Ne(It),bearerTokenExpiresAt:Ne(It)}),Xh=sn({version:Ne(On),records:Ne(jt(Yh))});function Zh(){return typeof window<`u`}function Qh(e){let t={environmentId:e.environmentId,label:e.label,httpBaseUrl:e.httpBaseUrl,wsBaseUrl:e.wsBaseUrl,createdAt:e.createdAt,lastConnectedAt:e.lastConnectedAt};return e.desktopSsh?{...t,desktopSsh:e.desktopSsh}:t}function $h(e,t){return Kh({token:e.bearerToken,expiresAt:e.bearerTokenExpiresAt,nowMs:t})}function eg(e,t){return e.bearerToken?{...e,bearerTokenSavedAt:e.bearerTokenSavedAt??new Date(t).toISOString(),bearerTokenExpiresAt:e.bearerTokenExpiresAt??Wh(t)}:e}function tg(e){return Qh(e)}function ng(){if(!Zh())return null;try{return gi(qh,Hn)}catch{return null}}function rg(e){Zh()&&wi(qh,e,Hn)}function ig(){if(!Zh())return{};try{return gi(`ryco:saved-environment-registry:v1`,Xh)??{}}catch{return{}}}function ag(e){Zh()&&wi(Jh,e,Xh)}function og(){return ig().records??[]}function sg(e){ag({version:1,records:e})}function cg(){return og().map(e=>Qh(e))}function lg(e){let t=Date.now(),n=new Map(og().map(e=>[e.environmentId,e]));sg(e.map(e=>{let r=n.get(e.environmentId);if(!r||!$h(r,t))return Qh(e);let i=eg(r,t),a=i.bearerToken;if(!a)return Qh(e);let o=i.bearerTokenSavedAt??new Date(t).toISOString(),s=i.bearerTokenExpiresAt??Wh(t);return{environmentId:e.environmentId,label:e.label,httpBaseUrl:e.httpBaseUrl,wsBaseUrl:e.wsBaseUrl,createdAt:e.createdAt,lastConnectedAt:e.lastConnectedAt,...e.desktopSsh?{desktopSsh:e.desktopSsh}:{},bearerToken:a,bearerTokenSavedAt:o,bearerTokenExpiresAt:s}}))}function ug(e){let t=ig(),n=t.records??[],r=n.find(t=>t.environmentId===e);if(!r?.bearerToken)return null;let i=Date.now();if(!$h(r,i))return fg(e),null;let a=eg(r,i);return(a.bearerTokenSavedAt!==r.bearerTokenSavedAt||a.bearerTokenExpiresAt!==r.bearerTokenExpiresAt)&&ag({version:t.version??1,records:n.map(t=>t.environmentId===e?a:t)}),r.bearerToken}function dg(e,t){let n=t.trim();if(n.length===0)return fg(e),!1;let r=ig(),i=r.records??[],a=!1,o=Date.now();return ag({version:r.version??1,records:i.map(t=>{if(t.environmentId!==e)return t;a=!0;let r={environmentId:t.environmentId,label:t.label,httpBaseUrl:t.httpBaseUrl,wsBaseUrl:t.wsBaseUrl,createdAt:t.createdAt,lastConnectedAt:t.lastConnectedAt,bearerToken:n,bearerTokenSavedAt:new Date(o).toISOString(),bearerTokenExpiresAt:Wh(o)};return t.desktopSsh?Object.assign(r,{desktopSsh:t.desktopSsh}):r})}),a}function fg(e){let t=ig();ag({version:t.version??1,records:(t.records??[]).map(t=>t.environmentId===e?tg(t):t)})}var pg;function mg(){return Error(`Local backend API is unavailable before a backend is paired.`)}function Y(e,t){let n=e();return n?t(n):Promise.reject(mg())}function hg(e,t){let n=typeof e==`function`?e:()=>e;return{dialogs:{pickFolder:async e=>window.desktopBridge?window.desktopBridge.pickFolder(e):null,confirm:async e=>window.desktopBridge?window.desktopBridge.confirm(e):window.confirm(e)},shell:{openInEditor:(e,t)=>Y(n,n=>n.shell.openInEditor({cwd:e,editor:t})),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`)},getPathForFile:async e=>window.desktopBridge?.getPathForFile?.(e)||null},contextMenu:{show:async(e,t)=>window.desktopBridge?window.desktopBridge.showContextMenu(e,t):co()===`phone`&&Lh()?Vh(e):jh(e,t)},persistence:{getClientSettings:async()=>window.desktopBridge?window.desktopBridge.getClientSettings():ng(),setClientSettings:async e=>{if(window.desktopBridge)return window.desktopBridge.setClientSettings(e);rg(e)},getSavedEnvironmentRegistry:async()=>window.desktopBridge?window.desktopBridge.getSavedEnvironmentRegistry():cg(),setSavedEnvironmentRegistry:async e=>{if(window.desktopBridge)return window.desktopBridge.setSavedEnvironmentRegistry(e);lg(e)},getSavedEnvironmentSecret:async e=>window.desktopBridge?window.desktopBridge.getSavedEnvironmentSecret(e):ug(e),setSavedEnvironmentSecret:async(e,t)=>window.desktopBridge?window.desktopBridge.setSavedEnvironmentSecret(e,t):dg(e,t),removeSavedEnvironmentSecret:async e=>{if(window.desktopBridge)return window.desktopBridge.removeSavedEnvironmentSecret(e);fg(e)}},server:{getConfig:()=>Y(n,e=>e.server.getConfig()),getAdvertisedEndpoints:()=>Y(n,e=>e.server.getAdvertisedEndpoints()),getDiagnosticsMetrics:()=>Y(n,e=>e.server.getDiagnosticsMetrics()),getStatistics:()=>Y(n,e=>e.server.getStatistics()),getUsageSummary:e=>Y(n,t=>t.server.getUsageSummary(e)),refreshProviders:()=>Y(n,e=>e.server.refreshProviders()),updateProvider:e=>Y(n,t=>t.server.updateProvider(e)),upsertKeybinding:e=>Y(n,t=>t.server.upsertKeybinding(e)),getSettings:()=>Y(n,e=>e.server.getSettings()),updateSettings:e=>Y(n,t=>t.server.updateSettings(e)),getDiagnosticsSnapshot:()=>Y(n,e=>e.server.getDiagnosticsSnapshot()),discoverSourceControl:()=>Y(n,e=>e.server.discoverSourceControl()),listOpinionatedPlugins:()=>Y(n,e=>e.server.listOpinionatedPlugins()),checkOpinionatedPlugins:e=>Y(n,t=>t.server.checkOpinionatedPlugins(e)),installOpinionatedPlugin:e=>Y(n,t=>t.server.installOpinionatedPlugin(e))},keybindings:{replaceCustom:e=>Y(n,t=>t.keybindings.replaceCustom(e))},...t?.includeMcp??e!==void 0?{mcp:{listWorkspaces:()=>Y(n,e=>e.mcp.listWorkspaces()),listServers:e=>Y(n,t=>t.mcp.listServers(e)),upsertServer:e=>Y(n,t=>t.mcp.upsertServer(e)),setServerEnabled:e=>Y(n,t=>t.mcp.setServerEnabled(e)),removeServer:e=>Y(n,t=>t.mcp.removeServer(e)),reloadServers:e=>Y(n,t=>t.mcp.reloadServers(e)),startOauthLogin:e=>Y(n,t=>t.mcp.startOauthLogin(e))}}:{}}}function gg(e,t){let n=t.mcp??e.mcp;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},...n?{mcp:n}:{}}}function _g(){if(!(typeof window>`u`))return pg||(window.nativeApi?(pg=gg(hg(),window.nativeApi),pg):(pg=hg(()=>{let e=Vr();if(!e)return;let t=e.environmentId?wE(e.environmentId)?.client:void 0;return t||l()?t:DE().client},{includeMcp:Vr()!==null}),pg))}function vg(){let e=_g();if(!e)throw Error(`Local API not found`);return e}function yg(e){let t=(t=>(0,V.useSyncExternalStore)(e.subscribe,()=>t(e.getState()),()=>t(e.getState())));return t.getState=e.getState,t.setState=e.setState,t.subscribe=e.subscribe,t}var bg=si({kv:{getRegistry:()=>vg().persistence.getSavedEnvironmentRegistry(),setRegistry:e=>vg().persistence.setSavedEnvironmentRegistry(e.map(e=>_r(e)))},secretKV:Th}),xg=yg(bg.registryStore),X=yg(bg.runtimeStore),Sg=bg.hasHydrated,Cg=bg.waitForHydration,wg=bg.list,Tg=bg.get,Eg=bg.persistRecord,Dg=bg.readBearerToken,Og=bg.writeBearerToken,kg=bg.removeBearerToken;bg.resetForTests,bg.resetRuntimeForTests,bg.getRuntime;function Ag(e){if(l())return null;let t=Vr();return t?.environmentId===e?ci(t):Tg(e)?.httpBaseUrl??null}function jg(e){let t=Ag(e.environmentId);if(!t)throw Error(`Unable to resolve HTTP base URL for environment ${e.environmentId}.`);let n=new URL(yr(t));return n.pathname=e.pathname,e.searchParams&&(n.search=new URLSearchParams(e.searchParams).toString()),n.toString()}function Mg(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 Ng=new Map,Pg=Fc({canReadConnections:()=>!0,readClient:e=>wE(e)?.client??null});function Fg(e){return Ng.get(e)??Pg.read(e)}function Ig(e,t){return Ng.get(e)??(t?Pc(t):void 0)}function Lg(e){let t=Fg(e);if(!t)throw Error(`Environment API not found for environment ${e}`);return t}Object.freeze({entries:[],truncated:!1});var Rg=Object.freeze({data:null,isLoading:!1,isFetching:!1,error:null}),zg=Rg,Bg=Xn(Rg).pipe(hr,Zr(`project-search-entries:null`)),Vg=new Set,Hg=new Map,Ug=Cr(e=>(Vg.add(e),Xn(Rg).pipe(hr,Zr(`project-search-entries:${e}`))));function Wg(e,t,n){return`${e}::${t}::${n}`}function Gg(e){return e.environmentId===null||e.cwd===null?null:Wg(e.environmentId,e.cwd,e.limit??80)}function Kg(e){return e===null?Bg:Ug(e)}function qg(e){return!((e.enabled??!0)&&e.environmentId!==null&&e.cwd!==null&&e.query.length>0)||e.environmentId===null||e.cwd===null?null:{environmentId:e.environmentId,cwd:e.cwd,query:e.query,limit:e.limit??80,staleTime:e.staleTime??15e3}}function Jg(e,t,n){let r=Wg(e,t,n),i=Hg.get(r);return i||(i={environmentId:e,cwd:t,limit:n,token:0,inFlightQuery:null,lastInput:null,observerCount:0,cache:new Map},Hg.set(r,i)),i}function Yg(e,t){let n=Ug(e),r=z.get(n);(r.data!==t.data||r.isLoading!==t.isLoading||r.isFetching!==t.isFetching||r.error!==t.error)&&z.set(n,t)}function Xg(e){let t=z.get(Ug(e));Yg(e,{data:t.data,isLoading:t.data===null,isFetching:!0,error:null})}function Zg(e,t){Yg(e,{data:t,isLoading:!1,isFetching:!1,error:null})}function Qg(e,t){Yg(e,{data:z.get(Ug(e)).data,isLoading:!1,isFetching:!1,error:t})}function $g(e,t,n){let r=n.query,i=++t.token;t.inFlightQuery=r,Xg(e);let a;try{a=Lg(n.environmentId)}catch(n){t.token===i&&(t.inFlightQuery=null,Qg(e,e_(n)));return}a.projects.searchEntries({cwd:n.cwd,query:r,limit:n.limit}).then(n=>{t.cache.set(r,{result:n,fetchedAt:Date.now()}),t.token===i&&(t.inFlightQuery=null,Zg(e,n))}).catch(n=>{t.token===i&&(t.inFlightQuery=null,Qg(e,e_(n)))})}function e_(e){return e instanceof Error?e:Error(String(e))}function t_(e,t){let n=qg(e);if(n===null)return;let r=Wg(n.environmentId,n.cwd,n.limit),i=Jg(n.environmentId,n.cwd,n.limit);if(i.lastInput=n,!t?.force){let e=i.cache.get(n.query);if(e&&Date.now()-e.fetchedAt<n.staleTime){Zg(r,e.result);return}if(i.inFlightQuery===n.query)return}$g(r,i,n)}function n_(e){if(e.environmentId===null||e.cwd===null)return;let t=Jg(e.environmentId,e.cwd,e.limit??80);t.observerCount+=1}function r_(e){let t=Gg(e);if(t===null)return;let n=Hg.get(t);n&&n.observerCount>0&&--n.observerCount}function i_(e){let t=e?.environmentId??null,n=e?.cwd??null;for(let e of Hg.values())(t===null||e.environmentId===t)&&(n===null||e.cwd===n)&&(e.cache.clear(),e.observerCount>0&&e.lastInput!==null&&t_(e.lastInput,{force:!0}))}var a_=Object.freeze({data:null,isLoading:!1,isFetching:!1,error:null,isPending:!0}),o_=a_,s_=`\0`,c_=new Set,l_=Cr(e=>(c_.add(e),Xn(a_).pipe(hr,Zr(`filesystem-browse:${e}`)))),u_=Xn(a_).pipe(hr,Zr(`filesystem-browse:null`)),d_=new Map;function f_(e){if(!((e.enabled??!0)&&e.environmentId!==null&&e.partialPath.length>0)||e.environmentId===null)return null;let t=e.cwd??null,n=`${e.environmentId}${s_}${t??``}${s_}${e.partialPath}`;return{environmentId:e.environmentId,partialPath:e.partialPath,cwd:t,staleTime:e.staleTime??3e4,compositeKey:n}}function p_(e){return f_(e)?.compositeKey??null}function m_(e){return e===null?u_:l_(e)}function h_(e,t){z.set(l_(e),t)}function g_(e){return z.get(l_(e))}async function __(e){let t=++e.fetchToken;e.fetching=!0;let n=g_(e.compositeKey);h_(e.compositeKey,{data:n.data,isLoading:n.data===null,isFetching:!0,error:null,isPending:!0});let r=Array.from(e.subscriberTargets.values()).at(-1),i=r===void 0?Fg(e.environmentId):r;if(!i){if(t!==e.fetchToken)return;e.fetching=!1,h_(e.compositeKey,{data:n.data,isLoading:!1,isFetching:!1,error:Error(`The environment is temporarily unavailable. Reconnecting…`),isPending:!1});return}try{let n=await i.filesystem.browse({partialPath:e.partialPath,...e.cwd?{cwd:e.cwd}:{}});if(t!==e.fetchToken)return;e.fetching=!1,e.hasData=!0,e.lastFetchedAt=Date.now(),e.lastResult=n,h_(e.compositeKey,{data:n,isLoading:!1,isFetching:!1,error:null,isPending:!1})}catch(n){if(t!==e.fetchToken)return;e.fetching=!1;let r=e_(n);h_(e.compositeKey,{data:g_(e.compositeKey).data,isLoading:!1,isFetching:!1,error:r,isPending:!1})}}function v_(e){let t=d_.get(e.compositeKey);return t||(t={compositeKey:e.compositeKey,environmentId:e.environmentId,partialPath:e.partialPath,cwd:e.cwd,staleTime:e.staleTime,subscriberCount:0,lastFetchedAt:0,fetchToken:0,hasData:!1,fetching:!1,lastResult:null,subscriberTargets:new Map},d_.set(e.compositeKey,t)),t}function y_(e){let t=v_(e),n=t.hasData&&Date.now()-t.lastFetchedAt>=t.staleTime;!t.fetching&&(!t.hasData||n)&&__(t)}function b_(e,t){let n=f_(e);if(n===null)return;let r=v_(n);if(!t?.force){if(r.hasData&&Date.now()-r.lastFetchedAt<n.staleTime){h_(n.compositeKey,{data:r.lastResult,isLoading:!1,isFetching:!1,error:null,isPending:!1});return}if(r.fetching)return}__(r)}function x_(e,t){let n=f_(e);if(n===null)return()=>void 0;let r=v_(n),i=Symbol(`filesystem-browse-subscriber`),a=Array.from(r.subscriberTargets.values()).at(-1);return t!==void 0&&r.subscriberTargets.set(i,t),a!==Array.from(r.subscriberTargets.values()).at(-1)&&r.fetching&&(r.fetchToken+=1,r.fetching=!1),r.subscriberCount+=1,y_(n),()=>{let e=d_.get(n.compositeKey);if(e&&e.subscriberCount>0){let t=Array.from(e.subscriberTargets.values()).at(-1);e.subscriberTargets.delete(i),t!==Array.from(e.subscriberTargets.values()).at(-1)&&e.fetching&&(e.fetchToken+=1,e.fetching=!1),--e.subscriberCount}}}function S_(e){b_(e)}function C_(){for(let e of Vg)z.set(Ug(e),Rg);Vg.clear(),Hg.clear();for(let e of d_.values())e.fetchToken+=1;d_.clear();for(let e of c_)z.set(l_(e),a_);c_.clear()}function w_(e){return JSON.stringify([e.environmentId??null,e.threadId,e.fromTurnCount,e.toTurnCount,e.ignoreWhitespace,e.cacheScope??null])}function T_(e){return e.fromTurnCount===0?ze(te)({threadId:e.threadId,toTurnCount:e.toTurnCount,ignoreWhitespace:e.ignoreWhitespace}).pipe(ot(e=>({kind:`fullThreadDiff`,input:e}))):ze(He)({threadId:e.threadId,fromTurnCount:e.fromTurnCount,toTurnCount:e.toTurnCount,ignoreWhitespace:e.ignoreWhitespace}).pipe(ot(e=>({kind:`turnDiff`,input:e})))}function E_(e){return(e.enabled??!0)&&!!e.environmentId&&!!e.threadId&&Qe(T_(e))}function D_(e){return e instanceof Error?e.message:typeof e==`string`?e:``}function O_(e){let t=D_(e).trim();if(t.length===0)return`Failed to load checkpoint diff.`;let n=t.toLowerCase();if(n.includes(`not a git repository`))return`Turn diffs are unavailable because this project is not a git repository.`;if(n.includes(`checkpoint unavailable for thread`)||n.includes(`checkpoint invariant violation`)){let e=t.indexOf(`:`);if(e>=0){let n=t.slice(e+1).trim();if(n.length>0)return n}}return t}function k_(e){let t=D_(e).toLowerCase();return t.includes(`exceeds current turn count`)||t.includes(`checkpoint is unavailable for turn`)||t.includes(`filesystem checkpoint is unavailable`)}function A_(e,t){return k_(t)?e<12:e<3}function j_(e,t){return k_(t)?Math.min(5e3,250*2**(e-1)):Math.min(1e3,100*2**(e-1))}async function M_(e){let t=T_(e);if(!e.environmentId||!e.threadId||rt(t))throw Error(`Checkpoint diff is unavailable.`);let n=Lg(e.environmentId);return t.value.kind===`fullThreadDiff`?await n.orchestration.getFullThreadDiff(t.value.input):await n.orchestration.getTurnDiff(t.value.input)}var N_=Object.freeze({data:null,error:null,isLoading:!1}),P_=Object.freeze({data:null,error:null,isLoading:!0}),F_=N_,I_=Xn(F_).pipe(hr,Zr(`checkpoint-diff:disabled`)),L_=new Set,R_=Cr(e=>(L_.add(e),Xn(P_).pipe(hr,Zr(`checkpoint-diff:${e}`)))),z_=new Map,B_=new Map,V_=()=>void 0;function H_(e,t){z.set(R_(e),t)}function U_(e){return z.get(R_(e))}function W_(e){return new Promise(t=>{setTimeout(t,e)})}function G_(e){let t=++e.generation;e.fetching=!0;let n=U_(e.key);H_(e.key,{data:n.data,error:null,isLoading:n.data===null}),(async()=>{let n=0;for(;;)try{let n=await M_(e.input);if(e.generation!==t)return;e.fetching=!1,e.hasResolved=!0,H_(e.key,{data:n,error:null,isLoading:!1});return}catch(r){let i=Error(O_(r),{cause:r});if(n+=1,e.generation!==t)return;if(!A_(n,i)){e.fetching=!1,H_(e.key,{data:null,error:i,isLoading:!1});return}if(await W_(j_(n,i)),e.generation!==t)return}})()}function K_(e,t){let n=B_.get(e);if(n){n.add(t);return}B_.set(e,new Set([t]))}function q_(e){if(!E_(e)||e.threadId===null)return V_;let t=w_(e),n=z_.get(t);return n||(n={key:t,input:e,threadId:e.threadId,refCount:0,generation:0,hasResolved:!1,fetching:!1},z_.set(t,n),K_(e.threadId,t)),n.refCount+=1,!n.hasResolved&&!n.fetching&&G_(n),()=>{let e=z_.get(t);e&&(e.refCount=Math.max(0,e.refCount-1))}}function J_(e){if(e.hasResolved=!1,e.refCount>0){G_(e);return}e.generation+=1,e.fetching=!1}function Y_(){for(let e of z_.values())J_(e)}function X_(){for(let e of z_.values())e.generation+=1;z_.clear(),B_.clear();for(let e of L_)H_(e,P_);L_.clear()}function Z_(){return Kc(Zn,rr.origin())}var Q_=e=>Z_().bootstrapRemoteBearerSession(e),$_=e=>Z_().fetchRemoteSessionState(e),ev=e=>Z_().fetchRemoteEnvironmentDescriptor(e),tv=e=>Z_().resolveRemoteWebSocketConnectionUrl(e);function nv(e){return Xc(e,rr.origin(),{readPairingToken:Ei,readHostedPairingRequest:lo})}var rv=Object.freeze({lastSnapshotSequence:null,lastEventSequence:null,highestSequence:null,eventCount:0,snapshotCount:0,gapCount:0,lastGap:null,updatedAt:null});function iv(){return new Date().toISOString()}function av(e,t,n){let r=e??rv,i=r.highestSequence===null?t:Math.max(r.highestSequence,t);return{...r,lastSnapshotSequence:t,highestSequence:i,snapshotCount:r.snapshotCount+1,updatedAt:n}}function ov(e,t,n){let r=e??rv,i=r.highestSequence,a=r.gapCount,o=r.lastGap;i!==null&&t>i+1&&(a+=1,o={expectedSequence:i+1,receivedSequence:t,detectedAt:n});let s=i===null?t:Math.max(i,t);return{...r,lastEventSequence:t,highestSequence:s,eventCount:r.eventCount+1,gapCount:a,lastGap:o,updatedAt:n}}var sv=c()(e=>({byEnvironment:{},recordSnapshot:(t,n)=>e(e=>({byEnvironment:{...e.byEnvironment,[t]:av(e.byEnvironment[t],n,iv())}})),recordEvent:(t,n)=>e(e=>({byEnvironment:{...e.byEnvironment,[t]:ov(e.byEnvironment[t],n,iv())}})),reset:()=>e({byEnvironment:{}})}));function cv(e,t){try{sv.getState().recordSnapshot(e,t)}catch{}}function lv(e,t){try{sv.getState().recordEvent(e,t)}catch{}}var uv={recordEvent:lv,recordSnapshot:cv};function dv(e){return oi({...e,pushSequenceMonitor:uv})}zn()(`@ryco/client-runtime/platform/Endpoint`),zn()(`@ryco/client-runtime/platform/Socket`),zn()(`@ryco/client-runtime/platform/AppLifecycle`),zn()(`@ryco/client-runtime/platform/KV`),zn()(`@ryco/client-runtime/platform/SecretKV`),zn()(`@ryco/client-runtime/platform/PasskeyCeremony`),zn()(`@ryco/client-runtime/platform/SessionCredentials`),zn()(`@ryco/client-runtime/platform/DpopSigner`),zn()(`@ryco/client-runtime/platform/PairingCredentialSource`),zn()(`@ryco/client-runtime/platform/AttachmentCodec`),zn()(`@ryco/client-runtime/platform/Clock`),zn()(`@ryco/client-runtime/platform/FrameScheduler`);var fv=xn({span(e){return new ht(e)}}),pv={tracingLayer:E(un,fv),performanceEnabled:()=>!1,recordPerformance:()=>void 0};yt(`@ryco/client-runtime/platform/Observability`,{defaultValue:()=>pv}),zn()(`@ryco/client-runtime/platform/ClientRuntimeConfig`);var mv={clock:{now:()=>Date.now()},frameScheduler:{scheduleFrame:e=>void Promise.resolve().then(e)},observability:pv,isHostedHubMode:()=>!1,resolveAttachmentPreviewUrl:({attachmentId:e})=>e},hv=null;function gv(e){hv=e}function _v(e){hv=null,mv=e}function vv(){if(hv){let e=hv;hv=null,e()}return mv}var yv=`context-compaction`,bv=A(fe);function xv(e){return e.kind===yv}function Sv(e){if(e.kind!==`context-handoff`)return!1;try{let t=bv(e.payload);return t.status===`consumed`||t.status===`failed`||t.status===`delivery-uncertain`}catch{return!1}}function Cv(e){return xv(e)||Sv(e)}function wv(e,t){if(e.length<=t)return[...e];let n=e.slice(-t),r=new Set(n.map(e=>e.id)),i=e.filter(e=>Cv(e)&&!r.has(e.id));return i.length===0?[...n]:[...i,...n]}var Tv=[],Ev=[],Dv=[],Ov=[],kv={},Av={},jv={},Mv={},Nv=new WeakMap,Pv=new WeakMap;function Fv(e,t,n){if(!e||e.length===0||!t)return n;let r=Nv.get(e),i=r?.get(t);if(i)return i;let a=e.flatMap(e=>{let n=t[e];return n?[n]:[]}),o=r??new WeakMap;return o.set(t,a),r||Nv.set(e,o),a}function Iv(e,t){return Fv(e.messageIdsByThreadId[t],e.messageByThreadId[t]??kv,Tv)}function Lv(e,t){return Fv(e.activityIdsByThreadId[t],e.activityByThreadId[t]??Av,Ev)}function Rv(e,t){return Fv(e.proposedPlanIdsByThreadId[t],e.proposedPlanByThreadId[t]??jv,Dv)}function zv(e,t){return Fv(e.turnDiffIdsByThreadId[t],e.turnDiffSummaryByThreadId[t]??Mv,Ov)}function Bv(e,t){let n=e.threadShellById[t];if(!n)return;let r=e.threadSessionById[t]??null,i=e.threadTurnStateById[t],a=Iv(e,t),o=Lv(e,t),s=Rv(e,t),c=zv(e,t),l=Pv.get(n);if(l&&l.session===r&&l.turnState===i&&l.messages===a&&l.activities===o&&l.proposedPlans===s&&l.turnDiffSummaries===c)return l.thread;let u={...n,session:r,latestTurn:i?.latestTurn??null,pendingSourceProposedPlan:i?.pendingSourceProposedPlan,messages:a,activities:o,proposedPlans:s,turnDiffSummaries:c};return Pv.set(n,{session:r,turnState:i,messages:a,activities:o,proposedPlans:s,turnDiffSummaries:c,thread:u}),u}var Vv={projectIds:[],projectById:{},worktreeIds:[],worktreeIdsByProjectId:{},worktreeById:{},threadIds:[],threadIdsByProjectId:{},threadShellById:{},threadSessionById:{},threadTurnStateById:{},messageIdsByThreadId:{},messageByThreadId:{},pendingMessagesByThreadId:{},activityIdsByThreadId:{},activityByThreadId:{},proposedPlanIdsByThreadId:{},proposedPlanByThreadId:{},turnDiffIdsByThreadId:{},turnDiffSummaryByThreadId:{},threadHistoryByThreadId:{},threadHistoryLoadByThreadId:{},sidebarThreadSummaryById:{},bootstrapComplete:!1,hydratedFromCacheAt:void 0},Hv={activeEnvironmentId:null,environmentStateById:{}},Uv=2e3,Wv=500,Gv=[],Kv=[],qv=[],Jv=[];function Yv(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function Xv(e){return wn(e.instanceId)?{...e,model:mi(e.instanceId,e.model)}:e}function Zv(e){return e.map(e=>({...e}))}function Qv(e){return{provider:Hy(e.providerName),providerInstanceId:e.providerInstanceId??void 0,status:Vy(e.status),orchestrationStatus:e.status,activeTurnId:e.activeTurnId??void 0,createdAt:e.updatedAt,updatedAt:e.updatedAt,...e.lastError?{lastError:e.lastError}:{}}}function $v(e,t){let n=t.attachments?.map(t=>({type:`image`,id:t.id,name:t.name,mimeType:t.mimeType,sizeBytes:t.sizeBytes,...vv().isHostedHubMode()?{}:{previewUrl:vv().resolveAttachmentPreviewUrl({environmentId:e,attachmentId:t.id})}}));return{id:t.id,role:t.role,text:t.text,turnId:t.turnId,...t.dispatchMode===void 0?{}:{dispatchMode:t.dispatchMode},createdAt:t.createdAt,streaming:t.streaming,...t.streaming?{}:{completedAt:t.updatedAt},...n&&n.length>0?{attachments:n}:{}}}function ey(e){return{id:e.id,turnId:e.turnId,planMarkdown:e.planMarkdown,implementedAt:e.implementedAt,implementationThreadId:e.implementationThreadId,createdAt:e.createdAt,updatedAt:e.updatedAt}}function ty(e){return{turnId:e.turnId,completedAt:e.completedAt,status:e.status,assistantMessageId:e.assistantMessageId??void 0,checkpointTurnCount:e.checkpointTurnCount,checkpointRef:e.checkpointRef,files:e.files.filter(ny).map(e=>({path:e.path,kind:e.kind,additions:e.additions,deletions:e.deletions}))}}function ny(e){return e.kind!==`modified`||e.additions>0||e.deletions>0}function ry(e,t){return{id:e.id,environmentId:t,name:e.title,cwd:e.workspaceRoot,projectMetadataDir:e.projectMetadataDir,repositoryIdentity:e.repositoryIdentity??null,defaultModelSelection:e.defaultModelSelection?Xv(e.defaultModelSelection):null,customSystemPrompt:e.customSystemPrompt??null,customAvatarContentHash:e.customAvatarContentHash??null,preferredRemoteName:e.preferredRemoteName??null,createdAt:e.createdAt,updatedAt:e.updatedAt,scripts:Zv(e.scripts)}}function iy(e,t){return{id:e.worktreeId,environmentId:t,projectId:e.projectId,title:e.title??null,branch:e.branch,worktreePath:e.worktreePath,origin:e.origin,prNumber:e.prNumber,issueNumber:e.issueNumber,prTitle:e.prTitle,issueTitle:e.issueTitle,prState:e.prState??null,prIsDraft:e.prIsDraft??null,issueState:e.issueState??null,workItemProvider:e.workItemProvider??null,workItemKey:e.workItemKey??null,workItemTitle:e.workItemTitle??null,workItemState:e.workItemState??null,workItemStateName:e.workItemStateName??null,workItemUrl:e.workItemUrl??null,createdAt:e.createdAt,updatedAt:e.updatedAt,archivedAt:e.archivedAt,manualPosition:e.manualPosition}}function ay(e,t){return{id:e.id,environmentId:t,codexThreadId:null,projectId:e.projectId,title:e.title,modelSelection:Xv(e.modelSelection),runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,session:e.session?Qv(e.session):null,messages:e.messages.map(e=>$v(t,e)),proposedPlans:e.proposedPlans.map(ey),error:wr(e.session?.lastError),createdAt:e.createdAt,archivedAt:e.archivedAt,settledOverride:e.settledOverride,settledAt:e.settledAt,updatedAt:e.updatedAt,latestTurn:e.latestTurn,pendingSourceProposedPlan:e.latestTurn?.sourceProposedPlan,branch:e.branch,worktreePath:e.worktreePath,worktreeId:e.worktreeId??null,manualStatusBucket:e.manualStatusBucket??null,manualPosition:e.manualPosition??0,goal:e.goal??null,turnDiffSummaries:e.checkpoints.map(ty),activities:e.activities.map(e=>({...e}))}}function oy(e,t){let n={id:e.id,environmentId:t,codexThreadId:null,projectId:e.projectId,title:e.title,modelSelection:Xv(e.modelSelection),runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,error:wr(e.session?.lastError),createdAt:e.createdAt,archivedAt:e.archivedAt,settledOverride:e.settledOverride,settledAt:e.settledAt,updatedAt:e.updatedAt,branch:e.branch,worktreePath:e.worktreePath,worktreeId:e.worktreeId??null,manualStatusBucket:e.manualStatusBucket??null,manualPosition:e.manualPosition??0,goal:e.goal??null},r=e.session?Qv(e.session):null;return{shell:n,session:r,turnState:{latestTurn:e.latestTurn,pendingSourceProposedPlan:e.latestTurn?.sourceProposedPlan},summary:{id:e.id,environmentId:t,projectId:e.projectId,title:e.title,modelSelection:Xv(e.modelSelection),interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,session:r,providerDriver:r?.provider??null,createdAt:e.createdAt,archivedAt:e.archivedAt,settledOverride:e.settledOverride,settledAt:e.settledAt,updatedAt:e.updatedAt,latestTurn:e.latestTurn,branch:e.branch,worktreePath:e.worktreePath,worktreeId:e.worktreeId??null,manualStatusBucket:e.manualStatusBucket??null,manualPosition:e.manualPosition??0,latestUserMessageAt:e.latestUserMessageAt,hasPendingApprovals:e.hasPendingApprovals,hasPendingUserInput:e.hasPendingUserInput,hasActionableProposedPlan:e.hasActionableProposedPlan,backgroundLiveness:e.backgroundLiveness??null,priority:e.priority}}}function sy(e){return{id:e.id,environmentId:e.environmentId,codexThreadId:e.codexThreadId,projectId:e.projectId,title:e.title,modelSelection:e.modelSelection,runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,error:e.error,createdAt:e.createdAt,archivedAt:e.archivedAt,settledOverride:e.settledOverride,settledAt:e.settledAt,updatedAt:e.updatedAt,branch:e.branch,worktreePath:e.worktreePath,worktreeId:e.worktreeId,manualStatusBucket:e.manualStatusBucket,manualPosition:e.manualPosition,goal:e.goal??null}}function cy(e){return{latestTurn:e.latestTurn,...e.pendingSourceProposedPlan?{pendingSourceProposedPlan:e.pendingSourceProposedPlan}:{}}}function ly(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.threadId===t.threadId&&e.planId===t.planId}function uy(e,t){return e===t?!0:e==null||t==null?!1:e.objective===t.objective&&e.status===t.status&&e.tokenBudget===t.tokenBudget&&e.tokensUsed===t.tokensUsed&&e.timeUsedSeconds===t.timeUsedSeconds&&e.createdAt===t.createdAt&&e.updatedAt===t.updatedAt}function dy(e,t){return e===t?!0:e==null||t==null?!1:e.turnId===t.turnId&&e.state===t.state&&e.requestedAt===t.requestedAt&&e.startedAt===t.startedAt&&e.completedAt===t.completedAt&&e.assistantMessageId===t.assistantMessageId&&ly(e.sourceProposedPlan,t.sourceProposedPlan)}function fy(e,t){return e===t?!0:e==null||t==null?!1:e.provider===t.provider&&e.status===t.status&&e.orchestrationStatus===t.orchestrationStatus&&e.activeTurnId===t.activeTurnId&&e.createdAt===t.createdAt&&e.updatedAt===t.updatedAt&&e.lastError===t.lastError}function py(e,t){return e!==void 0&&e.id===t.id&&e.projectId===t.projectId&&e.title===t.title&&e.interactionMode===t.interactionMode&&e.tokenMode===t.tokenMode&&fy(e.session,t.session)&&e.createdAt===t.createdAt&&e.archivedAt===t.archivedAt&&e.settledOverride===t.settledOverride&&e.settledAt===t.settledAt&&e.updatedAt===t.updatedAt&&dy(e.latestTurn,t.latestTurn)&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.worktreeId===t.worktreeId&&e.manualStatusBucket===t.manualStatusBucket&&e.manualPosition===t.manualPosition&&e.latestUserMessageAt===t.latestUserMessageAt&&e.hasPendingApprovals===t.hasPendingApprovals&&e.hasPendingUserInput===t.hasPendingUserInput&&e.hasActionableProposedPlan===t.hasActionableProposedPlan&&(e.backgroundLiveness??null)===(t.backgroundLiveness??null)&&my(e.priority,t.priority)}function my(e,t){return e===t||e!==void 0&&t!==void 0&&e.tier===t.tier&&e.confidence===t.confidence&&e.reason===t.reason&&e.inputFingerprint===t.inputFingerprint&&e.batchId===t.batchId&&e.modelSelection.instanceId===t.modelSelection.instanceId&&e.modelSelection.model===t.modelSelection.model&&JSON.stringify(e.modelSelection.options)===JSON.stringify(t.modelSelection.options)&&e.rankedAt===t.rankedAt&&e.usableUntil===t.usableUntil}function hy(e,t){return e!==void 0&&e.id===t.id&&e.environmentId===t.environmentId&&e.codexThreadId===t.codexThreadId&&e.projectId===t.projectId&&e.title===t.title&&e.modelSelection===t.modelSelection&&e.runtimeMode===t.runtimeMode&&e.interactionMode===t.interactionMode&&e.tokenMode===t.tokenMode&&e.error===t.error&&e.createdAt===t.createdAt&&e.archivedAt===t.archivedAt&&e.settledOverride===t.settledOverride&&e.settledAt===t.settledAt&&e.updatedAt===t.updatedAt&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.worktreeId===t.worktreeId&&e.manualStatusBucket===t.manualStatusBucket&&e.manualPosition===t.manualPosition&&uy(e.goal,t.goal)}function gy(e,t){return e!==void 0&&e.id===t.id&&e.environmentId===t.environmentId&&e.projectId===t.projectId&&e.title===t.title&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.origin===t.origin&&e.prNumber===t.prNumber&&e.issueNumber===t.issueNumber&&e.prTitle===t.prTitle&&e.issueTitle===t.issueTitle&&e.prState===t.prState&&e.prIsDraft===t.prIsDraft&&e.issueState===t.issueState&&e.workItemProvider===t.workItemProvider&&e.workItemKey===t.workItemKey&&e.workItemTitle===t.workItemTitle&&e.workItemState===t.workItemState&&e.workItemStateName===t.workItemStateName&&e.workItemUrl===t.workItemUrl&&e.createdAt===t.createdAt&&e.updatedAt===t.updatedAt&&e.archivedAt===t.archivedAt&&e.manualPosition===t.manualPosition}function _y(e,t){return e!==void 0&&dy(e.latestTurn,t.latestTurn)&&ly(e.pendingSourceProposedPlan,t.pendingSourceProposedPlan)}function vy(e,t){return e.includes(t)?[...e]:[...e,t]}function yy(e,t){return e.filter(e=>e!==t)}function by(e){return{ids:e.messages.map(e=>e.id),byId:Object.fromEntries(e.messages.map(e=>[e.id,e]))}}function xy(e){return Sy(e.activities)}function Sy(e){return{ids:e.map(e=>e.id),byId:Object.fromEntries(e.map(e=>[e.id,e]))}}function Cy(e){return{ids:e.proposedPlans.map(e=>e.id),byId:Object.fromEntries(e.proposedPlans.map(e=>[e.id,e]))}}function wy(e){return{ids:e.turnDiffSummaries.map(e=>e.turnId),byId:Object.fromEntries(e.turnDiffSummaries.map(e=>[e.turnId,e]))}}function Ty(e){return e.projectIds.flatMap(t=>{let n=e.projectById[t];return n?[n]:[]})}function Ey(e){return e.threadIds.flatMap(t=>{let n=Bv(e,t);return n?[n]:[]})}function Dy(e,t,n,r){let i=e;if(e.threadIds.includes(t)||(i={...i,threadIds:[...i.threadIds,t]}),r!==n){let e=i.threadIdsByProjectId;if(r){let n=e[r]??Gv,i=yy(n,t);if(i.length===0){let{[r]:t,...n}=e;e=n}else Yv(n,i)||(e={...e,[r]:i})}let a=e[n]??Gv,o=vy(a,t);Yv(a,o)||(e={...e,[n]:o}),e!==i.threadIdsByProjectId&&(i={...i,threadIdsByProjectId:e})}return i}function Oy(e,t,n){let r=e.pendingMessagesByThreadId[t.id]??[],i=r.length===0?t:{...t,messages:[...t.messages,...r].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id))},a=sy(t),o=cy(t),s=e.threadShellById[t.id],c=e.threadTurnStateById[t.id],l=Dy(e,t.id,t.projectId,n?.projectId);if(hy(s,a)||(l={...l,threadShellById:{...l.threadShellById,[t.id]:a}}),fy(n?.session??null,t.session)||(l={...l,threadSessionById:{...l.threadSessionById,[t.id]:t.session}}),_y(c,o)||(l={...l,threadTurnStateById:{...l.threadTurnStateById,[t.id]:o}}),n?.messages!==i.messages){let e=by(i);l={...l,messageIdsByThreadId:{...l.messageIdsByThreadId,[i.id]:e.ids},messageByThreadId:{...l.messageByThreadId,[i.id]:e.byId}}}if(r.length>0){let{[i.id]:e,...t}=l.pendingMessagesByThreadId;l={...l,pendingMessagesByThreadId:t}}if(n?.activities!==t.activities){let e=xy(t);l={...l,activityIdsByThreadId:{...l.activityIdsByThreadId,[t.id]:e.ids},activityByThreadId:{...l.activityByThreadId,[t.id]:e.byId}}}if(n?.proposedPlans!==t.proposedPlans){let e=Cy(t);l={...l,proposedPlanIdsByThreadId:{...l.proposedPlanIdsByThreadId,[t.id]:e.ids},proposedPlanByThreadId:{...l.proposedPlanByThreadId,[t.id]:e.byId}}}if(n?.turnDiffSummaries!==t.turnDiffSummaries){let e=wy(t);l={...l,turnDiffIdsByThreadId:{...l.turnDiffIdsByThreadId,[t.id]:e.ids},turnDiffSummaryByThreadId:{...l.turnDiffSummaryByThreadId,[t.id]:e.byId}}}return l}function ky(e,t){let n=e.threadShellById[t.shell.id],r=Dy(e,t.shell.id,t.shell.projectId,n?.projectId);return hy(n,t.shell)||(r={...r,threadShellById:{...r.threadShellById,[t.shell.id]:t.shell}}),fy(e.threadSessionById[t.shell.id]??null,t.session)||(r={...r,threadSessionById:{...r.threadSessionById,[t.shell.id]:t.session}}),_y(e.threadTurnStateById[t.shell.id],t.turnState)||(r={...r,threadTurnStateById:{...r.threadTurnStateById,[t.shell.id]:t.turnState}}),py(e.sidebarThreadSummaryById[t.shell.id],t.summary)||(r={...r,sidebarThreadSummaryById:{...r.sidebarThreadSummaryById,[t.shell.id]:t.summary}}),r}function Ay(e,t){return Object.fromEntries(Object.entries(e).flatMap(([e,n])=>t.has(e)?[[e,n]]:[]))}function jy(e,t){let n=e.threadShellById[t];if(!n)return e;let r=yy(e.threadIds,t),i=yy(e.threadIdsByProjectId[n.projectId]??Gv,t),a=i.length===0?(()=>{let{[n.projectId]:t,...r}=e.threadIdsByProjectId;return r})():{...e.threadIdsByProjectId,[n.projectId]:i},{[t]:o,...s}=e.threadShellById,{[t]:c,...l}=e.threadSessionById,{[t]:u,...d}=e.threadTurnStateById,{[t]:f,...p}=e.messageIdsByThreadId,{[t]:m,...h}=e.messageByThreadId,{[t]:g,..._}=e.pendingMessagesByThreadId,{[t]:v,...y}=e.activityIdsByThreadId,{[t]:b,...x}=e.activityByThreadId,{[t]:S,...C}=e.proposedPlanIdsByThreadId,{[t]:w,...T}=e.proposedPlanByThreadId,{[t]:E,...D}=e.turnDiffIdsByThreadId,{[t]:O,...k}=e.turnDiffSummaryByThreadId,{[t]:A,...j}=e.threadHistoryByThreadId??{},{[t]:M,...N}=e.threadHistoryLoadByThreadId??{},{[t]:P,...F}=e.sidebarThreadSummaryById;return{...e,threadIds:r,threadIdsByProjectId:a,threadShellById:s,threadSessionById:l,threadTurnStateById:d,messageIdsByThreadId:p,messageByThreadId:h,pendingMessagesByThreadId:_,activityIdsByThreadId:y,activityByThreadId:x,proposedPlanIdsByThreadId:C,proposedPlanByThreadId:T,turnDiffIdsByThreadId:D,turnDiffSummaryByThreadId:k,threadHistoryByThreadId:j,threadHistoryLoadByThreadId:N,sidebarThreadSummaryById:F}}function My(e,t){let n=e.environmentStateById[t.environmentId];return n?eb(e,t.environmentId,jy(n,t.threadId)):e}function Ny(e,t){let n=e.worktreeById??{},r=e.worktreeIds??Kv,i=n[t.id],a=i!==void 0&&i.projectId!==t.projectId,o=r.includes(t.id)?r:[...r,t.id],s=e.worktreeIdsByProjectId??{},c=s[t.projectId]??[];if(gy(i,t)&&r.includes(t.id)&&c.includes(t.id))return e;if(a){let e=yy(s[i.projectId]??[],t.id);if(e.length===0){let{[i.projectId]:e,...t}=s;s=t}else s={...s,[i.projectId]:e}}let l=s[t.projectId]??[];return l.includes(t.id)||(s={...s,[t.projectId]:[...l,t.id]}),i===void 0&&o===r&&(o=[...o]),{...e,worktreeIds:o,worktreeIdsByProjectId:s,worktreeById:{...n,[t.id]:t}}}function Py(e,t){let n=e.worktreeById??{},r=n[t];if(!r)return e;let{[t]:i,...a}=n,o=e.worktreeIdsByProjectId??{},s=yy(o[r.projectId]??[],t),c=s.length===0?Object.fromEntries(Object.entries(o).filter(([e])=>e!==r.projectId)):{...o,[r.projectId]:s};return{...e,worktreeIds:yy(e.worktreeIds??Kv,t),worktreeIdsByProjectId:c,worktreeById:a}}function Fy(e){return e===`error`?`error`:e===`missing`?`interrupted`:`completed`}function Iy(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;return e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)}function Ly(e){let t=e.previous?.turnId===e.turnId?e.previous.sourceProposedPlan:e.sourceProposedPlan;return{turnId:e.turnId,state:e.state,requestedAt:e.requestedAt,startedAt:e.startedAt,completedAt:e.completedAt,assistantMessageId:e.assistantMessageId,...t?{sourceProposedPlan:t}:{}}}function Ry(e,t,n){let r=new Set;for(let n of e){if(n.role===`system`){r.add(n.id);continue}n.turnId!==void 0&&n.turnId!==null&&t.has(n.turnId)&&r.add(n.id)}let i=e.filter(e=>e.role===`user`&&r.has(e.id)).length,a=Math.max(0,n-i);if(a>0){let n=e.filter(e=>e.role===`user`&&!r.has(e.id)&&(e.turnId===void 0||e.turnId===null||t.has(e.turnId))).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(0,a);for(let e of n)r.add(e.id)}let o=e.filter(e=>e.role===`assistant`&&r.has(e.id)).length,s=Math.max(0,n-o);if(s>0){let n=e.filter(e=>e.role===`assistant`&&!r.has(e.id)&&(e.turnId===void 0||e.turnId===null||t.has(e.turnId))).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(0,s);for(let e of n)r.add(e.id)}return e.filter(e=>r.has(e.id))}function zy(e,t){return e.filter(e=>e.turnId===null||t.has(e.turnId))}function By(e,t){return e.filter(e=>e.turnId===null||t.has(e.turnId))}function Vy(e){switch(e){case`starting`:return`connecting`;case`running`:return`running`;case`error`:return`error`;case`ready`:case`interrupted`:return`ready`;case`idle`:case`stopped`:return`closed`}}function Hy(e){return _(Xt)(e)?e:Xt.make(`codex`)}function Z(e,t,n){let r=Bv(e,t);if(!r)return e;let i=n(r);return i===r?e:Oy(e,i,r)}function Uy(e,t,n){let r=e.threadShellById[t];return!r||r.updatedAt===n?e:{...e,threadShellById:{...e.threadShellById,[t]:{...r,updatedAt:n}}}}function Wy(e,t,n){let r=e.threadShellById[t],i=e.sidebarThreadSummaryById[t];if(!r&&!i)return e;let a=!r||r.settledOverride===n.settledOverride&&r.settledAt===n.settledAt&&r.updatedAt===n.updatedAt,o=!i||i.settledOverride===n.settledOverride&&i.settledAt===n.settledAt&&i.updatedAt===n.updatedAt;return a&&o?e:{...e,...r?{threadShellById:{...e.threadShellById,[t]:{...r,...n}}}:{},...i?{sidebarThreadSummaryById:{...e.sidebarThreadSummaryById,[t]:{...i,...n}}}:{}}}function Gy(e,t){return{...e,text:t.streaming?`${e.text}${t.text}`:t.text.length>0?t.text:e.text,streaming:t.streaming,...t.turnId===void 0?{}:{turnId:t.turnId},...t.streaming?e.completedAt===void 0?{}:{completedAt:e.completedAt}:t.completedAt===void 0?{}:{completedAt:t.completedAt},...t.attachments===void 0?{}:{attachments:t.attachments}}}function Ky(e,t,n){let r=e.pendingMessagesByThreadId[t]??[],i=r.find(e=>e.id===n.id)?r.map(e=>e.id===n.id?Gy(e,n):e):[...r,n];return{...e,pendingMessagesByThreadId:{...e.pendingMessagesByThreadId,[t]:i}}}function qy(e,t,n,r){let i=e.turnDiffSummaryByThreadId[t],a=i?.[n];return!i||!a||a.assistantMessageId===r?e:{...e,turnDiffSummaryByThreadId:{...e.turnDiffSummaryByThreadId,[t]:{...i,[n]:{...a,assistantMessageId:r}}}}}function Jy(e,t,n){let r=$v(n,{id:t.payload.messageId,role:t.payload.role,text:t.payload.text,...t.payload.attachments===void 0?{}:{attachments:t.payload.attachments},...t.payload.dispatchMode===void 0?{}:{dispatchMode:t.payload.dispatchMode},turnId:t.payload.turnId,streaming:t.payload.streaming,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt}),i=t.payload.threadId;if(!e.threadShellById[i])return Ky(e,i,r);let a=e.messageIdsByThreadId[i]??qv,o=e.messageByThreadId[i]??{},s=e.pendingMessagesByThreadId[i]??[],c=s.find(e=>e.id===r.id),l=o[r.id]??c,u=l?Gy(l,r):r,d=a,f={...o,[r.id]:u},p=e.pendingMessagesByThreadId;if(!o[r.id]&&!a.includes(r.id)&&(d=[...a,r.id],d.length>Uv)){let e=d.slice(-2e3),t=new Set(e);f=Object.fromEntries(Object.entries(f).filter(([e])=>t.has(e))),d=e}if(c){let t=s.filter(e=>e.id!==r.id);if(t.length===0){let{[i]:t,...n}=e.pendingMessagesByThreadId;p=n}else p={...e.pendingMessagesByThreadId,[i]:t}}let m={...e,pendingMessagesByThreadId:p,messageIdsByThreadId:d===a?e.messageIdsByThreadId:{...e.messageIdsByThreadId,[i]:d},messageByThreadId:{...e.messageByThreadId,[i]:f}};if(t.payload.role===`assistant`&&t.payload.turnId!==null){m=qy(m,i,t.payload.turnId,t.payload.messageId);let e=m.threadTurnStateById[i],n=e?.latestTurn??null;if(n===null||n.turnId===t.payload.turnId){let r={latestTurn:Ly({previous:n,turnId:t.payload.turnId,state:t.payload.streaming?`running`:n?.state===`interrupted`?`interrupted`:n?.state===`error`?`error`:`completed`,requestedAt:n?.turnId===t.payload.turnId?n.requestedAt:t.payload.createdAt,startedAt:n?.turnId===t.payload.turnId?n.startedAt??t.payload.createdAt:t.payload.createdAt,sourceProposedPlan:e?.pendingSourceProposedPlan,completedAt:t.payload.streaming?n?.turnId===t.payload.turnId?n.completedAt??null:null:t.payload.updatedAt,assistantMessageId:t.payload.messageId}),...e?.pendingSourceProposedPlan?{pendingSourceProposedPlan:e.pendingSourceProposedPlan}:{}};_y(e,r)||(m={...m,threadTurnStateById:{...m.threadTurnStateById,[i]:r}})}}return Uy(m,i,t.occurredAt)}function Yy(e,t,n){let r=e.length>0?t[e[e.length-1]]:void 0;if(!r||Iy(r,n)<=0)return[...e,n.id];let i=[...e],a=i.findIndex(e=>{let r=t[e];return r?Iy(n,r)<0:!1});return a===-1?i.push(n.id):i.splice(a,0,n.id),i}function Xy(e,t){let n=t.payload.threadId;if(!e.threadShellById[n])return e;let r={...t.payload.activity},i=e.activityIdsByThreadId[n]??Jv,a=e.activityByThreadId[n]??{},o=a[r.id],s=o!==void 0&&(o.createdAt!==r.createdAt||o.sequence!==r.sequence),c=i,l={...a,[r.id]:r};if(o?s&&(c=Yy(i.filter(e=>e!==r.id),l,r)):c=Yy(i,a,r),c.length>Wv){let e=Sy(wv(c.flatMap(e=>{let t=l[e];return t?[t]:[]}),Wv));c=e.ids,l=e.byId}return Uy({...e,activityIdsByThreadId:c===i?e.activityIdsByThreadId:{...e.activityIdsByThreadId,[n]:c},activityByThreadId:{...e.activityByThreadId,[n]:l}},n,t.occurredAt)}function Zy(e){return{projectIds:e.map(e=>e.id),projectById:Object.fromEntries(e.map(e=>[e.id,e]))}}function Qy(e){let t={};for(let n of e)t[n.projectId]=[...t[n.projectId]??[],n.id];return{worktreeIds:e.map(e=>e.id),worktreeIdsByProjectId:t,worktreeById:Object.fromEntries(e.map(e=>[e.id,e]))}}function $y(e,t){return e.environmentStateById[t]??Vv}function eb(e,t,n){let r=e.environmentStateById[t]===n?e.environmentStateById:{...e.environmentStateById,[t]:n};return r===e.environmentStateById?e:{...e,environmentStateById:r}}function tb(e,t,n){let r=t.projects.map(e=>ry(e,n)),i=(t.worktrees??[]).map(e=>iy(e,n)),a=new Set(t.threads.map(e=>e.id)),o={...e,...Zy(r),...Qy(i),threadIds:[],threadIdsByProjectId:{},threadShellById:{},threadSessionById:{},threadTurnStateById:{},sidebarThreadSummaryById:{},messageIdsByThreadId:Ay(e.messageIdsByThreadId,a),messageByThreadId:Ay(e.messageByThreadId,a),pendingMessagesByThreadId:Ay(e.pendingMessagesByThreadId,a),activityIdsByThreadId:Ay(e.activityIdsByThreadId,a),activityByThreadId:Ay(e.activityByThreadId,a),proposedPlanIdsByThreadId:Ay(e.proposedPlanIdsByThreadId,a),proposedPlanByThreadId:Ay(e.proposedPlanByThreadId,a),turnDiffIdsByThreadId:Ay(e.turnDiffIdsByThreadId,a),turnDiffSummaryByThreadId:Ay(e.turnDiffSummaryByThreadId,a),threadHistoryByThreadId:Ay(e.threadHistoryByThreadId??{},a),threadHistoryLoadByThreadId:Ay(e.threadHistoryLoadByThreadId??{},a),bootstrapComplete:!0,hydratedFromCacheAt:void 0};for(let e of t.threads)o=ky(o,oy(e,n));return o}function nb(e,t,n){return eb(e,n,tb($y(e,n),t,n))}function rb(e,t,n){let r=$y(e,n),i=Bv(r,t.id);return eb(e,n,Oy(r,ay(t,n),i))}var ib={oldestCursor:null,newestCursor:null,hasMoreBefore:!1};function ab(e,t){let n=e?.[t.collection];return{messages:e?.messages??ib,proposedPlans:e?.proposedPlans??ib,activities:e?.activities??ib,checkpoints:e?.checkpoints??ib,[t.collection]:{oldestCursor:t.page.oldestCursor??n?.oldestCursor??null,newestCursor:n?.newestCursor??t.page.newestCursor,hasMoreBefore:t.page.hasMoreBefore}}}function ob(e,t,n,r){let i=e;if(t.collection===`messages`){let a={...e.messageByThreadId[n]};for(let e of t.items)a[e.id]=$v(r,e);let o=Object.values(a).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(-2e3).map(e=>e.id),s=new Set(o);i={...i,messageIdsByThreadId:{...i.messageIdsByThreadId,[n]:o},messageByThreadId:{...i.messageByThreadId,[n]:Object.fromEntries(Object.entries(a).filter(([e])=>s.has(e)))}}}else if(t.collection===`activities`){let r={...e.activityByThreadId[n]};for(let e of t.items)r[e.id]={...e};let a=Sy(wv(Object.values(r).toSorted(Iy),Wv));i={...i,activityIdsByThreadId:{...i.activityIdsByThreadId,[n]:a.ids},activityByThreadId:{...i.activityByThreadId,[n]:a.byId}}}else if(t.collection===`proposedPlans`){let r={...e.proposedPlanByThreadId[n]};for(let e of t.items)r[e.id]=ey(e);let a=Object.values(r).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(-200);i={...i,proposedPlanIdsByThreadId:{...i.proposedPlanIdsByThreadId,[n]:a.map(e=>e.id)},proposedPlanByThreadId:{...i.proposedPlanByThreadId,[n]:Object.fromEntries(a.map(e=>[e.id,e]))}}}else{let r={...e.turnDiffSummaryByThreadId[n]};for(let e of t.items)r[e.turnId]=ty(e);let a=Object.values(r).toSorted((e,t)=>(e.checkpointTurnCount??-1)-(t.checkpointTurnCount??-1)||e.turnId.localeCompare(t.turnId)).slice(-500);i={...i,turnDiffIdsByThreadId:{...i.turnDiffIdsByThreadId,[n]:a.map(e=>e.turnId)},turnDiffSummaryByThreadId:{...i.turnDiffSummaryByThreadId,[n]:Object.fromEntries(a.map(e=>[e.turnId,e]))}}}return{...i,threadHistoryByThreadId:{...i.threadHistoryByThreadId,[n]:ab(e.threadHistoryByThreadId?.[n],t)}}}function sb(e,t,n){let r=rb(e,t.thread,n),i=$y(r,n),{[t.thread.id]:a,...o}=i.threadHistoryLoadByThreadId??{};return eb(r,n,{...i,threadHistoryByThreadId:{...i.threadHistoryByThreadId,[t.thread.id]:t.history},threadHistoryLoadByThreadId:o})}function cb(e,t,n,r){return eb(e,r,ob($y(e,r),t,n,r))}function lb(e,t){let n=$y(e,t.environmentId);return eb(e,t.environmentId,{...n,threadHistoryLoadByThreadId:{...n.threadHistoryLoadByThreadId,[t.threadId]:{...n.threadHistoryLoadByThreadId?.[t.threadId],[t.collection]:t.loadState}}})}function ub(e,t,n){switch(t.type){case`project.created`:{let r=ry({id:t.payload.projectId,title:t.payload.title,workspaceRoot:t.payload.workspaceRoot,projectMetadataDir:t.payload.projectMetadataDir,repositoryIdentity:t.payload.repositoryIdentity??null,defaultModelSelection:t.payload.defaultModelSelection,scripts:t.payload.scripts,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt,deletedAt:null},n),i=e.projectIds.find(n=>n===t.payload.projectId||e.projectById[n]?.cwd===t.payload.workspaceRoot)??null,a=e.projectById,o=e.projectIds;if(i!==null&&i!==r.id){let{[i]:t,...n}=e.projectById;a={...n,[r.id]:r},o=e.projectIds.map(e=>e===i?r.id:e)}else a={...e.projectById,[r.id]:r},o=i===null&&!e.projectIds.includes(r.id)?[...e.projectIds,r.id]:e.projectIds;return{...e,projectById:a,projectIds:o}}case`project.meta-updated`:{let n=e.projectById[t.payload.projectId];if(!n)return e;let r={...n,...t.payload.title===void 0?{}:{name:t.payload.title},...t.payload.workspaceRoot===void 0?{}:{cwd:t.payload.workspaceRoot},...t.payload.projectMetadataDir===void 0?{}:{projectMetadataDir:t.payload.projectMetadataDir},...t.payload.repositoryIdentity===void 0?{}:{repositoryIdentity:t.payload.repositoryIdentity??null},...t.payload.defaultModelSelection===void 0?{}:{defaultModelSelection:t.payload.defaultModelSelection?Xv(t.payload.defaultModelSelection):null},...t.payload.scripts===void 0?{}:{scripts:Zv(t.payload.scripts)},...t.payload.preferredRemoteName===void 0?{}:{preferredRemoteName:t.payload.preferredRemoteName??null},updatedAt:t.payload.updatedAt};return{...e,projectById:{...e.projectById,[t.payload.projectId]:r}}}case`project.avatar-set`:{let n=e.projectById[t.payload.projectId];return n?{...e,projectById:{...e.projectById,[t.payload.projectId]:{...n,customAvatarContentHash:t.payload.contentHash??null,updatedAt:t.payload.updatedAt}}}:e}case`project.deleted`:{if(!e.projectById[t.payload.projectId])return e;let{[t.payload.projectId]:n,...r}=e.projectById;return{...e,projectById:r,projectIds:yy(e.projectIds,t.payload.projectId)}}case`thread.created`:{let r=Bv(e,t.payload.threadId);return Oy(e,ay({id:t.payload.threadId,projectId:t.payload.projectId,title:t.payload.title,modelSelection:t.payload.modelSelection,runtimeMode:t.payload.runtimeMode,interactionMode:t.payload.interactionMode,tokenMode:t.payload.tokenMode??`balanced`,branch:t.payload.branch,worktreePath:t.payload.worktreePath,worktreeId:null,manualStatusBucket:null,manualPosition:0,latestTurn:null,goal:null,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt,archivedAt:null,settledOverride:null,settledAt:null,deletedAt:null,messages:[],proposedPlans:[],activities:[],checkpoints:[],session:null},n),r)}case`thread.deleted`:return jy(e,t.payload.threadId);case`thread.archived`:return Z(e,t.payload.threadId,e=>({...e,archivedAt:t.payload.archivedAt,updatedAt:t.payload.updatedAt}));case`thread.unarchived`:return Z(e,t.payload.threadId,e=>({...e,archivedAt:null,updatedAt:t.payload.updatedAt}));case`thread.settled`:return Wy(e,t.payload.threadId,{settledOverride:`settled`,settledAt:t.payload.settledAt,updatedAt:t.payload.updatedAt});case`thread.unsettled`:return Wy(e,t.payload.threadId,{settledOverride:t.payload.reason===`user`?`active`:null,settledAt:null,updatedAt:t.payload.updatedAt});case`thread.meta-updated`:return Z(e,t.payload.threadId,e=>({...e,...t.payload.title===void 0?{}:{title:t.payload.title},...t.payload.modelSelection===void 0?{}:{modelSelection:Xv(t.payload.modelSelection)},...t.payload.branch===void 0?{}:{branch:t.payload.branch},...t.payload.worktreePath===void 0?{}:{worktreePath:t.payload.worktreePath},updatedAt:t.payload.updatedAt}));case`thread.runtime-mode-set`:return Z(e,t.payload.threadId,e=>({...e,runtimeMode:t.payload.runtimeMode,updatedAt:t.payload.updatedAt}));case`thread.interaction-mode-set`:return Z(e,t.payload.threadId,e=>({...e,interactionMode:t.payload.interactionMode,updatedAt:t.payload.updatedAt}));case`thread.token-mode-set`:return Z(e,t.payload.threadId,e=>({...e,tokenMode:t.payload.tokenMode??`balanced`,updatedAt:t.payload.updatedAt}));case`thread.goal-updated`:return Z(e,t.payload.threadId,e=>({...e,goal:t.payload.goal,updatedAt:t.payload.goal.updatedAt}));case`thread.goal-cleared`:return Z(e,t.payload.threadId,e=>({...e,goal:null,updatedAt:t.payload.updatedAt}));case`thread.turn-start-requested`:return Z(e,t.payload.threadId,e=>({...e,...t.payload.modelSelection===void 0?{}:{modelSelection:Xv(t.payload.modelSelection)},runtimeMode:t.payload.runtimeMode,interactionMode:t.payload.interactionMode,tokenMode:t.payload.tokenMode,pendingSourceProposedPlan:t.payload.sourceProposedPlan,updatedAt:t.occurredAt}));case`thread.turn-interrupt-requested`:return t.payload.turnId===void 0?e:Z(e,t.payload.threadId,e=>{let n=e.latestTurn;return n===null||n.turnId!==t.payload.turnId?e:{...e,latestTurn:Ly({previous:n,turnId:t.payload.turnId,state:`interrupted`,requestedAt:n.requestedAt,startedAt:n.startedAt??t.payload.createdAt,completedAt:n.completedAt??t.payload.createdAt,assistantMessageId:n.assistantMessageId}),updatedAt:t.occurredAt}});case`thread.message-sent`:return Jy(e,t,n);case`thread.session-set`:return Z(e,t.payload.threadId,e=>({...e,session:Qv(t.payload.session),error:wr(t.payload.session.lastError),latestTurn:t.payload.session.status===`running`&&t.payload.session.activeTurnId!==null?Ly({previous:e.latestTurn,turnId:t.payload.session.activeTurnId,state:`running`,requestedAt:e.latestTurn?.turnId===t.payload.session.activeTurnId?e.latestTurn.requestedAt:t.payload.session.updatedAt,startedAt:e.latestTurn?.turnId===t.payload.session.activeTurnId?e.latestTurn.startedAt??t.payload.session.updatedAt:t.payload.session.updatedAt,completedAt:null,assistantMessageId:e.latestTurn?.turnId===t.payload.session.activeTurnId?e.latestTurn.assistantMessageId:null,sourceProposedPlan:e.pendingSourceProposedPlan}):e.latestTurn,updatedAt:t.occurredAt}));case`thread.session-stop-requested`:return Z(e,t.payload.threadId,e=>e.session===null?e:{...e,session:{...e.session,status:`closed`,orchestrationStatus:`stopped`,activeTurnId:void 0,updatedAt:t.payload.createdAt},updatedAt:t.occurredAt});case`thread.proposed-plan-upserted`:return Z(e,t.payload.threadId,e=>{let n=ey(t.payload.proposedPlan),r=[...e.proposedPlans.filter(e=>e.id!==n.id),n].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(-200);return{...e,proposedPlans:r,updatedAt:t.occurredAt}});case`thread.turn-diff-completed`:return Z(e,t.payload.threadId,e=>{let n=ty({turnId:t.payload.turnId,checkpointTurnCount:t.payload.checkpointTurnCount,checkpointRef:t.payload.checkpointRef,status:t.payload.status,files:t.payload.files,assistantMessageId:t.payload.assistantMessageId,completedAt:t.payload.completedAt}),r=e.turnDiffSummaries.find(e=>e.turnId===n.turnId);if(r&&r.status!==`missing`&&n.status===`missing`)return e;let i=[...e.turnDiffSummaries.filter(e=>e.turnId!==n.turnId),n].toSorted((e,t)=>(e.checkpointTurnCount??2**53-1)-(t.checkpointTurnCount??2**53-1)).slice(-500),a=e.latestTurn===null||e.latestTurn.turnId===t.payload.turnId?Ly({previous:e.latestTurn,turnId:t.payload.turnId,state:Fy(t.payload.status),requestedAt:e.latestTurn?.requestedAt??t.payload.completedAt,startedAt:e.latestTurn?.startedAt??t.payload.completedAt,completedAt:t.payload.completedAt,assistantMessageId:t.payload.assistantMessageId,sourceProposedPlan:e.pendingSourceProposedPlan}):e.latestTurn;return{...e,turnDiffSummaries:i,latestTurn:a,updatedAt:t.occurredAt}});case`thread.reverted`:return Z(e,t.payload.threadId,e=>{let n=e.turnDiffSummaries.filter(e=>e.checkpointTurnCount!==void 0&&e.checkpointTurnCount<=t.payload.turnCount).toSorted((e,t)=>(e.checkpointTurnCount??2**53-1)-(t.checkpointTurnCount??2**53-1)).slice(-500),r=new Set(n.map(e=>e.turnId)),i=Ry(e.messages,r,t.payload.turnCount).slice(-2e3),a=By(e.proposedPlans,r).slice(-200),o=zy(e.activities,r),s=n.at(-1)??null;return{...e,turnDiffSummaries:n,messages:i,proposedPlans:a,activities:o,pendingSourceProposedPlan:void 0,latestTurn:s===null?null:{turnId:s.turnId,state:Fy(s.status??`ready`),requestedAt:s.completedAt,startedAt:s.completedAt,completedAt:s.completedAt,assistantMessageId:s.assistantMessageId??null},updatedAt:t.occurredAt}});case`thread.activity-appended`:return Xy(e,t);case`worktree.created`:return Ny(e,iy({worktreeId:t.payload.worktreeId,projectId:t.payload.projectId,title:null,branch:t.payload.branch,worktreePath:t.payload.worktreePath,origin:t.payload.origin,prNumber:t.payload.prNumber,issueNumber:t.payload.issueNumber,prTitle:t.payload.prTitle,issueTitle:t.payload.issueTitle,prState:null,prIsDraft:null,issueState:null,workItemProvider:t.payload.workItemProvider??null,workItemKey:t.payload.workItemKey??null,workItemTitle:t.payload.workItemTitle??null,workItemState:t.payload.workItemState??null,workItemStateName:t.payload.workItemStateName??null,workItemUrl:t.payload.workItemUrl??null,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt,archivedAt:null,manualPosition:0},n));case`worktree.archived`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Ny(e,{...n,archivedAt:t.payload.archivedAt,updatedAt:t.payload.archivedAt}):e}case`worktree.metaUpdated`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Ny(e,{...n,...t.payload.title===void 0?{}:{title:t.payload.title},...t.payload.branch===void 0?{}:{branch:t.payload.branch},updatedAt:t.payload.changedAt}):e}case`worktree.sourceControlStateUpdated`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Ny(e,{...n,...t.payload.prNumber===void 0?{}:{prNumber:t.payload.prNumber},...t.payload.prTitle===void 0?{}:{prTitle:t.payload.prTitle},prState:t.payload.prState,prIsDraft:t.payload.prIsDraft,issueState:t.payload.issueState,updatedAt:t.payload.updatedAt}):e}case`worktree.restored`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Ny(e,{...n,archivedAt:null,updatedAt:t.payload.restoredAt}):e}case`worktree.deleted`:return Py(e,t.payload.worktreeId);case`thread.attachedToWorktree`:return Z(e,t.payload.threadId,e=>({...e,worktreeId:t.payload.worktreeId,updatedAt:t.payload.attachedAt}));case`thread.statusBucketOverridden`:return Z(e,t.payload.threadId,e=>({...e,manualStatusBucket:t.payload.bucket,updatedAt:t.payload.changedAt}));case`thread.approval-response-requested`:case`thread.user-input-response-requested`:return e}return e}function db(e,t,n){switch(t.kind){case`project-upserted`:{let r=ry(t.project,n),i=e.projectIds.find(n=>n===t.project.id||e.projectById[n]?.cwd===t.project.workspaceRoot)??null,a=e.projectById,o=e.projectIds;if(i!==null&&i!==r.id){let{[i]:t,...n}=e.projectById;a={...n,[r.id]:r},o=e.projectIds.map(e=>e===i?r.id:e)}else a={...e.projectById,[r.id]:r},o=i===null&&!e.projectIds.includes(r.id)?[...e.projectIds,r.id]:e.projectIds;return{...e,projectById:a,projectIds:o}}case`project-removed`:{if(!e.projectById[t.projectId])return e;let{[t.projectId]:n,...r}=e.projectById;return{...e,projectById:r,projectIds:yy(e.projectIds,t.projectId)}}case`thread-upserted`:return ky(e,oy(t.thread,n));case`worktree-upserted`:return Ny(e,iy(t.worktree,n));case`thread-removed`:return jy(e,t.threadId);case`worktree-removed`:return Py(e,t.worktreeId)}}function fb(e,t,n){if(t.length===0)return e;let r=vv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=$y(e,n),s=eb(e,n,t.reduce((e,t)=>ub(e,t,n),o));return i&&r.observability.recordPerformance(`web.store.orchestration.events.apply`,t,{count:t.length,durationMs:r.clock.now()-a}),s}function pb(e){return Object.entries(e.environmentStateById)}function mb(e,t){return t?$y(e,t):Vv}function hb(e,t){return Ey(mb(e,t))}function gb(e){return pb(e).flatMap(([,e])=>Ty(e))}function _b(e){return pb(e).flatMap(([,e])=>Ey(e))}function vb(e){return pb(e).flatMap(([,e])=>e.threadIds.flatMap(t=>{let n=e.threadShellById[t];return n?[n]:[]}))}function yb(e){return pb(e).flatMap(([e,t])=>t.threadIds.flatMap(n=>{let r=t.sidebarThreadSummaryById[n];return r&&r.environmentId===e?[r]:[]}))}function bb(e){return pb(e).flatMap(([e,t])=>(t.worktreeIds??Kv).flatMap(n=>{let r=t.worktreeById?.[n];return r&&r.environmentId===e?[r]:[]}))}function xb(e,t){if(!t)return[];let n=mb(e,t.environmentId);return(n.worktreeIdsByProjectId?.[t.projectId]??[]).flatMap(e=>{let t=n.worktreeById?.[e];return t?[t]:[]})}function Sb(e,t){return t.length===0?[]:t.length===1?xb(e,t[0]):t.flatMap(t=>xb(e,t))}function Cb(e,t){if(!t)return[];let n=mb(e,t.environmentId);return(n.threadIdsByProjectId[t.projectId]??Gv).flatMap(e=>{let t=n.sidebarThreadSummaryById[e];return t?[t]:[]})}function wb(e,t){return t.length===0?[]:t.length===1?Cb(e,t[0]):t.flatMap(t=>Cb(e,t))}function Tb(e,t){return t?mb(e,t.environmentId).projectById[t.projectId]:void 0}function Eb(e,t){return t?Bv(mb(e,t.environmentId),t.threadId):void 0}function Db(e,t){return t?mb(e,t.environmentId).threadShellById[t.threadId]!==void 0:!1}function Ob(e,t){return t?mb(e,t.environmentId).sidebarThreadSummaryById[t.threadId]:void 0}function kb(e,t,n){let r=Z($y(e,t.environmentId),t.threadId,e=>e.error===n?e:{...e,error:n});return eb(e,t.environmentId,r)}function Ab(e,t,n){let r=vv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=eb(e,n,ub($y(e,n),t,n));return i&&r.observability.recordPerformance(`web.store.orchestration.event.apply`,t,{durationMs:r.clock.now()-a}),o}function jb(e,t,n){let r=vv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=eb(e,n,db($y(e,n),t,n));return i&&r.observability.recordPerformance(`web.store.orchestration.shell.apply`,t,{durationMs:r.clock.now()-a}),o}function Mb(e,t){return e.activeEnvironmentId===t?e:{...e,activeEnvironmentId:t}}function Nb(e,t){if(!e.environmentStateById[t]&&e.activeEnvironmentId!==t)return e;let{[t]:n,...r}=e.environmentStateById;return{...e,activeEnvironmentId:e.activeEnvironmentId===t?null:e.activeEnvironmentId,environmentStateById:r}}function Pb(e,t,n){if(e.environmentStateById[n])return e;let r={...Vv,...Zy(t.projects.filter(e=>e.environmentId===n)),...Qy(t.worktrees.filter(e=>e.environmentId===n)),hydratedFromCacheAt:t.capturedAt};for(let e of t.threads)e.shell.environmentId===n&&e.summary.environmentId===n&&(r=ky(r,{shell:e.shell,session:null,turnState:{latestTurn:e.summary.latestTurn,pendingSourceProposedPlan:e.summary.latestTurn?.sourceProposedPlan},summary:{...e.summary,modelSelection:e.summary.modelSelection??e.shell.modelSelection,session:null,backgroundLiveness:null}}));return eb(e,n,r)}function Fb(e,t,n){let r=e.environmentStateById[t];if(!r)return e;let i=Object.fromEntries(Object.keys(r.threadSessionById).map(e=>[e,null])),a=Object.fromEntries(Object.entries(r.sidebarThreadSummaryById).map(([e,t])=>[e,{...t,session:null,backgroundLiveness:null}]));return eb(e,t,{...r,threadSessionById:i,sidebarThreadSummaryById:a,bootstrapComplete:!1,hydratedFromCacheAt:n})}function Ib(e,t,n,r){let i=Z($y(e,t.environmentId),t.threadId,e=>{if(e.branch===n&&e.worktreePath===r)return e;let t=e.worktreePath!==r;return{...e,branch:n,worktreePath:r,...t?{session:null}:{}}});return eb(e,t.environmentId,i)}function Lb(e,t,n,r,i){let a=$y(e,t),o=a.worktreeById?.[n];return o?eb(e,t,Ny(a,{...o,title:r,updatedAt:i})):e}var Rb=8;function zb(e){let t=e.now??(()=>vv().clock.now()),n=e.schedule??(e=>vv().frameScheduler.scheduleFrame(e)),r=e.thresholdEventsPerMs??10,i=e.rateWindowMs??Rb,a=[],o=[],s=!1;function c(){if(o.length<2)return!1;let e=o[o.length-1]-o[0];return(e<=0?1/0:o.length/e)>r}function l(){if(s=!1,a.length===0)return;let t=a;a=[];let n=e.getState();for(let e of t)n=jb(n,e.event,e.environmentId);e.commitState(n)}function u(e,r){let u=t();o.push(u);let d=u-i;for(;o.length>0&&o[0]<d;)o.shift();if(a.push({event:e,environmentId:r}),c()){s||(s=!0,n(l));return}l()}return{enqueue:u,flush:l,hasPending:()=>a.length>0}}var Q=c((e,t)=>{let n=zb({getState:t,commitState:t=>e(t)});return{...Hv,setActiveEnvironmentId:t=>{n.flush(),e(e=>Mb(e,t))},removeEnvironmentState:t=>{n.flush(),e(e=>Nb(e,t))},hydrateEnvironmentStateFromCache:(t,r)=>{n.flush(),e(e=>Pb(e,t,r))},demoteEnvironmentStateToCachedSnapshot:(t,r)=>{n.flush(),e(e=>Fb(e,t,r))},syncServerShellSnapshot:(t,r)=>{n.flush(),e(e=>nb(e,t,r))},syncServerThreadDetail:(t,r)=>{n.flush(),e(e=>rb(e,t,r))},syncServerThreadWindow:(t,r)=>{n.flush(),e(e=>sb(e,t,r))},syncServerThreadHistoryPage:(t,r,i)=>{n.flush(),e(e=>cb(e,t,r,i))},setServerThreadHistoryLoadState:t=>{n.flush(),e(e=>lb(e,t))},applyOrchestrationEvent:(t,r)=>{n.flush(),e(e=>Ab(e,t,r))},applyOrchestrationEvents:(t,r)=>{n.flush(),e(e=>fb(e,t,r))},applyShellEvent:(e,t)=>n.enqueue(e,t),removeThread:t=>{n.flush(),e(e=>My(e,t))},setThreadError:(t,r)=>{n.flush(),e(e=>kb(e,t,r))},setThreadBranch:(t,r,i)=>{n.flush(),e(e=>Ib(e,t,r,i))},setSidebarWorktreeTitle:(t,r,i,a)=>{n.flush(),e(e=>Lb(e,t,r,i,a))}}});function Bb(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Vb(e){if(e.latestUserMessageAt)return Bb(e.latestUserMessageAt)??-1/0;let t=null;for(let n of e.messages??[]){if(n.role!==`user`)continue;let e=Bb(n.createdAt);e!==null&&(t=t===null?e:Math.max(t,e))}return t===null?Bb(e.updatedAt??e.createdAt)??-1/0:t}function Hb(e,t){return t===`created_at`?Bb(e.createdAt)??-1/0:Vb(e)}function Ub(e,t){return e.toSorted((e,n)=>{let r=Hb(n,t),i=Hb(e,t),a=r===i?0:r>i?1:-1;return a===0?n.id.localeCompare(e.id):a})}function Wb(e,t,n){return Ub(e.filter(e=>e.projectId===t&&e.archivedAt===null),n)[0]??null}function Gb(e){return t=>e?mb(t,e.environmentId).projectById[e.projectId]:void 0}function Kb(e){let t,n,r;return i=>{let a=e(i);if(!a)return;let o=mb(i,a.environmentId);return r&&t===o&&n===a.threadId?r:(t=o,n=a.threadId,r=Bv(o,a.threadId),r)}}function qb(e){return Kb(()=>e)}function Jb(e){return Kb(t=>{if(e){for(let[n,r]of Object.entries(t.environmentStateById))if(r.threadShellById[e])return{environmentId:n,threadId:e}}})}var Yb=(e,t,n)=>t||(n?{id:e,createdAt:n.createdAt,updatedAt:n.updatedAt,latestUserMessageAt:null}:null);function Xb(e,t){let n,r,i,a,o,s=null;return c=>{if(!e)return n=void 0,r=void 0,i=void 0,o=null,s=null,null;let l=mb(c,e);if(n===l.threadIds&&r===l.sidebarThreadSummaryById&&i===l.threadShellById&&a===t)return s;let u=Ub(l.threadIds.flatMap(e=>{let t=Yb(e,l.sidebarThreadSummaryById[e],l.threadShellById[e]);return t?[t]:[]}),t)[0]?.id??null;return n=l.threadIds,r=l.sidebarThreadSummaryById,i=l.threadShellById,a=t,o!==u&&(o=u,s=u?{environmentId:e,threadId:u}:null),s}}gv(()=>{_v({clock:{now:()=>Hu.now()},frameScheduler:{scheduleFrame:e=>Uu.scheduleFrame(e)},observability:kd,isHostedHubMode:()=>l(),resolveAttachmentPreviewUrl:({environmentId:e,attachmentId:t})=>jg({environmentId:e,pathname:`/attachments/${encodeURIComponent(t)}`})})});function Zb(e){switch(e.type){case`activity`:return e.hasRunningSubprocess;case`started`:case`restarted`:case`exited`:return!1;default:return null}}function Qb(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}var $b={enabled:()=>!1,now:()=>0,record:()=>void 0};function ex(){let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,n)=>{e.set(t,n)},removeItem:t=>{e.delete(t)}}}var tx=`ryco:terminal-state:v1`,nx=[],rx=200;function ix(e,t){return t===1&&e&&typeof e==`object`?{terminalStateByThreadKey:Object.fromEntries(Object.entries(e.terminalStateByThreadKey??{}).filter(([e])=>s(e)))}:{terminalStateByThreadKey:{}}}function ax(e){let t=[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))];return t.length>0?t:[vi]}function ox(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 sx(e){return`group-${e}`}function cx(e,t){let n=e,r=2;for(;t.has(n);)n=`${e}-${r}`,r+=1;return t.add(n),n}function lx(e,t){return e.findIndex(e=>e.terminalIds.includes(t))}function ux(e){return[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))]}function dx(e,t){let n=new Set(t),r=new Set,i=[],a=new Set;for(let t of e){let e=ux(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():sx(e[0]??`default`);i.push({id:cx(o,a),terminalIds:e})}for(let e of t)r.has(e)||i.push({id:cx(sx(e),a),terminalIds:[e]});return i.length===0?[{id:sx(vi),terminalIds:[vi]}]:i}function fx(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 px(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||!fx(r.terminalIds,i.terminalIds))return!1}return!0}function mx(e,t){return e.terminalOpen===t.terminalOpen&&e.terminalHeight===t.terminalHeight&&e.activeTerminalId===t.activeTerminalId&&e.activeTerminalGroupId===t.activeTerminalGroupId&&fx(e.terminalIds,t.terminalIds)&&fx(e.runningTerminalIds,t.runningTerminalIds)&&px(e.terminalGroups,t.terminalGroups)}var hx=Object.freeze({terminalOpen:!1,terminalHeight:280,terminalIds:[vi],runningTerminalIds:[],activeTerminalId:vi,terminalGroups:[{id:sx(vi),terminalIds:[vi]}],activeTerminalGroupId:sx(vi)});function gx(){return{...hx,terminalIds:[...hx.terminalIds],runningTerminalIds:[...hx.runningTerminalIds],terminalGroups:Cx(hx.terminalGroups)}}function _x(){return hx}function vx(e){let t=ax(e.terminalIds),n=t.length>0?t:[vi],r=ox(e.runningTerminalIds,n),i=n.includes(e.activeTerminalId)?e.activeTerminalId:n[0]??`default`,a=dx(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??sx(`default`)};return mx(e,c)?e:c}function yx(e){return mx(vx(e),hx)}function bx(e){return e.trim().length>0}function xx(e){return p(e)}function Sx(e,t){return`${xx(e)}\u0000${t}`}function Cx(e){return e.map(e=>({id:e.id,terminalIds:[...e.terminalIds]}))}function wx(e,t,n,r){let i=Sx(n,r.terminalId),a=e[i]??nx,o={id:t,event:r},s=a.length>=rx?[...a.slice(1),o]:[...a,o];return{terminalEventEntriesByKey:{...e,[i]:s},nextTerminalEventId:t+1}}function Tx(e){return{cwd:e.snapshot.cwd,worktreePath:e.snapshot.worktreePath}}function Ex(e,t,n){let r=vx(e);if(!bx(t))return r;let i=!r.terminalIds.includes(t),a=i?[...r.terminalIds,t]:r.terminalIds,o=Cx(r.terminalGroups),s=lx(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=cx(sx(t),e);return o.push({id:n,terminalIds:[t]}),vx({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:n})}let c=o.findIndex(e=>e.id===r.activeTerminalGroupId);if(c<0&&(c=lx(o,r.activeTerminalId)),c<0){let e=new Set(o.map(e=>e.id)),t=cx(sx(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 vx({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:l.id})}function Dx(e,t){let n=vx(e);return n.terminalOpen===t?n:{...n,terminalOpen:t}}function Ox(e,t){let n=vx(e);return!Number.isFinite(t)||t<=0||n.terminalHeight===t?n:{...n,terminalHeight:t}}function kx(e,t){return Ex(e,t,`split`)}function Ax(e,t){return Ex(e,t,`new`)}function jx(e,t){let n=vx(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 Mx(e,t){let n=vx(e);if(!n.terminalIds.includes(t))return n;let r=n.terminalIds.filter(e=>e!==t);if(r.length===0)return gx();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??sx(a);return vx({terminalOpen:n.terminalOpen,terminalHeight:n.terminalHeight,terminalIds:r,runningTerminalIds:n.runningTerminalIds.filter(e=>e!==t),activeTerminalId:a,terminalGroups:o,activeTerminalGroupId:s})}function Nx(e,t,n){let r=vx(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 Px(e,t){return!t||t.threadId.length===0?_x():e[xx(t)]??_x()}function Fx(e,t,n){if(t.threadId.length===0)return e;let r=xx(t),i=Px(e,t),a=n(i);if(a===i)return e;if(yx(a)){if(e[r]===void 0)return e;let{[r]:t,...n}=e;return n}return{...e,[r]:a}}function Ix(e,t,n){return!t||t.threadId.length===0||n.trim().length===0?nx:e[Sx(t,n)]??nx}function Lx(e){let t=e?.storage??ex(),n=e?.observability??$b;return c()(Ci(e=>{let t=(t,n)=>{e(e=>{let r=Fx(e.terminalStateByThreadKey,t,n);return r===e.terminalStateByThreadKey?e:{terminalStateByThreadKey:r}})};return{terminalStateByThreadKey:{},terminalLaunchContextByThreadKey:{},terminalEventEntriesByKey:{},nextTerminalEventId:1,setTerminalOpen:(e,n)=>t(e,e=>Dx(e,n)),setTerminalHeight:(e,n)=>t(e,e=>Ox(e,n)),splitTerminal:(e,n)=>t(e,e=>kx(e,n)),newTerminal:(e,n)=>t(e,e=>Ax(e,n)),ensureTerminal:(e,n,r)=>t(e,e=>{let t=e;return e.terminalIds.includes(n)||(t=Ax(t,n)),r?.active===!1&&(t={...t,activeTerminalId:e.activeTerminalId,activeTerminalGroupId:e.activeTerminalGroupId}),(r?.active??!0)&&(t=jx(t,n)),r?.open&&(t=Dx(t,!0)),vx(t)}),setActiveTerminal:(e,n)=>t(e,e=>jx(e,n)),closeTerminal:(e,n)=>t(e,e=>Mx(e,n)),setTerminalLaunchContext:(t,n)=>e(e=>({terminalLaunchContextByThreadKey:{...e.terminalLaunchContextByThreadKey,[xx(t)]:n}})),clearTerminalLaunchContext:t=>e(e=>{let n=xx(t);if(!e.terminalLaunchContextByThreadKey[n])return e;let{[n]:r,...i}=e.terminalLaunchContextByThreadKey;return{terminalLaunchContextByThreadKey:i}}),setTerminalActivity:(e,n,r)=>t(e,e=>Nx(e,n,r)),recordTerminalEvent:(t,r)=>{let i=n.enabled(),a=i?n.now():0;e(e=>wx(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,r)),i&&n.record(`web.terminal.store.events.record`,r,n.now()-a)},applyTerminalEvent:(t,r)=>{let i=n.enabled(),a=i?n.now():0;e(e=>{let n=xx(t),i=e.terminalStateByThreadKey,a=e.terminalLaunchContextByThreadKey;(r.type===`started`||r.type===`restarted`)&&(i=Fx(i,t,e=>{let t=e;return e.terminalIds.includes(r.terminalId)||(t=Ax(t,r.terminalId)),t=jx(t,r.terminalId),t=Dx(t,!0),vx(t)}),a={...a,[n]:Tx(r)});let o=Zb(r);o!==null&&(i=Fx(i,t,e=>Nx(e,r.terminalId,o)));let s=wx(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,r);return{terminalStateByThreadKey:i,terminalLaunchContextByThreadKey:a,...s}}),i&&n.record(`web.terminal.store.events.apply`,r,n.now()-a)},clearTerminalState:t=>e(e=>{let n=xx(t),r=Fx(e.terminalStateByThreadKey,t,()=>gx()),i=e.terminalLaunchContextByThreadKey[n]!==void 0,{[n]:a,...o}=e.terminalLaunchContextByThreadKey,s={...e.terminalEventEntriesByKey},c=!1;for(let e of Object.keys(s))e.startsWith(`${n}\u0000`)&&(delete s[e],c=!0);return r===e.terminalStateByThreadKey&&!i&&!c?e:{terminalStateByThreadKey:r,terminalLaunchContextByThreadKey:o,terminalEventEntriesByKey:s}}),removeTerminalState:t=>e(e=>{let n=xx(t),r=e.terminalStateByThreadKey[n]!==void 0,i=e.terminalLaunchContextByThreadKey[n]!==void 0,a={...e.terminalEventEntriesByKey},o=!1;for(let e of Object.keys(a))e.startsWith(`${n}\u0000`)&&(delete a[e],o=!0);if(!r&&!i&&!o)return e;let s={...e.terminalStateByThreadKey};delete s[n];let c={...e.terminalLaunchContextByThreadKey};return delete c[n],{terminalStateByThreadKey:s,terminalLaunchContextByThreadKey:c,terminalEventEntriesByKey:a}}),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={...e.terminalEventEntriesByKey},a=!1;for(let e of Object.keys(i)){let[n]=e.split(`\0`);n&&!t.has(n)&&(delete i[e],a=!0)}if(n.length===0&&r.length===0&&!a)return e;let o={...e.terminalStateByThreadKey};for(let e of n)delete o[e];let s={...e.terminalLaunchContextByThreadKey};for(let e of r)delete s[e];return{terminalStateByThreadKey:o,terminalLaunchContextByThreadKey:s,terminalEventEntriesByKey:i}})}},{name:tx,version:2,storage:xi(()=>t),migrate:ix,partialize:e=>({terminalStateByThreadKey:e.terminalStateByThreadKey})}))}var Rx=_i(typeof window<`u`&&!l()?window.localStorage:void 0),zx=Lx({storage:{getItem:e=>Rx.getItem(e),setItem:(e,t)=>{Rx.setItem(e,t)},removeItem:e=>{Rx.removeItem(e)}},observability:{enabled:ji,now:Mi,record:(e,t,n)=>Ai(e,t,{durationMs:n})}}),Bx=class extends or{constructor(e,t){super(e,{observability:kd,socket:Eh},t)}},Vx=class extends cr{constructor(e,t){super(e,{observability:kd,socket:Eh},t)}},Hx=class extends Jr{constructor(e,t){super(e,{observability:kd,socket:Eh},t)}},Ux=`ryco:version-mismatch-dismissals:v1`,Wx=sn({keys:jt(It)});function Gx(e){let t=e?.trim();return t&&t.length>0?t:null}function Kx(e){let t=Gx(ki),n=Gx(e);return!t||!n||t===n?null:{clientVersion:t,serverVersion:n,hint:`Version mismatch. Try syncing the client and server to the same Ryco version.`}}function qx(e){return Kx(e?.environment.serverVersion)}function Jx(e,t){return`${e}:${t.clientVersion}:${t.serverVersion}`}function Yx(){try{return gi(`ryco:version-mismatch-dismissals:v1`,Wx)??{keys:[]}}catch{return{keys:[]}}}function Xx(e){try{wi(Ux,e,Wx)}catch{}}function Zx(e){return e?Yx().keys.includes(e):!1}function Qx(e){if(!e)return;let t=Yx();t.keys.includes(e)||Xx({keys:[...t.keys,e]})}function $x(e,t){let n=Gx(e);return n?t?`${n} Hint: ${t.hint}`:n:t?.hint??null}var eS=`ryco:startup:`;function tS(){return typeof performance<`u`&&typeof performance.mark==`function`}function nS(e){return`${eS}${e}`}function rS(e){if(tS())try{performance.mark(nS(e))}catch{}}function iS(e,t,n){if(!(!tS()||typeof performance.measure!=`function`))try{performance.measure(`${eS}${e}`,{start:nS(t),end:nS(n)})}catch{}}var aS=new Map,oS=new Map;function sS(e,t){let n=aS.get(e.hubOrigin);n===void 0&&t&&(n=new Map,aS.set(e.hubOrigin,n));let r=n?.get(e.accountId);return r===void 0&&t&&n!==void 0&&(r=new Set,n.set(e.accountId,r)),r}function cS(e,t){let n=oS.get(e.hubOrigin);n===void 0&&t&&(n=new Map,oS.set(e.hubOrigin,n));let r=n?.get(e.accountId);return r===void 0&&t&&n!==void 0&&(r=new Map,n.set(e.accountId,r)),r}function lS(e){sS(e,!0)?.add(e.nodeId)}function uS(e){return sS(e,!1)?.has(e.nodeId)??!1}function dS(e){return cS(e,!1)?.get(e.nodeId)}function fS(e,t){let n=cS(e,!0),r=n?.get(e.nodeId);(r===void 0||t>r)&&n?.set(e.nodeId,t)}function pS(){aS.clear(),oS.clear()}var mS=Object.freeze({status:`unavailable`,verificationCode:null}),hS=mS,gS=new Set,_S=[];function vS(e){if(e.status!==hS.status||e.verificationCode!==hS.verificationCode){hS=e;for(let e of gS)e()}}function yS(){return hS}function bS(e){return gS.add(e),()=>void gS.delete(e)}function xS(){_S=[..._S,`e2ee_policy_generation_regressed`].slice(-8);for(let e of gS)e()}function SS(){if(_S.length!==0){_S=[];for(let e of gS)e()}}function CS(){vS({status:`negotiating`,verificationCode:null})}function wS(e){vS({status:e===`e2ee`?`web-unsigned`:`legacy`,verificationCode:e===`e2ee`?hS.verificationCode:null})}function TS(e){hS.status!==`unavailable`&&hS.status!==`legacy`&&vS({status:hS.status,verificationCode:e})}function ES(){vS(mS)}var DS=[1];function OS(){let e=globalThis;return e.isSecureContext===!0&&typeof e.crypto?.getRandomValues==`function`}var kS=OS(),AS=null;function jS(){let e=globalThis.window?.location.origin;if(typeof e!=`string`||e.length===0)return null;let t=Xa.getState(),n=t.selectedNode;return t.accountStatus!==`authenticated`||t.account===null||n===null?null:{hubOrigin:e,accountId:t.account.id,nodeId:n.id}}function MS(e){let t=dS(e);return{hubOrigin:e.hubOrigin,selectionClass:uS(e)?`latched`:`legacy-eligible`,legacyPermitted:!0,pairingOnly:!1,localSuitePreference:DS,credentials:{tier:`web`},...t===void 0?{}:{acceptedPolicyGeneration:t},onStatement:t=>{if(t.kind===`invalid`&&t.reason===`policy_generation_regressed`){xS();return}if(!(`statement`in t))return;let n=dS(e);if(n!==void 0&&t.statement.policyGeneration<n)throw xS(),Error(`Web E2EE policy generation regressed.`);lS(e),fS(e,t.statement.policyGeneration)},onWebVerificationCode:TS}}function NS(e){return e.close(Kp()),{intercept:async()=>({kind:`rejected`}),submit:()=>!1,beginClose:async()=>`refused`,dispose:()=>void 0}}function PS(){if(!kS){wS(`legacy`);return}let e=jS();if(e===null)return NS;let t=MS(e);return e=>{let n={};AS=n,CS();let r=oh({host:{...e,lockMode:t=>{e.lockMode(t),wS(t)}},attempt:t});return{...r,dispose:e=>{r.dispose(e),AS===n&&(AS=null,ES())}}}}var FS;function IS(){if(FS!==void 0)return FS;let e=Xa.getState().accountStatus===`authenticated`,t=Xa.subscribe(()=>{let t=Xa.getState().accountStatus;if(t===`authenticated`){e=!0;return}!e||t!==`signed-out`&&t!==`session-expired`||(e=!1,pS(),SS(),ES())});return FS=()=>{FS=void 0,t()},FS}var LS=c(e=>({open:!1,openIntent:null,setOpen:t=>e({open:t,...t?{}:{openIntent:null}}),toggleOpen:()=>e(e=>({open:!e.open,...e.open?{openIntent:null}:{}})),openAddProject:()=>e(e=>({open:!0,openIntent:{kind:`add-project`,requestId:(e.openIntent?.requestId??0)+1}})),clearOpenIntent:()=>e({openIntent:null})}));function RS(e){return{type:`thread.turn.steer`,commandId:e.commandId,threadId:e.threadId,expectedTurnId:e.expectedTurnId,message:{messageId:e.messageId,role:`user`,text:e.text,attachments:[...e.attachments]},createdAt:e.createdAt,requestedAt:e.requestedAt}}function zS(e,t){return!e||!t?!1:e.instanceId===t.instanceId&&e.model===t.model&&JSON.stringify(e.options??null)===JSON.stringify(t.options??null)}function BS(e){return e.mutationReady?!e.turnRunning||e.activeTurnId===null||e.activeTurnId===void 0?{allowed:!1,reason:`Steering is available only while a turn is running.`}:e.supportsTurnSteering?zS(e.queuedModelSelection,e.activeModelSelection)?e.queuedRuntimeMode!==e.activeRuntimeMode||e.queuedInteractionMode!==e.activeInteractionMode||e.queuedTokenMode!==e.activeTokenMode?{allowed:!1,reason:`The queued runtime settings do not match the active turn.`}:{allowed:!0,expectedTurnId:e.activeTurnId}:{allowed:!1,reason:`The queued provider or model no longer matches the active turn.`}:{allowed:!1,reason:`This provider does not support active-turn steering.`}:{allowed:!1,reason:`Steering is unavailable until the connection is ready.`}}function VS(e,t){return e.filter(e=>e.id!==t)}function HS(e,t,n){let r=e.findIndex(e=>e.id===t);if(r===-1)return[...e];let i=n===`up`?r-1:r+1;if(i<0||i>=e.length)return[...e];let a=[...e],[o]=a.splice(r,1);return a.splice(i,0,o),a}function US(e){return new Set(Object.entries(e).flatMap(([e,t])=>t.length>0?[e]:[]))}var WS=120;function GS(e){let t=e.trimmedPrompt.trim();return t.length>0?t.length>WS?`${t.slice(0,119)}…`:t:e.imageCount>0?e.imageCount===1?`1 image`:`${e.imageCount} images`:e.terminalContextCount>0?e.terminalContextCount===1?`1 terminal context`:`${e.terminalContextCount} terminal contexts`:`Queued message`}function KS(){return c(e=>({queuesByThreadKey:{},steeringIdsByThreadKey:{},enqueue:(t,n)=>e(e=>({queuesByThreadKey:{...e.queuesByThreadKey,[t]:[...e.queuesByThreadKey[t]??[],n]}})),remove:(t,n)=>e(e=>{let r=e.queuesByThreadKey[t];if(!r)return e;let i=e.steeringIdsByThreadKey[t]??[];return{queuesByThreadKey:{...e.queuesByThreadKey,[t]:VS(r,n)},steeringIdsByThreadKey:{...e.steeringIdsByThreadKey,[t]:i.filter(e=>e!==n)}}}),move:(t,n,r)=>e(e=>{let i=e.queuesByThreadKey[t];return i?{queuesByThreadKey:{...e.queuesByThreadKey,[t]:HS(i,n,r)}}:e}),dequeue:t=>e(e=>{let n=e.queuesByThreadKey[t];return!n||n.length===0?e:{queuesByThreadKey:{...e.queuesByThreadKey,[t]:n.slice(1)}}}),clear:t=>e(e=>{if(!(t in e.queuesByThreadKey))return e;let n={...e.queuesByThreadKey},r={...e.steeringIdsByThreadKey};return delete n[t],delete r[t],{queuesByThreadKey:n,steeringIdsByThreadKey:r}}),beginSteer:(t,n)=>e(e=>{let r=e.steeringIdsByThreadKey[t]??[];return r.includes(n)?e:{steeringIdsByThreadKey:{...e.steeringIdsByThreadKey,[t]:[...r,n]}}}),endSteer:(t,n)=>e(e=>{let r=e.steeringIdsByThreadKey[t];return r?.includes(n)?{steeringIdsByThreadKey:{...e.steeringIdsByThreadKey,[t]:r.filter(e=>e!==n)}}:e})}))}var qS=KS(),JS=c(e=>({open:!1,setOpen:t=>e(e=>e.open===t?e:{open:t})}));function YS(){return JS(XS)}function XS(e){return e.open}function ZS(e){JS.getState().setOpen(e)}function QS(e){return`git:${e??``}`}var $S=new Map;function eC(e,t){let n=$S.get(e);return n||(n=new Set,$S.set(e,n)),n.add(t),()=>{let n=$S.get(e);n&&(n.delete(t),n.size===0&&$S.delete(e))}}function tC(e){let t=new Set;for(let n of e){let e=$S.get(n);if(e)for(let n of e)t.add(n)}for(let e of t)e()}var nC=new Set,rC=Cr(e=>(nC.add(e),Xn(0).pipe(hr,Zr(`git-mutation-running:${e}`))));function iC(e){return rC(e)}function aC(e){let t=rC(e);z.set(t,z.get(t)+1)}function oC(e){let t=rC(e);z.set(t,Math.max(0,z.get(t)-1))}var sC=15e3,cC=6e4,lC=100,uC=Object.freeze({pages:[],isPending:!1,isFetchingNextPage:!1,error:null}),dC=Object.freeze({...uC,isPending:!0}),fC=Xn(uC).pipe(hr,Zr(`git-branches:null`)),pC=new Set,mC=Cr(e=>(pC.add(e),Xn(dC).pipe(hr,Zr(`git-branches:${e}`)))),hC=()=>void 0,gC=new Map;function _C(e){return`${e.environmentId}\u0000${e.cwd}\u0000${e.query}`}function vC(e){return e.environmentId===null||e.cwd===null?null:_C({environmentId:e.environmentId,cwd:e.cwd,query:e.query})}function yC(e){return e===null?fC:mC(e)}function bC(e,t){z.set(mC(e),t)}async function xC(e,t,n,r){let i=Fg(e);if(!i)throw Error(`Git refs are unavailable.`);return i.vcs.listRefs({cwd:t,...n.length>0?{query:n}:{},cursor:r,limit:lC})}function SC(e){let t=e[e.length-1];return t?t.nextCursor:null}function CC(e,t){if(e.inFlightPromise)return e.inFlightPromise;let n=t().finally(()=>{e.inFlightPromise===n&&(e.inFlightPromise=null)});return e.inFlightPromise=n,n}async function wC(e){let t=++e.fetchToken,n=z.get(mC(e.key));bC(e.key,{pages:n.pages,isPending:n.pages.length===0,isFetchingNextPage:!1,error:null});try{let n=await xC(e.environmentId,e.cwd,e.query,0);if(t!==e.fetchToken)return;e.loadedPageCount=1,e.lastFetchedAt=Date.now(),e.hasLoadedOnce=!0,bC(e.key,{pages:[n],isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(t!==e.fetchToken)return;bC(e.key,{pages:z.get(mC(e.key)).pages,isPending:!1,isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}}function TC(e){return CC(e,()=>wC(e))}async function EC(e){let t=++e.fetchToken,n=Math.max(1,e.loadedPageCount),r=z.get(mC(e.key));bC(e.key,{pages:r.pages,isPending:r.pages.length===0,isFetchingNextPage:!1,error:null});try{let r=[],i=0;for(let a=0;a<n;a+=1){let n=await xC(e.environmentId,e.cwd,e.query,i);if(t!==e.fetchToken)return;if(r.push(n),n.nextCursor===null)break;i=n.nextCursor}e.loadedPageCount=r.length,e.lastFetchedAt=Date.now(),e.hasLoadedOnce=!0,bC(e.key,{pages:r,isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(t!==e.fetchToken)return;bC(e.key,{pages:z.get(mC(e.key)).pages,isPending:!1,isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}}function DC(e){return CC(e,()=>EC(e))}function OC(e){return e.hasLoadedOnce?DC(e):TC(e)}function kC(e){if(e===null)return;let t=gC.get(e);if(!t)return;let n=z.get(mC(e));if(n.isFetchingNextPage||t.inFlightPromise)return;let r=SC(n.pages);if(r===null)return;bC(e,{...n,isFetchingNextPage:!0,error:null});let i=t.fetchToken;CC(t,async()=>{try{let n=await xC(t.environmentId,t.cwd,t.query,r);if(i!==t.fetchToken)return;let a=z.get(mC(e));t.loadedPageCount=a.pages.length+1,t.lastFetchedAt=Date.now(),bC(e,{pages:[...a.pages,n],isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(i!==t.fetchToken)return;bC(e,{...z.get(mC(e)),isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}})}function AC(e){if(e===null)return;let t=gC.get(e);if(!t){IC(e);return}t.poller?.refresh()??OC(t)}function jC(e){Date.now()-e.lastFetchedAt<sC||(e.poller?.refresh()??OC(e))}function MC(e){if(e.environmentId===null||e.cwd===null)return hC;let t=e.environmentId,n=e.cwd,r=_C({environmentId:t,cwd:n,query:e.query}),i=gC.get(r);if(i)return i.subscriberCount+=1,i.hasLoadedOnce&&jC(i),()=>NC(r);let a={key:r,environmentId:t,cwd:n,query:e.query,subscriberCount:1,loadedPageCount:0,lastFetchedAt:0,fetchToken:0,hasLoadedOnce:!1,inFlightPromise:null,invalidationUnsub:hC,focusListener:null,poller:null};if(gC.set(r,a),a.invalidationUnsub=eC(QS(n),()=>{a.poller?.refresh()??OC(a)}),typeof window<`u`){let e=()=>jC(a);a.focusListener=e,window.addEventListener(`focus`,e)}return typeof window<`u`&&typeof document<`u`?a.poller=Oi({lifecycle:Di,run:()=>OC(a),resolveDelayMs:()=>cC,jitterRatio:.05}):TC(a),()=>NC(r)}function NC(e){let t=gC.get(e);t&&(--t.subscriberCount,!(t.subscriberCount>0)&&(t.invalidationUnsub(),t.focusListener&&typeof window<`u`&&window.removeEventListener(`focus`,t.focusListener),t.poller?.stop(),t.fetchToken+=1,gC.delete(e)))}var PC=new Set,FC=0;async function IC(e){if(PC.has(e)||gC.get(e))return;let t=e.indexOf(`\0`),n=e.lastIndexOf(`\0`);if(t===-1||n===t)return;let r=e.slice(0,t),i=e.slice(t+1,n),a=e.slice(n+1);PC.add(e);let o=FC;try{let t=await xC(r,i,a,0);if(o!==FC||gC.has(e))return;bC(e,{pages:[t],isPending:!1,isFetchingNextPage:!1,error:null})}catch{}finally{o===FC&&PC.delete(e)}}function LC(e){let t=vC(e);t!==null&&(z.get(mC(t)).pages.length>0||IC(t))}function RC(e){return e.flatMap(e=>e.refs)}var zC=3e4,BC=Object.freeze({data:null,isPending:!1,isFetching:!1,isError:!1,error:null}),VC=Xn(BC).pipe(hr,Zr(`git-resolve-pr:null`)),HC=new Set,UC=Cr(e=>(HC.add(e),Xn(BC).pipe(hr,Zr(`git-resolve-pr:${e}`)))),WC=new Map;function GC(e){return`${e.environmentId}\u0000${e.cwd}\u0000${e.reference}`}function KC(e){return e.environmentId===null||e.cwd===null||e.reference===null?null:GC({environmentId:e.environmentId,cwd:e.cwd,reference:e.reference})}function qC(e){return e===null?VC:UC(e)}async function JC(e){let t=++e.fetchToken,n=z.get(UC(e.key));z.set(UC(e.key),{data:n.data,isPending:n.data===null,isFetching:!0,isError:!1,error:null});try{let n=Fg(e.environmentId);if(!n)throw Error(`Pull request lookup is unavailable.`);let r=await n.git.resolvePullRequest({cwd:e.cwd,reference:e.reference});if(t!==e.fetchToken)return;e.lastFetchedAt=Date.now(),z.set(UC(e.key),{data:r,isPending:!1,isFetching:!1,isError:!1,error:null})}catch(n){if(t!==e.fetchToken)return;z.set(UC(e.key),{data:null,isPending:!1,isFetching:!1,isError:!0,error:n instanceof Error?n:Error(`Failed to resolve pull request.`)})}}function YC(e){let t=KC(e);if(t===null||e.environmentId===null||e.cwd===null||e.reference===null)return hC;let n=e.environmentId,r=e.cwd,i=e.reference,a=WC.get(t);if(a)return a.subscriberCount+=1,Date.now()-a.lastFetchedAt>=zC&&JC(a),()=>XC(t);let o={key:t,environmentId:n,cwd:r,reference:i,subscriberCount:1,lastFetchedAt:0,fetchToken:0};return WC.set(t,o),JC(o),()=>XC(t)}function XC(e){let t=WC.get(e);t&&(--t.subscriberCount,!(t.subscriberCount>0)&&(t.fetchToken+=1,WC.delete(e)))}function ZC(){for(let e of gC.values())e.fetchToken+=1,e.invalidationUnsub(),e.focusListener&&typeof window<`u`&&window.removeEventListener(`focus`,e.focusListener),e.poller?.stop();gC.clear(),FC+=1,PC.clear();for(let e of WC.values())e.fetchToken+=1;WC.clear(),$S.clear();for(let e of pC)z.set(mC(e),dC);for(let e of HC)z.set(UC(e),BC);for(let e of nC)z.set(rC(e),0)}var QC=Object.freeze({data:void 0,error:null,status:`pending`,fetchStatus:`idle`,dataUpdatedAt:0,errorUpdatedAt:0});function $C(e){return JSON.stringify(e,(e,t)=>t&&typeof t==`object`&&!Array.isArray(t)?Object.keys(t).toSorted().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function ew(e){return $C(e)}function tw(e){return e instanceof Error?e:Error(String(e))}function nw(e){return e===void 0||e===!0?3:e===!1?0:e}function rw(e){return Math.min(1e3*2**e,3e4)}function iw(e){return new Promise(t=>setTimeout(t,e))}function aw(e,t){if(t.length>e.length)return!1;for(let n=0;n<t.length;n+=1)if($C(e[n])!==$C(t[n]))return!1;return!0}var ow=new class{cache=new Map;prefixIndex=new Map;maxEntries;defaultGcTime;constructor(e){this.maxEntries=Math.max(1,Math.floor(e?.maxEntries??512)),this.defaultGcTime=Math.max(0,e?.defaultGcTime??3e5)}prefixHash(e){return $C(e)}indexEntry(e){for(let t=1;t<=e.key.length;t+=1){let n=this.prefixHash(e.key.slice(0,t)),r=this.prefixIndex.get(n)??new Set;r.add(e.hash),this.prefixIndex.set(n,r)}}unindexEntry(e){for(let t=1;t<=e.key.length;t+=1){let n=this.prefixHash(e.key.slice(0,t)),r=this.prefixIndex.get(n);r&&(r.delete(e.hash),r.size===0&&this.prefixIndex.delete(n))}}clearGcTimer(e){e.gcTimer!==null&&(clearTimeout(e.gcTimer),e.gcTimer=null)}isPinned(e){return e.listeners.size>0||e.observers.size>0||e.promise!==null}removeEntry(e){return this.cache.get(e.hash)!==e||this.isPinned(e)?!1:(this.clearGcTimer(e),e.fetchId+=1,e.state=QC,this.cache.delete(e.hash),this.unindexEntry(e),!0)}scheduleGc(e){if(this.clearGcTimer(e),!(this.isPinned(e)||e.gcTime===1/0)){if(e.gcTime===0){this.removeEntry(e);return}e.gcTimer=setTimeout(()=>{e.gcTimer=null,this.removeEntry(e)},e.gcTime)}}touch(e){e.lastAccessedAt=Date.now(),this.clearGcTimer(e)}evictToCapacity(){if(this.cache.size<=this.maxEntries)return;let e=[...this.cache.values()].filter(e=>!this.isPinned(e)).toSorted((e,t)=>e.lastAccessedAt-t.lastAccessedAt);for(let t of e){if(this.cache.size<=this.maxEntries)break;this.removeEntry(t)}}ensureEntry(e){let t=ew(e),n=this.cache.get(t);return n||(n={key:e,hash:t,state:QC,listeners:new Set,observers:new Set,promise:null,fetchId:0,gcTime:this.defaultGcTime,lastAccessedAt:Date.now(),gcTimer:null},this.cache.set(t,n),this.indexEntry(n),this.evictToCapacity()),this.touch(n),n}setGcTime(e,t){let n=this.ensureEntry(e);n.gcTime=Math.max(0,t??this.defaultGcTime),this.isPinned(n)||this.scheduleGc(n)}getCacheSize(){return this.cache.size}getEntry(e){return this.ensureEntry(e)}getEntryByHash(e){return this.cache.get(e)}getState(e){return this.ensureEntry(e).state}setState(e,t){e.state=t;for(let t of e.listeners)t()}subscribe(e,t){let n=this.ensureEntry(e);return n.listeners.add(t),this.clearGcTimer(n),()=>{n.listeners.delete(t),this.scheduleGc(n)}}addObserver(e,t){let n=this.ensureEntry(e);return n.observers.add(t),this.clearGcTimer(n),()=>{n.observers.delete(t),this.scheduleGc(n)}}isStale(e,t){let n=this.ensureEntry(e);return n.state.status!==`success`||t!==1/0&&Date.now()-n.state.dataUpdatedAt>=t}getQueryData(e){let t=this.cache.get(ew(e));return t?.state.status===`success`?t.state.data:void 0}setQueryData(e,t){let n=this.ensureEntry(e),r=n.state.status===`success`?n.state.data:void 0,i=typeof t==`function`?t(r):t;return i===void 0?r:(this.setState(n,{data:i,error:null,status:`success`,fetchStatus:`idle`,dataUpdatedAt:Date.now(),errorUpdatedAt:n.state.errorUpdatedAt}),this.scheduleGc(n),i)}cancelQueries(e={}){let t=e.queryKey;for(let e of this.cache.values())t&&!aw(e.key,t)||(e.fetchId+=1,e.promise=null,e.state.fetchStatus===`fetching`&&this.setState(e,{...e.state,fetchStatus:`idle`}));return Promise.resolve()}invalidateQueries(e={}){let t=e.queryKey,n=t?[...this.prefixIndex.get(this.prefixHash(t))??[]].map(e=>this.cache.get(e)).filter(e=>e!==void 0):[...this.cache.values()];for(let e of n)if(e.state.status===`success`&&this.setState(e,{...e.state,dataUpdatedAt:0}),e.observers.size>0)for(let t of e.observers)t.refetch();return Promise.resolve()}async fetch(e,t,n={}){let r=this.ensureEntry(e);if(r.promise)return r.promise;let i=++r.fetchId,a=nw(n.retry);this.setState(r,{...r.state,fetchStatus:`fetching`,error:null});let o=(async()=>{for(let e=0;e<=a;e+=1)try{let e=await t();return r.fetchId===i?(this.setState(r,{data:e,error:null,status:`success`,fetchStatus:`idle`,dataUpdatedAt:Date.now(),errorUpdatedAt:r.state.errorUpdatedAt}),e):r.state.status===`success`?r.state.data:void 0}catch(t){if(r.fetchId!==i)return;if(e>=a){let e=tw(t);throw this.setState(r,{data:r.state.data,error:e,status:`error`,fetchStatus:`idle`,dataUpdatedAt:r.state.dataUpdatedAt,errorUpdatedAt:Date.now()}),e}if(await iw(rw(e)),r.fetchId!==i)return}})().finally(()=>{r.promise===o&&(r.promise=null,this.scheduleGc(r),this.evictToCapacity())});return r.promise=o,o}async fetchQuery(e){this.setGcTime(e.queryKey,e.gcTime);let t=e.staleTime??0;return this.isStale(e.queryKey,t)?await this.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:!0}):this.getQueryData(e.queryKey)}async prefetchQuery(e){try{await this.fetchQuery(e)}catch{}}clear(){for(let e of this.cache.values())this.clearGcTimer(e),e.fetchId+=1,e.state=QC;this.cache.clear(),this.prefixIndex.clear()}};function sw(){return ow}function cw(e){return e}function lw(e,t){let n=(0,V.useRef)(null);if(e===void 0)return;if(!t)return e;let r=n.current;if(r&&r.input===e)return r.output;let i=t(e);return n.current={input:e,output:i},i}function uw(e,t,n,r){let i=t.staleTime??0,a=n.fetchStatus===`fetching`,o=n.status===`pending`;return{data:r,error:n.error,status:n.status,fetchStatus:n.fetchStatus,isPending:o,isLoading:o&&a,isError:n.status===`error`,isSuccess:n.status===`success`,isFetching:a,isRefetching:a&&!o,isStale:e.isStale(t.queryKey,i),dataUpdatedAt:n.dataUpdatedAt,refetch:async()=>{await e.fetch(t.queryKey,t.queryFn,{retry:t.retry,force:!0});let n=e.getState(t.queryKey);return uw(e,t,n,n.status===`success`?t.select?t.select(n.data):n.data:void 0)}}}function dw(e){let t=sw(),{queryKey:n}=e,r=ew(n);t.setGcTime(n,e.gcTime);let i=(0,V.useRef)(e);i.current=e;let a=(0,V.useCallback)(e=>t.subscribe(i.current.queryKey,e),[t,r]),o=(0,V.useCallback)(()=>t.getState(i.current.queryKey),[t,r]),s=(0,V.useSyncExternalStore)(a,o,o),c=e.enabled??!0,l=e.staleTime??0,u=e.refetchOnMount;return(0,V.useEffect)(()=>{if(!c)return;let e=i.current,n=t.addObserver(e.queryKey,{refetch:()=>{t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:!0})}}),r=u===`always`;return(r||t.isStale(e.queryKey,l))&&t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:r}),n},[t,r,c,l,u]),(0,V.useEffect)(()=>{if(!c)return;let e=i.current,n=e.refetchInterval;if(n===void 0||n===!1)return;let r=typeof n==`function`?n({state:{data:t.getQueryData(e.queryKey)}}):n;if(!(r===!1||r===void 0||r<=0))return Oi({lifecycle:Di,run:()=>t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:!0}),resolveDelayMs:()=>r,runImmediately:!1,jitterRatio:.05}).stop},[t,r,c,s]),uw(t,e,s,lw(s.status===`success`?s.data:void 0,e.select))}var fw=Object.freeze({status:`idle`,data:void 0,error:null,variables:void 0});function pw(e){let t=(0,V.useRef)(e);t.current=e;let n=(0,V.useRef)(fw),[,r]=(0,V.useReducer)(e=>e+1,0),i=(0,V.useRef)(!0);(0,V.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]);let a=(0,V.useCallback)(e=>{n.current=e,i.current&&r()},[]),o=(0,V.useCallback)(async(e,n)=>{let r=t.current;a({status:`pending`,data:void 0,error:null,variables:e});let i;try{i=r.onMutate?await r.onMutate(e):void 0;let t=await r.mutationFn(e);return await r.onSuccess?.(t,e,i),await n?.onSuccess?.(t,e),await r.onSettled?.(t,null,e,i),await n?.onSettled?.(t,null,e),a({status:`success`,data:t,error:null,variables:e}),t}catch(t){let o=tw(t);throw await r.onError?.(o,e,i),await n?.onError?.(o,e),await r.onSettled?.(void 0,o,e,i),await n?.onSettled?.(void 0,o,e),a({status:`error`,data:void 0,error:o,variables:e}),o}},[a]),s=(0,V.useCallback)(e=>o(e),[o]),c=(0,V.useCallback)((e,t)=>{o(e,t).catch(()=>void 0)},[o]),l=(0,V.useCallback)(()=>{a(fw)},[a]),u=n.current;return{mutate:c,mutateAsync:s,isPending:u.status===`pending`,isIdle:u.status===`idle`,isError:u.status===`error`,isSuccess:u.status===`success`,status:u.status,error:u.error,data:u.data,variables:u.variables,reset:l}}var mw={metaKey:!1,ctrlKey:!1,altKey:!1,shiftKey:!1};function hw(e,t){return e.metaKey===t.metaKey&&e.ctrlKey===t.ctrlKey&&e.altKey===t.altKey&&e.shiftKey===t.shiftKey}var gw=c(e=>({state:mw,setState:t=>e(e=>hw(e.state,t)?e:{state:t}),clear:()=>e(e=>hw(e.state,mw)?e:{state:mw})}));function _w(){return gw(vw)}function vw(e){return e.state}function yw(e){switch(e){case`Meta`:case`OS`:case`Command`:return`metaKey`;case`Control`:return`ctrlKey`;case`Alt`:case`Option`:return`altKey`;case`Shift`:return`shiftKey`;default:return null}}function bw(e){let t=yw(e.key);if(t){let n=gw.getState().state;gw.getState().setState({...n,[t]:e.type===`keydown`});return}gw.getState().setState({metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey})}function xw(){gw.getState().clear()}var Sw=new Set,Cw=c((e,t)=>({selectedThreadKeys:Sw,anchorThreadKey:null,toggleThread:t=>{e(e=>{let n=new Set(e.selectedThreadKeys);return n.has(t)?n.delete(t):n.add(t),{selectedThreadKeys:n,anchorThreadKey:n.has(t)?t:e.anchorThreadKey}})},rangeSelectTo:(t,n)=>{e(e=>{let r=e.anchorThreadKey;if(r===null){let n=new Set(e.selectedThreadKeys);return n.add(t),{selectedThreadKeys:n,anchorThreadKey:t}}let i=n.indexOf(r),a=n.indexOf(t);if(i===-1||a===-1){let n=new Set(e.selectedThreadKeys);return n.add(t),{selectedThreadKeys:n,anchorThreadKey:t}}let o=Math.min(i,a),s=Math.max(i,a),c=new Set(e.selectedThreadKeys);for(let e=o;e<=s;e++){let t=n[e];t!==void 0&&c.add(t)}return{selectedThreadKeys:c,anchorThreadKey:r}})},clearSelection:()=>{let n=t();(n.selectedThreadKeys.size!==0||n.anchorThreadKey!==null)&&e({selectedThreadKeys:Sw,anchorThreadKey:null})},setAnchor:n=>{t().anchorThreadKey!==n&&e({anchorThreadKey:n})},removeFromSelection:t=>{e(e=>{let n=new Set(t),r=!1,i=new Set;for(let t of e.selectedThreadKeys)n.has(t)?r=!0:i.add(t);return r?{selectedThreadKeys:i,anchorThreadKey:e.anchorThreadKey!==null&&n.has(e.anchorThreadKey)?null:e.anchorThreadKey}:e})},hasSelection:()=>t().selectedThreadKeys.size>0}));function ww(e){ES(),Br(e),C_(),ZC(),X_(),Q.getState().demoteEnvironmentStateToCachedSnapshot(e,Date.now()),mr()}function Tw(){for(let e of Object.keys(Q.getState().environmentStateById))Q.getState().removeEnvironmentState(e);yi.setState({draftsByThreadKey:{},draftThreadsByThreadKey:{},logicalProjectDraftThreadKeyByLogicalProjectKey:{},stickyModelSelectionByProvider:{},stickyActiveProvider:null}),zx.setState({terminalStateByThreadKey:{},terminalLaunchContextByThreadKey:{},terminalEventEntriesByKey:{},nextTerminalEventId:1}),qS.setState({queuesByThreadKey:{}}),LS.getState().setOpen(!1),uo.getState().closeSettings(),ZS(!1),xw(),Cw.getState().clearSelection(),fo.setState({projectExpandedById:{},projectOrder:[],projectFoldersById:{},projectFolderOrder:[],projectTreeOrder:[],pinnedThreadKeys:{},threadLastVisitedAtById:{},threadChangedFilesExpandedById:{},threadWorkEntryExpandedById:{},defaultAdvertisedEndpointKey:null}),ow.clear(),mr()}function Ew(){let e=new URL(window.location.origin);return e.protocol=e.protocol===`https:`?`wss:`:`ws:`,e.pathname=`/v1/relay/client`,e.toString()}function Dw(e){return typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer}function Ow(e){return e instanceof ArrayBuffer?{bytes:new Uint8Array(e.slice(0))}:e instanceof Uint8Array?{bytes:Uint8Array.from(e)}:ArrayBuffer.isView(e)?{bytes:Uint8Array.from(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}:Dw(e)?{fail:`protocol_invalid`}:{fail:`frame_too_large`}}var kw=new Set([Up,Vp,Hp,zp,Bp]);function Aw(e){return!(e instanceof Error)||e instanceof DOMException?e:new DOMException(e.message,kw.has(e.message)?`QuotaExceededError`:`InvalidStateError`)}var jw=class extends EventTarget{url;protocol=``;extensions=``;binaryType=`arraybuffer`;CONNECTING=WebSocket.CONNECTING;OPEN=WebSocket.OPEN;CLOSING=WebSocket.CLOSING;CLOSED=WebSocket.CLOSED;onopen=null;onmessage=null;onerror=null;onclose=null;#e;#t=WebSocket.CONNECTING;constructor(e){if(super(),this.url=e.url,e.url!==Ew()||e.ticketExpiresAt<=Date.now())throw Error(`Relay attempt is no longer valid.`);let t=(e.createSocket??(e=>new WebSocket(e)))(e.url);t.binaryType=`arraybuffer`;let n={get bufferedAmount(){return t.bufferedAmount},get readyState(){return t.readyState},send:e=>t.send(Uint8Array.from(e).buffer),close:(e,n)=>t.close(e,n),onOpen:e=>t.addEventListener(`open`,e),onBinaryMessage:e=>t.addEventListener(`message`,t=>{let n=Ow(t.data);`bytes`in n?e(n.bytes):this.#e.reportUndecodableMessage(n.fail)}),onClose:e=>t.addEventListener(`close`,e),onError:e=>t.addEventListener(`error`,e)};try{this.#e=new qp({ticket:e.ticket,ticketExpiresAt:e.ticketExpiresAt,socket:n,callbacks:e.callbacks,...e.e2ee===void 0?{}:{e2ee:e.e2ee},timers:{now:()=>Date.now(),setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e),queueMicrotask:e=>globalThis.queueMicrotask(e)},events:{onOpen:()=>{this.#t=WebSocket.OPEN,this.#n(`open`,new Event(`open`))},onData:e=>this.#n(`message`,new MessageEvent(`message`,{data:e})),onError:()=>this.#n(`error`,new Event(`error`)),onClose:(e,t)=>{this.#t=WebSocket.CLOSED,this.#n(`close`,new CloseEvent(`close`,{code:e,reason:t,wasClean:e===1e3}))}}})}catch(e){try{t.close()}catch{}throw e}}get readyState(){return this.#t}get bufferedAmount(){return this.#e.bufferedAmount}send(e){let t=typeof e==`string`?new TextEncoder().encode(e):e instanceof ArrayBuffer||Dw(e)?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):(()=>{throw new DOMException(`Blob RPC writes are unsupported.`,`DataError`)})();try{this.#e.send(Uint8Array.from(t))}catch(e){throw Aw(e)}}close(e=1e3,t=``){this.#t!==WebSocket.CLOSED&&this.#t!==WebSocket.CLOSING&&(this.#t=WebSocket.CLOSING,this.#e.close(e,t))}#n(e,t){this.dispatchEvent(t);let n=this[`on${e}`];n&&n.call(this,t)}},Mw=!1;function Nw(e){Mw||(Mw=!0,IS(),Aa({endpoint:rr,httpClient:Zn,passkeyCeremony:Ch,sessionCredentials:ur,nodeLifecycle:{activate:async()=>void 0,suspend:async()=>void 0,deactivate:async()=>void 0,clearNodeScopedState:ww,writePrimaryEnvironmentDescriptor:Wr,connectPrimaryEnvironment:_E,disconnectPrimaryEnvironment:gE,setActiveEnvironmentId:e=>Q.getState().setActiveEnvironmentId(e)},timers:{now:()=>Date.now(),setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e),queueMicrotask:e=>globalThis.queueMicrotask(e)},isForeground:()=>globalThis.document?.visibilityState!==`hidden`,subscribeForeground:e=>{let t=()=>{globalThis.document?.visibilityState===`visible`&&e()};return globalThis.document?.addEventListener(`visibilitychange`,t,{once:!0}),()=>globalThis.document?.removeEventListener(`visibilitychange`,t)},hasPendingRelayRequests:gh,resetRelayAttemptFactory:_h,relayUrl:Ew,createRelaySocket:e=>new jw({...e,e2ee:PS()})},e))}var Pw=new class extends Ma{constructor(){super({endpoint:rr,httpClient:Zn,passkeyCeremony:Ch,sessionCredentials:ur})}},Fw=n({HOSTED_SESSION_SYNC_FAILURE_MESSAGE:()=>HOSTED_SESSION_SYNC_FAILURE_MESSAGE,ensureWebHostedRuntimeConfigured:()=>Iw,hostedAccountStore:()=>xa,hostedHubController:()=>Ga,hostedHubStore:()=>Xa,hostedRecoveryCodeDisplayStore:()=>Ta,useHostedAccountStore:()=>Rw,useHostedHubStore:()=>Lw,useHostedRecoveryCodeDisplayStore:()=>zw});Pa(()=>Nw(Pw));function Iw(){Nw(Pw)}var Lw=Object.assign(e=>f(Xa,e),Xa),Rw=Object.assign(e=>f(xa,e),xa),zw=Object.assign(e=>f(Ta,e),Ta);function Bw(e){return/^[a-zA-Z]:([/\\]|$)/.test(e)}function Vw(e){return e.startsWith(`\\\\`)}function Hw(e){return Vw(e)||Bw(e)}function Uw(e){return e===`.`||e===`..`||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`.\\`)||e.startsWith(`..\\`)}function Ww(e){return e===`/`||e===`\\`||/^[a-zA-Z]:[/\\]?$/.test(e)}function Gw(e){return Bw(e)||Vw(e)?`windows`:e.startsWith(`/`)?`unix`:null}function Kw(e){if(e.length===0||Ww(e))return e;let t=Gw(e)===`unix`?e.replace(/\/+$/g,``):e.replace(/[\\/]+$/g,``);return t.length===0?e:/^[a-zA-Z]:$/.test(t)?`${t}\\`:t}function qw(e){let t=Kw(e.trim());return Bw(t)||t.startsWith(`\\\\`)?t.replaceAll(`/`,`\\`).toLowerCase():t}function Jw(e){let t=new Set,n=[];for(let r of e){let e=r?.trim();!e||t.has(e)||(t.add(e),n.push(e))}return n}function Yw(e){let t=e.repositoryIdentity?.rootPath?.trim();if(!t)return null;let n=qw(e.cwd),r=qw(t);if(n.length===0||r.length===0)return null;if(n===r)return``;let i=`${r}${r.includes(`\\`)?`\\`:`/`}`;return n.startsWith(i)?n.slice(i.length).replaceAll(`\\`,`/`):null}function Xw(e,t){return`${e}:${qw(t)}`}function Zw(e){return Xw(e.environmentId,e.cwd)}function Qw(e,t){let n=e.repositoryIdentity?.canonicalKey;if(!n)return null;if(t===`repository`)return n;let r=Yw(e);return r===null||r.length===0?n:`${n}::${r}`}function $w(e,t){let n=t?.groupingMode??`repository`;return n===`separate`?Zw(e):Qw(e,n)??Zw(e)??`${e.environmentId}:${e.id}`}function eT(e){let t=Jw(e.members.map(e=>e.repositoryIdentity?.displayName));if(t.length===1)return t[0];let n=Jw(e.members.map(e=>e.repositoryIdentity?.name));return n.length===1?n[0]:e.representative.name}function tT(e,t){return{key:e.physicalKey,label:e.name,repositoryIdentity:e.repositoryIdentity,variants:[e],ambiguous:t}}function nT(e,t){let n=new Map;for(let r of e){let e=$w({environmentId:r.environmentId,id:r.projectId,cwd:r.cwd,repositoryIdentity:r.repositoryIdentity},t),i=n.get(e)??[];i.push(r),n.set(e,i)}let r=[];for(let[e,t]of n){let n=new Map;for(let e of t)n.set(e.environmentId,(n.get(e.environmentId)??0)+1);let i=Array.from(n.values()).some(e=>e>1);if(i||t.length===1){r.push(...t.map(e=>tT(e,i)));continue}let a=t.toSorted((e,t)=>{let n=e.lastUsedAt??e.lastLiveAt??0;return(t.lastUsedAt??t.lastLiveAt??0)-n||e.physicalKey.localeCompare(t.physicalKey)}),o=a[0];r.push({key:e,label:eT({representative:o,members:t}),repositoryIdentity:o.repositoryIdentity,variants:a,ambiguous:!1})}return r.toSorted((e,t)=>e.label.localeCompare(t.label)||e.key.localeCompare(t.key))}function rT(e){return Zw(e)}function iT(e){return Zw(e)}function aT(e,t){return t.sidebarProjectGroupingOverrides?.[rT(e)]??t.sidebarProjectGroupingMode}function oT(e,t){return $w(e,{groupingMode:aT(e,t)})}function sT(e){return{prepareShellEvent:(e,t)=>{let n=t.kind===`thread-upserted`?t.thread.id:t.kind===`thread-removed`?t.threadId:null,r=n?a(e,n):null;return{previousThread:r?Eb(Q.getState(),r):void 0,threadRef:r}},applyShellEvent:(e,t)=>Q.getState().applyShellEvent(t,e),afterShellEventApplied:(t,n,r)=>{let{previousThread:i,threadRef:a}=r;switch(n.kind){case`project-upserted`:case`project-removed`:cT();return;case`worktree-upserted`:case`worktree-removed`:return;case`thread-upserted`:lT(),!i&&a&&bi(a),i?.archivedAt===null&&n.thread.archivedAt!==null&&a&&zx.getState().removeTerminalState(a),e.supervisor?.().reconcileThreadDetailSubscriptionEvictionForThread(t,n.thread.id),e.supervisor?.().evictIdleThreadDetailSubscriptionsToCapacity();return;case`thread-removed`:a&&(e.supervisor?.().disposeThreadDetailSubscription(t,n.threadId),yi.getState().clearDraftThread(a),fo.getState().clearThreadUi(p(a)),zx.getState().removeTerminalState(a)),lT()}},applyOrchestrationEvents:(e,t)=>Q.getState().applyOrchestrationEvents(t,e),syncServerShellSnapshot:(e,t)=>Q.getState().syncServerShellSnapshot(t,e),reconcileSnapshotDerivedState:()=>{cT(),lT();let e=Qb({snapshotThreads:_b(Q.getState()).map(e=>({key:p(a(e.environmentId,e.id)),deletedAt:null,archivedAt:e.archivedAt})),draftThreadKeys:yi.getState().listDraftThreadKeys()});zx.getState().removeOrphanedTerminalStates(e)},syncProjects:()=>{let e=Ql();fo.getState().syncProjects(gb(Q.getState()).map(t=>({key:Zw(t),logicalKey:oT(t,e),cwd:t.cwd})))},syncThreads:()=>{let e=_b(Q.getState());fo.getState().syncThreads(e.map(e=>({key:p(a(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt})))},clearThreadDraft:e=>{yi.getState().clearDraftThread(e),fo.getState().clearThreadUi(p(e))},clearProjectDraftThread:e=>yi.getState().clearProjectDraftThreadId(e),clearTerminalState:e=>zx.getState().removeTerminalState(e),markProviderInvalidationNeeded:e.markProviderInvalidationNeeded,flushProviderInvalidation:e.flushProviderInvalidation}}function cT(){let e=gb(Q.getState()),t=Ql();fo.getState().syncProjects(e.map(e=>({key:Zw(e),logicalKey:oT(e,t),cwd:e.cwd})))}function lT(){let e=_b(Q.getState());fo.getState().syncThreads(e.map(e=>({key:p(a(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt}))),Si(e.map(e=>a(e.environmentId,e.id)))}var uT=0,dT=1,fT=2,pT=3,mT=class{url;protocol=``;extensions=``;binaryType=`arraybuffer`;CONNECTING=uT;OPEN=dT;CLOSING=fT;CLOSED=pT;onopen=null;onmessage=null;onerror=null;onclose=null;#e;#t;#n=new Map;#r;#i=uT;constructor(e){this.url=e.url,this.#t=e.transportId,this.#e=e.bridge,this.#r=e.bridge.onDesktopWorkspaceTransportEvent?.(e=>this.#a(e)),Promise.resolve().then(async()=>{try{await e.bridge.activateDesktopWorkspaceTransport?.(e.transportId)}catch{this.#o()}})}get readyState(){return this.#i}get bufferedAmount(){return 0}send(e){if(this.#i!==dT)throw Error(`Desktop workspace transport is not open.`);let t=typeof e==`string`?new TextEncoder().encode(e):e instanceof ArrayBuffer?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):null;if(t===null)throw Error(`Desktop workspace transport payload is invalid.`);this.#e.sendDesktopWorkspaceTransport?.(this.#t,Uint8Array.from(t))}close(){this.#i!==fT&&this.#i!==pT&&(this.#i=fT,this.#e.closeDesktopWorkspaceTransport?.(this.#t))}addEventListener(e,t,n){let r=this.#n.get(e)??new Set;r.add({listener:t,once:n?.once??!1}),this.#n.set(e,r)}removeEventListener(e,t){let n=this.#n.get(e);if(n)for(let e of[...n])e.listener===t&&n.delete(e)}#a(e){if(e.transportId===this.#t&&this.#i!==pT)switch(e.type){case`open`:if(this.#i!==uT)return;this.#i=dT,this.#s({type:`open`});return;case`message`:if(this.#i!==dT)return;this.#s({type:`message`,data:Uint8Array.from(e.data)});return;case`error`:this.#s({type:`error`});return;case`close`:this.#i=pT,this.#s({type:`close`,code:e.code,reason:e.reason,wasClean:e.code===1e3}),this.#r?.()}}#o(){this.#i!==pT&&(this.#s({type:`error`}),this.#i=pT,this.#s({type:`close`,code:4401,reason:`Relay unavailable`,wasClean:!1}),this.#r?.())}#s(e){let t=this.#n.get(e.type);if(t)for(let n of[...t])n.once&&t.delete(n),n.listener(e);let n={open:this.onopen,message:this.onmessage,error:this.onerror,close:this.onclose}[e.type];n?.(e)}},hT=class{#e;#t;#n=null;constructor(e,t){this.#e=e,this.#t=t}async nextUrl(){if(!this.#t.prepareDesktopWorkspaceTransport)throw Error(`Desktop workspace transport is unavailable.`);let e=await this.#t.prepareDesktopWorkspaceTransport(this.#e);return this.#n=e.transportId,`ws://desktop-workspace.invalid/${e.transportId}`}createSocket(e){let t=this.#n;if(this.#n=null,!t||!e.endsWith(`/${t}`))throw Error(`Desktop workspace transport requires a fresh opaque handle.`);return new mT({url:e,transportId:t,bridge:this.#t})}};function gT(e){return e instanceof sl}var _T=!1,vT=sT({markProviderInvalidationNeeded:()=>{_T=!0,$().requestProviderInvalidation()},flushProviderInvalidation:()=>{_T=!1,Y_(),i_()},supervisor:$}),yT=150,bT=()=>void 0,xT=/^\[ssh_http:(\d+)\]\s/u,ST=null,CT=!1,wT=null,TT=new Promise(e=>{wT=e}),ET=null;function $(){return ET||(ET=cl({isHostedMode:l,now:Date.now,setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e),createInvalidationThrottle:()=>new ts(()=>{_T&&vT.flushProviderInvalidation()},{wait:100,leading:!1,trailing:!0}),resetProviderInvalidation:()=>{_T=!1},createPrimaryConnection:()=>Vr()?.environmentId?mE():null,listSavedEnvironmentRecords:wg,hasSavedEnvironmentRegistryHydrated:Sg,waitForSavedEnvironmentRegistryHydration:Cg,subscribeSavedEnvironmentRegistry:xg.subscribe,connectSavedEnvironment:(e,t)=>bE(e,void 0,t),disconnectSavedEnvironment:OE,waitForPrimaryShellSnapshotApplied:kT,subscribeBrowserResume:xE,isThreadDetailSubscriptionNonIdle:(e,t)=>jT({environmentId:e,threadId:t}),syncThreadDetailSnapshot:(e,t)=>Q.getState().syncServerThreadDetail(t.thread,e),syncThreadWindowSnapshot:(e,t)=>Q.getState().syncServerThreadWindow(t,e),syncThreadHistoryPage:(e,t,n)=>Q.getState().syncServerThreadHistoryPage(n,t,e),setThreadHistoryRequestState:e=>Q.getState().setServerThreadHistoryLoadState({...e,loadState:{status:e.status,cursor:e.cursor,error:e.error}}),applyThreadDetailEvent:(e,t)=>oE(t,e),stateSink:vT,onShellSnapshotReceived:e=>{e===Vr()?.environmentId&&rS(`primary-shell-snapshot-received`)},onShellSnapshotCurrent:()=>void 0,onShellSnapshotApplied:e=>{e===Vr()?.environmentId&&(rS(`primary-shell-snapshot-applied`),iS(`primary-shell-snapshot`,`primary-shell-snapshot-received`,`primary-shell-snapshot-applied`),rS(`primary-shell-usable`),iS(`primary-shell-ready`,`root-before-load-ready`,`primary-shell-usable`),OT())},onShellSnapshotReady:()=>void 0}),ET)}function DT(){let e=null;return{promise:new Promise(t=>{e=t}),resolve:t=>{e?.(t),e=null}}}function OT(){CT||(CT=!0,wT?.(),wT=null)}async function kT(e){CT||!Vr()?.environmentId||await Promise.race([TT,new Promise(t=>{globalThis.setTimeout(t,e)})])}async function AT(e,t){return await new Promise(n=>{let r=globalThis.setTimeout(()=>n(null),t);e.then(e=>{clearTimeout(r),n(e)},()=>{clearTimeout(r),n(null)})})}function jT(e){let t=a(e.environmentId,e.threadId),n=Q.getState(),r=Ob(n,t);if(r){if(r.hasPendingApprovals||r.hasPendingUserInput||r.hasActionableProposedPlan)return!0;let e=r.session?.orchestrationStatus;if(e&&e!==`idle`&&e!==`stopped`||r.latestTurn?.state===`running`)return!0}let i=Eb(n,t);if(!i)return!1;let o=i.session?.orchestrationStatus;return!!(o&&o!==`idle`&&o!==`stopped`)||i.latestTurn?.state===`running`||i.pendingSourceProposedPlan!==void 0}function MT(e){$().disposeThreadDetailSubscriptionsForEnvironment(e)}function NT(e,t){return $().retainThreadDetailSubscription(e,t)}function PT(e){return $().loadOlderThreadHistory(e)}function FT(e){return $().loadThreadHistoryAroundMessage(e)}function IT(e){return{lastError:e instanceof Error?e.message:String(e),lastErrorAt:new Date().toISOString()}}function LT(){return new Date().toISOString()}function RT(e){if(!(e instanceof Error))return null;let t=xT.exec(e.message);if(!t)return null;let n=Number.parseInt(t[1]??``,10);return Number.isInteger(n)?n:null}function zT(e,t){return RT(e)===t}function BT(e,t){return!e||!t?!1:e.alias===t.alias&&e.hostname===t.hostname&&e.username===t.username&&e.port===t.port}function VT(e){return e?wg().find(t=>BT(t.desktopSsh,e))??null:null}function HT(e){return Object.fromEntries(e.map(e=>[e.environmentId,e]))}function UT(e){return new Map(e.map(e=>[e,Tg(e)??null]))}async function WT(e){let t=HT(wg());for(let[n,r]of e){if(r){t[n]=r;continue}delete t[n]}let n=Object.values(t);await vg().persistence.setSavedEnvironmentRegistry(n.map(e=>_r(e))),xg.setState({byId:t})}async function GT(e,t){let n=window.desktopBridge;if(!n)throw Error(`SSH launch is only available in the desktop app.`);return await n.ensureSshEnvironment(e,t)}function KT(){let e=window.desktopBridge;if(!e)throw Error(`SSH launch is only available in the desktop app.`);return e}async function qT(e){return await KT().fetchSshEnvironmentDescriptor(e)}async function JT(e,t){return await KT().bootstrapSshBearerSession(e,t)}async function YT(e,t){return await KT().fetchSshSessionState(e,t)}async function XT(e,t,n){let r=await KT().issueSshWebSocketToken(t,n),i=new URL(e,window.location.origin);return i.searchParams.set(`wsToken`,r.token),i.toString()}async function ZT(e,t){if(!e.desktopSsh)return{record:e,pairingToken:null,remotePort:null,remoteServerKind:null};let n=await GT(e.desktopSsh,t),r={...e,httpBaseUrl:n.httpBaseUrl,wsBaseUrl:n.wsBaseUrl,desktopSsh:n.target};return(r.httpBaseUrl!==e.httpBaseUrl||r.wsBaseUrl!==e.wsBaseUrl||!BT(r.desktopSsh,e.desktopSsh))&&(await Eg(r),xg.getState().upsert(r)),{record:r,pairingToken:n.pairingToken,remotePort:n.remotePort??null,remoteServerKind:n.remoteServerKind??null}}async function QT(e){let t=UT([e.environmentId]),n=await ZT(e,{issuePairingToken:!0});if(!n.pairingToken)throw await WT(t),Error(`Desktop SSH launch did not return a pairing token.`);let r=await JT(n.record.httpBaseUrl,n.pairingToken).catch(async e=>{await WT(t);let r=[`local ${n.record.httpBaseUrl}`,`remote port ${n.remotePort??`unknown`}`,n.remoteServerKind?`remote server ${n.remoteServerKind}`:null].filter(Boolean).join(`, `),i=e instanceof Error?e.message:String(e);throw Error(`${i} (${r})`)});if(!await Og(n.record.environmentId,r.sessionToken))throw await WT(t),Error(`Unable to persist saved environment credentials.`);return{record:n.record,bearerToken:r.sessionToken,role:r.role??null}}function $T(e){X.getState().patch(e,{connectionState:`connecting`,lastError:null,lastErrorAt:null})}function eE(e){let t=LT();X.getState().patch(e,{connectionState:`connected`,authState:`authenticated`,connectedAt:t,disconnectedAt:null,lastError:null,lastErrorAt:null}),xg.getState().markConnected(e,t)}function tE(e,t){X.getState().patch(e,{connectionState:`disconnected`,disconnectedAt:LT(),...t&&t.trim().length>0?{lastError:t,lastErrorAt:LT()}:{}})}function nE(e,t){X.getState().patch(e,{connectionState:`error`,...IT(t)})}function rE(e){if(e.length<2)return[...e];let t=[];for(let n of e){let e=t.at(-1);if(e?.type===`thread.message-sent`&&n.type===`thread.message-sent`&&e.payload.threadId===n.payload.threadId&&e.payload.messageId===n.payload.messageId){t[t.length-1]={...n,payload:{...n.payload,attachments:n.payload.attachments??e.payload.attachments,createdAt:e.payload.createdAt,text:!n.payload.streaming&&n.payload.text.length>0?n.payload.text:e.payload.text+n.payload.text}};continue}t.push(n)}return t}function iE(e){return e.serverThreadArchivedAt===void 0?e.hasDraftThread:e.serverThreadArchivedAt===null}function aE(e,t){if(e.length===0)return;let n=Mg(e),r=rE(e),i=e.some(e=>e.type===`project.created`||e.type===`project.meta-updated`||e.type===`project.deleted`);n.needsProviderInvalidation&&vT.markProviderInvalidationNeeded(),vT.applyOrchestrationEvents(t,r),i&&vT.syncProjects(t),e.some(e=>e.type===`thread.created`||e.type===`thread.deleted`)&&vT.syncThreads(t);for(let e of n.promoteDraftThreadIds)bi(a(t,e));for(let e of n.clearDeletedThreadIds)vT.clearThreadDraft(a(t,e));for(let n of e)n.type===`project.deleted`&&vT.clearProjectDraftThread(o(t,n.payload.projectId));for(let e of n.removeTerminalStateThreadIds)vT.clearTerminalState(a(t,e));$().reconcileThreadDetailSubscriptionEvictionForEnvironment(t)}function oE(e,t){aE([e],t)}function sE(e=null){let t=()=>e===null||Lw.getState().generation===e;return{resetShellProjection:e=>{t()&&$().resetShellProjection(e)},applyShellEvent:(e,n)=>{t()&&$().applyShellEvent(e,n)},syncShellSnapshot:(n,r)=>{t()&&$().syncShellSnapshot(n,r,{onCurrent:()=>{e!==null&&Ba(r,e)},onReady:()=>{e!==null&&Ba(r,e)}})},applyTerminalEvent:(e,n)=>{if(!t())return;let r=a(n,ce.make(e.threadId)),i=Eb(Q.getState(),r),o=yi.getState().getDraftThreadByRef(r)!==null;iE({serverThreadArchivedAt:i?.archivedAt,hasDraftThread:o})&&zx.getState().applyTerminalEvent(r,e)}}}function cE(e){let t=Ar(e);if(!t)throw Error(`Unable to resolve websocket URL for ${e?.label??`primary environment`}.`);let n=e?.label??null;if(l()){let t=hh(),r=t.lifecycleHandlers(),i=new Hx(()=>t.nextUrl(),{...r,getConnectionLabel:()=>n,getEnvironmentId:()=>e?.environmentId??null,onOpen:()=>{r.onOpen?.(),rS(`primary-ws-open`)}});return tr(i,Pr(i,{manageTransport:!1}))}let r=async e=>{let n=await ai(),r=new URL(t,window.location.origin);return r.pathname=e,r.searchParams.set(`wsToken`,n.token),r.toString()};return tr(new Bx(()=>r(`/ws`),{getConnectionLabel:()=>n,getEnvironmentId:()=>e?.environmentId??null,getVersionMismatchHint:()=>qx(Yn())?.hint??null,onOpen:()=>{rS(`primary-ws-open`)}}),Pr(new Vx(()=>r(`/ws/device`),{getConnectionLabel:()=>n}),{openFrameSource:(e,t)=>$n({udid:e,handlers:t,socket:Eh,resolveUrl:()=>r(`/ws/device-frames`)})}))}async function lE(e,t,n){let r=Tg(e);if(!r)throw Error(`Saved environment ${e} not found.`);let i=r.desktopSsh?await XT(r.wsBaseUrl,r.httpBaseUrl,t):await tv({wsBaseUrl:r.wsBaseUrl,httpBaseUrl:r.httpBaseUrl,bearerToken:t}),a=new URL(i,window.location.origin);return a.pathname=n,a.toString()}function uE(e,t){return X.getState().ensure(e),tr(new Bx(()=>lE(e,t,`/ws`),{getConnectionLabel:()=>Tg(e)?.label??null,getEnvironmentId:()=>e,getVersionMismatchHint:()=>qx(X.getState().byId[e]?.serverConfig)?.hint??null,onAttempt:()=>{$T(e)},onOpen:()=>{eE(e)},onError:t=>{let n=qx(X.getState().byId[e]?.serverConfig);X.getState().patch(e,{connectionState:`error`,lastError:$x(t,n),lastErrorAt:LT()})},onClose:(t,n)=>{n.intentional||tE(e,$x(t.reason,qx(X.getState().byId[e]?.serverConfig)))}}),Pr(new Vx(()=>lE(e,t,`/ws/device`),{getConnectionLabel:()=>Tg(e)?.label??null}),{openFrameSource:(n,r)=>$n({udid:n,handlers:r,socket:Eh,resolveUrl:()=>lE(e,t,`/ws/device-frames`)})}))}async function dE(e,t,n,r,i){let a=Tg(e);if(!a)throw Error(`Saved environment ${e} not found.`);let[o,s]=await Promise.all([i?Promise.resolve(i):n.server.getConfig(),a.desktopSsh?YT(a.httpBaseUrl,t):$_({httpBaseUrl:a.httpBaseUrl,bearerToken:t})]);X.getState().patch(a.environmentId,{authState:s.authenticated?`authenticated`:`requires-auth`,descriptor:o.environment,serverConfig:o,role:s.authenticated?s.role??r??null:null}),xg.getState().rename(a.environmentId,o.environment.label)}function fE(e){return $().register(e)}async function pE(e){return await $().remove(e)}function mE(){let e=Vr();if(!e?.environmentId)throw Error(`Unable to resolve the primary environment.`);let t=$().read(e.environmentId);if(t)return t;let n=l()?Lw.getState().generation:null;return fE(dv({kind:`primary`,knownEnvironment:e,client:cE(e),...n===null?{}:{onResubscribe:e=>$a(e,n),onShellError:e=>Da(e,n)},...sE(n)}))}function hE(){return Vr()?.environmentId?$().connectPrimary():null}async function gE(){await $().disconnectPrimary()}function _E(){return hE()}async function vE(e){let t=globalThis.window?.desktopBridge;if(!t?.prepareDesktopWorkspaceTransport)throw Error(`Desktop workspace transport is unavailable.`);let n=$().read(e.environmentId);if(n)return await n.reconnect(),await n.ensureBootstrapped(),n;let r=new hT(e.environmentId,t),i=new Hx(()=>r.nextUrl(),{preserveSocketPath:!0,webSocketConstructor:e=>r.createSocket(e),retryTransientErrors:!1,reconnectMaxRetries:1e6,getConnectionLabel:()=>e.label,getEnvironmentId:()=>e.environmentId}),a=fE(dv({kind:`saved`,knownEnvironment:{...ii({id:e.environmentId,label:e.label,source:`hub-hosted`,target:{httpBaseUrl:`http://desktop-workspace.invalid`,wsBaseUrl:`ws://desktop-workspace.invalid`}}),environmentId:e.environmentId},client:tr(i),onConfigUpdated:t=>{X.getState().ensure(e.environmentId),X.getState().patch(e.environmentId,{descriptor:t.environment,serverConfig:t,connectionState:`connected`})},onWelcome:t=>{X.getState().ensure(e.environmentId),X.getState().patch(e.environmentId,{descriptor:t.environment})},...sE()}));try{return await a.ensureBootstrapped(),a}catch(t){throw await pE(e.environmentId).catch(()=>void 0),t}}async function yE(e,t){return await $().ensureSavedEnvironmentConnection(e,n=>bE(e,t,n))}async function bE(e,t,n=()=>!1){let r=e,i=t?.role??null,a=t?.bearerToken??await Dg(e.environmentId),o=t?.client;for(;;){if(!a){if(e.desktopSsh){let e=await QT(r);r=e.record,a=e.bearerToken,i=e.role}else throw await kg(e.environmentId).catch(()=>void 0),X.getState().patch(e.environmentId,{authState:`requires-auth`,role:null,connectionState:`disconnected`,lastError:`Saved environment is missing its saved credential. Pair it again.`,lastErrorAt:LT()}),Error(`Saved environment is missing its saved credential.`)}r=(await ZT(r)).record;let s=a,c=o??uE(r.environmentId,s),l=DT(),u=dv({kind:`saved`,knownEnvironment:{...ii({id:r.environmentId,label:r.label,source:`manual`,target:{httpBaseUrl:r.httpBaseUrl,wsBaseUrl:r.wsBaseUrl}}),environmentId:r.environmentId},client:c,refreshMetadata:async()=>{await dE(r.environmentId,s,c)},onConfigUpdated:e=>{l.resolve(e),X.getState().patch(r.environmentId,{descriptor:e.environment,serverConfig:e})},onWelcome:e=>{X.getState().patch(r.environmentId,{descriptor:e.environment})},...sE()});try{try{let e=t?.serverConfig??await AT(l.promise,yT);await dE(r.environmentId,s,c,i,e)}catch(e){if(!(r.desktopSsh?zT(e,401):Hc(e)&&e.status===401))throw e;if(!r.desktopSsh)throw await kg(r.environmentId),Error(`Saved environment credential expired. Pair it again.`,{cause:e});let t=await QT(r);r=t.record,a=t.bearerToken,i=t.role,await u.dispose().catch(()=>void 0),o=void 0;continue}if(n())throw await u.dispose().catch(()=>void 0),new sl(r.environmentId);return fE(u),u}catch(e){throw e instanceof sl?e:(nE(r.environmentId,e),await pE(r.environmentId).catch(()=>!1)||await u.dispose().catch(()=>void 0),e)}}}function xE(e){if(typeof document>`u`||typeof window>`u`)return bT;let t=()=>{if(document.visibilityState===`hidden`){ST=Date.now();return}document.visibilityState===`visible`&&ST!==null&&(ST=null,e(`visibilitychange`))},n=t=>{(t.persisted||ST!==null)&&(ST=null,e(`pageshow`))};return document.addEventListener(`visibilitychange`,t),window.addEventListener(`pageshow`,n),()=>{document.removeEventListener(`visibilitychange`,t),window.removeEventListener(`pageshow`,n)}}function SE(e){return $().subscribe(e)}function CE(){return $().list()}function wE(e){return $().read(e)}function TE(e){let t=wE(e);if(!t)throw Error(`No websocket client registered for environment ${e}.`);return t}async function EE(e,t){let n=await TE(e).client.server.updateSettings(t);if(Vr()?.environmentId===e){Er(n);return}let r=X.getState().byId[e]?.serverConfig;r&&X.getState().patch(e,{serverConfig:{...r,settings:n}})}function DE(){return mE()}async function OE(e){let t=Tg(e);$().cancelPendingSavedEnvironmentConnection(e),$().read(e)?.kind===`saved`&&await pE(e).catch(()=>!1),tE(e),t?.desktopSsh&&typeof window<`u`&&(await window.desktopBridge?.disconnectSshEnvironment(t.desktopSsh),await kg(e))}async function kE(e){let t=Tg(e);if(!t)throw Error(`Saved environment not found.`);let n=$().read(e);if(!n){$T(e);try{await yE(t);return}catch(t){if(gT(t))return;throw nE(e,t),t}}$T(e);try{t.desktopSsh&&await ZT(t),await n.reconnect()}catch(n){if(t.desktopSsh)try{let n=await QT(Tg(e)??t);await pE(e).catch(()=>!1),await yE(n.record,{bearerToken:n.bearerToken,role:n.role});return}catch(t){if(gT(t))return;throw nE(e,t),t}throw nE(e,n),n}}async function AE(e){await OE(e),MT(e),xg.getState().remove(e),X.getState().clear(e),Q.getState().removeEnvironmentState(e),await kg(e)}async function jE(e){let t=nv({...e.pairingUrl===void 0?{}:{pairingUrl:e.pairingUrl},...e.host===void 0?{}:{host:e.host},...e.pairingCode===void 0?{}:{pairingCode:e.pairingCode}}),n=e.desktopSsh?await qT(t.httpBaseUrl):await ev({httpBaseUrl:t.httpBaseUrl}),r=n.environmentId,i=UT([r]),a=Tg(r)??VT(e.desktopSsh),o=a&&a.environmentId!==r?a:null,s=e.desktopSsh?await JT(t.httpBaseUrl,t.credential):await Q_({httpBaseUrl:t.httpBaseUrl,credential:t.credential}),c={environmentId:r,label:e.label.trim()||a?.label||n.label,wsBaseUrl:t.wsBaseUrl,httpBaseUrl:t.httpBaseUrl,createdAt:a?.createdAt??LT(),lastConnectedAt:LT(),...e.desktopSsh??a?.desktopSsh?{desktopSsh:e.desktopSsh??a?.desktopSsh}:{}};if(await Eg(c),!await Og(r,s.sessionToken))throw await WT(i),Error(`Unable to persist saved environment credentials.`);return xg.getState().upsert(c),o&&await AE(o.environmentId),await pE(r).catch(()=>!1),await yE(c,{bearerToken:s.sessionToken,role:s.role}),c}async function ME(e,t){let n=await GT(e,{issuePairingToken:!0});if(!n.pairingToken)throw Error(`Desktop SSH launch did not return a pairing token.`);return await jE({label:t?.label?.trim()||n.target.alias,host:n.httpBaseUrl,pairingCode:n.pairingToken,desktopSsh:n.target}).catch(e=>{let t=[`local ${n.httpBaseUrl}`,`remote port ${n.remotePort??`unknown`}`,n.remoteServerKind?`remote server ${n.remoteServerKind}`:null].filter(Boolean).join(`, `),r=e instanceof Error?e.message:String(e);throw Error(`${r} (${t})`)})}async function NE(e){await $().read(e)?.ensureBootstrapped()}function PE(){return $().start()}var FE=n({waitForSavedEnvironmentRegistryHydration:()=>Cg});export{KC as $,rs as $n,w_ as $t,Bw as A,Td as An,Hb as At,_w as B,El as Bn,bb as Bt,Zw as C,Bh as Cn,Ix as Ct,Uw as D,Dh as Dn,Jb as Dt,nT as E,zh as En,Gb as Et,Pw as F,_u as Fn,gb as Ft,aC as G,Ol as Gn,vb as Gt,pw as H,Al as Hn,Sb as Ht,Tw as I,bu as In,Ob as It,RC as J,yl as Jn,Q as Jt,oC as K,wl as Kn,_b as Kt,Cw as L,Ql as Ln,yb as Lt,Rw as M,zu as Mn,Bb as Mt,Lw as N,Ru as Nn,mb as Nt,Vw as O,kh as On,qb as Ot,zw as P,Bu as Pn,Tb as Pt,qC as Q,os as Qn,F_ as Qt,xw as R,$l as Rn,Cb as Rt,iT as S,_g as Sn,zx as St,eT as T,Hh as Tn,Xb as Tt,dw as U,Tl as Un,Eb as Ut,cw as V,Sl as Vn,xb as Vt,sw as W,Dl as Wn,Db as Wt,vC as X,bl as Xn,sv as Xt,yC as Y,_l as Yn,xv as Yt,iC as Z,us as Zn,I_ as Zt,PE as _,wg as _n,iS as _t,gE as a,m_ as an,YC as at,oT as b,X as bn,Zx as bt,DE as c,r_ as cn,qS as ct,FT as d,Gg as dn,BS as dt,R_ as en,QS as et,wE as f,n_ as fn,GS as ft,NT as g,Ig as gn,rS as gt,TE as h,Fg as hn,yS as ht,vE as i,zg as in,MC as it,Fw as j,Vu as jn,Ub as jt,Hw as k,Oh as kn,Wb as kt,CE as l,t_ as ln,RS as lt,AE as m,Lg as mn,bS as mt,jE as n,q_ as nn,LC as nt,OE as o,Kg as on,ZS as ot,kE as p,x_ as pn,LS as pt,kC as q,kl as qn,hb as qt,ME as r,o_ as rn,AC as rt,NE as s,S_ as sn,YS as st,FE as t,E_ as tn,tC as tt,PT as u,p_ as un,US as ut,SE as v,jg as vn,Jx as vt,Xw as w,Rh as wn,Px as wt,rT as x,vg as xn,qx as xt,EE as y,xg as yn,Qx as yt,bw as z,tu as zn,wb as zt};
|