@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,156 @@
|
|
|
1
|
+
export declare const E: {
|
|
2
|
+
readonly SUCCESS: 0;
|
|
3
|
+
readonly '2BIG': 1;
|
|
4
|
+
readonly ACCES: 2;
|
|
5
|
+
readonly ADDRINUSE: 3;
|
|
6
|
+
readonly ADDRNOTAVAIL: 4;
|
|
7
|
+
readonly AFNOSUPPORT: 5;
|
|
8
|
+
readonly AGAIN: 6;
|
|
9
|
+
readonly ALREADY: 7;
|
|
10
|
+
readonly BADF: 8;
|
|
11
|
+
readonly BADMSG: 9;
|
|
12
|
+
readonly BUSY: 10;
|
|
13
|
+
readonly CANCELED: 11;
|
|
14
|
+
readonly CHILD: 12;
|
|
15
|
+
readonly CONNABORTED: 13;
|
|
16
|
+
readonly CONNREFUSED: 14;
|
|
17
|
+
readonly CONNRESET: 15;
|
|
18
|
+
readonly DEADLK: 16;
|
|
19
|
+
readonly DESTADDRREQ: 17;
|
|
20
|
+
readonly DOM: 18;
|
|
21
|
+
readonly DQUOT: 19;
|
|
22
|
+
readonly EXIST: 20;
|
|
23
|
+
readonly FAULT: 21;
|
|
24
|
+
readonly FBIG: 22;
|
|
25
|
+
readonly HOSTUNREACH: 23;
|
|
26
|
+
readonly IDRM: 24;
|
|
27
|
+
readonly ILSEQ: 25;
|
|
28
|
+
readonly INPROGRESS: 26;
|
|
29
|
+
readonly INTR: 27;
|
|
30
|
+
readonly INVAL: 28;
|
|
31
|
+
readonly IO: 29;
|
|
32
|
+
readonly ISCONN: 30;
|
|
33
|
+
readonly ISDIR: 31;
|
|
34
|
+
readonly LOOP: 32;
|
|
35
|
+
readonly MFILE: 33;
|
|
36
|
+
readonly MLINK: 34;
|
|
37
|
+
readonly MSGSIZE: 35;
|
|
38
|
+
readonly MULTIHOP: 36;
|
|
39
|
+
readonly NAMETOOLONG: 37;
|
|
40
|
+
readonly NETDOWN: 38;
|
|
41
|
+
readonly NETRESET: 39;
|
|
42
|
+
readonly NETUNREACH: 40;
|
|
43
|
+
readonly NFILE: 41;
|
|
44
|
+
readonly NOBUFS: 42;
|
|
45
|
+
readonly NODEV: 43;
|
|
46
|
+
readonly NOENT: 44;
|
|
47
|
+
readonly NOEXEC: 45;
|
|
48
|
+
readonly NOLCK: 46;
|
|
49
|
+
readonly NOLINK: 47;
|
|
50
|
+
readonly NOMEM: 48;
|
|
51
|
+
readonly NOMSG: 49;
|
|
52
|
+
readonly NOPROTOOPT: 50;
|
|
53
|
+
readonly NOSPC: 51;
|
|
54
|
+
readonly NOSYS: 52;
|
|
55
|
+
readonly NOTCONN: 53;
|
|
56
|
+
readonly NOTDIR: 54;
|
|
57
|
+
readonly NOTEMPTY: 55;
|
|
58
|
+
readonly NOTRECOVERABLE: 56;
|
|
59
|
+
readonly NOTSOCK: 57;
|
|
60
|
+
readonly NOTSUP: 58;
|
|
61
|
+
readonly NOTTY: 59;
|
|
62
|
+
readonly NXIO: 60;
|
|
63
|
+
readonly OVERFLOW: 61;
|
|
64
|
+
readonly OWNERDEAD: 62;
|
|
65
|
+
readonly PERM: 63;
|
|
66
|
+
readonly PIPE: 64;
|
|
67
|
+
readonly PROTO: 65;
|
|
68
|
+
readonly PROTONOSUPPORT: 66;
|
|
69
|
+
readonly PROTOTYPE: 67;
|
|
70
|
+
readonly RANGE: 68;
|
|
71
|
+
readonly ROFS: 69;
|
|
72
|
+
readonly SPIPE: 70;
|
|
73
|
+
readonly SRCH: 71;
|
|
74
|
+
readonly STALE: 72;
|
|
75
|
+
readonly TIMEDOUT: 73;
|
|
76
|
+
readonly TXTBSY: 74;
|
|
77
|
+
readonly XDEV: 75;
|
|
78
|
+
readonly NOTCAPABLE: 76;
|
|
79
|
+
};
|
|
80
|
+
export declare function wasiErrnoOf(code: string | undefined): number;
|
|
81
|
+
export declare const FILETYPE: {
|
|
82
|
+
readonly UNKNOWN: 0;
|
|
83
|
+
readonly BLOCK_DEVICE: 1;
|
|
84
|
+
readonly CHARACTER_DEVICE: 2;
|
|
85
|
+
readonly DIRECTORY: 3;
|
|
86
|
+
readonly REGULAR_FILE: 4;
|
|
87
|
+
readonly SOCKET_DGRAM: 5;
|
|
88
|
+
readonly SOCKET_STREAM: 6;
|
|
89
|
+
readonly SYMBOLIC_LINK: 7;
|
|
90
|
+
};
|
|
91
|
+
export declare const RIGHTS: {
|
|
92
|
+
readonly FD_DATASYNC: bigint;
|
|
93
|
+
readonly FD_READ: bigint;
|
|
94
|
+
readonly FD_SEEK: bigint;
|
|
95
|
+
readonly FD_FDSTAT_SET_FLAGS: bigint;
|
|
96
|
+
readonly FD_SYNC: bigint;
|
|
97
|
+
readonly FD_TELL: bigint;
|
|
98
|
+
readonly FD_WRITE: bigint;
|
|
99
|
+
readonly ALL: bigint;
|
|
100
|
+
};
|
|
101
|
+
export declare const OFLAGS: {
|
|
102
|
+
readonly CREAT: 1;
|
|
103
|
+
readonly DIRECTORY: 2;
|
|
104
|
+
readonly EXCL: 4;
|
|
105
|
+
readonly TRUNC: 8;
|
|
106
|
+
};
|
|
107
|
+
export declare const FDFLAGS: {
|
|
108
|
+
readonly APPEND: 1;
|
|
109
|
+
readonly DSYNC: 2;
|
|
110
|
+
readonly NONBLOCK: 4;
|
|
111
|
+
readonly RSYNC: 8;
|
|
112
|
+
readonly SYNC: 16;
|
|
113
|
+
};
|
|
114
|
+
export declare const LOOKUP_SYMLINK_FOLLOW = 1;
|
|
115
|
+
export declare const WHENCE: {
|
|
116
|
+
readonly SET: 0;
|
|
117
|
+
readonly CUR: 1;
|
|
118
|
+
readonly END: 2;
|
|
119
|
+
};
|
|
120
|
+
export declare const CLOCK: {
|
|
121
|
+
readonly REALTIME: 0;
|
|
122
|
+
readonly MONOTONIC: 1;
|
|
123
|
+
readonly PROCESS_CPUTIME: 2;
|
|
124
|
+
readonly THREAD_CPUTIME: 3;
|
|
125
|
+
};
|
|
126
|
+
export declare const FSTFLAGS: {
|
|
127
|
+
readonly ATIM: 1;
|
|
128
|
+
readonly ATIM_NOW: 2;
|
|
129
|
+
readonly MTIM: 4;
|
|
130
|
+
readonly MTIM_NOW: 8;
|
|
131
|
+
};
|
|
132
|
+
export declare const EVENTTYPE: {
|
|
133
|
+
readonly CLOCK: 0;
|
|
134
|
+
readonly FD_READ: 1;
|
|
135
|
+
readonly FD_WRITE: 2;
|
|
136
|
+
};
|
|
137
|
+
export declare const SUBCLOCK_ABSTIME = 1;
|
|
138
|
+
export declare const EVENT_FD_READWRITE_HANGUP = 1;
|
|
139
|
+
export declare const RIFLAGS: {
|
|
140
|
+
readonly PEEK: 1;
|
|
141
|
+
readonly WAITALL: 2;
|
|
142
|
+
};
|
|
143
|
+
export declare const SDFLAGS: {
|
|
144
|
+
readonly RD: 1;
|
|
145
|
+
readonly WR: 2;
|
|
146
|
+
};
|
|
147
|
+
export declare const PREOPENTYPE_DIR = 0;
|
|
148
|
+
export declare const SIZE: {
|
|
149
|
+
readonly FILESTAT: 64;
|
|
150
|
+
readonly FDSTAT: 24;
|
|
151
|
+
readonly DIRENT: 24;
|
|
152
|
+
readonly SUBSCRIPTION: 48;
|
|
153
|
+
readonly EVENT: 32;
|
|
154
|
+
};
|
|
155
|
+
export declare const WASI_SIGNAL_TO_POSIX: Readonly<Record<number, number>>;
|
|
156
|
+
export declare function wasixSignal(sig: number): number | undefined;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { type DeviceAccess, type DeviceMeta, type KernelFdKind } from '../../kernel/fd-table.js';
|
|
2
|
+
import type { WasmSyscall } from '../../kernel/process.js';
|
|
3
|
+
import { type SyncFsBridgeStat, type SyncFsPosixBridge } from '../../realm/sync-fs-wire.js';
|
|
4
|
+
import type { ProcessSys } from '../kernel-streams.js';
|
|
5
|
+
import { type WasiEntry } from './wasi-files.js';
|
|
6
|
+
export interface WasiKernel {
|
|
7
|
+
sys: ProcessSys;
|
|
8
|
+
call(req: WasmSyscall): unknown;
|
|
9
|
+
}
|
|
10
|
+
type Device = 'null' | 'zero' | 'full' | 'urandom';
|
|
11
|
+
export type WasiForkFd = {
|
|
12
|
+
fd: number;
|
|
13
|
+
type: 'kernel';
|
|
14
|
+
nonblock: boolean;
|
|
15
|
+
append: boolean;
|
|
16
|
+
} | {
|
|
17
|
+
fd: number;
|
|
18
|
+
type: 'dir';
|
|
19
|
+
path: string;
|
|
20
|
+
preopen?: string;
|
|
21
|
+
twin?: number;
|
|
22
|
+
} | {
|
|
23
|
+
fd: number;
|
|
24
|
+
type: 'device';
|
|
25
|
+
device: Device;
|
|
26
|
+
access?: DeviceAccess;
|
|
27
|
+
};
|
|
28
|
+
export declare const SEALED_PATH = "/dev/sealed";
|
|
29
|
+
export declare const CLIPBOARD_PATH = "/dev/clipboard";
|
|
30
|
+
export declare function deviceOf(path: string): Device | undefined;
|
|
31
|
+
export declare class WasiFds {
|
|
32
|
+
private readonly table;
|
|
33
|
+
private readonly buffers;
|
|
34
|
+
private readonly reported;
|
|
35
|
+
private readonly byId;
|
|
36
|
+
private readonly ids;
|
|
37
|
+
private readonly kernel;
|
|
38
|
+
private readonly fs;
|
|
39
|
+
constructor(kernel: WasiKernel, fs: SyncFsPosixBridge);
|
|
40
|
+
setup(cwd: string, inherited: ReadonlyArray<{
|
|
41
|
+
fd: number;
|
|
42
|
+
kind?: KernelFdKind;
|
|
43
|
+
flags?: number;
|
|
44
|
+
device?: DeviceMeta;
|
|
45
|
+
}>, root?: boolean): void;
|
|
46
|
+
private preopens;
|
|
47
|
+
find(fd: number): WasiEntry | undefined;
|
|
48
|
+
private shared;
|
|
49
|
+
private seen;
|
|
50
|
+
get isShared(): boolean;
|
|
51
|
+
share(ids: Int32Array, fresh: boolean): void;
|
|
52
|
+
private sync;
|
|
53
|
+
private bump;
|
|
54
|
+
private stdioEntry;
|
|
55
|
+
private fetch;
|
|
56
|
+
private listed;
|
|
57
|
+
private publishFlags;
|
|
58
|
+
setFlags(fd: number, nonblock: boolean, append: boolean): void;
|
|
59
|
+
setCloexec(fd: number, on: boolean): void;
|
|
60
|
+
cwd(): string | undefined;
|
|
61
|
+
terminals(): number[];
|
|
62
|
+
sockets(): number[];
|
|
63
|
+
adopt(fd: number, kind: KernelFdKind, nonblock: boolean, dgram?: boolean): void;
|
|
64
|
+
get(fd: number): WasiEntry;
|
|
65
|
+
preopen(fd: number): Extract<WasiEntry, {
|
|
66
|
+
type: 'dir';
|
|
67
|
+
}> & {
|
|
68
|
+
preopen: string;
|
|
69
|
+
};
|
|
70
|
+
dir(fd: number): Extract<WasiEntry, {
|
|
71
|
+
type: 'dir';
|
|
72
|
+
}>;
|
|
73
|
+
private install;
|
|
74
|
+
readonly cloexec: Set<number>;
|
|
75
|
+
implicitCloexec: boolean;
|
|
76
|
+
dup(fd: number, min: number, cloexec: boolean): number;
|
|
77
|
+
pipe(): [number, number];
|
|
78
|
+
chdir(path: string): void;
|
|
79
|
+
promoteFiles(): void;
|
|
80
|
+
snapshot(): WasiForkFd[];
|
|
81
|
+
restore(fds: readonly WasiForkFd[], cloexec: readonly number[]): void;
|
|
82
|
+
inheritable(): Map<number, number>;
|
|
83
|
+
private locking;
|
|
84
|
+
holdLocks(): void;
|
|
85
|
+
private dropLocks;
|
|
86
|
+
close(fd: number): void;
|
|
87
|
+
renumber(from: number, to: number, keep?: boolean): void;
|
|
88
|
+
private release;
|
|
89
|
+
private drop;
|
|
90
|
+
private forget;
|
|
91
|
+
private know;
|
|
92
|
+
private identity;
|
|
93
|
+
private sharing;
|
|
94
|
+
private learn;
|
|
95
|
+
linked(from: string, to: string): void;
|
|
96
|
+
private letGo;
|
|
97
|
+
kind(fd: number, e: Extract<WasiEntry, {
|
|
98
|
+
type: 'kernel';
|
|
99
|
+
}>): KernelFdKind;
|
|
100
|
+
datagram(fd: number, e: Extract<WasiEntry, {
|
|
101
|
+
type: 'kernel';
|
|
102
|
+
}>): boolean;
|
|
103
|
+
flushAll(): void;
|
|
104
|
+
flushEarly(): void;
|
|
105
|
+
flushPath(path: string): void;
|
|
106
|
+
holdsUnder(path: string): boolean;
|
|
107
|
+
unlinking(path: string, linked?: SyncFsBridgeStat): void;
|
|
108
|
+
unlinked(path: string, linked?: SyncFsBridgeStat): void;
|
|
109
|
+
private openedIno;
|
|
110
|
+
private inoOf;
|
|
111
|
+
private survives;
|
|
112
|
+
private detach;
|
|
113
|
+
renamed(from: string, to: string, replacedLinked?: SyncFsBridgeStat): void;
|
|
114
|
+
resolve(dirfd: number, path: string): string;
|
|
115
|
+
private openKernelDevice;
|
|
116
|
+
private openCharDevice;
|
|
117
|
+
open(path: string, oflags: number, rights: bigint, fdflags: number): number;
|
|
118
|
+
private regular;
|
|
119
|
+
private kernelHolds;
|
|
120
|
+
private readonly learned;
|
|
121
|
+
private named;
|
|
122
|
+
private file;
|
|
123
|
+
private freshBuffer;
|
|
124
|
+
private kernelFile;
|
|
125
|
+
private createNew;
|
|
126
|
+
private isLink;
|
|
127
|
+
private statOrMissing;
|
|
128
|
+
private reopen;
|
|
129
|
+
}
|
|
130
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { type RangedWatch } from '../../fs/ranged.js';
|
|
2
|
+
import type { DeviceAccess, KernelFdKind } from '../../kernel/fd-table.js';
|
|
3
|
+
import type { SyncFsBridgeStat, SyncFsFileIo, SyncFsPosixBridge } from '../../realm/sync-fs-wire.js';
|
|
4
|
+
export declare class WasiError extends Error {
|
|
5
|
+
readonly code: string;
|
|
6
|
+
constructor(code: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class FileBuffer {
|
|
9
|
+
private data;
|
|
10
|
+
private length;
|
|
11
|
+
private dirty;
|
|
12
|
+
private whole;
|
|
13
|
+
private from;
|
|
14
|
+
private to;
|
|
15
|
+
private orphaned;
|
|
16
|
+
opens: number;
|
|
17
|
+
private readonly fs;
|
|
18
|
+
private where;
|
|
19
|
+
private readonly ranged;
|
|
20
|
+
private readonly watch;
|
|
21
|
+
private seen;
|
|
22
|
+
maxFile: number | undefined;
|
|
23
|
+
handle: number | undefined;
|
|
24
|
+
constructor(fs: SyncFsFileIo, path: string, empty: boolean, maxFile?: number, size?: number, version?: string, watch?: RangedWatch);
|
|
25
|
+
get path(): string;
|
|
26
|
+
set path(path: string);
|
|
27
|
+
get isRanged(): boolean;
|
|
28
|
+
get pin(): string | undefined;
|
|
29
|
+
keep(): void;
|
|
30
|
+
load(): Uint8Array;
|
|
31
|
+
size(): number;
|
|
32
|
+
pread(max: number, at: number): Uint8Array;
|
|
33
|
+
fits(end: number): void;
|
|
34
|
+
pwrite(bytes: Uint8Array, at: number): number;
|
|
35
|
+
append(bytes: Uint8Array): number | undefined;
|
|
36
|
+
truncate(size: number): void;
|
|
37
|
+
private ensure;
|
|
38
|
+
orphan(): void;
|
|
39
|
+
isOrphan(): boolean;
|
|
40
|
+
isDirty(): boolean;
|
|
41
|
+
contents(): Uint8Array;
|
|
42
|
+
flush(): void;
|
|
43
|
+
}
|
|
44
|
+
export declare class LocalFile {
|
|
45
|
+
offset: number;
|
|
46
|
+
refs: number;
|
|
47
|
+
readonly buffer: FileBuffer;
|
|
48
|
+
readonly readable: boolean;
|
|
49
|
+
readonly writable: boolean;
|
|
50
|
+
append: boolean;
|
|
51
|
+
constructor(buffer: FileBuffer, readable: boolean, writable: boolean, append: boolean);
|
|
52
|
+
get path(): string;
|
|
53
|
+
size(): number;
|
|
54
|
+
pread(max: number, at: number): Uint8Array;
|
|
55
|
+
read(max: number): Uint8Array;
|
|
56
|
+
pwrite(bytes: Uint8Array, at: number): number;
|
|
57
|
+
write(bytes: Uint8Array): number;
|
|
58
|
+
truncate(size: number): void;
|
|
59
|
+
flush(): void;
|
|
60
|
+
}
|
|
61
|
+
export interface DirListing {
|
|
62
|
+
names: string[];
|
|
63
|
+
stats: Map<string, SyncFsBridgeStat | null>;
|
|
64
|
+
}
|
|
65
|
+
export type WasiEntry = {
|
|
66
|
+
type: 'kernel';
|
|
67
|
+
kind?: KernelFdKind;
|
|
68
|
+
dgram?: boolean;
|
|
69
|
+
nonblock: boolean;
|
|
70
|
+
append: boolean;
|
|
71
|
+
path?: string;
|
|
72
|
+
ino?: number;
|
|
73
|
+
} | {
|
|
74
|
+
type: 'file';
|
|
75
|
+
file: LocalFile;
|
|
76
|
+
} | {
|
|
77
|
+
type: 'dir';
|
|
78
|
+
path: string;
|
|
79
|
+
preopen?: string;
|
|
80
|
+
twin?: number;
|
|
81
|
+
listing?: DirListing;
|
|
82
|
+
} | {
|
|
83
|
+
type: 'device';
|
|
84
|
+
device: 'null' | 'zero' | 'full' | 'urandom';
|
|
85
|
+
access?: DeviceAccess;
|
|
86
|
+
};
|
|
87
|
+
export declare function normalize(path: string): string;
|
|
88
|
+
export declare function physical(fs: Pick<SyncFsPosixBridge, 'lstat' | 'readlink' | 'access' | 'links'>, path: string): string;
|
|
89
|
+
export declare function realOf(fs: Pick<SyncFsPosixBridge, 'lstat' | 'readlink'>, path: string): string;
|
|
90
|
+
export declare function resolveUnder(dir: string, path: string): string;
|
|
91
|
+
export declare function pathInode(path: string): bigint;
|
|
92
|
+
export declare const MISS_TTL_MS = 20;
|
|
93
|
+
export declare const FS_GEN = 4;
|
|
94
|
+
export declare const SHARED_IDS_BYTES: number;
|
|
95
|
+
export declare function cachingBridge(bridge: SyncFsPosixBridge, now?: () => number, shared?: Int32Array): SyncFsPosixBridge & {
|
|
96
|
+
invalidate(): void;
|
|
97
|
+
touched(path?: string, ino?: number): void;
|
|
98
|
+
threaded(): void;
|
|
99
|
+
};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { DeviceMeta, KernelFdKind } from '../../kernel/fd-table.js';
|
|
2
|
+
import type { SyncFsPosixBridge } from '../../realm/sync-fs-wire.js';
|
|
3
|
+
import { WasiFds, type WasiForkFd, type WasiKernel } from './wasi-fds.js';
|
|
4
|
+
import { WasiMemory } from './wasi-memory.js';
|
|
5
|
+
import type { WasiSigmask } from './wasi-sigmask.js';
|
|
6
|
+
import type { WasiSignals } from './wasi-signals.js';
|
|
7
|
+
import type { ThreadEntry } from './wasix-fork.js';
|
|
8
|
+
export declare class WasiExit extends Error {
|
|
9
|
+
readonly code: number;
|
|
10
|
+
constructor(code: number);
|
|
11
|
+
}
|
|
12
|
+
export interface WasiHostOptions {
|
|
13
|
+
args: readonly string[];
|
|
14
|
+
env: Readonly<Record<string, string>>;
|
|
15
|
+
cwd: string;
|
|
16
|
+
pid: number;
|
|
17
|
+
ppid?: number;
|
|
18
|
+
parent?: () => number;
|
|
19
|
+
kernel: WasiKernel;
|
|
20
|
+
fs: SyncFsPosixBridge & {
|
|
21
|
+
invalidate?(): void;
|
|
22
|
+
touched?(path?: string, ino?: number): void;
|
|
23
|
+
};
|
|
24
|
+
inherited?: ReadonlyArray<{
|
|
25
|
+
fd: number;
|
|
26
|
+
kind?: KernelFdKind;
|
|
27
|
+
flags?: number;
|
|
28
|
+
device?: DeviceMeta;
|
|
29
|
+
}>;
|
|
30
|
+
shared?: Int32Array;
|
|
31
|
+
forked?: {
|
|
32
|
+
fds: readonly WasiForkFd[];
|
|
33
|
+
cloexec: readonly number[];
|
|
34
|
+
};
|
|
35
|
+
preopenRoot?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export type WasiFunction = (...args: never[]) => number | undefined;
|
|
38
|
+
export declare class WasiHost {
|
|
39
|
+
readonly mem: WasiMemory;
|
|
40
|
+
readonly fds: WasiFds;
|
|
41
|
+
private readonly started;
|
|
42
|
+
private cache;
|
|
43
|
+
private readonly startCwd;
|
|
44
|
+
interruptWakes: boolean;
|
|
45
|
+
entered: boolean;
|
|
46
|
+
onRaise: ((sig: number) => boolean) | undefined;
|
|
47
|
+
muted: ((fd: number, data: Uint8Array) => boolean) | undefined;
|
|
48
|
+
signals: WasiSignals | undefined;
|
|
49
|
+
sigmask: WasiSigmask | undefined;
|
|
50
|
+
linkedTls: (() => Array<[number, number]>) | undefined;
|
|
51
|
+
threadEntry: ThreadEntry | undefined;
|
|
52
|
+
linkedModules: (() => Record<string, WebAssembly.Module>) | undefined;
|
|
53
|
+
interrupted: (() => boolean) | undefined;
|
|
54
|
+
quietly: (fn: () => void) => void;
|
|
55
|
+
private readonly listening;
|
|
56
|
+
readonly o: WasiHostOptions;
|
|
57
|
+
constructor(o: WasiHostOptions);
|
|
58
|
+
get cwd(): string;
|
|
59
|
+
private created;
|
|
60
|
+
sliccTtyImports(): Record<string, WasiFunction>;
|
|
61
|
+
sliccFsImports(): Record<string, WasiFunction>;
|
|
62
|
+
sliccImports(): Record<string, WasiFunction>;
|
|
63
|
+
private poll;
|
|
64
|
+
private maskedPoll;
|
|
65
|
+
private suspend;
|
|
66
|
+
imports(): Record<string, WasiFunction>;
|
|
67
|
+
now(id: number): bigint;
|
|
68
|
+
private environ;
|
|
69
|
+
private processImports;
|
|
70
|
+
private ioImports;
|
|
71
|
+
private statImports;
|
|
72
|
+
private pathImports;
|
|
73
|
+
private socket;
|
|
74
|
+
private socketImports;
|
|
75
|
+
private recvAll;
|
|
76
|
+
private file;
|
|
77
|
+
private positional;
|
|
78
|
+
private readonly unnamed;
|
|
79
|
+
private changed;
|
|
80
|
+
private learnPath;
|
|
81
|
+
private lockedFile;
|
|
82
|
+
private kernelStat;
|
|
83
|
+
private write;
|
|
84
|
+
private read;
|
|
85
|
+
private local;
|
|
86
|
+
private seek;
|
|
87
|
+
private sync;
|
|
88
|
+
private fdstat;
|
|
89
|
+
private writeFilestat;
|
|
90
|
+
private fdFilestat;
|
|
91
|
+
private localFilestat;
|
|
92
|
+
private keptStat;
|
|
93
|
+
private sized;
|
|
94
|
+
private statOrphanable;
|
|
95
|
+
private synthetic;
|
|
96
|
+
private resolveForDev;
|
|
97
|
+
private pathFilestat;
|
|
98
|
+
private setTimes;
|
|
99
|
+
private readdir;
|
|
100
|
+
private list;
|
|
101
|
+
private lstatOrNull;
|
|
102
|
+
flushAll(): void;
|
|
103
|
+
}
|
|
104
|
+
export declare function wrap(table: Record<string, WasiFunction>): Record<string, WasiFunction>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class WasiMemory {
|
|
2
|
+
private memory;
|
|
3
|
+
bind(memory: WebAssembly.Memory): void;
|
|
4
|
+
private buffer;
|
|
5
|
+
view(): DataView;
|
|
6
|
+
bytes(ptr: number, len: number): Uint8Array;
|
|
7
|
+
string(ptr: number, len: number): string;
|
|
8
|
+
cString(ptr: number): string;
|
|
9
|
+
size(): number;
|
|
10
|
+
iovecs(ptr: number, count: number): Array<[number, number]>;
|
|
11
|
+
capacity(ptr: number, count: number): number;
|
|
12
|
+
gather(ptr: number, count: number): Uint8Array;
|
|
13
|
+
scatter(ptr: number, count: number, data: Uint8Array): number;
|
|
14
|
+
putStrings(list: readonly string[], ptrs: number, buf: number): void;
|
|
15
|
+
putSizes(list: readonly string[], countPtr: number, sizePtr: number): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ImportedMemory {
|
|
2
|
+
module: string;
|
|
3
|
+
name: string;
|
|
4
|
+
initial: number;
|
|
5
|
+
maximum?: number;
|
|
6
|
+
shared: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function importedMemory(bytes: Uint8Array): ImportedMemory | undefined;
|
|
9
|
+
export declare const RESERVED_NAMESPACES: ReadonlySet<string>;
|
|
10
|
+
export type ForeignResult = 'none' | 'i32' | 'i64' | 'f32' | 'f64' | 'other';
|
|
11
|
+
export type ForeignResults = Record<string, Record<string, ForeignResult>>;
|
|
12
|
+
export declare function foreignImports(bytes: Uint8Array): ForeignResults | undefined;
|
|
13
|
+
export declare function libcVersion(module: WebAssembly.Module): number | undefined;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { WasiFds, WasiKernel } from './wasi-fds.js';
|
|
2
|
+
import type { WasiMemory } from './wasi-memory.js';
|
|
3
|
+
export type ClockNow = (id: number) => bigint;
|
|
4
|
+
interface PollDeps {
|
|
5
|
+
mem: WasiMemory;
|
|
6
|
+
fds: WasiFds;
|
|
7
|
+
kernel: WasiKernel;
|
|
8
|
+
now: ClockNow;
|
|
9
|
+
interruptWakes?: boolean;
|
|
10
|
+
entered?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function pollOneoff(deps: PollDeps, inPtr: number, outPtr: number, nsubs: number, neventsPtr: number): number;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { MountLine, ProcessListing } from '../../kernel/proc-info.js';
|
|
2
|
+
import { type SyncFsBridgeStat, type SyncFsPosixBridge } from '../../realm/sync-fs-wire.js';
|
|
3
|
+
import { type MemorySource } from '../procfs.js';
|
|
4
|
+
export interface ProcSource {
|
|
5
|
+
procList(): ProcessListing;
|
|
6
|
+
mountList(): MountLine[];
|
|
7
|
+
}
|
|
8
|
+
export declare function inProc(path: string): boolean;
|
|
9
|
+
export declare class ProcTree {
|
|
10
|
+
private readonly source;
|
|
11
|
+
private readonly pid;
|
|
12
|
+
private readonly memory;
|
|
13
|
+
constructor(source: ProcSource, pid: number, memory?: MemorySource);
|
|
14
|
+
private listing;
|
|
15
|
+
private alive;
|
|
16
|
+
private node;
|
|
17
|
+
private info;
|
|
18
|
+
private task;
|
|
19
|
+
private parts;
|
|
20
|
+
private find;
|
|
21
|
+
stat(path: string, follow?: boolean): SyncFsBridgeStat;
|
|
22
|
+
private bytes;
|
|
23
|
+
read(path: string): Uint8Array;
|
|
24
|
+
readdir(path: string): string[];
|
|
25
|
+
readlink(path: string): string;
|
|
26
|
+
exists(path: string): boolean;
|
|
27
|
+
}
|
|
28
|
+
type ProcRefusal = {
|
|
29
|
+
refused: string;
|
|
30
|
+
};
|
|
31
|
+
export declare function procAlias(fs: {
|
|
32
|
+
readlink?(path: string): Promise<string>;
|
|
33
|
+
lstat?(path: string): Promise<unknown>;
|
|
34
|
+
}, path: string, follow: boolean): Promise<string | undefined | ProcRefusal>;
|
|
35
|
+
export declare function procfsBridge<T extends SyncFsPosixBridge>(fs: T, tree: ProcTree): T;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type BlockedMask } from '../../realm/sync-sab-wire.js';
|
|
2
|
+
export declare const kernelBits: (lo: number) => number;
|
|
3
|
+
export declare const libcBits: (bits: number) => number;
|
|
4
|
+
export declare class WasiSigmask {
|
|
5
|
+
private lo;
|
|
6
|
+
private hi;
|
|
7
|
+
private readonly header;
|
|
8
|
+
private readonly deliver;
|
|
9
|
+
private readonly process;
|
|
10
|
+
constructor(header: Int32Array, deliver: () => void, process?: Int32Array);
|
|
11
|
+
static unsupported(header: Int32Array): void;
|
|
12
|
+
set(how: number, setLo: number, setHi: number, old: (lo: number, hi: number) => void): number;
|
|
13
|
+
swap(setLo: number, setHi: number): [number, number];
|
|
14
|
+
deliverUnblocked(): boolean;
|
|
15
|
+
restore([lo, hi]: [number, number]): void;
|
|
16
|
+
inherited(): BlockedMask;
|
|
17
|
+
discard(sig: number): void;
|
|
18
|
+
pending(): number;
|
|
19
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { SignalHooks } from '../process-signals.js';
|
|
2
|
+
export interface WasiSignalState {
|
|
3
|
+
callback?: string;
|
|
4
|
+
hooked?: true;
|
|
5
|
+
handlers: number;
|
|
6
|
+
ignoring: number;
|
|
7
|
+
restarting: number;
|
|
8
|
+
uncaught: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class WasiSignals implements SignalHooks {
|
|
11
|
+
private exports;
|
|
12
|
+
private callback;
|
|
13
|
+
private uncaught;
|
|
14
|
+
private delivering;
|
|
15
|
+
private defaulted;
|
|
16
|
+
private libcDefault;
|
|
17
|
+
private hooked;
|
|
18
|
+
private handlers;
|
|
19
|
+
private ignoring;
|
|
20
|
+
private restarting;
|
|
21
|
+
private defaults;
|
|
22
|
+
private readonly fallBack;
|
|
23
|
+
private readonly onKilled;
|
|
24
|
+
constructor(fallBack: (sig: number) => void, onKilled?: (code: number) => void);
|
|
25
|
+
killed(code: number): void;
|
|
26
|
+
bind(exports: WebAssembly.Exports): void;
|
|
27
|
+
register(name: string): void;
|
|
28
|
+
useHook(): void;
|
|
29
|
+
disposition(sig: number, disposition: number, flags: number): number;
|
|
30
|
+
snapshot(): WasiSignalState;
|
|
31
|
+
restore(state: WasiSignalState): void;
|
|
32
|
+
masks(): {
|
|
33
|
+
caught: number;
|
|
34
|
+
ignored: number;
|
|
35
|
+
restart: number;
|
|
36
|
+
defaults?: number;
|
|
37
|
+
} | null;
|
|
38
|
+
raise(sig: number): void;
|
|
39
|
+
muted(fd: number, data: Uint8Array): boolean;
|
|
40
|
+
raised(sig: number): boolean;
|
|
41
|
+
private defaultAction;
|
|
42
|
+
private handler;
|
|
43
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Termios } from '../../kernel/tty.js';
|
|
2
|
+
import type { WasiFds, WasiKernel } from './wasi-fds.js';
|
|
3
|
+
import type { WasiMemory } from './wasi-memory.js';
|
|
4
|
+
export declare function writeTermios(mem: WasiMemory, ptr: number, termios: Termios): void;
|
|
5
|
+
export declare function readTermios(mem: WasiMemory, ptr: number): Termios;
|
|
6
|
+
export declare function sliccTty(mem: WasiMemory, fds: WasiFds, kernel: WasiKernel, interrupted?: () => void): {
|
|
7
|
+
tcgetattr: (fd: number, ptr: number) => undefined;
|
|
8
|
+
tcsetattr: (fd: number, actions: number, ptr: number) => undefined;
|
|
9
|
+
winsize: (fd: number, ptr: number) => undefined;
|
|
10
|
+
};
|