@ai-ecoverse/slicc-kernel 1.160.0 → 1.160.2
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.
- package/README.md +4 -3
- package/dist/kernel-worker.js +33 -7
- package/dist/kernel-worker.js.map +3 -3
- package/dist/node-driver-worker.js +8 -0
- package/dist/node-driver-worker.js.map +2 -2
- package/dist/node-process-worker.js +51 -22
- package/dist/node-process-worker.js.map +2 -2
- package/dist/node.js +41 -7
- package/dist/node.js.map +3 -3
- package/dist/process-worker.js +38 -22
- package/dist/process-worker.js.map +2 -2
- package/dist/types/kernel/protocol.d.ts +1 -0
- package/dist/types/launcher.d.ts +1 -0
- package/dist/types/node.d.ts +5 -0
- package/dist/types/process/js/js-kernel.d.ts +3 -0
- package/dist/types/realm/sync-fs-wire.d.ts +2 -0
- package/package.json +2 -2
package/dist/node.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// src/node.ts
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
2
3
|
import { isAbsolute } from "node:path";
|
|
3
4
|
import { MessageChannel as MessageChannel2, Worker } from "node:worker_threads";
|
|
4
5
|
|
|
@@ -3672,7 +3673,7 @@ function satisfies(version, range2) {
|
|
|
3672
3673
|
}
|
|
3673
3674
|
|
|
3674
3675
|
// src/version.ts
|
|
3675
|
-
var KERNEL_VERSION = true ? "1.160.
|
|
3676
|
+
var KERNEL_VERSION = true ? "1.160.2" : "0.0.0-dev";
|
|
3676
3677
|
var OS_RELEASE = "6.0.0-slicc";
|
|
3677
3678
|
function procVersion() {
|
|
3678
3679
|
return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
|
|
@@ -10968,7 +10969,8 @@ async function dispatchSyncFs(req) {
|
|
|
10968
10969
|
const entry = resolveSyncFsToken(req.token);
|
|
10969
10970
|
if (!entry) return { ok: false, errno: "EACCES", message: "sync-fs: unknown or revoked token" };
|
|
10970
10971
|
if (req.identity && req.op === "create") return created(entry, req);
|
|
10971
|
-
if (!req.identity || !IDENTITY_OPS.has(req.op))
|
|
10972
|
+
if (!req.identity || !IDENTITY_OPS.has(req.op))
|
|
10973
|
+
return devsOf(entry, req, await dispatchOne(entry, req));
|
|
10972
10974
|
const { fs, cwd } = entry;
|
|
10973
10975
|
const path = fs.resolvePath(cwd, req.path);
|
|
10974
10976
|
const identified = async (held) => {
|
|
@@ -10986,6 +10988,30 @@ async function dispatchSyncFs(req) {
|
|
|
10986
10988
|
return toErrno(err);
|
|
10987
10989
|
}
|
|
10988
10990
|
}
|
|
10991
|
+
var DEV_PROBES = /* @__PURE__ */ new Set(["stat", "lstat", "read", "exists"]);
|
|
10992
|
+
async function devsOf(entry, req, result) {
|
|
10993
|
+
if (req.devs !== true || !DEV_PROBES.has(req.op)) return result;
|
|
10994
|
+
const absent2 = result.ok ? result.kind === "json" && result.json === false : result.errno === "ENOENT";
|
|
10995
|
+
if (!absent2) return result;
|
|
10996
|
+
const dev = await devTarget(entry, req, entry.fs.resolvePath(entry.cwd, req.path));
|
|
10997
|
+
if (dev === void 0) return result;
|
|
10998
|
+
return result.ok ? json2({ dev }) : { ...result, dev };
|
|
10999
|
+
}
|
|
11000
|
+
async function devTarget(entry, req, path) {
|
|
11001
|
+
const look = async (op, at) => {
|
|
11002
|
+
const r = await dispatchPath(entry, { token: req.token, op, path: at });
|
|
11003
|
+
if (!r.ok) throw new Error(r.errno);
|
|
11004
|
+
return r.json;
|
|
11005
|
+
};
|
|
11006
|
+
const resolved2 = await physicalPathAsync(
|
|
11007
|
+
{
|
|
11008
|
+
lstat: async (p) => await look("lstat", p),
|
|
11009
|
+
readlink: async (p) => String(await look("readlink", p))
|
|
11010
|
+
},
|
|
11011
|
+
path
|
|
11012
|
+
);
|
|
11013
|
+
return resolved2 !== path && (resolved2 === "/dev" || resolved2.startsWith("/dev/")) ? resolved2 : void 0;
|
|
11014
|
+
}
|
|
10989
11015
|
async function created(entry, req) {
|
|
10990
11016
|
const result = await dispatchOne(entry, req);
|
|
10991
11017
|
if (!result.ok) return result;
|
|
@@ -11172,7 +11198,8 @@ function encodeSabResult(result) {
|
|
|
11172
11198
|
JSON.stringify({
|
|
11173
11199
|
errno: result.errno,
|
|
11174
11200
|
message: result.message,
|
|
11175
|
-
...result.direct ? { direct: true } : {}
|
|
11201
|
+
...result.direct ? { direct: true } : {},
|
|
11202
|
+
...result.dev !== void 0 ? { dev: result.dev } : {}
|
|
11176
11203
|
})
|
|
11177
11204
|
)
|
|
11178
11205
|
};
|
|
@@ -30900,7 +30927,7 @@ var Launcher = class {
|
|
|
30900
30927
|
this.moduleUrls.delete(source);
|
|
30901
30928
|
this.moduleUrls.set(source, known);
|
|
30902
30929
|
known.users++;
|
|
30903
|
-
return known.made
|
|
30930
|
+
return known.made;
|
|
30904
30931
|
}
|
|
30905
30932
|
const held = {
|
|
30906
30933
|
made: (this.moduleUrl ?? dataModuleUrl)(source),
|
|
@@ -30915,7 +30942,7 @@ var Launcher = class {
|
|
|
30915
30942
|
entry.evicted = true;
|
|
30916
30943
|
this.releaseUrl(entry);
|
|
30917
30944
|
}
|
|
30918
|
-
return held.made
|
|
30945
|
+
return held.made;
|
|
30919
30946
|
}
|
|
30920
30947
|
heldUrl(program) {
|
|
30921
30948
|
const held = program.abi === "js" && program.url ? this.urlsInUse.get(program.url) : void 0;
|
|
@@ -30996,8 +31023,8 @@ var Launcher = class {
|
|
|
30996
31023
|
}
|
|
30997
31024
|
const { asked } = target;
|
|
30998
31025
|
if (target.abi === "js") {
|
|
30999
|
-
const url = this.urlFor(await this.text(target.wasm, caller, asked));
|
|
31000
|
-
return { abi: "js", glue: "", url, path: target.wasm };
|
|
31026
|
+
const { url, source } = this.urlFor(await this.text(target.wasm, caller, asked));
|
|
31027
|
+
return { abi: "js", glue: "", url, path: target.wasm, ...source ? { source } : {} };
|
|
31001
31028
|
}
|
|
31002
31029
|
if (target.abi !== "wasi") {
|
|
31003
31030
|
const [glue, { module: module2 }] = await Promise.all([
|
|
@@ -34775,6 +34802,11 @@ function sparesOf(options) {
|
|
|
34775
34802
|
function processWorker(file, workerData) {
|
|
34776
34803
|
return new Worker(file, { env: workerEnv(), ...workerData ? { workerData } : {} });
|
|
34777
34804
|
}
|
|
34805
|
+
function sourceModule(source) {
|
|
34806
|
+
const url = `slicc-module:${createHash("sha256").update(source).digest("hex")}`;
|
|
34807
|
+
return { url, source, revoke: () => {
|
|
34808
|
+
} };
|
|
34809
|
+
}
|
|
34778
34810
|
function warmPoolOf(options, file, workerData, live) {
|
|
34779
34811
|
const size = sparesOf(options);
|
|
34780
34812
|
if (size === 0) return void 0;
|
|
@@ -34892,6 +34924,7 @@ async function createNodeKernel(options = {}) {
|
|
|
34892
34924
|
const transport = options.network?.transport;
|
|
34893
34925
|
const launcher = new Launcher({
|
|
34894
34926
|
fs,
|
|
34927
|
+
moduleUrl: sourceModule,
|
|
34895
34928
|
unlinkOwner: pidOwner(process),
|
|
34896
34929
|
createWorker: () => nodeWorker(file, live, terminated, workerData, warm ? () => warm.take() : void 0),
|
|
34897
34930
|
createDriverWorker: () => nodeWorker(
|
|
@@ -35038,6 +35071,7 @@ export {
|
|
|
35038
35071
|
memoryRoot,
|
|
35039
35072
|
nodeTransport,
|
|
35040
35073
|
serveHostfsPort,
|
|
35074
|
+
sourceModule,
|
|
35041
35075
|
sparesOf,
|
|
35042
35076
|
warmPool
|
|
35043
35077
|
};
|