offrouter-core 0.5.1 → 0.7.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/audit.d.ts +51 -2
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +60 -3
- package/dist/audit.js.map +1 -1
- package/dist/config.d.ts +37 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +171 -1
- package/dist/config.js.map +1 -1
- package/dist/delegation.d.ts +40 -0
- package/dist/delegation.d.ts.map +1 -1
- package/dist/delegation.js +169 -8
- package/dist/delegation.js.map +1 -1
- package/dist/index.d.ts +27 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -7
- package/dist/index.js.map +1 -1
- package/dist/llm-judge.d.ts +41 -0
- package/dist/llm-judge.d.ts.map +1 -0
- package/dist/llm-judge.js +159 -0
- package/dist/llm-judge.js.map +1 -0
- package/dist/policy.d.ts +77 -0
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +81 -0
- package/dist/policy.js.map +1 -1
- package/dist/provider-health.d.ts +129 -0
- package/dist/provider-health.d.ts.map +1 -0
- package/dist/provider-health.js +423 -0
- package/dist/provider-health.js.map +1 -0
- package/dist/providers/catalog-data.d.ts +7 -0
- package/dist/providers/catalog-data.d.ts.map +1 -1
- package/dist/providers/catalog-data.js +140 -53
- package/dist/providers/catalog-data.js.map +1 -1
- package/dist/providers/catalog.d.ts +3 -3
- package/dist/providers/catalog.d.ts.map +1 -1
- package/dist/providers/catalog.js +1 -0
- package/dist/providers/catalog.js.map +1 -1
- package/dist/proxy/anthropic-mapper.d.ts +585 -0
- package/dist/proxy/anthropic-mapper.d.ts.map +1 -0
- package/dist/proxy/anthropic-mapper.js +539 -0
- package/dist/proxy/anthropic-mapper.js.map +1 -0
- package/dist/proxy/anthropic-server.d.ts +24 -0
- package/dist/proxy/anthropic-server.d.ts.map +1 -0
- package/dist/proxy/anthropic-server.js +606 -0
- package/dist/proxy/anthropic-server.js.map +1 -0
- package/dist/proxy/classify.d.ts +17 -0
- package/dist/proxy/classify.d.ts.map +1 -0
- package/dist/proxy/classify.js +65 -0
- package/dist/proxy/classify.js.map +1 -0
- package/dist/proxy/responses-mapper.d.ts +15 -0
- package/dist/proxy/responses-mapper.d.ts.map +1 -1
- package/dist/proxy/responses-mapper.js +9 -2
- package/dist/proxy/responses-mapper.js.map +1 -1
- package/dist/proxy/responses-server.d.ts.map +1 -1
- package/dist/proxy/responses-server.js +14 -1
- package/dist/proxy/responses-server.js.map +1 -1
- package/dist/router.d.ts +36 -2
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +158 -23
- package/dist/router.js.map +1 -1
- package/dist/schemas.d.ts +115 -34
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +35 -0
- package/dist/schemas.js.map +1 -1
- package/dist/secret-scan.d.ts +40 -0
- package/dist/secret-scan.d.ts.map +1 -0
- package/dist/secret-scan.js +125 -0
- package/dist/secret-scan.js.map +1 -0
- package/dist/secrets.d.ts +77 -6
- package/dist/secrets.d.ts.map +1 -1
- package/dist/secrets.js +356 -32
- package/dist/secrets.js.map +1 -1
- package/dist/spend.d.ts +122 -0
- package/dist/spend.d.ts.map +1 -0
- package/dist/spend.js +279 -0
- package/dist/spend.js.map +1 -0
- package/dist/task-classifier.d.ts +45 -0
- package/dist/task-classifier.d.ts.map +1 -0
- package/dist/task-classifier.js +153 -0
- package/dist/task-classifier.js.map +1 -0
- package/dist/types.d.ts +46 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/usage-file.d.ts +2 -6
- package/dist/usage-file.d.ts.map +1 -1
- package/dist/usage-file.js +64 -6
- package/dist/usage-file.js.map +1 -1
- package/dist/usage.d.ts +64 -10
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +79 -5
- package/dist/usage.js.map +1 -1
- package/package.json +1 -1
package/dist/router.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Deterministic model scoring and route explain for OffRouter V1.
|
|
3
|
-
*/
|
|
4
1
|
import { evaluatePolicy } from "./policy.js";
|
|
2
|
+
import { NEUTRAL_HEALTH_SCORE, } from "./provider-health.js";
|
|
5
3
|
import { ROUTE_PROTOCOL_VERSION } from "./protocol.js";
|
|
4
|
+
/** Rank boost applied within a tier when high-confidence family matches. */
|
|
5
|
+
const CLASSIFICATION_FAMILY_BOOST = 1;
|
|
6
6
|
function candidateId(c) {
|
|
7
7
|
return `${c.providerId}:${c.modelId}`;
|
|
8
8
|
}
|
|
@@ -14,9 +14,17 @@ function candidateId(c) {
|
|
|
14
14
|
* 3. Local
|
|
15
15
|
* 4. Degraded subscription (active + degraded)
|
|
16
16
|
* 5. API-key
|
|
17
|
-
* Within same tier:
|
|
17
|
+
* Within same tier: higher recent healthScore (optional tracker), then high-
|
|
18
|
+
* confidence classification family match, then lower estimatedCostUsd, then
|
|
19
|
+
* providerId, then modelId.
|
|
20
|
+
*
|
|
21
|
+
* HARD INVARIANT: tierRank is always the primary key. Health re-ordering and
|
|
22
|
+
* classification preference never promote an api-key candidate over a
|
|
23
|
+
* subscription candidate.
|
|
18
24
|
*/
|
|
19
|
-
|
|
25
|
+
/** Boost applied to a rule-preferred tier. Must exceed any native tierRank gap. */
|
|
26
|
+
const RULE_TIER_PREFERENCE_BOOST = 1_000;
|
|
27
|
+
function rankKey(c, healthScore = NEUTRAL_HEALTH_SCORE, familyMatchBoost = 0, preferredTier) {
|
|
20
28
|
let tierRank;
|
|
21
29
|
if (c.authTier === "subscription") {
|
|
22
30
|
if (c.health === "healthy") {
|
|
@@ -36,21 +44,113 @@ function rankKey(c) {
|
|
|
36
44
|
// api-key
|
|
37
45
|
tierRank = 100;
|
|
38
46
|
}
|
|
47
|
+
if (preferredTier !== undefined && c.authTier === preferredTier) {
|
|
48
|
+
tierRank += RULE_TIER_PREFERENCE_BOOST;
|
|
49
|
+
}
|
|
39
50
|
// Invert cost so higher is better; missing cost treated as mid-ish.
|
|
40
51
|
const cost = c.estimatedCostUsd ?? 0.05;
|
|
41
52
|
const costScore = -cost;
|
|
42
|
-
return [
|
|
53
|
+
return [
|
|
54
|
+
tierRank,
|
|
55
|
+
healthScore,
|
|
56
|
+
familyMatchBoost,
|
|
57
|
+
costScore,
|
|
58
|
+
c.providerId,
|
|
59
|
+
c.modelId,
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
function resolveHealthScore(c, tracker) {
|
|
63
|
+
if (!tracker)
|
|
64
|
+
return NEUTRAL_HEALTH_SCORE;
|
|
65
|
+
return tracker.healthScore(c.providerId, c.modelId);
|
|
66
|
+
}
|
|
67
|
+
function familyMatchBoostFor(c, classification) {
|
|
68
|
+
// Only high-confidence classifications reorder; medium/low are explain-only.
|
|
69
|
+
if (!classification || classification.confidence !== "high")
|
|
70
|
+
return 0;
|
|
71
|
+
if (!c.family)
|
|
72
|
+
return 0;
|
|
73
|
+
return c.family === classification.recommendedFamily
|
|
74
|
+
? CLASSIFICATION_FAMILY_BOOST
|
|
75
|
+
: 0;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Apply user-defined routing rules after policy gating and before ranking.
|
|
79
|
+
* Rules pick among ALLOWED candidates only. The first matching rule wins.
|
|
80
|
+
* A rule whose pinned model/provider has no allowed match is skipped.
|
|
81
|
+
*/
|
|
82
|
+
function applyRules(allowed, rules, role, classification) {
|
|
83
|
+
if (!rules || rules.length === 0) {
|
|
84
|
+
return { candidates: allowed };
|
|
85
|
+
}
|
|
86
|
+
for (let i = 0; i < rules.length; i++) {
|
|
87
|
+
const rule = rules[i];
|
|
88
|
+
const matchedKeys = [];
|
|
89
|
+
if (rule.role !== undefined) {
|
|
90
|
+
if (rule.role !== role)
|
|
91
|
+
continue;
|
|
92
|
+
matchedKeys.push("role");
|
|
93
|
+
}
|
|
94
|
+
if (rule.family !== undefined) {
|
|
95
|
+
if (classification?.recommendedFamily !== rule.family)
|
|
96
|
+
continue;
|
|
97
|
+
matchedKeys.push("family");
|
|
98
|
+
}
|
|
99
|
+
if (rule.model !== undefined) {
|
|
100
|
+
const slashIdx = rule.model.indexOf("/");
|
|
101
|
+
if (slashIdx <= 0 || slashIdx === rule.model.length - 1) {
|
|
102
|
+
// Malformed model pin; skip this rule.
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
const providerId = rule.model.slice(0, slashIdx);
|
|
106
|
+
const modelId = rule.model.slice(slashIdx + 1);
|
|
107
|
+
const filtered = allowed.filter((c) => c.providerId === providerId && c.modelId === modelId);
|
|
108
|
+
if (filtered.length === 0)
|
|
109
|
+
continue;
|
|
110
|
+
return {
|
|
111
|
+
candidates: filtered,
|
|
112
|
+
match: { index: i, matchedKeys, target: "model" },
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
if (rule.provider !== undefined) {
|
|
116
|
+
const filtered = allowed.filter((c) => c.providerId === rule.provider);
|
|
117
|
+
if (filtered.length === 0)
|
|
118
|
+
continue;
|
|
119
|
+
return {
|
|
120
|
+
candidates: filtered,
|
|
121
|
+
match: { index: i, matchedKeys, target: "provider" },
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
if (rule.tier !== undefined) {
|
|
125
|
+
return {
|
|
126
|
+
candidates: allowed,
|
|
127
|
+
preferredTier: rule.tier,
|
|
128
|
+
match: { index: i, matchedKeys, target: "tier" },
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return { candidates: allowed };
|
|
43
133
|
}
|
|
44
|
-
function sortCandidates(candidates) {
|
|
134
|
+
function sortCandidates(candidates, healthTracker, classification, preferredTier) {
|
|
45
135
|
return [...candidates].sort((a, b) => {
|
|
46
|
-
const
|
|
47
|
-
const
|
|
48
|
-
|
|
136
|
+
const ha = resolveHealthScore(a, healthTracker);
|
|
137
|
+
const hb = resolveHealthScore(b, healthTracker);
|
|
138
|
+
const fa = familyMatchBoostFor(a, classification);
|
|
139
|
+
const fb = familyMatchBoostFor(b, classification);
|
|
140
|
+
const ka = rankKey(a, ha, fa, preferredTier);
|
|
141
|
+
const kb = rankKey(b, hb, fb, preferredTier);
|
|
142
|
+
// tierRank desc — NEVER crossed by health or classification
|
|
49
143
|
if (ka[0] !== kb[0])
|
|
50
144
|
return kb[0] - ka[0];
|
|
51
|
-
//
|
|
145
|
+
// healthScore desc (within same tier only)
|
|
52
146
|
if (ka[1] !== kb[1])
|
|
53
147
|
return kb[1] - ka[1];
|
|
148
|
+
// high-confidence family match desc (within same tier + health only)
|
|
149
|
+
if (ka[2] !== kb[2])
|
|
150
|
+
return kb[2] - ka[2];
|
|
151
|
+
// costScore desc (higher costScore => cheaper)
|
|
152
|
+
if (ka[3] !== kb[3])
|
|
153
|
+
return kb[3] - ka[3];
|
|
54
154
|
if (a.providerId !== b.providerId) {
|
|
55
155
|
return a.providerId < b.providerId ? -1 : 1;
|
|
56
156
|
}
|
|
@@ -88,7 +188,7 @@ function selectionReason(winner) {
|
|
|
88
188
|
explanation: `Selected API-key candidate ${candidateId(winner)} because no healthy subscription candidate could satisfy the task.`,
|
|
89
189
|
};
|
|
90
190
|
}
|
|
91
|
-
function buildFallbackChain(sorted, winner) {
|
|
191
|
+
function buildFallbackChain(sorted, winner, healthTracker) {
|
|
92
192
|
const { fallbackReason } = selectionReason(winner);
|
|
93
193
|
const chain = [
|
|
94
194
|
{
|
|
@@ -96,6 +196,9 @@ function buildFallbackChain(sorted, winner) {
|
|
|
96
196
|
model: winner.modelId,
|
|
97
197
|
authTier: winner.authTier,
|
|
98
198
|
reason: fallbackReason,
|
|
199
|
+
...(healthTracker
|
|
200
|
+
? { healthScore: resolveHealthScore(winner, healthTracker) }
|
|
201
|
+
: {}),
|
|
99
202
|
},
|
|
100
203
|
];
|
|
101
204
|
// Include a short ordered list of alternative ranked candidates for explain.
|
|
@@ -124,6 +227,9 @@ function buildFallbackChain(sorted, winner) {
|
|
|
124
227
|
model: c.modelId,
|
|
125
228
|
authTier: c.authTier,
|
|
126
229
|
reason,
|
|
230
|
+
...(healthTracker
|
|
231
|
+
? { healthScore: resolveHealthScore(c, healthTracker) }
|
|
232
|
+
: {}),
|
|
127
233
|
});
|
|
128
234
|
if (chain.length >= 5)
|
|
129
235
|
break;
|
|
@@ -140,6 +246,23 @@ function confidenceFor(winner, nAllowed) {
|
|
|
140
246
|
return 0.7;
|
|
141
247
|
return 0.6;
|
|
142
248
|
}
|
|
249
|
+
/** Copy classification onto a decision for explain/audit (no prompt text). */
|
|
250
|
+
function withClassification(decision, classification, classifierName) {
|
|
251
|
+
if (!classification)
|
|
252
|
+
return decision;
|
|
253
|
+
const next = {
|
|
254
|
+
...decision,
|
|
255
|
+
classification: {
|
|
256
|
+
recommendedFamily: classification.recommendedFamily,
|
|
257
|
+
confidence: classification.confidence,
|
|
258
|
+
signals: [...classification.signals],
|
|
259
|
+
},
|
|
260
|
+
};
|
|
261
|
+
if (classifierName) {
|
|
262
|
+
next.classifierName = classifierName;
|
|
263
|
+
}
|
|
264
|
+
return next;
|
|
265
|
+
}
|
|
143
266
|
/**
|
|
144
267
|
* Route a request against candidates under policy.
|
|
145
268
|
* Pure and deterministic: same inputs -> same decision (except optional decisionId).
|
|
@@ -147,6 +270,8 @@ function confidenceFor(winner, nAllowed) {
|
|
|
147
270
|
export function routeRequest(request, candidates, config, options = {}) {
|
|
148
271
|
const decisionId = options.decisionId ??
|
|
149
272
|
`dec_${request.requestId}_${candidates.length}_${request.harness.profile}`;
|
|
273
|
+
const classification = options.classification;
|
|
274
|
+
const classifierName = options.classifierName;
|
|
150
275
|
// Empty catalog -> needs configuration (even before profile denials, so
|
|
151
276
|
// tests/docs can distinguish "no providers set up"). But work profiles still
|
|
152
277
|
// block on policy; empty list with blocked profile binary is fine either way.
|
|
@@ -160,7 +285,7 @@ export function routeRequest(request, candidates, config, options = {}) {
|
|
|
160
285
|
d.code === "privacy_label_denied" ||
|
|
161
286
|
d.code === "project_untrusted");
|
|
162
287
|
if (hardBlock) {
|
|
163
|
-
return {
|
|
288
|
+
return withClassification({
|
|
164
289
|
protocolVersion: ROUTE_PROTOCOL_VERSION,
|
|
165
290
|
decisionId,
|
|
166
291
|
requestId: request.requestId,
|
|
@@ -173,9 +298,9 @@ export function routeRequest(request, candidates, config, options = {}) {
|
|
|
173
298
|
auditSummary: `Blocked profile=${request.harness.profile} digests=${request.task.promptDigest}`,
|
|
174
299
|
blocked: true,
|
|
175
300
|
needsConfiguration: false,
|
|
176
|
-
};
|
|
301
|
+
}, classification, classifierName);
|
|
177
302
|
}
|
|
178
|
-
return {
|
|
303
|
+
return withClassification({
|
|
179
304
|
protocolVersion: ROUTE_PROTOCOL_VERSION,
|
|
180
305
|
decisionId,
|
|
181
306
|
requestId: request.requestId,
|
|
@@ -188,7 +313,7 @@ export function routeRequest(request, candidates, config, options = {}) {
|
|
|
188
313
|
auditSummary: `Needs configuration profile=${request.harness.profile} digest=${request.task.promptDigest}`,
|
|
189
314
|
blocked: true,
|
|
190
315
|
needsConfiguration: true,
|
|
191
|
-
};
|
|
316
|
+
}, classification, classifierName);
|
|
192
317
|
}
|
|
193
318
|
const policy = evaluatePolicy(request, candidates, config);
|
|
194
319
|
if (policy.allowed.length === 0) {
|
|
@@ -199,11 +324,15 @@ export function routeRequest(request, candidates, config, options = {}) {
|
|
|
199
324
|
// nothing is policy-profile blocked and no usable routes after hard filters.
|
|
200
325
|
const onlyCapabilityOrCostOrApiKey = policy.denials.every((d) => d.code === "capability_missing" ||
|
|
201
326
|
d.code === "cost_cap_exceeded" ||
|
|
327
|
+
d.code === "spend_cap_exceeded" ||
|
|
202
328
|
d.code === "local_only_required" ||
|
|
203
329
|
d.code === "api_key_blocked_by_subscription_first_policy" ||
|
|
204
330
|
d.code === "provider_denied" ||
|
|
205
|
-
d.code === "subscription_scope_denied"
|
|
206
|
-
|
|
331
|
+
d.code === "subscription_scope_denied" ||
|
|
332
|
+
d.code === "model_not_allowed" ||
|
|
333
|
+
d.code === "api_spend_approval_required" ||
|
|
334
|
+
d.code === "subscription_switch_requires_ack");
|
|
335
|
+
return withClassification({
|
|
207
336
|
protocolVersion: ROUTE_PROTOCOL_VERSION,
|
|
208
337
|
decisionId,
|
|
209
338
|
requestId: request.requestId,
|
|
@@ -221,9 +350,10 @@ export function routeRequest(request, candidates, config, options = {}) {
|
|
|
221
350
|
auditSummary: `Blocked profile=${request.harness.profile} denials=${policy.denials.length} digest=${request.task.promptDigest}`,
|
|
222
351
|
blocked: true,
|
|
223
352
|
needsConfiguration: !profileHardBlock && policy.denials.length === 0,
|
|
224
|
-
};
|
|
353
|
+
}, classification, classifierName);
|
|
225
354
|
}
|
|
226
|
-
const
|
|
355
|
+
const ruleApplication = applyRules(policy.allowed, options.rules, options.role, classification);
|
|
356
|
+
const sorted = sortCandidates(ruleApplication.candidates, options.healthTracker, classification, ruleApplication.preferredTier);
|
|
227
357
|
const winner = sorted[0];
|
|
228
358
|
const { reason, explanation, fallbackReason } = selectionReason(winner);
|
|
229
359
|
// If winner is api-key but there were subscription denials for exhausted etc
|
|
@@ -246,7 +376,7 @@ export function routeRequest(request, candidates, config, options = {}) {
|
|
|
246
376
|
finalFallback = "primary";
|
|
247
377
|
finalExplanation = `Selected cheap allowed candidate ${candidateId(winner)} for low-risk task.`;
|
|
248
378
|
}
|
|
249
|
-
const fallbackChain = buildFallbackChain(sorted, winner);
|
|
379
|
+
const fallbackChain = buildFallbackChain(sorted, winner, options.healthTracker);
|
|
250
380
|
// Fix primary entry reason if we rewrote fallback reason
|
|
251
381
|
if (fallbackChain[0]) {
|
|
252
382
|
fallbackChain[0] = { ...fallbackChain[0], reason: finalFallback };
|
|
@@ -269,7 +399,11 @@ export function routeRequest(request, candidates, config, options = {}) {
|
|
|
269
399
|
if (nearLimitWarning) {
|
|
270
400
|
finalExplanation = `${finalExplanation} ${nearLimitWarning}`;
|
|
271
401
|
}
|
|
272
|
-
|
|
402
|
+
const rulePrefix = ruleApplication.match
|
|
403
|
+
? `Matched routing rule ${ruleApplication.match.index} (${ruleApplication.match.matchedKeys.join(", ")}) → ${ruleApplication.match.target}.`
|
|
404
|
+
: "No rule matched (auto).";
|
|
405
|
+
finalExplanation = `${rulePrefix} ${finalExplanation}`;
|
|
406
|
+
return withClassification({
|
|
273
407
|
protocolVersion: ROUTE_PROTOCOL_VERSION,
|
|
274
408
|
decisionId,
|
|
275
409
|
requestId: request.requestId,
|
|
@@ -289,7 +423,8 @@ export function routeRequest(request, candidates, config, options = {}) {
|
|
|
289
423
|
blocked: false,
|
|
290
424
|
needsConfiguration: false,
|
|
291
425
|
nearLimitWarning,
|
|
292
|
-
|
|
426
|
+
routingRule: ruleApplication.match,
|
|
427
|
+
}, classification, classifierName);
|
|
293
428
|
}
|
|
294
429
|
/** @internal exported for focused testing */
|
|
295
430
|
export { sortCandidates };
|
package/dist/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|