@djolex999/vir-cli 0.3.1 → 0.3.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.
@@ -2,7 +2,7 @@ import { realpathSync } from "node:fs";
2
2
  import * as cron from "./cron.js";
3
3
  import * as launchd from "./launchd.js";
4
4
  import * as systemd from "./systemd.js";
5
- import { SystemdNotAvailableError } from "./systemd.js";
5
+ import { SystemdNotAvailableError, SystemdUserBusUnavailableError, } from "./systemd.js";
6
6
  const NONE = {
7
7
  installed: false,
8
8
  active: false,
@@ -35,23 +35,30 @@ export async function install(cfg) {
35
35
  }
36
36
  if (platform === "linux") {
37
37
  const opts = { ...resolvePaths(), cadenceHours: cfg.cadenceHours };
38
- // systemd preferred; it throws SystemdNotAvailableError when systemctl is
39
- // missing so we can fall back to cron without pre-probing.
38
+ // systemd preferred. Fall back to cron when systemctl is missing
39
+ // (SystemdNotAvailableError) OR present-but-no-user-bus
40
+ // (SystemdUserBusUnavailableError — common on WSL/containers). Any other
41
+ // error is a real misconfig and propagates.
40
42
  try {
41
43
  systemd.install(opts);
42
44
  return;
43
45
  }
44
46
  catch (err) {
45
- if (!(err instanceof SystemdNotAvailableError))
47
+ if (!(err instanceof SystemdNotAvailableError) &&
48
+ !(err instanceof SystemdUserBusUnavailableError)) {
46
49
  throw err;
50
+ }
47
51
  }
48
52
  if (cron.isCronAvailable()) {
49
53
  cron.install(opts);
50
54
  return;
51
55
  }
52
- throw new Error("Neither systemd nor cron found. Install one to use vir schedule.\n" +
53
- " Ubuntu/Debian: sudo apt install cron\n" +
54
- " Arch: sudo pacman -S cronie");
56
+ throw new Error("No daemon backend available.\n" +
57
+ " - systemd user bus not reachable (common on WSL, containers)\n" +
58
+ " - cron command not found\n" +
59
+ " Install one to use vir schedule:\n" +
60
+ " Ubuntu/Debian/WSL: sudo apt install cron\n" +
61
+ " Arch: sudo pacman -S cronie");
55
62
  }
56
63
  throwUnsupported(platform);
57
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,24 @@ export class SystemdNotAvailableError extends Error {
10
10
  this.name = "SystemdNotAvailableError";
11
11
  }
12
12
  }
13
+ // Thrown when systemctl is on PATH but the user bus/manager is unreachable —
14
+ // the classic WSL/container case. Distinct from SystemdNotAvailableError so the
15
+ // router can fall back to cron for both. install() probes for this BEFORE
16
+ // writing any unit files.
17
+ export class SystemdUserBusUnavailableError extends Error {
18
+ constructor() {
19
+ super("systemd user bus not reachable");
20
+ this.name = "SystemdUserBusUnavailableError";
21
+ }
22
+ }
23
+ // Decides, from a `systemctl --user …` result, whether the failure is the user
24
+ // bus being unreachable. The definitive marker is systemctl's "Failed to
25
+ // connect to … bus" message (WSL, containers, no $XDG_RUNTIME_DIR). A non-zero
26
+ // exit *without* that marker (e.g. stdout "degraded") means the bus IS
27
+ // reachable, so we don't treat it as unavailable.
28
+ export function isUserBusUnavailable(probe) {
29
+ return /Failed to connect to .*bus/i.test(`${probe.stdout}\n${probe.stderr}`);
30
+ }
13
31
  // User mode only — never touch /etc/systemd/system.
14
32
  const SYSTEMD_USER_DIR = join(homedir(), ".config", "systemd", "user");
15
33
  const SERVICE_PATH = join(SYSTEMD_USER_DIR, "vir.service");
@@ -55,31 +73,54 @@ export function parseTimerCadence(timer) {
55
73
  const m = timer.match(/OnUnitActiveSec=(\d+)h/);
56
74
  return m && m[1] ? Number(m[1]) : null;
57
75
  }
