vibe64 0.1.39 → 0.1.41

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 (262) hide show
  1. package/bin/run.js +1955 -1855
  2. package/bin/server.js +136 -112
  3. package/bin/upgrade-state.js +5514 -5343
  4. package/dist/assets/GithubBrowserTabs-YvIe2BdE.js +1 -0
  5. package/dist/assets/LocalDatabaseServer-BWAvRlUl.css +1 -0
  6. package/dist/assets/LocalDatabaseServer-CVsGChHh.js +2 -0
  7. package/dist/assets/StudioErrorNotice-C_jbvp9V.js +1 -0
  8. package/dist/assets/VAlert-gwuhYlYb.js +1 -0
  9. package/dist/assets/VAutocomplete-D7Vk5wq_.js +1 -0
  10. package/dist/assets/VAvatar-DvRBcmqv.js +1 -0
  11. package/dist/assets/VBtn-BhVEwXLX.js +1 -0
  12. package/dist/assets/VCard-C3Hx769y.js +1 -0
  13. package/dist/assets/VCheckbox-DyCGSN0H.js +1 -0
  14. package/dist/assets/VCheckboxBtn-DCyuVH7W.css +1 -0
  15. package/dist/assets/VCheckboxBtn-DYcQU2Pn.js +1 -0
  16. package/dist/assets/VChip-VVdtjfq-.js +1 -0
  17. package/dist/assets/VDialog-CQDhjRiV.js +1 -0
  18. package/dist/assets/VDivider-Dq25WsKu.js +1 -0
  19. package/dist/assets/VExpansionPanels-C1y-myl5.js +1 -0
  20. package/dist/assets/VMenu-CDcBLYWR.js +1 -0
  21. package/dist/assets/VOverlay-Cp4rFk6g.js +1 -0
  22. package/dist/assets/VRadioGroup-CAjNZwF7.js +1 -0
  23. package/dist/assets/VRow-BskP28jR.js +1 -0
  24. package/dist/assets/VSelect-D3oLvCcB.js +2 -0
  25. package/dist/assets/VSheet-DxYEFfnM.js +1 -0
  26. package/dist/assets/VSkeletonLoader-Cync3lZZ.js +1 -0
  27. package/dist/assets/VSpacer-CgWOWvBh.js +1 -0
  28. package/dist/assets/VSwitch-BxGuGypi.js +1 -0
  29. package/dist/assets/VTextField-C0b_0cSa.js +1 -0
  30. package/dist/assets/VTextField-F6unyhrS.css +1 -0
  31. package/dist/assets/VTextarea-B7sZd1JY.js +1 -0
  32. package/dist/assets/{Vibe64AsyncModuleState-Do9EqX3S.js → Vibe64AsyncModuleState-syuPcpGx.js} +1 -1
  33. package/dist/assets/{Vibe64AuthSettingsButton-M44SSmZ9.css → Vibe64AuthSettingsButton-D2lltUhi.css} +1 -1
  34. package/dist/assets/Vibe64AuthSettingsButton-DLdfT68V.js +5 -0
  35. package/dist/assets/Vibe64CopyCommand-CYiZcy0d.js +1 -0
  36. package/dist/assets/Vibe64CopyCommand-ClbQLYZi.css +1 -0
  37. package/dist/assets/{Vibe64DashboardBackButton-BH_8j_VR.js → Vibe64DashboardBackButton-Go_MJuIK.js} +1 -1
  38. package/dist/assets/{Vibe64DashboardPageHeader-BXQR00HK.js → Vibe64DashboardPageHeader-BMrdRph6.js} +1 -1
  39. package/dist/assets/Vibe64DashboardPageHeader-CdlzsyKQ.css +1 -0
  40. package/dist/assets/Vibe64DashboardShell-DMPz6fIx.js +1 -0
  41. package/dist/assets/{Vibe64DatabaseWorkspace-CEml9BWn.js → Vibe64DatabaseWorkspace-BCEIOlSg.js} +3 -3
  42. package/dist/assets/{Vibe64DatabaseWorkspace-DPDMxhAW.css → Vibe64DatabaseWorkspace-DePBDUMy.css} +1 -1
  43. package/dist/assets/{Vibe64OutputControls-Co5YzwcK.css → Vibe64OutputControls-CeBzZPUT.css} +1 -1
  44. package/dist/assets/Vibe64OutputControls-DMoqL0VD.js +8 -0
  45. package/dist/assets/{Vibe64RepositoryWorkspace-obZFXkoG.js → Vibe64RepositoryWorkspace-BdwRwbxp.js} +2 -2
  46. package/dist/assets/{Vibe64RepositoryWorkspace-Agyt4O-V.css → Vibe64RepositoryWorkspace-Bw9W691N.css} +1 -1
  47. package/dist/assets/{Vibe64SessionFiles-CQzs6fee.js → Vibe64SessionFiles-ChJWUOqm.js} +4 -4
  48. package/dist/assets/Vibe64SessionFiles-DsPb8hOe.css +1 -0
  49. package/dist/assets/{Vibe64TemporaryAiFixAction-BiuIE9mC.js → Vibe64TemporaryAiFixAction-CIePbdW8.js} +1 -1
  50. package/dist/assets/{Vibe64UiStoryboardView-BhKRpL0N.js → Vibe64UiStoryboardView-Bp9STItF.js} +1 -1
  51. package/dist/assets/{Vibe64UnavailableSessions-Ca5nC7KH.js → Vibe64UnavailableSessions-JBgHzM-j.js} +1 -1
  52. package/dist/assets/{_sessionId_-CKkGH3Rx.js → _sessionId_-Bw0KfJeR.js} +1 -1
  53. package/dist/assets/{_sessionTool_-1V-z6Pbp.js → _sessionTool_-BV1AwpUx.js} +1 -1
  54. package/dist/assets/_slug_-CAmuBm-M.css +1 -0
  55. package/dist/assets/_slug_-q9prK_gX.js +25 -0
  56. package/dist/assets/{access-WlhPvPgy.js → access-C05Nkq6r.js} +1 -1
  57. package/dist/assets/app-D1CGY9Xm.js +1 -0
  58. package/dist/assets/assistantRouting-DeE8jvtE.js +3 -0
  59. package/dist/assets/{changes-CHJjrZAc.js → changes-D17XpgGz.js} +1 -1
  60. package/dist/assets/client-BxGiylrJ.js +2 -0
  61. package/dist/assets/client-C8jwAMY9.css +1 -0
  62. package/dist/assets/{conversation-B90ERX9h.js → conversation-DZW4-Wck.js} +2 -2
  63. package/dist/assets/{conversation-vxJGwmtW.css → conversation-TK6EmDk4.css} +1 -1
  64. package/dist/assets/{createSimpleFunctional-CZTGuNuR.js → createSimpleFunctional-zlXZooQW.js} +1 -1
  65. package/dist/assets/{dashboard-CuutW8iv.js → dashboard-BXXgeQ0Q.js} +1 -1
  66. package/dist/assets/definitions-SNvFDEFS.js +1 -0
  67. package/dist/assets/dialog-transition-D2vqGksQ.js +1 -0
  68. package/dist/assets/env-B5V1EC4M.css +1 -0
  69. package/dist/assets/env-sXAQqKWk.js +1 -0
  70. package/dist/assets/health-92hh8xXh.css +1 -0
  71. package/dist/assets/health-Cr34pf2p.js +1 -0
  72. package/dist/assets/{history-1_NU8azF.js → history-N1iRZaab.js} +1 -1
  73. package/dist/assets/incoming-Bdqo8z25.css +1 -0
  74. package/dist/assets/incoming-CNwZa_yD.js +2 -0
  75. package/dist/assets/{index-irlMYzLh.css → index-B17d4wpZ.css} +1 -1
  76. package/dist/assets/index-Mxalhei8.js +138 -0
  77. package/dist/assets/{integrations-BMzWQQpa.js → integrations-BmwFvHgZ.js} +10 -10
  78. package/dist/assets/integrations-Co8WvCiD.css +1 -0
  79. package/dist/assets/issues-BbiG7dCV.js +1 -0
  80. package/dist/assets/layout-B2Ap07aa.js +1 -0
  81. package/dist/assets/{lazy-NHSwD9FS.js → lazy-BjyT2XvW.js} +1 -1
  82. package/dist/assets/{learning-Bdi3XRS7.js → learning-CUCuuoHM.js} +1 -1
  83. package/dist/assets/mdi-Bt90Ns76.js +1 -0
  84. package/dist/assets/placement-CQy46H3H.js +1 -0
  85. package/dist/assets/publish-4r_4K5IY.js +3 -0
  86. package/dist/assets/publish-BFTsAMCF.css +1 -0
  87. package/dist/assets/pull-requests-BjwokcU0.css +1 -0
  88. package/dist/assets/pull-requests-DY9jg3cE.js +1 -0
  89. package/dist/assets/{repository-BL_2bgzC.js → repository-DhXdoMP6.js} +1 -1
  90. package/dist/assets/ripple-EFNA8EBu.js +11 -0
  91. package/dist/assets/rolldown-runtime-DBalRfVu.js +1 -0
  92. package/dist/assets/{session-BdhKrcX4.js → session-BGpiZThC.js} +1 -1
  93. package/dist/assets/{settings-1rpuL7eR.js → settings-Cj4u-76p.js} +1 -1
  94. package/dist/assets/settings-D8x4KUqV.css +1 -0
  95. package/dist/assets/shared-DZETtWRH.js +2 -0
  96. package/dist/assets/studioGateApi-BXHVBVEc.js +1 -0
  97. package/dist/assets/studioUrls-DpSS-0z1.js +1 -0
  98. package/dist/assets/useArchivedVibe64Sessions-BXNg8oES.js +1 -0
  99. package/dist/assets/useCommand-nWFczmJy.js +1 -0
  100. package/dist/assets/useEndpointResource-Ds8EDBZ2.js +1 -0
  101. package/dist/assets/useRealtimeEvent-DrOiU8lJ.js +1 -0
  102. package/dist/assets/{useUiFeedback-BPBF_0bp.js → useUiFeedback-CMwE4MLs.js} +1 -1
  103. package/dist/assets/useVibe64ConversationLog-C1xjhFtS.js +1 -0
  104. package/dist/assets/{useVibe64DatabaseTools-4o6S8eXq.js → useVibe64DatabaseTools-H6H-YJQX.js} +1 -1
  105. package/dist/assets/useVibe64ProjectScope-B5ogg6jd.js +1 -0
  106. package/dist/assets/useVibe64SessionData-CnDOFFHb.js +1 -0
  107. package/dist/assets/{useVibe64SessionSelection-BzL1y_Vq.js → useVibe64SessionSelection-J87nJ9p5.js} +1 -1
  108. package/dist/assets/{useVibe64SystemGraph-B4RmsC9Y.js → useVibe64SystemGraph-DbSfrYF8.js} +1 -1
  109. package/dist/assets/{useVibe64Terminal-Cg3idMcy.js → useVibe64Terminal-I7Sf6xMW.js} +1 -1
  110. package/dist/assets/vibe64ProjectScope.local-B06ABkhI.js +1 -0
  111. package/dist/assets/vibe64SavedEnvValues-B_QE9aAj.js +1 -0
  112. package/dist/assets/vibe64SessionFocus-CA-sk8Ri.css +1 -0
  113. package/dist/assets/vibe64SessionFocus-DlN8NwcE.js +1 -0
  114. package/dist/assets/{vibe64SessionInfo-BuBUdL-e.js → vibe64SessionInfo-B0uItVOK.js} +1 -1
  115. package/dist/assets/{vibe64SessionToolDefinitions-BJaJH5LR.js → vibe64SessionToolDefinitions-Dsn8WYmO.js} +1 -1
  116. package/dist/index.html +56 -46
  117. package/docs/colleague-usage/account-profile-and-appearance.md +1 -1
  118. package/docs/colleague-usage/{ai-accounts-and-routing.md → ai-accounts.md} +41 -114
  119. package/docs/colleague-usage/ai-model-setups.md +159 -0
  120. package/docs/colleague-usage/ai-onboarding.md +97 -22
  121. package/docs/colleague-usage/ai-personal-use.md +41 -0
  122. package/docs/colleague-usage/auto-workflow.md +8 -3
  123. package/docs/colleague-usage/codex-context-recovery.md +2 -1
  124. package/docs/colleague-usage/coding-agent-goals.md +7 -4
  125. package/docs/colleague-usage/coding-agents.md +8 -5
  126. package/docs/colleague-usage/colleague-watches.md +15 -4
  127. package/docs/colleague-usage/colleague.md +21 -5
  128. package/docs/colleague-usage/connected-contributions.md +13 -13
  129. package/docs/colleague-usage/connected-projects.md +2 -2
  130. package/docs/colleague-usage/conversation-context.md +1 -1
  131. package/docs/colleague-usage/dashboard-navigation.md +5 -3
  132. package/docs/colleague-usage/development-env.md +21 -4
  133. package/docs/colleague-usage/file-interfaces.md +1 -1
  134. package/docs/colleague-usage/github-work.md +8 -8
  135. package/docs/colleague-usage/health-checks.md +52 -18
  136. package/docs/colleague-usage/incoming-changes.md +3 -3
  137. package/docs/colleague-usage/integrations.md +5 -3
  138. package/docs/colleague-usage/learning-course-catalogue.md +3 -3
  139. package/docs/colleague-usage/learning-environment.md +78 -56
  140. package/docs/colleague-usage/learning-mode-ui.md +31 -19
  141. package/docs/colleague-usage/learning-practice-projects.md +15 -4
  142. package/docs/colleague-usage/learning-teacher-guide.md +10 -4
  143. package/docs/colleague-usage/learning-with-colleague.md +12 -8
  144. package/docs/colleague-usage/lesson-authoring.md +13 -13
  145. package/docs/colleague-usage/lesson-step-bar.md +47 -33
  146. package/docs/colleague-usage/main-chat-approvals.md +150 -0
  147. package/docs/colleague-usage/preview-browser-checks.md +5 -1
  148. package/docs/colleague-usage/preview-starting-application.md +10 -1
  149. package/docs/colleague-usage/project-language-tools.md +16 -2
  150. package/docs/colleague-usage/project-settings.md +1 -1
  151. package/docs/colleague-usage/project-setup.md +17 -7
  152. package/docs/colleague-usage/publishing.md +187 -0
  153. package/docs/colleague-usage/running-vibe64-on-your-computer.md +54 -6
  154. package/docs/colleague-usage/sessions.md +18 -10
  155. package/docs/colleague-usage/set-up-linux.md +254 -0
  156. package/docs/colleague-usage/set-up-macos.md +199 -0
  157. package/docs/colleague-usage/set-up-windows.md +76 -0
  158. package/docs/colleague-usage/starter-apps.md +23 -6
  159. package/docs/colleague-usage/teaching-content.md +2 -2
  160. package/docs/colleague-usage/team-ai-access.md +108 -0
  161. package/docs/colleague-usage/temporary-chats.md +9 -7
  162. package/docs/colleague-usage/workspace-preparation.md +50 -1
  163. package/docs/templates/learn-topic/README.md +3 -3
  164. package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.json +2 -1
  165. package/docs/training-content.md +37 -15
  166. package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
  167. package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
  168. package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
  169. package/node_modules/@jskit-ai/connector-google-calendar/package.json +1 -1
  170. package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
  171. package/node_modules/@jskit-ai/connectors-catalog/patterns/oauth-connection/PATTERN.md +25 -0
  172. package/node_modules/@jskit-ai/connectors-core/package.json +1 -1
  173. package/node_modules/@jskit-ai/http-runtime/package.json +1 -1
  174. package/node_modules/@jskit-ai/kernel/package.json +1 -1
  175. package/node_modules/@jskit-ai/realtime/package.json +1 -1
  176. package/node_modules/@jskit-ai/resource-core/package.json +1 -1
  177. package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
  178. package/node_modules/@jskit-ai/uploads-runtime/package.json +1 -1
  179. package/node_modules/@local/vibe64-accounts/package.json +2 -1
  180. package/node_modules/@local/vibe64-core/package.json +4 -1
  181. package/node_modules/@local/vibe64-execution/src/host/execHelper.js +82 -81
  182. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +83 -82
  183. package/node_modules/@local/vibe64-genesis/package.json +1 -0
  184. package/node_modules/@local/vibe64-genesis/src/server/agentSpecs.js +118 -68
  185. package/node_modules/@local/vibe64-genesis/src/server/index.js +536 -449
  186. package/node_modules/@local/vibe64-genesis/src/server/packaging.js +105 -0
  187. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +144 -145
  188. package/node_modules/@local/vibe64-packaging/package.json +26 -0
  189. package/node_modules/@local/vibe64-packaging/src/server/packers/capacitor/ShellIcons.java +112 -0
  190. package/node_modules/@local/vibe64-project/package.json +3 -1
  191. package/node_modules/@local/vibe64-publishing/package.json +12 -0
  192. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +7 -7
  193. package/node_modules/@local/vibe64-runtime/src/shared/assistantRoutingScores.json +25 -22
  194. package/node_modules/@local/vibe64-terminals/package.json +2 -1
  195. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1341 -1300
  196. package/node_modules/@local/vibe64-training/package.json +2 -1
  197. package/package.json +19 -15
  198. package/server.bundle.mjs +43109 -41089
  199. package/dist/assets/GithubBrowserTabs-C2NO5l8g.js +0 -1
  200. package/dist/assets/StudioErrorNotice-CSrUw1QV.js +0 -1
  201. package/dist/assets/VAlert-P256xaE0.js +0 -1
  202. package/dist/assets/VAutocomplete-BDb95qJX.js +0 -1
  203. package/dist/assets/VAvatar-DPzqDH4r.js +0 -1
  204. package/dist/assets/VBtn-B2MBK2DL.js +0 -1
  205. package/dist/assets/VCard-mXy0k4aS.js +0 -1
  206. package/dist/assets/VCheckbox-C7A1ZW4D.js +0 -1
  207. package/dist/assets/VChip-CcI-Oo2J.js +0 -1
  208. package/dist/assets/VDialog-Bu3EfKb1.js +0 -1
  209. package/dist/assets/VDivider-BMEqUoAB.js +0 -1
  210. package/dist/assets/VExpansionPanels-Dgjrop0V.js +0 -1
  211. package/dist/assets/VMenu-C_x18lwb.js +0 -1
  212. package/dist/assets/VOverlay-CeMZurIN.js +0 -1
  213. package/dist/assets/VRadioGroup-CUu2-KIP.js +0 -1
  214. package/dist/assets/VRow-Cpw7OHQV.js +0 -1
  215. package/dist/assets/VSelect-DL3HaA5m.js +0 -2
  216. package/dist/assets/VSheet-DZWsu0kL.js +0 -1
  217. package/dist/assets/VSkeletonLoader-CttxM1tw.js +0 -1
  218. package/dist/assets/VSpacer-Dhmsvk4t.js +0 -1
  219. package/dist/assets/VSwitch-BRHeDJkH.js +0 -1
  220. package/dist/assets/VTextField-BR2eZeFT.js +0 -1
  221. package/dist/assets/VTextField-BiatYyd3.css +0 -1
  222. package/dist/assets/VTextarea-DbqamXJd.js +0 -1
  223. package/dist/assets/Vibe64AuthSettingsButton-fY4ZiIFF.js +0 -5
  224. package/dist/assets/Vibe64DashboardPageHeader-Gm1IvlHx.css +0 -1
  225. package/dist/assets/Vibe64DashboardShell-BSq7uXEW.js +0 -1
  226. package/dist/assets/Vibe64OutputControls-_zhGX9ne.js +0 -8
  227. package/dist/assets/Vibe64SessionFiles-Bl8wJ5Sk.css +0 -1
  228. package/dist/assets/_slug_-BclonbST.js +0 -24
  229. package/dist/assets/_slug_-CZ1bxO9C.css +0 -1
  230. package/dist/assets/app-BNP_n_Tt.js +0 -1
  231. package/dist/assets/assistantRouting-D4XpXcEf.js +0 -3
  232. package/dist/assets/client-BWV84wi2.js +0 -2
  233. package/dist/assets/client-DGrP-2AJ.css +0 -1
  234. package/dist/assets/definitions-BrMvu6yV.js +0 -1
  235. package/dist/assets/env-BzRtyO0w.css +0 -1
  236. package/dist/assets/env-D3KQGvRe.js +0 -1
  237. package/dist/assets/health-BJvooRnJ.css +0 -1
  238. package/dist/assets/health-BhoO1d4h.js +0 -1
  239. package/dist/assets/incoming-DWDrmxyH.css +0 -1
  240. package/dist/assets/incoming-DzADFGqp.js +0 -2
  241. package/dist/assets/index-dNxr4Lg9.js +0 -138
  242. package/dist/assets/integrations-Cq1x-Di9.css +0 -1
  243. package/dist/assets/issues-Bywux4s7.js +0 -1
  244. package/dist/assets/mdi-CG9pWOSj.js +0 -1
  245. package/dist/assets/placement-BF-zIEhA.js +0 -1
  246. package/dist/assets/pull-requests-CdbhyFOv.css +0 -1
  247. package/dist/assets/pull-requests-ncmKT3sS.js +0 -1
  248. package/dist/assets/ripple-BVltMmyV.js +0 -11
  249. package/dist/assets/settings-BopLnpB0.css +0 -1
  250. package/dist/assets/shared-DpMvYJO3.js +0 -2
  251. package/dist/assets/studioGateApi-DcCqiD9V.js +0 -1
  252. package/dist/assets/studioUrls-DmMMIScP.js +0 -1
  253. package/dist/assets/useArchivedVibe64Sessions-_LB2XxEa.js +0 -1
  254. package/dist/assets/useCommand-Bqxb-naz.js +0 -1
  255. package/dist/assets/useEndpointResource-DWoQ2keu.js +0 -1
  256. package/dist/assets/useRealtimeEvent-Bwapstla.js +0 -1
  257. package/dist/assets/useVibe64ConversationLog-BqUI0S5n.js +0 -1
  258. package/dist/assets/useVibe64Learning-DyqXkpLw.js +0 -1
  259. package/dist/assets/useVibe64ProjectScope-Bp1ImZlz.js +0 -1
  260. package/dist/assets/useVibe64SessionData-B686lToN.js +0 -1
  261. package/dist/assets/vibe64SessionFocus-CqZNTvYF.js +0 -1
  262. package/dist/assets/vibe64SessionFocus-OJ2toBd9.css +0 -1
