@volter/browser-wali 0.1.4 → 0.1.6
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 +73 -0
- package/dist/browser-wali-command.d.ts +3 -0
- package/dist/browser-wali-command.d.ts.map +1 -1
- package/dist/browser-wali-command.js +2 -1
- package/dist/browser-wali-command.js.map +1 -1
- package/dist/capabilities.d.ts +73 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +86 -2
- package/dist/capabilities.js.map +1 -1
- package/dist/child-processes.d.ts +24 -0
- package/dist/child-processes.d.ts.map +1 -0
- package/dist/child-processes.js +134 -0
- package/dist/child-processes.js.map +1 -0
- package/dist/codec-protocol.d.ts +66 -0
- package/dist/codec-protocol.d.ts.map +1 -0
- package/dist/codec-protocol.js +59 -0
- package/dist/codec-protocol.js.map +1 -0
- package/dist/codec-remote.d.ts +33 -0
- package/dist/codec-remote.d.ts.map +1 -0
- package/dist/codec-remote.js +190 -0
- package/dist/codec-remote.js.map +1 -0
- package/dist/codec-worker.d.ts +2 -0
- package/dist/codec-worker.d.ts.map +1 -0
- package/dist/codec-worker.js +438 -0
- package/dist/codec-worker.js.map +1 -0
- package/dist/coherent-file-locks.d.ts.map +1 -1
- package/dist/coherent-file-locks.js +17 -5
- package/dist/coherent-file-locks.js.map +1 -1
- package/dist/descriptors.d.ts +49 -0
- package/dist/descriptors.d.ts.map +1 -0
- package/dist/descriptors.js +115 -0
- package/dist/descriptors.js.map +1 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +2 -2
- package/dist/events.js.map +1 -1
- package/dist/filesystem-protocol.d.ts +28 -1
- package/dist/filesystem-protocol.d.ts.map +1 -1
- package/dist/filesystem-protocol.js +18 -0
- package/dist/filesystem-protocol.js.map +1 -1
- package/dist/filesystem-remote.d.ts +26 -2
- package/dist/filesystem-remote.d.ts.map +1 -1
- package/dist/filesystem-remote.js +132 -23
- package/dist/filesystem-remote.js.map +1 -1
- package/dist/filesystem-worker.js +274 -34
- package/dist/filesystem-worker.js.map +1 -1
- package/dist/filesystem.d.ts +30 -1
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +180 -50
- package/dist/filesystem.js.map +1 -1
- package/dist/fork-worker.d.ts +2 -0
- package/dist/fork-worker.d.ts.map +1 -0
- package/dist/fork-worker.js +52 -0
- package/dist/fork-worker.js.map +1 -0
- package/dist/host.d.ts +36 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +153 -0
- package/dist/host.js.map +1 -0
- package/dist/loopback-host.d.ts +25 -1
- package/dist/loopback-host.d.ts.map +1 -1
- package/dist/loopback-host.js +447 -13
- package/dist/loopback-host.js.map +1 -1
- package/dist/memory.d.ts +65 -2
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +306 -49
- package/dist/memory.js.map +1 -1
- package/dist/module-layout.d.ts +2 -0
- package/dist/module-layout.d.ts.map +1 -1
- package/dist/module-layout.js +4 -2
- package/dist/module-layout.js.map +1 -1
- package/dist/monotonic-clock.d.ts +12 -0
- package/dist/monotonic-clock.d.ts.map +1 -0
- package/dist/monotonic-clock.js +14 -0
- package/dist/monotonic-clock.js.map +1 -0
- package/dist/network-protocol.d.ts +12 -1
- package/dist/network-protocol.d.ts.map +1 -1
- package/dist/network-protocol.js +6 -0
- package/dist/network-protocol.js.map +1 -1
- package/dist/network-worker.js +149 -20
- package/dist/network-worker.js.map +1 -1
- package/dist/network.d.ts +15 -3
- package/dist/network.d.ts.map +1 -1
- package/dist/network.js +74 -39
- package/dist/network.js.map +1 -1
- package/dist/process-adapter.d.ts +4 -1
- package/dist/process-adapter.d.ts.map +1 -1
- package/dist/process-adapter.js +3 -3
- package/dist/process-adapter.js.map +1 -1
- package/dist/process-bridge.d.ts +43 -0
- package/dist/process-bridge.d.ts.map +1 -1
- package/dist/process-bridge.js +30 -1
- package/dist/process-bridge.js.map +1 -1
- package/dist/program.d.ts +60 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +92 -31
- package/dist/program.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +491 -134
- package/dist/runtime.js.map +1 -1
- package/dist/select.d.ts +16 -0
- package/dist/select.d.ts.map +1 -0
- package/dist/select.js +100 -0
- package/dist/select.js.map +1 -0
- package/dist/shared-pipes.d.ts +17 -6
- package/dist/shared-pipes.d.ts.map +1 -1
- package/dist/shared-pipes.js +94 -70
- package/dist/shared-pipes.js.map +1 -1
- package/dist/signals.d.ts +48 -0
- package/dist/signals.d.ts.map +1 -0
- package/dist/signals.js +232 -0
- package/dist/signals.js.map +1 -0
- package/dist/snapshot-filesystem.d.ts +128 -2
- package/dist/snapshot-filesystem.d.ts.map +1 -1
- package/dist/snapshot-filesystem.js +481 -53
- package/dist/snapshot-filesystem.js.map +1 -1
- package/dist/spawn-policy.d.ts +5 -0
- package/dist/spawn-policy.d.ts.map +1 -0
- package/dist/spawn-policy.js +29 -0
- package/dist/spawn-policy.js.map +1 -0
- package/dist/stdin.d.ts +2 -0
- package/dist/stdin.d.ts.map +1 -1
- package/dist/stdin.js +4 -0
- package/dist/stdin.js.map +1 -1
- package/dist/symlink.d.ts +8 -0
- package/dist/symlink.d.ts.map +1 -1
- package/dist/symlink.js +13 -0
- package/dist/symlink.js.map +1 -1
- package/dist/system.d.ts +152 -1
- package/dist/system.d.ts.map +1 -1
- package/dist/system.js +226 -7
- package/dist/system.js.map +1 -1
- package/dist/thread-coordinator-worker.d.ts +1 -0
- package/dist/thread-coordinator-worker.d.ts.map +1 -1
- package/dist/thread-coordinator-worker.js +1 -0
- package/dist/thread-coordinator-worker.js.map +1 -1
- package/dist/thread-worker.js +241 -122
- package/dist/thread-worker.js.map +1 -1
- package/dist/threads.d.ts +12 -2
- package/dist/threads.d.ts.map +1 -1
- package/dist/threads.js +30 -10
- package/dist/threads.js.map +1 -1
- package/dist/types.d.ts +39 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/websocket-peer.d.ts.map +1 -1
- package/dist/websocket-peer.js +4 -14
- package/dist/websocket-peer.js.map +1 -1
- package/dist/worker-program-protocol.d.ts +70 -3
- package/dist/worker-program-protocol.d.ts.map +1 -1
- package/dist/worker-program-worker.js +115 -23
- package/dist/worker-program-worker.js.map +1 -1
- package/dist/worker-program.d.ts +25 -1
- package/dist/worker-program.d.ts.map +1 -1
- package/dist/worker-program.js +470 -61
- package/dist/worker-program.js.map +1 -1
- package/dist/worker-standby.d.ts +3 -0
- package/dist/worker-standby.d.ts.map +1 -0
- package/dist/worker-standby.js +17 -0
- package/dist/worker-standby.js.map +1 -0
- package/package.json +21 -7
|
@@ -2,15 +2,29 @@ import type { BrowserFileSystemSnapshot } from "@volter/browser-runtime/browser-
|
|
|
2
2
|
import type { BrowserFileLockChannel } from "@volter/browser-runtime/browser-file-locks.js";
|
|
3
3
|
import type { BrowserProcessFilesystemPatch, WaliBrowserSpawnMessage } from "./process-bridge.js";
|
|
4
4
|
export interface WaliWorkerRunRequest {
|
|
5
|
+
descriptorTable?: import("./filesystem-protocol.js").WaliFilesystemChannel;
|
|
5
6
|
type: "run";
|
|
7
|
+
/** The process this program IS, when the lane exec'd it into an existing one. */
|
|
8
|
+
pid?: number;
|
|
9
|
+
parentPid?: number;
|
|
10
|
+
/** The container's process-id counter, shared with every other runtime in it. */
|
|
11
|
+
childPidAllocator?: SharedArrayBuffer;
|
|
6
12
|
id: number;
|
|
7
13
|
url: string;
|
|
8
14
|
integrity?: string;
|
|
15
|
+
/** The module compiled by an earlier worker, with its memory import: a new worker runs it without compiling it again. */
|
|
16
|
+
compiled?: WaliCompiledModule;
|
|
9
17
|
executablePath?: string;
|
|
10
18
|
argv: string[];
|
|
11
19
|
cwd: string;
|
|
12
20
|
env: Record<string, string>;
|
|
13
21
|
threadPoolSize: number;
|
|
22
|
+
/** The WebCodecs bridge, negotiated by the manifest's `media.webcodecs`. */
|
|
23
|
+
codec?: {
|
|
24
|
+
version: 1;
|
|
25
|
+
};
|
|
26
|
+
childFilesystemPolicyVersion?: 1;
|
|
27
|
+
filesystemPolicy?: import("@volter/browser-runtime/browser-process-filesystem-policy.js").BrowserProcessFilesystemPolicy;
|
|
14
28
|
network?: {
|
|
15
29
|
relayUrl?: string;
|
|
16
30
|
allowedHosts: string[];
|
|
@@ -19,13 +33,20 @@ export interface WaliWorkerRunRequest {
|
|
|
19
33
|
};
|
|
20
34
|
loopbackPort?: MessagePort;
|
|
21
35
|
stdin: SharedArrayBuffer;
|
|
36
|
+
terminal: boolean;
|
|
22
37
|
filesystem: BrowserFileSystemSnapshot;
|
|
38
|
+
/** The project's store, which the worker reads directly; `filesystem` is then metadata, with a program's private files as content. */
|
|
39
|
+
store?: {
|
|
40
|
+
projectId: string;
|
|
41
|
+
};
|
|
23
42
|
filesystemUpdatePort?: MessagePort;
|
|
24
43
|
fileLocks: {
|
|
25
44
|
channel: BrowserFileLockChannel;
|
|
26
45
|
owner: string;
|
|
27
46
|
};
|
|
28
47
|
fileCoherence: import("@volter/browser-runtime/browser-file-coherence.js").BrowserFileCoherenceChannel;
|
|
48
|
+
/** The process's signal state: the host raises what `kill` sends into it. */
|
|
49
|
+
signalState: SharedArrayBuffer;
|
|
29
50
|
browserProcessPorts?: MessagePort[];
|
|
30
51
|
threadOutputPorts?: MessagePort[];
|
|
31
52
|
}
|
|
@@ -37,16 +58,45 @@ export type WaliThreadOutputMessage = {
|
|
|
37
58
|
type: "error";
|
|
38
59
|
message: string;
|
|
39
60
|
tid?: number;
|
|
61
|
+
}
|
|
62
|
+
/** The runtime's own notice from a pthread -- see `runtime.ts`'s `unimplementedImport`. */
|
|
63
|
+
| {
|
|
64
|
+
type: "diagnostic";
|
|
65
|
+
message: string;
|
|
66
|
+
tid?: number;
|
|
40
67
|
};
|
|
41
68
|
export type WaliWorkerRequest = WaliWorkerRunRequest;
|
|
42
|
-
|
|
69
|
+
/** A program's module compiled once, and the memory its `env.memory` import declares. */
|
|
70
|
+
export interface WaliCompiledModule {
|
|
71
|
+
module: WebAssembly.Module;
|
|
72
|
+
layout?: import("./module-layout.js").WaliMemoryLayout;
|
|
73
|
+
}
|
|
74
|
+
export type WaliWorkerResponse =
|
|
75
|
+
/** A worker compiled the program's module; the page keeps it for the program's next worker. */
|
|
76
|
+
{
|
|
77
|
+
type: "compiled";
|
|
78
|
+
id: number;
|
|
79
|
+
compiled: WaliCompiledModule;
|
|
80
|
+
} | ({
|
|
81
|
+
type: "fork";
|
|
82
|
+
id: number;
|
|
83
|
+
stdin: SharedArrayBuffer;
|
|
84
|
+
threadPoolSize: number;
|
|
85
|
+
network?: WaliWorkerRunRequest["network"];
|
|
86
|
+
} & import("./process-bridge.js").WaliBrowserForkRequest) | {
|
|
43
87
|
type: "stdout";
|
|
44
88
|
id: number;
|
|
45
|
-
chunk:
|
|
89
|
+
chunk: Uint8Array;
|
|
46
90
|
} | {
|
|
47
91
|
type: "stderr";
|
|
48
92
|
id: number;
|
|
49
93
|
chunk: string;
|
|
94
|
+
}
|
|
95
|
+
/** Not the program's stream: the runtime telling its host something. */
|
|
96
|
+
| {
|
|
97
|
+
type: "diagnostic";
|
|
98
|
+
id: number;
|
|
99
|
+
message: string;
|
|
50
100
|
} | ({
|
|
51
101
|
type: "spawn";
|
|
52
102
|
id: number;
|
|
@@ -59,6 +109,7 @@ export type WaliWorkerResponse = {
|
|
|
59
109
|
type: "result";
|
|
60
110
|
id: number;
|
|
61
111
|
filesystem: BrowserFileSystemSnapshot;
|
|
112
|
+
filesystemFinalized?: boolean;
|
|
62
113
|
result?: {
|
|
63
114
|
stdout: string;
|
|
64
115
|
stderr: string;
|
|
@@ -66,8 +117,24 @@ export type WaliWorkerResponse = {
|
|
|
66
117
|
};
|
|
67
118
|
error?: string;
|
|
68
119
|
};
|
|
69
|
-
export
|
|
120
|
+
export type WaliFilesystemUpdateMessage = {
|
|
70
121
|
type: "filesystem";
|
|
71
122
|
patch: BrowserProcessFilesystemPatch;
|
|
123
|
+
} | {
|
|
124
|
+
type: "imported";
|
|
125
|
+
patch: BrowserProcessFilesystemPatch;
|
|
126
|
+
} | {
|
|
127
|
+
type: "import-error";
|
|
128
|
+
message: string;
|
|
129
|
+
} | {
|
|
130
|
+
type: "finalized";
|
|
131
|
+
} | {
|
|
132
|
+
type: "checkpoint";
|
|
133
|
+
control: SharedArrayBuffer;
|
|
134
|
+
};
|
|
135
|
+
export interface WaliFilesystemImportMessage {
|
|
136
|
+
type: "import";
|
|
137
|
+
patch: BrowserProcessFilesystemPatch;
|
|
138
|
+
base: BrowserFileSystemSnapshot;
|
|
72
139
|
}
|
|
73
140
|
//# sourceMappingURL=worker-program-protocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-program-protocol.d.ts","sourceRoot":"","sources":["../src/worker-program-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,KAAK,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAElG,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAClG,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,KAAK,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,yBAAyB,CAAC;IACtC,oBAAoB,CAAC,EAAE,WAAW,CAAC;IACnC,SAAS,EAAE;QAAE,OAAO,EAAE,sBAAsB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,aAAa,EAAE,OAAO,mDAAmD,EAAE,2BAA2B,CAAC;IACvG,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC;CACnC;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,GAAG,CAAC,EAAE,iBAAiB,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-program-protocol.d.ts","sourceRoot":"","sources":["../src/worker-program-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,97 @@
|
|
|
1
|
+
import { verifyArtifactIntegrity } from "@volter/browser-runtime/browser-artifact-integrity.js";
|
|
2
|
+
import { openPackReader } from "@volter/browser-runtime/browser-pack-store.js";
|
|
1
3
|
import { BrowserWaliRuntime } from "./runtime.js";
|
|
2
|
-
import {
|
|
4
|
+
import { findImportedMemory, memoryForLayout } from "./module-layout.js";
|
|
3
5
|
import { SnapshotWaliFileSystem } from "./snapshot-filesystem.js";
|
|
4
6
|
import { SharedWaliStdinReader } from "./stdin.js";
|
|
5
7
|
import { createProcessFilesystemPatch } from "./process-bridge.js";
|
|
6
8
|
const modules = new Map();
|
|
9
|
+
/**
|
|
10
|
+
* The project's store, opened once for this worker's life and followed
|
|
11
|
+
* through the owner's log before each run, as a thread's reader is
|
|
12
|
+
* (ADR-0019). Opening it was up to 76 ms of every run of a small program on a
|
|
13
|
+
* loaded machine (2026-09-24).
|
|
14
|
+
*/
|
|
15
|
+
const readers = new Map();
|
|
16
|
+
async function projectReader(projectId) {
|
|
17
|
+
const held = readers.get(projectId);
|
|
18
|
+
if (held) {
|
|
19
|
+
const store = await held.catch(() => undefined);
|
|
20
|
+
if (store) {
|
|
21
|
+
try {
|
|
22
|
+
await store.refresh();
|
|
23
|
+
return store;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
store.close();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
readers.delete(projectId);
|
|
30
|
+
}
|
|
31
|
+
const opening = openPackReader({ navigator: globalThis.navigator }, projectId);
|
|
32
|
+
readers.set(projectId, opening);
|
|
33
|
+
const store = await opening.catch(() => undefined);
|
|
34
|
+
if (!store)
|
|
35
|
+
readers.delete(projectId);
|
|
36
|
+
return store;
|
|
37
|
+
}
|
|
7
38
|
self.onmessage = (event) => {
|
|
8
39
|
void run(event.data);
|
|
9
40
|
};
|
|
10
41
|
async function run(request) {
|
|
11
|
-
const
|
|
42
|
+
const received = performance.now();
|
|
43
|
+
let store;
|
|
44
|
+
let filesystem;
|
|
45
|
+
if (request.store) {
|
|
46
|
+
// The tree is read from the project's store, one file as the program
|
|
47
|
+
// opens it; the snapshot the page sent is metadata and private files.
|
|
48
|
+
store = await projectReader(request.store.projectId);
|
|
49
|
+
if (!store) {
|
|
50
|
+
send({ type: "result", id: request.id, filesystem: request.filesystem, error: "The project's store is not there to read." });
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
filesystem = SnapshotWaliFileSystem.fromStore(store, request.filesystem);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
filesystem = SnapshotWaliFileSystem.fromSnapshot(request.filesystem);
|
|
57
|
+
}
|
|
58
|
+
// The store can advance after the page prepares its snapshot. Imported
|
|
59
|
+
// state is this worker's baseline, not a guest mutation to publish back.
|
|
60
|
+
// Capture it before the bootstrap creates any directories of its own.
|
|
61
|
+
const base = filesystem.toSnapshot();
|
|
12
62
|
filesystem.mkdirSync("/tmp", { recursive: true });
|
|
13
|
-
filesystem.mkdirSync("/home/
|
|
63
|
+
filesystem.mkdirSync("/home/user", { recursive: true });
|
|
14
64
|
filesystem.mkdirSync(request.cwd, { recursive: true });
|
|
65
|
+
const initialPatch = createProcessFilesystemPatch(base, filesystem.toSnapshot());
|
|
66
|
+
if (request.filesystemUpdatePort && (initialPatch.files.length > 0 || initialPatch.removed.length > 0)) {
|
|
67
|
+
request.filesystemUpdatePort.postMessage({ type: "filesystem", patch: initialPatch });
|
|
68
|
+
}
|
|
69
|
+
let filesystemFinalized = false;
|
|
70
|
+
const filesystemMs = performance.now() - received;
|
|
15
71
|
try {
|
|
16
|
-
const
|
|
17
|
-
const
|
|
72
|
+
const moduleStarted = performance.now();
|
|
73
|
+
const artifact = await loadModule(request.url, request.integrity, request.compiled, (compiled) => send({ type: "compiled", id: request.id, compiled }));
|
|
74
|
+
const moduleMs = performance.now() - moduleStarted;
|
|
75
|
+
const memoryLayout = artifact.layout;
|
|
76
|
+
const memory = memoryLayout ? memoryForLayout(memoryLayout) : undefined;
|
|
18
77
|
const result = await new BrowserWaliRuntime().run(artifact.module, {
|
|
19
78
|
argv: request.argv,
|
|
79
|
+
...(request.pid !== undefined ? { pid: request.pid } : {}),
|
|
80
|
+
...(request.parentPid !== undefined ? { parentPid: request.parentPid } : {}),
|
|
81
|
+
...(request.childPidAllocator ? { childPidAllocator: request.childPidAllocator } : {}),
|
|
82
|
+
...(memoryLayout ? { memoryLayout } : {}),
|
|
83
|
+
...(request.descriptorTable ? { descriptorTable: request.descriptorTable } : {}),
|
|
20
84
|
...(request.executablePath ? { executablePath: request.executablePath } : {}),
|
|
21
85
|
cwd: request.cwd,
|
|
22
86
|
env: request.env,
|
|
23
87
|
stdin: new SharedWaliStdinReader(request.stdin),
|
|
88
|
+
terminal: request.terminal,
|
|
24
89
|
filesystem,
|
|
90
|
+
...(request.filesystemPolicy ? { filesystemPolicy: request.filesystemPolicy } : {}),
|
|
91
|
+
...(request.store ? { store: request.store } : {}),
|
|
25
92
|
...(memory ? { memory } : {}),
|
|
26
93
|
threadPoolSize: request.threadPoolSize,
|
|
94
|
+
...(request.codec ? { codec: request.codec } : {}),
|
|
27
95
|
...(request.network ? { network: {
|
|
28
96
|
...request.network,
|
|
29
97
|
...(request.loopbackPort ? { loopbackPort: request.loopbackPort } : {}),
|
|
@@ -33,23 +101,44 @@ async function run(request) {
|
|
|
33
101
|
...(request.filesystemUpdatePort ? { filesystemUpdatePort: request.filesystemUpdatePort } : {}),
|
|
34
102
|
...(request.fileLocks ? { fileLocks: request.fileLocks } : {}),
|
|
35
103
|
fileCoherence: request.fileCoherence,
|
|
104
|
+
signalState: request.signalState,
|
|
36
105
|
browserProcess: {
|
|
106
|
+
// The loopback attachment is this process's one port and does not
|
|
107
|
+
// cross into a fork; a program whose only network is loopback (git,
|
|
108
|
+
// whose HTTP is its remote helper) forks with no network rather than
|
|
109
|
+
// with a network naming nothing, which the child's runtime refuses
|
|
110
|
+
// before it runs (every `fork` then ended in a silent 127).
|
|
111
|
+
fork: (process) => send({ type: "fork", id: request.id, ...process, stdin: request.stdin, threadPoolSize: request.threadPoolSize,
|
|
112
|
+
...(request.network && request.network.allowedHosts.length > 0 ? { network: request.network } : {}) }),
|
|
113
|
+
...(request.childFilesystemPolicyVersion === 1 ? { filesystemPolicyVersion: 1 } : {}),
|
|
37
114
|
spawn: (process) => send({
|
|
38
115
|
type: "spawn",
|
|
39
116
|
id: request.id,
|
|
40
117
|
...process,
|
|
41
|
-
filesystemPatch: createProcessFilesystemPatch(
|
|
118
|
+
filesystemPatch: createProcessFilesystemPatch(base, filesystem.toSnapshot()),
|
|
42
119
|
}),
|
|
43
120
|
kill: (pid, signal) => send({ type: "kill", id: request.id, pid, signal }),
|
|
44
121
|
restore: (snapshot) => filesystem.replaceSnapshot(snapshot),
|
|
45
122
|
},
|
|
46
|
-
onStdout: (chunk) => send({ type: "stdout", id: request.id, chunk
|
|
123
|
+
onStdout: (chunk) => send({ type: "stdout", id: request.id, chunk }),
|
|
47
124
|
onStderr: (chunk) => send({ type: "stderr", id: request.id, chunk: new TextDecoder().decode(chunk) }),
|
|
125
|
+
onDiagnostic: (message) => send({ type: "diagnostic", id: request.id, message }),
|
|
126
|
+
onFilesystemFinalized: () => { filesystemFinalized = true; },
|
|
48
127
|
});
|
|
128
|
+
const snapshotStarted = performance.now();
|
|
129
|
+
const finalSnapshot = filesystem.toSnapshot();
|
|
130
|
+
const totalMs = performance.now() - received;
|
|
131
|
+
// the runtime prints its own phases for a long run; these are the worker's around it
|
|
132
|
+
if (totalMs > 2000)
|
|
133
|
+
console.log("[wali-profile]", JSON.stringify({ argv: request.argv.slice(0, 3), worker: {
|
|
134
|
+
filesystemMs: Math.round(filesystemMs), moduleMs: Math.round(moduleMs),
|
|
135
|
+
snapshotMs: Math.round(performance.now() - snapshotStarted), totalMs: Math.round(totalMs),
|
|
136
|
+
} }));
|
|
49
137
|
send({
|
|
50
138
|
type: "result",
|
|
51
139
|
id: request.id,
|
|
52
|
-
filesystem:
|
|
140
|
+
filesystem: finalSnapshot,
|
|
141
|
+
filesystemFinalized,
|
|
53
142
|
result: { stdout: result.stdout, stderr: result.stderr, exitCode: result.exitCode },
|
|
54
143
|
});
|
|
55
144
|
}
|
|
@@ -58,6 +147,7 @@ async function run(request) {
|
|
|
58
147
|
type: "result",
|
|
59
148
|
id: request.id,
|
|
60
149
|
filesystem: filesystem.toSnapshot(),
|
|
150
|
+
filesystemFinalized,
|
|
61
151
|
error: formatWorkerError(error),
|
|
62
152
|
});
|
|
63
153
|
}
|
|
@@ -71,39 +161,41 @@ function formatWorkerError(error) {
|
|
|
71
161
|
const retained = Math.floor((MAX_ERROR_LENGTH - 96) / 2);
|
|
72
162
|
return `${message.slice(0, retained)}\n… ${message.length - retained * 2} error characters truncated …\n${message.slice(-retained)}\nWALI error summary:\n${summary}`;
|
|
73
163
|
}
|
|
74
|
-
|
|
164
|
+
/**
|
|
165
|
+
* The program's module: the one the page handed over, compiled by an earlier
|
|
166
|
+
* worker, or fetched, checked and compiled here and reported to the page,
|
|
167
|
+
* which hands it to the program's next worker. Compiling a 6 MB module was 82
|
|
168
|
+
* to 278 ms of a run given a new worker (2026-09-24).
|
|
169
|
+
*/
|
|
170
|
+
function loadModule(url, integrity, compiled, report) {
|
|
75
171
|
const protocol = new URL(url, globalThis.location.href).protocol;
|
|
76
172
|
if (protocol !== "blob:" && !integrity) {
|
|
77
173
|
return Promise.reject(new Error("Remote WALI programs require pinned SHA-256 integrity metadata."));
|
|
78
174
|
}
|
|
79
175
|
const key = `${url}\n${integrity ?? "local-unverified"}`;
|
|
80
176
|
let pending = modules.get(key);
|
|
177
|
+
if (!pending && compiled) {
|
|
178
|
+
pending = Promise.resolve(compiled);
|
|
179
|
+
modules.set(key, pending);
|
|
180
|
+
}
|
|
81
181
|
if (!pending) {
|
|
82
182
|
pending = fetch(url).then(async (response) => {
|
|
83
183
|
if (!response.ok)
|
|
84
184
|
throw new Error(`Unable to load WALI program: HTTP ${response.status}.`);
|
|
85
185
|
const bytes = await response.arrayBuffer();
|
|
86
186
|
if (integrity)
|
|
87
|
-
await
|
|
88
|
-
|
|
187
|
+
await verifyArtifactIntegrity(bytes, integrity);
|
|
188
|
+
const layout = findImportedMemory(new Uint8Array(bytes));
|
|
189
|
+
const artifact = { module: await WebAssembly.compile(bytes), ...(layout ? { layout } : {}) };
|
|
190
|
+
report(artifact);
|
|
191
|
+
return artifact;
|
|
89
192
|
});
|
|
90
193
|
modules.set(key, pending);
|
|
91
194
|
pending.catch(() => modules.delete(key));
|
|
92
195
|
}
|
|
93
196
|
return pending;
|
|
94
197
|
}
|
|
95
|
-
async function verifyIntegrity(bytes, expected) {
|
|
96
|
-
if (!/^sha256-[A-Za-z0-9+/]{43}=$/u.test(expected))
|
|
97
|
-
throw new Error("Invalid WALI artifact integrity metadata.");
|
|
98
|
-
const digest = new Uint8Array(await crypto.subtle.digest("SHA-256", bytes));
|
|
99
|
-
let binary = "";
|
|
100
|
-
for (const byte of digest)
|
|
101
|
-
binary += String.fromCharCode(byte);
|
|
102
|
-
const actual = `sha256-${btoa(binary)}`;
|
|
103
|
-
if (actual !== expected)
|
|
104
|
-
throw new Error(`WALI artifact integrity mismatch: expected ${expected}, received ${actual}.`);
|
|
105
|
-
}
|
|
106
198
|
function send(message) {
|
|
107
|
-
postMessage(message);
|
|
199
|
+
postMessage(message, (message.type === "spawn" || message.type === "fork") && message.descriptorTable ? [message.descriptorTable.port, ...(message.descriptorTable.releasePort ? [message.descriptorTable.releasePort] : [])] : []);
|
|
108
200
|
}
|
|
109
201
|
//# sourceMappingURL=worker-program-worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-program-worker.js","sourceRoot":"","sources":["../src/worker-program-worker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker-program-worker.js","sourceRoot":"","sources":["../src/worker-program-worker.ts"],"names":[],"mappings":"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"}
|
package/dist/worker-program.d.ts
CHANGED
|
@@ -11,6 +11,10 @@ export interface BrowserWaliWorkerProgramOptions {
|
|
|
11
11
|
cwd?: string;
|
|
12
12
|
env?: Readonly<Record<string, string>>;
|
|
13
13
|
threadPoolSize?: number;
|
|
14
|
+
/** Set when the program's manifest lists `media.webcodecs`. */
|
|
15
|
+
codec?: {
|
|
16
|
+
version: 1;
|
|
17
|
+
};
|
|
14
18
|
network: {
|
|
15
19
|
relayUrl?: string;
|
|
16
20
|
allowedHosts: readonly string[];
|
|
@@ -23,6 +27,13 @@ export interface BrowserWaliWorkerProgramOptions {
|
|
|
23
27
|
spawn?: BrowserCommandBackend;
|
|
24
28
|
/** Durability barrier applied after the process snapshot is restored. */
|
|
25
29
|
onFilesystemCommit?(filesystem: BrowserFileSystem, patch?: import("./process-bridge.js").BrowserProcessFilesystemPatch): void | Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Trees whose files the process's image leaves out. A program names the
|
|
32
|
+
* trees it never reads (the other packs' installs), so its snapshot carries
|
|
33
|
+
* its own resources and the shared bin and not a page's every pack; the
|
|
34
|
+
* directories of those trees stay, so a cwd inside one still resolves.
|
|
35
|
+
*/
|
|
36
|
+
excludedImagePaths?(): readonly string[];
|
|
26
37
|
/** Adds process-private files without materializing them in the shared host filesystem. */
|
|
27
38
|
prepareFilesystem?(snapshot: BrowserFileSystemSnapshot): Promise<BrowserFileSystemSnapshot>;
|
|
28
39
|
/** Persists and removes process-private files before a completed snapshot reaches the host. */
|
|
@@ -32,15 +43,19 @@ export interface BrowserWaliWorkerProgramOptions {
|
|
|
32
43
|
/** Private overlay consulted by lock-bound file coherence instead of the shared host filesystem. */
|
|
33
44
|
coherenceFilesystem?: BrowserProcessFileSystem;
|
|
34
45
|
}
|
|
35
|
-
/** Runs one unchanged WALI executable off the UI thread while retaining its compiled module. */
|
|
36
46
|
export declare class BrowserWaliWorkerProgram {
|
|
37
47
|
private readonly filesystem;
|
|
38
48
|
private readonly program;
|
|
49
|
+
readonly capabilities: Readonly<{
|
|
50
|
+
filesystemPolicy: true;
|
|
51
|
+
}>;
|
|
52
|
+
/** Started by the first run, so a program the page offers and never runs costs no worker. */
|
|
39
53
|
private worker;
|
|
40
54
|
private pending;
|
|
41
55
|
private stdin;
|
|
42
56
|
private terminalSize;
|
|
43
57
|
private nextId;
|
|
58
|
+
private readonly forkWorkers;
|
|
44
59
|
private readonly childControllers;
|
|
45
60
|
private openUrlHandler;
|
|
46
61
|
private urlScanTail;
|
|
@@ -48,7 +63,9 @@ export declare class BrowserWaliWorkerProgram {
|
|
|
48
63
|
private processPorts;
|
|
49
64
|
private threadOutputPorts;
|
|
50
65
|
private filesystemUpdatePort;
|
|
66
|
+
private readonly traceId;
|
|
51
67
|
private preparing;
|
|
68
|
+
private applyingFilesystem;
|
|
52
69
|
constructor(filesystem: BrowserFileSystem, program: BrowserWaliWorkerProgramOptions);
|
|
53
70
|
run(argv: readonly string[], options?: BrowserProcessRunOptions): Promise<BrowserProcessResult>;
|
|
54
71
|
private forwardStdin;
|
|
@@ -60,12 +77,19 @@ export declare class BrowserWaliWorkerProgram {
|
|
|
60
77
|
terminate(): void;
|
|
61
78
|
private createWorker;
|
|
62
79
|
private handleMessage;
|
|
80
|
+
private forkChild;
|
|
63
81
|
private spawnChild;
|
|
64
82
|
private applyLiveFilesystemPatch;
|
|
83
|
+
private scheduleFilesystemImport;
|
|
65
84
|
private finishPending;
|
|
66
85
|
private emitStdout;
|
|
67
86
|
private emitStderr;
|
|
68
87
|
private scanOpenUrls;
|
|
69
88
|
private resetWorker;
|
|
70
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* An abort that is a signal: the reason carries its number as `signal`, which
|
|
92
|
+
* the shell's `kill` and a process's own kill of a child set.
|
|
93
|
+
*/
|
|
94
|
+
export declare function signalAbortReason(signal: number, message: string): DOMException;
|
|
71
95
|
//# sourceMappingURL=worker-program.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-program.d.ts","sourceRoot":"","sources":["../src/worker-program.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker-program.d.ts","sourceRoot":"","sources":["../src/worker-program.ts"],"names":[],"mappings":"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"}
|