@ai-ecoverse/slicc-kernel 1.142.2 → 1.143.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.
@@ -1,4 +1,4 @@
1
- import { type MessagePort } from 'node:worker_threads';
1
+ import { type MessagePort, Worker } from 'node:worker_threads';
2
2
  import type { CdpHook } from './cdp/types.js';
3
3
  import type { CronClock } from './cron/clock.js';
4
4
  import type { FacadeSpecs } from './facade/types.js';
@@ -63,6 +63,7 @@ export interface NodeKernelOptions {
63
63
  clock?: CronClock;
64
64
  };
65
65
  compileCache?: string;
66
+ warmWorker?: boolean;
66
67
  wasmMemories?: {
67
68
  ceiling?: number;
68
69
  idleMs?: number;
@@ -92,4 +93,10 @@ export interface NodeTransportOptions {
92
93
  hostLoopback?: HostLoopback;
93
94
  }
94
95
  export declare function nodeTransport(options?: NodeTransportOptions): NetworkTransport;
96
+ export declare const WARM_IDLE_MS = 30000;
97
+ type MakeWorker = () => Worker;
98
+ export declare function warmPool(make: MakeWorker, live: Set<() => void>, idleMs?: number): {
99
+ take(): Worker;
100
+ close(): void;
101
+ };
95
102
  export declare function createNodeKernel(options?: NodeKernelOptions): Promise<NodeKernel>;
@@ -37,9 +37,15 @@ export interface JsMemory {
37
37
  external?: number;
38
38
  arrayBuffers?: number;
39
39
  }
40
+ export interface JsAsyncContext {
41
+ run<R>(store: unknown, fn: (...args: unknown[]) => R, ...args: unknown[]): R;
42
+ getStore(): unknown;
43
+ enterWith(store: unknown): void;
44
+ }
40
45
  export interface JsProgramContext {
41
46
  readonly kernel: JsKernelInfo;
42
47
  memory(): JsMemory;
48
+ readonly asyncContext?: JsAsyncContext;
43
49
  readonly argv: readonly string[];
44
50
  readonly env: Readonly<Record<string, string>>;
45
51
  readonly pid: number;
@@ -157,6 +163,7 @@ export interface ContextOptions {
157
163
  strays?: JsStrays;
158
164
  thread: JsThreadContext;
159
165
  memory?: (() => JsMemory) | undefined;
166
+ asyncContext?: (() => JsAsyncContext) | undefined;
160
167
  fs?: {
161
168
  owners: boolean;
162
169
  links: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-kernel",
3
- "version": "1.142.2",
3
+ "version": "1.143.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",
@@ -68,9 +68,9 @@
68
68
  "@ai-ecoverse/slicc-scrub": "1.0.0",
69
69
  "@ai-ecoverse/slicc-shared-web": "1.29.10",
70
70
  "@ai-ecoverse/wasi-cargo": "0.99.0-5",
71
- "@ai-ecoverse/wasi-pnpm": "12.9.1-19",
71
+ "@ai-ecoverse/wasi-pnpm": "12.9.1-20",
72
72
  "@ai-ecoverse/wasi-ripgrep": "15.2.0-5",
73
- "@ai-ecoverse/wasi-rustc": "1.98.1-8",
73
+ "@ai-ecoverse/wasi-rustc": "1.98.1-9",
74
74
  "@ai-ecoverse/wasi-zig": "0.16.0-20",
75
75
  "@ai-ecoverse/wasix-python": "3.15.0-4",
76
76
  "@ai-ecoverse/wasm-bash": "5.3.0-22",