@ai-ecoverse/slicc-kernel 1.77.1 → 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.
@@ -960,6 +960,7 @@ var OpfsFs = class {
960
960
  }
961
961
  }
962
962
  async current(path, dir) {
963
+ if (dir === this.root) return path === "/";
963
964
  if (performance.now() - (this.checked.get(dir) ?? -CHECK_MS) < CHECK_MS) return true;
964
965
  const where = await this.root.resolve(dir).catch(() => null);
965
966
  if (where === null || `/${where.join("/")}` !== path) return false;
@@ -3264,6 +3265,14 @@ function isSignal(sig) {
3264
3265
  function sigbit(sig) {
3265
3266
  return 1 << sig;
3266
3267
  }
3268
+ function signalName(sig) {
3269
+ const name2 = Object.entries(SIG).find(([, n]) => n === sig)?.[0];
3270
+ return name2 === void 0 ? void 0 : `SIG${name2}`;
3271
+ }
3272
+ function signalField(sig) {
3273
+ const name2 = signalName(sig);
3274
+ return name2 ? { signal: name2 } : {};
3275
+ }
3267
3276
  var SIGNAL_BY_NAME = {
3268
3277
  SIGINT: SIG.INT,
3269
3278
  SIGTERM: SIG.TERM,
@@ -4150,7 +4159,8 @@ function serveClient(port, host) {
4150
4159
  reply(req.id, { started: session.pid });
4151
4160
  }
4152
4161
  try {
4153
- return { result: await session.exited };
4162
+ const status = await session.exited;
4163
+ return { result: status, ...signalField(session.termsig()) };
4154
4164
  } finally {
4155
4165
  terminals.delete(req.id);
4156
4166
  }
@@ -4175,7 +4185,7 @@ function serveClient(port, host) {
4175
4185
  });
4176
4186
  if (leader === void 0) throw fsError("ENOENT", `${req.argv[0] ?? ""}: command not found`);
4177
4187
  if (!l.list().some((p) => p.pgid === leader)) groups.delete(leader);
4178
- return { result: result.status };
4188
+ return { result: result.status, ...signalField(result.signal) };
4179
4189
  }
4180
4190
  async function handle(req) {
4181
4191
  if (host.scope === "transport" && req.op !== "detach") {
@@ -4236,8 +4246,8 @@ function serveClient(port, host) {
4236
4246
  }
4237
4247
  const req = data;
4238
4248
  handle(req).then(
4239
- ({ result, transfer }) => {
4240
- reply(req.id, { result }, transfer);
4249
+ ({ result, signal, transfer }) => {
4250
+ reply(req.id, { result, ...signal ? { signal } : {} }, transfer);
4241
4251
  if (req.op === "detach") detach(req.kill === true);
4242
4252
  },
4243
4253
  (err) => {
@@ -17720,6 +17730,7 @@ var Launcher = class {
17720
17730
  return {
17721
17731
  pid: handle.pid,
17722
17732
  exited: handle.exited,
17733
+ termsig: () => handle.termsig(),
17723
17734
  write: (bytes) => tty.receive(bytes),
17724
17735
  resize: (cols, rows) => tty.resize(cols, rows),
17725
17736
  signal: (sig) => this.jobs.signalForeground(tty, leader, sig),
@@ -17764,7 +17775,8 @@ var Launcher = class {
17764
17775
  });
17765
17776
  options.onStarted?.(handle.pid);
17766
17777
  const status = await handle.exited;
17767
- return { status, stdout: concat5(out), stderr: concat5(err) };
17778
+ const signal = handle.termsig();
17779
+ return { status, ...signal ? { signal } : {}, stdout: concat5(out), stderr: concat5(err) };
17768
17780
  }
17769
17781
  };
17770
17782
 
@@ -18013,7 +18025,9 @@ function serveKernel(port, deps) {
18013
18025
  terminals.set(req.id, session);
18014
18026
  reply(req.id, { started: session.pid });
18015
18027
  try {
18016
- return await session.exited;
18028
+ const status = await session.exited;
18029
+ const signal = session.termsig();
18030
+ return signal ? { status, signal } : status;
18017
18031
  } finally {
18018
18032
  terminals.delete(req.id);
18019
18033
  }