windows-development-sandbox 1.18.4 → 1.23.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 (438) hide show
  1. package/README.md +1 -1
  2. package/config.example.json +17 -1
  3. package/dist/app/features/access/access.def.js +5 -2
  4. package/dist/app/features/access/access.run.js +7 -3
  5. package/dist/app/features/accounts/accounts.def.d.ts +33 -1
  6. package/dist/app/features/accounts/accounts.def.js +10 -4
  7. package/dist/app/features/accounts/accounts.run.d.ts +2 -0
  8. package/dist/app/features/accounts/accounts.run.js +7 -2
  9. package/dist/app/features/accounts/services.def.d.ts +7 -1
  10. package/dist/app/features/accounts/services.def.js +19 -16
  11. package/dist/app/features/accounts/services.run.d.ts +2 -0
  12. package/dist/app/features/accounts/services.run.js +44 -16
  13. package/dist/app/features/agent-commands/agent-commands.def.d.ts +37 -0
  14. package/dist/app/features/agent-commands/agent-commands.def.js +91 -0
  15. package/dist/app/features/agent-commands/agent-commands.run.d.ts +28 -0
  16. package/dist/app/features/agent-commands/agent-commands.run.js +35 -0
  17. package/dist/app/features/agent-commands/index.d.ts +2 -0
  18. package/dist/app/features/agent-commands/index.js +3 -0
  19. package/dist/app/features/agents/agents.def.d.ts +14 -1
  20. package/dist/app/features/agents/agents.def.js +61 -6
  21. package/dist/app/features/agents/agents.run.d.ts +1 -0
  22. package/dist/app/features/agents/agents.run.js +8 -1
  23. package/dist/app/features/agents/claude-env.def.d.ts +36 -0
  24. package/dist/app/features/agents/claude-env.def.js +305 -0
  25. package/dist/app/features/agents/env.def.d.ts +163 -0
  26. package/dist/app/features/agents/env.def.js +184 -0
  27. package/dist/app/features/agents/env.run.d.ts +43 -0
  28. package/dist/app/features/agents/env.run.js +86 -0
  29. package/dist/app/features/agents/index.d.ts +2 -0
  30. package/dist/app/features/agents/index.js +2 -0
  31. package/dist/app/features/defs.d.ts +171 -3
  32. package/dist/app/features/defs.js +9 -0
  33. package/dist/app/features/engine/engine.run.js +1 -1
  34. package/dist/app/features/github/github.def.d.ts +44 -3
  35. package/dist/app/features/github/github.def.js +145 -63
  36. package/dist/app/features/github/github.run.d.ts +9 -2
  37. package/dist/app/features/github/github.run.js +43 -5
  38. package/dist/app/features/health/health.def.js +8 -2
  39. package/dist/app/features/logs/logs.def.js +0 -8
  40. package/dist/app/features/projects/projects.def.js +2 -2
  41. package/dist/app/features/projects/projects.run.js +5 -5
  42. package/dist/app/features/sandbox/sandbox.def.js +7 -3
  43. package/dist/app/features/sessions/sessions.def.d.ts +4 -4
  44. package/dist/app/features/sessions/sessions.def.js +0 -5
  45. package/dist/app/features/sessions/sessions.run.d.ts +1 -1
  46. package/dist/app/features/sessions/sessions.run.js +2 -2
  47. package/dist/app/features/settings/categories.def.js +7 -2
  48. package/dist/app/features/settings/settings-rows.js +6 -2
  49. package/dist/app/features/settings/settings.def.js +1 -1
  50. package/dist/app/features/settings/settings.run.d.ts +8 -0
  51. package/dist/app/features/settings/settings.run.js +12 -3
  52. package/dist/app/features/storage/storage.run.js +18 -9
  53. package/dist/app/features/updates/update-lines.js +2 -2
  54. package/dist/app/features/updates/updates.def.js +1 -1
  55. package/dist/app/features/updates/updates.run.js +13 -3
  56. package/dist/app/features/vpn/vpn.def.d.ts +33 -0
  57. package/dist/app/features/vpn/vpn.def.js +30 -6
  58. package/dist/app/features/vpn/vpn.run.d.ts +11 -0
  59. package/dist/app/features/vpn/vpn.run.js +4 -1
  60. package/dist/app/features/web/web.def.js +2 -2
  61. package/dist/app/features/web/web.run.js +12 -4
  62. package/dist/app/kernel/errors.d.ts +7 -0
  63. package/dist/app/kernel/errors.js +18 -3
  64. package/dist/app/kernel/rpc.d.ts +6 -1
  65. package/dist/app/kernel/view.d.ts +11 -1
  66. package/dist/app/registry.js +7 -1
  67. package/dist/bin/agent-sandbox.js +2 -2
  68. package/dist/bin/{chunk-N4GXYTLV.js → chunk-JETGP2C3.js} +239 -72
  69. package/dist/bin/{chunk-MY7NLQQY.js → chunk-XZKOPGNH.js} +1 -1
  70. package/dist/bin/{chunk-FRPLQLSY.js → chunk-ZTTOF5V3.js} +6566 -4964
  71. package/dist/bin/claude-host.js +2 -2
  72. package/dist/bin/claude-sbx.js +2 -2
  73. package/dist/bin/codex-sbx.js +2 -2
  74. package/dist/bin/gemini-sbx.js +2 -2
  75. package/dist/bin/sandbox.js +2 -2
  76. package/dist/bin/sbx-hide.js +2 -2
  77. package/dist/bin/sbx-show.js +2 -2
  78. package/dist/cli/commands/agent-commands.d.ts +0 -1
  79. package/dist/cli/commands/agent-commands.js +2 -32
  80. package/dist/cli/commands/index.d.ts +1 -1
  81. package/dist/cli/commands/index.js +1 -1
  82. package/dist/cli/commands/launch/launch.js +2 -2
  83. package/dist/cli/commands/registry.js +3 -2
  84. package/dist/cli/manifest.d.ts +3 -3
  85. package/dist/cli/manifest.js +3 -2
  86. package/dist/cli/menu/coverage-exempt.d.ts +17 -0
  87. package/dist/cli/menu/coverage-exempt.js +61 -0
  88. package/dist/cli/menu/io-menu.d.ts +2 -0
  89. package/dist/cli/menu/io-menu.js +50 -5
  90. package/dist/cli/menu/menu.d.ts +1 -1
  91. package/dist/cli/menu/menu.js +3 -3
  92. package/dist/cli/menu/pages/accounts-page.js +1 -1
  93. package/dist/cli/menu/pages/agents-page.d.ts +7 -2
  94. package/dist/cli/menu/pages/agents-page.js +75 -13
  95. package/dist/cli/menu/pages/maintenance-page.d.ts +6 -0
  96. package/dist/cli/menu/pages/maintenance-page.js +10 -4
  97. package/dist/cli/menu/pages/sessions-page.d.ts +2 -0
  98. package/dist/cli/menu/pages/sessions-page.js +12 -4
  99. package/dist/cli/menu/pages/settings-page.js +13 -1
  100. package/dist/cli/menu/remote-menu.js +1 -1
  101. package/dist/cli/menu/shell.d.ts +5 -0
  102. package/dist/cli/menu/shell.js +13 -0
  103. package/dist/cli/menu/views.js +2 -1
  104. package/dist/cli/report.js +2 -0
  105. package/dist/cli/services/agent-commands-service.d.ts +2 -0
  106. package/dist/cli/services/agent-commands-service.js +13 -7
  107. package/dist/cli/services/vpn-service.d.ts +5 -1
  108. package/dist/cli/services/vpn-service.js +6 -1
  109. package/dist/cli/tui/app.d.ts +5 -0
  110. package/dist/cli/tui/app.js +2 -0
  111. package/dist/cli/tui/dialogs/text-screen.js +2 -1
  112. package/dist/cli/tui/terminal.js +3 -1
  113. package/dist/core/config/defaults.js +12 -1
  114. package/dist/core/detect/toolchains.js +9 -0
  115. package/dist/core/disk.d.ts +1 -5
  116. package/dist/core/disk.js +1 -16
  117. package/dist/core/schema/accounts.d.ts +6 -0
  118. package/dist/core/schema/accounts.js +13 -11
  119. package/dist/core/schema/codex.d.ts +29 -0
  120. package/dist/core/schema/codex.js +24 -0
  121. package/dist/core/schema/config.d.ts +58 -14
  122. package/dist/core/schema/config.js +6 -4
  123. package/dist/core/schema/github.js +1 -1
  124. package/dist/core/schema/index.d.ts +1 -0
  125. package/dist/core/schema/index.js +1 -0
  126. package/dist/core/schema/profile.js +8 -4
  127. package/dist/core/schema/resume.js +1 -1
  128. package/dist/core/schema/sandbox.js +3 -3
  129. package/dist/core/schema/toolchains.d.ts +4 -0
  130. package/dist/core/schema/toolchains.js +3 -0
  131. package/dist/core/schema/vpn.js +1 -1
  132. package/dist/core/schema/web.js +3 -3
  133. package/dist/core/types.d.ts +8 -0
  134. package/dist/core/util/errors.d.ts +11 -1
  135. package/dist/core/util/errors.js +7 -1
  136. package/dist/core/util/index.d.ts +1 -1
  137. package/dist/core/util/index.js +1 -1
  138. package/dist/guest/accounts/adapter.d.ts +2 -0
  139. package/dist/guest/accounts/adapters.js +4 -0
  140. package/dist/guest/accounts/apply.d.ts +10 -6
  141. package/dist/guest/accounts/kinds/cfx.d.ts +7 -0
  142. package/dist/guest/accounts/kinds/cfx.js +33 -3
  143. package/dist/guest/accounts/kinds/comet.d.ts +7 -0
  144. package/dist/guest/accounts/kinds/comet.js +50 -0
  145. package/dist/guest/accounts/kinds/perplexity.d.ts +2 -0
  146. package/dist/guest/accounts/kinds/perplexity.js +12 -0
  147. package/dist/guest/accounts/watch.d.ts +2 -0
  148. package/dist/guest/accounts/watch.js +12 -2
  149. package/dist/guest/agents/agent-files.d.ts +26 -6
  150. package/dist/guest/agents/agent-files.js +84 -14
  151. package/dist/guest/agents/agent-installer.js +1 -1
  152. package/dist/guest/agents/local-state.d.ts +5 -2
  153. package/dist/guest/agents/local-state.js +24 -10
  154. package/dist/guest/agents/profile-links.d.ts +2 -0
  155. package/dist/guest/agents/profile-links.js +18 -4
  156. package/dist/guest/apps/after-install.js +19 -0
  157. package/dist/guest/apps/app-installer.d.ts +11 -0
  158. package/dist/guest/apps/app-installer.js +69 -6
  159. package/dist/guest/apps/comet-unpack.d.ts +20 -0
  160. package/dist/guest/apps/comet-unpack.js +127 -0
  161. package/dist/guest/apps/index.d.ts +1 -1
  162. package/dist/guest/apps/index.js +1 -1
  163. package/dist/guest/apps/resolvers-agents-web.d.ts +2 -0
  164. package/dist/guest/apps/resolvers-agents-web.js +7 -0
  165. package/dist/guest/apps/resolvers.js +2 -0
  166. package/dist/guest/apps/shortcuts.d.ts +2 -0
  167. package/dist/guest/apps/shortcuts.js +1 -0
  168. package/dist/guest/apps/unpack.js +14 -4
  169. package/dist/guest/boot/boot.d.ts +45 -16
  170. package/dist/guest/boot/boot.js +325 -149
  171. package/dist/guest/boot/graph.d.ts +252 -0
  172. package/dist/guest/boot/graph.js +257 -0
  173. package/dist/guest/boot/guide-lines.d.ts +25 -0
  174. package/dist/guest/boot/guide-lines.js +41 -0
  175. package/dist/guest/boot/guide.d.ts +1 -4
  176. package/dist/guest/boot/guide.js +6 -8
  177. package/dist/guest/boot/runner.d.ts +77 -0
  178. package/dist/guest/boot/runner.js +215 -0
  179. package/dist/guest/browser/cdp.d.ts +71 -0
  180. package/dist/guest/browser/cdp.js +306 -0
  181. package/dist/guest/browser/comet.d.ts +28 -0
  182. package/dist/guest/browser/comet.js +155 -0
  183. package/dist/guest/daemon/project-provisioner.js +6 -1
  184. package/dist/guest/daemon/sessions.js +2 -1
  185. package/dist/guest/devtools/fivem.d.ts +1 -1
  186. package/dist/guest/devtools/fivem.js +243 -3
  187. package/dist/guest/entries/daemon.js +2 -0
  188. package/dist/guest/runtime/log.d.ts +12 -0
  189. package/dist/guest/runtime/log.js +29 -5
  190. package/dist/guest/runtime/pools.d.ts +24 -0
  191. package/dist/guest/runtime/pools.js +60 -0
  192. package/dist/guest/runtime/process.d.ts +4 -0
  193. package/dist/guest/runtime/process.js +38 -1
  194. package/dist/guest/runtime/status.d.ts +5 -1
  195. package/dist/guest/runtime/status.js +19 -0
  196. package/dist/guest/setup/addon-mcp.d.ts +1 -1
  197. package/dist/guest/setup/addon-mcp.js +52 -12
  198. package/dist/guest/setup/agent-addons.d.ts +3 -2
  199. package/dist/guest/setup/agent-addons.js +12 -3
  200. package/dist/guest/setup/environment.d.ts +1 -1
  201. package/dist/guest/setup/environment.js +25 -12
  202. package/dist/guest/setup/headroom.d.ts +8 -3
  203. package/dist/guest/setup/headroom.js +44 -15
  204. package/dist/guest/setup/path-plan.d.ts +28 -0
  205. package/dist/guest/setup/path-plan.js +69 -2
  206. package/dist/guest/setup/shell-path.d.ts +1 -1
  207. package/dist/guest/setup/shell-path.js +3 -3
  208. package/dist/guest/toolchains/fivem/artifacts.d.ts +48 -1
  209. package/dist/guest/toolchains/fivem/artifacts.js +97 -4
  210. package/dist/guest/toolchains/fivem/fivem.d.ts +32 -1
  211. package/dist/guest/toolchains/fivem/fivem.js +168 -3
  212. package/dist/guest/toolchains/fivem/scaffold.d.ts +35 -0
  213. package/dist/guest/toolchains/fivem/scaffold.js +105 -0
  214. package/dist/guest/toolchains/fivem/serve-plan.d.ts +34 -0
  215. package/dist/guest/toolchains/fivem/serve-plan.js +61 -0
  216. package/dist/guest/toolchains/installers.d.ts +6 -10
  217. package/dist/guest/toolchains/installers.js +4 -12
  218. package/dist/guest/toolchains/languages/go.js +1 -1
  219. package/dist/guest/toolchains/languages/node.js +2 -1
  220. package/dist/guest/toolchains/languages/php.d.ts +2 -0
  221. package/dist/guest/toolchains/languages/php.js +13 -1
  222. package/dist/guest/toolchains/languages/python-tools.js +1 -1
  223. package/dist/guest/toolchains/languages/ruby.js +1 -1
  224. package/dist/guest/toolchains/native/autosdk.d.ts +3 -0
  225. package/dist/guest/toolchains/native/autosdk.js +50 -0
  226. package/dist/guest/toolchains/native/binstall.js +1 -1
  227. package/dist/guest/toolchains/native/msvc/packages.js +10 -4
  228. package/dist/guest/toolchains/native/rust.d.ts +2 -0
  229. package/dist/guest/toolchains/native/rust.js +11 -4
  230. package/dist/guest/toolchains/native/unreal.d.ts +2 -0
  231. package/dist/guest/toolchains/native/unreal.js +19 -6
  232. package/dist/guest/toolchains/native/vcruntime.d.ts +2 -3
  233. package/dist/guest/toolchains/native/vcruntime.js +12 -7
  234. package/dist/guest/toolchains/native/visual-studio.d.ts +5 -2
  235. package/dist/guest/toolchains/native/visual-studio.js +127 -25
  236. package/dist/guest/toolchains/native/vs-request.d.ts +23 -0
  237. package/dist/guest/toolchains/native/vs-request.js +62 -1
  238. package/dist/guest/toolchains/not-yet.d.ts +1 -1
  239. package/dist/guest/toolchains/not-yet.js +3 -3
  240. package/dist/guest/toolchains/persisted.js +2 -7
  241. package/dist/guest/toolchains/plan.js +27 -11
  242. package/dist/guest/toolchains/scheduler.d.ts +2 -21
  243. package/dist/guest/toolchains/scheduler.js +7 -121
  244. package/dist/guest/toolchains/setup.d.ts +15 -2
  245. package/dist/guest/toolchains/setup.js +39 -20
  246. package/dist/guest/toolchains/signature.d.ts +5 -0
  247. package/dist/guest/toolchains/signature.js +22 -0
  248. package/dist/guest/toolchains/split.d.ts +28 -0
  249. package/dist/guest/toolchains/split.js +60 -0
  250. package/dist/guest/toolchains/steam/client.js +2 -1
  251. package/dist/guest/toolchains/step-scheduler.d.ts +51 -0
  252. package/dist/guest/toolchains/step-scheduler.js +147 -0
  253. package/dist/guest/toolchains/step.d.ts +13 -0
  254. package/dist/guest/toolchains/tools/git.js +18 -0
  255. package/dist/guest/vpn/openvpn.js +3 -4
  256. package/dist/guest/vpn/tunnel.d.ts +3 -0
  257. package/dist/guest/vpn/tunnel.js +10 -12
  258. package/dist/guest/vpn/vpn.js +6 -1
  259. package/dist/guest/vpn/wireguard.js +11 -4
  260. package/dist/host/accounts/deliver.js +7 -0
  261. package/dist/host/accounts/handoff.js +2 -6
  262. package/dist/host/accounts/index.d.ts +1 -1
  263. package/dist/host/accounts/index.js +1 -1
  264. package/dist/host/accounts/kinds/cfx.d.ts +1 -1
  265. package/dist/host/accounts/kinds/cfx.js +47 -4
  266. package/dist/host/accounts/kinds/comet.d.ts +2 -0
  267. package/dist/host/accounts/kinds/comet.js +6 -0
  268. package/dist/host/accounts/kinds/perplexity.d.ts +2 -0
  269. package/dist/host/accounts/kinds/perplexity.js +30 -0
  270. package/dist/host/accounts/leases.d.ts +9 -3
  271. package/dist/host/accounts/leases.js +13 -2
  272. package/dist/host/accounts/source.d.ts +7 -1
  273. package/dist/host/accounts/source.js +28 -1
  274. package/dist/host/accounts/sources.js +4 -0
  275. package/dist/host/agent-commands/commands.js +1 -1
  276. package/dist/host/agent-commands/forwarders.d.ts +14 -2
  277. package/dist/host/agent-commands/forwarders.js +31 -13
  278. package/dist/host/agent-commands/reconcile.d.ts +2 -1
  279. package/dist/host/agent-commands/reconcile.js +7 -8
  280. package/dist/host/agent-commands/user-path.d.ts +5 -0
  281. package/dist/host/agent-commands/user-path.js +13 -0
  282. package/dist/host/github/deliver.d.ts +1 -1
  283. package/dist/host/github/deliver.js +20 -1
  284. package/dist/host/github/index.d.ts +2 -1
  285. package/dist/host/github/index.js +1 -0
  286. package/dist/host/github/token.d.ts +13 -1
  287. package/dist/host/github/token.js +19 -2
  288. package/dist/host/github/verify.d.ts +27 -0
  289. package/dist/host/github/verify.js +61 -0
  290. package/dist/host/launch/hints/fivem.d.ts +3 -1
  291. package/dist/host/launch/hints/fivem.js +68 -2
  292. package/dist/host/launch/session-file.js +5 -0
  293. package/dist/host/launch/toolchains.d.ts +2 -1
  294. package/dist/host/launch/toolchains.js +5 -3
  295. package/dist/host/profile/accounts.js +2 -4
  296. package/dist/host/profile/claude-login.d.ts +3 -2
  297. package/dist/host/profile/claude-login.js +3 -13
  298. package/dist/host/vpn/index.d.ts +2 -1
  299. package/dist/host/vpn/index.js +2 -1
  300. package/dist/host/vpn/last.d.ts +28 -0
  301. package/dist/host/vpn/last.js +43 -0
  302. package/dist/host/vpn/login.d.ts +3 -1
  303. package/dist/host/vpn/login.js +17 -3
  304. package/dist/host/vpn/nordvpn.d.ts +2 -4
  305. package/dist/host/vpn/nordvpn.js +2 -24
  306. package/dist/runtime/agent.js +433 -90
  307. package/dist/runtime/daemon.js +3378 -1546
  308. package/dist/runtime/db.js +363 -90
  309. package/dist/runtime/main.js +5134 -2096
  310. package/dist/runtime/netproxy.js +308 -69
  311. package/dist/runtime/tool.js +2867 -1765
  312. package/dist/runtime/view.js +308 -69
  313. package/dist/selftest/agent-commands.test.js +45 -7
  314. package/dist/selftest/agent-paths.test.js +40 -13
  315. package/dist/selftest/agent-settings.test.d.ts +2 -0
  316. package/dist/selftest/agent-settings.test.js +94 -0
  317. package/dist/selftest/agents-web.test.d.ts +2 -0
  318. package/dist/selftest/agents-web.test.js +647 -0
  319. package/dist/selftest/app.test.js +7 -3
  320. package/dist/selftest/boot-runner.test.d.ts +2 -0
  321. package/dist/selftest/boot-runner.test.js +456 -0
  322. package/dist/selftest/channel.test.js +15 -0
  323. package/dist/selftest/cli.test.js +4 -0
  324. package/dist/selftest/fivem.test.js +249 -3
  325. package/dist/selftest/github.test.js +94 -9
  326. package/dist/selftest/guest-boot.test.js +3 -0
  327. package/dist/selftest/health.test.js +1 -1
  328. package/dist/selftest/index.js +10 -0
  329. package/dist/selftest/layout.test.js +5 -0
  330. package/dist/selftest/menu-coverage.test.d.ts +2 -0
  331. package/dist/selftest/menu-coverage.test.js +46 -0
  332. package/dist/selftest/menu-screens.js +37 -1
  333. package/dist/selftest/menu.test.js +5 -3
  334. package/dist/selftest/pc-installs.test.js +5 -0
  335. package/dist/selftest/persisted-installs.test.js +72 -0
  336. package/dist/selftest/service-accounts.test.js +3 -2
  337. package/dist/selftest/support/engine-golden.js +28 -1
  338. package/dist/selftest/support/fixtures.d.ts +15 -0
  339. package/dist/selftest/support/web-preview.d.ts +34 -1
  340. package/dist/selftest/support/web-preview.js +21 -18
  341. package/dist/selftest/toolchains.test.js +23 -1
  342. package/dist/selftest/ui-text.test.d.ts +7 -0
  343. package/dist/selftest/ui-text.test.js +300 -0
  344. package/dist/selftest/vpn.test.js +51 -3
  345. package/dist/shared/accounts/anthropic.d.ts +5 -0
  346. package/dist/shared/accounts/anthropic.js +15 -0
  347. package/dist/shared/accounts/index.d.ts +3 -0
  348. package/dist/shared/accounts/index.js +3 -0
  349. package/dist/shared/accounts/kinds/comet.d.ts +12 -0
  350. package/dist/shared/accounts/kinds/comet.js +64 -0
  351. package/dist/shared/accounts/kinds/perplexity.d.ts +8 -0
  352. package/dist/shared/accounts/kinds/perplexity.js +37 -0
  353. package/dist/shared/accounts/kinds.d.ts +24 -5
  354. package/dist/shared/accounts/kinds.js +86 -4
  355. package/dist/shared/accounts/payloads.d.ts +81 -0
  356. package/dist/shared/accounts/payloads.js +39 -1
  357. package/dist/shared/apps/agent-addons.d.ts +33 -5
  358. package/dist/shared/apps/agent-addons.js +95 -3
  359. package/dist/shared/apps/catalogue-agents-web.d.ts +14 -0
  360. package/dist/shared/apps/catalogue-agents-web.js +112 -0
  361. package/dist/shared/apps/catalogue-modding.js +32 -1
  362. package/dist/shared/apps/catalogue.d.ts +27 -3
  363. package/dist/shared/apps/catalogue.js +2 -1
  364. package/dist/shared/apps/index.d.ts +3 -1
  365. package/dist/shared/apps/index.js +3 -1
  366. package/dist/shared/channel/schema.d.ts +40 -3
  367. package/dist/shared/channel/schema.js +9 -0
  368. package/dist/shared/channel/secrets.d.ts +19 -0
  369. package/dist/shared/concurrency/index.d.ts +3 -0
  370. package/dist/shared/concurrency/index.js +3 -0
  371. package/dist/shared/concurrency/installer-retry.d.ts +6 -0
  372. package/dist/shared/concurrency/installer-retry.js +10 -0
  373. package/dist/shared/concurrency/limiter.d.ts +19 -0
  374. package/dist/shared/concurrency/limiter.js +67 -0
  375. package/dist/shared/concurrency/pools.d.ts +7 -0
  376. package/dist/shared/concurrency/pools.js +9 -0
  377. package/dist/shared/download/archive.d.ts +2 -0
  378. package/dist/shared/download/archive.js +11 -1
  379. package/dist/shared/download/bounded-fetch.d.ts +13 -0
  380. package/dist/shared/download/bounded-fetch.js +40 -0
  381. package/dist/shared/download/downloader.d.ts +5 -0
  382. package/dist/shared/download/downloader.js +50 -38
  383. package/dist/shared/download/index.d.ts +2 -1
  384. package/dist/shared/download/index.js +2 -1
  385. package/dist/shared/io/disk.d.ts +9 -0
  386. package/dist/shared/io/disk.js +19 -0
  387. package/dist/shared/io/index.d.ts +1 -0
  388. package/dist/shared/io/index.js +1 -0
  389. package/dist/shared/readiness.d.ts +9 -0
  390. package/dist/shared/readiness.js +11 -0
  391. package/dist/shared/signer.d.ts +24 -0
  392. package/dist/shared/signer.js +15 -0
  393. package/dist/shared/vpn/failure.d.ts +10 -0
  394. package/dist/shared/vpn/failure.js +28 -0
  395. package/dist/sync/watcher.js +2 -0
  396. package/dist/web/index.html +1 -1
  397. package/dist/web/{main-GVZWWP4I.js → main-CCILLX2M.js} +75 -74
  398. package/native/csharp/HcsHost/AssemblyInfo.cs +3 -3
  399. package/native/csharp/HostTools/AssemblyInfo.cs +3 -3
  400. package/native/csharp/HostTools/Program.cs +14 -1
  401. package/native/csharp/HostTools/UserPath.cs +17 -0
  402. package/native/csharp/StorageHelper/AssemblyInfo.cs +3 -3
  403. package/native/scripts/edit-user-path.ps1 +6 -2
  404. package/package.json +1 -1
  405. package/sandbox/addons/browser-use-mcp/requirements.in +1 -0
  406. package/sandbox/addons/browser-use-mcp/requirements.txt +2350 -0
  407. package/sandbox/addons/chrome-devtools-mcp/package-lock.json +38 -0
  408. package/sandbox/addons/chrome-devtools-mcp/package.json +7 -0
  409. package/sandbox/addons/comet-mcp/package-lock.json +1277 -0
  410. package/sandbox/addons/comet-mcp/package.json +7 -0
  411. package/sandbox/addons/perplexity-mcp/package-lock.json +1655 -0
  412. package/sandbox/addons/perplexity-mcp/package.json +7 -0
  413. package/sandbox/scripts/add-firewall-port.ps1 +18 -4
  414. package/sandbox/scripts/get-signature.ps1 +13 -0
  415. package/sandbox/scripts/set-machine-environment.ps1 +30 -15
  416. package/sandbox/templates/fivem/README.txt +6 -2
  417. package/sandbox/templates/fivem/cs/Client/Client.csproj +15 -0
  418. package/sandbox/templates/fivem/cs/Client/ClientMain.cs +20 -0
  419. package/sandbox/templates/fivem/cs/Server/Server.csproj +14 -0
  420. package/sandbox/templates/fivem/cs/Server/ServerMain.cs +20 -0
  421. package/sandbox/templates/fivem/cs/fxmanifest.lua +11 -0
  422. package/sandbox/templates/fivem/js/client.js +12 -0
  423. package/sandbox/templates/fivem/js/fxmanifest.lua +9 -0
  424. package/sandbox/templates/fivem/js/server.js +6 -0
  425. package/sandbox/templates/fivem/lua/client.lua +8 -0
  426. package/sandbox/templates/fivem/lua/fxmanifest.lua +10 -0
  427. package/sandbox/templates/fivem/lua/server.lua +6 -0
  428. package/sandbox/templates/fivem/server.cfg +37 -0
  429. package/sandbox/templates/fivem/ts/build.js +17 -0
  430. package/sandbox/templates/fivem/ts/fxmanifest.lua +9 -0
  431. package/sandbox/templates/fivem/ts/package.json +16 -0
  432. package/sandbox/templates/fivem/ts/src/client/client.ts +12 -0
  433. package/sandbox/templates/fivem/ts/src/client/tsconfig.json +13 -0
  434. package/sandbox/templates/fivem/ts/src/server/server.ts +6 -0
  435. package/sandbox/templates/fivem/ts/src/server/tsconfig.json +13 -0
  436. package/schemas/config.schema.json +120 -27
  437. package/schemas/sandbox-config.schema.json +45 -14
  438. package/sandbox/scripts/get-signer.ps1 +0 -8
