llm-relay 0.62.0 → 0.63.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 (231) hide show
  1. package/dist/accounting-store-io.js +0 -33
  2. package/dist/accounting-store-io.js.map +1 -1
  3. package/dist/accounting-store-schema.js +0 -65
  4. package/dist/accounting-store-schema.js.map +1 -1
  5. package/dist/accounting-store.js +0 -195
  6. package/dist/accounting-store.js.map +1 -1
  7. package/dist/accounting.js +0 -72
  8. package/dist/accounting.js.map +1 -1
  9. package/dist/anthropic.js +0 -18
  10. package/dist/anthropic.js.map +1 -1
  11. package/dist/authEnv.js +0 -78
  12. package/dist/authEnv.js.map +1 -1
  13. package/dist/availability-snapshot.js +0 -58
  14. package/dist/availability-snapshot.js.map +1 -1
  15. package/dist/availability.js +0 -162
  16. package/dist/availability.js.map +1 -1
  17. package/dist/backend.js +1 -416
  18. package/dist/backend.js.map +1 -1
  19. package/dist/benchmarks.js +1 -63
  20. package/dist/benchmarks.js.map +1 -1
  21. package/dist/breaker-persistence.js +0 -59
  22. package/dist/breaker-persistence.js.map +1 -1
  23. package/dist/candidates.js +0 -64
  24. package/dist/candidates.js.map +1 -1
  25. package/dist/catalog.js +1 -140
  26. package/dist/catalog.js.map +1 -1
  27. package/dist/circuit-breaker.js +1 -90
  28. package/dist/circuit-breaker.js.map +1 -1
  29. package/dist/claude-hook.js +0 -81
  30. package/dist/claude-hook.js.map +1 -1
  31. package/dist/cli.d.ts +36 -0
  32. package/dist/cli.js +73 -730
  33. package/dist/cli.js.map +1 -1
  34. package/dist/config-edit.js +0 -11
  35. package/dist/config-edit.js.map +1 -1
  36. package/dist/config.d.ts +21 -0
  37. package/dist/config.js +22 -372
  38. package/dist/config.js.map +1 -1
  39. package/dist/configured-limits.js +0 -58
  40. package/dist/configured-limits.js.map +1 -1
  41. package/dist/context-limits.js +0 -97
  42. package/dist/context-limits.js.map +1 -1
  43. package/dist/control-authorization.js +0 -36
  44. package/dist/control-authorization.js.map +1 -1
  45. package/dist/cooldown-clear.js +0 -6
  46. package/dist/cooldown-clear.js.map +1 -1
  47. package/dist/credential-fleet.js +0 -5
  48. package/dist/credential-fleet.js.map +1 -1
  49. package/dist/credential-select.js +4 -30
  50. package/dist/credential-select.js.map +1 -1
  51. package/dist/dashboard-auth.js +0 -29
  52. package/dist/dashboard-auth.js.map +1 -1
  53. package/dist/dashboard-contract.js +0 -46
  54. package/dist/dashboard-contract.js.map +1 -1
  55. package/dist/dashboard-routes.js +0 -32
  56. package/dist/dashboard-routes.js.map +1 -1
  57. package/dist/dashboard-snapshot.js +0 -154
  58. package/dist/dashboard-snapshot.js.map +1 -1
  59. package/dist/dashboard-static.js +0 -22
  60. package/dist/dashboard-static.js.map +1 -1
  61. package/dist/delegate-gate/cast-necessity.js +1 -22
  62. package/dist/delegate-gate/cast-necessity.js.map +1 -1
  63. package/dist/delegate-gate/cli.js +0 -6
  64. package/dist/delegate-gate/cli.js.map +1 -1
  65. package/dist/delegate-gate/diff-parser.js +0 -32
  66. package/dist/delegate-gate/diff-parser.js.map +1 -1
  67. package/dist/delegate-gate/fix.js +0 -10
  68. package/dist/delegate-gate/fix.js.map +1 -1
  69. package/dist/delegate-gate/gate.js +0 -12
  70. package/dist/delegate-gate/gate.js.map +1 -1
  71. package/dist/delegate-gate/minimality.js +0 -38
  72. package/dist/delegate-gate/minimality.js.map +1 -1
  73. package/dist/delegate-gate/post-image.js +1 -13
  74. package/dist/delegate-gate/post-image.js.map +1 -1
  75. package/dist/delegate-gate/shared-state.js +0 -23
  76. package/dist/delegate-gate/shared-state.js.map +1 -1
  77. package/dist/delegate-gate/test-assertions.js +1 -54
  78. package/dist/delegate-gate/test-assertions.js.map +1 -1
  79. package/dist/delegate-gate/types.js +0 -11
  80. package/dist/delegate-gate/types.js.map +1 -1
  81. package/dist/dialect-stream.js +9 -37
  82. package/dist/dialect-stream.js.map +1 -1
  83. package/dist/dispatch-exhaustion-persistence.js +0 -35
  84. package/dist/dispatch-exhaustion-persistence.js.map +1 -1
  85. package/dist/dispatch.js +0 -269
  86. package/dist/dispatch.js.map +1 -1
  87. package/dist/documents.js +0 -92
  88. package/dist/documents.js.map +1 -1
  89. package/dist/dotenv.js +0 -22
  90. package/dist/dotenv.js.map +1 -1
  91. package/dist/dynamic-pools.js +0 -93
  92. package/dist/dynamic-pools.js.map +1 -1
  93. package/dist/emitSse.js +0 -64
  94. package/dist/emitSse.js.map +1 -1
  95. package/dist/executable-lookup.js +0 -59
  96. package/dist/executable-lookup.js.map +1 -1
  97. package/dist/hard-cap.js +1 -32
  98. package/dist/hard-cap.js.map +1 -1
  99. package/dist/host-routing.js +0 -40
  100. package/dist/host-routing.js.map +1 -1
  101. package/dist/installed-hosts.js +0 -71
  102. package/dist/installed-hosts.js.map +1 -1
  103. package/dist/json-shape.js +0 -19
  104. package/dist/json-shape.js.map +1 -1
  105. package/dist/kernel/contracts.js +0 -26
  106. package/dist/kernel/contracts.js.map +1 -1
  107. package/dist/kernel/request-lifecycle.js +0 -4
  108. package/dist/kernel/request-lifecycle.js.map +1 -1
  109. package/dist/key-checker.js +0 -115
  110. package/dist/key-checker.js.map +1 -1
  111. package/dist/key-import.js +0 -20
  112. package/dist/key-import.js.map +1 -1
  113. package/dist/keys-cli.js +0 -15
  114. package/dist/keys-cli.js.map +1 -1
  115. package/dist/keystore.js +2 -51
  116. package/dist/keystore.js.map +1 -1
  117. package/dist/lane-cadence.js +1 -51
  118. package/dist/lane-cadence.js.map +1 -1
  119. package/dist/lane-manifest.js +0 -54
  120. package/dist/lane-manifest.js.map +1 -1
  121. package/dist/lane-probe.js +0 -36
  122. package/dist/lane-probe.js.map +1 -1
  123. package/dist/lane-quota-probe.js +0 -61
  124. package/dist/lane-quota-probe.js.map +1 -1
  125. package/dist/log.js +0 -17
  126. package/dist/log.js.map +1 -1
  127. package/dist/mcp/lane-runner.d.ts +114 -0
  128. package/dist/mcp/lane-runner.js +186 -0
  129. package/dist/mcp/lane-runner.js.map +1 -0
  130. package/dist/mcp/protocol.d.ts +98 -0
  131. package/dist/mcp/protocol.js +67 -0
  132. package/dist/mcp/protocol.js.map +1 -0
  133. package/dist/mcp/server.d.ts +78 -0
  134. package/dist/mcp/server.js +360 -0
  135. package/dist/mcp/server.js.map +1 -0
  136. package/dist/metadata.js +0 -73
  137. package/dist/metadata.js.map +1 -1
  138. package/dist/network-block.js +0 -45
  139. package/dist/network-block.js.map +1 -1
  140. package/dist/offload.js +0 -21
  141. package/dist/offload.js.map +1 -1
  142. package/dist/onboarding.js +0 -36
  143. package/dist/onboarding.js.map +1 -1
  144. package/dist/openai-dialect.js +0 -32
  145. package/dist/openai-dialect.js.map +1 -1
  146. package/dist/openai-request.js +0 -236
  147. package/dist/openai-request.js.map +1 -1
  148. package/dist/os-keyring.js +0 -28
  149. package/dist/os-keyring.js.map +1 -1
  150. package/dist/ping/cadence.js +3 -90
  151. package/dist/ping/cadence.js.map +1 -1
  152. package/dist/ping/metrics.js +0 -91
  153. package/dist/ping/metrics.js.map +1 -1
  154. package/dist/ping/ping.js +0 -17
  155. package/dist/ping/ping.js.map +1 -1
  156. package/dist/ping/probe-cache.js +2 -53
  157. package/dist/ping/probe-cache.js.map +1 -1
  158. package/dist/ping/quota.js +0 -17
  159. package/dist/ping/quota.js.map +1 -1
  160. package/dist/ping/runtime-telemetry.js +1 -18
  161. package/dist/ping/runtime-telemetry.js.map +1 -1
  162. package/dist/pool-health.js +0 -49
  163. package/dist/pool-health.js.map +1 -1
  164. package/dist/presets.js +0 -4
  165. package/dist/presets.js.map +1 -1
  166. package/dist/process-safety-net.js +0 -36
  167. package/dist/process-safety-net.js.map +1 -1
  168. package/dist/quota-demotion.js +1 -35
  169. package/dist/quota-demotion.js.map +1 -1
  170. package/dist/quota-observation.js +0 -21
  171. package/dist/quota-observation.js.map +1 -1
  172. package/dist/rate-limits.js +1 -94
  173. package/dist/rate-limits.js.map +1 -1
  174. package/dist/refusal-interpretation.js +2 -327
  175. package/dist/refusal-interpretation.js.map +1 -1
  176. package/dist/registry.js +0 -11
  177. package/dist/registry.js.map +1 -1
  178. package/dist/repair.js +1 -119
  179. package/dist/repair.js.map +1 -1
  180. package/dist/request-log.js +0 -2
  181. package/dist/request-log.js.map +1 -1
  182. package/dist/reshaper.js +0 -85
  183. package/dist/reshaper.js.map +1 -1
  184. package/dist/resolved-attempt.js +0 -3
  185. package/dist/resolved-attempt.js.map +1 -1
  186. package/dist/responses-request.js +0 -187
  187. package/dist/responses-request.js.map +1 -1
  188. package/dist/routes/admin.js +0 -38
  189. package/dist/routes/admin.js.map +1 -1
  190. package/dist/secret-file-acl.js +0 -26
  191. package/dist/secret-file-acl.js.map +1 -1
  192. package/dist/self-update.js +0 -118
  193. package/dist/self-update.js.map +1 -1
  194. package/dist/server.js +15 -952
  195. package/dist/server.js.map +1 -1
  196. package/dist/session-pin.js +0 -9
  197. package/dist/session-pin.js.map +1 -1
  198. package/dist/setup-claude.js +0 -9
  199. package/dist/setup-claude.js.map +1 -1
  200. package/dist/spend-headroom.js +0 -20
  201. package/dist/spend-headroom.js.map +1 -1
  202. package/dist/sse-frames.js +0 -31
  203. package/dist/sse-frames.js.map +1 -1
  204. package/dist/sse.js +1 -19
  205. package/dist/sse.js.map +1 -1
  206. package/dist/state-paths.js +0 -16
  207. package/dist/state-paths.js.map +1 -1
  208. package/dist/stream-commit.js +1 -27
  209. package/dist/stream-commit.js.map +1 -1
  210. package/dist/target-facts.js +2 -130
  211. package/dist/target-facts.js.map +1 -1
  212. package/dist/telemetry.js +0 -8
  213. package/dist/telemetry.js.map +1 -1
  214. package/dist/think-tags.js +1 -38
  215. package/dist/think-tags.js.map +1 -1
  216. package/dist/tier-data.js +0 -29
  217. package/dist/tier-data.js.map +1 -1
  218. package/dist/tool-dialects.js +1 -103
  219. package/dist/tool-dialects.js.map +1 -1
  220. package/dist/tool-use-ids.js +0 -51
  221. package/dist/tool-use-ids.js.map +1 -1
  222. package/dist/usage-observer.js +0 -52
  223. package/dist/usage-observer.js.map +1 -1
  224. package/dist/validator.js +1 -25
  225. package/dist/validator.js.map +1 -1
  226. package/dist/winenv.js +0 -63
  227. package/dist/winenv.js.map +1 -1
  228. package/dist/write-behind.js +0 -12
  229. package/dist/write-behind.js.map +1 -1
  230. package/package.json +2 -2
  231. package/skills/llm-relay/SKILL.md +26 -1
