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.
- package/README.md +1 -1
- package/config.example.json +97 -4
- package/dist/app/features/accounts/accounts.def.d.ts +116 -2
- package/dist/app/features/accounts/accounts.def.js +80 -12
- package/dist/app/features/accounts/accounts.run.d.ts +29 -0
- package/dist/app/features/accounts/accounts.run.js +36 -6
- package/dist/app/features/accounts/index.d.ts +2 -0
- package/dist/app/features/accounts/index.js +4 -1
- package/dist/app/features/accounts/services.def.d.ts +111 -0
- package/dist/app/features/accounts/services.def.js +187 -0
- package/dist/app/features/accounts/services.run.d.ts +65 -0
- package/dist/app/features/accounts/services.run.js +212 -0
- package/dist/app/features/defs.d.ts +112 -1
- package/dist/app/features/defs.js +5 -0
- package/dist/app/features/settings/categories.def.js +21 -4
- package/dist/app/registry.js +5 -1
- package/dist/bin/agent-sandbox.js +2 -2
- package/dist/bin/{chunk-QLGGAG3D.js → chunk-BKF43GJ3.js} +51 -16
- package/dist/bin/{chunk-REE3EMHD.js → chunk-YD3A67RS.js} +3812 -1702
- package/dist/bin/{chunk-XYUVIVJT.js → chunk-Z5D32FN3.js} +1 -1
- package/dist/bin/claude-host.js +2 -2
- package/dist/bin/claude-sbx.js +2 -2
- package/dist/bin/codex-sbx.js +2 -2
- package/dist/bin/gemini-sbx.js +2 -2
- package/dist/bin/sandbox.js +2 -2
- package/dist/bin/sbx-hide.js +2 -2
- package/dist/bin/sbx-show.js +2 -2
- package/dist/cli/commands/launch/launch.js +30 -1
- package/dist/cli/manifest.d.ts +93 -65
- package/dist/cli/manifest.js +23 -5
- package/dist/cli/menu/pages/accounts-page.js +31 -16
- package/dist/cli/services/accounts-service.d.ts +14 -4
- package/dist/cli/services/accounts-service.js +19 -6
- package/dist/cli/services/data-collect.js +26 -1
- package/dist/core/config/defaults.js +47 -4
- package/dist/core/detect/toolchains.d.ts +15 -1
- package/dist/core/detect/toolchains.js +45 -12
- package/dist/core/local-config/overrides.js +6 -0
- package/dist/core/schema/accounts.d.ts +27 -0
- package/dist/core/schema/accounts.js +32 -0
- package/dist/core/schema/config.d.ts +239 -0
- package/dist/core/schema/config.js +6 -0
- package/dist/core/schema/pc-installs.d.ts +7 -0
- package/dist/core/schema/pc-installs.js +17 -0
- package/dist/core/schema/toolchains.d.ts +61 -0
- package/dist/core/schema/toolchains.js +106 -0
- package/dist/core/types.d.ts +18 -0
- package/dist/guest/accounts/adapter.d.ts +25 -0
- package/dist/guest/accounts/adapter.js +21 -0
- package/dist/guest/accounts/adapters.d.ts +5 -0
- package/dist/guest/accounts/adapters.js +18 -0
- package/dist/guest/accounts/apply.d.ts +41 -0
- package/dist/guest/accounts/apply.js +47 -0
- package/dist/guest/accounts/kinds/appstore.d.ts +2 -0
- package/dist/guest/accounts/kinds/appstore.js +7 -0
- package/dist/guest/accounts/kinds/cfx.d.ts +2 -0
- package/dist/guest/accounts/kinds/cfx.js +7 -0
- package/dist/guest/accounts/kinds/epic.d.ts +2 -0
- package/dist/guest/accounts/kinds/epic.js +26 -0
- package/dist/guest/accounts/kinds/expo.d.ts +2 -0
- package/dist/guest/accounts/kinds/expo.js +7 -0
- package/dist/guest/accounts/kinds/keystore.d.ts +2 -0
- package/dist/guest/accounts/kinds/keystore.js +7 -0
- package/dist/guest/accounts/kinds/play.d.ts +2 -0
- package/dist/guest/accounts/kinds/play.js +7 -0
- package/dist/guest/accounts/kinds/steam.d.ts +4 -0
- package/dist/guest/accounts/kinds/steam.js +17 -0
- package/dist/guest/accounts/kinds/unity.d.ts +2 -0
- package/dist/guest/accounts/kinds/unity.js +7 -0
- package/dist/guest/accounts/watch.d.ts +28 -0
- package/dist/guest/accounts/watch.js +78 -0
- package/dist/guest/apps/resolvers-gamedev.d.ts +2 -0
- package/dist/guest/apps/resolvers-gamedev.js +1 -0
- package/dist/guest/apps/resolvers-mobile.d.ts +2 -0
- package/dist/guest/apps/resolvers-mobile.js +1 -0
- package/dist/guest/apps/resolvers.js +4 -0
- package/dist/guest/boot/boot.d.ts +5 -0
- package/dist/guest/boot/boot.js +35 -1
- package/dist/guest/daemon/accounts.d.ts +3 -0
- package/dist/guest/daemon/accounts.js +25 -0
- package/dist/guest/daemon/daemon.js +2 -0
- package/dist/guest/daemon/idle-shutdown.js +3 -1
- package/dist/guest/daemon/sessions.js +2 -0
- package/dist/guest/devtools/android.d.ts +2 -0
- package/dist/guest/devtools/android.js +7 -0
- package/dist/guest/devtools/devtool.d.ts +9 -0
- package/dist/guest/devtools/devtool.js +5 -0
- package/dist/guest/devtools/fivem.d.ts +2 -0
- package/dist/guest/devtools/fivem.js +7 -0
- package/dist/guest/devtools/registry.d.ts +6 -0
- package/dist/guest/devtools/registry.js +12 -0
- package/dist/guest/devtools/steam.d.ts +2 -0
- package/dist/guest/devtools/steam.js +228 -0
- package/dist/guest/devtools/unity.d.ts +2 -0
- package/dist/guest/devtools/unity.js +7 -0
- package/dist/guest/entries/daemon.js +2 -0
- package/dist/guest/entries/tool.d.ts +1 -0
- package/dist/guest/entries/tool.js +17 -0
- package/dist/guest/toolchains/engines/godot.d.ts +4 -0
- package/dist/guest/toolchains/engines/godot.js +4 -0
- package/dist/guest/toolchains/engines/unity-release.d.ts +15 -0
- package/dist/guest/toolchains/engines/unity-release.js +6 -0
- package/dist/guest/toolchains/engines/unity.d.ts +4 -0
- package/dist/guest/toolchains/engines/unity.js +4 -0
- package/dist/guest/toolchains/engines/unreal-engines.d.ts +4 -0
- package/dist/guest/toolchains/engines/unreal-engines.js +4 -0
- package/dist/guest/toolchains/fivem/artifacts.d.ts +6 -0
- package/dist/guest/toolchains/fivem/artifacts.js +7 -0
- package/dist/guest/toolchains/fivem/fivem.d.ts +4 -0
- package/dist/guest/toolchains/fivem/fivem.js +4 -0
- package/dist/guest/toolchains/installers.d.ts +12 -0
- package/dist/guest/toolchains/installers.js +39 -0
- package/dist/guest/toolchains/languages/java.js +1 -1
- package/dist/guest/toolchains/languages/kotlin.d.ts +3 -0
- package/dist/guest/toolchains/languages/kotlin.js +6 -0
- package/dist/guest/toolchains/mobile/android-repo.d.ts +11 -0
- package/dist/guest/toolchains/mobile/android-repo.js +10 -0
- package/dist/guest/toolchains/mobile/android.d.ts +17 -0
- package/dist/guest/toolchains/mobile/android.js +16 -0
- package/dist/guest/toolchains/mobile/dart.d.ts +4 -0
- package/dist/guest/toolchains/mobile/dart.js +4 -0
- package/dist/guest/toolchains/mobile/flutter.d.ts +4 -0
- package/dist/guest/toolchains/mobile/flutter.js +4 -0
- package/dist/guest/toolchains/mobile/react-native.d.ts +4 -0
- package/dist/guest/toolchains/mobile/react-native.js +4 -0
- package/dist/guest/toolchains/native/unreal.d.ts +3 -7
- package/dist/guest/toolchains/native/unreal.js +16 -167
- package/dist/guest/toolchains/native/visual-studio.d.ts +15 -0
- package/dist/guest/toolchains/native/visual-studio.js +159 -0
- package/dist/guest/toolchains/native/vs-request.d.ts +19 -0
- package/dist/guest/toolchains/native/vs-request.js +46 -0
- package/dist/guest/toolchains/not-yet.d.ts +2 -0
- package/dist/guest/toolchains/not-yet.js +6 -0
- package/dist/guest/toolchains/persisted.d.ts +48 -0
- package/dist/guest/toolchains/persisted.js +159 -0
- package/dist/guest/toolchains/plan.js +80 -4
- package/dist/guest/toolchains/steam/apps.d.ts +27 -0
- package/dist/guest/toolchains/steam/apps.js +112 -0
- package/dist/guest/toolchains/steam/client.d.ts +5 -0
- package/dist/guest/toolchains/steam/client.js +67 -0
- package/dist/guest/toolchains/steam/commands.d.ts +58 -0
- package/dist/guest/toolchains/steam/commands.js +155 -0
- package/dist/guest/toolchains/steam/steam.d.ts +4 -0
- package/dist/guest/toolchains/steam/steam.js +61 -0
- package/dist/guest/toolchains/steam/steamcmd-install.d.ts +29 -0
- package/dist/guest/toolchains/steam/steamcmd-install.js +177 -0
- package/dist/guest/toolchains/steam/steamcmd.d.ts +6 -0
- package/dist/guest/toolchains/steam/steamcmd.js +23 -0
- package/dist/guest/toolchains/step.d.ts +10 -0
- package/dist/host/accounts/deliver.d.ts +26 -0
- package/dist/host/accounts/deliver.js +80 -0
- package/dist/host/accounts/handoff.d.ts +17 -0
- package/dist/host/accounts/handoff.js +110 -0
- package/dist/host/accounts/index.d.ts +6 -0
- package/dist/host/accounts/index.js +8 -0
- package/dist/host/accounts/kinds/appstore.d.ts +2 -0
- package/dist/host/accounts/kinds/appstore.js +10 -0
- package/dist/host/accounts/kinds/cfx.d.ts +2 -0
- package/dist/host/accounts/kinds/cfx.js +7 -0
- package/dist/host/accounts/kinds/epic.d.ts +2 -0
- package/dist/host/accounts/kinds/epic.js +15 -0
- package/dist/host/accounts/kinds/expo.d.ts +2 -0
- package/dist/host/accounts/kinds/expo.js +7 -0
- package/dist/host/accounts/kinds/keystore.d.ts +2 -0
- package/dist/host/accounts/kinds/keystore.js +7 -0
- package/dist/host/accounts/kinds/play.d.ts +2 -0
- package/dist/host/accounts/kinds/play.js +7 -0
- package/dist/host/accounts/kinds/steam.d.ts +6 -0
- package/dist/host/accounts/kinds/steam.js +31 -0
- package/dist/host/accounts/kinds/unity.d.ts +2 -0
- package/dist/host/accounts/kinds/unity.js +13 -0
- package/dist/host/accounts/leases.d.ts +40 -0
- package/dist/host/accounts/leases.js +62 -0
- package/dist/host/accounts/source.d.ts +21 -0
- package/dist/host/accounts/source.js +15 -0
- package/dist/host/accounts/sources.d.ts +5 -0
- package/dist/host/accounts/sources.js +18 -0
- package/dist/host/accounts/store.d.ts +23 -0
- package/dist/host/accounts/store.js +74 -0
- package/dist/host/audit/log.d.ts +1 -1
- package/dist/host/launch/generate.d.ts +2 -0
- package/dist/host/launch/generate.js +16 -1
- package/dist/host/launch/hints/android.d.ts +3 -0
- package/dist/host/launch/hints/android.js +3 -0
- package/dist/host/launch/hints/engines.d.ts +3 -0
- package/dist/host/launch/hints/engines.js +3 -0
- package/dist/host/launch/hints/fivem.d.ts +3 -0
- package/dist/host/launch/hints/fivem.js +3 -0
- package/dist/host/launch/hints/hint.d.ts +2 -0
- package/dist/host/launch/hints/hint.js +1 -0
- package/dist/host/launch/hints/index.d.ts +5 -0
- package/dist/host/launch/hints/index.js +29 -0
- package/dist/host/launch/hints/mobile.d.ts +3 -0
- package/dist/host/launch/hints/mobile.js +3 -0
- package/dist/host/launch/hints/steam.d.ts +7 -0
- package/dist/host/launch/hints/steam.js +59 -0
- package/dist/host/launch/index.d.ts +2 -2
- package/dist/host/launch/index.js +2 -2
- package/dist/host/launch/mappings.js +2 -0
- package/dist/host/launch/session-file.js +2 -0
- package/dist/host/launch/stage.js +10 -1
- package/dist/host/launch/toolchains.d.ts +7 -0
- package/dist/host/launch/toolchains.js +11 -0
- package/dist/host/pc-installs/discover.d.ts +19 -0
- package/dist/host/pc-installs/discover.js +59 -0
- package/dist/host/pc-installs/epic.d.ts +2 -0
- package/dist/host/pc-installs/epic.js +7 -0
- package/dist/host/pc-installs/index.d.ts +3 -0
- package/dist/host/pc-installs/index.js +2 -0
- package/dist/host/pc-installs/source.d.ts +9 -0
- package/dist/host/pc-installs/source.js +1 -0
- package/dist/host/pc-installs/steam.d.ts +16 -0
- package/dist/host/pc-installs/steam.js +143 -0
- package/dist/host/pc-installs/unity.d.ts +2 -0
- package/dist/host/pc-installs/unity.js +7 -0
- package/dist/host/pc-installs/unreal.d.ts +2 -0
- package/dist/host/pc-installs/unreal.js +7 -0
- package/dist/host/profile/accounts.d.ts +21 -6
- package/dist/host/profile/accounts.js +108 -28
- package/dist/host/profile/claude-login.d.ts +32 -2
- package/dist/host/profile/claude-login.js +100 -8
- package/dist/host/profile/index.d.ts +1 -1
- package/dist/host/profile/index.js +1 -1
- package/dist/host/secrets/launch-secrets.js +1 -0
- package/dist/runtime/agent.js +321 -9
- package/dist/runtime/daemon.js +1987 -604
- package/dist/runtime/db.js +334 -11
- package/dist/runtime/main.js +2519 -723
- package/dist/runtime/netproxy.js +321 -9
- package/dist/runtime/tool.js +28549 -0
- package/dist/runtime/view.js +321 -9
- package/dist/selftest/accounts.test.js +172 -1
- package/dist/selftest/agent-paths.test.js +1 -0
- package/dist/selftest/android.test.d.ts +2 -0
- package/dist/selftest/android.test.js +7 -0
- package/dist/selftest/app.test.js +1 -1
- package/dist/selftest/engines.test.d.ts +2 -0
- package/dist/selftest/engines.test.js +7 -0
- package/dist/selftest/fivem.test.d.ts +2 -0
- package/dist/selftest/fivem.test.js +7 -0
- package/dist/selftest/generate.test.js +1 -1
- package/dist/selftest/index.js +18 -0
- package/dist/selftest/menu-screens.js +1 -0
- package/dist/selftest/menu.test.js +2 -1
- package/dist/selftest/mobile.test.d.ts +2 -0
- package/dist/selftest/mobile.test.js +7 -0
- package/dist/selftest/pc-installs.test.d.ts +2 -0
- package/dist/selftest/pc-installs.test.js +111 -0
- package/dist/selftest/persisted-installs.test.d.ts +2 -0
- package/dist/selftest/persisted-installs.test.js +107 -0
- package/dist/selftest/projects.test.js +6 -4
- package/dist/selftest/service-accounts.test.d.ts +2 -0
- package/dist/selftest/service-accounts.test.js +320 -0
- package/dist/selftest/steam.test.d.ts +2 -0
- package/dist/selftest/steam.test.js +316 -0
- package/dist/selftest/storage-helper.test.js +31 -8
- package/dist/selftest/support/engine-golden.js +3 -0
- package/dist/selftest/support/fixtures.d.ts +87 -0
- package/dist/selftest/support/fixtures.js +4 -3
- package/dist/selftest/support/pc-memory.d.ts +2 -0
- package/dist/selftest/support/pc-memory.js +17 -0
- package/dist/selftest/support/web-preview.js +20 -1
- package/dist/selftest/unity.test.d.ts +2 -0
- package/dist/selftest/unity.test.js +7 -0
- package/dist/shared/accounts/fingerprint.d.ts +1 -0
- package/dist/shared/accounts/fingerprint.js +20 -0
- package/dist/shared/accounts/index.d.ts +5 -0
- package/dist/shared/accounts/index.js +7 -0
- package/dist/shared/accounts/kinds/epic.d.ts +10 -0
- package/dist/shared/accounts/kinds/epic.js +56 -0
- package/dist/shared/accounts/kinds/steam.d.ts +28 -0
- package/dist/shared/accounts/kinds/steam.js +99 -0
- package/dist/shared/accounts/kinds.d.ts +41 -0
- package/dist/shared/accounts/kinds.js +154 -0
- package/dist/shared/accounts/payloads.d.ts +151 -0
- package/dist/shared/accounts/payloads.js +128 -0
- package/dist/shared/apps/catalogue-gamedev.d.ts +2 -0
- package/dist/shared/apps/catalogue-gamedev.js +1 -0
- package/dist/shared/apps/catalogue-mobile.d.ts +2 -0
- package/dist/shared/apps/catalogue-mobile.js +1 -0
- package/dist/shared/apps/catalogue-modding.d.ts +2 -0
- package/dist/shared/apps/catalogue-modding.js +1 -0
- package/dist/shared/apps/catalogue.d.ts +1 -0
- package/dist/shared/apps/catalogue.js +6 -1
- package/dist/shared/channel/schema.d.ts +183 -0
- package/dist/shared/channel/secrets.d.ts +42 -0
- package/dist/shared/channel/secrets.js +3 -0
- package/dist/shared/download/downloader.d.ts +7 -0
- package/dist/shared/download/downloader.js +10 -3
- package/dist/shared/installs.d.ts +19 -0
- package/dist/shared/installs.js +13 -0
- package/dist/shared/io/bounded.d.ts +6 -0
- package/dist/shared/io/bounded.js +38 -0
- package/dist/shared/io/index.d.ts +2 -0
- package/dist/shared/io/index.js +2 -0
- package/dist/shared/io/text.d.ts +9 -0
- package/dist/shared/io/text.js +18 -0
- package/dist/shared/paths/guest-paths.js +1 -1
- package/dist/shared/paths/index.d.ts +1 -0
- package/dist/shared/paths/index.js +1 -0
- package/dist/shared/paths/pc-installs.d.ts +20 -0
- package/dist/shared/paths/pc-installs.js +19 -0
- package/dist/shared/vdf.d.ts +25 -0
- package/dist/shared/vdf.js +151 -0
- package/dist/sync/sync-cycle.js +9 -0
- package/dist/web/index.html +1 -1
- package/dist/web/{main-JTH3FT4O.js → main-CWIF4VQI.js} +63 -61
- package/native/csharp/HcsHost/AssemblyInfo.cs +3 -3
- package/native/csharp/HostTools/AssemblyInfo.cs +3 -3
- package/native/csharp/StorageHelper/AssemblyInfo.cs +3 -3
- package/package.json +1 -1
- package/sandbox/scripts/add-firewall-port.ps1 +13 -0
- package/sandbox/templates/fivem/README.txt +2 -0
- package/schemas/config.schema.json +485 -0
- package/schemas/sandbox-config.schema.json +416 -0
|
@@ -96,6 +96,38 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
96
96
|
github: z.ZodObject<{
|
|
97
97
|
shareToken: z.ZodBoolean;
|
|
98
98
|
}, z.core.$strict>;
|
|
99
|
+
accounts: z.ZodObject<{
|
|
100
|
+
epic: z.ZodObject<{
|
|
101
|
+
share: z.ZodBoolean;
|
|
102
|
+
}, z.core.$strict>;
|
|
103
|
+
steam: z.ZodObject<{
|
|
104
|
+
share: z.ZodBoolean;
|
|
105
|
+
}, z.core.$strict>;
|
|
106
|
+
unity: z.ZodObject<{
|
|
107
|
+
share: z.ZodBoolean;
|
|
108
|
+
}, z.core.$strict>;
|
|
109
|
+
cfx: z.ZodObject<{
|
|
110
|
+
share: z.ZodBoolean;
|
|
111
|
+
}, z.core.$strict>;
|
|
112
|
+
keystore: z.ZodObject<{
|
|
113
|
+
share: z.ZodBoolean;
|
|
114
|
+
}, z.core.$strict>;
|
|
115
|
+
play: z.ZodObject<{
|
|
116
|
+
share: z.ZodBoolean;
|
|
117
|
+
}, z.core.$strict>;
|
|
118
|
+
expo: z.ZodObject<{
|
|
119
|
+
share: z.ZodBoolean;
|
|
120
|
+
}, z.core.$strict>;
|
|
121
|
+
appstore: z.ZodObject<{
|
|
122
|
+
share: z.ZodBoolean;
|
|
123
|
+
}, z.core.$strict>;
|
|
124
|
+
}, z.core.$strict>;
|
|
125
|
+
pcInstalls: z.ZodObject<{
|
|
126
|
+
steamGames: z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodNumber>]>;
|
|
127
|
+
epicGames: z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>;
|
|
128
|
+
unrealEngines: z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>;
|
|
129
|
+
unityEditors: z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>;
|
|
130
|
+
}, z.core.$strict>;
|
|
99
131
|
provisioning: z.ZodObject<{
|
|
100
132
|
copyFromHost: z.ZodBoolean;
|
|
101
133
|
fallbackToInstall: z.ZodBoolean;
|
|
@@ -158,6 +190,65 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
158
190
|
acceptLicense: z.ZodBoolean;
|
|
159
191
|
components: z.ZodArray<z.ZodString>;
|
|
160
192
|
keepInstallFiles: z.ZodBoolean;
|
|
193
|
+
persistEngines: z.ZodBoolean;
|
|
194
|
+
derivedDataCache: z.ZodEnum<{
|
|
195
|
+
persisted: "persisted";
|
|
196
|
+
local: "local";
|
|
197
|
+
}>;
|
|
198
|
+
}, z.core.$strict>;
|
|
199
|
+
unity: z.ZodObject<{
|
|
200
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
201
|
+
acceptLicense: z.ZodBoolean;
|
|
202
|
+
version: z.ZodString;
|
|
203
|
+
modules: z.ZodArray<z.ZodString>;
|
|
204
|
+
hub: z.ZodBoolean;
|
|
205
|
+
keepVersions: z.ZodNumber;
|
|
206
|
+
}, z.core.$strict>;
|
|
207
|
+
godot: z.ZodObject<{
|
|
208
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
209
|
+
version: z.ZodString;
|
|
210
|
+
dotnet: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
211
|
+
exportTemplates: z.ZodBoolean;
|
|
212
|
+
keepVersions: z.ZodNumber;
|
|
213
|
+
}, z.core.$strict>;
|
|
214
|
+
steam: z.ZodObject<{
|
|
215
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
216
|
+
client: z.ZodBoolean;
|
|
217
|
+
sdkFolder: z.ZodString;
|
|
218
|
+
}, z.core.$strict>;
|
|
219
|
+
fivem: z.ZodObject<{
|
|
220
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
221
|
+
acceptLicense: z.ZodBoolean;
|
|
222
|
+
game: z.ZodEnum<{
|
|
223
|
+
gta5: "gta5";
|
|
224
|
+
rdr3: "rdr3";
|
|
225
|
+
}>;
|
|
226
|
+
artifact: z.ZodString;
|
|
227
|
+
txAdmin: z.ZodBoolean;
|
|
228
|
+
keepVersions: z.ZodNumber;
|
|
229
|
+
}, z.core.$strict>;
|
|
230
|
+
android: z.ZodObject<{
|
|
231
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
232
|
+
acceptLicense: z.ZodBoolean;
|
|
233
|
+
platforms: z.ZodArray<z.ZodString>;
|
|
234
|
+
buildTools: z.ZodString;
|
|
235
|
+
ndk: z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodString]>;
|
|
236
|
+
cmake: z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodString]>;
|
|
237
|
+
packages: z.ZodArray<z.ZodString>;
|
|
238
|
+
}, z.core.$strict>;
|
|
239
|
+
flutter: z.ZodObject<{
|
|
240
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
241
|
+
version: z.ZodString;
|
|
242
|
+
windowsDesktop: z.ZodBoolean;
|
|
243
|
+
precache: z.ZodArray<z.ZodString>;
|
|
244
|
+
}, z.core.$strict>;
|
|
245
|
+
dart: z.ZodObject<{
|
|
246
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
247
|
+
version: z.ZodString;
|
|
248
|
+
}, z.core.$strict>;
|
|
249
|
+
reactNative: z.ZodObject<{
|
|
250
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
251
|
+
easCli: z.ZodBoolean;
|
|
161
252
|
}, z.core.$strict>;
|
|
162
253
|
cpp: z.ZodObject<{
|
|
163
254
|
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
@@ -170,6 +261,7 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
170
261
|
workloads: z.ZodArray<z.ZodString>;
|
|
171
262
|
frameworkTargets: z.ZodArray<z.ZodString>;
|
|
172
263
|
netfx35: z.ZodBoolean;
|
|
264
|
+
templates: z.ZodArray<z.ZodString>;
|
|
173
265
|
}, z.core.$strict>;
|
|
174
266
|
go: z.ZodObject<{
|
|
175
267
|
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
@@ -181,6 +273,7 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
181
273
|
version: z.ZodString;
|
|
182
274
|
maven: z.ZodBoolean;
|
|
183
275
|
gradle: z.ZodBoolean;
|
|
276
|
+
kotlin: z.ZodBoolean;
|
|
184
277
|
}, z.core.$strict>;
|
|
185
278
|
ruby: z.ZodObject<{
|
|
186
279
|
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
@@ -416,6 +509,32 @@ export declare const LocalOverridesSchema: z.ZodObject<{
|
|
|
416
509
|
vpn: z.ZodOptional<z.ZodObject<{
|
|
417
510
|
killSwitch: z.ZodOptional<z.ZodBoolean>;
|
|
418
511
|
}, z.core.$strict>>;
|
|
512
|
+
accounts: z.ZodOptional<z.ZodObject<{
|
|
513
|
+
epic: z.ZodOptional<z.ZodObject<{
|
|
514
|
+
share: z.ZodOptional<z.ZodBoolean>;
|
|
515
|
+
}, z.core.$strict>>;
|
|
516
|
+
steam: z.ZodOptional<z.ZodObject<{
|
|
517
|
+
share: z.ZodOptional<z.ZodBoolean>;
|
|
518
|
+
}, z.core.$strict>>;
|
|
519
|
+
unity: z.ZodOptional<z.ZodObject<{
|
|
520
|
+
share: z.ZodOptional<z.ZodBoolean>;
|
|
521
|
+
}, z.core.$strict>>;
|
|
522
|
+
cfx: z.ZodOptional<z.ZodObject<{
|
|
523
|
+
share: z.ZodOptional<z.ZodBoolean>;
|
|
524
|
+
}, z.core.$strict>>;
|
|
525
|
+
keystore: z.ZodOptional<z.ZodObject<{
|
|
526
|
+
share: z.ZodOptional<z.ZodBoolean>;
|
|
527
|
+
}, z.core.$strict>>;
|
|
528
|
+
play: z.ZodOptional<z.ZodObject<{
|
|
529
|
+
share: z.ZodOptional<z.ZodBoolean>;
|
|
530
|
+
}, z.core.$strict>>;
|
|
531
|
+
expo: z.ZodOptional<z.ZodObject<{
|
|
532
|
+
share: z.ZodOptional<z.ZodBoolean>;
|
|
533
|
+
}, z.core.$strict>>;
|
|
534
|
+
appstore: z.ZodOptional<z.ZodObject<{
|
|
535
|
+
share: z.ZodOptional<z.ZodBoolean>;
|
|
536
|
+
}, z.core.$strict>>;
|
|
537
|
+
}, z.core.$strict>>;
|
|
419
538
|
provisioning: z.ZodOptional<z.ZodObject<{
|
|
420
539
|
copyFromHost: z.ZodOptional<z.ZodBoolean>;
|
|
421
540
|
fallbackToInstall: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -527,6 +646,126 @@ export declare const LocalOverridesSchema: z.ZodObject<{
|
|
|
527
646
|
zstd: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
528
647
|
openssl: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
529
648
|
}, z.core.$strict>>;
|
|
649
|
+
unity: z.ZodOptional<z.ZodObject<{
|
|
650
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
651
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
652
|
+
version: z.ZodOptional<z.ZodString>;
|
|
653
|
+
extraVersions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
654
|
+
corepack: z.ZodOptional<z.ZodBoolean>;
|
|
655
|
+
volta: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
656
|
+
globalPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
657
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
658
|
+
enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
659
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
660
|
+
gh: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
661
|
+
zstd: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
662
|
+
openssl: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
663
|
+
}, z.core.$strict>>;
|
|
664
|
+
godot: z.ZodOptional<z.ZodObject<{
|
|
665
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
666
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
667
|
+
version: z.ZodOptional<z.ZodString>;
|
|
668
|
+
extraVersions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
669
|
+
corepack: z.ZodOptional<z.ZodBoolean>;
|
|
670
|
+
volta: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
671
|
+
globalPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
672
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
673
|
+
enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
674
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
675
|
+
gh: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
676
|
+
zstd: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
677
|
+
openssl: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
678
|
+
}, z.core.$strict>>;
|
|
679
|
+
steam: z.ZodOptional<z.ZodObject<{
|
|
680
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
681
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
682
|
+
version: z.ZodOptional<z.ZodString>;
|
|
683
|
+
extraVersions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
684
|
+
corepack: z.ZodOptional<z.ZodBoolean>;
|
|
685
|
+
volta: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
686
|
+
globalPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
687
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
688
|
+
enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
689
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
690
|
+
gh: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
691
|
+
zstd: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
692
|
+
openssl: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
693
|
+
}, z.core.$strict>>;
|
|
694
|
+
fivem: z.ZodOptional<z.ZodObject<{
|
|
695
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
696
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
697
|
+
version: z.ZodOptional<z.ZodString>;
|
|
698
|
+
extraVersions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
699
|
+
corepack: z.ZodOptional<z.ZodBoolean>;
|
|
700
|
+
volta: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
701
|
+
globalPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
702
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
703
|
+
enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
704
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
705
|
+
gh: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
706
|
+
zstd: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
707
|
+
openssl: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
708
|
+
}, z.core.$strict>>;
|
|
709
|
+
android: z.ZodOptional<z.ZodObject<{
|
|
710
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
711
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
712
|
+
version: z.ZodOptional<z.ZodString>;
|
|
713
|
+
extraVersions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
714
|
+
corepack: z.ZodOptional<z.ZodBoolean>;
|
|
715
|
+
volta: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
716
|
+
globalPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
717
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
718
|
+
enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
719
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
720
|
+
gh: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
721
|
+
zstd: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
722
|
+
openssl: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
723
|
+
}, z.core.$strict>>;
|
|
724
|
+
flutter: z.ZodOptional<z.ZodObject<{
|
|
725
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
726
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
727
|
+
version: z.ZodOptional<z.ZodString>;
|
|
728
|
+
extraVersions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
729
|
+
corepack: z.ZodOptional<z.ZodBoolean>;
|
|
730
|
+
volta: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
731
|
+
globalPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
732
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
733
|
+
enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
734
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
735
|
+
gh: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
736
|
+
zstd: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
737
|
+
openssl: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
738
|
+
}, z.core.$strict>>;
|
|
739
|
+
dart: z.ZodOptional<z.ZodObject<{
|
|
740
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
741
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
742
|
+
version: z.ZodOptional<z.ZodString>;
|
|
743
|
+
extraVersions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
744
|
+
corepack: z.ZodOptional<z.ZodBoolean>;
|
|
745
|
+
volta: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
746
|
+
globalPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
747
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
748
|
+
enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
749
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
750
|
+
gh: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
751
|
+
zstd: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
752
|
+
openssl: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
753
|
+
}, z.core.$strict>>;
|
|
754
|
+
reactNative: z.ZodOptional<z.ZodObject<{
|
|
755
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
756
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
757
|
+
version: z.ZodOptional<z.ZodString>;
|
|
758
|
+
extraVersions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
759
|
+
corepack: z.ZodOptional<z.ZodBoolean>;
|
|
760
|
+
volta: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
761
|
+
globalPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
762
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
763
|
+
enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
764
|
+
}, z.core.$strict> | z.ZodObject<{
|
|
765
|
+
gh: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
766
|
+
zstd: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
767
|
+
openssl: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>>;
|
|
768
|
+
}, z.core.$strict>>;
|
|
530
769
|
cpp: z.ZodOptional<z.ZodObject<{
|
|
531
770
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
532
771
|
}, z.core.$strict> | z.ZodObject<{
|
|
@@ -14,6 +14,8 @@ import { ResumeSchema } from './resume.js';
|
|
|
14
14
|
import { WebSchema } from './web.js';
|
|
15
15
|
import { VpnSchema } from './vpn.js';
|
|
16
16
|
import { GithubSchema } from './github.js';
|
|
17
|
+
import { AccountsSchema } from './accounts.js';
|
|
18
|
+
import { PcInstallsSchema } from './pc-installs.js';
|
|
17
19
|
const RESERVED_ENV_PREFIX = /^(AGENT_|GIT_|GH_|GITHUB_|NODE_|NPM_CONFIG_(USERCONFIG|GLOBALCONFIG|PREFIX|SCRIPT_SHELL)|SSL_|CLAUDE|ANTHROPIC_|OPENAI_|CODEX_|GEMINI_|GOOGLE_|COPILOT_|AWS_|AZURE_)/i;
|
|
18
20
|
const RESERVED_ENV_SUFFIX = /(_PROXY|_BASE_URL|_ENDPOINT|_CA_BUNDLE|_CA_CERTS)$/i;
|
|
19
21
|
const RESERVED_ENV_NAMES = new Set([
|
|
@@ -85,6 +87,8 @@ export const ConfigSchema = z
|
|
|
85
87
|
network: NetworkSchema,
|
|
86
88
|
vpn: VpnSchema,
|
|
87
89
|
github: GithubSchema,
|
|
90
|
+
accounts: AccountsSchema,
|
|
91
|
+
pcInstalls: PcInstallsSchema,
|
|
88
92
|
provisioning: ProvisioningSchema,
|
|
89
93
|
downloads: DownloadsSchema,
|
|
90
94
|
toolchains: ToolchainsSchema,
|
|
@@ -137,6 +141,8 @@ export const LocalOverridesSchema = z
|
|
|
137
141
|
network: NetworkSchema.pick({ blockPrivateRanges: true, blockHosts: true }).partial(),
|
|
138
142
|
// A project may turn the kill switch on, never off, and never choose a VPN, a server, a file or a login.
|
|
139
143
|
vpn: VpnSchema.pick({ killSwitch: true }).partial(),
|
|
144
|
+
// A project may only turn a sign-in off (policy: OFF_IS_SAFER); pcInstalls is never here (folders of this PC).
|
|
145
|
+
accounts: z.strictObject(_.mapValues(AccountsSchema.shape, (shape) => shape.partial())).partial(),
|
|
140
146
|
provisioning: ProvisioningSchema.pick({ copyFromHost: true, fallbackToInstall: true, refresh: true })
|
|
141
147
|
.extend({ git: GitSchema.partial(), terminal: toggle('Windows Terminal as the sandbox window.').partial() })
|
|
142
148
|
.partial(),
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const PcInstallsSchema: z.ZodObject<{
|
|
3
|
+
steamGames: z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodNumber>]>;
|
|
4
|
+
epicGames: z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>;
|
|
5
|
+
unrealEngines: z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>;
|
|
6
|
+
unityEditors: z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>;
|
|
7
|
+
}, z.core.$strict>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// pcInstalls: games, engines and editors already installed on this PC, mapped read-only into the sandbox (nothing is
|
|
2
|
+
// copied). Yours only: a project file can never map folders of this PC.
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
const pick = (item, what, example) => z
|
|
5
|
+
.union([z.boolean(), z.array(item)])
|
|
6
|
+
.describe(what +
|
|
7
|
+
' of this PC, read-only in the sandbox under C:\\PcInstalls: true = all of them, false = none, or a list (e.g. ' +
|
|
8
|
+
example +
|
|
9
|
+
'). The agent can read their files.');
|
|
10
|
+
export const PcInstallsSchema = z
|
|
11
|
+
.strictObject({
|
|
12
|
+
steamGames: pick(z.number().int().positive(), 'Steam games (true maps each library; a list of app IDs maps only those games)', '[480, 730]'),
|
|
13
|
+
epicGames: pick(z.string().regex(/^[A-Za-z0-9._-]{1,100}$/), 'Epic Games Launcher games (by their app name)', '["Fortnite"]'),
|
|
14
|
+
unrealEngines: pick(z.string().regex(/^(UE_)?\d+\.\d+$/), 'Unreal Engine versions installed with the Epic Games Launcher', '["5.4"]'),
|
|
15
|
+
unityEditors: pick(z.string().regex(/^\d+\.\d+\.\d+[abfp]\d+$/), 'Unity editors installed with Unity Hub', '["6000.0.32f1"]'),
|
|
16
|
+
})
|
|
17
|
+
.describe("Games, engines and editors installed on this PC, mapped read-only into sandboxes (no copy, no room on the sandbox's disk).");
|
|
@@ -39,6 +39,65 @@ export declare const ToolchainsSchema: z.ZodObject<{
|
|
|
39
39
|
acceptLicense: z.ZodBoolean;
|
|
40
40
|
components: z.ZodArray<z.ZodString>;
|
|
41
41
|
keepInstallFiles: z.ZodBoolean;
|
|
42
|
+
persistEngines: z.ZodBoolean;
|
|
43
|
+
derivedDataCache: z.ZodEnum<{
|
|
44
|
+
persisted: "persisted";
|
|
45
|
+
local: "local";
|
|
46
|
+
}>;
|
|
47
|
+
}, z.core.$strict>;
|
|
48
|
+
unity: z.ZodObject<{
|
|
49
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
50
|
+
acceptLicense: z.ZodBoolean;
|
|
51
|
+
version: z.ZodString;
|
|
52
|
+
modules: z.ZodArray<z.ZodString>;
|
|
53
|
+
hub: z.ZodBoolean;
|
|
54
|
+
keepVersions: z.ZodNumber;
|
|
55
|
+
}, z.core.$strict>;
|
|
56
|
+
godot: z.ZodObject<{
|
|
57
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
58
|
+
version: z.ZodString;
|
|
59
|
+
dotnet: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
60
|
+
exportTemplates: z.ZodBoolean;
|
|
61
|
+
keepVersions: z.ZodNumber;
|
|
62
|
+
}, z.core.$strict>;
|
|
63
|
+
steam: z.ZodObject<{
|
|
64
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
65
|
+
client: z.ZodBoolean;
|
|
66
|
+
sdkFolder: z.ZodString;
|
|
67
|
+
}, z.core.$strict>;
|
|
68
|
+
fivem: z.ZodObject<{
|
|
69
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
70
|
+
acceptLicense: z.ZodBoolean;
|
|
71
|
+
game: z.ZodEnum<{
|
|
72
|
+
gta5: "gta5";
|
|
73
|
+
rdr3: "rdr3";
|
|
74
|
+
}>;
|
|
75
|
+
artifact: z.ZodString;
|
|
76
|
+
txAdmin: z.ZodBoolean;
|
|
77
|
+
keepVersions: z.ZodNumber;
|
|
78
|
+
}, z.core.$strict>;
|
|
79
|
+
android: z.ZodObject<{
|
|
80
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
81
|
+
acceptLicense: z.ZodBoolean;
|
|
82
|
+
platforms: z.ZodArray<z.ZodString>;
|
|
83
|
+
buildTools: z.ZodString;
|
|
84
|
+
ndk: z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodString]>;
|
|
85
|
+
cmake: z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodString]>;
|
|
86
|
+
packages: z.ZodArray<z.ZodString>;
|
|
87
|
+
}, z.core.$strict>;
|
|
88
|
+
flutter: z.ZodObject<{
|
|
89
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
90
|
+
version: z.ZodString;
|
|
91
|
+
windowsDesktop: z.ZodBoolean;
|
|
92
|
+
precache: z.ZodArray<z.ZodString>;
|
|
93
|
+
}, z.core.$strict>;
|
|
94
|
+
dart: z.ZodObject<{
|
|
95
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
96
|
+
version: z.ZodString;
|
|
97
|
+
}, z.core.$strict>;
|
|
98
|
+
reactNative: z.ZodObject<{
|
|
99
|
+
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
100
|
+
easCli: z.ZodBoolean;
|
|
42
101
|
}, z.core.$strict>;
|
|
43
102
|
cpp: z.ZodObject<{
|
|
44
103
|
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
@@ -51,6 +110,7 @@ export declare const ToolchainsSchema: z.ZodObject<{
|
|
|
51
110
|
workloads: z.ZodArray<z.ZodString>;
|
|
52
111
|
frameworkTargets: z.ZodArray<z.ZodString>;
|
|
53
112
|
netfx35: z.ZodBoolean;
|
|
113
|
+
templates: z.ZodArray<z.ZodString>;
|
|
54
114
|
}, z.core.$strict>;
|
|
55
115
|
go: z.ZodObject<{
|
|
56
116
|
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
@@ -62,6 +122,7 @@ export declare const ToolchainsSchema: z.ZodObject<{
|
|
|
62
122
|
version: z.ZodString;
|
|
63
123
|
maven: z.ZodBoolean;
|
|
64
124
|
gradle: z.ZodBoolean;
|
|
125
|
+
kotlin: z.ZodBoolean;
|
|
65
126
|
}, z.core.$strict>;
|
|
66
127
|
ruby: z.ZodObject<{
|
|
67
128
|
enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
|
|
@@ -62,6 +62,108 @@ export const ToolchainsSchema = z.strictObject({
|
|
|
62
62
|
keepInstallFiles: z
|
|
63
63
|
.boolean()
|
|
64
64
|
.describe('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.'),
|
|
65
|
+
persistEngines: z
|
|
66
|
+
.boolean()
|
|
67
|
+
.describe('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).'),
|
|
68
|
+
derivedDataCache: z
|
|
69
|
+
.enum(['persisted', 'local'])
|
|
70
|
+
.describe('"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).'),
|
|
71
|
+
}),
|
|
72
|
+
unity: z.strictObject({
|
|
73
|
+
enabled: enabled("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.", 'ProjectSettings/ProjectVersion.txt'),
|
|
74
|
+
acceptLicense: z
|
|
75
|
+
.boolean()
|
|
76
|
+
.describe('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.'),
|
|
77
|
+
version: z
|
|
78
|
+
.string()
|
|
79
|
+
.min(1)
|
|
80
|
+
.describe('"project" = the version in ProjectSettings/ProjectVersion.txt, or an editor version such as "6000.0.32f1".'),
|
|
81
|
+
modules: z
|
|
82
|
+
.array(z.string().regex(/^[a-z0-9-]+$/))
|
|
83
|
+
.describe('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).'),
|
|
84
|
+
hub: z.boolean().describe('Also Unity Hub, with the installed editors listed in it.'),
|
|
85
|
+
keepVersions: z
|
|
86
|
+
.number()
|
|
87
|
+
.int()
|
|
88
|
+
.min(1)
|
|
89
|
+
.max(20)
|
|
90
|
+
.describe('How many editor versions to keep in tools\\unity; older ones are removed (the least recently used first).'),
|
|
91
|
+
}),
|
|
92
|
+
godot: z.strictObject({
|
|
93
|
+
enabled: enabled('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.', 'project.godot'),
|
|
94
|
+
version: z
|
|
95
|
+
.string()
|
|
96
|
+
.min(1)
|
|
97
|
+
.describe('"project" = the version project.godot was saved with (else the newest stable), or a version such as "4.3".'),
|
|
98
|
+
dotnet: EnabledSchema.describe('The .NET (C#) build of Godot and the .NET SDK: true, false, or "auto" = when the project has a .csproj.'),
|
|
99
|
+
exportTemplates: z.boolean().describe('Also the export templates for that version (~1.2 GB), for exporting games.'),
|
|
100
|
+
keepVersions: z
|
|
101
|
+
.number()
|
|
102
|
+
.int()
|
|
103
|
+
.min(1)
|
|
104
|
+
.max(20)
|
|
105
|
+
.describe('How many Godot versions to keep; older ones are removed (the least recently used first).'),
|
|
106
|
+
}),
|
|
107
|
+
steam: z.strictObject({
|
|
108
|
+
enabled: enabled('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.', 'steam_appid.txt, steam_api64.dll, steam_api.dll, or an app_build / workshop_item .vdf'),
|
|
109
|
+
client: z
|
|
110
|
+
.boolean()
|
|
111
|
+
.describe('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.'),
|
|
112
|
+
sdkFolder: z
|
|
113
|
+
.string()
|
|
114
|
+
.describe('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).'),
|
|
115
|
+
}),
|
|
116
|
+
fivem: z.strictObject({
|
|
117
|
+
enabled: enabled('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.', 'fxmanifest.lua or __resource.lua (up to 3 folders down)'),
|
|
118
|
+
acceptLicense: z
|
|
119
|
+
.boolean()
|
|
120
|
+
.describe('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.'),
|
|
121
|
+
game: z.enum(['gta5', 'rdr3']).describe('"gta5" = FiveM, "rdr3" = RedM.'),
|
|
122
|
+
artifact: z
|
|
123
|
+
.string()
|
|
124
|
+
.regex(/^(recommended|optional|latest|\d+)$/)
|
|
125
|
+
.describe('The server build: "recommended", "optional", "latest", or a build number.'),
|
|
126
|
+
txAdmin: z.boolean().describe('Start the server with txAdmin (its web panel on port 40120).'),
|
|
127
|
+
keepVersions: z
|
|
128
|
+
.number()
|
|
129
|
+
.int()
|
|
130
|
+
.min(1)
|
|
131
|
+
.max(20)
|
|
132
|
+
.describe('How many server builds to keep in tools\\fivem\\artifacts.'),
|
|
133
|
+
}),
|
|
134
|
+
android: z.strictObject({
|
|
135
|
+
enabled: enabled('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.', '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'),
|
|
136
|
+
acceptLicense: z
|
|
137
|
+
.boolean()
|
|
138
|
+
.describe('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.'),
|
|
139
|
+
platforms: StringsSchema.describe('Platforms to install, e.g. ["android-35"]; "project" = the compileSdk the project\'s Gradle files ask for.'),
|
|
140
|
+
buildTools: z.string().min(1).describe('"latest" or a build-tools version such as "35.0.0".'),
|
|
141
|
+
ndk: z
|
|
142
|
+
.union([z.literal(false), z.string().min(1)])
|
|
143
|
+
.describe('"auto" = when the project uses native code (ndkVersion, CMake or ndk-build), false = never, or a version.'),
|
|
144
|
+
cmake: z
|
|
145
|
+
.union([z.literal(false), z.string().min(1)])
|
|
146
|
+
.describe('"auto" = when the project builds native code with CMake, false = never, or a version.'),
|
|
147
|
+
packages: Packages('More sdkmanager packages (not the emulator or system images)', '["extras;google;usb_driver"]'),
|
|
148
|
+
}),
|
|
149
|
+
flutter: z.strictObject({
|
|
150
|
+
enabled: enabled('Flutter (with its Dart) from the official releases (checked against their SHA-256), with the Android SDK for Android builds.', 'a pubspec.yaml with a flutter: section'),
|
|
151
|
+
version: z
|
|
152
|
+
.string()
|
|
153
|
+
.min(1)
|
|
154
|
+
.describe('"project" = the version in .fvmrc (else the newest stable), "stable", "beta", or a version such as "3.24.5".'),
|
|
155
|
+
windowsDesktop: z
|
|
156
|
+
.boolean()
|
|
157
|
+
.describe("Windows desktop builds: needs Visual Studio Build Tools' C++ parts (a real installer: it runs every boot, ~5 GB on the sandbox disk)."),
|
|
158
|
+
precache: StringsSchema.describe('Platforms whose engine files are downloaded ahead (flutter precache), e.g. ["android", "web"].'),
|
|
159
|
+
}),
|
|
160
|
+
dart: z.strictObject({
|
|
161
|
+
enabled: enabled('The Dart SDK (without Flutter), checked against its published SHA-256.', 'a pubspec.yaml without a flutter: section'),
|
|
162
|
+
version: z.string().min(1).describe('"stable", "beta" or a version such as "3.5.4".'),
|
|
163
|
+
}),
|
|
164
|
+
reactNative: z.strictObject({
|
|
165
|
+
enabled: enabled('React Native / Expo: the Android SDK and JDK for Android builds (Node is always there). iOS builds run in EAS Build (the cloud).', 'a package.json depending on react-native or expo'),
|
|
166
|
+
easCli: z.boolean().describe('Also eas-cli (Expo Application Services) as a global npm package.'),
|
|
65
167
|
}),
|
|
66
168
|
cpp: z.strictObject({
|
|
67
169
|
enabled: enabled("MinGW-w64 GCC with CMake, Ninja, premake5 and mingw32-make (also Rust's linker).", 'CMakeLists.txt, Makefile, meson.build, premake5.lua or Cargo.toml'),
|
|
@@ -78,6 +180,7 @@ export const ToolchainsSchema = z.strictObject({
|
|
|
78
180
|
netfx35: z
|
|
79
181
|
.boolean()
|
|
80
182
|
.describe('.NET Framework 3.5 runtime (a Windows feature, enabled from Windows Update on every boot; a few minutes).'),
|
|
183
|
+
templates: Packages('Project templates (`dotnet new install`)', '["MonoGame.Templates.CSharp"]'),
|
|
81
184
|
}),
|
|
82
185
|
go: z.strictObject({
|
|
83
186
|
enabled: enabled('Go.', 'go.mod or go.work'),
|
|
@@ -95,6 +198,9 @@ export const ToolchainsSchema = z.strictObject({
|
|
|
95
198
|
.describe('"lts" (newest LTS) or a major version such as "21". A project\'s .java-version or .sdkmanrc wins.'),
|
|
96
199
|
maven: z.boolean().describe("Apache Maven (mvn). A project's mvnw works either way."),
|
|
97
200
|
gradle: z.boolean().describe("Gradle (gradle). A project's gradlew works either way."),
|
|
201
|
+
kotlin: z
|
|
202
|
+
.boolean()
|
|
203
|
+
.describe("Also the Kotlin compiler (kotlinc) from JetBrains' releases. Gradle builds fetch their own."),
|
|
98
204
|
}),
|
|
99
205
|
ruby: z.strictObject({
|
|
100
206
|
enabled: enabled('Ruby (RubyInstaller, with gem and bundler). Gems with C extensions need MSYS2, which is not included.', 'Gemfile, a .gemspec or .ruby-version'),
|
package/dist/core/types.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ import type { z } from 'zod';
|
|
|
2
2
|
import type { AutoToolchain, ToolchainDecision } from './detect/index.js';
|
|
3
3
|
import type { BootWant } from './local-config/index.js';
|
|
4
4
|
import type { ConfigSchema, GitAccessSchema, HarnessSchema, LocalOverridesSchema, MappingSchema } from './schema/index.js';
|
|
5
|
+
import type { Payloads } from '../shared/accounts/payloads.js';
|
|
6
|
+
import type { ServiceKind } from '../shared/accounts/kinds.js';
|
|
7
|
+
import type { PcInstallManifest } from '../shared/paths/pc-installs.js';
|
|
5
8
|
export type { AttachEndpoint, GuestRequest, GuestResponse, SandboxStatus, SessionStatus, } from '../shared/channel/index.js';
|
|
6
9
|
export type Config = z.output<typeof ConfigSchema>;
|
|
7
10
|
export type Overrides = z.output<typeof LocalOverridesSchema>;
|
|
@@ -143,6 +146,17 @@ export interface GenerateOptions {
|
|
|
143
146
|
vpn?: PreparedVpn;
|
|
144
147
|
/** The saved GitHub token (github.shareToken, host/github/deliver.ts): only ever written to the one-shot file. */
|
|
145
148
|
githubToken?: string;
|
|
149
|
+
/** Saved service sign-ins this launch hands over (accounts.<kind>.share): only ever in the one-shot file. */
|
|
150
|
+
serviceAccounts?: Payloads;
|
|
151
|
+
/** The kinds whose lease this launch holds (a sign-in made or renewed there may come back). Names only. */
|
|
152
|
+
accountLeases?: ServiceKind[];
|
|
153
|
+
/** The launch's id, when the caller made it first (service-account leases name it). */
|
|
154
|
+
launchId?: string;
|
|
155
|
+
/** pcInstalls: this PC's games, engines and editors, read-only under C:\PcInstalls (host/pc-installs). */
|
|
156
|
+
pcInstalls?: {
|
|
157
|
+
mappings: ResolvedMapping[];
|
|
158
|
+
manifest: PcInstallManifest;
|
|
159
|
+
};
|
|
146
160
|
/** The data set's mappings from a storage provider (contained storage); else the data folder is one mapping. */
|
|
147
161
|
dataMappings?: ResolvedMapping[];
|
|
148
162
|
}
|
|
@@ -284,4 +298,8 @@ export interface GuestSession {
|
|
|
284
298
|
agentProfileDirs?: Record<string, string[]>;
|
|
285
299
|
/** Every configured agent (without its environment): a terminal command each; older launch folders lack it. */
|
|
286
300
|
agents?: Record<string, Harness>;
|
|
301
|
+
/** pcInstalls: what is mapped read-only under C:\PcInstalls (paths in the sandbox only); older launches lack it. */
|
|
302
|
+
pcInstalls?: PcInstallManifest;
|
|
303
|
+
/** Service sign-ins whose lease this launch holds: the sandbox hands renewed ones back (names only). */
|
|
304
|
+
accountLeases?: ServiceKind[];
|
|
287
305
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Payload, ServiceKind } from '../../shared/accounts/index.js';
|
|
2
|
+
export interface Applied {
|
|
3
|
+
/** Variables the agent's sessions get (EXPO_TOKEN ...), in memory only. */
|
|
4
|
+
readonly env?: Readonly<Record<string, string>>;
|
|
5
|
+
/** One line for the boot log; never the secret. */
|
|
6
|
+
readonly summary: string;
|
|
7
|
+
}
|
|
8
|
+
export interface GuestAdapter<K extends ServiceKind> {
|
|
9
|
+
readonly kind: K;
|
|
10
|
+
apply(p: Payload<K>): Promise<Applied> | Applied;
|
|
11
|
+
/** Bounded, BOM-aware read of what the tool holds now; null when it holds none. */
|
|
12
|
+
current?(): Payload<K> | null;
|
|
13
|
+
/** How often current() is asked (default 60000 ms). */
|
|
14
|
+
readonly checkMs?: number;
|
|
15
|
+
/** When the sandbox stops: let go of what must not stay taken (a Unity seat). */
|
|
16
|
+
release?(): Promise<void> | void;
|
|
17
|
+
}
|
|
18
|
+
/** %LOCALAPPDATA% of the sandbox's user (its own disk). */
|
|
19
|
+
export declare function localAppData(): string;
|
|
20
|
+
/** The sandbox's own folder for the accounts: %LOCALAPPDATA%\AgentSandbox\accounts (wiped with the sandbox). */
|
|
21
|
+
export declare function accountsRoot(): string;
|
|
22
|
+
/** Where one kind's files go (a keystore, a .p8, a cfg the server reads). */
|
|
23
|
+
export declare function secretDir(kind: ServiceKind): string;
|
|
24
|
+
/** What a kind whose sandbox side is not written yet says (the sign-in is not used). */
|
|
25
|
+
export declare function notAvailableYet(kind: ServiceKind): Applied;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// How a handed-over service sign-in becomes the tool's own (one adapter per kind under kinds/): apply writes it where
|
|
2
|
+
// the tool reads it, current reads back what the tool holds now (a renewed sign-in), release lets go of it when the
|
|
3
|
+
// sandbox stops (a Unity seat). Adapters write only to secretDir(kind) or the tool's own files on the sandbox's disk,
|
|
4
|
+
// which is wiped when the sandbox closes. No runtime imports: the self-test loads these files.
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
/** %LOCALAPPDATA% of the sandbox's user (its own disk). */
|
|
7
|
+
export function localAppData() {
|
|
8
|
+
return process.env.LOCALAPPDATA ?? 'C:\\Users\\WDAGUtilityAccount\\AppData\\Local';
|
|
9
|
+
}
|
|
10
|
+
/** The sandbox's own folder for the accounts: %LOCALAPPDATA%\AgentSandbox\accounts (wiped with the sandbox). */
|
|
11
|
+
export function accountsRoot() {
|
|
12
|
+
return path.join(localAppData(), 'AgentSandbox', 'accounts');
|
|
13
|
+
}
|
|
14
|
+
/** Where one kind's files go (a keystore, a .p8, a cfg the server reads). */
|
|
15
|
+
export function secretDir(kind) {
|
|
16
|
+
return path.join(accountsRoot(), kind);
|
|
17
|
+
}
|
|
18
|
+
/** What a kind whose sandbox side is not written yet says (the sign-in is not used). */
|
|
19
|
+
export function notAvailableYet(kind) {
|
|
20
|
+
return { summary: kind + ': using a saved sign-in is not available yet (it is not used)' };
|
|
21
|
+
}
|