@ai-ecoverse/slicc-kernel 1.108.2 → 1.108.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.
@@ -263,6 +263,7 @@ export type WasmSyscall = {
263
263
  sig: number;
264
264
  target?: number;
265
265
  probe?: boolean;
266
+ dry?: boolean;
266
267
  } | {
267
268
  op: 'proc-fork';
268
269
  state: ForkState;
@@ -436,6 +437,8 @@ export declare class WasmProcess {
436
437
  private spawn;
437
438
  private onDeath;
438
439
  private sendDeath;
440
+ private selfKill;
441
+ private spares;
439
442
  private killSelf;
440
443
  private run;
441
444
  private adoptExec;
@@ -27,6 +27,7 @@ export interface JsProgram {
27
27
  abi: 'js';
28
28
  glue: string;
29
29
  path: string;
30
+ url?: string;
30
31
  }
31
32
  export type Program = WasmProgram | JsProgram;
32
33
  export interface ForkState {
@@ -62,7 +62,15 @@ export interface LauncherOptions {
62
62
  sudoTimeoutMs?: number;
63
63
  protect?: Protection;
64
64
  cron?: CronOptions;
65
+ moduleUrl?: ModuleUrlMaker;
65
66
  }
67
+ export interface ModuleUrl {
68
+ url: string;
69
+ revoke(): void;
70
+ }
71
+ export type ModuleUrlMaker = (source: string) => ModuleUrl;
72
+ export declare function dataModuleUrl(source: string): ModuleUrl;
73
+ export declare function blobModuleUrl(source: string): ModuleUrl;
66
74
  export interface CronOptions {
67
75
  clock?: CronClock;
68
76
  lock?: string;
@@ -137,6 +145,9 @@ export declare class Launcher {
137
145
  private readonly unlinkOwnerOption;
138
146
  private readonly base;
139
147
  private readonly createWorker;
148
+ private readonly moduleUrl;
149
+ private readonly moduleUrls;
150
+ private readonly urlsInUse;
140
151
  private readonly modulesDir;
141
152
  private readonly appended;
142
153
  private readonly reportedRoots;
@@ -270,6 +281,9 @@ export declare class Launcher {
270
281
  private module;
271
282
  private checkedSources;
272
283
  private text;
284
+ private urlFor;
285
+ private heldUrl;
286
+ private releaseUrl;
273
287
  private names;
274
288
  private program;
275
289
  private launch;
@@ -50,6 +50,7 @@ export declare class WasiFds {
50
50
  get isShared(): boolean;
51
51
  share(ids: Int32Array, fresh: boolean): void;
52
52
  private sync;
53
+ private replay;
53
54
  private bump;
54
55
  private stdioEntry;
55
56
  private fetch;
@@ -92,6 +92,8 @@ export declare function pathInode(path: string): bigint;
92
92
  export declare const MISS_TTL_MS = 20;
93
93
  export declare const FS_GEN = 4;
94
94
  export declare const CRED_GEN = 5;
95
+ export declare const FD_RING: number;
96
+ export declare const FD_RING_SIZE = 64;
95
97
  export declare const SHARED_IDS_BYTES: number;
96
98
  export declare function cachingBridge(bridge: SyncFsPosixBridge, now?: () => number, shared?: Int32Array): SyncFsPosixBridge & {
97
99
  invalidate(): void;
@@ -52,6 +52,7 @@ export declare class WasiHost {
52
52
  muted: ((fd: number, data: Uint8Array) => boolean) | undefined;
53
53
  signals: WasiSignals | undefined;
54
54
  sigmask: WasiSigmask | undefined;
55
+ tid: number;
55
56
  linkedTls: (() => Array<[number, number]>) | undefined;
56
57
  threadEntry: ThreadEntry | undefined;
57
58
  linkedModules: (() => Record<string, WebAssembly.Module>) | undefined;
@@ -6,7 +6,7 @@ import type { WasmWorkerLike } from './kernel/host.js';
6
6
  import type { RouteTable } from './kernel/net/routes.js';
7
7
  import type { RealmTransportTraits } from './kernel/net/transport.js';
8
8
  import { type UplinkTraits } from './kernel/net/uplink.js';
9
- import { type RunOptions, type TerminalOptions } from './launcher.js';
9
+ import { type ModuleUrlMaker, type RunOptions, type TerminalOptions } from './launcher.js';
10
10
  import type { MediumHandle } from './mount/fsa.js';
11
11
  import type { HostfsGrant, HostfsPortGrant } from './mount/hostfs.js';
12
12
  import type { MediaStore } from './mount/media.js';
@@ -176,6 +176,7 @@ export interface ServeDeps {
176
176
  syncAccess?: boolean;
177
177
  createWorker: () => WasmWorkerLike;
178
178
  createDriverWorker?: () => WasmWorkerLike;
179
+ moduleUrl?: ModuleUrlMaker;
179
180
  metadata?: (name: string) => Promise<MetaStore>;
180
181
  media?: (name: string) => Promise<MediaStore>;
181
182
  locks?: LockManagerLike | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-kernel",
3
- "version": "1.108.2",
3
+ "version": "1.108.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",