windows-development-sandbox 1.17.3 → 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 (315) hide show
  1. package/README.md +1 -1
  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/apps/resolvers-gamedev.d.ts +2 -0
  73. package/dist/guest/apps/resolvers-gamedev.js +1 -0
  74. package/dist/guest/apps/resolvers-mobile.d.ts +2 -0
  75. package/dist/guest/apps/resolvers-mobile.js +1 -0
  76. package/dist/guest/apps/resolvers.js +4 -0
  77. package/dist/guest/boot/boot.d.ts +5 -0
  78. package/dist/guest/boot/boot.js +35 -1
  79. package/dist/guest/daemon/accounts.d.ts +3 -0
  80. package/dist/guest/daemon/accounts.js +25 -0
  81. package/dist/guest/daemon/daemon.js +2 -0
  82. package/dist/guest/daemon/idle-shutdown.js +3 -1
  83. package/dist/guest/daemon/sessions.js +2 -0
  84. package/dist/guest/devtools/android.d.ts +2 -0
  85. package/dist/guest/devtools/android.js +7 -0
  86. package/dist/guest/devtools/devtool.d.ts +9 -0
  87. package/dist/guest/devtools/devtool.js +5 -0
  88. package/dist/guest/devtools/fivem.d.ts +2 -0
  89. package/dist/guest/devtools/fivem.js +7 -0
  90. package/dist/guest/devtools/registry.d.ts +6 -0
  91. package/dist/guest/devtools/registry.js +12 -0
  92. package/dist/guest/devtools/steam.d.ts +2 -0
  93. package/dist/guest/devtools/steam.js +228 -0
  94. package/dist/guest/devtools/unity.d.ts +2 -0
  95. package/dist/guest/devtools/unity.js +7 -0
  96. package/dist/guest/entries/daemon.js +2 -0
  97. package/dist/guest/entries/tool.d.ts +1 -0
  98. package/dist/guest/entries/tool.js +17 -0
  99. package/dist/guest/toolchains/engines/godot.d.ts +4 -0
  100. package/dist/guest/toolchains/engines/godot.js +4 -0
  101. package/dist/guest/toolchains/engines/unity-release.d.ts +15 -0
  102. package/dist/guest/toolchains/engines/unity-release.js +6 -0
  103. package/dist/guest/toolchains/engines/unity.d.ts +4 -0
  104. package/dist/guest/toolchains/engines/unity.js +4 -0
  105. package/dist/guest/toolchains/engines/unreal-engines.d.ts +4 -0
  106. package/dist/guest/toolchains/engines/unreal-engines.js +4 -0
  107. package/dist/guest/toolchains/fivem/artifacts.d.ts +6 -0
  108. package/dist/guest/toolchains/fivem/artifacts.js +7 -0
  109. package/dist/guest/toolchains/fivem/fivem.d.ts +4 -0
  110. package/dist/guest/toolchains/fivem/fivem.js +4 -0
  111. package/dist/guest/toolchains/installers.d.ts +12 -0
  112. package/dist/guest/toolchains/installers.js +39 -0
  113. package/dist/guest/toolchains/languages/java.js +1 -1
  114. package/dist/guest/toolchains/languages/kotlin.d.ts +3 -0
  115. package/dist/guest/toolchains/languages/kotlin.js +6 -0
  116. package/dist/guest/toolchains/mobile/android-repo.d.ts +11 -0
  117. package/dist/guest/toolchains/mobile/android-repo.js +10 -0
  118. package/dist/guest/toolchains/mobile/android.d.ts +17 -0
  119. package/dist/guest/toolchains/mobile/android.js +16 -0
  120. package/dist/guest/toolchains/mobile/dart.d.ts +4 -0
  121. package/dist/guest/toolchains/mobile/dart.js +4 -0
  122. package/dist/guest/toolchains/mobile/flutter.d.ts +4 -0
  123. package/dist/guest/toolchains/mobile/flutter.js +4 -0
  124. package/dist/guest/toolchains/mobile/react-native.d.ts +4 -0
  125. package/dist/guest/toolchains/mobile/react-native.js +4 -0
  126. package/dist/guest/toolchains/native/unreal.d.ts +3 -7
  127. package/dist/guest/toolchains/native/unreal.js +16 -167
  128. package/dist/guest/toolchains/native/visual-studio.d.ts +15 -0
  129. package/dist/guest/toolchains/native/visual-studio.js +159 -0
  130. package/dist/guest/toolchains/native/vs-request.d.ts +19 -0
  131. package/dist/guest/toolchains/native/vs-request.js +46 -0
  132. package/dist/guest/toolchains/not-yet.d.ts +2 -0
  133. package/dist/guest/toolchains/not-yet.js +6 -0
  134. package/dist/guest/toolchains/persisted.d.ts +48 -0
  135. package/dist/guest/toolchains/persisted.js +159 -0
  136. package/dist/guest/toolchains/plan.js +80 -4
  137. package/dist/guest/toolchains/steam/apps.d.ts +27 -0
  138. package/dist/guest/toolchains/steam/apps.js +112 -0
  139. package/dist/guest/toolchains/steam/client.d.ts +5 -0
  140. package/dist/guest/toolchains/steam/client.js +67 -0
  141. package/dist/guest/toolchains/steam/commands.d.ts +58 -0
  142. package/dist/guest/toolchains/steam/commands.js +155 -0
  143. package/dist/guest/toolchains/steam/steam.d.ts +4 -0
  144. package/dist/guest/toolchains/steam/steam.js +61 -0
  145. package/dist/guest/toolchains/steam/steamcmd-install.d.ts +29 -0
  146. package/dist/guest/toolchains/steam/steamcmd-install.js +177 -0
  147. package/dist/guest/toolchains/steam/steamcmd.d.ts +6 -0
  148. package/dist/guest/toolchains/steam/steamcmd.js +23 -0
  149. package/dist/guest/toolchains/step.d.ts +10 -0
  150. package/dist/host/accounts/deliver.d.ts +26 -0
  151. package/dist/host/accounts/deliver.js +80 -0
  152. package/dist/host/accounts/handoff.d.ts +17 -0
  153. package/dist/host/accounts/handoff.js +110 -0
  154. package/dist/host/accounts/index.d.ts +6 -0
  155. package/dist/host/accounts/index.js +8 -0
  156. package/dist/host/accounts/kinds/appstore.d.ts +2 -0
  157. package/dist/host/accounts/kinds/appstore.js +10 -0
  158. package/dist/host/accounts/kinds/cfx.d.ts +2 -0
  159. package/dist/host/accounts/kinds/cfx.js +7 -0
  160. package/dist/host/accounts/kinds/epic.d.ts +2 -0
  161. package/dist/host/accounts/kinds/epic.js +15 -0
  162. package/dist/host/accounts/kinds/expo.d.ts +2 -0
  163. package/dist/host/accounts/kinds/expo.js +7 -0
  164. package/dist/host/accounts/kinds/keystore.d.ts +2 -0
  165. package/dist/host/accounts/kinds/keystore.js +7 -0
  166. package/dist/host/accounts/kinds/play.d.ts +2 -0
  167. package/dist/host/accounts/kinds/play.js +7 -0
  168. package/dist/host/accounts/kinds/steam.d.ts +6 -0
  169. package/dist/host/accounts/kinds/steam.js +31 -0
  170. package/dist/host/accounts/kinds/unity.d.ts +2 -0
  171. package/dist/host/accounts/kinds/unity.js +13 -0
  172. package/dist/host/accounts/leases.d.ts +40 -0
  173. package/dist/host/accounts/leases.js +62 -0
  174. package/dist/host/accounts/source.d.ts +21 -0
  175. package/dist/host/accounts/source.js +15 -0
  176. package/dist/host/accounts/sources.d.ts +5 -0
  177. package/dist/host/accounts/sources.js +18 -0
  178. package/dist/host/accounts/store.d.ts +23 -0
  179. package/dist/host/accounts/store.js +74 -0
  180. package/dist/host/audit/log.d.ts +1 -1
  181. package/dist/host/launch/generate.d.ts +2 -0
  182. package/dist/host/launch/generate.js +16 -1
  183. package/dist/host/launch/hints/android.d.ts +3 -0
  184. package/dist/host/launch/hints/android.js +3 -0
  185. package/dist/host/launch/hints/engines.d.ts +3 -0
  186. package/dist/host/launch/hints/engines.js +3 -0
  187. package/dist/host/launch/hints/fivem.d.ts +3 -0
  188. package/dist/host/launch/hints/fivem.js +3 -0
  189. package/dist/host/launch/hints/hint.d.ts +2 -0
  190. package/dist/host/launch/hints/hint.js +1 -0
  191. package/dist/host/launch/hints/index.d.ts +5 -0
  192. package/dist/host/launch/hints/index.js +29 -0
  193. package/dist/host/launch/hints/mobile.d.ts +3 -0
  194. package/dist/host/launch/hints/mobile.js +3 -0
  195. package/dist/host/launch/hints/steam.d.ts +7 -0
  196. package/dist/host/launch/hints/steam.js +59 -0
  197. package/dist/host/launch/index.d.ts +2 -2
  198. package/dist/host/launch/index.js +2 -2
  199. package/dist/host/launch/mappings.js +2 -0
  200. package/dist/host/launch/session-file.js +2 -0
  201. package/dist/host/launch/stage.js +10 -1
  202. package/dist/host/launch/toolchains.d.ts +7 -0
  203. package/dist/host/launch/toolchains.js +11 -0
  204. package/dist/host/pc-installs/discover.d.ts +19 -0
  205. package/dist/host/pc-installs/discover.js +59 -0
  206. package/dist/host/pc-installs/epic.d.ts +2 -0
  207. package/dist/host/pc-installs/epic.js +7 -0
  208. package/dist/host/pc-installs/index.d.ts +3 -0
  209. package/dist/host/pc-installs/index.js +2 -0
  210. package/dist/host/pc-installs/source.d.ts +9 -0
  211. package/dist/host/pc-installs/source.js +1 -0
  212. package/dist/host/pc-installs/steam.d.ts +16 -0
  213. package/dist/host/pc-installs/steam.js +143 -0
  214. package/dist/host/pc-installs/unity.d.ts +2 -0
  215. package/dist/host/pc-installs/unity.js +7 -0
  216. package/dist/host/pc-installs/unreal.d.ts +2 -0
  217. package/dist/host/pc-installs/unreal.js +7 -0
  218. package/dist/host/profile/accounts.d.ts +21 -6
  219. package/dist/host/profile/accounts.js +108 -28
  220. package/dist/host/profile/claude-login.d.ts +32 -2
  221. package/dist/host/profile/claude-login.js +100 -8
  222. package/dist/host/profile/index.d.ts +1 -1
  223. package/dist/host/profile/index.js +1 -1
  224. package/dist/host/secrets/launch-secrets.js +1 -0
  225. package/dist/runtime/agent.js +321 -9
  226. package/dist/runtime/daemon.js +1987 -604
  227. package/dist/runtime/db.js +334 -11
  228. package/dist/runtime/main.js +2519 -723
  229. package/dist/runtime/netproxy.js +321 -9
  230. package/dist/runtime/tool.js +28549 -0
  231. package/dist/runtime/view.js +321 -9
  232. package/dist/selftest/accounts.test.js +172 -1
  233. package/dist/selftest/agent-paths.test.js +1 -0
  234. package/dist/selftest/android.test.d.ts +2 -0
  235. package/dist/selftest/android.test.js +7 -0
  236. package/dist/selftest/app.test.js +1 -1
  237. package/dist/selftest/engines.test.d.ts +2 -0
  238. package/dist/selftest/engines.test.js +7 -0
  239. package/dist/selftest/fivem.test.d.ts +2 -0
  240. package/dist/selftest/fivem.test.js +7 -0
  241. package/dist/selftest/generate.test.js +1 -1
  242. package/dist/selftest/index.js +18 -0
  243. package/dist/selftest/menu-screens.js +1 -0
  244. package/dist/selftest/menu.test.js +2 -1
  245. package/dist/selftest/mobile.test.d.ts +2 -0
  246. package/dist/selftest/mobile.test.js +7 -0
  247. package/dist/selftest/pc-installs.test.d.ts +2 -0
  248. package/dist/selftest/pc-installs.test.js +111 -0
  249. package/dist/selftest/persisted-installs.test.d.ts +2 -0
  250. package/dist/selftest/persisted-installs.test.js +107 -0
  251. package/dist/selftest/projects.test.js +6 -4
  252. package/dist/selftest/service-accounts.test.d.ts +2 -0
  253. package/dist/selftest/service-accounts.test.js +320 -0
  254. package/dist/selftest/steam.test.d.ts +2 -0
  255. package/dist/selftest/steam.test.js +316 -0
  256. package/dist/selftest/storage-helper.test.js +31 -8
  257. package/dist/selftest/support/engine-golden.js +3 -0
  258. package/dist/selftest/support/fixtures.d.ts +87 -0
  259. package/dist/selftest/support/fixtures.js +4 -3
  260. package/dist/selftest/support/pc-memory.d.ts +2 -0
  261. package/dist/selftest/support/pc-memory.js +17 -0
  262. package/dist/selftest/support/web-preview.js +20 -1
  263. package/dist/selftest/unity.test.d.ts +2 -0
  264. package/dist/selftest/unity.test.js +7 -0
  265. package/dist/shared/accounts/fingerprint.d.ts +1 -0
  266. package/dist/shared/accounts/fingerprint.js +20 -0
  267. package/dist/shared/accounts/index.d.ts +5 -0
  268. package/dist/shared/accounts/index.js +7 -0
  269. package/dist/shared/accounts/kinds/epic.d.ts +10 -0
  270. package/dist/shared/accounts/kinds/epic.js +56 -0
  271. package/dist/shared/accounts/kinds/steam.d.ts +28 -0
  272. package/dist/shared/accounts/kinds/steam.js +99 -0
  273. package/dist/shared/accounts/kinds.d.ts +41 -0
  274. package/dist/shared/accounts/kinds.js +154 -0
  275. package/dist/shared/accounts/payloads.d.ts +151 -0
  276. package/dist/shared/accounts/payloads.js +128 -0
  277. package/dist/shared/apps/catalogue-gamedev.d.ts +2 -0
  278. package/dist/shared/apps/catalogue-gamedev.js +1 -0
  279. package/dist/shared/apps/catalogue-mobile.d.ts +2 -0
  280. package/dist/shared/apps/catalogue-mobile.js +1 -0
  281. package/dist/shared/apps/catalogue-modding.d.ts +2 -0
  282. package/dist/shared/apps/catalogue-modding.js +1 -0
  283. package/dist/shared/apps/catalogue.d.ts +1 -0
  284. package/dist/shared/apps/catalogue.js +6 -1
  285. package/dist/shared/channel/schema.d.ts +183 -0
  286. package/dist/shared/channel/secrets.d.ts +42 -0
  287. package/dist/shared/channel/secrets.js +3 -0
  288. package/dist/shared/download/downloader.d.ts +7 -0
  289. package/dist/shared/download/downloader.js +10 -3
  290. package/dist/shared/installs.d.ts +19 -0
  291. package/dist/shared/installs.js +13 -0
  292. package/dist/shared/io/bounded.d.ts +6 -0
  293. package/dist/shared/io/bounded.js +38 -0
  294. package/dist/shared/io/index.d.ts +2 -0
  295. package/dist/shared/io/index.js +2 -0
  296. package/dist/shared/io/text.d.ts +9 -0
  297. package/dist/shared/io/text.js +18 -0
  298. package/dist/shared/paths/guest-paths.js +1 -1
  299. package/dist/shared/paths/index.d.ts +1 -0
  300. package/dist/shared/paths/index.js +1 -0
  301. package/dist/shared/paths/pc-installs.d.ts +20 -0
  302. package/dist/shared/paths/pc-installs.js +19 -0
  303. package/dist/shared/vdf.d.ts +25 -0
  304. package/dist/shared/vdf.js +151 -0
  305. package/dist/sync/sync-cycle.js +9 -0
  306. package/dist/web/index.html +1 -1
  307. package/dist/web/{main-JTH3FT4O.js → main-CWIF4VQI.js} +63 -61
  308. package/native/csharp/HcsHost/AssemblyInfo.cs +3 -3
  309. package/native/csharp/HostTools/AssemblyInfo.cs +3 -3
  310. package/native/csharp/StorageHelper/AssemblyInfo.cs +3 -3
  311. package/package.json +1 -1
  312. package/sandbox/scripts/add-firewall-port.ps1 +13 -0
  313. package/sandbox/templates/fivem/README.txt +2 -0
  314. package/schemas/config.schema.json +485 -0
  315. package/schemas/sandbox-config.schema.json +416 -0
