agent-nuvira 2.7.2 → 2.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/auth-api.d.ts +2 -0
  2. package/dist/auth-api.d.ts.map +1 -0
  3. package/dist/auth-api.js +61 -0
  4. package/dist/auth-api.js.map +1 -0
  5. package/dist/auth.test.d.ts +1 -0
  6. package/dist/auth.test.d.ts.map +1 -0
  7. package/dist/auth.test.js +3 -0
  8. package/dist/auth.test.js.map +1 -0
  9. package/dist/cli/chat.d.ts +11 -0
  10. package/dist/cli/chat.d.ts.map +1 -1
  11. package/dist/cli/chat.js +84 -14
  12. package/dist/cli/chat.js.map +1 -1
  13. package/dist/cli/loop-executor.d.ts.map +1 -1
  14. package/dist/cli/loop-executor.js +51 -8
  15. package/dist/cli/loop-executor.js.map +1 -1
  16. package/dist/gateway/registry.d.ts +18 -0
  17. package/dist/gateway/registry.d.ts.map +1 -1
  18. package/dist/gateway/registry.js +80 -11
  19. package/dist/gateway/registry.js.map +1 -1
  20. package/dist/inference/model-catalog.d.ts +8 -0
  21. package/dist/inference/model-catalog.d.ts.map +1 -1
  22. package/dist/inference/model-catalog.js +40 -0
  23. package/dist/inference/model-catalog.js.map +1 -1
  24. package/dist/inference/model-probe.d.ts +7 -0
  25. package/dist/inference/model-probe.d.ts.map +1 -1
  26. package/dist/inference/model-probe.js +25 -7
  27. package/dist/inference/model-probe.js.map +1 -1
  28. package/dist/learning/auto-router.d.ts +21 -0
  29. package/dist/learning/auto-router.d.ts.map +1 -1
  30. package/dist/learning/auto-router.js +192 -16
  31. package/dist/learning/auto-router.js.map +1 -1
  32. package/dist/learning/failure-bookkeeping.d.ts +22 -0
  33. package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
  34. package/dist/learning/failure-bookkeeping.js +55 -2
  35. package/dist/learning/failure-bookkeeping.js.map +1 -1
  36. package/dist/learning/model-first-router.d.ts.map +1 -1
  37. package/dist/learning/model-first-router.js +5 -11
  38. package/dist/learning/model-first-router.js.map +1 -1
  39. package/dist/learning/model-registry.d.ts +29 -0
  40. package/dist/learning/model-registry.d.ts.map +1 -1
  41. package/dist/learning/model-registry.js +129 -3
  42. package/dist/learning/model-registry.js.map +1 -1
  43. package/dist/learning/model-scoring.d.ts.map +1 -1
  44. package/dist/learning/model-scoring.js +6 -1
  45. package/dist/learning/model-scoring.js.map +1 -1
  46. package/dist/learning/model-selection.d.ts.map +1 -1
  47. package/dist/learning/model-selection.js +13 -0
  48. package/dist/learning/model-selection.js.map +1 -1
  49. package/dist/learning/provider-fallback.d.ts.map +1 -1
  50. package/dist/learning/provider-fallback.js +10 -0
  51. package/dist/learning/provider-fallback.js.map +1 -1
  52. package/dist/learning/quota-ledger.d.ts +64 -3
  53. package/dist/learning/quota-ledger.d.ts.map +1 -1
  54. package/dist/learning/quota-ledger.js +122 -9
  55. package/dist/learning/quota-ledger.js.map +1 -1
  56. package/dist/learning/resilient-call.d.ts +98 -0
  57. package/dist/learning/resilient-call.d.ts.map +1 -1
  58. package/dist/learning/resilient-call.js +205 -44
  59. package/dist/learning/resilient-call.js.map +1 -1
  60. package/dist/nlu/schema.d.ts +2 -2
  61. package/dist/routes/auth.d.ts +3 -0
  62. package/dist/routes/auth.d.ts.map +1 -0
  63. package/dist/routes/auth.js +41 -36
  64. package/dist/routes/auth.js.map +1 -0
  65. package/dist/web-dashboard/server.d.ts.map +1 -1
  66. package/dist/web-dashboard/server.js +4 -0
  67. package/dist/web-dashboard/server.js.map +1 -1
  68. package/package.json +1 -1
