peerllm-host-cli 2.2.2 → 2.3.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.
@@ -23,6 +23,17 @@ export declare function daemonArgv(exec: DaemonExec): string[];
23
23
  export declare function plistProgramArgs(argv: string[]): string;
24
24
  /** Render argv as a systemd ExecStart line, quoting args that contain whitespace. */
25
25
  export declare function execStartLine(argv: string[]): string;
26
+ /** Render the boot-mode (LaunchDaemon) plist. Pure — backs both install and tests. */
27
+ export declare function renderDaemonPlist(exec: DaemonExec, vars: {
28
+ user: string;
29
+ home: string;
30
+ logsDir: string;
31
+ }): string;
32
+ /** Render the boot-mode (system systemd) unit. Pure — backs both install and tests. */
33
+ export declare function renderSystemUnit(exec: DaemonExec, vars: {
34
+ user: string;
35
+ home: string;
36
+ }): string;
26
37
  export declare function makeServiceCommand(): Command;
27
38
  export {};
28
39
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,CAYrE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CAErD;AAMD,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEvD;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEpD;AA0MD,wBAAgB,kBAAkB,IAAI,OAAO,CAM5C"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,CAYrE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CAErD;AAMD,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEvD;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEpD;AA4FD,sFAAsF;AACtF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpD,MAAM,CAQR;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAO/F;AAuOD,wBAAgB,kBAAkB,IAAI,OAAO,CAM5C"}
@@ -118,6 +118,101 @@ async function uninstallLaunchd() {
118
118
  await unlink(plistPath);
119
119
  return plistPath;
120
120
  }