package/bin/server.js CHANGED
@@ -1,94 +1,95 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __vibe64CreateRequire } from 'node:module';const require=__vibe64CreateRequire(import.meta.url);
3
- import{existsSync as Eo,realpathSync as mt}from"node:fs";import{mkdir as So}from"node:fs/promises";import ft from"node:os";
4
- import R from"node:path";import Fe from"node:process";import le from"node:path";import{fileURLToPath as er}from"node:url";import tr from"node:child_process";
5
- import rr,{constants as or}from"node:fs/promises";import Rt from"node:path";import{promisify as Pt}from"node:util";import Tt from"node:child_process";import ee,{constants as Ie}from"node:fs/promises";import Pe from"node:process";import yt from"node:os";import Z from"node:fs";import _t from"node:fs";import ve from"node:fs";var K;function gt(){try{return ve.statSync("/.dockerenv"),!0}catch{return!1}}function ht(){try{return ve.
6
- readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function J(){return K===void 0&&(K=gt()||ht()),
7
- K}var X,wt=()=>{try{return _t.statSync("/run/.containerenv"),!0}catch{return!1}};function y(){return X===void 0&&(X=wt()||
8
- J()),X}var Re=()=>{if(Pe.platform!=="linux")return!1;if(yt.release().toLowerCase().includes("microsoft"))return!y();try{if(Z.readFileSync(
9
- "/proc/version","utf8").toLowerCase().includes("microsoft"))return!y()}catch{}return Z.existsSync("/proc/sys/fs/binfmt_m\
10
- isc/WSLInterop")||Z.existsSync("/run/WSL")?!y():!1},m=Pe.env.__IS_WSL_TEST__?Re:Re();import Te from"node:process";import{Buffer as bt}from"node:buffer";import{promisify as Et}from"node:util";import St from"node:child_process";var vt=Et(St.execFile),Q=()=>`${Te.env.SYSTEMROOT||Te.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.\
11
- 0\\powershell.exe`;var b=async(e,t={})=>{let{powerShellPath:r,...o}=t,n=b.encodeCommand(e);return vt(r??Q(),[...b.argumentsPrefix,n],{encoding:"\
3
+ import{existsSync as Ao,realpathSync as gt}from"node:fs";import{mkdir as Oo}from"node:fs/promises";import ht from"node:os";
4
+ import P from"node:path";import We from"node:process";import pe from"node:path";import{fileURLToPath as rr}from"node:url";import or from"node:child_process";
5
+ import nr,{constants as ir}from"node:fs/promises";import Tt from"node:path";import{promisify as At}from"node:util";import Ot from"node:child_process";import re,{constants as Ce}from"node:fs/promises";import Te from"node:process";import Et from"node:os";import ee from"node:fs";import yt from"node:fs";import Re from"node:fs";var X;function _t(){try{return Re.statSync("/.dockerenv"),!0}catch{return!1}}function wt(){try{return Re.
6
+ readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function Z(){return X===void 0&&(X=_t()||wt()),
7
+ X}var Q,bt=()=>{try{return yt.statSync("/run/.containerenv"),!0}catch{return!1}};function y(){return Q===void 0&&(Q=bt()||
8
+ Z()),Q}var Pe=()=>{if(Te.platform!=="linux")return!1;if(Et.release().toLowerCase().includes("microsoft"))return!y();try{if(ee.readFileSync(
9
+ "/proc/version","utf8").toLowerCase().includes("microsoft"))return!y()}catch{}return ee.existsSync("/proc/sys/fs/binfmt_\
10
+ misc/WSLInterop")||ee.existsSync("/run/WSL")?!y():!1},m=Te.env.__IS_WSL_TEST__?Pe:Pe();import Ae from"node:process";import{Buffer as St}from"node:buffer";import{promisify as vt}from"node:util";import Rt from"node:child_process";var Pt=vt(Rt.execFile),te=()=>`${Ae.env.SYSTEMROOT||Ae.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1\
11
+ .0\\powershell.exe`;var b=async(e,t={})=>{let{powerShellPath:r,...o}=t,n=b.encodeCommand(e);return Pt(r??te(),[...b.argumentsPrefix,n],{encoding:"\
12
12
  utf8",...o})};b.argumentsPrefix=["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"];b.encodeCommand=
13
- e=>bt.from(e,"utf16le").toString("base64");b.escapeArgument=e=>`'${String(e).replaceAll("'","''")}'`;function Ae(e){for(let t of e.split(`
13
+ e=>St.from(e,"utf16le").toString("base64");b.escapeArgument=e=>`'${String(e).replaceAll("'","''")}'`;function Oe(e){for(let t of e.split(`
14
14
  `)){if(/^\s*#/.test(t))continue;let r=/^\s*root\s*=\s*(?<mountPoint>"[^"]*"|'[^']*'|[^#]*)/.exec(t);if(r)return r.groups.
15
- mountPoint.trim().replaceAll(/^["']|["']$/g,"")}}var At=Pt(Tt.execFile),Ot=(()=>{let e="/mnt/",t;return async function(){if(t)return t;let r="/etc/wsl.conf",o=!1;try{await ee.
16
- access(r,Ie.F_OK),o=!0}catch{}if(!o)return e;let n=await ee.readFile(r,{encoding:"utf8"}),i=Ae(n);return i===void 0?e:(t=
17
- i,t=t.endsWith("/")?t:`${t}/`,t)}})(),It=async()=>`${await Ot()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`,
18
- M=m?It:Q,Oe,Ce=async()=>(Oe??=(async()=>{try{let e=await M();return await ee.access(e,Ie.X_OK),!0}catch{return!1}})(),Oe),
19
- xe=async()=>{let e=await M(),t=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,
20
- {stdout:r}=await b(t,{powerShellPath:e,cwd:Rt.dirname(e)});return r.trim()},Ct=e=>/^[a-z]+:\/\//i.test(e),Ne=async e=>{let t=Array.
21
- isArray(e),r=t?e:[e],o=[],n=[];for(let[a,p]of r.entries())Ct(p)||(o.push(a),n.push(p));let i=[...r];if(n.length>0)try{let{
22
- stdout:a}=await At("wslpath",["-aw",...n],{encoding:"utf8"}),p=a.split(/\r?\n/).filter(Boolean);for(let[c,s]of o.entries())
23
- i[s]=p[c]??r[s]}catch{}return t?i:i[0]};import ke from"node:process";import{Buffer as xt}from"node:buffer";import{promisify as Nt}from"node:util";import kt from"node:child_process";var jt=Nt(kt.execFile),$t=()=>`${ke.env.SYSTEMROOT||ke.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1\
24
- .0\\powershell.exe`;var je=["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"],$e=e=>xt.from(e,"utf16le").toString(
25
- "base64"),Mt=e=>`'${String(e).replaceAll(/['‘’‚‛]/g,t=>t+t)}'`,Me=e=>[...je,$e(e)],Lt=e=>({encoding:"utf8",...e,
26
- shell:!1}),f=async(e,t={})=>{let{powerShellPath:r,...o}=t;return jt(r??$t(),Me(e),Lt(o))};f.argumentsPrefix=je;f.encodeCommand=
27
- $e;f.escapeArgument=Mt;f.createArguments=Me;function E(e,t,r){let o=n=>Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0});return Object.defineProperty(e,
28
- t,{configurable:!0,enumerable:!0,get(){let n=r();return o(n),n},set(n){o(n)}}),e}import{promisify as Kt}from"node:util";import ae from"node:process";import{execFile as Jt}from"node:child_process";import{promisify as Dt}from"node:util";import Bt from"node:process";import{execFile as zt}from"node:child_process";var Ut=Dt(
29
- zt);async function te(){if(Bt.platform!=="darwin")throw new Error("macOS only");let{stdout:e}=await Ut("defaults",["read",
15
+ mountPoint.trim().replaceAll(/^["']|["']$/g,"")}}var It=At(Ot.execFile),Ct=(()=>{let e="/mnt/",t;return async function(){if(t)return t;let r="/etc/wsl.conf",o=!1;try{await re.
16
+ access(r,Ce.F_OK),o=!0}catch{}if(!o)return e;let n=await re.readFile(r,{encoding:"utf8"}),i=Oe(n);return i===void 0?e:(t=
17
+ i,t=t.endsWith("/")?t:`${t}/`,t)}})(),xt=async()=>`${await Ct()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`,
18
+ M=m?xt:te,Ie,xe=async()=>(Ie??=(async()=>{try{let e=await M();return await re.access(e,Ce.X_OK),!0}catch{return!1}})(),Ie),
19
+ Ne=async()=>{let e=await M(),t=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,
20
+ {stdout:r}=await b(t,{powerShellPath:e,cwd:Tt.dirname(e)});return r.trim()},Nt=e=>/^[a-z]+:\/\//i.test(e),ke=async e=>{let t=Array.
21
+ isArray(e),r=t?e:[e],o=[],n=[];for(let[a,p]of r.entries())Nt(p)||(o.push(a),n.push(p));let i=[...r];if(n.length>0)try{let{
22
+ stdout:a}=await It("wslpath",["-aw",...n],{encoding:"utf8"}),p=a.split(/\r?\n/).filter(Boolean);for(let[c,s]of o.entries())
23
+ i[s]=p[c]??r[s]}catch{}return t?i:i[0]};import je from"node:process";import{Buffer as kt}from"node:buffer";import{promisify as jt}from"node:util";import $t from"node:child_process";var Mt=jt($t.execFile),Lt=()=>`${je.env.SYSTEMROOT||je.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1\
24
+ .0\\powershell.exe`;var $e=["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"],Me=e=>kt.from(e,"utf16le").toString(
25
+ "base64"),Dt=e=>`'${String(e).replaceAll(/['‘’‚‛]/g,t=>t+t)}'`,Le=e=>[...$e,Me(e)],Bt=e=>({encoding:"utf8",...e,
26
+ shell:!1}),f=async(e,t={})=>{let{powerShellPath:r,...o}=t;return Mt(r??Lt(),Le(e),Bt(o))};f.argumentsPrefix=$e;f.encodeCommand=
27
+ Me;f.escapeArgument=Dt;f.createArguments=Le;function E(e,t,r){let o=n=>Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0});return Object.defineProperty(e,
28
+ t,{configurable:!0,enumerable:!0,get(){let n=r();return o(n),n},set(n){o(n)}}),e}import{promisify as Xt}from"node:util";import ce from"node:process";import{execFile as Zt}from"node:child_process";import{promisify as zt}from"node:util";import Ut from"node:process";import{execFile as Ht}from"node:child_process";var Gt=zt(
29
+ Ht);async function oe(){if(Ut.platform!=="darwin")throw new Error("macOS only");let{stdout:e}=await Gt("defaults",["read",
30
30
  "com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),r=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.
31
- exec(e)?.groups.id??"com.apple.Safari";return r==="com.apple.safari"?"com.apple.Safari":r}import Ht from"node:process";import{promisify as Gt}from"node:util";import{execFile as Vt,execFileSync as Pn}from"node:child_process";
32
- var Ft=Gt(Vt);async function Le(e,{humanReadableOutput:t=!0,signal:r}={}){if(Ht.platform!=="darwin")throw new Error("mac\
33
- OS only");let o=t?[]:["-ss"],n={};r&&(n.signal=r);let{stdout:i}=await Ft("osascript",["-e",e,o],n);return i.trim()}async function re(e){return Le(`tell application "Finder" to set app_path to application file id "${e}" as string
31
+ exec(e)?.groups.id??"com.apple.Safari";return r==="com.apple.safari"?"com.apple.Safari":r}import Vt from"node:process";import{promisify as Ft}from"node:util";import{execFile as Wt,execFileSync as xn}from"node:child_process";
32
+ var qt=Ft(Wt);async function De(e,{humanReadableOutput:t=!0,signal:r}={}){if(Vt.platform!=="darwin")throw new Error("mac\
33
+ OS only");let o=t?[]:["-ss"],n={};r&&(n.signal=r);let{stdout:i}=await qt("osascript",["-e",e,o],n);return i.trim()}async function ne(e){return De(`tell application "Finder" to set app_path to application file id "${e}" as string
34
34
  tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":C\
35
- ontents:Info.plist")`)}import De from"node:process";import{promisify as Wt}from"node:util";import{execFile as qt}from"node:child_process";var Yt=Wt(
36
- qt),L={MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},MSEdgeBHTML:{name:"Edge Beta",id:"com.microsoft.edge.beta"},MSEdgeDHTML:{
35
+ ontents:Info.plist")`)}import Be from"node:process";import{promisify as Yt}from"node:util";import{execFile as Kt}from"node:child_process";var Jt=Yt(
36
+ Kt),L={MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},MSEdgeBHTML:{name:"Edge Beta",id:"com.microsoft.edge.beta"},MSEdgeDHTML:{
37
37
  name:"Edge Dev",id:"com.microsoft.edge.dev"},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.ol\
38
38
  d"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},ChromeBHTML:{name:"Chrome Beta",id:"com.google.chrome.beta"},ChromeDHTML:{
39
39
  name:"Chrome Dev",id:"com.google.chrome.dev"},ChromiumHTM:{name:"Chromium",id:"org.chromium.Chromium"},BraveHTML:{name:"\
40
40
  Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveDHTML:{name:"Brave Dev",id:"\
41
41
  com.brave.Browser.dev"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"},FirefoxURL:{name:"Firefox",id:"\
42
42
  org.mozilla.firefox"},OperaStable:{name:"Opera",id:"com.operasoftware.Opera"},VivaldiHTM:{name:"Vivaldi",id:"com.vivaldi\
43
- .Vivaldi"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"}},ne=new Map(Object.entries(L)),oe=class extends Error{};
44
- async function ie(e=Yt){let t=`${De.env.SYSTEMROOT??De.env.windir??"C:\\Windows"}\\System32\\reg.exe`,{stdout:r}=await e(
43
+ .Vivaldi"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"}},ae=new Map(Object.entries(L)),ie=class extends Error{};
44
+ async function se(e=Jt){let t=`${Be.env.SYSTEMROOT??Be.env.windir??"C:\\Windows"}\\System32\\reg.exe`,{stdout:r}=await e(
45
45
  t,["QUERY"," HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice","/\
46
- v","ProgId"]),o=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(r);if(!o)throw new oe(`Cannot find Windows browser in stdout: ${JSON.
46
+ v","ProgId"]),o=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(r);if(!o)throw new ie(`Cannot find Windows browser in stdout: ${JSON.
47
47
  stringify(r)}`);let{id:n}=o.groups,i=n.lastIndexOf("."),a=n.lastIndexOf("-"),p=i===-1?void 0:n.slice(0,i),c=a===-1?void 0:
48
- n.slice(0,a);return L[n]??L[p]??L[c]??{name:n,id:n}}var Xt=Kt(Jt),Zt=e=>e.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,t=>t.toUpperCase());async function se(){if(ae.platform===
49
- "darwin"){let e=await te();return{name:await re(e),id:e}}if(ae.platform==="linux"){let{stdout:e}=await Xt("xdg-mime",["q\
50
- uery","default","x-scheme-handler/http"]),t=e.trim();return{name:Zt(t.replace(/.desktop$/,"").replace("-"," ")),id:t}}if(ae.
51
- platform==="win32")return ie();throw new Error("Only macOS, Linux, and Windows are supported")}import ce from"node:process";var Qt=!!(ce.env.SSH_CONNECTION||ce.env.SSH_CLIENT||ce.env.SSH_TTY),Be=Qt;var ze=new URL("./../node_modules/open/index.js",import.meta.url).href,D=Symbol("fallbackAttempt"),ue=ze?le.dirname(er(ze)):
52
- "",Ue=le.join(ue,"xdg-open"),{platform:S,arch:He}=Fe,Ge=async(e,t)=>{if(e.length===0)return;let r=[];for(let o of e)try{
48
+ n.slice(0,a);return L[n]??L[p]??L[c]??{name:n,id:n}}var Qt=Xt(Zt),er=e=>e.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,t=>t.toUpperCase());async function ue(){if(ce.platform===
49
+ "darwin"){let e=await oe();return{name:await ne(e),id:e}}if(ce.platform==="linux"){let{stdout:e}=await Qt("xdg-mime",["q\
50
+ uery","default","x-scheme-handler/http"]),t=e.trim();return{name:er(t.replace(/.desktop$/,"").replace("-"," ")),id:t}}if(ce.
51
+ platform==="win32")return se();throw new Error("Only macOS, Linux, and Windows are supported")}import le from"node:process";var tr=!!(le.env.SSH_CONNECTION||le.env.SSH_CLIENT||le.env.SSH_TTY),ze=tr;var Ue=new URL("./../node_modules/open/index.js",import.meta.url).href,D=Symbol("fallbackAttempt"),de=Ue?pe.dirname(rr(Ue)):
52
+ "",He=pe.join(de,"xdg-open"),{platform:S,arch:Ge}=We,Ve=async(e,t)=>{if(e.length===0)return;let r=[];for(let o of e)try{
53
53
  return await t(o)}catch(n){r.push(n)}throw new AggregateError(r,"Failed to open in all supported apps")},B=async e=>{e={
54
- wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...e};let t=e[D]===!0;if(delete e[D],Array.isArray(e.app))return Ge(
55
- e.app,s=>B({...e,app:s,[D]:!0}));let{name:r,arguments:o=[]}=e.app??{};if(o=[...o],Array.isArray(r))return Ge(r,s=>B({...e,
54
+ wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...e};let t=e[D]===!0;if(delete e[D],Array.isArray(e.app))return Ve(
55
+ e.app,s=>B({...e,app:s,[D]:!0}));let{name:r,arguments:o=[]}=e.app??{};if(o=[...o],Array.isArray(r))return Ve(r,s=>B({...e,
56
56
  app:{name:s,arguments:o},[D]:!0}));if(r==="browser"||r==="browserPrivate"){let s={"com.google.chrome":"chrome","google-c\
57
57
  hrome.desktop":"chrome","com.brave.browser":"brave","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.mic\
58
58
  rosoft.msedge":"edge","com.microsoft.edge":"edge","com.microsoft.edgemac":"edge","microsoft-edge.desktop":"edge","com.ap\
59
59
  ple.safari":"safari"},u={chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"},d;if(m){
60
- let P=await xe();d=ne.get(P)??{}}else d=await se();let Se=d.id?.toLowerCase();if(Object.hasOwn(s,Se)){let P=s[Se];if(r===
61
- "browserPrivate"){if(P==="safari")throw new Error("Safari doesn't support opening in private mode via command line");o.push(
62
- u[P])}return B({...e,app:{name:_[P],arguments:o}})}throw new Error(`${d.name} is not supported as a default browser`)}let n,
63
- i=[],a={},p=!1;if(m&&!y()&&!Be&&!r&&(p=await Ce()),S==="darwin")n="open",e.wait&&i.push("--wait-apps"),e.background&&i.push(
60
+ let T=await Ne();d=ae.get(T)??{}}else d=await ue();let ve=d.id?.toLowerCase();if(Object.hasOwn(s,ve)){let T=s[ve];if(r===
61
+ "browserPrivate"){if(T==="safari")throw new Error("Safari doesn't support opening in private mode via command line");o.push(
62
+ u[T])}return B({...e,app:{name:_[T],arguments:o}})}throw new Error(`${d.name} is not supported as a default browser`)}let n,
63
+ i=[],a={},p=!1;if(m&&!y()&&!ze&&!r&&(p=await xe()),S==="darwin")n="open",e.wait&&i.push("--wait-apps"),e.background&&i.push(
64
64
  "--background"),e.newInstance&&i.push("--new"),r&&i.push("-a",r);else if(S==="win32"||p){n=await M(),i.push(...f.argumentsPrefix),
65
- m||(a.windowsVerbatimArguments=!0),m&&e.target&&(e.target=await Ne(e.target));let s=["$ProgressPreference = 'SilentlyCon\
65
+ m||(a.windowsVerbatimArguments=!0),m&&e.target&&(e.target=await ke(e.target));let s=["$ProgressPreference = 'SilentlyCon\
66
66
  tinue';","Start"];e.wait&&s.push("-Wait"),r?(s.push(f.escapeArgument(r)),e.target&&o.push(e.target)):e.target&&s.push(f.
67
67
  escapeArgument(e.target)),o.length>0&&(o=o.map(u=>f.escapeArgument(u)),s.push("-ArgumentList",o.join(","))),e.target=f.encodeCommand(
68
- s.join(" ")),e.wait||(a.stdio="ignore"),m&&(a.cwd=le.dirname(n))}else{if(r)n=r;else{let s=!ue||ue==="/",u=!1;try{await rr.
69
- access(Ue,or.X_OK),u=!0}catch{}n=Fe.versions.electron??(S==="android"||s||!u)?"xdg-open":Ue}o.length>0&&i.push(...o),e.wait||
70
- (a.stdio="ignore",a.detached=!0)}S==="darwin"&&o.length>0&&i.push("--args",...o),e.target&&i.push(e.target);let c=tr.spawn(
68
+ s.join(" ")),e.wait||(a.stdio="ignore"),m&&(a.cwd=pe.dirname(n))}else{if(r)n=r;else{let s=!de||de==="/",u=!1;try{await nr.
69
+ access(He,ir.X_OK),u=!0}catch{}n=We.versions.electron??(S==="android"||s||!u)?"xdg-open":He}o.length>0&&i.push(...o),e.wait||
70
+ (a.stdio="ignore",a.detached=!0)}S==="darwin"&&o.length>0&&i.push("--args",...o),e.target&&i.push(e.target);let c=or.spawn(
71
71
  n,i,a);return e.wait?new Promise((s,u)=>{c.once("error",u),c.once("close",d=>{if(!e.allowNonzeroExitCode&&d!==0){u(new Error(
72
72
  `Exited with code ${d}`));return}s(c)})}):t||S==="win32"||p?new Promise((s,u)=>{c.once("error",u),c.once("spawn",()=>{c.
73
73
  once("close",d=>{if(c.off("error",u),t&&d!==0){u(new Error(`Exited with code ${d}`));return}c.unref(),s(c)})})}):(c.unref(),
74
- new Promise((s,u)=>{c.once("error",u),c.once("spawn",()=>{c.off("error",u),s(c)})}))},nr=(e,t)=>{if(typeof e!="string")throw new TypeError(
75
- "Expected a `target`");return B({...t,target:e})};function Ve(e){if(typeof e=="string"||Array.isArray(e))return e;let{[He]:t}=e;if(!t)throw new Error(`${He} is not suppor\
76
- ted`);return t}function T({[S]:e},{wsl:t}={}){if(t&&m)return Ve(t);if(!e)throw new Error(`${S} is not supported`);return Ve(
77
- e)}var _={browser:"browser",browserPrivate:"browserPrivate"};E(_,"chrome",()=>T({darwin:"google chrome",win32:"chrome",linux:[
74
+ new Promise((s,u)=>{c.once("error",u),c.once("spawn",()=>{c.off("error",u),s(c)})}))},ar=(e,t)=>{if(typeof e!="string")throw new TypeError(
75
+ "Expected a `target`");return B({...t,target:e})};function Fe(e){if(typeof e=="string"||Array.isArray(e))return e;let{[Ge]:t}=e;if(!t)throw new Error(`${Ge} is not suppor\
76
+ ted`);return t}function A({[S]:e},{wsl:t}={}){if(t&&m)return Fe(t);if(!e)throw new Error(`${S} is not supported`);return Fe(
77
+ e)}var _={browser:"browser",browserPrivate:"browserPrivate"};E(_,"chrome",()=>A({darwin:"google chrome",win32:"chrome",linux:[
78
78
  "google-chrome","google-chrome-stable","chromium","chromium-browser"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chr\
79
79
  ome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)\
80
- /Google/Chrome/Application/chrome.exe"]}}));E(_,"brave",()=>T({darwin:"brave browser",win32:"brave",linux:["brave-browse\
80
+ /Google/Chrome/Application/chrome.exe"]}}));E(_,"brave",()=>A({darwin:"brave browser",win32:"brave",linux:["brave-browse\
81
81
  r","brave"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe",x64:["/mnt/c/Prog\
82
82
  ram Files/BraveSoftware/Brave-Browser/Application/brave.exe","/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/App\
83
- lication/brave.exe"]}}));E(_,"firefox",()=>T({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,
84
- linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));E(_,"edge",()=>T({darwin:"microsoft edge",win32:"\
83
+ lication/brave.exe"]}}));E(_,"firefox",()=>A({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,
84
+ linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));E(_,"edge",()=>A({darwin:"microsoft edge",win32:"\
85
85
  msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedg\
86
- e.exe"}));E(_,"safari",()=>T({darwin:"Safari"}));var de=nr;import l from"node:process";import{fileURLToPath as vo}from"node:url";import{execFile as ir}from"node:child_process";import{promisify as ar}from"node:util";var oi=ar(ir);var yi=Object.freeze({runtimePackRoot:"",sharedCacheRoot:"",execHelperPath:"",sharedGroupAccess:!1});import{createRequire as dr}from"node:module";var lr=new URL("./../node_modules/@jskit-ai/kernel/server/support/symlinkSafeRequire.js",import.meta.url).href;var Pi=dr(lr);var Ai=Object.freeze(["none","pending","committed","rolledBack","unknown"]);var Oi=Object.freeze(["bundled","dev_server"]),Ii=Object.freeze(["capacitor"]),Ci=Object.freeze({callbackPath:"/auth/log\
87
- in",customScheme:"",appLinkDomains:Object.freeze([])}),xi=Object.freeze({packageName:"",minSdk:26,targetSdk:35,versionCode:1,
88
- versionName:"1.0.0"});var Ui=new URL("./../node_modules/@jskit-ai/kernel/server/support/appConfigFiles.js",import.meta.url).href;var Ji=Object.freeze(["dependencies","optionalDependencies","peerDependencies"]),Xi=Object.freeze(["capabilities","kind",
89
- "metadata","migrations","runtime","vite"]);var me="/api",ca=`${me}/`,ua=`${me}/docs`,la=`${me}/realtime`;var Ea=Object.freeze(["compact","medium","expanded"]);var O=Object.freeze(["DATABASE_URL","DB_CLIENT","DB_DATABASE","DB_HOST","DB_NAME","DB_PASSWORD","DB_PORT","DB_USER","DB_\
86
+ e.exe"}));E(_,"safari",()=>A({darwin:"Safari"}));var me=ar;import l from"node:process";import{fileURLToPath as Io}from"node:url";import{execFile as sr}from"node:child_process";import{promisify as cr}from"node:util";var ui=cr(sr);var Pi=Object.freeze({runtimePackRoot:"",sharedCacheRoot:"",execHelperPath:"",sharedGroupAccess:!1});import{createRequire as mr}from"node:module";var pr=new URL("./../node_modules/@jskit-ai/kernel/server/support/symlinkSafeRequire.js",import.meta.url).href;var xi=mr(pr);var ki=Object.freeze(["none","pending","committed","rolledBack","unknown"]);var ji=Object.freeze(["bundled","dev_server"]),$i=Object.freeze(["capacitor"]),Mi=Object.freeze({callbackPath:"/auth/log\
87
+ in",customScheme:"",appLinkDomains:Object.freeze([])}),Li=Object.freeze({packageName:"",minSdk:26,targetSdk:35,versionCode:1,
88
+ versionName:"1.0.0"});var qi=new URL("./../node_modules/@jskit-ai/kernel/server/support/appConfigFiles.js",import.meta.url).href;var ra=Object.freeze(["dependencies","optionalDependencies","peerDependencies"]),oa=Object.freeze(["capabilities","kind",
89
+ "metadata","migrations","runtime","vite"]);var ge="/api",fa=`${ge}/`,ga=`${ge}/docs`,ha=`${ge}/realtime`;var Aa=Object.freeze(["compact","medium","expanded"]);var I=Object.freeze(["DATABASE_URL","DB_CLIENT","DB_DATABASE","DB_HOST","DB_NAME","DB_PASSWORD","DB_PORT","DB_USER","DB_\
90
90
  USERNAME","MYSQL_DATABASE","MYSQL_HOST","MYSQL_PWD","MYSQL_TCP_PORT","PGDATABASE","PGHOST","PGPASSWORD","PGPORT","PGUSER",
91
- "VIBE64_MYSQL_USER"]);var I="GIT_AUTHOR_NAME",C="GIT_AUTHOR_EMAIL",x="GIT_COMMITTER_NAME",N="GIT_COMMITTER_EMAIL";var Ar=Object.freeze({awsebcli:{binDirs:["awsebcli/bin"],managedCommands:["eb"]},bubblewrap:{binDirs:["bubblewrap/bin"],
91
+ "VIBE64_MYSQL_USER"]);var C="GIT_AUTHOR_NAME",x="GIT_AUTHOR_EMAIL",N="GIT_COMMITTER_NAME",k="GIT_COMMITTER_EMAIL";var Ir=['git config --global user.name "Your Name"','git config --global user.email "you@example.com"'].join(`
92
+ `);var et=Object.freeze({awsebcli:{binDirs:["awsebcli/bin"],managedCommands:["eb"]},bubblewrap:{binDirs:["bubblewrap/bin"],
92
93
  managedCommands:[]},bun:{binDirs:["bun/bin"],dependencyFiles:["package.json","bun.lock","bun.lockb","package-lock.json"],
93
94
  managedCommands:["bun"]},composer:{binDirs:["composer/bin"],dependencyFiles:["composer.json","composer.lock"],managedCommands:[
94
95
  "composer"]},cpp:{binDirs:["cpp/bin"],dependencyFiles:["CMakeLists.txt","vcpkg.json","vcpkg-configuration.json","conanfi\
@@ -116,21 +117,21 @@ i/claude-code/package.json","operator-clis/lib/node_modules/@openai/codex/packag
116
117
  opencode-ai/package.json"],managedCommands:["claude","codex","opencode"]},php:{binDirs:["php/bin"],managedCommands:["php"]},
117
118
  playwright:{binDirs:["playwright/bin"],identityPaths:["playwright/runtime.env","playwright/browsers"],managedCommands:["\
118
119
  playwright"]},postgresql:{binDirs:["postgresql/bin"],managedCommands:["initdb","pg_ctl","pg_isready","postgres","psql"]},
119
- ripgrep:{binDirs:["ripgrep/bin"],managedCommands:[]},sqlite:{binDirs:["sqlite/bin"],managedCommands:["sqlite3"]}}),Qe=Object.
120
+ ripgrep:{binDirs:["ripgrep/bin"],managedCommands:[]},sqlite:{binDirs:["sqlite/bin"],managedCommands:["sqlite3"]}}),tt=Object.
120
121
  freeze(["operator-clis","node26","git","gh","mysql","mariadb","postgresql","sqlite","ripgrep","bubblewrap","bun","php","\
121
- composer","awsebcli","cpp","python","ruby","go","java","kotlin","csharp","rust","playwright"]);var fe="VIBE64_SHARED_CACHE_ROOT",H="PLAYWRIGHT_BROWSERS_PATH",ge="PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD",he="VIBE64_PLAYWRIG\
122
- HT_VERSION";var Or=new Set([...O,C,I,N,x,H,ge,he,fe]);var Ir=Object.freeze([{key:"url.https://github.com/.insteadOf",value:"git@github.com:"},{key:"url.https://github.com/.in\
123
- steadOf",value:"ssh://git@github.com/"}]),qs=Object.freeze([{key:"credential.https://github.com.helper",value:"!/usr/bin\
124
- /env gh auth git-credential"}]),Ys=Object.freeze([{key:"credential.https://github.com.helper",value:`!f() { case "$1" in\
125
- get) printf '%s\\n' username=x-access-token "password=\${VIBE64_GIT_AUTH_TOKEN}" ;; esac; }; f`}]);var Ec=new Set([...O,C,I,N,x,"HOME","LOGNAME","PATH","USER","XDG_CACHE_HOME","XDG_CONFIG_HOME","XDG_DATA_HOME","XDG_RUNT\
126
- IME_DIR"]);import{createRequire as Vr}from"node:module";var Gr=new URL("./../node_modules/@local/vibe64-execution/src/server/engines/terminalSessions.js",import.meta.url).href,
127
- Pc=256*1024;var Tc=600*1e3,Ac=1440*60*1e3,Oc=Object.freeze({"ctrl-c":"",enter:"\r",escape:"\x1B",tab:" "});var Ic=Vr(Gr);var Wc=Object.freeze(["daemon","owner-user","named-user","app"]),qc=Object.freeze(["account","assistant","terminal","cod\
128
- ex","github","github-api","source-editor","preview","output","deployment","health","workspace-cache","source"]),Yc=Object.
129
- freeze(["capture","pty","detached"]),Kc=Object.freeze(["utf8","base64"]),Jc=Object.freeze(["session","project","preview",
130
- "auth","deployment"]),Xc=Object.freeze(["none","github-https","github-token"]),qr=Object.freeze(["assistant","browser","\
131
- control","job","preview","service","terminal"]),Yr=Object.freeze(["finite","interactive","service"]),Zc=Object.freeze(["\
122
+ composer","awsebcli","cpp","python","ruby","go","java","kotlin","csharp","rust","playwright"]);var he="VIBE64_SHARED_CACHE_ROOT",H="PLAYWRIGHT_BROWSERS_PATH",_e="PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD",we="VIBE64_PLAYWRIG\
123
+ HT_VERSION";var Cr=new Set([...I,x,C,k,N,H,_e,we,he]);var xr=Object.freeze([{key:"url.https://github.com/.insteadOf",value:"git@github.com:"},{key:"url.https://github.com/.in\
124
+ steadOf",value:"ssh://git@github.com/"}]),Qs=Object.freeze([{key:"credential.https://github.com.helper",value:"!/usr/bin\
125
+ /env gh auth git-credential"}]),ec=Object.freeze([{key:"credential.https://github.com.helper",value:`!f() { case "$1" in\
126
+ get) printf '%s\\n' username=x-access-token "password=\${VIBE64_GIT_AUTH_TOKEN}" ;; esac; }; f`}]);var Oc=new Set([...I,x,C,k,N,"HOME","LOGNAME","PATH","USER","XDG_CACHE_HOME","XDG_CONFIG_HOME","XDG_DATA_HOME","XDG_RUNT\
127
+ IME_DIR"]);import{createRequire as Wr}from"node:module";var Fr=new URL("./../node_modules/@local/vibe64-execution/src/server/engines/terminalSessions.js",import.meta.url).href,
128
+ Nc=256*1024;var kc=600*1e3,jc=1440*60*1e3,$c=Object.freeze({"ctrl-c":"",enter:"\r",escape:"\x1B",tab:" "});var Mc=Wr(Fr);var Qc=Object.freeze(["daemon","owner-user","named-user","app"]),eu=Object.freeze(["account","assistant","terminal","cod\
129
+ ex","github","github-api","source-editor","preview","output","deployment","health","workspace-cache","source"]),tu=Object.
130
+ freeze(["capture","pty","detached"]),ru=Object.freeze(["utf8","base64"]),ou=Object.freeze(["session","project","preview",
131
+ "auth","deployment"]),nu=Object.freeze(["none","github-https","github-token"]),Kr=Object.freeze(["assistant","browser","\
132
+ control","job","preview","service","terminal"]),Jr=Object.freeze(["finite","interactive","service"]),iu=Object.freeze(["\
132
133
  node26","git","gh","mysql","mariadb","postgresql","sqlite","ripgrep","bubblewrap","bun","php","composer","awsebcli","cpp",
133
- "python","ruby","go","java","kotlin","csharp","rust","playwright","operator-clis"]),Qc=1e3*1e3*100;var xu=512*1024*1024,Nu=1024*1024*1024;var Zr=Object.freeze(["LANG","LC_ALL","NO_PROXY","PATH","SSL_CERT_DIR","SSL_CERT_FILE","TZ"]);var Qr=64*1024;function j(e){let t=String(e);return/^[A-Za-z0-9_./:=@,+-]+$/u.test(t)?t:`'${t.replaceAll("'","'\\''")}'`}var it="backups.git",at="vibe64-atomic",eo=`backup_canonical_ref() {
134
+ "python","ruby","go","java","kotlin","csharp","rust","playwright","operator-clis"]),au=1e3*1e3*100;var Du=512*1024*1024,Bu=1024*1024*1024;var eo=Object.freeze(["LANG","LC_ALL","NO_PROXY","PATH","SSL_CERT_DIR","SSL_CERT_FILE","TZ"]);var to=64*1024;function j(e){let t=String(e);return/^[A-Za-z0-9_./:=@,+-]+$/u.test(t)?t:`'${t.replaceAll("'","'\\''")}'`}var st="backups.git",ct="vibe64-atomic",ro=`backup_canonical_ref() {
134
135
  vibe64_backup_repository="$1"
135
136
  vibe64_source_repository="$2"
136
137
  vibe64_source_ref="$3"
@@ -148,13 +149,13 @@ r "$vibe64_backup_repository" rev-parse --verify "$vibe64_backup_ref"
148
149
  ' "$vibe64_source_ref" >&2
149
150
  return 1
150
151
  fi
151
- }`,to=`#!/bin/sh
152
+ }`,oo=`#!/bin/sh
152
153
  set -eu
153
154
 
154
155
  zero_object=0000000000000000000000000000000000000000
155
156
  git_dir="$(git rev-parse --absolute-git-dir)"
156
157
  repository_root="$(dirname "$git_dir")"
157
- backup_repository="$repository_root/${it}"
158
+ backup_repository="$repository_root/${st}"
158
159
  if [ -L "$repository_root" ] || [ -L "$backup_repository" ] || [ -L "$repository_root/mutation.lock" ]; then
159
160
  printf '[vibe64] Canonical repository storage must not use symlinked role paths.
160
161
  ' >&2
@@ -163,7 +164,7 @@ fi
163
164
  exec 8>"$repository_root/mutation.lock"
164
165
  flock -x 8
165
166
 
166
- if [ "\${GIT_PUSH_OPTION_COUNT:-0}" != "1" ] || [ "\${GIT_PUSH_OPTION_0:-}" != "${at}" ]; then
167
+ if [ "\${GIT_PUSH_OPTION_COUNT:-0}" != "1" ] || [ "\${GIT_PUSH_OPTION_0:-}" != "${ct}" ]; then
167
168
  printf '[vibe64] Canonical repository pushes must use the Vibe64 atomic mutation path.
168
169
  ' >&2
169
170
  exit 1
@@ -174,7 +175,7 @@ if [ "$(git --git-dir "$backup_repository" rev-parse --is-bare-repository 2>/dev
174
175
  exit 1
175
176
  fi
176
177
 
177
- ${eo}
178
+ ${ro}
178
179
 
179
180
  updates_file="$(mktemp "$repository_root/.pre-receive.XXXXXX")"
180
181
  cleanup_updates_file() {
@@ -222,8 +223,8 @@ while read -r old_object _new_object ref_name; do
222
223
  backup_canonical_ref "$backup_repository" "$git_dir" "$ref_name" "$old_object" "$backup_ref"
223
224
  fi
224
225
  done <"$updates_file"
225
- `;var Wu=new URL("./../node_modules/@local/vibe64-execution/src/server/runtime/agentPreviewBrowserWorkerSource.js",import.meta.
226
- url).href;var ro=["Usage:"," vibe64-helper preview ensure [--target <target-id>] [--wait] [--json] [--timeout-ms <ms>]"," vibe64\
226
+ `;var ol=new URL("./../node_modules/@local/vibe64-execution/src/server/runtime/agentPreviewBrowserWorkerSource.js",import.meta.
227
+ url).href;var io=["Usage:"," vibe64-helper preview ensure [--target <target-id>] [--wait] [--json] [--timeout-ms <ms>]"," vibe64\
227
228
  -helper preview targets [--json]"," vibe64-helper preview status [--json]"," vibe64-helper preview stop [--json]"," v\
228
229
  ibe64-helper preview inspect-url"," vibe64-helper preview screenshot [--output <path>]"," vibe64-helper preview browse\
229
230
  r ensure"," vibe64-helper preview browser eval < playwright-code.js"," vibe64-helper preview browser identity <default\
@@ -257,41 +258,64 @@ for the configured primary application.","Do not start a duplicate copy of that
257
258
  t secondary application explicitly requested by the user, such as a reference app, may run separately without replacing \
258
259
  this preview."].join(`
259
260
  `)+`
260
- `;import{fileURLToPath as so}from"node:url";var ao=new URL("./../node_modules/@local/vibe64-execution/src/server/conversationExecution.js",import.meta.url).href,el=so(
261
- new URL("./engines/stdioBridge.js",ao));var co=Object.freeze({claude:Object.freeze({name:"Claude Code",provider:"Claude",guideUrl:"https://code.claude.com/docs/\
262
- en/setup",install:Object.freeze({unix:"curl -fsSL https://claude.ai/install.sh | bash",win32:"irm https://claude.ai/inst\
263
- all.ps1 | iex"})}),codex:Object.freeze({name:"Codex",provider:"ChatGPT",guideUrl:"https://github.com/openai/codex",install:Object.
264
- freeze({unix:"curl -fsSL https://chatgpt.com/codex/install.sh | sh",win32:'powershell -ExecutionPolicy ByPass -c "irm ht\
265
- tps://chatgpt.com/codex/install.ps1 | iex"'})}),opencode:Object.freeze({name:"opencode",provider:"your API-key providers",
266
- guideUrl:"https://opencode.ai/docs/",install:Object.freeze({unix:"curl -fsSL https://opencode.ai/install | bash",win32:"\
267
- npm install -g opencode-ai"})})});import{execFile as uo}from"node:child_process";import{promisify as lo}from"node:util";var al=lo(uo);import{AsyncLocalStorage as ho}from"node:async_hooks";var Ap=Object.freeze({on:!1,currentAttemptId:"",lessonCode:"",practiceSlug:""});var Dp=new ho;import V from"node:path";import F from"node:process";import wo from"node:os";var ye="VIBE64_SYSTEM_ROOT";function st(e,t){let r=String(e||"").trim();return V.resolve(r||t||F.cwd())}function W(e=wo.homedir(),t=F.platform){let r=e||F.cwd();if(t==="darwin")return st(V.join(r,"Library","Application Suppo\
268
- rt","Vibe64"));let o=String(F.env.XDG_STATE_HOME||"").trim();return st(V.join(o||V.join(r,".local","state"),"vibe64"))}var ct="github",ut="managed_git",lt="local_source";var lm=Object.freeze({GITHUB:ct,MANAGED_GIT:ut,LOCAL_SOURCE:lt});function dt(e=""){return String(e||"").trim().toLowerCase().replace(/[^a-z0-9_-]+/gu,"-").replace(/^-+|-+$/gu,"")}import{startServer as Ro}from"../server.bundle.mjs";import{randomUUID as yo}from"node:crypto";var Ee="__local__";var q="VIBE64_RUNTIME_NAMESPACE";var af=yo();var h="local";var bo=new URL("./server.js",import.meta.url).href,Po=vo(bo),To=3001;function Ao(e=l.argv.slice(2)){for(let t of e){let r=String(
269
- t||"").trim().toLowerCase();if(r==="--open"||r==="--open=true"||r==="--open=1")return!0}return!1}function Oo(e=l.argv.slice(
261
+ `;import{fileURLToPath as lo}from"node:url";var uo=new URL("./../node_modules/@local/vibe64-execution/src/server/conversationExecution.js",import.meta.url).href,pl=lo(
262
+ new URL("./engines/stdioBridge.js",uo));var fl=Object.freeze({linux:"https://github.com/mobily-enterprises/vibe64/blob/main/docs/colleague-usage/set-up-linux.md",
263
+ darwin:"https://github.com/mobily-enterprises/vibe64/blob/main/docs/colleague-usage/set-up-macos.md"}),V=Object.freeze({
264
+ claude:{name:"Claude Code",run:[["claude"]],guideUrl:"https://code.claude.com/docs/en/setup",any:"curl -fsSL https://cla\
265
+ ude.ai/install.sh | bash"},codex:{name:"Codex",run:[["codex"]],guideUrl:"https://github.com/openai/codex",any:"curl -fsS\
266
+ L https://chatgpt.com/codex/install.sh | sh"},opencode:{name:"opencode",run:[["opencode"]],guideUrl:"https://opencode.ai\
267
+ /docs/",any:"curl -fsSL https://opencode.ai/install | bash"},node:{name:"Node.js",setup:"nodejs-and-mise",run:[["node"]],
268
+ guideUrl:"https://nodejs.org/en/download",mise:"node@26"},git:{name:"Git",setup:"git",run:[["git"]],guideUrl:"https://gi\
269
+ t-scm.com/downloads",apt:"sudo apt install git",brew:"xcode-select --install"},gh:{name:"GitHub CLI",setup:"extras",run:[
270
+ ["gh"]],guideUrl:"https://github.com/cli/cli#installation",mise:"gh",brew:"brew install gh"},ripgrep:{name:"ripgrep",setup:"\
271
+ extras",run:[["rg"]],guideUrl:"https://github.com/BurntSushi/ripgrep#installation",apt:"sudo apt install ripgrep",brew:"\
272
+ brew install ripgrep"},playwright:{name:"Playwright browser",guideUrl:"https://playwright.dev/docs/browsers",apt:"npx pl\
273
+ aywright install --with-deps chromium",brew:"npx playwright install chromium"},python:{name:"Python",setup:"project-lang\
274
+ uages",run:[["python3","python"]],guideUrl:"https://mise.jdx.dev/lang/python.html",mise:"python@3.13"},ruby:{name:"Ruby",
275
+ setup:"project-languages",run:[["ruby"]],guideUrl:"https://mise.jdx.dev/lang/ruby.html",mise:"ruby@3.4"},java:{name:"Jav\
276
+ a",setup:"project-languages",run:[["java"]],guideUrl:"https://mise.jdx.dev/lang/java.html",mise:"java@temurin-25",version:"\
277
+ -version"},go:{name:"Go",setup:"project-languages",run:[["go"]],guideUrl:"https://go.dev/doc/install",mise:"go",version:"\
278
+ version"},kotlin:{name:"Kotlin",run:[["kotlin"]],guideUrl:"https://kotlinlang.org/docs/command-line.html",mise:"kotlin",
279
+ version:"-version"},rust:{name:"Rust",run:[["rustc"],["cargo"]],guideUrl:"https://rustup.rs/",any:"curl --proto '=https'\
280
+ --tlsv1.2 -sSf https://sh.rustup.rs | sh"},bun:{name:"Bun",run:[["bun"]],guideUrl:"https://bun.sh/docs/installation",any:"\
281
+ curl -fsSL https://bun.sh/install | bash"},csharp:{name:".NET",run:[["dotnet"]],guideUrl:"https://dotnet.microsoft.com/d\
282
+ ownload"},php:{name:"PHP",setup:"project-languages",run:[["php"],["composer"]],guideUrl:"https://php.new/",apt:'/bin/bas\
283
+ h -c "$(curl -fsSL https://php.new/install/linux)"',brew:'/bin/bash -c "$(curl -fsSL https://php.new/install/mac)"'},cpp:{
284
+ name:"Build tools",setup:"build-tools",run:[["cc","gcc","clang"],["make"]],guideUrl:"https://guides.rubyonrails.org/inst\
285
+ all_ruby_on_rails.html",detail:"Some packages compile native code, so they need a compiler and a few libraries.",apt:"su\
286
+ do apt install build-essential pkg-config libyaml-dev libssl-dev zlib1g-dev libpq-dev default-libmysqlclient-dev libgmp-\
287
+ dev",brew:"brew install pkg-config libyaml openssl@3 gmp"}}),gl=Object.freeze({composer:"php"});var El=["skip=$1; version=$2; shift 2",'for name in "$@"; do',' found=$(command -v -- "$name" 2>/dev/null) || continue',
288
+ " case $found in /*) ;; *) continue ;; esac",' if [ -n "$skip" ]; then case $found in /usr/bin/*) continue ;; esac; fi',
289
+ ` printf '%s\\n' "$found"`,' exec "$found" $version 2>&1',"done","exit 127"].join(`
290
+ `);var go=Object.freeze(Object.fromEntries(["claude","codex","opencode"].map(e=>{let{name:t,guideUrl:r,any:o}=V[e];return[e,
291
+ Object.freeze({name:t,guideUrl:r,install:o})]})));import{execFile as ho}from"node:child_process";import{promisify as _o}from"node:util";var Ol=_o(ho);import{AsyncLocalStorage as So}from"node:async_hooks";var um=Object.freeze({on:!1,currentAttemptId:"",lessonCode:"",practiceSlug:""});var Am=new So;import W from"node:path";import q from"node:process";import Ro from"node:os";var be="VIBE64_SYSTEM_ROOT";function ut(e,t){let r=String(e||"").trim();return W.resolve(r||t||q.cwd())}function Y(e=Ro.homedir(),t=q.platform){let r=e||q.cwd();if(t==="darwin")return ut(W.join(r,"Library","Application Suppo\
292
+ rt","Vibe64"));let o=String(q.env.XDG_STATE_HOME||"").trim();return ut(W.join(o||W.join(r,".local","state"),"vibe64"))}var lt="github",dt="managed_git",pt="local_source";var Qm=Object.freeze({GITHUB:lt,MANAGED_GIT:dt,LOCAL_SOURCE:pt});function mt(e=""){return String(e||"").trim().toLowerCase().replace(/[^a-z0-9_-]+/gu,"-").replace(/^-+|-+$/gu,"")}import{startServer as Co}from"../server.bundle.mjs";import{randomUUID as Po}from"node:crypto";var Se="__local__";var K="VIBE64_RUNTIME_NAMESPACE";var Kf=Po();var h="local";var To=new URL("./server.js",import.meta.url).href,xo=Io(To),No=3001;function ko(e=l.argv.slice(2)){for(let t of e){let r=String(
293
+ t||"").trim().toLowerCase();if(r==="--open"||r==="--open=true"||r==="--open=1")return!0}return!1}function jo(e=l.argv.slice(
270
294
  2)){for(let t of e){let r=String(t||"").trim().toLowerCase();if(r==="--no-open"||r==="--open=false"||r==="--open=0")return!0}
271
- return!1}function pt(e,t=mt){let r=R.resolve(String(e||""));try{return t(r)}catch{return r}}function Io({argv:e=l.argv,entrypointPath:t=Po,
272
- realpath:r=mt}={}){let o=e[1];return o?pt(o,r)===pt(t,r):!1}function $(e=""){let t=new Error(`Unsupported Vibe64 startup\
273
- argument: ${String(e||"").trim()}`);return t.code="vibe64_invalid_startup_argument",t}function Co(e,t,r){let o=String(e[t+
274
- 1]||"").trim();if(!o)throw $(r);return o}function xo(e=l.argv.slice(2)){let t="",r="";for(let o=0;o<e.length;o+=1){let n=String(
295
+ return!1}function ft(e,t=gt){let r=P.resolve(String(e||""));try{return t(r)}catch{return r}}function $o({argv:e=l.argv,entrypointPath:t=xo,
296
+ realpath:r=gt}={}){let o=e[1];return o?ft(o,r)===ft(t,r):!1}function $(e=""){let t=new Error(`Unsupported Vibe64 startup\
297
+ argument: ${String(e||"").trim()}`);return t.code="vibe64_invalid_startup_argument",t}function Mo(e,t,r){let o=String(e[t+
298
+ 1]||"").trim();if(!o)throw $(r);return o}function Lo(e=l.argv.slice(2)){let t="",r="";for(let o=0;o<e.length;o+=1){let n=String(
275
299
  e[o]||"").trim();if(!n)continue;let i=n.toLowerCase();if(!(i==="--open"||i==="--open=true"||i==="--open=1"||i==="--no-op\
276
- en"||i==="--open=false"||i==="--open=0")){if(i==="--project"){let a=Co(e,o,n);if(t||r)throw $(a);r=R.resolve(a),t=Y(r),o+=
277
- 1;continue}if(i.startsWith("--project=")){let a=n.slice(10).trim();if(!a||t||r)throw $(n);r=R.resolve(a),t=Y(r);continue}
278
- if(n.startsWith("-")||t||r)throw $(n);r=R.resolve(n),t=Y(r)}}return!t&&!r&&(r=l.cwd(),t=Y(r)),{openOnStart:No(e,{targetRoot:r}),
279
- runtimeMode:h,startupSlug:t,targetRoot:r}}function No(e=l.argv.slice(2),{targetRoot:t=""}={}){return Oo(e)?!1:Ao(e)?!0:!!String(
280
- t||"").trim()}function Y(e=""){return dt(R.basename(R.resolve(e)))||"local-project"}async function ko(e){try{await de(e,
281
- {app:{name:_.browser,arguments:["--new-window"]}})}catch{try{await de(e)}catch(t){console.warn(`Could not open browser a\
282
- utomatically: ${t.message}`)}}}function jo({env:e=l.env,openOnStart:t=!1,runtimeMode:r=h,startupSlug:o="",targetRoot:n=""}={}){
283
- let i=r===h&&t===!0,a=!!String(e.PORT||"").trim();return{browserLifecycleShutdown:r===h,port:i&&!a?To:void 0,runtimeMode:r,
284
- strictPort:a,startupSlug:o,targetRoot:n}}function $o({env:e=l.env,runtimeMode:t=h}={}){if(t!==h)return String(e[q]||"").
285
- trim();let r=String(e[q]||"").trim();return r||(e[q]=Ee,Ee)}function Mo({env:e=l.env,exists:t=Eo,home:r=ft.homedir(),platform:o=l.
286
- platform}={}){if(o!=="darwin"||String(e[ye]||"").trim())return"";let n=W(r,"darwin"),i=W(r,"linux");return t(n)||!t(i)?"":
300
+ en"||i==="--open=false"||i==="--open=0")){if(i==="--project"){let a=Mo(e,o,n);if(t||r)throw $(a);r=P.resolve(a),t=J(r),o+=
301
+ 1;continue}if(i.startsWith("--project=")){let a=n.slice(10).trim();if(!a||t||r)throw $(n);r=P.resolve(a),t=J(r);continue}
302
+ if(n.startsWith("-")||t||r)throw $(n);r=P.resolve(n),t=J(r)}}return!t&&!r&&(r=l.cwd(),t=J(r)),{openOnStart:Do(e,{targetRoot:r}),
303
+ runtimeMode:h,startupSlug:t,targetRoot:r}}function Do(e=l.argv.slice(2),{targetRoot:t=""}={}){return jo(e)?!1:ko(e)?!0:!!String(
304
+ t||"").trim()}function J(e=""){return mt(P.basename(P.resolve(e)))||"local-project"}async function Bo(e){try{await me(e,
305
+ {app:{name:_.browser,arguments:["--new-window"]}})}catch{try{await me(e)}catch(t){console.warn(`Could not open browser a\
306
+ utomatically: ${t.message}`)}}}function zo({env:e=l.env,openOnStart:t=!1,runtimeMode:r=h,startupSlug:o="",targetRoot:n=""}={}){
307
+ let i=r===h&&t===!0,a=!!String(e.PORT||"").trim();return{browserLifecycleShutdown:r===h,port:i&&!a?No:void 0,runtimeMode:r,
308
+ strictPort:a,startupSlug:o,targetRoot:n}}function Uo({env:e=l.env,runtimeMode:t=h}={}){if(t!==h)return String(e[K]||"").
309
+ trim();let r=String(e[K]||"").trim();return r||(e[K]=Se,Se)}function Ho({env:e=l.env,exists:t=Ao,home:r=ht.homedir(),platform:o=l.
310
+ platform}={}){if(o!=="darwin"||String(e[be]||"").trim())return"";let n=Y(r,"darwin"),i=Y(r,"linux");return t(n)||!t(i)?"":
287
311
  [`Vibe64 now keeps its data in ${n}.`,"Move your existing data there, then start Vibe64 again:",` mv ${j(i)} ${j(n)}`].
288
312
  join(`
289
- `)}async function Lo({env:e=l.env,home:t=ft.homedir(),makeDirectory:r=So,platform:o=l.platform,runtimeMode:n=h}={}){if(n!==
290
- h||String(e[ye]||"").trim())return"";let i=W(t,o);return await r(i,{recursive:!0,mode:448}),i}async function Do(){let e=Mo();
291
- if(e){console.error(e),l.exitCode=1;return}let{openOnStart:t,runtimeMode:r,startupSlug:o,targetRoot:n}=xo();$o({runtimeMode:r}),
292
- await Lo({runtimeMode:r});let i=await Ro(jo({openOnStart:t,runtimeMode:r,startupSlug:o,targetRoot:n})),a=i.vibe64Url;if(a){
293
- console.log(`Vibe64 is running at ${a}`),t&&await ko(a);return}i.vibe64Listen?.transport==="socket"&&(console.log(`Vibe6\
313
+ `)}async function Go({env:e=l.env,home:t=ht.homedir(),makeDirectory:r=Oo,platform:o=l.platform,runtimeMode:n=h}={}){if(n!==
314
+ h||String(e[be]||"").trim())return"";let i=Y(t,o);return await r(i,{recursive:!0,mode:448}),i}async function Vo(){let e=Ho();
315
+ if(e){console.error(e),l.exitCode=1;return}let{openOnStart:t,runtimeMode:r,startupSlug:o,targetRoot:n}=Lo();Uo({runtimeMode:r}),
316
+ await Go({runtimeMode:r});let i=await Co(zo({openOnStart:t,runtimeMode:r,startupSlug:o,targetRoot:n})),a=i.vibe64Url;if(a){
317
+ console.log(`Vibe64 is running at ${a}`),t&&await Bo(a);return}i.vibe64Listen?.transport==="socket"&&(console.log(`Vibe6\
294
318
  4 is listening on Unix socket ${i.vibe64Listen.socketPath}`),t&&console.warn("Cannot open a browser for a Unix socket li\
295
- stener. Set VIBE64_PUBLIC_ORIGIN or PORT."))}Io()&&Do().catch(e=>{console.error("Failed to start Vibe64 server:",e),l.exitCode=
296
- 1});export{$o as applyLocalCliRuntimeNamespace,Io as isDirectServerExecution,Mo as macosDataMoveMessage,xo as parseStartupArgs,
297
- Lo as prepareLocalSystemRoot,jo as serverStartOptions,Ao as shouldOpenBrowser};
319
+ stener. Set VIBE64_PUBLIC_ORIGIN or PORT."))}$o()&&Vo().catch(e=>{console.error("Failed to start Vibe64 server:",e),l.exitCode=
320
+ 1});export{Uo as applyLocalCliRuntimeNamespace,$o as isDirectServerExecution,Ho as macosDataMoveMessage,Lo as parseStartupArgs,
321
+ Go as prepareLocalSystemRoot,zo as serverStartOptions,ko as shouldOpenBrowser};