ryco-cli 0.1.19 → 0.1.20

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 (188) hide show
  1. package/dist/{AcpNativeLogging-sb_DOSyg.cjs → AcpNativeLogging-Bh7MX3rC.cjs} +1 -1
  2. package/dist/{AcpNativeLogging-BnzQt9go.mjs → AcpNativeLogging-CLM3p9JD.mjs} +1 -1
  3. package/dist/{AzureDevOpsSourceControlProvider-BHtgXept.cjs → AzureDevOpsSourceControlProvider-D9QXGi1h.cjs} +2 -2
  4. package/dist/{AzureDevOpsSourceControlProvider-B_rxsveN.mjs → AzureDevOpsSourceControlProvider-jQm1WPMS.mjs} +2 -2
  5. package/dist/{BitbucketSourceControlProvider-CAQf4Kv7.cjs → BitbucketSourceControlProvider-C3VDp9qR.cjs} +2 -2
  6. package/dist/{BitbucketSourceControlProvider-BMaa5G9E.mjs → BitbucketSourceControlProvider-j95Cro_2.mjs} +2 -2
  7. package/dist/{ClaudeDriver-QCXWLMlT.mjs → ClaudeDriver-CT89QDP8.mjs} +2 -2
  8. package/dist/{ClaudeDriver-DfPigB1i.cjs → ClaudeDriver-DiRhQM2K.cjs} +2 -2
  9. package/dist/{CodexDriver-BTZDfSTo.cjs → CodexDriver-BmKoU7w_.cjs} +3 -3
  10. package/dist/{CodexDriver-pMXV4cdE.mjs → CodexDriver-CBYfPl_X.mjs} +3 -3
  11. package/dist/{CodexTextGeneration-ES8U6XFV.mjs → CodexTextGeneration-B7GPyLo2.mjs} +1 -1
  12. package/dist/{CodexTextGeneration-BNKVkvo9.cjs → CodexTextGeneration-CuXvtfAi.cjs} +1 -1
  13. package/dist/{CopilotDriver-B313kdfE.mjs → CopilotDriver-BJ1P_bHz.mjs} +3 -3
  14. package/dist/{CopilotDriver-BCNHWlcE.cjs → CopilotDriver-XX5zmGVK.cjs} +3 -3
  15. package/dist/{CursorDriver-DtCq_M54.mjs → CursorDriver-BH6yAijk.mjs} +3 -3
  16. package/dist/{CursorDriver-BOFTf_G1.cjs → CursorDriver-CYMXQKec.cjs} +3 -3
  17. package/dist/{ForgejoSourceControlProvider-Xx8gP9mV.cjs → ForgejoSourceControlProvider-Dzg-BJY_.cjs} +2 -2
  18. package/dist/{ForgejoSourceControlProvider-BjJmvo0h.mjs → ForgejoSourceControlProvider-ZfU3SBzW.mjs} +2 -2
  19. package/dist/{GitHubSourceControlProvider-oFASPn98.cjs → GitHubSourceControlProvider-BpyIi23Q.cjs} +2 -2
  20. package/dist/{GitHubSourceControlProvider-CwSuSyD7.mjs → GitHubSourceControlProvider-Bx5_H3zb.mjs} +2 -2
  21. package/dist/{GitLabSourceControlProvider-BzOAAREX.mjs → GitLabSourceControlProvider-DjvGD1WZ.mjs} +2 -2
  22. package/dist/{GitLabSourceControlProvider-CfCdfJ4C.cjs → GitLabSourceControlProvider-QccSsOnx.cjs} +2 -2
  23. package/dist/{GrokDriver-4ZUx36Bj.mjs → GrokDriver-BPIUrqkN.mjs} +3 -3
  24. package/dist/{GrokDriver-CU16uh8w.cjs → GrokDriver-jE4az7JZ.cjs} +3 -3
  25. package/dist/{OpenCodeDriver-B9Hxfodu.cjs → OpenCodeDriver-IbZqAzYW.cjs} +2 -2
  26. package/dist/{OpenCodeDriver-CmoacKRC.mjs → OpenCodeDriver-_hUfFwH4.mjs} +2 -2
  27. package/dist/{SourceControlProviderDiscoveryCatalog-G0HUTo-t.mjs → SourceControlProviderDiscoveryCatalog-CHxCP6Ng.mjs} +1 -1
  28. package/dist/{SourceControlProviderDiscoveryCatalog-DZrf3FFb.cjs → SourceControlProviderDiscoveryCatalog-CnkV-oKD.cjs} +1 -1
  29. package/dist/bin.cjs +14 -17
  30. package/dist/bin.mjs +14 -17
  31. package/dist/client/assets/{AccountSettings-CTztI8Bi.js → AccountSettings-CvD49Uja.js} +1 -1
  32. package/dist/client/assets/{AiFocusSettings-3u1skSAb.js → AiFocusSettings-CYIp0JOV.js} +1 -1
  33. package/dist/client/assets/{AnimatedHeight-Dhoy_tmE.js → AnimatedHeight-CM_Eh6tz.js} +1 -1
  34. package/dist/client/assets/{AppearanceSettings-BR5lbrLN.js → AppearanceSettings-BwUAv5oz.js} +1 -1
  35. package/dist/client/assets/{BranchToolbar.logic-Dmwakdqj.js → BranchToolbar.logic-CKKpnCfs.js} +1 -1
  36. package/dist/client/assets/{ChatRightPanel-DkOGSrAn.js → ChatRightPanel-DYXZNh1m.js} +3 -3
  37. package/dist/client/assets/{ChatThreadRouteView-CGYYcrsI.js → ChatThreadRouteView-B0kj0wFr.js} +1 -1
  38. package/dist/client/assets/{CommandPaletteDialog-XNiKnBBc.js → CommandPaletteDialog-CJKvYVxh.js} +1 -1
  39. package/dist/client/assets/{CompositeItem-qhfO5Blk.js → CompositeItem-B4ITmHni.js} +1 -1
  40. package/dist/client/assets/{CompositeRoot-CXp9th_F.js → CompositeRoot-C5I2Yh5e.js} +1 -1
  41. package/dist/client/assets/{ConnectionsSettings-BY3ddbHV.js → ConnectionsSettings-4l-DXYo6.js} +1 -1
  42. package/dist/client/assets/{DiagnosticsSettings-Ci3rPY6t.js → DiagnosticsSettings-B6IUUiYM.js} +1 -1
  43. package/dist/client/assets/{DialogHandle-Bx9yEeA_.js → DialogHandle-Bs7TUuxl.js} +1 -1
  44. package/dist/client/assets/{DialogPopup-DXniIm-O.js → DialogPopup-BAK5J3da.js} +1 -1
  45. package/dist/client/assets/DialogRoot-DMnQO_iQ.js +1 -0
  46. package/dist/client/assets/{DialogTitle-_K4jB_gk.js → DialogTitle-B1m3rLO-.js} +1 -1
  47. package/dist/client/assets/{DialogTrigger-Dqu3mivf.js → DialogTrigger-VXV8wYO4.js} +1 -1
  48. package/dist/client/assets/{DialogViewport-D732iUV7.js → DialogViewport-yUeHNu43.js} +1 -1
  49. package/dist/client/assets/{DraftChatThreadRouteView-Dywv4CEn.js → DraftChatThreadRouteView-C39ZNgWr.js} +1 -1
  50. package/dist/client/assets/{ExternalIdentityWeb.logic-CS0uWMYD.js → ExternalIdentityWeb.logic-TlJdh82R.js} +1 -1
  51. package/dist/client/assets/{GlassSurface-DvC0rFwP.js → GlassSurface-BWk2twKc.js} +1 -1
  52. package/dist/client/assets/{HostedConnectionControls-BvTKuCi3.js → HostedConnectionControls-DO5uPfav.js} +1 -1
  53. package/dist/client/assets/{HostedHubRoot-CP5muHrF.js → HostedHubRoot-DkHX6TkK.js} +1 -1
  54. package/dist/client/assets/{HostedNativeAuthorizationRoute-A5gRE9XG.js → HostedNativeAuthorizationRoute-C1VRYU0-.js} +1 -1
  55. package/dist/client/assets/{HostedRelayTrustNotice-DJHB-hdG.js → HostedRelayTrustNotice-Cl7lRwRJ.js} +1 -1
  56. package/dist/client/assets/{Icons-D3hxyIhB.js → Icons-uMh1k5C0.js} +1 -1
  57. package/dist/client/assets/{IntegrationsSettingsPanel-C84xzXbm.js → IntegrationsSettingsPanel-Mx-1xSUL.js} +1 -1
  58. package/dist/client/assets/{KeybindingsSettings-Ch3AQ6Q-.js → KeybindingsSettings-Bv3H18VO.js} +1 -1
  59. package/dist/client/assets/{McpServersSettings-9gaMeIPz.js → McpServersSettings-Cbq-uHU3.js} +1 -1
  60. package/dist/client/assets/{MobileSheet-CyXRW17C.js → MobileSheet-DS7_soKu.js} +1 -1
  61. package/dist/client/assets/{NewWorktreeDialog-CkhG-yS2.js → NewWorktreeDialog-CLm1JR27.js} +1 -1
  62. package/dist/client/assets/{NoActiveThreadState-BLcjrUMm.js → NoActiveThreadState-CFxNrhs_.js} +1 -1
  63. package/dist/client/assets/{NodeSecuritySettings-CfDwptzi.js → NodeSecuritySettings-B3uURyma.js} +1 -1
  64. package/dist/client/assets/{OpinionatedPluginsSettings-Dh6Ymfc-.js → OpinionatedPluginsSettings-B7gZOBCs.js} +1 -1
  65. package/dist/client/assets/{PhoneGetAppInterstitial-BP2XMKHP.js → PhoneGetAppInterstitial-DQdUrqs1.js} +1 -1
  66. package/dist/client/assets/{PhoneGetAppInterstitialBackdrop-B0rZOvB2.js → PhoneGetAppInterstitialBackdrop-DbRPU11Z.js} +1 -1
  67. package/dist/client/assets/{PhoneHome-Cx7nMLqo.js → PhoneHome-BbZKBYb8.js} +1 -1
  68. package/dist/client/assets/{PhoneSettingsSurface-kXeokfgI.js → PhoneSettingsSurface-BJ8jDucY.js} +1 -1
  69. package/dist/client/assets/{ProjectFavicon-BcX_Ec0T.js → ProjectFavicon-DHnstN4J.js} +1 -1
  70. package/dist/client/assets/ProviderModelPicker-Ch69G0-0.js +1 -0
  71. package/dist/client/assets/{ProviderUpdateLaunchNotification.logic-BdeBHnT4.js → ProviderUpdateLaunchNotification.logic-D3qYdp40.js} +1 -1
  72. package/dist/client/assets/{ProvidersSettingsPanel-m1r_skHL.js → ProvidersSettingsPanel-Dz-1od7X.js} +1 -1
  73. package/dist/client/assets/{RedactedSensitiveText-D7gjFW0p.js → RedactedSensitiveText-BORE69Ig.js} +1 -1
  74. package/dist/client/assets/{RootAppShell-dI1nMiVY.js → RootAppShell-DnesFYfo.js} +2 -2
  75. package/dist/client/assets/{RycoLetterMark-JQr1uxZT.js → RycoLetterMark-DDx_gBX-.js} +1 -1
  76. package/dist/client/assets/{SettingsDialog-CHOdPMdL.js → SettingsDialog-CWK_H1sI.js} +1 -1
  77. package/dist/client/assets/{SettingsPanels-B2k-6Ehb.js → SettingsPanels-DxMEuovz.js} +1 -1
  78. package/dist/client/assets/{SettingsPanels.editor-DvS8npAI.js → SettingsPanels.editor-D2gxvDPy.js} +1 -1
  79. package/dist/client/assets/{SourceControlSettings-CokcENz_.js → SourceControlSettings-CB2SdaRk.js} +1 -1
  80. package/dist/client/assets/{StatisticsPage-TN6yaBa1.js → StatisticsPage-MhMDuSSQ.js} +1 -1
  81. package/dist/client/assets/{StatisticsPanel-BKw4XkjR.js → StatisticsPanel-D3d0bJgk.js} +1 -1
  82. package/dist/client/assets/{StatisticsSettingsLink-tBTypC6v.js → StatisticsSettingsLink-DlnQpfyr.js} +1 -1
  83. package/dist/client/assets/{ThreadStatusIndicators-Zvgn04Dn.js → ThreadStatusIndicators-CPpIFcAC.js} +0 -0
  84. package/dist/client/assets/{ThreadTerminalDrawer-BI6ku1uz.js → ThreadTerminalDrawer-DvadlVXV.js} +1 -1
  85. package/dist/client/assets/{ThreadWorkspacePanel-DwaK2nc1.js → ThreadWorkspacePanel-Ct9EINsa.js} +1 -1
  86. package/dist/client/assets/{ToolbarRootContext-BXZDNd0W.js → ToolbarRootContext-DtUqN8i6.js} +1 -1
  87. package/dist/client/assets/{WorkItemsTab-Cxn1bSXE.js → WorkItemsTab-CI6hTQ_k.js} +1 -1
  88. package/dist/client/assets/{alert-DzagxL5z.js → alert-DQjuri3D.js} +1 -1
  89. package/dist/client/assets/{alert-dialog-CQaNXuTj.js → alert-dialog-Cb2TnXzy.js} +1 -1
  90. package/dist/client/assets/{authorization-D3QNaV6E.js → authorization-BrGZruGo.js} +1 -1
  91. package/dist/client/assets/{badge-C5_ROuZu.js → badge-Cil0isYQ.js} +1 -1
  92. package/dist/client/assets/{branding-BBkacezg.js → branding-BEx1jrAA.js} +1 -1
  93. package/dist/client/assets/{button-84K7n2wA.js → button-CBqaO2Ub.js} +1 -1
  94. package/dist/client/assets/{capabilities-D1zCmMpy.js → capabilities-Cj8jXZOW.js} +1 -1
  95. package/dist/client/assets/{chatThreadActions-VKH852R7.js → chatThreadActions-kwD_yAEt.js} +1 -1
  96. package/dist/client/assets/{collapsible-BSEa-ORB.js → collapsible-DBPd--L7.js} +1 -1
  97. package/dist/client/assets/{command-C_cBoAjK.js → command-DuPvkUAz.js} +1 -1
  98. package/dist/client/assets/{composerDraftStore-DM8BJvHt.js → composerDraftStore-czbuHgbM.js} +1 -1
  99. package/dist/client/assets/{data-list-D98sJjJQ.js → data-list-BNy2Nwkd.js} +1 -1
  100. package/dist/client/assets/{desktopUpdateAtoms-B8Szv6by.js → desktopUpdateAtoms-Dz4zQu-C.js} +1 -1
  101. package/dist/client/assets/{desktopWorkspace-V4qpyp0M.js → desktopWorkspace-wrPRMcOi.js} +1 -1
  102. package/dist/client/assets/{device-CNHT_o2u.js → device-DbMaLmeM.js} +1 -1
  103. package/dist/client/assets/{dialog-ekyTdmtN.js → dialog-Csp7hsmq.js} +1 -1
  104. package/dist/client/assets/{draft-input-BzdYQSqp.js → draft-input-COB-ymgx.js} +1 -1
  105. package/dist/client/assets/{editorPreferences-n_SEOStx.js → editorPreferences-lQ3Fm4yA.js} +1 -1
  106. package/dist/client/assets/{empty-Bo-8VHEg.js → empty-BcTA7vWq.js} +1 -1
  107. package/dist/client/assets/{env-Clz4p9nL.js → env-BZZxbmon.js} +1 -1
  108. package/dist/client/assets/{getPseudoElementBounds-2BN7VP7X.js → getPseudoElementBounds-BaLrkv_J.js} +1 -1
  109. package/dist/client/assets/{group-NJVrmJK2.js → group-CCjhaP2K.js} +1 -1
  110. package/dist/client/assets/{index-D4BJ8pQ9.js → index-QY6vcnCY.js} +2 -2
  111. package/dist/client/assets/{input-Zumpn45a.js → input-pu0UXdN_.js} +1 -1
  112. package/dist/client/assets/{kbd-BmI1rkHM.js → kbd-xUvRCeUS.js} +1 -1
  113. package/dist/client/assets/{keybindings-uuaAI71h.js → keybindings-Bj6xWIbQ.js} +1 -1
  114. package/dist/client/assets/{label-DYSChiPa.js → label-BzDE8wjR.js} +1 -1
  115. package/dist/client/assets/{lib-BHW_qN3R.js → lib-B6XyeqaU.js} +1 -1
  116. package/dist/client/assets/{logging-Bj9aNa1i.js → logging-1BfRrhxL.js} +1 -1
  117. package/dist/client/assets/main-CZzCxtM-.css +2 -0
  118. package/dist/client/assets/{main-YXgtRMJq.js → main-stppnsiU.js} +2 -2
  119. package/dist/client/assets/{menu-DNSzJ_Xt.js → menu-g3Hcm2JF.js} +1 -1
  120. package/dist/client/assets/{popover-CN-oXBGi.js → popover-z5hURYff.js} +1 -1
  121. package/dist/client/assets/{primary-DjvrcOzR.js → primary-AnB-Zuft.js} +1 -1
  122. package/dist/client/assets/{projectPaths-Da79jKxq.js → projectPaths-BFTUsvWs.js} +1 -1
  123. package/dist/client/assets/{providerDriverMeta-C5Ifsitu.js → providerDriverMeta-C9M8tUrj.js} +1 -1
  124. package/dist/client/assets/{providerIconUtils-DzYW2dg3.js → providerIconUtils-BXecnJ0v.js} +1 -1
  125. package/dist/client/assets/providerInstances-CMy-5cGE.js +1 -0
  126. package/dist/client/assets/providerModels-CMy-5cGE.js +1 -0
  127. package/dist/client/assets/{qr-code-LEPl28s1.js → qr-code-B6lBPRxy.js} +1 -1
  128. package/dist/client/assets/{radio-group-DUiKilPu.js → radio-group-DQahlnSi.js} +1 -1
  129. package/dist/client/assets/{resolveAriaLabelledBy-zZ8aBV0g.js → resolveAriaLabelledBy-CUqcBhyS.js} +1 -1
  130. package/dist/client/assets/{rightPanelRouteSearch-BvTNRdcl.js → rightPanelRouteSearch-uEySicf2.js} +1 -1
  131. package/dist/client/assets/{runtime-rC2k29TW.js → runtime-DRPzstwF.js} +1 -1
  132. package/dist/client/assets/{scroll-area-CBSY6ISs.js → scroll-area-CzUrMo2h.js} +1 -1
  133. package/dist/client/assets/{scrollEdges-q2Ioxety.js → scrollEdges-C5VxoJIp.js} +1 -1
  134. package/dist/client/assets/{select-CY7KGJfs.js → select-_C7bRT7k.js} +1 -1
  135. package/dist/client/assets/{separator-BhDQoah6.js → separator-CFUmZFfK.js} +1 -1
  136. package/dist/client/assets/{session-logic-yjU32k5M.js → session-logic-C5moG_sv.js} +1 -1
  137. package/dist/client/assets/{settingsDialogStore-3FuA919f.js → settingsDialogStore-DnU14tMG.js} +1 -1
  138. package/dist/client/assets/{settingsLayout-Bdb0BKqT.js → settingsLayout-zwP6p5aD.js} +1 -1
  139. package/dist/client/assets/{sheet-CAyuCkkv.js → sheet-BoROLwxR.js} +1 -1
  140. package/dist/client/assets/{sidebar-BJtWwdvq.js → sidebar-5T3qKIfp.js} +1 -1
  141. package/dist/client/assets/{sidebarProjectFolders-alWDQ6Ua.js → sidebarProjectFolders-Bzdw3xc6.js} +1 -1
  142. package/dist/client/assets/{sidebarStatusText-CFZFs_GL.js → sidebarStatusText-q88Acn3r.js} +1 -1
  143. package/dist/client/assets/{skeleton-DVOyUeDB.js → skeleton-C2GDOvXd.js} +1 -1
  144. package/dist/client/assets/{spinner-QltLJ3rj.js → spinner-Dlyh0j_K.js} +1 -1
  145. package/dist/client/assets/{src-DUTt1PTH.js → src-Blzsn4sO.js} +1 -1
  146. package/dist/client/assets/storeSelectors-BJw1h5Ih.js +1 -0
  147. package/dist/client/assets/{switch-Buq6cQMX.js → switch-CIMwetO3.js} +1 -1
  148. package/dist/client/assets/{terminal-links-B5riX-FI.js → terminal-links-BJzH2Ipe.js} +1 -1
  149. package/dist/client/assets/{textarea-oR-QEhm-.js → textarea-C0_BLJbT.js} +1 -1
  150. package/dist/client/assets/{threadPinning-DTdgSmd6.js → threadPinning-DQrBoIxu.js} +1 -1
  151. package/dist/client/assets/{threadPriorityRefreshRuntime-C9_hY5A-.js → threadPriorityRefreshRuntime-D-OkS27H.js} +1 -1
  152. package/dist/client/assets/{toast-ClkUrsPP.js → toast-D7IDKuLa.js} +1 -1
  153. package/dist/client/assets/{toggle-CFeFFpQ7.js → toggle-DjmkdNns.js} +1 -1
  154. package/dist/client/assets/{toggle-group-DTpGnsyn.js → toggle-group-q7LGJy7u.js} +1 -1
  155. package/dist/client/assets/{tooltip-C0IyzT7d.js → tooltip-c9oahm_e.js} +1 -1
  156. package/dist/client/assets/types-BJw1h5Ih.js +1 -0
  157. package/dist/client/assets/{uiStateStore-77JarUWB.js → uiStateStore-C48VlkZ2.js} +1 -1
  158. package/dist/client/assets/{useAtlassian-CCX2YMMO.js → useAtlassian-Bpvpm41l.js} +0 -0
  159. package/dist/client/assets/{useButton-DqpJ6e75.js → useButton-CbjUY1n3.js} +1 -1
  160. package/dist/client/assets/{useCompositeListItem-Dsvm-5fB.js → useCompositeListItem-Mh9CnfjW.js} +1 -1
  161. package/dist/client/assets/{useDebouncedValue-CEauJPrh.js → useDebouncedValue-fMFxXx4-.js} +1 -1
  162. package/dist/client/assets/{useFloatingRootContext-6_Jqtexa.js → useFloatingRootContext-P6J9bP_1.js} +1 -1
  163. package/dist/client/assets/{useHandleNewThread-Cqmf_d8K.js → useHandleNewThread-C1VSk4Ji.js} +1 -1
  164. package/dist/client/assets/{useLabelableId-C6SFj1V_.js → useLabelableId-ve_G1Djw.js} +1 -1
  165. package/dist/client/assets/{useLocation-B6GbzsxV.js → useLocation-LUorHj6V.js} +1 -1
  166. package/dist/client/assets/{useOpenInteractionType-Dz3FMr9X.js → useOpenInteractionType-BcwkVFGu.js} +1 -1
  167. package/dist/client/assets/{usePhoneThreadActions-CCCWjAtp.js → usePhoneThreadActions--SRv1Gdm.js} +1 -1
  168. package/dist/client/assets/{usePopupViewport-BlA5mlIJ.js → usePopupViewport-DyXMbxzY.js} +1 -1
  169. package/dist/client/assets/{useScrollLock-DfvnGWSO.js → useScrollLock-DvPB4gyu.js} +1 -1
  170. package/dist/client/assets/{useStatistics-Cm_ww9Q5.js → useStatistics-B4vW9Enx.js} +1 -1
  171. package/dist/client/assets/{useSwipeDismiss-DTX51-vs.js → useSwipeDismiss-8zZC4ynu.js} +1 -1
  172. package/dist/client/assets/{useThreadActions-BQRfXVVz.js → useThreadActions-wbcN8Mp3.js} +1 -1
  173. package/dist/client/assets/{useTriggerFocusGuards-9BE2fzWh.js → useTriggerFocusGuards-DI2oAYh0.js} +1 -1
  174. package/dist/client/assets/{useValueChanged-BLrOCH_k.js → useValueChanged-DeYQvzxH.js} +1 -1
  175. package/dist/client/assets/{utils-CjMKiqw4.js → utils-Dz7wQZDk.js} +1 -1
  176. package/dist/client/index.html +1 -1
  177. package/dist/{collectUint8StreamText-BIOBnIzb.mjs → collectUint8StreamText-B3klZuIF.mjs} +0 -1
  178. package/dist/{collectUint8StreamText-CJEzr0MN.cjs → collectUint8StreamText-CDu-bszH.cjs} +0 -1
  179. package/dist/{makeManagedServerProvider-CMwrPtKm.mjs → makeManagedServerProvider-CsaYHU8T.mjs} +1 -1
  180. package/dist/{makeManagedServerProvider-CkLRh_mS.cjs → makeManagedServerProvider-DeEmDbiq.cjs} +1 -1
  181. package/package.json +1 -1
  182. package/dist/client/assets/DialogRoot-Bk6gBQ5V.js +0 -1
  183. package/dist/client/assets/ProviderModelPicker-0XHZhfEq.js +0 -1
  184. package/dist/client/assets/main-CgLLEwXi.css +0 -2
  185. package/dist/client/assets/providerInstances-DuEFgB4d.js +0 -1
  186. package/dist/client/assets/providerModels-DuEFgB4d.js +0 -1
  187. package/dist/client/assets/storeSelectors-9DTss3Bt.js +0 -1
  188. package/dist/client/assets/types-9DTss3Bt.js +0 -1
