scoutline 0.19.2 → 0.19.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -2
- package/dist/commands/doctor.d.ts +63 -7
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +72 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/quota.d.ts.map +1 -1
- package/dist/commands/quota.js +33 -5
- package/dist/commands/quota.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/availability.d.ts +95 -0
- package/dist/lib/availability.d.ts.map +1 -0
- package/dist/lib/availability.js +103 -0
- package/dist/lib/availability.js.map +1 -0
- package/dist/lib/quota-mapping.d.ts +103 -23
- package/dist/lib/quota-mapping.d.ts.map +1 -1
- package/dist/lib/quota-mapping.js +123 -18
- package/dist/lib/quota-mapping.js.map +1 -1
- package/dist/lib/quota-store.d.ts +20 -0
- package/dist/lib/quota-store.d.ts.map +1 -1
- package/dist/lib/quota-store.js +20 -0
- package/dist/lib/quota-store.js.map +1 -1
- package/dist/lib/tty.d.ts +18 -0
- package/dist/lib/tty.d.ts.map +1 -1
- package/dist/lib/tty.js +110 -0
- package/dist/lib/tty.js.map +1 -1
- package/dist/providers/selection.d.ts +18 -2
- package/dist/providers/selection.d.ts.map +1 -1
- package/dist/providers/selection.js +17 -5
- package/dist/providers/selection.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider availability — classification and healthy-first ordering
|
|
3
|
+
* (provider-availability plan, DESIGN D2/D7; fixes GitHub #94).
|
|
4
|
+
*
|
|
5
|
+
* Doctor keeps every row (a diagnostics tool that hides dead providers
|
|
6
|
+
* is a tautology) and annotates each with a closed-vocabulary
|
|
7
|
+
* `availability` value plus a top-level `availableProviders` short
|
|
8
|
+
* list, sorted healthy-first so agents can read the usable providers
|
|
9
|
+
* off the top of the report without destroying the diagnostic record.
|
|
10
|
+
*
|
|
11
|
+
* Availability NEVER fabricates: there is no snapshot entry ⇒ never
|
|
12
|
+
* "exhausted". The exhaustion signal is snapshot-based (a fresh 0%
|
|
13
|
+
* reading on a capability-relevant quota category), never
|
|
14
|
+
* probe-error-based — Tavily and Perplexity structurally demote quota
|
|
15
|
+
* failures to generic ApiError/NetworkError in probe normalization, so
|
|
16
|
+
* an error-code classifier would miss exactly the live case this
|
|
17
|
+
* module exists to surface.
|
|
18
|
+
*
|
|
19
|
+
* Boundary rules:
|
|
20
|
+
* - **Clock-free, registry-free.** `now` is a parameter and the
|
|
21
|
+
* registry tiebreak rank is injected by the caller; this module
|
|
22
|
+
* never reads the system clock nor imports the provider registry.
|
|
23
|
+
* - Pure derivation only: no disk I/O, no transport, no
|
|
24
|
+
* `process.stderr.write`. Imports the quota contract types and the
|
|
25
|
+
* staleness gate from `lib/quota-store.js` and the
|
|
26
|
+
* capability-relevant category names from `lib/quota-mapping.js`.
|
|
27
|
+
*/
|
|
28
|
+
import { getProviderQuotaCategoryNames } from "./quota-mapping.js";
|
|
29
|
+
import { isQuotaSnapshotStale } from "./quota-store.js";
|
|
30
|
+
/**
|
|
31
|
+
* Class rank for healthy-first ordering (DESIGN D7): healthy providers
|
|
32
|
+
* first, then exhausted (data says "out of budget"), then probe errors,
|
|
33
|
+
* then unconfigured. Stable: same-class rows keep registry order.
|
|
34
|
+
*/
|
|
35
|
+
export const AVAILABILITY_CLASS_RANK = {
|
|
36
|
+
ok: 0,
|
|
37
|
+
exhausted: 1,
|
|
38
|
+
error: 2,
|
|
39
|
+
unconfigured: 3,
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Classify one provider row's availability. Evaluated in precedence
|
|
43
|
+
* order (first match wins):
|
|
44
|
+
*
|
|
45
|
+
* 1. `unconfigured` — the row is the not-configured skip
|
|
46
|
+
* (`status: "skipped"`, `reason: "not-configured"`; today's
|
|
47
|
+
* `!isConfigured(env)` row).
|
|
48
|
+
* 2. `exhausted` — a snapshot entry exists AND is fresh
|
|
49
|
+
* (`!isQuotaSnapshotStale`, the standard 10-min gate) AND some
|
|
50
|
+
* **capability-relevant** category sits at
|
|
51
|
+
* `remainingPercent === 0`. Capability-relevant = the names
|
|
52
|
+
* `getProviderQuotaCategoryNames` maps for the provider's
|
|
53
|
+
* quota-capability scoring — Tavily's key-pool `requests`, not its
|
|
54
|
+
* account-level `plan`. Providers with no mapping rows fall back to
|
|
55
|
+
* the honest "any fresh category at 0%" rule. A tools-disabled
|
|
56
|
+
* (`--no-tools`) row takes this same snapshot rule — the gate is
|
|
57
|
+
* absence of snapshot evidence, not the flag.
|
|
58
|
+
* 3. `error` — the probe failed with no fresh-0% evidence.
|
|
59
|
+
* 4. `ok` — everything else.
|
|
60
|
+
*
|
|
61
|
+
* A bare scaffold entry (`observedAt === 0`) is stale for any realistic
|
|
62
|
+
* `now`, so it can never fabricate exhaustion.
|
|
63
|
+
*/
|
|
64
|
+
export function classifyAvailability(row, snapshotEntry, now) {
|
|
65
|
+
if (row.status === "skipped" && row.reason === "not-configured") {
|
|
66
|
+
return "unconfigured";
|
|
67
|
+
}
|
|
68
|
+
if (snapshotEntry !== undefined && !isQuotaSnapshotStale(snapshotEntry, now)) {
|
|
69
|
+
const relevant = getProviderQuotaCategoryNames(row.provider);
|
|
70
|
+
const exhausted = relevant === undefined || relevant.size === 0
|
|
71
|
+
? snapshotEntry.categories.some((category) => category.current?.remainingPercent === 0)
|
|
72
|
+
: snapshotEntry.categories.some((category) => relevant.has(category.name) && category.current?.remainingPercent === 0);
|
|
73
|
+
if (exhausted)
|
|
74
|
+
return "exhausted";
|
|
75
|
+
}
|
|
76
|
+
if (row.status === "error")
|
|
77
|
+
return "error";
|
|
78
|
+
return "ok";
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Stable healthy-first comparator (DESIGN D7). Primary key: the
|
|
82
|
+
* caller-extracted availability class rank; secondary: the
|
|
83
|
+
* caller-injected registry-order rank; ties keep input order (the
|
|
84
|
+
* caller's sort must be stable — `Array.prototype.sort` is stable in
|
|
85
|
+
* every ES2019+ engine).
|
|
86
|
+
*
|
|
87
|
+
* The class extraction is a parameter so the same comparator serves
|
|
88
|
+
* other report orderings without editing this module (e.g. the quota
|
|
89
|
+
* dashboard's `ok` < `error` < `none` row status). The registry rank
|
|
90
|
+
* lookup is built by the caller — this module stays registry-free.
|
|
91
|
+
*/
|
|
92
|
+
export function compareAvailabilityRows(a, b, classOf, tiebreakOf) {
|
|
93
|
+
const classDelta = classOf(a) - classOf(b);
|
|
94
|
+
if (classDelta !== 0)
|
|
95
|
+
return classDelta;
|
|
96
|
+
if (tiebreakOf !== undefined) {
|
|
97
|
+
const tiebreakDelta = tiebreakOf(a) - tiebreakOf(b);
|
|
98
|
+
if (tiebreakDelta !== 0)
|
|
99
|
+
return tiebreakDelta;
|
|
100
|
+
}
|
|
101
|
+
return 0;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=availability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"availability.js","sourceRoot":"","sources":["../../src/lib/availability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAA8B,MAAM,kBAAkB,CAAC;AAkBpF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmD;IACrF,EAAE,EAAE,CAAC;IACL,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;IACR,YAAY,EAAE,CAAC;CAChB,CAAC;AAcF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAyB,EACzB,aAAgD,EAChD,GAAW;IAEX,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;QAChE,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC;QAC7E,MAAM,QAAQ,GAAG,6BAA6B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,SAAS,GACb,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAC3C,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAC3B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,KAAK,CAAC,CACvD;YACH,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAC3B,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,gBAAgB,KAAK,CAAC,CAC1E,CAAC;QACR,IAAI,SAAS;YAAE,OAAO,WAAW,CAAC;IACpC,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CACrC,CAAI,EACJ,CAAI,EACJ,OAA2B,EAC3B,UAA+B;IAE/B,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IACxC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,aAAa,KAAK,CAAC;YAAE,OAAO,aAAa,CAAC;IAChD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -24,8 +24,16 @@
|
|
|
24
24
|
* Providers with a real credit/token signal form a **known tier**,
|
|
25
25
|
* ranked by score; providers without a signal (Brave rate-limit,
|
|
26
26
|
* Exa none) form an **unknown tier**, ranked after every known
|
|
27
|
-
* provider. The unknown tier never wins over a known
|
|
28
|
-
* a low-scored one.
|
|
27
|
+
* provider. The unknown tier never wins over a healthy known
|
|
28
|
+
* provider, even a low-scored one. The one exception is the #97
|
|
29
|
+
* KNOWN_EXHAUSTED demotion: a known provider whose capability-mapped
|
|
30
|
+
* category reads 0% on a snapshot observed within the 24h
|
|
31
|
+
* {@link QUOTA_EXHAUSTION_DEMOTION_HORIZON_MS} is demoted into the
|
|
32
|
+
* unknown tier by the ranker and placed strictly below every
|
|
33
|
+
* natural unknown. Demotion is ranking-only — the scorer still
|
|
34
|
+
* returns `authority:"known", score:0` — and runs only when the
|
|
35
|
+
* caller supplies a clock (`ScoreOptions.now`); without one the
|
|
36
|
+
* checks are skipped and the pre-#97 ordering holds.
|
|
29
37
|
*
|
|
30
38
|
* Boundary rules:
|
|
31
39
|
* - Imports the quota contract types from `capabilities/quota.js`,
|
|
@@ -63,10 +71,13 @@ import type { QuotaState } from "./quota-store.js";
|
|
|
63
71
|
* ranked.
|
|
64
72
|
* - `authority: "unknown"` — no authoritative signal is available
|
|
65
73
|
* (provider has no spend quota; snapshot missing; mapped category
|
|
66
|
-
* absent and no fallback matched; percent corrupt
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
74
|
+
* absent and no fallback matched; percent corrupt; or — since #97 —
|
|
75
|
+
* the ranker demoted a fresh-0% known score to KNOWN_EXHAUSTED).
|
|
76
|
+
* `reason` is a stable, machine-readable reason code, NOT a
|
|
77
|
+
* user-facing message. Unknown entries are eligible as fallback and
|
|
78
|
+
* rank after every healthy known-scored provider (PB-T4 contract);
|
|
79
|
+
* a known provider demoted to KNOWN_EXHAUSTED ranks after the
|
|
80
|
+
* natural unknowns.
|
|
70
81
|
*
|
|
71
82
|
* `unknown` is NEVER encoded as a numeric score (no neutral `50`, no
|
|
72
83
|
* `Infinity`, no `0`). This is the explicit fix for the "neutral 50 yet
|
|
@@ -121,7 +132,20 @@ export type UnknownScoreReason =
|
|
|
121
132
|
* this, but a hand-edited `state.json` could violate it; the scorer
|
|
122
133
|
* treats corrupt input as unknown rather than synthesizing a score.
|
|
123
134
|
*/
|
|
124
|
-
| "PERCENT_CORRUPT"
|
|
135
|
+
| "PERCENT_CORRUPT"
|
|
136
|
+
/**
|
|
137
|
+
* Ranking-only demotion (#97): the provider scored
|
|
138
|
+
* `authority:"known", score:0` — its capability-mapped category is
|
|
139
|
+
* depleted — on a snapshot whose `observedAt` is within
|
|
140
|
+
* {@link QUOTA_EXHAUSTION_DEMOTION_HORIZON_MS} of the caller's
|
|
141
|
+
* clock. The ranker rewrites the entry into the unknown tier and
|
|
142
|
+
* ranks it strictly below every natural unknown, so a
|
|
143
|
+
* still-exhausted provider no longer floats to the top of the
|
|
144
|
+
* selection order. Never produced by {@link scoreCapability}
|
|
145
|
+
* (demotion lives in ranking, not in scoring's meaning) and never
|
|
146
|
+
* when no clock was supplied.
|
|
147
|
+
*/
|
|
148
|
+
| "KNOWN_EXHAUSTED";
|
|
125
149
|
/**
|
|
126
150
|
* One row of the static mapping table: for `(provider, capability)`,
|
|
127
151
|
* which raw `QuotaCategory.name` governs the score.
|
|
@@ -229,8 +253,11 @@ export declare const CAPABILITY_MAPPINGS: readonly CapabilityMappingEntry[];
|
|
|
229
253
|
* - `"always-unknown"` — the provider has no authoritative spend
|
|
230
254
|
* signal. {@link CapabilityScore} always returns `authority:"unknown"`
|
|
231
255
|
* with the documented reason, regardless of whether a snapshot
|
|
232
|
-
* exists. The provider remains **eligible** for PB-T4 fallback
|
|
233
|
-
*
|
|
256
|
+
* exists. The provider remains **eligible** for PB-T4 fallback; it
|
|
257
|
+
* never wins over a healthy known-scored provider (since #97, a
|
|
258
|
+
* known provider whose capability-mapped category reads 0% on a
|
|
259
|
+
* snapshot within the 24h demotion horizon is demoted below the
|
|
260
|
+
* unknown tier itself, so "healthy" is the operative word).
|
|
234
261
|
*
|
|
235
262
|
* `reason` is surfaced unchanged through the warning channel when a
|
|
236
263
|
* score is requested for an always-unknown provider; it documents the
|
|
@@ -268,8 +295,12 @@ export interface ProviderAuthorityPolicy {
|
|
|
268
295
|
* percentage-bounded plan signal.
|
|
269
296
|
*
|
|
270
297
|
* All six providers stay **eligible** for PB-T4 fallback (their
|
|
271
|
-
* `authority:"unknown"` score sorts after every known
|
|
272
|
-
* they can still be picked when no known
|
|
298
|
+
* `authority:"unknown"` score sorts after every healthy known
|
|
299
|
+
* provider), so they can still be picked when no healthy known
|
|
300
|
+
* provider remains. Since #97 they can even outrank a mapped provider:
|
|
301
|
+
* a known-tier provider whose capability-mapped category reads 0% on
|
|
302
|
+
* a snapshot observed within the 24h demotion horizon is demoted below
|
|
303
|
+
* the natural unknowns in the ranking.
|
|
273
304
|
*/
|
|
274
305
|
export declare const PROVIDER_AUTHORITY_POLICIES: readonly ProviderAuthorityPolicy[];
|
|
275
306
|
/**
|
|
@@ -282,7 +313,7 @@ export declare const PROVIDER_AUTHORITY_POLICIES: readonly ProviderAuthorityPoli
|
|
|
282
313
|
* `message` is a single-line human-readable string suitable for stderr.
|
|
283
314
|
*/
|
|
284
315
|
export interface QuotaMappingWarning {
|
|
285
|
-
readonly code: "PROVIDER_NON_AUTHORITATIVE" | "MAPPING_MISSING" | "SNAPSHOT_MISSING" | "SNAPSHOT_EMPTY" | "CATEGORY_NOT_FOUND" | "PROVIDER_FALLBACK_USED" | "PERCENT_CORRUPT";
|
|
316
|
+
readonly code: "PROVIDER_NON_AUTHORITATIVE" | "MAPPING_MISSING" | "SNAPSHOT_MISSING" | "SNAPSHOT_EMPTY" | "CATEGORY_NOT_FOUND" | "PROVIDER_FALLBACK_USED" | "PERCENT_CORRUPT" | "KNOWN_EXHAUSTED";
|
|
286
317
|
readonly provider: ProviderId;
|
|
287
318
|
readonly capability: ProviderCapability;
|
|
288
319
|
readonly message: string;
|
|
@@ -311,6 +342,22 @@ export declare function getCapabilityMapping(provider: ProviderId, capability: P
|
|
|
311
342
|
* Unknown capabilities return an empty list.
|
|
312
343
|
*/
|
|
313
344
|
export declare function resolveMiniMaxAliasesForCapability(capability: ProviderCapability, aliases?: Readonly<Record<"search" | "vision.interpret-image", readonly string[]>>): readonly string[];
|
|
345
|
+
/**
|
|
346
|
+
* The union of capability-relevant quota category names for one
|
|
347
|
+
* provider — exactly the names the scorer can match for that provider:
|
|
348
|
+
* the effective `categoryAliases` of every {@link CAPABILITY_MAPPINGS}
|
|
349
|
+
* row (MiniMax rows expand through the model-alias table) plus each
|
|
350
|
+
* row's `providerFallbackCategory` (Tavily's aggregate `requests`
|
|
351
|
+
* pool). Account-level or informational categories a provider may also
|
|
352
|
+
* emit (e.g. Tavily's `plan`) are deliberately absent: they are not
|
|
353
|
+
* capability-relevant.
|
|
354
|
+
*
|
|
355
|
+
* Returns `undefined` when the provider has no mapping rows at all
|
|
356
|
+
* (observational-only or always-unknown providers) — callers choose
|
|
357
|
+
* their own fallback (doctor's availability classifier treats any
|
|
358
|
+
* fresh category at 0% as exhausted for unmapped providers).
|
|
359
|
+
*/
|
|
360
|
+
export declare function getProviderQuotaCategoryNames(provider: ProviderId): ReadonlySet<string> | undefined;
|
|
314
361
|
/**
|
|
315
362
|
* Options for {@link scoreCapability} and {@link rankProvidersForCapability}.
|
|
316
363
|
*/
|
|
@@ -328,6 +375,19 @@ export interface ScoreOptions {
|
|
|
328
375
|
* stderr writer; tests inject a recorder.
|
|
329
376
|
*/
|
|
330
377
|
readonly onWarning?: (warning: QuotaMappingWarning) => void;
|
|
378
|
+
/**
|
|
379
|
+
* The clock for the #97 KNOWN_EXHAUSTED demotion, as a Unix epoch
|
|
380
|
+
* millisecond. This module stays clockless: when `now` is absent
|
|
381
|
+
* the exhaustiveness check is skipped entirely and ranking behaves
|
|
382
|
+
* exactly as it did before #97 (a 0% known provider outranks the
|
|
383
|
+
* unknown tier). When supplied, a known-tier candidate whose
|
|
384
|
+
* capability-mapped category read 0% on a snapshot observed within
|
|
385
|
+
* {@link QUOTA_EXHAUSTION_DEMOTION_HORIZON_MS} of this clock is
|
|
386
|
+
* demoted below the natural unknowns in
|
|
387
|
+
* {@link rankProvidersForCapability}. Ignored by
|
|
388
|
+
* {@link scoreCapability} — scoring's meaning is unchanged (D6).
|
|
389
|
+
*/
|
|
390
|
+
readonly now?: number;
|
|
331
391
|
}
|
|
332
392
|
/**
|
|
333
393
|
* Derive the authority-aware score for a single `(provider, capability)`
|
|
@@ -367,9 +427,17 @@ export declare function scoreCapability(state: QuotaState, provider: ProviderId,
|
|
|
367
427
|
*
|
|
368
428
|
* - Known-tier entries appear first, sorted by `score` descending.
|
|
369
429
|
* Ties break by registry order (`PROVIDER_IDS` by default, or the
|
|
370
|
-
* `registryOrder` option).
|
|
371
|
-
*
|
|
372
|
-
*
|
|
430
|
+
* `registryOrder` option). A known-tier provider whose
|
|
431
|
+
* capability-mapped category reads 0% on a snapshot within the 24h
|
|
432
|
+
* demotion horizon (#97, `ScoreOptions.now` supplied) does not stay
|
|
433
|
+
* here — it is demoted to the unknown tier with reason
|
|
434
|
+
* `KNOWN_EXHAUSTED`.
|
|
435
|
+
* - Unknown-tier entries appear after every (healthy) known entry, in
|
|
436
|
+
* registry order. They remain eligible as fallback.
|
|
437
|
+
* - Demoted (`KNOWN_EXHAUSTED`) entries rank strictly below every
|
|
438
|
+
* natural unknown: natural unknowns first in registry order, then
|
|
439
|
+
* demoted entries in registry order (D6 positioning). Without a
|
|
440
|
+
* supplied clock no demotion happens and this band is empty.
|
|
373
441
|
*
|
|
374
442
|
* Optional fields are present only when meaningful: `score`/`category`
|
|
375
443
|
* for known entries; `reason` for unknown entries.
|
|
@@ -390,15 +458,27 @@ export interface RankedProvider {
|
|
|
390
458
|
*
|
|
391
459
|
* Algorithm:
|
|
392
460
|
* 1. Score each candidate via {@link scoreCapability}.
|
|
393
|
-
* 2.
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
461
|
+
* 2. Demote fresh-exhausted known entries (#97): when a clock was
|
|
462
|
+
* supplied, a known entry whose capability-mapped category read
|
|
463
|
+
* 0% on a snapshot observed within
|
|
464
|
+
* {@link QUOTA_EXHAUSTION_DEMOTION_HORIZON_MS} is rewritten to
|
|
465
|
+
* the unknown tier with reason `KNOWN_EXHAUSTED`.
|
|
466
|
+
* 3. Partition into known and unknown tiers.
|
|
467
|
+
* 4. Sort known tier by score desc; break ties by registry order.
|
|
468
|
+
* 5. Sort unknown tier by registry order only.
|
|
469
|
+
* 6. Concatenate: known first, then natural unknowns in registry
|
|
470
|
+
* order, then demoted entries in registry order (D6 positioning —
|
|
471
|
+
* demoted entries rank strictly below every natural unknown).
|
|
397
472
|
*
|
|
398
|
-
* The "5% known beats unknown" contract falls out of steps 3–
|
|
399
|
-
* known entry precedes every unknown entry regardless of
|
|
400
|
-
* known provider at 5% remaining still ranks above a
|
|
401
|
-
* Brave/Exa provider, because Brave/Exa are in the
|
|
473
|
+
* The "5% known beats unknown" contract falls out of steps 3–6: every
|
|
474
|
+
* healthy known entry precedes every unknown entry regardless of
|
|
475
|
+
* score. A known provider at 5% remaining still ranks above a
|
|
476
|
+
* non-authoritative Brave/Exa provider, because Brave/Exa are in the
|
|
477
|
+
* unknown tier. The contract is freshness-scoped since #97: at 0% on a
|
|
478
|
+
* fresh snapshot the provider is demoted below the unknown tier
|
|
479
|
+
* instead — the one case where an unknown-tier provider outranks a
|
|
480
|
+
* known one. Without a supplied clock the demotion never runs and the
|
|
481
|
+
* pre-#97 ordering holds byte-for-byte.
|
|
402
482
|
*
|
|
403
483
|
* Duplicate candidates are de-duplicated in first-occurrence order
|
|
404
484
|
* before scoring (defensive — PB-T4 builds candidate lists, and a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-mapping.d.ts","sourceRoot":"","sources":["../../src/lib/quota-mapping.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"quota-mapping.d.ts","sourceRoot":"","sources":["../../src/lib/quota-mapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,8 +24,16 @@
|
|
|
24
24
|
* Providers with a real credit/token signal form a **known tier**,
|
|
25
25
|
* ranked by score; providers without a signal (Brave rate-limit,
|
|
26
26
|
* Exa none) form an **unknown tier**, ranked after every known
|
|
27
|
-
* provider. The unknown tier never wins over a known
|
|
28
|
-
* a low-scored one.
|
|
27
|
+
* provider. The unknown tier never wins over a healthy known
|
|
28
|
+
* provider, even a low-scored one. The one exception is the #97
|
|
29
|
+
* KNOWN_EXHAUSTED demotion: a known provider whose capability-mapped
|
|
30
|
+
* category reads 0% on a snapshot observed within the 24h
|
|
31
|
+
* {@link QUOTA_EXHAUSTION_DEMOTION_HORIZON_MS} is demoted into the
|
|
32
|
+
* unknown tier by the ranker and placed strictly below every
|
|
33
|
+
* natural unknown. Demotion is ranking-only — the scorer still
|
|
34
|
+
* returns `authority:"known", score:0` — and runs only when the
|
|
35
|
+
* caller supplies a clock (`ScoreOptions.now`); without one the
|
|
36
|
+
* checks are skipped and the pre-#97 ordering holds.
|
|
29
37
|
*
|
|
30
38
|
* Boundary rules:
|
|
31
39
|
* - Imports the quota contract types from `capabilities/quota.js`,
|
|
@@ -51,6 +59,7 @@
|
|
|
51
59
|
* selection algorithm. This module never selects.
|
|
52
60
|
*/
|
|
53
61
|
import { PROVIDER_IDS } from "../providers/types.js";
|
|
62
|
+
import { QUOTA_EXHAUSTION_DEMOTION_HORIZON_MS } from "./quota-store.js";
|
|
54
63
|
/**
|
|
55
64
|
* Default MiniMax model-name aliases per capability. MiniMax's
|
|
56
65
|
* `/remains` normalizer emits one category per live `model_name`
|
|
@@ -248,8 +257,12 @@ export const CAPABILITY_MAPPINGS = [
|
|
|
248
257
|
* percentage-bounded plan signal.
|
|
249
258
|
*
|
|
250
259
|
* All six providers stay **eligible** for PB-T4 fallback (their
|
|
251
|
-
* `authority:"unknown"` score sorts after every known
|
|
252
|
-
* they can still be picked when no known
|
|
260
|
+
* `authority:"unknown"` score sorts after every healthy known
|
|
261
|
+
* provider), so they can still be picked when no healthy known
|
|
262
|
+
* provider remains. Since #97 they can even outrank a mapped provider:
|
|
263
|
+
* a known-tier provider whose capability-mapped category reads 0% on
|
|
264
|
+
* a snapshot observed within the 24h demotion horizon is demoted below
|
|
265
|
+
* the natural unknowns in the ranking.
|
|
253
266
|
*/
|
|
254
267
|
export const PROVIDER_AUTHORITY_POLICIES = [
|
|
255
268
|
{ provider: "zai", kind: "mapped", reason: "Z.AI exposes TIME_LIMIT/TOKENS_LIMIT signals." },
|
|
@@ -347,6 +360,36 @@ export function resolveMiniMaxAliasesForCapability(capability, aliases = DEFAULT
|
|
|
347
360
|
}
|
|
348
361
|
return [];
|
|
349
362
|
}
|
|
363
|
+
/**
|
|
364
|
+
* The union of capability-relevant quota category names for one
|
|
365
|
+
* provider — exactly the names the scorer can match for that provider:
|
|
366
|
+
* the effective `categoryAliases` of every {@link CAPABILITY_MAPPINGS}
|
|
367
|
+
* row (MiniMax rows expand through the model-alias table) plus each
|
|
368
|
+
* row's `providerFallbackCategory` (Tavily's aggregate `requests`
|
|
369
|
+
* pool). Account-level or informational categories a provider may also
|
|
370
|
+
* emit (e.g. Tavily's `plan`) are deliberately absent: they are not
|
|
371
|
+
* capability-relevant.
|
|
372
|
+
*
|
|
373
|
+
* Returns `undefined` when the provider has no mapping rows at all
|
|
374
|
+
* (observational-only or always-unknown providers) — callers choose
|
|
375
|
+
* their own fallback (doctor's availability classifier treats any
|
|
376
|
+
* fresh category at 0% as exhausted for unmapped providers).
|
|
377
|
+
*/
|
|
378
|
+
export function getProviderQuotaCategoryNames(provider) {
|
|
379
|
+
const rows = CAPABILITY_MAPPINGS.filter((m) => m.provider === provider);
|
|
380
|
+
if (rows.length === 0)
|
|
381
|
+
return undefined;
|
|
382
|
+
const names = new Set();
|
|
383
|
+
for (const row of rows) {
|
|
384
|
+
for (const alias of resolveEffectiveAliases(row, DEFAULT_MINIMAX_MODEL_ALIASES)) {
|
|
385
|
+
names.add(alias);
|
|
386
|
+
}
|
|
387
|
+
if (row.providerFallbackCategory !== undefined) {
|
|
388
|
+
names.add(row.providerFallbackCategory);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
return names;
|
|
392
|
+
}
|
|
350
393
|
/**
|
|
351
394
|
* Resolve the effective alias list for a mapping entry. For non-MiniMax
|
|
352
395
|
* providers, returns the entry's static `categoryAliases`. For MiniMax,
|
|
@@ -505,15 +548,27 @@ export function scoreCapability(state, provider, capability, options = {}) {
|
|
|
505
548
|
*
|
|
506
549
|
* Algorithm:
|
|
507
550
|
* 1. Score each candidate via {@link scoreCapability}.
|
|
508
|
-
* 2.
|
|
509
|
-
*
|
|
510
|
-
*
|
|
511
|
-
*
|
|
551
|
+
* 2. Demote fresh-exhausted known entries (#97): when a clock was
|
|
552
|
+
* supplied, a known entry whose capability-mapped category read
|
|
553
|
+
* 0% on a snapshot observed within
|
|
554
|
+
* {@link QUOTA_EXHAUSTION_DEMOTION_HORIZON_MS} is rewritten to
|
|
555
|
+
* the unknown tier with reason `KNOWN_EXHAUSTED`.
|
|
556
|
+
* 3. Partition into known and unknown tiers.
|
|
557
|
+
* 4. Sort known tier by score desc; break ties by registry order.
|
|
558
|
+
* 5. Sort unknown tier by registry order only.
|
|
559
|
+
* 6. Concatenate: known first, then natural unknowns in registry
|
|
560
|
+
* order, then demoted entries in registry order (D6 positioning —
|
|
561
|
+
* demoted entries rank strictly below every natural unknown).
|
|
512
562
|
*
|
|
513
|
-
* The "5% known beats unknown" contract falls out of steps 3–
|
|
514
|
-
* known entry precedes every unknown entry regardless of
|
|
515
|
-
* known provider at 5% remaining still ranks above a
|
|
516
|
-
* Brave/Exa provider, because Brave/Exa are in the
|
|
563
|
+
* The "5% known beats unknown" contract falls out of steps 3–6: every
|
|
564
|
+
* healthy known entry precedes every unknown entry regardless of
|
|
565
|
+
* score. A known provider at 5% remaining still ranks above a
|
|
566
|
+
* non-authoritative Brave/Exa provider, because Brave/Exa are in the
|
|
567
|
+
* unknown tier. The contract is freshness-scoped since #97: at 0% on a
|
|
568
|
+
* fresh snapshot the provider is demoted below the unknown tier
|
|
569
|
+
* instead — the one case where an unknown-tier provider outranks a
|
|
570
|
+
* known one. Without a supplied clock the demotion never runs and the
|
|
571
|
+
* pre-#97 ordering holds byte-for-byte.
|
|
517
572
|
*
|
|
518
573
|
* Duplicate candidates are de-duplicated in first-occurrence order
|
|
519
574
|
* before scoring (defensive — PB-T4 builds candidate lists, and a
|
|
@@ -546,8 +601,50 @@ export function rankProvidersForCapability(state, capability, candidates, option
|
|
|
546
601
|
orderRank: orderRank.get(provider) ?? unknownRank,
|
|
547
602
|
inputOrder: idx,
|
|
548
603
|
}));
|
|
549
|
-
|
|
550
|
-
|
|
604
|
+
// Demotion pass (#97, D6) — between staging and the known/unknown
|
|
605
|
+
// partition. A staged known entry whose capability-mapped category
|
|
606
|
+
// read 0% on a snapshot observed within the 24h horizon is rewritten
|
|
607
|
+
// to the unknown tier with reason KNOWN_EXHAUSTED. The mapping
|
|
608
|
+
// lookup is the same one the scorer uses (getCapabilityMapping;
|
|
609
|
+
// MiniMax alias expansion happens inside the scorer, so a known-0
|
|
610
|
+
// score already proves a mapped category matched), and a provider
|
|
611
|
+
// with no mapping row cannot demote because it can never score
|
|
612
|
+
// known. Demotion is skipped entirely when no clock was supplied —
|
|
613
|
+
// the module stays clockless and no-`now` callers see pre-#97
|
|
614
|
+
// ranking. scoreCapability itself is untouched: a fresh-0% category
|
|
615
|
+
// still scores known/0 (D6).
|
|
616
|
+
const nowMs = options.now;
|
|
617
|
+
const demoted = new Set();
|
|
618
|
+
if (nowMs !== undefined) {
|
|
619
|
+
const onWarning = options.onWarning ?? (() => { });
|
|
620
|
+
for (const s of staged) {
|
|
621
|
+
if (s.score.authority !== "known" || s.score.score !== 0)
|
|
622
|
+
continue;
|
|
623
|
+
if (!getCapabilityMapping(s.provider, capability))
|
|
624
|
+
continue;
|
|
625
|
+
const snapshot = state.quota[s.provider];
|
|
626
|
+
if (!snapshot)
|
|
627
|
+
continue;
|
|
628
|
+
if (nowMs - snapshot.observedAt > QUOTA_EXHAUSTION_DEMOTION_HORIZON_MS)
|
|
629
|
+
continue;
|
|
630
|
+
demoted.add(s.provider);
|
|
631
|
+
onWarning({
|
|
632
|
+
code: "KNOWN_EXHAUSTED",
|
|
633
|
+
provider: s.provider,
|
|
634
|
+
capability,
|
|
635
|
+
message: `${s.provider} is exhausted for ${capability} (mapped category "${s.score.category}" at 0% on a snapshot ${Math.round((nowMs - snapshot.observedAt) / 60000)} min old, within the 24h demotion horizon); demoted below unknown-tier providers.`,
|
|
636
|
+
});
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
const effective = staged.map((s) => demoted.has(s.provider)
|
|
640
|
+
? { ...s, score: { authority: "unknown", reason: "KNOWN_EXHAUSTED" } }
|
|
641
|
+
: s);
|
|
642
|
+
const known = effective.filter((s) => s.score.authority === "known");
|
|
643
|
+
// D6 positioning: natural unknowns and demoted entries are kept in
|
|
644
|
+
// separate bands so a demoted provider can never ride registry order
|
|
645
|
+
// above a natural unknown.
|
|
646
|
+
const naturalUnknown = effective.filter((s) => s.score.authority === "unknown" && !demoted.has(s.provider));
|
|
647
|
+
const demotedUnknown = effective.filter((s) => s.score.authority === "unknown" && demoted.has(s.provider));
|
|
551
648
|
// Known tier: score desc, registry order, then input order (stable).
|
|
552
649
|
known.sort((a, b) => {
|
|
553
650
|
const sa = a.score.score;
|
|
@@ -558,12 +655,16 @@ export function rankProvidersForCapability(state, capability, candidates, option
|
|
|
558
655
|
return a.orderRank - b.orderRank;
|
|
559
656
|
return a.inputOrder - b.inputOrder;
|
|
560
657
|
});
|
|
561
|
-
// Unknown
|
|
562
|
-
unknown
|
|
658
|
+
// Unknown tiers: registry order, then input order (stable). The
|
|
659
|
+
// natural-unknown band sorts first; the demoted band sorts after it
|
|
660
|
+
// (D6 positioning).
|
|
661
|
+
const sortByRegistry = (a, b) => {
|
|
563
662
|
if (a.orderRank !== b.orderRank)
|
|
564
663
|
return a.orderRank - b.orderRank;
|
|
565
664
|
return a.inputOrder - b.inputOrder;
|
|
566
|
-
}
|
|
665
|
+
};
|
|
666
|
+
naturalUnknown.sort(sortByRegistry);
|
|
667
|
+
demotedUnknown.sort(sortByRegistry);
|
|
567
668
|
const toRanked = (s) => {
|
|
568
669
|
if (s.score.authority === "known") {
|
|
569
670
|
return {
|
|
@@ -579,6 +680,10 @@ export function rankProvidersForCapability(state, capability, candidates, option
|
|
|
579
680
|
reason: s.score.reason,
|
|
580
681
|
};
|
|
581
682
|
};
|
|
582
|
-
return [
|
|
683
|
+
return [
|
|
684
|
+
...known.map(toRanked),
|
|
685
|
+
...naturalUnknown.map(toRanked),
|
|
686
|
+
...demotedUnknown.map(toRanked),
|
|
687
|
+
];
|
|
583
688
|
}
|
|
584
689
|
//# sourceMappingURL=quota-mapping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-mapping.js","sourceRoot":"","sources":["../../src/lib/quota-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA+GrD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAEtC;IACF,kEAAkE;IAClE,kEAAkE;IAClE,oEAAoE;IACpE,oEAAoE;IACpE,mEAAmE;IACnE,4CAA4C;IAC5C,MAAM,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,SAAS,CAAC;IAChE,mEAAmE;IACnE,kEAAkE;IAClE,6DAA6D;IAC7D,0BAA0B;IAC1B,wBAAwB,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,CAAC;CAClF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAkC;IACpE,wBAAwB;IACxB,oBAAoB;IACpB,qBAAqB;IACrB,uBAAuB;IACvB,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,cAAc;CACf,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAkC;IACxE,wBAAwB;IACxB,oBAAoB;IACpB,qBAAqB;IACrB,uBAAuB;IACvB,gBAAgB;IAChB,cAAc;CACf,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAkC;IACrE,QAAQ;IACR,QAAQ;IACR,wBAAwB;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAkC;IACzE,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,KAAK;IACL,UAAU;CACX,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAEtC;IACF,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,UAAU;IACpB,iEAAiE;IACjE,qDAAqD;IACrD,wBAAwB,EAAE,SAAS;IACnC,oBAAoB,EAAE,SAAS;IAC/B,qBAAqB,EAAE,SAAS;IAChC,uBAAuB,EAAE,SAAS;IAClC,gBAAgB,EAAE,SAAS;IAC3B,cAAc,EAAE,SAAS;IACzB,aAAa,EAAE,SAAS;IACxB,cAAc,EAAE,SAAS;IACzB,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,SAAS;IACtB,wBAAwB,EAAE,SAAS;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAkC;IAC1E,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,KAAK;CACN,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsC;IACpE,+EAA+E;IAC/E,GAAG,wBAAwB,CAAC,GAAG,CAC7B,CAAC,UAAU,EAA0B,EAAE,CAAC,CAAC;QACvC,QAAQ,EAAE,KAAK;QACf,UAAU;QACV,eAAe,EAAE,CAAC,UAAU,CAAC;KAC9B,CAAC,CACH;IACD,GAAG,uBAAuB,CAAC,GAAG,CAC5B,CAAC,UAAU,EAA0B,EAAE,CAAC,CAAC;QACvC,QAAQ,EAAE,KAAK;QACf,UAAU;QACV,eAAe,EAAE,CAAC,QAAQ,CAAC;KAC5B,CAAC,CACH;IAED,qEAAqE;IACrE,gDAAgD;IAChD,gEAAgE;IAChE,gEAAgE;IAChE,+DAA+D;IAC/D,2CAA2C;IAC3C;QACE,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,QAAQ;QACpB,eAAe,EAAE,EAAE;KACpB;IACD,GAAG,2BAA2B,CAAC,GAAG,CAChC,CAAC,UAAU,EAA0B,EAAE,CAAC,CAAC;QACvC,QAAQ,EAAE,SAAS;QACnB,UAAU;QACV,eAAe,EAAE,EAAE;KACpB,CAAC,CACH;IAED,iEAAiE;IACjE,GAAG,4BAA4B,CAAC,GAAG,CACjC,CAAC,UAAU,EAA0B,EAAE,CAAC,CAAC;QACvC,QAAQ,EAAE,QAAQ;QAClB,UAAU;QACV,eAAe,EAAE,CAAC,6BAA6B,CAAC,UAAU,CAAE,CAAC;QAC7D,wBAAwB,EAAE,UAAU;KACrC,CAAC,CACH;IAED,mEAAmE;IACnE,GAAG,6BAA6B,CAAC,GAAG,CAClC,CAAC,UAAU,EAA0B,EAAE,CAAC,CAAC;QACvC,QAAQ,EAAE,WAAW;QACrB,UAAU;QACV,eAAe,EAAE,CAAC,SAAS,CAAC;KAC7B,CAAC,CACH;CAEF,CAAC;AA4BF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAuC;IAC7E,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,+CAA+C,EAAE;IAC5F;QACE,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,+CAA+C;KACxD;IACD;QACE,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,yDAAyD;KAClE;IACD;QACE,QAAQ,EAAE,WAAW;QACrB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,wCAAwC;KACjD;IACD;QACE,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EACJ,2GAA2G;KAC9G;IACD;QACE,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,8DAA8D;KACvE;IACD;QACE,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,sEAAsE;KAC/E;IACD;QACE,QAAQ,EAAE,YAAY;QACtB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,qEAAqE;KAC9E;IACD;QACE,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EACJ,uHAAuH;KAC1H;IACD;QACE,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,mEAAmE;KAC5E;IACD;QACE,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EACJ,oIAAoI;KACvI;IACD;QACE,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EACJ,oIAAoI;KACvI;CACF,CAAC;AA6BF,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAoB;IAEpB,OAAO,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAoB,EACpB,UAA8B;IAE9B,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;AACjG,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kCAAkC,CAChD,UAA8B,EAC9B,OAAO,GAEH,6BAA6B;IAEjC,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC;IACnD,IAAI,2BAA2B,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,OAAO,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,KAA6B,EAC7B,cAAwF;IAExF,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,kCAAkC,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,KAAK,CAAC,eAAe,CAAC;AAC/B,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAoC,EACpC,IAAY;IAEZ,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AA2BD,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC;AAC3F,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAiB,EACjB,QAAoB,EACpB,UAA8B,EAC9B,OAAO,GAAiB,EAAE;IAE1B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,OAAO,CAAC,mBAAmB,IAAI,6BAA6B,CAAC;IAEpF,4BAA4B;IAC5B,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAChD,SAAS,CAAC;YACR,IAAI,EAAE,4BAA4B;YAClC,QAAQ;YACR,UAAU;YACV,OAAO,EAAE,GAAG,QAAQ,4CAA4C,MAAM,EAAE,MAAM,IAAI,WAAW,6BAA6B;SAC3H,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IACxE,CAAC;IAED,uBAAuB;IACvB,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,SAAS,CAAC;YACR,IAAI,EAAE,iBAAiB;YACvB,QAAQ;YACR,UAAU;YACV,OAAO,EAAE,yBAAyB,QAAQ,KAAK,UAAU,2CAA2C;SACrG,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC7D,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,SAAS,CAAC;YACR,IAAI,EAAE,kBAAkB;YACxB,QAAQ;YACR,UAAU;YACV,OAAO,EAAE,yBAAyB,QAAQ,qCAAqC;SAChF,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC;YACR,IAAI,EAAE,gBAAgB;YACtB,QAAQ;YACR,UAAU;YACV,OAAO,EAAE,sBAAsB,QAAQ,uDAAuD;SAC/F,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC5D,CAAC;IAED,kBAAkB;IAClB,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC/D,IAAI,OAAkC,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,GAAG,KAAK,CAAC;YAChB,MAAM;QACR,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC;QAC/C,OAAO,GAAG,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACzE,IAAI,OAAO,EAAE,CAAC;YACZ,SAAS,CAAC;gBACR,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ;gBACR,UAAU;gBACV,OAAO,EAAE,IAAI,QAAQ,KAAK,UAAU,yDAAyD,OAAO,CAAC,IAAI,IAAI;aAC9G,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,SAAS,CAAC;YACR,IAAI,EAAE,oBAAoB;YAC1B,QAAQ;YACR,UAAU;YACV,OAAO,EAAE,IAAI,QAAQ,KAAK,UAAU,sDAAsD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC,EAAE,iCAAiC;SACzO,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAChE,CAAC;IAED,mEAAmE;IACnE,qEAAqE;IACrE,qEAAqE;IACrE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAClD,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,SAAS,CAAC;YACR,IAAI,EAAE,iBAAiB;YACvB,QAAQ;YACR,UAAU;YACV,OAAO,EAAE,IAAI,QAAQ,KAAK,UAAU,eAAe,OAAO,CAAC,IAAI,mCAAmC,MAAM,CAAC,OAAO,CAAC,wBAAwB;SAC1I,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,SAAS,EAAE,OAAO;QAClB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,OAAO,CAAC,IAAI;KACvB,CAAC;AACJ,CAAC;AA2BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAiB,EACjB,UAA8B,EAC9B,UAAiC,EACjC,OAAO,GAOH,EAAE;IAEN,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,YAAY,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE;YAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,oEAAoE;IACpE,qEAAqE;IACrE,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IAEzC,gEAAgE;IAChE,oEAAoE;IACpE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAc,CAAC;IACnC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAQD,MAAM,MAAM,GAAa,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACtD,QAAQ;QACR,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC;QAC5D,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,WAAW;QACjD,UAAU,EAAE,GAAG;KAChB,CAAC,CAAC,CAAC;IAEJ,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAEtE,qEAAqE;IACrE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAClB,MAAM,EAAE,GAAI,CAAC,CAAC,KAA2B,CAAC,KAAK,CAAC;QAChD,MAAM,EAAE,GAAI,CAAC,CAAC,KAA2B,CAAC,KAAK,CAAC;QAChD,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QAClE,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,2DAA2D;IAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QAClE,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAkB,EAAE;QAC7C,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YAClC,OAAO;gBACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,SAAS,EAAE,OAAO;gBAClB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK;gBACpB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;aAC3B,CAAC;QACJ,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;SACvB,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5D,CAAC"}
|
|
1
|
+
{"version":3,"file":"quota-mapping.js","sourceRoot":"","sources":["../../src/lib/quota-mapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -215,6 +215,26 @@ export declare function writeQuotaSnapshot(providerId: ProviderId, snapshot: Pro
|
|
|
215
215
|
* this (the user asked for fresh data).
|
|
216
216
|
*/
|
|
217
217
|
export declare const DEFAULT_QUOTA_STALE_THRESHOLD_MS: number;
|
|
218
|
+
/**
|
|
219
|
+
* Selection-only freshness horizon for KNOWN_EXHAUSTED demotion
|
|
220
|
+
* (#97): a 0% reading on a provider's capability-mapped category
|
|
221
|
+
* demotes that provider below the unknown tier in
|
|
222
|
+
* {@link "../lib/quota-mapping.js".rankProvidersForCapability} only
|
|
223
|
+
* while `now - observedAt` is within this horizon. Snapshots older
|
|
224
|
+
* than the horizon score exactly as they did before #97.
|
|
225
|
+
*
|
|
226
|
+
* Deliberately NOT the 10-minute {@link DEFAULT_QUOTA_STALE_THRESHOLD_MS}
|
|
227
|
+
* command-cadence gate, on two grounds: (a) the after-command
|
|
228
|
+
* due-refresh is command-coupled and best-effort, so snapshot
|
|
229
|
+
* freshness at selection time is not oracle-grade; (b) gating
|
|
230
|
+
* demotion on the 10-minute threshold would tie exhaustion-trust to
|
|
231
|
+
* refresh cadence — any >10-minute pause between commands would lapse
|
|
232
|
+
* the demotion and float a still-exhausted provider back to the top.
|
|
233
|
+
* The 24h horizon decouples exhaustion-trust from the command-cadence
|
|
234
|
+
* gate; the value is insensitive anywhere in the hours-to-days band,
|
|
235
|
+
* so retuning is a one-constant change.
|
|
236
|
+
*/
|
|
237
|
+
export declare const QUOTA_EXHAUSTION_DEMOTION_HORIZON_MS: number;
|
|
218
238
|
/**
|
|
219
239
|
* A snapshot is stale when `observedAt` is older than the threshold
|
|
220
240
|
* relative to `now`. A missing snapshot (undefined) is always stale.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-store.d.ts","sourceRoot":"","sources":["../../src/lib/quota-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quota-store.d.ts","sourceRoot":"","sources":["../../src/lib/quota-store.ts"],"names":[],"mappings":"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"}
|