@halcyonlabs/app 0.47.0-halcyon.21 → 0.47.0-halcyon.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (630) hide show
  1. package/app/dist/assets/{AddMachineDialog-4BQFC118.js → AddMachineDialog-BlVfh9PM.js} +1 -1
  2. package/app/dist/assets/AddMachineDialog-BlVfh9PM.js.br +0 -0
  3. package/app/dist/assets/AddMachineDialog-BlVfh9PM.js.gz +0 -0
  4. package/app/dist/assets/{AppCommandShortcutHint-BlXOfa_n.js → AppCommandShortcutHint-C1mIupNX.js} +1 -1
  5. package/app/dist/assets/{AppFileExternalNavigationDispatcher-fGD_vTns.js → AppFileExternalNavigationDispatcher-zdrgMBvF.js} +1 -1
  6. package/app/dist/assets/AppFileExternalNavigationDispatcher-zdrgMBvF.js.br +0 -0
  7. package/app/dist/assets/AppFileExternalNavigationDispatcher-zdrgMBvF.js.gz +0 -0
  8. package/app/dist/assets/{AppToasterView-DzbjTKdn.js → AppToasterView-C6IQDk4H.js} +1 -1
  9. package/app/dist/assets/{BbDiff-BkqgAZD9.js → BbDiff-CORXfK92.js} +1 -1
  10. package/app/dist/assets/BbDiff-CORXfK92.js.br +0 -0
  11. package/app/dist/assets/BbDiff-CORXfK92.js.gz +0 -0
  12. package/app/dist/assets/{BbDiffSplit-DTvWaW-n.js → BbDiffSplit-By8A1QN-.js} +2 -2
  13. package/app/dist/assets/BbDiffSplit-By8A1QN-.js.br +0 -0
  14. package/app/dist/assets/BbDiffSplit-By8A1QN-.js.gz +0 -0
  15. package/app/dist/assets/{BbSourceCode-Dqw4VrLu.js → BbSourceCode-C3we2GZp.js} +1 -1
  16. package/app/dist/assets/BbSourceCode-C3we2GZp.js.br +0 -0
  17. package/app/dist/assets/BbSourceCode-C3we2GZp.js.gz +0 -0
  18. package/app/dist/assets/{BrowserTabDeck-CuHEyZd6.js → BrowserTabDeck-BtVycavD.js} +1 -1
  19. package/app/dist/assets/BrowserTabDeck-BtVycavD.js.br +0 -0
  20. package/app/dist/assets/BrowserTabDeck-BtVycavD.js.gz +0 -0
  21. package/app/dist/assets/{CommandPaletteBody-DynxiDg6.js → CommandPaletteBody-JfQwJqGn.js} +1 -1
  22. package/app/dist/assets/CommandPaletteBody-JfQwJqGn.js.br +0 -0
  23. package/app/dist/assets/CommandPaletteBody-JfQwJqGn.js.gz +0 -0
  24. package/app/dist/assets/{DiffHost-3UTZIJNs.js → DiffHost-DEYVmsVa.js} +1 -1
  25. package/app/dist/assets/DiffHost-DEYVmsVa.js.br +0 -0
  26. package/app/dist/assets/DiffHost-DEYVmsVa.js.gz +0 -0
  27. package/app/dist/assets/{ExperimentalFileLinkMenu-C0RXVabs.js → ExperimentalFileLinkMenu-B-B8GXE8.js} +1 -1
  28. package/app/dist/assets/ExperimentalFileLinkMenu-B-B8GXE8.js.br +0 -0
  29. package/app/dist/assets/ExperimentalFileLinkMenu-B-B8GXE8.js.gz +0 -0
  30. package/app/dist/assets/{FilePreview-BxgJ2jjI.js → FilePreview-BHoPmg-c.js} +1 -1
  31. package/app/dist/assets/FilePreview-BHoPmg-c.js.br +0 -0
  32. package/app/dist/assets/FilePreview-BHoPmg-c.js.gz +0 -0
  33. package/app/dist/assets/{GitDiffCardHeader-Ce736y-m.js → GitDiffCardHeader-6LP_7oWh.js} +1 -1
  34. package/app/dist/assets/GitDiffCardHeader-6LP_7oWh.js.br +0 -0
  35. package/app/dist/assets/GitDiffCardHeader-6LP_7oWh.js.gz +0 -0
  36. package/app/dist/assets/{InlineMessageEditorFrame-Dud8h1It.js → InlineMessageEditorFrame-DyVCSKBJ.js} +1 -1
  37. package/app/dist/assets/InlineMessageEditorFrame-DyVCSKBJ.js.br +0 -0
  38. package/app/dist/assets/InlineMessageEditorFrame-DyVCSKBJ.js.gz +0 -0
  39. package/app/dist/assets/{MachineRenameDialog-C_ZV5gEB.js → MachineRenameDialog-HGiXO0UG.js} +1 -1
  40. package/app/dist/assets/MachineRenameDialog-HGiXO0UG.js.br +0 -0
  41. package/app/dist/assets/MachineRenameDialog-HGiXO0UG.js.gz +0 -0
  42. package/app/dist/assets/{MachineSettingsView-BWSIpenw.js → MachineSettingsView-C4q9cbRr.js} +1 -1
  43. package/app/dist/assets/MachineSettingsView-C4q9cbRr.js.br +0 -0
  44. package/app/dist/assets/MachineSettingsView-C4q9cbRr.js.gz +0 -0
  45. package/app/dist/assets/{MicrophonePreferences-CNEhQgAS.js → MicrophonePreferences-qaOpiph1.js} +1 -1
  46. package/app/dist/assets/MicrophonePreferences-qaOpiph1.js.br +0 -0
  47. package/app/dist/assets/MicrophonePreferences-qaOpiph1.js.gz +0 -0
  48. package/app/dist/assets/{ModelReasoningMenu-BeNCpeQf.js → ModelReasoningMenu-CVmIvyBC.js} +1 -1
  49. package/app/dist/assets/ModelReasoningMenu-CVmIvyBC.js.br +0 -0
  50. package/app/dist/assets/ModelReasoningMenu-CVmIvyBC.js.gz +0 -0
  51. package/app/dist/assets/{NewTabPage-CsPDV6iC.js → NewTabPage-BD3LFok4.js} +1 -1
  52. package/app/dist/assets/NewTabPage-BD3LFok4.js.br +0 -0
  53. package/app/dist/assets/NewTabPage-BD3LFok4.js.gz +0 -0
  54. package/app/dist/assets/{NewThreadComposer-BY0jUSbs.js → NewThreadComposer-C2ZKRVh2.js} +1 -1
  55. package/app/dist/assets/NewThreadComposer-C2ZKRVh2.js.br +0 -0
  56. package/app/dist/assets/NewThreadComposer-C2ZKRVh2.js.gz +0 -0
  57. package/app/dist/assets/{OnboardingFlow-BQdrTtHC.js → OnboardingFlow-D7-YF2ZM.js} +1 -1
  58. package/app/dist/assets/OnboardingFlow-D7-YF2ZM.js.br +0 -0
  59. package/app/dist/assets/OnboardingFlow-D7-YF2ZM.js.gz +0 -0
  60. package/app/dist/assets/{OptionPicker-sql35hd_.js → OptionPicker-DzY4ri8R.js} +1 -1
  61. package/app/dist/assets/OptionPicker-DzY4ri8R.js.br +0 -0
  62. package/app/dist/assets/OptionPicker-DzY4ri8R.js.gz +0 -0
  63. package/app/dist/assets/{PaletteShell-B9KeWKsT.js → PaletteShell-4enjLs-M.js} +1 -1
  64. package/app/dist/assets/PaletteShell-4enjLs-M.js.br +0 -0
  65. package/app/dist/assets/PaletteShell-4enjLs-M.js.gz +0 -0
  66. package/app/dist/assets/{PaneMaximizeButton-CGBzyikf.js → PaneMaximizeButton-40ZGXf3w.js} +1 -1
  67. package/app/dist/assets/PaneMaximizeButton-40ZGXf3w.js.br +0 -0
  68. package/app/dist/assets/PaneMaximizeButton-40ZGXf3w.js.gz +0 -0
  69. package/app/dist/assets/{PierreLineSelectionActions-BYL6I0xE.js → PierreLineSelectionActions-DrQj-N__.js} +1 -1
  70. package/app/dist/assets/PierreLineSelectionActions-DrQj-N__.js.br +0 -0
  71. package/app/dist/assets/PierreLineSelectionActions-DrQj-N__.js.gz +0 -0
  72. package/app/dist/assets/{PluginPanelRightPanelHost-Dj-wS_Ki.js → PluginPanelRightPanelHost-Ha0PrCa9.js} +1 -1
  73. package/app/dist/assets/PluginPanelRightPanelHost-Ha0PrCa9.js.br +0 -0
  74. package/app/dist/assets/PluginPanelRightPanelHost-Ha0PrCa9.js.gz +0 -0
  75. package/app/dist/assets/{PluginThreadChat-Dh-No9s-.js → PluginThreadChat-D_tbXHEo.js} +1 -1
  76. package/app/dist/assets/PluginThreadChat-D_tbXHEo.js.br +0 -0
  77. package/app/dist/assets/PluginThreadChat-D_tbXHEo.js.gz +0 -0
  78. package/app/dist/assets/ProjectDetailSettingsView-Ckp-m-c0.js +1 -0
  79. package/app/dist/assets/ProjectDetailSettingsView-Ckp-m-c0.js.br +0 -0
  80. package/app/dist/assets/ProjectDetailSettingsView-Ckp-m-c0.js.gz +0 -0
  81. package/app/dist/assets/{ProjectMachineSetupDialog-BW4gUYj0.js → ProjectMachineSetupDialog-Bn43xkw-.js} +1 -1
  82. package/app/dist/assets/ProjectMachineSetupDialog-Bn43xkw-.js.br +0 -0
  83. package/app/dist/assets/ProjectMachineSetupDialog-Bn43xkw-.js.gz +0 -0
  84. package/app/dist/assets/{ProjectsSettingsSection-BI_xhcA2.js → ProjectsSettingsSection-DXHostGl.js} +1 -1
  85. package/app/dist/assets/ProjectsSettingsSection-DXHostGl.js.br +0 -0
  86. package/app/dist/assets/ProjectsSettingsSection-DXHostGl.js.gz +0 -0
  87. package/app/dist/assets/{QueuedMessagesList-BEyivVSE.js → QueuedMessagesList-C53i8_rz.js} +1 -1
  88. package/app/dist/assets/QueuedMessagesList-C53i8_rz.js.br +0 -0
  89. package/app/dist/assets/QueuedMessagesList-C53i8_rz.js.gz +0 -0
  90. package/app/dist/assets/{RemotePathBrowser-DVW5AwBs.js → RemotePathBrowser-CsCxZdUk.js} +1 -1
  91. package/app/dist/assets/RemotePathBrowser-CsCxZdUk.js.br +0 -0
  92. package/app/dist/assets/RemotePathBrowser-CsCxZdUk.js.gz +0 -0
  93. package/app/dist/assets/{RootComposeView-Cbnwq7j_.js → RootComposeView-CsV3Ut7E.js} +1 -1
  94. package/app/dist/assets/RootComposeView-CsV3Ut7E.js.br +0 -0
  95. package/app/dist/assets/RootComposeView-CsV3Ut7E.js.gz +0 -0
  96. package/app/dist/assets/{SecondaryPanelLayout-fG8BuYv-.js → SecondaryPanelLayout-BPTIpQ2F.js} +1 -1
  97. package/app/dist/assets/SecondaryPanelLayout-BPTIpQ2F.js.br +0 -0
  98. package/app/dist/assets/SecondaryPanelLayout-BPTIpQ2F.js.gz +0 -0
  99. package/app/dist/assets/{ServerMoveOverlayView-CPWZimVv.js → ServerMoveOverlayView-DxwZdF-Z.js} +1 -1
  100. package/app/dist/assets/ServerMoveOverlayView-DxwZdF-Z.js.br +0 -0
  101. package/app/dist/assets/ServerMoveOverlayView-DxwZdF-Z.js.gz +0 -0
  102. package/app/dist/assets/{SettingsSidebar-DxfoXXKW.js → SettingsSidebar-CYEXglCo.js} +1 -1
  103. package/app/dist/assets/SettingsSidebar-CYEXglCo.js.br +0 -0
  104. package/app/dist/assets/SettingsSidebar-CYEXglCo.js.gz +0 -0
  105. package/app/dist/assets/{SettingsView-D_DkKpuv.js → SettingsView-B3HpJfUo.js} +1 -1
  106. package/app/dist/assets/SettingsView-B3HpJfUo.js.br +0 -0
  107. package/app/dist/assets/SettingsView-B3HpJfUo.js.gz +0 -0
  108. package/app/dist/assets/{SidebarFooterCustomize-VQoenr5y.js → SidebarFooterCustomize-BGXeu0og.js} +1 -1
  109. package/app/dist/assets/SidebarFooterCustomize-BGXeu0og.js.br +0 -0
  110. package/app/dist/assets/SidebarFooterCustomize-BGXeu0og.js.gz +0 -0
  111. package/app/dist/assets/{SidebarVisibilityCustomize-DUKnlz9Y.js → SidebarVisibilityCustomize-Qy7hHO5j.js} +1 -1
  112. package/app/dist/assets/SidebarVisibilityCustomize-Qy7hHO5j.js.br +0 -0
  113. package/app/dist/assets/SidebarVisibilityCustomize-Qy7hHO5j.js.gz +0 -0
  114. package/app/dist/assets/{SourceCodeHost-BlXLvWv2.js → SourceCodeHost-CJpVOgCd.js} +2 -2
  115. package/app/dist/assets/SourceCodeHost-CJpVOgCd.js.br +0 -0
  116. package/app/dist/assets/SourceCodeHost-CJpVOgCd.js.gz +0 -0
  117. package/app/dist/assets/{SplitWorkspaceRoute-6w4G23kc.js → SplitWorkspaceRoute-CWPCkdjo.js} +2 -2
  118. package/app/dist/assets/SplitWorkspaceRoute-CWPCkdjo.js.br +0 -0
  119. package/app/dist/assets/SplitWorkspaceRoute-CWPCkdjo.js.gz +0 -0
  120. package/app/dist/assets/{TerminalOutputBlock-BxBSWJr_.js → TerminalOutputBlock-BzxpJ5H3.js} +1 -1
  121. package/app/dist/assets/TerminalOutputBlock-BzxpJ5H3.js.br +0 -0
  122. package/app/dist/assets/TerminalOutputBlock-BzxpJ5H3.js.gz +0 -0
  123. package/app/dist/assets/{ThreadActionsMenu-ChpSKv80.js → ThreadActionsMenu-DfUIyx3e.js} +1 -1
  124. package/app/dist/assets/ThreadActionsMenu-DfUIyx3e.js.br +0 -0
  125. package/app/dist/assets/ThreadActionsMenu-DfUIyx3e.js.gz +0 -0
  126. package/app/dist/assets/{ThreadDetailView-CfH3uWo-.js → ThreadDetailView-BqzwklQd.js} +3 -3
  127. package/app/dist/assets/ThreadDetailView-BqzwklQd.js.br +0 -0
  128. package/app/dist/assets/ThreadDetailView-BqzwklQd.js.gz +0 -0
  129. package/app/dist/assets/{ThreadSearchPaletteMode-B72v3f5V.js → ThreadSearchPaletteMode-Dni8lJt2.js} +1 -1
  130. package/app/dist/assets/ThreadSearchPaletteMode-Dni8lJt2.js.br +0 -0
  131. package/app/dist/assets/ThreadSearchPaletteMode-Dni8lJt2.js.gz +0 -0
  132. package/app/dist/assets/{ThreadSecondaryPanel-4nIZy4h9.js → ThreadSecondaryPanel-Cfah9-yR.js} +1 -1
  133. package/app/dist/assets/ThreadSecondaryPanel-Cfah9-yR.js.br +0 -0
  134. package/app/dist/assets/ThreadSecondaryPanel-Cfah9-yR.js.gz +0 -0
  135. package/app/dist/assets/{ThreadSecondaryPanelTabContent-8-e35_Me.js → ThreadSecondaryPanelTabContent-ByMkWr4B.js} +1 -1
  136. package/app/dist/assets/ThreadSecondaryPanelTabContent-ByMkWr4B.js.br +0 -0
  137. package/app/dist/assets/ThreadSecondaryPanelTabContent-ByMkWr4B.js.gz +0 -0
  138. package/app/dist/assets/{ThreadStatusGlyph-C9tzRtlV.js → ThreadStatusGlyph-MjAgpNtv.js} +1 -1
  139. package/app/dist/assets/ThreadStatusGlyph-MjAgpNtv.js.br +0 -0
  140. package/app/dist/assets/ThreadStatusGlyph-MjAgpNtv.js.gz +0 -0
  141. package/app/dist/assets/{ThreadTerminalPanel-CqTk9L2y.js → ThreadTerminalPanel-2UtGqd1Z.js} +1 -1
  142. package/app/dist/assets/ThreadTerminalPanel-2UtGqd1Z.js.br +0 -0
  143. package/app/dist/assets/ThreadTerminalPanel-2UtGqd1Z.js.gz +0 -0
  144. package/app/dist/assets/{ThreadTerminalView-B6XNBrJ9.js → ThreadTerminalView-BqsCrU1_.js} +1 -1
  145. package/app/dist/assets/ThreadTerminalView-BqsCrU1_.js.br +0 -0
  146. package/app/dist/assets/ThreadTerminalView-BqsCrU1_.js.gz +0 -0
  147. package/app/dist/assets/{ThreadTimelineNavigationContext-DbZHHZfY.js → ThreadTimelineNavigationContext-B_vg4bPl.js} +2 -2
  148. package/app/dist/assets/ThreadTimelineNavigationContext-B_vg4bPl.js.br +0 -0
  149. package/app/dist/assets/ThreadTimelineNavigationContext-B_vg4bPl.js.gz +0 -0
  150. package/app/dist/assets/{ThreadUnarchiveButton-CtjS9UkR.js → ThreadUnarchiveButton-CnlHu7Dv.js} +1 -1
  151. package/app/dist/assets/{TimelineDetailScroll-CpFZhWhU.js → TimelineDetailScroll-CIXDGLcx.js} +1 -1
  152. package/app/dist/assets/TimelineDetailScroll-CIXDGLcx.js.br +0 -0
  153. package/app/dist/assets/TimelineDetailScroll-CIXDGLcx.js.gz +0 -0
  154. package/app/dist/assets/{TimelineFileDiffBlock-JiOlR3O8.js → TimelineFileDiffBlock-Cy_6X6XY.js} +1 -1
  155. package/app/dist/assets/TimelineFileDiffBlock-Cy_6X6XY.js.br +0 -0
  156. package/app/dist/assets/TimelineFileDiffBlock-Cy_6X6XY.js.gz +0 -0
  157. package/app/dist/assets/{TimelineSelectionMenu-DT4qwoFI.js → TimelineSelectionMenu-DzrSCC7e.js} +1 -1
  158. package/app/dist/assets/TimelineSelectionMenu-DzrSCC7e.js.br +0 -0
  159. package/app/dist/assets/TimelineSelectionMenu-DzrSCC7e.js.gz +0 -0
  160. package/app/dist/assets/{ToolsView-nAAic88Z.js → ToolsView-B8oDS6Ek.js} +1 -1
  161. package/app/dist/assets/ToolsView-B8oDS6Ek.js.br +0 -0
  162. package/app/dist/assets/ToolsView-B8oDS6Ek.js.gz +0 -0
  163. package/app/dist/assets/{ToolsViewSplits-Blo3GJMQ.js → ToolsViewSplits-JK-JmYIg.js} +2 -2
  164. package/app/dist/assets/ToolsViewSplits-JK-JmYIg.js.br +0 -0
  165. package/app/dist/assets/ToolsViewSplits-JK-JmYIg.js.gz +0 -0
  166. package/app/dist/assets/{WaveformVisualizer-BrH_nwc4.js → WaveformVisualizer-GDJ4mJRx.js} +1 -1
  167. package/app/dist/assets/WaveformVisualizer-GDJ4mJRx.js.br +0 -0
  168. package/app/dist/assets/WaveformVisualizer-GDJ4mJRx.js.gz +0 -0
  169. package/app/dist/assets/{absolute-file-path-W_eh4kPq.js → absolute-file-path-B-cUOroV.js} +1 -1
  170. package/app/dist/assets/{app-fixed-tab-navigation-DX9s-gCj.js → app-fixed-tab-navigation-BpDuGNDS.js} +1 -1
  171. package/app/dist/assets/app-fixed-tab-navigation-BpDuGNDS.js.br +0 -0
  172. package/app/dist/assets/app-fixed-tab-navigation-BpDuGNDS.js.gz +0 -0
  173. package/app/dist/assets/{audio-input-device-preference-DsU6GGNE.js → audio-input-device-preference-BeKjzmnK.js} +1 -1
  174. package/app/dist/assets/audio-input-device-preference-BeKjzmnK.js.br +0 -0
  175. package/app/dist/assets/audio-input-device-preference-BeKjzmnK.js.gz +0 -0
  176. package/app/dist/assets/{bottom-anchored-scroll-body-C8n22V_o.js → bottom-anchored-scroll-body-DaHi9M7W.js} +1 -1
  177. package/app/dist/assets/bottom-anchored-scroll-body-DaHi9M7W.js.br +0 -0
  178. package/app/dist/assets/bottom-anchored-scroll-body-DaHi9M7W.js.gz +0 -0
  179. package/app/dist/assets/{browser-url-B0SjaYti.js → browser-url-BdtGkCbj.js} +1 -1
  180. package/app/dist/assets/browser-url-BdtGkCbj.js.br +0 -0
  181. package/app/dist/assets/browser-url-BdtGkCbj.js.gz +0 -0
  182. package/app/dist/assets/{checkbox-Ct38DhHB.js → checkbox-5zZ_V1_F.js} +1 -1
  183. package/app/dist/assets/checkbox-5zZ_V1_F.js.br +0 -0
  184. package/app/dist/assets/checkbox-5zZ_V1_F.js.gz +0 -0
  185. package/app/dist/assets/{code-loading-skeletons-C_099GEq.js → code-loading-skeletons-DzoCzgll.js} +1 -1
  186. package/app/dist/assets/code-loading-skeletons-DzoCzgll.js.br +0 -0
  187. package/app/dist/assets/code-loading-skeletons-DzoCzgll.js.gz +0 -0
  188. package/app/dist/assets/{code-rendering-OxBy5zPr.js → code-rendering-A15j47Uy.js} +1 -1
  189. package/app/dist/assets/{code-theme-registration-BokyXo30.js → code-theme-registration-q5iRcekZ.js} +1 -1
  190. package/app/dist/assets/{detail-card-Cj628JNK.js → detail-card-BvFcq0Ru.js} +1 -1
  191. package/app/dist/assets/detail-card-BvFcq0Ru.js.br +0 -0
  192. package/app/dist/assets/detail-card-BvFcq0Ru.js.gz +0 -0
  193. package/app/dist/assets/{diff-stats-tally-MtORWItG.js → diff-stats-tally-DA41wrwM.js} +1 -1
  194. package/app/dist/assets/diff-stats-tally-DA41wrwM.js.br +0 -0
  195. package/app/dist/assets/diff-stats-tally-DA41wrwM.js.gz +0 -0
  196. package/app/dist/assets/{environment-mutations-rP4eROm2.js → environment-mutations-Bl2PK8kR.js} +1 -1
  197. package/app/dist/assets/environment-mutations-Bl2PK8kR.js.br +0 -0
  198. package/app/dist/assets/environment-mutations-Bl2PK8kR.js.gz +0 -0
  199. package/app/dist/assets/{environment-workspace-display-O1JRHfbV.js → environment-workspace-display-DdMsNL4x.js} +3 -3
  200. package/app/dist/assets/environment-workspace-display-DdMsNL4x.js.br +0 -0
  201. package/app/dist/assets/environment-workspace-display-DdMsNL4x.js.gz +0 -0
  202. package/app/dist/assets/{event-code-block-DqUZCAii.js → event-code-block-DT4pyQ5R.js} +1 -1
  203. package/app/dist/assets/event-code-block-DT4pyQ5R.js.br +0 -0
  204. package/app/dist/assets/event-code-block-DT4pyQ5R.js.gz +0 -0
  205. package/app/dist/assets/{expandable-text-herJC70e.js → expandable-text-CtGFLpBX.js} +1 -1
  206. package/app/dist/assets/expandable-text-CtGFLpBX.js.br +0 -0
  207. package/app/dist/assets/expandable-text-CtGFLpBX.js.gz +0 -0
  208. package/app/dist/assets/{file-opener-preference-BEeek6dm.js → file-opener-preference-B5sOAhVM.js} +1 -1
  209. package/app/dist/assets/{file-path-link-Cni9Azi2.js → file-path-link-xsn9GiAq.js} +1 -1
  210. package/app/dist/assets/file-path-link-xsn9GiAq.js.br +0 -0
  211. package/app/dist/assets/file-path-link-xsn9GiAq.js.gz +0 -0
  212. package/app/dist/assets/{host-mutations-Ckc-eVys.js → host-mutations-Bf4idS3m.js} +1 -1
  213. package/app/dist/assets/host-mutations-Bf4idS3m.js.br +0 -0
  214. package/app/dist/assets/host-mutations-Bf4idS3m.js.gz +0 -0
  215. package/app/dist/assets/{icon-extended-DDFkslJU.js → icon-extended-C7x9E4W9.js} +1 -1
  216. package/app/dist/assets/icon-extended-C7x9E4W9.js.br +0 -0
  217. package/app/dist/assets/icon-extended-C7x9E4W9.js.gz +0 -0
  218. package/app/dist/assets/{image-lightbox-BW1bqQJM.js → image-lightbox-CzY6y14n.js} +1 -1
  219. package/app/dist/assets/image-lightbox-CzY6y14n.js.br +0 -0
  220. package/app/dist/assets/image-lightbox-CzY6y14n.js.gz +0 -0
  221. package/app/dist/assets/index-B-RDC4LU.js +395 -0
  222. package/app/dist/assets/index-B-RDC4LU.js.br +0 -0
  223. package/app/dist/assets/index-B-RDC4LU.js.gz +0 -0
  224. package/app/dist/assets/{inline-rename-editor-wjwfk7v2.js → inline-rename-editor-DUVacR_R.js} +1 -1
  225. package/app/dist/assets/inline-rename-editor-DUVacR_R.js.br +0 -0
  226. package/app/dist/assets/inline-rename-editor-DUVacR_R.js.gz +0 -0
  227. package/app/dist/assets/{launcherRow-rIW7Z6Xm.js → launcherRow-C9Htfook.js} +1 -1
  228. package/app/dist/assets/launcherRow-C9Htfook.js.br +0 -0
  229. package/app/dist/assets/launcherRow-C9Htfook.js.gz +0 -0
  230. package/app/dist/assets/{localhost-link-rewrite-description-Bovg3W--.js → localhost-link-rewrite-description-DfPXtfPs.js} +1 -1
  231. package/app/dist/assets/localhost-link-rewrite-description-DfPXtfPs.js.br +0 -0
  232. package/app/dist/assets/localhost-link-rewrite-description-DfPXtfPs.js.gz +0 -0
  233. package/app/dist/assets/{machine-provider-queries-CRlWTEz7.js → machine-provider-queries-By9Ipha4.js} +1 -1
  234. package/app/dist/assets/machine-provider-queries-By9Ipha4.js.br +0 -0
  235. package/app/dist/assets/machine-provider-queries-By9Ipha4.js.gz +0 -0
  236. package/app/dist/assets/{machine-server-access-D3hixOIC.js → machine-server-access-6584jQ7-.js} +1 -1
  237. package/app/dist/assets/{markdown-file-image-routing-DAIVjxLg.js → markdown-file-image-routing-0_tf5d6g.js} +1 -1
  238. package/app/dist/assets/{markdown-html-B-Kyh3zI.js → markdown-html-JK4Gnuli.js} +1 -1
  239. package/app/dist/assets/markdown-html-JK4Gnuli.js.br +0 -0
  240. package/app/dist/assets/markdown-html-JK4Gnuli.js.gz +0 -0
  241. package/app/dist/assets/{markdown-local-file-link-C89PR8d5.js → markdown-local-file-link-DXjnoCIE.js} +1 -1
  242. package/app/dist/assets/markdown-local-file-link-DXjnoCIE.js.br +0 -0
  243. package/app/dist/assets/markdown-local-file-link-DXjnoCIE.js.gz +0 -0
  244. package/app/dist/assets/{markdown-preview-B7BmqIlu.js → markdown-preview-Bfwf40CC.js} +2 -2
  245. package/app/dist/assets/markdown-preview-Bfwf40CC.js.br +0 -0
  246. package/app/dist/assets/markdown-preview-Bfwf40CC.js.gz +0 -0
  247. package/app/dist/assets/{markdown-prompt-mentions-B0JRhgrI.js → markdown-prompt-mentions-BuHEkhJs.js} +1 -1
  248. package/app/dist/assets/markdown-prompt-mentions-BuHEkhJs.js.br +0 -0
  249. package/app/dist/assets/markdown-prompt-mentions-BuHEkhJs.js.gz +0 -0
  250. package/app/dist/assets/{model-load-error-message-B-HKqgUD.js → model-load-error-message-CnA6byT0.js} +1 -1
  251. package/app/dist/assets/model-load-error-message-CnA6byT0.js.br +0 -0
  252. package/app/dist/assets/model-load-error-message-CnA6byT0.js.gz +0 -0
  253. package/app/dist/assets/onboarding-telemetry-D6SXoh98.js +1 -0
  254. package/app/dist/assets/{open-in-editor-button-CQGreiCk.js → open-in-editor-button-jScMiuob.js} +1 -1
  255. package/app/dist/assets/open-in-editor-button-jScMiuob.js.br +0 -0
  256. package/app/dist/assets/open-in-editor-button-jScMiuob.js.gz +0 -0
  257. package/app/dist/assets/{page-shell-BHTOdeQn.js → page-shell-ClYdhKtX.js} +1 -1
  258. package/app/dist/assets/page-shell-ClYdhKtX.js.br +0 -0
  259. package/app/dist/assets/page-shell-ClYdhKtX.js.gz +0 -0
  260. package/app/dist/assets/{pierre-worker-pool-Bm9cLA-c.js → pierre-worker-pool-D1nZ9Lcz.js} +1 -1
  261. package/app/dist/assets/pierre-worker-pool-D1nZ9Lcz.js.br +0 -0
  262. package/app/dist/assets/pierre-worker-pool-D1nZ9Lcz.js.gz +0 -0
  263. package/app/dist/assets/{plugin-detail-navigation-CmSGTNyL.js → plugin-detail-navigation-BD4jDXuP.js} +1 -1
  264. package/app/dist/assets/plugin-detail-navigation-BD4jDXuP.js.br +0 -0
  265. package/app/dist/assets/plugin-detail-navigation-BD4jDXuP.js.gz +0 -0
  266. package/app/dist/assets/{plugin-frontend-BdQdYbWd.js → plugin-frontend-qfGFykt-.js} +3 -3
  267. package/app/dist/assets/plugin-frontend-qfGFykt-.js.br +0 -0
  268. package/app/dist/assets/plugin-frontend-qfGFykt-.js.gz +0 -0
  269. package/app/dist/assets/{plugin-ui-DyNDyPD9.js → plugin-ui-DfbeKd73.js} +1 -1
  270. package/app/dist/assets/plugin-ui-DfbeKd73.js.br +0 -0
  271. package/app/dist/assets/plugin-ui-DfbeKd73.js.gz +0 -0
  272. package/app/dist/assets/{project-default-execution-options-query-h6eTG6_Q.js → project-default-execution-options-query-DQKDDkRo.js} +1 -1
  273. package/app/dist/assets/{queued-editor-typeahead-layout-BKui5z7C.js → queued-editor-typeahead-layout-DKGYsvQ-.js} +1 -1
  274. package/app/dist/assets/queued-editor-typeahead-layout-DKGYsvQ-.js.br +0 -0
  275. package/app/dist/assets/queued-editor-typeahead-layout-DKGYsvQ-.js.gz +0 -0
  276. package/app/dist/assets/{queued-messages-layout-BuEilXwP.js → queued-messages-layout-ClZkWHAV.js} +1 -1
  277. package/app/dist/assets/queued-messages-layout-ClZkWHAV.js.br +0 -0
  278. package/app/dist/assets/queued-messages-layout-ClZkWHAV.js.gz +0 -0
  279. package/app/dist/assets/{resource-list-B6MkAu8v.js → resource-list-CC7zN47b.js} +1 -1
  280. package/app/dist/assets/resource-list-CC7zN47b.js.br +0 -0
  281. package/app/dist/assets/resource-list-CC7zN47b.js.gz +0 -0
  282. package/app/dist/assets/root-compose-create-preference-z0-Xe1ss.js +1 -0
  283. package/app/dist/assets/{save-file-DYAtq7A9.js → save-file-Cs9LWQ4E.js} +1 -1
  284. package/app/dist/assets/{settings-nav-DbICcozy.js → settings-nav-BKMVpc5b.js} +1 -1
  285. package/app/dist/assets/settings-nav-BKMVpc5b.js.br +0 -0
  286. package/app/dist/assets/settings-nav-BKMVpc5b.js.gz +0 -0
  287. package/app/dist/assets/{settings-sections-Cq0VX9E8.js → settings-sections-LqqPm8q3.js} +1 -1
  288. package/app/dist/assets/settings-sections-LqqPm8q3.js.br +0 -0
  289. package/app/dist/assets/settings-sections-LqqPm8q3.js.gz +0 -0
  290. package/app/dist/assets/{shortcut-pill-DldxrKgx.js → shortcut-pill-DOMeVrnR.js} +1 -1
  291. package/app/dist/assets/{sidebarTouchSensor-D7jKXrfM.js → sidebarTouchSensor-PP8-SQld.js} +1 -1
  292. package/app/dist/assets/sidebarTouchSensor-PP8-SQld.js.br +0 -0
  293. package/app/dist/assets/sidebarTouchSensor-PP8-SQld.js.gz +0 -0
  294. package/app/dist/assets/{switch-CzvlSesf.js → switch-B9nrFpZc.js} +1 -1
  295. package/app/dist/assets/switch-B9nrFpZc.js.br +0 -0
  296. package/app/dist/assets/switch-B9nrFpZc.js.gz +0 -0
  297. package/app/dist/assets/{textarea-9yaIMD7J.js → textarea-2fJEsqsi.js} +1 -1
  298. package/app/dist/assets/{thread-event-parser-BqVpKC6z.js → thread-event-parser-DedSEtmp.js} +1 -1
  299. package/app/dist/assets/thread-event-parser-DedSEtmp.js.br +0 -0
  300. package/app/dist/assets/thread-event-parser-DedSEtmp.js.gz +0 -0
  301. package/app/dist/assets/{thread-panel-queries-C3MI4mdc.js → thread-panel-queries-5N40syTx.js} +1 -1
  302. package/app/dist/assets/thread-panel-queries-5N40syTx.js.br +0 -0
  303. package/app/dist/assets/thread-panel-queries-5N40syTx.js.gz +0 -0
  304. package/app/dist/assets/{thread-runtime-mutations-Cr1H7KSz.js → thread-runtime-mutations-BY5xzme0.js} +1 -1
  305. package/app/dist/assets/thread-runtime-mutations-BY5xzme0.js.br +0 -0
  306. package/app/dist/assets/thread-runtime-mutations-BY5xzme0.js.gz +0 -0
  307. package/app/dist/assets/{thread-terminal-queries-B4JkOWS2.js → thread-terminal-queries-BF7AB7qh.js} +1 -1
  308. package/app/dist/assets/thread-terminal-queries-BF7AB7qh.js.br +0 -0
  309. package/app/dist/assets/thread-terminal-queries-BF7AB7qh.js.gz +0 -0
  310. package/app/dist/assets/{threadRecentItems-DI2mgj7S.js → threadRecentItems-CYYbbS1r.js} +1 -1
  311. package/app/dist/assets/threadRecentItems-CYYbbS1r.js.br +0 -0
  312. package/app/dist/assets/threadRecentItems-CYYbbS1r.js.gz +0 -0
  313. package/app/dist/assets/{threadWorkspaceOpenPath-BQgtUYL5.js → threadWorkspaceOpenPath-B5anoH2-.js} +1 -1
  314. package/app/dist/assets/threadWorkspaceOpenPath-B5anoH2-.js.br +0 -0
  315. package/app/dist/assets/threadWorkspaceOpenPath-B5anoH2-.js.gz +0 -0
  316. package/app/dist/assets/{title-bar-scroll-fade-CxbgbTcm.js → title-bar-scroll-fade-BfqL4WEJ.js} +1 -1
  317. package/app/dist/assets/title-bar-scroll-fade-BfqL4WEJ.js.br +0 -0
  318. package/app/dist/assets/title-bar-scroll-fade-BfqL4WEJ.js.gz +0 -0
  319. package/app/dist/assets/{truncate-start-CaCnKnh9.js → truncate-start-D-P3rLti.js} +1 -1
  320. package/app/dist/assets/{use-hover-popover-CyIdak3c.js → use-hover-popover-Bb8PuVyu.js} +1 -1
  321. package/app/dist/assets/use-hover-popover-Bb8PuVyu.js.br +0 -0
  322. package/app/dist/assets/use-hover-popover-Bb8PuVyu.js.gz +0 -0
  323. package/app/dist/assets/{useElementWidth-CL3Nb-eq.js → useElementWidth-vSwGqg9a.js} +1 -1
  324. package/app/dist/assets/useElementWidth-vSwGqg9a.js.br +0 -0
  325. package/app/dist/assets/useElementWidth-vSwGqg9a.js.gz +0 -0
  326. package/app/dist/assets/{useLocalOpenTargets-yzd9-Ceh.js → useLocalOpenTargets-DqjYzi0b.js} +1 -1
  327. package/app/dist/assets/useLocalOpenTargets-DqjYzi0b.js.br +0 -0
  328. package/app/dist/assets/useLocalOpenTargets-DqjYzi0b.js.gz +0 -0
  329. package/app/dist/assets/{usePanelResizeSnap-dys9IwEk.js → usePanelResizeSnap-Dvi7sa3e.js} +1 -1
  330. package/app/dist/assets/usePanelResizeSnap-Dvi7sa3e.js.br +0 -0
  331. package/app/dist/assets/usePanelResizeSnap-Dvi7sa3e.js.gz +0 -0
  332. package/app/dist/assets/{usePanelTerminals-BN8UCJFO.js → usePanelTerminals-B9MNSur4.js} +1 -1
  333. package/app/dist/assets/usePanelTerminals-B9MNSur4.js.br +0 -0
  334. package/app/dist/assets/usePanelTerminals-B9MNSur4.js.gz +0 -0
  335. package/app/dist/assets/{usePathSuggestions-DkeFAE7l.js → usePathSuggestions-zhZ-4fh8.js} +1 -1
  336. package/app/dist/assets/usePathSuggestions-zhZ-4fh8.js.br +0 -0
  337. package/app/dist/assets/usePathSuggestions-zhZ-4fh8.js.gz +0 -0
  338. package/app/dist/assets/{useResolvedLiveFileTarget-43fAKgDx.js → useResolvedLiveFileTarget-CZZwqw4L.js} +1 -1
  339. package/app/dist/assets/useResolvedLiveFileTarget-CZZwqw4L.js.br +0 -0
  340. package/app/dist/assets/useResolvedLiveFileTarget-CZZwqw4L.js.gz +0 -0
  341. package/app/dist/assets/{useThreadTerminalController-DcWLbe8W.js → useThreadTerminalController-CvXy-5HP.js} +1 -1
  342. package/app/dist/assets/useThreadTerminalController-CvXy-5HP.js.br +0 -0
  343. package/app/dist/assets/useThreadTerminalController-CvXy-5HP.js.gz +0 -0
  344. package/app/dist/assets/{workspace-change-summary-Bd3p-LXz.js → workspace-change-summary-CY01JLmJ.js} +1 -1
  345. package/app/dist/assets/workspace-change-summary-CY01JLmJ.js.br +0 -0
  346. package/app/dist/assets/workspace-change-summary-CY01JLmJ.js.gz +0 -0
  347. package/app/dist/assets/{workspace-checkout-display-DMp28yCr.js → workspace-checkout-display-C9B0QPLi.js} +4 -4
  348. package/app/dist/assets/workspace-checkout-display-C9B0QPLi.js.br +0 -0
  349. package/app/dist/assets/workspace-checkout-display-C9B0QPLi.js.gz +0 -0
  350. package/app/dist/index.html +17 -17
  351. package/app/dist/index.html.br +0 -0
  352. package/app/dist/index.html.gz +0 -0
  353. package/dist/index.d.ts +35 -6
  354. package/dist/index.js +9 -5
  355. package/host-daemon/dist/bb +2 -2
  356. package/host-daemon/dist/bb-chunks/{browser-DVIVPPSL.js → browser-3RYUCU4H.js} +1 -1
  357. package/host-daemon/dist/bb-chunks/{chunk-ATDR5E2C.js → chunk-CZ4K4Z4T.js} +1 -1
  358. package/host-daemon/dist/bb-chunks/{chunk-ZWBRH7R6.js → chunk-DCRUVPRR.js} +1 -1
  359. package/host-daemon/dist/bb-chunks/{chunk-7EOZF4HA.js → chunk-F7XCHQA3.js} +1 -1
  360. package/host-daemon/dist/bb-chunks/{chunk-JWA6VJYL.js → chunk-FYCUA6H6.js} +1 -1
  361. package/host-daemon/dist/bb-chunks/{chunk-5ZMA4MIX.js → chunk-FZ76WJJG.js} +1 -1
  362. package/host-daemon/dist/bb-chunks/{chunk-UXSJP3YM.js → chunk-GVXLVAX4.js} +1 -1
  363. package/host-daemon/dist/bb-chunks/chunk-HDUE2YKX.js +2199 -0
  364. package/host-daemon/dist/bb-chunks/{chunk-REEBSQ75.js → chunk-L5UJ4QUD.js} +1 -1
  365. package/host-daemon/dist/bb-chunks/{chunk-QE47NRKX.js → chunk-NZY63D4X.js} +1 -1
  366. package/host-daemon/dist/bb-chunks/{chunk-MLYXPSJC.js → chunk-UCNQXYXP.js} +1 -1
  367. package/host-daemon/dist/bb-chunks/chunk-WMCZMPZ4.js +2 -0
  368. package/host-daemon/dist/bb-chunks/{client-YJBBA4JS.js → client-NLWJKXJ2.js} +1 -1
  369. package/host-daemon/dist/bb-chunks/{commander-errors-P6LP2OHL.js → commander-errors-GDOJDU37.js} +1 -1
  370. package/host-daemon/dist/bb-chunks/{context-env-LJ5IITUO.js → context-env-VLEFLYWD.js} +1 -1
  371. package/host-daemon/dist/bb-chunks/{context-hints-MUUUMT2P.js → context-hints-FXEXGMFT.js} +1 -1
  372. package/host-daemon/dist/bb-chunks/{diagnostics-5EMHJNW7.js → diagnostics-ZKJGPJUH.js} +1 -1
  373. package/host-daemon/dist/bb-chunks/{environment-ZRSQFVHG.js → environment-CY5JUFSR.js} +1 -1
  374. package/host-daemon/dist/bb-chunks/{file-AEVJYJAY.js → file-KGZLZ36T.js} +1 -1
  375. package/host-daemon/dist/bb-chunks/{guide-GLY5UY4M.js → guide-MXAVSGKZ.js} +1 -1
  376. package/host-daemon/dist/bb-chunks/{machine-Z5QSPWEE.js → machine-Y7XFS7EJ.js} +1 -1
  377. package/host-daemon/dist/bb-chunks/{marketplace-4CGZ3NTM.js → marketplace-QLPRDZTC.js} +1 -1
  378. package/host-daemon/dist/bb-chunks/{plugin-VO7RP4JU.js → plugin-K276UYTK.js} +1 -1
  379. package/host-daemon/dist/bb-chunks/{plugin-cli-proxy-6Y6TTP7A.js → plugin-cli-proxy-QE7C6YLF.js} +1 -1
  380. package/host-daemon/dist/bb-chunks/project-QD44GO6S.js +2 -0
  381. package/host-daemon/dist/bb-chunks/{prompt-history-ZNIBNYER.js → prompt-history-YGK557NG.js} +1 -1
  382. package/host-daemon/dist/bb-chunks/{provider-TJ4DGKBX.js → provider-FAAY2EKV.js} +1 -1
  383. package/host-daemon/dist/bb-chunks/{server-YMSYCILC.js → server-Y7FRWA4U.js} +1 -1
  384. package/host-daemon/dist/bb-chunks/{settings-5CKNFTFZ.js → settings-76RZ35GN.js} +1 -1
  385. package/host-daemon/dist/bb-chunks/{skill-BMQPIFAD.js → skill-HMSLPSPW.js} +1 -1
  386. package/host-daemon/dist/bb-chunks/{status-2DJ3O6QU.js → status-GJFZ5YDD.js} +1 -1
  387. package/host-daemon/dist/bb-chunks/{terminal-NWC5PO4A.js → terminal-LSZHPIET.js} +1 -1
  388. package/host-daemon/dist/bb-chunks/{theme-OEOGYFXJ.js → theme-BMV5THCU.js} +1 -1
  389. package/host-daemon/dist/bb-chunks/{thread-AI6SXNXK.js → thread-UZ44ZBA2.js} +1 -1
  390. package/host-daemon/dist/bb-chunks/thread-event-parser-SIFYMDOV.js +2 -0
  391. package/host-daemon/dist/bb-chunks/{updates-DFLJJDO4.js → updates-IDCLXRIV.js} +1 -1
  392. package/host-daemon/dist/bb-chunks/{voice-ZSACREC3.js → voice-EXZARJ2J.js} +1 -1
  393. package/host-daemon/dist/daemon-bundle.mjs +102 -102
  394. package/package.json +1 -1
  395. package/server/dist/builtin-plugins/orbit/dist/assets/orbit/revision +1 -1
  396. package/server/dist/builtin-plugins/orbit/dist/server.js +52 -52
  397. package/server/dist/drizzle/0147_project_permission_escalation.sql +1 -0
  398. package/server/dist/drizzle/meta/0147_snapshot.json +5295 -0
  399. package/server/dist/drizzle/meta/_journal.json +7 -0
  400. package/server/dist/start-server.js +26 -7
  401. package/app/dist/assets/AddMachineDialog-4BQFC118.js.br +0 -0
  402. package/app/dist/assets/AddMachineDialog-4BQFC118.js.gz +0 -0
  403. package/app/dist/assets/AppFileExternalNavigationDispatcher-fGD_vTns.js.br +0 -0
  404. package/app/dist/assets/AppFileExternalNavigationDispatcher-fGD_vTns.js.gz +0 -0
  405. package/app/dist/assets/BbDiff-BkqgAZD9.js.br +0 -0
  406. package/app/dist/assets/BbDiff-BkqgAZD9.js.gz +0 -0
  407. package/app/dist/assets/BbDiffSplit-DTvWaW-n.js.br +0 -0
  408. package/app/dist/assets/BbDiffSplit-DTvWaW-n.js.gz +0 -0
  409. package/app/dist/assets/BbSourceCode-Dqw4VrLu.js.br +0 -0
  410. package/app/dist/assets/BbSourceCode-Dqw4VrLu.js.gz +0 -0
  411. package/app/dist/assets/BrowserTabDeck-CuHEyZd6.js.br +0 -0
  412. package/app/dist/assets/BrowserTabDeck-CuHEyZd6.js.gz +0 -0
  413. package/app/dist/assets/CommandPaletteBody-DynxiDg6.js.br +0 -0
  414. package/app/dist/assets/CommandPaletteBody-DynxiDg6.js.gz +0 -0
  415. package/app/dist/assets/DiffHost-3UTZIJNs.js.br +0 -0
  416. package/app/dist/assets/DiffHost-3UTZIJNs.js.gz +0 -0
  417. package/app/dist/assets/ExperimentalFileLinkMenu-C0RXVabs.js.br +0 -0
  418. package/app/dist/assets/ExperimentalFileLinkMenu-C0RXVabs.js.gz +0 -0
  419. package/app/dist/assets/FilePreview-BxgJ2jjI.js.br +0 -0
  420. package/app/dist/assets/FilePreview-BxgJ2jjI.js.gz +0 -0
  421. package/app/dist/assets/GitDiffCardHeader-Ce736y-m.js.br +0 -0
  422. package/app/dist/assets/GitDiffCardHeader-Ce736y-m.js.gz +0 -0
  423. package/app/dist/assets/InlineMessageEditorFrame-Dud8h1It.js.br +0 -0
  424. package/app/dist/assets/InlineMessageEditorFrame-Dud8h1It.js.gz +0 -0
  425. package/app/dist/assets/MachineRenameDialog-C_ZV5gEB.js.br +0 -0
  426. package/app/dist/assets/MachineRenameDialog-C_ZV5gEB.js.gz +0 -0
  427. package/app/dist/assets/MachineSettingsView-BWSIpenw.js.br +0 -0
  428. package/app/dist/assets/MachineSettingsView-BWSIpenw.js.gz +0 -0
  429. package/app/dist/assets/MicrophonePreferences-CNEhQgAS.js.br +0 -0
  430. package/app/dist/assets/MicrophonePreferences-CNEhQgAS.js.gz +0 -0
  431. package/app/dist/assets/ModelReasoningMenu-BeNCpeQf.js.br +0 -0
  432. package/app/dist/assets/ModelReasoningMenu-BeNCpeQf.js.gz +0 -0
  433. package/app/dist/assets/NewTabPage-CsPDV6iC.js.br +0 -0
  434. package/app/dist/assets/NewTabPage-CsPDV6iC.js.gz +0 -0
  435. package/app/dist/assets/NewThreadComposer-BY0jUSbs.js.br +0 -0
  436. package/app/dist/assets/NewThreadComposer-BY0jUSbs.js.gz +0 -0
  437. package/app/dist/assets/OnboardingFlow-BQdrTtHC.js.br +0 -0
  438. package/app/dist/assets/OnboardingFlow-BQdrTtHC.js.gz +0 -0
  439. package/app/dist/assets/OptionPicker-sql35hd_.js.br +0 -0
  440. package/app/dist/assets/OptionPicker-sql35hd_.js.gz +0 -0
  441. package/app/dist/assets/PaletteShell-B9KeWKsT.js.br +0 -0
  442. package/app/dist/assets/PaletteShell-B9KeWKsT.js.gz +0 -0
  443. package/app/dist/assets/PaneMaximizeButton-CGBzyikf.js.br +0 -0
  444. package/app/dist/assets/PaneMaximizeButton-CGBzyikf.js.gz +0 -0
  445. package/app/dist/assets/PierreLineSelectionActions-BYL6I0xE.js.br +0 -0
  446. package/app/dist/assets/PierreLineSelectionActions-BYL6I0xE.js.gz +0 -0
  447. package/app/dist/assets/PluginPanelRightPanelHost-Dj-wS_Ki.js.br +0 -0
  448. package/app/dist/assets/PluginPanelRightPanelHost-Dj-wS_Ki.js.gz +0 -0
  449. package/app/dist/assets/PluginThreadChat-Dh-No9s-.js.br +0 -0
  450. package/app/dist/assets/PluginThreadChat-Dh-No9s-.js.gz +0 -0
  451. package/app/dist/assets/ProjectDetailSettingsView-BOV7URzQ.js +0 -1
  452. package/app/dist/assets/ProjectDetailSettingsView-BOV7URzQ.js.br +0 -0
  453. package/app/dist/assets/ProjectDetailSettingsView-BOV7URzQ.js.gz +0 -0
  454. package/app/dist/assets/ProjectMachineSetupDialog-BW4gUYj0.js.br +0 -0
  455. package/app/dist/assets/ProjectMachineSetupDialog-BW4gUYj0.js.gz +0 -0
  456. package/app/dist/assets/ProjectsSettingsSection-BI_xhcA2.js.br +0 -0
  457. package/app/dist/assets/ProjectsSettingsSection-BI_xhcA2.js.gz +0 -0
  458. package/app/dist/assets/QueuedMessagesList-BEyivVSE.js.br +0 -0
  459. package/app/dist/assets/QueuedMessagesList-BEyivVSE.js.gz +0 -0
  460. package/app/dist/assets/RemotePathBrowser-DVW5AwBs.js.br +0 -0
  461. package/app/dist/assets/RemotePathBrowser-DVW5AwBs.js.gz +0 -0
  462. package/app/dist/assets/RootComposeView-Cbnwq7j_.js.br +0 -0
  463. package/app/dist/assets/RootComposeView-Cbnwq7j_.js.gz +0 -0
  464. package/app/dist/assets/SecondaryPanelLayout-fG8BuYv-.js.br +0 -0
  465. package/app/dist/assets/SecondaryPanelLayout-fG8BuYv-.js.gz +0 -0
  466. package/app/dist/assets/ServerMoveOverlayView-CPWZimVv.js.br +0 -0
  467. package/app/dist/assets/ServerMoveOverlayView-CPWZimVv.js.gz +0 -0
  468. package/app/dist/assets/SettingsSidebar-DxfoXXKW.js.br +0 -0
  469. package/app/dist/assets/SettingsSidebar-DxfoXXKW.js.gz +0 -0
  470. package/app/dist/assets/SettingsView-D_DkKpuv.js.br +0 -0
  471. package/app/dist/assets/SettingsView-D_DkKpuv.js.gz +0 -0
  472. package/app/dist/assets/SidebarFooterCustomize-VQoenr5y.js.br +0 -0
  473. package/app/dist/assets/SidebarFooterCustomize-VQoenr5y.js.gz +0 -0
  474. package/app/dist/assets/SidebarVisibilityCustomize-DUKnlz9Y.js.br +0 -0
  475. package/app/dist/assets/SidebarVisibilityCustomize-DUKnlz9Y.js.gz +0 -0
  476. package/app/dist/assets/SourceCodeHost-BlXLvWv2.js.br +0 -0
  477. package/app/dist/assets/SourceCodeHost-BlXLvWv2.js.gz +0 -0
  478. package/app/dist/assets/SplitWorkspaceRoute-6w4G23kc.js.br +0 -0
  479. package/app/dist/assets/SplitWorkspaceRoute-6w4G23kc.js.gz +0 -0
  480. package/app/dist/assets/TerminalOutputBlock-BxBSWJr_.js.br +0 -0
  481. package/app/dist/assets/TerminalOutputBlock-BxBSWJr_.js.gz +0 -0
  482. package/app/dist/assets/ThreadActionsMenu-ChpSKv80.js.br +0 -0
  483. package/app/dist/assets/ThreadActionsMenu-ChpSKv80.js.gz +0 -0
  484. package/app/dist/assets/ThreadDetailView-CfH3uWo-.js.br +0 -0
  485. package/app/dist/assets/ThreadDetailView-CfH3uWo-.js.gz +0 -0
  486. package/app/dist/assets/ThreadSearchPaletteMode-B72v3f5V.js.br +0 -0
  487. package/app/dist/assets/ThreadSearchPaletteMode-B72v3f5V.js.gz +0 -0
  488. package/app/dist/assets/ThreadSecondaryPanel-4nIZy4h9.js.br +0 -0
  489. package/app/dist/assets/ThreadSecondaryPanel-4nIZy4h9.js.gz +0 -0
  490. package/app/dist/assets/ThreadSecondaryPanelTabContent-8-e35_Me.js.br +0 -0
  491. package/app/dist/assets/ThreadSecondaryPanelTabContent-8-e35_Me.js.gz +0 -0
  492. package/app/dist/assets/ThreadStatusGlyph-C9tzRtlV.js.br +0 -0
  493. package/app/dist/assets/ThreadStatusGlyph-C9tzRtlV.js.gz +0 -0
  494. package/app/dist/assets/ThreadTerminalPanel-CqTk9L2y.js.br +0 -0
  495. package/app/dist/assets/ThreadTerminalPanel-CqTk9L2y.js.gz +0 -0
  496. package/app/dist/assets/ThreadTerminalView-B6XNBrJ9.js.br +0 -0
  497. package/app/dist/assets/ThreadTerminalView-B6XNBrJ9.js.gz +0 -0
  498. package/app/dist/assets/ThreadTimelineNavigationContext-DbZHHZfY.js.br +0 -0
  499. package/app/dist/assets/ThreadTimelineNavigationContext-DbZHHZfY.js.gz +0 -0
  500. package/app/dist/assets/TimelineDetailScroll-CpFZhWhU.js.br +0 -0
  501. package/app/dist/assets/TimelineDetailScroll-CpFZhWhU.js.gz +0 -0
  502. package/app/dist/assets/TimelineFileDiffBlock-JiOlR3O8.js.br +0 -0
  503. package/app/dist/assets/TimelineFileDiffBlock-JiOlR3O8.js.gz +0 -0
  504. package/app/dist/assets/TimelineSelectionMenu-DT4qwoFI.js.br +0 -0
  505. package/app/dist/assets/TimelineSelectionMenu-DT4qwoFI.js.gz +0 -0
  506. package/app/dist/assets/ToolsView-nAAic88Z.js.br +0 -0
  507. package/app/dist/assets/ToolsView-nAAic88Z.js.gz +0 -0
  508. package/app/dist/assets/ToolsViewSplits-Blo3GJMQ.js.br +0 -0
  509. package/app/dist/assets/ToolsViewSplits-Blo3GJMQ.js.gz +0 -0
  510. package/app/dist/assets/WaveformVisualizer-BrH_nwc4.js.br +0 -0
  511. package/app/dist/assets/WaveformVisualizer-BrH_nwc4.js.gz +0 -0
  512. package/app/dist/assets/app-fixed-tab-navigation-DX9s-gCj.js.br +0 -0
  513. package/app/dist/assets/app-fixed-tab-navigation-DX9s-gCj.js.gz +0 -0
  514. package/app/dist/assets/audio-input-device-preference-DsU6GGNE.js.br +0 -0
  515. package/app/dist/assets/audio-input-device-preference-DsU6GGNE.js.gz +0 -0
  516. package/app/dist/assets/bottom-anchored-scroll-body-C8n22V_o.js.br +0 -0
  517. package/app/dist/assets/bottom-anchored-scroll-body-C8n22V_o.js.gz +0 -0
  518. package/app/dist/assets/browser-url-B0SjaYti.js.br +0 -0
  519. package/app/dist/assets/browser-url-B0SjaYti.js.gz +0 -0
  520. package/app/dist/assets/checkbox-Ct38DhHB.js.br +0 -0
  521. package/app/dist/assets/checkbox-Ct38DhHB.js.gz +0 -0
  522. package/app/dist/assets/code-loading-skeletons-C_099GEq.js.br +0 -5
  523. package/app/dist/assets/code-loading-skeletons-C_099GEq.js.gz +0 -0
  524. package/app/dist/assets/detail-card-Cj628JNK.js.br +0 -0
  525. package/app/dist/assets/detail-card-Cj628JNK.js.gz +0 -0
  526. package/app/dist/assets/diff-stats-tally-MtORWItG.js.br +0 -0
  527. package/app/dist/assets/diff-stats-tally-MtORWItG.js.gz +0 -0
  528. package/app/dist/assets/environment-mutations-rP4eROm2.js.br +0 -0
  529. package/app/dist/assets/environment-mutations-rP4eROm2.js.gz +0 -0
  530. package/app/dist/assets/environment-workspace-display-O1JRHfbV.js.br +0 -0
  531. package/app/dist/assets/environment-workspace-display-O1JRHfbV.js.gz +0 -0
  532. package/app/dist/assets/event-code-block-DqUZCAii.js.br +0 -0
  533. package/app/dist/assets/event-code-block-DqUZCAii.js.gz +0 -0
  534. package/app/dist/assets/expandable-text-herJC70e.js.br +0 -0
  535. package/app/dist/assets/expandable-text-herJC70e.js.gz +0 -0
  536. package/app/dist/assets/file-path-link-Cni9Azi2.js.br +0 -0
  537. package/app/dist/assets/file-path-link-Cni9Azi2.js.gz +0 -0
  538. package/app/dist/assets/host-mutations-Ckc-eVys.js.br +0 -0
  539. package/app/dist/assets/host-mutations-Ckc-eVys.js.gz +0 -0
  540. package/app/dist/assets/icon-extended-DDFkslJU.js.br +0 -0
  541. package/app/dist/assets/icon-extended-DDFkslJU.js.gz +0 -0
  542. package/app/dist/assets/image-lightbox-BW1bqQJM.js.br +0 -0
  543. package/app/dist/assets/image-lightbox-BW1bqQJM.js.gz +0 -0
  544. package/app/dist/assets/index-BBxUiLNy.js +0 -395
  545. package/app/dist/assets/index-BBxUiLNy.js.br +0 -0
  546. package/app/dist/assets/index-BBxUiLNy.js.gz +0 -0
  547. package/app/dist/assets/inline-rename-editor-wjwfk7v2.js.br +0 -0
  548. package/app/dist/assets/inline-rename-editor-wjwfk7v2.js.gz +0 -0
  549. package/app/dist/assets/launcherRow-rIW7Z6Xm.js.br +0 -0
  550. package/app/dist/assets/launcherRow-rIW7Z6Xm.js.gz +0 -0
  551. package/app/dist/assets/localhost-link-rewrite-description-Bovg3W--.js.br +0 -0
  552. package/app/dist/assets/localhost-link-rewrite-description-Bovg3W--.js.gz +0 -0
  553. package/app/dist/assets/machine-provider-queries-CRlWTEz7.js.br +0 -0
  554. package/app/dist/assets/machine-provider-queries-CRlWTEz7.js.gz +0 -0
  555. package/app/dist/assets/markdown-html-B-Kyh3zI.js.br +0 -0
  556. package/app/dist/assets/markdown-html-B-Kyh3zI.js.gz +0 -0
  557. package/app/dist/assets/markdown-local-file-link-C89PR8d5.js.br +0 -0
  558. package/app/dist/assets/markdown-local-file-link-C89PR8d5.js.gz +0 -0
  559. package/app/dist/assets/markdown-preview-B7BmqIlu.js.br +0 -0
  560. package/app/dist/assets/markdown-preview-B7BmqIlu.js.gz +0 -0
  561. package/app/dist/assets/markdown-prompt-mentions-B0JRhgrI.js.br +0 -0
  562. package/app/dist/assets/markdown-prompt-mentions-B0JRhgrI.js.gz +0 -0
  563. package/app/dist/assets/model-load-error-message-B-HKqgUD.js.br +0 -0
  564. package/app/dist/assets/model-load-error-message-B-HKqgUD.js.gz +0 -0
  565. package/app/dist/assets/onboarding-telemetry-C21cbjI_.js +0 -1
  566. package/app/dist/assets/open-in-editor-button-CQGreiCk.js.br +0 -0
  567. package/app/dist/assets/open-in-editor-button-CQGreiCk.js.gz +0 -0
  568. package/app/dist/assets/page-shell-BHTOdeQn.js.br +0 -0
  569. package/app/dist/assets/page-shell-BHTOdeQn.js.gz +0 -0
  570. package/app/dist/assets/pierre-worker-pool-Bm9cLA-c.js.br +0 -0
  571. package/app/dist/assets/pierre-worker-pool-Bm9cLA-c.js.gz +0 -0
  572. package/app/dist/assets/plugin-detail-navigation-CmSGTNyL.js.br +0 -0
  573. package/app/dist/assets/plugin-detail-navigation-CmSGTNyL.js.gz +0 -0
  574. package/app/dist/assets/plugin-frontend-BdQdYbWd.js.br +0 -0
  575. package/app/dist/assets/plugin-frontend-BdQdYbWd.js.gz +0 -0
  576. package/app/dist/assets/plugin-ui-DyNDyPD9.js.br +0 -0
  577. package/app/dist/assets/plugin-ui-DyNDyPD9.js.gz +0 -0
  578. package/app/dist/assets/queued-editor-typeahead-layout-BKui5z7C.js.br +0 -0
  579. package/app/dist/assets/queued-editor-typeahead-layout-BKui5z7C.js.gz +0 -0
  580. package/app/dist/assets/queued-messages-layout-BuEilXwP.js.br +0 -0
  581. package/app/dist/assets/queued-messages-layout-BuEilXwP.js.gz +0 -0
  582. package/app/dist/assets/resource-list-B6MkAu8v.js.br +0 -0
  583. package/app/dist/assets/resource-list-B6MkAu8v.js.gz +0 -0
  584. package/app/dist/assets/root-compose-create-preference-DDv947dq.js +0 -1
  585. package/app/dist/assets/settings-nav-DbICcozy.js.br +0 -0
  586. package/app/dist/assets/settings-nav-DbICcozy.js.gz +0 -0
  587. package/app/dist/assets/settings-sections-Cq0VX9E8.js.br +0 -0
  588. package/app/dist/assets/settings-sections-Cq0VX9E8.js.gz +0 -0
  589. package/app/dist/assets/sidebarTouchSensor-D7jKXrfM.js.br +0 -0
  590. package/app/dist/assets/sidebarTouchSensor-D7jKXrfM.js.gz +0 -0
  591. package/app/dist/assets/switch-CzvlSesf.js.br +0 -0
  592. package/app/dist/assets/switch-CzvlSesf.js.gz +0 -0
  593. package/app/dist/assets/thread-event-parser-BqVpKC6z.js.br +0 -0
  594. package/app/dist/assets/thread-event-parser-BqVpKC6z.js.gz +0 -0
  595. package/app/dist/assets/thread-panel-queries-C3MI4mdc.js.br +0 -0
  596. package/app/dist/assets/thread-panel-queries-C3MI4mdc.js.gz +0 -0
  597. package/app/dist/assets/thread-runtime-mutations-Cr1H7KSz.js.br +0 -0
  598. package/app/dist/assets/thread-runtime-mutations-Cr1H7KSz.js.gz +0 -0
  599. package/app/dist/assets/thread-terminal-queries-B4JkOWS2.js.br +0 -0
  600. package/app/dist/assets/thread-terminal-queries-B4JkOWS2.js.gz +0 -0
  601. package/app/dist/assets/threadRecentItems-DI2mgj7S.js.br +0 -0
  602. package/app/dist/assets/threadRecentItems-DI2mgj7S.js.gz +0 -0
  603. package/app/dist/assets/threadWorkspaceOpenPath-BQgtUYL5.js.br +0 -0
  604. package/app/dist/assets/threadWorkspaceOpenPath-BQgtUYL5.js.gz +0 -0
  605. package/app/dist/assets/title-bar-scroll-fade-CxbgbTcm.js.br +0 -0
  606. package/app/dist/assets/title-bar-scroll-fade-CxbgbTcm.js.gz +0 -0
  607. package/app/dist/assets/use-hover-popover-CyIdak3c.js.br +0 -0
  608. package/app/dist/assets/use-hover-popover-CyIdak3c.js.gz +0 -0
  609. package/app/dist/assets/useElementWidth-CL3Nb-eq.js.br +0 -0
  610. package/app/dist/assets/useElementWidth-CL3Nb-eq.js.gz +0 -0
  611. package/app/dist/assets/useLocalOpenTargets-yzd9-Ceh.js.br +0 -0
  612. package/app/dist/assets/useLocalOpenTargets-yzd9-Ceh.js.gz +0 -0
  613. package/app/dist/assets/usePanelResizeSnap-dys9IwEk.js.br +0 -0
  614. package/app/dist/assets/usePanelResizeSnap-dys9IwEk.js.gz +0 -0
  615. package/app/dist/assets/usePanelTerminals-BN8UCJFO.js.br +0 -0
  616. package/app/dist/assets/usePanelTerminals-BN8UCJFO.js.gz +0 -0
  617. package/app/dist/assets/usePathSuggestions-DkeFAE7l.js.br +0 -0
  618. package/app/dist/assets/usePathSuggestions-DkeFAE7l.js.gz +0 -0
  619. package/app/dist/assets/useResolvedLiveFileTarget-43fAKgDx.js.br +0 -0
  620. package/app/dist/assets/useResolvedLiveFileTarget-43fAKgDx.js.gz +0 -0
  621. package/app/dist/assets/useThreadTerminalController-DcWLbe8W.js.br +0 -0
  622. package/app/dist/assets/useThreadTerminalController-DcWLbe8W.js.gz +0 -0
  623. package/app/dist/assets/workspace-change-summary-Bd3p-LXz.js.br +0 -0
  624. package/app/dist/assets/workspace-change-summary-Bd3p-LXz.js.gz +0 -0
  625. package/app/dist/assets/workspace-checkout-display-DMp28yCr.js.br +0 -0
  626. package/app/dist/assets/workspace-checkout-display-DMp28yCr.js.gz +0 -0
  627. package/host-daemon/dist/bb-chunks/chunk-CLMP7PJ2.js +0 -2
  628. package/host-daemon/dist/bb-chunks/chunk-SDZLOCRA.js +0 -2186
  629. package/host-daemon/dist/bb-chunks/project-J3U36Y4U.js +0 -2
  630. package/host-daemon/dist/bb-chunks/thread-event-parser-VC3WTCLZ.js +0 -2
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __createRequire } from "node:module";import { dirname as __pathDirname } from "node:path";import { fileURLToPath as __fileURLToPath } from "node:url";const require = __createRequire(import.meta.url);const __filename = __fileURLToPath(import.meta.url);const __dirname = __pathDirname(__filename);
2
- import{g as li}from"./chunk-UXSJP3YM.js";import{a as Lt,b as ai}from"./chunk-ZXUCBQR7.js";import{b as Le}from"./chunk-XSBF3HQR.js";import{a as G,i as si,j as R}from"./chunk-ZWBRH7R6.js";import{c as ti,d as Oe}from"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{a as ri,b as j}from"./chunk-7EOZF4HA.js";import{P as _e,ba as Ot,j as ni,u as W}from"./chunk-SDZLOCRA.js";import{b as _t}from"./chunk-QE47NRKX.js";import"./chunk-5ZMA4MIX.js";import"./chunk-ZT24MY2V.js";import"./chunk-REEBSQ75.js";import{e as ii,f as oi}from"./chunk-E7J2DJY7.js";import{a as A}from"./chunk-7LJFYNRQ.js";import{b as _,d as Qt}from"./chunk-5PWLIQO6.js";var Fe=_((Md,Ai)=>{"use strict";var gs=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};Ai.exports=gs});var nt=_((Ud,fi)=>{"use strict";var ms="2.0.0",As=Number.MAX_SAFE_INTEGER||9007199254740991,fs=16,hs=250,Es=["major","premajor","minor","preminor","patch","prepatch","prerelease"];fi.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:fs,MAX_SAFE_BUILD_LENGTH:hs,MAX_SAFE_INTEGER:As,RELEASE_TYPES:Es,SEMVER_SPEC_VERSION:ms,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var it=_((se,hi)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Ut,MAX_SAFE_BUILD_LENGTH:bs,MAX_LENGTH:Cs}=nt(),ws=Fe();se=hi.exports={};var vs=se.re=[],ys=se.safeRe=[],g=se.src=[],Is=se.safeSrc=[],m=se.t={},xs=0,jt="[a-zA-Z0-9-]",Rs=[["\\s",1],["\\d",Cs],[jt,bs]],Ss=t=>{for(let[e,n]of Rs)t=t.split(`${e}*`).join(`${e}{0,${n}}`).split(`${e}+`).join(`${e}{1,${n}}`);return t},C=(t,e,n)=>{let i=Ss(e),o=xs++;ws(t,o,e),m[t]=o,g[o]=e,Is[o]=i,vs[o]=new RegExp(e,n?"g":void 0),ys[o]=new RegExp(i,n?"g":void 0)};C("NUMERICIDENTIFIER","0|[1-9]\\d*");C("NUMERICIDENTIFIERLOOSE","\\d+");C("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${jt}*`);C("MAINVERSION",`(${g[m.NUMERICIDENTIFIER]})\\.(${g[m.NUMERICIDENTIFIER]})\\.(${g[m.NUMERICIDENTIFIER]})`);C("MAINVERSIONLOOSE",`(${g[m.NUMERICIDENTIFIERLOOSE]})\\.(${g[m.NUMERICIDENTIFIERLOOSE]})\\.(${g[m.NUMERICIDENTIFIERLOOSE]})`);C("PRERELEASEIDENTIFIER",`(?:${g[m.NONNUMERICIDENTIFIER]}|${g[m.NUMERICIDENTIFIER]})`);C("PRERELEASEIDENTIFIERLOOSE",`(?:${g[m.NONNUMERICIDENTIFIER]}|${g[m.NUMERICIDENTIFIERLOOSE]})`);C("PRERELEASE",`(?:-(${g[m.PRERELEASEIDENTIFIER]}(?:\\.${g[m.PRERELEASEIDENTIFIER]})*))`);C("PRERELEASELOOSE",`(?:-?(${g[m.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${g[m.PRERELEASEIDENTIFIERLOOSE]})*))`);C("BUILDIDENTIFIER",`${jt}+`);C("BUILD",`(?:\\+(${g[m.BUILDIDENTIFIER]}(?:\\.${g[m.BUILDIDENTIFIER]})*))`);C("FULLPLAIN",`v?${g[m.MAINVERSION]}${g[m.PRERELEASE]}?${g[m.BUILD]}?`);C("FULL",`^${g[m.FULLPLAIN]}$`);C("LOOSEPLAIN",`[v=\\s]*${g[m.MAINVERSIONLOOSE]}${g[m.PRERELEASELOOSE]}?${g[m.BUILD]}?`);C("LOOSE",`^${g[m.LOOSEPLAIN]}$`);C("GTLT","((?:<|>)?=?)");C("XRANGEIDENTIFIERLOOSE",`${g[m.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);C("XRANGEIDENTIFIER",`${g[m.NUMERICIDENTIFIER]}|x|X|\\*`);C("XRANGEPLAIN",`[v=\\s]*(${g[m.XRANGEIDENTIFIER]})(?:\\.(${g[m.XRANGEIDENTIFIER]})(?:\\.(${g[m.XRANGEIDENTIFIER]})(?:${g[m.PRERELEASE]})?${g[m.BUILD]}?)?)?`);C("XRANGEPLAINLOOSE",`[v=\\s]*(${g[m.XRANGEIDENTIFIERLOOSE]})(?:\\.(${g[m.XRANGEIDENTIFIERLOOSE]})(?:\\.(${g[m.XRANGEIDENTIFIERLOOSE]})(?:${g[m.PRERELEASELOOSE]})?${g[m.BUILD]}?)?)?`);C("XRANGE",`^${g[m.GTLT]}\\s*${g[m.XRANGEPLAIN]}$`);C("XRANGELOOSE",`^${g[m.GTLT]}\\s*${g[m.XRANGEPLAINLOOSE]}$`);C("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Ut}})(?:\\.(\\d{1,${Ut}}))?(?:\\.(\\d{1,${Ut}}))?`);C("COERCE",`${g[m.COERCEPLAIN]}(?:$|[^\\d])`);C("COERCEFULL",g[m.COERCEPLAIN]+`(?:${g[m.PRERELEASE]})?(?:${g[m.BUILD]})?(?:$|[^\\d])`);C("COERCERTL",g[m.COERCE],!0);C("COERCERTLFULL",g[m.COERCEFULL],!0);C("LONETILDE","(?:~>?)");C("TILDETRIM",`(\\s*)${g[m.LONETILDE]}\\s+`,!0);se.tildeTrimReplace="$1~";C("TILDE",`^${g[m.LONETILDE]}${g[m.XRANGEPLAIN]}$`);C("TILDELOOSE",`^${g[m.LONETILDE]}${g[m.XRANGEPLAINLOOSE]}$`);C("LONECARET","(?:\\^)");C("CARETTRIM",`(\\s*)${g[m.LONECARET]}\\s+`,!0);se.caretTrimReplace="$1^";C("CARET",`^${g[m.LONECARET]}${g[m.XRANGEPLAIN]}$`);C("CARETLOOSE",`^${g[m.LONECARET]}${g[m.XRANGEPLAINLOOSE]}$`);C("COMPARATORLOOSE",`^${g[m.GTLT]}\\s*(${g[m.LOOSEPLAIN]})$|^$`);C("COMPARATOR",`^${g[m.GTLT]}\\s*(${g[m.FULLPLAIN]})$|^$`);C("COMPARATORTRIM",`(\\s*)${g[m.GTLT]}\\s*(${g[m.LOOSEPLAIN]}|${g[m.XRANGEPLAIN]})`,!0);se.comparatorTrimReplace="$1$2$3";C("HYPHENRANGE",`^\\s*(${g[m.XRANGEPLAIN]})\\s+-\\s+(${g[m.XRANGEPLAIN]})\\s*$`);C("HYPHENRANGELOOSE",`^\\s*(${g[m.XRANGEPLAINLOOSE]})\\s+-\\s+(${g[m.XRANGEPLAINLOOSE]})\\s*$`);C("STAR","(<|>)?=?\\s*\\*");C("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");C("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var ot=_((jd,Ei)=>{"use strict";var Ds=Object.freeze({loose:!0}),Bs=Object.freeze({}),Ns=t=>t?typeof t!="object"?Ds:t:Bs;Ei.exports=Ns});var vi=_((Kd,wi)=>{"use strict";var bi=/^[0-9]+$/,Ci=(t,e)=>{if(typeof t=="number"&&typeof e=="number")return t===e?0:t<e?-1:1;let n=bi.test(t),i=bi.test(e);return n&&i&&(t=+t,e=+e),t===e?0:n&&!i?-1:i&&!n?1:t<e?-1:1},Ts=(t,e)=>Ci(e,t);wi.exports={compareIdentifiers:Ci,rcompareIdentifiers:Ts}});var Me=_((Hd,Ii)=>{"use strict";var rt=Fe(),{MAX_LENGTH:yi,MAX_SAFE_INTEGER:st}=nt(),{safeRe:at,t:lt}=it(),Ps=ot(),{compareIdentifiers:Kt}=vi(),ks=(t,e)=>{let n=e.split(".");if(n.length>t.length)return!1;for(let i=0;i<n.length;i++)if(Kt(t[i],n[i])!==0)return!1;return!0},Ht=class t{constructor(e,n){if(n=Ps(n),e instanceof t){if(e.loose===!!n.loose&&e.includePrerelease===!!n.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>yi)throw new TypeError(`version is longer than ${yi} characters`);rt("SemVer",e,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let i=e.trim().match(n.loose?at[lt.LOOSE]:at[lt.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>st||this.major<0)throw new TypeError("Invalid major version");if(this.minor>st||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>st||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){let r=+o;if(r>=0&&r<st)return r}return o}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(rt("SemVer.compare",this.version,this.options,e),!(e instanceof t)){if(typeof e=="string"&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof t||(e=new t(e,this.options)),this.major<e.major?-1:this.major>e.major?1:this.minor<e.minor?-1:this.minor>e.minor?1:this.patch<e.patch?-1:this.patch>e.patch?1:0}comparePre(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let n=0;do{let i=this.prerelease[n],o=e.prerelease[n];if(rt("prerelease compare",n,i,o),i===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(i===void 0)return-1;if(i===o)continue;return Kt(i,o)}while(++n)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let n=0;do{let i=this.build[n],o=e.build[n];if(rt("build compare",n,i,o),i===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(i===void 0)return-1;if(i===o)continue;return Kt(i,o)}while(++n)}inc(e,n,i){if(e.startsWith("pre")){if(!n&&i===!1)throw new Error("invalid increment argument: identifier is empty");if(n){let o=`-${n}`.match(this.options.loose?at[lt.PRERELEASELOOSE]:at[lt.PRERELEASE]);if(!o||o[1]!==n)throw new Error(`invalid identifier: ${n}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",n,i);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",n,i);break;case"prepatch":this.prerelease.length=0,this.inc("patch",n,i),this.inc("pre",n,i);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",n,i),this.inc("pre",n,i);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let o=Number(i)?1:0;if(this.prerelease.length===0)this.prerelease=[o];else{let r=this.prerelease.length;for(;--r>=0;)typeof this.prerelease[r]=="number"&&(this.prerelease[r]++,r=-2);if(r===-1){if(n===this.prerelease.join(".")&&i===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(n){let r=[n,o];if(i===!1&&(r=[n]),ks(this.prerelease,n)){let s=this.prerelease[n.split(".").length];isNaN(s)&&(this.prerelease=r)}else this.prerelease=r}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Ii.exports=Ht});var Ae=_((Gd,Ri)=>{"use strict";var xi=Me(),Qs=(t,e,n)=>new xi(t,n).compare(new xi(e,n));Ri.exports=Qs});var Di=_((qd,Si)=>{"use strict";var Gt=class{constructor(){this.max=1e3,this.map=new Map}get(e){let n=this.map.get(e);if(n!==void 0)return this.map.delete(e),this.map.set(e,n),n}delete(e){return this.map.delete(e)}set(e,n){if(!this.delete(e)&&n!==void 0){if(this.map.size>=this.max){let o=this.map.keys().next().value;this.delete(o)}this.map.set(e,n)}return this}};Si.exports=Gt});var Ni=_((Jd,Bi)=>{"use strict";var _s=Ae(),Os=(t,e,n)=>_s(t,e,n)===0;Bi.exports=Os});var Pi=_((Vd,Ti)=>{"use strict";var Ls=Ae(),$s=(t,e,n)=>Ls(t,e,n)!==0;Ti.exports=$s});var qt=_((Wd,ki)=>{"use strict";var Fs=Ae(),Ms=(t,e,n)=>Fs(t,e,n)>0;ki.exports=Ms});var _i=_((Yd,Qi)=>{"use strict";var Us=Ae(),js=(t,e,n)=>Us(t,e,n)>=0;Qi.exports=js});var Li=_((Xd,Oi)=>{"use strict";var Ks=Ae(),Hs=(t,e,n)=>Ks(t,e,n)<0;Oi.exports=Hs});var Fi=_((zd,$i)=>{"use strict";var Gs=Ae(),qs=(t,e,n)=>Gs(t,e,n)<=0;$i.exports=qs});var Ui=_((Zd,Mi)=>{"use strict";var Js=Ni(),Vs=Pi(),Ws=qt(),Ys=_i(),Xs=Li(),zs=Fi(),Zs=(t,e,n,i)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof n=="object"&&(n=n.version),t===n;case"!==":return typeof t=="object"&&(t=t.version),typeof n=="object"&&(n=n.version),t!==n;case"":case"=":case"==":return Js(t,n,i);case"!=":return Vs(t,n,i);case">":return Ws(t,n,i);case">=":return Ys(t,n,i);case"<":return Xs(t,n,i);case"<=":return zs(t,n,i);default:throw new TypeError(`Invalid operator: ${e}`)}};Mi.exports=Zs});var Vi=_((ep,Ji)=>{"use strict";var Ue=Symbol("SemVer ANY"),Wt=class t{static get ANY(){return Ue}constructor(e,n){if(n=ji(n),e instanceof t){if(e.loose===!!n.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Vt("comparator",e,n),this.options=n,this.loose=!!n.loose,this.parse(e),this.semver===Ue?this.value="":this.value=this.operator+this.semver.version,Vt("comp",this)}parse(e){let n=this.options.loose?Ki[Hi.COMPARATORLOOSE]:Ki[Hi.COMPARATOR],i=e.match(n);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new Gi(i[2],this.options.loose):this.semver=Ue}toString(){return this.value}test(e){if(Vt("Comparator.test",e,this.options.loose),this.semver===Ue||e===Ue)return!0;if(typeof e=="string")try{e=new Gi(e,this.options)}catch{return!1}return Jt(e,this.operator,this.semver,this.options)}intersects(e,n){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new qi(e.value,n).test(this.value):e.operator===""?e.value===""?!0:new qi(this.value,n).test(e.semver):(n=ji(n),n.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!n.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Jt(this.semver,"<",e.semver,n)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Jt(this.semver,">",e.semver,n)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Ji.exports=Wt;var ji=ot(),{safeRe:Ki,t:Hi}=it(),Jt=Ui(),Vt=Fe(),Gi=Me(),qi=Yt()});var Yt=_((tp,zi)=>{"use strict";var ea=/\s+/g,Xt=class t{constructor(e,n){if(n=na(n),e instanceof t)return e.loose===!!n.loose&&e.includePrerelease===!!n.includePrerelease?e:new t(e.raw,n);if(e instanceof zt)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease,this.raw=e.trim().replace(ea," "),this.set=this.raw.split("||").map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(o=>!Yi(o[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let o of this.set)if(o.length===1&&da(o[0])){this.set=[o];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let n=this.set[e];for(let i=0;i<n.length;i++)i>0&&(this.formatted+=" "),this.formatted+=n[i].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){e=e.replace(ua,"");let i=((this.options.includePrerelease&&la)|(this.options.loose&&ca))+":"+e,o=Wi.get(i);if(o)return o;let r=this.options.loose,s=r?J[K.HYPHENRANGELOOSE]:J[K.HYPHENRANGE];e=e.replace(s,va(this.options.includePrerelease)),D("hyphen replace",e),e=e.replace(J[K.COMPARATORTRIM],ra),D("comparator trim",e),e=e.replace(J[K.TILDETRIM],sa),D("tilde trim",e),e=e.replace(J[K.CARETTRIM],aa),D("caret trim",e);let a=e.split(" ").map(d=>pa(d,this.options)).join(" ").split(/\s+/).map(d=>wa(d,this.options));r&&(a=a.filter(d=>(D("loose invalid filter",d,this.options),!!d.match(J[K.COMPARATORLOOSE])))),D("range list",a);let l=new Map,c=a.map(d=>new zt(d,this.options));for(let d of c){if(Yi(d))return[d];l.set(d.value,d)}l.size>1&&l.has("")&&l.delete("");let u=[...l.values()];return Wi.set(i,u),u}intersects(e,n){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(i=>Xi(i,n)&&e.set.some(o=>Xi(o,n)&&i.every(r=>o.every(s=>r.intersects(s,n)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new ia(e,this.options)}catch{return!1}for(let n=0;n<this.set.length;n++)if(ya(this.set[n],e,this.options))return!0;return!1}};zi.exports=Xt;var ta=Di(),Wi=new ta,na=ot(),zt=Vi(),D=Fe(),ia=Me(),{safeRe:J,src:oa,t:K,comparatorTrimReplace:ra,tildeTrimReplace:sa,caretTrimReplace:aa}=it(),{FLAG_INCLUDE_PRERELEASE:la,FLAG_LOOSE:ca}=nt(),ua=new RegExp(oa[K.BUILD],"g"),Yi=t=>t.value==="<0.0.0-0",da=t=>t.value==="",Xi=(t,e)=>{let n=!0,i=t.slice(),o=i.pop();for(;n&&i.length;)n=i.every(r=>o.intersects(r,e)),o=i.pop();return n},pa=(t,e)=>(t=t.replace(J[K.BUILD],""),D("comp",t,e),t=fa(t,e),D("caret",t),t=ma(t,e),D("tildes",t),t=Ea(t,e),D("xrange",t),t=Ca(t,e),D("stars",t),t),F=t=>!t||t.toLowerCase()==="x"||t==="*",ga=(t,e,n)=>F(t)&&!F(e)||F(e)&&n&&!F(n),ma=(t,e)=>t.trim().split(/\s+/).map(n=>Aa(n,e)).join(" "),Aa=(t,e)=>{let n=e.loose?J[K.TILDELOOSE]:J[K.TILDE],i=e.includePrerelease?"-0":"";return t.replace(n,(o,r,s,a,l)=>{D("tilde",t,o,r,s,a,l);let c;return F(r)?c="":F(s)?c=`>=${r}.0.0${i} <${+r+1}.0.0-0`:F(a)?c=`>=${r}.${s}.0${i} <${r}.${+s+1}.0-0`:l?(D("replaceTilde pr",l),c=`>=${r}.${s}.${a}-${l} <${r}.${+s+1}.0-0`):c=`>=${r}.${s}.${a} <${r}.${+s+1}.0-0`,D("tilde return",c),c})},fa=(t,e)=>t.trim().split(/\s+/).map(n=>ha(n,e)).join(" "),ha=(t,e)=>{D("caret",t,e);let n=e.loose?J[K.CARETLOOSE]:J[K.CARET],i=e.includePrerelease?"-0":"";return t.replace(n,(o,r,s,a,l)=>{D("caret",t,o,r,s,a,l);let c;return F(r)?c="":F(s)?c=`>=${r}.0.0${i} <${+r+1}.0.0-0`:F(a)?r==="0"?c=`>=${r}.${s}.0${i} <${r}.${+s+1}.0-0`:c=`>=${r}.${s}.0${i} <${+r+1}.0.0-0`:l?(D("replaceCaret pr",l),r==="0"?s==="0"?c=`>=${r}.${s}.${a}-${l} <${r}.${s}.${+a+1}-0`:c=`>=${r}.${s}.${a}-${l} <${r}.${+s+1}.0-0`:c=`>=${r}.${s}.${a}-${l} <${+r+1}.0.0-0`):(D("no pr"),r==="0"?s==="0"?c=`>=${r}.${s}.${a} <${r}.${s}.${+a+1}-0`:c=`>=${r}.${s}.${a} <${r}.${+s+1}.0-0`:c=`>=${r}.${s}.${a} <${+r+1}.0.0-0`),D("caret return",c),c})},Ea=(t,e)=>(D("replaceXRanges",t,e),t.split(/\s+/).map(n=>ba(n,e)).join(" ")),ba=(t,e)=>{t=t.trim();let n=e.loose?J[K.XRANGELOOSE]:J[K.XRANGE];return t.replace(n,(i,o,r,s,a,l)=>{if(D("xRange",t,i,o,r,s,a,l),ga(r,s,a))return t;let c=F(r),u=c||F(s),d=u||F(a),p=d;return o==="="&&p&&(o=""),l=e.includePrerelease?"-0":"",c?o===">"||o==="<"?i="<0.0.0-0":i="*":o&&p?(u&&(s=0),a=0,o===">"?(o=">=",u?(r=+r+1,s=0,a=0):(s=+s+1,a=0)):o==="<="&&(o="<",u?r=+r+1:s=+s+1),o==="<"&&(l="-0"),i=`${o+r}.${s}.${a}${l}`):u?i=`>=${r}.0.0${l} <${+r+1}.0.0-0`:d&&(i=`>=${r}.${s}.0${l} <${r}.${+s+1}.0-0`),D("xRange return",i),i})},Ca=(t,e)=>(D("replaceStars",t,e),t.trim().replace(J[K.STAR],"")),wa=(t,e)=>(D("replaceGTE0",t,e),t.trim().replace(J[e.includePrerelease?K.GTE0PRE:K.GTE0],"")),va=t=>(e,n,i,o,r,s,a,l,c,u,d,p)=>(F(i)?n="":F(o)?n=`>=${i}.0.0${t?"-0":""}`:F(r)?n=`>=${i}.${o}.0${t?"-0":""}`:s?n=`>=${n}`:n=`>=${n}${t?"-0":""}`,F(c)?l="":F(u)?l=`<${+c+1}.0.0-0`:F(d)?l=`<${c}.${+u+1}.0-0`:p?l=`<=${c}.${u}.${d}-${p}`:t?l=`<${c}.${u}.${+d+1}-0`:l=`<=${l}`,`${n} ${l}`.trim()),ya=(t,e,n)=>{for(let i=0;i<t.length;i++)if(!t[i].test(e))return!1;if(e.prerelease.length&&!n.includePrerelease){for(let i=0;i<t.length;i++)if(D(t[i].semver),t[i].semver!==zt.ANY&&t[i].semver.prerelease.length>0){let o=t[i].semver;if(o.major===e.major&&o.minor===e.minor&&o.patch===e.patch)return!0}return!1}return!0}});var to=_((np,eo)=>{"use strict";var Zt=Me(),Ia=Yt(),Zi=qt(),xa=(t,e)=>{t=new Ia(t,e);let n=new Zt("0.0.0");if(t.test(n)||(n=new Zt("0.0.0-0"),t.test(n)))return n;n=null;for(let i=0;i<t.set.length;++i){let o=t.set[i],r=null;o.forEach(s=>{let a=new Zt(s.semver.version);switch(s.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!r||Zi(a,r))&&(r=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${s.operator}`)}}),r&&(!n||Zi(n,r))&&(n=r)}return n&&t.test(n)?n:null};eo.exports=xa});var Ro=_(N=>{"use strict";Object.defineProperty(N,"__esModule",{value:!0});N.CHAR=`
2
+ import{g as li}from"./chunk-GVXLVAX4.js";import{a as Lt,b as ai}from"./chunk-ZXUCBQR7.js";import{b as Le}from"./chunk-XSBF3HQR.js";import{a as G,i as si,j as R}from"./chunk-DCRUVPRR.js";import{c as ti,d as Oe}from"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{a as ri,b as j}from"./chunk-F7XCHQA3.js";import{P as _e,ba as Ot,j as ni,u as W}from"./chunk-HDUE2YKX.js";import{b as _t}from"./chunk-NZY63D4X.js";import"./chunk-FZ76WJJG.js";import"./chunk-ZT24MY2V.js";import"./chunk-L5UJ4QUD.js";import{e as ii,f as oi}from"./chunk-E7J2DJY7.js";import{a as A}from"./chunk-7LJFYNRQ.js";import{b as _,d as Qt}from"./chunk-5PWLIQO6.js";var Fe=_((Md,Ai)=>{"use strict";var gs=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};Ai.exports=gs});var nt=_((Ud,fi)=>{"use strict";var ms="2.0.0",As=Number.MAX_SAFE_INTEGER||9007199254740991,fs=16,hs=250,Es=["major","premajor","minor","preminor","patch","prepatch","prerelease"];fi.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:fs,MAX_SAFE_BUILD_LENGTH:hs,MAX_SAFE_INTEGER:As,RELEASE_TYPES:Es,SEMVER_SPEC_VERSION:ms,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var it=_((se,hi)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Ut,MAX_SAFE_BUILD_LENGTH:bs,MAX_LENGTH:Cs}=nt(),ws=Fe();se=hi.exports={};var vs=se.re=[],ys=se.safeRe=[],g=se.src=[],Is=se.safeSrc=[],m=se.t={},xs=0,jt="[a-zA-Z0-9-]",Rs=[["\\s",1],["\\d",Cs],[jt,bs]],Ss=t=>{for(let[e,n]of Rs)t=t.split(`${e}*`).join(`${e}{0,${n}}`).split(`${e}+`).join(`${e}{1,${n}}`);return t},C=(t,e,n)=>{let i=Ss(e),o=xs++;ws(t,o,e),m[t]=o,g[o]=e,Is[o]=i,vs[o]=new RegExp(e,n?"g":void 0),ys[o]=new RegExp(i,n?"g":void 0)};C("NUMERICIDENTIFIER","0|[1-9]\\d*");C("NUMERICIDENTIFIERLOOSE","\\d+");C("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${jt}*`);C("MAINVERSION",`(${g[m.NUMERICIDENTIFIER]})\\.(${g[m.NUMERICIDENTIFIER]})\\.(${g[m.NUMERICIDENTIFIER]})`);C("MAINVERSIONLOOSE",`(${g[m.NUMERICIDENTIFIERLOOSE]})\\.(${g[m.NUMERICIDENTIFIERLOOSE]})\\.(${g[m.NUMERICIDENTIFIERLOOSE]})`);C("PRERELEASEIDENTIFIER",`(?:${g[m.NONNUMERICIDENTIFIER]}|${g[m.NUMERICIDENTIFIER]})`);C("PRERELEASEIDENTIFIERLOOSE",`(?:${g[m.NONNUMERICIDENTIFIER]}|${g[m.NUMERICIDENTIFIERLOOSE]})`);C("PRERELEASE",`(?:-(${g[m.PRERELEASEIDENTIFIER]}(?:\\.${g[m.PRERELEASEIDENTIFIER]})*))`);C("PRERELEASELOOSE",`(?:-?(${g[m.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${g[m.PRERELEASEIDENTIFIERLOOSE]})*))`);C("BUILDIDENTIFIER",`${jt}+`);C("BUILD",`(?:\\+(${g[m.BUILDIDENTIFIER]}(?:\\.${g[m.BUILDIDENTIFIER]})*))`);C("FULLPLAIN",`v?${g[m.MAINVERSION]}${g[m.PRERELEASE]}?${g[m.BUILD]}?`);C("FULL",`^${g[m.FULLPLAIN]}$`);C("LOOSEPLAIN",`[v=\\s]*${g[m.MAINVERSIONLOOSE]}${g[m.PRERELEASELOOSE]}?${g[m.BUILD]}?`);C("LOOSE",`^${g[m.LOOSEPLAIN]}$`);C("GTLT","((?:<|>)?=?)");C("XRANGEIDENTIFIERLOOSE",`${g[m.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);C("XRANGEIDENTIFIER",`${g[m.NUMERICIDENTIFIER]}|x|X|\\*`);C("XRANGEPLAIN",`[v=\\s]*(${g[m.XRANGEIDENTIFIER]})(?:\\.(${g[m.XRANGEIDENTIFIER]})(?:\\.(${g[m.XRANGEIDENTIFIER]})(?:${g[m.PRERELEASE]})?${g[m.BUILD]}?)?)?`);C("XRANGEPLAINLOOSE",`[v=\\s]*(${g[m.XRANGEIDENTIFIERLOOSE]})(?:\\.(${g[m.XRANGEIDENTIFIERLOOSE]})(?:\\.(${g[m.XRANGEIDENTIFIERLOOSE]})(?:${g[m.PRERELEASELOOSE]})?${g[m.BUILD]}?)?)?`);C("XRANGE",`^${g[m.GTLT]}\\s*${g[m.XRANGEPLAIN]}$`);C("XRANGELOOSE",`^${g[m.GTLT]}\\s*${g[m.XRANGEPLAINLOOSE]}$`);C("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Ut}})(?:\\.(\\d{1,${Ut}}))?(?:\\.(\\d{1,${Ut}}))?`);C("COERCE",`${g[m.COERCEPLAIN]}(?:$|[^\\d])`);C("COERCEFULL",g[m.COERCEPLAIN]+`(?:${g[m.PRERELEASE]})?(?:${g[m.BUILD]})?(?:$|[^\\d])`);C("COERCERTL",g[m.COERCE],!0);C("COERCERTLFULL",g[m.COERCEFULL],!0);C("LONETILDE","(?:~>?)");C("TILDETRIM",`(\\s*)${g[m.LONETILDE]}\\s+`,!0);se.tildeTrimReplace="$1~";C("TILDE",`^${g[m.LONETILDE]}${g[m.XRANGEPLAIN]}$`);C("TILDELOOSE",`^${g[m.LONETILDE]}${g[m.XRANGEPLAINLOOSE]}$`);C("LONECARET","(?:\\^)");C("CARETTRIM",`(\\s*)${g[m.LONECARET]}\\s+`,!0);se.caretTrimReplace="$1^";C("CARET",`^${g[m.LONECARET]}${g[m.XRANGEPLAIN]}$`);C("CARETLOOSE",`^${g[m.LONECARET]}${g[m.XRANGEPLAINLOOSE]}$`);C("COMPARATORLOOSE",`^${g[m.GTLT]}\\s*(${g[m.LOOSEPLAIN]})$|^$`);C("COMPARATOR",`^${g[m.GTLT]}\\s*(${g[m.FULLPLAIN]})$|^$`);C("COMPARATORTRIM",`(\\s*)${g[m.GTLT]}\\s*(${g[m.LOOSEPLAIN]}|${g[m.XRANGEPLAIN]})`,!0);se.comparatorTrimReplace="$1$2$3";C("HYPHENRANGE",`^\\s*(${g[m.XRANGEPLAIN]})\\s+-\\s+(${g[m.XRANGEPLAIN]})\\s*$`);C("HYPHENRANGELOOSE",`^\\s*(${g[m.XRANGEPLAINLOOSE]})\\s+-\\s+(${g[m.XRANGEPLAINLOOSE]})\\s*$`);C("STAR","(<|>)?=?\\s*\\*");C("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");C("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var ot=_((jd,Ei)=>{"use strict";var Ds=Object.freeze({loose:!0}),Bs=Object.freeze({}),Ns=t=>t?typeof t!="object"?Ds:t:Bs;Ei.exports=Ns});var vi=_((Kd,wi)=>{"use strict";var bi=/^[0-9]+$/,Ci=(t,e)=>{if(typeof t=="number"&&typeof e=="number")return t===e?0:t<e?-1:1;let n=bi.test(t),i=bi.test(e);return n&&i&&(t=+t,e=+e),t===e?0:n&&!i?-1:i&&!n?1:t<e?-1:1},Ts=(t,e)=>Ci(e,t);wi.exports={compareIdentifiers:Ci,rcompareIdentifiers:Ts}});var Me=_((Hd,Ii)=>{"use strict";var rt=Fe(),{MAX_LENGTH:yi,MAX_SAFE_INTEGER:st}=nt(),{safeRe:at,t:lt}=it(),Ps=ot(),{compareIdentifiers:Kt}=vi(),ks=(t,e)=>{let n=e.split(".");if(n.length>t.length)return!1;for(let i=0;i<n.length;i++)if(Kt(t[i],n[i])!==0)return!1;return!0},Ht=class t{constructor(e,n){if(n=Ps(n),e instanceof t){if(e.loose===!!n.loose&&e.includePrerelease===!!n.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>yi)throw new TypeError(`version is longer than ${yi} characters`);rt("SemVer",e,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let i=e.trim().match(n.loose?at[lt.LOOSE]:at[lt.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>st||this.major<0)throw new TypeError("Invalid major version");if(this.minor>st||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>st||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){let r=+o;if(r>=0&&r<st)return r}return o}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(rt("SemVer.compare",this.version,this.options,e),!(e instanceof t)){if(typeof e=="string"&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof t||(e=new t(e,this.options)),this.major<e.major?-1:this.major>e.major?1:this.minor<e.minor?-1:this.minor>e.minor?1:this.patch<e.patch?-1:this.patch>e.patch?1:0}comparePre(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let n=0;do{let i=this.prerelease[n],o=e.prerelease[n];if(rt("prerelease compare",n,i,o),i===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(i===void 0)return-1;if(i===o)continue;return Kt(i,o)}while(++n)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let n=0;do{let i=this.build[n],o=e.build[n];if(rt("build compare",n,i,o),i===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(i===void 0)return-1;if(i===o)continue;return Kt(i,o)}while(++n)}inc(e,n,i){if(e.startsWith("pre")){if(!n&&i===!1)throw new Error("invalid increment argument: identifier is empty");if(n){let o=`-${n}`.match(this.options.loose?at[lt.PRERELEASELOOSE]:at[lt.PRERELEASE]);if(!o||o[1]!==n)throw new Error(`invalid identifier: ${n}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",n,i);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",n,i);break;case"prepatch":this.prerelease.length=0,this.inc("patch",n,i),this.inc("pre",n,i);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",n,i),this.inc("pre",n,i);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let o=Number(i)?1:0;if(this.prerelease.length===0)this.prerelease=[o];else{let r=this.prerelease.length;for(;--r>=0;)typeof this.prerelease[r]=="number"&&(this.prerelease[r]++,r=-2);if(r===-1){if(n===this.prerelease.join(".")&&i===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(n){let r=[n,o];if(i===!1&&(r=[n]),ks(this.prerelease,n)){let s=this.prerelease[n.split(".").length];isNaN(s)&&(this.prerelease=r)}else this.prerelease=r}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Ii.exports=Ht});var Ae=_((Gd,Ri)=>{"use strict";var xi=Me(),Qs=(t,e,n)=>new xi(t,n).compare(new xi(e,n));Ri.exports=Qs});var Di=_((qd,Si)=>{"use strict";var Gt=class{constructor(){this.max=1e3,this.map=new Map}get(e){let n=this.map.get(e);if(n!==void 0)return this.map.delete(e),this.map.set(e,n),n}delete(e){return this.map.delete(e)}set(e,n){if(!this.delete(e)&&n!==void 0){if(this.map.size>=this.max){let o=this.map.keys().next().value;this.delete(o)}this.map.set(e,n)}return this}};Si.exports=Gt});var Ni=_((Jd,Bi)=>{"use strict";var _s=Ae(),Os=(t,e,n)=>_s(t,e,n)===0;Bi.exports=Os});var Pi=_((Vd,Ti)=>{"use strict";var Ls=Ae(),$s=(t,e,n)=>Ls(t,e,n)!==0;Ti.exports=$s});var qt=_((Wd,ki)=>{"use strict";var Fs=Ae(),Ms=(t,e,n)=>Fs(t,e,n)>0;ki.exports=Ms});var _i=_((Yd,Qi)=>{"use strict";var Us=Ae(),js=(t,e,n)=>Us(t,e,n)>=0;Qi.exports=js});var Li=_((Xd,Oi)=>{"use strict";var Ks=Ae(),Hs=(t,e,n)=>Ks(t,e,n)<0;Oi.exports=Hs});var Fi=_((zd,$i)=>{"use strict";var Gs=Ae(),qs=(t,e,n)=>Gs(t,e,n)<=0;$i.exports=qs});var Ui=_((Zd,Mi)=>{"use strict";var Js=Ni(),Vs=Pi(),Ws=qt(),Ys=_i(),Xs=Li(),zs=Fi(),Zs=(t,e,n,i)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof n=="object"&&(n=n.version),t===n;case"!==":return typeof t=="object"&&(t=t.version),typeof n=="object"&&(n=n.version),t!==n;case"":case"=":case"==":return Js(t,n,i);case"!=":return Vs(t,n,i);case">":return Ws(t,n,i);case">=":return Ys(t,n,i);case"<":return Xs(t,n,i);case"<=":return zs(t,n,i);default:throw new TypeError(`Invalid operator: ${e}`)}};Mi.exports=Zs});var Vi=_((ep,Ji)=>{"use strict";var Ue=Symbol("SemVer ANY"),Wt=class t{static get ANY(){return Ue}constructor(e,n){if(n=ji(n),e instanceof t){if(e.loose===!!n.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Vt("comparator",e,n),this.options=n,this.loose=!!n.loose,this.parse(e),this.semver===Ue?this.value="":this.value=this.operator+this.semver.version,Vt("comp",this)}parse(e){let n=this.options.loose?Ki[Hi.COMPARATORLOOSE]:Ki[Hi.COMPARATOR],i=e.match(n);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new Gi(i[2],this.options.loose):this.semver=Ue}toString(){return this.value}test(e){if(Vt("Comparator.test",e,this.options.loose),this.semver===Ue||e===Ue)return!0;if(typeof e=="string")try{e=new Gi(e,this.options)}catch{return!1}return Jt(e,this.operator,this.semver,this.options)}intersects(e,n){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new qi(e.value,n).test(this.value):e.operator===""?e.value===""?!0:new qi(this.value,n).test(e.semver):(n=ji(n),n.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!n.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Jt(this.semver,"<",e.semver,n)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Jt(this.semver,">",e.semver,n)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Ji.exports=Wt;var ji=ot(),{safeRe:Ki,t:Hi}=it(),Jt=Ui(),Vt=Fe(),Gi=Me(),qi=Yt()});var Yt=_((tp,zi)=>{"use strict";var ea=/\s+/g,Xt=class t{constructor(e,n){if(n=na(n),e instanceof t)return e.loose===!!n.loose&&e.includePrerelease===!!n.includePrerelease?e:new t(e.raw,n);if(e instanceof zt)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease,this.raw=e.trim().replace(ea," "),this.set=this.raw.split("||").map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(o=>!Yi(o[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let o of this.set)if(o.length===1&&da(o[0])){this.set=[o];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let n=this.set[e];for(let i=0;i<n.length;i++)i>0&&(this.formatted+=" "),this.formatted+=n[i].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){e=e.replace(ua,"");let i=((this.options.includePrerelease&&la)|(this.options.loose&&ca))+":"+e,o=Wi.get(i);if(o)return o;let r=this.options.loose,s=r?J[K.HYPHENRANGELOOSE]:J[K.HYPHENRANGE];e=e.replace(s,va(this.options.includePrerelease)),D("hyphen replace",e),e=e.replace(J[K.COMPARATORTRIM],ra),D("comparator trim",e),e=e.replace(J[K.TILDETRIM],sa),D("tilde trim",e),e=e.replace(J[K.CARETTRIM],aa),D("caret trim",e);let a=e.split(" ").map(d=>pa(d,this.options)).join(" ").split(/\s+/).map(d=>wa(d,this.options));r&&(a=a.filter(d=>(D("loose invalid filter",d,this.options),!!d.match(J[K.COMPARATORLOOSE])))),D("range list",a);let l=new Map,c=a.map(d=>new zt(d,this.options));for(let d of c){if(Yi(d))return[d];l.set(d.value,d)}l.size>1&&l.has("")&&l.delete("");let u=[...l.values()];return Wi.set(i,u),u}intersects(e,n){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(i=>Xi(i,n)&&e.set.some(o=>Xi(o,n)&&i.every(r=>o.every(s=>r.intersects(s,n)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new ia(e,this.options)}catch{return!1}for(let n=0;n<this.set.length;n++)if(ya(this.set[n],e,this.options))return!0;return!1}};zi.exports=Xt;var ta=Di(),Wi=new ta,na=ot(),zt=Vi(),D=Fe(),ia=Me(),{safeRe:J,src:oa,t:K,comparatorTrimReplace:ra,tildeTrimReplace:sa,caretTrimReplace:aa}=it(),{FLAG_INCLUDE_PRERELEASE:la,FLAG_LOOSE:ca}=nt(),ua=new RegExp(oa[K.BUILD],"g"),Yi=t=>t.value==="<0.0.0-0",da=t=>t.value==="",Xi=(t,e)=>{let n=!0,i=t.slice(),o=i.pop();for(;n&&i.length;)n=i.every(r=>o.intersects(r,e)),o=i.pop();return n},pa=(t,e)=>(t=t.replace(J[K.BUILD],""),D("comp",t,e),t=fa(t,e),D("caret",t),t=ma(t,e),D("tildes",t),t=Ea(t,e),D("xrange",t),t=Ca(t,e),D("stars",t),t),F=t=>!t||t.toLowerCase()==="x"||t==="*",ga=(t,e,n)=>F(t)&&!F(e)||F(e)&&n&&!F(n),ma=(t,e)=>t.trim().split(/\s+/).map(n=>Aa(n,e)).join(" "),Aa=(t,e)=>{let n=e.loose?J[K.TILDELOOSE]:J[K.TILDE],i=e.includePrerelease?"-0":"";return t.replace(n,(o,r,s,a,l)=>{D("tilde",t,o,r,s,a,l);let c;return F(r)?c="":F(s)?c=`>=${r}.0.0${i} <${+r+1}.0.0-0`:F(a)?c=`>=${r}.${s}.0${i} <${r}.${+s+1}.0-0`:l?(D("replaceTilde pr",l),c=`>=${r}.${s}.${a}-${l} <${r}.${+s+1}.0-0`):c=`>=${r}.${s}.${a} <${r}.${+s+1}.0-0`,D("tilde return",c),c})},fa=(t,e)=>t.trim().split(/\s+/).map(n=>ha(n,e)).join(" "),ha=(t,e)=>{D("caret",t,e);let n=e.loose?J[K.CARETLOOSE]:J[K.CARET],i=e.includePrerelease?"-0":"";return t.replace(n,(o,r,s,a,l)=>{D("caret",t,o,r,s,a,l);let c;return F(r)?c="":F(s)?c=`>=${r}.0.0${i} <${+r+1}.0.0-0`:F(a)?r==="0"?c=`>=${r}.${s}.0${i} <${r}.${+s+1}.0-0`:c=`>=${r}.${s}.0${i} <${+r+1}.0.0-0`:l?(D("replaceCaret pr",l),r==="0"?s==="0"?c=`>=${r}.${s}.${a}-${l} <${r}.${s}.${+a+1}-0`:c=`>=${r}.${s}.${a}-${l} <${r}.${+s+1}.0-0`:c=`>=${r}.${s}.${a}-${l} <${+r+1}.0.0-0`):(D("no pr"),r==="0"?s==="0"?c=`>=${r}.${s}.${a} <${r}.${s}.${+a+1}-0`:c=`>=${r}.${s}.${a} <${r}.${+s+1}.0-0`:c=`>=${r}.${s}.${a} <${+r+1}.0.0-0`),D("caret return",c),c})},Ea=(t,e)=>(D("replaceXRanges",t,e),t.split(/\s+/).map(n=>ba(n,e)).join(" ")),ba=(t,e)=>{t=t.trim();let n=e.loose?J[K.XRANGELOOSE]:J[K.XRANGE];return t.replace(n,(i,o,r,s,a,l)=>{if(D("xRange",t,i,o,r,s,a,l),ga(r,s,a))return t;let c=F(r),u=c||F(s),d=u||F(a),p=d;return o==="="&&p&&(o=""),l=e.includePrerelease?"-0":"",c?o===">"||o==="<"?i="<0.0.0-0":i="*":o&&p?(u&&(s=0),a=0,o===">"?(o=">=",u?(r=+r+1,s=0,a=0):(s=+s+1,a=0)):o==="<="&&(o="<",u?r=+r+1:s=+s+1),o==="<"&&(l="-0"),i=`${o+r}.${s}.${a}${l}`):u?i=`>=${r}.0.0${l} <${+r+1}.0.0-0`:d&&(i=`>=${r}.${s}.0${l} <${r}.${+s+1}.0-0`),D("xRange return",i),i})},Ca=(t,e)=>(D("replaceStars",t,e),t.trim().replace(J[K.STAR],"")),wa=(t,e)=>(D("replaceGTE0",t,e),t.trim().replace(J[e.includePrerelease?K.GTE0PRE:K.GTE0],"")),va=t=>(e,n,i,o,r,s,a,l,c,u,d,p)=>(F(i)?n="":F(o)?n=`>=${i}.0.0${t?"-0":""}`:F(r)?n=`>=${i}.${o}.0${t?"-0":""}`:s?n=`>=${n}`:n=`>=${n}${t?"-0":""}`,F(c)?l="":F(u)?l=`<${+c+1}.0.0-0`:F(d)?l=`<${c}.${+u+1}.0-0`:p?l=`<=${c}.${u}.${d}-${p}`:t?l=`<${c}.${u}.${+d+1}-0`:l=`<=${l}`,`${n} ${l}`.trim()),ya=(t,e,n)=>{for(let i=0;i<t.length;i++)if(!t[i].test(e))return!1;if(e.prerelease.length&&!n.includePrerelease){for(let i=0;i<t.length;i++)if(D(t[i].semver),t[i].semver!==zt.ANY&&t[i].semver.prerelease.length>0){let o=t[i].semver;if(o.major===e.major&&o.minor===e.minor&&o.patch===e.patch)return!0}return!1}return!0}});var to=_((np,eo)=>{"use strict";var Zt=Me(),Ia=Yt(),Zi=qt(),xa=(t,e)=>{t=new Ia(t,e);let n=new Zt("0.0.0");if(t.test(n)||(n=new Zt("0.0.0-0"),t.test(n)))return n;n=null;for(let i=0;i<t.set.length;++i){let o=t.set[i],r=null;o.forEach(s=>{let a=new Zt(s.semver.version);switch(s.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!r||Zi(a,r))&&(r=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${s.operator}`)}}),r&&(!n||Zi(n,r))&&(n=r)}return n&&t.test(n)?n:null};eo.exports=xa});var Ro=_(N=>{"use strict";Object.defineProperty(N,"__esModule",{value:!0});N.CHAR=`
3
3
  \r -\uD7FF\uE000-\uFFFD\u{10000}-\u{10FFFF}`;N.S=` \r
4
4
  `;N.NAME_START_CHAR=":A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}";N.NAME_CHAR="-"+N.NAME_START_CHAR+".0-9\xB7\u0300-\u036F\u203F-\u2040";N.CHAR_RE=new RegExp("^["+N.CHAR+"]$","u");N.S_RE=new RegExp("^["+N.S+"]+$","u");N.NAME_START_CHAR_RE=new RegExp("^["+N.NAME_START_CHAR+"]$","u");N.NAME_CHAR_RE=new RegExp("^["+N.NAME_CHAR+"]$","u");N.NAME_RE=new RegExp("^["+N.NAME_START_CHAR+"]["+N.NAME_CHAR+"]*$","u");N.NMTOKEN_RE=new RegExp("^["+N.NAME_CHAR+"]+$","u");var cn=9,un=10,dn=13,pn=32;N.S_LIST=[pn,un,dn,cn];function ol(t){return t>=pn&&t<=55295||t===un||t===dn||t===cn||t>=57344&&t<=65533||t>=65536&&t<=1114111}N.isChar=ol;function rl(t){return t===pn||t===un||t===dn||t===cn}N.isS=rl;function xo(t){return t>=65&&t<=90||t>=97&&t<=122||t===58||t===95||t===8204||t===8205||t>=192&&t<=214||t>=216&&t<=246||t>=248&&t<=767||t>=880&&t<=893||t>=895&&t<=8191||t>=8304&&t<=8591||t>=11264&&t<=12271||t>=12289&&t<=55295||t>=63744&&t<=64975||t>=65008&&t<=65533||t>=65536&&t<=983039}N.isNameStartChar=xo;function sl(t){return xo(t)||t>=48&&t<=57||t===45||t===46||t===183||t>=768&&t<=879||t>=8255&&t<=8256}N.isNameChar=sl});var Po=_(x=>{"use strict";Object.defineProperty(x,"__esModule",{value:!0});x.CHAR="-\uD7FF\uE000-\uFFFD\u{10000}-\u{10FFFF}";x.RESTRICTED_CHAR="-\b\v\f-\x7F-\x84\x86-\x9F";x.S=` \r
5
5
  `;x.NAME_START_CHAR=":A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}";x.NAME_CHAR="-"+x.NAME_START_CHAR+".0-9\xB7\u0300-\u036F\u203F-\u2040";x.CHAR_RE=new RegExp("^["+x.CHAR+"]$","u");x.RESTRICTED_CHAR_RE=new RegExp("^["+x.RESTRICTED_CHAR+"]$","u");x.S_RE=new RegExp("^["+x.S+"]+$","u");x.NAME_START_CHAR_RE=new RegExp("^["+x.NAME_START_CHAR+"]$","u");x.NAME_CHAR_RE=new RegExp("^["+x.NAME_CHAR+"]$","u");x.NAME_RE=new RegExp("^["+x.NAME_START_CHAR+"]["+x.NAME_CHAR+"]*$","u");x.NMTOKEN_RE=new RegExp("^["+x.NAME_CHAR+"]+$","u");var So=9,Do=10,Bo=13,No=32;x.S_LIST=[No,Do,Bo,So];function al(t){return t>=1&&t<=55295||t>=57344&&t<=65533||t>=65536&&t<=1114111}x.isChar=al;function ll(t){return t>=1&&t<=8||t===11||t===12||t>=14&&t<=31||t>=127&&t<=132||t>=134&&t<=159}x.isRestrictedChar=ll;function cl(t){return t===9||t===10||t===13||t>31&&t<127||t===133||t>159&&t<=55295||t>=57344&&t<=65533||t>=65536&&t<=1114111}x.isCharAndNotRestricted=cl;function ul(t){return t===No||t===Do||t===Bo||t===So}x.isS=ul;function To(t){return t>=65&&t<=90||t>=97&&t<=122||t===58||t===95||t===8204||t===8205||t>=192&&t<=214||t>=216&&t<=246||t>=248&&t<=767||t>=880&&t<=893||t>=895&&t<=8191||t>=8304&&t<=8591||t>=11264&&t<=12271||t>=12289&&t<=55295||t>=63744&&t<=64975||t>=65008&&t<=65533||t>=65536&&t<=983039}x.isNameStartChar=To;function dl(t){return To(t)||t>=48&&t<=57||t===45||t===46||t===183||t>=768&&t<=879||t>=8255&&t<=8256}x.isNameChar=dl});var Qo=_(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.NC_NAME_START_CHAR="A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}";Y.NC_NAME_CHAR="-"+Y.NC_NAME_START_CHAR+".0-9\xB7\u0300-\u036F\u203F-\u2040";Y.NC_NAME_START_CHAR_RE=new RegExp("^["+Y.NC_NAME_START_CHAR+"]$","u");Y.NC_NAME_CHAR_RE=new RegExp("^["+Y.NC_NAME_CHAR+"]$","u");Y.NC_NAME_RE=new RegExp("^["+Y.NC_NAME_START_CHAR+"]["+Y.NC_NAME_CHAR+"]*$","u");function ko(t){return t>=65&&t<=90||t===95||t>=97&&t<=122||t>=192&&t<=214||t>=216&&t<=246||t>=248&&t<=767||t>=880&&t<=893||t>=895&&t<=8191||t>=8204&&t<=8205||t>=8304&&t<=8591||t>=11264&&t<=12271||t>=12289&&t<=55295||t>=63744&&t<=64975||t>=65008&&t<=65533||t>=65536&&t<=983039}Y.isNCNameStartChar=ko;function pl(t){return ko(t)||t===45||t===46||t>=48&&t<=57||t===183||t>=768&&t<=879||t>=8255&&t<=8256}Y.isNCNameChar=pl});var er=_(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.SaxesParser=De.EVENTS=void 0;var Be=Ro(),gl=Po(),Rn=Qo(),X=Be.isS,ml=Be.isChar,je=Be.isNameStartChar,_o=Be.isNameChar,Wo=Be.S_LIST,Al=Be.NAME_RE,fl=gl.isChar,hl=Rn.isNCNameStartChar,El=Rn.isNCNameChar,bl=Rn.NC_NAME_RE,ht="http://www.w3.org/XML/1998/namespace",Se="http://www.w3.org/2000/xmlns/",Cl={__proto__:null,xml:ht,xmlns:Se},wl={__proto__:null,amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},P=-1,ae=-2,Oo=0,vl=1,gn=2,yl=3,Ie=4,Il=5,xl=6,Rl=7,mn=8,Sl=9,Dl=10,Bl=11,Nl=12,V=13,pt=14,An=15,Tl=16,fn=17,Pl=18,kl=19,hn=20,Ql=21,_l=22,Ol=23,Lo=24,En=25,gt=26,$o=27,Ll=28,$l=29,Fo=30,Fl=31,Ml=32,Ee=33,Ul=34,bn=35,Ke=36,Cn=37,jl=38,Mo=39,Uo=40,Kl=41,jo=42,Hl=43,Gl=44,wn=9,oe=10,vn=13,Ko=32,Ho=33,Yo=34,He=38,Xo=39,mt=45,At=47,ql=59,he=60,xe=61,M=62,H=63,zo=91,Re=93,Go=133,qo=8232,ft=t=>t===Yo||t===Xo,Zo=[Yo,Xo],Jl=[...Zo,zo,M],Vl=[...Zo,he,Re],Wl=[xe,H,...Wo],Yl=[...Wo,M,He,he];function In(t,e,n){switch(e){case"xml":n!==ht&&t.fail(`xml prefix must be bound to ${ht}.`);break;case"xmlns":n!==Se&&t.fail(`xmlns prefix must be bound to ${Se}.`);break;default:}switch(n){case Se:t.fail(e===""?`the default namespace may not be set to ${n}.`:`may not assign a prefix (even "xmlns") to the URI ${Se}.`);break;case ht:switch(e){case"xml":break;case"":t.fail(`the default namespace may not be set to ${n}.`);break;default:t.fail("may not assign the xml namespace to another prefix.")}break;default:}}function Xl(t,e){for(let n of Object.keys(e))In(t,n,e[n])}var zl=t=>bl.test(t),Zl=t=>Al.test(t),be=0,Jo=1,yn=2;De.EVENTS=["xmldecl","text","processinginstruction","doctype","comment","opentagstart","attribute","opentag","closetag","cdata","error","end","ready"];var Vo={xmldecl:"xmldeclHandler",text:"textHandler",processinginstruction:"piHandler",doctype:"doctypeHandler",comment:"commentHandler",opentagstart:"openTagStartHandler",attribute:"attributeHandler",opentag:"openTagHandler",closetag:"closeTagHandler",cdata:"cdataHandler",error:"errorHandler",end:"endHandler",ready:"readyHandler"},xn=class{constructor(e){this.opt=e??{},this.fragmentOpt=!!this.opt.fragment;let n=this.xmlnsOpt=!!this.opt.xmlns;if(this.trackPosition=this.opt.position!==!1,this.fileName=this.opt.fileName,n){this.nameStartCheck=hl,this.nameCheck=El,this.isName=zl,this.processAttribs=this.processAttribsNS,this.pushAttrib=this.pushAttribNS,this.ns=Object.assign({__proto__:null},Cl);let i=this.opt.additionalNamespaces;i!=null&&(Xl(this,i),Object.assign(this.ns,i))}else this.nameStartCheck=je,this.nameCheck=_o,this.isName=Zl,this.processAttribs=this.processAttribsPlain,this.pushAttrib=this.pushAttribPlain;this.stateTable=[this.sBegin,this.sBeginWhitespace,this.sDoctype,this.sDoctypeQuote,this.sDTD,this.sDTDQuoted,this.sDTDOpenWaka,this.sDTDOpenWakaBang,this.sDTDComment,this.sDTDCommentEnding,this.sDTDCommentEnded,this.sDTDPI,this.sDTDPIEnding,this.sText,this.sEntity,this.sOpenWaka,this.sOpenWakaBang,this.sComment,this.sCommentEnding,this.sCommentEnded,this.sCData,this.sCDataEnding,this.sCDataEnding2,this.sPIFirstChar,this.sPIRest,this.sPIBody,this.sPIEnding,this.sXMLDeclNameStart,this.sXMLDeclName,this.sXMLDeclEq,this.sXMLDeclValueStart,this.sXMLDeclValue,this.sXMLDeclSeparator,this.sXMLDeclEnding,this.sOpenTag,this.sOpenTagSlash,this.sAttrib,this.sAttribName,this.sAttribNameSawWhite,this.sAttribValue,this.sAttribValueQuoted,this.sAttribValueClosed,this.sAttribValueUnquoted,this.sCloseTag,this.sCloseTagSawWhite],this._init()}get closed(){return this._closed}_init(){var e;this.openWakaBang="",this.text="",this.name="",this.piTarget="",this.entity="",this.q=null,this.tags=[],this.tag=null,this.topNS=null,this.chunk="",this.chunkPosition=0,this.i=0,this.prevI=0,this.carriedFromPrevious=void 0,this.forbiddenState=be,this.attribList=[];let{fragmentOpt:n}=this;this.state=n?V:Oo,this.reportedTextBeforeRoot=this.reportedTextAfterRoot=this.closedRoot=this.sawRoot=n,this.xmlDeclPossible=!n,this.xmlDeclExpects=["version"],this.entityReturnState=void 0;let{defaultXMLVersion:i}=this.opt;if(i===void 0){if(this.opt.forceXMLVersion===!0)throw new Error("forceXMLVersion set but defaultXMLVersion is not set");i="1.0"}this.setXMLVersion(i),this.positionAtNewLine=0,this.doctype=!1,this._closed=!1,this.xmlDecl={version:void 0,encoding:void 0,standalone:void 0},this.line=1,this.column=0,this.ENTITIES=Object.create(wl),(e=this.readyHandler)===null||e===void 0||e.call(this)}get position(){return this.chunkPosition+this.i}get columnIndex(){return this.position-this.positionAtNewLine}on(e,n){this[Vo[e]]=n}off(e){this[Vo[e]]=void 0}makeError(e){var n;let i=(n=this.fileName)!==null&&n!==void 0?n:"";return this.trackPosition&&(i.length>0&&(i+=":"),i+=`${this.line}:${this.column}`),i.length>0&&(i+=": "),new Error(i+e)}fail(e){let n=this.makeError(e),i=this.errorHandler;if(i===void 0)throw n;return i(n),this}write(e){if(this.closed)return this.fail("cannot write after close; assign an onready handler.");let n=!1;e===null?(n=!0,e=""):typeof e=="object"&&(e=e.toString()),this.carriedFromPrevious!==void 0&&(e=`${this.carriedFromPrevious}${e}`,this.carriedFromPrevious=void 0);let i=e.length,o=e.charCodeAt(i-1);!n&&(o===vn||o>=55296&&o<=56319)&&(this.carriedFromPrevious=e[i-1],i--,e=e.slice(0,i));let{stateTable:r}=this;for(this.chunk=e,this.i=0;this.i<i;)r[this.state].call(this);return this.chunkPosition+=i,n?this.end():this}close(){return this.write(null)}getCode10(){let{chunk:e,i:n}=this;if(this.prevI=n,this.i=n+1,n>=e.length)return P;let i=e.charCodeAt(n);if(this.column++,i<55296){if(i>=Ko||i===wn)return i;switch(i){case oe:return this.line++,this.column=0,this.positionAtNewLine=this.position,oe;case vn:return e.charCodeAt(n+1)===oe&&(this.i=n+2),this.line++,this.column=0,this.positionAtNewLine=this.position,ae;default:return this.fail("disallowed character."),i}}if(i>56319)return i>=57344&&i<=65533||this.fail("disallowed character."),i;let o=65536+(i-55296)*1024+(e.charCodeAt(n+1)-56320);return this.i=n+2,o>1114111&&this.fail("disallowed character."),o}getCode11(){let{chunk:e,i:n}=this;if(this.prevI=n,this.i=n+1,n>=e.length)return P;let i=e.charCodeAt(n);if(this.column++,i<55296){if(i>31&&i<127||i>159&&i!==qo||i===wn)return i;switch(i){case oe:return this.line++,this.column=0,this.positionAtNewLine=this.position,oe;case vn:{let r=e.charCodeAt(n+1);(r===oe||r===Go)&&(this.i=n+2)}case Go:case qo:return this.line++,this.column=0,this.positionAtNewLine=this.position,ae;default:return this.fail("disallowed character."),i}}if(i>56319)return i>=57344&&i<=65533||this.fail("disallowed character."),i;let o=65536+(i-55296)*1024+(e.charCodeAt(n+1)-56320);return this.i=n+2,o>1114111&&this.fail("disallowed character."),o}getCodeNorm(){let e=this.getCode();return e===ae?oe:e}unget(){this.i=this.prevI,this.column--}captureTo(e){let{i:n}=this,{chunk:i}=this;for(;;){let o=this.getCode(),r=o===ae,s=r?oe:o;if(s===P||e.includes(s))return this.text+=i.slice(n,this.prevI),s;r&&(this.text+=`${i.slice(n,this.prevI)}
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from "node:module";import { dirname as __pathDirname } from "node:path";import { fileURLToPath as __fileURLToPath } from "node:url";const require = __createRequire(import.meta.url);const __filename = __fileURLToPath(import.meta.url);const __dirname = __pathDirname(__filename);
2
- import{a,b,c,d,e,f,g}from"./chunk-UXSJP3YM.js";import"./chunk-7EOZF4HA.js";import"./chunk-SDZLOCRA.js";import"./chunk-QE47NRKX.js";import"./chunk-5ZMA4MIX.js";import"./chunk-ZT24MY2V.js";import"./chunk-REEBSQ75.js";import"./chunk-E7J2DJY7.js";import"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";export{f as PLUGIN_CLI_HEADERS_TIMEOUT_MS,b as describeUnreachableServer,c as fetchPluginCliContributions,d as findDisabledPluginForCommand,e as findPluginCliCommand,a as pluginCommandLabel,g as runPluginCliCommand};
2
+ import{a,b,c,d,e,f,g}from"./chunk-GVXLVAX4.js";import"./chunk-F7XCHQA3.js";import"./chunk-HDUE2YKX.js";import"./chunk-NZY63D4X.js";import"./chunk-FZ76WJJG.js";import"./chunk-ZT24MY2V.js";import"./chunk-L5UJ4QUD.js";import"./chunk-E7J2DJY7.js";import"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";export{f as PLUGIN_CLI_HEADERS_TIMEOUT_MS,b as describeUnreachableServer,c as fetchPluginCliContributions,d as findDisabledPluginForCommand,e as findPluginCliCommand,a as pluginCommandLabel,g as runPluginCliCommand};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __createRequire } from "node:module";import { dirname as __pathDirname } from "node:path";import { fileURLToPath as __fileURLToPath } from "node:url";const require = __createRequire(import.meta.url);const __filename = __fileURLToPath(import.meta.url);const __dirname = __pathDirname(__filename);
2
+ import{a as I}from"./chunk-UCNQXYXP.js";import{c as v,d as f,f as C}from"./chunk-CZ4K4Z4T.js";import{c as g,d as w}from"./chunk-XSBF3HQR.js";import{a as d,d as y,j as m}from"./chunk-DCRUVPRR.js";import"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{b as s}from"./chunk-F7XCHQA3.js";import"./chunk-HDUE2YKX.js";import{i as S}from"./chunk-NZY63D4X.js";import"./chunk-FZ76WJJG.js";import"./chunk-ZT24MY2V.js";import"./chunk-L5UJ4QUD.js";import"./chunk-E7J2DJY7.js";import"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";import{readFile as k,writeFile as q}from"node:fs/promises";import{basename as E}from"node:path";function P(o){return o.option("--machine <id-or-name>","Project source machine").option("--host <id-or-name>","Alias for --machine").option("--environment <id>","Environment workspace (mutually exclusive with machine)")}function A(o){if(o===void 0)return;let n=S.safeParse(o);if(n.success)return n.data;throw new Error(`Invalid permission escalation '${o}'. Expected ask or deny.`)}function N(o){if(o.clone&&o.path)throw new Error("Cannot combine --clone with --path.");if(!o.clone&&(o.remoteUrl||o.targetPath))throw new Error("--remote-url and --target-path require --clone.");if(!o.clone&&!o.path)throw new Error("Provide --path or --clone.")}function $(o){if(o.clone)return{hostId:o.hostId,type:"clone",...o.remoteUrl?{remoteUrl:o.remoteUrl}:{},...o.targetPath?{targetPath:o.targetPath}:{}};if(!o.path)throw new Error("Provide --path or --clone.");return{hostId:o.hostId,path:o.path,type:"local_path"}}function R(o){if(o.path)return{hostId:o.hostId,path:o.path,type:"local_path"};throw new Error("Provide --path.")}async function b(o,n){let r=v(o);return r?C({requireConnected:!0,serverUrl:n,target:r}):I()}function J(o,n){let r=o.sources.find(l=>l.id===n);if(!r)throw new Error(`Project source ${n} not found on project ${o.id}.`);return r}function T(o,n){if(!n.path&&!n.default)throw new Error("Provide --path and/or --default.");return{...n.default?{isDefault:!0}:{},...n.path?{path:n.path}:{},type:o.type}}function F(o){return o.sources.find(n=>n.isDefault)??o.sources[0]}function D(o){let n=o.isDefault?" [default]":"";console.log(`${o.id} ${o.type} ${o.path}${n}`)}async function L(o,n,r){if(r!==void 0){let t=r.trim();if(t.length===0)throw new Error("--mime-type must not be empty.");return t}let{default:l}=await import("./mime-types-35XNWBDI.js"),h=l.lookup(n)||l.lookup(o);return typeof h=="string"?h:"application/octet-stream"}function Q(o,n){let r=o.command("project").description("Inspect and manage projects"),l=r.command("source").description("Manage project sources"),h=r.command("attachment").description("Upload and download server-managed project attachments");h.command("upload <id>").description("Upload a file read from this CLI machine").requiredOption("--client-file <path>","File path on this CLI machine (not the thread execution host)").option("--filename <name>","Filename stored in attachment metadata").option("--mime-type <type>","MIME type (inferred from filename by default)").option("--json","Print the uploaded attachment DTO").action(m(async(t,e)=>{let i=e.filename??E(e.clientFile);if(i.trim().length===0)throw new Error("Attachment filename must not be empty.");let a=await k(e.clientFile),c=await s(n()).projects.attachments.upload({clientFile:a,filename:i,mimeType:await L(e.clientFile,i,e.mimeType),projectId:t});d(e,c)||console.log(`Attachment uploaded: ${c.path}`)})),h.command("download <id> <attachmentPath>").description("Download an attachment to this CLI machine").requiredOption("--client-file <path>","Destination path on this CLI machine").option("--json","Print machine-readable download metadata").action(m(async(t,e,i)=>{let a=await s(n()).projects.attachments.read({path:e,projectId:t});await q(i.clientFile,a.bytes);let c={attachmentPath:e,clientFile:i.clientFile,mimeType:a.mimeType,sizeBytes:a.sizeBytes};d(i,c)||console.log(`Attachment downloaded: ${i.clientFile}`)})),r.command("list").description("List projects").option("--include-personal","Include the personal project").option("--json","Print machine-readable JSON output").action(m(async t=>{let i=await s(n()).projects.list({includePersonal:t.includePersonal});if(!d(t,i)){if(i.length===0){console.log("No projects found");return}x(i)}})),r.command("discover").description("Find git repositories used recently on a machine").option("--machine <id-or-name>","Machine to scan").option("--host <id-or-name>","Alias for --machine").option("--json","Print machine-readable JSON output").action(m(async t=>{let e=n(),i=s(e),a=await b(t,e),c=await i.hosts.experimental_discoverRepos({hostId:a});d(t,c)||(c.repos.length===0?console.log("No recently used git repositories found"):M(c.repos),c.truncated&&console.log("The scan ran out of time, so the list may be partial."))})),r.command("history <id>").description("List a project's prompt history").option("--limit <count>","Maximum history entries").option("--json","Print machine-readable JSON output").action(m(async(t,e)=>{if(e.limit!==void 0&&!/^\d+$/u.test(e.limit))throw new Error("--limit must be a positive integer.");let i=await s(n()).projects.promptHistory({projectId:t,...e.limit?{limit:e.limit}:{}});d(e,i)||console.log(JSON.stringify(i,null,2))})),r.command("reorder <id>").description("Move a project between adjacent projects").option("--after <id>","Previous project, or omit for the start").option("--before <id>","Next project, or omit for the end").option("--json","Print machine-readable JSON output").action(m(async(t,e)=>{let i=await s(n()).projects.reorder({projectId:t,previousProjectId:e.after??null,nextProjectId:e.before??null});d(e,i)||console.log(`Project ${t} reordered`)})),r.command("branches <id>").description("List branches available for a project source").requiredOption("--host <id>","Source machine ID").option("--query <query>","Branch-name filter").option("--limit <count>","Maximum branches").option("--json","Print machine-readable JSON output").action(m(async(t,e)=>{let i=await s(n()).projects.branches({projectId:t,hostId:e.host??"",...e.query?{query:e.query}:{},...e.limit?{limit:e.limit}:{}});d(e,i)||console.log(JSON.stringify(i,null,2))})),P(r.command("paths <id>")).description("Search project workspace files and directories").option("--query <query>","Fuzzy path query").option("--limit <count>","Maximum paths").option("--json","Print machine-readable JSON output").action(m(async(t,e)=>{let i=n(),a=await s(n()).projects.paths({projectId:t,...await f(e,i),includeFiles:"true",includeDirectories:"true",...e.query?{query:e.query}:{},...e.limit?{limit:e.limit}:{}});d(e,a)||console.log(JSON.stringify(a,null,2))})),P(r.command("commands <id>")).description("List provider commands and skills available to a project").requiredOption("--provider <id>","Provider ID").option("--json","Print machine-readable JSON output").action(m(async(t,e)=>{let i=n(),a=await s(n()).projects.commands({projectId:t,provider:e.provider??"",...await f(e,i)});d(e,a)||console.log(JSON.stringify(a,null,2))})),P(r.command("files <id>")).description("List files in a project workspace").option("--query <query>","Fuzzy file query").option("--limit <count>","Maximum files").option("--json","Print machine-readable JSON output").action(m(async(t,e)=>{let i=n(),a=await s(i).projects.files({projectId:t,...await f(e,i),...e.query?{query:e.query}:{},...e.limit?{limit:e.limit}:{}});d(e,a)||console.log(JSON.stringify(a,null,2))})),P(r.command("content <id> <path>")).description("Read project workspace file content").option("--json","Print machine-readable JSON output").action(m(async(t,e,i)=>{let a=n(),c=await s(a).projects.fileContent({projectId:t,path:e,...await f(i,a)});d(i,c)||console.log(c.content)})),r.command("create").description("Create a project").requiredOption("--name <name>","Project name").option("--root <path>","Project source path").option("--machine <id-or-name>","Execution machine ID or unambiguous name").option("--host <id-or-name>","Alias for --machine").option("--json","Print machine-readable JSON output").action(m(async t=>{let e=n(),i=s(e),a=await b(t,e),c=R({hostId:a,path:t.root}),p=await i.projects.create({name:t.name,source:c});d(t,p)||(console.log(`Project created: ${p.id}`),O(p))})),r.command("show <id>").description("Show project details").option("--json","Print machine-readable JSON output").action(m(async(t,e)=>{let a=await s(n()).projects.get({projectId:t});d(e,a)||O(a)})),r.command("update <id>").description("Update a project").option("--name <name>","Set the project name").option("--permission-escalation <ask|deny>","ask lets turns a person sends request approval; deny refuses every sandbox escalation without asking").option("--json","Print machine-readable JSON output").action(m(async(t,e)=>{let i=A(e.permissionEscalation);if(!e.name&&i===void 0)throw new Error("No changes requested. Provide --name or --permission-escalation.");let c=await s(n()).projects.update({projectId:t,...e.name?{name:e.name}:{},...i!==void 0?{permissionEscalation:i}:{}});d(e,c)||(console.log(`Project ${c.id} updated`),O(c))})),r.command("delete <id>").description("Delete a project and all its threads").option("--yes","Skip confirmation prompt").option("--json","Print machine-readable JSON output").action(m(async(t,e)=>{if(!e.yes&&!await y(`Delete project ${t} and all its threads?`)){console.log("Aborted.");return}await s(n()).projects.delete({projectId:t}),!d(e,{ok:!0,id:t})&&console.log(`Project ${t} deleted`)})),l.command("add <projectId>").description("Add a source to a project").option("--path <path>","Local path source").option("--clone","Clone the project's Git remote on the machine").option("--remote-url <url>","Git remote URL override for --clone").option("--target-path <path>","Destination path override for --clone").option("--machine <id-or-name>","Execution machine ID or unambiguous name").option("--host <id-or-name>","Alias for --machine").option("--default","Mark the new source as default").option("--json","Print machine-readable JSON output").action(m(async(t,e)=>{let i=n(),a=s(i);N(e);let c=await b(e,i),p=$({...e,hostId:c}),j=await a.projects.sources.add({projectId:t,...p}),u=e.default?await a.projects.sources.update({projectId:t,sourceId:j.id,isDefault:!0,type:"local_path"}):j;d(e,u)||(console.log(`Project source added: ${u.id}`),D(u))})),l.command("update <projectId> <sourceId>").description("Update a project source").option("--path <path>","New local path for a local path source").option("--default","Mark this source as default").option("--json","Print machine-readable JSON output").action(m(async(t,e,i)=>{let a=s(n()),c=await a.projects.get({projectId:t}),p=J(c,e),j=T(p,i),u=await a.projects.sources.update({projectId:t,sourceId:e,...j});d(i,u)||(console.log(`Project source updated: ${u.id}`),D(u))})),l.command("delete <projectId> <sourceId>").description("Delete a project source").option("--yes","Skip confirmation prompt").option("--json","Print machine-readable JSON output").action(m(async(t,e,i)=>{if(!i.yes&&!await y(`Delete project source ${e} from project ${t}?`)){console.log("Aborted.");return}await s(n()).projects.sources.delete({projectId:t,sourceId:e}),!d(i,{ok:!0,projectId:t,sourceId:e})&&console.log(`Project source ${e} deleted`)}))}function O(o){if(console.log(""),console.log(` ID: ${o.id}`),console.log(` Name: ${o.name}`),console.log(` Escalation: ${o.permissionEscalation}`),console.log(` Created: ${new Date(o.createdAt).toLocaleString()}`),console.log(` Updated: ${new Date(o.updatedAt).toLocaleString()}`),o.sources.length>0){console.log(" Sources:");for(let n of o.sources){let r=n.isDefault?" [default]":"";console.log(` ${n.type} ${n.path}${r}`)}}console.log("")}function M(o){let n=o.map(r=>[r.name,r.path,r.lastActivityAt.slice(0,10),r.projectId??"-"]);g({head:["NAME","PATH","LAST ACTIVE","PROJECT"],colWidths:w([["NAME","PATH","LAST ACTIVE","PROJECT"],...n],[4,4,4,4]),trimTrailingWhitespace:!0},n)}function x(o){let n=o.map(r=>{let l=F(r);return[r.id,r.name,l?.path??"-"]});g({head:["ID","Name","Path"],colWidths:w(n,[4,4,4]),trimTrailingWhitespace:!0},n)}export{Q as registerProjectCommands};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from "node:module";import { dirname as __pathDirname } from "node:path";import { fileURLToPath as __fileURLToPath } from "node:url";const require = __createRequire(import.meta.url);const __filename = __fileURLToPath(import.meta.url);const __dirname = __pathDirname(__filename);
2
- import{c as p,d as a,e as c}from"./chunk-XSBF3HQR.js";import{a as s,j as m}from"./chunk-ZWBRH7R6.js";import"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{b as n}from"./chunk-7EOZF4HA.js";import"./chunk-SDZLOCRA.js";import"./chunk-QE47NRKX.js";import"./chunk-5ZMA4MIX.js";import"./chunk-ZT24MY2V.js";import"./chunk-REEBSQ75.js";import"./chunk-E7J2DJY7.js";import"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";var u=80;function d(r){return r.input.map(t=>{switch(t.type){case"text":return t.text;case"image":case"localImage":return"[image]";case"localFile":return`[file ${t.name??t.path}]`}}).join(" ")}function y(r){let t=r.map(e=>[new Date(e.createdAt).toISOString(),e.threadId,c(d(e),u)]);p({head:["Created","Thread","Prompt"],colWidths:a(t,[7,6,6]),trimTrailingWhitespace:!0},t)}function b(r,t){r.command("prompt-history").description("List prompt history across threads and projects").command("list").description("List prompt history newest first").option("--cursor <cursor>","Continue from an earlier page").option("--limit <number>","Maximum entries to return").option("--json","Print machine-readable JSON output").action(m(async o=>{let i=await n(t()).experimental_promptHistory.list({cursor:o.cursor,limit:o.limit});if(!s(o,i)&&(i.entries.length===0?console.log("No prompt history found"):y(i.entries),i.nextCursor!==null)){let l=o.limit===void 0?"":` --limit ${o.limit}`;console.log(`Next page: bb prompt-history list --cursor ${i.nextCursor}${l}`)}}))}export{b as registerPromptHistoryCommands};
2
+ import{c as p,d as a,e as c}from"./chunk-XSBF3HQR.js";import{a as s,j as m}from"./chunk-DCRUVPRR.js";import"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{b as n}from"./chunk-F7XCHQA3.js";import"./chunk-HDUE2YKX.js";import"./chunk-NZY63D4X.js";import"./chunk-FZ76WJJG.js";import"./chunk-ZT24MY2V.js";import"./chunk-L5UJ4QUD.js";import"./chunk-E7J2DJY7.js";import"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";var u=80;function d(r){return r.input.map(t=>{switch(t.type){case"text":return t.text;case"image":case"localImage":return"[image]";case"localFile":return`[file ${t.name??t.path}]`}}).join(" ")}function y(r){let t=r.map(e=>[new Date(e.createdAt).toISOString(),e.threadId,c(d(e),u)]);p({head:["Created","Thread","Prompt"],colWidths:a(t,[7,6,6]),trimTrailingWhitespace:!0},t)}function b(r,t){r.command("prompt-history").description("List prompt history across threads and projects").command("list").description("List prompt history newest first").option("--cursor <cursor>","Continue from an earlier page").option("--limit <number>","Maximum entries to return").option("--json","Print machine-readable JSON output").action(m(async o=>{let i=await n(t()).experimental_promptHistory.list({cursor:o.cursor,limit:o.limit});if(!s(o,i)&&(i.entries.length===0?console.log("No prompt history found"):y(i.entries),i.nextCursor!==null)){let l=o.limit===void 0?"":` --limit ${o.limit}`;console.log(`Next page: bb prompt-history list --cursor ${i.nextCursor}${l}`)}}))}export{b as registerPromptHistoryCommands};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from "node:module";import { dirname as __pathDirname } from "node:path";import { fileURLToPath as __fileURLToPath } from "node:url";const require = __createRequire(import.meta.url);const __filename = __fileURLToPath(import.meta.url);const __dirname = __pathDirname(__filename);
2
- import{d as f}from"./chunk-ATDR5E2C.js";import{c as p,d as v}from"./chunk-XSBF3HQR.js";import{a as c,j as u}from"./chunk-ZWBRH7R6.js";import"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{b as m}from"./chunk-7EOZF4HA.js";import{C as b}from"./chunk-SDZLOCRA.js";import"./chunk-QE47NRKX.js";import"./chunk-5ZMA4MIX.js";import"./chunk-ZT24MY2V.js";import"./chunk-REEBSQ75.js";import"./chunk-E7J2DJY7.js";import"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";function h(e){return e.option("--machine <id-or-name>","Machine whose providers should be used").option("--host <id-or-name>","Alias for --machine").option("--environment <id>","Environment whose machine providers should be used")}function E(e,t){let n=e.command("provider").description("Manage providers and inspect their models");h(n.command("list")).description("List available providers").option("--all","Include disabled providers and providers whose plugins are disabled").option("--json","Print machine-readable JSON output").action(u(async i=>{let o=t(),r=m(o);if(i.all){if(i.machine||i.host||i.environment)throw new Error("--all shows the global provider catalog; omit --machine, --host and --environment.");let s=await r.providers.catalog();if(c(i,s))return;let a=s.map(l=>[l.id,l.displayName,l.pluginEnabled?l.enabled?l.available?"Enabled":"Unavailable":"Disabled":"Plugin disabled"]);p({head:["ID","Name","Status"],colWidths:v(a,[4,4,6])},a);return}let d=await r.providers.list(await f(i,o));if(!c(i,d)){if(d.length===0){console.log("No providers available");return}M(d)}}));for(let i of[!0,!1])n.command(`${i?"enable":"disable"} <providerId>`).description(i?"Enable a provider and its supplying plugin if needed":"Disable a provider without uninstalling its CLI or disabling its plugin").option("--json","Print machine-readable JSON output").action(u(async(o,r)=>{let d=await m(t()).providers.setEnabled({providerId:o,enabled:i});c(r,d)||console.log(`${o} ${i?"enabled":"disabled"}`)}));h(n.command("models [providerId]")).description("List available models for a provider").option("--project <id>","Project whose checkout on the machine the provider reads its models and options from").option("--json","Print machine-readable JSON output").option("--selected-model <model>","Include a selected-only model if it matches").action(u(async(i,o)=>{if(o.project!==void 0&&o.environment!==void 0)throw new Error("Cannot combine --project with --environment; the environment already selects its workspace.");let r=t(),d=m(r),s=await f(o,r),a=await d.providers.models({...s.environmentId!==void 0||o.project===void 0?s:{...s,projectId:o.project},...i?{providerId:i}:{}}),l=g({models:a.models,selectedOnlyModels:a.selectedOnlyModels,selectedModel:o.selectedModel});if(w(a.modelLoadError),!c(o,l)){if(l.length===0){console.log("No models available");return}O(l,i)}}))}function g(e){if(!e.selectedModel||e.models.some(n=>n.model===e.selectedModel))return e.models;let t=e.selectedOnlyModels.find(n=>n.model===e.selectedModel);return t?[t,...e.models]:e.models}function M(e){let t=e.map(n=>[n.id,n.displayName]);p({head:["ID","Name"],colWidths:v(t,[4,4])},t)}function w(e){e!==null&&(console.error(`Could not load models for ${e.providerId} (${e.code})`),e.detail!==null&&console.error(` ${e.detail}`))}function O(e,t){t&&console.log(`Models for ${t}:`);let n=e.some(o=>o.supportedServiceTiers!==void 0),i=e.map(o=>[o.model,o.displayName??o.model,o.isDefault?"*":"",...n?[o.supportedServiceTiers===void 0?"":o.supportedServiceTiers.length===0?"-":o.supportedServiceTiers.map(r=>r.id).join(", ")]:[]]);p({head:["Model","Name","Default",...n?["Service tiers"]:[]],colWidths:v(i,n?[5,4,7,13]:[5,4,7]),trimTrailingWhitespace:!0},i);for(let o of y(e))console.log(o)}function y(e){let t=b(e);return t.length===0?[]:["","Options (set with bb thread spawn --option <id>=<value>):",...t.map(n=>n.type==="boolean"?` ${n.id} (${n.label}): true | false, default ${String(n.value)}`:` ${n.id} (${n.label}): ${n.values.map(i=>i.id).join(" | ")}, default ${n.value}`)]}export{y as formatDeclaredSessionOptions,E as registerProviderCommands};
2
+ import{d as f}from"./chunk-CZ4K4Z4T.js";import{c as p,d as v}from"./chunk-XSBF3HQR.js";import{a as c,j as u}from"./chunk-DCRUVPRR.js";import"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{b as m}from"./chunk-F7XCHQA3.js";import{C as b}from"./chunk-HDUE2YKX.js";import"./chunk-NZY63D4X.js";import"./chunk-FZ76WJJG.js";import"./chunk-ZT24MY2V.js";import"./chunk-L5UJ4QUD.js";import"./chunk-E7J2DJY7.js";import"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";function h(e){return e.option("--machine <id-or-name>","Machine whose providers should be used").option("--host <id-or-name>","Alias for --machine").option("--environment <id>","Environment whose machine providers should be used")}function E(e,t){let n=e.command("provider").description("Manage providers and inspect their models");h(n.command("list")).description("List available providers").option("--all","Include disabled providers and providers whose plugins are disabled").option("--json","Print machine-readable JSON output").action(u(async i=>{let o=t(),r=m(o);if(i.all){if(i.machine||i.host||i.environment)throw new Error("--all shows the global provider catalog; omit --machine, --host and --environment.");let s=await r.providers.catalog();if(c(i,s))return;let a=s.map(l=>[l.id,l.displayName,l.pluginEnabled?l.enabled?l.available?"Enabled":"Unavailable":"Disabled":"Plugin disabled"]);p({head:["ID","Name","Status"],colWidths:v(a,[4,4,6])},a);return}let d=await r.providers.list(await f(i,o));if(!c(i,d)){if(d.length===0){console.log("No providers available");return}M(d)}}));for(let i of[!0,!1])n.command(`${i?"enable":"disable"} <providerId>`).description(i?"Enable a provider and its supplying plugin if needed":"Disable a provider without uninstalling its CLI or disabling its plugin").option("--json","Print machine-readable JSON output").action(u(async(o,r)=>{let d=await m(t()).providers.setEnabled({providerId:o,enabled:i});c(r,d)||console.log(`${o} ${i?"enabled":"disabled"}`)}));h(n.command("models [providerId]")).description("List available models for a provider").option("--project <id>","Project whose checkout on the machine the provider reads its models and options from").option("--json","Print machine-readable JSON output").option("--selected-model <model>","Include a selected-only model if it matches").action(u(async(i,o)=>{if(o.project!==void 0&&o.environment!==void 0)throw new Error("Cannot combine --project with --environment; the environment already selects its workspace.");let r=t(),d=m(r),s=await f(o,r),a=await d.providers.models({...s.environmentId!==void 0||o.project===void 0?s:{...s,projectId:o.project},...i?{providerId:i}:{}}),l=g({models:a.models,selectedOnlyModels:a.selectedOnlyModels,selectedModel:o.selectedModel});if(w(a.modelLoadError),!c(o,l)){if(l.length===0){console.log("No models available");return}O(l,i)}}))}function g(e){if(!e.selectedModel||e.models.some(n=>n.model===e.selectedModel))return e.models;let t=e.selectedOnlyModels.find(n=>n.model===e.selectedModel);return t?[t,...e.models]:e.models}function M(e){let t=e.map(n=>[n.id,n.displayName]);p({head:["ID","Name"],colWidths:v(t,[4,4])},t)}function w(e){e!==null&&(console.error(`Could not load models for ${e.providerId} (${e.code})`),e.detail!==null&&console.error(` ${e.detail}`))}function O(e,t){t&&console.log(`Models for ${t}:`);let n=e.some(o=>o.supportedServiceTiers!==void 0),i=e.map(o=>[o.model,o.displayName??o.model,o.isDefault?"*":"",...n?[o.supportedServiceTiers===void 0?"":o.supportedServiceTiers.length===0?"-":o.supportedServiceTiers.map(r=>r.id).join(", ")]:[]]);p({head:["Model","Name","Default",...n?["Service tiers"]:[]],colWidths:v(i,n?[5,4,7,13]:[5,4,7]),trimTrailingWhitespace:!0},i);for(let o of y(e))console.log(o)}function y(e){let t=b(e);return t.length===0?[]:["","Options (set with bb thread spawn --option <id>=<value>):",...t.map(n=>n.type==="boolean"?` ${n.id} (${n.label}): true | false, default ${String(n.value)}`:` ${n.id} (${n.label}): ${n.values.map(i=>i.id).join(" | ")}, default ${n.value}`)]}export{y as formatDeclaredSessionOptions,E as registerProviderCommands};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __createRequire } from "node:module";import { dirname as __pathDirname } from "node:path";import { fileURLToPath as __fileURLToPath } from "node:url";const require = __createRequire(import.meta.url);const __filename = __fileURLToPath(import.meta.url);const __dirname = __pathDirname(__filename);
2
- import{c as gt}from"./chunk-ZXUCBQR7.js";import{f as vt}from"./chunk-ATDR5E2C.js";import"./chunk-XSBF3HQR.js";import{a as f,d as b,e as ht,i as x,j as w}from"./chunk-ZWBRH7R6.js";import{d as ft}from"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{b as G}from"./chunk-7EOZF4HA.js";import{ba as ce,t as mt}from"./chunk-SDZLOCRA.js";import{e as C}from"./chunk-QE47NRKX.js";import"./chunk-5ZMA4MIX.js";import{b as pt}from"./chunk-ZT24MY2V.js";import"./chunk-REEBSQ75.js";import{e as Pe,f as Re}from"./chunk-E7J2DJY7.js";import{a as s}from"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";import{createHash as Es,randomBytes as bs}from"node:crypto";import{existsSync as xs}from"node:fs";import{open as As,rename as Ms,rm as Ps,stat as dt}from"node:fs/promises";import{basename as Rs,dirname as jr,join as ut,resolve as Lr}from"node:path";import{pipeline as _s}from"node:stream/promises";function St(e){if(e.length===0)return!1;let t=e.replaceAll("\\","/");return!t.startsWith("/")&&!/^[a-zA-Z]:\//u.test(t)&&t.split("/").every(r=>r!==""&&r!=="."&&r!=="..")}var Jr=s.string().min(1).refine(St,"Skill roots must be relative paths without dot segments"),wt=s.array(Jr).superRefine((e,t)=>{new Set(e).size!==e.length&&t.addIssue({code:"custom",message:"Skill roots must not contain duplicates"})}),yt=s.object({user:wt.default([]),project:wt.default([])}).strict(),Et=s.record(C,s.string().min(1)),Ls=s.object({flag:s.string().min(1),supportedLevels:s.array(C).min(1),levelValues:Et.optional(),defaultLevel:C.optional()}).strict().superRefine((e,t)=>{let r=new Set(e.supportedLevels);r.size!==e.supportedLevels.length&&t.addIssue({code:"custom",message:"supportedLevels must not contain duplicates",path:["supportedLevels"]}),e.defaultLevel!==void 0&&!r.has(e.defaultLevel)&&t.addIssue({code:"custom",message:"defaultLevel must be one of supportedLevels",path:["defaultLevel"]})}),Vs=s.object({configId:s.string().min(1),supportedLevels:s.array(C).min(1),levelValues:Et.optional(),defaultLevel:C.optional()}).strict().superRefine((e,t)=>{let r=new Set(e.supportedLevels);r.size!==e.supportedLevels.length&&t.addIssue({code:"custom",message:"supportedLevels must not contain duplicates",path:["supportedLevels"]}),e.defaultLevel!==void 0&&!r.has(e.defaultLevel)&&t.addIssue({code:"custom",message:"defaultLevel must be one of supportedLevels",path:["defaultLevel"]})}),_e=s.array(s.string().min(1)).min(1),Hs=s.object({full:_e.optional(),workspaceWrite:_e.optional(),readonly:_e.optional(),insertAfterArgs:s.number().int().min(0).optional()}).strict().superRefine((e,t)=>{e.full===void 0&&e.workspaceWrite===void 0&&e.readonly===void 0&&t.addIssue({code:"custom",message:"permissionCli must configure at least one permission mode"})});var Wr=["stop-work","update-target","export","transfer","start-target","verify-address","switch"],Ie=s.enum(Wr),K=s.enum(["connect","direct"]),le=s.object({moveId:s.string().min(1),fromHostId:s.string().min(1),fromHostName:s.string().min(1),toHostId:s.string().min(1),toHostName:s.string().min(1),completedAt:s.number().int().nonnegative(),oldCopyDeletedAt:s.number().int().nonnegative().nullable()}).strict(),bt=["B","KB","MB","GB","TB"];function q(e){let t=e,r=0;for(;t>=1024&&r<bt.length-1;)t/=1024,r+=1;return`${r===0||t>=10?Math.round(t):t.toFixed(1)} ${bt[r]}`}import{rm as Ct}from"node:fs/promises";import{resolve as Ot,sep as mn}from"node:path";import{rm as cn,unlink as ln}from"node:fs/promises";import{join as E}from"node:path";var d=class extends Error{constructor(r,n,i){super(n,i);this.code=r;this.name="ServerArchiveError"}code};function v(e,t){return e instanceof Error&&"code"in e&&e.code===t}import{randomBytes as Gr}from"node:crypto";import{mkdir as Kr,readFile as qr,rename as Yr,rm as Xr,writeFile as Zr}from"node:fs/promises";import{dirname as Qr}from"node:path";async function ke(e){try{return await qr(e,"utf8")}catch(t){if(v(t,"ENOENT"))return null;throw t}}function Fe(e,t){try{return JSON.parse(t)}catch(r){throw new Error(`Invalid JSON at ${e}`,{cause:r})}}async function de(e,t){let r=await ke(e);if(r===null)return null;let n=t.safeParse(Fe(e,r));if(!n.success)throw new Error(`Invalid ${e}: ${n.error.message}`,{cause:n.error});return n.data}async function Y(e,t){await Kr(Qr(e),{recursive:!0});let r=`${e}.${Gr(6).toString("hex")}.tmp`;try{await Zr(r,`${JSON.stringify(t,null,2)}
2
+ import{c as gt}from"./chunk-ZXUCBQR7.js";import{f as vt}from"./chunk-CZ4K4Z4T.js";import"./chunk-XSBF3HQR.js";import{a as f,d as b,e as ht,i as x,j as w}from"./chunk-DCRUVPRR.js";import{d as ft}from"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{b as G}from"./chunk-F7XCHQA3.js";import{ba as ce,t as mt}from"./chunk-HDUE2YKX.js";import{e as C}from"./chunk-NZY63D4X.js";import"./chunk-FZ76WJJG.js";import{b as pt}from"./chunk-ZT24MY2V.js";import"./chunk-L5UJ4QUD.js";import{e as Pe,f as Re}from"./chunk-E7J2DJY7.js";import{a as s}from"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";import{createHash as Es,randomBytes as bs}from"node:crypto";import{existsSync as xs}from"node:fs";import{open as As,rename as Ms,rm as Ps,stat as dt}from"node:fs/promises";import{basename as Rs,dirname as jr,join as ut,resolve as Lr}from"node:path";import{pipeline as _s}from"node:stream/promises";function St(e){if(e.length===0)return!1;let t=e.replaceAll("\\","/");return!t.startsWith("/")&&!/^[a-zA-Z]:\//u.test(t)&&t.split("/").every(r=>r!==""&&r!=="."&&r!=="..")}var Jr=s.string().min(1).refine(St,"Skill roots must be relative paths without dot segments"),wt=s.array(Jr).superRefine((e,t)=>{new Set(e).size!==e.length&&t.addIssue({code:"custom",message:"Skill roots must not contain duplicates"})}),yt=s.object({user:wt.default([]),project:wt.default([])}).strict(),Et=s.record(C,s.string().min(1)),Ls=s.object({flag:s.string().min(1),supportedLevels:s.array(C).min(1),levelValues:Et.optional(),defaultLevel:C.optional()}).strict().superRefine((e,t)=>{let r=new Set(e.supportedLevels);r.size!==e.supportedLevels.length&&t.addIssue({code:"custom",message:"supportedLevels must not contain duplicates",path:["supportedLevels"]}),e.defaultLevel!==void 0&&!r.has(e.defaultLevel)&&t.addIssue({code:"custom",message:"defaultLevel must be one of supportedLevels",path:["defaultLevel"]})}),Vs=s.object({configId:s.string().min(1),supportedLevels:s.array(C).min(1),levelValues:Et.optional(),defaultLevel:C.optional()}).strict().superRefine((e,t)=>{let r=new Set(e.supportedLevels);r.size!==e.supportedLevels.length&&t.addIssue({code:"custom",message:"supportedLevels must not contain duplicates",path:["supportedLevels"]}),e.defaultLevel!==void 0&&!r.has(e.defaultLevel)&&t.addIssue({code:"custom",message:"defaultLevel must be one of supportedLevels",path:["defaultLevel"]})}),_e=s.array(s.string().min(1)).min(1),Hs=s.object({full:_e.optional(),workspaceWrite:_e.optional(),readonly:_e.optional(),insertAfterArgs:s.number().int().min(0).optional()}).strict().superRefine((e,t)=>{e.full===void 0&&e.workspaceWrite===void 0&&e.readonly===void 0&&t.addIssue({code:"custom",message:"permissionCli must configure at least one permission mode"})});var Wr=["stop-work","update-target","export","transfer","start-target","verify-address","switch"],Ie=s.enum(Wr),K=s.enum(["connect","direct"]),le=s.object({moveId:s.string().min(1),fromHostId:s.string().min(1),fromHostName:s.string().min(1),toHostId:s.string().min(1),toHostName:s.string().min(1),completedAt:s.number().int().nonnegative(),oldCopyDeletedAt:s.number().int().nonnegative().nullable()}).strict(),bt=["B","KB","MB","GB","TB"];function q(e){let t=e,r=0;for(;t>=1024&&r<bt.length-1;)t/=1024,r+=1;return`${r===0||t>=10?Math.round(t):t.toFixed(1)} ${bt[r]}`}import{rm as Ct}from"node:fs/promises";import{resolve as Ot,sep as mn}from"node:path";import{rm as cn,unlink as ln}from"node:fs/promises";import{join as E}from"node:path";var d=class extends Error{constructor(r,n,i){super(n,i);this.code=r;this.name="ServerArchiveError"}code};function v(e,t){return e instanceof Error&&"code"in e&&e.code===t}import{randomBytes as Gr}from"node:crypto";import{mkdir as Kr,readFile as qr,rename as Yr,rm as Xr,writeFile as Zr}from"node:fs/promises";import{dirname as Qr}from"node:path";async function ke(e){try{return await qr(e,"utf8")}catch(t){if(v(t,"ENOENT"))return null;throw t}}function Fe(e,t){try{return JSON.parse(t)}catch(r){throw new Error(`Invalid JSON at ${e}`,{cause:r})}}async function de(e,t){let r=await ke(e);if(r===null)return null;let n=t.safeParse(Fe(e,r));if(!n.success)throw new Error(`Invalid ${e}: ${n.error.message}`,{cause:n.error});return n.data}async function Y(e,t){await Kr(Qr(e),{recursive:!0});let r=`${e}.${Gr(6).toString("hex")}.tmp`;try{await Zr(r,`${JSON.stringify(t,null,2)}
3
3
  `,{encoding:"utf8",mode:384}),await Yr(r,e)}catch(n){throw await Xr(r,{force:!0}),n}}import{join as en}from"node:path";var tn=4096,rn=/[\u0000-\u001f\u007f]/u;function O(e){return e.length===0||Buffer.byteLength(e)>tn||e.includes("\\")||rn.test(e)?!1:e.split("/").every(t=>t.length>0&&t!=="."&&t!=="..")}var xt=s.string().refine(O,{message:"Expected a relative POSIX path without '.' or '..' segments"});function Ne(e){let t=new Set;for(let r of e){if(t.has(r))return r;t.add(r)}for(let r of e){let n=r.split("/");for(let i=1;i<n.length;i+=1)if(t.has(n.slice(0,i).join("/")))return r}return null}function h(e,t){return en(e,...t.split("/"))}var At=["bb.db","config.json","env.json","auth-secret","machine-environment-key","AGENTS.md","telemetry-id"],Mt=["attachments","skills","theme"],Pt="plugins",nn=new Set(At),on=new Set(Mt),Rt=new Set(["npm","cache","snapshots"]),sn=new Set(["host-data","bridge-data","logs","data.db-wal","data.db-shm","data.db-journal"]),an="toolchain-";function _t(e){return!Rt.has(e)&&!e.startsWith(an)&&mt.safeParse(e).success}function It(e){let t=e.split("/"),r=t[0]??"";if(nn.has(r))return{path:r,kind:"file"};if(on.has(r))return{path:r,kind:"tree"};if(r!==Pt||t.length<2)return null;let n=t[1]??"";if(Rt.has(n))return{path:t.slice(0,2).join("/"),kind:"tree"};let i=t[2]??"";return t.length<3||!_t(n)||sn.has(i)?null:{path:t.slice(0,3).join("/"),kind:"tree"}}function X(e){if(!O(e))return!1;let t=It(e);return t!==null&&(t.kind==="tree"||t.path===e)}var Z="server-moved.json",R="server-import.json",D="server-import-journal.json";var Q="server-connect-hold.json",P=s.string().min(1),ue=s.number().int().nonnegative(),me=s.string().refine(X,{message:"Expected a server-owned path relative to the data directory"}),Te=s.object({version:s.literal(1),moveId:P,movedAt:ue,fromHostId:P,toHostId:P,toHostName:P,serverUrl:s.string().min(1),mode:K,connectHandle:s.string().min(1).nullable(),oldCopyEntries:s.array(me)}).strict(),dn=s.enum(["move","manual"]),kt=s.object({version:s.literal(1),kind:dn,moveId:P.nullable(),activationToken:s.string().min(1).nullable(),sourceDataDir:s.string().min(1),sourceServerHostId:P.nullable(),targetHostId:P.nullable(),serverUrl:s.string().min(1).nullable(),importedEntries:s.array(me),createdAt:ue,fixupsAppliedAt:ue.nullable()}).strict().superRefine((e,t)=>{e.kind==="move"&&(e.moveId===null&&t.addIssue({code:"custom",message:"A move import requires a moveId",path:["moveId"]}),e.activationToken===null&&t.addIssue({code:"custom",message:"A move import requires an activationToken",path:["activationToken"]}))}),Ft=s.object({version:s.literal(1),entries:s.array(me),preexistingEntries:s.array(me)}).strict(),da=le.extend({version:s.literal(1)}).strict(),un=s.object({version:s.literal(1),reason:s.literal("manual-import"),createdAt:ue}).strict();function B(e){return de(E(e,Z),Te)}async function Ce(e,t){await Y(E(e,Z),Te.parse(t))}function pe(e){return de(E(e,R),kt)}async function Oe(e,t){await Y(E(e,R),kt.parse(t))}function Nt(e){return de(E(e,D),Ft)}async function Tt(e,t){await Y(E(e,D),Ft.parse(t))}async function $(e){await cn(E(e,D),{force:!0})}async function ee(e){let t=await Nt(e);if(t===null)return{kind:"none"};let r=await pe(e);if(r===null)return{kind:"interrupted",journal:t};let n=new Set(r.importedEntries);return t.entries.every(i=>n.has(i))?{kind:"committed",journal:t}:{kind:"interrupted",journal:t}}async function De(e,t){await Y(E(e,Q),un.parse(t))}async function L(e){try{return await ln(E(e,Q)),!0}catch(t){if(v(t,"ENOENT"))return!1;throw t}}var pn=new Set(["auth.json","bb-app-runtime.json","checkouts","config.json","daemon.lock","env.json","host-id","last-server-move.json","logs","npm","personal-workspaces","runtime","server-moved.json","thread-storage","worktrees"]);async function Be(e,t,r=()=>{}){let n=Ot(e),i=[];for(let o of t.oldCopyEntries){let a=Ot(n,...o.split("/")),c=o.split("/")[0]??o;if(!a.startsWith(`${n}${mn}`)||pn.has(c)){r(o);continue}await Ct(a,{recursive:!0,force:!0}),o.endsWith(".db")&&await Promise.all(["-wal","-shm","-journal"].map(l=>Ct(`${a}${l}`,{force:!0}))),i.push(o)}return await Ce(e,{...t,oldCopyEntries:[]}),{dataDir:e,deleted:!0,deletedEntries:i}}import{open as hn}from"node:fs/promises";var $e=Buffer.from([31,139]),Dt=Buffer.from("BBSA","ascii");async function fn(e){let t=await hn(e,"r");try{let r=Buffer.alloc(Dt.length),{bytesRead:n}=await t.read(r,0,r.length,0);return r.subarray(0,n)}finally{await t.close()}}async function te(e){let t=await fn(e);if(t.equals(Dt))throw new d("unsupported_version","This export was encrypted by an older bb; re-export it with bb server export");if(t.length<$e.length||!t.subarray(0,$e.length).equals($e))throw new d("corrupt","File is not a bb server archive")}import{createHash as jn}from"node:crypto";import{createReadStream as zn,createWriteStream as Un}from"node:fs";import{mkdir as Jt,readdir as Jn,rm as Wn}from"node:fs/promises";import{dirname as Gn,join as Wt}from"node:path";import{pipeline as Gt}from"node:stream/promises";import{createGunzip as Kn}from"node:zlib";var Le="bb-server-archive",he=2,fe="manifest.json",_="files",vn=s.object({path:xt,size:s.number().int().nonnegative(),sha256:s.string().regex(/^[0-9a-f]{64}$/u)}).strict(),Ve=s.object({format:s.literal(Le),version:s.literal(he),createdAt:s.number().int().nonnegative(),bbVersion:s.string().min(1),protocolVersion:s.number().int().nonnegative(),migrationCount:s.number().int().nonnegative(),sourceDataDir:s.string().min(1),sourceServerHostId:s.string().min(1).nullable(),serverMoveExperiment:s.boolean(),entries:s.array(vn)}).strict().superRefine((e,t)=>{let r=Ne(e.entries.map(n=>n.path));r!==null&&t.addIssue({code:"custom",message:`Archive path ${r} conflicts with another entry`,path:["entries"]})}),gn=s.object({format:s.literal(Le),version:s.number()});function Bt(e){let t=gn.safeParse(e);if(!t.success)throw new d("corrupt","Archive manifest is not a bb server archive manifest");if(t.data.version!==he)throw new d("unsupported_version",`Unsupported bb server archive version ${String(t.data.version)}`);let r=Ve.safeParse(e);if(!r.success)throw new d("corrupt",`Archive manifest is invalid: ${r.error.message}`);return r.data}import{posix as V}from"node:path";var $t=(e,t)=>{if(Number.isSafeInteger(e))e<0?wn(e,t):Sn(e,t);else throw Error("cannot encode number outside of javascript safe integer range");return t},Sn=(e,t)=>{t[0]=128;for(var r=t.length;r>1;r--)t[r-1]=e&255,e=Math.floor(e/256)},wn=(e,t)=>{t[0]=255;var r=!1;e=e*-1;for(var n=t.length;n>1;n--){var i=e&255;e=Math.floor(e/256),r?t[n-1]=Vt(i):i===0?t[n-1]=0:(r=!0,t[n-1]=Ht(i))}},Lt=e=>{let t=e[0],r=t===128?En(e.subarray(1,e.length)):t===255?yn(e):null;if(r===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},yn=e=>{for(var t=e.length,r=0,n=!1,i=t-1;i>-1;i--){var o=Number(e[i]),a;n?a=Vt(o):o===0?a=o:(n=!0,a=Ht(o)),a!==0&&(r-=a*Math.pow(256,t-i-1))}return r},En=e=>{for(var t=e.length,r=0,n=t-1;n>-1;n--){var i=Number(e[n]);i!==0&&(r+=i*Math.pow(256,t-n-1))}return r},Vt=e=>(255^e)&255,Ht=e=>(255^e)+1&255;var ve=e=>ge.has(e);var jt=new Set(["0","","1","2","3","4","5","6","7","D"]),ge=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]),zt=new Map(Array.from(ge).map(e=>[e[1],e[0]]));var An=e=>e===void 0||e<0?void 0:e,H=class{cksumValid=!1;needPax=!1;nullBlock=!1;block;path;mode;uid;gid;size;cksum;#t="Unsupported";linkpath;uname;gname;devmaj=0;devmin=0;atime;ctime;mtime;charset;comment;constructor(t,r=0,n,i){Buffer.isBuffer(t)?this.decode(t,r||0,n,i):t&&this.#e(t)}decode(t,r,n,i){if(r||(r=0),!t||!(t.length>=r+512))throw new Error("need 512 bytes for header");let o=I(t,r+156,1),a=jt.has(o),c=a?n:void 0,l=a?i:void 0;if(this.path=c?.path??I(t,r,100),this.mode=c?.mode??l?.mode??A(t,r+100,8),this.uid=c?.uid??l?.uid??A(t,r+108,8),this.gid=c?.gid??l?.gid??A(t,r+116,8),this.size=An(c?.size??l?.size??A(t,r+124,12)),this.mtime=c?.mtime??l?.mtime??He(t,r+136,12),this.cksum=A(t,r+148,12),l&&this.#e(l,!0),c&&this.#e(c),ve(o)&&(this.#t=o||"0"),this.#t==="0"&&this.path.slice(-1)==="/"&&(this.#t="5"),this.#t==="5"&&(this.size=0),this.linkpath=I(t,r+157,100),t.subarray(r+257,r+265).toString()==="ustar\x0000")if(this.uname=c?.uname??l?.uname??I(t,r+265,32),this.gname=c?.gname??l?.gname??I(t,r+297,32),this.devmaj=c?.devmaj??l?.devmaj??A(t,r+329,8)??0,this.devmin=c?.devmin??l?.devmin??A(t,r+337,8)??0,t[r+475]!==0){let m=I(t,r+345,155);this.path=m+"/"+this.path}else{let m=I(t,r+345,130);m&&(this.path=m+"/"+this.path),this.atime=n?.atime??i?.atime??He(t,r+476,12),this.ctime=n?.ctime??i?.ctime??He(t,r+488,12)}let u=256;for(let m=r;m<r+148;m++)u+=t[m];for(let m=r+156;m<r+512;m++)u+=t[m];this.cksumValid=u===this.cksum,this.cksum===void 0&&u===256&&(this.nullBlock=!0)}#e(t,r=!1){Object.assign(this,Object.fromEntries(Object.entries(t).filter(([n,i])=>!(i==null||n==="size"&&Number(i)<0||n==="path"&&r||n==="linkpath"&&r||n==="global"))))}encode(t,r=0){if(t||(t=this.block=Buffer.alloc(512)),this.#t==="Unsupported"&&(this.#t="0"),!(t.length>=r+512))throw new Error("need 512 bytes for header");let n=this.ctime||this.atime?130:155,i=Mn(this.path||"",n),o=i[0],a=i[1];this.needPax=!!i[2],this.needPax=k(t,r,100,o)||this.needPax,this.needPax=M(t,r+100,8,this.mode)||this.needPax,this.needPax=M(t,r+108,8,this.uid)||this.needPax,this.needPax=M(t,r+116,8,this.gid)||this.needPax,this.needPax=M(t,r+124,12,this.size)||this.needPax,this.needPax=je(t,r+136,12,this.mtime)||this.needPax,t[r+156]=Number(this.#t.codePointAt(0)),this.needPax=k(t,r+157,100,this.linkpath)||this.needPax,t.write("ustar\x0000",r+257,8),this.needPax=k(t,r+265,32,this.uname)||this.needPax,this.needPax=k(t,r+297,32,this.gname)||this.needPax,this.needPax=M(t,r+329,8,this.devmaj)||this.needPax,this.needPax=M(t,r+337,8,this.devmin)||this.needPax,this.needPax=k(t,r+345,n,a)||this.needPax,t[r+475]!==0?this.needPax=k(t,r+345,155,a)||this.needPax:(this.needPax=k(t,r+345,130,a)||this.needPax,this.needPax=je(t,r+476,12,this.atime)||this.needPax,this.needPax=je(t,r+488,12,this.ctime)||this.needPax);let c=256;for(let l=r;l<r+148;l++)c+=t[l];for(let l=r+156;l<r+512;l++)c+=t[l];return this.cksum=c,M(t,r+148,8,this.cksum),this.cksumValid=!0,this.needPax}get type(){return this.#t==="Unsupported"?this.#t:ge.get(this.#t)}get typeKey(){return this.#t}set type(t){let r=String(zt.get(t));if(ve(r)||r==="Unsupported")this.#t=r;else if(ve(t))this.#t=t;else throw new TypeError("invalid entry type: "+t)}},Mn=(e,t)=>{let n=e,i="",o,a=V.parse(e).root||".";if(Buffer.byteLength(n)<100)o=[n,i,!1];else{i=V.dirname(n),n=V.basename(n);do Buffer.byteLength(n)<=100&&Buffer.byteLength(i)<=t?o=[n,i,!1]:Buffer.byteLength(n)>100&&Buffer.byteLength(i)<=t?o=[n.slice(0,99),i,!0]:(n=V.join(V.basename(i),n),i=V.dirname(i));while(i!==a&&o===void 0);o||(o=[e.slice(0,99),"",!0])}return o},I=(e,t,r)=>e.subarray(t,t+r).toString("utf8").replace(/\0.*/,""),He=(e,t,r)=>Pn(A(e,t,r)),Pn=e=>e===void 0?void 0:new Date(e*1e3),A=(e,t,r)=>Number(e[t])&128?Lt(e.subarray(t,t+r)):_n(e,t,r),Rn=e=>isNaN(e)?void 0:e,_n=(e,t,r)=>Rn(parseInt(e.subarray(t,t+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),In={12:8589934591,8:2097151},M=(e,t,r,n)=>n===void 0?!1:n>In[r]||n<0?($t(n,e.subarray(t,t+r)),!0):(kn(e,t,r,n),!1),kn=(e,t,r,n)=>e.write(Fn(n,r),t,r,"ascii"),Fn=(e,t)=>Nn(Math.floor(e).toString(8),t),Nn=(e,t)=>(e.length===t-1?e:new Array(t-e.length-1).join("0")+e+" ")+"\0",je=(e,t,r,n)=>n===void 0?!1:M(e,t,r,n.getTime()/1e3),Tn=new Array(156).join("\0"),k=(e,t,r,n)=>n===void 0?!1:(e.write(n+Tn,t,r,"utf8"),n.length!==Buffer.byteLength(n)||n.length>r);import{basename as Cn}from"node:path";var Se=class e{atime;mtime;ctime;charset;comment;gid;uid;gname;uname;linkpath;dev;ino;nlink;path;size;mode;global;constructor(t,r=!1){this.atime=t.atime,this.charset=t.charset,this.comment=t.comment,this.ctime=t.ctime,this.dev=t.dev,this.gid=t.gid,this.global=r,this.gname=t.gname,this.ino=t.ino,this.linkpath=t.linkpath,this.mtime=t.mtime,this.nlink=t.nlink,this.path=t.path,this.size=t.size,this.uid=t.uid,this.uname=t.uname}encode(){let t=this.encodeBody();if(t==="")return Buffer.allocUnsafe(0);let r=Buffer.byteLength(t),n=512*Math.ceil(1+r/512),i=Buffer.allocUnsafe(n);for(let o=0;o<512;o++)i[o]=0;new H({path:("PaxHeader/"+Cn(this.path??"")).slice(0,99),mode:this.mode||420,uid:this.uid,gid:this.gid,size:r,mtime:this.mtime,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime,ctime:this.ctime}).encode(i),i.write(t,512,r,"utf8");for(let o=r+512;o<i.length;o++)i[o]=0;return i}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(t){if(this[t]===void 0)return"";let r=this[t],n=r instanceof Date?r.getTime()/1e3:r,i=" "+(t==="dev"||t==="ino"||t==="nlink"?"SCHILY.":"")+t+"="+n+`
4
4
  `,o=Buffer.byteLength(i),a=Math.floor(Math.log(o)/Math.log(10))+1;return o+a>=Math.pow(10,a)&&(a+=1),a+o+i}static parse(t,r,n=!1){return new e(On(Dn(t),r),n)}},On=(e,t)=>t?Object.assign({},t,e):e,Dn=e=>e.replace(/\n$/,"").split(`
5
5
  `).reduce(Bn,Object.create(null)),Bn=(e,t)=>{let r=parseInt(t,10);if(r!==Buffer.byteLength(t)+1)return e;t=t.slice((r+" ").length);let n=t.split("="),i=n.shift();if(!i)return e;let o=i.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),a=n.join("=").replace(/\0.*/,"");switch(o){case"path":case"linkpath":case"type":case"charset":case"comment":case"gname":case"uname":e[o]=a;break;case"ctime":case"atime":case"mtime":e[o]=new Date(Number(a)*1e3);break;case"size":let c=+a;c>=0&&(e[o]=c);break;case"gid":case"uid":case"dev":case"ino":case"nlink":case"mode":e[o]=+a;break}return e};var re=512,$n=Buffer.alloc(re),Ln=1024*1024,Vn=1024*1024,Hn=Buffer.alloc(re*2);function Ut(e){let t=e%re;return t===0?Buffer.alloc(0):Buffer.alloc(re-t)}function g(e){return new d("corrupt",e)}var we=class{#t;#e=Buffer.alloc(0);#s=!1;#r=0;constructor(t){this.#t=t[Symbol.asyncIterator]()}async#i(){if(this.#s)return!1;let t=await this.#t.next();return t.done===!0?(this.#s=!0,!1):(this.#e=this.#e.length===0?t.value:Buffer.concat([this.#e,t.value]),!0)}async#n(t){for(;this.#e.length<t;)if(!await this.#i()){if(this.#e.length===0)return null;throw g("Archive is truncated")}let r=this.#e.subarray(0,t);return this.#e=this.#e.subarray(t),r}async#o(t){let r=Ut(t).length;if(r>0&&await this.#n(r)===null)throw g("Archive is truncated")}async#a(){let t=0;for(;;){if(t+=this.#e.length,t>Vn||!this.#e.equals(Buffer.alloc(this.#e.length)))throw g("Archive has unexpected trailing data");if(this.#e=Buffer.alloc(0),!await this.#i())return}}async nextEntry(){if(this.#r>0)throw new Error("The previous tar entry body was not consumed");let t;for(;;){let r=await this.#n(re);if(r===null)throw g("Archive ended without an end-of-archive marker");if(r.equals($n)){if(t!==void 0)throw g("Archive ended after an extended header");return await this.#a(),null}let n=new H(r,0,t);if(!n.cksumValid)throw g("Archive entry header checksum is invalid");let i=n.size;if(i===void 0||!Number.isSafeInteger(i))throw g("Archive entry size is invalid");if(n.type==="ExtendedHeader"){if(t!==void 0)throw g("Archive has consecutive extended headers");if(i>Ln)throw g("Archive extended header is too large");let o=await this.#n(i);if(o===null)throw g("Archive is truncated");await this.#o(i),t=Se.parse(o.toString("utf8"),void 0,!1);continue}return this.#r=i,{path:t?.path??n.path??"",type:n.type,size:i,mode:n.mode??null}}}async readBodyBuffer(){let t=this.#r,r=t===0?Buffer.alloc(0):await this.#n(t);if(r===null)throw g("Archive is truncated");return this.#r=0,await this.#o(t),Buffer.from(r)}async*readBody(){let t=this.#r;for(;this.#r>0;){if(this.#e.length===0&&!await this.#i())throw g("Archive is truncated");let r=Math.min(this.#r,this.#e.length),n=this.#e.subarray(0,r);this.#e=this.#e.subarray(r),this.#r-=r,yield n}await this.#o(t)}};var qn=64*1024*1024;async function Yn(e){if(await Jt(e,{recursive:!0}),(await Jn(e)).length>0)throw new Error(`Archive extraction destination ${e} is not empty`)}function Xn(e){return e===null?384:e&493|384}function Zn(e){let t=`${_}/`,r=e.startsWith(t)?e.slice(t.length):null;if(r===null||!O(r))throw new d("unsafe_entry",`Archive entry ${JSON.stringify(e)} is not a safe path under ${t}`);return r}function Qn(e){try{return JSON.parse(e.toString("utf8"))}catch(t){throw new d("corrupt","Archive manifest is not JSON",{cause:t})}}async function ei(e,t,r,n){await Jt(Gn(t),{recursive:!0,mode:448});let i=jn("sha256");try{await Gt(e.readBody(),async function*(o){for await(let a of o)i.update(a),yield a},Un(t,{flags:"wx",mode:r}))}catch(o){throw v(o,"EEXIST")?new d("unsafe_entry",`Archive entry ${n.path} collides with another extracted file`,{cause:o}):o}if(i.digest("hex")!==n.sha256)throw new d("digest_mismatch",`Archive entry ${n.path} does not match its manifest digest`)}async function ti(e,t){let r=new we(e),n=await r.nextEntry();if(n===null||n.type!=="File"||n.path!==fe)throw new d("corrupt",`Archive does not start with ${fe}`);if(n.size>qn)throw new d("corrupt","Archive manifest is too large");let i=Bt(Qn(await r.readBodyBuffer())),o=new Map(i.entries.map(c=>[c.path,c])),a=Wt(t,_);for(;;){let c=await r.nextEntry();if(c===null)break;if(c.type!=="File")throw new d("unsafe_entry",`Archive entry ${JSON.stringify(c.path)} has unsupported type ${c.type}`);let l=Zn(c.path),u=o.get(l);if(u===void 0)throw new d("unsafe_entry",`Archive entry ${l} is not listed in the manifest`);if(o.delete(l),c.size!==u.size)throw new d("digest_mismatch",`Archive entry ${l} is ${String(c.size)} bytes but the manifest lists ${String(u.size)}`);await ei(r,h(a,l),Xn(c.mode),u)}if(o.size>0)throw new d("corrupt",`Archive is missing ${String(o.size)} file(s) listed in its manifest`);return i}function ri(e){return e instanceof d?e:e instanceof Error&&"code"in e&&typeof e.code=="string"&&e.code.startsWith("Z_")?new d("corrupt",`Archive data is corrupt: ${e.message}`,{cause:e}):e}async function ze(e){await te(e.archivePath),await Yn(e.destinationDir);let t={manifest:null},r=async n=>{t.manifest=await ti(n,e.destinationDir)};try{await Gt(zn(e.archivePath),Kn(),r)}catch(n){throw await Wn(Wt(e.destinationDir,_),{force:!0,recursive:!0}),ri(n)}if(t.manifest===null)throw new d("corrupt","Archive has no manifest");return t.manifest}import{randomBytes as Mi}from"node:crypto";import{copyFile as Pi,mkdir as Ee,readdir as ec,rename as Ge,rm as z,rmdir as Ri,unlink as _i}from"node:fs/promises";import{basename as Qt,dirname as be,join as S,posix as Yt,resolve as ye}from"node:path";import{join as ni}from"node:path";var ii=["codex","claude-code","pi","acp-cursor"],oi="config.json";var si=["BB_INFERENCE","BB_INFERENCE_FALLBACK","BB_TRANSCRIPTION"],ai="BB_INFERENCE, BB_INFERENCE_FALLBACK, and BB_TRANSCRIPTION were removed. Choose AI services in Settings \u2192 AI services or with `bb settings ai-services set <task> <automatic|off|service>`.",ci=/^[A-Za-z_][A-Za-z0-9_]*$/u,Ue="customAcpAgents",li="customAcpAgents in config.json is no longer read. Declare the agents with `bb plugin config provider-acp set customAgents '<json>'`.",di=s.object({BB_APP_URL:s.string().optional(),BB_LOG_LEVEL:s.string().optional()}).strict(),ui=/^acp-[a-z0-9][a-z0-9-]*$/u,mi=s.union([s.enum(ii),s.string().regex(ui)]),pi=s.object({providerId:mi,model:s.string().min(1),displayName:s.string().min(1).optional()}).strict(),hi=s.string().regex(ci),fi=s.record(hi,s.string()),vi=s.object({config:di.optional(),customModels:s.array(s.unknown()).optional(),sharedSkillRoots:yt.optional(),serverHeaders:s.record(s.string(),s.string()).optional(),machineCredential:s.string().min(1).optional(),connectMachineId:s.string().min(1).optional(),serverUrl:s.string().min(1).optional()}).strict(),Kt=s.object({env:fi.optional()}).strict();function gi(e,t){if(e===void 0)return;let r=[];for(let[n,i]of e.entries()){let o=pi.safeParse(i);if(!o.success){t.logger?.warn({error:o.error.message,index:n},"Ignoring invalid custom model config entry");continue}r.push(o.data)}return r}function Si(e,t){if(typeof e!="object"||e===null)return e;let r=Reflect.get(e,"config");if(typeof r!="object"||r===null)return e;let n=si.filter(i=>Object.hasOwn(r,i));return n.length===0?e:(t.logger?.warn({keys:n},ai),{...e,config:Object.fromEntries(Object.entries(r).filter(([i])=>!n.includes(i)))})}function wi(e,t){return typeof e!="object"||e===null||!Object.hasOwn(e,Ue)?e:(t.logger?.warn({key:Ue},li),Object.fromEntries(Object.entries(e).filter(([r])=>r!==Ue)))}function F(e,t={}){let r=vi.parse(wi(Si(e,t),t)),n=gi(r.customModels,t),i={};return r.config!==void 0&&(i.config=r.config),n!==void 0&&(i.customModels=n),r.sharedSkillRoots!==void 0&&(i.sharedSkillRoots=r.sharedSkillRoots),r.serverUrl!==void 0&&(i.serverUrl=r.serverUrl),r.serverHeaders!==void 0&&(i.serverHeaders=r.serverHeaders),r.machineCredential!==void 0&&(i.machineCredential=r.machineCredential),r.connectMachineId!==void 0&&(i.connectMachineId=r.connectMachineId),i}function ne(e){return ni(e,oi)}import{constants as yi}from"node:fs";import{copyFile as Ei,lstat as bi,rename as xi,rm as Ai}from"node:fs/promises";async function y(e){try{return await bi(e)}catch(t){if(v(t,"ENOENT"))return null;throw t}}async function qt(e,t){try{await xi(e,t)}catch(r){if(!v(r,"EXDEV"))throw r;await Ei(e,t,yi.COPYFILE_EXCL),await Ai(e,{force:!0})}}var oe="server-import-backup",N="config.json",T="env.json",ie="bb.db",Ii=["bb.db","bb.db-wal","bb.db-shm"],ki=["-wal","-shm","-journal"];function er(e){let{existingConfig:t,importedConfig:r}=e,n={},i={...t.config,...r.config};Object.keys(i).length>0&&(n.config=i);let{customModels:o,sharedSkillRoots:a}=r;return o!==void 0&&o.length>0&&(n.customModels=o),a!==void 0&&(n.sharedSkillRoots=a),e.localServerUrl!==null&&(n.serverUrl=e.localServerUrl),n}function Fi(e,t){let r={...t.env,...e.env};return Object.keys(r).length>0?{env:r}:{}}function Ni(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Je(e){let t={...F(e)};return Ni(e)&&Array.isArray(e.customModels)&&(t.customModels=e.customModels),t}function We(e){return Kt.parse(e)}async function j(e,t,r){let n=await ke(e);if(n===null)return null;try{return t(Fe(e,n))}catch(i){let o=i instanceof Error?i.message:String(i),a=`Invalid ${r} ${Qt(e)} at ${e}: ${o}`;throw r==="imported"?new d("corrupt",a,{cause:i}):new Error(a,{cause:i})}}async function Ti(e){for(let t of[...Ii,oe,D]){let r=S(e,t);if(await y(r)!==null)throw new d("server_data_exists",`${r} already exists`)}}async function Ci(e,t){for(let r of t.entries){let n=await y(h(e,r.path));if(n?.isFile()!==!0||n.size!==r.size)throw new d("corrupt",`Staged file ${r.path} is missing or does not match the manifest`)}}async function Oi(e,t,r){let n=t.split("/"),i=e;for(let a of n.slice(0,-1)){if(i=S(i,a),r.has(i))continue;let c=await y(i);if(c!==null&&!c.isDirectory())throw new d("unsafe_entry",`Cannot import ${t}: ${i} is not a directory`);r.add(i)}if((await y(h(e,t)))?.isDirectory()===!0)throw new d("server_data_exists",`Cannot import ${t}: a directory exists at that path`)}async function Di(e,t){let r=S(be(t),`.${Qt(t)}.${Mi(6).toString("hex")}.tmp`);try{await Pi(e,r),await Ge(r,t)}catch(n){throw await z(r,{force:!0}),n}}async function tr(e,t,r,n){let i=h(e,t);if(await y(i)===null)return;let o=h(S(e,oe),t);await Ee(be(o),{recursive:!0}),r==="move"?await Ge(i,o):await Di(i,o),n.backups.push(t)}async function Xt(e,t,r,n){let i=h(e,r);await tr(e,r,"move",n),await Ee(be(i),{recursive:!0}),await qt(h(t,r),i),n.importedEntries.push(r)}async function Zt(e){let t=S(e.dataDir,e.relativePath);await pt({path:t,read:async()=>(await tr(e.dataDir,e.relativePath,"copy",e.result),e.readExisting(t)),mutate:e.merge}),e.result.importedEntries.push(e.relativePath)}function Bi(e,t){for(let r of e)if(!X(r))throw new d("unsafe_entry",`${t} ${JSON.stringify(r)} is not a server-owned path`)}async function $i(e,t){let r=[];for(let n of t)await y(h(e,n))!==null&&r.push(n);await Tt(e,{version:1,entries:[...t],preexistingEntries:r})}async function Ke(e){let t=ye(e.dataDir),r=S(ye(e.stagingDir),_);Bi(e.manifest.entries.map(p=>p.path),"Archive entry"),await Ee(t,{recursive:!0}),await Ti(t),await Ci(r,e.manifest);let n=new Set;for(let p of[...e.manifest.entries.map(Ur=>Ur.path),N,T])await Oi(t,p,n);let i=new Set(e.manifest.entries.map(p=>p.path)),o=i.has(N)?await j(h(r,N),Je,"imported"):null,a=await j(S(t,N),Je,"existing"),c=o!==null||a!==null||e.localServerUrl!==null,l=i.has(T)?await j(h(r,T),We,"imported"):null;l!==null&&await j(S(t,T),We,"existing");let u=[...i].filter(p=>p!==N&&p!==T&&p!==ie);await z(S(t,R),{force:!0}),await $i(t,[...u,...c?[N]:[],...l===null?[]:[T],...i.has(ie)?[ie]:[]]);let m={importedEntries:[],backups:[]};try{for(let p of u)await Xt(t,r,p,m);c&&await Zt({dataDir:t,relativePath:N,readExisting:async p=>await j(p,Je,"existing")??{},merge:p=>er({importedConfig:o??{},existingConfig:p,localServerUrl:e.localServerUrl}),result:m}),l!==null&&await Zt({dataDir:t,relativePath:T,readExisting:async p=>await j(p,We,"existing")??{},merge:p=>Fi(l,p),result:m}),i.has(ie)&&await Xt(t,r,ie,m)}catch(p){throw await se(t),p}return m}async function Li(e,t){let r=new Set;for(let i of t)for(let o=Yt.dirname(i);o!==".";o=Yt.dirname(o))r.add(o);let n=[...r].sort((i,o)=>o.split("/").length-i.split("/").length);for(let i of n)try{await Ri(h(e,i))}catch(o){if(!v(o,"ENOTEMPTY")&&!v(o,"EEXIST")&&!v(o,"ENOENT")&&!v(o,"ENOTDIR"))throw o}}async function Vi(e,t){let r=h(e,t);if(await z(r,{force:!0,recursive:!0}),t.endsWith(".db"))for(let n of ki)await z(`${r}${n}`,{force:!0})}async function se(e){let t=ye(e),r=await ee(t);if(r.kind==="none")return null;if(r.kind==="committed")return await $(t),null;let{journal:n}=r,i=S(t,oe),o=new Set(n.preexistingEntries);for(let a of n.entries){let c=h(i,a),l=await y(c)!==null;if(!(!l&&o.has(a))&&(await Vi(t,a),l)){let u=h(t,a);await Ee(be(u),{recursive:!0}),await Ge(c,u)}}return await z(i,{force:!0,recursive:!0}),await Li(t,n.entries),await $(t),n}async function qe(e){let t=S(ye(e),oe),r=await y(t);if(r!==null){if(!r.isDirectory()){await _i(t);return}await z(t,{force:!0,recursive:!0})}}var xc=256*1024;var Hi=s.enum(["pending","running","done","failed","skipped"]),ji=s.object({id:Ie,status:Hi,message:s.string().nullable()}).strict(),zi=s.enum(["preparing","switching","recovery_required","completed","failed","cancelled"]),Ui=s.object({moveId:s.string().min(1),state:zi,mode:K,targetHostId:s.string().min(1),targetHostName:s.string().min(1),serverUrl:s.string().min(1),destinationStatusUrl:s.string().min(1).nullable(),startedAt:s.number().int().nonnegative(),finishedAt:s.number().int().nonnegative().nullable(),error:s.object({step:Ie,message:s.string()}).strict().nullable(),steps:s.array(ji),cancellable:s.boolean()}).strict(),Jc=s.object({move:Ui.nullable(),lastMove:le.nullable()}).strict(),Wc=s.object({targetHostId:s.string().min(1),serverUrl:s.string().min(1).nullable()}).strict(),Ji=s.enum(["blocker","warning","info"]),Ye=s.object({id:s.string().min(1),severity:Ji,title:s.string().min(1),detail:s.string().nullable()}).strict(),Gc=s.object({targetHostId:s.string().min(1),targetHostName:s.string().min(1),mode:K,serverUrl:s.string().min(1).nullable(),requiresServerUrl:s.boolean(),targetDataDir:s.string().min(1).nullable(),existingTargetServerData:s.object({path:s.string().min(1),sizeBytes:s.number().int().nonnegative()}).strict().nullable(),items:s.array(Ye),canMove:s.boolean()}).strict(),Kc=s.object({targetHostId:s.string().min(1),serverUrl:s.string().min(1).nullable(),stopRunningWork:s.literal(!0),archiveExistingTargetServerData:s.boolean()}).strict(),qc=s.object({deleted:s.boolean()}).strict();import{randomBytes as oo}from"node:crypto";import{lstat as so,mkdir as ao,mkdtemp as co,readFile as lo,rename as uo,rm as J,stat as mo,writeFile as po}from"node:fs/promises";import{homedir as pr}from"node:os";import{basename as ho,dirname as fo,join as xe,resolve as Xe}from"node:path";import{mkdir as el,readFile as Zi,rm as Qi,writeFile as tl}from"node:fs/promises";import{basename as eo,join as to}from"node:path";var Wi=100,Gi=6e4;async function Ki(e){await new Promise(t=>{setTimeout(t,e.delayMs)})}function U(e){try{return process.kill(e,0),!0}catch{return!1}}async function qi(e){let t=Date.now()+e.timeoutMs;for(;Date.now()<=t;){if(!U(e.pid))return!0;await Ki({delayMs:Wi})}return!U(e.pid)}function Yi(){return{isRunning:e=>U(e),kill(e,t){process.kill(e,t)},readIdentity:gt,waitForExit:e=>qi(e)}}async function Xi(e){let t=await e.processOps.readIdentity(e.pid),r=t?.command??null;if(!(r!==null&&e.verifyTokens.some(a=>a.length>0&&r.includes(a))))return{command:r,reason:"command"};let i=Date.parse(e.startedAt),o=t?.startedAt??null;return Number.isNaN(i)||o===null?{command:r,reason:"start-time"}:Math.abs(o-i)>Gi?{command:r,reason:"start-time"}:null}async function rr(e){let t=e.processOps??Yi();if(!t.isRunning(e.pid))return{kind:"not-running"};let r=await Xi({pid:e.pid,processOps:t,startedAt:e.startedAt,verifyTokens:e.verifyTokens});return r!==null?{command:r.command,kind:"unverified",reason:r.reason}:(t.kill(e.pid,e.signal),await t.waitForExit({pid:e.pid,timeoutMs:e.timeoutMs})||!t.isRunning(e.pid)?{kind:"stopped",usedKill:!1}:(t.kill(e.pid,"SIGKILL"),!await t.waitForExit({pid:e.pid,timeoutMs:e.killTimeoutMs})&&t.isRunning(e.pid)?{kind:"still-running"}:{kind:"stopped",usedKill:!0}))}var ro="bb-app-runtime.json",no=s.object({entryPath:s.string().min(1),pid:s.number().int().positive(),surface:s.string().min(1),serverUrl:s.string().min(1),startedAt:s.string().min(1),version:s.string().min(1)});function nr(e){return to(e,ro)}async function io(e){await Qi(nr(e),{force:!0})}async function ir(e){let t=await ae(e.dataDir);return t===null||t.pid!==e.pid?!1:(await io(e.dataDir),!0)}function or(e){return[e,eo(e)]}async function ae(e){let t;try{t=await Zi(nr(e),"utf8")}catch{return null}try{let r=no.safeParse(JSON.parse(t));return r.success?r.data:null}catch{return null}}var sr="bb.db",ar=["serverUrl","serverHeaders","machineCredential","connectMachineId"],vo=s.record(s.string(),s.unknown()),hr=5e3,go=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/u,cr=/^\d+$/u,So=s.object({ok:s.literal(!0),serverMove:s.object({state:s.string()}).optional()});function lr(e){let t=go.exec(e.trim());return t===null?null:{core:[Number(t[1]),Number(t[2]),Number(t[3])],prerelease:t[4]===void 0?[]:t[4].split(".")}}function wo(e,t){if(e.length===0||t.length===0)return t.length-e.length;for(let r=0;r<Math.max(e.length,t.length);r+=1){let n=e[r],i=t[r];if(n===void 0)return-1;if(i===void 0)return 1;let o=cr.test(n),a=cr.test(i);if(o&&a){let c=Number(n)-Number(i);if(c!==0)return c;continue}if(o!==a)return o?-1:1;if(n!==i)return n<i?-1:1}return 0}function yo(e,t){let r=lr(e),n=lr(t);if(r===null||n===null)return!1;for(let i=0;i<3;i+=1){let o=(r.core[i]??0)-(n.core[i]??0);if(o!==0)return o>0}return wo(r.prerelease,n.prerelease)>0}async function Eo(e){try{let t=await fetch(`${e}/health`,{signal:AbortSignal.timeout(hr)});if(t.status!==200)return!1;let r=So.safeParse(await t.json());return r.success&&r.data.serverMove?.state!=="pending"}catch{return!1}}async function bo(e){let t=ne(e),r=await gr(t);if(r===null)return null;let n=Sr(t,r).config.serverHeaders;return n===void 0||Object.keys(n).length===0?null:n}async function fr(e){let t=e.lock.serverUrl.replace(/\/+$/u,""),r=e.lock.mode==="connect"?await bo(e.dataDir):null;if(r===null)return await Eo(t)?{kind:"running"}:{kind:"not-running"};let n;try{n=await fetch(`${t}/api/v1/system/version`,{headers:r,signal:AbortSignal.timeout(hr)})}catch{return{kind:"not-running"}}return await n.body?.cancel().catch(()=>{}),n.status===200?{kind:"running"}:n.status===503?{kind:"not-running"}:{kind:"unconfirmed",status:n.status}}function Ze(e,t){return e instanceof Error&&"code"in e&&e.code===t}async function xo(e){try{return await so(e),!0}catch(t){if(Ze(t,"ENOENT"))return!1;throw t}}function Qe(e){return e===Xe(Pe({homeDir:pr()}))}function W(e){let t=pr();if(e!==void 0){if(e.trim().length===0)throw new Error("--data-dir must not be empty.");return Xe(Re({homeDir:t,rawDataDir:e}))}let r=process.env.BB_DATA_DIR;return Xe(r===void 0||r.trim().length===0?Pe({homeDir:t}):Re({homeDir:t,rawDataDir:r}))}async function dr(e){if(await xo(xe(e,sr)))throw new Error(`${e} already has a bb server database (${sr}). Import into a data directory without a server, such as --data-dir ~/.bb-imported.`)}async function Ao(e){let t=await ae(e);if(t!==null&&U(t.pid))throw new Error(`bb is running from ${e} (pid ${String(t.pid)}). Stop it with bb-app stop or quit the desktop app, then try again.`)}async function Mo(e){let t;try{t=await mo(e)}catch(r){throw Ze(r,"ENOENT")?new Error(`${e} does not exist.`):r}if(!t.isFile())throw new Error(`${e} is not a file.`)}function ur(e,t){return t instanceof d&&t.code==="unsafe_entry"?new Error(`Refusing to import ${e}: ${t.message}. Nothing was imported.`):t}async function Po(e){await se(e),await L(e),(await pe(e))?.kind==="manual"&&await J(xe(e,R),{force:!0})}async function vr(e){let{archivePath:t,dataDir:r}=e;await Mo(t);let n=(await ee(r)).kind==="interrupted";if(n||await dr(r),await Ao(r),await te(t),!await e.confirm(n?`Roll back the interrupted import in ${r}, then import the bb server from ${t}?`:`Import the bb server from ${t} into ${r}?`))return null;n&&(await Po(r),await dr(r));let i=fo(r);await ao(i,{recursive:!0});let o=await co(xe(i,`.${ho(r)}-server-import-`));try{let a=await ze({archivePath:t,destinationDir:o}).catch(l=>{throw ur(t,l)});if(!a.serverMoveExperiment)throw new Error('This export came from a server with the "Server move" experiment off. Turn on the "Server move" experiment in Settings \u2192 Experiments, or run bb settings experiment serverMove true, on that server, then export again.');if(yo(a.bbVersion,e.cliVersion))throw new Error(`This export came from bb ${a.bbVersion}; install that version or newer before importing.`);let c=await Ke({stagingDir:o,dataDir:r,manifest:a,localServerUrl:null}).catch(l=>{throw ur(t,l)});try{await De(r,{version:1,reason:"manual-import",createdAt:e.now()}),await Oe(r,{version:1,kind:"manual",moveId:null,activationToken:null,sourceDataDir:a.sourceDataDir,sourceServerHostId:a.sourceServerHostId,targetHostId:null,serverUrl:null,importedEntries:c.importedEntries,createdAt:e.now(),fixupsAppliedAt:null})}catch(l){throw await L(r),await se(r),l}return await $(r),await qe(r),{dataDir:r,archivePath:t,bbVersion:a.bbVersion,sourceDataDir:a.sourceDataDir,sourceServerHostId:a.sourceServerHostId,importedEntries:c.importedEntries,rolledBackInterruptedImport:n}}finally{await J(o,{force:!0,recursive:!0})}}async function gr(e){try{return await lo(e,"utf8")}catch(t){if(Ze(t,"ENOENT"))return null;throw t}}async function mr(e,t){let r=`${e}.${oo(6).toString("hex")}.tmp`;try{await po(r,t,{encoding:"utf8",mode:384}),await uo(r,e)}catch(n){throw await J(r,{force:!0}),n}}function Sr(e,t){let r;try{r=JSON.parse(t)}catch(i){throw new Error(`${e} is not valid JSON. Fix it, then unlock again.`,{cause:i})}let n;try{n=F(r)}catch(i){let o=i instanceof s.ZodError?s.prettifyError(i):String(i);throw new Error(`${e} is not a valid bb-app config. Fix it, then unlock again.
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __createRequire } from "node:module";import { dirname as __pathDirname } from "node:path";import { fileURLToPath as __fileURLToPath } from "node:url";const require = __createRequire(import.meta.url);const __filename = __fileURLToPath(import.meta.url);const __dirname = __pathDirname(__filename);
2
- import{c as B,f as V}from"./chunk-ATDR5E2C.js";import{c as L,d as z}from"./chunk-XSBF3HQR.js";import{a as d,j as u}from"./chunk-ZWBRH7R6.js";import"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{b as l}from"./chunk-7EOZF4HA.js";import{A as D,a as $,b as x,ba as R,c as T,d as E,e as U,f as O,g as A,h as j,i as C}from"./chunk-SDZLOCRA.js";import"./chunk-QE47NRKX.js";import"./chunk-5ZMA4MIX.js";import"./chunk-ZT24MY2V.js";import"./chunk-REEBSQ75.js";import"./chunk-E7J2DJY7.js";import{a as b}from"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";var Y=1024,M=1e4,Q=b.enum(["project","chronological","machine"]),ee=b.enum(["updated","created","alpha","none"]),ne=b.union([b.literal("auto"),b.boolean()]),k=b.string().min(1).max(Y),w=b.array(k).max(M),te=b.array(k.regex(/^(project|section|machine):\S+$/)).max(M).transform(e=>[...new Set(e)]),_=["sidebar.organizationMode","sidebar.threadGrouping.environment","sidebar.chronologicalSort","sidebar.sortDirection","sidebar.sectionOrder","sidebar.manualSectionOrder","sidebar.machineSectionOrder","sidebar.hiddenGroups","sidebar.footerOrder","sidebar.hiddenFooterItems","sidebar.pluginPanelOrder","sidebar.visiblePluginPanels","sidebar.navigationProvider","sidebar.threadListProvider","composer.provider","home.provider","infoPanel.collapsedSections"],ie=b.enum(_);function F(e){return ie.safeParse(e).success}function m(e,n,o){return{schema:e,defaultValue:n,description:o}}var I={"sidebar.organizationMode":m(Q,"chronological","How the sidebar groups threads: by project, Custom (chronological), or by machine. New installations default to Custom; migrated installations with existing work or preferences fall back to By project."),"sidebar.threadGrouping.environment":m(ne,"auto","Whether sibling threads sharing a worktree environment collapse into one row. auto groups them in every organization mode except Custom."),"sidebar.chronologicalSort":m(ee,"updated","Sort order for the chronological sidebar organization."),"sidebar.sortDirection":m(b.enum(["default","ascending","descending"]),"default","Sidebar thread sort direction; default preserves the selected field's original direction."),"sidebar.sectionOrder":m(w,["pinned","projects","threads"],"Top-level section order when the sidebar is organized by project."),"sidebar.manualSectionOrder":m(w,["pinned","sections","threads"],"Top-level section order when the sidebar is organized chronologically."),"sidebar.machineSectionOrder":m(w,["pinned","machines","threads"],"Top-level section order when the sidebar is organized by machine."),"sidebar.hiddenGroups":m(te,[],"Project, custom section, and machine groups moved into More, using project:<id>, section:<id>, or machine:<id>. Setting this list replaces the hidden groups across all sidebar organizations; reset shows every group."),"sidebar.footerOrder":m(w,[],"Order of built-in and plugin sidebar footer actions."),"sidebar.hiddenFooterItems":m(w,[],"Sidebar footer actions moved into the More menu."),"sidebar.pluginPanelOrder":m(w,[],"Order of sidebar navigation destinations."),"sidebar.visiblePluginPanels":m(w.nullable(),null,"Sidebar navigation destinations shown; null shows every destination."),"sidebar.navigationProvider":m(k.transform(e=>e==="__builtin__"||e==="navigation/navigation"?"__automatic__":e),"__automatic__","Plugin that draws the sidebar navigation: navigation/rail (the bundled Navigation plugin's icon rail on the sidebar's left edge), navigation/top-list (its labeled rows above the thread list), another plugin key, or __automatic__ for the first navigation from a plugin other than the bundled one, falling back to navigation/rail. Legacy __builtin__ and navigation/navigation resolve to __automatic__."),"sidebar.threadListProvider":m(k.transform(e=>e==="__builtin__"?"thread-list/thread-list":e),"__automatic__","Plugin that renders the sidebar thread list, or __automatic__ for the first installed thread list plugin other than the bundled thread-list/thread-list, falling back to it. Legacy __builtin__ resolves to thread-list/thread-list."),"composer.provider":m(k,"__automatic__","Plugin that draws the composer's input box: a plugin key such as bb--composer/composer, or __automatic__ for the first composer from a plugin you installed, then the bundled Composer plugin. With no composer plugin enabled, no composer is shown."),"home.provider":m(k,"__automatic__","Plugin page shown at the app's home (/): a plugin key such as orbit/home, __builtin__ for bb's new-thread page, or __automatic__ for the first home a plugin registers, falling back to bb's new-thread page. New-thread compose is always at /new."),"infoPanel.collapsedSections":m(w,[],"Thread Info panel section ids that are collapsed, such as commits, uncommittedChanges, forks, threadStorage, or <pluginId>/<sectionId> for plugin sections.")};function oe(e){return I[e].defaultValue}var ve=Object.fromEntries(_.map(e=>[e,oe(e)]));function G(e,n){let a=I[e].schema.safeParse(n);return a.success?{success:!0,value:a.data}:{success:!1,message:a.error.issues.map(c=>c.message).join("; ")}}function H(e){return I[e].description}function K(e){return e.supported?e.installedPath!==null?e.onPath?`The bb CLI is installed at ${e.installedPath} for use outside bb.`:`The bb CLI is installed at ${e.installedPath}, but its folder is not on your PATH. Add the folder to your PATH to use bb outside bb.`:e.shadowedBy===null?"The bb CLI is not installed for use outside bb. Run bb settings cli-command install to add it.":e.shadowedBy.source==="npm"?`bb is already on your PATH at ${e.shadowedBy.path}, installed by npm.`:e.shadowedBy.source==="machine"?`bb is already on your PATH at ${e.shadowedBy.path}, installed with the bb machine on this computer.`:`The bb CLI is not installed for use outside bb. Another bb at ${e.shadowedBy.path} comes first on your PATH.`:"The bb CLI can be installed for use outside bb only by an installed bb. Start bb with npx bb-app or the desktop app."}function re(e){let n=x.safeParse(e);if(!n.success)throw new Error(`Unknown task '${e}'. Tasks: ${$.join(", ")}`);return n.data}function se(e,n){let{task:o,choice:a,pluginId:c}=n;if(a==="automatic"||a==="off"){if(c!==void 0)throw new Error(`--plugin applies only to a service id, not ${a}.`);return{mode:a}}let v=e.services.filter(t=>t.tasks.includes(o)),g=v.filter(t=>t.id===a&&(c===void 0||t.pluginId===c)),[i]=g;if(i===void 0){let t=[...new Set(v.map(r=>r.id))],s=c===void 0?"":` from plugin '${c}'`;throw new Error(`No AI service '${a}'${s} handles ${o}. Choose automatic, off${t.length>0?`, or one of: ${t.join(", ")}`:""}.`)}if(g.length>1)throw new Error(`Several plugins register AI service '${a}': ${g.map(t=>t.pluginId).join(", ")}. Pass --plugin <plugin-id>.`);return{mode:"service",pluginId:i.pluginId,serviceId:i.id}}function ae(e,n){return e.services.filter(o=>o.automaticRank!==null&&o.tasks.includes(n)&&o.status.ready).sort((o,a)=>(o.automaticRank??0)-(a.automaticRank??0))[0]??null}function Z(e,n){if(n.mode==="off")return"Off";if(n.mode==="service"){let o=e.services.find(a=>a.id===n.serviceId&&a.pluginId===n.pluginId);return o===void 0?`${n.serviceId} (unavailable plugin ${n.pluginId})`:o.displayName}return"Automatic"}function ce(e){for(let n of $){let o=e.selections[n],a=o.mode==="automatic"?ae(e,n):null,c=o.mode!=="automatic"?"":a===null?" (nothing ready)":` (using ${a.displayName})`;console.log(`${n.padEnd(16)}${Z(e,o)}${c}`)}if(console.log(""),e.services.length===0){console.log("No plugin registers an AI service.");return}console.log("Services:");for(let n of e.services){let o=n.status.ready?"ready":`not ready: ${n.status.message}`,a=n.automaticRank===null?"":` Automatic #${n.automaticRank+1}`;console.log(` ${n.id} ${n.displayName} plugin ${n.pluginId} [${n.tasks.join(", ")}]${a} ${o}`)}}function de(e){if(e==="true"||e==="on")return!0;if(e==="false"||e==="off")return!1;throw new Error("value must be true, false, on, or off.")}function le(e){let n=e.split("+").map(c=>c.trim()).filter(Boolean),o=n.pop();if(o===void 0)throw new Error("shortcut must include a key.");let a=new Set(n.map(c=>c.toLowerCase()));for(let c of a)if(!["mod","meta","control","ctrl","alt","shift"].includes(c))throw new Error(`Unknown shortcut modifier '${c}'.`);return j.parse({key:o,mod:a.has("mod"),meta:a.has("meta"),control:a.has("control")||a.has("ctrl"),alt:a.has("alt"),shift:a.has("shift")})}function ue(e){if(e==="on")return[!0,e];if(e==="off")return[!1,e];try{return[JSON.parse(e),e]}catch{return[e]}}function W(e,n,o){let a=O.keyof().safeParse(n);if(!a.success)throw new Error(`Unknown general setting '${n}'. Known settings: ${O.keyof().options.join(", ")}.`);let c=null;for(let v of ue(o)){let g=O.strip().safeParse({...e,[a.data]:v});if(g.success)return g.data;c??=g.error.issues[0]?.message??null}throw new Error(`Invalid value '${o}' for '${a.data}'${c===null?"":`: ${c}`}. Booleans take true, false, on, or off, null clears a nullable setting, and structured values take JSON.`)}function J(e,n){let o=e.providerCompletedTurnDisplay[n.id];return{providerId:n.id,displayName:n.displayName,completedTurnDisplay:o??n.completedTurnDisplay,providerDefault:n.completedTurnDisplay,source:o===void 0?"provider-default":"setting"}}function q(e){let n=e.map(o=>[o.providerId,o.displayName,o.completedTurnDisplay,o.source==="setting"?"setting":"provider default"]);L({head:["ID","Name","Finished turns","Source"],colWidths:z(n,[2,4,14,6]),trimTrailingWhitespace:!0},n)}function pe(e){if(e==="default")return null;let n=U.safeParse(e);if(!n.success)throw new Error(`Invalid finished turn display '${e}'. Use collapse, flat, or default.`);return n.data}function me(e,n,o){let a=Object.fromEntries(Object.entries(e.providerCompletedTurnDisplay).filter(([c])=>c!==n));return O.strip().parse({...e,providerCompletedTurnDisplay:o===null?a:{...a,[n]:o}})}function fe(e,n){let o=e.find(a=>a.id===n);if(o!==void 0)return o;throw new Error(`Unknown provider '${n}'. Known providers: ${e.map(a=>a.id).join(", ")}.`)}function he(e,n){let o=de(n),a=D.safeParse(e);if(!a.success)throw new Error(`Unknown experiment '${e}'.`);return{[a.data]:o}}function N(e){if(F(e))return e;throw new Error(`Unknown UI preference '${e}'. Known preferences: ${_.join(", ")}.`)}function ge(e){try{return[JSON.parse(e),e]}catch{return[e]}}function ye(e,n){let o="";for(let a of ge(n)){let c=G(e,a);if(c.success)return c.value;o=c.message}throw new Error(`Invalid value '${n}' for '${e}': ${o}. Lists and null take JSON; plain strings may be unquoted.`)}function be(e){return e instanceof R&&e.status===409}function Ce(e,n){let o=e.command("settings").description("Inspect and update BB settings");o.command("show").description("Show server-backed settings and feature state").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=await l(n()).system.config();d(i,t)||console.log(JSON.stringify(t,null,2))}));let a=o.command("ai-services").description("Choose which plugin AI service writes thread titles, commit messages, and voice transcripts");a.command("show",{isDefault:!0}).description("Show each task's selection and every registered AI service").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=await l(n()).system.aiServices();d(i,t)||ce(t)})),a.command("set <task> <choice>").description(`Set the service for a task (${$.join(", ")}): automatic, off, or a service id`).option("--plugin <plugin-id>","Plugin that registers the service, when several plugins use the same service id").option("--json","Print machine-readable JSON output").action(u(async(i,t,s)=>{let r=re(i),p=l(n()),h=await p.system.aiServices(),f=await p.system.setAiServiceSelection({task:r,selection:se(h,{task:r,choice:t,pluginId:s.plugin})});d(s,f)||console.log(`${r}: ${Z(f,f.selections[r])}`)})),a.command("test <task>").description(`Run a sample through the current choice for ${T.join(" or ")}`).option("--json","Print machine-readable JSON output").action(u(async(i,t)=>{let s=E.safeParse(i);if(!s.success)throw new Error(`Unknown task '${i}'. Testable tasks: ${T.join(", ")}`);let r=await l(n()).system.testAiService({task:s.data});if(!d(t,r)){if(r.ok){console.log(`${r.displayName} (${r.durationMs}ms): ${r.text}`);return}console.log(`Failed after ${r.durationMs}ms: ${r.message}`),process.exitCode=1}})),o.command("general <key> <value>").description("Set a Settings \u2192 General preference").option("--json","Print machine-readable JSON output").action(u(async(i,t,s)=>{let r=l(n()),p=await r.system.config(),h=await r.system.updateGeneralSettings(W(p.generalSettings,i,t));d(s,h)||console.log(`${i} updated`)})),o.command("replay-onboarding").description("Show the first-run setup guide again").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=l(n()),s=await t.system.config(),r=await t.system.updateGeneralSettings({...s.generalSettings,onboardingCompletedAt:null});d(i,r)||console.log("The setup guide is showing again")})),o.command("completed-turns [providerId] [display]").description("Show or set whether each provider's finished turns collapse or stay flat (collapse, flat, or default)").option("--json","Print machine-readable JSON output").action(u(async(i,t,s)=>{let r=l(n()),[p,h]=await Promise.all([r.system.config(),r.providers.list()]);if(i===void 0){let P=h.map(X=>J(p.generalSettings,X));if(d(s,P))return;if(P.length===0){console.log("No providers available");return}q(P);return}let f=fe(h,i);if(t===void 0){let P=J(p.generalSettings,f);if(d(s,P))return;q([P]);return}let S=await r.system.updateGeneralSettings(me(p.generalSettings,f.id,pe(t))),y=J(S,f);d(s,y)||console.log(`${f.id} finished turns: ${y.completedTurnDisplay} (${y.source==="setting"?"setting":"provider default"})`)}));let c=o.command("ui").description("Manage server-synced UI preferences such as sidebar layout and navigation");c.command("list").description("List every UI preference with its value and revision").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=await l(n()).system.uiPreferences.list();if(!d(i,t))for(let s of _){let r=t.preferences[s];console.log(`${s} ${JSON.stringify(r.value)} (revision ${r.revision})`),console.log(` ${H(s)}`)}})),c.command("get <key>").description("Show one UI preference").option("--json","Print machine-readable JSON output").action(u(async(i,t)=>{let s=N(i),{preferences:r}=await l(n()).system.uiPreferences.list(),p=r[s];d(t,{key:s,...p})||console.log(JSON.stringify(p.value))})),c.command("set <key> <value>").description("Set a UI preference; lists and null take JSON").option("--json","Print machine-readable JSON output").action(u(async(i,t,s)=>{let r=N(i),p=ye(r,t),h=l(n()),f=async()=>{let{preferences:y}=await h.system.uiPreferences.list();return h.system.uiPreferences.set({expectedRevision:y[r].revision,key:r,value:p})},S;try{S=await f()}catch(y){if(!be(y))throw y;S=await f()}d(s,S)||console.log(`${r} updated`)})),c.command("reset <key>").description("Reset a UI preference to its default").option("--json","Print machine-readable JSON output").action(u(async(i,t)=>{let s=N(i),r=await l(n()).system.uiPreferences.reset({key:s});d(t,r)||console.log(`${s} reset`)})),o.command("mobile-app").description("Show iOS TestFlight and Android APK download links").option("--details","Include available public release metadata").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=l(n()).system,s=t.mobileAppDownloads();if(i.details){let r=await t.mobileAppReleases();if(d(i,{downloads:s,releases:r}))return;console.log(`iOS TestFlight: ${s.ios}
2
+ import{c as B,f as V}from"./chunk-CZ4K4Z4T.js";import{c as L,d as z}from"./chunk-XSBF3HQR.js";import{a as d,j as u}from"./chunk-DCRUVPRR.js";import"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{b as l}from"./chunk-F7XCHQA3.js";import{A as D,a as $,b as x,ba as R,c as T,d as E,e as U,f as O,g as A,h as j,i as C}from"./chunk-HDUE2YKX.js";import"./chunk-NZY63D4X.js";import"./chunk-FZ76WJJG.js";import"./chunk-ZT24MY2V.js";import"./chunk-L5UJ4QUD.js";import"./chunk-E7J2DJY7.js";import{a as b}from"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";var Y=1024,M=1e4,Q=b.enum(["project","chronological","machine"]),ee=b.enum(["updated","created","alpha","none"]),ne=b.union([b.literal("auto"),b.boolean()]),k=b.string().min(1).max(Y),w=b.array(k).max(M),te=b.array(k.regex(/^(project|section|machine):\S+$/)).max(M).transform(e=>[...new Set(e)]),_=["sidebar.organizationMode","sidebar.threadGrouping.environment","sidebar.chronologicalSort","sidebar.sortDirection","sidebar.sectionOrder","sidebar.manualSectionOrder","sidebar.machineSectionOrder","sidebar.hiddenGroups","sidebar.footerOrder","sidebar.hiddenFooterItems","sidebar.pluginPanelOrder","sidebar.visiblePluginPanels","sidebar.navigationProvider","sidebar.threadListProvider","composer.provider","home.provider","infoPanel.collapsedSections"],ie=b.enum(_);function F(e){return ie.safeParse(e).success}function m(e,n,o){return{schema:e,defaultValue:n,description:o}}var I={"sidebar.organizationMode":m(Q,"chronological","How the sidebar groups threads: by project, Custom (chronological), or by machine. New installations default to Custom; migrated installations with existing work or preferences fall back to By project."),"sidebar.threadGrouping.environment":m(ne,"auto","Whether sibling threads sharing a worktree environment collapse into one row. auto groups them in every organization mode except Custom."),"sidebar.chronologicalSort":m(ee,"updated","Sort order for the chronological sidebar organization."),"sidebar.sortDirection":m(b.enum(["default","ascending","descending"]),"default","Sidebar thread sort direction; default preserves the selected field's original direction."),"sidebar.sectionOrder":m(w,["pinned","projects","threads"],"Top-level section order when the sidebar is organized by project."),"sidebar.manualSectionOrder":m(w,["pinned","sections","threads"],"Top-level section order when the sidebar is organized chronologically."),"sidebar.machineSectionOrder":m(w,["pinned","machines","threads"],"Top-level section order when the sidebar is organized by machine."),"sidebar.hiddenGroups":m(te,[],"Project, custom section, and machine groups moved into More, using project:<id>, section:<id>, or machine:<id>. Setting this list replaces the hidden groups across all sidebar organizations; reset shows every group."),"sidebar.footerOrder":m(w,[],"Order of built-in and plugin sidebar footer actions."),"sidebar.hiddenFooterItems":m(w,[],"Sidebar footer actions moved into the More menu."),"sidebar.pluginPanelOrder":m(w,[],"Order of sidebar navigation destinations."),"sidebar.visiblePluginPanels":m(w.nullable(),null,"Sidebar navigation destinations shown; null shows every destination."),"sidebar.navigationProvider":m(k.transform(e=>e==="__builtin__"||e==="navigation/navigation"?"__automatic__":e),"__automatic__","Plugin that draws the sidebar navigation: navigation/rail (the bundled Navigation plugin's icon rail on the sidebar's left edge), navigation/top-list (its labeled rows above the thread list), another plugin key, or __automatic__ for the first navigation from a plugin other than the bundled one, falling back to navigation/rail. Legacy __builtin__ and navigation/navigation resolve to __automatic__."),"sidebar.threadListProvider":m(k.transform(e=>e==="__builtin__"?"thread-list/thread-list":e),"__automatic__","Plugin that renders the sidebar thread list, or __automatic__ for the first installed thread list plugin other than the bundled thread-list/thread-list, falling back to it. Legacy __builtin__ resolves to thread-list/thread-list."),"composer.provider":m(k,"__automatic__","Plugin that draws the composer's input box: a plugin key such as bb--composer/composer, or __automatic__ for the first composer from a plugin you installed, then the bundled Composer plugin. With no composer plugin enabled, no composer is shown."),"home.provider":m(k,"__automatic__","Plugin page shown at the app's home (/): a plugin key such as orbit/home, __builtin__ for bb's new-thread page, or __automatic__ for the first home a plugin registers, falling back to bb's new-thread page. New-thread compose is always at /new."),"infoPanel.collapsedSections":m(w,[],"Thread Info panel section ids that are collapsed, such as commits, uncommittedChanges, forks, threadStorage, or <pluginId>/<sectionId> for plugin sections.")};function oe(e){return I[e].defaultValue}var ve=Object.fromEntries(_.map(e=>[e,oe(e)]));function G(e,n){let a=I[e].schema.safeParse(n);return a.success?{success:!0,value:a.data}:{success:!1,message:a.error.issues.map(c=>c.message).join("; ")}}function H(e){return I[e].description}function K(e){return e.supported?e.installedPath!==null?e.onPath?`The bb CLI is installed at ${e.installedPath} for use outside bb.`:`The bb CLI is installed at ${e.installedPath}, but its folder is not on your PATH. Add the folder to your PATH to use bb outside bb.`:e.shadowedBy===null?"The bb CLI is not installed for use outside bb. Run bb settings cli-command install to add it.":e.shadowedBy.source==="npm"?`bb is already on your PATH at ${e.shadowedBy.path}, installed by npm.`:e.shadowedBy.source==="machine"?`bb is already on your PATH at ${e.shadowedBy.path}, installed with the bb machine on this computer.`:`The bb CLI is not installed for use outside bb. Another bb at ${e.shadowedBy.path} comes first on your PATH.`:"The bb CLI can be installed for use outside bb only by an installed bb. Start bb with npx bb-app or the desktop app."}function re(e){let n=x.safeParse(e);if(!n.success)throw new Error(`Unknown task '${e}'. Tasks: ${$.join(", ")}`);return n.data}function se(e,n){let{task:o,choice:a,pluginId:c}=n;if(a==="automatic"||a==="off"){if(c!==void 0)throw new Error(`--plugin applies only to a service id, not ${a}.`);return{mode:a}}let v=e.services.filter(t=>t.tasks.includes(o)),g=v.filter(t=>t.id===a&&(c===void 0||t.pluginId===c)),[i]=g;if(i===void 0){let t=[...new Set(v.map(r=>r.id))],s=c===void 0?"":` from plugin '${c}'`;throw new Error(`No AI service '${a}'${s} handles ${o}. Choose automatic, off${t.length>0?`, or one of: ${t.join(", ")}`:""}.`)}if(g.length>1)throw new Error(`Several plugins register AI service '${a}': ${g.map(t=>t.pluginId).join(", ")}. Pass --plugin <plugin-id>.`);return{mode:"service",pluginId:i.pluginId,serviceId:i.id}}function ae(e,n){return e.services.filter(o=>o.automaticRank!==null&&o.tasks.includes(n)&&o.status.ready).sort((o,a)=>(o.automaticRank??0)-(a.automaticRank??0))[0]??null}function Z(e,n){if(n.mode==="off")return"Off";if(n.mode==="service"){let o=e.services.find(a=>a.id===n.serviceId&&a.pluginId===n.pluginId);return o===void 0?`${n.serviceId} (unavailable plugin ${n.pluginId})`:o.displayName}return"Automatic"}function ce(e){for(let n of $){let o=e.selections[n],a=o.mode==="automatic"?ae(e,n):null,c=o.mode!=="automatic"?"":a===null?" (nothing ready)":` (using ${a.displayName})`;console.log(`${n.padEnd(16)}${Z(e,o)}${c}`)}if(console.log(""),e.services.length===0){console.log("No plugin registers an AI service.");return}console.log("Services:");for(let n of e.services){let o=n.status.ready?"ready":`not ready: ${n.status.message}`,a=n.automaticRank===null?"":` Automatic #${n.automaticRank+1}`;console.log(` ${n.id} ${n.displayName} plugin ${n.pluginId} [${n.tasks.join(", ")}]${a} ${o}`)}}function de(e){if(e==="true"||e==="on")return!0;if(e==="false"||e==="off")return!1;throw new Error("value must be true, false, on, or off.")}function le(e){let n=e.split("+").map(c=>c.trim()).filter(Boolean),o=n.pop();if(o===void 0)throw new Error("shortcut must include a key.");let a=new Set(n.map(c=>c.toLowerCase()));for(let c of a)if(!["mod","meta","control","ctrl","alt","shift"].includes(c))throw new Error(`Unknown shortcut modifier '${c}'.`);return j.parse({key:o,mod:a.has("mod"),meta:a.has("meta"),control:a.has("control")||a.has("ctrl"),alt:a.has("alt"),shift:a.has("shift")})}function ue(e){if(e==="on")return[!0,e];if(e==="off")return[!1,e];try{return[JSON.parse(e),e]}catch{return[e]}}function W(e,n,o){let a=O.keyof().safeParse(n);if(!a.success)throw new Error(`Unknown general setting '${n}'. Known settings: ${O.keyof().options.join(", ")}.`);let c=null;for(let v of ue(o)){let g=O.strip().safeParse({...e,[a.data]:v});if(g.success)return g.data;c??=g.error.issues[0]?.message??null}throw new Error(`Invalid value '${o}' for '${a.data}'${c===null?"":`: ${c}`}. Booleans take true, false, on, or off, null clears a nullable setting, and structured values take JSON.`)}function J(e,n){let o=e.providerCompletedTurnDisplay[n.id];return{providerId:n.id,displayName:n.displayName,completedTurnDisplay:o??n.completedTurnDisplay,providerDefault:n.completedTurnDisplay,source:o===void 0?"provider-default":"setting"}}function q(e){let n=e.map(o=>[o.providerId,o.displayName,o.completedTurnDisplay,o.source==="setting"?"setting":"provider default"]);L({head:["ID","Name","Finished turns","Source"],colWidths:z(n,[2,4,14,6]),trimTrailingWhitespace:!0},n)}function pe(e){if(e==="default")return null;let n=U.safeParse(e);if(!n.success)throw new Error(`Invalid finished turn display '${e}'. Use collapse, flat, or default.`);return n.data}function me(e,n,o){let a=Object.fromEntries(Object.entries(e.providerCompletedTurnDisplay).filter(([c])=>c!==n));return O.strip().parse({...e,providerCompletedTurnDisplay:o===null?a:{...a,[n]:o}})}function fe(e,n){let o=e.find(a=>a.id===n);if(o!==void 0)return o;throw new Error(`Unknown provider '${n}'. Known providers: ${e.map(a=>a.id).join(", ")}.`)}function he(e,n){let o=de(n),a=D.safeParse(e);if(!a.success)throw new Error(`Unknown experiment '${e}'.`);return{[a.data]:o}}function N(e){if(F(e))return e;throw new Error(`Unknown UI preference '${e}'. Known preferences: ${_.join(", ")}.`)}function ge(e){try{return[JSON.parse(e),e]}catch{return[e]}}function ye(e,n){let o="";for(let a of ge(n)){let c=G(e,a);if(c.success)return c.value;o=c.message}throw new Error(`Invalid value '${n}' for '${e}': ${o}. Lists and null take JSON; plain strings may be unquoted.`)}function be(e){return e instanceof R&&e.status===409}function Ce(e,n){let o=e.command("settings").description("Inspect and update BB settings");o.command("show").description("Show server-backed settings and feature state").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=await l(n()).system.config();d(i,t)||console.log(JSON.stringify(t,null,2))}));let a=o.command("ai-services").description("Choose which plugin AI service writes thread titles, commit messages, and voice transcripts");a.command("show",{isDefault:!0}).description("Show each task's selection and every registered AI service").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=await l(n()).system.aiServices();d(i,t)||ce(t)})),a.command("set <task> <choice>").description(`Set the service for a task (${$.join(", ")}): automatic, off, or a service id`).option("--plugin <plugin-id>","Plugin that registers the service, when several plugins use the same service id").option("--json","Print machine-readable JSON output").action(u(async(i,t,s)=>{let r=re(i),p=l(n()),h=await p.system.aiServices(),f=await p.system.setAiServiceSelection({task:r,selection:se(h,{task:r,choice:t,pluginId:s.plugin})});d(s,f)||console.log(`${r}: ${Z(f,f.selections[r])}`)})),a.command("test <task>").description(`Run a sample through the current choice for ${T.join(" or ")}`).option("--json","Print machine-readable JSON output").action(u(async(i,t)=>{let s=E.safeParse(i);if(!s.success)throw new Error(`Unknown task '${i}'. Testable tasks: ${T.join(", ")}`);let r=await l(n()).system.testAiService({task:s.data});if(!d(t,r)){if(r.ok){console.log(`${r.displayName} (${r.durationMs}ms): ${r.text}`);return}console.log(`Failed after ${r.durationMs}ms: ${r.message}`),process.exitCode=1}})),o.command("general <key> <value>").description("Set a Settings \u2192 General preference").option("--json","Print machine-readable JSON output").action(u(async(i,t,s)=>{let r=l(n()),p=await r.system.config(),h=await r.system.updateGeneralSettings(W(p.generalSettings,i,t));d(s,h)||console.log(`${i} updated`)})),o.command("replay-onboarding").description("Show the first-run setup guide again").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=l(n()),s=await t.system.config(),r=await t.system.updateGeneralSettings({...s.generalSettings,onboardingCompletedAt:null});d(i,r)||console.log("The setup guide is showing again")})),o.command("completed-turns [providerId] [display]").description("Show or set whether each provider's finished turns collapse or stay flat (collapse, flat, or default)").option("--json","Print machine-readable JSON output").action(u(async(i,t,s)=>{let r=l(n()),[p,h]=await Promise.all([r.system.config(),r.providers.list()]);if(i===void 0){let P=h.map(X=>J(p.generalSettings,X));if(d(s,P))return;if(P.length===0){console.log("No providers available");return}q(P);return}let f=fe(h,i);if(t===void 0){let P=J(p.generalSettings,f);if(d(s,P))return;q([P]);return}let S=await r.system.updateGeneralSettings(me(p.generalSettings,f.id,pe(t))),y=J(S,f);d(s,y)||console.log(`${f.id} finished turns: ${y.completedTurnDisplay} (${y.source==="setting"?"setting":"provider default"})`)}));let c=o.command("ui").description("Manage server-synced UI preferences such as sidebar layout and navigation");c.command("list").description("List every UI preference with its value and revision").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=await l(n()).system.uiPreferences.list();if(!d(i,t))for(let s of _){let r=t.preferences[s];console.log(`${s} ${JSON.stringify(r.value)} (revision ${r.revision})`),console.log(` ${H(s)}`)}})),c.command("get <key>").description("Show one UI preference").option("--json","Print machine-readable JSON output").action(u(async(i,t)=>{let s=N(i),{preferences:r}=await l(n()).system.uiPreferences.list(),p=r[s];d(t,{key:s,...p})||console.log(JSON.stringify(p.value))})),c.command("set <key> <value>").description("Set a UI preference; lists and null take JSON").option("--json","Print machine-readable JSON output").action(u(async(i,t,s)=>{let r=N(i),p=ye(r,t),h=l(n()),f=async()=>{let{preferences:y}=await h.system.uiPreferences.list();return h.system.uiPreferences.set({expectedRevision:y[r].revision,key:r,value:p})},S;try{S=await f()}catch(y){if(!be(y))throw y;S=await f()}d(s,S)||console.log(`${r} updated`)})),c.command("reset <key>").description("Reset a UI preference to its default").option("--json","Print machine-readable JSON output").action(u(async(i,t)=>{let s=N(i),r=await l(n()).system.uiPreferences.reset({key:s});d(t,r)||console.log(`${s} reset`)})),o.command("mobile-app").description("Show iOS TestFlight and Android APK download links").option("--details","Include available public release metadata").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=l(n()).system,s=t.mobileAppDownloads();if(i.details){let r=await t.mobileAppReleases();if(d(i,{downloads:s,releases:r}))return;console.log(`iOS TestFlight: ${s.ios}
3
3
  Android APK: ${s.android}`),console.log(r.android?`Android ${r.android.version} (build ${r.android.versionCode}) \xB7 Updated ${r.android.updatedAt} \xB7 ${Math.ceil(r.android.size/1024/1024)} MB`:"Android release details are unavailable."),console.log("iOS version and release date are shown in TestFlight.");return}d(i,s)||console.log(`iOS TestFlight: ${s.ios}
4
4
  Android APK: ${s.android}`)})),o.command("experiment <key> <value>").description("Set an experiment value").option("--json","Print machine-readable JSON output").action(u(async(i,t,s)=>{let p=await l(n()).system.updateExperiments(he(i,t));d(s,p)||console.log(`${i} updated`)}));let v=o.command("keyboard").description("Manage keyboard settings and shortcut overrides");v.command("hints <value>").description("Show or hide held-modifier shortcut hints").option("--json","Print machine-readable JSON output").action(u(async(i,t)=>{let s=l(n()),r=await s.system.config(),p=await s.system.updateGeneralSettings(W(r.generalSettings,"showKeyboardHints",i));d(t,p)||console.log("Keyboard hint visibility updated")})),v.command("list").description("List effective keybindings and overrides").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=await l(n()).system.config(),s={bindings:t.keybindings,overrides:t.keybindingOverrides};d(i,s)||console.log(JSON.stringify(s,null,2))})),v.command("set <command> <shortcut>").description("Set a command shortcut; use 'disabled' to clear it").option("--platform <platform>","Scope to mac, windows, or linux",i=>C.parse(i)).option("--json","Print machine-readable JSON output").action(u(async(i,t,s)=>{let r=A.parse(i),p=l(n()),f=(await p.system.config()).keybindingOverrides.filter(y=>y.command!==r||y.platform!==s.platform);f.push({command:r,...s.platform===void 0?{}:{platform:s.platform},shortcut:t==="disabled"?null:le(t)});let S=await p.system.updateKeyboardSettings(f);d(s,S)||console.log(`Shortcut for ${r} updated`)})),v.command("reset [command]").description("Reset one command override or all keyboard overrides").option("--platform <platform>","Scope to mac, windows, or linux",i=>C.parse(i)).option("--json","Print machine-readable JSON output").action(u(async(i,t)=>{let s=l(n()),r=await s.system.config(),p=i===void 0?void 0:A.parse(i),h=r.keybindingOverrides.filter(S=>p!==void 0&&S.command!==p||t.platform!==void 0&&S.platform!==t.platform),f=await s.system.updateKeyboardSettings(h);d(t,f)||console.log(i?`Shortcut for ${i} reset`:"Keyboard overrides reset")})),o.command("usage").description("Show provider usage limits").option("--refresh","Fetch fresh usage instead of a cached result").option("--machine <id-or-name>","Machine whose provider usage should be shown").option("--host <id-or-name>","Alias for --machine").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=B(i),s=t===void 0?void 0:await V({serverUrl:n(),target:t}),r=await l(n()).system.usageLimits({hostId:s,refresh:i.refresh});d(i,r)||console.log(JSON.stringify(r,null,2))})),o.command("version").description("Check the running and latest BB versions").option("--force","Bypass the latest-version cache").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=await l(n()).system.version({force:i.force});d(i,t)||console.log(JSON.stringify(t,null,2))}));let g=o.command("cli-command").description("Install the bb CLI for use outside bb, on the computer that runs the bb server");g.command("show",{isDefault:!0}).description("Show whether the bb CLI is installed for use outside bb").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=await l(n()).system.experimental_cliCommand();d(i,t)||console.log(K(t))})),g.command("install").description("Link the bb CLI into a folder on PATH").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=await l(n()).system.experimental_installCliCommand();d(i,t)||console.log(K(t))})),g.command("remove").description("Take the bb CLI that bb installed off PATH").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=await l(n()).system.experimental_removeCliCommand();d(i,t)||console.log(t.installedPath===null?"Removed the bb CLI from your PATH.":K(t))})),o.command("reload").description("Reload BB's managed configuration").option("--json","Print machine-readable JSON output").action(u(async i=>{let t=await l(n()).system.reloadConfig();d(i,t)||console.log("Configuration reloaded")}))}export{Ce as registerSettingsCommands};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __createRequire } from "node:module";import { dirname as __pathDirname } from "node:path";import { fileURLToPath as __fileURLToPath } from "node:url";const require = __createRequire(import.meta.url);const __filename = __fileURLToPath(import.meta.url);const __dirname = __pathDirname(__filename);
2
- import{a as R,b as w}from"./chunk-ATDR5E2C.js";import{b as S}from"./chunk-XSBF3HQR.js";import{a as p,b as I,d as O,j as h}from"./chunk-ZWBRH7R6.js";import"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{b as m}from"./chunk-7EOZF4HA.js";import{B as b}from"./chunk-SDZLOCRA.js";import"./chunk-QE47NRKX.js";import"./chunk-5ZMA4MIX.js";import"./chunk-ZT24MY2V.js";import"./chunk-REEBSQ75.js";import"./chunk-E7J2DJY7.js";import"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";import{readFile as E}from"node:fs/promises";function f(o,l){return o.project??l.projectId??b}function g(o){return o.environment??null}function v(o,l){if(o===void 0)return l;let a=Number(o);if(!Number.isSafeInteger(a)||a<0)throw new Error(`Expected a nonnegative integer, received "${o}".`);return a}function k(o){return o.option("--project <id>","Project ID (defaults to BB_PROJECT_ID or personal)").option("--environment <id>","Project environment workspace").option("--json","Print machine-readable JSON output")}var C=6,y=48;async function $(o,l,a){let r=new Array(o.length),n=0,t=Array.from({length:Math.max(1,Math.min(l,o.length))},async()=>{for(;n<o.length;){let e=n++;r[e]=await a(o[e])}});return await Promise.all(t),r}async function P(o,l){let a=[...new Map(l.filter(n=>n.stars===null).map(n=>[n.source.toLowerCase(),n.source])).entries()].slice(0,y),r=new Map(await $(a,C,async([n,t])=>{let e=await o.repositoryStars({source:t}).then(s=>s.stars).catch(()=>null);return[n,e]}));return l.map(n=>{if(n.stars!==null)return n;let t=r.get(n.source.toLowerCase());return t==null?n:{...n,stars:t}})}async function L(o,l,a){let r=a==="trending",n=l.filter(e=>e.summary===null||r).slice(0,y),t=new Map(await $(n,C,async e=>{let s=await o.get({registrySkillId:e.id}).catch(()=>null);return[e.id,s]}));return l.map(e=>{let s=t.get(e.id)??null;return{...e,summary:s?.summary??e.summary,lifetimeInstalls:r?s?.installs??null:e.installs}})}function D(o,l,a){let r=o.command("skill").description("List, inspect, edit, install, and remove skills");k(r.command("list")).description("List installed and discovered skills").action(h(async n=>{let t=await m(l()).skills.list({projectId:f(n,a()),environmentId:g(n)});p(n,t)||console.log(S({head:["ID","NAME","SCOPE","PROVIDER","EDITABLE","PATH"],colWidths:[72,24,18,14,10,48],trimTrailingWhitespace:!0},t.skills.map(e=>[e.id,e.name,e.scope,e.provider??"bb",e.manageable?"yes":"no",e.filePath])))})),k(r.command("show <skill-id>")).description("Print an installed skill file").option("--path <path>","Skill-relative file path","SKILL.md").action(h(async(n,t)=>{let e=await m(l()).skills.getContent({projectId:f(t,a()),environmentId:g(t),skillId:n,path:t.path});p(t,e)||(console.error(`Revision: ${e.revision}`),process.stdout.write(e.content))})),k(r.command("files <skill-id>")).description("List files included in an installed skill").action(h(async(n,t)=>{let e=await m(l()).skills.listFiles({projectId:f(t,a()),environmentId:g(t),skillId:n});if(!p(t,e)){for(let s of e.files)console.log(s);e.truncated&&console.error("File list truncated.")}})),k(r.command("update <skill-id>")).description("Replace an editable skill's SKILL.md from a local file").requiredOption("--file <path>","Local SKILL.md to upload").requiredOption("--revision <sha256>","Revision returned by bb skill show --json").action(h(async(n,t)=>{let e=await m(l()).skills.update({projectId:f(t,a()),environmentId:g(t),skillId:n,content:await E(t.file,"utf8"),revision:t.revision});p(t,e)||console.log(`Updated ${e.filePath}`)})),k(r.command("delete <skill-id>")).description("Delete an editable user-owned skill").option("--yes","Skip the confirmation prompt").action(h(async(n,t)=>{if(!t.yes&&!await O(`Delete ${n}? This cannot be undone.`)){console.log("Aborted.");return}let e=await m(l()).skills.remove({projectId:f(t,a()),environmentId:g(t),skillId:n});p(t,e)||console.log(`Deleted ${e.deletedPath}`)})),r.command("search [query]").description("Search the skills.sh registry, or list what is trending with no query").option("--page <number>","Zero-based result page","0").option("--per-page <number>",`Results per page; above ${y} leaves lifetime install counts unresolved`,"24").option("--json","Print machine-readable JSON output").action(h(async(n,t)=>{let e=m(l()).skills.registry,s=await e.search({query:n,page:v(t.page,0),perPage:v(t.perPage,24)}),c=await L(e,await P(e,s.skills),s.ranking),i={...s,skills:c},d=c.filter(u=>u.lifetimeInstalls===null).length;d>0&&console.error(`Lifetime install counts unresolved for ${d} of ${c.length} skills \u2014 a detail page could not be fetched, or the page exceeds the ${y}-row enrichment cap. Those rows carry lifetimeInstalls: null and print as "\u2014"; installs still counts the ranking's window.`),!p(t,i)&&console.log(S({head:["ID","INSTALLS","STARS","SUMMARY"],colWidths:[48,12,10,48],trimTrailingWhitespace:!0},i.skills.map(u=>[u.id,u.lifetimeInstalls===null?"\u2014":String(u.lifetimeInstalls),u.stars===null?"\u2014":String(u.stars),u.summary??""])))})),r.command("registry").description("Inspect skills.sh registry entries").command("detail <registry-skill-id>").description("Show registry metadata and the bounded file preview").option("--json","Print machine-readable JSON output").action(h(async(n,t)=>{let e=m(l()).skills.registry,s=await e.get({registrySkillId:n}),[c,[i]]=await Promise.all([e.detail({source:s.source,skillId:s.skillId}),P(e,[s])]),d={skill:i??s,detail:c};if(!p(t,d)){if(console.log(`Name: ${d.skill.name}`),console.log(`ID: ${d.skill.id}`),console.log(`Source: ${d.skill.source}`),console.log(`Installs: ${d.skill.installs}`),console.log(`Stars: ${d.skill.stars??"\u2014"}`),console.log(`URL: ${d.skill.url}`),d.skill.summary&&console.log(`Summary: ${d.skill.summary}`),console.log(`Revision: ${c.hash??"unknown"}`),c.files===null){console.log("Files: unavailable");return}for(let u of c.files)console.log(`
2
+ import{a as R,b as w}from"./chunk-CZ4K4Z4T.js";import{b as S}from"./chunk-XSBF3HQR.js";import{a as p,b as I,d as O,j as h}from"./chunk-DCRUVPRR.js";import"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{b as m}from"./chunk-F7XCHQA3.js";import{B as b}from"./chunk-HDUE2YKX.js";import"./chunk-NZY63D4X.js";import"./chunk-FZ76WJJG.js";import"./chunk-ZT24MY2V.js";import"./chunk-L5UJ4QUD.js";import"./chunk-E7J2DJY7.js";import"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";import{readFile as E}from"node:fs/promises";function f(o,l){return o.project??l.projectId??b}function g(o){return o.environment??null}function v(o,l){if(o===void 0)return l;let a=Number(o);if(!Number.isSafeInteger(a)||a<0)throw new Error(`Expected a nonnegative integer, received "${o}".`);return a}function k(o){return o.option("--project <id>","Project ID (defaults to BB_PROJECT_ID or personal)").option("--environment <id>","Project environment workspace").option("--json","Print machine-readable JSON output")}var C=6,y=48;async function $(o,l,a){let r=new Array(o.length),n=0,t=Array.from({length:Math.max(1,Math.min(l,o.length))},async()=>{for(;n<o.length;){let e=n++;r[e]=await a(o[e])}});return await Promise.all(t),r}async function P(o,l){let a=[...new Map(l.filter(n=>n.stars===null).map(n=>[n.source.toLowerCase(),n.source])).entries()].slice(0,y),r=new Map(await $(a,C,async([n,t])=>{let e=await o.repositoryStars({source:t}).then(s=>s.stars).catch(()=>null);return[n,e]}));return l.map(n=>{if(n.stars!==null)return n;let t=r.get(n.source.toLowerCase());return t==null?n:{...n,stars:t}})}async function L(o,l,a){let r=a==="trending",n=l.filter(e=>e.summary===null||r).slice(0,y),t=new Map(await $(n,C,async e=>{let s=await o.get({registrySkillId:e.id}).catch(()=>null);return[e.id,s]}));return l.map(e=>{let s=t.get(e.id)??null;return{...e,summary:s?.summary??e.summary,lifetimeInstalls:r?s?.installs??null:e.installs}})}function D(o,l,a){let r=o.command("skill").description("List, inspect, edit, install, and remove skills");k(r.command("list")).description("List installed and discovered skills").action(h(async n=>{let t=await m(l()).skills.list({projectId:f(n,a()),environmentId:g(n)});p(n,t)||console.log(S({head:["ID","NAME","SCOPE","PROVIDER","EDITABLE","PATH"],colWidths:[72,24,18,14,10,48],trimTrailingWhitespace:!0},t.skills.map(e=>[e.id,e.name,e.scope,e.provider??"bb",e.manageable?"yes":"no",e.filePath])))})),k(r.command("show <skill-id>")).description("Print an installed skill file").option("--path <path>","Skill-relative file path","SKILL.md").action(h(async(n,t)=>{let e=await m(l()).skills.getContent({projectId:f(t,a()),environmentId:g(t),skillId:n,path:t.path});p(t,e)||(console.error(`Revision: ${e.revision}`),process.stdout.write(e.content))})),k(r.command("files <skill-id>")).description("List files included in an installed skill").action(h(async(n,t)=>{let e=await m(l()).skills.listFiles({projectId:f(t,a()),environmentId:g(t),skillId:n});if(!p(t,e)){for(let s of e.files)console.log(s);e.truncated&&console.error("File list truncated.")}})),k(r.command("update <skill-id>")).description("Replace an editable skill's SKILL.md from a local file").requiredOption("--file <path>","Local SKILL.md to upload").requiredOption("--revision <sha256>","Revision returned by bb skill show --json").action(h(async(n,t)=>{let e=await m(l()).skills.update({projectId:f(t,a()),environmentId:g(t),skillId:n,content:await E(t.file,"utf8"),revision:t.revision});p(t,e)||console.log(`Updated ${e.filePath}`)})),k(r.command("delete <skill-id>")).description("Delete an editable user-owned skill").option("--yes","Skip the confirmation prompt").action(h(async(n,t)=>{if(!t.yes&&!await O(`Delete ${n}? This cannot be undone.`)){console.log("Aborted.");return}let e=await m(l()).skills.remove({projectId:f(t,a()),environmentId:g(t),skillId:n});p(t,e)||console.log(`Deleted ${e.deletedPath}`)})),r.command("search [query]").description("Search the skills.sh registry, or list what is trending with no query").option("--page <number>","Zero-based result page","0").option("--per-page <number>",`Results per page; above ${y} leaves lifetime install counts unresolved`,"24").option("--json","Print machine-readable JSON output").action(h(async(n,t)=>{let e=m(l()).skills.registry,s=await e.search({query:n,page:v(t.page,0),perPage:v(t.perPage,24)}),c=await L(e,await P(e,s.skills),s.ranking),i={...s,skills:c},d=c.filter(u=>u.lifetimeInstalls===null).length;d>0&&console.error(`Lifetime install counts unresolved for ${d} of ${c.length} skills \u2014 a detail page could not be fetched, or the page exceeds the ${y}-row enrichment cap. Those rows carry lifetimeInstalls: null and print as "\u2014"; installs still counts the ranking's window.`),!p(t,i)&&console.log(S({head:["ID","INSTALLS","STARS","SUMMARY"],colWidths:[48,12,10,48],trimTrailingWhitespace:!0},i.skills.map(u=>[u.id,u.lifetimeInstalls===null?"\u2014":String(u.lifetimeInstalls),u.stars===null?"\u2014":String(u.stars),u.summary??""])))})),r.command("registry").description("Inspect skills.sh registry entries").command("detail <registry-skill-id>").description("Show registry metadata and the bounded file preview").option("--json","Print machine-readable JSON output").action(h(async(n,t)=>{let e=m(l()).skills.registry,s=await e.get({registrySkillId:n}),[c,[i]]=await Promise.all([e.detail({source:s.source,skillId:s.skillId}),P(e,[s])]),d={skill:i??s,detail:c};if(!p(t,d)){if(console.log(`Name: ${d.skill.name}`),console.log(`ID: ${d.skill.id}`),console.log(`Source: ${d.skill.source}`),console.log(`Installs: ${d.skill.installs}`),console.log(`Stars: ${d.skill.stars??"\u2014"}`),console.log(`URL: ${d.skill.url}`),d.skill.summary&&console.log(`Summary: ${d.skill.summary}`),console.log(`Revision: ${c.hash??"unknown"}`),c.files===null){console.log("Files: unavailable");return}for(let u of c.files)console.log(`
3
3
  --- ${u.path} ---`),process.stdout.write(u.contents),u.contents.endsWith(`
4
4
  `)||process.stdout.write(`
5
5
  `)}})),r.command("install <registry-skill-id>").description("Install a canonical skills.sh entry into bb user skills").option("--json","Print machine-readable JSON output").action(h(async(n,t)=>{let e=await m(l()).skills.registry.install({registrySkillId:n});p(t,e)||console.log(`Installed ${e.filePath}`)})),r.command("cli-skills-status").description("Show whether each machine has bb's built-in CLI skills installed").option("--machine <id-or-name>","Machine to report on (repeatable, defaults to every persistent machine)",I,[]).option("--json","Print machine-readable JSON output").action(h(async n=>{let t=m(l()),e=n.machine.length>0?await t.hosts.list():[],s=n.machine.length>0?n.machine.map(i=>w(e,i)):void 0,c=await t.system.cliSkillsStatus(s===void 0?{}:{hostIds:s});p(n,c)||console.log(S({head:["MACHINE","STATUS"],colWidths:[32,16],trimTrailingWhitespace:!0},c.machines.map(i=>[i.hostName,i.status])))})),r.command("install-cli-skills").description("Install bb's built-in CLI skills into ~/.agents/skills and ~/.claude/skills on a machine").option("--machine <id-or-name>","Machine to install onto (repeatable, defaults to every connected persistent machine)",I,[]).option("--json","Print machine-readable JSON output").action(h(async n=>{let t=m(l()),e=await t.hosts.list(),s=n.machine.length>0?n.machine.map(i=>w(e,i)):R(e,"persistent").filter(i=>i.status==="connected").map(i=>i.id);if(s.length===0)throw new Error("No connected machine to install the skills onto.");let c=await t.system.installCliSkills({hostIds:s});if(!p(n,c)){for(let i of c.results){if(!i.ok){console.error(`${i.hostName}: ${i.errorMessage}`);continue}for(let d of i.installations)console.log(`${i.hostName}: installed ${d.name} to ${d.path}`)}if(c.results.some(i=>!i.ok))throw new Error("The install failed on at least one machine.")}}))}export{D as registerSkillCommands};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from "node:module";import { dirname as __pathDirname } from "node:path";import { fileURLToPath as __fileURLToPath } from "node:url";const require = __createRequire(import.meta.url);const __filename = __fileURLToPath(import.meta.url);const __dirname = __pathDirname(__filename);
2
- import{a as g,b as m,d as f}from"./chunk-JWA6VJYL.js";import{a as p,j as u}from"./chunk-ZWBRH7R6.js";import"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{a as c,b as d}from"./chunk-7EOZF4HA.js";import"./chunk-SDZLOCRA.js";import"./chunk-QE47NRKX.js";import{i as h}from"./chunk-5ZMA4MIX.js";import"./chunk-ZT24MY2V.js";import"./chunk-REEBSQ75.js";import"./chunk-E7J2DJY7.js";import"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";function A(T,a,I=h){T.command("status").description("Show current context").option("--json","Print machine-readable JSON output").action(u(async v=>{let o=I(),t={dataDir:null,project:null,thread:null,childThreads:null,pendingTodos:null,pluginsNeedingAttention:[]},i=!1;try{let n=await c(`${a()}/api/v1/system/config`);if(n.ok){let e=await n.json();typeof e.dataDir=="string"&&(t.dataDir=e.dataDir,i=!0)}}catch{}if(i){let{plugins:n}=await d(a()).plugins.list();t.pluginsNeedingAttention=n.filter(e=>e.enabled&&["incompatible","error","missing"].includes(e.status)).map(e=>({id:e.id,status:e.status}))}if(o.projectId||o.threadId){let n=d(a()),e=await n.status.get({projectId:o.projectId,threadId:o.threadId});if(e.project&&(t.project={id:e.project.id,name:e.project.name},i=!0),e.thread){let l=null;e.thread.environmentId&&(l=await g({environmentId:e.thread.environmentId,sdk:n})),t.pendingTodos=e.pendingTodos,t.thread={id:e.thread.id,status:e.thread.status,title:e.thread.title??null,pinnedAt:e.thread.pinnedAt,parentThreadId:e.thread.parentThreadId??null,parentNotifications:e.thread.parentNotifications,environment:l},i=!0,e.childThreads&&(t.childThreads=e.childThreads.map(s=>({id:s.id,status:s.status,title:s.title??null})))}}if(p(v,t))return;if(i&&t.project?console.log(`Project: ${t.project.name} (${t.project.id})`):o.projectId?console.log(`Project: ${o.projectId}`):console.log("Project: (not set)"),console.log(""),i&&t.thread){if(console.log(`Thread: ${t.thread.id}`),console.log(` Status: ${t.thread.status}`),t.thread.title&&console.log(` Title: ${t.thread.title}`),t.thread.pinnedAt!==null&&console.log(` Pinned: ${new Date(t.thread.pinnedAt).toLocaleString()}`),t.thread.parentThreadId&&(console.log(` Parent: ${t.thread.parentThreadId}`),console.log(` Parent notifications: ${t.thread.parentNotifications}`)),t.thread.environment&&m(t.thread.environment),t.childThreads&&t.childThreads.length>0){console.log(""),console.log(`Child threads: ${t.childThreads.length}`);for(let n of t.childThreads){let e=n.title?`"${n.title}"`:"";console.log(` ${n.id} ${n.status} ${e}`)}}f(t.pendingTodos)}else o.threadId?console.log(`Thread: ${o.threadId}`):console.log("Thread: (not set)");t.dataDir&&(console.log(""),console.log(`Data dir: ${t.dataDir}`));let r=t.pluginsNeedingAttention;r.length>0&&(console.log(""),console.log(`${r.length} plugin${r.length===1?"":"s"} not running (${r.map(n=>`${n.id}: ${n.status}`).join(", ")}). Run bb plugin list.`)),!o.projectId&&!o.threadId&&(console.log(""),console.log("Tip: run bb guide for help getting started."))}))}export{A as registerStatusCommand};
2
+ import{a as g,b as m,d as f}from"./chunk-FYCUA6H6.js";import{a as p,j as u}from"./chunk-DCRUVPRR.js";import"./chunk-NCQMSH7M.js";import"./chunk-WWZ7D6EQ.js";import{a as c,b as d}from"./chunk-F7XCHQA3.js";import"./chunk-HDUE2YKX.js";import"./chunk-NZY63D4X.js";import{i as h}from"./chunk-FZ76WJJG.js";import"./chunk-ZT24MY2V.js";import"./chunk-L5UJ4QUD.js";import"./chunk-E7J2DJY7.js";import"./chunk-7LJFYNRQ.js";import"./chunk-5PWLIQO6.js";function A(T,a,I=h){T.command("status").description("Show current context").option("--json","Print machine-readable JSON output").action(u(async v=>{let o=I(),t={dataDir:null,project:null,thread:null,childThreads:null,pendingTodos:null,pluginsNeedingAttention:[]},i=!1;try{let n=await c(`${a()}/api/v1/system/config`);if(n.ok){let e=await n.json();typeof e.dataDir=="string"&&(t.dataDir=e.dataDir,i=!0)}}catch{}if(i){let{plugins:n}=await d(a()).plugins.list();t.pluginsNeedingAttention=n.filter(e=>e.enabled&&["incompatible","error","missing"].includes(e.status)).map(e=>({id:e.id,status:e.status}))}if(o.projectId||o.threadId){let n=d(a()),e=await n.status.get({projectId:o.projectId,threadId:o.threadId});if(e.project&&(t.project={id:e.project.id,name:e.project.name},i=!0),e.thread){let l=null;e.thread.environmentId&&(l=await g({environmentId:e.thread.environmentId,sdk:n})),t.pendingTodos=e.pendingTodos,t.thread={id:e.thread.id,status:e.thread.status,title:e.thread.title??null,pinnedAt:e.thread.pinnedAt,parentThreadId:e.thread.parentThreadId??null,parentNotifications:e.thread.parentNotifications,environment:l},i=!0,e.childThreads&&(t.childThreads=e.childThreads.map(s=>({id:s.id,status:s.status,title:s.title??null})))}}if(p(v,t))return;if(i&&t.project?console.log(`Project: ${t.project.name} (${t.project.id})`):o.projectId?console.log(`Project: ${o.projectId}`):console.log("Project: (not set)"),console.log(""),i&&t.thread){if(console.log(`Thread: ${t.thread.id}`),console.log(` Status: ${t.thread.status}`),t.thread.title&&console.log(` Title: ${t.thread.title}`),t.thread.pinnedAt!==null&&console.log(` Pinned: ${new Date(t.thread.pinnedAt).toLocaleString()}`),t.thread.parentThreadId&&(console.log(` Parent: ${t.thread.parentThreadId}`),console.log(` Parent notifications: ${t.thread.parentNotifications}`)),t.thread.environment&&m(t.thread.environment),t.childThreads&&t.childThreads.length>0){console.log(""),console.log(`Child threads: ${t.childThreads.length}`);for(let n of t.childThreads){let e=n.title?`"${n.title}"`:"";console.log(` ${n.id} ${n.status} ${e}`)}}f(t.pendingTodos)}else o.threadId?console.log(`Thread: ${o.threadId}`):console.log("Thread: (not set)");t.dataDir&&(console.log(""),console.log(`Data dir: ${t.dataDir}`));let r=t.pluginsNeedingAttention;r.length>0&&(console.log(""),console.log(`${r.length} plugin${r.length===1?"":"s"} not running (${r.map(n=>`${n.id}: ${n.status}`).join(", ")}). Run bb plugin list.`)),!o.projectId&&!o.threadId&&(console.log(""),console.log("Tip: run bb guide for help getting started."))}))}export{A as registerStatusCommand};