@halcyonlabs/app 0.47.0-halcyon.150 → 0.47.0-halcyon.154

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 (673) hide show
  1. package/README.md +42 -42
  2. package/app/dist/assets/AddMachineDialog-BdJpkihi.js +1 -0
  3. package/app/dist/assets/AddMachineDialog-BdJpkihi.js.br +0 -0
  4. package/app/dist/assets/AddMachineDialog-BdJpkihi.js.gz +0 -0
  5. package/app/dist/assets/{AppCommandShortcutHint-XqWnnhwm.js → AppCommandShortcutHint-BHgq3YeS.js} +1 -1
  6. package/app/dist/assets/{AppFileExternalNavigationDispatcher-BSAKfw3w.js → AppFileExternalNavigationDispatcher-BeDkvNKN.js} +1 -1
  7. package/app/dist/assets/AppFileExternalNavigationDispatcher-BeDkvNKN.js.br +0 -0
  8. package/app/dist/assets/AppFileExternalNavigationDispatcher-BeDkvNKN.js.gz +0 -0
  9. package/app/dist/assets/{AppToasterView-CXc7iVrR.js → AppToasterView-DuifTr5L.js} +1 -1
  10. package/app/dist/assets/{BbDiff-DphdUFhF.js → BbDiff-GK254uaZ.js} +1 -1
  11. package/app/dist/assets/BbDiff-GK254uaZ.js.br +0 -0
  12. package/app/dist/assets/BbDiff-GK254uaZ.js.gz +0 -0
  13. package/app/dist/assets/{BbDiffSplit-DoZzLlkG.js → BbDiffSplit-WqGywaFa.js} +2 -2
  14. package/app/dist/assets/BbDiffSplit-WqGywaFa.js.br +0 -0
  15. package/app/dist/assets/BbDiffSplit-WqGywaFa.js.gz +0 -0
  16. package/app/dist/assets/{BbSourceCode-BpW5o86b.js → BbSourceCode-C5bDBexv.js} +1 -1
  17. package/app/dist/assets/BbSourceCode-C5bDBexv.js.br +0 -0
  18. package/app/dist/assets/BbSourceCode-C5bDBexv.js.gz +0 -0
  19. package/app/dist/assets/{BrowserTabDeck-BAqPQSof.js → BrowserTabDeck-CdoghDkN.js} +1 -1
  20. package/app/dist/assets/BrowserTabDeck-CdoghDkN.js.br +0 -0
  21. package/app/dist/assets/BrowserTabDeck-CdoghDkN.js.gz +0 -0
  22. package/app/dist/assets/{CommandPaletteBody-DP0u2Xvo.js → CommandPaletteBody-CYJbbw07.js} +1 -1
  23. package/app/dist/assets/CommandPaletteBody-CYJbbw07.js.br +0 -0
  24. package/app/dist/assets/CommandPaletteBody-CYJbbw07.js.gz +0 -0
  25. package/app/dist/assets/{DiffHost-BYfjGqQR.js → DiffHost-B1V_Qu-M.js} +1 -1
  26. package/app/dist/assets/DiffHost-B1V_Qu-M.js.br +0 -0
  27. package/app/dist/assets/DiffHost-B1V_Qu-M.js.gz +0 -0
  28. package/app/dist/assets/{ExperimentalFileLinkMenu-BAq3i6fs.js → ExperimentalFileLinkMenu-10AbAPks.js} +1 -1
  29. package/app/dist/assets/ExperimentalFileLinkMenu-10AbAPks.js.br +0 -0
  30. package/app/dist/assets/ExperimentalFileLinkMenu-10AbAPks.js.gz +0 -0
  31. package/app/dist/assets/{FilePreview-D3M2shlJ.js → FilePreview-B8mmtVCb.js} +1 -1
  32. package/app/dist/assets/FilePreview-B8mmtVCb.js.br +0 -0
  33. package/app/dist/assets/FilePreview-B8mmtVCb.js.gz +0 -0
  34. package/app/dist/assets/{GitDiffCardHeader-CRpu_qP7.js → GitDiffCardHeader-6438-ciu.js} +1 -1
  35. package/app/dist/assets/GitDiffCardHeader-6438-ciu.js.br +0 -0
  36. package/app/dist/assets/GitDiffCardHeader-6438-ciu.js.gz +0 -0
  37. package/app/dist/assets/{InlineMessageEditorFrame-BIfhlo1r.js → InlineMessageEditorFrame-DgUMycK2.js} +1 -1
  38. package/app/dist/assets/InlineMessageEditorFrame-DgUMycK2.js.br +0 -0
  39. package/app/dist/assets/InlineMessageEditorFrame-DgUMycK2.js.gz +0 -0
  40. package/app/dist/assets/{MachineRenameDialog-KYbZxaU8.js → MachineRenameDialog-Cgu_3BCL.js} +1 -1
  41. package/app/dist/assets/MachineRenameDialog-Cgu_3BCL.js.br +0 -0
  42. package/app/dist/assets/MachineRenameDialog-Cgu_3BCL.js.gz +0 -0
  43. package/app/dist/assets/{MachineSettingsView-B2gik2Fi.js → MachineSettingsView-Bv44IfNC.js} +1 -1
  44. package/app/dist/assets/MachineSettingsView-Bv44IfNC.js.br +0 -0
  45. package/app/dist/assets/MachineSettingsView-Bv44IfNC.js.gz +0 -0
  46. package/app/dist/assets/{MicrophonePreferences-D8yXHTVX.js → MicrophonePreferences-BHJopO0d.js} +1 -1
  47. package/app/dist/assets/MicrophonePreferences-BHJopO0d.js.br +0 -0
  48. package/app/dist/assets/MicrophonePreferences-BHJopO0d.js.gz +0 -0
  49. package/app/dist/assets/{ModelReasoningMenu-64I3wWj8.js → ModelReasoningMenu-IS0CHDdZ.js} +1 -1
  50. package/app/dist/assets/ModelReasoningMenu-IS0CHDdZ.js.br +0 -0
  51. package/app/dist/assets/ModelReasoningMenu-IS0CHDdZ.js.gz +0 -0
  52. package/app/dist/assets/{NewTabPage-0D1zh52c.js → NewTabPage-BlwyBjYu.js} +1 -1
  53. package/app/dist/assets/NewTabPage-BlwyBjYu.js.br +0 -0
  54. package/app/dist/assets/NewTabPage-BlwyBjYu.js.gz +0 -0
  55. package/app/dist/assets/{NewThreadComposer-CzhJPPA-.js → NewThreadComposer-CHSISNL-.js} +1 -1
  56. package/app/dist/assets/NewThreadComposer-CHSISNL-.js.br +0 -0
  57. package/app/dist/assets/NewThreadComposer-CHSISNL-.js.gz +0 -0
  58. package/app/dist/assets/{OnboardingFlow-B7dIXW5b.js → OnboardingFlow-BNj0nIEa.js} +1 -1
  59. package/app/dist/assets/OnboardingFlow-BNj0nIEa.js.br +0 -0
  60. package/app/dist/assets/OnboardingFlow-BNj0nIEa.js.gz +0 -0
  61. package/app/dist/assets/{OptionPicker-CVNc9bQV.js → OptionPicker-DhStUln1.js} +1 -1
  62. package/app/dist/assets/OptionPicker-DhStUln1.js.br +0 -0
  63. package/app/dist/assets/OptionPicker-DhStUln1.js.gz +0 -0
  64. package/app/dist/assets/{PaletteShell-BmMN3w8R.js → PaletteShell-CPrD4CCm.js} +1 -1
  65. package/app/dist/assets/PaletteShell-CPrD4CCm.js.br +0 -0
  66. package/app/dist/assets/PaletteShell-CPrD4CCm.js.gz +0 -0
  67. package/app/dist/assets/{PaneMaximizeButton-CJ2jMV6A.js → PaneMaximizeButton-XAgQw8mC.js} +1 -1
  68. package/app/dist/assets/PaneMaximizeButton-XAgQw8mC.js.br +0 -0
  69. package/app/dist/assets/PaneMaximizeButton-XAgQw8mC.js.gz +0 -0
  70. package/app/dist/assets/{PierreLineSelectionActions-CKcwMnwZ.js → PierreLineSelectionActions-o8f-eWuJ.js} +1 -1
  71. package/app/dist/assets/PierreLineSelectionActions-o8f-eWuJ.js.br +0 -0
  72. package/app/dist/assets/PierreLineSelectionActions-o8f-eWuJ.js.gz +0 -0
  73. package/app/dist/assets/{PluginPanelRightPanelHost-CM5fWHYY.js → PluginPanelRightPanelHost-BfbYIoWW.js} +1 -1
  74. package/app/dist/assets/PluginPanelRightPanelHost-BfbYIoWW.js.br +0 -0
  75. package/app/dist/assets/PluginPanelRightPanelHost-BfbYIoWW.js.gz +0 -0
  76. package/app/dist/assets/{PluginThreadChat-TLqw_QGC.js → PluginThreadChat-DWFQ8LHw.js} +1 -1
  77. package/app/dist/assets/PluginThreadChat-DWFQ8LHw.js.br +0 -0
  78. package/app/dist/assets/PluginThreadChat-DWFQ8LHw.js.gz +0 -0
  79. package/app/dist/assets/{ProjectDetailSettingsView-BsUvPmd1.js → ProjectDetailSettingsView-06DRszyG.js} +1 -1
  80. package/app/dist/assets/ProjectDetailSettingsView-06DRszyG.js.br +0 -0
  81. package/app/dist/assets/ProjectDetailSettingsView-06DRszyG.js.gz +0 -0
  82. package/app/dist/assets/{ProjectMachineSetupDialog-BP7XMssh.js → ProjectMachineSetupDialog-DHuOOhYL.js} +1 -1
  83. package/app/dist/assets/ProjectMachineSetupDialog-DHuOOhYL.js.br +0 -0
  84. package/app/dist/assets/ProjectMachineSetupDialog-DHuOOhYL.js.gz +0 -0
  85. package/app/dist/assets/{ProjectsSettingsSection-yZ2EdUuh.js → ProjectsSettingsSection-B-X7Xz7C.js} +1 -1
  86. package/app/dist/assets/ProjectsSettingsSection-B-X7Xz7C.js.br +0 -0
  87. package/app/dist/assets/ProjectsSettingsSection-B-X7Xz7C.js.gz +0 -0
  88. package/app/dist/assets/{QueuedMessagesList-BwnbJOmz.js → QueuedMessagesList-C008DSJg.js} +1 -1
  89. package/app/dist/assets/QueuedMessagesList-C008DSJg.js.br +0 -0
  90. package/app/dist/assets/QueuedMessagesList-C008DSJg.js.gz +0 -0
  91. package/app/dist/assets/{RemotePathBrowser-DUrwe6ZE.js → RemotePathBrowser-CKFtgh2_.js} +1 -1
  92. package/app/dist/assets/RemotePathBrowser-CKFtgh2_.js.br +0 -0
  93. package/app/dist/assets/RemotePathBrowser-CKFtgh2_.js.gz +0 -0
  94. package/app/dist/assets/{RootComposeView-oJcCn_s1.js → RootComposeView-DdzcUM0J.js} +1 -1
  95. package/app/dist/assets/RootComposeView-DdzcUM0J.js.br +0 -0
  96. package/app/dist/assets/RootComposeView-DdzcUM0J.js.gz +0 -0
  97. package/app/dist/assets/{SecondaryPanelLayout-CL5xgoDW.js → SecondaryPanelLayout-CpUjw8_E.js} +1 -1
  98. package/app/dist/assets/SecondaryPanelLayout-CpUjw8_E.js.br +0 -0
  99. package/app/dist/assets/SecondaryPanelLayout-CpUjw8_E.js.gz +0 -0
  100. package/app/dist/assets/{ServerMoveOverlayView-BRspdcDG.js → ServerMoveOverlayView-Bq0CSTyk.js} +1 -1
  101. package/app/dist/assets/ServerMoveOverlayView-Bq0CSTyk.js.br +0 -0
  102. package/app/dist/assets/ServerMoveOverlayView-Bq0CSTyk.js.gz +0 -0
  103. package/app/dist/assets/{SettingsSidebar-ji-CSeC6.js → SettingsSidebar-CMW-e9Nx.js} +1 -1
  104. package/app/dist/assets/SettingsSidebar-CMW-e9Nx.js.br +0 -0
  105. package/app/dist/assets/SettingsSidebar-CMW-e9Nx.js.gz +0 -0
  106. package/app/dist/assets/{SettingsView-CkBg3_lw.js → SettingsView-DhD-DKNU.js} +2 -2
  107. package/app/dist/assets/SettingsView-DhD-DKNU.js.br +0 -0
  108. package/app/dist/assets/SettingsView-DhD-DKNU.js.gz +0 -0
  109. package/app/dist/assets/{SidebarFooterCustomize-BzHHOUw-.js → SidebarFooterCustomize-C-njt8d8.js} +1 -1
  110. package/app/dist/assets/SidebarFooterCustomize-C-njt8d8.js.br +0 -0
  111. package/app/dist/assets/SidebarFooterCustomize-C-njt8d8.js.gz +0 -0
  112. package/app/dist/assets/{SidebarVisibilityCustomize-C1sJJmLO.js → SidebarVisibilityCustomize-q9kX3edG.js} +1 -1
  113. package/app/dist/assets/SidebarVisibilityCustomize-q9kX3edG.js.br +0 -0
  114. package/app/dist/assets/SidebarVisibilityCustomize-q9kX3edG.js.gz +0 -0
  115. package/app/dist/assets/{SourceCodeHost-BTHk84dk.js → SourceCodeHost-BSVZZsXz.js} +2 -2
  116. package/app/dist/assets/SourceCodeHost-BSVZZsXz.js.br +0 -0
  117. package/app/dist/assets/SourceCodeHost-BSVZZsXz.js.gz +0 -0
  118. package/app/dist/assets/{SplitWorkspaceRoute-B5Zx7J8C.js → SplitWorkspaceRoute-ChAornRc.js} +2 -2
  119. package/app/dist/assets/SplitWorkspaceRoute-ChAornRc.js.br +0 -0
  120. package/app/dist/assets/SplitWorkspaceRoute-ChAornRc.js.gz +0 -0
  121. package/app/dist/assets/{TerminalOutputBlock-D8Coy0K6.js → TerminalOutputBlock-DQQ_wFdt.js} +1 -1
  122. package/app/dist/assets/TerminalOutputBlock-DQQ_wFdt.js.br +0 -0
  123. package/app/dist/assets/TerminalOutputBlock-DQQ_wFdt.js.gz +0 -0
  124. package/app/dist/assets/{ThreadActionsMenu-BB7XL5Ux.js → ThreadActionsMenu-DbzG74B6.js} +1 -1
  125. package/app/dist/assets/ThreadActionsMenu-DbzG74B6.js.br +0 -0
  126. package/app/dist/assets/ThreadActionsMenu-DbzG74B6.js.gz +0 -0
  127. package/app/dist/assets/{ThreadDetailView-sCxYviMF.js → ThreadDetailView-BWYGGTcQ.js} +3 -3
  128. package/app/dist/assets/ThreadDetailView-BWYGGTcQ.js.br +0 -0
  129. package/app/dist/assets/ThreadDetailView-BWYGGTcQ.js.gz +0 -0
  130. package/app/dist/assets/{ThreadSearchPaletteMode-CNuSxSDT.js → ThreadSearchPaletteMode-rPLvkZPN.js} +1 -1
  131. package/app/dist/assets/ThreadSearchPaletteMode-rPLvkZPN.js.br +0 -0
  132. package/app/dist/assets/ThreadSearchPaletteMode-rPLvkZPN.js.gz +0 -0
  133. package/app/dist/assets/{ThreadSecondaryPanel--TXJtwro.js → ThreadSecondaryPanel-zRuy2IFh.js} +1 -1
  134. package/app/dist/assets/ThreadSecondaryPanel-zRuy2IFh.js.br +0 -0
  135. package/app/dist/assets/ThreadSecondaryPanel-zRuy2IFh.js.gz +0 -0
  136. package/app/dist/assets/{ThreadSecondaryPanelTabContent-I4ppwNUx.js → ThreadSecondaryPanelTabContent-BKOeGhrZ.js} +1 -1
  137. package/app/dist/assets/ThreadSecondaryPanelTabContent-BKOeGhrZ.js.br +0 -0
  138. package/app/dist/assets/ThreadSecondaryPanelTabContent-BKOeGhrZ.js.gz +0 -0
  139. package/app/dist/assets/{ThreadStatusGlyph-DodjCUyJ.js → ThreadStatusGlyph-04rqDWss.js} +1 -1
  140. package/app/dist/assets/ThreadStatusGlyph-04rqDWss.js.br +0 -0
  141. package/app/dist/assets/ThreadStatusGlyph-04rqDWss.js.gz +0 -0
  142. package/app/dist/assets/{ThreadTerminalPanel-BvegWjNb.js → ThreadTerminalPanel-CPO7T676.js} +1 -1
  143. package/app/dist/assets/ThreadTerminalPanel-CPO7T676.js.br +0 -0
  144. package/app/dist/assets/ThreadTerminalPanel-CPO7T676.js.gz +0 -0
  145. package/app/dist/assets/{ThreadTerminalView-eitR3jHV.js → ThreadTerminalView-DVoz-Pk9.js} +1 -1
  146. package/app/dist/assets/ThreadTerminalView-DVoz-Pk9.js.br +0 -0
  147. package/app/dist/assets/ThreadTerminalView-DVoz-Pk9.js.gz +0 -0
  148. package/app/dist/assets/{ThreadTimelineNavigationContext-CsCsqcye.js → ThreadTimelineNavigationContext-DH_gUsNq.js} +2 -2
  149. package/app/dist/assets/ThreadTimelineNavigationContext-DH_gUsNq.js.br +0 -0
  150. package/app/dist/assets/ThreadTimelineNavigationContext-DH_gUsNq.js.gz +0 -0
  151. package/app/dist/assets/{ThreadUnarchiveButton-3l74PF2Y.js → ThreadUnarchiveButton-DtYLOt5h.js} +1 -1
  152. package/app/dist/assets/{TimelineDetailScroll-Wqjtt19Q.js → TimelineDetailScroll-DGCsPfT5.js} +1 -1
  153. package/app/dist/assets/TimelineDetailScroll-DGCsPfT5.js.br +0 -0
  154. package/app/dist/assets/TimelineDetailScroll-DGCsPfT5.js.gz +0 -0
  155. package/app/dist/assets/{TimelineFileDiffBlock-DP66VABD.js → TimelineFileDiffBlock-CJJqE1Hp.js} +1 -1
  156. package/app/dist/assets/TimelineFileDiffBlock-CJJqE1Hp.js.br +0 -0
  157. package/app/dist/assets/TimelineFileDiffBlock-CJJqE1Hp.js.gz +0 -0
  158. package/app/dist/assets/{TimelineSelectionMenu-dDFIppSs.js → TimelineSelectionMenu-DUGdkfJf.js} +1 -1
  159. package/app/dist/assets/TimelineSelectionMenu-DUGdkfJf.js.br +0 -0
  160. package/app/dist/assets/TimelineSelectionMenu-DUGdkfJf.js.gz +0 -0
  161. package/app/dist/assets/{ToolsView-BbgSCMyJ.js → ToolsView-DbPjm_5d.js} +1 -1
  162. package/app/dist/assets/ToolsView-DbPjm_5d.js.br +0 -0
  163. package/app/dist/assets/ToolsView-DbPjm_5d.js.gz +0 -0
  164. package/app/dist/assets/{ToolsViewSplits-3v4dQMWH.js → ToolsViewSplits-CW7YNNC0.js} +2 -2
  165. package/app/dist/assets/ToolsViewSplits-CW7YNNC0.js.br +0 -0
  166. package/app/dist/assets/ToolsViewSplits-CW7YNNC0.js.gz +0 -0
  167. package/app/dist/assets/{WaveformVisualizer-CTuYQaxv.js → WaveformVisualizer-BvWy1QDO.js} +1 -1
  168. package/app/dist/assets/WaveformVisualizer-BvWy1QDO.js.br +0 -0
  169. package/app/dist/assets/WaveformVisualizer-BvWy1QDO.js.gz +0 -0
  170. package/app/dist/assets/{absolute-file-path-C52NE2Ra.js → absolute-file-path-n8gjdT4s.js} +1 -1
  171. package/app/dist/assets/{app-fixed-tab-navigation-Bazo4E3N.js → app-fixed-tab-navigation-BmS8pksE.js} +1 -1
  172. package/app/dist/assets/app-fixed-tab-navigation-BmS8pksE.js.br +0 -0
  173. package/app/dist/assets/app-fixed-tab-navigation-BmS8pksE.js.gz +0 -0
  174. package/app/dist/assets/{audio-input-device-preference-BInbKM6f.js → audio-input-device-preference-B_lng6h2.js} +1 -1
  175. package/app/dist/assets/audio-input-device-preference-B_lng6h2.js.br +0 -0
  176. package/app/dist/assets/audio-input-device-preference-B_lng6h2.js.gz +0 -0
  177. package/app/dist/assets/{bottom-anchored-scroll-body-BvJ4RPW1.js → bottom-anchored-scroll-body-8hYPbnt0.js} +1 -1
  178. package/app/dist/assets/bottom-anchored-scroll-body-8hYPbnt0.js.br +0 -0
  179. package/app/dist/assets/bottom-anchored-scroll-body-8hYPbnt0.js.gz +0 -0
  180. package/app/dist/assets/{browser-url-BZwRHtdQ.js → browser-url-CxrZuVov.js} +1 -1
  181. package/app/dist/assets/browser-url-CxrZuVov.js.br +0 -0
  182. package/app/dist/assets/browser-url-CxrZuVov.js.gz +0 -0
  183. package/app/dist/assets/{checkbox-DNIhYMDu.js → checkbox-C0nhruDs.js} +1 -1
  184. package/app/dist/assets/checkbox-C0nhruDs.js.br +0 -0
  185. package/app/dist/assets/checkbox-C0nhruDs.js.gz +0 -0
  186. package/app/dist/assets/{code-loading-skeletons-IO1KXbza.js → code-loading-skeletons-D66C2XWf.js} +1 -1
  187. package/app/dist/assets/code-loading-skeletons-D66C2XWf.js.br +4 -0
  188. package/app/dist/assets/code-loading-skeletons-D66C2XWf.js.gz +0 -0
  189. package/app/dist/assets/{code-rendering-B0ibReMv.js → code-rendering-D7GYk6Ga.js} +1 -1
  190. package/app/dist/assets/{code-theme-registration-DQQ5WAyA.js → code-theme-registration-la64LL3B.js} +1 -1
  191. package/app/dist/assets/{detail-card-DDIAUec5.js → detail-card-DRqh7bq6.js} +1 -1
  192. package/app/dist/assets/detail-card-DRqh7bq6.js.br +0 -0
  193. package/app/dist/assets/detail-card-DRqh7bq6.js.gz +0 -0
  194. package/app/dist/assets/{diff-stats-tally-CKiw6JxL.js → diff-stats-tally-DJu2oLr3.js} +1 -1
  195. package/app/dist/assets/diff-stats-tally-DJu2oLr3.js.br +0 -0
  196. package/app/dist/assets/diff-stats-tally-DJu2oLr3.js.gz +0 -0
  197. package/app/dist/assets/{environment-mutations-NoOecJ_m.js → environment-mutations-CmUX4rLj.js} +1 -1
  198. package/app/dist/assets/environment-mutations-CmUX4rLj.js.br +0 -0
  199. package/app/dist/assets/environment-mutations-CmUX4rLj.js.gz +0 -0
  200. package/app/dist/assets/{environment-workspace-display-DlH4-2Je.js → environment-workspace-display-Dattk545.js} +3 -3
  201. package/app/dist/assets/environment-workspace-display-Dattk545.js.br +0 -0
  202. package/app/dist/assets/environment-workspace-display-Dattk545.js.gz +0 -0
  203. package/app/dist/assets/{event-code-block-BglioqVe.js → event-code-block-BF4l-E6T.js} +1 -1
  204. package/app/dist/assets/event-code-block-BF4l-E6T.js.br +0 -0
  205. package/app/dist/assets/event-code-block-BF4l-E6T.js.gz +0 -0
  206. package/app/dist/assets/{expandable-text-roHqoKS6.js → expandable-text-BctZMPkQ.js} +1 -1
  207. package/app/dist/assets/expandable-text-BctZMPkQ.js.br +0 -0
  208. package/app/dist/assets/expandable-text-BctZMPkQ.js.gz +0 -0
  209. package/app/dist/assets/{file-opener-preference-LZpK4AFI.js → file-opener-preference-C3yH4feg.js} +1 -1
  210. package/app/dist/assets/{file-path-link-BqX0yHKv.js → file-path-link-BNr97QLi.js} +1 -1
  211. package/app/dist/assets/file-path-link-BNr97QLi.js.br +0 -0
  212. package/app/dist/assets/file-path-link-BNr97QLi.js.gz +0 -0
  213. package/app/dist/assets/{host-mutations-BBHMe5SP.js → host-mutations-C23wDSgk.js} +1 -1
  214. package/app/dist/assets/host-mutations-C23wDSgk.js.br +0 -0
  215. package/app/dist/assets/host-mutations-C23wDSgk.js.gz +0 -0
  216. package/app/dist/assets/{icon-extended-QRecSyLO.js → icon-extended-BzpFbkPC.js} +1 -1
  217. package/app/dist/assets/icon-extended-BzpFbkPC.js.br +0 -0
  218. package/app/dist/assets/icon-extended-BzpFbkPC.js.gz +0 -0
  219. package/app/dist/assets/{image-lightbox-DcW9NMfz.js → image-lightbox-ByvVk7z3.js} +1 -1
  220. package/app/dist/assets/image-lightbox-ByvVk7z3.js.br +0 -0
  221. package/app/dist/assets/image-lightbox-ByvVk7z3.js.gz +0 -0
  222. package/app/dist/assets/index-BY3ej0PM.css +2 -0
  223. package/app/dist/assets/index-BY3ej0PM.css.br +0 -0
  224. package/app/dist/assets/{index-D2OEUGpi.css.gz → index-BY3ej0PM.css.gz} +0 -0
  225. package/app/dist/assets/{index-DacqPN7W.js → index-B_0TBqOi.js} +8 -8
  226. package/app/dist/assets/index-B_0TBqOi.js.br +0 -0
  227. package/app/dist/assets/index-B_0TBqOi.js.gz +0 -0
  228. package/app/dist/assets/{inline-rename-editor-C620Mj5u.js → inline-rename-editor-BVU5Ij1d.js} +1 -1
  229. package/app/dist/assets/inline-rename-editor-BVU5Ij1d.js.br +0 -0
  230. package/app/dist/assets/inline-rename-editor-BVU5Ij1d.js.gz +0 -0
  231. package/app/dist/assets/{launcherRow-DKoO_khe.js → launcherRow-CP53NnO3.js} +1 -1
  232. package/app/dist/assets/launcherRow-CP53NnO3.js.br +0 -0
  233. package/app/dist/assets/launcherRow-CP53NnO3.js.gz +0 -0
  234. package/app/dist/assets/{localhost-link-rewrite-description-D0-Y3k5i.js → localhost-link-rewrite-description-B_X4XQAr.js} +1 -1
  235. package/app/dist/assets/localhost-link-rewrite-description-B_X4XQAr.js.br +0 -0
  236. package/app/dist/assets/localhost-link-rewrite-description-B_X4XQAr.js.gz +0 -0
  237. package/app/dist/assets/{machine-provider-queries-raWIen_P.js → machine-provider-queries-tnn_naNk.js} +1 -1
  238. package/app/dist/assets/machine-provider-queries-tnn_naNk.js.br +0 -0
  239. package/app/dist/assets/machine-provider-queries-tnn_naNk.js.gz +0 -0
  240. package/app/dist/assets/{machine-server-access-DQREaCCd.js → machine-server-access-Dcj-Ghdj.js} +1 -1
  241. package/app/dist/assets/{markdown-file-image-routing-DVUeRAfb.js → markdown-file-image-routing-De6cFFfS.js} +1 -1
  242. package/app/dist/assets/{markdown-html-DHd4UhWi.js → markdown-html-FeTbcXhk.js} +1 -1
  243. package/app/dist/assets/markdown-html-FeTbcXhk.js.br +0 -0
  244. package/app/dist/assets/markdown-html-FeTbcXhk.js.gz +0 -0
  245. package/app/dist/assets/{markdown-local-file-link-C7ZSh39X.js → markdown-local-file-link-BBqyLr6W.js} +1 -1
  246. package/app/dist/assets/markdown-local-file-link-BBqyLr6W.js.br +0 -0
  247. package/app/dist/assets/markdown-local-file-link-BBqyLr6W.js.gz +0 -0
  248. package/app/dist/assets/{markdown-preview-BDgTvGB7.js → markdown-preview-B_YVrhSM.js} +2 -2
  249. package/app/dist/assets/markdown-preview-B_YVrhSM.js.br +0 -0
  250. package/app/dist/assets/markdown-preview-B_YVrhSM.js.gz +0 -0
  251. package/app/dist/assets/{markdown-prompt-mentions-8OPHWmgV.js → markdown-prompt-mentions-BJbOQiT4.js} +1 -1
  252. package/app/dist/assets/markdown-prompt-mentions-BJbOQiT4.js.br +0 -0
  253. package/app/dist/assets/markdown-prompt-mentions-BJbOQiT4.js.gz +0 -0
  254. package/app/dist/assets/{model-load-error-message-CvmPmrbk.js → model-load-error-message-DJpF2wvJ.js} +1 -1
  255. package/app/dist/assets/model-load-error-message-DJpF2wvJ.js.br +0 -0
  256. package/app/dist/assets/model-load-error-message-DJpF2wvJ.js.gz +0 -0
  257. package/app/dist/assets/onboarding-telemetry-tI_FNLaF.js +1 -0
  258. package/app/dist/assets/{open-in-editor-button-DRMlCZor.js → open-in-editor-button-C8n2v5LY.js} +1 -1
  259. package/app/dist/assets/open-in-editor-button-C8n2v5LY.js.br +0 -0
  260. package/app/dist/assets/open-in-editor-button-C8n2v5LY.js.gz +0 -0
  261. package/app/dist/assets/{page-shell-BK7L-DYe.js → page-shell-D47DKxLl.js} +1 -1
  262. package/app/dist/assets/page-shell-D47DKxLl.js.br +0 -0
  263. package/app/dist/assets/page-shell-D47DKxLl.js.gz +0 -0
  264. package/app/dist/assets/{pierre-worker-pool-CuLcpsi8.js → pierre-worker-pool-BMZ7tHdT.js} +1 -1
  265. package/app/dist/assets/pierre-worker-pool-BMZ7tHdT.js.br +0 -0
  266. package/app/dist/assets/pierre-worker-pool-BMZ7tHdT.js.gz +0 -0
  267. package/app/dist/assets/{plugin-detail-navigation-CJlE114J.js → plugin-detail-navigation-DVixJc20.js} +1 -1
  268. package/app/dist/assets/plugin-detail-navigation-DVixJc20.js.br +0 -0
  269. package/app/dist/assets/plugin-detail-navigation-DVixJc20.js.gz +0 -0
  270. package/app/dist/assets/{plugin-frontend-47rHuwej.js → plugin-frontend-DsVoCsSZ.js} +3 -3
  271. package/app/dist/assets/plugin-frontend-DsVoCsSZ.js.br +0 -0
  272. package/app/dist/assets/plugin-frontend-DsVoCsSZ.js.gz +0 -0
  273. package/app/dist/assets/{plugin-ui-CfMeVtjo.js → plugin-ui-B71Vu791.js} +1 -1
  274. package/app/dist/assets/plugin-ui-B71Vu791.js.br +0 -0
  275. package/app/dist/assets/plugin-ui-B71Vu791.js.gz +0 -0
  276. package/app/dist/assets/{project-default-execution-options-query-BJDaiFOL.js → project-default-execution-options-query-CgU72E4D.js} +1 -1
  277. package/app/dist/assets/{queued-editor-typeahead-layout-BLdiUUDF.js → queued-editor-typeahead-layout-CH1VnOO2.js} +1 -1
  278. package/app/dist/assets/queued-editor-typeahead-layout-CH1VnOO2.js.br +0 -0
  279. package/app/dist/assets/queued-editor-typeahead-layout-CH1VnOO2.js.gz +0 -0
  280. package/app/dist/assets/{queued-messages-layout-BznV1BaT.js → queued-messages-layout-B9pem2nd.js} +1 -1
  281. package/app/dist/assets/queued-messages-layout-B9pem2nd.js.br +0 -0
  282. package/app/dist/assets/queued-messages-layout-B9pem2nd.js.gz +0 -0
  283. package/app/dist/assets/{resource-list-CVE0YyK0.js → resource-list-DoUEf5wT.js} +1 -1
  284. package/app/dist/assets/resource-list-DoUEf5wT.js.br +0 -0
  285. package/app/dist/assets/resource-list-DoUEf5wT.js.gz +0 -0
  286. package/app/dist/assets/root-compose-create-preference-CyryTAWU.js +1 -0
  287. package/app/dist/assets/{save-file-Bf9FfsXN.js → save-file-DYPJF3dp.js} +1 -1
  288. package/app/dist/assets/{settings-nav-aUt1tDMl.js → settings-nav-6vCwAb5Y.js} +1 -1
  289. package/app/dist/assets/settings-nav-6vCwAb5Y.js.br +0 -0
  290. package/app/dist/assets/settings-nav-6vCwAb5Y.js.gz +0 -0
  291. package/app/dist/assets/{settings-sections-DBK3hwuR.js → settings-sections-Bo9wVSLf.js} +1 -1
  292. package/app/dist/assets/settings-sections-Bo9wVSLf.js.br +0 -0
  293. package/app/dist/assets/settings-sections-Bo9wVSLf.js.gz +0 -0
  294. package/app/dist/assets/{shortcut-pill-DEGa4D8O.js → shortcut-pill-DATfy56m.js} +1 -1
  295. package/app/dist/assets/{sidebarTouchSensor-CYys9CY6.js → sidebarTouchSensor-F4M3FBtR.js} +1 -1
  296. package/app/dist/assets/sidebarTouchSensor-F4M3FBtR.js.br +0 -0
  297. package/app/dist/assets/sidebarTouchSensor-F4M3FBtR.js.gz +0 -0
  298. package/app/dist/assets/{switch-BtMcgx46.js → switch-BJj4GzNp.js} +1 -1
  299. package/app/dist/assets/switch-BJj4GzNp.js.br +0 -0
  300. package/app/dist/assets/switch-BJj4GzNp.js.gz +0 -0
  301. package/app/dist/assets/{textarea-D7Nd-tMA.js → textarea-DzpMCsz6.js} +1 -1
  302. package/app/dist/assets/{thread-event-parser-BiJ_VfWf.js → thread-event-parser-DnjHYyuU.js} +1 -1
  303. package/app/dist/assets/thread-event-parser-DnjHYyuU.js.br +0 -0
  304. package/app/dist/assets/thread-event-parser-DnjHYyuU.js.gz +0 -0
  305. package/app/dist/assets/{thread-panel-queries-Car_bb3A.js → thread-panel-queries-DaOpGIrW.js} +1 -1
  306. package/app/dist/assets/thread-panel-queries-DaOpGIrW.js.br +0 -0
  307. package/app/dist/assets/thread-panel-queries-DaOpGIrW.js.gz +0 -0
  308. package/app/dist/assets/{thread-runtime-mutations-Cwga71Aj.js → thread-runtime-mutations-C-G1v_Ek.js} +1 -1
  309. package/app/dist/assets/thread-runtime-mutations-C-G1v_Ek.js.br +0 -0
  310. package/app/dist/assets/thread-runtime-mutations-C-G1v_Ek.js.gz +0 -0
  311. package/app/dist/assets/{thread-terminal-queries-Bg-tvpkN.js → thread-terminal-queries-BivE-ujh.js} +1 -1
  312. package/app/dist/assets/thread-terminal-queries-BivE-ujh.js.br +0 -0
  313. package/app/dist/assets/thread-terminal-queries-BivE-ujh.js.gz +0 -0
  314. package/app/dist/assets/{threadRecentItems-UnDeouJZ.js → threadRecentItems-Cw7AMHgZ.js} +1 -1
  315. package/app/dist/assets/threadRecentItems-Cw7AMHgZ.js.br +0 -0
  316. package/app/dist/assets/threadRecentItems-Cw7AMHgZ.js.gz +0 -0
  317. package/app/dist/assets/{threadWorkspaceOpenPath-Dzhkj2zL.js → threadWorkspaceOpenPath-C8kt97KM.js} +1 -1
  318. package/app/dist/assets/threadWorkspaceOpenPath-C8kt97KM.js.br +0 -0
  319. package/app/dist/assets/threadWorkspaceOpenPath-C8kt97KM.js.gz +0 -0
  320. package/app/dist/assets/{title-bar-scroll-fade-xPf3yN9Y.js → title-bar-scroll-fade-DsM_duhX.js} +1 -1
  321. package/app/dist/assets/title-bar-scroll-fade-DsM_duhX.js.br +0 -0
  322. package/app/dist/assets/title-bar-scroll-fade-DsM_duhX.js.gz +0 -0
  323. package/app/dist/assets/{truncate-start-Czvfq52J.js → truncate-start-BCO9vOzz.js} +1 -1
  324. package/app/dist/assets/{use-hover-popover-Ckcn2jmk.js → use-hover-popover-k_4HMDoJ.js} +1 -1
  325. package/app/dist/assets/use-hover-popover-k_4HMDoJ.js.br +0 -0
  326. package/app/dist/assets/use-hover-popover-k_4HMDoJ.js.gz +0 -0
  327. package/app/dist/assets/{useElementWidth-C1ACj7NT.js → useElementWidth-BkksLaeN.js} +1 -1
  328. package/app/dist/assets/useElementWidth-BkksLaeN.js.br +0 -0
  329. package/app/dist/assets/useElementWidth-BkksLaeN.js.gz +0 -0
  330. package/app/dist/assets/{useLocalOpenTargets-BHW47emg.js → useLocalOpenTargets-G_SbnjQv.js} +1 -1
  331. package/app/dist/assets/useLocalOpenTargets-G_SbnjQv.js.br +0 -0
  332. package/app/dist/assets/useLocalOpenTargets-G_SbnjQv.js.gz +0 -0
  333. package/app/dist/assets/{usePanelResizeSnap-XNmZmBMC.js → usePanelResizeSnap-9MCj1cnd.js} +1 -1
  334. package/app/dist/assets/usePanelResizeSnap-9MCj1cnd.js.br +0 -0
  335. package/app/dist/assets/usePanelResizeSnap-9MCj1cnd.js.gz +0 -0
  336. package/app/dist/assets/{usePanelTerminals-D854-ktJ.js → usePanelTerminals-CJ0qd2is.js} +1 -1
  337. package/app/dist/assets/usePanelTerminals-CJ0qd2is.js.br +0 -0
  338. package/app/dist/assets/usePanelTerminals-CJ0qd2is.js.gz +0 -0
  339. package/app/dist/assets/{usePathSuggestions-C7sDK8nq.js → usePathSuggestions-B1rdOa_N.js} +1 -1
  340. package/app/dist/assets/usePathSuggestions-B1rdOa_N.js.br +0 -0
  341. package/app/dist/assets/usePathSuggestions-B1rdOa_N.js.gz +0 -0
  342. package/app/dist/assets/{useResolvedLiveFileTarget-Djned7dt.js → useResolvedLiveFileTarget-BaB_Ekxe.js} +1 -1
  343. package/app/dist/assets/useResolvedLiveFileTarget-BaB_Ekxe.js.br +0 -0
  344. package/app/dist/assets/useResolvedLiveFileTarget-BaB_Ekxe.js.gz +0 -0
  345. package/app/dist/assets/{useThreadTerminalController-DzFZD_xB.js → useThreadTerminalController-CKKEu8on.js} +1 -1
  346. package/app/dist/assets/useThreadTerminalController-CKKEu8on.js.br +0 -0
  347. package/app/dist/assets/useThreadTerminalController-CKKEu8on.js.gz +0 -0
  348. package/app/dist/assets/{workspace-change-summary-B0yf2owq.js → workspace-change-summary-Bz0SBrOW.js} +1 -1
  349. package/app/dist/assets/workspace-change-summary-Bz0SBrOW.js.br +0 -0
  350. package/app/dist/assets/workspace-change-summary-Bz0SBrOW.js.gz +0 -0
  351. package/app/dist/assets/{workspace-checkout-display-lFuCbZPV.js → workspace-checkout-display-Df5Suf8u.js} +4 -4
  352. package/app/dist/assets/workspace-checkout-display-Df5Suf8u.js.br +0 -0
  353. package/app/dist/assets/workspace-checkout-display-Df5Suf8u.js.gz +0 -0
  354. package/app/dist/index.html +17 -17
  355. package/app/dist/index.html.br +0 -0
  356. package/app/dist/index.html.gz +0 -0
  357. package/dist/bb-app.js +52 -47
  358. package/dist/bb-host-daemon.js +17 -14
  359. package/dist/bb-server.js +11 -11
  360. package/dist/bb.js +10 -10
  361. package/dist/index.d.ts +6 -6
  362. package/dist/index.js +7 -7
  363. package/host-daemon/dist/bb +3 -3
  364. package/host-daemon/dist/bb-chunks/{browser-YPHFBSVB.js → browser-PXOR4X6F.js} +4 -4
  365. package/host-daemon/dist/bb-chunks/{chunk-ZJPO4YH6.js → chunk-4BCVNZDB.js} +1 -1
  366. package/host-daemon/dist/bb-chunks/{chunk-X63QVO5F.js → chunk-ALV4J5VN.js} +1 -1
  367. package/host-daemon/dist/bb-chunks/{chunk-ZQP2RXIS.js → chunk-CQDJJOYR.js} +1 -1
  368. package/host-daemon/dist/bb-chunks/{chunk-4LTU3BZP.js → chunk-D2KWU4RX.js} +2 -2
  369. package/host-daemon/dist/bb-chunks/{chunk-BKBU62SF.js → chunk-D7LYWFZN.js} +1 -1
  370. package/host-daemon/dist/bb-chunks/{chunk-LH4TBBGQ.js → chunk-DCARCNP4.js} +1 -1
  371. package/host-daemon/dist/bb-chunks/chunk-G5CP5ERL.js +3 -0
  372. package/host-daemon/dist/bb-chunks/{chunk-A5EPBP3W.js → chunk-KB4JEVSK.js} +1 -1
  373. package/host-daemon/dist/bb-chunks/{chunk-5WC25JJR.js → chunk-RMWILRQL.js} +1 -1
  374. package/host-daemon/dist/bb-chunks/{chunk-IFPJMI5M.js → chunk-W6JBTZU3.js} +2 -2
  375. package/host-daemon/dist/bb-chunks/chunk-YK2XUHXL.js +2 -0
  376. package/host-daemon/dist/bb-chunks/{client-TZLPC3BF.js → client-RKKQXNZ7.js} +1 -1
  377. package/host-daemon/dist/bb-chunks/{commander-errors-32JXRGRD.js → commander-errors-EZ2NMF23.js} +1 -1
  378. package/host-daemon/dist/bb-chunks/{context-env-6CUQJXI7.js → context-env-EL62ZC4K.js} +1 -1
  379. package/host-daemon/dist/bb-chunks/{context-hints-EXGBAHBP.js → context-hints-YONLOIB2.js} +1 -1
  380. package/host-daemon/dist/bb-chunks/diagnostics-UXMDENSE.js +3 -0
  381. package/host-daemon/dist/bb-chunks/{environment-6E2VT767.js → environment-F6GZH2ZS.js} +1 -1
  382. package/host-daemon/dist/bb-chunks/{file-OM3MGTJZ.js → file-IBKZG2L2.js} +1 -1
  383. package/host-daemon/dist/bb-chunks/{guide-2EVMHWEL.js → guide-Q6F6N45N.js} +2 -2
  384. package/host-daemon/dist/bb-chunks/{machine-53J3POIB.js → machine-AZEA455T.js} +1 -1
  385. package/host-daemon/dist/bb-chunks/marketplace-2YDWW3NX.js +2 -0
  386. package/host-daemon/dist/bb-chunks/{plugin-BD2V5QKV.js → plugin-TJV2N7FU.js} +25 -25
  387. package/host-daemon/dist/bb-chunks/{plugin-cli-proxy-DVR2UZ2H.js → plugin-cli-proxy-72GJCUWQ.js} +1 -1
  388. package/host-daemon/dist/bb-chunks/{project-SFF34VFX.js → project-D5Q37M6H.js} +1 -1
  389. package/host-daemon/dist/bb-chunks/{prompt-history-QPAZVRGL.js → prompt-history-4TVCGE4C.js} +1 -1
  390. package/host-daemon/dist/bb-chunks/{provider-7EX5JKW6.js → provider-DW234NFS.js} +1 -1
  391. package/host-daemon/dist/bb-chunks/server-JPRTWHFW.js +8 -0
  392. package/host-daemon/dist/bb-chunks/settings-JKLVC2XX.js +4 -0
  393. package/host-daemon/dist/bb-chunks/{skill-Z4C767WB.js → skill-XILUFL7N.js} +2 -2
  394. package/host-daemon/dist/bb-chunks/{status-FBZ7QAO7.js → status-YMK2HOUU.js} +1 -1
  395. package/host-daemon/dist/bb-chunks/{terminal-7N5CXPEK.js → terminal-2JYO63CF.js} +1 -1
  396. package/host-daemon/dist/bb-chunks/{theme-OOZ4YUIP.js → theme-2GK2M6XU.js} +1 -1
  397. package/host-daemon/dist/bb-chunks/{thread-VKVOFAYM.js → thread-4CMRHEBV.js} +13 -13
  398. package/host-daemon/dist/bb-chunks/updates-5IICEDZH.js +2 -0
  399. package/host-daemon/dist/bb-chunks/voice-Z5BS2D4I.js +2 -0
  400. package/host-daemon/dist/daemon-bundle.mjs +1 -1
  401. package/package.json +1 -1
  402. package/server/dist/assets/install-machine-windows.mjs +8 -8
  403. package/server/dist/assets/install-machine.sh +26 -24
  404. package/server/dist/builtin-plugins/bb-account/package.json +3 -3
  405. package/server/dist/builtin-plugins/composer/package.json +2 -2
  406. package/server/dist/builtin-plugins/concurrency-limit/package.json +2 -2
  407. package/server/dist/builtin-plugins/connect/package.json +2 -2
  408. package/server/dist/builtin-plugins/connect-next/dist/server.js +1 -1
  409. package/server/dist/builtin-plugins/connect-next/package.json +3 -3
  410. package/server/dist/builtin-plugins/custom-instructions/package.json +2 -2
  411. package/server/dist/builtin-plugins/environment-modal-sandbox/package.json +2 -2
  412. package/server/dist/builtin-plugins/keep-awake/package.json +2 -2
  413. package/server/dist/builtin-plugins/marketplace.json +20 -20
  414. package/server/dist/builtin-plugins/mcp/package.json +2 -2
  415. package/server/dist/builtin-plugins/navigation/package.json +2 -2
  416. package/server/dist/builtin-plugins/orbit/dist/app.js +2 -2
  417. package/server/dist/builtin-plugins/orbit/dist/assets/orbit/revision +1 -1
  418. package/server/dist/builtin-plugins/orbit/dist/host.js +2 -1
  419. package/server/dist/builtin-plugins/orbit/dist/host.meta.json +1 -1
  420. package/server/dist/builtin-plugins/orbit/dist/server.js +200 -200
  421. package/server/dist/builtin-plugins/plugin-api-docs/dist/app.js +2 -2
  422. package/server/dist/builtin-plugins/plugin-api-docs/dist/server.js +2 -2
  423. package/server/dist/builtin-plugins/plugin-api-docs/package.json +2 -2
  424. package/server/dist/builtin-plugins/plugin-api-tester/package.json +2 -2
  425. package/server/dist/builtin-plugins/provider-acp/package.json +2 -2
  426. package/server/dist/builtin-plugins/provider-claude-code/package.json +2 -2
  427. package/server/dist/builtin-plugins/provider-codex/package.json +2 -2
  428. package/server/dist/builtin-plugins/provider-pi/package.json +2 -2
  429. package/server/dist/builtin-plugins/tasks/dist/app.css +1 -1
  430. package/server/dist/builtin-plugins/tasks/dist/app.js +54 -54
  431. package/server/dist/builtin-plugins/tasks/dist/host.js +69 -0
  432. package/server/dist/builtin-plugins/tasks/dist/host.meta.json +12 -0
  433. package/server/dist/builtin-plugins/tasks/dist/server.js +117 -93
  434. package/server/dist/builtin-plugins/tasks/package.json +2 -0
  435. package/server/dist/builtin-plugins/theme-preview/package.json +2 -2
  436. package/server/dist/builtin-plugins/thread-list/package.json +2 -2
  437. package/server/dist/index.js +7 -7
  438. package/server/dist/start-server.js +56 -56
  439. package/app/dist/assets/AddMachineDialog-UUUJINN_.js +0 -1
  440. package/app/dist/assets/AddMachineDialog-UUUJINN_.js.br +0 -0
  441. package/app/dist/assets/AddMachineDialog-UUUJINN_.js.gz +0 -0
  442. package/app/dist/assets/AppFileExternalNavigationDispatcher-BSAKfw3w.js.br +0 -0
  443. package/app/dist/assets/AppFileExternalNavigationDispatcher-BSAKfw3w.js.gz +0 -0
  444. package/app/dist/assets/BbDiff-DphdUFhF.js.br +0 -0
  445. package/app/dist/assets/BbDiff-DphdUFhF.js.gz +0 -0
  446. package/app/dist/assets/BbDiffSplit-DoZzLlkG.js.br +0 -0
  447. package/app/dist/assets/BbDiffSplit-DoZzLlkG.js.gz +0 -0
  448. package/app/dist/assets/BbSourceCode-BpW5o86b.js.br +0 -0
  449. package/app/dist/assets/BbSourceCode-BpW5o86b.js.gz +0 -0
  450. package/app/dist/assets/BrowserTabDeck-BAqPQSof.js.br +0 -0
  451. package/app/dist/assets/BrowserTabDeck-BAqPQSof.js.gz +0 -0
  452. package/app/dist/assets/CommandPaletteBody-DP0u2Xvo.js.br +0 -0
  453. package/app/dist/assets/CommandPaletteBody-DP0u2Xvo.js.gz +0 -0
  454. package/app/dist/assets/DiffHost-BYfjGqQR.js.br +0 -0
  455. package/app/dist/assets/DiffHost-BYfjGqQR.js.gz +0 -0
  456. package/app/dist/assets/ExperimentalFileLinkMenu-BAq3i6fs.js.br +0 -0
  457. package/app/dist/assets/ExperimentalFileLinkMenu-BAq3i6fs.js.gz +0 -0
  458. package/app/dist/assets/FilePreview-D3M2shlJ.js.br +0 -0
  459. package/app/dist/assets/FilePreview-D3M2shlJ.js.gz +0 -0
  460. package/app/dist/assets/GitDiffCardHeader-CRpu_qP7.js.br +0 -0
  461. package/app/dist/assets/GitDiffCardHeader-CRpu_qP7.js.gz +0 -0
  462. package/app/dist/assets/InlineMessageEditorFrame-BIfhlo1r.js.br +0 -0
  463. package/app/dist/assets/InlineMessageEditorFrame-BIfhlo1r.js.gz +0 -0
  464. package/app/dist/assets/MachineRenameDialog-KYbZxaU8.js.br +0 -0
  465. package/app/dist/assets/MachineRenameDialog-KYbZxaU8.js.gz +0 -0
  466. package/app/dist/assets/MachineSettingsView-B2gik2Fi.js.br +0 -0
  467. package/app/dist/assets/MachineSettingsView-B2gik2Fi.js.gz +0 -0
  468. package/app/dist/assets/MicrophonePreferences-D8yXHTVX.js.br +0 -0
  469. package/app/dist/assets/MicrophonePreferences-D8yXHTVX.js.gz +0 -0
  470. package/app/dist/assets/ModelReasoningMenu-64I3wWj8.js.br +0 -0
  471. package/app/dist/assets/ModelReasoningMenu-64I3wWj8.js.gz +0 -0
  472. package/app/dist/assets/NewTabPage-0D1zh52c.js.br +0 -0
  473. package/app/dist/assets/NewTabPage-0D1zh52c.js.gz +0 -0
  474. package/app/dist/assets/NewThreadComposer-CzhJPPA-.js.br +0 -0
  475. package/app/dist/assets/NewThreadComposer-CzhJPPA-.js.gz +0 -0
  476. package/app/dist/assets/OnboardingFlow-B7dIXW5b.js.br +0 -0
  477. package/app/dist/assets/OnboardingFlow-B7dIXW5b.js.gz +0 -0
  478. package/app/dist/assets/OptionPicker-CVNc9bQV.js.br +0 -0
  479. package/app/dist/assets/OptionPicker-CVNc9bQV.js.gz +0 -0
  480. package/app/dist/assets/PaletteShell-BmMN3w8R.js.br +0 -0
  481. package/app/dist/assets/PaletteShell-BmMN3w8R.js.gz +0 -0
  482. package/app/dist/assets/PaneMaximizeButton-CJ2jMV6A.js.br +0 -0
  483. package/app/dist/assets/PaneMaximizeButton-CJ2jMV6A.js.gz +0 -0
  484. package/app/dist/assets/PierreLineSelectionActions-CKcwMnwZ.js.br +0 -0
  485. package/app/dist/assets/PierreLineSelectionActions-CKcwMnwZ.js.gz +0 -0
  486. package/app/dist/assets/PluginPanelRightPanelHost-CM5fWHYY.js.br +0 -0
  487. package/app/dist/assets/PluginPanelRightPanelHost-CM5fWHYY.js.gz +0 -0
  488. package/app/dist/assets/PluginThreadChat-TLqw_QGC.js.br +0 -0
  489. package/app/dist/assets/PluginThreadChat-TLqw_QGC.js.gz +0 -0
  490. package/app/dist/assets/ProjectDetailSettingsView-BsUvPmd1.js.br +0 -0
  491. package/app/dist/assets/ProjectDetailSettingsView-BsUvPmd1.js.gz +0 -0
  492. package/app/dist/assets/ProjectMachineSetupDialog-BP7XMssh.js.br +0 -0
  493. package/app/dist/assets/ProjectMachineSetupDialog-BP7XMssh.js.gz +0 -0
  494. package/app/dist/assets/ProjectsSettingsSection-yZ2EdUuh.js.br +0 -0
  495. package/app/dist/assets/ProjectsSettingsSection-yZ2EdUuh.js.gz +0 -0
  496. package/app/dist/assets/QueuedMessagesList-BwnbJOmz.js.br +0 -0
  497. package/app/dist/assets/QueuedMessagesList-BwnbJOmz.js.gz +0 -0
  498. package/app/dist/assets/RemotePathBrowser-DUrwe6ZE.js.br +0 -0
  499. package/app/dist/assets/RemotePathBrowser-DUrwe6ZE.js.gz +0 -0
  500. package/app/dist/assets/RootComposeView-oJcCn_s1.js.br +0 -0
  501. package/app/dist/assets/RootComposeView-oJcCn_s1.js.gz +0 -0
  502. package/app/dist/assets/SecondaryPanelLayout-CL5xgoDW.js.br +0 -0
  503. package/app/dist/assets/SecondaryPanelLayout-CL5xgoDW.js.gz +0 -0
  504. package/app/dist/assets/ServerMoveOverlayView-BRspdcDG.js.br +0 -0
  505. package/app/dist/assets/ServerMoveOverlayView-BRspdcDG.js.gz +0 -0
  506. package/app/dist/assets/SettingsSidebar-ji-CSeC6.js.br +0 -0
  507. package/app/dist/assets/SettingsSidebar-ji-CSeC6.js.gz +0 -0
  508. package/app/dist/assets/SettingsView-CkBg3_lw.js.br +0 -0
  509. package/app/dist/assets/SettingsView-CkBg3_lw.js.gz +0 -0
  510. package/app/dist/assets/SidebarFooterCustomize-BzHHOUw-.js.br +0 -0
  511. package/app/dist/assets/SidebarFooterCustomize-BzHHOUw-.js.gz +0 -0
  512. package/app/dist/assets/SidebarVisibilityCustomize-C1sJJmLO.js.br +0 -0
  513. package/app/dist/assets/SidebarVisibilityCustomize-C1sJJmLO.js.gz +0 -0
  514. package/app/dist/assets/SourceCodeHost-BTHk84dk.js.br +0 -0
  515. package/app/dist/assets/SourceCodeHost-BTHk84dk.js.gz +0 -0
  516. package/app/dist/assets/SplitWorkspaceRoute-B5Zx7J8C.js.br +0 -0
  517. package/app/dist/assets/SplitWorkspaceRoute-B5Zx7J8C.js.gz +0 -0
  518. package/app/dist/assets/TerminalOutputBlock-D8Coy0K6.js.br +0 -0
  519. package/app/dist/assets/TerminalOutputBlock-D8Coy0K6.js.gz +0 -0
  520. package/app/dist/assets/ThreadActionsMenu-BB7XL5Ux.js.br +0 -0
  521. package/app/dist/assets/ThreadActionsMenu-BB7XL5Ux.js.gz +0 -0
  522. package/app/dist/assets/ThreadDetailView-sCxYviMF.js.br +0 -0
  523. package/app/dist/assets/ThreadDetailView-sCxYviMF.js.gz +0 -0
  524. package/app/dist/assets/ThreadSearchPaletteMode-CNuSxSDT.js.br +0 -0
  525. package/app/dist/assets/ThreadSearchPaletteMode-CNuSxSDT.js.gz +0 -0
  526. package/app/dist/assets/ThreadSecondaryPanel--TXJtwro.js.br +0 -0
  527. package/app/dist/assets/ThreadSecondaryPanel--TXJtwro.js.gz +0 -0
  528. package/app/dist/assets/ThreadSecondaryPanelTabContent-I4ppwNUx.js.br +0 -0
  529. package/app/dist/assets/ThreadSecondaryPanelTabContent-I4ppwNUx.js.gz +0 -0
  530. package/app/dist/assets/ThreadStatusGlyph-DodjCUyJ.js.br +0 -0
  531. package/app/dist/assets/ThreadStatusGlyph-DodjCUyJ.js.gz +0 -0
  532. package/app/dist/assets/ThreadTerminalPanel-BvegWjNb.js.br +0 -0
  533. package/app/dist/assets/ThreadTerminalPanel-BvegWjNb.js.gz +0 -0
  534. package/app/dist/assets/ThreadTerminalView-eitR3jHV.js.br +0 -0
  535. package/app/dist/assets/ThreadTerminalView-eitR3jHV.js.gz +0 -0
  536. package/app/dist/assets/ThreadTimelineNavigationContext-CsCsqcye.js.br +0 -0
  537. package/app/dist/assets/ThreadTimelineNavigationContext-CsCsqcye.js.gz +0 -0
  538. package/app/dist/assets/TimelineDetailScroll-Wqjtt19Q.js.br +0 -0
  539. package/app/dist/assets/TimelineDetailScroll-Wqjtt19Q.js.gz +0 -0
  540. package/app/dist/assets/TimelineFileDiffBlock-DP66VABD.js.br +0 -0
  541. package/app/dist/assets/TimelineFileDiffBlock-DP66VABD.js.gz +0 -0
  542. package/app/dist/assets/TimelineSelectionMenu-dDFIppSs.js.br +0 -0
  543. package/app/dist/assets/TimelineSelectionMenu-dDFIppSs.js.gz +0 -0
  544. package/app/dist/assets/ToolsView-BbgSCMyJ.js.br +0 -0
  545. package/app/dist/assets/ToolsView-BbgSCMyJ.js.gz +0 -0
  546. package/app/dist/assets/ToolsViewSplits-3v4dQMWH.js.br +0 -0
  547. package/app/dist/assets/ToolsViewSplits-3v4dQMWH.js.gz +0 -0
  548. package/app/dist/assets/WaveformVisualizer-CTuYQaxv.js.br +0 -0
  549. package/app/dist/assets/WaveformVisualizer-CTuYQaxv.js.gz +0 -0
  550. package/app/dist/assets/app-fixed-tab-navigation-Bazo4E3N.js.br +0 -0
  551. package/app/dist/assets/app-fixed-tab-navigation-Bazo4E3N.js.gz +0 -0
  552. package/app/dist/assets/audio-input-device-preference-BInbKM6f.js.br +0 -0
  553. package/app/dist/assets/audio-input-device-preference-BInbKM6f.js.gz +0 -0
  554. package/app/dist/assets/bottom-anchored-scroll-body-BvJ4RPW1.js.br +0 -0
  555. package/app/dist/assets/bottom-anchored-scroll-body-BvJ4RPW1.js.gz +0 -0
  556. package/app/dist/assets/browser-url-BZwRHtdQ.js.br +0 -0
  557. package/app/dist/assets/browser-url-BZwRHtdQ.js.gz +0 -0
  558. package/app/dist/assets/checkbox-DNIhYMDu.js.br +0 -0
  559. package/app/dist/assets/checkbox-DNIhYMDu.js.gz +0 -0
  560. package/app/dist/assets/code-loading-skeletons-IO1KXbza.js.br +0 -0
  561. package/app/dist/assets/code-loading-skeletons-IO1KXbza.js.gz +0 -0
  562. package/app/dist/assets/detail-card-DDIAUec5.js.br +0 -0
  563. package/app/dist/assets/detail-card-DDIAUec5.js.gz +0 -0
  564. package/app/dist/assets/diff-stats-tally-CKiw6JxL.js.br +0 -0
  565. package/app/dist/assets/diff-stats-tally-CKiw6JxL.js.gz +0 -0
  566. package/app/dist/assets/environment-mutations-NoOecJ_m.js.br +0 -0
  567. package/app/dist/assets/environment-mutations-NoOecJ_m.js.gz +0 -0
  568. package/app/dist/assets/environment-workspace-display-DlH4-2Je.js.br +0 -0
  569. package/app/dist/assets/environment-workspace-display-DlH4-2Je.js.gz +0 -0
  570. package/app/dist/assets/event-code-block-BglioqVe.js.br +0 -0
  571. package/app/dist/assets/event-code-block-BglioqVe.js.gz +0 -0
  572. package/app/dist/assets/expandable-text-roHqoKS6.js.br +0 -0
  573. package/app/dist/assets/expandable-text-roHqoKS6.js.gz +0 -0
  574. package/app/dist/assets/file-path-link-BqX0yHKv.js.br +0 -0
  575. package/app/dist/assets/file-path-link-BqX0yHKv.js.gz +0 -0
  576. package/app/dist/assets/host-mutations-BBHMe5SP.js.br +0 -0
  577. package/app/dist/assets/host-mutations-BBHMe5SP.js.gz +0 -0
  578. package/app/dist/assets/icon-extended-QRecSyLO.js.br +0 -0
  579. package/app/dist/assets/icon-extended-QRecSyLO.js.gz +0 -0
  580. package/app/dist/assets/image-lightbox-DcW9NMfz.js.br +0 -0
  581. package/app/dist/assets/image-lightbox-DcW9NMfz.js.gz +0 -0
  582. package/app/dist/assets/index-D2OEUGpi.css +0 -2
  583. package/app/dist/assets/index-D2OEUGpi.css.br +0 -0
  584. package/app/dist/assets/index-DacqPN7W.js.br +0 -0
  585. package/app/dist/assets/index-DacqPN7W.js.gz +0 -0
  586. package/app/dist/assets/inline-rename-editor-C620Mj5u.js.br +0 -0
  587. package/app/dist/assets/inline-rename-editor-C620Mj5u.js.gz +0 -0
  588. package/app/dist/assets/launcherRow-DKoO_khe.js.br +0 -0
  589. package/app/dist/assets/launcherRow-DKoO_khe.js.gz +0 -0
  590. package/app/dist/assets/localhost-link-rewrite-description-D0-Y3k5i.js.br +0 -0
  591. package/app/dist/assets/localhost-link-rewrite-description-D0-Y3k5i.js.gz +0 -0
  592. package/app/dist/assets/machine-provider-queries-raWIen_P.js.br +0 -0
  593. package/app/dist/assets/machine-provider-queries-raWIen_P.js.gz +0 -0
  594. package/app/dist/assets/markdown-html-DHd4UhWi.js.br +0 -0
  595. package/app/dist/assets/markdown-html-DHd4UhWi.js.gz +0 -0
  596. package/app/dist/assets/markdown-local-file-link-C7ZSh39X.js.br +0 -0
  597. package/app/dist/assets/markdown-local-file-link-C7ZSh39X.js.gz +0 -0
  598. package/app/dist/assets/markdown-preview-BDgTvGB7.js.br +0 -0
  599. package/app/dist/assets/markdown-preview-BDgTvGB7.js.gz +0 -0
  600. package/app/dist/assets/markdown-prompt-mentions-8OPHWmgV.js.br +0 -0
  601. package/app/dist/assets/markdown-prompt-mentions-8OPHWmgV.js.gz +0 -0
  602. package/app/dist/assets/model-load-error-message-CvmPmrbk.js.br +0 -0
  603. package/app/dist/assets/model-load-error-message-CvmPmrbk.js.gz +0 -0
  604. package/app/dist/assets/onboarding-telemetry-DmkuGs4P.js +0 -1
  605. package/app/dist/assets/open-in-editor-button-DRMlCZor.js.br +0 -0
  606. package/app/dist/assets/open-in-editor-button-DRMlCZor.js.gz +0 -0
  607. package/app/dist/assets/page-shell-BK7L-DYe.js.br +0 -0
  608. package/app/dist/assets/page-shell-BK7L-DYe.js.gz +0 -0
  609. package/app/dist/assets/pierre-worker-pool-CuLcpsi8.js.br +0 -0
  610. package/app/dist/assets/pierre-worker-pool-CuLcpsi8.js.gz +0 -0
  611. package/app/dist/assets/plugin-detail-navigation-CJlE114J.js.br +0 -0
  612. package/app/dist/assets/plugin-detail-navigation-CJlE114J.js.gz +0 -0
  613. package/app/dist/assets/plugin-frontend-47rHuwej.js.br +0 -0
  614. package/app/dist/assets/plugin-frontend-47rHuwej.js.gz +0 -0
  615. package/app/dist/assets/plugin-ui-CfMeVtjo.js.br +0 -0
  616. package/app/dist/assets/plugin-ui-CfMeVtjo.js.gz +0 -0
  617. package/app/dist/assets/queued-editor-typeahead-layout-BLdiUUDF.js.br +0 -0
  618. package/app/dist/assets/queued-editor-typeahead-layout-BLdiUUDF.js.gz +0 -0
  619. package/app/dist/assets/queued-messages-layout-BznV1BaT.js.br +0 -0
  620. package/app/dist/assets/queued-messages-layout-BznV1BaT.js.gz +0 -0
  621. package/app/dist/assets/resource-list-CVE0YyK0.js.br +0 -0
  622. package/app/dist/assets/resource-list-CVE0YyK0.js.gz +0 -0
  623. package/app/dist/assets/root-compose-create-preference-CHbwpPRF.js +0 -1
  624. package/app/dist/assets/settings-nav-aUt1tDMl.js.br +0 -0
  625. package/app/dist/assets/settings-nav-aUt1tDMl.js.gz +0 -0
  626. package/app/dist/assets/settings-sections-DBK3hwuR.js.br +0 -0
  627. package/app/dist/assets/settings-sections-DBK3hwuR.js.gz +0 -0
  628. package/app/dist/assets/sidebarTouchSensor-CYys9CY6.js.br +0 -0
  629. package/app/dist/assets/sidebarTouchSensor-CYys9CY6.js.gz +0 -0
  630. package/app/dist/assets/switch-BtMcgx46.js.br +0 -0
  631. package/app/dist/assets/switch-BtMcgx46.js.gz +0 -0
  632. package/app/dist/assets/thread-event-parser-BiJ_VfWf.js.br +0 -0
  633. package/app/dist/assets/thread-event-parser-BiJ_VfWf.js.gz +0 -0
  634. package/app/dist/assets/thread-panel-queries-Car_bb3A.js.br +0 -0
  635. package/app/dist/assets/thread-panel-queries-Car_bb3A.js.gz +0 -0
  636. package/app/dist/assets/thread-runtime-mutations-Cwga71Aj.js.br +0 -0
  637. package/app/dist/assets/thread-runtime-mutations-Cwga71Aj.js.gz +0 -0
  638. package/app/dist/assets/thread-terminal-queries-Bg-tvpkN.js.br +0 -0
  639. package/app/dist/assets/thread-terminal-queries-Bg-tvpkN.js.gz +0 -0
  640. package/app/dist/assets/threadRecentItems-UnDeouJZ.js.br +0 -0
  641. package/app/dist/assets/threadRecentItems-UnDeouJZ.js.gz +0 -0
  642. package/app/dist/assets/threadWorkspaceOpenPath-Dzhkj2zL.js.br +0 -0
  643. package/app/dist/assets/threadWorkspaceOpenPath-Dzhkj2zL.js.gz +0 -0
  644. package/app/dist/assets/title-bar-scroll-fade-xPf3yN9Y.js.br +0 -0
  645. package/app/dist/assets/title-bar-scroll-fade-xPf3yN9Y.js.gz +0 -0
  646. package/app/dist/assets/use-hover-popover-Ckcn2jmk.js.br +0 -0
  647. package/app/dist/assets/use-hover-popover-Ckcn2jmk.js.gz +0 -0
  648. package/app/dist/assets/useElementWidth-C1ACj7NT.js.br +0 -0
  649. package/app/dist/assets/useElementWidth-C1ACj7NT.js.gz +0 -0
  650. package/app/dist/assets/useLocalOpenTargets-BHW47emg.js.br +0 -0
  651. package/app/dist/assets/useLocalOpenTargets-BHW47emg.js.gz +0 -0
  652. package/app/dist/assets/usePanelResizeSnap-XNmZmBMC.js.br +0 -0
  653. package/app/dist/assets/usePanelResizeSnap-XNmZmBMC.js.gz +0 -0
  654. package/app/dist/assets/usePanelTerminals-D854-ktJ.js.br +0 -0
  655. package/app/dist/assets/usePanelTerminals-D854-ktJ.js.gz +0 -0
  656. package/app/dist/assets/usePathSuggestions-C7sDK8nq.js.br +0 -0
  657. package/app/dist/assets/usePathSuggestions-C7sDK8nq.js.gz +0 -0
  658. package/app/dist/assets/useResolvedLiveFileTarget-Djned7dt.js.br +0 -0
  659. package/app/dist/assets/useResolvedLiveFileTarget-Djned7dt.js.gz +0 -0
  660. package/app/dist/assets/useThreadTerminalController-DzFZD_xB.js.br +0 -0
  661. package/app/dist/assets/useThreadTerminalController-DzFZD_xB.js.gz +0 -0
  662. package/app/dist/assets/workspace-change-summary-B0yf2owq.js.br +0 -0
  663. package/app/dist/assets/workspace-change-summary-B0yf2owq.js.gz +0 -0
  664. package/app/dist/assets/workspace-checkout-display-lFuCbZPV.js.br +0 -0
  665. package/app/dist/assets/workspace-checkout-display-lFuCbZPV.js.gz +0 -0
  666. package/host-daemon/dist/bb-chunks/chunk-ER46DNTR.js +0 -2
  667. package/host-daemon/dist/bb-chunks/chunk-H7ZMW3KO.js +0 -3
  668. package/host-daemon/dist/bb-chunks/diagnostics-U6HI5G5V.js +0 -3
  669. package/host-daemon/dist/bb-chunks/marketplace-CYKOR6QO.js +0 -2
  670. package/host-daemon/dist/bb-chunks/server-6XKNMUGR.js +0 -8
  671. package/host-daemon/dist/bb-chunks/settings-Z3W7VN6M.js +0 -4
  672. package/host-daemon/dist/bb-chunks/updates-FF4UHDLN.js +0 -2
  673. package/host-daemon/dist/bb-chunks/voice-J2G4CECQ.js +0 -2
