peerllm-host-cli 1.9.13 → 1.9.15

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,6 +1,13 @@
1
- import { BackendClient } from "./backend-client.js";
1
+ import { BackendClient, type BackendRequest } from "./backend-client.js";
2
2
  import type { ConfigService } from "./config.js";
3
3
  import type { SecretsService } from "./secrets.js";
4
+ /**
5
+ * Reads the expiry (`exp` claim, epoch seconds) out of a JWT without
6
+ * verifying the signature — client-side we only need the lifetime, and the
7
+ * backend remains the authority on validity. Returns epoch milliseconds, or
8
+ * null when the token isn't a decodable JWT or carries no numeric exp.
9
+ */
10
+ export declare function decodeJwtExpiryMs(token: string): number | null;
4
11
  export declare class AuthService {
5
12
  private readonly client;
6
13
  private readonly secrets;
@@ -18,6 +25,19 @@ export declare class AuthService {
18
25
  getValidAccessToken(): Promise<string | null>;
19
26
  hasRefreshToken(): Promise<boolean>;
20
27
  private refresh;
28
+ /**
29
+ * Drops the cached access token so the next getValidAccessToken() is forced
30
+ * through a refresh. Used when the backend rejects a token that still looks
31
+ * valid locally (clock skew, server-side revocation, wrong lifetime guess).
32
+ */
33
+ invalidateAccessToken(): void;
34
+ /**
35
+ * Performs an authenticated backend request. If the backend answers 401
36
+ * despite a locally-valid token, the cached token is invalidated and the
37
+ * request retried once with a freshly refreshed token before the error
38
+ * surfaces.
39
+ */
40
+ authenticatedRequest<T = unknown>(req: Omit<BackendRequest, "bearerToken">): Promise<T>;
21
41
  private setAccessToken;
22
42
  private fetchUserIdFromMe;
23
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAyB,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAoBnD,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,OAAO,CAAC,cAAc;YAKR,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;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"}
package/dist/core/auth.js CHANGED
@@ -1,5 +1,32 @@
1
1
  import { NotAuthenticatedError } from "./backend-client.js";
2
2
  import { getLogger } from "./logger.js";
3
+ // The orchestrator's JwtSettings.ExpirationMinutes defaults to 15 and its
4
+ // /auth responses don't include expiresIn, so this fallback only matters for
5
+ // opaque (non-JWT) tokens where the exp claim can't be read.
6
+ const DEFAULT_TOKEN_LIFETIME_SECONDS = 15 * 60;
7
+ // Treat the token as expired slightly early so a request issued right at the
8
+ // boundary doesn't reach the backend with a just-expired JWT.
9
+ const TOKEN_EXPIRY_SAFETY_MARGIN_MS = 30_000;
10
+ /**
11
+ * Reads the expiry (`exp` claim, epoch seconds) out of a JWT without
12
+ * verifying the signature — client-side we only need the lifetime, and the
13
+ * backend remains the authority on validity. Returns epoch milliseconds, or
14
+ * null when the token isn't a decodable JWT or carries no numeric exp.
15
+ */
16
+ export function decodeJwtExpiryMs(token) {
17
+ const payload = token.split(".")[1];
18
+ if (!payload)
19
+ return null;
20
+ try {
21
+ const decoded = JSON.parse(Buffer.from(payload, "base64url").toString("utf8"));
22
+ return typeof decoded.exp === "number" && Number.isFinite(decoded.exp)
23
+ ? decoded.exp * 1000
24
+ : null;
25
+ }
26
+ catch {
27
+ return null;
28
+ }
29
+ }
3
30
  export class AuthService {
4
31
  client;
5
32
  secrets;
@@ -20,7 +47,7 @@ export class AuthService {
20
47
  body: { email, password },
21
48
  });
22
49
  await this.secrets.set("refreshToken", result.refreshToken);
23
- this.setAccessToken(result.accessToken, result.expiresIn ?? 3600);
50
+ this.setAccessToken(result.accessToken, result.expiresIn);
24
51
  let userId = result.userId;
25
52
  if (!userId) {
26
53
  userId = (await this.fetchUserIdFromMe(result.accessToken)) ?? undefined;
@@ -67,7 +94,7 @@ export class AuthService {
67
94
  path: "/auth/refresh",
68
95
  body: { refreshToken },
69
96
  });
70
- this.setAccessToken(result.accessToken, result.expiresIn ?? 3600);
97
+ this.setAccessToken(result.accessToken, result.expiresIn);
71
98
  this.consecutiveRefreshFailures = 0;
72
99
  if (result.refreshToken && result.refreshToken !== refreshToken) {
73
100
  await this.secrets.set("refreshToken", result.refreshToken);
@@ -90,9 +117,46 @@ export class AuthService {
90
117
  return null;
91
118
  }
92
119
  }
120
+ /**
121
+ * Drops the cached access token so the next getValidAccessToken() is forced
122
+ * through a refresh. Used when the backend rejects a token that still looks
123
+ * valid locally (clock skew, server-side revocation, wrong lifetime guess).
124
+ */
125
+ invalidateAccessToken() {
126
+ this.accessToken = undefined;
127
+ this.tokenExpiresAt = undefined;
128
+ }
129
+ /**
130
+ * Performs an authenticated backend request. If the backend answers 401
131
+ * despite a locally-valid token, the cached token is invalidated and the
132
+ * request retried once with a freshly refreshed token before the error
133
+ * surfaces.
134
+ */
135
+ async authenticatedRequest(req) {
136
+ const token = await this.getValidAccessToken();
137
+ if (!token)
138
+ throw new NotAuthenticatedError();
139
+ try {
140
+ return await this.client.request({ ...req, bearerToken: token });
141
+ }
142
+ catch (err) {
143
+ if (!(err instanceof NotAuthenticatedError))
144
+ throw err;
145
+ this.invalidateAccessToken();
146
+ const fresh = await this.getValidAccessToken();
147
+ if (!fresh)
148
+ throw err;
149
+ return this.client.request({ ...req, bearerToken: fresh });
150
+ }
151
+ }
93
152
  setAccessToken(token, expiresIn) {
94
153
  this.accessToken = token;
95
- this.tokenExpiresAt = new Date(Date.now() + expiresIn * 1000);
154
+ // The JWT's own exp claim wins over whatever the response body says —
155
+ // the orchestrator omits expiresIn and issues 15-minute tokens, and a
156
+ // wrong guess here means presenting expired JWTs until the guess runs out.
157
+ const expiresAtMs = decodeJwtExpiryMs(token) ??
158
+ Date.now() + (expiresIn ?? DEFAULT_TOKEN_LIFETIME_SECONDS) * 1000;
159
+ this.tokenExpiresAt = new Date(expiresAtMs - TOKEN_EXPIRY_SAFETY_MARGIN_MS);
96
160
  }
97
161
  async fetchUserIdFromMe(accessToken) {
98
162
  try {
@@ -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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"}
@@ -25,6 +25,10 @@ export interface HostCapacityPayload {
25
25
  loadedModels: {
26
26
  name: string;
27
27
  pinned: boolean;
28
+ state?: "loaded" | "wedged";
29
+ activeRequests?: number;
30
+ oldestInFlightMs?: number;
31
+ lastWorkerResponseAt?: string | null;
28
32
  }[];
29
33
  lastUpdated: string;
30
34
  }
@@ -72,6 +76,7 @@ export declare function computeCanAcceptRequests(args: {
72
76
  utilizationType: string;
73
77
  status: string;
74
78
  vramFreeMB: number;
79
+ allResidentWedged?: boolean;
75
80
  }): boolean;
76
81
  /**
77
82
  * Build the full HostCapacity snapshot for a HeartbeatV2 message. Best-effort:
@@ -81,8 +86,7 @@ export declare function computeCanAcceptRequests(args: {
81
86
  export declare function buildHostCapacity(hostId: string, gpuIndex: number, activeSessions: number, resident?: {
82
87
  model: string | null;
83
88
  pinned: boolean;
84
- }, residentModels?: {
85
- name: string;
86
- pinned: boolean;
87
- }[]): Promise<HostCapacityPayload>;
89
+ }, residentModels?: HostCapacityPayload["loadedModels"], opts?: {
90
+ allResidentWedged?: boolean;
91
+ }): Promise<HostCapacityPayload>;
88
92
  //# sourceMappingURL=capacity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capacity.d.ts","sourceRoot":"","sources":["../../src/core/capacity.ts"],"names":[],"mappings":"AAcA;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;IAI3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAG3B,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;CACrB;AAqKD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAUhF;AAED,oFAAoF;AACpF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,MAAM,CAST;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAOT;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAKV;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,QAAQ,GAAE;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAmC,EACpF,cAAc,GAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,EAAO,GACvD,OAAO,CAAC,mBAAmB,CAAC,CAiD9B"}
1
+ {"version":3,"file":"capacity.d.ts","sourceRoot":"","sources":["../../src/core/capacity.ts"],"names":[],"mappings":"AAcA;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;IAI3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAM3B,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtC,EAAE,CAAC;IACJ,WAAW,EAAE,MAAM,CAAC;CACrB;AAqKD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAUhF;AAED,oFAAoF;AACpF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,MAAM,CAST;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAOT;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IAKnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,OAAO,CAMV;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,QAAQ,GAAE;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAmC,EACpF,cAAc,GAAE,mBAAmB,CAAC,cAAc,CAAM,EACxD,IAAI,GAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC,mBAAmB,CAAC,CAsD9B"}
@@ -185,7 +185,9 @@ export function classifyStatus(args) {
185
185
  * canAcceptRequests with this same formula, so both host kinds stay in sync.
186
186
  */
187
187
  export function computeCanAcceptRequests(args) {
188
- const { utilizationType, status, vramFreeMB } = args;
188
+ const { utilizationType, status, vramFreeMB, allResidentWedged } = args;
189
+ if (allResidentWedged)
190
+ return false;
189
191
  if (status === "Overloaded" || status === "Busy")
190
192
  return false;
191
193
  if (utilizationType === "GPU" && vramFreeMB < 2000)
@@ -197,7 +199,7 @@ export function computeCanAcceptRequests(args) {
197
199
  * all sampling is wrapped so a probe failure degrades a field rather than
198
200
  * throwing — the caller still gets a usable, conservative snapshot.
199
201
  */
200
- export async function buildHostCapacity(hostId, gpuIndex, activeSessions, resident = { model: null, pinned: false }, residentModels = []) {
202
+ export async function buildHostCapacity(hostId, gpuIndex, activeSessions, resident = { model: null, pinned: false }, residentModels = [], opts = {}) {
201
203
  const [cpu, mem] = await Promise.all([si.currentLoad(), si.mem()]);
202
204
  const cpuUsage = cpu.currentLoad ?? 0;
203
205
  const ramFreeMB = mem.available / 1024 / 1024;
@@ -218,7 +220,12 @@ export async function buildHostCapacity(hostId, gpuIndex, activeSessions, reside
218
220
  vramFreeMB,
219
221
  totalVRAM,
220
222
  });
221
- const canAcceptRequests = computeCanAcceptRequests({ utilizationType, status, vramFreeMB });
223
+ const canAcceptRequests = computeCanAcceptRequests({
224
+ utilizationType,
225
+ status,
226
+ vramFreeMB,
227
+ allResidentWedged: opts.allResidentWedged ?? false,
228
+ });
222
229
  return {
223
230
  hostId,
224
231
  utilizationType,
@@ -1 +1 @@
1
- {"version":3,"file":"capacity.js","sourceRoot":"","sources":["../../src/core/capacity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capacity.js","sourceRoot":"","sources":["../../src/core/capacity.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,8 @@ export declare class HostStatsService {
46
46
  private hostEarnings;
47
47
  private lastError;
48
48
  private tickCount;
49
+ private tickInFlight;
50
+ private readonly lastFailureBySource;
49
51
  constructor(backend: BackendClient, auth: AuthService, config: ConfigService);
50
52
  start(intervalMs?: number): void;
51
53
  stop(): void;
@@ -55,6 +57,14 @@ export declare class HostStatsService {
55
57
  getHostEarningsSnapshot(): HostEarningsSnapshot | null;
56
58
  getLastError(): StatsFetchError | null;
57
59
  tick(): Promise<void>;
60
+ private runTick;
61
+ /**
62
+ * Tracks per-source failure state and logs only on transitions: a new (or
63
+ * changed) failure logs one warning, recovery logs one info line, repeats
64
+ * of the same failure stay silent. The returned error still feeds
65
+ * lastError every tick so getStatus keeps reporting staleness.
66
+ */
67
+ private recordResult;
58
68
  private fetchHost;
59
69
  private fetchNetwork;
60
70
  private fetchEarnings;
@@ -1 +1 @@
1
- {"version":3,"file":"host-stats.d.ts","sourceRoot":"","sources":["../../src/core/host-stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAuC,MAAM,qBAAqB,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAiCD,qBAAa,gBAAgB;IAUzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXzB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,SAAS,CAAK;gBAGH,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,aAAa;IAGxC,KAAK,CAAC,UAAU,GAAE,MAAwB,GAAG,IAAI;IAMjD,IAAI,IAAI,IAAI;IAOZ,eAAe,IAAI,YAAY,GAAG,IAAI;IAItC,kBAAkB,IAAI,eAAe,GAAG,IAAI;IAI5C,mBAAmB,IAAI,gBAAgB,GAAG,IAAI;IAI9C,uBAAuB,IAAI,oBAAoB,GAAG,IAAI;IAItD,YAAY,IAAI,eAAe,GAAG,IAAI;IAIhC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAgEb,SAAS;YAkBT,YAAY;YAeZ,aAAa;YAeb,iBAAiB;CAehC"}
1
+ {"version":3,"file":"host-stats.d.ts","sourceRoot":"","sources":["../../src/core/host-stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAuC,MAAM,qBAAqB,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAiCD,qBAAa,gBAAgB;IAczB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAfzB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAgD;gBAGjE,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,aAAa;IAGxC,KAAK,CAAC,UAAU,GAAE,MAAwB,GAAG,IAAI;IAMjD,IAAI,IAAI,IAAI;IAOZ,eAAe,IAAI,YAAY,GAAG,IAAI;IAItC,kBAAkB,IAAI,eAAe,GAAG,IAAI;IAI5C,mBAAmB,IAAI,gBAAgB,GAAG,IAAI;IAI9C,uBAAuB,IAAI,oBAAoB,GAAG,IAAI;IAItD,YAAY,IAAI,eAAe,GAAG,IAAI;IAIhC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAab,OAAO;IAsDrB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;YAsBN,SAAS;YAkBT,YAAY;YAeZ,aAAa;YAYb,iBAAiB;CAYhC"}
@@ -13,6 +13,10 @@ export class HostStatsService {
13
13
  hostEarnings = null;
14
14
  lastError = null;
15
15
  tickCount = 0;
16
+ tickInFlight = false;
17
+ // Last failure message per source, used to log only on state changes
18
+ // (working→broken, message change, broken→recovered) instead of every tick.
19
+ lastFailureBySource = new Map();
16
20
  constructor(backend, auth, config) {
17
21
  this.backend = backend;
18
22
  this.auth = auth;
@@ -46,6 +50,20 @@ export class HostStatsService {
46
50
  return this.lastError;
47
51
  }
48
52
  async tick() {
53
+ // A hung fetch (no timeout on the backend client) can outlive the poll
54
+ // interval; without this guard several ticks pile up in flight and their
55
+ // failures all land in the log at once when the requests finally settle.
56
+ if (this.tickInFlight)
57
+ return;
58
+ this.tickInFlight = true;
59
+ try {
60
+ await this.runTick();
61
+ }
62
+ finally {
63
+ this.tickInFlight = false;
64
+ }
65
+ }
66
+ async runTick() {
49
67
  const cfg = await this.config.load();
50
68
  const doEarnings = this.tickCount++ % EARNINGS_POLL_EVERY === 0;
51
69
  const tasks = [
@@ -65,49 +83,55 @@ export class HostStatsService {
65
83
  const results = await Promise.allSettled(tasks);
66
84
  let nextError = null;
67
85
  const hostResult = results[0];
68
- if (hostResult && hostResult.status === "fulfilled") {
86
+ if (hostResult?.status === "fulfilled") {
69
87
  const value = hostResult.value;
70
88
  if (value)
71
89
  this.host = value;
72
90
  }
73
- else if (hostResult && hostResult.status === "rejected") {
74
- nextError = { source: "host", message: errorMessage(hostResult.reason), at: Date.now() };
75
- getLogger().warn(`host-stats: /api/hosts failed: ${nextError.message}`);
76
- }
91
+ nextError = this.recordResult("host", "/api/hosts", hostResult) ?? nextError;
77
92
  const netResult = results[1];
78
- if (netResult && netResult.status === "fulfilled") {
93
+ if (netResult?.status === "fulfilled") {
79
94
  this.network = netResult.value;
80
95
  }
81
- else if (netResult && netResult.status === "rejected") {
82
- nextError = { source: "network", message: errorMessage(netResult.reason), at: Date.now() };
83
- getLogger().warn(`host-stats: /api/networks/stats failed: ${nextError.message}`);
84
- }
96
+ nextError = this.recordResult("network", "/api/networks/stats", netResult) ?? nextError;
85
97
  if (earningsTaskIdx >= 0) {
86
98
  const earnResult = results[earningsTaskIdx];
87
99
  if (earnResult?.status === "fulfilled") {
88
- const value = earnResult.value;
89
- if (value)
90
- this.earnings = value;
91
- }
92
- else if (earnResult?.status === "rejected") {
93
- nextError = { source: "earnings", message: errorMessage(earnResult.reason), at: Date.now() };
94
- getLogger().warn(`host-stats: /api/users/payouts failed: ${nextError.message}`);
100
+ this.earnings = earnResult.value;
95
101
  }
102
+ nextError = this.recordResult("earnings", "/api/users/payouts", earnResult) ?? nextError;
96
103
  }
97
104
  if (hostEarningsTaskIdx >= 0) {
98
105
  const hostEarnResult = results[hostEarningsTaskIdx];
99
106
  if (hostEarnResult?.status === "fulfilled") {
100
- const value = hostEarnResult.value;
101
- if (value)
102
- this.hostEarnings = value;
103
- }
104
- else if (hostEarnResult?.status === "rejected") {
105
- nextError = { source: "hostEarnings", message: errorMessage(hostEarnResult.reason), at: Date.now() };
106
- getLogger().warn(`host-stats: /api/hosts/earnings failed: ${nextError.message}`);
107
+ this.hostEarnings = hostEarnResult.value;
107
108
  }
109
+ nextError = this.recordResult("hostEarnings", "/api/hosts/earnings", hostEarnResult) ?? nextError;
108
110
  }
109
111
  this.lastError = nextError;
110
112
  }
113
+ /**
114
+ * Tracks per-source failure state and logs only on transitions: a new (or
115
+ * changed) failure logs one warning, recovery logs one info line, repeats
116
+ * of the same failure stay silent. The returned error still feeds
117
+ * lastError every tick so getStatus keeps reporting staleness.
118
+ */
119
+ recordResult(source, label, result) {
120
+ if (!result)
121
+ return null;
122
+ if (result.status === "fulfilled") {
123
+ if (this.lastFailureBySource.delete(source)) {
124
+ getLogger().info(`host-stats: ${label} recovered`);
125
+ }
126
+ return null;
127
+ }
128
+ const message = errorMessage(result.reason);
129
+ if (this.lastFailureBySource.get(source) !== message) {
130
+ this.lastFailureBySource.set(source, message);
131
+ getLogger().warn(`host-stats: ${label} failed: ${message} (suppressing repeats until recovery)`);
132
+ }
133
+ return { source, message, at: Date.now() };
134
+ }
111
135
  async fetchHost(hostId) {
112
136
  // Public endpoint — matches Electron's unauthenticated fetch.
113
137
  const res = await this.backend.request({
@@ -140,13 +164,9 @@ export class HostStatsService {
140
164
  };
141
165
  }
142
166
  async fetchEarnings(userId) {
143
- const token = await this.auth.getValidAccessToken();
144
- if (!token)
145
- return null;
146
- const res = await this.backend.request({
167
+ const res = await this.auth.authenticatedRequest({
147
168
  method: "GET",
148
169
  path: `/api/users/${userId}/payouts?pageSize=1`,
149
- bearerToken: token,
150
170
  });
151
171
  return {
152
172
  pendingAmount: numberOr(res.summary?.pendingAmount, 0),
@@ -155,13 +175,9 @@ export class HostStatsService {
155
175
  };
156
176
  }
157
177
  async fetchHostEarnings(hostId) {
158
- const token = await this.auth.getValidAccessToken();
159
- if (!token)
160
- return null;
161
- const res = await this.backend.request({
178
+ const res = await this.auth.authenticatedRequest({
162
179
  method: "GET",
163
180
  path: `/api/hosts/${hostId}/earnings`,
164
- bearerToken: token,
165
181
  });
166
182
  return {
167
183
  estimatedEarningsUsd: numberOr(res.estimatedEarningsUsd, 0),
@@ -1 +1 @@
1
- {"version":3,"file":"host-stats.js","sourceRoot":"","sources":["../../src/core/host-stats.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,iDAAiD;AACjF,MAAM,mBAAmB,GAAG,CAAC,CAAC,CAAC,4CAA4C;AAwE3E,MAAM,OAAO,gBAAgB;IAUR;IACA;IACA;IAXX,KAAK,GAA0B,IAAI,CAAC;IACpC,IAAI,GAAwB,IAAI,CAAC;IACjC,OAAO,GAA2B,IAAI,CAAC;IACvC,QAAQ,GAA4B,IAAI,CAAC;IACzC,YAAY,GAAgC,IAAI,CAAC;IACjD,SAAS,GAA2B,IAAI,CAAC;IACzC,SAAS,GAAG,CAAC,CAAC;IAEtB,YACmB,OAAsB,EACtB,IAAiB,EACjB,MAAqB;QAFrB,YAAO,GAAP,OAAO,CAAe;QACtB,SAAI,GAAJ,IAAI,CAAa;QACjB,WAAM,GAAN,MAAM,CAAe;IACrC,CAAC;IAEJ,KAAK,CAAC,aAAqB,eAAe;QACxC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,mBAAmB,KAAK,CAAC,CAAC;QAEhE,MAAM,KAAK,GAAuB;YAChC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/D,IAAI,CAAC,YAAY,EAAE;SACpB,CAAC;QACF,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,mBAAmB,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC7B,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC7B,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,SAAS,GAA2B,IAAI,CAAC;QAE7C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,UAAU,CAAC,KAA4B,CAAC;YACtD,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAC/B,CAAC;aAAM,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1D,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACzF,SAAS,EAAE,CAAC,IAAI,CAAC,kCAAkC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,KAAwB,CAAC;QACpD,CAAC;aAAM,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACxD,SAAS,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3F,SAAS,EAAE,CAAC,IAAI,CAAC,2CAA2C,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YAC5C,IAAI,UAAU,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAgC,CAAC;gBAC1D,IAAI,KAAK;oBAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACnC,CAAC;iBAAM,IAAI,UAAU,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC7C,SAAS,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC7F,SAAS,EAAE,CAAC,IAAI,CAAC,0CAA0C,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QAED,IAAI,mBAAmB,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACpD,IAAI,cAAc,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,cAAc,CAAC,KAAoC,CAAC;gBAClE,IAAI,KAAK;oBAAE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YACvC,CAAC;iBAAM,IAAI,cAAc,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjD,SAAS,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACrG,SAAS,EAAE,CAAC,IAAI,CAAC,2CAA2C,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,MAAc;QACpC,8DAA8D;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAe;YACnD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,MAAM,EAAE;SAC7B,CAAC,CAAC;QACH,OAAO;YACL,UAAU,EAAE,GAAG,CAAC,UAAU,KAAK,KAAK;YACpC,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC;YACrD,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;YAC3C,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACjD,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACrD,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC;YACrD,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC;YACjD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAkB;YACtD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,qBAAqB;SAC5B,CAAC,CAAC;QACH,OAAO;YACL,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACzC,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;YAC7C,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YACvC,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACrD,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACnD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAc;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAkB;YACtD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,MAAM,qBAAqB;YAC/C,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QACH,OAAO;YACL,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YACtD,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC;YAChD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,MAAc;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAuB;YAC3D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,MAAM,WAAW;YACrC,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QACH,OAAO;YACL,oBAAoB,EAAE,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC;YAC3D,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;YAC7C,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACzC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;IACJ,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,CAAU,EAAE,QAAgB;IAC5C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpE,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU,EAAE,QAAgB;IAC5C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9D,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,GAAG,YAAY,qBAAqB;QAAE,OAAO,mBAAmB,CAAC;IACrE,IAAI,GAAG,YAAY,YAAY;QAAE,OAAO,QAAQ,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;IAC7E,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"host-stats.js","sourceRoot":"","sources":["../../src/core/host-stats.ts"],"names":[],"mappings":"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"}
@@ -193,6 +193,15 @@ process.on("message", (msg) => {
193
193
  cancelAll();
194
194
  break;
195
195
  }
196
+ // S14-7 liveness probe. Each incoming message gets its own async handler
197
+ // invocation and llama.cpp evals run on native threads, so the event loop
198
+ // answers pings even mid-generation. A BUSY worker pongs; a WEDGED one
199
+ // (native deadlock, driver fault) stays silent — exactly the distinction
200
+ // the heartbeat needs between "serving" and "advertising a corpse".
201
+ case "ping": {
202
+ send({ type: "pong", t: m["t"] });
203
+ break;
204
+ }
196
205
  case "dispose": {
197
206
  cancelAll();
198
207
  await new Promise((r) => setTimeout(r, 300));
@@ -1 +1 @@
1
- {"version":3,"file":"llmWorker.js","sourceRoot":"","sources":["../../src/core/llmWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llmWorker.js","sourceRoot":"","sources":["../../src/core/llmWorker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA6BxE,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAErG,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAmB;IAqBlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IApBjC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAsC;IAEpD,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAI7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgE;IACzF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,cAAc,CAAgB;gBAET,IAAI,EAAE,mBAAmB;IAKtD,SAAS,IAAI,kBAAkB;IAI/B,eAAe,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,EAAE;IAIrF,aAAa,IAAI;QAAE,EAAE,EAAE,cAAc,CAAC;QAAC,GAAG,EAAE,cAAc,CAAA;KAAE;IAI5D,iBAAiB,IAAI,MAAM,EAAE;IAIvB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA2HxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAmBnB,gBAAgB;IA4B9B,OAAO,CAAC,iBAAiB;IAanB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;YA2B5B,yBAAyB;YAoEzB,YAAY;IAoH1B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,UAAU;YAeJ,IAAI;IASlB,OAAO,CAAC,SAAS;CAKlB"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA6BxE,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAErG,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAmB;IAqBlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IApBjC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAsC;IAEpD,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAI7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgE;IACzF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,cAAc,CAAgB;gBAET,IAAI,EAAE,mBAAmB;IAKtD,SAAS,IAAI,kBAAkB;IAI/B,eAAe,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,EAAE;IAIrF,aAAa,IAAI;QAAE,EAAE,EAAE,cAAc,CAAC;QAAC,GAAG,EAAE,cAAc,CAAA;KAAE;IAI5D,iBAAiB,IAAI,MAAM,EAAE;IAIvB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA2HxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAmBnB,gBAAgB;IA4B9B,OAAO,CAAC,iBAAiB;IAanB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;YA2B5B,yBAAyB;YAgFzB,YAAY;IAoH1B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,UAAU;YAeJ,IAAI;IASlB,OAAO,CAAC,SAAS;CAKlB"}
@@ -299,16 +299,21 @@ export class OrchestratorService {
299
299
  // instead of assigning prompts until the host OOMs and crashes. Kept
300
300
  // separate from v1 so a metrics-sampling hiccup never drops liveness.
301
301
  try {
302
+ // S14-7: probe every resident worker for liveness. Workers answer pings
303
+ // even mid-generation (evals run on native threads), so unanswered pings
304
+ // mean WEDGED, not busy. The probe result is read on the NEXT tick via
305
+ // unanswered-ping counts — no await, no heartbeat delay.
306
+ this.pool.pingAll();
302
307
  // Report the models actually resident on this host (ground truth) so the
303
308
  // network shows what's loaded instead of inferring from routing history.
304
309
  // The host can hold several at once: send the FULL set (loadedModels, S13-13
305
310
  // Phase 2) plus a single "primary" (pinned-then-MRU) in loadedModel for
306
- // backwards-compat with older backends.
311
+ // backwards-compat with older backends. S14-7 enriches each entry with
312
+ // ADDITIVE health fields (state / activeRequests / oldestInFlightMs /
313
+ // lastWorkerResponseAt) — old backends deserialize unchanged (unknown
314
+ // JSON members are ignored); new backends can route per-model on health.
307
315
  const states = this.pool.residentStates();
308
- const residentModels = states.map((s) => ({
309
- name: s.modelId,
310
- pinned: s.loadType === "manual",
311
- }));
316
+ const residentModels = this.pool.residentHealth();
312
317
  const primary = states.length
313
318
  ? [...states].sort((a, b) => Number(b.loadType === "manual") - Number(a.loadType === "manual") ||
314
319
  b.lastUsedAt - a.lastUsedAt)[0]
@@ -316,7 +321,11 @@ export class OrchestratorService {
316
321
  const resident = primary
317
322
  ? { model: primary.modelId, pinned: primary.loadType === "manual" }
318
323
  : { model: null, pinned: false };
319
- const capacity = await buildHostCapacity(hostId, gpuIndex, this.sessions.size, resident, residentModels);
324
+ // S14-7 honesty: a host whose every resident worker is wedged must not
325
+ // advertise itself as accepting — its main process is fine but it cannot
326
+ // serve anything until the deadman recovers the workers.
327
+ const allResidentWedged = residentModels.length > 0 && residentModels.every((m) => m.state === "wedged");
328
+ const capacity = await buildHostCapacity(hostId, gpuIndex, this.sessions.size, resident, residentModels, { allResidentWedged });
320
329
  await this.connection.send("HeartbeatV2", capacity);
321
330
  }
322
331
  catch (err) {