ryco-cli 0.1.9 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/dist/{AcpNativeLogging-CwXNgeCl.mjs → AcpNativeLogging-Ba9Nn9Re.mjs} +1 -1
  2. package/dist/{AcpNativeLogging-BBLrglnY.cjs → AcpNativeLogging-Be1KGJfF.cjs} +1 -1
  3. package/dist/{AzureDevOpsSourceControlProvider-lRTMr9X9.mjs → AzureDevOpsSourceControlProvider-CGlK6M0b.mjs} +2 -2
  4. package/dist/{AzureDevOpsSourceControlProvider-BMQxxk2n.cjs → AzureDevOpsSourceControlProvider-CVj-F-pW.cjs} +2 -2
  5. package/dist/{BitbucketSourceControlProvider-F1J_75c0.mjs → BitbucketSourceControlProvider-BV6iRDi7.mjs} +2 -2
  6. package/dist/{BitbucketSourceControlProvider-BXDk4GzL.cjs → BitbucketSourceControlProvider-CEZEd4PX.cjs} +2 -2
  7. package/dist/{ClaudeDriver-B_pvBuh5.cjs → ClaudeDriver-lBU7EyUX.cjs} +2 -2
  8. package/dist/{ClaudeDriver-BpYiEftb.mjs → ClaudeDriver-rooMNrJz.mjs} +2 -2
  9. package/dist/{CodexDriver-Bcju44ZM.cjs → CodexDriver-CZCIJSLV.cjs} +4 -4
  10. package/dist/{CodexDriver-6IRQy37T.mjs → CodexDriver-DBz2rPXb.mjs} +4 -4
  11. package/dist/{CodexTextGeneration-CCvcMT6Y.mjs → CodexTextGeneration-BeG7ymPC.mjs} +1 -1
  12. package/dist/{CodexTextGeneration-yaU53Kmz.cjs → CodexTextGeneration-BvIcyD1P.cjs} +1 -1
  13. package/dist/{CopilotDriver-CTxl0KmP.cjs → CopilotDriver-CX5zhEdZ.cjs} +3 -3
  14. package/dist/{CopilotDriver-BCe5V1Ll.mjs → CopilotDriver-D36vbGbn.mjs} +3 -3
  15. package/dist/{CursorDriver-D1Agqrbj.cjs → CursorDriver-CPBVeesr.cjs} +3 -3
  16. package/dist/{CursorDriver-C4V25d1y.mjs → CursorDriver-DWuuOSkJ.mjs} +3 -3
  17. package/dist/{ForgejoSourceControlProvider-C-NI9vaC.mjs → ForgejoSourceControlProvider-CeN7Snfr.mjs} +2 -2
  18. package/dist/{ForgejoSourceControlProvider-CV1lljGK.cjs → ForgejoSourceControlProvider-CzmmcAZO.cjs} +2 -2
  19. package/dist/{GitHubSourceControlProvider-B_7J1jOl.cjs → GitHubSourceControlProvider-DfFR9O2o.cjs} +2 -2
  20. package/dist/{GitHubSourceControlProvider-BeCMPF92.mjs → GitHubSourceControlProvider-Dmz1LJct.mjs} +2 -2
  21. package/dist/{GitLabSourceControlProvider-0BeWchVS.mjs → GitLabSourceControlProvider-C21lwphV.mjs} +2 -2
  22. package/dist/{GitLabSourceControlProvider-U0xcv577.cjs → GitLabSourceControlProvider-DGoelNmL.cjs} +2 -2
  23. package/dist/{GrokDriver-mkLP3IZl.cjs → GrokDriver-CIXj_4ry.cjs} +3 -3
  24. package/dist/{GrokDriver-DFw7DOdK.mjs → GrokDriver-qKX1a63G.mjs} +3 -3
  25. package/dist/{OpenCodeDriver-ChWHrFi7.mjs → OpenCodeDriver-CbdswhqU.mjs} +2 -2
  26. package/dist/{OpenCodeDriver-C_KFYA-P.cjs → OpenCodeDriver-DDEuwtXl.cjs} +2 -2
  27. package/dist/{SourceControlProviderDiscoveryCatalog-BTJDoEx1.mjs → SourceControlProviderDiscoveryCatalog-4_4yahsa.mjs} +1 -1
  28. package/dist/{SourceControlProviderDiscoveryCatalog-Bwu_JBJN.cjs → SourceControlProviderDiscoveryCatalog-DJWDCoup.cjs} +1 -1
  29. package/dist/bin.cjs +46 -20
  30. package/dist/bin.mjs +46 -20
  31. package/dist/client/assets/AccountSettings-BUoiS8x1.js +1 -0
  32. package/dist/client/assets/AiFocusSettings-Cz1Uqn7a.js +1 -0
  33. package/dist/client/assets/AnimatedHeight-BIsV_Z3J.js +1 -0
  34. package/dist/client/assets/AppearanceSettings-CYbSApl4.js +1 -0
  35. package/dist/client/assets/{BranchToolbar.logic-CvclFpSW.js → BranchToolbar.logic-LIanCEVr.js} +1 -1
  36. package/dist/client/assets/ChatRightPanel-CKEjpQ_x.js +27 -0
  37. package/dist/client/assets/ChatThreadRouteView-D50onHY2.js +1 -0
  38. package/dist/client/assets/CommandPaletteDialog-DdRKgZ8m.js +1 -0
  39. package/dist/client/assets/{CompositeItem-e0rusLTG.js → CompositeItem-F3NGn6aG.js} +1 -1
  40. package/dist/client/assets/CompositeRoot-CmJGfRtc.js +1 -0
  41. package/dist/client/assets/ConnectionsSettings--CbTzkTn.js +7 -0
  42. package/dist/client/assets/DiagnosticsSettings-C74u3ce5.js +2 -0
  43. package/dist/client/assets/{DialogHandle-DZVZpjWD.js → DialogHandle-C4uSr9wX.js} +1 -1
  44. package/dist/client/assets/DialogPopup-Dck8r8Hn.js +1 -0
  45. package/dist/client/assets/DialogRoot-BpIvUdm7.js +1 -0
  46. package/dist/client/assets/{DialogTitle-CtpwXIBL.js → DialogTitle-CCedPAjV.js} +1 -1
  47. package/dist/client/assets/{DialogTrigger-CdeFWE8i.js → DialogTrigger-CYJ7_YcV.js} +1 -1
  48. package/dist/client/assets/DialogViewport-D-CrTM-P.js +1 -0
  49. package/dist/client/assets/DraftChatThreadRouteView-RTmLGTl0.js +1 -0
  50. package/dist/client/assets/{ExternalIdentityWeb.logic-DsqwSlwL.js → ExternalIdentityWeb.logic-D64j70NH.js} +1 -1
  51. package/dist/client/assets/{GlassSurface-EZnNd1mF.js → GlassSurface-C3IIWMu9.js} +1 -1
  52. package/dist/client/assets/HostedConnectionControls-CKiC01ju.js +1 -0
  53. package/dist/client/assets/HostedHubRoot-BS3rAYTy.js +1 -0
  54. package/dist/client/assets/HostedNativeAuthorizationRoute-BFTDyh4N.js +1 -0
  55. package/dist/client/assets/HostedRelayTrustNotice-eEOPKsBg.js +1 -0
  56. package/dist/client/assets/Icons-CT3nd2MA.js +1 -0
  57. package/dist/client/assets/IntegrationsSettingsPanel-Cg4eRHm_.js +1 -0
  58. package/dist/client/assets/KeybindingsSettings-CYj67N2D.js +7 -0
  59. package/dist/client/assets/McpServersSettings-Bc61hRUY.js +6 -0
  60. package/dist/client/assets/MobileSheet-CkeG6_SP.js +1 -0
  61. package/dist/client/assets/NewWorktreeDialog-CTlFjKa4.js +4 -0
  62. package/dist/client/assets/NoActiveThreadState-Dw9aoU2J.js +1 -0
  63. package/dist/client/assets/NodeSecuritySettings-DMkkTgfg.js +1 -0
  64. package/dist/client/assets/OpinionatedPluginsSettings-CeoSmZ90.js +1 -0
  65. package/dist/client/assets/PhoneGetAppInterstitial-7ZxxVbUB.js +1 -0
  66. package/dist/client/assets/PhoneGetAppInterstitialBackdrop-B8vfJdZd.js +1 -0
  67. package/dist/client/assets/PhoneHome-DRRoCd_y.js +1 -0
  68. package/dist/client/assets/PhoneSettingsSurface-LNEaPHQC.js +1 -0
  69. package/dist/client/assets/ProjectFavicon-BIMdZxK6.js +1 -0
  70. package/dist/client/assets/ProviderModelPicker-jd6GjQkO.js +1 -0
  71. package/dist/client/assets/ProviderUpdateLaunchNotification.logic-BkoRegCn.js +1 -0
  72. package/dist/client/assets/ProvidersSettingsPanel-v2SvoEGx.js +1 -0
  73. package/dist/client/assets/RedactedSensitiveText-CxtaUiKH.js +1 -0
  74. package/dist/client/assets/RootAppShell-CFjrYjtn.js +6 -0
  75. package/dist/client/assets/RycoLetterMark-Bk0kvGJ_.js +1 -0
  76. package/dist/client/assets/SettingsDialog-CvGTsSV0.js +1 -0
  77. package/dist/client/assets/SettingsPanels-BmhZ8u4B.js +3 -0
  78. package/dist/client/assets/SettingsPanels.editor-B2x4U4rW.js +1 -0
  79. package/dist/client/assets/SourceControlSettings-DvPydmxX.js +1 -0
  80. package/dist/client/assets/StatisticsPage-Duk2cHVH.js +1 -0
  81. package/dist/client/assets/StatisticsPanel-D-uNJcdj.js +1 -0
  82. package/dist/client/assets/StatisticsSettingsLink-Cx43bOeo.js +1 -0
  83. package/dist/client/assets/ThreadStatusIndicators-D0xoATCw.js +0 -0
  84. package/dist/client/assets/{ThreadTerminalDrawer-Dju6roQA.js → ThreadTerminalDrawer-DjX8p7IH.js} +3 -3
  85. package/dist/client/assets/{ThreadWorkspacePanel-hfIocZRN.js → ThreadWorkspacePanel-DI0GXPBf.js} +18 -18
  86. package/dist/client/assets/{ToolbarRootContext-CgV898DN.js → ToolbarRootContext-BgqqXVly.js} +1 -1
  87. package/dist/client/assets/{WorkItemsTab-DYgsIthY.js → WorkItemsTab-ow45makA.js} +8 -8
  88. package/dist/client/assets/alert-LqMhbdE9.js +1 -0
  89. package/dist/client/assets/alert-dialog-DxoA6ky8.js +1 -0
  90. package/dist/client/assets/{authorization-CFcCWeGd.js → authorization-mIJKV2yp.js} +1 -1
  91. package/dist/client/assets/badge-CXw6fWrB.js +1 -0
  92. package/dist/client/assets/{branding-CG1VEma6.js → branding-C8SLy6Af.js} +1 -1
  93. package/dist/client/assets/button-BAbJxRzt.js +1 -0
  94. package/dist/client/assets/{capabilities-CK9Wa-Au.js → capabilities-BQuqC7jg.js} +1 -1
  95. package/dist/client/assets/{chatThreadActions-Ooky34bb.js → chatThreadActions-DQ8aOQ1g.js} +1 -1
  96. package/dist/client/assets/collapsible-dxy6kc2k.js +1 -0
  97. package/dist/client/assets/command-CGNKG_Oe.js +1 -0
  98. package/dist/client/assets/composerDraftStore-CdJJZe42.js +11 -0
  99. package/dist/client/assets/copy-UQjKGt7t.js +1 -0
  100. package/dist/client/assets/data-list-CYKBxN62.js +1 -0
  101. package/dist/client/assets/{desktopUpdateAtoms-C9VOpM6h.js → desktopUpdateAtoms-C82GmR67.js} +1 -1
  102. package/dist/client/assets/{desktopWorkspace-BOWgdyPs.js → desktopWorkspace-G5Z_JRbm.js} +1 -1
  103. package/dist/client/assets/{device-CLd1blIe.js → device-B56cBWWt.js} +12 -12
  104. package/dist/client/assets/dialog-DQsYchqu.js +1 -0
  105. package/dist/client/assets/draft-input-CkzOk8BY.js +1 -0
  106. package/dist/client/assets/{editorPreferences-C79SevBP.js → editorPreferences-CTDEj79K.js} +1 -1
  107. package/dist/client/assets/empty-DwzqNgCP.js +1 -0
  108. package/dist/client/assets/{env-CBdFekj3.js → env-B4arEvJg.js} +1 -1
  109. package/dist/client/assets/{getPseudoElementBounds-CWoLtsYr.js → getPseudoElementBounds-X62ElHN8.js} +1 -1
  110. package/dist/client/assets/group-D9ER9giz.js +1 -0
  111. package/dist/client/assets/{index-Bbc24tew.js → index-Bbz4fkK_.js} +2 -2
  112. package/dist/client/assets/input-CHEwW3oH.js +1 -0
  113. package/dist/client/assets/kbd-DCGQZk18.js +1 -0
  114. package/dist/client/assets/{keybindings-n2U57Td0.js → keybindings-CWJ7E9ZI.js} +1 -1
  115. package/dist/client/assets/label-CVFHsLFO.js +1 -0
  116. package/dist/client/assets/{lib-DoLGGVrW.js → lib-qiiNMGgU.js} +1 -1
  117. package/dist/client/assets/{logging-FtLrPmK_.js → logging-M8H3z7rQ.js} +1 -1
  118. package/dist/client/assets/main-DaYHZt-J.css +2 -0
  119. package/dist/client/assets/{main-C2i8ecSj.js → main-Dwu2cT6v.js} +3 -3
  120. package/dist/client/assets/menu-Dvxh8sD5.js +1 -0
  121. package/dist/client/assets/popover-CuH9Yrj3.js +1 -0
  122. package/dist/client/assets/{primary-0ymoUGkq.js → primary-OskAInOO.js} +1 -1
  123. package/dist/client/assets/{projectPaths-CHDYD_Gc.js → projectPaths-lDhAE9o_.js} +1 -1
  124. package/dist/client/assets/{providerDriverMeta-lsEf84Mz.js → providerDriverMeta-I0TSo-QI.js} +1 -1
  125. package/dist/client/assets/providerIconUtils-DnSYUN9l.js +1 -0
  126. package/dist/client/assets/providerInstances-BJcfB_9E.js +1 -0
  127. package/dist/client/assets/providerModels-BJcfB_9E.js +1 -0
  128. package/dist/client/assets/qr-code-Bddq6K7S.js +1 -0
  129. package/dist/client/assets/radio-group-CBZFr4C8.js +2 -0
  130. package/dist/client/assets/resolveAriaLabelledBy-CD_ugzhJ.js +1 -0
  131. package/dist/client/assets/{rightPanelRouteSearch-DkhE1otz.js → rightPanelRouteSearch-DB5gQGHK.js} +1 -1
  132. package/dist/client/assets/runtime-DKwoXpJv.js +1 -0
  133. package/dist/client/assets/scroll-area-Drsa8bNB.js +1 -0
  134. package/dist/client/assets/scrollEdges-B-cqxY4l.js +1 -0
  135. package/dist/client/assets/select-BYbVr-yg.js +1 -0
  136. package/dist/client/assets/separator-CdS5bi4Z.js +1 -0
  137. package/dist/client/assets/{session-logic-B0shVXpN.js → session-logic-DElAta-Z.js} +1 -1
  138. package/dist/client/assets/settingsDialogStore-ygYoScKe.js +1 -0
  139. package/dist/client/assets/settingsLayout-D8glO7f1.js +1 -0
  140. package/dist/client/assets/settingsSections.logic-F8RXVmAq.js +1 -0
  141. package/dist/client/assets/sheet-BO78gIKZ.js +1 -0
  142. package/dist/client/assets/sidebar-Dm6l2GA6.js +1 -0
  143. package/dist/client/assets/sidebarProjectFolders-Cs13ZUN8.js +4 -0
  144. package/dist/client/assets/{sidebarStatusText-DjLAEM1H.js → sidebarStatusText-D0HT0fek.js} +1 -1
  145. package/dist/client/assets/skeleton-CvQSeJbw.js +1 -0
  146. package/dist/client/assets/spinner-ClF0jOcX.js +1 -0
  147. package/dist/client/assets/src-Vf4LVnMX.js +14 -0
  148. package/dist/client/assets/storeSelectors-Cq_JKyiF.js +1 -0
  149. package/dist/client/assets/switch-BTGo9Yip.js +1 -0
  150. package/dist/client/assets/{terminal-links-DERnXf-G.js → terminal-links-CZ3c9AbA.js} +1 -1
  151. package/dist/client/assets/textarea-RFPODxWW.js +1 -0
  152. package/dist/client/assets/{threadPriorityRefreshRuntime-D2XRdn_X.js → threadPriorityRefreshRuntime-DJF5drVD.js} +1 -1
  153. package/dist/client/assets/toast-CcSCAm4B.js +1 -0
  154. package/dist/client/assets/toggle-I6h33Cu5.js +1 -0
  155. package/dist/client/assets/toggle-group-mLIkiJtU.js +1 -0
  156. package/dist/client/assets/tooltip-C8sAONBj.js +1 -0
  157. package/dist/client/assets/types-Cq_JKyiF.js +1 -0
  158. package/dist/client/assets/{uiStateStore-hgy2ilHo.js → uiStateStore-B6pjzSjj.js} +1 -1
  159. package/dist/client/assets/{useAtlassian-1BSXt3BO.js → useAtlassian-Bx2ua3JV.js} +0 -0
  160. package/dist/client/assets/{useButton-_xmxdcVX.js → useButton-D__1LqCF.js} +1 -1
  161. package/dist/client/assets/useCompositeListItem-Cmr_nuuG.js +1 -0
  162. package/dist/client/assets/useCopyToClipboard-BTpWxumf.js +1 -0
  163. package/dist/client/assets/{useDebouncedValue-DU7gLY9w.js → useDebouncedValue-DHjoudTq.js} +1 -1
  164. package/dist/client/assets/{useFloatingRootContext-CSPbIu1q.js → useFloatingRootContext-D5EZmrCa.js} +1 -1
  165. package/dist/client/assets/useHandleNewThread-DHO0PWGZ.js +1 -0
  166. package/dist/client/assets/{useLabelableId-COmfNFnd.js → useLabelableId-DnQJ7amm.js} +1 -1
  167. package/dist/client/assets/useLocation-CDeYzWW6.js +1 -0
  168. package/dist/client/assets/{useOpenInteractionType-JaQBnIly.js → useOpenInteractionType-CjtpACKR.js} +1 -1
  169. package/dist/client/assets/usePhoneThreadActions-OTf7yIbN.js +1 -0
  170. package/dist/client/assets/usePopupViewport-BuhsNdVy.js +1 -0
  171. package/dist/client/assets/useScrollLock-D3tMGsRk.js +1 -0
  172. package/dist/client/assets/{useStatistics-B2NNfOqV.js → useStatistics-DEtKeVPP.js} +14 -14
  173. package/dist/client/assets/{useSwipeDismiss-B8Fo31QE.js → useSwipeDismiss-CbgDJvw1.js} +1 -1
  174. package/dist/client/assets/{useThreadActions-B9kmG6FU.js → useThreadActions-DLxhOMkz.js} +1 -1
  175. package/dist/client/assets/{useTriggerFocusGuards-O2ZE3JtI.js → useTriggerFocusGuards-CrugmkhX.js} +1 -1
  176. package/dist/client/assets/{useValueChanged-Dj0YXujm.js → useValueChanged-MQtIzPIU.js} +1 -1
  177. package/dist/client/assets/utils-BofFIn5Y.js +1 -0
  178. package/dist/client/index.html +1 -1
  179. package/dist/{collectUint8StreamText-Dn-L1KcR.cjs → collectUint8StreamText-Bb52hlpd.cjs} +36 -6
  180. package/dist/{collectUint8StreamText-DNY4x71l.mjs → collectUint8StreamText-EDg4F0TU.mjs} +31 -7
  181. package/dist/{makeManagedServerProvider-D3T5X-B4.mjs → makeManagedServerProvider-Cf8bNWwc.mjs} +1 -1
  182. package/dist/{makeManagedServerProvider-DNnEIuhW.cjs → makeManagedServerProvider-itynW7xv.cjs} +1 -1
  183. package/package.json +1 -1
  184. package/dist/client/assets/AccountSettings-ckhtafp7.js +0 -1
  185. package/dist/client/assets/AiFocusSettings-DGHWPxgZ.js +0 -1
  186. package/dist/client/assets/AnimatedHeight-BwF3D1vB.js +0 -1
  187. package/dist/client/assets/AppearanceSettings-CDvljGDS.js +0 -1
  188. package/dist/client/assets/ChatRightPanel-CL4qBTZb.js +0 -27
  189. package/dist/client/assets/ChatThreadRouteView-BuOmyy7a.js +0 -1
  190. package/dist/client/assets/CommandPaletteDialog-lCv8qmpm.js +0 -1
  191. package/dist/client/assets/CompositeRoot-vnNIb6NL.js +0 -1
  192. package/dist/client/assets/ConnectionsSettings-BJJrdASq.js +0 -7
  193. package/dist/client/assets/DiagnosticsSettings-CxT6modq.js +0 -2
  194. package/dist/client/assets/DialogPopup-BIJxt62s.js +0 -1
  195. package/dist/client/assets/DialogRoot-8xRqqTn8.js +0 -1
  196. package/dist/client/assets/DialogViewport-C2oKvkDR.js +0 -1
  197. package/dist/client/assets/DraftChatThreadRouteView-FriWZLgB.js +0 -1
  198. package/dist/client/assets/HostedConnectionControls-BYS30u9D.js +0 -1
  199. package/dist/client/assets/HostedHubRoot-Bi0LEQCK.js +0 -1
  200. package/dist/client/assets/HostedNativeAuthorizationRoute-B-F2I7S_.js +0 -1
  201. package/dist/client/assets/HostedRelayTrustNotice-CB0O5OAN.js +0 -1
  202. package/dist/client/assets/Icons-Cme5LL0k.js +0 -1
  203. package/dist/client/assets/IntegrationsSettingsPanel-CS9vrmPw.js +0 -1
  204. package/dist/client/assets/KeybindingsSettings-CQi3dbgG.js +0 -7
  205. package/dist/client/assets/McpServersSettings-BMV56xhW.js +0 -6
  206. package/dist/client/assets/MobileSheet-C8OrQzw0.js +0 -1
  207. package/dist/client/assets/NewWorktreeDialog-DnxmXlh2.js +0 -4
  208. package/dist/client/assets/NoActiveThreadState-BWs9JspL.js +0 -1
  209. package/dist/client/assets/NodeSecuritySettings-iTvQFged.js +0 -1
  210. package/dist/client/assets/OpinionatedPluginsSettings-BcGJ1f7b.js +0 -1
  211. package/dist/client/assets/PhoneGetAppInterstitial-BJGf9FwA.js +0 -1
  212. package/dist/client/assets/PhoneGetAppInterstitialBackdrop-KgY3ydJF.js +0 -1
  213. package/dist/client/assets/PhoneHome-kBrFqF5K.js +0 -1
  214. package/dist/client/assets/PhoneSettingsSurface-CBI6Gl8b.js +0 -1
  215. package/dist/client/assets/ProjectFavicon-D0HVbYDF.js +0 -1
  216. package/dist/client/assets/ProviderModelPicker-DZTCKskK.js +0 -1
  217. package/dist/client/assets/ProviderUpdateLaunchNotification.logic-CtfZzmYI.js +0 -1
  218. package/dist/client/assets/ProvidersSettingsPanel-DAz8hMXw.js +0 -1
  219. package/dist/client/assets/RedactedSensitiveText-CRGSSHz3.js +0 -1
  220. package/dist/client/assets/RootAppShell-BWtqIOLh.js +0 -6
  221. package/dist/client/assets/RycoLetterMark-E82lj57c.js +0 -1
  222. package/dist/client/assets/SettingsDialog-RrFirXQp.js +0 -1
  223. package/dist/client/assets/SettingsPanels-bLK5JAV2.js +0 -3
  224. package/dist/client/assets/SettingsPanels.editor-DTAK4nlM.js +0 -1
  225. package/dist/client/assets/SourceControlSettings-CpnAAcyj.js +0 -1
  226. package/dist/client/assets/StatisticsPage-DwU3oJRO.js +0 -1
  227. package/dist/client/assets/StatisticsPanel-8OSQWA79.js +0 -1
  228. package/dist/client/assets/StatisticsSettingsLink-Bb86VtRL.js +0 -1
  229. package/dist/client/assets/ThreadStatusIndicators-wgiSGtn6.js +0 -0
  230. package/dist/client/assets/alert-DFo8_l6D.js +0 -1
  231. package/dist/client/assets/alert-dialog-Cmodiuqg.js +0 -1
  232. package/dist/client/assets/badge-BbJiUmhG.js +0 -1
  233. package/dist/client/assets/button-BT6cGe5S.js +0 -1
  234. package/dist/client/assets/collapsible-BIEfHdzc.js +0 -1
  235. package/dist/client/assets/command-BjXuIvYa.js +0 -1
  236. package/dist/client/assets/composerDraftStore-_Xy-iY4b.js +0 -11
  237. package/dist/client/assets/data-list-iVYHRfWS.js +0 -1
  238. package/dist/client/assets/dialog-BUIS3TXH.js +0 -1
  239. package/dist/client/assets/draft-input-CUkU2EAu.js +0 -1
  240. package/dist/client/assets/empty-BNn5X77p.js +0 -1
  241. package/dist/client/assets/group-a6GUMeTh.js +0 -1
  242. package/dist/client/assets/input-zjUwoDs3.js +0 -1
  243. package/dist/client/assets/kbd-BGOWI5KX.js +0 -1
  244. package/dist/client/assets/label-DWGvDLsD.js +0 -1
  245. package/dist/client/assets/main-an0sD0U2.css +0 -2
  246. package/dist/client/assets/menu-CwPZHq2g.js +0 -1
  247. package/dist/client/assets/popover-j6ZF-s94.js +0 -1
  248. package/dist/client/assets/providerIconUtils-_WuNo2Ek.js +0 -1
  249. package/dist/client/assets/providerInstances-DEQekDE8.js +0 -1
  250. package/dist/client/assets/providerModels-DEQekDE8.js +0 -1
  251. package/dist/client/assets/qr-code-DbscZ6Qz.js +0 -1
  252. package/dist/client/assets/radio-group-BTtFIcDI.js +0 -2
  253. package/dist/client/assets/resolveAriaLabelledBy-CxOsaNI8.js +0 -1
  254. package/dist/client/assets/runtime-BkRtSwRY.js +0 -1
  255. package/dist/client/assets/scroll-area-B-bu3v0j.js +0 -1
  256. package/dist/client/assets/scrollEdges-CDEU4fOg.js +0 -1
  257. package/dist/client/assets/select-rPdFVPfm.js +0 -1
  258. package/dist/client/assets/separator-CaVw81t6.js +0 -1
  259. package/dist/client/assets/settingsDialogStore-CPtQPrek.js +0 -1
  260. package/dist/client/assets/settingsLayout-B8os-EWr.js +0 -1
  261. package/dist/client/assets/settingsSections.logic-Be8uaymC.js +0 -1
  262. package/dist/client/assets/sheet-DQBndeJT.js +0 -1
  263. package/dist/client/assets/sidebar-H-CSxQVD.js +0 -1
  264. package/dist/client/assets/sidebarProjectFolders-CsZlmaJg.js +0 -4
  265. package/dist/client/assets/skeleton-CCuGgPK1.js +0 -1
  266. package/dist/client/assets/spinner-CgrOdIjl.js +0 -1
  267. package/dist/client/assets/src-b7-hpIff.js +0 -14
  268. package/dist/client/assets/storeSelectors-BLHJVLCP.js +0 -1
  269. package/dist/client/assets/switch-cMx5Wv_R.js +0 -1
  270. package/dist/client/assets/textarea-DIqqrD8A.js +0 -1
  271. package/dist/client/assets/toast-DonYDy-6.js +0 -1
  272. package/dist/client/assets/toggle-BIs83JSj.js +0 -1
  273. package/dist/client/assets/toggle-group-0LgplGMc.js +0 -1
  274. package/dist/client/assets/tooltip-BaJgdXlL.js +0 -1
  275. package/dist/client/assets/types-BLHJVLCP.js +0 -1
  276. package/dist/client/assets/useCompositeListItem-dLIU4XjY.js +0 -1
  277. package/dist/client/assets/useCopyToClipboard-qG2nhvjQ.js +0 -1
  278. package/dist/client/assets/useHandleNewThread-COAg-4eT.js +0 -1
  279. package/dist/client/assets/useLocation-DsqdpYA5.js +0 -1
  280. package/dist/client/assets/usePhoneThreadActions-RjcSVspy.js +0 -1
  281. package/dist/client/assets/usePopupViewport-wXfO6SZE.js +0 -1
  282. package/dist/client/assets/useScrollLock-Dr_P7FLZ.js +0 -1
  283. package/dist/client/assets/utils-c6dglOTK.js +0 -1
