@ai-ecoverse/slicc-kernel 1.121.0 → 1.122.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.
@@ -85,6 +85,9 @@ export interface KernelFs {
85
85
  chown?(path: string, change: OwnerChange): Promise<void>;
86
86
  trackOwners?(): void;
87
87
  onPeer?(settle: () => Promise<void>): void;
88
+ remoteChanges?(listener: (change: {
89
+ paths: readonly string[];
90
+ }) => void): () => void;
88
91
  peers?(): Peers | undefined;
89
92
  crossings?(mounted: (path: string) => boolean): void;
90
93
  ancestry?(path: string): Promise<Array<Perm | undefined>>;
@@ -135,6 +135,7 @@ export declare class VfsNodes implements UnlinkHolder {
135
135
  isKept(): boolean;
136
136
  keep(path: string, file: KeptFile): void;
137
137
  unkeep(path: string, file: KeptFile): void;
138
+ rewritten(path: string): void;
138
139
  flush(path: string): Promise<void>;
139
140
  unlinking(path: string): Promise<void>;
140
141
  revoke(prefix: string): void;
@@ -383,6 +383,7 @@ export declare class Launcher {
383
383
  fsFor(tag: string | undefined): KernelFs;
384
384
  isWriter(tag: string | undefined): boolean;
385
385
  private stackFor;
386
+ private rewritten;
386
387
  private flushOpen;
387
388
  private writerStack;
388
389
  private noLinksOf;
@@ -44,6 +44,7 @@ export interface KernelImports {
44
44
  fdWrite?: unknown;
45
45
  fdRead?: unknown;
46
46
  sleepMs?: unknown;
47
+ flock?: unknown;
47
48
  }
48
49
  export declare function importKey(namespace: WebAssembly.ModuleImports, name: keyof KernelImports, glue: KernelImports | undefined): string | undefined;
49
50
  export declare function wrapImport(imports: WebAssembly.Imports, name: keyof KernelImports, glue: KernelImports | undefined, wrap: (original: Syscall) => Syscall, optional?: boolean): void;
@@ -17,6 +17,7 @@ export interface LockKernel {
17
17
  setLock(target: LockTarget, kind: LockKind | 'unlock', start: number, len: number, wait: boolean): void;
18
18
  getLock(target: LockTarget, kind: LockKind, start: number, len: number): LockHeld | null;
19
19
  closeLocks(target: LockTarget): void;
20
+ flock?(fd: number, kind: 'shared' | 'exclusive' | 'unlock', wait: boolean): void;
20
21
  }
21
22
  export interface LockDeps {
22
23
  fs(): ProcessFs | undefined;
@@ -28,3 +29,8 @@ export declare const lockPromoters: WeakMap<object, () => (stream: ProcessStream
28
29
  export declare function lockTarget(stream: ProcessStream): LockTarget | undefined;
29
30
  export declare function recordLock(fcntl: (fd: number, cmd: number, varargs: number) => number, deps: LockDeps): (fd: number, cmd: number, varargs: number) => number;
30
31
  export declare function closeDropsLocks(Fs: ProcessFs, kernel: LockKernel): void;
32
+ export interface FlockDeps {
33
+ fs(): ProcessFs | undefined;
34
+ flock(fd: number, kind: 'shared' | 'exclusive' | 'unlock', wait: boolean): void;
35
+ }
36
+ export declare function kernelFlock(deps: FlockDeps): (fd: number, op: number) => number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-kernel",
3
- "version": "1.121.0",
3
+ "version": "1.122.0",
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",