ryco-cli 0.1.17 → 0.1.18
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-OhEq3XNp.cjs → AcpNativeLogging-CUpW8y6E.cjs} +1 -1
- package/dist/{AcpNativeLogging-qZgtIa5K.mjs → AcpNativeLogging-hu4rXzHU.mjs} +1 -1
- package/dist/{AzureDevOpsSourceControlProvider-B0YsaJyI.mjs → AzureDevOpsSourceControlProvider-C7Ff-COJ.mjs} +2 -2
- package/dist/{AzureDevOpsSourceControlProvider-Dyu8KQ_S.cjs → AzureDevOpsSourceControlProvider-DAdboLpu.cjs} +2 -2
- package/dist/{BitbucketSourceControlProvider-3VHGKSl1.cjs → BitbucketSourceControlProvider-Bg6lSYm8.cjs} +2 -2
- package/dist/{BitbucketSourceControlProvider-B8IPx2Ad.mjs → BitbucketSourceControlProvider-CMPQXie7.mjs} +2 -2
- package/dist/{ClaudeDriver-CBCy0_WX.cjs → ClaudeDriver-CILJj4bi.cjs} +2 -2
- package/dist/{ClaudeDriver-DsW8yDj9.mjs → ClaudeDriver-Nc7gDoUZ.mjs} +2 -2
- package/dist/{CodexDriver-3TZPgrGk.cjs → CodexDriver-CdE1fyKF.cjs} +3 -3
- package/dist/{CodexDriver-DLwPz5sk.mjs → CodexDriver-OeWoP24r.mjs} +3 -3
- package/dist/{CodexTextGeneration-DLHSW4Mz.cjs → CodexTextGeneration-BJvCqVzm.cjs} +1 -1
- package/dist/{CodexTextGeneration-D1vV8grr.mjs → CodexTextGeneration-CKacDpkR.mjs} +1 -1
- package/dist/{CopilotDriver-C7a8IhyK.cjs → CopilotDriver-5toln6vu.cjs} +3 -3
- package/dist/{CopilotDriver-DXvGBv-s.mjs → CopilotDriver-C6IkwOg5.mjs} +3 -3
- package/dist/{CursorDriver-CeB_vMKJ.mjs → CursorDriver-BPyhSbOl.mjs} +3 -3
- package/dist/{CursorDriver-uNsDetA3.cjs → CursorDriver-otlL4axb.cjs} +3 -3
- package/dist/{ForgejoSourceControlProvider-Ds0rU_PN.mjs → ForgejoSourceControlProvider-Df0EwCPV.mjs} +2 -2
- package/dist/{ForgejoSourceControlProvider-CJLksvL_.cjs → ForgejoSourceControlProvider-SZj0DxRM.cjs} +2 -2
- package/dist/{GitHubSourceControlProvider-CrYNFu8S.cjs → GitHubSourceControlProvider-D9v0HrDd.cjs} +2 -2
- package/dist/{GitHubSourceControlProvider-C7CJAslU.mjs → GitHubSourceControlProvider-G07yjZJS.mjs} +2 -2
- package/dist/{GitLabSourceControlProvider-jbX5M34A.cjs → GitLabSourceControlProvider-BTXml3Wh.cjs} +2 -2
- package/dist/{GitLabSourceControlProvider-u-Y-e8PV.mjs → GitLabSourceControlProvider-D7NhCVP9.mjs} +2 -2
- package/dist/{GrokDriver-BJ00ZiYg.cjs → GrokDriver-BkU6D5ZE.cjs} +3 -3
- package/dist/{GrokDriver-CFgjwnvE.mjs → GrokDriver-VxcAlypB.mjs} +3 -3
- package/dist/{OpenCodeDriver-BTxd2Q3Q.cjs → OpenCodeDriver-CXvTVYvY.cjs} +2 -2
- package/dist/{OpenCodeDriver-DNApoGdu.mjs → OpenCodeDriver-fQlgTeuI.mjs} +2 -2
- package/dist/{SourceControlProviderDiscoveryCatalog-CPO3a9_U.cjs → SourceControlProviderDiscoveryCatalog-CR-cmnC-.cjs} +1 -1
- package/dist/{SourceControlProviderDiscoveryCatalog-hXWNwRMn.mjs → SourceControlProviderDiscoveryCatalog-dqetZQiC.mjs} +1 -1
- package/dist/bin.cjs +16 -14
- package/dist/bin.mjs +16 -14
- package/dist/client/assets/{AccountSettings-F4ZOTHid.js → AccountSettings-C3YGn5s7.js} +1 -1
- package/dist/client/assets/AiFocusSettings-CNucfJ5Y.js +1 -0
- package/dist/client/assets/{AnimatedHeight-BC-qaTJY.js → AnimatedHeight-B8ZeY3LL.js} +1 -1
- package/dist/client/assets/{AppearanceSettings-B6UaU-_a.js → AppearanceSettings-D1MyfaES.js} +1 -1
- package/dist/client/assets/{BranchToolbar.logic-B2jdtYEs.js → BranchToolbar.logic-CN2-yLTE.js} +1 -1
- package/dist/client/assets/{ChatRightPanel-CxA4EQ1O.js → ChatRightPanel-DhZiZCcx.js} +6 -6
- package/dist/client/assets/{ChatThreadRouteView-BJ6OSbWZ.js → ChatThreadRouteView-CR8HQgm3.js} +1 -1
- package/dist/client/assets/CommandPaletteDialog-ChB99Jee.js +1 -0
- package/dist/client/assets/{CompositeItem-97y1QiiT.js → CompositeItem-CxRCTsWt.js} +1 -1
- package/dist/client/assets/{CompositeRoot-C7Mz4Y_2.js → CompositeRoot-CDscEk_b.js} +1 -1
- package/dist/client/assets/{ConnectionsSettings-B8t9Z17K.js → ConnectionsSettings-Dsewo1mI.js} +2 -2
- package/dist/client/assets/{DiagnosticsSettings-Bt7j-SXg.js → DiagnosticsSettings-ClUk2Ycp.js} +1 -1
- package/dist/client/assets/{DialogHandle-Cl9dQBJp.js → DialogHandle-BGW2rJq8.js} +1 -1
- package/dist/client/assets/{DialogPopup-a1M74u16.js → DialogPopup-9zEMlOyz.js} +1 -1
- package/dist/client/assets/DialogRoot-Z8JWsDCS.js +1 -0
- package/dist/client/assets/{DialogTitle-Bk-w3xLJ.js → DialogTitle-7dK2BQ85.js} +1 -1
- package/dist/client/assets/{DialogTrigger-D9nkMFu2.js → DialogTrigger-B7jdDPNa.js} +1 -1
- package/dist/client/assets/{DialogViewport-tgJz2Lwn.js → DialogViewport-BrRcGV_l.js} +1 -1
- package/dist/client/assets/{DraftChatThreadRouteView-BzcBT-YW.js → DraftChatThreadRouteView-C7HNQzJO.js} +1 -1
- package/dist/client/assets/{ExternalIdentityWeb.logic-Bn1HigS9.js → ExternalIdentityWeb.logic-DS77EplU.js} +1 -1
- package/dist/client/assets/{GlassSurface-CDok2tTN.js → GlassSurface--5lIEJCy.js} +1 -1
- package/dist/client/assets/{HostedConnectionControls-DLrwfgKF.js → HostedConnectionControls-5f2EOB5t.js} +1 -1
- package/dist/client/assets/{HostedHubRoot-eqwMpBq5.js → HostedHubRoot-tRaAruhb.js} +1 -1
- package/dist/client/assets/{HostedNativeAuthorizationRoute-C11yMgF7.js → HostedNativeAuthorizationRoute-B4SBCUZq.js} +1 -1
- package/dist/client/assets/{HostedRelayTrustNotice-CMrrvMuJ.js → HostedRelayTrustNotice-D7TIN2KZ.js} +1 -1
- package/dist/client/assets/{Icons-BEtED8P8.js → Icons-CqMTQkuR.js} +1 -1
- package/dist/client/assets/{IntegrationsSettingsPanel-rkW9RyYH.js → IntegrationsSettingsPanel-Be0RMI3X.js} +1 -1
- package/dist/client/assets/{KeybindingsSettings-CjU5J7hU.js → KeybindingsSettings-BxoOXbJf.js} +1 -1
- package/dist/client/assets/{McpServersSettings-D-Gq3vgy.js → McpServersSettings-D6wFULhe.js} +1 -1
- package/dist/client/assets/{MobileSheet-BDvnUC5W.js → MobileSheet-fqwVmSQY.js} +1 -1
- package/dist/client/assets/{NewWorktreeDialog-C4D-dD0C.js → NewWorktreeDialog-DljDMikm.js} +1 -1
- package/dist/client/assets/{NoActiveThreadState-z_FeP4Al.js → NoActiveThreadState-DvLgUR0A.js} +1 -1
- package/dist/client/assets/{NodeSecuritySettings-CMjnKY0w.js → NodeSecuritySettings-BYX0uV1b.js} +1 -1
- package/dist/client/assets/{OpinionatedPluginsSettings-D9INVQf7.js → OpinionatedPluginsSettings-ZOQ0n5GP.js} +1 -1
- package/dist/client/assets/{PhoneGetAppInterstitial-B8iVzT22.js → PhoneGetAppInterstitial-DzlPIIW0.js} +1 -1
- package/dist/client/assets/{PhoneGetAppInterstitialBackdrop-BA4R225F.js → PhoneGetAppInterstitialBackdrop-C_j-OVwR.js} +1 -1
- package/dist/client/assets/{PhoneHome-BonZTgK7.js → PhoneHome-BIYOn5P7.js} +1 -1
- package/dist/client/assets/PhoneSettingsSurface-CL26SDJP.js +1 -0
- package/dist/client/assets/{ProjectFavicon-CxXx07Sa.js → ProjectFavicon-BLFEmLYd.js} +1 -1
- package/dist/client/assets/{ProviderModelPicker-M_Ezjlmq.js → ProviderModelPicker-CWALhPw5.js} +1 -1
- package/dist/client/assets/{ProviderUpdateLaunchNotification.logic-CywRitn3.js → ProviderUpdateLaunchNotification.logic-DcLWligu.js} +1 -1
- package/dist/client/assets/{ProvidersSettingsPanel-CtTyCMP0.js → ProvidersSettingsPanel-tIQSB1Ni.js} +1 -1
- package/dist/client/assets/{RedactedSensitiveText-BuWSWty8.js → RedactedSensitiveText-DnYWrxD2.js} +1 -1
- package/dist/client/assets/RootAppShell-BVqIVDWT.js +6 -0
- package/dist/client/assets/{RycoLetterMark-CZYntY8t.js → RycoLetterMark-C1QHVbKN.js} +1 -1
- package/dist/client/assets/SettingsDialog-TY6l7DuD.js +1 -0
- package/dist/client/assets/SettingsPanels-_-BazuGl.js +3 -0
- package/dist/client/assets/{SettingsPanels.editor-lbLEbllb.js → SettingsPanels.editor-Bl_mOgB-.js} +1 -1
- package/dist/client/assets/{SourceControlSettings-C_GMp7qk.js → SourceControlSettings-CwRuv7T6.js} +1 -1
- package/dist/client/assets/{StatisticsPage-CDukahZF.js → StatisticsPage-DAvOIX_d.js} +1 -1
- package/dist/client/assets/{StatisticsPanel-BTdaxoVf.js → StatisticsPanel-BfmqkZgK.js} +1 -1
- package/dist/client/assets/{StatisticsSettingsLink-B7SZerf3.js → StatisticsSettingsLink-J-iBGP5I.js} +1 -1
- package/dist/client/assets/{ThreadStatusIndicators-D_6jI6us.js → ThreadStatusIndicators-BzpZG_IZ.js} +0 -0
- package/dist/client/assets/{ThreadTerminalDrawer-C2B3Ry66.js → ThreadTerminalDrawer-DZy0S10m.js} +1 -1
- package/dist/client/assets/{ThreadWorkspacePanel-D8gR7mQC.js → ThreadWorkspacePanel-PRfBFuHE.js} +1 -1
- package/dist/client/assets/{ToolbarRootContext-B1g8IP6k.js → ToolbarRootContext-C48gkU4j.js} +1 -1
- package/dist/client/assets/{WorkItemsTab-QQXGM1BH.js → WorkItemsTab-EO7aDVI8.js} +4 -4
- package/dist/client/assets/{alert-DomE7dAt.js → alert-C24pxxYz.js} +1 -1
- package/dist/client/assets/{alert-dialog-9Jyh0e8u.js → alert-dialog-iYnjheVe.js} +1 -1
- package/dist/client/assets/archive-BL1hojl3.js +1 -0
- package/dist/client/assets/authorization-BNZY2k8w.js +1 -0
- package/dist/client/assets/{badge-w43sx8eF.js → badge-tHmsB3yQ.js} +1 -1
- package/dist/client/assets/{branding-BS9Iv2ln.js → branding-hWmEaQ8d.js} +1 -1
- package/dist/client/assets/{button-DG8WqjNn.js → button-WR80VgkK.js} +1 -1
- package/dist/client/assets/{capabilities-tpmeGBtr.js → capabilities-CXhsftU9.js} +1 -1
- package/dist/client/assets/{chatThreadActions-BZvyhfKr.js → chatThreadActions-C6tNI5Qi.js} +1 -1
- package/dist/client/assets/{collapsible-EhAEe5S9.js → collapsible-BUn1kona.js} +1 -1
- package/dist/client/assets/{command-Cyn6yIEa.js → command-CfaBUmS3.js} +1 -1
- package/dist/client/assets/composerDraftStore-DXTD6mKH.js +11 -0
- package/dist/client/assets/{data-list-DTdqWMGN.js → data-list-jNXWZwx3.js} +1 -1
- package/dist/client/assets/desktopUpdateAtoms-C6z0AhGE.js +1 -0
- package/dist/client/assets/{desktopWorkspace-CIvAIvMt.js → desktopWorkspace-BFTBEpzF.js} +1 -1
- package/dist/client/assets/{device-B3lHunk1.js → device-DB8v-PV8.js} +1 -1
- package/dist/client/assets/{dialog-BNmFD6Nh.js → dialog-CwRtKu2U.js} +1 -1
- package/dist/client/assets/{draft-input-dP7F8odz.js → draft-input-BHjWDHqU.js} +1 -1
- package/dist/client/assets/editorPreferences-BqfWlBPx.js +1 -0
- package/dist/client/assets/{empty-Ccxhyvdf.js → empty-CITbdlFs.js} +1 -1
- package/dist/client/assets/{env-Bcq9YR3B.js → env-Bcy-9P3V.js} +1 -1
- package/dist/client/assets/{getPseudoElementBounds-CO5HJT7x.js → getPseudoElementBounds-BPmVta2g.js} +1 -1
- package/dist/client/assets/{group-CzdKmc45.js → group-BpXcg5Ba.js} +1 -1
- package/dist/client/assets/{index-C536LXZ6.js → index-CnRziuz2.js} +2 -2
- package/dist/client/assets/{input-BZz4eLRl.js → input-Ba4jS4Ks.js} +1 -1
- package/dist/client/assets/{kbd-DbvN3zTb.js → kbd-BvgpGZEI.js} +1 -1
- package/dist/client/assets/{keybindings-BPE3eEAM.js → keybindings-QVMzXI5S.js} +1 -1
- package/dist/client/assets/{label-DZf4lbNF.js → label-2jpS7gCY.js} +1 -1
- package/dist/client/assets/{lib-DgOYoged.js → lib-CuR3OHWo.js} +1 -1
- package/dist/client/assets/{logging-81iP6Hps.js → logging-CTOc5ONT.js} +1 -1
- package/dist/client/assets/{main-BjfqengQ.js → main-C5za36qj.js} +2 -2
- package/dist/client/assets/main-CgLLEwXi.css +2 -0
- package/dist/client/assets/{menu-B6UEFcn0.js → menu-CsEBcjDz.js} +1 -1
- package/dist/client/assets/{popover-BuYzXGwl.js → popover-BpnQc7ji.js} +1 -1
- package/dist/client/assets/primary-DiL6nRV-.js +2 -0
- package/dist/client/assets/{projectPaths-3WDk4ziK.js → projectPaths-DDcwkag5.js} +1 -1
- package/dist/client/assets/{providerDriverMeta-sBwZhQoN.js → providerDriverMeta-DrgHrvO3.js} +1 -1
- package/dist/client/assets/{providerIconUtils-DLRASbiu.js → providerIconUtils-VIm6bh4U.js} +1 -1
- package/dist/client/assets/providerInstances-pNPE7SuA.js +1 -0
- package/dist/client/assets/providerModels-pNPE7SuA.js +1 -0
- package/dist/client/assets/{qr-code-Ie92aZvE.js → qr-code-CXu67ChC.js} +1 -1
- package/dist/client/assets/{radio-group-BuuTEtdC.js → radio-group-B7kMeg_h.js} +1 -1
- package/dist/client/assets/{resolveAriaLabelledBy-0FA0k4xp.js → resolveAriaLabelledBy-DoGkVnyF.js} +1 -1
- package/dist/client/assets/{rightPanelRouteSearch-BS8CkNS6.js → rightPanelRouteSearch-YV6CEBkv.js} +1 -1
- package/dist/client/assets/runtime-Cy36EhFa.js +1 -0
- package/dist/client/assets/{scroll-area-C0yF015F.js → scroll-area-BZayohht.js} +1 -1
- package/dist/client/assets/{scrollEdges-DI5Y3mtR.js → scrollEdges-BObY5qgX.js} +1 -1
- package/dist/client/assets/{select-CZukJlTn.js → select-DQIoKiCF.js} +1 -1
- package/dist/client/assets/{separator-D4ckGtPe.js → separator-DgV5UvWO.js} +1 -1
- package/dist/client/assets/{session-logic-DfaSS3p9.js → session-logic-yjrYZ67x.js} +2 -2
- package/dist/client/assets/{settingsDialogStore-LxRFC5hh.js → settingsDialogStore-CzH3-ZEg.js} +1 -1
- package/dist/client/assets/{settingsLayout-CHJT5wtl.js → settingsLayout-BPKHc7wz.js} +1 -1
- package/dist/client/assets/{sheet-BNfImQ-7.js → sheet-BxlpAnIJ.js} +1 -1
- package/dist/client/assets/{sidebar-CFGg5Tkr.js → sidebar-CuxI1O8j.js} +1 -1
- package/dist/client/assets/{sidebarProjectFolders-DKxZsoOv.js → sidebarProjectFolders-Bi8I6mH5.js} +1 -1
- package/dist/client/assets/{sidebarStatusText-C8QBhZhZ.js → sidebarStatusText-DTXq8x3L.js} +1 -1
- package/dist/client/assets/{skeleton-DOgQaVXv.js → skeleton-C8KnJ1KQ.js} +1 -1
- package/dist/client/assets/{spinner-ClQu8SdC.js → spinner-D9HJGQ01.js} +1 -1
- package/dist/client/assets/{src-DmPIm3ie.js → src-CtanPQei.js} +1 -1
- package/dist/client/assets/storeSelectors-DMs36CMz.js +1 -0
- package/dist/client/assets/{switch-BZjA7VT9.js → switch-B50w01tf.js} +1 -1
- package/dist/client/assets/{terminal-links-CzJomeox.js → terminal-links-C5NsgIQU.js} +1 -1
- package/dist/client/assets/{textarea-DHdmRD1r.js → textarea-CJ8Vux-T.js} +1 -1
- package/dist/client/assets/{threadPinning-UKIVw0OX.js → threadPinning-B5WtT-P_.js} +1 -1
- package/dist/client/assets/{threadPriorityRefreshRuntime-BbiIUPfh.js → threadPriorityRefreshRuntime-BnDDqCxq.js} +1 -1
- package/dist/client/assets/{toast-C-0Ft2jD.js → toast-CV5dwFOH.js} +1 -1
- package/dist/client/assets/{toggle-DsnOFDbJ.js → toggle-DRqyFTHJ.js} +1 -1
- package/dist/client/assets/{toggle-group-Chxh9G6t.js → toggle-group-mhVkQLP2.js} +1 -1
- package/dist/client/assets/{tooltip-C_-9XEfA.js → tooltip-DZhBSkif.js} +1 -1
- package/dist/client/assets/types-DMs36CMz.js +1 -0
- package/dist/client/assets/{uiStateStore-DzUrk2GS.js → uiStateStore-OqZLiCwV.js} +1 -1
- package/dist/client/assets/{useAtlassian-BTWMzLgJ.js → useAtlassian-zbqx4xW1.js} +0 -0
- package/dist/client/assets/{useButton-BmvYhoMC.js → useButton-DXIv8wCn.js} +1 -1
- package/dist/client/assets/{useCompositeListItem-D0PvH4nv.js → useCompositeListItem-rrdFaxXB.js} +1 -1
- package/dist/client/assets/{useDebouncedValue-s0BC8Yyp.js → useDebouncedValue-Dz3pyT5q.js} +1 -1
- package/dist/client/assets/{useFloatingRootContext-CLCaQEJk.js → useFloatingRootContext-CIRRjmkd.js} +1 -1
- package/dist/client/assets/{useHandleNewThread-9FAjhuhK.js → useHandleNewThread-DRoY_cL7.js} +1 -1
- package/dist/client/assets/{useLabelableId-CB_9OReR.js → useLabelableId-nlk2LM0q.js} +1 -1
- package/dist/client/assets/{useLocation-DGJMt6gP.js → useLocation-TExTri5H.js} +1 -1
- package/dist/client/assets/{useOpenInteractionType-BSSI2GzS.js → useOpenInteractionType-Co4_pLo_.js} +1 -1
- package/dist/client/assets/{usePhoneThreadActions-B7yDFO2l.js → usePhoneThreadActions-CTmdPjGg.js} +1 -1
- package/dist/client/assets/{usePopupViewport-8F-J1h5f.js → usePopupViewport-SxCh7dCg.js} +1 -1
- package/dist/client/assets/{useScrollLock-CBz-5_MX.js → useScrollLock-cFFkQSYy.js} +1 -1
- package/dist/client/assets/{useStatistics-C9g3i7bQ.js → useStatistics-D8hzpDv4.js} +2 -2
- package/dist/client/assets/{useSwipeDismiss-D22_vuiH.js → useSwipeDismiss-ALyKckxx.js} +1 -1
- package/dist/client/assets/{useThreadActions-CouKkjbt.js → useThreadActions-5hLAJAJB.js} +1 -1
- package/dist/client/assets/{useTriggerFocusGuards-f7afwACm.js → useTriggerFocusGuards-lOK7sLv0.js} +1 -1
- package/dist/client/assets/{useValueChanged-EkWF0C3k.js → useValueChanged-BQLjL43O.js} +1 -1
- package/dist/client/assets/{utils-CV2fJJxC.js → utils-Ct58OPtz.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/{collectUint8StreamText-oFvWyN3_.mjs → collectUint8StreamText-Bwltp7kn.mjs} +10 -0
- package/dist/{collectUint8StreamText-Dsbmrw73.cjs → collectUint8StreamText-D0THfPrP.cjs} +10 -0
- package/dist/{makeManagedServerProvider-CANTNAsz.cjs → makeManagedServerProvider-B7rRjRgd.cjs} +1 -1
- package/dist/{makeManagedServerProvider-PLtJj7EV.mjs → makeManagedServerProvider-BMSV4Aim.mjs} +1 -1
- package/package.json +1 -1
- package/dist/client/assets/AiFocusSettings-DwIYKKIc.js +0 -1
- package/dist/client/assets/CommandPaletteDialog-DywhkOKa.js +0 -1
- package/dist/client/assets/DialogRoot-C_DO1gtO.js +0 -1
- package/dist/client/assets/PhoneSettingsSurface-B-6LoBMV.js +0 -1
- package/dist/client/assets/RootAppShell-DJfVW8Xa.js +0 -6
- package/dist/client/assets/SettingsDialog-ClIbtJ2y.js +0 -1
- package/dist/client/assets/SettingsPanels-DshjYQGk.js +0 -3
- package/dist/client/assets/authorization-D8lJzXTE.js +0 -1
- package/dist/client/assets/composerDraftStore-TYv9j3vY.js +0 -11
- package/dist/client/assets/desktopUpdateAtoms-BpN7gP0v.js +0 -1
- package/dist/client/assets/editorPreferences-DiUypD3L.js +0 -1
- package/dist/client/assets/main-DlGNPwsH.css +0 -2
- package/dist/client/assets/primary-CiDY2oUi.js +0 -2
- package/dist/client/assets/providerInstances-vd2eZtHx.js +0 -1
- package/dist/client/assets/providerModels-vd2eZtHx.js +0 -1
- package/dist/client/assets/runtime-CYtynKGT.js +0 -1
- package/dist/client/assets/storeSelectors-BeLJe5C1.js +0 -1
- package/dist/client/assets/types-BeLJe5C1.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-Bcy-9P3V.js";import{$c as m,$o as h,$r as g,$s as _,Ac as v,Al as y,Ba as b,Bl as x,C as S,Ca as C,Cc as w,Cl as T,Cr as E,Cs as D,Dc as O,Di as k,Dr as A,Ds as j,Er as M,Es as N,Fl as P,Fo as F,Fs as I,Ga as L,Gc as R,Go as ee,Gs as te,H as ne,Hl as re,Ho as ie,Ia as ae,Ir as oe,Ja as se,Jc as ce,Ji as le,Jr as ue,Js as de,Ka as fe,Ki as pe,La as me,Lc as he,Ll as ge,Ma as _e,Ml as ve,Na as ye,Ni as be,Nl as xe,Nr as Se,Ns as Ce,Oa as we,Oi as Te,Ol as Ee,Os as De,Pa as Oe,Pc as ke,Pl as Ae,Qa as je,Qc as Me,Qo as Ne,R as Pe,Ra as Fe,Rl as Ie,Sa as Le,Sc as Re,Sl as ze,So as Be,T as Ve,Ti as He,To as Ue,Tr as We,U as Ge,Ua as Ke,Uo as qe,Ur as Je,Va as Ye,Vc as Xe,Vi as Ze,W as Qe,Wc as $e,Wo as et,Wr as tt,Xa as nt,Xi as rt,Xo as it,Yi as at,Za as ot,Zc as st,_a as ct,_i as lt,_l as ut,as as dt,ba as ft,bc as pt,bi as mt,bl as ht,bo as gt,br as _t,cc as vt,co as yt,cs as bt,dl as xt,do as St,ds as Ct,ec as wt,el as Tt,eo as Et,es as Dt,fi as Ot,fl as kt,fo as At,ga as jt,gc as Mt,gi as Nt,ha as Pt,hi as Ft,hl as It,ic as Lt,ja as Rt,jc as zt,jr as Bt,js as Vt,k as Ht,ka as Ut,ki as Wt,kl as Gt,ks as Kt,lc as qt,ll as Jt,ma as Yt,mi as Xt,ml as Zt,mo as Qt,nl as $t,ns as en,oc as tn,oo as nn,os as rn,pa as an,pi as on,po as sn,ps as cn,qa as ln,qc as un,qi as dn,rc as fn,ri as pn,rl as mn,ro as hn,rs as gn,sa as _n,sc as vn,ss as yn,st as bn,t as xn,ti as Sn,tl as Cn,ts as wn,uc as Tn,ul as En,us as Dn,ut as On,va as kn,vc as An,vl as jn,vo as Mn,wc as Nn,wo as Pn,wr as Fn,xa as In,xi as Ln,xr as Rn,xs as zn,y as Bn,yc as Vn,yl as Hn,yo as Un,yr as Wn,ys as Gn,zi as Kn,zl as qn,zr as Jn}from"./src-CtanPQei.js";import{$ as Yn,$t as Xn,B as Zn,Bt as Qn,Ct as $n,Et as er,Ft as z,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,Nt as fr,Pt as pr,Q as mr,Qt as hr,Rt as gr,St as _r,Tt as vr,Ut as yr,V as br,Vt as xr,W as Sr,Wt as Cr,Xt as wr,Y as Tr,Yt as Er,Z as Dr,Zt as Or,an as kr,at as Ar,bt as jr,cn as Mr,ct as Nr,dn as Pr,en as Fr,ft as Ir,in as Lr,it as Rr,jt as zr,ln as Br,mt as Vr,n as Hr,nn as Ur,nt as Wr,o as Gr,on as Kr,ot as qr,pt as Jr,q as Yr,qt as Xr,r as Zr,rn as Qr,rt as $r,sn as ei,st as ti,tn as ni,tt as ri,un as ii,ut as ai,vt as oi,w as si,wt as ci,xt as li,yt as ui,zt as di}from"./primary-DiL6nRV-.js";import{Bt as fi,Ct as pi,It as mi,Lt as hi,Mt as gi,Rt as _i,_t as vi,bt as yi,gt as bi,i as xi,n as Si,nt as Ci,r as wi,rt as Ti,vt as Ei,zt as Di}from"./composerDraftStore-DXTD6mKH.js";import{t as Oi}from"./pairingUrl-rQM9kSGT.js";import{n as ki,t as Ai}from"./visibilityPolling-BwzZdaSN.js";import{i as ji}from"./branding-hWmEaQ8d.js";import{a as Mi,n as Ni,r as Pi}from"./perfInstrumentation-BT27w4tn.js";import{$ as Fi,A as Ii,B as Li,Bt as Ri,C as zi,Ct as Bi,D as Vi,E as Hi,F as Ui,Ft as Wi,G as Gi,Gt as Ki,H as qi,Ht as Ji,I as Yi,It as Xi,J as Zi,K as Qi,Kt as $i,L as ea,Lt as ta,M as na,Mt as ra,N as ia,O as aa,P as oa,Pt as sa,Q as ca,R as la,Rt as ua,S as da,T as fa,Tt as pa,U as ma,Ut as ha,V as ga,Vt as _a,W as va,Wt as ya,X as ba,Y as xa,Z as Sa,_ as Ca,_t as wa,a as Ta,at as Ea,bt as Da,c as Oa,ct as ka,d as Aa,dt as ja,et as Ma,f as Na,ft as Pa,g as Fa,gt as Ia,h as La,ht as Ra,it as B,j as za,k as Ba,l as Va,lt as Ha,m as Ua,mt as Wa,nt as Ga,o as Ka,ot as qa,p as Ja,pt as Ya,q as Xa,rt as Za,s as Qa,st as $a,tt as eo,u as to,ut as no,vt as ro,w as io,x as ao,xt as oo,yt as so,z as co,zt as lo}from"./authorization-BNZY2k8w.js";import{t as uo}from"./presentationTier-xlIjcFab.js";import{r as fo}from"./hostedPairing-PogXRAb7.js";import{t as po}from"./settingsDialogStore-CzH3-ZEg.js";import{i as mo}from"./uiStateStore-OqZLiCwV.js";var V=e(r(),1),ho=jn,go=tn,_o=globalThis.Number,vo=e=>{if(e===`NaN`)return mn(NaN);if(e===`Infinity`)return mn(1/0);if(e===`-Infinity`)return mn(-1/0);if(e.trim()===``)return $t();let t=_o(e);return _o.isNaN(t)?$t():mn(t)};function yo(e){return{_tag:`Value`,value:e}}function bo(e,t){return{_tag:`Record`,keys:e,value:t}}function xo(e,t){return{_tag:`Array`,length:e,value:t}}Gn(`SourceError`);var So=w(`effect/ConfigProvider`,{defaultValue:()=>Ao()}),Co={...Jt,toJSON(){return{_id:`ConfigProvider`}}},wo=e=>e;function To(e,t){let n=Object.create(Co);return n.load=e,n.mapInput=t,n}function Eo(e,t){return To(n=>e(t(n)),n=>Eo(e,Ie(t,n)))}function Do(e){return Eo(e,wo)}function Oo(e,t){return e===``&&!t?void 0:e}function ko(e,t){let n=t?.preserveEmptyStrings===!0,r=jo(e);return Do(t=>qe(No(r,e,t,n)))}function Ao(e){return ko(e?.env??{APP_VERSION:`0.1.18`,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 jo(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 Mo=/^(0|[1-9][0-9]*)$/;function No(e,t,n,r){let i=n.map(String).join(`_`),a=Oo(Object.hasOwn(t,i)?t[i]:void 0,r),o=Po(e,n),s=o?.children?Object.keys(o.children):[];return s.length===0?a===void 0?void 0:yo(a):s.every(e=>Mo.test(e))?xo(Math.max(...s.map(e=>parseInt(e,10)))+1,a):bo(new Set(s),a)}function Po(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 Fo=`~effect/Config`,Io=class{_tag=`ConfigError`;name=`ConfigError`;cause;constructor(e){this.cause=e}get message(){return this.cause.toString()}toString(){return`ConfigError(${this.message})`}},Lo={...zt({label:`Config`,evaluate(e){return this.parse(e.getRef(So))}}),[Fo]:Fo,toJSON(){return{_id:`Config`}}};function Ro(e){let t=Object.create(Lo);return t.evaluator=e,t.parse=t=>e(t,[]).pipe(sn(e=>e.error),se(e=>e._tag===`Resolved`?qe(e.value):L(e.error))),t}var zo=(e,t)=>({_tag:`Resolved`,value:e,hasInput:t}),Bo=e=>({_tag:`Absent`,error:e}),Vo=(e,t)=>({error:e,hasInput:t}),Ho=e=>ve(e,`SourceError`),Uo=(e,t)=>e.pipe(me(e=>Ho(e)?L(Vo(new Io(e),t)):Ke(e))),Wo=()=>`<configuration>`,Go=(e,t)=>e.load(t).pipe(Un,At(n=>({provider:e,path:t,node:n,toString:Wo}))),Ko=(e,t)=>Go(e.provider,[...e.path,t]),qo=e=>e?.value,Jo=(e,t)=>Yt(jt,e,new ct(C(e=>t(e)),In())),Yo=e=>{switch(e._tag){case`Union`:return e.types.every(Yo);case`Objects`:case`Arrays`:case`Suspend`:return!1;default:return!0}},Xo=(e,t)=>{switch(e._tag){case`Objects`:return t?._tag===`Record`;case`Arrays`:return t?._tag===`Array`;case`Union`:return e.types.some(e=>Xo(e,t));case`Suspend`:return Xo(e.thunk(),t);default:return qo(t)!==void 0}},Zo=x(e=>{let t=new WeakSet,n=an(e=>{switch(t.add(e),e._tag){case`Objects`:{let t=e.indexSignatures.map(e=>at(e.parameter)),r=nt(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*Ko(n,e);t.node!==void 0&&ut(a,e,t)}return a});return Jo(e.recur(n,e=>e),r)}case`Arrays`:{let t=nt(function*(e){if(e.node?._tag!==`Array`)return;let t=[];for(let n=0;n<e.node.length;n++)t.push(yield*Ko(e,n));return t});return Jo(e.recur(n),t)}case`Union`:for(let t of e.types)n(t);return Yo(e)?Jo(e,e=>qe(qo(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 Jo(e,e=>qe(qo(e.node)))}});return n(e)});function Qo(e,t){let n=pe(e),r=Pt(n.ast),i=rt(Kn(Zo(n.ast))),a=typeof t==`string`?[t]:t??[];return Ro((e,t)=>{let n=[...t,...a];return Uo(Go(e,n),!1).pipe(se(e=>{let t=Xo(r,e.node);return Uo(i(e).pipe(At(e=>zo(e,t)),Fe(e=>{let r=new Io(new dn(n.length>0?new Ut(n,e):e));return t?L(Vo(r,!0)):qe(Bo(r))})),t)}))})}var $o=(e,t,n)=>{let r=Xt(e,t),i=kn(n),a=Ft.pipe(He(pe(r),{decode:i.decode,encode:In({strict:!1}).compose(i.encode)}));return Ln([r,a])};function es(e){return Qo(Ft,e)}function ts(){return{executionCount:0,isPending:!1,lastArgs:void 0,lastExecutionTime:0,nextExecutionTime:0,status:`idle`,maybeExecuteCount:0}}var ns={enabled:!0,leading:!0,trailing:!0,wait:0},rs=class{#e;constructor(e,t){this.fn=e,this.store=new Di(ts()),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`}}),hi(`Throttler`,this)},this.#n=()=>!!fi(this.options.enabled,this),this.#r=()=>fi(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(ts())},this.key=t.key,this.options={...ns,...t},this.#t(this.options.initialState??{}),this.key&&_i.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},is=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}}}})),as=t(((e,t)=>{t.exports=is()})),os=e(as(),1);function ss(e){let t=os.unstable_scheduleCallback(4,e);return()=>os.unstable_cancelCallback(t)}var cs=V.createContext(Kr({scheduleTask:ss,defaultIdleTTL:400})),ls=new WeakMap;function us(e,t){let n=ls.get(e);n===void 0&&(n=new WeakMap,ls.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 Xn(t,e)}};return n.set(t,i),i}function ds(e,t){let n=us(e,t);return V.useSyncExternalStore(n.subscribe,n.snapshot,n.getServerSnapshot)}var fs=(e,t)=>{let n=V.useContext(cs);return t?ds(n,V.useMemo(()=>Ur(e,t),[e,t])):ds(n,e)},ps=(e,t,n)=>{let r=V.useContext(cs);V.useEffect(()=>r.subscribe(e,t,n),[r,e,t,n?.immediate])},ms=`~effect/http/UrlParams`,hs=e=>Gt(e,ms),gs={...Jt,[ms]:ms,[Symbol.iterator](){return this.params[Symbol.iterator]()},toJSON(){return{_id:`UrlParams`,params:Object.fromEntries(this.params)}},[ze](e){return bs(this,e)},[Ee](){return T(this.params.flat())}},_s=e=>{let t=Object.create(gs);return t.params=e,t},vs=e=>{if(hs(e))return e;let t=ys(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 _s(n)},ys=e=>{let t=typeof e[Symbol.iterator]==`function`?ke(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=ys(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},bs=Hn((e,t)=>xs(e.params,t.params)),xs=he(ho([ht(),ht()])),Ss=_s([]),Cs=ge(2,(e,t)=>{let n=vs(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}),ws=`~effect/http/HttpBody`;Gn(`HttpBodyError`);var Ts=class{[ws];constructor(){this[ws]=ws}[kt](){return this.toJSON()}toString(){return Zt(this,{ignoreToString:!0})}},Es=new class extends Ts{_tag=`Empty`;toJSON(){return{_id:`effect/HttpBody`,_tag:`Empty`}}},Ds=class extends Ts{_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}}},Os=(e,t)=>new Ds(e,t??`application/octet-stream`,e.length),ks=new TextEncoder,As=(e,t)=>Os(ks.encode(e),t??`text/plain`),js=(e,t)=>As(JSON.stringify(e),t??`application/json`),Ms=`~effect/http/Cookies`,Ns=`~effect/http/Cookies/Cookie`;Gn(`CookieError`);var Ps={[Ms]:Ms,...En,toJSON(){return{_id:`effect/Cookies`,cookies:u(this.cookies,e=>e.toJSON())}},pipe(){return re(this,arguments)}},Fs=e=>{let t=Object.create(Ps);return t.cookies=e,t},Is=e=>{let t={};for(let n of e)ut(t,n.name,n);return Fs(t)},Ls=e=>{let t=typeof e==`string`?[e]:e,n=[];for(let e of t){let t=Rs(e.trim());t&&n.push(t)}return Is(n)};function Rs(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(!zs.test(r))return;let i=t[0].slice(n+1),a=Vs(i);if(t.length===1)return Object.assign(Object.create(Bs),{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=pt(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(Bs),{name:r,value:a,valueEncoded:i,options:Object.keys(o).length>0?o:void 0})}var zs=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Bs={[Ns]:Ns,...En,toJSON(){return{_id:`effect/Cookies/Cookie`,name:this.name,value:this.value,options:this.options}}},Vs=e=>{try{return decodeURIComponent(e)}catch{return e}},Hs=[[`GET`,`get`],[`POST`,`post`],[`PUT`,`put`],[`DELETE`,`del`],[`PATCH`,`patch`],[`HEAD`,`head`],[`OPTIONS`,`options`],[`TRACE`,`trace`]],Us=(e,t)=>t._tag===`Empty`||t._tag===`FormData`?ir(ir(e,`content-type`),`content-length`):(e=t.contentType===void 0?ir(e,`content-type`):yr(e,`content-type`,t.contentType),t.contentLength===void 0?ir(e,`content-length`):yr(e,`content-length`,t.contentLength.toString())),Ws=class extends Gn(`UrlError`){},Gs=(e,t,n)=>$e({try:()=>{let r=new URL(e,Ks());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 Ws({cause:e})}),Ks=()=>{if(`location`in globalThis&&globalThis.location!==void 0&&globalThis.location.origin!==void 0&&globalThis.location.pathname!==void 0)return location.origin+location.pathname},qs=`~effect/http/HttpClientRequest`,Js={[qs]:qs,...En,toJSON(){return{_id:`HttpClientRequest`,method:this.method,url:this.url,urlParams:this.urlParams,hash:this.hash,headers:It(this.headers),body:this.body.toJSON()}},pipe(){return re(this,arguments)}};function Ys(e,t,n,r,i,a){let o=Object.create(Js);return o.method=e,o.url=t,o.urlParams=n,o.hash=r,o.headers=i,o.body=a,o}var Xs=Ys(`GET`,``,Ss,$t(),dr,Es),Zs=e=>(t,n)=>$s(Xs,{method:e,url:t,...n??void 0}),Qs=Zs(`POST`),$s=ge(2,(e,t)=>{let n=e;return t.method&&(n=ec(n,t.method)),t.url&&(n=ac(n,t.url)),t.headers&&(n=nc(n,t.headers)),t.urlParams&&(n=oc(n,t.urlParams)),t.hash&&(n=sc(n,t.hash)),t.body&&(n=cc(n,t.body)),t.accept&&(n=rc(n,t.accept)),t.acceptJson&&(n=ic(n)),n}),ec=ge(2,(e,t)=>Ys(t,e.url,e.urlParams,e.hash,e.headers,e.body)),tc=ge(3,(e,t,n)=>Ys(e.method,e.url,e.urlParams,e.hash,yr(e.headers,t,n),e.body)),nc=ge(2,(e,t)=>Ys(e.method,e.url,e.urlParams,e.hash,Cr(e.headers,t),e.body)),rc=ge(2,(e,t)=>tc(e,`Accept`,t)),ic=rc(`application/json`),ac=ge(2,(e,t)=>{if(typeof t==`string`)return Ys(e.method,t,e.urlParams,e.hash,e.headers,e.body);let n=new URL(t.toString()),r=vs(n.searchParams),i=un(n.hash===``?void 0:n.hash.slice(1));return n.search=``,n.hash=``,Ys(e.method,n.toString(),r,i,e.headers,e.body)}),oc=ge(2,(e,t)=>Ys(e.method,e.url,Cs(e.urlParams,t),e.hash,e.headers,e.body)),sc=ge(2,(e,t)=>Ys(e.method,e.url,e.urlParams,mn(t),e.headers,e.body)),cc=ge(2,(e,t)=>Ys(e.method,e.url,e.urlParams,e.hash,Us(e.headers,t),t)),lc=`~effect/http/HttpIncomingMessage`,uc=(e,t)=>{let n=e.headers[`content-type`]??``,r;if(n.includes(`application/json`))try{r=F(e.json)}catch{}else if(n.includes(`text/`)||n.includes(`urlencoded`))try{r=F(e.text)}catch{}let i={...t,headers:It(e.headers),remoteAddress:e.remoteAddress};return r!==void 0&&(i.body=r),i},dc=`~effect/http/HttpClientResponse`,fc=(e,t)=>new mc(e,t),pc=e=>e.status>=200&&e.status<300?qe(e):L(new Xr({reason:new Er({response:e,request:e.request,description:`non 2xx status code`})})),mc=class extends xt{[lc];[dc];request;source;constructor(e,t){super(),this.request=e,this.source=t,this[lc]=lc,this[dc]=dc}toJSON(){return uc(this,{_id:`HttpClientResponse`,request:this.request.toJSON(),status:this.status})}get status(){return this.source.status}get headers(){return gr(this.source.headers)}cachedCookies;get cookies(){return this.cachedCookies?this.cachedCookies:this.cachedCookies=Ls(this.source.headers.getSetCookie())}get remoteAddress(){return $t()}get stream(){return this.source.body?ue({evaluate:()=>this.source.body,onError:e=>new Xr({reason:new nr({request:this.request,response:this,cause:e})})}):tt(new Xr({reason:new lr({request:this.request,response:this,description:`can not create stream from empty body`})}))}get json(){return ln(this.text,e=>h({try:()=>e===``?null:JSON.parse(e),catch:e=>new Xr({reason:new nr({request:this.request,response:this,cause:e})})}))}textBody;get text(){return this.textBody??=St(this.arrayBuffer,e=>new TextDecoder().decode(e))}get urlParamsBody(){return ln(this.text,e=>h({try:()=>vs(new URLSearchParams(e)),catch:e=>new Xr({reason:new nr({request:this.request,response:this,cause:e})})}))}formDataBody;get formData(){return this.formDataBody??=Ne({try:()=>this.source.formData(),catch:e=>new Xr({reason:new nr({request:this.request,response:this,cause:e})})}).pipe(Oe,F)}arrayBufferBody;get arrayBuffer(){return this.arrayBufferBody||=Ne({try:()=>this.source.arrayBuffer(),catch:e=>new Xr({reason:new nr({request:this.request,response:this,cause:e})})}).pipe(Oe,F),this.arrayBufferBody}pipe(){return re(this,arguments)}},hc=e=>di({b3:`${e.traceId}-${e.spanId}-${e.sampled?`1`:`0`}${Cn(e.parent,{onNone:()=>``,onSome:e=>`-${e.spanId}`})}`,traceparent:`00-${e.traceId}-${e.spanId}-${e.sampled?`01`:`00`}`}),gc=`~effect/http/HttpClient`,_c=Nn(`effect/HttpClient`),vc=ge(2,(e,t)=>bc(n=>t(e.postprocess(n)),e.preprocess)),yc=vc(ln(pc)),bc=(e,t)=>{let n=Object.create(xc);return n.preprocess=t,n.postprocess=e,n.execute=function(n){return e(t(n))},n},xc={[gc]:gc,pipe(){return re(this,arguments)},...En,toJSON(){return{_id:`effect/HttpClient`}},...Object.fromEntries(Hs.map(([e,t])=>[t,function(t,n){return this.execute(Zs(e)(t,n))}]))},Sc=e=>bc(t=>ln(t,t=>dt(n=>{let r=Ac.get(t),i=r??new AbortController,a=Gs(t.url,t.urlParams,st(t.hash));if(Xe(a))return L(new Xr({reason:new sr({request:t,cause:a.failure})}));let o=a.success;if(n.getRef(vn)||n.getRef(wc)(t)){let a=e(t,o,i.signal,n);return r?a:Dt(e=>Qt(e(a),{onSuccess(e){return kc.register(e,i),qe(new jc(e,i))},onFailure(e){return _(e)&&i.abort(),fe(e)}}))}return en(n.getRef(Dc)(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(ar),l=n.getRef(Tc),u=xr(t.headers,c);for(let e in u)l(e,`request`)&&a.attribute(`http.request.header.${e}`,String(u[e]));return t=n.getRef(Ec)?nc(t,hc(a)):t,Dt(s=>s(e(t,o,i.signal,n)).pipe(rn(a,{captureStackTrace:!1}),Qt({onSuccess:e=>{a.attribute(`http.response.status_code`,e.status);let t=xr(e.headers,c);for(let e in t)l(e,`response`)&&a.attribute(`http.response.header.${e}`,String(t[e]));return r?qe(e):(kc.register(e,i),qe(new jc(e,i)))},onFailure(e){return!r&&_(e)&&i.abort(),fe(e)}})))})})),qe),Cc=ge(2,(e,t)=>{let n=Ct(t),r=n?`errors-and-responses`:t.retryOn??`errors-and-responses`,i=n?t:t.schedule,a=i&&cn(i),o=n?void 0:t.times;return vc(e,Ie(r===`errors-only`?qn:Pn({schedule:a,times:o,while:Pc}),r===`response-only`?qn:Ue({while:n||t.while===void 0?Mc:xe(Mc,t.while),schedule:i,times:o})))}),wc=w(`effect/http/HttpClient/TracerDisabledWhen`,{defaultValue:()=>Ae}),Tc=w(`effect/http/HttpClient/TracerHeaderFilter`,{defaultValue:()=>P}),Ec=w(`effect/HttpClient/TracerPropagationEnabled`,{defaultValue:P}),Dc=w(`effect/http/HttpClient/SpanNameGenerator`,{defaultValue:()=>e=>`http.client ${e.method}`}),Oc=e=>zn(_c)(Ye(t=>St(e,e=>vc(e,wn(e=>v(t,e)))))),kc=(()=>{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))}}})(),Ac=new WeakMap,jc=class{original;controller;constructor(e,t){this.original=e,this.controller=t}[dc]=dc;[lc]=lc;applyInterrupt(e){return et(()=>(kc.unregister(this.original),Mn(e,()=>ee(()=>{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 g(()=>(kc.unregister(this.original),Je(this.original.stream,ee(()=>{this.controller.abort()}))))}toJSON(){return this.original.toJSON()}[kt](){return this.original[kt]()}pipe(){return re(this,arguments)}},Mc=e=>fn(e)||Nc(e),Nc=e=>Or(e)&&(e.reason._tag===`TransportError`||e.reason._tag===`StatusCodeError`&&Pc(e.reason.response)),Pc=e=>e.status===408||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504;function Fc(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 Ic(e){return{server:{refreshProviders:e.server.refreshProviders,updateProvider:e.server.updateProvider,getSettings:e.server.getSettings,updateSettings:e.server.updateSettings,upsertKeybinding:e.server.upsertKeybinding,getDiagnosticsSnapshot:e.server.getDiagnosticsSnapshot,discoverSourceControl:e.server.discoverSourceControl,listOpinionatedPlugins:e.server.listOpinionatedPlugins,checkOpinionatedPlugins:e.server.checkOpinionatedPlugins,installOpinionatedPlugin:e.server.installOpinionatedPlugin},...e.keybindings?{keybindings:{replaceCustom:e.keybindings.replaceCustom}}:{},...e.device?{device:e.device}:{},terminal:{open:t=>e.terminal.open(t),write:t=>e.terminal.write(t),resize:t=>e.terminal.resize(t),clear:t=>e.terminal.clear(t),restart:t=>e.terminal.restart(t),close:t=>e.terminal.close(t),onEvent:t=>e.terminal.onEvent(t)},projects:{listEntries:e.projects.listEntries,readFile:e.projects.readFile,readFileBinary:e.projects.readFileBinary,searchEntries:e.projects.searchEntries,writeFile:e.projects.writeFile,stageFileReference:e.projects.stageFileReference,initializeGit:e.projects.initializeGit},filesystem:{browse:e.filesystem.browse},sourceControl:{lookupRepository:e.sourceControl.lookupRepository,searchRepositories:e.sourceControl.searchRepositories,cloneRepository:e.sourceControl.cloneRepository,publishRepository:e.sourceControl.publishRepository},vcs:{pull:e.vcs.pull,refreshStatus:e.vcs.refreshStatus,onStatus:(t,n,r)=>e.vcs.onStatus(t,n,r),listRefs:e.vcs.listRefs,createWorktree:e.vcs.createWorktree,removeWorktree:e.vcs.removeWorktree,createRef:e.vcs.createRef,switchRef:e.vcs.switchRef,init:e.vcs.init},git:{runStackedAction:e.git.runStackedAction,resolvePullRequest:e.git.resolvePullRequest,preparePullRequestThread:e.git.preparePullRequestThread,createWorktreeForProject:e.git.createWorktreeForProject,findWorktreeForOrigin:e.git.findWorktreeForOrigin,archiveWorktree:e.git.archiveWorktree,restoreWorktree:e.git.restoreWorktree,deleteWorktree:e.git.deleteWorktree},...e.worktrees?{worktrees:{setManualPosition:e.worktrees.setManualPosition}}:{},...e.threads?{threads:{setManualBucket:e.threads.setManualBucket,setManualPosition:e.threads.setManualPosition}}:{},orchestration:{dispatchCommand:e.orchestration.dispatchCommand,getTurnDiff:e.orchestration.getTurnDiff,getWorkflowScript:e.orchestration.getWorkflowScript,getTaskOutput:e.orchestration.getTaskOutput,stopBackgroundTask:e.orchestration.stopBackgroundTask,getFullThreadDiff:e.orchestration.getFullThreadDiff,searchThreadMessages:e.orchestration.searchThreadMessages,...e.orchestration.getThreadWindow?{getThreadWindow:e.orchestration.getThreadWindow}:{},...e.orchestration.getThreadHistoryPage?{getThreadHistoryPage:e.orchestration.getThreadHistoryPage}:{},subscribeShell:(t,n)=>e.orchestration.subscribeShell(t,n),subscribeThread:(t,n,r)=>e.orchestration.subscribeThread(t,n,r),...e.orchestration.subscribeThreadWindow?{subscribeThreadWindow:(t,n,r)=>e.orchestration.subscribeThreadWindow(t,n,r)}:{}},contextHandoff:{getInspectionSummary:e.contextHandoff.getInspectionSummary,listInspectionEntries:e.contextHandoff.listInspectionEntries,readRawPayloadChunk:e.contextHandoff.readRawPayloadChunk,readExportChunk:e.contextHandoff.readExportChunk},mcp:{listWorkspaces:e.mcp.listWorkspaces,listServers:e.mcp.listServers,upsertServer:e.mcp.upsertServer,setServerEnabled:e.mcp.setServerEnabled,removeServer:e.mcp.removeServer,reloadServers:e.mcp.reloadServers,startOauthLogin:e.mcp.startOauthLogin},...e.agentControl?{agentControl:{listProposals:e.agentControl.listProposals,getProposal:e.agentControl.getProposal,acceptProposal:e.agentControl.acceptProposal,rejectProposal:e.agentControl.rejectProposal,subscribeProposals:e.agentControl.subscribeProposals,listIntegrations:e.agentControl.listIntegrations,createIntegration:e.agentControl.createIntegration,updateIntegration:e.agentControl.updateIntegration,resumeIntegrationPairing:e.agentControl.resumeIntegrationPairing,revokeIntegration:e.agentControl.revokeIntegration,deleteIntegration:e.agentControl.deleteIntegration,listMcpInstallations:e.agentControl.listMcpInstallations,connectMcpInstallation:e.agentControl.connectMcpInstallation,repairMcpInstallation:e.agentControl.repairMcpInstallation,disconnectMcpInstallation:e.agentControl.disconnectMcpInstallation}}:{}}}function Lc(e){return{read:t=>{if(!e.canReadConnections()||!t)return;let n=e.readClient(t);return n?Ic(n):void 0}}}function Rc(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 zc(e){return{sequence:e.snapshotSequence,updatedAt:e.updatedAt}}function Bc(e){if(e.current===null)return`newer`;let t=Rc(e.current,zc(e.next));return t<0?`newer`:t===0?`current`:`stale`}function Vc(e){return e.current===null||e.sequence>e.current.sequence}function Hc(){let e=new Map;return{read:t=>e.get(t)??null,markSnapshot:(t,n)=>{let r=zc(n),i=e.get(t);(i===void 0||Rc(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 Uc=class extends Error{status;constructor(e,t){super(e),this.name=`RemoteEnvironmentAuthHttpError`,this.status=t}};function Wc(e){return e instanceof Uc}function Gc(e,t){let n=new URL(e);return n.pathname=t,n.toString()}async function Kc(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 qc(e,t){let n=Gc(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 Uc(await Kc(r,`Remote auth request failed (${r.status}).`),r.status);return await r.json()}function Jc(e,t){return{bootstrapRemoteBearerSession:async t=>qc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/bootstrap/bearer`,method:`POST`,body:{credential:t.credential}}),fetchRemoteSessionState:async t=>qc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/session`,bearerToken:t.bearerToken}),fetchRemoteEnvironmentDescriptor:async t=>qc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/.well-known/ryco/environment`}),issueRemoteWebSocketToken:async t=>qc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/ws-token`,method:`POST`,bearerToken:t.bearerToken}),resolveRemoteWebSocketConnectionUrl:async n=>{let r=await qc(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 Yc(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 Xc(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 Zc(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 Qc(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=Yc(i.host,t);return{credential:i.token,httpBaseUrl:Xc(e),wsBaseUrl:Zc(e)}}let a=n.readPairingToken(e)??``;if(!a)throw Error(`Pairing URL is missing its token.`);return{credential:a,httpBaseUrl:Xc(e),wsBaseUrl:Zc(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=Yc(i,t);return{credential:a,httpBaseUrl:Xc(o),wsBaseUrl:Zc(o)}}function $c(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 el(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 tl(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 nl=()=>void 0,rl=3e5,il=32,al=12582912,ol=2e3,sl=2500,cl=2,ll=class extends Error{constructor(e){super(`Saved environment ${e} connection was cancelled.`),this.name=`SavedEnvironmentConnectionCancelledError`}};function ul(e){let t=new Map,n=new Map,r=new Set,i=new Map,o=Hc(),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(al,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=tl({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!==nl)return!0;let n=v(t.environmentId);if(!n)return!1;let r=!0,i=nl,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!==nl&&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=nl,!0):!1},w=()=>{let e=Fc([...i.entries()].map(([e,t])=>({key:e,lastAccessedAt:t.lastAccessedAt,retainedBytes:t.estimatedRetainedBytes,evictable:g(t)})),{maxEntries:il,maxBytes:al});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)))},rl))},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=nl,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:nl,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(nl),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(nl),new ll(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(!Vc({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=Bc({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(sl),await el($c(n),{concurrency:cl,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<ol))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()?nl:e.subscribeSavedEnvironmentRegistry(()=>{e.hasSavedEnvironmentRegistryHydrated()&&n()});e.isHostedMode()||e.waitForSavedEnvironmentRegistryHydration().then(n).catch(nl);let i=e.isHostedMode()?nl: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 dl(e,t){if(!y(e)||!y(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]=y(t)&&y(r)?dl(t,r):r}return n}var fl=ft(e=>h({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`),mn(JSON.parse(t))},catch:t=>new we({message:String(t)},e)})),pl=new ct(fl,Le());(e=>Ft.pipe(He(e,pl)))(Ht);function ml(e){return!!(e&&(e.instanceId!==void 0||e.model!==void 0))}function hl(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 gl(e,t){let n=t.textGenerationModelSelection,r=dl(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=ml(n)?n.options:hl({current:e.textGenerationModelSelection.options,patch:n.options});return{...i,textGenerationModelSelection:pi(a,o,s)}}var _l=i(),vl=mi();function yl(e){return e.requestedEnvironmentId??e.routedEnvironmentId??e.activeEnvironmentId??e.primaryEnvironmentId??null}var bl=(0,V.createContext)(null);function xl(e){let t=(0,_l.c)(3),n;return t[0]!==e.children||t[1]!==e.value?(n=(0,vl.jsx)(bl.Provider,{value:e.value,children:e.children}),t[0]=e.children,t[1]=e.value,t[2]=n):n=t[2],n}function Sl(){return(0,V.useContext)(bl)}function Cl(e,t){let n=(0,V.useRef)(t);n.current=t,ps(e,(0,V.useCallback)(e=>{e!==null&&n.current(e)},[]),{immediate:!0})}function wl(){let e=fs(ti),t=Sl();return t?t.serverConfig:e}function Tl(){let e=(0,_l.c)(2),t=wl(),n;return e[0]===t?n=e[1]:(n=qr(t),e[0]=t,e[1]=n),n}function El(){let e=(0,_l.c)(2),t=wl(),n;return e[0]===t?n=e[1]:(n=Ar(t),e[0]=t,e[1]=n),n}function Dl(){let e=(0,_l.c)(2),t=wl(),n;return e[0]===t?n=e[1]:(n=Wr(t),e[0]=t,e[1]=n),n}function Ol(){let e=(0,_l.c)(2),t=wl(),n;return e[0]===t?n=e[1]:(n=ri(t),e[0]=t,e[1]=n),n}function kl(){let e=(0,_l.c)(2),t=wl(),n;return e[0]===t?n=e[1]:(n=$r(t),e[0]=t,e[1]=n),n}function Al(){let e=(0,_l.c)(2),t=wl(),n;return e[0]===t?n=e[1]:(n=Rr(t),e[0]=t,e[1]=n),n}function jl(e){Cl(ai,e)}function Ml(e){Cl(Nr,e)}var Nl=new Set,Pl=new Set,Fl=S,Il=!1,Ll=null;function Rl(){for(let e of Nl)e()}function zl(){for(let e of Pl)e()}function Bl(){return Fl}function Vl(e){Fl=e,Rl()}function Hl(){return Il}function Ul(e){Il!==e&&(Il=e,zl())}function Wl(e){return Nl.add(e),()=>{Nl.delete(e)}}function Gl(){return Ll}function Kl(e){Ll=e}function ql(e){Ll===e&&(Ll=null)}var Jl=`[CLIENT_SETTINGS]`;function Yl(e){let t=Wl(e);return Xl(),t}async function Xl(){if(Hl())return;let e=Gl();if(e)return e;let t=(async()=>{try{let e=await bg().persistence.getClientSettings();e&&Vl({...S,...e})}catch(e){console.error(`${Jl} hydrate failed`,e)}finally{Ul(!0)}})().finally(()=>{ql(t)});return Kl(t),t}function Zl(e){Vl(e),bg().persistence.setClientSettings(e).catch(e=>{console.error(`${Jl} persist failed`,e)})}var Ql=new Set(le(Ht.fields));function $l(e){let t={},n={};for(let[r,i]of Object.entries(e))Ql.has(r)?t[r]=i:n[r]=i;return{serverPatch:t,clientPatch:n}}function eu(){return Bl()}function tu(e){let t=(0,_l.c)(6),n=Tl(),r=(0,V.useSyncExternalStore)(Yl,Bl,nu),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 nu(){return S}function ru(){let e=(0,_l.c)(9),t=Sl(),n=t?.environmentId??null,r=t?.primary??!0,i=t?.connected??!0,a;e[0]!==i||e[1]!==n||e[2]!==r?(a=e=>{let{serverPatch:t,clientPatch:a}=$l(e);if(Object.keys(t).length>0){if(n&&!r)i?jE(n,t).catch(e=>{console.error(`[SETTINGS] update failed for ${n}`,e)}):console.error(`[SETTINGS] Refused a node setting write while ${n} is disconnected.`);else{let e=Yn();e&&Dr(gl(e.settings,t)),bg().server.updateSettings(t)}}Object.keys(a).length>0&&Zl({...Bl(),...a})},e[0]=i,e[1]=n,e[2]=r,e[3]=a):a=e[3];let o=a,s;e[4]===o?s=e[5]:(s=()=>{o(Ve)},e[4]=o,e[5]=s);let c=s,l;return e[6]!==c||e[7]!==o?(l={updateSettings:o,resetSettings:c},e[6]=c,e[7]=o,e[8]=l):l=e[8],l}var iu=Object.freeze({data:null,error:null,cause:null,isPending:!1}),au=Object.freeze({...iu,isPending:!0}),ou=ni(iu).pipe(Fr,kr(`git-status:null`)),su=()=>void 0,cu=new Map,lu=new Set,uu=new Map,du=new Map,fu=1e3,pu=hr(e=>(lu.add(e),ni(au).pipe(Fr,kr(`git-status:${e}`))));function mu(e){return e.environmentId===null||e.cwd===null?null:`${e.environmentId}:${e.cwd}`}function hu(e,t){return`${e}:remote-poll=${t?.automaticRemoteRefreshIntervalMs??0}`}function gu(e){if(e.environmentId===null)return null;let t=kE(e.environmentId);return t?{clientIdentity:t.environmentId,client:t.client.vcs}:null}function _u(e){let t=mu(e);return t===null?iu:z.get(pu(t))}function vu(e,t,n){let r=mu(e);if(r===null)return su;let i=hu(r,n),a=cu.get(i);return a?(a.refCount+=1,()=>wu(i)):(cu.set(i,{refCount:1,unsubscribe:Tu(r,e,t,n)}),()=>wu(i))}function yu(e,t){return bu(e,t).then(t=>{let n=mu(e);return n!==null&&t!==null&&xu(n,t),t})}function bu(e,t){let n=mu(e);if(n===null||e.cwd===null)return Promise.resolve(null);let r=t??gu(e)?.client;if(!r)return Promise.resolve(_u(e).data);let i=uu.get(n);if(i)return i;let a=du.get(n)??0;if(Date.now()-a<fu)return Promise.resolve(_u(e).data);du.set(n,Date.now());let o=r.refreshStatus({cwd:e.cwd}).finally(()=>{uu.delete(n)});return uu.set(n,o),o}function xu(e,t){z.set(pu(e),{data:t,error:null,cause:null,isPending:!1})}function Su(e){let t=(0,_l.c)(5),n=mu(e),r=tu(Cu),i,a;t[0]!==r||t[1]!==e.cwd||t[2]!==e.environmentId?(i=()=>vu({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=fs(n===null?ou:pu(n));return n===null?iu:o}function Cu(e){return e.gitStatusPollIntervalMs}function wu(e){let t=cu.get(e);t&&(--t.refCount,!(t.refCount>0)&&(t.unsubscribe(),cu.delete(e)))}function Tu(e,t,n,r){if(t.cwd===null)return su;let i=t.cwd,a=null,o=su,s=()=>{let s=n?{clientIdentity:`provided:${e}`,client:n}:gu(t);if(!s){a!==null&&(o(),o=su,a=null),Du(e);return}a!==s.clientIdentity&&(o(),a=s.clientIdentity,o=Eu(e,{...t,cwd:i},s.client,r))},c=n?su:DE(s);return s(),()=>{c(),o()}}function Eu(e,t,n,r){Du(e);let i=t.cwd,a=r?.automaticRemoteRefreshIntervalMs??0,o=n.onStatus({cwd:i,...a>0?{automaticRemoteRefreshIntervalMs:a}:{}},t=>{z.set(pu(e),{data:t,error:null,cause:null,isPending:!1})},{onResubscribe:()=>{Du(e)}}),s=!1;return bu(t,n).then(t=>{!s&&t!==null&&xu(e,t)}).catch(()=>void 0),()=>{s=!0,o()}}function Du(e){let t=pu(e),n=z.get(t),r=n.data===null?au:{...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 Ou=Object.freeze({data:null,error:null,isPending:!1}),ku=Object.freeze({data:null,error:null,isPending:!0}),Au=new Set,ju=hr(e=>(Au.add(e),ni(ku).pipe(Fr,kr(`source-control-discovery:${e}`))));ni(Ou).pipe(Fr,kr(`source-control-discovery:null`));function Mu(e){let t=e.key?.trim();return t&&t.length>0?t:null}function Nu(e){let t=new Map;function n(t,n){e.getRegistry().set(ju(t),n)}function r(t){let r=e.getRegistry().get(ju(t)),i=r.data===null?ku:{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(ju(t)).data,error:r instanceof Error?r.message:`Failed to discover source control tools.`,isPending:!1})}function o(n,o){let c=Mu(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=Mu(t);return n===null?Ou:e.getRegistry().get(ju(n))}function c(){t.clear();for(let e of Au)n(e,ku);Au.clear()}return{refresh:o,getSnapshot:s,reset:c}}var Pu={key:`primary`},Fu=3e4,Iu=3e5;function Lu(e){let t=e?.environmentId??null;return t?Zr()?.environmentId===t?Pu:{key:t}:Pu}var Ru=Nu({getRegistry:()=>z,getClient:e=>{if(e===Pu.key){let e=Zr()?.environmentId??null,t=e?kE(e):null;if(t)return t.client.server;try{return yg()?.server??null}catch{return null}}let t=kE(oe.make(e));return t?t.client.server:null}}),zu=hr(e=>ni(()=>gt(()=>Ru.refresh({key:e}))).pipe(Lr({staleTime:Fu,revalidateOnMount:!0}),Qr(Iu),kr(`source-control-discovery:auto-refresh:${e}`)));function Bu(e){return Ru.refresh(Lu(e))}function Vu(e){return Ru.getSnapshot(Lu(e))}function Hu(e){let t=Mu(Lu(e))??Pu.key;return fs(zu(t)),fs(ju(t))}function Uu(){return fs(Jr)}var Wu={now:()=>typeof performance<`u`&&typeof performance.now==`function`?performance.now():Date.now()},Gu={scheduleFrame:e=>{if(typeof requestAnimationFrame==`function`){requestAnimationFrame(()=>e());return}setTimeout(e,0)}};function Ku(){return yi(typeof window>`u`?null:window.localStorage)}function qu(e=Ku()){return{getItem:async t=>await e.getItem(t),setItem:async(t,n)=>{await e.setItem(t,n)},removeItem:async t=>{await e.removeItem(t)}}}qu();var Ju=w(`effect/http/FetchHttpClient/Fetch`,{defaultValue:()=>globalThis.fetch}),Yu=class extends Nn()(`effect/http/FetchHttpClient/RequestInit`){},Xu=Oc(qe(Sc((e,t,n,r)=>{let i=r.getRef(Ju),a=r.context.mapUnsafe.get(Yu.key)??{},o=a.headers?Qn(gr(a.headers),e.headers):e.headers;o[`content-length`]&&(o=ir(o,`content-length`));let s=r=>St(Ne({try:()=>i(t,{...a,method:e.method,headers:o,body:r,duplex:e.body._tag===`Stream`?`half`:void 0,signal:n}),catch:t=>new Xr({reason:new wr({request:e,cause:t})})}),t=>fc(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 ln(Sn(e.body.stream),s)}return s(void 0)}))),Zu=e=>{let t=ce(e).pipe(R(vo));if(m(t))return qe(pt(t.value));if(e===void 0)return qe(pt(5));let n=Date.parse(e);return Number.isNaN(n)?qe(pt(5)):St(go,e=>Vn(Math.max(n-e.currentTimeMillisUnsafe(),1)))},Qu=Dn.pipe(cn,bt(({output:e})=>Or(e)&&e.reason._tag===`StatusCodeError`&&e.reason.response.status===429?Zu(e.reason.response.headers[`retry-after`]):qe(pt(1)))),$u=class extends Nn()(`effect/observability/OtlpExporter/Flusher`){},ed=j($u,()=>{let e=new Set;return{flush:et(()=>e.size===0?gn:ot(e,qn,{concurrency:`unbounded`,discard:!0})),register:t=>ln(De,n=>(e.add(t),Kt(n,ee(()=>e.delete(t)))))}}),td=nt(function*(e){let t=yield*b(),n=O(t,go),r=O(t,De),i=An(Mt(e.exportInterval),Re),a,o=yc(O(t,_c)).pipe(vc(Be(Ec,!1)),Cc({schedule:Qu,times:3})),s=di({"user-agent":`effect-opentelemetry-${e.label}/0.0.0`});e.headers&&(s=Qn(gr(e.headers),s));let c=Qs(e.url,{headers:s}),l=[],u=et(()=>{if(a!==void 0&&n.currentTimeMillisUnsafe()<a)return gn;a!==void 0&&(a=void 0);let t=l;if(e.maxBatchSize!==`disabled`){if(l.length===0)return gn;l=[]}let[r,i]=e.body(t);return o.execute(cc(c,r)).pipe(Rt(i),ye,yn(!1))}).pipe(ae(e=>a===void 0?(a=n.currentTimeMillisUnsafe()+6e4,l=[],yt(`Disabling exporter for 60 seconds`,e)):gn),_e({package:`@effect/opentelemetry`,module:e.label})),d=yield*Br(),f=yield*Pr(d)();return yield*(yield*$u).register(u),yield*Kt(r,et(()=>a===void 0?(f(u),Mr(d)):gn).pipe(hn,nn,it(e.shutdownTimeout))),yield*ie(i).pipe(Rt(ii(d,u)),ln(_n),je,Et(r)),{push(t){a===void 0&&(l.push(t),e.maxBatchSize!==`disabled`&&l.length>=e.maxBatchSize&&f(u))}}}),nd=e=>{let t=e.attributes?ad(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}},rd=nt(function*(e){let t=yield*Qo(mt($o(Nt,Nt)),`OTEL_RESOURCE_ATTRIBUTES`),n=e?.serviceName??e?.attributes?.[`service.name`]??(yield*Qo(mt(Ft),`OTEL_SERVICE_NAME`))??t?.[`service.name`]??(yield*es(`OTEL_SERVICE_NAME`)),r=e?.serviceVersion??e?.attributes?.[`service.version`]??(yield*Qo(mt(Ft),`OTEL_SERVICE_VERSION`))??t?.[`service.version`],i={...t,...e?.attributes};return delete i[`service.name`],delete i[`service.version`],nd({serviceName:n,serviceVersion:r,attributes:i})},Un),id=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},ad=e=>{let t=[];for(let[n,r]of e)t.push({key:n,value:od(r)});return t},od=e=>{if(Array.isArray(e))return{arrayValue:{values:e.map(od)}};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:Zt(e)}}},sd=class extends Nn()(`effect/observability/OtlpSerialization`){},cd=N(sd,{traces:e=>js(e),metrics:e=>js(e),logs:e=>js(e)}),ld=nt(function*(e){let t=yield*rd(e.resource),n=yield*sd,r={name:id(t)},i=yield*td({label:`OtlpTracer`,url:e.url,headers:e.headers,exportInterval:e.exportInterval??pt(5),maxBatchSize:e.maxBatchSize??1e3,body(e){let i={resourceSpans:[{resource:t,scopeSpans:[{scope:r,spans:e}]}]};return[n.traces(i),gn]},shutdownTimeout:e.shutdownTimeout??pt(3)});function a(e){e.sampled&&i.push(pd(e))}return Tn({span(e){return dd({...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})}),ud={_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)}},dd=e=>{let t=Object.assign(Object.create(ud),e);return t.traceId=m(t.parent)?t.parent.value.traceId:fd(32),t.spanId=fd(16),t.events=[],t},fd=e=>{let t=``;for(let n=0;n<e;n++)t+=`0123456789abcdef`[Math.floor(Math.random()*16)];return t},pd=e=>{let t=e.status,n=ad(e.attributes.entries()),r=e.events.map(([e,t,n])=>({name:e,timeUnixNano:String(t),attributes:n?ad(Object.entries(n)):[],droppedAttributesCount:0})),i;if(t.exit._tag===`Success`)i=gd;else if(wt(t.exit.cause))i={code:md.Ok,message:`Interrupted`},n.push({key:`span.label`,value:{stringValue:`⚠︎ Interrupted`}},{key:`status.interrupted`,value:{boolValue:!0}});else{let e=Lt(t.exit.cause,{includeCauseInStack:!0});if(i={code:md.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:Cn(e.parent,{onNone:()=>void 0,onSome:e=>e.spanId}),name:e.name,kind:hd[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:ad(Object.entries(e.attributes)),droppedAttributesCount:0})),droppedLinksCount:0}},md={Unset:0,Ok:1,Error:2},hd={unspecified:0,internal:1,server:2,client:3,producer:4,consumer:5},gd={code:md.Ok},_d=1e3,vd={serviceName:`ryco-web`,attributes:{"service.runtime":`ryco-web`,"service.mode":d?`electron`:`browser`,"service.version":ji}},yd=D(Xu,cd,ed,N(wc,()=>!0)),bd=null,xd=null,Sd=null,Cd=null,wd=0,Td=Promise.resolve(),Ed=N(qt,Tn({span(e){return bd?.span(e)??new vt(e)}}));function Dd(e={}){return e.exportIntervalMs===void 0&&Cd!==null||(Td=Td.finally(()=>Od(e))),Td}async function Od(e){let t=Sr(`/api/observability/v1/traces`),n=Math.max(10,e.exportIntervalMs??_d),r=`${t}|${n}`;if(Cd===r&&bd!==null)return;Cd=r;let i=++wd,a=xd,o=Sd;bd=null,xd=null,Sd=null,await kd(a,o);let s=ei(yd),c=s.runSync(Ce());try{let e=await s.runPromise(I(c)(ld({url:t,exportInterval:`${n} millis`,resource:vd})));if(i!==wd){await kd(s,c);return}bd=e,xd=s,Sd=c}catch(e){await kd(s,c),i===wd&&console.warn(`Failed to configure client tracing exporter`,{error:Ad(e),otlpTracesUrl:t})}}async function kd(e,t){e!==null&&t!==null&&await e.runPromise(Vt(t,de)).catch(()=>void 0).finally(()=>{e.dispose()})}function Ad(e){return e instanceof Error&&e.message.trim().length>0?e.message:String(e)}var jd={tracingLayer:Ed,performanceEnabled:()=>Ni(),recordPerformance:(e,t,n)=>Mi(e,t,n)},Md=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(We,Math.max(a,Math.max(0,Math.min(We,Math.round(e??0)))))}reset(){this.#o=0,this.#s=null}};function Nd(e,t){return Id(e),Id(t),e.epoch===t.epoch?e.counter===t.counter?0:e.counter<t.counter?-1:1:e.epoch<t.epoch?-1:1}function Pd(e,t){return Nd(e,t)===0}function Fd(e,t){if(Id(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 Id(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 Ld(e){let t=ma(e.epoch,e.counter);return{epochField:t.slice(0,4),counterField:t.slice(4)}}function Rd(e){let t=0n;for(let n=0;n<e.byteLength;n+=1)t=t<<8n|BigInt(e[n]);return t}var zd=`ryco.relay-e2ee.close.v1`;function Bd(e){return e===2||e===4}function Vd(e){let t=rf(e.innerType),n=af(e.senderDirection),r=sf(e.sessionBindingHash),i=Ld(e.finalSend),a=Ld(e.expectedRecv);return Uint8Array.from(Pa([zd,t,n,r,i.epochField,i.counterField,a.epochField,a.counterField],Ya))}function Hd(e){let t=Wa(Vd(e));if(t.byteLength!==32)throw TypeError(`Relay E2EE close commitment must be E2EE_CLOSE_COMMITMENT_BYTES long.`);return t}var Ud=5,Wd=Object.freeze([4,8,4,8,32]);function Gd(e){let t=Ld(e.finalSend),n=Ld(e.expectedRecv);return Uint8Array.from(Pa([t.epochField,t.counterField,n.epochField,n.counterField,Hd(e)],Ya))}function Kd(e){let t=Ba(e);if(t.kind===`error`)return{kind:`error`,reason:t.reason};let n=t.value;if(!Array.isArray(n)||n.length!==Ud)return{kind:`error`,reason:`shape`};for(let e=0;e<Ud;e+=1){let t=n[e];if(!(t instanceof Uint8Array))return{kind:`error`,reason:`shape`};if(t.byteLength!==Wd[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:Rd(r[0]),counter:Rd(r[1])},expectedRecv:{epoch:Rd(r[2]),counter:Rd(r[3])}}}}function qd(e){let t=rf(e.innerType),n=af(e.senderDirection),r=sf(e.sessionBindingHash);Id(e.envelope),Id(e.currentNextSend);let i=Kd(e.body);if(i.kind===`error`)return{kind:`invalid`,reason:`malformed_body`,decodeError:i.reason};let a=i.value,o=Ld(e.envelope);if(!Ga(a.finalSendEpochField,o.epochField)||!Ga(a.finalSendCounterField,o.counterField))return{kind:`invalid`,reason:`header_mismatch`};let s=Hd({innerType:t,senderDirection:n,sessionBindingHash:r,finalSend:a.finalSend,expectedRecv:a.expectedRecv});if(!Ga(a.closeCommitment,s))return{kind:`invalid`,reason:`commitment_mismatch`};if(t===2)return Nd(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 Id(c),Pd(a.expectedRecv,c)?{kind:`ok`,value:a}:{kind:`invalid`,reason:`strict_rule`}}var Jd=Object.freeze({failed:3,unclean_truncation:2,unclean_abrupt:1,clean:0});function Yd(e){let t=Jd[e];if(t===void 0)throw TypeError(`Relay E2EE close verdict must be one of the four §10.4 verdicts.`);return t}function Xd(e,t){return Yd(t)>Yd(e)?t:e}function Zd(e){return e===1||e===2||e===3}var Qd=1;function $d(e){if(!Zd(e))throw TypeError(`Relay E2EE error records carry a defined §11.3 error code.`);return Uint8Array.from(Pa([e],Ya))}function ef(e){if(!(e instanceof Uint8Array))return{kind:`error`,reason:`malformed`};if(e.byteLength>16)return{kind:`error`,reason:`oversized`};let t=Ba(e);if(t.kind===`error`)return{kind:`error`,reason:t.reason};let n=t.value;if(!Array.isArray(n)||n.length!==Qd)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:Zd(r)}}}var tf=2,nf=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(sf(e.sessionBindingHash)),this.#t=af(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&&!Pd(Id(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:Id(n.sendPosition).epoch,counter:n.sendPosition.counter},i={epoch:Id(n.expectedRecv).epoch,counter:n.expectedRecv.counter},a={innerType:e,body:Gd({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.`);of(e.at);let n={epoch:e.epoch,counter:e.counter};if(!Pd(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=Fd(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+Xi,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+Xi,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(!ca(e.innerType))throw TypeError(`Relay E2EE inner record type must be a registered type.`);if(Id(e.envelope),Id(e.currentNextSend),of(e.at),e.innerType===3){let t=ef(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=qd({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=Fd({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=qd({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>=tf)throw TypeError(`Relay E2EE close phase admits at most two T_CLOSE-bounded waits.`);of(e),this.#h+=1,this.#g=e+Wi}#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:Xd(this.#x,e)}};function rf(e){if(!Bd(e))throw TypeError(`Relay E2EE close records are inner type 0x02 or 0x04 only.`);return e}function af(e){if(!Sa(e))throw TypeError(`Relay E2EE direction must be a registered direction label.`);return e}function of(e){if(typeof e!=`number`||!Number.isFinite(e))throw TypeError(`Relay E2EE close machine requires a finite timestamp.`);return e}function sf(e){if(!(e instanceof Uint8Array)||e.byteLength!==32)throw TypeError(`Relay E2EE close records require a full-length session binding hash.`);return e}function cf(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}var lf=e=>e?`"${e}" `:``;function uf(e,t=``){if(typeof e!=`boolean`)throw TypeError(lf(t)+`expected boolean, got type=`+typeof e);return e}function df(e,t=``){if(typeof e!=`number`)throw TypeError(lf(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(lf(t)+`expected integer >= 0, got `+e);return e}function H(e,t,n=``){if(cf(e)&&(t===void 0||e.length===t))return e;t!==void 0&&df(t,`length`);let r=cf(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=lf(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}var ff=(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 pf(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function mf(e,t){H(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function hf(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function gf(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function _f(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var vf=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function yf(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function bf(e){for(let t=0;t<e.length;t++)e[t]=yf(e[t]);return e}var xf=vf?e=>e:bf;function Sf(e,t){return ff(e,`defaults`),ff(t,`opts`),Object.assign(e,t)}function Cf(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 wf(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 Tf=(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(cf(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 Ef(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(H(t,e,`output`),n&&!Of(t))throw Error(`invalid output, must be aligned`);return t}function Df(e,t,n){df(e),df(t),uf(n);let r=new Uint8Array(16),i=_f(r);return i.setBigUint64(0,BigInt(t),n),i.setBigUint64(8,BigInt(e),n),r}function Of(e){return e.byteOffset%4==0}function kf(e){return Uint8Array.from(H(e))}var Af=e=>Uint8Array.from(e.split(``),e=>e.charCodeAt(0)),jf=xf(hf(Af(`expand 16-byte k`))),Mf=xf(hf(Af(`expand 32-byte k`)));function U(e,t){return e<<t|e>>>32-t}var Nf=64,Pf=16,Ff=2**32-1,If=Uint32Array.of();function Lf(e,t,n,r,i,a,o,s){let c=i.length,l=new Uint8Array(Nf),u=hf(l),d=vf&&Of(i)&&Of(a),f=d?hf(i):If,p=d?hf(a):If;if(!vf){for(let d=0;d<c;o++){if(e(t,n,r,u,o,s),xf(u),o>=Ff)throw Error(`arx: counter overflow`);let f=Math.min(Nf,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>=Ff)throw Error(`arx: counter overflow`);let h=Math.min(Nf,c-m);if(d&&h===Nf){let e=m/4;if(m%4!=0)throw Error(`arx: invalid block position`);for(let t=0,n;t<Pf;t++)n=e+t,p[n]=f[n]^u[t];m+=Nf;continue}for(let e=0,t;e<h;e++)t=m+e,a[t]=i[t]^l[e];m+=h}}function Rf(e,t){let{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:a,rounds:o}=Sf({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!=`function`)throw Error(`core must be a function`);return df(i),df(o),uf(a),uf(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=Ef(d,l,!1),df(u),u<0||u>=Ff)throw Error(`arx: counter overflow`);let f=[],p=t.length,m,h;if(p===32)f.push(m=kf(t)),h=Mf;else if(p===16&&n)m=new Uint8Array(32),m.set(t),m.set(t,16),h=jf,f.push(m);else throw H(t,32,`arx key`),Error(`invalid key size`);(!vf||!Of(s))&&f.push(s=kf(s));let g=hf(m);if(r){if(s.length!==24)throw Error(`arx: extended nonce must be 24 bytes`);let e=s.subarray(0,16);if(vf)r(h,g,hf(e),g);else{let t=xf(Uint32Array.from(h));r(t,g,hf(e),g),gf(t),xf(g)}s=s.subarray(16)}else vf||xf(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=xf(hf(s));try{return Lf(e,h,g,v,c,l,u,o),l}finally{gf(...f)}}}function zf(e,t){return e[t++]&255|(e[t++]&255)<<8}var Bf=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=kf(H(e,32,`key`));let t=zf(e,0),n=zf(e,2),r=zf(e,4),i=zf(e,6),a=zf(e,8),o=zf(e,10),s=zf(e,12),c=zf(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]=zf(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=zf(e,t+0),_=zf(e,t+2),v=zf(e,t+4),y=zf(e,t+6),b=zf(e,t+8),x=zf(e,t+10),S=zf(e,t+12),C=zf(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;gf(n)}update(e){pf(this),H(e),e=kf(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,gf(this.h,this.r,this.buffer,this.pad)}digestInto(e){pf(this),mf(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}},Vf=wf(32,e=>new Bf(e));function Hf(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 Uf=Rf(Hf,{counterRight:!1,counterLength:4,allowShortKeys:!1}),Wf=new Uint8Array(16),Gf=(e,t)=>{e.update(t);let n=t.length%16;n&&e.update(Wf.subarray(n))},Kf=new Uint8Array(32);function qf(e,t,n,r,i){i!==void 0&&H(i,void 0,`AAD`);let a=e(t,n,Kf),o=Df(r.length,i?i.length:0,!0),s=Vf.create(a);i&&Gf(s,i),Gf(s,r),s.update(o);let c=s.digest();return gf(a,o),c}var Jf=Tf({blockSize:64,nonceLength:12,tagLength:16,withAAD:!0},(e=>(t,n,r)=>({encrypt(i,a){let o=i.length;a=Ef(o+16,a,!1),a.set(i);let s=a.subarray(0,-16);e(t,n,s,s,1);let c=qf(e,t,n,s,r);return a.set(c,o),gf(c),a},decrypt(i,a){a=Ef(i.length-16,a,!1);let o=i.subarray(0,-16),s=i.subarray(-16),c=qf(e,t,n,o,r);if(!Cf(s,c))throw gf(c),Error(`invalid tag`);return a.set(i.subarray(0,-16)),e(t,n,a,a,1),gf(c),a}}))(Uf));function Yf(e,t,n){return Ia(e),n===void 0&&(n=new Uint8Array(e.outputLen)),Ha(e,n,t)}var Xf=Uint8Array.of(0),Zf=Uint8Array.of();function Qf(e,t,n,r=32,i){Ia(e),wa(r,`length`),Ra(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=Zf:Ra(n,void 0,`info`),!o)return i&&ro(t),new Uint8Array;let s=i&&o===1?t:new Uint8Array(o*a),{iHash:c,oHash:l}=Ha.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++){Xf[0]=e+1;let t=c._cloneInto(d);e&&t.update(u),t.update(n).update(Xf).digestInto(u),l._cloneInto(d).update(u).digestInto(u),s.set(u,a*e)}if(Xf[0]=o,o>1&&c.update(u),c.update(n).update(Xf).digestInto(u),l.update(u).digestInto(u),s.set(u,a*(o-1)),c.destroy(),l.destroy(),d?.destroy(),u!==s&&ro(u),ro(Xf),r===s.length)return s;let f=s.slice(0,r);return ro(s),f}var $f=`ryco.relay-e2ee.confirmation-key.v1`,ep=`ryco.relay-e2ee.aead-key.v1`,tp=`ryco.relay-e2ee.ratchet.v1`,np=oo($f),rp=oo(ep),ip=oo(tp);function ap(e,t){if(!(e instanceof Uint8Array)||e.byteLength!==32)throw TypeError(`Relay E2EE ${t} must be exactly E2EE_SECRET_BYTES long.`);return e}function op(e){if(!Sa(e))throw TypeError(`Relay E2EE direction must be a registered direction label.`);return e}function sp(e,t){return so(e,Qi(op(t)))}function cp(...e){for(let t of e)if(t instanceof Uint8Array)try{ro(t)}catch{}}function lp(e,t){try{return t()}catch(t){throw cp(...e),t}}function up(e){return Qf(Wa,ap(e,`exporter secret`),np,32)}function dp(e,t){return Qf(Wa,ap(e,`epoch secret`),sp(rp,t),32)}function fp(e,t){return Qf(Wa,ap(e,`epoch secret`),sp(ip,t),32)}function pp(e){return lp([e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret],()=>({epochSecretC2N:ap(e.epochSecretC2N,`epoch secret`),epochSecretN2C:ap(e.epochSecretN2C,`epoch secret`),exporterSecret:ap(e.exporterSecret,`exporter secret`),serverConfirmationKey:up(e.exporterSecret)}))}function mp(e){return pp(e.split())}function hp(e){typeof e!=`object`||!e||cp(e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret,e.serverConfirmationKey)}var gp=1+Pa([new Uint8Array(4),new Uint8Array(8),new Uint8Array(4),new Uint8Array(8),new Uint8Array(32)],Ya).byteLength,_p=17,vp=Object.freeze([...Array.from({length:2},()=>gp),...Array.from({length:1},()=>_p)]),yp=({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 ap(n,`AEAD key`),{seal:(e,t,r)=>Jf(n,e,r).encrypt(t),open:(e,t,r)=>Jf(n,e,r).decrypt(t)}},bp=class e{#e;#t;#n;#r;#i;#a;#o;#s=!1;constructor(t,n,r){let i=op(t);ap(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=dp(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=fp(n,this.#e),a=lp([i],()=>dp(i,this.#e));return cp(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(){cp(this.#t,this.#n),this.#t=void 0,this.#n=void 0}};function xp(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 Sp(e){let t,n;try{if(!Fi(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=op(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 bp(r,a,e.testOnlySyntheticSendState),n=new bp(i,o,e.testOnlySyntheticReceiveState),{suite:e.suite,sessionBindingHash:Uint8Array.from(e.sessionBindingHash),plaintextCeiling:e.plaintextCeiling,aeadFactory:e.testOnlyAeadFactory??yp,secrets:e.secrets,send:t,receive:n}}catch(r){throw t?.erase(),n?.erase(),hp(e.secrets),r}}var Cp=class{#e=1;#t;#n;#r;#i;#a;#o;#s;#c=`open`;#l=!1;#u=!1;#d=Promise.resolve();constructor(e){let t=Sp(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(vp)}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(),!ca(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,...vp]))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=Zi({suite:this.#t,epoch:i,counter:a}),s=o[1],c=o[2];if(s!==this.#e||!Fi(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=va(o),c=Gi({header:o,sessionBindingHash:this.#n,direction:this.#o.direction}),l=xa(e.innerType,e.body),u;try{let e=a.seal(s,l,c);u=Xa({suite:this.#t,epoch:n,counter:r,ciphertext:e})}catch{u=void 0}finally{cp(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=xp(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=Li(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=va(n.header),a=Gi({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=ga(o)}catch(e){throw cp(o),e}if(s.kind===`error`)return cp(o),this.#v(s.reason===`truncated`?`malformed_record`:`reserved_inner_type`);let c=n.epoch,l=n.counter,{epochCompleted:u}=lp([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(),hp(this.#a))}get erased(){return this.#u}#y(){if(this.#u)throw TypeError(`Relay E2EE session has been erased; it is never resumed.`)}},wp=/^[A-Za-z][A-Za-z0-9._-]{0,63}$/,Tp=64,Ep=Symbol(`INVALID_PROFILE_VALUE`),Dp=new Set(_t),Op={allowIndefinite:!1,allowUndefined:!1,allowInfinity:!1,allowNaN:!1,allowBigInt:!1,strict:!0,useMaps:!0,rejectDuplicateMapKeys:!0,tags:{}},kp=e=>({ok:!0,value:e}),W=(e,t)=>t===void 0?{ok:!1,error:{code:e}}:{ok:!1,error:{code:e,supported:t}};function Ap(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 jp(e,t=0){if(t>Tp)return Ep;if(e===null||typeof e==`boolean`||typeof e==`string`)return e;if(typeof e==`number`)return Number.isSafeInteger(e)?e:Ep;if(e instanceof Uint8Array)return e;if(Array.isArray(e)){let n=[];for(let r of e){let e=jp(r,t+1);if(e===Ep)return Ep;n.push(e)}return n}if(e instanceof Map){let n=Object.create(null);for(let[r,i]of e){if(typeof r!=`string`||!wp.test(r))return Ep;let e=jp(i,t+1);if(e===Ep)return Ep;n[r]=e}return n}return Ep}function Mp(e){let t;try{t=ja(e,Op)}catch{return W(`invalid_encoding`)}if(!(t instanceof Map))return W(`invalid_encoding`);let n;try{n=Pa(t,Ya)}catch{return W(`invalid_encoding`)}if(!Ap(e,n))return W(`invalid_encoding`);let r=jp(t);return r===Ep||r===null||Array.isArray(r)?W(`invalid_encoding`):kp(r)}function Np(e,t){let n=k(Se)({protocolMajor:e.protocolMajor,protocolMinor:e.protocolMinor});return te(n)?W(`invalid_frame`):n.value.protocolMajor===1?t!==void 0&&(n.value.protocolMajor!==t.protocolMajor||n.value.protocolMinor!==t.protocolMinor)?W(`invalid_frame`):kp(n.value):W(`protocol_unsupported`,A)}function Pp(e,t={}){if(e.byteLength>263168)return W(`frame_too_large`);let n=Mp(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=Np(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(!Dp.has(r.type))return W(`unknown_frame_type`);let a=k(Bt)(r);return te(a)?W(r.type===`ready`?`invalid_limits`:`invalid_frame`):kp(a.value)}function Fp(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=k(Bt)(e);if(te(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`,A);let n;try{n=Pa(t.value,Ya)}catch{return W(`invalid_frame`)}let r=t.value.type===`data`?E:Rn;return n.byteLength<=r?kp(n):W(`frame_too_large`)}var Ip={protocolMajor:1,protocolMinor:2},Lp=1,Rp=32,zp=Bi+_a.byteLength+Rp;function Bp(e){let t=0;for(let n of e)t+=n+Rp;return t}var Vp=`Relay E2EE negotiation send buffer is full.`,Hp=`Relay E2EE send is unavailable.`,Up=`RPC payload exceeds the maximum relay message size.`,Wp=`Relay peer does not support multi-frame RPC messages.`,Gp=`Relay send queue is full.`,Kp={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 qp(e){return G(Kp[e])}function Jp(){return{kind:`protocol`,retryable:!0,closeReason:`channel_rejected`}}var Yp=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=Ki(e.ticket);try{let e=Fp({type:`auth`,peer:`client`,...Ip,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 Ji;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(qp(`send_path_unusable`));let n;try{n=t.submit(e)}catch(e){throw this.#V(qp(`fatal_post_key`)),e}if(!n)throw Error(Hp)}#A(e){let t=ya(e,this.#W(this.#e));if(t.kind===`error`)throw e.fill(0),this.#$(G(`transfer_limit`)),Error(t.reason===`peer_unsupported`?Wp:Up);for(let e of t.payloads)this.#X(Uint8Array.from(e))}#j(e,t){if(e.byteLength>lo(t).plaintextCeiling)throw Error(Up);let n=ha(e.byteLength,this.#W(t));if(n.kind===`error`)throw Error(n.reason===`peer_unsupported`?Wp:Up);let r=ha(32+e.byteLength,this.#W(t));if(r.kind===`error`)throw Error(r.reason===`peer_unsupported`?Wp:Up);let i=Math.max(Bp(n.payloadBytes),Bp(r.payloadBytes)),a=Math.max(0,Ri(t)-zp);if(this.bufferedAmount+i>a)throw Error(Vp);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(qp(`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`,...Ip,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`)),Wn)}}#F(e){if(e.byteLength>263168)return this.#$(G(`frame_too_large`));let t=Uint8Array.from(e),n=Pp(t,this.#e?{expectedVersion:Ip}:{});if(t.fill(0),!n.ok)return this.#$(G(`protocol_invalid`));let r=n.value,i=r.type===`data`?(this.#e?.maxDataChunkBytes??262144)+Fn:this.#e?.maxControlFrameBytes??262144;if(e.byteLength>i)return this.#$(G(`frame_too_large`));if(r.type===`ping`)return this.#Q({type:`pong`,...Ip,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:Ip.protocolMajor,relayProtocolMinor:Ip.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(qp(`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(qp(`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`,...Ip,channelId:this.#t,reason:e.closeReason}),this.#$(e))}#H(e){let t=this.#e;if(this.#p||!this.#t||!t)return;let n=ha(e,this.#W(t));if(n.kind===`error`)return;let r=Bp(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=ya(e,this.#W(t));if(n.kind===`error`)return!1;for(let e of n.payloads){let t=Uint8Array.from(e),n=t.byteLength+Rp;this.#s.push({bytes:t,reservedBytes:n}),this.#c+=n}return this.#Z(),!0}#W(e){return{maxChunkBytes:e.maxDataChunkBytes,maxMessageBytes:Math.min(M,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`,...Ip,channelId:this.#t})):this.#d&&e<=Math.floor(this.#e.maxQueuedBytes*.5)&&(this.#d=!1,this.#Q({type:`flow.resume`,...Ip,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(qp(`fatal_post_key`))}};this.#T=this.#T.then(n,n)}#X(e){let t=this.#e,n=e.byteLength+Rp;if(this.bufferedAmount+n>t.maxQueuedBytes-t.maxControlFrameBytes)throw e.fill(0),this.#$(G(`slow_consumer`)),Error(Gp);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`,...Ip,channelId:this.#t,sequence:n,payload:t.bytes}),t.bytes.fill(0)}this.#M()}}#Q(e){if(this.#p||this.options.socket.readyState!==Lp)return;let t=Fp(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)}},Xp=`c2n`,Zp=Object.freeze({kind:`rejected`}),Qp=Object.freeze({kind:`claimed`}),$p={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 em(e){let t=e.host,n=()=>t.now(),r=e.onDiagnostic??(()=>void 0),i=lo(t.limits),a=new Cp({secrets:e.secrets,suite:e.suite,sessionBindingHash:e.sessionBindingHash,sendDirection:Xp,plaintextCeiling:i.establishable?i.plaintextCeiling:0,...e.testOnlySyntheticSendState===void 0?{}:{testOnlySyntheticSendState:e.testOnlySyntheticSendState},...e.testOnlySyntheticReceiveState===void 0?{}:{testOnlySyntheticReceiveState:e.testOnlySyntheticReceiveState}}),o=new nf({sessionBindingHash:e.sessionBindingHash,sendDirection:Xp}),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 Zp;s=!0;let i=o.noteFatal();return await g(async()=>{!a.sendPathUsable||!o.mayProtectTerminalError||(await _(3,$d(n))).kind===`protected`&&o.noteTerminalErrorTransmitted()}),m(),r({phase:`post_key`,row:e,verdict:i}),t.close(qp(`fatal_post_key`)),Zp}function y(e){if(s)return;s=!0;let n=o.noteFatal();m(),r({phase:`post_key`,row:`Q10`,verdict:n}),t.close(qp(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(),Qp;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(),Qp;case`terminal_error`:return s||(s=!0,m(),r({phase:`post_key`,row:`local`,verdict:o.verdict}),t.close(qp(`fatal_post_key`))),Zp;case`fatal`:return v(c.row,1)}}async function k(e){if(s)return Zp;if(la(e).kind!==`envelope`)return v(`Q6`,1);let t=a.unprotect(e);return t.kind===`fatal`?v($p[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 tm=`Noise_IK_25519_ChaChaPoly_SHA256`,nm=`Noise_NX_25519_ChaChaPoly_SHA256`,rm=`ryco.relay-e2ee.exporter.v1`;function im(e){return e===`IK`?tm:nm}var am=Wa.outputLen,om=32,sm=32,cm=16,lm=65535,um=18446744073709551615n,dm=oo(rm),fm=new Uint8Array,pm=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 pm(e)}function mm(e,t){(!(e instanceof Uint8Array)||e.byteLength!==t)&&K(`invalid_key_material`)}function hm(e,t){return mm(e,t),Uint8Array.from(e)}function gm(...e){for(let t of e)if(t instanceof Uint8Array)try{ro(t)}catch{}}function _m(e,t){let n=Yf(Wa,t,e),r,i;try{r=Qf(Wa,n,void 0,2*am),i=r.slice(0,am);let e=r.slice(am);return[i,e]}catch(e){throw gm(i),e}finally{gm(n,r)}}function vm(e){(typeof e!=`bigint`||e<0n)&&K(`invalid_options`),e>=um&&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 ym(e){return(!(e instanceof Uint8Array)||e.byteLength!==am)&&K(`invalid_key_material`),Qf(Wa,e,dm,32)}var bm=class{#e=void 0;#t=0n;initializeKey(e){e.byteLength!==sm&&K(`invalid_key_material`),gm(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=vm(this.#t),i=Jf(n,r,e).encrypt(t);return ro(r),this.#t+=1n,i}decryptWithAd(e,t){let n=this.#e;if(n===void 0)return t;let r=vm(this.#t),i=Jf(n,r,e).decrypt(t);return ro(r),this.#t+=1n,i}erase(){gm(this.#e),this.#e=void 0,this.#t=0n}},xm=class{#e;#t;#n=new bm;constructor(e){let t=oo(e),n=new Uint8Array(am);t.byteLength<=am?n.set(t):n.set(Wa(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]=_m(this.#e,e);try{gm(this.#e),this.#e=t,this.#n.initializeKey(n)}catch(e){throw gm(n),e}}mixHash(e){let t=Wa(so(this.#t,e));gm(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]=_m(this.#e,fm),n;try{return n=ym(this.#e),this.erase(),{epochSecretC2N:e,epochSecretN2C:t,exporterSecret:n}}catch(r){throw gm(e,t,n),r}}erase(){gm(this.#e,this.#t),this.#n.erase()}},Sm={IK:[[`e`,`es`,`s`,`ss`],[`e`,`ee`,`se`]],NX:[[`e`],[`e`,`ee`,`s`,`es`]]},Cm=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&&mm(a,om);let o=e.testOnlyEphemeralSecretKey;o!==void 0&&mm(o,om);let s=e.remoteStaticPublicKey===void 0?void 0:hm(e.remoteStaticPublicKey,om);this.#e=n,this.#t=Sm[t],this.#a=s;let c=new xm(im(t));c.mixHash(e.prologue);let l=a===void 0?void 0:no.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=so(...t);return n.byteLength>lm&&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>lm&&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(om));this.#o=e,this.#n.mixHash(e);break}case`s`:{let e=n(this.#n.hasKey?om+cm:om),t=this.#n.decryptAndHash(e);t.byteLength!==om&&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&&gm(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=no.getPublicKey(e);return this.#c=void 0,{secretKey:e,publicKey:t}}let t=no.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=no.getSharedSecret(n.secretKey,r);try{this.#n.mixKey(i)}finally{gm(i)}}#h(){gm(this.#i?.secretKey,this.#r?.secretKey,this.#c),this.#i=void 0,this.#r=void 0,this.#c=void 0}},wm=`ryco.relay-e2ee.confirmation.v1`,Tm=`ryco.relay-e2ee.session.v1`;function Em(e,t){return!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:Cf(e,t)}function Dm(e){return Uint8Array.from(Pa(e,Ya))}function Om(e){return typeof e==`string`}function km(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function Am(e,t){return e instanceof Uint8Array?t===void 0||e.byteLength===t:!1}function jm(e){return Uint8Array.from(e)}function Mm(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=na(e.tier);if(!e.advertisedAdmittedPatterns.includes(t))return{kind:`unusable`,reason:`pattern_not_admitted`};let n=e.localSuitePreference.find(t=>Fi(t)&&e.advertisedSuiteRegistry.includes(t));return n===void 0||!Fi(n)?{kind:`unusable`,reason:`empty_suite_intersection`}:{kind:`usable`,selectedSuite:n}}var Nm=5,Pm=3;function Fm(e){return e===`native`||e===`web`}function Im(e){Fm(e.tier)||B(),Fi(e.selectedSuite)||B(),(!Array.isArray(e.offeredSuites)||e.offeredSuites.length===0||e.offeredSuites.length>8||!e.offeredSuites.every(km)||!e.offeredSuites.includes(e.selectedSuite))&&B(),Am(e.clientNonce,32)||B(),Am(e.contextCommitment,32)||B(),(!Am(e.noiseMessage1)||e.noiseMessage1.byteLength===0)&&B();let t=Dm([1,e.tier,e.selectedSuite,[...e.offeredSuites],jm(e.clientNonce),jm(e.contextCommitment),jm(e.noiseMessage1)]);return ba(1,t)}function Lm(e){(!Am(e.clientPrekeyTranscript)||e.clientPrekeyTranscript.length===0)&&B();let t=qa(e.clientPrekeySignature);return Dm([jm(e.clientPrekeyTranscript),t,fa(e.accountId),Hi(e.intendedCapability),Vi(e.intendedRole)])}var Rm=new Uint8Array;function zm(e){Fi(e.acceptedSuite)||B(),(!Om(e.nodePrekeyId)||e.nodePrekeyId.length===0)&&B(),Am(e.contextCommitment,32)||B(),(!Am(e.noiseMessage2)||e.noiseMessage2.byteLength===0)&&B()}function Bm(e){zm(e);let t=Dm([e.acceptedSuite,e.nodePrekeyId,jm(e.contextCommitment),jm(e.noiseMessage2)]);return ba(2,t)}function Vm(e){let t=qi(e);if(t.kind===`error`||t.value.recordType!==2)return{kind:`error`,reason:`bad_record`};let n=Ba(t.value.body);if(n.kind===`error`)return{kind:`error`,reason:`malformed_body`};let r=n.value;if(!Array.isArray(r)||r.length!==Nm)return{kind:`error`,reason:`malformed_body`};let[i,a,o,s,c]=r;return!km(i)||!Om(a)||a.length===0||!Am(o,32)||!Am(s)||s.byteLength===0||!Am(c,32)?{kind:`error`,reason:`malformed_body`}:{kind:`ok`,value:{acceptedSuite:i,nodePrekeyId:a,contextCommitment:o,noiseMessage2:s,serverConfirmation:c}}}function Hm(e){let t=Ba(e);if(t.kind===`error`)return{kind:`error`,reason:`malformed_body`};let n=t.value;if(!Array.isArray(n)||n.length!==Pm)return{kind:`error`,reason:`malformed_body`};let[r,i,a]=n;return!Om(r)||!Om(i)||!Am(a,32)?{kind:`error`,reason:`malformed_body`}:{kind:`ok`,value:{channelOpenCapability:r,channelOpenEffectiveRole:i,nodeAgreementKeyFingerprint:a}}}function Um(e){let t=Ba(e);return(t.kind===`error`||!Array.isArray(t.value))&&B(),t.value}function Wm(e){return(!Am(e.clientHelloWireBytes)||e.clientHelloWireBytes.byteLength===0||!Am(e.serverAcceptTbsWireBytes)||e.serverAcceptTbsWireBytes.byteLength===0)&&B(),Wa(Dm([wm,jm(e.clientHelloWireBytes),jm(e.serverAcceptTbsWireBytes),Um(e.contextBlock)]))}function Gm(e,t){return(!Am(e)||!Am(t,32))&&B(),Ha(Wa,e,t)}function Km(e){(!Am(e.clientHelloWireBytes)||e.clientHelloWireBytes.byteLength===0||!Am(e.serverAcceptWireBytes)||e.serverAcceptWireBytes.byteLength===0)&&B();let t=Wa(Dm([Tm,jm(e.clientHelloWireBytes),jm(e.serverAcceptWireBytes),Um(e.contextBlock)]));return t.byteLength!==32&&B(),t}function qm(e,t){return{kind:`fatal`,row:e,reason:t}}function Jm(e){let t=ia({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:Za(`agreement`,e.advertised.agreementPublicKey),nodeContinuityChainTranscripts:e.advertised.continuityChainTranscripts,nodeContinuityId:e.advertised.continuityId,client:e.client});return{block:t,commitment:za(t)}}function Ym(e,t,n){return t===e.channelOpenCapability&&n===e.channelOpenEffectiveRole}function Xm(e){return e+ta}var Zm=class{#e;#t;#n=`created`;#r;#i;#a;#o;#s;constructor(e){if(!Fi(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(qm(`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(!Ym(n.channel,n.intendedCapability,n.intendedRole))return this.#u(qm(`P13`,`context_mismatch`));let i=r.tier===`native`?Jm({channel:n.channel,advertised:n.advertised,suite:n.selectedSuite,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole,client:{tier:`native`,accountId:r.accountId,identityFingerprint:Za(`client-identity`,r.identityPublicKey),agreementFingerprint:Za(`agreement`,r.agreementPublicKey)}}):Jm({channel:n.channel,advertised:n.advertised,suite:n.selectedSuite,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole,client:{tier:`web`}}),a=oa({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(!Em(no.getPublicKey(r.agreementSecretKey),r.agreementPublicKey))throw TypeError(`Relay E2EE client agreement secret key does not match its certificate key.`);o=Lm({clientPrekeyTranscript:r.prekeyTranscript,clientPrekeySignature:r.prekeySignature,accountId:r.accountId,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole})}else o=Rm;let s=new Cm({pattern:na(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(qm(`P10`,`noise`))}let l=Im({tier:this.#t,selectedSuite:n.selectedSuite,offeredSuites:n.offeredSuites,clientNonce:n.testOnlyClientNonce??Da(32),contextCommitment:i.commitment,noiseMessage1:c});return this.#r=s,this.#i=l,this.#a=i.block,this.#o=i.commitment,this.#s=Xm(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(qm(`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(qm(`P16`,`handshake_spent`));if(this.deadlineExpired(t))return this.#u(qm(`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&&hp(o),this.destroy(),e}}#l(e){let{payload:t,noise:n,helloRecord:r,contextBlock:i,contextCommitment:a}=e,o=Vm(t);if(o.kind===`error`)return this.#u(o.reason===`bad_record`?qm(`P3`,`record_bounds`):qm(`P16`,`accept_mismatch`));let s=o.value;if(s.acceptedSuite!==this.#e.selectedSuite||s.nodePrekeyId!==this.#e.advertised.prekeyId)return this.#u(qm(`P16`,`accept_mismatch`));if(!Em(s.contextCommitment,a))return this.#u(qm(`P13`,`context_mismatch`));let c;try{c=n.readMessage(s.noiseMessage2)}catch{return this.#u(qm(`P10`,`noise`))}let l=n.remoteStaticPublicKey;if(l===void 0||!Em(l,this.#e.advertised.agreementPublicKey))return this.#u(qm(`P16`,`accept_mismatch`));let u=Hm(c);if(u.kind===`error`)return this.#u(qm(`P16`,`accept_mismatch`));let d=u.value;if(d.channelOpenCapability!==this.#e.channel.channelOpenCapability||d.channelOpenEffectiveRole!==this.#e.channel.channelOpenEffectiveRole||!Em(d.nodeAgreementKeyFingerprint,Za(`agreement`,this.#e.advertised.agreementPublicKey)))return this.#u(qm(`P13`,`context_mismatch`));let f;try{f=mp(n)}catch{return this.#u(qm(`P10`,`noise`))}e.holdSecrets(f);let p=Bm({acceptedSuite:this.#e.selectedSuite,nodePrekeyId:s.nodePrekeyId,contextCommitment:s.contextCommitment,noiseMessage2:s.noiseMessage2}),m=Wm({clientHelloWireBytes:r,serverAcceptTbsWireBytes:p,contextBlock:i});if(!Em(Gm(f.serverConfirmationKey,m),s.serverConfirmation))return hp(f),this.#u(qm(`P16`,`confirmation_mismatch`));let h=Km({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 Qm=new TextEncoder;function $m(e){let t;try{t=aa(e.connectedHubOrigin)}catch{return q(`connected_hub_origin_invalid`)}if(e.accountId!==void 0){let t=Qm.encode(e.accountId).byteLength;if(t===0||t>256)return q(`account_scope_invalid`)}let n=Ii(e.statement);if(n.kind===`error`)return q(n.failure);let r=n.value,i;try{i=Ui(r.transcript)}catch{return q(`identity_signature_invalid`)}if(!ka({algorithm:`ed25519`,publicKey:r.identityPublicKey,message:i,signature:r.signature}))return q(`identity_signature_invalid`);if(!Ga(Za(`node-identity`,r.identityPublicKey),r.identityFingerprint))return q(`identity_fingerprint_mismatch`);if(!Ga(Za(`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(!ea({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=Yi({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=Mm({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 eh=`ryco.relay-e2ee.web-sas.v1`,th=`node`;function nh(e){return Uint8Array.from(Pa(e,Ya))}function rh(e){let t=$a(e.nodeIdentityPublicKey),n=Ea(e.webEphemeralPublicKey);return nh([eh,th,eo,t,`web`,Ma,n])}function ih(e){(!(e.sessionBindingHash instanceof Uint8Array)||e.sessionBindingHash.byteLength!==32)&&B();let t=rh(e),n=Yf(Wa,t,e.sessionBindingHash),r=Qf(Wa,n,oo(eh),5);return{input:t,prk:n,output:r,display:ah(r)}}function ah(e){(!(e instanceof Uint8Array)||e.byteLength!==5||e.byteLength*8!=ra.chars*5||ra.chars!==ra.groups*ra.charsPerGroup)&&B();let t=``,n=0,r=0;for(let i of e)for(n=n<<8|i,r+=8;r>=5;)r-=5,t+=pa[n>>r&31];let i=[];for(let e=0;e<t.length;e+=ra.charsPerGroup)i.push(t.slice(e,e+ra.charsPerGroup));return i.join(ra.separator)}var J=Object.freeze({kind:`rejected`}),oh=Object.freeze({kind:`claimed`});function sh(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 ch(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(qp(`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(!lo(t.limits).establishable)return hp(e.secrets),b(`P14`);try{u=em({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),oh}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=ih({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()}},sa);function T(){m=t.setTimeout(()=>{m=void 0,!(a!==`negotiating`||!o)&&b(`P20`)},ta)}async function E(e){if(s)return b(`P4`);s=!0;let c=e===void 0?void 0:$m({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()+ua,!await D(c,!0)||a!==`negotiating`||o)return a===`closed`?J:oh}else if(c!==void 0&&(!await D(c,!1)||a!==`negotiating`||o))return a===`closed`?J:oh;return c===void 0||c.kind!==`verified`?n.selectionClass===`latched`?b(`P15`):(i({phase:`pre_key`,row:`K3`}),oh):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)},ua));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(),_(oh)},()=>{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 Zm({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:sh(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(),oh)}function M(e){let t=qi(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()?(hp(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`&&hp(e.secrets),J),()=>a===`negotiating`?b(`local`):J))}return N(c.receiveServerAccept(e,r()))}async function F(e){switch(la(e).kind){case`legacy-json`:{let t=co(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(la(e).kind){case`legacy-json`:{let t=co(e);return t.kind===`ok`||t.reason===`malformed`?(i({phase:`pre_key`,row:`K20`}),oh):{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 lh=new Set([ne.subscribeShell,ne.subscribeThread,ne.subscribeThreadWindow,xn.subscribeServerConfig,xn.subscribeServerLifecycle,xn.subscribeTerminalEvents,xn.subscribeVcsStatus]),uh=new Set([...lh,xn.subscribeAuthAccess]);function dh(e,t){return io(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`)&&lh.has(t.tag):!1}function fh(e){return dh(Qa.getState(),e)}function ph(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 mh(){return{nodeId:()=>Qa.getState().selectedNode?.id??null,generation:()=>Qa.getState().generation,isAuthenticated:()=>Qa.getState().accountStatus===`authenticated`,isCurrent:e=>Qa.getState().generation===e,authorizeRequest:fh,shouldReconnect:e=>{let t=Qa.getState();return e===t.generation&&t.accountStatus===`authenticated`&&t.selectedNode!==null&&(t.browserStatus===`current`||t.browserStatus===`synchronizing`)&&t.transportStatus!==`terminal-failure`},transportStatus:(e,t)=>Ka.transportStatus(e,t),sessionStatus:(e,t)=>Ka.sessionStatus(e,t),role:(e,t)=>Ka.role(e,t),failure:(e,t)=>Ka.failure(e,t),markDeliveryUnknown:e=>Ka.markDeliveryUnknown(e),connectionClosed:e=>Ka.connectionClosed(e),connectionRecovered:e=>{let t=Qa.getState();t.generation===e&&t.accountStatus===`authenticated`&&t.directoryStatus===`ready`&&t.browserStatus===`current`&&t.selectedNode!==null&&t.transportStatus!==`terminal-failure`&&Ua().timers.queueMicrotask(()=>{let n=Qa.getState();n.generation===e&&n.selectedNode?.id===t.selectedNode?.id&&Ka.retrySelectedNode()})}}}var hh=class{#e;#t=new Md;#n=new Map;#r=null;#i;#a=null;#o=0;#s=null;#c=null;#l=!1;constructor(e=mh()){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 Ja().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?.()??Ua().relayUrl()}catch(e){if(e instanceof Ca&&e.status===401)Ka.expireSession();else if(e instanceof Ca){let n=ph(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<=Ua().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}):Ua().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&&uh.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()}},gh=null;function _h(){return gh??=new hh,gh}function vh(){return gh?.hasPendingRequests()??!1}function yh(){gh?.reset(),gh=null}function bh(e){return e===`platform`||e===`cross-platform`?e:void 0}function xh(e){return e.filter(e=>ao.has(e))}function Sh(e){if(!(e instanceof PublicKeyCredential))throw Error(`Passkey ceremony was cancelled.`);return e}async function Ch(e,t){let n=typeof e==`object`&&e&&`challenge`in e&&e.challenge instanceof Uint8Array?e:da(e),r=Sh(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:$i(r.rawId),response:{clientDataJSON:$i(i.clientDataJSON),authenticatorData:$i(i.authenticatorData),signature:$i(i.signature),...i.userHandle?{userHandle:$i(i.userHandle)}:{}},type:`public-key`,clientExtensionResults:r.getClientExtensionResults(),...bh(r.authenticatorAttachment)?{authenticatorAttachment:bh(r.authenticatorAttachment)}:{}}}async function wh(e,t){let n=typeof e==`object`&&e&&`challenge`in e&&e.challenge instanceof Uint8Array?e:zi(e),r=Sh(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:$i(r.rawId),response:{clientDataJSON:$i(i.clientDataJSON),attestationObject:$i(i.attestationObject),...c?{transports:xh(c)}:{},...s===void 0?{}:{publicKeyAlgorithm:s},...a?{publicKey:$i(a)}:{},...o?{authenticatorData:$i(o)}:{}},type:`public-key`,clientExtensionResults:r.getClientExtensionResults(),...bh(r.authenticatorAttachment)?{authenticatorAttachment:bh(r.authenticatorAttachment)}:{}}}var Th={authenticate:(e,t)=>Ch(e,t),register:(e,t)=>wh(e,t)};function Eh(e){return e}var Dh={get:e=>bg().persistence.getSavedEnvironmentSecret(Eh(e)),set:(e,t)=>bg().persistence.setSavedEnvironmentSecret(Eh(e),t),remove:e=>bg().persistence.removeSavedEnvironmentSecret(Eh(e))},Oh={webSocketConstructor:(e,t)=>{let n=typeof t==`string`||t===void 0?t:Array.from(t);return new globalThis.WebSocket(e,n)}};function kh(){zr(ki)}function Ah(){return fs(pr)}function jh(){return fs(fr)}function Mh(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 Nh(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&&Mh(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(()=>{Mh(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 Ph=0,Fh=0,Ih=null,Lh=new Set;function Rh(){for(let e of Lh)e()}function zh(){return Ph>0}function Bh(){return Ph+=1,()=>{--Ph,Ph===0&&Ih&&Wh(Ih.id,null)}}function Vh(e){return Lh.add(e),()=>{Lh.delete(e)}}function Hh(){return Ih}function Uh(e){return new Promise(t=>{Ih?.resolve(null),Fh+=1,Ih={id:Fh,items:e,resolve:t},Rh()})}function Wh(e,t){if(!Ih||Ih.id!==e)return;let n=Ih;Ih=null,Rh(),n.resolve(t)}var Gh=6048e5;function Kh(e){return new Date(e+Gh).toISOString()}function qh(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Jh(e){if(!e.token||e.token.trim().length===0)return!1;let t=qh(e.expiresAt);return e.expiresAt!==void 0&&t===null?!1:t===null||t>e.nowMs}var Yh=`ryco:client-settings:v1`,Xh=`ryco:saved-environment-registry:v1`,Zh=lt({environmentId:oe,label:Ft,httpBaseUrl:Ft,wsBaseUrl:Ft,createdAt:Ft,lastConnectedAt:Ot(Ft),desktopSsh:Ze(lt({alias:Ft,hostname:Ft,username:Ot(Ft),port:Ot(on)})),bearerToken:Ze(Ft),bearerTokenSavedAt:Ze(Ft),bearerTokenExpiresAt:Ze(Ft)}),Qh=lt({version:Ze(on),records:Ze(pn(Zh))});function $h(){return typeof window<`u`}function eg(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 tg(e,t){return Jh({token:e.bearerToken,expiresAt:e.bearerTokenExpiresAt,nowMs:t})}function ng(e,t){return e.bearerToken?{...e,bearerTokenSavedAt:e.bearerTokenSavedAt??new Date(t).toISOString(),bearerTokenExpiresAt:e.bearerTokenExpiresAt??Kh(t)}:e}function rg(e){return eg(e)}function ig(){if(!$h())return null;try{return vi(Yh,Bn)}catch{return null}}function ag(e){$h()&&Ei(Yh,e,Bn)}function og(){if(!$h())return{};try{return vi(`ryco:saved-environment-registry:v1`,Qh)??{}}catch{return{}}}function sg(e){$h()&&Ei(Xh,e,Qh)}function cg(){return og().records??[]}function lg(e){sg({version:1,records:e})}function ug(){return cg().map(e=>eg(e))}function dg(e){let t=Date.now(),n=new Map(cg().map(e=>[e.environmentId,e]));lg(e.map(e=>{let r=n.get(e.environmentId);if(!r||!tg(r,t))return eg(e);let i=ng(r,t),a=i.bearerToken;if(!a)return eg(e);let o=i.bearerTokenSavedAt??new Date(t).toISOString(),s=i.bearerTokenExpiresAt??Kh(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 fg(e){let t=og(),n=t.records??[],r=n.find(t=>t.environmentId===e);if(!r?.bearerToken)return null;let i=Date.now();if(!tg(r,i))return mg(e),null;let a=ng(r,i);return(a.bearerTokenSavedAt!==r.bearerTokenSavedAt||a.bearerTokenExpiresAt!==r.bearerTokenExpiresAt)&&sg({version:t.version??1,records:n.map(t=>t.environmentId===e?a:t)}),r.bearerToken}function pg(e,t){let n=t.trim();if(n.length===0)return mg(e),!1;let r=og(),i=r.records??[],a=!1,o=Date.now();return sg({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:Kh(o)};return t.desktopSsh?Object.assign(r,{desktopSsh:t.desktopSsh}):r})}),a}function mg(e){let t=og();sg({version:t.version??1,records:(t.records??[]).map(t=>t.environmentId===e?rg(t):t)})}var hg;function gg(){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(gg())}function _g(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):uo()===`phone`&&zh()?Uh(e):Nh(e,t)},persistence:{getClientSettings:async()=>window.desktopBridge?window.desktopBridge.getClientSettings():ig(),setClientSettings:async e=>{if(window.desktopBridge)return window.desktopBridge.setClientSettings(e);ag(e)},getSavedEnvironmentRegistry:async()=>window.desktopBridge?window.desktopBridge.getSavedEnvironmentRegistry():ug(),setSavedEnvironmentRegistry:async e=>{if(window.desktopBridge)return window.desktopBridge.setSavedEnvironmentRegistry(e);dg(e)},getSavedEnvironmentSecret:async e=>window.desktopBridge?window.desktopBridge.getSavedEnvironmentSecret(e):fg(e),setSavedEnvironmentSecret:async(e,t)=>window.desktopBridge?window.desktopBridge.setSavedEnvironmentSecret(e,t):pg(e,t),removeSavedEnvironmentSecret:async e=>{if(window.desktopBridge)return window.desktopBridge.removeSavedEnvironmentSecret(e);mg(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 vg(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 yg(){if(!(typeof window>`u`))return hg||(window.nativeApi?(hg=vg(_g(),window.nativeApi),hg):(hg=_g(()=>{let e=Hr();if(!e)return;let t=e.environmentId?kE(e.environmentId)?.client:void 0;return t||l()?t:ME().client},{includeMcp:Hr()!==null}),hg))}function bg(){let e=yg();if(!e)throw Error(`Local API not found`);return e}function xg(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 Sg=$n({kv:{getRegistry:()=>bg().persistence.getSavedEnvironmentRegistry(),setRegistry:e=>bg().persistence.setSavedEnvironmentRegistry(e.map(e=>ci(e)))},secretKV:Dh}),Cg=xg(Sg.registryStore),X=xg(Sg.runtimeStore),wg=Sg.hasHydrated,Tg=Sg.waitForHydration,Eg=Sg.list,Dg=Sg.get,Og=Sg.persistRecord,kg=Sg.readBearerToken,Ag=Sg.writeBearerToken,jg=Sg.removeBearerToken;Sg.resetForTests,Sg.resetRuntimeForTests,Sg.getRuntime;function Mg(e){if(l())return null;let t=Hr();return t?.environmentId===e?li(t):Dg(e)?.httpBaseUrl??null}function Ng(e){let t=Mg(e.environmentId);if(!t)throw Error(`Unable to resolve HTTP base URL for environment ${e.environmentId}.`);let n=new URL(br(t));return n.pathname=e.pathname,e.searchParams&&(n.search=new URLSearchParams(e.searchParams).toString()),n.toString()}function Pg(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 Fg=new Map,Ig=Lc({canReadConnections:()=>!0,readClient:e=>kE(e)?.client??null});function Lg(e){return Fg.get(e)??Ig.read(e)}function Rg(e,t){return Fg.get(e)??(t?Ic(t):void 0)}function zg(e){let t=Lg(e);if(!t)throw Error(`Environment API not found for environment ${e}`);return t}Object.freeze({entries:[],truncated:!1});var Bg=Object.freeze({data:null,isLoading:!1,isFetching:!1,error:null}),Vg=Bg,Hg=ni(Bg).pipe(Fr,kr(`project-search-entries:null`)),Ug=new Set,Wg=new Map,Gg=hr(e=>(Ug.add(e),ni(Bg).pipe(Fr,kr(`project-search-entries:${e}`))));function Kg(e,t,n){return`${e}::${t}::${n}`}function qg(e){return e.environmentId===null||e.cwd===null?null:Kg(e.environmentId,e.cwd,e.limit??80)}function Jg(e){return e===null?Hg:Gg(e)}function Yg(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 Xg(e,t,n){let r=Kg(e,t,n),i=Wg.get(r);return i||(i={environmentId:e,cwd:t,limit:n,token:0,inFlightQuery:null,lastInput:null,observerCount:0,cache:new Map},Wg.set(r,i)),i}function Zg(e,t){let n=Gg(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 Qg(e){let t=z.get(Gg(e));Zg(e,{data:t.data,isLoading:t.data===null,isFetching:!0,error:null})}function $g(e,t){Zg(e,{data:t,isLoading:!1,isFetching:!1,error:null})}function e_(e,t){Zg(e,{data:z.get(Gg(e)).data,isLoading:!1,isFetching:!1,error:t})}function t_(e,t,n){let r=n.query,i=++t.token;t.inFlightQuery=r,Qg(e);let a;try{a=zg(n.environmentId)}catch(n){t.token===i&&(t.inFlightQuery=null,e_(e,n_(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,$g(e,n))}).catch(n=>{t.token===i&&(t.inFlightQuery=null,e_(e,n_(n)))})}function n_(e){return e instanceof Error?e:Error(String(e))}function r_(e,t){let n=Yg(e);if(n===null)return;let r=Kg(n.environmentId,n.cwd,n.limit),i=Xg(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){$g(r,e.result);return}if(i.inFlightQuery===n.query)return}t_(r,i,n)}function i_(e){if(e.environmentId===null||e.cwd===null)return;let t=Xg(e.environmentId,e.cwd,e.limit??80);t.observerCount+=1}function a_(e){let t=qg(e);if(t===null)return;let n=Wg.get(t);n&&n.observerCount>0&&--n.observerCount}function o_(e){let t=e?.environmentId??null,n=e?.cwd??null;for(let e of Wg.values())(t===null||e.environmentId===t)&&(n===null||e.cwd===n)&&(e.cache.clear(),e.observerCount>0&&e.lastInput!==null&&r_(e.lastInput,{force:!0}))}var s_=Object.freeze({data:null,isLoading:!1,isFetching:!1,error:null,isPending:!0}),c_=s_,l_=`\0`,u_=new Set,d_=hr(e=>(u_.add(e),ni(s_).pipe(Fr,kr(`filesystem-browse:${e}`)))),f_=ni(s_).pipe(Fr,kr(`filesystem-browse:null`)),p_=new Map;function m_(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}${l_}${t??``}${l_}${e.partialPath}`;return{environmentId:e.environmentId,partialPath:e.partialPath,cwd:t,staleTime:e.staleTime??3e4,compositeKey:n}}function h_(e){return m_(e)?.compositeKey??null}function g_(e){return e===null?f_:d_(e)}function __(e,t){z.set(d_(e),t)}function v_(e){return z.get(d_(e))}async function y_(e){let t=++e.fetchToken;e.fetching=!0;let n=v_(e.compositeKey);__(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?Lg(e.environmentId):r;if(!i){if(t!==e.fetchToken)return;e.fetching=!1,__(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,__(e.compositeKey,{data:n,isLoading:!1,isFetching:!1,error:null,isPending:!1})}catch(n){if(t!==e.fetchToken)return;e.fetching=!1;let r=n_(n);__(e.compositeKey,{data:v_(e.compositeKey).data,isLoading:!1,isFetching:!1,error:r,isPending:!1})}}function b_(e){let t=p_.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},p_.set(e.compositeKey,t)),t}function x_(e){let t=b_(e),n=t.hasData&&Date.now()-t.lastFetchedAt>=t.staleTime;!t.fetching&&(!t.hasData||n)&&y_(t)}function S_(e,t){let n=m_(e);if(n===null)return;let r=b_(n);if(!t?.force){if(r.hasData&&Date.now()-r.lastFetchedAt<n.staleTime){__(n.compositeKey,{data:r.lastResult,isLoading:!1,isFetching:!1,error:null,isPending:!1});return}if(r.fetching)return}y_(r)}function C_(e,t){let n=m_(e);if(n===null)return()=>void 0;let r=b_(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,x_(n),()=>{let e=p_.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 w_(e){S_(e)}function T_(){for(let e of Ug)z.set(Gg(e),Bg);Ug.clear(),Wg.clear();for(let e of p_.values())e.fetchToken+=1;p_.clear();for(let e of u_)z.set(d_(e),s_);u_.clear()}function E_(e){return JSON.stringify([e.environmentId??null,e.threadId,e.fromTurnCount,e.toTurnCount,e.ignoreWhitespace,e.cacheScope??null])}function D_(e){return e.fromTurnCount===0?Te(Ge)({threadId:e.threadId,toTurnCount:e.toTurnCount,ignoreWhitespace:e.ignoreWhitespace}).pipe(Tt(e=>({kind:`fullThreadDiff`,input:e}))):Te(Qe)({threadId:e.threadId,fromTurnCount:e.fromTurnCount,toTurnCount:e.toTurnCount,ignoreWhitespace:e.ignoreWhitespace}).pipe(Tt(e=>({kind:`turnDiff`,input:e})))}function O_(e){return(e.enabled??!0)&&!!e.environmentId&&!!e.threadId&&m(D_(e))}function k_(e){return e instanceof Error?e.message:typeof e==`string`?e:``}function A_(e){let t=k_(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 j_(e){let t=k_(e).toLowerCase();return t.includes(`exceeds current turn count`)||t.includes(`checkpoint is unavailable for turn`)||t.includes(`filesystem checkpoint is unavailable`)}function M_(e,t){return j_(t)?e<12:e<3}function N_(e,t){return j_(t)?Math.min(5e3,250*2**(e-1)):Math.min(1e3,100*2**(e-1))}async function P_(e){let t=D_(e);if(!e.environmentId||!e.threadId||Me(t))throw Error(`Checkpoint diff is unavailable.`);let n=zg(e.environmentId);return t.value.kind===`fullThreadDiff`?await n.orchestration.getFullThreadDiff(t.value.input):await n.orchestration.getTurnDiff(t.value.input)}var F_=Object.freeze({data:null,error:null,isLoading:!1}),I_=Object.freeze({data:null,error:null,isLoading:!0}),L_=F_,R_=ni(L_).pipe(Fr,kr(`checkpoint-diff:disabled`)),z_=new Set,B_=hr(e=>(z_.add(e),ni(I_).pipe(Fr,kr(`checkpoint-diff:${e}`)))),V_=new Map,H_=new Map,U_=()=>void 0;function W_(e,t){z.set(B_(e),t)}function G_(e){return z.get(B_(e))}function K_(e){return new Promise(t=>{setTimeout(t,e)})}function q_(e){let t=++e.generation;e.fetching=!0;let n=G_(e.key);W_(e.key,{data:n.data,error:null,isLoading:n.data===null}),(async()=>{let n=0;for(;;)try{let n=await P_(e.input);if(e.generation!==t)return;e.fetching=!1,e.hasResolved=!0,W_(e.key,{data:n,error:null,isLoading:!1});return}catch(r){let i=Error(A_(r),{cause:r});if(n+=1,e.generation!==t)return;if(!M_(n,i)){e.fetching=!1,W_(e.key,{data:null,error:i,isLoading:!1});return}if(await K_(N_(n,i)),e.generation!==t)return}})()}function J_(e,t){let n=H_.get(e);if(n){n.add(t);return}H_.set(e,new Set([t]))}function Y_(e){if(!O_(e)||e.threadId===null)return U_;let t=E_(e),n=V_.get(t);return n||(n={key:t,input:e,threadId:e.threadId,refCount:0,generation:0,hasResolved:!1,fetching:!1},V_.set(t,n),J_(e.threadId,t)),n.refCount+=1,!n.hasResolved&&!n.fetching&&q_(n),()=>{let e=V_.get(t);e&&(e.refCount=Math.max(0,e.refCount-1))}}function X_(e){if(e.hasResolved=!1,e.refCount>0){q_(e);return}e.generation+=1,e.fetching=!1}function Z_(){for(let e of V_.values())X_(e)}function Q_(){for(let e of V_.values())e.generation+=1;V_.clear(),H_.clear();for(let e of z_)W_(e,I_);z_.clear()}function $_(){return Jc(Zn,rr.origin())}var ev=e=>$_().bootstrapRemoteBearerSession(e),tv=e=>$_().fetchRemoteSessionState(e),nv=e=>$_().fetchRemoteEnvironmentDescriptor(e),rv=e=>$_().resolveRemoteWebSocketConnectionUrl(e);function iv(e){return Qc(e,rr.origin(),{readPairingToken:Oi,readHostedPairingRequest:fo})}var av=Object.freeze({lastSnapshotSequence:null,lastEventSequence:null,highestSequence:null,eventCount:0,snapshotCount:0,gapCount:0,lastGap:null,updatedAt:null});function ov(){return new Date().toISOString()}function sv(e,t,n){let r=e??av,i=r.highestSequence===null?t:Math.max(r.highestSequence,t);return{...r,lastSnapshotSequence:t,highestSequence:i,snapshotCount:r.snapshotCount+1,updatedAt:n}}function cv(e,t,n){let r=e??av,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 lv=c()(e=>({byEnvironment:{},recordSnapshot:(t,n)=>e(e=>({byEnvironment:{...e.byEnvironment,[t]:sv(e.byEnvironment[t],n,ov())}})),recordEvent:(t,n)=>e(e=>({byEnvironment:{...e.byEnvironment,[t]:cv(e.byEnvironment[t],n,ov())}})),reset:()=>e({byEnvironment:{}})}));function uv(e,t){try{lv.getState().recordSnapshot(e,t)}catch{}}function dv(e,t){try{lv.getState().recordEvent(e,t)}catch{}}var fv={recordEvent:dv,recordSnapshot:uv};function pv(e){return er({...e,pushSequenceMonitor:fv})}Nn()(`@ryco/client-runtime/platform/Endpoint`),Nn()(`@ryco/client-runtime/platform/Socket`),Nn()(`@ryco/client-runtime/platform/AppLifecycle`),Nn()(`@ryco/client-runtime/platform/KV`),Nn()(`@ryco/client-runtime/platform/SecretKV`),Nn()(`@ryco/client-runtime/platform/PasskeyCeremony`),Nn()(`@ryco/client-runtime/platform/SessionCredentials`),Nn()(`@ryco/client-runtime/platform/DpopSigner`),Nn()(`@ryco/client-runtime/platform/PairingCredentialSource`),Nn()(`@ryco/client-runtime/platform/AttachmentCodec`),Nn()(`@ryco/client-runtime/platform/Clock`),Nn()(`@ryco/client-runtime/platform/FrameScheduler`);var mv=Tn({span(e){return new vt(e)}}),hv={tracingLayer:N(qt,mv),performanceEnabled:()=>!1,recordPerformance:()=>void 0};w(`@ryco/client-runtime/platform/Observability`,{defaultValue:()=>hv}),Nn()(`@ryco/client-runtime/platform/ClientRuntimeConfig`);var gv={clock:{now:()=>Date.now()},frameScheduler:{scheduleFrame:e=>void Promise.resolve().then(e)},observability:hv,isHostedHubMode:()=>!1,resolveAttachmentPreviewUrl:({attachmentId:e})=>e},_v=null;function vv(e){_v=e}function yv(e){_v=null,gv=e}function bv(){if(_v){let e=_v;_v=null,e()}return gv}var xv=`context-compaction`,Sv=Wt(Pe);function Cv(e){return e.kind===xv}function wv(e){if(e.kind!==`context-handoff`)return!1;try{let t=Sv(e.payload);return t.status===`consumed`||t.status===`failed`||t.status===`delivery-uncertain`}catch{return!1}}function Tv(e){return Cv(e)||wv(e)}function Ev(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=>Tv(e)&&!r.has(e.id));return i.length===0?[...n]:[...i,...n]}var Dv=[],Ov=[],kv=[],Av=[],jv={},Mv={},Nv={},Pv={},Fv=new WeakMap,Iv=new WeakMap;function Lv(e,t,n){if(!e||e.length===0||!t)return n;let r=Fv.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||Fv.set(e,o),a}function Rv(e,t){return Lv(e.messageIdsByThreadId[t],e.messageByThreadId[t]??jv,Dv)}function zv(e,t){return Lv(e.activityIdsByThreadId[t],e.activityByThreadId[t]??Mv,Ov)}function Bv(e,t){return Lv(e.proposedPlanIdsByThreadId[t],e.proposedPlanByThreadId[t]??Nv,kv)}function Vv(e,t){return Lv(e.turnDiffIdsByThreadId[t],e.turnDiffSummaryByThreadId[t]??Pv,Av)}function Hv(e,t){let n=e.threadShellById[t];if(!n)return;let r=e.threadSessionById[t]??null,i=e.threadTurnStateById[t],a=Rv(e,t),o=zv(e,t),s=Bv(e,t),c=Vv(e,t),l=Iv.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 Iv.set(n,{session:r,turnState:i,messages:a,activities:o,proposedPlans:s,turnDiffSummaries:c,thread:u}),u}var Uv={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},Wv={activeEnvironmentId:null,environmentStateById:{}},Gv=2e3,Kv=500,qv=[],Jv=[],Yv=[],Xv=[];function Zv(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function Qv(e){return On(e.instanceId)?{...e,model:gi(e.instanceId,e.model)}:e}function $v(e){return e.map(e=>({...e}))}function ey(e){return{provider:Wy(e.providerName),providerInstanceId:e.providerInstanceId??void 0,status:Uy(e.status),orchestrationStatus:e.status,activeTurnId:e.activeTurnId??void 0,createdAt:e.updatedAt,updatedAt:e.updatedAt,...e.lastError?{lastError:e.lastError}:{}}}function ty(e,t){let n=t.attachments?.map(t=>t.type===`image`?{...t,...bv().isHostedHubMode()?{}:{previewUrl:bv().resolveAttachmentPreviewUrl({environmentId:e,attachmentId:t.id})}}:{...t});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 ny(e){return{id:e.id,turnId:e.turnId,planMarkdown:e.planMarkdown,implementedAt:e.implementedAt,implementationThreadId:e.implementationThreadId,createdAt:e.createdAt,updatedAt:e.updatedAt}}function ry(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(iy).map(e=>({path:e.path,kind:e.kind,additions:e.additions,deletions:e.deletions}))}}function iy(e){return e.kind!==`modified`||e.additions>0||e.deletions>0}function ay(e,t){return{id:e.id,environmentId:t,name:e.title,cwd:e.workspaceRoot,projectMetadataDir:e.projectMetadataDir,repositoryIdentity:e.repositoryIdentity??null,defaultModelSelection:e.defaultModelSelection?Qv(e.defaultModelSelection):null,customSystemPrompt:e.customSystemPrompt??null,customAvatarContentHash:e.customAvatarContentHash??null,preferredRemoteName:e.preferredRemoteName??null,createdAt:e.createdAt,updatedAt:e.updatedAt,scripts:$v(e.scripts)}}function oy(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 sy(e,t){return{id:e.id,environmentId:t,codexThreadId:null,projectId:e.projectId,title:e.title,modelSelection:Qv(e.modelSelection),runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,session:e.session?ey(e.session):null,messages:e.messages.map(e=>ty(t,e)),proposedPlans:e.proposedPlans.map(ny),error:Tr(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(ry),activities:e.activities.map(e=>({...e}))}}function cy(e,t){let n={id:e.id,environmentId:t,codexThreadId:null,projectId:e.projectId,title:e.title,modelSelection:Qv(e.modelSelection),runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,error:Tr(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?ey(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:Qv(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 ly(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 uy(e){return{latestTurn:e.latestTurn,...e.pendingSourceProposedPlan?{pendingSourceProposedPlan:e.pendingSourceProposedPlan}:{}}}function dy(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.threadId===t.threadId&&e.planId===t.planId}function fy(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 py(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&&dy(e.sourceProposedPlan,t.sourceProposedPlan)}function my(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 hy(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&&my(e.session,t.session)&&e.createdAt===t.createdAt&&e.archivedAt===t.archivedAt&&e.settledOverride===t.settledOverride&&e.settledAt===t.settledAt&&e.updatedAt===t.updatedAt&&py(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)&&gy(e.priority,t.priority)}function gy(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 _y(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&&fy(e.goal,t.goal)}function vy(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 yy(e,t){return e!==void 0&&py(e.latestTurn,t.latestTurn)&&dy(e.pendingSourceProposedPlan,t.pendingSourceProposedPlan)}function by(e,t){return e.includes(t)?[...e]:[...e,t]}function xy(e,t){return e.filter(e=>e!==t)}function Sy(e){return{ids:e.messages.map(e=>e.id),byId:Object.fromEntries(e.messages.map(e=>[e.id,e]))}}function Cy(e){return wy(e.activities)}function wy(e){return{ids:e.map(e=>e.id),byId:Object.fromEntries(e.map(e=>[e.id,e]))}}function Ty(e){return{ids:e.proposedPlans.map(e=>e.id),byId:Object.fromEntries(e.proposedPlans.map(e=>[e.id,e]))}}function Ey(e){return{ids:e.turnDiffSummaries.map(e=>e.turnId),byId:Object.fromEntries(e.turnDiffSummaries.map(e=>[e.turnId,e]))}}function Dy(e){return e.projectIds.flatMap(t=>{let n=e.projectById[t];return n?[n]:[]})}function Oy(e){return e.threadIds.flatMap(t=>{let n=Hv(e,t);return n?[n]:[]})}function ky(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]??qv,i=xy(n,t);if(i.length===0){let{[r]:t,...n}=e;e=n}else Zv(n,i)||(e={...e,[r]:i})}let a=e[n]??qv,o=by(a,t);Zv(a,o)||(e={...e,[n]:o}),e!==i.threadIdsByProjectId&&(i={...i,threadIdsByProjectId:e})}return i}function Ay(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=ly(t),o=uy(t),s=e.threadShellById[t.id],c=e.threadTurnStateById[t.id],l=ky(e,t.id,t.projectId,n?.projectId);if(_y(s,a)||(l={...l,threadShellById:{...l.threadShellById,[t.id]:a}}),my(n?.session??null,t.session)||(l={...l,threadSessionById:{...l.threadSessionById,[t.id]:t.session}}),yy(c,o)||(l={...l,threadTurnStateById:{...l.threadTurnStateById,[t.id]:o}}),n?.messages!==i.messages){let e=Sy(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=Cy(t);l={...l,activityIdsByThreadId:{...l.activityIdsByThreadId,[t.id]:e.ids},activityByThreadId:{...l.activityByThreadId,[t.id]:e.byId}}}if(n?.proposedPlans!==t.proposedPlans){let e=Ty(t);l={...l,proposedPlanIdsByThreadId:{...l.proposedPlanIdsByThreadId,[t.id]:e.ids},proposedPlanByThreadId:{...l.proposedPlanByThreadId,[t.id]:e.byId}}}if(n?.turnDiffSummaries!==t.turnDiffSummaries){let e=Ey(t);l={...l,turnDiffIdsByThreadId:{...l.turnDiffIdsByThreadId,[t.id]:e.ids},turnDiffSummaryByThreadId:{...l.turnDiffSummaryByThreadId,[t.id]:e.byId}}}return l}function jy(e,t){let n=e.threadShellById[t.shell.id],r=ky(e,t.shell.id,t.shell.projectId,n?.projectId);return _y(n,t.shell)||(r={...r,threadShellById:{...r.threadShellById,[t.shell.id]:t.shell}}),my(e.threadSessionById[t.shell.id]??null,t.session)||(r={...r,threadSessionById:{...r.threadSessionById,[t.shell.id]:t.session}}),yy(e.threadTurnStateById[t.shell.id],t.turnState)||(r={...r,threadTurnStateById:{...r.threadTurnStateById,[t.shell.id]:t.turnState}}),hy(e.sidebarThreadSummaryById[t.shell.id],t.summary)||(r={...r,sidebarThreadSummaryById:{...r.sidebarThreadSummaryById,[t.shell.id]:t.summary}}),r}function My(e,t){return Object.fromEntries(Object.entries(e).flatMap(([e,n])=>t.has(e)?[[e,n]]:[]))}function Ny(e,t){let n=e.threadShellById[t];if(!n)return e;let r=xy(e.threadIds,t),i=xy(e.threadIdsByProjectId[n.projectId]??qv,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 Py(e,t){let n=e.environmentStateById[t.environmentId];return n?nb(e,t.environmentId,Ny(n,t.threadId)):e}function Fy(e,t){let n=e.worktreeById??{},r=e.worktreeIds??Jv,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(vy(i,t)&&r.includes(t.id)&&c.includes(t.id))return e;if(a){let e=xy(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 Iy(e,t){let n=e.worktreeById??{},r=n[t];if(!r)return e;let{[t]:i,...a}=n,o=e.worktreeIdsByProjectId??{},s=xy(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:xy(e.worktreeIds??Jv,t),worktreeIdsByProjectId:c,worktreeById:a}}function Ly(e){return e===`error`?`error`:e===`missing`?`interrupted`:`completed`}function Ry(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 zy(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 By(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 Vy(e,t){return e.filter(e=>e.turnId===null||t.has(e.turnId))}function Hy(e,t){return e.filter(e=>e.turnId===null||t.has(e.turnId))}function Uy(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 Wy(e){return be(bn)(e)?e:bn.make(`codex`)}function Z(e,t,n){let r=Hv(e,t);if(!r)return e;let i=n(r);return i===r?e:Ay(e,i,r)}function Gy(e,t,n){let r=e.threadShellById[t];return!r||r.updatedAt===n?e:{...e,threadShellById:{...e.threadShellById,[t]:{...r,updatedAt:n}}}}function Ky(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 qy(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 Jy(e,t,n){let r=e.pendingMessagesByThreadId[t]??[],i=r.find(e=>e.id===n.id)?r.map(e=>e.id===n.id?qy(e,n):e):[...r,n];return{...e,pendingMessagesByThreadId:{...e.pendingMessagesByThreadId,[t]:i}}}function Yy(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 Xy(e,t,n){let r=ty(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 Jy(e,i,r);let a=e.messageIdsByThreadId[i]??Yv,o=e.messageByThreadId[i]??{},s=e.pendingMessagesByThreadId[i]??[],c=s.find(e=>e.id===r.id),l=o[r.id]??c,u=l?qy(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>Gv)){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=Yy(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:zy({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}:{}};yy(e,r)||(m={...m,threadTurnStateById:{...m.threadTurnStateById,[i]:r}})}}return Gy(m,i,t.occurredAt)}function Zy(e,t,n){let r=e.length>0?t[e[e.length-1]]:void 0;if(!r||Ry(r,n)<=0)return[...e,n.id];let i=[...e],a=i.findIndex(e=>{let r=t[e];return r?Ry(n,r)<0:!1});return a===-1?i.push(n.id):i.splice(a,0,n.id),i}function Qy(e,t){let n=t.payload.threadId;if(!e.threadShellById[n])return e;let r={...t.payload.activity},i=e.activityIdsByThreadId[n]??Xv,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=Zy(i.filter(e=>e!==r.id),l,r)):c=Zy(i,a,r),c.length>Kv){let e=wy(Ev(c.flatMap(e=>{let t=l[e];return t?[t]:[]}),Kv));c=e.ids,l=e.byId}return Gy({...e,activityIdsByThreadId:c===i?e.activityIdsByThreadId:{...e.activityIdsByThreadId,[n]:c},activityByThreadId:{...e.activityByThreadId,[n]:l}},n,t.occurredAt)}function $y(e){return{projectIds:e.map(e=>e.id),projectById:Object.fromEntries(e.map(e=>[e.id,e]))}}function eb(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 tb(e,t){return e.environmentStateById[t]??Uv}function nb(e,t,n){let r=e.environmentStateById[t]===n?e.environmentStateById:{...e.environmentStateById,[t]:n};return r===e.environmentStateById?e:{...e,environmentStateById:r}}function rb(e,t,n){let r=t.projects.map(e=>ay(e,n)),i=(t.worktrees??[]).map(e=>oy(e,n)),a=new Set(t.threads.map(e=>e.id)),o={...e,...$y(r),...eb(i),threadIds:[],threadIdsByProjectId:{},threadShellById:{},threadSessionById:{},threadTurnStateById:{},sidebarThreadSummaryById:{},messageIdsByThreadId:My(e.messageIdsByThreadId,a),messageByThreadId:My(e.messageByThreadId,a),pendingMessagesByThreadId:My(e.pendingMessagesByThreadId,a),activityIdsByThreadId:My(e.activityIdsByThreadId,a),activityByThreadId:My(e.activityByThreadId,a),proposedPlanIdsByThreadId:My(e.proposedPlanIdsByThreadId,a),proposedPlanByThreadId:My(e.proposedPlanByThreadId,a),turnDiffIdsByThreadId:My(e.turnDiffIdsByThreadId,a),turnDiffSummaryByThreadId:My(e.turnDiffSummaryByThreadId,a),threadHistoryByThreadId:My(e.threadHistoryByThreadId??{},a),threadHistoryLoadByThreadId:My(e.threadHistoryLoadByThreadId??{},a),bootstrapComplete:!0,hydratedFromCacheAt:void 0};for(let e of t.threads)o=jy(o,cy(e,n));return o}function ib(e,t,n){return nb(e,n,rb(tb(e,n),t,n))}function ab(e,t,n){let r=tb(e,n),i=Hv(r,t.id);return nb(e,n,Ay(r,sy(t,n),i))}var ob={oldestCursor:null,newestCursor:null,hasMoreBefore:!1};function sb(e,t){let n=e?.[t.collection];return{messages:e?.messages??ob,proposedPlans:e?.proposedPlans??ob,activities:e?.activities??ob,checkpoints:e?.checkpoints??ob,[t.collection]:{oldestCursor:t.page.oldestCursor??n?.oldestCursor??null,newestCursor:n?.newestCursor??t.page.newestCursor,hasMoreBefore:t.page.hasMoreBefore}}}function cb(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]=ty(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=wy(Ev(Object.values(r).toSorted(Ry),Kv));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]=ny(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]=ry(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]:sb(e.threadHistoryByThreadId?.[n],t)}}}function lb(e,t,n){let r=ab(e,t.thread,n),i=tb(r,n),{[t.thread.id]:a,...o}=i.threadHistoryLoadByThreadId??{};return nb(r,n,{...i,threadHistoryByThreadId:{...i.threadHistoryByThreadId,[t.thread.id]:t.history},threadHistoryLoadByThreadId:o})}function ub(e,t,n,r){return nb(e,r,cb(tb(e,r),t,n,r))}function db(e,t){let n=tb(e,t.environmentId);return nb(e,t.environmentId,{...n,threadHistoryLoadByThreadId:{...n.threadHistoryLoadByThreadId,[t.threadId]:{...n.threadHistoryLoadByThreadId?.[t.threadId],[t.collection]:t.loadState}}})}function fb(e,t,n){switch(t.type){case`project.created`:{let r=ay({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?Qv(t.payload.defaultModelSelection):null},...t.payload.scripts===void 0?{}:{scripts:$v(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:xy(e.projectIds,t.payload.projectId)}}case`thread.created`:{let r=Hv(e,t.payload.threadId);return Ay(e,sy({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 Ny(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 Ky(e,t.payload.threadId,{settledOverride:`settled`,settledAt:t.payload.settledAt,updatedAt:t.payload.updatedAt});case`thread.unsettled`:return Ky(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:Qv(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:Qv(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:zy({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 Xy(e,t,n);case`thread.session-set`:return Z(e,t.payload.threadId,e=>({...e,session:ey(t.payload.session),error:Tr(t.payload.session.lastError),latestTurn:t.payload.session.status===`running`&&t.payload.session.activeTurnId!==null?zy({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=ny(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=ry({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?zy({previous:e.latestTurn,turnId:t.payload.turnId,state:Ly(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=By(e.messages,r,t.payload.turnCount).slice(-2e3),a=Hy(e.proposedPlans,r).slice(-200),o=Vy(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:Ly(s.status??`ready`),requestedAt:s.completedAt,startedAt:s.completedAt,completedAt:s.completedAt,assistantMessageId:s.assistantMessageId??null},updatedAt:t.occurredAt}});case`thread.activity-appended`:return Qy(e,t);case`worktree.created`:return Fy(e,oy({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?Fy(e,{...n,archivedAt:t.payload.archivedAt,updatedAt:t.payload.archivedAt}):e}case`worktree.metaUpdated`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Fy(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?Fy(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?Fy(e,{...n,archivedAt:null,updatedAt:t.payload.restoredAt}):e}case`worktree.deleted`:return Iy(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 pb(e,t,n){switch(t.kind){case`project-upserted`:{let r=ay(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:xy(e.projectIds,t.projectId)}}case`thread-upserted`:return jy(e,cy(t.thread,n));case`worktree-upserted`:return Fy(e,oy(t.worktree,n));case`thread-removed`:return Ny(e,t.threadId);case`worktree-removed`:return Iy(e,t.worktreeId)}}function mb(e,t,n){if(t.length===0)return e;let r=bv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=tb(e,n),s=nb(e,n,t.reduce((e,t)=>fb(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 hb(e){return Object.entries(e.environmentStateById)}function gb(e,t){return t?tb(e,t):Uv}function _b(e,t){return Oy(gb(e,t))}function vb(e){return hb(e).flatMap(([,e])=>Dy(e))}function yb(e){return hb(e).flatMap(([,e])=>Oy(e))}function bb(e){return hb(e).flatMap(([,e])=>e.threadIds.flatMap(t=>{let n=e.threadShellById[t];return n?[n]:[]}))}function xb(e){return hb(e).flatMap(([e,t])=>t.threadIds.flatMap(n=>{let r=t.sidebarThreadSummaryById[n];return r&&r.environmentId===e?[r]:[]}))}function Sb(e){return hb(e).flatMap(([e,t])=>(t.worktreeIds??Jv).flatMap(n=>{let r=t.worktreeById?.[n];return r&&r.environmentId===e?[r]:[]}))}function Cb(e,t){if(!t)return[];let n=gb(e,t.environmentId);return(n.worktreeIdsByProjectId?.[t.projectId]??[]).flatMap(e=>{let t=n.worktreeById?.[e];return t?[t]:[]})}function wb(e,t){return t.length===0?[]:t.length===1?Cb(e,t[0]):t.flatMap(t=>Cb(e,t))}function Tb(e,t){if(!t)return[];let n=gb(e,t.environmentId);return(n.threadIdsByProjectId[t.projectId]??qv).flatMap(e=>{let t=n.sidebarThreadSummaryById[e];return t?[t]:[]})}function Eb(e,t){return t.length===0?[]:t.length===1?Tb(e,t[0]):t.flatMap(t=>Tb(e,t))}function Db(e,t){return t?gb(e,t.environmentId).projectById[t.projectId]:void 0}function Ob(e,t){return t?Hv(gb(e,t.environmentId),t.threadId):void 0}function kb(e,t){return t?gb(e,t.environmentId).threadShellById[t.threadId]!==void 0:!1}function Ab(e,t){return t?gb(e,t.environmentId).sidebarThreadSummaryById[t.threadId]:void 0}function jb(e,t,n){let r=Z(tb(e,t.environmentId),t.threadId,e=>e.error===n?e:{...e,error:n});return nb(e,t.environmentId,r)}function Mb(e,t,n){let r=bv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=nb(e,n,fb(tb(e,n),t,n));return i&&r.observability.recordPerformance(`web.store.orchestration.event.apply`,t,{durationMs:r.clock.now()-a}),o}function Nb(e,t,n){let r=bv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=nb(e,n,pb(tb(e,n),t,n));return i&&r.observability.recordPerformance(`web.store.orchestration.shell.apply`,t,{durationMs:r.clock.now()-a}),o}function Pb(e,t){return e.activeEnvironmentId===t?e:{...e,activeEnvironmentId:t}}function Fb(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 Ib(e,t,n){if(e.environmentStateById[n])return e;let r={...Uv,...$y(t.projects.filter(e=>e.environmentId===n)),...eb(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=jy(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 nb(e,n,r)}function Lb(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 nb(e,t,{...r,threadSessionById:i,sidebarThreadSummaryById:a,bootstrapComplete:!1,hydratedFromCacheAt:n})}function Rb(e,t,n,r){let i=Z(tb(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 nb(e,t.environmentId,i)}function zb(e,t,n,r,i){let a=tb(e,t),o=a.worktreeById?.[n];return o?nb(e,t,Fy(a,{...o,title:r,updatedAt:i})):e}var Bb=8;function Vb(e){let t=e.now??(()=>bv().clock.now()),n=e.schedule??(e=>bv().frameScheduler.scheduleFrame(e)),r=e.thresholdEventsPerMs??10,i=e.rateWindowMs??Bb,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=Nb(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=Vb({getState:t,commitState:t=>e(t)});return{...Wv,setActiveEnvironmentId:t=>{n.flush(),e(e=>Pb(e,t))},removeEnvironmentState:t=>{n.flush(),e(e=>Fb(e,t))},hydrateEnvironmentStateFromCache:(t,r)=>{n.flush(),e(e=>Ib(e,t,r))},demoteEnvironmentStateToCachedSnapshot:(t,r)=>{n.flush(),e(e=>Lb(e,t,r))},syncServerShellSnapshot:(t,r)=>{n.flush(),e(e=>ib(e,t,r))},syncServerThreadDetail:(t,r)=>{n.flush(),e(e=>ab(e,t,r))},syncServerThreadWindow:(t,r)=>{n.flush(),e(e=>lb(e,t,r))},syncServerThreadHistoryPage:(t,r,i)=>{n.flush(),e(e=>ub(e,t,r,i))},setServerThreadHistoryLoadState:t=>{n.flush(),e(e=>db(e,t))},applyOrchestrationEvent:(t,r)=>{n.flush(),e(e=>Mb(e,t,r))},applyOrchestrationEvents:(t,r)=>{n.flush(),e(e=>mb(e,t,r))},applyShellEvent:(e,t)=>n.enqueue(e,t),removeThread:t=>{n.flush(),e(e=>Py(e,t))},setThreadError:(t,r)=>{n.flush(),e(e=>jb(e,t,r))},setThreadBranch:(t,r,i)=>{n.flush(),e(e=>Rb(e,t,r,i))},setSidebarWorktreeTitle:(t,r,i,a)=>{n.flush(),e(e=>zb(e,t,r,i,a))}}});function Hb(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Ub(e){if(e.latestUserMessageAt)return Hb(e.latestUserMessageAt)??-1/0;let t=null;for(let n of e.messages??[]){if(n.role!==`user`)continue;let e=Hb(n.createdAt);e!==null&&(t=t===null?e:Math.max(t,e))}return t===null?Hb(e.updatedAt??e.createdAt)??-1/0:t}function Wb(e,t){return t===`created_at`?Hb(e.createdAt)??-1/0:Ub(e)}function Gb(e,t){return e.toSorted((e,n)=>{let r=Wb(n,t),i=Wb(e,t),a=r===i?0:r>i?1:-1;return a===0?n.id.localeCompare(e.id):a})}function Kb(e,t,n){return Gb(e.filter(e=>e.projectId===t&&e.archivedAt===null),n)[0]??null}function qb(e){return t=>e?gb(t,e.environmentId).projectById[e.projectId]:void 0}function Jb(e){let t,n,r;return i=>{let a=e(i);if(!a)return;let o=gb(i,a.environmentId);return r&&t===o&&n===a.threadId?r:(t=o,n=a.threadId,r=Hv(o,a.threadId),r)}}function Yb(e){return Jb(()=>e)}function Xb(e){return Jb(t=>{if(e){for(let[n,r]of Object.entries(t.environmentStateById))if(r.threadShellById[e])return{environmentId:n,threadId:e}}})}var Zb=(e,t,n)=>t||(n?{id:e,createdAt:n.createdAt,updatedAt:n.updatedAt,latestUserMessageAt:null}:null);function Qb(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=gb(c,e);if(n===l.threadIds&&r===l.sidebarThreadSummaryById&&i===l.threadShellById&&a===t)return s;let u=Gb(l.threadIds.flatMap(e=>{let t=Zb(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}}vv(()=>{yv({clock:{now:()=>Wu.now()},frameScheduler:{scheduleFrame:e=>Gu.scheduleFrame(e)},observability:jd,isHostedHubMode:()=>l(),resolveAttachmentPreviewUrl:({environmentId:e,attachmentId:t})=>Ng({environmentId:e,pathname:`/attachments/${encodeURIComponent(t)}`})})});function $b(e){switch(e.type){case`activity`:return e.hasRunningSubprocess;case`started`:case`restarted`:case`exited`:return!1;default:return null}}function ex(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 tx={enabled:()=>!1,now:()=>0,record:()=>void 0};function nx(){let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,n)=>{e.set(t,n)},removeItem:t=>{e.delete(t)}}}var rx=`ryco:terminal-state:v1`,ix=[],ax=200;function ox(e,t){return t===1&&e&&typeof e==`object`?{terminalStateByThreadKey:Object.fromEntries(Object.entries(e.terminalStateByThreadKey??{}).filter(([e])=>s(e)))}:{terminalStateByThreadKey:{}}}function sx(e){let t=[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))];return t.length>0?t:[bi]}function cx(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 lx(e){return`group-${e}`}function ux(e,t){let n=e,r=2;for(;t.has(n);)n=`${e}-${r}`,r+=1;return t.add(n),n}function dx(e,t){return e.findIndex(e=>e.terminalIds.includes(t))}function fx(e){return[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))]}function px(e,t){let n=new Set(t),r=new Set,i=[],a=new Set;for(let t of e){let e=fx(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():lx(e[0]??`default`);i.push({id:ux(o,a),terminalIds:e})}for(let e of t)r.has(e)||i.push({id:ux(lx(e),a),terminalIds:[e]});return i.length===0?[{id:lx(bi),terminalIds:[bi]}]:i}function mx(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 hx(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||!mx(r.terminalIds,i.terminalIds))return!1}return!0}function gx(e,t){return e.terminalOpen===t.terminalOpen&&e.terminalHeight===t.terminalHeight&&e.activeTerminalId===t.activeTerminalId&&e.activeTerminalGroupId===t.activeTerminalGroupId&&mx(e.terminalIds,t.terminalIds)&&mx(e.runningTerminalIds,t.runningTerminalIds)&&hx(e.terminalGroups,t.terminalGroups)}var _x=Object.freeze({terminalOpen:!1,terminalHeight:280,terminalIds:[bi],runningTerminalIds:[],activeTerminalId:bi,terminalGroups:[{id:lx(bi),terminalIds:[bi]}],activeTerminalGroupId:lx(bi)});function vx(){return{..._x,terminalIds:[..._x.terminalIds],runningTerminalIds:[..._x.runningTerminalIds],terminalGroups:Tx(_x.terminalGroups)}}function yx(){return _x}function bx(e){let t=sx(e.terminalIds),n=t.length>0?t:[bi],r=cx(e.runningTerminalIds,n),i=n.includes(e.activeTerminalId)?e.activeTerminalId:n[0]??`default`,a=px(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??lx(`default`)};return gx(e,c)?e:c}function xx(e){return gx(bx(e),_x)}function Sx(e){return e.trim().length>0}function Cx(e){return p(e)}function wx(e,t){return`${Cx(e)}\u0000${t}`}function Tx(e){return e.map(e=>({id:e.id,terminalIds:[...e.terminalIds]}))}function Ex(e,t,n,r){let i=wx(n,r.terminalId),a=e[i]??ix,o={id:t,event:r},s=a.length>=ax?[...a.slice(1),o]:[...a,o];return{terminalEventEntriesByKey:{...e,[i]:s},nextTerminalEventId:t+1}}function Dx(e){return{cwd:e.snapshot.cwd,worktreePath:e.snapshot.worktreePath}}function Ox(e,t,n){let r=bx(e);if(!Sx(t))return r;let i=!r.terminalIds.includes(t),a=i?[...r.terminalIds,t]:r.terminalIds,o=Tx(r.terminalGroups),s=dx(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=ux(lx(t),e);return o.push({id:n,terminalIds:[t]}),bx({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:n})}let c=o.findIndex(e=>e.id===r.activeTerminalGroupId);if(c<0&&(c=dx(o,r.activeTerminalId)),c<0){let e=new Set(o.map(e=>e.id)),t=ux(lx(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 bx({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:l.id})}function kx(e,t){let n=bx(e);return n.terminalOpen===t?n:{...n,terminalOpen:t}}function Ax(e,t){let n=bx(e);return!Number.isFinite(t)||t<=0||n.terminalHeight===t?n:{...n,terminalHeight:t}}function jx(e,t){return Ox(e,t,`split`)}function Mx(e,t){return Ox(e,t,`new`)}function Nx(e,t){let n=bx(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 Px(e,t){let n=bx(e);if(!n.terminalIds.includes(t))return n;let r=n.terminalIds.filter(e=>e!==t);if(r.length===0)return vx();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??lx(a);return bx({terminalOpen:n.terminalOpen,terminalHeight:n.terminalHeight,terminalIds:r,runningTerminalIds:n.runningTerminalIds.filter(e=>e!==t),activeTerminalId:a,terminalGroups:o,activeTerminalGroupId:s})}function Fx(e,t,n){let r=bx(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 Ix(e,t){return!t||t.threadId.length===0?yx():e[Cx(t)]??yx()}function Lx(e,t,n){if(t.threadId.length===0)return e;let r=Cx(t),i=Ix(e,t),a=n(i);if(a===i)return e;if(xx(a)){if(e[r]===void 0)return e;let{[r]:t,...n}=e;return n}return{...e,[r]:a}}function Rx(e,t,n){return!t||t.threadId.length===0||n.trim().length===0?ix:e[wx(t,n)]??ix}function zx(e){let t=e?.storage??nx(),n=e?.observability??tx;return c()(Ti(e=>{let t=(t,n)=>{e(e=>{let r=Lx(e.terminalStateByThreadKey,t,n);return r===e.terminalStateByThreadKey?e:{terminalStateByThreadKey:r}})};return{terminalStateByThreadKey:{},terminalLaunchContextByThreadKey:{},terminalEventEntriesByKey:{},nextTerminalEventId:1,setTerminalOpen:(e,n)=>t(e,e=>kx(e,n)),setTerminalHeight:(e,n)=>t(e,e=>Ax(e,n)),splitTerminal:(e,n)=>t(e,e=>jx(e,n)),newTerminal:(e,n)=>t(e,e=>Mx(e,n)),ensureTerminal:(e,n,r)=>t(e,e=>{let t=e;return e.terminalIds.includes(n)||(t=Mx(t,n)),r?.active===!1&&(t={...t,activeTerminalId:e.activeTerminalId,activeTerminalGroupId:e.activeTerminalGroupId}),(r?.active??!0)&&(t=Nx(t,n)),r?.open&&(t=kx(t,!0)),bx(t)}),setActiveTerminal:(e,n)=>t(e,e=>Nx(e,n)),closeTerminal:(e,n)=>t(e,e=>Px(e,n)),setTerminalLaunchContext:(t,n)=>e(e=>({terminalLaunchContextByThreadKey:{...e.terminalLaunchContextByThreadKey,[Cx(t)]:n}})),clearTerminalLaunchContext:t=>e(e=>{let n=Cx(t);if(!e.terminalLaunchContextByThreadKey[n])return e;let{[n]:r,...i}=e.terminalLaunchContextByThreadKey;return{terminalLaunchContextByThreadKey:i}}),setTerminalActivity:(e,n,r)=>t(e,e=>Fx(e,n,r)),recordTerminalEvent:(t,r)=>{let i=n.enabled(),a=i?n.now():0;e(e=>Ex(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=Cx(t),i=e.terminalStateByThreadKey,a=e.terminalLaunchContextByThreadKey;(r.type===`started`||r.type===`restarted`)&&(i=Lx(i,t,e=>{let t=e;return e.terminalIds.includes(r.terminalId)||(t=Mx(t,r.terminalId)),t=Nx(t,r.terminalId),t=kx(t,!0),bx(t)}),a={...a,[n]:Dx(r)});let o=$b(r);o!==null&&(i=Lx(i,t,e=>Fx(e,r.terminalId,o)));let s=Ex(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=Cx(t),r=Lx(e.terminalStateByThreadKey,t,()=>vx()),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=Cx(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:rx,version:2,storage:Ci(()=>t),migrate:ox,partialize:e=>({terminalStateByThreadKey:e.terminalStateByThreadKey})}))}var Bx=yi(typeof window<`u`&&!l()?window.localStorage:void 0),Vx=zx({storage:{getItem:e=>Bx.getItem(e),setItem:(e,t)=>{Bx.setItem(e,t)},removeItem:e=>{Bx.removeItem(e)}},observability:{enabled:Ni,now:Pi,record:(e,t,n)=>Mi(e,t,{durationMs:n})}}),Hx=Object.freeze({data:void 0,error:null,status:`pending`,fetchStatus:`idle`,dataUpdatedAt:0,errorUpdatedAt:0});function Ux(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 Wx(e){return Ux(e)}function Gx(e){return e instanceof Error?e:Error(String(e))}function Kx(e){return e===void 0||e===!0?3:e===!1?0:e}function qx(e){return Math.min(1e3*2**e,3e4)}function Jx(e){return new Promise(t=>setTimeout(t,e))}function Yx(e,t){if(t.length>e.length)return!1;for(let n=0;n<t.length;n+=1)if(Ux(e[n])!==Ux(t[n]))return!1;return!0}var Xx=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 Ux(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=Hx,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=Wx(e),n=this.cache.get(t);return n||(n={key:e,hash:t,state:Hx,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(Wx(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&&!Yx(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()}fenceActiveQueriesForEnvironment(e){for(let t of this.cache.values())[...t.observers].some(t=>t.environmentId===e)&&(t.fetchId+=1,t.promise=null,t.state.fetchStatus===`fetching`&&this.setState(t,{...t.state,fetchStatus:`idle`}))}async refreshActiveQueriesForEnvironment(e){let t=[];for(let n of this.cache.values()){let r=[...n.observers].filter(t=>t.environmentId===e),i=r[0];i&&(n.state.status!==`error`&&!r.some(e=>this.isStale(n.key,e.staleTime??0))||t.push(Promise.resolve(i.refetch()).catch(()=>void 0)))}await Promise.all(t)}async fetch(e,t,n={}){let r=this.ensureEntry(e);if(r.promise)return r.promise;let i=++r.fetchId,a=Kx(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=Gx(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 Jx(qx(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=Hx;this.cache.clear(),this.prefixIndex.clear()}};function Zx(){return Xx}function Qx(e){return e}function $x(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 eS(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 eS(e,t,n,n.status===`success`?t.select?t.select(n.data):n.data:void 0)}}}function tS(e){let t=Zx(),{queryKey:n}=e,r=Wx(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={...e.environmentId?{environmentId:e.environmentId}:{},staleTime:e.staleTime??0,refetch:()=>t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:!0})},r=t.addObserver(e.queryKey,n),a=u===`always`;return(a||t.isStale(e.queryKey,l))&&t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:a}),r},[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 Ai({lifecycle:ki,run:()=>t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:!0}),resolveDelayMs:()=>r,runImmediately:!1,jitterRatio:.05}).stop},[t,r,c,s]),eS(t,e,s,$x(s.status===`success`?s.data:void 0,e.select))}var nS=Object.freeze({status:`idle`,data:void 0,error:null,variables:void 0});function rS(e){let t=(0,V.useRef)(e);t.current=e;let n=(0,V.useRef)(nS),[,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=Gx(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(nS)},[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}}function iS(e,t,n){return e.generation===n&&e.selectedNode?.environmentId===t&&e.directoryStatus===`ready`&&e.selectionStatus===`online`&&e.transportStatus===`online`&&e.sessionStatus===`ready`&&e.sessionEstablished&&e.browserStatus===`current`}function aS(e){let t=new Map,n=new Map,r=new Map;return{begin(n){let i=(t.get(n)??0)+1;return t.set(n,i),r.delete(n),e.fence(n),i},ready(i,a,o=()=>!0){if(t.get(i)!==a||!o())return Promise.resolve(!1);let s=r.get(i);if(s?.generation===a)return s.promise;if(n.get(i)===a)return Promise.resolve(!0);let c=e.refresh(i).then(()=>t.get(i)===a&&(n.set(i,a),!0));r.set(i,{generation:a,promise:c});let l=()=>{r.get(i)?.promise===c&&r.delete(i)};return c.then(l,l),c},resetForTests(){t.clear(),n.clear(),r.clear()}}}var oS=aS({fence:e=>{Xx.fenceActiveQueriesForEnvironment(e),oi(e)},refresh:async e=>{await Promise.all([Xx.refreshActiveQueriesForEnvironment(e),ui(e)])}}),sS=class extends or{constructor(e,t){super(e,{observability:jd,socket:Oh},t)}},cS=class extends cr{constructor(e,t){super(e,{observability:jd,socket:Oh},t)}},lS=class extends Yr{constructor(e,t){super(e,{observability:jd,socket:Oh},t)}},uS=`ryco:version-mismatch-dismissals:v1`,dS=lt({keys:pn(Ft)});function fS(e){let t=e?.trim();return t&&t.length>0?t:null}function pS(e){let t=fS(ji),n=fS(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 mS(e){return pS(e?.environment.serverVersion)}function hS(e,t){return`${e}:${t.clientVersion}:${t.serverVersion}`}function gS(){try{return vi(`ryco:version-mismatch-dismissals:v1`,dS)??{keys:[]}}catch{return{keys:[]}}}function _S(e){try{Ei(uS,e,dS)}catch{}}function vS(e){return e?gS().keys.includes(e):!1}function yS(e){if(!e)return;let t=gS();t.keys.includes(e)||_S({keys:[...t.keys,e]})}function bS(e,t){let n=fS(e);return n?t?`${n} Hint: ${t.hint}`:n:t?.hint??null}var xS=`ryco:startup:`;function SS(){return typeof performance<`u`&&typeof performance.mark==`function`}function CS(e){return`${xS}${e}`}function wS(e){if(SS())try{performance.mark(CS(e))}catch{}}function TS(e,t,n){if(!(!SS()||typeof performance.measure!=`function`))try{performance.measure(`${xS}${e}`,{start:CS(t),end:CS(n)})}catch{}}var ES=new Map,DS=new Map;function OS(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 kS(e,t){let n=DS.get(e.hubOrigin);n===void 0&&t&&(n=new Map,DS.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 AS(e){OS(e,!0)?.add(e.nodeId)}function jS(e){return OS(e,!1)?.has(e.nodeId)??!1}function MS(e){return kS(e,!1)?.get(e.nodeId)}function NS(e,t){let n=kS(e,!0),r=n?.get(e.nodeId);(r===void 0||t>r)&&n?.set(e.nodeId,t)}function PS(){ES.clear(),DS.clear()}var FS=Object.freeze({status:`unavailable`,verificationCode:null}),IS=FS,LS=new Set,RS=[];function zS(e){if(e.status!==IS.status||e.verificationCode!==IS.verificationCode){IS=e;for(let e of LS)e()}}function BS(){return IS}function VS(e){return LS.add(e),()=>void LS.delete(e)}function HS(){RS=[...RS,`e2ee_policy_generation_regressed`].slice(-8);for(let e of LS)e()}function US(){if(RS.length!==0){RS=[];for(let e of LS)e()}}function WS(){zS({status:`negotiating`,verificationCode:null})}function GS(e){zS({status:e===`e2ee`?`web-unsigned`:`legacy`,verificationCode:e===`e2ee`?IS.verificationCode:null})}function KS(e){IS.status!==`unavailable`&&IS.status!==`legacy`&&zS({status:IS.status,verificationCode:e})}function qS(){zS(FS)}var JS=[1];function YS(){let e=globalThis;return e.isSecureContext===!0&&typeof e.crypto?.getRandomValues==`function`}var XS=YS(),ZS=null;function QS(){let e=globalThis.window?.location.origin;if(typeof e!=`string`||e.length===0)return null;let t=Qa.getState(),n=t.selectedNode;return t.accountStatus!==`authenticated`||t.account===null||n===null?null:{hubOrigin:e,accountId:t.account.id,nodeId:n.id}}function $S(e){let t=MS(e);return{hubOrigin:e.hubOrigin,selectionClass:jS(e)?`latched`:`legacy-eligible`,legacyPermitted:!0,pairingOnly:!1,localSuitePreference:JS,credentials:{tier:`web`},...t===void 0?{}:{acceptedPolicyGeneration:t},onStatement:t=>{if(t.kind===`invalid`&&t.reason===`policy_generation_regressed`){HS();return}if(!(`statement`in t))return;let n=MS(e);if(n!==void 0&&t.statement.policyGeneration<n)throw HS(),Error(`Web E2EE policy generation regressed.`);AS(e),NS(e,t.statement.policyGeneration)},onWebVerificationCode:KS}}function eC(e){return e.close(Jp()),{intercept:async()=>({kind:`rejected`}),submit:()=>!1,beginClose:async()=>`refused`,dispose:()=>void 0}}function tC(){if(!XS){GS(`legacy`);return}let e=QS();if(e===null)return eC;let t=$S(e);return e=>{let n={};ZS=n,WS();let r=ch({host:{...e,lockMode:t=>{e.lockMode(t),GS(t)}},attempt:t});return{...r,dispose:e=>{r.dispose(e),ZS===n&&(ZS=null,qS())}}}}var nC;function rC(){if(nC!==void 0)return nC;let e=Qa.getState().accountStatus===`authenticated`,t=Qa.subscribe(()=>{let t=Qa.getState().accountStatus;if(t===`authenticated`){e=!0;return}!e||t!==`signed-out`&&t!==`session-expired`||(e=!1,PS(),US(),qS())});return nC=()=>{nC=void 0,t()},nC}var iC=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 aC(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 oC(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 sC(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?oC(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 cC(e,t){return e.filter(e=>e.id!==t)}function lC(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 uC(e){return new Set(Object.entries(e).flatMap(([e,t])=>t.length>0?[e]:[]))}var dC=120;function fC(e){let t=e.trimmedPrompt.trim();return t.length>0?t.length>dC?`${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 pC(){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]:cC(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]:lC(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 mC=pC(),hC=c(e=>({open:!1,setOpen:t=>e(e=>e.open===t?e:{open:t})}));function gC(){return hC(_C)}function _C(e){return e.open}function vC(e){hC.getState().setOpen(e)}function yC(e){return`git:${e??``}`}var bC=new Map;function xC(e,t){let n=bC.get(e);return n||(n=new Set,bC.set(e,n)),n.add(t),()=>{let n=bC.get(e);n&&(n.delete(t),n.size===0&&bC.delete(e))}}function SC(e){let t=new Set;for(let n of e){let e=bC.get(n);if(e)for(let n of e)t.add(n)}for(let e of t)e()}var CC=new Set,wC=hr(e=>(CC.add(e),ni(0).pipe(Fr,kr(`git-mutation-running:${e}`))));function TC(e){return wC(e)}function EC(e){let t=wC(e);z.set(t,z.get(t)+1)}function DC(e){let t=wC(e);z.set(t,Math.max(0,z.get(t)-1))}var OC=15e3,kC=6e4,AC=100,jC=Object.freeze({pages:[],isPending:!1,isFetchingNextPage:!1,error:null}),MC=Object.freeze({...jC,isPending:!0}),NC=ni(jC).pipe(Fr,kr(`git-branches:null`)),PC=new Set,FC=hr(e=>(PC.add(e),ni(MC).pipe(Fr,kr(`git-branches:${e}`)))),IC=()=>void 0,LC=new Map;function RC(e){return`${e.environmentId}\u0000${e.cwd}\u0000${e.query}`}function zC(e){return e.environmentId===null||e.cwd===null?null:RC({environmentId:e.environmentId,cwd:e.cwd,query:e.query})}function BC(e){return e===null?NC:FC(e)}function VC(e,t){z.set(FC(e),t)}async function HC(e,t,n,r){let i=Lg(e);if(!i)throw Error(`Git refs are unavailable.`);return i.vcs.listRefs({cwd:t,...n.length>0?{query:n}:{},cursor:r,limit:AC})}function UC(e){let t=e[e.length-1];return t?t.nextCursor:null}function WC(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 GC(e){let t=++e.fetchToken,n=z.get(FC(e.key));VC(e.key,{pages:n.pages,isPending:n.pages.length===0,isFetchingNextPage:!1,error:null});try{let n=await HC(e.environmentId,e.cwd,e.query,0);if(t!==e.fetchToken)return;e.loadedPageCount=1,e.lastFetchedAt=Date.now(),e.hasLoadedOnce=!0,VC(e.key,{pages:[n],isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(t!==e.fetchToken)return;VC(e.key,{pages:z.get(FC(e.key)).pages,isPending:!1,isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}}function KC(e){return WC(e,()=>GC(e))}async function qC(e){let t=++e.fetchToken,n=Math.max(1,e.loadedPageCount),r=z.get(FC(e.key));VC(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 HC(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,VC(e.key,{pages:r,isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(t!==e.fetchToken)return;VC(e.key,{pages:z.get(FC(e.key)).pages,isPending:!1,isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}}function JC(e){return WC(e,()=>qC(e))}function YC(e){return e.hasLoadedOnce?JC(e):KC(e)}function XC(e){if(e===null)return;let t=LC.get(e);if(!t)return;let n=z.get(FC(e));if(n.isFetchingNextPage||t.inFlightPromise)return;let r=UC(n.pages);if(r===null)return;VC(e,{...n,isFetchingNextPage:!0,error:null});let i=t.fetchToken;WC(t,async()=>{try{let n=await HC(t.environmentId,t.cwd,t.query,r);if(i!==t.fetchToken)return;let a=z.get(FC(e));t.loadedPageCount=a.pages.length+1,t.lastFetchedAt=Date.now(),VC(e,{pages:[...a.pages,n],isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(i!==t.fetchToken)return;VC(e,{...z.get(FC(e)),isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}})}function ZC(e){if(e===null)return;let t=LC.get(e);if(!t){rw(e);return}t.poller?.refresh()??YC(t)}function QC(e){Date.now()-e.lastFetchedAt<OC||(e.poller?.refresh()??YC(e))}function $C(e){if(e.environmentId===null||e.cwd===null)return IC;let t=e.environmentId,n=e.cwd,r=RC({environmentId:t,cwd:n,query:e.query}),i=LC.get(r);if(i)return i.subscriberCount+=1,i.hasLoadedOnce&&QC(i),()=>ew(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:IC,focusListener:null,poller:null};if(LC.set(r,a),a.invalidationUnsub=xC(yC(n),()=>{a.poller?.refresh()??YC(a)}),typeof window<`u`){let e=()=>QC(a);a.focusListener=e,window.addEventListener(`focus`,e)}return typeof window<`u`&&typeof document<`u`?a.poller=Ai({lifecycle:ki,run:()=>YC(a),resolveDelayMs:()=>kC,jitterRatio:.05}):KC(a),()=>ew(r)}function ew(e){let t=LC.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,LC.delete(e)))}var tw=new Set,nw=0;async function rw(e){if(tw.has(e)||LC.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);tw.add(e);let o=nw;try{let t=await HC(r,i,a,0);if(o!==nw||LC.has(e))return;VC(e,{pages:[t],isPending:!1,isFetchingNextPage:!1,error:null})}catch{}finally{o===nw&&tw.delete(e)}}function iw(e){let t=zC(e);t!==null&&(z.get(FC(t)).pages.length>0||rw(t))}function aw(e){return e.flatMap(e=>e.refs)}var ow=3e4,sw=Object.freeze({data:null,isPending:!1,isFetching:!1,isError:!1,error:null}),cw=ni(sw).pipe(Fr,kr(`git-resolve-pr:null`)),lw=new Set,uw=hr(e=>(lw.add(e),ni(sw).pipe(Fr,kr(`git-resolve-pr:${e}`)))),dw=new Map;function fw(e){return`${e.environmentId}\u0000${e.cwd}\u0000${e.reference}`}function pw(e){return e.environmentId===null||e.cwd===null||e.reference===null?null:fw({environmentId:e.environmentId,cwd:e.cwd,reference:e.reference})}function mw(e){return e===null?cw:uw(e)}async function hw(e){let t=++e.fetchToken,n=z.get(uw(e.key));z.set(uw(e.key),{data:n.data,isPending:n.data===null,isFetching:!0,isError:!1,error:null});try{let n=Lg(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(uw(e.key),{data:r,isPending:!1,isFetching:!1,isError:!1,error:null})}catch(n){if(t!==e.fetchToken)return;z.set(uw(e.key),{data:null,isPending:!1,isFetching:!1,isError:!0,error:n instanceof Error?n:Error(`Failed to resolve pull request.`)})}}function gw(e){let t=pw(e);if(t===null||e.environmentId===null||e.cwd===null||e.reference===null)return IC;let n=e.environmentId,r=e.cwd,i=e.reference,a=dw.get(t);if(a)return a.subscriberCount+=1,Date.now()-a.lastFetchedAt>=ow&&hw(a),()=>_w(t);let o={key:t,environmentId:n,cwd:r,reference:i,subscriberCount:1,lastFetchedAt:0,fetchToken:0};return dw.set(t,o),hw(o),()=>_w(t)}function _w(e){let t=dw.get(e);t&&(--t.subscriberCount,!(t.subscriberCount>0)&&(t.fetchToken+=1,dw.delete(e)))}function vw(){for(let e of LC.values())e.fetchToken+=1,e.invalidationUnsub(),e.focusListener&&typeof window<`u`&&window.removeEventListener(`focus`,e.focusListener),e.poller?.stop();LC.clear(),nw+=1,tw.clear();for(let e of dw.values())e.fetchToken+=1;dw.clear(),bC.clear();for(let e of PC)z.set(FC(e),MC);for(let e of lw)z.set(uw(e),sw);for(let e of CC)z.set(wC(e),0)}var yw={metaKey:!1,ctrlKey:!1,altKey:!1,shiftKey:!1};function bw(e,t){return e.metaKey===t.metaKey&&e.ctrlKey===t.ctrlKey&&e.altKey===t.altKey&&e.shiftKey===t.shiftKey}var xw=c(e=>({state:yw,setState:t=>e(e=>bw(e.state,t)?e:{state:t}),clear:()=>e(e=>bw(e.state,yw)?e:{state:yw})}));function Sw(){return xw(Cw)}function Cw(e){return e.state}function ww(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 Tw(e){let t=ww(e.key);if(t){let n=xw.getState().state;xw.getState().setState({...n,[t]:e.type===`keydown`});return}xw.getState().setState({metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey})}function Ew(){xw.getState().clear()}var Dw=new Set,Ow=c((e,t)=>({selectedThreadKeys:Dw,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:Dw,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 kw(e){qS(),Vr(e),T_(),vw(),Q_(),Q.getState().demoteEnvironmentStateToCachedSnapshot(e,Date.now()),mr()}function Aw(){for(let e of Object.keys(Q.getState().environmentStateById))Q.getState().removeEnvironmentState(e);xi.setState({draftsByThreadKey:{},draftThreadsByThreadKey:{},logicalProjectDraftThreadKeyByLogicalProjectKey:{},stickyModelSelectionByProvider:{},stickyActiveProvider:null}),Vx.setState({terminalStateByThreadKey:{},terminalLaunchContextByThreadKey:{},terminalEventEntriesByKey:{},nextTerminalEventId:1}),mC.setState({queuesByThreadKey:{}}),iC.getState().setOpen(!1),po.getState().closeSettings(),vC(!1),Ew(),Ow.getState().clearSelection(),mo.setState({projectExpandedById:{},projectOrder:[],projectFoldersById:{},projectFolderOrder:[],projectTreeOrder:[],pinnedThreadKeys:{},threadLastVisitedAtById:{},threadChangedFilesExpandedById:{},threadWorkEntryExpandedById:{},defaultAdvertisedEndpointKey:null}),Xx.clear(),mr()}function jw(){let e=new URL(window.location.origin);return e.protocol=e.protocol===`https:`?`wss:`:`ws:`,e.pathname=`/v1/relay/client`,e.toString()}function Mw(e){return typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer}function Nw(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))}:Mw(e)?{fail:`protocol_invalid`}:{fail:`frame_too_large`}}var Pw=new Set([Gp,Up,Wp,Vp,Hp]);function Fw(e){return!(e instanceof Error)||e instanceof DOMException?e:new DOMException(e.message,Pw.has(e.message)?`QuotaExceededError`:`InvalidStateError`)}var Iw=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!==jw()||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=Nw(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 Yp({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||Mw(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 Fw(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)}},Lw=!1;function Rw(e){Lw||(Lw=!0,rC(),Na({endpoint:rr,httpClient:Zn,passkeyCeremony:Th,sessionCredentials:ur,nodeLifecycle:{activate:async()=>void 0,suspend:async()=>void 0,deactivate:async()=>void 0,clearNodeScopedState:kw,writePrimaryEnvironmentDescriptor:Gr,connectPrimaryEnvironment:SE,disconnectPrimaryEnvironment:xE,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:vh,resetRelayAttemptFactory:yh,relayUrl:jw,createRelaySocket:e=>new Iw({...e,e2ee:tC()})},e))}var zw=new class extends Fa{constructor(){super({endpoint:rr,httpClient:Zn,passkeyCeremony:Th,sessionCredentials:ur})}},Bw=n({HOSTED_SESSION_SYNC_FAILURE_MESSAGE:()=>HOSTED_SESSION_SYNC_FAILURE_MESSAGE,ensureWebHostedRuntimeConfigured:()=>Vw,hostedAccountStore:()=>Ta,hostedHubController:()=>Ka,hostedHubStore:()=>Qa,hostedRecoveryCodeDisplayStore:()=>Oa,useHostedAccountStore:()=>Uw,useHostedHubStore:()=>Hw,useHostedRecoveryCodeDisplayStore:()=>Ww});La(()=>Rw(zw));function Vw(){Rw(zw)}var Hw=Object.assign(e=>f(Qa,e),Qa),Uw=Object.assign(e=>f(Ta,e),Ta),Ww=Object.assign(e=>f(Oa,e),Oa);function Gw(e){return/^[a-zA-Z]:([/\\]|$)/.test(e)}function Kw(e){return e.startsWith(`\\\\`)}function qw(e){return Kw(e)||Gw(e)}function Jw(e){return e===`.`||e===`..`||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`.\\`)||e.startsWith(`..\\`)}function Yw(e){return e===`/`||e===`\\`||/^[a-zA-Z]:[/\\]?$/.test(e)}function Xw(e){return Gw(e)||Kw(e)?`windows`:e.startsWith(`/`)?`unix`:null}function Zw(e){if(e.length===0||Yw(e))return e;let t=Xw(e)===`unix`?e.replace(/\/+$/g,``):e.replace(/[\\/]+$/g,``);return t.length===0?e:/^[a-zA-Z]:$/.test(t)?`${t}\\`:t}function Qw(e){let t=Zw(e.trim());return Gw(t)||t.startsWith(`\\\\`)?t.replaceAll(`/`,`\\`).toLowerCase():t}function $w(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 eT(e){let t=e.repositoryIdentity?.rootPath?.trim();if(!t)return null;let n=Qw(e.cwd),r=Qw(t);if(n.length===0||r.length===0)return null;if(n===r)return``;let i=`${r}${r.includes(`\\`)?`\\`:`/`}`;return n.startsWith(i)?n.slice(i.length).replaceAll(`\\`,`/`):null}function tT(e,t){return`${e}:${Qw(t)}`}function nT(e){return tT(e.environmentId,e.cwd)}function rT(e,t){let n=e.repositoryIdentity?.canonicalKey;if(!n)return null;if(t===`repository`)return n;let r=eT(e);return r===null||r.length===0?n:`${n}::${r}`}function iT(e,t){let n=t?.groupingMode??`repository`;return n===`separate`?nT(e):rT(e,n)??nT(e)??`${e.environmentId}:${e.id}`}function aT(e){let t=$w(e.members.map(e=>e.repositoryIdentity?.displayName));if(t.length===1)return t[0];let n=$w(e.members.map(e=>e.repositoryIdentity?.name));return n.length===1?n[0]:e.representative.name}function oT(e,t){return{key:e.physicalKey,label:e.name,repositoryIdentity:e.repositoryIdentity,variants:[e],ambiguous:t}}function sT(e,t){let n=new Map;for(let r of e){let e=iT({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=>oT(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:aT({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 cT(e){return nT(e)}function lT(e){return nT(e)}function uT(e,t){return t.sidebarProjectGroupingOverrides?.[cT(e)]??t.sidebarProjectGroupingMode}function dT(e,t){return iT(e,{groupingMode:uT(e,t)})}function fT(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?Ob(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`:pT();return;case`worktree-upserted`:case`worktree-removed`:return;case`thread-upserted`:mT(),!i&&a&&Si(a),i?.archivedAt===null&&n.thread.archivedAt!==null&&a&&Vx.getState().removeTerminalState(a),e.supervisor?.().reconcileThreadDetailSubscriptionEvictionForThread(t,n.thread.id),e.supervisor?.().evictIdleThreadDetailSubscriptionsToCapacity();return;case`thread-removed`:a&&(e.supervisor?.().disposeThreadDetailSubscription(t,n.threadId),xi.getState().clearDraftThread(a),mo.getState().clearThreadUi(p(a)),Vx.getState().removeTerminalState(a)),mT()}},applyOrchestrationEvents:(e,t)=>Q.getState().applyOrchestrationEvents(t,e),syncServerShellSnapshot:(e,t)=>Q.getState().syncServerShellSnapshot(t,e),reconcileSnapshotDerivedState:()=>{pT(),mT();let e=ex({snapshotThreads:yb(Q.getState()).map(e=>({key:p(a(e.environmentId,e.id)),deletedAt:null,archivedAt:e.archivedAt})),draftThreadKeys:xi.getState().listDraftThreadKeys()});Vx.getState().removeOrphanedTerminalStates(e)},syncProjects:()=>{let e=eu();mo.getState().syncProjects(vb(Q.getState()).map(t=>({key:nT(t),logicalKey:dT(t,e),cwd:t.cwd})))},syncThreads:()=>{let e=yb(Q.getState());mo.getState().syncThreads(e.map(e=>({key:p(a(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt})))},clearThreadDraft:e=>{xi.getState().clearDraftThread(e),mo.getState().clearThreadUi(p(e))},clearProjectDraftThread:e=>xi.getState().clearProjectDraftThreadId(e),clearTerminalState:e=>Vx.getState().removeTerminalState(e),markProviderInvalidationNeeded:e.markProviderInvalidationNeeded,flushProviderInvalidation:e.flushProviderInvalidation}}function pT(){let e=vb(Q.getState()),t=eu();mo.getState().syncProjects(e.map(e=>({key:nT(e),logicalKey:dT(e,t),cwd:e.cwd})))}function mT(){let e=yb(Q.getState());mo.getState().syncThreads(e.map(e=>({key:p(a(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt}))),wi(e.map(e=>a(e.environmentId,e.id)))}var hT=0,gT=1,_T=2,vT=3,yT=class{url;protocol=``;extensions=``;binaryType=`arraybuffer`;CONNECTING=hT;OPEN=gT;CLOSING=_T;CLOSED=vT;onopen=null;onmessage=null;onerror=null;onclose=null;#e;#t;#n=new Map;#r;#i=hT;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!==gT)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!==_T&&this.#i!==vT&&(this.#i=_T,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!==vT)switch(e.type){case`open`:if(this.#i!==hT)return;this.#i=gT,this.#s({type:`open`});return;case`message`:if(this.#i!==gT)return;this.#s({type:`message`,data:Uint8Array.from(e.data)});return;case`error`:this.#s({type:`error`});return;case`close`:this.#i=vT,this.#s({type:`close`,code:e.code,reason:e.reason,wasClean:e.code===1e3}),this.#r?.()}}#o(){this.#i!==vT&&(this.#s({type:`error`}),this.#i=vT,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)}},bT=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 yT({url:e,transportId:t,bridge:this.#t})}};function xT(e){return e instanceof ll}var ST=!1,CT=fT({markProviderInvalidationNeeded:()=>{ST=!0,$().requestProviderInvalidation()},flushProviderInvalidation:()=>{ST=!1,Z_(),o_()},supervisor:$}),wT=150,TT=()=>void 0,ET=/^\[ssh_http:(\d+)\]\s/u,DT=null,OT=!1,kT=null,AT=new Promise(e=>{kT=e}),jT=null;function $(){return jT||(jT=ul({isHostedMode:l,now:Date.now,setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e),createInvalidationThrottle:()=>new rs(()=>{ST&&CT.flushProviderInvalidation()},{wait:100,leading:!1,trailing:!0}),resetProviderInvalidation:()=>{ST=!1},createPrimaryConnection:()=>Hr()?.environmentId?yE():null,listSavedEnvironmentRecords:Eg,hasSavedEnvironmentRegistryHydrated:wg,waitForSavedEnvironmentRegistryHydration:Tg,subscribeSavedEnvironmentRegistry:Cg.subscribe,connectSavedEnvironment:(e,t)=>TE(e,void 0,t),disconnectSavedEnvironment:NE,waitForPrimaryShellSnapshotApplied:PT,subscribeBrowserResume:EE,isThreadDetailSubscriptionNonIdle:(e,t)=>IT({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)=>dE(t,e),stateSink:CT,onShellSnapshotReceived:e=>{e===Hr()?.environmentId&&wS(`primary-shell-snapshot-received`)},onShellSnapshotCurrent:()=>void 0,onShellSnapshotApplied:e=>{e===Hr()?.environmentId&&(wS(`primary-shell-snapshot-applied`),TS(`primary-shell-snapshot`,`primary-shell-snapshot-received`,`primary-shell-snapshot-applied`),wS(`primary-shell-usable`),TS(`primary-shell-ready`,`root-before-load-ready`,`primary-shell-usable`),NT())},onShellSnapshotReady:()=>void 0}),jT)}function MT(){let e=null;return{promise:new Promise(t=>{e=t}),resolve:t=>{e?.(t),e=null}}}function NT(){OT||(OT=!0,kT?.(),kT=null)}async function PT(e){OT||!Hr()?.environmentId||await Promise.race([AT,new Promise(t=>{globalThis.setTimeout(t,e)})])}async function FT(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 IT(e){let t=a(e.environmentId,e.threadId),n=Q.getState(),r=Ab(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=Ob(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 LT(e){$().disposeThreadDetailSubscriptionsForEnvironment(e)}function RT(e,t){return $().retainThreadDetailSubscription(e,t)}function zT(e){return $().loadOlderThreadHistory(e)}function BT(e){return $().loadThreadHistoryAroundMessage(e)}function VT(e){return{lastError:e instanceof Error?e.message:String(e),lastErrorAt:new Date().toISOString()}}function HT(){return new Date().toISOString()}function UT(e){if(!(e instanceof Error))return null;let t=ET.exec(e.message);if(!t)return null;let n=Number.parseInt(t[1]??``,10);return Number.isInteger(n)?n:null}function WT(e,t){return UT(e)===t}function GT(e,t){return!e||!t?!1:e.alias===t.alias&&e.hostname===t.hostname&&e.username===t.username&&e.port===t.port}function KT(e){return e?Eg().find(t=>GT(t.desktopSsh,e))??null:null}function qT(e){return Object.fromEntries(e.map(e=>[e.environmentId,e]))}function JT(e){return new Map(e.map(e=>[e,Dg(e)??null]))}async function YT(e){let t=qT(Eg());for(let[n,r]of e){if(r){t[n]=r;continue}delete t[n]}let n=Object.values(t);await bg().persistence.setSavedEnvironmentRegistry(n.map(e=>ci(e))),Cg.setState({byId:t})}async function XT(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 ZT(){let e=window.desktopBridge;if(!e)throw Error(`SSH launch is only available in the desktop app.`);return e}async function QT(e){return await ZT().fetchSshEnvironmentDescriptor(e)}async function $T(e,t){return await ZT().bootstrapSshBearerSession(e,t)}async function eE(e,t){return await ZT().fetchSshSessionState(e,t)}async function tE(e,t,n){let r=await ZT().issueSshWebSocketToken(t,n),i=new URL(e,window.location.origin);return i.searchParams.set(`wsToken`,r.token),i.toString()}async function nE(e,t){if(!e.desktopSsh)return{record:e,pairingToken:null,remotePort:null,remoteServerKind:null};let n=await XT(e.desktopSsh,t),r={...e,httpBaseUrl:n.httpBaseUrl,wsBaseUrl:n.wsBaseUrl,desktopSsh:n.target};return(r.httpBaseUrl!==e.httpBaseUrl||r.wsBaseUrl!==e.wsBaseUrl||!GT(r.desktopSsh,e.desktopSsh))&&(await Og(r),Cg.getState().upsert(r)),{record:r,pairingToken:n.pairingToken,remotePort:n.remotePort??null,remoteServerKind:n.remoteServerKind??null}}async function rE(e){let t=JT([e.environmentId]),n=await nE(e,{issuePairingToken:!0});if(!n.pairingToken)throw await YT(t),Error(`Desktop SSH launch did not return a pairing token.`);let r=await $T(n.record.httpBaseUrl,n.pairingToken).catch(async e=>{await YT(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 Ag(n.record.environmentId,r.sessionToken))throw await YT(t),Error(`Unable to persist saved environment credentials.`);return{record:n.record,bearerToken:r.sessionToken,role:r.role??null}}function iE(e){X.getState().patch(e,{connectionState:`connecting`,lastError:null,lastErrorAt:null})}function aE(e){let t=HT();X.getState().patch(e,{connectionState:`connected`,authState:`authenticated`,connectedAt:t,disconnectedAt:null,lastError:null,lastErrorAt:null}),Cg.getState().markConnected(e,t)}function oE(e,t){X.getState().patch(e,{connectionState:`disconnected`,disconnectedAt:HT(),...t&&t.trim().length>0?{lastError:t,lastErrorAt:HT()}:{}})}function sE(e,t){X.getState().patch(e,{connectionState:`error`,...VT(t)})}function cE(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 lE(e){return e.serverThreadArchivedAt===void 0?e.hasDraftThread:e.serverThreadArchivedAt===null}function uE(e,t){if(e.length===0)return;let n=Pg(e),r=cE(e),i=e.some(e=>e.type===`project.created`||e.type===`project.meta-updated`||e.type===`project.deleted`);n.needsProviderInvalidation&&CT.markProviderInvalidationNeeded(),CT.applyOrchestrationEvents(t,r),i&&CT.syncProjects(t),e.some(e=>e.type===`thread.created`||e.type===`thread.deleted`)&&CT.syncThreads(t);for(let e of n.promoteDraftThreadIds)Si(a(t,e));for(let e of n.clearDeletedThreadIds)CT.clearThreadDraft(a(t,e));for(let n of e)n.type===`project.deleted`&&CT.clearProjectDraftThread(o(t,n.payload.projectId));for(let e of n.removeTerminalStateThreadIds)CT.clearTerminalState(a(t,e));$().reconcileThreadDetailSubscriptionEvictionForEnvironment(t)}function dE(e,t){uE([e],t)}function fE(e=null,t){let n=()=>e===null||Hw.getState().generation===e,r=t?oS.begin(t):null,i=e=>{n()&&(r=oS.begin(e))},o=t=>{let n=r;n!==null&&oS.ready(t,n,()=>e===null||iS(Hw.getState(),t,e)).catch(()=>void 0)};return{onResubscribe:t=>{n()&&(i(t),e!==null&&to(t,e))},onShellError:t=>{e!==null&&n()&&Aa(t,e)},resetShellProjection:e=>{n()&&$().resetShellProjection(e)},applyShellEvent:(e,t)=>{n()&&$().applyShellEvent(e,t)},syncShellSnapshot:(t,r)=>{n()&&$().syncShellSnapshot(t,r,{onCurrent:()=>{e!==null&&Va(r,e),o(r)},onReady:()=>{e!==null&&Va(r,e),o(r)}})},applyTerminalEvent:(e,t)=>{if(!n())return;let r=a(t,Jn.make(e.threadId)),i=Ob(Q.getState(),r),o=xi.getState().getDraftThreadByRef(r)!==null;lE({serverThreadArchivedAt:i?.archivedAt,hasDraftThread:o})&&Vx.getState().applyTerminalEvent(r,e)}}}function pE(e){let t=_r(e);if(!t)throw Error(`Unable to resolve websocket URL for ${e?.label??`primary environment`}.`);let n=e?.label??null;if(l()){let t=_h(),r=t.lifecycleHandlers(),i=new lS(()=>t.nextUrl(),{...r,getConnectionLabel:()=>n,getEnvironmentId:()=>e?.environmentId??null,onOpen:()=>{r.onOpen?.(),wS(`primary-ws-open`)}});return tr(i,Ir(i,{manageTransport:!1}))}let r=async e=>{let n=await si(),r=new URL(t,window.location.origin);return r.pathname=e,r.searchParams.set(`wsToken`,n.token),r.toString()};return tr(new sS(()=>r(`/ws`),{getConnectionLabel:()=>n,getEnvironmentId:()=>e?.environmentId??null,getVersionMismatchHint:()=>mS(Yn())?.hint??null,onOpen:()=>{wS(`primary-ws-open`)}}),Ir(new cS(()=>r(`/ws/device`),{getConnectionLabel:()=>n}),{openFrameSource:(e,t)=>vr({udid:e,handlers:t,socket:Oh,resolveUrl:()=>r(`/ws/device-frames`)})}))}async function mE(e,t,n){let r=Dg(e);if(!r)throw Error(`Saved environment ${e} not found.`);let i=r.desktopSsh?await tE(r.wsBaseUrl,r.httpBaseUrl,t):await rv({wsBaseUrl:r.wsBaseUrl,httpBaseUrl:r.httpBaseUrl,bearerToken:t}),a=new URL(i,window.location.origin);return a.pathname=n,a.toString()}function hE(e,t){return X.getState().ensure(e),tr(new sS(()=>mE(e,t,`/ws`),{getConnectionLabel:()=>Dg(e)?.label??null,getEnvironmentId:()=>e,getVersionMismatchHint:()=>mS(X.getState().byId[e]?.serverConfig)?.hint??null,onAttempt:()=>{iE(e)},onOpen:()=>{aE(e)},onError:t=>{let n=mS(X.getState().byId[e]?.serverConfig);X.getState().patch(e,{connectionState:`error`,lastError:bS(t,n),lastErrorAt:HT()})},onClose:(t,n)=>{n.intentional||oE(e,bS(t.reason,mS(X.getState().byId[e]?.serverConfig)))}}),Ir(new cS(()=>mE(e,t,`/ws/device`),{getConnectionLabel:()=>Dg(e)?.label??null}),{openFrameSource:(n,r)=>vr({udid:n,handlers:r,socket:Oh,resolveUrl:()=>mE(e,t,`/ws/device-frames`)})}))}async function gE(e,t,n,r,i){let a=Dg(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?eE(a.httpBaseUrl,t):tv({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}),Cg.getState().rename(a.environmentId,o.environment.label)}function _E(e){return $().register(e)}async function vE(e){return await $().remove(e)}function yE(){let e=Hr();if(!e?.environmentId)throw Error(`Unable to resolve the primary environment.`);let t=$().read(e.environmentId);if(t)return t;let n=l()?Hw.getState().generation:null;return _E(pv({kind:`primary`,knownEnvironment:e,client:pE(e),...fE(n,n===null?void 0:e.environmentId)}))}function bE(){return Hr()?.environmentId?$().connectPrimary():null}async function xE(){await $().disconnectPrimary()}function SE(){return bE()}async function CE(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 bT(e.environmentId,t),i=new lS(()=>r.nextUrl(),{preserveSocketPath:!0,webSocketConstructor:e=>r.createSocket(e),retryTransientErrors:!1,reconnectMaxRetries:1e6,getConnectionLabel:()=>e.label,getEnvironmentId:()=>e.environmentId}),a=_E(pv({kind:`saved`,knownEnvironment:{...jr({id:e.environmentId,label:e.label,source:`hub-hosted`,target:{httpBaseUrl:`http://desktop-workspace.invalid`,wsBaseUrl:`ws://desktop-workspace.invalid`}}),environmentId:e.environmentId},client:tr(i),onConfigUpdated:t=>{X.getState().ensure(e.environmentId),X.getState().patch(e.environmentId,{descriptor:t.environment,serverConfig:t,connectionState:`connected`})},onWelcome:t=>{X.getState().ensure(e.environmentId),X.getState().patch(e.environmentId,{descriptor:t.environment})},...fE()}));try{return await a.ensureBootstrapped(),a}catch(t){throw await vE(e.environmentId).catch(()=>void 0),t}}async function wE(e,t){return await $().ensureSavedEnvironmentConnection(e,n=>TE(e,t,n))}async function TE(e,t,n=()=>!1){let r=e,i=t?.role??null,a=t?.bearerToken??await kg(e.environmentId),o=t?.client;for(;;){if(!a){if(e.desktopSsh){let e=await rE(r);r=e.record,a=e.bearerToken,i=e.role}else throw await jg(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:HT()}),Error(`Saved environment is missing its saved credential.`)}r=(await nE(r)).record;let s=a,c=o??hE(r.environmentId,s),l=MT(),u=pv({kind:`saved`,knownEnvironment:{...jr({id:r.environmentId,label:r.label,source:`manual`,target:{httpBaseUrl:r.httpBaseUrl,wsBaseUrl:r.wsBaseUrl}}),environmentId:r.environmentId},client:c,refreshMetadata:async()=>{await gE(r.environmentId,s,c)},onConfigUpdated:e=>{l.resolve(e),X.getState().patch(r.environmentId,{descriptor:e.environment,serverConfig:e})},onWelcome:e=>{X.getState().patch(r.environmentId,{descriptor:e.environment})},...fE()});try{try{let e=t?.serverConfig??await FT(l.promise,wT);await gE(r.environmentId,s,c,i,e)}catch(e){if(!(r.desktopSsh?WT(e,401):Wc(e)&&e.status===401))throw e;if(!r.desktopSsh)throw await jg(r.environmentId),Error(`Saved environment credential expired. Pair it again.`,{cause:e});let t=await rE(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 ll(r.environmentId);return _E(u),u}catch(e){throw e instanceof ll?e:(sE(r.environmentId,e),await vE(r.environmentId).catch(()=>!1)||await u.dispose().catch(()=>void 0),e)}}}function EE(e){if(typeof document>`u`||typeof window>`u`)return TT;let t=()=>{if(document.visibilityState===`hidden`){DT=Date.now();return}document.visibilityState===`visible`&&DT!==null&&(DT=null,e(`visibilitychange`))},n=t=>{(t.persisted||DT!==null)&&(DT=null,e(`pageshow`))};return document.addEventListener(`visibilitychange`,t),window.addEventListener(`pageshow`,n),()=>{document.removeEventListener(`visibilitychange`,t),window.removeEventListener(`pageshow`,n)}}function DE(e){return $().subscribe(e)}function OE(){return $().list()}function kE(e){return $().read(e)}function AE(e){let t=kE(e);if(!t)throw Error(`No websocket client registered for environment ${e}.`);return t}async function jE(e,t){let n=await AE(e).client.server.updateSettings(t);if(Hr()?.environmentId===e){Dr(n);return}let r=X.getState().byId[e]?.serverConfig;r&&X.getState().patch(e,{serverConfig:{...r,settings:n}})}function ME(){return yE()}async function NE(e){let t=Dg(e);$().cancelPendingSavedEnvironmentConnection(e),$().read(e)?.kind===`saved`&&await vE(e).catch(()=>!1),oE(e),t?.desktopSsh&&typeof window<`u`&&(await window.desktopBridge?.disconnectSshEnvironment(t.desktopSsh),await jg(e))}async function PE(e){let t=Dg(e);if(!t)throw Error(`Saved environment not found.`);let n=$().read(e);if(!n){iE(e);try{await wE(t);return}catch(t){if(xT(t))return;throw sE(e,t),t}}iE(e);try{t.desktopSsh&&await nE(t),await n.reconnect()}catch(n){if(t.desktopSsh)try{let n=await rE(Dg(e)??t);await vE(e).catch(()=>!1),await wE(n.record,{bearerToken:n.bearerToken,role:n.role});return}catch(t){if(xT(t))return;throw sE(e,t),t}throw sE(e,n),n}}async function FE(e){await NE(e),LT(e),Cg.getState().remove(e),X.getState().clear(e),Q.getState().removeEnvironmentState(e),await jg(e)}async function IE(e){let t=iv({...e.pairingUrl===void 0?{}:{pairingUrl:e.pairingUrl},...e.host===void 0?{}:{host:e.host},...e.pairingCode===void 0?{}:{pairingCode:e.pairingCode}}),n=e.desktopSsh?await QT(t.httpBaseUrl):await nv({httpBaseUrl:t.httpBaseUrl}),r=n.environmentId,i=JT([r]),a=Dg(r)??KT(e.desktopSsh),o=a&&a.environmentId!==r?a:null,s=e.desktopSsh?await $T(t.httpBaseUrl,t.credential):await ev({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??HT(),lastConnectedAt:HT(),...e.desktopSsh??a?.desktopSsh?{desktopSsh:e.desktopSsh??a?.desktopSsh}:{}};if(await Og(c),!await Ag(r,s.sessionToken))throw await YT(i),Error(`Unable to persist saved environment credentials.`);return Cg.getState().upsert(c),o&&await FE(o.environmentId),await vE(r).catch(()=>!1),await wE(c,{bearerToken:s.sessionToken,role:s.role}),c}async function LE(e,t){let n=await XT(e,{issuePairingToken:!0});if(!n.pairingToken)throw Error(`Desktop SSH launch did not return a pairing token.`);return await IE({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 RE(e){await $().read(e)?.ensureBootstrapped()}function zE(){return $().start()}var BE=n({waitForSavedEnvironmentRegistryHydration:()=>Tg});export{iw as $,cs as $n,L_ as $t,qw as A,Ah as An,Kb as At,Tw as B,ru as Bn,Eb as Bt,lT as C,yg as Cn,Vx as Ct,sT as D,Vh as Dn,qb as Dt,aT as E,Wh as En,Qb as Et,Ww as F,Hu as Fn,Db as Ft,aw as G,kl as Gn,kb as Gt,EC as H,wl as Hn,Cb as Ht,zw as I,yu as In,vb as It,TC as J,jl as Jn,_b as Jt,BC as K,Al as Kn,bb as Kt,Aw as L,Su as Ln,Ab as Lt,Bw as M,Uu as Mn,Gb as Mt,Uw as N,Vu as Nn,Hb as Nt,Jw as O,kh as On,Xb as Ot,Hw as P,Bu as Pn,gb as Pt,SC as Q,fs as Qn,R_ as Qt,Ow as R,eu as Rn,xb as Rt,cT as S,bg as Sn,Zx as St,tT as T,Bh as Tn,Ix as Tt,DC as U,Ml as Un,wb as Ut,Sw as V,Ol as Vn,Sb as Vt,XC as W,Dl as Wn,Ob as Wt,pw as X,yl as Xn,Cv as Xt,mw as Y,xl as Yn,Q as Yt,yC as Z,Sl as Zn,lv as Zt,RT as _,Rg as _n,vS as _t,SE as a,Vg as an,mC as at,jE as b,Cg as bn,rS as bt,RE as c,w_ as cn,sC as ct,zT as d,h_ as dn,VS as dt,E_ as en,as as er,ZC as et,BT as f,qg as fn,BS as ft,AE as g,Lg as gn,yS as gt,FE as h,zg as hn,hS as ht,CE as i,c_ as in,gC as it,Gw as j,Dd as jn,Wb as jt,Kw as k,jh as kn,Yb as kt,ME as l,a_ as ln,fC as lt,PE as m,C_ as mn,TS as mt,IE as n,O_ as nn,gw as nt,xE as o,g_ as on,aC as ot,kE as p,i_ as pn,wS as pt,zC as q,El as qn,yb as qt,LE as r,Y_ as rn,vC as rt,NE as s,Jg as sn,uC as st,BE as t,B_ as tn,$C as tt,OE as u,r_ as un,iC as ut,zE as v,Eg as vn,mS as vt,nT as w,Hh as wn,Rx as wt,dT as x,X as xn,tS as xt,DE as y,Ng as yn,Qx as yt,Ew as z,tu as zn,Tb as zt};
|