76
+ // Turn a failed systemctl result into a typed error: a bus-connection failure
77
+ // becomes SystemdUserBusUnavailableError (so the router falls back to cron),
78
+ // anything else stays a generic Error (a real misconfig the user should see).
79
+ function classifySystemctlError(op, res) {
80
+ if (isUserBusUnavailable(res))
81
+ return new SystemdUserBusUnavailableError();
82
+ return new Error(`systemctl ${op} failed: ${res.stderr.trim()}`);
83
+ }
84
+ function removeUnitFiles() {
85
+ if (existsSync(SERVICE_PATH))
86
+ rmSync(SERVICE_PATH);
87
+ if (existsSync(TIMER_PATH))
88
+ rmSync(TIMER_PATH);
89
+ }
58
90
  export function install(opts) {
59
91
  if (!isSystemdAvailable())
60
92
  throw new SystemdNotAvailableError();
93
+ // systemctl can be on PATH while the user bus is unreachable (WSL,
94
+ // containers). Probe before writing anything so we never leave stale unit
95
+ // files behind in that case.
96
+ const probe = systemctl(["--user", "is-system-running"]);
97
+ if (isUserBusUnavailable(probe))
98
+ throw new SystemdUserBusUnavailableError();
61
99
  if (!existsSync(SYSTEMD_USER_DIR)) {
62
100
  mkdirSync(SYSTEMD_USER_DIR, { recursive: true });
63
101
  }
64
- writeFileSync(SERVICE_PATH, renderService({ nodePath: opts.nodePath, cliPath: opts.cliPath }));
65
- writeFileSync(TIMER_PATH, renderTimer(opts.cadenceHours));
66
- const reload = systemctl(["--user", "daemon-reload"]);
67
- if (reload.code !== 0) {
68
- throw new Error(`systemctl daemon-reload failed: ${reload.stderr.trim()}`);
102
+ try {
103
+ writeFileSync(SERVICE_PATH, renderService({ nodePath: opts.nodePath, cliPath: opts.cliPath }));
104
+ writeFileSync(TIMER_PATH, renderTimer(opts.cadenceHours));
105
+ const reload = systemctl(["--user", "daemon-reload"]);
106
+ if (reload.code !== 0)
107
+ throw classifySystemctlError("daemon-reload", reload);
108
+ const enable = systemctl(["--user", "enable", "--now", TIMER_UNIT]);
109
+ if (enable.code !== 0)
110
+ throw classifySystemctlError("enable", enable);
69
111
  }
70
- const enable = systemctl(["--user", "enable", "--now", TIMER_UNIT]);
71
- if (enable.code !== 0) {
72
- throw new Error(`systemctl enable failed: ${enable.stderr.trim()}`);
112
+ catch (err) {
113
+ // Partial install — remove the unit files we wrote so a retry (or the cron
114
+ // fallback) starts clean — then re-throw for the router to classify.
115
+ removeUnitFiles();
116
+ throw err;
73
117
  }
74
118
  }
75
119
  export function uninstall() {
76
120
  if (!isSystemdAvailable())
77
121
  return;
78
122
  systemctl(["--user", "disable", "--now", TIMER_UNIT]);
79
- if (existsSync(SERVICE_PATH))
80
- rmSync(SERVICE_PATH);
81
- if (existsSync(TIMER_PATH))
82
- rmSync(TIMER_PATH);
123
+ removeUnitFiles();
83
124
  systemctl(["--user", "daemon-reload"]);
84
125
  }
85
126
  export function status() {
@@ -1 +1 @@
1
- {"version":3,"file":"systemd.js","sourceRoot":"","sources":["../../src/daemon/systemd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"systemd.js","sourceRoot":"","sources":["../../src/daemon/systemd.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@djolex999/vir-cli",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "Distills Claude Code sessions into a compounding knowledge vault",
5
5
  "author": "Djordje Marković <djordje@growthq.rs>",
6
6
  "license": "MIT",