@ai-ecoverse/slicc-kernel 1.146.3 → 1.146.5

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.
@@ -54,6 +54,7 @@ export declare class RangedFile {
54
54
  truncate(size: number): void;
55
55
  flush(): void;
56
56
  pin(): void;
57
+ prefetch(): void;
57
58
  reset(size: number): void;
58
59
  }
59
60
  export declare class AsyncRangedFile {
@@ -54,6 +54,7 @@ export interface ProcessListing {
54
54
  opfsCalls?: number;
55
55
  opfsOps?: number;
56
56
  cwdChecks?: number;
57
+ staleFds?: number;
57
58
  renameAcks?: {
58
59
  acks: number;
59
60
  busy: number;
@@ -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;
@@ -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;
@@ -6,6 +6,7 @@ interface LiveNodeState {
6
6
  named?: number | undefined;
7
7
  watch?: RangedWatch | undefined;
8
8
  stat?: SyncFsBridgeStat;
9
+ bound?: SyncFsBridgeStat;
9
10
  statAt?: number;
10
11
  filledAt?: number;
11
12
  statGen?: number;
@@ -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",
3
+ "version": "1.146.5",
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.3",
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.9.0",
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",