ryco-cli 0.1.9 → 0.1.10
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/{AcpNativeLogging-CwXNgeCl.mjs → AcpNativeLogging-Ba9Nn9Re.mjs} +1 -1
- package/dist/{AcpNativeLogging-BBLrglnY.cjs → AcpNativeLogging-Be1KGJfF.cjs} +1 -1
- package/dist/{AzureDevOpsSourceControlProvider-lRTMr9X9.mjs → AzureDevOpsSourceControlProvider-CGlK6M0b.mjs} +2 -2
- package/dist/{AzureDevOpsSourceControlProvider-BMQxxk2n.cjs → AzureDevOpsSourceControlProvider-CVj-F-pW.cjs} +2 -2
- package/dist/{BitbucketSourceControlProvider-F1J_75c0.mjs → BitbucketSourceControlProvider-BV6iRDi7.mjs} +2 -2
- package/dist/{BitbucketSourceControlProvider-BXDk4GzL.cjs → BitbucketSourceControlProvider-CEZEd4PX.cjs} +2 -2
- package/dist/{ClaudeDriver-B_pvBuh5.cjs → ClaudeDriver-lBU7EyUX.cjs} +2 -2
- package/dist/{ClaudeDriver-BpYiEftb.mjs → ClaudeDriver-rooMNrJz.mjs} +2 -2
- package/dist/{CodexDriver-Bcju44ZM.cjs → CodexDriver-CZCIJSLV.cjs} +4 -4
- package/dist/{CodexDriver-6IRQy37T.mjs → CodexDriver-DBz2rPXb.mjs} +4 -4
- package/dist/{CodexTextGeneration-CCvcMT6Y.mjs → CodexTextGeneration-BeG7ymPC.mjs} +1 -1
- package/dist/{CodexTextGeneration-yaU53Kmz.cjs → CodexTextGeneration-BvIcyD1P.cjs} +1 -1
- package/dist/{CopilotDriver-CTxl0KmP.cjs → CopilotDriver-CX5zhEdZ.cjs} +3 -3
- package/dist/{CopilotDriver-BCe5V1Ll.mjs → CopilotDriver-D36vbGbn.mjs} +3 -3
- package/dist/{CursorDriver-D1Agqrbj.cjs → CursorDriver-CPBVeesr.cjs} +3 -3
- package/dist/{CursorDriver-C4V25d1y.mjs → CursorDriver-DWuuOSkJ.mjs} +3 -3
- package/dist/{ForgejoSourceControlProvider-C-NI9vaC.mjs → ForgejoSourceControlProvider-CeN7Snfr.mjs} +2 -2
- package/dist/{ForgejoSourceControlProvider-CV1lljGK.cjs → ForgejoSourceControlProvider-CzmmcAZO.cjs} +2 -2
- package/dist/{GitHubSourceControlProvider-B_7J1jOl.cjs → GitHubSourceControlProvider-DfFR9O2o.cjs} +2 -2
- package/dist/{GitHubSourceControlProvider-BeCMPF92.mjs → GitHubSourceControlProvider-Dmz1LJct.mjs} +2 -2
- package/dist/{GitLabSourceControlProvider-0BeWchVS.mjs → GitLabSourceControlProvider-C21lwphV.mjs} +2 -2
- package/dist/{GitLabSourceControlProvider-U0xcv577.cjs → GitLabSourceControlProvider-DGoelNmL.cjs} +2 -2
- package/dist/{GrokDriver-mkLP3IZl.cjs → GrokDriver-CIXj_4ry.cjs} +3 -3
- package/dist/{GrokDriver-DFw7DOdK.mjs → GrokDriver-qKX1a63G.mjs} +3 -3
- package/dist/{OpenCodeDriver-ChWHrFi7.mjs → OpenCodeDriver-CbdswhqU.mjs} +2 -2
- package/dist/{OpenCodeDriver-C_KFYA-P.cjs → OpenCodeDriver-DDEuwtXl.cjs} +2 -2
- package/dist/{SourceControlProviderDiscoveryCatalog-BTJDoEx1.mjs → SourceControlProviderDiscoveryCatalog-4_4yahsa.mjs} +1 -1
- package/dist/{SourceControlProviderDiscoveryCatalog-Bwu_JBJN.cjs → SourceControlProviderDiscoveryCatalog-DJWDCoup.cjs} +1 -1
- package/dist/bin.cjs +46 -20
- package/dist/bin.mjs +46 -20
- package/dist/client/assets/AccountSettings-CxbiGHT-.js +1 -0
- package/dist/client/assets/{AiFocusSettings-DGHWPxgZ.js → AiFocusSettings-Cx2vpGdu.js} +1 -1
- package/dist/client/assets/{AnimatedHeight-BwF3D1vB.js → AnimatedHeight-D5lUTPRn.js} +1 -1
- package/dist/client/assets/AppearanceSettings-eWri4YVm.js +1 -0
- package/dist/client/assets/{BranchToolbar.logic-CvclFpSW.js → BranchToolbar.logic-C1Dh4xQW.js} +1 -1
- package/dist/client/assets/{ChatRightPanel-CL4qBTZb.js → ChatRightPanel-DAVHrLN_.js} +9 -9
- package/dist/client/assets/{ChatThreadRouteView-BuOmyy7a.js → ChatThreadRouteView-D11uiGPL.js} +1 -1
- package/dist/client/assets/{CommandPaletteDialog-lCv8qmpm.js → CommandPaletteDialog-DDXuLFyX.js} +1 -1
- package/dist/client/assets/{CompositeItem-e0rusLTG.js → CompositeItem-D-K93PI3.js} +1 -1
- package/dist/client/assets/{CompositeRoot-vnNIb6NL.js → CompositeRoot-Cee5L4T9.js} +1 -1
- package/dist/client/assets/ConnectionsSettings-Cf1RRkcn.js +7 -0
- package/dist/client/assets/{DiagnosticsSettings-CxT6modq.js → DiagnosticsSettings-R00QjM1b.js} +2 -2
- package/dist/client/assets/{DialogHandle-DZVZpjWD.js → DialogHandle-pL0RAsXa.js} +1 -1
- package/dist/client/assets/{DialogPopup-BIJxt62s.js → DialogPopup-DqvvwMxX.js} +1 -1
- package/dist/client/assets/DialogRoot-BZCu6XdB.js +1 -0
- package/dist/client/assets/{DialogTitle-CtpwXIBL.js → DialogTitle-BamZsRNz.js} +1 -1
- package/dist/client/assets/{DialogTrigger-CdeFWE8i.js → DialogTrigger-DR3vtVpa.js} +1 -1
- package/dist/client/assets/{DialogViewport-C2oKvkDR.js → DialogViewport-CuRGvCfw.js} +1 -1
- package/dist/client/assets/{DraftChatThreadRouteView-FriWZLgB.js → DraftChatThreadRouteView-CGMtPPGt.js} +1 -1
- package/dist/client/assets/{ExternalIdentityWeb.logic-DsqwSlwL.js → ExternalIdentityWeb.logic-D64j70NH.js} +1 -1
- package/dist/client/assets/{GlassSurface-EZnNd1mF.js → GlassSurface-DTmaROoR.js} +1 -1
- package/dist/client/assets/HostedConnectionControls-CXiER4OL.js +1 -0
- package/dist/client/assets/HostedHubRoot-MbaWk1RQ.js +1 -0
- package/dist/client/assets/{HostedNativeAuthorizationRoute-B-F2I7S_.js → HostedNativeAuthorizationRoute-DQ71L_yc.js} +1 -1
- package/dist/client/assets/{HostedRelayTrustNotice-CB0O5OAN.js → HostedRelayTrustNotice-Cv7T3mW5.js} +1 -1
- package/dist/client/assets/{Icons-Cme5LL0k.js → Icons-DjUJVKIP.js} +1 -1
- package/dist/client/assets/{IntegrationsSettingsPanel-CS9vrmPw.js → IntegrationsSettingsPanel-BUDT_BAr.js} +1 -1
- package/dist/client/assets/{KeybindingsSettings-CQi3dbgG.js → KeybindingsSettings-DpU1kPiV.js} +1 -1
- package/dist/client/assets/{McpServersSettings-BMV56xhW.js → McpServersSettings-DQqM_vIq.js} +1 -1
- package/dist/client/assets/{MobileSheet-C8OrQzw0.js → MobileSheet-PksVmYO6.js} +1 -1
- package/dist/client/assets/{NewWorktreeDialog-DnxmXlh2.js → NewWorktreeDialog-CAe3UUk5.js} +1 -1
- package/dist/client/assets/{NoActiveThreadState-BWs9JspL.js → NoActiveThreadState-B020r2KX.js} +1 -1
- package/dist/client/assets/NodeSecuritySettings-DlVOOlej.js +1 -0
- package/dist/client/assets/{OpinionatedPluginsSettings-BcGJ1f7b.js → OpinionatedPluginsSettings-DMshW6cD.js} +1 -1
- package/dist/client/assets/{PhoneGetAppInterstitial-BJGf9FwA.js → PhoneGetAppInterstitial-BCO-RNVk.js} +1 -1
- package/dist/client/assets/{PhoneGetAppInterstitialBackdrop-KgY3ydJF.js → PhoneGetAppInterstitialBackdrop-CkHNzjRm.js} +1 -1
- package/dist/client/assets/{PhoneHome-kBrFqF5K.js → PhoneHome-DY2ItxYl.js} +1 -1
- package/dist/client/assets/{PhoneSettingsSurface-CBI6Gl8b.js → PhoneSettingsSurface-DTP9FXLL.js} +1 -1
- package/dist/client/assets/{ProjectFavicon-D0HVbYDF.js → ProjectFavicon-Dopa4Rxy.js} +1 -1
- package/dist/client/assets/{ProviderModelPicker-DZTCKskK.js → ProviderModelPicker-ChoxerzY.js} +1 -1
- package/dist/client/assets/ProviderUpdateLaunchNotification.logic-BkoRegCn.js +1 -0
- package/dist/client/assets/ProvidersSettingsPanel-Ubea3yAA.js +1 -0
- package/dist/client/assets/{RedactedSensitiveText-CRGSSHz3.js → RedactedSensitiveText-CdVeknPX.js} +1 -1
- package/dist/client/assets/RootAppShell-BkUPk443.js +6 -0
- package/dist/client/assets/{RycoLetterMark-E82lj57c.js → RycoLetterMark-GW-n9UxM.js} +1 -1
- package/dist/client/assets/SettingsDialog-DMPrhOeR.js +1 -0
- package/dist/client/assets/SettingsPanels-ChP1z6Bu.js +3 -0
- package/dist/client/assets/{SettingsPanels.editor-DTAK4nlM.js → SettingsPanels.editor-CiyAxlms.js} +1 -1
- package/dist/client/assets/{SourceControlSettings-CpnAAcyj.js → SourceControlSettings-8w3XlkuZ.js} +1 -1
- package/dist/client/assets/{StatisticsPage-DwU3oJRO.js → StatisticsPage-D4lU63rD.js} +1 -1
- package/dist/client/assets/{StatisticsPanel-8OSQWA79.js → StatisticsPanel-C2yBieuM.js} +1 -1
- package/dist/client/assets/{StatisticsSettingsLink-Bb86VtRL.js → StatisticsSettingsLink-DZwvRI-Y.js} +1 -1
- package/dist/client/assets/{ThreadStatusIndicators-wgiSGtn6.js → ThreadStatusIndicators-B43wkv-s.js} +0 -0
- package/dist/client/assets/{ThreadTerminalDrawer-Dju6roQA.js → ThreadTerminalDrawer-BYQ6EMgr.js} +1 -1
- package/dist/client/assets/{ThreadWorkspacePanel-hfIocZRN.js → ThreadWorkspacePanel-DuaQ9DMj.js} +1 -1
- package/dist/client/assets/{ToolbarRootContext-CgV898DN.js → ToolbarRootContext-Cp1bgmpz.js} +1 -1
- package/dist/client/assets/{WorkItemsTab-DYgsIthY.js → WorkItemsTab-BDfun24H.js} +6 -6
- package/dist/client/assets/{alert-DFo8_l6D.js → alert-DdU9OGtC.js} +1 -1
- package/dist/client/assets/{alert-dialog-Cmodiuqg.js → alert-dialog-zAmnOpaF.js} +1 -1
- package/dist/client/assets/{authorization-CFcCWeGd.js → authorization-mIJKV2yp.js} +1 -1
- package/dist/client/assets/{badge-BbJiUmhG.js → badge-CNPL77i3.js} +1 -1
- package/dist/client/assets/{branding-CG1VEma6.js → branding-yW_ACj9l.js} +1 -1
- package/dist/client/assets/{button-BT6cGe5S.js → button-CXfaxtRp.js} +1 -1
- package/dist/client/assets/{capabilities-CK9Wa-Au.js → capabilities-j43xmCXg.js} +1 -1
- package/dist/client/assets/{chatThreadActions-Ooky34bb.js → chatThreadActions-DQ8aOQ1g.js} +1 -1
- package/dist/client/assets/{collapsible-BIEfHdzc.js → collapsible-oJfDmFRs.js} +1 -1
- package/dist/client/assets/{command-BjXuIvYa.js → command-DK1D8p4-.js} +1 -1
- package/dist/client/assets/{composerDraftStore-_Xy-iY4b.js → composerDraftStore-BaAeiPHc.js} +1 -1
- package/dist/client/assets/copy-UQjKGt7t.js +1 -0
- package/dist/client/assets/{data-list-iVYHRfWS.js → data-list-BpzwKa1z.js} +1 -1
- package/dist/client/assets/{desktopUpdateAtoms-C9VOpM6h.js → desktopUpdateAtoms-Cy06xm8M.js} +1 -1
- package/dist/client/assets/{desktopWorkspace-BOWgdyPs.js → desktopWorkspace-Cw4Fu0Dd.js} +1 -1
- package/dist/client/assets/{device-CLd1blIe.js → device-hx7RX9fI.js} +1 -1
- package/dist/client/assets/{dialog-BUIS3TXH.js → dialog-JVv-MNDj.js} +1 -1
- package/dist/client/assets/{draft-input-CUkU2EAu.js → draft-input-CxoGkZxM.js} +1 -1
- package/dist/client/assets/{editorPreferences-C79SevBP.js → editorPreferences-C3i2Nkh2.js} +1 -1
- package/dist/client/assets/{empty-BNn5X77p.js → empty-DhkXzm1N.js} +1 -1
- package/dist/client/assets/{env-CBdFekj3.js → env-B4arEvJg.js} +1 -1
- package/dist/client/assets/{getPseudoElementBounds-CWoLtsYr.js → getPseudoElementBounds-NLvUMZyQ.js} +1 -1
- package/dist/client/assets/{group-a6GUMeTh.js → group-CafmSbGU.js} +1 -1
- package/dist/client/assets/{index-Bbc24tew.js → index-COc-h_V9.js} +2 -2
- package/dist/client/assets/{input-zjUwoDs3.js → input-Bz9pd_f3.js} +1 -1
- package/dist/client/assets/{kbd-BGOWI5KX.js → kbd-qh5s29Yp.js} +1 -1
- package/dist/client/assets/{keybindings-n2U57Td0.js → keybindings-BCns_TPr.js} +1 -1
- package/dist/client/assets/{label-DWGvDLsD.js → label-Ct6uH6qL.js} +1 -1
- package/dist/client/assets/{lib-DoLGGVrW.js → lib-BBbQoz14.js} +1 -1
- package/dist/client/assets/{logging-FtLrPmK_.js → logging-M8H3z7rQ.js} +1 -1
- package/dist/client/assets/{main-C2i8ecSj.js → main-9Wu8G64Y.js} +2 -2
- package/dist/client/assets/main-DaYHZt-J.css +2 -0
- package/dist/client/assets/{menu-CwPZHq2g.js → menu-DL-18Hfn.js} +1 -1
- package/dist/client/assets/{popover-j6ZF-s94.js → popover-C9y_0-ZN.js} +1 -1
- package/dist/client/assets/{primary-0ymoUGkq.js → primary-OskAInOO.js} +1 -1
- package/dist/client/assets/{projectPaths-CHDYD_Gc.js → projectPaths-DSRhOXwD.js} +1 -1
- package/dist/client/assets/{providerDriverMeta-lsEf84Mz.js → providerDriverMeta-DcAmgw5o.js} +1 -1
- package/dist/client/assets/{providerIconUtils-_WuNo2Ek.js → providerIconUtils-DSXSWHwg.js} +1 -1
- package/dist/client/assets/providerInstances-D5NRn-MS.js +1 -0
- package/dist/client/assets/providerModels-D5NRn-MS.js +1 -0
- package/dist/client/assets/{qr-code-DbscZ6Qz.js → qr-code-DsN9sWfN.js} +1 -1
- package/dist/client/assets/{radio-group-BTtFIcDI.js → radio-group-DGUZYMAN.js} +1 -1
- package/dist/client/assets/{resolveAriaLabelledBy-CxOsaNI8.js → resolveAriaLabelledBy-l3Wj7Mso.js} +1 -1
- package/dist/client/assets/{rightPanelRouteSearch-DkhE1otz.js → rightPanelRouteSearch-DE_7uWlN.js} +1 -1
- package/dist/client/assets/runtime-CqhG6EOG.js +1 -0
- package/dist/client/assets/{scroll-area-B-bu3v0j.js → scroll-area-gtur6NxN.js} +1 -1
- package/dist/client/assets/{scrollEdges-CDEU4fOg.js → scrollEdges-Ccq9Jqpk.js} +1 -1
- package/dist/client/assets/{select-rPdFVPfm.js → select-BB7zCkpA.js} +1 -1
- package/dist/client/assets/{separator-CaVw81t6.js → separator-DOGIr29S.js} +1 -1
- package/dist/client/assets/{session-logic-B0shVXpN.js → session-logic-DOQPF0oN.js} +1 -1
- package/dist/client/assets/{settingsDialogStore-CPtQPrek.js → settingsDialogStore-DM98Sea0.js} +1 -1
- package/dist/client/assets/settingsLayout-CS7P71tz.js +1 -0
- package/dist/client/assets/settingsSections.logic-F8RXVmAq.js +1 -0
- package/dist/client/assets/{sheet-DQBndeJT.js → sheet-DVALF6mw.js} +1 -1
- package/dist/client/assets/{sidebar-H-CSxQVD.js → sidebar-Dft4bIEi.js} +1 -1
- package/dist/client/assets/{sidebarProjectFolders-CsZlmaJg.js → sidebarProjectFolders-BOfJCYjK.js} +1 -1
- package/dist/client/assets/{sidebarStatusText-DjLAEM1H.js → sidebarStatusText-DaNVnBiR.js} +1 -1
- package/dist/client/assets/{skeleton-CCuGgPK1.js → skeleton-CBHDWLDX.js} +1 -1
- package/dist/client/assets/{spinner-CgrOdIjl.js → spinner-JhkVC8d7.js} +1 -1
- package/dist/client/assets/src-Vf4LVnMX.js +14 -0
- package/dist/client/assets/storeSelectors-CP3vrsGY.js +1 -0
- package/dist/client/assets/{switch-cMx5Wv_R.js → switch-vkC1QGDn.js} +1 -1
- package/dist/client/assets/{terminal-links-DERnXf-G.js → terminal-links-BaX-ICJT.js} +1 -1
- package/dist/client/assets/{textarea-DIqqrD8A.js → textarea-Cz_x76EQ.js} +1 -1
- package/dist/client/assets/{threadPriorityRefreshRuntime-D2XRdn_X.js → threadPriorityRefreshRuntime-DqqfcbZE.js} +1 -1
- package/dist/client/assets/toast-Bnfw8LOb.js +1 -0
- package/dist/client/assets/{toggle-BIs83JSj.js → toggle-DNtHlm45.js} +1 -1
- package/dist/client/assets/{toggle-group-0LgplGMc.js → toggle-group-BNtjyirT.js} +1 -1
- package/dist/client/assets/{tooltip-BaJgdXlL.js → tooltip-lYatfjuN.js} +1 -1
- package/dist/client/assets/types-CP3vrsGY.js +1 -0
- package/dist/client/assets/{uiStateStore-hgy2ilHo.js → uiStateStore-VVodpTkG.js} +1 -1
- package/dist/client/assets/{useAtlassian-1BSXt3BO.js → useAtlassian-DzQhYzCz.js} +0 -0
- package/dist/client/assets/{useButton-_xmxdcVX.js → useButton-CQaIys_r.js} +1 -1
- package/dist/client/assets/{useCompositeListItem-dLIU4XjY.js → useCompositeListItem-D_u_nlWz.js} +1 -1
- package/dist/client/assets/useCopyToClipboard-BTpWxumf.js +1 -0
- package/dist/client/assets/{useDebouncedValue-DU7gLY9w.js → useDebouncedValue-Dl2JtWSe.js} +1 -1
- package/dist/client/assets/{useFloatingRootContext-CSPbIu1q.js → useFloatingRootContext-DKAeq7FI.js} +1 -1
- package/dist/client/assets/useHandleNewThread-CzfIpG9Y.js +1 -0
- package/dist/client/assets/{useLabelableId-COmfNFnd.js → useLabelableId-C7EOshps.js} +1 -1
- package/dist/client/assets/{useLocation-DsqdpYA5.js → useLocation-CvhfNIUj.js} +1 -1
- package/dist/client/assets/{useOpenInteractionType-JaQBnIly.js → useOpenInteractionType-D9ngong8.js} +1 -1
- package/dist/client/assets/{usePhoneThreadActions-RjcSVspy.js → usePhoneThreadActions-CiFBnOHD.js} +1 -1
- package/dist/client/assets/{usePopupViewport-wXfO6SZE.js → usePopupViewport-CQTeg5Y-.js} +1 -1
- package/dist/client/assets/{useScrollLock-Dr_P7FLZ.js → useScrollLock-TdF-Iq8H.js} +1 -1
- package/dist/client/assets/{useStatistics-B2NNfOqV.js → useStatistics-CP8uxvx6.js} +1 -1
- package/dist/client/assets/{useSwipeDismiss-B8Fo31QE.js → useSwipeDismiss-DESLmDpT.js} +1 -1
- package/dist/client/assets/{useThreadActions-B9kmG6FU.js → useThreadActions-fOb3ApmL.js} +1 -1
- package/dist/client/assets/{useTriggerFocusGuards-O2ZE3JtI.js → useTriggerFocusGuards-DkAmJBLw.js} +1 -1
- package/dist/client/assets/{useValueChanged-Dj0YXujm.js → useValueChanged-CSGMZCwN.js} +1 -1
- package/dist/client/assets/{utils-c6dglOTK.js → utils-BPUctpTG.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/{collectUint8StreamText-Dn-L1KcR.cjs → collectUint8StreamText-Bb52hlpd.cjs} +36 -6
- package/dist/{collectUint8StreamText-DNY4x71l.mjs → collectUint8StreamText-EDg4F0TU.mjs} +31 -7
- package/dist/{makeManagedServerProvider-D3T5X-B4.mjs → makeManagedServerProvider-Cf8bNWwc.mjs} +1 -1
- package/dist/{makeManagedServerProvider-DNnEIuhW.cjs → makeManagedServerProvider-itynW7xv.cjs} +1 -1
- package/package.json +1 -1
- package/dist/client/assets/AccountSettings-ckhtafp7.js +0 -1
- package/dist/client/assets/AppearanceSettings-CDvljGDS.js +0 -1
- package/dist/client/assets/ConnectionsSettings-BJJrdASq.js +0 -7
- package/dist/client/assets/DialogRoot-8xRqqTn8.js +0 -1
- package/dist/client/assets/HostedConnectionControls-BYS30u9D.js +0 -1
- package/dist/client/assets/HostedHubRoot-Bi0LEQCK.js +0 -1
- package/dist/client/assets/NodeSecuritySettings-iTvQFged.js +0 -1
- package/dist/client/assets/ProviderUpdateLaunchNotification.logic-CtfZzmYI.js +0 -1
- package/dist/client/assets/ProvidersSettingsPanel-DAz8hMXw.js +0 -1
- package/dist/client/assets/RootAppShell-BWtqIOLh.js +0 -6
- package/dist/client/assets/SettingsDialog-RrFirXQp.js +0 -1
- package/dist/client/assets/SettingsPanels-bLK5JAV2.js +0 -3
- package/dist/client/assets/main-an0sD0U2.css +0 -2
- package/dist/client/assets/providerInstances-DEQekDE8.js +0 -1
- package/dist/client/assets/providerModels-DEQekDE8.js +0 -1
- package/dist/client/assets/runtime-BkRtSwRY.js +0 -1
- package/dist/client/assets/settingsLayout-B8os-EWr.js +0 -1
- package/dist/client/assets/settingsSections.logic-Be8uaymC.js +0 -1
- package/dist/client/assets/src-b7-hpIff.js +0 -14
- package/dist/client/assets/storeSelectors-BLHJVLCP.js +0 -1
- package/dist/client/assets/toast-DonYDy-6.js +0 -1
- package/dist/client/assets/types-BLHJVLCP.js +0 -1
- package/dist/client/assets/useCopyToClipboard-qG2nhvjQ.js +0 -1
- package/dist/client/assets/useHandleNewThread-COAg-4eT.js +0 -1
|
@@ -0,0 +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{Ct as ui,It as di,Lt as fi,Mt as pi,Rt as mi,_t as hi,bt as gi,gt as _i,i as vi,n as yi,nt as bi,r as xi,rt as Si,vt as Ci,zt as wi}from"./composerDraftStore-BaAeiPHc.js";import{t as Ti}from"./pairingUrl-rQM9kSGT.js";import{n as Ei,t as Di}from"./visibilityPolling-BwzZdaSN.js";import{i as Oi}from"./branding-yW_ACj9l.js";import{a as ki,n as Ai,r as ji}from"./perfInstrumentation-BT27w4tn.js";import{$ as Mi,A as Ni,B as Pi,Bt as Fi,C as Ii,D as Li,E as Ri,F as zi,Ft as Bi,G as Vi,Gt as Hi,H as Ui,Ht as Wi,I as Gi,It as Ki,J as qi,K as Ji,L as Yi,Lt as Xi,M as Zi,N as Qi,Nt as $i,O as ea,P as ta,Pt as na,Q as ra,R as ia,Rt as aa,S as oa,St as sa,T as ca,U as la,Ut as ua,V as da,Vt as fa,W as pa,Wt as ma,X as ha,Y as ga,Z as _a,_ as va,_t as ya,a as ba,at as xa,b as Sa,bt as Ca,c as wa,ct as Ta,d as Ea,dt as Da,et as Oa,f as ka,ft as Aa,g as ja,gt as Ma,h as Na,ht as Pa,it as Fa,j as Ia,jt as La,k as Ra,l as za,lt as Ba,m as Va,mt as Ha,nt as Ua,o as Wa,ot as Ga,p as Ka,pt as qa,q as Ja,rt as B,s as Ya,st as Xa,tt as Za,u as Qa,ut as $a,vt as eo,w as to,wt as no,x as ro,yt as io,z as ao,zt as oo}from"./authorization-mIJKV2yp.js";import{t as so}from"./presentationTier-xlIjcFab.js";import{r as co}from"./hostedPairing-PogXRAb7.js";import{t as lo}from"./settingsDialogStore-DM98Sea0.js";import{i as uo}from"./uiStateStore-VVodpTkG.js";var V=e(r(),1),fo=Gt,po=vn,mo=globalThis.Number,ho=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=mo(e);return mo.isNaN(t)?m():Mt(t)};function go(e){return{_tag:`Value`,value:e}}function _o(e,t){return{_tag:`Record`,keys:e,value:t}}function vo(e,t){return{_tag:`Array`,length:e,value:t}}Ht(`SourceError`);var yo=yt(`effect/ConfigProvider`,{defaultValue:()=>Do()}),bo={...dn,toJSON(){return{_id:`ConfigProvider`}}},xo=e=>e;function So(e,t){let n=Object.create(bo);return n.load=e,n.mapInput=t,n}function Co(e,t){return So(n=>e(t(n)),n=>Co(e,P(t,n)))}function wo(e){return Co(e,xo)}function To(e,t){return e===``&&!t?void 0:e}function Eo(e,t){let n=t?.preserveEmptyStrings===!0,r=Oo(e);return wo(t=>S(Ao(r,e,t,n)))}function Do(e){return Eo(e?.env??{APP_VERSION:`0.1.10`,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 Oo(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 ko=/^(0|[1-9][0-9]*)$/;function Ao(e,t,n,r){let i=n.map(String).join(`_`),a=To(Object.hasOwn(t,i)?t[i]:void 0,r),o=jo(e,n),s=o?.children?Object.keys(o.children):[];return s.length===0?a===void 0?void 0:go(a):s.every(e=>ko.test(e))?vo(Math.max(...s.map(e=>parseInt(e,10)))+1,a):_o(new Set(s),a)}function jo(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 Mo=`~effect/Config`,No=class{_tag=`ConfigError`;name=`ConfigError`;cause;constructor(e){this.cause=e}get message(){return this.cause.toString()}toString(){return`ConfigError(${this.message})`}},Po={...Se({label:`Config`,evaluate(e){return this.parse(e.getRef(yo))}}),[Mo]:Mo,toJSON(){return{_id:`Config`}}};function Fo(e){let t=Object.create(Po);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 Io=(e,t)=>({_tag:`Resolved`,value:e,hasInput:t}),Lo=e=>({_tag:`Absent`,error:e}),Ro=(e,t)=>({error:e,hasInput:t}),zo=e=>tn(e,`SourceError`),Bo=(e,t)=>e.pipe(Te(e=>zo(e)?ne(Ro(new No(e),t)):x(e))),Vo=()=>`<configuration>`,Ho=(e,t)=>e.load(t).pipe(Bt,an(n=>({provider:e,path:t,node:n,toString:Vo}))),Uo=(e,t)=>Ho(e.provider,[...e.path,t]),Wo=e=>e?.value,Go=(e,t)=>Et(fn,e,new on(vt(e=>t(e)),jn())),Ko=e=>{switch(e._tag){case`Union`:return e.types.every(Ko);case`Objects`:case`Arrays`:case`Suspend`:return!1;default:return!0}},qo=(e,t)=>{switch(e._tag){case`Objects`:return t?._tag===`Record`;case`Arrays`:return t?._tag===`Array`;case`Union`:return e.types.some(e=>qo(e,t));case`Suspend`:return qo(e.thunk(),t);default:return Wo(t)!==void 0}},Jo=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*Uo(n,e);t.node!==void 0&&cn(a,e,t)}return a});return Go(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*Uo(e,n));return t});return Go(e.recur(n),t)}case`Union`:for(let t of e.types)n(t);return Ko(e)?Go(e,e=>S(Wo(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 Go(e,e=>S(Wo(e.node)))}});return n(e)});function Yo(e,t){let n=We(e),r=Ft(n.ast),i=gn(oe(Jo(n.ast))),a=typeof t==`string`?[t]:t??[];return Fo((e,t)=>{let n=[...t,...a];return Bo(Ho(e,n),!1).pipe(F(e=>{let t=qo(r,e.node);return Bo(i(e).pipe(an(e=>Io(e,t)),N(e=>{let r=new No(new Ze(n.length>0?new k(n,e):e));return t?ne(Ro(r,!0)):S(Lo(r))})),t)}))})}var Xo=(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 Zo(e){return Yo(It,e)}function Qo(){return{executionCount:0,isPending:!1,lastArgs:void 0,lastExecutionTime:0,nextExecutionTime:0,status:`idle`,maybeExecuteCount:0}}var $o={enabled:!0,leading:!0,trailing:!0,wait:0},es=class{#e;constructor(e,t){this.fn=e,this.store=new mi(Qo()),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`}}),di(`Throttler`,this)},this.#n=()=>!!wi(this.options.enabled,this),this.#r=()=>wi(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(Qo())},this.key=t.key,this.options={...$o,...t},this.#t(this.options.initialState??{}),this.key&&fi.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},ts=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}}}})),ns=t(((e,t)=>{t.exports=ts()})),rs=e(ns(),1);function is(e){let t=rs.unstable_scheduleCallback(4,e);return()=>rs.unstable_cancelCallback(t)}var as=V.createContext(Fr({scheduleTask:is,defaultIdleTTL:400})),os=new WeakMap;function ss(e,t){let n=os.get(e);n===void 0&&(n=new WeakMap,os.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 cs(e,t){let n=ss(e,t);return V.useSyncExternalStore(n.subscribe,n.snapshot,n.getServerSnapshot)}var ls=(e,t)=>{let n=V.useContext(as);return t?cs(n,V.useMemo(()=>Nr(e,t),[e,t])):cs(n,e)},us=(e,t,n)=>{let r=V.useContext(as);V.useEffect(()=>r.subscribe(e,t,n),[r,e,t,n?.immediate])},ds=`~effect/http/UrlParams`,fs=e=>j(e,ds),ps={...dn,[ds]:ds,[Symbol.iterator](){return this.params[Symbol.iterator]()},toJSON(){return{_id:`UrlParams`,params:Object.fromEntries(this.params)}},[Gn](e){return _s(this,e)},[Be](){return bt(this.params.flat())}},ms=e=>{let t=Object.create(ps);return t.params=e,t},hs=e=>{if(fs(e))return e;let t=gs(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 ms(n)},gs=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=gs(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},_s=zt((e,t)=>vs(e.params,t.params)),vs=Ee(fo([ft(),ft()])),ys=ms([]),bs=De(2,(e,t)=>{let n=hs(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}),xs=`~effect/http/HttpBody`;Ht(`HttpBodyError`);var Ss=class{[xs];constructor(){this[xs]=xs}[rn](){return this.toJSON()}toString(){return Ot(this,{ignoreToString:!0})}},Cs=new class extends Ss{_tag=`Empty`;toJSON(){return{_id:`effect/HttpBody`,_tag:`Empty`}}},ws=class extends Ss{_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}}},Ts=(e,t)=>new ws(e,t??`application/octet-stream`,e.length),Es=new TextEncoder,Ds=(e,t)=>Ts(Es.encode(e),t??`text/plain`),Os=(e,t)=>Ds(JSON.stringify(e),t??`application/json`),ks=`~effect/http/Cookies`,As=`~effect/http/Cookies/Cookie`;Ht(`CookieError`);var js={[ks]:ks,...Sn,toJSON(){return{_id:`effect/Cookies`,cookies:u(this.cookies,e=>e.toJSON())}},pipe(){return qn(this,arguments)}},Ms=e=>{let t=Object.create(js);return t.cookies=e,t},Ns=e=>{let t={};for(let n of e)cn(t,n.name,n);return Ms(t)},Ps=e=>{let t=typeof e==`string`?[e]:e,n=[];for(let e of t){let t=Fs(e.trim());t&&n.push(t)}return Ns(n)};function Fs(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(!Is.test(r))return;let i=t[0].slice(n+1),a=Rs(i);if(t.length===1)return Object.assign(Object.create(Ls),{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(Ls),{name:r,value:a,valueEncoded:i,options:Object.keys(o).length>0?o:void 0})}var Is=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Ls={[As]:As,...Sn,toJSON(){return{_id:`effect/Cookies/Cookie`,name:this.name,value:this.value,options:this.options}}},Rs=e=>{try{return decodeURIComponent(e)}catch{return e}},zs=[[`GET`,`get`],[`POST`,`post`],[`PUT`,`put`],[`DELETE`,`del`],[`PATCH`,`patch`],[`HEAD`,`head`],[`OPTIONS`,`options`],[`TRACE`,`trace`]],Bs=(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())),Vs=class extends Ht(`UrlError`){},Hs=(e,t,n)=>Ke({try:()=>{let r=new URL(e,Us());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 Vs({cause:e})}),Us=()=>{if(`location`in globalThis&&globalThis.location!==void 0&&globalThis.location.origin!==void 0&&globalThis.location.pathname!==void 0)return location.origin+location.pathname},Ws=`~effect/http/HttpClientRequest`,Gs={[Ws]:Ws,...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 Ks(e,t,n,r,i,a){let o=Object.create(Gs);return o.method=e,o.url=t,o.urlParams=n,o.hash=r,o.headers=i,o.body=a,o}var qs=Ks(`GET`,``,ys,m(),er,Cs),Js=e=>(t,n)=>Xs(qs,{method:e,url:t,...n??void 0}),Ys=Js(`POST`),Xs=De(2,(e,t)=>{let n=e;return t.method&&(n=Zs(n,t.method)),t.url&&(n=nc(n,t.url)),t.headers&&(n=$s(n,t.headers)),t.urlParams&&(n=rc(n,t.urlParams)),t.hash&&(n=ic(n,t.hash)),t.body&&(n=ac(n,t.body)),t.accept&&(n=ec(n,t.accept)),t.acceptJson&&(n=tc(n)),n}),Zs=De(2,(e,t)=>Ks(t,e.url,e.urlParams,e.hash,e.headers,e.body)),Qs=De(3,(e,t,n)=>Ks(e.method,e.url,e.urlParams,e.hash,br(e.headers,t,n),e.body)),$s=De(2,(e,t)=>Ks(e.method,e.url,e.urlParams,e.hash,ir(e.headers,t),e.body)),ec=De(2,(e,t)=>Qs(e,`Accept`,t)),tc=ec(`application/json`),nc=De(2,(e,t)=>{if(typeof t==`string`)return Ks(e.method,t,e.urlParams,e.hash,e.headers,e.body);let n=new URL(t.toString()),r=hs(n.searchParams),i=Xe(n.hash===``?void 0:n.hash.slice(1));return n.search=``,n.hash=``,Ks(e.method,n.toString(),r,i,e.headers,e.body)}),rc=De(2,(e,t)=>Ks(e.method,e.url,bs(e.urlParams,t),e.hash,e.headers,e.body)),ic=De(2,(e,t)=>Ks(e.method,e.url,e.urlParams,Mt(t),e.headers,e.body)),ac=De(2,(e,t)=>Ks(e.method,e.url,e.urlParams,e.hash,Bs(e.headers,t),t)),oc=`~effect/http/HttpIncomingMessage`,sc=(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},cc=`~effect/http/HttpClientResponse`,lc=(e,t)=>new dc(e,t),uc=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`})})),dc=class extends Ct{[oc];[cc];request;source;constructor(e,t){super(),this.request=e,this.source=t,this[oc]=oc,this[cc]=cc}toJSON(){return sc(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=Ps(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:()=>hs(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)}},fc=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`}`}),pc=`~effect/http/HttpClient`,mc=zn(`effect/HttpClient`),hc=De(2,(e,t)=>_c(n=>t(e.postprocess(n)),e.preprocess)),gc=hc(Ye(uc)),_c=(e,t)=>{let n=Object.create(vc);return n.preprocess=t,n.postprocess=e,n.execute=function(n){return e(t(n))},n},vc={[pc]:pc,pipe(){return qn(this,arguments)},...Sn,toJSON(){return{_id:`effect/HttpClient`}},...Object.fromEntries(zs.map(([e,t])=>[t,function(t,n){return this.execute(Js(e)(t,n))}]))},yc=e=>_c(t=>Ye(t,t=>ln(n=>{let r=Dc.get(t),i=r??new AbortController,a=Hs(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(xc)(t)){let a=e(t,o,i.signal,n);return r?a:st(e=>kt(e(a),{onSuccess(e){return Ec.register(e,i),S(new Oc(e,i))},onFailure(e){return tt(e)&&i.abort(),Ue(e)}}))}return h(n.getRef(wc)(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(Sc),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(Cc)?$s(t,fc(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):(Ec.register(e,i),S(new Oc(e,i)))},onFailure(e){return!r&&tt(e)&&i.abort(),Ue(e)}})))})})),S),bc=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 hc(e,P(r===`errors-only`?se:Bn({schedule:a,times:o,while:jc}),r===`response-only`?se:Fe({while:n||t.while===void 0?kc:v(kc,t.while),schedule:i,times:o})))}),xc=yt(`effect/http/HttpClient/TracerDisabledWhen`,{defaultValue:()=>$t}),Sc=yt(`effect/http/HttpClient/TracerHeaderFilter`,{defaultValue:()=>he}),Cc=yt(`effect/HttpClient/TracerPropagationEnabled`,{defaultValue:he}),wc=yt(`effect/http/HttpClient/SpanNameGenerator`,{defaultValue:()=>e=>`http.client ${e.method}`}),Tc=e=>Pn(mc)(je(t=>wt(e,e=>hc(e,ke(e=>D(t,e)))))),Ec=(()=>{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))}}})(),Dc=new WeakMap,Oc=class{original;controller;constructor(e,t){this.original=e,this.controller=t}[cc]=cc;[oc]=oc;applyInterrupt(e){return qe(()=>(Ec.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(()=>(Ec.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)}},kc=e=>At(e)||Ac(e),Ac=e=>Tr(e)&&(e.reason._tag===`TransportError`||e.reason._tag===`StatusCodeError`&&jc(e.reason.response)),jc=e=>e.status===408||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504;function Mc(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 Nc(e){return{server:{refreshProviders:e.server.refreshProviders,updateProvider:e.server.updateProvider,getSettings:e.server.getSettings,updateSettings:e.server.updateSettings},...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 Pc(e){return{read:t=>{if(!e.canReadConnections()||!t)return;let n=e.readClient(t);return n?Nc(n):void 0}}}function Fc(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 Ic(e){return{sequence:e.snapshotSequence,updatedAt:e.updatedAt}}function Lc(e){if(e.current===null)return`newer`;let t=Fc(e.current,Ic(e.next));return t<0?`newer`:t===0?`current`:`stale`}function Rc(e){return e.current===null||e.sequence>e.current.sequence}function zc(){let e=new Map;return{read:t=>e.get(t)??null,markSnapshot:(t,n)=>{let r=Ic(n),i=e.get(t);(i===void 0||Fc(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 Bc=class extends Error{status;constructor(e,t){super(e),this.name=`RemoteEnvironmentAuthHttpError`,this.status=t}};function Vc(e){return e instanceof Bc}function Hc(e,t){let n=new URL(e);return n.pathname=t,n.toString()}async function Uc(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 Wc(e,t){let n=Hc(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 Bc(await Uc(r,`Remote auth request failed (${r.status}).`),r.status);return await r.json()}function Gc(e,t){return{bootstrapRemoteBearerSession:async t=>Wc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/bootstrap/bearer`,method:`POST`,body:{credential:t.credential}}),fetchRemoteSessionState:async t=>Wc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/session`,bearerToken:t.bearerToken}),fetchRemoteEnvironmentDescriptor:async t=>Wc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/.well-known/ryco/environment`}),issueRemoteWebSocketToken:async t=>Wc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/ws-token`,method:`POST`,bearerToken:t.bearerToken}),resolveRemoteWebSocketConnectionUrl:async n=>{let r=await Wc(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 Kc(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 qc(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 Jc(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 Yc(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=Kc(i.host,t);return{credential:i.token,httpBaseUrl:qc(e),wsBaseUrl:Jc(e)}}let a=n.readPairingToken(e)??``;if(!a)throw Error(`Pairing URL is missing its token.`);return{credential:a,httpBaseUrl:qc(e),wsBaseUrl:Jc(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=Kc(i,t);return{credential:a,httpBaseUrl:qc(o),wsBaseUrl:Jc(o)}}function Xc(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 Zc(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 Qc(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 $c=()=>void 0,el=3e5,tl=32,nl=12582912,rl=2e3,il=2500,al=2,ol=class extends Error{constructor(e){super(`Saved environment ${e} connection was cancelled.`),this.name=`SavedEnvironmentConnectionCancelledError`}};function sl(e){let t=new Map,n=new Map,r=new Set,i=new Map,o=zc(),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(nl,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=Qc({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!==$c)return!0;let n=v(t.environmentId);if(!n)return!1;let r=!0,i=$c,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!==$c&&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=$c,!0):!1},w=()=>{let e=Mc([...i.entries()].map(([e,t])=>({key:e,lastAccessedAt:t.lastAccessedAt,retainedBytes:t.estimatedRetainedBytes,evictable:g(t)})),{maxEntries:tl,maxBytes:nl});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)))},el))},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=$c,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:$c,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($c),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($c),new ol(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(!Rc({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=Lc({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(il),await Zc(Xc(n),{concurrency:al,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<rl))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()?$c:e.subscribeSavedEnvironmentRegistry(()=>{e.hasSavedEnvironmentRegistryHydrated()&&n()});e.isHostedMode()||e.waitForSavedEnvironmentRegistryHydration().then(n).catch($c);let i=e.isHostedMode()?$c: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 cl(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)?cl(t,r):r}return n}var ll=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)})),ul=new on(ll,Un());(e=>It.pipe(Pe(e,ul)))(be);function dl(e){return!!(e&&(e.instanceId!==void 0||e.model!==void 0))}function fl(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 pl(e,t){let n=t.textGenerationModelSelection,r=cl(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=dl(n)?n.options:fl({current:e.textGenerationModelSelection.options,patch:n.options});return{...i,textGenerationModelSelection:ui(a,o,s)}}function ml(e,t){let n=(0,V.useRef)(t);n.current=t,us(e,(0,V.useCallback)(e=>{e!==null&&n.current(e)},[]),{immediate:!0})}function hl(){return ls(ei)}function gl(){return ls(ei,Kr)}function _l(){return ls(ei,kr)}function vl(){return ls(ei,Ur)}function yl(){return ls(ei,ni)}function bl(){return ls(ei,Qr)}function xl(){return ls(ei,Ir)}function Sl(e){ml(ri,e)}function Cl(e){ml(Mr,e)}var wl=new Set,Tl=new Set,El=w,Dl=!1,Ol=null;function kl(){for(let e of wl)e()}function Al(){for(let e of Tl)e()}function jl(){return El}function Ml(e){El=e,kl()}function Nl(){return Dl}function Pl(e){Dl!==e&&(Dl=e,Al())}function Fl(e){return wl.add(e),()=>{wl.delete(e)}}function Il(){return Ol}function Ll(e){Ol=e}function Rl(e){Ol===e&&(Ol=null)}var zl=i(),Bl=`[CLIENT_SETTINGS]`;function Vl(e){let t=Fl(e);return Hl(),t}async function Hl(){if(Nl())return;let e=Il();if(e)return e;let t=(async()=>{try{let e=await pg().persistence.getClientSettings();e&&Ml({...w,...e})}catch(e){console.error(`${Bl} hydrate failed`,e)}finally{Pl(!0)}})().finally(()=>{Rl(t)});return Ll(t),t}function Ul(e){Ml(e),pg().persistence.setClientSettings(e).catch(e=>{console.error(`${Bl} persist failed`,e)})}var Wl=new Set(L(be.fields));function Gl(e){let t={},n={};for(let[r,i]of Object.entries(e))Wl.has(r)?t[r]=i:n[r]=i;return{serverPatch:t,clientPatch:n}}function Kl(){return jl()}function ql(e){let t=(0,zl.c)(6),n=gl(),r=(0,V.useSyncExternalStore)(Vl,jl,Jl),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 Jl(){return w}function Yl(){let e=(0,zl.c)(2),t=Xl,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=()=>{t(Le)},e[0]=n):n=e[0];let r=n,i;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i={updateSettings:t,resetSettings:r},e[1]=i):i=e[1],i}function Xl(e){let{serverPatch:t,clientPatch:n}=Gl(e);if(Object.keys(t).length>0){let e=Yn();e&&Er(pl(e.settings,t)),pg().server.updateSettings(t)}Object.keys(n).length>0&&Ul({...jl(),...n})}var Zl=Object.freeze({data:null,error:null,cause:null,isPending:!1}),Ql=Object.freeze({...Zl,isPending:!0}),$l=Xn(Zl).pipe(hr,Zr(`git-status:null`)),eu=()=>void 0,tu=new Map,nu=new Set,ru=new Map,iu=new Map,au=1e3,ou=Cr(e=>(nu.add(e),Xn(Ql).pipe(hr,Zr(`git-status:${e}`))));function su(e){return e.environmentId===null||e.cwd===null?null:`${e.environmentId}:${e.cwd}`}function cu(e,t){return`${e}:remote-poll=${t?.automaticRemoteRefreshIntervalMs??0}`}function lu(e){if(e.environmentId===null)return null;let t=yE(e.environmentId);return t?{clientIdentity:t.environmentId,client:t.client.vcs}:null}function uu(e){let t=su(e);return t===null?Zl:z.get(ou(t))}function du(e,t,n){let r=su(e);if(r===null)return eu;let i=cu(r,n),a=tu.get(i);return a?(a.refCount+=1,()=>_u(i)):(tu.set(i,{refCount:1,unsubscribe:vu(r,e,t,n)}),()=>_u(i))}function fu(e,t){return pu(e,t).then(t=>{let n=su(e);return n!==null&&t!==null&&mu(n,t),t})}function pu(e,t){let n=su(e);if(n===null||e.cwd===null)return Promise.resolve(null);let r=t??lu(e)?.client;if(!r)return Promise.resolve(uu(e).data);let i=ru.get(n);if(i)return i;let a=iu.get(n)??0;if(Date.now()-a<au)return Promise.resolve(uu(e).data);iu.set(n,Date.now());let o=r.refreshStatus({cwd:e.cwd}).finally(()=>{ru.delete(n)});return ru.set(n,o),o}function mu(e,t){z.set(ou(e),{data:t,error:null,cause:null,isPending:!1})}function hu(e){let t=(0,zl.c)(5),n=su(e),r=ql(gu),i,a;t[0]!==r||t[1]!==e.cwd||t[2]!==e.environmentId?(i=()=>du({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=ls(n===null?$l:ou(n));return n===null?Zl:o}function gu(e){return e.gitStatusPollIntervalMs}function _u(e){let t=tu.get(e);t&&(--t.refCount,!(t.refCount>0)&&(t.unsubscribe(),tu.delete(e)))}function vu(e,t,n,r){if(t.cwd===null)return eu;let i=t.cwd,a=null,o=eu,s=()=>{let s=n?{clientIdentity:`provided:${e}`,client:n}:lu(t);if(!s){a!==null&&(o(),o=eu,a=null),bu(e);return}a!==s.clientIdentity&&(o(),a=s.clientIdentity,o=yu(e,{...t,cwd:i},s.client,r))},c=n?eu:_E(s);return s(),()=>{c(),o()}}function yu(e,t,n,r){bu(e);let i=t.cwd,a=r?.automaticRemoteRefreshIntervalMs??0,o=n.onStatus({cwd:i,...a>0?{automaticRemoteRefreshIntervalMs:a}:{}},t=>{z.set(ou(e),{data:t,error:null,cause:null,isPending:!1})},{onResubscribe:()=>{bu(e)}}),s=!1;return pu(t,n).then(t=>{!s&&t!==null&&mu(e,t)}).catch(()=>void 0),()=>{s=!0,o()}}function bu(e){let t=ou(e),n=z.get(t),r=n.data===null?Ql:{...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 xu=Object.freeze({data:null,error:null,isPending:!1}),Su=Object.freeze({data:null,error:null,isPending:!0}),Cu=new Set,wu=Cr(e=>(Cu.add(e),Xn(Su).pipe(hr,Zr(`source-control-discovery:${e}`))));Xn(xu).pipe(hr,Zr(`source-control-discovery:null`));function Tu(e){let t=e.key?.trim();return t&&t.length>0?t:null}function Eu(e){let t=new Map;function n(t,n){e.getRegistry().set(wu(t),n)}function r(t){let r=e.getRegistry().get(wu(t)),i=r.data===null?Su:{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(wu(t)).data,error:r instanceof Error?r.message:`Failed to discover source control tools.`,isPending:!1})}function o(n,o){let c=Tu(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=Tu(t);return n===null?xu:e.getRegistry().get(wu(n))}function c(){t.clear();for(let e of Cu)n(e,Su);Cu.clear()}return{refresh:o,getSnapshot:s,reset:c}}var Du={key:`primary`},Ou=3e4,ku=3e5;function Au(e){let t=e?.environmentId??null;return t?Xr()?.environmentId===t?Du:{key:t}:Du}var ju=Eu({getRegistry:()=>z,getClient:e=>{if(e===Du.key){let e=Xr()?.environmentId??null,t=e?yE(e):null;if(t)return t.client.server;try{return fg()?.server??null}catch{return null}}let t=yE(ye.make(e));return t?t.client.server:null}}),Mu=Cr(e=>Xn(()=>pt(()=>ju.refresh({key:e}))).pipe(Hr({staleTime:Ou,revalidateOnMount:!0}),ti(ku),Zr(`source-control-discovery:auto-refresh:${e}`)));function Nu(e){return ju.refresh(Au(e))}function Pu(e){return ju.getSnapshot(Au(e))}function Fu(e){let t=Tu(Au(e))??Du.key;return ls(Mu(t)),ls(wu(t))}function Iu(){return ls(qr)}var Lu={now:()=>typeof performance<`u`&&typeof performance.now==`function`?performance.now():Date.now()},Ru={scheduleFrame:e=>{if(typeof requestAnimationFrame==`function`){requestAnimationFrame(()=>e());return}setTimeout(e,0)}};function zu(){return gi(typeof window>`u`?null:window.localStorage)}function Bu(e=zu()){return{getItem:async t=>await e.getItem(t),setItem:async(t,n)=>{await e.setItem(t,n)},removeItem:async t=>{await e.removeItem(t)}}}Bu();var Vu=yt(`effect/http/FetchHttpClient/Fetch`,{defaultValue:()=>globalThis.fetch}),Hu=class extends zn()(`effect/http/FetchHttpClient/RequestInit`){},Uu=Tc(S(yc((e,t,n,r)=>{let i=r.getRef(Vu),a=r.context.mapUnsafe.get(Hu.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=>lc(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)}))),Wu=e=>{let t=I(e).pipe(re(ho));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(po,e=>Rt(Math.max(n-e.currentTimeMillisUnsafe(),1)))},Gu=Cn.pipe(An,_t(({output:e})=>Tr(e)&&e.reason._tag===`StatusCodeError`&&e.reason.response.status===429?Wu(e.reason.response.headers[`retry-after`]):S(ut(1)))),Ku=class extends zn()(`effect/observability/OtlpExporter/Flusher`){},qu=Rn(Ku,()=>{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)))))}}),Ju=hn(function*(e){let t=yield*pe(),n=Fn(t,po),r=Fn(t,Ve),i=Wt(pn(e.exportInterval),Wn),a,o=gc(Fn(t,mc)).pipe(hc(Kn(Cc,!1)),bc({schedule:Gu,times:3})),s=dr({"user-agent":`effect-opentelemetry-${e.label}/0.0.0`});e.headers&&(s=gr(ar(e.headers),s));let c=Ys(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(ac(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*Ku).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))}}}),Yu=e=>{let t=e.attributes?Qu(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}},Xu=hn(function*(e){let t=yield*Yo(dt(Xo(mn,mn)),`OTEL_RESOURCE_ATTRIBUTES`),n=e?.serviceName??e?.attributes?.[`service.name`]??(yield*Yo(dt(It),`OTEL_SERVICE_NAME`))??t?.[`service.name`]??(yield*Zo(`OTEL_SERVICE_NAME`)),r=e?.serviceVersion??e?.attributes?.[`service.version`]??(yield*Yo(dt(It),`OTEL_SERVICE_VERSION`))??t?.[`service.version`],i={...t,...e?.attributes};return delete i[`service.name`],delete i[`service.version`],Yu({serviceName:n,serviceVersion:r,attributes:i})},Bt),Zu=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},Qu=e=>{let t=[];for(let[n,r]of e)t.push({key:n,value:$u(r)});return t},$u=e=>{if(Array.isArray(e))return{arrayValue:{values:e.map($u)}};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)}}},ed=class extends zn()(`effect/observability/OtlpSerialization`){},td=E(ed,{traces:e=>Os(e),metrics:e=>Os(e),logs:e=>Os(e)}),nd=hn(function*(e){let t=yield*Xu(e.resource),n=yield*ed,r={name:Zu(t)},i=yield*Ju({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(od(e))}return xn({span(e){return id({...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})}),rd={_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)}},id=e=>{let t=Object.assign(Object.create(rd),e);return t.traceId=Qe(t.parent)?t.parent.value.traceId:ad(32),t.spanId=ad(16),t.events=[],t},ad=e=>{let t=``;for(let n=0;n<e;n++)t+=`0123456789abcdef`[Math.floor(Math.random()*16)];return t},od=e=>{let t=e.status,n=Qu(e.attributes.entries()),r=e.events.map(([e,t,n])=>({name:e,timeUnixNano:String(t),attributes:n?Qu(Object.entries(n)):[],droppedAttributesCount:0})),i;if(t.exit._tag===`Success`)i=ld;else if(ct(t.exit.cause))i={code:sd.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:sd.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:cd[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:Qu(Object.entries(e.attributes)),droppedAttributesCount:0})),droppedLinksCount:0}},sd={Unset:0,Ok:1,Error:2},cd={unspecified:0,internal:1,server:2,client:3,producer:4,consumer:5},ld={code:sd.Ok},ud=1e3,dd={serviceName:`ryco-web`,attributes:{"service.runtime":`ryco-web`,"service.mode":d?`electron`:`browser`,"service.version":Oi}},fd=St(Uu,td,qu,E(xc,()=>!0)),pd=null,md=null,hd=null,gd=null,_d=0,vd=Promise.resolve(),yd=E(un,xn({span(e){return pd?.span(e)??new ht(e)}}));function bd(e={}){return e.exportIntervalMs===void 0&&gd!==null||(vd=vd.finally(()=>xd(e))),vd}async function xd(e){let t=xr(`/api/observability/v1/traces`),n=Math.max(10,e.exportIntervalMs??ud),r=`${t}|${n}`;if(gd===r&&pd!==null)return;gd=r;let i=++_d,a=md,o=hd;pd=null,md=null,hd=null,await Sd(a,o);let s=Or(fd),c=s.runSync(b());try{let e=await s.runPromise(_e(c)(nd({url:t,exportInterval:`${n} millis`,resource:dd})));if(i!==_d){await Sd(s,c);return}pd=e,md=s,hd=c}catch(e){await Sd(s,c),i===_d&&console.warn(`Failed to configure client tracing exporter`,{error:Cd(e),otlpTracesUrl:t})}}async function Sd(e,t){e!==null&&t!==null&&await e.runPromise(we(t,ee)).catch(()=>void 0).finally(()=>{e.dispose()})}function Cd(e){return e instanceof Error&&e.message.trim().length>0?e.message:String(e)}var wd={tracingLayer:yd,performanceEnabled:()=>Ai(),recordPerformance:(e,t,n)=>ki(e,t,n)},Td=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 Ed(e,t){return kd(e),kd(t),e.epoch===t.epoch?e.counter===t.counter?0:e.counter<t.counter?-1:1:e.epoch<t.epoch?-1:1}function Dd(e,t){return Ed(e,t)===0}function Od(e,t){if(kd(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 kd(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 Ad(e){let t=Ui(e.epoch,e.counter);return{epochField:t.slice(0,4),counterField:t.slice(4)}}function jd(e){let t=0n;for(let n=0;n<e.byteLength;n+=1)t=t<<8n|BigInt(e[n]);return t}var Md=`ryco.relay-e2ee.close.v1`;function Nd(e){return e===2||e===4}function Pd(e){let t=Xd(e.innerType),n=Zd(e.senderDirection),r=$d(e.sessionBindingHash),i=Ad(e.finalSend),a=Ad(e.expectedRecv);return Uint8Array.from(Da([Md,t,n,r,i.epochField,i.counterField,a.epochField,a.counterField],Aa))}function Fd(e){let t=qa(Pd(e));if(t.byteLength!==32)throw TypeError(`Relay E2EE close commitment must be E2EE_CLOSE_COMMITMENT_BYTES long.`);return t}var Id=5,Ld=Object.freeze([4,8,4,8,32]);function Rd(e){let t=Ad(e.finalSend),n=Ad(e.expectedRecv);return Uint8Array.from(Da([t.epochField,t.counterField,n.epochField,n.counterField,Fd(e)],Aa))}function zd(e){let t=ea(e);if(t.kind===`error`)return{kind:`error`,reason:t.reason};let n=t.value;if(!Array.isArray(n)||n.length!==Id)return{kind:`error`,reason:`shape`};for(let e=0;e<Id;e+=1){let t=n[e];if(!(t instanceof Uint8Array))return{kind:`error`,reason:`shape`};if(t.byteLength!==Ld[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:jd(r[0]),counter:jd(r[1])},expectedRecv:{epoch:jd(r[2]),counter:jd(r[3])}}}}function Bd(e){let t=Xd(e.innerType),n=Zd(e.senderDirection),r=$d(e.sessionBindingHash);kd(e.envelope),kd(e.currentNextSend);let i=zd(e.body);if(i.kind===`error`)return{kind:`invalid`,reason:`malformed_body`,decodeError:i.reason};let a=i.value,o=Ad(e.envelope);if(!Za(a.finalSendEpochField,o.epochField)||!Za(a.finalSendCounterField,o.counterField))return{kind:`invalid`,reason:`header_mismatch`};let s=Fd({innerType:t,senderDirection:n,sessionBindingHash:r,finalSend:a.finalSend,expectedRecv:a.expectedRecv});if(!Za(a.closeCommitment,s))return{kind:`invalid`,reason:`commitment_mismatch`};if(t===2)return Ed(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 kd(c),Dd(a.expectedRecv,c)?{kind:`ok`,value:a}:{kind:`invalid`,reason:`strict_rule`}}var Vd=Object.freeze({failed:3,unclean_truncation:2,unclean_abrupt:1,clean:0});function Hd(e){let t=Vd[e];if(t===void 0)throw TypeError(`Relay E2EE close verdict must be one of the four §10.4 verdicts.`);return t}function Ud(e,t){return Hd(t)>Hd(e)?t:e}function Wd(e){return e===1||e===2||e===3}var Gd=1;function Kd(e){if(!Wd(e))throw TypeError(`Relay E2EE error records carry a defined §11.3 error code.`);return Uint8Array.from(Da([e],Aa))}function qd(e){if(!(e instanceof Uint8Array))return{kind:`error`,reason:`malformed`};if(e.byteLength>16)return{kind:`error`,reason:`oversized`};let t=ea(e);if(t.kind===`error`)return{kind:`error`,reason:t.reason};let n=t.value;if(!Array.isArray(n)||n.length!==Gd)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:Wd(r)}}}var Jd=2,Yd=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($d(e.sessionBindingHash)),this.#t=Zd(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&&!Dd(kd(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:kd(n.sendPosition).epoch,counter:n.sendPosition.counter},i={epoch:kd(n.expectedRecv).epoch,counter:n.expectedRecv.counter},a={innerType:e,body:Rd({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.`);Qd(e.at);let n={epoch:e.epoch,counter:e.counter};if(!Dd(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=Od(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+Bi,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+Bi,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(!_a(e.innerType))throw TypeError(`Relay E2EE inner record type must be a registered type.`);if(kd(e.envelope),kd(e.currentNextSend),Qd(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=Bd({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=Od({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=Bd({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>=Jd)throw TypeError(`Relay E2EE close phase admits at most two T_CLOSE-bounded waits.`);Qd(e),this.#h+=1,this.#g=e+na}#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:Ud(this.#x,e)}};function Xd(e){if(!Nd(e))throw TypeError(`Relay E2EE close records are inner type 0x02 or 0x04 only.`);return e}function Zd(e){if(!ha(e))throw TypeError(`Relay E2EE direction must be a registered direction label.`);return e}function Qd(e){if(typeof e!=`number`||!Number.isFinite(e))throw TypeError(`Relay E2EE close machine requires a finite timestamp.`);return e}function $d(e){if(!(e instanceof Uint8Array)||e.byteLength!==32)throw TypeError(`Relay E2EE close records require a full-length session binding hash.`);return e}function ef(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}var tf=e=>e?`"${e}" `:``;function nf(e,t=``){if(typeof e!=`boolean`)throw TypeError(tf(t)+`expected boolean, got type=`+typeof e);return e}function rf(e,t=``){if(typeof e!=`number`)throw TypeError(tf(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(tf(t)+`expected integer >= 0, got `+e);return e}function H(e,t,n=``){if(ef(e)&&(t===void 0||e.length===t))return e;t!==void 0&&rf(t,`length`);let r=ef(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=tf(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}var af=(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 of(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function sf(e,t){H(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function cf(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function lf(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function uf(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var df=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ff(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function pf(e){for(let t=0;t<e.length;t++)e[t]=ff(e[t]);return e}var mf=df?e=>e:pf;function hf(e,t){return af(e,`defaults`),af(t,`opts`),Object.assign(e,t)}function gf(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 _f(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 vf=(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(ef(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 yf(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(H(t,e,`output`),n&&!xf(t))throw Error(`invalid output, must be aligned`);return t}function bf(e,t,n){rf(e),rf(t),nf(n);let r=new Uint8Array(16),i=uf(r);return i.setBigUint64(0,BigInt(t),n),i.setBigUint64(8,BigInt(e),n),r}function xf(e){return e.byteOffset%4==0}function Sf(e){return Uint8Array.from(H(e))}var Cf=e=>Uint8Array.from(e.split(``),e=>e.charCodeAt(0)),wf=mf(cf(Cf(`expand 16-byte k`))),Tf=mf(cf(Cf(`expand 32-byte k`)));function U(e,t){return e<<t|e>>>32-t}var Ef=64,Df=16,Of=2**32-1,kf=Uint32Array.of();function Af(e,t,n,r,i,a,o,s){let c=i.length,l=new Uint8Array(Ef),u=cf(l),d=df&&xf(i)&&xf(a),f=d?cf(i):kf,p=d?cf(a):kf;if(!df){for(let d=0;d<c;o++){if(e(t,n,r,u,o,s),mf(u),o>=Of)throw Error(`arx: counter overflow`);let f=Math.min(Ef,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>=Of)throw Error(`arx: counter overflow`);let h=Math.min(Ef,c-m);if(d&&h===Ef){let e=m/4;if(m%4!=0)throw Error(`arx: invalid block position`);for(let t=0,n;t<Df;t++)n=e+t,p[n]=f[n]^u[t];m+=Ef;continue}for(let e=0,t;e<h;e++)t=m+e,a[t]=i[t]^l[e];m+=h}}function jf(e,t){let{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:a,rounds:o}=hf({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!=`function`)throw Error(`core must be a function`);return rf(i),rf(o),nf(a),nf(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=yf(d,l,!1),rf(u),u<0||u>=Of)throw Error(`arx: counter overflow`);let f=[],p=t.length,m,h;if(p===32)f.push(m=Sf(t)),h=Tf;else if(p===16&&n)m=new Uint8Array(32),m.set(t),m.set(t,16),h=wf,f.push(m);else throw H(t,32,`arx key`),Error(`invalid key size`);(!df||!xf(s))&&f.push(s=Sf(s));let g=cf(m);if(r){if(s.length!==24)throw Error(`arx: extended nonce must be 24 bytes`);let e=s.subarray(0,16);if(df)r(h,g,cf(e),g);else{let t=mf(Uint32Array.from(h));r(t,g,cf(e),g),lf(t),mf(g)}s=s.subarray(16)}else df||mf(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=mf(cf(s));try{return Af(e,h,g,v,c,l,u,o),l}finally{lf(...f)}}}function Mf(e,t){return e[t++]&255|(e[t++]&255)<<8}var Nf=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=Sf(H(e,32,`key`));let t=Mf(e,0),n=Mf(e,2),r=Mf(e,4),i=Mf(e,6),a=Mf(e,8),o=Mf(e,10),s=Mf(e,12),c=Mf(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]=Mf(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=Mf(e,t+0),_=Mf(e,t+2),v=Mf(e,t+4),y=Mf(e,t+6),b=Mf(e,t+8),x=Mf(e,t+10),S=Mf(e,t+12),C=Mf(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;lf(n)}update(e){of(this),H(e),e=Sf(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,lf(this.h,this.r,this.buffer,this.pad)}digestInto(e){of(this),sf(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}},Pf=_f(32,e=>new Nf(e));function Ff(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 If=jf(Ff,{counterRight:!1,counterLength:4,allowShortKeys:!1}),Lf=new Uint8Array(16),Rf=(e,t)=>{e.update(t);let n=t.length%16;n&&e.update(Lf.subarray(n))},zf=new Uint8Array(32);function Bf(e,t,n,r,i){i!==void 0&&H(i,void 0,`AAD`);let a=e(t,n,zf),o=bf(r.length,i?i.length:0,!0),s=Pf.create(a);i&&Rf(s,i),Rf(s,r),s.update(o);let c=s.digest();return lf(a,o),c}var Vf=vf({blockSize:64,nonceLength:12,tagLength:16,withAAD:!0},(e=>(t,n,r)=>({encrypt(i,a){let o=i.length;a=yf(o+16,a,!1),a.set(i);let s=a.subarray(0,-16);e(t,n,s,s,1);let c=Bf(e,t,n,s,r);return a.set(c,o),lf(c),a},decrypt(i,a){a=yf(i.length-16,a,!1);let o=i.subarray(0,-16),s=i.subarray(-16),c=Bf(e,t,n,o,r);if(!gf(s,c))throw lf(c),Error(`invalid tag`);return a.set(i.subarray(0,-16)),e(t,n,a,a,1),lf(c),a}}))(If));function Hf(e,t,n){return Pa(e),n===void 0&&(n=new Uint8Array(e.outputLen)),Ta(e,n,t)}var Uf=Uint8Array.of(0),Wf=Uint8Array.of();function Gf(e,t,n,r=32,i){Pa(e),Ma(r,`length`),Ha(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=Wf:Ha(n,void 0,`info`),!o)return i&&ya(t),new Uint8Array;let s=i&&o===1?t:new Uint8Array(o*a),{iHash:c,oHash:l}=Ta.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++){Uf[0]=e+1;let t=c._cloneInto(d);e&&t.update(u),t.update(n).update(Uf).digestInto(u),l._cloneInto(d).update(u).digestInto(u),s.set(u,a*e)}if(Uf[0]=o,o>1&&c.update(u),c.update(n).update(Uf).digestInto(u),l.update(u).digestInto(u),s.set(u,a*(o-1)),c.destroy(),l.destroy(),d?.destroy(),u!==s&&ya(u),ya(Uf),r===s.length)return s;let f=s.slice(0,r);return ya(s),f}var Kf=`ryco.relay-e2ee.confirmation-key.v1`,qf=`ryco.relay-e2ee.aead-key.v1`,Jf=`ryco.relay-e2ee.ratchet.v1`,Yf=Ca(Kf),Xf=Ca(qf),Zf=Ca(Jf);function Qf(e,t){if(!(e instanceof Uint8Array)||e.byteLength!==32)throw TypeError(`Relay E2EE ${t} must be exactly E2EE_SECRET_BYTES long.`);return e}function $f(e){if(!ha(e))throw TypeError(`Relay E2EE direction must be a registered direction label.`);return e}function ep(e,t){return eo(e,Vi($f(t)))}function tp(...e){for(let t of e)if(t instanceof Uint8Array)try{ya(t)}catch{}}function np(e,t){try{return t()}catch(t){throw tp(...e),t}}function rp(e){return Gf(qa,Qf(e,`exporter secret`),Yf,32)}function ip(e,t){return Gf(qa,Qf(e,`epoch secret`),ep(Xf,t),32)}function ap(e,t){return Gf(qa,Qf(e,`epoch secret`),ep(Zf,t),32)}function op(e){return np([e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret],()=>({epochSecretC2N:Qf(e.epochSecretC2N,`epoch secret`),epochSecretN2C:Qf(e.epochSecretN2C,`epoch secret`),exporterSecret:Qf(e.exporterSecret,`exporter secret`),serverConfirmationKey:rp(e.exporterSecret)}))}function sp(e){return op(e.split())}function cp(e){typeof e!=`object`||!e||tp(e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret,e.serverConfirmationKey)}var lp=1+Da([new Uint8Array(4),new Uint8Array(8),new Uint8Array(4),new Uint8Array(8),new Uint8Array(32)],Aa).byteLength,up=17,dp=Object.freeze([...Array.from({length:2},()=>lp),...Array.from({length:1},()=>up)]),fp=({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 Qf(n,`AEAD key`),{seal:(e,t,r)=>Vf(n,e,r).encrypt(t),open:(e,t,r)=>Vf(n,e,r).decrypt(t)}},pp=class e{#e;#t;#n;#r;#i;#a;#o;#s=!1;constructor(t,n,r){let i=$f(t);Qf(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=ip(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=ap(n,this.#e),a=np([i],()=>ip(i,this.#e));return tp(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(){tp(this.#t,this.#n),this.#t=void 0,this.#n=void 0}};function mp(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 hp(e){let t,n;try{if(!ra(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=$f(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 pp(r,a,e.testOnlySyntheticSendState),n=new pp(i,o,e.testOnlySyntheticReceiveState),{suite:e.suite,sessionBindingHash:Uint8Array.from(e.sessionBindingHash),plaintextCeiling:e.plaintextCeiling,aeadFactory:e.testOnlyAeadFactory??fp,secrets:e.secrets,send:t,receive:n}}catch(r){throw t?.erase(),n?.erase(),cp(e.secrets),r}}var gp=class{#e=1;#t;#n;#r;#i;#a;#o;#s;#c=`open`;#l=!1;#u=!1;#d=Promise.resolve();constructor(e){let t=hp(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(dp)}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(),!_a(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,...dp]))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=Ja({suite:this.#t,epoch:i,counter:a}),s=o[1],c=o[2];if(s!==this.#e||!ra(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=la(o),c=pa({header:o,sessionBindingHash:this.#n,direction:this.#o.direction}),l=qi(e.innerType,e.body),u;try{let e=a.seal(s,l,c);u=Ji({suite:this.#t,epoch:n,counter:r,ciphertext:e})}catch{u=void 0}finally{tp(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=mp(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=ao(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=la(n.header),a=pa({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=Pi(o)}catch(e){throw tp(o),e}if(s.kind===`error`)return tp(o),this.#v(s.reason===`truncated`?`malformed_record`:`reserved_inner_type`);let c=n.epoch,l=n.counter,{epochCompleted:u}=np([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(),cp(this.#a))}get erased(){return this.#u}#y(){if(this.#u)throw TypeError(`Relay E2EE session has been erased; it is never resumed.`)}},_p=/^[A-Za-z][A-Za-z0-9._-]{0,63}$/,vp=64,yp=Symbol(`INVALID_PROFILE_VALUE`),bp=new Set(mt),xp={allowIndefinite:!1,allowUndefined:!1,allowInfinity:!1,allowNaN:!1,allowBigInt:!1,strict:!0,useMaps:!0,rejectDuplicateMapKeys:!0,tags:{}},Sp=e=>({ok:!0,value:e}),W=(e,t)=>t===void 0?{ok:!1,error:{code:e}}:{ok:!1,error:{code:e,supported:t}};function Cp(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 wp(e,t=0){if(t>vp)return yp;if(e===null||typeof e==`boolean`||typeof e==`string`)return e;if(typeof e==`number`)return Number.isSafeInteger(e)?e:yp;if(e instanceof Uint8Array)return e;if(Array.isArray(e)){let n=[];for(let r of e){let e=wp(r,t+1);if(e===yp)return yp;n.push(e)}return n}if(e instanceof Map){let n=Object.create(null);for(let[r,i]of e){if(typeof r!=`string`||!_p.test(r))return yp;let e=wp(i,t+1);if(e===yp)return yp;n[r]=e}return n}return yp}function Tp(e){let t;try{t=$a(e,xp)}catch{return W(`invalid_encoding`)}if(!(t instanceof Map))return W(`invalid_encoding`);let n;try{n=Da(t,Aa)}catch{return W(`invalid_encoding`)}if(!Cp(e,n))return W(`invalid_encoding`);let r=wp(t);return r===yp||r===null||Array.isArray(r)?W(`invalid_encoding`):Sp(r)}function Ep(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`):Sp(n.value):W(`protocol_unsupported`,Ln)}function Dp(e,t={}){if(e.byteLength>263168)return W(`frame_too_large`);let n=Tp(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=Ep(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(!bp.has(r.type))return W(`unknown_frame_type`);let a=In(Ce)(r);return ae(a)?W(r.type===`ready`?`invalid_limits`:`invalid_frame`):Sp(a.value)}function Op(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=Da(t.value,Aa)}catch{return W(`invalid_frame`)}let r=t.value.type===`data`?xt:Nn;return n.byteLength<=r?Sp(n):W(`frame_too_large`)}var kp={protocolMajor:1,protocolMinor:2},Ap=1,jp=32,Mp=sa+Fi.byteLength+jp;function Np(e){let t=0;for(let n of e)t+=n+jp;return t}var Pp=`Relay E2EE negotiation send buffer is full.`,Fp=`Relay E2EE send is unavailable.`,Ip=`RPC payload exceeds the maximum relay message size.`,Lp=`Relay peer does not support multi-frame RPC messages.`,Rp=`Relay send queue is full.`,zp={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 Bp(e){return G(zp[e])}function Vp(){return{kind:`protocol`,retryable:!0,closeReason:`channel_rejected`}}var Hp=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=ma(e.ticket);try{let e=Op({type:`auth`,peer:`client`,...kp,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 fa;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(Bp(`send_path_unusable`));let n;try{n=t.submit(e)}catch(e){throw this.#V(Bp(`fatal_post_key`)),e}if(!n)throw Error(Fp)}#A(e){let t=ua(e,this.#W(this.#e));if(t.kind===`error`)throw e.fill(0),this.#$(G(`transfer_limit`)),Error(t.reason===`peer_unsupported`?Lp:Ip);for(let e of t.payloads)this.#X(Uint8Array.from(e))}#j(e,t){if(e.byteLength>aa(t).plaintextCeiling)throw Error(Ip);let n=Wi(e.byteLength,this.#W(t));if(n.kind===`error`)throw Error(n.reason===`peer_unsupported`?Lp:Ip);let r=Wi(32+e.byteLength,this.#W(t));if(r.kind===`error`)throw Error(r.reason===`peer_unsupported`?Lp:Ip);let i=Math.max(Np(n.payloadBytes),Np(r.payloadBytes)),a=Math.max(0,oo(t)-Mp);if(this.bufferedAmount+i>a)throw Error(Pp);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(Bp(`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`,...kp,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=Dp(t,this.#e?{expectedVersion:kp}:{});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`,...kp,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:kp.protocolMajor,relayProtocolMinor:kp.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(Bp(`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(Bp(`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`,...kp,channelId:this.#t,reason:e.closeReason}),this.#$(e))}#H(e){let t=this.#e;if(this.#p||!this.#t||!t)return;let n=Wi(e,this.#W(t));if(n.kind===`error`)return;let r=Np(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=ua(e,this.#W(t));if(n.kind===`error`)return!1;for(let e of n.payloads){let t=Uint8Array.from(e),n=t.byteLength+jp;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`,...kp,channelId:this.#t})):this.#d&&e<=Math.floor(this.#e.maxQueuedBytes*.5)&&(this.#d=!1,this.#Q({type:`flow.resume`,...kp,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(Bp(`fatal_post_key`))}};this.#T=this.#T.then(n,n)}#X(e){let t=this.#e,n=e.byteLength+jp;if(this.bufferedAmount+n>t.maxQueuedBytes-t.maxControlFrameBytes)throw e.fill(0),this.#$(G(`slow_consumer`)),Error(Rp);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`,...kp,channelId:this.#t,sequence:n,payload:t.bytes}),t.bytes.fill(0)}this.#M()}}#Q(e){if(this.#p||this.options.socket.readyState!==Ap)return;let t=Op(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)}},Up=`c2n`,Wp=Object.freeze({kind:`rejected`}),Gp=Object.freeze({kind:`claimed`}),Kp={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=aa(t.limits),a=new gp({secrets:e.secrets,suite:e.suite,sessionBindingHash:e.sessionBindingHash,sendDirection:Up,plaintextCeiling:i.establishable?i.plaintextCeiling:0,...e.testOnlySyntheticSendState===void 0?{}:{testOnlySyntheticSendState:e.testOnlySyntheticSendState},...e.testOnlySyntheticReceiveState===void 0?{}:{testOnlySyntheticReceiveState:e.testOnlySyntheticReceiveState}}),o=new Yd({sessionBindingHash:e.sessionBindingHash,sendDirection:Up}),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 Wp;s=!0;let i=o.noteFatal();return await g(async()=>{!a.sendPathUsable||!o.mayProtectTerminalError||(await _(3,Kd(n))).kind===`protected`&&o.noteTerminalErrorTransmitted()}),m(),r({phase:`post_key`,row:e,verdict:i}),t.close(Bp(`fatal_post_key`)),Wp}function y(e){if(s)return;s=!0;let n=o.noteFatal();m(),r({phase:`post_key`,row:`Q10`,verdict:n}),t.close(Bp(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(),Gp;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(),Gp;case`terminal_error`:return s||(s=!0,m(),r({phase:`post_key`,row:`local`,verdict:o.verdict}),t.close(Bp(`fatal_post_key`))),Wp;case`fatal`:return v(c.row,1)}}async function k(e){if(s)return Wp;if(Yi(e).kind!==`envelope`)return v(`Q6`,1);let t=a.unprotect(e);return t.kind===`fatal`?v(Kp[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 Jp=`Noise_IK_25519_ChaChaPoly_SHA256`,Yp=`Noise_NX_25519_ChaChaPoly_SHA256`,Xp=`ryco.relay-e2ee.exporter.v1`;function Zp(e){return e===`IK`?Jp:Yp}var Qp=qa.outputLen,$p=32,em=32,tm=16,nm=65535,rm=18446744073709551615n,im=Ca(Xp),am=new Uint8Array,om=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 om(e)}function sm(e,t){(!(e instanceof Uint8Array)||e.byteLength!==t)&&K(`invalid_key_material`)}function cm(e,t){return sm(e,t),Uint8Array.from(e)}function lm(...e){for(let t of e)if(t instanceof Uint8Array)try{ya(t)}catch{}}function um(e,t){let n=Hf(qa,t,e),r,i;try{r=Gf(qa,n,void 0,2*Qp),i=r.slice(0,Qp);let e=r.slice(Qp);return[i,e]}catch(e){throw lm(i),e}finally{lm(n,r)}}function dm(e){(typeof e!=`bigint`||e<0n)&&K(`invalid_options`),e>=rm&&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 fm(e){return(!(e instanceof Uint8Array)||e.byteLength!==Qp)&&K(`invalid_key_material`),Gf(qa,e,im,32)}var pm=class{#e=void 0;#t=0n;initializeKey(e){e.byteLength!==em&&K(`invalid_key_material`),lm(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=dm(this.#t),i=Vf(n,r,e).encrypt(t);return ya(r),this.#t+=1n,i}decryptWithAd(e,t){let n=this.#e;if(n===void 0)return t;let r=dm(this.#t),i=Vf(n,r,e).decrypt(t);return ya(r),this.#t+=1n,i}erase(){lm(this.#e),this.#e=void 0,this.#t=0n}},mm=class{#e;#t;#n=new pm;constructor(e){let t=Ca(e),n=new Uint8Array(Qp);t.byteLength<=Qp?n.set(t):n.set(qa(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]=um(this.#e,e);try{lm(this.#e),this.#e=t,this.#n.initializeKey(n)}catch(e){throw lm(n),e}}mixHash(e){let t=qa(eo(this.#t,e));lm(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]=um(this.#e,am),n;try{return n=fm(this.#e),this.erase(),{epochSecretC2N:e,epochSecretN2C:t,exporterSecret:n}}catch(r){throw lm(e,t,n),r}}erase(){lm(this.#e,this.#t),this.#n.erase()}},hm={IK:[[`e`,`es`,`s`,`ss`],[`e`,`ee`,`se`]],NX:[[`e`],[`e`,`ee`,`s`,`es`]]},gm=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&&sm(a,$p);let o=e.testOnlyEphemeralSecretKey;o!==void 0&&sm(o,$p);let s=e.remoteStaticPublicKey===void 0?void 0:cm(e.remoteStaticPublicKey,$p);this.#e=n,this.#t=hm[t],this.#a=s;let c=new mm(Zp(t));c.mixHash(e.prologue);let l=a===void 0?void 0:Ba.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=eo(...t);return n.byteLength>nm&&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>nm&&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($p));this.#o=e,this.#n.mixHash(e);break}case`s`:{let e=n(this.#n.hasKey?$p+tm:$p),t=this.#n.decryptAndHash(e);t.byteLength!==$p&&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&&lm(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=Ba.getPublicKey(e);return this.#c=void 0,{secretKey:e,publicKey:t}}let t=Ba.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=Ba.getSharedSecret(n.secretKey,r);try{this.#n.mixKey(i)}finally{lm(i)}}#h(){lm(this.#i?.secretKey,this.#r?.secretKey,this.#c),this.#i=void 0,this.#r=void 0,this.#c=void 0}},_m=`ryco.relay-e2ee.confirmation.v1`,vm=`ryco.relay-e2ee.session.v1`;function ym(e,t){return!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:gf(e,t)}function bm(e){return Uint8Array.from(Da(e,Aa))}function xm(e){return typeof e==`string`}function Sm(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function Cm(e,t){return e instanceof Uint8Array?t===void 0||e.byteLength===t:!1}function wm(e){return Uint8Array.from(e)}function Tm(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=Ia(e.tier);if(!e.advertisedAdmittedPatterns.includes(t))return{kind:`unusable`,reason:`pattern_not_admitted`};let n=e.localSuitePreference.find(t=>ra(t)&&e.advertisedSuiteRegistry.includes(t));return n===void 0||!ra(n)?{kind:`unusable`,reason:`empty_suite_intersection`}:{kind:`usable`,selectedSuite:n}}var Em=5,Dm=3;function Om(e){return e===`native`||e===`web`}function km(e){Om(e.tier)||B(),ra(e.selectedSuite)||B(),(!Array.isArray(e.offeredSuites)||e.offeredSuites.length===0||e.offeredSuites.length>8||!e.offeredSuites.every(Sm)||!e.offeredSuites.includes(e.selectedSuite))&&B(),Cm(e.clientNonce,32)||B(),Cm(e.contextCommitment,32)||B(),(!Cm(e.noiseMessage1)||e.noiseMessage1.byteLength===0)&&B();let t=bm([1,e.tier,e.selectedSuite,[...e.offeredSuites],wm(e.clientNonce),wm(e.contextCommitment),wm(e.noiseMessage1)]);return ga(1,t)}function Am(e){(!Cm(e.clientPrekeyTranscript)||e.clientPrekeyTranscript.length===0)&&B();let t=xa(e.clientPrekeySignature);return bm([wm(e.clientPrekeyTranscript),t,to(e.accountId),ca(e.intendedCapability),Ri(e.intendedRole)])}var jm=new Uint8Array;function Mm(e){ra(e.acceptedSuite)||B(),(!xm(e.nodePrekeyId)||e.nodePrekeyId.length===0)&&B(),Cm(e.contextCommitment,32)||B(),(!Cm(e.noiseMessage2)||e.noiseMessage2.byteLength===0)&&B()}function Nm(e){Mm(e);let t=bm([e.acceptedSuite,e.nodePrekeyId,wm(e.contextCommitment),wm(e.noiseMessage2)]);return ga(2,t)}function Pm(e){let t=da(e);if(t.kind===`error`||t.value.recordType!==2)return{kind:`error`,reason:`bad_record`};let n=ea(t.value.body);if(n.kind===`error`)return{kind:`error`,reason:`malformed_body`};let r=n.value;if(!Array.isArray(r)||r.length!==Em)return{kind:`error`,reason:`malformed_body`};let[i,a,o,s,c]=r;return!Sm(i)||!xm(a)||a.length===0||!Cm(o,32)||!Cm(s)||s.byteLength===0||!Cm(c,32)?{kind:`error`,reason:`malformed_body`}:{kind:`ok`,value:{acceptedSuite:i,nodePrekeyId:a,contextCommitment:o,noiseMessage2:s,serverConfirmation:c}}}function Fm(e){let t=ea(e);if(t.kind===`error`)return{kind:`error`,reason:`malformed_body`};let n=t.value;if(!Array.isArray(n)||n.length!==Dm)return{kind:`error`,reason:`malformed_body`};let[r,i,a]=n;return!xm(r)||!xm(i)||!Cm(a,32)?{kind:`error`,reason:`malformed_body`}:{kind:`ok`,value:{channelOpenCapability:r,channelOpenEffectiveRole:i,nodeAgreementKeyFingerprint:a}}}function Im(e){let t=ea(e);return(t.kind===`error`||!Array.isArray(t.value))&&B(),t.value}function Lm(e){return(!Cm(e.clientHelloWireBytes)||e.clientHelloWireBytes.byteLength===0||!Cm(e.serverAcceptTbsWireBytes)||e.serverAcceptTbsWireBytes.byteLength===0)&&B(),qa(bm([_m,wm(e.clientHelloWireBytes),wm(e.serverAcceptTbsWireBytes),Im(e.contextBlock)]))}function Rm(e,t){return(!Cm(e)||!Cm(t,32))&&B(),Ta(qa,e,t)}function zm(e){(!Cm(e.clientHelloWireBytes)||e.clientHelloWireBytes.byteLength===0||!Cm(e.serverAcceptWireBytes)||e.serverAcceptWireBytes.byteLength===0)&&B();let t=qa(bm([vm,wm(e.clientHelloWireBytes),wm(e.serverAcceptWireBytes),Im(e.contextBlock)]));return t.byteLength!==32&&B(),t}function Bm(e,t){return{kind:`fatal`,row:e,reason:t}}function Vm(e){let t=Zi({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:Ua(`agreement`,e.advertised.agreementPublicKey),nodeContinuityChainTranscripts:e.advertised.continuityChainTranscripts,nodeContinuityId:e.advertised.continuityId,client:e.client});return{block:t,commitment:Ni(t)}}function Hm(e,t,n){return t===e.channelOpenCapability&&n===e.channelOpenEffectiveRole}function Um(e){return e+Ki}var Wm=class{#e;#t;#n=`created`;#r;#i;#a;#o;#s;constructor(e){if(!ra(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(Bm(`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(!Hm(n.channel,n.intendedCapability,n.intendedRole))return this.#u(Bm(`P13`,`context_mismatch`));let i=r.tier===`native`?Vm({channel:n.channel,advertised:n.advertised,suite:n.selectedSuite,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole,client:{tier:`native`,accountId:r.accountId,identityFingerprint:Ua(`client-identity`,r.identityPublicKey),agreementFingerprint:Ua(`agreement`,r.agreementPublicKey)}}):Vm({channel:n.channel,advertised:n.advertised,suite:n.selectedSuite,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole,client:{tier:`web`}}),a=Qi({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(!ym(Ba.getPublicKey(r.agreementSecretKey),r.agreementPublicKey))throw TypeError(`Relay E2EE client agreement secret key does not match its certificate key.`);o=Am({clientPrekeyTranscript:r.prekeyTranscript,clientPrekeySignature:r.prekeySignature,accountId:r.accountId,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole})}else o=jm;let s=new gm({pattern:Ia(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(Bm(`P10`,`noise`))}let l=km({tier:this.#t,selectedSuite:n.selectedSuite,offeredSuites:n.offeredSuites,clientNonce:n.testOnlyClientNonce??io(32),contextCommitment:i.commitment,noiseMessage1:c});return this.#r=s,this.#i=l,this.#a=i.block,this.#o=i.commitment,this.#s=Um(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(Bm(`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(Bm(`P16`,`handshake_spent`));if(this.deadlineExpired(t))return this.#u(Bm(`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&&cp(o),this.destroy(),e}}#l(e){let{payload:t,noise:n,helloRecord:r,contextBlock:i,contextCommitment:a}=e,o=Pm(t);if(o.kind===`error`)return this.#u(o.reason===`bad_record`?Bm(`P3`,`record_bounds`):Bm(`P16`,`accept_mismatch`));let s=o.value;if(s.acceptedSuite!==this.#e.selectedSuite||s.nodePrekeyId!==this.#e.advertised.prekeyId)return this.#u(Bm(`P16`,`accept_mismatch`));if(!ym(s.contextCommitment,a))return this.#u(Bm(`P13`,`context_mismatch`));let c;try{c=n.readMessage(s.noiseMessage2)}catch{return this.#u(Bm(`P10`,`noise`))}let l=n.remoteStaticPublicKey;if(l===void 0||!ym(l,this.#e.advertised.agreementPublicKey))return this.#u(Bm(`P16`,`accept_mismatch`));let u=Fm(c);if(u.kind===`error`)return this.#u(Bm(`P16`,`accept_mismatch`));let d=u.value;if(d.channelOpenCapability!==this.#e.channel.channelOpenCapability||d.channelOpenEffectiveRole!==this.#e.channel.channelOpenEffectiveRole||!ym(d.nodeAgreementKeyFingerprint,Ua(`agreement`,this.#e.advertised.agreementPublicKey)))return this.#u(Bm(`P13`,`context_mismatch`));let f;try{f=sp(n)}catch{return this.#u(Bm(`P10`,`noise`))}e.holdSecrets(f);let p=Nm({acceptedSuite:this.#e.selectedSuite,nodePrekeyId:s.nodePrekeyId,contextCommitment:s.contextCommitment,noiseMessage2:s.noiseMessage2}),m=Lm({clientHelloWireBytes:r,serverAcceptTbsWireBytes:p,contextBlock:i});if(!ym(Rm(f.serverConfirmationKey,m),s.serverConfirmation))return cp(f),this.#u(Bm(`P16`,`confirmation_mismatch`));let h=zm({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 Gm=new TextEncoder;function Km(e){let t;try{t=Li(e.connectedHubOrigin)}catch{return q(`connected_hub_origin_invalid`)}if(e.accountId!==void 0){let t=Gm.encode(e.accountId).byteLength;if(t===0||t>256)return q(`account_scope_invalid`)}let n=Ra(e.statement);if(n.kind===`error`)return q(n.failure);let r=n.value,i;try{i=ta(r.transcript)}catch{return q(`identity_signature_invalid`)}if(!Xa({algorithm:`ed25519`,publicKey:r.identityPublicKey,message:i,signature:r.signature}))return q(`identity_signature_invalid`);if(!Za(Ua(`node-identity`,r.identityPublicKey),r.identityFingerprint))return q(`identity_fingerprint_mismatch`);if(!Za(Ua(`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(!Gi({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=zi({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=Tm({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`,Jm=`node`;function Ym(e){return Uint8Array.from(Da(e,Aa))}function Xm(e){let t=Ga(e.nodeIdentityPublicKey),n=Fa(e.webEphemeralPublicKey);return Ym([qm,Jm,Oa,t,`web`,Mi,n])}function Zm(e){(!(e.sessionBindingHash instanceof Uint8Array)||e.sessionBindingHash.byteLength!==32)&&B();let t=Xm(e),n=Hf(qa,t,e.sessionBindingHash),r=Gf(qa,n,Ca(qm),5);return{input:t,prk:n,output:r,display:Qm(r)}}function Qm(e){(!(e instanceof Uint8Array)||e.byteLength!==5||e.byteLength*8!=La.chars*5||La.chars!==La.groups*La.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+=no[n>>r&31];let i=[];for(let e=0;e<t.length;e+=La.charsPerGroup)i.push(t.slice(e,e+La.charsPerGroup));return i.join(La.separator)}var J=Object.freeze({kind:`rejected`}),$m=Object.freeze({kind:`claimed`});function eh(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 th(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(Bp(`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(!aa(t.limits).establishable)return cp(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),$m}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=Zm({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()}},$i);function T(){m=t.setTimeout(()=>{m=void 0,!(a!==`negotiating`||!o)&&b(`P20`)},Ki)}async function E(e){if(s)return b(`P4`);s=!0;let c=e===void 0?void 0:Km({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()+Xi,!await D(c,!0)||a!==`negotiating`||o)return a===`closed`?J:$m}else if(c!==void 0&&(!await D(c,!1)||a!==`negotiating`||o))return a===`closed`?J:$m;return c===void 0||c.kind!==`verified`?n.selectionClass===`latched`?b(`P15`):(i({phase:`pre_key`,row:`K3`}),$m):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)},Xi));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(),_($m)},()=>{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 Wm({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:eh(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(),$m)}function M(e){let t=da(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()?(cp(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`&&cp(e.secrets),J),()=>a===`negotiating`?b(`local`):J))}return N(c.receiveServerAccept(e,r()))}async function F(e){switch(Yi(e).kind){case`legacy-json`:{let t=ia(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(Yi(e).kind){case`legacy-json`:{let t=ia(e);return t.kind===`ok`||t.reason===`malformed`?(i({phase:`pre_key`,row:`K20`}),$m):{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 nh=new Set([Ge.subscribeShell,Ge.subscribeThread,Ge.subscribeThreadWindow,Tn.subscribeServerConfig,Tn.subscribeServerLifecycle,Tn.subscribeTerminalEvents,Tn.subscribeVcsStatus]),rh=new Set([...nh,Tn.subscribeAuthAccess]);function ih(e,t){return Ii(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`)&&nh.has(t.tag):!1}function ah(e){return ih(Ya.getState(),e)}function oh(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 sh(){return{nodeId:()=>Ya.getState().selectedNode?.id??null,generation:()=>Ya.getState().generation,isAuthenticated:()=>Ya.getState().accountStatus===`authenticated`,isCurrent:e=>Ya.getState().generation===e,authorizeRequest:ah,shouldReconnect:e=>{let t=Ya.getState();return e===t.generation&&t.accountStatus===`authenticated`&&t.selectedNode!==null&&(t.browserStatus===`current`||t.browserStatus===`synchronizing`)&&t.transportStatus!==`terminal-failure`},transportStatus:(e,t)=>Wa.transportStatus(e,t),sessionStatus:(e,t)=>Wa.sessionStatus(e,t),role:(e,t)=>Wa.role(e,t),failure:(e,t)=>Wa.failure(e,t),markDeliveryUnknown:e=>Wa.markDeliveryUnknown(e),connectionClosed:e=>Wa.connectionClosed(e),connectionRecovered:e=>{let t=Ya.getState();t.generation===e&&t.accountStatus===`authenticated`&&t.directoryStatus===`ready`&&t.browserStatus===`current`&&t.selectedNode!==null&&t.transportStatus!==`terminal-failure`&&Va().timers.queueMicrotask(()=>{let n=Ya.getState();n.generation===e&&n.selectedNode?.id===t.selectedNode?.id&&Wa.retrySelectedNode()})}}}var ch=class{#e;#t=new Td;#n=new Map;#r=null;#i;#a=null;#o=0;#s=null;#c=null;#l=!1;constructor(e=sh()){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 Ka().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?.()??Va().relayUrl()}catch(e){if(e instanceof va&&e.status===401)Wa.expireSession();else if(e instanceof va){let n=oh(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<=Va().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}):Va().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&&rh.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()}},lh=null;function uh(){return lh??=new ch,lh}function dh(){return lh?.hasPendingRequests()??!1}function fh(){lh?.reset(),lh=null}function ph(e){return e===`platform`||e===`cross-platform`?e:void 0}function mh(e){return e.filter(e=>Sa.has(e))}function hh(e){if(!(e instanceof PublicKeyCredential))throw Error(`Passkey ceremony was cancelled.`);return e}async function gh(e,t){let n=typeof e==`object`&&e&&`challenge`in e&&e.challenge instanceof Uint8Array?e:ro(e),r=hh(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:Hi(r.rawId),response:{clientDataJSON:Hi(i.clientDataJSON),authenticatorData:Hi(i.authenticatorData),signature:Hi(i.signature),...i.userHandle?{userHandle:Hi(i.userHandle)}:{}},type:`public-key`,clientExtensionResults:r.getClientExtensionResults(),...ph(r.authenticatorAttachment)?{authenticatorAttachment:ph(r.authenticatorAttachment)}:{}}}async function _h(e,t){let n=typeof e==`object`&&e&&`challenge`in e&&e.challenge instanceof Uint8Array?e:oa(e),r=hh(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:Hi(r.rawId),response:{clientDataJSON:Hi(i.clientDataJSON),attestationObject:Hi(i.attestationObject),...c?{transports:mh(c)}:{},...s===void 0?{}:{publicKeyAlgorithm:s},...a?{publicKey:Hi(a)}:{},...o?{authenticatorData:Hi(o)}:{}},type:`public-key`,clientExtensionResults:r.getClientExtensionResults(),...ph(r.authenticatorAttachment)?{authenticatorAttachment:ph(r.authenticatorAttachment)}:{}}}var vh={authenticate:(e,t)=>gh(e,t),register:(e,t)=>_h(e,t)};function yh(e){return e}var bh={get:e=>pg().persistence.getSavedEnvironmentSecret(yh(e)),set:(e,t)=>pg().persistence.setSavedEnvironmentSecret(yh(e),t),remove:e=>pg().persistence.removeSavedEnvironmentSecret(yh(e))},xh={webSocketConstructor:(e,t)=>{let n=typeof t==`string`||t===void 0?t:Array.from(t);return new globalThis.WebSocket(e,n)}};function Sh(){Rr(Ei)}function Ch(){return ls(fr)}function wh(){return ls(Lr)}function Th(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 Eh(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&&Th(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(()=>{Th(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 Dh=0,Oh=0,kh=null,Ah=new Set;function jh(){for(let e of Ah)e()}function Mh(){return Dh>0}function Nh(){return Dh+=1,()=>{--Dh,Dh===0&&kh&&Lh(kh.id,null)}}function Ph(e){return Ah.add(e),()=>{Ah.delete(e)}}function Fh(){return kh}function Ih(e){return new Promise(t=>{kh?.resolve(null),Oh+=1,kh={id:Oh,items:e,resolve:t},jh()})}function Lh(e,t){if(!kh||kh.id!==e)return;let n=kh;kh=null,jh(),n.resolve(t)}var Rh=6048e5;function zh(e){return new Date(e+Rh).toISOString()}function Bh(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Vh(e){if(!e.token||e.token.trim().length===0)return!1;let t=Bh(e.expiresAt);return e.expiresAt!==void 0&&t===null?!1:t===null||t>e.nowMs}var Hh=`ryco:client-settings:v1`,Uh=`ryco:saved-environment-registry:v1`,Wh=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)}),Gh=sn({version:Ne(On),records:Ne(jt(Wh))});function Kh(){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 Jh(e,t){return Vh({token:e.bearerToken,expiresAt:e.bearerTokenExpiresAt,nowMs:t})}function Yh(e,t){return e.bearerToken?{...e,bearerTokenSavedAt:e.bearerTokenSavedAt??new Date(t).toISOString(),bearerTokenExpiresAt:e.bearerTokenExpiresAt??zh(t)}:e}function Xh(e){return qh(e)}function Zh(){if(!Kh())return null;try{return hi(Hh,Hn)}catch{return null}}function Qh(e){Kh()&&Ci(Hh,e,Hn)}function $h(){if(!Kh())return{};try{return hi(`ryco:saved-environment-registry:v1`,Gh)??{}}catch{return{}}}function eg(e){Kh()&&Ci(Uh,e,Gh)}function tg(){return $h().records??[]}function ng(e){eg({version:1,records:e})}function rg(){return tg().map(e=>qh(e))}function ig(e){let t=Date.now(),n=new Map(tg().map(e=>[e.environmentId,e]));ng(e.map(e=>{let r=n.get(e.environmentId);if(!r||!Jh(r,t))return qh(e);let i=Yh(r,t),a=i.bearerToken;if(!a)return qh(e);let o=i.bearerTokenSavedAt??new Date(t).toISOString(),s=i.bearerTokenExpiresAt??zh(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 ag(e){let t=$h(),n=t.records??[],r=n.find(t=>t.environmentId===e);if(!r?.bearerToken)return null;let i=Date.now();if(!Jh(r,i))return sg(e),null;let a=Yh(r,i);return(a.bearerTokenSavedAt!==r.bearerTokenSavedAt||a.bearerTokenExpiresAt!==r.bearerTokenExpiresAt)&&eg({version:t.version??1,records:n.map(t=>t.environmentId===e?a:t)}),r.bearerToken}function og(e,t){let n=t.trim();if(n.length===0)return sg(e),!1;let r=$h(),i=r.records??[],a=!1,o=Date.now();return eg({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:zh(o)};return t.desktopSsh?Object.assign(r,{desktopSsh:t.desktopSsh}):r})}),a}function sg(e){let t=$h();eg({version:t.version??1,records:(t.records??[]).map(t=>t.environmentId===e?Xh(t):t)})}var cg;function lg(){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(lg())}function ug(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):so()===`phone`&&Mh()?Ih(e):Eh(e,t)},persistence:{getClientSettings:async()=>window.desktopBridge?window.desktopBridge.getClientSettings():Zh(),setClientSettings:async e=>{if(window.desktopBridge)return window.desktopBridge.setClientSettings(e);Qh(e)},getSavedEnvironmentRegistry:async()=>window.desktopBridge?window.desktopBridge.getSavedEnvironmentRegistry():rg(),setSavedEnvironmentRegistry:async e=>{if(window.desktopBridge)return window.desktopBridge.setSavedEnvironmentRegistry(e);ig(e)},getSavedEnvironmentSecret:async e=>window.desktopBridge?window.desktopBridge.getSavedEnvironmentSecret(e):ag(e),setSavedEnvironmentSecret:async(e,t)=>window.desktopBridge?window.desktopBridge.setSavedEnvironmentSecret(e,t):og(e,t),removeSavedEnvironmentSecret:async e=>{if(window.desktopBridge)return window.desktopBridge.removeSavedEnvironmentSecret(e);sg(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 dg(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 fg(){if(!(typeof window>`u`))return cg||(window.nativeApi?(cg=dg(ug(),window.nativeApi),cg):(cg=ug(()=>{let e=Vr();if(!e)return;let t=e.environmentId?yE(e.environmentId)?.client:void 0;return t||l()?t:SE().client},{includeMcp:Vr()!==null}),cg))}function pg(){let e=fg();if(!e)throw Error(`Local API not found`);return e}function mg(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 hg=si({kv:{getRegistry:()=>pg().persistence.getSavedEnvironmentRegistry(),setRegistry:e=>pg().persistence.setSavedEnvironmentRegistry(e.map(e=>_r(e)))},secretKV:bh}),gg=mg(hg.registryStore),X=mg(hg.runtimeStore),_g=hg.hasHydrated,vg=hg.waitForHydration,yg=hg.list,bg=hg.get,xg=hg.persistRecord,Sg=hg.readBearerToken,Cg=hg.writeBearerToken,wg=hg.removeBearerToken;hg.resetForTests,hg.resetRuntimeForTests,hg.getRuntime;function Tg(e){if(l())return null;let t=Vr();return t?.environmentId===e?ci(t):bg(e)?.httpBaseUrl??null}function Eg(e){let t=Tg(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 Dg(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 Og=new Map,kg=Pc({canReadConnections:()=>!0,readClient:e=>yE(e)?.client??null});function Ag(e){return Og.get(e)??kg.read(e)}function jg(e,t){return Og.get(e)??(t?Nc(t):void 0)}function Mg(e){let t=Ag(e);if(!t)throw Error(`Environment API not found for environment ${e}`);return t}Object.freeze({entries:[],truncated:!1});var Ng=Object.freeze({data:null,isLoading:!1,isFetching:!1,error:null}),Pg=Ng,Fg=Xn(Ng).pipe(hr,Zr(`project-search-entries:null`)),Ig=new Set,Lg=new Map,Rg=Cr(e=>(Ig.add(e),Xn(Ng).pipe(hr,Zr(`project-search-entries:${e}`))));function zg(e,t,n){return`${e}::${t}::${n}`}function Bg(e){return e.environmentId===null||e.cwd===null?null:zg(e.environmentId,e.cwd,e.limit??80)}function Vg(e){return e===null?Fg:Rg(e)}function Hg(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 Ug(e,t,n){let r=zg(e,t,n),i=Lg.get(r);return i||(i={environmentId:e,cwd:t,limit:n,token:0,inFlightQuery:null,lastInput:null,observerCount:0,cache:new Map},Lg.set(r,i)),i}function Wg(e,t){let n=Rg(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 Gg(e){let t=z.get(Rg(e));Wg(e,{data:t.data,isLoading:t.data===null,isFetching:!0,error:null})}function Kg(e,t){Wg(e,{data:t,isLoading:!1,isFetching:!1,error:null})}function qg(e,t){Wg(e,{data:z.get(Rg(e)).data,isLoading:!1,isFetching:!1,error:t})}function Jg(e,t,n){let r=n.query,i=++t.token;t.inFlightQuery=r,Gg(e);let a;try{a=Mg(n.environmentId)}catch(n){t.token===i&&(t.inFlightQuery=null,qg(e,Yg(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,Kg(e,n))}).catch(n=>{t.token===i&&(t.inFlightQuery=null,qg(e,Yg(n)))})}function Yg(e){return e instanceof Error?e:Error(String(e))}function Xg(e,t){let n=Hg(e);if(n===null)return;let r=zg(n.environmentId,n.cwd,n.limit),i=Ug(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){Kg(r,e.result);return}if(i.inFlightQuery===n.query)return}Jg(r,i,n)}function Zg(e){if(e.environmentId===null||e.cwd===null)return;let t=Ug(e.environmentId,e.cwd,e.limit??80);t.observerCount+=1}function Qg(e){let t=Bg(e);if(t===null)return;let n=Lg.get(t);n&&n.observerCount>0&&--n.observerCount}function $g(e){let t=e?.environmentId??null,n=e?.cwd??null;for(let e of Lg.values())(t===null||e.environmentId===t)&&(n===null||e.cwd===n)&&(e.cache.clear(),e.observerCount>0&&e.lastInput!==null&&Xg(e.lastInput,{force:!0}))}var e_=Object.freeze({data:null,isLoading:!1,isFetching:!1,error:null,isPending:!0}),t_=e_,n_=`\0`,r_=new Set,i_=Cr(e=>(r_.add(e),Xn(e_).pipe(hr,Zr(`filesystem-browse:${e}`)))),a_=Xn(e_).pipe(hr,Zr(`filesystem-browse:null`)),o_=new Map;function s_(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}${n_}${t??``}${n_}${e.partialPath}`;return{environmentId:e.environmentId,partialPath:e.partialPath,cwd:t,staleTime:e.staleTime??3e4,compositeKey:n}}function c_(e){return s_(e)?.compositeKey??null}function l_(e){return e===null?a_:i_(e)}function u_(e,t){z.set(i_(e),t)}function d_(e){return z.get(i_(e))}async function f_(e){let t=++e.fetchToken;e.fetching=!0;let n=d_(e.compositeKey);u_(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?Ag(e.environmentId):r;if(!i){if(t!==e.fetchToken)return;e.fetching=!1,u_(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,u_(e.compositeKey,{data:n,isLoading:!1,isFetching:!1,error:null,isPending:!1})}catch(n){if(t!==e.fetchToken)return;e.fetching=!1;let r=Yg(n);u_(e.compositeKey,{data:d_(e.compositeKey).data,isLoading:!1,isFetching:!1,error:r,isPending:!1})}}function p_(e){let t=o_.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},o_.set(e.compositeKey,t)),t}function m_(e){let t=p_(e),n=t.hasData&&Date.now()-t.lastFetchedAt>=t.staleTime;!t.fetching&&(!t.hasData||n)&&f_(t)}function h_(e,t){let n=s_(e);if(n===null)return;let r=p_(n);if(!t?.force){if(r.hasData&&Date.now()-r.lastFetchedAt<n.staleTime){u_(n.compositeKey,{data:r.lastResult,isLoading:!1,isFetching:!1,error:null,isPending:!1});return}if(r.fetching)return}f_(r)}function g_(e,t){let n=s_(e);if(n===null)return()=>void 0;let r=p_(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,m_(n),()=>{let e=o_.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 __(e){h_(e)}function v_(){for(let e of Ig)z.set(Rg(e),Ng);Ig.clear(),Lg.clear();for(let e of o_.values())e.fetchToken+=1;o_.clear();for(let e of r_)z.set(i_(e),e_);r_.clear()}function y_(e){return JSON.stringify([e.environmentId??null,e.threadId,e.fromTurnCount,e.toTurnCount,e.ignoreWhitespace,e.cacheScope??null])}function b_(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 x_(e){return(e.enabled??!0)&&!!e.environmentId&&!!e.threadId&&Qe(b_(e))}function S_(e){return e instanceof Error?e.message:typeof e==`string`?e:``}function C_(e){let t=S_(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 w_(e){let t=S_(e).toLowerCase();return t.includes(`exceeds current turn count`)||t.includes(`checkpoint is unavailable for turn`)||t.includes(`filesystem checkpoint is unavailable`)}function T_(e,t){return w_(t)?e<12:e<3}function E_(e,t){return w_(t)?Math.min(5e3,250*2**(e-1)):Math.min(1e3,100*2**(e-1))}async function D_(e){let t=b_(e);if(!e.environmentId||!e.threadId||rt(t))throw Error(`Checkpoint diff is unavailable.`);let n=Mg(e.environmentId);return t.value.kind===`fullThreadDiff`?await n.orchestration.getFullThreadDiff(t.value.input):await n.orchestration.getTurnDiff(t.value.input)}var O_=Object.freeze({data:null,error:null,isLoading:!1}),k_=Object.freeze({data:null,error:null,isLoading:!0}),A_=O_,j_=Xn(A_).pipe(hr,Zr(`checkpoint-diff:disabled`)),M_=new Set,N_=Cr(e=>(M_.add(e),Xn(k_).pipe(hr,Zr(`checkpoint-diff:${e}`)))),P_=new Map,F_=new Map,I_=()=>void 0;function L_(e,t){z.set(N_(e),t)}function R_(e){return z.get(N_(e))}function z_(e){return new Promise(t=>{setTimeout(t,e)})}function B_(e){let t=++e.generation;e.fetching=!0;let n=R_(e.key);L_(e.key,{data:n.data,error:null,isLoading:n.data===null}),(async()=>{let n=0;for(;;)try{let n=await D_(e.input);if(e.generation!==t)return;e.fetching=!1,e.hasResolved=!0,L_(e.key,{data:n,error:null,isLoading:!1});return}catch(r){let i=Error(C_(r),{cause:r});if(n+=1,e.generation!==t)return;if(!T_(n,i)){e.fetching=!1,L_(e.key,{data:null,error:i,isLoading:!1});return}if(await z_(E_(n,i)),e.generation!==t)return}})()}function V_(e,t){let n=F_.get(e);if(n){n.add(t);return}F_.set(e,new Set([t]))}function H_(e){if(!x_(e)||e.threadId===null)return I_;let t=y_(e),n=P_.get(t);return n||(n={key:t,input:e,threadId:e.threadId,refCount:0,generation:0,hasResolved:!1,fetching:!1},P_.set(t,n),V_(e.threadId,t)),n.refCount+=1,!n.hasResolved&&!n.fetching&&B_(n),()=>{let e=P_.get(t);e&&(e.refCount=Math.max(0,e.refCount-1))}}function U_(e){if(e.hasResolved=!1,e.refCount>0){B_(e);return}e.generation+=1,e.fetching=!1}function W_(){for(let e of P_.values())U_(e)}function G_(){for(let e of P_.values())e.generation+=1;P_.clear(),F_.clear();for(let e of M_)L_(e,k_);M_.clear()}function K_(){return Gc(Zn,rr.origin())}var q_=e=>K_().bootstrapRemoteBearerSession(e),J_=e=>K_().fetchRemoteSessionState(e),Y_=e=>K_().fetchRemoteEnvironmentDescriptor(e),X_=e=>K_().resolveRemoteWebSocketConnectionUrl(e);function Z_(e){return Yc(e,rr.origin(),{readPairingToken:Ti,readHostedPairingRequest:co})}var Q_=Object.freeze({lastSnapshotSequence:null,lastEventSequence:null,highestSequence:null,eventCount:0,snapshotCount:0,gapCount:0,lastGap:null,updatedAt:null});function $_(){return new Date().toISOString()}function ev(e,t,n){let r=e??Q_,i=r.highestSequence===null?t:Math.max(r.highestSequence,t);return{...r,lastSnapshotSequence:t,highestSequence:i,snapshotCount:r.snapshotCount+1,updatedAt:n}}function tv(e,t,n){let r=e??Q_,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 nv=c()(e=>({byEnvironment:{},recordSnapshot:(t,n)=>e(e=>({byEnvironment:{...e.byEnvironment,[t]:ev(e.byEnvironment[t],n,$_())}})),recordEvent:(t,n)=>e(e=>({byEnvironment:{...e.byEnvironment,[t]:tv(e.byEnvironment[t],n,$_())}})),reset:()=>e({byEnvironment:{}})}));function rv(e,t){try{nv.getState().recordSnapshot(e,t)}catch{}}function iv(e,t){try{nv.getState().recordEvent(e,t)}catch{}}var av={recordEvent:iv,recordSnapshot:rv};function ov(e){return oi({...e,pushSequenceMonitor:av})}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 sv=xn({span(e){return new ht(e)}}),cv={tracingLayer:E(un,sv),performanceEnabled:()=>!1,recordPerformance:()=>void 0};yt(`@ryco/client-runtime/platform/Observability`,{defaultValue:()=>cv}),zn()(`@ryco/client-runtime/platform/ClientRuntimeConfig`);var lv={clock:{now:()=>Date.now()},frameScheduler:{scheduleFrame:e=>void Promise.resolve().then(e)},observability:cv,isHostedHubMode:()=>!1,resolveAttachmentPreviewUrl:({attachmentId:e})=>e},uv=null;function dv(e){uv=e}function fv(e){uv=null,lv=e}function pv(){if(uv){let e=uv;uv=null,e()}return lv}var mv=`context-compaction`,hv=A(fe);function gv(e){return e.kind===mv}function _v(e){if(e.kind!==`context-handoff`)return!1;try{let t=hv(e.payload);return t.status===`consumed`||t.status===`failed`||t.status===`delivery-uncertain`}catch{return!1}}function vv(e){return gv(e)||_v(e)}function yv(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=>vv(e)&&!r.has(e.id));return i.length===0?[...n]:[...i,...n]}var bv=[],xv=[],Sv=[],Cv=[],wv={},Tv={},Ev={},Dv={},Ov=new WeakMap,kv=new WeakMap;function Av(e,t,n){if(!e||e.length===0||!t)return n;let r=Ov.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||Ov.set(e,o),a}function jv(e,t){return Av(e.messageIdsByThreadId[t],e.messageByThreadId[t]??wv,bv)}function Mv(e,t){return Av(e.activityIdsByThreadId[t],e.activityByThreadId[t]??Tv,xv)}function Nv(e,t){return Av(e.proposedPlanIdsByThreadId[t],e.proposedPlanByThreadId[t]??Ev,Sv)}function Pv(e,t){return Av(e.turnDiffIdsByThreadId[t],e.turnDiffSummaryByThreadId[t]??Dv,Cv)}function Fv(e,t){let n=e.threadShellById[t];if(!n)return;let r=e.threadSessionById[t]??null,i=e.threadTurnStateById[t],a=jv(e,t),o=Mv(e,t),s=Nv(e,t),c=Pv(e,t),l=kv.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 kv.set(n,{session:r,turnState:i,messages:a,activities:o,proposedPlans:s,turnDiffSummaries:c,thread:u}),u}var Iv={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},Lv={activeEnvironmentId:null,environmentStateById:{}},Rv=2e3,zv=500,Bv=[],Vv=[],Hv=[],Uv=[];function Wv(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function Gv(e){return wn(e.instanceId)?{...e,model:pi(e.instanceId,e.model)}:e}function Kv(e){return e.map(e=>({...e}))}function qv(e){return{provider:Ly(e.providerName),providerInstanceId:e.providerInstanceId??void 0,status:Iy(e.status),orchestrationStatus:e.status,activeTurnId:e.activeTurnId??void 0,createdAt:e.updatedAt,updatedAt:e.updatedAt,...e.lastError?{lastError:e.lastError}:{}}}function Jv(e,t){let n=t.attachments?.map(t=>({type:`image`,id:t.id,name:t.name,mimeType:t.mimeType,sizeBytes:t.sizeBytes,...pv().isHostedHubMode()?{}:{previewUrl:pv().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 Yv(e){return{id:e.id,turnId:e.turnId,planMarkdown:e.planMarkdown,implementedAt:e.implementedAt,implementationThreadId:e.implementationThreadId,createdAt:e.createdAt,updatedAt:e.updatedAt}}function Xv(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(Zv).map(e=>({path:e.path,kind:e.kind,additions:e.additions,deletions:e.deletions}))}}function Zv(e){return e.kind!==`modified`||e.additions>0||e.deletions>0}function Qv(e,t){return{id:e.id,environmentId:t,name:e.title,cwd:e.workspaceRoot,projectMetadataDir:e.projectMetadataDir,repositoryIdentity:e.repositoryIdentity??null,defaultModelSelection:e.defaultModelSelection?Gv(e.defaultModelSelection):null,customSystemPrompt:e.customSystemPrompt??null,customAvatarContentHash:e.customAvatarContentHash??null,preferredRemoteName:e.preferredRemoteName??null,createdAt:e.createdAt,updatedAt:e.updatedAt,scripts:Kv(e.scripts)}}function $v(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 ey(e,t){return{id:e.id,environmentId:t,codexThreadId:null,projectId:e.projectId,title:e.title,modelSelection:Gv(e.modelSelection),runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,session:e.session?qv(e.session):null,messages:e.messages.map(e=>Jv(t,e)),proposedPlans:e.proposedPlans.map(Yv),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(Xv),activities:e.activities.map(e=>({...e}))}}function ty(e,t){let n={id:e.id,environmentId:t,codexThreadId:null,projectId:e.projectId,title:e.title,modelSelection:Gv(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:Gv(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 ny(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 ry(e){return{latestTurn:e.latestTurn,...e.pendingSourceProposedPlan?{pendingSourceProposedPlan:e.pendingSourceProposedPlan}:{}}}function iy(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.threadId===t.threadId&&e.planId===t.planId}function ay(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 oy(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&&iy(e.sourceProposedPlan,t.sourceProposedPlan)}function sy(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 cy(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&&sy(e.session,t.session)&&e.createdAt===t.createdAt&&e.archivedAt===t.archivedAt&&e.settledOverride===t.settledOverride&&e.settledAt===t.settledAt&&e.updatedAt===t.updatedAt&&oy(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)&&ly(e.priority,t.priority)}function ly(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 uy(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&&ay(e.goal,t.goal)}function dy(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 fy(e,t){return e!==void 0&&oy(e.latestTurn,t.latestTurn)&&iy(e.pendingSourceProposedPlan,t.pendingSourceProposedPlan)}function py(e,t){return e.includes(t)?[...e]:[...e,t]}function my(e,t){return e.filter(e=>e!==t)}function hy(e){return{ids:e.messages.map(e=>e.id),byId:Object.fromEntries(e.messages.map(e=>[e.id,e]))}}function gy(e){return _y(e.activities)}function _y(e){return{ids:e.map(e=>e.id),byId:Object.fromEntries(e.map(e=>[e.id,e]))}}function vy(e){return{ids:e.proposedPlans.map(e=>e.id),byId:Object.fromEntries(e.proposedPlans.map(e=>[e.id,e]))}}function yy(e){return{ids:e.turnDiffSummaries.map(e=>e.turnId),byId:Object.fromEntries(e.turnDiffSummaries.map(e=>[e.turnId,e]))}}function by(e){return e.projectIds.flatMap(t=>{let n=e.projectById[t];return n?[n]:[]})}function xy(e){return e.threadIds.flatMap(t=>{let n=Fv(e,t);return n?[n]:[]})}function Sy(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]??Bv,i=my(n,t);if(i.length===0){let{[r]:t,...n}=e;e=n}else Wv(n,i)||(e={...e,[r]:i})}let a=e[n]??Bv,o=py(a,t);Wv(a,o)||(e={...e,[n]:o}),e!==i.threadIdsByProjectId&&(i={...i,threadIdsByProjectId:e})}return i}function Cy(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=ny(t),o=ry(t),s=e.threadShellById[t.id],c=e.threadTurnStateById[t.id],l=Sy(e,t.id,t.projectId,n?.projectId);if(uy(s,a)||(l={...l,threadShellById:{...l.threadShellById,[t.id]:a}}),sy(n?.session??null,t.session)||(l={...l,threadSessionById:{...l.threadSessionById,[t.id]:t.session}}),fy(c,o)||(l={...l,threadTurnStateById:{...l.threadTurnStateById,[t.id]:o}}),n?.messages!==i.messages){let e=hy(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=gy(t);l={...l,activityIdsByThreadId:{...l.activityIdsByThreadId,[t.id]:e.ids},activityByThreadId:{...l.activityByThreadId,[t.id]:e.byId}}}if(n?.proposedPlans!==t.proposedPlans){let e=vy(t);l={...l,proposedPlanIdsByThreadId:{...l.proposedPlanIdsByThreadId,[t.id]:e.ids},proposedPlanByThreadId:{...l.proposedPlanByThreadId,[t.id]:e.byId}}}if(n?.turnDiffSummaries!==t.turnDiffSummaries){let e=yy(t);l={...l,turnDiffIdsByThreadId:{...l.turnDiffIdsByThreadId,[t.id]:e.ids},turnDiffSummaryByThreadId:{...l.turnDiffSummaryByThreadId,[t.id]:e.byId}}}return l}function wy(e,t){let n=e.threadShellById[t.shell.id],r=Sy(e,t.shell.id,t.shell.projectId,n?.projectId);return uy(n,t.shell)||(r={...r,threadShellById:{...r.threadShellById,[t.shell.id]:t.shell}}),sy(e.threadSessionById[t.shell.id]??null,t.session)||(r={...r,threadSessionById:{...r.threadSessionById,[t.shell.id]:t.session}}),fy(e.threadTurnStateById[t.shell.id],t.turnState)||(r={...r,threadTurnStateById:{...r.threadTurnStateById,[t.shell.id]:t.turnState}}),cy(e.sidebarThreadSummaryById[t.shell.id],t.summary)||(r={...r,sidebarThreadSummaryById:{...r.sidebarThreadSummaryById,[t.shell.id]:t.summary}}),r}function Ty(e,t){return Object.fromEntries(Object.entries(e).flatMap(([e,n])=>t.has(e)?[[e,n]]:[]))}function Ey(e,t){let n=e.threadShellById[t];if(!n)return e;let r=my(e.threadIds,t),i=my(e.threadIdsByProjectId[n.projectId]??Bv,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 Dy(e,t){let n=e.environmentStateById[t.environmentId];return n?Yy(e,t.environmentId,Ey(n,t.threadId)):e}function Oy(e,t){let n=e.worktreeById??{},r=e.worktreeIds??Vv,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(dy(i,t)&&r.includes(t.id)&&c.includes(t.id))return e;if(a){let e=my(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 ky(e,t){let n=e.worktreeById??{},r=n[t];if(!r)return e;let{[t]:i,...a}=n,o=e.worktreeIdsByProjectId??{},s=my(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:my(e.worktreeIds??Vv,t),worktreeIdsByProjectId:c,worktreeById:a}}function Ay(e){return e===`error`?`error`:e===`missing`?`interrupted`:`completed`}function jy(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 My(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 Ny(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 Py(e,t){return e.filter(e=>e.turnId===null||t.has(e.turnId))}function Fy(e,t){return e.filter(e=>e.turnId===null||t.has(e.turnId))}function Iy(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 Ly(e){return _(Xt)(e)?e:Xt.make(`codex`)}function Z(e,t,n){let r=Fv(e,t);if(!r)return e;let i=n(r);return i===r?e:Cy(e,i,r)}function Ry(e,t,n){let r=e.threadShellById[t];return!r||r.updatedAt===n?e:{...e,threadShellById:{...e.threadShellById,[t]:{...r,updatedAt:n}}}}function zy(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 By(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 Vy(e,t,n){let r=e.pendingMessagesByThreadId[t]??[],i=r.find(e=>e.id===n.id)?r.map(e=>e.id===n.id?By(e,n):e):[...r,n];return{...e,pendingMessagesByThreadId:{...e.pendingMessagesByThreadId,[t]:i}}}function Hy(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 Uy(e,t,n){let r=Jv(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 Vy(e,i,r);let a=e.messageIdsByThreadId[i]??Hv,o=e.messageByThreadId[i]??{},s=e.pendingMessagesByThreadId[i]??[],c=s.find(e=>e.id===r.id),l=o[r.id]??c,u=l?By(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>Rv)){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=Hy(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:My({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}:{}};fy(e,r)||(m={...m,threadTurnStateById:{...m.threadTurnStateById,[i]:r}})}}return Ry(m,i,t.occurredAt)}function Wy(e,t,n){let r=e.length>0?t[e[e.length-1]]:void 0;if(!r||jy(r,n)<=0)return[...e,n.id];let i=[...e],a=i.findIndex(e=>{let r=t[e];return r?jy(n,r)<0:!1});return a===-1?i.push(n.id):i.splice(a,0,n.id),i}function Gy(e,t){let n=t.payload.threadId;if(!e.threadShellById[n])return e;let r={...t.payload.activity},i=e.activityIdsByThreadId[n]??Uv,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=Wy(i.filter(e=>e!==r.id),l,r)):c=Wy(i,a,r),c.length>zv){let e=_y(yv(c.flatMap(e=>{let t=l[e];return t?[t]:[]}),zv));c=e.ids,l=e.byId}return Ry({...e,activityIdsByThreadId:c===i?e.activityIdsByThreadId:{...e.activityIdsByThreadId,[n]:c},activityByThreadId:{...e.activityByThreadId,[n]:l}},n,t.occurredAt)}function Ky(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 Jy(e,t){return e.environmentStateById[t]??Iv}function Yy(e,t,n){let r=e.environmentStateById[t]===n?e.environmentStateById:{...e.environmentStateById,[t]:n};return r===e.environmentStateById?e:{...e,environmentStateById:r}}function Xy(e,t,n){let r=t.projects.map(e=>Qv(e,n)),i=(t.worktrees??[]).map(e=>$v(e,n)),a=new Set(t.threads.map(e=>e.id)),o={...e,...Ky(r),...qy(i),threadIds:[],threadIdsByProjectId:{},threadShellById:{},threadSessionById:{},threadTurnStateById:{},sidebarThreadSummaryById:{},messageIdsByThreadId:Ty(e.messageIdsByThreadId,a),messageByThreadId:Ty(e.messageByThreadId,a),pendingMessagesByThreadId:Ty(e.pendingMessagesByThreadId,a),activityIdsByThreadId:Ty(e.activityIdsByThreadId,a),activityByThreadId:Ty(e.activityByThreadId,a),proposedPlanIdsByThreadId:Ty(e.proposedPlanIdsByThreadId,a),proposedPlanByThreadId:Ty(e.proposedPlanByThreadId,a),turnDiffIdsByThreadId:Ty(e.turnDiffIdsByThreadId,a),turnDiffSummaryByThreadId:Ty(e.turnDiffSummaryByThreadId,a),threadHistoryByThreadId:Ty(e.threadHistoryByThreadId??{},a),threadHistoryLoadByThreadId:Ty(e.threadHistoryLoadByThreadId??{},a),bootstrapComplete:!0,hydratedFromCacheAt:void 0};for(let e of t.threads)o=wy(o,ty(e,n));return o}function Zy(e,t,n){return Yy(e,n,Xy(Jy(e,n),t,n))}function Qy(e,t,n){let r=Jy(e,n),i=Fv(r,t.id);return Yy(e,n,Cy(r,ey(t,n),i))}var $y={oldestCursor:null,newestCursor:null,hasMoreBefore:!1};function eb(e,t){let n=e?.[t.collection];return{messages:e?.messages??$y,proposedPlans:e?.proposedPlans??$y,activities:e?.activities??$y,checkpoints:e?.checkpoints??$y,[t.collection]:{oldestCursor:t.page.oldestCursor??n?.oldestCursor??null,newestCursor:n?.newestCursor??t.page.newestCursor,hasMoreBefore:t.page.hasMoreBefore}}}function tb(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]=Jv(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=_y(yv(Object.values(r).toSorted(jy),zv));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]=Yv(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]=Xv(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]:eb(e.threadHistoryByThreadId?.[n],t)}}}function nb(e,t,n){let r=Qy(e,t.thread,n),i=Jy(r,n),{[t.thread.id]:a,...o}=i.threadHistoryLoadByThreadId??{};return Yy(r,n,{...i,threadHistoryByThreadId:{...i.threadHistoryByThreadId,[t.thread.id]:t.history},threadHistoryLoadByThreadId:o})}function rb(e,t,n,r){return Yy(e,r,tb(Jy(e,r),t,n,r))}function ib(e,t){let n=Jy(e,t.environmentId);return Yy(e,t.environmentId,{...n,threadHistoryLoadByThreadId:{...n.threadHistoryLoadByThreadId,[t.threadId]:{...n.threadHistoryLoadByThreadId?.[t.threadId],[t.collection]:t.loadState}}})}function ab(e,t,n){switch(t.type){case`project.created`:{let r=Qv({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?Gv(t.payload.defaultModelSelection):null},...t.payload.scripts===void 0?{}:{scripts:Kv(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:my(e.projectIds,t.payload.projectId)}}case`thread.created`:{let r=Fv(e,t.payload.threadId);return Cy(e,ey({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 Ey(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 zy(e,t.payload.threadId,{settledOverride:`settled`,settledAt:t.payload.settledAt,updatedAt:t.payload.updatedAt});case`thread.unsettled`:return zy(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:Gv(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:Gv(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:My({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 Uy(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?My({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=Yv(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=Xv({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?My({previous:e.latestTurn,turnId:t.payload.turnId,state:Ay(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=Ny(e.messages,r,t.payload.turnCount).slice(-2e3),a=Fy(e.proposedPlans,r).slice(-200),o=Py(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:Ay(s.status??`ready`),requestedAt:s.completedAt,startedAt:s.completedAt,completedAt:s.completedAt,assistantMessageId:s.assistantMessageId??null},updatedAt:t.occurredAt}});case`thread.activity-appended`:return Gy(e,t);case`worktree.created`:return Oy(e,$v({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?Oy(e,{...n,archivedAt:t.payload.archivedAt,updatedAt:t.payload.archivedAt}):e}case`worktree.metaUpdated`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Oy(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?Oy(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?Oy(e,{...n,archivedAt:null,updatedAt:t.payload.restoredAt}):e}case`worktree.deleted`:return ky(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 ob(e,t,n){switch(t.kind){case`project-upserted`:{let r=Qv(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:my(e.projectIds,t.projectId)}}case`thread-upserted`:return wy(e,ty(t.thread,n));case`worktree-upserted`:return Oy(e,$v(t.worktree,n));case`thread-removed`:return Ey(e,t.threadId);case`worktree-removed`:return ky(e,t.worktreeId)}}function sb(e,t,n){if(t.length===0)return e;let r=pv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=Jy(e,n),s=Yy(e,n,t.reduce((e,t)=>ab(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 cb(e){return Object.entries(e.environmentStateById)}function lb(e,t){return t?Jy(e,t):Iv}function ub(e,t){return xy(lb(e,t))}function db(e){return cb(e).flatMap(([,e])=>by(e))}function fb(e){return cb(e).flatMap(([,e])=>xy(e))}function pb(e){return cb(e).flatMap(([,e])=>e.threadIds.flatMap(t=>{let n=e.threadShellById[t];return n?[n]:[]}))}function mb(e){return cb(e).flatMap(([e,t])=>t.threadIds.flatMap(n=>{let r=t.sidebarThreadSummaryById[n];return r&&r.environmentId===e?[r]:[]}))}function hb(e){return cb(e).flatMap(([e,t])=>(t.worktreeIds??Vv).flatMap(n=>{let r=t.worktreeById?.[n];return r&&r.environmentId===e?[r]:[]}))}function gb(e,t){if(!t)return[];let n=lb(e,t.environmentId);return(n.worktreeIdsByProjectId?.[t.projectId]??[]).flatMap(e=>{let t=n.worktreeById?.[e];return t?[t]:[]})}function _b(e,t){return t.length===0?[]:t.length===1?gb(e,t[0]):t.flatMap(t=>gb(e,t))}function vb(e,t){if(!t)return[];let n=lb(e,t.environmentId);return(n.threadIdsByProjectId[t.projectId]??Bv).flatMap(e=>{let t=n.sidebarThreadSummaryById[e];return t?[t]:[]})}function yb(e,t){return t.length===0?[]:t.length===1?vb(e,t[0]):t.flatMap(t=>vb(e,t))}function bb(e,t){return t?lb(e,t.environmentId).projectById[t.projectId]:void 0}function xb(e,t){return t?Fv(lb(e,t.environmentId),t.threadId):void 0}function Sb(e,t){return t?lb(e,t.environmentId).threadShellById[t.threadId]!==void 0:!1}function Cb(e,t){return t?lb(e,t.environmentId).sidebarThreadSummaryById[t.threadId]:void 0}function wb(e,t,n){let r=Z(Jy(e,t.environmentId),t.threadId,e=>e.error===n?e:{...e,error:n});return Yy(e,t.environmentId,r)}function Tb(e,t,n){let r=pv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=Yy(e,n,ab(Jy(e,n),t,n));return i&&r.observability.recordPerformance(`web.store.orchestration.event.apply`,t,{durationMs:r.clock.now()-a}),o}function Eb(e,t,n){let r=pv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=Yy(e,n,ob(Jy(e,n),t,n));return i&&r.observability.recordPerformance(`web.store.orchestration.shell.apply`,t,{durationMs:r.clock.now()-a}),o}function Db(e,t){return e.activeEnvironmentId===t?e:{...e,activeEnvironmentId:t}}function Ob(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 kb(e,t,n){if(e.environmentStateById[n])return e;let r={...Iv,...Ky(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=wy(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 Yy(e,n,r)}function Ab(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 Yy(e,t,{...r,threadSessionById:i,sidebarThreadSummaryById:a,bootstrapComplete:!1,hydratedFromCacheAt:n})}function jb(e,t,n,r){let i=Z(Jy(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 Yy(e,t.environmentId,i)}function Mb(e,t,n,r,i){let a=Jy(e,t),o=a.worktreeById?.[n];return o?Yy(e,t,Oy(a,{...o,title:r,updatedAt:i})):e}var Nb=8;function Pb(e){let t=e.now??(()=>pv().clock.now()),n=e.schedule??(e=>pv().frameScheduler.scheduleFrame(e)),r=e.thresholdEventsPerMs??10,i=e.rateWindowMs??Nb,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=Eb(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=Pb({getState:t,commitState:t=>e(t)});return{...Lv,setActiveEnvironmentId:t=>{n.flush(),e(e=>Db(e,t))},removeEnvironmentState:t=>{n.flush(),e(e=>Ob(e,t))},hydrateEnvironmentStateFromCache:(t,r)=>{n.flush(),e(e=>kb(e,t,r))},demoteEnvironmentStateToCachedSnapshot:(t,r)=>{n.flush(),e(e=>Ab(e,t,r))},syncServerShellSnapshot:(t,r)=>{n.flush(),e(e=>Zy(e,t,r))},syncServerThreadDetail:(t,r)=>{n.flush(),e(e=>Qy(e,t,r))},syncServerThreadWindow:(t,r)=>{n.flush(),e(e=>nb(e,t,r))},syncServerThreadHistoryPage:(t,r,i)=>{n.flush(),e(e=>rb(e,t,r,i))},setServerThreadHistoryLoadState:t=>{n.flush(),e(e=>ib(e,t))},applyOrchestrationEvent:(t,r)=>{n.flush(),e(e=>Tb(e,t,r))},applyOrchestrationEvents:(t,r)=>{n.flush(),e(e=>sb(e,t,r))},applyShellEvent:(e,t)=>n.enqueue(e,t),removeThread:t=>{n.flush(),e(e=>Dy(e,t))},setThreadError:(t,r)=>{n.flush(),e(e=>wb(e,t,r))},setThreadBranch:(t,r,i)=>{n.flush(),e(e=>jb(e,t,r,i))},setSidebarWorktreeTitle:(t,r,i,a)=>{n.flush(),e(e=>Mb(e,t,r,i,a))}}});function Fb(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Ib(e){if(e.latestUserMessageAt)return Fb(e.latestUserMessageAt)??-1/0;let t=null;for(let n of e.messages??[]){if(n.role!==`user`)continue;let e=Fb(n.createdAt);e!==null&&(t=t===null?e:Math.max(t,e))}return t===null?Fb(e.updatedAt??e.createdAt)??-1/0:t}function Lb(e,t){return t===`created_at`?Fb(e.createdAt)??-1/0:Ib(e)}function Rb(e,t){return e.toSorted((e,n)=>{let r=Lb(n,t),i=Lb(e,t),a=r===i?0:r>i?1:-1;return a===0?n.id.localeCompare(e.id):a})}function zb(e,t,n){return Rb(e.filter(e=>e.projectId===t&&e.archivedAt===null),n)[0]??null}function Bb(e){return t=>e?lb(t,e.environmentId).projectById[e.projectId]:void 0}function Vb(e){let t,n,r;return i=>{let a=e(i);if(!a)return;let o=lb(i,a.environmentId);return r&&t===o&&n===a.threadId?r:(t=o,n=a.threadId,r=Fv(o,a.threadId),r)}}function Hb(e){return Vb(()=>e)}function Ub(e){return Vb(t=>{if(e){for(let[n,r]of Object.entries(t.environmentStateById))if(r.threadShellById[e])return{environmentId:n,threadId:e}}})}var Wb=(e,t,n)=>t||(n?{id:e,createdAt:n.createdAt,updatedAt:n.updatedAt,latestUserMessageAt:null}:null);function Gb(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=lb(c,e);if(n===l.threadIds&&r===l.sidebarThreadSummaryById&&i===l.threadShellById&&a===t)return s;let u=Rb(l.threadIds.flatMap(e=>{let t=Wb(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}}dv(()=>{fv({clock:{now:()=>Lu.now()},frameScheduler:{scheduleFrame:e=>Ru.scheduleFrame(e)},observability:wd,isHostedHubMode:()=>l(),resolveAttachmentPreviewUrl:({environmentId:e,attachmentId:t})=>Eg({environmentId:e,pathname:`/attachments/${encodeURIComponent(t)}`})})});function Kb(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 Jb={enabled:()=>!1,now:()=>0,record:()=>void 0};function Yb(){let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,n)=>{e.set(t,n)},removeItem:t=>{e.delete(t)}}}var Xb=`ryco:terminal-state:v1`,Zb=[],Qb=200;function $b(e,t){return t===1&&e&&typeof e==`object`?{terminalStateByThreadKey:Object.fromEntries(Object.entries(e.terminalStateByThreadKey??{}).filter(([e])=>s(e)))}:{terminalStateByThreadKey:{}}}function ex(e){let t=[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))];return t.length>0?t:[_i]}function tx(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 nx(e){return`group-${e}`}function rx(e,t){let n=e,r=2;for(;t.has(n);)n=`${e}-${r}`,r+=1;return t.add(n),n}function ix(e,t){return e.findIndex(e=>e.terminalIds.includes(t))}function ax(e){return[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))]}function ox(e,t){let n=new Set(t),r=new Set,i=[],a=new Set;for(let t of e){let e=ax(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():nx(e[0]??`default`);i.push({id:rx(o,a),terminalIds:e})}for(let e of t)r.has(e)||i.push({id:rx(nx(e),a),terminalIds:[e]});return i.length===0?[{id:nx(_i),terminalIds:[_i]}]:i}function sx(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 cx(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||!sx(r.terminalIds,i.terminalIds))return!1}return!0}function lx(e,t){return e.terminalOpen===t.terminalOpen&&e.terminalHeight===t.terminalHeight&&e.activeTerminalId===t.activeTerminalId&&e.activeTerminalGroupId===t.activeTerminalGroupId&&sx(e.terminalIds,t.terminalIds)&&sx(e.runningTerminalIds,t.runningTerminalIds)&&cx(e.terminalGroups,t.terminalGroups)}var ux=Object.freeze({terminalOpen:!1,terminalHeight:280,terminalIds:[_i],runningTerminalIds:[],activeTerminalId:_i,terminalGroups:[{id:nx(_i),terminalIds:[_i]}],activeTerminalGroupId:nx(_i)});function dx(){return{...ux,terminalIds:[...ux.terminalIds],runningTerminalIds:[...ux.runningTerminalIds],terminalGroups:vx(ux.terminalGroups)}}function fx(){return ux}function px(e){let t=ex(e.terminalIds),n=t.length>0?t:[_i],r=tx(e.runningTerminalIds,n),i=n.includes(e.activeTerminalId)?e.activeTerminalId:n[0]??`default`,a=ox(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??nx(`default`)};return lx(e,c)?e:c}function mx(e){return lx(px(e),ux)}function hx(e){return e.trim().length>0}function gx(e){return p(e)}function _x(e,t){return`${gx(e)}\u0000${t}`}function vx(e){return e.map(e=>({id:e.id,terminalIds:[...e.terminalIds]}))}function yx(e,t,n,r){let i=_x(n,r.terminalId),a=e[i]??Zb,o={id:t,event:r},s=a.length>=Qb?[...a.slice(1),o]:[...a,o];return{terminalEventEntriesByKey:{...e,[i]:s},nextTerminalEventId:t+1}}function bx(e){return{cwd:e.snapshot.cwd,worktreePath:e.snapshot.worktreePath}}function xx(e,t,n){let r=px(e);if(!hx(t))return r;let i=!r.terminalIds.includes(t),a=i?[...r.terminalIds,t]:r.terminalIds,o=vx(r.terminalGroups),s=ix(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=rx(nx(t),e);return o.push({id:n,terminalIds:[t]}),px({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:n})}let c=o.findIndex(e=>e.id===r.activeTerminalGroupId);if(c<0&&(c=ix(o,r.activeTerminalId)),c<0){let e=new Set(o.map(e=>e.id)),t=rx(nx(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 px({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:l.id})}function Sx(e,t){let n=px(e);return n.terminalOpen===t?n:{...n,terminalOpen:t}}function Cx(e,t){let n=px(e);return!Number.isFinite(t)||t<=0||n.terminalHeight===t?n:{...n,terminalHeight:t}}function wx(e,t){return xx(e,t,`split`)}function Tx(e,t){return xx(e,t,`new`)}function Ex(e,t){let n=px(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 Dx(e,t){let n=px(e);if(!n.terminalIds.includes(t))return n;let r=n.terminalIds.filter(e=>e!==t);if(r.length===0)return dx();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??nx(a);return px({terminalOpen:n.terminalOpen,terminalHeight:n.terminalHeight,terminalIds:r,runningTerminalIds:n.runningTerminalIds.filter(e=>e!==t),activeTerminalId:a,terminalGroups:o,activeTerminalGroupId:s})}function Ox(e,t,n){let r=px(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 kx(e,t){return!t||t.threadId.length===0?fx():e[gx(t)]??fx()}function Ax(e,t,n){if(t.threadId.length===0)return e;let r=gx(t),i=kx(e,t),a=n(i);if(a===i)return e;if(mx(a)){if(e[r]===void 0)return e;let{[r]:t,...n}=e;return n}return{...e,[r]:a}}function jx(e,t,n){return!t||t.threadId.length===0||n.trim().length===0?Zb:e[_x(t,n)]??Zb}function Mx(e){let t=e?.storage??Yb(),n=e?.observability??Jb;return c()(Si(e=>{let t=(t,n)=>{e(e=>{let r=Ax(e.terminalStateByThreadKey,t,n);return r===e.terminalStateByThreadKey?e:{terminalStateByThreadKey:r}})};return{terminalStateByThreadKey:{},terminalLaunchContextByThreadKey:{},terminalEventEntriesByKey:{},nextTerminalEventId:1,setTerminalOpen:(e,n)=>t(e,e=>Sx(e,n)),setTerminalHeight:(e,n)=>t(e,e=>Cx(e,n)),splitTerminal:(e,n)=>t(e,e=>wx(e,n)),newTerminal:(e,n)=>t(e,e=>Tx(e,n)),ensureTerminal:(e,n,r)=>t(e,e=>{let t=e;return e.terminalIds.includes(n)||(t=Tx(t,n)),r?.active===!1&&(t={...t,activeTerminalId:e.activeTerminalId,activeTerminalGroupId:e.activeTerminalGroupId}),(r?.active??!0)&&(t=Ex(t,n)),r?.open&&(t=Sx(t,!0)),px(t)}),setActiveTerminal:(e,n)=>t(e,e=>Ex(e,n)),closeTerminal:(e,n)=>t(e,e=>Dx(e,n)),setTerminalLaunchContext:(t,n)=>e(e=>({terminalLaunchContextByThreadKey:{...e.terminalLaunchContextByThreadKey,[gx(t)]:n}})),clearTerminalLaunchContext:t=>e(e=>{let n=gx(t);if(!e.terminalLaunchContextByThreadKey[n])return e;let{[n]:r,...i}=e.terminalLaunchContextByThreadKey;return{terminalLaunchContextByThreadKey:i}}),setTerminalActivity:(e,n,r)=>t(e,e=>Ox(e,n,r)),recordTerminalEvent:(t,r)=>{let i=n.enabled(),a=i?n.now():0;e(e=>yx(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=gx(t),i=e.terminalStateByThreadKey,a=e.terminalLaunchContextByThreadKey;(r.type===`started`||r.type===`restarted`)&&(i=Ax(i,t,e=>{let t=e;return e.terminalIds.includes(r.terminalId)||(t=Tx(t,r.terminalId)),t=Ex(t,r.terminalId),t=Sx(t,!0),px(t)}),a={...a,[n]:bx(r)});let o=Kb(r);o!==null&&(i=Ax(i,t,e=>Ox(e,r.terminalId,o)));let s=yx(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=gx(t),r=Ax(e.terminalStateByThreadKey,t,()=>dx()),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=gx(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:Xb,version:2,storage:bi(()=>t),migrate:$b,partialize:e=>({terminalStateByThreadKey:e.terminalStateByThreadKey})}))}var Nx=gi(typeof window<`u`&&!l()?window.localStorage:void 0),Px=Mx({storage:{getItem:e=>Nx.getItem(e),setItem:(e,t)=>{Nx.setItem(e,t)},removeItem:e=>{Nx.removeItem(e)}},observability:{enabled:Ai,now:ji,record:(e,t,n)=>ki(e,t,{durationMs:n})}}),Fx=class extends or{constructor(e,t){super(e,{observability:wd,socket:xh},t)}},Ix=class extends cr{constructor(e,t){super(e,{observability:wd,socket:xh},t)}},Lx=class extends Jr{constructor(e,t){super(e,{observability:wd,socket:xh},t)}},Rx=`ryco:version-mismatch-dismissals:v1`,zx=sn({keys:jt(It)});function Bx(e){let t=e?.trim();return t&&t.length>0?t:null}function Vx(e){let t=Bx(Oi),n=Bx(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 Hx(e){return Vx(e?.environment.serverVersion)}function Ux(e,t){return`${e}:${t.clientVersion}:${t.serverVersion}`}function Wx(){try{return hi(`ryco:version-mismatch-dismissals:v1`,zx)??{keys:[]}}catch{return{keys:[]}}}function Gx(e){try{Ci(Rx,e,zx)}catch{}}function Kx(e){return e?Wx().keys.includes(e):!1}function qx(e){if(!e)return;let t=Wx();t.keys.includes(e)||Gx({keys:[...t.keys,e]})}function Jx(e,t){let n=Bx(e);return n?t?`${n} Hint: ${t.hint}`:n:t?.hint??null}var Yx=`ryco:startup:`;function Xx(){return typeof performance<`u`&&typeof performance.mark==`function`}function Zx(e){return`${Yx}${e}`}function Qx(e){if(Xx())try{performance.mark(Zx(e))}catch{}}function $x(e,t,n){if(!(!Xx()||typeof performance.measure!=`function`))try{performance.measure(`${Yx}${e}`,{start:Zx(t),end:Zx(n)})}catch{}}var eS=new Map,tS=new Map;function nS(e,t){let n=eS.get(e.hubOrigin);n===void 0&&t&&(n=new Map,eS.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 rS(e,t){let n=tS.get(e.hubOrigin);n===void 0&&t&&(n=new Map,tS.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 iS(e){nS(e,!0)?.add(e.nodeId)}function aS(e){return nS(e,!1)?.has(e.nodeId)??!1}function oS(e){return rS(e,!1)?.get(e.nodeId)}function sS(e,t){let n=rS(e,!0),r=n?.get(e.nodeId);(r===void 0||t>r)&&n?.set(e.nodeId,t)}function cS(){eS.clear(),tS.clear()}var lS=Object.freeze({status:`unavailable`,verificationCode:null}),uS=lS,dS=new Set,fS=[];function pS(e){if(e.status!==uS.status||e.verificationCode!==uS.verificationCode){uS=e;for(let e of dS)e()}}function mS(){return uS}function hS(e){return dS.add(e),()=>void dS.delete(e)}function gS(){fS=[...fS,`e2ee_policy_generation_regressed`].slice(-8);for(let e of dS)e()}function _S(){if(fS.length!==0){fS=[];for(let e of dS)e()}}function vS(){pS({status:`negotiating`,verificationCode:null})}function yS(e){pS({status:e===`e2ee`?`web-unsigned`:`legacy`,verificationCode:e===`e2ee`?uS.verificationCode:null})}function bS(e){uS.status!==`unavailable`&&uS.status!==`legacy`&&pS({status:uS.status,verificationCode:e})}function xS(){pS(lS)}var SS=[1];function CS(){let e=globalThis;return e.isSecureContext===!0&&typeof e.crypto?.getRandomValues==`function`}var wS=CS(),TS=null;function ES(){let e=globalThis.window?.location.origin;if(typeof e!=`string`||e.length===0)return null;let t=Ya.getState(),n=t.selectedNode;return t.accountStatus!==`authenticated`||t.account===null||n===null?null:{hubOrigin:e,accountId:t.account.id,nodeId:n.id}}function DS(e){let t=oS(e);return{hubOrigin:e.hubOrigin,selectionClass:aS(e)?`latched`:`legacy-eligible`,legacyPermitted:!0,pairingOnly:!1,localSuitePreference:SS,credentials:{tier:`web`},...t===void 0?{}:{acceptedPolicyGeneration:t},onStatement:t=>{if(t.kind===`invalid`&&t.reason===`policy_generation_regressed`){gS();return}if(!(`statement`in t))return;let n=oS(e);if(n!==void 0&&t.statement.policyGeneration<n)throw gS(),Error(`Web E2EE policy generation regressed.`);iS(e),sS(e,t.statement.policyGeneration)},onWebVerificationCode:bS}}function OS(e){return e.close(Vp()),{intercept:async()=>({kind:`rejected`}),submit:()=>!1,beginClose:async()=>`refused`,dispose:()=>void 0}}function kS(){if(!wS){yS(`legacy`);return}let e=ES();if(e===null)return OS;let t=DS(e);return e=>{let n={};TS=n,vS();let r=th({host:{...e,lockMode:t=>{e.lockMode(t),yS(t)}},attempt:t});return{...r,dispose:e=>{r.dispose(e),TS===n&&(TS=null,xS())}}}}var AS;function jS(){if(AS!==void 0)return AS;let e=Ya.getState().accountStatus===`authenticated`,t=Ya.subscribe(()=>{let t=Ya.getState().accountStatus;if(t===`authenticated`){e=!0;return}!e||t!==`signed-out`&&t!==`session-expired`||(e=!1,cS(),_S(),xS())});return AS=()=>{AS=void 0,t()},AS}var MS=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 NS(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 PS(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 FS(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?PS(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 IS(e,t){return e.filter(e=>e.id!==t)}function LS(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 RS(e){return new Set(Object.entries(e).flatMap(([e,t])=>t.length>0?[e]:[]))}var zS=120;function BS(e){let t=e.trimmedPrompt.trim();return t.length>0?t.length>zS?`${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 VS(){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]:IS(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]:LS(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 HS=VS(),US=c(e=>({open:!1,setOpen:t=>e(e=>e.open===t?e:{open:t})}));function WS(){return US(GS)}function GS(e){return e.open}function KS(e){US.getState().setOpen(e)}function qS(e){return`git:${e??``}`}var JS=new Map;function YS(e,t){let n=JS.get(e);return n||(n=new Set,JS.set(e,n)),n.add(t),()=>{let n=JS.get(e);n&&(n.delete(t),n.size===0&&JS.delete(e))}}function XS(e){let t=new Set;for(let n of e){let e=JS.get(n);if(e)for(let n of e)t.add(n)}for(let e of t)e()}var ZS=new Set,QS=Cr(e=>(ZS.add(e),Xn(0).pipe(hr,Zr(`git-mutation-running:${e}`))));function $S(e){return QS(e)}function eC(e){let t=QS(e);z.set(t,z.get(t)+1)}function tC(e){let t=QS(e);z.set(t,Math.max(0,z.get(t)-1))}var nC=15e3,rC=6e4,iC=100,aC=Object.freeze({pages:[],isPending:!1,isFetchingNextPage:!1,error:null}),oC=Object.freeze({...aC,isPending:!0}),sC=Xn(aC).pipe(hr,Zr(`git-branches:null`)),cC=new Set,lC=Cr(e=>(cC.add(e),Xn(oC).pipe(hr,Zr(`git-branches:${e}`)))),uC=()=>void 0,dC=new Map;function fC(e){return`${e.environmentId}\u0000${e.cwd}\u0000${e.query}`}function pC(e){return e.environmentId===null||e.cwd===null?null:fC({environmentId:e.environmentId,cwd:e.cwd,query:e.query})}function mC(e){return e===null?sC:lC(e)}function hC(e,t){z.set(lC(e),t)}async function gC(e,t,n,r){let i=Ag(e);if(!i)throw Error(`Git refs are unavailable.`);return i.vcs.listRefs({cwd:t,...n.length>0?{query:n}:{},cursor:r,limit:iC})}function _C(e){let t=e[e.length-1];return t?t.nextCursor:null}function vC(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 yC(e){let t=++e.fetchToken,n=z.get(lC(e.key));hC(e.key,{pages:n.pages,isPending:n.pages.length===0,isFetchingNextPage:!1,error:null});try{let n=await gC(e.environmentId,e.cwd,e.query,0);if(t!==e.fetchToken)return;e.loadedPageCount=1,e.lastFetchedAt=Date.now(),e.hasLoadedOnce=!0,hC(e.key,{pages:[n],isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(t!==e.fetchToken)return;hC(e.key,{pages:z.get(lC(e.key)).pages,isPending:!1,isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}}function bC(e){return vC(e,()=>yC(e))}async function xC(e){let t=++e.fetchToken,n=Math.max(1,e.loadedPageCount),r=z.get(lC(e.key));hC(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 gC(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,hC(e.key,{pages:r,isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(t!==e.fetchToken)return;hC(e.key,{pages:z.get(lC(e.key)).pages,isPending:!1,isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}}function SC(e){return vC(e,()=>xC(e))}function CC(e){return e.hasLoadedOnce?SC(e):bC(e)}function wC(e){if(e===null)return;let t=dC.get(e);if(!t)return;let n=z.get(lC(e));if(n.isFetchingNextPage||t.inFlightPromise)return;let r=_C(n.pages);if(r===null)return;hC(e,{...n,isFetchingNextPage:!0,error:null});let i=t.fetchToken;vC(t,async()=>{try{let n=await gC(t.environmentId,t.cwd,t.query,r);if(i!==t.fetchToken)return;let a=z.get(lC(e));t.loadedPageCount=a.pages.length+1,t.lastFetchedAt=Date.now(),hC(e,{pages:[...a.pages,n],isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(i!==t.fetchToken)return;hC(e,{...z.get(lC(e)),isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}})}function TC(e){if(e===null)return;let t=dC.get(e);if(!t){jC(e);return}t.poller?.refresh()??CC(t)}function EC(e){Date.now()-e.lastFetchedAt<nC||(e.poller?.refresh()??CC(e))}function DC(e){if(e.environmentId===null||e.cwd===null)return uC;let t=e.environmentId,n=e.cwd,r=fC({environmentId:t,cwd:n,query:e.query}),i=dC.get(r);if(i)return i.subscriberCount+=1,i.hasLoadedOnce&&EC(i),()=>OC(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:uC,focusListener:null,poller:null};if(dC.set(r,a),a.invalidationUnsub=YS(qS(n),()=>{a.poller?.refresh()??CC(a)}),typeof window<`u`){let e=()=>EC(a);a.focusListener=e,window.addEventListener(`focus`,e)}return typeof window<`u`&&typeof document<`u`?a.poller=Di({lifecycle:Ei,run:()=>CC(a),resolveDelayMs:()=>rC,jitterRatio:.05}):bC(a),()=>OC(r)}function OC(e){let t=dC.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,dC.delete(e)))}var kC=new Set,AC=0;async function jC(e){if(kC.has(e)||dC.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);kC.add(e);let o=AC;try{let t=await gC(r,i,a,0);if(o!==AC||dC.has(e))return;hC(e,{pages:[t],isPending:!1,isFetchingNextPage:!1,error:null})}catch{}finally{o===AC&&kC.delete(e)}}function MC(e){let t=pC(e);t!==null&&(z.get(lC(t)).pages.length>0||jC(t))}function NC(e){return e.flatMap(e=>e.refs)}var PC=3e4,FC=Object.freeze({data:null,isPending:!1,isFetching:!1,isError:!1,error:null}),IC=Xn(FC).pipe(hr,Zr(`git-resolve-pr:null`)),LC=new Set,RC=Cr(e=>(LC.add(e),Xn(FC).pipe(hr,Zr(`git-resolve-pr:${e}`)))),zC=new Map;function BC(e){return`${e.environmentId}\u0000${e.cwd}\u0000${e.reference}`}function VC(e){return e.environmentId===null||e.cwd===null||e.reference===null?null:BC({environmentId:e.environmentId,cwd:e.cwd,reference:e.reference})}function HC(e){return e===null?IC:RC(e)}async function UC(e){let t=++e.fetchToken,n=z.get(RC(e.key));z.set(RC(e.key),{data:n.data,isPending:n.data===null,isFetching:!0,isError:!1,error:null});try{let n=Ag(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(RC(e.key),{data:r,isPending:!1,isFetching:!1,isError:!1,error:null})}catch(n){if(t!==e.fetchToken)return;z.set(RC(e.key),{data:null,isPending:!1,isFetching:!1,isError:!0,error:n instanceof Error?n:Error(`Failed to resolve pull request.`)})}}function WC(e){let t=VC(e);if(t===null||e.environmentId===null||e.cwd===null||e.reference===null)return uC;let n=e.environmentId,r=e.cwd,i=e.reference,a=zC.get(t);if(a)return a.subscriberCount+=1,Date.now()-a.lastFetchedAt>=PC&&UC(a),()=>GC(t);let o={key:t,environmentId:n,cwd:r,reference:i,subscriberCount:1,lastFetchedAt:0,fetchToken:0};return zC.set(t,o),UC(o),()=>GC(t)}function GC(e){let t=zC.get(e);t&&(--t.subscriberCount,!(t.subscriberCount>0)&&(t.fetchToken+=1,zC.delete(e)))}function KC(){for(let e of dC.values())e.fetchToken+=1,e.invalidationUnsub(),e.focusListener&&typeof window<`u`&&window.removeEventListener(`focus`,e.focusListener),e.poller?.stop();dC.clear(),AC+=1,kC.clear();for(let e of zC.values())e.fetchToken+=1;zC.clear(),JS.clear();for(let e of cC)z.set(lC(e),oC);for(let e of LC)z.set(RC(e),FC);for(let e of ZS)z.set(QS(e),0)}var qC=Object.freeze({data:void 0,error:null,status:`pending`,fetchStatus:`idle`,dataUpdatedAt:0,errorUpdatedAt:0});function JC(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 YC(e){return JC(e)}function XC(e){return e instanceof Error?e:Error(String(e))}function ZC(e){return e===void 0||e===!0?3:e===!1?0:e}function QC(e){return Math.min(1e3*2**e,3e4)}function $C(e){return new Promise(t=>setTimeout(t,e))}function ew(e,t){if(t.length>e.length)return!1;for(let n=0;n<t.length;n+=1)if(JC(e[n])!==JC(t[n]))return!1;return!0}var tw=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 JC(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=YC(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(YC(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&&!ew(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=ZC(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=XC(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 $C(QC(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 nw(){return tw}function rw(e){return e}function iw(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 aw(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 aw(e,t,n,n.status===`success`?t.select?t.select(n.data):n.data:void 0)}}}function ow(e){let t=nw(),{queryKey:n}=e,r=YC(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 Di({lifecycle:Ei,run:()=>t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:!0}),resolveDelayMs:()=>r,runImmediately:!1,jitterRatio:.05}).stop},[t,r,c,s]),aw(t,e,s,iw(s.status===`success`?s.data:void 0,e.select))}var sw=Object.freeze({status:`idle`,data:void 0,error:null,variables:void 0});function cw(e){let t=(0,V.useRef)(e);t.current=e;let n=(0,V.useRef)(sw),[,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=XC(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(sw)},[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 lw={metaKey:!1,ctrlKey:!1,altKey:!1,shiftKey:!1};function uw(e,t){return e.metaKey===t.metaKey&&e.ctrlKey===t.ctrlKey&&e.altKey===t.altKey&&e.shiftKey===t.shiftKey}var dw=c(e=>({state:lw,setState:t=>e(e=>uw(e.state,t)?e:{state:t}),clear:()=>e(e=>uw(e.state,lw)?e:{state:lw})}));function fw(){return dw(pw)}function pw(e){return e.state}function mw(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 hw(e){let t=mw(e.key);if(t){let n=dw.getState().state;dw.getState().setState({...n,[t]:e.type===`keydown`});return}dw.getState().setState({metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey})}function gw(){dw.getState().clear()}var _w=new Set,vw=c((e,t)=>({selectedThreadKeys:_w,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:_w,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 yw(e){xS(),Br(e),v_(),KC(),G_(),Q.getState().demoteEnvironmentStateToCachedSnapshot(e,Date.now()),mr()}function bw(){for(let e of Object.keys(Q.getState().environmentStateById))Q.getState().removeEnvironmentState(e);vi.setState({draftsByThreadKey:{},draftThreadsByThreadKey:{},logicalProjectDraftThreadKeyByLogicalProjectKey:{},stickyModelSelectionByProvider:{},stickyActiveProvider:null}),Px.setState({terminalStateByThreadKey:{},terminalLaunchContextByThreadKey:{},terminalEventEntriesByKey:{},nextTerminalEventId:1}),HS.setState({queuesByThreadKey:{}}),MS.getState().setOpen(!1),lo.getState().closeSettings(),KS(!1),gw(),vw.getState().clearSelection(),uo.setState({projectExpandedById:{},projectOrder:[],projectFoldersById:{},projectFolderOrder:[],projectTreeOrder:[],pinnedThreadKeys:{},threadLastVisitedAtById:{},threadChangedFilesExpandedById:{},threadWorkEntryExpandedById:{},defaultAdvertisedEndpointKey:null}),tw.clear(),mr()}function xw(){let e=new URL(window.location.origin);return e.protocol=e.protocol===`https:`?`wss:`:`ws:`,e.pathname=`/v1/relay/client`,e.toString()}function Sw(e){return typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer}function Cw(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))}:Sw(e)?{fail:`protocol_invalid`}:{fail:`frame_too_large`}}var ww=new Set([Rp,Ip,Lp,Pp,Fp]);function Tw(e){return!(e instanceof Error)||e instanceof DOMException?e:new DOMException(e.message,ww.has(e.message)?`QuotaExceededError`:`InvalidStateError`)}var Ew=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!==xw()||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=Cw(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 Hp({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||Sw(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 Tw(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)}},Dw=!1;function Ow(e){Dw||(Dw=!0,jS(),ka({endpoint:rr,httpClient:Zn,passkeyCeremony:vh,sessionCredentials:ur,nodeLifecycle:{activate:async()=>void 0,suspend:async()=>void 0,deactivate:async()=>void 0,clearNodeScopedState:yw,writePrimaryEnvironmentDescriptor:Wr,connectPrimaryEnvironment:fE,disconnectPrimaryEnvironment:dE,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:dh,resetRelayAttemptFactory:fh,relayUrl:xw,createRelaySocket:e=>new Ew({...e,e2ee:kS()})},e))}var kw=new class extends ja{constructor(){super({endpoint:rr,httpClient:Zn,passkeyCeremony:vh,sessionCredentials:ur})}},Aw=n({HOSTED_SESSION_SYNC_FAILURE_MESSAGE:()=>HOSTED_SESSION_SYNC_FAILURE_MESSAGE,ensureWebHostedRuntimeConfigured:()=>jw,hostedAccountStore:()=>ba,hostedHubController:()=>Wa,hostedHubStore:()=>Ya,hostedRecoveryCodeDisplayStore:()=>wa,useHostedAccountStore:()=>Nw,useHostedHubStore:()=>Mw,useHostedRecoveryCodeDisplayStore:()=>Pw});Na(()=>Ow(kw));function jw(){Ow(kw)}var Mw=Object.assign(e=>f(Ya,e),Ya),Nw=Object.assign(e=>f(ba,e),ba),Pw=Object.assign(e=>f(wa,e),wa);function Fw(e){return/^[a-zA-Z]:([/\\]|$)/.test(e)}function Iw(e){return e.startsWith(`\\\\`)}function Lw(e){return Iw(e)||Fw(e)}function Rw(e){return e===`.`||e===`..`||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`.\\`)||e.startsWith(`..\\`)}function zw(e){return e===`/`||e===`\\`||/^[a-zA-Z]:[/\\]?$/.test(e)}function Bw(e){return Fw(e)||Iw(e)?`windows`:e.startsWith(`/`)?`unix`:null}function Vw(e){if(e.length===0||zw(e))return e;let t=Bw(e)===`unix`?e.replace(/\/+$/g,``):e.replace(/[\\/]+$/g,``);return t.length===0?e:/^[a-zA-Z]:$/.test(t)?`${t}\\`:t}function Hw(e){let t=Vw(e.trim());return Fw(t)||t.startsWith(`\\\\`)?t.replaceAll(`/`,`\\`).toLowerCase():t}function Uw(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 Ww(e){let t=e.repositoryIdentity?.rootPath?.trim();if(!t)return null;let n=Hw(e.cwd),r=Hw(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 Gw(e,t){return`${e}:${Hw(t)}`}function Kw(e){return Gw(e.environmentId,e.cwd)}function qw(e,t){let n=e.repositoryIdentity?.canonicalKey;if(!n)return null;if(t===`repository`)return n;let r=Ww(e);return r===null||r.length===0?n:`${n}::${r}`}function Jw(e,t){let n=t?.groupingMode??`repository`;return n===`separate`?Kw(e):qw(e,n)??Kw(e)??`${e.environmentId}:${e.id}`}function Yw(e){let t=Uw(e.members.map(e=>e.repositoryIdentity?.displayName));if(t.length===1)return t[0];let n=Uw(e.members.map(e=>e.repositoryIdentity?.name));return n.length===1?n[0]:e.representative.name}function Xw(e,t){return{key:e.physicalKey,label:e.name,repositoryIdentity:e.repositoryIdentity,variants:[e],ambiguous:t}}function Zw(e,t){let n=new Map;for(let r of e){let e=Jw({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=>Xw(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:Yw({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 Qw(e){return Kw(e)}function $w(e){return Kw(e)}function eT(e,t){return t.sidebarProjectGroupingOverrides?.[Qw(e)]??t.sidebarProjectGroupingMode}function tT(e,t){return Jw(e,{groupingMode:eT(e,t)})}function nT(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?xb(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`:rT();return;case`worktree-upserted`:case`worktree-removed`:return;case`thread-upserted`:iT(),!i&&a&&yi(a),i?.archivedAt===null&&n.thread.archivedAt!==null&&a&&Px.getState().removeTerminalState(a),e.supervisor?.().reconcileThreadDetailSubscriptionEvictionForThread(t,n.thread.id),e.supervisor?.().evictIdleThreadDetailSubscriptionsToCapacity();return;case`thread-removed`:a&&(e.supervisor?.().disposeThreadDetailSubscription(t,n.threadId),vi.getState().clearDraftThread(a),uo.getState().clearThreadUi(p(a)),Px.getState().removeTerminalState(a)),iT()}},applyOrchestrationEvents:(e,t)=>Q.getState().applyOrchestrationEvents(t,e),syncServerShellSnapshot:(e,t)=>Q.getState().syncServerShellSnapshot(t,e),reconcileSnapshotDerivedState:()=>{rT(),iT();let e=qb({snapshotThreads:fb(Q.getState()).map(e=>({key:p(a(e.environmentId,e.id)),deletedAt:null,archivedAt:e.archivedAt})),draftThreadKeys:vi.getState().listDraftThreadKeys()});Px.getState().removeOrphanedTerminalStates(e)},syncProjects:()=>{let e=Kl();uo.getState().syncProjects(db(Q.getState()).map(t=>({key:Kw(t),logicalKey:tT(t,e),cwd:t.cwd})))},syncThreads:()=>{let e=fb(Q.getState());uo.getState().syncThreads(e.map(e=>({key:p(a(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt})))},clearThreadDraft:e=>{vi.getState().clearDraftThread(e),uo.getState().clearThreadUi(p(e))},clearProjectDraftThread:e=>vi.getState().clearProjectDraftThreadId(e),clearTerminalState:e=>Px.getState().removeTerminalState(e),markProviderInvalidationNeeded:e.markProviderInvalidationNeeded,flushProviderInvalidation:e.flushProviderInvalidation}}function rT(){let e=db(Q.getState()),t=Kl();uo.getState().syncProjects(e.map(e=>({key:Kw(e),logicalKey:tT(e,t),cwd:e.cwd})))}function iT(){let e=fb(Q.getState());uo.getState().syncThreads(e.map(e=>({key:p(a(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt}))),xi(e.map(e=>a(e.environmentId,e.id)))}var aT=0,oT=1,sT=2,cT=3,lT=class{url;protocol=``;extensions=``;binaryType=`arraybuffer`;CONNECTING=aT;OPEN=oT;CLOSING=sT;CLOSED=cT;onopen=null;onmessage=null;onerror=null;onclose=null;#e;#t;#n=new Map;#r;#i=aT;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!==oT)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!==sT&&this.#i!==cT&&(this.#i=sT,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!==cT)switch(e.type){case`open`:if(this.#i!==aT)return;this.#i=oT,this.#s({type:`open`});return;case`message`:if(this.#i!==oT)return;this.#s({type:`message`,data:Uint8Array.from(e.data)});return;case`error`:this.#s({type:`error`});return;case`close`:this.#i=cT,this.#s({type:`close`,code:e.code,reason:e.reason,wasClean:e.code===1e3}),this.#r?.()}}#o(){this.#i!==cT&&(this.#s({type:`error`}),this.#i=cT,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)}},uT=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 lT({url:e,transportId:t,bridge:this.#t})}};function dT(e){return e instanceof ol}var fT=!1,pT=nT({markProviderInvalidationNeeded:()=>{fT=!0,$().requestProviderInvalidation()},flushProviderInvalidation:()=>{fT=!1,W_(),$g()},supervisor:$}),mT=150,hT=()=>void 0,gT=/^\[ssh_http:(\d+)\]\s/u,_T=null,vT=!1,yT=null,bT=new Promise(e=>{yT=e}),xT=null;function $(){return xT||(xT=sl({isHostedMode:l,now:Date.now,setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e),createInvalidationThrottle:()=>new es(()=>{fT&&pT.flushProviderInvalidation()},{wait:100,leading:!1,trailing:!0}),resetProviderInvalidation:()=>{fT=!1},createPrimaryConnection:()=>Vr()?.environmentId?lE():null,listSavedEnvironmentRecords:yg,hasSavedEnvironmentRegistryHydrated:_g,waitForSavedEnvironmentRegistryHydration:vg,subscribeSavedEnvironmentRegistry:gg.subscribe,connectSavedEnvironment:(e,t)=>hE(e,void 0,t),disconnectSavedEnvironment:CE,waitForPrimaryShellSnapshotApplied:wT,subscribeBrowserResume:gE,isThreadDetailSubscriptionNonIdle:(e,t)=>ET({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)=>tE(t,e),stateSink:pT,onShellSnapshotReceived:e=>{e===Vr()?.environmentId&&Qx(`primary-shell-snapshot-received`)},onShellSnapshotCurrent:()=>void 0,onShellSnapshotApplied:e=>{e===Vr()?.environmentId&&(Qx(`primary-shell-snapshot-applied`),$x(`primary-shell-snapshot`,`primary-shell-snapshot-received`,`primary-shell-snapshot-applied`),Qx(`primary-shell-usable`),$x(`primary-shell-ready`,`root-before-load-ready`,`primary-shell-usable`),CT())},onShellSnapshotReady:()=>void 0}),xT)}function ST(){let e=null;return{promise:new Promise(t=>{e=t}),resolve:t=>{e?.(t),e=null}}}function CT(){vT||(vT=!0,yT?.(),yT=null)}async function wT(e){vT||!Vr()?.environmentId||await Promise.race([bT,new Promise(t=>{globalThis.setTimeout(t,e)})])}async function TT(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 ET(e){let t=a(e.environmentId,e.threadId),n=Q.getState(),r=Cb(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=xb(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 DT(e){$().disposeThreadDetailSubscriptionsForEnvironment(e)}function OT(e,t){return $().retainThreadDetailSubscription(e,t)}function kT(e){return $().loadOlderThreadHistory(e)}function AT(e){return $().loadThreadHistoryAroundMessage(e)}function jT(e){return{lastError:e instanceof Error?e.message:String(e),lastErrorAt:new Date().toISOString()}}function MT(){return new Date().toISOString()}function NT(e){if(!(e instanceof Error))return null;let t=gT.exec(e.message);if(!t)return null;let n=Number.parseInt(t[1]??``,10);return Number.isInteger(n)?n:null}function PT(e,t){return NT(e)===t}function FT(e,t){return!e||!t?!1:e.alias===t.alias&&e.hostname===t.hostname&&e.username===t.username&&e.port===t.port}function IT(e){return e?yg().find(t=>FT(t.desktopSsh,e))??null:null}function LT(e){return Object.fromEntries(e.map(e=>[e.environmentId,e]))}function RT(e){return new Map(e.map(e=>[e,bg(e)??null]))}async function zT(e){let t=LT(yg());for(let[n,r]of e){if(r){t[n]=r;continue}delete t[n]}let n=Object.values(t);await pg().persistence.setSavedEnvironmentRegistry(n.map(e=>_r(e))),gg.setState({byId:t})}async function BT(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 VT(){let e=window.desktopBridge;if(!e)throw Error(`SSH launch is only available in the desktop app.`);return e}async function HT(e){return await VT().fetchSshEnvironmentDescriptor(e)}async function UT(e,t){return await VT().bootstrapSshBearerSession(e,t)}async function WT(e,t){return await VT().fetchSshSessionState(e,t)}async function GT(e,t,n){let r=await VT().issueSshWebSocketToken(t,n),i=new URL(e,window.location.origin);return i.searchParams.set(`wsToken`,r.token),i.toString()}async function KT(e,t){if(!e.desktopSsh)return{record:e,pairingToken:null,remotePort:null,remoteServerKind:null};let n=await BT(e.desktopSsh,t),r={...e,httpBaseUrl:n.httpBaseUrl,wsBaseUrl:n.wsBaseUrl,desktopSsh:n.target};return(r.httpBaseUrl!==e.httpBaseUrl||r.wsBaseUrl!==e.wsBaseUrl||!FT(r.desktopSsh,e.desktopSsh))&&(await xg(r),gg.getState().upsert(r)),{record:r,pairingToken:n.pairingToken,remotePort:n.remotePort??null,remoteServerKind:n.remoteServerKind??null}}async function qT(e){let t=RT([e.environmentId]),n=await KT(e,{issuePairingToken:!0});if(!n.pairingToken)throw await zT(t),Error(`Desktop SSH launch did not return a pairing token.`);let r=await UT(n.record.httpBaseUrl,n.pairingToken).catch(async e=>{await zT(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 Cg(n.record.environmentId,r.sessionToken))throw await zT(t),Error(`Unable to persist saved environment credentials.`);return{record:n.record,bearerToken:r.sessionToken,role:r.role??null}}function JT(e){X.getState().patch(e,{connectionState:`connecting`,lastError:null,lastErrorAt:null})}function YT(e){let t=MT();X.getState().patch(e,{connectionState:`connected`,authState:`authenticated`,connectedAt:t,disconnectedAt:null,lastError:null,lastErrorAt:null}),gg.getState().markConnected(e,t)}function XT(e,t){X.getState().patch(e,{connectionState:`disconnected`,disconnectedAt:MT(),...t&&t.trim().length>0?{lastError:t,lastErrorAt:MT()}:{}})}function ZT(e,t){X.getState().patch(e,{connectionState:`error`,...jT(t)})}function QT(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 $T(e){return e.serverThreadArchivedAt===void 0?e.hasDraftThread:e.serverThreadArchivedAt===null}function eE(e,t){if(e.length===0)return;let n=Dg(e),r=QT(e),i=e.some(e=>e.type===`project.created`||e.type===`project.meta-updated`||e.type===`project.deleted`);n.needsProviderInvalidation&&pT.markProviderInvalidationNeeded(),pT.applyOrchestrationEvents(t,r),i&&pT.syncProjects(t),e.some(e=>e.type===`thread.created`||e.type===`thread.deleted`)&&pT.syncThreads(t);for(let e of n.promoteDraftThreadIds)yi(a(t,e));for(let e of n.clearDeletedThreadIds)pT.clearThreadDraft(a(t,e));for(let n of e)n.type===`project.deleted`&&pT.clearProjectDraftThread(o(t,n.payload.projectId));for(let e of n.removeTerminalStateThreadIds)pT.clearTerminalState(a(t,e));$().reconcileThreadDetailSubscriptionEvictionForEnvironment(t)}function tE(e,t){eE([e],t)}function nE(e=null){let t=()=>e===null||Mw.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&&za(r,e)},onReady:()=>{e!==null&&za(r,e)}})},applyTerminalEvent:(e,n)=>{if(!t())return;let r=a(n,ce.make(e.threadId)),i=xb(Q.getState(),r),o=vi.getState().getDraftThreadByRef(r)!==null;$T({serverThreadArchivedAt:i?.archivedAt,hasDraftThread:o})&&Px.getState().applyTerminalEvent(r,e)}}}function rE(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=uh(),r=t.lifecycleHandlers(),i=new Lx(()=>t.nextUrl(),{...r,getConnectionLabel:()=>n,getEnvironmentId:()=>e?.environmentId??null,onOpen:()=>{r.onOpen?.(),Qx(`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 Fx(()=>r(`/ws`),{getConnectionLabel:()=>n,getEnvironmentId:()=>e?.environmentId??null,getVersionMismatchHint:()=>Hx(Yn())?.hint??null,onOpen:()=>{Qx(`primary-ws-open`)}}),Pr(new Ix(()=>r(`/ws/device`),{getConnectionLabel:()=>n}),{openFrameSource:(e,t)=>$n({udid:e,handlers:t,socket:xh,resolveUrl:()=>r(`/ws/device-frames`)})}))}async function iE(e,t,n){let r=bg(e);if(!r)throw Error(`Saved environment ${e} not found.`);let i=r.desktopSsh?await GT(r.wsBaseUrl,r.httpBaseUrl,t):await X_({wsBaseUrl:r.wsBaseUrl,httpBaseUrl:r.httpBaseUrl,bearerToken:t}),a=new URL(i,window.location.origin);return a.pathname=n,a.toString()}function aE(e,t){return X.getState().ensure(e),tr(new Fx(()=>iE(e,t,`/ws`),{getConnectionLabel:()=>bg(e)?.label??null,getEnvironmentId:()=>e,getVersionMismatchHint:()=>Hx(X.getState().byId[e]?.serverConfig)?.hint??null,onAttempt:()=>{JT(e)},onOpen:()=>{YT(e)},onError:t=>{let n=Hx(X.getState().byId[e]?.serverConfig);X.getState().patch(e,{connectionState:`error`,lastError:Jx(t,n),lastErrorAt:MT()})},onClose:(t,n)=>{n.intentional||XT(e,Jx(t.reason,Hx(X.getState().byId[e]?.serverConfig)))}}),Pr(new Ix(()=>iE(e,t,`/ws/device`),{getConnectionLabel:()=>bg(e)?.label??null}),{openFrameSource:(n,r)=>$n({udid:n,handlers:r,socket:xh,resolveUrl:()=>iE(e,t,`/ws/device-frames`)})}))}async function oE(e,t,n,r,i){let a=bg(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?WT(a.httpBaseUrl,t):J_({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}),gg.getState().rename(a.environmentId,o.environment.label)}function sE(e){return $().register(e)}async function cE(e){return await $().remove(e)}function lE(){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()?Mw.getState().generation:null;return sE(ov({kind:`primary`,knownEnvironment:e,client:rE(e),...n===null?{}:{onResubscribe:e=>Qa(e,n),onShellError:e=>Ea(e,n)},...nE(n)}))}function uE(){return Vr()?.environmentId?$().connectPrimary():null}async function dE(){await $().disconnectPrimary()}function fE(){return uE()}async function pE(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 uT(e.environmentId,t),i=new Lx(()=>r.nextUrl(),{preserveSocketPath:!0,webSocketConstructor:e=>r.createSocket(e),retryTransientErrors:!1,reconnectMaxRetries:1e6,getConnectionLabel:()=>e.label,getEnvironmentId:()=>e.environmentId}),a=sE(ov({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})},...nE()}));try{return await a.ensureBootstrapped(),a}catch(t){throw await cE(e.environmentId).catch(()=>void 0),t}}async function mE(e,t){return await $().ensureSavedEnvironmentConnection(e,n=>hE(e,t,n))}async function hE(e,t,n=()=>!1){let r=e,i=t?.role??null,a=t?.bearerToken??await Sg(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 wg(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:MT()}),Error(`Saved environment is missing its saved credential.`)}r=(await KT(r)).record;let s=a,c=o??aE(r.environmentId,s),l=ST(),u=ov({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 oE(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})},...nE()});try{try{let e=t?.serverConfig??await TT(l.promise,mT);await oE(r.environmentId,s,c,i,e)}catch(e){if(!(r.desktopSsh?PT(e,401):Vc(e)&&e.status===401))throw e;if(!r.desktopSsh)throw await wg(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 ol(r.environmentId);return sE(u),u}catch(e){throw e instanceof ol?e:(ZT(r.environmentId,e),await cE(r.environmentId).catch(()=>!1)||await u.dispose().catch(()=>void 0),e)}}}function gE(e){if(typeof document>`u`||typeof window>`u`)return hT;let t=()=>{if(document.visibilityState===`hidden`){_T=Date.now();return}document.visibilityState===`visible`&&_T!==null&&(_T=null,e(`visibilitychange`))},n=t=>{(t.persisted||_T!==null)&&(_T=null,e(`pageshow`))};return document.addEventListener(`visibilitychange`,t),window.addEventListener(`pageshow`,n),()=>{document.removeEventListener(`visibilitychange`,t),window.removeEventListener(`pageshow`,n)}}function _E(e){return $().subscribe(e)}function vE(){return $().list()}function yE(e){return $().read(e)}function bE(e){let t=yE(e);if(!t)throw Error(`No websocket client registered for environment ${e}.`);return t}async function xE(e,t){let n=await bE(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 SE(){return lE()}async function CE(e){let t=bg(e);$().cancelPendingSavedEnvironmentConnection(e),$().read(e)?.kind===`saved`&&await cE(e).catch(()=>!1),XT(e),t?.desktopSsh&&typeof window<`u`&&(await window.desktopBridge?.disconnectSshEnvironment(t.desktopSsh),await wg(e))}async function wE(e){let t=bg(e);if(!t)throw Error(`Saved environment not found.`);let n=$().read(e);if(!n){JT(e);try{await mE(t);return}catch(t){if(dT(t))return;throw ZT(e,t),t}}JT(e);try{t.desktopSsh&&await KT(t),await n.reconnect()}catch(n){if(t.desktopSsh)try{let n=await qT(bg(e)??t);await cE(e).catch(()=>!1),await mE(n.record,{bearerToken:n.bearerToken,role:n.role});return}catch(t){if(dT(t))return;throw ZT(e,t),t}throw ZT(e,n),n}}async function TE(e){await CE(e),DT(e),gg.getState().remove(e),X.getState().clear(e),Q.getState().removeEnvironmentState(e),await wg(e)}async function EE(e){let t=Z_({...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 HT(t.httpBaseUrl):await Y_({httpBaseUrl:t.httpBaseUrl}),r=n.environmentId,i=RT([r]),a=bg(r)??IT(e.desktopSsh),o=a&&a.environmentId!==r?a:null,s=e.desktopSsh?await UT(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??MT(),lastConnectedAt:MT(),...e.desktopSsh??a?.desktopSsh?{desktopSsh:e.desktopSsh??a?.desktopSsh}:{}};if(await xg(c),!await Cg(r,s.sessionToken))throw await zT(i),Error(`Unable to persist saved environment credentials.`);return gg.getState().upsert(c),o&&await TE(o.environmentId),await cE(r).catch(()=>!1),await mE(c,{bearerToken:s.sessionToken,role:s.role}),c}async function DE(e,t){let n=await BT(e,{issuePairingToken:!0});if(!n.pairingToken)throw Error(`Desktop SSH launch did not return a pairing token.`);return await EE({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 OE(e){await $().read(e)?.ensureBootstrapped()}function kE(){return $().start()}var AE=n({waitForSavedEnvironmentRegistryHydration:()=>vg});export{VC as $,y_ as $t,Fw as A,bd as An,Lb as At,fw as B,yl as Bn,hb as Bt,Kw as C,Fh as Cn,jx as Ct,Rw as D,Sh as Dn,Ub as Dt,Zw as E,Ph as En,Bb as Et,kw as F,fu as Fn,db as Ft,eC as G,xl as Gn,pb as Gt,cw as H,Cl as Hn,_b as Ht,bw as I,hu as In,Cb as It,NC as J,ls as Jn,Q as Jt,tC as K,_l as Kn,fb as Kt,vw as L,Kl as Ln,mb as Lt,Nw as M,Pu as Mn,Fb as Mt,Mw as N,Nu as Nn,lb as Nt,Iw as O,wh as On,Hb as Ot,Pw as P,Fu as Pn,bb as Pt,HC as Q,A_ as Qt,gw as R,ql as Rn,vb as Rt,$w as S,fg as Sn,Px as St,Yw as T,Lh as Tn,Gb as Tt,ow as U,vl as Un,xb as Ut,rw as V,hl as Vn,gb as Vt,nw as W,bl as Wn,Sb as Wt,pC as X,ns as Xn,nv as Xt,mC as Y,as as Yn,gv as Yt,$S as Z,j_ as Zt,kE as _,yg as _n,$x as _t,dE as a,l_ as an,WC as at,tT as b,X as bn,Kx as bt,SE as c,Qg as cn,HS as ct,AT as d,Bg as dn,FS as dt,N_ as en,qS as et,yE as f,Zg as fn,BS as ft,OT as g,jg as gn,Qx as gt,bE as h,Ag as hn,mS as ht,pE as i,Pg as in,DC as it,Aw as j,Iu as jn,Rb as jt,Lw as k,Ch as kn,zb as kt,vE as l,Xg as ln,NS as lt,TE as m,Mg as mn,hS as mt,EE as n,H_ as nn,MC as nt,CE as o,Vg as on,KS as ot,wE as p,g_ as pn,MS as pt,wC as q,Sl as qn,ub as qt,DE as r,t_ as rn,TC as rt,OE as s,__ as sn,WS as st,AE as t,x_ as tn,XS as tt,kT as u,c_ as un,RS as ut,_E as v,Eg as vn,Ux as vt,Gw as w,Nh as wn,kx as wt,Qw as x,pg as xn,Hx as xt,xE as y,gg as yn,qx as yt,hw as z,Yl as zn,yb as zt};
|