@ai-ecoverse/slicc-kernel 1.173.2 → 1.173.3

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.
@@ -8740,7 +8740,7 @@ function satisfies(version, range2) {
8740
8740
  }
8741
8741
 
8742
8742
  // src/version.ts
8743
- var KERNEL_VERSION = true ? "1.173.2" : "0.0.0-dev";
8743
+ var KERNEL_VERSION = true ? "1.173.3" : "0.0.0-dev";
8744
8744
  var OS_RELEASE = "6.0.0-slicc";
8745
8745
  function procVersion() {
8746
8746
  return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
@@ -31751,6 +31751,9 @@ var TERM = /^[A-Za-z0-9._+-]+$/;
31751
31751
  var PLAIN3 = /^[A-Za-z0-9_@%+=:,./-]+$/;
31752
31752
  var CONTROL = /[\0-\x1f\x7f]/;
31753
31753
  var USAGE = "usage: sudo [-n] [-u user] [--] command [args...]\n sudo -l";
31754
+ var DENIED2 = "sudo: approval denied";
31755
+ var DENIAL_MAX = 500;
31756
+ var ABORTED = /* @__PURE__ */ Symbol("aborted");
31754
31757
  function hasControl(text) {
31755
31758
  return CONTROL.test(text);
31756
31759
  }
@@ -31766,6 +31769,46 @@ function withoutControl(text) {
31766
31769
  function failed3(errno3, error) {
31767
31770
  return { error, errno: errno3 };
31768
31771
  }
31772
+ function denialText(answer2) {
31773
+ try {
31774
+ if (typeof answer2 !== "object" || answer2 === null) return DENIED2;
31775
+ const { answer: kind, message: message3 } = answer2;
31776
+ if (kind !== "deny" || typeof message3 !== "string") return DENIED2;
31777
+ const chars = [
31778
+ ...message3.replace(/[\t\n\v\f\r\u0085\u2028\u2029]+/g, " ").replace(/\p{Cc}/gu, "").trimEnd()
31779
+ ];
31780
+ const text = chars.length > DENIAL_MAX ? `${chars.slice(0, DENIAL_MAX - 1).join("")}\u2026` : chars.join("");
31781
+ return text.startsWith("sudo: ") && text.slice(6).trim() !== "" ? text : DENIED2;
31782
+ } catch {
31783
+ return DENIED2;
31784
+ }
31785
+ }
31786
+ async function answerOf2(approve, req, signal) {
31787
+ let reply;
31788
+ let cut;
31789
+ const snapshot = () => reply === void 0 ? Promise.resolve(ABORTED) : Promise.race([reply, Promise.resolve(ABORTED)]).catch(() => "deny");
31790
+ const aborted3 = new Promise(
31791
+ (resolve2) => signal.addEventListener(
31792
+ "abort",
31793
+ () => {
31794
+ cut = snapshot();
31795
+ resolve2();
31796
+ },
31797
+ { once: true }
31798
+ )
31799
+ );
31800
+ try {
31801
+ reply = Promise.resolve(approve(req, { signal }));
31802
+ } catch {
31803
+ reply = Promise.resolve("deny");
31804
+ }
31805
+ try {
31806
+ const answer2 = await Promise.race([reply, aborted3]);
31807
+ return cut === void 0 ? answer2 : await cut;
31808
+ } catch {
31809
+ return cut === void 0 ? "deny" : await cut;
31810
+ }
31811
+ }
31769
31812
  function unescaped(double) {
31770
31813
  return double.replace(/\\(["\\$`])/g, "$1");
31771
31814
  }
@@ -32156,7 +32199,7 @@ ${lines2}
32156
32199
  }
32157
32200
  async ask(caller, self, target, argv, path, cwd, requester) {
32158
32201
  const { approve } = this.o;
32159
- if (!approve || requester.aborted) return failed3("EACCES", "sudo: approval denied");
32202
+ if (!approve || requester.aborted) return failed3("EACCES", DENIED2);
32160
32203
  const createdAt = Date.now();
32161
32204
  const timeout = this.o.timeoutMs ?? SUDO_TIMEOUT_MS;
32162
32205
  const req = {
@@ -32179,16 +32222,14 @@ ${lines2}
32179
32222
  const timer = setTimeout(() => control.abort("expired"), timeout);
32180
32223
  const withdraw = () => control.abort("withdrawn");
32181
32224
  requester.addEventListener("abort", withdraw, { once: true });
32182
- const aborted3 = new Promise(
32183
- (resolve2) => control.signal.addEventListener("abort", () => resolve2("aborted"), { once: true })
32184
- );
32225
+ const ended = () => control.signal.reason === "expired" ? failed3("ETIMEDOUT", "sudo: the request expired") : failed3("EINTR", "sudo: the request was withdrawn");
32185
32226
  try {
32186
- const answered2 = Promise.resolve().then(() => approve(req, { signal: control.signal })).catch(() => "deny");
32187
- const answer2 = await Promise.race([answered2, aborted3]);
32188
- if (answer2 === "aborted" || control.signal.aborted) {
32189
- return control.signal.reason === "expired" ? failed3("ETIMEDOUT", "sudo: the request expired") : failed3("EINTR", "sudo: the request was withdrawn");
32227
+ const answer2 = await answerOf2(approve, req, control.signal);
32228
+ if (answer2 === ABORTED) return ended();
32229
+ if (answer2 === "once" || answer2 === "always") {
32230
+ return control.signal.aborted ? ended() : answer2;
32190
32231
  }
32191
- return answer2 === "once" || answer2 === "always" ? answer2 : failed3("EACCES", "sudo: approval denied");
32232
+ return failed3("EACCES", denialText(answer2));
32192
32233
  } finally {
32193
32234
  clearTimeout(timer);
32194
32235
  requester.removeEventListener("abort", withdraw);