@@ -10,7 +10,7 @@
10
10
  "defaultHarness": {
11
11
  "type": "string",
12
12
  "pattern": "^[A-Za-z0-9_-]+$",
13
- "description": "Agent started by `sandbox launch` (sandbox claude always runs claude)."
13
+ "description": "The agent that starts when you do not name one (starting claude by name always runs claude)."
14
14
  },
15
15
  "guestWorkspace": {
16
16
  "anyOf": [
@@ -63,7 +63,7 @@
63
63
  "properties": {
64
64
  "enabled": {
65
65
  "type": "boolean",
66
- "description": "Keep an audit log on this PC of what your agents did: programs started (with their command lines, secrets hidden), files changed in the projects, git commits, sessions, and what the repo guard caught, each linked to the agent session that did it where that can be known. The sandbox cannot change it. Read it with sandbox audit or on the Activity page."
66
+ "description": "Keep an audit log on this PC of what your agents did: programs started (with their command lines, secrets hidden), files changed in the projects, git commits, sessions, and what the repo guard caught, each linked to the agent session that did it where that can be known. The sandbox cannot change it. Read it on the Activity page."
67
67
  },
68
68
  "days": {
69
69
  "type": "integer",
@@ -130,7 +130,7 @@
130
130
  "windows-sandbox",
131
131
  "hcs"
132
132
  ],
133
- "description": "(alpha) What runs the sandbox. \"windows-sandbox\" = Windows Sandbox (the default: desktop, Windows Terminal, GPU, clipboard, audio, printers). \"hcs\" = a headless Hyper-V isolated Server Core container for agents (no desktop, GPU or clipboard); it needs Windows features and an image on this PC (sandbox engine check hcs lists what is missing), and starting it is not enabled yet in this alpha. sandbox engine shows what each engine can do. Yours only: a project file (.sandbox-config.json) cannot set it."
133
+ "description": "(alpha) What runs the sandbox. \"windows-sandbox\" = Windows Sandbox (the default: desktop, Windows Terminal, GPU, clipboard, audio, printers). \"hcs\" = a headless Hyper-V isolated Server Core container for agents (no desktop, GPU or clipboard); it needs Windows features and an image on this PC (Maintenance > Engine lists what is missing), and starting it is not enabled yet in this alpha. Maintenance > Engine shows what each engine can do. Yours only: a project file (.sandbox-config.json) cannot set it."
134
134
  },
135
135
  "memoryMb": {
136
136
  "anyOf": [
@@ -216,7 +216,7 @@
216
216
  },
217
217
  "clipboard": {
218
218
  "type": "boolean",
219
- "description": "Shared clipboard between this PC and the sandbox. Also lets an agent's copy (in sandbox attach) reach this PC's clipboard."
219
+ "description": "Shared clipboard between this PC and the sandbox. Also lets an agent's copy (in an attached terminal) reach this PC's clipboard."
220
220
  },
221
221
  "audioInput": {
222
222
  "type": "boolean",
@@ -261,7 +261,7 @@
261
261
  "root": {
262
262
  "type": "string",
263
263
  "minLength": 1,
264
- "description": "Where everything is kept on this PC (tools, databases, logins, launches). The default is a private folder for you under %ProgramData%\\AgentSandbox\\users, which works for installs for one user and for everyone. sandbox storage move <folder> moves it."
264
+ "description": "Where everything is kept on this PC (tools, databases, logins, launches). The default is a private folder for you under %ProgramData%\\AgentSandbox\\users, which works for installs for one user and for everyone. Maintenance > Storage moves it."
265
265
  },
266
266
  "persistAgentState": {
267
267
  "type": "boolean",
@@ -282,7 +282,7 @@
282
282
  "off",
283
283
  "vhdx"
284
284
  ],
285
- "description": "(beta) Keep the sandbox tools, state and logs inside one disk image file (vhdx) instead of loose folders, so scanning programs on this PC see one file. Not yet tried on a real PC. Turn it on with sandbox storage contained on (it moves your files and asks first); Windows asks for permission to mount the image when a sandbox starts. \"off\" = loose folders, as always. Yours only: a project file (.sandbox-config.json) cannot set it."
285
+ "description": "(beta) Keep the sandbox tools, state and logs inside one disk image file (vhdx) instead of loose folders, so scanning programs on this PC see one file. Not yet tried on a real PC. Turn it on in Maintenance > Storage (it moves your files and asks first); Windows asks for permission to mount the image when a sandbox starts. \"off\" = loose folders, as always. Yours only: a project file (.sandbox-config.json) cannot set it."
286
286
  },
287
287
  "containedMaxGb": {
288
288
  "type": "integer",
@@ -293,7 +293,7 @@
293
293
  "warnDataGb": {
294
294
  "type": "number",
295
295
  "minimum": 0,
296
- "description": "Say at launch when the persisted data (tools, databases, logins) is bigger than this many GB; 0 = never. sandbox data shows what takes the space."
296
+ "description": "Say at launch when the persisted data (tools, databases, logins) is bigger than this many GB; 0 = never. Maintenance > Data shows what takes the space."
297
297
  }
298
298
  },
299
299
  "additionalProperties": false
@@ -366,7 +366,7 @@
366
366
  "properties": {
367
367
  "enabled": {
368
368
  "type": "boolean",
369
- "description": "(Alpha: not yet tried on a real PC) Send the sandbox's traffic through a VPN. Only the sandbox: your PC's own connection is untouched. Needs a saved login first (sandbox vpn login). The agent in the sandbox can read that login and can turn the tunnel off (it is the administrator there)."
369
+ "description": "(Alpha: not yet tried on a real PC) Send the sandbox's traffic through a VPN. Only the sandbox: your PC's own connection is untouched. Needs a saved login first (Settings > Network > VPN). The agent in the sandbox can read that login and can turn the tunnel off (it is the administrator there)."
370
370
  },
371
371
  "provider": {
372
372
  "type": "string",
@@ -406,7 +406,7 @@
406
406
  "properties": {
407
407
  "shareToken": {
408
408
  "type": "boolean",
409
- "description": "Give each sandbox the GitHub token you saved with `sandbox github login` (best a fine-grained token limited to some repositories and permissions), so gh and https git work there without logging in. Only with provisioning.git.access \"full\". The agent in the sandbox can read the token and use it for whatever it allows. A project file (.sandbox-config.json) cannot turn this on."
409
+ "description": "Give each sandbox the GitHub token you saved in Accounts (best a fine-grained token limited to some repositories and permissions), so gh and https git work there without logging in. Only with provisioning.git.access \"full\". The agent in the sandbox can read the token and use it for whatever it allows. A project file (.sandbox-config.json) cannot turn this on."
410
410
  }
411
411
  },
412
412
  "additionalProperties": false
@@ -419,7 +419,7 @@
419
419
  "properties": {
420
420
  "share": {
421
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."
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 from Accounts). 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
423
  }
424
424
  },
425
425
  "additionalProperties": false
@@ -429,7 +429,7 @@
429
429
  "properties": {
430
430
  "share": {
431
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."
432
+ "description": "Hand your saved Steam (SteamCMD) sign-in to sandboxes that use steam (sign in once with sbx-steam login, or take it from a SteamCMD folder in Accounts). 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
433
  }
434
434
  },
435
435
  "additionalProperties": false
@@ -439,7 +439,7 @@
439
439
  "properties": {
440
440
  "share": {
441
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."
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 from Accounts). 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
443
  }
444
444
  },
445
445
  "additionalProperties": false
@@ -449,7 +449,7 @@
449
449
  "properties": {
450
450
  "share": {
451
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."
452
+ "description": "Hand your saved Cfx.re (FiveM / RedM server key) sign-in to sandboxes that use fivem (type the key in Accounts). 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
453
  }
454
454
  },
455
455
  "additionalProperties": false
@@ -459,7 +459,7 @@
459
459
  "properties": {
460
460
  "share": {
461
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."
462
+ "description": "Hand your saved Android upload keystore sign-in to sandboxes that use android (import the upload.jks file in Accounts). 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
463
  }
464
464
  },
465
465
  "additionalProperties": false
@@ -469,7 +469,7 @@
469
469
  "properties": {
470
470
  "share": {
471
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."
472
+ "description": "Hand your saved Google Play (service account) sign-in to sandboxes that use android (import the service-account.json file in Accounts). 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
473
  }
474
474
  },
475
475
  "additionalProperties": false
@@ -479,7 +479,7 @@
479
479
  "properties": {
480
480
  "share": {
481
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."
482
+ "description": "Hand your saved Expo (EAS) sign-in to sandboxes that use reactNative (type the token in Accounts). 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
483
  }
484
484
  },
485
485
  "additionalProperties": false
@@ -489,14 +489,34 @@
489
489
  "properties": {
490
490
  "share": {
491
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."
492
+ "description": "Hand your saved App Store Connect API key sign-in to sandboxes that use reactNative or flutter (import the AuthKey.p8 file in Accounts). 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
+ "perplexity": {
498
+ "type": "object",
499
+ "properties": {
500
+ "share": {
501
+ "type": "boolean",
502
+ "description": "Hand your saved Perplexity API key sign-in to sandboxes that use the Perplexity MCP app (type the API key in Accounts, or import it from a .env file). Kept encrypted on this PC; The agent in the sandbox can use this sign-in while it is there. It can read the key and spend your API credit: use a separate API key with a spending limit. Perplexity Pro does not include API use; the API key is billed separately. Only the variable PERPLEXITY_API_KEY of the agent gets it: nothing in the sandbox writes it to a file. Yours only: a project file can only turn it off."
503
+ }
504
+ },
505
+ "additionalProperties": false
506
+ },
507
+ "comet": {
508
+ "type": "object",
509
+ "properties": {
510
+ "share": {
511
+ "type": "boolean",
512
+ "description": "Hand your saved Comet (Perplexity browser) sign-in to sandboxes that use the Comet app (sign in to Comet once in a sandbox: it cannot be taken from this PC). Kept encrypted on this PC; The agent in the sandbox can use this sign-in while it is there. It can act as you in Comet and spend your Perplexity Computer credits; agentic browsing is open to prompt injection from the pages it reads. Your Comet sign-in can't be copied from this PC: Windows locks it to your PC account. Sign in once inside a sandbox and it is kept for the next ones. Only the perplexity.ai sign-in cookies are kept: never saved passwords, other sites, localStorage or history. Never import your main browser profile. Several sandboxes can use it at once: the sign-in the last one hands back is kept. Yours only: a project file can only turn it off."
493
513
  }
494
514
  },
495
515
  "additionalProperties": false
496
516
  }
497
517
  },
498
518
  "additionalProperties": false,
499
- "description": "Service sign-ins for sandboxes (game stores, engines, app signing). Manage them in Accounts: sandbox account status."
519
+ "description": "Service sign-ins for sandboxes (game stores, engines, app signing, Perplexity). Manage them in Accounts."
500
520
  },
501
521
  "pcInstalls": {
502
522
  "type": "object",
@@ -861,6 +881,14 @@
861
881
  "type": "boolean",
862
882
  "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
883
  },
884
+ "visualStudio": {
885
+ "type": "string",
886
+ "enum": [
887
+ "full",
888
+ "autosdk"
889
+ ],
890
+ "description": "\"full\": install Visual Studio Community (the engine finds it through the Setup API; ~10 GB, redone every boot). \"autosdk\" (experimental): skip Visual Studio and build an Unreal AutoSDK tree from the portable MSVC in tools\\unreal\\autosdk (kept between sandboxes); UnrealBuildTool finds MSVC through AutoSDK, but the editor's Visual Studio integration is not available. Needs toolchains.msvc (turned on for you)."
891
+ },
864
892
  "persistEngines": {
865
893
  "type": "boolean",
866
894
  "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)."
@@ -1746,11 +1774,11 @@
1746
1774
  "properties": {
1747
1775
  "enabled": {
1748
1776
  "type": "boolean",
1749
- "description": "Allow sandbox claude --terminal / sandbox attach from this PC."
1777
+ "description": "Allow attaching this PC's terminal to a session (the terminal option when starting an agent, and attach)."
1750
1778
  },
1751
1779
  "reuseSession": {
1752
1780
  "type": "boolean",
1753
- "description": "sandbox claude -t in a running sandbox reattaches to this folder's session when no terminal on this PC is attached to it (--new always starts another)."
1781
+ "description": "Starting an agent with a terminal in a running sandbox reattaches to this folder's session when no terminal on this PC is attached to it (starting a new session on purpose always starts another)."
1754
1782
  },
1755
1783
  "auto": {
1756
1784
  "type": "boolean",
@@ -1758,7 +1786,7 @@
1758
1786
  },
1759
1787
  "autoHide": {
1760
1788
  "type": "boolean",
1761
- "description": "Hide the Windows Sandbox window whenever this terminal attaches; it keeps running (sandbox show brings it back)."
1789
+ "description": "Hide the Windows Sandbox window whenever this terminal attaches; it keeps running (Sandbox > Status shows it again)."
1762
1790
  },
1763
1791
  "confirmCtrlC": {
1764
1792
  "type": "boolean",
@@ -1772,7 +1800,7 @@
1772
1800
  "properties": {
1773
1801
  "enabled": {
1774
1802
  "type": "boolean",
1775
- "description": "(Beta) The web UI: your sandbox sessions in a browser on this PC (http://127.0.0.1:<port>, this PC only). On: every sandbox start also starts it in the background (it keeps running until sandbox web stop or a restart of the PC). Off: only sandbox web start runs it. Open it signed in with sandbox web open."
1803
+ "description": "(Beta) The web UI: your sessions in a browser on this PC (http://127.0.0.1:<port>, this PC only). On: every start of a sandbox also starts it in the background (it keeps running until you stop it in Maintenance > Web UI or restart the PC). Off: it runs only when you start it there. Open it signed in from the same page."
1776
1804
  },
1777
1805
  "port": {
1778
1806
  "type": "integer",
@@ -1789,7 +1817,7 @@
1789
1817
  "properties": {
1790
1818
  "windowsSignIn": {
1791
1819
  "type": "boolean",
1792
- "description": "(Beta) Other Windows users of this PC named in web.remote.users sign in to your web UI (and sandbox remote) with their own Windows account: no password, no link."
1820
+ "description": "(Beta) Other Windows users of this PC named in web.remote.users sign in to your web UI (and the remote menu) with their own Windows account: no password, no link."
1793
1821
  },
1794
1822
  "users": {
1795
1823
  "maxItems": 32,
@@ -1828,7 +1856,7 @@
1828
1856
  "properties": {
1829
1857
  "enabled": {
1830
1858
  "type": "boolean",
1831
- "description": "(Beta) Devices on your network (a phone): an HTTPS address on this PC for devices you pair with a one-time code (sandbox web pair). Needs a firewall rule (sandbox web lan on asks Windows once). Off: every paired device is signed out."
1859
+ "description": "(Beta) Devices on your network (a phone): an HTTPS address on this PC for devices you pair with a one-time code (Remote access). Needs a firewall rule (turning it on asks Windows once). Off: every paired device is signed out."
1832
1860
  },
1833
1861
  "port": {
1834
1862
  "type": "integer",
@@ -2001,7 +2029,16 @@
2001
2029
  "shellcheck",
2002
2030
  "gitleaks",
2003
2031
  "ast-grep",
2004
- "rust-analyzer"
2032
+ "rust-analyzer",
2033
+ "lua-language-server",
2034
+ "stylua",
2035
+ "selene",
2036
+ "perplexity-mcp",
2037
+ "perplexity-computer-mcp",
2038
+ "comet",
2039
+ "comet-mcp",
2040
+ "chrome-devtools-mcp",
2041
+ "browser-use-mcp"
2005
2042
  ]
2006
2043
  },
2007
2044
  "description": "Apps from the catalogue to install in every sandbox (the Apps screen in the menu lists them by category). Each is downloaded once and kept."
@@ -2095,7 +2132,7 @@
2095
2132
  },
2096
2133
  "copyCredentials": {
2097
2134
  "type": "boolean",
2098
- "description": "Copy your Claude LOGIN into the sandbox. Prefer sandbox account instead."
2135
+ "description": "Copy your Claude LOGIN into the sandbox. Prefer saving the login in Accounts instead."
2099
2136
  },
2100
2137
  "overwrite": {
2101
2138
  "type": "boolean",
@@ -2259,6 +2296,62 @@
2259
2296
  },
2260
2297
  "description": "Agents that can run in the sandbox."
2261
2298
  },
2299
+ "codex": {
2300
+ "type": "object",
2301
+ "properties": {
2302
+ "sandboxMode": {
2303
+ "type": "string",
2304
+ "enum": [
2305
+ "danger-full-access",
2306
+ "workspace-write",
2307
+ "read-only"
2308
+ ],
2309
+ "description": "Codex's own sandbox. Inside Windows Sandbox Codex's own sandbox only slows it down (it re-grants file permissions over your profile at every boot), so the default is danger-full-access: Windows Sandbox is the sandbox."
2310
+ },
2311
+ "approvalPolicy": {
2312
+ "type": "string",
2313
+ "enum": [
2314
+ "never",
2315
+ "on-request",
2316
+ "on-failure",
2317
+ "untrusted"
2318
+ ],
2319
+ "description": "When Codex asks before it runs a command. \"never\" with danger-full-access starts it with no questions."
2320
+ },
2321
+ "model": {
2322
+ "type": "string",
2323
+ "maxLength": 100,
2324
+ "pattern": "^[A-Za-z0-9._:/-]*$",
2325
+ "description": "The model Codex uses. Empty = Codex's own default."
2326
+ },
2327
+ "reasoningEffort": {
2328
+ "type": "string",
2329
+ "enum": [
2330
+ "default",
2331
+ "minimal",
2332
+ "low",
2333
+ "medium",
2334
+ "high",
2335
+ "xhigh"
2336
+ ],
2337
+ "description": "How hard Codex thinks. \"default\" = Codex's own default."
2338
+ },
2339
+ "windowsSandbox": {
2340
+ "type": "string",
2341
+ "enum": [
2342
+ "off",
2343
+ "unelevated",
2344
+ "elevated"
2345
+ ],
2346
+ "description": "Codex's Windows sandbox mode in its config.toml. \"off\" removes the setting so Codex does not set up its sandbox users and firewall rules at every boot."
2347
+ },
2348
+ "mcpLoginsInFile": {
2349
+ "type": "boolean",
2350
+ "description": "Keep the sign-ins of Codex's MCP servers in a file in the saved Codex folder (mcp_oauth_credentials_store = \"file\"), so they survive between sandboxes. A value you set in config.toml is kept."
2351
+ }
2352
+ },
2353
+ "additionalProperties": false
2354
+ },
2262
2355
  "hooks": {
2263
2356
  "type": "object",
2264
2357
  "properties": {
@@ -2343,7 +2436,7 @@
2343
2436
  "afterCrash",
2344
2437
  "never"
2345
2438
  ],
2346
- "description": "When a sandbox starts after one that had agent sessions: \"ask\" lists them and asks whether to reopen them (without a terminal it prints the command sandbox resume), \"always\" reopens them, \"afterCrash\" reopens them only when the last sandbox ended unexpectedly, \"never\" leaves it to sandbox resume. Terminal tabs you opened yourself in the sandbox are never reopened."
2439
+ "description": "When a sandbox starts after one that had agent sessions: \"ask\" lists them and asks whether to reopen them (without a terminal it only says they can be reopened), \"always\" reopens them, \"afterCrash\" reopens them only when the last sandbox ended unexpectedly, \"never\" leaves it to you (Sessions reopens them). Terminal tabs you opened yourself in the sandbox are never reopened."
2347
2440
  },
2348
2441
  "restartAfterCrash": {
2349
2442
  "type": "boolean",
@@ -117,7 +117,7 @@
117
117
  },
118
118
  "clipboard": {
119
119
  "type": "boolean",
120
- "description": "Shared clipboard between this PC and the sandbox. Also lets an agent's copy (in sandbox attach) reach this PC's clipboard."
120
+ "description": "Shared clipboard between this PC and the sandbox. Also lets an agent's copy (in an attached terminal) reach this PC's clipboard."
121
121
  },
122
122
  "audioInput": {
123
123
  "type": "boolean",
@@ -183,7 +183,7 @@
183
183
  "properties": {
184
184
  "share": {
185
185
  "type": "boolean",
186
- "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."
186
+ "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 from Accounts). 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."
187
187
  }
188
188
  },
189
189
  "additionalProperties": false
@@ -193,7 +193,7 @@
193
193
  "properties": {
194
194
  "share": {
195
195
  "type": "boolean",
196
- "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."
196
+ "description": "Hand your saved Steam (SteamCMD) sign-in to sandboxes that use steam (sign in once with sbx-steam login, or take it from a SteamCMD folder in Accounts). 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."
197
197
  }
198
198
  },
199
199
  "additionalProperties": false
@@ -203,7 +203,7 @@
203
203
  "properties": {
204
204
  "share": {
205
205
  "type": "boolean",
206
- "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."
206
+ "description": "Hand your saved Unity sign-in to sandboxes that use unity (sign in once in a sandbox, or take this PC's licence from Accounts). 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."
207
207
  }
208
208
  },
209
209
  "additionalProperties": false
@@ -213,7 +213,7 @@
213
213
  "properties": {
214
214
  "share": {
215
215
  "type": "boolean",
216
- "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."
216
+ "description": "Hand your saved Cfx.re (FiveM / RedM server key) sign-in to sandboxes that use fivem (type the key in Accounts). 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."
217
217
  }
218
218
  },
219
219
  "additionalProperties": false
@@ -223,7 +223,7 @@
223
223
  "properties": {
224
224
  "share": {
225
225
  "type": "boolean",
226
- "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."
226
+ "description": "Hand your saved Android upload keystore sign-in to sandboxes that use android (import the upload.jks file in Accounts). 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."
227
227
  }
228
228
  },
229
229
  "additionalProperties": false
@@ -233,7 +233,7 @@
233
233
  "properties": {
234
234
  "share": {
235
235
  "type": "boolean",
236
- "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."
236
+ "description": "Hand your saved Google Play (service account) sign-in to sandboxes that use android (import the service-account.json file in Accounts). 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."
237
237
  }
238
238
  },
239
239
  "additionalProperties": false
@@ -243,7 +243,7 @@
243
243
  "properties": {
244
244
  "share": {
245
245
  "type": "boolean",
246
- "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."
246
+ "description": "Hand your saved Expo (EAS) sign-in to sandboxes that use reactNative (type the token in Accounts). 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."
247
247
  }
248
248
  },
249
249
  "additionalProperties": false
@@ -253,7 +253,27 @@
253
253
  "properties": {
254
254
  "share": {
255
255
  "type": "boolean",
256
- "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."
256
+ "description": "Hand your saved App Store Connect API key sign-in to sandboxes that use reactNative or flutter (import the AuthKey.p8 file in Accounts). 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."
257
+ }
258
+ },
259
+ "additionalProperties": false
260
+ },
261
+ "perplexity": {
262
+ "type": "object",
263
+ "properties": {
264
+ "share": {
265
+ "type": "boolean",
266
+ "description": "Hand your saved Perplexity API key sign-in to sandboxes that use the Perplexity MCP app (type the API key in Accounts, or import it from a .env file). Kept encrypted on this PC; The agent in the sandbox can use this sign-in while it is there. It can read the key and spend your API credit: use a separate API key with a spending limit. Perplexity Pro does not include API use; the API key is billed separately. Only the variable PERPLEXITY_API_KEY of the agent gets it: nothing in the sandbox writes it to a file. Yours only: a project file can only turn it off."
267
+ }
268
+ },
269
+ "additionalProperties": false
270
+ },
271
+ "comet": {
272
+ "type": "object",
273
+ "properties": {
274
+ "share": {
275
+ "type": "boolean",
276
+ "description": "Hand your saved Comet (Perplexity browser) sign-in to sandboxes that use the Comet app (sign in to Comet once in a sandbox: it cannot be taken from this PC). Kept encrypted on this PC; The agent in the sandbox can use this sign-in while it is there. It can act as you in Comet and spend your Perplexity Computer credits; agentic browsing is open to prompt injection from the pages it reads. Your Comet sign-in can't be copied from this PC: Windows locks it to your PC account. Sign in once inside a sandbox and it is kept for the next ones. Only the perplexity.ai sign-in cookies are kept: never saved passwords, other sites, localStorage or history. Never import your main browser profile. Several sandboxes can use it at once: the sign-in the last one hands back is kept. Yours only: a project file can only turn it off."
257
277
  }
258
278
  },
259
279
  "additionalProperties": false
@@ -546,6 +566,14 @@
546
566
  "type": "boolean",
547
567
  "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."
548
568
  },
569
+ "visualStudio": {
570
+ "type": "string",
571
+ "enum": [
572
+ "full",
573
+ "autosdk"
574
+ ],
575
+ "description": "\"full\": install Visual Studio Community (the engine finds it through the Setup API; ~10 GB, redone every boot). \"autosdk\" (experimental): skip Visual Studio and build an Unreal AutoSDK tree from the portable MSVC in tools\\unreal\\autosdk (kept between sandboxes); UnrealBuildTool finds MSVC through AutoSDK, but the editor's Visual Studio integration is not available. Needs toolchains.msvc (turned on for you)."
576
+ },
549
577
  "persistEngines": {
550
578
  "type": "boolean",
551
579
  "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)."
@@ -1429,11 +1457,11 @@
1429
1457
  "properties": {
1430
1458
  "enabled": {
1431
1459
  "type": "boolean",
1432
- "description": "Allow sandbox claude --terminal / sandbox attach from this PC."
1460
+ "description": "Allow attaching this PC's terminal to a session (the terminal option when starting an agent, and attach)."
1433
1461
  },
1434
1462
  "reuseSession": {
1435
1463
  "type": "boolean",
1436
- "description": "sandbox claude -t in a running sandbox reattaches to this folder's session when no terminal on this PC is attached to it (--new always starts another)."
1464
+ "description": "Starting an agent with a terminal in a running sandbox reattaches to this folder's session when no terminal on this PC is attached to it (starting a new session on purpose always starts another)."
1437
1465
  },
1438
1466
  "auto": {
1439
1467
  "type": "boolean",
@@ -1441,7 +1469,7 @@
1441
1469
  },
1442
1470
  "autoHide": {
1443
1471
  "type": "boolean",
1444
- "description": "Hide the Windows Sandbox window whenever this terminal attaches; it keeps running (sandbox show brings it back)."
1472
+ "description": "Hide the Windows Sandbox window whenever this terminal attaches; it keeps running (Sandbox > Status shows it again)."
1445
1473
  },
1446
1474
  "confirmCtrlC": {
1447
1475
  "type": "boolean",
@@ -1540,7 +1568,10 @@
1540
1568
  "shellcheck",
1541
1569
  "gitleaks",
1542
1570
  "ast-grep",
1543
- "rust-analyzer"
1571
+ "rust-analyzer",
1572
+ "lua-language-server",
1573
+ "stylua",
1574
+ "selene"
1544
1575
  ]
1545
1576
  },
1546
1577
  "description": "Apps from the catalogue this project adds to yours (agent add-ons such as rtk, Headroom and the MCP servers are set in your own settings only)."
@@ -1561,7 +1592,7 @@
1561
1592
  },
1562
1593
  "copyCredentials": {
1563
1594
  "type": "boolean",
1564
- "description": "Copy your Claude LOGIN into the sandbox. Prefer sandbox account instead."
1595
+ "description": "Copy your Claude LOGIN into the sandbox. Prefer saving the login in Accounts instead."
1565
1596
  },
1566
1597
  "syncHistory": {
1567
1598
  "type": "boolean",
@@ -1,8 +0,0 @@
1
- #Requires -Version 5.1
2
- # Prints the subject of a file's Authenticode signature when it is valid; prints nothing when the file is unsigned or
3
- # was tampered with (guest/toolchains/native/vcruntime.ts checks Microsoft's signature before running an installer).
4
- param([Parameter(Mandatory = $true)][string]$Path)
5
- $ErrorActionPreference = 'Stop'
6
-
7
- $signature = Get-AuthenticodeSignature -LiteralPath $Path
8
- if ($signature.Status -eq 'Valid') { $signature.SignerCertificate.Subject }