ryco-cli 0.1.20 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/dist/{AcpNativeLogging-Bh7MX3rC.cjs → AcpNativeLogging-COepku4a.cjs} +264 -7
  2. package/dist/{AcpNativeLogging-CLM3p9JD.mjs → AcpNativeLogging-D7e1dn7s.mjs} +254 -9
  3. package/dist/{AzureDevOpsSourceControlProvider-jQm1WPMS.mjs → AzureDevOpsSourceControlProvider-BNGEg1R8.mjs} +3 -3
  4. package/dist/{AzureDevOpsSourceControlProvider-D9QXGi1h.cjs → AzureDevOpsSourceControlProvider-CrvgKNf2.cjs} +2 -2
  5. package/dist/{BitbucketSourceControlProvider-j95Cro_2.mjs → BitbucketSourceControlProvider-Bt21jw68.mjs} +3 -3
  6. package/dist/{BitbucketSourceControlProvider-C3VDp9qR.cjs → BitbucketSourceControlProvider-BzhsQwH-.cjs} +2 -2
  7. package/dist/{BunPTY-CNvWSzEJ.mjs → BunPTY-TbHbSc8S.mjs} +1 -1
  8. package/dist/{ClaudeDriver-CT89QDP8.mjs → ClaudeDriver-D65SPdHR.mjs} +44 -119
  9. package/dist/{ClaudeDriver-DiRhQM2K.cjs → ClaudeDriver-D7NatUx6.cjs} +52 -127
  10. package/dist/{CodexDriver-CBYfPl_X.mjs → CodexDriver-D4z5-wUD.mjs} +237 -50
  11. package/dist/{CodexDriver-BmKoU7w_.cjs → CodexDriver-DWGtHt9r.cjs} +235 -48
  12. package/dist/{CodexTextGeneration-CuXvtfAi.cjs → CodexTextGeneration-B4tJTUDo.cjs} +1 -1
  13. package/dist/{CodexTextGeneration-B7GPyLo2.mjs → CodexTextGeneration-BikHow8k.mjs} +2 -2
  14. package/dist/{CopilotDriver-XX5zmGVK.cjs → CopilotDriver-DJvYncGI.cjs} +122 -23
  15. package/dist/{CopilotDriver-BJ1P_bHz.mjs → CopilotDriver-ZvvsAIkd.mjs} +123 -24
  16. package/dist/{CursorDriver-BH6yAijk.mjs → CursorDriver-B1QSBzuH.mjs} +45 -74
  17. package/dist/{CursorDriver-CYMXQKec.cjs → CursorDriver-D3I4KULs.cjs} +44 -73
  18. package/dist/{ForgejoSourceControlProvider-ZfU3SBzW.mjs → ForgejoSourceControlProvider-BGXysSX6.mjs} +3 -3
  19. package/dist/{ForgejoSourceControlProvider-Dzg-BJY_.cjs → ForgejoSourceControlProvider-Dh6DOoc8.cjs} +2 -2
  20. package/dist/{GitHubSourceControlProvider-BpyIi23Q.cjs → GitHubSourceControlProvider-8hsv_kCE.cjs} +2 -2
  21. package/dist/{GitHubSourceControlProvider-Bx5_H3zb.mjs → GitHubSourceControlProvider-CPCYV8Xo.mjs} +3 -3
  22. package/dist/{GitLabSourceControlProvider-QccSsOnx.cjs → GitLabSourceControlProvider-B0ZbF9Zx.cjs} +2 -2
  23. package/dist/{GitLabSourceControlProvider-DjvGD1WZ.mjs → GitLabSourceControlProvider-Bvknpaon.mjs} +3 -3
  24. package/dist/{GrokDriver-BPIUrqkN.mjs → GrokDriver-DgQe3pKz.mjs} +41 -10
  25. package/dist/{GrokDriver-jE4az7JZ.cjs → GrokDriver-_puXDTU3.cjs} +42 -11
  26. package/dist/{NodePTY-lO8PwZLk.mjs → NodePTY-B_p5tLYO.mjs} +1 -1
  27. package/dist/{OpenCodeDriver-IbZqAzYW.cjs → OpenCodeDriver-401RexI0.cjs} +240 -40
  28. package/dist/{OpenCodeDriver-_hUfFwH4.mjs → OpenCodeDriver-DNUlF8M-.mjs} +238 -41
  29. package/dist/{SourceControlProviderDiscoveryCatalog-CHxCP6Ng.mjs → SourceControlProviderDiscoveryCatalog-B37RHe2u.mjs} +1 -1
  30. package/dist/{SourceControlProviderDiscoveryCatalog-CnkV-oKD.cjs → SourceControlProviderDiscoveryCatalog-DreaAH1H.cjs} +1 -1
  31. package/dist/bin.cjs +10690 -5679
  32. package/dist/bin.mjs +10674 -5674
  33. package/dist/client/assets/AccountSettings-CypheYqM.js +1 -0
  34. package/dist/client/assets/AiFocusSettings-BlX0ED1t.js +1 -0
  35. package/dist/client/assets/AnimatedHeight-DKCe4x_Q.js +1 -0
  36. package/dist/client/assets/AppearanceSettings-BSyn6NXf.js +1 -0
  37. package/dist/client/assets/BranchToolbar.logic-fpBz8Ajj.js +1 -0
  38. package/dist/client/assets/BrowserPanel-BWch19QH.js +1 -0
  39. package/dist/client/assets/ChatRightPanel-B7yrq-hS.js +27 -0
  40. package/dist/client/assets/ChatThreadRouteView-Cg0d_EHs.js +1 -0
  41. package/dist/client/assets/CommandPaletteDialog-DImCuPaX.js +1 -0
  42. package/dist/client/assets/CompositeItem-BYnHWRNf.js +1 -0
  43. package/dist/client/assets/CompositeRoot-B28uivk7.js +1 -0
  44. package/dist/client/assets/ComputerUseSettings-CosW7jaG.js +1 -0
  45. package/dist/client/assets/ConnectionsSettings-Bk6vI3G-.js +7 -0
  46. package/dist/client/assets/ContextHandoffEndpointLabel-BR6ygaub.js +4 -0
  47. package/dist/client/assets/DiagnosticsSettings-Dp_tCNLw.js +2 -0
  48. package/dist/client/assets/DialogHandle-BN-QB-sO.js +1 -0
  49. package/dist/client/assets/DialogPopup-BuJs5WUt.js +1 -0
  50. package/dist/client/assets/DialogRoot-PxEcoecQ.js +1 -0
  51. package/dist/client/assets/DialogTitle-4nxQsra4.js +1 -0
  52. package/dist/client/assets/DialogTrigger-D_0canul.js +1 -0
  53. package/dist/client/assets/DialogViewport-DSo-2hyf.js +1 -0
  54. package/dist/client/assets/DraftChatThreadRouteView-C94kpMx4.js +1 -0
  55. package/dist/client/assets/{ExternalIdentityWeb.logic-TlJdh82R.js → ExternalIdentityWeb.logic-CGJKCFPo.js} +1 -1
  56. package/dist/client/assets/{GlassSurface-BWk2twKc.js → GlassSurface-CyOTUS7E.js} +1 -1
  57. package/dist/client/assets/HostedConnectionControls-CL0Ws4ca.js +1 -0
  58. package/dist/client/assets/HostedHubRoot-LUINZl4r.js +1 -0
  59. package/dist/client/assets/HostedNativeAuthorizationRoute-CgYVBE6N.js +1 -0
  60. package/dist/client/assets/HostedRelayTrustNotice-DgdeZh52.js +1 -0
  61. package/dist/client/assets/Icons-BIUbIFr7.js +1 -0
  62. package/dist/client/assets/IntegrationsSettingsPanel-B7tXTaa3.js +1 -0
  63. package/dist/client/assets/KeybindingsSettings-HMlRcGQ4.js +7 -0
  64. package/dist/client/assets/LazyBrowserPanel-CKfmuM9U.js +1 -0
  65. package/dist/client/assets/{McpServersSettings-Cbq-uHU3.js → McpServersSettings-Bq-HyhvC.js} +4 -4
  66. package/dist/client/assets/MobileSheet-acDRH9aa.js +1 -0
  67. package/dist/client/assets/NoActiveThreadState-7rym7bV7.js +1 -0
  68. package/dist/client/assets/NodeSecuritySettings-D8qjh4Dc.js +1 -0
  69. package/dist/client/assets/OpinionatedPluginsSettings-D7Uks5yR.js +1 -0
  70. package/dist/client/assets/PhoneGetAppInterstitial-BQXUSufH.js +1 -0
  71. package/dist/client/assets/PhoneGetAppInterstitialBackdrop-BbUvwGmI.js +1 -0
  72. package/dist/client/assets/PhoneHome-DvgdMTkh.js +1 -0
  73. package/dist/client/assets/PhoneSettingsSurface-DncJ540i.js +1 -0
  74. package/dist/client/assets/ProjectFavicon-BY5Vyyk6.js +1 -0
  75. package/dist/client/assets/ProviderInstanceIcon-CZe1TbeC.js +1 -0
  76. package/dist/client/assets/ProviderModelPicker-DHAY1n_1.js +1 -0
  77. package/dist/client/assets/{ProviderUpdateLaunchNotification.logic-D3qYdp40.js → ProviderUpdateLaunchNotification.logic-DQJVrUIo.js} +1 -1
  78. package/dist/client/assets/ProvidersSettingsPanel-BylxZs4S.js +1 -0
  79. package/dist/client/assets/RedactedSensitiveText-D-enj1h5.js +1 -0
  80. package/dist/client/assets/RootAppShell-DBK0WW2b.js +6 -0
  81. package/dist/client/assets/RycoLetterMark-PnGm6TQY.js +1 -0
  82. package/dist/client/assets/{Separator-DiMB6Prz.js → Separator-BWKYMFqt.js} +1 -1
  83. package/dist/client/assets/SettingsDialog-N25hIv-a.js +1 -0
  84. package/dist/client/assets/SettingsPanels-D9YXmUPP.js +3 -0
  85. package/dist/client/assets/SettingsPanels.editor-Cn18k74l.js +1 -0
  86. package/dist/client/assets/SourceControlSettings-BAzSpMfR.js +1 -0
  87. package/dist/client/assets/StatisticsPage-CLKpfsQ8.js +1 -0
  88. package/dist/client/assets/StatisticsPanel-DxHUFn64.js +1 -0
  89. package/dist/client/assets/StatisticsSettingsLink-B3HIQYFh.js +1 -0
  90. package/dist/client/assets/ThreadStatusIndicators-CQZ_OgY8.js +0 -0
  91. package/dist/client/assets/{ThreadTerminalDrawer-DvadlVXV.js → ThreadTerminalDrawer-D1SPewXR.js} +3 -3
  92. package/dist/client/assets/ThreadWorkspacePanel-DVF6oZsV.js +2009 -0
  93. package/dist/client/assets/ToolbarRootContext-Dt8G5aCw.js +1 -0
  94. package/dist/client/assets/{WorkItemsTab-CI6hTQ_k.js → WorkItemsTab-BoE-TcXJ.js} +8 -8
  95. package/dist/client/assets/{activity-1CkdQG5u.js → activity-DfFM6I8A.js} +1 -1
  96. package/dist/client/assets/alert-DE5SkZhr.js +1 -0
  97. package/dist/client/assets/alert-dialog-BqPnPhb6.js +1 -0
  98. package/dist/client/assets/appChrome-CJauXpqv.js +1 -0
  99. package/dist/client/assets/{archive-BL1hojl3.js → archive-BFV4YQ7D.js} +1 -1
  100. package/dist/client/assets/arrow-left-CCmICk1t.js +1 -0
  101. package/dist/client/assets/arrow-right-Z3Eay6Fd.js +1 -0
  102. package/dist/client/assets/{arrow-up-CTcWIlqV.js → arrow-up-caak6P06.js} +1 -1
  103. package/dist/client/assets/arrow-up-right-BwC-fCE4.js +1 -0
  104. package/dist/client/assets/authorization-bHsGYIT0.js +1 -0
  105. package/dist/client/assets/{badge-Cil0isYQ.js → badge-m9kM3P07.js} +1 -1
  106. package/dist/client/assets/{bot-DJp0cuhK.js → bot-Cv7a7Ksf.js} +1 -1
  107. package/dist/client/assets/{button-CBqaO2Ub.js → button-B6xQZNKz.js} +1 -1
  108. package/dist/client/assets/capabilities-D6bsjqkj.js +1 -0
  109. package/dist/client/assets/{chart-column-Dw6ACmXM.js → chart-column-DgGlY4sD.js} +1 -1
  110. package/dist/client/assets/chatThreadActions-BXaNbPbp.js +1 -0
  111. package/dist/client/assets/check-BfnWUGBT.js +1 -0
  112. package/dist/client/assets/{chevron-down-B7C6FKzM.js → chevron-down-B_FKCRVh.js} +1 -1
  113. package/dist/client/assets/chevron-right-B6CKNGh4.js +1 -0
  114. package/dist/client/assets/{circle-alert-BWvs6IOn.js → circle-alert-BV3vJE-c.js} +1 -1
  115. package/dist/client/assets/circle-check-D2Vx39x-.js +1 -0
  116. package/dist/client/assets/{external-link-fbvzDWM7.js → circle-dashed-khcA8K3Y.js} +1 -1
  117. package/dist/client/assets/circle-question-mark-DEuLdOiy.js +1 -0
  118. package/dist/client/assets/circle-x-DqfM_2wS.js +1 -0
  119. package/dist/client/assets/clamp-D0kAXd-u.js +1 -0
  120. package/dist/client/assets/{clipboard-copy-C4VV20QR.js → clipboard-copy-CiD4tBsh.js} +1 -1
  121. package/dist/client/assets/clock--4M7moiV.js +1 -0
  122. package/dist/client/assets/clock-3-NbnQqtcd.js +1 -0
  123. package/dist/client/assets/collapsible-BECg-ssO.js +1 -0
  124. package/dist/client/assets/command-DvbA3O0J.js +1 -0
  125. package/dist/client/assets/{copy-UQjKGt7t.js → copy-CkPe1c-r.js} +1 -1
  126. package/dist/client/assets/data-list-7TiaqfZU.js +1 -0
  127. package/dist/client/assets/desktopUpdateAtoms-6j0d8vfy.js +1 -0
  128. package/dist/client/assets/desktopWorkspace-8s8rm3zL.js +1 -0
  129. package/dist/client/assets/device-CGaJ6fwD.js +168 -0
  130. package/dist/client/assets/dialog-C9v8Zl6e.js +1 -0
  131. package/dist/client/assets/{download-CQZ-m4zW.js → download-DPjzVxTa.js} +1 -1
  132. package/dist/client/assets/draft-input-BRSLIjV6.js +1 -0
  133. package/dist/client/assets/editorPreferences-D-9SDgRM.js +1 -0
  134. package/dist/client/assets/empty-CuQ57p2u.js +1 -0
  135. package/dist/client/assets/external-link-CF9EzT-A.js +1 -0
  136. package/dist/client/assets/{eye-CUSPj-gd.js → eye-C2Puut9B.js} +1 -1
  137. package/dist/client/assets/{folder-DtsQoI9_.js → folder-BKTxLq18.js} +1 -1
  138. package/dist/client/assets/{folder-closed-CsvKfC6X.js → folder-closed-D2cwiusg.js} +1 -1
  139. package/dist/client/assets/getPseudoElementBounds-DdH76YK5.js +1 -0
  140. package/dist/client/assets/{git-branch-BKr-Ij4u.js → git-branch-Dauy2SWC.js} +1 -1
  141. package/dist/client/assets/{git-pull-request-DIYyPsg5.js → git-pull-request-DsK1gBtK.js} +1 -1
  142. package/dist/client/assets/globe-dS40wBdE.js +1 -0
  143. package/dist/client/assets/group-DBXm8riE.js +1 -0
  144. package/dist/client/assets/hostedConnectionCoordinator-DSMW2Ldh.js +1 -0
  145. package/dist/client/assets/{index-QY6vcnCY.js → index-DRY8Hgrj.js} +2 -2
  146. package/dist/client/assets/input-Dn_zesdZ.js +1 -0
  147. package/dist/client/assets/kbd-BF2-WlxQ.js +1 -0
  148. package/dist/client/assets/{key-round-CacMputS.js → key-round-BjaaL9Df.js} +1 -1
  149. package/dist/client/assets/{keybindings-Bj6xWIbQ.js → keybindings-FSJY3Tht.js} +1 -1
  150. package/dist/client/assets/{keyboard-BqeRMHfL.js → keyboard-AkUFPD_e.js} +1 -1
  151. package/dist/client/assets/label-BKjVY2A9.js +1 -0
  152. package/dist/client/assets/{layers-BYi0v17h.js → layers-tzRiuxSx.js} +1 -1
  153. package/dist/client/assets/{lib-B6XyeqaU.js → lib-D5cyGc84.js} +1 -1
  154. package/dist/client/assets/{loader-zHASMrUy.js → loader-BrbWRz3I.js} +1 -1
  155. package/dist/client/assets/loader-circle-DRKbHQst.js +1 -0
  156. package/dist/client/assets/{log-out-tMJm0Gk6.js → log-out-BEihaal1.js} +1 -1
  157. package/dist/client/assets/{logging-1BfRrhxL.js → logging-Y73f240E.js} +1 -1
  158. package/dist/client/assets/main-BiIQEybS.js +9 -0
  159. package/dist/client/assets/main-tZWU6iqX.css +2 -0
  160. package/dist/client/assets/menu-BxtB33Up.js +1 -0
  161. package/dist/client/assets/{messages-square-DiMgWzoq.js → messages-square-e0Zg750i.js} +1 -1
  162. package/dist/client/assets/{minimize-2-C33mL7LT.js → minimize-2-DC9gMgGl.js} +1 -1
  163. package/dist/client/assets/monitor-Dj0JFj4_.js +1 -0
  164. package/dist/client/assets/{palette-BSD_aJZg.js → palette-0qvNt1CR.js} +1 -1
  165. package/dist/client/assets/{pencil-B69ERoVM.js → pencil-CA0DGufX.js} +1 -1
  166. package/dist/client/assets/{play-DYDxlTKo.js → play-wIyvqd_g.js} +1 -1
  167. package/dist/client/assets/plus-5kH13lqq.js +1 -0
  168. package/dist/client/assets/popover-CwhgX3HA.js +1 -0
  169. package/dist/client/assets/primary-BqnEJHWx.js +2 -0
  170. package/dist/client/assets/{projectPaths-BFTUsvWs.js → projectPaths-45WPhgoj.js} +1 -1
  171. package/dist/client/assets/providerDriverMeta-Cc60r9Rb.js +1 -0
  172. package/dist/client/assets/providerInstances-Cr8JmFCe.js +1 -0
  173. package/dist/client/assets/providerModels-Cr8JmFCe.js +1 -0
  174. package/dist/client/assets/qr-code-BKrwYZ2s.js +1 -0
  175. package/dist/client/assets/{qr-code-ScYULAuR.js → qr-code-DDmpRnPp.js} +1 -1
  176. package/dist/client/assets/radio-group-DZCo21CF.js +2 -0
  177. package/dist/client/assets/{refresh-cw-DopCMrtR.js → refresh-cw-DiuiLTny.js} +1 -1
  178. package/dist/client/assets/resolveAriaLabelledBy-927ShlEO.js +1 -0
  179. package/dist/client/assets/rightPanelRouteSearch-CExl-IaQ.js +1 -0
  180. package/dist/client/assets/rotate-ccw-XOYBPtyK.js +1 -0
  181. package/dist/client/assets/rotate-cw-D32Z4Sdd.js +1 -0
  182. package/dist/client/assets/runtime-CA2W9mZ-.js +17 -0
  183. package/dist/client/assets/{save-Bh36JIv6.js → save-DjlqeVG_.js} +1 -1
  184. package/dist/client/assets/scroll-area-CylKYQms.js +1 -0
  185. package/dist/client/assets/scrollEdges-D7RQhYjX.js +1 -0
  186. package/dist/client/assets/search-B2nLj573.js +1 -0
  187. package/dist/client/assets/select-qTezUK8F.js +1 -0
  188. package/dist/client/assets/separator-D77goPy-.js +1 -0
  189. package/dist/client/assets/{server-JApJpgLa.js → server-y8Wq0Qwv.js} +1 -1
  190. package/dist/client/assets/session-logic-xfW418Rx.js +1 -0
  191. package/dist/client/assets/{settings-2-CZQg_KUQ.js → settings-2-DpwBKj3m.js} +1 -1
  192. package/dist/client/assets/settingsLayout-BuaXzjIe.js +1 -0
  193. package/dist/client/assets/settingsSections.logic-CR4aytUI.js +1 -0
  194. package/dist/client/assets/sheet-z3AEiSN4.js +1 -0
  195. package/dist/client/assets/{shield-IZEIJ8r7.js → shield-BuXuMVtb.js} +1 -1
  196. package/dist/client/assets/{shield-alert-DY9uVP5G.js → shield-alert-Dfk--o-I.js} +1 -1
  197. package/dist/client/assets/{shield-check-dQ-4cMKk.js → shield-check-BHi57iF1.js} +1 -1
  198. package/dist/client/assets/sidebar-Dst9O2OR.js +1 -0
  199. package/dist/client/assets/sidebarProjectFolders-DR1NBLLz.js +4 -0
  200. package/dist/client/assets/{sidebarStatusText-q88Acn3r.js → sidebarStatusText-7jo1n9E1.js} +1 -1
  201. package/dist/client/assets/skeleton-D_kbMg21.js +1 -0
  202. package/dist/client/assets/{smartphone-gNe1ynB8.js → smartphone-DcUQ17YT.js} +1 -1
  203. package/dist/client/assets/{sparkles-CAf3oJ5S.js → sparkles-nVLLtdqb.js} +1 -1
  204. package/dist/client/assets/spinner-CkXSwhuf.js +1 -0
  205. package/dist/client/assets/{square-pen-Bj3p_Q8E.js → square-pen-dcArpda7.js} +1 -1
  206. package/dist/client/assets/src-I4s4HU8f.js +14 -0
  207. package/dist/client/assets/star-CdUOqzzZ.js +1 -0
  208. package/dist/client/assets/storeSelectors-Cr8JmFCe.js +1 -0
  209. package/dist/client/assets/switch-BMeRsIbg.js +1 -0
  210. package/dist/client/assets/{tabSwitchInstrumentation-CLDM7g1_.js → tabSwitchInstrumentation-BuxWNdCV.js} +1 -1
  211. package/dist/client/assets/terminal-DupJfYRW.js +1 -0
  212. package/dist/client/assets/{terminal-links-BJzH2Ipe.js → terminal-links-Bf4neyyn.js} +1 -1
  213. package/dist/client/assets/textarea-Bu_OTJYe.js +1 -0
  214. package/dist/client/assets/threadPinning-DhnkssEa.js +1 -0
  215. package/dist/client/assets/{threadPriorityRefreshRuntime-D-OkS27H.js → threadPriorityRefreshRuntime-DJjlyX7f.js} +1 -1
  216. package/dist/client/assets/toast-CIjfIWUw.js +1 -0
  217. package/dist/client/assets/toggle-BA4mJ5v9.js +1 -0
  218. package/dist/client/assets/toggle-group-ChGfILTR.js +1 -0
  219. package/dist/client/assets/{tokenModePresentation-lVM0-Wi3.js → tokenModePresentation-B64s_OK3.js} +1 -1
  220. package/dist/client/assets/tooltip-C2VVqN6U.js +1 -0
  221. package/dist/client/assets/{trash-2-CM1zXPGb.js → trash-2-Dqgxd0nF.js} +1 -1
  222. package/dist/client/assets/{triangle-alert-RL_T3KLo.js → triangle-alert-D4cCh6sB.js} +1 -1
  223. package/dist/client/assets/types-Cr8JmFCe.js +1 -0
  224. package/dist/client/assets/{undo-2-x37tfI3V.js → undo-2-C8EQVSSD.js} +1 -1
  225. package/dist/client/assets/{unplug-Cw8iawyX.js → unplug-Dt3Sy2op.js} +1 -1
  226. package/dist/client/assets/useAppSidebarCollapsed-w0th-164.js +1 -0
  227. package/dist/client/assets/{useAtlassian-Bpvpm41l.js → useAtlassian-j7ex3bVN.js} +0 -0
  228. package/dist/client/assets/useButton-Dx5k1uZG.js +1 -0
  229. package/dist/client/assets/useCompositeListItem-BqkyY0oT.js +1 -0
  230. package/dist/client/assets/{clamp-CgH0Dl6R.js → useControlled-HocCF1v9.js} +1 -1
  231. package/dist/client/assets/useDebouncedValue-BevbEbPO.js +1 -0
  232. package/dist/client/assets/useFloatingRootContext-j6TgzEFa.js +1 -0
  233. package/dist/client/assets/useHandleNewThread-gVYty_Bg.js +1 -0
  234. package/dist/client/assets/useLabelableId-CcYPzJvj.js +1 -0
  235. package/dist/client/assets/useLocation-CZ3osOgz.js +1 -0
  236. package/dist/client/assets/useOpenInteractionType-apbY9ZEK.js +1 -0
  237. package/dist/client/assets/usePhoneThreadActions-CnDlicSp.js +1 -0
  238. package/dist/client/assets/usePopupViewport-0k75uXo1.js +1 -0
  239. package/dist/client/assets/useRenderElement-5DRNLBaU.js +1 -0
  240. package/dist/client/assets/useScrollLock-C5WLWXcc.js +1 -0
  241. package/dist/client/assets/{useStatistics-B4vW9Enx.js → useStatistics-GOFXPHO0.js} +2 -2
  242. package/dist/client/assets/useSwipeDismiss-BNHPBucH.js +1 -0
  243. package/dist/client/assets/useThreadActions-B4Xy2soQ.js +2 -0
  244. package/dist/client/assets/useTriggerFocusGuards-C3geWFzt.js +1 -0
  245. package/dist/client/assets/useValueChanged-FVqPwcY_.js +1 -0
  246. package/dist/client/assets/user-round-KsVtJgon.js +1 -0
  247. package/dist/client/assets/utils-B5qahmRn.js +1 -0
  248. package/dist/client/assets/visuallyHidden-j2WbVEv-.js +1 -0
  249. package/dist/client/assets/workspaceMetadataProjection-D3vqw40g.js +1 -0
  250. package/dist/client/assets/{wrench-D0IetWa1.js → wrench-BnpoYEZm.js} +1 -1
  251. package/dist/client/assets/x-BXHT1Zj1.js +1 -0
  252. package/dist/client/index.html +1 -1
  253. package/dist/{collectUint8StreamText-B3klZuIF.mjs → collectUint8StreamText-C_VNyArd.mjs} +1027 -162
  254. package/dist/{collectUint8StreamText-CDu-bszH.cjs → collectUint8StreamText-DStwNTTK.cjs} +1122 -161
  255. package/dist/{makeManagedServerProvider-CsaYHU8T.mjs → makeManagedServerProvider-GZcpSLrW.mjs} +22 -3
  256. package/dist/{makeManagedServerProvider-DeEmDbiq.cjs → makeManagedServerProvider-VzxWN-04.cjs} +32 -1
  257. package/dist/resource-monitor/LICENSE +21 -0
  258. package/dist/resource-monitor/darwin-arm64/LICENSE +21 -0
  259. package/dist/resource-monitor/darwin-arm64/ryco-resource-monitor +0 -0
  260. package/dist/resource-monitor/darwin-x64/LICENSE +21 -0
  261. package/dist/resource-monitor/darwin-x64/ryco-resource-monitor +0 -0
  262. package/dist/resource-monitor/linux-arm64/LICENSE +21 -0
  263. package/dist/resource-monitor/linux-arm64/ryco-resource-monitor +0 -0
  264. package/dist/resource-monitor/linux-x64/LICENSE +21 -0
  265. package/dist/resource-monitor/linux-x64/ryco-resource-monitor +0 -0
  266. package/dist/resource-monitor/ryco-resource-monitor +0 -0
  267. package/dist/resource-monitor/ryco-resource-monitor.exe +0 -0
  268. package/dist/resource-monitor/win32-arm64/LICENSE +21 -0
  269. package/dist/resource-monitor/win32-arm64/ryco-resource-monitor.exe +0 -0
  270. package/dist/resource-monitor/win32-x64/LICENSE +21 -0
  271. package/dist/resource-monitor/win32-x64/ryco-resource-monitor.exe +0 -0
  272. package/package.json +1 -1
  273. package/dist/client/assets/AccountSettings-CvD49Uja.js +0 -1
  274. package/dist/client/assets/AiFocusSettings-CYIp0JOV.js +0 -1
  275. package/dist/client/assets/AnimatedHeight-CM_Eh6tz.js +0 -1
  276. package/dist/client/assets/AppearanceSettings-BwUAv5oz.js +0 -1
  277. package/dist/client/assets/BranchToolbar.logic-CKKpnCfs.js +0 -1
  278. package/dist/client/assets/ChatRightPanel-DYXZNh1m.js +0 -27
  279. package/dist/client/assets/ChatThreadRouteView-B0kj0wFr.js +0 -1
  280. package/dist/client/assets/CommandPaletteDialog-CJKvYVxh.js +0 -1
  281. package/dist/client/assets/CompositeItem-B4ITmHni.js +0 -1
  282. package/dist/client/assets/CompositeRoot-C5I2Yh5e.js +0 -1
  283. package/dist/client/assets/ConnectionsSettings-4l-DXYo6.js +0 -7
  284. package/dist/client/assets/DiagnosticsSettings-B6IUUiYM.js +0 -2
  285. package/dist/client/assets/DialogHandle-Bs7TUuxl.js +0 -1
  286. package/dist/client/assets/DialogPopup-BAK5J3da.js +0 -1
  287. package/dist/client/assets/DialogRoot-DMnQO_iQ.js +0 -1
  288. package/dist/client/assets/DialogTitle-B1m3rLO-.js +0 -1
  289. package/dist/client/assets/DialogTrigger-VXV8wYO4.js +0 -1
  290. package/dist/client/assets/DialogViewport-yUeHNu43.js +0 -1
  291. package/dist/client/assets/DraftChatThreadRouteView-C39ZNgWr.js +0 -1
  292. package/dist/client/assets/HostedConnectionControls-DO5uPfav.js +0 -1
  293. package/dist/client/assets/HostedHubRoot-DkHX6TkK.js +0 -1
  294. package/dist/client/assets/HostedNativeAuthorizationRoute-C1VRYU0-.js +0 -1
  295. package/dist/client/assets/HostedRelayTrustNotice-Cl7lRwRJ.js +0 -1
  296. package/dist/client/assets/Icons-uMh1k5C0.js +0 -1
  297. package/dist/client/assets/IntegrationsSettingsPanel-Mx-1xSUL.js +0 -1
  298. package/dist/client/assets/KeybindingsSettings-Bv3H18VO.js +0 -7
  299. package/dist/client/assets/MobileSheet-DS7_soKu.js +0 -1
  300. package/dist/client/assets/NewWorktreeDialog-CLm1JR27.js +0 -4
  301. package/dist/client/assets/NoActiveThreadState-CFxNrhs_.js +0 -1
  302. package/dist/client/assets/NodeSecuritySettings-B3uURyma.js +0 -1
  303. package/dist/client/assets/OpinionatedPluginsSettings-B7gZOBCs.js +0 -1
  304. package/dist/client/assets/PhoneGetAppInterstitial-DQdUrqs1.js +0 -1
  305. package/dist/client/assets/PhoneGetAppInterstitialBackdrop-DbRPU11Z.js +0 -1
  306. package/dist/client/assets/PhoneHome-BbZKBYb8.js +0 -1
  307. package/dist/client/assets/PhoneSettingsSurface-BJ8jDucY.js +0 -1
  308. package/dist/client/assets/ProjectFavicon-DHnstN4J.js +0 -1
  309. package/dist/client/assets/ProviderModelPicker-Ch69G0-0.js +0 -1
  310. package/dist/client/assets/ProvidersSettingsPanel-Dz-1od7X.js +0 -1
  311. package/dist/client/assets/RedactedSensitiveText-BORE69Ig.js +0 -1
  312. package/dist/client/assets/RootAppShell-DnesFYfo.js +0 -6
  313. package/dist/client/assets/RycoLetterMark-DDx_gBX-.js +0 -1
  314. package/dist/client/assets/SettingsDialog-CWK_H1sI.js +0 -1
  315. package/dist/client/assets/SettingsPanels-DxMEuovz.js +0 -3
  316. package/dist/client/assets/SettingsPanels.editor-D2gxvDPy.js +0 -1
  317. package/dist/client/assets/SourceControlSettings-CB2SdaRk.js +0 -1
  318. package/dist/client/assets/StatisticsPage-MhMDuSSQ.js +0 -1
  319. package/dist/client/assets/StatisticsPanel-D3d0bJgk.js +0 -1
  320. package/dist/client/assets/StatisticsSettingsLink-DlnQpfyr.js +0 -1
  321. package/dist/client/assets/ThreadStatusIndicators-CPpIFcAC.js +0 -0
  322. package/dist/client/assets/ThreadWorkspacePanel-Ct9EINsa.js +0 -2009
  323. package/dist/client/assets/ToolbarRootContext-DtUqN8i6.js +0 -1
  324. package/dist/client/assets/alert-DQjuri3D.js +0 -1
  325. package/dist/client/assets/alert-dialog-Cb2TnXzy.js +0 -1
  326. package/dist/client/assets/arrow-left-Dtj9PfsA.js +0 -1
  327. package/dist/client/assets/arrow-up-right-DGeet8e6.js +0 -1
  328. package/dist/client/assets/authorization-BrGZruGo.js +0 -1
  329. package/dist/client/assets/branding-BEx1jrAA.js +0 -1
  330. package/dist/client/assets/capabilities-Cj8jXZOW.js +0 -1
  331. package/dist/client/assets/chatThreadActions-kwD_yAEt.js +0 -1
  332. package/dist/client/assets/chevron-right-BWYGybX9.js +0 -1
  333. package/dist/client/assets/clock-3-r12DkpRj.js +0 -1
  334. package/dist/client/assets/clock-nNA05brA.js +0 -1
  335. package/dist/client/assets/collapsible-DBPd--L7.js +0 -1
  336. package/dist/client/assets/command-DuPvkUAz.js +0 -1
  337. package/dist/client/assets/composerDraftStore-czbuHgbM.js +0 -11
  338. package/dist/client/assets/data-list-BNy2Nwkd.js +0 -1
  339. package/dist/client/assets/desktopUpdateAtoms-Dz4zQu-C.js +0 -1
  340. package/dist/client/assets/desktopWorkspace-wrPRMcOi.js +0 -1
  341. package/dist/client/assets/device-DbMaLmeM.js +0 -168
  342. package/dist/client/assets/dialog-Csp7hsmq.js +0 -1
  343. package/dist/client/assets/draft-input-COB-ymgx.js +0 -1
  344. package/dist/client/assets/editorPreferences-lQ3Fm4yA.js +0 -1
  345. package/dist/client/assets/empty-BcTA7vWq.js +0 -1
  346. package/dist/client/assets/env-BZZxbmon.js +0 -1
  347. package/dist/client/assets/folder-open-GqwNTbSV.js +0 -1
  348. package/dist/client/assets/getPseudoElementBounds-BaLrkv_J.js +0 -1
  349. package/dist/client/assets/group-CCjhaP2K.js +0 -1
  350. package/dist/client/assets/input-pu0UXdN_.js +0 -1
  351. package/dist/client/assets/kbd-xUvRCeUS.js +0 -1
  352. package/dist/client/assets/label-BzDE8wjR.js +0 -1
  353. package/dist/client/assets/loader-circle-CrtHFAvM.js +0 -1
  354. package/dist/client/assets/main-CZzCxtM-.css +0 -2
  355. package/dist/client/assets/main-stppnsiU.js +0 -9
  356. package/dist/client/assets/menu-g3Hcm2JF.js +0 -1
  357. package/dist/client/assets/plus-B2h-VEqh.js +0 -1
  358. package/dist/client/assets/popover-z5hURYff.js +0 -1
  359. package/dist/client/assets/primary-AnB-Zuft.js +0 -2
  360. package/dist/client/assets/providerDriverMeta-C9M8tUrj.js +0 -1
  361. package/dist/client/assets/providerIconUtils-BXecnJ0v.js +0 -1
  362. package/dist/client/assets/providerInstances-CMy-5cGE.js +0 -1
  363. package/dist/client/assets/providerModels-CMy-5cGE.js +0 -1
  364. package/dist/client/assets/qr-code-B6lBPRxy.js +0 -1
  365. package/dist/client/assets/radio-group-DQahlnSi.js +0 -2
  366. package/dist/client/assets/resolveAriaLabelledBy-CUqcBhyS.js +0 -1
  367. package/dist/client/assets/rightPanelRouteSearch-uEySicf2.js +0 -1
  368. package/dist/client/assets/runtime-DRPzstwF.js +0 -1
  369. package/dist/client/assets/scroll-area-CzUrMo2h.js +0 -1
  370. package/dist/client/assets/scrollEdges-C5VxoJIp.js +0 -1
  371. package/dist/client/assets/search-BGQsenCM.js +0 -1
  372. package/dist/client/assets/select-_C7bRT7k.js +0 -1
  373. package/dist/client/assets/separator-CFUmZFfK.js +0 -1
  374. package/dist/client/assets/session-logic-C5moG_sv.js +0 -4
  375. package/dist/client/assets/settingsDialogStore-DnU14tMG.js +0 -1
  376. package/dist/client/assets/settingsLayout-zwP6p5aD.js +0 -1
  377. package/dist/client/assets/settingsSections.logic-F8RXVmAq.js +0 -1
  378. package/dist/client/assets/sheet-BoROLwxR.js +0 -1
  379. package/dist/client/assets/sidebar-5T3qKIfp.js +0 -1
  380. package/dist/client/assets/sidebarProjectFolders-Bzdw3xc6.js +0 -4
  381. package/dist/client/assets/skeleton-C2GDOvXd.js +0 -1
  382. package/dist/client/assets/spinner-Dlyh0j_K.js +0 -1
  383. package/dist/client/assets/src-Blzsn4sO.js +0 -14
  384. package/dist/client/assets/storeSelectors-BJw1h5Ih.js +0 -1
  385. package/dist/client/assets/switch-CIMwetO3.js +0 -1
  386. package/dist/client/assets/terminal-C_CyIsDD.js +0 -1
  387. package/dist/client/assets/textarea-C0_BLJbT.js +0 -1
  388. package/dist/client/assets/threadPinning-DQrBoIxu.js +0 -1
  389. package/dist/client/assets/toast-D7IDKuLa.js +0 -1
  390. package/dist/client/assets/toggle-DjmkdNns.js +0 -1
  391. package/dist/client/assets/toggle-group-q7LGJy7u.js +0 -1
  392. package/dist/client/assets/tooltip-c9oahm_e.js +0 -1
  393. package/dist/client/assets/types-BJw1h5Ih.js +0 -1
  394. package/dist/client/assets/uiStateStore-C48VlkZ2.js +0 -1
  395. package/dist/client/assets/useButton-CbjUY1n3.js +0 -1
  396. package/dist/client/assets/useCompositeListItem-Mh9CnfjW.js +0 -1
  397. package/dist/client/assets/useDebouncedValue-fMFxXx4-.js +0 -1
  398. package/dist/client/assets/useFloatingRootContext-P6J9bP_1.js +0 -1
  399. package/dist/client/assets/useHandleNewThread-C1VSk4Ji.js +0 -1
  400. package/dist/client/assets/useLabelableId-ve_G1Djw.js +0 -1
  401. package/dist/client/assets/useLocation-LUorHj6V.js +0 -1
  402. package/dist/client/assets/useOpenInteractionType-BcwkVFGu.js +0 -1
  403. package/dist/client/assets/usePhoneThreadActions--SRv1Gdm.js +0 -1
  404. package/dist/client/assets/usePopupViewport-DyXMbxzY.js +0 -1
  405. package/dist/client/assets/useRenderElement-DchFnsR8.js +0 -1
  406. package/dist/client/assets/useScrollLock-DvPB4gyu.js +0 -1
  407. package/dist/client/assets/useSwipeDismiss-8zZC4ynu.js +0 -1
  408. package/dist/client/assets/useThreadActions-wbcN8Mp3.js +0 -2
  409. package/dist/client/assets/useTriggerFocusGuards-DI2oAYh0.js +0 -1
  410. package/dist/client/assets/useValueChanged-DeYQvzxH.js +0 -1
  411. package/dist/client/assets/user-round-Cpzx8pSw.js +0 -1
  412. package/dist/client/assets/utils-Dz7wQZDk.js +0 -1
  413. package/dist/client/assets/visibilityPolling-BwzZdaSN.js +0 -1
  414. package/dist/client/assets/x-C1Cemsov.js +0 -1
@@ -1 +0,0 @@
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-BZZxbmon.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-Blzsn4sO.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-AnB-Zuft.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-czbuHgbM.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-BEx1jrAA.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-BrGZruGo.js";import{t as uo}from"./presentationTier-xlIjcFab.js";import{r as fo}from"./hostedPairing-PogXRAb7.js";import{t as po}from"./settingsDialogStore-DnU14tMG.js";import{i as mo}from"./uiStateStore-C48VlkZ2.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.20`,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};