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.
- package/dist/accounting-store-io.js +0 -33
- package/dist/accounting-store-io.js.map +1 -1
- package/dist/accounting-store-schema.js +0 -65
- package/dist/accounting-store-schema.js.map +1 -1
- package/dist/accounting-store.js +0 -195
- package/dist/accounting-store.js.map +1 -1
- package/dist/accounting.js +0 -72
- package/dist/accounting.js.map +1 -1
- package/dist/anthropic.js +0 -18
- package/dist/anthropic.js.map +1 -1
- package/dist/authEnv.js +0 -78
- package/dist/authEnv.js.map +1 -1
- package/dist/availability-snapshot.js +0 -58
- package/dist/availability-snapshot.js.map +1 -1
- package/dist/availability.js +0 -162
- package/dist/availability.js.map +1 -1
- package/dist/backend.js +1 -416
- package/dist/backend.js.map +1 -1
- package/dist/benchmarks.js +1 -63
- package/dist/benchmarks.js.map +1 -1
- package/dist/breaker-persistence.js +0 -59
- package/dist/breaker-persistence.js.map +1 -1
- package/dist/candidates.js +0 -64
- package/dist/candidates.js.map +1 -1
- package/dist/catalog.js +1 -140
- package/dist/catalog.js.map +1 -1
- package/dist/circuit-breaker.js +1 -90
- package/dist/circuit-breaker.js.map +1 -1
- package/dist/claude-hook.js +0 -81
- package/dist/claude-hook.js.map +1 -1
- package/dist/cli.d.ts +36 -0
- package/dist/cli.js +73 -730
- package/dist/cli.js.map +1 -1
- package/dist/config-edit.js +0 -11
- package/dist/config-edit.js.map +1 -1
- package/dist/config.d.ts +21 -0
- package/dist/config.js +22 -372
- package/dist/config.js.map +1 -1
- package/dist/configured-limits.js +0 -58
- package/dist/configured-limits.js.map +1 -1
- package/dist/context-limits.js +0 -97
- package/dist/context-limits.js.map +1 -1
- package/dist/control-authorization.js +0 -36
- package/dist/control-authorization.js.map +1 -1
- package/dist/cooldown-clear.js +0 -6
- package/dist/cooldown-clear.js.map +1 -1
- package/dist/credential-fleet.js +0 -5
- package/dist/credential-fleet.js.map +1 -1
- package/dist/credential-select.js +4 -30
- package/dist/credential-select.js.map +1 -1
- package/dist/dashboard-auth.js +0 -29
- package/dist/dashboard-auth.js.map +1 -1
- package/dist/dashboard-contract.js +0 -46
- package/dist/dashboard-contract.js.map +1 -1
- package/dist/dashboard-routes.js +0 -32
- package/dist/dashboard-routes.js.map +1 -1
- package/dist/dashboard-snapshot.js +0 -154
- package/dist/dashboard-snapshot.js.map +1 -1
- package/dist/dashboard-static.js +0 -22
- package/dist/dashboard-static.js.map +1 -1
- package/dist/delegate-gate/cast-necessity.js +1 -22
- package/dist/delegate-gate/cast-necessity.js.map +1 -1
- package/dist/delegate-gate/cli.js +0 -6
- package/dist/delegate-gate/cli.js.map +1 -1
- package/dist/delegate-gate/diff-parser.js +0 -32
- package/dist/delegate-gate/diff-parser.js.map +1 -1
- package/dist/delegate-gate/fix.js +0 -10
- package/dist/delegate-gate/fix.js.map +1 -1
- package/dist/delegate-gate/gate.js +0 -12
- package/dist/delegate-gate/gate.js.map +1 -1
- package/dist/delegate-gate/minimality.js +0 -38
- package/dist/delegate-gate/minimality.js.map +1 -1
- package/dist/delegate-gate/post-image.js +1 -13
- package/dist/delegate-gate/post-image.js.map +1 -1
- package/dist/delegate-gate/shared-state.js +0 -23
- package/dist/delegate-gate/shared-state.js.map +1 -1
- package/dist/delegate-gate/test-assertions.js +1 -54
- package/dist/delegate-gate/test-assertions.js.map +1 -1
- package/dist/delegate-gate/types.js +0 -11
- package/dist/delegate-gate/types.js.map +1 -1
- package/dist/dialect-stream.js +9 -37
- package/dist/dialect-stream.js.map +1 -1
- package/dist/dispatch-exhaustion-persistence.js +0 -35
- package/dist/dispatch-exhaustion-persistence.js.map +1 -1
- package/dist/dispatch.js +0 -269
- package/dist/dispatch.js.map +1 -1
- package/dist/documents.js +0 -92
- package/dist/documents.js.map +1 -1
- package/dist/dotenv.js +0 -22
- package/dist/dotenv.js.map +1 -1
- package/dist/dynamic-pools.js +0 -93
- package/dist/dynamic-pools.js.map +1 -1
- package/dist/emitSse.js +0 -64
- package/dist/emitSse.js.map +1 -1
- package/dist/executable-lookup.js +0 -59
- package/dist/executable-lookup.js.map +1 -1
- package/dist/hard-cap.js +1 -32
- package/dist/hard-cap.js.map +1 -1
- package/dist/host-routing.js +0 -40
- package/dist/host-routing.js.map +1 -1
- package/dist/installed-hosts.js +0 -71
- package/dist/installed-hosts.js.map +1 -1
- package/dist/json-shape.js +0 -19
- package/dist/json-shape.js.map +1 -1
- package/dist/kernel/contracts.js +0 -26
- package/dist/kernel/contracts.js.map +1 -1
- package/dist/kernel/request-lifecycle.js +0 -4
- package/dist/kernel/request-lifecycle.js.map +1 -1
- package/dist/key-checker.js +0 -115
- package/dist/key-checker.js.map +1 -1
- package/dist/key-import.js +0 -20
- package/dist/key-import.js.map +1 -1
- package/dist/keys-cli.js +0 -15
- package/dist/keys-cli.js.map +1 -1
- package/dist/keystore.js +2 -51
- package/dist/keystore.js.map +1 -1
- package/dist/lane-cadence.js +1 -51
- package/dist/lane-cadence.js.map +1 -1
- package/dist/lane-manifest.js +0 -54
- package/dist/lane-manifest.js.map +1 -1
- package/dist/lane-probe.js +0 -36
- package/dist/lane-probe.js.map +1 -1
- package/dist/lane-quota-probe.js +0 -61
- package/dist/lane-quota-probe.js.map +1 -1
- package/dist/log.js +0 -17
- package/dist/log.js.map +1 -1
- package/dist/mcp/lane-runner.d.ts +114 -0
- package/dist/mcp/lane-runner.js +186 -0
- package/dist/mcp/lane-runner.js.map +1 -0
- package/dist/mcp/protocol.d.ts +98 -0
- package/dist/mcp/protocol.js +67 -0
- package/dist/mcp/protocol.js.map +1 -0
- package/dist/mcp/server.d.ts +78 -0
- package/dist/mcp/server.js +360 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/metadata.js +0 -73
- package/dist/metadata.js.map +1 -1
- package/dist/network-block.js +0 -45
- package/dist/network-block.js.map +1 -1
- package/dist/offload.js +0 -21
- package/dist/offload.js.map +1 -1
- package/dist/onboarding.js +0 -36
- package/dist/onboarding.js.map +1 -1
- package/dist/openai-dialect.js +0 -32
- package/dist/openai-dialect.js.map +1 -1
- package/dist/openai-request.js +0 -236
- package/dist/openai-request.js.map +1 -1
- package/dist/os-keyring.js +0 -28
- package/dist/os-keyring.js.map +1 -1
- package/dist/ping/cadence.js +3 -90
- package/dist/ping/cadence.js.map +1 -1
- package/dist/ping/metrics.js +0 -91
- package/dist/ping/metrics.js.map +1 -1
- package/dist/ping/ping.js +0 -17
- package/dist/ping/ping.js.map +1 -1
- package/dist/ping/probe-cache.js +2 -53
- package/dist/ping/probe-cache.js.map +1 -1
- package/dist/ping/quota.js +0 -17
- package/dist/ping/quota.js.map +1 -1
- package/dist/ping/runtime-telemetry.js +1 -18
- package/dist/ping/runtime-telemetry.js.map +1 -1
- package/dist/pool-health.js +0 -49
- package/dist/pool-health.js.map +1 -1
- package/dist/presets.js +0 -4
- package/dist/presets.js.map +1 -1
- package/dist/process-safety-net.js +0 -36
- package/dist/process-safety-net.js.map +1 -1
- package/dist/quota-demotion.js +1 -35
- package/dist/quota-demotion.js.map +1 -1
- package/dist/quota-observation.js +0 -21
- package/dist/quota-observation.js.map +1 -1
- package/dist/rate-limits.js +1 -94
- package/dist/rate-limits.js.map +1 -1
- package/dist/refusal-interpretation.js +2 -327
- package/dist/refusal-interpretation.js.map +1 -1
- package/dist/registry.js +0 -11
- package/dist/registry.js.map +1 -1
- package/dist/repair.js +1 -119
- package/dist/repair.js.map +1 -1
- package/dist/request-log.js +0 -2
- package/dist/request-log.js.map +1 -1
- package/dist/reshaper.js +0 -85
- package/dist/reshaper.js.map +1 -1
- package/dist/resolved-attempt.js +0 -3
- package/dist/resolved-attempt.js.map +1 -1
- package/dist/responses-request.js +0 -187
- package/dist/responses-request.js.map +1 -1
- package/dist/routes/admin.js +0 -38
- package/dist/routes/admin.js.map +1 -1
- package/dist/secret-file-acl.js +0 -26
- package/dist/secret-file-acl.js.map +1 -1
- package/dist/self-update.js +0 -118
- package/dist/self-update.js.map +1 -1
- package/dist/server.js +15 -952
- package/dist/server.js.map +1 -1
- package/dist/session-pin.js +0 -9
- package/dist/session-pin.js.map +1 -1
- package/dist/setup-claude.js +0 -9
- package/dist/setup-claude.js.map +1 -1
- package/dist/spend-headroom.js +0 -20
- package/dist/spend-headroom.js.map +1 -1
- package/dist/sse-frames.js +0 -31
- package/dist/sse-frames.js.map +1 -1
- package/dist/sse.js +1 -19
- package/dist/sse.js.map +1 -1
- package/dist/state-paths.js +0 -16
- package/dist/state-paths.js.map +1 -1
- package/dist/stream-commit.js +1 -27
- package/dist/stream-commit.js.map +1 -1
- package/dist/target-facts.js +2 -130
- package/dist/target-facts.js.map +1 -1
- package/dist/telemetry.js +0 -8
- package/dist/telemetry.js.map +1 -1
- package/dist/think-tags.js +1 -38
- package/dist/think-tags.js.map +1 -1
- package/dist/tier-data.js +0 -29
- package/dist/tier-data.js.map +1 -1
- package/dist/tool-dialects.js +1 -103
- package/dist/tool-dialects.js.map +1 -1
- package/dist/tool-use-ids.js +0 -51
- package/dist/tool-use-ids.js.map +1 -1
- package/dist/usage-observer.js +0 -52
- package/dist/usage-observer.js.map +1 -1
- package/dist/validator.js +1 -25
- package/dist/validator.js.map +1 -1
- package/dist/winenv.js +0 -63
- package/dist/winenv.js.map +1 -1
- package/dist/write-behind.js +0 -12
- package/dist/write-behind.js.map +1 -1
- package/package.json +2 -2
- package/skills/llm-relay/SKILL.md +26 -1
package/dist/ping/ping.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../src/ping/ping.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,wBAAwB,EACxB,eAAe,GAGhB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAE7C,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,oCAAoC,GAAG,IAAI,GAAG,EAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../src/ping/ping.ts"],"names":[],"mappings":"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"}
|
package/dist/ping/probe-cache.js
CHANGED
|
@@ -4,26 +4,11 @@ import { join, dirname } from "node:path";
|
|
|
4
4
|
import { tmpdir } from "node:os";
|
|
5
5
|
import { WriteBehindTimer } from "../write-behind.js";
|
|
6
6
|
import { mergeQuotaObservations } from "../quota-observation.js";
|
|
7
|
-
export const DEFAULT_PROBE_TTL_MS = 24 * 60 * 60 * 1000;
|
|
7
|
+
export const DEFAULT_PROBE_TTL_MS = 24 * 60 * 60 * 1000;
|
|
8
8
|
export const BROKEN_PROBE_BACKOFF_BASE_MS = 60_000;
|
|
9
|
-
/**
|
|
10
|
-
* Bumped to 3 when probe quota changed from an ambiguous scalar percentage to typed observations.
|
|
11
|
-
* A version mismatch marks a model due for probing (see `getModelsDueForProbe`), so old entries
|
|
12
|
-
* refill naturally instead of migrating a scalar whose axis and period were already lost.
|
|
13
|
-
*/
|
|
14
9
|
export const CURRENT_PROBE_VERSION = 3;
|
|
15
|
-
/**
|
|
16
|
-
* How many recent probes are kept per model.
|
|
17
|
-
*
|
|
18
|
-
* p95 and jitter need a DISTRIBUTION, so a rolling window is unavoidable; `totals` below carries
|
|
19
|
-
* the long-run figures the window drops. 25 keeps a full roster's cache in the low hundreds of KB.
|
|
20
|
-
*/
|
|
21
10
|
export const MAX_SAMPLES = 25;
|
|
22
11
|
export function getProbeCachePath() {
|
|
23
|
-
// ⚠ Under vitest, never touch the developer's real cache. Any test that exercises `PingLoop`
|
|
24
|
-
// calls `recordProbeResult`, and the user's file was found holding `openai_mock` /
|
|
25
|
-
// `mock-model-a` entries written by the suite — test fixtures polluting live health data that
|
|
26
|
-
// the router then ranks on. Tests needing persistence pass an explicit `path`.
|
|
27
12
|
if (process.env.VITEST)
|
|
28
13
|
return join(tmpdir(), "llm-relay-vitest", "probe-cache.json");
|
|
29
14
|
const baseDir = relayStatePath("cache");
|
|
@@ -49,7 +34,6 @@ export function loadProbeCache(opts = {}) {
|
|
|
49
34
|
}
|
|
50
35
|
}
|
|
51
36
|
catch {
|
|
52
|
-
/* No cache or parse error */
|
|
53
37
|
}
|
|
54
38
|
_cache = emptyCache();
|
|
55
39
|
return _cache;
|
|
@@ -68,14 +52,13 @@ export function flushProbeCache(opts = {}) {
|
|
|
68
52
|
tmpPath = null;
|
|
69
53
|
}
|
|
70
54
|
catch {
|
|
71
|
-
/* best-effort persistence */
|
|
72
55
|
}
|
|
73
56
|
finally {
|
|
74
57
|
if (tmpPath !== null) {
|
|
75
58
|
try {
|
|
76
59
|
unlinkSync(tmpPath);
|
|
77
60
|
}
|
|
78
|
-
catch {
|
|
61
|
+
catch { }
|
|
79
62
|
}
|
|
80
63
|
}
|
|
81
64
|
}
|
|
@@ -105,8 +88,6 @@ export function getModelsDueForProbe(providerKey, modelIds, opts = {}) {
|
|
|
105
88
|
const entry = models[id];
|
|
106
89
|
const passiveSuccessAt = opts.lastSuccessfulCallAt?.(id) ?? null;
|
|
107
90
|
if (!entry) {
|
|
108
|
-
// A real successful call proves availability even before the first synthetic probe. The
|
|
109
|
-
// probe can wait until that passive observation becomes stale.
|
|
110
91
|
if (passiveSuccessAt === null || now - passiveSuccessAt >= ttlMs)
|
|
111
92
|
due.push(id);
|
|
112
93
|
continue;
|
|
@@ -115,8 +96,6 @@ export function getModelsDueForProbe(providerKey, modelIds, opts = {}) {
|
|
|
115
96
|
due.push(id);
|
|
116
97
|
continue;
|
|
117
98
|
}
|
|
118
|
-
// A successful real request after the last synthetic failure is stronger evidence than the
|
|
119
|
-
// probe. It resets freshness without needing a redundant write to the probe cache.
|
|
120
99
|
if (passiveSuccessAt !== null && passiveSuccessAt > entry.lastProbedAt) {
|
|
121
100
|
if (now - passiveSuccessAt >= ttlMs)
|
|
122
101
|
due.push(id);
|
|
@@ -141,21 +120,9 @@ export function recordProbeResult(providerKey, modelId, result, opts = {}) {
|
|
|
141
120
|
if (!cache.providers[providerKey]) {
|
|
142
121
|
cache.providers[providerKey] = { models: {} };
|
|
143
122
|
}
|
|
144
|
-
// A 401 is NOT ok. It used to count as ok here on the theory that the endpoint answered,
|
|
145
|
-
// but `status` feeds `getModelsDueForProbe`, so a provider whose key was revoked stopped
|
|
146
|
-
// being re-probed and kept reading as available — able to outrank a working target.
|
|
147
|
-
// Reachability is not availability; only a 2xx (normalised to "200" by pingProviderModel)
|
|
148
|
-
// proves this model will actually serve a request.
|
|
149
123
|
const isOk = result.code === "200";
|
|
150
124
|
const prev = cache.providers[providerKey].models[modelId];
|
|
151
125
|
cache.version = CURRENT_PROBE_VERSION;
|
|
152
|
-
// Append to the rolling window rather than replacing the single sample a v1 entry held.
|
|
153
|
-
// One probe cannot describe latency: p95, jitter and spike rate are distribution statistics,
|
|
154
|
-
// and a scalar `ms` made every one of them a restatement of the most recent request.
|
|
155
|
-
// ⚠ Guard the WRITE side, not only the read helpers. `loadProbeCache` validates shallowly, so a
|
|
156
|
-
// corrupt `samples` survives the load; spreading a string here would turn it into an array of
|
|
157
|
-
// single characters and write that back as measurements. The read guard cannot recover from that
|
|
158
|
-
// — by then the corruption IS an array. Degrade to empty: this cache is re-learnable.
|
|
159
126
|
const prevSamples = Array.isArray(prev?.samples) ? prev.samples : [];
|
|
160
127
|
const samples = [...prevSamples, { ms: result.ms, code: result.code, timestamp: now }];
|
|
161
128
|
if (samples.length > MAX_SAMPLES)
|
|
@@ -174,8 +141,6 @@ export function recordProbeResult(providerKey, modelId, result, opts = {}) {
|
|
|
174
141
|
probeVersion,
|
|
175
142
|
ms: result.ms,
|
|
176
143
|
code: result.code,
|
|
177
|
-
// Each response can mention only one quota axis. Keep older, unrelated tuples instead of
|
|
178
|
-
// presenting partial metadata as a complete account balance.
|
|
179
144
|
quotaObservations: mergeQuotaObservations(prev?.quotaObservations ?? [], result.quotaObservations),
|
|
180
145
|
samples,
|
|
181
146
|
totals,
|
|
@@ -187,31 +152,16 @@ export function recordProbeResult(providerKey, modelId, result, opts = {}) {
|
|
|
187
152
|
scheduleProbeCacheFlush();
|
|
188
153
|
return entry;
|
|
189
154
|
}
|
|
190
|
-
/**
|
|
191
|
-
* Every persisted sample for a model, oldest first — the history a restarted process needs to
|
|
192
|
-
* avoid starting from zero.
|
|
193
|
-
*
|
|
194
|
-
* `PingLoop` kept its history in an in-memory `Map` and read only that, while `recordProbeResult`
|
|
195
|
-
* wrote to disk and nothing ever read it back. So every restart reset every model to `Pending`
|
|
196
|
-
* with `p95: -1`, and a proxy that restarts (a laptop that sleeps, an upgrade, a crash) never
|
|
197
|
-
* accumulated anything at all. This is the read side that was missing.
|
|
198
|
-
*/
|
|
199
155
|
export function loadPersistedSamples(providerKey, modelId, opts = {}) {
|
|
200
156
|
const cache = opts.path ? loadProbeCache({ path: opts.path }) : (_cache ?? loadProbeCache());
|
|
201
157
|
const samples = cache.providers[providerKey]?.models[modelId]?.samples;
|
|
202
158
|
return Array.isArray(samples) ? samples : [];
|
|
203
159
|
}
|
|
204
|
-
/** Long-run counters for a model, or null when it has never been probed. */
|
|
205
160
|
export function loadTotals(providerKey, modelId, opts = {}) {
|
|
206
161
|
const cache = opts.path ? loadProbeCache({ path: opts.path }) : (_cache ?? loadProbeCache());
|
|
207
162
|
const totals = cache.providers[providerKey]?.models[modelId]?.totals;
|
|
208
|
-
// Corrupt totals (non-object or array) degrade to null — re-learnable cache degrades to empty/unknown
|
|
209
163
|
return totals && typeof totals === "object" && !Array.isArray(totals) ? totals : null;
|
|
210
164
|
}
|
|
211
|
-
/**
|
|
212
|
-
* Typed quota observations persisted by the default synthetic probe, or none when this entry is
|
|
213
|
-
* not current. In particular, a v2 scalar `quotaPercent` is intentionally never reconstructed.
|
|
214
|
-
*/
|
|
215
165
|
export function loadPersistedQuotaObservations(providerKey, modelId, opts = {}) {
|
|
216
166
|
const cache = opts.path ? loadProbeCache({ path: opts.path }) : (_cache ?? loadProbeCache());
|
|
217
167
|
const entry = cache.providers[providerKey]?.models[modelId];
|
|
@@ -219,7 +169,6 @@ export function loadPersistedQuotaObservations(providerKey, modelId, opts = {})
|
|
|
219
169
|
return [];
|
|
220
170
|
return entry.quotaObservations ? [...entry.quotaObservations] : [];
|
|
221
171
|
}
|
|
222
|
-
/** Every (provider, model) the cache holds samples for — what a restarting PingLoop rehydrates. */
|
|
223
172
|
export function persistedModels(opts = {}) {
|
|
224
173
|
const cache = opts.path ? loadProbeCache({ path: opts.path }) : (_cache ?? loadProbeCache());
|
|
225
174
|
const out = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"probe-cache.js","sourceRoot":"","sources":["../../src/ping/probe-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAW,MAAM,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAyB,MAAM,yBAAyB,CAAC;AAExF,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"probe-cache.js","sourceRoot":"","sources":["../../src/ping/probe-cache.ts"],"names":[],"mappings":"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"}
|
package/dist/ping/quota.js
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Is this base URL OpenRouter's — the EXACT host `openrouter.ai`, not a substring.
|
|
3
|
-
* Deliberately the config.ts `isGoogleGenerativeLanguageHost` shape (one exact host),
|
|
4
|
-
* not the mistral suffix form: the auth/key endpoint exists only on `openrouter.ai`,
|
|
5
|
-
* and a suffix test would admit `openrouter.ai.evil.test`. An unparseable base fails
|
|
6
|
-
* closed: do not send this provider's credential anywhere.
|
|
7
|
-
*/
|
|
8
1
|
function isOpenRouterBase(base) {
|
|
9
2
|
try {
|
|
10
3
|
return new URL(base).hostname.toLowerCase() === "openrouter.ai";
|
|
@@ -13,19 +6,10 @@ function isOpenRouterBase(base) {
|
|
|
13
6
|
return false;
|
|
14
7
|
}
|
|
15
8
|
}
|
|
16
|
-
/**
|
|
17
|
-
* Explicit quota/balance fetcher for key providers.
|
|
18
|
-
* OpenRouter: GET https://openrouter.ai/api/v1/auth/key
|
|
19
|
-
*/
|
|
20
9
|
export async function fetchProviderQuota(providerName, cfg, apiKey, fetchFn = fetch) {
|
|
21
10
|
if (!apiKey) {
|
|
22
11
|
return { provider: providerName, ok: false, statusText: "No API key configured" };
|
|
23
12
|
}
|
|
24
|
-
// OpenRouter key management API. Recognition is an EXACT-host test against the
|
|
25
|
-
// provider's own configured base (the authEnv.ts precedent: never a substring
|
|
26
|
-
// heuristic, which could ship one provider's credential to another's endpoint),
|
|
27
|
-
// and the auth-key request is built from that same parsed origin, so the
|
|
28
|
-
// credential can never egress to a host the operator did not configure.
|
|
29
13
|
if (isOpenRouterBase(cfg.base)) {
|
|
30
14
|
try {
|
|
31
15
|
const quotaUrl = new URL(cfg.base);
|
|
@@ -63,7 +47,6 @@ export async function fetchProviderQuota(providerName, cfg, apiKey, fetchFn = fe
|
|
|
63
47
|
return { provider: providerName, ok: false, statusText: e.message };
|
|
64
48
|
}
|
|
65
49
|
}
|
|
66
|
-
// Generic fallback: returns true if provider is reachable
|
|
67
50
|
return { provider: providerName, ok: true };
|
|
68
51
|
}
|
|
69
52
|
//# sourceMappingURL=quota.js.map
|
package/dist/ping/quota.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota.js","sourceRoot":"","sources":["../../src/ping/quota.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quota.js","sourceRoot":"","sources":["../../src/ping/quota.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,15 +50,12 @@ function normalizeModel(value, migrateV1) {
|
|
|
50
50
|
!validTimestamp(row.lastCalledAt) || !Array.isArray(row.recentCalls))
|
|
51
51
|
return null;
|
|
52
52
|
const recentCalls = row.recentCalls.map((entry) => {
|
|
53
|
-
// v1 token history was unwired too; remove it before validation so a bad legacy token
|
|
54
|
-
// field cannot discard otherwise useful call/latency evidence.
|
|
55
53
|
if (migrateV1 && entry && typeof entry === "object") {
|
|
56
54
|
const { tokens: _ignored, ...withoutTokens } = entry;
|
|
57
55
|
return normalizeRecentCall(withoutTokens);
|
|
58
56
|
}
|
|
59
57
|
return normalizeRecentCall(entry);
|
|
60
58
|
}).filter((v) => v !== null).slice(-MAX_RECENT_CALLS);
|
|
61
|
-
// v1's token total was never wired to a real recorder. Do not migrate it as if measured.
|
|
62
59
|
const totalCompletionTokens = migrateV1 ? 0 : row.totalCompletionTokens;
|
|
63
60
|
const completionTokenCalls = migrateV1 ? 0 : row.completionTokenCalls;
|
|
64
61
|
if (!nonNegativeInteger(totalCompletionTokens) || !nonNegativeInteger(completionTokenCalls) ||
|
|
@@ -105,7 +102,6 @@ export function loadRuntimeTelemetry(opts = {}) {
|
|
|
105
102
|
}
|
|
106
103
|
}
|
|
107
104
|
catch {
|
|
108
|
-
// Unreadable/corrupt telemetry is not a request failure — fall through to a fresh store.
|
|
109
105
|
}
|
|
110
106
|
_telemetry = { version: 2, models: {} };
|
|
111
107
|
_telemetryPath = target;
|
|
@@ -132,7 +128,7 @@ export function flushRuntimeTelemetry(opts = {}) {
|
|
|
132
128
|
try {
|
|
133
129
|
unlinkSync(tmpPath);
|
|
134
130
|
}
|
|
135
|
-
catch {
|
|
131
|
+
catch { }
|
|
136
132
|
}
|
|
137
133
|
}
|
|
138
134
|
}
|
|
@@ -143,8 +139,6 @@ function scheduleRuntimeTelemetryFlush() {
|
|
|
143
139
|
}
|
|
144
140
|
export function recordModelCall(providerKey, modelId, callResult, opts = {}) {
|
|
145
141
|
const now = opts.now ?? Date.now();
|
|
146
|
-
// Telemetry is best-effort. Reject invalid observations before touching the cache or disk so
|
|
147
|
-
// malformed recorder input can never turn into a schema-corrupting aggregate.
|
|
148
142
|
if (!validTimestamp(now) || !nonNegativeFinite(callResult.latencyMs))
|
|
149
143
|
return;
|
|
150
144
|
const data = opts.path ? loadRuntimeTelemetry({ path: opts.path }) : (_telemetry ?? loadRuntimeTelemetry());
|
|
@@ -163,8 +157,6 @@ export function recordModelCall(providerKey, modelId, callResult, opts = {}) {
|
|
|
163
157
|
};
|
|
164
158
|
}
|
|
165
159
|
const m = data.models[key];
|
|
166
|
-
// Counters are persisted as safe integers. Once a row reaches the representable ceiling,
|
|
167
|
-
// retaining the last valid aggregate is more truthful than wrapping or emitting an unsafe one.
|
|
168
160
|
if (m.totalCalls >= Number.MAX_SAFE_INTEGER)
|
|
169
161
|
return;
|
|
170
162
|
m.totalCalls += 1;
|
|
@@ -189,8 +181,6 @@ export function recordModelCall(providerKey, modelId, callResult, opts = {}) {
|
|
|
189
181
|
if (m.recentCalls.length > MAX_RECENT_CALLS) {
|
|
190
182
|
m.recentCalls.shift();
|
|
191
183
|
}
|
|
192
|
-
// Explicit paths are diagnostic/test contracts and stay durable on return. The live default
|
|
193
|
-
// cache is write-behind so a request never synchronously rewrites the complete JSON document.
|
|
194
184
|
if (opts.path)
|
|
195
185
|
flushRuntimeTelemetry({ path: opts.path, telemetry: data });
|
|
196
186
|
else
|
|
@@ -205,12 +195,6 @@ export function getRealWorldScore(providerKey, modelId, opts = {}) {
|
|
|
205
195
|
const m = data.models[key];
|
|
206
196
|
if (!m || m.totalCalls < minCalls)
|
|
207
197
|
return null;
|
|
208
|
-
// Score from the ROLLING WINDOW, not lifetime totals (adoption review §1.10): a model that
|
|
209
|
-
// degrades today must not hide behind months of good lifetime averages — before this,
|
|
210
|
-
// freshness entered only as the 15%-weight time-since-last-call term, so a run of recent
|
|
211
|
-
// failures barely moved a veteran's score. Lifetime totals still gate minimum evidence
|
|
212
|
-
// (`totalCalls < minCalls` above) and remain the fallback when a caller demands more samples
|
|
213
|
-
// than the window holds.
|
|
214
198
|
const windowed = m.recentCalls.length >= minCalls ? m.recentCalls : null;
|
|
215
199
|
const successRate = windowed
|
|
216
200
|
? windowed.filter((c) => c.ok).length / windowed.length
|
|
@@ -224,7 +208,6 @@ export function getRealWorldScore(providerKey, modelId, opts = {}) {
|
|
|
224
208
|
const score = 0.6 * (successRate * 100) + 0.25 * speedScore + 0.15 * recencyScore;
|
|
225
209
|
return Math.round(score);
|
|
226
210
|
}
|
|
227
|
-
/** Most recent successful real request, used to avoid actively probing what traffic just proved. */
|
|
228
211
|
export function getLastSuccessfulCallAt(providerKey, modelId, opts = {}) {
|
|
229
212
|
const data = opts.telemetry ?? (opts.path
|
|
230
213
|
? loadRuntimeTelemetry({ path: opts.path })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-telemetry.js","sourceRoot":"","sources":["../../src/ping/runtime-telemetry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime-telemetry.js","sourceRoot":"","sources":["../../src/ping/runtime-telemetry.ts"],"names":[],"mappings":"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"}
|
package/dist/pool-health.js
CHANGED
|
@@ -1,23 +1,7 @@
|
|
|
1
1
|
import { splitSpec } from "./config.js";
|
|
2
2
|
import { buildAuthHeaders } from "./authEnv.js";
|
|
3
3
|
import { providerCredentialSlots, resolveCredentialSlot, slotAllowsModel } from "./credential-fleet.js";
|
|
4
|
-
/**
|
|
5
|
-
* Verdicts that mean "this member will never answer until someone changes something".
|
|
6
|
-
*
|
|
7
|
-
* `auth` is a CONFIG fact (no enabled credential slot has a present key, so no request was
|
|
8
|
-
* sent); `denied` is a SERVER response (401/403) whose cause we deliberately do not infer —
|
|
9
|
-
* it may be the credential, but it may also be an entitlement wall on a model this key
|
|
10
|
-
* legitimately cannot touch. Both are surfaced to the operator, but only `auth` carries a
|
|
11
|
-
* credential-rotation recommendation in the CLI advice.
|
|
12
|
-
*/
|
|
13
4
|
export const DEAD_VERDICTS = new Set(["missing", "auth", "denied"]);
|
|
14
|
-
/**
|
|
15
|
-
* Probe headers. The credential half comes from the shared builder — it obeys the DECLARED
|
|
16
|
-
* `authHeader` (which `config.ts` already defaults to `x-api-key` for an anthropic-kind
|
|
17
|
-
* provider) and returns nothing at all for an absent or whitespace-only key, so this site
|
|
18
|
-
* cannot drift from the others. `anthropic-version` is a protocol header, not a credential,
|
|
19
|
-
* so it stays here and is keyed off `kind` as before.
|
|
20
|
-
*/
|
|
21
5
|
function authHeaders(p, apiKey) {
|
|
22
6
|
return {
|
|
23
7
|
"Content-Type": "application/json",
|
|
@@ -36,21 +20,12 @@ function serviceableSlot(provider, model, p) {
|
|
|
36
20
|
}
|
|
37
21
|
return {};
|
|
38
22
|
}
|
|
39
|
-
/**
|
|
40
|
-
* Send one real completion to a single pool member.
|
|
41
|
-
*
|
|
42
|
-
* `maxTokens` defaults to 400 rather than a token or two because reasoning models spend
|
|
43
|
-
* their budget thinking: at a low cap they return a 200 with EMPTY content, which reads as
|
|
44
|
-
* a broken model when it is only a truncated one.
|
|
45
|
-
*/
|
|
46
23
|
export async function probeMember(pool, spec, cfg, fetchFn = fetch, maxTokens = 400, now = Date.now) {
|
|
47
24
|
const { provider, model } = splitSpec(spec);
|
|
48
25
|
const p = cfg.providers[provider];
|
|
49
26
|
if (!p) {
|
|
50
27
|
return { pool, spec, verdict: "missing", detail: `no provider "${provider}" configured` };
|
|
51
28
|
}
|
|
52
|
-
// Select one serviceable slot before spending the single completion. Explicit fleets resolve
|
|
53
|
-
// only their declared env name; legacy authEnv retains the curated alias behavior.
|
|
54
29
|
if (p.kind === "openai" && !model)
|
|
55
30
|
return { pool, spec, verdict: "missing", detail: "openai provider needs a model id" };
|
|
56
31
|
const selected = serviceableSlot(provider, model, p);
|
|
@@ -72,23 +47,15 @@ export async function probeMember(pool, spec, cfg, fetchFn = fetch, maxTokens =
|
|
|
72
47
|
const r = await fetchFn(url, { method: "POST", headers: authHeaders(p, apiKey), body, signal });
|
|
73
48
|
const latencyMs = now() - started;
|
|
74
49
|
if (r.status === 401 || r.status === 403) {
|
|
75
|
-
// The server said no; we cannot tell why from one signed request. Free-tier rosters
|
|
76
|
-
// list premium SKUs, so a 401/403 here may be the model (entitlement wall) or the
|
|
77
|
-
// key. Surface the rejection without assigning blame; the operator decides.
|
|
78
50
|
return { pool, spec, credentialId, verdict: "denied", httpStatus: r.status, latencyMs, detail: `HTTP ${r.status} (request rejected — cause not inferred; could be credential or entitlement)` };
|
|
79
51
|
}
|
|
80
52
|
if (r.status === 429) {
|
|
81
53
|
return { pool, spec, credentialId, verdict: "rate_limited", httpStatus: 429, latencyMs, detail: "HTTP 429" };
|
|
82
54
|
}
|
|
83
55
|
if (r.status === 404) {
|
|
84
|
-
// A 404 on the chat/completions or /v1/messages endpoint is the strongest absence
|
|
85
|
-
// signal a single probe can produce: the server has no route for this model.
|
|
86
56
|
return { pool, spec, credentialId, verdict: "missing", httpStatus: r.status, latencyMs, detail: `HTTP 404 — model not servable` };
|
|
87
57
|
}
|
|
88
58
|
if (r.status === 400) {
|
|
89
|
-
// A 400 is a request-validation error (e.g. mistral's 9-char tool-call-id refusal,
|
|
90
|
-
// a max_tokens complaint), not evidence of model absence. Treat as a transient error
|
|
91
|
-
// so the operator looks at the detail instead of removing the member from the pool.
|
|
92
59
|
return { pool, spec, credentialId, verdict: "error", httpStatus: r.status, latencyMs, detail: `HTTP ${r.status} — request rejected by server (not absence evidence)` };
|
|
93
60
|
}
|
|
94
61
|
if (!r.ok) {
|
|
@@ -102,22 +69,14 @@ export async function probeMember(pool, spec, cfg, fetchFn = fetch, maxTokens =
|
|
|
102
69
|
return { pool, spec, credentialId, verdict: "live", httpStatus: r.status, latencyMs };
|
|
103
70
|
}
|
|
104
71
|
catch (e) {
|
|
105
|
-
// ⚠ BOTH names, and the second is the one that actually fires here. `AbortSignal.timeout()`
|
|
106
|
-
// aborts with a `TimeoutError`, not an `AbortError` — only `AbortController.abort()` produces
|
|
107
|
-
// the latter (`ping.ts` uses a controller, which is why its own check reads `AbortError`).
|
|
108
|
-
// Matching only `AbortError` would leave the deadline working but reporting a raw DOMException
|
|
109
|
-
// message, and a test that hand-throws an `AbortError` would not notice.
|
|
110
72
|
const latencyMs = now() - started;
|
|
111
73
|
const name = e instanceof Error ? e.name : "";
|
|
112
74
|
if (name === "TimeoutError" || name === "AbortError") {
|
|
113
|
-
// A deadline is not evidence about the credential or the model — `error` is the verdict whose
|
|
114
|
-
// evidence actually fits, per the v0.49.0 rule that a verdict may only claim what it can show.
|
|
115
75
|
return { pool, spec, credentialId, verdict: "error", latencyMs, detail: "probe timed out" };
|
|
116
76
|
}
|
|
117
77
|
return { pool, spec, credentialId, verdict: "error", latencyMs, detail: e.message };
|
|
118
78
|
}
|
|
119
79
|
}
|
|
120
|
-
/** Pull assistant text out of either an OpenAI or an Anthropic shaped response. */
|
|
121
80
|
export function extractContent(raw) {
|
|
122
81
|
try {
|
|
123
82
|
const j = JSON.parse(raw);
|
|
@@ -132,17 +91,9 @@ export function extractContent(raw) {
|
|
|
132
91
|
}
|
|
133
92
|
}
|
|
134
93
|
catch {
|
|
135
|
-
/* fall through */
|
|
136
94
|
}
|
|
137
95
|
return "";
|
|
138
96
|
}
|
|
139
|
-
/**
|
|
140
|
-
* Probe every member of every pool. Concurrency-limited so a wide config can't fan out unbounded.
|
|
141
|
-
*
|
|
142
|
-
* A dynamic catalog target commonly belongs to several pools. Probe each unique provider/model
|
|
143
|
-
* deployment once, then project that result back onto every pool membership. Membership reporting
|
|
144
|
-
* remains complete without charging the provider for duplicate completions in the same command.
|
|
145
|
-
*/
|
|
146
97
|
export async function probeAllPools(cfg, fetchFn = fetch, concurrency = 4) {
|
|
147
98
|
const jobs = [];
|
|
148
99
|
const uniqueJobs = new Map();
|
package/dist/pool-health.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool-health.js","sourceRoot":"","sources":["../src/pool-health.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,eAAe,EAAuB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"pool-health.js","sourceRoot":"","sources":["../src/pool-health.ts"],"names":[],"mappings":"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"}
|
package/dist/presets.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** Providers offering free models or free-tier quota, with direct signup URLs. */
|
|
2
1
|
export const FREE_PROVIDER_PRESETS = {
|
|
3
2
|
nim: {
|
|
4
3
|
name: "nim",
|
|
@@ -126,7 +125,6 @@ export const FREE_PROVIDER_PRESETS = {
|
|
|
126
125
|
],
|
|
127
126
|
},
|
|
128
127
|
};
|
|
129
|
-
/** User subscription templates for pooling subscription quotas. */
|
|
130
128
|
export const SUBSCRIPTION_PROVIDER_PRESETS = {
|
|
131
129
|
openai: {
|
|
132
130
|
name: "openai",
|
|
@@ -160,12 +158,10 @@ export const SUBSCRIPTION_PROVIDER_PRESETS = {
|
|
|
160
158
|
],
|
|
161
159
|
},
|
|
162
160
|
};
|
|
163
|
-
/** All available provider presets (free + subscription). */
|
|
164
161
|
export const ALL_PROVIDER_PRESETS = {
|
|
165
162
|
...FREE_PROVIDER_PRESETS,
|
|
166
163
|
...SUBSCRIPTION_PROVIDER_PRESETS,
|
|
167
164
|
};
|
|
168
|
-
/** Default multi-tier routing mapping across free & subscription endpoints. */
|
|
169
165
|
export const DEFAULT_PRESET_ROUTING = {
|
|
170
166
|
default: [
|
|
171
167
|
"groq/llama-3.3-70b-versatile",
|
package/dist/presets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
|