llm-relay 0.77.0 → 0.78.0

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 (90) hide show
  1. package/dist/accounting-store-schema.js +5 -6
  2. package/dist/accounting-store-schema.js.map +1 -1
  3. package/dist/accounting-store.d.ts +10 -0
  4. package/dist/accounting-store.js +60 -6
  5. package/dist/accounting-store.js.map +1 -1
  6. package/dist/backend/envelope-validator.d.ts +1 -1
  7. package/dist/backend/envelope-validator.js +89 -52
  8. package/dist/backend/envelope-validator.js.map +1 -1
  9. package/dist/backend/health-prober.js +3 -1
  10. package/dist/backend/health-prober.js.map +1 -1
  11. package/dist/backend.d.ts +48 -0
  12. package/dist/backend.js +831 -7
  13. package/dist/backend.js.map +1 -1
  14. package/dist/candidate-runner.d.ts +135 -50
  15. package/dist/candidate-runner.js +160 -55
  16. package/dist/candidate-runner.js.map +1 -1
  17. package/dist/cli.d.ts +24 -2
  18. package/dist/cli.js +122 -20
  19. package/dist/cli.js.map +1 -1
  20. package/dist/config/routing-parser.d.ts +13 -8
  21. package/dist/config/routing-parser.js +369 -183
  22. package/dist/config/routing-parser.js.map +1 -1
  23. package/dist/config-types.d.ts +202 -0
  24. package/dist/config-types.js +2 -0
  25. package/dist/config-types.js.map +1 -1
  26. package/dist/config.d.ts +45 -1
  27. package/dist/config.js +87 -22
  28. package/dist/config.js.map +1 -1
  29. package/dist/dashboard-contract.d.ts +38 -0
  30. package/dist/dashboard-contract.js +19 -3
  31. package/dist/dashboard-contract.js.map +1 -1
  32. package/dist/dispatch-lane-stats.d.ts +33 -4
  33. package/dist/dispatch-lane-stats.js +65 -16
  34. package/dist/dispatch-lane-stats.js.map +1 -1
  35. package/dist/dispatch.d.ts +9 -0
  36. package/dist/dispatch.js +36 -4
  37. package/dist/dispatch.js.map +1 -1
  38. package/dist/key-checker.d.ts +21 -1
  39. package/dist/key-checker.js +38 -12
  40. package/dist/key-checker.js.map +1 -1
  41. package/dist/lane-affinity.d.ts +94 -1
  42. package/dist/lane-affinity.js +52 -4
  43. package/dist/lane-affinity.js.map +1 -1
  44. package/dist/mcp/lane-runner.d.ts +69 -16
  45. package/dist/mcp/lane-runner.js +30 -1
  46. package/dist/mcp/lane-runner.js.map +1 -1
  47. package/dist/mcp/server.d.ts +39 -4
  48. package/dist/mcp/server.js +70 -13
  49. package/dist/mcp/server.js.map +1 -1
  50. package/dist/openai-request.d.ts +21 -0
  51. package/dist/openai-request.js +1 -1
  52. package/dist/openai-request.js.map +1 -1
  53. package/dist/ping/cadence.js +9 -1
  54. package/dist/ping/cadence.js.map +1 -1
  55. package/dist/ping/probe-cache.d.ts +13 -0
  56. package/dist/ping/probe-cache.js +12 -0
  57. package/dist/ping/probe-cache.js.map +1 -1
  58. package/dist/responses-request.d.ts +20 -0
  59. package/dist/responses-request.js +7 -7
  60. package/dist/responses-request.js.map +1 -1
  61. package/dist/routes/admin.d.ts +8 -1
  62. package/dist/routes/admin.js +42 -6
  63. package/dist/routes/admin.js.map +1 -1
  64. package/dist/routes/messages.d.ts +1 -0
  65. package/dist/routes/messages.js +13 -8
  66. package/dist/routes/messages.js.map +1 -1
  67. package/dist/routes/openai-front.js +20 -7
  68. package/dist/routes/openai-front.js.map +1 -1
  69. package/dist/server.d.ts +9 -1
  70. package/dist/server.js +21 -3
  71. package/dist/server.js.map +1 -1
  72. package/dist/setup-claude.d.ts +2 -2
  73. package/dist/setup-claude.js +9 -7
  74. package/dist/setup-claude.js.map +1 -1
  75. package/dist/stream-pipeline.d.ts +116 -0
  76. package/dist/stream-pipeline.js +151 -0
  77. package/dist/stream-pipeline.js.map +1 -1
  78. package/dist/target-facts.d.ts +5 -4
  79. package/dist/target-facts.js +5 -0
  80. package/dist/target-facts.js.map +1 -1
  81. package/dist/telemetry.d.ts +15 -2
  82. package/dist/telemetry.js +4 -1
  83. package/dist/telemetry.js.map +1 -1
  84. package/dist/tier-data.d.ts +22 -0
  85. package/dist/tier-data.js +12 -2
  86. package/dist/tier-data.js.map +1 -1
  87. package/package.json +2 -1
  88. package/skills/llm-relay/SKILL.md +8 -3
  89. package/skills/llm-relay/references/dispatch-lanes.md +2 -1
  90. package/skills/llm-relay/references/operations.md +1 -1
