@ai-ecoverse/slicc-kernel 1.103.0 → 1.103.2
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 +3 -3
- package/dist/index.js.map +2 -2
- package/dist/kernel-worker.js +146 -31
- package/dist/kernel-worker.js.map +4 -4
- package/dist/meta.js.map +2 -2
- package/dist/node-process-worker.js +39 -46
- package/dist/node-process-worker.js.map +3 -3
- package/dist/node.js +151 -36
- package/dist/node.js.map +4 -4
- package/dist/process-worker.js +54 -61
- package/dist/process-worker.js.map +3 -3
- package/dist/types/fs/meta.d.ts +1 -0
- package/dist/types/fs/types.d.ts +2 -0
- package/dist/types/kernel/children.d.ts +1 -0
- package/dist/types/kernel/process.d.ts +1 -0
- package/dist/types/kernel/run-child.d.ts +1 -0
- package/dist/types/kernel/socket-nodes.d.ts +20 -0
- package/dist/types/kernel/socket-syscalls.d.ts +2 -0
- package/dist/types/kernel/socket.d.ts +11 -5
- package/dist/types/launcher.d.ts +1 -0
- package/dist/types/realm/emscripten-vfs-hook.d.ts +1 -0
- package/dist/types/realm/sync-fs-dispatch.d.ts +1 -0
- package/dist/types/realm/sync-fs-wire.d.ts +1 -0
- package/package.json +3 -3
package/dist/types/fs/meta.d.ts
CHANGED
package/dist/types/fs/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export interface FsStat {
|
|
|
2
2
|
isFile: boolean;
|
|
3
3
|
isDirectory: boolean;
|
|
4
4
|
isSymbolicLink: boolean;
|
|
5
|
+
isSocket?: boolean;
|
|
5
6
|
size: number;
|
|
6
7
|
mode: number;
|
|
7
8
|
mtime: Date;
|
|
@@ -33,6 +34,7 @@ export interface Perm {
|
|
|
33
34
|
export interface NewOwner extends Owner {
|
|
34
35
|
mode?: number;
|
|
35
36
|
parents?: number;
|
|
37
|
+
socket?: boolean;
|
|
36
38
|
}
|
|
37
39
|
export interface OwnerChange {
|
|
38
40
|
uid?: number;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type Guard } from '../fs/dac.js';
|
|
2
|
+
import { type KernelFs, type NewOwner } from '../fs/types.js';
|
|
3
|
+
import type { SockAddr, SocketName } from './socket.js';
|
|
4
|
+
export interface BoundName extends SocketName {
|
|
5
|
+
remove(): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export interface SocketNames {
|
|
8
|
+
make(path: string): Promise<BoundName>;
|
|
9
|
+
find(path: string): Promise<SocketName>;
|
|
10
|
+
}
|
|
11
|
+
export type SocketNameFs = Pick<KernelFs, 'stat' | 'lstat' | 'chmod' | 'rm'>;
|
|
12
|
+
export interface SocketNameDeps {
|
|
13
|
+
fs: SocketNameFs;
|
|
14
|
+
guard(): Guard | undefined;
|
|
15
|
+
create(path: string, owner: NewOwner): Promise<void>;
|
|
16
|
+
owner(): NewOwner;
|
|
17
|
+
owners: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function filePath(addr: SockAddr): string | undefined;
|
|
20
|
+
export declare function socketNames(deps: SocketNameDeps): SocketNames;
|
|
@@ -2,6 +2,7 @@ import type { SyncFsResult } from '../realm/sync-fs-wire.js';
|
|
|
2
2
|
import { type FdTable } from './fd-table.js';
|
|
3
3
|
import type { ResolveFamily } from './net/uplink.js';
|
|
4
4
|
import { type ConnectorStamp, type LoopbackNet, type PeerCred, type SockAddr, type SocketDomain } from './socket.js';
|
|
5
|
+
import { type SocketNames } from './socket-nodes.js';
|
|
5
6
|
export type SocketSyscall = {
|
|
6
7
|
op: 'sock-open';
|
|
7
8
|
domain: SocketDomain;
|
|
@@ -70,5 +71,6 @@ export interface SocketProcess {
|
|
|
70
71
|
resolve(name: string, family: ResolveFamily, blocking: () => AbortSignal): Promise<string[]>;
|
|
71
72
|
cred?(): PeerCred;
|
|
72
73
|
stamp?(): Promise<ConnectorStamp>;
|
|
74
|
+
names?: SocketNames;
|
|
73
75
|
}
|
|
74
76
|
export declare function socketSyscall(req: SocketSyscall, proc: SocketProcess): Promise<SyncFsResult>;
|
|
@@ -38,6 +38,10 @@ export interface PeerCred {
|
|
|
38
38
|
gid: number;
|
|
39
39
|
}
|
|
40
40
|
export type ConnectorStamp = SealedCaller;
|
|
41
|
+
export interface SocketName {
|
|
42
|
+
key: string;
|
|
43
|
+
typed: boolean;
|
|
44
|
+
}
|
|
41
45
|
export declare class KernelSocket implements KernelFile {
|
|
42
46
|
private readonly net;
|
|
43
47
|
readonly domain: SocketDomain;
|
|
@@ -56,6 +60,7 @@ export declare class KernelSocket implements KernelFile {
|
|
|
56
60
|
private readonly queue;
|
|
57
61
|
private backlog;
|
|
58
62
|
private boundAt;
|
|
63
|
+
named: SocketName | undefined;
|
|
59
64
|
private readonly changes;
|
|
60
65
|
private readonly room;
|
|
61
66
|
private readonly options;
|
|
@@ -69,13 +74,14 @@ export declare class KernelSocket implements KernelFile {
|
|
|
69
74
|
write(bytes: Uint8Array, signal?: AbortSignal): Promise<number>;
|
|
70
75
|
poll(): PollState;
|
|
71
76
|
changed(signal?: AbortSignal): Promise<void>;
|
|
72
|
-
|
|
77
|
+
bindable(addr: SockAddr): void;
|
|
78
|
+
bind(addr: SockAddr, kernel?: boolean, name?: SocketName): void;
|
|
73
79
|
listen(backlog: number, cred?: PeerCred): void;
|
|
74
80
|
accept(signal?: AbortSignal, nonblock?: boolean): Promise<KernelSocket>;
|
|
75
81
|
offer(server: KernelSocket): boolean;
|
|
76
82
|
get full(): boolean;
|
|
77
83
|
waitRoom(signal: AbortSignal): Promise<void>;
|
|
78
|
-
connect(addr: SockAddr, viaUplink?: boolean, cred?: PeerCred, stamp?: ConnectorStamp, waits?: boolean): Promise<void> | undefined;
|
|
84
|
+
connect(addr: SockAddr, viaUplink?: boolean, cred?: PeerCred, stamp?: ConnectorStamp, waits?: boolean, name?: SocketName): Promise<void> | undefined;
|
|
79
85
|
private join;
|
|
80
86
|
private queued;
|
|
81
87
|
private dial;
|
|
@@ -112,9 +118,9 @@ export declare class LoopbackNet {
|
|
|
112
118
|
listen(addr: SockAddr, backlog?: number): KernelSocket;
|
|
113
119
|
backlogWaitMs: number;
|
|
114
120
|
connect(addr: SockAddr): KernelSocket;
|
|
115
|
-
bind(socket: KernelSocket, addr: SockAddr, kernel?: boolean): SockAddr;
|
|
116
|
-
release(addr: SockAddr, socket: KernelSocket): void;
|
|
117
|
-
target(addr: SockAddr): KernelSocket;
|
|
121
|
+
bind(socket: KernelSocket, addr: SockAddr, kernel?: boolean, name?: SocketName): SockAddr;
|
|
122
|
+
release(addr: SockAddr, socket: KernelSocket, name?: SocketName): void;
|
|
123
|
+
target(addr: SockAddr, name?: SocketName): KernelSocket;
|
|
118
124
|
private ephemeral;
|
|
119
125
|
}
|
|
120
126
|
export declare function loopbackNet(owner: string): LoopbackNet;
|
package/dist/types/launcher.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { type LiveCred, type LiveMountFsApi } from './live-vfs-fs.js';
|
|
|
2
2
|
import type { SyncFsPosixBridge } from './sync-fs-wire.js';
|
|
3
3
|
export interface EmscriptenFsForHook extends LiveMountFsApi {
|
|
4
4
|
chdir(path: string): void;
|
|
5
|
+
sliccChdirAt?(path: string): void;
|
|
5
6
|
chown?(path: string | object, uid: number, gid: number, dontFollow?: boolean): void;
|
|
6
7
|
}
|
|
7
8
|
export interface EmscriptenVfsHandle {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-ecoverse/slicc-kernel",
|
|
3
|
-
"version": "1.103.
|
|
3
|
+
"version": "1.103.2",
|
|
4
4
|
"description": "SLICC's wasm-realm kernel: run Emscripten programs in the browser against OPFS, with fork, spawn, pipes and waitpid",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"@ai-ecoverse/slicc-shared-web": "1.21.0",
|
|
70
70
|
"@ai-ecoverse/wasi-cargo": "0.99.0-2",
|
|
71
71
|
"@ai-ecoverse/wasi-pnpm": "12.9.1-8",
|
|
72
|
-
"@ai-ecoverse/wasi-ripgrep": "15.2.0-
|
|
72
|
+
"@ai-ecoverse/wasi-ripgrep": "15.2.0-5",
|
|
73
73
|
"@ai-ecoverse/wasi-rustc": "1.98.1-4",
|
|
74
74
|
"@ai-ecoverse/wasi-zig": "0.16.0-15",
|
|
75
75
|
"@ai-ecoverse/wasix-python": "3.14.2-21",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"@ai-ecoverse/wasm-procps": "4.0.7-1",
|
|
81
81
|
"@ai-ecoverse/wasm-sqlite3": "3.54.0-3",
|
|
82
82
|
"@ai-ecoverse/wasm-tar": "1.35.0-6",
|
|
83
|
-
"@ai-ecoverse/wasm-tls-engine": "
|
|
83
|
+
"@ai-ecoverse/wasm-tls-engine": "4.2.0-1",
|
|
84
84
|
"@ai-ecoverse/wasm-tree": "2.3.2-1",
|
|
85
85
|
"@ai-ecoverse/wasm-util-linux": "2.42.4-1",
|
|
86
86
|
"@biomejs/biome": "2.5.15",
|