@ai-ecoverse/slicc-kernel 1.77.2 → 1.78.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.
- package/README.md +11 -9
- package/dist/driver-worker.js +73 -4
- package/dist/driver-worker.js.map +3 -3
- package/dist/index.js +104 -14
- package/dist/index.js.map +4 -4
- package/dist/kernel-worker.js +19 -6
- package/dist/kernel-worker.js.map +3 -3
- package/dist/node-driver-worker.js +73 -4
- package/dist/node-driver-worker.js.map +3 -3
- package/dist/node-process-worker.js.map +2 -2
- package/dist/node.js +56 -15
- package/dist/node.js.map +3 -3
- package/dist/process-worker.js.map +2 -2
- package/package.json +1 -1
package/dist/node.js
CHANGED
|
@@ -93,6 +93,7 @@ function portCdpHook(ask, gone) {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
// src/fs/types.ts
|
|
96
|
+
var DEFAULT_USERS = "enforce";
|
|
96
97
|
function rangedOps(fs) {
|
|
97
98
|
const { pread, pwrite, truncate } = fs;
|
|
98
99
|
if (!pread || !pwrite || !truncate) return void 0;
|
|
@@ -1684,6 +1685,18 @@ function isSignal(sig) {
|
|
|
1684
1685
|
function sigbit(sig) {
|
|
1685
1686
|
return 1 << sig;
|
|
1686
1687
|
}
|
|
1688
|
+
function signalName(sig) {
|
|
1689
|
+
const name2 = Object.entries(SIG).find(([, n]) => n === sig)?.[0];
|
|
1690
|
+
return name2 === void 0 ? void 0 : `SIG${name2}`;
|
|
1691
|
+
}
|
|
1692
|
+
function quiet(p) {
|
|
1693
|
+
p.catch(() => void 0);
|
|
1694
|
+
return p;
|
|
1695
|
+
}
|
|
1696
|
+
function signalField(sig) {
|
|
1697
|
+
const name2 = signalName(sig);
|
|
1698
|
+
return name2 ? { signal: name2 } : {};
|
|
1699
|
+
}
|
|
1687
1700
|
var SIGNAL_BY_NAME = {
|
|
1688
1701
|
SIGINT: SIG.INT,
|
|
1689
1702
|
SIGTERM: SIG.TERM,
|
|
@@ -2782,7 +2795,8 @@ function serveClient(port, host) {
|
|
|
2782
2795
|
reply(req.id, { started: session.pid });
|
|
2783
2796
|
}
|
|
2784
2797
|
try {
|
|
2785
|
-
|
|
2798
|
+
const status = await session.exited;
|
|
2799
|
+
return { result: status, ...signalField(session.termsig()) };
|
|
2786
2800
|
} finally {
|
|
2787
2801
|
terminals.delete(req.id);
|
|
2788
2802
|
}
|
|
@@ -2807,7 +2821,7 @@ function serveClient(port, host) {
|
|
|
2807
2821
|
});
|
|
2808
2822
|
if (leader === void 0) throw fsError("ENOENT", `${req.argv[0] ?? ""}: command not found`);
|
|
2809
2823
|
if (!l.list().some((p) => p.pgid === leader)) groups.delete(leader);
|
|
2810
|
-
return { result: result.status };
|
|
2824
|
+
return { result: result.status, ...signalField(result.signal) };
|
|
2811
2825
|
}
|
|
2812
2826
|
async function handle(req) {
|
|
2813
2827
|
if (host.scope === "transport" && req.op !== "detach") {
|
|
@@ -2868,8 +2882,8 @@ function serveClient(port, host) {
|
|
|
2868
2882
|
}
|
|
2869
2883
|
const req = data;
|
|
2870
2884
|
handle(req).then(
|
|
2871
|
-
({ result, transfer }) => {
|
|
2872
|
-
reply(req.id, { result }, transfer);
|
|
2885
|
+
({ result, signal, transfer }) => {
|
|
2886
|
+
reply(req.id, { result, ...signal ? { signal } : {} }, transfer);
|
|
2873
2887
|
if (req.op === "detach") detach(req.kill === true);
|
|
2874
2888
|
},
|
|
2875
2889
|
(err) => {
|
|
@@ -14861,22 +14875,22 @@ function keepWatching(loop, signal) {
|
|
|
14861
14875
|
const stop = () => session2.abort();
|
|
14862
14876
|
signal.addEventListener("abort", stop);
|
|
14863
14877
|
let timer;
|
|
14864
|
-
const
|
|
14878
|
+
const quiet2 = () => {
|
|
14865
14879
|
clearTimeout(timer);
|
|
14866
14880
|
timer = setTimeout(stop, silenceMs);
|
|
14867
14881
|
};
|
|
14868
14882
|
let opened2 = false;
|
|
14869
14883
|
try {
|
|
14870
14884
|
const client = await loop.connect();
|
|
14871
|
-
|
|
14885
|
+
quiet2();
|
|
14872
14886
|
await client.watch(
|
|
14873
14887
|
session2.signal,
|
|
14874
14888
|
(event) => {
|
|
14875
|
-
|
|
14889
|
+
quiet2();
|
|
14876
14890
|
if (!event.ping) loop.event(event);
|
|
14877
14891
|
},
|
|
14878
14892
|
() => {
|
|
14879
|
-
|
|
14893
|
+
quiet2();
|
|
14880
14894
|
opened2 = true;
|
|
14881
14895
|
up = true;
|
|
14882
14896
|
loop.up(client);
|
|
@@ -17558,6 +17572,7 @@ var Launcher = class {
|
|
|
17558
17572
|
return {
|
|
17559
17573
|
pid: handle.pid,
|
|
17560
17574
|
exited: handle.exited,
|
|
17575
|
+
termsig: () => handle.termsig(),
|
|
17561
17576
|
write: (bytes) => tty.receive(bytes),
|
|
17562
17577
|
resize: (cols, rows) => tty.resize(cols, rows),
|
|
17563
17578
|
signal: (sig) => this.jobs.signalForeground(tty, leader, sig),
|
|
@@ -17602,7 +17617,8 @@ var Launcher = class {
|
|
|
17602
17617
|
});
|
|
17603
17618
|
options.onStarted?.(handle.pid);
|
|
17604
17619
|
const status = await handle.exited;
|
|
17605
|
-
|
|
17620
|
+
const signal = handle.termsig();
|
|
17621
|
+
return { status, ...signal ? { signal } : {}, stdout: concat5(out), stderr: concat5(err) };
|
|
17606
17622
|
}
|
|
17607
17623
|
};
|
|
17608
17624
|
|
|
@@ -18411,6 +18427,7 @@ var Channel = class {
|
|
|
18411
18427
|
return;
|
|
18412
18428
|
}
|
|
18413
18429
|
this.pending.delete(reply.id);
|
|
18430
|
+
call.ended?.(reply.signal);
|
|
18414
18431
|
if (reply.error !== void 0) call.reject(new KernelCallError(reply.error, reply.code));
|
|
18415
18432
|
else call.resolve(reply.result);
|
|
18416
18433
|
}
|
|
@@ -18459,12 +18476,14 @@ async function spawnOn(channel, argv, opts) {
|
|
|
18459
18476
|
if (opts.user !== void 0) await since(channel, 8, "spawn as a user", async () => {
|
|
18460
18477
|
});
|
|
18461
18478
|
const started = Promise.withResolvers();
|
|
18479
|
+
let endedBy;
|
|
18462
18480
|
const options = { ...rest2, ...stdin !== void 0 ? { stdin: bytesOf2(stdin) } : {} };
|
|
18463
18481
|
const { done: done4 } = channel.request(
|
|
18464
18482
|
{ op: "spawn", argv, options },
|
|
18465
18483
|
{
|
|
18466
18484
|
output: (fd, bytes) => (fd === 1 ? onStdout : onStderr)?.(bytes),
|
|
18467
|
-
started: started.resolve
|
|
18485
|
+
started: started.resolve,
|
|
18486
|
+
ended: (signal) => endedBy = signal
|
|
18468
18487
|
}
|
|
18469
18488
|
);
|
|
18470
18489
|
done4.catch(started.reject);
|
|
@@ -18474,9 +18493,18 @@ async function spawnOn(channel, argv, opts) {
|
|
|
18474
18493
|
pid,
|
|
18475
18494
|
pgid,
|
|
18476
18495
|
exited: done4,
|
|
18496
|
+
ended: endedOf(done4, () => endedBy),
|
|
18477
18497
|
signal: async (name2 = "SIGTERM") => void await channel.call({ op: "kill", pid: -pgid, signal: name2 })
|
|
18478
18498
|
};
|
|
18479
18499
|
}
|
|
18500
|
+
function endedOf(done4, signal) {
|
|
18501
|
+
return quiet(
|
|
18502
|
+
done4.then((status) => {
|
|
18503
|
+
const by = signal();
|
|
18504
|
+
return { status, ...by ? { signal: by } : {} };
|
|
18505
|
+
})
|
|
18506
|
+
);
|
|
18507
|
+
}
|
|
18480
18508
|
async function runOn(channel, argv, opts) {
|
|
18481
18509
|
const { onStdout, onStderr, ...rest2 } = opts;
|
|
18482
18510
|
const chunks2 = { 1: [], 2: [] };
|
|
@@ -18490,9 +18518,15 @@ async function runOn(channel, argv, opts) {
|
|
|
18490
18518
|
onStdout: tee(1, onStdout),
|
|
18491
18519
|
onStderr: tee(2, onStderr)
|
|
18492
18520
|
});
|
|
18493
|
-
const status = await child.
|
|
18521
|
+
const { status, signal } = await child.ended;
|
|
18494
18522
|
const text = (fd) => new TextDecoder().decode(concat6(chunks2[fd]));
|
|
18495
|
-
return {
|
|
18523
|
+
return {
|
|
18524
|
+
pid: child.pid,
|
|
18525
|
+
status,
|
|
18526
|
+
...signal ? { signal } : {},
|
|
18527
|
+
stdout: text(1),
|
|
18528
|
+
stderr: text(2)
|
|
18529
|
+
};
|
|
18496
18530
|
}
|
|
18497
18531
|
async function terminalOn(channel, argv, opts) {
|
|
18498
18532
|
const { onData, ...options } = opts;
|
|
@@ -18501,11 +18535,13 @@ async function terminalOn(channel, argv, opts) {
|
|
|
18501
18535
|
let listener = onData ?? null;
|
|
18502
18536
|
const backlog = [];
|
|
18503
18537
|
const started = Promise.withResolvers();
|
|
18538
|
+
let endedBy;
|
|
18504
18539
|
const { id: id2, done: done4 } = channel.request(
|
|
18505
18540
|
{ op: "open-terminal", argv, options },
|
|
18506
18541
|
{
|
|
18507
18542
|
output: (_fd, bytes) => listener ? listener(bytes) : backlog.push(bytes),
|
|
18508
|
-
started: started.resolve
|
|
18543
|
+
started: started.resolve,
|
|
18544
|
+
ended: (signal) => endedBy = signal
|
|
18509
18545
|
}
|
|
18510
18546
|
);
|
|
18511
18547
|
done4.catch(started.reject);
|
|
@@ -18514,6 +18550,7 @@ async function terminalOn(channel, argv, opts) {
|
|
|
18514
18550
|
return {
|
|
18515
18551
|
pid,
|
|
18516
18552
|
exited: done4,
|
|
18553
|
+
ended: endedOf(done4, () => endedBy),
|
|
18517
18554
|
get onData() {
|
|
18518
18555
|
return listener;
|
|
18519
18556
|
},
|
|
@@ -18749,7 +18786,7 @@ async function createNodeKernel(options = {}) {
|
|
|
18749
18786
|
...hostfsFetchOf(options),
|
|
18750
18787
|
...options.cdp ? { cdp: options.cdp } : {},
|
|
18751
18788
|
...options.hostname !== void 0 ? { hostname: options.hostname } : {},
|
|
18752
|
-
|
|
18789
|
+
users: options.users === void 0 ? DEFAULT_USERS : options.users,
|
|
18753
18790
|
...options.onDenial ? { onDenial: options.onDenial } : {},
|
|
18754
18791
|
...options.protect ? { protect: options.protect } : {},
|
|
18755
18792
|
...options.sealed ? { sealed: options.sealed } : {},
|
|
@@ -18779,6 +18816,7 @@ async function createNodeKernel(options = {}) {
|
|
|
18779
18816
|
);
|
|
18780
18817
|
return {
|
|
18781
18818
|
status: result.status,
|
|
18819
|
+
...signalField(result.signal),
|
|
18782
18820
|
stdout: decoder4.decode(result.stdout),
|
|
18783
18821
|
stderr: decoder4.decode(result.stderr)
|
|
18784
18822
|
};
|
|
@@ -18795,7 +18833,10 @@ async function createNodeKernel(options = {}) {
|
|
|
18795
18833
|
);
|
|
18796
18834
|
return {
|
|
18797
18835
|
pid: session.pid,
|
|
18798
|
-
exited: guard2(() => session.exited),
|
|
18836
|
+
exited: quiet(guard2(() => session.exited)),
|
|
18837
|
+
ended: quiet(
|
|
18838
|
+
guard2(async () => ({ status: await session.exited, ...signalField(session.termsig()) }))
|
|
18839
|
+
),
|
|
18799
18840
|
get onData() {
|
|
18800
18841
|
return listener;
|
|
18801
18842
|
},
|