windows-development-sandbox 1.27.1 → 1.28.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/dist/app/context.d.ts +5 -0
- package/dist/app/context.js +13 -0
- package/dist/app/features/accounts/accounts.def.d.ts +16 -0
- package/dist/app/features/accounts/accounts.run.d.ts +4 -0
- package/dist/app/features/accounts/services.def.d.ts +15 -1
- package/dist/app/features/accounts/services.def.js +67 -31
- package/dist/app/features/accounts/services.run.d.ts +7 -2
- package/dist/app/features/accounts/services.run.js +25 -6
- package/dist/app/features/defs.d.ts +17 -0
- package/dist/app/registry.d.ts +1 -1
- package/dist/app/registry.js +15 -2
- package/dist/bin/agent-sandbox.js +2 -2
- package/dist/bin/{chunk-RSIX7C6D.js → chunk-CB44HTTN.js} +444 -175
- package/dist/bin/{chunk-4TLSWPG7.js → chunk-UZ5S3EMB.js} +1 -1
- package/dist/bin/{chunk-QUHNXHVG.js → chunk-ZMZI3625.js} +46 -41
- 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/menu/menu.js +6 -1
- package/dist/cli/menu/pages/accounts-page.js +9 -5
- package/dist/core/schema/sandbox.js +1 -1
- package/dist/guest/apps/app-installer.js +7 -5
- package/dist/guest/apps/comet-unpack.js +2 -2
- package/dist/guest/daemon/heartbeat.js +1 -0
- package/dist/guest/governor/core.d.ts +53 -1
- package/dist/guest/governor/core.js +95 -1
- package/dist/guest/governor/decide.d.ts +4 -0
- package/dist/guest/governor/decide.js +2 -0
- package/dist/guest/governor/governor.js +23 -9
- package/dist/guest/runtime/pools.d.ts +4 -4
- package/dist/guest/runtime/pools.js +4 -15
- package/dist/guest/runtime/process.d.ts +5 -2
- package/dist/guest/runtime/process.js +23 -3
- package/dist/guest/toolchains/engines/epic-launcher.d.ts +6 -0
- package/dist/guest/toolchains/engines/epic-launcher.js +19 -1
- package/dist/guest/toolchains/engines/unreal-engines.js +2 -1
- package/dist/guest/toolchains/installers.d.ts +3 -3
- package/dist/guest/toolchains/installers.js +5 -5
- package/dist/guest/toolchains/native/unreal.js +22 -3
- package/dist/guest/toolchains/native/vcruntime.js +2 -2
- package/dist/guest/toolchains/native/vs-persist.d.ts +2 -2
- package/dist/guest/toolchains/runtimes.js +7 -6
- package/dist/guest/toolchains/signature.d.ts +2 -0
- package/dist/guest/toolchains/signature.js +9 -2
- package/dist/guest/toolchains/step-scheduler.js +1 -1
- package/dist/host/accounts/deliver.js +15 -7
- package/dist/host/life/crash-report.d.ts +4 -0
- package/dist/host/life/crash-report.js +30 -1
- package/dist/host/life/last-end.js +1 -0
- package/dist/host/pc-installs/discover.js +5 -2
- package/dist/host/pc-installs/unreal.d.ts +3 -1
- package/dist/host/pc-installs/unreal.js +27 -1
- package/dist/host/tools/windows-terminal.d.ts +4 -1
- package/dist/host/tools/windows-terminal.js +25 -9
- package/dist/runtime/agent.js +39 -23
- package/dist/runtime/daemon.js +279 -121
- package/dist/runtime/db.js +37 -17
- package/dist/runtime/main.js +340 -109
- package/dist/runtime/netproxy.js +31 -13
- package/dist/runtime/tool.js +37 -16
- package/dist/runtime/view.js +150 -38
- package/dist/selftest/agent-paths.test.js +3 -1
- package/dist/selftest/app.test.js +20 -2
- package/dist/selftest/boot-runner.test.js +15 -1
- package/dist/selftest/channel.test.js +33 -0
- package/dist/selftest/engines.test.js +22 -1
- package/dist/selftest/heavy-load.test.js +116 -4
- package/dist/selftest/live-terminal.test.js +103 -0
- package/dist/selftest/menu-screens.js +52 -1
- package/dist/selftest/menu.test.js +29 -3
- package/dist/selftest/personalization.test.js +2 -1
- package/dist/selftest/service-accounts.test.js +77 -2
- package/dist/selftest/support/engine-golden.js +2 -0
- package/dist/selftest/ui-text.test.js +4 -0
- package/dist/shared/accounts/kinds.js +9 -9
- package/dist/shared/apps/catalogue-gamedev.js +1 -0
- package/dist/shared/apps/catalogue.d.ts +2 -0
- package/dist/shared/channel/schema.d.ts +2 -0
- package/dist/shared/channel/schema.js +4 -0
- package/dist/shared/concurrency/pools.js +1 -1
- package/dist/shared/download/archive.js +4 -2
- package/dist/shared/download/index.d.ts +1 -1
- package/dist/shared/download/index.js +1 -1
- package/dist/shared/download/spawn.d.ts +7 -1
- package/dist/shared/download/spawn.js +16 -1
- package/dist/shared/memory/index.d.ts +1 -0
- package/dist/shared/memory/index.js +1 -0
- package/dist/shared/memory/policy.d.ts +12 -0
- package/dist/shared/memory/policy.js +4 -0
- package/dist/shared/memory/unreal-build.d.ts +2 -0
- package/dist/shared/memory/unreal-build.js +21 -0
- package/dist/shared/paths/pc-installs.d.ts +8 -0
- package/dist/shared/pty/clipboard-watch.d.ts +4 -0
- package/dist/shared/pty/clipboard-watch.js +40 -0
- package/dist/shared/pty/ctrl-c.d.ts +13 -7
- package/dist/shared/pty/ctrl-c.js +35 -19
- package/dist/shared/pty/index.d.ts +1 -0
- package/dist/shared/pty/index.js +1 -0
- package/dist/shared/pty/terminal.d.ts +1 -1
- package/dist/shared/pty/terminal.js +16 -13
- package/dist/shared/unreal/launcher-files.d.ts +7 -0
- package/dist/shared/unreal/launcher-files.js +32 -1
- package/dist/shared/web/ctrl-c.d.ts +26 -0
- package/dist/shared/web/ctrl-c.js +64 -0
- package/dist/shared/web/index.d.ts +1 -0
- package/dist/shared/web/index.js +1 -0
- package/dist/web/index.html +1 -1
- package/dist/web/{main-VPMYTSUL.js → main-7NY4X6YU.js} +67 -67
- 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/csharp/ClipboardWatch.cs +59 -0
- package/sandbox/csharp/MemGov.cs +752 -7
- package/sandbox/scripts/watch-clipboard.ps1 +8 -0
- package/schemas/config.schema.json +10 -10
- package/schemas/sandbox-config.schema.json +9 -9
package/dist/runtime/netproxy.js
CHANGED
|
@@ -25530,7 +25530,7 @@ var SandboxSchema = external_exports.strictObject({
|
|
|
25530
25530
|
'The last resort that keeps the sandbox up, in MB below its commit limit (RAM plus paging file): builds are slowed down long before (sandbox.pressureResponse); only if everything the agents start together would take the sandbox to the very edge of its memory, where Windows inside it would start failing, is a build refused memory instead of Windows. "auto" = the larger of 1536 MB and 3 % of the commit limit; "none" = no backstop. Yours only: a project file cannot change it.'
|
|
25531
25531
|
),
|
|
25532
25532
|
pressureResponse: external_exports.boolean().describe(
|
|
25533
|
-
"When the sandbox (or this PC) runs low on memory, slow builds down in steps, like a PC that gets slower instead of failing: build programs get lower CPU and memory priority, then less CPU, then compilers take turns (the waiting ones briefly suspended and trimmed to the paging file). Nothing is stopped or killed, and the agents themselves are never touched. Yours only: a project file cannot change it."
|
|
25533
|
+
"When the sandbox (or this PC) runs low on memory, slow builds down in steps, like a PC that gets slower instead of failing: build programs get lower CPU and memory priority, then less CPU, then compilers take turns (the waiting ones briefly suspended and trimmed to the paging file). Nothing is stopped or killed, and the agents themselves are never touched. A memory gate also holds new compilers and linkers for a moment when the memory of the build programs grows faster than 4 GB in 3 seconds (3 GB with vGPU), and lets them go one at a time. Yours only: a project file cannot change it."
|
|
25534
25534
|
),
|
|
25535
25535
|
vGpu: external_exports.boolean().describe(
|
|
25536
25536
|
"Virtual GPU. Off by default: Microsoft notes it widens the sandbox attack surface. The sandbox then uses this PC's graphics card, and with some graphics drivers heavy use can freeze the whole PC: turn it on only when a program in the sandbox needs the GPU (the mesa toolchain gives software OpenGL without it). Browsers in the sandbox never use it (they draw in software)."
|
|
@@ -26121,6 +26121,7 @@ var GAMEDEV_APPS = [
|
|
|
26121
26121
|
size: "100 MB",
|
|
26122
26122
|
source: { github: "f3d-app/f3d", asset: "^F3D-[\\d.]+-Windows-x86_64\\.zip$" },
|
|
26123
26123
|
exe: "f3d.exe",
|
|
26124
|
+
onPath: true,
|
|
26124
26125
|
needs: ["mesa"]
|
|
26125
26126
|
},
|
|
26126
26127
|
{
|
|
@@ -27220,7 +27221,7 @@ var SERVICE_SPECS = {
|
|
|
27220
27221
|
},
|
|
27221
27222
|
steam: {
|
|
27222
27223
|
kind: "steam",
|
|
27223
|
-
label: "Steam
|
|
27224
|
+
label: "Steam",
|
|
27224
27225
|
usedBy: ["steam"],
|
|
27225
27226
|
sources: ["file", "sandbox"],
|
|
27226
27227
|
singleHolder: true,
|
|
@@ -27256,7 +27257,7 @@ var SERVICE_SPECS = {
|
|
|
27256
27257
|
},
|
|
27257
27258
|
cfx: {
|
|
27258
27259
|
kind: "cfx",
|
|
27259
|
-
label: "
|
|
27260
|
+
label: "FiveM key",
|
|
27260
27261
|
usedBy: ["fivem"],
|
|
27261
27262
|
sources: ["typed", "file"],
|
|
27262
27263
|
singleHolder: false,
|
|
@@ -27285,7 +27286,7 @@ var SERVICE_SPECS = {
|
|
|
27285
27286
|
},
|
|
27286
27287
|
keystore: {
|
|
27287
27288
|
kind: "keystore",
|
|
27288
|
-
label: "Android
|
|
27289
|
+
label: "Android keystore",
|
|
27289
27290
|
usedBy: ["android"],
|
|
27290
27291
|
sources: ["file"],
|
|
27291
27292
|
singleHolder: false,
|
|
@@ -27300,7 +27301,7 @@ var SERVICE_SPECS = {
|
|
|
27300
27301
|
},
|
|
27301
27302
|
play: {
|
|
27302
27303
|
kind: "play",
|
|
27303
|
-
label: "Google Play
|
|
27304
|
+
label: "Google Play",
|
|
27304
27305
|
usedBy: ["android"],
|
|
27305
27306
|
sources: ["file"],
|
|
27306
27307
|
singleHolder: false,
|
|
@@ -27311,7 +27312,7 @@ var SERVICE_SPECS = {
|
|
|
27311
27312
|
},
|
|
27312
27313
|
expo: {
|
|
27313
27314
|
kind: "expo",
|
|
27314
|
-
label: "Expo
|
|
27315
|
+
label: "Expo",
|
|
27315
27316
|
usedBy: ["reactNative"],
|
|
27316
27317
|
sources: ["typed"],
|
|
27317
27318
|
singleHolder: false,
|
|
@@ -27322,7 +27323,7 @@ var SERVICE_SPECS = {
|
|
|
27322
27323
|
},
|
|
27323
27324
|
appstore: {
|
|
27324
27325
|
kind: "appstore",
|
|
27325
|
-
label: "App Store Connect
|
|
27326
|
+
label: "App Store Connect",
|
|
27326
27327
|
usedBy: ["reactNative", "flutter"],
|
|
27327
27328
|
sources: ["file", "typed"],
|
|
27328
27329
|
singleHolder: false,
|
|
@@ -27336,7 +27337,7 @@ var SERVICE_SPECS = {
|
|
|
27336
27337
|
},
|
|
27337
27338
|
perplexity: {
|
|
27338
27339
|
kind: "perplexity",
|
|
27339
|
-
label: "Perplexity API
|
|
27340
|
+
label: "Perplexity API",
|
|
27340
27341
|
usedBy: ["perplexity"],
|
|
27341
27342
|
sources: ["pc", "file", "typed"],
|
|
27342
27343
|
singleHolder: false,
|
|
@@ -27360,7 +27361,7 @@ var SERVICE_SPECS = {
|
|
|
27360
27361
|
},
|
|
27361
27362
|
comet: {
|
|
27362
27363
|
kind: "comet",
|
|
27363
|
-
label: "Comet
|
|
27364
|
+
label: "Comet",
|
|
27364
27365
|
usedBy: ["comet"],
|
|
27365
27366
|
sources: ["sandbox"],
|
|
27366
27367
|
singleHolder: false,
|
|
@@ -27376,7 +27377,7 @@ var SERVICE_SPECS = {
|
|
|
27376
27377
|
},
|
|
27377
27378
|
perplexityapp: {
|
|
27378
27379
|
kind: "perplexityapp",
|
|
27379
|
-
label: "Perplexity
|
|
27380
|
+
label: "Perplexity app",
|
|
27380
27381
|
usedBy: ["perplexityapp"],
|
|
27381
27382
|
sources: ["sandbox"],
|
|
27382
27383
|
singleHolder: false,
|
|
@@ -27727,6 +27728,8 @@ var PressureStatusSchema = external_exports.object({
|
|
|
27727
27728
|
lowered: external_exports.number().int().min(0).max(1024),
|
|
27728
27729
|
/** Compilers waiting their turn right now (name, process id, seconds until they may go on). */
|
|
27729
27730
|
paused: external_exports.array(external_exports.object({ name: Text(64), pid: external_exports.number().int(), seconds: external_exports.number().int().min(0).max(60) })).max(8),
|
|
27731
|
+
/** Build programs the memory gate holds right now (let go one at a time). */
|
|
27732
|
+
held: external_exports.number().int().min(0).max(1024).optional(),
|
|
27730
27733
|
/** The CPU share the compilers get together (percent; 100 = no cap). */
|
|
27731
27734
|
cpuPercent: external_exports.number().int().min(0).max(100).optional(),
|
|
27732
27735
|
/** The PC itself asked for slowing down (its memory or CPU is low). */
|
|
@@ -27747,6 +27750,8 @@ var HeartbeatSchema = external_exports.object({
|
|
|
27747
27750
|
topProcesses: external_exports.array(external_exports.object({ name: Text(64), privateMb: external_exports.number().int().min(0).max(1e7) })).max(5),
|
|
27748
27751
|
/** The disk queue this PC last reported while asking the sandbox to slow down. */
|
|
27749
27752
|
diskQueueReported: external_exports.number().min(0).max(1e5).optional(),
|
|
27753
|
+
/** Build programs the memory gate holds right now (let go one at a time). */
|
|
27754
|
+
held: external_exports.number().int().min(0).max(1024).optional(),
|
|
27750
27755
|
/** "ending": the sandbox is shutting down in order (idle shutdown, sandbox stop, Windows shutting down). */
|
|
27751
27756
|
phase: external_exports.enum(["ready", "working", "ending"])
|
|
27752
27757
|
});
|
|
@@ -28124,10 +28129,20 @@ function scriptArgs(name, args = []) {
|
|
|
28124
28129
|
}
|
|
28125
28130
|
|
|
28126
28131
|
// src/shared/download/spawn.ts
|
|
28132
|
+
import os3 from "node:os";
|
|
28127
28133
|
import { spawn } from "node:child_process";
|
|
28134
|
+
function lowerPriority(pid) {
|
|
28135
|
+
if (pid === void 0) return;
|
|
28136
|
+
try {
|
|
28137
|
+
os3.setPriority(pid, os3.constants.priority.PRIORITY_BELOW_NORMAL);
|
|
28138
|
+
} catch {
|
|
28139
|
+
}
|
|
28140
|
+
}
|
|
28128
28141
|
function spawnAsync(file2, args, options = {}) {
|
|
28142
|
+
const { lowPriority, ...spawnOptions } = options;
|
|
28129
28143
|
return new Promise((resolve, reject) => {
|
|
28130
|
-
const child = spawn(file2, args, { stdio: "ignore", windowsHide: true, ...
|
|
28144
|
+
const child = spawn(file2, args, { stdio: "ignore", windowsHide: true, ...spawnOptions });
|
|
28145
|
+
if (lowPriority) lowerPriority(child.pid);
|
|
28131
28146
|
child.once("error", reject);
|
|
28132
28147
|
child.once("close", (code) => resolve(code ?? -1));
|
|
28133
28148
|
});
|
|
@@ -28148,13 +28163,16 @@ function extractArchive(archive, destination, members2 = []) {
|
|
|
28148
28163
|
}
|
|
28149
28164
|
async function extract(archive, destination, members2) {
|
|
28150
28165
|
fs6.mkdirSync(destination, { recursive: true });
|
|
28151
|
-
let status = await spawnAsync(SYSTEM.tar(), ["-xf", archive, "-C", destination, ...members2]
|
|
28166
|
+
let status = await spawnAsync(SYSTEM.tar(), ["-xf", archive, "-C", destination, ...members2], {
|
|
28167
|
+
lowPriority: true
|
|
28168
|
+
});
|
|
28152
28169
|
if (status !== 0 && /\.(zip|nupkg)$/i.test(archive)) {
|
|
28153
28170
|
const zip = archive.endsWith(".zip") ? archive : archive + ".zip";
|
|
28154
28171
|
if (zip !== archive) fs6.copyFileSync(archive, zip);
|
|
28155
28172
|
status = await spawnAsync(
|
|
28156
28173
|
SYSTEM.powershell(),
|
|
28157
|
-
scriptArgs("expand-archive.ps1", ["-Archive", zip, "-Destination", destination])
|
|
28174
|
+
scriptArgs("expand-archive.ps1", ["-Archive", zip, "-Destination", destination]),
|
|
28175
|
+
{ lowPriority: true }
|
|
28158
28176
|
);
|
|
28159
28177
|
}
|
|
28160
28178
|
if (status !== 0) throw new Error("Could not extract " + archive);
|
package/dist/runtime/tool.js
CHANGED
|
@@ -5551,7 +5551,7 @@ var androidTool = {
|
|
|
5551
5551
|
|
|
5552
5552
|
// src/guest/devtools/fivem.ts
|
|
5553
5553
|
import fs17 from "node:fs";
|
|
5554
|
-
import
|
|
5554
|
+
import os4 from "node:os";
|
|
5555
5555
|
import path20 from "node:path";
|
|
5556
5556
|
import { spawnSync as spawnSync2 } from "node:child_process";
|
|
5557
5557
|
|
|
@@ -5831,10 +5831,20 @@ function scriptArgs(name2, args2 = []) {
|
|
|
5831
5831
|
}
|
|
5832
5832
|
|
|
5833
5833
|
// src/shared/download/spawn.ts
|
|
5834
|
+
import os3 from "node:os";
|
|
5834
5835
|
import { spawn } from "node:child_process";
|
|
5836
|
+
function lowerPriority(pid) {
|
|
5837
|
+
if (pid === void 0) return;
|
|
5838
|
+
try {
|
|
5839
|
+
os3.setPriority(pid, os3.constants.priority.PRIORITY_BELOW_NORMAL);
|
|
5840
|
+
} catch {
|
|
5841
|
+
}
|
|
5842
|
+
}
|
|
5835
5843
|
function spawnAsync(file2, args2, options = {}) {
|
|
5844
|
+
const { lowPriority, ...spawnOptions } = options;
|
|
5836
5845
|
return new Promise((resolve, reject) => {
|
|
5837
|
-
const child = spawn(file2, args2, { stdio: "ignore", windowsHide: true, ...
|
|
5846
|
+
const child = spawn(file2, args2, { stdio: "ignore", windowsHide: true, ...spawnOptions });
|
|
5847
|
+
if (lowPriority) lowerPriority(child.pid);
|
|
5838
5848
|
child.once("error", reject);
|
|
5839
5849
|
child.once("close", (code) => resolve(code ?? -1));
|
|
5840
5850
|
});
|
|
@@ -5855,13 +5865,16 @@ function extractArchive(archive, destination, members2 = []) {
|
|
|
5855
5865
|
}
|
|
5856
5866
|
async function extract(archive, destination, members2) {
|
|
5857
5867
|
fs7.mkdirSync(destination, { recursive: true });
|
|
5858
|
-
let status = await spawnAsync(SYSTEM.tar(), ["-xf", archive, "-C", destination, ...members2]
|
|
5868
|
+
let status = await spawnAsync(SYSTEM.tar(), ["-xf", archive, "-C", destination, ...members2], {
|
|
5869
|
+
lowPriority: true
|
|
5870
|
+
});
|
|
5859
5871
|
if (status !== 0 && /\.(zip|nupkg)$/i.test(archive)) {
|
|
5860
5872
|
const zip = archive.endsWith(".zip") ? archive : archive + ".zip";
|
|
5861
5873
|
if (zip !== archive) fs7.copyFileSync(archive, zip);
|
|
5862
5874
|
status = await spawnAsync(
|
|
5863
5875
|
SYSTEM.powershell(),
|
|
5864
|
-
scriptArgs("expand-archive.ps1", ["-Archive", zip, "-Destination", destination])
|
|
5876
|
+
scriptArgs("expand-archive.ps1", ["-Archive", zip, "-Destination", destination]),
|
|
5877
|
+
{ lowPriority: true }
|
|
5865
5878
|
);
|
|
5866
5879
|
}
|
|
5867
5880
|
if (status !== 0) throw new Error("Could not extract " + archive);
|
|
@@ -25903,7 +25916,7 @@ var SandboxSchema = external_exports.strictObject({
|
|
|
25903
25916
|
'The last resort that keeps the sandbox up, in MB below its commit limit (RAM plus paging file): builds are slowed down long before (sandbox.pressureResponse); only if everything the agents start together would take the sandbox to the very edge of its memory, where Windows inside it would start failing, is a build refused memory instead of Windows. "auto" = the larger of 1536 MB and 3 % of the commit limit; "none" = no backstop. Yours only: a project file cannot change it.'
|
|
25904
25917
|
),
|
|
25905
25918
|
pressureResponse: external_exports.boolean().describe(
|
|
25906
|
-
"When the sandbox (or this PC) runs low on memory, slow builds down in steps, like a PC that gets slower instead of failing: build programs get lower CPU and memory priority, then less CPU, then compilers take turns (the waiting ones briefly suspended and trimmed to the paging file). Nothing is stopped or killed, and the agents themselves are never touched. Yours only: a project file cannot change it."
|
|
25919
|
+
"When the sandbox (or this PC) runs low on memory, slow builds down in steps, like a PC that gets slower instead of failing: build programs get lower CPU and memory priority, then less CPU, then compilers take turns (the waiting ones briefly suspended and trimmed to the paging file). Nothing is stopped or killed, and the agents themselves are never touched. A memory gate also holds new compilers and linkers for a moment when the memory of the build programs grows faster than 4 GB in 3 seconds (3 GB with vGPU), and lets them go one at a time. Yours only: a project file cannot change it."
|
|
25907
25920
|
),
|
|
25908
25921
|
vGpu: external_exports.boolean().describe(
|
|
25909
25922
|
"Virtual GPU. Off by default: Microsoft notes it widens the sandbox attack surface. The sandbox then uses this PC's graphics card, and with some graphics drivers heavy use can freeze the whole PC: turn it on only when a program in the sandbox needs the GPU (the mesa toolchain gives software OpenGL without it). Browsers in the sandbox never use it (they draw in software)."
|
|
@@ -26494,6 +26507,7 @@ var GAMEDEV_APPS = [
|
|
|
26494
26507
|
size: "100 MB",
|
|
26495
26508
|
source: { github: "f3d-app/f3d", asset: "^F3D-[\\d.]+-Windows-x86_64\\.zip$" },
|
|
26496
26509
|
exe: "f3d.exe",
|
|
26510
|
+
onPath: true,
|
|
26497
26511
|
needs: ["mesa"]
|
|
26498
26512
|
},
|
|
26499
26513
|
{
|
|
@@ -27593,7 +27607,7 @@ var SERVICE_SPECS = {
|
|
|
27593
27607
|
},
|
|
27594
27608
|
steam: {
|
|
27595
27609
|
kind: "steam",
|
|
27596
|
-
label: "Steam
|
|
27610
|
+
label: "Steam",
|
|
27597
27611
|
usedBy: ["steam"],
|
|
27598
27612
|
sources: ["file", "sandbox"],
|
|
27599
27613
|
singleHolder: true,
|
|
@@ -27629,7 +27643,7 @@ var SERVICE_SPECS = {
|
|
|
27629
27643
|
},
|
|
27630
27644
|
cfx: {
|
|
27631
27645
|
kind: "cfx",
|
|
27632
|
-
label: "
|
|
27646
|
+
label: "FiveM key",
|
|
27633
27647
|
usedBy: ["fivem"],
|
|
27634
27648
|
sources: ["typed", "file"],
|
|
27635
27649
|
singleHolder: false,
|
|
@@ -27658,7 +27672,7 @@ var SERVICE_SPECS = {
|
|
|
27658
27672
|
},
|
|
27659
27673
|
keystore: {
|
|
27660
27674
|
kind: "keystore",
|
|
27661
|
-
label: "Android
|
|
27675
|
+
label: "Android keystore",
|
|
27662
27676
|
usedBy: ["android"],
|
|
27663
27677
|
sources: ["file"],
|
|
27664
27678
|
singleHolder: false,
|
|
@@ -27673,7 +27687,7 @@ var SERVICE_SPECS = {
|
|
|
27673
27687
|
},
|
|
27674
27688
|
play: {
|
|
27675
27689
|
kind: "play",
|
|
27676
|
-
label: "Google Play
|
|
27690
|
+
label: "Google Play",
|
|
27677
27691
|
usedBy: ["android"],
|
|
27678
27692
|
sources: ["file"],
|
|
27679
27693
|
singleHolder: false,
|
|
@@ -27684,7 +27698,7 @@ var SERVICE_SPECS = {
|
|
|
27684
27698
|
},
|
|
27685
27699
|
expo: {
|
|
27686
27700
|
kind: "expo",
|
|
27687
|
-
label: "Expo
|
|
27701
|
+
label: "Expo",
|
|
27688
27702
|
usedBy: ["reactNative"],
|
|
27689
27703
|
sources: ["typed"],
|
|
27690
27704
|
singleHolder: false,
|
|
@@ -27695,7 +27709,7 @@ var SERVICE_SPECS = {
|
|
|
27695
27709
|
},
|
|
27696
27710
|
appstore: {
|
|
27697
27711
|
kind: "appstore",
|
|
27698
|
-
label: "App Store Connect
|
|
27712
|
+
label: "App Store Connect",
|
|
27699
27713
|
usedBy: ["reactNative", "flutter"],
|
|
27700
27714
|
sources: ["file", "typed"],
|
|
27701
27715
|
singleHolder: false,
|
|
@@ -27709,7 +27723,7 @@ var SERVICE_SPECS = {
|
|
|
27709
27723
|
},
|
|
27710
27724
|
perplexity: {
|
|
27711
27725
|
kind: "perplexity",
|
|
27712
|
-
label: "Perplexity API
|
|
27726
|
+
label: "Perplexity API",
|
|
27713
27727
|
usedBy: ["perplexity"],
|
|
27714
27728
|
sources: ["pc", "file", "typed"],
|
|
27715
27729
|
singleHolder: false,
|
|
@@ -27733,7 +27747,7 @@ var SERVICE_SPECS = {
|
|
|
27733
27747
|
},
|
|
27734
27748
|
comet: {
|
|
27735
27749
|
kind: "comet",
|
|
27736
|
-
label: "Comet
|
|
27750
|
+
label: "Comet",
|
|
27737
27751
|
usedBy: ["comet"],
|
|
27738
27752
|
sources: ["sandbox"],
|
|
27739
27753
|
singleHolder: false,
|
|
@@ -27749,7 +27763,7 @@ var SERVICE_SPECS = {
|
|
|
27749
27763
|
},
|
|
27750
27764
|
perplexityapp: {
|
|
27751
27765
|
kind: "perplexityapp",
|
|
27752
|
-
label: "Perplexity
|
|
27766
|
+
label: "Perplexity app",
|
|
27753
27767
|
usedBy: ["perplexityapp"],
|
|
27754
27768
|
sources: ["sandbox"],
|
|
27755
27769
|
singleHolder: false,
|
|
@@ -28100,6 +28114,8 @@ var PressureStatusSchema = external_exports.object({
|
|
|
28100
28114
|
lowered: external_exports.number().int().min(0).max(1024),
|
|
28101
28115
|
/** Compilers waiting their turn right now (name, process id, seconds until they may go on). */
|
|
28102
28116
|
paused: external_exports.array(external_exports.object({ name: Text(64), pid: external_exports.number().int(), seconds: external_exports.number().int().min(0).max(60) })).max(8),
|
|
28117
|
+
/** Build programs the memory gate holds right now (let go one at a time). */
|
|
28118
|
+
held: external_exports.number().int().min(0).max(1024).optional(),
|
|
28103
28119
|
/** The CPU share the compilers get together (percent; 100 = no cap). */
|
|
28104
28120
|
cpuPercent: external_exports.number().int().min(0).max(100).optional(),
|
|
28105
28121
|
/** The PC itself asked for slowing down (its memory or CPU is low). */
|
|
@@ -28120,6 +28136,8 @@ var HeartbeatSchema = external_exports.object({
|
|
|
28120
28136
|
topProcesses: external_exports.array(external_exports.object({ name: Text(64), privateMb: external_exports.number().int().min(0).max(1e7) })).max(5),
|
|
28121
28137
|
/** The disk queue this PC last reported while asking the sandbox to slow down. */
|
|
28122
28138
|
diskQueueReported: external_exports.number().min(0).max(1e5).optional(),
|
|
28139
|
+
/** Build programs the memory gate holds right now (let go one at a time). */
|
|
28140
|
+
held: external_exports.number().int().min(0).max(1024).optional(),
|
|
28123
28141
|
/** "ending": the sandbox is shutting down in order (idle shutdown, sandbox stop, Windows shutting down). */
|
|
28124
28142
|
phase: external_exports.enum(["ready", "working", "ending"])
|
|
28125
28143
|
});
|
|
@@ -28484,7 +28502,10 @@ function warn(message) {
|
|
|
28484
28502
|
// src/guest/toolchains/signature.ts
|
|
28485
28503
|
var SignatureSchema = external_exports.object({ subject: external_exports.string().max(4096), issuer: external_exports.string().max(4096) });
|
|
28486
28504
|
function signatureOf(file2) {
|
|
28487
|
-
|
|
28505
|
+
return parseSignature(scriptOutput("get-signature.ps1", ["-Path", file2]));
|
|
28506
|
+
}
|
|
28507
|
+
function parseSignature(output2) {
|
|
28508
|
+
const text = output2.trim();
|
|
28488
28509
|
if (!text) return null;
|
|
28489
28510
|
try {
|
|
28490
28511
|
const parsed = SignatureSchema.safeParse(JSON.parse(text));
|
|
@@ -29014,7 +29035,7 @@ function parse3(args2) {
|
|
|
29014
29035
|
return { positionals, flags, dir: dir === void 0 ? void 0 : path20.resolve(dir) };
|
|
29015
29036
|
}
|
|
29016
29037
|
function addresses() {
|
|
29017
|
-
return Object.values(
|
|
29038
|
+
return Object.values(os4.networkInterfaces()).flat().filter((a) => Boolean(a && a.family === "IPv4" && !a.internal)).map((a) => a.address);
|
|
29018
29039
|
}
|
|
29019
29040
|
function mariadbClient() {
|
|
29020
29041
|
const root = path20.join(toolsDir, "mariadb");
|