@@ -25,8 +25,31 @@
25
25
  * - Chat: replace buildToolCallModel's tryGenerate with resilient wrapper
26
26
  * - Tools: ctx.callLLM is already resilient (inherited from orchestrator)
27
27
  */
28
+ import { type AutoRouteResult } from './auto-router.js';
29
+ import { type ComplexityLevel } from './hybrid-router.js';
28
30
  import type { ConfigManager } from '../config/manager.js';
29
31
  import type { LLMCallFn } from '../agents/agent.js';
32
+ /** Failure classification for routing decisions. */
33
+ type FailureKind = 'auth' | 'rate-limit' | 'timeout' | 'network' | 'model-not-found' | 'unknown';
34
+ /** A candidate provider×model pair in the failover chain. */
35
+ export interface FailoverCandidate {
36
+ provider: string;
37
+ model: string;
38
+ score: number;
39
+ }
40
+ /**
41
+ * Options for {@link buildDeepFailoverPool}. The task text + complexity let the
42
+ * model-first tiered layer contribute candidates; without them the pool is the
43
+ * router chain alone (still deep, just not tier-aware).
44
+ */
45
+ export interface DeepFailoverOptions {
46
+ /** Task/goal text — feeds the model-first capability analysis. */
47
+ taskDescription?: string;
48
+ /** Pre-computed complexity (falls back to a plain analysis when omitted). */
49
+ complexity?: ComplexityLevel;
50
+ /** Config manager for the config-declared fallback providers. */
51
+ configManager?: ConfigManager;
52
+ }
30
53
  /** Configuration for the resilient proxy. */
31
54
  export interface ResilientCallOptions {
32
55
  /** Whether to persist failures to disk for cross-pipeline memory (default: true). */
@@ -42,6 +65,19 @@ export interface ResilientCallOptions {
42
65
  contextHintTokens?: number;
43
66
  };
44
67
  }
68
+ /**
69
+ * Cross-pipeline failures. Keys are EITHER a bare provider id (provider-wide
70
+ * exclusion — legacy shape, still honored) or `provider|model` (per-model
71
+ * exclusion). Model keys let a failure on one model survive a restart without
72
+ * taking the provider's other models with it.
73
+ */
74
+ interface PersistedFailures {
75
+ [key: string]: {
76
+ expiresAt: number;
77
+ kind: FailureKind;
78
+ recordedAt: number;
79
+ };
80
+ }
45
81
  /**
46
82
  * Create a resilient callLLM that auto-routes on ANY failure.
47
83
  *
@@ -53,4 +89,66 @@ export interface ResilientCallOptions {
53
89
  * 5. Tools/sub-agents use it transparently
54
90
  */
55
91
  export declare function createResilientCallLLM(configManager: ConfigManager, options: ResilientCallOptions): LLMCallFn;
