@ai-ecoverse/slicc-kernel 1.146.1 → 1.146.3

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.
@@ -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 gen;
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
- private touch;
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;
@@ -225,6 +225,7 @@ export declare class Launcher {
225
225
  private readonly fstabRetries;
226
226
  private readonly inserted;
227
227
  private readonly openFiles;
228
+ private readonly pathMarks;
228
229
  private readonly deciding;
229
230
  readonly identities: {
230
231
  asked: number;
@@ -1,5 +1,5 @@
1
1
  import type { SyncFsResult } from '../../realm/sync-fs-wire.js';
2
- import type { SabPostLike } from '../../realm/sync-sab-bridge.js';
2
+ import { type SabPostLike } from '../../realm/sync-sab-bridge.js';
3
3
  import { type SyncSabRequestBody } from '../../realm/sync-sab-wire.js';
4
4
  export type WaitAsyncLike = (typedArray: Int32Array, index: number, value: number) => {
5
5
  async: false;
@@ -132,6 +132,8 @@ export declare class WasiFds {
132
132
  private openCharDevice;
133
133
  open(path: string, oflags: number, rights: bigint, fdflags: number, mode?: number, nofollow?: boolean): number;
134
134
  private nofollow;
135
+ private readonly inos;
136
+ private otherFile;
135
137
  private openSpecial;
136
138
  private escaped;
137
139
  private regular;
@@ -150,6 +152,7 @@ export declare class WasiFds {
150
152
  private madeAtOnce;
151
153
  private createNew;
152
154
  private isLink;
155
+ private lstatOrMissing;
153
156
  private statOrMissing;
154
157
  private reopen;
155
158
  }
@@ -7,6 +7,10 @@ export interface SyncSabTransport {
7
7
  call(req: SyncSabRequestBody, timeoutMs: number, label: string, transfer?: Transferable[]): SyncFsResult;
8
8
  }
9
9
  export type AtomicsWaitLike = (typedArray: Int32Array, index: number, value: number, timeout?: number) => 'ok' | 'not-equal' | 'timed-out';
10
+ export declare function exactBody<T extends object>(req: T, transfer?: Transferable[]): {
11
+ req: T;
12
+ transfer: Transferable[];
13
+ };
10
14
  export declare function syncCallCount(): number;
11
15
  export declare function lookedOutside(): void;
12
16
  export declare function syncEpoch(): number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-kernel",
3
- "version": "1.146.1",
3
+ "version": "1.146.3",
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.1",
67
+ "@ai-ecoverse/slicc-cdp": "1.31.3",
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.8.2",
70
+ "@ai-ecoverse/slicc-shared-web": "2.9.0",
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",
@@ -76,7 +76,7 @@
76
76
  "@ai-ecoverse/wasix-python": "3.15.0-6",
77
77
  "@ai-ecoverse/wasm-bash": "5.3.0-23",
78
78
  "@ai-ecoverse/wasm-coreutils": "9.12.0-15",
79
- "@ai-ecoverse/wasm-curl": "8.22.0-9",
79
+ "@ai-ecoverse/wasm-curl": "8.22.0-10",
80
80
  "@ai-ecoverse/wasm-git": "2.55.0-20",
81
81
  "@ai-ecoverse/wasm-gmake": "4.4.1-9",
82
82
  "@ai-ecoverse/wasm-procps": "4.0.7-5",