@@ -8,9 +8,9 @@ using System.Runtime.InteropServices;
8
8
  [assembly: AssemblyCompany("windows-development-sandbox (open source)")]
9
9
  [assembly: AssemblyProduct("Windows Development Sandbox")]
10
10
  [assembly: AssemblyCopyright("MIT License, windows-development-sandbox contributors")]
11
- [assembly: AssemblyVersion("1.17.3.0")]
12
- [assembly: AssemblyFileVersion("1.17.3.0")]
13
- [assembly: AssemblyInformationalVersion("1.17.3")]
11
+ [assembly: AssemblyVersion("1.18.0.0")]
12
+ [assembly: AssemblyFileVersion("1.18.0.0")]
13
+ [assembly: AssemblyInformationalVersion("1.18.0")]
14
14
  [assembly: ComVisible(false)]
15
15
  // computecore.dll and computestorage.dll are not KnownDLLs: load them from System32 only, never from the exe's folder.
16
16
  [assembly: DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
@@ -8,7 +8,7 @@ using System.Runtime.InteropServices;
8
8
  [assembly: AssemblyCompany("windows-development-sandbox (open source)")]
9
9
  [assembly: AssemblyProduct("Windows Development Sandbox")]
10
10
  [assembly: AssemblyCopyright("MIT License, windows-development-sandbox contributors")]
11
- [assembly: AssemblyVersion("1.17.3.0")]
12
- [assembly: AssemblyFileVersion("1.17.3.0")]
13
- [assembly: AssemblyInformationalVersion("1.17.3")]
11
+ [assembly: AssemblyVersion("1.18.0.0")]
12
+ [assembly: AssemblyFileVersion("1.18.0.0")]
13
+ [assembly: AssemblyInformationalVersion("1.18.0")]
14
14
  [assembly: ComVisible(false)]
@@ -9,7 +9,7 @@ using System.Runtime.InteropServices;
9
9
  [assembly: AssemblyCompany("windows-development-sandbox (open source)")]
10
10
  [assembly: AssemblyProduct("Windows Development Sandbox")]
11
11
  [assembly: AssemblyCopyright("MIT License, windows-development-sandbox contributors")]
12
- [assembly: AssemblyVersion("1.17.3.0")]
13
- [assembly: AssemblyFileVersion("1.17.3.0")]
14
- [assembly: AssemblyInformationalVersion("1.17.3")]
12
+ [assembly: AssemblyVersion("1.18.0.0")]
13
+ [assembly: AssemblyFileVersion("1.18.0.0")]
14
+ [assembly: AssemblyInformationalVersion("1.18.0")]
15
15
  [assembly: ComVisible(false)]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windows-development-sandbox",
3
- "version": "1.17.3",
3
+ "version": "1.18.0",
4
4
  "description": "A disposable Windows Sandbox for development, with or without an AI agent (Claude Code, Codex, Gemini, opencode, ...): the folder you run it from is the workspace, toolchains and databases for your project install themselves, and nothing else on your PC is reachable.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -0,0 +1,13 @@
1
+ #Requires -Version 5.1
2
+ # Opens an inbound TCP/UDP port in the sandbox's own firewall (sbx-fivem serve: 30120 and txAdmin's 40120), so the PC
3
+ # can reach a server running in the sandbox. Not available yet: changes nothing.
4
+ # Exit code: 0 = done, 1 = not available yet.
5
+ param(
6
+ [Parameter(Mandatory = $true)][ValidateRange(1, 65535)][int]$Port,
7
+ [ValidateSet('TCP', 'UDP', 'Both')][string]$Protocol = 'Both',
8
+ [Parameter(Mandatory = $true)][ValidatePattern('^[A-Za-z0-9 ._-]{1,80}$')][string]$Name
9
+ )
10
+ $ErrorActionPreference = 'Stop'
11
+
12
+ Write-Output ('add-firewall-port: not available yet (port ' + $Port + ', ' + $Name + ')')
13
+ exit 1
@@ -0,0 +1,2 @@
1
+ Templates for `sbx-fivem new <resource> --lua | --js | --ts | --cs` (a server.cfg and one folder per language).
2
+ Not available yet.
@@ -411,6 +411,161 @@
411
411
  },
