windows-development-sandbox 1.17.0 → 1.18.0

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 (319) hide show
  1. package/README.md +92 -92
  2. package/config.example.json +97 -4
  3. package/dist/app/features/accounts/accounts.def.d.ts +116 -2
  4. package/dist/app/features/accounts/accounts.def.js +80 -12
  5. package/dist/app/features/accounts/accounts.run.d.ts +29 -0
  6. package/dist/app/features/accounts/accounts.run.js +36 -6
  7. package/dist/app/features/accounts/index.d.ts +2 -0
  8. package/dist/app/features/accounts/index.js +4 -1
  9. package/dist/app/features/accounts/services.def.d.ts +111 -0
  10. package/dist/app/features/accounts/services.def.js +187 -0
  11. package/dist/app/features/accounts/services.run.d.ts +65 -0
  12. package/dist/app/features/accounts/services.run.js +212 -0
  13. package/dist/app/features/defs.d.ts +112 -1
  14. package/dist/app/features/defs.js +5 -0
  15. package/dist/app/features/settings/categories.def.js +21 -4
  16. package/dist/app/registry.js +5 -1
  17. package/dist/bin/agent-sandbox.js +2 -2
  18. package/dist/bin/{chunk-QLGGAG3D.js → chunk-BKF43GJ3.js} +51 -16
  19. package/dist/bin/{chunk-REE3EMHD.js → chunk-YD3A67RS.js} +3812 -1702
  20. package/dist/bin/{chunk-XYUVIVJT.js → chunk-Z5D32FN3.js} +1 -1
  21. package/dist/bin/claude-host.js +2 -2
  22. package/dist/bin/claude-sbx.js +2 -2
  23. package/dist/bin/codex-sbx.js +2 -2
  24. package/dist/bin/gemini-sbx.js +2 -2
  25. package/dist/bin/sandbox.js +2 -2
  26. package/dist/bin/sbx-hide.js +2 -2
  27. package/dist/bin/sbx-show.js +2 -2
  28. package/dist/cli/commands/launch/launch.js +30 -1
  29. package/dist/cli/manifest.d.ts +93 -65
  30. package/dist/cli/manifest.js +23 -5
  31. package/dist/cli/menu/pages/accounts-page.js +31 -16
  32. package/dist/cli/services/accounts-service.d.ts +14 -4
  33. package/dist/cli/services/accounts-service.js +19 -6
  34. package/dist/cli/services/data-collect.js +26 -1
  35. package/dist/core/config/defaults.js +47 -4
  36. package/dist/core/detect/toolchains.d.ts +15 -1
  37. package/dist/core/detect/toolchains.js +45 -12
  38. package/dist/core/local-config/overrides.js +6 -0
  39. package/dist/core/schema/accounts.d.ts +27 -0
  40. package/dist/core/schema/accounts.js +32 -0
  41. package/dist/core/schema/config.d.ts +239 -0
  42. package/dist/core/schema/config.js +6 -0
  43. package/dist/core/schema/pc-installs.d.ts +7 -0
  44. package/dist/core/schema/pc-installs.js +17 -0
  45. package/dist/core/schema/toolchains.d.ts +61 -0
  46. package/dist/core/schema/toolchains.js +106 -0
  47. package/dist/core/types.d.ts +18 -0
  48. package/dist/guest/accounts/adapter.d.ts +25 -0
  49. package/dist/guest/accounts/adapter.js +21 -0
  50. package/dist/guest/accounts/adapters.d.ts +5 -0
  51. package/dist/guest/accounts/adapters.js +18 -0
  52. package/dist/guest/accounts/apply.d.ts +41 -0
  53. package/dist/guest/accounts/apply.js +47 -0
  54. package/dist/guest/accounts/kinds/appstore.d.ts +2 -0
  55. package/dist/guest/accounts/kinds/appstore.js +7 -0
  56. package/dist/guest/accounts/kinds/cfx.d.ts +2 -0
  57. package/dist/guest/accounts/kinds/cfx.js +7 -0
  58. package/dist/guest/accounts/kinds/epic.d.ts +2 -0
  59. package/dist/guest/accounts/kinds/epic.js +26 -0
  60. package/dist/guest/accounts/kinds/expo.d.ts +2 -0
  61. package/dist/guest/accounts/kinds/expo.js +7 -0
  62. package/dist/guest/accounts/kinds/keystore.d.ts +2 -0
  63. package/dist/guest/accounts/kinds/keystore.js +7 -0
  64. package/dist/guest/accounts/kinds/play.d.ts +2 -0
  65. package/dist/guest/accounts/kinds/play.js +7 -0
  66. package/dist/guest/accounts/kinds/steam.d.ts +4 -0
  67. package/dist/guest/accounts/kinds/steam.js +17 -0
  68. package/dist/guest/accounts/kinds/unity.d.ts +2 -0
  69. package/dist/guest/accounts/kinds/unity.js +7 -0
  70. package/dist/guest/accounts/watch.d.ts +28 -0
  71. package/dist/guest/accounts/watch.js +78 -0
  72. package/dist/guest/agents/agent-files.d.ts +6 -0
  73. package/dist/guest/agents/agent-files.js +14 -0
  74. package/dist/guest/agents/local-state.d.ts +2 -0
  75. package/dist/guest/agents/local-state.js +13 -1
  76. package/dist/guest/apps/resolvers-gamedev.d.ts +2 -0
  77. package/dist/guest/apps/resolvers-gamedev.js +1 -0
  78. package/dist/guest/apps/resolvers-mobile.d.ts +2 -0
  79. package/dist/guest/apps/resolvers-mobile.js +1 -0
  80. package/dist/guest/apps/resolvers.js +4 -0
  81. package/dist/guest/boot/boot.d.ts +5 -0
  82. package/dist/guest/boot/boot.js +36 -1
  83. package/dist/guest/daemon/accounts.d.ts +3 -0
  84. package/dist/guest/daemon/accounts.js +25 -0
  85. package/dist/guest/daemon/daemon.js +2 -0
  86. package/dist/guest/daemon/idle-shutdown.js +3 -1
  87. package/dist/guest/daemon/sessions.js +2 -0
  88. package/dist/guest/devtools/android.d.ts +2 -0
  89. package/dist/guest/devtools/android.js +7 -0
  90. package/dist/guest/devtools/devtool.d.ts +9 -0
  91. package/dist/guest/devtools/devtool.js +5 -0
  92. package/dist/guest/devtools/fivem.d.ts +2 -0
  93. package/dist/guest/devtools/fivem.js +7 -0
  94. package/dist/guest/devtools/registry.d.ts +6 -0
  95. package/dist/guest/devtools/registry.js +12 -0
  96. package/dist/guest/devtools/steam.d.ts +2 -0
  97. package/dist/guest/devtools/steam.js +228 -0
  98. package/dist/guest/devtools/unity.d.ts +2 -0
  99. package/dist/guest/devtools/unity.js +7 -0
  100. package/dist/guest/entries/daemon.js +2 -0
  101. package/dist/guest/entries/tool.d.ts +1 -0
  102. package/dist/guest/entries/tool.js +17 -0
  103. package/dist/guest/toolchains/engines/godot.d.ts +4 -0
  104. package/dist/guest/toolchains/engines/godot.js +4 -0
  105. package/dist/guest/toolchains/engines/unity-release.d.ts +15 -0
  106. package/dist/guest/toolchains/engines/unity-release.js +6 -0
  107. package/dist/guest/toolchains/engines/unity.d.ts +4 -0
  108. package/dist/guest/toolchains/engines/unity.js +4 -0
  109. package/dist/guest/toolchains/engines/unreal-engines.d.ts +4 -0
  110. package/dist/guest/toolchains/engines/unreal-engines.js +4 -0
  111. package/dist/guest/toolchains/fivem/artifacts.d.ts +6 -0
  112. package/dist/guest/toolchains/fivem/artifacts.js +7 -0
  113. package/dist/guest/toolchains/fivem/fivem.d.ts +4 -0
  114. package/dist/guest/toolchains/fivem/fivem.js +4 -0
  115. package/dist/guest/toolchains/installers.d.ts +12 -0
  116. package/dist/guest/toolchains/installers.js +39 -0
  117. package/dist/guest/toolchains/languages/java.js +1 -1
  118. package/dist/guest/toolchains/languages/kotlin.d.ts +3 -0
  119. package/dist/guest/toolchains/languages/kotlin.js +6 -0
  120. package/dist/guest/toolchains/mobile/android-repo.d.ts +11 -0
  121. package/dist/guest/toolchains/mobile/android-repo.js +10 -0
  122. package/dist/guest/toolchains/mobile/android.d.ts +17 -0
  123. package/dist/guest/toolchains/mobile/android.js +16 -0
  124. package/dist/guest/toolchains/mobile/dart.d.ts +4 -0
  125. package/dist/guest/toolchains/mobile/dart.js +4 -0
  126. package/dist/guest/toolchains/mobile/flutter.d.ts +4 -0
  127. package/dist/guest/toolchains/mobile/flutter.js +4 -0
  128. package/dist/guest/toolchains/mobile/react-native.d.ts +4 -0
  129. package/dist/guest/toolchains/mobile/react-native.js +4 -0
  130. package/dist/guest/toolchains/native/unreal.d.ts +3 -7
  131. package/dist/guest/toolchains/native/unreal.js +16 -155
  132. package/dist/guest/toolchains/native/visual-studio.d.ts +15 -0
  133. package/dist/guest/toolchains/native/visual-studio.js +159 -0
  134. package/dist/guest/toolchains/native/vs-request.d.ts +19 -0
  135. package/dist/guest/toolchains/native/vs-request.js +46 -0
  136. package/dist/guest/toolchains/not-yet.d.ts +2 -0
  137. package/dist/guest/toolchains/not-yet.js +6 -0
  138. package/dist/guest/toolchains/persisted.d.ts +48 -0
  139. package/dist/guest/toolchains/persisted.js +159 -0
  140. package/dist/guest/toolchains/plan.js +80 -4
  141. package/dist/guest/toolchains/steam/apps.d.ts +27 -0
  142. package/dist/guest/toolchains/steam/apps.js +112 -0
  143. package/dist/guest/toolchains/steam/client.d.ts +5 -0
  144. package/dist/guest/toolchains/steam/client.js +67 -0
  145. package/dist/guest/toolchains/steam/commands.d.ts +58 -0
  146. package/dist/guest/toolchains/steam/commands.js +155 -0
  147. package/dist/guest/toolchains/steam/steam.d.ts +4 -0
  148. package/dist/guest/toolchains/steam/steam.js +61 -0
  149. package/dist/guest/toolchains/steam/steamcmd-install.d.ts +29 -0
  150. package/dist/guest/toolchains/steam/steamcmd-install.js +177 -0
  151. package/dist/guest/toolchains/steam/steamcmd.d.ts +6 -0
  152. package/dist/guest/toolchains/steam/steamcmd.js +23 -0
  153. package/dist/guest/toolchains/step.d.ts +10 -0
  154. package/dist/host/accounts/deliver.d.ts +26 -0
  155. package/dist/host/accounts/deliver.js +80 -0
  156. package/dist/host/accounts/handoff.d.ts +17 -0
  157. package/dist/host/accounts/handoff.js +110 -0
  158. package/dist/host/accounts/index.d.ts +6 -0
  159. package/dist/host/accounts/index.js +8 -0
  160. package/dist/host/accounts/kinds/appstore.d.ts +2 -0
  161. package/dist/host/accounts/kinds/appstore.js +10 -0
  162. package/dist/host/accounts/kinds/cfx.d.ts +2 -0
  163. package/dist/host/accounts/kinds/cfx.js +7 -0
  164. package/dist/host/accounts/kinds/epic.d.ts +2 -0
  165. package/dist/host/accounts/kinds/epic.js +15 -0
  166. package/dist/host/accounts/kinds/expo.d.ts +2 -0
  167. package/dist/host/accounts/kinds/expo.js +7 -0
  168. package/dist/host/accounts/kinds/keystore.d.ts +2 -0
  169. package/dist/host/accounts/kinds/keystore.js +7 -0
  170. package/dist/host/accounts/kinds/play.d.ts +2 -0
  171. package/dist/host/accounts/kinds/play.js +7 -0
  172. package/dist/host/accounts/kinds/steam.d.ts +6 -0
  173. package/dist/host/accounts/kinds/steam.js +31 -0
  174. package/dist/host/accounts/kinds/unity.d.ts +2 -0
  175. package/dist/host/accounts/kinds/unity.js +13 -0
  176. package/dist/host/accounts/leases.d.ts +40 -0
  177. package/dist/host/accounts/leases.js +62 -0
  178. package/dist/host/accounts/source.d.ts +21 -0
  179. package/dist/host/accounts/source.js +15 -0
  180. package/dist/host/accounts/sources.d.ts +5 -0
  181. package/dist/host/accounts/sources.js +18 -0
  182. package/dist/host/accounts/store.d.ts +23 -0
  183. package/dist/host/accounts/store.js +74 -0
  184. package/dist/host/audit/log.d.ts +1 -1
  185. package/dist/host/launch/generate.d.ts +2 -0
  186. package/dist/host/launch/generate.js +16 -1
  187. package/dist/host/launch/hints/android.d.ts +3 -0
  188. package/dist/host/launch/hints/android.js +3 -0
  189. package/dist/host/launch/hints/engines.d.ts +3 -0
  190. package/dist/host/launch/hints/engines.js +3 -0
  191. package/dist/host/launch/hints/fivem.d.ts +3 -0
  192. package/dist/host/launch/hints/fivem.js +3 -0
  193. package/dist/host/launch/hints/hint.d.ts +2 -0
  194. package/dist/host/launch/hints/hint.js +1 -0
  195. package/dist/host/launch/hints/index.d.ts +5 -0
  196. package/dist/host/launch/hints/index.js +29 -0
  197. package/dist/host/launch/hints/mobile.d.ts +3 -0
  198. package/dist/host/launch/hints/mobile.js +3 -0
  199. package/dist/host/launch/hints/steam.d.ts +7 -0
  200. package/dist/host/launch/hints/steam.js +59 -0
  201. package/dist/host/launch/index.d.ts +2 -2
  202. package/dist/host/launch/index.js +2 -2
  203. package/dist/host/launch/mappings.js +2 -0
  204. package/dist/host/launch/session-file.js +2 -0
  205. package/dist/host/launch/stage.js +10 -1
  206. package/dist/host/launch/toolchains.d.ts +7 -0
  207. package/dist/host/launch/toolchains.js +11 -0
  208. package/dist/host/pc-installs/discover.d.ts +19 -0
  209. package/dist/host/pc-installs/discover.js +59 -0
  210. package/dist/host/pc-installs/epic.d.ts +2 -0
  211. package/dist/host/pc-installs/epic.js +7 -0
  212. package/dist/host/pc-installs/index.d.ts +3 -0
  213. package/dist/host/pc-installs/index.js +2 -0
  214. package/dist/host/pc-installs/source.d.ts +9 -0
  215. package/dist/host/pc-installs/source.js +1 -0
  216. package/dist/host/pc-installs/steam.d.ts +16 -0
  217. package/dist/host/pc-installs/steam.js +143 -0
  218. package/dist/host/pc-installs/unity.d.ts +2 -0
  219. package/dist/host/pc-installs/unity.js +7 -0
  220. package/dist/host/pc-installs/unreal.d.ts +2 -0
  221. package/dist/host/pc-installs/unreal.js +7 -0
  222. package/dist/host/profile/accounts.d.ts +21 -6
  223. package/dist/host/profile/accounts.js +108 -28
  224. package/dist/host/profile/claude-login.d.ts +32 -2
  225. package/dist/host/profile/claude-login.js +100 -8
  226. package/dist/host/profile/index.d.ts +1 -1
  227. package/dist/host/profile/index.js +1 -1
  228. package/dist/host/secrets/launch-secrets.js +1 -0
  229. package/dist/runtime/agent.js +321 -9
  230. package/dist/runtime/daemon.js +1987 -595
  231. package/dist/runtime/db.js +334 -11
  232. package/dist/runtime/main.js +2530 -709
  233. package/dist/runtime/netproxy.js +321 -9
  234. package/dist/runtime/tool.js +28549 -0
  235. package/dist/runtime/view.js +321 -9
  236. package/dist/selftest/accounts.test.js +172 -1
  237. package/dist/selftest/agent-paths.test.js +13 -1
  238. package/dist/selftest/android.test.d.ts +2 -0
  239. package/dist/selftest/android.test.js +7 -0
  240. package/dist/selftest/app.test.js +1 -1
  241. package/dist/selftest/engines.test.d.ts +2 -0
  242. package/dist/selftest/engines.test.js +7 -0
  243. package/dist/selftest/fivem.test.d.ts +2 -0
  244. package/dist/selftest/fivem.test.js +7 -0
  245. package/dist/selftest/generate.test.js +1 -1
  246. package/dist/selftest/index.js +18 -0
  247. package/dist/selftest/menu-screens.js +1 -0
  248. package/dist/selftest/menu.test.js +2 -1
  249. package/dist/selftest/mobile.test.d.ts +2 -0
  250. package/dist/selftest/mobile.test.js +7 -0
  251. package/dist/selftest/pc-installs.test.d.ts +2 -0
  252. package/dist/selftest/pc-installs.test.js +111 -0
  253. package/dist/selftest/persisted-installs.test.d.ts +2 -0
  254. package/dist/selftest/persisted-installs.test.js +107 -0
  255. package/dist/selftest/projects.test.js +6 -4
  256. package/dist/selftest/service-accounts.test.d.ts +2 -0
  257. package/dist/selftest/service-accounts.test.js +320 -0
  258. package/dist/selftest/steam.test.d.ts +2 -0
  259. package/dist/selftest/steam.test.js +316 -0
  260. package/dist/selftest/storage-helper.test.js +31 -8
  261. package/dist/selftest/support/engine-golden.js +3 -0
  262. package/dist/selftest/support/fixtures.d.ts +87 -0
  263. package/dist/selftest/support/fixtures.js +4 -3
  264. package/dist/selftest/support/pc-memory.d.ts +2 -0
  265. package/dist/selftest/support/pc-memory.js +17 -0
  266. package/dist/selftest/support/web-preview.js +20 -1
  267. package/dist/selftest/unity.test.d.ts +2 -0
  268. package/dist/selftest/unity.test.js +7 -0
  269. package/dist/shared/accounts/fingerprint.d.ts +1 -0
  270. package/dist/shared/accounts/fingerprint.js +20 -0
  271. package/dist/shared/accounts/index.d.ts +5 -0
  272. package/dist/shared/accounts/index.js +7 -0
  273. package/dist/shared/accounts/kinds/epic.d.ts +10 -0
  274. package/dist/shared/accounts/kinds/epic.js +56 -0
  275. package/dist/shared/accounts/kinds/steam.d.ts +28 -0
  276. package/dist/shared/accounts/kinds/steam.js +99 -0
  277. package/dist/shared/accounts/kinds.d.ts +41 -0
  278. package/dist/shared/accounts/kinds.js +154 -0
  279. package/dist/shared/accounts/payloads.d.ts +151 -0
  280. package/dist/shared/accounts/payloads.js +128 -0
  281. package/dist/shared/apps/catalogue-gamedev.d.ts +2 -0
  282. package/dist/shared/apps/catalogue-gamedev.js +1 -0
  283. package/dist/shared/apps/catalogue-mobile.d.ts +2 -0
  284. package/dist/shared/apps/catalogue-mobile.js +1 -0
  285. package/dist/shared/apps/catalogue-modding.d.ts +2 -0
  286. package/dist/shared/apps/catalogue-modding.js +1 -0
  287. package/dist/shared/apps/catalogue.d.ts +1 -0
  288. package/dist/shared/apps/catalogue.js +6 -1
  289. package/dist/shared/channel/schema.d.ts +183 -0
  290. package/dist/shared/channel/secrets.d.ts +42 -0
  291. package/dist/shared/channel/secrets.js +3 -0
  292. package/dist/shared/download/downloader.d.ts +7 -0
  293. package/dist/shared/download/downloader.js +10 -3
  294. package/dist/shared/installs.d.ts +19 -0
  295. package/dist/shared/installs.js +13 -0
  296. package/dist/shared/io/bounded.d.ts +6 -0
  297. package/dist/shared/io/bounded.js +38 -0
  298. package/dist/shared/io/index.d.ts +2 -0
  299. package/dist/shared/io/index.js +2 -0
  300. package/dist/shared/io/text.d.ts +9 -0
  301. package/dist/shared/io/text.js +18 -0
  302. package/dist/shared/paths/guest-paths.js +1 -1
  303. package/dist/shared/paths/index.d.ts +1 -0
  304. package/dist/shared/paths/index.js +1 -0
  305. package/dist/shared/paths/pc-installs.d.ts +20 -0
  306. package/dist/shared/paths/pc-installs.js +19 -0
  307. package/dist/shared/vdf.d.ts +25 -0
  308. package/dist/shared/vdf.js +151 -0
  309. package/dist/sync/sync-cycle.js +9 -0
  310. package/dist/web/index.html +1 -1
  311. package/dist/web/{main-JTH3FT4O.js → main-CWIF4VQI.js} +63 -61
  312. package/native/csharp/HcsHost/AssemblyInfo.cs +3 -3
  313. package/native/csharp/HostTools/AssemblyInfo.cs +3 -3
  314. package/native/csharp/StorageHelper/AssemblyInfo.cs +3 -3
  315. package/package.json +1 -1
  316. package/sandbox/scripts/add-firewall-port.ps1 +13 -0
  317. package/sandbox/templates/fivem/README.txt +2 -0
  318. package/schemas/config.schema.json +485 -0
  319. package/schemas/sandbox-config.schema.json +416 -0
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
2
  import {
3
3
  attach
4
- } from "./chunk-REE3EMHD.js";
4
+ } from "./chunk-YD3A67RS.js";
5
5
  export {
6
6
  attach
7
7
  };