package/dist/bin.cjs CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
4
  const require_rolldown_runtime = require("./rolldown-runtime-LGfotAqq.cjs");
5
- const require_collectUint8StreamText = require("./collectUint8StreamText-Dn-L1KcR.cjs");
5
+ const require_collectUint8StreamText = require("./collectUint8StreamText-Bb52hlpd.cjs");
6
6
  const require_Metrics = require("./Metrics-DIjMQ5pa.cjs");
7
- const require_SourceControlProviderDiscoveryCatalog = require("./SourceControlProviderDiscoveryCatalog-Bwu_JBJN.cjs");
7
+ const require_SourceControlProviderDiscoveryCatalog = require("./SourceControlProviderDiscoveryCatalog-DJWDCoup.cjs");
8
8
  const require_sourceControl = require("./sourceControl-B0D1Op29.cjs");
9
9
  let _effect_platform_node_NodeRuntime = require("@effect/platform-node/NodeRuntime");
10
10
  _effect_platform_node_NodeRuntime = require_rolldown_runtime.__toESM(_effect_platform_node_NodeRuntime, 1);
@@ -12697,26 +12697,26 @@ const make$12 = effect.Effect.fn("makeSourceControlProviderRegistry")(function*
12697
12697
  const azureDevOpsCli = yield* AzureDevOpsCli;
12698
12698
  const fileSystem = yield* effect.FileSystem.FileSystem;
12699
12699
  const github = yield* makeLazyProvider("github", effect.Effect.tryPromise({
12700
- try: () => Promise.resolve().then(() => require("./GitHubSourceControlProvider-B_7J1jOl.cjs")),
12700
+ try: () => Promise.resolve().then(() => require("./GitHubSourceControlProvider-DfFR9O2o.cjs")),
12701
12701
  catch: (cause) => providerLoadError("github", cause)
12702
12702
  }).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(GitHubCli, githubCli), effect.Effect.provideService(effect.FileSystem.FileSystem, fileSystem)));