121
+ // Where each platform's installed boot unit lives (root-owned, world-readable, so
122
+ // `status` can detect it without sudo).
123
+ const LAUNCHD_DAEMON_PATH = "/Library/LaunchDaemons/com.peerllm.host.plist";
124
+ const SYSTEMD_SYSTEM_PATH = "/etc/systemd/system/peerllm-host.service";
125
+ /** Boot install runs as the normal user (node + config paths resolve; the CLI
126
+ * shebang can't find node under sudo's reset PATH). Refuse to run under sudo. */
127
+ function assertNotRootForBoot() {
128
+ if (typeof process.getuid === "function" && process.getuid() === 0) {
129
+ throw new Error("Run `peerllm-host service install --boot` as your normal user (without sudo).\n" +
130
+ "It generates the unit; you then run the printed sudo commands to install it.");
131
+ }
132
+ }
133
+ /** Render the boot-mode (LaunchDaemon) plist. Pure — backs both install and tests. */
134
+ export function renderDaemonPlist(exec, vars) {
135
+ const template = readFileSync(join(templatesDir(), "launchd", "com.peerllm.host.daemon.plist"), "utf8");
136
+ return fillTemplate(template, {
137
+ PROGRAM_ARGS: plistProgramArgs(daemonArgv(exec)),
138
+ LOG_DIR: vars.logsDir,
139
+ USER_NAME: vars.user,
140
+ HOME_DIR: vars.home,
141
+ });
142
+ }
143
+ /** Render the boot-mode (system systemd) unit. Pure — backs both install and tests. */
144
+ export function renderSystemUnit(exec, vars) {
145
+ const template = readFileSync(join(templatesDir(), "systemd", "peerllm-host.system.service"), "utf8");
146
+ return fillTemplate(template, {
147
+ EXEC_START: execStartLine(daemonArgv(exec)),
148
+ USER_NAME: vars.user,
149
+ HOME_DIR: vars.home,
150
+ });
151
+ }
152
+ // ── Boot mode ────────────────────────────────────────────────────────────────
153
+ // Boot-level = starts at boot in the SYSTEM domain, no login, no unlocked desktop
154
+ // — what a headless, SSH-managed host wants. macOS → LaunchDaemon; Linux → a system
155
+ // systemd unit. Both are GENERATED as the normal user (where node + config paths
156
+ // resolve; the CLI's `#!/usr/bin/env node` shebang can't find node under sudo's
157
+ // reset PATH), then installed via a short printed sudo sequence.
158
+ async function installBoot(ctx) {
159
+ if (osPlatform() === "darwin")
160
+ return installLaunchDaemon(ctx);
161
+ if (osPlatform() === "linux")
162
+ return installSystemdSystem(ctx);
163
+ throw new Error("--boot (boot-level system service) is supported on macOS and Linux only.");
164
+ }
165
+ async function installLaunchDaemon(ctx) {
166
+ assertNotRootForBoot();
167
+ const user = userInfo().username;
168
+ const home = homedir();
169
+ const rendered = renderDaemonPlist(ctx.exec, { user, home, logsDir: ctx.paths.logsDir });
170
+ await mkdir(ctx.paths.logsDir, { recursive: true });
171
+ await mkdir(ctx.paths.configDir, { recursive: true });
172
+ const staged = join(ctx.paths.configDir, "com.peerllm.host.daemon.plist");
173
+ await writeFile(staged, rendered, { mode: 0o644 });
174
+ return {
175
+ path: staged,
176
+ boot: true,
177
+ hint: `Boot mode runs headless as "${user}" at startup — no login, no unlocked desktop.
178
+ Install & start it (one time):
179
+ sudo launchctl bootout system/com.peerllm.host 2>/dev/null; launchctl bootout gui/$(id -u)/com.peerllm.host 2>/dev/null
180
+ sudo cp "${staged}" ${LAUNCHD_DAEMON_PATH}
181
+ sudo chown root:wheel ${LAUNCHD_DAEMON_PATH}
182
+ sudo launchctl bootstrap system ${LAUNCHD_DAEMON_PATH}
183
+ sudo launchctl kickstart -k system/com.peerllm.host
184
+ (The first line clears any leftover login-mode LaunchAgent with the same label —
185
+ skipping it makes bootstrap fail with "5: Input/output error".)
186
+ Verify it is running:
187
+ sudo launchctl print system/com.peerllm.host | grep -i state
188
+ Remove it later:
189
+ peerllm-host service uninstall --boot
190
+ ⚠️ FileVault: with it ON, a cold reboot waits at the unlock screen before the
191
+ daemon starts; with it OFF the host returns fully unattended.`,
192
+ };
193
+ }
194
+ async function installSystemdSystem(ctx) {
195
+ assertNotRootForBoot();
196
+ const user = userInfo().username;
197
+ const home = homedir();
198
+ const rendered = renderSystemUnit(ctx.exec, { user, home });
199
+ await mkdir(ctx.paths.configDir, { recursive: true });
200
+ const staged = join(ctx.paths.configDir, "peerllm-host.system.service");
201
+ await writeFile(staged, rendered, { mode: 0o644 });
202
+ return {
203
+ path: staged,
204
+ boot: true,
205
+ hint: `Boot mode runs headless as "${user}" at startup — no login needed.
206
+ Install & start it (one time):
207
+ sudo cp "${staged}" ${SYSTEMD_SYSTEM_PATH}
208
+ sudo systemctl daemon-reload
209
+ sudo systemctl enable --now peerllm-host
210
+ Verify it is running:
211
+ systemctl status peerllm-host
212
+ Remove it later:
213
+ peerllm-host service uninstall --boot`,
214
+ };
215
+ }
121
216
  async function installWindows(ctx) {
122
217
  const scriptPath = join(templatesDir(), "windows", "install-service.ps1");
123
218
  const argv = daemonArgv(ctx.exec);
@@ -165,16 +260,19 @@ function makeInstall() {
165
260
  .description("Install the platform-appropriate service unit (user-level)")
166
261
  .option("--cli-bin <path>", "absolute path to a launcher binary (default: current node + this CLI's entry script, PATH-independent)")
167
262
  .option("--config-dir <path>", "override config directory")
263
+ .option("--boot", "boot-level system service that starts at startup with no login (macOS LaunchDaemon / Linux system unit)")
168
264
  .action(async (opts) => {
169
265
  const ctx = buildContext(opts);
170
266
  try {
171
- const installer = osPlatform() === "darwin"
172
- ? installLaunchd
173
- : osPlatform() === "win32"
174
- ? installWindows
175
- : installSystemd;
267
+ const installer = opts.boot
268
+ ? installBoot
269
+ : osPlatform() === "darwin"
270
+ ? installLaunchd
271
+ : osPlatform() === "win32"
272
+ ? installWindows
273
+ : installSystemd;
176
274
  const result = await installer(ctx);
177
- process.stdout.write(` installed ${result.path}\n`);
275
+ process.stdout.write(` ${result.boot ? "generated" : "installed"} ${result.path}\n`);
178
276
  process.stdout.write(result.hint + "\n");
179
277
  process.exit(EXIT.ok);
180
278
  }
@@ -187,7 +285,29 @@ function makeInstall() {
187
285
  function makeUninstall() {
188
286
  return new Command("uninstall")
189
287
  .description("Remove the installed service unit")
190
- .action(async () => {
288
+ .option("--boot", "remove the boot-level system service (macOS LaunchDaemon / Linux system unit)")
289
+ .option("--config-dir <path>", "override config directory")
290
+ .action(async (opts) => {
291
+ if (opts.boot) {
292
+ const os = osPlatform();
293
+ if (os !== "darwin" && os !== "linux") {
294
+ printError("--boot is supported on macOS and Linux only.");
295
+ process.exit(EXIT.runtimeError);
296
+ }
297
+ const configDir = resolvePaths({ configDirOverride: opts.configDir }).configDir;
298
+ const stagedName = os === "darwin" ? "com.peerllm.host.daemon.plist" : "peerllm-host.system.service";
299
+ const staged = join(configDir, stagedName);
300
+ if (existsSync(staged))
301
+ await unlink(staged).catch(() => undefined);
302
+ const removalSteps = os === "darwin"
303
+ ? ` sudo launchctl bootout system/com.peerllm.host
304
+ sudo rm -f ${LAUNCHD_DAEMON_PATH}`
305
+ : ` sudo systemctl disable --now peerllm-host
306
+ sudo rm -f ${SYSTEMD_SYSTEM_PATH}
307
+ sudo systemctl daemon-reload`;
308
+ process.stdout.write(`Boot service removal needs sudo. Run:\n${removalSteps}\n`);
309
+ process.exit(EXIT.ok);
310
+ }
191
311
  const removed = osPlatform() === "darwin"
192
312
  ? await uninstallLaunchd()
193
313
  : osPlatform() === "win32"
@@ -225,12 +345,20 @@ function makeStatus() {
225
345
  process.stdout.write(`type: ${kind}\n`);
226
346
  process.stdout.write(`path: ${unitPath}\n`);
227
347
  process.stdout.write(`installed: ${installed ? "yes" : "no"}\n`);
348
+ // Also report boot mode — a root-owned unit that's world-readable, so we can
349
+ // detect it without sudo. macOS = LaunchDaemon; Linux = system systemd unit.
350
+ if (osPlatform() === "darwin") {
351
+ process.stdout.write(`boot: ${existsSync(LAUNCHD_DAEMON_PATH) ? "yes" : "no"} (LaunchDaemon ${LAUNCHD_DAEMON_PATH})\n`);
352
+ }
353
+ else if (osPlatform() === "linux") {
354
+ process.stdout.write(`boot: ${existsSync(SYSTEMD_SYSTEM_PATH) ? "yes" : "no"} (systemd system unit ${SYSTEMD_SYSTEM_PATH})\n`);
355
+ }
228
356
  process.exit(EXIT.ok);
229
357
  });
230
358
  }
231
359
  export function makeServiceCommand() {
232
360
  return new Command("service")
233
- .description("Install / uninstall a user-level service unit for the daemon")
361
+ .description("Install / uninstall a service unit for the daemon (user-level, or --boot for a macOS system LaunchDaemon)")
234
362
  .addCommand(makeInstall())
235
363
  .addCommand(makeUninstall())
236
364
  .addCommand(makeStatus());
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/cli/commands/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/cli/commands/service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peerllm-host-cli",
3
- "version": "2.2.2",
3
+ "version": "2.3.0",
4
4
  "description": "Command-line PeerLLM host: serve decentralized AI compute from a headless machine.",
5
5
  "author": {
6
6
  "name": "Hassan Habib",
@@ -0,0 +1,35 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.peerllm.host</string>
7
+ <!-- Runs as the owner, NOT root: a LaunchDaemon defaults to root, so we drop
8
+ privilege back to the user who generated it. -->
9
+ <key>UserName</key>
10
+ <string>{USER_NAME}</string>
11
+ <!-- launchd does not derive HOME from UserName, so set it explicitly — otherwise
12
+ the daemon resolves config / models / logs under /var/root and can't find the
13
+ user's models. -->
14
+ <key>EnvironmentVariables</key>
15
+ <dict>
16
+ <key>HOME</key>
17
+ <string>{HOME_DIR}</string>
18
+ </dict>
19
+ <key>ProgramArguments</key>
20
+ <array>
21
+ {PROGRAM_ARGS}
22
+ </array>
23
+ <key>RunAtLoad</key>
24
+ <true/>
25
+ <key>KeepAlive</key>
26
+ <dict>
27
+ <key>SuccessfulExit</key>
28
+ <false/>
29
+ </dict>
30
+ <key>StandardOutPath</key>
31
+ <string>{LOG_DIR}/launchd-stdout.log</string>
32
+ <key>StandardErrorPath</key>
33
+ <string>{LOG_DIR}/launchd-stderr.log</string>
34
+ </dict>
35
+ </plist>
@@ -0,0 +1,24 @@
1
+ [Unit]
2
+ Description=PeerLLM Host daemon (boot-level system service)
3
+ After=network-online.target
4
+ Wants=network-online.target
5
+
6
+ [Service]
7
+ Type=simple
8
+ # Runs as the owner (not root): drops privilege to the user who generated the unit.
9
+ User={USER_NAME}
10
+ # systemd does not derive HOME from User=, so set it explicitly — otherwise the
11
+ # daemon resolves config / models / logs under root's home and can't find the
12
+ # user's models.
13
+ Environment=HOME={HOME_DIR}
14
+ # Rendered at install time as an absolute node binary + this CLI's entry script,
15
+ # so the unit does not depend on PATH.
16
+ ExecStart={EXEC_START}
17
+ Restart=on-failure
18
+ RestartSec=5
19
+ # Daemon writes its own logs under ~/PeerLLM/logs/; journal also captures stderr.
20
+ StandardError=journal
21
+ StandardOutput=journal
22
+
23
+ [Install]
24
+ WantedBy=multi-user.target