@@ -2,8 +2,8 @@
2
2
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  run
5
- } from "./chunk-QLGGAG3D.js";
6
- import "./chunk-REE3EMHD.js";
5
+ } from "./chunk-BKF43GJ3.js";
6
+ import "./chunk-YD3A67RS.js";
7
7
 
8
8
  // src/bin/claude-host.ts
9
9
  var args = process.argv.slice(2);
@@ -2,8 +2,8 @@
2
2
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  run
5
- } from "./chunk-QLGGAG3D.js";
6
- import "./chunk-REE3EMHD.js";
5
+ } from "./chunk-BKF43GJ3.js";
6
+ import "./chunk-YD3A67RS.js";
7
7
 
8
8
  // src/bin/claude-sbx.ts
9
9
  run(process.argv.slice(2), { harness: "claude" });
@@ -2,8 +2,8 @@
2
2
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  run
5
- } from "./chunk-QLGGAG3D.js";
6
- import "./chunk-REE3EMHD.js";
5
+ } from "./chunk-BKF43GJ3.js";
6
+ import "./chunk-YD3A67RS.js";
7
7
 
8
8
  // src/bin/codex-sbx.ts
9
9
  run(process.argv.slice(2), { harness: "codex" });
@@ -2,8 +2,8 @@
2
2
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  run
5
- } from "./chunk-QLGGAG3D.js";
6
- import "./chunk-REE3EMHD.js";
5
+ } from "./chunk-BKF43GJ3.js";
6
+ import "./chunk-YD3A67RS.js";
7
7
 
