agent-nuvira 3.4.0 → 3.5.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 +13 -13
- package/dist/agent-sdk/src/register.d.ts +23 -7
- package/dist/agent-sdk/src/register.d.ts.map +1 -1
- package/dist/agent-sdk/src/register.js +159 -5
- package/dist/agent-sdk/src/register.js.map +1 -1
- package/dist/agent-sdk/src/scaffold.d.ts +1 -1
- package/dist/agent-sdk/src/scaffold.js +1 -1
- package/dist/cli/agent.d.ts.map +1 -1
- package/dist/cli/agent.js +16 -3
- package/dist/cli/agent.js.map +1 -1
- package/dist/cli/chat.d.ts +202 -6
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +805 -34
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/config.d.ts +10 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +39 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +18 -3
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/duties.d.ts +11 -0
- package/dist/cli/duties.d.ts.map +1 -1
- package/dist/cli/duties.js +31 -0
- package/dist/cli/duties.js.map +1 -1
- package/dist/cli/mcp.d.ts +50 -0
- package/dist/cli/mcp.d.ts.map +1 -1
- package/dist/cli/mcp.js +496 -49
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/memory.d.ts.map +1 -1
- package/dist/cli/memory.js +3 -2
- package/dist/cli/memory.js.map +1 -1
- package/dist/cli/models.d.ts.map +1 -1
- package/dist/cli/models.js +55 -0
- package/dist/cli/models.js.map +1 -1
- package/dist/cli/plugins.d.ts.map +1 -1
- package/dist/cli/plugins.js +26 -9
- package/dist/cli/plugins.js.map +1 -1
- package/dist/cli/sdk.d.ts.map +1 -1
- package/dist/cli/sdk.js +10 -3
- package/dist/cli/sdk.js.map +1 -1
- package/dist/cli/tool-install-prompt.d.ts.map +1 -1
- package/dist/cli/tool-install-prompt.js +23 -1
- package/dist/cli/tool-install-prompt.js.map +1 -1
- package/dist/cli/tools.d.ts +16 -0
- package/dist/cli/tools.d.ts.map +1 -1
- package/dist/cli/tools.js +101 -1
- package/dist/cli/tools.js.map +1 -1
- package/dist/config/manager.d.ts +6 -0
- package/dist/config/manager.d.ts.map +1 -1
- package/dist/config/manager.js +66 -0
- package/dist/config/manager.js.map +1 -1
- package/dist/config/types.d.ts +18 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/learning/auto-router.d.ts +28 -0
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +84 -5
- package/dist/learning/auto-router.js.map +1 -1
- package/dist/learning/duty-lease.d.ts +163 -0
- package/dist/learning/duty-lease.d.ts.map +1 -0
- package/dist/learning/duty-lease.js +301 -0
- package/dist/learning/duty-lease.js.map +1 -0
- package/dist/learning/exhaustion-report.d.ts +12 -0
- package/dist/learning/exhaustion-report.d.ts.map +1 -1
- package/dist/learning/exhaustion-report.js +3 -1
- package/dist/learning/exhaustion-report.js.map +1 -1
- package/dist/learning/model-capability.d.ts +33 -0
- package/dist/learning/model-capability.d.ts.map +1 -1
- package/dist/learning/model-capability.js +51 -0
- package/dist/learning/model-capability.js.map +1 -1
- package/dist/learning/model-first-router.d.ts +21 -22
- package/dist/learning/model-first-router.d.ts.map +1 -1
- package/dist/learning/model-first-router.js +61 -54
- package/dist/learning/model-first-router.js.map +1 -1
- package/dist/learning/model-selection.d.ts +27 -0
- package/dist/learning/model-selection.d.ts.map +1 -1
- package/dist/learning/model-selection.js +46 -0
- package/dist/learning/model-selection.js.map +1 -1
- package/dist/learning/model-warmup.d.ts +92 -0
- package/dist/learning/model-warmup.d.ts.map +1 -1
- package/dist/learning/model-warmup.js +137 -2
- package/dist/learning/model-warmup.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +1 -1
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/resilient-call.d.ts +15 -1
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +38 -22
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/learning/retry-patience.d.ts +139 -0
- package/dist/learning/retry-patience.d.ts.map +1 -0
- package/dist/learning/retry-patience.js +169 -0
- package/dist/learning/retry-patience.js.map +1 -0
- package/dist/learning/working-state.d.ts +7 -0
- package/dist/learning/working-state.d.ts.map +1 -1
- package/dist/learning/working-state.js +23 -1
- package/dist/learning/working-state.js.map +1 -1
- package/dist/mcp/catalog.d.ts +206 -26
- package/dist/mcp/catalog.d.ts.map +1 -1
- package/dist/mcp/catalog.js +664 -52
- package/dist/mcp/catalog.js.map +1 -1
- package/dist/mcp/client.d.ts +6 -0
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +35 -5
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/custom-server.d.ts +120 -0
- package/dist/mcp/custom-server.d.ts.map +1 -0
- package/dist/mcp/custom-server.js +330 -0
- package/dist/mcp/custom-server.js.map +1 -0
- package/dist/mcp/manager.d.ts +9 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +15 -2
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/mcp-oauth.d.ts +28 -0
- package/dist/mcp/mcp-oauth.d.ts.map +1 -1
- package/dist/mcp/mcp-oauth.js +63 -8
- package/dist/mcp/mcp-oauth.js.map +1 -1
- package/dist/mcp/oauth-authorize.d.ts +51 -0
- package/dist/mcp/oauth-authorize.d.ts.map +1 -0
- package/dist/mcp/oauth-authorize.js +133 -0
- package/dist/mcp/oauth-authorize.js.map +1 -0
- package/dist/mcp/oauth-connect.d.ts +53 -0
- package/dist/mcp/oauth-connect.d.ts.map +1 -0
- package/dist/mcp/oauth-connect.js +103 -0
- package/dist/mcp/oauth-connect.js.map +1 -0
- package/dist/mcp/pin-verifier.d.ts +44 -0
- package/dist/mcp/pin-verifier.d.ts.map +1 -0
- package/dist/mcp/pin-verifier.js +102 -0
- package/dist/mcp/pin-verifier.js.map +1 -0
- package/dist/mcp/prereqs.d.ts +145 -0
- package/dist/mcp/prereqs.d.ts.map +1 -0
- package/dist/mcp/prereqs.js +245 -0
- package/dist/mcp/prereqs.js.map +1 -0
- package/dist/mcp/runtime.d.ts +59 -0
- package/dist/mcp/runtime.d.ts.map +1 -0
- package/dist/mcp/runtime.js +77 -0
- package/dist/mcp/runtime.js.map +1 -0
- package/dist/mcp/server.d.ts +21 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +29 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/settings.d.ts +164 -0
- package/dist/mcp/settings.d.ts.map +1 -0
- package/dist/mcp/settings.js +358 -0
- package/dist/mcp/settings.js.map +1 -0
- package/dist/mcp/types.d.ts +62 -0
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/mcp/types.js.map +1 -1
- package/dist/memory/vector-store.d.ts +12 -0
- package/dist/memory/vector-store.d.ts.map +1 -1
- package/dist/memory/vector-store.js +23 -0
- package/dist/memory/vector-store.js.map +1 -1
- package/dist/plugins/agent-plugin.d.ts +35 -0
- package/dist/plugins/agent-plugin.d.ts.map +1 -1
- package/dist/plugins/agent-plugin.js +142 -24
- package/dist/plugins/agent-plugin.js.map +1 -1
- package/dist/sandbox/manager.d.ts +12 -0
- package/dist/sandbox/manager.d.ts.map +1 -1
- package/dist/sandbox/manager.js +43 -2
- package/dist/sandbox/manager.js.map +1 -1
- package/dist/tools/modality/browser.d.ts +39 -3
- package/dist/tools/modality/browser.d.ts.map +1 -1
- package/dist/tools/modality/browser.js +113 -16
- package/dist/tools/modality/browser.js.map +1 -1
- package/dist/tools/optional-deps.d.ts +48 -0
- package/dist/tools/optional-deps.d.ts.map +1 -0
- package/dist/tools/optional-deps.js +42 -0
- package/dist/tools/optional-deps.js.map +1 -0
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +68 -11
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/remediation-ladder.d.ts.map +1 -1
- package/dist/tools/remediation-ladder.js +9 -1
- package/dist/tools/remediation-ladder.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +41 -3
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +317 -9
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/web-dashboard/chat-retry.d.ts +11 -1
- package/dist/web-dashboard/chat-retry.d.ts.map +1 -1
- package/dist/web-dashboard/chat-retry.js +18 -4
- package/dist/web-dashboard/chat-retry.js.map +1 -1
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +349 -2
- package/dist/web-dashboard/server.js.map +1 -1
- package/package.json +6 -2
- package/src/web-dashboard/public/assets/{index-DeD3L0kG.js → index-Bik91KJh.js} +115 -89
- package/src/web-dashboard/public/assets/index-Bik91KJh.js.map +1 -0
- package/src/web-dashboard/public/index.html +1 -1
- package/src/web-dashboard/public/assets/index-DeD3L0kG.js.map +0 -1
|
@@ -19,7 +19,15 @@ import { getModelRegistry } from './model-registry.js';
|
|
|
19
19
|
import { classifyPairEntitlement, orderByEntitlement } from './pair-entitlement.js';
|
|
20
20
|
import { getCatalogProvider, CATALOG_PROVIDER_IDS } from '../inference/provider-catalog.js';
|
|
21
21
|
import { isSmallTalk } from './hybrid-router.js';
|
|
22
|
-
import { hasCredentials,
|
|
22
|
+
import { hasCredentials, isPairPlausible } from './model-selection.js';
|
|
23
|
+
export { isPairPlausible };
|
|
24
|
+
// ONE capability taxonomy. The tier below used to be computed from this
|
|
25
|
+
// module's OWN `capabilityFit` score while every other decision (pinned
|
|
26
|
+
// handoffs, the local last resort, the router's band checks) used
|
|
27
|
+
// `model-capability` bands — two taxonomies, so the same pair could be
|
|
28
|
+
// `medium` on one path and `low` on another, which is how a 0.5B and a 120B
|
|
29
|
+
// ended up as "same tier".
|
|
30
|
+
import { capabilityClassOf, estimateModelCapability } from './model-capability.js';
|
|
23
31
|
import { isNonChatModel } from '../inference/model-catalog.js';
|
|
24
32
|
// ─── Task Analysis ──────────────────────────────────────────────────────────
|
|
25
33
|
/**
|
|
@@ -234,43 +242,12 @@ function scoreModelOnProvider(model, provider, entry, catalog, requirements, pro
|
|
|
234
242
|
};
|
|
235
243
|
}
|
|
236
244
|
/**
|
|
237
|
-
*
|
|
238
|
-
* model id
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
* spends a fallback slot, a round trip, and (as an "eligible model") credibility
|
|
243
|
-
* on a call that cannot succeed. Observed on disk: `gemini/qwen2.5:0.5b` and
|
|
244
|
-
* `groq/wire-stub-model` marked verified.
|
|
245
|
-
*
|
|
246
|
-
* Deliberately CONSERVATIVE — only two rules, both of which are decidable from
|
|
247
|
-
* the id alone:
|
|
248
|
-
*
|
|
249
|
-
* 1. An Ollama-style TAGGED id (`name:tag`) is a LOCAL runner's naming
|
|
250
|
-
* scheme. A hosted provider does not serve `qwen2.5:0.5b`; the `:tag` form
|
|
251
|
-
* belongs to the local-ops providers (see KEYLESS_PROVIDERS).
|
|
252
|
-
* 2. Stub/fixture ids (`wire-stub-model`, `test-…`, `…-stub`) come from test
|
|
253
|
-
* harnesses and must never be routed to.
|
|
254
|
-
*
|
|
255
|
-
* Anything needing a catalog to adjudicate (a vendor that does not serve a
|
|
256
|
-
* family) is NOT guessed at here: a wrong exclusion silently removes a working
|
|
257
|
-
* model, which is the more expensive mistake.
|
|
245
|
+
* `isPairPlausible` lives in `model-selection.ts` (re-exported above): that
|
|
246
|
+
* module is where a ranked model id actually reaches an adapter request
|
|
247
|
+
* (`resolveAdapterDefault`), so the filter has to sit on THAT ranking too — not
|
|
248
|
+
* only on this router's candidate list. See its doc for the measured case
|
|
249
|
+
* (trace-1791732980335-omkv62).
|
|
258
250
|
*/
|
|
259
|
-
export function isPairPlausible(provider, model) {
|
|
260
|
-
const id = (model ?? '').trim().toLowerCase();
|
|
261
|
-
if (!id)
|
|
262
|
-
return false;
|
|
263
|
-
// 2. Fixture/stub ids.
|
|
264
|
-
if (/^(wire-|test-|fixture-|stub-)/.test(id) || /-stub(-|$)|\.stub\./.test(id))
|
|
265
|
-
return false;
|
|
266
|
-
// 1. Ollama-style tags only on a local runner.
|
|
267
|
-
if (id.includes(':')) {
|
|
268
|
-
const localRunner = KEYLESS_PROVIDERS.includes(provider) || provider === 'ollama';
|
|
269
|
-
if (!localRunner)
|
|
270
|
-
return false;
|
|
271
|
-
}
|
|
272
|
-
return true;
|
|
273
|
-
}
|
|
274
251
|
/**
|
|
275
252
|
* Build the full model candidate list across all providers.
|
|
276
253
|
* This is the core of model-first routing: instead of scoring providers,
|
|
@@ -464,16 +441,41 @@ export function buildFailoverChain(bestCandidate, allCandidates) {
|
|
|
464
441
|
}
|
|
465
442
|
/**
|
|
466
443
|
* Classify a model into a capability tier.
|
|
444
|
+
*
|
|
445
|
+
* TWO AXES, and they are different questions:
|
|
446
|
+
* 1. WHERE the model runs — a keyless local runner (`local`, `lmstudio`,
|
|
447
|
+
* `vllm`) is the LAST resort whatever its size, so it keeps its own tier.
|
|
448
|
+
* 2. HOW MUCH it can do — `model-capability` bands, name-derived and
|
|
449
|
+
* deterministic, the SAME bands the pinned-handoff repair, the local
|
|
450
|
+
* last-resort pick and the router's capability floors already use.
|
|
451
|
+
*
|
|
452
|
+
* The band used to come from this module's own `capabilityFit` dimension, a
|
|
453
|
+
* task-relative score: a fast small model fits a trivial task well, so it read
|
|
454
|
+
* `high` HERE and `low` to everything else — two taxonomies for one fact, and
|
|
455
|
+
* the reason a 0.5B and a 120B could land in the same tier. `capabilityFit`
|
|
456
|
+
* still decides the candidate ORDER (it is the task fit); it no longer decides
|
|
457
|
+
* the BAND.
|
|
467
458
|
*/
|
|
468
459
|
export function classifyTier(candidate) {
|
|
469
460
|
if (candidate.provider === 'local' || candidate.provider === 'lmstudio' || candidate.provider === 'vllm') {
|
|
470
461
|
return 'local';
|
|
471
462
|
}
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
463
|
+
return capabilityClassOf(candidate.model);
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Order the candidates of ONE tier strongest-first, stable within equal
|
|
467
|
+
* capability (so the scorer's task fit still decides among equals).
|
|
468
|
+
*
|
|
469
|
+
* WHY, and why here: the tiers were ordered by the scorer, which is a HEALTH-
|
|
470
|
+
* AND-COST ranking, and a small model wins that ranking precisely because it is
|
|
471
|
+
* fast and cheap. Inside a tier that is the wrong question — the tier already
|
|
472
|
+
* said "these are equally suitable", so the strongest must go first. MEASURED
|
|
473
|
+
* (trace-1791879575576-x731yp): the LOCAL tier is where it bit, because a local
|
|
474
|
+
* tier holds every local model from a 0.5B to a 120B and nothing ranked them by
|
|
475
|
+
* size, so the agentic ask was answered by the weakest one on the machine.
|
|
476
|
+
*/
|
|
477
|
+
function strongestFirstInTier(candidates) {
|
|
478
|
+
return [...candidates].sort((a, b) => estimateModelCapability(b.model) - estimateModelCapability(a.model));
|
|
477
479
|
}
|
|
478
480
|
/**
|
|
479
481
|
* Check if a model candidate has available quota (not parked, not blocked).
|
|
@@ -530,11 +532,12 @@ export function buildTieredFailoverChain(bestCandidate, allCandidates) {
|
|
|
530
532
|
});
|
|
531
533
|
sameModelDifferentProvider.forEach(c => tried.add(`${c.provider}:${c.model}`));
|
|
532
534
|
}
|
|
533
|
-
// Phase 2: Same capability tier, different models (pre-check quota)
|
|
534
|
-
|
|
535
|
+
// Phase 2: Same capability tier, different models (pre-check quota).
|
|
536
|
+
// STRONGEST-FIRST within the tier — see `strongestFirstInTier`.
|
|
537
|
+
const sameTier = strongestFirstInTier(allCandidates.filter(c => classifyTier(c) === bestTier
|
|
535
538
|
&& c.model !== bestCandidate.model
|
|
536
539
|
&& !tried.has(`${c.provider}:${c.model}`)
|
|
537
|
-
&& isCandidateAvailable(c));
|
|
540
|
+
&& isCandidateAvailable(c)));
|
|
538
541
|
if (sameTier.length > 0) {
|
|
539
542
|
tiers.push({
|
|
540
543
|
phase: 'same-tier',
|
|
@@ -548,9 +551,9 @@ export function buildTieredFailoverChain(bestCandidate, allCandidates) {
|
|
|
548
551
|
: bestTier === 'medium' ? ['high']
|
|
549
552
|
: [];
|
|
550
553
|
for (const tier of higherTiers) {
|
|
551
|
-
const escalation = allCandidates.filter(c => classifyTier(c) === tier
|
|
554
|
+
const escalation = strongestFirstInTier(allCandidates.filter(c => classifyTier(c) === tier
|
|
552
555
|
&& !tried.has(`${c.provider}:${c.model}`)
|
|
553
|
-
&& isCandidateAvailable(c));
|
|
556
|
+
&& isCandidateAvailable(c)));
|
|
554
557
|
if (escalation.length > 0) {
|
|
555
558
|
tiers.push({
|
|
556
559
|
phase: 'escalate',
|
|
@@ -565,9 +568,9 @@ export function buildTieredFailoverChain(bestCandidate, allCandidates) {
|
|
|
565
568
|
: bestTier === 'medium' ? ['low']
|
|
566
569
|
: [];
|
|
567
570
|
for (const tier of lowerTiers) {
|
|
568
|
-
const deescalation = allCandidates.filter(c => classifyTier(c) === tier
|
|
571
|
+
const deescalation = strongestFirstInTier(allCandidates.filter(c => classifyTier(c) === tier
|
|
569
572
|
&& !tried.has(`${c.provider}:${c.model}`)
|
|
570
|
-
&& isCandidateAvailable(c));
|
|
573
|
+
&& isCandidateAvailable(c)));
|
|
571
574
|
if (deescalation.length > 0) {
|
|
572
575
|
tiers.push({
|
|
573
576
|
phase: 'de-escalate',
|
|
@@ -577,9 +580,13 @@ export function buildTieredFailoverChain(bestCandidate, allCandidates) {
|
|
|
577
580
|
deescalation.forEach(c => tried.add(`${c.provider}:${c.model}`));
|
|
578
581
|
}
|
|
579
582
|
}
|
|
580
|
-
// Phase 5: Local models (always available, last resort before neural)
|
|
581
|
-
|
|
582
|
-
|
|
583
|
+
// Phase 5: Local models (always available, last resort before neural).
|
|
584
|
+
// STRONGEST-FIRST is the whole point of this phase: the local tier is a
|
|
585
|
+
// single tier by necessity (keyless, no quota, no account), so without this
|
|
586
|
+
// the weakest model on the machine — the one that wins a health ranking for
|
|
587
|
+
// being fast — is what an agentic ask lands on.
|
|
588
|
+
const localModels = strongestFirstInTier(allCandidates.filter(c => classifyTier(c) === 'local'
|
|
589
|
+
&& !tried.has(`${c.provider}:${c.model}`)));
|
|
583
590
|
if (localModels.length > 0) {
|
|
584
591
|
tiers.push({
|
|
585
592
|
phase: 'local',
|
|
@@ -589,8 +596,8 @@ export function buildTieredFailoverChain(bestCandidate, allCandidates) {
|
|
|
589
596
|
localModels.forEach(c => tried.add(`${c.provider}:${c.model}`));
|
|
590
597
|
}
|
|
591
598
|
// Phase 6: Any remaining available models (last resort)
|
|
592
|
-
const remaining = allCandidates.filter(c => !tried.has(`${c.provider}:${c.model}`)
|
|
593
|
-
&& isCandidateAvailable(c));
|
|
599
|
+
const remaining = strongestFirstInTier(allCandidates.filter(c => !tried.has(`${c.provider}:${c.model}`)
|
|
600
|
+
&& isCandidateAvailable(c)));
|
|
594
601
|
if (remaining.length > 0) {
|
|
595
602
|
tiers.push({
|
|
596
603
|
phase: 'remaining',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-first-router.js","sourceRoot":"","sources":["../../src/learning/model-first-router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model-first-router.js","sourceRoot":"","sources":["../../src/learning/model-first-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,gBAAgB,EAA2B,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAwB,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,kBAAkB,EAA6B,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACvH,OAAO,EAAqB,WAAW,EAAwB,MAAM,oBAAoB,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAsB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,wEAAwE;AACxE,wEAAwE;AACxE,kEAAkE;AAClE,uEAAuE;AACvE,4EAA4E;AAC5E,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAuD/D,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,eAAuB,EACvB,UAA2B,EAC3B,oBAA6B;IAE7B,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;IAE3C,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAC5B,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,UAAU;QAAE,gBAAgB,GAAG,KAAK,CAAC;IACpF,IAAI,UAAU,KAAK,UAAU;QAAE,gBAAgB,GAAG,KAAK,CAAC;IAExD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACtF,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxF,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,aAAa,GAA8B,QAAQ,CAAC;IACxD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,QAAQ;QAAE,aAAa,GAAG,KAAK,CAAC;IAC/E,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,UAAU;QAAE,aAAa,GAAG,MAAM,CAAC;IAClF,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1F,aAAa,GAAG,MAAM,CAAC;IACzB,CAAC;IACD,2EAA2E;IAC3E,+EAA+E;IAC/E,wEAAwE;IACxE,qEAAqE;IACrE,IAAI,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,aAAa,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;WAC3F,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,QAAQ,CAAC;IAEzD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEhG,OAAO;QACL,gBAAgB;QAChB,aAAa;QACb,aAAa;QACb,YAAY;QACZ,oBAAoB,EAAE,oBAAoB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E;;GAEG;AACH,SAAS,oBAAoB,CAC3B,KAAa,EACb,QAAgB,EAChB,KAAqC,EACrC,OAAyC,EACzC,YAA8B,EAC9B,kBAA0B;IAE1B,oEAAoE;IACpE,gDAAgD;IAChD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,aAAa,GAAG,OAAO;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;QACzE,CAAC,CAAC,KAAK,CAAC;IAEV,+EAA+E;IAC/E,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,aAAa,GAAG,MAAM,CAAC;SAChG,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,aAAa,GAAG,KAAK,CAAC;SACzF,IAAI,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,aAAa,GAAG,MAAM,CAAC;SAC7G,IAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,aAAa,GAAG,KAAK,CAAC;SAC5G,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,aAAa,GAAG,KAAK,CAAC;SAC9D,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,aAAa,GAAG,MAAM,CAAC;SAC3G,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,aAAa,GAAG,OAAO,CAAC;SAC/F,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,aAAa,GAAG,MAAM,CAAC;SACjE,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,aAAa,GAAG,KAAK,CAAC;SACzG,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,aAAa,GAAG,MAAM,CAAC;SACxG,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,aAAa,GAAG,MAAM,CAAC;SAC3I,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,aAAa,GAAG,MAAM,CAAC;SAClE,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,aAAa,GAAG,KAAK,CAAC;SACjE,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,aAAa,GAAG,MAAM,CAAC;SAC7F,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,aAAa,GAAG,IAAI,CAAC;SACjH,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,aAAa,GAAG,IAAI,CAAC;IAC9F,+BAA+B;SAC1B,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,MAAM;QAAE,aAAa,GAAG,CAAC,CAAC;IAEnG,kDAAkD;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvE,6EAA6E;IAC7E,2EAA2E;IAC3E,wDAAwD;IACxD,IAAI,cAAc,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAE3J,sEAAsE;IACtE,IAAI,aAAa,GAAG,GAAG,CAAC;IACxB,wDAAwD;IACxD,EAAE;IACF,0EAA0E;IAC1E,6EAA6E;IAC7E,yEAAyE;IACzE,4EAA4E;IAC5E,+EAA+E;IAC/E,2EAA2E;IAC3E,6EAA6E;IAC7E,yEAAyE;IACzE,4DAA4D;IAC5D,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAErF,mDAAmD;IACnD,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;QAAE,aAAa,GAAG,MAAM,CAAC;SAClE,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,aAAa,GAAG,MAAM,CAAC;IAE1E,0EAA0E;IAC1E,MAAM,YAAY,GAAG,UAAU,IAAI,EAAE;WAChC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;WAC7D,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;WAChE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;WAC5D,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;WACnF,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAErG,+DAA+D;IAC/D,MAAM,aAAa,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;WACrD,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;WACxE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;WAC5D,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;WAChG,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;WAC7E,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEtE,gDAAgD;IAChD,MAAM,YAAY,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;WAClD,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;WAC1F,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;WAC3D,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IAE5G,IAAI,YAAY,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;QAC1C,IAAI,YAAY;YAAE,aAAa,GAAG,GAAG,CAAC;aACjC,IAAI,aAAa;YAAE,aAAa,GAAG,GAAG,CAAC;aACvC,IAAI,YAAY;YAAE,aAAa,GAAG,GAAG,CAAC;IAC7C,CAAC;SAAM,IAAI,YAAY,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QACnD,IAAI,YAAY;YAAE,aAAa,GAAG,GAAG,CAAC;aACjC,IAAI,aAAa;YAAE,aAAa,GAAG,GAAG,CAAC;aACvC,IAAI,YAAY;YAAE,aAAa,GAAG,GAAG,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,2CAA2C;QAC3C,IAAI,YAAY;YAAE,aAAa,GAAG,GAAG,CAAC;aACjC,IAAI,aAAa;YAAE,aAAa,GAAG,GAAG,CAAC;aACvC,IAAI,YAAY;YAAE,aAAa,GAAG,GAAG,CAAC,CAAC,WAAW;IACzD,CAAC;IAED,oEAAoE;IACpE,4EAA4E;IAC5E,qEAAqE;IACrE,8EAA8E;IAC9E,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,mEAAmE;IACnE,IAAI,KAAK,EAAE,MAAM,KAAK,aAAa;QAAE,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAElF,mCAAmC;IACnC,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU;IAC5B,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACvF,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1F,MAAM,GAAG,CAAC,YAAY,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,wBAAwB;IACxB,IAAI,iBAAiB,GAAG,GAAG,CAAC;IAC5B,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACxC,iBAAiB,GAAG,GAAG,CAAC,CAAC,YAAY;QACvC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC1C,iBAAiB,GAAG,GAAG,CAAC,CAAC,YAAY;QACvC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACzC,iBAAiB,GAAG,GAAG,CAAC,CAAC,mBAAmB;QAC9C,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,MAAM,aAAa,GAAG,kBAAkB,CAAC;IAEzC,yBAAyB;IACzB,IAAI,YAAY,GAAG,GAAG,CAAC;IACvB,IAAI,KAAK,EAAE,MAAM,KAAK,UAAU;QAAE,YAAY,GAAG,GAAG,CAAC;SAChD,IAAI,KAAK,EAAE,MAAM,KAAK,aAAa;QAAE,YAAY,GAAG,GAAG,CAAC;IAE7D,OAAO;QACL,aAAa;QACb,SAAS;QACT,aAAa;QACb,MAAM;QACN,iBAAiB;QACjB,aAAa;QACb,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,eAAuB,EACvB,UAA2B,EAC3B,aAA6B,EAC7B,gBAA2B;IAE3B,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,wBAAwB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAqB,EAAE,CAAC;IAExC,wCAAwC;IACxC,MAAM,SAAS,GAAG,gBAAgB,IAAI,oBAAoB,CAAC;IAE3D,KAAK,MAAM,UAAU,IAAI,SAAS,EAAE,CAAC;QACnC,4EAA4E;QAC5E,6EAA6E;QAC7E,0EAA0E;QAC1E,0EAA0E;QAC1E,6EAA6E;QAC7E,uEAAuE;QACvE,4EAA4E;QAC5E,uEAAuE;QACvE,0EAA0E;QAC1E,6EAA6E;QAC7E,yEAAyE;QACzE,mEAAmE;QACnE,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC;YAAE,SAAS;QAC1E,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,OAAO,EAAE,YAAY,CAAC,KAAK,IAAI,GAAG,CAAC;QAEzD,qDAAqD;QACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAE/D,4DAA4D;QAC5D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YACpD,SAAS,CAAC,IAAI,CAAC;gBACb,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,OAAO,CAAC,YAAY;gBAC3B,MAAM,EAAE,YAAqB;gBAC7B,cAAc,EAAE,CAAC;gBACjB,YAAY,EAAE,CAAC;gBACf,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC;gBACZ,gBAAgB,EAAE,CAAC;gBACnB,MAAM,EAAE,OAAgB;aACzB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,SAAS,EAAE,CAAC;YACnC,wEAAwE;YACxE,0EAA0E;YAC1E,0EAA0E;YAC1E,yEAAyE;YACzE,0EAA0E;YAC1E,iEAAiE;YACjE,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;gBAAE,SAAS;YAChE,2EAA2E;YAC3E,2EAA2E;YAC3E,6DAA6D;YAC7D,sBAAsB;YACtB,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC7D,sDAAsD;YACtD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAClD,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;mBAC5F,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;mBAC9F,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;mBAC3F,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;mBACxE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpE,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAG,oBAAoB,CAC/B,UAAU,CAAC,KAAK,EAChB,UAAU,EACV,UAAU,EACV,OAAO,EACP,YAAY,EACZ,aAAa,CACd,CAAC;YAEF,gDAAgD;YAChD,8EAA8E;YAC9E,4EAA4E;YAC5E,MAAM,YAAY,GAAG,YAAY,CAAC,aAAa,KAAK,MAAM,CAAC;YAC3D,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,KAAK,KAAK,CAAC;YACzD,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;gBACxF,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;gBAC9D,MAAM,EAAE,IAAI;gBACZ,iBAAiB,EAAE,IAAI;gBACvB,aAAa,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;gBACvD,YAAY,EAAE,IAAI;aACnB,CAAC;YAEF,MAAM,KAAK,GAAG,CACZ,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI;gBAC7B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;gBAC1C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB;gBAClD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;gBAC1C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CACzC,CAAC;YAEF,oBAAoB;YACpB,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,aAAa,GAAG,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/D,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,IAAI,CAAC,iBAAiB,IAAI,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5D,IAAI,IAAI,CAAC,aAAa,GAAG,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5D,IAAI,IAAI,CAAC,YAAY,KAAK,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAExD,UAAU,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,QAAQ,EAAE,UAAU;gBACpB,KAAK;gBACL,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,uBAAuB,CAAC,UAAU,CAAC;gBAChD,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC3D,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,OAAO,IAAI,SAAS;aAC9B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAE7C,+DAA+D;IAC/D,EAAE;IACF,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,OAAO,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,eAAuB,EACvB,UAA2B,EAC3B,aAA6B,EAC7B,gBAA2B;IAE3B,MAAM,UAAU,GAAG,oBAAoB,CAAC,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACtG,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CACjC,gBAA2B,EAC3B,aAA6B;IAE7B,IAAI,CAAC;QACH,2EAA2E;QAC3E,sEAAsE;QACtE,EAAE;QACF,6EAA6E;QAC7E,2EAA2E;QAC3E,uEAAuE;QACvE,2EAA2E;QAC3E,kBAAkB;QAClB,MAAM,UAAU,GAAG,oBAAoB,CAAC,cAAc,EAAE,UAA6B,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACxH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,UAAU;YAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,eAAuB,EACvB,UAA2B,EAC3B,IAAY,EAAE,EACd,aAA6B,EAC7B,gBAA2B;IAE3B,MAAM,UAAU,GAAG,oBAAoB,CAAC,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACtG,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,aAA6B,EAC7B,aAA+B;IAE/B,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,6CAA6C;IAC7C,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ,CAC9E,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAEzB,yCAAyC;IACzC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,CACrC,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;IAE/B,OAAO,KAAK,CAAC;AACf,CAAC;AASD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,YAAY,CAAC,SAAyB;IACpD,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAC,QAAQ,KAAK,UAAU,IAAI,SAAS,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACzG,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,oBAAoB,CAAC,UAAqC;IACjE,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,CAC9E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAyB;IAC5D,0CAA0C;IAC1C,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,SAAS,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO,KAAK,CAAC;QAChE,yEAAyE;QACzE,0EAA0E;QAC1E,4EAA4E;QAC5E,oEAAoE;QACpE,4EAA4E;QAC5E,4DAA4D;QAC5D,IAAI,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACzE,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa;YAAE,OAAO,KAAK,CAAC;IAC7D,CAAC;IACD,4EAA4E;IAC5E,IAAI,SAAS,CAAC,UAAU,CAAC,aAAa,KAAK,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChG,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAA6B,EAC7B,aAA+B;IAE/B,MAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAmB,EAAE,CAAC;IAEjC,kEAAkE;IAClE,MAAM,0BAA0B,GAAG,aAAa,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK;WAC/B,CAAC,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ;WACrC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;WACtC,oBAAoB,CAAC,CAAC,CAAC,CAC7B,CAAC;IACF,IAAI,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,eAAe,aAAa,CAAC,KAAK,yBAAyB;YACxE,UAAU,EAAE,0BAA0B;SACvC,CAAC,CAAC;QACH,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,qEAAqE;IACrE,gEAAgE;IAChE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,aAAa,CAAC,MAAM,CACxD,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ;WAC5B,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK;WAC/B,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;WACtC,oBAAoB,CAAC,CAAC,CAAC,CAC7B,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,yBAAyB,QAAQ,qBAAqB;YACnE,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,qDAAqD;IACrD,MAAM,WAAW,GAAqB,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC3E,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAClC,CAAC,CAAC,EAAE,CAAC;IACP,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAC1D,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI;eACxB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;eACtC,oBAAoB,CAAC,CAAC,CAAC,CAC7B,CAAC,CAAC;QACH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,eAAe,IAAI,OAAO;gBACvC,UAAU,EAAE,UAAU;aACvB,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,MAAM,UAAU,GAAqB,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC1E,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACjC,CAAC,CAAC,EAAE,CAAC;IACP,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAC5D,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI;eACxB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;eACtC,oBAAoB,CAAC,CAAC,CAAC,CAC7B,CAAC,CAAC;QACH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,kBAAkB,IAAI,iBAAiB;gBACpD,UAAU,EAAE,YAAY;aACzB,CAAC,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,wEAAwE;IACxE,4EAA4E;IAC5E,4EAA4E;IAC5E,gDAAgD;IAChD,MAAM,WAAW,GAAG,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAC3D,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO;WAC3B,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAC5C,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,gCAAgC;YAC7C,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;QACH,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,wDAAwD;IACxD,MAAM,SAAS,GAAG,oBAAoB,CAAC,aAAa,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;WACtC,oBAAoB,CAAC,CAAC,CAAC,CAC7B,CAAC,CAAC;IACH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,gCAAgC;YAC7C,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -52,6 +52,33 @@ export declare function hasCredentials(configManager: ConfigManager, provider: s
|
|
|
52
52
|
* failed outright.
|
|
53
53
|
*/
|
|
54
54
|
export declare const MODEL_HEALTH_CEILING = 0.6;
|
|
55
|
+
/**
|
|
56
|
+
* POOL HYGIENE: could this provider really serve this model id?
|
|
57
|
+
*
|
|
58
|
+
* MOVED HERE (from `model-first-router.ts`) because this module is the one that
|
|
59
|
+
* hands out model ids to the ADAPTERS — `resolveAdapterDefault` and
|
|
60
|
+
* `resolveWorkingModel`'s fast path both read `preferredModelsFor`, so a bogus
|
|
61
|
+
* row that survives this filter is not merely a bad ranking, it becomes the
|
|
62
|
+
* literal `model` of a real request.
|
|
63
|
+
*
|
|
64
|
+
* MEASURED (trace-1791732980335-omkv62, 2026-10-11). The provider-WIRE harness
|
|
65
|
+
* (`src/parity/wire-fixtures.ts`) left `local|wire-stub-model` in the real
|
|
66
|
+
* registry as `status: verified`, `source: telemetry`, errorRate 0. Telemetry
|
|
67
|
+
* outranks spot-check and errorRate 0 beats every real Ollama model, so it
|
|
68
|
+
* sorted FIRST for `local` — and when a pinned `deepseek` turn failed over, the
|
|
69
|
+
* walk resolved `local`'s model to `wire-stub-model` and sent it to a provider
|
|
70
|
+
* that cannot serve it. The turn burned its whole failover walk and reported a
|
|
71
|
+
* model shortage while healthy models sat in the pool.
|
|
72
|
+
*
|
|
73
|
+
* Deliberately CONSERVATIVE — only two rules, both decidable from the id alone:
|
|
74
|
+
* 1. Fixture/stub ids (`wire-…`, `test-…`, `…-stub`) come from test harnesses
|
|
75
|
+
* and must never be routed to.
|
|
76
|
+
* 2. An Ollama-style TAGGED id (`name:tag`) is a LOCAL runner's naming scheme;
|
|
77
|
+
* a hosted provider does not serve `qwen2.5:0.5b`.
|
|
78
|
+
* Anything needing a catalog to adjudicate is NOT guessed at: a wrong exclusion
|
|
79
|
+
* silently removes a working model, which is the more expensive mistake.
|
|
80
|
+
*/
|
|
81
|
+
export declare function isPairPlausible(provider: string, model: string): boolean;
|
|
55
82
|
/**
|
|
56
83
|
* Verified working models for a provider, ranked by learned health:
|
|
57
84
|
* strongest verification source first, then lowest error rate, then lowest
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-selection.d.ts","sourceRoot":"","sources":["../../src/learning/model-selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAU1D,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,qEAAsE,CAAC;AAErG;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAC;AAMnE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAA6B,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOtF;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAyDxC;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"model-selection.d.ts","sourceRoot":"","sources":["../../src/learning/model-selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAU1D,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,qEAAsE,CAAC;AAErG;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAC;AAMnE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAA6B,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOtF;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAyDxC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAWxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAwD7D;AAcD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAG,cAAc,EAAE,CAuErF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAE3E;AAED,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,iBAAiB,EAC1B,aAAa,CAAC,EAAE,aAAa,GAC5B;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA0BjD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxG;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAS1F;AAED,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAa5E"}
|
|
@@ -121,6 +121,47 @@ function definitivelyMissing(entry) {
|
|
|
121
121
|
text.includes('not found') ||
|
|
122
122
|
text.includes('no such model'));
|
|
123
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* POOL HYGIENE: could this provider really serve this model id?
|
|
126
|
+
*
|
|
127
|
+
* MOVED HERE (from `model-first-router.ts`) because this module is the one that
|
|
128
|
+
* hands out model ids to the ADAPTERS — `resolveAdapterDefault` and
|
|
129
|
+
* `resolveWorkingModel`'s fast path both read `preferredModelsFor`, so a bogus
|
|
130
|
+
* row that survives this filter is not merely a bad ranking, it becomes the
|
|
131
|
+
* literal `model` of a real request.
|
|
132
|
+
*
|
|
133
|
+
* MEASURED (trace-1791732980335-omkv62, 2026-10-11). The provider-WIRE harness
|
|
134
|
+
* (`src/parity/wire-fixtures.ts`) left `local|wire-stub-model` in the real
|
|
135
|
+
* registry as `status: verified`, `source: telemetry`, errorRate 0. Telemetry
|
|
136
|
+
* outranks spot-check and errorRate 0 beats every real Ollama model, so it
|
|
137
|
+
* sorted FIRST for `local` — and when a pinned `deepseek` turn failed over, the
|
|
138
|
+
* walk resolved `local`'s model to `wire-stub-model` and sent it to a provider
|
|
139
|
+
* that cannot serve it. The turn burned its whole failover walk and reported a
|
|
140
|
+
* model shortage while healthy models sat in the pool.
|
|
141
|
+
*
|
|
142
|
+
* Deliberately CONSERVATIVE — only two rules, both decidable from the id alone:
|
|
143
|
+
* 1. Fixture/stub ids (`wire-…`, `test-…`, `…-stub`) come from test harnesses
|
|
144
|
+
* and must never be routed to.
|
|
145
|
+
* 2. An Ollama-style TAGGED id (`name:tag`) is a LOCAL runner's naming scheme;
|
|
146
|
+
* a hosted provider does not serve `qwen2.5:0.5b`.
|
|
147
|
+
* Anything needing a catalog to adjudicate is NOT guessed at: a wrong exclusion
|
|
148
|
+
* silently removes a working model, which is the more expensive mistake.
|
|
149
|
+
*/
|
|
150
|
+
export function isPairPlausible(provider, model) {
|
|
151
|
+
const id = (model ?? '').trim().toLowerCase();
|
|
152
|
+
if (!id)
|
|
153
|
+
return false;
|
|
154
|
+
// 1. Fixture/stub ids.
|
|
155
|
+
if (/^(wire-|test-|fixture-|stub-)/.test(id) || /-stub(-|$)|\.stub\./.test(id))
|
|
156
|
+
return false;
|
|
157
|
+
// 2. Ollama-style tags only on a local runner.
|
|
158
|
+
if (id.includes(':')) {
|
|
159
|
+
const localRunner = KEYLESS_PROVIDERS.includes(provider) || provider === 'ollama';
|
|
160
|
+
if (!localRunner)
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
124
165
|
/**
|
|
125
166
|
* Verified working models for a provider, ranked by learned health:
|
|
126
167
|
* strongest verification source first, then lowest error rate, then lowest
|
|
@@ -153,6 +194,11 @@ export function preferredModelsFor(provider) {
|
|
|
153
194
|
// This is the read-side half of the cross-provider poisoning measured live
|
|
154
195
|
// on 2026-10-06 — see `definitivelyMissing`.
|
|
155
196
|
.filter((m) => !definitivelyMissing(registry.getEntry(provider, m)))
|
|
197
|
+
// Never rank a pair that CANNOT exist — a test fixture id, or an
|
|
198
|
+
// Ollama-tagged id on a hosted provider. A `verified` stub row would
|
|
199
|
+
// otherwise win the health ranking and become the literal model of the
|
|
200
|
+
// next real request (see `isPairPlausible`).
|
|
201
|
+
.filter((m) => isPairPlausible(provider, m))
|
|
156
202
|
.sort((a, b) => {
|
|
157
203
|
const ea = registry.getEntry(provider, a);
|
|
158
204
|
const eb = registry.getEntry(provider, b);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-selection.js","sourceRoot":"","sources":["../../src/learning/model-selection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"model-selection.js","sourceRoot":"","sources":["../../src/learning/model-selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
* stopWarmupDaemon();
|
|
26
26
|
*/
|
|
27
27
|
import { getModelRegistry } from './model-registry.js';
|
|
28
|
+
import { type DutyLeaseInfo } from './duty-lease.js';
|
|
28
29
|
import type { ConfigManager } from '../config/manager.js';
|
|
29
30
|
/**
|
|
30
31
|
* Every bound this module spends against a free tier, in one place and
|
|
@@ -52,6 +53,33 @@ export interface WarmupConfig {
|
|
|
52
53
|
hotWindowMs: number;
|
|
53
54
|
/** Models used within this window are "warm" (ms). */
|
|
54
55
|
warmWindowMs: number;
|
|
56
|
+
/**
|
|
57
|
+
* Max VERIFIED, in-pool models re-spot-checked per cycle to keep the pool
|
|
58
|
+
* FRESH. Separate from `hotPerCycle` because the two halves spend on
|
|
59
|
+
* different things: `hotPerCycle` keeps in-use models warm, this one stops
|
|
60
|
+
* the routable pool from ageing out.
|
|
61
|
+
*/
|
|
62
|
+
poolRefreshPerCycle: number;
|
|
63
|
+
/**
|
|
64
|
+
* How long a VERIFIED model may go without re-verification (ms).
|
|
65
|
+
*
|
|
66
|
+
* WHY HOURS, NOT THE 7-DAY RULE. The registry retires a model nothing
|
|
67
|
+
* re-verifies, and NOTHING was re-verifying a verified one: the exploration
|
|
68
|
+
* half selects `status === 'unverified'` rows only, so a model that had been
|
|
69
|
+
* verified once could only age — the measured pool showed verified entries at
|
|
70
|
+
* 142.8h and shrinking, while routing kept serving from a pool that was
|
|
71
|
+
* quietly expiring. Freshness IS a routing input (health ranking reads
|
|
72
|
+
* `lastVerifiedAt`, latency and errorRate), so a stale pool is a routing
|
|
73
|
+
* signal that stops describing reality.
|
|
74
|
+
*
|
|
75
|
+
* WHY THIS STAYS BOUNDED. Only VERIFIED rows are eligible (the pool the
|
|
76
|
+
* router would actually serve — never the hundreds of catalog entries), only
|
|
77
|
+
* `poolRefreshPerCycle` of them per cycle, parked rows are skipped (a park is
|
|
78
|
+
* a rest, not staleness), and a 1-token spot-check per model every 12h is a
|
|
79
|
+
* few hundred tokens a day for a pool of ~12 — not a catalog-wide sweep,
|
|
80
|
+
* which on free tiers is where RPM/TPM limits would turn warmup into 429s.
|
|
81
|
+
*/
|
|
82
|
+
poolStalenessMs: number;
|
|
55
83
|
}
|
|
56
84
|
/**
|
|
57
85
|
* Resolve the sweep's bounds (env overrides → defaults).
|
|
@@ -86,6 +114,8 @@ export interface WarmupCycleResult {
|
|
|
86
114
|
warmed: number;
|
|
87
115
|
/** NEVER-VERIFIED models spot-checked to grow the routing pool. */
|
|
88
116
|
explored: number;
|
|
117
|
+
/** STALE, verified in-pool models re-spot-checked to keep the pool fresh. */
|
|
118
|
+
poolRefreshed: number;
|
|
89
119
|
/** Spot-checks of either kind that came back `verified`. */
|
|
90
120
|
verified: number;
|
|
91
121
|
/** Hot candidates the per-cycle cap left for the next cycle. */
|
|
@@ -96,6 +126,18 @@ export interface WarmupCycleResult {
|
|
|
96
126
|
* did noticeably more network work than its neighbours.
|
|
97
127
|
*/
|
|
98
128
|
catalogRefreshed: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* False when a cycle was REFUSED because another process holds the warmup
|
|
131
|
+
* duty lease (see `duty-lease.ts`) — every other counter is zero then.
|
|
132
|
+
*
|
|
133
|
+
* Reported rather than silent because it is the one outcome that looks
|
|
134
|
+
* identical to "there was nothing to do", and the two call for opposite
|
|
135
|
+
* responses: one is good news, the other means this process will never do the
|
|
136
|
+
* sweep on its own.
|
|
137
|
+
*/
|
|
138
|
+
ran: boolean;
|
|
139
|
+
/** Who held the lease, when `ran` is false. Diagnostics only. */
|
|
140
|
+
leaseHeldBy?: DutyLeaseInfo;
|
|
99
141
|
}
|
|
100
142
|
/** Injectable seams for tests — the real spot-check talks to a provider. */
|
|
101
143
|
export interface WarmupDeps {
|
|
@@ -123,6 +165,29 @@ export interface WarmupDeps {
|
|
|
123
165
|
* spend its whole budget on something that cannot answer.
|
|
124
166
|
*/
|
|
125
167
|
export declare function selectExplorationCandidates(registry: ReturnType<typeof getModelRegistry>, configManager: ConfigManager, now: number, limit: number): WarmupCandidate[];
|
|
168
|
+
/**
|
|
169
|
+
* Pick VERIFIED, in-pool models that have gone STALE, oldest verification
|
|
170
|
+
* first.
|
|
171
|
+
*
|
|
172
|
+
* This is the half the module was missing: exploration (`status ===
|
|
173
|
+
* 'unverified'`) grows the pool, hot records keep THIS process's models warm,
|
|
174
|
+
* and nothing refreshed a verified model that stopped being used — so a pool
|
|
175
|
+
* model aged toward the registry's 7-day retirement and, because the health
|
|
176
|
+
* ranking reads `lastVerifiedAt`, routing kept ranking it on evidence that was
|
|
177
|
+
* no longer true.
|
|
178
|
+
*
|
|
179
|
+
* Deliberately narrow:
|
|
180
|
+
* - VERIFIED rows only. An `unverified` row belongs to exploration, and an
|
|
181
|
+
* `unavailable` one is not stale — it is broken, and re-probing it is
|
|
182
|
+
* exploration's job once it is re-listed.
|
|
183
|
+
* - Unservable providers are excluded, so a cycle never spends its budget on
|
|
184
|
+
* a provider with no credentials.
|
|
185
|
+
* - Quota-parked rows are skipped: a park is a rest with a known end, and
|
|
186
|
+
* re-probing it would be exactly the extra traffic the park prevents.
|
|
187
|
+
* - The exploration throttle still applies per model, so this can never
|
|
188
|
+
* re-probe the same model twice in one `exploreThrottleMs` window.
|
|
189
|
+
*/
|
|
190
|
+
export declare function selectPoolRefreshCandidates(registry: ReturnType<typeof getModelRegistry>, configManager: ConfigManager, now: number, limit: number): WarmupCandidate[];
|
|
126
191
|
/**
|
|
127
192
|
* Run one warmup cycle: keep hot models warm, and grow the verified pool.
|
|
128
193
|
*
|
|
@@ -132,6 +197,33 @@ export declare function selectExplorationCandidates(registry: ReturnType<typeof
|
|
|
132
197
|
* a fresh process (the old `if (records.length === 0) return;` made the first
|
|
133
198
|
* cycle of every short-lived CLI run a no-op).
|
|
134
199
|
*/
|
|
200
|
+
/** The duty name every warmup caller contends on — one lease per machine. */
|
|
201
|
+
export declare const WARMUP_DUTY_LEASE = "model-warmup";
|
|
202
|
+
/**
|
|
203
|
+
* How long an un-renewed warmup lease may live before another process may steal
|
|
204
|
+
* it (ms).
|
|
205
|
+
*
|
|
206
|
+
* A live cycle re-news at half this window (see the loop below), so this is
|
|
207
|
+
* purely the CRASH-RECOVERY delay: how long a dead holder can keep the sweep
|
|
208
|
+
* switched off. It is also the floor under the interval — a lease that expired
|
|
209
|
+
* inside one cycle would let two processes sweep at once.
|
|
210
|
+
*/
|
|
211
|
+
export declare function warmupLeaseStaleMs(env?: NodeJS.ProcessEnv): number;
|
|
212
|
+
/**
|
|
213
|
+
* Run one warmup cycle UNDER the warmup duty lease, or refuse and say who holds
|
|
214
|
+
* it.
|
|
215
|
+
*
|
|
216
|
+
* WHY THE LEASE LIVES HERE AND NOT IN THE CALLERS. Every caller wants the same
|
|
217
|
+
* thing — "one sweep at a time" — and there are four of them (the daemon timer,
|
|
218
|
+
* the first-cycle kick at startup, `nuvira models warm`, and any future
|
|
219
|
+
* dashboard trigger). Putting the guard in each one means the fifth caller, or a
|
|
220
|
+
* refactor, silently re-introduces the waste. Putting it here means the sweep
|
|
221
|
+
* cannot be started un-leased at all.
|
|
222
|
+
*
|
|
223
|
+
* The work a cycle does is a real generation per candidate, on the user's free
|
|
224
|
+
* tier — which is why two processes sweeping the same candidate list is not
|
|
225
|
+
* merely redundant, it is the exact traffic that turns warmup into 429s.
|
|
226
|
+
*/
|
|
135
227
|
export declare function runWarmupCycle(configManager: ConfigManager, deps?: WarmupDeps): Promise<WarmupCycleResult>;
|
|
136
228
|
/**
|
|
137
229
|
* Get warmup statistics (for dashboard display).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-warmup.d.ts","sourceRoot":"","sources":["../../src/learning/model-warmup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,gBAAgB,EAA2B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"model-warmup.d.ts","sourceRoot":"","sources":["../../src/learning/model-warmup.ts"],"names":[],"mappings":"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"}
|