@ai-ecoverse/slicc-kernel 1.146.2 → 1.146.4
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 +4 -0
- package/dist/kernel-worker.js +150 -52
- package/dist/kernel-worker.js.map +3 -3
- package/dist/node-process-worker.js +96 -19
- package/dist/node-process-worker.js.map +3 -3
- package/dist/node.js +150 -52
- package/dist/node.js.map +3 -3
- package/dist/process-worker.js +96 -19
- package/dist/process-worker.js.map +3 -3
- package/dist/types/fs/ranged.d.ts +1 -0
- package/dist/types/fs/unlinked.d.ts +15 -4
- package/dist/types/kernel/proc-info.d.ts +1 -0
- package/dist/types/launcher.d.ts +1 -0
- package/dist/types/mount/mount-fs.d.ts +11 -1
- package/dist/types/process/wasi/wasi-fds.d.ts +4 -0
- package/dist/types/process/wasi/wasi-files.d.ts +2 -0
- package/dist/types/realm/live-vfs-fs.d.ts +1 -0
- package/dist/types/realm/sync-fs-dispatch.d.ts +1 -0
- package/dist/types/realm/sync-fs-token-registry.d.ts +6 -1
- package/dist/types/realm/sync-fs-wire.d.ts +2 -0
- package/package.json +3 -4
|
@@ -5,6 +5,18 @@ export interface Replacements {
|
|
|
5
5
|
missed(path: string): boolean;
|
|
6
6
|
generation(): number;
|
|
7
7
|
changedSince(path: string, gen: number): boolean;
|
|
8
|
+
inFlight?(path: string): boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare class PathMarks {
|
|
11
|
+
private gen;
|
|
12
|
+
private floor;
|
|
13
|
+
private readonly touched;
|
|
14
|
+
private readonly flying;
|
|
15
|
+
generation(): number;
|
|
16
|
+
touch(target: string): void;
|
|
17
|
+
changedSince(path: string, gen: number): boolean;
|
|
18
|
+
around<T>(paths: readonly string[], op: () => Promise<T>): Promise<T>;
|
|
19
|
+
inFlight(path: string): boolean;
|
|
8
20
|
}
|
|
9
21
|
export interface KeptFile {
|
|
10
22
|
readonly hidden: string;
|
|
@@ -58,9 +70,7 @@ export declare class UnlinkedKeeper {
|
|
|
58
70
|
private queue;
|
|
59
71
|
private count;
|
|
60
72
|
private readonly replacing;
|
|
61
|
-
private
|
|
62
|
-
private floor;
|
|
63
|
-
private readonly touched;
|
|
73
|
+
private readonly marks;
|
|
64
74
|
private replaced;
|
|
65
75
|
private readonly links;
|
|
66
76
|
private readonly linked;
|
|
@@ -70,13 +80,14 @@ export declare class UnlinkedKeeper {
|
|
|
70
80
|
busy?: (path: string) => boolean;
|
|
71
81
|
owner?: UnlinkOwner | undefined;
|
|
72
82
|
dirOwner?: NewOwner;
|
|
83
|
+
marks?: PathMarks;
|
|
73
84
|
});
|
|
74
85
|
private serial;
|
|
75
86
|
wrap(fs?: KernelFs): KernelFs;
|
|
76
87
|
settled(path: string): Promise<void>;
|
|
77
88
|
generation(): number;
|
|
78
89
|
changedSince(path: string, gen: number): boolean;
|
|
79
|
-
|
|
90
|
+
inFlight(path: string): boolean;
|
|
80
91
|
missed(path: string): boolean;
|
|
81
92
|
settle(pinned: Pinned, op: () => Promise<void>): Promise<void>;
|
|
82
93
|
private heldWithin;
|
package/dist/types/launcher.d.ts
CHANGED
|
@@ -53,6 +53,7 @@ export declare class HeldSet extends Set<HeldPaths> {
|
|
|
53
53
|
private readonly idle;
|
|
54
54
|
constructor(idle: (path: string) => void);
|
|
55
55
|
add(holds: HeldPaths): this;
|
|
56
|
+
doubt(paths: readonly string[], over?: string): void;
|
|
56
57
|
delete(holds: HeldPaths): boolean;
|
|
57
58
|
}
|
|
58
59
|
export declare function heldUnder(held: Iterable<Map<string, number>>, target: string): boolean;
|
|
@@ -66,6 +67,9 @@ export declare class HeldPaths extends Map<string, number> implements UnlinkHold
|
|
|
66
67
|
private readonly uses;
|
|
67
68
|
private lastHandle;
|
|
68
69
|
private owning;
|
|
70
|
+
private readonly bound;
|
|
71
|
+
private readonly doubted;
|
|
72
|
+
private doubts;
|
|
69
73
|
onIdle?: (path: string) => void;
|
|
70
74
|
keyOf(path: string): string;
|
|
71
75
|
keptAt(path: string): KeptFile | undefined;
|
|
@@ -73,6 +77,12 @@ export declare class HeldPaths extends Map<string, number> implements UnlinkHold
|
|
|
73
77
|
held(): Iterable<string>;
|
|
74
78
|
isKept(path: string): boolean;
|
|
75
79
|
private handlesAt;
|
|
80
|
+
doubt(over: string, exact?: boolean): void;
|
|
81
|
+
boundIno(handle: number): {
|
|
82
|
+
ino: number;
|
|
83
|
+
doubt: number;
|
|
84
|
+
} | undefined;
|
|
85
|
+
trust(handle: number, doubt: number): void;
|
|
76
86
|
keptFor(handle: number): KeptFile | undefined;
|
|
77
87
|
holdsHandle(handle: number): boolean;
|
|
78
88
|
keeps(hidden: string): boolean;
|
|
@@ -80,7 +90,7 @@ export declare class HeldPaths extends Map<string, number> implements UnlinkHold
|
|
|
80
90
|
unkeep(path: string, file: KeptFile): void;
|
|
81
91
|
private letGo;
|
|
82
92
|
releaseAll(): void;
|
|
83
|
-
hold(path: string, on: boolean, open?: boolean, real?: string, handle?: number): number | undefined;
|
|
93
|
+
hold(path: string, on: boolean, open?: boolean, real?: string, handle?: number, ino?: number): number | undefined;
|
|
84
94
|
private holdOpen;
|
|
85
95
|
private holdWrite;
|
|
86
96
|
own<T>(path: string, op: () => Promise<T>): Promise<T>;
|
|
@@ -113,6 +113,7 @@ export declare class WasiFds {
|
|
|
113
113
|
reread(fd: number): void;
|
|
114
114
|
flushPath(path: string): void;
|
|
115
115
|
holdsUnder(path: string): boolean;
|
|
116
|
+
replacing(path: string): void;
|
|
116
117
|
unlinking(path: string, linked?: SyncFsBridgeStat): void;
|
|
117
118
|
unlinked(path: string, linked?: SyncFsBridgeStat): void;
|
|
118
119
|
private openedIno;
|
|
@@ -132,6 +133,8 @@ export declare class WasiFds {
|
|
|
132
133
|
private openCharDevice;
|
|
133
134
|
open(path: string, oflags: number, rights: bigint, fdflags: number, mode?: number, nofollow?: boolean): number;
|
|
134
135
|
private nofollow;
|
|
136
|
+
private readonly inos;
|
|
137
|
+
private otherFile;
|
|
135
138
|
private openSpecial;
|
|
136
139
|
private escaped;
|
|
137
140
|
private regular;
|
|
@@ -150,6 +153,7 @@ export declare class WasiFds {
|
|
|
150
153
|
private madeAtOnce;
|
|
151
154
|
private createNew;
|
|
152
155
|
private isLink;
|
|
156
|
+
private lstatOrMissing;
|
|
153
157
|
private statOrMissing;
|
|
154
158
|
private reopen;
|
|
155
159
|
}
|
|
@@ -24,6 +24,7 @@ export declare class FileBuffer {
|
|
|
24
24
|
maxFile: number | undefined;
|
|
25
25
|
handle: number | undefined;
|
|
26
26
|
moved: ((missing: boolean) => boolean) | undefined;
|
|
27
|
+
bound: SyncFsBridgeStat | undefined;
|
|
27
28
|
constructor(fs: SyncFsFileIo, path: string, empty: boolean, maxFile?: number, size?: number, version?: string, watch?: RangedWatch);
|
|
28
29
|
get path(): string;
|
|
29
30
|
private retried;
|
|
@@ -31,6 +32,7 @@ export declare class FileBuffer {
|
|
|
31
32
|
get isRanged(): boolean;
|
|
32
33
|
get pin(): string | undefined;
|
|
33
34
|
keep(): void;
|
|
35
|
+
prefetch(): void;
|
|
34
36
|
load(): Uint8Array;
|
|
35
37
|
size(): number;
|
|
36
38
|
pread(max: number, at: number): Uint8Array;
|
|
@@ -27,4 +27,5 @@ export interface SyncFsStatJson {
|
|
|
27
27
|
}
|
|
28
28
|
export declare function guardOf(entry: SyncFsTokenEntry): Guard | undefined;
|
|
29
29
|
export declare function servedFsCalls(): number;
|
|
30
|
+
export declare function staleFdCount(): number;
|
|
30
31
|
export declare function dispatchSyncFs(req: SyncFsRequest): Promise<SyncFsResult>;
|
|
@@ -10,8 +10,13 @@ export interface SyncFsTokenEntry {
|
|
|
10
10
|
quota: number;
|
|
11
11
|
usage: number;
|
|
12
12
|
} | undefined>;
|
|
13
|
-
hold?: (path: string, held: boolean, open: boolean, real?: string, handle?: number) => number | undefined;
|
|
13
|
+
hold?: (path: string, held: boolean, open: boolean, real?: string, handle?: number, ino?: number) => number | undefined;
|
|
14
14
|
keptFor?: (handle: number) => KeptFile | undefined;
|
|
15
|
+
boundIno?: (handle: number) => {
|
|
16
|
+
ino: number;
|
|
17
|
+
doubt: number;
|
|
18
|
+
} | undefined;
|
|
19
|
+
trust?: (handle: number, doubt: number) => void;
|
|
15
20
|
gate?: <T>(path: string, op: () => Promise<T>) => Promise<T>;
|
|
16
21
|
unlinked?: (path: string) => KeptFile | undefined;
|
|
17
22
|
own?: <T>(path: string, op: () => Promise<T>) => Promise<T>;
|
|
@@ -19,6 +19,7 @@ export interface SyncFsRequest {
|
|
|
19
19
|
version?: string;
|
|
20
20
|
handle?: number;
|
|
21
21
|
gen?: number;
|
|
22
|
+
ino?: number;
|
|
22
23
|
uid?: number;
|
|
23
24
|
gid?: number;
|
|
24
25
|
exclusive?: boolean;
|
|
@@ -112,6 +113,7 @@ export interface SyncFsPosixBridge {
|
|
|
112
113
|
hold?(path: string, held: boolean, open?: boolean, handle?: number, want?: number, seen?: {
|
|
113
114
|
gen?: number;
|
|
114
115
|
nofollow?: boolean;
|
|
116
|
+
ino?: number;
|
|
115
117
|
}): number | undefined;
|
|
116
118
|
access?(path: string, mode: number, kind?: AccessKind, nofollow?: boolean): void;
|
|
117
119
|
create?(path: string, mode?: number, opening?: boolean): SyncFsCreated | undefined | void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-ecoverse/slicc-kernel",
|
|
3
|
-
"version": "1.146.
|
|
3
|
+
"version": "1.146.4",
|
|
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",
|
|
@@ -64,10 +64,10 @@
|
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@ai-ecoverse/py-numpy": "2.5.4-4",
|
|
67
|
-
"@ai-ecoverse/slicc-cdp": "1.31.
|
|
67
|
+
"@ai-ecoverse/slicc-cdp": "1.31.4",
|
|
68
68
|
"@ai-ecoverse/slicc-node": "2.5.2",
|
|
69
69
|
"@ai-ecoverse/slicc-scrub": "1.0.0",
|
|
70
|
-
"@ai-ecoverse/slicc-shared-web": "2.
|
|
70
|
+
"@ai-ecoverse/slicc-shared-web": "2.10.1",
|
|
71
71
|
"@ai-ecoverse/wasi-cargo": "0.99.0-6",
|
|
72
72
|
"@ai-ecoverse/wasi-pnpm": "12.9.1-21",
|
|
73
73
|
"@ai-ecoverse/wasi-ripgrep": "15.2.0-5",
|
|
@@ -83,7 +83,6 @@
|
|
|
83
83
|
"@ai-ecoverse/wasm-sqlite3": "3.54.0-8",
|
|
84
84
|
"@ai-ecoverse/wasm-tar": "1.35.0-9",
|
|
85
85
|
"@ai-ecoverse/wasm-tls-engine": "4.2.0-8",
|
|
86
|
-
"@ai-ecoverse/wasm-tree": "2.3.2-7",
|
|
87
86
|
"@ai-ecoverse/wasm-util-linux": "2.42.4-7",
|
|
88
87
|
"@biomejs/biome": "2.5.15",
|
|
89
88
|
"@types/node": "24.19.2",
|