package/dist/bin.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { $ as AgentControlExternalOverviewResult, $a as DESKTOP_NATIVE_NODE_CLAIM_COMMIT_PATH, $i as ThreadStatusBucketOverriddenPayload$1, $n as ClaudeSettings, $o as ThreadId, $r as OrchestrationEventType, $t as AgentControlMcpRecentActivityResult, A as AGENT_CONTROL_MCP_AUTOMATION_LIST_PROMPT_MAX_CHARS, Ai as ProjectionPendingApprovalDecision, An as AtlassianConnectionStatus, Ao as AuthRevokeClientSessionInput, At as AgentControlMcpProposeAutomationUpdateInput, B as AGENT_CONTROL_TERMINAL_PROPOSAL_STATUSES, Ba as ModelCapabilities, Bi as ThreadDeletedPayload$1, Bn as McpProviderCapabilities, Bo as EnvironmentId, Br as DEFAULT_PROJECT_METADATA_DIR, Bt as AgentControlMcpProposeProjectCreateInput, C as AGENT_CONTROL_DEVICE_ACTION_KINDS, Ca as SourceControlProviderError, Cn as DeviceUdid, Co as RelayChannelId, Cr as ProviderSteerTurnInput, Ct as AgentControlMcpListThreadsInput, D as AGENT_CONTROL_EXTERNAL_MCP_TOOL_NAMES, Di as ProjectMetaUpdatedPayload$1, Dn as AtlassianCapability, Do as AuthBootstrapInput, Dr as CONTEXT_HANDOFF_ACTIVITY_KIND, Dt as AgentControlMcpOrchestrationEventsResult, E as AGENT_CONTROL_EXTERNAL_MCP_TOOLS, Ea as VcsDriverKind, Ei as ProjectDeletedPayload$1, En as ThreadPriorityRpcError, Eo as RelayProtocolVersion, Er as AgentTokenMode, Et as AgentControlMcpOperationalReadInput, F as AGENT_CONTROL_MCP_TOOLS, Fi as RuntimeMode, Fn as McpInventoryResource, Fo as AtlassianResourceId, Fr as ContextHandoffDigest, Ft as AgentControlMcpProposeDeviceInstallInput, G as AgentControlAutomationDefinition, Gi as ThreadMetaUpdatedPayload$1, Gn as McpServerWritableConfig, Go as PositiveInt, Gr as OrchestrationAggregateKind, Gt as AgentControlMcpReadAutomationInput, H as AgentControlActionKind, Ha as ProviderInstanceId, Hi as ThreadGoalUpdatedPayload$1, Hn as McpServer, Ho as IsoDateTime, Hr as ModelSelection, Ht as AgentControlMcpProposeProjectUpdateInput, I as AGENT_CONTROL_MCP_TOOL_NAMES, Ia as DEFAULT_GIT_TEXT_GENERATION_MODEL_BY_PROVIDER, Ii as ThreadActivityAppendedPayload$1, In as McpInventoryResourceTemplate, Io as AuthSessionId, Ir as ContextHandoffEndpointSnapshot, It as AgentControlMcpProposeDeviceLaunchInput, J as AgentControlAutomationRunId, Ja as TerminalNotRunningError, Ji as ThreadRevertedPayload$1, Jn as McpWorkspaceId, Jr as OrchestrationCheckpointSummary, Jt as AgentControlMcpReadDeviceContentInput, K as AgentControlAutomationId, Ka as TerminalCwdError, Ki as ThreadPriorityProjectedRanking, Kn as McpSettingsError, Ko as ProjectId, Kr as OrchestrationCheckpointFile, Kt as AgentControlMcpReadAutomationResult, L as AGENT_CONTROL_MCP_WAIT_TIMEOUT_MS_DEFAULT, La as DEFAULT_GIT_TEXT_GENERATION_OPTIONS_BY_PROVIDER, Li as ThreadArchivedPayload$1, Ln as McpInventoryTool, Lo as CheckpointRef, Lr as ContextHandoffInspectionError, Lt as AgentControlMcpProposeDeviceOpenUrlInput, M as AGENT_CONTROL_MCP_OPERATIONAL_RANGE_MAX_MS, Ma as ThreadPriorityBatchId, Mn as GitCommandError, Mo as AuthRpcError, Mr as ChatAttachment, Mt as AgentControlMcpProposeDeviceBootInput, N as AGENT_CONTROL_MCP_OPERATIONAL_RETENTION_MS, Na as ThreadPriorityCandidateId, Ni as ProviderInteractionMode, Nn as GitManagerError, No as ApprovalRequestId, Nr as ClientOrchestrationCommand, Nt as AgentControlMcpProposeDeviceDetachInput, O as AGENT_CONTROL_EXTERNAL_PAIRING_CODE_TTL_MS, Oa as VcsProcessExitError, Oi as ProjectMetadataDir, On as AtlassianConnectionError, Oo as AuthClientMetadataDeviceType, Or as CONTEXT_HANDOFF_ERROR_MAX_CHARS, Ot as AgentControlMcpProposeAutomationCancelInput, P as AGENT_CONTROL_MCP_READ_THREAD_TEXT_BUDGET_CHARS, Pa as ThreadPriorityFingerprint, Pi as ProviderSessionRuntimeStatus, Pn as TextGenerationError, Po as AtlassianConnectionId, Pr as ContextHandoffActivityPayload, Pt as AgentControlMcpProposeDeviceInputInput, Q as AgentControlExternalIntegration, Qa as OpenError, Qi as ThreadSettlementOverride, Qn as ServerProviderUpdateError, Qr as OrchestrationEventMetadata, Qt as AgentControlMcpReadThreadResult, R as AGENT_CONTROL_MCP_WAIT_TIMEOUT_MS_MAX, Ra as DEFAULT_MODEL, Ri as ThreadAttachedToWorktreePayload$1, Rn as McpListServersResult, Ro as CommandId, Rr as ContextHandoffMode, Rt as AgentControlMcpProposeDeviceRecordingInput, S as AGENT_CONTROL_CAPABILITIES, Si as PROVIDER_SEND_TURN_MAX_IMAGE_BYTES, Sn as DeviceRpcError, So as RelayCapability, Sr as ProviderSessionStartInput, St as AgentControlMcpListProjectsResult, T as AGENT_CONTROL_EXTERNAL_CREDENTIAL_AUDIENCE, Ti as ProjectCreatedPayload$1, Tn as ThreadPriorityCandidateRanking, To as RelayFrame, Tr as ProviderStopSessionInput, Tt as AgentControlMcpMutationResult, U as AgentControlActionPlan, Ua as defaultInstanceIdForDriver, Ui as ThreadInteractionModeSetPayload$1, Un as McpServerConfig, Uo as MessageId, Ur as ORCHESTRATION_WS_METHODS, Ut as AgentControlMcpProposeSettingsChangeInput, V as AGENT_CONTROL_WS_METHODS, Va as ProviderDriverKind, Vi as ThreadGoalClearedPayload$1, Vn as McpProviderSupport, Vo as EventId, Vr as DEFAULT_PROVIDER_INTERACTION_MODE, Vt as AgentControlMcpProposeProjectRemoveInput, W as AgentControlAutomation, Wa as isProviderDriverKind, Wi as ThreadMessageSentPayload, Wn as McpServerName, Wo as NonNegativeInt, Wr as OrchestrationActorKind, Wt as AgentControlMcpProviderRuntimeEventsResult, X as AgentControlExternalCapabilitiesResult, Xa as TerminalSubscriptionResyncError, Xi as ThreadSessionSetPayload$1, Xn as UsageReadError, Xo as RuntimeSessionId, Xr as OrchestrationDispatchCommandError, Xt as AgentControlMcpReadDeviceStateResult, Y as AgentControlCapability, Ya as TerminalSessionLookupError, Yi as ThreadRuntimeModeSetPayload$1, Yn as OpinionatedPluginError, Yr as OrchestrationCommandReceiptStatus, Yt as AgentControlMcpReadDeviceStateInput, Z as AgentControlExternalCreateTaskInput, Za as EDITORS, Zi as ThreadSettledPayload$1, Zn as ServerProvider, Zr as OrchestrationEvent, Zt as AgentControlMcpReadThreadInput, _ as ProjectWriteFileError, _a as ThreadGoal, _i as OrchestrationThreadHistoryCursor, _n as AgentControlRpcError, _r as isToolLifecycleItemType, _t as AgentControlMcpListAutomationsInput, a as WS_METHODS, aa as TurnDispatchMode, ai as OrchestrationGetWorkflowScriptError, an as AgentControlOperationId, ao as LOCAL_INTRODUCTION_COMPLETE_PATH, ar as OpenCodeSettings, at as AgentControlIntegrationId, b as AGENT_CONTROL_AUTOMATION_MIN_INTERVAL_MS, ba as WorkItemProviderError, bi as PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES, bn as DEVICE_SWIPE_DURATION_MAX_MS, bo as RELAY_MAX_RPC_MESSAGE_BYTES, br as ProviderRespondToUserInputInput, bt as AgentControlMcpListDevicesResult, c as WsRpcGroup, ca as WorktreeDeletedPayload$1, ci as OrchestrationProposedPlanId, cn as AgentControlPlanDigest, co as LOCAL_INTRODUCTION_MAX_BODY_BYTES, cr as ThreadEnvMode, ct as AgentControlMcpControlRequestResult, da as WorktreeRestoredPayload$1, di as OrchestrationSession, dn as AgentControlProposal, do as HubEnrollmentCeremonyDetail, dr as KeybindingsConfigError, dt as AgentControlMcpDiagnosticsSummaryResult, ea as ThreadTokenModeSetPayload$1, ei as OrchestrationGetFullThreadDiffError, en as AgentControlMcpSendMessageInput, eo as DESKTOP_NATIVE_NODE_CLAIM_DESCRIPTOR_PATH, er as CodexSettings, es as TrimmedNonEmptyString, et as AgentControlExternalProjectScope, f as ProjectListEntriesError, fa as WorktreeSourceControlStateUpdatedPayload$1, fi as OrchestrationSessionStatus, fn as AgentControlProposalId, fo as HubEnrollmentStartResult, fr as MODEL_PICKER_JUMP_KEYBINDING_COMMANDS, ft as AgentControlMcpInstallation, g as ProjectStageFileReferenceError, ga as WorktreeId, gi as OrchestrationThreadActivityTone, gn as AgentControlRiskTag, go as RELAY_MAX_CONTROL_FRAME_BYTES, gr as ToolLifecycleItemType, gt as AgentControlMcpListAutomationRunsResult, h as ProjectSearchEntriesError, ha as Worktree, hi as OrchestrationThread, hn as AgentControlResultEnvelope, ho as RELAY_FRAME_TYPES, hr as RuntimeSubagentStatus, ht as AgentControlMcpListAutomationRunsInput, i as fromLenientJson, ia as ThreadUnsettledPayload$1, ii as OrchestrationGetTurnDiffResult, in as AgentControlOperation, io as DesktopNativeNodeClaimSignRequest, ir as GrokSettings, it as AgentControlExternalWaitForTaskInput, j as AGENT_CONTROL_MCP_MESSAGE_TEXT_MAX_CHARS, ja as VcsUnsupportedOperationError, ji as ProjectionPendingApprovalStatus, jn as AtlassianProduct, jo as AuthRevokePairingLinkInput, jr as CONTEXT_HANDOFF_WS_METHODS, jt as AgentControlMcpProposeDeviceAttachInput, k as AGENT_CONTROL_EXTERNAL_PROPOSAL_TTL_MS, ki as ProjectScript, kn as AtlassianConnectionKind, ko as AuthCreatePairingCredentialInput, kr as CONTEXT_HANDOFF_INSPECTION_CHUNK_MAX_BYTES, kt as AgentControlMcpProposeAutomationCreateInput, l as FilesystemBrowseError, la as WorktreeManualPositionSetPayload$1, li as OrchestrationReadModel, ln as AgentControlPrincipal, lo as LocalIntroductionCompleteRequest, lr as KeybindingRule, lt as AgentControlMcpCreateThreadsInput, m as ProjectReadFileError, ma as StatusBucket, mi as OrchestrationStopBackgroundTaskError, mn as AgentControlRequestId, mo as RELAY_AUTHENTICATION_DEADLINE_MS, mr as THREAD_JUMP_KEYBINDING_COMMANDS, mt as AgentControlMcpInterruptThreadInput, n as decodeJsonResult, na as ThreadTurnInterruptRequestedPayload$1, ni as OrchestrationGetTaskOutputError, nn as AgentControlMcpUpdateThreadInput, no as DESKTOP_NATIVE_NODE_CLAIM_SIGN_PATH, nr as CursorSettings, nt as AgentControlExternalTaskId, o as WsDeviceRpcGroup, oa as WorktreeArchivedPayload$1, oi as OrchestrationMessage, on as AgentControlOperationState, or as ServerSettings, ot as AgentControlMcpCapabilitiesResult, p as ProjectReadFileBinaryError, pa as PullRequestState, pi as OrchestrationShellSnapshot, pn as AgentControlProposalStatus, po as HubIdentitySummary, pr as ResolvedKeybindingRule, pt as AgentControlMcpInstallationId, q as AgentControlAutomationRun, qa as TerminalHistoryError, qi as ThreadProposedPlanUpsertedPayload$1, qn as McpWorkspace, qr as OrchestrationCheckpointStatus, qt as AgentControlMcpReadControlRequestInput, r as formatSchemaError, ra as ThreadUnarchivedPayload$1, ri as OrchestrationGetTurnDiffError, rn as AgentControlMcpWaitForControlRequestInput, ro as DesktopNativeNodeClaimCommitRequest, rr as DEFAULT_SERVER_SETTINGS, rt as AgentControlExternalTaskIdInput, s as WsHostedRpcGroup, sa as WorktreeCreatedPayload$1, si as OrchestrationMessageRole, sn as AgentControlOperationStatus, so as LOCAL_INTRODUCTION_DESCRIPTOR_PATH, sr as ServerSettingsError, st as AgentControlMcpContextResult, t as collectUint8StreamText, ta as ThreadTurnDiffCompletedPayload$1, ti as OrchestrationGetSnapshotError, tn as AgentControlMcpSettingsSummaryResult, to as DESKTOP_NATIVE_NODE_CLAIM_MAX_BODY_BYTES, tr as CopilotSettings, ts as TurnId, tt as AgentControlExternalRpcError, u as PROJECT_READ_FILE_BINARY_MAX_BYTES, ua as WorktreeMetaUpdatedPayload$1, ui as OrchestrationReplayEventsError, un as AgentControlPromptSummary, uo as HubConnectorStatus, ur as KeybindingsConfig, ut as AgentControlMcpDiagnosticsSummaryInput, v as AGENT_CONTROL_ACTION_CAPABILITIES, va as WORK_ITEM_DETAIL_BODY_MAX_BYTES, vi as OrchestrationThreadHistoryError, vn as DEVICE_CAPABILITY_LABELS, vo as RELAY_MAX_DATA_FRAME_BYTES, vr as ProviderInterruptTurnInput, vt as AgentControlMcpListAutomationsResult, w as AGENT_CONTROL_ERROR_CODES, wa as SourceControlRepositoryError, wi as ProjectAvatarSetPayload$1, wn as ThreadPriorityBatchSnapshot, wo as RelayEffectiveRole, wr as ProviderStopBackgroundTaskInput, wt as AgentControlMcpListThreadsResult, x as AGENT_CONTROL_AUTOMATION_PROPOSAL_TTL_MS, xa as WorkItemProviderKind, xi as PROVIDER_SEND_TURN_MAX_FILE_BYTES, xn as DEVICE_WS_METHODS, xo as RELAY_SUPPORTED_VERSION_RANGE, xr as ProviderSendTurnInput, xt as AgentControlMcpListProjectsInput, y as AGENT_CONTROL_AUTOMATION_MAX_HORIZON_MS, ya as WORK_ITEM_DETAIL_COMMENT_BODY_MAX_BYTES, yi as OrchestrationWorktreeShell, yn as DEVICE_FRAME_MAGIC, yo as RELAY_MAX_RETRY_AFTER_MS, yr as ProviderRespondToRequestInput, yt as AgentControlMcpListDevicesInput, z as AGENT_CONTROL_RISK_TAGS, za as MODEL_SLUG_ALIASES_BY_PROVIDER, zi as ThreadCreatedPayload$1, zn as McpOauthLoginResult, zo as ContextHandoffId, zr as DEFAULT_AGENT_TOKEN_MODE, zt as AgentControlMcpProposeDeviceShutdownInput } from "./collectUint8StreamText-BIOBnIzb.mjs";
3
+ import { $ as AgentControlExternalOverviewResult, $a as DESKTOP_NATIVE_NODE_CLAIM_COMMIT_PATH, $i as ThreadStatusBucketOverriddenPayload$1, $n as ClaudeSettings, $o as ThreadId, $r as OrchestrationEventType, $t as AgentControlMcpRecentActivityResult, A as AGENT_CONTROL_MCP_AUTOMATION_LIST_PROMPT_MAX_CHARS, Ai as ProjectionPendingApprovalDecision, An as AtlassianConnectionStatus, Ao as AuthRevokeClientSessionInput, At as AgentControlMcpProposeAutomationUpdateInput, B as AGENT_CONTROL_TERMINAL_PROPOSAL_STATUSES, Ba as ModelCapabilities, Bi as ThreadDeletedPayload$1, Bn as McpProviderCapabilities, Bo as EnvironmentId, Br as DEFAULT_PROJECT_METADATA_DIR, Bt as AgentControlMcpProposeProjectCreateInput, C as AGENT_CONTROL_DEVICE_ACTION_KINDS, Ca as SourceControlProviderError, Cn as DeviceUdid, Co as RelayChannelId, Cr as ProviderSteerTurnInput, Ct as AgentControlMcpListThreadsInput, D as AGENT_CONTROL_EXTERNAL_MCP_TOOL_NAMES, Di as ProjectMetaUpdatedPayload$1, Dn as AtlassianCapability, Do as AuthBootstrapInput, Dr as CONTEXT_HANDOFF_ACTIVITY_KIND, Dt as AgentControlMcpOrchestrationEventsResult, E as AGENT_CONTROL_EXTERNAL_MCP_TOOLS, Ea as VcsDriverKind, Ei as ProjectDeletedPayload$1, En as ThreadPriorityRpcError, Eo as RelayProtocolVersion, Er as AgentTokenMode, Et as AgentControlMcpOperationalReadInput, F as AGENT_CONTROL_MCP_TOOLS, Fi as RuntimeMode, Fn as McpInventoryResource, Fo as AtlassianResourceId, Fr as ContextHandoffDigest, Ft as AgentControlMcpProposeDeviceInstallInput, G as AgentControlAutomationDefinition, Gi as ThreadMetaUpdatedPayload$1, Gn as McpServerWritableConfig, Go as PositiveInt, Gr as OrchestrationAggregateKind, Gt as AgentControlMcpReadAutomationInput, H as AgentControlActionKind, Ha as ProviderInstanceId, Hi as ThreadGoalUpdatedPayload$1, Hn as McpServer, Ho as IsoDateTime, Hr as ModelSelection, Ht as AgentControlMcpProposeProjectUpdateInput, I as AGENT_CONTROL_MCP_TOOL_NAMES, Ia as DEFAULT_GIT_TEXT_GENERATION_MODEL_BY_PROVIDER, Ii as ThreadActivityAppendedPayload$1, In as McpInventoryResourceTemplate, Io as AuthSessionId, Ir as ContextHandoffEndpointSnapshot, It as AgentControlMcpProposeDeviceLaunchInput, J as AgentControlAutomationRunId, Ja as TerminalNotRunningError, Ji as ThreadRevertedPayload$1, Jn as McpWorkspaceId, Jr as OrchestrationCheckpointSummary, Jt as AgentControlMcpReadDeviceContentInput, K as AgentControlAutomationId, Ka as TerminalCwdError, Ki as ThreadPriorityProjectedRanking, Kn as McpSettingsError, Ko as ProjectId, Kr as OrchestrationCheckpointFile, Kt as AgentControlMcpReadAutomationResult, L as AGENT_CONTROL_MCP_WAIT_TIMEOUT_MS_DEFAULT, La as DEFAULT_GIT_TEXT_GENERATION_OPTIONS_BY_PROVIDER, Li as ThreadArchivedPayload$1, Ln as McpInventoryTool, Lo as CheckpointRef, Lr as ContextHandoffInspectionError, Lt as AgentControlMcpProposeDeviceOpenUrlInput, M as AGENT_CONTROL_MCP_OPERATIONAL_RANGE_MAX_MS, Ma as ThreadPriorityBatchId, Mn as GitCommandError, Mo as AuthRpcError, Mr as ChatAttachment, Mt as AgentControlMcpProposeDeviceBootInput, N as AGENT_CONTROL_MCP_OPERATIONAL_RETENTION_MS, Na as ThreadPriorityCandidateId, Ni as ProviderInteractionMode, Nn as GitManagerError, No as ApprovalRequestId, Nr as ClientOrchestrationCommand, Nt as AgentControlMcpProposeDeviceDetachInput, O as AGENT_CONTROL_EXTERNAL_PAIRING_CODE_TTL_MS, Oa as VcsProcessExitError, Oi as ProjectMetadataDir, On as AtlassianConnectionError, Oo as AuthClientMetadataDeviceType, Or as CONTEXT_HANDOFF_ERROR_MAX_CHARS, Ot as AgentControlMcpProposeAutomationCancelInput, P as AGENT_CONTROL_MCP_READ_THREAD_TEXT_BUDGET_CHARS, Pa as ThreadPriorityFingerprint, Pi as ProviderSessionRuntimeStatus, Pn as TextGenerationError, Po as AtlassianConnectionId, Pr as ContextHandoffActivityPayload, Pt as AgentControlMcpProposeDeviceInputInput, Q as AgentControlExternalIntegration, Qa as OpenError, Qi as ThreadSettlementOverride, Qn as ServerProviderUpdateError, Qr as OrchestrationEventMetadata, Qt as AgentControlMcpReadThreadResult, R as AGENT_CONTROL_MCP_WAIT_TIMEOUT_MS_MAX, Ra as DEFAULT_MODEL, Ri as ThreadAttachedToWorktreePayload$1, Rn as McpListServersResult, Ro as CommandId, Rr as ContextHandoffMode, Rt as AgentControlMcpProposeDeviceRecordingInput, S as AGENT_CONTROL_CAPABILITIES, Si as PROVIDER_SEND_TURN_MAX_IMAGE_BYTES, Sn as DeviceRpcError, So as RelayCapability, Sr as ProviderSessionStartInput, St as AgentControlMcpListProjectsResult, T as AGENT_CONTROL_EXTERNAL_CREDENTIAL_AUDIENCE, Ti as ProjectCreatedPayload$1, Tn as ThreadPriorityCandidateRanking, To as RelayFrame, Tr as ProviderStopSessionInput, Tt as AgentControlMcpMutationResult, U as AgentControlActionPlan, Ua as defaultInstanceIdForDriver, Ui as ThreadInteractionModeSetPayload$1, Un as McpServerConfig, Uo as MessageId, Ur as ORCHESTRATION_WS_METHODS, Ut as AgentControlMcpProposeSettingsChangeInput, V as AGENT_CONTROL_WS_METHODS, Va as ProviderDriverKind, Vi as ThreadGoalClearedPayload$1, Vn as McpProviderSupport, Vo as EventId, Vr as DEFAULT_PROVIDER_INTERACTION_MODE, Vt as AgentControlMcpProposeProjectRemoveInput, W as AgentControlAutomation, Wa as isProviderDriverKind, Wi as ThreadMessageSentPayload, Wn as McpServerName, Wo as NonNegativeInt, Wr as OrchestrationActorKind, Wt as AgentControlMcpProviderRuntimeEventsResult, X as AgentControlExternalCapabilitiesResult, Xa as TerminalSubscriptionResyncError, Xi as ThreadSessionSetPayload$1, Xn as UsageReadError, Xo as RuntimeSessionId, Xr as OrchestrationDispatchCommandError, Xt as AgentControlMcpReadDeviceStateResult, Y as AgentControlCapability, Ya as TerminalSessionLookupError, Yi as ThreadRuntimeModeSetPayload$1, Yn as OpinionatedPluginError, Yr as OrchestrationCommandReceiptStatus, Yt as AgentControlMcpReadDeviceStateInput, Z as AgentControlExternalCreateTaskInput, Za as EDITORS, Zi as ThreadSettledPayload$1, Zn as ServerProvider, Zr as OrchestrationEvent, Zt as AgentControlMcpReadThreadInput, _ as ProjectWriteFileError, _a as ThreadGoal, _i as OrchestrationThreadHistoryCursor, _n as AgentControlRpcError, _r as isToolLifecycleItemType, _t as AgentControlMcpListAutomationsInput, a as WS_METHODS, aa as TurnDispatchMode, ai as OrchestrationGetWorkflowScriptError, an as AgentControlOperationId, ao as LOCAL_INTRODUCTION_COMPLETE_PATH, ar as OpenCodeSettings, at as AgentControlIntegrationId, b as AGENT_CONTROL_AUTOMATION_MIN_INTERVAL_MS, ba as WorkItemProviderError, bi as PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES, bn as DEVICE_SWIPE_DURATION_MAX_MS, bo as RELAY_MAX_RPC_MESSAGE_BYTES, br as ProviderRespondToUserInputInput, bt as AgentControlMcpListDevicesResult, c as WsRpcGroup, ca as WorktreeDeletedPayload$1, ci as OrchestrationProposedPlanId, cn as AgentControlPlanDigest, co as LOCAL_INTRODUCTION_MAX_BODY_BYTES, cr as ThreadEnvMode, ct as AgentControlMcpControlRequestResult, da as WorktreeRestoredPayload$1, di as OrchestrationSession, dn as AgentControlProposal, do as HubEnrollmentCeremonyDetail, dr as KeybindingsConfigError, dt as AgentControlMcpDiagnosticsSummaryResult, ea as ThreadTokenModeSetPayload$1, ei as OrchestrationGetFullThreadDiffError, en as AgentControlMcpSendMessageInput, eo as DESKTOP_NATIVE_NODE_CLAIM_DESCRIPTOR_PATH, er as CodexSettings, es as TrimmedNonEmptyString, et as AgentControlExternalProjectScope, f as ProjectListEntriesError, fa as WorktreeSourceControlStateUpdatedPayload$1, fi as OrchestrationSessionStatus, fn as AgentControlProposalId, fo as HubEnrollmentStartResult, fr as MODEL_PICKER_JUMP_KEYBINDING_COMMANDS, ft as AgentControlMcpInstallation, g as ProjectStageFileReferenceError, ga as WorktreeId, gi as OrchestrationThreadActivityTone, gn as AgentControlRiskTag, go as RELAY_MAX_CONTROL_FRAME_BYTES, gr as ToolLifecycleItemType, gt as AgentControlMcpListAutomationRunsResult, h as ProjectSearchEntriesError, ha as Worktree, hi as OrchestrationThread, hn as AgentControlResultEnvelope, ho as RELAY_FRAME_TYPES, hr as RuntimeSubagentStatus, ht as AgentControlMcpListAutomationRunsInput, i as fromLenientJson, ia as ThreadUnsettledPayload$1, ii as OrchestrationGetTurnDiffResult, in as AgentControlOperation, io as DesktopNativeNodeClaimSignRequest, ir as GrokSettings, it as AgentControlExternalWaitForTaskInput, j as AGENT_CONTROL_MCP_MESSAGE_TEXT_MAX_CHARS, ja as VcsUnsupportedOperationError, ji as ProjectionPendingApprovalStatus, jn as AtlassianProduct, jo as AuthRevokePairingLinkInput, jr as CONTEXT_HANDOFF_WS_METHODS, jt as AgentControlMcpProposeDeviceAttachInput, k as AGENT_CONTROL_EXTERNAL_PROPOSAL_TTL_MS, ki as ProjectScript, kn as AtlassianConnectionKind, ko as AuthCreatePairingCredentialInput, kr as CONTEXT_HANDOFF_INSPECTION_CHUNK_MAX_BYTES, kt as AgentControlMcpProposeAutomationCreateInput, l as FilesystemBrowseError, la as WorktreeManualPositionSetPayload$1, li as OrchestrationReadModel, ln as AgentControlPrincipal, lo as LocalIntroductionCompleteRequest, lr as KeybindingRule, lt as AgentControlMcpCreateThreadsInput, m as ProjectReadFileError, ma as StatusBucket, mi as OrchestrationStopBackgroundTaskError, mn as AgentControlRequestId, mo as RELAY_AUTHENTICATION_DEADLINE_MS, mr as THREAD_JUMP_KEYBINDING_COMMANDS, mt as AgentControlMcpInterruptThreadInput, n as decodeJsonResult, na as ThreadTurnInterruptRequestedPayload$1, ni as OrchestrationGetTaskOutputError, nn as AgentControlMcpUpdateThreadInput, no as DESKTOP_NATIVE_NODE_CLAIM_SIGN_PATH, nr as CursorSettings, nt as AgentControlExternalTaskId, o as WsDeviceRpcGroup, oa as WorktreeArchivedPayload$1, oi as OrchestrationMessage, on as AgentControlOperationState, or as ServerSettings, ot as AgentControlMcpCapabilitiesResult, p as ProjectReadFileBinaryError, pa as PullRequestState, pi as OrchestrationShellSnapshot, pn as AgentControlProposalStatus, po as HubIdentitySummary, pr as ResolvedKeybindingRule, pt as AgentControlMcpInstallationId, q as AgentControlAutomationRun, qa as TerminalHistoryError, qi as ThreadProposedPlanUpsertedPayload$1, qn as McpWorkspace, qr as OrchestrationCheckpointStatus, qt as AgentControlMcpReadControlRequestInput, r as formatSchemaError, ra as ThreadUnarchivedPayload$1, ri as OrchestrationGetTurnDiffError, rn as AgentControlMcpWaitForControlRequestInput, ro as DesktopNativeNodeClaimCommitRequest, rr as DEFAULT_SERVER_SETTINGS, rt as AgentControlExternalTaskIdInput, s as WsHostedRpcGroup, sa as WorktreeCreatedPayload$1, si as OrchestrationMessageRole, sn as AgentControlOperationStatus, so as LOCAL_INTRODUCTION_DESCRIPTOR_PATH, sr as ServerSettingsError, st as AgentControlMcpContextResult, t as collectUint8StreamText, ta as ThreadTurnDiffCompletedPayload$1, ti as OrchestrationGetSnapshotError, tn as AgentControlMcpSettingsSummaryResult, to as DESKTOP_NATIVE_NODE_CLAIM_MAX_BODY_BYTES, tr as CopilotSettings, ts as TurnId, tt as AgentControlExternalRpcError, u as PROJECT_READ_FILE_BINARY_MAX_BYTES, ua as WorktreeMetaUpdatedPayload$1, ui as OrchestrationReplayEventsError, un as AgentControlPromptSummary, uo as HubConnectorStatus, ur as KeybindingsConfig, ut as AgentControlMcpDiagnosticsSummaryInput, v as AGENT_CONTROL_ACTION_CAPABILITIES, va as WORK_ITEM_DETAIL_BODY_MAX_BYTES, vi as OrchestrationThreadHistoryError, vn as DEVICE_CAPABILITY_LABELS, vo as RELAY_MAX_DATA_FRAME_BYTES, vr as ProviderInterruptTurnInput, vt as AgentControlMcpListAutomationsResult, w as AGENT_CONTROL_ERROR_CODES, wa as SourceControlRepositoryError, wi as ProjectAvatarSetPayload$1, wn as ThreadPriorityBatchSnapshot, wo as RelayEffectiveRole, wr as ProviderStopBackgroundTaskInput, wt as AgentControlMcpListThreadsResult, x as AGENT_CONTROL_AUTOMATION_PROPOSAL_TTL_MS, xa as WorkItemProviderKind, xi as PROVIDER_SEND_TURN_MAX_FILE_BYTES, xn as DEVICE_WS_METHODS, xo as RELAY_SUPPORTED_VERSION_RANGE, xr as ProviderSendTurnInput, xt as AgentControlMcpListProjectsInput, y as AGENT_CONTROL_AUTOMATION_MAX_HORIZON_MS, ya as WORK_ITEM_DETAIL_COMMENT_BODY_MAX_BYTES, yi as OrchestrationWorktreeShell, yn as DEVICE_FRAME_MAGIC, yo as RELAY_MAX_RETRY_AFTER_MS, yr as ProviderRespondToRequestInput, yt as AgentControlMcpListDevicesInput, z as AGENT_CONTROL_RISK_TAGS, za as MODEL_SLUG_ALIASES_BY_PROVIDER, zi as ThreadCreatedPayload$1, zn as McpOauthLoginResult, zo as ContextHandoffId, zr as DEFAULT_AGENT_TOKEN_MODE, zt as AgentControlMcpProposeDeviceShutdownInput } from "./collectUint8StreamText-B3klZuIF.mjs";
4
4
  import { $ as normalizeGitRemoteUrl, A as runtimeQueueBlockedDuration, B as startupCommandGateQueueHighWater, C as providerStartupQueueHighWater, Ct as decode, D as providerTurnsTotal, E as providerTurnMetricAttributes, Et as Type, F as runtimeQueueHighWater, G as LocalDiagnosticsMetrics, H as terminalRestartsTotal, I as runtimeQueueOverflowsTotal, J as buildTemporaryWorktreeBranchName, K as LocalDiagnosticsMetricsLive, L as runtimeQueueRecoveriesTotal, M as runtimeQueueDepth, N as runtimeQueueDequeuesTotal, O as rpcRequestDuration, P as runtimeQueueEnqueuesTotal, Q as mergeGitStatusParts, R as startupCommandGateEnqueuesTotal, S as providerStartupQueueDepth, St as Tokeniser, T as providerTurnDuration, Tt as rfc8949EncodeOptions, U as terminalSessionsTotal, V as startupCommandGateQueueWaitDuration, W as withMetrics, X as detectSourceControlProviderFromGitRemoteUrl, Y as dedupeRemoteBranchesWithLocalMatches, Z as isTemporaryWorktreeBranch, _ as providerRuntimeEventsTotal, _t as encodeNodeKeyRotationTranscript, a as contextHandoffsTotal, at as DEFAULT_PORT, b as providerStaleStopTimeoutsTotal, bt as formatNodePublicKeyFingerprint, c as increment, ct as deriveServerPaths, d as orchestrationCommandAckDuration, dt as resolveManagedWorktreesRoot, et as resolveAutoFeatureBranchName, f as orchestrationCommandDuration, ft as resolveNodeE2eePolicyConfig, g as providerMetricAttributes, gt as encodeNodeAuthenticationTranscript, h as providerEventLogRecordsDroppedTotal, ht as encodeNativeNodeClaimTranscript, i as contextHandoffPreparationDuration, it as outcomeFromExit, j as runtimeQueueCoalescedTotal, k as rpcRequestsTotal, l as metricAttributes, lt as ensureServerDirectories, m as orchestrationEventsProcessedTotal, mt as canonicalizeHubOrigin, n as contextHandoffContextEntriesTotal, nt as sanitizeFeatureBranchName, o as gitCommandDuration, ot as RuntimeMode$1, p as orchestrationCommandsTotal, pt as resolveStaticDir, q as WORKTREE_BRANCH_PREFIX, r as contextHandoffDispatchDuration, rt as compactTraceAttributes, s as gitCommandsTotal, st as ServerConfig, t as contextHandoffContextBytesTotal, tt as sanitizeBranchFragment, u as metricNames, ut as resolveHubConnectorConfig, v as providerRuntimeStaleEventsTotal, vt as equalNodeIdentityBytes, w as providerStartupQueueWaitDuration, wt as encode, x as providerStartupAdmissionTotal, xt as normalizeHubNodeName, y as providerSessionsTotal, yt as fingerprintNodePublicKey, z as startupCommandGateQueueDepth } from "./Metrics-BP9YjxZB.mjs";
