ryco-cli 0.1.9 → 0.1.11

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 (283) hide show
  1. package/dist/{AcpNativeLogging-CwXNgeCl.mjs → AcpNativeLogging-Ba9Nn9Re.mjs} +1 -1
  2. package/dist/{AcpNativeLogging-BBLrglnY.cjs → AcpNativeLogging-Be1KGJfF.cjs} +1 -1
  3. package/dist/{AzureDevOpsSourceControlProvider-lRTMr9X9.mjs → AzureDevOpsSourceControlProvider-CGlK6M0b.mjs} +2 -2
  4. package/dist/{AzureDevOpsSourceControlProvider-BMQxxk2n.cjs → AzureDevOpsSourceControlProvider-CVj-F-pW.cjs} +2 -2
  5. package/dist/{BitbucketSourceControlProvider-F1J_75c0.mjs → BitbucketSourceControlProvider-BV6iRDi7.mjs} +2 -2
  6. package/dist/{BitbucketSourceControlProvider-BXDk4GzL.cjs → BitbucketSourceControlProvider-CEZEd4PX.cjs} +2 -2
  7. package/dist/{ClaudeDriver-B_pvBuh5.cjs → ClaudeDriver-lBU7EyUX.cjs} +2 -2
  8. package/dist/{ClaudeDriver-BpYiEftb.mjs → ClaudeDriver-rooMNrJz.mjs} +2 -2
  9. package/dist/{CodexDriver-Bcju44ZM.cjs → CodexDriver-CZCIJSLV.cjs} +4 -4
  10. package/dist/{CodexDriver-6IRQy37T.mjs → CodexDriver-DBz2rPXb.mjs} +4 -4
  11. package/dist/{CodexTextGeneration-CCvcMT6Y.mjs → CodexTextGeneration-BeG7ymPC.mjs} +1 -1
  12. package/dist/{CodexTextGeneration-yaU53Kmz.cjs → CodexTextGeneration-BvIcyD1P.cjs} +1 -1
  13. package/dist/{CopilotDriver-CTxl0KmP.cjs → CopilotDriver-CX5zhEdZ.cjs} +3 -3
  14. package/dist/{CopilotDriver-BCe5V1Ll.mjs → CopilotDriver-D36vbGbn.mjs} +3 -3
  15. package/dist/{CursorDriver-D1Agqrbj.cjs → CursorDriver-CPBVeesr.cjs} +3 -3
  16. package/dist/{CursorDriver-C4V25d1y.mjs → CursorDriver-DWuuOSkJ.mjs} +3 -3
  17. package/dist/{ForgejoSourceControlProvider-C-NI9vaC.mjs → ForgejoSourceControlProvider-CeN7Snfr.mjs} +2 -2
  18. package/dist/{ForgejoSourceControlProvider-CV1lljGK.cjs → ForgejoSourceControlProvider-CzmmcAZO.cjs} +2 -2
  19. package/dist/{GitHubSourceControlProvider-B_7J1jOl.cjs → GitHubSourceControlProvider-DfFR9O2o.cjs} +2 -2
  20. package/dist/{GitHubSourceControlProvider-BeCMPF92.mjs → GitHubSourceControlProvider-Dmz1LJct.mjs} +2 -2
  21. package/dist/{GitLabSourceControlProvider-0BeWchVS.mjs → GitLabSourceControlProvider-C21lwphV.mjs} +2 -2
  22. package/dist/{GitLabSourceControlProvider-U0xcv577.cjs → GitLabSourceControlProvider-DGoelNmL.cjs} +2 -2
  23. package/dist/{GrokDriver-mkLP3IZl.cjs → GrokDriver-CIXj_4ry.cjs} +3 -3
  24. package/dist/{GrokDriver-DFw7DOdK.mjs → GrokDriver-qKX1a63G.mjs} +3 -3
  25. package/dist/{OpenCodeDriver-ChWHrFi7.mjs → OpenCodeDriver-CbdswhqU.mjs} +2 -2
  26. package/dist/{OpenCodeDriver-C_KFYA-P.cjs → OpenCodeDriver-DDEuwtXl.cjs} +2 -2
  27. package/dist/{SourceControlProviderDiscoveryCatalog-BTJDoEx1.mjs → SourceControlProviderDiscoveryCatalog-4_4yahsa.mjs} +1 -1
  28. package/dist/{SourceControlProviderDiscoveryCatalog-Bwu_JBJN.cjs → SourceControlProviderDiscoveryCatalog-DJWDCoup.cjs} +1 -1
  29. package/dist/bin.cjs +46 -20
  30. package/dist/bin.mjs +46 -20
  31. package/dist/client/assets/AccountSettings-BUoiS8x1.js +1 -0
  32. package/dist/client/assets/AiFocusSettings-Cz1Uqn7a.js +1 -0
  33. package/dist/client/assets/AnimatedHeight-BIsV_Z3J.js +1 -0
  34. package/dist/client/assets/AppearanceSettings-CYbSApl4.js +1 -0
  35. package/dist/client/assets/{BranchToolbar.logic-CvclFpSW.js → BranchToolbar.logic-LIanCEVr.js} +1 -1
  36. package/dist/client/assets/ChatRightPanel-CKEjpQ_x.js +27 -0
  37. package/dist/client/assets/ChatThreadRouteView-D50onHY2.js +1 -0
  38. package/dist/client/assets/CommandPaletteDialog-DdRKgZ8m.js +1 -0
  39. package/dist/client/assets/{CompositeItem-e0rusLTG.js → CompositeItem-F3NGn6aG.js} +1 -1
  40. package/dist/client/assets/CompositeRoot-CmJGfRtc.js +1 -0
  41. package/dist/client/assets/ConnectionsSettings--CbTzkTn.js +7 -0
  42. package/dist/client/assets/DiagnosticsSettings-C74u3ce5.js +2 -0
  43. package/dist/client/assets/{DialogHandle-DZVZpjWD.js → DialogHandle-C4uSr9wX.js} +1 -1
  44. package/dist/client/assets/DialogPopup-Dck8r8Hn.js +1 -0
  45. package/dist/client/assets/DialogRoot-BpIvUdm7.js +1 -0
  46. package/dist/client/assets/{DialogTitle-CtpwXIBL.js → DialogTitle-CCedPAjV.js} +1 -1
  47. package/dist/client/assets/{DialogTrigger-CdeFWE8i.js → DialogTrigger-CYJ7_YcV.js} +1 -1
  48. package/dist/client/assets/DialogViewport-D-CrTM-P.js +1 -0
  49. package/dist/client/assets/DraftChatThreadRouteView-RTmLGTl0.js +1 -0
  50. package/dist/client/assets/{ExternalIdentityWeb.logic-DsqwSlwL.js → ExternalIdentityWeb.logic-D64j70NH.js} +1 -1
  51. package/dist/client/assets/{GlassSurface-EZnNd1mF.js → GlassSurface-C3IIWMu9.js} +1 -1
  52. package/dist/client/assets/HostedConnectionControls-CKiC01ju.js +1 -0
  53. package/dist/client/assets/HostedHubRoot-BS3rAYTy.js +1 -0
  54. package/dist/client/assets/HostedNativeAuthorizationRoute-BFTDyh4N.js +1 -0
  55. package/dist/client/assets/HostedRelayTrustNotice-eEOPKsBg.js +1 -0
  56. package/dist/client/assets/Icons-CT3nd2MA.js +1 -0
  57. package/dist/client/assets/IntegrationsSettingsPanel-Cg4eRHm_.js +1 -0
  58. package/dist/client/assets/KeybindingsSettings-CYj67N2D.js +7 -0
  59. package/dist/client/assets/McpServersSettings-Bc61hRUY.js +6 -0
  60. package/dist/client/assets/MobileSheet-CkeG6_SP.js +1 -0
  61. package/dist/client/assets/NewWorktreeDialog-CTlFjKa4.js +4 -0
  62. package/dist/client/assets/NoActiveThreadState-Dw9aoU2J.js +1 -0
  63. package/dist/client/assets/NodeSecuritySettings-DMkkTgfg.js +1 -0
  64. package/dist/client/assets/OpinionatedPluginsSettings-CeoSmZ90.js +1 -0
  65. package/dist/client/assets/PhoneGetAppInterstitial-7ZxxVbUB.js +1 -0
  66. package/dist/client/assets/PhoneGetAppInterstitialBackdrop-B8vfJdZd.js +1 -0
  67. package/dist/client/assets/PhoneHome-DRRoCd_y.js +1 -0
  68. package/dist/client/assets/PhoneSettingsSurface-LNEaPHQC.js +1 -0
  69. package/dist/client/assets/ProjectFavicon-BIMdZxK6.js +1 -0
  70. package/dist/client/assets/ProviderModelPicker-jd6GjQkO.js +1 -0
  71. package/dist/client/assets/ProviderUpdateLaunchNotification.logic-BkoRegCn.js +1 -0
  72. package/dist/client/assets/ProvidersSettingsPanel-v2SvoEGx.js +1 -0
  73. package/dist/client/assets/RedactedSensitiveText-CxtaUiKH.js +1 -0
  74. package/dist/client/assets/RootAppShell-CFjrYjtn.js +6 -0
  75. package/dist/client/assets/RycoLetterMark-Bk0kvGJ_.js +1 -0
  76. package/dist/client/assets/SettingsDialog-CvGTsSV0.js +1 -0
  77. package/dist/client/assets/SettingsPanels-BmhZ8u4B.js +3 -0
  78. package/dist/client/assets/SettingsPanels.editor-B2x4U4rW.js +1 -0
  79. package/dist/client/assets/SourceControlSettings-DvPydmxX.js +1 -0
  80. package/dist/client/assets/StatisticsPage-Duk2cHVH.js +1 -0
  81. package/dist/client/assets/StatisticsPanel-D-uNJcdj.js +1 -0
  82. package/dist/client/assets/StatisticsSettingsLink-Cx43bOeo.js +1 -0
  83. package/dist/client/assets/ThreadStatusIndicators-D0xoATCw.js +0 -0
  84. package/dist/client/assets/{ThreadTerminalDrawer-Dju6roQA.js → ThreadTerminalDrawer-DjX8p7IH.js} +3 -3
  85. package/dist/client/assets/{ThreadWorkspacePanel-hfIocZRN.js → ThreadWorkspacePanel-DI0GXPBf.js} +18 -18
  86. package/dist/client/assets/{ToolbarRootContext-CgV898DN.js → ToolbarRootContext-BgqqXVly.js} +1 -1
  87. package/dist/client/assets/{WorkItemsTab-DYgsIthY.js → WorkItemsTab-ow45makA.js} +8 -8
  88. package/dist/client/assets/alert-LqMhbdE9.js +1 -0
  89. package/dist/client/assets/alert-dialog-DxoA6ky8.js +1 -0
  90. package/dist/client/assets/{authorization-CFcCWeGd.js → authorization-mIJKV2yp.js} +1 -1
  91. package/dist/client/assets/badge-CXw6fWrB.js +1 -0
  92. package/dist/client/assets/{branding-CG1VEma6.js → branding-C8SLy6Af.js} +1 -1
  93. package/dist/client/assets/button-BAbJxRzt.js +1 -0
  94. package/dist/client/assets/{capabilities-CK9Wa-Au.js → capabilities-BQuqC7jg.js} +1 -1
  95. package/dist/client/assets/{chatThreadActions-Ooky34bb.js → chatThreadActions-DQ8aOQ1g.js} +1 -1
  96. package/dist/client/assets/collapsible-dxy6kc2k.js +1 -0
  97. package/dist/client/assets/command-CGNKG_Oe.js +1 -0
  98. package/dist/client/assets/composerDraftStore-CdJJZe42.js +11 -0
  99. package/dist/client/assets/copy-UQjKGt7t.js +1 -0
  100. package/dist/client/assets/data-list-CYKBxN62.js +1 -0
  101. package/dist/client/assets/{desktopUpdateAtoms-C9VOpM6h.js → desktopUpdateAtoms-C82GmR67.js} +1 -1
  102. package/dist/client/assets/{desktopWorkspace-BOWgdyPs.js → desktopWorkspace-G5Z_JRbm.js} +1 -1
  103. package/dist/client/assets/{device-CLd1blIe.js → device-B56cBWWt.js} +12 -12
  104. package/dist/client/assets/dialog-DQsYchqu.js +1 -0
  105. package/dist/client/assets/draft-input-CkzOk8BY.js +1 -0
  106. package/dist/client/assets/{editorPreferences-C79SevBP.js → editorPreferences-CTDEj79K.js} +1 -1
  107. package/dist/client/assets/empty-DwzqNgCP.js +1 -0
  108. package/dist/client/assets/{env-CBdFekj3.js → env-B4arEvJg.js} +1 -1
  109. package/dist/client/assets/{getPseudoElementBounds-CWoLtsYr.js → getPseudoElementBounds-X62ElHN8.js} +1 -1
  110. package/dist/client/assets/group-D9ER9giz.js +1 -0
  111. package/dist/client/assets/{index-Bbc24tew.js → index-Bbz4fkK_.js} +2 -2
  112. package/dist/client/assets/input-CHEwW3oH.js +1 -0
  113. package/dist/client/assets/kbd-DCGQZk18.js +1 -0
  114. package/dist/client/assets/{keybindings-n2U57Td0.js → keybindings-CWJ7E9ZI.js} +1 -1
  115. package/dist/client/assets/label-CVFHsLFO.js +1 -0
  116. package/dist/client/assets/{lib-DoLGGVrW.js → lib-qiiNMGgU.js} +1 -1
  117. package/dist/client/assets/{logging-FtLrPmK_.js → logging-M8H3z7rQ.js} +1 -1
  118. package/dist/client/assets/main-DaYHZt-J.css +2 -0
  119. package/dist/client/assets/{main-C2i8ecSj.js → main-Dwu2cT6v.js} +3 -3
  120. package/dist/client/assets/menu-Dvxh8sD5.js +1 -0
  121. package/dist/client/assets/popover-CuH9Yrj3.js +1 -0
  122. package/dist/client/assets/{primary-0ymoUGkq.js → primary-OskAInOO.js} +1 -1
  123. package/dist/client/assets/{projectPaths-CHDYD_Gc.js → projectPaths-lDhAE9o_.js} +1 -1
  124. package/dist/client/assets/{providerDriverMeta-lsEf84Mz.js → providerDriverMeta-I0TSo-QI.js} +1 -1
  125. package/dist/client/assets/providerIconUtils-DnSYUN9l.js +1 -0
  126. package/dist/client/assets/providerInstances-BJcfB_9E.js +1 -0
  127. package/dist/client/assets/providerModels-BJcfB_9E.js +1 -0
  128. package/dist/client/assets/qr-code-Bddq6K7S.js +1 -0
  129. package/dist/client/assets/radio-group-CBZFr4C8.js +2 -0
  130. package/dist/client/assets/resolveAriaLabelledBy-CD_ugzhJ.js +1 -0
  131. package/dist/client/assets/{rightPanelRouteSearch-DkhE1otz.js → rightPanelRouteSearch-DB5gQGHK.js} +1 -1
  132. package/dist/client/assets/runtime-DKwoXpJv.js +1 -0
  133. package/dist/client/assets/scroll-area-Drsa8bNB.js +1 -0
  134. package/dist/client/assets/scrollEdges-B-cqxY4l.js +1 -0
  135. package/dist/client/assets/select-BYbVr-yg.js +1 -0
  136. package/dist/client/assets/separator-CdS5bi4Z.js +1 -0
  137. package/dist/client/assets/{session-logic-B0shVXpN.js → session-logic-DElAta-Z.js} +1 -1
  138. package/dist/client/assets/settingsDialogStore-ygYoScKe.js +1 -0
  139. package/dist/client/assets/settingsLayout-D8glO7f1.js +1 -0
  140. package/dist/client/assets/settingsSections.logic-F8RXVmAq.js +1 -0
  141. package/dist/client/assets/sheet-BO78gIKZ.js +1 -0
  142. package/dist/client/assets/sidebar-Dm6l2GA6.js +1 -0
  143. package/dist/client/assets/sidebarProjectFolders-Cs13ZUN8.js +4 -0
  144. package/dist/client/assets/{sidebarStatusText-DjLAEM1H.js → sidebarStatusText-D0HT0fek.js} +1 -1
  145. package/dist/client/assets/skeleton-CvQSeJbw.js +1 -0
  146. package/dist/client/assets/spinner-ClF0jOcX.js +1 -0
  147. package/dist/client/assets/src-Vf4LVnMX.js +14 -0
  148. package/dist/client/assets/storeSelectors-Cq_JKyiF.js +1 -0
  149. package/dist/client/assets/switch-BTGo9Yip.js +1 -0
  150. package/dist/client/assets/{terminal-links-DERnXf-G.js → terminal-links-CZ3c9AbA.js} +1 -1
  151. package/dist/client/assets/textarea-RFPODxWW.js +1 -0
  152. package/dist/client/assets/{threadPriorityRefreshRuntime-D2XRdn_X.js → threadPriorityRefreshRuntime-DJF5drVD.js} +1 -1
  153. package/dist/client/assets/toast-CcSCAm4B.js +1 -0
  154. package/dist/client/assets/toggle-I6h33Cu5.js +1 -0
  155. package/dist/client/assets/toggle-group-mLIkiJtU.js +1 -0
  156. package/dist/client/assets/tooltip-C8sAONBj.js +1 -0
  157. package/dist/client/assets/types-Cq_JKyiF.js +1 -0
  158. package/dist/client/assets/{uiStateStore-hgy2ilHo.js → uiStateStore-B6pjzSjj.js} +1 -1
  159. package/dist/client/assets/{useAtlassian-1BSXt3BO.js → useAtlassian-Bx2ua3JV.js} +0 -0
  160. package/dist/client/assets/{useButton-_xmxdcVX.js → useButton-D__1LqCF.js} +1 -1
  161. package/dist/client/assets/useCompositeListItem-Cmr_nuuG.js +1 -0
  162. package/dist/client/assets/useCopyToClipboard-BTpWxumf.js +1 -0
  163. package/dist/client/assets/{useDebouncedValue-DU7gLY9w.js → useDebouncedValue-DHjoudTq.js} +1 -1
  164. package/dist/client/assets/{useFloatingRootContext-CSPbIu1q.js → useFloatingRootContext-D5EZmrCa.js} +1 -1
  165. package/dist/client/assets/useHandleNewThread-DHO0PWGZ.js +1 -0
  166. package/dist/client/assets/{useLabelableId-COmfNFnd.js → useLabelableId-DnQJ7amm.js} +1 -1
  167. package/dist/client/assets/useLocation-CDeYzWW6.js +1 -0
  168. package/dist/client/assets/{useOpenInteractionType-JaQBnIly.js → useOpenInteractionType-CjtpACKR.js} +1 -1
  169. package/dist/client/assets/usePhoneThreadActions-OTf7yIbN.js +1 -0
  170. package/dist/client/assets/usePopupViewport-BuhsNdVy.js +1 -0
  171. package/dist/client/assets/useScrollLock-D3tMGsRk.js +1 -0
  172. package/dist/client/assets/{useStatistics-B2NNfOqV.js → useStatistics-DEtKeVPP.js} +14 -14
  173. package/dist/client/assets/{useSwipeDismiss-B8Fo31QE.js → useSwipeDismiss-CbgDJvw1.js} +1 -1
  174. package/dist/client/assets/{useThreadActions-B9kmG6FU.js → useThreadActions-DLxhOMkz.js} +1 -1
  175. package/dist/client/assets/{useTriggerFocusGuards-O2ZE3JtI.js → useTriggerFocusGuards-CrugmkhX.js} +1 -1
  176. package/dist/client/assets/{useValueChanged-Dj0YXujm.js → useValueChanged-MQtIzPIU.js} +1 -1
  177. package/dist/client/assets/utils-BofFIn5Y.js +1 -0
  178. package/dist/client/index.html +1 -1
  179. package/dist/{collectUint8StreamText-Dn-L1KcR.cjs → collectUint8StreamText-Bb52hlpd.cjs} +36 -6
  180. package/dist/{collectUint8StreamText-DNY4x71l.mjs → collectUint8StreamText-EDg4F0TU.mjs} +31 -7
  181. package/dist/{makeManagedServerProvider-D3T5X-B4.mjs → makeManagedServerProvider-Cf8bNWwc.mjs} +1 -1
  182. package/dist/{makeManagedServerProvider-DNnEIuhW.cjs → makeManagedServerProvider-itynW7xv.cjs} +1 -1
  183. package/package.json +1 -1
  184. package/dist/client/assets/AccountSettings-ckhtafp7.js +0 -1
  185. package/dist/client/assets/AiFocusSettings-DGHWPxgZ.js +0 -1
  186. package/dist/client/assets/AnimatedHeight-BwF3D1vB.js +0 -1
  187. package/dist/client/assets/AppearanceSettings-CDvljGDS.js +0 -1
  188. package/dist/client/assets/ChatRightPanel-CL4qBTZb.js +0 -27
  189. package/dist/client/assets/ChatThreadRouteView-BuOmyy7a.js +0 -1
  190. package/dist/client/assets/CommandPaletteDialog-lCv8qmpm.js +0 -1
  191. package/dist/client/assets/CompositeRoot-vnNIb6NL.js +0 -1
  192. package/dist/client/assets/ConnectionsSettings-BJJrdASq.js +0 -7
  193. package/dist/client/assets/DiagnosticsSettings-CxT6modq.js +0 -2
  194. package/dist/client/assets/DialogPopup-BIJxt62s.js +0 -1
  195. package/dist/client/assets/DialogRoot-8xRqqTn8.js +0 -1
  196. package/dist/client/assets/DialogViewport-C2oKvkDR.js +0 -1
  197. package/dist/client/assets/DraftChatThreadRouteView-FriWZLgB.js +0 -1
  198. package/dist/client/assets/HostedConnectionControls-BYS30u9D.js +0 -1
  199. package/dist/client/assets/HostedHubRoot-Bi0LEQCK.js +0 -1
  200. package/dist/client/assets/HostedNativeAuthorizationRoute-B-F2I7S_.js +0 -1
  201. package/dist/client/assets/HostedRelayTrustNotice-CB0O5OAN.js +0 -1
  202. package/dist/client/assets/Icons-Cme5LL0k.js +0 -1
  203. package/dist/client/assets/IntegrationsSettingsPanel-CS9vrmPw.js +0 -1
  204. package/dist/client/assets/KeybindingsSettings-CQi3dbgG.js +0 -7
  205. package/dist/client/assets/McpServersSettings-BMV56xhW.js +0 -6
  206. package/dist/client/assets/MobileSheet-C8OrQzw0.js +0 -1
  207. package/dist/client/assets/NewWorktreeDialog-DnxmXlh2.js +0 -4
  208. package/dist/client/assets/NoActiveThreadState-BWs9JspL.js +0 -1
  209. package/dist/client/assets/NodeSecuritySettings-iTvQFged.js +0 -1
  210. package/dist/client/assets/OpinionatedPluginsSettings-BcGJ1f7b.js +0 -1
  211. package/dist/client/assets/PhoneGetAppInterstitial-BJGf9FwA.js +0 -1
  212. package/dist/client/assets/PhoneGetAppInterstitialBackdrop-KgY3ydJF.js +0 -1
  213. package/dist/client/assets/PhoneHome-kBrFqF5K.js +0 -1
  214. package/dist/client/assets/PhoneSettingsSurface-CBI6Gl8b.js +0 -1
  215. package/dist/client/assets/ProjectFavicon-D0HVbYDF.js +0 -1
  216. package/dist/client/assets/ProviderModelPicker-DZTCKskK.js +0 -1
  217. package/dist/client/assets/ProviderUpdateLaunchNotification.logic-CtfZzmYI.js +0 -1
  218. package/dist/client/assets/ProvidersSettingsPanel-DAz8hMXw.js +0 -1
  219. package/dist/client/assets/RedactedSensitiveText-CRGSSHz3.js +0 -1
  220. package/dist/client/assets/RootAppShell-BWtqIOLh.js +0 -6
  221. package/dist/client/assets/RycoLetterMark-E82lj57c.js +0 -1
  222. package/dist/client/assets/SettingsDialog-RrFirXQp.js +0 -1
  223. package/dist/client/assets/SettingsPanels-bLK5JAV2.js +0 -3
  224. package/dist/client/assets/SettingsPanels.editor-DTAK4nlM.js +0 -1
  225. package/dist/client/assets/SourceControlSettings-CpnAAcyj.js +0 -1
  226. package/dist/client/assets/StatisticsPage-DwU3oJRO.js +0 -1
  227. package/dist/client/assets/StatisticsPanel-8OSQWA79.js +0 -1
  228. package/dist/client/assets/StatisticsSettingsLink-Bb86VtRL.js +0 -1
  229. package/dist/client/assets/ThreadStatusIndicators-wgiSGtn6.js +0 -0
  230. package/dist/client/assets/alert-DFo8_l6D.js +0 -1
  231. package/dist/client/assets/alert-dialog-Cmodiuqg.js +0 -1
  232. package/dist/client/assets/badge-BbJiUmhG.js +0 -1
  233. package/dist/client/assets/button-BT6cGe5S.js +0 -1
  234. package/dist/client/assets/collapsible-BIEfHdzc.js +0 -1
  235. package/dist/client/assets/command-BjXuIvYa.js +0 -1
  236. package/dist/client/assets/composerDraftStore-_Xy-iY4b.js +0 -11
  237. package/dist/client/assets/data-list-iVYHRfWS.js +0 -1
  238. package/dist/client/assets/dialog-BUIS3TXH.js +0 -1
  239. package/dist/client/assets/draft-input-CUkU2EAu.js +0 -1
  240. package/dist/client/assets/empty-BNn5X77p.js +0 -1
  241. package/dist/client/assets/group-a6GUMeTh.js +0 -1
  242. package/dist/client/assets/input-zjUwoDs3.js +0 -1
  243. package/dist/client/assets/kbd-BGOWI5KX.js +0 -1
  244. package/dist/client/assets/label-DWGvDLsD.js +0 -1
  245. package/dist/client/assets/main-an0sD0U2.css +0 -2
  246. package/dist/client/assets/menu-CwPZHq2g.js +0 -1
  247. package/dist/client/assets/popover-j6ZF-s94.js +0 -1
  248. package/dist/client/assets/providerIconUtils-_WuNo2Ek.js +0 -1
  249. package/dist/client/assets/providerInstances-DEQekDE8.js +0 -1
  250. package/dist/client/assets/providerModels-DEQekDE8.js +0 -1
  251. package/dist/client/assets/qr-code-DbscZ6Qz.js +0 -1
  252. package/dist/client/assets/radio-group-BTtFIcDI.js +0 -2
  253. package/dist/client/assets/resolveAriaLabelledBy-CxOsaNI8.js +0 -1
  254. package/dist/client/assets/runtime-BkRtSwRY.js +0 -1
  255. package/dist/client/assets/scroll-area-B-bu3v0j.js +0 -1
  256. package/dist/client/assets/scrollEdges-CDEU4fOg.js +0 -1
  257. package/dist/client/assets/select-rPdFVPfm.js +0 -1
  258. package/dist/client/assets/separator-CaVw81t6.js +0 -1
  259. package/dist/client/assets/settingsDialogStore-CPtQPrek.js +0 -1
  260. package/dist/client/assets/settingsLayout-B8os-EWr.js +0 -1
  261. package/dist/client/assets/settingsSections.logic-Be8uaymC.js +0 -1
  262. package/dist/client/assets/sheet-DQBndeJT.js +0 -1
  263. package/dist/client/assets/sidebar-H-CSxQVD.js +0 -1
  264. package/dist/client/assets/sidebarProjectFolders-CsZlmaJg.js +0 -4
  265. package/dist/client/assets/skeleton-CCuGgPK1.js +0 -1
  266. package/dist/client/assets/spinner-CgrOdIjl.js +0 -1
  267. package/dist/client/assets/src-b7-hpIff.js +0 -14
  268. package/dist/client/assets/storeSelectors-BLHJVLCP.js +0 -1
  269. package/dist/client/assets/switch-cMx5Wv_R.js +0 -1
  270. package/dist/client/assets/textarea-DIqqrD8A.js +0 -1
  271. package/dist/client/assets/toast-DonYDy-6.js +0 -1
  272. package/dist/client/assets/toggle-BIs83JSj.js +0 -1
  273. package/dist/client/assets/toggle-group-0LgplGMc.js +0 -1
  274. package/dist/client/assets/tooltip-BaJgdXlL.js +0 -1
  275. package/dist/client/assets/types-BLHJVLCP.js +0 -1
  276. package/dist/client/assets/useCompositeListItem-dLIU4XjY.js +0 -1
  277. package/dist/client/assets/useCopyToClipboard-qG2nhvjQ.js +0 -1
  278. package/dist/client/assets/useHandleNewThread-COAg-4eT.js +0 -1
  279. package/dist/client/assets/useLocation-DsqdpYA5.js +0 -1
  280. package/dist/client/assets/usePhoneThreadActions-RjcSVspy.js +0 -1
  281. package/dist/client/assets/usePopupViewport-wXfO6SZE.js +0 -1
  282. package/dist/client/assets/useScrollLock-Dr_P7FLZ.js +0 -1
  283. package/dist/client/assets/utils-c6dglOTK.js +0 -1
@@ -0,0 +1 @@
1
+ import{i as e,n as t,r as n,t as r}from"./react-SIfiwpqq.js";import{t as i}from"./compiler-runtime-qmuS0Svy.js";import{_ as a,g as o,h as s,l as c,n as l,p as u,t as d,u as f,y as p}from"./env-B4arEvJg.js";import{$c as m,$o as h,Aa as g,Ai as _,Al as v,Ar as y,As as b,Ba as x,Bo as S,Br as C,C as w,Cr as T,Cs as E,Dc as D,Dl as O,Ea as k,Ei as A,El as j,Es as M,Fa as N,Fl as P,Ga as F,Gc as I,Gi as L,Gr as R,Gs as ee,H as te,Ha as ne,Hc as re,Ho as ie,Hs as ae,Ii as oe,Il as se,Ir as ce,Ja as le,Jc as ue,Ki as de,L as fe,La as pe,Ll as me,Ml as he,Mo as ge,Ms as _e,Na as ve,Nr as ye,O as be,Oa as xe,Oc as Se,Or as Ce,Os as we,Pa as Te,Pc as Ee,Pl as De,Qc as Oe,Qo as ke,Qr as Ae,Ra as je,Rc as Me,Ri as Ne,Si as Pe,So as Fe,Sr as Ie,T as Le,Ta as Re,Ti as ze,Tl as Be,Ts as Ve,U as He,Ua as Ue,Ui as We,V as Ge,Vc as Ke,Vo as qe,Vr as Je,Wa as Ye,Wc as Xe,Wi as Ze,Xc as Qe,Xo as $e,Xr as et,Xs as tt,Ya as nt,Yc as rt,Yo as it,Za as at,Zc as ot,Zo as st,Zs as ct,_a as lt,_c as ut,_i as dt,_l as ft,_o as pt,_r as mt,ac as ht,ao as gt,as as _t,ba as vt,bc as yt,bl as bt,br as xt,bs as St,cl as Ct,co as wt,cs as Tt,da as Et,di as Dt,dl as Ot,do as kt,ec as At,ei as jt,el as Mt,eo as Nt,es as Pt,fa as Ft,fi as It,fl as Lt,gc as Rt,gl as zt,go as Bt,gr as Vt,gs as Ht,ha as Ut,hc as Wt,hl as Gt,ho as Kt,ia as qt,ic as Jt,is as Yt,it as Xt,ja as Zt,jc as Qt,jl as $t,ka as en,kl as tn,li as nn,ll as rn,lo as an,ma as on,mi as sn,ml as cn,ns as ln,oc as un,ol as dn,pa as fn,pc as pn,pi as mn,qa as hn,qi as gn,qo as _n,rc as vn,ro as yn,rs as bn,sc as xn,sl as Sn,ss as Cn,st as wn,t as Tn,tc as En,ua as Dn,ui as On,uo as kn,us as An,va as jn,vi as Mn,vr as Nn,vs as Pn,wc as Fn,wi as In,wr as Ln,ws as Rn,xc as zn,xo as Bn,xr as Vn,y as Hn,ya as Un,yc as Wn,yl as Gn,yo as Kn,zl as qn,zo as Jn}from"./src-Vf4LVnMX.js";import{$ as Yn,$t as Xn,B as Zn,Bt as Qn,Ct as $n,Ft as er,G as tr,Gt as nr,H as rr,Ht as ir,It as ar,J as or,Jt as sr,K as cr,Kt as lr,L as ur,Lt as dr,Mt as fr,Nt as z,Pt as pr,Q as mr,Qt as hr,Rt as gr,St as _r,Ut as vr,V as yr,Vt as br,W as xr,Wt as Sr,Xt as Cr,Y as wr,Yt as Tr,Z as Er,Zt as Dr,an as Or,at as kr,bt as Ar,cn as jr,ct as Mr,en as Nr,ft as Pr,in as Fr,it as Ir,jt as Lr,kt as Rr,ln as zr,mt as Br,n as Vr,nn as Hr,nt as Ur,o as Wr,on as Gr,ot as Kr,pt as qr,q as Jr,qt as Yr,r as Xr,rn as Zr,rt as Qr,sn as $r,st as ei,tn as ti,tt as ni,ut as ri,vt as ii,w as ai,wt as oi,xt as si,yt as ci,zt as li}from"./primary-OskAInOO.js";import{Bt as ui,Ct as di,It as fi,Lt as pi,Mt as mi,Rt as hi,_t as gi,bt as _i,gt as vi,i as yi,n as bi,nt as xi,r as Si,rt as Ci,vt as wi,zt as Ti}from"./composerDraftStore-CdJJZe42.js";import{t as Ei}from"./pairingUrl-rQM9kSGT.js";import{n as Di,t as Oi}from"./visibilityPolling-BwzZdaSN.js";import{i as ki}from"./branding-C8SLy6Af.js";import{a as Ai,n as ji,r as Mi}from"./perfInstrumentation-BT27w4tn.js";import{$ as Ni,A as Pi,B as Fi,Bt as Ii,C as Li,D as Ri,E as zi,F as Bi,Ft as Vi,G as Hi,Gt as Ui,H as Wi,Ht as Gi,I as Ki,It as qi,J as Ji,K as Yi,L as Xi,Lt as Zi,M as Qi,N as $i,Nt as ea,O as ta,P as na,Pt as ra,Q as ia,R as aa,Rt as oa,S as sa,St as ca,T as la,U as ua,Ut as da,V as fa,Vt as pa,W as ma,Wt as ha,X as ga,Y as _a,Z as va,_ as ya,_t as ba,a as xa,at as Sa,b as Ca,bt as wa,c as Ta,ct as Ea,d as Da,dt as Oa,et as ka,f as Aa,ft as ja,g as Ma,gt as Na,h as Pa,ht as Fa,it as Ia,j as La,jt as Ra,k as za,l as Ba,lt as Va,m as Ha,mt as Ua,nt as Wa,o as Ga,ot as Ka,p as qa,pt as Ja,q as Ya,rt as B,s as Xa,st as Za,tt as Qa,u as $a,ut as eo,vt as to,w as no,wt as ro,x as io,yt as ao,z as oo,zt as so}from"./authorization-mIJKV2yp.js";import{t as co}from"./presentationTier-xlIjcFab.js";import{r as lo}from"./hostedPairing-PogXRAb7.js";import{t as uo}from"./settingsDialogStore-ygYoScKe.js";import{i as fo}from"./uiStateStore-B6pjzSjj.js";var V=e(r(),1),po=Gt,mo=vn,ho=globalThis.Number,go=e=>{if(e===`NaN`)return Mt(NaN);if(e===`Infinity`)return Mt(1/0);if(e===`-Infinity`)return Mt(-1/0);if(e.trim()===``)return m();let t=ho(e);return ho.isNaN(t)?m():Mt(t)};function _o(e){return{_tag:`Value`,value:e}}function vo(e,t){return{_tag:`Record`,keys:e,value:t}}function yo(e,t){return{_tag:`Array`,length:e,value:t}}Ht(`SourceError`);var bo=yt(`effect/ConfigProvider`,{defaultValue:()=>Oo()}),xo={...dn,toJSON(){return{_id:`ConfigProvider`}}},So=e=>e;function Co(e,t){let n=Object.create(xo);return n.load=e,n.mapInput=t,n}function wo(e,t){return Co(n=>e(t(n)),n=>wo(e,P(t,n)))}function To(e){return wo(e,So)}function Eo(e,t){return e===``&&!t?void 0:e}function Do(e,t){let n=t?.preserveEmptyStrings===!0,r=ko(e);return To(t=>S(jo(r,e,t,n)))}function Oo(e){return Do(e?.env??{APP_VERSION:`0.1.11`,BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,TSS_INLINE_CSS_ENABLED:`false`,VITE_HOSTED_APP_URL:``,VITE_HTTP_URL:``,VITE_RYCO_CLIENT_MODE:`standard`,VITE_RYCO_MOBILE_APP_URL:``,VITE_RYCO_PHONE_APP_INTERSTITIAL:`disabled`,VITE_WS_URL:``},{preserveEmptyStrings:e?.preserveEmptyStrings})}function ko(e){let t={};for(let[n,r]of Object.entries(e)){if(r===void 0)continue;let e=n.split(`_`),i=t;for(let t of e){let e=i.children??=Object.create(null);i=e[t]??={}}}return t}var Ao=/^(0|[1-9][0-9]*)$/;function jo(e,t,n,r){let i=n.map(String).join(`_`),a=Eo(Object.hasOwn(t,i)?t[i]:void 0,r),o=Mo(e,n),s=o?.children?Object.keys(o.children):[];return s.length===0?a===void 0?void 0:_o(a):s.every(e=>Ao.test(e))?yo(Math.max(...s.map(e=>parseInt(e,10)))+1,a):vo(new Set(s),a)}function Mo(e,t){if(t.length===0)return e;let n=e;for(let e of t)if(n=n?.children?.[String(e)],!n)return;return n}var No=`~effect/Config`,Po=class{_tag=`ConfigError`;name=`ConfigError`;cause;constructor(e){this.cause=e}get message(){return this.cause.toString()}toString(){return`ConfigError(${this.message})`}},Fo={...Se({label:`Config`,evaluate(e){return this.parse(e.getRef(bo))}}),[No]:No,toJSON(){return{_id:`Config`}}};function Io(e){let t=Object.create(Fo);return t.evaluator=e,t.parse=t=>e(t,[]).pipe(kn(e=>e.error),F(e=>e._tag===`Resolved`?S(e.value):ne(e.error))),t}var Lo=(e,t)=>({_tag:`Resolved`,value:e,hasInput:t}),Ro=e=>({_tag:`Absent`,error:e}),zo=(e,t)=>({error:e,hasInput:t}),Bo=e=>tn(e,`SourceError`),Vo=(e,t)=>e.pipe(Te(e=>Bo(e)?ne(zo(new Po(e),t)):x(e))),Ho=()=>`<configuration>`,Uo=(e,t)=>e.load(t).pipe(Bt,an(n=>({provider:e,path:t,node:n,toString:Ho}))),Wo=(e,t)=>Uo(e.provider,[...e.path,t]),Go=e=>e?.value,Ko=(e,t)=>Et(fn,e,new on(vt(e=>t(e)),jn())),qo=e=>{switch(e._tag){case`Union`:return e.types.every(qo);case`Objects`:case`Arrays`:case`Suspend`:return!1;default:return!0}},Jo=(e,t)=>{switch(e._tag){case`Objects`:return t?._tag===`Record`;case`Arrays`:return t?._tag===`Array`;case`Union`:return e.types.some(e=>Jo(e,t));case`Suspend`:return Jo(e.thunk(),t);default:return Go(t)!==void 0}},Yo=me(e=>{let t=new WeakSet,n=Dn(e=>{switch(t.add(e),e._tag){case`Objects`:{let t=e.indexSignatures.map(e=>de(e.parameter)),r=hn(function*(n){if(n.node?._tag!==`Record`)return;let r=n.node,i=new Set;for(let t of e.propertySignatures)typeof t.name==`string`&&i.add(t.name);if(t.length>0)for(let e of r.keys)t.some(t=>t(e))&&i.add(e);let a={};for(let e of i){let t=yield*Wo(n,e);t.node!==void 0&&cn(a,e,t)}return a});return Ko(e.recur(n,e=>e),r)}case`Arrays`:{let t=hn(function*(e){if(e.node?._tag!==`Array`)return;let t=[];for(let n=0;n<e.node.length;n++)t.push(yield*Wo(e,n));return t});return Ko(e.recur(n),t)}case`Union`:for(let t of e.types)n(t);return qo(e)?Ko(e,e=>S(Go(e.node))):e.recur(n);case`Suspend`:{let r=e.thunk();return t.has(r)||n(r),e.recur(n)}case`Declaration`:case`Any`:throw new globalThis.Error(`Config.schema does not support opaque StringTree encodings`,{cause:e});default:return Ko(e,e=>S(Go(e.node)))}});return n(e)});function Xo(e,t){let n=We(e),r=Ft(n.ast),i=gn(oe(Yo(n.ast))),a=typeof t==`string`?[t]:t??[];return Io((e,t)=>{let n=[...t,...a];return Vo(Uo(e,n),!1).pipe(F(e=>{let t=Jo(r,e.node);return Vo(i(e).pipe(an(e=>Lo(e,t)),N(e=>{let r=new Po(new Ze(n.length>0?new k(n,e):e));return t?ne(zo(r,!0)):S(Ro(r))})),t)}))})}var Zo=(e,t,n)=>{let r=Dt(e,t),i=Ut(n),a=It.pipe(Pe(We(r),{decode:i.decode,encode:jn({strict:!1}).compose(i.encode)}));return Mn([r,a])};function Qo(e){return Xo(It,e)}function $o(){return{executionCount:0,isPending:!1,lastArgs:void 0,lastExecutionTime:0,nextExecutionTime:0,status:`idle`,maybeExecuteCount:0}}var es={enabled:!0,leading:!0,trailing:!0,wait:0},ts=class{#e;constructor(e,t){this.fn=e,this.store=new Ti($o()),this.setOptions=e=>{this.options={...this.options,...e},this.#n()||this.cancel()},this.#t=e=>{this.store.setState(t=>{let n={...t,...e},{isPending:r}=n;return{...n,status:this.#n()?r?`pending`:`idle`:`disabled`}}),pi(`Throttler`,this)},this.#n=()=>!!ui(this.options.enabled,this),this.#r=()=>ui(this.options.wait,this),this.maybeExecute=(...e)=>{this.#t({maybeExecuteCount:this.store.state.maybeExecuteCount+1});let t=Date.now(),n=t-this.store.state.lastExecutionTime,r=this.#r();if(this.options.leading&&n>=r)this.#i(...e);else if(this.#t({lastArgs:e}),!this.#e&&this.options.trailing){let e=r-(this.store.state.lastExecutionTime?t-this.store.state.lastExecutionTime:0);this.#t({isPending:!0}),this.#e=setTimeout(()=>{let{lastArgs:e}=this.store.state;e!==void 0&&this.#i(...e)},e)}},this.#i=(...e)=>{if(!this.#n())return;this.fn(...e);let t=Date.now(),n=t+this.#r();this.#a(),this.#t({executionCount:this.store.state.executionCount+1,lastExecutionTime:t,nextExecutionTime:n,isPending:!1,lastArgs:void 0}),this.options.onExecute?.(e,this),setTimeout(()=>{this.store.state.isPending||this.#t({nextExecutionTime:void 0})},this.#r())},this.flush=()=>{this.store.state.isPending&&this.store.state.lastArgs&&this.#i(...this.store.state.lastArgs)},this.#a=()=>{this.#e&&=(clearTimeout(this.#e),void 0)},this.cancel=()=>{this.#a(),this.#t({lastArgs:void 0,isPending:!1})},this.reset=()=>{this.#t($o())},this.key=t.key,this.options={...es,...t},this.#t(this.options.initialState??{}),this.key&&hi.on(`d-Throttler`,e=>{e.payload.key===this.key&&(this.#t(e.payload.store.state),this.setOptions(e.payload.options))})}#t;#n;#r;#i;#a},ns=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),rs=t(((e,t)=>{t.exports=ns()})),is=e(rs(),1);function as(e){let t=is.unstable_scheduleCallback(4,e);return()=>is.unstable_cancelCallback(t)}var os=V.createContext(Fr({scheduleTask:as,defaultIdleTTL:400})),ss=new WeakMap;function cs(e,t){let n=ss.get(e);n===void 0&&(n=new WeakMap,ss.set(e,n));let r=n.get(t);if(r!==void 0)return r;let i={subscribe(n){return e.subscribe(t,n)},snapshot(){return e.get(t)},getServerSnapshot(){return Dr(t,e)}};return n.set(t,i),i}function ls(e,t){let n=cs(e,t);return V.useSyncExternalStore(n.subscribe,n.snapshot,n.getServerSnapshot)}var us=(e,t)=>{let n=V.useContext(os);return t?ls(n,V.useMemo(()=>Nr(e,t),[e,t])):ls(n,e)},ds=(e,t,n)=>{let r=V.useContext(os);V.useEffect(()=>r.subscribe(e,t,n),[r,e,t,n?.immediate])},fs=`~effect/http/UrlParams`,ps=e=>j(e,fs),ms={...dn,[fs]:fs,[Symbol.iterator](){return this.params[Symbol.iterator]()},toJSON(){return{_id:`UrlParams`,params:Object.fromEntries(this.params)}},[Gn](e){return vs(this,e)},[Be](){return bt(this.params.flat())}},hs=e=>{let t=Object.create(ms);return t.params=e,t},gs=e=>{if(ps(e))return e;let t=_s(e),n=[];for(let e=0;e<t.length;e++)if(Array.isArray(t[e][0])){let[r,i]=t[e];n.push([`${r[0]}[${r.slice(1).join(`][`)}]`,i])}else n.push(t[e]);return hs(n)},_s=e=>{let t=typeof e[Symbol.iterator]==`function`?Qt(e):Object.entries(e),n=[];for(let[e,r]of t)if(Array.isArray(r))for(let t=0;t<r.length;t++)r[t]!==void 0&&n.push([e,String(r[t])]);else if(typeof r==`object`){let t=_s(r);for(let[r,i]of t)n.push([[e,...typeof r==`string`?[r]:r],i])}else r!==void 0&&n.push([e,String(r)]);return n},vs=zt((e,t)=>ys(e.params,t.params)),ys=Ee(po([ft(),ft()])),bs=hs([]),xs=De(2,(e,t)=>{let n=gs(t),r=n.params,i=new Set;for(let e=0;e<r.length;e++)i.add(r[e][0]);for(let t=0;t<e.params.length;t++)i.has(e.params[t][0])||r.push(e.params[t]);return n}),Ss=`~effect/http/HttpBody`;Ht(`HttpBodyError`);var Cs=class{[Ss];constructor(){this[Ss]=Ss}[rn](){return this.toJSON()}toString(){return Ot(this,{ignoreToString:!0})}},ws=new class extends Cs{_tag=`Empty`;toJSON(){return{_id:`effect/HttpBody`,_tag:`Empty`}}},Ts=class extends Cs{_tag=`Uint8Array`;body;contentType;contentLength;constructor(e,t,n){super(),this.body=e,this.contentType=t,this.contentLength=n}toJSON(){return{_id:`effect/HttpBody`,_tag:`Uint8Array`,body:this.contentType.startsWith(`text/`)||this.contentType.endsWith(`json`)?new TextDecoder().decode(this.body):`Uint8Array(${this.body.length})`,contentType:this.contentType,contentLength:this.contentLength}}},Es=(e,t)=>new Ts(e,t??`application/octet-stream`,e.length),Ds=new TextEncoder,Os=(e,t)=>Es(Ds.encode(e),t??`text/plain`),ks=(e,t)=>Os(JSON.stringify(e),t??`application/json`),As=`~effect/http/Cookies`,js=`~effect/http/Cookies/Cookie`;Ht(`CookieError`);var Ms={[As]:As,...Sn,toJSON(){return{_id:`effect/Cookies`,cookies:u(this.cookies,e=>e.toJSON())}},pipe(){return qn(this,arguments)}},Ns=e=>{let t=Object.create(Ms);return t.cookies=e,t},Ps=e=>{let t={};for(let n of e)cn(t,n.name,n);return Ns(t)},Fs=e=>{let t=typeof e==`string`?[e]:e,n=[];for(let e of t){let t=Is(e.trim());t&&n.push(t)}return Ps(n)};function Is(e){let t=e.split(`;`).map(e=>e.trim()).filter(e=>e!==``);if(t.length===0)return;let n=t[0].indexOf(`=`);if(n===-1)return;let r=t[0].slice(0,n);if(!Ls.test(r))return;let i=t[0].slice(n+1),a=zs(i);if(t.length===1)return Object.assign(Object.create(Rs),{name:r,value:a,valueEncoded:i});let o={};for(let e=1;e<t.length;e++){let n=t[e],r=n.indexOf(`=`),i=r===-1?n:n.slice(0,r).trim(),a=r===-1?void 0:n.slice(r+1).trim();switch(i.toLowerCase()){case`domain`:{if(a===void 0)break;let e=a.trim().replace(/^\./,``);e&&(o.domain=e);break}case`expires`:{if(a===void 0)break;let e=new Date(a);isNaN(e.getTime())||(o.expires=e);break}case`max-age`:{if(a===void 0)break;let e=parseInt(a,10);isNaN(e)||(o.maxAge=ut(e));break}case`path`:if(a===void 0)break;a[0]===`/`&&(o.path=a);break;case`priority`:if(a===void 0)break;switch(a.toLowerCase()){case`low`:o.priority=`low`;break;case`medium`:o.priority=`medium`;break;case`high`:o.priority=`high`}break;case`httponly`:o.httpOnly=!0;break;case`secure`:o.secure=!0;break;case`partitioned`:o.partitioned=!0;break;case`samesite`:if(a===void 0)break;switch(a.toLowerCase()){case`lax`:o.sameSite=`lax`;break;case`strict`:o.sameSite=`strict`;break;case`none`:o.sameSite=`none`}}}return Object.assign(Object.create(Rs),{name:r,value:a,valueEncoded:i,options:Object.keys(o).length>0?o:void 0})}var Ls=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Rs={[js]:js,...Sn,toJSON(){return{_id:`effect/Cookies/Cookie`,name:this.name,value:this.value,options:this.options}}},zs=e=>{try{return decodeURIComponent(e)}catch{return e}},Bs=[[`GET`,`get`],[`POST`,`post`],[`PUT`,`put`],[`DELETE`,`del`],[`PATCH`,`patch`],[`HEAD`,`head`],[`OPTIONS`,`options`],[`TRACE`,`trace`]],Vs=(e,t)=>t._tag===`Empty`||t._tag===`FormData`?Qn(Qn(e,`content-type`),`content-length`):(e=t.contentType===void 0?Qn(e,`content-type`):br(e,`content-type`,t.contentType),t.contentLength===void 0?Qn(e,`content-length`):br(e,`content-length`,t.contentLength.toString())),Hs=class extends Ht(`UrlError`){},Us=(e,t,n)=>Ke({try:()=>{let r=new URL(e,Ws());for(let e=0;e<t.params.length;e++){let[n,i]=t.params[e];i!==void 0&&r.searchParams.append(n,i)}return n!==void 0&&(r.hash=n),r},catch:e=>new Hs({cause:e})}),Ws=()=>{if(`location`in globalThis&&globalThis.location!==void 0&&globalThis.location.origin!==void 0&&globalThis.location.pathname!==void 0)return location.origin+location.pathname},Gs=`~effect/http/HttpClientRequest`,Ks={[Gs]:Gs,...Sn,toJSON(){return{_id:`HttpClientRequest`,method:this.method,url:this.url,urlParams:this.urlParams,hash:this.hash,headers:Lt(this.headers),body:this.body.toJSON()}},pipe(){return qn(this,arguments)}};function qs(e,t,n,r,i,a){let o=Object.create(Ks);return o.method=e,o.url=t,o.urlParams=n,o.hash=r,o.headers=i,o.body=a,o}var Js=qs(`GET`,``,bs,m(),er,ws),Ys=e=>(t,n)=>Zs(Js,{method:e,url:t,...n??void 0}),Xs=Ys(`POST`),Zs=De(2,(e,t)=>{let n=e;return t.method&&(n=Qs(n,t.method)),t.url&&(n=rc(n,t.url)),t.headers&&(n=ec(n,t.headers)),t.urlParams&&(n=ic(n,t.urlParams)),t.hash&&(n=ac(n,t.hash)),t.body&&(n=oc(n,t.body)),t.accept&&(n=tc(n,t.accept)),t.acceptJson&&(n=nc(n)),n}),Qs=De(2,(e,t)=>qs(t,e.url,e.urlParams,e.hash,e.headers,e.body)),$s=De(3,(e,t,n)=>qs(e.method,e.url,e.urlParams,e.hash,br(e.headers,t,n),e.body)),ec=De(2,(e,t)=>qs(e.method,e.url,e.urlParams,e.hash,ir(e.headers,t),e.body)),tc=De(2,(e,t)=>$s(e,`Accept`,t)),nc=tc(`application/json`),rc=De(2,(e,t)=>{if(typeof t==`string`)return qs(e.method,t,e.urlParams,e.hash,e.headers,e.body);let n=new URL(t.toString()),r=gs(n.searchParams),i=Xe(n.hash===``?void 0:n.hash.slice(1));return n.search=``,n.hash=``,qs(e.method,n.toString(),r,i,e.headers,e.body)}),ic=De(2,(e,t)=>qs(e.method,e.url,xs(e.urlParams,t),e.hash,e.headers,e.body)),ac=De(2,(e,t)=>qs(e.method,e.url,e.urlParams,Mt(t),e.headers,e.body)),oc=De(2,(e,t)=>qs(e.method,e.url,e.urlParams,e.hash,Vs(e.headers,t),t)),sc=`~effect/http/HttpIncomingMessage`,cc=(e,t)=>{let n=e.headers[`content-type`]??``,r;if(n.includes(`application/json`))try{r=ge(e.json)}catch{}else if(n.includes(`text/`)||n.includes(`urlencoded`))try{r=ge(e.text)}catch{}let i={...t,headers:Lt(e.headers),remoteAddress:e.remoteAddress};return r!==void 0&&(i.body=r),i},lc=`~effect/http/HttpClientResponse`,uc=(e,t)=>new fc(e,t),dc=e=>e.status>=200&&e.status<300?S(e):ne(new nr({reason:new Yr({response:e,request:e.request,description:`non 2xx status code`})})),fc=class extends Ct{[sc];[lc];request;source;constructor(e,t){super(),this.request=e,this.source=t,this[sc]=sc,this[lc]=lc}toJSON(){return cc(this,{_id:`HttpClientResponse`,request:this.request.toJSON(),status:this.status})}get status(){return this.source.status}get headers(){return ar(this.source.headers)}cachedCookies;get cookies(){return this.cachedCookies?this.cachedCookies:this.cachedCookies=Fs(this.source.headers.getSetCookie())}get remoteAddress(){return m()}get stream(){return this.source.body?R({evaluate:()=>this.source.body,onError:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}):Je(new nr({reason:new Sr({request:this.request,response:this,description:`can not create stream from empty body`})}))}get json(){return Ye(this.text,e=>$e({try:()=>e===``?null:JSON.parse(e),catch:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}))}textBody;get text(){return this.textBody??=wt(this.arrayBuffer,e=>new TextDecoder().decode(e))}get urlParamsBody(){return Ye(this.text,e=>$e({try:()=>gs(new URLSearchParams(e)),catch:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}))}formDataBody;get formData(){return this.formDataBody??=it({try:()=>this.source.formData(),catch:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}).pipe(Zt,ge)}arrayBufferBody;get arrayBuffer(){return this.arrayBufferBody||=it({try:()=>this.source.arrayBuffer(),catch:e=>new nr({reason:new vr({request:this.request,response:this,cause:e})})}).pipe(Zt,ge),this.arrayBufferBody}pipe(){return qn(this,arguments)}},pc=e=>dr({b3:`${e.traceId}-${e.spanId}-${e.sampled?`1`:`0`}${Oe(e.parent,{onNone:()=>``,onSome:e=>`-${e.spanId}`})}`,traceparent:`00-${e.traceId}-${e.spanId}-${e.sampled?`01`:`00`}`}),mc=`~effect/http/HttpClient`,hc=zn(`effect/HttpClient`),gc=De(2,(e,t)=>vc(n=>t(e.postprocess(n)),e.preprocess)),_c=gc(Ye(dc)),vc=(e,t)=>{let n=Object.create(yc);return n.preprocess=t,n.postprocess=e,n.execute=function(n){return e(t(n))},n},yc={[mc]:mc,pipe(){return qn(this,arguments)},...Sn,toJSON(){return{_id:`effect/HttpClient`}},...Object.fromEntries(Bs.map(([e,t])=>[t,function(t,n){return this.execute(Ys(e)(t,n))}]))},bc=e=>vc(t=>Ye(t,t=>ln(n=>{let r=Oc.get(t),i=r??new AbortController,a=Us(t.url,t.urlParams,ue(t.hash));if(Me(a))return ne(new nr({reason:new lr({request:t,cause:a.failure})}));let o=a.success;if(n.getRef(Jt)||n.getRef(Sc)(t)){let a=e(t,o,i.signal,n);return r?a:st(e=>kt(e(a),{onSuccess(e){return Dc.register(e,i),S(new kc(e,i))},onFailure(e){return tt(e)&&i.abort(),Ue(e)}}))}return h(n.getRef(Tc)(t),{kind:`client`},a=>{a.attribute(`http.request.method`,t.method),a.attribute(`server.address`,o.origin),o.port!==``&&a.attribute(`server.port`,+o.port),a.attribute(`url.full`,o.toString()),a.attribute(`url.path`,o.pathname),a.attribute(`url.scheme`,o.protocol.slice(0,-1));let s=o.search.slice(1);s!==``&&a.attribute(`url.query`,s);let c=n.getRef(pr),l=n.getRef(Cc),u=li(t.headers,c);for(let e in u)l(e,`request`)&&a.attribute(`http.request.header.${e}`,String(u[e]));return t=n.getRef(wc)?ec(t,pc(a)):t,st(s=>s(e(t,o,i.signal,n)).pipe(bn(a,{captureStackTrace:!1}),kt({onSuccess:e=>{a.attribute(`http.response.status_code`,e.status);let t=li(e.headers,c);for(let e in t)l(e,`response`)&&a.attribute(`http.response.header.${e}`,String(t[e]));return r?S(e):(Dc.register(e,i),S(new kc(e,i)))},onFailure(e){return!r&&tt(e)&&i.abort(),Ue(e)}})))})})),S),xc=De(2,(e,t)=>{let n=Tt(t),r=n?`errors-and-responses`:t.retryOn??`errors-and-responses`,i=n?t:t.schedule,a=i&&An(i),o=n?void 0:t.times;return gc(e,P(r===`errors-only`?se:Bn({schedule:a,times:o,while:Mc}),r===`response-only`?se:Fe({while:n||t.while===void 0?Ac:v(Ac,t.while),schedule:i,times:o})))}),Sc=yt(`effect/http/HttpClient/TracerDisabledWhen`,{defaultValue:()=>$t}),Cc=yt(`effect/http/HttpClient/TracerHeaderFilter`,{defaultValue:()=>he}),wc=yt(`effect/HttpClient/TracerPropagationEnabled`,{defaultValue:he}),Tc=yt(`effect/http/HttpClient/SpanNameGenerator`,{defaultValue:()=>e=>`http.client ${e.method}`}),Ec=e=>Pn(hc)(je(t=>wt(e,e=>gc(e,ke(e=>D(t,e)))))),Dc=(()=>{if(`FinalizationRegistry`in globalThis&&globalThis.FinalizationRegistry){let e=new FinalizationRegistry(e=>{e.abort()});return{register(t,n){e.register(t,n,t)},unregister(t){e.unregister(t)}}}let e=new Map;return{register(t,n){e.set(t,setTimeout(()=>n.abort(),5e3))},unregister(t){let n=e.get(t);n!==void 0&&(clearTimeout(n),e.delete(t))}}})(),Oc=new WeakMap,kc=class{original;controller;constructor(e,t){this.original=e,this.controller=t}[lc]=lc;[sc]=sc;applyInterrupt(e){return qe(()=>(Dc.unregister(this.original),Kt(e,()=>ie(()=>{this.controller.abort()}))))}get request(){return this.original.request}get status(){return this.original.status}get headers(){return this.original.headers}get cookies(){return this.original.cookies}get remoteAddress(){return this.original.remoteAddress}get formData(){return this.applyInterrupt(this.original.formData)}get text(){return this.applyInterrupt(this.original.text)}get json(){return this.applyInterrupt(this.original.json)}get urlParamsBody(){return this.applyInterrupt(this.original.urlParamsBody)}get arrayBuffer(){return this.applyInterrupt(this.original.arrayBuffer)}get stream(){return et(()=>(Dc.unregister(this.original),C(this.original.stream,ie(()=>{this.controller.abort()}))))}toJSON(){return this.original.toJSON()}[rn](){return this.original[rn]()}pipe(){return qn(this,arguments)}},Ac=e=>At(e)||jc(e),jc=e=>Tr(e)&&(e.reason._tag===`TransportError`||e.reason._tag===`StatusCodeError`&&Mc(e.reason.response)),Mc=e=>e.status===408||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504;function Nc(e,t){let n=e.length,r=e.reduce((e,t)=>e+t.retainedBytes,0),i=()=>n<=t.maxEntries&&r<=t.maxBytes;if(i())return[];let a=[],o=e.filter(e=>e.evictable).toSorted((e,t)=>e.lastAccessedAt-t.lastAccessedAt);for(let e of o){if(i())break;a.push(e.key),--n,r=Math.max(0,r-e.retainedBytes)}return a}function Pc(e){return{server:{refreshProviders:e.server.refreshProviders,updateProvider:e.server.updateProvider,getSettings:e.server.getSettings,updateSettings:e.server.updateSettings,upsertKeybinding:e.server.upsertKeybinding,getDiagnosticsSnapshot:e.server.getDiagnosticsSnapshot,discoverSourceControl:e.server.discoverSourceControl,listOpinionatedPlugins:e.server.listOpinionatedPlugins,checkOpinionatedPlugins:e.server.checkOpinionatedPlugins,installOpinionatedPlugin:e.server.installOpinionatedPlugin},...e.keybindings?{keybindings:{replaceCustom:e.keybindings.replaceCustom}}:{},...e.device?{device:e.device}:{},terminal:{open:t=>e.terminal.open(t),write:t=>e.terminal.write(t),resize:t=>e.terminal.resize(t),clear:t=>e.terminal.clear(t),restart:t=>e.terminal.restart(t),close:t=>e.terminal.close(t),onEvent:t=>e.terminal.onEvent(t)},projects:{listEntries:e.projects.listEntries,readFile:e.projects.readFile,readFileBinary:e.projects.readFileBinary,searchEntries:e.projects.searchEntries,writeFile:e.projects.writeFile,stageFileReference:e.projects.stageFileReference,initializeGit:e.projects.initializeGit},filesystem:{browse:e.filesystem.browse},sourceControl:{lookupRepository:e.sourceControl.lookupRepository,searchRepositories:e.sourceControl.searchRepositories,cloneRepository:e.sourceControl.cloneRepository,publishRepository:e.sourceControl.publishRepository},vcs:{pull:e.vcs.pull,refreshStatus:e.vcs.refreshStatus,onStatus:(t,n,r)=>e.vcs.onStatus(t,n,r),listRefs:e.vcs.listRefs,createWorktree:e.vcs.createWorktree,removeWorktree:e.vcs.removeWorktree,createRef:e.vcs.createRef,switchRef:e.vcs.switchRef,init:e.vcs.init},git:{runStackedAction:e.git.runStackedAction,resolvePullRequest:e.git.resolvePullRequest,preparePullRequestThread:e.git.preparePullRequestThread,createWorktreeForProject:e.git.createWorktreeForProject,findWorktreeForOrigin:e.git.findWorktreeForOrigin,archiveWorktree:e.git.archiveWorktree,restoreWorktree:e.git.restoreWorktree,deleteWorktree:e.git.deleteWorktree},...e.worktrees?{worktrees:{setManualPosition:e.worktrees.setManualPosition}}:{},...e.threads?{threads:{setManualBucket:e.threads.setManualBucket,setManualPosition:e.threads.setManualPosition}}:{},orchestration:{dispatchCommand:e.orchestration.dispatchCommand,getTurnDiff:e.orchestration.getTurnDiff,getWorkflowScript:e.orchestration.getWorkflowScript,getTaskOutput:e.orchestration.getTaskOutput,stopBackgroundTask:e.orchestration.stopBackgroundTask,getFullThreadDiff:e.orchestration.getFullThreadDiff,searchThreadMessages:e.orchestration.searchThreadMessages,...e.orchestration.getThreadWindow?{getThreadWindow:e.orchestration.getThreadWindow}:{},...e.orchestration.getThreadHistoryPage?{getThreadHistoryPage:e.orchestration.getThreadHistoryPage}:{},subscribeShell:(t,n)=>e.orchestration.subscribeShell(t,n),subscribeThread:(t,n,r)=>e.orchestration.subscribeThread(t,n,r),...e.orchestration.subscribeThreadWindow?{subscribeThreadWindow:(t,n,r)=>e.orchestration.subscribeThreadWindow(t,n,r)}:{}},contextHandoff:{getInspectionSummary:e.contextHandoff.getInspectionSummary,listInspectionEntries:e.contextHandoff.listInspectionEntries,readRawPayloadChunk:e.contextHandoff.readRawPayloadChunk,readExportChunk:e.contextHandoff.readExportChunk},mcp:{listWorkspaces:e.mcp.listWorkspaces,listServers:e.mcp.listServers,upsertServer:e.mcp.upsertServer,setServerEnabled:e.mcp.setServerEnabled,removeServer:e.mcp.removeServer,reloadServers:e.mcp.reloadServers,startOauthLogin:e.mcp.startOauthLogin},...e.agentControl?{agentControl:{listProposals:e.agentControl.listProposals,getProposal:e.agentControl.getProposal,acceptProposal:e.agentControl.acceptProposal,rejectProposal:e.agentControl.rejectProposal,subscribeProposals:e.agentControl.subscribeProposals,listIntegrations:e.agentControl.listIntegrations,createIntegration:e.agentControl.createIntegration,updateIntegration:e.agentControl.updateIntegration,resumeIntegrationPairing:e.agentControl.resumeIntegrationPairing,revokeIntegration:e.agentControl.revokeIntegration,deleteIntegration:e.agentControl.deleteIntegration,listMcpInstallations:e.agentControl.listMcpInstallations,connectMcpInstallation:e.agentControl.connectMcpInstallation,repairMcpInstallation:e.agentControl.repairMcpInstallation,disconnectMcpInstallation:e.agentControl.disconnectMcpInstallation}}:{}}}function Fc(e){return{read:t=>{if(!e.canReadConnections()||!t)return;let n=e.readClient(t);return n?Pc(n):void 0}}}function Ic(e,t){if(e.sequence!==t.sequence)return e.sequence-t.sequence;let n=e.updatedAt??``,r=t.updatedAt??``;return n===r?0:n<r?-1:1}function Lc(e){return{sequence:e.snapshotSequence,updatedAt:e.updatedAt}}function Rc(e){if(e.current===null)return`newer`;let t=Ic(e.current,Lc(e.next));return t<0?`newer`:t===0?`current`:`stale`}function zc(e){return e.current===null||e.sequence>e.current.sequence}function Bc(){let e=new Map;return{read:t=>e.get(t)??null,markSnapshot:(t,n)=>{let r=Lc(n),i=e.get(t);(i===void 0||Ic(i,r)<0)&&e.set(t,r)},markEvent:(t,n)=>{let r=e.get(t);(r===void 0||n>r.sequence)&&e.set(t,{sequence:n,updatedAt:r?.updatedAt??null})},clearEnvironment:t=>e.delete(t),clear:()=>e.clear()}}var Vc=class extends Error{status;constructor(e,t){super(e),this.name=`RemoteEnvironmentAuthHttpError`,this.status=t}};function Hc(e){return e instanceof Vc}function Uc(e,t){let n=new URL(e);return n.pathname=t,n.toString()}async function Wc(e,t){let n=await e.text();if(!n)return t;try{let e=JSON.parse(n);if(typeof e.error==`string`&&e.error.length>0)return e.error}catch{}return n}async function Gc(e,t){let n=Uc(t.httpBaseUrl,t.pathname),r;try{r=await e.fetch(n,{method:t.method??`GET`,headers:{...t.body===void 0?{}:{"content-type":`application/json`},...t.bearerToken?{authorization:`Bearer ${t.bearerToken}`}:{}},...t.body===void 0?{}:{body:JSON.stringify(t.body)}})}catch(e){throw Error(`Failed to fetch remote auth endpoint ${n} (${e.message}).`,{cause:e})}if(!r.ok)throw new Vc(await Wc(r,`Remote auth request failed (${r.status}).`),r.status);return await r.json()}function Kc(e,t){return{bootstrapRemoteBearerSession:async t=>Gc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/bootstrap/bearer`,method:`POST`,body:{credential:t.credential}}),fetchRemoteSessionState:async t=>Gc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/session`,bearerToken:t.bearerToken}),fetchRemoteEnvironmentDescriptor:async t=>Gc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/.well-known/ryco/environment`}),issueRemoteWebSocketToken:async t=>Gc(e,{httpBaseUrl:t.httpBaseUrl,pathname:`/api/auth/ws-token`,method:`POST`,bearerToken:t.bearerToken}),resolveRemoteWebSocketConnectionUrl:async n=>{let r=await Gc(e,{httpBaseUrl:n.httpBaseUrl,pathname:`/api/auth/ws-token`,method:`POST`,bearerToken:n.bearerToken}),i=new URL(n.wsBaseUrl,t);return i.searchParams.set(`wsToken`,r.token),i.toString()}}}function qc(e,t){let n=e.trim();if(!n)throw Error(`Enter a backend URL.`);let r=/^[a-zA-Z][a-zA-Z\d+-]*:\/\//.test(n)||n.startsWith(`//`)?n:`https://${n}`,i=new URL(r,t);return i.pathname=`/`,i.search=``,i.hash=``,i}function Jc(e){let t=new URL(e.toString());return t.protocol===`ws:`?t.protocol=`http:`:t.protocol===`wss:`&&(t.protocol=`https:`),t.pathname=`/`,t.search=``,t.hash=``,t.toString()}function Yc(e){let t=new URL(e.toString());return t.protocol===`http:`?t.protocol=`ws:`:t.protocol===`https:`&&(t.protocol=`wss:`),t.pathname=`/`,t.search=``,t.hash=``,t.toString()}function Xc(e,t,n){let r=e.pairingUrl?.trim()??``;if(r.length>0){let e=new URL(r,t),i=n.readHostedPairingRequest(e);if(i){let e=qc(i.host,t);return{credential:i.token,httpBaseUrl:Jc(e),wsBaseUrl:Yc(e)}}let a=n.readPairingToken(e)??``;if(!a)throw Error(`Pairing URL is missing its token.`);return{credential:a,httpBaseUrl:Jc(e),wsBaseUrl:Yc(e)}}let i=e.host?.trim()??``,a=e.pairingCode?.trim()??``;if(!i)throw Error(`Enter a backend URL.`);if(!a)throw Error(`Enter a pairing code.`);let o=qc(i,t);return{credential:a,httpBaseUrl:Jc(o),wsBaseUrl:Yc(o)}}function Zc(e,t=new Set){return[...e].toSorted((e,n)=>{let r=t.has(e.environmentId);if(r!==t.has(n.environmentId))return r?-1:1;let i=e.lastConnectedAt??``,a=n.lastConnectedAt??``;return i===a?String(e.environmentId).localeCompare(String(n.environmentId)):a.localeCompare(i)})}async function Qc(e,t){let n=Math.max(1,Math.floor(t.concurrency)),r=[...e],i=Array.from({length:Math.min(n,r.length)},async()=>{for(;;){let e=r.shift();if(!e)return;await t.connect(e)}});await Promise.all(i)}function $c(e){let t=new Map,n=new Map,r=e=>p(a(e.environmentId,e.threadId)),i=e=>t.get(r(e))??0,o=e=>{let n=i(e)+1;return t.set(r(e),n),n},s=e=>{t.set(r(e),i(e)+1)},c=t=>{let a=i(t.scope),s=`${r(t.scope)}:${a}:${t.requestKey}`,c=n.get(s);if(c)return c;let l=t.request.mode.kind===`before`?t.request.mode.cursor:`around:${t.request.mode.anchorId}`;e.setRequestState({...t.scope,collection:t.collection,status:`loading`,cursor:l,error:null});let u=e.request(t.scope.environmentId,t.request).then(n=>i(t.scope)===a?(e.apply(t.scope.environmentId,t.scope.threadId,n),e.setRequestState({...t.scope,collection:t.collection,status:`idle`,cursor:null,error:null}),n):null).catch(async n=>{let r=typeof n==`object`&&n?n:null;if(r?._tag===`OrchestrationThreadHistoryError`&&(r.reason===`stale-cursor`||r.reason===`invalid-cursor`||r.reason===`unsupported-version`)&&e.recoverStale&&i(t.scope)===a)try{return await e.recoverStale(t.scope),o(t.scope),null}catch(e){n=e}throw i(t.scope)===a&&e.setRequestState({...t.scope,collection:t.collection,status:`error`,cursor:l,error:n instanceof Error?n.message:String(n)}),n}).finally(()=>{n.get(s)===u&&n.delete(s)});return n.set(s,u),u};return{beginSnapshot:o,invalidate:s,clearEnvironment:e=>{for(let n of t.keys())n.startsWith(`${e}:`)&&t.delete(n)},loadBefore:({scope:e,collection:t,page:n,limit:r})=>!n.hasMoreBefore||n.oldestCursor===null?Promise.resolve(null):c({scope:e,collection:t,request:{threadId:e.threadId,collection:t,mode:{kind:`before`,cursor:n.oldestCursor},limit:r},requestKey:`${t}:before:${n.oldestCursor}:${r}`}),loadAroundMessage:({scope:e,anchorId:t,limit:n})=>c({scope:e,collection:`messages`,request:{threadId:e.threadId,collection:`messages`,mode:{kind:`around`,anchorId:t},limit:n},requestKey:`messages:around:${t}:${n}`})}}var el=()=>void 0,tl=3e5,nl=32,rl=12582912,il=2e3,al=2500,ol=2,sl=class extends Error{constructor(e){super(`Saved environment ${e} connection was cancelled.`),this.name=`SavedEnvironmentConnectionCancelledError`}};function cl(e){let t=new Map,n=new Map,r=new Set,i=new Map,o=Bc(),s=null,c=-1/0,l=()=>{for(let e of r)e();e.onRegistryChange?.()},u=(e,t)=>p(a(e,t)),d=e=>{try{return new TextEncoder().encode(JSON.stringify(e)).byteLength}catch{return 0}},f=(e,t)=>{e.estimatedRetainedBytes=d(t)},m=(e,t)=>{e.estimatedRetainedBytes=Math.min(rl,e.estimatedRetainedBytes+d(t))},h=t=>{t.evictionTimeoutId!==null&&(e.clearTimeout(t.evictionTimeoutId),t.evictionTimeoutId=null)},g=t=>t.refCount===0&&!e.isThreadDetailSubscriptionNonIdle(t.environmentId,t.threadId),_=e=>(r.add(e),()=>r.delete(e)),v=e=>t.get(e)??null,y=e=>{let t=v(e);if(!t)throw Error(`No websocket client registered for environment ${e}.`);return t},b=$c({request:(e,t)=>{let n=y(e).client.orchestration.getThreadHistoryPage;return n?n(t):Promise.reject(Error(`Thread history pagination is unavailable`))},apply:(t,n,r)=>{e.syncThreadHistoryPage?.(t,n,r);let a=i.get(u(t,n));a&&(m(a,r),w())},setRequestState:t=>e.setThreadHistoryRequestState?.(t),recoverStale:async t=>{let n=y(t.environmentId).client.orchestration.getThreadWindow;if(!n)throw Error(`Bounded thread history is unavailable`);let r=await n({threadId:t.threadId,limits:{messages:150,proposedPlans:30,activities:150,checkpoints:30}});e.syncThreadWindowSnapshot?e.syncThreadWindowSnapshot(t.environmentId,r):e.syncThreadDetailSnapshot(t.environmentId,r);let a=i.get(u(t.environmentId,t.threadId));a&&(f(a,r),w())}}),x=t=>{if(t.unsubscribeConnectionListener!==null&&(t.unsubscribeConnectionListener(),t.unsubscribeConnectionListener=null),t.unsubscribe!==el)return!0;let n=v(t.environmentId);if(!n)return!1;let r=!0,i=el,a={environmentId:t.environmentId,threadId:t.threadId},o=()=>{r&&(t.protocol=`legacy`,i(),i=n.client.orchestration.subscribeThread({threadId:t.threadId},n=>{if(n.kind===`snapshot`){b.beginSnapshot(a),f(t,n.snapshot),w(),e.syncThreadDetailSnapshot(t.environmentId,n.snapshot);return}m(t,n.event),w(),e.applyThreadDetailEvent(t.environmentId,n.event)}))};t.unsubscribe=()=>{r=!1,i()};let s=n.client.orchestration.subscribeThreadWindow;if(t.protocol===`legacy`||s===void 0)return o(),!0;let c=!1;return i=s({threadId:t.threadId,limits:{messages:150,proposedPlans:30,activities:150,checkpoints:30}},n=>{if(n.kind===`snapshot`){b.beginSnapshot(a),f(t,n.snapshot),w(),e.syncThreadWindowSnapshot?e.syncThreadWindowSnapshot(t.environmentId,n.snapshot):e.syncThreadDetailSnapshot(t.environmentId,n.snapshot);return}m(t,n.event),w(),e.applyThreadDetailEvent(t.environmentId,n.event)},{onError:()=>{c=!0,i!==el&&o()}}),c&&o(),!0},S=t=>{t.unsubscribeConnectionListener===null&&(t.unsubscribeConnectionListener=_(()=>{x(t)&&(t.lastAccessedAt=e.now())}),x(t))},C=e=>{let t=i.get(e);return t?(h(t),t.unsubscribeConnectionListener?.(),t.unsubscribeConnectionListener=null,i.delete(e),b.invalidate({environmentId:t.environmentId,threadId:t.threadId}),t.unsubscribe(),t.unsubscribe=el,!0):!1},w=()=>{let e=Nc([...i.entries()].map(([e,t])=>({key:e,lastAccessedAt:t.lastAccessedAt,retainedBytes:t.estimatedRetainedBytes,evictable:g(t)})),{maxEntries:nl,maxBytes:rl});for(let t of e)C(t)},T=t=>{h(t),g(t)&&(t.evictionTimeoutId=e.setTimeout(()=>{let e=i.get(u(t.environmentId,t.threadId));e&&(e.evictionTimeoutId=null,g(e)&&C(u(e.environmentId,e.threadId)))},tl))},E=e=>{for(let t of i.values())t.environmentId===e&&T(t);w()},D=(e,t)=>{let n=i.get(u(e,t));n&&T(n)},O=(e,t)=>{let n=new Set(t);for(let[t,r]of i)r.environmentId===e&&!n.has(r.threadId)&&C(t)},k=e=>{let n=t.get(e.environmentId);if(n===e)return e;if(n&&n!==e)throw Error(`Environment ${e.environmentId} already has an active connection.`);t.set(e.environmentId,e);for(let t of i.values())t.environmentId===e.environmentId&&x(t);return l(),e},A=async e=>{let n=t.get(e);if(!n)return!1;t.delete(e),o.clearEnvironment(e),b.clearEnvironment(e),l();for(let t of i.values())t.environmentId===e&&(t.unsubscribe(),t.unsubscribe=el,S(t));return await n.dispose(),!0},j=(t,n)=>{let r=u(t,n),a=i.get(r),o=a??{environmentId:t,threadId:n,unsubscribe:el,unsubscribeConnectionListener:null,refCount:0,lastAccessedAt:e.now(),evictionTimeoutId:null,protocol:`bounded`,estimatedRetainedBytes:0};a||i.set(r,o),h(o),o.refCount+=1,o.lastAccessedAt=e.now(),x(o)||S(o),a||w();let s=!1;return()=>{s||(s=!0,o.refCount=Math.max(0,o.refCount-1),o.lastAccessedAt=e.now(),o.refCount===0&&(T(o),w()))}},M=e=>{for(let[t,n]of i)n.environmentId===e&&C(t)},N=()=>{let t=e.createPrimaryConnection();if(!t)return null;let n=v(t.environmentId);return n?(n!==t&&t.dispose().catch(el),n):k(t)},P=async e=>{let n=e?t.get(e):[...t.values()].find(e=>e.kind===`primary`);n?.kind===`primary`&&n&&await A(n.environmentId).catch(()=>!1)},F=(e,t)=>{let r=v(e.environmentId);if(r)return Promise.resolve(r);let i=n.get(e.environmentId);if(i)return i.promise;let a={cancelled:!1,promise:Promise.resolve().then(async()=>{let n=await t(()=>a.cancelled);if(a.cancelled)throw await A(n.environmentId).catch(()=>!1)||await n.dispose().catch(el),new sl(e.environmentId);return n})};return n.set(e.environmentId,a),a.promise.finally(()=>{n.get(e.environmentId)===a&&n.delete(e.environmentId)})},I=e=>{let t=n.get(e);t&&(t.cancelled=!0,n.delete(e))},L=(t,n)=>{if(!zc({current:o.read(n),sequence:t.sequence}))return;let r=e.stateSink.prepareShellEvent(n,t);e.stateSink.applyShellEvent(n,t),o.markEvent(n,t.sequence),e.stateSink.afterShellEventApplied(n,t,r)},R=(t,n,r)=>{e.onShellSnapshotReceived(n);let i=Rc({current:o.read(n),next:t});if(i===`current`){e.onShellSnapshotCurrent(n),r?.onCurrent();return}i!==`stale`&&(e.stateSink.syncServerShellSnapshot(n,t),e.onShellSnapshotApplied(n),o.markSnapshot(n,t),e.onShellSnapshotReady(n),r?.onReady(),O(n,t.threads.map(e=>e.id)),E(n),e.stateSink.reconcileSnapshotDerivedState())},ee=async()=>{let n=e.listSavedEnvironmentRecords(),r=new Set(n.map(e=>e.environmentId)),i=[...t.values()].filter(e=>e.kind===`saved`).map(e=>e.environmentId).filter(e=>!r.has(e));await Promise.all(i.map(t=>e.disconnectSavedEnvironment(t))),await e.waitForPrimaryShellSnapshotApplied(al),await Qc(Zc(n),{concurrency:ol,connect:async t=>{await F(t,n=>e.connectSavedEnvironment(t,n)).catch(()=>void 0)}})},te=()=>{let e=null,t=!1,n=async()=>{do t=!1,await ee();while(t)};return()=>e?(t=!0,e):(e=n().catch(()=>void 0).finally(()=>{e=null}),e)},ne=n=>{let r=e.now();if(!(r-c<il))for(let e of t.values())e.client.isHeartbeatFresh()||(c=r,e.reconnect().catch(t=>{console.warn(`Environment reconnect after browser resume failed`,{environmentId:e.environmentId,reason:n,error:t instanceof Error?t.message:String(t)})}))},re=()=>{s?.stop(),s=null};return{subscribe:_,list:()=>[...t.values()],read:v,require:y,register:k,remove:A,connectPrimary:N,disconnectPrimary:P,ensureSavedEnvironmentConnection:F,cancelPendingSavedEnvironmentConnection:I,applyShellEvent:L,resetShellProjection:e=>o.clearEnvironment(e),syncShellSnapshot:R,retainThreadDetailSubscription:j,disposeThreadDetailSubscriptionsForEnvironment:M,disposeThreadDetailSubscription:(e,t)=>C(u(e,t)),reconcileThreadDetailSubscriptionEvictionForEnvironment:E,reconcileThreadDetailSubscriptionEvictionForThread:D,reconcileThreadDetailSubscriptionsForEnvironment:O,evictIdleThreadDetailSubscriptionsToCapacity:w,loadOlderThreadHistory:({environmentId:e,threadId:t,collection:n,page:r,limit:i})=>b.loadBefore({scope:{environmentId:e,threadId:t},collection:n,page:r,limit:i}),loadThreadHistoryAroundMessage:({environmentId:e,threadId:t,messageId:n,limit:r})=>b.loadAroundMessage({scope:{environmentId:e,threadId:t},anchorId:n,limit:r}),start:()=>{if(s){let e=s;return e.refCount+=1,()=>{s===e&&(--e.refCount,e.refCount===0&&re())}}re(),e.resetProviderInvalidation();let t=e.createInvalidationThrottle(),n=te();N();let r=e.isHostedMode()?el:e.subscribeSavedEnvironmentRegistry(()=>{e.hasSavedEnvironmentRegistryHydrated()&&n()});e.isHostedMode()||e.waitForSavedEnvironmentRegistryHydration().then(n).catch(el);let i=e.isHostedMode()?el:e.subscribeBrowserResume(ne),a={throttle:t,refCount:1,stop:()=>{r(),i(),t.cancel()}};return s=a,()=>{s===a&&(--a.refCount,a.refCount===0&&re())}},requestProviderInvalidation:()=>{s?.throttle.maybeExecute()},resetForTests:async()=>{re(),c=-1/0;for(let e of i.keys())C(e);await Promise.all([...t.keys()].map(e=>A(e))),n.clear(),o.clear()}}}function ll(e,t){if(!O(e)||!O(t))return t;let n={...e};for(let[e,r]of Object.entries(t)){if(r===void 0)continue;let t=n[e];n[e]=O(t)&&O(r)?ll(t,r):r}return n}var ul=lt(e=>$e({try:()=>{let t=e.replace(/("(?:[^"\\]|\\.)*")|\/\/[^\n]*/g,(e,t)=>t?e:``);return t=t.replace(/("(?:[^"\\]|\\.)*")|\/\*[\s\S]*?\*\//g,(e,t)=>t?e:``),t=t.replace(/,(\s*[}\]])/g,`$1`),Mt(JSON.parse(t))},catch:t=>new Re({message:String(t)},e)})),dl=new on(ul,Un());(e=>It.pipe(Pe(e,dl)))(be);function fl(e){return!!(e&&(e.instanceId!==void 0||e.model!==void 0))}function pl(e){if(e.patch===void 0)return e.current?[...e.current]:void 0;if(e.patch.length===0)return;let t=new Map((e.current??[]).map(e=>[e.id,e.value]));for(let n of e.patch)t.set(n.id,n.value);return[...t.entries()].map(([e,t])=>({id:e,value:t}))}function ml(e,t){let n=t.textGenerationModelSelection,r=ll(e,t),i=t.providerInstances===void 0?r:{...r,providerInstances:t.providerInstances};if(!n)return i;let a=n.instanceId??e.textGenerationModelSelection.instanceId,o=n.model??e.textGenerationModelSelection.model,s=fl(n)?n.options:pl({current:e.textGenerationModelSelection.options,patch:n.options});return{...i,textGenerationModelSelection:di(a,o,s)}}var hl=i(),gl=fi();function _l(e){return e.requestedEnvironmentId??e.activeEnvironmentId??e.primaryEnvironmentId??null}var vl=(0,V.createContext)(null);function yl(e){let t=(0,hl.c)(3),n;return t[0]!==e.children||t[1]!==e.value?(n=(0,gl.jsx)(vl.Provider,{value:e.value,children:e.children}),t[0]=e.children,t[1]=e.value,t[2]=n):n=t[2],n}function bl(){return(0,V.useContext)(vl)}function xl(e,t){let n=(0,V.useRef)(t);n.current=t,ds(e,(0,V.useCallback)(e=>{e!==null&&n.current(e)},[]),{immediate:!0})}function Sl(){let e=us(ei),t=bl();return t?t.serverConfig:e}function Cl(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=Kr(t),e[0]=t,e[1]=n),n}function wl(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=kr(t),e[0]=t,e[1]=n),n}function Tl(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=Ur(t),e[0]=t,e[1]=n),n}function El(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=ni(t),e[0]=t,e[1]=n),n}function Dl(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=Qr(t),e[0]=t,e[1]=n),n}function Ol(){let e=(0,hl.c)(2),t=Sl(),n;return e[0]===t?n=e[1]:(n=Ir(t),e[0]=t,e[1]=n),n}function kl(e){xl(ri,e)}function Al(e){xl(Mr,e)}var jl=new Set,Ml=new Set,Nl=w,Pl=!1,Fl=null;function Il(){for(let e of jl)e()}function Ll(){for(let e of Ml)e()}function Rl(){return Nl}function zl(e){Nl=e,Il()}function Bl(){return Pl}function Vl(e){Pl!==e&&(Pl=e,Ll())}function Hl(e){return jl.add(e),()=>{jl.delete(e)}}function Ul(){return Fl}function Wl(e){Fl=e}function Gl(e){Fl===e&&(Fl=null)}var Kl=`[CLIENT_SETTINGS]`;function ql(e){let t=Hl(e);return Jl(),t}async function Jl(){if(Bl())return;let e=Ul();if(e)return e;let t=(async()=>{try{let e=await vg().persistence.getClientSettings();e&&zl({...w,...e})}catch(e){console.error(`${Kl} hydrate failed`,e)}finally{Vl(!0)}})().finally(()=>{Gl(t)});return Wl(t),t}function Yl(e){zl(e),vg().persistence.setClientSettings(e).catch(e=>{console.error(`${Kl} persist failed`,e)})}var Xl=new Set(L(be.fields));function Zl(e){let t={},n={};for(let[r,i]of Object.entries(e))Xl.has(r)?t[r]=i:n[r]=i;return{serverPatch:t,clientPatch:n}}function Ql(){return Rl()}function $l(e){let t=(0,hl.c)(6),n=Cl(),r=(0,V.useSyncExternalStore)(ql,Rl,eu),i;t[0]!==r||t[1]!==n?(i={...n,...r},t[0]=r,t[1]=n,t[2]=i):i=t[2];let a=i,o;return t[3]!==a||t[4]!==e?(o=e?e(a):a,t[3]=a,t[4]=e,t[5]=o):o=t[5],o}function eu(){return w}function tu(){let e=(0,hl.c)(9),t=bl(),n=t?.environmentId??null,r=t?.primary??!0,i=t?.connected??!0,a;e[0]!==i||e[1]!==n||e[2]!==r?(a=e=>{let{serverPatch:t,clientPatch:a}=Zl(e);if(Object.keys(t).length>0){if(n&&!r)i?EE(n,t).catch(e=>{console.error(`[SETTINGS] update failed for ${n}`,e)}):console.error(`[SETTINGS] Refused a node setting write while ${n} is disconnected.`);else{let e=Yn();e&&Er(ml(e.settings,t)),vg().server.updateSettings(t)}}Object.keys(a).length>0&&Yl({...Rl(),...a})},e[0]=i,e[1]=n,e[2]=r,e[3]=a):a=e[3];let o=a,s;e[4]===o?s=e[5]:(s=()=>{o(Le)},e[4]=o,e[5]=s);let c=s,l;return e[6]!==c||e[7]!==o?(l={updateSettings:o,resetSettings:c},e[6]=c,e[7]=o,e[8]=l):l=e[8],l}var nu=Object.freeze({data:null,error:null,cause:null,isPending:!1}),ru=Object.freeze({...nu,isPending:!0}),iu=Xn(nu).pipe(hr,Zr(`git-status:null`)),au=()=>void 0,ou=new Map,su=new Set,cu=new Map,lu=new Map,uu=1e3,du=Cr(e=>(su.add(e),Xn(ru).pipe(hr,Zr(`git-status:${e}`))));function fu(e){return e.environmentId===null||e.cwd===null?null:`${e.environmentId}:${e.cwd}`}function pu(e,t){return`${e}:remote-poll=${t?.automaticRemoteRefreshIntervalMs??0}`}function mu(e){if(e.environmentId===null)return null;let t=wE(e.environmentId);return t?{clientIdentity:t.environmentId,client:t.client.vcs}:null}function hu(e){let t=fu(e);return t===null?nu:z.get(du(t))}function gu(e,t,n){let r=fu(e);if(r===null)return au;let i=pu(r,n),a=ou.get(i);return a?(a.refCount+=1,()=>Su(i)):(ou.set(i,{refCount:1,unsubscribe:Cu(r,e,t,n)}),()=>Su(i))}function _u(e,t){return vu(e,t).then(t=>{let n=fu(e);return n!==null&&t!==null&&yu(n,t),t})}function vu(e,t){let n=fu(e);if(n===null||e.cwd===null)return Promise.resolve(null);let r=t??mu(e)?.client;if(!r)return Promise.resolve(hu(e).data);let i=cu.get(n);if(i)return i;let a=lu.get(n)??0;if(Date.now()-a<uu)return Promise.resolve(hu(e).data);lu.set(n,Date.now());let o=r.refreshStatus({cwd:e.cwd}).finally(()=>{cu.delete(n)});return cu.set(n,o),o}function yu(e,t){z.set(du(e),{data:t,error:null,cause:null,isPending:!1})}function bu(e){let t=(0,hl.c)(5),n=fu(e),r=$l(xu),i,a;t[0]!==r||t[1]!==e.cwd||t[2]!==e.environmentId?(i=()=>gu({environmentId:e.environmentId,cwd:e.cwd},void 0,{automaticRemoteRefreshIntervalMs:r}),a=[r,e.environmentId,e.cwd],t[0]=r,t[1]=e.cwd,t[2]=e.environmentId,t[3]=i,t[4]=a):(i=t[3],a=t[4]),(0,V.useEffect)(i,a);let o=us(n===null?iu:du(n));return n===null?nu:o}function xu(e){return e.gitStatusPollIntervalMs}function Su(e){let t=ou.get(e);t&&(--t.refCount,!(t.refCount>0)&&(t.unsubscribe(),ou.delete(e)))}function Cu(e,t,n,r){if(t.cwd===null)return au;let i=t.cwd,a=null,o=au,s=()=>{let s=n?{clientIdentity:`provided:${e}`,client:n}:mu(t);if(!s){a!==null&&(o(),o=au,a=null),Tu(e);return}a!==s.clientIdentity&&(o(),a=s.clientIdentity,o=wu(e,{...t,cwd:i},s.client,r))},c=n?au:SE(s);return s(),()=>{c(),o()}}function wu(e,t,n,r){Tu(e);let i=t.cwd,a=r?.automaticRemoteRefreshIntervalMs??0,o=n.onStatus({cwd:i,...a>0?{automaticRemoteRefreshIntervalMs:a}:{}},t=>{z.set(du(e),{data:t,error:null,cause:null,isPending:!1})},{onResubscribe:()=>{Tu(e)}}),s=!1;return vu(t,n).then(t=>{!s&&t!==null&&yu(e,t)}).catch(()=>void 0),()=>{s=!0,o()}}function Tu(e){let t=du(e),n=z.get(t),r=n.data===null?ru:{...n,error:null,cause:null,isPending:!0};(n.data!==r.data||n.error!==r.error||n.cause!==r.cause||n.isPending!==r.isPending)&&z.set(t,r)}var Eu=Object.freeze({data:null,error:null,isPending:!1}),Du=Object.freeze({data:null,error:null,isPending:!0}),Ou=new Set,ku=Cr(e=>(Ou.add(e),Xn(Du).pipe(hr,Zr(`source-control-discovery:${e}`))));Xn(Eu).pipe(hr,Zr(`source-control-discovery:null`));function Au(e){let t=e.key?.trim();return t&&t.length>0?t:null}function ju(e){let t=new Map;function n(t,n){e.getRegistry().set(ku(t),n)}function r(t){let r=e.getRegistry().get(ku(t)),i=r.data===null?Du:{data:r.data,error:null,isPending:!0};(r.data!==i.data||r.error!==i.error||r.isPending!==i.isPending)&&n(t,i)}function i(e,t){n(e,{data:t,error:null,isPending:!1})}function a(t,r){n(t,{data:e.getRegistry().get(ku(t)).data,error:r instanceof Error?r.message:`Failed to discover source control tools.`,isPending:!1})}function o(n,o){let c=Au(n);if(c===null)return Promise.resolve(null);let l=t.get(c);if(l)return l;let u=o??e.getClient(c);if(!u)return a(c,Error(`Source control discovery client is unavailable.`)),Promise.resolve(s(n).data);r(c);let d=u.discoverSourceControl().then(e=>(i(c,e),e),e=>(a(c,e),s(n).data)).finally(()=>t.delete(c));return t.set(c,d),d}function s(t){let n=Au(t);return n===null?Eu:e.getRegistry().get(ku(n))}function c(){t.clear();for(let e of Ou)n(e,Du);Ou.clear()}return{refresh:o,getSnapshot:s,reset:c}}var Mu={key:`primary`},Nu=3e4,Pu=3e5;function Fu(e){let t=e?.environmentId??null;return t?Xr()?.environmentId===t?Mu:{key:t}:Mu}var Iu=ju({getRegistry:()=>z,getClient:e=>{if(e===Mu.key){let e=Xr()?.environmentId??null,t=e?wE(e):null;if(t)return t.client.server;try{return _g()?.server??null}catch{return null}}let t=wE(ye.make(e));return t?t.client.server:null}}),Lu=Cr(e=>Xn(()=>pt(()=>Iu.refresh({key:e}))).pipe(Hr({staleTime:Nu,revalidateOnMount:!0}),ti(Pu),Zr(`source-control-discovery:auto-refresh:${e}`)));function Ru(e){return Iu.refresh(Fu(e))}function zu(e){return Iu.getSnapshot(Fu(e))}function Bu(e){let t=Au(Fu(e))??Mu.key;return us(Lu(t)),us(ku(t))}function Vu(){return us(qr)}var Hu={now:()=>typeof performance<`u`&&typeof performance.now==`function`?performance.now():Date.now()},Uu={scheduleFrame:e=>{if(typeof requestAnimationFrame==`function`){requestAnimationFrame(()=>e());return}setTimeout(e,0)}};function Wu(){return _i(typeof window>`u`?null:window.localStorage)}function Gu(e=Wu()){return{getItem:async t=>await e.getItem(t),setItem:async(t,n)=>{await e.setItem(t,n)},removeItem:async t=>{await e.removeItem(t)}}}Gu();var Ku=yt(`effect/http/FetchHttpClient/Fetch`,{defaultValue:()=>globalThis.fetch}),qu=class extends zn()(`effect/http/FetchHttpClient/RequestInit`){},Ju=Ec(S(bc((e,t,n,r)=>{let i=r.getRef(Ku),a=r.context.mapUnsafe.get(qu.key)??{},o=a.headers?gr(ar(a.headers),e.headers):e.headers;o[`content-length`]&&(o=Qn(o,`content-length`));let s=r=>wt(it({try:()=>i(t,{...a,method:e.method,headers:o,body:r,duplex:e.body._tag===`Stream`?`half`:void 0,signal:n}),catch:t=>new nr({reason:new sr({request:e,cause:t})})}),t=>uc(e,t));switch(e.body._tag){case`Raw`:case`Uint8Array`:return s(e.body.body);case`FormData`:return s(e.body.formData);case`Stream`:return Ye(Ae(e.body.stream),s)}return s(void 0)}))),Yu=e=>{let t=I(e).pipe(re(go));if(Qe(t))return S(ut(t.value));if(e===void 0)return S(ut(5));let n=Date.parse(e);return Number.isNaN(n)?S(ut(5)):wt(mo,e=>Rt(Math.max(n-e.currentTimeMillisUnsafe(),1)))},Xu=Cn.pipe(An,_t(({output:e})=>Tr(e)&&e.reason._tag===`StatusCodeError`&&e.reason.response.status===429?Yu(e.reason.response.headers[`retry-after`]):S(ut(1)))),Zu=class extends zn()(`effect/observability/OtlpExporter/Flusher`){},Qu=Rn(Zu,()=>{let e=new Set;return{flush:qe(()=>e.size===0?Pt:le(e,se,{concurrency:`unbounded`,discard:!0})),register:t=>Ye(Ve,n=>(e.add(t),M(n,ie(()=>e.delete(t)))))}}),$u=hn(function*(e){let t=yield*pe(),n=Fn(t,mo),r=Fn(t,Ve),i=Wt(pn(e.exportInterval),Wn),a,o=_c(Fn(t,hc)).pipe(gc(Kn(wc,!1)),xc({schedule:Xu,times:3})),s=dr({"user-agent":`effect-opentelemetry-${e.label}/0.0.0`});e.headers&&(s=gr(ar(e.headers),s));let c=Xs(e.url,{headers:s}),l=[],u=qe(()=>{if(a!==void 0&&n.currentTimeMillisUnsafe()<a)return Pt;a!==void 0&&(a=void 0);let t=l;if(e.maxBatchSize!==`disabled`){if(l.length===0)return Pt;l=[]}let[r,i]=e.body(t);return o.execute(oc(c,r)).pipe(xe(i),g,Yt(!1))}).pipe(ve(e=>a===void 0?(a=n.currentTimeMillisUnsafe()+6e4,l=[],gt(`Disabling exporter for 60 seconds`,e)):Pt),en({package:`@effect/opentelemetry`,module:e.label})),d=yield*$r(),f=yield*zr(d)();return yield*(yield*Zu).register(u),yield*M(r,qe(()=>a===void 0?(f(u),Gr(d)):Pt).pipe(Nt,yn,_n(e.shutdownTimeout))),yield*Jn(i).pipe(xe(jr(d,u)),Ye(qt),nt,at(r)),{push(t){a===void 0&&(l.push(t),e.maxBatchSize!==`disabled`&&l.length>=e.maxBatchSize&&f(u))}}}),ed=e=>{let t=e.attributes?rd(Object.entries(e.attributes)):[];return t.push({key:`service.name`,value:{stringValue:e.serviceName}}),e.serviceVersion&&t.push({key:`service.version`,value:{stringValue:e.serviceVersion}}),{attributes:t,droppedAttributesCount:0}},td=hn(function*(e){let t=yield*Xo(dt(Zo(mn,mn)),`OTEL_RESOURCE_ATTRIBUTES`),n=e?.serviceName??e?.attributes?.[`service.name`]??(yield*Xo(dt(It),`OTEL_SERVICE_NAME`))??t?.[`service.name`]??(yield*Qo(`OTEL_SERVICE_NAME`)),r=e?.serviceVersion??e?.attributes?.[`service.version`]??(yield*Xo(dt(It),`OTEL_SERVICE_VERSION`))??t?.[`service.version`],i={...t,...e?.attributes};return delete i[`service.name`],delete i[`service.version`],ed({serviceName:n,serviceVersion:r,attributes:i})},Bt),nd=e=>{let t=e.attributes.find(e=>e.key===`service.name`);if(!t||!t.value.stringValue)throw Error(`Resource does not contain a service name`);return t.value.stringValue},rd=e=>{let t=[];for(let[n,r]of e)t.push({key:n,value:id(r)});return t},id=e=>{if(Array.isArray(e))return{arrayValue:{values:e.map(id)}};switch(typeof e){case`string`:return{stringValue:e};case`bigint`:return{intValue:String(e)};case`number`:return Number.isInteger(e)?{intValue:e}:{doubleValue:e};case`boolean`:return{boolValue:e};default:return{stringValue:Ot(e)}}},ad=class extends zn()(`effect/observability/OtlpSerialization`){},od=E(ad,{traces:e=>ks(e),metrics:e=>ks(e),logs:e=>ks(e)}),sd=hn(function*(e){let t=yield*td(e.resource),n=yield*ad,r={name:nd(t)},i=yield*$u({label:`OtlpTracer`,url:e.url,headers:e.headers,exportInterval:e.exportInterval??ut(5),maxBatchSize:e.maxBatchSize??1e3,body(e){let i={resourceSpans:[{resource:t,scopeSpans:[{scope:r,spans:e}]}]};return[n.traces(i),Pt]},shutdownTimeout:e.shutdownTimeout??ut(3)});function a(e){e.sampled&&i.push(dd(e))}return xn({span(e){return ld({...e,status:{_tag:`Started`,startTime:e.startTime},attributes:new Map,export:a})},context:e.context?function(t,n){return n.currentSpan===void 0?t[`~effect/Effect/evaluate`](n):e.context(t,n.currentSpan)}:void 0})}),cd={_tag:`Span`,end(e,t){this.status={_tag:`Ended`,startTime:this.status.startTime,endTime:e,exit:t},this.export(this)},attribute(e,t){this.attributes.set(e,t)},event(e,t,n){this.events.push([e,t,n])},addLinks(e){this.links.push(...e)}},ld=e=>{let t=Object.assign(Object.create(cd),e);return t.traceId=Qe(t.parent)?t.parent.value.traceId:ud(32),t.spanId=ud(16),t.events=[],t},ud=e=>{let t=``;for(let n=0;n<e;n++)t+=`0123456789abcdef`[Math.floor(Math.random()*16)];return t},dd=e=>{let t=e.status,n=rd(e.attributes.entries()),r=e.events.map(([e,t,n])=>({name:e,timeUnixNano:String(t),attributes:n?rd(Object.entries(n)):[],droppedAttributesCount:0})),i;if(t.exit._tag===`Success`)i=md;else if(ct(t.exit.cause))i={code:fd.Ok,message:`Interrupted`},n.push({key:`span.label`,value:{stringValue:`⚠︎ Interrupted`}},{key:`status.interrupted`,value:{boolValue:!0}});else{let e=En(t.exit.cause,{includeCauseInStack:!0});if(i={code:fd.Error},e.length>0){i.message=e[0].message;for(let n of e)r.push({name:`exception`,timeUnixNano:String(t.endTime),droppedAttributesCount:0,attributes:[{key:`exception.type`,value:{stringValue:n.name}},{key:`exception.message`,value:{stringValue:n.message}},{key:`exception.stacktrace`,value:{stringValue:n.stack??`No stack trace available`}}]})}}return{traceId:e.traceId,spanId:e.spanId,parentSpanId:Oe(e.parent,{onNone:()=>void 0,onSome:e=>e.spanId}),name:e.name,kind:pd[e.kind],startTimeUnixNano:String(t.startTime),endTimeUnixNano:String(t.endTime),attributes:n,droppedAttributesCount:0,events:r,droppedEventsCount:0,status:i,links:e.links.map(e=>({traceId:e.span.traceId,spanId:e.span.spanId,attributes:rd(Object.entries(e.attributes)),droppedAttributesCount:0})),droppedLinksCount:0}},fd={Unset:0,Ok:1,Error:2},pd={unspecified:0,internal:1,server:2,client:3,producer:4,consumer:5},md={code:fd.Ok},hd=1e3,gd={serviceName:`ryco-web`,attributes:{"service.runtime":`ryco-web`,"service.mode":d?`electron`:`browser`,"service.version":ki}},_d=St(Ju,od,Qu,E(Sc,()=>!0)),vd=null,yd=null,bd=null,xd=null,Sd=0,Cd=Promise.resolve(),wd=E(un,xn({span(e){return vd?.span(e)??new ht(e)}}));function Td(e={}){return e.exportIntervalMs===void 0&&xd!==null||(Cd=Cd.finally(()=>Ed(e))),Cd}async function Ed(e){let t=xr(`/api/observability/v1/traces`),n=Math.max(10,e.exportIntervalMs??hd),r=`${t}|${n}`;if(xd===r&&vd!==null)return;xd=r;let i=++Sd,a=yd,o=bd;vd=null,yd=null,bd=null,await Dd(a,o);let s=Or(_d),c=s.runSync(b());try{let e=await s.runPromise(_e(c)(sd({url:t,exportInterval:`${n} millis`,resource:gd})));if(i!==Sd){await Dd(s,c);return}vd=e,yd=s,bd=c}catch(e){await Dd(s,c),i===Sd&&console.warn(`Failed to configure client tracing exporter`,{error:Od(e),otlpTracesUrl:t})}}async function Dd(e,t){e!==null&&t!==null&&await e.runPromise(we(t,ee)).catch(()=>void 0).finally(()=>{e.dispose()})}function Od(e){return e instanceof Error&&e.message.trim().length>0?e.message:String(e)}var kd={tracingLayer:wd,performanceEnabled:()=>ji(),recordPerformance:(e,t,n)=>Ai(e,t,n)},Ad=class{#e;#t;#n;#r;#i;#a;#o=0;#s=null;constructor(e={}){this.#e=e.baseDelayMs??1e3,this.#t=e.maxDelayMs??6e4,this.#n=e.stableIntervalMs??6e4,this.#r=e.jitterRatio??.2,this.#i=e.random??Math.random,this.#a=e.now??Date.now}opened(){this.#s=this.#a()}closed(){this.#s!==null&&this.#a()-this.#s>=this.#n&&(this.#o=0),this.#s=null}nextDelay(e){let t=Math.min(this.#o,30);this.#o+=1;let n=Math.min(this.#t,this.#e*2**t),r=Math.max(0,Math.min(1,this.#i())),i=1-this.#r+2*this.#r*r,a=Math.max(250,Math.min(this.#t,Math.round(n*i)));return Math.min(Ie,Math.max(a,Math.max(0,Math.min(Ie,Math.round(e??0)))))}reset(){this.#o=0,this.#s=null}};function jd(e,t){return Pd(e),Pd(t),e.epoch===t.epoch?e.counter===t.counter?0:e.counter<t.counter?-1:1:e.epoch<t.epoch?-1:1}function Md(e,t){return jd(e,t)===0}function Nd(e,t){if(Pd(e),t)return e.epoch>=4294967295n?void 0:{epoch:e.epoch+1n,counter:0n};if(!(e.counter>=18446744073709551615n))return{epoch:e.epoch,counter:e.counter+1n}}function Pd(e){if(typeof e?.epoch!=`bigint`||typeof e.counter!=`bigint`||e.epoch<0n||e.epoch>4294967295n||e.counter<0n||e.counter>18446744073709551615n)throw TypeError(`Relay E2EE sequence positions are bigints within their field ranges.`);return e}function Fd(e){let t=Wi(e.epoch,e.counter);return{epochField:t.slice(0,4),counterField:t.slice(4)}}function Id(e){let t=0n;for(let n=0;n<e.byteLength;n+=1)t=t<<8n|BigInt(e[n]);return t}var Ld=`ryco.relay-e2ee.close.v1`;function Rd(e){return e===2||e===4}function zd(e){let t=tf(e.innerType),n=nf(e.senderDirection),r=af(e.sessionBindingHash),i=Fd(e.finalSend),a=Fd(e.expectedRecv);return Uint8Array.from(Oa([Ld,t,n,r,i.epochField,i.counterField,a.epochField,a.counterField],ja))}function Bd(e){let t=Ja(zd(e));if(t.byteLength!==32)throw TypeError(`Relay E2EE close commitment must be E2EE_CLOSE_COMMITMENT_BYTES long.`);return t}var Vd=5,Hd=Object.freeze([4,8,4,8,32]);function Ud(e){let t=Fd(e.finalSend),n=Fd(e.expectedRecv);return Uint8Array.from(Oa([t.epochField,t.counterField,n.epochField,n.counterField,Bd(e)],ja))}function Wd(e){let t=ta(e);if(t.kind===`error`)return{kind:`error`,reason:t.reason};let n=t.value;if(!Array.isArray(n)||n.length!==Vd)return{kind:`error`,reason:`shape`};for(let e=0;e<Vd;e+=1){let t=n[e];if(!(t instanceof Uint8Array))return{kind:`error`,reason:`shape`};if(t.byteLength!==Hd[e])return{kind:`error`,reason:`field_width`}}let r=n;return{kind:`ok`,value:{finalSendEpochField:r[0],finalSendCounterField:r[1],expectedRecvEpochField:r[2],expectedRecvCounterField:r[3],closeCommitment:r[4],finalSend:{epoch:Id(r[0]),counter:Id(r[1])},expectedRecv:{epoch:Id(r[2]),counter:Id(r[3])}}}}function Gd(e){let t=tf(e.innerType),n=nf(e.senderDirection),r=af(e.sessionBindingHash);Pd(e.envelope),Pd(e.currentNextSend);let i=Wd(e.body);if(i.kind===`error`)return{kind:`invalid`,reason:`malformed_body`,decodeError:i.reason};let a=i.value,o=Fd(e.envelope);if(!Qa(a.finalSendEpochField,o.epochField)||!Qa(a.finalSendCounterField,o.counterField))return{kind:`invalid`,reason:`header_mismatch`};let s=Bd({innerType:t,senderDirection:n,sessionBindingHash:r,finalSend:a.finalSend,expectedRecv:a.expectedRecv});if(!Qa(a.closeCommitment,s))return{kind:`invalid`,reason:`commitment_mismatch`};if(t===2)return jd(a.expectedRecv,e.currentNextSend)>0?{kind:`invalid`,reason:`passed_through_rule`}:{kind:`ok`,value:a};let c=e.closeAnchor;if(c===void 0)throw TypeError(`Relay E2EE strict close-rule requires the receiver's close anchor (§10.1.1).`);return Pd(c),Md(a.expectedRecv,c)?{kind:`ok`,value:a}:{kind:`invalid`,reason:`strict_rule`}}var Kd=Object.freeze({failed:3,unclean_truncation:2,unclean_abrupt:1,clean:0});function qd(e){let t=Kd[e];if(t===void 0)throw TypeError(`Relay E2EE close verdict must be one of the four §10.4 verdicts.`);return t}function Jd(e,t){return qd(t)>qd(e)?t:e}function Yd(e){return e===1||e===2||e===3}var Xd=1;function Zd(e){if(!Yd(e))throw TypeError(`Relay E2EE error records carry a defined §11.3 error code.`);return Uint8Array.from(Oa([e],ja))}function Qd(e){if(!(e instanceof Uint8Array))return{kind:`error`,reason:`malformed`};if(e.byteLength>16)return{kind:`error`,reason:`oversized`};let t=ta(e);if(t.kind===`error`)return{kind:`error`,reason:t.reason};let n=t.value;if(!Array.isArray(n)||n.length!==Xd)return{kind:`error`,reason:`shape`};let r=n[0];return typeof r!=`number`||!Number.isSafeInteger(r)||r<0?{kind:`error`,reason:`shape`}:{kind:`ok`,value:{errorCode:r,defined:Yd(r)}}}var $d=2,ef=class{#e;#t;#n;#r=`open`;#i;#a;#o;#s=!1;#c;#l;#u=!1;#d=0;#f=!1;#p=!1;#m=!1;#h=0;#g;#_=!1;#v;#y=!1;#b=!1;#x;constructor(e){this.#e=Uint8Array.from(af(e.sessionBindingHash)),this.#t=nf(e.sendDirection),this.#n=this.#t===`c2n`?`n2c`:`c2n`}get state(){return this.#r}get branch(){return this.#i}get closeAnchor(){return this.#a}get closeAnchorRecord(){return this.#o}get closeAnchorUnavailable(){return this.#s}get ackExpectedRecv(){return this.#l}get ackExpectedRecvUnavailable(){return this.#u}get pendingRecord(){return this.#r===`close_received`||this.#r===`simultaneous_pending`?this.#u?void 0:`close_ack`:this.#r===`confirmation_due`?`final_confirmation`:void 0}get closeRecordsSent(){return this.#d}get waitsArmed(){return this.#h}get waitDeadlineAt(){return this.#g}get closePhaseActive(){return this.#r!==`open`}get exchangeComplete(){return this.#f}get mayProtectApplicationRecord(){return this.#r===`open`}get mayProtectTerminalError(){return!this.#y&&!this.#b}get terminalErrorSent(){return this.#y}get isLastRecordSender(){return this.#_}get lingerDeadlineAt(){return this.#v}get verdict(){return this.#x}buildClose(e){if(this.#r!==`open`)throw TypeError(`Relay E2EE close machine may only initiate from the application phase.`);return this.#S(2,`close`,e)}buildCloseAck(e){let t=this.pendingRecord;if(t===void 0)throw TypeError(`Relay E2EE close machine owes no close acknowledgement in this state.`);let n=this.ackExpectedRecv;if(n!==void 0&&!Md(Pd(e.expectedRecv),n))throw TypeError(`Relay E2EE close acknowledgement declares the expected-next as of the peer's close.`);return this.#S(4,t,e)}#S(e,t,n){if(this.#y||this.#b)throw TypeError(`Relay E2EE close machine is terminal; no further record may follow.`);if(this.#d>=2)throw TypeError(`Relay E2EE close machine exceeded E2EE_CLOSE_RECORDS_RESERVED records.`);let r={epoch:Pd(n.sendPosition).epoch,counter:n.sendPosition.counter},i={epoch:Pd(n.expectedRecv).epoch,counter:n.expectedRecv.counter},a={innerType:e,body:Ud({innerType:e,senderDirection:this.#t,sessionBindingHash:this.#e,finalSend:r,expectedRecv:i}),position:r,purpose:t};return this.#c=a,a}noteTransmitted(e){let t=this.#c;if(t===void 0||t!==e.record)throw TypeError(`Relay E2EE close machine was told of a record it did not build.`);rf(e.at);let n={epoch:e.epoch,counter:e.counter};if(!Md(n,t.position))throw TypeError(`Relay E2EE close record was protected at a position it does not declare.`);if(t.purpose===`close`&&this.#r!==`open`||t.purpose===`close_ack`&&this.#r!==`close_received`&&this.#r!==`simultaneous_pending`||t.purpose===`final_confirmation`&&this.#r!==`confirmation_due`)throw TypeError(`Relay E2EE close machine left the state this record answers.`);if(this.#c=void 0,this.#d+=1,this.#a===void 0&&!this.#s){let r=Nd(n,e.epochCompleted);r===void 0?(this.#s=!0,this.#k(`unclean_abrupt`)):(this.#a=r,this.#o=t.innerType)}switch(t.purpose){case`close`:this.#r=`awaiting_ack`,this.#T(e.at);return;case`close_ack`:if(this.#l=void 0,this.#r===`close_received`){this.#i=`sequential_responder`,this.#r=`awaiting_confirmation`,this.#T(e.at);return}if(this.#i=`simultaneous`,this.#_=!0,this.#v=e.at+Vi,this.#p){this.#E();return}this.#r=`awaiting_simultaneous_ack`,this.#T(e.at);return;case`final_confirmation`:this.#i=`sequential_initiator`,this.#_=!0,this.#v=e.at+Vi,this.#E();return}}noteTerminalErrorTransmitted(){if(!this.mayProtectTerminalError)throw TypeError(`Relay E2EE close machine permits exactly one terminal E2EEError.`);this.#y=!0,this.#c=void 0,this.#k(`failed`),this.#D()}receive(e){if(!va(e.innerType))throw TypeError(`Relay E2EE inner record type must be a registered type.`);if(Pd(e.envelope),Pd(e.currentNextSend),rf(e.at),e.innerType===3){let t=Qd(e.body);return t.kind===`error`?this.#O(`malformed_error_body`,`Q11`,t.reason):(this.#b=!0,this.#c=void 0,this.#k(`failed`),this.#D(),{kind:`terminal_error`,value:t.value})}return this.#r===`ended`?this.#O(`record_beyond_machine`):e.innerType===1?this.#m||this.#p||this.#r===`complete`?this.#O(`record_beyond_machine`):{kind:`application`}:e.innerType===2?this.#C(e):this.#w(e)}#C(e){if(this.#r!==`open`&&this.#r!==`awaiting_ack`)return this.#O(`record_beyond_machine`);let t=Gd({innerType:2,body:e.body,envelope:e.envelope,sessionBindingHash:this.#e,senderDirection:this.#n,currentNextSend:e.currentNextSend});if(t.kind===`invalid`)return this.#O(t.reason);this.#m=!0;let n=Nd({epoch:e.envelope.epoch,counter:e.envelope.counter},e.epochCompleted===!0);return n===void 0?(this.#u=!0,this.#k(`unclean_abrupt`)):this.#l=n,this.#r===`open`?(this.#i=`sequential_responder`,this.#r=`close_received`,this.#u&&this.#T(e.at),{kind:`close`,branch:`sequential`,value:t.value}):(this.#i=`simultaneous`,this.#r=`simultaneous_pending`,{kind:`close`,branch:`simultaneous`,value:t.value})}#w(e){let t=this.#a;if(!(t!==void 0&&!this.#p&&(this.#r===`awaiting_ack`||this.#r===`awaiting_confirmation`||this.#r===`simultaneous_pending`||this.#r===`awaiting_simultaneous_ack`)))return this.#O(`record_beyond_machine`);let n=Gd({innerType:4,body:e.body,envelope:e.envelope,sessionBindingHash:this.#e,senderDirection:this.#n,currentNextSend:e.currentNextSend,closeAnchor:t});return n.kind===`invalid`?this.#O(n.reason):(this.#p=!0,this.#r===`awaiting_ack`?(this.#i=`sequential_initiator`,this.#r=`confirmation_due`,{kind:`close_ack`,exchangeComplete:!1,value:n.value}):this.#r===`simultaneous_pending`?{kind:`close_ack`,exchangeComplete:!1,value:n.value}:(this.#E(),{kind:`close_ack`,exchangeComplete:!0,value:n.value}))}waitExpired(e){return this.#g!==void 0&&e>this.#g}noteWaitExpired(e){if(!this.waitExpired(e))throw TypeError(`Relay E2EE close machine has no expired T_CLOSE wait.`);return this.#c=void 0,this.#k(`unclean_abrupt`),this.#D(),this.#x}noteChannelEnded(e){return e.incompleteReassembly===!0?this.#k(`unclean_truncation`):this.exchangeComplete||this.#k(`unclean_abrupt`),this.#c=void 0,this.#D(),this.#x??`unclean_abrupt`}noteFatal(){return this.#c=void 0,this.#k(`failed`),this.#D(),this.#x}outerCloseAllowed(e){return!this.closePhaseActive||this.#r===`ended`||this.#r===`complete`||this.waitExpired(e)}shouldLinger(e){return this.#_?this.#v!==void 0&&e<this.#v:!1}#T(e){if(this.#h>=$d)throw TypeError(`Relay E2EE close phase admits at most two T_CLOSE-bounded waits.`);rf(e),this.#h+=1,this.#g=e+ra}#E(){this.#r=`complete`,this.#f=!0,this.#g=void 0,this.#k(`clean`)}#D(){this.#r=`ended`,this.#g=void 0}#O(e,t=`Q7`,n){return this.#c=void 0,this.#k(`failed`),this.#D(),n===void 0?{kind:`fatal`,row:t,reason:e}:{kind:`fatal`,row:t,reason:e,decodeError:n}}#k(e){this.#x=this.#x===void 0?e:Jd(this.#x,e)}};function tf(e){if(!Rd(e))throw TypeError(`Relay E2EE close records are inner type 0x02 or 0x04 only.`);return e}function nf(e){if(!ga(e))throw TypeError(`Relay E2EE direction must be a registered direction label.`);return e}function rf(e){if(typeof e!=`number`||!Number.isFinite(e))throw TypeError(`Relay E2EE close machine requires a finite timestamp.`);return e}function af(e){if(!(e instanceof Uint8Array)||e.byteLength!==32)throw TypeError(`Relay E2EE close records require a full-length session binding hash.`);return e}function of(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}var sf=e=>e?`"${e}" `:``;function cf(e,t=``){if(typeof e!=`boolean`)throw TypeError(sf(t)+`expected boolean, got type=`+typeof e);return e}function lf(e,t=``){if(typeof e!=`number`)throw TypeError(sf(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(sf(t)+`expected integer >= 0, got `+e);return e}function H(e,t,n=``){if(of(e)&&(t===void 0||e.length===t))return e;t!==void 0&&lf(t,`length`);let r=of(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=sf(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}var uf=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError(t===`object`?`expected valid options object`:`"${t}" expected object, got type=${typeof e}`)};function df(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function ff(e,t){H(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function pf(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function mf(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function hf(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var gf=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function _f(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function vf(e){for(let t=0;t<e.length;t++)e[t]=_f(e[t]);return e}var yf=gf?e=>e:vf;function bf(e,t){return uf(e,`defaults`),uf(t,`opts`),Object.assign(e,t)}function xf(e,t){if(e=H(e),t=H(t),e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}function Sf(e,t,n){let r=t,i=n||(()=>[]),a=(e,t)=>r(t,...i(e)).update(e).digest(),o=r(new Uint8Array(e),...i(new Uint8Array));return a.outputLen=o.outputLen,a.blockLen=o.blockLen,a.create=(e,...t)=>r(e,...t),a}var Cf=(e,t)=>{function n(n,...r){if(H(n,void 0,`key`),e.nonceLength!==void 0){let t=r[0];H(t,e.varSizeNonce?void 0:e.nonceLength,`nonce`)}let i=e.tagLength,a=e.nonceLength===void 0?0:1;if(!e.withAAD){for(let e=a;e<r.length;e++)if(of(r[e]))throw Error(`AAD not supported`)}e.withAAD&&r[a]!==void 0&&H(r[a],void 0,`AAD`);let o=t(n,...r),s=(e,t)=>{if(t!==void 0){if(e!==2)throw Error(`cipher output not supported`);H(t,void 0,`output`)}},c=!1;return{encrypt(e,t){if(c)throw Error(`cannot encrypt() twice with same key + nonce`);return c=!0,H(e,void 0,`data`),s(o.encrypt.length,t),o.encrypt(e,t)},decrypt(e,t){if(H(e,void 0,`data`),i&&e.length<i)throw Error(`"ciphertext" expected length >= tagLength=`+i);return s(o.decrypt.length,t),o.decrypt(e,t)}}}return Object.assign(n,e),n};function wf(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(H(t,e,`output`),n&&!Ef(t))throw Error(`invalid output, must be aligned`);return t}function Tf(e,t,n){lf(e),lf(t),cf(n);let r=new Uint8Array(16),i=hf(r);return i.setBigUint64(0,BigInt(t),n),i.setBigUint64(8,BigInt(e),n),r}function Ef(e){return e.byteOffset%4==0}function Df(e){return Uint8Array.from(H(e))}var Of=e=>Uint8Array.from(e.split(``),e=>e.charCodeAt(0)),kf=yf(pf(Of(`expand 16-byte k`))),Af=yf(pf(Of(`expand 32-byte k`)));function U(e,t){return e<<t|e>>>32-t}var jf=64,Mf=16,Nf=2**32-1,Pf=Uint32Array.of();function Ff(e,t,n,r,i,a,o,s){let c=i.length,l=new Uint8Array(jf),u=pf(l),d=gf&&Ef(i)&&Ef(a),f=d?pf(i):Pf,p=d?pf(a):Pf;if(!gf){for(let d=0;d<c;o++){if(e(t,n,r,u,o,s),yf(u),o>=Nf)throw Error(`arx: counter overflow`);let f=Math.min(jf,c-d);for(let e=0,t;e<f;e++)t=d+e,a[t]=i[t]^l[e];d+=f}return}for(let m=0;m<c;o++){if(e(t,n,r,u,o,s),o>=Nf)throw Error(`arx: counter overflow`);let h=Math.min(jf,c-m);if(d&&h===jf){let e=m/4;if(m%4!=0)throw Error(`arx: invalid block position`);for(let t=0,n;t<Mf;t++)n=e+t,p[n]=f[n]^u[t];m+=jf;continue}for(let e=0,t;e<h;e++)t=m+e,a[t]=i[t]^l[e];m+=h}}function If(e,t){let{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:a,rounds:o}=bf({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!=`function`)throw Error(`core must be a function`);return lf(i),lf(o),cf(a),cf(n),(t,s,c,l,u=0)=>{H(t,void 0,`key`),H(s,void 0,`nonce`),H(c,void 0,`data`);let d=c.length;if(l=wf(d,l,!1),lf(u),u<0||u>=Nf)throw Error(`arx: counter overflow`);let f=[],p=t.length,m,h;if(p===32)f.push(m=Df(t)),h=Af;else if(p===16&&n)m=new Uint8Array(32),m.set(t),m.set(t,16),h=kf,f.push(m);else throw H(t,32,`arx key`),Error(`invalid key size`);(!gf||!Ef(s))&&f.push(s=Df(s));let g=pf(m);if(r){if(s.length!==24)throw Error(`arx: extended nonce must be 24 bytes`);let e=s.subarray(0,16);if(gf)r(h,g,pf(e),g);else{let t=yf(Uint32Array.from(h));r(t,g,pf(e),g),mf(t),yf(g)}s=s.subarray(16)}else gf||yf(g);let _=16-i;if(_!==s.length)throw Error(`arx: nonce must be ${_} or 16 bytes`);if(_!==12){let e=new Uint8Array(12);e.set(s,a?0:12-s.length),s=e,f.push(s)}let v=yf(pf(s));try{return Ff(e,h,g,v,c,l,u,o),l}finally{mf(...f)}}}function Lf(e,t){return e[t++]&255|(e[t++]&255)<<8}var Rf=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;destroyed=!1;constructor(e){e=Df(H(e,32,`key`));let t=Lf(e,0),n=Lf(e,2),r=Lf(e,4),i=Lf(e,6),a=Lf(e,8),o=Lf(e,10),s=Lf(e,12),c=Lf(e,14);this.r[0]=t&8191,this.r[1]=(t>>>13|n<<3)&8191,this.r[2]=(n>>>10|r<<6)&7939,this.r[3]=(r>>>7|i<<9)&8191,this.r[4]=(i>>>4|a<<12)&255,this.r[5]=a>>>1&8190,this.r[6]=(a>>>14|o<<2)&8191,this.r[7]=(o>>>11|s<<5)&8065,this.r[8]=(s>>>8|c<<8)&8191,this.r[9]=c>>>5&127;for(let t=0;t<8;t++)this.pad[t]=Lf(e,16+2*t)}process(e,t,n=!1){let r=n?0:2048,{h:i,r:a}=this,o=a[0],s=a[1],c=a[2],l=a[3],u=a[4],d=a[5],f=a[6],p=a[7],m=a[8],h=a[9],g=Lf(e,t+0),_=Lf(e,t+2),v=Lf(e,t+4),y=Lf(e,t+6),b=Lf(e,t+8),x=Lf(e,t+10),S=Lf(e,t+12),C=Lf(e,t+14),w=i[0]+(g&8191),T=i[1]+((g>>>13|_<<3)&8191),E=i[2]+((_>>>10|v<<6)&8191),D=i[3]+((v>>>7|y<<9)&8191),O=i[4]+((y>>>4|b<<12)&8191),k=i[5]+(b>>>1&8191),A=i[6]+((b>>>14|x<<2)&8191),j=i[7]+((x>>>11|S<<5)&8191),M=i[8]+((S>>>8|C<<8)&8191),N=i[9]+(C>>>5|r),P=0,F=P+w*o+5*h*T+5*m*E+5*p*D+5*f*O;P=F>>>13,F&=8191,F+=5*d*k+5*u*A+5*l*j+5*c*M+5*s*N,P+=F>>>13,F&=8191;let I=P+w*s+T*o+5*h*E+5*m*D+5*p*O;P=I>>>13,I&=8191,I+=5*f*k+5*d*A+5*u*j+5*l*M+5*c*N,P+=I>>>13,I&=8191;let L=P+w*c+T*s+E*o+5*h*D+5*m*O;P=L>>>13,L&=8191,L+=5*p*k+5*f*A+5*d*j+5*u*M+5*l*N,P+=L>>>13,L&=8191;let R=P+w*l+T*c+E*s+D*o+5*h*O;P=R>>>13,R&=8191,R+=5*m*k+5*p*A+5*f*j+5*d*M+5*u*N,P+=R>>>13,R&=8191;let ee=P+w*u+T*l+E*c+D*s+O*o;P=ee>>>13,ee&=8191,ee+=5*h*k+5*m*A+5*p*j+5*f*M+5*d*N,P+=ee>>>13,ee&=8191;let te=P+w*d+T*u+E*l+D*c+O*s;P=te>>>13,te&=8191,te+=k*o+5*h*A+5*m*j+5*p*M+5*f*N,P+=te>>>13,te&=8191;let ne=P+w*f+T*d+E*u+D*l+O*c;P=ne>>>13,ne&=8191,ne+=k*s+A*o+5*h*j+5*m*M+5*p*N,P+=ne>>>13,ne&=8191;let re=P+w*p+T*f+E*d+D*u+O*l;P=re>>>13,re&=8191,re+=k*c+A*s+j*o+5*h*M+5*m*N,P+=re>>>13,re&=8191;let ie=P+w*m+T*p+E*f+D*d+O*u;P=ie>>>13,ie&=8191,ie+=k*l+A*c+j*s+M*o+5*h*N,P+=ie>>>13,ie&=8191;let ae=P+w*h+T*m+E*p+D*f+O*d;P=ae>>>13,ae&=8191,ae+=k*u+A*l+j*c+M*s+N*o,P+=ae>>>13,ae&=8191,P=(P<<2)+P|0,P=P+F|0,F=P&8191,P>>>=13,I+=P,i[0]=F,i[1]=I,i[2]=L,i[3]=R,i[4]=ee,i[5]=te,i[6]=ne,i[7]=re,i[8]=ie,i[9]=ae}finalize(){let{h:e,pad:t}=this,n=new Uint16Array(10),r=e[1]>>>13;e[1]&=8191;for(let t=2;t<10;t++)e[t]+=r,r=e[t]>>>13,e[t]&=8191;e[0]+=r*5,r=e[0]>>>13,e[0]&=8191,e[1]+=r,r=e[1]>>>13,e[1]&=8191,e[2]+=r,n[0]=e[0]+5,r=n[0]>>>13,n[0]&=8191;for(let t=1;t<10;t++)n[t]=e[t]+r,r=n[t]>>>13,n[t]&=8191;n[9]-=8192;let i=(r^1)-1;for(let e=0;e<10;e++)n[e]&=i;i=~i;for(let t=0;t<10;t++)e[t]=e[t]&i|n[t];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let a=e[0]+t[0];e[0]=a&65535;for(let n=1;n<8;n++)a=(e[n]+t[n]|0)+(a>>>16)|0,e[n]=a&65535;mf(n)}update(e){df(this),H(e),e=Df(e);let{buffer:t,blockLen:n}=this,r=e.length;for(let i=0;i<r;){let a=Math.min(n-this.pos,r-i);if(a===n){for(;n<=r-i;i+=n)this.process(e,i);continue}t.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===n&&(this.process(t,0,!1),this.pos=0)}return this}destroy(){this.destroyed=!0,mf(this.h,this.r,this.buffer,this.pad)}digestInto(e){df(this),ff(e,this),this.finished=!0;let{buffer:t,h:n}=this,{pos:r}=this;if(r){for(t[r++]=1;r<16;r++)t[r]=0;this.process(t,0,!0)}this.finalize();let i=0;for(let t=0;t<8;t++)e[i++]=n[t]>>>0,e[i++]=n[t]>>>8}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}},zf=Sf(32,e=>new Rf(e));function Bf(e,t,n,r,i,a=20){let o=e[0],s=e[1],c=e[2],l=e[3],u=t[0],d=t[1],f=t[2],p=t[3],m=t[4],h=t[5],g=t[6],_=t[7],v=i,y=n[0],b=n[1],x=n[2],S=o,C=s,w=c,T=l,E=u,D=d,O=f,k=p,A=m,j=h,M=g,N=_,P=v,F=y,I=b,L=x;for(let e=0;e<a;e+=2)S=S+E|0,P=U(P^S,16),A=A+P|0,E=U(E^A,12),S=S+E|0,P=U(P^S,8),A=A+P|0,E=U(E^A,7),C=C+D|0,F=U(F^C,16),j=j+F|0,D=U(D^j,12),C=C+D|0,F=U(F^C,8),j=j+F|0,D=U(D^j,7),w=w+O|0,I=U(I^w,16),M=M+I|0,O=U(O^M,12),w=w+O|0,I=U(I^w,8),M=M+I|0,O=U(O^M,7),T=T+k|0,L=U(L^T,16),N=N+L|0,k=U(k^N,12),T=T+k|0,L=U(L^T,8),N=N+L|0,k=U(k^N,7),S=S+D|0,L=U(L^S,16),M=M+L|0,D=U(D^M,12),S=S+D|0,L=U(L^S,8),M=M+L|0,D=U(D^M,7),C=C+O|0,P=U(P^C,16),N=N+P|0,O=U(O^N,12),C=C+O|0,P=U(P^C,8),N=N+P|0,O=U(O^N,7),w=w+k|0,F=U(F^w,16),A=A+F|0,k=U(k^A,12),w=w+k|0,F=U(F^w,8),A=A+F|0,k=U(k^A,7),T=T+E|0,I=U(I^T,16),j=j+I|0,E=U(E^j,12),T=T+E|0,I=U(I^T,8),j=j+I|0,E=U(E^j,7);let R=0;r[R++]=o+S|0,r[R++]=s+C|0,r[R++]=c+w|0,r[R++]=l+T|0,r[R++]=u+E|0,r[R++]=d+D|0,r[R++]=f+O|0,r[R++]=p+k|0,r[R++]=m+A|0,r[R++]=h+j|0,r[R++]=g+M|0,r[R++]=_+N|0,r[R++]=v+P|0,r[R++]=y+F|0,r[R++]=b+I|0,r[R++]=x+L|0}var Vf=If(Bf,{counterRight:!1,counterLength:4,allowShortKeys:!1}),Hf=new Uint8Array(16),Uf=(e,t)=>{e.update(t);let n=t.length%16;n&&e.update(Hf.subarray(n))},Wf=new Uint8Array(32);function Gf(e,t,n,r,i){i!==void 0&&H(i,void 0,`AAD`);let a=e(t,n,Wf),o=Tf(r.length,i?i.length:0,!0),s=zf.create(a);i&&Uf(s,i),Uf(s,r),s.update(o);let c=s.digest();return mf(a,o),c}var Kf=Cf({blockSize:64,nonceLength:12,tagLength:16,withAAD:!0},(e=>(t,n,r)=>({encrypt(i,a){let o=i.length;a=wf(o+16,a,!1),a.set(i);let s=a.subarray(0,-16);e(t,n,s,s,1);let c=Gf(e,t,n,s,r);return a.set(c,o),mf(c),a},decrypt(i,a){a=wf(i.length-16,a,!1);let o=i.subarray(0,-16),s=i.subarray(-16),c=Gf(e,t,n,o,r);if(!xf(s,c))throw mf(c),Error(`invalid tag`);return a.set(i.subarray(0,-16)),e(t,n,a,a,1),mf(c),a}}))(Vf));function qf(e,t,n){return Fa(e),n===void 0&&(n=new Uint8Array(e.outputLen)),Ea(e,n,t)}var Jf=Uint8Array.of(0),Yf=Uint8Array.of();function Xf(e,t,n,r=32,i){Fa(e),Na(r,`length`),Ua(t,void 0,`prk`);let a=e.outputLen;if(t.length<a)throw Error(`"prk" must be at least HashLen octets`);if(r>255*a)throw Error(`Length must be <= 255*HashLen`);let o=Math.ceil(r/a);if(n===void 0?n=Yf:Ua(n,void 0,`info`),!o)return i&&ba(t),new Uint8Array;let s=i&&o===1?t:new Uint8Array(o*a),{iHash:c,oHash:l}=Ea.create(e,t),u=i?t:new Uint8Array(a),d=o>1?i?.iHash||e.create():void 0;for(let e=0;e<o-1;e++){Jf[0]=e+1;let t=c._cloneInto(d);e&&t.update(u),t.update(n).update(Jf).digestInto(u),l._cloneInto(d).update(u).digestInto(u),s.set(u,a*e)}if(Jf[0]=o,o>1&&c.update(u),c.update(n).update(Jf).digestInto(u),l.update(u).digestInto(u),s.set(u,a*(o-1)),c.destroy(),l.destroy(),d?.destroy(),u!==s&&ba(u),ba(Jf),r===s.length)return s;let f=s.slice(0,r);return ba(s),f}var Zf=`ryco.relay-e2ee.confirmation-key.v1`,Qf=`ryco.relay-e2ee.aead-key.v1`,$f=`ryco.relay-e2ee.ratchet.v1`,ep=wa(Zf),tp=wa(Qf),np=wa($f);function rp(e,t){if(!(e instanceof Uint8Array)||e.byteLength!==32)throw TypeError(`Relay E2EE ${t} must be exactly E2EE_SECRET_BYTES long.`);return e}function ip(e){if(!ga(e))throw TypeError(`Relay E2EE direction must be a registered direction label.`);return e}function ap(e,t){return to(e,Hi(ip(t)))}function op(...e){for(let t of e)if(t instanceof Uint8Array)try{ba(t)}catch{}}function sp(e,t){try{return t()}catch(t){throw op(...e),t}}function cp(e){return Xf(Ja,rp(e,`exporter secret`),ep,32)}function lp(e,t){return Xf(Ja,rp(e,`epoch secret`),ap(tp,t),32)}function up(e,t){return Xf(Ja,rp(e,`epoch secret`),ap(np,t),32)}function dp(e){return sp([e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret],()=>({epochSecretC2N:rp(e.epochSecretC2N,`epoch secret`),epochSecretN2C:rp(e.epochSecretN2C,`epoch secret`),exporterSecret:rp(e.exporterSecret,`exporter secret`),serverConfirmationKey:cp(e.exporterSecret)}))}function fp(e){return dp(e.split())}function pp(e){typeof e!=`object`||!e||op(e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret,e.serverConfirmationKey)}var mp=1+Oa([new Uint8Array(4),new Uint8Array(8),new Uint8Array(4),new Uint8Array(8),new Uint8Array(32)],ja).byteLength,hp=17,gp=Object.freeze([...Array.from({length:2},()=>mp),...Array.from({length:1},()=>hp)]),_p=({version:e,suite:t,key:n})=>{if(e!==1||t!==1)throw TypeError(`Relay E2EE record AEAD selected for an unregistered version or suite.`);return rp(n,`AEAD key`),{seal:(e,t,r)=>Kf(n,e,r).encrypt(t),open:(e,t,r)=>Kf(n,e,r).decrypt(t)}},vp=class e{#e;#t;#n;#r;#i;#a;#o;#s=!1;constructor(t,n,r){let i=ip(t);rp(n,`epoch secret`);let a=e.#c(r);this.#e=i,this.#r=a.epoch,this.#i=a.counter,this.#a=a.epochRecords,this.#o=a.epochBytes,this.#n=lp(n,i),this.#t=n}static#c(e){let t=e?.epoch??0n,n=e?.counter??0n,r=e?.epochRecords??0,i=e?.epochBytes??0;if(typeof t!=`bigint`||t<0n||t>4294967295n)throw RangeError(`Synthetic relay E2EE epoch must be a bigint in the uint32 range.`);if(typeof n!=`bigint`||n<0n||n>18446744073709551615n)throw RangeError(`Synthetic relay E2EE counter must be a bigint in the uint64 range.`);if(!Number.isInteger(r)||r<0||r>=65536)throw RangeError(`Synthetic relay E2EE epoch record count must leave the epoch live.`);if(!Number.isInteger(i)||i<0||i>=268435456)throw RangeError(`Synthetic relay E2EE epoch byte count must leave the epoch live.`);return{epoch:t,counter:n,epochRecords:r,epochBytes:i}}get direction(){return this.#e}get exhausted(){return this.#s}get epoch(){return this.#r}get counter(){return this.#i}get state(){return{epoch:this.#s?void 0:this.#r,counter:this.#s?void 0:this.#i,epochRecords:this.#a,epochBytes:this.#o,exhausted:this.#s}}get aeadKey(){let e=this.#n;if(e===void 0)throw TypeError(`Relay E2EE directional AEAD key is unavailable.`);return e}static#l(e,t){return e>=65536||t>=268435456}capacityFor(t){if(this.#s)return!1;let n=this.#r,r=this.#a,i=this.#o;for(let a of t){if(e.#l(r,i)){if(n>=4294967295n)return!1;n+=1n,r=0,i=0}r+=1,i+=a}return!0}advance(t){if(this.#s)throw TypeError(`Relay E2EE direction is exhausted; no record may advance it.`);if(this.#a+=1,this.#o+=t,!e.#l(this.#a,this.#o))return this.#i>=18446744073709551615n?(this.#u(),{epochCompleted:!1}):(this.#i+=1n,{epochCompleted:!1});if(this.#r>=4294967295n)return this.#u(),{epochCompleted:!0};let n=this.#t,r=this.#n;if(n===void 0)throw TypeError(`Relay E2EE epoch secret is unavailable.`);let i=up(n,this.#e),a=sp([i],()=>lp(i,this.#e));return op(n,r),this.#t=i,this.#n=a,this.#r+=1n,this.#i=0n,this.#a=0,this.#o=0,{epochCompleted:!0}}#u(){this.#s=!0,this.erase()}erase(){op(this.#t,this.#n),this.#t=void 0,this.#n=void 0}};function yp(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.kind===`sent`||t.kind===`failed`&&(t.delivery===`none`||t.delivery===`ambiguous`)}function bp(e){let t,n;try{if(!ia(e.suite))throw TypeError(`Relay E2EE session suite must be a registered suite id.`);if(!(e.sessionBindingHash instanceof Uint8Array)||e.sessionBindingHash.byteLength!==32)throw TypeError(`Relay E2EE session requires a full-length session binding hash.`);if(!Number.isInteger(e.plaintextCeiling)||e.plaintextCeiling<=0)throw RangeError(`Relay E2EE session requires a positive plaintext ceiling.`);let r=ip(e.sendDirection),i=r===`c2n`?`n2c`:`c2n`,a=r===`c2n`?e.secrets.epochSecretC2N:e.secrets.epochSecretN2C,o=r===`c2n`?e.secrets.epochSecretN2C:e.secrets.epochSecretC2N;return t=new vp(r,a,e.testOnlySyntheticSendState),n=new vp(i,o,e.testOnlySyntheticReceiveState),{suite:e.suite,sessionBindingHash:Uint8Array.from(e.sessionBindingHash),plaintextCeiling:e.plaintextCeiling,aeadFactory:e.testOnlyAeadFactory??_p,secrets:e.secrets,send:t,receive:n}}catch(r){throw t?.erase(),n?.erase(),pp(e.secrets),r}}var xp=class{#e=1;#t;#n;#r;#i;#a;#o;#s;#c=`open`;#l=!1;#u=!1;#d=Promise.resolve();constructor(e){let t=bp(e);this.#t=t.suite,this.#n=t.sessionBindingHash,this.#r=t.plaintextCeiling,this.#i=t.aeadFactory,this.#a=t.secrets,this.#o=t.send,this.#s=t.receive}get suite(){return this.#t}get version(){return this.#e}get sendDirection(){return this.#o.direction}get receiveDirection(){return this.#s.direction}get sendState(){return this.#o.state}get receiveState(){return this.#s.state}get postApplicationReserveHeld(){return this.#o.capacityFor(gp)}get sendPathUsable(){return!this.#u&&this.#c!==`unusable`&&this.#c!==`spent`}#f(e,t,n){if(e!==this.#e||t!==this.#t)throw TypeError(`Relay E2EE AEAD selection requires the established version and suite.`);return this.#i({version:e,suite:t,key:n})}async protect(e){if(this.#y(),!va(e.innerType))throw TypeError(`Relay E2EE inner record type must be a registered type.`);if(!(e.body instanceof Uint8Array))throw TypeError(`Relay E2EE inner record body must be a Uint8Array.`);if(typeof e.admit!=`function`||typeof e.transmit!=`function`)throw TypeError(`Relay E2EE sends require an admission and a transmit callback.`);let t=this.#d.then(()=>this.#p(e),()=>this.#p(e));return this.#d=t.then(()=>void 0,()=>void 0),t}async#p(e){if(this.#u)return{kind:`unavailable`,reason:`session_erased`};let t=this.#h(e.innerType);if(t!==void 0)return{kind:`unavailable`,reason:t};if(e.body.byteLength>this.#r)return{kind:`refused`,reason:`e2ee_message_too_large`};let n=1+e.body.byteLength;if(e.innerType===1){if(!this.#o.capacityFor([n,...gp]))return{kind:`close_required`}}else if(!this.#o.capacityFor([n]))return{kind:`exhausted`};let r=32+e.body.byteLength;if(!await e.admit(r))return{kind:`refused`,reason:`e2ee_send_unavailable`};if(this.#u)return{kind:`unavailable`,reason:`session_erased`};let i=this.#o.epoch,a=this.#o.counter,o=Ya({suite:this.#t,epoch:i,counter:a}),s=o[1],c=o[2];if(s!==this.#e||!ia(c)||c!==this.#t)throw TypeError(`Relay E2EE envelope header disagrees with the established session.`);let l=this.#f(s,c,this.#o.aeadKey);try{return await this.#m(e,{epoch:i,counter:a,plaintextBytes:n,aead:l,header:o})}catch{return this.#c=`unusable`,{kind:`send_failed`,epoch:i,counter:a,delivery:`ambiguous`,sendPathUsable:!1,mayEmitError:!1}}}async#m(e,t){let{epoch:n,counter:r,plaintextBytes:i,aead:a,header:o}=t,s=ua(o),c=ma({header:o,sessionBindingHash:this.#n,direction:this.#o.direction}),l=Ji(e.innerType,e.body),u;try{let e=a.seal(s,l,c);u=Yi({suite:this.#t,epoch:n,counter:r,ciphertext:e})}catch{u=void 0}finally{op(l)}let{epochCompleted:d}=this.#o.advance(i);if(u===void 0)return this.#c=`unusable`,{kind:`send_failed`,epoch:n,counter:r,delivery:`none`,sendPathUsable:!1,mayEmitError:!1};this.#g(e.innerType);let f;try{let t=await e.transmit(u);f=yp(t)?t:{kind:`failed`,delivery:`ambiguous`}}catch{f={kind:`failed`,delivery:`ambiguous`}}return f.kind===`sent`?{kind:`protected`,epoch:n,counter:r,plaintextBytes:i,envelopeBytes:u.byteLength,epochCompleted:d}:f.delivery===`none`?(this.#c=`unusable`,{kind:`send_failed`,epoch:n,counter:r,delivery:`none`,sendPathUsable:!1,mayEmitError:!1}):{kind:`send_failed`,epoch:n,counter:r,delivery:`ambiguous`,sendPathUsable:this.sendPathUsable,mayEmitError:this.sendPathUsable}}#h(e){switch(this.#c){case`unusable`:return`send_path_unusable`;case`spent`:return`terminal_record_protected`;case`closing`:return e===1?`application_phase_closed`:void 0;case`open`:return}}#g(e){if(e===3){this.#c=`spent`;return}(e===2||e===4)&&this.#c===`open`&&(this.#c=`closing`)}unprotect(e){if(this.#y(),!(e instanceof Uint8Array))throw TypeError(`Relay E2EE payloads must be a Uint8Array.`);if(this.#l)return this.#v(`receive_terminated`);try{return this.#_(e)}catch(e){throw this.#l=!0,e}}#_(e){let t=oo(e);if(t.kind===`error`)switch(t.reason){case`unsupported_version`:return this.#v(`version_mismatch`);case`unsupported_suite`:return this.#v(`suite_mismatch`);default:return this.#v(`malformed_envelope`)}let n=t.value;if(n.version!==this.#e)return this.#v(`version_mismatch`);if(n.suite!==this.#t)return this.#v(`suite_mismatch`);if(this.#s.exhausted||n.epoch!==this.#s.epoch||n.counter!==this.#s.counter)return this.#v(`sequence_mismatch`);let r=this.#f(n.version,n.suite,this.#s.aeadKey),i=ua(n.header),a=ma({header:n.header,sessionBindingHash:this.#n,direction:this.#s.direction}),o;try{o=r.open(i,n.ciphertext,a)}catch{return this.#v(`authentication_failed`)}let s;try{s=Fi(o)}catch(e){throw op(o),e}if(s.kind===`error`)return op(o),this.#v(s.reason===`truncated`?`malformed_record`:`reserved_inner_type`);let c=n.epoch,l=n.counter,{epochCompleted:u}=sp([o],()=>this.#s.advance(o.byteLength));return{kind:`authenticated`,innerType:s.value.innerType,body:s.value.body,epoch:c,counter:l,plaintextBytes:o.byteLength,epochCompleted:u}}#v(e){return this.#l=!0,{kind:`fatal`,reason:e}}erase(){this.#u||(this.#u=!0,this.#o.erase(),this.#s.erase(),pp(this.#a))}get erased(){return this.#u}#y(){if(this.#u)throw TypeError(`Relay E2EE session has been erased; it is never resumed.`)}},Sp=/^[A-Za-z][A-Za-z0-9._-]{0,63}$/,Cp=64,wp=Symbol(`INVALID_PROFILE_VALUE`),Tp=new Set(mt),Ep={allowIndefinite:!1,allowUndefined:!1,allowInfinity:!1,allowNaN:!1,allowBigInt:!1,strict:!0,useMaps:!0,rejectDuplicateMapKeys:!0,tags:{}},Dp=e=>({ok:!0,value:e}),W=(e,t)=>t===void 0?{ok:!1,error:{code:e}}:{ok:!1,error:{code:e,supported:t}};function Op(e,t){if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n+=1)if(e[n]!==t[n])return!1;return!0}function kp(e,t=0){if(t>Cp)return wp;if(e===null||typeof e==`boolean`||typeof e==`string`)return e;if(typeof e==`number`)return Number.isSafeInteger(e)?e:wp;if(e instanceof Uint8Array)return e;if(Array.isArray(e)){let n=[];for(let r of e){let e=kp(r,t+1);if(e===wp)return wp;n.push(e)}return n}if(e instanceof Map){let n=Object.create(null);for(let[r,i]of e){if(typeof r!=`string`||!Sp.test(r))return wp;let e=kp(i,t+1);if(e===wp)return wp;n[r]=e}return n}return wp}function Ap(e){let t;try{t=eo(e,Ep)}catch{return W(`invalid_encoding`)}if(!(t instanceof Map))return W(`invalid_encoding`);let n;try{n=Oa(t,ja)}catch{return W(`invalid_encoding`)}if(!Op(e,n))return W(`invalid_encoding`);let r=kp(t);return r===wp||r===null||Array.isArray(r)?W(`invalid_encoding`):Dp(r)}function jp(e,t){let n=In(y)({protocolMajor:e.protocolMajor,protocolMinor:e.protocolMinor});return ae(n)?W(`invalid_frame`):n.value.protocolMajor===1?t!==void 0&&(n.value.protocolMajor!==t.protocolMajor||n.value.protocolMinor!==t.protocolMinor)?W(`invalid_frame`):Dp(n.value):W(`protocol_unsupported`,Ln)}function Mp(e,t={}){if(e.byteLength>263168)return W(`frame_too_large`);let n=Ap(e);if(!n.ok)return n;let r=n.value;if(r.type!==`data`&&e.byteLength>262144||r.type===`data`&&r.payload instanceof Uint8Array&&r.payload.byteLength>262144)return W(`frame_too_large`);let i=jp(r,t.expectedVersion);if(!i.ok)return i;if(!(`type`in r))return W(`missing_discriminant`);if(typeof r.type!=`string`)return W(`invalid_frame`);if(!Tp.has(r.type))return W(`unknown_frame_type`);let a=In(Ce)(r);return ae(a)?W(r.type===`ready`?`invalid_limits`:`invalid_frame`):Dp(a.value)}function Np(e){if(typeof e==`object`&&e&&`type`in e&&e.type===`data`&&`payload`in e&&e.payload instanceof Uint8Array&&e.payload.byteLength>262144)return W(`frame_too_large`);let t=In(Ce)(e);if(ae(t))return W((typeof e==`object`&&e&&`type`in e?e.type:void 0)===`ready`?`invalid_limits`:`invalid_frame`);if(t.value.protocolMajor!==1)return W(`protocol_unsupported`,Ln);let n;try{n=Oa(t.value,ja)}catch{return W(`invalid_frame`)}let r=t.value.type===`data`?xt:Nn;return n.byteLength<=r?Dp(n):W(`frame_too_large`)}var Pp={protocolMajor:1,protocolMinor:2},Fp=1,Ip=32,Lp=ca+Ii.byteLength+Ip;function Rp(e){let t=0;for(let n of e)t+=n+Ip;return t}var zp=`Relay E2EE negotiation send buffer is full.`,Bp=`Relay E2EE send is unavailable.`,Vp=`RPC payload exceeds the maximum relay message size.`,Hp=`Relay peer does not support multi-frame RPC messages.`,Up=`Relay send queue is full.`,Wp={fatal_pre_key:`channel_rejected`,fatal_post_key:`channel_rejected`,send_path_unusable:`channel_rejected`};function G(e){return[`node_offline`,`server_draining`,`connection_replaced`,`rate_limited`,`slow_consumer`].includes(e)?{kind:e===`node_offline`?`offline`:e===`server_draining`?`draining`:e===`connection_replaced`?`replacement`:e===`rate_limited`?`rate-limited`:`slow-consumer`,retryable:!0,closeReason:e}:[`revoked`,`node_revoked`,`grant_revoked`].includes(e)?{kind:`revoked`,retryable:!1,closeReason:e}:e===`authorization_failed`?{kind:`authorization-removed`,retryable:!1,closeReason:e}:[`authentication_failed`,`authentication_required`,`ticket_expired`,`ticket_consumed`,`authentication_timeout`].includes(e)?{kind:`authentication`,retryable:e!==`authentication_required`,closeReason:e}:e===`protocol_unsupported`?{kind:`incompatible`,retryable:!1,closeReason:e}:[`protocol_invalid`,`frame_too_large`,`channel_rejected`,`transfer_limit`].includes(e)?{kind:`protocol`,retryable:!1,...e===`protocol_invalid`?{}:{closeReason:e}}:e===`network`?{kind:`network`,retryable:!0}:{kind:`internal`,retryable:!0,closeReason:e}}function Gp(e){return G(Wp[e])}function Kp(){return{kind:`protocol`,retryable:!0,closeReason:`channel_rejected`}}var qp=class{options;#e=null;#t=null;#n=!1;#r=null;#i=0;#a=0;#o=!1;#s=[];#c=0;#l=[];#u=0;#d=!1;#f=!1;#p=!1;#m=!1;#h=null;#g=null;#_=null;#v=null;#y=`negotiating`;#b=null;#x=[];#S=0;#C=0;#w=new Set;#T=Promise.resolve();#E=!1;#D=!1;constructor(e){if(this.options=e,e.ticketExpiresAt<=e.timers.now())throw Error(`Relay attempt is no longer valid.`);let t=ha(e.ticket);try{let e=Np({type:`auth`,peer:`client`,...Pp,relayTicket:t});if(!e.ok)throw Error(`Relay authentication could not be encoded.`);this.#h=e.value}finally{t.fill(0)}e.callbacks.onTransportStatus(`connecting`),e.socket.onOpen(()=>this.#P()),e.socket.onBinaryMessage(e=>this.#F(e)),e.socket.onError(()=>{this.#p||e.events.onError()}),e.socket.onClose(()=>{this.#p||this.#$(G(`network`))})}#O=new pa;get bufferedAmount(){return this.options.socket.bufferedAmount+this.#c+this.#C+this.#S}send(e){if(this.#p||!this.#n||!this.#t||!this.#e)throw Error(`Relay channel is not open.`);if(this.#y===`negotiating`)return this.#j(e,this.#e);if(this.#y===`e2ee`)return this.#k(e);this.#A(e)}#k(e){let t=this.#v;if(!t)return this.#V(Gp(`send_path_unusable`));let n;try{n=t.submit(e)}catch(e){throw this.#V(Gp(`fatal_post_key`)),e}if(!n)throw Error(Bp)}#A(e){let t=da(e,this.#W(this.#e));if(t.kind===`error`)throw e.fill(0),this.#$(G(`transfer_limit`)),Error(t.reason===`peer_unsupported`?Hp:Vp);for(let e of t.payloads)this.#X(Uint8Array.from(e))}#j(e,t){if(e.byteLength>oa(t).plaintextCeiling)throw Error(Vp);let n=Gi(e.byteLength,this.#W(t));if(n.kind===`error`)throw Error(n.reason===`peer_unsupported`?Hp:Vp);let r=Gi(32+e.byteLength,this.#W(t));if(r.kind===`error`)throw Error(r.reason===`peer_unsupported`?Hp:Vp);let i=Math.max(Rp(n.payloadBytes),Rp(r.payloadBytes)),a=Math.max(0,so(t)-Lp);if(this.bufferedAmount+i>a)throw Error(zp);this.#x.push(Uint8Array.from(e)),this.#S+=i}close(e=1e3,t=`closed`){if(!this.#p){if(this.#y===`e2ee`&&this.#v){this.#D=!0,this.options.callbacks.onTransportStatus(`draining`),this.#M();return}this.#N(e,t)}}#M(){let e=this.#v;this.#p||!e||this.#E||!this.#D||(this.#E=!0,e.beginClose().then(t=>{t===`refused`&&!this.#p&&this.#v===e&&(this.#E=!1)},()=>this.#V(Gp(`fatal_post_key`))))}#N(e,t){this.#p||(this.#E=!0,this.options.callbacks.onTransportStatus(`draining`),this.#Z(!0),this.#t&&this.#Q({type:`channel.close`,...Pp,channelId:this.#t}),this.#ee(e,t))}reportUndecodableMessage(e){this.#$(G(e))}#P(){if(!(this.#p||!this.#h)){this.options.callbacks.onTransportStatus(`authenticating`);try{this.options.socket.send(this.#h)}finally{this.#h.fill(0),this.#h=null}this.#g=this.options.timers.setTimeout(()=>this.#$(G(`authentication_timeout`)),Vt)}}#F(e){if(e.byteLength>263168)return this.#$(G(`frame_too_large`));let t=Uint8Array.from(e),n=Mp(t,this.#e?{expectedVersion:Pp}:{});if(t.fill(0),!n.ok)return this.#$(G(`protocol_invalid`));let r=n.value,i=r.type===`data`?(this.#e?.maxDataChunkBytes??262144)+Vn:this.#e?.maxControlFrameBytes??262144;if(e.byteLength>i)return this.#$(G(`frame_too_large`));if(r.type===`ping`)return this.#Q({type:`pong`,...Pp,nonce:Uint8Array.from(r.nonce)});if(r.type===`error`){let e=G(r.code===`invalid_encoding`||r.code===`invalid_frame`||r.code===`invalid_limits`||r.code===`missing_discriminant`||r.code===`unknown_frame_type`?`protocol_invalid`:r.code);return this.#$({...e,...r.retryAfterMs===void 0?{}:{retryAfterMs:r.retryAfterMs}})}if(!this.#e){if(r.type!==`ready`||r.protocolMajor!==1||r.protocolMinor!==2)return this.#$(G(r.type===`ready`?`protocol_unsupported`:`protocol_invalid`));this.#e=r.limits,this.#g&&this.options.timers.clearTimeout(this.#g),this.#g=null,this.options.callbacks.onTransportStatus(`opening-channel`);return}if(r.type===`channel.open`){if(this.#t||r.capability!==`ryco.rpc`||!r.effectiveRole)return this.#$(G(`channel_rejected`));this.#t=r.channelId,this.#r=r.effectiveRole,this.options.callbacks.onRole(this.#r);return}if(r.type===`channel.accept`){if(this.#n||r.channelId!==this.#t||!this.#r)return this.#$(G(`channel_rejected`));if(this.#n=!0,this.options.e2ee){this.#y=`negotiating`,this.#I(this.#e);return}this.#R(`legacy`);return}if(r.type===`channel.close`&&r.reason===void 0&&r.channelId===this.#t&&this.#E)return this.#N(1e3,`closed`);if(r.type===`channel.close`||r.type===`channel.reject`)return r.channelId===this.#t?this.#$(G(r.reason??`channel_rejected`)):this.#$(G(`channel_rejected`));if(r.type===`flow.pause`||r.type===`flow.resume`){if(r.channelId!==this.#t)return this.#$(G(`channel_rejected`));this.#o=r.type===`flow.pause`,this.#o||this.#Z();return}r.type===`data`&&this.#G(r)}#I(e){try{this.#v=this.options.e2ee({limits:e,channel:{channelId:this.#t,capability:`ryco.rpc`,effectiveRole:this.#r,relayProtocolMajor:Pp.protocolMajor,relayProtocolMinor:Pp.protocolMinor},admit:e=>this.#H(e),lockMode:e=>this.#L(e),close:e=>{if(e)return this.#V(e);this.#N(1e3,`closed`)},now:()=>this.options.timers.now(),setTimeout:(e,t)=>this.options.timers.setTimeout(e,t),clearTimeout:e=>this.options.timers.clearTimeout(e)})}catch{this.#V(Gp(`fatal_pre_key`));return}let t=this.#b;this.#b=null,t&&this.#R(t)}#L(e){if(!(this.#p||this.#y!==`negotiating`)){if(!this.#v){this.#b=e;return}this.#R(e)}}#R(e){this.#p||this.#y!==`negotiating`||(this.#y=e,this.#z(e),!this.#p&&(this.options.callbacks.onTransportStatus(`online`),this.options.callbacks.onSessionStatus(`synchronizing`),this.options.events.onOpen()))}#z(e){let t=this.#x;this.#x=[],this.#S=0;for(let n of t){if(!this.#p)try{e===`e2ee`?this.#k(n):this.#A(n)}catch{e===`e2ee`&&!this.#p&&this.#V(Gp(`fatal_post_key`))}n.fill(0)}}#B(){for(let e of this.#x)e.fill(0);this.#x=[],this.#S=0}#V(e){this.#p||(this.#E=!0,this.#Z(!0),this.#t&&e.closeReason&&this.#Q({type:`channel.close`,...Pp,channelId:this.#t,reason:e.closeReason}),this.#$(e))}#H(e){let t=this.#e;if(this.#p||!this.#t||!t)return;let n=Gi(e,this.#W(t));if(n.kind===`error`)return;let r=Rp(n.payloadBytes);if(this.bufferedAmount+r>t.maxQueuedBytes-t.maxControlFrameBytes)return;this.#C+=r;let i={reservedBytes:r,active:!0};this.#w.add(i);let a=()=>i.active?(i.active=!1,this.#w.delete(i),this.#C-=i.reservedBytes,!0):!1;return{release:()=>void a(),send:e=>a()?this.#U(e):!1}}#U(e){let t=this.#e;if(this.#p||!this.#t||!t)return!1;let n=da(e,this.#W(t));if(n.kind===`error`)return!1;for(let e of n.payloads){let t=Uint8Array.from(e),n=t.byteLength+Ip;this.#s.push({bytes:t,reservedBytes:n}),this.#c+=n}return this.#Z(),!0}#W(e){return{maxChunkBytes:e.maxDataChunkBytes,maxMessageBytes:Math.min(T,e.maxQueuedBytes-e.maxControlFrameBytes),peerSupportsChunking:this.#O.peerSupportsChunking}}#G(e){if(this.#p||!this.#n||e.channelId!==this.#t||e.sequence!==this.#i||!this.#e)return this.#$(G(`channel_rejected`));this.#i+=1;let t=Uint8Array.from(e.payload);if(this.#K()+t.byteLength>this.#e.maxQueuedBytes)return t.fill(0),this.#$(G(`slow_consumer`));this.#l.push(t),this.#u+=t.byteLength,this.#q(),this.#J()}#K(){return this.#u+this.#O.heldBytes}#q(){if(!this.#e||!this.#t)return;let e=this.#K();!this.#d&&e>=Math.floor(this.#e.maxQueuedBytes*.75)?(this.#d=!0,this.#Q({type:`flow.pause`,...Pp,channelId:this.#t})):this.#d&&e<=Math.floor(this.#e.maxQueuedBytes*.5)&&(this.#d=!1,this.#Q({type:`flow.resume`,...Pp,channelId:this.#t}))}#J(){this.#f||(this.#f=!0,this.options.timers.queueMicrotask(()=>{if(this.#f=!1,this.#p)return;let e=this.#l.shift();if(e){this.#u-=e.byteLength;let t=Uint8Array.from(e);e.fill(0);let n=this.#O.push(t);if(n.kind===`error`){this.#$(G(`transfer_limit`));return}n.kind===`done`&&this.#Y(n.message)}this.#q(),this.#l.length>0&&this.#J()}))}#Y(e){let t=this.#v;if(!t)return this.options.events.onData(e);let n=async()=>{if(!(this.#p||this.#v!==t))try{let n=await t.intercept(e);n.kind===`rpc`&&!this.#p&&this.options.events.onData(n.message)}catch{this.#V(Gp(`fatal_post_key`))}};this.#T=this.#T.then(n,n)}#X(e){let t=this.#e,n=e.byteLength+Ip;if(this.bufferedAmount+n>t.maxQueuedBytes-t.maxControlFrameBytes)throw e.fill(0),this.#$(G(`slow_consumer`)),Error(Up);this.#s.push({bytes:e,reservedBytes:n}),this.#c+=n,this.#Z()}#Z(e=!1){if(!(this.#p||this.#o||!this.#t||!this.#e)){for(this.#_&&this.options.timers.clearTimeout(this.#_),this.#_=null;this.#s.length>0;){let t=this.#s[0];if(!e&&this.options.socket.bufferedAmount+t.reservedBytes>this.#e.maxQueuedBytes){this.#_=this.options.timers.setTimeout(()=>this.#Z(),10);return}this.#s.shift(),this.#c-=t.reservedBytes;let n=this.#a;if(n>4294967295){t.bytes.fill(0),this.#$(G(`transfer_limit`));return}this.#a+=1,this.#Q({type:`data`,...Pp,channelId:this.#t,sequence:n,payload:t.bytes}),t.bytes.fill(0)}this.#M()}}#Q(e){if(this.#p||this.options.socket.readyState!==Fp)return;let t=Np(e);if(!t.ok||t.value.byteLength>(e.type===`data`?263168:262144))return this.#$(G(`protocol_invalid`));try{this.options.socket.send(t.value)}catch{this.#$(G(`network`))}finally{t.value.fill(0)}}#$(e){this.#p||(this.#m||(this.#m=!0,this.options.callbacks.onFailure(e)),this.options.events.onError(),this.#ee(4e3,e.kind))}#ee(e,t){if(this.#p)return;this.#p=!0,this.#g&&this.options.timers.clearTimeout(this.#g),this.#_&&this.options.timers.clearTimeout(this.#_),this.#g=null,this.#_=null,this.#h?.fill(0),this.#h=null,this.#B();for(let e of this.#s)e.bytes.fill(0);for(let e of this.#l)e.fill(0);let n=this.#v;this.#v=null,n?.dispose({incompleteReassembly:this.#O.incompleteMessage}),this.#O.reset(),this.#s=[],this.#l=[],this.#c=0;for(let e of this.#w)e.active=!1;this.#w.clear(),this.#C=0,this.#u=0,this.options.callbacks.onRole(null),e===1e3&&!this.#m&&this.options.callbacks.onSessionStatus(`closed`);try{this.options.socket.close(e===1e3?1e3:4e3,t.slice(0,64))}catch{}this.options.events.onClose(e,t)}},Jp=`c2n`,Yp=Object.freeze({kind:`rejected`}),Xp=Object.freeze({kind:`claimed`}),Zp={version_mismatch:`Q1`,suite_mismatch:`Q1`,sequence_mismatch:`Q2`,authentication_failed:`Q3`,malformed_envelope:`Q4`,reserved_inner_type:`Q5`,malformed_record:`Q5`,receive_terminated:`Q2`};function Qp(e){let t=e.host,n=()=>t.now(),r=e.onDiagnostic??(()=>void 0),i=oa(t.limits),a=new xp({secrets:e.secrets,suite:e.suite,sessionBindingHash:e.sessionBindingHash,sendDirection:Jp,plaintextCeiling:i.establishable?i.plaintextCeiling:0,...e.testOnlySyntheticSendState===void 0?{}:{testOnlySyntheticSendState:e.testOnlySyntheticSendState},...e.testOnlySyntheticReceiveState===void 0?{}:{testOnlySyntheticReceiveState:e.testOnlySyntheticReceiveState}}),o=new ef({sessionBindingHash:e.sessionBindingHash,sendDirection:Jp}),s=!1,c,l,u=!1,d=!0,f=new Set;function p(e){e.settled||(e.settled=!0,e.plaintext.fill(0),e.reservation.release(),f.delete(e))}function m(){a.erase();for(let e of f)p(e);c!==void 0&&t.clearTimeout(c),c=void 0,l?.(),l=void 0,u=!0}let h=Promise.resolve();function g(e){let t=h.then(e,e);return h=t.then(()=>void 0,()=>void 0),t}async function _(e,n,r,i){let o=r,s;try{if(a.erased)return{kind:`unavailable`};s=await a.protect({innerType:e,body:n,admit:e=>{if(o!==void 0){if(i!==e)throw RangeError(`Relay E2EE reservation does not match the protected record.`);return!0}return o=t.admit(e),o!==void 0},transmit:e=>{let t=o;return o=void 0,t!==void 0&&t.send(e)?{kind:`sent`}:{kind:`failed`,delivery:`none`}}})}finally{o?.release()}return s.kind===`protected`?{kind:`protected`,epoch:s.epoch,counter:s.counter,epochCompleted:s.epochCompleted}:s.kind===`close_required`?{kind:`close_required`}:s.kind===`send_failed`?s.sendPathUsable?{kind:`unavailable`}:{kind:`unusable`}:s.kind===`exhausted`?{kind:`unusable`}:s.kind===`unavailable`?{kind:`unavailable`}:{kind:`refused`}}async function v(e,n){if(s)return Yp;s=!0;let i=o.noteFatal();return await g(async()=>{!a.sendPathUsable||!o.mayProtectTerminalError||(await _(3,Zd(n))).kind===`protected`&&o.noteTerminalErrorTransmitted()}),m(),r({phase:`post_key`,row:e,verdict:i}),t.close(Gp(`fatal_post_key`)),Yp}function y(e){if(s)return;s=!0;let n=o.noteFatal();m(),r({phase:`post_key`,row:`Q10`,verdict:n}),t.close(Gp(e))}function b(){let e=a.sendState;if(e.epoch!==void 0&&e.counter!==void 0)return{epoch:e.epoch,counter:e.counter}}function x(){let e=a.receiveState;if(e.epoch!==void 0&&e.counter!==void 0)return{epoch:e.epoch,counter:e.counter}}function S(){o.noteChannelEnded({at:n()}),w()}function C(){c!==void 0&&t.clearTimeout(c),c=void 0;let e=o.waitDeadlineAt;e!==void 0&&(c=t.setTimeout(()=>{c=void 0,!(s||!o.waitExpired(n()))&&(o.noteWaitExpired(n()),w())},Math.max(1,e-n())))}function w(){if(u||!o.outerCloseAllowed(n()))return;u=!0,c!==void 0&&t.clearTimeout(c),c=void 0;let e=()=>{s||(s=!0,m(),t.close())};if(o.shouldLinger(n())){let r=Math.max(1,(o.lingerDeadlineAt??n())-n());c=t.setTimeout(()=>{c=void 0,e()},r),l?.(),l=void 0;return}e()}async function T(e){return g(async()=>{let t=e(b());if(t.kind===`none`)return`none`;if(t.kind===`degenerate`)return S(),`ended`;let r=t.record,i=await _(r.innerType,r.body);return i.kind===`refused`?`refused`:i.kind===`protected`?(o.noteTransmitted({record:r,epoch:i.epoch,counter:i.counter,epochCompleted:i.epochCompleted,at:n()}),`transmitted`):(S(),`ended`)})}async function E(){for(;o.pendingRecord!==void 0;){let e=await T(e=>{if(s||o.pendingRecord===void 0)return{kind:`none`};let t=o.ackExpectedRecv??x();return t===void 0||e===void 0?{kind:`degenerate`}:{kind:`send`,record:o.buildCloseAck({sendPosition:e,expectedRecv:t})}});if(e===`refused`||e===`none`)break;if(e===`ended`)return}s||(o.exchangeComplete?w():C())}async function D(){if(s||o.closePhaseActive)return`opened`;d=!1;let e=new Promise(e=>{l=e}),t=await T(e=>{if(s||o.closePhaseActive)return{kind:`none`};let t=x();return e===void 0||t===void 0?{kind:`degenerate`}:{kind:`send`,record:o.buildClose({sendPosition:e,expectedRecv:t})}});return t===`refused`?(!s&&!o.closePhaseActive&&(d=!0),`refused`):(t===`transmitted`&&C(),u||await e,`opened`)}async function O(e,n,i){let a=b();if(a===void 0)return S(),Xp;let c=o.receive({innerType:e,body:n,envelope:{epoch:i.epoch,counter:i.counter},epochCompleted:i.epochCompleted,currentNextSend:a,at:i.at});switch(c.kind){case`application`:return{kind:`rpc`,message:n};case`close`:case`close_ack`:return await E(),Xp;case`terminal_error`:return s||(s=!0,m(),r({phase:`post_key`,row:`local`,verdict:o.verdict}),t.close(Gp(`fatal_post_key`))),Yp;case`fatal`:return v(c.row,1)}}async function k(e){if(s)return Yp;if(Xi(e).kind!==`envelope`)return v(`Q6`,1);let t=a.unprotect(e);return t.kind===`fatal`?v(Zp[t.reason],1):O(t.innerType,t.body,{epoch:t.epoch,counter:t.counter,epochCompleted:t.epochCompleted,at:n()})}function A(n){if(s||!d||!o.mayProtectApplicationRecord||n.byteLength>i.plaintextCeiling)return!1;let r=t.admit(32+n.byteLength);if(r===void 0)return!1;if(s||!d||!o.mayProtectApplicationRecord)return r.release(),!1;let a;try{a=Uint8Array.from(n)}catch(e){throw r.release(),e}try{e.testOnlyOnOwnedApplicationPlaintext?.(a)}catch(e){throw a.fill(0),r.release(),e}let c={plaintext:a,reservation:r,settled:!1};return f.add(c),g(async()=>{try{if(s)return;let e=await _(1,c.plaintext,c.reservation,32+c.plaintext.byteLength);if(e.kind===`protected`)return;if(e.kind===`close_required`){D().catch(()=>y(`fatal_post_key`));return}e.kind===`unusable`&&y(`send_path_unusable`)}catch{y(`fatal_post_key`)}finally{p(c)}}),!0}return{intercept:k,submit:A,beginClose:D,dispose:(e={})=>{o.noteChannelEnded({at:n(),...e.incompleteReassembly===void 0?{}:{incompleteReassembly:e.incompleteReassembly}}),s=!0,m()},verdict:()=>o.verdict,sendPosition:b,expectedRecv:x}}var $p=`Noise_IK_25519_ChaChaPoly_SHA256`,em=`Noise_NX_25519_ChaChaPoly_SHA256`,tm=`ryco.relay-e2ee.exporter.v1`;function nm(e){return e===`IK`?$p:em}var rm=Ja.outputLen,im=32,am=32,om=16,sm=65535,cm=18446744073709551615n,lm=wa(tm),um=new Uint8Array,dm=class extends Error{code=`relay_e2ee_noise_handshake_failed`;reason;constructor(e){super(`Relay E2EE Noise handshake failed.`),this.name=`E2eeNoiseHandshakeError`,this.reason=e}};function K(e){throw new dm(e)}function fm(e,t){(!(e instanceof Uint8Array)||e.byteLength!==t)&&K(`invalid_key_material`)}function pm(e,t){return fm(e,t),Uint8Array.from(e)}function mm(...e){for(let t of e)if(t instanceof Uint8Array)try{ba(t)}catch{}}function hm(e,t){let n=qf(Ja,t,e),r,i;try{r=Xf(Ja,n,void 0,2*rm),i=r.slice(0,rm);let e=r.slice(rm);return[i,e]}catch(e){throw mm(i),e}finally{mm(n,r)}}function gm(e){(typeof e!=`bigint`||e<0n)&&K(`invalid_options`),e>=cm&&K(`nonce_exhausted`);let t=new Uint8Array(12),n=e;for(let e=4;e<12;e+=1)t[e]=Number(n&255n),n>>=8n;return t}function _m(e){return(!(e instanceof Uint8Array)||e.byteLength!==rm)&&K(`invalid_key_material`),Xf(Ja,e,lm,32)}var vm=class{#e=void 0;#t=0n;initializeKey(e){e.byteLength!==am&&K(`invalid_key_material`),mm(this.#e),this.#e=e,this.#t=0n}get hasKey(){return this.#e!==void 0}encryptWithAd(e,t){let n=this.#e;if(n===void 0)return t;let r=gm(this.#t),i=Kf(n,r,e).encrypt(t);return ba(r),this.#t+=1n,i}decryptWithAd(e,t){let n=this.#e;if(n===void 0)return t;let r=gm(this.#t),i=Kf(n,r,e).decrypt(t);return ba(r),this.#t+=1n,i}erase(){mm(this.#e),this.#e=void 0,this.#t=0n}},ym=class{#e;#t;#n=new vm;constructor(e){let t=wa(e),n=new Uint8Array(rm);t.byteLength<=rm?n.set(t):n.set(Ja(t)),this.#t=n,this.#e=Uint8Array.from(n)}get hasKey(){return this.#n.hasKey}get handshakeHash(){return Uint8Array.from(this.#t)}mixKey(e){let[t,n]=hm(this.#e,e);try{mm(this.#e),this.#e=t,this.#n.initializeKey(n)}catch(e){throw mm(n),e}}mixHash(e){let t=Ja(to(this.#t,e));mm(this.#t),this.#t=t}encryptAndHash(e){let t=this.#n.encryptWithAd(this.#t,e);return this.mixHash(t),t}decryptAndHash(e){let t=this.#n.decryptWithAd(this.#t,e);return this.mixHash(e),t}splitAndExport(){let[e,t]=hm(this.#e,um),n;try{return n=_m(this.#e),this.erase(),{epochSecretC2N:e,epochSecretN2C:t,exporterSecret:n}}catch(r){throw mm(e,t,n),r}}erase(){mm(this.#e,this.#t),this.#n.erase()}},bm={IK:[[`e`,`es`,`s`,`ss`],[`e`,`ee`,`se`]],NX:[[`e`],[`e`,`ee`,`s`,`es`]]},xm=class{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=0;#u;constructor(e){let t=e.pattern;t!==`IK`&&t!==`NX`&&K(`invalid_options`);let n=e.role;n!==`initiator`&&n!==`responder`&&K(`invalid_options`),e.prologue instanceof Uint8Array||K(`invalid_options`);let r=t===`IK`||n===`responder`,i=t===`IK`&&n===`initiator`;r!==(e.staticSecretKey!==void 0)&&K(`invalid_options`),i!==(e.remoteStaticPublicKey!==void 0)&&K(`invalid_options`);let a=e.staticSecretKey;a!==void 0&&fm(a,im);let o=e.testOnlyEphemeralSecretKey;o!==void 0&&fm(o,im);let s=e.remoteStaticPublicKey===void 0?void 0:pm(e.remoteStaticPublicKey,im);this.#e=n,this.#t=bm[t],this.#a=s;let c=new ym(nm(t));c.mixHash(e.prologue);let l=a===void 0?void 0:Va.getPublicKey(a);t===`IK`&&c.mixHash(n===`initiator`?s:l),this.#n=c,a!==void 0&&(this.#r={secretKey:Uint8Array.from(a),publicKey:l}),this.#c=o,this.#u=n===`initiator`?`awaiting_write`:`awaiting_read`}get status(){return this.#u}get remoteStaticPublicKey(){return this.#a===void 0?void 0:Uint8Array.from(this.#a)}get remoteEphemeralPublicKey(){return this.#o===void 0?void 0:Uint8Array.from(this.#o)}get localEphemeralPublicKey(){return this.#s===void 0?void 0:Uint8Array.from(this.#s)}get testOnlyHandshakeHash(){let e=this.#n.handshakeHash;if(!e.every(e=>e===0))return e}writeMessage(e){this.#d(`awaiting_write`),e instanceof Uint8Array||K(`invalid_options`);try{let t=[];for(let e of this.#t[this.#l])switch(e){case`e`:{let e=this.#p();this.#i=e,this.#e===`initiator`&&(this.#s=Uint8Array.from(e.publicKey)),t.push(e.publicKey),this.#n.mixHash(e.publicKey);break}case`s`:this.#r===void 0&&K(`out_of_sequence`),t.push(this.#n.encryptAndHash(this.#r.publicKey));break;default:this.#m(e)}t.push(this.#n.encryptAndHash(e));let n=to(...t);return n.byteLength>sm&&K(`message_too_large`),this.#f(),n}catch(e){throw this.destroy(),e}}readMessage(e){this.#d(`awaiting_read`),e instanceof Uint8Array||K(`invalid_options`);try{e.byteLength>sm&&K(`message_too_large`);let t=0,n=n=>{t+n>e.byteLength&&K(`malformed_message`);let r=e.subarray(t,t+n);return t+=n,r};for(let e of this.#t[this.#l])switch(e){case`e`:{let e=Uint8Array.from(n(im));this.#o=e,this.#n.mixHash(e);break}case`s`:{let e=n(this.#n.hasKey?im+om:im),t=this.#n.decryptAndHash(e);t.byteLength!==im&&K(`malformed_message`),this.#a=t;break}default:this.#m(e)}let r=this.#n.decryptAndHash(e.subarray(t));return this.#f(),r}catch(e){throw this.destroy(),e}}split(){this.#d(`awaiting_split`);let e;try{return e=this.#n.splitAndExport(),this.#h(),this.#u=`complete`,e}catch(t){throw e!==void 0&&mm(e.epochSecretC2N,e.epochSecretN2C,e.exporterSecret),this.destroy(),t}}destroy(){this.#u!==`complete`&&this.#u!==`destroyed`&&(this.#n.erase(),this.#h(),this.#u=`destroyed`)}#d(e){(this.#u===`complete`||this.#u===`destroyed`)&&K(`handshake_consumed`),this.#u!==e&&K(`out_of_sequence`)}#f(){if(this.#l+=1,this.#l>=this.#t.length){this.#u=`awaiting_split`;return}this.#u=this.#u===`awaiting_write`?`awaiting_read`:`awaiting_write`}#p(){let e=this.#c;if(e!==void 0){let t=Va.getPublicKey(e);return this.#c=void 0,{secretKey:e,publicKey:t}}let t=Va.keygen();return{secretKey:t.secretKey,publicKey:t.publicKey}}#m(e){let t=this.#e===`initiator`,n,r;switch(e){case`ee`:n=this.#i,r=this.#o;break;case`es`:n=t?this.#i:this.#r,r=t?this.#a:this.#o;break;case`se`:n=t?this.#r:this.#i,r=t?this.#o:this.#a;break;case`ss`:n=this.#r,r=this.#a}(n===void 0||r===void 0)&&K(`out_of_sequence`);let i=Va.getSharedSecret(n.secretKey,r);try{this.#n.mixKey(i)}finally{mm(i)}}#h(){mm(this.#i?.secretKey,this.#r?.secretKey,this.#c),this.#i=void 0,this.#r=void 0,this.#c=void 0}},Sm=`ryco.relay-e2ee.confirmation.v1`,Cm=`ryco.relay-e2ee.session.v1`;function wm(e,t){return!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:xf(e,t)}function Tm(e){return Uint8Array.from(Oa(e,ja))}function Em(e){return typeof e==`string`}function Dm(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function Om(e,t){return e instanceof Uint8Array?t===void 0||e.byteLength===t:!1}function km(e){return Uint8Array.from(e)}function Am(e){if((!Array.isArray(e.advertisedSuiteRegistry)||e.advertisedSuiteRegistry.length===0||e.advertisedSuiteRegistry.length>8||!Array.isArray(e.localSuitePreference)||e.localSuitePreference.length===0)&&B(),!Number.isSafeInteger(e.advertisedVersionMin)||!Number.isSafeInteger(e.advertisedVersionMax)||e.advertisedVersionMin>e.advertisedVersionMax||e.advertisedVersionMin>1||1>e.advertisedVersionMax)return{kind:`unusable`,reason:`protocol_version_out_of_range`};let t=La(e.tier);if(!e.advertisedAdmittedPatterns.includes(t))return{kind:`unusable`,reason:`pattern_not_admitted`};let n=e.localSuitePreference.find(t=>ia(t)&&e.advertisedSuiteRegistry.includes(t));return n===void 0||!ia(n)?{kind:`unusable`,reason:`empty_suite_intersection`}:{kind:`usable`,selectedSuite:n}}var jm=5,Mm=3;function Nm(e){return e===`native`||e===`web`}function Pm(e){Nm(e.tier)||B(),ia(e.selectedSuite)||B(),(!Array.isArray(e.offeredSuites)||e.offeredSuites.length===0||e.offeredSuites.length>8||!e.offeredSuites.every(Dm)||!e.offeredSuites.includes(e.selectedSuite))&&B(),Om(e.clientNonce,32)||B(),Om(e.contextCommitment,32)||B(),(!Om(e.noiseMessage1)||e.noiseMessage1.byteLength===0)&&B();let t=Tm([1,e.tier,e.selectedSuite,[...e.offeredSuites],km(e.clientNonce),km(e.contextCommitment),km(e.noiseMessage1)]);return _a(1,t)}function Fm(e){(!Om(e.clientPrekeyTranscript)||e.clientPrekeyTranscript.length===0)&&B();let t=Sa(e.clientPrekeySignature);return Tm([km(e.clientPrekeyTranscript),t,no(e.accountId),la(e.intendedCapability),zi(e.intendedRole)])}var Im=new Uint8Array;function Lm(e){ia(e.acceptedSuite)||B(),(!Em(e.nodePrekeyId)||e.nodePrekeyId.length===0)&&B(),Om(e.contextCommitment,32)||B(),(!Om(e.noiseMessage2)||e.noiseMessage2.byteLength===0)&&B()}function Rm(e){Lm(e);let t=Tm([e.acceptedSuite,e.nodePrekeyId,km(e.contextCommitment),km(e.noiseMessage2)]);return _a(2,t)}function zm(e){let t=fa(e);if(t.kind===`error`||t.value.recordType!==2)return{kind:`error`,reason:`bad_record`};let n=ta(t.value.body);if(n.kind===`error`)return{kind:`error`,reason:`malformed_body`};let r=n.value;if(!Array.isArray(r)||r.length!==jm)return{kind:`error`,reason:`malformed_body`};let[i,a,o,s,c]=r;return!Dm(i)||!Em(a)||a.length===0||!Om(o,32)||!Om(s)||s.byteLength===0||!Om(c,32)?{kind:`error`,reason:`malformed_body`}:{kind:`ok`,value:{acceptedSuite:i,nodePrekeyId:a,contextCommitment:o,noiseMessage2:s,serverConfirmation:c}}}function Bm(e){let t=ta(e);if(t.kind===`error`)return{kind:`error`,reason:`malformed_body`};let n=t.value;if(!Array.isArray(n)||n.length!==Mm)return{kind:`error`,reason:`malformed_body`};let[r,i,a]=n;return!Em(r)||!Em(i)||!Om(a,32)?{kind:`error`,reason:`malformed_body`}:{kind:`ok`,value:{channelOpenCapability:r,channelOpenEffectiveRole:i,nodeAgreementKeyFingerprint:a}}}function Vm(e){let t=ta(e);return(t.kind===`error`||!Array.isArray(t.value))&&B(),t.value}function Hm(e){return(!Om(e.clientHelloWireBytes)||e.clientHelloWireBytes.byteLength===0||!Om(e.serverAcceptTbsWireBytes)||e.serverAcceptTbsWireBytes.byteLength===0)&&B(),Ja(Tm([Sm,km(e.clientHelloWireBytes),km(e.serverAcceptTbsWireBytes),Vm(e.contextBlock)]))}function Um(e,t){return(!Om(e)||!Om(t,32))&&B(),Ea(Ja,e,t)}function Wm(e){(!Om(e.clientHelloWireBytes)||e.clientHelloWireBytes.byteLength===0||!Om(e.serverAcceptWireBytes)||e.serverAcceptWireBytes.byteLength===0)&&B();let t=Ja(Tm([Cm,km(e.clientHelloWireBytes),km(e.serverAcceptWireBytes),Vm(e.contextBlock)]));return t.byteLength!==32&&B(),t}function Gm(e,t){return{kind:`fatal`,row:e,reason:t}}function Km(e){let t=Qi({hubOrigin:e.channel.hubOrigin,channelId:e.channel.channelId,relayProtocolMajor:e.channel.relayProtocolMajor,relayProtocolMinor:e.channel.relayProtocolMinor,e2eeVersion:1,suiteId:e.suite,nodeId:e.advertised.nodeId,nodeIdentityFingerprint:e.advertised.nodeIdentityFingerprint,clientIntendedCapability:e.intendedCapability,clientIntendedRole:e.intendedRole,channelOpenCapability:e.channel.channelOpenCapability,channelOpenEffectiveRole:e.channel.channelOpenEffectiveRole,nodeAgreementFingerprint:Wa(`agreement`,e.advertised.agreementPublicKey),nodeContinuityChainTranscripts:e.advertised.continuityChainTranscripts,nodeContinuityId:e.advertised.continuityId,client:e.client});return{block:t,commitment:Pi(t)}}function qm(e,t,n){return t===e.channelOpenCapability&&n===e.channelOpenEffectiveRole}function Jm(e){return e+qi}var Ym=class{#e;#t;#n=`created`;#r;#i;#a;#o;#s;constructor(e){if(!ia(e.selectedSuite))throw TypeError(`Relay E2EE client handshake requires a registered suite selection.`);this.#e=e,this.#t=e.credentials.tier}get tier(){return this.#t}get state(){return this.#n}get deadlineAt(){return this.#s}deadlineExpired(e){return this.#s!==void 0&&e>this.#s}createHello(e){if(this.#n!==`created`)return this.#u(Gm(`P4`,`handshake_spent`));let t;try{return this.#c(e,e=>{t=e})}catch(e){throw t?.destroy(),this.destroy(),e}}#c(e,t){let n=this.#e,r=n.credentials;if(!qm(n.channel,n.intendedCapability,n.intendedRole))return this.#u(Gm(`P13`,`context_mismatch`));let i=r.tier===`native`?Km({channel:n.channel,advertised:n.advertised,suite:n.selectedSuite,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole,client:{tier:`native`,accountId:r.accountId,identityFingerprint:Wa(`client-identity`,r.identityPublicKey),agreementFingerprint:Wa(`agreement`,r.agreementPublicKey)}}):Km({channel:n.channel,advertised:n.advertised,suite:n.selectedSuite,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole,client:{tier:`web`}}),a=$i({hubOrigin:n.channel.hubOrigin,channelId:n.channel.channelId,relayProtocolMajor:n.channel.relayProtocolMajor,relayProtocolMinor:n.channel.relayProtocolMinor,e2eeVersion:1,suiteId:n.selectedSuite,nodeId:n.advertised.nodeId,contextCommitment:i.commitment}),o;if(r.tier===`native`){if(!wm(Va.getPublicKey(r.agreementSecretKey),r.agreementPublicKey))throw TypeError(`Relay E2EE client agreement secret key does not match its certificate key.`);o=Fm({clientPrekeyTranscript:r.prekeyTranscript,clientPrekeySignature:r.prekeySignature,accountId:r.accountId,intendedCapability:n.intendedCapability,intendedRole:n.intendedRole})}else o=Im;let s=new xm({pattern:La(this.#t),role:`initiator`,prologue:a,staticSecretKey:r.tier===`native`?r.agreementSecretKey:void 0,remoteStaticPublicKey:r.tier===`native`?n.advertised.agreementPublicKey:void 0,testOnlyEphemeralSecretKey:n.testOnlyEphemeralSecretKey});t(s);let c;try{c=s.writeMessage(o)}catch{return s.destroy(),this.#u(Gm(`P10`,`noise`))}let l=Pm({tier:this.#t,selectedSuite:n.selectedSuite,offeredSuites:n.offeredSuites,clientNonce:n.testOnlyClientNonce??ao(32),contextCommitment:i.commitment,noiseMessage1:c});return this.#r=s,this.#i=l,this.#a=i.block,this.#o=i.commitment,this.#s=Jm(e),this.#n=`hello_sent`,{kind:`hello`,record:l,contextBlock:i.block,contextCommitment:i.commitment,prologue:a,deadlineAt:this.#s}}receiveServerAccept(e,t){if(this.#n!==`hello_sent`)return this.#u(Gm(`P16`,`handshake_spent`));let n=this.#r,r=this.#i,i=this.#a,a=this.#o;if(n===void 0||r===void 0||i===void 0||a===void 0)return this.#u(Gm(`P16`,`handshake_spent`));if(this.deadlineExpired(t))return this.#u(Gm(`P20`,`handshake_deadline`));let o;try{return this.#l({payload:e,noise:n,helloRecord:r,contextBlock:i,contextCommitment:a,holdSecrets:e=>{o=e}})}catch(e){throw o!==void 0&&pp(o),this.destroy(),e}}#l(e){let{payload:t,noise:n,helloRecord:r,contextBlock:i,contextCommitment:a}=e,o=zm(t);if(o.kind===`error`)return this.#u(o.reason===`bad_record`?Gm(`P3`,`record_bounds`):Gm(`P16`,`accept_mismatch`));let s=o.value;if(s.acceptedSuite!==this.#e.selectedSuite||s.nodePrekeyId!==this.#e.advertised.prekeyId)return this.#u(Gm(`P16`,`accept_mismatch`));if(!wm(s.contextCommitment,a))return this.#u(Gm(`P13`,`context_mismatch`));let c;try{c=n.readMessage(s.noiseMessage2)}catch{return this.#u(Gm(`P10`,`noise`))}let l=n.remoteStaticPublicKey;if(l===void 0||!wm(l,this.#e.advertised.agreementPublicKey))return this.#u(Gm(`P16`,`accept_mismatch`));let u=Bm(c);if(u.kind===`error`)return this.#u(Gm(`P16`,`accept_mismatch`));let d=u.value;if(d.channelOpenCapability!==this.#e.channel.channelOpenCapability||d.channelOpenEffectiveRole!==this.#e.channel.channelOpenEffectiveRole||!wm(d.nodeAgreementKeyFingerprint,Wa(`agreement`,this.#e.advertised.agreementPublicKey)))return this.#u(Gm(`P13`,`context_mismatch`));let f;try{f=fp(n)}catch{return this.#u(Gm(`P10`,`noise`))}e.holdSecrets(f);let p=Rm({acceptedSuite:this.#e.selectedSuite,nodePrekeyId:s.nodePrekeyId,contextCommitment:s.contextCommitment,noiseMessage2:s.noiseMessage2}),m=Hm({clientHelloWireBytes:r,serverAcceptTbsWireBytes:p,contextBlock:i});if(!wm(Um(f.serverConfirmationKey,m),s.serverConfirmation))return pp(f),this.#u(Gm(`P16`,`confirmation_mismatch`));let h=Wm({clientHelloWireBytes:r,serverAcceptWireBytes:t,contextBlock:i}),g;if(this.#e.credentials.tier===`web`&&(g=n.localEphemeralPublicKey,g===void 0))throw TypeError(`Relay E2EE client handshake has no local ephemeral.`);return this.#n=`established`,this.#r=void 0,{kind:`established`,sessionBindingHash:h,secrets:f,suite:this.#e.selectedSuite,contextBlock:i,serverAcceptTbs:p,confirmationTranscript:m,...g===void 0?{}:{webEphemeralPublicKey:g}}}destroy(){this.#r?.destroy(),this.#r=void 0,this.#n!==`established`&&(this.#n=`failed`)}#u(e){return this.destroy(),e}};function q(e){return{kind:`invalid`,reason:e}}var Xm=new TextEncoder;function Zm(e){let t;try{t=Ri(e.connectedHubOrigin)}catch{return q(`connected_hub_origin_invalid`)}if(e.accountId!==void 0){let t=Xm.encode(e.accountId).byteLength;if(t===0||t>256)return q(`account_scope_invalid`)}let n=za(e.statement);if(n.kind===`error`)return q(n.failure);let r=n.value,i;try{i=na(r.transcript)}catch{return q(`identity_signature_invalid`)}if(!Za({algorithm:`ed25519`,publicKey:r.identityPublicKey,message:i,signature:r.signature}))return q(`identity_signature_invalid`);if(!Qa(Wa(`node-identity`,r.identityPublicKey),r.identityFingerprint))return q(`identity_fingerprint_mismatch`);if(!Qa(Wa(`agreement`,r.prekeyCertificate.agreementPublicKey),r.prekeyCertificate.agreementFingerprint))return q(`agreement_fingerprint_mismatch`);if(r.expiresAt<r.issuedAt)return q(`validity_interval_inverted`);if(r.expiresAt-r.issuedAt>6e5)return q(`validity_interval_too_long`);if(r.issuedAt>e.now+3e5)return q(`issued_at_in_future`);if(r.expiresAt<e.now-3e5)return q(`statement_expired`);if(r.hubOrigin!==t)return q(`hub_origin_mismatch`);let a=r.prekeyCertificate;if(a.expiresAt<=a.createdAt)return q(`prekey_lifetime_inverted`);if(a.expiresAt-a.createdAt>2592e6)return q(`prekey_lifetime_too_long`);if(e.now+3e5<a.createdAt)return q(`prekey_not_yet_valid`);if(a.expiresAt<e.now-3e5)return q(`prekey_expired`);if(!Ki({hubOrigin:r.hubOrigin,nodeId:r.nodeId,identityKeyId:r.identityKeyId,identityPublicKey:r.identityPublicKey,identityFingerprint:r.identityFingerprint,prekeyCertificate:a}))return q(`prekey_cross_signature_invalid`);if(e.pin!==void 0&&r.continuityId!==e.pin.continuityId)return{kind:`identity-event`,event:{reason:`pinned_continuity_id`},statement:r};let o=Bi({chain:r.continuityChain,hubOrigin:r.hubOrigin,continuityId:r.continuityId,identityPublicKey:r.identityPublicKey,...e.pin===void 0?{}:{pinnedIdentityFingerprint:e.pin.identityFingerprint}});if(o.kind===`error`)return e.pin===void 0||o.failure===`malformed_entry`?{kind:`invalid`,reason:`continuity_chain_invalid`,chainFailure:o.failure}:{kind:`identity-event`,event:{reason:`continuity_chain`,failure:o.failure},statement:r};if(e.acceptedPolicyGeneration!==void 0&&r.policyGeneration<e.acceptedPolicyGeneration)return q(`policy_generation_regressed`);let s=Am({tier:e.tier,localSuitePreference:e.localSuitePreference,advertisedSuiteRegistry:r.suiteRegistry,advertisedVersionMin:r.e2eeVersionMin,advertisedVersionMax:r.e2eeVersionMax,advertisedAdmittedPatterns:r.admittedPatterns});return s.kind===`unusable`?{kind:`unusable`,reason:s.reason,statement:r}:{kind:`verified`,statement:r,selectedSuite:s.selectedSuite,anchor:o.pinnedFingerprintUnchanged===void 0?`none`:o.pinnedFingerprintUnchanged?`pin-unchanged`:`pin-updated`}}var Qm=`ryco.relay-e2ee.web-sas.v1`,$m=`node`;function eh(e){return Uint8Array.from(Oa(e,ja))}function th(e){let t=Ka(e.nodeIdentityPublicKey),n=Ia(e.webEphemeralPublicKey);return eh([Qm,$m,ka,t,`web`,Ni,n])}function nh(e){(!(e.sessionBindingHash instanceof Uint8Array)||e.sessionBindingHash.byteLength!==32)&&B();let t=th(e),n=qf(Ja,t,e.sessionBindingHash),r=Xf(Ja,n,wa(Qm),5);return{input:t,prk:n,output:r,display:rh(r)}}function rh(e){(!(e instanceof Uint8Array)||e.byteLength!==5||e.byteLength*8!=Ra.chars*5||Ra.chars!==Ra.groups*Ra.charsPerGroup)&&B();let t=``,n=0,r=0;for(let i of e)for(n=n<<8|i,r+=8;r>=5;)r-=5,t+=ro[n>>r&31];let i=[];for(let e=0;e<t.length;e+=Ra.charsPerGroup)i.push(t.slice(e,e+Ra.charsPerGroup));return i.join(Ra.separator)}var J=Object.freeze({kind:`rejected`}),ih=Object.freeze({kind:`claimed`});function ah(e,t,n){return{nodeId:e.nodeId,nodeIdentityFingerprint:n!==void 0&&t===`pin-unchanged`?n.identityFingerprint:e.identityFingerprint,prekeyId:e.prekeyCertificate.prekeyId,agreementPublicKey:e.prekeyCertificate.agreementPublicKey,continuityChainTranscripts:e.continuityChain.map(e=>e.transcript),continuityId:n===void 0?e.continuityId:n.continuityId}}function oh(e){let t=e.host,n=e.attempt,r=()=>t.now(),i=n.onDiagnostic??(()=>void 0),a=`negotiating`,o=!1,s=!1,c,l,u,d,f,p,m,h,g,_;function v(){d!==void 0&&t.clearTimeout(d),f!==void 0&&t.clearTimeout(f),p!==void 0&&t.clearTimeout(p),m!==void 0&&t.clearTimeout(m),d=void 0,f=void 0,p=void 0,m=void 0;let e=h;h=void 0,e?.();let n=g;g=void 0,n?.()}function y(){let e=l;if(l=void 0,e!==void 0)try{Promise.resolve(n.nativeHandshake?.destroy(e)).catch(()=>void 0)}catch{}}function b(e){return a===`closed`?J:(a=`closed`,v(),c?.destroy(),c=void 0,y(),i({phase:`pre_key`,row:e}),t.close(Gp(`fatal_pre_key`)),J)}function x(){if(a===`negotiating`){if(n.pairingOnly)return b(`local`);a=`legacy`,v(),t.lockMode(`legacy`)}}function S(){return n.credentials.tier===`native`&&n.verifiedPin===void 0}function C(e){if(!oa(t.limits).establishable)return pp(e.secrets),b(`P14`);try{u=Qp({host:t,secrets:e.secrets,suite:e.suite,sessionBindingHash:e.sessionBindingHash})}catch{return b(`P14`)}return a=`e2ee`,v(),t.lockMode(`e2ee`),w(e.sessionBindingHash,e.webEphemeralPublicKey),ih}function w(e,t){if(n.credentials.tier!==`web`)return;let r=n.onWebVerificationCode;if(r===void 0)return;let i=_;if(t===void 0||i===void 0)return;let a;try{a=nh({nodeIdentityPublicKey:i,webEphemeralPublicKey:t,sessionBindingHash:e}).display}catch{return}r(a)}d=t.setTimeout(()=>{if(d=void 0,!(a!==`negotiating`||o)){if(n.selectionClass===`latched`||!n.legacyPermitted){b(`P19`);return}if(n.selectionClass===`unexpected`){n.onUnexpectedNode?.(`none`),b(`P22`);return}x()}},ea);function T(){m=t.setTimeout(()=>{m=void 0,!(a!==`negotiating`||!o)&&b(`P20`)},qi)}async function E(e){if(s)return b(`P4`);s=!0;let c=e===void 0?void 0:Zm({statement:e,connectedHubOrigin:n.hubOrigin,tier:n.credentials.tier,localSuitePreference:n.localSuitePreference,now:r(),...n.accountId===void 0?{}:{accountId:n.accountId},...n.verifiedPin===void 0?{}:{pin:n.verifiedPin},...n.acceptedPolicyGeneration===void 0?{}:{acceptedPolicyGeneration:n.acceptedPolicyGeneration}}),l;if(c!==void 0&&c.kind===`verified`){if(d!==void 0&&t.clearTimeout(d),d=void 0,l=r()+Zi,!await D(c,!0)||a!==`negotiating`||o)return a===`closed`?J:ih}else if(c!==void 0&&(!await D(c,!1)||a!==`negotiating`||o))return a===`closed`?J:ih;return c===void 0||c.kind!==`verified`?n.selectionClass===`latched`?b(`P15`):(i({phase:`pre_key`,row:`K3`}),ih):O(e,c.statement,c.anchor,c.selectedSuite,l??r()+3e3)}function D(e,r){let i=n.onStatement;if(i===void 0)return Promise.resolve(!0);let s,c=new Promise(e=>{s=e}),l=!1,u=()=>d(!1),d=e=>{l||(l=!0,f!==void 0&&t.clearTimeout(f),f=void 0,h===u&&(h=void 0),s(e))};h=u,r&&(f=t.setTimeout(()=>{f=void 0,a===`negotiating`&&!o&&b(`local`),d(!1)},Zi));let p;try{p=i(e)}catch{return b(`local`),d(!1),c}return Promise.resolve(p).then(()=>d(a===`negotiating`&&!o),()=>{a===`negotiating`&&b(`local`),d(!1)}),c}function O(e,t,r,i,s){if(a!==`negotiating`||o)return J;let c=n.credentials;return c.tier===`native`&&!(`agreementSecretKey`in c)?n.nativeHandshake===void 0?A(t,r,i,c,s):k(e,i,s):j(t,r,i,c)}function k(e,i,s){let c=n.nativeHandshake;if(c===void 0)return Promise.resolve(b(`local`));let u,f=new Promise(e=>{u=e}),m=!1,h=()=>_(J),_=e=>{m||(m=!0,p!==void 0&&t.clearTimeout(p),p=void 0,g===h&&(g=void 0),u(e))};g=h;let v=s-r();if(v<=0)return b(`local`),_(J),f;p=t.setTimeout(()=>{p=void 0,a===`negotiating`&&!o&&b(`local`),_(J)},v);let y;try{y=c.start({statement:e,channel:{hubOrigin:n.hubOrigin,channelId:t.channel.channelId,relayProtocolMajor:t.channel.relayProtocolMajor,relayProtocolMinor:t.channel.relayProtocolMinor,channelOpenCapability:t.channel.capability,channelOpenEffectiveRole:t.channel.effectiveRole},selectedSuite:i,offeredSuites:n.localSuitePreference,intendedCapability:t.channel.capability,intendedRole:t.channel.effectiveRole,now:r()})}catch{return b(`local`),_(J),f}return y.then(e=>{if(e.kind===`fatal`){a===`negotiating`&&b(e.result.row),_(J);return}if(m||a!==`negotiating`||o){Promise.resolve(c.destroy(e.handle)).catch(()=>void 0),_(J);return}let n=t.admit(e.result.record.byteLength);if(n===void 0||!n.send(e.result.record)){n?.release(),Promise.resolve(c.destroy(e.handle)).catch(()=>void 0),b(`local`),_(J);return}l=e.handle,o=!0,d!==void 0&&t.clearTimeout(d),d=void 0,T(),_(ih)},()=>{a===`negotiating`&&b(`local`),_(J)}),f}function A(e,i,s,c,l){let u=n.withNativeAgreementSecretKey;if(u===void 0)return Promise.resolve(b(`local`));let d,f=new Promise(e=>{d=e}),m=!1,h=()=>_(J),_=e=>{m||(m=!0,p!==void 0&&t.clearTimeout(p),p=void 0,g===h&&(g=void 0),d(e))};g=h;let v=l-r();if(v<=0)return b(`local`),_(J),f;p=t.setTimeout(()=>{p=void 0,a===`negotiating`&&!o&&b(`local`),_(J)},v);let y;try{y=u(t=>m||a!==`negotiating`||o?J:j(e,i,s,{...c,agreementSecretKey:t}))}catch{return b(`local`),_(J),f}return Promise.resolve(y).then(e=>{if(!m&&a===`negotiating`&&!o){b(`local`),_(J);return}_(e)},()=>{a===`negotiating`&&b(`local`),_(J)}),f}function j(e,i,s,l){if(a!==`negotiating`||o)return J;let u=new Ym({channel:{hubOrigin:n.hubOrigin,channelId:t.channel.channelId,relayProtocolMajor:t.channel.relayProtocolMajor,relayProtocolMinor:t.channel.relayProtocolMinor,channelOpenCapability:t.channel.capability,channelOpenEffectiveRole:t.channel.effectiveRole},advertised:ah(e,i,n.verifiedPin),selectedSuite:s,offeredSuites:n.localSuitePreference,credentials:l,intendedCapability:t.channel.capability,intendedRole:t.channel.effectiveRole}),f;try{f=u.createHello(r())}catch{return b(`local`)}if(f.kind===`fatal`)return c=void 0,u.destroy(),b(f.row);let p=t.admit(f.record.byteLength);return p===void 0||!p.send(f.record)?(p?.release(),u.destroy(),b(`local`)):(l.tier===`web`&&(_=e.identityPublicKey),c=u,o=!0,d!==void 0&&t.clearTimeout(d),d=void 0,T(),ih)}function M(e){let t=fa(e);return t.kind===`error`?b(`P3`):t.value.recordType===2?!o||c===void 0&&l===void 0?b(`P16`):P(e):t.value.recordType===3?b(o?`P17`:`P3`):b(`P3`)}function N(e){return e.kind===`fatal`?b(e.row):n.pairingOnly||S()?(pp(e.secrets),b(`P21`)):C({secrets:e.secrets,suite:e.suite,sessionBindingHash:e.sessionBindingHash,webEphemeralPublicKey:e.webEphemeralPublicKey})}function P(e){let t=l;if(t!==void 0){let i=n.nativeHandshake;return i===void 0?b(`local`):(l=void 0,i.finish(t,e,r()).then(e=>a===`negotiating`?N(e):(e.kind===`established`&&pp(e.secrets),J),()=>a===`negotiating`?b(`local`):J))}return N(c.receiveServerAccept(e,r()))}async function F(e){switch(Xi(e).kind){case`legacy-json`:{let t=aa(e);return t.kind===`ok`?E(t.value):t.reason===`malformed`?E(void 0):o||n.selectionClass===`latched`||!n.legacyPermitted?b(`P18`):n.selectionClass===`unexpected`?(n.onUnexpectedNode?.(`none`),b(`P22`)):x()??{kind:`rpc`,message:e}}case`negotiation`:return M(e);case`envelope`:return b(`P5`);case`other`:return b(`P6`)}}function I(e){switch(Xi(e).kind){case`legacy-json`:{let t=aa(e);return t.kind===`ok`||t.reason===`malformed`?(i({phase:`pre_key`,row:`K20`}),ih):{kind:`rpc`,message:e}}case`envelope`:return b(`P5`);case`negotiation`:return b(`P24`);case`other`:return b(`P6`)}}async function L(e){switch(a){case`negotiating`:return F(e);case`legacy`:return I(e);case`e2ee`:return u===void 0?J:u.intercept(e);case`closed`:return J}}return{intercept:L,submit:e=>u!==void 0&&u.submit(e),beginClose:async()=>u===void 0?(a=`closed`,v(),c?.destroy(),c=void 0,y(),t.close(),`opened`):u.beginClose(),dispose:(e={})=>{a=`closed`,v(),c?.destroy(),c=void 0,y(),u?.dispose(e)},mode:()=>a,abort:()=>{a===`negotiating`&&b(`local`)}}}var sh=new Set([Ge.subscribeShell,Ge.subscribeThread,Ge.subscribeThreadWindow,Tn.subscribeServerConfig,Tn.subscribeServerLifecycle,Tn.subscribeTerminalEvents,Tn.subscribeVcsStatus]),ch=new Set([...sh,Tn.subscribeAuthAccess]);function lh(e,t){return Li(e.effectiveRole,t.tag,e.directoryStatus===`ready`)?e.transportStatus===`online`&&e.browserStatus===`current`&&e.sessionStatus===`ready`||t.stream&&(e.browserStatus===`current`||e.browserStatus===`synchronizing`)&&(e.sessionStatus===`synchronizing`||e.sessionStatus===`replaying`||e.sessionStatus===`delivery-unknown`||e.sessionStatus===`stale`||e.sessionStatus===`closed`)&&sh.has(t.tag):!1}function uh(e){return lh(Xa.getState(),e)}function dh(e){switch(e.code){case`node_offline`:return{kind:`offline`,retryable:!0,...e.retryAfterMs===void 0?{}:{retryAfterMs:e.retryAfterMs}};case`server_draining`:return{kind:`draining`,retryable:!0,...e.retryAfterMs===void 0?{}:{retryAfterMs:e.retryAfterMs}};case`rate_limited`:return{kind:`rate-limited`,retryable:!0,...e.retryAfterMs===void 0?{}:{retryAfterMs:e.retryAfterMs}};case`unsupported_version`:return{kind:`incompatible`,retryable:!1};case`forbidden`:case`authorization_failed`:return{kind:`authorization-removed`,retryable:!1};case`revoked`:return{kind:`revoked`,retryable:!1};default:return{kind:`network`,retryable:!0}}}function fh(){return{nodeId:()=>Xa.getState().selectedNode?.id??null,generation:()=>Xa.getState().generation,isAuthenticated:()=>Xa.getState().accountStatus===`authenticated`,isCurrent:e=>Xa.getState().generation===e,authorizeRequest:uh,shouldReconnect:e=>{let t=Xa.getState();return e===t.generation&&t.accountStatus===`authenticated`&&t.selectedNode!==null&&(t.browserStatus===`current`||t.browserStatus===`synchronizing`)&&t.transportStatus!==`terminal-failure`},transportStatus:(e,t)=>Ga.transportStatus(e,t),sessionStatus:(e,t)=>Ga.sessionStatus(e,t),role:(e,t)=>Ga.role(e,t),failure:(e,t)=>Ga.failure(e,t),markDeliveryUnknown:e=>Ga.markDeliveryUnknown(e),connectionClosed:e=>Ga.connectionClosed(e),connectionRecovered:e=>{let t=Xa.getState();t.generation===e&&t.accountStatus===`authenticated`&&t.directoryStatus===`ready`&&t.browserStatus===`current`&&t.selectedNode!==null&&t.transportStatus!==`terminal-failure`&&Ha().timers.queueMicrotask(()=>{let n=Xa.getState();n.generation===e&&n.selectedNode?.id===t.selectedNode?.id&&Ga.retrySelectedNode()})}}}var ph=class{#e;#t=new Ad;#n=new Map;#r=null;#i;#a=null;#o=0;#s=null;#c=null;#l=!1;constructor(e=fh()){this.#e=e}async nextUrl(){let e=this.#e.nodeId(),t=this.#e.generation();if(!e||t===null||!this.#e.isAuthenticated())throw Error(`No authorized hosted node is selected.`);this.#a=t,this.#e.transportStatus(t,`requesting-ticket`),this.#r=null;try{let n=await this.#e.prepareSocketContext?.();if(!this.#e.isCurrent(t))throw Error(`Hosted node selection changed.`);let r=await qa().issueRelayTicket(e);if(!this.#e.isCurrent(t))throw Error(`Hosted node selection changed.`);return this.#r={ticket:r.ticket,expiresAt:r.expiresAt,generation:t,preparedSocketContext:n,used:!1},this.#e.relayUrl?.()??Ha().relayUrl()}catch(e){if(e instanceof ya&&e.status===401)Ga.expireSession();else if(e instanceof ya){let n=dh(e);this.#i=n.retryAfterMs,this.#e.failure(t,n)}throw e}}createSocket(e){let t=this.#r;if(this.#r=null,!t||t.used||t.expiresAt<=Ha().timers.now())throw Error(`A fresh relay ticket is required for every connection attempt.`);t.used=!0;let n=t.generation,r=t.ticket,i=t.expiresAt,a=this.#o+1;this.#o=a,this.#s=a;let o=()=>this.#s===a,s={onTransportStatus:e=>{o()&&(this.#e.transportStatus(n,e),e===`online`&&this.#l&&(this.#l=!1,this.#e.connectionRecovered?.(n)))},onSessionStatus:e=>{o()&&this.#e.sessionStatus(n,e)},onRole:e=>{o()&&this.#e.role(n,e)},onFailure:e=>{o()&&(this.#i=e.retryAfterMs,this.#t.closed(),this.#n.size>0&&(this.#e.markDeliveryUnknown(n),this.#n.clear()),this.#e.failure(n,e))}};this.#a=n;try{let n=this.#e.createRelaySocket?this.#e.createRelaySocket({url:e,ticket:r,ticketExpiresAt:i,callbacks:s,preparedSocketContext:t.preparedSocketContext}):Ha().createRelaySocket({url:e,ticket:r,ticketExpiresAt:i,callbacks:s});return o()&&(this.#c=n),n}catch(e){throw o()&&(this.#s=null,this.#c=null,this.#a===n&&(this.#a=null)),e}}lifecycleHandlers(){return{webSocketConstructor:e=>this.createSocket(e),isSocketCurrent:e=>e===this.#c,preserveSocketPath:!0,retryTransientErrors:!1,reconnectMaxRetries:1e6,shouldReconnect:()=>this.#a!==null&&this.#e.shouldReconnect(this.#a),authorizeRequest:e=>this.#e.authorizeRequest(e),getReconnectDelayMs:()=>{let e=this.#t.nextDelay(this.#i);return this.#i=void 0,e},onOpen:()=>this.#t.opened(),onClose:(e,t)=>{if(t.intentional)return;let n=this.#a;n!==null&&(this.#t.closed(),this.#l=!0,this.#e.connectionClosed(n))},onRequestStart:e=>{e.stream&&ch.has(e.tag)||this.#n.set(e.id,e.stream?`exit`:`first-chunk`)},onRequestChunk:e=>{this.#n.get(e.id)===`first-chunk`&&this.#n.delete(e.id)},onRequestExit:e=>this.#n.delete(e.id),onRequestInterrupt:e=>this.#n.delete(e.id)}}hasPendingRequests(){return this.#n.size>0}reset(){this.#r=null,this.#n.clear(),this.#i=void 0,this.#a=null,this.#s=null,this.#c=null,this.#l=!1,this.#o=0,this.#t.reset()}},mh=null;function hh(){return mh??=new ph,mh}function gh(){return mh?.hasPendingRequests()??!1}function _h(){mh?.reset(),mh=null}function vh(e){return e===`platform`||e===`cross-platform`?e:void 0}function yh(e){return e.filter(e=>Ca.has(e))}function bh(e){if(!(e instanceof PublicKeyCredential))throw Error(`Passkey ceremony was cancelled.`);return e}async function xh(e,t){let n=typeof e==`object`&&e&&`challenge`in e&&e.challenge instanceof Uint8Array?e:io(e),r=bh(await navigator.credentials.get({publicKey:n,...t?{signal:t}:{}})),i=r.response;if(!(i instanceof AuthenticatorAssertionResponse))throw Error(`Invalid passkey response.`);return{id:r.id,rawId:Ui(r.rawId),response:{clientDataJSON:Ui(i.clientDataJSON),authenticatorData:Ui(i.authenticatorData),signature:Ui(i.signature),...i.userHandle?{userHandle:Ui(i.userHandle)}:{}},type:`public-key`,clientExtensionResults:r.getClientExtensionResults(),...vh(r.authenticatorAttachment)?{authenticatorAttachment:vh(r.authenticatorAttachment)}:{}}}async function Sh(e,t){let n=typeof e==`object`&&e&&`challenge`in e&&e.challenge instanceof Uint8Array?e:sa(e),r=bh(await navigator.credentials.create({publicKey:n,...t?{signal:t}:{}})),i=r.response;if(!(i instanceof AuthenticatorAttestationResponse))throw Error(`Invalid passkey response.`);let a=i.getPublicKey?.()??null,o=i.getAuthenticatorData?.(),s=i.getPublicKeyAlgorithm?.(),c=i.getTransports?.();return{id:r.id,rawId:Ui(r.rawId),response:{clientDataJSON:Ui(i.clientDataJSON),attestationObject:Ui(i.attestationObject),...c?{transports:yh(c)}:{},...s===void 0?{}:{publicKeyAlgorithm:s},...a?{publicKey:Ui(a)}:{},...o?{authenticatorData:Ui(o)}:{}},type:`public-key`,clientExtensionResults:r.getClientExtensionResults(),...vh(r.authenticatorAttachment)?{authenticatorAttachment:vh(r.authenticatorAttachment)}:{}}}var Ch={authenticate:(e,t)=>xh(e,t),register:(e,t)=>Sh(e,t)};function wh(e){return e}var Th={get:e=>vg().persistence.getSavedEnvironmentSecret(wh(e)),set:(e,t)=>vg().persistence.setSavedEnvironmentSecret(wh(e),t),remove:e=>vg().persistence.removeSavedEnvironmentSecret(wh(e))},Eh={webSocketConstructor:(e,t)=>{let n=typeof t==`string`||t===void 0?t:Array.from(t);return new globalThis.WebSocket(e,n)}};function Dh(){Rr(Di)}function Oh(){return us(fr)}function kh(){return us(Lr)}function Ah(e,t,n){let r=e.getBoundingClientRect(),i=Math.min(Math.max(4,t),Math.max(4,window.innerWidth-r.width-4)),a=Math.min(Math.max(4,n),Math.max(4,window.innerHeight-r.height-4));e.style.left=`${i}px`,e.style.top=`${a}px`}function jh(e,t){return new Promise(n=>{let r=document.createElement(`div`);r.style.cssText=`position:fixed;inset:0;z-index:9999`;let i=[],a=e=>{document.removeEventListener(`keydown`,o),r.remove();for(let e of i)e.remove();n(e)},o=e=>{e.key===`Escape`&&(e.preventDefault(),a(null))},s=e=>{for(;i.length>e;)i.pop()?.remove()},c=(e,t,n,r)=>{s(r);let o=document.createElement(`div`);o.className=`fixed z-[10000] min-w-[160px] rounded-md border border-border bg-popover py-1 shadow-xl animate-in fade-in zoom-in-95`,o.style.left=`${t}px`,o.style.top=`${n}px`,o.dataset.level=String(r);for(let t of e){let e=document.createElement(`button`);e.type=`button`;let n=Array.isArray(t.children)&&t.children.length>0,l=!n&&(t.destructive===!0||t.id===`delete`),u=t.disabled===!0;e.disabled=u,e.className=u?`flex w-full items-center gap-2 px-3 py-1.5 text-left text-[11px] text-muted-foreground/60 cursor-not-allowed`:l?`flex w-full items-center gap-2 px-3 py-1.5 text-left text-[11px] text-destructive hover:bg-accent cursor-default`:`flex w-full items-center gap-2 px-3 py-1.5 text-left text-[11px] text-popover-foreground hover:bg-accent cursor-default`;let d=document.createElement(`span`);if(d.className=`min-w-0 flex-1 truncate`,d.textContent=t.label,e.appendChild(d),n){let t=document.createElement(`span`);t.className=`shrink-0 text-muted-foreground/70`,t.textContent=`›`,e.appendChild(t)}u||(n?(e.addEventListener(`mouseenter`,()=>{let n=e.getBoundingClientRect(),a=n.right+4,o=n.top;c(t.children,a,o,r+1);let s=i[r+1];if(!s)return;let l=s.getBoundingClientRect();l.right>window.innerWidth&&Ah(s,n.left-l.width-4,n.top)}),e.addEventListener(`click`,e=>{e.preventDefault()})):(e.addEventListener(`mouseenter`,()=>{s(r+1)}),e.addEventListener(`click`,()=>a(t.id)))),o.appendChild(e)}o.addEventListener(`mouseenter`,()=>{s(r+1)}),document.body.appendChild(o),i[r]=o,requestAnimationFrame(()=>{Ah(o,t,n)})};r.addEventListener(`mousedown`,()=>a(null)),document.addEventListener(`keydown`,o),document.body.appendChild(r),c(e,t?.x??0,t?.y??0,0)})}var Mh=0,Nh=0,Ph=null,Fh=new Set;function Ih(){for(let e of Fh)e()}function Lh(){return Mh>0}function Rh(){return Mh+=1,()=>{--Mh,Mh===0&&Ph&&Hh(Ph.id,null)}}function zh(e){return Fh.add(e),()=>{Fh.delete(e)}}function Bh(){return Ph}function Vh(e){return new Promise(t=>{Ph?.resolve(null),Nh+=1,Ph={id:Nh,items:e,resolve:t},Ih()})}function Hh(e,t){if(!Ph||Ph.id!==e)return;let n=Ph;Ph=null,Ih(),n.resolve(t)}var Uh=6048e5;function Wh(e){return new Date(e+Uh).toISOString()}function Gh(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Kh(e){if(!e.token||e.token.trim().length===0)return!1;let t=Gh(e.expiresAt);return e.expiresAt!==void 0&&t===null?!1:t===null||t>e.nowMs}var qh=`ryco:client-settings:v1`,Jh=`ryco:saved-environment-registry:v1`,Yh=sn({environmentId:ye,label:It,httpBaseUrl:It,wsBaseUrl:It,createdAt:It,lastConnectedAt:nn(It),desktopSsh:Ne(sn({alias:It,hostname:It,username:nn(It),port:nn(On)})),bearerToken:Ne(It),bearerTokenSavedAt:Ne(It),bearerTokenExpiresAt:Ne(It)}),Xh=sn({version:Ne(On),records:Ne(jt(Yh))});function Zh(){return typeof window<`u`}function Qh(e){let t={environmentId:e.environmentId,label:e.label,httpBaseUrl:e.httpBaseUrl,wsBaseUrl:e.wsBaseUrl,createdAt:e.createdAt,lastConnectedAt:e.lastConnectedAt};return e.desktopSsh?{...t,desktopSsh:e.desktopSsh}:t}function $h(e,t){return Kh({token:e.bearerToken,expiresAt:e.bearerTokenExpiresAt,nowMs:t})}function eg(e,t){return e.bearerToken?{...e,bearerTokenSavedAt:e.bearerTokenSavedAt??new Date(t).toISOString(),bearerTokenExpiresAt:e.bearerTokenExpiresAt??Wh(t)}:e}function tg(e){return Qh(e)}function ng(){if(!Zh())return null;try{return gi(qh,Hn)}catch{return null}}function rg(e){Zh()&&wi(qh,e,Hn)}function ig(){if(!Zh())return{};try{return gi(`ryco:saved-environment-registry:v1`,Xh)??{}}catch{return{}}}function ag(e){Zh()&&wi(Jh,e,Xh)}function og(){return ig().records??[]}function sg(e){ag({version:1,records:e})}function cg(){return og().map(e=>Qh(e))}function lg(e){let t=Date.now(),n=new Map(og().map(e=>[e.environmentId,e]));sg(e.map(e=>{let r=n.get(e.environmentId);if(!r||!$h(r,t))return Qh(e);let i=eg(r,t),a=i.bearerToken;if(!a)return Qh(e);let o=i.bearerTokenSavedAt??new Date(t).toISOString(),s=i.bearerTokenExpiresAt??Wh(t);return{environmentId:e.environmentId,label:e.label,httpBaseUrl:e.httpBaseUrl,wsBaseUrl:e.wsBaseUrl,createdAt:e.createdAt,lastConnectedAt:e.lastConnectedAt,...e.desktopSsh?{desktopSsh:e.desktopSsh}:{},bearerToken:a,bearerTokenSavedAt:o,bearerTokenExpiresAt:s}}))}function ug(e){let t=ig(),n=t.records??[],r=n.find(t=>t.environmentId===e);if(!r?.bearerToken)return null;let i=Date.now();if(!$h(r,i))return fg(e),null;let a=eg(r,i);return(a.bearerTokenSavedAt!==r.bearerTokenSavedAt||a.bearerTokenExpiresAt!==r.bearerTokenExpiresAt)&&ag({version:t.version??1,records:n.map(t=>t.environmentId===e?a:t)}),r.bearerToken}function dg(e,t){let n=t.trim();if(n.length===0)return fg(e),!1;let r=ig(),i=r.records??[],a=!1,o=Date.now();return ag({version:r.version??1,records:i.map(t=>{if(t.environmentId!==e)return t;a=!0;let r={environmentId:t.environmentId,label:t.label,httpBaseUrl:t.httpBaseUrl,wsBaseUrl:t.wsBaseUrl,createdAt:t.createdAt,lastConnectedAt:t.lastConnectedAt,bearerToken:n,bearerTokenSavedAt:new Date(o).toISOString(),bearerTokenExpiresAt:Wh(o)};return t.desktopSsh?Object.assign(r,{desktopSsh:t.desktopSsh}):r})}),a}function fg(e){let t=ig();ag({version:t.version??1,records:(t.records??[]).map(t=>t.environmentId===e?tg(t):t)})}var pg;function mg(){return Error(`Local backend API is unavailable before a backend is paired.`)}function Y(e,t){let n=e();return n?t(n):Promise.reject(mg())}function hg(e,t){let n=typeof e==`function`?e:()=>e;return{dialogs:{pickFolder:async e=>window.desktopBridge?window.desktopBridge.pickFolder(e):null,confirm:async e=>window.desktopBridge?window.desktopBridge.confirm(e):window.confirm(e)},shell:{openInEditor:(e,t)=>Y(n,n=>n.shell.openInEditor({cwd:e,editor:t})),openExternal:async e=>{if(window.desktopBridge){if(!await window.desktopBridge.openExternal(e))throw Error(`Unable to open link.`);return}window.open(e,`_blank`,`noopener,noreferrer`)},getPathForFile:async e=>window.desktopBridge?.getPathForFile?.(e)||null},contextMenu:{show:async(e,t)=>window.desktopBridge?window.desktopBridge.showContextMenu(e,t):co()===`phone`&&Lh()?Vh(e):jh(e,t)},persistence:{getClientSettings:async()=>window.desktopBridge?window.desktopBridge.getClientSettings():ng(),setClientSettings:async e=>{if(window.desktopBridge)return window.desktopBridge.setClientSettings(e);rg(e)},getSavedEnvironmentRegistry:async()=>window.desktopBridge?window.desktopBridge.getSavedEnvironmentRegistry():cg(),setSavedEnvironmentRegistry:async e=>{if(window.desktopBridge)return window.desktopBridge.setSavedEnvironmentRegistry(e);lg(e)},getSavedEnvironmentSecret:async e=>window.desktopBridge?window.desktopBridge.getSavedEnvironmentSecret(e):ug(e),setSavedEnvironmentSecret:async(e,t)=>window.desktopBridge?window.desktopBridge.setSavedEnvironmentSecret(e,t):dg(e,t),removeSavedEnvironmentSecret:async e=>{if(window.desktopBridge)return window.desktopBridge.removeSavedEnvironmentSecret(e);fg(e)}},server:{getConfig:()=>Y(n,e=>e.server.getConfig()),getAdvertisedEndpoints:()=>Y(n,e=>e.server.getAdvertisedEndpoints()),getDiagnosticsMetrics:()=>Y(n,e=>e.server.getDiagnosticsMetrics()),getStatistics:()=>Y(n,e=>e.server.getStatistics()),getUsageSummary:e=>Y(n,t=>t.server.getUsageSummary(e)),refreshProviders:()=>Y(n,e=>e.server.refreshProviders()),updateProvider:e=>Y(n,t=>t.server.updateProvider(e)),upsertKeybinding:e=>Y(n,t=>t.server.upsertKeybinding(e)),getSettings:()=>Y(n,e=>e.server.getSettings()),updateSettings:e=>Y(n,t=>t.server.updateSettings(e)),getDiagnosticsSnapshot:()=>Y(n,e=>e.server.getDiagnosticsSnapshot()),discoverSourceControl:()=>Y(n,e=>e.server.discoverSourceControl()),listOpinionatedPlugins:()=>Y(n,e=>e.server.listOpinionatedPlugins()),checkOpinionatedPlugins:e=>Y(n,t=>t.server.checkOpinionatedPlugins(e)),installOpinionatedPlugin:e=>Y(n,t=>t.server.installOpinionatedPlugin(e))},keybindings:{replaceCustom:e=>Y(n,t=>t.keybindings.replaceCustom(e))},...t?.includeMcp??e!==void 0?{mcp:{listWorkspaces:()=>Y(n,e=>e.mcp.listWorkspaces()),listServers:e=>Y(n,t=>t.mcp.listServers(e)),upsertServer:e=>Y(n,t=>t.mcp.upsertServer(e)),setServerEnabled:e=>Y(n,t=>t.mcp.setServerEnabled(e)),removeServer:e=>Y(n,t=>t.mcp.removeServer(e)),reloadServers:e=>Y(n,t=>t.mcp.reloadServers(e)),startOauthLogin:e=>Y(n,t=>t.mcp.startOauthLogin(e))}}:{}}}function gg(e,t){let n=t.mcp??e.mcp;return{...e,...t,dialogs:{...e.dialogs,...t.dialogs},shell:{...e.shell,...t.shell},contextMenu:{...e.contextMenu,...t.contextMenu},persistence:{...e.persistence,...t.persistence},server:{...e.server,...t.server},...n?{mcp:n}:{}}}function _g(){if(!(typeof window>`u`))return pg||(window.nativeApi?(pg=gg(hg(),window.nativeApi),pg):(pg=hg(()=>{let e=Vr();if(!e)return;let t=e.environmentId?wE(e.environmentId)?.client:void 0;return t||l()?t:DE().client},{includeMcp:Vr()!==null}),pg))}function vg(){let e=_g();if(!e)throw Error(`Local API not found`);return e}function yg(e){let t=(t=>(0,V.useSyncExternalStore)(e.subscribe,()=>t(e.getState()),()=>t(e.getState())));return t.getState=e.getState,t.setState=e.setState,t.subscribe=e.subscribe,t}var bg=si({kv:{getRegistry:()=>vg().persistence.getSavedEnvironmentRegistry(),setRegistry:e=>vg().persistence.setSavedEnvironmentRegistry(e.map(e=>_r(e)))},secretKV:Th}),xg=yg(bg.registryStore),X=yg(bg.runtimeStore),Sg=bg.hasHydrated,Cg=bg.waitForHydration,wg=bg.list,Tg=bg.get,Eg=bg.persistRecord,Dg=bg.readBearerToken,Og=bg.writeBearerToken,kg=bg.removeBearerToken;bg.resetForTests,bg.resetRuntimeForTests,bg.getRuntime;function Ag(e){if(l())return null;let t=Vr();return t?.environmentId===e?ci(t):Tg(e)?.httpBaseUrl??null}function jg(e){let t=Ag(e.environmentId);if(!t)throw Error(`Unable to resolve HTTP base URL for environment ${e.environmentId}.`);let n=new URL(yr(t));return n.pathname=e.pathname,e.searchParams&&(n.search=new URLSearchParams(e.searchParams).toString()),n.toString()}function Mg(e){let t=new Map,n=!1;for(let r of e)switch(r.type){case`thread.turn-diff-completed`:case`thread.reverted`:n=!0;break;case`thread.created`:t.set(r.payload.threadId,{clearPromotedDraft:!0,clearDeletedThread:!1,removeTerminalState:!1});break;case`thread.deleted`:t.set(r.payload.threadId,{clearPromotedDraft:!1,clearDeletedThread:!0,removeTerminalState:!0});break;case`thread.archived`:t.set(r.payload.threadId,{clearPromotedDraft:!1,clearDeletedThread:!1,removeTerminalState:!0});break;case`thread.unarchived`:t.set(r.payload.threadId,{clearPromotedDraft:!1,clearDeletedThread:!1,removeTerminalState:!1})}let r=[],i=[],a=[];for(let[e,n]of t)n.clearPromotedDraft&&r.push(e),n.clearDeletedThread&&i.push(e),n.removeTerminalState&&a.push(e);return{promoteDraftThreadIds:r,clearDeletedThreadIds:i,removeTerminalStateThreadIds:a,needsProviderInvalidation:n}}var Ng=new Map,Pg=Fc({canReadConnections:()=>!0,readClient:e=>wE(e)?.client??null});function Fg(e){return Ng.get(e)??Pg.read(e)}function Ig(e,t){return Ng.get(e)??(t?Pc(t):void 0)}function Lg(e){let t=Fg(e);if(!t)throw Error(`Environment API not found for environment ${e}`);return t}Object.freeze({entries:[],truncated:!1});var Rg=Object.freeze({data:null,isLoading:!1,isFetching:!1,error:null}),zg=Rg,Bg=Xn(Rg).pipe(hr,Zr(`project-search-entries:null`)),Vg=new Set,Hg=new Map,Ug=Cr(e=>(Vg.add(e),Xn(Rg).pipe(hr,Zr(`project-search-entries:${e}`))));function Wg(e,t,n){return`${e}::${t}::${n}`}function Gg(e){return e.environmentId===null||e.cwd===null?null:Wg(e.environmentId,e.cwd,e.limit??80)}function Kg(e){return e===null?Bg:Ug(e)}function qg(e){return!((e.enabled??!0)&&e.environmentId!==null&&e.cwd!==null&&e.query.length>0)||e.environmentId===null||e.cwd===null?null:{environmentId:e.environmentId,cwd:e.cwd,query:e.query,limit:e.limit??80,staleTime:e.staleTime??15e3}}function Jg(e,t,n){let r=Wg(e,t,n),i=Hg.get(r);return i||(i={environmentId:e,cwd:t,limit:n,token:0,inFlightQuery:null,lastInput:null,observerCount:0,cache:new Map},Hg.set(r,i)),i}function Yg(e,t){let n=Ug(e),r=z.get(n);(r.data!==t.data||r.isLoading!==t.isLoading||r.isFetching!==t.isFetching||r.error!==t.error)&&z.set(n,t)}function Xg(e){let t=z.get(Ug(e));Yg(e,{data:t.data,isLoading:t.data===null,isFetching:!0,error:null})}function Zg(e,t){Yg(e,{data:t,isLoading:!1,isFetching:!1,error:null})}function Qg(e,t){Yg(e,{data:z.get(Ug(e)).data,isLoading:!1,isFetching:!1,error:t})}function $g(e,t,n){let r=n.query,i=++t.token;t.inFlightQuery=r,Xg(e);let a;try{a=Lg(n.environmentId)}catch(n){t.token===i&&(t.inFlightQuery=null,Qg(e,e_(n)));return}a.projects.searchEntries({cwd:n.cwd,query:r,limit:n.limit}).then(n=>{t.cache.set(r,{result:n,fetchedAt:Date.now()}),t.token===i&&(t.inFlightQuery=null,Zg(e,n))}).catch(n=>{t.token===i&&(t.inFlightQuery=null,Qg(e,e_(n)))})}function e_(e){return e instanceof Error?e:Error(String(e))}function t_(e,t){let n=qg(e);if(n===null)return;let r=Wg(n.environmentId,n.cwd,n.limit),i=Jg(n.environmentId,n.cwd,n.limit);if(i.lastInput=n,!t?.force){let e=i.cache.get(n.query);if(e&&Date.now()-e.fetchedAt<n.staleTime){Zg(r,e.result);return}if(i.inFlightQuery===n.query)return}$g(r,i,n)}function n_(e){if(e.environmentId===null||e.cwd===null)return;let t=Jg(e.environmentId,e.cwd,e.limit??80);t.observerCount+=1}function r_(e){let t=Gg(e);if(t===null)return;let n=Hg.get(t);n&&n.observerCount>0&&--n.observerCount}function i_(e){let t=e?.environmentId??null,n=e?.cwd??null;for(let e of Hg.values())(t===null||e.environmentId===t)&&(n===null||e.cwd===n)&&(e.cache.clear(),e.observerCount>0&&e.lastInput!==null&&t_(e.lastInput,{force:!0}))}var a_=Object.freeze({data:null,isLoading:!1,isFetching:!1,error:null,isPending:!0}),o_=a_,s_=`\0`,c_=new Set,l_=Cr(e=>(c_.add(e),Xn(a_).pipe(hr,Zr(`filesystem-browse:${e}`)))),u_=Xn(a_).pipe(hr,Zr(`filesystem-browse:null`)),d_=new Map;function f_(e){if(!((e.enabled??!0)&&e.environmentId!==null&&e.partialPath.length>0)||e.environmentId===null)return null;let t=e.cwd??null,n=`${e.environmentId}${s_}${t??``}${s_}${e.partialPath}`;return{environmentId:e.environmentId,partialPath:e.partialPath,cwd:t,staleTime:e.staleTime??3e4,compositeKey:n}}function p_(e){return f_(e)?.compositeKey??null}function m_(e){return e===null?u_:l_(e)}function h_(e,t){z.set(l_(e),t)}function g_(e){return z.get(l_(e))}async function __(e){let t=++e.fetchToken;e.fetching=!0;let n=g_(e.compositeKey);h_(e.compositeKey,{data:n.data,isLoading:n.data===null,isFetching:!0,error:null,isPending:!0});let r=Array.from(e.subscriberTargets.values()).at(-1),i=r===void 0?Fg(e.environmentId):r;if(!i){if(t!==e.fetchToken)return;e.fetching=!1,h_(e.compositeKey,{data:n.data,isLoading:!1,isFetching:!1,error:Error(`The environment is temporarily unavailable. Reconnecting…`),isPending:!1});return}try{let n=await i.filesystem.browse({partialPath:e.partialPath,...e.cwd?{cwd:e.cwd}:{}});if(t!==e.fetchToken)return;e.fetching=!1,e.hasData=!0,e.lastFetchedAt=Date.now(),e.lastResult=n,h_(e.compositeKey,{data:n,isLoading:!1,isFetching:!1,error:null,isPending:!1})}catch(n){if(t!==e.fetchToken)return;e.fetching=!1;let r=e_(n);h_(e.compositeKey,{data:g_(e.compositeKey).data,isLoading:!1,isFetching:!1,error:r,isPending:!1})}}function v_(e){let t=d_.get(e.compositeKey);return t||(t={compositeKey:e.compositeKey,environmentId:e.environmentId,partialPath:e.partialPath,cwd:e.cwd,staleTime:e.staleTime,subscriberCount:0,lastFetchedAt:0,fetchToken:0,hasData:!1,fetching:!1,lastResult:null,subscriberTargets:new Map},d_.set(e.compositeKey,t)),t}function y_(e){let t=v_(e),n=t.hasData&&Date.now()-t.lastFetchedAt>=t.staleTime;!t.fetching&&(!t.hasData||n)&&__(t)}function b_(e,t){let n=f_(e);if(n===null)return;let r=v_(n);if(!t?.force){if(r.hasData&&Date.now()-r.lastFetchedAt<n.staleTime){h_(n.compositeKey,{data:r.lastResult,isLoading:!1,isFetching:!1,error:null,isPending:!1});return}if(r.fetching)return}__(r)}function x_(e,t){let n=f_(e);if(n===null)return()=>void 0;let r=v_(n),i=Symbol(`filesystem-browse-subscriber`),a=Array.from(r.subscriberTargets.values()).at(-1);return t!==void 0&&r.subscriberTargets.set(i,t),a!==Array.from(r.subscriberTargets.values()).at(-1)&&r.fetching&&(r.fetchToken+=1,r.fetching=!1),r.subscriberCount+=1,y_(n),()=>{let e=d_.get(n.compositeKey);if(e&&e.subscriberCount>0){let t=Array.from(e.subscriberTargets.values()).at(-1);e.subscriberTargets.delete(i),t!==Array.from(e.subscriberTargets.values()).at(-1)&&e.fetching&&(e.fetchToken+=1,e.fetching=!1),--e.subscriberCount}}}function S_(e){b_(e)}function C_(){for(let e of Vg)z.set(Ug(e),Rg);Vg.clear(),Hg.clear();for(let e of d_.values())e.fetchToken+=1;d_.clear();for(let e of c_)z.set(l_(e),a_);c_.clear()}function w_(e){return JSON.stringify([e.environmentId??null,e.threadId,e.fromTurnCount,e.toTurnCount,e.ignoreWhitespace,e.cacheScope??null])}function T_(e){return e.fromTurnCount===0?ze(te)({threadId:e.threadId,toTurnCount:e.toTurnCount,ignoreWhitespace:e.ignoreWhitespace}).pipe(ot(e=>({kind:`fullThreadDiff`,input:e}))):ze(He)({threadId:e.threadId,fromTurnCount:e.fromTurnCount,toTurnCount:e.toTurnCount,ignoreWhitespace:e.ignoreWhitespace}).pipe(ot(e=>({kind:`turnDiff`,input:e})))}function E_(e){return(e.enabled??!0)&&!!e.environmentId&&!!e.threadId&&Qe(T_(e))}function D_(e){return e instanceof Error?e.message:typeof e==`string`?e:``}function O_(e){let t=D_(e).trim();if(t.length===0)return`Failed to load checkpoint diff.`;let n=t.toLowerCase();if(n.includes(`not a git repository`))return`Turn diffs are unavailable because this project is not a git repository.`;if(n.includes(`checkpoint unavailable for thread`)||n.includes(`checkpoint invariant violation`)){let e=t.indexOf(`:`);if(e>=0){let n=t.slice(e+1).trim();if(n.length>0)return n}}return t}function k_(e){let t=D_(e).toLowerCase();return t.includes(`exceeds current turn count`)||t.includes(`checkpoint is unavailable for turn`)||t.includes(`filesystem checkpoint is unavailable`)}function A_(e,t){return k_(t)?e<12:e<3}function j_(e,t){return k_(t)?Math.min(5e3,250*2**(e-1)):Math.min(1e3,100*2**(e-1))}async function M_(e){let t=T_(e);if(!e.environmentId||!e.threadId||rt(t))throw Error(`Checkpoint diff is unavailable.`);let n=Lg(e.environmentId);return t.value.kind===`fullThreadDiff`?await n.orchestration.getFullThreadDiff(t.value.input):await n.orchestration.getTurnDiff(t.value.input)}var N_=Object.freeze({data:null,error:null,isLoading:!1}),P_=Object.freeze({data:null,error:null,isLoading:!0}),F_=N_,I_=Xn(F_).pipe(hr,Zr(`checkpoint-diff:disabled`)),L_=new Set,R_=Cr(e=>(L_.add(e),Xn(P_).pipe(hr,Zr(`checkpoint-diff:${e}`)))),z_=new Map,B_=new Map,V_=()=>void 0;function H_(e,t){z.set(R_(e),t)}function U_(e){return z.get(R_(e))}function W_(e){return new Promise(t=>{setTimeout(t,e)})}function G_(e){let t=++e.generation;e.fetching=!0;let n=U_(e.key);H_(e.key,{data:n.data,error:null,isLoading:n.data===null}),(async()=>{let n=0;for(;;)try{let n=await M_(e.input);if(e.generation!==t)return;e.fetching=!1,e.hasResolved=!0,H_(e.key,{data:n,error:null,isLoading:!1});return}catch(r){let i=Error(O_(r),{cause:r});if(n+=1,e.generation!==t)return;if(!A_(n,i)){e.fetching=!1,H_(e.key,{data:null,error:i,isLoading:!1});return}if(await W_(j_(n,i)),e.generation!==t)return}})()}function K_(e,t){let n=B_.get(e);if(n){n.add(t);return}B_.set(e,new Set([t]))}function q_(e){if(!E_(e)||e.threadId===null)return V_;let t=w_(e),n=z_.get(t);return n||(n={key:t,input:e,threadId:e.threadId,refCount:0,generation:0,hasResolved:!1,fetching:!1},z_.set(t,n),K_(e.threadId,t)),n.refCount+=1,!n.hasResolved&&!n.fetching&&G_(n),()=>{let e=z_.get(t);e&&(e.refCount=Math.max(0,e.refCount-1))}}function J_(e){if(e.hasResolved=!1,e.refCount>0){G_(e);return}e.generation+=1,e.fetching=!1}function Y_(){for(let e of z_.values())J_(e)}function X_(){for(let e of z_.values())e.generation+=1;z_.clear(),B_.clear();for(let e of L_)H_(e,P_);L_.clear()}function Z_(){return Kc(Zn,rr.origin())}var Q_=e=>Z_().bootstrapRemoteBearerSession(e),$_=e=>Z_().fetchRemoteSessionState(e),ev=e=>Z_().fetchRemoteEnvironmentDescriptor(e),tv=e=>Z_().resolveRemoteWebSocketConnectionUrl(e);function nv(e){return Xc(e,rr.origin(),{readPairingToken:Ei,readHostedPairingRequest:lo})}var rv=Object.freeze({lastSnapshotSequence:null,lastEventSequence:null,highestSequence:null,eventCount:0,snapshotCount:0,gapCount:0,lastGap:null,updatedAt:null});function iv(){return new Date().toISOString()}function av(e,t,n){let r=e??rv,i=r.highestSequence===null?t:Math.max(r.highestSequence,t);return{...r,lastSnapshotSequence:t,highestSequence:i,snapshotCount:r.snapshotCount+1,updatedAt:n}}function ov(e,t,n){let r=e??rv,i=r.highestSequence,a=r.gapCount,o=r.lastGap;i!==null&&t>i+1&&(a+=1,o={expectedSequence:i+1,receivedSequence:t,detectedAt:n});let s=i===null?t:Math.max(i,t);return{...r,lastEventSequence:t,highestSequence:s,eventCount:r.eventCount+1,gapCount:a,lastGap:o,updatedAt:n}}var sv=c()(e=>({byEnvironment:{},recordSnapshot:(t,n)=>e(e=>({byEnvironment:{...e.byEnvironment,[t]:av(e.byEnvironment[t],n,iv())}})),recordEvent:(t,n)=>e(e=>({byEnvironment:{...e.byEnvironment,[t]:ov(e.byEnvironment[t],n,iv())}})),reset:()=>e({byEnvironment:{}})}));function cv(e,t){try{sv.getState().recordSnapshot(e,t)}catch{}}function lv(e,t){try{sv.getState().recordEvent(e,t)}catch{}}var uv={recordEvent:lv,recordSnapshot:cv};function dv(e){return oi({...e,pushSequenceMonitor:uv})}zn()(`@ryco/client-runtime/platform/Endpoint`),zn()(`@ryco/client-runtime/platform/Socket`),zn()(`@ryco/client-runtime/platform/AppLifecycle`),zn()(`@ryco/client-runtime/platform/KV`),zn()(`@ryco/client-runtime/platform/SecretKV`),zn()(`@ryco/client-runtime/platform/PasskeyCeremony`),zn()(`@ryco/client-runtime/platform/SessionCredentials`),zn()(`@ryco/client-runtime/platform/DpopSigner`),zn()(`@ryco/client-runtime/platform/PairingCredentialSource`),zn()(`@ryco/client-runtime/platform/AttachmentCodec`),zn()(`@ryco/client-runtime/platform/Clock`),zn()(`@ryco/client-runtime/platform/FrameScheduler`);var fv=xn({span(e){return new ht(e)}}),pv={tracingLayer:E(un,fv),performanceEnabled:()=>!1,recordPerformance:()=>void 0};yt(`@ryco/client-runtime/platform/Observability`,{defaultValue:()=>pv}),zn()(`@ryco/client-runtime/platform/ClientRuntimeConfig`);var mv={clock:{now:()=>Date.now()},frameScheduler:{scheduleFrame:e=>void Promise.resolve().then(e)},observability:pv,isHostedHubMode:()=>!1,resolveAttachmentPreviewUrl:({attachmentId:e})=>e},hv=null;function gv(e){hv=e}function _v(e){hv=null,mv=e}function vv(){if(hv){let e=hv;hv=null,e()}return mv}var yv=`context-compaction`,bv=A(fe);function xv(e){return e.kind===yv}function Sv(e){if(e.kind!==`context-handoff`)return!1;try{let t=bv(e.payload);return t.status===`consumed`||t.status===`failed`||t.status===`delivery-uncertain`}catch{return!1}}function Cv(e){return xv(e)||Sv(e)}function wv(e,t){if(e.length<=t)return[...e];let n=e.slice(-t),r=new Set(n.map(e=>e.id)),i=e.filter(e=>Cv(e)&&!r.has(e.id));return i.length===0?[...n]:[...i,...n]}var Tv=[],Ev=[],Dv=[],Ov=[],kv={},Av={},jv={},Mv={},Nv=new WeakMap,Pv=new WeakMap;function Fv(e,t,n){if(!e||e.length===0||!t)return n;let r=Nv.get(e),i=r?.get(t);if(i)return i;let a=e.flatMap(e=>{let n=t[e];return n?[n]:[]}),o=r??new WeakMap;return o.set(t,a),r||Nv.set(e,o),a}function Iv(e,t){return Fv(e.messageIdsByThreadId[t],e.messageByThreadId[t]??kv,Tv)}function Lv(e,t){return Fv(e.activityIdsByThreadId[t],e.activityByThreadId[t]??Av,Ev)}function Rv(e,t){return Fv(e.proposedPlanIdsByThreadId[t],e.proposedPlanByThreadId[t]??jv,Dv)}function zv(e,t){return Fv(e.turnDiffIdsByThreadId[t],e.turnDiffSummaryByThreadId[t]??Mv,Ov)}function Bv(e,t){let n=e.threadShellById[t];if(!n)return;let r=e.threadSessionById[t]??null,i=e.threadTurnStateById[t],a=Iv(e,t),o=Lv(e,t),s=Rv(e,t),c=zv(e,t),l=Pv.get(n);if(l&&l.session===r&&l.turnState===i&&l.messages===a&&l.activities===o&&l.proposedPlans===s&&l.turnDiffSummaries===c)return l.thread;let u={...n,session:r,latestTurn:i?.latestTurn??null,pendingSourceProposedPlan:i?.pendingSourceProposedPlan,messages:a,activities:o,proposedPlans:s,turnDiffSummaries:c};return Pv.set(n,{session:r,turnState:i,messages:a,activities:o,proposedPlans:s,turnDiffSummaries:c,thread:u}),u}var Vv={projectIds:[],projectById:{},worktreeIds:[],worktreeIdsByProjectId:{},worktreeById:{},threadIds:[],threadIdsByProjectId:{},threadShellById:{},threadSessionById:{},threadTurnStateById:{},messageIdsByThreadId:{},messageByThreadId:{},pendingMessagesByThreadId:{},activityIdsByThreadId:{},activityByThreadId:{},proposedPlanIdsByThreadId:{},proposedPlanByThreadId:{},turnDiffIdsByThreadId:{},turnDiffSummaryByThreadId:{},threadHistoryByThreadId:{},threadHistoryLoadByThreadId:{},sidebarThreadSummaryById:{},bootstrapComplete:!1,hydratedFromCacheAt:void 0},Hv={activeEnvironmentId:null,environmentStateById:{}},Uv=2e3,Wv=500,Gv=[],Kv=[],qv=[],Jv=[];function Yv(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function Xv(e){return wn(e.instanceId)?{...e,model:mi(e.instanceId,e.model)}:e}function Zv(e){return e.map(e=>({...e}))}function Qv(e){return{provider:Hy(e.providerName),providerInstanceId:e.providerInstanceId??void 0,status:Vy(e.status),orchestrationStatus:e.status,activeTurnId:e.activeTurnId??void 0,createdAt:e.updatedAt,updatedAt:e.updatedAt,...e.lastError?{lastError:e.lastError}:{}}}function $v(e,t){let n=t.attachments?.map(t=>({type:`image`,id:t.id,name:t.name,mimeType:t.mimeType,sizeBytes:t.sizeBytes,...vv().isHostedHubMode()?{}:{previewUrl:vv().resolveAttachmentPreviewUrl({environmentId:e,attachmentId:t.id})}}));return{id:t.id,role:t.role,text:t.text,turnId:t.turnId,...t.dispatchMode===void 0?{}:{dispatchMode:t.dispatchMode},createdAt:t.createdAt,streaming:t.streaming,...t.streaming?{}:{completedAt:t.updatedAt},...n&&n.length>0?{attachments:n}:{}}}function ey(e){return{id:e.id,turnId:e.turnId,planMarkdown:e.planMarkdown,implementedAt:e.implementedAt,implementationThreadId:e.implementationThreadId,createdAt:e.createdAt,updatedAt:e.updatedAt}}function ty(e){return{turnId:e.turnId,completedAt:e.completedAt,status:e.status,assistantMessageId:e.assistantMessageId??void 0,checkpointTurnCount:e.checkpointTurnCount,checkpointRef:e.checkpointRef,files:e.files.filter(ny).map(e=>({path:e.path,kind:e.kind,additions:e.additions,deletions:e.deletions}))}}function ny(e){return e.kind!==`modified`||e.additions>0||e.deletions>0}function ry(e,t){return{id:e.id,environmentId:t,name:e.title,cwd:e.workspaceRoot,projectMetadataDir:e.projectMetadataDir,repositoryIdentity:e.repositoryIdentity??null,defaultModelSelection:e.defaultModelSelection?Xv(e.defaultModelSelection):null,customSystemPrompt:e.customSystemPrompt??null,customAvatarContentHash:e.customAvatarContentHash??null,preferredRemoteName:e.preferredRemoteName??null,createdAt:e.createdAt,updatedAt:e.updatedAt,scripts:Zv(e.scripts)}}function iy(e,t){return{id:e.worktreeId,environmentId:t,projectId:e.projectId,title:e.title??null,branch:e.branch,worktreePath:e.worktreePath,origin:e.origin,prNumber:e.prNumber,issueNumber:e.issueNumber,prTitle:e.prTitle,issueTitle:e.issueTitle,prState:e.prState??null,prIsDraft:e.prIsDraft??null,issueState:e.issueState??null,workItemProvider:e.workItemProvider??null,workItemKey:e.workItemKey??null,workItemTitle:e.workItemTitle??null,workItemState:e.workItemState??null,workItemStateName:e.workItemStateName??null,workItemUrl:e.workItemUrl??null,createdAt:e.createdAt,updatedAt:e.updatedAt,archivedAt:e.archivedAt,manualPosition:e.manualPosition}}function ay(e,t){return{id:e.id,environmentId:t,codexThreadId:null,projectId:e.projectId,title:e.title,modelSelection:Xv(e.modelSelection),runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,session:e.session?Qv(e.session):null,messages:e.messages.map(e=>$v(t,e)),proposedPlans:e.proposedPlans.map(ey),error:wr(e.session?.lastError),createdAt:e.createdAt,archivedAt:e.archivedAt,settledOverride:e.settledOverride,settledAt:e.settledAt,updatedAt:e.updatedAt,latestTurn:e.latestTurn,pendingSourceProposedPlan:e.latestTurn?.sourceProposedPlan,branch:e.branch,worktreePath:e.worktreePath,worktreeId:e.worktreeId??null,manualStatusBucket:e.manualStatusBucket??null,manualPosition:e.manualPosition??0,goal:e.goal??null,turnDiffSummaries:e.checkpoints.map(ty),activities:e.activities.map(e=>({...e}))}}function oy(e,t){let n={id:e.id,environmentId:t,codexThreadId:null,projectId:e.projectId,title:e.title,modelSelection:Xv(e.modelSelection),runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,error:wr(e.session?.lastError),createdAt:e.createdAt,archivedAt:e.archivedAt,settledOverride:e.settledOverride,settledAt:e.settledAt,updatedAt:e.updatedAt,branch:e.branch,worktreePath:e.worktreePath,worktreeId:e.worktreeId??null,manualStatusBucket:e.manualStatusBucket??null,manualPosition:e.manualPosition??0,goal:e.goal??null},r=e.session?Qv(e.session):null;return{shell:n,session:r,turnState:{latestTurn:e.latestTurn,pendingSourceProposedPlan:e.latestTurn?.sourceProposedPlan},summary:{id:e.id,environmentId:t,projectId:e.projectId,title:e.title,modelSelection:Xv(e.modelSelection),interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,session:r,providerDriver:r?.provider??null,createdAt:e.createdAt,archivedAt:e.archivedAt,settledOverride:e.settledOverride,settledAt:e.settledAt,updatedAt:e.updatedAt,latestTurn:e.latestTurn,branch:e.branch,worktreePath:e.worktreePath,worktreeId:e.worktreeId??null,manualStatusBucket:e.manualStatusBucket??null,manualPosition:e.manualPosition??0,latestUserMessageAt:e.latestUserMessageAt,hasPendingApprovals:e.hasPendingApprovals,hasPendingUserInput:e.hasPendingUserInput,hasActionableProposedPlan:e.hasActionableProposedPlan,backgroundLiveness:e.backgroundLiveness??null,priority:e.priority}}}function sy(e){return{id:e.id,environmentId:e.environmentId,codexThreadId:e.codexThreadId,projectId:e.projectId,title:e.title,modelSelection:e.modelSelection,runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,tokenMode:e.tokenMode??`balanced`,error:e.error,createdAt:e.createdAt,archivedAt:e.archivedAt,settledOverride:e.settledOverride,settledAt:e.settledAt,updatedAt:e.updatedAt,branch:e.branch,worktreePath:e.worktreePath,worktreeId:e.worktreeId,manualStatusBucket:e.manualStatusBucket,manualPosition:e.manualPosition,goal:e.goal??null}}function cy(e){return{latestTurn:e.latestTurn,...e.pendingSourceProposedPlan?{pendingSourceProposedPlan:e.pendingSourceProposedPlan}:{}}}function ly(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.threadId===t.threadId&&e.planId===t.planId}function uy(e,t){return e===t?!0:e==null||t==null?!1:e.objective===t.objective&&e.status===t.status&&e.tokenBudget===t.tokenBudget&&e.tokensUsed===t.tokensUsed&&e.timeUsedSeconds===t.timeUsedSeconds&&e.createdAt===t.createdAt&&e.updatedAt===t.updatedAt}function dy(e,t){return e===t?!0:e==null||t==null?!1:e.turnId===t.turnId&&e.state===t.state&&e.requestedAt===t.requestedAt&&e.startedAt===t.startedAt&&e.completedAt===t.completedAt&&e.assistantMessageId===t.assistantMessageId&&ly(e.sourceProposedPlan,t.sourceProposedPlan)}function fy(e,t){return e===t?!0:e==null||t==null?!1:e.provider===t.provider&&e.status===t.status&&e.orchestrationStatus===t.orchestrationStatus&&e.activeTurnId===t.activeTurnId&&e.createdAt===t.createdAt&&e.updatedAt===t.updatedAt&&e.lastError===t.lastError}function py(e,t){return e!==void 0&&e.id===t.id&&e.projectId===t.projectId&&e.title===t.title&&e.interactionMode===t.interactionMode&&e.tokenMode===t.tokenMode&&fy(e.session,t.session)&&e.createdAt===t.createdAt&&e.archivedAt===t.archivedAt&&e.settledOverride===t.settledOverride&&e.settledAt===t.settledAt&&e.updatedAt===t.updatedAt&&dy(e.latestTurn,t.latestTurn)&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.worktreeId===t.worktreeId&&e.manualStatusBucket===t.manualStatusBucket&&e.manualPosition===t.manualPosition&&e.latestUserMessageAt===t.latestUserMessageAt&&e.hasPendingApprovals===t.hasPendingApprovals&&e.hasPendingUserInput===t.hasPendingUserInput&&e.hasActionableProposedPlan===t.hasActionableProposedPlan&&(e.backgroundLiveness??null)===(t.backgroundLiveness??null)&&my(e.priority,t.priority)}function my(e,t){return e===t||e!==void 0&&t!==void 0&&e.tier===t.tier&&e.confidence===t.confidence&&e.reason===t.reason&&e.inputFingerprint===t.inputFingerprint&&e.batchId===t.batchId&&e.modelSelection.instanceId===t.modelSelection.instanceId&&e.modelSelection.model===t.modelSelection.model&&JSON.stringify(e.modelSelection.options)===JSON.stringify(t.modelSelection.options)&&e.rankedAt===t.rankedAt&&e.usableUntil===t.usableUntil}function hy(e,t){return e!==void 0&&e.id===t.id&&e.environmentId===t.environmentId&&e.codexThreadId===t.codexThreadId&&e.projectId===t.projectId&&e.title===t.title&&e.modelSelection===t.modelSelection&&e.runtimeMode===t.runtimeMode&&e.interactionMode===t.interactionMode&&e.tokenMode===t.tokenMode&&e.error===t.error&&e.createdAt===t.createdAt&&e.archivedAt===t.archivedAt&&e.settledOverride===t.settledOverride&&e.settledAt===t.settledAt&&e.updatedAt===t.updatedAt&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.worktreeId===t.worktreeId&&e.manualStatusBucket===t.manualStatusBucket&&e.manualPosition===t.manualPosition&&uy(e.goal,t.goal)}function gy(e,t){return e!==void 0&&e.id===t.id&&e.environmentId===t.environmentId&&e.projectId===t.projectId&&e.title===t.title&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.origin===t.origin&&e.prNumber===t.prNumber&&e.issueNumber===t.issueNumber&&e.prTitle===t.prTitle&&e.issueTitle===t.issueTitle&&e.prState===t.prState&&e.prIsDraft===t.prIsDraft&&e.issueState===t.issueState&&e.workItemProvider===t.workItemProvider&&e.workItemKey===t.workItemKey&&e.workItemTitle===t.workItemTitle&&e.workItemState===t.workItemState&&e.workItemStateName===t.workItemStateName&&e.workItemUrl===t.workItemUrl&&e.createdAt===t.createdAt&&e.updatedAt===t.updatedAt&&e.archivedAt===t.archivedAt&&e.manualPosition===t.manualPosition}function _y(e,t){return e!==void 0&&dy(e.latestTurn,t.latestTurn)&&ly(e.pendingSourceProposedPlan,t.pendingSourceProposedPlan)}function vy(e,t){return e.includes(t)?[...e]:[...e,t]}function yy(e,t){return e.filter(e=>e!==t)}function by(e){return{ids:e.messages.map(e=>e.id),byId:Object.fromEntries(e.messages.map(e=>[e.id,e]))}}function xy(e){return Sy(e.activities)}function Sy(e){return{ids:e.map(e=>e.id),byId:Object.fromEntries(e.map(e=>[e.id,e]))}}function Cy(e){return{ids:e.proposedPlans.map(e=>e.id),byId:Object.fromEntries(e.proposedPlans.map(e=>[e.id,e]))}}function wy(e){return{ids:e.turnDiffSummaries.map(e=>e.turnId),byId:Object.fromEntries(e.turnDiffSummaries.map(e=>[e.turnId,e]))}}function Ty(e){return e.projectIds.flatMap(t=>{let n=e.projectById[t];return n?[n]:[]})}function Ey(e){return e.threadIds.flatMap(t=>{let n=Bv(e,t);return n?[n]:[]})}function Dy(e,t,n,r){let i=e;if(e.threadIds.includes(t)||(i={...i,threadIds:[...i.threadIds,t]}),r!==n){let e=i.threadIdsByProjectId;if(r){let n=e[r]??Gv,i=yy(n,t);if(i.length===0){let{[r]:t,...n}=e;e=n}else Yv(n,i)||(e={...e,[r]:i})}let a=e[n]??Gv,o=vy(a,t);Yv(a,o)||(e={...e,[n]:o}),e!==i.threadIdsByProjectId&&(i={...i,threadIdsByProjectId:e})}return i}function Oy(e,t,n){let r=e.pendingMessagesByThreadId[t.id]??[],i=r.length===0?t:{...t,messages:[...t.messages,...r].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id))},a=sy(t),o=cy(t),s=e.threadShellById[t.id],c=e.threadTurnStateById[t.id],l=Dy(e,t.id,t.projectId,n?.projectId);if(hy(s,a)||(l={...l,threadShellById:{...l.threadShellById,[t.id]:a}}),fy(n?.session??null,t.session)||(l={...l,threadSessionById:{...l.threadSessionById,[t.id]:t.session}}),_y(c,o)||(l={...l,threadTurnStateById:{...l.threadTurnStateById,[t.id]:o}}),n?.messages!==i.messages){let e=by(i);l={...l,messageIdsByThreadId:{...l.messageIdsByThreadId,[i.id]:e.ids},messageByThreadId:{...l.messageByThreadId,[i.id]:e.byId}}}if(r.length>0){let{[i.id]:e,...t}=l.pendingMessagesByThreadId;l={...l,pendingMessagesByThreadId:t}}if(n?.activities!==t.activities){let e=xy(t);l={...l,activityIdsByThreadId:{...l.activityIdsByThreadId,[t.id]:e.ids},activityByThreadId:{...l.activityByThreadId,[t.id]:e.byId}}}if(n?.proposedPlans!==t.proposedPlans){let e=Cy(t);l={...l,proposedPlanIdsByThreadId:{...l.proposedPlanIdsByThreadId,[t.id]:e.ids},proposedPlanByThreadId:{...l.proposedPlanByThreadId,[t.id]:e.byId}}}if(n?.turnDiffSummaries!==t.turnDiffSummaries){let e=wy(t);l={...l,turnDiffIdsByThreadId:{...l.turnDiffIdsByThreadId,[t.id]:e.ids},turnDiffSummaryByThreadId:{...l.turnDiffSummaryByThreadId,[t.id]:e.byId}}}return l}function ky(e,t){let n=e.threadShellById[t.shell.id],r=Dy(e,t.shell.id,t.shell.projectId,n?.projectId);return hy(n,t.shell)||(r={...r,threadShellById:{...r.threadShellById,[t.shell.id]:t.shell}}),fy(e.threadSessionById[t.shell.id]??null,t.session)||(r={...r,threadSessionById:{...r.threadSessionById,[t.shell.id]:t.session}}),_y(e.threadTurnStateById[t.shell.id],t.turnState)||(r={...r,threadTurnStateById:{...r.threadTurnStateById,[t.shell.id]:t.turnState}}),py(e.sidebarThreadSummaryById[t.shell.id],t.summary)||(r={...r,sidebarThreadSummaryById:{...r.sidebarThreadSummaryById,[t.shell.id]:t.summary}}),r}function Ay(e,t){return Object.fromEntries(Object.entries(e).flatMap(([e,n])=>t.has(e)?[[e,n]]:[]))}function jy(e,t){let n=e.threadShellById[t];if(!n)return e;let r=yy(e.threadIds,t),i=yy(e.threadIdsByProjectId[n.projectId]??Gv,t),a=i.length===0?(()=>{let{[n.projectId]:t,...r}=e.threadIdsByProjectId;return r})():{...e.threadIdsByProjectId,[n.projectId]:i},{[t]:o,...s}=e.threadShellById,{[t]:c,...l}=e.threadSessionById,{[t]:u,...d}=e.threadTurnStateById,{[t]:f,...p}=e.messageIdsByThreadId,{[t]:m,...h}=e.messageByThreadId,{[t]:g,..._}=e.pendingMessagesByThreadId,{[t]:v,...y}=e.activityIdsByThreadId,{[t]:b,...x}=e.activityByThreadId,{[t]:S,...C}=e.proposedPlanIdsByThreadId,{[t]:w,...T}=e.proposedPlanByThreadId,{[t]:E,...D}=e.turnDiffIdsByThreadId,{[t]:O,...k}=e.turnDiffSummaryByThreadId,{[t]:A,...j}=e.threadHistoryByThreadId??{},{[t]:M,...N}=e.threadHistoryLoadByThreadId??{},{[t]:P,...F}=e.sidebarThreadSummaryById;return{...e,threadIds:r,threadIdsByProjectId:a,threadShellById:s,threadSessionById:l,threadTurnStateById:d,messageIdsByThreadId:p,messageByThreadId:h,pendingMessagesByThreadId:_,activityIdsByThreadId:y,activityByThreadId:x,proposedPlanIdsByThreadId:C,proposedPlanByThreadId:T,turnDiffIdsByThreadId:D,turnDiffSummaryByThreadId:k,threadHistoryByThreadId:j,threadHistoryLoadByThreadId:N,sidebarThreadSummaryById:F}}function My(e,t){let n=e.environmentStateById[t.environmentId];return n?eb(e,t.environmentId,jy(n,t.threadId)):e}function Ny(e,t){let n=e.worktreeById??{},r=e.worktreeIds??Kv,i=n[t.id],a=i!==void 0&&i.projectId!==t.projectId,o=r.includes(t.id)?r:[...r,t.id],s=e.worktreeIdsByProjectId??{},c=s[t.projectId]??[];if(gy(i,t)&&r.includes(t.id)&&c.includes(t.id))return e;if(a){let e=yy(s[i.projectId]??[],t.id);if(e.length===0){let{[i.projectId]:e,...t}=s;s=t}else s={...s,[i.projectId]:e}}let l=s[t.projectId]??[];return l.includes(t.id)||(s={...s,[t.projectId]:[...l,t.id]}),i===void 0&&o===r&&(o=[...o]),{...e,worktreeIds:o,worktreeIdsByProjectId:s,worktreeById:{...n,[t.id]:t}}}function Py(e,t){let n=e.worktreeById??{},r=n[t];if(!r)return e;let{[t]:i,...a}=n,o=e.worktreeIdsByProjectId??{},s=yy(o[r.projectId]??[],t),c=s.length===0?Object.fromEntries(Object.entries(o).filter(([e])=>e!==r.projectId)):{...o,[r.projectId]:s};return{...e,worktreeIds:yy(e.worktreeIds??Kv,t),worktreeIdsByProjectId:c,worktreeById:a}}function Fy(e){return e===`error`?`error`:e===`missing`?`interrupted`:`completed`}function Iy(e,t){if(e.sequence!==void 0&&t.sequence!==void 0){if(e.sequence!==t.sequence)return e.sequence-t.sequence}else if(e.sequence!==void 0)return 1;else if(t.sequence!==void 0)return-1;return e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)}function Ly(e){let t=e.previous?.turnId===e.turnId?e.previous.sourceProposedPlan:e.sourceProposedPlan;return{turnId:e.turnId,state:e.state,requestedAt:e.requestedAt,startedAt:e.startedAt,completedAt:e.completedAt,assistantMessageId:e.assistantMessageId,...t?{sourceProposedPlan:t}:{}}}function Ry(e,t,n){let r=new Set;for(let n of e){if(n.role===`system`){r.add(n.id);continue}n.turnId!==void 0&&n.turnId!==null&&t.has(n.turnId)&&r.add(n.id)}let i=e.filter(e=>e.role===`user`&&r.has(e.id)).length,a=Math.max(0,n-i);if(a>0){let n=e.filter(e=>e.role===`user`&&!r.has(e.id)&&(e.turnId===void 0||e.turnId===null||t.has(e.turnId))).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(0,a);for(let e of n)r.add(e.id)}let o=e.filter(e=>e.role===`assistant`&&r.has(e.id)).length,s=Math.max(0,n-o);if(s>0){let n=e.filter(e=>e.role===`assistant`&&!r.has(e.id)&&(e.turnId===void 0||e.turnId===null||t.has(e.turnId))).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(0,s);for(let e of n)r.add(e.id)}return e.filter(e=>r.has(e.id))}function zy(e,t){return e.filter(e=>e.turnId===null||t.has(e.turnId))}function By(e,t){return e.filter(e=>e.turnId===null||t.has(e.turnId))}function Vy(e){switch(e){case`starting`:return`connecting`;case`running`:return`running`;case`error`:return`error`;case`ready`:case`interrupted`:return`ready`;case`idle`:case`stopped`:return`closed`}}function Hy(e){return _(Xt)(e)?e:Xt.make(`codex`)}function Z(e,t,n){let r=Bv(e,t);if(!r)return e;let i=n(r);return i===r?e:Oy(e,i,r)}function Uy(e,t,n){let r=e.threadShellById[t];return!r||r.updatedAt===n?e:{...e,threadShellById:{...e.threadShellById,[t]:{...r,updatedAt:n}}}}function Wy(e,t,n){let r=e.threadShellById[t],i=e.sidebarThreadSummaryById[t];if(!r&&!i)return e;let a=!r||r.settledOverride===n.settledOverride&&r.settledAt===n.settledAt&&r.updatedAt===n.updatedAt,o=!i||i.settledOverride===n.settledOverride&&i.settledAt===n.settledAt&&i.updatedAt===n.updatedAt;return a&&o?e:{...e,...r?{threadShellById:{...e.threadShellById,[t]:{...r,...n}}}:{},...i?{sidebarThreadSummaryById:{...e.sidebarThreadSummaryById,[t]:{...i,...n}}}:{}}}function Gy(e,t){return{...e,text:t.streaming?`${e.text}${t.text}`:t.text.length>0?t.text:e.text,streaming:t.streaming,...t.turnId===void 0?{}:{turnId:t.turnId},...t.streaming?e.completedAt===void 0?{}:{completedAt:e.completedAt}:t.completedAt===void 0?{}:{completedAt:t.completedAt},...t.attachments===void 0?{}:{attachments:t.attachments}}}function Ky(e,t,n){let r=e.pendingMessagesByThreadId[t]??[],i=r.find(e=>e.id===n.id)?r.map(e=>e.id===n.id?Gy(e,n):e):[...r,n];return{...e,pendingMessagesByThreadId:{...e.pendingMessagesByThreadId,[t]:i}}}function qy(e,t,n,r){let i=e.turnDiffSummaryByThreadId[t],a=i?.[n];return!i||!a||a.assistantMessageId===r?e:{...e,turnDiffSummaryByThreadId:{...e.turnDiffSummaryByThreadId,[t]:{...i,[n]:{...a,assistantMessageId:r}}}}}function Jy(e,t,n){let r=$v(n,{id:t.payload.messageId,role:t.payload.role,text:t.payload.text,...t.payload.attachments===void 0?{}:{attachments:t.payload.attachments},...t.payload.dispatchMode===void 0?{}:{dispatchMode:t.payload.dispatchMode},turnId:t.payload.turnId,streaming:t.payload.streaming,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt}),i=t.payload.threadId;if(!e.threadShellById[i])return Ky(e,i,r);let a=e.messageIdsByThreadId[i]??qv,o=e.messageByThreadId[i]??{},s=e.pendingMessagesByThreadId[i]??[],c=s.find(e=>e.id===r.id),l=o[r.id]??c,u=l?Gy(l,r):r,d=a,f={...o,[r.id]:u},p=e.pendingMessagesByThreadId;if(!o[r.id]&&!a.includes(r.id)&&(d=[...a,r.id],d.length>Uv)){let e=d.slice(-2e3),t=new Set(e);f=Object.fromEntries(Object.entries(f).filter(([e])=>t.has(e))),d=e}if(c){let t=s.filter(e=>e.id!==r.id);if(t.length===0){let{[i]:t,...n}=e.pendingMessagesByThreadId;p=n}else p={...e.pendingMessagesByThreadId,[i]:t}}let m={...e,pendingMessagesByThreadId:p,messageIdsByThreadId:d===a?e.messageIdsByThreadId:{...e.messageIdsByThreadId,[i]:d},messageByThreadId:{...e.messageByThreadId,[i]:f}};if(t.payload.role===`assistant`&&t.payload.turnId!==null){m=qy(m,i,t.payload.turnId,t.payload.messageId);let e=m.threadTurnStateById[i],n=e?.latestTurn??null;if(n===null||n.turnId===t.payload.turnId){let r={latestTurn:Ly({previous:n,turnId:t.payload.turnId,state:t.payload.streaming?`running`:n?.state===`interrupted`?`interrupted`:n?.state===`error`?`error`:`completed`,requestedAt:n?.turnId===t.payload.turnId?n.requestedAt:t.payload.createdAt,startedAt:n?.turnId===t.payload.turnId?n.startedAt??t.payload.createdAt:t.payload.createdAt,sourceProposedPlan:e?.pendingSourceProposedPlan,completedAt:t.payload.streaming?n?.turnId===t.payload.turnId?n.completedAt??null:null:t.payload.updatedAt,assistantMessageId:t.payload.messageId}),...e?.pendingSourceProposedPlan?{pendingSourceProposedPlan:e.pendingSourceProposedPlan}:{}};_y(e,r)||(m={...m,threadTurnStateById:{...m.threadTurnStateById,[i]:r}})}}return Uy(m,i,t.occurredAt)}function Yy(e,t,n){let r=e.length>0?t[e[e.length-1]]:void 0;if(!r||Iy(r,n)<=0)return[...e,n.id];let i=[...e],a=i.findIndex(e=>{let r=t[e];return r?Iy(n,r)<0:!1});return a===-1?i.push(n.id):i.splice(a,0,n.id),i}function Xy(e,t){let n=t.payload.threadId;if(!e.threadShellById[n])return e;let r={...t.payload.activity},i=e.activityIdsByThreadId[n]??Jv,a=e.activityByThreadId[n]??{},o=a[r.id],s=o!==void 0&&(o.createdAt!==r.createdAt||o.sequence!==r.sequence),c=i,l={...a,[r.id]:r};if(o?s&&(c=Yy(i.filter(e=>e!==r.id),l,r)):c=Yy(i,a,r),c.length>Wv){let e=Sy(wv(c.flatMap(e=>{let t=l[e];return t?[t]:[]}),Wv));c=e.ids,l=e.byId}return Uy({...e,activityIdsByThreadId:c===i?e.activityIdsByThreadId:{...e.activityIdsByThreadId,[n]:c},activityByThreadId:{...e.activityByThreadId,[n]:l}},n,t.occurredAt)}function Zy(e){return{projectIds:e.map(e=>e.id),projectById:Object.fromEntries(e.map(e=>[e.id,e]))}}function Qy(e){let t={};for(let n of e)t[n.projectId]=[...t[n.projectId]??[],n.id];return{worktreeIds:e.map(e=>e.id),worktreeIdsByProjectId:t,worktreeById:Object.fromEntries(e.map(e=>[e.id,e]))}}function $y(e,t){return e.environmentStateById[t]??Vv}function eb(e,t,n){let r=e.environmentStateById[t]===n?e.environmentStateById:{...e.environmentStateById,[t]:n};return r===e.environmentStateById?e:{...e,environmentStateById:r}}function tb(e,t,n){let r=t.projects.map(e=>ry(e,n)),i=(t.worktrees??[]).map(e=>iy(e,n)),a=new Set(t.threads.map(e=>e.id)),o={...e,...Zy(r),...Qy(i),threadIds:[],threadIdsByProjectId:{},threadShellById:{},threadSessionById:{},threadTurnStateById:{},sidebarThreadSummaryById:{},messageIdsByThreadId:Ay(e.messageIdsByThreadId,a),messageByThreadId:Ay(e.messageByThreadId,a),pendingMessagesByThreadId:Ay(e.pendingMessagesByThreadId,a),activityIdsByThreadId:Ay(e.activityIdsByThreadId,a),activityByThreadId:Ay(e.activityByThreadId,a),proposedPlanIdsByThreadId:Ay(e.proposedPlanIdsByThreadId,a),proposedPlanByThreadId:Ay(e.proposedPlanByThreadId,a),turnDiffIdsByThreadId:Ay(e.turnDiffIdsByThreadId,a),turnDiffSummaryByThreadId:Ay(e.turnDiffSummaryByThreadId,a),threadHistoryByThreadId:Ay(e.threadHistoryByThreadId??{},a),threadHistoryLoadByThreadId:Ay(e.threadHistoryLoadByThreadId??{},a),bootstrapComplete:!0,hydratedFromCacheAt:void 0};for(let e of t.threads)o=ky(o,oy(e,n));return o}function nb(e,t,n){return eb(e,n,tb($y(e,n),t,n))}function rb(e,t,n){let r=$y(e,n),i=Bv(r,t.id);return eb(e,n,Oy(r,ay(t,n),i))}var ib={oldestCursor:null,newestCursor:null,hasMoreBefore:!1};function ab(e,t){let n=e?.[t.collection];return{messages:e?.messages??ib,proposedPlans:e?.proposedPlans??ib,activities:e?.activities??ib,checkpoints:e?.checkpoints??ib,[t.collection]:{oldestCursor:t.page.oldestCursor??n?.oldestCursor??null,newestCursor:n?.newestCursor??t.page.newestCursor,hasMoreBefore:t.page.hasMoreBefore}}}function ob(e,t,n,r){let i=e;if(t.collection===`messages`){let a={...e.messageByThreadId[n]};for(let e of t.items)a[e.id]=$v(r,e);let o=Object.values(a).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(-2e3).map(e=>e.id),s=new Set(o);i={...i,messageIdsByThreadId:{...i.messageIdsByThreadId,[n]:o},messageByThreadId:{...i.messageByThreadId,[n]:Object.fromEntries(Object.entries(a).filter(([e])=>s.has(e)))}}}else if(t.collection===`activities`){let r={...e.activityByThreadId[n]};for(let e of t.items)r[e.id]={...e};let a=Sy(wv(Object.values(r).toSorted(Iy),Wv));i={...i,activityIdsByThreadId:{...i.activityIdsByThreadId,[n]:a.ids},activityByThreadId:{...i.activityByThreadId,[n]:a.byId}}}else if(t.collection===`proposedPlans`){let r={...e.proposedPlanByThreadId[n]};for(let e of t.items)r[e.id]=ey(e);let a=Object.values(r).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(-200);i={...i,proposedPlanIdsByThreadId:{...i.proposedPlanIdsByThreadId,[n]:a.map(e=>e.id)},proposedPlanByThreadId:{...i.proposedPlanByThreadId,[n]:Object.fromEntries(a.map(e=>[e.id,e]))}}}else{let r={...e.turnDiffSummaryByThreadId[n]};for(let e of t.items)r[e.turnId]=ty(e);let a=Object.values(r).toSorted((e,t)=>(e.checkpointTurnCount??-1)-(t.checkpointTurnCount??-1)||e.turnId.localeCompare(t.turnId)).slice(-500);i={...i,turnDiffIdsByThreadId:{...i.turnDiffIdsByThreadId,[n]:a.map(e=>e.turnId)},turnDiffSummaryByThreadId:{...i.turnDiffSummaryByThreadId,[n]:Object.fromEntries(a.map(e=>[e.turnId,e]))}}}return{...i,threadHistoryByThreadId:{...i.threadHistoryByThreadId,[n]:ab(e.threadHistoryByThreadId?.[n],t)}}}function sb(e,t,n){let r=rb(e,t.thread,n),i=$y(r,n),{[t.thread.id]:a,...o}=i.threadHistoryLoadByThreadId??{};return eb(r,n,{...i,threadHistoryByThreadId:{...i.threadHistoryByThreadId,[t.thread.id]:t.history},threadHistoryLoadByThreadId:o})}function cb(e,t,n,r){return eb(e,r,ob($y(e,r),t,n,r))}function lb(e,t){let n=$y(e,t.environmentId);return eb(e,t.environmentId,{...n,threadHistoryLoadByThreadId:{...n.threadHistoryLoadByThreadId,[t.threadId]:{...n.threadHistoryLoadByThreadId?.[t.threadId],[t.collection]:t.loadState}}})}function ub(e,t,n){switch(t.type){case`project.created`:{let r=ry({id:t.payload.projectId,title:t.payload.title,workspaceRoot:t.payload.workspaceRoot,projectMetadataDir:t.payload.projectMetadataDir,repositoryIdentity:t.payload.repositoryIdentity??null,defaultModelSelection:t.payload.defaultModelSelection,scripts:t.payload.scripts,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt,deletedAt:null},n),i=e.projectIds.find(n=>n===t.payload.projectId||e.projectById[n]?.cwd===t.payload.workspaceRoot)??null,a=e.projectById,o=e.projectIds;if(i!==null&&i!==r.id){let{[i]:t,...n}=e.projectById;a={...n,[r.id]:r},o=e.projectIds.map(e=>e===i?r.id:e)}else a={...e.projectById,[r.id]:r},o=i===null&&!e.projectIds.includes(r.id)?[...e.projectIds,r.id]:e.projectIds;return{...e,projectById:a,projectIds:o}}case`project.meta-updated`:{let n=e.projectById[t.payload.projectId];if(!n)return e;let r={...n,...t.payload.title===void 0?{}:{name:t.payload.title},...t.payload.workspaceRoot===void 0?{}:{cwd:t.payload.workspaceRoot},...t.payload.projectMetadataDir===void 0?{}:{projectMetadataDir:t.payload.projectMetadataDir},...t.payload.repositoryIdentity===void 0?{}:{repositoryIdentity:t.payload.repositoryIdentity??null},...t.payload.defaultModelSelection===void 0?{}:{defaultModelSelection:t.payload.defaultModelSelection?Xv(t.payload.defaultModelSelection):null},...t.payload.scripts===void 0?{}:{scripts:Zv(t.payload.scripts)},...t.payload.preferredRemoteName===void 0?{}:{preferredRemoteName:t.payload.preferredRemoteName??null},updatedAt:t.payload.updatedAt};return{...e,projectById:{...e.projectById,[t.payload.projectId]:r}}}case`project.avatar-set`:{let n=e.projectById[t.payload.projectId];return n?{...e,projectById:{...e.projectById,[t.payload.projectId]:{...n,customAvatarContentHash:t.payload.contentHash??null,updatedAt:t.payload.updatedAt}}}:e}case`project.deleted`:{if(!e.projectById[t.payload.projectId])return e;let{[t.payload.projectId]:n,...r}=e.projectById;return{...e,projectById:r,projectIds:yy(e.projectIds,t.payload.projectId)}}case`thread.created`:{let r=Bv(e,t.payload.threadId);return Oy(e,ay({id:t.payload.threadId,projectId:t.payload.projectId,title:t.payload.title,modelSelection:t.payload.modelSelection,runtimeMode:t.payload.runtimeMode,interactionMode:t.payload.interactionMode,tokenMode:t.payload.tokenMode??`balanced`,branch:t.payload.branch,worktreePath:t.payload.worktreePath,worktreeId:null,manualStatusBucket:null,manualPosition:0,latestTurn:null,goal:null,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt,archivedAt:null,settledOverride:null,settledAt:null,deletedAt:null,messages:[],proposedPlans:[],activities:[],checkpoints:[],session:null},n),r)}case`thread.deleted`:return jy(e,t.payload.threadId);case`thread.archived`:return Z(e,t.payload.threadId,e=>({...e,archivedAt:t.payload.archivedAt,updatedAt:t.payload.updatedAt}));case`thread.unarchived`:return Z(e,t.payload.threadId,e=>({...e,archivedAt:null,updatedAt:t.payload.updatedAt}));case`thread.settled`:return Wy(e,t.payload.threadId,{settledOverride:`settled`,settledAt:t.payload.settledAt,updatedAt:t.payload.updatedAt});case`thread.unsettled`:return Wy(e,t.payload.threadId,{settledOverride:t.payload.reason===`user`?`active`:null,settledAt:null,updatedAt:t.payload.updatedAt});case`thread.meta-updated`:return Z(e,t.payload.threadId,e=>({...e,...t.payload.title===void 0?{}:{title:t.payload.title},...t.payload.modelSelection===void 0?{}:{modelSelection:Xv(t.payload.modelSelection)},...t.payload.branch===void 0?{}:{branch:t.payload.branch},...t.payload.worktreePath===void 0?{}:{worktreePath:t.payload.worktreePath},updatedAt:t.payload.updatedAt}));case`thread.runtime-mode-set`:return Z(e,t.payload.threadId,e=>({...e,runtimeMode:t.payload.runtimeMode,updatedAt:t.payload.updatedAt}));case`thread.interaction-mode-set`:return Z(e,t.payload.threadId,e=>({...e,interactionMode:t.payload.interactionMode,updatedAt:t.payload.updatedAt}));case`thread.token-mode-set`:return Z(e,t.payload.threadId,e=>({...e,tokenMode:t.payload.tokenMode??`balanced`,updatedAt:t.payload.updatedAt}));case`thread.goal-updated`:return Z(e,t.payload.threadId,e=>({...e,goal:t.payload.goal,updatedAt:t.payload.goal.updatedAt}));case`thread.goal-cleared`:return Z(e,t.payload.threadId,e=>({...e,goal:null,updatedAt:t.payload.updatedAt}));case`thread.turn-start-requested`:return Z(e,t.payload.threadId,e=>({...e,...t.payload.modelSelection===void 0?{}:{modelSelection:Xv(t.payload.modelSelection)},runtimeMode:t.payload.runtimeMode,interactionMode:t.payload.interactionMode,tokenMode:t.payload.tokenMode,pendingSourceProposedPlan:t.payload.sourceProposedPlan,updatedAt:t.occurredAt}));case`thread.turn-interrupt-requested`:return t.payload.turnId===void 0?e:Z(e,t.payload.threadId,e=>{let n=e.latestTurn;return n===null||n.turnId!==t.payload.turnId?e:{...e,latestTurn:Ly({previous:n,turnId:t.payload.turnId,state:`interrupted`,requestedAt:n.requestedAt,startedAt:n.startedAt??t.payload.createdAt,completedAt:n.completedAt??t.payload.createdAt,assistantMessageId:n.assistantMessageId}),updatedAt:t.occurredAt}});case`thread.message-sent`:return Jy(e,t,n);case`thread.session-set`:return Z(e,t.payload.threadId,e=>({...e,session:Qv(t.payload.session),error:wr(t.payload.session.lastError),latestTurn:t.payload.session.status===`running`&&t.payload.session.activeTurnId!==null?Ly({previous:e.latestTurn,turnId:t.payload.session.activeTurnId,state:`running`,requestedAt:e.latestTurn?.turnId===t.payload.session.activeTurnId?e.latestTurn.requestedAt:t.payload.session.updatedAt,startedAt:e.latestTurn?.turnId===t.payload.session.activeTurnId?e.latestTurn.startedAt??t.payload.session.updatedAt:t.payload.session.updatedAt,completedAt:null,assistantMessageId:e.latestTurn?.turnId===t.payload.session.activeTurnId?e.latestTurn.assistantMessageId:null,sourceProposedPlan:e.pendingSourceProposedPlan}):e.latestTurn,updatedAt:t.occurredAt}));case`thread.session-stop-requested`:return Z(e,t.payload.threadId,e=>e.session===null?e:{...e,session:{...e.session,status:`closed`,orchestrationStatus:`stopped`,activeTurnId:void 0,updatedAt:t.payload.createdAt},updatedAt:t.occurredAt});case`thread.proposed-plan-upserted`:return Z(e,t.payload.threadId,e=>{let n=ey(t.payload.proposedPlan),r=[...e.proposedPlans.filter(e=>e.id!==n.id),n].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(-200);return{...e,proposedPlans:r,updatedAt:t.occurredAt}});case`thread.turn-diff-completed`:return Z(e,t.payload.threadId,e=>{let n=ty({turnId:t.payload.turnId,checkpointTurnCount:t.payload.checkpointTurnCount,checkpointRef:t.payload.checkpointRef,status:t.payload.status,files:t.payload.files,assistantMessageId:t.payload.assistantMessageId,completedAt:t.payload.completedAt}),r=e.turnDiffSummaries.find(e=>e.turnId===n.turnId);if(r&&r.status!==`missing`&&n.status===`missing`)return e;let i=[...e.turnDiffSummaries.filter(e=>e.turnId!==n.turnId),n].toSorted((e,t)=>(e.checkpointTurnCount??2**53-1)-(t.checkpointTurnCount??2**53-1)).slice(-500),a=e.latestTurn===null||e.latestTurn.turnId===t.payload.turnId?Ly({previous:e.latestTurn,turnId:t.payload.turnId,state:Fy(t.payload.status),requestedAt:e.latestTurn?.requestedAt??t.payload.completedAt,startedAt:e.latestTurn?.startedAt??t.payload.completedAt,completedAt:t.payload.completedAt,assistantMessageId:t.payload.assistantMessageId,sourceProposedPlan:e.pendingSourceProposedPlan}):e.latestTurn;return{...e,turnDiffSummaries:i,latestTurn:a,updatedAt:t.occurredAt}});case`thread.reverted`:return Z(e,t.payload.threadId,e=>{let n=e.turnDiffSummaries.filter(e=>e.checkpointTurnCount!==void 0&&e.checkpointTurnCount<=t.payload.turnCount).toSorted((e,t)=>(e.checkpointTurnCount??2**53-1)-(t.checkpointTurnCount??2**53-1)).slice(-500),r=new Set(n.map(e=>e.turnId)),i=Ry(e.messages,r,t.payload.turnCount).slice(-2e3),a=By(e.proposedPlans,r).slice(-200),o=zy(e.activities,r),s=n.at(-1)??null;return{...e,turnDiffSummaries:n,messages:i,proposedPlans:a,activities:o,pendingSourceProposedPlan:void 0,latestTurn:s===null?null:{turnId:s.turnId,state:Fy(s.status??`ready`),requestedAt:s.completedAt,startedAt:s.completedAt,completedAt:s.completedAt,assistantMessageId:s.assistantMessageId??null},updatedAt:t.occurredAt}});case`thread.activity-appended`:return Xy(e,t);case`worktree.created`:return Ny(e,iy({worktreeId:t.payload.worktreeId,projectId:t.payload.projectId,title:null,branch:t.payload.branch,worktreePath:t.payload.worktreePath,origin:t.payload.origin,prNumber:t.payload.prNumber,issueNumber:t.payload.issueNumber,prTitle:t.payload.prTitle,issueTitle:t.payload.issueTitle,prState:null,prIsDraft:null,issueState:null,workItemProvider:t.payload.workItemProvider??null,workItemKey:t.payload.workItemKey??null,workItemTitle:t.payload.workItemTitle??null,workItemState:t.payload.workItemState??null,workItemStateName:t.payload.workItemStateName??null,workItemUrl:t.payload.workItemUrl??null,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt,archivedAt:null,manualPosition:0},n));case`worktree.archived`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Ny(e,{...n,archivedAt:t.payload.archivedAt,updatedAt:t.payload.archivedAt}):e}case`worktree.metaUpdated`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Ny(e,{...n,...t.payload.title===void 0?{}:{title:t.payload.title},...t.payload.branch===void 0?{}:{branch:t.payload.branch},updatedAt:t.payload.changedAt}):e}case`worktree.sourceControlStateUpdated`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Ny(e,{...n,...t.payload.prNumber===void 0?{}:{prNumber:t.payload.prNumber},...t.payload.prTitle===void 0?{}:{prTitle:t.payload.prTitle},prState:t.payload.prState,prIsDraft:t.payload.prIsDraft,issueState:t.payload.issueState,updatedAt:t.payload.updatedAt}):e}case`worktree.restored`:{let n=e.worktreeById?.[t.payload.worktreeId];return n?Ny(e,{...n,archivedAt:null,updatedAt:t.payload.restoredAt}):e}case`worktree.deleted`:return Py(e,t.payload.worktreeId);case`thread.attachedToWorktree`:return Z(e,t.payload.threadId,e=>({...e,worktreeId:t.payload.worktreeId,updatedAt:t.payload.attachedAt}));case`thread.statusBucketOverridden`:return Z(e,t.payload.threadId,e=>({...e,manualStatusBucket:t.payload.bucket,updatedAt:t.payload.changedAt}));case`thread.approval-response-requested`:case`thread.user-input-response-requested`:return e}return e}function db(e,t,n){switch(t.kind){case`project-upserted`:{let r=ry(t.project,n),i=e.projectIds.find(n=>n===t.project.id||e.projectById[n]?.cwd===t.project.workspaceRoot)??null,a=e.projectById,o=e.projectIds;if(i!==null&&i!==r.id){let{[i]:t,...n}=e.projectById;a={...n,[r.id]:r},o=e.projectIds.map(e=>e===i?r.id:e)}else a={...e.projectById,[r.id]:r},o=i===null&&!e.projectIds.includes(r.id)?[...e.projectIds,r.id]:e.projectIds;return{...e,projectById:a,projectIds:o}}case`project-removed`:{if(!e.projectById[t.projectId])return e;let{[t.projectId]:n,...r}=e.projectById;return{...e,projectById:r,projectIds:yy(e.projectIds,t.projectId)}}case`thread-upserted`:return ky(e,oy(t.thread,n));case`worktree-upserted`:return Ny(e,iy(t.worktree,n));case`thread-removed`:return jy(e,t.threadId);case`worktree-removed`:return Py(e,t.worktreeId)}}function fb(e,t,n){if(t.length===0)return e;let r=vv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=$y(e,n),s=eb(e,n,t.reduce((e,t)=>ub(e,t,n),o));return i&&r.observability.recordPerformance(`web.store.orchestration.events.apply`,t,{count:t.length,durationMs:r.clock.now()-a}),s}function pb(e){return Object.entries(e.environmentStateById)}function mb(e,t){return t?$y(e,t):Vv}function hb(e,t){return Ey(mb(e,t))}function gb(e){return pb(e).flatMap(([,e])=>Ty(e))}function _b(e){return pb(e).flatMap(([,e])=>Ey(e))}function vb(e){return pb(e).flatMap(([,e])=>e.threadIds.flatMap(t=>{let n=e.threadShellById[t];return n?[n]:[]}))}function yb(e){return pb(e).flatMap(([e,t])=>t.threadIds.flatMap(n=>{let r=t.sidebarThreadSummaryById[n];return r&&r.environmentId===e?[r]:[]}))}function bb(e){return pb(e).flatMap(([e,t])=>(t.worktreeIds??Kv).flatMap(n=>{let r=t.worktreeById?.[n];return r&&r.environmentId===e?[r]:[]}))}function xb(e,t){if(!t)return[];let n=mb(e,t.environmentId);return(n.worktreeIdsByProjectId?.[t.projectId]??[]).flatMap(e=>{let t=n.worktreeById?.[e];return t?[t]:[]})}function Sb(e,t){return t.length===0?[]:t.length===1?xb(e,t[0]):t.flatMap(t=>xb(e,t))}function Cb(e,t){if(!t)return[];let n=mb(e,t.environmentId);return(n.threadIdsByProjectId[t.projectId]??Gv).flatMap(e=>{let t=n.sidebarThreadSummaryById[e];return t?[t]:[]})}function wb(e,t){return t.length===0?[]:t.length===1?Cb(e,t[0]):t.flatMap(t=>Cb(e,t))}function Tb(e,t){return t?mb(e,t.environmentId).projectById[t.projectId]:void 0}function Eb(e,t){return t?Bv(mb(e,t.environmentId),t.threadId):void 0}function Db(e,t){return t?mb(e,t.environmentId).threadShellById[t.threadId]!==void 0:!1}function Ob(e,t){return t?mb(e,t.environmentId).sidebarThreadSummaryById[t.threadId]:void 0}function kb(e,t,n){let r=Z($y(e,t.environmentId),t.threadId,e=>e.error===n?e:{...e,error:n});return eb(e,t.environmentId,r)}function Ab(e,t,n){let r=vv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=eb(e,n,ub($y(e,n),t,n));return i&&r.observability.recordPerformance(`web.store.orchestration.event.apply`,t,{durationMs:r.clock.now()-a}),o}function jb(e,t,n){let r=vv(),i=r.observability.performanceEnabled(),a=i?r.clock.now():0,o=eb(e,n,db($y(e,n),t,n));return i&&r.observability.recordPerformance(`web.store.orchestration.shell.apply`,t,{durationMs:r.clock.now()-a}),o}function Mb(e,t){return e.activeEnvironmentId===t?e:{...e,activeEnvironmentId:t}}function Nb(e,t){if(!e.environmentStateById[t]&&e.activeEnvironmentId!==t)return e;let{[t]:n,...r}=e.environmentStateById;return{...e,activeEnvironmentId:e.activeEnvironmentId===t?null:e.activeEnvironmentId,environmentStateById:r}}function Pb(e,t,n){if(e.environmentStateById[n])return e;let r={...Vv,...Zy(t.projects.filter(e=>e.environmentId===n)),...Qy(t.worktrees.filter(e=>e.environmentId===n)),hydratedFromCacheAt:t.capturedAt};for(let e of t.threads)e.shell.environmentId===n&&e.summary.environmentId===n&&(r=ky(r,{shell:e.shell,session:null,turnState:{latestTurn:e.summary.latestTurn,pendingSourceProposedPlan:e.summary.latestTurn?.sourceProposedPlan},summary:{...e.summary,modelSelection:e.summary.modelSelection??e.shell.modelSelection,session:null,backgroundLiveness:null}}));return eb(e,n,r)}function Fb(e,t,n){let r=e.environmentStateById[t];if(!r)return e;let i=Object.fromEntries(Object.keys(r.threadSessionById).map(e=>[e,null])),a=Object.fromEntries(Object.entries(r.sidebarThreadSummaryById).map(([e,t])=>[e,{...t,session:null,backgroundLiveness:null}]));return eb(e,t,{...r,threadSessionById:i,sidebarThreadSummaryById:a,bootstrapComplete:!1,hydratedFromCacheAt:n})}function Ib(e,t,n,r){let i=Z($y(e,t.environmentId),t.threadId,e=>{if(e.branch===n&&e.worktreePath===r)return e;let t=e.worktreePath!==r;return{...e,branch:n,worktreePath:r,...t?{session:null}:{}}});return eb(e,t.environmentId,i)}function Lb(e,t,n,r,i){let a=$y(e,t),o=a.worktreeById?.[n];return o?eb(e,t,Ny(a,{...o,title:r,updatedAt:i})):e}var Rb=8;function zb(e){let t=e.now??(()=>vv().clock.now()),n=e.schedule??(e=>vv().frameScheduler.scheduleFrame(e)),r=e.thresholdEventsPerMs??10,i=e.rateWindowMs??Rb,a=[],o=[],s=!1;function c(){if(o.length<2)return!1;let e=o[o.length-1]-o[0];return(e<=0?1/0:o.length/e)>r}function l(){if(s=!1,a.length===0)return;let t=a;a=[];let n=e.getState();for(let e of t)n=jb(n,e.event,e.environmentId);e.commitState(n)}function u(e,r){let u=t();o.push(u);let d=u-i;for(;o.length>0&&o[0]<d;)o.shift();if(a.push({event:e,environmentId:r}),c()){s||(s=!0,n(l));return}l()}return{enqueue:u,flush:l,hasPending:()=>a.length>0}}var Q=c((e,t)=>{let n=zb({getState:t,commitState:t=>e(t)});return{...Hv,setActiveEnvironmentId:t=>{n.flush(),e(e=>Mb(e,t))},removeEnvironmentState:t=>{n.flush(),e(e=>Nb(e,t))},hydrateEnvironmentStateFromCache:(t,r)=>{n.flush(),e(e=>Pb(e,t,r))},demoteEnvironmentStateToCachedSnapshot:(t,r)=>{n.flush(),e(e=>Fb(e,t,r))},syncServerShellSnapshot:(t,r)=>{n.flush(),e(e=>nb(e,t,r))},syncServerThreadDetail:(t,r)=>{n.flush(),e(e=>rb(e,t,r))},syncServerThreadWindow:(t,r)=>{n.flush(),e(e=>sb(e,t,r))},syncServerThreadHistoryPage:(t,r,i)=>{n.flush(),e(e=>cb(e,t,r,i))},setServerThreadHistoryLoadState:t=>{n.flush(),e(e=>lb(e,t))},applyOrchestrationEvent:(t,r)=>{n.flush(),e(e=>Ab(e,t,r))},applyOrchestrationEvents:(t,r)=>{n.flush(),e(e=>fb(e,t,r))},applyShellEvent:(e,t)=>n.enqueue(e,t),removeThread:t=>{n.flush(),e(e=>My(e,t))},setThreadError:(t,r)=>{n.flush(),e(e=>kb(e,t,r))},setThreadBranch:(t,r,i)=>{n.flush(),e(e=>Ib(e,t,r,i))},setSidebarWorktreeTitle:(t,r,i,a)=>{n.flush(),e(e=>Lb(e,t,r,i,a))}}});function Bb(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Vb(e){if(e.latestUserMessageAt)return Bb(e.latestUserMessageAt)??-1/0;let t=null;for(let n of e.messages??[]){if(n.role!==`user`)continue;let e=Bb(n.createdAt);e!==null&&(t=t===null?e:Math.max(t,e))}return t===null?Bb(e.updatedAt??e.createdAt)??-1/0:t}function Hb(e,t){return t===`created_at`?Bb(e.createdAt)??-1/0:Vb(e)}function Ub(e,t){return e.toSorted((e,n)=>{let r=Hb(n,t),i=Hb(e,t),a=r===i?0:r>i?1:-1;return a===0?n.id.localeCompare(e.id):a})}function Wb(e,t,n){return Ub(e.filter(e=>e.projectId===t&&e.archivedAt===null),n)[0]??null}function Gb(e){return t=>e?mb(t,e.environmentId).projectById[e.projectId]:void 0}function Kb(e){let t,n,r;return i=>{let a=e(i);if(!a)return;let o=mb(i,a.environmentId);return r&&t===o&&n===a.threadId?r:(t=o,n=a.threadId,r=Bv(o,a.threadId),r)}}function qb(e){return Kb(()=>e)}function Jb(e){return Kb(t=>{if(e){for(let[n,r]of Object.entries(t.environmentStateById))if(r.threadShellById[e])return{environmentId:n,threadId:e}}})}var Yb=(e,t,n)=>t||(n?{id:e,createdAt:n.createdAt,updatedAt:n.updatedAt,latestUserMessageAt:null}:null);function Xb(e,t){let n,r,i,a,o,s=null;return c=>{if(!e)return n=void 0,r=void 0,i=void 0,o=null,s=null,null;let l=mb(c,e);if(n===l.threadIds&&r===l.sidebarThreadSummaryById&&i===l.threadShellById&&a===t)return s;let u=Ub(l.threadIds.flatMap(e=>{let t=Yb(e,l.sidebarThreadSummaryById[e],l.threadShellById[e]);return t?[t]:[]}),t)[0]?.id??null;return n=l.threadIds,r=l.sidebarThreadSummaryById,i=l.threadShellById,a=t,o!==u&&(o=u,s=u?{environmentId:e,threadId:u}:null),s}}gv(()=>{_v({clock:{now:()=>Hu.now()},frameScheduler:{scheduleFrame:e=>Uu.scheduleFrame(e)},observability:kd,isHostedHubMode:()=>l(),resolveAttachmentPreviewUrl:({environmentId:e,attachmentId:t})=>jg({environmentId:e,pathname:`/attachments/${encodeURIComponent(t)}`})})});function Zb(e){switch(e.type){case`activity`:return e.hasRunningSubprocess;case`started`:case`restarted`:case`exited`:return!1;default:return null}}function Qb(e){let t=new Set,n=new Map(e.snapshotThreads.map(e=>[e.key,e]));for(let n of e.snapshotThreads)n.deletedAt===null&&n.archivedAt===null&&t.add(n.key);for(let r of e.draftThreadKeys){let e=n.get(r);e&&(e.deletedAt!==null||e.archivedAt!==null)||t.add(r)}return t}var $b={enabled:()=>!1,now:()=>0,record:()=>void 0};function ex(){let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,n)=>{e.set(t,n)},removeItem:t=>{e.delete(t)}}}var tx=`ryco:terminal-state:v1`,nx=[],rx=200;function ix(e,t){return t===1&&e&&typeof e==`object`?{terminalStateByThreadKey:Object.fromEntries(Object.entries(e.terminalStateByThreadKey??{}).filter(([e])=>s(e)))}:{terminalStateByThreadKey:{}}}function ax(e){let t=[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))];return t.length>0?t:[vi]}function ox(e,t){if(e.length===0)return[];let n=new Set(t);return[...new Set(e)].map(e=>e.trim()).filter(e=>e.length>0&&n.has(e))}function sx(e){return`group-${e}`}function cx(e,t){let n=e,r=2;for(;t.has(n);)n=`${e}-${r}`,r+=1;return t.add(n),n}function lx(e,t){return e.findIndex(e=>e.terminalIds.includes(t))}function ux(e){return[...new Set(e.map(e=>e.trim()).filter(e=>e.length>0))]}function dx(e,t){let n=new Set(t),r=new Set,i=[],a=new Set;for(let t of e){let e=ux(t.terminalIds).filter(e=>!(!n.has(e)||r.has(e)));if(e.length===0)continue;for(let t of e)r.add(t);let o=t.id.trim().length>0?t.id.trim():sx(e[0]??`default`);i.push({id:cx(o,a),terminalIds:e})}for(let e of t)r.has(e)||i.push({id:cx(sx(e),a),terminalIds:[e]});return i.length===0?[{id:sx(vi),terminalIds:[vi]}]:i}function fx(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function px(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(!r||!i||r.id!==i.id||!fx(r.terminalIds,i.terminalIds))return!1}return!0}function mx(e,t){return e.terminalOpen===t.terminalOpen&&e.terminalHeight===t.terminalHeight&&e.activeTerminalId===t.activeTerminalId&&e.activeTerminalGroupId===t.activeTerminalGroupId&&fx(e.terminalIds,t.terminalIds)&&fx(e.runningTerminalIds,t.runningTerminalIds)&&px(e.terminalGroups,t.terminalGroups)}var hx=Object.freeze({terminalOpen:!1,terminalHeight:280,terminalIds:[vi],runningTerminalIds:[],activeTerminalId:vi,terminalGroups:[{id:sx(vi),terminalIds:[vi]}],activeTerminalGroupId:sx(vi)});function gx(){return{...hx,terminalIds:[...hx.terminalIds],runningTerminalIds:[...hx.runningTerminalIds],terminalGroups:Cx(hx.terminalGroups)}}function _x(){return hx}function vx(e){let t=ax(e.terminalIds),n=t.length>0?t:[vi],r=ox(e.runningTerminalIds,n),i=n.includes(e.activeTerminalId)?e.activeTerminalId:n[0]??`default`,a=dx(e.terminalGroups,n),o=a.some(t=>t.id===e.activeTerminalGroupId)?e.activeTerminalGroupId:null,s=a.find(e=>e.terminalIds.includes(i))?.id??null,c={terminalOpen:e.terminalOpen,terminalHeight:Number.isFinite(e.terminalHeight)&&e.terminalHeight>0?e.terminalHeight:280,terminalIds:n,runningTerminalIds:r,activeTerminalId:i,terminalGroups:a,activeTerminalGroupId:o??s??a[0]?.id??sx(`default`)};return mx(e,c)?e:c}function yx(e){return mx(vx(e),hx)}function bx(e){return e.trim().length>0}function xx(e){return p(e)}function Sx(e,t){return`${xx(e)}\u0000${t}`}function Cx(e){return e.map(e=>({id:e.id,terminalIds:[...e.terminalIds]}))}function wx(e,t,n,r){let i=Sx(n,r.terminalId),a=e[i]??nx,o={id:t,event:r},s=a.length>=rx?[...a.slice(1),o]:[...a,o];return{terminalEventEntriesByKey:{...e,[i]:s},nextTerminalEventId:t+1}}function Tx(e){return{cwd:e.snapshot.cwd,worktreePath:e.snapshot.worktreePath}}function Ex(e,t,n){let r=vx(e);if(!bx(t))return r;let i=!r.terminalIds.includes(t),a=i?[...r.terminalIds,t]:r.terminalIds,o=Cx(r.terminalGroups),s=lx(o,t);if(s>=0&&(o[s].terminalIds=o[s].terminalIds.filter(e=>e!==t),o[s].terminalIds.length===0&&o.splice(s,1)),n===`new`){let e=new Set(o.map(e=>e.id)),n=cx(sx(t),e);return o.push({id:n,terminalIds:[t]}),vx({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:n})}let c=o.findIndex(e=>e.id===r.activeTerminalGroupId);if(c<0&&(c=lx(o,r.activeTerminalId)),c<0){let e=new Set(o.map(e=>e.id)),t=cx(sx(r.activeTerminalId),e);o.push({id:t,terminalIds:[r.activeTerminalId]}),c=o.length-1}let l=o[c];if(!l||i&&!l.terminalIds.includes(t)&&l.terminalIds.length>=4)return r;if(!l.terminalIds.includes(t)){let e=l.terminalIds.indexOf(r.activeTerminalId);e>=0?l.terminalIds.splice(e+1,0,t):l.terminalIds.push(t)}return vx({...r,terminalOpen:!0,terminalIds:a,activeTerminalId:t,terminalGroups:o,activeTerminalGroupId:l.id})}function Dx(e,t){let n=vx(e);return n.terminalOpen===t?n:{...n,terminalOpen:t}}function Ox(e,t){let n=vx(e);return!Number.isFinite(t)||t<=0||n.terminalHeight===t?n:{...n,terminalHeight:t}}function kx(e,t){return Ex(e,t,`split`)}function Ax(e,t){return Ex(e,t,`new`)}function jx(e,t){let n=vx(e);if(!n.terminalIds.includes(t))return n;let r=n.terminalGroups.find(e=>e.terminalIds.includes(t))?.id??n.activeTerminalGroupId;return n.activeTerminalId===t&&n.activeTerminalGroupId===r?n:{...n,activeTerminalId:t,activeTerminalGroupId:r}}function Mx(e,t){let n=vx(e);if(!n.terminalIds.includes(t))return n;let r=n.terminalIds.filter(e=>e!==t);if(r.length===0)return gx();let i=n.terminalIds.indexOf(t),a=n.activeTerminalId===t?r[Math.min(i,r.length-1)]??r[0]??`default`:n.activeTerminalId,o=n.terminalGroups.map(e=>({...e,terminalIds:e.terminalIds.filter(e=>e!==t)})).filter(e=>e.terminalIds.length>0),s=o.find(e=>e.terminalIds.includes(a))?.id??o[0]?.id??sx(a);return vx({terminalOpen:n.terminalOpen,terminalHeight:n.terminalHeight,terminalIds:r,runningTerminalIds:n.runningTerminalIds.filter(e=>e!==t),activeTerminalId:a,terminalGroups:o,activeTerminalGroupId:s})}function Nx(e,t,n){let r=vx(e);if(!r.terminalIds.includes(t)||n===r.runningTerminalIds.includes(t))return r;let i=new Set(r.runningTerminalIds);return n?i.add(t):i.delete(t),{...r,runningTerminalIds:[...i]}}function Px(e,t){return!t||t.threadId.length===0?_x():e[xx(t)]??_x()}function Fx(e,t,n){if(t.threadId.length===0)return e;let r=xx(t),i=Px(e,t),a=n(i);if(a===i)return e;if(yx(a)){if(e[r]===void 0)return e;let{[r]:t,...n}=e;return n}return{...e,[r]:a}}function Ix(e,t,n){return!t||t.threadId.length===0||n.trim().length===0?nx:e[Sx(t,n)]??nx}function Lx(e){let t=e?.storage??ex(),n=e?.observability??$b;return c()(Ci(e=>{let t=(t,n)=>{e(e=>{let r=Fx(e.terminalStateByThreadKey,t,n);return r===e.terminalStateByThreadKey?e:{terminalStateByThreadKey:r}})};return{terminalStateByThreadKey:{},terminalLaunchContextByThreadKey:{},terminalEventEntriesByKey:{},nextTerminalEventId:1,setTerminalOpen:(e,n)=>t(e,e=>Dx(e,n)),setTerminalHeight:(e,n)=>t(e,e=>Ox(e,n)),splitTerminal:(e,n)=>t(e,e=>kx(e,n)),newTerminal:(e,n)=>t(e,e=>Ax(e,n)),ensureTerminal:(e,n,r)=>t(e,e=>{let t=e;return e.terminalIds.includes(n)||(t=Ax(t,n)),r?.active===!1&&(t={...t,activeTerminalId:e.activeTerminalId,activeTerminalGroupId:e.activeTerminalGroupId}),(r?.active??!0)&&(t=jx(t,n)),r?.open&&(t=Dx(t,!0)),vx(t)}),setActiveTerminal:(e,n)=>t(e,e=>jx(e,n)),closeTerminal:(e,n)=>t(e,e=>Mx(e,n)),setTerminalLaunchContext:(t,n)=>e(e=>({terminalLaunchContextByThreadKey:{...e.terminalLaunchContextByThreadKey,[xx(t)]:n}})),clearTerminalLaunchContext:t=>e(e=>{let n=xx(t);if(!e.terminalLaunchContextByThreadKey[n])return e;let{[n]:r,...i}=e.terminalLaunchContextByThreadKey;return{terminalLaunchContextByThreadKey:i}}),setTerminalActivity:(e,n,r)=>t(e,e=>Nx(e,n,r)),recordTerminalEvent:(t,r)=>{let i=n.enabled(),a=i?n.now():0;e(e=>wx(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,r)),i&&n.record(`web.terminal.store.events.record`,r,n.now()-a)},applyTerminalEvent:(t,r)=>{let i=n.enabled(),a=i?n.now():0;e(e=>{let n=xx(t),i=e.terminalStateByThreadKey,a=e.terminalLaunchContextByThreadKey;(r.type===`started`||r.type===`restarted`)&&(i=Fx(i,t,e=>{let t=e;return e.terminalIds.includes(r.terminalId)||(t=Ax(t,r.terminalId)),t=jx(t,r.terminalId),t=Dx(t,!0),vx(t)}),a={...a,[n]:Tx(r)});let o=Zb(r);o!==null&&(i=Fx(i,t,e=>Nx(e,r.terminalId,o)));let s=wx(e.terminalEventEntriesByKey,e.nextTerminalEventId,t,r);return{terminalStateByThreadKey:i,terminalLaunchContextByThreadKey:a,...s}}),i&&n.record(`web.terminal.store.events.apply`,r,n.now()-a)},clearTerminalState:t=>e(e=>{let n=xx(t),r=Fx(e.terminalStateByThreadKey,t,()=>gx()),i=e.terminalLaunchContextByThreadKey[n]!==void 0,{[n]:a,...o}=e.terminalLaunchContextByThreadKey,s={...e.terminalEventEntriesByKey},c=!1;for(let e of Object.keys(s))e.startsWith(`${n}\u0000`)&&(delete s[e],c=!0);return r===e.terminalStateByThreadKey&&!i&&!c?e:{terminalStateByThreadKey:r,terminalLaunchContextByThreadKey:o,terminalEventEntriesByKey:s}}),removeTerminalState:t=>e(e=>{let n=xx(t),r=e.terminalStateByThreadKey[n]!==void 0,i=e.terminalLaunchContextByThreadKey[n]!==void 0,a={...e.terminalEventEntriesByKey},o=!1;for(let e of Object.keys(a))e.startsWith(`${n}\u0000`)&&(delete a[e],o=!0);if(!r&&!i&&!o)return e;let s={...e.terminalStateByThreadKey};delete s[n];let c={...e.terminalLaunchContextByThreadKey};return delete c[n],{terminalStateByThreadKey:s,terminalLaunchContextByThreadKey:c,terminalEventEntriesByKey:a}}),removeOrphanedTerminalStates:t=>e(e=>{let n=Object.keys(e.terminalStateByThreadKey).filter(e=>!t.has(e)),r=Object.keys(e.terminalLaunchContextByThreadKey).filter(e=>!t.has(e)),i={...e.terminalEventEntriesByKey},a=!1;for(let e of Object.keys(i)){let[n]=e.split(`\0`);n&&!t.has(n)&&(delete i[e],a=!0)}if(n.length===0&&r.length===0&&!a)return e;let o={...e.terminalStateByThreadKey};for(let e of n)delete o[e];let s={...e.terminalLaunchContextByThreadKey};for(let e of r)delete s[e];return{terminalStateByThreadKey:o,terminalLaunchContextByThreadKey:s,terminalEventEntriesByKey:i}})}},{name:tx,version:2,storage:xi(()=>t),migrate:ix,partialize:e=>({terminalStateByThreadKey:e.terminalStateByThreadKey})}))}var Rx=_i(typeof window<`u`&&!l()?window.localStorage:void 0),zx=Lx({storage:{getItem:e=>Rx.getItem(e),setItem:(e,t)=>{Rx.setItem(e,t)},removeItem:e=>{Rx.removeItem(e)}},observability:{enabled:ji,now:Mi,record:(e,t,n)=>Ai(e,t,{durationMs:n})}}),Bx=class extends or{constructor(e,t){super(e,{observability:kd,socket:Eh},t)}},Vx=class extends cr{constructor(e,t){super(e,{observability:kd,socket:Eh},t)}},Hx=class extends Jr{constructor(e,t){super(e,{observability:kd,socket:Eh},t)}},Ux=`ryco:version-mismatch-dismissals:v1`,Wx=sn({keys:jt(It)});function Gx(e){let t=e?.trim();return t&&t.length>0?t:null}function Kx(e){let t=Gx(ki),n=Gx(e);return!t||!n||t===n?null:{clientVersion:t,serverVersion:n,hint:`Version mismatch. Try syncing the client and server to the same Ryco version.`}}function qx(e){return Kx(e?.environment.serverVersion)}function Jx(e,t){return`${e}:${t.clientVersion}:${t.serverVersion}`}function Yx(){try{return gi(`ryco:version-mismatch-dismissals:v1`,Wx)??{keys:[]}}catch{return{keys:[]}}}function Xx(e){try{wi(Ux,e,Wx)}catch{}}function Zx(e){return e?Yx().keys.includes(e):!1}function Qx(e){if(!e)return;let t=Yx();t.keys.includes(e)||Xx({keys:[...t.keys,e]})}function $x(e,t){let n=Gx(e);return n?t?`${n} Hint: ${t.hint}`:n:t?.hint??null}var eS=`ryco:startup:`;function tS(){return typeof performance<`u`&&typeof performance.mark==`function`}function nS(e){return`${eS}${e}`}function rS(e){if(tS())try{performance.mark(nS(e))}catch{}}function iS(e,t,n){if(!(!tS()||typeof performance.measure!=`function`))try{performance.measure(`${eS}${e}`,{start:nS(t),end:nS(n)})}catch{}}var aS=new Map,oS=new Map;function sS(e,t){let n=aS.get(e.hubOrigin);n===void 0&&t&&(n=new Map,aS.set(e.hubOrigin,n));let r=n?.get(e.accountId);return r===void 0&&t&&n!==void 0&&(r=new Set,n.set(e.accountId,r)),r}function cS(e,t){let n=oS.get(e.hubOrigin);n===void 0&&t&&(n=new Map,oS.set(e.hubOrigin,n));let r=n?.get(e.accountId);return r===void 0&&t&&n!==void 0&&(r=new Map,n.set(e.accountId,r)),r}function lS(e){sS(e,!0)?.add(e.nodeId)}function uS(e){return sS(e,!1)?.has(e.nodeId)??!1}function dS(e){return cS(e,!1)?.get(e.nodeId)}function fS(e,t){let n=cS(e,!0),r=n?.get(e.nodeId);(r===void 0||t>r)&&n?.set(e.nodeId,t)}function pS(){aS.clear(),oS.clear()}var mS=Object.freeze({status:`unavailable`,verificationCode:null}),hS=mS,gS=new Set,_S=[];function vS(e){if(e.status!==hS.status||e.verificationCode!==hS.verificationCode){hS=e;for(let e of gS)e()}}function yS(){return hS}function bS(e){return gS.add(e),()=>void gS.delete(e)}function xS(){_S=[..._S,`e2ee_policy_generation_regressed`].slice(-8);for(let e of gS)e()}function SS(){if(_S.length!==0){_S=[];for(let e of gS)e()}}function CS(){vS({status:`negotiating`,verificationCode:null})}function wS(e){vS({status:e===`e2ee`?`web-unsigned`:`legacy`,verificationCode:e===`e2ee`?hS.verificationCode:null})}function TS(e){hS.status!==`unavailable`&&hS.status!==`legacy`&&vS({status:hS.status,verificationCode:e})}function ES(){vS(mS)}var DS=[1];function OS(){let e=globalThis;return e.isSecureContext===!0&&typeof e.crypto?.getRandomValues==`function`}var kS=OS(),AS=null;function jS(){let e=globalThis.window?.location.origin;if(typeof e!=`string`||e.length===0)return null;let t=Xa.getState(),n=t.selectedNode;return t.accountStatus!==`authenticated`||t.account===null||n===null?null:{hubOrigin:e,accountId:t.account.id,nodeId:n.id}}function MS(e){let t=dS(e);return{hubOrigin:e.hubOrigin,selectionClass:uS(e)?`latched`:`legacy-eligible`,legacyPermitted:!0,pairingOnly:!1,localSuitePreference:DS,credentials:{tier:`web`},...t===void 0?{}:{acceptedPolicyGeneration:t},onStatement:t=>{if(t.kind===`invalid`&&t.reason===`policy_generation_regressed`){xS();return}if(!(`statement`in t))return;let n=dS(e);if(n!==void 0&&t.statement.policyGeneration<n)throw xS(),Error(`Web E2EE policy generation regressed.`);lS(e),fS(e,t.statement.policyGeneration)},onWebVerificationCode:TS}}function NS(e){return e.close(Kp()),{intercept:async()=>({kind:`rejected`}),submit:()=>!1,beginClose:async()=>`refused`,dispose:()=>void 0}}function PS(){if(!kS){wS(`legacy`);return}let e=jS();if(e===null)return NS;let t=MS(e);return e=>{let n={};AS=n,CS();let r=oh({host:{...e,lockMode:t=>{e.lockMode(t),wS(t)}},attempt:t});return{...r,dispose:e=>{r.dispose(e),AS===n&&(AS=null,ES())}}}}var FS;function IS(){if(FS!==void 0)return FS;let e=Xa.getState().accountStatus===`authenticated`,t=Xa.subscribe(()=>{let t=Xa.getState().accountStatus;if(t===`authenticated`){e=!0;return}!e||t!==`signed-out`&&t!==`session-expired`||(e=!1,pS(),SS(),ES())});return FS=()=>{FS=void 0,t()},FS}var LS=c(e=>({open:!1,openIntent:null,setOpen:t=>e({open:t,...t?{}:{openIntent:null}}),toggleOpen:()=>e(e=>({open:!e.open,...e.open?{openIntent:null}:{}})),openAddProject:()=>e(e=>({open:!0,openIntent:{kind:`add-project`,requestId:(e.openIntent?.requestId??0)+1}})),clearOpenIntent:()=>e({openIntent:null})}));function RS(e){return{type:`thread.turn.steer`,commandId:e.commandId,threadId:e.threadId,expectedTurnId:e.expectedTurnId,message:{messageId:e.messageId,role:`user`,text:e.text,attachments:[...e.attachments]},createdAt:e.createdAt,requestedAt:e.requestedAt}}function zS(e,t){return!e||!t?!1:e.instanceId===t.instanceId&&e.model===t.model&&JSON.stringify(e.options??null)===JSON.stringify(t.options??null)}function BS(e){return e.mutationReady?!e.turnRunning||e.activeTurnId===null||e.activeTurnId===void 0?{allowed:!1,reason:`Steering is available only while a turn is running.`}:e.supportsTurnSteering?zS(e.queuedModelSelection,e.activeModelSelection)?e.queuedRuntimeMode!==e.activeRuntimeMode||e.queuedInteractionMode!==e.activeInteractionMode||e.queuedTokenMode!==e.activeTokenMode?{allowed:!1,reason:`The queued runtime settings do not match the active turn.`}:{allowed:!0,expectedTurnId:e.activeTurnId}:{allowed:!1,reason:`The queued provider or model no longer matches the active turn.`}:{allowed:!1,reason:`This provider does not support active-turn steering.`}:{allowed:!1,reason:`Steering is unavailable until the connection is ready.`}}function VS(e,t){return e.filter(e=>e.id!==t)}function HS(e,t,n){let r=e.findIndex(e=>e.id===t);if(r===-1)return[...e];let i=n===`up`?r-1:r+1;if(i<0||i>=e.length)return[...e];let a=[...e],[o]=a.splice(r,1);return a.splice(i,0,o),a}function US(e){return new Set(Object.entries(e).flatMap(([e,t])=>t.length>0?[e]:[]))}var WS=120;function GS(e){let t=e.trimmedPrompt.trim();return t.length>0?t.length>WS?`${t.slice(0,119)}…`:t:e.imageCount>0?e.imageCount===1?`1 image`:`${e.imageCount} images`:e.terminalContextCount>0?e.terminalContextCount===1?`1 terminal context`:`${e.terminalContextCount} terminal contexts`:`Queued message`}function KS(){return c(e=>({queuesByThreadKey:{},steeringIdsByThreadKey:{},enqueue:(t,n)=>e(e=>({queuesByThreadKey:{...e.queuesByThreadKey,[t]:[...e.queuesByThreadKey[t]??[],n]}})),remove:(t,n)=>e(e=>{let r=e.queuesByThreadKey[t];if(!r)return e;let i=e.steeringIdsByThreadKey[t]??[];return{queuesByThreadKey:{...e.queuesByThreadKey,[t]:VS(r,n)},steeringIdsByThreadKey:{...e.steeringIdsByThreadKey,[t]:i.filter(e=>e!==n)}}}),move:(t,n,r)=>e(e=>{let i=e.queuesByThreadKey[t];return i?{queuesByThreadKey:{...e.queuesByThreadKey,[t]:HS(i,n,r)}}:e}),dequeue:t=>e(e=>{let n=e.queuesByThreadKey[t];return!n||n.length===0?e:{queuesByThreadKey:{...e.queuesByThreadKey,[t]:n.slice(1)}}}),clear:t=>e(e=>{if(!(t in e.queuesByThreadKey))return e;let n={...e.queuesByThreadKey},r={...e.steeringIdsByThreadKey};return delete n[t],delete r[t],{queuesByThreadKey:n,steeringIdsByThreadKey:r}}),beginSteer:(t,n)=>e(e=>{let r=e.steeringIdsByThreadKey[t]??[];return r.includes(n)?e:{steeringIdsByThreadKey:{...e.steeringIdsByThreadKey,[t]:[...r,n]}}}),endSteer:(t,n)=>e(e=>{let r=e.steeringIdsByThreadKey[t];return r?.includes(n)?{steeringIdsByThreadKey:{...e.steeringIdsByThreadKey,[t]:r.filter(e=>e!==n)}}:e})}))}var qS=KS(),JS=c(e=>({open:!1,setOpen:t=>e(e=>e.open===t?e:{open:t})}));function YS(){return JS(XS)}function XS(e){return e.open}function ZS(e){JS.getState().setOpen(e)}function QS(e){return`git:${e??``}`}var $S=new Map;function eC(e,t){let n=$S.get(e);return n||(n=new Set,$S.set(e,n)),n.add(t),()=>{let n=$S.get(e);n&&(n.delete(t),n.size===0&&$S.delete(e))}}function tC(e){let t=new Set;for(let n of e){let e=$S.get(n);if(e)for(let n of e)t.add(n)}for(let e of t)e()}var nC=new Set,rC=Cr(e=>(nC.add(e),Xn(0).pipe(hr,Zr(`git-mutation-running:${e}`))));function iC(e){return rC(e)}function aC(e){let t=rC(e);z.set(t,z.get(t)+1)}function oC(e){let t=rC(e);z.set(t,Math.max(0,z.get(t)-1))}var sC=15e3,cC=6e4,lC=100,uC=Object.freeze({pages:[],isPending:!1,isFetchingNextPage:!1,error:null}),dC=Object.freeze({...uC,isPending:!0}),fC=Xn(uC).pipe(hr,Zr(`git-branches:null`)),pC=new Set,mC=Cr(e=>(pC.add(e),Xn(dC).pipe(hr,Zr(`git-branches:${e}`)))),hC=()=>void 0,gC=new Map;function _C(e){return`${e.environmentId}\u0000${e.cwd}\u0000${e.query}`}function vC(e){return e.environmentId===null||e.cwd===null?null:_C({environmentId:e.environmentId,cwd:e.cwd,query:e.query})}function yC(e){return e===null?fC:mC(e)}function bC(e,t){z.set(mC(e),t)}async function xC(e,t,n,r){let i=Fg(e);if(!i)throw Error(`Git refs are unavailable.`);return i.vcs.listRefs({cwd:t,...n.length>0?{query:n}:{},cursor:r,limit:lC})}function SC(e){let t=e[e.length-1];return t?t.nextCursor:null}function CC(e,t){if(e.inFlightPromise)return e.inFlightPromise;let n=t().finally(()=>{e.inFlightPromise===n&&(e.inFlightPromise=null)});return e.inFlightPromise=n,n}async function wC(e){let t=++e.fetchToken,n=z.get(mC(e.key));bC(e.key,{pages:n.pages,isPending:n.pages.length===0,isFetchingNextPage:!1,error:null});try{let n=await xC(e.environmentId,e.cwd,e.query,0);if(t!==e.fetchToken)return;e.loadedPageCount=1,e.lastFetchedAt=Date.now(),e.hasLoadedOnce=!0,bC(e.key,{pages:[n],isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(t!==e.fetchToken)return;bC(e.key,{pages:z.get(mC(e.key)).pages,isPending:!1,isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}}function TC(e){return CC(e,()=>wC(e))}async function EC(e){let t=++e.fetchToken,n=Math.max(1,e.loadedPageCount),r=z.get(mC(e.key));bC(e.key,{pages:r.pages,isPending:r.pages.length===0,isFetchingNextPage:!1,error:null});try{let r=[],i=0;for(let a=0;a<n;a+=1){let n=await xC(e.environmentId,e.cwd,e.query,i);if(t!==e.fetchToken)return;if(r.push(n),n.nextCursor===null)break;i=n.nextCursor}e.loadedPageCount=r.length,e.lastFetchedAt=Date.now(),e.hasLoadedOnce=!0,bC(e.key,{pages:r,isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(t!==e.fetchToken)return;bC(e.key,{pages:z.get(mC(e.key)).pages,isPending:!1,isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}}function DC(e){return CC(e,()=>EC(e))}function OC(e){return e.hasLoadedOnce?DC(e):TC(e)}function kC(e){if(e===null)return;let t=gC.get(e);if(!t)return;let n=z.get(mC(e));if(n.isFetchingNextPage||t.inFlightPromise)return;let r=SC(n.pages);if(r===null)return;bC(e,{...n,isFetchingNextPage:!0,error:null});let i=t.fetchToken;CC(t,async()=>{try{let n=await xC(t.environmentId,t.cwd,t.query,r);if(i!==t.fetchToken)return;let a=z.get(mC(e));t.loadedPageCount=a.pages.length+1,t.lastFetchedAt=Date.now(),bC(e,{pages:[...a.pages,n],isPending:!1,isFetchingNextPage:!1,error:null})}catch(n){if(i!==t.fetchToken)return;bC(e,{...z.get(mC(e)),isFetchingNextPage:!1,error:n instanceof Error?n:Error(`Failed to load refs.`)})}})}function AC(e){if(e===null)return;let t=gC.get(e);if(!t){IC(e);return}t.poller?.refresh()??OC(t)}function jC(e){Date.now()-e.lastFetchedAt<sC||(e.poller?.refresh()??OC(e))}function MC(e){if(e.environmentId===null||e.cwd===null)return hC;let t=e.environmentId,n=e.cwd,r=_C({environmentId:t,cwd:n,query:e.query}),i=gC.get(r);if(i)return i.subscriberCount+=1,i.hasLoadedOnce&&jC(i),()=>NC(r);let a={key:r,environmentId:t,cwd:n,query:e.query,subscriberCount:1,loadedPageCount:0,lastFetchedAt:0,fetchToken:0,hasLoadedOnce:!1,inFlightPromise:null,invalidationUnsub:hC,focusListener:null,poller:null};if(gC.set(r,a),a.invalidationUnsub=eC(QS(n),()=>{a.poller?.refresh()??OC(a)}),typeof window<`u`){let e=()=>jC(a);a.focusListener=e,window.addEventListener(`focus`,e)}return typeof window<`u`&&typeof document<`u`?a.poller=Oi({lifecycle:Di,run:()=>OC(a),resolveDelayMs:()=>cC,jitterRatio:.05}):TC(a),()=>NC(r)}function NC(e){let t=gC.get(e);t&&(--t.subscriberCount,!(t.subscriberCount>0)&&(t.invalidationUnsub(),t.focusListener&&typeof window<`u`&&window.removeEventListener(`focus`,t.focusListener),t.poller?.stop(),t.fetchToken+=1,gC.delete(e)))}var PC=new Set,FC=0;async function IC(e){if(PC.has(e)||gC.get(e))return;let t=e.indexOf(`\0`),n=e.lastIndexOf(`\0`);if(t===-1||n===t)return;let r=e.slice(0,t),i=e.slice(t+1,n),a=e.slice(n+1);PC.add(e);let o=FC;try{let t=await xC(r,i,a,0);if(o!==FC||gC.has(e))return;bC(e,{pages:[t],isPending:!1,isFetchingNextPage:!1,error:null})}catch{}finally{o===FC&&PC.delete(e)}}function LC(e){let t=vC(e);t!==null&&(z.get(mC(t)).pages.length>0||IC(t))}function RC(e){return e.flatMap(e=>e.refs)}var zC=3e4,BC=Object.freeze({data:null,isPending:!1,isFetching:!1,isError:!1,error:null}),VC=Xn(BC).pipe(hr,Zr(`git-resolve-pr:null`)),HC=new Set,UC=Cr(e=>(HC.add(e),Xn(BC).pipe(hr,Zr(`git-resolve-pr:${e}`)))),WC=new Map;function GC(e){return`${e.environmentId}\u0000${e.cwd}\u0000${e.reference}`}function KC(e){return e.environmentId===null||e.cwd===null||e.reference===null?null:GC({environmentId:e.environmentId,cwd:e.cwd,reference:e.reference})}function qC(e){return e===null?VC:UC(e)}async function JC(e){let t=++e.fetchToken,n=z.get(UC(e.key));z.set(UC(e.key),{data:n.data,isPending:n.data===null,isFetching:!0,isError:!1,error:null});try{let n=Fg(e.environmentId);if(!n)throw Error(`Pull request lookup is unavailable.`);let r=await n.git.resolvePullRequest({cwd:e.cwd,reference:e.reference});if(t!==e.fetchToken)return;e.lastFetchedAt=Date.now(),z.set(UC(e.key),{data:r,isPending:!1,isFetching:!1,isError:!1,error:null})}catch(n){if(t!==e.fetchToken)return;z.set(UC(e.key),{data:null,isPending:!1,isFetching:!1,isError:!0,error:n instanceof Error?n:Error(`Failed to resolve pull request.`)})}}function YC(e){let t=KC(e);if(t===null||e.environmentId===null||e.cwd===null||e.reference===null)return hC;let n=e.environmentId,r=e.cwd,i=e.reference,a=WC.get(t);if(a)return a.subscriberCount+=1,Date.now()-a.lastFetchedAt>=zC&&JC(a),()=>XC(t);let o={key:t,environmentId:n,cwd:r,reference:i,subscriberCount:1,lastFetchedAt:0,fetchToken:0};return WC.set(t,o),JC(o),()=>XC(t)}function XC(e){let t=WC.get(e);t&&(--t.subscriberCount,!(t.subscriberCount>0)&&(t.fetchToken+=1,WC.delete(e)))}function ZC(){for(let e of gC.values())e.fetchToken+=1,e.invalidationUnsub(),e.focusListener&&typeof window<`u`&&window.removeEventListener(`focus`,e.focusListener),e.poller?.stop();gC.clear(),FC+=1,PC.clear();for(let e of WC.values())e.fetchToken+=1;WC.clear(),$S.clear();for(let e of pC)z.set(mC(e),dC);for(let e of HC)z.set(UC(e),BC);for(let e of nC)z.set(rC(e),0)}var QC=Object.freeze({data:void 0,error:null,status:`pending`,fetchStatus:`idle`,dataUpdatedAt:0,errorUpdatedAt:0});function $C(e){return JSON.stringify(e,(e,t)=>t&&typeof t==`object`&&!Array.isArray(t)?Object.keys(t).toSorted().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function ew(e){return $C(e)}function tw(e){return e instanceof Error?e:Error(String(e))}function nw(e){return e===void 0||e===!0?3:e===!1?0:e}function rw(e){return Math.min(1e3*2**e,3e4)}function iw(e){return new Promise(t=>setTimeout(t,e))}function aw(e,t){if(t.length>e.length)return!1;for(let n=0;n<t.length;n+=1)if($C(e[n])!==$C(t[n]))return!1;return!0}var ow=new class{cache=new Map;prefixIndex=new Map;maxEntries;defaultGcTime;constructor(e){this.maxEntries=Math.max(1,Math.floor(e?.maxEntries??512)),this.defaultGcTime=Math.max(0,e?.defaultGcTime??3e5)}prefixHash(e){return $C(e)}indexEntry(e){for(let t=1;t<=e.key.length;t+=1){let n=this.prefixHash(e.key.slice(0,t)),r=this.prefixIndex.get(n)??new Set;r.add(e.hash),this.prefixIndex.set(n,r)}}unindexEntry(e){for(let t=1;t<=e.key.length;t+=1){let n=this.prefixHash(e.key.slice(0,t)),r=this.prefixIndex.get(n);r&&(r.delete(e.hash),r.size===0&&this.prefixIndex.delete(n))}}clearGcTimer(e){e.gcTimer!==null&&(clearTimeout(e.gcTimer),e.gcTimer=null)}isPinned(e){return e.listeners.size>0||e.observers.size>0||e.promise!==null}removeEntry(e){return this.cache.get(e.hash)!==e||this.isPinned(e)?!1:(this.clearGcTimer(e),e.fetchId+=1,e.state=QC,this.cache.delete(e.hash),this.unindexEntry(e),!0)}scheduleGc(e){if(this.clearGcTimer(e),!(this.isPinned(e)||e.gcTime===1/0)){if(e.gcTime===0){this.removeEntry(e);return}e.gcTimer=setTimeout(()=>{e.gcTimer=null,this.removeEntry(e)},e.gcTime)}}touch(e){e.lastAccessedAt=Date.now(),this.clearGcTimer(e)}evictToCapacity(){if(this.cache.size<=this.maxEntries)return;let e=[...this.cache.values()].filter(e=>!this.isPinned(e)).toSorted((e,t)=>e.lastAccessedAt-t.lastAccessedAt);for(let t of e){if(this.cache.size<=this.maxEntries)break;this.removeEntry(t)}}ensureEntry(e){let t=ew(e),n=this.cache.get(t);return n||(n={key:e,hash:t,state:QC,listeners:new Set,observers:new Set,promise:null,fetchId:0,gcTime:this.defaultGcTime,lastAccessedAt:Date.now(),gcTimer:null},this.cache.set(t,n),this.indexEntry(n),this.evictToCapacity()),this.touch(n),n}setGcTime(e,t){let n=this.ensureEntry(e);n.gcTime=Math.max(0,t??this.defaultGcTime),this.isPinned(n)||this.scheduleGc(n)}getCacheSize(){return this.cache.size}getEntry(e){return this.ensureEntry(e)}getEntryByHash(e){return this.cache.get(e)}getState(e){return this.ensureEntry(e).state}setState(e,t){e.state=t;for(let t of e.listeners)t()}subscribe(e,t){let n=this.ensureEntry(e);return n.listeners.add(t),this.clearGcTimer(n),()=>{n.listeners.delete(t),this.scheduleGc(n)}}addObserver(e,t){let n=this.ensureEntry(e);return n.observers.add(t),this.clearGcTimer(n),()=>{n.observers.delete(t),this.scheduleGc(n)}}isStale(e,t){let n=this.ensureEntry(e);return n.state.status!==`success`||t!==1/0&&Date.now()-n.state.dataUpdatedAt>=t}getQueryData(e){let t=this.cache.get(ew(e));return t?.state.status===`success`?t.state.data:void 0}setQueryData(e,t){let n=this.ensureEntry(e),r=n.state.status===`success`?n.state.data:void 0,i=typeof t==`function`?t(r):t;return i===void 0?r:(this.setState(n,{data:i,error:null,status:`success`,fetchStatus:`idle`,dataUpdatedAt:Date.now(),errorUpdatedAt:n.state.errorUpdatedAt}),this.scheduleGc(n),i)}cancelQueries(e={}){let t=e.queryKey;for(let e of this.cache.values())t&&!aw(e.key,t)||(e.fetchId+=1,e.promise=null,e.state.fetchStatus===`fetching`&&this.setState(e,{...e.state,fetchStatus:`idle`}));return Promise.resolve()}invalidateQueries(e={}){let t=e.queryKey,n=t?[...this.prefixIndex.get(this.prefixHash(t))??[]].map(e=>this.cache.get(e)).filter(e=>e!==void 0):[...this.cache.values()];for(let e of n)if(e.state.status===`success`&&this.setState(e,{...e.state,dataUpdatedAt:0}),e.observers.size>0)for(let t of e.observers)t.refetch();return Promise.resolve()}async fetch(e,t,n={}){let r=this.ensureEntry(e);if(r.promise)return r.promise;let i=++r.fetchId,a=nw(n.retry);this.setState(r,{...r.state,fetchStatus:`fetching`,error:null});let o=(async()=>{for(let e=0;e<=a;e+=1)try{let e=await t();return r.fetchId===i?(this.setState(r,{data:e,error:null,status:`success`,fetchStatus:`idle`,dataUpdatedAt:Date.now(),errorUpdatedAt:r.state.errorUpdatedAt}),e):r.state.status===`success`?r.state.data:void 0}catch(t){if(r.fetchId!==i)return;if(e>=a){let e=tw(t);throw this.setState(r,{data:r.state.data,error:e,status:`error`,fetchStatus:`idle`,dataUpdatedAt:r.state.dataUpdatedAt,errorUpdatedAt:Date.now()}),e}if(await iw(rw(e)),r.fetchId!==i)return}})().finally(()=>{r.promise===o&&(r.promise=null,this.scheduleGc(r),this.evictToCapacity())});return r.promise=o,o}async fetchQuery(e){this.setGcTime(e.queryKey,e.gcTime);let t=e.staleTime??0;return this.isStale(e.queryKey,t)?await this.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:!0}):this.getQueryData(e.queryKey)}async prefetchQuery(e){try{await this.fetchQuery(e)}catch{}}clear(){for(let e of this.cache.values())this.clearGcTimer(e),e.fetchId+=1,e.state=QC;this.cache.clear(),this.prefixIndex.clear()}};function sw(){return ow}function cw(e){return e}function lw(e,t){let n=(0,V.useRef)(null);if(e===void 0)return;if(!t)return e;let r=n.current;if(r&&r.input===e)return r.output;let i=t(e);return n.current={input:e,output:i},i}function uw(e,t,n,r){let i=t.staleTime??0,a=n.fetchStatus===`fetching`,o=n.status===`pending`;return{data:r,error:n.error,status:n.status,fetchStatus:n.fetchStatus,isPending:o,isLoading:o&&a,isError:n.status===`error`,isSuccess:n.status===`success`,isFetching:a,isRefetching:a&&!o,isStale:e.isStale(t.queryKey,i),dataUpdatedAt:n.dataUpdatedAt,refetch:async()=>{await e.fetch(t.queryKey,t.queryFn,{retry:t.retry,force:!0});let n=e.getState(t.queryKey);return uw(e,t,n,n.status===`success`?t.select?t.select(n.data):n.data:void 0)}}}function dw(e){let t=sw(),{queryKey:n}=e,r=ew(n);t.setGcTime(n,e.gcTime);let i=(0,V.useRef)(e);i.current=e;let a=(0,V.useCallback)(e=>t.subscribe(i.current.queryKey,e),[t,r]),o=(0,V.useCallback)(()=>t.getState(i.current.queryKey),[t,r]),s=(0,V.useSyncExternalStore)(a,o,o),c=e.enabled??!0,l=e.staleTime??0,u=e.refetchOnMount;return(0,V.useEffect)(()=>{if(!c)return;let e=i.current,n=t.addObserver(e.queryKey,{refetch:()=>{t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:!0})}}),r=u===`always`;return(r||t.isStale(e.queryKey,l))&&t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:r}),n},[t,r,c,l,u]),(0,V.useEffect)(()=>{if(!c)return;let e=i.current,n=e.refetchInterval;if(n===void 0||n===!1)return;let r=typeof n==`function`?n({state:{data:t.getQueryData(e.queryKey)}}):n;if(!(r===!1||r===void 0||r<=0))return Oi({lifecycle:Di,run:()=>t.fetch(e.queryKey,e.queryFn,{retry:e.retry,force:!0}),resolveDelayMs:()=>r,runImmediately:!1,jitterRatio:.05}).stop},[t,r,c,s]),uw(t,e,s,lw(s.status===`success`?s.data:void 0,e.select))}var fw=Object.freeze({status:`idle`,data:void 0,error:null,variables:void 0});function pw(e){let t=(0,V.useRef)(e);t.current=e;let n=(0,V.useRef)(fw),[,r]=(0,V.useReducer)(e=>e+1,0),i=(0,V.useRef)(!0);(0,V.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]);let a=(0,V.useCallback)(e=>{n.current=e,i.current&&r()},[]),o=(0,V.useCallback)(async(e,n)=>{let r=t.current;a({status:`pending`,data:void 0,error:null,variables:e});let i;try{i=r.onMutate?await r.onMutate(e):void 0;let t=await r.mutationFn(e);return await r.onSuccess?.(t,e,i),await n?.onSuccess?.(t,e),await r.onSettled?.(t,null,e,i),await n?.onSettled?.(t,null,e),a({status:`success`,data:t,error:null,variables:e}),t}catch(t){let o=tw(t);throw await r.onError?.(o,e,i),await n?.onError?.(o,e),await r.onSettled?.(void 0,o,e,i),await n?.onSettled?.(void 0,o,e),a({status:`error`,data:void 0,error:o,variables:e}),o}},[a]),s=(0,V.useCallback)(e=>o(e),[o]),c=(0,V.useCallback)((e,t)=>{o(e,t).catch(()=>void 0)},[o]),l=(0,V.useCallback)(()=>{a(fw)},[a]),u=n.current;return{mutate:c,mutateAsync:s,isPending:u.status===`pending`,isIdle:u.status===`idle`,isError:u.status===`error`,isSuccess:u.status===`success`,status:u.status,error:u.error,data:u.data,variables:u.variables,reset:l}}var mw={metaKey:!1,ctrlKey:!1,altKey:!1,shiftKey:!1};function hw(e,t){return e.metaKey===t.metaKey&&e.ctrlKey===t.ctrlKey&&e.altKey===t.altKey&&e.shiftKey===t.shiftKey}var gw=c(e=>({state:mw,setState:t=>e(e=>hw(e.state,t)?e:{state:t}),clear:()=>e(e=>hw(e.state,mw)?e:{state:mw})}));function _w(){return gw(vw)}function vw(e){return e.state}function yw(e){switch(e){case`Meta`:case`OS`:case`Command`:return`metaKey`;case`Control`:return`ctrlKey`;case`Alt`:case`Option`:return`altKey`;case`Shift`:return`shiftKey`;default:return null}}function bw(e){let t=yw(e.key);if(t){let n=gw.getState().state;gw.getState().setState({...n,[t]:e.type===`keydown`});return}gw.getState().setState({metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey})}function xw(){gw.getState().clear()}var Sw=new Set,Cw=c((e,t)=>({selectedThreadKeys:Sw,anchorThreadKey:null,toggleThread:t=>{e(e=>{let n=new Set(e.selectedThreadKeys);return n.has(t)?n.delete(t):n.add(t),{selectedThreadKeys:n,anchorThreadKey:n.has(t)?t:e.anchorThreadKey}})},rangeSelectTo:(t,n)=>{e(e=>{let r=e.anchorThreadKey;if(r===null){let n=new Set(e.selectedThreadKeys);return n.add(t),{selectedThreadKeys:n,anchorThreadKey:t}}let i=n.indexOf(r),a=n.indexOf(t);if(i===-1||a===-1){let n=new Set(e.selectedThreadKeys);return n.add(t),{selectedThreadKeys:n,anchorThreadKey:t}}let o=Math.min(i,a),s=Math.max(i,a),c=new Set(e.selectedThreadKeys);for(let e=o;e<=s;e++){let t=n[e];t!==void 0&&c.add(t)}return{selectedThreadKeys:c,anchorThreadKey:r}})},clearSelection:()=>{let n=t();(n.selectedThreadKeys.size!==0||n.anchorThreadKey!==null)&&e({selectedThreadKeys:Sw,anchorThreadKey:null})},setAnchor:n=>{t().anchorThreadKey!==n&&e({anchorThreadKey:n})},removeFromSelection:t=>{e(e=>{let n=new Set(t),r=!1,i=new Set;for(let t of e.selectedThreadKeys)n.has(t)?r=!0:i.add(t);return r?{selectedThreadKeys:i,anchorThreadKey:e.anchorThreadKey!==null&&n.has(e.anchorThreadKey)?null:e.anchorThreadKey}:e})},hasSelection:()=>t().selectedThreadKeys.size>0}));function ww(e){ES(),Br(e),C_(),ZC(),X_(),Q.getState().demoteEnvironmentStateToCachedSnapshot(e,Date.now()),mr()}function Tw(){for(let e of Object.keys(Q.getState().environmentStateById))Q.getState().removeEnvironmentState(e);yi.setState({draftsByThreadKey:{},draftThreadsByThreadKey:{},logicalProjectDraftThreadKeyByLogicalProjectKey:{},stickyModelSelectionByProvider:{},stickyActiveProvider:null}),zx.setState({terminalStateByThreadKey:{},terminalLaunchContextByThreadKey:{},terminalEventEntriesByKey:{},nextTerminalEventId:1}),qS.setState({queuesByThreadKey:{}}),LS.getState().setOpen(!1),uo.getState().closeSettings(),ZS(!1),xw(),Cw.getState().clearSelection(),fo.setState({projectExpandedById:{},projectOrder:[],projectFoldersById:{},projectFolderOrder:[],projectTreeOrder:[],pinnedThreadKeys:{},threadLastVisitedAtById:{},threadChangedFilesExpandedById:{},threadWorkEntryExpandedById:{},defaultAdvertisedEndpointKey:null}),ow.clear(),mr()}function Ew(){let e=new URL(window.location.origin);return e.protocol=e.protocol===`https:`?`wss:`:`ws:`,e.pathname=`/v1/relay/client`,e.toString()}function Dw(e){return typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer}function Ow(e){return e instanceof ArrayBuffer?{bytes:new Uint8Array(e.slice(0))}:e instanceof Uint8Array?{bytes:Uint8Array.from(e)}:ArrayBuffer.isView(e)?{bytes:Uint8Array.from(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}:Dw(e)?{fail:`protocol_invalid`}:{fail:`frame_too_large`}}var kw=new Set([Up,Vp,Hp,zp,Bp]);function Aw(e){return!(e instanceof Error)||e instanceof DOMException?e:new DOMException(e.message,kw.has(e.message)?`QuotaExceededError`:`InvalidStateError`)}var jw=class extends EventTarget{url;protocol=``;extensions=``;binaryType=`arraybuffer`;CONNECTING=WebSocket.CONNECTING;OPEN=WebSocket.OPEN;CLOSING=WebSocket.CLOSING;CLOSED=WebSocket.CLOSED;onopen=null;onmessage=null;onerror=null;onclose=null;#e;#t=WebSocket.CONNECTING;constructor(e){if(super(),this.url=e.url,e.url!==Ew()||e.ticketExpiresAt<=Date.now())throw Error(`Relay attempt is no longer valid.`);let t=(e.createSocket??(e=>new WebSocket(e)))(e.url);t.binaryType=`arraybuffer`;let n={get bufferedAmount(){return t.bufferedAmount},get readyState(){return t.readyState},send:e=>t.send(Uint8Array.from(e).buffer),close:(e,n)=>t.close(e,n),onOpen:e=>t.addEventListener(`open`,e),onBinaryMessage:e=>t.addEventListener(`message`,t=>{let n=Ow(t.data);`bytes`in n?e(n.bytes):this.#e.reportUndecodableMessage(n.fail)}),onClose:e=>t.addEventListener(`close`,e),onError:e=>t.addEventListener(`error`,e)};try{this.#e=new qp({ticket:e.ticket,ticketExpiresAt:e.ticketExpiresAt,socket:n,callbacks:e.callbacks,...e.e2ee===void 0?{}:{e2ee:e.e2ee},timers:{now:()=>Date.now(),setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e),queueMicrotask:e=>globalThis.queueMicrotask(e)},events:{onOpen:()=>{this.#t=WebSocket.OPEN,this.#n(`open`,new Event(`open`))},onData:e=>this.#n(`message`,new MessageEvent(`message`,{data:e})),onError:()=>this.#n(`error`,new Event(`error`)),onClose:(e,t)=>{this.#t=WebSocket.CLOSED,this.#n(`close`,new CloseEvent(`close`,{code:e,reason:t,wasClean:e===1e3}))}}})}catch(e){try{t.close()}catch{}throw e}}get readyState(){return this.#t}get bufferedAmount(){return this.#e.bufferedAmount}send(e){let t=typeof e==`string`?new TextEncoder().encode(e):e instanceof ArrayBuffer||Dw(e)?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):(()=>{throw new DOMException(`Blob RPC writes are unsupported.`,`DataError`)})();try{this.#e.send(Uint8Array.from(t))}catch(e){throw Aw(e)}}close(e=1e3,t=``){this.#t!==WebSocket.CLOSED&&this.#t!==WebSocket.CLOSING&&(this.#t=WebSocket.CLOSING,this.#e.close(e,t))}#n(e,t){this.dispatchEvent(t);let n=this[`on${e}`];n&&n.call(this,t)}},Mw=!1;function Nw(e){Mw||(Mw=!0,IS(),Aa({endpoint:rr,httpClient:Zn,passkeyCeremony:Ch,sessionCredentials:ur,nodeLifecycle:{activate:async()=>void 0,suspend:async()=>void 0,deactivate:async()=>void 0,clearNodeScopedState:ww,writePrimaryEnvironmentDescriptor:Wr,connectPrimaryEnvironment:_E,disconnectPrimaryEnvironment:gE,setActiveEnvironmentId:e=>Q.getState().setActiveEnvironmentId(e)},timers:{now:()=>Date.now(),setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e),queueMicrotask:e=>globalThis.queueMicrotask(e)},isForeground:()=>globalThis.document?.visibilityState!==`hidden`,subscribeForeground:e=>{let t=()=>{globalThis.document?.visibilityState===`visible`&&e()};return globalThis.document?.addEventListener(`visibilitychange`,t,{once:!0}),()=>globalThis.document?.removeEventListener(`visibilitychange`,t)},hasPendingRelayRequests:gh,resetRelayAttemptFactory:_h,relayUrl:Ew,createRelaySocket:e=>new jw({...e,e2ee:PS()})},e))}var Pw=new class extends Ma{constructor(){super({endpoint:rr,httpClient:Zn,passkeyCeremony:Ch,sessionCredentials:ur})}},Fw=n({HOSTED_SESSION_SYNC_FAILURE_MESSAGE:()=>HOSTED_SESSION_SYNC_FAILURE_MESSAGE,ensureWebHostedRuntimeConfigured:()=>Iw,hostedAccountStore:()=>xa,hostedHubController:()=>Ga,hostedHubStore:()=>Xa,hostedRecoveryCodeDisplayStore:()=>Ta,useHostedAccountStore:()=>Rw,useHostedHubStore:()=>Lw,useHostedRecoveryCodeDisplayStore:()=>zw});Pa(()=>Nw(Pw));function Iw(){Nw(Pw)}var Lw=Object.assign(e=>f(Xa,e),Xa),Rw=Object.assign(e=>f(xa,e),xa),zw=Object.assign(e=>f(Ta,e),Ta);function Bw(e){return/^[a-zA-Z]:([/\\]|$)/.test(e)}function Vw(e){return e.startsWith(`\\\\`)}function Hw(e){return Vw(e)||Bw(e)}function Uw(e){return e===`.`||e===`..`||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`.\\`)||e.startsWith(`..\\`)}function Ww(e){return e===`/`||e===`\\`||/^[a-zA-Z]:[/\\]?$/.test(e)}function Gw(e){return Bw(e)||Vw(e)?`windows`:e.startsWith(`/`)?`unix`:null}function Kw(e){if(e.length===0||Ww(e))return e;let t=Gw(e)===`unix`?e.replace(/\/+$/g,``):e.replace(/[\\/]+$/g,``);return t.length===0?e:/^[a-zA-Z]:$/.test(t)?`${t}\\`:t}function qw(e){let t=Kw(e.trim());return Bw(t)||t.startsWith(`\\\\`)?t.replaceAll(`/`,`\\`).toLowerCase():t}function Jw(e){let t=new Set,n=[];for(let r of e){let e=r?.trim();!e||t.has(e)||(t.add(e),n.push(e))}return n}function Yw(e){let t=e.repositoryIdentity?.rootPath?.trim();if(!t)return null;let n=qw(e.cwd),r=qw(t);if(n.length===0||r.length===0)return null;if(n===r)return``;let i=`${r}${r.includes(`\\`)?`\\`:`/`}`;return n.startsWith(i)?n.slice(i.length).replaceAll(`\\`,`/`):null}function Xw(e,t){return`${e}:${qw(t)}`}function Zw(e){return Xw(e.environmentId,e.cwd)}function Qw(e,t){let n=e.repositoryIdentity?.canonicalKey;if(!n)return null;if(t===`repository`)return n;let r=Yw(e);return r===null||r.length===0?n:`${n}::${r}`}function $w(e,t){let n=t?.groupingMode??`repository`;return n===`separate`?Zw(e):Qw(e,n)??Zw(e)??`${e.environmentId}:${e.id}`}function eT(e){let t=Jw(e.members.map(e=>e.repositoryIdentity?.displayName));if(t.length===1)return t[0];let n=Jw(e.members.map(e=>e.repositoryIdentity?.name));return n.length===1?n[0]:e.representative.name}function tT(e,t){return{key:e.physicalKey,label:e.name,repositoryIdentity:e.repositoryIdentity,variants:[e],ambiguous:t}}function nT(e,t){let n=new Map;for(let r of e){let e=$w({environmentId:r.environmentId,id:r.projectId,cwd:r.cwd,repositoryIdentity:r.repositoryIdentity},t),i=n.get(e)??[];i.push(r),n.set(e,i)}let r=[];for(let[e,t]of n){let n=new Map;for(let e of t)n.set(e.environmentId,(n.get(e.environmentId)??0)+1);let i=Array.from(n.values()).some(e=>e>1);if(i||t.length===1){r.push(...t.map(e=>tT(e,i)));continue}let a=t.toSorted((e,t)=>{let n=e.lastUsedAt??e.lastLiveAt??0;return(t.lastUsedAt??t.lastLiveAt??0)-n||e.physicalKey.localeCompare(t.physicalKey)}),o=a[0];r.push({key:e,label:eT({representative:o,members:t}),repositoryIdentity:o.repositoryIdentity,variants:a,ambiguous:!1})}return r.toSorted((e,t)=>e.label.localeCompare(t.label)||e.key.localeCompare(t.key))}function rT(e){return Zw(e)}function iT(e){return Zw(e)}function aT(e,t){return t.sidebarProjectGroupingOverrides?.[rT(e)]??t.sidebarProjectGroupingMode}function oT(e,t){return $w(e,{groupingMode:aT(e,t)})}function sT(e){return{prepareShellEvent:(e,t)=>{let n=t.kind===`thread-upserted`?t.thread.id:t.kind===`thread-removed`?t.threadId:null,r=n?a(e,n):null;return{previousThread:r?Eb(Q.getState(),r):void 0,threadRef:r}},applyShellEvent:(e,t)=>Q.getState().applyShellEvent(t,e),afterShellEventApplied:(t,n,r)=>{let{previousThread:i,threadRef:a}=r;switch(n.kind){case`project-upserted`:case`project-removed`:cT();return;case`worktree-upserted`:case`worktree-removed`:return;case`thread-upserted`:lT(),!i&&a&&bi(a),i?.archivedAt===null&&n.thread.archivedAt!==null&&a&&zx.getState().removeTerminalState(a),e.supervisor?.().reconcileThreadDetailSubscriptionEvictionForThread(t,n.thread.id),e.supervisor?.().evictIdleThreadDetailSubscriptionsToCapacity();return;case`thread-removed`:a&&(e.supervisor?.().disposeThreadDetailSubscription(t,n.threadId),yi.getState().clearDraftThread(a),fo.getState().clearThreadUi(p(a)),zx.getState().removeTerminalState(a)),lT()}},applyOrchestrationEvents:(e,t)=>Q.getState().applyOrchestrationEvents(t,e),syncServerShellSnapshot:(e,t)=>Q.getState().syncServerShellSnapshot(t,e),reconcileSnapshotDerivedState:()=>{cT(),lT();let e=Qb({snapshotThreads:_b(Q.getState()).map(e=>({key:p(a(e.environmentId,e.id)),deletedAt:null,archivedAt:e.archivedAt})),draftThreadKeys:yi.getState().listDraftThreadKeys()});zx.getState().removeOrphanedTerminalStates(e)},syncProjects:()=>{let e=Ql();fo.getState().syncProjects(gb(Q.getState()).map(t=>({key:Zw(t),logicalKey:oT(t,e),cwd:t.cwd})))},syncThreads:()=>{let e=_b(Q.getState());fo.getState().syncThreads(e.map(e=>({key:p(a(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt})))},clearThreadDraft:e=>{yi.getState().clearDraftThread(e),fo.getState().clearThreadUi(p(e))},clearProjectDraftThread:e=>yi.getState().clearProjectDraftThreadId(e),clearTerminalState:e=>zx.getState().removeTerminalState(e),markProviderInvalidationNeeded:e.markProviderInvalidationNeeded,flushProviderInvalidation:e.flushProviderInvalidation}}function cT(){let e=gb(Q.getState()),t=Ql();fo.getState().syncProjects(e.map(e=>({key:Zw(e),logicalKey:oT(e,t),cwd:e.cwd})))}function lT(){let e=_b(Q.getState());fo.getState().syncThreads(e.map(e=>({key:p(a(e.environmentId,e.id)),seedVisitedAt:e.updatedAt??e.createdAt}))),Si(e.map(e=>a(e.environmentId,e.id)))}var uT=0,dT=1,fT=2,pT=3,mT=class{url;protocol=``;extensions=``;binaryType=`arraybuffer`;CONNECTING=uT;OPEN=dT;CLOSING=fT;CLOSED=pT;onopen=null;onmessage=null;onerror=null;onclose=null;#e;#t;#n=new Map;#r;#i=uT;constructor(e){this.url=e.url,this.#t=e.transportId,this.#e=e.bridge,this.#r=e.bridge.onDesktopWorkspaceTransportEvent?.(e=>this.#a(e)),Promise.resolve().then(async()=>{try{await e.bridge.activateDesktopWorkspaceTransport?.(e.transportId)}catch{this.#o()}})}get readyState(){return this.#i}get bufferedAmount(){return 0}send(e){if(this.#i!==dT)throw Error(`Desktop workspace transport is not open.`);let t=typeof e==`string`?new TextEncoder().encode(e):e instanceof ArrayBuffer?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):null;if(t===null)throw Error(`Desktop workspace transport payload is invalid.`);this.#e.sendDesktopWorkspaceTransport?.(this.#t,Uint8Array.from(t))}close(){this.#i!==fT&&this.#i!==pT&&(this.#i=fT,this.#e.closeDesktopWorkspaceTransport?.(this.#t))}addEventListener(e,t,n){let r=this.#n.get(e)??new Set;r.add({listener:t,once:n?.once??!1}),this.#n.set(e,r)}removeEventListener(e,t){let n=this.#n.get(e);if(n)for(let e of[...n])e.listener===t&&n.delete(e)}#a(e){if(e.transportId===this.#t&&this.#i!==pT)switch(e.type){case`open`:if(this.#i!==uT)return;this.#i=dT,this.#s({type:`open`});return;case`message`:if(this.#i!==dT)return;this.#s({type:`message`,data:Uint8Array.from(e.data)});return;case`error`:this.#s({type:`error`});return;case`close`:this.#i=pT,this.#s({type:`close`,code:e.code,reason:e.reason,wasClean:e.code===1e3}),this.#r?.()}}#o(){this.#i!==pT&&(this.#s({type:`error`}),this.#i=pT,this.#s({type:`close`,code:4401,reason:`Relay unavailable`,wasClean:!1}),this.#r?.())}#s(e){let t=this.#n.get(e.type);if(t)for(let n of[...t])n.once&&t.delete(n),n.listener(e);let n={open:this.onopen,message:this.onmessage,error:this.onerror,close:this.onclose}[e.type];n?.(e)}},hT=class{#e;#t;#n=null;constructor(e,t){this.#e=e,this.#t=t}async nextUrl(){if(!this.#t.prepareDesktopWorkspaceTransport)throw Error(`Desktop workspace transport is unavailable.`);let e=await this.#t.prepareDesktopWorkspaceTransport(this.#e);return this.#n=e.transportId,`ws://desktop-workspace.invalid/${e.transportId}`}createSocket(e){let t=this.#n;if(this.#n=null,!t||!e.endsWith(`/${t}`))throw Error(`Desktop workspace transport requires a fresh opaque handle.`);return new mT({url:e,transportId:t,bridge:this.#t})}};function gT(e){return e instanceof sl}var _T=!1,vT=sT({markProviderInvalidationNeeded:()=>{_T=!0,$().requestProviderInvalidation()},flushProviderInvalidation:()=>{_T=!1,Y_(),i_()},supervisor:$}),yT=150,bT=()=>void 0,xT=/^\[ssh_http:(\d+)\]\s/u,ST=null,CT=!1,wT=null,TT=new Promise(e=>{wT=e}),ET=null;function $(){return ET||(ET=cl({isHostedMode:l,now:Date.now,setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e),createInvalidationThrottle:()=>new ts(()=>{_T&&vT.flushProviderInvalidation()},{wait:100,leading:!1,trailing:!0}),resetProviderInvalidation:()=>{_T=!1},createPrimaryConnection:()=>Vr()?.environmentId?mE():null,listSavedEnvironmentRecords:wg,hasSavedEnvironmentRegistryHydrated:Sg,waitForSavedEnvironmentRegistryHydration:Cg,subscribeSavedEnvironmentRegistry:xg.subscribe,connectSavedEnvironment:(e,t)=>bE(e,void 0,t),disconnectSavedEnvironment:OE,waitForPrimaryShellSnapshotApplied:kT,subscribeBrowserResume:xE,isThreadDetailSubscriptionNonIdle:(e,t)=>jT({environmentId:e,threadId:t}),syncThreadDetailSnapshot:(e,t)=>Q.getState().syncServerThreadDetail(t.thread,e),syncThreadWindowSnapshot:(e,t)=>Q.getState().syncServerThreadWindow(t,e),syncThreadHistoryPage:(e,t,n)=>Q.getState().syncServerThreadHistoryPage(n,t,e),setThreadHistoryRequestState:e=>Q.getState().setServerThreadHistoryLoadState({...e,loadState:{status:e.status,cursor:e.cursor,error:e.error}}),applyThreadDetailEvent:(e,t)=>oE(t,e),stateSink:vT,onShellSnapshotReceived:e=>{e===Vr()?.environmentId&&rS(`primary-shell-snapshot-received`)},onShellSnapshotCurrent:()=>void 0,onShellSnapshotApplied:e=>{e===Vr()?.environmentId&&(rS(`primary-shell-snapshot-applied`),iS(`primary-shell-snapshot`,`primary-shell-snapshot-received`,`primary-shell-snapshot-applied`),rS(`primary-shell-usable`),iS(`primary-shell-ready`,`root-before-load-ready`,`primary-shell-usable`),OT())},onShellSnapshotReady:()=>void 0}),ET)}function DT(){let e=null;return{promise:new Promise(t=>{e=t}),resolve:t=>{e?.(t),e=null}}}function OT(){CT||(CT=!0,wT?.(),wT=null)}async function kT(e){CT||!Vr()?.environmentId||await Promise.race([TT,new Promise(t=>{globalThis.setTimeout(t,e)})])}async function AT(e,t){return await new Promise(n=>{let r=globalThis.setTimeout(()=>n(null),t);e.then(e=>{clearTimeout(r),n(e)},()=>{clearTimeout(r),n(null)})})}function jT(e){let t=a(e.environmentId,e.threadId),n=Q.getState(),r=Ob(n,t);if(r){if(r.hasPendingApprovals||r.hasPendingUserInput||r.hasActionableProposedPlan)return!0;let e=r.session?.orchestrationStatus;if(e&&e!==`idle`&&e!==`stopped`||r.latestTurn?.state===`running`)return!0}let i=Eb(n,t);if(!i)return!1;let o=i.session?.orchestrationStatus;return!!(o&&o!==`idle`&&o!==`stopped`)||i.latestTurn?.state===`running`||i.pendingSourceProposedPlan!==void 0}function MT(e){$().disposeThreadDetailSubscriptionsForEnvironment(e)}function NT(e,t){return $().retainThreadDetailSubscription(e,t)}function PT(e){return $().loadOlderThreadHistory(e)}function FT(e){return $().loadThreadHistoryAroundMessage(e)}function IT(e){return{lastError:e instanceof Error?e.message:String(e),lastErrorAt:new Date().toISOString()}}function LT(){return new Date().toISOString()}function RT(e){if(!(e instanceof Error))return null;let t=xT.exec(e.message);if(!t)return null;let n=Number.parseInt(t[1]??``,10);return Number.isInteger(n)?n:null}function zT(e,t){return RT(e)===t}function BT(e,t){return!e||!t?!1:e.alias===t.alias&&e.hostname===t.hostname&&e.username===t.username&&e.port===t.port}function VT(e){return e?wg().find(t=>BT(t.desktopSsh,e))??null:null}function HT(e){return Object.fromEntries(e.map(e=>[e.environmentId,e]))}function UT(e){return new Map(e.map(e=>[e,Tg(e)??null]))}async function WT(e){let t=HT(wg());for(let[n,r]of e){if(r){t[n]=r;continue}delete t[n]}let n=Object.values(t);await vg().persistence.setSavedEnvironmentRegistry(n.map(e=>_r(e))),xg.setState({byId:t})}async function GT(e,t){let n=window.desktopBridge;if(!n)throw Error(`SSH launch is only available in the desktop app.`);return await n.ensureSshEnvironment(e,t)}function KT(){let e=window.desktopBridge;if(!e)throw Error(`SSH launch is only available in the desktop app.`);return e}async function qT(e){return await KT().fetchSshEnvironmentDescriptor(e)}async function JT(e,t){return await KT().bootstrapSshBearerSession(e,t)}async function YT(e,t){return await KT().fetchSshSessionState(e,t)}async function XT(e,t,n){let r=await KT().issueSshWebSocketToken(t,n),i=new URL(e,window.location.origin);return i.searchParams.set(`wsToken`,r.token),i.toString()}async function ZT(e,t){if(!e.desktopSsh)return{record:e,pairingToken:null,remotePort:null,remoteServerKind:null};let n=await GT(e.desktopSsh,t),r={...e,httpBaseUrl:n.httpBaseUrl,wsBaseUrl:n.wsBaseUrl,desktopSsh:n.target};return(r.httpBaseUrl!==e.httpBaseUrl||r.wsBaseUrl!==e.wsBaseUrl||!BT(r.desktopSsh,e.desktopSsh))&&(await Eg(r),xg.getState().upsert(r)),{record:r,pairingToken:n.pairingToken,remotePort:n.remotePort??null,remoteServerKind:n.remoteServerKind??null}}async function QT(e){let t=UT([e.environmentId]),n=await ZT(e,{issuePairingToken:!0});if(!n.pairingToken)throw await WT(t),Error(`Desktop SSH launch did not return a pairing token.`);let r=await JT(n.record.httpBaseUrl,n.pairingToken).catch(async e=>{await WT(t);let r=[`local ${n.record.httpBaseUrl}`,`remote port ${n.remotePort??`unknown`}`,n.remoteServerKind?`remote server ${n.remoteServerKind}`:null].filter(Boolean).join(`, `),i=e instanceof Error?e.message:String(e);throw Error(`${i} (${r})`)});if(!await Og(n.record.environmentId,r.sessionToken))throw await WT(t),Error(`Unable to persist saved environment credentials.`);return{record:n.record,bearerToken:r.sessionToken,role:r.role??null}}function $T(e){X.getState().patch(e,{connectionState:`connecting`,lastError:null,lastErrorAt:null})}function eE(e){let t=LT();X.getState().patch(e,{connectionState:`connected`,authState:`authenticated`,connectedAt:t,disconnectedAt:null,lastError:null,lastErrorAt:null}),xg.getState().markConnected(e,t)}function tE(e,t){X.getState().patch(e,{connectionState:`disconnected`,disconnectedAt:LT(),...t&&t.trim().length>0?{lastError:t,lastErrorAt:LT()}:{}})}function nE(e,t){X.getState().patch(e,{connectionState:`error`,...IT(t)})}function rE(e){if(e.length<2)return[...e];let t=[];for(let n of e){let e=t.at(-1);if(e?.type===`thread.message-sent`&&n.type===`thread.message-sent`&&e.payload.threadId===n.payload.threadId&&e.payload.messageId===n.payload.messageId){t[t.length-1]={...n,payload:{...n.payload,attachments:n.payload.attachments??e.payload.attachments,createdAt:e.payload.createdAt,text:!n.payload.streaming&&n.payload.text.length>0?n.payload.text:e.payload.text+n.payload.text}};continue}t.push(n)}return t}function iE(e){return e.serverThreadArchivedAt===void 0?e.hasDraftThread:e.serverThreadArchivedAt===null}function aE(e,t){if(e.length===0)return;let n=Mg(e),r=rE(e),i=e.some(e=>e.type===`project.created`||e.type===`project.meta-updated`||e.type===`project.deleted`);n.needsProviderInvalidation&&vT.markProviderInvalidationNeeded(),vT.applyOrchestrationEvents(t,r),i&&vT.syncProjects(t),e.some(e=>e.type===`thread.created`||e.type===`thread.deleted`)&&vT.syncThreads(t);for(let e of n.promoteDraftThreadIds)bi(a(t,e));for(let e of n.clearDeletedThreadIds)vT.clearThreadDraft(a(t,e));for(let n of e)n.type===`project.deleted`&&vT.clearProjectDraftThread(o(t,n.payload.projectId));for(let e of n.removeTerminalStateThreadIds)vT.clearTerminalState(a(t,e));$().reconcileThreadDetailSubscriptionEvictionForEnvironment(t)}function oE(e,t){aE([e],t)}function sE(e=null){let t=()=>e===null||Lw.getState().generation===e;return{resetShellProjection:e=>{t()&&$().resetShellProjection(e)},applyShellEvent:(e,n)=>{t()&&$().applyShellEvent(e,n)},syncShellSnapshot:(n,r)=>{t()&&$().syncShellSnapshot(n,r,{onCurrent:()=>{e!==null&&Ba(r,e)},onReady:()=>{e!==null&&Ba(r,e)}})},applyTerminalEvent:(e,n)=>{if(!t())return;let r=a(n,ce.make(e.threadId)),i=Eb(Q.getState(),r),o=yi.getState().getDraftThreadByRef(r)!==null;iE({serverThreadArchivedAt:i?.archivedAt,hasDraftThread:o})&&zx.getState().applyTerminalEvent(r,e)}}}function cE(e){let t=Ar(e);if(!t)throw Error(`Unable to resolve websocket URL for ${e?.label??`primary environment`}.`);let n=e?.label??null;if(l()){let t=hh(),r=t.lifecycleHandlers(),i=new Hx(()=>t.nextUrl(),{...r,getConnectionLabel:()=>n,getEnvironmentId:()=>e?.environmentId??null,onOpen:()=>{r.onOpen?.(),rS(`primary-ws-open`)}});return tr(i,Pr(i,{manageTransport:!1}))}let r=async e=>{let n=await ai(),r=new URL(t,window.location.origin);return r.pathname=e,r.searchParams.set(`wsToken`,n.token),r.toString()};return tr(new Bx(()=>r(`/ws`),{getConnectionLabel:()=>n,getEnvironmentId:()=>e?.environmentId??null,getVersionMismatchHint:()=>qx(Yn())?.hint??null,onOpen:()=>{rS(`primary-ws-open`)}}),Pr(new Vx(()=>r(`/ws/device`),{getConnectionLabel:()=>n}),{openFrameSource:(e,t)=>$n({udid:e,handlers:t,socket:Eh,resolveUrl:()=>r(`/ws/device-frames`)})}))}async function lE(e,t,n){let r=Tg(e);if(!r)throw Error(`Saved environment ${e} not found.`);let i=r.desktopSsh?await XT(r.wsBaseUrl,r.httpBaseUrl,t):await tv({wsBaseUrl:r.wsBaseUrl,httpBaseUrl:r.httpBaseUrl,bearerToken:t}),a=new URL(i,window.location.origin);return a.pathname=n,a.toString()}function uE(e,t){return X.getState().ensure(e),tr(new Bx(()=>lE(e,t,`/ws`),{getConnectionLabel:()=>Tg(e)?.label??null,getEnvironmentId:()=>e,getVersionMismatchHint:()=>qx(X.getState().byId[e]?.serverConfig)?.hint??null,onAttempt:()=>{$T(e)},onOpen:()=>{eE(e)},onError:t=>{let n=qx(X.getState().byId[e]?.serverConfig);X.getState().patch(e,{connectionState:`error`,lastError:$x(t,n),lastErrorAt:LT()})},onClose:(t,n)=>{n.intentional||tE(e,$x(t.reason,qx(X.getState().byId[e]?.serverConfig)))}}),Pr(new Vx(()=>lE(e,t,`/ws/device`),{getConnectionLabel:()=>Tg(e)?.label??null}),{openFrameSource:(n,r)=>$n({udid:n,handlers:r,socket:Eh,resolveUrl:()=>lE(e,t,`/ws/device-frames`)})}))}async function dE(e,t,n,r,i){let a=Tg(e);if(!a)throw Error(`Saved environment ${e} not found.`);let[o,s]=await Promise.all([i?Promise.resolve(i):n.server.getConfig(),a.desktopSsh?YT(a.httpBaseUrl,t):$_({httpBaseUrl:a.httpBaseUrl,bearerToken:t})]);X.getState().patch(a.environmentId,{authState:s.authenticated?`authenticated`:`requires-auth`,descriptor:o.environment,serverConfig:o,role:s.authenticated?s.role??r??null:null}),xg.getState().rename(a.environmentId,o.environment.label)}function fE(e){return $().register(e)}async function pE(e){return await $().remove(e)}function mE(){let e=Vr();if(!e?.environmentId)throw Error(`Unable to resolve the primary environment.`);let t=$().read(e.environmentId);if(t)return t;let n=l()?Lw.getState().generation:null;return fE(dv({kind:`primary`,knownEnvironment:e,client:cE(e),...n===null?{}:{onResubscribe:e=>$a(e,n),onShellError:e=>Da(e,n)},...sE(n)}))}function hE(){return Vr()?.environmentId?$().connectPrimary():null}async function gE(){await $().disconnectPrimary()}function _E(){return hE()}async function vE(e){let t=globalThis.window?.desktopBridge;if(!t?.prepareDesktopWorkspaceTransport)throw Error(`Desktop workspace transport is unavailable.`);let n=$().read(e.environmentId);if(n)return await n.reconnect(),await n.ensureBootstrapped(),n;let r=new hT(e.environmentId,t),i=new Hx(()=>r.nextUrl(),{preserveSocketPath:!0,webSocketConstructor:e=>r.createSocket(e),retryTransientErrors:!1,reconnectMaxRetries:1e6,getConnectionLabel:()=>e.label,getEnvironmentId:()=>e.environmentId}),a=fE(dv({kind:`saved`,knownEnvironment:{...ii({id:e.environmentId,label:e.label,source:`hub-hosted`,target:{httpBaseUrl:`http://desktop-workspace.invalid`,wsBaseUrl:`ws://desktop-workspace.invalid`}}),environmentId:e.environmentId},client:tr(i),onConfigSnapshot:t=>{X.getState().ensure(e.environmentId),X.getState().patch(e.environmentId,{descriptor:t.environment,serverConfig:t,connectionState:`connected`})},onWelcome:t=>{X.getState().ensure(e.environmentId),X.getState().patch(e.environmentId,{descriptor:t.environment})},...sE()}));try{return await a.ensureBootstrapped(),a}catch(t){throw await pE(e.environmentId).catch(()=>void 0),t}}async function yE(e,t){return await $().ensureSavedEnvironmentConnection(e,n=>bE(e,t,n))}async function bE(e,t,n=()=>!1){let r=e,i=t?.role??null,a=t?.bearerToken??await Dg(e.environmentId),o=t?.client;for(;;){if(!a){if(e.desktopSsh){let e=await QT(r);r=e.record,a=e.bearerToken,i=e.role}else throw await kg(e.environmentId).catch(()=>void 0),X.getState().patch(e.environmentId,{authState:`requires-auth`,role:null,connectionState:`disconnected`,lastError:`Saved environment is missing its saved credential. Pair it again.`,lastErrorAt:LT()}),Error(`Saved environment is missing its saved credential.`)}r=(await ZT(r)).record;let s=a,c=o??uE(r.environmentId,s),l=DT(),u=dv({kind:`saved`,knownEnvironment:{...ii({id:r.environmentId,label:r.label,source:`manual`,target:{httpBaseUrl:r.httpBaseUrl,wsBaseUrl:r.wsBaseUrl}}),environmentId:r.environmentId},client:c,refreshMetadata:async()=>{await dE(r.environmentId,s,c)},onConfigSnapshot:e=>{l.resolve(e),X.getState().patch(r.environmentId,{descriptor:e.environment,serverConfig:e})},onWelcome:e=>{X.getState().patch(r.environmentId,{descriptor:e.environment})},...sE()});try{try{let e=t?.serverConfig??await AT(l.promise,yT);await dE(r.environmentId,s,c,i,e)}catch(e){if(!(r.desktopSsh?zT(e,401):Hc(e)&&e.status===401))throw e;if(!r.desktopSsh)throw await kg(r.environmentId),Error(`Saved environment credential expired. Pair it again.`,{cause:e});let t=await QT(r);r=t.record,a=t.bearerToken,i=t.role,await u.dispose().catch(()=>void 0),o=void 0;continue}if(n())throw await u.dispose().catch(()=>void 0),new sl(r.environmentId);return fE(u),u}catch(e){throw e instanceof sl?e:(nE(r.environmentId,e),await pE(r.environmentId).catch(()=>!1)||await u.dispose().catch(()=>void 0),e)}}}function xE(e){if(typeof document>`u`||typeof window>`u`)return bT;let t=()=>{if(document.visibilityState===`hidden`){ST=Date.now();return}document.visibilityState===`visible`&&ST!==null&&(ST=null,e(`visibilitychange`))},n=t=>{(t.persisted||ST!==null)&&(ST=null,e(`pageshow`))};return document.addEventListener(`visibilitychange`,t),window.addEventListener(`pageshow`,n),()=>{document.removeEventListener(`visibilitychange`,t),window.removeEventListener(`pageshow`,n)}}function SE(e){return $().subscribe(e)}function CE(){return $().list()}function wE(e){return $().read(e)}function TE(e){let t=wE(e);if(!t)throw Error(`No websocket client registered for environment ${e}.`);return t}async function EE(e,t){let n=await TE(e).client.server.updateSettings(t);if(Vr()?.environmentId===e){Er(n);return}let r=X.getState().byId[e]?.serverConfig;r&&X.getState().patch(e,{serverConfig:{...r,settings:n}})}function DE(){return mE()}async function OE(e){let t=Tg(e);$().cancelPendingSavedEnvironmentConnection(e),$().read(e)?.kind===`saved`&&await pE(e).catch(()=>!1),tE(e),t?.desktopSsh&&typeof window<`u`&&(await window.desktopBridge?.disconnectSshEnvironment(t.desktopSsh),await kg(e))}async function kE(e){let t=Tg(e);if(!t)throw Error(`Saved environment not found.`);let n=$().read(e);if(!n){$T(e);try{await yE(t);return}catch(t){if(gT(t))return;throw nE(e,t),t}}$T(e);try{t.desktopSsh&&await ZT(t),await n.reconnect()}catch(n){if(t.desktopSsh)try{let n=await QT(Tg(e)??t);await pE(e).catch(()=>!1),await yE(n.record,{bearerToken:n.bearerToken,role:n.role});return}catch(t){if(gT(t))return;throw nE(e,t),t}throw nE(e,n),n}}async function AE(e){await OE(e),MT(e),xg.getState().remove(e),X.getState().clear(e),Q.getState().removeEnvironmentState(e),await kg(e)}async function jE(e){let t=nv({...e.pairingUrl===void 0?{}:{pairingUrl:e.pairingUrl},...e.host===void 0?{}:{host:e.host},...e.pairingCode===void 0?{}:{pairingCode:e.pairingCode}}),n=e.desktopSsh?await qT(t.httpBaseUrl):await ev({httpBaseUrl:t.httpBaseUrl}),r=n.environmentId,i=UT([r]),a=Tg(r)??VT(e.desktopSsh),o=a&&a.environmentId!==r?a:null,s=e.desktopSsh?await JT(t.httpBaseUrl,t.credential):await Q_({httpBaseUrl:t.httpBaseUrl,credential:t.credential}),c={environmentId:r,label:e.label.trim()||a?.label||n.label,wsBaseUrl:t.wsBaseUrl,httpBaseUrl:t.httpBaseUrl,createdAt:a?.createdAt??LT(),lastConnectedAt:LT(),...e.desktopSsh??a?.desktopSsh?{desktopSsh:e.desktopSsh??a?.desktopSsh}:{}};if(await Eg(c),!await Og(r,s.sessionToken))throw await WT(i),Error(`Unable to persist saved environment credentials.`);return xg.getState().upsert(c),o&&await AE(o.environmentId),await pE(r).catch(()=>!1),await yE(c,{bearerToken:s.sessionToken,role:s.role}),c}async function ME(e,t){let n=await GT(e,{issuePairingToken:!0});if(!n.pairingToken)throw Error(`Desktop SSH launch did not return a pairing token.`);return await jE({label:t?.label?.trim()||n.target.alias,host:n.httpBaseUrl,pairingCode:n.pairingToken,desktopSsh:n.target}).catch(e=>{let t=[`local ${n.httpBaseUrl}`,`remote port ${n.remotePort??`unknown`}`,n.remoteServerKind?`remote server ${n.remoteServerKind}`:null].filter(Boolean).join(`, `),r=e instanceof Error?e.message:String(e);throw Error(`${r} (${t})`)})}async function NE(e){await $().read(e)?.ensureBootstrapped()}function PE(){return $().start()}var FE=n({waitForSavedEnvironmentRegistryHydration:()=>Cg});export{KC as $,rs as $n,w_ as $t,Bw as A,Td as An,Hb as At,_w as B,El as Bn,bb as Bt,Zw as C,Bh as Cn,Ix as Ct,Uw as D,Dh as Dn,Jb as Dt,nT as E,zh as En,Gb as Et,Pw as F,_u as Fn,gb as Ft,aC as G,Ol as Gn,vb as Gt,pw as H,Al as Hn,Sb as Ht,Tw as I,bu as In,Ob as It,RC as J,yl as Jn,Q as Jt,oC as K,wl as Kn,_b as Kt,Cw as L,Ql as Ln,yb as Lt,Rw as M,zu as Mn,Bb as Mt,Lw as N,Ru as Nn,mb as Nt,Vw as O,kh as On,qb as Ot,zw as P,Bu as Pn,Tb as Pt,qC as Q,os as Qn,F_ as Qt,xw as R,$l as Rn,Cb as Rt,iT as S,_g as Sn,zx as St,eT as T,Hh as Tn,Xb as Tt,dw as U,Tl as Un,Eb as Ut,cw as V,Sl as Vn,xb as Vt,sw as W,Dl as Wn,Db as Wt,vC as X,bl as Xn,sv as Xt,yC as Y,_l as Yn,xv as Yt,iC as Z,us as Zn,I_ as Zt,PE as _,wg as _n,iS as _t,gE as a,m_ as an,YC as at,oT as b,X as bn,Zx as bt,DE as c,r_ as cn,qS as ct,FT as d,Gg as dn,BS as dt,R_ as en,QS as et,wE as f,n_ as fn,GS as ft,NT as g,Ig as gn,rS as gt,TE as h,Fg as hn,yS as ht,vE as i,zg as in,MC as it,Fw as j,Vu as jn,Ub as jt,Hw as k,Oh as kn,Wb as kt,CE as l,t_ as ln,RS as lt,AE as m,Lg as mn,bS as mt,jE as n,q_ as nn,LC as nt,OE as o,Kg as on,ZS as ot,kE as p,x_ as pn,LS as pt,kC as q,kl as qn,hb as qt,ME as r,o_ as rn,AC as rt,NE as s,S_ as sn,YS as st,FE as t,E_ as tn,tC as tt,PT as u,p_ as un,US as ut,SE as v,jg as vn,Jx as vt,Xw as w,Rh as wn,Px as wt,rT as x,vg as xn,qx as xt,EE as y,xg as yn,Qx as yt,bw as z,tu as zn,wb as zt};