agent-nuvira 3.3.11 → 3.3.13
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 +32 -1
- package/dist/agents/agents/reasoner.d.ts.map +1 -1
- package/dist/agents/agents/reasoner.js +13 -0
- package/dist/agents/agents/reasoner.js.map +1 -1
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +56 -20
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/cli/chat.d.ts +36 -0
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +456 -43
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts.map +1 -1
- package/dist/cli/cli-program.js +8 -0
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +35 -4
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +14 -0
- package/dist/cli/execute.js.map +1 -1
- package/dist/cli/knowledge.d.ts +23 -0
- package/dist/cli/knowledge.d.ts.map +1 -0
- package/dist/cli/knowledge.js +132 -0
- package/dist/cli/knowledge.js.map +1 -0
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +57 -13
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/omniroute-control.d.ts +88 -0
- package/dist/cli/omniroute-control.d.ts.map +1 -0
- package/dist/cli/omniroute-control.js +179 -0
- package/dist/cli/omniroute-control.js.map +1 -0
- package/dist/cli/omniroute.d.ts +21 -0
- package/dist/cli/omniroute.d.ts.map +1 -0
- package/dist/cli/omniroute.js +67 -0
- package/dist/cli/omniroute.js.map +1 -0
- package/dist/cli/tool-install-prompt.d.ts +58 -0
- package/dist/cli/tool-install-prompt.d.ts.map +1 -1
- package/dist/cli/tool-install-prompt.js +137 -0
- package/dist/cli/tool-install-prompt.js.map +1 -1
- package/dist/cli/weak-model-prompt.d.ts +16 -7
- package/dist/cli/weak-model-prompt.d.ts.map +1 -1
- package/dist/cli/weak-model-prompt.js +24 -8
- package/dist/cli/weak-model-prompt.js.map +1 -1
- package/dist/config/types.d.ts +44 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/context/cache.d.ts +35 -1
- package/dist/context/cache.d.ts.map +1 -1
- package/dist/context/cache.js +31 -2
- package/dist/context/cache.js.map +1 -1
- package/dist/context/history.d.ts +21 -0
- package/dist/context/history.d.ts.map +1 -1
- package/dist/context/history.js +50 -0
- package/dist/context/history.js.map +1 -1
- package/dist/gateway/hook-contract.d.ts +173 -0
- package/dist/gateway/hook-contract.d.ts.map +1 -0
- package/dist/gateway/hook-contract.js +352 -0
- package/dist/gateway/hook-contract.js.map +1 -0
- package/dist/gateway/hooks.d.ts.map +1 -1
- package/dist/gateway/hooks.js +14 -0
- package/dist/gateway/hooks.js.map +1 -1
- package/dist/inference/interface.d.ts +17 -0
- package/dist/inference/interface.d.ts.map +1 -1
- package/dist/inference/model-catalog.d.ts +17 -0
- package/dist/inference/model-catalog.d.ts.map +1 -1
- package/dist/inference/model-catalog.js +42 -7
- package/dist/inference/model-catalog.js.map +1 -1
- package/dist/inference/model-id-validation.d.ts +57 -0
- package/dist/inference/model-id-validation.d.ts.map +1 -0
- package/dist/inference/model-id-validation.js +127 -0
- package/dist/inference/model-id-validation.js.map +1 -0
- package/dist/inference/openai-compat-adapter.d.ts.map +1 -1
- package/dist/inference/openai-compat-adapter.js +12 -1
- package/dist/inference/openai-compat-adapter.js.map +1 -1
- package/dist/inference/provider-catalog.d.ts +11 -0
- package/dist/inference/provider-catalog.d.ts.map +1 -1
- package/dist/inference/provider-catalog.js +80 -0
- package/dist/inference/provider-catalog.js.map +1 -1
- package/dist/inference/route-resolver.d.ts +2 -8
- package/dist/inference/route-resolver.d.ts.map +1 -1
- package/dist/inference/route-resolver.js +17 -0
- package/dist/inference/route-resolver.js.map +1 -1
- package/dist/inference/tool-call-utils.d.ts +4 -3
- package/dist/inference/tool-call-utils.d.ts.map +1 -1
- package/dist/inference/tool-call-utils.js +26 -12
- package/dist/inference/tool-call-utils.js.map +1 -1
- package/dist/inference/tools.d.ts +1 -0
- package/dist/inference/tools.d.ts.map +1 -1
- package/dist/inference/tools.js +20 -3
- package/dist/inference/tools.js.map +1 -1
- package/dist/learning/agentic-route-gate.d.ts +104 -0
- package/dist/learning/agentic-route-gate.d.ts.map +1 -0
- package/dist/learning/agentic-route-gate.js +125 -0
- package/dist/learning/agentic-route-gate.js.map +1 -0
- package/dist/learning/auto-router.d.ts +89 -0
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +188 -8
- package/dist/learning/auto-router.js.map +1 -1
- package/dist/learning/build-prerequisites.d.ts +68 -0
- package/dist/learning/build-prerequisites.d.ts.map +1 -0
- package/dist/learning/build-prerequisites.js +267 -0
- package/dist/learning/build-prerequisites.js.map +1 -0
- package/dist/learning/continuation-intent.d.ts +43 -0
- package/dist/learning/continuation-intent.d.ts.map +1 -0
- package/dist/learning/continuation-intent.js +82 -0
- package/dist/learning/continuation-intent.js.map +1 -0
- package/dist/learning/error-repair.d.ts +23 -1
- package/dist/learning/error-repair.d.ts.map +1 -1
- package/dist/learning/error-repair.js +58 -0
- package/dist/learning/error-repair.js.map +1 -1
- package/dist/learning/knowledge-base.d.ts +124 -0
- package/dist/learning/knowledge-base.d.ts.map +1 -0
- package/dist/learning/knowledge-base.js +337 -0
- package/dist/learning/knowledge-base.js.map +1 -0
- package/dist/learning/model-harness.d.ts +19 -0
- package/dist/learning/model-harness.d.ts.map +1 -1
- package/dist/learning/model-harness.js +27 -0
- package/dist/learning/model-harness.js.map +1 -1
- package/dist/learning/model-selection.d.ts +2 -1
- package/dist/learning/model-selection.d.ts.map +1 -1
- package/dist/learning/model-selection.js +35 -2
- package/dist/learning/model-selection.js.map +1 -1
- package/dist/learning/project-docs.d.ts +83 -0
- package/dist/learning/project-docs.d.ts.map +1 -0
- package/dist/learning/project-docs.js +132 -0
- package/dist/learning/project-docs.js.map +1 -0
- package/dist/learning/prompt-budget.d.ts +91 -0
- package/dist/learning/prompt-budget.d.ts.map +1 -0
- package/dist/learning/prompt-budget.js +99 -0
- package/dist/learning/prompt-budget.js.map +1 -0
- package/dist/learning/quota-ledger.d.ts +13 -0
- package/dist/learning/quota-ledger.d.ts.map +1 -1
- package/dist/learning/quota-ledger.js +28 -0
- package/dist/learning/quota-ledger.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +55 -2
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js +48 -0
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +16 -3
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/learning/routing-history.d.ts +13 -0
- package/dist/learning/routing-history.d.ts.map +1 -1
- package/dist/learning/routing-history.js.map +1 -1
- package/dist/learning/seeded-benchmark.d.ts +14 -0
- package/dist/learning/seeded-benchmark.d.ts.map +1 -1
- package/dist/learning/seeded-benchmark.js +43 -4
- package/dist/learning/seeded-benchmark.js.map +1 -1
- package/dist/learning/turn-report.d.ts +78 -0
- package/dist/learning/turn-report.d.ts.map +1 -0
- package/dist/learning/turn-report.js +140 -0
- package/dist/learning/turn-report.js.map +1 -0
- package/dist/security/secret-scan.d.ts +156 -0
- package/dist/security/secret-scan.d.ts.map +1 -0
- package/dist/security/secret-scan.js +525 -0
- package/dist/security/secret-scan.js.map +1 -0
- package/dist/tools/edit-verification.d.ts +2 -11
- package/dist/tools/edit-verification.d.ts.map +1 -1
- package/dist/tools/edit-verification.js +33 -1
- package/dist/tools/edit-verification.js.map +1 -1
- package/dist/tools/loop-skill-hint.d.ts +51 -0
- package/dist/tools/loop-skill-hint.d.ts.map +1 -1
- package/dist/tools/loop-skill-hint.js +87 -2
- package/dist/tools/loop-skill-hint.js.map +1 -1
- package/dist/tools/plan-store.d.ts +126 -3
- package/dist/tools/plan-store.d.ts.map +1 -1
- package/dist/tools/plan-store.js +290 -6
- package/dist/tools/plan-store.js.map +1 -1
- package/dist/tools/registry.d.ts +20 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +165 -4
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/remediation-ladder.d.ts +91 -0
- package/dist/tools/remediation-ladder.d.ts.map +1 -0
- package/dist/tools/remediation-ladder.js +308 -0
- package/dist/tools/remediation-ladder.js.map +1 -0
- package/dist/tools/run-terminal.d.ts.map +1 -1
- package/dist/tools/run-terminal.js +60 -2
- package/dist/tools/run-terminal.js.map +1 -1
- package/dist/tools/skills-hub.d.ts +7 -0
- package/dist/tools/skills-hub.d.ts.map +1 -1
- package/dist/tools/skills-hub.js +11 -2
- package/dist/tools/skills-hub.js.map +1 -1
- package/dist/tools/step-artifact.d.ts +35 -0
- package/dist/tools/step-artifact.d.ts.map +1 -0
- package/dist/tools/step-artifact.js +154 -0
- package/dist/tools/step-artifact.js.map +1 -0
- package/dist/tools/tool-loop.d.ts +35 -0
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +284 -9
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/tools/toolsets.js +4 -4
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/tools/worktree.d.ts +11 -2
- package/dist/tools/worktree.d.ts.map +1 -1
- package/dist/tools/worktree.js +11 -2
- package/dist/tools/worktree.js.map +1 -1
- package/dist/utils/effect-verification.js +1 -1
- package/dist/utils/effect-verification.js.map +1 -1
- package/dist/web-dashboard/chat-console.d.ts +21 -1
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +33 -5
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/server.d.ts +29 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +410 -5
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +137 -0
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/dist/web-dashboard/workspace-guard.d.ts +7 -0
- package/dist/web-dashboard/workspace-guard.d.ts.map +1 -1
- package/dist/web-dashboard/workspace-guard.js +70 -0
- package/dist/web-dashboard/workspace-guard.js.map +1 -1
- package/package.json +4 -1
- package/src/web-dashboard/public/assets/index-DhiuR4S2.js +210 -0
- package/src/web-dashboard/public/assets/index-DhiuR4S2.js.map +1 -0
- package/src/web-dashboard/public/assets/index-tK8Y2qHB.css +1 -0
- package/src/web-dashboard/public/index.html +2 -2
- package/src/web-dashboard/public/assets/index-BdKf5Xw2.js +0 -207
- package/src/web-dashboard/public/assets/index-BdKf5Xw2.js.map +0 -1
- package/src/web-dashboard/public/assets/index-C9eBskc9.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentic-route-gate.js","sourceRoot":"","sources":["../../src/learning/agentic-route-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,23 @@ export interface TaskProfile {
|
|
|
63
63
|
escalationTarget?: string;
|
|
64
64
|
notes: string[];
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* The software intents whose NON-TRIVIAL asks need an agentic-capable model.
|
|
68
|
+
* Writing/creative and plain chat are deliberately excluded: there a small
|
|
69
|
+
* model is a legitimate choice.
|
|
70
|
+
*/
|
|
71
|
+
export declare const SOFTWARE_INTENTS: ReadonlySet<string>;
|
|
72
|
+
/**
|
|
73
|
+
* Is this complexity/intent profile an AGENTIC ask — one that needs a model
|
|
74
|
+
* able to hold a tool loop across turns and report truthfully what it observed?
|
|
75
|
+
*
|
|
76
|
+
* Exported so the router's capability floor and the shared post-route gate
|
|
77
|
+
* (`assertAgenticRoute`) can never disagree about what counts as agentic — the
|
|
78
|
+
* same reason `isAgenticCapableModel` is shared across both seams. A software
|
|
79
|
+
* build ask is agentic at ANY non-trivial complexity; a trivial one-shot
|
|
80
|
+
* ("format this code") and non-software asks are not.
|
|
81
|
+
*/
|
|
82
|
+
export declare function isAgenticTask(complexity: ComplexityLevel, taskProfile: Pick<TaskProfile, 'intent' | 'requiresVerification'>): boolean;
|
|
66
83
|
/** Human labels for each dimension (used in explanations). */
|
|
67
84
|
export declare const DIMENSION_LABELS: Record<RoutingDimension, string>;
|
|
68
85
|
/**
|
|
@@ -160,6 +177,42 @@ export declare function governanceVerdict(configManager: ConfigManager | undefin
|
|
|
160
177
|
model?: string;
|
|
161
178
|
taskText?: string;
|
|
162
179
|
}): GovernanceVerdict;
|
|
180
|
+
/**
|
|
181
|
+
* THE admin-BUDGET gate for a PINNED provider×model.
|
|
182
|
+
*
|
|
183
|
+
* `governanceVerdict` above covers the admin allow/deny lists and the PII
|
|
184
|
+
* privacy gate, but deliberately leaves the COST cap to selection — right for
|
|
185
|
+
* the auto path, wrong for a pin. The user's own request (2026-10-06): "if I
|
|
186
|
+
* select a specific model it should leverage my selection AND honor the cost /
|
|
187
|
+
* token controls set in the admin panel". An explicit pin bypasses
|
|
188
|
+
* `autoRouter.resolve`, where `routing.quota` and `maxCostUsd` are enforced, so
|
|
189
|
+
* today a pinned run is the one path that can spend past the budget the user
|
|
190
|
+
* declared in the dashboard's 💰 Daily Budget panel.
|
|
191
|
+
*
|
|
192
|
+
* This gate closes that hole WITHOUT substituting another model (a pin must
|
|
193
|
+
* still run the model the user chose): it either allows the pin or REFUSES it
|
|
194
|
+
* with a message naming the control, so the outcome is honest rather than a
|
|
195
|
+
* silent over-budget run. Two controls, both user-declared:
|
|
196
|
+
*
|
|
197
|
+
* 1. `routing.quota.<provider>` — a configured window budget (tokens and/or
|
|
198
|
+
* requests) already consumed. Read via `isOverConfiguredLimit`, which
|
|
199
|
+
* deliberately IGNORES transient rate-limit parks: a 429 that clears in
|
|
200
|
+
* seconds is not a budget, and refusing a pin for it would be wrong.
|
|
201
|
+
* 2. `governance.maxCostUsd` / `routing.maxCostUsd` — the stricter of the two
|
|
202
|
+
* admin caps, compared against the provider's typical call cost (the same
|
|
203
|
+
* basis the router uses). Absent → no cost gate, unchanged behaviour.
|
|
204
|
+
*
|
|
205
|
+
* No budget configured → `{ allowed: true }`, so every existing setup is
|
|
206
|
+
* byte-for-byte unchanged. Best-effort: an unreadable config never blocks.
|
|
207
|
+
*/
|
|
208
|
+
export interface AdminBudgetVerdict {
|
|
209
|
+
allowed: boolean;
|
|
210
|
+
reason?: string;
|
|
211
|
+
control?: 'quota' | 'cost';
|
|
212
|
+
}
|
|
213
|
+
export declare function adminBudgetVerdict(configManager: ConfigManager | undefined, provider: string, opts?: {
|
|
214
|
+
model?: string;
|
|
215
|
+
}): AdminBudgetVerdict;
|
|
163
216
|
/** Options for a single resolve() call. */
|
|
164
217
|
export interface AutoRouterOptions {
|
|
165
218
|
/**
|
|
@@ -411,6 +464,25 @@ export interface AutoRouteResult {
|
|
|
411
464
|
model: string;
|
|
412
465
|
/** Composite score of the selected provider (0–1) */
|
|
413
466
|
score: number;
|
|
467
|
+
/**
|
|
468
|
+
* A1 — may the FINAL routed model hold an agentic software task? Computed
|
|
469
|
+
* with the SAME shared predicate (`isAgenticCapableModel`) the capability
|
|
470
|
+
* floor and the model-first override use, so the recorded verdict can never
|
|
471
|
+
* disagree with the routing that produced it. This is the fact the failed
|
|
472
|
+
* Tauri turn could not see about itself: it was routed to `local/gemma4:e4b`
|
|
473
|
+
* and nothing in the turn, trace, or console said so.
|
|
474
|
+
*/
|
|
475
|
+
agenticCapable: boolean;
|
|
476
|
+
/**
|
|
477
|
+
* A1 — how the model-first override affected the FINAL pick:
|
|
478
|
+
* - `none` — the override did not change the provider/model;
|
|
479
|
+
* - `model-first` — it replaced the deterministic pick with a model-first
|
|
480
|
+
* candidate (still agentic-capable when the task was agentic);
|
|
481
|
+
* - `model-first-blocked` — it had candidates but the agentic capability
|
|
482
|
+
* floor removed ALL of them, so the deterministic pick stood (the shape
|
|
483
|
+
* of the original bug: the override was constrained by the floor).
|
|
484
|
+
*/
|
|
485
|
+
overrideReason: 'none' | 'model-first' | 'model-first-blocked';
|
|
414
486
|
/** Effective dimension weights used for this decision */
|
|
415
487
|
weights: Record<RoutingDimension, number>;
|
|
416
488
|
/** All scored providers, ranked best-first */
|
|
@@ -589,6 +661,23 @@ export declare function isAutoModel(model?: string | null): boolean;
|
|
|
589
661
|
* Check whether a provider value means "Auto routing".
|
|
590
662
|
*/
|
|
591
663
|
export declare function isAutoProvider(provider?: string | null): boolean;
|
|
664
|
+
/**
|
|
665
|
+
* A CONCRETE provider pinned with the `auto` model sentinel means THAT
|
|
666
|
+
* provider's OWN auto routing — an OmniRoute gateway combo, say — not
|
|
667
|
+
* agent-nuvira's provider/model selection.
|
|
668
|
+
*
|
|
669
|
+
* This is the distinction behind the `-p omniroute -m auto` collision: the
|
|
670
|
+
* sentinel was read as the agent's auto-route EVERYWHERE, so the request was
|
|
671
|
+
* re-routed by our router and never reached the gateway that was named. The
|
|
672
|
+
* sentinel is provider-owned ONLY when the provider is named and is not itself
|
|
673
|
+
* the `auto` directive; `-m auto` with no provider (or `-p auto`) stays our
|
|
674
|
+
* auto-route exactly as before.
|
|
675
|
+
*/
|
|
676
|
+
export declare function isProviderOwnAuto(provider?: string | null, model?: string | null): boolean;
|
|
677
|
+
/** Agent-nuvira's OWN auto routing: the `auto` directive on either axis, minus
|
|
678
|
+
* the provider-owned case — use this where a decision would otherwise
|
|
679
|
+
* re-route a concretely pinned provider. */
|
|
680
|
+
export declare function isAgentAutoRoute(provider?: string | null, model?: string | null): boolean;
|
|
592
681
|
/**
|
|
593
682
|
* Compute the effective dimension weights for a task.
|
|
594
683
|
* Combines complexity baseline + preference-mode adjustments + user overrides,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-router.d.ts","sourceRoot":"","sources":["../../src/learning/auto-router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auto-router.d.ts","sourceRoot":"","sources":["../../src/learning/auto-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ import { getModelRegistry } from './model-registry.js';
|
|
|
49
49
|
// R4: the agentic capability floor needs the same "too small to hold a tool
|
|
50
50
|
// loop" judgement the harness uses. model-harness.ts imports nothing, so this
|
|
51
51
|
// adds no cycle risk to the router.
|
|
52
|
-
import { isTinyModel } from './model-harness.js';
|
|
52
|
+
import { isTinyModel, isAgenticCapableModel } from './model-harness.js';
|
|
53
53
|
import { estimateTokens } from './cost-tracker.js';
|
|
54
54
|
import { preferredModelsFor, PROVIDER_CONTEXT_WINDOWS } from './model-selection.js';
|
|
55
55
|
import { isNonChatModel } from '../inference/model-catalog.js';
|
|
@@ -62,6 +62,7 @@ import { CATALOG_PROVIDER_IDS, getCatalogProvider, getDefaultModel, isCatalogKey
|
|
|
62
62
|
import { isContentArtifactAsk } from '../nlu/intent.js';
|
|
63
63
|
import { ProviderFactory } from '../inference/factory.js';
|
|
64
64
|
import { logger } from '../utils/logger.js';
|
|
65
|
+
import { getQuotaLedger } from './quota-ledger.js';
|
|
65
66
|
// ─── Constants ──────────────────────────────────────────────────────────────
|
|
66
67
|
/** The special model value that triggers automatic per-task routing. */
|
|
67
68
|
export const AUTO_MODEL = 'auto';
|
|
@@ -74,6 +75,31 @@ export const AUTO_MODEL = 'auto';
|
|
|
74
75
|
export const FALLBACK_MODELS_PER_PROVIDER = 3;
|
|
75
76
|
/** The special provider value stored in active-model state for Auto mode. */
|
|
76
77
|
export const AUTO_PROVIDER = 'auto';
|
|
78
|
+
/**
|
|
79
|
+
* The software intents whose NON-TRIVIAL asks need an agentic-capable model.
|
|
80
|
+
* Writing/creative and plain chat are deliberately excluded: there a small
|
|
81
|
+
* model is a legitimate choice.
|
|
82
|
+
*/
|
|
83
|
+
export const SOFTWARE_INTENTS = new Set([
|
|
84
|
+
'coding', 'debugging', 'verification', 'migration', 'architecture', 'security',
|
|
85
|
+
]);
|
|
86
|
+
/**
|
|
87
|
+
* Is this complexity/intent profile an AGENTIC ask — one that needs a model
|
|
88
|
+
* able to hold a tool loop across turns and report truthfully what it observed?
|
|
89
|
+
*
|
|
90
|
+
* Exported so the router's capability floor and the shared post-route gate
|
|
91
|
+
* (`assertAgenticRoute`) can never disagree about what counts as agentic — the
|
|
92
|
+
* same reason `isAgenticCapableModel` is shared across both seams. A software
|
|
93
|
+
* build ask is agentic at ANY non-trivial complexity; a trivial one-shot
|
|
94
|
+
* ("format this code") and non-software asks are not.
|
|
95
|
+
*/
|
|
96
|
+
export function isAgenticTask(complexity, taskProfile) {
|
|
97
|
+
const softwareIntent = SOFTWARE_INTENTS.has(String(taskProfile.intent ?? ''));
|
|
98
|
+
return (complexity === 'complex' ||
|
|
99
|
+
complexity === 'critical' ||
|
|
100
|
+
taskProfile.requiresVerification === true ||
|
|
101
|
+
(softwareIntent && complexity !== 'trivial'));
|
|
102
|
+
}
|
|
77
103
|
/** Human labels for each dimension (used in explanations). */
|
|
78
104
|
export const DIMENSION_LABELS = {
|
|
79
105
|
reasoning: 'reasoning',
|
|
@@ -217,6 +243,48 @@ export function governanceVerdict(configManager, provider, opts = {}) {
|
|
|
217
243
|
}
|
|
218
244
|
return { allowed: true };
|
|
219
245
|
}
|
|
246
|
+
export function adminBudgetVerdict(configManager, provider, opts = {}) {
|
|
247
|
+
if (!configManager)
|
|
248
|
+
return { allowed: true };
|
|
249
|
+
// 1. Declared window budget (tokens / requests).
|
|
250
|
+
try {
|
|
251
|
+
if (getQuotaLedger().isOverConfiguredLimit(configManager, provider)) {
|
|
252
|
+
return {
|
|
253
|
+
allowed: false,
|
|
254
|
+
control: 'quota',
|
|
255
|
+
reason: `'${provider}' is over the daily budget you set in ` +
|
|
256
|
+
`routing.quota.${provider} (tokens or requests for the current window). ` +
|
|
257
|
+
'Raise the limit in the dashboard 💰 Daily Budget panel (or `nuvira model quota set`), ' +
|
|
258
|
+
'or wait for the window to reset.',
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
// Best-effort — an unreadable ledger must never block a run.
|
|
264
|
+
}
|
|
265
|
+
// 2. Admin cost cap — strictest of the routing + governance caps.
|
|
266
|
+
try {
|
|
267
|
+
const routing = configManager.getAll?.()?.routing;
|
|
268
|
+
const caps = [routing?.maxCostUsd, routing?.governance?.maxCostUsd].filter((c) => c !== undefined);
|
|
269
|
+
if (caps.length > 0) {
|
|
270
|
+
const cap = Math.min(...caps);
|
|
271
|
+
const typical = estimateCallCostUsd(provider);
|
|
272
|
+
if (typical > cap) {
|
|
273
|
+
return {
|
|
274
|
+
allowed: false,
|
|
275
|
+
control: 'cost',
|
|
276
|
+
reason: `'${provider}' costs ~$${typical}/call, over the admin cap of $${cap} per call ` +
|
|
277
|
+
'(routing.maxCostUsd / routing.governance.maxCostUsd). ' +
|
|
278
|
+
'Raise the cap in the dashboard Budget panel, or pick a cheaper provider.',
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
catch {
|
|
284
|
+
// Best-effort.
|
|
285
|
+
}
|
|
286
|
+
return { allowed: true };
|
|
287
|
+
}
|
|
220
288
|
// ─── Provider Capability Profiles ───────────────────────────────────────────
|
|
221
289
|
//
|
|
222
290
|
// Static baseline profiles for the built-in providers. These encode the
|
|
@@ -531,6 +599,36 @@ export function isAutoModel(model) {
|
|
|
531
599
|
export function isAutoProvider(provider) {
|
|
532
600
|
return provider === AUTO_PROVIDER;
|
|
533
601
|
}
|
|
602
|
+
/**
|
|
603
|
+
* A CONCRETE provider pinned with the `auto` model sentinel means THAT
|
|
604
|
+
* provider's OWN auto routing — an OmniRoute gateway combo, say — not
|
|
605
|
+
* agent-nuvira's provider/model selection.
|
|
606
|
+
*
|
|
607
|
+
* This is the distinction behind the `-p omniroute -m auto` collision: the
|
|
608
|
+
* sentinel was read as the agent's auto-route EVERYWHERE, so the request was
|
|
609
|
+
* re-routed by our router and never reached the gateway that was named. The
|
|
610
|
+
* sentinel is provider-owned ONLY when the provider is named and is not itself
|
|
611
|
+
* the `auto` directive; `-m auto` with no provider (or `-p auto`) stays our
|
|
612
|
+
* auto-route exactly as before.
|
|
613
|
+
*/
|
|
614
|
+
export function isProviderOwnAuto(provider, model) {
|
|
615
|
+
if (!provider || isAutoProvider(provider) || !isAutoModel(model))
|
|
616
|
+
return false;
|
|
617
|
+
// …and the provider must ACTUALLY expose its own `auto`. The first cut returned
|
|
618
|
+
// true for ANY concrete provider (`-p groq -m auto`, `-p local -m auto`, …),
|
|
619
|
+
// which left the sentinel unresolved and handed the literal string `auto` to a
|
|
620
|
+
// provider that has no such model — a live 400 waiting to happen, and the cause
|
|
621
|
+
// of a verify-probe + real call (the same request paid for twice). Only a
|
|
622
|
+
// gateway whose catalog default IS `auto` (OmniRoute, and anything configured
|
|
623
|
+
// the same way) owns the sentinel; every other provider gets a real model id.
|
|
624
|
+
return getDefaultModel(provider) === 'auto';
|
|
625
|
+
}
|
|
626
|
+
/** Agent-nuvira's OWN auto routing: the `auto` directive on either axis, minus
|
|
627
|
+
* the provider-owned case — use this where a decision would otherwise
|
|
628
|
+
* re-route a concretely pinned provider. */
|
|
629
|
+
export function isAgentAutoRoute(provider, model) {
|
|
630
|
+
return !isProviderOwnAuto(provider, model) && (isAutoProvider(provider) || isAutoModel(model));
|
|
631
|
+
}
|
|
534
632
|
/**
|
|
535
633
|
* Compute the effective dimension weights for a task.
|
|
536
634
|
* Combines complexity baseline + preference-mode adjustments + user overrides,
|
|
@@ -1028,6 +1126,11 @@ export class AutoModelRouter {
|
|
|
1028
1126
|
fallbackChain: [],
|
|
1029
1127
|
explanation: `Routing rule '${rule.name}' matched task → ${provider}/${model}`,
|
|
1030
1128
|
routedBy: 'rule',
|
|
1129
|
+
// A1 — a forced rule bypasses scoring and the model-first override
|
|
1130
|
+
// entirely, but the verdict on the FINAL pair is still recorded so
|
|
1131
|
+
// the trace/console can warn when a rule pins a weak model.
|
|
1132
|
+
agenticCapable: isAgenticCapableModel(model, provider),
|
|
1133
|
+
overrideReason: 'none',
|
|
1031
1134
|
};
|
|
1032
1135
|
}
|
|
1033
1136
|
}
|
|
@@ -1407,6 +1510,29 @@ export class AutoModelRouter {
|
|
|
1407
1510
|
// not an admin policy. Keep the full ranking so the caller still gets
|
|
1408
1511
|
// a decision instead of erroring.
|
|
1409
1512
|
governanceBlocked = blockedHere;
|
|
1513
|
+
// CAPABILITY-AWARE RESTORE (2026-10-04). Restoring the RAW ranking is
|
|
1514
|
+
// what let `max` mode (minReasoning 0.7) hand a real Tauri build task to
|
|
1515
|
+
// a LOCAL 4-bit model: every cloud candidate sat below the floor, the
|
|
1516
|
+
// fallback fired, and `performance-first` scoring then favoured the
|
|
1517
|
+
// free, "fast" local entry (score 0.71 vs gemini's 0.40 — measured in
|
|
1518
|
+
// `trace-1791118414038-wdmliw`). The floor's INTENT is "require a strong
|
|
1519
|
+
// served model", so when it must be relaxed, relax it in that SAME
|
|
1520
|
+
// direction: order by served-model REASONING, strongest first, so the
|
|
1521
|
+
// least-weak candidate wins rather than the cheapest. Only applied when
|
|
1522
|
+
// a reasoning floor was actually set — a balanced-mode ask is left
|
|
1523
|
+
// byte-identical.
|
|
1524
|
+
if (options.minReasoning !== undefined) {
|
|
1525
|
+
const reasoningOf = (s) => {
|
|
1526
|
+
try {
|
|
1527
|
+
const served = this.resolveModel(s.provider, agentType, configManager, taskDescription);
|
|
1528
|
+
return this.getModelCapabilities(s.provider, served).reasoning;
|
|
1529
|
+
}
|
|
1530
|
+
catch {
|
|
1531
|
+
return 0;
|
|
1532
|
+
}
|
|
1533
|
+
};
|
|
1534
|
+
scored = [...scored].sort((a, b) => reasoningOf(b) - reasoningOf(a));
|
|
1535
|
+
}
|
|
1410
1536
|
if (options.verbose) {
|
|
1411
1537
|
logger.warn(' ⚠️ Governance/hard constraints eliminated every provider — falling back to full ranking');
|
|
1412
1538
|
}
|
|
@@ -1437,9 +1563,23 @@ export class AutoModelRouter {
|
|
|
1437
1563
|
// JSON-contract transport still gives it a way to act);
|
|
1438
1564
|
// - if the floor would eliminate everyone, the ranking is left alone rather
|
|
1439
1565
|
// than returning no route at all. Auto must never dead-end.
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1566
|
+
// INTENT WIDENING (2026-10-04). The floor used to fire only on
|
|
1567
|
+
// complex/critical/verification asks, so a MODERATE software ask (measured:
|
|
1568
|
+
// "create mac od gui app", complexity 🟡 moderate) skipped it entirely and
|
|
1569
|
+
// `max` mode's performance-first score handed the build to a LOCAL 4-bit
|
|
1570
|
+
// model (`trace-1791118414038-wdmliw` → local/gemma4:e4b, then
|
|
1571
|
+
// trace-1791118650644-d73hyr failed over to local/qwen2.5:0.5b, which
|
|
1572
|
+
// FABRICATED `[Tool result][Success]` output). A software build ask is
|
|
1573
|
+
// agentic at ANY complexity — it needs a model that can hold a tool loop
|
|
1574
|
+
// across turns and truthfully report what it observed. Writing/creative and
|
|
1575
|
+
// plain chat are deliberately NOT included: there, a small/free model is a
|
|
1576
|
+
// legitimate choice (the user's own rule — "complex tasks to reasoning
|
|
1577
|
+
// models, chat/writing to whatever is available").
|
|
1578
|
+
// Widen to software intents ONLY above `trivial`: a trivial one-shot
|
|
1579
|
+
// ("format this code") is exactly what a small local model is for — free,
|
|
1580
|
+
// fast, offline — and the existing contract keeps it available there. The
|
|
1581
|
+
// failure we are closing was a MODERATE build ask, not a one-liner.
|
|
1582
|
+
const agenticTask = isAgenticTask(complexity, taskProfile);
|
|
1443
1583
|
if (agenticTask) {
|
|
1444
1584
|
const capable = scored.filter((s) => {
|
|
1445
1585
|
let servedModel;
|
|
@@ -1449,7 +1589,10 @@ export class AutoModelRouter {
|
|
|
1449
1589
|
catch {
|
|
1450
1590
|
servedModel = undefined;
|
|
1451
1591
|
}
|
|
1452
|
-
|
|
1592
|
+
// The shared predicate owns the rule (tiny tag out; local placeholder
|
|
1593
|
+
// out; unknown kept) so the model-first override below can re-apply the
|
|
1594
|
+
// SAME test and can never resurrect a model this floor just removed.
|
|
1595
|
+
return isAgenticCapableModel(servedModel, s.provider);
|
|
1453
1596
|
});
|
|
1454
1597
|
if (capable.length > 0) {
|
|
1455
1598
|
scored = capable;
|
|
@@ -1595,6 +1738,9 @@ export class AutoModelRouter {
|
|
|
1595
1738
|
: scored.find((s) => !s.inCooldown && !s.quotaParked) || scored[0];
|
|
1596
1739
|
let provider = selected.provider;
|
|
1597
1740
|
let model = this.resolveModel(provider, agentType, configManager, taskDescription);
|
|
1741
|
+
// A1 — record what the model-first override did to the final pick, so the
|
|
1742
|
+
// result carries a verdict and not just a pair (see `overrideReason`).
|
|
1743
|
+
let overrideReason = 'none';
|
|
1598
1744
|
// ── MODEL-FIRST ROUTING: override provider pick with model-level scoring ──
|
|
1599
1745
|
// Instead of picking a provider then a model, score ALL models across ALL
|
|
1600
1746
|
// providers and pick the BEST model. This ensures cost-per-million-token,
|
|
@@ -1624,13 +1770,32 @@ export class AutoModelRouter {
|
|
|
1624
1770
|
const modelFirstEnabled = options.useModelFirst ?? (hasRealData && !userHasPinnedModel && !escalatedProvider);
|
|
1625
1771
|
if (modelFirstEnabled && taskDescription) {
|
|
1626
1772
|
const modelCandidates = buildModelCandidates(taskDescription, complexity, configManager, allowed);
|
|
1627
|
-
|
|
1628
|
-
|
|
1773
|
+
// AGENTIC SAFETY (2026-10-04). This override runs AFTER the agentic
|
|
1774
|
+
// capability floor above, so without re-applying that floor it could
|
|
1775
|
+
// hand an agentic software ask to the very model the floor removed.
|
|
1776
|
+
// Measured: a Tauri build ask (intent 'coding', moderate) overrode the
|
|
1777
|
+
// deterministic groq winner with `local/gemma4:e4b` (a ≤4B model), and
|
|
1778
|
+
// chat then fabricated `[Tool result] ✅ succeeded` output. Filter with
|
|
1779
|
+
// the SAME predicate the floor uses (tiny served model, or a local
|
|
1780
|
+
// placeholder id we cannot judge); take the best surviving candidate so
|
|
1781
|
+
// the override still fires when a capable model-first pick exists.
|
|
1782
|
+
const eligibleCandidates = agenticTask
|
|
1783
|
+
? modelCandidates.filter((c) => isAgenticCapableModel(c.model, c.provider))
|
|
1784
|
+
: modelCandidates;
|
|
1785
|
+
// A1 — a non-empty candidate set emptied BY THE FLOOR is the exact
|
|
1786
|
+
// shape of the original bug; record it as `model-first-blocked` so the
|
|
1787
|
+
// trace does not have to infer it from a missing log line.
|
|
1788
|
+
if (agenticTask && modelCandidates.length > 0 && eligibleCandidates.length === 0) {
|
|
1789
|
+
overrideReason = 'model-first-blocked';
|
|
1790
|
+
}
|
|
1791
|
+
if (eligibleCandidates.length > 0) {
|
|
1792
|
+
const bestModel = eligibleCandidates[0];
|
|
1629
1793
|
// Only override if the model-first pick is significantly better
|
|
1630
1794
|
// (at least 10% higher score) to avoid thrashing on marginal gains
|
|
1631
1795
|
if (bestModel.score > selected.score * 1.1 || selected.score < 0.3) {
|
|
1632
1796
|
provider = bestModel.provider;
|
|
1633
1797
|
model = bestModel.model;
|
|
1798
|
+
overrideReason = 'model-first';
|
|
1634
1799
|
if (options.verbose) {
|
|
1635
1800
|
logger.info(` 🎯 Model-first override: ${provider}/${model} (score ${bestModel.score.toFixed(3)} vs provider ${selected.score.toFixed(3)})`);
|
|
1636
1801
|
}
|
|
@@ -1775,7 +1940,20 @@ export class AutoModelRouter {
|
|
|
1775
1940
|
}
|
|
1776
1941
|
scored = [winner, ...scored.filter((s) => s.provider !== provider)];
|
|
1777
1942
|
const decisionScore = winner.score;
|
|
1778
|
-
|
|
1943
|
+
// WEAK-MODEL WARNING (2026-10-04). When a software/agentic ask STILL lands
|
|
1944
|
+
// on a tiny or placeholder local model, the floor had to be relaxed because
|
|
1945
|
+
// nothing capable was available — which is a real risk the user should hear
|
|
1946
|
+
// about, not a silent surprise (the failed Tauri turn looked identical to a
|
|
1947
|
+
// normal one). Never fires for writing/chat, where a small model is fine.
|
|
1948
|
+
const weakModelForAgenticAsk = agenticTask &&
|
|
1949
|
+
(isTinyModel(String(model)) ||
|
|
1950
|
+
(provider === 'local' && /^(?:default|unknown)$/i.test(String(model).trim())));
|
|
1951
|
+
if (weakModelForAgenticAsk) {
|
|
1952
|
+
logger.warn(` ⚠️ Routing a software task to a weak/local model (${provider}/${model}) — no capable provider was available. Expect it to struggle; the run may need a retry once a stronger model is free.`);
|
|
1953
|
+
}
|
|
1954
|
+
const explanation = this.buildExplanation(agentType, complexity, taskType, provider, decisionScore, mode, model, weights, taskProfile) +
|
|
1955
|
+
(weakModelForAgenticAsk ? ' | ⚠ weak-model fallback (no capable provider free)' : '') +
|
|
1956
|
+
(routedBy === 'bandit' ? ' | bandit-learned' : '') +
|
|
1779
1957
|
(banditEscalation ? ' | escalated: winner unlearned' : '') +
|
|
1780
1958
|
// ISSUE-002 explanation transparency: cite the registry data that
|
|
1781
1959
|
// excluded providers from the candidate pool, so auto routing proves
|
|
@@ -1826,6 +2004,8 @@ export class AutoModelRouter {
|
|
|
1826
2004
|
fallbackChain,
|
|
1827
2005
|
explanation,
|
|
1828
2006
|
routedBy,
|
|
2007
|
+
agenticCapable: isAgenticCapableModel(model, provider),
|
|
2008
|
+
overrideReason,
|
|
1829
2009
|
banditEscalation,
|
|
1830
2010
|
governanceBlocked,
|
|
1831
2011
|
registryExcluded,
|