8
8
  // src/bin/gemini-sbx.ts
9
9
  run(process.argv.slice(2), { harness: "gemini" });
@@ -2,8 +2,8 @@
2
2
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  run
5
- } from "./chunk-QLGGAG3D.js";
6
- import "./chunk-REE3EMHD.js";
5
+ } from "./chunk-BKF43GJ3.js";
6
+ import "./chunk-YD3A67RS.js";
7
7
 
8
8
  // src/bin/sandbox.ts
9
9
  run(process.argv.slice(2));
@@ -2,8 +2,8 @@
2
2
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  run
5
- } from "./chunk-QLGGAG3D.js";
6
- import "./chunk-REE3EMHD.js";
5
+ } from "./chunk-BKF43GJ3.js";
6
+ import "./chunk-YD3A67RS.js";
7
7
 
8
8
  // src/bin/sbx-hide.ts
9
9
  run(process.argv.slice(2), { command: "hide" });
@@ -2,8 +2,8 @@
2
2
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  run
5
- } from "./chunk-QLGGAG3D.js";
6
- import "./chunk-REE3EMHD.js";
5
+ } from "./chunk-BKF43GJ3.js";
6
+ import "./chunk-YD3A67RS.js";
7
7
 
8
8
  // src/bin/sbx-show.ts
