@sentropic/llm-mesh 0.25.0 → 0.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/catalog.d.ts +92 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +47 -0
- package/dist/catalog.js.map +1 -1
- package/dist/enrollment/codex.d.ts +7 -0
- package/dist/enrollment/codex.d.ts.map +1 -1
- package/dist/enrollment/codex.js +74 -19
- package/dist/enrollment/codex.js.map +1 -1
- package/dist/enrollment/seat-bundle.d.ts +104 -0
- package/dist/enrollment/seat-bundle.d.ts.map +1 -0
- package/dist/enrollment/seat-bundle.js +304 -0
- package/dist/enrollment/seat-bundle.js.map +1 -0
- package/dist/errors.d.ts +19 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +51 -4
- package/dist/errors.js.map +1 -1
- package/dist/execution-features.d.ts +34 -0
- package/dist/execution-features.d.ts.map +1 -0
- package/dist/execution-features.js +84 -0
- package/dist/execution-features.js.map +1 -0
- package/dist/generated-model-council.d.ts +2 -2
- package/dist/generated-model-council.d.ts.map +1 -1
- package/dist/generated-model-council.js +5 -1
- package/dist/generated-model-council.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/native-messages.d.ts +130 -0
- package/dist/native-messages.d.ts.map +1 -0
- package/dist/native-messages.js +66 -0
- package/dist/native-messages.js.map +1 -0
- package/dist/node/index.d.ts +2 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/dist/providers.d.ts +5 -5
- package/dist/providers.d.ts.map +1 -1
- package/dist/providers.js +12 -5
- package/dist/providers.js.map +1 -1
- package/dist/responses-wire.d.ts +76 -0
- package/dist/responses-wire.d.ts.map +1 -0
- package/dist/responses-wire.js +35 -0
- package/dist/responses-wire.js.map +1 -0
- package/dist/route-attempt.d.ts +4 -0
- package/dist/route-attempt.d.ts.map +1 -1
- package/dist/route-attempt.js +8 -1
- package/dist/route-attempt.js.map +1 -1
- package/dist/route-health.d.ts +11 -0
- package/dist/route-health.d.ts.map +1 -1
- package/dist/route-health.js +32 -0
- package/dist/route-health.js.map +1 -1
- package/dist/route-planner-state.d.ts +33 -2
- package/dist/route-planner-state.d.ts.map +1 -1
- package/dist/route-planner-state.js +20 -1
- package/dist/route-planner-state.js.map +1 -1
- package/dist/route-planner.d.ts +21 -1
- package/dist/route-planner.d.ts.map +1 -1
- package/dist/route-planner.js +112 -33
- package/dist/route-planner.js.map +1 -1
- package/dist/route-quote.d.ts +16 -2
- package/dist/route-quote.d.ts.map +1 -1
- package/dist/route-quote.js +31 -5
- package/dist/route-quote.js.map +1 -1
- package/dist/route-selection.d.ts +13 -0
- package/dist/route-selection.d.ts.map +1 -1
- package/dist/route-selection.js +30 -5
- package/dist/route-selection.js.map +1 -1
- package/dist/routing-contracts.d.ts +42 -3
- package/dist/routing-contracts.d.ts.map +1 -1
- package/dist/routing-targets.d.ts +26 -0
- package/dist/routing-targets.d.ts.map +1 -1
- package/dist/routing-targets.js +96 -23
- package/dist/routing-targets.js.map +1 -1
- package/dist/service/local-account-transport-service.d.ts +9 -0
- package/dist/service/local-account-transport-service.d.ts.map +1 -1
- package/dist/service/local-account-transport-service.js +56 -9
- package/dist/service/local-account-transport-service.js.map +1 -1
- package/dist/transport/codex-runtime-client.d.ts.map +1 -1
- package/dist/transport/codex-runtime-client.js +24 -4
- package/dist/transport/codex-runtime-client.js.map +1 -1
- package/dist/transport/codex-runtime-wire.d.ts.map +1 -1
- package/dist/transport/codex-runtime-wire.js +131 -27
- package/dist/transport/codex-runtime-wire.js.map +1 -1
- package/dist/transport/mistral-runtime-client.d.ts.map +1 -1
- package/dist/transport/mistral-runtime-client.js +191 -9
- package/dist/transport/mistral-runtime-client.js.map +1 -1
- package/dist/transport/muse-runtime-client.d.ts.map +1 -1
- package/dist/transport/muse-runtime-client.js +221 -10
- package/dist/transport/muse-runtime-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-attempt.js","sourceRoot":"","sources":["../src/route-attempt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"route-attempt.js","sourceRoot":"","sources":["../src/route-attempt.ts"],"names":[],"mappings":"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"}
|
package/dist/route-health.d.ts
CHANGED
|
@@ -8,6 +8,17 @@ export declare class InMemoryRouteHealth {
|
|
|
8
8
|
constructor(clock: Clock, maximumEntries?: number);
|
|
9
9
|
record(candidate: RankedRouteCandidate, classification: RouteFailureClassification, policy: RoutePolicy): void;
|
|
10
10
|
isSuppressed(candidate: RankedRouteCandidate): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* True when the candidate is suppressed only by locally uncommitted
|
|
13
|
+
* failures (no upstream output observed before failing): as an
|
|
14
|
+
* availability policy a lone suppressed route may degrade instead of
|
|
15
|
+
* starving. This records local observation only — it cannot prove the
|
|
16
|
+
* provider did not execute the request. Provider rate limits are exempt:
|
|
17
|
+
* they carry a provider-asked Retry-After window, and redispatching a
|
|
18
|
+
* lone seat inside that window is a retry storm, not an availability
|
|
19
|
+
* gap — the suppression stands through its own TTL.
|
|
20
|
+
*/
|
|
21
|
+
suppressedDegradable(candidate: RankedRouteCandidate): boolean;
|
|
11
22
|
clear(candidate: RankedRouteCandidate): void;
|
|
12
23
|
private evict;
|
|
13
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-health.d.ts","sourceRoot":"","sources":["../src/route-health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"route-health.d.ts","sourceRoot":"","sources":["../src/route-health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAqCvD,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAJjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;gBAGvC,KAAK,EAAE,KAAK,EACZ,cAAc,SAAQ;IAGzC,MAAM,CACJ,SAAS,EAAE,oBAAoB,EAC/B,cAAc,EAAE,0BAA0B,EAC1C,MAAM,EAAE,WAAW,GAClB,IAAI;IAuBP,YAAY,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO;IAStD;;;;;;;;;OASG;IACH,oBAAoB,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO;IAY9D,KAAK,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI;IAI5C,OAAO,CAAC,KAAK;CAWd"}
|
package/dist/route-health.js
CHANGED
|
@@ -34,9 +34,19 @@ export class InMemoryRouteHealth {
|
|
|
34
34
|
const requestedTtl = classification.retryAfterMs ?? policy.negativeCacheTtlMs;
|
|
35
35
|
const ttl = Math.min(Math.max(requestedTtl, 1_000), 3_600_000);
|
|
36
36
|
const key = keyFor(candidate, classification.healthScope);
|
|
37
|
+
const now = this.clock.now().getTime();
|
|
38
|
+
const existing = this.entries.get(key);
|
|
39
|
+
if (existing && existing.expiresAt > now && existing.committed
|
|
40
|
+
&& !(classification.committed ?? false)) {
|
|
41
|
+
// A later uncommitted outcome must not erase an unexpired committed
|
|
42
|
+
// suppression on the same key: the committed entry stands through its
|
|
43
|
+
// own remaining TTL.
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
37
46
|
this.entries.set(key, {
|
|
38
47
|
key,
|
|
39
48
|
reason: classification.reason,
|
|
49
|
+
committed: classification.committed ?? false,
|
|
40
50
|
expiresAt: this.clock.now().getTime() + ttl,
|
|
41
51
|
});
|
|
42
52
|
this.evict();
|
|
@@ -49,6 +59,28 @@ export class InMemoryRouteHealth {
|
|
|
49
59
|
return Boolean(entry && entry.expiresAt > now);
|
|
50
60
|
});
|
|
51
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* True when the candidate is suppressed only by locally uncommitted
|
|
64
|
+
* failures (no upstream output observed before failing): as an
|
|
65
|
+
* availability policy a lone suppressed route may degrade instead of
|
|
66
|
+
* starving. This records local observation only — it cannot prove the
|
|
67
|
+
* provider did not execute the request. Provider rate limits are exempt:
|
|
68
|
+
* they carry a provider-asked Retry-After window, and redispatching a
|
|
69
|
+
* lone seat inside that window is a retry storm, not an availability
|
|
70
|
+
* gap — the suppression stands through its own TTL.
|
|
71
|
+
*/
|
|
72
|
+
suppressedDegradable(candidate) {
|
|
73
|
+
this.evict();
|
|
74
|
+
const now = this.clock.now().getTime();
|
|
75
|
+
const suppressing = [];
|
|
76
|
+
for (const key of applicableKeys(candidate)) {
|
|
77
|
+
const entry = this.entries.get(key);
|
|
78
|
+
if (entry && entry.expiresAt > now)
|
|
79
|
+
suppressing.push(entry);
|
|
80
|
+
}
|
|
81
|
+
return suppressing.length > 0
|
|
82
|
+
&& suppressing.every((entry) => !entry.committed && entry.reason !== 'rate-limited');
|
|
83
|
+
}
|
|
52
84
|
clear(candidate) {
|
|
53
85
|
applicableKeys(candidate).forEach((key) => this.entries.delete(key));
|
|
54
86
|
}
|
package/dist/route-health.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-health.js","sourceRoot":"","sources":["../src/route-health.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"route-health.js","sourceRoot":"","sources":["../src/route-health.ts"],"names":[],"mappings":"AAWA,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAuC;IACxE,qBAAqB;IACrB,cAAc;IACd,cAAc;CACf,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CACb,SAA+B,EAC/B,KAAgD,EACxC,EAAE;IACV,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,SAAS,CAAC,CAAC,OAAO,WAAW,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACjE,KAAK,WAAW,CAAC,CAAC,OAAO,aAAa,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC7E,KAAK,gBAAgB,CAAC,CAAC,OAAO,kBAAkB,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC1G,OAAO,CAAC,CAAC,OAAO;YACd,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO;YAC9D,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU;SACnE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,SAA+B,EAAqB,EAAE,CAAC;IAC7E,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC;IAC5B,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;IAC9B,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAEF,MAAM,OAAO,mBAAmB;IAIX;IACA;IAJF,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE1D,YACmB,KAAY,EACZ,iBAAiB,KAAK;QADtB,UAAK,GAAL,KAAK,CAAO;QACZ,mBAAc,GAAd,cAAc,CAAQ;IACtC,CAAC;IAEJ,MAAM,CACJ,SAA+B,EAC/B,cAA0C,EAC1C,MAAmB;QAEnB,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC;YAAE,OAAO;QACzF,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,IAAI,MAAM,CAAC,kBAAkB,CAAC;QAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,GAAG,GAAG,IAAI,QAAQ,CAAC,SAAS;eACzD,CAAC,CAAC,cAAc,CAAC,SAAS,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1C,oEAAoE;YACpE,sEAAsE;YACtE,qBAAqB;YACrB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YACpB,GAAG;YACH,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,SAAS,EAAE,cAAc,CAAC,SAAS,IAAI,KAAK;YAC5C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG;SAC5C,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,YAAY,CAAC,SAA+B;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,oBAAoB,CAAC,SAA+B;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,WAAW,GAAkB,EAAE,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG;gBAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC;eACxB,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC;IACzF,CAAC;IAED,KAAK,CAAC,SAA+B;QACnC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;IAEO,KAAK;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACvF,IAAI,CAAC,MAAM;gBAAE,MAAM;YACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ExecutionFeature } from './execution-features.js';
|
|
1
2
|
import type { RankedRouteCandidate } from './route-selection.js';
|
|
2
3
|
import type { AffinityDescription, IdFactory, RouteAvailabilityDiagnostic, RoutePlan, VerifiedRoutingSubject } from './routing-contracts.js';
|
|
3
4
|
import type { RoutePolicy } from './routing-policy.js';
|
|
@@ -22,9 +23,39 @@ export interface StoredAffinity extends AffinityDescription {
|
|
|
22
23
|
readonly workspaceId?: string;
|
|
23
24
|
}
|
|
24
25
|
export declare class RoutePlanError extends Error {
|
|
25
|
-
readonly code: 'no-route' | 'unknown-model' | 'capabilities-unmet' | 'invalid-plan' | 'expired-plan' | 'stale-candidate' | 'conflict' | 'quote-mismatch';
|
|
26
|
+
readonly code: 'no-route' | 'unknown-model' | 'capabilities-unmet' | 'invalid-plan' | 'expired-plan' | 'stale-candidate' | 'conflict' | 'quote-mismatch' | 'native-unavailable';
|
|
26
27
|
readonly diagnostic?: RouteAvailabilityDiagnostic | undefined;
|
|
27
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Every transport-matching availability entry (Lot 7): by caller
|
|
30
|
+
* convention `diagnostic` stays the first match for back-compat (not a
|
|
31
|
+
* constructor invariant — both arguments are independently optional);
|
|
32
|
+
* this carries the full per-transport list. Transport diagnostics
|
|
33
|
+
* reflect the matching entries, not necessarily every candidate or
|
|
34
|
+
* every failure cause.
|
|
35
|
+
*/
|
|
36
|
+
readonly diagnostics?: readonly RouteAvailabilityDiagnostic[] | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Requested execution features no resolved target supports (spec §16.7
|
|
39
|
+
* cause for `capabilities-unmet`; absent for older constructions and
|
|
40
|
+
* non-execution refusals). The gateway names the first mapped one.
|
|
41
|
+
*/
|
|
42
|
+
readonly unmetExecutionFeatures?: readonly ExecutionFeature[] | undefined;
|
|
43
|
+
constructor(message: string, code: 'no-route' | 'unknown-model' | 'capabilities-unmet' | 'invalid-plan' | 'expired-plan' | 'stale-candidate' | 'conflict' | 'quote-mismatch' | 'native-unavailable', diagnostic?: RouteAvailabilityDiagnostic | undefined,
|
|
44
|
+
/**
|
|
45
|
+
* Every transport-matching availability entry (Lot 7): by caller
|
|
46
|
+
* convention `diagnostic` stays the first match for back-compat (not a
|
|
47
|
+
* constructor invariant — both arguments are independently optional);
|
|
48
|
+
* this carries the full per-transport list. Transport diagnostics
|
|
49
|
+
* reflect the matching entries, not necessarily every candidate or
|
|
50
|
+
* every failure cause.
|
|
51
|
+
*/
|
|
52
|
+
diagnostics?: readonly RouteAvailabilityDiagnostic[] | undefined,
|
|
53
|
+
/**
|
|
54
|
+
* Requested execution features no resolved target supports (spec §16.7
|
|
55
|
+
* cause for `capabilities-unmet`; absent for older constructions and
|
|
56
|
+
* non-execution refusals). The gateway names the first mapped one.
|
|
57
|
+
*/
|
|
58
|
+
unmetExecutionFeatures?: readonly ExecutionFeature[] | undefined);
|
|
28
59
|
}
|
|
29
60
|
export declare const subjectRef: (subject: VerifiedRoutingSubject) => string;
|
|
30
61
|
export declare const routingOwnerRef: (subject: VerifiedRoutingSubject) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-planner-state.d.ts","sourceRoot":"","sources":["../src/route-planner-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,2BAA2B,EAC3B,SAAS,EACT,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IAC3D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,cAAe,SAAQ,KAAK;IAGrC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,GAAG,oBAAoB,GAAG,cAAc,GAAG,cAAc,GAAG,iBAAiB,GAAG,UAAU,GACjI,gBAAgB;
|
|
1
|
+
{"version":3,"file":"route-planner-state.d.ts","sourceRoot":"","sources":["../src/route-planner-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,2BAA2B,EAC3B,SAAS,EACT,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IAC3D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,cAAe,SAAQ,KAAK;IAGrC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,GAAG,oBAAoB,GAAG,cAAc,GAAG,cAAc,GAAG,iBAAiB,GAAG,UAAU,GACjI,gBAAgB,GAAG,oBAAoB;IAC3C,QAAQ,CAAC,UAAU,CAAC;IACpB;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,sBAAsB,CAAC;gBAlBhC,OAAO,EAAE,MAAM,EACN,IAAI,EAAE,UAAU,GAAG,eAAe,GAAG,oBAAoB,GAAG,cAAc,GAAG,cAAc,GAAG,iBAAiB,GAAG,UAAU,GACjI,gBAAgB,GAAG,oBAAoB,EAClC,UAAU,CAAC,yCAA6B;IACjD;;;;;;;OAOG;IACM,WAAW,CAAC,oDAAwC;IAC7D;;;;OAIG;IACM,sBAAsB,CAAC,yCAA6B;CAKhE;AAED,eAAO,MAAM,UAAU,YAAa,sBAAsB,KAAG,MACJ,CAAC;AAE1D,eAAO,MAAM,eAAe,YAAa,sBAAsB,KAAG,MAC3C,CAAC;AAExB,eAAO,MAAM,WAAW,YACb,sBAAsB,eAClB,MAAM,gBACL,MAAM,KACnB,MAAmF,CAAC;AAEvF,eAAO,MAAM,gBAAgB,SACrB,WAAW,aACN,QAAQ,WAAW,CAAC,KAC9B,WAKD,CAAC;AAEH,qBAAa,mBAAoB,YAAW,SAAS;IACnD,OAAO,CAAC,QAAQ,CAAK;IAErB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM;CAIvD"}
|
|
@@ -1,10 +1,29 @@
|
|
|
1
1
|
export class RoutePlanError extends Error {
|
|
2
2
|
code;
|
|
3
3
|
diagnostic;
|
|
4
|
-
|
|
4
|
+
diagnostics;
|
|
5
|
+
unmetExecutionFeatures;
|
|
6
|
+
constructor(message, code, diagnostic,
|
|
7
|
+
/**
|
|
8
|
+
* Every transport-matching availability entry (Lot 7): by caller
|
|
9
|
+
* convention `diagnostic` stays the first match for back-compat (not a
|
|
10
|
+
* constructor invariant — both arguments are independently optional);
|
|
11
|
+
* this carries the full per-transport list. Transport diagnostics
|
|
12
|
+
* reflect the matching entries, not necessarily every candidate or
|
|
13
|
+
* every failure cause.
|
|
14
|
+
*/
|
|
15
|
+
diagnostics,
|
|
16
|
+
/**
|
|
17
|
+
* Requested execution features no resolved target supports (spec §16.7
|
|
18
|
+
* cause for `capabilities-unmet`; absent for older constructions and
|
|
19
|
+
* non-execution refusals). The gateway names the first mapped one.
|
|
20
|
+
*/
|
|
21
|
+
unmetExecutionFeatures) {
|
|
5
22
|
super(message);
|
|
6
23
|
this.code = code;
|
|
7
24
|
this.diagnostic = diagnostic;
|
|
25
|
+
this.diagnostics = diagnostics;
|
|
26
|
+
this.unmetExecutionFeatures = unmetExecutionFeatures;
|
|
8
27
|
this.name = 'RoutePlanError';
|
|
9
28
|
}
|
|
10
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-planner-state.js","sourceRoot":"","sources":["../src/route-planner-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"route-planner-state.js","sourceRoot":"","sources":["../src/route-planner-state.ts"],"names":[],"mappings":"AAkCA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAG5B;IAEA;IASA;IAMA;IAnBX,YACE,OAAe,EACN,IACkC,EAClC,UAAwC;IACjD;;;;;;;OAOG;IACM,WAAoD;IAC7D;;;;OAIG;IACM,sBAAoD;QAE7D,KAAK,CAAC,OAAO,CAAC,CAAC;QAnBN,SAAI,GAAJ,IAAI,CAC8B;QAClC,eAAU,GAAV,UAAU,CAA8B;QASxC,gBAAW,GAAX,WAAW,CAAyC;QAMpD,2BAAsB,GAAtB,sBAAsB,CAA8B;QAG7D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAA+B,EAAU,EAAE,CACpE,GAAG,OAAO,CAAC,YAAY,SAAS,OAAO,CAAC,aAAa,EAAE,CAAC;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAA+B,EAAU,EAAE,CACzE,OAAO,CAAC,aAAa,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAA+B,EAC/B,WAAmB,EACnB,WAAoB,EACZ,EAAE,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,WAAW,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAiB,EACjB,QAA+B,EAClB,EAAE,CAAC,CAAC;IACjB,GAAG,IAAI;IACP,GAAG,QAAQ;IACX,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ;IAC7C,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK;CACrC,CAAC,CAAC;AAEH,MAAM,OAAO,mBAAmB;IACtB,QAAQ,GAAG,CAAC,CAAC;IAErB,IAAI,CAAC,MAAwC;QAC3C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnB,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACnD,CAAC;CACF"}
|
package/dist/route-planner.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { type ModelEquivalenceCouncil } from './equivalence-council.js';
|
|
2
|
-
import type { AccountDirectoryPort, AffinityDescription, Clock, IdFactory, PreparedRouteAttempt, AffinityMutationEvent, RoutePlan, RoutePlanInput, RoutePlanner, VerifiedRoutingSubject, RouteModelInventoryEntry, RouteQuote, RouteQuoteInput } from './routing-contracts.js';
|
|
2
|
+
import type { AccountDirectoryPort, AffinityDescription, Clock, IdFactory, PreparedRouteAttempt, AffinityMutationEvent, RouteAvailabilityDiagnostic, RoutePlan, RoutePlanInput, RoutePlanner, VerifiedRoutingSubject, RouteModelInventoryEntry, RouteQuote, RouteQuoteInput } from './routing-contracts.js';
|
|
3
3
|
import { InMemoryRoutePolicyProfiles } from './routing-policy.js';
|
|
4
4
|
export interface InMemoryRoutePlannerOptions {
|
|
5
5
|
readonly directory: AccountDirectoryPort;
|
|
6
6
|
readonly council?: ModelEquivalenceCouncil;
|
|
7
7
|
readonly profiles?: InMemoryRoutePolicyProfiles;
|
|
8
|
+
readonly nativeMessagesModelIds?: readonly string[];
|
|
8
9
|
readonly clock?: Clock;
|
|
9
10
|
readonly idFactory?: IdFactory;
|
|
10
11
|
readonly planTtlMs?: number;
|
|
@@ -23,16 +24,35 @@ export declare class InMemoryRoutePlanner implements RoutePlanner {
|
|
|
23
24
|
private readonly council;
|
|
24
25
|
private readonly profiles;
|
|
25
26
|
private readonly health;
|
|
27
|
+
private readonly nativeMessagesModelIds;
|
|
26
28
|
private readonly planTtlMs;
|
|
27
29
|
private readonly maximumPlanEntries;
|
|
28
30
|
private readonly maximumAffinityEntries;
|
|
29
31
|
private readonly maximumRoundRobinEntries;
|
|
30
32
|
constructor(options: InMemoryRoutePlannerOptions);
|
|
31
33
|
listModels(subject: VerifiedRoutingSubject): Promise<readonly RouteModelInventoryEntry[]>;
|
|
34
|
+
/**
|
|
35
|
+
* Read-only per-transport availability for a requested model (Lot 7).
|
|
36
|
+
* Same transport resolution as the plan no-route branch, without planning
|
|
37
|
+
* side effects — the budget admission path uses it to explain empty quotes.
|
|
38
|
+
*/
|
|
39
|
+
describeAvailability(subject: VerifiedRoutingSubject, input: Pick<RoutePlanInput, 'requestedModel' | 'targetCandidatesOverride' | 'explicit'>): Promise<readonly RouteAvailabilityDiagnostic[]>;
|
|
40
|
+
private matchingAvailabilityDiagnostics;
|
|
32
41
|
plan(subject: VerifiedRoutingSubject, input: RoutePlanInput): Promise<RoutePlan>;
|
|
33
42
|
quote(input: RouteQuoteInput): RouteQuote;
|
|
34
43
|
private assertQuoteMatches;
|
|
35
44
|
private keepQuoted;
|
|
45
|
+
/**
|
|
46
|
+
* Health-filter candidates. Suppression-based failover stands, except for a
|
|
47
|
+
* lone quoted candidate suppressed only by locally uncommitted failures
|
|
48
|
+
* (no upstream output observed before failing): as an availability policy
|
|
49
|
+
* it degrades instead of starving the only route. This records local
|
|
50
|
+
* observation only — the provider may still have accepted the request
|
|
51
|
+
* before the connection failed. Committed failures stay strict, as does
|
|
52
|
+
* multi-route suppression, and provider rate limits keep their
|
|
53
|
+
* Retry-After window even on a lone route.
|
|
54
|
+
*/
|
|
55
|
+
private visibleCandidates;
|
|
36
56
|
prepareAttempt(subject: VerifiedRoutingSubject, planRef: string, candidateRef: string, requestId: string, attemptIndex: number): Promise<PreparedRouteAttempt>;
|
|
37
57
|
describeAffinity(subject: VerifiedRoutingSubject, key: string, workspaceId?: string): AffinityDescription | null;
|
|
38
58
|
promoteAffinity(subject: VerifiedRoutingSubject, planRef: string, candidateRef: string, expectedRevision?: number): AffinityDescription;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-planner.d.ts","sourceRoot":"","sources":["../src/route-planner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"route-planner.d.ts","sourceRoot":"","sources":["../src/route-planner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAY3G,OAAO,KAAK,EACV,oBAAoB,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EACjF,qBAAqB,EAAE,2BAA2B,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAC3F,sBAAsB,EACtB,wBAAwB,EAAE,UAAU,EAAE,eAAe,EACtD,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,2BAA2B,EAAwB,MAAM,qBAAqB,CAAC;AAExF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IAChD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACjE;AACD,qBAAa,oBAAqB,YAAW,YAAY;IAkB3C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAjBpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGtB;IACL,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAoB;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAS;gBAErB,OAAO,EAAE,2BAA2B;IAiB3D,UAAU,CACd,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,SAAS,wBAAwB,EAAE,CAAC;IAc/C;;;;OAIG;IACG,oBAAoB,CACxB,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAgB,GAAG,0BAA0B,GAAG,UAAU,CAAC,GACtF,OAAO,CAAC,SAAS,2BAA2B,EAAE,CAAC;YAGpC,+BAA+B;IAuBvC,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAwKtF,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,UAAU;IAOzC,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,UAAU;IAQlB;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAUnB,cAAc,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EACzF,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuCzE,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAIhH,eAAe,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EACpF,gBAAgB,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAIjD,cAAc,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EACnF,gBAAgB,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAIjD,aAAa,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EACnF,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAchC,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,IAAI;IAwBZ,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,IAAI;CAOb"}
|
package/dist/route-planner.js
CHANGED
|
@@ -2,6 +2,7 @@ import { DEFAULT_MODEL_EQUIVALENCE_COUNCIL } from './equivalence-council.js';
|
|
|
2
2
|
import { prepareStoredRouteAttempt } from './route-attempt.js';
|
|
3
3
|
import { InMemoryRouteHealth } from './route-health.js';
|
|
4
4
|
import { affinityRef, RoutePlanError, SequentialIdFactory, routingOwnerRef, subjectRef, } from './route-planner-state.js';
|
|
5
|
+
import { isNativeMessagesTarget, NATIVE_ANTHROPIC_MESSAGES_MODEL_IDS, validateNativeModelAllowlist, } from './native-messages.js';
|
|
5
6
|
import { resolveRequestedTargets, selectRouteCandidates } from './route-selection.js';
|
|
6
7
|
import { computeRouteQuoteRef, isQuotedRouteTarget, quoteRoute, resolveQuotePolicy } from './route-quote.js';
|
|
7
8
|
import { InMemoryRoutePolicyProfiles, resolveRouteStrategy } from './routing-policy.js';
|
|
@@ -15,6 +16,7 @@ export class InMemoryRoutePlanner {
|
|
|
15
16
|
council;
|
|
16
17
|
profiles;
|
|
17
18
|
health;
|
|
19
|
+
nativeMessagesModelIds;
|
|
18
20
|
planTtlMs;
|
|
19
21
|
maximumPlanEntries;
|
|
20
22
|
maximumAffinityEntries;
|
|
@@ -26,6 +28,9 @@ export class InMemoryRoutePlanner {
|
|
|
26
28
|
this.council = options.council ?? DEFAULT_MODEL_EQUIVALENCE_COUNCIL;
|
|
27
29
|
this.profiles = options.profiles ?? new InMemoryRoutePolicyProfiles();
|
|
28
30
|
this.health = new InMemoryRouteHealth(this.clock);
|
|
31
|
+
this.nativeMessagesModelIds = options.nativeMessagesModelIds !== undefined
|
|
32
|
+
? validateNativeModelAllowlist(options.nativeMessagesModelIds)
|
|
33
|
+
: NATIVE_ANTHROPIC_MESSAGES_MODEL_IDS;
|
|
29
34
|
this.planTtlMs = options.planTtlMs ?? 30_000;
|
|
30
35
|
this.maximumPlanEntries = Math.max(1, options.maximumPlanEntries ?? 1_000);
|
|
31
36
|
this.maximumAffinityEntries = Math.max(1, options.maximumAffinityEntries ?? 10_000);
|
|
@@ -45,6 +50,32 @@ export class InMemoryRoutePlanner {
|
|
|
45
50
|
return [...inventory.values()].sort((left, right) => left.modelId.localeCompare(right.modelId)
|
|
46
51
|
|| left.providerId.localeCompare(right.providerId));
|
|
47
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Read-only per-transport availability for a requested model (Lot 7).
|
|
55
|
+
* Same transport resolution as the plan no-route branch, without planning
|
|
56
|
+
* side effects — the budget admission path uses it to explain empty quotes.
|
|
57
|
+
*/
|
|
58
|
+
async describeAvailability(subject, input) {
|
|
59
|
+
return this.matchingAvailabilityDiagnostics(subject, input);
|
|
60
|
+
}
|
|
61
|
+
async matchingAvailabilityDiagnostics(subject, input) {
|
|
62
|
+
// A diagnostic is only pertinent when it belongs to the requested
|
|
63
|
+
// route's transports. Surfacing listDiagnostics[0] unfiltered once
|
|
64
|
+
// prescribed a `muse reauthenticate` for an explicit codex request.
|
|
65
|
+
// The model-derived resolution ignores `explicit`, so an explicit
|
|
66
|
+
// transport restriction wins over it here.
|
|
67
|
+
const explicitTransport = input.explicit?.transportProviderId;
|
|
68
|
+
const resolution = resolveRequestedTargets(input);
|
|
69
|
+
const transports = new Set(explicitTransport
|
|
70
|
+
? [explicitTransport]
|
|
71
|
+
: resolution.kind === 'known'
|
|
72
|
+
? resolution.targets
|
|
73
|
+
.map((target) => target.transportProviderId)
|
|
74
|
+
.filter((transport) => typeof transport === 'string')
|
|
75
|
+
: []);
|
|
76
|
+
const diagnostics = await this.options.directory.listDiagnostics?.(subject) ?? [];
|
|
77
|
+
return diagnostics.filter((entry) => transports.has(entry.transportProviderId));
|
|
78
|
+
}
|
|
48
79
|
async plan(subject, input) {
|
|
49
80
|
this.evictPlans();
|
|
50
81
|
const { profile, policy: resolvedPolicy } = resolveQuotePolicy(input, this.profiles);
|
|
@@ -60,6 +91,7 @@ export class InMemoryRoutePlanner {
|
|
|
60
91
|
const affinity = input.affinityKey
|
|
61
92
|
? this.affinities.get(affinityRef(subject, input.affinityKey, input.workspaceId))
|
|
62
93
|
: undefined;
|
|
94
|
+
let affinityDropped = false;
|
|
63
95
|
const accounts = await this.options.directory.listEligible(subject);
|
|
64
96
|
const roundRobinKey = `${routingOwnerRef(subject)}\u001f${input.requestedModel}`;
|
|
65
97
|
const roundRobinState = strategy.kind === 'round-robin'
|
|
@@ -79,15 +111,52 @@ export class InMemoryRoutePlanner {
|
|
|
79
111
|
throw new RoutePlanError('Unknown requested model', 'unknown-model');
|
|
80
112
|
}
|
|
81
113
|
if (selection.kind === 'capabilities-unmet') {
|
|
82
|
-
throw new RoutePlanError('Required capabilities are unavailable', 'capabilities-unmet');
|
|
114
|
+
throw new RoutePlanError('Required capabilities are unavailable', 'capabilities-unmet', undefined, undefined, selection.unmetExecutionFeatures);
|
|
115
|
+
}
|
|
116
|
+
if (input.nativeMessages === true) {
|
|
117
|
+
// Adapted from R: R also rejected exclusive launch aliases here, but W
|
|
118
|
+
// folds every launch alias into LAUNCH_ALIAS_ROUTE_MAPPINGS with no
|
|
119
|
+
// exclusive codex pin, so the native-target check alone decides.
|
|
120
|
+
if (!isNativeMessagesTarget({ providerId: 'anthropic', modelId: input.requestedModel }, this.nativeMessagesModelIds)) {
|
|
121
|
+
throw new RoutePlanError('Native Anthropic Messages execution is unavailable for this request', 'native-unavailable');
|
|
122
|
+
}
|
|
83
123
|
}
|
|
84
124
|
let candidates = selection.kind === 'candidates' ? [...selection.candidates] : [];
|
|
125
|
+
if (input.nativeMessages === true) {
|
|
126
|
+
const hadCandidates = candidates.length > 0;
|
|
127
|
+
candidates = candidates.filter((candidate) => candidate.account.nativeMessages?.contractVersion === 1
|
|
128
|
+
&& candidate.account.nativeMessages.protocol === 'anthropic-messages'
|
|
129
|
+
&& isNativeMessagesTarget(candidate.target, this.nativeMessagesModelIds)
|
|
130
|
+
&& candidate.target.modelId === input.requestedModel);
|
|
131
|
+
if (hadCandidates && candidates.length === 0) {
|
|
132
|
+
throw new RoutePlanError('Native Anthropic Messages execution is unavailable for this request', 'native-unavailable');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
85
135
|
// With a quote, an affinity to an unquoted target is ignored for selection
|
|
86
136
|
// (for example a sticky model the request no longer asks for).
|
|
137
|
+
const stickyAccount = affinity
|
|
138
|
+
? accounts.find((entry) => entry.accountRef === affinity.accountRef)
|
|
139
|
+
: undefined;
|
|
87
140
|
if (affinity && policy.stickyAccount
|
|
88
|
-
&& inQuoteTarget(affinity.target)
|
|
89
|
-
|
|
90
|
-
|
|
141
|
+
&& inQuoteTarget(affinity.target)
|
|
142
|
+
&& (!input.nativeMessages || (stickyAccount?.nativeMessages?.contractVersion === 1
|
|
143
|
+
&& stickyAccount.nativeMessages.protocol === 'anthropic-messages'
|
|
144
|
+
&& isNativeMessagesTarget(affinity.target, this.nativeMessagesModelIds)
|
|
145
|
+
&& affinity.target.modelId === input.requestedModel))) {
|
|
146
|
+
const account = stickyAccount;
|
|
147
|
+
if (!account) {
|
|
148
|
+
// Auto-drop: the affinity account is gone (deleted) — resolve without
|
|
149
|
+
// the dead pin instead of failing closed on it. The dropped pin is
|
|
150
|
+
// cleared for the rest of planning so the stored plan carries no
|
|
151
|
+
// affinity revision and round-robin reservation applies to the
|
|
152
|
+
// replacement candidates.
|
|
153
|
+
if (input.affinityKey) {
|
|
154
|
+
this.affinities.delete(affinityRef(subject, input.affinityKey, input.workspaceId));
|
|
155
|
+
}
|
|
156
|
+
affinityDropped = true;
|
|
157
|
+
candidates = this.visibleCandidates(candidates, inQuote, policy);
|
|
158
|
+
}
|
|
159
|
+
else if (account.readiness !== 'ready') {
|
|
91
160
|
candidates = [];
|
|
92
161
|
}
|
|
93
162
|
else {
|
|
@@ -100,39 +169,24 @@ export class InMemoryRoutePlanner {
|
|
|
100
169
|
account,
|
|
101
170
|
target: { ...affinity.target, requestedModel: input.requestedModel, reason: 'sticky' },
|
|
102
171
|
};
|
|
103
|
-
candidates = this.
|
|
104
|
-
.filter((candidate) => !this.health.isSuppressed(candidate))
|
|
105
|
-
.slice(0, policy.maxAttempts);
|
|
172
|
+
candidates = this.visibleCandidates([sticky, ...sameAccount, ...rotated], inQuote, policy);
|
|
106
173
|
}
|
|
107
174
|
}
|
|
108
175
|
else {
|
|
109
|
-
candidates = this.
|
|
110
|
-
.filter((candidate) => !this.health.isSuppressed(candidate))
|
|
111
|
-
.slice(0, policy.maxAttempts);
|
|
176
|
+
candidates = this.visibleCandidates(candidates, inQuote, policy);
|
|
112
177
|
}
|
|
113
178
|
if (candidates.length === 0) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
// The model-derived resolution ignores `explicit`, so an explicit
|
|
118
|
-
// transport restriction wins over it here.
|
|
119
|
-
const explicitTransport = input.explicit?.transportProviderId;
|
|
120
|
-
const resolution = resolveRequestedTargets(input);
|
|
121
|
-
const transports = new Set(explicitTransport
|
|
122
|
-
? [explicitTransport]
|
|
123
|
-
: resolution.kind === 'known'
|
|
124
|
-
? resolution.targets
|
|
125
|
-
.map((target) => target.transportProviderId)
|
|
126
|
-
.filter((transport) => typeof transport === 'string')
|
|
127
|
-
: []);
|
|
128
|
-
const diagnostics = await this.options.directory.listDiagnostics?.(subject) ?? [];
|
|
129
|
-
const diagnostic = diagnostics.find((entry) => transports.has(entry.transportProviderId));
|
|
130
|
-
throw new RoutePlanError(diagnostic?.message ?? 'No eligible route', 'no-route', diagnostic);
|
|
179
|
+
const matching = await this.matchingAvailabilityDiagnostics(subject, input);
|
|
180
|
+
const diagnostic = matching[0];
|
|
181
|
+
throw new RoutePlanError(diagnostic?.message ?? 'No eligible route', 'no-route', diagnostic, matching.length > 0 ? matching : undefined);
|
|
131
182
|
}
|
|
132
183
|
const planRef = this.ids.next('plan');
|
|
133
184
|
const storedCandidates = candidates.map((candidate) => ({
|
|
134
185
|
...candidate, candidateRef: this.ids.next('candidate'),
|
|
135
186
|
}));
|
|
187
|
+
// An auto-dropped pin counts as no affinity from here on: the stored
|
|
188
|
+
// plan carries no revision and round-robin treats this as a fresh plan.
|
|
189
|
+
const effectiveAffinity = affinityDropped ? undefined : affinity;
|
|
136
190
|
const plan = {
|
|
137
191
|
planRef,
|
|
138
192
|
expiresAt: new Date(this.clock.now().getTime() + this.planTtlMs).toISOString(),
|
|
@@ -147,13 +201,13 @@ export class InMemoryRoutePlanner {
|
|
|
147
201
|
actualModelId: candidate.target.modelId,
|
|
148
202
|
actualTransportProviderId: candidate.target.transportProviderId,
|
|
149
203
|
reason: candidate.target.reason,
|
|
150
|
-
cacheContinuityRisk: Boolean(
|
|
204
|
+
cacheContinuityRisk: Boolean(effectiveAffinity && effectiveAffinity.accountRef !== candidate.account.accountRef),
|
|
151
205
|
})),
|
|
152
206
|
};
|
|
153
207
|
this.plans.set(planRef, {
|
|
154
208
|
plan, subjectRef: subjectRef(subject), candidates: storedCandidates, policy,
|
|
155
|
-
hadAffinity: Boolean(
|
|
156
|
-
...(
|
|
209
|
+
hadAffinity: Boolean(effectiveAffinity),
|
|
210
|
+
...(effectiveAffinity ? { affinityRevision: effectiveAffinity.revision } : {}),
|
|
157
211
|
...(profile ? {
|
|
158
212
|
policyProfileName: profile.name,
|
|
159
213
|
policyProfileRevision: profile.revision,
|
|
@@ -162,9 +216,9 @@ export class InMemoryRoutePlanner {
|
|
|
162
216
|
? { affinityRef: affinityRef(subject, input.affinityKey, input.workspaceId) }
|
|
163
217
|
: {}),
|
|
164
218
|
claimedAttempts: new Set(),
|
|
165
|
-
...(strategy.kind === 'round-robin' && !
|
|
219
|
+
...(strategy.kind === 'round-robin' && !effectiveAffinity ? { roundRobinKey } : {}),
|
|
166
220
|
});
|
|
167
|
-
if (strategy.kind === 'round-robin' && !
|
|
221
|
+
if (strategy.kind === 'round-robin' && !effectiveAffinity) {
|
|
168
222
|
const state = this.roundRobin.get(roundRobinKey) ?? {
|
|
169
223
|
committedOffset: 0,
|
|
170
224
|
reservations: new Set(),
|
|
@@ -176,7 +230,11 @@ export class InMemoryRoutePlanner {
|
|
|
176
230
|
return plan;
|
|
177
231
|
}
|
|
178
232
|
quote(input) {
|
|
179
|
-
return quoteRoute(input, {
|
|
233
|
+
return quoteRoute(input, {
|
|
234
|
+
council: this.council,
|
|
235
|
+
profiles: this.profiles,
|
|
236
|
+
nativeMessagesModelIds: this.nativeMessagesModelIds,
|
|
237
|
+
});
|
|
180
238
|
}
|
|
181
239
|
assertQuoteMatches(input, quote, profileName, profileRevision) {
|
|
182
240
|
const { quoteRef, ...body } = quote;
|
|
@@ -195,6 +253,26 @@ export class InMemoryRoutePlanner {
|
|
|
195
253
|
}
|
|
196
254
|
return quoted;
|
|
197
255
|
}
|
|
256
|
+
/**
|
|
257
|
+
* Health-filter candidates. Suppression-based failover stands, except for a
|
|
258
|
+
* lone quoted candidate suppressed only by locally uncommitted failures
|
|
259
|
+
* (no upstream output observed before failing): as an availability policy
|
|
260
|
+
* it degrades instead of starving the only route. This records local
|
|
261
|
+
* observation only — the provider may still have accepted the request
|
|
262
|
+
* before the connection failed. Committed failures stay strict, as does
|
|
263
|
+
* multi-route suppression, and provider rate limits keep their
|
|
264
|
+
* Retry-After window even on a lone route.
|
|
265
|
+
*/
|
|
266
|
+
visibleCandidates(candidates, inQuote, policy) {
|
|
267
|
+
const quoted = this.keepQuoted(candidates, inQuote);
|
|
268
|
+
const visible = quoted.filter((candidate) => !this.health.isSuppressed(candidate));
|
|
269
|
+
if (visible.length > 0)
|
|
270
|
+
return visible.slice(0, policy.maxAttempts);
|
|
271
|
+
const [only] = quoted;
|
|
272
|
+
if (quoted.length === 1 && only && this.health.suppressedDegradable(only))
|
|
273
|
+
return quoted;
|
|
274
|
+
return [];
|
|
275
|
+
}
|
|
198
276
|
async prepareAttempt(subject, planRef, candidateRef, requestId, attemptIndex) {
|
|
199
277
|
const stored = this.plans.get(planRef);
|
|
200
278
|
if (stored?.plan.councilRevision !== this.council.revision) {
|
|
@@ -211,6 +289,7 @@ export class InMemoryRoutePlanner {
|
|
|
211
289
|
return await prepareStoredRouteAttempt({
|
|
212
290
|
stored, subject, planRef, candidateRef, requestId, attemptIndex,
|
|
213
291
|
directory: this.options.directory, clock: this.clock,
|
|
292
|
+
isNativeTarget: (target) => isNativeMessagesTarget(target, this.nativeMessagesModelIds),
|
|
214
293
|
onOutcome: (activePlan, candidate, failure) => {
|
|
215
294
|
this.health.record(candidate, failure, activePlan.policy);
|
|
216
295
|
const terminalCandidate = activePlan.candidates.at(-1) === candidate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-planner.js","sourceRoot":"","sources":["../src/route-planner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"route-planner.js","sourceRoot":"","sources":["../src/route-planner.ts"],"names":[],"mappings":"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"}
|