windows-development-sandbox 1.23.2 → 1.25.1

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 (211) hide show
  1. package/config.example.json +5 -3
  2. package/dist/app/features/data/data.def.d.ts +4 -4
  3. package/dist/app/features/data/data.run.d.ts +1 -1
  4. package/dist/app/features/defs.d.ts +161 -6
  5. package/dist/app/features/defs.js +7 -0
  6. package/dist/app/features/projects/projects.def.d.ts +1 -1
  7. package/dist/app/features/projects/projects.run.d.ts +1 -1
  8. package/dist/app/features/unreal/index.d.ts +2 -0
  9. package/dist/app/features/unreal/index.js +3 -0
  10. package/dist/app/features/unreal/unreal.def.d.ts +236 -0
  11. package/dist/app/features/unreal/unreal.def.js +379 -0
  12. package/dist/app/features/unreal/unreal.run.d.ts +96 -0
  13. package/dist/app/features/unreal/unreal.run.js +217 -0
  14. package/dist/app/registry.js +5 -0
  15. package/dist/bin/agent-sandbox.js +2 -2
  16. package/dist/bin/{chunk-7YPEDAJD.js → chunk-3GAXLATK.js} +58 -5
  17. package/dist/bin/{chunk-USTRSHIE.js → chunk-F4PVBN23.js} +2615 -1515
  18. package/dist/bin/{chunk-QFSJX2KW.js → chunk-G3TG4ZT7.js} +1 -1
  19. package/dist/bin/claude-host.js +2 -2
  20. package/dist/bin/claude-sbx.js +2 -2
  21. package/dist/bin/codex-sbx.js +2 -2
  22. package/dist/bin/gemini-sbx.js +2 -2
  23. package/dist/bin/sandbox.js +2 -2
  24. package/dist/bin/sbx-hide.js +2 -2
  25. package/dist/bin/sbx-show.js +2 -2
  26. package/dist/cli/commands/launch/launch.js +5 -2
  27. package/dist/cli/commands/registry.js +3 -0
  28. package/dist/cli/manifest.d.ts +18 -0
  29. package/dist/cli/manifest.js +26 -0
  30. package/dist/cli/menu/coverage-exempt.js +1 -0
  31. package/dist/cli/menu/pages/sandbox-page.d.ts +3 -0
  32. package/dist/cli/menu/pages/sandbox-page.js +34 -4
  33. package/dist/cli/menu/views.js +2 -0
  34. package/dist/core/config/defaults.js +18 -5
  35. package/dist/core/detect/toolchains.js +0 -6
  36. package/dist/core/schema/config.d.ts +10 -9
  37. package/dist/core/schema/pc-installs.d.ts +3 -1
  38. package/dist/core/schema/pc-installs.js +10 -1
  39. package/dist/core/schema/toolchains.d.ts +1 -2
  40. package/dist/core/schema/toolchains.js +4 -7
  41. package/dist/guest/accounts/kinds/epic.js +18 -13
  42. package/dist/guest/agents/agent-files.d.ts +11 -7
  43. package/dist/guest/agents/agent-files.js +37 -11
  44. package/dist/guest/agents/local-state.d.ts +2 -1
  45. package/dist/guest/agents/local-state.js +2 -1
  46. package/dist/guest/apps/after-install.d.ts +1 -1
  47. package/dist/guest/apps/after-install.js +6 -1
  48. package/dist/guest/apps/app-installer.d.ts +1 -0
  49. package/dist/guest/apps/app-installer.js +13 -3
  50. package/dist/guest/apps/comet-unpack.js +3 -2
  51. package/dist/guest/apps/resolvers-gamedev.js +55 -1
  52. package/dist/guest/boot/boot-console.d.ts +28 -0
  53. package/dist/guest/boot/boot-console.js +98 -0
  54. package/dist/guest/boot/boot.d.ts +8 -1
  55. package/dist/guest/boot/boot.js +80 -43
  56. package/dist/guest/boot/graph.d.ts +9 -5
  57. package/dist/guest/boot/graph.js +8 -2
  58. package/dist/guest/boot/guide.js +24 -0
  59. package/dist/guest/boot/progress-view.d.ts +116 -0
  60. package/dist/guest/boot/progress-view.js +456 -0
  61. package/dist/guest/boot/runner.d.ts +20 -10
  62. package/dist/guest/boot/runner.js +39 -47
  63. package/dist/guest/daemon/daemon.js +3 -0
  64. package/dist/guest/runtime/log-line.d.ts +7 -0
  65. package/dist/guest/runtime/log-line.js +18 -0
  66. package/dist/guest/runtime/log.d.ts +17 -4
  67. package/dist/guest/runtime/log.js +40 -17
  68. package/dist/guest/runtime/process.d.ts +9 -0
  69. package/dist/guest/runtime/process.js +69 -8
  70. package/dist/guest/setup/addon-mcp.d.ts +7 -0
  71. package/dist/guest/setup/addon-mcp.js +19 -4
  72. package/dist/guest/setup/browser-gpu.js +14 -11
  73. package/dist/guest/setup/environment.js +9 -4
  74. package/dist/guest/setup/headroom.js +4 -0
  75. package/dist/guest/setup/hooks.d.ts +2 -0
  76. package/dist/guest/setup/hooks.js +4 -0
  77. package/dist/guest/setup/path-plan.d.ts +12 -0
  78. package/dist/guest/setup/path-plan.js +18 -0
  79. package/dist/guest/toolchains/engines/epic-launcher.d.ts +26 -0
  80. package/dist/guest/toolchains/engines/epic-launcher.js +127 -0
  81. package/dist/guest/toolchains/engines/unreal-engines.d.ts +21 -1
  82. package/dist/guest/toolchains/engines/unreal-engines.js +163 -3
  83. package/dist/guest/toolchains/engines/unreal-status.d.ts +13 -0
  84. package/dist/guest/toolchains/engines/unreal-status.js +41 -0
  85. package/dist/guest/toolchains/native/debuggers.d.ts +6 -0
  86. package/dist/guest/toolchains/native/debuggers.js +57 -0
  87. package/dist/guest/toolchains/native/mesa.js +15 -8
  88. package/dist/guest/toolchains/native/rust-extras.d.ts +7 -0
  89. package/dist/guest/toolchains/native/rust-extras.js +23 -1
  90. package/dist/guest/toolchains/native/unreal.d.ts +2 -2
  91. package/dist/guest/toolchains/native/unreal.js +96 -20
  92. package/dist/guest/toolchains/native/visual-studio.d.ts +14 -14
  93. package/dist/guest/toolchains/native/visual-studio.js +145 -174
  94. package/dist/guest/toolchains/native/vs-persist.d.ts +189 -0
  95. package/dist/guest/toolchains/native/vs-persist.js +256 -0
  96. package/dist/guest/toolchains/native/vs-request.d.ts +6 -26
  97. package/dist/guest/toolchains/native/vs-request.js +16 -50
  98. package/dist/guest/toolchains/plan.js +23 -15
  99. package/dist/guest/toolchains/tools/vscode-profile.js +2 -0
  100. package/dist/host/accounts/kinds/epic.js +11 -5
  101. package/dist/host/accounts/source.d.ts +2 -0
  102. package/dist/host/accounts/source.js +1 -0
  103. package/dist/host/migrate/migrations/drop-vs-install-files.d.ts +5 -0
  104. package/dist/host/migrate/migrations/drop-vs-install-files.js +34 -0
  105. package/dist/host/migrate/registry.js +7 -1
  106. package/dist/host/pc-installs/discover.d.ts +2 -0
  107. package/dist/host/pc-installs/discover.js +25 -5
  108. package/dist/host/pc-installs/epic.d.ts +3 -0
  109. package/dist/host/pc-installs/epic.js +33 -2
  110. package/dist/host/pc-installs/source.d.ts +1 -1
  111. package/dist/host/pc-installs/unreal-vault.d.ts +11 -0
  112. package/dist/host/pc-installs/unreal-vault.js +78 -0
  113. package/dist/host/pc-installs/unreal.d.ts +36 -0
  114. package/dist/host/pc-installs/unreal.js +145 -2
  115. package/dist/host/profile/claude-profile.d.ts +8 -0
  116. package/dist/host/profile/claude-profile.js +43 -4
  117. package/dist/host/profile/index.d.ts +1 -1
  118. package/dist/host/profile/index.js +1 -1
  119. package/dist/runtime/agent.js +148 -33
  120. package/dist/runtime/daemon.js +3146 -1546
  121. package/dist/runtime/db.js +148 -33
  122. package/dist/runtime/main.js +3982 -2049
  123. package/dist/runtime/netproxy.js +84 -13
  124. package/dist/runtime/tool.js +125 -31
  125. package/dist/runtime/view.js +85 -14
  126. package/dist/selftest/agent-paths.test.js +18 -1
  127. package/dist/selftest/agent-settings.test.js +36 -5
  128. package/dist/selftest/agents-web.test.js +12 -0
  129. package/dist/selftest/boot-console.test.d.ts +2 -0
  130. package/dist/selftest/boot-console.test.js +291 -0
  131. package/dist/selftest/boot-runner.test.js +10 -12
  132. package/dist/selftest/engines.test.js +602 -3
  133. package/dist/selftest/guest-boot.test.js +7 -1
  134. package/dist/selftest/heavy-load.test.js +3 -1
  135. package/dist/selftest/hostile-input.test.js +11 -1
  136. package/dist/selftest/index.js +4 -0
  137. package/dist/selftest/layout.test.js +4 -0
  138. package/dist/selftest/menu-screens.js +3 -1
  139. package/dist/selftest/migrate.test.js +21 -0
  140. package/dist/selftest/mixamo.test.d.ts +2 -0
  141. package/dist/selftest/mixamo.test.js +60 -0
  142. package/dist/selftest/persisted-installs.test.js +169 -33
  143. package/dist/selftest/secrets.test.js +36 -1
  144. package/dist/selftest/support/engine-golden.js +5 -0
  145. package/dist/selftest/support/fixtures.d.ts +4 -3
  146. package/dist/selftest/support/unreal-sample.d.ts +2 -0
  147. package/dist/selftest/support/unreal-sample.js +83 -0
  148. package/dist/selftest/toolchains.test.js +32 -2
  149. package/dist/shared/accounts/index.d.ts +1 -1
  150. package/dist/shared/accounts/index.js +1 -1
  151. package/dist/shared/accounts/kinds/epic.d.ts +6 -1
  152. package/dist/shared/accounts/kinds/epic.js +11 -1
  153. package/dist/shared/apps/associations.d.ts +7 -0
  154. package/dist/shared/apps/associations.js +26 -0
  155. package/dist/shared/apps/catalogue-agents-web.d.ts +4 -1
  156. package/dist/shared/apps/catalogue-agents-web.js +5 -2
  157. package/dist/shared/apps/catalogue-gamedev.js +71 -1
  158. package/dist/shared/apps/index.d.ts +2 -0
  159. package/dist/shared/apps/index.js +2 -0
  160. package/dist/shared/apps/preview.d.ts +2 -0
  161. package/dist/shared/apps/preview.js +10 -0
  162. package/dist/shared/browser-policy.d.ts +14 -0
  163. package/dist/shared/browser-policy.js +22 -0
  164. package/dist/shared/channel/schema.d.ts +3 -6
  165. package/dist/shared/io/index.d.ts +1 -0
  166. package/dist/shared/io/index.js +1 -0
  167. package/dist/shared/io/rotate-log.d.ts +2 -0
  168. package/dist/shared/io/rotate-log.js +16 -0
  169. package/dist/shared/memory/policy.d.ts +5 -0
  170. package/dist/shared/memory/policy.js +7 -0
  171. package/dist/shared/paths/pc-installs.d.ts +13 -2
  172. package/dist/shared/paths/pc-installs.js +1 -0
  173. package/dist/shared/pty/terminal.js +2 -1
  174. package/dist/shared/readiness.d.ts +0 -1
  175. package/dist/shared/readiness.js +0 -1
  176. package/dist/shared/signer.d.ts +4 -0
  177. package/dist/shared/signer.js +2 -0
  178. package/dist/shared/unreal/engines.d.ts +161 -0
  179. package/dist/shared/unreal/engines.js +308 -0
  180. package/dist/shared/unreal/guide.d.ts +19 -0
  181. package/dist/shared/unreal/guide.js +105 -0
  182. package/dist/shared/unreal/index.d.ts +7 -0
  183. package/dist/shared/unreal/index.js +8 -0
  184. package/dist/shared/unreal/launcher-files.d.ts +88 -0
  185. package/dist/shared/unreal/launcher-files.js +292 -0
  186. package/dist/shared/unreal/mixamo.d.ts +5 -0
  187. package/dist/shared/unreal/mixamo.js +16 -0
  188. package/dist/shared/unreal/room.d.ts +17 -0
  189. package/dist/shared/unreal/room.js +34 -0
  190. package/dist/shared/unreal/status.d.ts +54 -0
  191. package/dist/shared/unreal/status.js +57 -0
  192. package/dist/shared/unreal/vault.d.ts +21 -0
  193. package/dist/shared/unreal/vault.js +67 -0
  194. package/dist/shared/unreal/vs-check.d.ts +39 -0
  195. package/dist/shared/unreal/vs-check.js +79 -0
  196. package/dist/sync/watcher.js +5 -1
  197. package/dist/web/index.html +1 -1
  198. package/dist/web/{main-CCILLX2M.js → main-FNE6XEHA.js} +84 -84
  199. package/native/csharp/HcsHost/AssemblyInfo.cs +3 -3
  200. package/native/csharp/HostTools/AssemblyInfo.cs +3 -3
  201. package/native/csharp/StorageHelper/AssemblyInfo.cs +3 -3
  202. package/package.json +1 -1
  203. package/sandbox/csharp/VsSetup.cs +210 -0
  204. package/sandbox/scripts/get-vs-setup.ps1 +93 -0
  205. package/sandbox/scripts/restore-visual-studio.ps1 +78 -0
  206. package/sandbox/scripts/save-visual-studio.ps1 +106 -0
  207. package/sandbox/scripts/set-registry-values.ps1 +35 -0
  208. package/schemas/config.schema.json +38 -9
  209. package/schemas/sandbox-config.schema.json +11 -8
  210. package/dist/guest/toolchains/native/autosdk.d.ts +0 -3
  211. package/dist/guest/toolchains/native/autosdk.js +0 -50