9
9
  run(process.argv.slice(2), { command: "show" });
@@ -5,11 +5,13 @@ import path from 'node:path';
5
5
  import _ from 'lodash';
6
6
  import { openEngine } from '../../../host/engines/index.js';
7
7
  import { containedMappings, containedPaths, providerFor, setNameOf, } from '../../../host/storage/index.js';
8
- import { generateSandbox, GUEST, vgpuSource, vgpuWarning } from '../../../host/launch/index.js';
8
+ import { generateSandbox, GUEST, newLaunchId, toolchainsOnForBoot, vgpuSource, vgpuWarning, } from '../../../host/launch/index.js';
9
9
  import { findSecretFiles } from '../../../host/profile/index.js';
10
10
  import { RepoGuardStore } from '../../../host/guard/index.js';
11
11
  import { hostPublicIp, prepareVpn, readVpnLine, vpnNotes } from '../../../host/vpn/index.js';
12
12
  import { prepareGithubToken } from '../../../host/github/index.js';
13
+ import { prepareServiceAccounts } from '../../../host/accounts/index.js';
14
+ import { discoverPcInstalls } from '../../../host/pc-installs/index.js';
13
15
  import { clearSecrets } from '../../../host/secrets/index.js';
14
16
  import { assertCanLaunch, isSandboxRunning, spawnDetached, probeHost, hideSandboxWindow, realContainedDeps, } from '../../../host/sandbox/index.js';