12703
12703
  const gitlab = yield* makeLazyProvider("gitlab", effect.Effect.tryPromise({
12704
- try: () => Promise.resolve().then(() => require("./GitLabSourceControlProvider-U0xcv577.cjs")),
12704
+ try: () => Promise.resolve().then(() => require("./GitLabSourceControlProvider-DGoelNmL.cjs")),
12705
12705
  catch: (cause) => providerLoadError("gitlab", cause)
12706
12706
  }).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(GitLabCli, gitlabCli)));
12707
12707
  const bitbucket = yield* makeLazyProvider("bitbucket", effect.Effect.tryPromise({
12708
- try: () => Promise.resolve().then(() => require("./BitbucketSourceControlProvider-BXDk4GzL.cjs")),
12708
+ try: () => Promise.resolve().then(() => require("./BitbucketSourceControlProvider-CEZEd4PX.cjs")),
12709
12709
  catch: (cause) => providerLoadError("bitbucket", cause)
12710
12710
  }).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(BitbucketApi, bitbucketApi)), {
12711
12711
  searchRepositories: true,
12712
12712
  cloneAuthentication: true
12713
12713
  });
12714
12714
  const forgejo = yield* makeLazyProvider("forgejo", effect.Effect.tryPromise({
12715
- try: () => Promise.resolve().then(() => require("./ForgejoSourceControlProvider-CV1lljGK.cjs")),
12715
+ try: () => Promise.resolve().then(() => require("./ForgejoSourceControlProvider-CzmmcAZO.cjs")),
12716
12716
  catch: (cause) => providerLoadError("forgejo", cause)
12717
12717
  }).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(ForgejoApi, forgejoApi)));
12718
12718
  const azureDevOps = yield* makeLazyProvider("azure-devops", effect.Effect.tryPromise({
12719
- try: () => Promise.resolve().then(() => require("./AzureDevOpsSourceControlProvider-BMQxxk2n.cjs")),
12719
+ try: () => Promise.resolve().then(() => require("./AzureDevOpsSourceControlProvider-CVj-F-pW.cjs")),
12720
12720
  catch: (cause) => providerLoadError("azure-devops", cause)
12721
12721
  }).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(AzureDevOpsCli, azureDevOpsCli)));
12722
12722
  const bitbucketDiscovery = require_SourceControlProviderDiscoveryCatalog.makeBitbucketDiscovery(bitbucketApi);
@@ -32966,7 +32966,7 @@ const BUILT_IN_DRIVERS = [
32966
32966
  configSchema: require_collectUint8StreamText.CodexSettings,
32967
32967
  defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.CodexSettings)({}),
32968
32968
  create: (input) => effect.Effect.tryPromise({
32969
- try: () => Promise.resolve().then(() => require("./CodexDriver-Bcju44ZM.cjs")),
32969
+ try: () => Promise.resolve().then(() => require("./CodexDriver-CZCIJSLV.cjs")),
32970
32970
  catch: (cause) => driverImportError(codexDriverKind, input, cause)
32971
32971
  }).pipe(effect.Effect.flatMap(({ CodexDriver }) => CodexDriver.create(input)))
32972
32972
  },
@@ -32980,7 +32980,7 @@ const BUILT_IN_DRIVERS = [
32980
32980
  configSchema: require_collectUint8StreamText.ClaudeSettings,
32981
32981
  defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.ClaudeSettings)({}),
32982
32982
  create: (input) => effect.Effect.tryPromise({
32983
- try: () => Promise.resolve().then(() => require("./ClaudeDriver-B_pvBuh5.cjs")),
32983
+ try: () => Promise.resolve().then(() => require("./ClaudeDriver-lBU7EyUX.cjs")),
32984
32984
  catch: (cause) => driverImportError(claudeDriverKind, input, cause)
32985
32985
  }).pipe(effect.Effect.flatMap(({ ClaudeDriver }) => ClaudeDriver.create(input)))
32986
32986
  },
@@ -32994,7 +32994,7 @@ const BUILT_IN_DRIVERS = [
32994
32994
  configSchema: require_collectUint8StreamText.CopilotSettings,
32995
32995
  defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.CopilotSettings)({}),
32996
32996
  create: (input) => effect.Effect.tryPromise({
32997
- try: () => Promise.resolve().then(() => require("./CopilotDriver-CTxl0KmP.cjs")),
32997
+ try: () => Promise.resolve().then(() => require("./CopilotDriver-CX5zhEdZ.cjs")),
32998
32998
  catch: (cause) => driverImportError(copilotDriverKind, input, cause)
32999
32999
  }).pipe(effect.Effect.flatMap(({ CopilotDriver }) => CopilotDriver.create(input)))
33000
33000
  },
@@ -33008,7 +33008,7 @@ const BUILT_IN_DRIVERS = [
33008
33008
  configSchema: require_collectUint8StreamText.CursorSettings,
33009
33009
  defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.CursorSettings)({}),
33010
33010
  create: (input) => effect.Effect.tryPromise({
33011
- try: () => Promise.resolve().then(() => require("./CursorDriver-D1Agqrbj.cjs")),
33011
+ try: () => Promise.resolve().then(() => require("./CursorDriver-CPBVeesr.cjs")),
33012
33012
  catch: (cause) => driverImportError(cursorDriverKind, input, cause)
33013
33013
  }).pipe(effect.Effect.flatMap(({ CursorDriver }) => CursorDriver.create(input)))
33014
33014
  },
@@ -33022,7 +33022,7 @@ const BUILT_IN_DRIVERS = [
33022
33022
  configSchema: require_collectUint8StreamText.GrokSettings,
33023
33023
  defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.GrokSettings)({}),
33024
33024
  create: (input) => effect.Effect.tryPromise({
33025
- try: () => Promise.resolve().then(() => require("./GrokDriver-mkLP3IZl.cjs")),
33025
+ try: () => Promise.resolve().then(() => require("./GrokDriver-CIXj_4ry.cjs")),
33026
33026
  catch: (cause) => driverImportError(grokDriverKind, input, cause)
33027
33027
  }).pipe(effect.Effect.flatMap(({ GrokDriver }) => GrokDriver.create(input)))
33028
33028
  },
@@ -33036,7 +33036,7 @@ const BUILT_IN_DRIVERS = [
33036
33036
  configSchema: require_collectUint8StreamText.OpenCodeSettings,
33037
33037
  defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.OpenCodeSettings)({}),
33038
33038
  create: (input) => effect.Effect.tryPromise({
33039
- try: () => Promise.resolve().then(() => require("./OpenCodeDriver-C_KFYA-P.cjs")),
33039
+ try: () => Promise.resolve().then(() => require("./OpenCodeDriver-DDEuwtXl.cjs")),
33040
33040
  catch: (cause) => driverImportError(openCodeDriverKind, input, cause)
33041
33041
  }).pipe(effect.Effect.flatMap(({ OpenCodeDriver }) => OpenCodeDriver.create(input)))
33042
33042
  }
@@ -33751,7 +33751,7 @@ const scopedSafeTeardown = (label) => (effect$28) => effect.Effect.gen(function*
33751
33751
  });
33752
33752
  //#endregion
33753
33753
  //#region package.json
33754
- var version$1 = "0.1.9";
33754
+ var version$1 = "0.1.11";
33755
33755
  //#endregion
33756
33756
  //#region src/provider/Layers/CodexProvider.ts
33757
33757
  const PROVIDER_PROBE_TIMEOUT_MS = 8e3;