@@ -59,12 +59,22 @@ export interface DispatchedTelemetryReport {
59
59
  */
60
60
  export declare function parseTelemetryReport(value: unknown): DispatchedTelemetryReport | null;
61
61
  export interface LaneStats {
62
+ /** Lane this window belongs to (the map key is composite, so the entry carries its parts). */
63
+ laneId: string;
64
+ /** Ladder tier this window belongs to, or null for the legacy single ladder. */
65
+ tier: string | null;
62
66
  calls: number;
63
67
  successes: number;
64
68
  failures: number;
65
69
  timeouts: number;
66
70
  /** Bounded wall-clock sample window, oldest dropped — advisory percentiles, not scoring. */
67
71
  wallClockMs: number[];
72
+ /**
73
+ * Per-sample ISO timestamps, parallel to `wallClockMs` — entry `i` is when sample `i` ran.
74
+ * `null` on a sample recorded before timestamps existed. The parallelism is the invariant:
75
+ * both windows trim together, so position `i` always means the same run in both.
76
+ */
77
+ wallClockAt: (string | null)[];
68
78
  lastAt: number | null;
69
79
  }
70
80
  /**
@@ -151,23 +161,42 @@ export declare function laneRoutesThroughRelay(rung: Pick<LadderRung, "env">, li
151
161
  /**
152
162
  * Record one settled lane run. `completed` counts a success; `failed` a failure; `timed_out`
153
163
  * a timeout AND a failure (a timeout did not succeed). Stats never reorder the ladder.
164
+ *
165
+ * The run lands in the (lane, tier) window named by the report's own `tier` (null when the
166
+ * report names none — the legacy single ladder). The `POST /dispatch/telemetry` route passes
167
+ * nothing extra: the report already carries `tier`, so tiering flows through this one argument.
154
168
  */
155
169
  export declare function recordLaneRun(cfg: Config, report: DispatchedTelemetryReport, now?: number): void;
156
- /** One lane's stats for this config, or undefined when the lane never ran here. A copy. */
157
- export declare function laneStatsFor(cfg: Config, laneId: string): LaneStats | undefined;
158
- /** Every lane with stats for this config, sorted by lane id so surfaces render stably. Copies. */
170
+ /** One (lane, tier) window for this config, or undefined when that lane never ran on that tier. A copy. */
171
+ export declare function laneStatsFor(cfg: Config, laneId: string, tier?: string | null): LaneStats | undefined;
172
+ /**
173
+ * Every (lane, tier) window for this config, sorted by lane id then tier (tier-less first) so
174
+ * surfaces render stably. Copies.
175
+ */
159
176
  export declare function allLaneStats(cfg: Config): Array<{
160
177
  laneId: string;
161
178
  } & LaneStats>;
162
179
  export declare function onLaneStatsChanged(cfg: Config, listener: () => void): void;
163
- /** One exported/persisted lane row: the lane id plus its counters and sample window. */
180
+ /**
181
+ * One exported/persisted lane row: the (lane, tier) key plus its counters and sample window.
182
+ *
183
+ * ⚠ `tier` and `wallClockAt` are OPTIONAL on the wire, and that is the whole backward-compat
184
+ * story: a row written before tiering (no `tier` key, bare-number samples) loads here with
185
+ * `tier: null` and all-null timestamps — nothing is rewritten or copied — and a row written
186
+ * here loads on the previous release, whose validator reads the fields it knows (`laneId`,
187
+ * the counters, the numeric `wallClockMs`, `lastAt`) and ignores the two keys it does not.
188
+ * No existing field changed meaning, so the schema version does NOT bump (the
189
+ * `breaker-persistence.ts` rule: bump only when the MEANING of an existing field changes).
190
+ */
164
191
  export interface LaneStatsRow {
165
192
  laneId: string;
193
+ tier?: string | null;
166
194
  calls: number;
167
195
  successes: number;
168
196
  failures: number;
169
197
  timeouts: number;
170
198
  wallClockMs: number[];
199
+ wallClockAt?: (string | null)[];
171
200
  lastAt: number | null;
172
201
  }
173
202
  /** Still-live rows for persistence and ladder surfaces. */
@@ -98,8 +98,11 @@ export function quantileWallClockMs(samples, quantile) {
98
98
  const rank = Math.ceil(q * sorted.length);
99
99
  return sorted[Math.min(sorted.length, Math.max(1, rank)) - 1] ?? null;
100
100
  }
101
- function freshLaneStats() {
102
- return { calls: 0, successes: 0, failures: 0, timeouts: 0, wallClockMs: [], lastAt: null };
101
+ function freshLaneStats(laneId, tier) {
102
+ return { laneId, tier, calls: 0, successes: 0, failures: 0, timeouts: 0, wallClockMs: [], wallClockAt: [], lastAt: null };
103
+ }
104
+ function statsKey(tier, laneId) {
105
+ return `${tier ?? ""}:${laneId}`;
103
106
  }
104
107
  export const RELAY_ROUTED_ENV_NAMES = ["ANTHROPIC_BASE_URL", "OPENAI_BASE_URL"];
105
108
  export function laneRoutesThroughRelay(rung, listener) {
@@ -140,14 +143,16 @@ function laneStatsForWrite(cfg) {
140
143
  return m;
141
144
  }
142
145
  function copyStats(stats) {
143
- return { ...stats, wallClockMs: [...stats.wallClockMs] };
146
+ return { ...stats, wallClockMs: [...stats.wallClockMs], wallClockAt: [...stats.wallClockAt] };
144
147
  }
145
148
  export function recordLaneRun(cfg, report, now = Date.now()) {
146
149
  const map = laneStatsForWrite(cfg);
147
- let entry = map.get(report.laneId);
150
+ const tier = report.tier ?? null;
151
+ const key = statsKey(tier, report.laneId);
152
+ let entry = map.get(key);
148
153
  if (!entry) {
149
- entry = freshLaneStats();
150
- map.set(report.laneId, entry);
154
+ entry = freshLaneStats(report.laneId, tier);
155
+ map.set(key, entry);
151
156
  }
152
157
  entry.calls += 1;
153
158
  switch (report.status) {
@@ -169,22 +174,35 @@ export function recordLaneRun(cfg, report, now = Date.now()) {
169
174
  throw new Error(`unhandled dispatch lane status: ${String(_never)}`);
170
175
  }
171
176
  }
172
- if (report.status !== "abandoned")
177
+ if (report.status !== "abandoned") {
173
178
  entry.wallClockMs.push(report.wallClockMs);
179
+ entry.wallClockAt.push(new Date(now).toISOString());
180
+ }
174
181
  if (entry.wallClockMs.length > MAX_LANE_STAT_SAMPLES) {
175
- entry.wallClockMs.splice(0, entry.wallClockMs.length - MAX_LANE_STAT_SAMPLES);
182
+ const drop = entry.wallClockMs.length - MAX_LANE_STAT_SAMPLES;
183
+ entry.wallClockMs.splice(0, drop);
184
+ entry.wallClockAt.splice(0, drop);
176
185
  }
177
186
  entry.lastAt = now;
178
187
  notifyLaneStats(cfg);
179
188
  }
180
- export function laneStatsFor(cfg, laneId) {
181
- const entry = laneStats.get(cfg)?.get(laneId);
189
+ export function laneStatsFor(cfg, laneId, tier = null) {
190
+ const entry = laneStats.get(cfg)?.get(statsKey(tier, laneId));
182
191
  return entry ? copyStats(entry) : undefined;
183
192
  }
184
193
  export function allLaneStats(cfg) {
185
- return [...(laneStats.get(cfg) ?? new Map()).entries()]
186
- .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
187
- .map(([laneId, stats]) => ({ laneId, ...copyStats(stats) }));
194
+ const compareRows = (a, b) => {
195
+ if (a.laneId !== b.laneId)
196
+ return a.laneId < b.laneId ? -1 : 1;
197
+ const ta = a.tier ?? "";
198
+ const tb = b.tier ?? "";
199
+ if (ta !== tb)
200
+ return ta < tb ? -1 : 1;
201
+ return 0;
202
+ };
203
+ return [...(laneStats.get(cfg) ?? new Map()).values()]
204
+ .sort(compareRows)
205
+ .map((stats) => ({ ...copyStats(stats) }));
188
206
  }
189
207
  const laneStatsListeners = new WeakMap();
190
208
  export function onLaneStatsChanged(cfg, listener) {
@@ -205,22 +223,46 @@ function notifyLaneStats(cfg) {
205
223
  }
206
224
  }
207
225
  export function exportLaneStatsRows(cfg) {
208
- return allLaneStats(cfg).map(({ laneId, calls, successes, failures, timeouts, wallClockMs, lastAt }) => ({
226
+ return allLaneStats(cfg).map(({ laneId, tier, calls, successes, failures, timeouts, wallClockMs, wallClockAt, lastAt }) => ({
209
227
  laneId,
228
+ tier,
210
229
  calls,
211
230
  successes,
212
231
  failures,
213
232
  timeouts,
214
233
  wallClockMs: [...wallClockMs],
234
+ wallClockAt: [...wallClockAt],
215
235
  lastAt,
216
236
  }));
217
237
  }
238
+ function isLaneTier(value) {
239
+ if (value === undefined || value === null)
240
+ return true;
241
+ return isBoundedId(value, MAX_TIER_CHARS);
242
+ }
243
+ function isWallClockAt(value, samples) {
244
+ if (value === undefined)
245
+ return true;
246
+ if (!Array.isArray(value))
247
+ return false;
248
+ if (value.length !== samples)
249
+ return false;
250
+ for (const stamp of value) {
251
+ if (stamp === null)
252
+ continue;
253
+ if (typeof stamp !== "string" || Number.isNaN(Date.parse(stamp)))
254
+ return false;
255
+ }
256
+ return true;
257
+ }
218
258
  function isLaneStatsRow(value) {
219
259
  if (value === null || typeof value !== "object" || Array.isArray(value))
220
260
  return false;
221
261
  const row = value;
222
262
  if (!isBoundedId(row["laneId"], MAX_LANE_ID_CHARS))
223
263
  return false;
264
+ if (!isLaneTier(row["tier"]))
265
+ return false;
224
266
  for (const key of ["calls", "successes", "failures", "timeouts"]) {
225
267
  if (!isTokenCount(row[key]))
226
268
  return false;
@@ -234,6 +276,8 @@ function isLaneStatsRow(value) {
234
276
  if (typeof sample !== "number" || !Number.isFinite(sample) || sample < 0)
235
277
  return false;
236
278
  }
279
+ if (!isWallClockAt(row["wallClockAt"], wallClockMs.length))
280
+ return false;
237
281
  const lastAt = row["lastAt"];
238
282
  if (lastAt !== null && (typeof lastAt !== "number" || !Number.isFinite(lastAt) || lastAt < 0))
239
283
  return false;
@@ -243,14 +287,19 @@ export function restoreLaneStatsRows(cfg, rows) {
243
287
  const map = laneStatsForWrite(cfg);
244
288
  let restored = 0;
245
289
  for (const row of rows) {
246
- if (map.has(row.laneId))
290
+ const tier = row.tier ?? null;
291
+ const key = statsKey(tier, row.laneId);
292
+ if (map.has(key))
247
293
  continue;
248
- map.set(row.laneId, {
294
+ map.set(key, {
295
+ laneId: row.laneId,
296
+ tier,
249
297
  calls: row.calls,
250
298
  successes: row.successes,
251
299
  failures: row.failures,
252
300
  timeouts: row.timeouts,
253
301
  wallClockMs: row.wallClockMs.slice(-MAX_LANE_STAT_SAMPLES),
302
+ wallClockAt: (row.wallClockAt ?? new Array(row.wallClockMs.length).fill(null)).slice(-MAX_LANE_STAT_SAMPLES),
254
303
  lastAt: row.lastAt,
255
304
  });
256
305
  restored++;
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch-lane-stats.js","sourceRoot":"","sources":["../src/dispatch-lane-stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch-lane-stats.js","sourceRoot":"","sources":["../src/dispatch-lane-stats.ts"],"names":[],"mappings":"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"}
@@ -100,6 +100,15 @@ export interface DispatchLane {
100
100
  /** Shared quota bucket, when the rung declares one. Rungs sharing a bucket go down together. */
101
101
  quota?: string;
102
102
  note?: string;
103
+ /**
104
+ * cli rungs: the configured per-MCP-server-process concurrency cap, or `null` when unbounded.
105
+ * Set on every `cli` lane (never on a `relay` lane, which has no such config field) so a reader
106
+ * of the ladder can always see whether one is in force, even before any job has run against it —
107
+ * the live IN-FLIGHT count is a different question this module cannot answer (only the MCP server
108
+ * process that would spawn a job knows what it is currently running), so `mcp/server.ts` renders
109
+ * that count itself alongside this figure rather than this module inventing one.
110
+ */
111
+ maxConcurrent?: number | null;
103
112
  /** When an exhausted rung becomes eligible again (ISO 8601). */
104
113
  readyAt?: string;
105
114
  /**
package/dist/dispatch.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { expandPoolSpecs, offloadRule, splitSpec, POOL_PREFIX } from "./config.js";
2
2
  import { unsupportedArgValues, verifyModel } from "./lane-manifest.js";
3
- import { allLaneStats, medianWallClockMs, p95WallClockMs, quantileWallClockMs } from "./dispatch-lane-stats.js";
3
+ import { allLaneStats, laneStatsFor, medianWallClockMs, p95WallClockMs, quantileWallClockMs } from "./dispatch-lane-stats.js";
4
4
  import { laneDemotion, lanePin } from "./lane-affinity.js";
5
5
  export const DEFAULT_EXHAUSTED_MS = 15 * 60 * 1000;
6
6
  export const MAX_EXHAUSTED_MS = 30 * 24 * 60 * 60 * 1000;
@@ -319,6 +319,7 @@ function toLane(rung, position, cfg, opts, now, client, platform, host, entrypoi
319
319
  lane.note = rung.note;
320
320
  if (until !== null)
321
321
  lane.readyAt = new Date(until).toISOString();
322
+ lane.maxConcurrent = rung.maxConcurrent ?? null;
322
323
  if (rung.kind === "cli" && rung.command && rung.args) {
323
324
  lane.invoke = {
324
325
  command: normalizeCliCommand(rung.command, platform),
@@ -447,7 +448,27 @@ export function buildDispatch(cfg, rawOpts = {}, platform = process.platform) {
447
448
  const selected = selectLadder(cfg, opts.tier);
448
449
  const rungs = selected.rungs;
449
450
  const ladder = rungs.map((r, i) => toLane(r, i + 1, cfg, opts, now, client, platform, opts.host, opts.entrypoint));
450
- const statsByLane = new Map(allLaneStats(cfg).map((row) => [row.laneId, row]));
451
+ const statsByLane = new Map();
452
+ for (const row of allLaneStats(cfg)) {
453
+ const agg = statsByLane.get(row.laneId);
454
+ if (!agg) {
455
+ statsByLane.set(row.laneId, {
456
+ calls: row.calls,
457
+ successes: row.successes,
458
+ failures: row.failures,
459
+ timeouts: row.timeouts,
460
+ wallClockMs: [...row.wallClockMs],
461
+ lastAt: row.lastAt,
462
+ });
463
+ continue;
464
+ }
465
+ agg.calls += row.calls;
466
+ agg.successes += row.successes;
467
+ agg.failures += row.failures;
468
+ agg.timeouts += row.timeouts;
469
+ agg.wallClockMs.push(...row.wallClockMs);
470
+ agg.lastAt = agg.lastAt === null ? row.lastAt : row.lastAt === null ? agg.lastAt : Math.max(agg.lastAt, row.lastAt);
471
+ }
451
472
  for (const lane of ladder) {
452
473
  const row = statsByLane.get(lane.id);
453
474
  if (row === undefined)
@@ -463,7 +484,7 @@ export function buildDispatch(cfg, rawOpts = {}, platform = process.platform) {
463
484
  };
464
485
  }
465
486
  for (const lane of ladder) {
466
- const budget = attemptBudget(cfg, statsByLane.get(lane.id)?.wallClockMs ?? []);
487
+ const budget = attemptBudget(cfg, lane.id, selected.tier);
467
488
  if (budget !== undefined)
468
489
  lane.attemptBudget = budget;
469
490
  }
@@ -538,10 +559,21 @@ export function buildDispatch(cfg, rawOpts = {}, platform = process.platform) {
538
559
  const why = selectionReason(next, opts.after, usable);
539
560
  return { ...base, order: ranked.map((l) => l.id), next, reason: why };
540
561
  }
541
- function attemptBudget(cfg, samples) {
562
+ function attemptBudget(cfg, laneId, tier) {
542
563
  const walk = cfg.routing.dispatchWalk;
543
564
  if (!walk || !walk.enabled)
544
565
  return undefined;
566
+ const tiered = laneStatsFor(cfg, laneId, tier)?.wallClockMs ?? [];
567
+ if (tiered.length >= walk.attemptMinSamples) {
568
+ return budgetFromSamples(tiered, walk);
569
+ }
570
+ if (tier === null) {
571
+ return budgetFromSamples(tiered, walk);
572
+ }
573
+ const legacy = laneStatsFor(cfg, laneId, null)?.wallClockMs ?? [];
574
+ return budgetFromSamples(legacy, walk);
575
+ }
576
+ function budgetFromSamples(samples, walk) {
545
577
  if (samples.length < walk.attemptMinSamples) {
546
578
  return { ms: walk.attemptMs, basis: "floor", samples: samples.length };
547
579
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import type { Config } from "./config.js";
1
+ import type { Config, ProviderConfig } from "./config.js";
2
+ import { type CredentialSlot } from "./credential-fleet.js";
3
+ import { ModelCatalog } from "./catalog.js";
2
4
  /**
3
5
  * Describe a thrown error WITHOUT quoting it.
4
6
  *
@@ -24,6 +26,23 @@ export interface KeyCheckResult {
24
26
  quotaPercent?: number | null | undefined;
25
27
  modelsFound?: number | undefined;
26
28
  }
29
+ /**
30
+ * Choose the probe model for the authenticated completion escalation.
31
+ *
32
+ * Order of preference (first match wins):
33
+ * 1. A routed model (in config order) that the slot allows AND `assessCost` calls free-class.
34
+ * 2. A model from the provider's /models listing that the slot allows AND `assessCost` calls
35
+ * free-class.
36
+ * 3. Otherwise EXACTLY the pre-2026-09-09 choice, byte for byte: the FIRST routed model when the
37
+ * slot allows it, else the slot's own first declared model, else the first listed id.
38
+ *
39
+ * `tierType` reaches `assessCost` so a zero-priced model with NO catalog row on a
40
+ * `tierType: "free"` provider is still free-class (the `provider-tier` basis): a null row is not
41
+ * evidence of a price. A catalog that knows nothing therefore changes nothing — steps 1–2 find no
42
+ * free-class model and step 3 is the legacy rule, so a provider with no free model behaves as it
43
+ * did before the free-model preference existed.
44
+ */
45
+ export declare function chooseProbeModel(providerName: string, routedModels: Map<string, string[]>, listedModels: string[], slot: CredentialSlot, catalog: Pick<ModelCatalog, "cachedLimits">, tierType: ProviderConfig["tierType"]): string | undefined;
27
46
  /**
28
47
  * Pre-flight check all configured provider API keys.
29
48
  *
@@ -35,4 +54,5 @@ export interface KeyCheckResult {
35
54
  export declare function validateProviderKeys(cfg: Config, fetchFn?: typeof fetch, opts?: {
36
55
  budgetMs?: number;
37
56
  env?: NodeJS.ProcessEnv;
57
+ catalog?: Pick<ModelCatalog, "cachedLimits">;
38
58
  }): Promise<KeyCheckResult[]>;