@ai-ecoverse/slicc-kernel 1.102.5 → 1.103.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 +10 -2
- package/dist/kernel-worker.js +18 -3
- package/dist/kernel-worker.js.map +2 -2
- package/dist/node-process-worker.js +1 -1
- package/dist/node.js +18 -3
- package/dist/node.js.map +2 -2
- package/dist/process-worker.js +1 -1
- package/dist/types/body-idle.d.ts +3 -0
- package/dist/types/bytes.d.ts +1 -0
- package/dist/types/cdp/facade.d.ts +27 -0
- package/dist/types/cdp/hosts.d.ts +14 -0
- package/dist/types/cdp/port.d.ts +24 -0
- package/dist/types/cdp/types.d.ts +12 -0
- package/dist/types/cdp/websocket.d.ts +61 -0
- package/dist/types/client/attach.d.ts +132 -0
- package/dist/types/client/dial-stream.d.ts +23 -0
- package/dist/types/client/loopback-fetch.d.ts +5 -0
- package/dist/types/client/protocol.d.ts +153 -0
- package/dist/types/client/serve-client.d.ts +18 -0
- package/dist/types/clipboard-relay.d.ts +25 -0
- package/dist/types/commands.d.ts +38 -0
- package/dist/types/cron/clock.d.ts +13 -0
- package/dist/types/driver.d.ts +3 -0
- package/dist/types/facade/hosts.d.ts +12 -0
- package/dist/types/facade/port.d.ts +16 -0
- package/dist/types/facade/types.d.ts +23 -0
- package/dist/types/fs/access.d.ts +29 -0
- package/dist/types/fs/attest.d.ts +41 -0
- package/dist/types/fs/changes.d.ts +19 -0
- package/dist/types/fs/commands.d.ts +4 -0
- package/dist/types/fs/dac.d.ts +64 -0
- package/dist/types/fs/dev-removal.d.ts +9 -0
- package/dist/types/fs/fresh-modules.d.ts +9 -0
- package/dist/types/fs/integrity.d.ts +53 -0
- package/dist/types/fs/meta.d.ts +85 -0
- package/dist/types/fs/opfs.d.ts +141 -0
- package/dist/types/fs/owners.d.ts +17 -0
- package/dist/types/fs/pages.d.ts +41 -0
- package/dist/types/fs/path-map.d.ts +16 -0
- package/dist/types/fs/physical-path.d.ts +14 -0
- package/dist/types/fs/protect.d.ts +27 -0
- package/dist/types/fs/ranged.d.ts +73 -0
- package/dist/types/fs/remote.d.ts +45 -0
- package/dist/types/fs/types.d.ts +115 -0
- package/dist/types/fs/unlinked.d.ts +75 -0
- package/dist/types/fs/view.d.ts +1 -0
- package/dist/types/fs/walk.d.ts +12 -0
- package/dist/types/fs/watch.d.ts +23 -0
- package/dist/types/index.d.ts +159 -0
- package/dist/types/integrity-relay.d.ts +18 -0
- package/dist/types/kernel/children.d.ts +90 -0
- package/dist/types/kernel/clipboard.d.ts +49 -0
- package/dist/types/kernel/cpu-clock.d.ts +56 -0
- package/dist/types/kernel/cred.d.ts +17 -0
- package/dist/types/kernel/dgram.d.ts +56 -0
- package/dist/types/kernel/dial.d.ts +20 -0
- package/dist/types/kernel/epoll.d.ts +67 -0
- package/dist/types/kernel/eventfd.d.ts +19 -0
- package/dist/types/kernel/exec-ticket.d.ts +25 -0
- package/dist/types/kernel/fd-table.d.ts +107 -0
- package/dist/types/kernel/host-ops.d.ts +98 -0
- package/dist/types/kernel/host.d.ts +116 -0
- package/dist/types/kernel/jobs.d.ts +50 -0
- package/dist/types/kernel/locks.d.ts +40 -0
- package/dist/types/kernel/net/datagram-wire.d.ts +8 -0
- package/dist/types/kernel/net/http-syscalls.d.ts +58 -0
- package/dist/types/kernel/net/http1.d.ts +48 -0
- package/dist/types/kernel/net/loopback-names.d.ts +14 -0
- package/dist/types/kernel/net/loopback-transport.d.ts +13 -0
- package/dist/types/kernel/net/network.d.ts +29 -0
- package/dist/types/kernel/net/proxy-service.d.ts +70 -0
- package/dist/types/kernel/net/realm-ca.d.ts +28 -0
- package/dist/types/kernel/net/redirect-hops.d.ts +5 -0
- package/dist/types/kernel/net/remote-transport.d.ts +98 -0
- package/dist/types/kernel/net/resolver.d.ts +29 -0
- package/dist/types/kernel/net/routes.d.ts +15 -0
- package/dist/types/kernel/net/tls-engine.d.ts +46 -0
- package/dist/types/kernel/net/tls-tunnel.d.ts +35 -0
- package/dist/types/kernel/net/transport.d.ts +64 -0
- package/dist/types/kernel/net/uplink-socket.d.ts +11 -0
- package/dist/types/kernel/net/uplink.d.ts +163 -0
- package/dist/types/kernel/net/ws-queue.d.ts +21 -0
- package/dist/types/kernel/net/ws-syscalls.d.ts +45 -0
- package/dist/types/kernel/net/x509.d.ts +34 -0
- package/dist/types/kernel/pipe.d.ts +29 -0
- package/dist/types/kernel/proc-info.d.ts +44 -0
- package/dist/types/kernel/process.d.ts +525 -0
- package/dist/types/kernel/protocol.d.ts +126 -0
- package/dist/types/kernel/pty.d.ts +84 -0
- package/dist/types/kernel/run-child.d.ts +39 -0
- package/dist/types/kernel/scrub-file.d.ts +13 -0
- package/dist/types/kernel/sealed.d.ts +74 -0
- package/dist/types/kernel/select.d.ts +7 -0
- package/dist/types/kernel/sem.d.ts +72 -0
- package/dist/types/kernel/settling.d.ts +16 -0
- package/dist/types/kernel/signals.d.ts +44 -0
- package/dist/types/kernel/socket-syscalls.d.ts +74 -0
- package/dist/types/kernel/socket.d.ts +125 -0
- package/dist/types/kernel/timer.d.ts +4 -0
- package/dist/types/kernel/tty.d.ts +53 -0
- package/dist/types/kernel/vfs-file.d.ts +149 -0
- package/dist/types/launcher.d.ts +359 -0
- package/dist/types/local-proxy-transport.d.ts +39 -0
- package/dist/types/meta.d.ts +11 -0
- package/dist/types/mount/chunked.d.ts +9 -0
- package/dist/types/mount/connection.d.ts +35 -0
- package/dist/types/mount/driver.d.ts +50 -0
- package/dist/types/mount/fsa.d.ts +26 -0
- package/dist/types/mount/fstab.d.ts +17 -0
- package/dist/types/mount/host.d.ts +24 -0
- package/dist/types/mount/hostfs.d.ts +129 -0
- package/dist/types/mount/media.d.ts +8 -0
- package/dist/types/mount/medium.d.ts +12 -0
- package/dist/types/mount/mount-fs.d.ts +136 -0
- package/dist/types/mount/protocol.d.ts +140 -0
- package/dist/types/mount/syscall.d.ts +27 -0
- package/dist/types/mount/tmpfs.d.ts +2 -0
- package/dist/types/node/loopback.d.ts +11 -0
- package/dist/types/node/memory-root.d.ts +2 -0
- package/dist/types/node/ws-diagnose.d.ts +4 -0
- package/dist/types/node.d.ts +85 -0
- package/dist/types/process/fd-metadata.d.ts +4 -0
- package/dist/types/process/js/async-sab.d.ts +15 -0
- package/dist/types/process/js/js-children.d.ts +63 -0
- package/dist/types/process/js/js-context.d.ts +133 -0
- package/dist/types/process/js/js-dev.d.ts +50 -0
- package/dist/types/process/js/js-exit.d.ts +15 -0
- package/dist/types/process/js/js-fetch.d.ts +2 -0
- package/dist/types/process/js/js-io.d.ts +81 -0
- package/dist/types/process/js/js-kernel.d.ts +61 -0
- package/dist/types/process/js/js-net.d.ts +42 -0
- package/dist/types/process/js/js-proc.d.ts +31 -0
- package/dist/types/process/js/js-run.d.ts +35 -0
- package/dist/types/process/js/js-sync.d.ts +86 -0
- package/dist/types/process/js/js-tty.d.ts +30 -0
- package/dist/types/process/js/js-websocket.d.ts +21 -0
- package/dist/types/process/kernel-streams.d.ts +196 -0
- package/dist/types/process/process-fds.d.ts +95 -0
- package/dist/types/process/process-locks.d.ts +29 -0
- package/dist/types/process/process-pty.d.ts +20 -0
- package/dist/types/process/process-signals.d.ts +33 -0
- package/dist/types/process/procfs.d.ts +41 -0
- package/dist/types/process/wasi/dylink.d.ts +9 -0
- package/dist/types/process/wasi/slicc-lock.d.ts +26 -0
- package/dist/types/process/wasi/slicc-sem.d.ts +3 -0
- package/dist/types/process/wasi/wasi-abi.d.ts +156 -0
- package/dist/types/process/wasi/wasi-fds.d.ts +130 -0
- package/dist/types/process/wasi/wasi-files.d.ts +99 -0
- package/dist/types/process/wasi/wasi-host.d.ts +104 -0
- package/dist/types/process/wasi/wasi-memory.d.ts +16 -0
- package/dist/types/process/wasi/wasi-module.d.ts +13 -0
- package/dist/types/process/wasi/wasi-poll.d.ts +13 -0
- package/dist/types/process/wasi/wasi-procfs.d.ts +36 -0
- package/dist/types/process/wasi/wasi-sigmask.d.ts +19 -0
- package/dist/types/process/wasi/wasi-signals.d.ts +43 -0
- package/dist/types/process/wasi/wasi-termios.d.ts +10 -0
- package/dist/types/process/wasi/wasix-fork.d.ts +63 -0
- package/dist/types/process/wasi/wasix-linker.d.ts +108 -0
- package/dist/types/process/wasi/wasix-sockets.d.ts +9 -0
- package/dist/types/process/wasi/wasix-trampoline.d.ts +18 -0
- package/dist/types/process/wasi/wasm-functypes.d.ts +25 -0
- package/dist/types/process/wasi-errno.d.ts +1 -0
- package/dist/types/realm/emscripten-vfs-hook.d.ts +19 -0
- package/dist/types/realm/live-vfs-fs.d.ts +186 -0
- package/dist/types/realm/sync-fs-dispatch.d.ts +26 -0
- package/dist/types/realm/sync-fs-token-registry.d.ts +36 -0
- package/dist/types/realm/sync-fs-wire.d.ts +118 -0
- package/dist/types/realm/sync-sab-bridge.d.ts +21 -0
- package/dist/types/realm/sync-sab-responder.d.ts +16 -0
- package/dist/types/realm/sync-sab-wire.d.ts +64 -0
- package/dist/types/sealed-relay.d.ts +26 -0
- package/dist/types/serve.d.ts +190 -0
- package/dist/types/sudo-command.d.ts +4 -0
- package/dist/types/sudo.d.ts +105 -0
- package/dist/types/testing.d.ts +46 -0
- package/dist/types/transport.d.ts +25 -0
- package/dist/types/users.d.ts +86 -0
- package/dist/types/version.d.ts +3 -0
- package/dist/types/websocket-transport.d.ts +12 -0
- package/package.json +22 -6
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export type Signer = (tbs: Uint8Array) => Promise<Uint8Array>;
|
|
2
|
+
export declare function tlv(tag: number, ...contents: readonly Uint8Array[]): Uint8Array;
|
|
3
|
+
export declare function integer(magnitude: Uint8Array): Uint8Array;
|
|
4
|
+
export declare function oid(dotted: string): Uint8Array;
|
|
5
|
+
export interface DistinguishedName {
|
|
6
|
+
commonName: string;
|
|
7
|
+
organization?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function children(der: Uint8Array): Uint8Array[];
|
|
10
|
+
export declare function contents(element: Uint8Array): Uint8Array;
|
|
11
|
+
export declare function publicKeyBits(spki: Uint8Array): Uint8Array;
|
|
12
|
+
export declare function keyId(spki: Uint8Array): Promise<Uint8Array>;
|
|
13
|
+
export declare function ecdsaDer(raw: Uint8Array): Uint8Array;
|
|
14
|
+
export declare function randomSerial(): Uint8Array;
|
|
15
|
+
export declare function ipv4(host: string): Uint8Array | undefined;
|
|
16
|
+
export declare function ipv6(host: string): Uint8Array | undefined;
|
|
17
|
+
export interface CertificateRequest {
|
|
18
|
+
serial: Uint8Array;
|
|
19
|
+
issuer: DistinguishedName;
|
|
20
|
+
subject: DistinguishedName;
|
|
21
|
+
notBefore: Date;
|
|
22
|
+
notAfter: Date;
|
|
23
|
+
spki: Uint8Array;
|
|
24
|
+
issuerSpki: Uint8Array;
|
|
25
|
+
kind: {
|
|
26
|
+
ca: true;
|
|
27
|
+
} | {
|
|
28
|
+
ca: false;
|
|
29
|
+
host: string;
|
|
30
|
+
};
|
|
31
|
+
sign: Signer;
|
|
32
|
+
}
|
|
33
|
+
export declare function certificate(req: CertificateRequest): Promise<Uint8Array>;
|
|
34
|
+
export declare function pem(der: Uint8Array): string;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare const PIPE_CAPACITY: number;
|
|
2
|
+
export declare class PipeError extends Error {
|
|
3
|
+
readonly code: 'EPIPE' | 'EINTR';
|
|
4
|
+
constructor(code: 'EPIPE' | 'EINTR');
|
|
5
|
+
}
|
|
6
|
+
export declare class KernelPipe {
|
|
7
|
+
private chunks;
|
|
8
|
+
private size;
|
|
9
|
+
private readers;
|
|
10
|
+
private writers;
|
|
11
|
+
private waiters;
|
|
12
|
+
readonly capacity: number;
|
|
13
|
+
constructor(capacity?: number);
|
|
14
|
+
get buffered(): number;
|
|
15
|
+
get readReady(): boolean;
|
|
16
|
+
get writeReady(): boolean;
|
|
17
|
+
get writersGone(): boolean;
|
|
18
|
+
get readersGone(): boolean;
|
|
19
|
+
openRead(): void;
|
|
20
|
+
openWrite(): void;
|
|
21
|
+
closeRead(): void;
|
|
22
|
+
closeWrite(): void;
|
|
23
|
+
read(max: number, signal?: AbortSignal): Promise<Uint8Array>;
|
|
24
|
+
peek(max: number, signal?: AbortSignal): Promise<Uint8Array>;
|
|
25
|
+
write(bytes: Uint8Array, signal?: AbortSignal): Promise<number>;
|
|
26
|
+
private take;
|
|
27
|
+
changed(signal?: AbortSignal): Promise<void>;
|
|
28
|
+
private wake;
|
|
29
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Cred } from './cred.js';
|
|
2
|
+
export interface ProcessInfo {
|
|
3
|
+
pid: number;
|
|
4
|
+
tid: number;
|
|
5
|
+
ppid: number;
|
|
6
|
+
pgid: number;
|
|
7
|
+
sid: number;
|
|
8
|
+
argv: string[];
|
|
9
|
+
tty: string | null;
|
|
10
|
+
started: number;
|
|
11
|
+
state: 'S' | 'T' | 'Z';
|
|
12
|
+
threads?: Array<{
|
|
13
|
+
tid: number;
|
|
14
|
+
state: 'R' | 'S';
|
|
15
|
+
}>;
|
|
16
|
+
memory: number;
|
|
17
|
+
utime?: number;
|
|
18
|
+
stime?: number;
|
|
19
|
+
cutime?: number;
|
|
20
|
+
cstime?: number;
|
|
21
|
+
umask?: number;
|
|
22
|
+
cred?: Cred;
|
|
23
|
+
sigIgn?: number;
|
|
24
|
+
sigCgt?: number;
|
|
25
|
+
sigBlk?: number;
|
|
26
|
+
tag?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface MountLine {
|
|
29
|
+
type: string;
|
|
30
|
+
source: string;
|
|
31
|
+
target: string;
|
|
32
|
+
options: Record<string, string>;
|
|
33
|
+
state: 'ok' | 'failed' | 'nomedium' | 'pending';
|
|
34
|
+
}
|
|
35
|
+
export interface ProcessListing {
|
|
36
|
+
boot: number;
|
|
37
|
+
processes: ProcessInfo[];
|
|
38
|
+
load?: readonly [number, number, number];
|
|
39
|
+
cpu?: {
|
|
40
|
+
utime: number;
|
|
41
|
+
stime: number;
|
|
42
|
+
idle: number;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
import { type Created, type Dac } from '../fs/dac.js';
|
|
2
|
+
import type { KernelFs } from '../fs/types.js';
|
|
3
|
+
import type { MountCall } from '../mount/syscall.js';
|
|
4
|
+
import type { LinkRecord } from '../process/wasi/wasix-linker.js';
|
|
5
|
+
import type { SourceCheck } from '../realm/sync-fs-token-registry.js';
|
|
6
|
+
import type { SyncFsResult } from '../realm/sync-fs-wire.js';
|
|
7
|
+
import type { SudoCall, SudoResult } from '../sudo.js';
|
|
8
|
+
import { type ChildForker, type ChildSpawner, type ChildStdio, type InheritedSlot } from './children.js';
|
|
9
|
+
import type { ClipboardBroker } from './clipboard.js';
|
|
10
|
+
import { type Cred, type CredChange } from './cred.js';
|
|
11
|
+
import { type EpollSyscall } from './epoll.js';
|
|
12
|
+
import { type DeviceAccess, type FdTable, type HeldMeta, type KernelFdKind, type OpenFile } from './fd-table.js';
|
|
13
|
+
import { type HostSyscall } from './host-ops.js';
|
|
14
|
+
import type { JobTable } from './jobs.js';
|
|
15
|
+
import type { LockTable } from './locks.js';
|
|
16
|
+
import { type HttpHandles, type HttpSyscall } from './net/http-syscalls.js';
|
|
17
|
+
import { Resolver } from './net/resolver.js';
|
|
18
|
+
import type { MountLine, ProcessListing } from './proc-info.js';
|
|
19
|
+
import type { DlState, ForkState } from './protocol.js';
|
|
20
|
+
import { type PtySyscall, type PtyTable } from './pty.js';
|
|
21
|
+
import { type RunRequest } from './run-child.js';
|
|
22
|
+
import type { SealedBroker, SealedCaller } from './sealed.js';
|
|
23
|
+
import { type SemSyscall, type SemTable } from './sem.js';
|
|
24
|
+
import { type DefaultAction } from './signals.js';
|
|
25
|
+
import { LoopbackNet } from './socket.js';
|
|
26
|
+
import { type SocketSyscall } from './socket-syscalls.js';
|
|
27
|
+
import type { Termios } from './tty.js';
|
|
28
|
+
import { type VersionPin, type VfsFileFs, VfsNodes } from './vfs-file.js';
|
|
29
|
+
export type WasmSyscall = {
|
|
30
|
+
op: 'fd-read';
|
|
31
|
+
fd: number;
|
|
32
|
+
max: number;
|
|
33
|
+
nonblock?: boolean;
|
|
34
|
+
peek?: boolean;
|
|
35
|
+
} | {
|
|
36
|
+
op: 'fd-write';
|
|
37
|
+
fd: number;
|
|
38
|
+
body: Uint8Array;
|
|
39
|
+
nonblock?: boolean;
|
|
40
|
+
} | {
|
|
41
|
+
op: 'fd-close';
|
|
42
|
+
fd: number;
|
|
43
|
+
} | {
|
|
44
|
+
op: 'fd-pipe';
|
|
45
|
+
} | {
|
|
46
|
+
op: 'fd-poll';
|
|
47
|
+
fd: number;
|
|
48
|
+
} | {
|
|
49
|
+
op: 'fd-open-vfs';
|
|
50
|
+
path: string;
|
|
51
|
+
flags: number;
|
|
52
|
+
position: number;
|
|
53
|
+
mode?: number;
|
|
54
|
+
contents?: Uint8Array;
|
|
55
|
+
orphan?: boolean;
|
|
56
|
+
truncate?: boolean;
|
|
57
|
+
create?: boolean;
|
|
58
|
+
exclusive?: boolean;
|
|
59
|
+
created?: boolean;
|
|
60
|
+
existing?: boolean;
|
|
61
|
+
pin?: VersionPin;
|
|
62
|
+
handle?: number;
|
|
63
|
+
} | {
|
|
64
|
+
op: 'fd-pread';
|
|
65
|
+
fd: number;
|
|
66
|
+
offset: number;
|
|
67
|
+
max: number;
|
|
68
|
+
} | {
|
|
69
|
+
op: 'fd-pwrite';
|
|
70
|
+
fd: number;
|
|
71
|
+
offset: number;
|
|
72
|
+
body: Uint8Array;
|
|
73
|
+
} | {
|
|
74
|
+
op: 'fd-resize';
|
|
75
|
+
fd: number;
|
|
76
|
+
size: number;
|
|
77
|
+
} | {
|
|
78
|
+
op: 'fd-vfs-stat';
|
|
79
|
+
fd: number;
|
|
80
|
+
identity?: boolean;
|
|
81
|
+
full?: boolean;
|
|
82
|
+
} | {
|
|
83
|
+
op: 'fd-chmod';
|
|
84
|
+
fd: number;
|
|
85
|
+
mode: number;
|
|
86
|
+
} | {
|
|
87
|
+
op: 'fd-chown';
|
|
88
|
+
fd: number;
|
|
89
|
+
uid?: number;
|
|
90
|
+
gid?: number;
|
|
91
|
+
} | {
|
|
92
|
+
op: 'fd-utimes';
|
|
93
|
+
fd: number;
|
|
94
|
+
atimeMs: number | null;
|
|
95
|
+
mtimeMs: number | null;
|
|
96
|
+
now?: boolean;
|
|
97
|
+
} | {
|
|
98
|
+
op: 'fd-path-flush';
|
|
99
|
+
path: string;
|
|
100
|
+
} | {
|
|
101
|
+
op: 'fd-path-unlinking';
|
|
102
|
+
path: string;
|
|
103
|
+
} | {
|
|
104
|
+
op: 'fd-path-unlinked';
|
|
105
|
+
path: string;
|
|
106
|
+
} | {
|
|
107
|
+
op: 'fd-path-renamed';
|
|
108
|
+
from: string;
|
|
109
|
+
to: string;
|
|
110
|
+
} | {
|
|
111
|
+
op: 'fd-seek';
|
|
112
|
+
fd: number;
|
|
113
|
+
offset: number;
|
|
114
|
+
whence: number;
|
|
115
|
+
} | {
|
|
116
|
+
op: 'fd-select';
|
|
117
|
+
read: number[];
|
|
118
|
+
write: number[];
|
|
119
|
+
timeoutMs: number;
|
|
120
|
+
} | {
|
|
121
|
+
op: 'fd-info';
|
|
122
|
+
fd: number;
|
|
123
|
+
} | {
|
|
124
|
+
op: 'fd-dup';
|
|
125
|
+
fd: number;
|
|
126
|
+
min?: number;
|
|
127
|
+
} | {
|
|
128
|
+
op: 'fd-reserve';
|
|
129
|
+
fd?: number;
|
|
130
|
+
min?: number;
|
|
131
|
+
meta?: HeldMeta;
|
|
132
|
+
} | {
|
|
133
|
+
op: 'fd-meta';
|
|
134
|
+
fd: number;
|
|
135
|
+
meta: HeldMeta;
|
|
136
|
+
} | {
|
|
137
|
+
op: 'fd-setfl';
|
|
138
|
+
fd: number;
|
|
139
|
+
flags: number;
|
|
140
|
+
} | {
|
|
141
|
+
op: 'fd-cloexec';
|
|
142
|
+
fd: number;
|
|
143
|
+
on: boolean;
|
|
144
|
+
} | {
|
|
145
|
+
op: 'fd-list';
|
|
146
|
+
} | {
|
|
147
|
+
op: 'dl-log';
|
|
148
|
+
append?: LinkRecord;
|
|
149
|
+
from: number;
|
|
150
|
+
} | {
|
|
151
|
+
op: 'dl-closure';
|
|
152
|
+
floor: number;
|
|
153
|
+
} | {
|
|
154
|
+
op: 'dl-reserve';
|
|
155
|
+
floor: number;
|
|
156
|
+
size: number;
|
|
157
|
+
} | {
|
|
158
|
+
op: 'dl-load-reserve';
|
|
159
|
+
floor: number;
|
|
160
|
+
size: number;
|
|
161
|
+
} | {
|
|
162
|
+
op: 'dl-lock';
|
|
163
|
+
owner: number;
|
|
164
|
+
} | {
|
|
165
|
+
op: 'dl-unlock';
|
|
166
|
+
owner: number;
|
|
167
|
+
} | {
|
|
168
|
+
op: 'dl-closure-free';
|
|
169
|
+
index: number;
|
|
170
|
+
} | {
|
|
171
|
+
op: 'proc-alarm';
|
|
172
|
+
sig: number;
|
|
173
|
+
ms: number;
|
|
174
|
+
firstMs?: number;
|
|
175
|
+
repeat: boolean;
|
|
176
|
+
timer?: number;
|
|
177
|
+
} | {
|
|
178
|
+
op: 'fd-renumber';
|
|
179
|
+
from: number;
|
|
180
|
+
to: number;
|
|
181
|
+
keep?: boolean;
|
|
182
|
+
} | {
|
|
183
|
+
op: 'proc-umask';
|
|
184
|
+
mask?: number;
|
|
185
|
+
} | {
|
|
186
|
+
op: 'proc-cred';
|
|
187
|
+
} | {
|
|
188
|
+
op: 'proc-setcred';
|
|
189
|
+
change: CredChange;
|
|
190
|
+
} | {
|
|
191
|
+
op: 'fd-promote';
|
|
192
|
+
fd: number;
|
|
193
|
+
share?: number;
|
|
194
|
+
path?: string;
|
|
195
|
+
flags?: number;
|
|
196
|
+
position?: number;
|
|
197
|
+
contents?: Uint8Array;
|
|
198
|
+
orphan?: boolean;
|
|
199
|
+
dirty?: boolean;
|
|
200
|
+
pin?: VersionPin;
|
|
201
|
+
handle?: number;
|
|
202
|
+
} | {
|
|
203
|
+
op: 'fd-open-tty';
|
|
204
|
+
name?: string;
|
|
205
|
+
} | {
|
|
206
|
+
op: 'fd-tty-names';
|
|
207
|
+
} | {
|
|
208
|
+
op: 'fd-tty-owner';
|
|
209
|
+
name: string;
|
|
210
|
+
} | {
|
|
211
|
+
op: 'fd-open-sealed';
|
|
212
|
+
flags: number;
|
|
213
|
+
} | {
|
|
214
|
+
op: 'fd-open-clipboard';
|
|
215
|
+
flags: number;
|
|
216
|
+
} | {
|
|
217
|
+
op: 'fd-clipboard-abort';
|
|
218
|
+
fd: number;
|
|
219
|
+
} | {
|
|
220
|
+
op: 'tty-get';
|
|
221
|
+
fd: number;
|
|
222
|
+
} | {
|
|
223
|
+
op: 'tty-set';
|
|
224
|
+
fd: number;
|
|
225
|
+
termios: Termios;
|
|
226
|
+
flush?: boolean;
|
|
227
|
+
} | {
|
|
228
|
+
op: 'tty-winsz';
|
|
229
|
+
fd: number;
|
|
230
|
+
} | {
|
|
231
|
+
op: 'fd-flush';
|
|
232
|
+
fd: number;
|
|
233
|
+
} | {
|
|
234
|
+
op: 'proc-spawn';
|
|
235
|
+
file: string;
|
|
236
|
+
argv: string[];
|
|
237
|
+
argv0?: string;
|
|
238
|
+
env: Record<string, string>;
|
|
239
|
+
cwd: string;
|
|
240
|
+
stdio: ChildStdio[];
|
|
241
|
+
pgid?: number;
|
|
242
|
+
session?: true;
|
|
243
|
+
deathSignal?: number;
|
|
244
|
+
inherit?: InheritedSlot[];
|
|
245
|
+
exec?: boolean;
|
|
246
|
+
restart?: true;
|
|
247
|
+
} | {
|
|
248
|
+
op: 'proc-wait';
|
|
249
|
+
pid: number;
|
|
250
|
+
nohang: boolean;
|
|
251
|
+
untraced?: boolean;
|
|
252
|
+
continued?: boolean;
|
|
253
|
+
} | {
|
|
254
|
+
op: 'proc-captured';
|
|
255
|
+
pid: number;
|
|
256
|
+
slot: number;
|
|
257
|
+
} | SudoCall | RunRequest | {
|
|
258
|
+
op: 'proc-exit';
|
|
259
|
+
status: number;
|
|
260
|
+
} | {
|
|
261
|
+
op: 'proc-kill-self';
|
|
262
|
+
sig: number;
|
|
263
|
+
target?: number;
|
|
264
|
+
probe?: boolean;
|
|
265
|
+
} | {
|
|
266
|
+
op: 'proc-fork';
|
|
267
|
+
state: ForkState;
|
|
268
|
+
restart?: true;
|
|
269
|
+
} | {
|
|
270
|
+
op: 'proc-kill';
|
|
271
|
+
pid: number;
|
|
272
|
+
sig: number;
|
|
273
|
+
} | {
|
|
274
|
+
op: 'thread-kill';
|
|
275
|
+
tid: number;
|
|
276
|
+
sig: number;
|
|
277
|
+
} | {
|
|
278
|
+
op: 'proc-list';
|
|
279
|
+
} | {
|
|
280
|
+
op: 'mount-list';
|
|
281
|
+
} | ({
|
|
282
|
+
op: 'mount';
|
|
283
|
+
} & MountCall) | {
|
|
284
|
+
op: 'umount';
|
|
285
|
+
target: string;
|
|
286
|
+
flags: number;
|
|
287
|
+
} | {
|
|
288
|
+
op: 'proc-exec';
|
|
289
|
+
pid: number;
|
|
290
|
+
} | {
|
|
291
|
+
op: 'proc-identity';
|
|
292
|
+
} | {
|
|
293
|
+
op: 'proc-setpgid';
|
|
294
|
+
pid: number;
|
|
295
|
+
pgid: number;
|
|
296
|
+
} | {
|
|
297
|
+
op: 'proc-getpgid';
|
|
298
|
+
pid: number;
|
|
299
|
+
} | {
|
|
300
|
+
op: 'proc-getsid';
|
|
301
|
+
pid: number;
|
|
302
|
+
} | {
|
|
303
|
+
op: 'proc-setsid';
|
|
304
|
+
} | {
|
|
305
|
+
op: 'tty-pgrp-get';
|
|
306
|
+
fd: number;
|
|
307
|
+
} | {
|
|
308
|
+
op: 'tty-pgrp-set';
|
|
309
|
+
fd: number;
|
|
310
|
+
pgrp: number;
|
|
311
|
+
} | {
|
|
312
|
+
op: 'sig-mask';
|
|
313
|
+
caught: number;
|
|
314
|
+
ignored: number;
|
|
315
|
+
defaults?: number;
|
|
316
|
+
} | {
|
|
317
|
+
op: 'sig-pause';
|
|
318
|
+
} | SocketSyscall | EpollSyscall | SemSyscall | HttpSyscall | PtySyscall | HostSyscall;
|
|
319
|
+
export interface FdInfo {
|
|
320
|
+
tty: boolean;
|
|
321
|
+
kind: KernelFdKind;
|
|
322
|
+
dgram?: true;
|
|
323
|
+
meta?: HeldMeta;
|
|
324
|
+
flags?: number;
|
|
325
|
+
cloexec?: true;
|
|
326
|
+
access?: DeviceAccess;
|
|
327
|
+
name?: string;
|
|
328
|
+
terminal?: string;
|
|
329
|
+
}
|
|
330
|
+
export declare function isWasmSyscall(req: object): req is WasmSyscall;
|
|
331
|
+
export declare const DEFAULT_UMASK = 18;
|
|
332
|
+
export interface WasmProcessOptions {
|
|
333
|
+
ignored?: number;
|
|
334
|
+
source?: SourceCheck;
|
|
335
|
+
umask?: number;
|
|
336
|
+
cred?: Cred;
|
|
337
|
+
owners?: boolean;
|
|
338
|
+
sealed?: SealedBroker;
|
|
339
|
+
outputFilter?: (file: OpenFile) => OpenFile;
|
|
340
|
+
clipboard?: ClipboardBroker;
|
|
341
|
+
clipboardName?: string;
|
|
342
|
+
readonlyAt?: (path: string) => boolean;
|
|
343
|
+
guard?: {
|
|
344
|
+
dac: Dac;
|
|
345
|
+
fs: KernelFs;
|
|
346
|
+
created?: Created;
|
|
347
|
+
links?: number;
|
|
348
|
+
};
|
|
349
|
+
noLinks?: KernelFs;
|
|
350
|
+
identity?: () => Promise<{
|
|
351
|
+
pid: number;
|
|
352
|
+
ppid: number;
|
|
353
|
+
}>;
|
|
354
|
+
onSyscall?: (req: WasmSyscall) => void;
|
|
355
|
+
spawner?: ChildSpawner;
|
|
356
|
+
forker?: ChildForker;
|
|
357
|
+
fs: VfsFileFs;
|
|
358
|
+
kill?: (pid: number, sig: number) => boolean | Promise<boolean>;
|
|
359
|
+
writesBack?: (pid: number) => boolean;
|
|
360
|
+
processes?: () => ProcessListing;
|
|
361
|
+
sudo?: (call: SudoCall, signal: AbortSignal) => Promise<SudoResult>;
|
|
362
|
+
openFiles?: Set<VfsNodes>;
|
|
363
|
+
nodes?: VfsNodes;
|
|
364
|
+
mounts?: () => MountLine[];
|
|
365
|
+
mount?: (call: MountCall, signal: AbortSignal) => Promise<unknown>;
|
|
366
|
+
umount?: (target: string, flags: number) => Promise<void>;
|
|
367
|
+
onPending?: (sig: number) => void;
|
|
368
|
+
onTimer?: (which: number) => void;
|
|
369
|
+
onAsync?: () => void;
|
|
370
|
+
hasPending?: () => boolean;
|
|
371
|
+
threadKill?: (tid: number, sig: number) => boolean;
|
|
372
|
+
unblockedThread?: (sig: number) => number | undefined;
|
|
373
|
+
settling?: () => boolean;
|
|
374
|
+
pendingBits?: () => number;
|
|
375
|
+
blockedBits?: () => number;
|
|
376
|
+
dl?: DlState;
|
|
377
|
+
raise?: (sig: number) => void;
|
|
378
|
+
exitNow?: (status: number) => void;
|
|
379
|
+
exitSignal?: (sig: number) => void;
|
|
380
|
+
onReap?: (pid: number) => void;
|
|
381
|
+
jobs?: JobTable;
|
|
382
|
+
ptys?: PtyTable;
|
|
383
|
+
net?: LoopbackNet;
|
|
384
|
+
http?: HttpHandles;
|
|
385
|
+
locks?: LockTable;
|
|
386
|
+
sems?: SemTable;
|
|
387
|
+
resolver?: Resolver;
|
|
388
|
+
}
|
|
389
|
+
export type StateListener = (state: 'stopped' | 'continued', sig: number) => void;
|
|
390
|
+
export type SignalOutcome = DefaultAction | 'deliver' | 'forward';
|
|
391
|
+
export declare class WasmProcess {
|
|
392
|
+
private exited;
|
|
393
|
+
private readonly children;
|
|
394
|
+
private readonly deathSignals;
|
|
395
|
+
private caught;
|
|
396
|
+
private ignored;
|
|
397
|
+
private inherited;
|
|
398
|
+
private interrupt;
|
|
399
|
+
private readonly gone;
|
|
400
|
+
private dying;
|
|
401
|
+
umask: number;
|
|
402
|
+
cred: Cred;
|
|
403
|
+
private execChild;
|
|
404
|
+
private killed;
|
|
405
|
+
execTermsig: number | undefined;
|
|
406
|
+
private stopped;
|
|
407
|
+
private stops;
|
|
408
|
+
private owed;
|
|
409
|
+
private readonly waiting;
|
|
410
|
+
private resumed;
|
|
411
|
+
private wake;
|
|
412
|
+
private readonly stateListeners;
|
|
413
|
+
private net;
|
|
414
|
+
private readonly nodes;
|
|
415
|
+
readonly pid: number;
|
|
416
|
+
readonly fds: FdTable;
|
|
417
|
+
private readonly options;
|
|
418
|
+
constructor(pid: number, fds: FdTable, options: WasmProcessOptions);
|
|
419
|
+
private ignores;
|
|
420
|
+
signalMasks(): {
|
|
421
|
+
ignored: number;
|
|
422
|
+
caught: number;
|
|
423
|
+
};
|
|
424
|
+
inheritable(fork?: boolean): number;
|
|
425
|
+
signal(sig: number): SignalOutcome;
|
|
426
|
+
private spawn;
|
|
427
|
+
private onDeath;
|
|
428
|
+
private sendDeath;
|
|
429
|
+
private killSelf;
|
|
430
|
+
private run;
|
|
431
|
+
private adoptExec;
|
|
432
|
+
onState(listener: StateListener): void;
|
|
433
|
+
private stop;
|
|
434
|
+
private cont;
|
|
435
|
+
private readonly blocks;
|
|
436
|
+
private readonly sizesRead;
|
|
437
|
+
syscall(req: WasmSyscall, cancelled?: AbortSignal, block?: () => void): Promise<SyncFsResult>;
|
|
438
|
+
setUmask(mask?: number): number;
|
|
439
|
+
die(): void;
|
|
440
|
+
private dispatch;
|
|
441
|
+
private readonly lockOwners;
|
|
442
|
+
private readonly lockChecked;
|
|
443
|
+
private lockOwner;
|
|
444
|
+
private readonly pathKeys;
|
|
445
|
+
private lockPath;
|
|
446
|
+
private lockKey;
|
|
447
|
+
private dropRecordLocks;
|
|
448
|
+
private refuseIfPending;
|
|
449
|
+
private procWait;
|
|
450
|
+
private blockingSignal;
|
|
451
|
+
private cancelSignal;
|
|
452
|
+
private read;
|
|
453
|
+
private readClipboard;
|
|
454
|
+
private clipboardComplaint;
|
|
455
|
+
private write;
|
|
456
|
+
private openVfs;
|
|
457
|
+
private openDevice;
|
|
458
|
+
private identified;
|
|
459
|
+
private writesAt;
|
|
460
|
+
private sourceOpen;
|
|
461
|
+
private markedPath;
|
|
462
|
+
private openPath;
|
|
463
|
+
private mayOpen;
|
|
464
|
+
private openTty;
|
|
465
|
+
private openSealed;
|
|
466
|
+
private openClipboard;
|
|
467
|
+
private clipboardStamp;
|
|
468
|
+
private stampClipboards;
|
|
469
|
+
connectorStamp(): Promise<SealedCaller>;
|
|
470
|
+
private sealedCaller;
|
|
471
|
+
private guarded;
|
|
472
|
+
private ttyOwner;
|
|
473
|
+
private terminalByName;
|
|
474
|
+
private plainMode;
|
|
475
|
+
private newOwner;
|
|
476
|
+
private openProc;
|
|
477
|
+
private procFile;
|
|
478
|
+
private openVfsFile;
|
|
479
|
+
private fdSyscall;
|
|
480
|
+
private vfsSyscall;
|
|
481
|
+
keptPath?: (path: string) => string | undefined;
|
|
482
|
+
holds(path: string): Promise<boolean>;
|
|
483
|
+
keptHandle?: (handle: number) => string | undefined;
|
|
484
|
+
private keptOr;
|
|
485
|
+
private promote;
|
|
486
|
+
private reserve;
|
|
487
|
+
private heldPath;
|
|
488
|
+
private heldFs;
|
|
489
|
+
private heldStat;
|
|
490
|
+
private fdMetadata;
|
|
491
|
+
private fdInfo;
|
|
492
|
+
private ttySyscall;
|
|
493
|
+
private checkForeground;
|
|
494
|
+
private waitGroup;
|
|
495
|
+
private pgid;
|
|
496
|
+
private sid;
|
|
497
|
+
private controllingTerminal;
|
|
498
|
+
private jobSyscall;
|
|
499
|
+
private httpSyscall;
|
|
500
|
+
private semSyscall;
|
|
501
|
+
private socketSyscall;
|
|
502
|
+
private tty;
|
|
503
|
+
private procSyscall;
|
|
504
|
+
private sudo;
|
|
505
|
+
private mountSyscall;
|
|
506
|
+
private pause;
|
|
507
|
+
private alarm;
|
|
508
|
+
private readonly dlLog;
|
|
509
|
+
private readonly closures;
|
|
510
|
+
private withDl;
|
|
511
|
+
private seedDl;
|
|
512
|
+
private allocateClosure;
|
|
513
|
+
private freeClosure;
|
|
514
|
+
private readonly dlLock;
|
|
515
|
+
private lockDl;
|
|
516
|
+
threadEnded(tid: number): void;
|
|
517
|
+
private unlockDl;
|
|
518
|
+
private wakeDl;
|
|
519
|
+
private reserveSlots;
|
|
520
|
+
private readonly asyncOps;
|
|
521
|
+
private setAlarm;
|
|
522
|
+
private timerExpired;
|
|
523
|
+
private clearAlarm;
|
|
524
|
+
exit(): Promise<void>;
|
|
525
|
+
}
|