@@ -66411,7 +66411,10 @@ function makeNodeNativeClaimService(options) {
66411
66411
  if (current.activeNode !== null) {
66412
66412
  const existing = current.activeNode;
66413
66413
  if (existing.hubOrigin !== active.hubOrigin || existing.nodeId !== active.nodeId || existing.activeKeyId !== active.activeKeyId || existing.activeKeySecretName !== active.activeKeySecretName) return claimError("native_node_claim_conflict");
66414
- return current;
66414
+ return {
66415
+ ...current,
66416
+ revision: current.revision + 1
66417
+ };
66415
66418
  }
66416
66419
  if (nativePending(current, active.hubOrigin).keySecretName !== active.activeKeySecretName) return claimError("native_node_claim_conflict");
66417
66420
  return {
@@ -69710,6 +69713,12 @@ async function makeHubIdentityRuntime(options) {
69710
69713
  return {
69711
69714
  backend: secretStore.backend,
69712
69715
  readState: () => bounded("identity_unavailable", () => stateStore.readOrCreate()),
69716
+ readActiveFingerprint: () => bounded("identity_unavailable", async () => {
69717
+ const state = await stateStore.readOrCreate();
69718
+ if (state.pendingTeardown !== null || state.activeNode === null) return null;
69719
+ const descriptor = await signingIdentity.getPublicDescriptor(state.activeNode.activeKeySecretName);
69720
+ return require_Metrics.formatNodePublicKeyFingerprint(descriptor.fingerprint);
69721
+ }),
69713
69722
  leave: () => bounded("identity_unavailable", async () => {
69714
69723
  const state = await stateStore.readOrCreate();
69715
69724
  if (state.pendingTeardown !== null) {
@@ -71184,7 +71193,13 @@ var HubConnector = class {
71184
71193
  try {
71185
71194
  const state = await this.#identity.readState();
71186
71195
  if (state.pendingTeardown !== null) return { enrolled: "none" };
71187
- if (state.activeNode !== null) return { enrolled: "active" };
71196
+ if (state.activeNode !== null) {
71197
+ const fingerprint = await this.#identity.readActiveFingerprint?.();
71198
+ return {
71199
+ enrolled: "active",
71200
+ ...fingerprint === null || fingerprint === void 0 ? {} : { fingerprint }
71201
+ };
71202
+ }
71188
71203
  if (state.pendingEnrollment !== null) return { enrolled: "pending" };
71189
71204
  return { enrolled: "none" };
71190
71205
  } catch {
@@ -74774,7 +74789,7 @@ const desktopNativeNodeClaimCommitRouteLayer = effect_unstable_http.HttpRouter.a
74774
74789
  }),
74775
74790
  catch: (cause) => new NativeClaimOperationFailed({ cause })
74776
74791
  });
74777
- yield* effect.Effect.promise(() => connector.resume());
74792
+ yield* effect.Effect.promise(() => connector.resume().catch(() => void 0));
74778
74793
  return effect_unstable_http.HttpServerResponse.jsonUnsafe({
74779
74794
  protocolVersion: 1,
74780
74795
  status: "active",
@@ -105520,6 +105535,10 @@ const requestHubStatus = (origin, bearerToken) => runLiveServerRequest(effect_un
105520
105535
  "2xx": (response) => effect_unstable_http.HttpClientResponse.schemaBodyJson(require_collectUint8StreamText.HubConnectorStatus)(response),
105521
105536
  orElse: (response) => readErrorMessageFromResponse(response).pipe(effect.Effect.flatMap((message) => effect.Effect.fail(new Error(message))))
105522
105537
  }), HUB_CLI_LIVE_SERVER_TIMEOUT);
105538
+ const requestHubIdentitySummary = (origin, bearerToken) => runLiveServerRequest(effect_unstable_http.HttpClientRequest.get(`${origin}/api/hub/identity`).pipe(effect_unstable_http.HttpClientRequest.acceptJson, effect_unstable_http.HttpClientRequest.bearerToken(bearerToken)), effect_unstable_http.HttpClientResponse.matchStatus({
105539
+ "2xx": (response) => effect_unstable_http.HttpClientResponse.schemaBodyJson(require_collectUint8StreamText.HubIdentitySummary)(response),
105540
+ orElse: (response) => readErrorMessageFromResponse(response).pipe(effect.Effect.flatMap((message) => effect.Effect.fail(new Error(message))))
105541
+ }), HUB_CLI_LIVE_SERVER_TIMEOUT);
105523
105542
  const requestHubEnrollment = (origin, bearerToken) => runLiveServerRequest(effect_unstable_http.HttpClientRequest.post(`${origin}/api/hub/enrollment`).pipe(effect_unstable_http.HttpClientRequest.acceptJson, effect_unstable_http.HttpClientRequest.bearerToken(bearerToken)), effect_unstable_http.HttpClientResponse.matchStatus({
105524
105543
  "2xx": (response) => effect_unstable_http.HttpClientResponse.schemaBodyJson(require_collectUint8StreamText.HubEnrollmentStartResult)(response),
105525
105544
  orElse: (response) => readErrorMessageFromResponse(response).pipe(effect.Effect.flatMap((message) => effect.Effect.fail(new Error(message))))
@@ -105537,10 +105556,14 @@ const requestHubResume = (origin, bearerToken) => runLiveServerRequest(effect_un
105537
105556
  "2xx": (response) => effect_unstable_http.HttpClientResponse.schemaBodyJson(require_collectUint8StreamText.HubConnectorStatus)(response),
105538
105557
  orElse: (response) => readErrorMessageFromResponse(response).pipe(effect.Effect.flatMap((message) => effect.Effect.fail(new Error(message))))
105539
105558
  }), HUB_CLI_LIVE_SERVER_TIMEOUT);
105540
- const formatHubStatus = (status, json) => {
105541
- if (json) return emitJson(status);
105559
+ const formatHubStatus = (status, json, identity) => {
105560
+ if (json) return emitJson({
105561
+ ...status,
105562
+ ...identity?.fingerprint === void 0 ? {} : { fingerprint: identity.fingerprint }
105563
+ });
105542
105564
  return [
105543
105565
  `Hub connector: ${status.state}`,
105566
+ identity?.fingerprint === void 0 ? void 0 : `Fingerprint: ${identity.fingerprint}`,
105544
105567
  status.failure === void 0 ? void 0 : `Failure: ${status.failure}`,
105545
105568
  status.nextRetryAt === void 0 ? void 0 : `Next retry: ${status.nextRetryAt}`,
105546
105569
  status.state === "online" ? `Active channels: ${status.activeChannels}` : void 0,
@@ -105690,7 +105713,10 @@ const authCommand = effect_unstable_cli.Command.make("auth").pipe(effect_unstabl
105690
105713
  const hubStatusCommand = effect_unstable_cli.Command.make("status", {
105691
105714
  ...authLocationFlags,
105692
105715
  json: jsonFlag
105693
- }).pipe(effect_unstable_cli.Command.withDescription("Show bounded local Hub connector status."), effect_unstable_cli.Command.withHandler((flags) => runHubCommand(flags, (origin, token) => requestHubStatus(origin, token), { quietLogs: flags.json }).pipe(effect.Effect.flatMap((status) => effect.Console.log(formatHubStatus(status, flags.json))))));
105716
+ }).pipe(effect_unstable_cli.Command.withDescription("Show bounded local Hub connector status."), effect_unstable_cli.Command.withHandler((flags) => runHubCommand(flags, (origin, token) => effect.Effect.all({
105717
+ status: requestHubStatus(origin, token),
105718
+ identity: requestHubIdentitySummary(origin, token)
105719
+ }), { quietLogs: flags.json }).pipe(effect.Effect.flatMap(({ status, identity }) => effect.Console.log(formatHubStatus(status, flags.json, identity))))));
105694
105720
  const hubEnrollCommand = effect_unstable_cli.Command.make("enroll", {
105695
105721
  ...authLocationFlags,
105696
105722
  json: jsonFlag
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_SIGN_PATH, $i as ThreadTurnDiffCompletedPayload$1, $n as ClaudeSettings, $r as OrchestrationEventType, $t as AgentControlMcpRecentActivityResult, A as AGENT_CONTROL_MCP_AUTOMATION_LIST_PROMPT_MAX_CHARS, Aa as ThreadPriorityBatchId, An as AtlassianConnectionStatus, Ao as AtlassianConnectionId, At as AgentControlMcpProposeAutomationUpdateInput, B as AGENT_CONTROL_TERMINAL_PROPOSAL_STATUSES, Ba as defaultInstanceIdForDriver, Bi as ThreadGoalUpdatedPayload$1, Bn as McpProviderCapabilities, Bo as NonNegativeInt, Br as DEFAULT_PROJECT_METADATA_DIR, Bt as AgentControlMcpProposeProjectCreateInput, C as AGENT_CONTROL_DEVICE_ACTION_KINDS, Ci as ProjectCreatedPayload$1, Cn as DeviceUdid, Co as AuthBootstrapInput, Cr as ProviderSteerTurnInput, Ct as AgentControlMcpListThreadsInput, D as AGENT_CONTROL_EXTERNAL_MCP_TOOL_NAMES, Di as ProjectScript, Dn as AtlassianCapability, Do as AuthRevokePairingLinkInput, Dr as CONTEXT_HANDOFF_ACTIVITY_KIND, Dt as AgentControlMcpOrchestrationEventsResult, E as AGENT_CONTROL_EXTERNAL_MCP_TOOLS, Ea as VcsProcessExitError, Ei as ProjectMetadataDir, En as ThreadPriorityRpcError, Eo as AuthRevokeClientSessionInput, Er as AgentTokenMode, Et as AgentControlMcpOperationalReadInput, F as AGENT_CONTROL_MCP_TOOLS, Fa as DEFAULT_GIT_TEXT_GENERATION_OPTIONS_BY_PROVIDER, Fi as ThreadArchivedPayload$1, Fn as McpInventoryResource, Fo as ContextHandoffId, Fr as ContextHandoffDigest, Ft as AgentControlMcpProposeDeviceInstallInput, G as AgentControlAutomationDefinition, Ga as TerminalNotRunningError, Gi as ThreadProposedPlanUpsertedPayload$1, Gn as McpServerWritableConfig, Gr as OrchestrationAggregateKind, Gt as AgentControlMcpReadAutomationInput, H as AgentControlActionKind, Hi as ThreadMessageSentPayload, Hn as McpServer, Ho as ProjectId, Hr as ModelSelection, Ht as AgentControlMcpProposeProjectUpdateInput, I as AGENT_CONTROL_MCP_TOOL_NAMES, Ia as DEFAULT_MODEL, Ii as ThreadAttachedToWorktreePayload$1, In as McpInventoryResourceTemplate, Io as EnvironmentId, Ir as ContextHandoffEndpointSnapshot, It as AgentControlMcpProposeDeviceLaunchInput, J as AgentControlAutomationRunId, Ja as EDITORS, Ji as ThreadSessionSetPayload$1, Jn as McpWorkspaceId, Jr as OrchestrationCheckpointSummary, Jt as AgentControlMcpReadDeviceContentInput, K as AgentControlAutomationId, Ka as TerminalSessionLookupError, Ki as ThreadRevertedPayload$1, Kn as McpSettingsError, Ko as RuntimeSessionId, Kr as OrchestrationCheckpointFile, Kt as AgentControlMcpReadAutomationResult, L as AGENT_CONTROL_MCP_WAIT_TIMEOUT_MS_DEFAULT, La as MODEL_SLUG_ALIASES_BY_PROVIDER, Li as ThreadCreatedPayload$1, Ln as McpInventoryTool, Lo as EventId, Lr as ContextHandoffInspectionError, Lt as AgentControlMcpProposeDeviceOpenUrlInput, M as AGENT_CONTROL_MCP_OPERATIONAL_RANGE_MAX_MS, Ma as ThreadPriorityFingerprint, Mi as ProviderSessionRuntimeStatus, Mn as GitCommandError, Mo as AuthSessionId, Mr as ChatAttachment, Mt as AgentControlMcpProposeDeviceBootInput, N as AGENT_CONTROL_MCP_OPERATIONAL_RETENTION_MS, Ni as RuntimeMode, Nn as GitManagerError, No as CheckpointRef, Nr as ClientOrchestrationCommand, Nt as AgentControlMcpProposeDeviceDetachInput, O as AGENT_CONTROL_EXTERNAL_PAIRING_CODE_TTL_MS, Oi as ProjectionPendingApprovalDecision, On as AtlassianConnectionError, Oo as AuthRpcError, Or as CONTEXT_HANDOFF_ERROR_MAX_CHARS, Ot as AgentControlMcpProposeAutomationCancelInput, P as AGENT_CONTROL_MCP_READ_THREAD_TEXT_BUDGET_CHARS, Pa as DEFAULT_GIT_TEXT_GENERATION_MODEL_BY_PROVIDER, Pi as ThreadActivityAppendedPayload$1, Pn as TextGenerationError, Po as CommandId, Pr as ContextHandoffActivityPayload, Pt as AgentControlMcpProposeDeviceInputInput, Q as AgentControlExternalIntegration, Qa as DESKTOP_NATIVE_NODE_CLAIM_MAX_BODY_BYTES, Qi as ThreadTokenModeSetPayload$1, Qn as ServerProviderUpdateError, Qr as OrchestrationEventMetadata, Qt as AgentControlMcpReadThreadResult, R as AGENT_CONTROL_MCP_WAIT_TIMEOUT_MS_MAX, Ra as ProviderDriverKind, Ri as ThreadDeletedPayload$1, Rn as McpListServersResult, Ro as IsoDateTime, Rr as ContextHandoffMode, Rt as AgentControlMcpProposeDeviceRecordingInput, S as AGENT_CONTROL_CAPABILITIES, Sa as SourceControlRepositoryError, Si as ProjectAvatarSetPayload$1, Sn as DeviceRpcError, So as RelayProtocolVersion, Sr as ProviderSessionStartInput, St as AgentControlMcpListProjectsResult, T as AGENT_CONTROL_EXTERNAL_CREDENTIAL_AUDIENCE, Ti as ProjectMetaUpdatedPayload$1, Tn as ThreadPriorityCandidateRanking, To as AuthCreatePairingCredentialInput, Tr as ProviderStopSessionInput, Tt as AgentControlMcpMutationResult, U as AgentControlActionPlan, Ua as TerminalCwdError, Ui as ThreadMetaUpdatedPayload$1, Un as McpServerConfig, Ur as ORCHESTRATION_WS_METHODS, Ut as AgentControlMcpProposeSettingsChangeInput, V as AGENT_CONTROL_WS_METHODS, Va as isProviderDriverKind, Vi as ThreadInteractionModeSetPayload$1, Vn as McpProviderSupport, Vo as PositiveInt, Vr as DEFAULT_PROVIDER_INTERACTION_MODE, Vt as AgentControlMcpProposeProjectRemoveInput, W as AgentControlAutomation, Wa as TerminalHistoryError, Wi as ThreadPriorityProjectedRanking, Wn as McpServerName, Wr as OrchestrationActorKind, Wt as AgentControlMcpProviderRuntimeEventsResult, X as AgentControlExternalCapabilitiesResult, Xa as DESKTOP_NATIVE_NODE_CLAIM_COMMIT_PATH, Xi as ThreadSettlementOverride, Xn as UsageReadError, Xo as TrimmedNonEmptyString, Xr as OrchestrationDispatchCommandError, Xt as AgentControlMcpReadDeviceStateResult, Y as AgentControlCapability, Ya as OpenError, Yi as ThreadSettledPayload$1, Yn as OpinionatedPluginError, Yo as ThreadId, Yr as OrchestrationCommandReceiptStatus, Yt as AgentControlMcpReadDeviceStateInput, Z as AgentControlExternalCreateTaskInput, Za as DESKTOP_NATIVE_NODE_CLAIM_DESCRIPTOR_PATH, Zi as ThreadStatusBucketOverriddenPayload$1, Zn as ServerProvider, Zo as TurnId, Zr as OrchestrationEvent, Zt as AgentControlMcpReadThreadInput, _ as ProjectWriteFileError, _a as WORK_ITEM_DETAIL_COMMENT_BODY_MAX_BYTES, _i as OrchestrationThreadHistoryCursor, _n as AgentControlRpcError, _o as RELAY_SUPPORTED_VERSION_RANGE, _r as isToolLifecycleItemType, _t as AgentControlMcpListAutomationsInput, a as WS_METHODS, aa as WorktreeCreatedPayload$1, ai as OrchestrationGetWorkflowScriptError, an as AgentControlOperationId, ao as LOCAL_INTRODUCTION_MAX_BODY_BYTES, ar as OpenCodeSettings, at as AgentControlIntegrationId, b as AGENT_CONTROL_AUTOMATION_MIN_INTERVAL_MS, bn as DEVICE_SWIPE_DURATION_MAX_MS, bo as RelayEffectiveRole, br as ProviderRespondToUserInputInput, bt as AgentControlMcpListDevicesResult, c as WsRpcGroup, ca as WorktreeMetaUpdatedPayload$1, ci as OrchestrationProposedPlanId, cn as AgentControlPlanDigest, co as HubEnrollmentCeremonyDetail, cr as ThreadEnvMode, ct as AgentControlMcpControlRequestResult, da as PullRequestState, di as OrchestrationSession, dn as AgentControlProposal, do as RELAY_FRAME_TYPES, dr as KeybindingsConfigError, dt as AgentControlMcpDiagnosticsSummaryResult, ea as ThreadTurnInterruptRequestedPayload$1, ei as OrchestrationGetFullThreadDiffError, en as AgentControlMcpSendMessageInput, eo as DesktopNativeNodeClaimCommitRequest, er as CodexSettings, et as AgentControlExternalProjectScope, f as ProjectListEntriesError, fa as StatusBucket, fi as OrchestrationSessionStatus, fn as AgentControlProposalId, fo as RELAY_MAX_CONTROL_FRAME_BYTES, fr as MODEL_PICKER_JUMP_KEYBINDING_COMMANDS, ft as AgentControlMcpInstallation, g as ProjectStageFileReferenceError, ga as WORK_ITEM_DETAIL_BODY_MAX_BYTES, gi as OrchestrationThreadActivityTone, gn as AgentControlRiskTag, go as RELAY_MAX_RPC_MESSAGE_BYTES, gr as ToolLifecycleItemType, gt as AgentControlMcpListAutomationRunsResult, h as ProjectSearchEntriesError, ha as ThreadGoal, hi as OrchestrationThread, hn as AgentControlResultEnvelope, ho as RELAY_MAX_RETRY_AFTER_MS, hr as RuntimeSubagentStatus, ht as AgentControlMcpListAutomationRunsInput, i as fromLenientJson, ia as WorktreeArchivedPayload$1, ii as OrchestrationGetTurnDiffResult, in as AgentControlOperation, io as LOCAL_INTRODUCTION_DESCRIPTOR_PATH, ir as GrokSettings, it as AgentControlExternalWaitForTaskInput, j as AGENT_CONTROL_MCP_MESSAGE_TEXT_MAX_CHARS, ja as ThreadPriorityCandidateId, ji as ProviderInteractionMode, jn as AtlassianProduct, jo as AtlassianResourceId, jr as CONTEXT_HANDOFF_WS_METHODS, jt as AgentControlMcpProposeDeviceAttachInput, k as AGENT_CONTROL_EXTERNAL_PROPOSAL_TTL_MS, ka as VcsUnsupportedOperationError, ki as ProjectionPendingApprovalStatus, kn as AtlassianConnectionKind, ko as ApprovalRequestId, kr as CONTEXT_HANDOFF_INSPECTION_CHUNK_MAX_BYTES, kt as AgentControlMcpProposeAutomationCreateInput, l as FilesystemBrowseError, la as WorktreeRestoredPayload$1, li as OrchestrationReadModel, ln as AgentControlPrincipal, lo as HubEnrollmentStartResult, lr as KeybindingRule, lt as AgentControlMcpCreateThreadsInput, m as ProjectReadFileError, ma as WorktreeId, mi as OrchestrationStopBackgroundTaskError, mn as AgentControlRequestId, mo as RELAY_MAX_DATA_FRAME_BYTES, mr as THREAD_JUMP_KEYBINDING_COMMANDS, mt as AgentControlMcpInterruptThreadInput, n as decodeJsonResult, na as ThreadUnsettledPayload$1, ni as OrchestrationGetTaskOutputError, nn as AgentControlMcpUpdateThreadInput, no as LOCAL_INTRODUCTION_COMPLETE_PATH, nr as CursorSettings, nt as AgentControlExternalTaskId, o as WsDeviceRpcGroup, oa as WorktreeDeletedPayload$1, oi as OrchestrationMessage, on as AgentControlOperationState, oo as LocalIntroductionCompleteRequest, or as ServerSettings, ot as AgentControlMcpCapabilitiesResult, p as ProjectReadFileBinaryError, pa as Worktree, pi as OrchestrationShellSnapshot, pn as AgentControlProposalStatus, pr as ResolvedKeybindingRule, pt as AgentControlMcpInstallationId, q as AgentControlAutomationRun, qa as TerminalSubscriptionResyncError, qi as ThreadRuntimeModeSetPayload$1, qn as McpWorkspace, qr as OrchestrationCheckpointStatus, qt as AgentControlMcpReadControlRequestInput, r as formatSchemaError, ra as TurnDispatchMode, ri as OrchestrationGetTurnDiffError, rn as AgentControlMcpWaitForControlRequestInput, rr as DEFAULT_SERVER_SETTINGS, rt as AgentControlExternalTaskIdInput, s as WsHostedRpcGroup, sa as WorktreeManualPositionSetPayload$1, si as OrchestrationMessageRole, sn as AgentControlOperationStatus, so as HubConnectorStatus, sr as ServerSettingsError, st as AgentControlMcpContextResult, t as collectUint8StreamText, ta as ThreadUnarchivedPayload$1, ti as OrchestrationGetSnapshotError, tn as AgentControlMcpSettingsSummaryResult, to as DesktopNativeNodeClaimSignRequest, tr as CopilotSettings, tt as AgentControlExternalRpcError, u as PROJECT_READ_FILE_BINARY_MAX_BYTES, ua as WorktreeSourceControlStateUpdatedPayload$1, ui as OrchestrationReplayEventsError, un as AgentControlPromptSummary, uo as RELAY_AUTHENTICATION_DEADLINE_MS, ur as KeybindingsConfig, ut as AgentControlMcpDiagnosticsSummaryInput, v as AGENT_CONTROL_ACTION_CAPABILITIES, va as WorkItemProviderError, vi as OrchestrationThreadHistoryError, vn as DEVICE_CAPABILITY_LABELS, vo as RelayCapability, vr as ProviderInterruptTurnInput, vt as AgentControlMcpListAutomationsResult, w as AGENT_CONTROL_ERROR_CODES, wa as VcsDriverKind, wi as ProjectDeletedPayload$1, wn as ThreadPriorityBatchSnapshot, wo as AuthClientMetadataDeviceType, wr as ProviderStopBackgroundTaskInput, wt as AgentControlMcpListThreadsResult, x as AGENT_CONTROL_AUTOMATION_PROPOSAL_TTL_MS, xa as SourceControlProviderError, xn as DEVICE_WS_METHODS, xo as RelayFrame, xr as ProviderSendTurnInput, xt as AgentControlMcpListProjectsInput, y as AGENT_CONTROL_AUTOMATION_MAX_HORIZON_MS, ya as WorkItemProviderKind, yi as OrchestrationWorktreeShell, yn as DEVICE_FRAME_MAGIC, yo as RelayChannelId, yr as ProviderRespondToRequestInput, yt as AgentControlMcpListDevicesInput, z as AGENT_CONTROL_RISK_TAGS, za as ProviderInstanceId, zi as ThreadGoalClearedPayload$1, zn as McpOauthLoginResult, zo as MessageId, zr as DEFAULT_AGENT_TOKEN_MODE, zt as AgentControlMcpProposeDeviceShutdownInput } from "./collectUint8StreamText-DNY4x71l.mjs";
3
+ import { $ as AgentControlExternalOverviewResult, $a as DESKTOP_NATIVE_NODE_CLAIM_SIGN_PATH, $i as ThreadTurnDiffCompletedPayload$1, $n as ClaudeSettings, $r as OrchestrationEventType, $t as AgentControlMcpRecentActivityResult, A as AGENT_CONTROL_MCP_AUTOMATION_LIST_PROMPT_MAX_CHARS, Aa as ThreadPriorityBatchId, An as AtlassianConnectionStatus, Ao as ApprovalRequestId, At as AgentControlMcpProposeAutomationUpdateInput, B as AGENT_CONTROL_TERMINAL_PROPOSAL_STATUSES, Ba as defaultInstanceIdForDriver, Bi as ThreadGoalUpdatedPayload$1, Bn as McpProviderCapabilities, Bo as MessageId, Br as DEFAULT_PROJECT_METADATA_DIR, Bt as AgentControlMcpProposeProjectCreateInput, C as AGENT_CONTROL_DEVICE_ACTION_KINDS, Ci as ProjectCreatedPayload$1, Cn as DeviceUdid, Co as RelayProtocolVersion, Cr as ProviderSteerTurnInput, Ct as AgentControlMcpListThreadsInput, D as AGENT_CONTROL_EXTERNAL_MCP_TOOL_NAMES, Di as ProjectScript, Dn as AtlassianCapability, Do as AuthRevokeClientSessionInput, Dr as CONTEXT_HANDOFF_ACTIVITY_KIND, Dt as AgentControlMcpOrchestrationEventsResult, E as AGENT_CONTROL_EXTERNAL_MCP_TOOLS, Ea as VcsProcessExitError, Ei as ProjectMetadataDir, En as ThreadPriorityRpcError, Eo as AuthCreatePairingCredentialInput, Er as AgentTokenMode, Et as AgentControlMcpOperationalReadInput, F as AGENT_CONTROL_MCP_TOOLS, Fa as DEFAULT_GIT_TEXT_GENERATION_OPTIONS_BY_PROVIDER, Fi as ThreadArchivedPayload$1, Fn as McpInventoryResource, Fo as CommandId, Fr as ContextHandoffDigest, Ft as AgentControlMcpProposeDeviceInstallInput, G as AgentControlAutomationDefinition, Ga as TerminalNotRunningError, Gi as ThreadProposedPlanUpsertedPayload$1, Gn as McpServerWritableConfig, Gr as OrchestrationAggregateKind, Gt as AgentControlMcpReadAutomationInput, H as AgentControlActionKind, Hi as ThreadMessageSentPayload, Hn as McpServer, Ho as PositiveInt, Hr as ModelSelection, Ht as AgentControlMcpProposeProjectUpdateInput, I as AGENT_CONTROL_MCP_TOOL_NAMES, Ia as DEFAULT_MODEL, Ii as ThreadAttachedToWorktreePayload$1, In as McpInventoryResourceTemplate, Io as ContextHandoffId, Ir as ContextHandoffEndpointSnapshot, It as AgentControlMcpProposeDeviceLaunchInput, J as AgentControlAutomationRunId, Ja as EDITORS, Ji as ThreadSessionSetPayload$1, Jn as McpWorkspaceId, Jr as OrchestrationCheckpointSummary, Jt as AgentControlMcpReadDeviceContentInput, K as AgentControlAutomationId, Ka as TerminalSessionLookupError, Ki as ThreadRevertedPayload$1, Kn as McpSettingsError, Kr as OrchestrationCheckpointFile, Kt as AgentControlMcpReadAutomationResult, L as AGENT_CONTROL_MCP_WAIT_TIMEOUT_MS_DEFAULT, La as MODEL_SLUG_ALIASES_BY_PROVIDER, Li as ThreadCreatedPayload$1, Ln as McpInventoryTool, Lo as EnvironmentId, Lr as ContextHandoffInspectionError, Lt as AgentControlMcpProposeDeviceOpenUrlInput, M as AGENT_CONTROL_MCP_OPERATIONAL_RANGE_MAX_MS, Ma as ThreadPriorityFingerprint, Mi as ProviderSessionRuntimeStatus, Mn as GitCommandError, Mo as AtlassianResourceId, Mr as ChatAttachment, Mt as AgentControlMcpProposeDeviceBootInput, N as AGENT_CONTROL_MCP_OPERATIONAL_RETENTION_MS, Ni as RuntimeMode, Nn as GitManagerError, No as AuthSessionId, Nr as ClientOrchestrationCommand, Nt as AgentControlMcpProposeDeviceDetachInput, O as AGENT_CONTROL_EXTERNAL_PAIRING_CODE_TTL_MS, Oi as ProjectionPendingApprovalDecision, On as AtlassianConnectionError, Oo as AuthRevokePairingLinkInput, Or as CONTEXT_HANDOFF_ERROR_MAX_CHARS, Ot as AgentControlMcpProposeAutomationCancelInput, P as AGENT_CONTROL_MCP_READ_THREAD_TEXT_BUDGET_CHARS, Pa as DEFAULT_GIT_TEXT_GENERATION_MODEL_BY_PROVIDER, Pi as ThreadActivityAppendedPayload$1, Pn as TextGenerationError, Po as CheckpointRef, Pr as ContextHandoffActivityPayload, Pt as AgentControlMcpProposeDeviceInputInput, Q as AgentControlExternalIntegration, Qa as DESKTOP_NATIVE_NODE_CLAIM_MAX_BODY_BYTES, Qi as ThreadTokenModeSetPayload$1, Qn as ServerProviderUpdateError, Qo as TurnId, Qr as OrchestrationEventMetadata, Qt as AgentControlMcpReadThreadResult, R as AGENT_CONTROL_MCP_WAIT_TIMEOUT_MS_MAX, Ra as ProviderDriverKind, Ri as ThreadDeletedPayload$1, Rn as McpListServersResult, Ro as EventId, Rr as ContextHandoffMode, Rt as AgentControlMcpProposeDeviceRecordingInput, S as AGENT_CONTROL_CAPABILITIES, Sa as SourceControlRepositoryError, Si as ProjectAvatarSetPayload$1, Sn as DeviceRpcError, So as RelayFrame, Sr as ProviderSessionStartInput, St as AgentControlMcpListProjectsResult, T as AGENT_CONTROL_EXTERNAL_CREDENTIAL_AUDIENCE, Ti as ProjectMetaUpdatedPayload$1, Tn as ThreadPriorityCandidateRanking, To as AuthClientMetadataDeviceType, Tr as ProviderStopSessionInput, Tt as AgentControlMcpMutationResult, U as AgentControlActionPlan, Ua as TerminalCwdError, Ui as ThreadMetaUpdatedPayload$1, Un as McpServerConfig, Uo as ProjectId, Ur as ORCHESTRATION_WS_METHODS, Ut as AgentControlMcpProposeSettingsChangeInput, V as AGENT_CONTROL_WS_METHODS, Va as isProviderDriverKind, Vi as ThreadInteractionModeSetPayload$1, Vn as McpProviderSupport, Vo as NonNegativeInt, Vr as DEFAULT_PROVIDER_INTERACTION_MODE, Vt as AgentControlMcpProposeProjectRemoveInput, W as AgentControlAutomation, Wa as TerminalHistoryError, Wi as ThreadPriorityProjectedRanking, Wn as McpServerName, Wr as OrchestrationActorKind, Wt as AgentControlMcpProviderRuntimeEventsResult, X as AgentControlExternalCapabilitiesResult, Xa as DESKTOP_NATIVE_NODE_CLAIM_COMMIT_PATH, Xi as ThreadSettlementOverride, Xn as UsageReadError, Xo as ThreadId, Xr as OrchestrationDispatchCommandError, Xt as AgentControlMcpReadDeviceStateResult, Y as AgentControlCapability, Ya as OpenError, Yi as ThreadSettledPayload$1, Yn as OpinionatedPluginError, Yr as OrchestrationCommandReceiptStatus, Yt as AgentControlMcpReadDeviceStateInput, Z as AgentControlExternalCreateTaskInput, Za as DESKTOP_NATIVE_NODE_CLAIM_DESCRIPTOR_PATH, Zi as ThreadStatusBucketOverriddenPayload$1, Zn as ServerProvider, Zo as TrimmedNonEmptyString, Zr as OrchestrationEvent, Zt as AgentControlMcpReadThreadInput, _ as ProjectWriteFileError, _a as WORK_ITEM_DETAIL_COMMENT_BODY_MAX_BYTES, _i as OrchestrationThreadHistoryCursor, _n as AgentControlRpcError, _o as RELAY_MAX_RPC_MESSAGE_BYTES, _r as isToolLifecycleItemType, _t as AgentControlMcpListAutomationsInput, a as WS_METHODS, aa as WorktreeCreatedPayload$1, ai as OrchestrationGetWorkflowScriptError, an as AgentControlOperationId, ao as LOCAL_INTRODUCTION_MAX_BODY_BYTES, ar as OpenCodeSettings, at as AgentControlIntegrationId, b as AGENT_CONTROL_AUTOMATION_MIN_INTERVAL_MS, bn as DEVICE_SWIPE_DURATION_MAX_MS, bo as RelayChannelId, br as ProviderRespondToUserInputInput, bt as AgentControlMcpListDevicesResult, c as WsRpcGroup, ca as WorktreeMetaUpdatedPayload$1, ci as OrchestrationProposedPlanId, cn as AgentControlPlanDigest, co as HubEnrollmentCeremonyDetail, cr as ThreadEnvMode, ct as AgentControlMcpControlRequestResult, da as PullRequestState, di as OrchestrationSession, dn as AgentControlProposal, do as RELAY_AUTHENTICATION_DEADLINE_MS, dr as KeybindingsConfigError, dt as AgentControlMcpDiagnosticsSummaryResult, ea as ThreadTurnInterruptRequestedPayload$1, ei as OrchestrationGetFullThreadDiffError, en as AgentControlMcpSendMessageInput, eo as DesktopNativeNodeClaimCommitRequest, er as CodexSettings, et as AgentControlExternalProjectScope, f as ProjectListEntriesError, fa as StatusBucket, fi as OrchestrationSessionStatus, fn as AgentControlProposalId, fo as RELAY_FRAME_TYPES, fr as MODEL_PICKER_JUMP_KEYBINDING_COMMANDS, ft as AgentControlMcpInstallation, g as ProjectStageFileReferenceError, ga as WORK_ITEM_DETAIL_BODY_MAX_BYTES, gi as OrchestrationThreadActivityTone, gn as AgentControlRiskTag, go as RELAY_MAX_RETRY_AFTER_MS, gr as ToolLifecycleItemType, gt as AgentControlMcpListAutomationRunsResult, h as ProjectSearchEntriesError, ha as ThreadGoal, hi as OrchestrationThread, hn as AgentControlResultEnvelope, ho as RELAY_MAX_DATA_FRAME_BYTES, hr as RuntimeSubagentStatus, ht as AgentControlMcpListAutomationRunsInput, i as fromLenientJson, ia as WorktreeArchivedPayload$1, ii as OrchestrationGetTurnDiffResult, in as AgentControlOperation, io as LOCAL_INTRODUCTION_DESCRIPTOR_PATH, ir as GrokSettings, it as AgentControlExternalWaitForTaskInput, j as AGENT_CONTROL_MCP_MESSAGE_TEXT_MAX_CHARS, ja as ThreadPriorityCandidateId, ji as ProviderInteractionMode, jn as AtlassianProduct, jo as AtlassianConnectionId, jr as CONTEXT_HANDOFF_WS_METHODS, jt as AgentControlMcpProposeDeviceAttachInput, k as AGENT_CONTROL_EXTERNAL_PROPOSAL_TTL_MS, ka as VcsUnsupportedOperationError, ki as ProjectionPendingApprovalStatus, kn as AtlassianConnectionKind, ko as AuthRpcError, kr as CONTEXT_HANDOFF_INSPECTION_CHUNK_MAX_BYTES, kt as AgentControlMcpProposeAutomationCreateInput, l as FilesystemBrowseError, la as WorktreeRestoredPayload$1, li as OrchestrationReadModel, ln as AgentControlPrincipal, lo as HubEnrollmentStartResult, lr as KeybindingRule, lt as AgentControlMcpCreateThreadsInput, m as ProjectReadFileError, ma as WorktreeId, mi as OrchestrationStopBackgroundTaskError, mn as AgentControlRequestId, mr as THREAD_JUMP_KEYBINDING_COMMANDS, mt as AgentControlMcpInterruptThreadInput, n as decodeJsonResult, na as ThreadUnsettledPayload$1, ni as OrchestrationGetTaskOutputError, nn as AgentControlMcpUpdateThreadInput, no as LOCAL_INTRODUCTION_COMPLETE_PATH, nr as CursorSettings, nt as AgentControlExternalTaskId, o as WsDeviceRpcGroup, oa as WorktreeDeletedPayload$1, oi as OrchestrationMessage, on as AgentControlOperationState, oo as LocalIntroductionCompleteRequest, or as ServerSettings, ot as AgentControlMcpCapabilitiesResult, p as ProjectReadFileBinaryError, pa as Worktree, pi as OrchestrationShellSnapshot, pn as AgentControlProposalStatus, po as RELAY_MAX_CONTROL_FRAME_BYTES, pr as ResolvedKeybindingRule, pt as AgentControlMcpInstallationId, q as AgentControlAutomationRun, qa as TerminalSubscriptionResyncError, qi as ThreadRuntimeModeSetPayload$1, qn as McpWorkspace, qo as RuntimeSessionId, qr as OrchestrationCheckpointStatus, qt as AgentControlMcpReadControlRequestInput, r as formatSchemaError, ra as TurnDispatchMode, ri as OrchestrationGetTurnDiffError, rn as AgentControlMcpWaitForControlRequestInput, rr as DEFAULT_SERVER_SETTINGS, rt as AgentControlExternalTaskIdInput, s as WsHostedRpcGroup, sa as WorktreeManualPositionSetPayload$1, si as OrchestrationMessageRole, sn as AgentControlOperationStatus, so as HubConnectorStatus, sr as ServerSettingsError, st as AgentControlMcpContextResult, t as collectUint8StreamText, ta as ThreadUnarchivedPayload$1, ti as OrchestrationGetSnapshotError, tn as AgentControlMcpSettingsSummaryResult, to as DesktopNativeNodeClaimSignRequest, tr as CopilotSettings, tt as AgentControlExternalRpcError, u as PROJECT_READ_FILE_BINARY_MAX_BYTES, ua as WorktreeSourceControlStateUpdatedPayload$1, ui as OrchestrationReplayEventsError, un as AgentControlPromptSummary, uo as HubIdentitySummary, ur as KeybindingsConfig, ut as AgentControlMcpDiagnosticsSummaryInput, v as AGENT_CONTROL_ACTION_CAPABILITIES, va as WorkItemProviderError, vi as OrchestrationThreadHistoryError, vn as DEVICE_CAPABILITY_LABELS, vo as RELAY_SUPPORTED_VERSION_RANGE, vr as ProviderInterruptTurnInput, vt as AgentControlMcpListAutomationsResult, w as AGENT_CONTROL_ERROR_CODES, wa as VcsDriverKind, wi as ProjectDeletedPayload$1, wn as ThreadPriorityBatchSnapshot, wo as AuthBootstrapInput, wr as ProviderStopBackgroundTaskInput, wt as AgentControlMcpListThreadsResult, x as AGENT_CONTROL_AUTOMATION_PROPOSAL_TTL_MS, xa as SourceControlProviderError, xn as DEVICE_WS_METHODS, xo as RelayEffectiveRole, xr as ProviderSendTurnInput, xt as AgentControlMcpListProjectsInput, y as AGENT_CONTROL_AUTOMATION_MAX_HORIZON_MS, ya as WorkItemProviderKind, yi as OrchestrationWorktreeShell, yn as DEVICE_FRAME_MAGIC, yo as RelayCapability, yr as ProviderRespondToRequestInput, yt as AgentControlMcpListDevicesInput, z as AGENT_CONTROL_RISK_TAGS, za as ProviderInstanceId, zi as ThreadGoalClearedPayload$1, zn as McpOauthLoginResult, zo as IsoDateTime, zr as DEFAULT_AGENT_TOKEN_MODE, zt as AgentControlMcpProposeDeviceShutdownInput } from "./collectUint8StreamText-EDg4F0TU.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$20, 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-BTJDoEx1.mjs";
5
+ import { a as makeForgejoDiscovery, c as sourceBranch, d as firstNonEmptyLine, f as probeSourceControlProvider, h as layer$20, 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-4_4yahsa.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";
@@ -12672,26 +12672,26 @@ const make$12 = Effect.fn("makeSourceControlProviderRegistry")(function* () {
12672
12672
  const azureDevOpsCli = yield* AzureDevOpsCli;
12673
12673
  const fileSystem = yield* FileSystem.FileSystem;
12674
12674
  const github = yield* makeLazyProvider("github", Effect.tryPromise({
12675
- try: () => import("./GitHubSourceControlProvider-BeCMPF92.mjs"),
12675
+ try: () => import("./GitHubSourceControlProvider-Dmz1LJct.mjs"),
12676
12676
  catch: (cause) => providerLoadError("github", cause)
12677
12677
  }).pipe(Effect.flatMap((module) => module.make()), Effect.provideService(GitHubCli, githubCli), Effect.provideService(FileSystem.FileSystem, fileSystem)));
12678
12678
  const gitlab = yield* makeLazyProvider("gitlab", Effect.tryPromise({
12679
- try: () => import("./GitLabSourceControlProvider-0BeWchVS.mjs"),
12679
+ try: () => import("./GitLabSourceControlProvider-C21lwphV.mjs"),
12680
12680
  catch: (cause) => providerLoadError("gitlab", cause)
12681
12681
  }).pipe(Effect.flatMap((module) => module.make()), Effect.provideService(GitLabCli, gitlabCli)));
12682
12682
  const bitbucket = yield* makeLazyProvider("bitbucket", Effect.tryPromise({
12683
- try: () => import("./BitbucketSourceControlProvider-F1J_75c0.mjs"),
12683
+ try: () => import("./BitbucketSourceControlProvider-BV6iRDi7.mjs"),
12684
12684
  catch: (cause) => providerLoadError("bitbucket", cause)
12685
12685
  }).pipe(Effect.flatMap((module) => module.make()), Effect.provideService(BitbucketApi, bitbucketApi)), {
12686
12686
  searchRepositories: true,
12687
12687
  cloneAuthentication: true
12688
12688
  });
12689
12689
  const forgejo = yield* makeLazyProvider("forgejo", Effect.tryPromise({
12690
- try: () => import("./ForgejoSourceControlProvider-C-NI9vaC.mjs"),
12690
+ try: () => import("./ForgejoSourceControlProvider-CeN7Snfr.mjs"),
12691
12691
  catch: (cause) => providerLoadError("forgejo", cause)
12692
12692
  }).pipe(Effect.flatMap((module) => module.make()), Effect.provideService(ForgejoApi, forgejoApi)));
12693
12693
  const azureDevOps = yield* makeLazyProvider("azure-devops", Effect.tryPromise({
12694
- try: () => import("./AzureDevOpsSourceControlProvider-lRTMr9X9.mjs"),
12694
+ try: () => import("./AzureDevOpsSourceControlProvider-CGlK6M0b.mjs"),
12695
12695
  catch: (cause) => providerLoadError("azure-devops", cause)
12696
12696
  }).pipe(Effect.flatMap((module) => module.make()), Effect.provideService(AzureDevOpsCli, azureDevOpsCli)));
12697
12697
  const bitbucketDiscovery = makeBitbucketDiscovery(bitbucketApi);
@@ -32941,7 +32941,7 @@ const BUILT_IN_DRIVERS = [
32941
32941
  configSchema: CodexSettings,
32942
32942
  defaultConfig: () => Schema.decodeSync(CodexSettings)({}),
32943
32943
  create: (input) => Effect.tryPromise({
32944
- try: () => import("./CodexDriver-6IRQy37T.mjs"),
32944
+ try: () => import("./CodexDriver-DBz2rPXb.mjs"),
32945
32945
  catch: (cause) => driverImportError(codexDriverKind, input, cause)
32946
32946
  }).pipe(Effect.flatMap(({ CodexDriver }) => CodexDriver.create(input)))
32947
32947
  },
@@ -32955,7 +32955,7 @@ const BUILT_IN_DRIVERS = [
32955
32955
  configSchema: ClaudeSettings,
32956
32956
  defaultConfig: () => Schema.decodeSync(ClaudeSettings)({}),
32957
32957
  create: (input) => Effect.tryPromise({
32958
- try: () => import("./ClaudeDriver-BpYiEftb.mjs"),
32958
+ try: () => import("./ClaudeDriver-rooMNrJz.mjs"),
32959
32959
  catch: (cause) => driverImportError(claudeDriverKind, input, cause)
32960
32960
  }).pipe(Effect.flatMap(({ ClaudeDriver }) => ClaudeDriver.create(input)))
32961
32961
  },
@@ -32969,7 +32969,7 @@ const BUILT_IN_DRIVERS = [
32969
32969
  configSchema: CopilotSettings,
32970
32970
  defaultConfig: () => Schema.decodeSync(CopilotSettings)({}),
32971
32971
  create: (input) => Effect.tryPromise({
32972
- try: () => import("./CopilotDriver-BCe5V1Ll.mjs"),
32972
+ try: () => import("./CopilotDriver-D36vbGbn.mjs"),
32973
32973
  catch: (cause) => driverImportError(copilotDriverKind, input, cause)
32974
32974
  }).pipe(Effect.flatMap(({ CopilotDriver }) => CopilotDriver.create(input)))
32975
32975
  },
@@ -32983,7 +32983,7 @@ const BUILT_IN_DRIVERS = [
32983
32983
  configSchema: CursorSettings,
32984
32984
  defaultConfig: () => Schema.decodeSync(CursorSettings)({}),
32985
32985
  create: (input) => Effect.tryPromise({
32986
- try: () => import("./CursorDriver-C4V25d1y.mjs"),
32986
+ try: () => import("./CursorDriver-DWuuOSkJ.mjs"),
32987
32987
  catch: (cause) => driverImportError(cursorDriverKind, input, cause)
32988
32988
  }).pipe(Effect.flatMap(({ CursorDriver }) => CursorDriver.create(input)))
32989
32989
  },
@@ -32997,7 +32997,7 @@ const BUILT_IN_DRIVERS = [
32997
32997
  configSchema: GrokSettings,
32998
32998
  defaultConfig: () => Schema.decodeSync(GrokSettings)({}),
32999
32999
  create: (input) => Effect.tryPromise({
33000
- try: () => import("./GrokDriver-DFw7DOdK.mjs"),
33000
+ try: () => import("./GrokDriver-qKX1a63G.mjs"),
33001
33001
  catch: (cause) => driverImportError(grokDriverKind, input, cause)
33002
33002
  }).pipe(Effect.flatMap(({ GrokDriver }) => GrokDriver.create(input)))
33003
33003
  },
@@ -33011,7 +33011,7 @@ const BUILT_IN_DRIVERS = [
33011
33011
  configSchema: OpenCodeSettings,
33012
33012
  defaultConfig: () => Schema.decodeSync(OpenCodeSettings)({}),
33013
33013
  create: (input) => Effect.tryPromise({
33014
- try: () => import("./OpenCodeDriver-ChWHrFi7.mjs"),
33014
+ try: () => import("./OpenCodeDriver-CbdswhqU.mjs"),
33015
33015
  catch: (cause) => driverImportError(openCodeDriverKind, input, cause)
33016
33016
  }).pipe(Effect.flatMap(({ OpenCodeDriver }) => OpenCodeDriver.create(input)))
33017
33017
  }
@@ -33726,7 +33726,7 @@ const scopedSafeTeardown = (label) => (effect) => Effect.gen(function* () {
33726
33726
  });
33727
33727
  //#endregion
33728
33728
  //#region package.json
33729
- var version$1 = "0.1.9";
33729
+ var version$1 = "0.1.11";
33730
33730
  //#endregion
33731
33731
  //#region src/provider/Layers/CodexProvider.ts
33732
33732
  const PROVIDER_PROBE_TIMEOUT_MS = 8e3;
@@ -66386,7 +66386,10 @@ function makeNodeNativeClaimService(options) {
66386
66386
  if (current.activeNode !== null) {
66387
66387
  const existing = current.activeNode;
66388
66388
  if (existing.hubOrigin !== active.hubOrigin || existing.nodeId !== active.nodeId || existing.activeKeyId !== active.activeKeyId || existing.activeKeySecretName !== active.activeKeySecretName) return claimError("native_node_claim_conflict");
66389
- return current;
66389
+ return {
66390
+ ...current,
66391
+ revision: current.revision + 1
66392
+ };
66390
66393
  }
66391
66394
  if (nativePending(current, active.hubOrigin).keySecretName !== active.activeKeySecretName) return claimError("native_node_claim_conflict");
66392
66395
  return {
@@ -69685,6 +69688,12 @@ async function makeHubIdentityRuntime(options) {
69685
69688
  return {
69686
69689
  backend: secretStore.backend,
69687
69690
  readState: () => bounded("identity_unavailable", () => stateStore.readOrCreate()),
69691
+ readActiveFingerprint: () => bounded("identity_unavailable", async () => {
69692
+ const state = await stateStore.readOrCreate();
69693
+ if (state.pendingTeardown !== null || state.activeNode === null) return null;
69694
+ const descriptor = await signingIdentity.getPublicDescriptor(state.activeNode.activeKeySecretName);
69695
+ return formatNodePublicKeyFingerprint(descriptor.fingerprint);
69696
+ }),
69688
69697
  leave: () => bounded("identity_unavailable", async () => {
69689
69698
  const state = await stateStore.readOrCreate();
69690
69699
  if (state.pendingTeardown !== null) {
@@ -71159,7 +71168,13 @@ var HubConnector = class {
71159
71168
  try {
71160
71169
  const state = await this.#identity.readState();
71161
71170
  if (state.pendingTeardown !== null) return { enrolled: "none" };
71162
- if (state.activeNode !== null) return { enrolled: "active" };
71171
+ if (state.activeNode !== null) {
71172
+ const fingerprint = await this.#identity.readActiveFingerprint?.();
71173
+ return {
71174
+ enrolled: "active",
71175
+ ...fingerprint === null || fingerprint === void 0 ? {} : { fingerprint }
71176
+ };
71177
+ }
71163
71178
  if (state.pendingEnrollment !== null) return { enrolled: "pending" };
71164
71179
  return { enrolled: "none" };
71165
71180
  } catch {
@@ -74749,7 +74764,7 @@ const desktopNativeNodeClaimCommitRouteLayer = HttpRouter.add("POST", DESKTOP_NA
74749
74764
  }),
74750
74765
  catch: (cause) => new NativeClaimOperationFailed({ cause })
74751
74766
  });
74752
- yield* Effect.promise(() => connector.resume());
74767
+ yield* Effect.promise(() => connector.resume().catch(() => void 0));
74753
74768
  return HttpServerResponse.jsonUnsafe({
74754
74769
  protocolVersion: 1,
74755
74770
  status: "active",
@@ -105495,6 +105510,10 @@ const requestHubStatus = (origin, bearerToken) => runLiveServerRequest(HttpClien
105495
105510
  "2xx": (response) => HttpClientResponse.schemaBodyJson(HubConnectorStatus)(response),
105496
105511
  orElse: (response) => readErrorMessageFromResponse(response).pipe(Effect.flatMap((message) => Effect.fail(new Error(message))))
105497
105512
  }), HUB_CLI_LIVE_SERVER_TIMEOUT);
105513
+ const requestHubIdentitySummary = (origin, bearerToken) => runLiveServerRequest(HttpClientRequest.get(`${origin}/api/hub/identity`).pipe(HttpClientRequest.acceptJson, HttpClientRequest.bearerToken(bearerToken)), HttpClientResponse.matchStatus({
105514
+ "2xx": (response) => HttpClientResponse.schemaBodyJson(HubIdentitySummary)(response),
105515
+ orElse: (response) => readErrorMessageFromResponse(response).pipe(Effect.flatMap((message) => Effect.fail(new Error(message))))
105516
+ }), HUB_CLI_LIVE_SERVER_TIMEOUT);
105498
105517
  const requestHubEnrollment = (origin, bearerToken) => runLiveServerRequest(HttpClientRequest.post(`${origin}/api/hub/enrollment`).pipe(HttpClientRequest.acceptJson, HttpClientRequest.bearerToken(bearerToken)), HttpClientResponse.matchStatus({
105499
105518
  "2xx": (response) => HttpClientResponse.schemaBodyJson(HubEnrollmentStartResult)(response),
105500
105519
  orElse: (response) => readErrorMessageFromResponse(response).pipe(Effect.flatMap((message) => Effect.fail(new Error(message))))
@@ -105512,10 +105531,14 @@ const requestHubResume = (origin, bearerToken) => runLiveServerRequest(HttpClien
105512
105531
  "2xx": (response) => HttpClientResponse.schemaBodyJson(HubConnectorStatus)(response),
105513
105532
  orElse: (response) => readErrorMessageFromResponse(response).pipe(Effect.flatMap((message) => Effect.fail(new Error(message))))
105514
105533
  }), HUB_CLI_LIVE_SERVER_TIMEOUT);
105515
- const formatHubStatus = (status, json) => {
105516
- if (json) return emitJson(status);
105534
+ const formatHubStatus = (status, json, identity) => {
105535
+ if (json) return emitJson({
105536
+ ...status,
105537
+ ...identity?.fingerprint === void 0 ? {} : { fingerprint: identity.fingerprint }
105538
+ });
105517
105539
  return [
105518
105540
  `Hub connector: ${status.state}`,
105541
+ identity?.fingerprint === void 0 ? void 0 : `Fingerprint: ${identity.fingerprint}`,
105519
105542
  status.failure === void 0 ? void 0 : `Failure: ${status.failure}`,
105520
105543
  status.nextRetryAt === void 0 ? void 0 : `Next retry: ${status.nextRetryAt}`,
105521
105544
  status.state === "online" ? `Active channels: ${status.activeChannels}` : void 0,
@@ -105665,7 +105688,10 @@ const authCommand = Command.make("auth").pipe(Command.withDescription("Manage th
105665
105688
  const hubStatusCommand = Command.make("status", {
105666
105689
  ...authLocationFlags,
105667
105690
  json: jsonFlag
105668
- }).pipe(Command.withDescription("Show bounded local Hub connector status."), Command.withHandler((flags) => runHubCommand(flags, (origin, token) => requestHubStatus(origin, token), { quietLogs: flags.json }).pipe(Effect.flatMap((status) => Console.log(formatHubStatus(status, flags.json))))));
105691
+ }).pipe(Command.withDescription("Show bounded local Hub connector status."), Command.withHandler((flags) => runHubCommand(flags, (origin, token) => Effect.all({
105692
+ status: requestHubStatus(origin, token),
105693
+ identity: requestHubIdentitySummary(origin, token)
105694
+ }), { quietLogs: flags.json }).pipe(Effect.flatMap(({ status, identity }) => Console.log(formatHubStatus(status, flags.json, identity))))));
105669
105695
  const hubEnrollCommand = Command.make("enroll", {
105670
105696
  ...authLocationFlags,
105671
105697
  json: jsonFlag
@@ -0,0 +1 @@
1
+ import{i as e,t}from"./react-SIfiwpqq.js";import{t as n}from"./compiler-runtime-qmuS0Svy.js";import{F as r,M as i,N as a}from"./runtime-DKwoXpJv.js";import{It as o}from"./composerDraftStore-CdJJZe42.js";import{_ as s,o as c}from"./authorization-mIJKV2yp.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-CHEwW3oH.js";import{u as y}from"./Icons-CT3nd2MA.js";import{t as b}from"./button-BAbJxRzt.js";import{t as x}from"./useCopyToClipboard-BTpWxumf.js";import{i as S,n as C,r as w,t as T}from"./alert-LqMhbdE9.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-DQsYchqu.js";import{t as A}from"./spinner-ClF0jOcX.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-DxoA6ky8.js";import{t as P}from"./badge-CXw6fWrB.js";import{t as se}from"./label-CVFHsLFO.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-D64j70NH.js";import{i as he,n as ge,r as _e}from"./settingsLayout-D8glO7f1.js";import{t as ve}from"./qr-code-Bddq6K7S.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};
@@ -0,0 +1 @@
1
+ import{i as e,t}from"./react-SIfiwpqq.js";import{t as n}from"./compiler-runtime-qmuS0Svy.js";import{C as r,Nr as i}from"./src-Vf4LVnMX.js";import{Rn as a,Vn as o,bn as s,f as c,l,v as u,y as d,zn as f}from"./runtime-DKwoXpJv.js";import{Dt as p,n as ee}from"./primary-OskAInOO.js";import{Ct as m,It as h,U as g,V as _,X as v,q as y}from"./composerDraftStore-CdJJZe42.js";import{i as te}from"./threadPriorityRefreshRuntime-DJF5drVD.js";import{a as ne,i as b}from"./toast-CcSCAm4B.js";import{t as x}from"./refresh-cw-DopCMrtR.js";import{t as S}from"./sparkles-CAf3oJ5S.js";import{t as C}from"./ProviderModelPicker-jd6GjQkO.js";import{t as re}from"./switch-BTGo9Yip.js";import{t as w}from"./button-BAbJxRzt.js";import{t as T}from"./toastHelpers-CSQRKo4F.js";import{a as ie,i as E,o as ae,s as oe,t as se}from"./select-BYbVr-yg.js";import"./providerInstances-BJcfB_9E.js";import{i as D,n as ce,r as O}from"./settingsLayout-D8glO7f1.js";var le=[`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`],k=[{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 A(e){return{...e.enabled===void 0?{}:{aiFocusEnabled:e.enabled},...e.refreshIntervalMs===void 0?{}:{aiFocusRefreshIntervalMs:e.refreshIntervalMs}}}function j(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=h();function L(e){return e instanceof Error?e.message:`An unexpected error occurred.`}function ue(){let e=(0,P.c)(2),[t,n]=(0,F.useState)(R),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>u(()=>{n(l())}),i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,F.useEffect)(r,i),t}function R(){return l()}function z({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(y(i.providers)),c=_(a,i.providers,o.instanceId,o.model),l=async t=>{n(!0);try{let n=N({serverConfig:i,selection:t});await d(e.environmentId,n)}catch(t){b.add(T({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)(C,{activeInstanceId:o.instanceId,model:o.model,lockedProvider:null,instanceEntries:s,modelOptionsByInstance:c,compact:!0,disabled:t||!e.connected,...e.connected?{}:{disabledReason:`Connect this environment to change its model.`},onInstanceModelChange:(e,t)=>{l(g({...a,textGenerationModelSelection:m(e,t)},i.providers))}}),e.inherited?null:(0,I.jsx)(w,{size:`xs`,variant:`ghost`,disabled:t||!e.connected,onClick:()=>void l(null),children:`Use text model`})]})}function B(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)(z,{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)(O,{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 V(){let e=(0,P.c)(48),t=a(),{updateSettings:n}=f(),r=o(),c;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=ee(),e[0]=c):c=e[0];let l=c,u=s(he),d=ue(),[p,m]=(0,F.useState)(!1);l?.environmentId,l?.label;let h;if(e[1]!==d||e[2]!==r||e[3]!==u){let t=new Map;l?.environmentId&&t.set(l.environmentId,{label:l.label,config:r});for(let e of d){if(t.has(e.environmentId))continue;let n=u[e.environmentId];t.set(e.environmentId,{label:n?.descriptor?.label??e.knownEnvironment.label,config:n?.serverConfig??null})}for(let[e,n]of Object.entries(u)){let r=i.make(e);t.has(r)||t.set(r,{label:n.descriptor?.label??`Saved environment`,config:n.serverConfig})}h=j([...t].map(me)),e[1]=d,e[2]=r,e[3]=u,e[4]=h}else h=e[4];let g=h,_;e[5]===g?_=e[6]:(_=async()=>{m(!0);let e=await te(),t=e.failures;t.length>0?b.add(T({type:`error`,title:`AI Focus refresh failed`,description:t.map(e=>{let{environmentId:t,error:n}=e;return`${g.find(e=>e.environmentId===t)?.label??`Environment`}: ${L(n)}`}).join(` · `)})):b.add(T({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.`})),m(!1)},e[5]=g,e[6]=_);let v=_,y;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,I.jsx)(S,{className:`size-3.5`}),e[7]=y):y=e[7];let C;e[8]===n?C=e[9]:(C=e=>n(A({enabled:e})),e[8]=n,e[9]=C);let E;e[10]!==t.aiFocusEnabled||e[11]!==C?(E=(0,I.jsx)(O,{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)(re,{"aria-label":`Enable AI Focus`,checked:t.aiFocusEnabled,onCheckedChange:C})}),e[10]=t.aiFocusEnabled,e[11]=C,e[12]=E):E=e[12];let M=String(t.aiFocusRefreshIntervalMs),N;e[13]===n?N=e[14]:(N=e=>{let t=Number(e);n(A({refreshIntervalMs:t}))},e[13]=n,e[14]=N);let R;e[15]===t.aiFocusRefreshIntervalMs?R=e[16]:(R=k.find(e=>e.value===t.aiFocusRefreshIntervalMs)?.label??`Every 10 minutes`,e[15]=t.aiFocusRefreshIntervalMs,e[16]=R);let z;e[17]===R?z=e[18]:(z=(0,I.jsx)(ae,{className:`w-48`,"aria-label":`AI Focus refresh interval`,children:(0,I.jsx)(oe,{children:R})}),e[17]=R,e[18]=z);let B;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,I.jsx)(ie,{align:`end`,alignItemWithTrigger:!1,children:k.map(pe)}),e[19]=B):B=e[19];let V;e[20]!==M||e[21]!==N||e[22]!==z?(V=(0,I.jsxs)(se,{value:M,onValueChange:N,children:[z,B]}),e[20]=M,e[21]=N,e[22]=z,e[23]=V):V=e[23];let H;e[24]===v?H=e[25]:(H=()=>void v(),e[24]=v,e[25]=H);let U=p?`size-4 animate-spin`:`size-4`,W;e[26]===U?W=e[27]:(W=(0,I.jsx)(x,{className:U}),e[26]=U,e[27]=W);let G;e[28]!==p||e[29]!==H||e[30]!==W?(G=(0,I.jsx)(w,{size:`icon-sm`,variant:`outline`,"aria-label":`Refresh AI Focus now`,disabled:p,onClick:H,children:W}),e[28]=p,e[29]=H,e[30]=W,e[31]=G):G=e[31];let K;e[32]!==V||e[33]!==G?(K=(0,I.jsx)(O,{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[32]=V,e[33]=G,e[34]=K):K=e[34];let q;e[35]!==K||e[36]!==E?(q=(0,I.jsxs)(D,{title:`AI Focus`,icon:y,children:[E,K]}),e[35]=K,e[36]=E,e[37]=q):q=e[37];let J;e[38]===g?J=e[39]:(J=g.length>0?g.map(fe):(0,I.jsx)(O,{title:`No environments available`,description:`Connect a node to configure its Inbox ranking model.`}),e[38]=g,e[39]=J);let Y;e[40]===J?Y=e[41]:(Y=(0,I.jsx)(D,{title:`Models`,children:J}),e[40]=J,e[41]=Y);let X;e[42]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,I.jsx)(ne,{className:`size-3.5`}),e[42]=X):X=e[42];let Z;e[43]===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[43]=Z):Z=e[43];let Q;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,I.jsx)(D,{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:le.map(de)})]})}),e[44]=Q):Q=e[44];let $;return e[45]!==q||e[46]!==Y?($=(0,I.jsxs)(ce,{children:[q,Y,Q]}),e[45]=q,e[46]=Y,e[47]=$):$=e[47],$}function de(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 fe(e){return(0,I.jsx)(B,{row:e},e.environmentId)}function pe(e){return(0,I.jsx)(E,{hideIndicator:!0,value:String(e.value),children:e.label},e.value)}function me(e){let[t,n]=e;return{environmentId:t,label:n.label,connected:c(t)!==null&&p(t).phase===`connected`,serverConfig:n.config}}function he(e){return e.byId}export{V as AiFocusSettings};
@@ -0,0 +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-CdJJZe42.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};