@@ -0,0 +1,39 @@
1
+ import { z } from 'zod';
2
+ export declare const VsSetupReportSchema: z.ZodObject<{
3
+ setupError: z.ZodString;
4
+ instances: z.ZodArray<z.ZodObject<{
5
+ instanceId: z.ZodString;
6
+ installationPath: z.ZodString;
7
+ installationVersion: z.ZodString;
8
+ productId: z.ZodString;
9
+ state: z.ZodNumber;
10
+ isComplete: z.ZodBoolean;
11
+ isLaunchable: z.ZodBoolean;
12
+ packages: z.ZodArray<z.ZodString>;
13
+ toolchains: z.ZodArray<z.ZodObject<{
14
+ version: z.ZodString;
15
+ cl: z.ZodBoolean;
16
+ link: z.ZodBoolean;
17
+ }, z.core.$strip>>;
18
+ }, z.core.$strip>>;
19
+ kitsRoots: z.ZodArray<z.ZodObject<{
20
+ where: z.ZodString;
21
+ path: z.ZodString;
22
+ }, z.core.$strip>>;
23
+ sdks: z.ZodArray<z.ZodObject<{
24
+ version: z.ZodString;
25
+ root: z.ZodString;
26
+ windowsH: z.ZodBoolean;
27
+ kernel32: z.ZodBoolean;
28
+ ucrt: z.ZodBoolean;
29
+ }, z.core.$strip>>;
30
+ }, z.core.$strip>;
31
+ export type VsSetupReport = z.output<typeof VsSetupReportSchema>;
32
+ /** The oldest MSVC Unreal 5.4+ builds with. */
33
+ export declare const MIN_MSVC: readonly [14, 38];
34
+ export interface VsVerdict {
35
+ readonly ok: boolean;
36
+ readonly text: string;
37
+ }
38
+ /** What UnrealBuildTool would find, in plain words. */
39
+ export declare function vsVerdict(r: VsSetupReport): VsVerdict;
@@ -0,0 +1,79 @@
1
+ // Whether UnrealBuildTool would find a compiler: the verdict on what sandbox\scripts\get-vs-setup.ps1 reports. UBT
2
+ // (MicrosoftPlatformSDK / VCToolChain) lists Visual Studio instances through the Setup Configuration API
3
+ // (EnumAllInstances), takes those with the MSVC x64 tools (Microsoft.VisualStudio.Component.VC.Tools.x86.x64) and a
4
+ // VC\Tools\MSVC\<version> with Hostx64\x64\cl.exe, and a Windows SDK under the KitsRoot10 the registry names with its
5
+ // headers and libraries. Unreal 5.4 and later want MSVC 14.38 or newer. Pure.
6
+ import { z } from 'zod';
7
+ export const VsSetupReportSchema = z.object({
8
+ setupError: z.string().max(2000),
9
+ instances: z
10
+ .array(z.object({
11
+ instanceId: z.string().max(100),
12
+ installationPath: z.string().max(400),
13
+ installationVersion: z.string().max(60),
14
+ productId: z.string().max(200),
15
+ state: z.number().int().min(0),
16
+ isComplete: z.boolean(),
17
+ isLaunchable: z.boolean(),
18
+ packages: z.array(z.string().max(200)).max(50),
19
+ toolchains: z.array(z.object({ version: z.string().max(40), cl: z.boolean(), link: z.boolean() })).max(50),
20
+ }))
21
+ .max(20),
22
+ kitsRoots: z.array(z.object({ where: z.string().max(40), path: z.string().max(400) })).max(10),
23
+ sdks: z
24
+ .array(z.object({
25
+ version: z.string().max(40),
26
+ root: z.string().max(400),
27
+ windowsH: z.boolean(),
28
+ kernel32: z.boolean(),
29
+ ucrt: z.boolean(),
30
+ }))
31
+ .max(50),
32
+ });
33
+ /** The oldest MSVC Unreal 5.4+ builds with. */
34
+ export const MIN_MSVC = [14, 38];
35
+ const parts = (v) => v.split('.').map((p) => parseInt(p, 10) || 0);
36
+ const newer = (a, b) => {
37
+ const x = parts(a);
38
+ const y = parts(b);
39
+ for (let i = 0; i < Math.max(x.length, y.length); i++)
40
+ if ((x[i] ?? 0) !== (y[i] ?? 0))
41
+ return (x[i] ?? 0) - (y[i] ?? 0);
42
+ return 0;
43
+ };
44
+ /** What UnrealBuildTool would find, in plain words. */
45
+ export function vsVerdict(r) {
46
+ if (r.setupError)
47
+ return { ok: false, text: 'the Setup Configuration API failed: ' + r.setupError.slice(0, 300) };
48
+ const usable = r.instances.filter((i) => (i.state & 1) === 1 && i.isComplete && i.packages.includes('Microsoft.VisualStudio.Component.VC.Tools.x86.x64'));
49
+ if (!usable.length)
50
+ return {
51
+ ok: false,
52
+ text: r.instances.length
53
+ ? 'Visual Studio is listed, but no complete instance has the C++ x64 tools'
54
+ : 'the Setup Configuration API lists no Visual Studio',
55
+ };
56
+ const tools = usable
57
+ .flatMap((i) => i.toolchains.filter((t) => t.cl && t.link).map((t) => ({ i, t })))
58
+ .sort((a, b) => newer(b.t.version, a.t.version));
59
+ const best = tools[0];
60
+ if (!best)
61
+ return { ok: false, text: 'Visual Studio has no MSVC with the x64 compiler (VC\\Tools\\MSVC)' };
62
+ const [major, minor] = parts(best.t.version);
63
+ const oldMsvc = major < MIN_MSVC[0] || (major === MIN_MSVC[0] && minor < MIN_MSVC[1]);
64
+ const sdk = r.sdks.filter((s) => s.windowsH && s.kernel32 && s.ucrt).sort((a, b) => newer(b.version, a.version))[0];
65
+ const where = 'Visual Studio ' + best.i.installationVersion + ' at ' + best.i.installationPath;
66
+ if (!sdk)
67
+ return { ok: false, text: where + ', MSVC ' + best.t.version + ', but no complete Windows SDK' };
68
+ return {
69
+ ok: !oldMsvc,
70
+ text: where +
71
+ ', MSVC ' +
72
+ best.t.version +
73
+ (oldMsvc ? ' (too old: Unreal 5.4 and later need 14.38 or newer)' : '') +
74
+ ', Windows SDK ' +
75
+ sdk.version +
76
+ ' at ' +
77
+ sdk.root,
78
+ };
79
+ }
@@ -68,7 +68,11 @@ export function watcherRunning(dataPath) {
68
68
  }
69
69
  }
70
70
  /** The ways the sandbox itself ends badly (the PC going down takes the watcher with it, so it never gets here). */
71
- const RESTARTABLE = ['sandboxCrash', 'memory', 'gpu', 'hyperv', 'vanished'];
71
+ /**
72
+ * Ends that start the sandbox again: only those Windows logged. A "vanished" end (busy, no word of leaving, nothing
73
+ * in the log) is also what closing the Windows Sandbox window looks like, so it gets a report but no restart.
74
+ */
75
+ const RESTARTABLE = ['sandboxCrash', 'memory', 'gpu', 'hyperv'];
72
76
  /**
73
77
  * The background watcher of one data folder: while the sandbox runs it syncs history back every minute, guards the
74
78
  * projects' git folders, keeps filtered workspaces in step, forwards ports, marks downloaded files, records the audit
@@ -6,7 +6,7 @@
6
6
  <title>Sandbox</title>
7
7
  <link rel="icon" href="data:," />
8
8
  <link rel="stylesheet" href="/main-XT7T6ODM.css" />
9
- <script type="module" src="/main-CCILLX2M.js"></script>
9
+ <script type="module" src="/main-FNE6XEHA.js"></script>
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>