5
- import { a as makeForgejoDiscovery, c as sourceBranch, d as firstNonEmptyLine, f as probeSourceControlProvider, h as layer$21, i as makeBitbucketDiscovery, m as VcsProcess, n as githubDiscovery, o as SourceControlProvider, p as refineUnknownRemoteProvider, r as gitlabDiscovery, s as parseSourceControlOwnerRef, t as azureDevOpsDiscovery, u as detailFromCause } from "./SourceControlProviderDiscoveryCatalog-G0HUTo-t.mjs";
5
+ import { a as makeForgejoDiscovery, c as sourceBranch, d as firstNonEmptyLine, f as probeSourceControlProvider, h as layer$21, i as makeBitbucketDiscovery, m as VcsProcess, n as githubDiscovery, o as SourceControlProvider, p as refineUnknownRemoteProvider, r as gitlabDiscovery, s as parseSourceControlOwnerRef, t as azureDevOpsDiscovery, u as detailFromCause } from "./SourceControlProviderDiscoveryCatalog-CHxCP6Ng.mjs";
6
6
  import { n as detectSourceControlProviderFromRemoteUrl, r as getChangeRequestTerminologyForKind } from "./sourceControl-BiEBxN01.mjs";
7
7
  import * as NodeRuntime from "@effect/platform-node/NodeRuntime";
8
8
  import * as NodeServices from "@effect/platform-node/NodeServices";