412
412
  "additionalProperties": false
413
413
  },
414
+ "accounts": {
415
+ "type": "object",
416
+ "properties": {
417
+ "epic": {
418
+ "type": "object",
419
+ "properties": {
420
+ "share": {
421
+ "type": "boolean",
422
+ "description": "Hand your saved Epic Games sign-in to sandboxes that use unreal (sign in to the launcher once in a sandbox, or take this PC's: sandbox account import epic). Kept encrypted on this PC; The agent in the sandbox can use this sign-in while it is there. A sign-in works in one place at a time: taking this PC's signs the launcher on this PC out the first time a sandbox uses it. Yours only: a project file can only turn it off."
423
+ }
424
+ },
425
+ "additionalProperties": false
426
+ },
427
+ "steam": {
428
+ "type": "object",
429
+ "properties": {
430
+ "share": {
431
+ "type": "boolean",
432
+ "description": "Hand your saved Steam (SteamCMD) sign-in to sandboxes that use steam (sign in once with sbx-steam login, or: sandbox account import steam --from <steamcmd folder>). Kept encrypted on this PC; The agent in the sandbox can use this sign-in while it is there. It can upload builds and workshop items to your Steam apps. It works in one sandbox at a time: a second sandbox starts without it while the first one runs. No password is kept: sign in once with sbx-steam login in a sandbox (Steam Guard asks there). Yours only: a project file can only turn it off."
433
+ }
434
+ },
435
+ "additionalProperties": false
436
+ },
437
+ "unity": {
438
+ "type": "object",
439
+ "properties": {
440
+ "share": {
441
+ "type": "boolean",
442
+ "description": "Hand your saved Unity sign-in to sandboxes that use unity (sign in once in a sandbox, or take this PC's licence: sandbox account import unity). Kept encrypted on this PC; The agent in the sandbox can use this sign-in while it is there. It works in one sandbox at a time: a second sandbox starts without it while the first one runs. A Pro seat is handed back when the sandbox stops cleanly; a sandbox closed abruptly may keep it until you return it. Yours only: a project file can only turn it off."
443
+ }
444
+ },
445
+ "additionalProperties": false
446
+ },
447
+ "cfx": {
448
+ "type": "object",
449
+ "properties": {
450
+ "share": {
451
+ "type": "boolean",
452
+ "description": "Hand your saved Cfx.re (FiveM / RedM server key) sign-in to sandboxes that use fivem (sandbox account login cfx). Kept encrypted on this PC; The agent in the sandbox can use this sign-in while it is there. Anyone with the key can run a server under your Cfx.re account. Yours only: a project file can only turn it off."
453
+ }
454
+ },
455
+ "additionalProperties": false
456
+ },
457
+ "keystore": {
458
+ "type": "object",
459
+ "properties": {
460
+ "share": {
461
+ "type": "boolean",
462
+ "description": "Hand your saved Android upload keystore sign-in to sandboxes that use android (sandbox account import keystore --from <upload.jks>). Kept encrypted on this PC; The agent in the sandbox can use this sign-in while it is there. It can sign app updates as you; keep a backup of the keystore elsewhere. Yours only: a project file can only turn it off."
463
+ }
464
+ },
465
+ "additionalProperties": false
466
+ },
467
+ "play": {
468
+ "type": "object",
469
+ "properties": {
470
+ "share": {
471
+ "type": "boolean",
472
+ "description": "Hand your saved Google Play (service account) sign-in to sandboxes that use android (sandbox account import play --from <service-account.json>). Kept encrypted on this PC; The agent in the sandbox can use this sign-in while it is there. It can publish to Google Play with what the service account is allowed. Yours only: a project file can only turn it off."
473
+ }
474
+ },
475
+ "additionalProperties": false
476
+ },
477
+ "expo": {
478
+ "type": "object",
479
+ "properties": {
480
+ "share": {
481
+ "type": "boolean",
482
+ "description": "Hand your saved Expo (EAS) sign-in to sandboxes that use reactNative (sandbox account login expo). Kept encrypted on this PC; The agent in the sandbox can use this sign-in while it is there. It can start EAS builds and submissions on your Expo account. Yours only: a project file can only turn it off."
483
+ }
484
+ },
485
+ "additionalProperties": false
486
+ },
487
+ "appstore": {
488
+ "type": "object",
489
+ "properties": {
490
+ "share": {
491
+ "type": "boolean",
492
+ "description": "Hand your saved App Store Connect API key sign-in to sandboxes that use reactNative or flutter (sandbox account import appstore --from <AuthKey.p8>). Kept encrypted on this PC; The agent in the sandbox can use this sign-in while it is there. It can upload and submit apps with what the key is allowed. Yours only: a project file can only turn it off."
493
+ }
494
+ },
495
+ "additionalProperties": false
496
+ }
497
+ },
498
+ "additionalProperties": false,
499
+ "description": "Service sign-ins for sandboxes (game stores, engines, app signing). Manage them in Accounts: sandbox account status."
500
+ },
501
+ "pcInstalls": {
502
+ "type": "object",
503
+ "properties": {
504
+ "steamGames": {
505
+ "anyOf": [
506
+ {
507
+ "type": "boolean"
508
+ },
509
+ {
510
+ "type": "array",
511
+ "items": {
512
+ "type": "integer",
513
+ "exclusiveMinimum": 0,
514
+ "maximum": 9007199254740991
515
+ }
516
+ }
517
+ ],
518
+ "description": "Steam games (true maps each library; a list of app IDs maps only those games) of this PC, read-only in the sandbox under C:\\PcInstalls: true = all of them, false = none, or a list (e.g. [480, 730]). The agent can read their files."
519
+ },
520
+ "epicGames": {
521
+ "anyOf": [
522
+ {
523
+ "type": "boolean"
524
+ },
525
+ {
526
+ "type": "array",
527
+ "items": {
528
+ "type": "string",
529
+ "pattern": "^[A-Za-z0-9._-]{1,100}$"
530
+ }
531
+ }
532
+ ],
533
+ "description": "Epic Games Launcher games (by their app name) of this PC, read-only in the sandbox under C:\\PcInstalls: true = all of them, false = none, or a list (e.g. [\"Fortnite\"]). The agent can read their files."
534
+ },
535
+ "unrealEngines": {
536
+ "anyOf": [
537
+ {
538
+ "type": "boolean"
539
+ },
540
+ {
541
+ "type": "array",
542
+ "items": {
543
+ "type": "string",
544
+ "pattern": "^(UE_)?\\d+\\.\\d+$"
545
+ }
546
+ }
547
+ ],
548
+ "description": "Unreal Engine versions installed with the Epic Games Launcher of this PC, read-only in the sandbox under C:\\PcInstalls: true = all of them, false = none, or a list (e.g. [\"5.4\"]). The agent can read their files."
549
+ },
550
+ "unityEditors": {
551
+ "anyOf": [
552
+ {
553
+ "type": "boolean"
554
+ },
555
+ {
556
+ "type": "array",
557
+ "items": {
558
+ "type": "string",
559
+ "pattern": "^\\d+\\.\\d+\\.\\d+[abfp]\\d+$"
560
+ }
561
+ }
562
+ ],
563
+ "description": "Unity editors installed with Unity Hub of this PC, read-only in the sandbox under C:\\PcInstalls: true = all of them, false = none, or a list (e.g. [\"6000.0.32f1\"]). The agent can read their files."
564
+ }
565
+ },
566
+ "additionalProperties": false,
567
+ "description": "Games, engines and editors installed on this PC, mapped read-only into sandboxes (no copy, no room on the sandbox's disk)."
568
+ },
414
569
  "provisioning": {
415
570
  "type": "object",
416
571
  "properties": {
@@ -705,6 +860,325 @@
705
860
  "keepInstallFiles": {
706
861
  "type": "boolean",
707
862
  "description": "Keep an offline copy of the Visual Studio install files in tools\\visualstudio (~10 GB, made once), so later boots install without downloading them again. Skipped while that disk has too little room."
863
+ },
864
+ "persistEngines": {
865
+ "type": "boolean",
866
+ "description": "Engines the Epic Games Launcher installs go to tools\\unreal\\engines (kept between sandboxes, 40-60 GB each) and are registered with the launcher again every boot. Off: they go on the sandbox disk and are lost when it closes. Engines installed on this PC can be mapped instead (pcInstalls.unrealEngines)."
867
+ },
868
+ "derivedDataCache": {
869
+ "type": "string",
870
+ "enum": [
871
+ "persisted",
872
+ "local"
873
+ ],
874
+ "description": "\"persisted\": the engine's local derived data cache (compiled shaders, 10-50 GB) in tools\\unreal\\ddc, kept between sandboxes. \"local\": Unreal's own place on the sandbox disk (rebuilt every boot)."
875
+ }
876
+ },
877
+ "additionalProperties": false
878
+ },
879
+ "unity": {
880
+ "type": "object",
881
+ "properties": {
882
+ "enabled": {
883
+ "anyOf": [
884
+ {
885
+ "type": "boolean"
886
+ },
887
+ {
888
+ "type": "string",
889
+ "const": "auto"
890
+ }
891
+ ],
892
+ "description": "Unity: the editor version a project asks for, from Unity's release API (checked against its published hash), installed into tools\\unity\\<version> (6-7 GB each), with the modules you list. true, false, or \"auto\" = only when the project has ProjectSettings/ProjectVersion.txt."
893
+ },
894
+ "acceptLicense": {
895
+ "type": "boolean",
896
+ "description": "Required to install: you accept the Unity terms of service (https://unity.com/legal/terms-of-service), and the editor needs a Unity licence (Personal is free). A project file cannot accept it for you."
897
+ },
898
+ "version": {
899
+ "type": "string",
900
+ "minLength": 1,
901
+ "description": "\"project\" = the version in ProjectSettings/ProjectVersion.txt, or an editor version such as \"6000.0.32f1\"."
902
+ },
903
+ "modules": {
904
+ "type": "array",
905
+ "items": {
906
+ "type": "string",
907
+ "pattern": "^[a-z0-9-]+$"
908
+ },
909
+ "description": "Editor modules to add: \"android\" (4-5 GB, also the Android SDK), \"webgl\" (1.5 GB), \"windows-il2cpp\" (adds Visual Studio's C++ parts), \"ios\" (Xcode project export only: iOS builds need a Mac)."
910
+ },
911
+ "hub": {
912
+ "type": "boolean",
913
+ "description": "Also Unity Hub, with the installed editors listed in it."
914
+ },
915
+ "keepVersions": {
916
+ "type": "integer",
917
+ "minimum": 1,
918
+ "maximum": 20,
919
+ "description": "How many editor versions to keep in tools\\unity; older ones are removed (the least recently used first)."
920
+ }
921
+ },
922
+ "additionalProperties": false
923
+ },
924
+ "godot": {
925
+ "type": "object",
926
+ "properties": {
927
+ "enabled": {
928
+ "anyOf": [
929
+ {
930
+ "type": "boolean"
931
+ },
932
+ {
933
+ "type": "string",
934
+ "const": "auto"
935
+ }
936
+ ],
937
+ "description": "Godot from its official builds (checked against the published SHA-512 sums), self-contained in tools\\godot\\<version> with `godot` (the console build) on PATH. true, false, or \"auto\" = only when the project has project.godot."
938
+ },
939
+ "version": {
940
+ "type": "string",
941
+ "minLength": 1,
942
+ "description": "\"project\" = the version project.godot was saved with (else the newest stable), or a version such as \"4.3\"."
943
+ },
944
+ "dotnet": {
945
+ "anyOf": [
946
+ {
947
+ "type": "boolean"
948
+ },
949
+ {
950
+ "type": "string",
951
+ "const": "auto"
952
+ }
953
+ ],
954
+ "description": "The .NET (C#) build of Godot and the .NET SDK: true, false, or \"auto\" = when the project has a .csproj."
955
+ },
956
+ "exportTemplates": {
957
+ "type": "boolean",
958
+ "description": "Also the export templates for that version (~1.2 GB), for exporting games."
959
+ },
960
+ "keepVersions": {
961
+ "type": "integer",
962
+ "minimum": 1,
963
+ "maximum": 20,
964
+ "description": "How many Godot versions to keep; older ones are removed (the least recently used first)."
965
+ }
966
+ },
967
+ "additionalProperties": false
968
+ },
969
+ "steam": {
970
+ "type": "object",
971
+ "properties": {
972
+ "enabled": {
973
+ "anyOf": [
974
+ {
975
+ "type": "boolean"
976
+ },
977
+ {
978
+ "type": "string",
979
+ "const": "auto"
980
+ }
981
+ ],
982
+ "description": "SteamCMD (`steamcmd` on PATH, Valve-signed, ~0.3 GB) and `sbx-steam` for logging in, downloading apps and workshop items, and uploading builds (ContentBuilder) and workshop items. true, false, or \"auto\" = only when the project has steam_appid.txt, steam_api64.dll, steam_api.dll, or an app_build / workshop_item .vdf."
983
+ },
984
+ "client": {
985
+ "type": "boolean",
986
+ "description": "Also the Steam client (1-1.5 GB, in tools\\steam), for testing the Steamworks API, the overlay or in-game uploads. You sign in to it in each sandbox."
987
+ },
988
+ "sdkFolder": {
989
+ "type": "string",
990
+ "description": "Where the Steamworks SDK is in the sandbox (relative paths are inside the project); it sets STEAMWORKS_SDK. Empty = not set. The SDK is never downloaded (it needs a Steamworks partner login)."
991
+ }
992
+ },
993
+ "additionalProperties": false
994
+ },
995
+ "fivem": {
996
+ "type": "object",
997
+ "properties": {
998
+ "enabled": {
999
+ "anyOf": [
1000
+ {
1001
+ "type": "boolean"
1002
+ },
1003
+ {
1004
+ "type": "string",
1005
+ "const": "auto"
1006
+ }
1007
+ ],
1008
+ "description": "A FiveM / RedM server (FXServer with txAdmin) for resource development, from the Cfx.re artifacts (the game client is not supported). `sbx-fivem serve` starts it. true, false, or \"auto\" = only when the project has fxmanifest.lua or __resource.lua (up to 3 folders down)."
1009
+ },
1010
+ "acceptLicense": {
1011
+ "type": "boolean",
1012
+ "description": "Required to install: you accept the Cfx.re platform terms (https://fivem.net/terms) and the FXServer licence. A project file cannot accept it for you."
1013
+ },
1014
+ "game": {
1015
+ "type": "string",
1016
+ "enum": [
1017
+ "gta5",
1018
+ "rdr3"
1019
+ ],
1020
+ "description": "\"gta5\" = FiveM, \"rdr3\" = RedM."
1021
+ },
1022
+ "artifact": {
1023
+ "type": "string",
1024
+ "pattern": "^(recommended|optional|latest|\\d+)$",
1025
+ "description": "The server build: \"recommended\", \"optional\", \"latest\", or a build number."
1026
+ },
1027
+ "txAdmin": {
1028
+ "type": "boolean",
1029
+ "description": "Start the server with txAdmin (its web panel on port 40120)."
1030
+ },
1031
+ "keepVersions": {
1032
+ "type": "integer",
1033
+ "minimum": 1,
1034
+ "maximum": 20,
1035
+ "description": "How many server builds to keep in tools\\fivem\\artifacts."
1036
+ }
1037
+ },
1038
+ "additionalProperties": false
1039
+ },
1040
+ "android": {
1041
+ "type": "object",
1042
+ "properties": {
1043
+ "enabled": {
1044
+ "anyOf": [
1045
+ {
1046
+ "type": "boolean"
1047
+ },
1048
+ {
1049
+ "type": "string",
1050
+ "const": "auto"
1051
+ }
1052
+ ],
1053
+ "description": "The Android SDK (command-line tools, platform-tools, build-tools, platforms, NDK and CMake as needed) in tools\\android-sdk, with a JDK. No emulator (Windows Sandbox cannot run one): use a device over the network, or build only. true, false, or \"auto\" = only when the project has a Gradle build using com.android, an AndroidManifest.xml (up to 3 folders down), a .NET MAUI project, or a Flutter / React Native / Godot Android project."
1054
+ },
1055
+ "acceptLicense": {
1056
+ "type": "boolean",
1057
+ "description": "Required to install: you accept the Android SDK licence (https://developer.android.com/studio/terms) and the licences sdkmanager shows. A project file cannot accept them for you."
1058
+ },
1059
+ "platforms": {
1060
+ "type": "array",
1061
+ "items": {
1062
+ "type": "string"
1063
+ },
1064
+ "description": "Platforms to install, e.g. [\"android-35\"]; \"project\" = the compileSdk the project's Gradle files ask for."
1065
+ },
1066
+ "buildTools": {
1067
+ "type": "string",
1068
+ "minLength": 1,
1069
+ "description": "\"latest\" or a build-tools version such as \"35.0.0\"."
1070
+ },
1071
+ "ndk": {
1072
+ "anyOf": [
1073
+ {
1074
+ "type": "boolean",
1075
+ "const": false
1076
+ },
1077
+ {
1078
+ "type": "string",
1079
+ "minLength": 1
1080
+ }
1081
+ ],
1082
+ "description": "\"auto\" = when the project uses native code (ndkVersion, CMake or ndk-build), false = never, or a version."
1083
+ },
1084
+ "cmake": {
1085
+ "anyOf": [
1086
+ {
1087
+ "type": "boolean",
1088
+ "const": false
1089
+ },
1090
+ {
1091
+ "type": "string",
1092
+ "minLength": 1
1093
+ }
1094
+ ],
1095
+ "description": "\"auto\" = when the project builds native code with CMake, false = never, or a version."
1096
+ },
1097
+ "packages": {
1098
+ "type": "array",
1099
+ "items": {
1100
+ "type": "string"
1101
+ },
1102
+ "description": "More sdkmanager packages (not the emulator or system images), installed once and kept (e.g. [\"extras;google;usb_driver\"])."
1103
+ }
1104
+ },
1105
+ "additionalProperties": false
1106
+ },
1107
+ "flutter": {
1108
+ "type": "object",
1109
+ "properties": {
1110
+ "enabled": {
1111
+ "anyOf": [
1112
+ {
1113
+ "type": "boolean"
1114
+ },
1115
+ {
1116
+ "type": "string",
1117
+ "const": "auto"
1118
+ }
1119
+ ],
1120
+ "description": "Flutter (with its Dart) from the official releases (checked against their SHA-256), with the Android SDK for Android builds. true, false, or \"auto\" = only when the project has a pubspec.yaml with a flutter: section."
1121
+ },
1122
+ "version": {
1123
+ "type": "string",
1124
+ "minLength": 1,
1125
+ "description": "\"project\" = the version in .fvmrc (else the newest stable), \"stable\", \"beta\", or a version such as \"3.24.5\"."
1126
+ },
1127
+ "windowsDesktop": {
1128
+ "type": "boolean",
1129
+ "description": "Windows desktop builds: needs Visual Studio Build Tools' C++ parts (a real installer: it runs every boot, ~5 GB on the sandbox disk)."
1130
+ },
1131
+ "precache": {
1132
+ "type": "array",
1133
+ "items": {
1134
+ "type": "string"
1135
+ },
1136
+ "description": "Platforms whose engine files are downloaded ahead (flutter precache), e.g. [\"android\", \"web\"]."
1137
+ }
1138
+ },
1139
+ "additionalProperties": false
1140
+ },
1141
+ "dart": {
1142
+ "type": "object",
1143
+ "properties": {
1144
+ "enabled": {
1145
+ "anyOf": [
1146
+ {
1147
+ "type": "boolean"
1148
+ },
1149
+ {
1150
+ "type": "string",
1151
+ "const": "auto"
1152
+ }
1153
+ ],
1154
+ "description": "The Dart SDK (without Flutter), checked against its published SHA-256. true, false, or \"auto\" = only when the project has a pubspec.yaml without a flutter: section."
1155
+ },
1156
+ "version": {
1157
+ "type": "string",
1158
+ "minLength": 1,
1159
+ "description": "\"stable\", \"beta\" or a version such as \"3.5.4\"."
1160
+ }
1161
+ },
1162
+ "additionalProperties": false
1163
+ },
1164
+ "reactNative": {
1165
+ "type": "object",
1166
+ "properties": {
1167
+ "enabled": {
1168
+ "anyOf": [
1169
+ {
1170
+ "type": "boolean"
1171
+ },
1172
+ {
1173
+ "type": "string",
1174
+ "const": "auto"
1175
+ }
1176
+ ],
1177
+ "description": "React Native / Expo: the Android SDK and JDK for Android builds (Node is always there). iOS builds run in EAS Build (the cloud). true, false, or \"auto\" = only when the project has a package.json depending on react-native or expo."
1178
+ },
1179
+ "easCli": {
1180
+ "type": "boolean",
1181
+ "description": "Also eas-cli (Expo Application Services) as a global npm package."
708
1182
  }
709
1183
  },
710
1184
  "additionalProperties": false
@@ -777,6 +1251,13 @@
777
1251
  "netfx35": {
778
1252
  "type": "boolean",
779
1253
  "description": ".NET Framework 3.5 runtime (a Windows feature, enabled from Windows Update on every boot; a few minutes)."
1254
+ },
1255
+ "templates": {
1256
+ "type": "array",
1257
+ "items": {
1258
+ "type": "string"
1259
+ },
1260
+ "description": "Project templates (`dotnet new install`), installed once and kept (e.g. [\"MonoGame.Templates.CSharp\"])."
780
1261
  }
781
1262
  },
782
1263
  "additionalProperties": false
@@ -838,6 +1319,10 @@
838
1319
  "gradle": {
839
1320
  "type": "boolean",
840
1321
  "description": "Gradle (gradle). A project's gradlew works either way."
1322
+ },
1323
+ "kotlin": {
1324
+ "type": "boolean",
1325
+ "description": "Also the Kotlin compiler (kotlinc) from JetBrains' releases. Gradle builds fetch their own."
841
1326
  }
842
1327
  },
843
1328
  "additionalProperties": false