@askexenow/exe-os 0.9.224 → 0.9.226

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.
@@ -7,7 +7,9 @@ import {
7
7
  import {
8
8
  isMainModule
9
9
  } from "../chunk-6Y4B3QF6.js";
10
- import "../chunk-R5U7XKVJ.js";
10
+ import {
11
+ __require
12
+ } from "../chunk-R5U7XKVJ.js";
11
13
 
12
14
  // src/bin/update.ts
13
15
  import { execSync } from "child_process";
@@ -216,6 +218,16 @@ async function runUpdate(cliArgs) {
216
218
  console.log("Update skipped.");
217
219
  process.exit(0);
218
220
  }
221
+ const needsSudo = process.platform === "linux" && (() => {
222
+ try {
223
+ const { accessSync, constants } = __require("fs");
224
+ const globalDir = execSync("npm root -g", { encoding: "utf8" }).trim();
225
+ accessSync(globalDir, constants.W_OK);
226
+ return false;
227
+ } catch {
228
+ return true;
229
+ }
230
+ })();
219
231
  console.log("\n\u{1F4BE} Backing up customer data...");
220
232
  try {
221
233
  const backupResult = await createUpdateBackup(result.localVersion);
@@ -227,15 +239,17 @@ async function runUpdate(cliArgs) {
227
239
  }
228
240
  console.log("\u{1F9F9} Clearing npm cache...");
229
241
  try {
230
- execSync("npm cache clean --force", { stdio: "pipe" });
242
+ execSync(needsSudo ? "sudo npm cache clean --force" : "npm cache clean --force", { stdio: "pipe" });
231
243
  console.log(" Done");
232
244
  } catch {
233
245
  console.log(" Skipped (non-critical)");
234
246
  }
247
+ const npmCmd = needsSudo ? "sudo npm install -g @askexenow/exe-os@latest" : "npm install -g @askexenow/exe-os@latest";
235
248
  console.log("\u{1F4E5} Installing @askexenow/exe-os@latest...");
249
+ if (needsSudo) console.log(" (using sudo \u2014 global node_modules requires root)");
236
250
  console.log(" This may take a minute...\n");
237
251
  try {
238
- execSync("npm install -g @askexenow/exe-os@latest", {
252
+ execSync(npmCmd, {
239
253
  stdio: ["pipe", "pipe", "inherit"],
240
254
  timeout: 3e5
241
255
  });
@@ -317,9 +331,12 @@ async function runUpdate(cliArgs) {
317
331
  }
318
332
  try {
319
333
  console.log("\u{1FA7A} Checking AskExe support intake...");
334
+ const realHome = process.env.SUDO_USER ? execSync(`getent passwd ${process.env.SUDO_USER} | cut -d: -f6`, { encoding: "utf8" }).trim() : "";
335
+ const healthEnv = realHome ? { ...process.env, HOME: realHome, EXE_OS_DIR: `${realHome}/.exe-os` } : void 0;
320
336
  execSync("exe-os support health", {
321
337
  stdio: ["pipe", "inherit", "inherit"],
322
- timeout: 3e4
338
+ timeout: 3e4,
339
+ env: healthEnv
323
340
  });
324
341
  } catch {
325
342
  console.log(" \u26A0\uFE0F Support health check failed. Run: exe-os support test");
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-06-08T03:10:59.197Z",
3
+ "generatedAt": "2026-06-08T03:18:37.534Z",
4
4
  "hashes": {
5
5
  "bug-report-worker.js": "fcf35770553ef8afcb3e1b78ca64bda9c338d49ecbf6e649ad04a51429a157f6",
6
6
  "codex-stop-task-finalizer.js": "3248ef35e90e34d0d02ded5d556aaae9ce706e49353cd5a9390aebae0b7101fa",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.9.224",
3
+ "version": "0.9.226",
4
4
  "description": "AI employee operating system — persistent memory, task management, and multi-agent coordination for Claude Code.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "type": "module",