peerllm-host-cli 2.6.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.
- package/dist/core/auth.d.ts +8 -1
- package/dist/core/auth.d.ts.map +1 -1
- package/dist/core/auth.js +33 -12
- package/dist/core/auth.js.map +1 -1
- package/dist/daemon/run.d.ts +28 -0
- package/dist/daemon/run.d.ts.map +1 -1
- package/dist/daemon/run.js +151 -38
- package/dist/daemon/run.js.map +1 -1
- package/package.json +1 -1
package/dist/core/auth.d.ts
CHANGED
|
@@ -15,7 +15,14 @@ export declare class AuthService {
|
|
|
15
15
|
private accessToken;
|
|
16
16
|
private tokenExpiresAt;
|
|
17
17
|
private refreshInFlight;
|
|
18
|
-
private
|
|
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;
|
package/dist/core/auth.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
98
|
-
|
|
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
|
-
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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);
|
package/dist/core/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,qBAAqB,EAAuB,MAAM,qBAAqB,CAAC;AAEhG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,0EAA0E;AAC1E,6EAA6E;AAC7E,6DAA6D;AAC7D,MAAM,8BAA8B,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/C,6EAA6E;AAC7E,8DAA8D;AAC9D,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAE5E,CAAC;QACF,OAAO,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YACpE,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI;YACpB,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAoBD,MAAM,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/run.d.ts
CHANGED
|
@@ -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;
|
|
@@ -23,6 +27,30 @@ declare class StartupError extends Error {
|
|
|
23
27
|
readonly hint?: string | undefined;
|
|
24
28
|
constructor(message: string, exitCode: number, hint?: string | undefined);
|
|
25
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>;
|
|
26
54
|
export declare function runDaemon(opts: RunDaemonOptions): Promise<RunningDaemon>;
|
|
27
55
|
export { StartupError };
|
|
28
56
|
//# sourceMappingURL=run.d.ts.map
|
package/dist/daemon/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/daemon/run.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/daemon/run.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
53
|
+
return { ok: false, message: "not authenticated", exitCode: 4, hint: "Log in first: peerllm-host login" };
|
|
33
54
|
}
|
|
34
55
|
if (!cfg.agreementAccepted) {
|
|
35
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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 });
|
|
@@ -92,14 +135,41 @@ export async function runDaemon(opts) {
|
|
|
92
135
|
const auth = new AuthService(backend, secrets, config);
|
|
93
136
|
const subscription = new SubscriptionService(backend, auth);
|
|
94
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;
|
|
95
144
|
if (localOnly) {
|
|
96
145
|
getLogger().info("host: starting in LOCAL MODE — standalone local LLM runner (no account, no network, no orchestrator)");
|
|
97
146
|
}
|
|
98
147
|
else {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
+
}
|
|
103
173
|
}
|
|
104
174
|
let pidLock;
|
|
105
175
|
try {
|
|
@@ -125,14 +195,29 @@ export async function runDaemon(opts) {
|
|
|
125
195
|
runMode: opts.runMode,
|
|
126
196
|
});
|
|
127
197
|
// Network pollers (host/network/earnings stats, npm version check, approved-catalog
|
|
128
|
-
// polling) all call the backend and need auth — skip them entirely in Local Mode
|
|
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).
|
|
129
201
|
const hostStats = new HostStatsService(backend, auth, config);
|
|
130
202
|
const npmVersion = new NpmVersionService();
|
|
131
203
|
const catalogPolling = new CatalogPollingService(new CatalogService(backend, auth), events);
|
|
132
|
-
|
|
204
|
+
let networkedServicesStarted = false;
|
|
205
|
+
function startNetworkedServices() {
|
|
206
|
+
if (networkedServicesStarted || localOnly)
|
|
207
|
+
return;
|
|
208
|
+
networkedServicesStarted = true;
|
|
133
209
|
hostStats.start();
|
|
134
210
|
npmVersion.start();
|
|
135
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
|
+
});
|
|
136
221
|
}
|
|
137
222
|
// 🌐 Local OpenAI-compatible REST API (opt-in via config.restServerEnabled). Serves
|
|
138
223
|
// through the SAME pool as network traffic — one VRAM authority, single-flight
|
|
@@ -222,18 +307,46 @@ export async function runDaemon(opts) {
|
|
|
222
307
|
process.on("SIGINT", signalHandler);
|
|
223
308
|
process.on("SIGTERM", signalHandler);
|
|
224
309
|
await ipc.listen();
|
|
225
|
-
//
|
|
226
|
-
//
|
|
227
|
-
//
|
|
228
|
-
//
|
|
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`.
|
|
229
316
|
if (!localOnly) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
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
|
+
}
|
|
237
350
|
}
|
|
238
351
|
return {
|
|
239
352
|
stop: shutdown,
|
package/dist/daemon/run.js.map
CHANGED
|
@@ -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":"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"}
|