92
+ /**
93
+ * Build the DEEP failover pool — the ONE candidate list every entry path walks.
94
+ *
95
+ * This used to live only here, which is why the orchestrator/tool/sub-agent path
96
+ * was the deepest walker and chat/execute reached strictly fewer models. It is
97
+ * now exported so chat, execute, the dashboard console and the gateway all walk
98
+ * the SAME pool:
99
+ *
100
+ * 1. the router's primary win
101
+ * 2. the model-first TIERED pool (same model on other providers → same tier →
102
+ * escalate → de-escalate → local; quota pre-checked, so every provider's
103
+ * siblings are reachable, not just its one pin)
104
+ * 3. the router's own chain — ranked alternates PLUS the reserve pool
105
+ * 4. any ranked provider the chain never resolved a model for
106
+ * 5. the config-declared fallback providers
107
+ *
108
+ * Sorted best-first. Callers layer their OWN exclusions on top (session/model
109
+ * cooldowns, registry blocks) — the pool itself is never filtered, so a caller
110
+ * that deliberately wants to reach a parked model (to let `resolveWorkingModel`
111
+ * repair it) still can.
112
+ */
113
+ export declare function buildDeepFailoverPool(decision: AutoRouteResult | null, opts?: DeepFailoverOptions): FailoverCandidate[];
114
+ /** A session-exclusion map in EITHER of the shapes used across the codebase. */
115
+ type ExclusionMap = Map<string, number | {
116
+ expiresAt: number;
117
+ }>;
118
+ /**
119
+ * Options for {@link createFailoverExclusionFilter}.
120
+ */
121
+ export interface FailoverExclusionOptions {
122
+ /** PROVIDER-wide session exclusions (dead key, unresolved model). */
123
+ sessionFailed?: ExclusionMap;
124
+ /** MODEL-scoped session exclusions, keyed `provider|model`. */
125
+ sessionFailedModels?: ExclusionMap;
126
+ /**
127
+ * Cross-pipeline failures recorded by ANY path (default: on). Pass `false` to
128
+ * keep the decision purely in-process.
129
+ */
130
+ crossPipelineMemory?: boolean;
131
+ /**
132
+ * Already-loaded persisted failures — avoids a second disk read when the
133
+ * caller has one. Ignored when `crossPipelineMemory` is false.
134
+ */
135
+ persistedFailures?: PersistedFailures;
136
+ /** Consult the registry's per-ENTRY usability (default: on). */
137
+ registryCheck?: boolean;
138
+ }
139
+ /**
140
+ * Build the ONE failover-exclusion predicate every entry path shares, so the
141
+ * deep walk can never drift between chat, execute, the gateway and the
142
+ * orchestrator.
143
+ *
144
+ * It answers exactly the question the orchestrator's walk used to answer alone:
145
+ * "should this provider×model be skipped?". Provider-wide AND model-scoped
146
+ * exclusions are honored separately — a 429 on one model rules out that model
147
+ * only, never its healthy siblings. Session maps are read LIVE at call time, so
148
+ * a failure recorded mid-walk takes effect on the very next candidate.
149
+ *
150
+ * Best-effort by construction: a registry failure never rules a candidate out.
151
+ */
152
+ export declare function createFailoverExclusionFilter(opts?: FailoverExclusionOptions): (provider: string, model?: string) => boolean;
153
+ export {};
56
154
  //# sourceMappingURL=resilient-call.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resilient-call.d.ts","sourceRoot":"","sources":["../../src/learning/resilient-call.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAYH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAcpD,6CAA6C;AAC7C,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAoID;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,oBAAoB,GAC5B,SAAS,CAqPX"}