15
17
  import { KnownProjects, ProjectRegistry } from '../../../host/projects/index.js';
@@ -173,6 +175,25 @@ class Launcher {
173
175
  const github = generateOnly
174
176
  ? null
175
177
  : prepareGithubToken(config, ctx.storageRoot, undefined, bootWants.wants.projects);
178
+ // accounts.<kind>.share: the saved service sign-ins this boot's toolchains use, for the one-shot file only.
179
+ const launchId = newLaunchId();
180
+ const accounts = generateOnly
181
+ ? null
182
+ : prepareServiceAccounts({
183
+ config,
184
+ others: bootWants.wants.projects,
185
+ on: toolchainsOnForBoot({ run }, bootWants.wants.projects),
186
+ storageRoot: ctx.storageRoot,
187
+ dataPath: run.dataPath,
188
+ launchId,
189
+ // A new launch needs no sandbox running, so a lease held elsewhere is from one that stopped.
190
+ isRunning: () => isSandboxRunning(),
191
+ });
192
+ // pcInstalls: this PC's games, engines and editors, read-only (yours only: never from a project file).
193
+ const pcInstalls = discoverPcInstalls(ctx.loaded.config.pcInstalls, {
194
+ packageRoot: ctx.packageRoot,
195
+ storageRoot: ctx.storageRoot,
196
+ });
176
197
  // This PC's commit (RAM plus paging file) bounds the sandbox's memory as much as free RAM does.
177
198
  const hostMemory = generateOnly ? null : readHostMemory(ctx.storageRoot);
178
199
  const generated = generateSandbox({
@@ -186,6 +207,10 @@ class Launcher {
186
207
  bootWants: bootWants.wants,
187
208
  ...(vpn ? { vpn } : {}),
188
209
  ...(github?.token ? { githubToken: github.token } : {}),
210
+ launchId,
211
+ ...(accounts && Object.keys(accounts.payloads).length ? { serviceAccounts: accounts.payloads } : {}),
212
+ ...(accounts?.leased.length ? { accountLeases: [...accounts.leased] } : {}),
213
+ ...(pcInstalls.mappings.length ? { pcInstalls } : {}),
189
214
  ...(dataMappings ? { dataMappings } : {}),
190
215
  }, engine);
191
216
  const notes = [...run.notes, ...bootWants.notes, ...generated.projects.notes, ...generated.mappingNotes];
@@ -203,6 +228,10 @@ class Launcher {
203
228
  console.log(c.yellow(line));
204
229
  for (const line of github?.notes ?? [])
205
230
  console.log(c.yellow(line));
231
+ for (const line of accounts?.notes ?? [])
232
+ console.log(c.yellow(line));
233
+ for (const line of pcInstalls.notes)
234
+ console.log(c.yellow(line));
206
235
  table(launchSummary(run, generated, prepared));
207
236
  if (generateOnly)
208
237
  return 0;
@@ -13,12 +13,12 @@ export declare const OptionSpecSchema: z.ZodObject<{
13
13
  label: z.ZodOptional<z.ZodString>;
14
14
  default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
15
15
  choices: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodEnum<{
16
+ accounts: "accounts";
16
17
  harnesses: "harnesses";
17
18
  sessions: "sessions";
18
- accounts: "accounts";
19
19
  }>]>>;
20
20
  advanced: z.ZodOptional<z.ZodBoolean>;
21
- when: z.ZodOptional<z.ZodString>;
21
+ when: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
22
22
  noMenu: z.ZodOptional<z.ZodBoolean>;
23
23
  group: z.ZodOptional<z.ZodString>;
24
24
  shownAs: z.ZodOptional<z.ZodString>;
@@ -29,9 +29,9 @@ export declare const ArgSpecSchema: z.ZodObject<{
29
29
  required: z.ZodBoolean;
30
30
  variadic: z.ZodOptional<z.ZodBoolean>;
31
31
  choices: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodEnum<{
32
+ accounts: "accounts";
32
33
  harnesses: "harnesses";
33
34
  sessions: "sessions";
34
- accounts: "accounts";
35
35
  }>]>>;
36
36
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
37
37
  when: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
@@ -65,9 +65,9 @@ export declare const CommandSpecSchema: z.ZodObject<{
65
65
  required: z.ZodBoolean;
66
66
  variadic: z.ZodOptional<z.ZodBoolean>;
67
67
  choices: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodEnum<{
68
+ accounts: "accounts";
68
69
  harnesses: "harnesses";
69
70
  sessions: "sessions";
70
- accounts: "accounts";
71
71
  }>]>>;
72
72
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
73
73
  when: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
@@ -86,12 +86,12 @@ export declare const CommandSpecSchema: z.ZodObject<{
86
86
  label: z.ZodOptional<z.ZodString>;
87
87
  default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
88
88
  choices: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodEnum<{
89
+ accounts: "accounts";
89
90
  harnesses: "harnesses";
90
91
  sessions: "sessions";
91
- accounts: "accounts";
92
92
  }>]>>;
93
93
  advanced: z.ZodOptional<z.ZodBoolean>;
94
- when: z.ZodOptional<z.ZodString>;
94
+ when: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
95
95
  noMenu: z.ZodOptional<z.ZodBoolean>;
96
96
  group: z.ZodOptional<z.ZodString>;
97
97
  shownAs: z.ZodOptional<z.ZodString>;
@@ -121,9 +121,9 @@ declare const COMMAND_LIST: readonly [{
121
121
  value?: string | undefined;
122
122
  label?: string | undefined;
123
123
  default?: string | number | undefined;
124
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
124
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
125
125
  advanced?: boolean | undefined;
126
- when?: string | undefined;
126
+ when?: string | string[] | undefined;
127
127
  noMenu?: boolean | undefined;
128
128
  group?: string | undefined;
129
129
  shownAs?: string | undefined;
@@ -144,9 +144,9 @@ declare const COMMAND_LIST: readonly [{
144
144
  value?: string | undefined;
145
145
  label?: string | undefined;
146
146
  default?: string | number | undefined;
147
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
147
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
148
148
  advanced?: boolean | undefined;
149
- when?: string | undefined;
149
+ when?: string | string[] | undefined;
150
150
  noMenu?: boolean | undefined;
151
151
  group?: string | undefined;
152
152
  shownAs?: string | undefined;
@@ -165,9 +165,9 @@ declare const COMMAND_LIST: readonly [{
165
165
  value?: string | undefined;
166
166
  label?: string | undefined;
167
167
  default?: string | number | undefined;
168
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
168
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
169
169
  advanced?: boolean | undefined;
170
- when?: string | undefined;
170
+ when?: string | string[] | undefined;
171
171
  noMenu?: boolean | undefined;
172
172
  group?: string | undefined;
173
173
  shownAs?: string | undefined;
@@ -198,9 +198,9 @@ declare const COMMAND_LIST: readonly [{
198
198
  value?: string | undefined;
199
199
  label?: string | undefined;
200
200
  default?: string | number | undefined;
201
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
201
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
202
202
  advanced?: boolean | undefined;
203
- when?: string | undefined;
203
+ when?: string | string[] | undefined;
204
204
  noMenu?: boolean | undefined;
205
205
  group?: string | undefined;
206
206
  shownAs?: string | undefined;
@@ -246,9 +246,9 @@ declare const COMMAND_LIST: readonly [{
246
246
  value?: string | undefined;
247
247
  label?: string | undefined;
248
248
  default?: string | number | undefined;
249
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
249
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
250
250
  advanced?: boolean | undefined;
251
- when?: string | undefined;
251
+ when?: string | string[] | undefined;
252
252
  noMenu?: boolean | undefined;
253
253
  group?: string | undefined;
254
254
  shownAs?: string | undefined;
@@ -285,18 +285,18 @@ declare const COMMAND_LIST: readonly [{
285
285
  value?: string | undefined;
286
286
  label?: string | undefined;
287
287
  default?: string | number | undefined;
288
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
288
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
289
289
  advanced?: boolean | undefined;
290
- when?: string | undefined;
290
+ when?: string | string[] | undefined;
291
291
  noMenu?: boolean | undefined;
292
292
  group?: string | undefined;
293
293
  shownAs?: string | undefined;
294
294
  }];
295
295
  }, {
296
296
  readonly name: "account";
297
- readonly summary: "Claude logins: list, save, use, set the default, remove";
297
+ readonly summary: "agent logins (list, save, use, default, remove) and service sign-ins (status, import, login, logout)";
298
298
  readonly group: "Projects & accounts";
299
- readonly examples: readonly ["sandbox account save work save the login you signed in with inside the sandbox", "sandbox account use work the sandbox uses it (running sessions restart)"];
299
+ readonly examples: readonly ["sandbox account save work save the login you signed in with inside the sandbox", "sandbox account use work the sandbox uses it (running sessions restart)", "sandbox account status the service sign-ins (Epic, Steam, Unity, signing keys ...)", "sandbox account import epic take this PC's Epic Games Launcher sign-in for sandboxes", "sandbox account login cfx type a FiveM server key to keep for sandboxes", "sandbox account logout steam forget a service sign-in", "sandbox account save free --api-key save an Anthropic API key you paste in (not shown)"];
300
300
  readonly args: readonly [{
301
301
  readonly name: "action";
302
302
  readonly description: "what to do";
@@ -304,7 +304,7 @@ declare const COMMAND_LIST: readonly [{
304
304
  readonly choices: readonly ["list", "save", "use", "default", "rename", "remove"];
305
305
  }, {
306
306
  readonly name: "name";
307
- readonly description: "account name";
307
+ readonly description: "account name, or the service (status, import, login, logout): epic, steam, unity, cfx, keystore, play, expo or appstore";
308
308
  readonly required: false;
309
309
  readonly choices: "accounts";
310
310
  }];
@@ -316,9 +316,37 @@ declare const COMMAND_LIST: readonly [{
316
316
  value?: string | undefined;
317
317
  label?: string | undefined;
318
318
  default?: string | number | undefined;
319
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
319
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
320
+ advanced?: boolean | undefined;
321
+ when?: string | string[] | undefined;
322
+ noMenu?: boolean | undefined;
323
+ group?: string | undefined;
324
+ shownAs?: string | undefined;
325
+ }, {
326
+ flag: string;
327
+ type: "string" | "number" | "boolean" | "list";
328
+ description: string;
329
+ short?: string | undefined;
330
+ value?: string | undefined;
331
+ label?: string | undefined;
332
+ default?: string | number | undefined;
333
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
334
+ advanced?: boolean | undefined;
335
+ when?: string | string[] | undefined;
336
+ noMenu?: boolean | undefined;
337
+ group?: string | undefined;
338
+ shownAs?: string | undefined;
339
+ }, {
340
+ flag: string;
341
+ type: "string" | "number" | "boolean" | "list";
342
+ description: string;
343
+ short?: string | undefined;
344
+ value?: string | undefined;
345
+ label?: string | undefined;
346
+ default?: string | number | undefined;
347
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
320
348
  advanced?: boolean | undefined;
321
- when?: string | undefined;
349
+ when?: string | string[] | undefined;
322
350
  noMenu?: boolean | undefined;
323
351
  group?: string | undefined;
324
352
  shownAs?: string | undefined;
@@ -330,9 +358,9 @@ declare const COMMAND_LIST: readonly [{
330
358
  value?: string | undefined;
331
359
  label?: string | undefined;
332
360
  default?: string | number | undefined;
333
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
361
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
334
362
  advanced?: boolean | undefined;
335
- when?: string | undefined;
363
+ when?: string | string[] | undefined;
336
364
  noMenu?: boolean | undefined;
337
365
  group?: string | undefined;
338
366
  shownAs?: string | undefined;
@@ -344,9 +372,9 @@ declare const COMMAND_LIST: readonly [{
344
372
  value?: string | undefined;
345
373
  label?: string | undefined;
346
374
  default?: string | number | undefined;
347
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
375
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
348
376
  advanced?: boolean | undefined;
349
- when?: string | undefined;
377
+ when?: string | string[] | undefined;
350
378
  noMenu?: boolean | undefined;
351
379
  group?: string | undefined;
352
380
  shownAs?: string | undefined;
@@ -358,9 +386,9 @@ declare const COMMAND_LIST: readonly [{
358
386
  value?: string | undefined;
359
387
  label?: string | undefined;
360
388
  default?: string | number | undefined;
361
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
389
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
362
390
  advanced?: boolean | undefined;
363
- when?: string | undefined;
391
+ when?: string | string[] | undefined;
364
392
  noMenu?: boolean | undefined;
365
393
  group?: string | undefined;
366
394
  shownAs?: string | undefined;
@@ -372,9 +400,9 @@ declare const COMMAND_LIST: readonly [{
372
400
  value?: string | undefined;
373
401
  label?: string | undefined;
374
402
  default?: string | number | undefined;
375
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
403
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
376
404
  advanced?: boolean | undefined;
377
- when?: string | undefined;
405
+ when?: string | string[] | undefined;
378
406
  noMenu?: boolean | undefined;
379
407
  group?: string | undefined;
380
408
  shownAs?: string | undefined;
@@ -405,9 +433,9 @@ declare const COMMAND_LIST: readonly [{
405
433
  value?: string | undefined;
406
434
  label?: string | undefined;
407
435
  default?: string | number | undefined;
408
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
436
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
409
437
  advanced?: boolean | undefined;
410
- when?: string | undefined;
438
+ when?: string | string[] | undefined;
411
439
  noMenu?: boolean | undefined;
412
440
  group?: string | undefined;
413
441
  shownAs?: string | undefined;
@@ -438,9 +466,9 @@ declare const COMMAND_LIST: readonly [{
438
466
  value?: string | undefined;
439
467
  label?: string | undefined;
440
468
  default?: string | number | undefined;
441
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
469
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
442
470
  advanced?: boolean | undefined;
443
- when?: string | undefined;
471
+ when?: string | string[] | undefined;
444
472
  noMenu?: boolean | undefined;
445
473
  group?: string | undefined;
446
474
  shownAs?: string | undefined;
@@ -452,9 +480,9 @@ declare const COMMAND_LIST: readonly [{
452
480
  value?: string | undefined;
453
481
  label?: string | undefined;
454
482
  default?: string | number | undefined;
455
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
483
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
456
484
  advanced?: boolean | undefined;
457
- when?: string | undefined;
485
+ when?: string | string[] | undefined;
458
486
  noMenu?: boolean | undefined;
459
487
  group?: string | undefined;
460
488
  shownAs?: string | undefined;
@@ -485,9 +513,9 @@ declare const COMMAND_LIST: readonly [{
485
513
  value?: string | undefined;
486
514
  label?: string | undefined;
487
515
  default?: string | number | undefined;
488
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
516
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
489
517
  advanced?: boolean | undefined;
490
- when?: string | undefined;
518
+ when?: string | string[] | undefined;
491
519
  noMenu?: boolean | undefined;
492
520
  group?: string | undefined;
493
521
  shownAs?: string | undefined;
@@ -512,9 +540,9 @@ declare const COMMAND_LIST: readonly [{
512
540
  value?: string | undefined;
513
541
  label?: string | undefined;
514
542
  default?: string | number | undefined;
515
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
543
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
516
544
  advanced?: boolean | undefined;
517
- when?: string | undefined;
545
+ when?: string | string[] | undefined;
518
546
  noMenu?: boolean | undefined;
519
547
  group?: string | undefined;
520
548
  shownAs?: string | undefined;
@@ -526,9 +554,9 @@ declare const COMMAND_LIST: readonly [{
526
554
  value?: string | undefined;
527
555
  label?: string | undefined;
528
556
  default?: string | number | undefined;
529
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
557
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
530
558
  advanced?: boolean | undefined;
531
- when?: string | undefined;
559
+ when?: string | string[] | undefined;
532
560
  noMenu?: boolean | undefined;
533
561
  group?: string | undefined;
534
562
  shownAs?: string | undefined;
@@ -552,9 +580,9 @@ declare const COMMAND_LIST: readonly [{
552
580
  value?: string | undefined;
553
581
  label?: string | undefined;
554
582
  default?: string | number | undefined;
555
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
583
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
556
584
  advanced?: boolean | undefined;
557
- when?: string | undefined;
585
+ when?: string | string[] | undefined;
558
586
  noMenu?: boolean | undefined;
559
587
  group?: string | undefined;
560
588
  shownAs?: string | undefined;
@@ -566,9 +594,9 @@ declare const COMMAND_LIST: readonly [{
566
594
  value?: string | undefined;
567
595
  label?: string | undefined;
568
596
  default?: string | number | undefined;
569
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
597
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
570
598
  advanced?: boolean | undefined;
571
- when?: string | undefined;
599
+ when?: string | string[] | undefined;
572
600
  noMenu?: boolean | undefined;
573
601
  group?: string | undefined;
574
602
  shownAs?: string | undefined;
@@ -587,9 +615,9 @@ declare const COMMAND_LIST: readonly [{
587
615
  value?: string | undefined;
588
616
  label?: string | undefined;
589
617
  default?: string | number | undefined;
590
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
618
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
591
619
  advanced?: boolean | undefined;
592
- when?: string | undefined;
620
+ when?: string | string[] | undefined;
593
621
  noMenu?: boolean | undefined;
594
622
  group?: string | undefined;
595
623
  shownAs?: string | undefined;
@@ -636,9 +664,9 @@ declare const COMMAND_LIST: readonly [{
636
664
  value?: string | undefined;
637
665
  label?: string | undefined;
638
666
  default?: string | number | undefined;
639
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
667
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
640
668
  advanced?: boolean | undefined;
641
- when?: string | undefined;
669
+ when?: string | string[] | undefined;
642
670
  noMenu?: boolean | undefined;
643
671
  group?: string | undefined;
644
672
  shownAs?: string | undefined;
@@ -650,9 +678,9 @@ declare const COMMAND_LIST: readonly [{
650
678
  value?: string | undefined;
651
679
  label?: string | undefined;
652
680
  default?: string | number | undefined;
653
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
681
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
654
682
  advanced?: boolean | undefined;
655
- when?: string | undefined;
683
+ when?: string | string[] | undefined;
656
684
  noMenu?: boolean | undefined;
657
685
  group?: string | undefined;
658
686
  shownAs?: string | undefined;
@@ -664,9 +692,9 @@ declare const COMMAND_LIST: readonly [{
664
692
  value?: string | undefined;
665
693
  label?: string | undefined;
666
694
  default?: string | number | undefined;
667
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
695
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
668
696
  advanced?: boolean | undefined;
669
- when?: string | undefined;
697
+ when?: string | string[] | undefined;
670
698
  noMenu?: boolean | undefined;
671
699
  group?: string | undefined;
672
700
  shownAs?: string | undefined;
@@ -722,9 +750,9 @@ declare const COMMAND_LIST: readonly [{
722
750
  value?: string | undefined;
723
751
  label?: string | undefined;
724
752
  default?: string | number | undefined;
725
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
753
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
726
754
  advanced?: boolean | undefined;
727
- when?: string | undefined;
755
+ when?: string | string[] | undefined;
728
756
  noMenu?: boolean | undefined;
729
757
  group?: string | undefined;
730
758
  shownAs?: string | undefined;
@@ -750,9 +778,9 @@ declare const COMMAND_LIST: readonly [{
750
778
  value?: string | undefined;
751
779
  label?: string | undefined;
752
780
  default?: string | number | undefined;
753
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
781
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
754
782
  advanced?: boolean | undefined;
755
- when?: string | undefined;
783
+ when?: string | string[] | undefined;
756
784
  noMenu?: boolean | undefined;
757
785
  group?: string | undefined;
758
786
  shownAs?: string | undefined;
@@ -791,9 +819,9 @@ declare const COMMAND_LIST: readonly [{
791
819
  value?: string | undefined;
792
820
  label?: string | undefined;
793
821
  default?: string | number | undefined;
794
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
822
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
795
823
  advanced?: boolean | undefined;
796
- when?: string | undefined;
824
+ when?: string | string[] | undefined;
797
825
  noMenu?: boolean | undefined;
798
826
  group?: string | undefined;
799
827
  shownAs?: string | undefined;
@@ -805,9 +833,9 @@ declare const COMMAND_LIST: readonly [{
805
833
  value?: string | undefined;
806
834
  label?: string | undefined;
807
835
  default?: string | number | undefined;
808
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
836
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
809
837
  advanced?: boolean | undefined;
810
- when?: string | undefined;
838
+ when?: string | string[] | undefined;
811
839
  noMenu?: boolean | undefined;
812
840
  group?: string | undefined;
813
841
  shownAs?: string | undefined;
@@ -831,9 +859,9 @@ declare const COMMAND_LIST: readonly [{
831
859
  value?: string | undefined;
832
860
  label?: string | undefined;
833
861
  default?: string | number | undefined;
834
- choices?: string[] | "harnesses" | "sessions" | "accounts" | undefined;
862
+ choices?: string[] | "accounts" | "harnesses" | "sessions" | undefined;
835
863
  advanced?: boolean | undefined;
836
- when?: string | undefined;
864
+ when?: string | string[] | undefined;
837
865
  noMenu?: boolean | undefined;
838
866
  group?: string | undefined;
839
867
  shownAs?: string | undefined;
@@ -26,8 +26,8 @@ export const OptionSpecSchema = z.strictObject({
26
26
  choices: ChoicesSchema.optional(),
27
27
  /** Advanced options are only asked in the menu after "Show advanced options". */
28
28
  advanced: z.boolean().optional(),
29
- /** Only asked in the menu when the command's first argument has this value (account save: --from-host). */
30
- when: z.string().optional(),
29
+ /** Only asked in the menu when the command's first argument has this value, or one of these (account: --yes). */
30
+ when: z.union([z.string(), z.array(z.string())]).optional(),
31
31
  /** Never offered in the menu (dangerous shortcuts such as --yes); typing it on the command line still works. */
32
32
  noMenu: z.boolean().optional(),
33
33
  /** Heading for this option in the command's --help (launch: Session, Folder ...). */
@@ -278,11 +278,16 @@ const COMMAND_LIST = [
278
278
  },
279
279
  {
280
280
  name: 'account',
281
- summary: 'Claude logins: list, save, use, set the default, remove',
281
+ summary: 'agent logins (list, save, use, default, remove) and service sign-ins (status, import, login, logout)',
282
282
  group: 'Projects & accounts',
283
283
  examples: [
284
284
  'sandbox account save work save the login you signed in with inside the sandbox',
285
285
  'sandbox account use work the sandbox uses it (running sessions restart)',
286
+ 'sandbox account status the service sign-ins (Epic, Steam, Unity, signing keys ...)',
287
+ "sandbox account import epic take this PC's Epic Games Launcher sign-in for sandboxes",
288
+ 'sandbox account login cfx type a FiveM server key to keep for sandboxes',
289
+ 'sandbox account logout steam forget a service sign-in',
290
+ 'sandbox account save free --api-key save an Anthropic API key you paste in (not shown)',
286
291
  ],
287
292
  args: [
288
293
  {
@@ -291,7 +296,12 @@ const COMMAND_LIST = [
291
296
  required: false,
292
297
  choices: ['list', 'save', 'use', 'default', 'rename', 'remove'],
293
298
  },
294
- { name: 'name', description: 'account name', required: false, choices: 'accounts' },
299
+ {
300
+ name: 'name',
301
+ description: 'account name, or the service (status, import, login, logout): epic, steam, unity, cfx, keystore, play, expo or appstore',
302
+ required: false,
303
+ choices: 'accounts',
304
+ },
295
305
  ],
296
306
  options: [
297
307
  text('--to', 'name', '(rename) the new name', { when: 'rename', label: 'New name' }),
@@ -300,8 +310,16 @@ const COMMAND_LIST = [
300
310
  label: 'Agent',
301
311
  }),
302
312
  bool('--from-host', "(save) save this PC's login instead of the sandbox's", { when: 'save' }),
313
+ bool('--api-key', "(save) an Anthropic API key: typed in (hidden), or with --from-host this PC's", {
314
+ when: 'save',
315
+ }),
303
316
  bool('--no-restart', '(use) do not restart running sessions', { when: 'use' }),
304
- bool('--yes', '(remove) do not ask first', { short: '-y', when: 'remove', noMenu: true }),
317
+ text('--from', 'path', '(import) the file or folder to take the sign-in from', { when: 'import', label: 'From' }),
318
+ bool('--yes', '(remove, import, logout) do not ask first', {
319
+ short: '-y',
320
+ when: ['remove', 'import', 'logout'],
321
+ noMenu: true,
322
+ }),
305
323
  ],
306
324
  json,
307
325
  },