package/README.md CHANGED
@@ -2,27 +2,27 @@
2
2
  <picture>
3
3
  <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/e40bda56-54a4-47f8-a417-6bbadf2e5b40">
4
4
  <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/4d9d02fb-c179-449b-a38a-041955143232">
5
- <img alt="bb" src="https://github.com/user-attachments/assets/4d9d02fb-c179-449b-a38a-041955143232" width="128">
5
+ <img alt="Moonlet" src="https://github.com/user-attachments/assets/4d9d02fb-c179-449b-a38a-041955143232" width="128">
6
6
  </picture>
7
7
  </p>
8
8
 
9
- # bb
9
+ # Moonlet
10
10
 
11
11
  [![npm version](https://img.shields.io/npm/v/bb-app.svg)](https://www.npmjs.com/package/bb-app)
12
12
 
13
- bb is an agentic IDE that builds itself. It can control, customize, and automate
13
+ Moonlet is an agentic IDE that builds itself. It can control, customize, and automate
14
14
  itself, laying the groundwork for your own software factory.
15
15
 
16
16
  This package provides the `npx -y -p @halcyonlabs/app bb-app` launcher, bundled `bb` CLI entry, and
17
17
  Node SDK export. Every surface — the web app, CLI, and HTTP API — is a
18
- first-class way to drive bb. Work runs in threads you can follow live, steer at
18
+ first-class way to drive Moonlet. Work runs in threads you can follow live, steer at
19
19
  any point, or hand off to another agent.
20
20
 
21
- > Note: bb is in active development. Workflows and surfaces are still evolving.
21
+ > Note: Moonlet is in active development. Workflows and surfaces are still evolving.
22
22
 
23
23
  ## Quick Start
24
24
 
25
- bb runs from npm and orchestrates coding agents you already have installed.
25
+ Moonlet runs from npm and orchestrates coding agents you already have installed.
26
26
 
27
27
  ### Prerequisites
28
28
 
@@ -30,7 +30,7 @@ bb runs from npm and orchestrates coding agents you already have installed.
30
30
  - Git.
31
31
  - At least one supported agent provider: [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Codex](https://developers.openai.com/codex/cli), Cursor via ACP, [Pi](https://github.com/earendil-works/pi/tree/main/packages/coding-agent), or another ACP-compatible agent.
32
32
 
33
- If you already use one of these providers, bb will pick up your existing
33
+ If you already use one of these providers, Moonlet will pick up your existing
34
34
  credentials. If you use multiple providers, you can mix and match per task.
35
35
 
36
36
  ### Supported host environments
@@ -69,9 +69,9 @@ npx -y -p @halcyonlabs/app@nightly bb-app
69
69
  Nightly versions are built from `main` and may be unstable. The `nightly`
70
70
  dist-tag moves independently of the stable `latest` tag.
71
71
 
72
- npm 12 and later block dependency install scripts by default. bb needs those
72
+ npm 12 and later block dependency install scripts by default. Moonlet needs those
73
73
  scripts to build its native add-ons (`better-sqlite3`, `node-pty`,
74
- `@parcel/watcher`). Without them bb stops at startup with
74
+ `@parcel/watcher`). Without them Moonlet stops at startup with
75
75
  `Could not locate the bindings file`. If your npm version is 12 or later, allow
76
76
  the scripts for the install:
77
77
 
@@ -86,12 +86,12 @@ npm config set allow-scripts=better-sqlite3,node-pty,@parcel/watcher --location=
86
86
  ```
87
87
 
88
88
  `npx -y -p @halcyonlabs/app@latest bb-app` downloads the published `@halcyonlabs/app` package, starts the server and
89
- local host daemon, and serves the web app. It stores bb-managed state under
89
+ local host daemon, and serves the web app. It stores Moonlet-managed state under
90
90
  `~/.bb/` by default. If either managed child process exits unexpectedly, the
91
91
  launcher restarts that child without stopping the other one. Press `Ctrl+C` in
92
92
  the terminal to stop both processes and exit with status `0`.
93
93
 
94
- If another live bb owns the runtime record for the same data directory and a
94
+ If another live Moonlet owns the runtime record for the same data directory and a
95
95
  healthy server answers on the configured local address, startup exits with
96
96
  status `1` without starting either child process. The existing instance keeps
97
97
  running. A runtime record without a healthy server does not prevent startup.
@@ -116,7 +116,7 @@ takes precedence. In-place progress updates require a stdout TTY.
116
116
 
117
117
  The same output capture applies to `bb-server` and `bb-host-daemon`.
118
118
 
119
- To stop a bb that runs in another terminal or in the background:
119
+ To stop a Moonlet install that runs in another terminal or in the background:
120
120
 
121
121
  ```bash
122
122
  npx -y -p @halcyonlabs/app bb-app stop
@@ -124,17 +124,17 @@ npx -y -p @halcyonlabs/app bb-app stop
124
124
 
125
125
  `stop` reads `bb-app-runtime.json` from the data directory, confirms that the
126
126
  recorded process really is that launcher, then stops it. Pass `--data-dir` when
127
- the bb you want to stop does not use the default `~/.bb/`.
127
+ the Moonlet install you want to stop does not use the default `~/.bb/`.
128
128
 
129
129
  ### The `bb` command
130
130
 
131
- To control bb from outside bb, open **Settings → General → Command line** and
132
- choose **Install** next to **bb CLI**. Threads in bb already have `bb`; this
133
- is for your own terminals, scripts, and agents running outside bb, such as
134
- Claude Code or Codex. bb links a launcher from `~/.bb/bin/bb` into a folder on
131
+ To control Moonlet from outside Moonlet, open **Settings → General → Command line** and
132
+ choose **Install** next to **Moonlet CLI**. Threads in Moonlet already have `bb`; this
133
+ is for your own terminals, scripts, and agents running outside Moonlet, such as
134
+ Claude Code or Codex. Moonlet links a launcher from `~/.bb/bin/bb` into a folder on
135
135
  your PATH (`~/.local/bin` on Linux; `/opt/homebrew/bin`, `/usr/local/bin`, or
136
136
  `~/.local/bin` on macOS). On Windows it adds `~/.bb/bin` to your user PATH;
137
- open a new terminal afterwards. **Remove** takes it off again. bb leaves any
137
+ open a new terminal afterwards. **Remove** takes it off again. Moonlet leaves any
138
138
  other `bb` you already have in place.
139
139
 
140
140
  From a terminal, before `bb` is on your PATH:
@@ -145,20 +145,20 @@ npx -y -p @halcyonlabs/app bb settings cli-command install
145
145
 
146
146
  ### Updating from the app
147
147
 
148
- When bb has an update, Settings → Updates shows an **Update** button (or run
149
- `bb updates app apply`). bb downloads the new version into
150
- `~/.bb/app-versions/`, restarts into it, and reconnects the page. bb does not
148
+ When Moonlet has an update, Settings → Updates shows an **Update** button (or run
149
+ `bb updates app apply`). Moonlet downloads the new version into
150
+ `~/.bb/app-versions/`, restarts into it, and reconnects the page. Moonlet does not
151
151
  roll back: if the new version fails to start, run a newer release
152
152
  (`npx -y -p @halcyonlabs/app@latest bb-app`) or fix the cause. Later `npx -y -p @halcyonlabs/app bb-app` runs use the newer
153
153
  installed version; pass `--bundled` to run the copy npx downloaded instead.
154
- Start bb with `--no-in-app-updates` to turn in-app updates off.
154
+ Start Moonlet with `--no-in-app-updates` to turn in-app updates off.
155
155
 
156
156
  After the server moves to another machine, the old data directory keeps
157
157
  `server-moved.json`. `bb-app` there starts no server: it runs this computer's
158
158
  host daemon against the new server address in `config.json`, restarting it when
159
159
  it exits, and answers the old server port. API requests get `410 server_moved`
160
160
  with the new address; browser pages redirect to it for a direct address or link
161
- to it for bb connect. While a move back to this computer is in progress
161
+ to it for Moonlet Connect. While a move back to this computer is in progress
162
162
  (`server-import.json`), it frees that port for the incoming server. When
163
163
  `server-moved.json` goes away, after that move completes or `bb server unlock`,
164
164
  it starts the server and co-located daemon again. `bb-server` exits with status
@@ -169,20 +169,20 @@ you want that thread to use.
169
169
 
170
170
  ## CLI
171
171
 
172
- The package also exposes the `bb` CLI for an already-running bb server:
172
+ The package also exposes the `bb` CLI for an already-running Moonlet server:
173
173
 
174
174
  ```bash
175
175
  npx -y -p @halcyonlabs/app bb --help
176
176
  ```
177
177
 
178
- The CLI uses the same `BB_SERVER_URL` and bb config resolution as the SDK. When
178
+ The CLI uses the same `BB_SERVER_URL` and Moonlet config resolution as the SDK. When
179
179
  unset, it targets the default local packaged server at
180
180
  `http://127.0.0.1:38886`.
181
181
 
182
182
  ## Scripting with the SDK
183
183
 
184
184
  The package also exposes a Node SDK for scripts that drive an already-running
185
- bb server:
185
+ Moonlet server:
186
186
 
187
187
  ```ts
188
188
  import { BBSdk } from "bb-app";
@@ -197,38 +197,38 @@ await bb.threads.wait({ threadId: String(thread.id), status: "idle" });
197
197
  console.log(await bb.threads.output({ threadId: String(thread.id) }));
198
198
  ```
199
199
 
200
- `new BBSdk()` uses the same `BB_SERVER_URL` and bb config resolution as the
200
+ `new BBSdk()` uses the same `BB_SERVER_URL` and Moonlet config resolution as the
201
201
  CLI. Pass `new BBSdk({ baseUrl: "http://host:38886" })` for remote or test
202
- targets (see the remote-access note below). Scripts launched by bb already receive `BB_SERVER_URL` and
202
+ targets (see the remote-access note below). Scripts launched by Moonlet already receive `BB_SERVER_URL` and
203
203
  `BB_THREAD_ID` in their environment.
204
204
 
205
205
  ## Provider Credentials
206
206
 
207
- bb uses whichever providers you have configured. Common providers:
207
+ Moonlet uses whichever providers you have configured. Common providers:
208
208
 
209
209
  | Provider | Setup |
210
210
  | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
211
211
  | `codex` | Install the [Codex CLI](https://developers.openai.com/codex/cli). Then run `codex login` or configure credentials per the Codex docs. |
212
212
  | `claude-code` | Install [Claude Code](https://docs.anthropic.com/en/docs/claude-code) and authenticate per its docs. |
213
213
  | `cursor` | Install [Cursor's agent CLI](https://cursor.com/cli) (`cursor-agent`) and authenticate per Cursor's docs. |
214
- | `pi` | Install [Pi](https://github.com/earendil-works/pi/tree/main/packages/coding-agent) with `npm install -g @earendil-works/pi-coding-agent` (0.84.0 or newer) and authenticate per its docs; BB can run the install from Settings. |
214
+ | `pi` | Install [Pi](https://github.com/earendil-works/pi/tree/main/packages/coding-agent) with `npm install -g @earendil-works/pi-coding-agent` (0.84.0 or newer) and authenticate per its docs; Moonlet can run the install from Settings. |
215
215
  | `opencode` | Install [opencode](https://opencode.ai/) and authenticate per its docs. |
216
216
  | `grok` | Install [Grok Build](https://docs.x.ai/build/overview) and authenticate with `grok login` or `XAI_API_KEY`. |
217
217
  | `hermes-agent` | Install [Hermes Agent](https://hermes-agent.nousresearch.com/docs/getting-started/installation), configure credentials with `hermes model`, then verify ACP with `hermes acp --check`. |
218
218
 
219
- BB indexes the documented native skill roots for Codex, Claude Code, Pi,
219
+ Moonlet indexes the documented native skill roots for Codex, Claude Code, Pi,
220
220
  Cursor, OpenCode, omp, Grok Build, and Hermes Agent. It includes user roots,
221
221
  project roots, and compatibility roots such as `.agents/skills`. These skills
222
222
  appear in the selected provider's `/` command menu. The Skills page and
223
- `bb skill list` show native skills for Claude Code, Codex, and Cursor. BB also
223
+ `bb skill list` show native skills for Claude Code, Codex, and Cursor. Moonlet also
224
224
  reads configured Pi, omp, Grok, and Hermes skill directories, plus enabled
225
225
  provider plugin skills.
226
226
 
227
- BB reads Pi's global `~/.pi/agent` files and each workspace's `.pi` files.
227
+ Moonlet reads Pi's global `~/.pi/agent` files and each workspace's `.pi` files.
228
228
  This includes settings, credentials, models, packages, extensions, skills,
229
229
  prompts, themes, and context files. Pi extensions can add models and tools.
230
- BB loads project resources only after Pi's saved or global trust policy approves
231
- the workspace. An unresolved `ask` decision stays untrusted because BB has no Pi
230
+ Moonlet loads project resources only after Pi's saved or global trust policy approves
231
+ the workspace. An unresolved `ask` decision stays untrusted because Moonlet has no Pi
232
232
  trust prompt.
233
233
  You can still use the Pi CLI and `/login` to create this configuration.
234
234
 
@@ -240,8 +240,8 @@ Custom ACP agents are configured through the ACP providers plugin's
240
240
  `user` paths resolve from the target host home directory. Its `project` paths
241
241
  resolve from the selected workspace.
242
242
  Top-level `sharedSkillRoots` uses the same `user` and `project` path format.
243
- BB lists these sources as read-only skills. BB injects them into Codex, Claude,
244
- Pi, and ACP threads. This permits one physical skill collection for BB and a
243
+ Moonlet lists these sources as read-only skills. Moonlet injects them into Codex, Claude,
244
+ Pi, and ACP threads. This permits one physical skill collection for Moonlet and a
245
245
  standalone provider CLI.
246
246
 
247
247
  ## Configuration
@@ -255,13 +255,13 @@ npx -y -p @halcyonlabs/app bb-app config list
255
255
  npx -y -p @halcyonlabs/app bb-app config refresh
256
256
  ```
257
257
 
258
- For remote access, use bb connect or publish the default loopback listener with
258
+ For remote access, use Moonlet Connect or publish the default loopback listener with
259
259
  Tailscale Serve. Direct tailnet or LAN access to port `38886` requires the
260
260
  explicit, security-sensitive `--server-bind-host 0.0.0.0` compatibility option;
261
261
  see the multiple-devices guide.
262
262
 
263
263
  Use `bb-app client ssh-target` to configure local editor opens for remote
264
- bb servers under `~/.bb/client.json`. The target is the value that works after
264
+ Moonlet servers under `~/.bb/client.json`. The target is the value that works after
265
265
  `ssh`, such as `devbox` or `user@devbox`:
266
266
 
267
267
  ```bash
@@ -277,8 +277,8 @@ npx -y -p @halcyonlabs/app bb-app env list
277
277
  npx -y -p @halcyonlabs/app bb-app env unset OPENAI_API_KEY
278
278
  ```
279
279
 
280
- `env list` redacts all values. Config and env writes ask a running local bb
281
- server to reload; if bb is stopped, the values apply on the next start.
280
+ `env list` redacts all values. Config and env writes ask a running local Moonlet
281
+ server to reload; if Moonlet is stopped, the values apply on the next start.
282
282
 
283
283
  For all config keys, precedence, startup flags, and source-development `.env`
284
284
  behavior, see the
@@ -289,5 +289,5 @@ behavior, see the
289
289
  - [Main README](https://github.com/get-bb/bb#readme)
290
290
  - [Platform support](https://github.com/get-bb/bb/blob/main/docs/platform-support.md)
291
291
  - [Configuration](https://github.com/get-bb/bb/blob/main/docs/configuration.md)
292
- - [Using bb on multiple devices](https://github.com/get-bb/bb/blob/main/docs/multiple-devices.md)
292
+ - [Using Moonlet on multiple devices](https://github.com/get-bb/bb/blob/main/docs/multiple-devices.md)
293
293
  - [Worktree setup and teardown scripts](https://github.com/get-bb/bb/blob/main/docs/worktrees.md)
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ar as t,Kr as n,Or as r,mi as i,ni as a}from"./boot-vendor-BBLG7GwQ.js";import{Bo as o,Ea as s,Kp as c,Po as l,Qm as u,Ui as d,Vi as f,do as p,em as m,fo as h,go as g,ho as _,m as v,md as y,nh as b,po as x,qi as S,vi as C}from"./index-B_0TBqOi.js";import{n as w}from"./index.browser-CVgpGTCr.js";import{t as T}from"./OptionPicker-DhStUln1.js";import{V as E}from"./resource-list-DoUEf5wT.js";import{n as D,r as O}from"./machine-server-access-Dcj-Ghdj.js";var k=r(),A=e(i(),1),j=e(a(),1);function M(e){try{return new URL(e)}catch{return null}}function N(){let e=l(),t=v(),n=e.data?.generalSettings,r=e.data?.serverAccess,i=n?.machineServerUrl??``,[a,s]=(0,A.useState)(null),[c,u]=(0,A.useState)(null),d=!n,f=r?.defaultProviderId??`direct`,[p,m]=(0,A.useState)(null);(0,A.useEffect)(()=>{p===f&&m(null)},[f,p]);let h=p??f;return{access:r,disabled:d,draft:a,error:c,effective:r?.providers.find(e=>e.id===h),configurationMessage:D(r,h),saving:t.isPending,selected:h,value:i,editDraft:e=>{s(e),u(null)},selectProvider:e=>{!n||e===h||(m(e),t.mutate({defaultMachineAccess:e},{onError:()=>m(null)}))},commitUrl:async()=>{if(!n||a===null)return;let e=a.trim();if(e){let t=M(e);if(t===null||![`http:`,`https:`].includes(t.protocol)||t.username||t.password){u(`Enter a valid HTTP or HTTPS URL without credentials`);return}if(C(e)){u(`Other machines cannot reach localhost. Use a domain or shared-network address.`);return}}try{await t.mutateAsync({machineServerUrl:e||null})}catch(e){u(o({error:e,fallbackMessage:`Couldn't save the address.`}));return}s(null),u(null)}}}function P(e){let t=(0,k.c)(7),{children:n,title:r}=e,i=r===void 0?`Machine access`:r,a=N(),o;t[0]!==n||t[1]!==a?(o=n?.(a.selected===`direct`?null:a.effective?.pluginId??null),t[0]=n,t[1]=a,t[2]=o):o=t[2];let s;return t[3]!==a||t[4]!==o||t[5]!==i?(s=(0,j.jsx)(F,{machineAccess:a,title:i,children:o}),t[3]=a,t[4]=o,t[5]=i,t[6]=s):s=t[6],s}function F(e){let t=(0,k.c)(12),{machineAccess:n,children:r,title:i}=e,a=i===void 0?`Machine access`:i,o;t[0]===a?o=t[1]:(o=(0,j.jsx)(`h2`,{className:`text-sm font-semibold`,children:a}),t[0]=a,t[1]=o);let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,j.jsx)(`p`,{className:`mt-1 text-xs text-subtle-foreground`,children:`Choose how your devices reach this Moonlet server.`}),t[2]=s):s=t[2];let c;t[3]===o?c=t[4]:(c=(0,j.jsxs)(`div`,{children:[o,s]}),t[3]=o,t[4]=c);let l;t[5]!==r||t[6]!==n?(l=(0,j.jsx)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-card`,children:(0,j.jsx)(`div`,{className:`px-4 py-3`,children:n.access===void 0?(0,j.jsxs)(`p`,{role:`status`,className:`flex h-8 items-center gap-2 text-xs text-subtle-foreground`,children:[(0,j.jsx)(u,{name:`Spinner`,className:`size-3.5 animate-spin`}),`Loading connection settings…`]}):(0,j.jsxs)(j.Fragment,{children:[n.selected!==`direct`&&n.effective?(0,j.jsx)(V,{machineAccess:n,methodPicker:(0,j.jsx)(R,{machineAccess:n,align:`start`})}):(0,j.jsxs)(`div`,{className:`space-y-3`,children:[(0,j.jsx)(`div`,{className:`flex`,children:(0,j.jsx)(R,{machineAccess:n,align:`start`})}),(0,j.jsx)(B,{machineAccess:n})]}),r]})})}),t[5]=r,t[6]=n,t[7]=l):l=t[7];let d;return t[8]!==c||t[9]!==l||t[10]!==a?(d=(0,j.jsxs)(`section`,{"aria-label":a,className:`space-y-3`,children:[c,l]}),t[8]=c,t[9]=l,t[10]=a,t[11]=d):d=t[11],d}function I(e){let t=(0,k.c)(3),{onNavigate:n}=e,r=N(),i;return t[0]!==r||t[1]!==n?(i=(0,j.jsx)(L,{machineAccess:r,onNavigate:n}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i}function L(e){let t=(0,k.c)(9),{machineAccess:n,onNavigate:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,j.jsx)(`span`,{className:`text-sm font-normal text-foreground`,children:`Connection method`}),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[i,(0,j.jsx)(R,{machineAccess:n})]}),t[1]=n,t[2]=a);let o;t[3]!==n||t[4]!==r?(o=(0,j.jsx)(B,{machineAccess:n,onNavigate:r}),t[3]=n,t[4]=r,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,j.jsxs)(`div`,{className:`space-y-3`,children:[a,o]}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function R(e){let t=(0,k.c)(15),{machineAccess:n,align:r}=e,i=r===void 0?`end`:r,{access:a,disabled:o,selected:s}=n,c;t[0]!==a||t[1]!==n.effective?(c=a&&!n.effective?{label:`Unavailable method`}:void 0,t[0]=a,t[1]=n.effective,t[2]=c):c=t[2];let l=i===`start`?`-ml-1`:void 0,u;t[3]===a?.providers?u=t[4]:(u=a?.providers??[],t[3]=a?.providers,t[4]=u);let d;t[5]===u?d=t[6]:(d=u.map(z),t[5]=u,t[6]=d);let f;return t[7]!==i||t[8]!==o||t[9]!==n.selectProvider||t[10]!==s||t[11]!==c||t[12]!==l||t[13]!==d?(f=(0,j.jsx)(T,{modal:!1,label:`Connection method`,value:s,displayOverride:c,disabled:o,showChevronWhenDisabled:!0,align:i,className:l,options:d,onChange:n.selectProvider}),t[7]=i,t[8]=o,t[9]=n.selectProvider,t[10]=s,t[11]=c,t[12]=l,t[13]=d,t[14]=f):f=t[14],f}function z(e){return{value:e.id,label:e.displayName,description:e.description}}function B(e){let t=(0,k.c)(21),{machineAccess:n,onNavigate:r}=e,{access:i,disabled:a,draft:o,effective:s,error:c,saving:l,selected:u,value:d}=n,f;t[0]!==s||t[1]!==n||t[2]!==r||t[3]!==u?(f=u!==`direct`&&s!==void 0&&(0,j.jsx)(V,{machineAccess:n,onNavigate:r}),t[0]=s,t[1]=n,t[2]=r,t[3]=u,t[4]=f):f=t[4];let p;t[5]!==s||t[6]!==u?(p=u!==`direct`&&s===void 0&&(0,j.jsx)(`p`,{className:`text-xs text-subtle-foreground`,children:`This connection method is not installed. Choose another method above.`}),t[5]=s,t[6]=u,t[7]=p):p=t[7];let m;t[8]!==i?.effectiveUrl||t[9]!==a||t[10]!==o||t[11]!==c||t[12]!==n||t[13]!==l||t[14]!==u||t[15]!==d?(m=u===`direct`&&(0,j.jsxs)(E,{label:`Server address`,description:`Use your own domain or an address on a shared network. Your devices must be able to reach this address; localhost won’t work.`,controlPlacement:`below`,children:[(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,j.jsx)(S,{className:`min-w-0 flex-1 basis-48`,"aria-label":`Server address`,"aria-invalid":c!==null,value:o??d,placeholder:i?.effectiveUrl??`https://moonlet.example.com`,disabled:a,onChange:e=>n.editDraft(e.target.value),onKeyDown:e=>{e.key===`Enter`&&n.commitUrl()}}),(0,j.jsx)(b,{variant:`outline`,className:`h-9 max-md:pointer-coarse:h-10`,disabled:a||o===null||o.trim()===d,onClick:()=>void n.commitUrl(),children:l?`Saving…`:`Save`})]}),c!==null&&(0,j.jsx)(`p`,{role:`alert`,className:`mt-2 text-xs text-destructive-text`,children:c})]}),t[8]=i?.effectiveUrl,t[9]=a,t[10]=o,t[11]=c,t[12]=n,t[13]=l,t[14]=u,t[15]=d,t[16]=m):m=t[16];let h;return t[17]!==f||t[18]!==p||t[19]!==m?(h=(0,j.jsxs)(j.Fragment,{children:[f,p,m]}),t[17]=f,t[18]=p,t[19]=m,t[20]=h):h=t[20],h}function V(e){let n=(0,k.c)(22),{machineAccess:r,onNavigate:i,methodPicker:a}=e,{effective:o,configurationMessage:s}=r;if(!o)return null;let l=s===null,d=o.availability?.status===`setup-required`&&o.pluginId!==null,f=d?`flex flex-col items-start gap-2`:`flex min-h-7 items-center justify-between gap-3`,p;n[0]!==s||n[1]!==o.description||n[2]!==d?(p=d&&(0,j.jsxs)(`p`,{className:`max-w-xl text-xs text-subtle-foreground`,children:[o.description,` `,s]}),n[0]=s,n[1]=o.description,n[2]=d,n[3]=p):p=n[3];let m;n[4]!==o.displayName||n[5]!==o.pluginId||n[6]!==i||n[7]!==d?(m=o.pluginId!==null&&(0,j.jsx)(b,{variant:d?`default`:`link`,size:`sm`,className:d?`shrink-0`:`h-7 shrink-0 px-3 font-normal text-subtle-foreground/75 no-underline hover:text-subtle-foreground hover:no-underline`,asChild:!0,children:(0,j.jsx)(t,{onClick:i,to:c({pluginId:o.pluginId}),children:d?(0,j.jsxs)(j.Fragment,{children:[`Set up `,o.displayName,(0,j.jsx)(u,{name:`ArrowRight`})]}):`Manage`})}),n[4]=o.displayName,n[5]=o.pluginId,n[6]=i,n[7]=d,n[8]=m):m=n[8];let h;n[9]!==a||n[10]!==f||n[11]!==p||n[12]!==m?(h=(0,j.jsxs)(`div`,{className:f,children:[a,p,m]}),n[9]=a,n[10]=f,n[11]=p,n[12]=m,n[13]=h):h=n[13];let g;n[14]!==s||n[15]!==o.availability||n[16]!==l||n[17]!==d?(g=!d&&(0,j.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-3 gap-y-1 text-xs`,children:[(0,j.jsxs)(`p`,{className:`inline-flex shrink-0 items-center gap-1.5 font-medium`,children:[l?(0,j.jsx)(`span`,{className:`size-1.5 shrink-0 rounded-full bg-success`,"aria-hidden":`true`}):null,l?`Ready`:`Unavailable`]}),(0,j.jsx)(`p`,{className:`min-w-0 break-words text-subtle-foreground [overflow-wrap:anywhere]`,children:s??(o.availability?.status===`available`?o.availability.serverUrl:null)??`Ready to connect devices.`})]}),n[14]=s,n[15]=o.availability,n[16]=l,n[17]=d,n[18]=g):g=n[18];let _;return n[19]!==h||n[20]!==g?(_=(0,j.jsxs)(`div`,{className:`space-y-0`,children:[h,g]}),n[19]=h,n[20]=g,n[21]=_):_=n[21],_}var H=`manual`;function U(e){let t=(0,k.c)(12),{open:n,onOpenChange:r}=e,i=f(),a;t[0]!==i||t[1]!==r?(a=e=>{e||i.refetch(),r(e)},t[0]=i,t[1]=r,t[2]=a):a=t[2];let o=a,s;t[3]!==o||t[4]!==n?(s=n&&(0,j.jsx)(W,{onOpenChange:o}),t[3]=o,t[4]=n,t[5]=s):s=t[5];let c;t[6]===s?c=t[7]:(c=(0,j.jsx)(h,{className:`max-h-[calc(100dvh-2rem)] overflow-y-auto`,children:s}),t[6]=s,t[7]=c);let l;return t[8]!==o||t[9]!==n||t[10]!==c?(l=(0,j.jsx)(p,{open:n,onOpenChange:o,modal:!1,children:c}),t[8]=o,t[9]=n,t[10]=c,t[11]=l):l=t[11],l}function W(e){let t=(0,k.c)(13),{onOpenChange:n}=e,r=l(),i=f();if(!O(r.data?.serverAccess)){let e;t[0]===r?e=t[1]:(e=r.isPending?{status:`checking`}:r.isError?{status:`failed`,onRetry:()=>void r.refetch()}:{status:`blocked`},t[0]=r,t[1]=e);let i;t[2]===n?i=t[3]:(i=(0,j.jsx)(I,{onNavigate:()=>n(!1)}),t[2]=n,t[3]=i);let a;return t[4]!==e||t[5]!==i?(a=(0,j.jsx)(K,{state:e,children:i}),t[4]=e,t[5]=i,t[6]=a):a=t[6],a}let a=r.data?.primaryHostId??null,o;t[7]!==i.data||t[8]!==a?(o=i.data?.find(e=>e.id===a)?.name??null,t[7]=i.data,t[8]=a,t[9]=o):o=t[9];let s=o,c;return t[10]!==n||t[11]!==s?(c=(0,j.jsx)(q,{serverMachineName:s,onOpenChange:n}),t[10]=n,t[11]=s,t[12]=c):c=t[12],c}function G(e){return e===null?`The new machine will connect to your Moonlet server. Keep the server machine on so the new machine can keep working.`:`The new machine will connect to the Moonlet server on ${e}. Keep that computer on so the new machine can keep working.`}function K(e){let t=(0,k.c)(7),{state:n,children:r}=e;if(n.status===`checking`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(g,{className:`sr-only`,children:`Add a machine`}),(0,j.jsx)(`p`,{role:`status`,className:`text-sm text-subtle-foreground`,children:`Checking machine access…`})]}),t[0]=e):e=t[0],e}if(n.status===`failed`){let e;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,j.jsxs)(_,{children:[(0,j.jsx)(g,{children:`Add a machine`}),(0,j.jsx)(x,{className:`text-destructive-text`,children:`Couldn’t check whether machines can reach this server.`})]}),t[1]=e):e=t[1];let r;return t[2]===n.onRetry?r=t[3]:(r=(0,j.jsxs)(j.Fragment,{children:[e,(0,j.jsx)(`div`,{className:`flex justify-end`,children:(0,j.jsx)(b,{variant:`outline`,size:`sm`,onClick:n.onRetry,children:`Try again`})})]}),t[2]=n.onRetry,t[3]=r),r}let i;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,j.jsxs)(_,{children:[(0,j.jsx)(g,{children:`Set up machine access`}),(0,j.jsx)(x,{children:`A new machine has to reach this server over the network. Choose the address it should use.`})]}),t[4]=i):i=t[4];let a;return t[5]===r?a=t[6]:(a=(0,j.jsxs)(j.Fragment,{children:[i,r]}),t[5]=r,t[6]=a),a}function q({serverMachineName:e,onOpenChange:t}){let r=(0,A.useRef)(null),i=(0,A.useRef)(null),a=(0,A.useRef)(new Set),s=(0,A.useRef)(0),[c,l]=(0,A.useState)(null),[u,d]=(0,A.useState)(null);(0,A.useEffect)(()=>()=>{s.current+=1,r.current?.abort(),i.current=null;for(let e of a.current)y.hosts.delete({hostId:e}).catch(()=>void 0);a.current.clear()},[]);let f=n({meta:{showErrorToast:!1},mutationFn:async e=>{let t=s.current;if(e.replaceLaunch){r.current?.abort(),r.current=null;let e=[...a.current];a.current.clear(),await Promise.all(e.map(e=>y.hosts.delete({hostId:e}))),i.current=null}l(null);let n=new AbortController;r.current=n,i.current??=w();try{let e=await y.hosts.experimental_create({key:i.current,machineProviderId:H,inputs:null,wait:!1,signal:n.signal});if(a.current.add(e.id),t!==s.current)throw a.current.delete(e.id),await y.hosts.delete({hostId:e.id}),Error(`Machine setup closed`);let r=null;for(;e.lifecycle.phase===`creating`;){n.signal.throwIfAborted();let t=await y.hosts.experimental_getEnrollmentCommand({hostId:e.id,signal:n.signal});if(t!==null)r=t,l({value:t.command,windowsValue:t.windowsCommand,expiresAt:t.expiresAt,unavailable:!1});else if(r!==null){let e=r;l(t=>t?.unavailable?t:{value:e.command,windowsValue:e.windowsCommand,expiresAt:e.expiresAt,unavailable:!0})}await new Promise(e=>setTimeout(e,1e3)),n.signal.throwIfAborted(),e=await y.hosts.get({hostId:e.id,signal:n.signal})}if(i.current=null,a.current.delete(e.id),e.lifecycle.phase!==`active`)throw Error(e.lifecycle.message??`Machine setup cancelled`);return e}finally{r.current===n&&(r.current=null)}},onSuccess:e=>{i.current=null,d(e)}}),p=f.mutate;return(0,A.useEffect)(()=>{p({replaceLaunch:!1})},[p]),(0,j.jsx)(J,{command:c,connectedHost:u,serverMachineName:e,errorMessage:f.isError?o({error:f.error,fallbackMessage:`Couldn't prepare an enrollment command.`}):null,onRetry:()=>f.mutate({replaceLaunch:!1}),onRegenerate:()=>f.mutate({replaceLaunch:!0}),onOpenMachine:()=>t(!1)})}function J(e){let n=(0,k.c)(24),{command:r,connectedHost:i,serverMachineName:a,errorMessage:o,onRetry:s,onRegenerate:c,onOpenMachine:l}=e,f;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,j.jsx)(g,{children:`Add a machine`}),n[0]=f):f=n[0];let p=o===null?void 0:`text-destructive-text`,h=o??`Run this command on the machine you want to add. It installs Moonlet and keeps the machine connected to this server.`,v;n[1]!==p||n[2]!==h?(v=(0,j.jsxs)(_,{children:[f,(0,j.jsx)(x,{className:p,children:h})]}),n[1]=p,n[2]=h,n[3]=v):v=n[3];let y;n[4]!==o||n[5]!==s?(y=o===null?null:(0,j.jsx)(`div`,{className:`flex justify-end`,children:(0,j.jsx)(b,{variant:`outline`,size:`sm`,onClick:s,children:`Try again`})}),n[4]=o,n[5]=s,n[6]=y):y=n[6];let S;n[7]!==r||n[8]!==c?(S=r===null?null:(0,j.jsx)(Z,{command:r.value,windowsCommand:r.windowsValue,expiresAt:r.expiresAt,unavailable:r.unavailable,onRegenerate:c},r.value),n[7]=r,n[8]=c,n[9]=S):S=n[9];let C;n[10]!==r||n[11]!==i||n[12]!==o||n[13]!==l?(C=o===null?(0,j.jsx)(`div`,{className:`flex items-center gap-2.5 rounded-md bg-muted/40 px-3 py-2.5`,children:i===null?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(u,{name:`Spinner`,className:`size-4 shrink-0 animate-spin text-muted-foreground`}),(0,j.jsx)(`span`,{role:`status`,className:`text-sm text-muted-foreground`,children:r===null?`Preparing an enrollment command…`:`Waiting for the machine to connect…`})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(d,{connected:!0}),(0,j.jsxs)(`span`,{role:`status`,className:`min-w-0 flex-1 truncate text-sm text-foreground`,children:[i.name,` connected`]}),(0,j.jsx)(b,{asChild:!0,size:`sm`,variant:`ghost`,className:`h-7 shrink-0 px-2 text-xs`,children:(0,j.jsxs)(t,{to:m(i.id),onClick:l,children:[`Open machine`,(0,j.jsx)(u,{name:`ArrowRight`})]})})]})}):null,n[10]=r,n[11]=i,n[12]=o,n[13]=l,n[14]=C):C=n[14];let w;n[15]!==o||n[16]!==a?(w=o===null?(0,j.jsx)(`p`,{className:`text-xs text-subtle-foreground`,children:G(a)}):null,n[15]=o,n[16]=a,n[17]=w):w=n[17];let T;return n[18]!==v||n[19]!==y||n[20]!==S||n[21]!==C||n[22]!==w?(T=(0,j.jsxs)(j.Fragment,{children:[v,y,S,C,w]}),n[18]=v,n[19]=y,n[20]=S,n[21]=C,n[22]=w,n[23]=T):T=n[23],T}function Y(e){let t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}var X=[{id:`posix`,label:`macOS or Linux`},{id:`windows`,label:`Windows`}];function Z(e){let t=(0,k.c)(34),{command:n,windowsCommand:r,expiresAt:i,unavailable:a,onRegenerate:o}=e,c=a===void 0?!1:a,[l,u]=(0,A.useState)(`posix`),d=l===`windows`?r:n,f;t[0]===d?f=t[1]:(f={text:d},t[0]=d,t[1]=f);let{copied:p,copy:m}=s(f),h;t[2]===i?h=t[3]:(h=()=>i-Date.now(),t[2]=i,t[3]=h);let[g,_]=(0,A.useState)(h),v,y;t[4]===i?(v=t[5],y=t[6]):(v=()=>{let e=setInterval(()=>_(i-Date.now()),1e3);return()=>clearInterval(e)},y=[i],t[4]=i,t[5]=v,t[6]=y),(0,A.useEffect)(v,y);let x=g<=0,S;t[7]===l?S=t[8]:(S=X.map(e=>(0,j.jsx)(b,{type:`button`,size:`sm`,variant:l===e.id?`secondary`:`ghost`,"aria-pressed":l===e.id,className:`h-6 px-2 text-xs`,onClick:()=>u(e.id),children:e.label},e.id)),t[7]=l,t[8]=S);let C;t[9]===l?C=t[10]:(C=l===`windows`?(0,j.jsx)(`span`,{className:`ml-auto text-xs text-subtle-foreground`,children:`Run in PowerShell`}):null,t[9]=l,t[10]=C);let w;t[11]!==S||t[12]!==C?(w=(0,j.jsxs)(`div`,{role:`group`,"aria-label":`Machine operating system`,className:`flex items-center gap-1 border-b border-border px-2 py-1.5`,children:[S,C]}),t[11]=S,t[12]=C,t[13]=w):w=t[13];let T;t[14]===d?T=t[15]:(T=(0,j.jsx)(`pre`,{className:`overflow-x-auto whitespace-pre-wrap break-all p-3 font-mono text-xs text-foreground`,children:d}),t[14]=d,t[15]=T);let E;t[16]!==x||t[17]!==o||t[18]!==g||t[19]!==c?(E=c?(0,j.jsx)(`span`,{role:`status`,className:`text-xs text-subtle-foreground`,children:`Command used`}):x?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`span`,{role:`status`,className:`text-xs text-subtle-foreground`,children:`Command expired`}),(0,j.jsx)(b,{type:`button`,size:`sm`,variant:`ghost`,className:`h-7 px-2 text-xs`,onClick:o,children:`Generate a new command`})]}):(0,j.jsxs)(`span`,{role:`status`,className:`text-xs tabular-nums text-subtle-foreground`,children:[`Command expires in `,Y(g)]}),t[16]=x,t[17]=o,t[18]=g,t[19]=c,t[20]=E):E=t[20];let D=x||c,O;t[21]===m?O=t[22]:(O=()=>void m(),t[21]=m,t[22]=O);let M=p?`Copied`:`Copy`,N;t[23]!==D||t[24]!==O||t[25]!==M?(N=(0,j.jsx)(b,{type:`button`,size:`sm`,variant:`outline`,className:`ml-auto h-7 px-2.5 text-xs`,disabled:D,onClick:O,children:M}),t[23]=D,t[24]=O,t[25]=M,t[26]=N):N=t[26];let P;t[27]!==E||t[28]!==N?(P=(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-t border-border px-3 py-2`,children:[E,N]}),t[27]=E,t[28]=N,t[29]=P):P=t[29];let F;return t[30]!==P||t[31]!==w||t[32]!==T?(F=(0,j.jsxs)(`div`,{className:`overflow-hidden rounded-md border border-border bg-muted/30`,children:[w,T,P]}),t[30]=P,t[31]=w,t[32]=T,t[33]=F):F=t[33],F}export{Z as n,P as r,U as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Or as t,ni as n}from"./boot-vendor-BBLG7GwQ.js";import{no as r}from"./index-DacqPN7W.js";import{t as i}from"./shortcut-pill-DEGa4D8O.js";var a=t(),o=e(n(),1);function s(e){let t=(0,a.c)(3),{shortcut:n,className:s}=e;if(!r()||!n)return null;let c;return t[0]!==s||t[1]!==n?(c=(0,o.jsx)(i,{shortcut:n,className:s}),t[0]=s,t[1]=n,t[2]=c):c=t[2],c}export{s as t};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Or as t,ni as n}from"./boot-vendor-BBLG7GwQ.js";import{no as r}from"./index-B_0TBqOi.js";import{t as i}from"./shortcut-pill-DATfy56m.js";var a=t(),o=e(n(),1);function s(e){let t=(0,a.c)(3),{shortcut:n,className:s}=e;if(!r()||!n)return null;let c;return t[0]!==s||t[1]!==n?(c=(0,o.jsx)(i,{shortcut:n,className:s}),t[0]=s,t[1]=n,t[2]=c):c=t[2],c}export{s as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Or as t,mi as n}from"./boot-vendor-BBLG7GwQ.js";import{Rn as r,Ym as i}from"./index-DacqPN7W.js";import{t as a}from"./useLocalOpenTargets-BHW47emg.js";import{t as o}from"./useResolvedLiveFileTarget-Djned7dt.js";var s=t(),c=e(n(),1);function l(e){let t=(0,s.c)(20),{intent:n,onSettled:l}=e,u=(0,c.useRef)(!1),d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d={enabled:!0},t[0]=d):d=t[0];let f=o(n.target,d),p=f.status===`available`,m;t[1]!==f.openContext||t[2]!==f.status?(m=f.status===`available`?{openContext:f.openContext}:{},t[1]=f.openContext,t[2]=f.status,t[3]=m):m=t[3];let h;t[4]!==p||t[5]!==m?(h={enabled:p,...m},t[4]=p,t[5]=m,t[6]=h):h=t[6];let{isLoading:g,openPathInPreferredFileTarget:_}=a(h),v;t[7]!==g||t[8]!==n.location||t[9]!==l||t[10]!==_||t[11]!==f.absolutePath||t[12]!==f.status?(v=()=>{if(u.current||f.status===`loading`||g)return;if(u.current=!0,l(),f.status===`unavailable`){i.error(`Failed to open file externally`,{description:`The file target is not available on its declared host.`});return}let e=r(n.location);_({columnNumber:e.columnNumber,lineNumber:e.lineNumber,path:f.absolutePath})},t[7]=g,t[8]=n.location,t[9]=l,t[10]=_,t[11]=f.absolutePath,t[12]=f.status,t[13]=v):v=t[13];let y;return t[14]!==g||t[15]!==n.location||t[16]!==l||t[17]!==_||t[18]!==f?(y=[n.location,g,_,l,f],t[14]=g,t[15]=n.location,t[16]=l,t[17]=_,t[18]=f,t[19]=y):y=t[19],(0,c.useEffect)(v,y),null}export{l as AppFileExternalNavigationDispatcher};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Or as t,mi as n}from"./boot-vendor-BBLG7GwQ.js";import{Rn as r,Ym as i}from"./index-B_0TBqOi.js";import{t as a}from"./useLocalOpenTargets-G_SbnjQv.js";import{t as o}from"./useResolvedLiveFileTarget-BaB_Ekxe.js";var s=t(),c=e(n(),1);function l(e){let t=(0,s.c)(20),{intent:n,onSettled:l}=e,u=(0,c.useRef)(!1),d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d={enabled:!0},t[0]=d):d=t[0];let f=o(n.target,d),p=f.status===`available`,m;t[1]!==f.openContext||t[2]!==f.status?(m=f.status===`available`?{openContext:f.openContext}:{},t[1]=f.openContext,t[2]=f.status,t[3]=m):m=t[3];let h;t[4]!==p||t[5]!==m?(h={enabled:p,...m},t[4]=p,t[5]=m,t[6]=h):h=t[6];let{isLoading:g,openPathInPreferredFileTarget:_}=a(h),v;t[7]!==g||t[8]!==n.location||t[9]!==l||t[10]!==_||t[11]!==f.absolutePath||t[12]!==f.status?(v=()=>{if(u.current||f.status===`loading`||g)return;if(u.current=!0,l(),f.status===`unavailable`){i.error(`Failed to open file externally`,{description:`The file target is not available on its declared host.`});return}let e=r(n.location);_({columnNumber:e.columnNumber,lineNumber:e.lineNumber,path:f.absolutePath})},t[7]=g,t[8]=n.location,t[9]=l,t[10]=_,t[11]=f.absolutePath,t[12]=f.status,t[13]=v):v=t[13];let y;return t[14]!==g||t[15]!==n.location||t[16]!==l||t[17]!==_||t[18]!==f?(y=[n.location,g,_,l,f],t[14]=g,t[15]=n.location,t[16]=l,t[17]=_,t[18]=f,t[19]=y):y=t[19],(0,c.useEffect)(v,y),null}export{l as AppFileExternalNavigationDispatcher};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Or as t,mi as n,ni as r}from"./boot-vendor-BBLG7GwQ.js";import{Xf as i,Xm as a,ca as o,z as s}from"./index-DacqPN7W.js";import{r as c,t as l}from"./dist-4WsJ8dK6.js";var u=t(),d=e(n(),1),f=e(r(),1),p={top:`calc(env(safe-area-inset-top) + var(--bb-app-chrome-row-height) + 16px)`},m=[`top`,`left`,`right`];function h(){let e=(0,u.c)(8),t=s(),n=i(),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],e[0]=r):r=e[0],(0,d.useEffect)(g,r);let a;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(a={zIndex:o.toast},e[1]=a):a=e[1];let c=n?`top-center`:`bottom-right`,h=n?p:void 0,_=n?p:void 0,v=n?m:void 0,y;return e[2]!==c||e[3]!==h||e[4]!==_||e[5]!==v||e[6]!==t?(y=(0,f.jsx)(l,{theme:t,style:a,position:c,offset:h,mobileOffset:_,swipeDirections:v}),e[2]=c,e[3]=h,e[4]=_,e[5]=v,e[6]=t,e[7]=y):y=e[7],y}function g(){a(c)}export{h as AppToasterView};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Or as t,mi as n,ni as r}from"./boot-vendor-BBLG7GwQ.js";import{Xf as i,Xm as a,ca as o,z as s}from"./index-B_0TBqOi.js";import{r as c,t as l}from"./dist-4WsJ8dK6.js";var u=t(),d=e(n(),1),f=e(r(),1),p={top:`calc(env(safe-area-inset-top) + var(--bb-app-chrome-row-height) + 16px)`},m=[`top`,`left`,`right`];function h(){let e=(0,u.c)(8),t=s(),n=i(),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],e[0]=r):r=e[0],(0,d.useEffect)(g,r);let a;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(a={zIndex:o.toast},e[1]=a):a=e[1];let c=n?`top-center`:`bottom-right`,h=n?p:void 0,_=n?p:void 0,v=n?m:void 0,y;return e[2]!==c||e[3]!==h||e[4]!==_||e[5]!==v||e[6]!==t?(y=(0,f.jsx)(l,{theme:t,style:a,position:c,offset:h,mobileOffset:_,swipeDirections:v}),e[2]=c,e[3]=h,e[4]=_,e[5]=v,e[6]=t,e[7]=y):y=e[7],y}function g(){a(c)}export{h as AppToasterView};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Or as t,mi as n,ni as r}from"./boot-vendor-BBLG7GwQ.js";import{I as i,oh as a,z as ee}from"./index-DacqPN7W.js";import{t as o}from"./code-loading-skeletons-IO1KXbza.js";import{n as s,t as c}from"./pierre-strict-mode-recovery-BhJkQvXP.js";import{t as l}from"./FileDiff-BLle8hNc.js";import{a as u,n as te,r as d,t as f}from"./git-diff-patch-text-Cs-divFw.js";import{t as p}from"./PierreLineSelectionActions-CKcwMnwZ.js";import{i as m}from"./pierre-worker-pool-gate-DzlPWuU3.js";var h=t(),g=e(n(),1),_=e(r(),1),v={"--diffs-font-size":`12px`,"--diffs-line-height":`18px`},y=30;function b(e){let t=(0,h.c)(47),{file:n,patchText:r,fullFileContents:b,view:x,overflow:S,showLineNumbers:C,className:w,onSelectionAddToChat:T}=e,E=b?.old.path,D=b?.old.content,O=b?.new.path,k=b?.new.content,A;bb0:{if(E===void 0||D===void 0||O===void 0||k===void 0){A=n;break bb0}let e;t[0]!==n||t[1]!==k||t[2]!==O||t[3]!==D||t[4]!==E||t[5]!==r?(e=u({fileDiff:n,oldFile:{name:E,contents:D},newFile:{name:O,contents:k},patchText:r??d(n)}),t[0]=n,t[1]=k,t[2]=O,t[3]=D,t[4]=E,t[5]=r,t[6]=e):e=t[6],A=e}let j=A,M=j!==n&&j.isPartial===!1?y:void 0,N=(0,g.useRef)(null),P=i(),F=ee(),I;t[7]!==j||t[8]!==x?(I=e=>te({displayStyle:x,fileDiff:j,range:e}),t[7]=j,t[8]=x,t[9]=I):I=t[9];let L=I,R;t[10]===j?R=t[11]:(R=e=>{let{containerElement:t}=e;return f({containerElement:t,fileDiff:j})},t[10]=j,t[11]=R);let z=R,B=T!==void 0,V;t[12]!==z||t[13]!==L||t[14]!==T||t[15]!==B?(V={buildFallbackSelectionText:z,buildSelectionText:L,containerRef:N,enabled:B,onSelectionAddToChat:T},t[12]=z,t[13]=L,t[14]=T,t[15]=B,t[16]=V):V=t[16];let H=p(V),U=!C,W;t[17]===M?W=t[18]:(W=M===void 0?{}:{expansionLineCount:M},t[17]=M,t[18]=W);let G=T!==void 0,K=T!==void 0,q=T===void 0?`disabled`:`number`,J=T===void 0?void 0:H.onGutterUtilityClick,Y;t[19]!==P||t[20]!==H.onLineSelectionChange||t[21]!==H.onLineSelectionEnd||t[22]!==H.onLineSelectionStart||t[23]!==S||t[24]!==q||t[25]!==J||t[26]!==U||t[27]!==W||t[28]!==G||t[29]!==K||t[30]!==F||t[31]!==x?(Y={diffStyle:x,overflow:S,disableLineNumbers:U,disableFileHeader:!0,...W,themeType:F,theme:P,enableGutterUtility:G,enableLineSelection:K,lineHoverHighlight:q,onGutterUtilityClick:J,onLineSelectionChange:H.onLineSelectionChange,onLineSelectionEnd:H.onLineSelectionEnd,onLineSelectionStart:H.onLineSelectionStart},t[19]=P,t[20]=H.onLineSelectionChange,t[21]=H.onLineSelectionEnd,t[22]=H.onLineSelectionStart,t[23]=S,t[24]=q,t[25]=J,t[26]=U,t[27]=W,t[28]=G,t[29]=K,t[30]=F,t[31]=x,t[32]=Y):Y=t[32];let X=c(Y);if(!m()){let e;return t[33]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,_.jsx)(o,{}),t[33]=e):e=t[33],e}let Z;t[34]===w?Z=t[35]:(Z=a(`overflow-x-auto`,w),t[34]=w,t[35]=Z);let Q;t[36]!==H.selectedRange||t[37]!==X||t[38]!==j?(Q=(0,_.jsx)(`div`,{className:`w-full max-w-full`,style:v,children:(0,_.jsx)(s,{children:(0,_.jsx)(l,{fileDiff:j,options:X,selectedLines:H.selectedRange})})}),t[36]=H.selectedRange,t[37]=X,t[38]=j,t[39]=Q):Q=t[39];let $;return t[40]!==H.menu||t[41]!==H.onPointerDownCapture||t[42]!==H.onPointerMoveCapture||t[43]!==H.onPointerUpCapture||t[44]!==Z||t[45]!==Q?($=(0,_.jsxs)(`div`,{ref:N,className:Z,onPointerDownCapture:H.onPointerDownCapture,onPointerMoveCapture:H.onPointerMoveCapture,onPointerUpCapture:H.onPointerUpCapture,children:[Q,H.menu]}),t[40]=H.menu,t[41]=H.onPointerDownCapture,t[42]=H.onPointerMoveCapture,t[43]=H.onPointerUpCapture,t[44]=Z,t[45]=Q,t[46]=$):$=t[46],$}export{b as default};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Or as t,mi as n,ni as r}from"./boot-vendor-BBLG7GwQ.js";import{I as i,oh as a,z as ee}from"./index-B_0TBqOi.js";import{t as o}from"./code-loading-skeletons-D66C2XWf.js";import{n as s,t as c}from"./pierre-strict-mode-recovery-BhJkQvXP.js";import{t as l}from"./FileDiff-BLle8hNc.js";import{a as u,n as te,r as d,t as f}from"./git-diff-patch-text-Cs-divFw.js";import{t as p}from"./PierreLineSelectionActions-o8f-eWuJ.js";import{i as m}from"./pierre-worker-pool-gate-DzlPWuU3.js";var h=t(),g=e(n(),1),_=e(r(),1),v={"--diffs-font-size":`12px`,"--diffs-line-height":`18px`},y=30;function b(e){let t=(0,h.c)(47),{file:n,patchText:r,fullFileContents:b,view:x,overflow:S,showLineNumbers:C,className:w,onSelectionAddToChat:T}=e,E=b?.old.path,D=b?.old.content,O=b?.new.path,k=b?.new.content,A;bb0:{if(E===void 0||D===void 0||O===void 0||k===void 0){A=n;break bb0}let e;t[0]!==n||t[1]!==k||t[2]!==O||t[3]!==D||t[4]!==E||t[5]!==r?(e=u({fileDiff:n,oldFile:{name:E,contents:D},newFile:{name:O,contents:k},patchText:r??d(n)}),t[0]=n,t[1]=k,t[2]=O,t[3]=D,t[4]=E,t[5]=r,t[6]=e):e=t[6],A=e}let j=A,M=j!==n&&j.isPartial===!1?y:void 0,N=(0,g.useRef)(null),P=i(),F=ee(),I;t[7]!==j||t[8]!==x?(I=e=>te({displayStyle:x,fileDiff:j,range:e}),t[7]=j,t[8]=x,t[9]=I):I=t[9];let L=I,R;t[10]===j?R=t[11]:(R=e=>{let{containerElement:t}=e;return f({containerElement:t,fileDiff:j})},t[10]=j,t[11]=R);let z=R,B=T!==void 0,V;t[12]!==z||t[13]!==L||t[14]!==T||t[15]!==B?(V={buildFallbackSelectionText:z,buildSelectionText:L,containerRef:N,enabled:B,onSelectionAddToChat:T},t[12]=z,t[13]=L,t[14]=T,t[15]=B,t[16]=V):V=t[16];let H=p(V),U=!C,W;t[17]===M?W=t[18]:(W=M===void 0?{}:{expansionLineCount:M},t[17]=M,t[18]=W);let G=T!==void 0,K=T!==void 0,q=T===void 0?`disabled`:`number`,J=T===void 0?void 0:H.onGutterUtilityClick,Y;t[19]!==P||t[20]!==H.onLineSelectionChange||t[21]!==H.onLineSelectionEnd||t[22]!==H.onLineSelectionStart||t[23]!==S||t[24]!==q||t[25]!==J||t[26]!==U||t[27]!==W||t[28]!==G||t[29]!==K||t[30]!==F||t[31]!==x?(Y={diffStyle:x,overflow:S,disableLineNumbers:U,disableFileHeader:!0,...W,themeType:F,theme:P,enableGutterUtility:G,enableLineSelection:K,lineHoverHighlight:q,onGutterUtilityClick:J,onLineSelectionChange:H.onLineSelectionChange,onLineSelectionEnd:H.onLineSelectionEnd,onLineSelectionStart:H.onLineSelectionStart},t[19]=P,t[20]=H.onLineSelectionChange,t[21]=H.onLineSelectionEnd,t[22]=H.onLineSelectionStart,t[23]=S,t[24]=q,t[25]=J,t[26]=U,t[27]=W,t[28]=G,t[29]=K,t[30]=F,t[31]=x,t[32]=Y):Y=t[32];let X=c(Y);if(!m()){let e;return t[33]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,_.jsx)(o,{}),t[33]=e):e=t[33],e}let Z;t[34]===w?Z=t[35]:(Z=a(`overflow-x-auto`,w),t[34]=w,t[35]=Z);let Q;t[36]!==H.selectedRange||t[37]!==X||t[38]!==j?(Q=(0,_.jsx)(`div`,{className:`w-full max-w-full`,style:v,children:(0,_.jsx)(s,{children:(0,_.jsx)(l,{fileDiff:j,options:X,selectedLines:H.selectedRange})})}),t[36]=H.selectedRange,t[37]=X,t[38]=j,t[39]=Q):Q=t[39];let $;return t[40]!==H.menu||t[41]!==H.onPointerDownCapture||t[42]!==H.onPointerMoveCapture||t[43]!==H.onPointerUpCapture||t[44]!==Z||t[45]!==Q?($=(0,_.jsxs)(`div`,{ref:N,className:Z,onPointerDownCapture:H.onPointerDownCapture,onPointerMoveCapture:H.onPointerMoveCapture,onPointerUpCapture:H.onPointerUpCapture,children:[Q,H.menu]}),t[40]=H.menu,t[41]=H.onPointerDownCapture,t[42]=H.onPointerMoveCapture,t[43]=H.onPointerUpCapture,t[44]=Z,t[45]=Q,t[46]=$):$=t[46],$}export{b as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/BbDiff-DphdUFhF.js","assets/rolldown-runtime-BM3Ffeng.js","assets/index-DacqPN7W.js","assets/boot-vendor-BBLG7GwQ.js","assets/index-D2OEUGpi.css","assets/code-loading-skeletons-IO1KXbza.js","assets/PierreLineSelectionActions-CKcwMnwZ.js","assets/git-diff-patch-text-Cs-divFw.js","assets/dist-CXXcNKpg.js","assets/ccount-Ddbz1Ovh.js","assets/lib-B4H0r8OP.js","assets/space-separated-tokens-DGOpQRo8.js","assets/lib-D0BdwZRm.js","assets/zwitch-Pm92m0zx.js","assets/TimelineSelectionMenu-dDFIppSs.js","assets/pierre-strict-mode-recovery-BhJkQvXP.js","assets/pierre-worker-pool-gate-DzlPWuU3.js","assets/FileDiff-BLle8hNc.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ur as t,ni as n}from"./boot-vendor-BBLG7GwQ.js";import{np as r}from"./index-DacqPN7W.js";import{t as i}from"./code-loading-skeletons-IO1KXbza.js";var a=e(n(),1),o=r({id:`bb-diff`,load:()=>t(()=>import(`./BbDiff-DphdUFhF.js`).then(e=>e.default),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17])),loading:()=>(0,a.jsx)(i,{}),tier:`intent`});export{o as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/BbDiff-GK254uaZ.js","assets/rolldown-runtime-BM3Ffeng.js","assets/index-B_0TBqOi.js","assets/boot-vendor-BBLG7GwQ.js","assets/index-BY3ej0PM.css","assets/code-loading-skeletons-D66C2XWf.js","assets/PierreLineSelectionActions-o8f-eWuJ.js","assets/git-diff-patch-text-Cs-divFw.js","assets/dist-CXXcNKpg.js","assets/ccount-Ddbz1Ovh.js","assets/lib-B4H0r8OP.js","assets/space-separated-tokens-DGOpQRo8.js","assets/lib-D0BdwZRm.js","assets/zwitch-Pm92m0zx.js","assets/TimelineSelectionMenu-DUGdkfJf.js","assets/pierre-strict-mode-recovery-BhJkQvXP.js","assets/pierre-worker-pool-gate-DzlPWuU3.js","assets/FileDiff-BLle8hNc.js"])))=>i.map(i=>d[i]);
2
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ur as t,ni as n}from"./boot-vendor-BBLG7GwQ.js";import{np as r}from"./index-B_0TBqOi.js";import{t as i}from"./code-loading-skeletons-D66C2XWf.js";var a=e(n(),1),o=r({id:`bb-diff`,load:()=>t(()=>import(`./BbDiff-GK254uaZ.js`).then(e=>e.default),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17])),loading:()=>(0,a.jsx)(i,{}),tier:`intent`});export{o as t};
@@ -1,2 +1,2 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Or as t,mi as n,ni as r}from"./boot-vendor-BBLG7GwQ.js";import{I as i,nh as a,oh as o,z as s}from"./index-DacqPN7W.js";import{n as c}from"./code-loading-skeletons-IO1KXbza.js";import{i as l,n as ee,t as te}from"./pierre-strict-mode-recovery-BhJkQvXP.js";import{a as u}from"./dist-CXXcNKpg.js";import{t as ne}from"./File-D-Dyu8Un.js";import{i as d}from"./git-diff-patch-text-Cs-divFw.js";import{t as re}from"./PierreLineSelectionActions-CKcwMnwZ.js";import{i as ie,n as ae}from"./pierre-worker-pool-gate-DzlPWuU3.js";import{n as oe}from"./source-code-budget-DkjqujJR.js";var se=t(),f=e(n(),1),p=e(r(),1),m=18,h=16,ce={"--diffs-font-size":`12px`,"--diffs-line-height":`${m}px`,"--diffs-gap-block":`${h}px`},le={hunkLineCount:50,lineHeight:m,diffHeaderHeight:0,spacing:h};function g(e){return[e,...d(e)]}function ue(e){for(let t of g(e)){let e=t.querySelectorAll(`[data-bb-source-code-target-line]`);for(let t of e)t.removeAttribute(`data-bb-source-code-target-line`),t.removeAttribute(`data-selected-line`)}}function de(e,t){let n=g(e);for(let e of n){let n=e.querySelectorAll(`[data-line="${t}"]`);for(let e of n)if(e instanceof HTMLElement&&e.dataset.lineIndex!==void 0)return e}for(let e of n){let n=e.querySelectorAll(`[data-line="${t}"]`);for(let e of n)if(e instanceof HTMLElement)return e}return null}function _(e){return e.querySelector(`[data-bb-source-code-viewport]`)}function fe(e,t){let n=_(e);if(n===null)return;let r=n.getBoundingClientRect(),i=r.height/2,a=v(e);if(a===null){let e=h+(t-1)*m;n.scrollTop=Math.max(0,e-i);return}let{firstLineNumber:o,firstTop:s,lastLineNumber:c,lastBottom:l}=a;if(t>c){let e=l-r.top+(t-c-1)*m;n.scrollTop+=Math.max(0,e-i)}else if(t<o){let e=r.top-s+(o-t)*m;n.scrollTop=Math.max(0,n.scrollTop-e-i)}}function v(e){let t=null;for(let n of g(e))for(let e of n.querySelectorAll(`[data-line][data-line-index]`)){let n=Number(e.dataset.line);if(!Number.isFinite(n))continue;let r=e.getBoundingClientRect();if(t===null){t={firstLineNumber:n,firstTop:r.top,lastLineNumber:n,lastBottom:r.bottom};continue}n<t.firstLineNumber&&(t.firstLineNumber=n,t.firstTop=r.top),n>t.lastLineNumber&&(t.lastLineNumber=n,t.lastBottom=r.bottom)}return t}function pe(e,t){let n=_(e);if(n===null)return;let r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),a=r.top+r.height/2,o=i.top+i.height/2;n.scrollTop+=a-o}function y(e,t){return e===t?String(e):`${e}-${t}`}function me({contents:e,path:t,range:n}){let r=Math.max(1,Math.min(n.start,n.end)),i=Math.max(r,Math.max(n.start,n.end)),a=e.split(/\r\n|\n|\r/).slice(r-1,i);if(a.length===0)return null;let o=a.join(`
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Or as t,mi as n,ni as r}from"./boot-vendor-BBLG7GwQ.js";import{I as i,nh as a,oh as o,z as s}from"./index-B_0TBqOi.js";import{n as c}from"./code-loading-skeletons-D66C2XWf.js";import{i as l,n as ee,t as te}from"./pierre-strict-mode-recovery-BhJkQvXP.js";import{a as u}from"./dist-CXXcNKpg.js";import{t as ne}from"./File-D-Dyu8Un.js";import{i as d}from"./git-diff-patch-text-Cs-divFw.js";import{t as re}from"./PierreLineSelectionActions-o8f-eWuJ.js";import{i as ie,n as ae}from"./pierre-worker-pool-gate-DzlPWuU3.js";import{n as oe}from"./source-code-budget-DkjqujJR.js";var se=t(),f=e(n(),1),p=e(r(),1),m=18,h=16,ce={"--diffs-font-size":`12px`,"--diffs-line-height":`${m}px`,"--diffs-gap-block":`${h}px`},le={hunkLineCount:50,lineHeight:m,diffHeaderHeight:0,spacing:h};function g(e){return[e,...d(e)]}function ue(e){for(let t of g(e)){let e=t.querySelectorAll(`[data-bb-source-code-target-line]`);for(let t of e)t.removeAttribute(`data-bb-source-code-target-line`),t.removeAttribute(`data-selected-line`)}}function de(e,t){let n=g(e);for(let e of n){let n=e.querySelectorAll(`[data-line="${t}"]`);for(let e of n)if(e instanceof HTMLElement&&e.dataset.lineIndex!==void 0)return e}for(let e of n){let n=e.querySelectorAll(`[data-line="${t}"]`);for(let e of n)if(e instanceof HTMLElement)return e}return null}function _(e){return e.querySelector(`[data-bb-source-code-viewport]`)}function fe(e,t){let n=_(e);if(n===null)return;let r=n.getBoundingClientRect(),i=r.height/2,a=v(e);if(a===null){let e=h+(t-1)*m;n.scrollTop=Math.max(0,e-i);return}let{firstLineNumber:o,firstTop:s,lastLineNumber:c,lastBottom:l}=a;if(t>c){let e=l-r.top+(t-c-1)*m;n.scrollTop+=Math.max(0,e-i)}else if(t<o){let e=r.top-s+(o-t)*m;n.scrollTop=Math.max(0,n.scrollTop-e-i)}}function v(e){let t=null;for(let n of g(e))for(let e of n.querySelectorAll(`[data-line][data-line-index]`)){let n=Number(e.dataset.line);if(!Number.isFinite(n))continue;let r=e.getBoundingClientRect();if(t===null){t={firstLineNumber:n,firstTop:r.top,lastLineNumber:n,lastBottom:r.bottom};continue}n<t.firstLineNumber&&(t.firstLineNumber=n,t.firstTop=r.top),n>t.lastLineNumber&&(t.lastLineNumber=n,t.lastBottom=r.bottom)}return t}function pe(e,t){let n=_(e);if(n===null)return;let r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),a=r.top+r.height/2,o=i.top+i.height/2;n.scrollTop+=a-o}function y(e,t){return e===t?String(e):`${e}-${t}`}function me({contents:e,path:t,range:n}){let r=Math.max(1,Math.min(n.start,n.end)),i=Math.max(r,Math.max(n.start,n.end)),a=e.split(/\r\n|\n|\r/).slice(r-1,i);if(a.length===0)return null;let o=a.join(`
2
2
  `).trimEnd();return o.trim().length===0?null:`${t}:${y(r,i)}\n${o}`}function b(e){let t=(0,se.c)(74),{content:n,path:r,cacheKey:a,overflow:l,highlightedLines:u,className:d,scrollToHighlightedLines:m,onSelectionAddToChat:h}=e,g=m===void 0?!1:m,v=a??r,y;t[0]!==n||t[1]!==v||t[2]!==r?(y={name:r,contents:n,cacheKey:v},t[0]=n,t[1]=v,t[2]=r,t[3]=y):y=t[3];let b=y,x=s(),ye=i(),S=(0,f.useRef)(null),be=ie(),C=ae(),xe=(0,f.useRef)(null),[Se,Ce]=(0,f.useState)(null),[,w]=(0,f.useState)(0),T=v,E;t[4]===n?E=t[5]:(E=oe(n),t[4]=n,t[5]=E);let D=E,[we,Te]=(0,f.useState)(null),O;t[6]!==n||t[7]!==r?(O=e=>me({contents:n,path:r,range:e}),t[6]=n,t[7]=r,t[8]=O):O=t[8];let k=O,A=h!==void 0,j;t[9]!==k||t[10]!==h||t[11]!==A?(j={buildSelectionText:k,containerRef:S,enabled:A,onSelectionAddToChat:h},t[9]=k,t[10]=h,t[11]=A,t[12]=j):j=t[12];let M=re(j),N=h!==void 0,Ee=u!==null||h!==void 0,P=h===void 0?`disabled`:`number`,De=h===void 0?void 0:M.onGutterUtilityClick,F;t[13]!==ye||t[14]!==M.onLineSelectionChange||t[15]!==M.onLineSelectionEnd||t[16]!==M.onLineSelectionStart||t[17]!==l||t[18]!==x||t[19]!==De||t[20]!==N||t[21]!==Ee||t[22]!==P?(F={themeType:x,theme:ye,overflow:l,disableFileHeader:!0,enableGutterUtility:N,enableLineSelection:Ee,lineHoverHighlight:P,onGutterUtilityClick:De,onLineSelectionChange:M.onLineSelectionChange,onLineSelectionEnd:M.onLineSelectionEnd,onLineSelectionStart:M.onLineSelectionStart},t[13]=ye,t[14]=M.onLineSelectionChange,t[15]=M.onLineSelectionEnd,t[16]=M.onLineSelectionStart,t[17]=l,t[18]=x,t[19]=De,t[20]=N,t[21]=Ee,t[22]=P,t[23]=F):F=t[23];let Oe=te(F),ke;bb0:{if(M.selectedRange!==null){ke=M.selectedRange;break bb0}let e;t[24]===u?e=t[25]:(e=u===null?null:{start:u.start,end:u.end},t[24]=u,t[25]=e),ke=e}let I=ke,L=g?I?.start??null:null,R=D===null||we===T||L!==null&&L>D.renderedLineCount,Ae;bb1:{if(R||D===null){Ae=b;break bb1}let e=`${v}:head`,n;t[26]!==b||t[27]!==e||t[28]!==D.contents?(n={...b,cacheKey:e,contents:D.contents},t[26]=b,t[27]=e,t[28]=D.contents,t[29]=n):n=t[29],Ae=n}let z=Ae,B=R||D===null?v:`${v}:head`,je=(0,f.useRef)(null),V;t[30]===T?V=t[31]:(V=()=>{je.current=(S.current===null?null:_(S.current))?.scrollTop??null,Te(T)},t[30]=T,t[31]=V);let Me=V,H;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(H=()=>{let e=je.current;if(e===null)return;je.current=null;let t=S.current===null?null:_(S.current);if(t===null)return;t.scrollTop=e;let n=window.requestAnimationFrame(()=>{t.scrollTop=e});return()=>window.cancelAnimationFrame(n)},t[32]=H):H=t[32];let U;t[33]===B?U=t[34]:(U=[B],t[33]=B,t[34]=U),(0,f.useLayoutEffect)(H,U);let W;t[35]!==w||t[36]!==C?(W=()=>{if(!C){Ce(null);return}return xe.current=null,C.subscribeToStatChanges(e=>{Ce(e);let t=[e.managerState,e.workersFailed,e.busyWorkers,e.queuedTasks,e.activeTasks,e.fileCacheSize].join(`:`);xe.current!==t&&(xe.current=t,w(he))})},t[35]=w,t[36]=C,t[37]=W):W=t[37];let G;t[38]!==b.contents||t[39]!==b.name||t[40]!==C?(G=[b.contents,b.name,C],t[38]=b.contents,t[39]=b.name,t[40]=C,t[41]=G):G=t[41],(0,f.useEffect)(W,G);let K=C!==void 0&&Se?.managerState!==`initialized`&&Se?.workersFailed!==!0,Ne=C?.getFileResultCache(z)===void 0?`plain`:`highlighted`,q;t[42]===L?q=t[43]:(q=()=>{let e=S.current,t=null,n=0,r=function(){t=window.requestAnimationFrame(i)};function i(){let e=S.current;if(!e||(ue(e),L===null))return;let t=de(e,L);if(t){t.setAttribute(`data-bb-source-code-target-line`,``),t.setAttribute(`data-selected-line`,`single`),pe(e,t);return}fe(e,L),n+=1,n<ge&&r()}return i(),()=>{e&&ue(e),t!==null&&window.cancelAnimationFrame(t)}},t[42]=L,t[43]=q);let J;if(t[44]!==z.contents||t[45]!==z.name||t[46]!==K||t[47]!==L||t[48]!==Ne?(J=[z.contents,z.name,K,L,Ne],t[44]=z.contents,t[45]=z.name,t[46]=K,t[47]=L,t[48]=Ne,t[49]=J):J=t[49],(0,f.useEffect)(q,J),K||!be){let e;return t[50]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(c,{}),t[50]=e):e=t[50],e}let Y;t[51]===d?Y=t[52]:(Y=o(`flex min-h-0 flex-1 flex-col`,d),t[51]=d,t[52]=Y);let Pe=L??void 0,Fe=Se?.workersFailed===!0,X;t[53]!==Oe||t[54]!==z||t[55]!==B||t[56]!==I||t[57]!==Fe?(X=(0,p.jsx)(ne,{disableWorkerPool:Fe,file:z,metrics:le,options:Oe,selectedLines:I},B),t[53]=Oe,t[54]=z,t[55]=B,t[56]=I,t[57]=Fe,t[58]=X):X=t[58];let Z;t[59]!==Me||t[60]!==R||t[61]!==D?(Z=D!==null&&!R?(0,p.jsx)(ve,{truncation:D,onLoadFullFile:Me}):null,t[59]=Me,t[60]=R,t[61]=D,t[62]=Z):Z=t[62];let Q;t[63]!==X||t[64]!==Z?(Q=(0,p.jsx)(ee,{children:(0,p.jsxs)(_e,{children:[X,Z]})}),t[63]=X,t[64]=Z,t[65]=Q):Q=t[65];let $;return t[66]!==M.menu||t[67]!==M.onPointerDownCapture||t[68]!==M.onPointerMoveCapture||t[69]!==M.onPointerUpCapture||t[70]!==Y||t[71]!==Pe||t[72]!==Q?($=(0,p.jsxs)(`div`,{ref:S,className:Y,style:ce,"data-bb-source-code-line-number":Pe,onPointerDownCapture:M.onPointerDownCapture,onPointerMoveCapture:M.onPointerMoveCapture,onPointerUpCapture:M.onPointerUpCapture,children:[Q,M.menu]}),t[66]=M.menu,t[67]=M.onPointerDownCapture,t[68]=M.onPointerMoveCapture,t[69]=M.onPointerUpCapture,t[70]=Y,t[71]=Pe,t[72]=Q,t[73]=$):$=t[73],$}function he(e){return e+1}var ge=40;function _e(e){let t=(0,se.c)(10),{children:n}=e,[r]=(0,f.useState)(x),i;t[0]===r?i=t[1]:(i=e=>{e===null?r?.cleanUp():r?.setup(e)},t[0]=r,t[1]=i);let a=i,o;t[2]===n?o=t[3]:(o=(0,p.jsx)(`div`,{children:n}),t[2]=n,t[3]=o);let s;t[4]!==o||t[5]!==a?(s=(0,p.jsx)(`div`,{ref:a,className:`min-h-0 flex-1 overflow-y-auto`,"data-bb-source-code-viewport":!0,children:o}),t[4]=o,t[5]=a,t[6]=s):s=t[6];let c;return t[7]!==s||t[8]!==r?(c=(0,p.jsx)(l.Provider,{value:r,children:s}),t[7]=s,t[8]=r,t[9]=c):c=t[9],c}function x(){return typeof window>`u`?void 0:new u}function ve(e){let t=(0,se.c)(12),{truncation:n,onLoadFullFile:r}=e,i;t[0]===n.renderedLineCount?i=t[1]:(i=n.renderedLineCount.toLocaleString(),t[0]=n.renderedLineCount,t[1]=i);let o;t[2]===n.totalLineCount?o=t[3]:(o=n.totalLineCount.toLocaleString(),t[2]=n.totalLineCount,t[3]=o);let s;t[4]!==i||t[5]!==o?(s=(0,p.jsxs)(`span`,{children:[`Showing the first `,i,` of`,` `,o,` lines.`]}),t[4]=i,t[5]=o,t[6]=s):s=t[6];let c;t[7]===r?c=t[8]:(c=(0,p.jsx)(a,{type:`button`,variant:`link`,size:`sm`,className:`h-auto p-0 text-xs underline underline-offset-4 hover:underline`,onClick:r,children:`Load full file`}),t[7]=r,t[8]=c);let l;return t[9]!==s||t[10]!==c?(l=(0,p.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1 px-4 py-3 text-xs text-muted-foreground`,children:[s,c]}),t[9]=s,t[10]=c,t[11]=l):l=t[11],l}export{b as default};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Cr as t,Et as n,Or as r,St as i,bt as a,dr as o,mi as s,ni as c,t as l,vr as u,yr as d}from"./boot-vendor-BBLG7GwQ.js";import{$ as f,$a as p,Cp as m,Lf as h,Nf as g,Pf as _,Pu as v,Qm as y,Sa as b,Sn as x,Ta as S,Tr as C,W_ as w,Xf as T,Za as E,df as D,dr as O,fr as k,ft as A,lm as j,lr as ee,md as te,nh as M,oh as N,oo as P,pm as F,qf as I,uc as L,uf as R,vi as z,xo as B}from"./index-DacqPN7W.js";import{n as V,r as H,t as U}from"./browser-url-BZwRHtdQ.js";import{r as ne}from"./panelChromeClasses-DF5L8TjO.js";import{a as W,i as G,n as K,r as re}from"./launcherRow-DKoO_khe.js";var q=e(s(),1),J=r(),ie=`bb.thread.browserHistory`,ae=`1`,oe=24,Y=o(d({url:t().min(1),title:t().min(1).nullable(),visitedAt:u().int().nonnegative()}).strict()),se=[],ce=v({parse:(e,t)=>{if(e===null)return t;try{let n=Y.safeParse(JSON.parse(e));return n.success?n.data:t}catch{return t}},serialize:e=>JSON.stringify(e)});function le(e){return`${ie}-${encodeURIComponent(e.trim())}-${ae}`}var ue=n(se),de=l(e=>a(le(e),se,ce,{getOnInit:!0}));function fe(e){return e!=null&&e.trim().length>0}function pe(e){let t=(0,J.c)(10),n;t[0]===e?n=t[1]:(n=fe(e)?de(e):ue,t[0]=e,t[1]=n);let[r,a]=i(n),o;t[2]===a?o=t[3]:(o=e=>{let{url:t,title:n}=e;t.length!==0&&a(e=>[{url:t,title:n,visitedAt:Date.now()},...e.filter(e=>e.url!==t)].slice(0,oe))},t[2]=a,t[3]=o);let s=o,c;t[4]===a?c=t[5]:(c=()=>{a(se)},t[4]=a,t[5]=c);let l=c,u;return t[6]!==l||t[7]!==r||t[8]!==s?(u={entries:r,recordVisit:s,clear:l},t[6]=l,t[7]=r,t[8]=s,t[9]=u):u=t[9],u}var X=e(c(),1);function me(e){return e===null?null:`${e.activeMatchOrdinal}/${e.matches}`}function Z(e){let t=(0,J.c)(9),{icon:n,label:r,disabled:i,onClick:a,shortcut:o}=e,s=o?`${r} (${o.label})`:r,c=o?.ariaKeyshortcuts,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=N(`flex shrink-0 items-center justify-center transition-colors hover:bg-state-hover hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-40`,h,f),t[0]=l):l=t[0];let u;t[1]===n?u=t[2]:(u=(0,X.jsx)(y,{name:n,"aria-hidden":!0}),t[1]=n,t[2]=u);let d;return t[3]!==s||t[4]!==i||t[5]!==a||t[6]!==c||t[7]!==u?(d=(0,X.jsx)(`button`,{type:`button`,onClick:a,disabled:i,"aria-label":s,"aria-keyshortcuts":c,className:l,children:u}),t[3]=s,t[4]=i,t[5]=a,t[6]=c,t[7]=u,t[8]=d):d=t[8],d}function he(e){let t=(0,J.c)(36),{inputRef:n,query:r,matches:i,onQueryChange:a,onFindNext:o,onFindPrevious:s,onClose:c,shortcut:l}=e,u;t[0]===i?u=t[1]:(u=me(i),t[0]=i,t[1]=u);let d=u,f=i!==null&&i.matches>0,p=i!==null&&i.matches===0,m;t[2]!==c||t[3]!==o||t[4]!==s?(m=e=>{if(!e.nativeEvent.isComposing){if(e.key===`Enter`){e.preventDefault(),e.shiftKey?s():o();return}e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),c())}},t[2]=c,t[3]=o,t[4]=s,t[5]=m):m=t[5];let h=m,g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=N(`flex h-9 shrink-0 items-center gap-1 border-b border-border/70 py-1 pl-2 pr-2`,ne),t[6]=g):g=t[6];let _;t[7]===a?_=t[8]:(_=e=>a(e.target.value),t[7]=a,t[8]=_);let v=l?`Find in page (${l.label})`:`Find in page`,y=l?.ariaKeyshortcuts,b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=N(`min-w-0 flex-1 bg-transparent text-foreground outline-none placeholder:text-muted-foreground`,I),t[9]=b):b=t[9];let x;t[10]!==h||t[11]!==n||t[12]!==r||t[13]!==_||t[14]!==v||t[15]!==y?(x=(0,X.jsx)(`input`,{ref:n,type:`text`,value:r,onChange:_,onKeyDown:h,placeholder:`Find in page`,"aria-label":v,"aria-keyshortcuts":y,autoComplete:`off`,spellCheck:!1,maxLength:j,className:b}),t[10]=h,t[11]=n,t[12]=r,t[13]=_,t[14]=v,t[15]=y,t[16]=x):x=t[16];let S;t[17]!==d||t[18]!==p?(S=d===null?null:(0,X.jsx)(`span`,{"data-testid":`browser-find-match-count`,"aria-live":`polite`,className:N(`shrink-0 tabular-nums`,p?`text-destructive`:`text-muted-foreground`,I),children:d}),t[17]=d,t[18]=p,t[19]=S):S=t[19];let C;t[20]!==x||t[21]!==S?(C=(0,X.jsxs)(`div`,{className:`flex h-7 min-w-0 flex-1 items-center gap-2 rounded-md border border-border/70 bg-background/70 px-2`,children:[x,S]}),t[20]=x,t[21]=S,t[22]=C):C=t[22];let w=!f,T;t[23]!==s||t[24]!==w?(T=(0,X.jsx)(Z,{icon:`ChevronUp`,label:`Previous match`,disabled:w,onClick:s}),t[23]=s,t[24]=w,t[25]=T):T=t[25];let E=!f,D;t[26]!==o||t[27]!==E?(D=(0,X.jsx)(Z,{icon:`ChevronDown`,label:`Next match`,disabled:E,onClick:o}),t[26]=o,t[27]=E,t[28]=D):D=t[28];let O;t[29]===c?O=t[30]:(O=(0,X.jsx)(Z,{icon:`X`,label:`Close find bar`,onClick:c}),t[29]=c,t[30]=O);let k;return t[31]!==C||t[32]!==T||t[33]!==D||t[34]!==O?(k=(0,X.jsxs)(`div`,{"data-testid":`browser-find-bar`,role:`search`,"aria-label":`Find in page`,className:g,children:[C,T,D,O]}),t[31]=C,t[32]=T,t[33]=D,t[34]=O,t[35]=k):k=t[35],k}function ge(e){let t=(0,J.c)(17),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({onFocus:r,onBlur:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=(0,q.useRef)(null),o=(0,q.useRef)(!1),s,c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{let e=()=>{o.current=!0,a.current=null},t=()=>{o.current=!1};return window.addEventListener(`blur`,e),window.addEventListener(`keydown`,t,!0),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`keydown`,t,!0)}},c=[],t[4]=s,t[5]=c):(s=t[4],c=t[5]),(0,q.useEffect)(s,c);let l,u,d;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(l=e=>{a.current=e.button===0&&(o.current||document.activeElement!==e.currentTarget)?{x:e.clientX,y:e.clientY}:null,o.current=!1},u=e=>{let t=a.current;t!==null&&Math.hypot(e.clientX-t.x,e.clientY-t.y)>4&&(a.current=null)},d=e=>{a.current!==null&&(a.current=null,e.preventDefault(),e.currentTarget.select())},t[6]=l,t[7]=u,t[8]=d):(l=t[6],u=t[7],d=t[8]);let f;t[9]===r?f=t[10]:(f=e=>{a.current===null&&!o.current&&e.currentTarget.select(),r?.(e)},t[9]=r,t[10]=f);let p;t[11]===n?p=t[12]:(p=e=>{a.current=null,n?.(e)},t[11]=n,t[12]=p);let m;return t[13]!==i||t[14]!==f||t[15]!==p?(m=(0,X.jsx)(`input`,{type:`text`,placeholder:`Enter a URL`,autoComplete:`off`,spellCheck:!1,...i,onMouseDown:l,onMouseMove:u,onMouseUp:d,onFocus:f,onBlur:p}),t[13]=i,t[14]=f,t[15]=p,t[16]=m):m=t[16],m}function _e(e){let t=(0,J.c)(27),{entry:n,now:r,onNavigate:i}=e,a;t[0]===n.url?a=t[1]:(a=U(n.url),t[0]=n.url,t[1]=a);let o=a,s;t[2]===n.title?s=t[3]:(s=n.title?.trim(),t[2]=n.title,t[3]=s);let c=s,l=c&&c.length>0?c:o,u;t[4]!==n.visitedAt||t[5]!==r?(u=b({timestamp:n.visitedAt,now:r}),t[4]=n.visitedAt,t[5]=r,t[6]=u):u=t[6];let d=u,f;t[7]!==n.url||t[8]!==i?(f=()=>i(n.url),t[7]=n.url,t[8]=i,t[9]=f):f=t[9];let p=n.url,m;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(m=N(K,`hover:bg-state-hover`),t[10]=m):m=t[10];let h;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,X.jsx)(`span`,{className:re,children:(0,X.jsx)(y,{name:`Browser`,className:g,"aria-hidden":!0})}),t[11]=h):h=t[11];let _;t[12]===l?_=t[13]:(_=(0,X.jsx)(`span`,{className:`truncate text-foreground`,children:l}),t[12]=l,t[13]=_);let v;t[14]!==o||t[15]!==l?(v=l===o?null:(0,X.jsx)(`span`,{className:`truncate font-mono text-muted-foreground [flex-shrink:9999]`,children:o}),t[14]=o,t[15]=l,t[16]=v):v=t[16];let x;t[17]!==_||t[18]!==v?(x=(0,X.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1.5`,children:[_,v]}),t[17]=_,t[18]=v,t[19]=x):x=t[19];let S;t[20]===d?S=t[21]:(S=(0,X.jsx)(G,{idle:d,isActive:!1}),t[20]=d,t[21]=S);let C;return t[22]!==n.url||t[23]!==x||t[24]!==S||t[25]!==f?(C=(0,X.jsxs)(`button`,{type:`button`,onClick:f,title:p,className:m,children:[h,x,S]}),t[22]=n.url,t[23]=x,t[24]=S,t[25]=f,t[26]=C):C=t[26],C}function ve(e){let t=(0,J.c)(17),{onNavigateInput:n,recent:r,onClearRecent:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=Date.now(),t[0]=a):a=t[0];let o=a;if(r.length===0)return null;let s=r.length,c;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=N(`rounded text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,I),t[1]=c):c=t[1];let l;t[2]===i?l=t[3]:(l=(0,X.jsx)(`button`,{type:`button`,onClick:i,"aria-label":`Clear recently visited`,className:c,children:`Clear`}),t[2]=i,t[3]=l);let u;t[4]!==r.length||t[5]!==l?(u=(0,X.jsx)(W,{label:`Recently visited`,count:s,action:l}),t[4]=r.length,t[5]=l,t[6]=u):u=t[6];let d;if(t[7]!==n||t[8]!==r){let e;t[10]===n?e=t[11]:(e=e=>(0,X.jsx)(`li`,{children:(0,X.jsx)(_e,{entry:e,now:o,onNavigate:n})},e.url),t[10]=n,t[11]=e),d=r.map(e),t[7]=n,t[8]=r,t[9]=d}else d=t[9];let f;t[12]===d?f=t[13]:(f=(0,X.jsx)(`ul`,{"aria-label":`Recently visited`,className:`flex flex-col gap-px`,children:d}),t[12]=d,t[13]=f);let p;return t[14]!==u||t[15]!==f?(p=(0,X.jsx)(`div`,{className:`flex h-full flex-col overflow-y-auto px-4 pb-6 pt-8`,children:(0,X.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col gap-6`,children:(0,X.jsxs)(`section`,{children:[u,f]})})}),t[14]=u,t[15]=f,t[16]=p):p=t[16],p}function ye({desktopBrowser:e,pluginId:t,tabId:n}){let r=e?.evaluate,i=e?.onPageMessage;return r===void 0||i===void 0?null:{async evaluate(e,i){let a=await r({tabId:n,expression:e,world:i?.world??`isolated`,channel:t});if(!a.ok)throw Error(a.error);return a.value},onMessage(e){return i(r=>{r.tabId===n&&r.channel===t&&e(r.data)})}}}function be(e){let t=(0,J.c)(18),{slot:n,threadId:r,tabId:i,url:a,isCompactViewport:o}=e,s;t[0]!==n.pluginId||t[1]!==i?(s=ye({desktopBrowser:D(),pluginId:n.pluginId,tabId:i}),t[0]=n.pluginId,t[1]=i,t[2]=s):s=t[2];let c=s,l=n.component,u=`${r}/${i}`,d;t[3]!==l||t[4]!==o||t[5]!==c||t[6]!==i||t[7]!==r||t[8]!==a?(d=(0,X.jsx)(l,{threadId:r,tabId:i,url:a,isCompactViewport:o,experimental_page:c}),t[3]=l,t[4]=o,t[5]=c,t[6]=i,t[7]=r,t[8]=a,t[9]=d):d=t[9];let f;t[10]!==n.title||t[11]!==d?(f=(0,X.jsx)(`span`,{role:`group`,"aria-label":n.title,className:`flex shrink-0 items-center`,children:d}),t[10]=n.title,t[11]=d,t[12]=f):f=t[12];let p;return t[13]!==n.id||t[14]!==n.pluginId||t[15]!==u||t[16]!==f?(p=(0,X.jsx)(C,{pluginId:n.pluginId,slotKind:`browserToolbarAction`,slotId:n.id,instanceId:u,crashFallback:null,children:f}),t[13]=n.id,t[14]=n.pluginId,t[15]=u,t[16]=f,t[17]=p):p=t[17],p}function xe(e){let t=(0,J.c)(11),{threadId:n,tabId:r,url:i,isCompactViewport:a}=e,{browserToolbarActions:o}=m();if(o.length===0)return null;let s;if(t[0]!==o||t[1]!==a||t[2]!==r||t[3]!==n||t[4]!==i){let e;t[6]!==a||t[7]!==r||t[8]!==n||t[9]!==i?(e=e=>(0,X.jsx)(be,{slot:e,threadId:n,tabId:r,url:i,isCompactViewport:a},`${e.pluginId}/${e.id}/${e.generation}/${n}/${r}`),t[6]=a,t[7]=r,t[8]=n,t[9]=i,t[10]=e):e=t[10],s=o.map(e),t[0]=o,t[1]=a,t[2]=r,t[3]=n,t[4]=i,t[5]=s}else s=t[5];return s}var Se={x:0,y:0,width:0,height:0};function Ce(e){return{x:Math.round(e.left),y:Math.round(e.top),width:Math.round(e.width),height:Math.round(e.height)}}function we(){return{width:window.innerWidth,height:window.innerHeight}}function Te(e){return F({bounds:Ce(e.element.getBoundingClientRect()),viewport:we()})}function Ee(e){return e===`flex-grow`||e===`flex-basis`}function De(e){return e.a.x===e.b.x&&e.a.y===e.b.y&&e.a.width===e.b.width&&e.a.height===e.b.height}function Oe(e){return z(e.url)?`Server not reachable`:e.errorText.includes(`ERR_BLOCKED_BY_CLIENT`)?`Page blocked`:`Page unavailable`}function ke(e){let t=(0,J.c)(48),{addressDraft:n,isEditing:r,state:i,currentUrl:a,addressInputRef:o,onAddressChange:s,onAddressFocus:c,onAddressBlur:l,onAddressKeyDown:u,onSubmit:d,onBack:f,onForward:p,onReloadOrStop:m,onOpenExternal:h,locationShortcut:g,reloadShortcut:v,pluginActions:b}=e,x=i?.isLoading??!1,S;t[0]===a?S=t[1]:(S=V(a),t[0]=a,t[1]=S);let C=S,w=r?n:a,T,E;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(T=N(`relative h-11 shrink-0 overflow-hidden focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring max-md:pointer-coarse:h-[52px]`,ne),E=N(`absolute inset-x-0 top-0 flex h-11 translate-y-0 items-center gap-1 py-1.5 pl-2 pr-4 opacity-100 max-md:pointer-coarse:h-[52px]`),t[2]=T,t[3]=E):(T=t[2],E=t[3]);let D=!(i?.canGoBack??!1),O;t[4]!==f||t[5]!==D?(O=(0,X.jsx)(Z,{icon:`ChevronLeft`,label:`Go back`,disabled:D,onClick:f}),t[4]=f,t[5]=D,t[6]=O):O=t[6];let k=!(i?.canGoForward??!1),A;t[7]!==p||t[8]!==k?(A=(0,X.jsx)(Z,{icon:`ChevronRight`,label:`Go forward`,disabled:k,onClick:p}),t[7]=p,t[8]=k,t[9]=A):A=t[9];let j=x?`X`:`RotateCcw`,ee=x?`Stop loading`:`Reload`,te=x?null:v,M;t[10]!==m||t[11]!==te||t[12]!==j||t[13]!==ee?(M=(0,X.jsx)(Z,{icon:j,label:ee,shortcut:te,onClick:m}),t[10]=m,t[11]=te,t[12]=j,t[13]=ee,t[14]=M):M=t[14];let P;t[15]===C?P=t[16]:(P=C===`secure`?(0,X.jsx)(y,{name:`Lock`,className:N(_,`text-success`),"aria-label":`Secure connection`}):C===`insecure`?(0,X.jsx)(y,{name:`AlertTriangle`,className:N(_,`text-warning`),"aria-label":`Connection not secure`}):(0,X.jsx)(y,{name:`Search`,className:N(_,`text-muted-foreground`),"aria-hidden":!0}),t[15]=C,t[16]=P);let F;t[17]===s?F=t[18]:(F=e=>s(e.target.value),t[17]=s,t[18]=F);let L=g?`Address and search bar (${g.label})`:`Address and search bar`,R=g?.ariaKeyshortcuts,z;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(z=N(`min-w-0 flex-1 bg-transparent font-mono text-foreground outline-none placeholder:font-sans placeholder:text-muted-foreground`,I),t[19]=z):z=t[19];let B;t[20]!==o||t[21]!==w||t[22]!==l||t[23]!==c||t[24]!==u||t[25]!==F||t[26]!==L||t[27]!==R?(B=(0,X.jsx)(ge,{ref:o,value:w,onChange:F,onFocus:c,onBlur:l,onKeyDown:u,"aria-label":L,"aria-keyshortcuts":R,className:z}),t[20]=o,t[21]=w,t[22]=l,t[23]=c,t[24]=u,t[25]=F,t[26]=L,t[27]=R,t[28]=B):B=t[28];let H;t[29]!==P||t[30]!==B?(H=(0,X.jsxs)(`div`,{className:`flex h-8 items-center gap-2 rounded-full border border-border/70 bg-background/70 px-3 max-md:pointer-coarse:h-10`,children:[P,B]}),t[29]=P,t[30]=B,t[31]=H):H=t[31];let U;t[32]!==d||t[33]!==H?(U=(0,X.jsx)(`form`,{onSubmit:d,className:`min-w-0 flex-1`,children:H}),t[32]=d,t[33]=H,t[34]=U):U=t[34];let W=a.length===0,G;t[35]!==h||t[36]!==W?(G=(0,X.jsx)(Z,{icon:`ExternalLink`,label:`Open in external browser`,disabled:W,onClick:h}),t[35]=h,t[36]=W,t[37]=G):G=t[37];let K;t[38]===x?K=t[39]:(K=x?(0,X.jsx)(`span`,{className:`absolute inset-x-0 bottom-0 h-0.5 overflow-hidden`,children:(0,X.jsx)(`span`,{className:`block h-full w-1/3 animate-pulse bg-ring/70 motion-reduce:animate-none`})}):null,t[38]=x,t[39]=K);let re;return t[40]!==b||t[41]!==M||t[42]!==U||t[43]!==G||t[44]!==K||t[45]!==O||t[46]!==A?(re=(0,X.jsx)(`div`,{role:`region`,"aria-label":`Browser navigation`,tabIndex:-1,className:T,children:(0,X.jsxs)(`div`,{className:E,children:[O,A,M,U,b,G,K]})}),t[40]=b,t[41]=M,t[42]=U,t[43]=G,t[44]=K,t[45]=O,t[46]=A,t[47]=re):re=t[47],re}function Ae(){let e=(0,J.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,X.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 px-6 text-center`,children:[(0,X.jsx)(`span`,{className:`flex size-11 items-center justify-center rounded-lg border border-border bg-card text-muted-foreground`,children:(0,X.jsx)(y,{name:`Globe`,className:`size-6`,"aria-hidden":!0})}),(0,X.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:`Browser tabs need the desktop app`}),(0,X.jsx)(`p`,{className:N(`max-w-xs text-muted-foreground`,I),children:`The in-app web browser runs in the Moonlet desktop app. Open this thread there to browse the web.`})]}),e[0]=t):t=e[0],t}function je(e){let t=(0,J.c)(32),{errorText:n,onOpenExternal:r,onRetry:i,url:a}=e,o;t[0]===a?o=t[1]:(o=U(a),t[0]=a,t[1]=o);let s=o,c;t[2]!==n||t[3]!==a?(c=Oe({errorText:n,url:a}),t[2]=n,t[3]=a,t[4]=c):c=t[4];let l=c,u;t[5]!==s||t[6]!==a?(u=z(a)?`The browser could not reach ${s||`this local server`}. Start the server, then reload.`:`The browser could not load this page. Try reloading or opening it externally.`,t[5]=s,t[6]=a,t[7]=u):u=t[7];let d=u,f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,X.jsx)(`span`,{className:`flex size-11 items-center justify-center rounded-lg border border-border bg-surface-recessed text-muted-foreground`,children:(0,X.jsx)(y,{name:`Globe`,className:`size-6`,"aria-hidden":!0})}),t[8]=f):f=t[8];let p;t[9]===l?p=t[10]:(p=(0,X.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:l}),t[9]=l,t[10]=p);let m;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(m=N(`mt-1 text-muted-foreground`,I),t[11]=m):m=t[11];let h;t[12]===d?h=t[13]:(h=(0,X.jsx)(`p`,{className:m,children:d}),t[12]=d,t[13]=h);let g;t[14]!==p||t[15]!==h?(g=(0,X.jsxs)(`div`,{children:[p,h]}),t[14]=p,t[15]=h,t[16]=g):g=t[16];let _;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,X.jsx)(y,{name:`RotateCcw`,className:`size-3.5`,"aria-hidden":!0}),t[17]=_):_=t[17];let v;t[18]===i?v=t[19]:(v=(0,X.jsxs)(`button`,{type:`button`,onClick:i,className:`inline-flex h-8 items-center gap-1.5 rounded-md border border-border bg-background px-2.5 text-xs font-medium text-foreground transition-colors hover:bg-state-hover`,children:[_,`Reload`]}),t[18]=i,t[19]=v);let b;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,X.jsx)(y,{name:`ExternalLink`,className:`size-3.5`,"aria-hidden":!0}),t[20]=b):b=t[20];let x;t[21]===r?x=t[22]:(x=(0,X.jsxs)(`button`,{type:`button`,onClick:r,className:`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium text-muted-foreground transition-colors hover:bg-state-hover hover:text-foreground`,children:[b,`Open externally`]}),t[21]=r,t[22]=x);let S;t[23]!==v||t[24]!==x?(S=(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center justify-center gap-2 pt-1`,children:[v,x]}),t[23]=v,t[24]=x,t[25]=S):S=t[25];let C;t[26]===n?C=t[27]:(C=(0,X.jsx)(`p`,{className:`max-w-full truncate pt-1 font-mono text-[11px] text-subtle-foreground`,children:n}),t[26]=n,t[27]=C);let w;return t[28]!==S||t[29]!==C||t[30]!==g?(w=(0,X.jsx)(`div`,{className:`flex h-full flex-col items-center justify-center px-6 text-center`,children:(0,X.jsxs)(`div`,{className:`flex w-full max-w-sm flex-col items-center gap-3`,children:[f,g,S,C]})}),t[28]=S,t[29]=C,t[30]=g,t[31]=w):w=t[31],w}function Me({tabId:e,desktopTarget:t,existingOnly:n,initialUrl:r,addressFocusRequest:i,onAddressFocusRequestConsumed:a,canShowNativeBrowserView:o,canHandleBrowserCommands:s=o,onNativeFocus:c,visibilityCoordinator:l,environmentId:u,threadId:d,onUpdate:f,onOpenInNewTab:m}){let h=p(`browser.focusLocation`),g=p(`browser.reload`),_=p(`browser.find`),v=(0,q.useMemo)(()=>D(),[]),y=(0,q.useRef)(null),b=(0,q.useRef)(null),S=(0,q.useRef)(null),C=L(),A=T(),{entries:ee,recordVisit:te,clear:M}=pe(d),[N,F]=(0,q.useState)(null),[I,z]=(0,q.useState)(null);(0,q.useEffect)(()=>{let t=!0,n=!1;z(null);let r=n=>{t&&n.tabId===e&&n.threadId===d&&z(n.control)},i=v?.onControl?.(t=>{t.tabId!==e||t.threadId!==d||(n=!0,r(t))});return v?.getControl?.(e).then(e=>{e!==null&&!n&&r(e)}).catch(()=>void 0),()=>{t=!1,i?.()}},[v,e,d]);let[V,U]=(0,q.useState)(r),[ne,W]=(0,q.useState)(r),[G,K]=(0,q.useState)(!1),[re,J]=(0,q.useState)(!1),[ie,ae]=(0,q.useState)(!1),oe=(0,q.useRef)(!1);oe.current=ie;let[Y,se]=(0,q.useState)(``),[ce,le]=(0,q.useState)(null),[ue,de]=(0,q.useState)(null),fe=(0,q.useRef)(f),me=(0,q.useRef)(te);fe.current=f,me.current=te;let Z=(0,q.useRef)(r),ge=(0,q.useRef)(n),_e=(0,q.useRef)(t),[ye,be]=(0,q.useState)(null),Ce=ye!==null&&ye.environmentId===u&&ye.tabId===e&&ye.threadId===d,we=V.length>0,Oe=v?.focus!==void 0&&v.onFocus!==void 0&&v.setVisibleWithoutFocus!==void 0,Me=N?.errorText??null,Ne=Me!==null&&we,Pe=B(),Fe=(0,q.useRef)(null),Ie=(0,q.useCallback)(()=>{let e=y.current;return e===null?null:Te({element:e})},[]),Le=(0,q.useCallback)(t=>{v!==null&&(Fe.current=t,v.setBounds({tabId:e,bounds:t}))},[v,e]),Re=(0,q.useCallback)(({force:e})=>{let t=Ie();if(t===null)return;let n=Fe.current;!e&&n!==null&&De({a:n,b:t})||Le(t)},[Ie,Le]),ze=(0,q.useCallback)(()=>{Re({force:!0})},[Re]),Q=(0,q.useCallback)(()=>{Re({force:!1})},[Re]),Be=(0,q.useCallback)(()=>{let e=Ie();return Fe.current=e,e??Se},[Ie]);(0,q.useEffect)(()=>{if(v===null)return;let t=Be(),n=Z.current;O({environmentId:u,tabId:e,threadId:d});let r=_e.current,i=ge.current===!0&&(r===void 0||!k(e,r));v.attach({tabId:e,threadId:d,...i?{existingOnly:!0}:{},url:n,bounds:t,visible:!1}),be({environmentId:u,tabId:e,threadId:d});let a=null,o=v.onState(t=>{t.tabId===e&&(a!==null&&(a.url!==t.url||t.isLoading&&!a.isLoading)&&le(null),a=t,F(t),U(t.url),fe.current({tabId:e,url:t.url,title:t.title}),!t.isLoading&&t.url.length>0&&me.current({url:t.url,title:t.title}))}),s=v.onSnapshot?.(t=>{t.tabId===e&&de(t.dataUrl)}),c=v.onFindResult?.(t=>{t.tabId===e&&le({activeMatchOrdinal:t.activeMatchOrdinal,matches:t.matches})});return()=>{o(),s?.(),c?.(),oe.current&&v.stopFindInPage?.({tabId:e,action:`clearSelection`}),l?.release(e)}},[v,u,Be,l,e,d]),(0,q.useEffect)(()=>{let e=y.current;if(e===null||v===null)return;let t=new ResizeObserver(()=>{Q()});return t.observe(e),()=>{t.disconnect()}},[v,Q]),(0,q.useEffect)(()=>{if(v===null)return;let e=e=>{Ee(e.propertyName)&&Q()};return window.addEventListener(x,Q),window.addEventListener(`resize`,Q),document.addEventListener(`transitionend`,e,!0),document.addEventListener(`transitioncancel`,e,!0),()=>{window.removeEventListener(x,Q),window.removeEventListener(`resize`,Q),document.removeEventListener(`transitionend`,e,!0),document.removeEventListener(`transitioncancel`,e,!0)}},[v,Q]);let Ve=o&&(s||Oe)&&we&&!Ne&&Ce&&!Pe;(0,q.useLayoutEffect)(()=>{if(l!==null){if(Ve)return l.show(e,ze,{focus:!1}),()=>{l.hide(e)};l.hide(e)}},[l,e,Ve,ze]),(0,q.useLayoutEffect)(()=>{if(re){if(!o||!s||Ne||Pe){J(!1);return}Ve&&(J(!1),v?.focus?.(e))}},[re,o,s,Ne,Pe,Ve,v,e]),(0,q.useEffect)(()=>{if(!(v?.onFocus===void 0||c===void 0))return v.onFocus(t=>{t===e&&c()})},[v,c,e]),(0,q.useEffect)(()=>{if(i===null||i.tabId!==e)return;if(C){a?.(i);return}W(V),K(!0),b.current?.focus({preventScroll:!0});let t=requestAnimationFrame(()=>{b.current?.focus({preventScroll:!0}),a?.(i)});return()=>cancelAnimationFrame(t)},[i,V,C,a,e]);let He=(0,q.useCallback)(t=>{let n=H(t);n!==null&&(U(n),K(!1),b.current?.blur(),v?.navigate({tabId:e,url:n}),J(!0))},[v,e]),Ue=(0,q.useCallback)(e=>{e.preventDefault(),He(ne)},[ne,He]),We=(0,q.useCallback)(e=>{if(e.nativeEvent.isComposing)return;if(e.key===`Escape`){e.preventDefault(),e.stopPropagation(),W(V);let t=e.currentTarget;window.requestAnimationFrame(()=>{document.activeElement===t&&t.select()});return}if(m===null||e.key!==`Enter`||e.shiftKey||e.ctrlKey||!(w(P())?e.metaKey&&!e.altKey:e.altKey&&!e.metaKey))return;e.preventDefault();let t=H(ne);t!==null&&(W(V),K(!1),b.current?.blur(),m(t))},[ne,V,m]),Ge=(0,q.useCallback)(()=>{W(V),K(!0)},[V]),Ke=(0,q.useCallback)(()=>{if(N?.isLoading??!1){v?.stop(e);return}v?.reload(e)},[v,N?.isLoading,e]);E(`browser.focusLocation`,(0,q.useCallback)(()=>!s||v===null?!1:(W(V),K(!0),b.current?.focus({preventScroll:!0}),window.requestAnimationFrame(()=>{b.current?.focus({preventScroll:!0}),b.current?.select()}),!0),[s,V,v]),100);let qe=o&&v!==null&&v.findInPage!==void 0&&we,$=(0,q.useCallback)(t=>{v?.findInPage?.({tabId:e,...t})},[v,e]),Je=(0,q.useCallback)(()=>{v?.stopFindInPage?.({tabId:e,action:`clearSelection`}),le(null)},[v,e]),Ye=(0,q.useCallback)(()=>{S.current?.focus({preventScroll:!0}),window.requestAnimationFrame(()=>{S.current?.focus({preventScroll:!0}),S.current?.select()})},[]),Xe=(0,q.useCallback)(e=>{let t=e.slice(0,j);if(se(t),t.length===0){Je();return}$({text:t,forward:!0,newSession:!0})},[Je,$]),Ze=(0,q.useCallback)(()=>{Y.length!==0&&$({text:Y,forward:!0,newSession:!1})},[Y,$]),Qe=(0,q.useCallback)(()=>{Y.length!==0&&$({text:Y,forward:!1,newSession:!1})},[Y,$]),$e=(0,q.useCallback)(()=>{ae(!1),Je()},[Je]);E(`browser.find`,(0,q.useCallback)(()=>qe?(ae(!0),Y.length>0&&$({text:Y,forward:!0,newSession:!0}),Ye(),!0):!1,[qe,Y,Ye,$]),100),(0,q.useEffect)(()=>{ie&&!qe&&(ae(!1),Je())},[qe,Je,ie]),E(`browser.reload`,()=>!s||v===null||!we?!1:(v.reload(e),!0),100);let et=(0,q.useCallback)(()=>{R()?.openExternalUrl(V)},[V]);return v===null?(0,X.jsx)(Ae,{}):(0,X.jsxs)(`div`,{"data-app-browser":!0,className:`flex h-full min-h-0 flex-col`,children:[(0,X.jsx)(ke,{addressDraft:ne,isEditing:G,state:N,currentUrl:V,addressInputRef:b,onAddressChange:W,onAddressFocus:Ge,onAddressBlur:()=>K(!1),onAddressKeyDown:We,onSubmit:Ue,onBack:()=>{v.goBack(e)},onForward:()=>{v.goForward(e)},onReloadOrStop:Ke,onOpenExternal:et,locationShortcut:h,reloadShortcut:g,pluginActions:(0,X.jsx)(xe,{threadId:d,tabId:e,url:V,isCompactViewport:A})}),I===null?null:(0,X.jsxs)(`div`,{role:`status`,className:`flex shrink-0 items-center gap-3 border-b border-border bg-surface-recessed px-3 py-2 text-xs`,children:[(0,X.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,children:[I.controllerLabel,` is controlling this tab`]}),(0,X.jsx)(`button`,{type:`button`,className:`rounded px-2 py-1 hover:bg-state-hover`,onClick:()=>v.releaseControl?.(e),children:`Stop`}),(0,X.jsx)(`button`,{type:`button`,className:`rounded px-2 py-1 hover:bg-state-hover`,onClick:()=>{v.releaseControl?.(e),v.focus?.(e)},children:`Take over`})]}),ie?(0,X.jsx)(he,{inputRef:S,query:Y,matches:ce,onQueryChange:Xe,onFindNext:Ze,onFindPrevious:Qe,onClose:$e,shortcut:_}):null,(0,X.jsxs)(`div`,{ref:y,className:`relative min-h-0 flex-1`,children:[Ne?(0,X.jsx)(je,{errorText:Me,onOpenExternal:et,onRetry:Ke,url:V}):we&&!Pe?null:(0,X.jsx)(ve,{onNavigateInput:He,recent:ee,onClearRecent:M}),we&&ue!==null?(0,X.jsx)(`img`,{src:ue,alt:``,draggable:!1,className:`absolute inset-0 size-full`}):null]})]})}function Ne(e,t){return t===null?null:e.find(e=>e.id===t)??null}var Pe=4,Fe=32,Ie=2e3;function Le(e){return Math.min(250*2**(e-1),Ie)}function Re(e,t){if(e===void 0)return`open`;if(t.status===`pending`)return`pending`;let n=t.target;return n===null||n.hostId!==e.hostId?`unavailable`:n.instanceId===e.instanceId?`attach`:`check-saved-window`}function ze(e){let t=(0,J.c)(40),{browserTabs:n,activeBrowserTabId:r,addressFocusRequest:i,onAddressFocusRequestConsumed:a,environmentId:o,canShowNativeBrowserView:s,canHandleBrowserCommands:c,onNativeFocus:l,threadId:u,onUpdate:d,onOpenInNewTab:f}=e,p=i===void 0?null:i,m=c===void 0?s:c,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=D(),t[0]=h):h=t[0];let g=h,_;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(_=g===null?null:ee(g),t[1]=_):_=t[1];let v=_,y=Ne(n,r),b=y?.desktopTarget,x=b?.hostId,S;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(S=()=>g?.getTarget===void 0?{status:`ready`,target:null}:{status:`pending`},t[2]=S):S=t[2];let[C,w]=(0,q.useState)(S),[T,E]=(0,q.useState)(0),O=b===void 0?null:`${y?.id}:${T}:${b.hostId}:${b.instanceId}:${b.generation}`,[k,A]=(0,q.useState)(null),j;t[3]!==O||t[4]!==A?(j=()=>{let e=g?.getTarget?.bind(g);if(e===void 0)return;let t=!0,n=0,r,i=()=>{e().catch(Be).then(e=>{if(t){if(e!==null){w({status:`ready`,target:e});return}if(n+=1,n>=Pe&&w({status:`ready`,target:null}),n>=Fe){A(O);return}r=setTimeout(i,Le(n))}})};return i(),()=>{t=!1,clearTimeout(r)}},t[3]=O,t[4]=A,t[5]=j):j=t[5],(0,q.useEffect)(j,[g,x,b?.instanceId,b?.generation,O]);let M=Re(b,C),N=M===`check-saved-window`?O:null,[P,F]=(0,q.useState)(null),I=b?.instanceId,L;t[6]!==O||t[7]!==I||t[8]!==N||t[9]!==A||t[10]!==x?(L=()=>{if(N===null||x===void 0||I===void 0)return;let e=!0,t=0,n,r=()=>{te.experimental_desktopBrowsers.listInstances({hostId:x}).then(t=>{let{instances:n}=t;e&&F({key:N,status:n.some(e=>e.instanceId===I)?`live`:`gone`})},()=>{if(e){if(t+=1,t>=Pe&&F({key:N,status:`unknown`}),t>=Fe){A(O);return}n=setTimeout(r,Le(t))}})};return r(),()=>{e=!1,clearTimeout(n)}},t[6]=O,t[7]=I,t[8]=N,t[9]=A,t[10]=x,t[11]=L):L=t[11];let R;if(t[12]!==O||t[13]!==I||t[14]!==N||t[15]!==x?(R=[N,x,I,O],t[12]=O,t[13]=I,t[14]=N,t[15]=x,t[16]=R):R=t[16],(0,q.useEffect)(L,R),y===null)return null;let z=P?.key===N?P.status:null,B=O!==null&&k===O;if(M===`pending`||M===`check-saved-window`&&z===null){let e;return t[17]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(`div`,{className:`flex min-h-0 flex-1 bg-sidebar`}),t[17]=e):e=t[17],e}if(M===`unavailable`||M===`check-saved-window`&&z!==`gone`){let e;t[18]!==B||t[19]!==z||t[20]!==E?(e=B||z===`live`?()=>E(Q):null,t[18]=B,t[19]=z,t[20]=E,t[21]=e):e=t[21];let n=g===null?`desktop-required`:z===`live`?`other-window`:C.status===`ready`&&C.target!==null&&C.target.hostId!==b?.hostId?`other-computer`:B?`unreachable`:`reconnecting`,r;return t[22]!==y.url||t[23]!==n||t[24]!==e?(r=(0,X.jsx)(He,{url:y.url,onRetry:e,reason:n}),t[22]=y.url,t[23]=n,t[24]=e,t[25]=r):r=t[25],r}let V=M===`attach`?!0:void 0,H=p?.tabId===y.id?p:null,U;return t[26]!==y.id||t[27]!==y.url||t[28]!==m||t[29]!==s||t[30]!==o||t[31]!==a||t[32]!==l||t[33]!==f||t[34]!==d||t[35]!==H||t[36]!==V||t[37]!==b||t[38]!==u?(U=(0,X.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-sidebar`,children:(0,X.jsx)(Me,{tabId:y.id,desktopTarget:b,existingOnly:V,initialUrl:y.url,addressFocusRequest:H,onAddressFocusRequestConsumed:a,canShowNativeBrowserView:s,canHandleBrowserCommands:m,onNativeFocus:l,visibilityCoordinator:v,environmentId:o,threadId:u,onUpdate:d,onOpenInNewTab:f},y.id)}),t[26]=y.id,t[27]=y.url,t[28]=m,t[29]=s,t[30]=o,t[31]=a,t[32]=l,t[33]=f,t[34]=d,t[35]=H,t[36]=V,t[37]=b,t[38]=u,t[39]=U):U=t[39],U}function Q(e){return e+1}function Be(){return null}var Ve={"desktop-required":{title:`Browser tabs need the desktop app`,body:`This tab is open in the Moonlet desktop app.`},"other-window":{title:`This tab is open in another Moonlet window`,body:`Switch to that window to keep browsing.`},"other-computer":{title:`This tab is open on another computer`,body:`It was opened in Moonlet on a different computer.`},reconnecting:{title:`Reconnecting to this tab`,body:`The tab opens again as soon as Moonlet reconnects.`},unreachable:{title:`Can't reach this tab`,body:`Moonlet couldn't reconnect. Try again in a moment.`}};function He(e){let t=(0,J.c)(24),{url:n,reason:r,onRetry:i}=e,a=Ve[r],o;t[0]===n?o=t[1]:(o=URL.canParse(n)?new URL(n):null,t[0]=n,t[1]=o);let s=o,c=s?.protocol===`https:`||s?.protocol===`http:`,l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,X.jsx)(`span`,{className:`flex size-11 items-center justify-center rounded-lg border border-border bg-card text-muted-foreground`,children:(0,X.jsx)(y,{name:`Globe`,className:`size-6`,"aria-hidden":!0})}),t[2]=l):l=t[2];let u;t[3]===a.title?u=t[4]:(u=(0,X.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:a.title}),t[3]=a.title,t[4]=u);let d;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(d=N(`max-w-xs text-muted-foreground`,I),t[5]=d):d=t[5];let f;t[6]===a.body?f=t[7]:(f=(0,X.jsx)(`p`,{className:d,children:a.body}),t[6]=a.body,t[7]=f);let p;t[8]===n?p=t[9]:(p=n.length>0?(0,X.jsx)(`p`,{className:N(`max-w-full truncate font-mono text-muted-foreground select-text`,I),title:n,children:n}):null,t[8]=n,t[9]=p);let m;t[10]===i?m=t[11]:(m=i===null?null:(0,X.jsxs)(M,{type:`button`,variant:`outline`,size:`sm`,onClick:i,children:[(0,X.jsx)(y,{name:`RotateCcw`,"aria-hidden":!0}),`Try again`]}),t[10]=i,t[11]=m);let h;t[12]!==c||t[13]!==i||t[14]!==n?(h=n.length>0?(0,X.jsxs)(X.Fragment,{children:[c?(0,X.jsxs)(M,{type:`button`,variant:i===null?`outline`:`ghost`,size:`sm`,onClick:()=>A(n),children:[(0,X.jsx)(y,{name:`ExternalLink`,"aria-hidden":!0}),`Open in browser`]}):null,(0,X.jsxs)(M,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>{S(n,{successMessage:`Link copied`})},children:[(0,X.jsx)(y,{name:`Copy`,"aria-hidden":!0}),`Copy link`]})]}):null,t[12]=c,t[13]=i,t[14]=n,t[15]=h):h=t[15];let g;t[16]!==m||t[17]!==h?(g=(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center justify-center gap-2`,children:[m,h]}),t[16]=m,t[17]=h,t[18]=g):g=t[18];let _;return t[19]!==u||t[20]!==f||t[21]!==p||t[22]!==g?(_=(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center gap-3 bg-sidebar px-6 text-center`,children:[l,u,f,p,g]}),t[19]=u,t[20]=f,t[21]=p,t[22]=g,t[23]=_):_=t[23],_}export{ze as BrowserTabDeck};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Cr as t,Et as n,Or as r,St as i,bt as a,dr as o,mi as s,ni as c,t as l,vr as u,yr as d}from"./boot-vendor-BBLG7GwQ.js";import{$ as f,$a as p,Cp as m,Lf as h,Nf as g,Pf as _,Pu as v,Qm as y,Sa as b,Sn as x,Ta as S,Tr as C,W_ as w,Xf as T,Za as E,df as D,dr as O,fr as k,ft as A,lm as j,lr as ee,md as te,nh as M,oh as N,oo as P,pm as F,qf as I,uc as L,uf as R,vi as z,xo as B}from"./index-B_0TBqOi.js";import{n as V,r as H,t as U}from"./browser-url-CxrZuVov.js";import{r as ne}from"./panelChromeClasses-DF5L8TjO.js";import{a as W,i as G,n as K,r as re}from"./launcherRow-CP53NnO3.js";var q=e(s(),1),J=r(),ie=`bb.thread.browserHistory`,ae=`1`,oe=24,Y=o(d({url:t().min(1),title:t().min(1).nullable(),visitedAt:u().int().nonnegative()}).strict()),se=[],ce=v({parse:(e,t)=>{if(e===null)return t;try{let n=Y.safeParse(JSON.parse(e));return n.success?n.data:t}catch{return t}},serialize:e=>JSON.stringify(e)});function le(e){return`${ie}-${encodeURIComponent(e.trim())}-${ae}`}var ue=n(se),de=l(e=>a(le(e),se,ce,{getOnInit:!0}));function fe(e){return e!=null&&e.trim().length>0}function pe(e){let t=(0,J.c)(10),n;t[0]===e?n=t[1]:(n=fe(e)?de(e):ue,t[0]=e,t[1]=n);let[r,a]=i(n),o;t[2]===a?o=t[3]:(o=e=>{let{url:t,title:n}=e;t.length!==0&&a(e=>[{url:t,title:n,visitedAt:Date.now()},...e.filter(e=>e.url!==t)].slice(0,oe))},t[2]=a,t[3]=o);let s=o,c;t[4]===a?c=t[5]:(c=()=>{a(se)},t[4]=a,t[5]=c);let l=c,u;return t[6]!==l||t[7]!==r||t[8]!==s?(u={entries:r,recordVisit:s,clear:l},t[6]=l,t[7]=r,t[8]=s,t[9]=u):u=t[9],u}var X=e(c(),1);function me(e){return e===null?null:`${e.activeMatchOrdinal}/${e.matches}`}function Z(e){let t=(0,J.c)(9),{icon:n,label:r,disabled:i,onClick:a,shortcut:o}=e,s=o?`${r} (${o.label})`:r,c=o?.ariaKeyshortcuts,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=N(`flex shrink-0 items-center justify-center transition-colors hover:bg-state-hover hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-40`,h,f),t[0]=l):l=t[0];let u;t[1]===n?u=t[2]:(u=(0,X.jsx)(y,{name:n,"aria-hidden":!0}),t[1]=n,t[2]=u);let d;return t[3]!==s||t[4]!==i||t[5]!==a||t[6]!==c||t[7]!==u?(d=(0,X.jsx)(`button`,{type:`button`,onClick:a,disabled:i,"aria-label":s,"aria-keyshortcuts":c,className:l,children:u}),t[3]=s,t[4]=i,t[5]=a,t[6]=c,t[7]=u,t[8]=d):d=t[8],d}function he(e){let t=(0,J.c)(36),{inputRef:n,query:r,matches:i,onQueryChange:a,onFindNext:o,onFindPrevious:s,onClose:c,shortcut:l}=e,u;t[0]===i?u=t[1]:(u=me(i),t[0]=i,t[1]=u);let d=u,f=i!==null&&i.matches>0,p=i!==null&&i.matches===0,m;t[2]!==c||t[3]!==o||t[4]!==s?(m=e=>{if(!e.nativeEvent.isComposing){if(e.key===`Enter`){e.preventDefault(),e.shiftKey?s():o();return}e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),c())}},t[2]=c,t[3]=o,t[4]=s,t[5]=m):m=t[5];let h=m,g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=N(`flex h-9 shrink-0 items-center gap-1 border-b border-border/70 py-1 pl-2 pr-2`,ne),t[6]=g):g=t[6];let _;t[7]===a?_=t[8]:(_=e=>a(e.target.value),t[7]=a,t[8]=_);let v=l?`Find in page (${l.label})`:`Find in page`,y=l?.ariaKeyshortcuts,b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=N(`min-w-0 flex-1 bg-transparent text-foreground outline-none placeholder:text-muted-foreground`,I),t[9]=b):b=t[9];let x;t[10]!==h||t[11]!==n||t[12]!==r||t[13]!==_||t[14]!==v||t[15]!==y?(x=(0,X.jsx)(`input`,{ref:n,type:`text`,value:r,onChange:_,onKeyDown:h,placeholder:`Find in page`,"aria-label":v,"aria-keyshortcuts":y,autoComplete:`off`,spellCheck:!1,maxLength:j,className:b}),t[10]=h,t[11]=n,t[12]=r,t[13]=_,t[14]=v,t[15]=y,t[16]=x):x=t[16];let S;t[17]!==d||t[18]!==p?(S=d===null?null:(0,X.jsx)(`span`,{"data-testid":`browser-find-match-count`,"aria-live":`polite`,className:N(`shrink-0 tabular-nums`,p?`text-destructive`:`text-muted-foreground`,I),children:d}),t[17]=d,t[18]=p,t[19]=S):S=t[19];let C;t[20]!==x||t[21]!==S?(C=(0,X.jsxs)(`div`,{className:`flex h-7 min-w-0 flex-1 items-center gap-2 rounded-md border border-border/70 bg-background/70 px-2`,children:[x,S]}),t[20]=x,t[21]=S,t[22]=C):C=t[22];let w=!f,T;t[23]!==s||t[24]!==w?(T=(0,X.jsx)(Z,{icon:`ChevronUp`,label:`Previous match`,disabled:w,onClick:s}),t[23]=s,t[24]=w,t[25]=T):T=t[25];let E=!f,D;t[26]!==o||t[27]!==E?(D=(0,X.jsx)(Z,{icon:`ChevronDown`,label:`Next match`,disabled:E,onClick:o}),t[26]=o,t[27]=E,t[28]=D):D=t[28];let O;t[29]===c?O=t[30]:(O=(0,X.jsx)(Z,{icon:`X`,label:`Close find bar`,onClick:c}),t[29]=c,t[30]=O);let k;return t[31]!==C||t[32]!==T||t[33]!==D||t[34]!==O?(k=(0,X.jsxs)(`div`,{"data-testid":`browser-find-bar`,role:`search`,"aria-label":`Find in page`,className:g,children:[C,T,D,O]}),t[31]=C,t[32]=T,t[33]=D,t[34]=O,t[35]=k):k=t[35],k}function ge(e){let t=(0,J.c)(17),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({onFocus:r,onBlur:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=(0,q.useRef)(null),o=(0,q.useRef)(!1),s,c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{let e=()=>{o.current=!0,a.current=null},t=()=>{o.current=!1};return window.addEventListener(`blur`,e),window.addEventListener(`keydown`,t,!0),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`keydown`,t,!0)}},c=[],t[4]=s,t[5]=c):(s=t[4],c=t[5]),(0,q.useEffect)(s,c);let l,u,d;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(l=e=>{a.current=e.button===0&&(o.current||document.activeElement!==e.currentTarget)?{x:e.clientX,y:e.clientY}:null,o.current=!1},u=e=>{let t=a.current;t!==null&&Math.hypot(e.clientX-t.x,e.clientY-t.y)>4&&(a.current=null)},d=e=>{a.current!==null&&(a.current=null,e.preventDefault(),e.currentTarget.select())},t[6]=l,t[7]=u,t[8]=d):(l=t[6],u=t[7],d=t[8]);let f;t[9]===r?f=t[10]:(f=e=>{a.current===null&&!o.current&&e.currentTarget.select(),r?.(e)},t[9]=r,t[10]=f);let p;t[11]===n?p=t[12]:(p=e=>{a.current=null,n?.(e)},t[11]=n,t[12]=p);let m;return t[13]!==i||t[14]!==f||t[15]!==p?(m=(0,X.jsx)(`input`,{type:`text`,placeholder:`Enter a URL`,autoComplete:`off`,spellCheck:!1,...i,onMouseDown:l,onMouseMove:u,onMouseUp:d,onFocus:f,onBlur:p}),t[13]=i,t[14]=f,t[15]=p,t[16]=m):m=t[16],m}function _e(e){let t=(0,J.c)(27),{entry:n,now:r,onNavigate:i}=e,a;t[0]===n.url?a=t[1]:(a=U(n.url),t[0]=n.url,t[1]=a);let o=a,s;t[2]===n.title?s=t[3]:(s=n.title?.trim(),t[2]=n.title,t[3]=s);let c=s,l=c&&c.length>0?c:o,u;t[4]!==n.visitedAt||t[5]!==r?(u=b({timestamp:n.visitedAt,now:r}),t[4]=n.visitedAt,t[5]=r,t[6]=u):u=t[6];let d=u,f;t[7]!==n.url||t[8]!==i?(f=()=>i(n.url),t[7]=n.url,t[8]=i,t[9]=f):f=t[9];let p=n.url,m;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(m=N(K,`hover:bg-state-hover`),t[10]=m):m=t[10];let h;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,X.jsx)(`span`,{className:re,children:(0,X.jsx)(y,{name:`Browser`,className:g,"aria-hidden":!0})}),t[11]=h):h=t[11];let _;t[12]===l?_=t[13]:(_=(0,X.jsx)(`span`,{className:`truncate text-foreground`,children:l}),t[12]=l,t[13]=_);let v;t[14]!==o||t[15]!==l?(v=l===o?null:(0,X.jsx)(`span`,{className:`truncate font-mono text-muted-foreground [flex-shrink:9999]`,children:o}),t[14]=o,t[15]=l,t[16]=v):v=t[16];let x;t[17]!==_||t[18]!==v?(x=(0,X.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1.5`,children:[_,v]}),t[17]=_,t[18]=v,t[19]=x):x=t[19];let S;t[20]===d?S=t[21]:(S=(0,X.jsx)(G,{idle:d,isActive:!1}),t[20]=d,t[21]=S);let C;return t[22]!==n.url||t[23]!==x||t[24]!==S||t[25]!==f?(C=(0,X.jsxs)(`button`,{type:`button`,onClick:f,title:p,className:m,children:[h,x,S]}),t[22]=n.url,t[23]=x,t[24]=S,t[25]=f,t[26]=C):C=t[26],C}function ve(e){let t=(0,J.c)(17),{onNavigateInput:n,recent:r,onClearRecent:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=Date.now(),t[0]=a):a=t[0];let o=a;if(r.length===0)return null;let s=r.length,c;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=N(`rounded text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,I),t[1]=c):c=t[1];let l;t[2]===i?l=t[3]:(l=(0,X.jsx)(`button`,{type:`button`,onClick:i,"aria-label":`Clear recently visited`,className:c,children:`Clear`}),t[2]=i,t[3]=l);let u;t[4]!==r.length||t[5]!==l?(u=(0,X.jsx)(W,{label:`Recently visited`,count:s,action:l}),t[4]=r.length,t[5]=l,t[6]=u):u=t[6];let d;if(t[7]!==n||t[8]!==r){let e;t[10]===n?e=t[11]:(e=e=>(0,X.jsx)(`li`,{children:(0,X.jsx)(_e,{entry:e,now:o,onNavigate:n})},e.url),t[10]=n,t[11]=e),d=r.map(e),t[7]=n,t[8]=r,t[9]=d}else d=t[9];let f;t[12]===d?f=t[13]:(f=(0,X.jsx)(`ul`,{"aria-label":`Recently visited`,className:`flex flex-col gap-px`,children:d}),t[12]=d,t[13]=f);let p;return t[14]!==u||t[15]!==f?(p=(0,X.jsx)(`div`,{className:`flex h-full flex-col overflow-y-auto px-4 pb-6 pt-8`,children:(0,X.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col gap-6`,children:(0,X.jsxs)(`section`,{children:[u,f]})})}),t[14]=u,t[15]=f,t[16]=p):p=t[16],p}function ye({desktopBrowser:e,pluginId:t,tabId:n}){let r=e?.evaluate,i=e?.onPageMessage;return r===void 0||i===void 0?null:{async evaluate(e,i){let a=await r({tabId:n,expression:e,world:i?.world??`isolated`,channel:t});if(!a.ok)throw Error(a.error);return a.value},onMessage(e){return i(r=>{r.tabId===n&&r.channel===t&&e(r.data)})}}}function be(e){let t=(0,J.c)(18),{slot:n,threadId:r,tabId:i,url:a,isCompactViewport:o}=e,s;t[0]!==n.pluginId||t[1]!==i?(s=ye({desktopBrowser:D(),pluginId:n.pluginId,tabId:i}),t[0]=n.pluginId,t[1]=i,t[2]=s):s=t[2];let c=s,l=n.component,u=`${r}/${i}`,d;t[3]!==l||t[4]!==o||t[5]!==c||t[6]!==i||t[7]!==r||t[8]!==a?(d=(0,X.jsx)(l,{threadId:r,tabId:i,url:a,isCompactViewport:o,experimental_page:c}),t[3]=l,t[4]=o,t[5]=c,t[6]=i,t[7]=r,t[8]=a,t[9]=d):d=t[9];let f;t[10]!==n.title||t[11]!==d?(f=(0,X.jsx)(`span`,{role:`group`,"aria-label":n.title,className:`flex shrink-0 items-center`,children:d}),t[10]=n.title,t[11]=d,t[12]=f):f=t[12];let p;return t[13]!==n.id||t[14]!==n.pluginId||t[15]!==u||t[16]!==f?(p=(0,X.jsx)(C,{pluginId:n.pluginId,slotKind:`browserToolbarAction`,slotId:n.id,instanceId:u,crashFallback:null,children:f}),t[13]=n.id,t[14]=n.pluginId,t[15]=u,t[16]=f,t[17]=p):p=t[17],p}function xe(e){let t=(0,J.c)(11),{threadId:n,tabId:r,url:i,isCompactViewport:a}=e,{browserToolbarActions:o}=m();if(o.length===0)return null;let s;if(t[0]!==o||t[1]!==a||t[2]!==r||t[3]!==n||t[4]!==i){let e;t[6]!==a||t[7]!==r||t[8]!==n||t[9]!==i?(e=e=>(0,X.jsx)(be,{slot:e,threadId:n,tabId:r,url:i,isCompactViewport:a},`${e.pluginId}/${e.id}/${e.generation}/${n}/${r}`),t[6]=a,t[7]=r,t[8]=n,t[9]=i,t[10]=e):e=t[10],s=o.map(e),t[0]=o,t[1]=a,t[2]=r,t[3]=n,t[4]=i,t[5]=s}else s=t[5];return s}var Se={x:0,y:0,width:0,height:0};function Ce(e){return{x:Math.round(e.left),y:Math.round(e.top),width:Math.round(e.width),height:Math.round(e.height)}}function we(){return{width:window.innerWidth,height:window.innerHeight}}function Te(e){return F({bounds:Ce(e.element.getBoundingClientRect()),viewport:we()})}function Ee(e){return e===`flex-grow`||e===`flex-basis`}function De(e){return e.a.x===e.b.x&&e.a.y===e.b.y&&e.a.width===e.b.width&&e.a.height===e.b.height}function Oe(e){return z(e.url)?`Server not reachable`:e.errorText.includes(`ERR_BLOCKED_BY_CLIENT`)?`Page blocked`:`Page unavailable`}function ke(e){let t=(0,J.c)(48),{addressDraft:n,isEditing:r,state:i,currentUrl:a,addressInputRef:o,onAddressChange:s,onAddressFocus:c,onAddressBlur:l,onAddressKeyDown:u,onSubmit:d,onBack:f,onForward:p,onReloadOrStop:m,onOpenExternal:h,locationShortcut:g,reloadShortcut:v,pluginActions:b}=e,x=i?.isLoading??!1,S;t[0]===a?S=t[1]:(S=V(a),t[0]=a,t[1]=S);let C=S,w=r?n:a,T,E;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(T=N(`relative h-11 shrink-0 overflow-hidden focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring max-md:pointer-coarse:h-[52px]`,ne),E=N(`absolute inset-x-0 top-0 flex h-11 translate-y-0 items-center gap-1 py-1.5 pl-2 pr-4 opacity-100 max-md:pointer-coarse:h-[52px]`),t[2]=T,t[3]=E):(T=t[2],E=t[3]);let D=!(i?.canGoBack??!1),O;t[4]!==f||t[5]!==D?(O=(0,X.jsx)(Z,{icon:`ChevronLeft`,label:`Go back`,disabled:D,onClick:f}),t[4]=f,t[5]=D,t[6]=O):O=t[6];let k=!(i?.canGoForward??!1),A;t[7]!==p||t[8]!==k?(A=(0,X.jsx)(Z,{icon:`ChevronRight`,label:`Go forward`,disabled:k,onClick:p}),t[7]=p,t[8]=k,t[9]=A):A=t[9];let j=x?`X`:`RotateCcw`,ee=x?`Stop loading`:`Reload`,te=x?null:v,M;t[10]!==m||t[11]!==te||t[12]!==j||t[13]!==ee?(M=(0,X.jsx)(Z,{icon:j,label:ee,shortcut:te,onClick:m}),t[10]=m,t[11]=te,t[12]=j,t[13]=ee,t[14]=M):M=t[14];let P;t[15]===C?P=t[16]:(P=C===`secure`?(0,X.jsx)(y,{name:`Lock`,className:N(_,`text-success`),"aria-label":`Secure connection`}):C===`insecure`?(0,X.jsx)(y,{name:`AlertTriangle`,className:N(_,`text-warning`),"aria-label":`Connection not secure`}):(0,X.jsx)(y,{name:`Search`,className:N(_,`text-muted-foreground`),"aria-hidden":!0}),t[15]=C,t[16]=P);let F;t[17]===s?F=t[18]:(F=e=>s(e.target.value),t[17]=s,t[18]=F);let L=g?`Address and search bar (${g.label})`:`Address and search bar`,R=g?.ariaKeyshortcuts,z;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(z=N(`min-w-0 flex-1 bg-transparent font-mono text-foreground outline-none placeholder:font-sans placeholder:text-muted-foreground`,I),t[19]=z):z=t[19];let B;t[20]!==o||t[21]!==w||t[22]!==l||t[23]!==c||t[24]!==u||t[25]!==F||t[26]!==L||t[27]!==R?(B=(0,X.jsx)(ge,{ref:o,value:w,onChange:F,onFocus:c,onBlur:l,onKeyDown:u,"aria-label":L,"aria-keyshortcuts":R,className:z}),t[20]=o,t[21]=w,t[22]=l,t[23]=c,t[24]=u,t[25]=F,t[26]=L,t[27]=R,t[28]=B):B=t[28];let H;t[29]!==P||t[30]!==B?(H=(0,X.jsxs)(`div`,{className:`flex h-8 items-center gap-2 rounded-full border border-border/70 bg-background/70 px-3 max-md:pointer-coarse:h-10`,children:[P,B]}),t[29]=P,t[30]=B,t[31]=H):H=t[31];let U;t[32]!==d||t[33]!==H?(U=(0,X.jsx)(`form`,{onSubmit:d,className:`min-w-0 flex-1`,children:H}),t[32]=d,t[33]=H,t[34]=U):U=t[34];let W=a.length===0,G;t[35]!==h||t[36]!==W?(G=(0,X.jsx)(Z,{icon:`ExternalLink`,label:`Open in external browser`,disabled:W,onClick:h}),t[35]=h,t[36]=W,t[37]=G):G=t[37];let K;t[38]===x?K=t[39]:(K=x?(0,X.jsx)(`span`,{className:`absolute inset-x-0 bottom-0 h-0.5 overflow-hidden`,children:(0,X.jsx)(`span`,{className:`block h-full w-1/3 animate-pulse bg-ring/70 motion-reduce:animate-none`})}):null,t[38]=x,t[39]=K);let re;return t[40]!==b||t[41]!==M||t[42]!==U||t[43]!==G||t[44]!==K||t[45]!==O||t[46]!==A?(re=(0,X.jsx)(`div`,{role:`region`,"aria-label":`Browser navigation`,tabIndex:-1,className:T,children:(0,X.jsxs)(`div`,{className:E,children:[O,A,M,U,b,G,K]})}),t[40]=b,t[41]=M,t[42]=U,t[43]=G,t[44]=K,t[45]=O,t[46]=A,t[47]=re):re=t[47],re}function Ae(){let e=(0,J.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,X.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 px-6 text-center`,children:[(0,X.jsx)(`span`,{className:`flex size-11 items-center justify-center rounded-lg border border-border bg-card text-muted-foreground`,children:(0,X.jsx)(y,{name:`Globe`,className:`size-6`,"aria-hidden":!0})}),(0,X.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:`Browser tabs need the desktop app`}),(0,X.jsx)(`p`,{className:N(`max-w-xs text-muted-foreground`,I),children:`The in-app web browser runs in the Moonlet desktop app. Open this thread there to browse the web.`})]}),e[0]=t):t=e[0],t}function je(e){let t=(0,J.c)(32),{errorText:n,onOpenExternal:r,onRetry:i,url:a}=e,o;t[0]===a?o=t[1]:(o=U(a),t[0]=a,t[1]=o);let s=o,c;t[2]!==n||t[3]!==a?(c=Oe({errorText:n,url:a}),t[2]=n,t[3]=a,t[4]=c):c=t[4];let l=c,u;t[5]!==s||t[6]!==a?(u=z(a)?`The browser could not reach ${s||`this local server`}. Start the server, then reload.`:`The browser could not load this page. Try reloading or opening it externally.`,t[5]=s,t[6]=a,t[7]=u):u=t[7];let d=u,f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,X.jsx)(`span`,{className:`flex size-11 items-center justify-center rounded-lg border border-border bg-surface-recessed text-muted-foreground`,children:(0,X.jsx)(y,{name:`Globe`,className:`size-6`,"aria-hidden":!0})}),t[8]=f):f=t[8];let p;t[9]===l?p=t[10]:(p=(0,X.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:l}),t[9]=l,t[10]=p);let m;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(m=N(`mt-1 text-muted-foreground`,I),t[11]=m):m=t[11];let h;t[12]===d?h=t[13]:(h=(0,X.jsx)(`p`,{className:m,children:d}),t[12]=d,t[13]=h);let g;t[14]!==p||t[15]!==h?(g=(0,X.jsxs)(`div`,{children:[p,h]}),t[14]=p,t[15]=h,t[16]=g):g=t[16];let _;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,X.jsx)(y,{name:`RotateCcw`,className:`size-3.5`,"aria-hidden":!0}),t[17]=_):_=t[17];let v;t[18]===i?v=t[19]:(v=(0,X.jsxs)(`button`,{type:`button`,onClick:i,className:`inline-flex h-8 items-center gap-1.5 rounded-md border border-border bg-background px-2.5 text-xs font-medium text-foreground transition-colors hover:bg-state-hover`,children:[_,`Reload`]}),t[18]=i,t[19]=v);let b;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,X.jsx)(y,{name:`ExternalLink`,className:`size-3.5`,"aria-hidden":!0}),t[20]=b):b=t[20];let x;t[21]===r?x=t[22]:(x=(0,X.jsxs)(`button`,{type:`button`,onClick:r,className:`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium text-muted-foreground transition-colors hover:bg-state-hover hover:text-foreground`,children:[b,`Open externally`]}),t[21]=r,t[22]=x);let S;t[23]!==v||t[24]!==x?(S=(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center justify-center gap-2 pt-1`,children:[v,x]}),t[23]=v,t[24]=x,t[25]=S):S=t[25];let C;t[26]===n?C=t[27]:(C=(0,X.jsx)(`p`,{className:`max-w-full truncate pt-1 font-mono text-[11px] text-subtle-foreground`,children:n}),t[26]=n,t[27]=C);let w;return t[28]!==S||t[29]!==C||t[30]!==g?(w=(0,X.jsx)(`div`,{className:`flex h-full flex-col items-center justify-center px-6 text-center`,children:(0,X.jsxs)(`div`,{className:`flex w-full max-w-sm flex-col items-center gap-3`,children:[f,g,S,C]})}),t[28]=S,t[29]=C,t[30]=g,t[31]=w):w=t[31],w}function Me({tabId:e,desktopTarget:t,existingOnly:n,initialUrl:r,addressFocusRequest:i,onAddressFocusRequestConsumed:a,canShowNativeBrowserView:o,canHandleBrowserCommands:s=o,onNativeFocus:c,visibilityCoordinator:l,environmentId:u,threadId:d,onUpdate:f,onOpenInNewTab:m}){let h=p(`browser.focusLocation`),g=p(`browser.reload`),_=p(`browser.find`),v=(0,q.useMemo)(()=>D(),[]),y=(0,q.useRef)(null),b=(0,q.useRef)(null),S=(0,q.useRef)(null),C=L(),A=T(),{entries:ee,recordVisit:te,clear:M}=pe(d),[N,F]=(0,q.useState)(null),[I,z]=(0,q.useState)(null);(0,q.useEffect)(()=>{let t=!0,n=!1;z(null);let r=n=>{t&&n.tabId===e&&n.threadId===d&&z(n.control)},i=v?.onControl?.(t=>{t.tabId!==e||t.threadId!==d||(n=!0,r(t))});return v?.getControl?.(e).then(e=>{e!==null&&!n&&r(e)}).catch(()=>void 0),()=>{t=!1,i?.()}},[v,e,d]);let[V,U]=(0,q.useState)(r),[ne,W]=(0,q.useState)(r),[G,K]=(0,q.useState)(!1),[re,J]=(0,q.useState)(!1),[ie,ae]=(0,q.useState)(!1),oe=(0,q.useRef)(!1);oe.current=ie;let[Y,se]=(0,q.useState)(``),[ce,le]=(0,q.useState)(null),[ue,de]=(0,q.useState)(null),fe=(0,q.useRef)(f),me=(0,q.useRef)(te);fe.current=f,me.current=te;let Z=(0,q.useRef)(r),ge=(0,q.useRef)(n),_e=(0,q.useRef)(t),[ye,be]=(0,q.useState)(null),Ce=ye!==null&&ye.environmentId===u&&ye.tabId===e&&ye.threadId===d,we=V.length>0,Oe=v?.focus!==void 0&&v.onFocus!==void 0&&v.setVisibleWithoutFocus!==void 0,Me=N?.errorText??null,Ne=Me!==null&&we,Pe=B(),Fe=(0,q.useRef)(null),Ie=(0,q.useCallback)(()=>{let e=y.current;return e===null?null:Te({element:e})},[]),Le=(0,q.useCallback)(t=>{v!==null&&(Fe.current=t,v.setBounds({tabId:e,bounds:t}))},[v,e]),Re=(0,q.useCallback)(({force:e})=>{let t=Ie();if(t===null)return;let n=Fe.current;!e&&n!==null&&De({a:n,b:t})||Le(t)},[Ie,Le]),ze=(0,q.useCallback)(()=>{Re({force:!0})},[Re]),Q=(0,q.useCallback)(()=>{Re({force:!1})},[Re]),Be=(0,q.useCallback)(()=>{let e=Ie();return Fe.current=e,e??Se},[Ie]);(0,q.useEffect)(()=>{if(v===null)return;let t=Be(),n=Z.current;O({environmentId:u,tabId:e,threadId:d});let r=_e.current,i=ge.current===!0&&(r===void 0||!k(e,r));v.attach({tabId:e,threadId:d,...i?{existingOnly:!0}:{},url:n,bounds:t,visible:!1}),be({environmentId:u,tabId:e,threadId:d});let a=null,o=v.onState(t=>{t.tabId===e&&(a!==null&&(a.url!==t.url||t.isLoading&&!a.isLoading)&&le(null),a=t,F(t),U(t.url),fe.current({tabId:e,url:t.url,title:t.title}),!t.isLoading&&t.url.length>0&&me.current({url:t.url,title:t.title}))}),s=v.onSnapshot?.(t=>{t.tabId===e&&de(t.dataUrl)}),c=v.onFindResult?.(t=>{t.tabId===e&&le({activeMatchOrdinal:t.activeMatchOrdinal,matches:t.matches})});return()=>{o(),s?.(),c?.(),oe.current&&v.stopFindInPage?.({tabId:e,action:`clearSelection`}),l?.release(e)}},[v,u,Be,l,e,d]),(0,q.useEffect)(()=>{let e=y.current;if(e===null||v===null)return;let t=new ResizeObserver(()=>{Q()});return t.observe(e),()=>{t.disconnect()}},[v,Q]),(0,q.useEffect)(()=>{if(v===null)return;let e=e=>{Ee(e.propertyName)&&Q()};return window.addEventListener(x,Q),window.addEventListener(`resize`,Q),document.addEventListener(`transitionend`,e,!0),document.addEventListener(`transitioncancel`,e,!0),()=>{window.removeEventListener(x,Q),window.removeEventListener(`resize`,Q),document.removeEventListener(`transitionend`,e,!0),document.removeEventListener(`transitioncancel`,e,!0)}},[v,Q]);let Ve=o&&(s||Oe)&&we&&!Ne&&Ce&&!Pe;(0,q.useLayoutEffect)(()=>{if(l!==null){if(Ve)return l.show(e,ze,{focus:!1}),()=>{l.hide(e)};l.hide(e)}},[l,e,Ve,ze]),(0,q.useLayoutEffect)(()=>{if(re){if(!o||!s||Ne||Pe){J(!1);return}Ve&&(J(!1),v?.focus?.(e))}},[re,o,s,Ne,Pe,Ve,v,e]),(0,q.useEffect)(()=>{if(!(v?.onFocus===void 0||c===void 0))return v.onFocus(t=>{t===e&&c()})},[v,c,e]),(0,q.useEffect)(()=>{if(i===null||i.tabId!==e)return;if(C){a?.(i);return}W(V),K(!0),b.current?.focus({preventScroll:!0});let t=requestAnimationFrame(()=>{b.current?.focus({preventScroll:!0}),a?.(i)});return()=>cancelAnimationFrame(t)},[i,V,C,a,e]);let He=(0,q.useCallback)(t=>{let n=H(t);n!==null&&(U(n),K(!1),b.current?.blur(),v?.navigate({tabId:e,url:n}),J(!0))},[v,e]),Ue=(0,q.useCallback)(e=>{e.preventDefault(),He(ne)},[ne,He]),We=(0,q.useCallback)(e=>{if(e.nativeEvent.isComposing)return;if(e.key===`Escape`){e.preventDefault(),e.stopPropagation(),W(V);let t=e.currentTarget;window.requestAnimationFrame(()=>{document.activeElement===t&&t.select()});return}if(m===null||e.key!==`Enter`||e.shiftKey||e.ctrlKey||!(w(P())?e.metaKey&&!e.altKey:e.altKey&&!e.metaKey))return;e.preventDefault();let t=H(ne);t!==null&&(W(V),K(!1),b.current?.blur(),m(t))},[ne,V,m]),Ge=(0,q.useCallback)(()=>{W(V),K(!0)},[V]),Ke=(0,q.useCallback)(()=>{if(N?.isLoading??!1){v?.stop(e);return}v?.reload(e)},[v,N?.isLoading,e]);E(`browser.focusLocation`,(0,q.useCallback)(()=>!s||v===null?!1:(W(V),K(!0),b.current?.focus({preventScroll:!0}),window.requestAnimationFrame(()=>{b.current?.focus({preventScroll:!0}),b.current?.select()}),!0),[s,V,v]),100);let qe=o&&v!==null&&v.findInPage!==void 0&&we,$=(0,q.useCallback)(t=>{v?.findInPage?.({tabId:e,...t})},[v,e]),Je=(0,q.useCallback)(()=>{v?.stopFindInPage?.({tabId:e,action:`clearSelection`}),le(null)},[v,e]),Ye=(0,q.useCallback)(()=>{S.current?.focus({preventScroll:!0}),window.requestAnimationFrame(()=>{S.current?.focus({preventScroll:!0}),S.current?.select()})},[]),Xe=(0,q.useCallback)(e=>{let t=e.slice(0,j);if(se(t),t.length===0){Je();return}$({text:t,forward:!0,newSession:!0})},[Je,$]),Ze=(0,q.useCallback)(()=>{Y.length!==0&&$({text:Y,forward:!0,newSession:!1})},[Y,$]),Qe=(0,q.useCallback)(()=>{Y.length!==0&&$({text:Y,forward:!1,newSession:!1})},[Y,$]),$e=(0,q.useCallback)(()=>{ae(!1),Je()},[Je]);E(`browser.find`,(0,q.useCallback)(()=>qe?(ae(!0),Y.length>0&&$({text:Y,forward:!0,newSession:!0}),Ye(),!0):!1,[qe,Y,Ye,$]),100),(0,q.useEffect)(()=>{ie&&!qe&&(ae(!1),Je())},[qe,Je,ie]),E(`browser.reload`,()=>!s||v===null||!we?!1:(v.reload(e),!0),100);let et=(0,q.useCallback)(()=>{R()?.openExternalUrl(V)},[V]);return v===null?(0,X.jsx)(Ae,{}):(0,X.jsxs)(`div`,{"data-app-browser":!0,className:`flex h-full min-h-0 flex-col`,children:[(0,X.jsx)(ke,{addressDraft:ne,isEditing:G,state:N,currentUrl:V,addressInputRef:b,onAddressChange:W,onAddressFocus:Ge,onAddressBlur:()=>K(!1),onAddressKeyDown:We,onSubmit:Ue,onBack:()=>{v.goBack(e)},onForward:()=>{v.goForward(e)},onReloadOrStop:Ke,onOpenExternal:et,locationShortcut:h,reloadShortcut:g,pluginActions:(0,X.jsx)(xe,{threadId:d,tabId:e,url:V,isCompactViewport:A})}),I===null?null:(0,X.jsxs)(`div`,{role:`status`,className:`flex shrink-0 items-center gap-3 border-b border-border bg-surface-recessed px-3 py-2 text-xs`,children:[(0,X.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,children:[I.controllerLabel,` is controlling this tab`]}),(0,X.jsx)(`button`,{type:`button`,className:`rounded px-2 py-1 hover:bg-state-hover`,onClick:()=>v.releaseControl?.(e),children:`Stop`}),(0,X.jsx)(`button`,{type:`button`,className:`rounded px-2 py-1 hover:bg-state-hover`,onClick:()=>{v.releaseControl?.(e),v.focus?.(e)},children:`Take over`})]}),ie?(0,X.jsx)(he,{inputRef:S,query:Y,matches:ce,onQueryChange:Xe,onFindNext:Ze,onFindPrevious:Qe,onClose:$e,shortcut:_}):null,(0,X.jsxs)(`div`,{ref:y,className:`relative min-h-0 flex-1`,children:[Ne?(0,X.jsx)(je,{errorText:Me,onOpenExternal:et,onRetry:Ke,url:V}):we&&!Pe?null:(0,X.jsx)(ve,{onNavigateInput:He,recent:ee,onClearRecent:M}),we&&ue!==null?(0,X.jsx)(`img`,{src:ue,alt:``,draggable:!1,className:`absolute inset-0 size-full`}):null]})]})}function Ne(e,t){return t===null?null:e.find(e=>e.id===t)??null}var Pe=4,Fe=32,Ie=2e3;function Le(e){return Math.min(250*2**(e-1),Ie)}function Re(e,t){if(e===void 0)return`open`;if(t.status===`pending`)return`pending`;let n=t.target;return n===null||n.hostId!==e.hostId?`unavailable`:n.instanceId===e.instanceId?`attach`:`check-saved-window`}function ze(e){let t=(0,J.c)(40),{browserTabs:n,activeBrowserTabId:r,addressFocusRequest:i,onAddressFocusRequestConsumed:a,environmentId:o,canShowNativeBrowserView:s,canHandleBrowserCommands:c,onNativeFocus:l,threadId:u,onUpdate:d,onOpenInNewTab:f}=e,p=i===void 0?null:i,m=c===void 0?s:c,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=D(),t[0]=h):h=t[0];let g=h,_;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(_=g===null?null:ee(g),t[1]=_):_=t[1];let v=_,y=Ne(n,r),b=y?.desktopTarget,x=b?.hostId,S;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(S=()=>g?.getTarget===void 0?{status:`ready`,target:null}:{status:`pending`},t[2]=S):S=t[2];let[C,w]=(0,q.useState)(S),[T,E]=(0,q.useState)(0),O=b===void 0?null:`${y?.id}:${T}:${b.hostId}:${b.instanceId}:${b.generation}`,[k,A]=(0,q.useState)(null),j;t[3]!==O||t[4]!==A?(j=()=>{let e=g?.getTarget?.bind(g);if(e===void 0)return;let t=!0,n=0,r,i=()=>{e().catch(Be).then(e=>{if(t){if(e!==null){w({status:`ready`,target:e});return}if(n+=1,n>=Pe&&w({status:`ready`,target:null}),n>=Fe){A(O);return}r=setTimeout(i,Le(n))}})};return i(),()=>{t=!1,clearTimeout(r)}},t[3]=O,t[4]=A,t[5]=j):j=t[5],(0,q.useEffect)(j,[g,x,b?.instanceId,b?.generation,O]);let M=Re(b,C),N=M===`check-saved-window`?O:null,[P,F]=(0,q.useState)(null),I=b?.instanceId,L;t[6]!==O||t[7]!==I||t[8]!==N||t[9]!==A||t[10]!==x?(L=()=>{if(N===null||x===void 0||I===void 0)return;let e=!0,t=0,n,r=()=>{te.experimental_desktopBrowsers.listInstances({hostId:x}).then(t=>{let{instances:n}=t;e&&F({key:N,status:n.some(e=>e.instanceId===I)?`live`:`gone`})},()=>{if(e){if(t+=1,t>=Pe&&F({key:N,status:`unknown`}),t>=Fe){A(O);return}n=setTimeout(r,Le(t))}})};return r(),()=>{e=!1,clearTimeout(n)}},t[6]=O,t[7]=I,t[8]=N,t[9]=A,t[10]=x,t[11]=L):L=t[11];let R;if(t[12]!==O||t[13]!==I||t[14]!==N||t[15]!==x?(R=[N,x,I,O],t[12]=O,t[13]=I,t[14]=N,t[15]=x,t[16]=R):R=t[16],(0,q.useEffect)(L,R),y===null)return null;let z=P?.key===N?P.status:null,B=O!==null&&k===O;if(M===`pending`||M===`check-saved-window`&&z===null){let e;return t[17]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(`div`,{className:`flex min-h-0 flex-1 bg-sidebar`}),t[17]=e):e=t[17],e}if(M===`unavailable`||M===`check-saved-window`&&z!==`gone`){let e;t[18]!==B||t[19]!==z||t[20]!==E?(e=B||z===`live`?()=>E(Q):null,t[18]=B,t[19]=z,t[20]=E,t[21]=e):e=t[21];let n=g===null?`desktop-required`:z===`live`?`other-window`:C.status===`ready`&&C.target!==null&&C.target.hostId!==b?.hostId?`other-computer`:B?`unreachable`:`reconnecting`,r;return t[22]!==y.url||t[23]!==n||t[24]!==e?(r=(0,X.jsx)(He,{url:y.url,onRetry:e,reason:n}),t[22]=y.url,t[23]=n,t[24]=e,t[25]=r):r=t[25],r}let V=M===`attach`?!0:void 0,H=p?.tabId===y.id?p:null,U;return t[26]!==y.id||t[27]!==y.url||t[28]!==m||t[29]!==s||t[30]!==o||t[31]!==a||t[32]!==l||t[33]!==f||t[34]!==d||t[35]!==H||t[36]!==V||t[37]!==b||t[38]!==u?(U=(0,X.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-sidebar`,children:(0,X.jsx)(Me,{tabId:y.id,desktopTarget:b,existingOnly:V,initialUrl:y.url,addressFocusRequest:H,onAddressFocusRequestConsumed:a,canShowNativeBrowserView:s,canHandleBrowserCommands:m,onNativeFocus:l,visibilityCoordinator:v,environmentId:o,threadId:u,onUpdate:d,onOpenInNewTab:f},y.id)}),t[26]=y.id,t[27]=y.url,t[28]=m,t[29]=s,t[30]=o,t[31]=a,t[32]=l,t[33]=f,t[34]=d,t[35]=H,t[36]=V,t[37]=b,t[38]=u,t[39]=U):U=t[39],U}function Q(e){return e+1}function Be(){return null}var Ve={"desktop-required":{title:`Browser tabs need the desktop app`,body:`This tab is open in the Moonlet desktop app.`},"other-window":{title:`This tab is open in another Moonlet window`,body:`Switch to that window to keep browsing.`},"other-computer":{title:`This tab is open on another computer`,body:`It was opened in Moonlet on a different computer.`},reconnecting:{title:`Reconnecting to this tab`,body:`The tab opens again as soon as Moonlet reconnects.`},unreachable:{title:`Can't reach this tab`,body:`Moonlet couldn't reconnect. Try again in a moment.`}};function He(e){let t=(0,J.c)(24),{url:n,reason:r,onRetry:i}=e,a=Ve[r],o;t[0]===n?o=t[1]:(o=URL.canParse(n)?new URL(n):null,t[0]=n,t[1]=o);let s=o,c=s?.protocol===`https:`||s?.protocol===`http:`,l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,X.jsx)(`span`,{className:`flex size-11 items-center justify-center rounded-lg border border-border bg-card text-muted-foreground`,children:(0,X.jsx)(y,{name:`Globe`,className:`size-6`,"aria-hidden":!0})}),t[2]=l):l=t[2];let u;t[3]===a.title?u=t[4]:(u=(0,X.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:a.title}),t[3]=a.title,t[4]=u);let d;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(d=N(`max-w-xs text-muted-foreground`,I),t[5]=d):d=t[5];let f;t[6]===a.body?f=t[7]:(f=(0,X.jsx)(`p`,{className:d,children:a.body}),t[6]=a.body,t[7]=f);let p;t[8]===n?p=t[9]:(p=n.length>0?(0,X.jsx)(`p`,{className:N(`max-w-full truncate font-mono text-muted-foreground select-text`,I),title:n,children:n}):null,t[8]=n,t[9]=p);let m;t[10]===i?m=t[11]:(m=i===null?null:(0,X.jsxs)(M,{type:`button`,variant:`outline`,size:`sm`,onClick:i,children:[(0,X.jsx)(y,{name:`RotateCcw`,"aria-hidden":!0}),`Try again`]}),t[10]=i,t[11]=m);let h;t[12]!==c||t[13]!==i||t[14]!==n?(h=n.length>0?(0,X.jsxs)(X.Fragment,{children:[c?(0,X.jsxs)(M,{type:`button`,variant:i===null?`outline`:`ghost`,size:`sm`,onClick:()=>A(n),children:[(0,X.jsx)(y,{name:`ExternalLink`,"aria-hidden":!0}),`Open in browser`]}):null,(0,X.jsxs)(M,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>{S(n,{successMessage:`Link copied`})},children:[(0,X.jsx)(y,{name:`Copy`,"aria-hidden":!0}),`Copy link`]})]}):null,t[12]=c,t[13]=i,t[14]=n,t[15]=h):h=t[15];let g;t[16]!==m||t[17]!==h?(g=(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center justify-center gap-2`,children:[m,h]}),t[16]=m,t[17]=h,t[18]=g):g=t[18];let _;return t[19]!==u||t[20]!==f||t[21]!==p||t[22]!==g?(_=(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center gap-3 bg-sidebar px-6 text-center`,children:[l,u,f,p,g]}),t[19]=u,t[20]=f,t[21]=p,t[22]=g,t[23]=_):_=t[23],_}export{ze as BrowserTabDeck};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Or as t,mi as n,ni as r,zr as i}from"./boot-vendor-BBLG7GwQ.js";import{Cp as a,Ha as o,Ja as s,Jp as c,Kp as l,Xf as u,oh as d}from"./index-DacqPN7W.js";import{i as f,n as p,r as m,t as h}from"./PaletteShell-BmMN3w8R.js";import{n as g}from"./settings-sections-DBK3hwuR.js";import{r as _,t as v}from"./settings-nav-aUt1tDMl.js";var y=e(n(),1),b=t();function x(){let e=typeof window>`u`?void 0:window.bbDesktop;return e?.getServerChoices&&e.onServerChoicesChange&&e.selectServer?{list:e.getServerChoices.bind(e),subscribe:e.onServerChoicesChange.bind(e),select:e.selectServer.bind(e)}:null}function ee(){let e=(0,b.c)(7),[t]=(0,y.useState)(x),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],e[0]=n):n=e[0];let[r,i]=(0,y.useState)(n),a,o;e[1]===t?(a=e[2],o=e[3]):(a=()=>{if(t===null)return;let e=!1,n=!1,r=t.subscribe(t=>{n=!0,e||i(t)});return t.list().then(t=>{!e&&!n&&i(t)}).catch(S),()=>{e=!0,r()}},o=[t],e[1]=t,e[2]=a,e[3]=o),(0,y.useEffect)(a,o);let s=t?.select,c;return e[4]!==r||e[5]!==s?(c={choices:r,select:s},e[4]=r,e[5]=s,e[6]=c):c=e[6],c}function S(){}var te=[`Threads`,`Actions`,`Settings`,`Plugins`];function ne(e){return[...e.sections.map(t=>({id:`settings:${t.id}`,bucket:`Settings`,group:`Settings`,title:`${t.label} settings`,shortcut:null,run:()=>e.navigate(g(t.id))})),...e.pluginEntries.map(t=>({id:`settings:plugin:${t.id}`,bucket:`Settings`,group:`Plugin settings`,title:`${t.label} settings`,shortcut:null,run:()=>e.navigate(l({pluginId:t.id}))}))]}function re(e){return e.panels.map(t=>({id:`plugin-page:${t.pluginId}/${t.id}`,bucket:`Plugins`,group:`Plugin pages`,title:t.title,shortcut:null,run:()=>e.navigate(c({pluginId:t.pluginId,path:t.path}))}))}var C=e(r(),1),ie=s(`thread.search`);function ae(e){let t=(0,b.c)(60),{actions:n,installedPlugins:r,recents:s,query:c,onQueryChange:l,onChoose:d}=e,m=i(),g=u(),x=(0,y.useId)(),S=(0,y.useId)(),[ae,w]=(0,y.useState)(0),T=a(),de=v(T.fileOpeners),E;t[0]!==r||t[1]!==T.settingsSections?(E=_({installedPlugins:r,settingsSections:T.settingsSections}),t[0]=r,t[1]=T.settingsSections,t[2]=E):E=t[2];let fe=E,D;t[3]===m?D=t[4]:(D=e=>void m(e),t[3]=m,t[4]=D);let O;t[5]!==fe||t[6]!==de||t[7]!==D?(O=ne({navigate:D,pluginEntries:fe,sections:de}),t[5]=fe,t[6]=de,t[7]=D,t[8]=O):O=t[8];let pe=O,k;t[9]===m?k=t[10]:(k=e=>void m(e),t[9]=m,t[10]=k);let A;t[11]!==T.navPanels||t[12]!==k?(A=re({navigate:k,panels:T.navPanels}),t[11]=T.navPanels,t[12]=k,t[13]=A):A=t[13];let me=A,{choices:he,select:j}=ee(),M;t[14]!==he||t[15]!==j?(M=j===void 0?[]:he.filter(le).map(e=>({id:`server:${e.id}`,title:`Switch to ${e.name}`,bucket:`Actions`,group:`Servers`,shortcut:null,run:()=>j(e.id)})),t[14]=he,t[15]=j,t[16]=M):M=t[16];let N=M,P;t[17]!==n||t[18]!==me||t[19]!==N||t[20]!==pe?(P=[...n,...pe,...me,...N],t[17]=n,t[18]=me,t[19]=N,t[20]=pe,t[21]=P):P=t[21];let ge=P,F;t[22]===c?F=t[23]:(F=c.startsWith(`>`)?c.slice(1):c,t[22]=c,t[23]=F);let I=F,L;t[24]!==ge||t[25]!==I||t[26]!==s?(L=f({actions:ge,query:I,recentIds:s}),t[24]=ge,t[25]=I,t[26]=s,t[27]=L):L=t[27];let R=L,z;t[28]===I?z=t[29]:(z=I.trim(),t[28]=I,t[29]=z);let B=z===``,V;if(t[30]!==R){let e=te.map(e=>({bucket:e,entries:R.filter(t=>t.action.bucket===e)})).filter(ce);V=e.map((t,n)=>({...t,startIndex:e.slice(0,n).reduce(se,0)})),t[30]=R,t[31]=V}else V=t[31];let H=V,U;t[32]!==B||t[33]!==R||t[34]!==H?(U=B?H.flatMap(oe):R,t[32]=B,t[33]=R,t[34]=H,t[35]=U):U=t[35];let W=U,G=W.length===0?-1:Math.min(ae,W.length-1),K=(0,y.useRef)(null),q=(0,y.useRef)(!1),J;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(J=()=>{q.current&&(q.current=!1,K.current?.querySelector(`[aria-selected="true"]`)?.scrollIntoView({block:`nearest`}))},t[36]=J):J=t[36];let Y;t[37]===G?Y=t[38]:(Y=[G],t[37]=G,t[38]=Y),(0,y.useEffect)(J,Y);let X;t[39]!==G||t[40]!==d||t[41]!==W?(X=e=>{if(!e.nativeEvent.isComposing&&W.length!==0){if(e.key===`ArrowDown`){e.preventDefault(),q.current=!0,w(e=>e+1>=W.length?0:e+1);return}if(e.key===`ArrowUp`){e.preventDefault(),q.current=!0,w(e=>e<=0?W.length-1:e-1);return}if(e.key===`Home`){e.preventDefault(),q.current=!0,w(0);return}if(e.key===`End`){e.preventDefault(),q.current=!0,w(W.length-1);return}if(e.key===`Enter`){let t=W[G];if(t===void 0)return;e.preventDefault(),d(t.action)}}},t[39]=G,t[40]=d,t[41]=W,t[42]=X):X=t[42];let _e=X,ve=G===-1?void 0:`${S}-${G}`,Z;t[43]===l?Z=t[44]:(Z=e=>{l(e),w(0),K.current!==null&&(K.current.scrollTop=0)},t[43]=l,t[44]=Z);let Q;t[45]!==G||t[46]!==g||t[47]!==B||t[48]!==d||t[49]!==S||t[50]!==H||t[51]!==W?(Q=!B&&W.length===0?(0,C.jsx)(`p`,{className:`px-3 py-4 text-center text-sm text-muted-foreground`,children:`No matching commands`}):B?H.map(e=>{let t=`${S}-${e.bucket.toLowerCase()}-label`;return(0,C.jsxs)(`div`,{role:`group`,"aria-labelledby":t,"data-palette-bucket":e.bucket,children:[(0,C.jsx)(`div`,{id:t,className:h,children:e.bucket}),e.entries.map((t,n)=>{let r=e.startIndex+n;return(0,C.jsx)(ue,{entry:t,id:`${S}-${r}`,isActive:r===G,isDrillIn:t.action.id===ie,showShortcut:!g,onActivate:()=>{w(r)},onSelect:()=>d(t.action)},t.action.id)})]},e.bucket)}):W.map((e,t)=>(0,C.jsx)(ue,{entry:e,id:`${S}-${t}`,isActive:t===G,isDrillIn:e.action.id===ie,showShortcut:!g,onActivate:()=>{w(t)},onSelect:()=>d(e.action)},e.action.id)),t[45]=G,t[46]=g,t[47]=B,t[48]=d,t[49]=S,t[50]=H,t[51]=W,t[52]=Q):Q=t[52];let $;return t[53]!==_e||t[54]!==x||t[55]!==c||t[56]!==ve||t[57]!==Z||t[58]!==Q?($=(0,C.jsx)(p,{activeDescendantId:ve,inputDescription:o.description,inputLabel:o.label,listId:x,listLabel:`Commands`,listRef:K,onInputChange:Z,onInputKeyDown:_e,placeholder:o.placeholder,value:c,children:Q}),t[53]=_e,t[54]=x,t[55]=c,t[56]=ve,t[57]=Z,t[58]=Q,t[59]=$):$=t[59],$}function oe(e){return e.entries}function se(e,t){return e+t.entries.length}function ce(e){return e.entries.length>0}function le(e){return!e.active}function ue(e){let t=(0,b.c)(19),{entry:n,id:r,isActive:i,isDrillIn:a,showShortcut:o,onActivate:s,onSelect:c}=e,l=n.action.group===`Browser`||n.action.id.startsWith(`plugin:`)?n.action.group:null,u=a?`${n.action.title}…`:n.action.title,f=o?n.action.shortcut:null,p=l!==null||f!==null||a,h=a?`drill-in`:`terminal`,g=i&&`bg-state-hover text-foreground`,_;t[0]===g?_=t[1]:(_=d(`flex min-h-8 w-full min-w-0 cursor-pointer items-center gap-3 rounded-md px-2 py-1.5 text-left text-sm outline-none`,g),t[0]=g,t[1]=_);let v;t[2]!==n.positions||t[3]!==u?(v=(0,C.jsx)(`span`,{className:`min-w-0 truncate`,children:(0,C.jsx)(w,{title:u,positions:n.positions})}),t[2]=n.positions,t[3]=u,t[4]=v):v=t[4];let y;t[5]!==p||t[6]!==a||t[7]!==l||t[8]!==f?(y=p?(0,C.jsxs)(`span`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:[l===null?null:(0,C.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:l}),f===null?null:(0,C.jsx)(m,{children:f.label}),a?(0,C.jsx)(`span`,{className:`sr-only`,children:`Opens a search view`}):null]}):null,t[5]=p,t[6]=a,t[7]=l,t[8]=f,t[9]=y):y=t[9];let x;return t[10]!==r||t[11]!==i||t[12]!==s||t[13]!==c||t[14]!==h||t[15]!==_||t[16]!==v||t[17]!==y?(x=(0,C.jsxs)(`div`,{id:r,role:`option`,"aria-selected":i,"data-palette-action-kind":h,className:_,onPointerMove:s,onClick:c,children:[v,y]}),t[10]=r,t[11]=i,t[12]=s,t[13]=c,t[14]=h,t[15]=_,t[16]=v,t[17]=y,t[18]=x):x=t[18],x}function w(e){let t=(0,b.c)(9),{title:n,positions:r}=e;if(r.length===0){let e;return t[0]===n?e=t[1]:(e=(0,C.jsx)(C.Fragment,{children:n}),t[0]=n,t[1]=e),e}let i;t[2]===r?i=t[3]:(i=new Set(r),t[2]=r,t[3]=i);let a=i,o;t[4]===n?o=t[5]:(o=[...n],t[4]=n,t[5]=o);let s;return t[6]!==a||t[7]!==o?(s=(0,C.jsx)(C.Fragment,{children:o.map((e,t)=>a.has(t)?(0,C.jsx)(`span`,{className:`font-semibold text-foreground`,children:e},t):(0,C.jsx)(`span`,{children:e},t))}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}export{ae as CommandPaletteBody};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Or as t,mi as n,ni as r,zr as i}from"./boot-vendor-BBLG7GwQ.js";import{Cp as a,Ha as o,Ja as s,Jp as c,Kp as l,Xf as u,oh as d}from"./index-B_0TBqOi.js";import{i as f,n as p,r as m,t as h}from"./PaletteShell-CPrD4CCm.js";import{n as g}from"./settings-sections-Bo9wVSLf.js";import{r as _,t as v}from"./settings-nav-6vCwAb5Y.js";var y=e(n(),1),b=t();function x(){let e=typeof window>`u`?void 0:window.bbDesktop;return e?.getServerChoices&&e.onServerChoicesChange&&e.selectServer?{list:e.getServerChoices.bind(e),subscribe:e.onServerChoicesChange.bind(e),select:e.selectServer.bind(e)}:null}function ee(){let e=(0,b.c)(7),[t]=(0,y.useState)(x),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],e[0]=n):n=e[0];let[r,i]=(0,y.useState)(n),a,o;e[1]===t?(a=e[2],o=e[3]):(a=()=>{if(t===null)return;let e=!1,n=!1,r=t.subscribe(t=>{n=!0,e||i(t)});return t.list().then(t=>{!e&&!n&&i(t)}).catch(S),()=>{e=!0,r()}},o=[t],e[1]=t,e[2]=a,e[3]=o),(0,y.useEffect)(a,o);let s=t?.select,c;return e[4]!==r||e[5]!==s?(c={choices:r,select:s},e[4]=r,e[5]=s,e[6]=c):c=e[6],c}function S(){}var te=[`Threads`,`Actions`,`Settings`,`Plugins`];function ne(e){return[...e.sections.map(t=>({id:`settings:${t.id}`,bucket:`Settings`,group:`Settings`,title:`${t.label} settings`,shortcut:null,run:()=>e.navigate(g(t.id))})),...e.pluginEntries.map(t=>({id:`settings:plugin:${t.id}`,bucket:`Settings`,group:`Plugin settings`,title:`${t.label} settings`,shortcut:null,run:()=>e.navigate(l({pluginId:t.id}))}))]}function re(e){return e.panels.map(t=>({id:`plugin-page:${t.pluginId}/${t.id}`,bucket:`Plugins`,group:`Plugin pages`,title:t.title,shortcut:null,run:()=>e.navigate(c({pluginId:t.pluginId,path:t.path}))}))}var C=e(r(),1),ie=s(`thread.search`);function ae(e){let t=(0,b.c)(60),{actions:n,installedPlugins:r,recents:s,query:c,onQueryChange:l,onChoose:d}=e,m=i(),g=u(),x=(0,y.useId)(),S=(0,y.useId)(),[ae,w]=(0,y.useState)(0),T=a(),de=v(T.fileOpeners),E;t[0]!==r||t[1]!==T.settingsSections?(E=_({installedPlugins:r,settingsSections:T.settingsSections}),t[0]=r,t[1]=T.settingsSections,t[2]=E):E=t[2];let fe=E,D;t[3]===m?D=t[4]:(D=e=>void m(e),t[3]=m,t[4]=D);let O;t[5]!==fe||t[6]!==de||t[7]!==D?(O=ne({navigate:D,pluginEntries:fe,sections:de}),t[5]=fe,t[6]=de,t[7]=D,t[8]=O):O=t[8];let pe=O,k;t[9]===m?k=t[10]:(k=e=>void m(e),t[9]=m,t[10]=k);let A;t[11]!==T.navPanels||t[12]!==k?(A=re({navigate:k,panels:T.navPanels}),t[11]=T.navPanels,t[12]=k,t[13]=A):A=t[13];let me=A,{choices:he,select:j}=ee(),M;t[14]!==he||t[15]!==j?(M=j===void 0?[]:he.filter(le).map(e=>({id:`server:${e.id}`,title:`Switch to ${e.name}`,bucket:`Actions`,group:`Servers`,shortcut:null,run:()=>j(e.id)})),t[14]=he,t[15]=j,t[16]=M):M=t[16];let N=M,P;t[17]!==n||t[18]!==me||t[19]!==N||t[20]!==pe?(P=[...n,...pe,...me,...N],t[17]=n,t[18]=me,t[19]=N,t[20]=pe,t[21]=P):P=t[21];let ge=P,F;t[22]===c?F=t[23]:(F=c.startsWith(`>`)?c.slice(1):c,t[22]=c,t[23]=F);let I=F,L;t[24]!==ge||t[25]!==I||t[26]!==s?(L=f({actions:ge,query:I,recentIds:s}),t[24]=ge,t[25]=I,t[26]=s,t[27]=L):L=t[27];let R=L,z;t[28]===I?z=t[29]:(z=I.trim(),t[28]=I,t[29]=z);let B=z===``,V;if(t[30]!==R){let e=te.map(e=>({bucket:e,entries:R.filter(t=>t.action.bucket===e)})).filter(ce);V=e.map((t,n)=>({...t,startIndex:e.slice(0,n).reduce(se,0)})),t[30]=R,t[31]=V}else V=t[31];let H=V,U;t[32]!==B||t[33]!==R||t[34]!==H?(U=B?H.flatMap(oe):R,t[32]=B,t[33]=R,t[34]=H,t[35]=U):U=t[35];let W=U,G=W.length===0?-1:Math.min(ae,W.length-1),K=(0,y.useRef)(null),q=(0,y.useRef)(!1),J;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(J=()=>{q.current&&(q.current=!1,K.current?.querySelector(`[aria-selected="true"]`)?.scrollIntoView({block:`nearest`}))},t[36]=J):J=t[36];let Y;t[37]===G?Y=t[38]:(Y=[G],t[37]=G,t[38]=Y),(0,y.useEffect)(J,Y);let X;t[39]!==G||t[40]!==d||t[41]!==W?(X=e=>{if(!e.nativeEvent.isComposing&&W.length!==0){if(e.key===`ArrowDown`){e.preventDefault(),q.current=!0,w(e=>e+1>=W.length?0:e+1);return}if(e.key===`ArrowUp`){e.preventDefault(),q.current=!0,w(e=>e<=0?W.length-1:e-1);return}if(e.key===`Home`){e.preventDefault(),q.current=!0,w(0);return}if(e.key===`End`){e.preventDefault(),q.current=!0,w(W.length-1);return}if(e.key===`Enter`){let t=W[G];if(t===void 0)return;e.preventDefault(),d(t.action)}}},t[39]=G,t[40]=d,t[41]=W,t[42]=X):X=t[42];let _e=X,ve=G===-1?void 0:`${S}-${G}`,Z;t[43]===l?Z=t[44]:(Z=e=>{l(e),w(0),K.current!==null&&(K.current.scrollTop=0)},t[43]=l,t[44]=Z);let Q;t[45]!==G||t[46]!==g||t[47]!==B||t[48]!==d||t[49]!==S||t[50]!==H||t[51]!==W?(Q=!B&&W.length===0?(0,C.jsx)(`p`,{className:`px-3 py-4 text-center text-sm text-muted-foreground`,children:`No matching commands`}):B?H.map(e=>{let t=`${S}-${e.bucket.toLowerCase()}-label`;return(0,C.jsxs)(`div`,{role:`group`,"aria-labelledby":t,"data-palette-bucket":e.bucket,children:[(0,C.jsx)(`div`,{id:t,className:h,children:e.bucket}),e.entries.map((t,n)=>{let r=e.startIndex+n;return(0,C.jsx)(ue,{entry:t,id:`${S}-${r}`,isActive:r===G,isDrillIn:t.action.id===ie,showShortcut:!g,onActivate:()=>{w(r)},onSelect:()=>d(t.action)},t.action.id)})]},e.bucket)}):W.map((e,t)=>(0,C.jsx)(ue,{entry:e,id:`${S}-${t}`,isActive:t===G,isDrillIn:e.action.id===ie,showShortcut:!g,onActivate:()=>{w(t)},onSelect:()=>d(e.action)},e.action.id)),t[45]=G,t[46]=g,t[47]=B,t[48]=d,t[49]=S,t[50]=H,t[51]=W,t[52]=Q):Q=t[52];let $;return t[53]!==_e||t[54]!==x||t[55]!==c||t[56]!==ve||t[57]!==Z||t[58]!==Q?($=(0,C.jsx)(p,{activeDescendantId:ve,inputDescription:o.description,inputLabel:o.label,listId:x,listLabel:`Commands`,listRef:K,onInputChange:Z,onInputKeyDown:_e,placeholder:o.placeholder,value:c,children:Q}),t[53]=_e,t[54]=x,t[55]=c,t[56]=ve,t[57]=Z,t[58]=Q,t[59]=$):$=t[59],$}function oe(e){return e.entries}function se(e,t){return e+t.entries.length}function ce(e){return e.entries.length>0}function le(e){return!e.active}function ue(e){let t=(0,b.c)(19),{entry:n,id:r,isActive:i,isDrillIn:a,showShortcut:o,onActivate:s,onSelect:c}=e,l=n.action.group===`Browser`||n.action.id.startsWith(`plugin:`)?n.action.group:null,u=a?`${n.action.title}…`:n.action.title,f=o?n.action.shortcut:null,p=l!==null||f!==null||a,h=a?`drill-in`:`terminal`,g=i&&`bg-state-hover text-foreground`,_;t[0]===g?_=t[1]:(_=d(`flex min-h-8 w-full min-w-0 cursor-pointer items-center gap-3 rounded-md px-2 py-1.5 text-left text-sm outline-none`,g),t[0]=g,t[1]=_);let v;t[2]!==n.positions||t[3]!==u?(v=(0,C.jsx)(`span`,{className:`min-w-0 truncate`,children:(0,C.jsx)(w,{title:u,positions:n.positions})}),t[2]=n.positions,t[3]=u,t[4]=v):v=t[4];let y;t[5]!==p||t[6]!==a||t[7]!==l||t[8]!==f?(y=p?(0,C.jsxs)(`span`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:[l===null?null:(0,C.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:l}),f===null?null:(0,C.jsx)(m,{children:f.label}),a?(0,C.jsx)(`span`,{className:`sr-only`,children:`Opens a search view`}):null]}):null,t[5]=p,t[6]=a,t[7]=l,t[8]=f,t[9]=y):y=t[9];let x;return t[10]!==r||t[11]!==i||t[12]!==s||t[13]!==c||t[14]!==h||t[15]!==_||t[16]!==v||t[17]!==y?(x=(0,C.jsxs)(`div`,{id:r,role:`option`,"aria-selected":i,"data-palette-action-kind":h,className:_,onPointerMove:s,onClick:c,children:[v,y]}),t[10]=r,t[11]=i,t[12]=s,t[13]=c,t[14]=h,t[15]=_,t[16]=v,t[17]=y,t[18]=x):x=t[18],x}function w(e){let t=(0,b.c)(9),{title:n,positions:r}=e;if(r.length===0){let e;return t[0]===n?e=t[1]:(e=(0,C.jsx)(C.Fragment,{children:n}),t[0]=n,t[1]=e),e}let i;t[2]===r?i=t[3]:(i=new Set(r),t[2]=r,t[3]=i);let a=i,o;t[4]===n?o=t[5]:(o=[...n],t[4]=n,t[5]=o);let s;return t[6]!==a||t[7]!==o?(s=(0,C.jsx)(C.Fragment,{children:o.map((e,t)=>a.has(t)?(0,C.jsx)(`span`,{className:`font-semibold text-foreground`,children:e},t):(0,C.jsx)(`span`,{children:e},t))}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}export{ae as CommandPaletteBody};