@@ -1 +1 @@
1
- {"version":3,"file":"os-keyring.js","sourceRoot":"","sources":["../src/os-keyring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"os-keyring.js","sourceRoot":"","sources":["../src/os-keyring.ts"],"names":[],"mappings":"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"}
@@ -15,22 +15,12 @@ export const PING_MODE_INTERVALS = {
15
15
  slow: 30000,
16
16
  forced: 4000,
17
17
  };
18
- export const SPEED_MODE_DURATION_MS = 60000; // 60s
19
- export const IDLE_SLOW_AFTER_MS = 300000; // 5 min
20
- /**
21
- * How often one credential's provider-stated spend headroom is re-asked (`spend-headroom.ts`).
22
- * Slow on purpose: the figure moves with the account's own spend, and the `allowance-exhausted`
23
- * fact it feeds carries a 1h TTL — a 15-minute cadence keeps the fact alive while a condition
24
- * holds and notices bought credits within one interval, at four requests per credential per hour.
25
- */
18
+ export const SPEED_MODE_DURATION_MS = 60000;
19
+ export const IDLE_SLOW_AFTER_MS = 300000;
26
20
  export const SPEND_POLL_INTERVAL_MS = 15 * 60 * 1000;
27
21
  function values(value) {
28
22
  return Array.isArray(value) ? value : typeof value === "string" ? [value] : [];
29
23
  }
30
- /**
31
- * Concrete deployments that routing can currently select, ordered for useful early coverage.
32
- * Pool leaders come first, then pinned routes/subagent choices, then the remaining pool members.
33
- */
34
24
  export function collectRoutableModels(cfg) {
35
25
  const ordered = [];
36
26
  const seen = new Set();
@@ -46,7 +36,6 @@ export function collectRoutableModels(cfg) {
46
36
  seen.add(spec);
47
37
  ordered.push(spec);
48
38
  };
49
- // Cover the head of every failover lane before spending probes on deep fallbacks.
50
39
  for (const members of Object.values(cfg.routing.pools ?? {})) {
51
40
  if (members[0])
52
41
  touchConcrete(members[0]);
@@ -87,11 +76,8 @@ export class PingLoop {
87
76
  timerObj = null;
88
77
  running = false;
89
78
  pingHistory = new Map();
90
- /** Quota is credential and model scoped; provider-wide percentages were always ambiguous. */
91
79
  latestQuota = new Map();
92
- /** Request-local fleet cursor persisted between ticks so one-due-model ticks still rotate. */
93
80
  credentialCursors = new Map();
94
- /** When each credential's spend headroom was last asked for — the SPEND_POLL_INTERVAL_MS gate. */
95
81
  spendPolledAt = new Map();
96
82
  constructor(cfg, catalog, opts = {}) {
97
83
  this.cfg = cfg;
@@ -142,8 +128,6 @@ export class PingLoop {
142
128
  }
143
129
  recordPing(providerKey, modelId, res, timestamp = Date.now(), credentialId = makeCredentialId(providerKey)) {
144
130
  const key = `${providerKey}/${modelId}`;
145
- // Through the hydrating getter, so a fresh process appends to the history previous runs
146
- // built instead of starting a second, shorter one beside it.
147
131
  if (!this.pingHistory.has(key))
148
132
  this.getModelPings(providerKey, modelId);
149
133
  let history = this.pingHistory.get(key);
@@ -158,53 +142,24 @@ export class PingLoop {
158
142
  this.latestQuota.set(quotaKey, mergeQuotaObservations(this.getQuotaObservations(credentialId, modelId), res.quotaObservations));
159
143
  const parsedCredential = parseCredentialId(credentialId);
160
144
  const isDefaultProbe = parsedCredential?.provider === providerKey && parsedCredential.label === "default";
161
- // Probe cache has a deployment key, so only its real default-credential producer may attach
162
- // quota to it. Health samples are still shared deployment evidence for every call.
163
145
  recordProbeResult(providerKey, modelId, {
164
146
  ...res,
165
147
  quotaObservations: isDefaultProbe ? res.quotaObservations : [],
166
148
  }, this.probeCacheOpts());
167
- // A successful probe is a REAL completion — `ping.ts` posts one user message at
168
- // `max_tokens: 1` — sent with THIS credential slot, so it is the same first-party proof a
169
- // served request is: the deployment exists and the credential has allowance RIGHT NOW.
170
- // `server.ts` has always cleared cooling conditions on that evidence; until 2026-08-30 this
171
- // path did not, so `clearFacts` had exactly ONE caller and a long-window
172
- // `allowance-exhausted` fact survived its whole window unless real traffic happened to reach
173
- // the demoted candidate. Since the relay probes every deployment on a cadence anyway, that
174
- // made background recovery undetectable — the owner's stated expectation, and the reason a
175
- // week-long operator-asserted reset is safe to record at all.
176
- // ⚠ Measurements are never touched: `clearFacts` excludes them, because a success disproves
177
- // a condition and never a measurement.
178
- // ⚠ Unlike the served path this does NOT also clear the breaker's credential faults —
179
- // `PingLoop` holds no breaker reference, and those carry their own 5-minute TTL.
180
- // ⚠ Contained: the fact store must never be able to break the probe loop.
181
149
  if (res.code === "200") {
182
150
  try {
183
151
  clearFacts(providerKey, credentialId, modelId);
184
152
  }
185
153
  catch {
186
- /* best-effort */
187
154
  }
188
155
  }
189
156
  }
190
- /**
191
- * Recent probes for a model — from memory, falling back to what previous runs persisted.
192
- *
193
- * ⚠ The fallback is the whole point. This used to read `pingHistory` alone, a Map built only
194
- * during the current process's life, while `recordProbeResult` wrote every probe to
195
- * `probe-cache.json` and nothing ever read it back. Every restart therefore reset every model
196
- * to `Pending` with `p95: -1`, so a proxy that restarts at all — a laptop that slept, an
197
- * upgrade, a crash — never accumulated latency history for anything. The disk is the long-term
198
- * record this is supposed to be keeping; memory is just the hot copy.
199
- */
200
157
  getModelPings(providerKey, modelId) {
201
158
  const key = `${providerKey}/${modelId}`;
202
159
  const live = this.pingHistory.get(key);
203
160
  if (live && live.length > 0)
204
161
  return live;
205
162
  const persisted = this.readPersisted(providerKey, modelId);
206
- // Seed memory so the next call is hot and later probes append to the real history rather
207
- // than starting a second, shorter one beside it.
208
163
  if (persisted.length > 0)
209
164
  this.pingHistory.set(key, [...persisted]);
210
165
  return persisted;
@@ -214,18 +169,12 @@ export class PingLoop {
214
169
  return loadPersistedSamples(providerKey, modelId, this.probeCacheOpts());
215
170
  }
216
171
  catch {
217
- return []; // a corrupt or unreadable cache must never break the health surface
172
+ return [];
218
173
  }
219
174
  }
220
175
  probeCacheOpts() {
221
176
  return this.opts.probeCachePath ? { path: this.opts.probeCachePath } : {};
222
177
  }
223
- /**
224
- * Long-run uptime for a model across every probe ever recorded, or null if never probed.
225
- *
226
- * The rolling window answers "lately"; this answers "ever", and it is what keeps a model's
227
- * record from being erased by one bad afternoon inside the window.
228
- */
229
178
  getLifetimeUptimePct(providerKey, modelId) {
230
179
  try {
231
180
  const t = loadTotals(providerKey, modelId, this.probeCacheOpts());
@@ -237,10 +186,6 @@ export class PingLoop {
237
186
  return null;
238
187
  }
239
188
  }
240
- /**
241
- * Returns quota only for its exact credential/model cell. A cold default cell may rehydrate
242
- * synthetic-probe observations from disk; another credential must never inherit that balance.
243
- */
244
189
  getQuotaObservations(credentialId, modelId) {
245
190
  const key = this.quotaKey(credentialId, modelId);
246
191
  const live = this.latestQuota.get(key);
@@ -270,12 +215,6 @@ export class PingLoop {
270
215
  const stabilityScore = getStabilityScore(pings);
271
216
  const uptimePct = getUptime(pings);
272
217
  const lastPing = pings[pings.length - 1];
273
- // ⚠ `isDown` is deliberately NOT passed. It used to be `lastPing.code !== "200"`, which made
274
- // the verdict a function of one sample: a single transient failure — a VPN the provider
275
- // blocks, a resumed laptop, one rate-limited probe — reported a model with fifty good samples
276
- // as `Not Active`/`Unstable`. `getVerdict` now derives down-ness from the accumulated record
277
- // (a RUN of failures AND poor uptime), which still catches a genuinely revoked key: that
278
- // answers 401 every time, so the run never breaks and uptime stays at 0.
279
218
  const verdict = getVerdict(pings, { httpCode: lastPing?.code ?? null });
280
219
  return {
281
220
  providerKey,
@@ -290,16 +229,6 @@ export class PingLoop {
290
229
  lastPingMs: lastPing?.ms ?? null,
291
230
  };
292
231
  }
293
- /**
294
- * Ask each provider for its stated spend headroom and feed the answer to `spend-headroom.ts`.
295
- *
296
- * Egress happens only where a provider actually publishes the figure — `fetchProviderQuota`
297
- * fetches for an OpenRouter base and no-ops for everyone else — so this walk costs nothing for
298
- * a config with no such provider. One ask per credential slot per SPEND_POLL_INTERVAL_MS; the
299
- * gate is stamped before the fetch so a failing endpoint is not re-asked every tick. A failed
300
- * or unparseable answer applies nothing in either direction (`unknown` has no effect), and any
301
- * throw is contained: a health poll must never break the ping loop.
302
- */
303
232
  async pollSpendHeadroom(now = Date.now()) {
304
233
  for (const [providerName, pCfg] of Object.entries(this.cfg.providers)) {
305
234
  for (const slot of providerCredentialSlots(providerName, pCfg)) {
@@ -324,7 +253,6 @@ export class PingLoop {
324
253
  applySpendHeadroom(providerName, slot.credentialId, classifySpendHeadroom(info), { now });
325
254
  }
326
255
  catch {
327
- // Best effort: the statement is re-asked on the next due tick.
328
256
  }
329
257
  }
330
258
  async tickOnce(scope = "catalog") {
@@ -336,9 +264,6 @@ export class PingLoop {
336
264
  const beforeRefresh = scope === "routable" ? collectRoutableModels(this.cfg) : null;
337
265
  const hasDynamicPools = Object.keys(this.cfg.routing.poolPolicies ?? {}).length > 0;
338
266
  const listedByProvider = new Map();
339
- // Refresh each relevant provider once and in parallel. Dynamic contributors still need their
340
- // catalog refreshed when a cold cache has no routable members yet; only the resulting
341
- // materialized members are probed.
342
267
  await Promise.all(providers.map(async ([providerName, pCfg]) => {
343
268
  const contributesDynamic = hasDynamicPools &&
344
269
  (pCfg.tierType === "free" || pCfg.tierType === "mixed");
@@ -361,23 +286,14 @@ export class PingLoop {
361
286
  : routable?.get(providerName) ?? [];
362
287
  if (modelIds.length === 0)
363
288
  continue;
364
- // Same cache the results are written to and hydrated from. `probe-cache.ts` keeps a
365
- // module-level cache keyed by the last path it was given, so a call that omits the path
366
- // reads whatever another caller last loaded — here that meant asking a different cache
367
- // whether a model was due, concluding it was not, and probing nothing at all.
368
289
  const dueIds = getModelsDueForProbe(providerName, modelIds, {
369
290
  ...this.probeCacheOpts(),
370
291
  lastSuccessfulCallAt: (modelId) => getLastSuccessfulCallAt(providerName, modelId, { telemetry }),
371
292
  });
372
- // Probe up to 3 due models per provider per tick to avoid flooding
373
293
  const toProbe = dueIds.slice(0, 3);
374
294
  const slots = providerCredentialSlots(providerName, pCfg).filter((slot) => slot.enabled);
375
295
  let slotCursor = this.credentialCursors.get(providerName) ?? 0;
376
296
  for (const mId of toProbe) {
377
- // Credential rotation is inside the existing model probe budget: a provider with three
378
- // due deployments still spends at most three requests, while successive deployments use
379
- // successive serviceable slots. Health remains keyed to provider/model; quota evidence is
380
- // recorded against the exact credential that made this request.
381
297
  let selected;
382
298
  let selectedSlot;
383
299
  for (let i = 0; i < slots.length; i++) {
@@ -411,13 +327,10 @@ export class PingLoop {
411
327
  const loop = async () => {
412
328
  if (!this.running)
413
329
  return;
414
- // The lane-cadence hook fires HERE and only here — see the `onTick` option doc: a direct
415
- // `tickOnce` caller (the admitted GET /ping) must never be able to initiate lane work.
416
330
  try {
417
331
  this.opts.onTick?.(Date.now());
418
332
  }
419
333
  catch {
420
- // Contained: a tick hook must never break the ping loop.
421
334
  }
422
335
  await this.tickOnce("routable").catch(() => { });
423
336
  if (this.running) {
@@ -1 +1 @@
1
- {"version":3,"file":"cadence.js","sourceRoot":"","sources":["../../src/ping/cadence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cadence.js","sourceRoot":"","sources":["../../src/ping/cadence.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,4 @@
1
- /**
2
- * Codes whose round-trip time is a real LATENCY sample. A 401 came back from the provider,
3
- * so it timed the network path and belongs in avg/p95/jitter/spike.
4
- *
5
- * ⚠ Latency only — this is NOT an availability set. Availability is decided by `getUptime()`
6
- * below, which counts `"200"` and nothing else, so a target answering only 401s reports 0%
7
- * uptime and `getStabilityScore` MULTIPLIES its composite to 0. That claim used to read "capped
8
- * accordingly" while the arithmetic merely subtracted a 20% term, which capped an all-401 target
9
- * at ~80 — above every all-success target with mediocre latency. The cap is real now because
10
- * availability scales the score rather than contributing a share of it. Two other sites used to
11
- * treat 401 as equivalent to 200 for availability (`probe-cache.ts`, `cadence.ts`) and a provider
12
- * with a revoked key read as healthy; both now follow the 200-only rule.
13
- */
14
1
  const MEASURABLE_CODES = new Set(["200", "401"]);
15
- /** Calculate average latency from measurable pings (HTTP 200/401). Returns Infinity if none. */
16
2
  export function getAvg(pings) {
17
3
  const measurable = pings.filter((p) => MEASURABLE_CODES.has(p.code));
18
4
  if (measurable.length === 0)
@@ -20,7 +6,6 @@ export function getAvg(pings) {
20
6
  const sum = measurable.reduce((acc, p) => acc + p.ms, 0);
21
7
  return Math.round(sum / measurable.length);
22
8
  }
23
- /** Calculate 95th percentile latency from measurable pings. Returns Infinity if none. */
24
9
  export function getP95(pings) {
25
10
  const measurable = pings.filter((p) => MEASURABLE_CODES.has(p.code));
26
11
  if (measurable.length === 0)
@@ -29,7 +14,6 @@ export function getP95(pings) {
29
14
  const idx = Math.ceil(sorted.length * 0.95) - 1;
30
15
  return sorted[Math.max(0, idx)];
31
16
  }
32
- /** Calculate latency standard deviation (jitter) in ms from measurable pings. */
33
17
  export function getJitter(pings) {
34
18
  const measurable = pings.filter((p) => MEASURABLE_CODES.has(p.code));
35
19
  if (measurable.length < 2)
@@ -38,7 +22,6 @@ export function getJitter(pings) {
38
22
  const variance = measurable.reduce((sum, p) => sum + (p.ms - mean) ** 2, 0) / measurable.length;
39
23
  return Math.round(Math.sqrt(variance));
40
24
  }
41
- /** Calculate spike rate: fraction (0–1) of measurable pings with latency > 3000ms. */
42
25
  export function getSpikeRate(pings) {
43
26
  const measurable = pings.filter((p) => MEASURABLE_CODES.has(p.code));
44
27
  if (measurable.length === 0)
@@ -46,38 +29,12 @@ export function getSpikeRate(pings) {
46
29
  const spikes = measurable.filter((p) => p.ms > 3000).length;
47
30
  return spikes / measurable.length;
48
31
  }
49
- /** Calculate uptime percentage (0–100) of HTTP 200 pings over total pings. */
50
32
  export function getUptime(pings) {
51
33
  if (pings.length === 0)
52
34
  return 0;
53
35
  const successful = pings.filter((p) => p.code === "200").length;
54
36
  return Math.round((successful / pings.length) * 100);
55
37
  }
56
- /**
57
- * Composite Stability Score (0–100). Returns -1 only when the deployment has NEVER been probed.
58
- *
59
- * Shape: **latency quality, SCALED by availability** — not latency quality plus a fifth of
60
- * availability. The distinction is the whole point, because `MEASURABLE_CODES` is a latency set:
61
- * 403/404/429/5xx leave p95, jitter and spike entirely, so under the old additive form
62
- * (`0.3*p95 + 0.3*jitter + 0.2*spike + 0.2*uptime`) a failing deployment kept a clean latency
63
- * profile and paid only 20%. Measured on live probe data: 1 success in 12 scored **81** while
64
- * 3 of 3 scored **27**, and 27 zero-success deployments scored above 50 — on a machine whose
65
- * pools are all `{include: "free"}`, so this score IS the pool order. The comment above
66
- * `MEASURABLE_CODES` claimed such a target was "capped accordingly"; only a multiplier delivers
67
- * that cap.
68
- *
69
- * The latency weights are renormalized to sum to 1 across the three latency terms, so a
70
- * deployment at 100% uptime scores exactly its latency quality and nothing is silently rescaled.
71
- *
72
- * ⚠ 401 deliberately STAYS in the latency terms: the response came back from the provider, so it
73
- * really did time the network path. It contributes nothing to uptime, so the multiplier is what
74
- * stops a revoked key from reading as a fast healthy target — no need to discard real timing data.
75
- *
76
- * ⚠ `-1` means "no samples", not "no MEASURABLE samples". Twelve consecutive 402s is evidence that
77
- * this deployment fails, not absence of evidence: returning -1 there made every consumer read
78
- * "unmeasured" and the ordering substitute a neutral 50, which put a fully-exhausted deployment
79
- * above one that answered every probe.
80
- */
81
38
  export function getStabilityScore(pings) {
82
39
  if (pings.length === 0)
83
40
  return -1;
@@ -85,57 +42,20 @@ export function getStabilityScore(pings) {
85
42
  const jitter = getJitter(pings);
86
43
  const uptime = getUptime(pings);
87
44
  const spikeRate = getSpikeRate(pings);
88
- // With no measurable sample `getP95` returns Infinity, so `p95Score` clamps to 0 rather than
89
- // producing NaN. Such a deployment also has 0% uptime, so the product is 0 either way.
90
45
  const p95Score = Math.max(0, Math.min(100, 100 * (1 - p95 / 5000)));
91
46
  const jitterScore = Math.max(0, Math.min(100, 100 * (1 - jitter / 2000)));
92
47
  const spikeScore = Math.max(0, 100 * (1 - spikeRate));
93
48
  const latencyQuality = 0.4 * p95Score + 0.4 * jitterScore + 0.2 * spikeScore;
94
49
  return Math.round(latencyQuality * (uptime / 100));
95
50
  }
96
- /**
97
- * How many of the MOST RECENT probes failed, consecutively.
98
- *
99
- * The unit of "is this thing broken" — one failure in a row is weather, five in a row is a
100
- * pattern. Anything reading the single last sample cannot tell those apart.
101
- */
102
51
  export function trailingFailures(pings) {
103
52
  let n = 0;
104
53
  for (let i = pings.length - 1; i >= 0 && pings[i].code !== "200"; i--)
105
54
  n++;
106
55
  return n;
107
56
  }
108
- /**
109
- * Consecutive recent failures before a target is called down rather than merely erratic.
110
- *
111
- * A VPN the provider blocks, a DNS hiccup, a rate-limit window, a laptop resuming from sleep —
112
- * all produce isolated failures against a model that is completely fine. Requiring a RUN of them
113
- * is what stops one such blip from disqualifying a model that has answered hundreds of times.
114
- */
115
57
  export const DOWN_AFTER_CONSECUTIVE_FAILURES = 3;
116
- /**
117
- * Codes that are a DETERMINISTIC refusal rather than weather.
118
- *
119
- * The line that matters: a 429, a 503, a DNS failure or a blocked VPN egress may all succeed on
120
- * the very next call, so one of them proves nothing. A 401/403 is the provider stating a fact
121
- * about the credential — it will answer 401 again next time, and no amount of patience changes
122
- * that. Tolerating transients must never become tolerating a revoked key: that was the exact
123
- * regression where a provider whose key had been revoked reported "Perfect" (fast 401s are still
124
- * fast) and could outrank a working target.
125
- */
126
58
  const CREDENTIAL_CODES = new Set(["401", "403"]);
127
- /**
128
- * Is this target persistently down, as opposed to having just had a bad moment?
129
- *
130
- * Three ways to be down, and only the last one is forgiving:
131
- * 1. the latest probe was a credential refusal — deterministic, see above;
132
- * 2. it has never once answered 200 — there is no good record to protect;
133
- * 3. a RUN of recent failures AND a poor overall record.
134
- *
135
- * (3) is what stops a blip disqualifying a model: one with 95% uptime that just hit three
136
- * rate-limited probes is rate-limited, not dead. The caller can still reach it, and the circuit
137
- * breaker will step over it independently if it really is failing.
138
- */
139
59
  export function isPersistentlyDown(pings) {
140
60
  if (pings.length === 0)
141
61
  return false;
@@ -146,19 +66,8 @@ export function isPersistentlyDown(pings) {
146
66
  return true;
147
67
  return trailingFailures(pings) >= DOWN_AFTER_CONSECUTIVE_FAILURES && getUptime(pings) < 50;
148
68
  }
149
- /**
150
- * Determine human-readable health verdict for a model based on average latency and tail latency.
151
- *
152
- * ⚠ Down-ness is derived from the ACCUMULATED history, never from the caller's reading of the
153
- * most recent ping. `cadence.ts` used to pass `isDown: lastPing.code !== "200"`, so a single
154
- * transient 503 — a VPN block, a resumed laptop, one rate-limited probe — overrode fifty good
155
- * samples and reported a healthy model as `Not Active`/`Unstable`. `opts.isDown` is still
156
- * honoured when a caller genuinely knows better, but nothing has to supply it.
157
- */
158
69
  export function getVerdict(pings, opts = {}) {
159
70
  const down = opts.isDown ?? isPersistentlyDown(pings);
160
- // Rate limiting is a transient, self-describing condition, and it is not down-ness: report it
161
- // as such only when the recent record actually shows it, not because one probe caught a window.
162
71
  if (opts.httpCode === "429" && trailingFailures(pings) > 0)
163
72
  return "Overloaded";
164
73
  const wasUpBefore = pings.length > 0 && pings.some((p) => p.code === "200");
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/ping/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/ping/metrics.ts"],"names":[],"mappings":"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"}
package/dist/ping/ping.js CHANGED
@@ -3,10 +3,6 @@ import { extractQuotaObservations, headroomPercent, } from "../quota-observation
3
3
  export const DEFAULT_PING_TIMEOUT_MS = 15000;
4
4
  const DISABLED_THINKING_RETRY_STATUSES = new Set([400, 422]);
5
5
  const disabledThinkingUnsupportedProviders = new Set();
6
- /**
7
- * @deprecated Quota has more than one independent axis. Use `extractQuotaObservations()` and
8
- * render each observation directly. This compatibility adapter declines ambiguous responses.
9
- */
10
6
  export function extractQuotaPercent(headers) {
11
7
  const observations = extractQuotaObservations(headers);
12
8
  return observations.length === 1 ? headroomPercent(observations[0]) : null;
@@ -28,11 +24,6 @@ export function buildPingEndpoint(base, kind) {
28
24
  }
29
25
  export function buildPingRequest(providerName, modelId, cfg, apiKey, options = {}) {
30
26
  const url = buildPingEndpoint(cfg.base, cfg.kind);
31
- // The credential header comes from the shared builder, which returns {} for an absent or
32
- // whitespace-only key. It obeys the DECLARED `authHeader` and does not force `x-api-key` on
33
- // an anthropic-kind provider the way this site used to — `config.ts` already defaults that,
34
- // so the only changed case is an explicit `authHeader: "authorization"`, where honouring the
35
- // config is the correct answer.
36
27
  const headers = {
37
28
  "Content-Type": "application/json",
38
29
  ...buildAuthHeaders(apiKey, cfg.authHeader),
@@ -49,7 +40,6 @@ export function buildPingRequest(providerName, modelId, cfg, apiKey, options = {
49
40
  }
50
41
  return { url, headers, body };
51
42
  }
52
- // Anthropic Messages probe
53
43
  headers["anthropic-version"] = "2023-06-01";
54
44
  const body = {
55
45
  model: modelId,
@@ -71,8 +61,6 @@ async function isDisabledThinkingRejected(resp, req) {
71
61
  if (!req.body["thinking"] || !DISABLED_THINKING_RETRY_STATUSES.has(resp.status))
72
62
  return false;
73
63
  try {
74
- // Use clone() to read without consuming the original body — the original
75
- // will be cancelled by the caller if this returns true, or served if false.
76
64
  const text = await resp.clone().text();
77
65
  return /thinking/i.test(text);
78
66
  }
@@ -80,7 +68,6 @@ async function isDisabledThinkingRejected(resp, req) {
80
68
  return false;
81
69
  }
82
70
  }
83
- /** Execute a single async ping to measure latency and remaining quota. */
84
71
  export async function pingProviderModel(providerName, modelId, cfg, apiKey, opts = {}) {
85
72
  const timeoutMs = opts.timeoutMs ?? DEFAULT_PING_TIMEOUT_MS;
86
73
  const ctrl = new AbortController();
@@ -91,8 +78,6 @@ export async function pingProviderModel(providerName, modelId, cfg, apiKey, opts
91
78
  let resp = await sendPingFetch(req, ctrl.signal, opts.fetchFn);
92
79
  if (await isDisabledThinkingRejected(resp, req)) {
93
80
  markDisabledThinkingUnsupported(providerName);
94
- // Cancel the response we decided not to serve (its body was read by the check
95
- // above), so the socket isn't stranded on the retry path.
96
81
  await resp.body?.cancel().catch(() => { });
97
82
  req = buildPingRequest(providerName, modelId, cfg, apiKey, { disableThinking: false });
98
83
  resp = await sendPingFetch(req, ctrl.signal, opts.fetchFn);
@@ -100,8 +85,6 @@ export async function pingProviderModel(providerName, modelId, cfg, apiKey, opts
100
85
  const code = resp.status >= 200 && resp.status < 300 ? "200" : String(resp.status);
101
86
  const ms = Math.round(performance.now() - t0);
102
87
  const quotaObservations = extractQuotaObservations(resp.headers);
103
- // The body was never read and never served — release the socket rather than holding it
104
- // until GC (the abort timer is disarmed below, so nothing else would).
105
88
  await resp.body?.cancel().catch(() => { });
106
89
  return { code, ms, quotaObservations };
107
90
  }