@@ -12831,26 +12831,26 @@ const make$13 = Effect.fn("makeSourceControlProviderRegistry")(function* () {
12831
12831
  const azureDevOpsCli = yield* AzureDevOpsCli;
12832
12832
  const fileSystem = yield* FileSystem.FileSystem;
12833
12833
  const github = yield* makeLazyProvider("github", Effect.tryPromise({
12834
- try: () => import("./GitHubSourceControlProvider-CwSuSyD7.mjs"),
12834
+ try: () => import("./GitHubSourceControlProvider-Bx5_H3zb.mjs"),
12835
12835
  catch: (cause) => providerLoadError("github", cause)
12836
12836
  }).pipe(Effect.flatMap((module) => module.make()), Effect.provideService(GitHubCli, githubCli), Effect.provideService(FileSystem.FileSystem, fileSystem)));
12837
12837
  const gitlab = yield* makeLazyProvider("gitlab", Effect.tryPromise({
12838
- try: () => import("./GitLabSourceControlProvider-BzOAAREX.mjs"),
12838
+ try: () => import("./GitLabSourceControlProvider-DjvGD1WZ.mjs"),
12839
12839
  catch: (cause) => providerLoadError("gitlab", cause)
12840
12840
  }).pipe(Effect.flatMap((module) => module.make()), Effect.provideService(GitLabCli, gitlabCli)));
12841
12841
  const bitbucket = yield* makeLazyProvider("bitbucket", Effect.tryPromise({
12842
- try: () => import("./BitbucketSourceControlProvider-BMaa5G9E.mjs"),
12842
+ try: () => import("./BitbucketSourceControlProvider-j95Cro_2.mjs"),
12843
12843
  catch: (cause) => providerLoadError("bitbucket", cause)
12844
12844
  }).pipe(Effect.flatMap((module) => module.make()), Effect.provideService(BitbucketApi, bitbucketApi)), {
12845
12845
  searchRepositories: true,
12846
12846
  cloneAuthentication: true
12847
12847
  });
12848
12848
  const forgejo = yield* makeLazyProvider("forgejo", Effect.tryPromise({
12849
- try: () => import("./ForgejoSourceControlProvider-BjJmvo0h.mjs"),
12849
+ try: () => import("./ForgejoSourceControlProvider-ZfU3SBzW.mjs"),
12850
12850
  catch: (cause) => providerLoadError("forgejo", cause)
12851
12851
  }).pipe(Effect.flatMap((module) => module.make()), Effect.provideService(ForgejoApi, forgejoApi)));
12852
12852
  const azureDevOps = yield* makeLazyProvider("azure-devops", Effect.tryPromise({
12853
- try: () => import("./AzureDevOpsSourceControlProvider-B_rxsveN.mjs"),
12853
+ try: () => import("./AzureDevOpsSourceControlProvider-jQm1WPMS.mjs"),
12854
12854
  catch: (cause) => providerLoadError("azure-devops", cause)
12855
12855
  }).pipe(Effect.flatMap((module) => module.make()), Effect.provideService(AzureDevOpsCli, azureDevOpsCli)));
12856
12856
  const bitbucketDiscovery = makeBitbucketDiscovery(bitbucketApi);
@@ -33304,7 +33304,7 @@ const BUILT_IN_DRIVERS = [
33304
33304
  configSchema: CodexSettings,
33305
33305
  defaultConfig: () => Schema.decodeSync(CodexSettings)({}),
33306
33306
  create: (input) => Effect.tryPromise({
33307
- try: () => import("./CodexDriver-pMXV4cdE.mjs"),
33307
+ try: () => import("./CodexDriver-CBYfPl_X.mjs"),
33308
33308
  catch: (cause) => driverImportError(codexDriverKind, input, cause)
33309
33309
  }).pipe(Effect.flatMap(({ CodexDriver }) => CodexDriver.create(input)))
33310
33310
  },
@@ -33318,7 +33318,7 @@ const BUILT_IN_DRIVERS = [
33318
33318
  configSchema: ClaudeSettings,
33319
33319
  defaultConfig: () => Schema.decodeSync(ClaudeSettings)({}),
33320
33320
  create: (input) => Effect.tryPromise({
33321
- try: () => import("./ClaudeDriver-QCXWLMlT.mjs"),
33321
+ try: () => import("./ClaudeDriver-CT89QDP8.mjs"),
33322
33322
  catch: (cause) => driverImportError(claudeDriverKind, input, cause)
33323
33323
  }).pipe(Effect.flatMap(({ ClaudeDriver }) => ClaudeDriver.create(input)))
33324
33324
  },
@@ -33332,7 +33332,7 @@ const BUILT_IN_DRIVERS = [
33332
33332
  configSchema: CopilotSettings,
33333
33333
  defaultConfig: () => Schema.decodeSync(CopilotSettings)({}),
33334
33334
  create: (input) => Effect.tryPromise({
33335
- try: () => import("./CopilotDriver-B313kdfE.mjs"),
33335
+ try: () => import("./CopilotDriver-BJ1P_bHz.mjs"),
33336
33336
  catch: (cause) => driverImportError(copilotDriverKind, input, cause)
33337
33337
  }).pipe(Effect.flatMap(({ CopilotDriver }) => CopilotDriver.create(input)))
33338
33338
  },
@@ -33346,7 +33346,7 @@ const BUILT_IN_DRIVERS = [
33346
33346
  configSchema: CursorSettings,
33347
33347
  defaultConfig: () => Schema.decodeSync(CursorSettings)({}),
33348
33348
  create: (input) => Effect.tryPromise({
33349
- try: () => import("./CursorDriver-DtCq_M54.mjs"),
33349
+ try: () => import("./CursorDriver-BH6yAijk.mjs"),
33350
33350
  catch: (cause) => driverImportError(cursorDriverKind, input, cause)
33351
33351
  }).pipe(Effect.flatMap(({ CursorDriver }) => CursorDriver.create(input)))
33352
33352
  },
@@ -33360,7 +33360,7 @@ const BUILT_IN_DRIVERS = [
33360
33360
  configSchema: GrokSettings,
33361
33361
  defaultConfig: () => Schema.decodeSync(GrokSettings)({}),
33362
33362
  create: (input) => Effect.tryPromise({
33363
- try: () => import("./GrokDriver-4ZUx36Bj.mjs"),
33363
+ try: () => import("./GrokDriver-BPIUrqkN.mjs"),
33364
33364
  catch: (cause) => driverImportError(grokDriverKind, input, cause)
33365
33365
  }).pipe(Effect.flatMap(({ GrokDriver }) => GrokDriver.create(input)))
33366
33366
  },
@@ -33374,7 +33374,7 @@ const BUILT_IN_DRIVERS = [
33374
33374
  configSchema: OpenCodeSettings,
33375
33375
  defaultConfig: () => Schema.decodeSync(OpenCodeSettings)({}),
33376
33376
  create: (input) => Effect.tryPromise({
33377
- try: () => import("./OpenCodeDriver-CmoacKRC.mjs"),
33377
+ try: () => import("./OpenCodeDriver-_hUfFwH4.mjs"),
33378
33378
  catch: (cause) => driverImportError(openCodeDriverKind, input, cause)
33379
33379
  }).pipe(Effect.flatMap(({ OpenCodeDriver }) => OpenCodeDriver.create(input)))
33380
33380
  }
@@ -34089,7 +34089,7 @@ const scopedSafeTeardown = (label) => (effect) => Effect.gen(function* () {
34089
34089
  });
34090
34090
  //#endregion
34091
34091
  //#region package.json
34092
- var version$2 = "0.1.19";
34092
+ var version$2 = "0.1.20";
34093
34093
  //#endregion
34094
34094
  //#region src/provider/Layers/CodexProvider.ts
34095
34095
  const PROVIDER_PROBE_TIMEOUT_MS = 8e3;
@@ -76792,7 +76792,6 @@ var model_manifest_default = {
76792
76792
  "claude-fable-5.1"
76793
76793
  ],
76794
76794
  "status": "current",
76795
- "badge": "new",
76796
76795
  "profile": "fable-5-1",
76797
76796
  "adapter": { "claudeCode": { "minVersion": "2.1.257" } }
76798
76797
  },
@@ -76930,7 +76929,6 @@ const ManifestProviderModel = Schema.Struct({
76930
76929
  subProvider: Schema.optional(TrimmedNonEmptyString),
76931
76930
  aliases: Schema.optional(Schema.Array(TrimmedNonEmptyString)),
76932
76931
  status: ManifestModelStatus,
76933
- badge: Schema.optional(Schema.Literal("new")),
76934
76932
  profile: Schema.optional(TrimmedNonEmptyString),
76935
76933
  adapter: Schema.optional(Schema.Unknown)
76936
76934
  });
@@ -76977,7 +76975,6 @@ function resolveProviderCatalog(manifest, driverKind) {
76977
76975
  ...entry.shortName ? { shortName: entry.shortName } : {},
76978
76976
  ...entry.subProvider ? { subProvider: entry.subProvider } : {},
76979
76977
  ...entry.aliases ? { aliases: entry.aliases } : {},
76980
- ...entry.badge ? { badge: entry.badge } : {},
76981
76978
  isCustom: false,
76982
76979
  ...catalog.defaults?.chat === entry.slug ? { isDefault: true } : {},
76983
76980
  ...entry.status === "legacy" ? { isLegacy: true } : {},
@@ -1 +1 @@
1
- import{i as e,t}from"./react-SIfiwpqq.js";import{t as n}from"./compiler-runtime-qmuS0Svy.js";import{I as r,N as i,P as a}from"./runtime-rC2k29TW.js";import{It as o}from"./composerDraftStore-DM8BJvHt.js";import{_ as s,o as c}from"./authorization-D3QNaV6E.js";import{n as l}from"./loader-circle-CrtHFAvM.js";import{t as u}from"./copy-UQjKGt7t.js";import{t as d}from"./key-round-CacMputS.js";import{t as f}from"./refresh-cw-DopCMrtR.js";import{t as p}from"./shield-check-dQ-4cMKk.js";import{t as m}from"./trash-2-CM1zXPGb.js";import{t as h}from"./triangle-alert-RL_T3KLo.js";import{t as g}from"./user-round-Cpzx8pSw.js";import{n as _,t as v}from"./input-Zumpn45a.js";import{u as y}from"./Icons-D3hxyIhB.js";import{t as b}from"./button-84K7n2wA.js";import{t as x}from"./useCopyToClipboard-BTpWxumf.js";import{i as S,n as C,r as w,t as T}from"./alert-DzagxL5z.js";import{a as E,c as D,i as ee,o as O,r as te,s as ne,t as k}from"./dialog-ekyTdmtN.js";import{t as A}from"./spinner-QltLJ3rj.js";import{a as j,i as M,n as N,o as re,r as ie,s as ae,t as oe}from"./alert-dialog-CQaNXuTj.js";import{t as P}from"./badge-C5_ROuZu.js";import{t as se}from"./label-DYSChiPa.js";import{C as F,S as I,_ as L,a as R,b as z,c as ce,d as le,f as B,g as V,h as H,i as U,l as W,m as G,n as K,o as q,p as ue,r as de,s as J,t as fe,u as pe,v as Y,x as X,y as me}from"./ExternalIdentityWeb.logic-CS0uWMYD.js";import{i as he,n as ge,r as _e}from"./settingsLayout-Bdb0BKqT.js";import{t as ve}from"./qr-code-LEPl28s1.js";var ye=n(),Z=e(t(),1),Q=o(),be=new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`});function xe(e){return e===null||!Number.isFinite(e)?null:be.format(new Date(e))}function Se(){let e=(0,ye.c)(15),[t,n]=(0,Z.useState)(null),[r,i]=(0,Z.useState)(0),[a,o]=(0,Z.useState)(``),[s,l]=(0,Z.useState)(!1),u=(0,Z.useRef)(0),d;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>{n(null),i(0),o(``)},e[0]=d):d=e[0];let f=d,p;e[1]===t?.options?p=e[2]:(p=()=>{u.current+=1,c.cancelAccountAction(),t?.options?.onAbandoned?.(),l(!1),f()},e[1]=t?.options,e[2]=p);let m=p,h;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(h=async(e,t,r)=>{let a=u.current+=1;l(!1);let s=await t({});if(u.current===a){if(B(s)){o(``),i(0),n({action:e,run:t,options:r,inferred:s.inferredErrorCode===!0});return}s.status===`committed`&&r?.onCommitted?.()}},e[3]=h):h=e[3];let g=h,_;e[4]!==t||e[5]!==a||e[6]!==r?(_=async()=>{if(!t)return;let e=H(a);if(e.length===0)return;let n=u.current+=1,s=await t.run({totpCode:e});if(u.current===n){if(B(s)){let e=r+1;if(z(s,e)){i(e),o(``);return}l(!0),t.options?.onAbandoned?.(),f();return}s.status===`committed`&&t.options?.onCommitted?.(),f()}},e[4]=t,e[5]=a,e[6]=r,e[7]=_):_=e[7];let v=_,y;return e[8]!==m||e[9]!==t||e[10]!==a||e[11]!==r||e[12]!==s||e[13]!==v?(y={run:g,cancel:m,stepUp:t,stepUpAttempts:r,stepUpCode:a,stepUpUnresolved:s,setStepUpCode:o,submitStepUp:v},e[8]=m,e[9]=t,e[10]=a,e[11]=r,e[12]=s,e[13]=v,e[14]=y):y=e[14],y}function Ce(){let e=(0,ye.c)(1),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0],(0,Z.useEffect)(we,t)}function we(){return c.leaseRecoveryCodeDisplay()}function $(e){let t=(0,ye.c)(3),{busy:n,children:r}=e,i;return t[0]!==n||t[1]!==r?(i=n?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(A,{className:`size-3.5`}),r]}):(0,Q.jsx)(Q.Fragment,{children:r}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i}function Te(){let e=(0,ye.c)(99),t=a(We),n=a(Ue),[o,c]=(0,Z.useState)(!1),l=i(He),u=i(Ve),d=i(Be),f=i(ze),m=i(Re),_=i(Le),v=i(Ie),y=i(Fe),x=a(Pe),E=a(Ne),[D,ee]=(0,Z.useState)(!1),[O,te]=(0,Z.useState)(null),ne=(0,Z.useRef)(!1),k=Se(),A=k.run;Ce();let j=_!==`idle`,M;e[0]===m?M=e[1]:(M=de(m),e[0]=m,e[1]=M);let N=M,re;e[2]===d?.externalIdentities?re=e[3]:(re=d?.externalIdentities.find(Me)??null,e[2]=d?.externalIdentities,e[3]=re);let ie=re,ae;e[4]===D?ae=e[5]:(ae=async()=>{if(!D){ee(!0),te(null);try{await fe({intent:`link`,returnTo:`/account/security`,start:je,navigate:Ae})}catch(e){let t=e;te(t instanceof s?t.message:`GitHub connection is temporarily unavailable.`),ee(!1)}}},e[4]=D,e[5]=ae);let oe=ae,P;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(P=[],e[6]=P):P=e[6],(0,Z.useEffect)(ke,P);let se,F;if(e[7]!==t||e[8]!==A?(se=()=>{if(t!==`authenticated`||ne.current)return;ne.current=!0;let e=new AbortController;return r.getPendingExternalIdentity(e.signal).then(e=>{if(e.status===`link`)return A(`connect-github`,Oe);e.status===`error`&&te(K(e.code))}).catch(De),()=>e.abort()},F=[t,A],e[7]=t,e[8]=A,e[9]=se,e[10]=F):(se=e[9],F=e[10]),(0,Z.useEffect)(se,F),t!==`authenticated`){let t;return e[11]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(ge,{children:(0,Q.jsxs)(T,{variant:`warning`,children:[(0,Q.jsx)(h,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:`Not signed in`}),(0,Q.jsx)(w,{children:`Sign in to the Hub to manage passkeys, two-factor authentication, and recovery codes.`})]})}),e[11]=t):t=e[11],t}let I;e[12]!==k.stepUp||e[13]!==k.stepUpUnresolved||e[14]!==y||e[15]!==v?(I=k.stepUpUnresolved?U:W(v,y,k.stepUp!==null),e[12]=k.stepUp,e[13]=k.stepUpUnresolved,e[14]=y,e[15]=v,e[16]=I):I=e[16];let L=I,z;e[17]!==k.stepUpUnresolved||e[18]!==y?(z=!k.stepUpUnresolved&&le(y),e[17]=k.stepUpUnresolved,e[18]=y,e[19]=z):z=e[19];let ce=z,B;e[20]!==l||e[21]!==u?(B=R(l,u),e[20]=l,e[21]=u,e[22]=B):B=e[22];let V=B,H;e[23]!==L||e[24]!==ce?(H=L?(0,Q.jsxs)(T,{variant:ce?`info`:`error`,"aria-live":`polite`,children:[(0,Q.jsx)(h,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:ce?`Passkey needed`:`That did not work`}),(0,Q.jsx)(w,{children:L})]}):null,e[23]=L,e[24]=ce,e[25]=H):H=e[25];let G;e[26]===O?G=e[27]:(G=O?(0,Q.jsxs)(T,{variant:`warning`,"aria-live":`polite`,children:[(0,Q.jsx)(h,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:`GitHub connection did not complete`}),(0,Q.jsx)(w,{children:O})]}):null,e[26]=O,e[27]=G);let q;e[28]!==d||e[29]!==f?(q=d===null&&f!==`stale`?(0,Q.jsxs)(T,{variant:`info`,"aria-live":`polite`,children:[(0,Q.jsx)(p,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:`Checking account security`}),(0,Q.jsx)(w,{children:`Reading which fallback sign-in methods are configured on this Hub.`})]}):null,e[28]=d,e[29]=f,e[30]=q):q=e[30];let ue;e[31]!==j||e[32]!==d||e[33]!==f?(ue=f===`stale`?(0,Q.jsxs)(T,{variant:`warning`,"aria-live":`polite`,children:[(0,Q.jsx)(h,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:d===null?`Account security unavailable`:`Account security may be outdated`}),(0,Q.jsx)(w,{children:d===null?`Ryco could not read the current password, authenticator, and email state.`:`These controls use the last state Ryco successfully read from the Hub.`}),(0,Q.jsx)(C,{children:(0,Q.jsx)(b,{size:`xs`,variant:`outline`,disabled:j,onClick:Ee,children:`Retry`})})]}):null,e[31]=j,e[32]=d,e[33]=f,e[34]=ue):ue=e[34];let J;e[35]!==j||e[36]!==V?(J=V?(0,Q.jsxs)(T,{variant:V.variant,"aria-live":`polite`,children:[(0,Q.jsx)(h,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:V.title}),(0,Q.jsx)(w,{children:V.description}),(0,Q.jsx)(C,{children:(0,Q.jsx)(b,{size:`xs`,variant:`outline`,disabled:j,onClick:()=>c(!0),children:V.actionLabel})})]}):null,e[35]=j,e[36]=V,e[37]=J):J=e[37];let pe;e[38]===Symbol.for(`react.memo_cache_sentinel`)?(pe=(0,Q.jsx)(g,{"aria-hidden":!0,className:`size-3.5`}),e[38]=pe):pe=e[38];let Y=n?.displayName??`Signed in`,X;e[39]===n?X=e[40]:(X=n?`${n.role} · joined ${xe(n.createdAt)??`unknown`}`:null,e[39]=n,e[40]=X);let me;e[41]!==Y||e[42]!==X?(me=(0,Q.jsx)(he,{title:`Account`,icon:pe,children:(0,Q.jsx)(_e,{title:Y,description:`The Hub account these credentials belong to.`,status:X})}),e[41]=Y,e[42]=X,e[43]=me):me=e[43];let ve;e[44]!==_||e[45]!==j||e[46]!==D||e[47]!==ie||e[48]!==N?.link||e[49]!==A||e[50]!==oe?(ve=ie||N?.link?(0,Q.jsx)(Ge,{identity:ie,actionsAvailable:N?.link===!0,busy:j||D,actionStatus:_,onConnect:()=>void oe(),run:A}):null,e[44]=_,e[45]=j,e[46]=D,e[47]=ie,e[48]=N?.link,e[49]=A,e[50]=oe,e[51]=ve):ve=e[51];let be=u===`loading`,we=u===`stale`,$;e[52]!==k.cancel||e[53]!==k.run||e[54]!==_||e[55]!==o||e[56]!==j||e[57]!==l||e[58]!==be||e[59]!==we?($=(0,Q.jsx)(qe,{passkeys:l,loading:be,stale:we,busy:j,actionStatus:_,addOpen:o,setAddOpen:c,run:k.run,cancel:k.cancel}),e[52]=k.cancel,e[53]=k.run,e[54]=_,e[55]=o,e[56]=j,e[57]=l,e[58]=be,e[59]=we,e[60]=$):$=e[60];let Te=d?.totpEnrolled??null,Ke;e[61]!==k.run||e[62]!==_||e[63]!==j||e[64]!==Te||e[65]!==E?(Ke=(0,Q.jsx)(Je,{busy:j,actionStatus:_,enrollment:E,enrolled:Te,run:k.run}),e[61]=k.run,e[62]=_,e[63]=j,e[64]=Te,e[65]=E,e[66]=Ke):Ke=e[66];let Ye;e[67]!==k.run||e[68]!==_||e[69]!==j||e[70]!==x?(Ye=(0,Q.jsx)(et,{busy:j,actionStatus:_,recoveryCodes:x,run:k.run}),e[67]=k.run,e[68]=_,e[69]=j,e[70]=x,e[71]=Ye):Ye=e[71];let Xe;e[72]!==k.cancel||e[73]!==k.run||e[74]!==_||e[75]!==j||e[76]!==d?(Xe=(0,Q.jsx)(Ze,{busy:j,actionStatus:_,security:d,run:k.run,cancel:k.cancel}),e[72]=k.cancel,e[73]=k.run,e[74]=_,e[75]=j,e[76]=d,e[77]=Xe):Xe=e[77];let Qe;e[78]!==k.cancel||e[79]!==k.setStepUpCode||e[80]!==k.stepUp||e[81]!==k.stepUpAttempts||e[82]!==k.stepUpCode||e[83]!==k.submitStepUp||e[84]!==j?(Qe=(0,Q.jsx)(at,{pending:k.stepUp,attempts:k.stepUpAttempts,code:k.stepUpCode,onCodeChange:k.setStepUpCode,onSubmit:k.submitStepUp,onCancel:k.cancel,busy:j}),e[78]=k.cancel,e[79]=k.setStepUpCode,e[80]=k.stepUp,e[81]=k.stepUpAttempts,e[82]=k.stepUpCode,e[83]=k.submitStepUp,e[84]=j,e[85]=Qe):Qe=e[85];let $e;return e[86]!==G||e[87]!==q||e[88]!==ue||e[89]!==J||e[90]!==me||e[91]!==ve||e[92]!==$||e[93]!==Ke||e[94]!==Ye||e[95]!==Xe||e[96]!==Qe||e[97]!==H?($e=(0,Q.jsxs)(ge,{children:[H,G,q,ue,J,me,ve,$,Ke,Ye,Xe,Qe]}),e[86]=G,e[87]=q,e[88]=ue,e[89]=J,e[90]=me,e[91]=ve,e[92]=$,e[93]=Ke,e[94]=Ye,e[95]=Xe,e[96]=Qe,e[97]=H,e[98]=$e):$e=e[98],$e}function Ee(){c.refreshAccountSecurity({force:!0})}function De(){}function Oe(e){return c.finishBrowserExternalIdentityConnection(`github`,e)}function ke(){c.refreshPasskeys(),c.refreshAccountSecurity(),c.refreshExternalIdentityConfiguration()}function Ae(e){return window.location.assign(e)}function je(e){return r.startExternalIdentityAuthorization(e)}function Me(e){return e.provider===`github`}function Ne(e){return e.totpEnrollment??null}function Pe(e){return e.recoveryCodes}function Fe(e){return e.errorCode??null}function Ie(e){return e.errorMessage}function Le(e){return e.actionStatus}function Re(e){return e.externalIdentityConfiguration}function ze(e){return e.securityStatus}function Be(e){return e.security}function Ve(e){return e.passkeysStatus}function He(e){return e.passkeys}function Ue(e){return e.account}function We(e){return e.accountStatus}function Ge(e){let t=(0,ye.c)(33),{identity:n,actionsAvailable:r,busy:i,actionStatus:a,onConnect:o,run:s}=e,[c,l]=(0,Z.useState)(!1),u=a===`connecting-external-identity`,d=a===`disconnecting-external-identity`,f;t[0]===s?f=t[1]:(f=async()=>{await s(`disconnect-github`,Ke,{onCommitted:()=>l(!1)})},t[0]=s,t[1]=f);let p=f,m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Q.jsx)(y,{"aria-hidden":!0,className:`size-3.5`}),t[2]=m):m=t[2];let h=n?`GitHub · @${n.login}`:`GitHub`,g=n?`Use this GitHub identity to sign in to Ryco. Repository access remains separate.`:`Connect GitHub as another way to sign in. Ryco requests no repository access.`,_;t[3]===n?_=t[4]:(_=n?`Connected ${xe(n.connectedAt)??`at an unknown time`}${n.lastUsedAt===null?``:` · last used ${xe(n.lastUsedAt)??`at an unknown time`}`}`:null,t[3]=n,t[4]=_);let v;t[5]!==r||t[6]!==i||t[7]!==u||t[8]!==d||t[9]!==n||t[10]!==o?(v=r?n?(0,Q.jsx)(b,{size:`sm`,variant:`outline`,disabled:i,onClick:()=>l(!0),children:(0,Q.jsx)($,{busy:d,children:`Disconnect`})}):(0,Q.jsx)(b,{size:`sm`,variant:`outline`,disabled:i,onClick:o,children:(0,Q.jsx)($,{busy:u,children:`Connect GitHub`})}):null,t[5]=r,t[6]=i,t[7]=u,t[8]=d,t[9]=n,t[10]=o,t[11]=v):v=t[11];let x;t[12]!==h||t[13]!==g||t[14]!==_||t[15]!==v?(x=(0,Q.jsx)(_e,{title:h,description:g,status:_,control:v}),t[12]=h,t[13]=g,t[14]=_,t[15]=v,t[16]=x):x=t[16];let S;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Q.jsxs)(j,{children:[(0,Q.jsx)(ae,{children:`Disconnect GitHub?`}),(0,Q.jsx)(ie,{children:`You will no longer be able to sign in with GitHub. Ryco refuses this change if GitHub is your only remaining sign-in method.`})]}),t[17]=S):S=t[17];let C;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,Q.jsx)(N,{render:(0,Q.jsx)(b,{variant:`outline`}),children:`Cancel`}),t[18]=C):C=t[18];let w;t[19]===p?w=t[20]:(w=()=>void p(),t[19]=p,t[20]=w);let T;t[21]===d?T=t[22]:(T=(0,Q.jsx)($,{busy:d,children:`Disconnect GitHub`}),t[21]=d,t[22]=T);let E;t[23]!==i||t[24]!==w||t[25]!==T?(E=(0,Q.jsxs)(re,{children:[S,(0,Q.jsxs)(M,{children:[C,(0,Q.jsx)(b,{disabled:i,onClick:w,children:T})]})]}),t[23]=i,t[24]=w,t[25]=T,t[26]=E):E=t[26];let D;t[27]!==c||t[28]!==E?(D=(0,Q.jsx)(oe,{open:c,onOpenChange:l,children:E}),t[27]=c,t[28]=E,t[29]=D):D=t[29];let ee;return t[30]!==D||t[31]!==x?(ee=(0,Q.jsxs)(he,{title:`Connected accounts`,icon:m,children:[x,D]}),t[30]=D,t[31]=x,t[32]=ee):ee=t[32],ee}function Ke(e){return c.disconnectExternalIdentity(`github`,e)}function qe({passkeys:e,loading:t,stale:n,busy:r,actionStatus:i,addOpen:a,setAddOpen:o,run:s,cancel:l}){let[u,f]=(0,Z.useState)(``),[p,h]=(0,Z.useState)(null),[g,y]=(0,Z.useState)(null),x=i===`adding-passkey`,S=i===`revoking-passkey`,C=q(e),w=F(e),T=V(e),A=(0,Z.useCallback)(()=>{f(``),o(!1)},[o]),I=async e=>{e.preventDefault();let t=G(u);await s(`add-passkey`,e=>c.addPasskey({passkeyLabel:t,...e}),{onCommitted:A,onAbandoned:A})},R=async()=>{let e=p;if(e){h(null),y(e.id);try{await c.revokePasskey(e.id)}finally{y(null)}}};return(0,Q.jsxs)(he,{title:`Passkeys`,icon:(0,Q.jsx)(d,{"aria-hidden":!0,className:`size-3.5`}),headerAction:(0,Q.jsx)(b,{size:`xs`,variant:`outline`,disabled:r,onClick:()=>o(!0),children:`Add passkey`}),children:[(0,Q.jsx)(_e,{title:`Passkeys on this account`,description:`A passkey is the strongest way in. Add one for every device you sign in from, and keep at least two so losing a device does not lock you out.`,status:n?`This list could not be refreshed and may be out of date.`:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{children:`${String(C.length)} usable ${C.length===1?`passkey`:`passkeys`}`}),w>0?(0,Q.jsx)(`span`,{children:` · ${String(w)} synced to a password manager`}):null]})}),t&&e.length===0?(0,Q.jsx)(_e,{title:`Loading passkeys…`,description:`Reading the credentials on file.`}):null,!t&&e.length===0?(0,Q.jsx)(_e,{title:`No passkeys yet`,description:`Add one now — without a passkey you can only get back in through a fallback credential.`}):null,T.map(e=>{let t=pe(e),n=L(e),i=xe(e.createdAt),a=xe(e.lastUsedAt);return(0,Q.jsx)(_e,{title:(0,Q.jsxs)(`span`,{className:`flex items-center gap-2`,children:[Y(e),t?(0,Q.jsx)(P,{variant:`error`,size:`sm`,children:`Revoked`}):null]}),description:t?`Revoked${e.revocationReasonCode?` — ${e.revocationReasonCode}`:``}. This credential can no longer sign in.`:n??`The Hub did not report whether this credential is backed up.`,status:[i?`Added ${i}`:null,a?`Last used ${a}`:`Never used`].filter(e=>e!==null).join(` · `),control:t?null:(0,Q.jsx)(b,{size:`xs`,variant:`destructive-outline`,"aria-label":`Revoke ${Y(e)}`,disabled:r,onClick:()=>h(e),children:(0,Q.jsxs)($,{busy:S&&g===e.id,children:[(0,Q.jsx)(m,{"aria-hidden":!0}),`Revoke`]})})},e.id)}),(0,Q.jsx)(k,{open:a,onOpenChange:e=>{if(e){o(!0);return}r||A()},children:(0,Q.jsx)(ne,{className:`max-w-md`,children:(0,Q.jsxs)(`form`,{onSubmit:e=>void I(e),children:[(0,Q.jsxs)(E,{children:[(0,Q.jsx)(D,{children:`Add a passkey`}),(0,Q.jsx)(te,{children:`Your browser will ask you to create a passkey for this account. Adding one replaces the current Hub session with a fresh one.`})]}),(0,Q.jsxs)(O,{className:`space-y-3`,children:[(0,Q.jsx)(se,{htmlFor:`account-passkey-label`,children:`Name (optional)`}),(0,Q.jsx)(v,{id:`account-passkey-label`,value:u,autoComplete:`off`,placeholder:`Work laptop`,disabled:x,className:_,onChange:e=>f(e.target.value)})]}),(0,Q.jsxs)(ee,{children:[(0,Q.jsx)(b,{variant:`outline`,onClick:()=>{l(),A()},children:`Cancel`}),(0,Q.jsx)(b,{type:`submit`,disabled:r,children:(0,Q.jsx)($,{busy:x,children:`Create passkey`})})]})]})})}),(0,Q.jsx)(oe,{open:p!==null,onOpenChange:e=>{r||e||h(null)},children:(0,Q.jsxs)(re,{children:[(0,Q.jsxs)(j,{children:[(0,Q.jsx)(ae,{children:`Revoke this passkey?`}),(0,Q.jsxs)(ie,{children:[C.length===1?`This is the only usable passkey on this account. `:``,p?Y(p):``,` will stop working immediately, on every device it is stored on. This cannot be undone — you would have to enrol the device again.`]})]}),(0,Q.jsxs)(M,{children:[(0,Q.jsx)(N,{render:(0,Q.jsx)(b,{variant:`outline`}),children:`Keep it`}),(0,Q.jsx)(b,{variant:`destructive`,disabled:r,onClick:()=>void R(),children:`Revoke passkey`})]})]})})]})}function Je(e){let t=(0,ye.c)(61),{busy:n,actionStatus:r,enrollment:i,enrolled:a,run:o}=e,[s,l]=(0,Z.useState)(``),[u,d]=(0,Z.useState)(!1),f=r===`enrolling-totp`,m=r===`confirming-totp`,h=r===`revoking-totp`,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>{l(``),c.dismissTotpEnrollment()},t[0]=g):g=t[0];let y=g,x;t[1]===s?x=t[2]:(x=async e=>{e.preventDefault();let t=H(s);t.length!==0&&(await c.confirmTotpEnrollment({code:t}),l(``))},t[1]=s,t[2]=x);let S=x,C;t[3]===o?C=t[4]:(C=async()=>{d(!1),await o(`revoke-totp`,Xe)},t[3]=o,t[4]=C);let w=C,T;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,Q.jsx)(p,{"aria-hidden":!0,className:`size-3.5`}),t[5]=T):T=t[5];let A=a===null?`Checking current state…`:a?`On`:`Off`,P;t[6]!==n||t[7]!==a||t[8]!==f||t[9]!==h?(P=a===null?null:a?(0,Q.jsx)(b,{size:`xs`,variant:`destructive-outline`,"aria-label":`Turn off two-factor authentication`,disabled:n,onClick:()=>d(!0),children:(0,Q.jsx)($,{busy:h,children:`Turn off`})}):(0,Q.jsx)(b,{size:`xs`,variant:`outline`,disabled:n,onClick:Ye,children:(0,Q.jsx)($,{busy:f,children:`Set up`})}),t[6]=n,t[7]=a,t[8]=f,t[9]=h,t[10]=P):P=t[10];let F;t[11]!==A||t[12]!==P?(F=(0,Q.jsx)(_e,{title:`Authenticator app`,description:`A six-digit code from an authenticator app, required whenever you change credentials from a session that was not started with a passkey. Signing in with a passkey never asks for one.`,status:A,control:P}),t[11]=A,t[12]=P,t[13]=F):F=t[13];let I=i!==null,L;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(L=e=>{e||y()},t[14]=L):L=t[14];let R;t[15]===S?R=t[16]:(R=e=>void S(e),t[15]=S,t[16]=R);let z;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,Q.jsxs)(E,{children:[(0,Q.jsx)(D,{children:`Set up two-factor authentication`}),(0,Q.jsx)(te,{children:`Scan this with your authenticator app, then enter the code it shows. This is the only time the key is displayed.`})]}),t[17]=z):z=t[17];let ce;t[18]===i?ce=t[19]:(ce=i?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`flex justify-center rounded-xl border border-border bg-white p-4`,children:(0,Q.jsx)(ve,{value:i.provisioningUri,size:168,level:`M`,marginSize:1,title:`Two-factor setup code`})}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Can't scan? Enter this key manually:`}),(0,Q.jsx)(`p`,{"aria-label":`Two-factor setup key`,className:`rounded-lg border border-border bg-background px-3 py-2 font-mono text-sm break-all`,children:i.secretBase32})]})]}):null,t[18]=i,t[19]=ce);let le;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(le=(0,Q.jsx)(se,{htmlFor:`account-totp-confirm`,children:`Code from your app`}),t[20]=le):le=t[20];let B;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(B=e=>l(H(e.target.value)),t[21]=B):B=t[21];let V;t[22]!==s||t[23]!==m?(V=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[le,(0,Q.jsx)(v,{id:`account-totp-confirm`,value:s,inputMode:`numeric`,autoComplete:`one-time-code`,maxLength:16,disabled:m,className:_,onChange:B})]}),t[22]=s,t[23]=m,t[24]=V):V=t[24];let U;t[25]!==ce||t[26]!==V?(U=(0,Q.jsxs)(O,{className:`space-y-4`,children:[ce,V]}),t[25]=ce,t[26]=V,t[27]=U):U=t[27];let W;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,Q.jsx)(b,{variant:`outline`,onClick:y,children:`Cancel`}),t[28]=W):W=t[28];let G;t[29]!==n||t[30]!==s?(G=n||!ue(s),t[29]=n,t[30]=s,t[31]=G):G=t[31];let K;t[32]===m?K=t[33]:(K=(0,Q.jsx)($,{busy:m,children:`Turn on`}),t[32]=m,t[33]=K);let q;t[34]!==G||t[35]!==K?(q=(0,Q.jsxs)(ee,{children:[W,(0,Q.jsx)(b,{type:`submit`,disabled:G,children:K})]}),t[34]=G,t[35]=K,t[36]=q):q=t[36];let de;t[37]!==R||t[38]!==U||t[39]!==q?(de=(0,Q.jsx)(ne,{className:`max-w-md`,children:(0,Q.jsxs)(`form`,{onSubmit:R,children:[z,U,q]})}),t[37]=R,t[38]=U,t[39]=q,t[40]=de):de=t[40];let J;t[41]!==de||t[42]!==I?(J=(0,Q.jsx)(k,{open:I,onOpenChange:L,children:de}),t[41]=de,t[42]=I,t[43]=J):J=t[43];let fe;t[44]===n?fe=t[45]:(fe=e=>{n||d(e)},t[44]=n,t[45]=fe);let pe;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(pe=(0,Q.jsxs)(j,{children:[(0,Q.jsx)(ae,{children:`Remove two-factor authentication?`}),(0,Q.jsx)(ie,{children:`Password, recovery-code, and emailed-link sign-ins will no longer need a code from your authenticator app. You can set it up again at any time.`})]}),t[46]=pe):pe=t[46];let Y;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(Y=(0,Q.jsx)(N,{render:(0,Q.jsx)(b,{variant:`outline`}),children:`Keep it on`}),t[47]=Y):Y=t[47];let X;t[48]===w?X=t[49]:(X=()=>void w(),t[48]=w,t[49]=X);let me;t[50]!==n||t[51]!==X?(me=(0,Q.jsxs)(re,{children:[pe,(0,Q.jsxs)(M,{children:[Y,(0,Q.jsx)(b,{variant:`destructive`,disabled:n,onClick:X,children:`Remove two-factor`})]})]}),t[50]=n,t[51]=X,t[52]=me):me=t[52];let ge;t[53]!==u||t[54]!==fe||t[55]!==me?(ge=(0,Q.jsx)(oe,{open:u,onOpenChange:fe,children:me}),t[53]=u,t[54]=fe,t[55]=me,t[56]=ge):ge=t[56];let be;return t[57]!==J||t[58]!==ge||t[59]!==F?(be=(0,Q.jsxs)(he,{title:`Two-factor authentication`,icon:T,children:[F,J,ge]}),t[57]=J,t[58]=ge,t[59]=F,t[60]=be):be=t[60],be}function Ye(){c.beginTotpEnrollment()}function Xe(e){return c.revokeTotp(e)}function Ze(e){let t=(0,ye.c)(86),{busy:n,actionStatus:r,security:i,run:a,cancel:o}=e,[s,l]=(0,Z.useState)(!1),[u,f]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(!1),[y,x]=(0,Z.useState)(!1),S=r===`setting-password`,C=r===`removing-password`,w;t[0]!==p||t[1]!==u?(w=me(u,p),t[0]=p,t[1]=u,t[2]=w):w=t[2];let T=w,A;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>{f(``),m(``),g(!1)},t[3]=A):A=t[3];let P=A,F;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>{P(),l(!1)},t[4]=F):F=t[4];let I=F,L;t[5]===o?L=t[6]:(L=()=>{o(),I()},t[5]=o,t[6]=L);let R=L,z;t[7]!==T||t[8]!==u||t[9]!==a?(z=async e=>{e.preventDefault(),g(!0),!T&&await a(`set-password`,e=>c.setPassword({password:u,...e}),{onCommitted:I,onAbandoned:I})},t[7]=T,t[8]=u,t[9]=a,t[10]=z):z=t[10];let ce=z,le;t[11]===a?le=t[12]:(le=async()=>{x(!1),await a(`remove-password`,Qe)},t[11]=a,t[12]=le);let B=le,V;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,Q.jsx)(d,{"aria-hidden":!0,className:`size-3.5`}),t[13]=V):V=t[13];let H=i===null?`Checking current state…`:i.passwordConfigured?`Set`:`Not set`,U;t[14]!==n||t[15]!==C||t[16]!==i||t[17]!==S?(U=i===null?null:(0,Q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Q.jsx)(b,{size:`xs`,variant:`outline`,disabled:n,onClick:()=>l(!0),children:(0,Q.jsx)($,{busy:S,children:i.passwordConfigured?`Change`:`Set password`})}),i.passwordConfigured?(0,Q.jsx)(b,{size:`xs`,variant:`destructive-outline`,"aria-label":`Delete the fallback password`,disabled:n,onClick:()=>x(!0),children:(0,Q.jsx)($,{busy:C,children:`Remove`})}):null]}),t[14]=n,t[15]=C,t[16]=i,t[17]=S,t[18]=U):U=t[18];let W;t[19]!==H||t[20]!==U?(W=(0,Q.jsx)(_e,{title:`Fallback password`,description:`A password is a fallback, not an equal of a passkey: it can be phished and reused, and a session started with one has to prove itself again before changing credentials. Keep a passkey as your normal way in.`,status:H,control:U}),t[19]=H,t[20]=U,t[21]=W):W=t[21];let G=i===null?void 0:i.email,K=i?.emailDeliveryConfigured,q;t[22]!==r||t[23]!==n||t[24]!==a||t[25]!==G||t[26]!==K?(q=(0,Q.jsx)($e,{busy:n,actionStatus:r,email:G,deliveryConfigured:K,run:a}),t[22]=r,t[23]=n,t[24]=a,t[25]=G,t[26]=K,t[27]=q):q=t[27];let ue;t[28]===R?ue=t[29]:(ue=e=>{if(e){l(!0);return}R()},t[28]=R,t[29]=ue);let de;t[30]===ce?de=t[31]:(de=e=>void ce(e),t[30]=ce,t[31]=de);let J;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,Q.jsxs)(E,{children:[(0,Q.jsx)(D,{children:`Set a fallback password`}),(0,Q.jsx)(te,{children:`This replaces any password already on the account. The Hub rejects passwords that have appeared in a known breach.`})]}),t[32]=J):J=t[32];let fe;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(fe=(0,Q.jsx)(se,{htmlFor:`account-password`,children:`New password`}),t[33]=fe):fe=t[33];let pe;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(pe=e=>f(e.target.value),t[34]=pe):pe=t[34];let Y;t[35]!==u||t[36]!==S?(Y=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[fe,(0,Q.jsx)(v,{id:`account-password`,type:`password`,value:u,autoComplete:`new-password`,maxLength:256,disabled:S,className:_,onChange:pe})]}),t[35]=u,t[36]=S,t[37]=Y):Y=t[37];let X;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,Q.jsx)(se,{htmlFor:`account-password-confirm`,children:`Confirm password`}),t[38]=X):X=t[38];let ge;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(ge=e=>m(e.target.value),t[39]=ge):ge=t[39];let ve;t[40]!==p||t[41]!==S?(ve=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[X,(0,Q.jsx)(v,{id:`account-password-confirm`,type:`password`,value:p,autoComplete:`new-password`,maxLength:256,disabled:S,className:_,onChange:ge})]}),t[40]=p,t[41]=S,t[42]=ve):ve=t[42];let be;t[43]!==T||t[44]!==h?(be=h&&T?(0,Q.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive-foreground`,children:T}):null,t[43]=T,t[44]=h,t[45]=be):be=t[45];let xe;t[46]!==Y||t[47]!==ve||t[48]!==be?(xe=(0,Q.jsxs)(O,{className:`space-y-3`,children:[Y,ve,be]}),t[46]=Y,t[47]=ve,t[48]=be,t[49]=xe):xe=t[49];let Se;t[50]===R?Se=t[51]:(Se=(0,Q.jsx)(b,{variant:`outline`,onClick:R,children:`Cancel`}),t[50]=R,t[51]=Se);let Ce;t[52]===S?Ce=t[53]:(Ce=(0,Q.jsx)($,{busy:S,children:`Save password`}),t[52]=S,t[53]=Ce);let we;t[54]!==n||t[55]!==Ce?(we=(0,Q.jsx)(b,{type:`submit`,disabled:n,children:Ce}),t[54]=n,t[55]=Ce,t[56]=we):we=t[56];let Te;t[57]!==Se||t[58]!==we?(Te=(0,Q.jsxs)(ee,{children:[Se,we]}),t[57]=Se,t[58]=we,t[59]=Te):Te=t[59];let Ee;t[60]!==de||t[61]!==xe||t[62]!==Te?(Ee=(0,Q.jsx)(ne,{className:`max-w-md`,children:(0,Q.jsxs)(`form`,{onSubmit:de,children:[J,xe,Te]})}),t[60]=de,t[61]=xe,t[62]=Te,t[63]=Ee):Ee=t[63];let De;t[64]!==s||t[65]!==ue||t[66]!==Ee?(De=(0,Q.jsx)(k,{open:s,onOpenChange:ue,children:Ee}),t[64]=s,t[65]=ue,t[66]=Ee,t[67]=De):De=t[67];let Oe;t[68]===n?Oe=t[69]:(Oe=e=>{n||x(e)},t[68]=n,t[69]=Oe);let ke;t[70]===Symbol.for(`react.memo_cache_sentinel`)?(ke=(0,Q.jsxs)(j,{children:[(0,Q.jsx)(ae,{children:`Remove the password?`}),(0,Q.jsx)(ie,{children:`You will no longer be able to sign in with a password. Make sure you still have a passkey, or recovery codes you have saved.`})]}),t[70]=ke):ke=t[70];let Ae;t[71]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,Q.jsx)(N,{render:(0,Q.jsx)(b,{variant:`outline`}),children:`Keep it`}),t[71]=Ae):Ae=t[71];let je;t[72]===B?je=t[73]:(je=()=>void B(),t[72]=B,t[73]=je);let Me;t[74]!==n||t[75]!==je?(Me=(0,Q.jsxs)(re,{children:[ke,(0,Q.jsxs)(M,{children:[Ae,(0,Q.jsx)(b,{variant:`destructive`,disabled:n,onClick:je,children:`Remove password`})]})]}),t[74]=n,t[75]=je,t[76]=Me):Me=t[76];let Ne;t[77]!==y||t[78]!==Oe||t[79]!==Me?(Ne=(0,Q.jsx)(oe,{open:y,onOpenChange:Oe,children:Me}),t[77]=y,t[78]=Oe,t[79]=Me,t[80]=Ne):Ne=t[80];let Pe;return t[81]!==W||t[82]!==q||t[83]!==De||t[84]!==Ne?(Pe=(0,Q.jsxs)(he,{title:`Fallback sign-in`,icon:V,children:[W,q,De,Ne]}),t[81]=W,t[82]=q,t[83]=De,t[84]=Ne,t[85]=Pe):Pe=t[85],Pe}function Qe(e){return c.removePassword(e)}function $e(e){let t=(0,ye.c)(25),{busy:n,actionStatus:r,email:i,deliveryConfigured:a,run:o}=e,[s,l]=(0,Z.useState)(``),[u,d]=(0,Z.useState)(!1),[f,p]=(0,Z.useState)(!1),m=r===`requesting-email-verification`,g;t[0]===s?g=t[1]:(g=J(s),t[0]=s,t[1]=g);let y=g,x;t[2]!==s||t[3]!==y||t[4]!==o?(x=async e=>{e.preventDefault(),d(!0),p(!1),!y&&await o(`request-email-verification`,e=>c.requestEmailVerification({email:s.trim(),...e}),{onCommitted:()=>{p(!0),l(``),d(!1)}})},t[2]=s,t[3]=y,t[4]=o,t[5]=x):x=t[5];let C=x,E;t[6]===a?E=t[7]:(E=a===!1?(0,Q.jsx)(`div`,{className:`border-t border-border/60 px-4 pt-3.5 sm:px-5`,children:(0,Q.jsxs)(T,{variant:`warning`,children:[(0,Q.jsx)(h,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:`No mail will arrive yet`}),(0,Q.jsx)(w,{children:`This Hub has no mail transport configured, so verification messages are generated and discarded. The request below will be accepted and nothing will be delivered until an operator wires one up. Do not rely on email as your way back into the account.`})]})}):null,t[6]=a,t[7]=E);let D=a?`Used for account recovery after verification. The Hub answers the same way whether or not the address is already known, so this never confirms who owns it.`:`Used for account recovery once mail delivery is switched on. The Hub answers the same way whether or not the address is already known, so this never confirms who owns it.`,ee=i===void 0?`Checking current state…`:i===null?`Not set`:`${i.verified?`Verified`:`Verification pending`} · ${i.address}`,O;t[8]!==f||t[9]!==n||t[10]!==i||t[11]!==a||t[12]!==s||t[13]!==y||t[14]!==m||t[15]!==C||t[16]!==u?(O=i===void 0?null:(0,Q.jsxs)(`form`,{className:`pt-3 pb-3.5`,onSubmit:e=>void C(e),children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,Q.jsx)(v,{"aria-label":`Email address`,type:`email`,value:s,autoComplete:`email`,placeholder:`you@example.com`,maxLength:254,disabled:m,className:_,onChange:e=>{l(e.target.value),p(!1)}}),(0,Q.jsx)(b,{type:`submit`,size:`sm`,variant:`outline`,disabled:n,className:`shrink-0`,children:(0,Q.jsx)($,{busy:m,children:i===null?`Send verification`:i.verified?`Change email`:`Resend or change`})})]}),u&&y?(0,Q.jsx)(`p`,{role:`alert`,className:`pt-2 text-xs text-destructive-foreground`,children:y}):null,f?(0,Q.jsx)(`p`,{role:`status`,className:`pt-2 text-xs text-muted-foreground`,children:a?`Verification email requested. Check your inbox and spam folder; delivery may take a moment.`:`Request accepted by the Hub. No message will be delivered until a mail transport is configured.`}):null]}),t[8]=f,t[9]=n,t[10]=i,t[11]=a,t[12]=s,t[13]=y,t[14]=m,t[15]=C,t[16]=u,t[17]=O):O=t[17];let te;t[18]!==D||t[19]!==ee||t[20]!==O?(te=(0,Q.jsx)(_e,{title:`Recovery email`,description:D,status:ee,children:O}),t[18]=D,t[19]=ee,t[20]=O,t[21]=te):te=t[21];let ne;return t[22]!==E||t[23]!==te?(ne=(0,Q.jsxs)(Q.Fragment,{children:[E,te]}),t[22]=E,t[23]=te,t[24]=ne):ne=t[24],ne}function et(e){let t=(0,ye.c)(52),{busy:n,actionStatus:r,recoveryCodes:i,run:a}=e,[o,s]=(0,Z.useState)(!1),c=r===`regenerating-recovery-codes`,{copyToClipboard:d,isCopied:p}=x(),m;t[0]===a?m=t[1]:(m=async()=>{s(!1),await a(`regenerate-recovery-codes`,it)},t[0]=a,t[1]=m);let h=m,g;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Q.jsx)(f,{"aria-hidden":!0,className:`size-3.5`}),t[2]=g):g=t[2];let _;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(_=()=>s(!0),t[3]=_):_=t[3];let v;t[4]===c?v=t[5]:(v=(0,Q.jsx)($,{busy:c,children:`Generate new codes`}),t[4]=c,t[5]=v);let y;t[6]!==n||t[7]!==v?(y=(0,Q.jsx)(_e,{title:`One-time recovery codes`,description:`Single-use codes that get you back in when you have lost every passkey. They are a last resort, not a substitute for one — anyone holding a code can sign in as you.`,status:`Ryco shows them once and never writes them to browser storage.`,control:(0,Q.jsx)(b,{size:`xs`,variant:`destructive-outline`,disabled:n,onClick:_,children:v})}),t[6]=n,t[7]=v,t[8]=y):y=t[8];let S;t[9]===n?S=t[10]:(S=e=>{n||s(e)},t[9]=n,t[10]=S);let C;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,Q.jsxs)(j,{children:[(0,Q.jsx)(ae,{children:`Replace your recovery codes?`}),(0,Q.jsx)(ie,{children:`Every code you have already saved stops working immediately. You will get a new set, shown once — if you lose them you will have to generate another set from a session you can still sign in to.`})]}),t[11]=C):C=t[11];let w;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Q.jsx)(N,{render:(0,Q.jsx)(b,{variant:`outline`}),children:`Cancel`}),t[12]=w):w=t[12];let T;t[13]===h?T=t[14]:(T=()=>void h(),t[13]=h,t[14]=T);let A;t[15]!==n||t[16]!==T?(A=(0,Q.jsxs)(re,{children:[C,(0,Q.jsxs)(M,{children:[w,(0,Q.jsx)(b,{variant:`destructive`,disabled:n,onClick:T,children:`Replace codes`})]})]}),t[15]=n,t[16]=T,t[17]=A):A=t[17];let P;t[18]!==o||t[19]!==A||t[20]!==S?(P=(0,Q.jsx)(oe,{open:o,onOpenChange:S,children:A}),t[18]=o,t[19]=A,t[20]=S,t[21]=P):P=t[21];let se=i.length>0,F;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,Q.jsx)(D,{children:`Save your recovery codes`}),t[22]=F):F=t[22];let I=String(i.length),L;t[23]===I?L=t[24]:(L=(0,Q.jsxs)(E,{children:[F,(0,Q.jsxs)(te,{children:[`Save all `,I,` codes — they are shown once and cannot be retrieved later. Store them somewhere only you can reach — a password manager, or paper somewhere safe.`]})]}),t[23]=I,t[24]=L);let R;t[25]===i?R=t[26]:(R=i.map(nt),t[25]=i,t[26]=R);let z;t[27]===R?z=t[28]:(z=(0,Q.jsx)(O,{children:(0,Q.jsx)(`ul`,{"aria-label":`Recovery codes`,className:`grid gap-2 rounded-xl border border-border bg-background p-4 font-mono text-sm break-all sm:grid-cols-2`,children:R})}),t[27]=R,t[28]=z);let le;t[29]!==d||t[30]!==i?(le=()=>d(ce(i),void 0),t[29]=d,t[30]=i,t[31]=le):le=t[31];let B;t[32]===p?B=t[33]:(B=p?(0,Q.jsx)(l,{"aria-hidden":!0}):(0,Q.jsx)(u,{"aria-hidden":!0}),t[32]=p,t[33]=B);let V=p?`Copied`:`Copy codes`,H;t[34]!==le||t[35]!==B||t[36]!==V?(H=(0,Q.jsxs)(b,{variant:`outline`,onClick:le,children:[B,V]}),t[34]=le,t[35]=B,t[36]=V,t[37]=H):H=t[37];let U;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,Q.jsx)(b,{onClick:tt,children:`I saved the codes`}),t[38]=U):U=t[38];let W;t[39]===H?W=t[40]:(W=(0,Q.jsxs)(ee,{children:[H,U]}),t[39]=H,t[40]=W);let G;t[41]!==L||t[42]!==z||t[43]!==W?(G=(0,Q.jsxs)(ne,{className:`max-w-md`,showCloseButton:!1,children:[L,z,W]}),t[41]=L,t[42]=z,t[43]=W,t[44]=G):G=t[44];let K;t[45]!==se||t[46]!==G?(K=(0,Q.jsx)(k,{open:se,disablePointerDismissal:!0,onOpenChange:rt,children:G}),t[45]=se,t[46]=G,t[47]=K):K=t[47];let q;return t[48]!==P||t[49]!==K||t[50]!==y?(q=(0,Q.jsxs)(he,{title:`Recovery codes`,icon:g,children:[y,P,K]}),t[48]=P,t[49]=K,t[50]=y,t[51]=q):q=t[51],q}function tt(){return c.dismissRecoveryCodes()}function nt(e){return(0,Q.jsx)(`li`,{children:e},e)}function rt(e,t){e||t.cancel()}function it(e){return c.regenerateRecoveryCodes(e)}function at(e){let t=(0,ye.c)(45),{pending:n,attempts:r,code:i,onCodeChange:a,onSubmit:o,onCancel:s,busy:c}=e,l=n!==null,u;t[0]===s?u=t[1]:(u=e=>{e||s()},t[0]=s,t[1]=u);let d;t[2]===o?d=t[3]:(d=e=>{e.preventDefault(),o()},t[2]=o,t[3]=d);let f;t[4]===n?f=t[5]:(f=n?I(n.action):``,t[4]=n,t[5]=f);let p;t[6]===f?p=t[7]:(p=(0,Q.jsx)(D,{children:f}),t[6]=f,t[7]=p);let m=n?.inferred??!1,h;t[8]!==r||t[9]!==m?(h=X(r,m),t[8]=r,t[9]=m,t[10]=h):h=t[10];let g;t[11]===h?g=t[12]:(g=(0,Q.jsx)(te,{children:h}),t[11]=h,t[12]=g);let y;t[13]!==p||t[14]!==g?(y=(0,Q.jsxs)(E,{children:[p,g]}),t[13]=p,t[14]=g,t[15]=y):y=t[15];let x;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,Q.jsx)(se,{htmlFor:`account-step-up-code`,children:`Authenticator code`}),t[16]=x):x=t[16];let S;t[17]===a?S=t[18]:(S=e=>a(H(e.target.value)),t[17]=a,t[18]=S);let C;t[19]!==c||t[20]!==i||t[21]!==S?(C=(0,Q.jsxs)(O,{className:`space-y-2`,children:[x,(0,Q.jsx)(v,{id:`account-step-up-code`,value:i,inputMode:`numeric`,autoComplete:`one-time-code`,maxLength:16,disabled:c,className:_,onChange:S})]}),t[19]=c,t[20]=i,t[21]=S,t[22]=C):C=t[22];let w;t[23]===s?w=t[24]:(w=(0,Q.jsx)(b,{variant:`outline`,onClick:s,children:`Cancel`}),t[23]=s,t[24]=w);let T;t[25]!==c||t[26]!==i?(T=c||!ue(i),t[25]=c,t[26]=i,t[27]=T):T=t[27];let A;t[28]===c?A=t[29]:(A=(0,Q.jsx)($,{busy:c,children:`Confirm code`}),t[28]=c,t[29]=A);let j;t[30]!==T||t[31]!==A?(j=(0,Q.jsx)(b,{type:`submit`,disabled:T,children:A}),t[30]=T,t[31]=A,t[32]=j):j=t[32];let M;t[33]!==w||t[34]!==j?(M=(0,Q.jsxs)(ee,{children:[w,j]}),t[33]=w,t[34]=j,t[35]=M):M=t[35];let N;t[36]!==C||t[37]!==M||t[38]!==d||t[39]!==y?(N=(0,Q.jsx)(ne,{className:`max-w-sm`,children:(0,Q.jsxs)(`form`,{onSubmit:d,children:[y,C,M]})}),t[36]=C,t[37]=M,t[38]=d,t[39]=y,t[40]=N):N=t[40];let re;return t[41]!==l||t[42]!==N||t[43]!==u?(re=(0,Q.jsx)(k,{open:l,onOpenChange:u,children:N}),t[41]=l,t[42]=N,t[43]=u,t[44]=re):re=t[44],re}export{Te as AccountSettingsPanel};
1
+ import{i as e,t}from"./react-SIfiwpqq.js";import{t as n}from"./compiler-runtime-qmuS0Svy.js";import{I as r,N as i,P as a}from"./runtime-DRPzstwF.js";import{It as o}from"./composerDraftStore-czbuHgbM.js";import{_ as s,o as c}from"./authorization-BrGZruGo.js";import{n as l}from"./loader-circle-CrtHFAvM.js";import{t as u}from"./copy-UQjKGt7t.js";import{t as d}from"./key-round-CacMputS.js";import{t as f}from"./refresh-cw-DopCMrtR.js";import{t as p}from"./shield-check-dQ-4cMKk.js";import{t as m}from"./trash-2-CM1zXPGb.js";import{t as h}from"./triangle-alert-RL_T3KLo.js";import{t as g}from"./user-round-Cpzx8pSw.js";import{n as _,t as v}from"./input-pu0UXdN_.js";import{u as y}from"./Icons-uMh1k5C0.js";import{t as b}from"./button-CBqaO2Ub.js";import{t as x}from"./useCopyToClipboard-BTpWxumf.js";import{i as S,n as C,r as w,t as T}from"./alert-DQjuri3D.js";import{a as E,c as D,i as ee,o as O,r as te,s as ne,t as k}from"./dialog-Csp7hsmq.js";import{t as A}from"./spinner-Dlyh0j_K.js";import{a as j,i as M,n as N,o as re,r as ie,s as ae,t as oe}from"./alert-dialog-Cb2TnXzy.js";import{t as P}from"./badge-Cil0isYQ.js";import{t as se}from"./label-BzDE8wjR.js";import{C as F,S as I,_ as L,a as R,b as z,c as ce,d as le,f as B,g as V,h as H,i as U,l as W,m as G,n as K,o as q,p as ue,r as de,s as J,t as fe,u as pe,v as Y,x as X,y as me}from"./ExternalIdentityWeb.logic-TlJdh82R.js";import{i as he,n as ge,r as _e}from"./settingsLayout-zwP6p5aD.js";import{t as ve}from"./qr-code-B6lBPRxy.js";var ye=n(),Z=e(t(),1),Q=o(),be=new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`});function xe(e){return e===null||!Number.isFinite(e)?null:be.format(new Date(e))}function Se(){let e=(0,ye.c)(15),[t,n]=(0,Z.useState)(null),[r,i]=(0,Z.useState)(0),[a,o]=(0,Z.useState)(``),[s,l]=(0,Z.useState)(!1),u=(0,Z.useRef)(0),d;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>{n(null),i(0),o(``)},e[0]=d):d=e[0];let f=d,p;e[1]===t?.options?p=e[2]:(p=()=>{u.current+=1,c.cancelAccountAction(),t?.options?.onAbandoned?.(),l(!1),f()},e[1]=t?.options,e[2]=p);let m=p,h;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(h=async(e,t,r)=>{let a=u.current+=1;l(!1);let s=await t({});if(u.current===a){if(B(s)){o(``),i(0),n({action:e,run:t,options:r,inferred:s.inferredErrorCode===!0});return}s.status===`committed`&&r?.onCommitted?.()}},e[3]=h):h=e[3];let g=h,_;e[4]!==t||e[5]!==a||e[6]!==r?(_=async()=>{if(!t)return;let e=H(a);if(e.length===0)return;let n=u.current+=1,s=await t.run({totpCode:e});if(u.current===n){if(B(s)){let e=r+1;if(z(s,e)){i(e),o(``);return}l(!0),t.options?.onAbandoned?.(),f();return}s.status===`committed`&&t.options?.onCommitted?.(),f()}},e[4]=t,e[5]=a,e[6]=r,e[7]=_):_=e[7];let v=_,y;return e[8]!==m||e[9]!==t||e[10]!==a||e[11]!==r||e[12]!==s||e[13]!==v?(y={run:g,cancel:m,stepUp:t,stepUpAttempts:r,stepUpCode:a,stepUpUnresolved:s,setStepUpCode:o,submitStepUp:v},e[8]=m,e[9]=t,e[10]=a,e[11]=r,e[12]=s,e[13]=v,e[14]=y):y=e[14],y}function Ce(){let e=(0,ye.c)(1),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0],(0,Z.useEffect)(we,t)}function we(){return c.leaseRecoveryCodeDisplay()}function $(e){let t=(0,ye.c)(3),{busy:n,children:r}=e,i;return t[0]!==n||t[1]!==r?(i=n?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(A,{className:`size-3.5`}),r]}):(0,Q.jsx)(Q.Fragment,{children:r}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i}function Te(){let e=(0,ye.c)(99),t=a(We),n=a(Ue),[o,c]=(0,Z.useState)(!1),l=i(He),u=i(Ve),d=i(Be),f=i(ze),m=i(Re),_=i(Le),v=i(Ie),y=i(Fe),x=a(Pe),E=a(Ne),[D,ee]=(0,Z.useState)(!1),[O,te]=(0,Z.useState)(null),ne=(0,Z.useRef)(!1),k=Se(),A=k.run;Ce();let j=_!==`idle`,M;e[0]===m?M=e[1]:(M=de(m),e[0]=m,e[1]=M);let N=M,re;e[2]===d?.externalIdentities?re=e[3]:(re=d?.externalIdentities.find(Me)??null,e[2]=d?.externalIdentities,e[3]=re);let ie=re,ae;e[4]===D?ae=e[5]:(ae=async()=>{if(!D){ee(!0),te(null);try{await fe({intent:`link`,returnTo:`/account/security`,start:je,navigate:Ae})}catch(e){let t=e;te(t instanceof s?t.message:`GitHub connection is temporarily unavailable.`),ee(!1)}}},e[4]=D,e[5]=ae);let oe=ae,P;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(P=[],e[6]=P):P=e[6],(0,Z.useEffect)(ke,P);let se,F;if(e[7]!==t||e[8]!==A?(se=()=>{if(t!==`authenticated`||ne.current)return;ne.current=!0;let e=new AbortController;return r.getPendingExternalIdentity(e.signal).then(e=>{if(e.status===`link`)return A(`connect-github`,Oe);e.status===`error`&&te(K(e.code))}).catch(De),()=>e.abort()},F=[t,A],e[7]=t,e[8]=A,e[9]=se,e[10]=F):(se=e[9],F=e[10]),(0,Z.useEffect)(se,F),t!==`authenticated`){let t;return e[11]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(ge,{children:(0,Q.jsxs)(T,{variant:`warning`,children:[(0,Q.jsx)(h,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:`Not signed in`}),(0,Q.jsx)(w,{children:`Sign in to the Hub to manage passkeys, two-factor authentication, and recovery codes.`})]})}),e[11]=t):t=e[11],t}let I;e[12]!==k.stepUp||e[13]!==k.stepUpUnresolved||e[14]!==y||e[15]!==v?(I=k.stepUpUnresolved?U:W(v,y,k.stepUp!==null),e[12]=k.stepUp,e[13]=k.stepUpUnresolved,e[14]=y,e[15]=v,e[16]=I):I=e[16];let L=I,z;e[17]!==k.stepUpUnresolved||e[18]!==y?(z=!k.stepUpUnresolved&&le(y),e[17]=k.stepUpUnresolved,e[18]=y,e[19]=z):z=e[19];let ce=z,B;e[20]!==l||e[21]!==u?(B=R(l,u),e[20]=l,e[21]=u,e[22]=B):B=e[22];let V=B,H;e[23]!==L||e[24]!==ce?(H=L?(0,Q.jsxs)(T,{variant:ce?`info`:`error`,"aria-live":`polite`,children:[(0,Q.jsx)(h,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:ce?`Passkey needed`:`That did not work`}),(0,Q.jsx)(w,{children:L})]}):null,e[23]=L,e[24]=ce,e[25]=H):H=e[25];let G;e[26]===O?G=e[27]:(G=O?(0,Q.jsxs)(T,{variant:`warning`,"aria-live":`polite`,children:[(0,Q.jsx)(h,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:`GitHub connection did not complete`}),(0,Q.jsx)(w,{children:O})]}):null,e[26]=O,e[27]=G);let q;e[28]!==d||e[29]!==f?(q=d===null&&f!==`stale`?(0,Q.jsxs)(T,{variant:`info`,"aria-live":`polite`,children:[(0,Q.jsx)(p,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:`Checking account security`}),(0,Q.jsx)(w,{children:`Reading which fallback sign-in methods are configured on this Hub.`})]}):null,e[28]=d,e[29]=f,e[30]=q):q=e[30];let ue;e[31]!==j||e[32]!==d||e[33]!==f?(ue=f===`stale`?(0,Q.jsxs)(T,{variant:`warning`,"aria-live":`polite`,children:[(0,Q.jsx)(h,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:d===null?`Account security unavailable`:`Account security may be outdated`}),(0,Q.jsx)(w,{children:d===null?`Ryco could not read the current password, authenticator, and email state.`:`These controls use the last state Ryco successfully read from the Hub.`}),(0,Q.jsx)(C,{children:(0,Q.jsx)(b,{size:`xs`,variant:`outline`,disabled:j,onClick:Ee,children:`Retry`})})]}):null,e[31]=j,e[32]=d,e[33]=f,e[34]=ue):ue=e[34];let J;e[35]!==j||e[36]!==V?(J=V?(0,Q.jsxs)(T,{variant:V.variant,"aria-live":`polite`,children:[(0,Q.jsx)(h,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:V.title}),(0,Q.jsx)(w,{children:V.description}),(0,Q.jsx)(C,{children:(0,Q.jsx)(b,{size:`xs`,variant:`outline`,disabled:j,onClick:()=>c(!0),children:V.actionLabel})})]}):null,e[35]=j,e[36]=V,e[37]=J):J=e[37];let pe;e[38]===Symbol.for(`react.memo_cache_sentinel`)?(pe=(0,Q.jsx)(g,{"aria-hidden":!0,className:`size-3.5`}),e[38]=pe):pe=e[38];let Y=n?.displayName??`Signed in`,X;e[39]===n?X=e[40]:(X=n?`${n.role} · joined ${xe(n.createdAt)??`unknown`}`:null,e[39]=n,e[40]=X);let me;e[41]!==Y||e[42]!==X?(me=(0,Q.jsx)(he,{title:`Account`,icon:pe,children:(0,Q.jsx)(_e,{title:Y,description:`The Hub account these credentials belong to.`,status:X})}),e[41]=Y,e[42]=X,e[43]=me):me=e[43];let ve;e[44]!==_||e[45]!==j||e[46]!==D||e[47]!==ie||e[48]!==N?.link||e[49]!==A||e[50]!==oe?(ve=ie||N?.link?(0,Q.jsx)(Ge,{identity:ie,actionsAvailable:N?.link===!0,busy:j||D,actionStatus:_,onConnect:()=>void oe(),run:A}):null,e[44]=_,e[45]=j,e[46]=D,e[47]=ie,e[48]=N?.link,e[49]=A,e[50]=oe,e[51]=ve):ve=e[51];let be=u===`loading`,we=u===`stale`,$;e[52]!==k.cancel||e[53]!==k.run||e[54]!==_||e[55]!==o||e[56]!==j||e[57]!==l||e[58]!==be||e[59]!==we?($=(0,Q.jsx)(qe,{passkeys:l,loading:be,stale:we,busy:j,actionStatus:_,addOpen:o,setAddOpen:c,run:k.run,cancel:k.cancel}),e[52]=k.cancel,e[53]=k.run,e[54]=_,e[55]=o,e[56]=j,e[57]=l,e[58]=be,e[59]=we,e[60]=$):$=e[60];let Te=d?.totpEnrolled??null,Ke;e[61]!==k.run||e[62]!==_||e[63]!==j||e[64]!==Te||e[65]!==E?(Ke=(0,Q.jsx)(Je,{busy:j,actionStatus:_,enrollment:E,enrolled:Te,run:k.run}),e[61]=k.run,e[62]=_,e[63]=j,e[64]=Te,e[65]=E,e[66]=Ke):Ke=e[66];let Ye;e[67]!==k.run||e[68]!==_||e[69]!==j||e[70]!==x?(Ye=(0,Q.jsx)(et,{busy:j,actionStatus:_,recoveryCodes:x,run:k.run}),e[67]=k.run,e[68]=_,e[69]=j,e[70]=x,e[71]=Ye):Ye=e[71];let Xe;e[72]!==k.cancel||e[73]!==k.run||e[74]!==_||e[75]!==j||e[76]!==d?(Xe=(0,Q.jsx)(Ze,{busy:j,actionStatus:_,security:d,run:k.run,cancel:k.cancel}),e[72]=k.cancel,e[73]=k.run,e[74]=_,e[75]=j,e[76]=d,e[77]=Xe):Xe=e[77];let Qe;e[78]!==k.cancel||e[79]!==k.setStepUpCode||e[80]!==k.stepUp||e[81]!==k.stepUpAttempts||e[82]!==k.stepUpCode||e[83]!==k.submitStepUp||e[84]!==j?(Qe=(0,Q.jsx)(at,{pending:k.stepUp,attempts:k.stepUpAttempts,code:k.stepUpCode,onCodeChange:k.setStepUpCode,onSubmit:k.submitStepUp,onCancel:k.cancel,busy:j}),e[78]=k.cancel,e[79]=k.setStepUpCode,e[80]=k.stepUp,e[81]=k.stepUpAttempts,e[82]=k.stepUpCode,e[83]=k.submitStepUp,e[84]=j,e[85]=Qe):Qe=e[85];let $e;return e[86]!==G||e[87]!==q||e[88]!==ue||e[89]!==J||e[90]!==me||e[91]!==ve||e[92]!==$||e[93]!==Ke||e[94]!==Ye||e[95]!==Xe||e[96]!==Qe||e[97]!==H?($e=(0,Q.jsxs)(ge,{children:[H,G,q,ue,J,me,ve,$,Ke,Ye,Xe,Qe]}),e[86]=G,e[87]=q,e[88]=ue,e[89]=J,e[90]=me,e[91]=ve,e[92]=$,e[93]=Ke,e[94]=Ye,e[95]=Xe,e[96]=Qe,e[97]=H,e[98]=$e):$e=e[98],$e}function Ee(){c.refreshAccountSecurity({force:!0})}function De(){}function Oe(e){return c.finishBrowserExternalIdentityConnection(`github`,e)}function ke(){c.refreshPasskeys(),c.refreshAccountSecurity(),c.refreshExternalIdentityConfiguration()}function Ae(e){return window.location.assign(e)}function je(e){return r.startExternalIdentityAuthorization(e)}function Me(e){return e.provider===`github`}function Ne(e){return e.totpEnrollment??null}function Pe(e){return e.recoveryCodes}function Fe(e){return e.errorCode??null}function Ie(e){return e.errorMessage}function Le(e){return e.actionStatus}function Re(e){return e.externalIdentityConfiguration}function ze(e){return e.securityStatus}function Be(e){return e.security}function Ve(e){return e.passkeysStatus}function He(e){return e.passkeys}function Ue(e){return e.account}function We(e){return e.accountStatus}function Ge(e){let t=(0,ye.c)(33),{identity:n,actionsAvailable:r,busy:i,actionStatus:a,onConnect:o,run:s}=e,[c,l]=(0,Z.useState)(!1),u=a===`connecting-external-identity`,d=a===`disconnecting-external-identity`,f;t[0]===s?f=t[1]:(f=async()=>{await s(`disconnect-github`,Ke,{onCommitted:()=>l(!1)})},t[0]=s,t[1]=f);let p=f,m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Q.jsx)(y,{"aria-hidden":!0,className:`size-3.5`}),t[2]=m):m=t[2];let h=n?`GitHub · @${n.login}`:`GitHub`,g=n?`Use this GitHub identity to sign in to Ryco. Repository access remains separate.`:`Connect GitHub as another way to sign in. Ryco requests no repository access.`,_;t[3]===n?_=t[4]:(_=n?`Connected ${xe(n.connectedAt)??`at an unknown time`}${n.lastUsedAt===null?``:` · last used ${xe(n.lastUsedAt)??`at an unknown time`}`}`:null,t[3]=n,t[4]=_);let v;t[5]!==r||t[6]!==i||t[7]!==u||t[8]!==d||t[9]!==n||t[10]!==o?(v=r?n?(0,Q.jsx)(b,{size:`sm`,variant:`outline`,disabled:i,onClick:()=>l(!0),children:(0,Q.jsx)($,{busy:d,children:`Disconnect`})}):(0,Q.jsx)(b,{size:`sm`,variant:`outline`,disabled:i,onClick:o,children:(0,Q.jsx)($,{busy:u,children:`Connect GitHub`})}):null,t[5]=r,t[6]=i,t[7]=u,t[8]=d,t[9]=n,t[10]=o,t[11]=v):v=t[11];let x;t[12]!==h||t[13]!==g||t[14]!==_||t[15]!==v?(x=(0,Q.jsx)(_e,{title:h,description:g,status:_,control:v}),t[12]=h,t[13]=g,t[14]=_,t[15]=v,t[16]=x):x=t[16];let S;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Q.jsxs)(j,{children:[(0,Q.jsx)(ae,{children:`Disconnect GitHub?`}),(0,Q.jsx)(ie,{children:`You will no longer be able to sign in with GitHub. Ryco refuses this change if GitHub is your only remaining sign-in method.`})]}),t[17]=S):S=t[17];let C;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,Q.jsx)(N,{render:(0,Q.jsx)(b,{variant:`outline`}),children:`Cancel`}),t[18]=C):C=t[18];let w;t[19]===p?w=t[20]:(w=()=>void p(),t[19]=p,t[20]=w);let T;t[21]===d?T=t[22]:(T=(0,Q.jsx)($,{busy:d,children:`Disconnect GitHub`}),t[21]=d,t[22]=T);let E;t[23]!==i||t[24]!==w||t[25]!==T?(E=(0,Q.jsxs)(re,{children:[S,(0,Q.jsxs)(M,{children:[C,(0,Q.jsx)(b,{disabled:i,onClick:w,children:T})]})]}),t[23]=i,t[24]=w,t[25]=T,t[26]=E):E=t[26];let D;t[27]!==c||t[28]!==E?(D=(0,Q.jsx)(oe,{open:c,onOpenChange:l,children:E}),t[27]=c,t[28]=E,t[29]=D):D=t[29];let ee;return t[30]!==D||t[31]!==x?(ee=(0,Q.jsxs)(he,{title:`Connected accounts`,icon:m,children:[x,D]}),t[30]=D,t[31]=x,t[32]=ee):ee=t[32],ee}function Ke(e){return c.disconnectExternalIdentity(`github`,e)}function qe({passkeys:e,loading:t,stale:n,busy:r,actionStatus:i,addOpen:a,setAddOpen:o,run:s,cancel:l}){let[u,f]=(0,Z.useState)(``),[p,h]=(0,Z.useState)(null),[g,y]=(0,Z.useState)(null),x=i===`adding-passkey`,S=i===`revoking-passkey`,C=q(e),w=F(e),T=V(e),A=(0,Z.useCallback)(()=>{f(``),o(!1)},[o]),I=async e=>{e.preventDefault();let t=G(u);await s(`add-passkey`,e=>c.addPasskey({passkeyLabel:t,...e}),{onCommitted:A,onAbandoned:A})},R=async()=>{let e=p;if(e){h(null),y(e.id);try{await c.revokePasskey(e.id)}finally{y(null)}}};return(0,Q.jsxs)(he,{title:`Passkeys`,icon:(0,Q.jsx)(d,{"aria-hidden":!0,className:`size-3.5`}),headerAction:(0,Q.jsx)(b,{size:`xs`,variant:`outline`,disabled:r,onClick:()=>o(!0),children:`Add passkey`}),children:[(0,Q.jsx)(_e,{title:`Passkeys on this account`,description:`A passkey is the strongest way in. Add one for every device you sign in from, and keep at least two so losing a device does not lock you out.`,status:n?`This list could not be refreshed and may be out of date.`:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{children:`${String(C.length)} usable ${C.length===1?`passkey`:`passkeys`}`}),w>0?(0,Q.jsx)(`span`,{children:` · ${String(w)} synced to a password manager`}):null]})}),t&&e.length===0?(0,Q.jsx)(_e,{title:`Loading passkeys…`,description:`Reading the credentials on file.`}):null,!t&&e.length===0?(0,Q.jsx)(_e,{title:`No passkeys yet`,description:`Add one now — without a passkey you can only get back in through a fallback credential.`}):null,T.map(e=>{let t=pe(e),n=L(e),i=xe(e.createdAt),a=xe(e.lastUsedAt);return(0,Q.jsx)(_e,{title:(0,Q.jsxs)(`span`,{className:`flex items-center gap-2`,children:[Y(e),t?(0,Q.jsx)(P,{variant:`error`,size:`sm`,children:`Revoked`}):null]}),description:t?`Revoked${e.revocationReasonCode?` — ${e.revocationReasonCode}`:``}. This credential can no longer sign in.`:n??`The Hub did not report whether this credential is backed up.`,status:[i?`Added ${i}`:null,a?`Last used ${a}`:`Never used`].filter(e=>e!==null).join(` · `),control:t?null:(0,Q.jsx)(b,{size:`xs`,variant:`destructive-outline`,"aria-label":`Revoke ${Y(e)}`,disabled:r,onClick:()=>h(e),children:(0,Q.jsxs)($,{busy:S&&g===e.id,children:[(0,Q.jsx)(m,{"aria-hidden":!0}),`Revoke`]})})},e.id)}),(0,Q.jsx)(k,{open:a,onOpenChange:e=>{if(e){o(!0);return}r||A()},children:(0,Q.jsx)(ne,{className:`max-w-md`,children:(0,Q.jsxs)(`form`,{onSubmit:e=>void I(e),children:[(0,Q.jsxs)(E,{children:[(0,Q.jsx)(D,{children:`Add a passkey`}),(0,Q.jsx)(te,{children:`Your browser will ask you to create a passkey for this account. Adding one replaces the current Hub session with a fresh one.`})]}),(0,Q.jsxs)(O,{className:`space-y-3`,children:[(0,Q.jsx)(se,{htmlFor:`account-passkey-label`,children:`Name (optional)`}),(0,Q.jsx)(v,{id:`account-passkey-label`,value:u,autoComplete:`off`,placeholder:`Work laptop`,disabled:x,className:_,onChange:e=>f(e.target.value)})]}),(0,Q.jsxs)(ee,{children:[(0,Q.jsx)(b,{variant:`outline`,onClick:()=>{l(),A()},children:`Cancel`}),(0,Q.jsx)(b,{type:`submit`,disabled:r,children:(0,Q.jsx)($,{busy:x,children:`Create passkey`})})]})]})})}),(0,Q.jsx)(oe,{open:p!==null,onOpenChange:e=>{r||e||h(null)},children:(0,Q.jsxs)(re,{children:[(0,Q.jsxs)(j,{children:[(0,Q.jsx)(ae,{children:`Revoke this passkey?`}),(0,Q.jsxs)(ie,{children:[C.length===1?`This is the only usable passkey on this account. `:``,p?Y(p):``,` will stop working immediately, on every device it is stored on. This cannot be undone — you would have to enrol the device again.`]})]}),(0,Q.jsxs)(M,{children:[(0,Q.jsx)(N,{render:(0,Q.jsx)(b,{variant:`outline`}),children:`Keep it`}),(0,Q.jsx)(b,{variant:`destructive`,disabled:r,onClick:()=>void R(),children:`Revoke passkey`})]})]})})]})}function Je(e){let t=(0,ye.c)(61),{busy:n,actionStatus:r,enrollment:i,enrolled:a,run:o}=e,[s,l]=(0,Z.useState)(``),[u,d]=(0,Z.useState)(!1),f=r===`enrolling-totp`,m=r===`confirming-totp`,h=r===`revoking-totp`,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>{l(``),c.dismissTotpEnrollment()},t[0]=g):g=t[0];let y=g,x;t[1]===s?x=t[2]:(x=async e=>{e.preventDefault();let t=H(s);t.length!==0&&(await c.confirmTotpEnrollment({code:t}),l(``))},t[1]=s,t[2]=x);let S=x,C;t[3]===o?C=t[4]:(C=async()=>{d(!1),await o(`revoke-totp`,Xe)},t[3]=o,t[4]=C);let w=C,T;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,Q.jsx)(p,{"aria-hidden":!0,className:`size-3.5`}),t[5]=T):T=t[5];let A=a===null?`Checking current state…`:a?`On`:`Off`,P;t[6]!==n||t[7]!==a||t[8]!==f||t[9]!==h?(P=a===null?null:a?(0,Q.jsx)(b,{size:`xs`,variant:`destructive-outline`,"aria-label":`Turn off two-factor authentication`,disabled:n,onClick:()=>d(!0),children:(0,Q.jsx)($,{busy:h,children:`Turn off`})}):(0,Q.jsx)(b,{size:`xs`,variant:`outline`,disabled:n,onClick:Ye,children:(0,Q.jsx)($,{busy:f,children:`Set up`})}),t[6]=n,t[7]=a,t[8]=f,t[9]=h,t[10]=P):P=t[10];let F;t[11]!==A||t[12]!==P?(F=(0,Q.jsx)(_e,{title:`Authenticator app`,description:`A six-digit code from an authenticator app, required whenever you change credentials from a session that was not started with a passkey. Signing in with a passkey never asks for one.`,status:A,control:P}),t[11]=A,t[12]=P,t[13]=F):F=t[13];let I=i!==null,L;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(L=e=>{e||y()},t[14]=L):L=t[14];let R;t[15]===S?R=t[16]:(R=e=>void S(e),t[15]=S,t[16]=R);let z;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,Q.jsxs)(E,{children:[(0,Q.jsx)(D,{children:`Set up two-factor authentication`}),(0,Q.jsx)(te,{children:`Scan this with your authenticator app, then enter the code it shows. This is the only time the key is displayed.`})]}),t[17]=z):z=t[17];let ce;t[18]===i?ce=t[19]:(ce=i?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`flex justify-center rounded-xl border border-border bg-white p-4`,children:(0,Q.jsx)(ve,{value:i.provisioningUri,size:168,level:`M`,marginSize:1,title:`Two-factor setup code`})}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Can't scan? Enter this key manually:`}),(0,Q.jsx)(`p`,{"aria-label":`Two-factor setup key`,className:`rounded-lg border border-border bg-background px-3 py-2 font-mono text-sm break-all`,children:i.secretBase32})]})]}):null,t[18]=i,t[19]=ce);let le;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(le=(0,Q.jsx)(se,{htmlFor:`account-totp-confirm`,children:`Code from your app`}),t[20]=le):le=t[20];let B;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(B=e=>l(H(e.target.value)),t[21]=B):B=t[21];let V;t[22]!==s||t[23]!==m?(V=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[le,(0,Q.jsx)(v,{id:`account-totp-confirm`,value:s,inputMode:`numeric`,autoComplete:`one-time-code`,maxLength:16,disabled:m,className:_,onChange:B})]}),t[22]=s,t[23]=m,t[24]=V):V=t[24];let U;t[25]!==ce||t[26]!==V?(U=(0,Q.jsxs)(O,{className:`space-y-4`,children:[ce,V]}),t[25]=ce,t[26]=V,t[27]=U):U=t[27];let W;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,Q.jsx)(b,{variant:`outline`,onClick:y,children:`Cancel`}),t[28]=W):W=t[28];let G;t[29]!==n||t[30]!==s?(G=n||!ue(s),t[29]=n,t[30]=s,t[31]=G):G=t[31];let K;t[32]===m?K=t[33]:(K=(0,Q.jsx)($,{busy:m,children:`Turn on`}),t[32]=m,t[33]=K);let q;t[34]!==G||t[35]!==K?(q=(0,Q.jsxs)(ee,{children:[W,(0,Q.jsx)(b,{type:`submit`,disabled:G,children:K})]}),t[34]=G,t[35]=K,t[36]=q):q=t[36];let de;t[37]!==R||t[38]!==U||t[39]!==q?(de=(0,Q.jsx)(ne,{className:`max-w-md`,children:(0,Q.jsxs)(`form`,{onSubmit:R,children:[z,U,q]})}),t[37]=R,t[38]=U,t[39]=q,t[40]=de):de=t[40];let J;t[41]!==de||t[42]!==I?(J=(0,Q.jsx)(k,{open:I,onOpenChange:L,children:de}),t[41]=de,t[42]=I,t[43]=J):J=t[43];let fe;t[44]===n?fe=t[45]:(fe=e=>{n||d(e)},t[44]=n,t[45]=fe);let pe;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(pe=(0,Q.jsxs)(j,{children:[(0,Q.jsx)(ae,{children:`Remove two-factor authentication?`}),(0,Q.jsx)(ie,{children:`Password, recovery-code, and emailed-link sign-ins will no longer need a code from your authenticator app. You can set it up again at any time.`})]}),t[46]=pe):pe=t[46];let Y;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(Y=(0,Q.jsx)(N,{render:(0,Q.jsx)(b,{variant:`outline`}),children:`Keep it on`}),t[47]=Y):Y=t[47];let X;t[48]===w?X=t[49]:(X=()=>void w(),t[48]=w,t[49]=X);let me;t[50]!==n||t[51]!==X?(me=(0,Q.jsxs)(re,{children:[pe,(0,Q.jsxs)(M,{children:[Y,(0,Q.jsx)(b,{variant:`destructive`,disabled:n,onClick:X,children:`Remove two-factor`})]})]}),t[50]=n,t[51]=X,t[52]=me):me=t[52];let ge;t[53]!==u||t[54]!==fe||t[55]!==me?(ge=(0,Q.jsx)(oe,{open:u,onOpenChange:fe,children:me}),t[53]=u,t[54]=fe,t[55]=me,t[56]=ge):ge=t[56];let be;return t[57]!==J||t[58]!==ge||t[59]!==F?(be=(0,Q.jsxs)(he,{title:`Two-factor authentication`,icon:T,children:[F,J,ge]}),t[57]=J,t[58]=ge,t[59]=F,t[60]=be):be=t[60],be}function Ye(){c.beginTotpEnrollment()}function Xe(e){return c.revokeTotp(e)}function Ze(e){let t=(0,ye.c)(86),{busy:n,actionStatus:r,security:i,run:a,cancel:o}=e,[s,l]=(0,Z.useState)(!1),[u,f]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(!1),[y,x]=(0,Z.useState)(!1),S=r===`setting-password`,C=r===`removing-password`,w;t[0]!==p||t[1]!==u?(w=me(u,p),t[0]=p,t[1]=u,t[2]=w):w=t[2];let T=w,A;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>{f(``),m(``),g(!1)},t[3]=A):A=t[3];let P=A,F;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>{P(),l(!1)},t[4]=F):F=t[4];let I=F,L;t[5]===o?L=t[6]:(L=()=>{o(),I()},t[5]=o,t[6]=L);let R=L,z;t[7]!==T||t[8]!==u||t[9]!==a?(z=async e=>{e.preventDefault(),g(!0),!T&&await a(`set-password`,e=>c.setPassword({password:u,...e}),{onCommitted:I,onAbandoned:I})},t[7]=T,t[8]=u,t[9]=a,t[10]=z):z=t[10];let ce=z,le;t[11]===a?le=t[12]:(le=async()=>{x(!1),await a(`remove-password`,Qe)},t[11]=a,t[12]=le);let B=le,V;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,Q.jsx)(d,{"aria-hidden":!0,className:`size-3.5`}),t[13]=V):V=t[13];let H=i===null?`Checking current state…`:i.passwordConfigured?`Set`:`Not set`,U;t[14]!==n||t[15]!==C||t[16]!==i||t[17]!==S?(U=i===null?null:(0,Q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Q.jsx)(b,{size:`xs`,variant:`outline`,disabled:n,onClick:()=>l(!0),children:(0,Q.jsx)($,{busy:S,children:i.passwordConfigured?`Change`:`Set password`})}),i.passwordConfigured?(0,Q.jsx)(b,{size:`xs`,variant:`destructive-outline`,"aria-label":`Delete the fallback password`,disabled:n,onClick:()=>x(!0),children:(0,Q.jsx)($,{busy:C,children:`Remove`})}):null]}),t[14]=n,t[15]=C,t[16]=i,t[17]=S,t[18]=U):U=t[18];let W;t[19]!==H||t[20]!==U?(W=(0,Q.jsx)(_e,{title:`Fallback password`,description:`A password is a fallback, not an equal of a passkey: it can be phished and reused, and a session started with one has to prove itself again before changing credentials. Keep a passkey as your normal way in.`,status:H,control:U}),t[19]=H,t[20]=U,t[21]=W):W=t[21];let G=i===null?void 0:i.email,K=i?.emailDeliveryConfigured,q;t[22]!==r||t[23]!==n||t[24]!==a||t[25]!==G||t[26]!==K?(q=(0,Q.jsx)($e,{busy:n,actionStatus:r,email:G,deliveryConfigured:K,run:a}),t[22]=r,t[23]=n,t[24]=a,t[25]=G,t[26]=K,t[27]=q):q=t[27];let ue;t[28]===R?ue=t[29]:(ue=e=>{if(e){l(!0);return}R()},t[28]=R,t[29]=ue);let de;t[30]===ce?de=t[31]:(de=e=>void ce(e),t[30]=ce,t[31]=de);let J;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,Q.jsxs)(E,{children:[(0,Q.jsx)(D,{children:`Set a fallback password`}),(0,Q.jsx)(te,{children:`This replaces any password already on the account. The Hub rejects passwords that have appeared in a known breach.`})]}),t[32]=J):J=t[32];let fe;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(fe=(0,Q.jsx)(se,{htmlFor:`account-password`,children:`New password`}),t[33]=fe):fe=t[33];let pe;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(pe=e=>f(e.target.value),t[34]=pe):pe=t[34];let Y;t[35]!==u||t[36]!==S?(Y=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[fe,(0,Q.jsx)(v,{id:`account-password`,type:`password`,value:u,autoComplete:`new-password`,maxLength:256,disabled:S,className:_,onChange:pe})]}),t[35]=u,t[36]=S,t[37]=Y):Y=t[37];let X;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,Q.jsx)(se,{htmlFor:`account-password-confirm`,children:`Confirm password`}),t[38]=X):X=t[38];let ge;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(ge=e=>m(e.target.value),t[39]=ge):ge=t[39];let ve;t[40]!==p||t[41]!==S?(ve=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[X,(0,Q.jsx)(v,{id:`account-password-confirm`,type:`password`,value:p,autoComplete:`new-password`,maxLength:256,disabled:S,className:_,onChange:ge})]}),t[40]=p,t[41]=S,t[42]=ve):ve=t[42];let be;t[43]!==T||t[44]!==h?(be=h&&T?(0,Q.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive-foreground`,children:T}):null,t[43]=T,t[44]=h,t[45]=be):be=t[45];let xe;t[46]!==Y||t[47]!==ve||t[48]!==be?(xe=(0,Q.jsxs)(O,{className:`space-y-3`,children:[Y,ve,be]}),t[46]=Y,t[47]=ve,t[48]=be,t[49]=xe):xe=t[49];let Se;t[50]===R?Se=t[51]:(Se=(0,Q.jsx)(b,{variant:`outline`,onClick:R,children:`Cancel`}),t[50]=R,t[51]=Se);let Ce;t[52]===S?Ce=t[53]:(Ce=(0,Q.jsx)($,{busy:S,children:`Save password`}),t[52]=S,t[53]=Ce);let we;t[54]!==n||t[55]!==Ce?(we=(0,Q.jsx)(b,{type:`submit`,disabled:n,children:Ce}),t[54]=n,t[55]=Ce,t[56]=we):we=t[56];let Te;t[57]!==Se||t[58]!==we?(Te=(0,Q.jsxs)(ee,{children:[Se,we]}),t[57]=Se,t[58]=we,t[59]=Te):Te=t[59];let Ee;t[60]!==de||t[61]!==xe||t[62]!==Te?(Ee=(0,Q.jsx)(ne,{className:`max-w-md`,children:(0,Q.jsxs)(`form`,{onSubmit:de,children:[J,xe,Te]})}),t[60]=de,t[61]=xe,t[62]=Te,t[63]=Ee):Ee=t[63];let De;t[64]!==s||t[65]!==ue||t[66]!==Ee?(De=(0,Q.jsx)(k,{open:s,onOpenChange:ue,children:Ee}),t[64]=s,t[65]=ue,t[66]=Ee,t[67]=De):De=t[67];let Oe;t[68]===n?Oe=t[69]:(Oe=e=>{n||x(e)},t[68]=n,t[69]=Oe);let ke;t[70]===Symbol.for(`react.memo_cache_sentinel`)?(ke=(0,Q.jsxs)(j,{children:[(0,Q.jsx)(ae,{children:`Remove the password?`}),(0,Q.jsx)(ie,{children:`You will no longer be able to sign in with a password. Make sure you still have a passkey, or recovery codes you have saved.`})]}),t[70]=ke):ke=t[70];let Ae;t[71]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,Q.jsx)(N,{render:(0,Q.jsx)(b,{variant:`outline`}),children:`Keep it`}),t[71]=Ae):Ae=t[71];let je;t[72]===B?je=t[73]:(je=()=>void B(),t[72]=B,t[73]=je);let Me;t[74]!==n||t[75]!==je?(Me=(0,Q.jsxs)(re,{children:[ke,(0,Q.jsxs)(M,{children:[Ae,(0,Q.jsx)(b,{variant:`destructive`,disabled:n,onClick:je,children:`Remove password`})]})]}),t[74]=n,t[75]=je,t[76]=Me):Me=t[76];let Ne;t[77]!==y||t[78]!==Oe||t[79]!==Me?(Ne=(0,Q.jsx)(oe,{open:y,onOpenChange:Oe,children:Me}),t[77]=y,t[78]=Oe,t[79]=Me,t[80]=Ne):Ne=t[80];let Pe;return t[81]!==W||t[82]!==q||t[83]!==De||t[84]!==Ne?(Pe=(0,Q.jsxs)(he,{title:`Fallback sign-in`,icon:V,children:[W,q,De,Ne]}),t[81]=W,t[82]=q,t[83]=De,t[84]=Ne,t[85]=Pe):Pe=t[85],Pe}function Qe(e){return c.removePassword(e)}function $e(e){let t=(0,ye.c)(25),{busy:n,actionStatus:r,email:i,deliveryConfigured:a,run:o}=e,[s,l]=(0,Z.useState)(``),[u,d]=(0,Z.useState)(!1),[f,p]=(0,Z.useState)(!1),m=r===`requesting-email-verification`,g;t[0]===s?g=t[1]:(g=J(s),t[0]=s,t[1]=g);let y=g,x;t[2]!==s||t[3]!==y||t[4]!==o?(x=async e=>{e.preventDefault(),d(!0),p(!1),!y&&await o(`request-email-verification`,e=>c.requestEmailVerification({email:s.trim(),...e}),{onCommitted:()=>{p(!0),l(``),d(!1)}})},t[2]=s,t[3]=y,t[4]=o,t[5]=x):x=t[5];let C=x,E;t[6]===a?E=t[7]:(E=a===!1?(0,Q.jsx)(`div`,{className:`border-t border-border/60 px-4 pt-3.5 sm:px-5`,children:(0,Q.jsxs)(T,{variant:`warning`,children:[(0,Q.jsx)(h,{"aria-hidden":!0}),(0,Q.jsx)(S,{children:`No mail will arrive yet`}),(0,Q.jsx)(w,{children:`This Hub has no mail transport configured, so verification messages are generated and discarded. The request below will be accepted and nothing will be delivered until an operator wires one up. Do not rely on email as your way back into the account.`})]})}):null,t[6]=a,t[7]=E);let D=a?`Used for account recovery after verification. The Hub answers the same way whether or not the address is already known, so this never confirms who owns it.`:`Used for account recovery once mail delivery is switched on. The Hub answers the same way whether or not the address is already known, so this never confirms who owns it.`,ee=i===void 0?`Checking current state…`:i===null?`Not set`:`${i.verified?`Verified`:`Verification pending`} · ${i.address}`,O;t[8]!==f||t[9]!==n||t[10]!==i||t[11]!==a||t[12]!==s||t[13]!==y||t[14]!==m||t[15]!==C||t[16]!==u?(O=i===void 0?null:(0,Q.jsxs)(`form`,{className:`pt-3 pb-3.5`,onSubmit:e=>void C(e),children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,Q.jsx)(v,{"aria-label":`Email address`,type:`email`,value:s,autoComplete:`email`,placeholder:`you@example.com`,maxLength:254,disabled:m,className:_,onChange:e=>{l(e.target.value),p(!1)}}),(0,Q.jsx)(b,{type:`submit`,size:`sm`,variant:`outline`,disabled:n,className:`shrink-0`,children:(0,Q.jsx)($,{busy:m,children:i===null?`Send verification`:i.verified?`Change email`:`Resend or change`})})]}),u&&y?(0,Q.jsx)(`p`,{role:`alert`,className:`pt-2 text-xs text-destructive-foreground`,children:y}):null,f?(0,Q.jsx)(`p`,{role:`status`,className:`pt-2 text-xs text-muted-foreground`,children:a?`Verification email requested. Check your inbox and spam folder; delivery may take a moment.`:`Request accepted by the Hub. No message will be delivered until a mail transport is configured.`}):null]}),t[8]=f,t[9]=n,t[10]=i,t[11]=a,t[12]=s,t[13]=y,t[14]=m,t[15]=C,t[16]=u,t[17]=O):O=t[17];let te;t[18]!==D||t[19]!==ee||t[20]!==O?(te=(0,Q.jsx)(_e,{title:`Recovery email`,description:D,status:ee,children:O}),t[18]=D,t[19]=ee,t[20]=O,t[21]=te):te=t[21];let ne;return t[22]!==E||t[23]!==te?(ne=(0,Q.jsxs)(Q.Fragment,{children:[E,te]}),t[22]=E,t[23]=te,t[24]=ne):ne=t[24],ne}function et(e){let t=(0,ye.c)(52),{busy:n,actionStatus:r,recoveryCodes:i,run:a}=e,[o,s]=(0,Z.useState)(!1),c=r===`regenerating-recovery-codes`,{copyToClipboard:d,isCopied:p}=x(),m;t[0]===a?m=t[1]:(m=async()=>{s(!1),await a(`regenerate-recovery-codes`,it)},t[0]=a,t[1]=m);let h=m,g;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Q.jsx)(f,{"aria-hidden":!0,className:`size-3.5`}),t[2]=g):g=t[2];let _;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(_=()=>s(!0),t[3]=_):_=t[3];let v;t[4]===c?v=t[5]:(v=(0,Q.jsx)($,{busy:c,children:`Generate new codes`}),t[4]=c,t[5]=v);let y;t[6]!==n||t[7]!==v?(y=(0,Q.jsx)(_e,{title:`One-time recovery codes`,description:`Single-use codes that get you back in when you have lost every passkey. They are a last resort, not a substitute for one — anyone holding a code can sign in as you.`,status:`Ryco shows them once and never writes them to browser storage.`,control:(0,Q.jsx)(b,{size:`xs`,variant:`destructive-outline`,disabled:n,onClick:_,children:v})}),t[6]=n,t[7]=v,t[8]=y):y=t[8];let S;t[9]===n?S=t[10]:(S=e=>{n||s(e)},t[9]=n,t[10]=S);let C;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,Q.jsxs)(j,{children:[(0,Q.jsx)(ae,{children:`Replace your recovery codes?`}),(0,Q.jsx)(ie,{children:`Every code you have already saved stops working immediately. You will get a new set, shown once — if you lose them you will have to generate another set from a session you can still sign in to.`})]}),t[11]=C):C=t[11];let w;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Q.jsx)(N,{render:(0,Q.jsx)(b,{variant:`outline`}),children:`Cancel`}),t[12]=w):w=t[12];let T;t[13]===h?T=t[14]:(T=()=>void h(),t[13]=h,t[14]=T);let A;t[15]!==n||t[16]!==T?(A=(0,Q.jsxs)(re,{children:[C,(0,Q.jsxs)(M,{children:[w,(0,Q.jsx)(b,{variant:`destructive`,disabled:n,onClick:T,children:`Replace codes`})]})]}),t[15]=n,t[16]=T,t[17]=A):A=t[17];let P;t[18]!==o||t[19]!==A||t[20]!==S?(P=(0,Q.jsx)(oe,{open:o,onOpenChange:S,children:A}),t[18]=o,t[19]=A,t[20]=S,t[21]=P):P=t[21];let se=i.length>0,F;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,Q.jsx)(D,{children:`Save your recovery codes`}),t[22]=F):F=t[22];let I=String(i.length),L;t[23]===I?L=t[24]:(L=(0,Q.jsxs)(E,{children:[F,(0,Q.jsxs)(te,{children:[`Save all `,I,` codes — they are shown once and cannot be retrieved later. Store them somewhere only you can reach — a password manager, or paper somewhere safe.`]})]}),t[23]=I,t[24]=L);let R;t[25]===i?R=t[26]:(R=i.map(nt),t[25]=i,t[26]=R);let z;t[27]===R?z=t[28]:(z=(0,Q.jsx)(O,{children:(0,Q.jsx)(`ul`,{"aria-label":`Recovery codes`,className:`grid gap-2 rounded-xl border border-border bg-background p-4 font-mono text-sm break-all sm:grid-cols-2`,children:R})}),t[27]=R,t[28]=z);let le;t[29]!==d||t[30]!==i?(le=()=>d(ce(i),void 0),t[29]=d,t[30]=i,t[31]=le):le=t[31];let B;t[32]===p?B=t[33]:(B=p?(0,Q.jsx)(l,{"aria-hidden":!0}):(0,Q.jsx)(u,{"aria-hidden":!0}),t[32]=p,t[33]=B);let V=p?`Copied`:`Copy codes`,H;t[34]!==le||t[35]!==B||t[36]!==V?(H=(0,Q.jsxs)(b,{variant:`outline`,onClick:le,children:[B,V]}),t[34]=le,t[35]=B,t[36]=V,t[37]=H):H=t[37];let U;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,Q.jsx)(b,{onClick:tt,children:`I saved the codes`}),t[38]=U):U=t[38];let W;t[39]===H?W=t[40]:(W=(0,Q.jsxs)(ee,{children:[H,U]}),t[39]=H,t[40]=W);let G;t[41]!==L||t[42]!==z||t[43]!==W?(G=(0,Q.jsxs)(ne,{className:`max-w-md`,showCloseButton:!1,children:[L,z,W]}),t[41]=L,t[42]=z,t[43]=W,t[44]=G):G=t[44];let K;t[45]!==se||t[46]!==G?(K=(0,Q.jsx)(k,{open:se,disablePointerDismissal:!0,onOpenChange:rt,children:G}),t[45]=se,t[46]=G,t[47]=K):K=t[47];let q;return t[48]!==P||t[49]!==K||t[50]!==y?(q=(0,Q.jsxs)(he,{title:`Recovery codes`,icon:g,children:[y,P,K]}),t[48]=P,t[49]=K,t[50]=y,t[51]=q):q=t[51],q}function tt(){return c.dismissRecoveryCodes()}function nt(e){return(0,Q.jsx)(`li`,{children:e},e)}function rt(e,t){e||t.cancel()}function it(e){return c.regenerateRecoveryCodes(e)}function at(e){let t=(0,ye.c)(45),{pending:n,attempts:r,code:i,onCodeChange:a,onSubmit:o,onCancel:s,busy:c}=e,l=n!==null,u;t[0]===s?u=t[1]:(u=e=>{e||s()},t[0]=s,t[1]=u);let d;t[2]===o?d=t[3]:(d=e=>{e.preventDefault(),o()},t[2]=o,t[3]=d);let f;t[4]===n?f=t[5]:(f=n?I(n.action):``,t[4]=n,t[5]=f);let p;t[6]===f?p=t[7]:(p=(0,Q.jsx)(D,{children:f}),t[6]=f,t[7]=p);let m=n?.inferred??!1,h;t[8]!==r||t[9]!==m?(h=X(r,m),t[8]=r,t[9]=m,t[10]=h):h=t[10];let g;t[11]===h?g=t[12]:(g=(0,Q.jsx)(te,{children:h}),t[11]=h,t[12]=g);let y;t[13]!==p||t[14]!==g?(y=(0,Q.jsxs)(E,{children:[p,g]}),t[13]=p,t[14]=g,t[15]=y):y=t[15];let x;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,Q.jsx)(se,{htmlFor:`account-step-up-code`,children:`Authenticator code`}),t[16]=x):x=t[16];let S;t[17]===a?S=t[18]:(S=e=>a(H(e.target.value)),t[17]=a,t[18]=S);let C;t[19]!==c||t[20]!==i||t[21]!==S?(C=(0,Q.jsxs)(O,{className:`space-y-2`,children:[x,(0,Q.jsx)(v,{id:`account-step-up-code`,value:i,inputMode:`numeric`,autoComplete:`one-time-code`,maxLength:16,disabled:c,className:_,onChange:S})]}),t[19]=c,t[20]=i,t[21]=S,t[22]=C):C=t[22];let w;t[23]===s?w=t[24]:(w=(0,Q.jsx)(b,{variant:`outline`,onClick:s,children:`Cancel`}),t[23]=s,t[24]=w);let T;t[25]!==c||t[26]!==i?(T=c||!ue(i),t[25]=c,t[26]=i,t[27]=T):T=t[27];let A;t[28]===c?A=t[29]:(A=(0,Q.jsx)($,{busy:c,children:`Confirm code`}),t[28]=c,t[29]=A);let j;t[30]!==T||t[31]!==A?(j=(0,Q.jsx)(b,{type:`submit`,disabled:T,children:A}),t[30]=T,t[31]=A,t[32]=j):j=t[32];let M;t[33]!==w||t[34]!==j?(M=(0,Q.jsxs)(ee,{children:[w,j]}),t[33]=w,t[34]=j,t[35]=M):M=t[35];let N;t[36]!==C||t[37]!==M||t[38]!==d||t[39]!==y?(N=(0,Q.jsx)(ne,{className:`max-w-sm`,children:(0,Q.jsxs)(`form`,{onSubmit:d,children:[y,C,M]})}),t[36]=C,t[37]=M,t[38]=d,t[39]=y,t[40]=N):N=t[40];let re;return t[41]!==l||t[42]!==N||t[43]!==u?(re=(0,Q.jsx)(k,{open:l,onOpenChange:u,children:N}),t[41]=l,t[42]=N,t[43]=u,t[44]=re):re=t[44],re}export{Te as AccountSettingsPanel};
@@ -1 +1 @@
1
- import{i as e,t}from"./react-SIfiwpqq.js";import{t as n}from"./compiler-runtime-qmuS0Svy.js";import{C as r,Ir as i,O as a}from"./src-DUTt1PTH.js";import{Bn as o,Hn as s,b as c,p as l,u,xn as ee,y as d,zn as te}from"./runtime-rC2k29TW.js";import{kt as f,n as ne}from"./primary-DjvrcOzR.js";import{Ct as p,It as m,U as h,V as g,X as _,q as v}from"./composerDraftStore-DM8BJvHt.js";import{i as re}from"./threadPriorityRefreshRuntime-C9_hY5A-.js";import{t as y}from"./archive-BL1hojl3.js";import{a as ie,i as b}from"./toast-ClkUrsPP.js";import{t as ae}from"./refresh-cw-DopCMrtR.js";import{t as oe}from"./sparkles-CAf3oJ5S.js";import{t as x}from"./ProviderModelPicker-0XHZhfEq.js";import{t as se}from"./switch-Buq6cQMX.js";import{t as S}from"./button-84K7n2wA.js";import{t as C}from"./toastHelpers-CSQRKo4F.js";import{a as ce,i as w,o as T,s as E,t as D}from"./select-CY7KGJfs.js";import"./providerInstances-DuEFgB4d.js";import{i as O,n as le,r as k}from"./settingsLayout-Bdb0BKqT.js";var ue=[`Thread titles`,`Project or repository names`,`Branch names`,`Bucketed creation and activity age`,`Running, approval, input, queue, failure, and delivery state`,`Pull request or linked issue title and state`,`Up to 600 characters from the latest user request`],A=[{value:0,label:`Manual only`},{value:3e5,label:`Every 5 minutes`},{value:6e5,label:`Every 10 minutes`},{value:18e5,label:`Every 30 minutes`},{value:36e5,label:`Every hour`},{value:216e5,label:`Every 6 hours`},{value:864e5,label:`Every 24 hours`}];function j(e){return{...e.enabled===void 0?{}:{aiFocusEnabled:e.enabled},...e.refreshIntervalMs===void 0?{}:{aiFocusRefreshIntervalMs:e.refreshIntervalMs}}}function de(e){return e.map(e=>{let t=e.serverConfig,n=t?.environment.capabilities.threadPriorityRanking===!0,r=t?.settings.inboxPriorityModelSelection??null,i=t?r??t.settings.textGenerationModelSelection:null,a=i===null?null:t?.providers.find(e=>e.instanceId===i.instanceId)??null;return{...e,supported:n,inherited:r===null,effectiveModelSelection:i,effectiveProvider:a}})}function M(e,t){let n=e.find(e=>e.instanceId===t);return!!(n&&n.enabled&&n.installed&&n.availability!==`unavailable`&&n.status!==`disabled`&&n.status!==`error`)}function N(e){if(e.selection!==null&&!M(e.serverConfig.providers,e.selection.instanceId))throw Error(`That provider instance is not available on this environment.`);return{inboxPriorityModelSelection:e.selection}}var P=n(),F=e(t(),1),I=m();function L(e){return e instanceof Error?e.message:`An unexpected error occurred.`}function fe(e){let t=(0,P.c)(12),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,I.jsx)(y,{className:`size-3.5`}),t[0]=n):n=t[0];let r;t[1]===e.value?r=t[2]:(r=e.value?.toString()??`off`,t[1]=e.value,t[2]=r);let i;t[3]===e?i=t[4]:(i=t=>{let n=t===`off`?null:Number(t);(n===null||a.includes(n))&&e.onChange(n)},t[3]=e,t[4]=i);let o=e.value===null?`Off`:`After ${e.value} ${e.value===1?`day`:`days`}`,s;t[5]===o?s=t[6]:(s=(0,I.jsx)(T,{className:`w-48`,"aria-label":`Auto-settle inactive tasks`,children:(0,I.jsx)(E,{children:o})}),t[5]=o,t[6]=s);let c;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,I.jsxs)(ce,{align:`end`,alignItemWithTrigger:!1,children:[(0,I.jsx)(w,{hideIndicator:!0,value:`off`,children:`Off`}),a.map(R)]}),t[7]=c):c=t[7];let l;return t[8]!==r||t[9]!==i||t[10]!==s?(l=(0,I.jsx)(O,{title:`Housekeeping`,icon:n,children:(0,I.jsx)(k,{title:`Auto-settle inactive tasks`,description:`Move inactive tasks to Settled after their last message or turn. Running work, queued messages, pending input, open pull requests, and tasks kept active are protected.`,control:(0,I.jsxs)(D,{value:r,onValueChange:i,children:[s,c]})})}),t[8]=r,t[9]=i,t[10]=s,t[11]=l):l=t[11],l}function R(e){return(0,I.jsxs)(w,{hideIndicator:!0,value:String(e),children:[`After `,e,` `,e===1?`day`:`days`]},e)}function pe(){let e=(0,P.c)(2),[t,n]=(0,F.useState)(z),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>d(()=>{n(u())}),i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,F.useEffect)(r,i),t}function z(){return u()}function B({row:e}){let[t,n]=(0,F.useState)(!1),i=e.serverConfig;if(!i||!e.effectiveModelSelection)return null;let a={...i.settings,...r},o=e.effectiveModelSelection,s=_(v(i.providers)),l=g(a,i.providers,o.instanceId,o.model),u=async t=>{n(!0);try{let n=N({serverConfig:i,selection:t});await c(e.environmentId,n)}catch(t){b.add(C({type:`error`,title:`Could not update ${e.label}`,description:L(t)}))}finally{n(!1)}};return(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[(0,I.jsx)(x,{activeInstanceId:o.instanceId,model:o.model,lockedProvider:null,instanceEntries:s,modelOptionsByInstance:l,compact:!0,disabled:t||!e.connected,...e.connected?{}:{disabledReason:`Connect this environment to change its model.`},onInstanceModelChange:(e,t)=>{u(h({...a,textGenerationModelSelection:p(e,t)},i.providers))}}),e.inherited?null:(0,I.jsx)(S,{size:`xs`,variant:`ghost`,disabled:t||!e.connected,onClick:()=>void u(null),children:`Use text model`})]})}function V(e){let t=(0,P.c)(6),{row:n}=e,r=n.effectiveProvider?.displayName??n.effectiveProvider?.driver??null,i=n.connected?n.supported?n.inherited?`Inherits the text-generation model${r?` (${r})`:``}.`:`Uses a separate model for Inbox ranking.`:`This node version does not support AI Focus ranking. Other supported nodes still work.`:`Offline — ranking waits for an existing connection.`,a;t[0]===n?a=t[1]:(a=n.supported?(0,I.jsx)(B,{row:n}):void 0,t[0]=n,t[1]=a);let o;return t[2]!==n.label||t[3]!==i||t[4]!==a?(o=(0,I.jsx)(k,{title:n.label,description:i,control:a}),t[2]=n.label,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function H(){let e=(0,P.c)(54),t=te(),{updateSettings:n}=o(),r=s(),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=ne(),e[0]=a):a=e[0];let c=a,l=ee(ve),u=pe(),[d,f]=(0,F.useState)(!1);c?.environmentId,c?.label;let p;if(e[1]!==u||e[2]!==r||e[3]!==l){let t=new Map;c?.environmentId&&t.set(c.environmentId,{label:c.label,config:r});for(let e of u){if(t.has(e.environmentId))continue;let n=l[e.environmentId];t.set(e.environmentId,{label:n?.descriptor?.label??e.knownEnvironment.label,config:n?.serverConfig??null})}for(let[e,n]of Object.entries(l)){let r=i.make(e);t.has(r)||t.set(r,{label:n.descriptor?.label??`Saved environment`,config:n.serverConfig})}p=de([...t].map(_e)),e[1]=u,e[2]=r,e[3]=l,e[4]=p}else p=e[4];let m=p,h;e[5]===m?h=e[6]:(h=async()=>{f(!0);let e=await re(),t=e.failures;t.length>0?b.add(C({type:`error`,title:`AI Focus refresh failed`,description:t.map(e=>{let{environmentId:t,error:n}=e;return`${m.find(e=>e.environmentId===t)?.label??`Environment`}: ${L(n)}`}).join(` · `)})):b.add(C({type:`success`,title:e.attempted.length>0?`AI Focus refreshed`:`No connected supported nodes`,description:e.attempted.length>0?`Updated ${e.succeeded.length} environment${e.succeeded.length===1?``:`s`}.`:`Connect a supported node to rank its Inbox.`})),f(!1)},e[5]=m,e[6]=h);let g=h,_;e[7]===n?_=e[8]:(_=e=>n({sidebarAutoSettleAfterDays:e}),e[7]=n,e[8]=_);let v;e[9]!==t.sidebarAutoSettleAfterDays||e[10]!==_?(v=(0,I.jsx)(fe,{value:t.sidebarAutoSettleAfterDays,onChange:_}),e[9]=t.sidebarAutoSettleAfterDays,e[10]=_,e[11]=v):v=e[11];let y;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,I.jsx)(oe,{className:`size-3.5`}),e[12]=y):y=e[12];let x;e[13]===n?x=e[14]:(x=e=>n(j({enabled:e})),e[13]=n,e[14]=x);let w;e[15]!==t.aiFocusEnabled||e[16]!==x?(w=(0,I.jsx)(k,{title:`Prioritize the Inbox`,description:`Create a Focus section from pinned, actionable, and model-ranked threads. Focused threads are removed from Active, never duplicated.`,control:(0,I.jsx)(se,{"aria-label":`Enable AI Focus`,checked:t.aiFocusEnabled,onCheckedChange:x})}),e[15]=t.aiFocusEnabled,e[16]=x,e[17]=w):w=e[17];let M=String(t.aiFocusRefreshIntervalMs),N;e[18]===n?N=e[19]:(N=e=>{let t=Number(e);n(j({refreshIntervalMs:t}))},e[18]=n,e[19]=N);let R;e[20]===t.aiFocusRefreshIntervalMs?R=e[21]:(R=A.find(e=>e.value===t.aiFocusRefreshIntervalMs)?.label??`Every 10 minutes`,e[20]=t.aiFocusRefreshIntervalMs,e[21]=R);let z;e[22]===R?z=e[23]:(z=(0,I.jsx)(T,{className:`w-48`,"aria-label":`AI Focus refresh interval`,children:(0,I.jsx)(E,{children:R})}),e[22]=R,e[23]=z);let B;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,I.jsx)(ce,{align:`end`,alignItemWithTrigger:!1,children:A.map(ge)}),e[24]=B):B=e[24];let V;e[25]!==z||e[26]!==M||e[27]!==N?(V=(0,I.jsxs)(D,{value:M,onValueChange:N,children:[z,B]}),e[25]=z,e[26]=M,e[27]=N,e[28]=V):V=e[28];let H;e[29]===g?H=e[30]:(H=()=>void g(),e[29]=g,e[30]=H);let U=d?`size-4 animate-spin`:`size-4`,W;e[31]===U?W=e[32]:(W=(0,I.jsx)(ae,{className:U}),e[31]=U,e[32]=W);let G;e[33]!==d||e[34]!==H||e[35]!==W?(G=(0,I.jsx)(S,{size:`icon-sm`,variant:`outline`,"aria-label":`Refresh AI Focus now`,disabled:d,onClick:H,children:W}),e[33]=d,e[34]=H,e[35]=W,e[36]=G):G=e[36];let K;e[37]!==V||e[38]!==G?(K=(0,I.jsx)(k,{title:`Refresh rankings`,description:`Automatic checks use only nodes that are already connected. Manual-only never starts a connection.`,control:(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[V,G]})}),e[37]=V,e[38]=G,e[39]=K):K=e[39];let q;e[40]!==K||e[41]!==w?(q=(0,I.jsxs)(O,{title:`AI Focus`,icon:y,children:[w,K]}),e[40]=K,e[41]=w,e[42]=q):q=e[42];let J;e[43]===m?J=e[44]:(J=m.length>0?m.map(he):(0,I.jsx)(k,{title:`No environments available`,description:`Connect a node to configure its Inbox ranking model.`}),e[43]=m,e[44]=J);let Y;e[45]===J?Y=e[46]:(Y=(0,I.jsx)(O,{title:`Models`,children:J}),e[45]=J,e[46]=Y);let X;e[47]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,I.jsx)(ie,{className:`size-3.5`}),e[47]=X):X=e[47];let Z;e[48]===Symbol.for(`react.memo_cache_sentinel`)?(Z=(0,I.jsx)(`p`,{className:`mb-3 text-xs text-muted-foreground`,children:`Ranking sends only this bounded metadata from each environment. It does not send full chat history, file contents, or message responses.`}),e[48]=Z):Z=e[48];let Q;e[49]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,I.jsx)(O,{title:`Data sent to the selected model`,icon:X,children:(0,I.jsxs)(`div`,{className:`px-5 py-4`,children:[Z,(0,I.jsx)(`ul`,{className:`grid gap-1.5 text-xs text-foreground/80 sm:grid-cols-2`,children:ue.map(me)})]})}),e[49]=Q):Q=e[49];let $;return e[50]!==q||e[51]!==Y||e[52]!==v?($=(0,I.jsxs)(le,{children:[v,q,Y,Q]}),e[50]=q,e[51]=Y,e[52]=v,e[53]=$):$=e[53],$}function me(e){return(0,I.jsxs)(`li`,{className:`flex gap-2`,children:[(0,I.jsx)(`span`,{"aria-hidden":!0,className:`text-muted-foreground`,children:`•`}),(0,I.jsx)(`span`,{children:e})]},e)}function he(e){return(0,I.jsx)(V,{row:e},e.environmentId)}function ge(e){return(0,I.jsx)(w,{hideIndicator:!0,value:String(e.value),children:e.label},e.value)}function _e(e){let[t,n]=e;return{environmentId:t,label:n.label,connected:l(t)!==null&&f(t).phase===`connected`,serverConfig:n.config}}function ve(e){return e.byId}export{H as AiFocusSettings};
1
+ import{i as e,t}from"./react-SIfiwpqq.js";import{t as n}from"./compiler-runtime-qmuS0Svy.js";import{C as r,Ir as i,O as a}from"./src-Blzsn4sO.js";import{Bn as o,Hn as s,b as c,p as l,u,xn as ee,y as d,zn as te}from"./runtime-DRPzstwF.js";import{kt as f,n as ne}from"./primary-AnB-Zuft.js";import{Ct as p,It as m,U as h,V as g,X as _,q as v}from"./composerDraftStore-czbuHgbM.js";import{i as re}from"./threadPriorityRefreshRuntime-D-OkS27H.js";import{t as y}from"./archive-BL1hojl3.js";import{a as ie,i as b}from"./toast-D7IDKuLa.js";import{t as ae}from"./refresh-cw-DopCMrtR.js";import{t as oe}from"./sparkles-CAf3oJ5S.js";import{t as x}from"./ProviderModelPicker-Ch69G0-0.js";import{t as se}from"./switch-CIMwetO3.js";import{t as S}from"./button-CBqaO2Ub.js";import{t as C}from"./toastHelpers-CSQRKo4F.js";import{a as ce,i as w,o as T,s as E,t as D}from"./select-_C7bRT7k.js";import"./providerInstances-CMy-5cGE.js";import{i as O,n as le,r as k}from"./settingsLayout-zwP6p5aD.js";var ue=[`Thread titles`,`Project or repository names`,`Branch names`,`Bucketed creation and activity age`,`Running, approval, input, queue, failure, and delivery state`,`Pull request or linked issue title and state`,`Up to 600 characters from the latest user request`],A=[{value:0,label:`Manual only`},{value:3e5,label:`Every 5 minutes`},{value:6e5,label:`Every 10 minutes`},{value:18e5,label:`Every 30 minutes`},{value:36e5,label:`Every hour`},{value:216e5,label:`Every 6 hours`},{value:864e5,label:`Every 24 hours`}];function j(e){return{...e.enabled===void 0?{}:{aiFocusEnabled:e.enabled},...e.refreshIntervalMs===void 0?{}:{aiFocusRefreshIntervalMs:e.refreshIntervalMs}}}function de(e){return e.map(e=>{let t=e.serverConfig,n=t?.environment.capabilities.threadPriorityRanking===!0,r=t?.settings.inboxPriorityModelSelection??null,i=t?r??t.settings.textGenerationModelSelection:null,a=i===null?null:t?.providers.find(e=>e.instanceId===i.instanceId)??null;return{...e,supported:n,inherited:r===null,effectiveModelSelection:i,effectiveProvider:a}})}function M(e,t){let n=e.find(e=>e.instanceId===t);return!!(n&&n.enabled&&n.installed&&n.availability!==`unavailable`&&n.status!==`disabled`&&n.status!==`error`)}function N(e){if(e.selection!==null&&!M(e.serverConfig.providers,e.selection.instanceId))throw Error(`That provider instance is not available on this environment.`);return{inboxPriorityModelSelection:e.selection}}var P=n(),F=e(t(),1),I=m();function L(e){return e instanceof Error?e.message:`An unexpected error occurred.`}function fe(e){let t=(0,P.c)(12),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,I.jsx)(y,{className:`size-3.5`}),t[0]=n):n=t[0];let r;t[1]===e.value?r=t[2]:(r=e.value?.toString()??`off`,t[1]=e.value,t[2]=r);let i;t[3]===e?i=t[4]:(i=t=>{let n=t===`off`?null:Number(t);(n===null||a.includes(n))&&e.onChange(n)},t[3]=e,t[4]=i);let o=e.value===null?`Off`:`After ${e.value} ${e.value===1?`day`:`days`}`,s;t[5]===o?s=t[6]:(s=(0,I.jsx)(T,{className:`w-48`,"aria-label":`Auto-settle inactive tasks`,children:(0,I.jsx)(E,{children:o})}),t[5]=o,t[6]=s);let c;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,I.jsxs)(ce,{align:`end`,alignItemWithTrigger:!1,children:[(0,I.jsx)(w,{hideIndicator:!0,value:`off`,children:`Off`}),a.map(R)]}),t[7]=c):c=t[7];let l;return t[8]!==r||t[9]!==i||t[10]!==s?(l=(0,I.jsx)(O,{title:`Housekeeping`,icon:n,children:(0,I.jsx)(k,{title:`Auto-settle inactive tasks`,description:`Move inactive tasks to Settled after their last message or turn. Running work, queued messages, pending input, open pull requests, and tasks kept active are protected.`,control:(0,I.jsxs)(D,{value:r,onValueChange:i,children:[s,c]})})}),t[8]=r,t[9]=i,t[10]=s,t[11]=l):l=t[11],l}function R(e){return(0,I.jsxs)(w,{hideIndicator:!0,value:String(e),children:[`After `,e,` `,e===1?`day`:`days`]},e)}function pe(){let e=(0,P.c)(2),[t,n]=(0,F.useState)(z),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>d(()=>{n(u())}),i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,F.useEffect)(r,i),t}function z(){return u()}function B({row:e}){let[t,n]=(0,F.useState)(!1),i=e.serverConfig;if(!i||!e.effectiveModelSelection)return null;let a={...i.settings,...r},o=e.effectiveModelSelection,s=_(v(i.providers)),l=g(a,i.providers,o.instanceId,o.model),u=async t=>{n(!0);try{let n=N({serverConfig:i,selection:t});await c(e.environmentId,n)}catch(t){b.add(C({type:`error`,title:`Could not update ${e.label}`,description:L(t)}))}finally{n(!1)}};return(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[(0,I.jsx)(x,{activeInstanceId:o.instanceId,model:o.model,lockedProvider:null,instanceEntries:s,modelOptionsByInstance:l,compact:!0,disabled:t||!e.connected,...e.connected?{}:{disabledReason:`Connect this environment to change its model.`},onInstanceModelChange:(e,t)=>{u(h({...a,textGenerationModelSelection:p(e,t)},i.providers))}}),e.inherited?null:(0,I.jsx)(S,{size:`xs`,variant:`ghost`,disabled:t||!e.connected,onClick:()=>void u(null),children:`Use text model`})]})}function V(e){let t=(0,P.c)(6),{row:n}=e,r=n.effectiveProvider?.displayName??n.effectiveProvider?.driver??null,i=n.connected?n.supported?n.inherited?`Inherits the text-generation model${r?` (${r})`:``}.`:`Uses a separate model for Inbox ranking.`:`This node version does not support AI Focus ranking. Other supported nodes still work.`:`Offline — ranking waits for an existing connection.`,a;t[0]===n?a=t[1]:(a=n.supported?(0,I.jsx)(B,{row:n}):void 0,t[0]=n,t[1]=a);let o;return t[2]!==n.label||t[3]!==i||t[4]!==a?(o=(0,I.jsx)(k,{title:n.label,description:i,control:a}),t[2]=n.label,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function H(){let e=(0,P.c)(54),t=te(),{updateSettings:n}=o(),r=s(),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=ne(),e[0]=a):a=e[0];let c=a,l=ee(ve),u=pe(),[d,f]=(0,F.useState)(!1);c?.environmentId,c?.label;let p;if(e[1]!==u||e[2]!==r||e[3]!==l){let t=new Map;c?.environmentId&&t.set(c.environmentId,{label:c.label,config:r});for(let e of u){if(t.has(e.environmentId))continue;let n=l[e.environmentId];t.set(e.environmentId,{label:n?.descriptor?.label??e.knownEnvironment.label,config:n?.serverConfig??null})}for(let[e,n]of Object.entries(l)){let r=i.make(e);t.has(r)||t.set(r,{label:n.descriptor?.label??`Saved environment`,config:n.serverConfig})}p=de([...t].map(_e)),e[1]=u,e[2]=r,e[3]=l,e[4]=p}else p=e[4];let m=p,h;e[5]===m?h=e[6]:(h=async()=>{f(!0);let e=await re(),t=e.failures;t.length>0?b.add(C({type:`error`,title:`AI Focus refresh failed`,description:t.map(e=>{let{environmentId:t,error:n}=e;return`${m.find(e=>e.environmentId===t)?.label??`Environment`}: ${L(n)}`}).join(` · `)})):b.add(C({type:`success`,title:e.attempted.length>0?`AI Focus refreshed`:`No connected supported nodes`,description:e.attempted.length>0?`Updated ${e.succeeded.length} environment${e.succeeded.length===1?``:`s`}.`:`Connect a supported node to rank its Inbox.`})),f(!1)},e[5]=m,e[6]=h);let g=h,_;e[7]===n?_=e[8]:(_=e=>n({sidebarAutoSettleAfterDays:e}),e[7]=n,e[8]=_);let v;e[9]!==t.sidebarAutoSettleAfterDays||e[10]!==_?(v=(0,I.jsx)(fe,{value:t.sidebarAutoSettleAfterDays,onChange:_}),e[9]=t.sidebarAutoSettleAfterDays,e[10]=_,e[11]=v):v=e[11];let y;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,I.jsx)(oe,{className:`size-3.5`}),e[12]=y):y=e[12];let x;e[13]===n?x=e[14]:(x=e=>n(j({enabled:e})),e[13]=n,e[14]=x);let w;e[15]!==t.aiFocusEnabled||e[16]!==x?(w=(0,I.jsx)(k,{title:`Prioritize the Inbox`,description:`Create a Focus section from pinned, actionable, and model-ranked threads. Focused threads are removed from Active, never duplicated.`,control:(0,I.jsx)(se,{"aria-label":`Enable AI Focus`,checked:t.aiFocusEnabled,onCheckedChange:x})}),e[15]=t.aiFocusEnabled,e[16]=x,e[17]=w):w=e[17];let M=String(t.aiFocusRefreshIntervalMs),N;e[18]===n?N=e[19]:(N=e=>{let t=Number(e);n(j({refreshIntervalMs:t}))},e[18]=n,e[19]=N);let R;e[20]===t.aiFocusRefreshIntervalMs?R=e[21]:(R=A.find(e=>e.value===t.aiFocusRefreshIntervalMs)?.label??`Every 10 minutes`,e[20]=t.aiFocusRefreshIntervalMs,e[21]=R);let z;e[22]===R?z=e[23]:(z=(0,I.jsx)(T,{className:`w-48`,"aria-label":`AI Focus refresh interval`,children:(0,I.jsx)(E,{children:R})}),e[22]=R,e[23]=z);let B;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,I.jsx)(ce,{align:`end`,alignItemWithTrigger:!1,children:A.map(ge)}),e[24]=B):B=e[24];let V;e[25]!==z||e[26]!==M||e[27]!==N?(V=(0,I.jsxs)(D,{value:M,onValueChange:N,children:[z,B]}),e[25]=z,e[26]=M,e[27]=N,e[28]=V):V=e[28];let H;e[29]===g?H=e[30]:(H=()=>void g(),e[29]=g,e[30]=H);let U=d?`size-4 animate-spin`:`size-4`,W;e[31]===U?W=e[32]:(W=(0,I.jsx)(ae,{className:U}),e[31]=U,e[32]=W);let G;e[33]!==d||e[34]!==H||e[35]!==W?(G=(0,I.jsx)(S,{size:`icon-sm`,variant:`outline`,"aria-label":`Refresh AI Focus now`,disabled:d,onClick:H,children:W}),e[33]=d,e[34]=H,e[35]=W,e[36]=G):G=e[36];let K;e[37]!==V||e[38]!==G?(K=(0,I.jsx)(k,{title:`Refresh rankings`,description:`Automatic checks use only nodes that are already connected. Manual-only never starts a connection.`,control:(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[V,G]})}),e[37]=V,e[38]=G,e[39]=K):K=e[39];let q;e[40]!==K||e[41]!==w?(q=(0,I.jsxs)(O,{title:`AI Focus`,icon:y,children:[w,K]}),e[40]=K,e[41]=w,e[42]=q):q=e[42];let J;e[43]===m?J=e[44]:(J=m.length>0?m.map(he):(0,I.jsx)(k,{title:`No environments available`,description:`Connect a node to configure its Inbox ranking model.`}),e[43]=m,e[44]=J);let Y;e[45]===J?Y=e[46]:(Y=(0,I.jsx)(O,{title:`Models`,children:J}),e[45]=J,e[46]=Y);let X;e[47]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,I.jsx)(ie,{className:`size-3.5`}),e[47]=X):X=e[47];let Z;e[48]===Symbol.for(`react.memo_cache_sentinel`)?(Z=(0,I.jsx)(`p`,{className:`mb-3 text-xs text-muted-foreground`,children:`Ranking sends only this bounded metadata from each environment. It does not send full chat history, file contents, or message responses.`}),e[48]=Z):Z=e[48];let Q;e[49]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,I.jsx)(O,{title:`Data sent to the selected model`,icon:X,children:(0,I.jsxs)(`div`,{className:`px-5 py-4`,children:[Z,(0,I.jsx)(`ul`,{className:`grid gap-1.5 text-xs text-foreground/80 sm:grid-cols-2`,children:ue.map(me)})]})}),e[49]=Q):Q=e[49];let $;return e[50]!==q||e[51]!==Y||e[52]!==v?($=(0,I.jsxs)(le,{children:[v,q,Y,Q]}),e[50]=q,e[51]=Y,e[52]=v,e[53]=$):$=e[53],$}function me(e){return(0,I.jsxs)(`li`,{className:`flex gap-2`,children:[(0,I.jsx)(`span`,{"aria-hidden":!0,className:`text-muted-foreground`,children:`•`}),(0,I.jsx)(`span`,{children:e})]},e)}function he(e){return(0,I.jsx)(V,{row:e},e.environmentId)}function ge(e){return(0,I.jsx)(w,{hideIndicator:!0,value:String(e.value),children:e.label},e.value)}function _e(e){let[t,n]=e;return{environmentId:t,label:n.label,connected:l(t)!==null&&f(t).phase===`connected`,serverConfig:n.config}}function ve(e){return e.byId}export{H as AiFocusSettings};
@@ -1 +1 @@
1
- import{i as e,t}from"./react-SIfiwpqq.js";import{t as n}from"./compiler-runtime-qmuS0Svy.js";import{It as r}from"./composerDraftStore-DM8BJvHt.js";var i=n(),a=e(t(),1),o=r(),s=250;function c(e){let t=(0,i.c)(17),{children:n}=e,r=(0,a.useRef)(null),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={height:null,isClipping:!1},t[0]=c):c=t[0];let[d,f]=(0,a.useState)(c),p;t[1]===d.isClipping?p=t[2]:(p=()=>{if(!d.isClipping)return;let e=window.setTimeout(()=>{f(u)},s);return()=>window.clearTimeout(e)},t[1]=d.isClipping,t[2]=p);let m;t[3]!==d.height||t[4]!==d.isClipping?(m=[d.height,d.isClipping],t[3]=d.height,t[4]=d.isClipping,t[5]=m):m=t[5],(0,a.useEffect)(p,m);let h,g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{let e=r.current;if(!e)return;let t=null,n=null,i=()=>{let t=Math.ceil(e.scrollHeight||e.getBoundingClientRect().height);f(e=>e.height===t?e:{height:t,isClipping:e.height!==null})},a=()=>{t!==null&&(window.cancelAnimationFrame(t),t=null),n!==null&&(window.cancelAnimationFrame(n),n=null)},o=()=>{a(),i(),t=window.requestAnimationFrame(()=>{t=null,i(),n=window.requestAnimationFrame(()=>{n=null,i()})})};o();let s=new ResizeObserver(o);return s.observe(e),()=>{s.disconnect(),a()}},g=[],t[6]=h,t[7]=g):(h=t[6],g=t[7]),(0,a.useLayoutEffect)(h,g);let _;t[8]!==d.height||t[9]!==d.isClipping?(_=d.height===null?void 0:{height:d.height,overflow:d.isClipping?`hidden`:`visible`},t[8]=d.height,t[9]=d.isClipping,t[10]=_):_=t[10];let v;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(v=e=>{e.target===e.currentTarget&&e.propertyName===`height`&&f(l)},t[11]=v):v=t[11];let y;t[12]===n?y=t[13]:(y=(0,o.jsx)(`div`,{ref:r,children:n}),t[12]=n,t[13]=y);let b;return t[14]!==_||t[15]!==y?(b=(0,o.jsx)(`div`,{"data-slot":`animated-height`,className:`transition-[height] duration-200 ease-out motion-reduce:transition-none`,style:_,onTransitionEnd:v,children:y}),t[14]=_,t[15]=y,t[16]=b):b=t[16],b}function l(e){return e.isClipping?{...e,isClipping:!1}:e}function u(e){return e.isClipping?{...e,isClipping:!1}:e}export{c as t};
1
+ import{i as e,t}from"./react-SIfiwpqq.js";import{t as n}from"./compiler-runtime-qmuS0Svy.js";import{It as r}from"./composerDraftStore-czbuHgbM.js";var i=n(),a=e(t(),1),o=r(),s=250;function c(e){let t=(0,i.c)(17),{children:n}=e,r=(0,a.useRef)(null),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={height:null,isClipping:!1},t[0]=c):c=t[0];let[d,f]=(0,a.useState)(c),p;t[1]===d.isClipping?p=t[2]:(p=()=>{if(!d.isClipping)return;let e=window.setTimeout(()=>{f(u)},s);return()=>window.clearTimeout(e)},t[1]=d.isClipping,t[2]=p);let m;t[3]!==d.height||t[4]!==d.isClipping?(m=[d.height,d.isClipping],t[3]=d.height,t[4]=d.isClipping,t[5]=m):m=t[5],(0,a.useEffect)(p,m);let h,g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{let e=r.current;if(!e)return;let t=null,n=null,i=()=>{let t=Math.ceil(e.scrollHeight||e.getBoundingClientRect().height);f(e=>e.height===t?e:{height:t,isClipping:e.height!==null})},a=()=>{t!==null&&(window.cancelAnimationFrame(t),t=null),n!==null&&(window.cancelAnimationFrame(n),n=null)},o=()=>{a(),i(),t=window.requestAnimationFrame(()=>{t=null,i(),n=window.requestAnimationFrame(()=>{n=null,i()})})};o();let s=new ResizeObserver(o);return s.observe(e),()=>{s.disconnect(),a()}},g=[],t[6]=h,t[7]=g):(h=t[6],g=t[7]),(0,a.useLayoutEffect)(h,g);let _;t[8]!==d.height||t[9]!==d.isClipping?(_=d.height===null?void 0:{height:d.height,overflow:d.isClipping?`hidden`:`visible`},t[8]=d.height,t[9]=d.isClipping,t[10]=_):_=t[10];let v;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(v=e=>{e.target===e.currentTarget&&e.propertyName===`height`&&f(l)},t[11]=v):v=t[11];let y;t[12]===n?y=t[13]:(y=(0,o.jsx)(`div`,{ref:r,children:n}),t[12]=n,t[13]=y);let b;return t[14]!==_||t[15]!==y?(b=(0,o.jsx)(`div`,{"data-slot":`animated-height`,className:`transition-[height] duration-200 ease-out motion-reduce:transition-none`,style:_,onTransitionEnd:v,children:y}),t[14]=_,t[15]=y,t[16]=b):b=t[16],b}function l(e){return e.isClipping?{...e,isClipping:!1}:e}function u(e){return e.isClipping?{...e,isClipping:!1}:e}export{c as t};