@antseed/node 0.2.157 → 0.2.159

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.
Files changed (74) hide show
  1. package/dist/discovery/announcer.d.ts +5 -2
  2. package/dist/discovery/announcer.d.ts.map +1 -1
  3. package/dist/discovery/announcer.js +10 -5
  4. package/dist/discovery/announcer.js.map +1 -1
  5. package/dist/discovery/metadata/fields/service-performance.d.ts +7 -0
  6. package/dist/discovery/metadata/fields/service-performance.d.ts.map +1 -0
  7. package/dist/discovery/metadata/fields/service-performance.js +63 -0
  8. package/dist/discovery/metadata/fields/service-performance.js.map +1 -0
  9. package/dist/discovery/metadata/index.d.ts.map +1 -1
  10. package/dist/discovery/metadata/index.js +2 -1
  11. package/dist/discovery/metadata/index.js.map +1 -1
  12. package/dist/discovery/metadata/versions/v14.d.ts +5 -0
  13. package/dist/discovery/metadata/versions/v14.d.ts.map +1 -0
  14. package/dist/discovery/metadata/versions/v14.js +16 -0
  15. package/dist/discovery/metadata/versions/v14.js.map +1 -0
  16. package/dist/discovery/metadata-validator.d.ts.map +1 -1
  17. package/dist/discovery/metadata-validator.js +29 -1
  18. package/dist/discovery/metadata-validator.js.map +1 -1
  19. package/dist/discovery/service-catalog.d.ts +5 -2
  20. package/dist/discovery/service-catalog.d.ts.map +1 -1
  21. package/dist/discovery/service-catalog.js +3 -1
  22. package/dist/discovery/service-catalog.js.map +1 -1
  23. package/dist/health/model-health-checker.d.ts +42 -4
  24. package/dist/health/model-health-checker.d.ts.map +1 -1
  25. package/dist/health/model-health-checker.js +166 -14
  26. package/dist/health/model-health-checker.js.map +1 -1
  27. package/dist/health/self-health-error.d.ts +17 -0
  28. package/dist/health/self-health-error.d.ts.map +1 -1
  29. package/dist/health/self-health-error.js +34 -0
  30. package/dist/health/self-health-error.js.map +1 -1
  31. package/dist/health/service-performance.d.ts +28 -0
  32. package/dist/health/service-performance.d.ts.map +1 -0
  33. package/dist/health/service-performance.js +144 -0
  34. package/dist/health/service-performance.js.map +1 -0
  35. package/dist/health/stream-outcome.d.ts +19 -0
  36. package/dist/health/stream-outcome.d.ts.map +1 -0
  37. package/dist/health/stream-outcome.js +91 -0
  38. package/dist/health/stream-outcome.js.map +1 -0
  39. package/dist/index.d.ts +2 -2
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +2 -2
  42. package/dist/index.js.map +1 -1
  43. package/dist/node.d.ts +2 -0
  44. package/dist/node.d.ts.map +1 -1
  45. package/dist/node.js +7 -0
  46. package/dist/node.js.map +1 -1
  47. package/dist/payments/chain-config.d.ts +1 -1
  48. package/dist/payments/chain-config.d.ts.map +1 -1
  49. package/dist/payments/evm/verifier-client.d.ts +19 -3
  50. package/dist/payments/evm/verifier-client.d.ts.map +1 -1
  51. package/dist/payments/evm/verifier-client.js +39 -2
  52. package/dist/payments/evm/verifier-client.js.map +1 -1
  53. package/dist/payments/generated-contract-addresses.d.ts +2 -0
  54. package/dist/payments/generated-contract-addresses.d.ts.map +1 -1
  55. package/dist/payments/generated-contract-addresses.js +2 -0
  56. package/dist/payments/generated-contract-addresses.js.map +1 -1
  57. package/dist/payments/index.d.ts +1 -1
  58. package/dist/payments/index.d.ts.map +1 -1
  59. package/dist/payments/index.js.map +1 -1
  60. package/dist/payments/seller-payment-manager.d.ts +50 -0
  61. package/dist/payments/seller-payment-manager.d.ts.map +1 -1
  62. package/dist/payments/seller-payment-manager.js +320 -80
  63. package/dist/payments/seller-payment-manager.js.map +1 -1
  64. package/dist/routing/seller-health.d.ts +21 -0
  65. package/dist/routing/seller-health.d.ts.map +1 -1
  66. package/dist/routing/seller-health.js +19 -3
  67. package/dist/routing/seller-health.js.map +1 -1
  68. package/dist/seller-request-handler.d.ts +5 -0
  69. package/dist/seller-request-handler.d.ts.map +1 -1
  70. package/dist/seller-request-handler.js +138 -21
  71. package/dist/seller-request-handler.js.map +1 -1
  72. package/dist/types/peer.d.ts +4 -2
  73. package/dist/types/peer.d.ts.map +1 -1
  74. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"service-catalog.js","sourceRoot":"","sources":["../../src/discovery/service-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-catalog.js","sourceRoot":"","sources":["../../src/discovery/service-catalog.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,13 @@ export declare const DEFAULT_HEALTH_CHECK_FAILURE_THRESHOLD = 3;
10
10
  export declare const DEFAULT_HEALTH_CHECK_PROBE_TIMEOUT_MS = 60000;
11
11
  /** Shortest gap between probes triggered by failed buyer requests for one service. */
12
12
  export declare const LIVE_FAILURE_PROBE_MIN_GAP_MS = 30000;
13
+ /**
14
+ * A service that keeps failing is probed less often: every interval, then
15
+ * every second, then every third (with the default, 5, 10 and 15 minutes).
16
+ * Its upstream is often rate limited or out of credit, and each probe would
17
+ * add to that. A successful buyer request still marks it healthy at once.
18
+ */
19
+ export declare const MAX_FAILING_PROBE_BACKOFF = 3;
13
20
  export interface ModelHealthTarget {
14
21
  /**
15
22
  * The provider registered with the node. The checker publishes results on
@@ -105,8 +112,10 @@ type ProbeOutcome = 'healthy' | 'unhealthy' | 'inconclusive';
105
112
  * Buyer traffic is the main evidence: a successful billable response marks a
106
113
  * service healthy, and a service that had one within the last interval is not
107
114
  * probed. Idle services get a minimal (1-token) completion each interval, and
108
- * a failed buyer request triggers an early probe. A service is failing after
109
- * `failureThreshold` failed checks in a row and recovers on the first pass.
115
+ * a failed buyer request triggers an early probe. Image and video services
116
+ * are never probed (a probe would cost a real generation): their failed buyer
117
+ * requests count as the checks. A service is failing after `failureThreshold`
118
+ * failed checks in a row and recovers on the first pass.
110
119
  */
111
120
  export declare class ModelHealthChecker {
112
121
  private readonly _targets;
@@ -125,6 +134,8 @@ export declare class ModelHealthChecker {
125
134
  private readonly _onSweepComplete;
126
135
  /** Each upstream's credit as last seen; unset until something said. */
127
136
  private readonly _accounts;
137
+ /** How many account answers each provider has had, changed or not. */
138
+ private readonly _accountAnswers;
128
139
  /** Services marked failing before `onChange` could be told; reported on the first start. */
129
140
  private _failingAtInit;
130
141
  constructor(config: ModelHealthCheckerConfig);
@@ -135,6 +146,15 @@ export declare class ModelHealthChecker {
135
146
  runSweep(): Promise<void>;
136
147
  getSnapshot(): ServiceHealthSnapshot[];
137
148
  private _runSweep;
149
+ /**
150
+ * An image or video service on an upstream without its own account check
151
+ * follows what the upstream's other services found out about the account:
152
+ * each sweep while it is out of credit counts as a failed check, as an
153
+ * account check does for a video service, and once it has credit again
154
+ * those failures are forgiven: a failing service recovers, unless a buyer
155
+ * request failed it for another reason.
156
+ */
157
+ private _followAccount;
138
158
  /**
139
159
  * Run the provider's free checks for services the probe skips: the
140
160
  * upstream account check (key valid, account funded) once, and the model
@@ -157,10 +177,28 @@ export declare class ModelHealthChecker {
157
177
  */
158
178
  reportUpstreamResponse(provider: Provider, statusCode: number, body: string, billable?: boolean, service?: string): void;
159
179
  /** A live request threw before the upstream answered (network error, timeout). */
160
- reportUpstreamFailure(provider: Provider, service: string): void;
180
+ reportUpstreamFailure(provider: Provider, service: string, billable?: boolean): void;
181
+ /**
182
+ * Image and video services are never probed, so their buyers' failures are
183
+ * the checks: `failureThreshold` in a row mark the service failing.
184
+ */
185
+ private _recordLiveFailure;
186
+ /** Whether the provider's probes read its account: it has a probed service and no account check of its own. */
187
+ private _probesAccount;
188
+ /**
189
+ * No probe can tell when a service failing on live failures (or on its
190
+ * upstream's credit, which nothing may confirm again) works again, and
191
+ * buyers skip it while it is failing: after the same backoff a probed
192
+ * service waits, it is announced unknown so buyers try it again.
193
+ */
194
+ private _retryAfterLiveFailures;
161
195
  /** The announced health of `service`, if it has been checked. */
162
196
  getServiceHealth(provider: Provider, service: string): ServiceHealth | undefined;
163
197
  private _findTarget;
198
+ /** A failing service skips scheduled probes for longer the more checks it has failed in a row. */
199
+ private _backingOff;
200
+ /** How many intervals a failing service waits for its next check. */
201
+ private _failingBackoff;
164
202
  private _probeSoon;
165
203
  /** Probes never compete with paying buyers for concurrency slots. */
166
204
  private _atCapacity;
@@ -168,7 +206,7 @@ export declare class ModelHealthChecker {
168
206
  /** Records an upstream's credit and reports a change; the first reading of a funded account is not a change. */
169
207
  private _setAccount;
170
208
  private _recordSuccess;
171
- /** A failed check started at `checkStartedAt`; a buyer success since then outweighs it. */
209
+ /** A failed check started at `checkStartedAt` (null: a buyer request's); a buyer success since then outweighs it. */
172
210
  private _recordFailure;
173
211
  /** Writes the announced form of `state` onto the provider. */
174
212
  private _publish;
@@ -1 +1 @@
1
- {"version":3,"file":"model-health-checker.d.ts","sourceRoot":"","sources":["../../src/health/model-health-checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-health-checker.d.ts","sourceRoot":"","sources":["../../src/health/model-health-checker.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,13 @@ export const DEFAULT_HEALTH_CHECK_FAILURE_THRESHOLD = 3;
10
10
  export const DEFAULT_HEALTH_CHECK_PROBE_TIMEOUT_MS = 60_000;
11
11
  /** Shortest gap between probes triggered by failed buyer requests for one service. */
12
12
  export const LIVE_FAILURE_PROBE_MIN_GAP_MS = 30_000;
13
+ /**
14
+ * A service that keeps failing is probed less often: every interval, then
15
+ * every second, then every third (with the default, 5, 10 and 15 minutes).
16
+ * Its upstream is often rate limited or out of credit, and each probe would
17
+ * add to that. A successful buyer request still marks it healthy at once.
18
+ */
19
+ export const MAX_FAILING_PROBE_BACKOFF = 3;
13
20
  class ProbeTimeoutError extends Error {
14
21
  }
15
22
  /**
@@ -21,8 +28,10 @@ class ProbeTimeoutError extends Error {
21
28
  * Buyer traffic is the main evidence: a successful billable response marks a
22
29
  * service healthy, and a service that had one within the last interval is not
23
30
  * probed. Idle services get a minimal (1-token) completion each interval, and
24
- * a failed buyer request triggers an early probe. A service is failing after
25
- * `failureThreshold` failed checks in a row and recovers on the first pass.
31
+ * a failed buyer request triggers an early probe. Image and video services
32
+ * are never probed (a probe would cost a real generation): their failed buyer
33
+ * requests count as the checks. A service is failing after `failureThreshold`
34
+ * failed checks in a row and recovers on the first pass.
26
35
  */
27
36
  export class ModelHealthChecker {
28
37
  _targets;
@@ -41,6 +50,8 @@ export class ModelHealthChecker {
41
50
  _onSweepComplete;
42
51
  /** Each upstream's credit as last seen; unset until something said. */
43
52
  _accounts = new Map();
53
+ /** How many account answers each provider has had, changed or not. */
54
+ _accountAnswers = new Map();
44
55
  /** Services marked failing before `onChange` could be told; reported on the first start. */
45
56
  _failingAtInit = [];
46
57
  constructor(config) {
@@ -145,7 +156,10 @@ export class ModelHealthChecker {
145
156
  if (this._atCapacity(provider))
146
157
  continue;
147
158
  const services = [...provider.services];
148
- const hasFreeCheck = (candidate) => Boolean(candidate?.checkServiceHealth || candidate?.checkUpstreamAccount);
159
+ for (const service of services) {
160
+ if (!supportsHealthProbe(resolveProbeProtocol(provider, service)))
161
+ this._retryAfterLiveFailures(this._stateFor(provider, service));
162
+ }
149
163
  const checkProvider = hasFreeCheck(target.probeProvider) ? target.probeProvider : provider;
150
164
  // Free checks also read the account balance, so they run even with traffic.
151
165
  const checked = hasFreeCheck(checkProvider)
@@ -165,8 +179,55 @@ export class ModelHealthChecker {
165
179
  debugLog(`[ModelHealth] ${provider.name}/${service}: skipping probe, served a buyer ${Math.round((now - state.lastTrafficAt) / 1000)}s ago`);
166
180
  continue;
167
181
  }
182
+ if (this._backingOff(state, now)) {
183
+ debugLog(`[ModelHealth] ${provider.name}/${service}: failing, next probe later (${state.consecutiveFailures} failed checks in a row)`);
184
+ continue;
185
+ }
168
186
  await this._probeService(target, service);
169
187
  }
188
+ // Only a probed service can find out that the account has credit again: without one, a cached
189
+ // out-of-credit answer would keep the others failing for good, so they wait for a buyer to retry them.
190
+ if (checked.length === 0 && this._probesAccount(provider)) {
191
+ for (const service of services) {
192
+ if (!supportsHealthProbe(resolveProbeProtocol(provider, service)))
193
+ this._followAccount(provider, this._stateFor(provider, service));
194
+ }
195
+ }
196
+ }
197
+ }
198
+ /**
199
+ * An image or video service on an upstream without its own account check
200
+ * follows what the upstream's other services found out about the account:
201
+ * each sweep while it is out of credit counts as a failed check, as an
202
+ * account check does for a video service, and once it has credit again
203
+ * those failures are forgiven: a failing service recovers, unless a buyer
204
+ * request failed it for another reason.
205
+ */
206
+ _followAccount(provider, state) {
207
+ const account = this._accounts.get(provider);
208
+ if (account === 'out') {
209
+ // Only a new answer counts: copying a cached one every sweep would keep the service failing
210
+ // after the account is funded whenever the probes stop telling (say they turn inconclusive).
211
+ const answer = this._accountAnswers.get(provider) ?? 0;
212
+ if (state.accountFollowed === answer)
213
+ return;
214
+ state.accountFollowed = answer;
215
+ state.lastProbeAt = Date.now();
216
+ state.lastStatusCode = null;
217
+ state.lastDetail = 'The upstream account is out of credit';
218
+ state.accountFailed = true;
219
+ this._recordFailure(state, 'out_of_credit', null, null);
220
+ }
221
+ else if (account !== undefined && state.accountFailed && !state.liveFailed) {
222
+ if (state.status === 'failing' || state.retrying) {
223
+ this._recordSuccess(state, 'probe', 'The upstream account has credit again');
224
+ }
225
+ else {
226
+ state.consecutiveFailures = 0;
227
+ state.failingSince = null;
228
+ state.reason = null;
229
+ state.accountFailed = false;
230
+ }
170
231
  }
171
232
  }
172
233
  /**
@@ -233,6 +294,9 @@ export class ModelHealthChecker {
233
294
  this._recordFailure(state, reason, null, checkStartedAt);
234
295
  continue;
235
296
  }
297
+ // A funded account and a listed model say nothing about generations that fail.
298
+ if (state.liveFailed)
299
+ continue;
236
300
  this._recordSuccess(state, 'probe', balance === undefined ? 'Account check passed' : `Account check passed (balance $${balance.toFixed(2)})`);
237
301
  }
238
302
  }
@@ -262,6 +326,10 @@ export class ModelHealthChecker {
262
326
  lastDetail: null,
263
327
  lastTrafficAt: null,
264
328
  probeInFlight: false,
329
+ liveFailed: false,
330
+ retrying: false,
331
+ accountFollowed: null,
332
+ accountFailed: false,
265
333
  };
266
334
  this._states.set(key, state);
267
335
  }
@@ -363,15 +431,70 @@ export class ModelHealthChecker {
363
431
  return;
364
432
  }
365
433
  if (statusCode !== 404 && classifyProbeStatus(statusCode) === 'unhealthy') {
366
- this._probeSoon(target, service);
434
+ if (supportsHealthProbe(resolveProbeProtocol(target.provider, service))) {
435
+ this._probeSoon(target, service);
436
+ return;
437
+ }
438
+ const outOfCredit = isLiveResponseOutOfCredit(statusCode, body);
439
+ // A 429 says the provider (often the seller's own concurrency limit) is busy, not broken.
440
+ if (billable && (statusCode !== 429 || outOfCredit)) {
441
+ this._recordLiveFailure(target.provider, service, outOfCredit ? 'out_of_credit' : reasonForStatus(statusCode), statusCode, `HTTP ${statusCode} on a buyer request`);
442
+ }
367
443
  }
368
444
  }
369
445
  /** A live request threw before the upstream answered (network error, timeout). */
370
- reportUpstreamFailure(provider, service) {
446
+ reportUpstreamFailure(provider, service, billable = true) {
371
447
  const target = this._findTarget(provider);
372
448
  if (!target || this._stopped || !target.provider.services.includes(service))
373
449
  return;
374
- this._probeSoon(target, service);
450
+ if (supportsHealthProbe(resolveProbeProtocol(target.provider, service))) {
451
+ this._probeSoon(target, service);
452
+ }
453
+ else if (billable) {
454
+ this._recordLiveFailure(target.provider, service, 'upstream_error', null, 'Upstream request failed on a buyer request');
455
+ }
456
+ }
457
+ /**
458
+ * Image and video services are never probed, so their buyers' failures are
459
+ * the checks: `failureThreshold` in a row mark the service failing.
460
+ */
461
+ _recordLiveFailure(provider, service, reason, httpStatus, detail) {
462
+ const state = this._stateFor(provider, service);
463
+ state.lastStatusCode = httpStatus;
464
+ state.lastDetail = detail;
465
+ // Out of credit is the account's failure, not the service's, when a probe will tell when it has credit again (see `_followAccount`).
466
+ const accountFailure = reason === 'out_of_credit' && this._probesAccount(provider);
467
+ if (accountFailure)
468
+ state.accountFailed = true;
469
+ this._recordFailure(state, reason, httpStatus, null, accountFailure ? 'probe' : 'traffic');
470
+ }
471
+ /** Whether the provider's probes read its account: it has a probed service and no account check of its own. */
472
+ _probesAccount(provider) {
473
+ const target = this._findTarget(provider);
474
+ if (!target || hasFreeCheck(target.provider) || hasFreeCheck(target.probeProvider))
475
+ return false;
476
+ return target.provider.services.some((service) => supportsHealthProbe(resolveProbeProtocol(target.provider, service)));
477
+ }
478
+ /**
479
+ * No probe can tell when a service failing on live failures (or on its
480
+ * upstream's credit, which nothing may confirm again) works again, and
481
+ * buyers skip it while it is failing: after the same backoff a probed
482
+ * service waits, it is announced unknown so buyers try it again.
483
+ */
484
+ _retryAfterLiveFailures(state) {
485
+ if (state.status !== 'failing' || !(state.liveFailed || state.accountFailed) || state.checkedAt === null)
486
+ return;
487
+ if (Date.now() - state.checkedAt < this._failingBackoff(state) * this._intervalMs - LIVE_FAILURE_PROBE_MIN_GAP_MS)
488
+ return;
489
+ state.status = 'unknown';
490
+ state.retrying = true;
491
+ state.failingSince = null;
492
+ state.reason = null;
493
+ state.httpStatus = null;
494
+ state.checkedAt = Date.now();
495
+ state.source = null;
496
+ debugLog(`[ModelHealth] ${state.providerName}/${state.service}: no probe for this service, letting buyers try it again`);
497
+ this._publish(state);
375
498
  }
376
499
  /** The announced health of `service`, if it has been checked. */
377
500
  getServiceHealth(provider, service) {
@@ -381,6 +504,18 @@ export class ModelHealthChecker {
381
504
  _findTarget(provider) {
382
505
  return this._targets.find((entry) => entry.provider === provider || entry.probeProvider === provider);
383
506
  }
507
+ /** A failing service skips scheduled probes for longer the more checks it has failed in a row. */
508
+ _backingOff(state, now) {
509
+ if (state.status !== 'failing' || state.lastProbeAt === null)
510
+ return false;
511
+ const backoff = this._failingBackoff(state);
512
+ // Sweeps come one interval apart, so allow one to come a little early.
513
+ return backoff > 1 && now - state.lastProbeAt < backoff * this._intervalMs - LIVE_FAILURE_PROBE_MIN_GAP_MS;
514
+ }
515
+ /** How many intervals a failing service waits for its next check. */
516
+ _failingBackoff(state) {
517
+ return Math.min(MAX_FAILING_PROBE_BACKOFF, 1 + state.consecutiveFailures - this._failureThreshold);
518
+ }
384
519
  _probeSoon(target, service) {
385
520
  // Image and video services are never probed (a probe would cost a real generation).
386
521
  if (!supportsHealthProbe(resolveProbeProtocol(target.provider, service)))
@@ -388,6 +523,10 @@ export class ModelHealthChecker {
388
523
  const state = this._stateFor(target.provider, service);
389
524
  if (state.probeInFlight)
390
525
  return;
526
+ // Already announced as failing: a probe could only confirm it. A buyer
527
+ // success or the next scheduled probe notices recovery.
528
+ if (state.status === 'failing')
529
+ return;
391
530
  if (state.lastProbeAt !== null && Date.now() - state.lastProbeAt < LIVE_FAILURE_PROBE_MIN_GAP_MS)
392
531
  return;
393
532
  // A full provider answers its own 429, which says nothing about the upstream.
@@ -418,6 +557,7 @@ export class ModelHealthChecker {
418
557
  }
419
558
  /** Records an upstream's credit and reports a change; the first reading of a funded account is not a change. */
420
559
  _setAccount(provider, next, detail, balanceUsd) {
560
+ this._accountAnswers.set(provider, (this._accountAnswers.get(provider) ?? 0) + 1);
421
561
  const previous = this._accounts.get(provider);
422
562
  if (previous === next)
423
563
  return;
@@ -447,8 +587,11 @@ export class ModelHealthChecker {
447
587
  }
448
588
  }
449
589
  _recordSuccess(state, source, detail) {
450
- const wasFailing = state.status === 'failing';
590
+ const wasFailing = state.status === 'failing' || state.retrying;
451
591
  state.status = 'healthy';
592
+ state.retrying = false;
593
+ state.liveFailed = false;
594
+ state.accountFailed = false;
452
595
  state.consecutiveFailures = 0;
453
596
  state.failingSince = null;
454
597
  state.reason = null;
@@ -470,14 +613,16 @@ export class ModelHealthChecker {
470
613
  detail,
471
614
  });
472
615
  }
473
- /** A failed check started at `checkStartedAt`; a buyer success since then outweighs it. */
474
- _recordFailure(state, reason, httpStatus, checkStartedAt) {
475
- if (state.lastTrafficAt !== null && state.lastTrafficAt >= checkStartedAt) {
616
+ /** A failed check started at `checkStartedAt` (null: a buyer request's); a buyer success since then outweighs it. */
617
+ _recordFailure(state, reason, httpStatus, checkStartedAt, source = 'probe') {
618
+ if (checkStartedAt !== null && state.lastTrafficAt !== null && state.lastTrafficAt >= checkStartedAt) {
476
619
  debugLog(`[ModelHealth] ${state.providerName}/${state.service}: check failed, but a buyer request succeeded meanwhile`);
477
620
  return;
478
621
  }
479
622
  const now = Date.now();
480
623
  state.consecutiveFailures += 1;
624
+ if (source === 'traffic')
625
+ state.liveFailed = true;
481
626
  state.reason = reason;
482
627
  state.httpStatus = httpStatus;
483
628
  state.failingSince ??= now;
@@ -491,9 +636,10 @@ export class ModelHealthChecker {
491
636
  if (state.status !== 'failing')
492
637
  return;
493
638
  state.checkedAt = now;
494
- state.source = 'probe';
639
+ state.source = source;
495
640
  this._publish(state);
496
- if (!crossed)
641
+ // A retried service failing again was already reported, and not yet recovered.
642
+ if (!crossed || state.retrying)
497
643
  return;
498
644
  this._emitChange({
499
645
  provider: state.providerName,
@@ -517,9 +663,11 @@ export class ModelHealthChecker {
517
663
  health.failingSince = state.failingSince;
518
664
  if (state.consecutiveFailures > 0)
519
665
  health.consecutiveFailures = Math.min(0xffff, state.consecutiveFailures);
666
+ // The seller's own upstream account (its credit, its key) is not the buyers' business: they are told the upstream is unavailable.
667
+ const accountReason = state.reason === 'out_of_credit' || state.reason === 'auth';
520
668
  if (state.reason !== null)
521
- health.reason = state.reason;
522
- if (state.httpStatus !== null && state.httpStatus >= 100 && state.httpStatus <= 599)
669
+ health.reason = accountReason ? 'upstream_error' : state.reason;
670
+ if (!accountReason && state.httpStatus !== null && state.httpStatus >= 100 && state.httpStatus <= 599)
523
671
  health.httpStatus = state.httpStatus;
524
672
  }
525
673
  // An own entry even for a service named like an Object.prototype property ("__proto__").
@@ -567,6 +715,10 @@ function reasonForStatus(statusCode) {
567
715
  function resolveProbeProtocol(provider, service) {
568
716
  return provider.serviceApiProtocols?.[service]?.[0] ?? 'openai-chat-completions';
569
717
  }
718
+ /** Whether the provider has checks that cost nothing (its account, its model list). */
719
+ function hasFreeCheck(provider) {
720
+ return Boolean(provider?.checkServiceHealth || provider?.checkUpstreamAccount);
721
+ }
570
722
  export function supportsHealthProbe(protocol) {
571
723
  return protocol !== 'openai-images' && !isRoutingProtocol(protocol) && !isNativeVideoProtocol(protocol);
572
724
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model-health-checker.js","sourceRoot":"","sources":["../../src/health/model-health-checker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAA2B,MAAM,yBAAyB,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAExF,2GAA2G;AAC3G,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,GAAG,MAAM,CAAC;AAC3D,0EAA0E;AAC1E,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC;AACxD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC;AAC5D,sFAAsF;AACtF,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAoHpD,MAAM,iBAAkB,SAAQ,KAAK;CAAG;AAExC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,kBAAkB;IACZ,QAAQ,CAAsB;IAC9B,WAAW,CAAS;IACpB,iBAAiB,CAAS;IAC1B,eAAe,CAAS;IACxB,SAAS,CAAuC;IAChD,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC7D,kFAAkF;IACjE,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IACpD,MAAM,GAA0C,IAAI,CAAC;IACrD,cAAc,GAAyB,IAAI,CAAC;IAC5C,QAAQ,GAAG,KAAK,CAAC;IACR,kBAAkB,CAAgD;IAClE,cAAc,CAA4C;IAC1D,gBAAgB,CAA8C;IAC/E,uEAAuE;IACtD,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC/D,4FAA4F;IACpF,cAAc,GAAqB,EAAE,CAAC;IAE9C,YAAY,MAAgC;QAC1C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,IAAI,gCAAgC,CAAC;QACzE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,IAAI,sCAAsC,CAAC,CAAC;QACxG,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,cAAc,IAAI,qCAAqC,CAAC;QACtF,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC;QAC/C,0EAA0E;QAC1E,wCAAwC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,QAAQ,CAAC,oBAAoB,KAAK,KAAK;gBAAE,SAAS;YACtD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChD,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;gBACzB,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;gBAC7B,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC;gBACzB,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;gBACtB,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;gBACvB,KAAK,CAAC,UAAU,GAAG,oDAAoD,CAAC;gBACxE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,SAAS;YACzC,IAAI,CAAC,WAAW,CAAC;gBACf,QAAQ,EAAE,KAAK,CAAC,YAAY;gBAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,SAAS;gBACjB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,KAAK,CAAC,UAAU,IAAI,uBAAuB;aACpD,CAAC,CAAC;QACL,CAAC;QACD,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACrB,uDAAuD;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IACxB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAClD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAAE,OAAO;YACpD,IAAI,CAAC;gBACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,CAAC,yCAAyC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjG,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvD,QAAQ,EAAE,KAAK,CAAC,YAAY;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAEjC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAEzC,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,IAAI,SAAS,EAAE,oBAAoB,CAAC,CAAC;YACzH,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5F,4EAA4E;YAC5E,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC;gBACzC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC7F,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBAC1B,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChD,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjF,QAAQ,CAAC,iBAAiB,QAAQ,CAAC,IAAI,IAAI,OAAO,oCAAoC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC7I,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,cAAc,CAAC,MAAyB,EAAE,aAAuB,EAAE,QAAkB;QACjG,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,MAAM,KAAK,GAAG,CAAI,KAAa,EAAE,KAAuB,EAAE,EAAE,CAAC,WAAW,CACtE,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAC7B,IAAI,CAAC,eAAe,EACpB,GAAG,KAAK,QAAQ,QAAQ,CAAC,IAAI,oBAAoB,IAAI,CAAC,eAAe,IAAI,CAC1E,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1C,aAAa,CAAC,oBAAoB;gBAChC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,oBAAqB,EAAE,CAAC;qBAClE,KAAK,CAAC,CAAC,GAAG,EAAyB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9I,CAAC,CAAC,SAAS;YACb,aAAa,CAAC,kBAAkB;gBAC9B,CAAC,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,kBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;gBAC3F,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,MAAM,kBAAkB,GAAG,OAAO,EAAE,MAAM,KAAK,aAAa,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9I,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,OAAO,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,gHAAgH;YAChH,MAAM,QAAQ,GAAG,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC;YACjF,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC;gBAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;iBACnH,IAAI,OAAO,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,GAAG;gBAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;iBACxK,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;QAC3J,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,OAAe,EAAkE,EAAE;YAClG,MAAM,KAAK,GAAoC,MAAM,KAAK,SAAS;gBACjE,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;YACrF,IAAI,OAAO,EAAE,MAAM,KAAK,aAAa;gBAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnJ,IAAI,KAAK,EAAE,MAAM,KAAK,aAAa;gBAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;YAC3F,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC;YAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QACtG,CAAC,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,QAAQ,CAAC,iBAAiB,QAAQ,CAAC,IAAI,IAAI,OAAO,mBAAmB,MAAM,CAAC,MAAM,IAAI,WAAW,GAAG,CAAC,CAAC;gBACtG,SAAS;YACX,CAAC;YACD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBACpC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;gBACjC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,kCAAkC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAChJ,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,QAAkB,EAAE,OAAe;QACnD,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,EAAE,KAAK,OAAO,EAAE,CAAC;QAChC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG;gBACN,QAAQ;gBACR,YAAY,EAAE,QAAQ,CAAC,IAAI;gBAC3B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,EAAE,IAAI,QAAQ,CAAC,IAAI;gBAC7F,OAAO;gBACP,MAAM,EAAE,SAAS;gBACjB,mBAAmB,EAAE,CAAC;gBACtB,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,IAAI;gBACjB,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,IAAI;gBACnB,aAAa,EAAE,KAAK;aACrB,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAyB,EAAE,OAAe;QACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,aAAa;YAAE,OAAO;QAChC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,KAAK,CAAC,WAAW,GAAG,cAAc,CAAC;QAEnC,IAAI,OAAqB,CAAC;QAC1B,IAAI,MAA2B,CAAC;QAChC,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACzD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC5B,KAAK,CAAC,UAAU,GAAG,iDAAiD,QAAQ,EAAE,CAAC;gBAC/E,QAAQ,CAAC,iBAAiB,QAAQ,CAAC,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC3E,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,EACpC,IAAI,CAAC,eAAe,EACpB,oBAAoB,OAAO,oBAAoB,IAAI,CAAC,eAAe,IAAI,CACxE,CAAC;YACF,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC;YAC3C,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACnD,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC9C,qGAAqG;YACrG,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzE,KAAK,CAAC,UAAU,GAAG,OAAO,KAAK,SAAS;gBACtC,CAAC,CAAC,QAAQ,QAAQ,CAAC,UAAU,EAAE;gBAC/B,CAAC,CAAC,QAAQ,QAAQ,CAAC,UAAU,KAAK,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC5B,KAAK,CAAC,UAAU,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpE,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC;YAC7B,OAAO,GAAG,WAAW,CAAC;YACtB,MAAM,GAAG,GAAG,YAAY,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;QACxE,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;QAC9B,CAAC;QAED,uFAAuF;QACvF,+EAA+E;QAC/E,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,KAAK,GAAG,IAAI,qBAAqB,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,CAAC;YACpJ,OAAO,GAAG,WAAW,CAAC;YACtB,MAAM,GAAG,eAAe,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,IAAI,eAAe,EAAE,IAAI,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;YAC/B,uEAAuE;YACvE,mEAAmE;YACnE,8BAA8B;YAC9B,QAAQ,CAAC,iBAAiB,QAAQ,CAAC,IAAI,IAAI,OAAO,mBAAmB,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,qFAAqF;YACrF,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK;gBAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAC1H,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,IAAI,iBAAiB,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;;OAQG;IACH,sBAAsB,CAAC,QAAkB,EAAE,UAAkB,EAAE,IAAY,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAgB;QAC5G,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QACrC,IAAI,UAAU,IAAI,GAAG,IAAI,yBAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,UAAU,KAAK,aAAa,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzH,CAAC;aAAM,IAAI,UAAU,GAAG,GAAG,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;YACzF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,UAAU,eAAe,EAAE,IAAI,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO;QACpE,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvD,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC;YAClC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,UAAU,qBAAqB,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,IAAI,UAAU,KAAK,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,KAAK,WAAW,EAAE,CAAC;YAC1E,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,qBAAqB,CAAC,QAAkB,EAAE,OAAe;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO;QACpF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,iEAAiE;IACjE,gBAAgB,CAAC,QAAkB,EAAE,OAAe;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAEO,WAAW,CAAC,QAAkB;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;IACxG,CAAC;IAEO,UAAU,CAAC,MAAyB,EAAE,OAAe;QAC3D,oFAAoF;QACpF,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAAE,OAAO;QACjF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,KAAK,CAAC,aAAa;YAAE,OAAO;QAChC,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,WAAW,GAAG,6BAA6B;YAAE,OAAO;QACzG,8EAA8E;QAC9E,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,OAAO;QAC9C,QAAQ,CAAC,iBAAiB,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,8CAA8C,CAAC,CAAC;QACzG,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACrD,SAAS,CAAC,qCAAqC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IAC7D,WAAW,CAAC,QAAkB;QACpC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG;gBAAE,OAAO,KAAK,CAAC;YAClD,QAAQ,CAAC,0BAA0B,QAAQ,CAAC,IAAI,kBAAkB,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;YACvG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,QAAQ;QACd,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QACtG,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9F,CAAC;IAED,gHAAgH;IACxG,WAAW,CAAC,QAAkB,EAAE,IAAkB,EAAE,MAAc,EAAE,UAAyB;QACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO;QAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAyB;YAClC,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,QAAQ,CAAC,IAAI;YACvC,MAAM,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ;YACpF,MAAM;YACN,UAAU;YACV,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;SACjC,CAAC;QACF,SAAS,CAAC,iBAAiB,KAAK,CAAC,UAAU,cAAc,KAAK,CAAC,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,OAAO;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,MAAM,IAAI,OAAQ,MAAwB,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBACnE,MAAwB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,2CAA2C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7I,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,2CAA2C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,KAAqB,EAAE,MAA2B,EAAE,MAAc;QACvF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;QAC9C,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;QACzB,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC9B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAC1B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;QAC1B,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAoB,KAAK,KAAK;YAAE,KAAK,CAAC,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAC9F,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,CAAC,WAAW,CAAC;YACf,QAAQ,EAAE,KAAK,CAAC,YAAY;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,WAAW;YACnB,mBAAmB,EAAE,CAAC;YACtB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,2FAA2F;IACnF,cAAc,CAAC,KAAqB,EAAE,MAA2B,EAAE,UAAyB,EAAE,cAAsB;QAC1H,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,IAAI,KAAK,CAAC,aAAa,IAAI,cAAc,EAAE,CAAC;YAC1E,QAAQ,CAAC,iBAAiB,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,yDAAyD,CAAC,CAAC;YACxH,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC;QAC/B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAC9B,KAAK,CAAC,YAAY,KAAK,GAAG,CAAC;QAC3B,SAAS,CACP,iBAAiB,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,wBAAwB;cAC1E,IAAI,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,iBAAiB,KAAK,MAAM,OAAO,KAAK,CAAC,UAAU,EAAE,CAC9F,CAAC;QACF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,iBAAiB,CAAC;QAClG,IAAI,OAAO;YAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;QACtC,wEAAwE;QACxE,4CAA4C;QAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QACvC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;QACtB,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,WAAW,CAAC;YACf,QAAQ,EAAE,KAAK,CAAC,YAAY;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,SAAS;YACjB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,MAAM;YACN,MAAM,EAAE,KAAK,CAAC,UAAU,IAAI,cAAc;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,8DAA8D;IACtD,QAAQ,CAAC,KAAqB;QACpC,MAAM,MAAM,GAAkB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI;YAAE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;YAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACxD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI;gBAAE,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAC1E,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC;gBAAE,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC5G,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;gBAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACxD,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,IAAI,GAAG;gBAAE,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAC5H,CAAC;QACD,yFAAyF;QACzF,KAAK,CAAC,QAAQ,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAkC,CAAC;QACtF,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9I,CAAC;IAEO,WAAW,CAAC,KAAuB;QACzC,QAAQ,CAAC,iBAAiB,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9I,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,MAAM,IAAI,OAAQ,MAAwB,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBACnE,MAAwB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACtC,SAAS,CAAC,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC1F,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;CACF;AAED,qFAAqF;AACrF,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,oCAAoC,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,eAAe,CAAC;IAC9E,IAAI,iDAAiD,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAClF,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,iEAAiE;AACjE,SAAS,eAAe,CAAC,UAAkB;IACzC,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,cAAc,CAAC;IAC9C,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,eAAe,CAAC;IAC/C,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IAC5D,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,mBAAmB,CAAC;IACnD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,+EAA+E;AAC/E,SAAS,oBAAoB,CAAC,QAAkB,EAAE,OAAe;IAC/D,OAAO,QAAQ,CAAC,mBAAmB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,yBAAyB,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAA4B;IAC9D,OAAO,QAAQ,KAAK,eAAe,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AAC1G,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,QAA4B;IACnF,IAAI,IAAY,CAAC;IACjB,IAAI,IAA6B,CAAC;IAClC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,oBAAoB;YACvB,IAAI,GAAG,cAAc,CAAC;YACtB,IAAI,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACxF,MAAM;QACR,KAAK,kBAAkB;YACrB,IAAI,GAAG,eAAe,CAAC;YACvB,sEAAsE;YACtE,yEAAyE;YACzE,IAAI,GAAG;gBACL,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,CAAC;wBACN,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qBAChD,CAAC;gBACF,iBAAiB,EAAE,EAAE;aACtB,CAAC;YACF,MAAM;QACR,KAAK,oBAAoB;YACvB,IAAI,GAAG,iBAAiB,CAAC;YACzB,IAAI,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;YACzD,MAAM;QACR,KAAK,yBAAyB;YAC5B,IAAI,GAAG,sBAAsB,CAAC;YAC9B,IAAI,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACxF,MAAM;QACR,KAAK,oBAAoB;YACvB,IAAI,GAAG,eAAe,CAAC;YACvB,iEAAiE;YACjE,kBAAkB;YAClB,IAAI,GAAG;gBACL,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,6BAA6B,EAAE,EAAE;aACjF,CAAC;YACF,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,WAAW,CAAC,CAAC;IAChF,CAAC;IACD,OAAO;QACL,SAAS,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACzF,MAAM,EAAE,MAAM;QACd,IAAI;QACJ,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACrD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACpD,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG;QAAE,OAAO,SAAS,CAAC;IAC5D,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QAC/G,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,WAAW,CAAC;IAC1C,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB,EAAE,QAAgB;IACpD,IAAI,CAAC;QACH,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAgB;IACrC,IAAI,CAAC;QACH,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,cAAc,CAAC;IACpG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,mBAAmB,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAI,OAAmB,EAAE,SAAiB,EAAE,OAAe;IACnF,IAAI,KAAgD,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QAC/C,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC5E,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,yEAAyE;QACzE,6BAA6B;QAC7B,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"model-health-checker.js","sourceRoot":"","sources":["../../src/health/model-health-checker.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,21 @@ export declare function isUpstreamFailureStatus(statusCode: number): boolean;
17
17
  * its error message (which can quote the seller's credentials) is dropped.
18
18
  */
19
19
  export declare function buildSelfHealthErrorResponse(requestId: string, service: string, health: ServiceHealth, upstream: Pick<SerializedHttpResponse, 'statusCode' | 'headers' | 'body'>): SerializedHttpResponse;
20
+ /**
21
+ * Whether an upstream error is about the seller's own account: its key
22
+ * (401, 403) or its credit. This decides what buyers are shown, so it reads
23
+ * a billing error at any status; a buyer who gets its own input echoed back
24
+ * this way only gets a 503 instead of a 400. Health checks read the account
25
+ * more carefully (`isLiveResponseOutOfCredit`).
26
+ */
27
+ export declare function isUpstreamAccountError(statusCode: number, text: string): boolean;
28
+ /** Error code a seller answers with when its upstream account (credit or key) fails a request. */
29
+ export declare const UPSTREAM_UNAVAILABLE_CODE = "upstream_unavailable";
30
+ /**
31
+ * What a buyer gets for an upstream answer about the seller's account (out of
32
+ * credit, key rejected): the seller's account is not the buyer's business (and
33
+ * a 402 would read as a request to pay), so it is a 503 saying the service is
34
+ * unavailable, without the upstream's message, type or headers.
35
+ */
36
+ export declare function buildUpstreamUnavailableResponse(requestId: string, service: string): SerializedHttpResponse;
20
37
  //# sourceMappingURL=self-health-error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"self-health-error.d.ts","sourceRoot":"","sources":["../../src/health/self-health-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAGnE;AAgBD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,IAAI,CAAC,sBAAsB,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,GACxE,sBAAsB,CAuBxB"}
1
+ {"version":3,"file":"self-health-error.d.ts","sourceRoot":"","sources":["../../src/health/self-health-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAI/D,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAGnE;AAgBD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,IAAI,CAAC,sBAAsB,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,GACxE,sBAAsB,CAuBxB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhF;AAED,kGAAkG;AAClG,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,sBAAsB,CAc3G"}