peerllm-host-cli 2.5.0 → 2.6.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"restart.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/restart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6BpC,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAgC9D"}
1
+ {"version":3,"file":"restart.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/restart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwCpC,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CA2C9D"}
@@ -5,6 +5,10 @@ import { METHOD } from "../../shared/protocol.js";
5
5
  import { DaemonUnreachableError, IpcClient } from "../ipc-client.js";
6
6
  import { EXIT } from "../exit-codes.js";
7
7
  import { printError } from "../format.js";
8
+ /**
9
+ * Stop the running daemon if present, and report whether it was running in Local Mode
10
+ * so restart can transparently preserve that mode (e.g. after changing the REST port/key).
11
+ */
8
12
  async function stopIfRunning(endpoint) {
9
13
  const client = new IpcClient(endpoint);
10
14
  try {
@@ -12,9 +16,17 @@ async function stopIfRunning(endpoint) {
12
16
  }
13
17
  catch (err) {
14
18
  if (err instanceof DaemonUnreachableError)
15
- return false;
19
+ return { wasRunning: false, localOnly: false };
16
20
  throw err;
17
21
  }
22
+ let localOnly = false;
23
+ try {
24
+ const status = await client.call(METHOD.getStatus);
25
+ localOnly = Boolean(status.daemon.localOnly);
26
+ }
27
+ catch {
28
+ // Non-fatal — proceed to shutdown even if the status probe fails.
29
+ }
18
30
  try {
19
31
  await client.call(METHOD.shutdown);
20
32
  }
@@ -27,25 +39,36 @@ async function stopIfRunning(endpoint) {
27
39
  finally {
28
40
  client.close();
29
41
  }
30
- return true;
42
+ return { wasRunning: true, localOnly };
31
43
  }
32
44
  export function makeRestartCommand(cliVersion) {
33
45
  return new Command("restart")
34
46
  .description("Stop the running daemon (if any), then start in the foreground")
47
+ // Preserves the previous daemon's mode automatically; pass "offline" to force
48
+ // a local-only restart even if nothing was running.
49
+ .argument("[mode]", 'set to "offline" to restart as a local-only LLM runner')
50
+ .option("--offline", "restart as a local-only LLM runner (same as the 'offline' argument)")
35
51
  .option("--config-dir <path>", "override config directory")
36
- .action(async (opts) => {
52
+ .action(async (mode, opts) => {
53
+ if (mode !== undefined && mode !== "offline") {
54
+ printError(`unknown argument "${mode}"`, { hint: 'The only supported mode is "offline". Run: peerllm-host restart offline' });
55
+ process.exit(EXIT.userError);
56
+ }
37
57
  const paths = resolvePaths({ configDirOverride: opts.configDir });
38
58
  try {
39
- const wasRunning = await stopIfRunning(paths.ipcEndpoint);
59
+ const { wasRunning, localOnly: wasLocalOnly } = await stopIfRunning(paths.ipcEndpoint);
40
60
  if (wasRunning) {
41
61
  process.stdout.write("stopped previous daemon\n");
42
62
  // Give the OS a moment to release the socket / pid file.
43
63
  await new Promise((r) => setTimeout(r, 200));
44
64
  }
65
+ // Keep whatever mode was running unless the caller explicitly asks for offline.
66
+ const localOnly = mode === "offline" || opts.offline === true || wasLocalOnly;
45
67
  const daemon = await runDaemon({
46
68
  configDir: opts.configDir,
47
69
  cliVersion,
48
70
  foreground: true,
71
+ localOnly,
49
72
  });
50
73
  process.stdout.write(`peerllm-host: listening on ${daemon.state.paths.ipcEndpoint}\n`);
51
74
  process.stdout.write(`peerllm-host: pid ${daemon.state.pid}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"restart.js","sourceRoot":"","sources":["../../../src/cli/commands/restart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restart.js","sourceRoot":"","sources":["../../../src/cli/commands/restart.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA8E5C,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAgE5D"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAgF5C,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CA0E5D"}
@@ -34,12 +34,13 @@ async function waitForReachable(endpoint, timeoutMs = 5000) {
34
34
  }
35
35
  return false;
36
36
  }
37
- async function startDetached(configDir, endpoint, runMode) {
37
+ async function startDetached(configDir, endpoint, runMode, localOnly) {
38
38
  const daemonEntry = join(__dirname, "..", "..", "daemon", "index.js");
39
39
  const args = [
40
40
  ...(configDir ? ["--config-dir", configDir] : []),
41
41
  "--run-mode",
42
42
  runMode,
43
+ ...(localOnly ? ["--offline"] : []),
43
44
  ];
44
45
  // Open /dev/null (or NUL) for the child's stdio so it has no controlling
45
46
  // terminal and can survive parent exit.
@@ -73,13 +74,22 @@ async function startDetached(configDir, endpoint, runMode) {
73
74
  export function makeStartCommand(cliVersion) {
74
75
  return new Command("start")
75
76
  .description("Start the PeerLLM host daemon")
77
+ // 🖥️ `peerllm-host start offline` — run as a standalone local LLM runner with no
78
+ // account: skips login/registration/subscription and never connects to the network.
79
+ .argument("[mode]", 'set to "offline" to run as a local-only LLM runner (no account/network)')
76
80
  .option("--detach, --detached", "run as a background daemon")
77
81
  .option("--foreground", "run in the foreground")
82
+ .option("--offline", "run as a local-only LLM runner (same as the 'offline' argument)")
78
83
  .option("--config-dir <path>", "override config directory")
79
84
  // Internal marker set by the generated service unit (launchd/systemd/scheduled task)
80
85
  // so the daemon can report runMode=service to the orchestrator. Not for direct use.
81
86
  .addOption(new Option("--service", "internal: mark this daemon as service-managed").hideHelp())
82
- .action(async (opts) => {
87
+ .action(async (mode, opts) => {
88
+ if (mode !== undefined && mode !== "offline") {
89
+ printError(`unknown argument "${mode}"`, { hint: 'The only supported mode is "offline". Run: peerllm-host start offline' });
90
+ process.exit(EXIT.userError);
91
+ }
92
+ const localOnly = mode === "offline" || opts.offline === true;
83
93
  const foreground = opts.foreground || !opts.detach;
84
94
  const runMode = opts.service ? "service" : foreground ? "foreground" : "detached";
85
95
  const paths = resolvePaths({ configDirOverride: opts.configDir });
@@ -90,6 +100,7 @@ export function makeStartCommand(cliVersion) {
90
100
  cliVersion,
91
101
  foreground: true,
92
102
  runMode,
103
+ localOnly,
93
104
  });
94
105
  await Promise.race([
95
106
  runDashboard(daemon.state.paths.ipcEndpoint, daemon.state.paths.modelsDir, buildClientServices({ configDir: opts.configDir })),
@@ -115,7 +126,7 @@ export function makeStartCommand(cliVersion) {
115
126
  }
116
127
  // Detached path: spawn the daemon entry and verify reachability.
117
128
  try {
118
- const result = await startDetached(opts.configDir, paths.ipcEndpoint, runMode);
129
+ const result = await startDetached(opts.configDir, paths.ipcEndpoint, runMode, localOnly);
119
130
  process.stdout.write(`peerllm-host: daemon started (pid ${result.pid})\n`);
120
131
  process.stdout.write(`peerllm-host: listening on ${result.endpoint}\n`);
121
132
  process.exit(EXIT.ok);
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,21 @@ export function makeStatusCommand() {
50
50
  }
51
51
  function printStatus(status) {
52
52
  process.stdout.write(`\n${renderBrand()} host status\n\n`);
53
+ // 🖥️ Local Mode: a standalone local LLM runner with no account. The auth / agreement /
54
+ // host / orchestrator fields are all network concepts and would only be noise here, so
55
+ // show a focused, mode-appropriate view instead.
56
+ if (status.daemon.localOnly) {
57
+ const localLines = [
58
+ `mode: Local Mode (standalone local LLM runner — no account/network)`,
59
+ `daemon: running (pid ${status.daemon.pid}, uptime ${humanizeUptime(status.daemon.uptimeSeconds)})`,
60
+ `protocol: ${status.daemon.protocolVersion}`,
61
+ `network: not connected (run \`peerllm-host start\` to join the network)`,
62
+ `config: ${status.config.path} (schemaVersion ${status.config.schemaVersion})`,
63
+ ];
64
+ for (const l of localLines)
65
+ process.stdout.write(l + "\n");
66
+ return;
67
+ }
53
68
  const hostLabel = status.config.hostName ?? "(unset — run `peerllm-host host create | link`)";
54
69
  const hostIdLabel = status.config.hostId
55
70
  ? `${status.config.hostId.slice(0, 8)}…`
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,14 @@ export declare class AuthService {
15
15
  private accessToken;
16
16
  private tokenExpiresAt;
17
17
  private refreshInFlight;
18
- private consecutiveRefreshFailures;
18
+ private refreshRejections;
19
+ /**
20
+ * How many times in a row the backend has *rejected* the refresh token (HTTP
21
+ * 401) — reset to 0 on the next success. Network errors and other transient
22
+ * failures do not count. Exposed so `doctor`/`status` can report a
23
+ * "present but rejected" token instead of the daemon silently spinning.
24
+ */
25
+ get consecutiveRefreshRejections(): number;
19
26
  constructor(client: BackendClient, secrets: SecretsService, config: ConfigService);
20
27
  login(email: string, password: string): Promise<{
21
28
  userId: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAyB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAUnD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa9D;AAoBD,qBAAa,WAAW;IAOpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,0BAA0B,CAAK;gBAGpB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,aAAa;IAGlC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAsB/E,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvB,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAa7C,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;YAK3B,OAAO;IAkCrB;;;;OAIG;IACH,qBAAqB,IAAI,IAAI;IAK7B;;;;;OAKG;IACG,oBAAoB,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAe7F,OAAO,CAAC,cAAc;YAWR,iBAAiB;CAYhC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAyB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAUnD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa9D;AAoBD,qBAAa,WAAW;IAiBpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAlBzB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,iBAAiB,CAAK;IAE9B;;;;;OAKG;IACH,IAAI,4BAA4B,IAAI,MAAM,CAEzC;gBAGkB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,aAAa;IAGlC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAsB/E,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvB,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAa7C,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;YAK3B,OAAO;IAkDrB;;;;OAIG;IACH,qBAAqB,IAAI,IAAI;IAK7B;;;;;OAKG;IACG,oBAAoB,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAe7F,OAAO,CAAC,cAAc;YAWR,iBAAiB;CAYhC"}
package/dist/core/auth.js CHANGED
@@ -34,7 +34,16 @@ export class AuthService {
34
34
  accessToken;
35
35
  tokenExpiresAt;
36
36
  refreshInFlight;
37
- consecutiveRefreshFailures = 0;
37
+ refreshRejections = 0;
38
+ /**
39
+ * How many times in a row the backend has *rejected* the refresh token (HTTP
40
+ * 401) — reset to 0 on the next success. Network errors and other transient
41
+ * failures do not count. Exposed so `doctor`/`status` can report a
42
+ * "present but rejected" token instead of the daemon silently spinning.
43
+ */
44
+ get consecutiveRefreshRejections() {
45
+ return this.refreshRejections;
46
+ }
38
47
  constructor(client, secrets, config) {
39
48
  this.client = client;
40
49
  this.secrets = secrets;
@@ -94,22 +103,34 @@ export class AuthService {
94
103
  path: "/auth/refresh",
95
104
  body: { refreshToken },
96
105
  });
97
- this.setAccessToken(result.accessToken, result.expiresIn);
98
- this.consecutiveRefreshFailures = 0;
106
+ // Persist the rotated (single-use) refresh token before returning the
107
+ // access token to callers. If this write fails we keep serving the
108
+ // in-memory access token (good for its lifetime) but log loudly — the
109
+ // on-disk token is now stale and the next refresh will need to recover.
99
110
  if (result.refreshToken && result.refreshToken !== refreshToken) {
100
- await this.secrets.set("refreshToken", result.refreshToken);
111
+ try {
112
+ await this.secrets.set("refreshToken", result.refreshToken);
113
+ }
114
+ catch (persistErr) {
115
+ getLogger().error("failed to persist rotated refresh token; on-disk token is now stale", persistErr.message);
116
+ }
101
117
  }
118
+ this.setAccessToken(result.accessToken, result.expiresIn);
119
+ this.refreshRejections = 0;
102
120
  return result.accessToken;
103
121
  }
104
122
  catch (err) {
105
- if (err instanceof NotAuthenticatedError || err.status === 400) {
106
- this.consecutiveRefreshFailures++;
107
- // The Electron app's threshold: 3 consecutive rejections means the token
108
- // is permanently dead (server expiry, password change, revoke).
109
- if (this.consecutiveRefreshFailures >= 3) {
110
- getLogger().warn("refresh token permanently rejected; clearing");
111
- await this.secrets.clear("refreshToken");
112
- }
123
+ // Only an outright 401 means the backend rejected the token. Network
124
+ // errors (status 0 — common when the daemon boots before the network is
125
+ // up) and other statuses are transient and must NOT be treated as a dead
126
+ // credential. We never delete the refresh token here: a headless daemon
127
+ // has no password to re-authenticate with, so clearing would convert a
128
+ // transient/racy rejection into a permanent lockout that only a manual
129
+ // `peerllm-host login` can undo. Keep it on disk and let the caller retry
130
+ // — a server-side hiccup then self-heals with no human intervention.
131
+ if (err instanceof NotAuthenticatedError) {
132
+ this.refreshRejections++;
133
+ getLogger().warn(`refresh token rejected (${this.refreshRejections} in a row); keeping it for retry — run 'peerllm-host login' if this persists`);
113
134
  }
114
135
  else {
115
136
  getLogger().error("token refresh failed", err.message);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ const configDir = configDirIdx >= 0 ? args[configDirIdx + 1] : undefined;
9
9
  // --detach`) or run directly, so default to "detached"; an explicit --run-mode wins.
10
10
  const runModeIdx = args.indexOf("--run-mode");
11
11
  const runMode = runModeIdx >= 0 ? args[runModeIdx + 1] : "detached";
12
+ // 🖥️ Local Mode: standalone local LLM runner, no account/network. Passed through by
13
+ // `peerllm-host start offline` when spawning the daemon detached.
14
+ const localOnly = args.includes("--offline");
12
15
  const cliVersion = process.env["npm_package_version"] ?? CLI_VERSION;
13
16
  async function main() {
14
17
  // survive: true — the daemon must outlive stray worker-death errors instead
@@ -16,7 +19,7 @@ async function main() {
16
19
  // took whole hosts offline). See installCrashHandlers.
17
20
  installCrashHandlers({ prefix: "peerllm-hostd", survive: true });
18
21
  try {
19
- const daemon = await runDaemon({ configDir, cliVersion, runMode });
22
+ const daemon = await runDaemon({ configDir, cliVersion, runMode, localOnly });
20
23
  process.stdout.write(`peerllm-hostd: listening on ${daemon.state.paths.ipcEndpoint}\n`);
21
24
  process.stdout.write(`peerllm-hostd: pid ${daemon.state.pid}\n`);
22
25
  await daemon.whenStopped;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAEzE,+EAA+E;AAC/E,qFAAqF;AACrF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC9C,MAAM,OAAO,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAEpE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,WAAW,CAAC;AAErE,KAAK,UAAU,IAAI;IACjB,4EAA4E;IAC5E,6EAA6E;IAC7E,uDAAuD;IACvD,oBAAoB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QACxF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACjE,MAAM,MAAM,CAAC,WAAW,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAEzE,+EAA+E;AAC/E,qFAAqF;AACrF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC9C,MAAM,OAAO,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAEpE,qFAAqF;AACrF,kEAAkE;AAClE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE7C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,WAAW,CAAC;AAErE,KAAK,UAAU,IAAI;IACjB,4EAA4E;IAC5E,6EAA6E;IAC7E,uDAAuD;IACvD,oBAAoB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QACxF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACjE,MAAM,MAAM,CAAC,WAAW,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
@@ -17,6 +17,8 @@ export interface DaemonState {
17
17
  hostStats: HostStatsService;
18
18
  npmVersion: NpmVersionService;
19
19
  catalogPolling: CatalogPollingService;
20
+ /** 🖥️ Local Mode: standalone local LLM runner (no account/network/orchestrator). */
21
+ localOnly: boolean;
20
22
  getOrchestratorStatus: () => OrchestratorStatus;
21
23
  }
22
24
  export declare function buildMethodRegistry(state: DaemonState): Record<string, MethodHandler>;
@@ -1 +1 @@
1
- {"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../src/daemon/methods.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,cAAc,EAAE,qBAAqB,CAAC;IACtC,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;CACjD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CA0KrF"}
1
+ {"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../src/daemon/methods.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,cAAc,EAAE,qBAAqB,CAAC;IACtC,qFAAqF;IACrF,SAAS,EAAE,OAAO,CAAC;IACnB,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;CACjD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CA2KrF"}
@@ -24,6 +24,7 @@ export function buildMethodRegistry(state) {
24
24
  version: state.cliVersion,
25
25
  protocolVersion: PROTOCOL_VERSION,
26
26
  ...(latestCliVersion ? { latestCliVersion } : {}),
27
+ ...(state.localOnly ? { localOnly: true } : {}),
27
28
  },
28
29
  config: {
29
30
  path: state.paths.configFile,
@@ -1 +1 @@
1
- {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/daemon/methods.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/daemon/methods.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ import { BackendClient } from "../core/backend-client.js";
2
+ import { type ConfigService } from "../core/config.js";
3
+ import { SecretsService } from "../core/secrets.js";
4
+ import { SubscriptionService } from "../core/subscription.js";
1
5
  import { type DaemonState } from "./methods.js";
2
6
  export interface RunDaemonOptions {
3
7
  configDir?: string | undefined;
@@ -5,6 +9,13 @@ export interface RunDaemonOptions {
5
9
  foreground?: boolean;
6
10
  /** How the daemon was launched: "service" | "foreground" | "detached" | "unknown". */
7
11
  runMode?: string;
12
+ /**
13
+ * 🖥️ Local Mode: run as a standalone local LLM runner with no account. Skips the
14
+ * auth/host/subscription preconditions, never connects to the orchestrator, and runs
15
+ * no network pollers. The local OpenAI-compatible REST API is served so the host is
16
+ * immediately usable offline.
17
+ */
18
+ localOnly?: boolean;
8
19
  }
9
20
  export interface RunningDaemon {
10
21
  stop(): Promise<void>;
@@ -16,6 +27,30 @@ declare class StartupError extends Error {
16
27
  readonly hint?: string | undefined;
17
28
  constructor(message: string, exitCode: number, hint?: string | undefined);
18
29
  }
30
+ /** Outcome of the startup precondition checks. */
31
+ export interface PreconditionResult {
32
+ /** True when the daemon may open its orchestrator connection and start pollers. */
33
+ ok: boolean;
34
+ /** Human-readable reason when not ok. */
35
+ message?: string;
36
+ /** Operator hint for how to satisfy the precondition. */
37
+ hint?: string;
38
+ /** Process exit code to use when failing fast in an interactive run. */
39
+ exitCode?: number;
40
+ }
41
+ /**
42
+ * Run modes launchd/systemd relaunch on every non-zero exit (KeepAlive). In
43
+ * those modes we must NEVER exit on an unmet precondition — that produces an
44
+ * infinite crash-restart loop. Interactive modes (`start`, `start --detach`)
45
+ * fail fast instead so the operator sees the problem immediately.
46
+ */
47
+ export declare function isManagedRunMode(runMode: string | undefined): boolean;
48
+ /**
49
+ * Evaluates whether the daemon is ready to connect to the orchestrator. Returns
50
+ * a result rather than throwing so the caller can decide between failing fast
51
+ * (interactive) and staying up to retry (managed service).
52
+ */
53
+ export declare function evaluatePreconditions(config: Pick<ConfigService, "load">, secrets: Pick<SecretsService, "get">, backend: Pick<BackendClient, "request">, subscription: Pick<SubscriptionService, "hostIsActive">): Promise<PreconditionResult>;
19
54
  export declare function runDaemon(opts: RunDaemonOptions): Promise<RunningDaemon>;
20
55
  export { StartupError };
21
56
  //# sourceMappingURL=run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/daemon/run.ts"],"names":[],"mappings":"AAcA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAKrE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,cAAM,YAAa,SAAQ,KAAK;aACe,QAAQ,EAAE,MAAM;aAAkB,IAAI,CAAC,EAAE,MAAM;gBAAhF,OAAO,EAAE,MAAM,EAAkB,QAAQ,EAAE,MAAM,EAAkB,IAAI,CAAC,EAAE,MAAM,YAAA;CAG7F;AA4FD,wBAAsB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CA8J9E;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/daemon/run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAgB,MAAM,2BAA2B,CAAC;AAGxE,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAO5E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAMrE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,cAAM,YAAa,SAAQ,KAAK;aACe,QAAQ,EAAE,MAAM;aAAkB,IAAI,CAAC,EAAE,MAAM;gBAAhF,OAAO,EAAE,MAAM,EAAkB,QAAQ,EAAE,MAAM,EAAkB,IAAI,CAAC,EAAE,MAAM,YAAA;CAG7F;AAOD,kDAAkD;AAClD,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,EAAE,EAAE,OAAO,CAAC;IACZ,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErE;AASD;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,EACnC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,EACpC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,EACvC,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,GACtD,OAAO,CAAC,kBAAkB,CAAC,CAqE7B;AAKD,wBAAsB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAiP9E;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -16,6 +16,7 @@ import { buildMethodRegistry } from "./methods.js";
16
16
  import { acquirePidLock, DaemonAlreadyRunningError } from "./pid-lock.js";
17
17
  import { RestApiServer } from "./rest-server.js";
18
18
  import { randomBytes } from "node:crypto";
19
+ import { setTimeout as delay } from "node:timers/promises";
19
20
  class StartupError extends Error {
20
21
  exitCode;
21
22
  hint;
@@ -25,17 +26,47 @@ class StartupError extends Error {
25
26
  this.hint = hint;
26
27
  }
27
28
  }
28
- async function verifyPreconditions(config, secrets, backend, subscription) {
29
+ /**
30
+ * Run modes launchd/systemd relaunch on every non-zero exit (KeepAlive). In
31
+ * those modes we must NEVER exit on an unmet precondition — that produces an
32
+ * infinite crash-restart loop. Interactive modes (`start`, `start --detach`)
33
+ * fail fast instead so the operator sees the problem immediately.
34
+ */
35
+ export function isManagedRunMode(runMode) {
36
+ return runMode === "service";
37
+ }
38
+ /** A transient backend failure the orchestrator's own reconnect loop can absorb. */
39
+ function isTransientBackendError(err) {
40
+ // status 0 = network unreachable (the daemon booted before the network came
41
+ // up — exactly the "fetch failed" seen in the field); >=500 = server down.
42
+ return err instanceof BackendError && (err.status === 0 || err.status >= 500);
43
+ }
44
+ /**
45
+ * Evaluates whether the daemon is ready to connect to the orchestrator. Returns
46
+ * a result rather than throwing so the caller can decide between failing fast
47
+ * (interactive) and staying up to retry (managed service).
48
+ */
49
+ export async function evaluatePreconditions(config, secrets, backend, subscription) {
29
50
  const cfg = await config.load();
30
51
  const refreshToken = await secrets.get("refreshToken");
31
52
  if (!refreshToken) {
32
- throw new StartupError("not authenticated", 4, "Log in first: peerllm-host login");
53
+ return { ok: false, message: "not authenticated", exitCode: 4, hint: "Log in first: peerllm-host login" };
33
54
  }
34
55
  if (!cfg.agreementAccepted) {
35
- throw new StartupError("host agreement not accepted", 5, "Accept the agreement: peerllm-host agreement accept");
56
+ return {
57
+ ok: false,
58
+ message: "host agreement not accepted",
59
+ exitCode: 5,
60
+ hint: "Accept the agreement: peerllm-host agreement accept",
61
+ };
36
62
  }
37
63
  if (!cfg.hostId) {
38
- throw new StartupError("no host is registered", 5, "Register a host: peerllm-host host create");
64
+ return {
65
+ ok: false,
66
+ message: "no host is registered",
67
+ exitCode: 5,
68
+ hint: "Register a host: peerllm-host host create",
69
+ };
39
70
  }
40
71
  // Confirm approval before opening the SignalR connection.
41
72
  try {
@@ -44,38 +75,50 @@ async function verifyPreconditions(config, secrets, backend, subscription) {
44
75
  path: `/api/hosts/${cfg.hostId}`,
45
76
  });
46
77
  if (host.isApproved === false) {
47
- throw new StartupError("host is not yet approved", 5, "Hosts are typically approved within 24–48 hours. Check back later.");
78
+ return {
79
+ ok: false,
80
+ message: "host is not yet approved",
81
+ exitCode: 5,
82
+ hint: "Hosts are typically approved within 24–48 hours. Check back later.",
83
+ };
48
84
  }
49
85
  }
50
86
  catch (err) {
51
- if (err instanceof StartupError)
52
- throw err;
53
- if (err instanceof BackendError && err.status >= 500) {
54
- // Backend is temporarily down let connect() retry handle it.
55
- return;
56
- }
57
- throw new StartupError(`host approval check failed: ${err.message}`, 1);
87
+ // Transient backend/network trouble — proceed and let connect() retry.
88
+ if (isTransientBackendError(err))
89
+ return { ok: true };
90
+ return { ok: false, message: `host approval check failed: ${err.message}`, exitCode: 1 };
58
91
  }
59
92
  // Subscription gate — hosts cannot serve traffic without an active subscription.
60
93
  try {
61
94
  const check = await subscription.hostIsActive(cfg.hostId);
62
95
  if (!check.subscribed) {
63
96
  if (check.pending) {
64
- throw new StartupError("subscription pending PayPal approval", 5, "Complete PayPal checkout, or rerun: peerllm-host subscription start");
97
+ return {
98
+ ok: false,
99
+ message: "subscription pending PayPal approval",
100
+ exitCode: 5,
101
+ hint: "Complete PayPal checkout, or rerun: peerllm-host subscription start",
102
+ };
65
103
  }
66
- throw new StartupError("this host is not subscribed", 5, "Start a subscription: peerllm-host subscription start");
104
+ return {
105
+ ok: false,
106
+ message: "this host is not subscribed",
107
+ exitCode: 5,
108
+ hint: "Start a subscription: peerllm-host subscription start",
109
+ };
67
110
  }
68
111
  }
69
112
  catch (err) {
70
- if (err instanceof StartupError)
71
- throw err;
72
- if (err instanceof BackendError && err.status >= 500) {
73
- // Backend transiently unreachable let the orchestrator's own checks gate.
74
- return;
75
- }
76
- throw new StartupError(`subscription check failed: ${err.message}`, 1);
113
+ // Backend transiently unreachable — let the orchestrator's own checks gate.
114
+ if (isTransientBackendError(err))
115
+ return { ok: true };
116
+ return { ok: false, message: `subscription check failed: ${err.message}`, exitCode: 1 };
77
117
  }
118
+ return { ok: true };
78
119
  }
120
+ /** How often a managed daemon re-checks unmet preconditions while staying up. */
121
+ const PRECONDITION_RETRY_MS = 30_000;
79
122
  export async function runDaemon(opts) {
80
123
  const paths = resolvePaths({ configDirOverride: opts.configDir });
81
124
  const config = createConfigService({ configDirOverride: opts.configDir });
@@ -91,10 +134,43 @@ export async function runDaemon(opts) {
91
134
  const backend = new BackendClient();
92
135
  const auth = new AuthService(backend, secrets, config);
93
136
  const subscription = new SubscriptionService(backend, auth);
94
- await verifyPreconditions(config, secrets, backend, subscription);
95
- // Refresh the access token now so the orchestrator handshake doesn't race
96
- // against the first inbound prompt.
97
- await auth.getValidAccessToken();
137
+ const localOnly = opts.localOnly === true;
138
+ const managed = isManagedRunMode(opts.runMode);
139
+ // Whether the daemon may open networked services (orchestrator + pollers) now.
140
+ // In Local Mode there is no network at all. Otherwise it hinges on the
141
+ // startup preconditions; a managed service that fails them stays up and
142
+ // retries in the background rather than exiting into a launchd crash loop.
143
+ let preconditionsOk = false;
144
+ if (localOnly) {
145
+ getLogger().info("host: starting in LOCAL MODE — standalone local LLM runner (no account, no network, no orchestrator)");
146
+ }
147
+ else {
148
+ let result;
149
+ try {
150
+ result = await evaluatePreconditions(config, secrets, backend, subscription);
151
+ }
152
+ catch (err) {
153
+ // An unexpected error evaluating preconditions is itself transient in a
154
+ // managed service — don't crash-loop over it; retry from the background.
155
+ if (!managed)
156
+ throw err;
157
+ getLogger().error(`host: precondition check errored: ${err.message}`);
158
+ result = { ok: false, message: err.message };
159
+ }
160
+ if (result.ok) {
161
+ preconditionsOk = true;
162
+ // Refresh the access token now so the orchestrator handshake doesn't race
163
+ // against the first inbound prompt.
164
+ await auth.getValidAccessToken();
165
+ }
166
+ else if (managed) {
167
+ getLogger().warn(`host: not connecting yet — ${result.message}. Staying up and retrying every ` +
168
+ `${PRECONDITION_RETRY_MS / 1000}s (${result.hint ?? "no action needed"}).`);
169
+ }
170
+ else {
171
+ throw new StartupError(result.message ?? "startup precondition failed", result.exitCode ?? 1, result.hint);
172
+ }
173
+ }
98
174
  let pidLock;
99
175
  try {
100
176
  pidLock = await acquirePidLock(paths.pidFile);
@@ -118,19 +194,40 @@ export async function runDaemon(opts) {
118
194
  cliVersion: opts.cliVersion,
119
195
  runMode: opts.runMode,
120
196
  });
197
+ // Network pollers (host/network/earnings stats, npm version check, approved-catalog
198
+ // polling) all call the backend and need auth — skip them entirely in Local Mode,
199
+ // and defer them until the startup preconditions are satisfied (a managed daemon
200
+ // may start before login/approval and heal later without a restart).
121
201
  const hostStats = new HostStatsService(backend, auth, config);
122
- hostStats.start();
123
202
  const npmVersion = new NpmVersionService();
124
- npmVersion.start();
125
203
  const catalogPolling = new CatalogPollingService(new CatalogService(backend, auth), events);
126
- catalogPolling.start();
204
+ let networkedServicesStarted = false;
205
+ function startNetworkedServices() {
206
+ if (networkedServicesStarted || localOnly)
207
+ return;
208
+ networkedServicesStarted = true;
209
+ hostStats.start();
210
+ npmVersion.start();
211
+ catalogPolling.start();
212
+ // Orchestrator connect is async and non-blocking — the daemon stays up even
213
+ // while reconnects retry in the background.
214
+ orchestrator.connect().catch((err) => {
215
+ events.emit("log", {
216
+ level: "error",
217
+ message: `orchestrator initial connect failed: ${err.message}`,
218
+ timestamp: new Date().toISOString(),
219
+ });
220
+ });
221
+ }
127
222
  // 🌐 Local OpenAI-compatible REST API (opt-in via config.restServerEnabled). Serves
128
223
  // through the SAME pool as network traffic — one VRAM authority, single-flight
129
224
  // admission. Never fatal: a REST start failure must not take the daemon down.
130
225
  let restServer = null;
131
226
  try {
132
227
  const cfg = await config.load();
133
- if (cfg.restServerEnabled) {
228
+ // In Local Mode the REST API is the way to actually use the local runner, so serve
229
+ // it even if the flag was never set — otherwise `start offline` would do nothing.
230
+ if (cfg.restServerEnabled || localOnly) {
134
231
  let apiKey = cfg.restServerApiKey;
135
232
  if (!apiKey) {
136
233
  apiKey = `pllm_${randomBytes(24).toString("hex")}`;
@@ -156,6 +253,7 @@ export async function runDaemon(opts) {
156
253
  hostStats,
157
254
  npmVersion,
158
255
  catalogPolling,
256
+ localOnly,
159
257
  getOrchestratorStatus: () => orchestratorStatus,
160
258
  };
161
259
  let stopping = false;
@@ -209,15 +307,47 @@ export async function runDaemon(opts) {
209
307
  process.on("SIGINT", signalHandler);
210
308
  process.on("SIGTERM", signalHandler);
211
309
  await ipc.listen();
212
- // Orchestrator connect is async and non-blocking daemon stays up even
213
- // while reconnects retry in the background.
214
- orchestrator.connect().catch((err) => {
215
- events.emit("log", {
216
- level: "error",
217
- message: `orchestrator initial connect failed: ${err.message}`,
218
- timestamp: new Date().toISOString(),
219
- });
220
- });
310
+ // Networked services (orchestrator connect + pollers) are skipped entirely in
311
+ // Local Mode. Otherwise they start now if preconditions passed; a managed
312
+ // daemon that failed them stays up and re-checks in the background, so a host
313
+ // that boots before login/approval — or with a transiently-rejected token —
314
+ // rejoins automatically once the condition clears, with no restart or manual
315
+ // `peerllm-host login`.
316
+ if (!localOnly) {
317
+ if (preconditionsOk) {
318
+ startNetworkedServices();
319
+ }
320
+ else {
321
+ void retryPreconditionsUntilReady();
322
+ }
323
+ }
324
+ async function retryPreconditionsUntilReady() {
325
+ while (!stopping && !networkedServicesStarted) {
326
+ await delay(PRECONDITION_RETRY_MS);
327
+ if (stopping || networkedServicesStarted)
328
+ return;
329
+ let result;
330
+ try {
331
+ result = await evaluatePreconditions(config, secrets, backend, subscription);
332
+ }
333
+ catch (err) {
334
+ getLogger().error(`host: precondition re-check errored: ${err.message}`);
335
+ continue;
336
+ }
337
+ if (result.ok) {
338
+ getLogger().info("host: preconditions satisfied — starting networked services");
339
+ try {
340
+ await auth.getValidAccessToken();
341
+ }
342
+ catch {
343
+ // Non-fatal: the orchestrator's own handshake will refresh/retry.
344
+ }
345
+ startNetworkedServices();
346
+ return;
347
+ }
348
+ getLogger().info(`host: still waiting to connect — ${result.message}`);
349
+ }
350
+ }
221
351
  return {
222
352
  stop: shutdown,
223
353
  whenStopped,
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/daemon/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/daemon/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAsB,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAiB,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAA2B,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAoB,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAgB,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAuB3D,MAAM,YAAa,SAAQ,KAAK;IACe;IAAkC;IAA/E,YAAY,OAAe,EAAkB,QAAgB,EAAkB,IAAa;QAC1F,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,aAAQ,GAAR,QAAQ,CAAQ;QAAkB,SAAI,GAAJ,IAAI,CAAS;IAE5F,CAAC;CACF;AAmBD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA2B;IAC1D,OAAO,OAAO,KAAK,SAAS,CAAC;AAC/B,CAAC;AAED,oFAAoF;AACpF,SAAS,uBAAuB,CAAC,GAAY;IAC3C,4EAA4E;IAC5E,2EAA2E;IAC3E,OAAO,GAAG,YAAY,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAmC,EACnC,OAAoC,EACpC,OAAuC,EACvC,YAAuD;IAEvD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC;IAC5G,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC3B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,6BAA6B;YACtC,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,qDAAqD;SAC5D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,uBAAuB;YAChC,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,2CAA2C;SAClD,CAAC;IACJ,CAAC;IAED,0DAA0D;IAC1D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAqB;YACrD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,GAAG,CAAC,MAAM,EAAE;SACjC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC9B,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,0BAA0B;gBACnC,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,oEAAoE;aAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,uEAAuE;QACvE,IAAI,uBAAuB,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,+BAAgC,GAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACtG,CAAC;IAED,iFAAiF;IACjF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE,sCAAsC;oBAC/C,QAAQ,EAAE,CAAC;oBACX,IAAI,EAAE,qEAAqE;iBAC5E,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,6BAA6B;gBACtC,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,uDAAuD;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,4EAA4E;QAC5E,IAAI,uBAAuB,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,8BAA+B,GAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACrG,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,iFAAiF;AACjF,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAsB;IACpD,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;IAEpC,gBAAgB,CAAC;QACf,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,MAAM;QACd,QAAQ,EAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAA0B,IAAI,MAAM;QAC9E,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QACpC,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;IAC1C,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE/C,+EAA+E;IAC/E,uEAAuE;IACvE,wEAAwE;IACxE,2EAA2E;IAC3E,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,EAAE,CAAC,IAAI,CACd,sGAAsG,CACvG,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,wEAAwE;YACxE,yEAAyE;YACzE,IAAI,CAAC,OAAO;gBAAE,MAAM,GAAG,CAAC;YACxB,SAAS,EAAE,CAAC,KAAK,CAAC,qCAAsC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;QAC1D,CAAC;QAED,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,eAAe,GAAG,IAAI,CAAC;YACvB,0EAA0E;YAC1E,oCAAoC;YACpC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACnC,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,SAAS,EAAE,CAAC,IAAI,CACd,8BAA8B,MAAM,CAAC,OAAO,kCAAkC;gBAC5E,GAAG,qBAAqB,GAAG,IAAI,MAAM,MAAM,CAAC,IAAI,IAAI,kBAAkB,IAAI,CAC7E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO,IAAI,6BAA6B,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAED,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAkC,CAAC;YAClE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;YACf,MAAM,CAAC,CAAC;QACV,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,kBAAkB,GAAuB,cAAc,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE;QACpC,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC;QAC3C,KAAK;QACL,MAAM;QACN,MAAM;QACN,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;IAEH,oFAAoF;IACpF,kFAAkF;IAClF,iFAAiF;IACjF,qEAAqE;IACrE,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC3C,MAAM,cAAc,GAAG,IAAI,qBAAqB,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAE5F,IAAI,wBAAwB,GAAG,KAAK,CAAC;IACrC,SAAS,sBAAsB;QAC7B,IAAI,wBAAwB,IAAI,SAAS;YAAE,OAAO;QAClD,wBAAwB,GAAG,IAAI,CAAC;QAChC,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,4EAA4E;QAC5E,4CAA4C;QAC5C,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;gBACjB,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,wCAAwC,GAAG,CAAC,OAAO,EAAE;gBAC9D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oFAAoF;IACpF,+EAA+E;IAC/E,8EAA8E;IAC9E,IAAI,UAAU,GAAyB,IAAI,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAChC,mFAAmF;QACnF,kFAAkF;QAClF,IAAI,GAAG,CAAC,iBAAiB,IAAI,SAAS,EAAE,CAAC;YACvC,IAAI,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC;YAClC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,QAAQ,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC;YACxC,UAAU,GAAG,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAChF,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,SAAS,EAAE,CAAC,IAAI,CAAC,2DAA2D,IAAI,iDAAiD,CAAC,CAAC;QACrI,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,EAAE,CAAC,KAAK,CAAC,+CAAgD,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,KAAK,GAAgB;QACzB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,KAAK;QACL,MAAM;QACN,OAAO;QACP,YAAY;QACZ,SAAS;QACT,UAAU;QACV,cAAc;QACd,SAAS;QACT,qBAAqB,EAAE,GAAG,EAAE,CAAC,kBAAkB;KAChD,CAAC;IAEF,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,cAA2B,CAAC;IAChC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,EAAE;QAC5C,cAAc,GAAG,GAAG,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC;QACxB,QAAQ,EAAE,KAAK,CAAC,WAAW;QAC3B,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC;QACnC,mBAAmB,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;QACrC,MAAM;KACP,CAAC,CAAC;IAEH,KAAK,UAAU,QAAQ;QACrB,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC;QACvE,CAAC;QACD,cAAc,CAAC,IAAI,EAAE,CAAC;QACtB,UAAU,CAAC,IAAI,EAAE,CAAC;QAClB,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,oEAAoE;YACpE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;gBACjB,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,kCAAmC,GAAa,CAAC,OAAO,EAAE;gBACnE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,GAAmB,EAAQ,EAAE;QAClD,KAAK,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACxB,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAErC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;IAEnB,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,wBAAwB;IACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,eAAe,EAAE,CAAC;YACpB,sBAAsB,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,KAAK,4BAA4B,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAED,KAAK,UAAU,4BAA4B;QACzC,OAAO,CAAC,QAAQ,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC9C,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACnC,IAAI,QAAQ,IAAI,wBAAwB;gBAAE,OAAO;YACjD,IAAI,MAA0B,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC,KAAK,CAAC,wCAAyC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBACpF,SAAS;YACX,CAAC;YACD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;gBAChF,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACnC,CAAC;gBAAC,MAAM,CAAC;oBACP,kEAAkE;gBACpE,CAAC;gBACD,sBAAsB,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YACD,SAAS,EAAE,CAAC,IAAI,CAAC,oCAAoC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,WAAW;QACX,KAAK;KACN,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -28,6 +28,7 @@ export interface GetStatusResult {
28
28
  version: string;
29
29
  protocolVersion: string;
30
30
  latestCliVersion?: string;
31
+ localOnly?: boolean;
31
32
  };
32
33
  config: {
33
34
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/shared/protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,eAAO,MAAM,MAAM;;;;;;;;;CAST,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QAGxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,CAAC;IACF,IAAI,EAAE;QACJ,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;KACtC,CAAC;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;KAC7E,CAAC;IAKF,IAAI,CAAC,EAAE;QACL,UAAU,EAAE,OAAO,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAEF,OAAO,CAAC,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAEF,MAAM,CAAC,EAAE;QACP,EAAE,EAAE,SAAS,CAAC;QACd,GAAG,EAAE,SAAS,CAAC;KAChB,CAAC;IAEF,QAAQ,CAAC,EAAE;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAEF,YAAY,CAAC,EAAE;QACb,oBAAoB,EAAE,MAAM,CAAC;QAC7B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAG1B,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IAEJ,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAMrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,IAAI,CAAC;CACpB"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/shared/protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,eAAO,MAAM,MAAM;;;;;;;;;CAST,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QAGxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAE1B,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,CAAC;IACF,IAAI,EAAE;QACJ,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;KACtC,CAAC;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;KAC7E,CAAC;IAKF,IAAI,CAAC,EAAE;QACL,UAAU,EAAE,OAAO,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAEF,OAAO,CAAC,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAEF,MAAM,CAAC,EAAE;QACP,EAAE,EAAE,SAAS,CAAC;QACd,GAAG,EAAE,SAAS,CAAC;KAChB,CAAC;IAEF,QAAQ,CAAC,EAAE;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAEF,YAAY,CAAC,EAAE;QACb,oBAAoB,EAAE,MAAM,CAAC;QAC7B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAG1B,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IAEJ,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAMrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,IAAI,CAAC;CACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peerllm-host-cli",
3
- "version": "2.5.0",
3
+ "version": "2.6.1",
4
4
  "description": "Command-line PeerLLM host: serve decentralized AI compute from a headless machine.",
5
5
  "author": {
6
6
  "name": "Hassan Habib",