1
+ {"version":3,"file":"resilient-call.d.ts","sourceRoot":"","sources":["../../src/learning/resilient-call.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,EAAiB,KAAK,eAAe,EAAuB,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAa7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD,oDAAoD;AACpD,KAAK,WAAW,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAEjG,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,iEAAiE;IACjE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,6CAA6C;AAC7C,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAgFD;;;;;GAKG;AACH,UAAU,iBAAiB;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAkED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,oBAAoB,GAC5B,SAAS,CA8PX;AA2DD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAChC,IAAI,GAAE,mBAAwB,GAC7B,iBAAiB,EAAE,CA0HrB;AAaD,gFAAgF;AAChF,KAAK,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,qEAAqE;IACrE,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gEAAgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,GAAE,wBAA6B,GAClC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAW/C"}
@@ -25,9 +25,16 @@
25
25
  * - Chat: replace buildToolCallModel's tryGenerate with resilient wrapper
26
26
  * - Tools: ctx.callLLM is already resilient (inherited from orchestrator)
27
27
  */
28
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
29
+ import { homedir } from 'node:os';
30
+ import { join } from 'node:path';
28
31
  import { getAutoRouter } from './auto-router.js';
29
32
  import { analyzeComplexity } from './hybrid-router.js';
30
33
  import { buildAutoResolveOptions } from './resolve-options.js';
34
+ import { buildModelCandidates, buildTieredFailoverChain } from './model-first-router.js';
35
+ import { recordModelUsage } from './model-warmup.js';
36
+ import { resolveWorkingModel } from '../inference/model-validator.js';
37
+ import { getDefaultModel } from '../inference/provider-catalog.js';
31
38
  import { getModelRegistry } from './model-registry.js';
32
39
  import { recordActionFailure } from './failure-bookkeeping.js';
33
40
  import { getProviderFallback, recordRegistrySuccess } from './provider-fallback.js';
@@ -35,6 +42,10 @@ import { ProviderFactory } from '../inference/factory.js';
35
42
  import { recordRoutingDecision } from './routing-history.js';
36
43
  import { EventNames, getEventBus } from '../observability/event-bus.js';
37
44
  import { logger } from '../utils/logger.js';
45
+ /** Key for a model-scoped exclusion / persisted failure. */
46
+ function modelKey(provider, model) {
47
+ return `${provider}|${model}`;
48
+ }
38
49
  // ─── Constants ──────────────────────────────────────────────────────────────
39
50
  /** How long a provider is excluded after an auth failure (whole session). */
40
51
  const AUTH_FAILURE_EXCLUSION_MS = Number.MAX_SAFE_INTEGER;
@@ -79,9 +90,6 @@ function exclusionDuration(kind) {
79
90
  }
80
91
  function loadPersistedFailures() {
81
92
  try {
82
- const { existsSync, readFileSync } = require('node:fs');
83
- const { join } = require('node:path');
84
- const { homedir } = require('node:os');
85
93
  const path = join(homedir(), '.nuvira', FAILURE_PERSIST_PATH);
86
94
  if (!existsSync(path))
87
95
  return {};
@@ -99,17 +107,21 @@ function loadPersistedFailures() {
99
107
  return {};
100
108
  }
101
109
  }
102
- function persistFailure(provider, kind) {
110
+ /**
111
+ * Persist a failure for cross-pipeline memory. When the failing MODEL is known
112
+ * the entry is keyed `provider|model` so a sibling model on the same provider
113
+ * is still routable in the next process; without a model it stays
114
+ * provider-wide (the legacy, honest answer).
115
+ */
116
+ function persistFailure(provider, kind, model) {
103
117
  try {
104
- const { existsSync, mkdirSync, writeFileSync, readFileSync } = require('node:fs');
105
- const { join } = require('node:path');
106
- const { homedir } = require('node:os');
107
118
  const dir = join(homedir(), '.nuvira');
108
119
  if (!existsSync(dir))
109
120
  mkdirSync(dir, { recursive: true });
110
121
  const path = join(dir, FAILURE_PERSIST_PATH);
111
122
  const existing = loadPersistedFailures();
112
- existing[provider] = {
123
+ const key = model && model !== 'default' ? modelKey(provider, model) : provider;
124
+ existing[key] = {
113
125
  expiresAt: Date.now() + exclusionDuration(kind),
114
126
  kind,
115
127
  recordedAt: Date.now(),
@@ -148,6 +160,7 @@ export function createResilientCallLLM(configManager, options) {
148
160
  const autoRouter = getAutoRouter();
149
161
  const state = {
150
162
  sessionFailed: new Map(),
163
+ sessionFailedModels: new Map(),
151
164
  currentAttempt: 0,
152
165
  currentProvider: '',
153
166
  currentModel: '',
@@ -163,7 +176,20 @@ export function createResilientCallLLM(configManager, options) {
163
176
  }
164
177
  // Build the ranked candidate list (all candidates, no cap)
165
178
  // Pass task description + complexity for model-first failover
166
- const allCandidates = buildCandidateList(initialDecision, state.sessionFailed, persistedFailures, options.task.description, options.task.complexity ? analyzeComplexity(options.task.description) : undefined, configManager);
179
+ const allCandidates = buildDeepFailoverPool(initialDecision, {
180
+ taskDescription: options.task.description,
181
+ complexity: options.task.complexity ? analyzeComplexity(options.task.description) : undefined,
182
+ configManager,
183
+ });
184
+ // ONE shared exclusion predicate (session provider-wide + session per-model +
185
+ // cross-pipeline persisted + registry per-entry). The session maps are read
186
+ // LIVE, so a failure recorded mid-walk takes effect on the next candidate.
187
+ const failoverFilter = createFailoverExclusionFilter({
188
+ sessionFailed: state.sessionFailed,
189
+ sessionFailedModels: state.sessionFailedModels,
190
+ crossPipelineMemory: options.crossPipelineMemory !== false,
191
+ persistedFailures,
192
+ });
167
193
  // The resilient callLLM
168
194
  const callLLM = async (prompt, inferenceOptions) => {
169
195
  if (state.exhausted) {
@@ -177,26 +203,16 @@ export function createResilientCallLLM(configManager, options) {
177
203
  ];
178
204
  let lastError = null;
179
205
  for (const candidate of candidatesToTry) {
180
- // Skip excluded providers
181
- if (isExcluded(candidate.provider, state.sessionFailed, persistedFailures)) {
206
+ // MODEL-scoped exclusions are honored before provider-wide ones, and the
207
+ // registry is checked per ENTRY: a failed or parked model rules out only
208
+ // itself, so the provider's other candidates in this list stay reachable
209
+ // (deep failover). Shared with chat/execute via the same factory.
210
+ if (failoverFilter(candidate.provider, candidate.model)) {
182
211
  if (options.verbose) {
183
- logger.debug(` ⏭️ ${candidate.provider} excluded — skipping`);
212
+ logger.debug(` ⏭️ ${candidate.provider}/${candidate.model} excluded (failure or registry) — skipping`);
184
213
  }
185
214
  continue;
186
215
  }
187
- // Skip registry-blocked providers
188
- try {
189
- const registry = getModelRegistry();
190
- if (registry.getBlockedProviders().includes(candidate.provider)) {
191
- if (options.verbose) {
192
- logger.debug(` ⏭️ ${candidate.provider} registry-blocked — skipping`);
193
- }
194
- continue;
195
- }
196
- }
197
- catch {
198
- // Best-effort — registry must never break routing.
199
- }
200
216
  // Resolve the provider adapter
201
217
  const adapter = resolveProviderAdapter(configManager, candidate.provider);
202
218
  if (!adapter) {
@@ -231,14 +247,12 @@ export function createResilientCallLLM(configManager, options) {
231
247
  try {
232
248
  const adapter = resolveProviderAdapter(configManager, candidate.provider);
233
249
  if (adapter) {
234
- const { resolveWorkingModel } = require('../inference/model-validator.js');
235
250
  resolvedModel = await resolveWorkingModel(adapter, candidate.provider, resolvedModel);
236
251
  }
237
252
  }
238
253
  catch {
239
254
  // Best-effort — fall through to the catalog's curated default
240
255
  try {
241
- const { getDefaultModel } = require('../inference/provider-catalog.js');
242
256
  resolvedModel = getDefaultModel(candidate.provider);
243
257
  }
244
258
  catch {
@@ -266,7 +280,6 @@ export function createResilientCallLLM(configManager, options) {
266
280
  }
267
281
  // Record usage for warmup daemon
268
282
  try {
269
- const { recordModelUsage } = require('./model-warmup.js');
270
283
  recordModelUsage(candidate.provider, resolvedModel);
271
284
  }
272
285
  catch {
@@ -293,13 +306,28 @@ export function createResilientCallLLM(configManager, options) {
293
306
  // Classify and record the failure
294
307
  const kind = classifyFailure(err);
295
308
  const duration = exclusionDuration(kind);
296
- state.sessionFailed.set(candidate.provider, {
297
- expiresAt: Date.now() + duration,
298
- kind,
299
- });
309
+ // PER-MODEL EXCLUSION when the failing model is known. Excluding the
310
+ // whole provider here is what stopped a provider's 2nd-best model from
311
+ // ever being tried: one 429 on model A took models B and C with it.
312
+ // Only a failure that indicts the whole provider (auth: the key is
313
+ // dead) still records a provider-wide exclusion.
314
+ const failedModel = candidate.model;
315
+ const modelScoped = kind !== 'auth' && !!failedModel && failedModel !== 'default';
316
+ if (modelScoped) {
317
+ state.sessionFailedModels.set(modelKey(candidate.provider, failedModel), {
318
+ expiresAt: Date.now() + duration,
319
+ kind,
320
+ });
321
+ }
322
+ else {
323
+ state.sessionFailed.set(candidate.provider, {
324
+ expiresAt: Date.now() + duration,
325
+ kind,
326
+ });
327
+ }
300
328
  // Persist for cross-pipeline memory
301
329
  if (options.crossPipelineMemory !== false) {
302
- persistFailure(candidate.provider, kind);
330
+ persistFailure(candidate.provider, kind, modelScoped ? failedModel : undefined);
303
331
  }
304
332
  // Record failure in shared bookkeeping
305
333
  try {
@@ -387,10 +415,31 @@ function resolveWithExclusions(autoRouter, configManager, task, sessionFailed, p
387
415
  return null;
388
416
  }
389
417
  }
390
- function buildCandidateList(decision, sessionFailed, persistedFailures, taskDescription, complexity, configManager) {
418
+ /**
419
+ * Build the DEEP failover pool — the ONE candidate list every entry path walks.
420
+ *
421
+ * This used to live only here, which is why the orchestrator/tool/sub-agent path
422
+ * was the deepest walker and chat/execute reached strictly fewer models. It is
423
+ * now exported so chat, execute, the dashboard console and the gateway all walk
424
+ * the SAME pool:
425
+ *
426
+ * 1. the router's primary win
427
+ * 2. the model-first TIERED pool (same model on other providers → same tier →
428
+ * escalate → de-escalate → local; quota pre-checked, so every provider's
429
+ * siblings are reachable, not just its one pin)
430
+ * 3. the router's own chain — ranked alternates PLUS the reserve pool
431
+ * 4. any ranked provider the chain never resolved a model for
432
+ * 5. the config-declared fallback providers
433
+ *
434
+ * Sorted best-first. Callers layer their OWN exclusions on top (session/model
435
+ * cooldowns, registry blocks) — the pool itself is never filtered, so a caller
436
+ * that deliberately wants to reach a parked model (to let `resolveWorkingModel`
437
+ * repair it) still can.
438
+ */
439
+ export function buildDeepFailoverPool(decision, opts = {}) {
391
440
  if (!decision)
392
441
  return [];
393
- const now = Date.now();
442
+ const { taskDescription, complexity, configManager } = opts;
394
443
  const candidates = [];
395
444
  // Primary candidate
396
445
  candidates.push({
@@ -406,10 +455,16 @@ function buildCandidateList(decision, sessionFailed, persistedFailures, taskDesc
406
455
  // 4. De-escalate to lower tier, cheaper models (pre-check quota)
407
456
  // 5. Local model (always available, last resort)
408
457
  // 6. Any remaining (last resort before neural response)
458
+ // Only the providers the ROUTER actually considered (winner + ranked) may
459
+ // contribute tiered candidates. `ranked` is the post-governance, credentialed
460
+ // set, so this keeps the pool to really-callable providers — without it the
461
+ // tiered layer returns the whole CATALOG and every walk pointlessly probes
462
+ // providers the user has no key for (measured: 23 pairs, 16 of them
463
+ // un-credentialed, before this restriction).
464
+ const allowedProviders = [...new Set([decision.provider, ...decision.ranked.map((r) => r.provider)])];
409
465
  try {
410
- const { buildModelCandidates, buildTieredFailoverChain } = require('./model-first-router.js');
411
466
  if (taskDescription && complexity) {
412
- const modelCandidates = buildModelCandidates(taskDescription, complexity, configManager);
467
+ const modelCandidates = buildModelCandidates(taskDescription, complexity, configManager, allowedProviders);
413
468
  const tieredChain = buildTieredFailoverChain({ model: decision.model, provider: decision.provider, dimensions: { capabilityFit: 0.5 } }, modelCandidates);
414
469
  // Flatten tiers into candidate list, maintaining tier order
415
470
  for (const tier of tieredChain) {
@@ -431,11 +486,36 @@ function buildCandidateList(decision, sessionFailed, persistedFailures, taskDesc
431
486
  catch {
432
487
  // Best-effort — tiered failover must never break routing
433
488
  }
434
- // All ranked candidates (NO cap)supplement with provider-ranked
489
+ // The router's OWN fallback chainranked alternates PLUS the RESERVE pool
490
+ // (credentialed providers the registry hasn't verified yet). Each entry now
491
+ // carries a REAL model, and there are several per provider (DEEP FAILOVER),
492
+ // so dedupe must be by provider × model — dedupe by provider alone is what
493
+ // silently dropped every alternate model and made the chain one-model-per-
494
+ // provider. The reserve is strictly last-resort: scored below every ranked
495
+ // candidate so it is only reached once the verified pool is exhausted.
496
+ for (const fb of decision.fallbackChain) {
497
+ const model = fb.model && fb.model !== 'default' ? fb.model : 'default';
498
+ // The primary candidate is already candidates[0].
499
+ if (fb.provider === decision.provider && model === decision.model)
500
+ continue;
501
+ const key = `${fb.provider}|${model}`;
502
+ if (candidates.some((c) => `${c.provider}|${c.model}` === key))
503
+ continue;
504
+ candidates.push({
505
+ provider: fb.provider,
506
+ model,
507
+ // Keep the chain's own order meaningful: the router already ranked these
508
+ // (primary picks before alternates, reserve last). A real model from the
509
+ // chain outranks a bare provider placeholder.
510
+ score: model === 'default' ? 0.05 : 0.5,
511
+ });
512
+ }
513
+ // Any ranked provider still missing entirely (no chain entry resolved a
514
+ // model) — added LAST with the placeholder; resolveModel fills it in at call
515
+ // time via the per-model path.
435
516
  for (const ranked of decision.ranked) {
436
517
  if (ranked.provider === decision.provider)
437
518
  continue;
438
- const key = `${ranked.provider}:default`;
439
519
  if (candidates.some(c => c.provider === ranked.provider))
440
520
  continue;
441
521
  candidates.push({
@@ -462,16 +542,97 @@ function buildCandidateList(decision, sessionFailed, persistedFailures, taskDesc
462
542
  }
463
543
  // Sort by score descending (best first)
464
544
  candidates.sort((a, b) => b.score - a.score);
545
+ // The router's own win MUST stay first. The score-sort above compares the
546
+ // router's COMPOSITE score against the tiered layer's raw capability scores,
547
+ // and a tiered candidate can outscore the winner — which would silently
548
+ // override the router for every caller that walks the pool in order (chat and
549
+ // execute do exactly that). The router's decision is authoritative; the pool
550
+ // only extends failover BEYOND it.
551
+ const primaryIdx = candidates.findIndex((c) => c.provider === decision.provider && c.model === decision.model);
552
+ if (primaryIdx > 0) {
553
+ const [primary] = candidates.splice(primaryIdx, 1);
554
+ candidates.unshift(primary);
555
+ }
465
556
  return candidates;
466
557
  }
467
- function isExcluded(provider, sessionFailed, persistedFailures) {
558
+ /**
559
+ * Expiry read from either a bare timestamp (`Map<string, number>`, the shape
560
+ * chat keeps) or a record with `expiresAt` (resilient-call's internal maps and
561
+ * the persisted-failure store). Duck-typing both shapes is what lets ONE
562
+ * predicate serve every entry path without an adapter allocation per call.
563
+ */
564
+ function expiryAt(value) {
565
+ if (value === undefined)
566
+ return 0;
567
+ return typeof value === 'number' ? value : value.expiresAt;
568
+ }
569
+ /**
570
+ * Build the ONE failover-exclusion predicate every entry path shares, so the
571
+ * deep walk can never drift between chat, execute, the gateway and the
572
+ * orchestrator.
573
+ *
574
+ * It answers exactly the question the orchestrator's walk used to answer alone:
575
+ * "should this provider×model be skipped?". Provider-wide AND model-scoped
576
+ * exclusions are honored separately — a 429 on one model rules out that model
577
+ * only, never its healthy siblings. Session maps are read LIVE at call time, so
578
+ * a failure recorded mid-walk takes effect on the very next candidate.
579
+ *
580
+ * Best-effort by construction: a registry failure never rules a candidate out.
581
+ */
582
+ export function createFailoverExclusionFilter(opts = {}) {
583
+ const persisted = opts.crossPipelineMemory === false
584
+ ? {}
585
+ : opts.persistedFailures ?? loadPersistedFailures();
586
+ const registryCheck = opts.registryCheck !== false;
587
+ return (provider, model) => {
588
+ if (isExcluded(provider, model, opts.sessionFailed, opts.sessionFailedModels, persisted)) {
589
+ return true;
590
+ }
591
+ return registryCheck ? isRegistryRuledOut(provider, model) : false;
592
+ };
593
+ }
594
+ function isExcluded(provider, model, sessionFailed, sessionFailedModels, persistedFailures) {
468
595
  const now = Date.now();
469
- const sessionExcl = sessionFailed.get(provider);
470
- if (sessionExcl && sessionExcl.expiresAt > now)
596
+ // Provider-wide (auth / unresolved model).
597
+ if (expiryAt(sessionFailed?.get(provider)) > now)
471
598
  return true;
472
- const persisted = persistedFailures[provider];
473
- if (persisted && persisted.expiresAt > now)
599
+ if (expiryAt(persistedFailures[provider]) > now)
474
600
  return true;
601
+ // Model-scoped — only this exact provider × model is ruled out.
602
+ if (model && model !== 'default') {
603
+ const key = modelKey(provider, model);
604
+ const modelExcl = sessionFailedModels?.get(key);
605
+ if (expiryAt(modelExcl) > now)
606
+ return true;
607
+ const persistedModel = persistedFailures[key];
608
+ if (expiryAt(persistedModel) > now)
609
+ return true;
610
+ }
475
611
  return false;
476
612
  }
613
+ /**
614
+ * Has the Model Availability Registry already ruled this candidate out?
615
+ *
616
+ * Model-aware on purpose: with a concrete model the check is per-ENTRY
617
+ * (parked/unavailable/stale → skip just that candidate), so a parked model no
618
+ * longer blocks its healthy siblings on the same provider. Only an unresolved
619
+ * ('default') model falls back to the provider-wide blocked check.
620
+ * Best-effort — a registry failure never rules a candidate out.
621
+ */
622
+ function isRegistryRuledOut(provider, model) {
623
+ try {
624
+ const registry = getModelRegistry();
625
+ if (model && model !== 'default') {
626
+ // Untracked model → unproven, not ruled out: the failover chain exists
627
+ // precisely to reach models the registry has no data on yet.
628
+ if (!registry.getEntry(provider, model))
629
+ return false;
630
+ return !registry.isUsable(provider, model);
631
+ }
632
+ return registry.getBlockedProviders().includes(provider);
633
+ }
634
+ catch {
635
+ return false;
636
+ }
637
+ }
477
638
  //# sourceMappingURL=resilient-call.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resilient-call.js","sourceRoot":"","sources":["../../src/learning/resilient-call.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resilient-call.js","sourceRoot":"","sources":["../../src/learning/resilient-call.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,8 @@ import { z } from 'zod';
14
14
  export declare const nluIntentSchema: z.ZodEnum<{
15
15
  unknown: "unknown";
16
16
  fix: "fix";
17
- create: "create";
18
17
  explain: "explain";
18
+ create: "create";
19
19
  configure: "configure";
20
20
  continue: "continue";
21
21
  }>;
@@ -48,8 +48,8 @@ export declare const verifyResponseSchema: z.ZodObject<{
48
48
  intent: z.ZodEnum<{
49
49
  unknown: "unknown";
50
50
  fix: "fix";
51
- create: "create";
52
51
  explain: "explain";
52
+ create: "create";
53
53
  configure: "configure";
54
54
  continue: "continue";
55
55
  }>;
@@ -0,0 +1,3 @@
1
+ declare const router: any;
2
+ export default router;
3
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/routes/auth.ts"],"names":[],"mappings":"AAyBA,QAAA,MAAM,MAAM,KAAmB,CAAC;AAoChC,eAAe,MAAM,CAAC"}