windows-development-sandbox 1.13.2 → 1.15.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/config.example.json +2 -1
- package/dist/app/features/defs.d.ts +1 -1
- package/dist/app/features/projects/projects.def.d.ts +1 -1
- package/dist/app/features/projects/projects.run.d.ts +1 -1
- package/dist/app/features/projects/projects.run.js +10 -2
- package/dist/app/features/sandbox/sandbox.def.js +3 -1
- package/dist/app/features/settings/categories.def.js +1 -0
- package/dist/app/features/storage/storage.run.js +1 -1
- package/dist/bin/agent-sandbox.js +2 -2
- package/dist/bin/{chunk-VENWSGX2.js → chunk-D7CM63BS.js} +2303 -1462
- package/dist/bin/{chunk-K4SU3MHJ.js → chunk-HTQT5SBY.js} +1 -1
- package/dist/bin/{chunk-IL7BXJF2.js → chunk-RQ4BWBYX.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 +1 -1
- package/dist/cli/commands/projects/here.js +2 -0
- package/dist/cli/commands/repair/checks/contained.js +1 -1
- package/dist/cli/services/health-service.js +15 -3
- package/dist/cli/services/projects-service.d.ts +8 -3
- package/dist/cli/services/projects-service.js +21 -4
- package/dist/core/config/defaults.js +1 -0
- package/dist/core/schema/config.d.ts +4 -0
- package/dist/core/schema/projects.d.ts +4 -0
- package/dist/core/schema/projects.js +3 -0
- package/dist/guest/boot/boot.js +8 -2
- package/dist/guest/daemon/daemon.js +3 -0
- package/dist/guest/daemon/live-folders.d.ts +48 -0
- package/dist/guest/daemon/live-folders.js +245 -0
- package/dist/guest/daemon/live.d.ts +4 -0
- package/dist/guest/daemon/live.js +57 -0
- package/dist/guest/daemon/sessions.d.ts +7 -0
- package/dist/guest/daemon/sessions.js +23 -2
- package/dist/guest/entries/daemon.js +5 -2
- package/dist/guest/runtime/csc.d.ts +1 -0
- package/dist/guest/runtime/csc.js +1 -0
- package/dist/guest/runtime/secrets.d.ts +5 -2
- package/dist/guest/runtime/secrets.js +12 -5
- package/dist/guest/sessions/pty-host.d.ts +10 -0
- package/dist/guest/sessions/pty-host.js +48 -3
- package/dist/host/channel/channel.js +1 -1
- package/dist/host/engines/hcs/live-folders.d.ts +117 -0
- package/dist/host/engines/hcs/live-folders.js +347 -0
- package/dist/host/engines/index.d.ts +1 -0
- package/dist/host/engines/index.js +1 -0
- package/dist/host/install/install-record.d.ts +1 -0
- package/dist/host/install/install-record.js +2 -0
- package/dist/host/launch/generate.js +8 -1
- package/dist/host/projects/join.d.ts +4 -0
- package/dist/host/projects/join.js +11 -3
- package/dist/host/projects/mapper.d.ts +34 -5
- package/dist/host/projects/mapper.js +88 -20
- package/dist/host/projects/registry.d.ts +2 -0
- package/dist/host/projects/registry.js +1 -1
- package/dist/host/sandbox/contained-deps.d.ts +2 -1
- package/dist/host/sandbox/contained-deps.js +6 -4
- package/dist/host/secrets/launch-secrets.js +2 -1
- package/dist/host/sharing/lifecycle.js +9 -1
- package/dist/host/storage/contained/contained-storage.js +13 -0
- package/dist/host/storage/contained/disk-port.d.ts +5 -0
- package/dist/host/storage/contained/helper-port.d.ts +72 -0
- package/dist/host/storage/contained/helper-port.js +162 -0
- package/dist/host/storage/contained/index.d.ts +1 -0
- package/dist/host/storage/contained/index.js +1 -0
- package/dist/host/web/bridge.d.ts +5 -0
- package/dist/host/web/bridge.js +11 -1
- package/dist/host/web/server.d.ts +2 -0
- package/dist/host/web/server.js +11 -1
- package/dist/runtime/agent.js +23 -0
- package/dist/runtime/daemon.js +523 -135
- package/dist/runtime/db.js +23 -0
- package/dist/runtime/main.js +221 -15
- package/dist/runtime/netproxy.js +23 -0
- package/dist/runtime/view.js +209 -12
- package/dist/selftest/channel.test.js +72 -1
- package/dist/selftest/contained.test.js +1 -37
- package/dist/selftest/hcs.test.js +5 -2
- package/dist/selftest/index.js +4 -0
- package/dist/selftest/install.test.js +11 -0
- package/dist/selftest/layout.test.js +1 -0
- package/dist/selftest/live-daemon.test.js +51 -1
- package/dist/selftest/live-folders.test.d.ts +2 -0
- package/dist/selftest/live-folders.test.js +588 -0
- package/dist/selftest/live-terminal.test.js +112 -4
- package/dist/selftest/projects.test.js +7 -7
- package/dist/selftest/storage-helper.test.d.ts +2 -0
- package/dist/selftest/storage-helper.test.js +493 -0
- package/dist/selftest/support/engine-golden.js +1 -0
- package/dist/selftest/support/fixtures.d.ts +1 -0
- package/dist/selftest/support/live.js +2 -0
- package/dist/selftest/support/vhdx.d.ts +14 -0
- package/dist/selftest/support/vhdx.js +72 -0
- package/dist/selftest/web.test.js +14 -2
- package/dist/shared/channel/index.d.ts +1 -0
- package/dist/shared/channel/index.js +1 -0
- package/dist/shared/channel/live.d.ts +53 -0
- package/dist/shared/channel/live.js +92 -0
- package/dist/shared/channel/run-dir.d.ts +11 -0
- package/dist/shared/channel/run-dir.js +20 -0
- package/dist/shared/channel/secrets.d.ts +1 -0
- package/dist/shared/channel/secrets.js +5 -0
- package/dist/shared/paths/projects.d.ts +6 -1
- package/dist/shared/paths/projects.js +21 -1
- package/dist/shared/pty/index.d.ts +3 -1
- package/dist/shared/pty/index.js +3 -1
- package/dist/shared/pty/key-gate.d.ts +24 -0
- package/dist/shared/pty/key-gate.js +45 -0
- package/dist/shared/pty/mouse-modes.d.ts +27 -0
- package/dist/shared/pty/mouse-modes.js +155 -0
- package/dist/shared/pty/terminal.d.ts +0 -5
- package/dist/shared/pty/terminal.js +51 -20
- package/dist/sync/watcher.js +10 -1
- package/dist/web/index.html +1 -1
- package/dist/web/{main-NBQ3LF4E.js → main-7DJZ2M27.js} +34 -34
- package/native/csharp/HcsHost/AssemblyInfo.cs +4 -4
- package/native/csharp/HcsHost/FolderAccess.cs +361 -0
- package/native/csharp/HcsHost/Hcs.cs +31 -3
- package/native/csharp/HcsHost/Program.cs +54 -6
- package/native/csharp/HcsHost/Share.cs +64 -11
- package/native/csharp/HcsHost/WsbGuard.cs +130 -0
- package/native/csharp/HcsHost/WsbShare.cs +295 -0
- package/native/csharp/HostTools/AssemblyInfo.cs +3 -3
- package/native/csharp/StorageHelper/AssemblyInfo.cs +15 -0
- package/native/csharp/StorageHelper/Client.cs +297 -0
- package/native/csharp/StorageHelper/Log.cs +177 -0
- package/native/csharp/StorageHelper/MountRecords.cs +160 -0
- package/native/csharp/StorageHelper/Operations.cs +596 -0
- package/native/csharp/StorageHelper/Pins.cs +270 -0
- package/native/csharp/StorageHelper/Privileges.cs +78 -0
- package/native/csharp/StorageHelper/Program.cs +349 -0
- package/native/csharp/StorageHelper/Protocol.cs +107 -0
- package/native/csharp/StorageHelper/RateLimiter.cs +97 -0
- package/native/csharp/StorageHelper/Rules.cs +156 -0
- package/native/csharp/StorageHelper/Server.cs +656 -0
- package/native/csharp/StorageHelper/Settings.cs +297 -0
- package/native/csharp/StorageHelper/StorageService.cs +53 -0
- package/native/csharp/StorageHelper/UserSettings.cs +206 -0
- package/native/csharp/StorageHelper/Vhdx.cs +230 -0
- package/native/csharp/StorageHelper/VirtualDisk.cs +241 -0
- package/native/csharp/StorageHelper/Volumes.cs +379 -0
- package/native/csharp/StorageHelper/Watchdog.cs +128 -0
- package/native/csharp/StorageHelper/Win32.cs +250 -0
- package/native/scripts/contained-common.ps1 +4 -0
- package/native/scripts/hcs-live-share.ps1 +191 -0
- package/native/scripts/set-storage-helper.ps1 +203 -0
- package/package.json +1 -1
- package/sandbox/csharp/BindMount.cs +120 -0
- package/sandbox/csharp/PtyHost.cs +236 -1
- package/schemas/config.schema.json +8 -0
package/config.example.json
CHANGED
|
@@ -172,9 +172,9 @@ export declare const OPERATIONS: readonly [OperationDef<import("zod").ZodObject<
|
|
|
172
172
|
message: import("zod").ZodString;
|
|
173
173
|
}, import("zod/v4/core").$strip>, "projects.all">, OperationDef<import("zod").ZodObject<{
|
|
174
174
|
change: import("zod").ZodDefault<import("zod").ZodEnum<{
|
|
175
|
-
list: "list";
|
|
176
175
|
add: "add";
|
|
177
176
|
remove: "remove";
|
|
177
|
+
list: "list";
|
|
178
178
|
}>>;
|
|
179
179
|
rootFolder: import("zod").ZodOptional<import("zod").ZodString>;
|
|
180
180
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
@@ -73,9 +73,9 @@ export declare const allProjects: import("../../kernel/define.js").OperationDef<
|
|
|
73
73
|
}, z.core.$strip>, "projects.all">;
|
|
74
74
|
export declare const projectRoots: import("../../kernel/define.js").OperationDef<z.ZodObject<{
|
|
75
75
|
change: z.ZodDefault<z.ZodEnum<{
|
|
76
|
-
list: "list";
|
|
77
76
|
add: "add";
|
|
78
77
|
remove: "remove";
|
|
78
|
+
list: "list";
|
|
79
79
|
}>>;
|
|
80
80
|
rootFolder: z.ZodOptional<z.ZodString>;
|
|
81
81
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -46,9 +46,9 @@ export declare const allProjectsRun: import("../../kernel/define.js").Implementa
|
|
|
46
46
|
}, import("zod/v4/core").$strip>, "projects.all">, import("../../../cli/commands/context.js").Context>;
|
|
47
47
|
export declare const projectRootsRun: import("../../kernel/define.js").Implementation<import("../../kernel/define.js").OperationDef<import("zod").ZodObject<{
|
|
48
48
|
change: import("zod").ZodDefault<import("zod").ZodEnum<{
|
|
49
|
-
list: "list";
|
|
50
49
|
add: "add";
|
|
51
50
|
remove: "remove";
|
|
51
|
+
list: "list";
|
|
52
52
|
}>>;
|
|
53
53
|
rootFolder: import("zod").ZodOptional<import("zod").ZodString>;
|
|
54
54
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
@@ -68,14 +68,22 @@ export const removeProjectRun = implement(removeProject, async (ctx, input, io)
|
|
|
68
68
|
const dir = await pickFolder(ctx, io, input.projectFolder);
|
|
69
69
|
const yes = await io.confirm({
|
|
70
70
|
title: 'Forget ' + path.basename(dir) + '?',
|
|
71
|
-
lines: [
|
|
71
|
+
lines: [
|
|
72
|
+
'The project is dropped from your list of projects.',
|
|
73
|
+
'Nothing in ' + dir + ' is touched.',
|
|
74
|
+
...(new ProjectsService(ctx).isLive(dir)
|
|
75
|
+
? [
|
|
76
|
+
'It is a live folder: it is hidden in the running sandbox and its share removed (Windows asks for permission).',
|
|
77
|
+
]
|
|
78
|
+
: []),
|
|
79
|
+
],
|
|
72
80
|
yes: 'Forget',
|
|
73
81
|
danger: true,
|
|
74
82
|
implied: true,
|
|
75
83
|
});
|
|
76
84
|
if (!yes)
|
|
77
85
|
cancelled();
|
|
78
|
-
const { dir: forgotten, removed } = new ProjectsService(ctx).forget(dir);
|
|
86
|
+
const { dir: forgotten, removed } = await new ProjectsService(ctx).forget(dir);
|
|
79
87
|
return {
|
|
80
88
|
message: removed
|
|
81
89
|
? 'Removed ' + forgotten + ' from your projects (nothing in the folder was touched).'
|
|
@@ -6,7 +6,7 @@ const ProjectSchema = z.object({
|
|
|
6
6
|
name: z.string().describe('The project'),
|
|
7
7
|
host: z.string().describe('Its folder on this PC'),
|
|
8
8
|
guest: z.string().describe('Its folder in the sandbox'),
|
|
9
|
-
mechanism: z.string().describe('How it got into the sandbox (launch, root, boot or
|
|
9
|
+
mechanism: z.string().describe('How it got into the sandbox (launch, root, boot, wsb or hcs)'),
|
|
10
10
|
here: z.boolean().describe('The project of the current folder'),
|
|
11
11
|
setup: z.object({ phase: z.string(), message: z.string() }).describe('How far its setup is'),
|
|
12
12
|
databases: z.array(z.object({ database: z.string(), port: z.number(), state: z.string() })),
|
|
@@ -124,6 +124,8 @@ const MECHANISM_TEXT = {
|
|
|
124
124
|
launch: 'started from here',
|
|
125
125
|
root: 'in a project root',
|
|
126
126
|
boot: 'mapped at start',
|
|
127
|
+
wsb: 'wsb share',
|
|
128
|
+
hcs: 'live folder through HCS, alpha',
|
|
127
129
|
};
|
|
128
130
|
function projectItem(p) {
|
|
129
131
|
return {
|
|
@@ -123,6 +123,7 @@ const LABELS = {
|
|
|
123
123
|
'sandbox.pressureResponse': 'Slow builds down when memory runs low',
|
|
124
124
|
'network.dns': 'DNS servers',
|
|
125
125
|
'projects.wsbShare': 'Add folders while the sandbox runs',
|
|
126
|
+
'projects.liveFolders': 'Add folders through HCS (alpha, untested)',
|
|
126
127
|
'projects.all': 'Map all known projects at start',
|
|
127
128
|
'claudeProfile.hostDir': 'Claude folder on this PC',
|
|
128
129
|
'claudeProfile.globalStateFile': 'Claude state file on this PC',
|
|
@@ -30,7 +30,7 @@ function requireNoSandbox() {
|
|
|
30
30
|
}
|
|
31
31
|
function storageFor(ctx) {
|
|
32
32
|
const { config } = ctx.loaded;
|
|
33
|
-
return new ContainedStorage(realContainedDeps(ctx.storageRoot, config.storage.containedMaxGb), config.storage.dataName);
|
|
33
|
+
return new ContainedStorage(realContainedDeps(ctx.storageRoot, config.storage.containedMaxGb, Boolean(ctx.options.config)), config.storage.dataName);
|
|
34
34
|
}
|
|
35
35
|
/** The folder a move or a switch goes to: picked from the known folders, or typed (expanded like the command line). */
|
|
36
36
|
async function chooseFolder(io, service, what, cancelMessage) {
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
run
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-HTQT5SBY.js";
|
|
6
|
+
import "./chunk-D7CM63BS.js";
|
|
7
7
|
|
|
8
8
|
// src/bin/agent-sandbox.ts
|
|
9
9
|
run(process.argv.slice(2));
|