agent-nuvira 3.3.13 → 3.3.15
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 +67 -1
- package/dist/agents/agents/planner.d.ts.map +1 -1
- package/dist/agents/agents/planner.js +9 -0
- package/dist/agents/agents/planner.js.map +1 -1
- package/dist/agents/orchestrator.d.ts +31 -0
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +74 -126
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/cli/chat.d.ts +89 -0
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +765 -33
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts.map +1 -1
- package/dist/cli/cli-program.js +12 -0
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/config.d.ts +12 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +86 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/decisions.d.ts +28 -0
- package/dist/cli/decisions.d.ts.map +1 -0
- package/dist/cli/decisions.js +140 -0
- package/dist/cli/decisions.js.map +1 -0
- package/dist/cli/doctor.d.ts +6 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +46 -0
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/failover-runner.d.ts.map +1 -1
- package/dist/cli/failover-runner.js +19 -1
- package/dist/cli/failover-runner.js.map +1 -1
- package/dist/cli/feedback.d.ts.map +1 -1
- package/dist/cli/feedback.js +5 -1
- package/dist/cli/feedback.js.map +1 -1
- package/dist/cli/hooks.d.ts +30 -0
- package/dist/cli/hooks.d.ts.map +1 -0
- package/dist/cli/hooks.js +224 -0
- package/dist/cli/hooks.js.map +1 -0
- package/dist/cli/knowledge.d.ts +9 -1
- package/dist/cli/knowledge.d.ts.map +1 -1
- package/dist/cli/knowledge.js +93 -2
- package/dist/cli/knowledge.js.map +1 -1
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +47 -12
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/model.d.ts +20 -0
- package/dist/cli/model.d.ts.map +1 -1
- package/dist/cli/model.js +294 -14
- package/dist/cli/model.js.map +1 -1
- package/dist/cli/rate.d.ts +78 -0
- package/dist/cli/rate.d.ts.map +1 -0
- package/dist/cli/rate.js +294 -0
- package/dist/cli/rate.js.map +1 -0
- package/dist/config/process-env.d.ts.map +1 -1
- package/dist/config/process-env.js +10 -0
- package/dist/config/process-env.js.map +1 -1
- package/dist/enterprise/vault.d.ts.map +1 -1
- package/dist/enterprise/vault.js +5 -21
- package/dist/enterprise/vault.js.map +1 -1
- package/dist/gateway/hook-contract.d.ts +33 -0
- package/dist/gateway/hook-contract.d.ts.map +1 -1
- package/dist/gateway/hook-contract.js +97 -0
- package/dist/gateway/hook-contract.js.map +1 -1
- package/dist/inference/gemini-adapter.d.ts.map +1 -1
- package/dist/inference/gemini-adapter.js +4 -0
- package/dist/inference/gemini-adapter.js.map +1 -1
- package/dist/inference/interface.d.ts +37 -0
- package/dist/inference/interface.d.ts.map +1 -1
- package/dist/inference/native-tools.d.ts +16 -1
- package/dist/inference/native-tools.d.ts.map +1 -1
- package/dist/inference/native-tools.js +34 -10
- package/dist/inference/native-tools.js.map +1 -1
- package/dist/inference/route-resolver.d.ts +30 -0
- package/dist/inference/route-resolver.d.ts.map +1 -1
- package/dist/inference/route-resolver.js +158 -1
- package/dist/inference/route-resolver.js.map +1 -1
- package/dist/inference/tools.d.ts +16 -1
- package/dist/inference/tools.d.ts.map +1 -1
- package/dist/inference/tools.js +51 -18
- package/dist/inference/tools.js.map +1 -1
- package/dist/learning/acceptance-model.d.ts +247 -0
- package/dist/learning/acceptance-model.d.ts.map +1 -0
- package/dist/learning/acceptance-model.js +708 -0
- package/dist/learning/acceptance-model.js.map +1 -0
- package/dist/learning/auto-router.d.ts +68 -24
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +301 -96
- package/dist/learning/auto-router.js.map +1 -1
- package/dist/learning/autonomy-policy.d.ts +12 -16
- package/dist/learning/autonomy-policy.d.ts.map +1 -1
- package/dist/learning/autonomy-policy.js +50 -48
- package/dist/learning/autonomy-policy.js.map +1 -1
- package/dist/learning/behavioural-labels.d.ts +86 -0
- package/dist/learning/behavioural-labels.d.ts.map +1 -0
- package/dist/learning/behavioural-labels.js +166 -0
- package/dist/learning/behavioural-labels.js.map +1 -0
- package/dist/learning/capability-evidence.d.ts +167 -0
- package/dist/learning/capability-evidence.d.ts.map +1 -0
- package/dist/learning/capability-evidence.js +210 -0
- package/dist/learning/capability-evidence.js.map +1 -0
- package/dist/learning/capability-readiness.d.ts +64 -0
- package/dist/learning/capability-readiness.d.ts.map +1 -0
- package/dist/learning/capability-readiness.js +74 -0
- package/dist/learning/capability-readiness.js.map +1 -0
- package/dist/learning/capability-types.d.ts +169 -0
- package/dist/learning/capability-types.d.ts.map +1 -0
- package/dist/learning/capability-types.js +20 -0
- package/dist/learning/capability-types.js.map +1 -0
- package/dist/learning/catalog-feed.d.ts +89 -0
- package/dist/learning/catalog-feed.d.ts.map +1 -0
- package/dist/learning/catalog-feed.js +211 -0
- package/dist/learning/catalog-feed.js.map +1 -0
- package/dist/learning/cli-intent-effects.d.ts +60 -0
- package/dist/learning/cli-intent-effects.d.ts.map +1 -0
- package/dist/learning/cli-intent-effects.js +153 -0
- package/dist/learning/cli-intent-effects.js.map +1 -0
- package/dist/learning/command-adaptation.d.ts +41 -0
- package/dist/learning/command-adaptation.d.ts.map +1 -0
- package/dist/learning/command-adaptation.js +122 -0
- package/dist/learning/command-adaptation.js.map +1 -0
- package/dist/learning/consent-picture.d.ts +42 -0
- package/dist/learning/consent-picture.d.ts.map +1 -0
- package/dist/learning/consent-picture.js +53 -0
- package/dist/learning/consent-picture.js.map +1 -0
- package/dist/learning/context-budget.d.ts +37 -6
- package/dist/learning/context-budget.d.ts.map +1 -1
- package/dist/learning/context-budget.js +38 -9
- package/dist/learning/context-budget.js.map +1 -1
- package/dist/learning/decision-log.d.ts +114 -0
- package/dist/learning/decision-log.d.ts.map +1 -0
- package/dist/learning/decision-log.js +296 -0
- package/dist/learning/decision-log.js.map +1 -0
- package/dist/learning/deliverable-class.d.ts.map +1 -1
- package/dist/learning/deliverable-class.js +19 -0
- package/dist/learning/deliverable-class.js.map +1 -1
- package/dist/learning/deliverable-corpus.d.ts +117 -0
- package/dist/learning/deliverable-corpus.d.ts.map +1 -0
- package/dist/learning/deliverable-corpus.js +176 -0
- package/dist/learning/deliverable-corpus.js.map +1 -0
- package/dist/learning/error-repair.d.ts +22 -1
- package/dist/learning/error-repair.d.ts.map +1 -1
- package/dist/learning/error-repair.js +37 -0
- package/dist/learning/error-repair.js.map +1 -1
- package/dist/learning/exhaustion-report.d.ts +136 -0
- package/dist/learning/exhaustion-report.d.ts.map +1 -0
- package/dist/learning/exhaustion-report.js +239 -0
- package/dist/learning/exhaustion-report.js.map +1 -0
- package/dist/learning/failure-bookkeeping.d.ts +16 -0
- package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
- package/dist/learning/failure-bookkeeping.js +51 -5
- package/dist/learning/failure-bookkeeping.js.map +1 -1
- package/dist/learning/gate-friction.d.ts +39 -0
- package/dist/learning/gate-friction.d.ts.map +1 -0
- package/dist/learning/gate-friction.js +91 -0
- package/dist/learning/gate-friction.js.map +1 -0
- package/dist/learning/harness-narration.d.ts +34 -0
- package/dist/learning/harness-narration.d.ts.map +1 -0
- package/dist/learning/harness-narration.js +58 -0
- package/dist/learning/harness-narration.js.map +1 -0
- package/dist/learning/hub-skill-catalog.d.ts.map +1 -1
- package/dist/learning/hub-skill-catalog.js +1 -2
- package/dist/learning/hub-skill-catalog.js.map +1 -1
- package/dist/learning/hybrid-router.d.ts +65 -0
- package/dist/learning/hybrid-router.d.ts.map +1 -1
- package/dist/learning/hybrid-router.js +186 -0
- package/dist/learning/hybrid-router.js.map +1 -1
- package/dist/learning/knowledge-base.d.ts +229 -3
- package/dist/learning/knowledge-base.d.ts.map +1 -1
- package/dist/learning/knowledge-base.js +603 -25
- package/dist/learning/knowledge-base.js.map +1 -1
- package/dist/learning/knowledge-eval.d.ts +171 -0
- package/dist/learning/knowledge-eval.d.ts.map +1 -0
- package/dist/learning/knowledge-eval.js +196 -0
- package/dist/learning/knowledge-eval.js.map +1 -0
- package/dist/learning/knowledge-turn.d.ts +92 -0
- package/dist/learning/knowledge-turn.d.ts.map +1 -0
- package/dist/learning/knowledge-turn.js +190 -0
- package/dist/learning/knowledge-turn.js.map +1 -0
- package/dist/learning/learned-commands.d.ts +64 -0
- package/dist/learning/learned-commands.d.ts.map +1 -0
- package/dist/learning/learned-commands.js +108 -0
- package/dist/learning/learned-commands.js.map +1 -0
- package/dist/learning/lexical-search.d.ts +50 -0
- package/dist/learning/lexical-search.d.ts.map +1 -0
- package/dist/learning/lexical-search.js +111 -0
- package/dist/learning/lexical-search.js.map +1 -0
- package/dist/learning/machine-facts.d.ts +71 -0
- package/dist/learning/machine-facts.d.ts.map +1 -0
- package/dist/learning/machine-facts.js +164 -0
- package/dist/learning/machine-facts.js.map +1 -0
- package/dist/learning/markdown-outline.d.ts +73 -0
- package/dist/learning/markdown-outline.d.ts.map +1 -0
- package/dist/learning/markdown-outline.js +136 -0
- package/dist/learning/markdown-outline.js.map +1 -0
- package/dist/learning/model-first-router.d.ts +33 -1
- package/dist/learning/model-first-router.d.ts.map +1 -1
- package/dist/learning/model-first-router.js +123 -9
- package/dist/learning/model-first-router.js.map +1 -1
- package/dist/learning/model-identity.d.ts +80 -0
- package/dist/learning/model-identity.d.ts.map +1 -0
- package/dist/learning/model-identity.js +115 -0
- package/dist/learning/model-identity.js.map +1 -0
- package/dist/learning/model-registry.d.ts +141 -2
- package/dist/learning/model-registry.d.ts.map +1 -1
- package/dist/learning/model-registry.js +324 -38
- package/dist/learning/model-registry.js.map +1 -1
- package/dist/learning/model-scoring.d.ts.map +1 -1
- package/dist/learning/model-scoring.js +8 -1
- package/dist/learning/model-scoring.js.map +1 -1
- package/dist/learning/model-selection.d.ts.map +1 -1
- package/dist/learning/model-selection.js +41 -0
- package/dist/learning/model-selection.js.map +1 -1
- package/dist/learning/outcome-observation.d.ts +49 -0
- package/dist/learning/outcome-observation.d.ts.map +1 -0
- package/dist/learning/outcome-observation.js +95 -0
- package/dist/learning/outcome-observation.js.map +1 -0
- package/dist/learning/pair-entitlement.d.ts +184 -0
- package/dist/learning/pair-entitlement.d.ts.map +1 -0
- package/dist/learning/pair-entitlement.js +214 -0
- package/dist/learning/pair-entitlement.js.map +1 -0
- package/dist/learning/provider-fallback.d.ts +23 -1
- package/dist/learning/provider-fallback.d.ts.map +1 -1
- package/dist/learning/provider-fallback.js +24 -0
- package/dist/learning/provider-fallback.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +65 -1
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js +123 -1
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/requirement-probe.d.ts +55 -0
- package/dist/learning/requirement-probe.d.ts.map +1 -0
- package/dist/learning/requirement-probe.js +77 -0
- package/dist/learning/requirement-probe.js.map +1 -0
- package/dist/learning/resilient-call.d.ts +20 -1
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +42 -4
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/learning/response-usability.d.ts +85 -0
- package/dist/learning/response-usability.d.ts.map +1 -0
- package/dist/learning/response-usability.js +135 -0
- package/dist/learning/response-usability.js.map +1 -0
- package/dist/learning/router-bandit.d.ts +132 -0
- package/dist/learning/router-bandit.d.ts.map +1 -1
- package/dist/learning/router-bandit.js +253 -0
- package/dist/learning/router-bandit.js.map +1 -1
- package/dist/learning/routing-history.d.ts +41 -2
- package/dist/learning/routing-history.d.ts.map +1 -1
- package/dist/learning/routing-history.js.map +1 -1
- package/dist/learning/run-trace.d.ts +21 -0
- package/dist/learning/run-trace.d.ts.map +1 -1
- package/dist/learning/run-trace.js +38 -0
- package/dist/learning/run-trace.js.map +1 -1
- package/dist/learning/session-grant.d.ts +75 -0
- package/dist/learning/session-grant.d.ts.map +1 -0
- package/dist/learning/session-grant.js +112 -0
- package/dist/learning/session-grant.js.map +1 -0
- package/dist/learning/task-model-continuity.d.ts +73 -0
- package/dist/learning/task-model-continuity.d.ts.map +1 -0
- package/dist/learning/task-model-continuity.js +87 -0
- package/dist/learning/task-model-continuity.js.map +1 -0
- package/dist/learning/turn-feedback.d.ts +93 -0
- package/dist/learning/turn-feedback.d.ts.map +1 -0
- package/dist/learning/turn-feedback.js +127 -0
- package/dist/learning/turn-feedback.js.map +1 -0
- package/dist/learning/turn-report.d.ts +104 -2
- package/dist/learning/turn-report.d.ts.map +1 -1
- package/dist/learning/turn-report.js +161 -6
- package/dist/learning/turn-report.js.map +1 -1
- package/dist/learning/verdict-routing.d.ts +51 -0
- package/dist/learning/verdict-routing.d.ts.map +1 -0
- package/dist/learning/verdict-routing.js +122 -0
- package/dist/learning/verdict-routing.js.map +1 -0
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +5 -0
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/manager.d.ts +10 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +20 -0
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/mcp-discovery.d.ts +34 -0
- package/dist/mcp/mcp-discovery.d.ts.map +1 -0
- package/dist/mcp/mcp-discovery.js +71 -0
- package/dist/mcp/mcp-discovery.js.map +1 -0
- package/dist/mcp/mcp-schema-cache.d.ts +17 -0
- package/dist/mcp/mcp-schema-cache.d.ts.map +1 -1
- package/dist/mcp/mcp-schema-cache.js +47 -3
- package/dist/mcp/mcp-schema-cache.js.map +1 -1
- package/dist/mcp/types.d.ts +28 -0
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/mcp/types.js.map +1 -1
- package/dist/parity/drivers.d.ts.map +1 -1
- package/dist/parity/drivers.js +3 -0
- package/dist/parity/drivers.js.map +1 -1
- package/dist/parity/observation.d.ts +12 -0
- package/dist/parity/observation.d.ts.map +1 -1
- package/dist/parity/observation.js +14 -0
- package/dist/parity/observation.js.map +1 -1
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +4 -0
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/capability-registry.d.ts +150 -0
- package/dist/tools/capability-registry.d.ts.map +1 -0
- package/dist/tools/capability-registry.js +400 -0
- package/dist/tools/capability-registry.js.map +1 -0
- package/dist/tools/child-agent-runtime.d.ts.map +1 -1
- package/dist/tools/child-agent-runtime.js +19 -5
- package/dist/tools/child-agent-runtime.js.map +1 -1
- package/dist/tools/coding-tools.d.ts +17 -5
- package/dist/tools/coding-tools.d.ts.map +1 -1
- package/dist/tools/coding-tools.js +80 -11
- package/dist/tools/coding-tools.js.map +1 -1
- package/dist/tools/command-memo.d.ts +116 -0
- package/dist/tools/command-memo.d.ts.map +1 -0
- package/dist/tools/command-memo.js +202 -0
- package/dist/tools/command-memo.js.map +1 -0
- package/dist/tools/git-tool.d.ts.map +1 -1
- package/dist/tools/git-tool.js +13 -3
- package/dist/tools/git-tool.js.map +1 -1
- package/dist/tools/harness-directive.d.ts +42 -0
- package/dist/tools/harness-directive.d.ts.map +1 -0
- package/dist/tools/harness-directive.js +45 -0
- package/dist/tools/harness-directive.js.map +1 -0
- package/dist/tools/loop-skill-hint.d.ts +74 -174
- package/dist/tools/loop-skill-hint.d.ts.map +1 -1
- package/dist/tools/loop-skill-hint.js +110 -536
- package/dist/tools/loop-skill-hint.js.map +1 -1
- package/dist/tools/mcp-client-tool.d.ts +2 -0
- package/dist/tools/mcp-client-tool.d.ts.map +1 -1
- package/dist/tools/mcp-client-tool.js +3 -0
- package/dist/tools/mcp-client-tool.js.map +1 -1
- package/dist/tools/modality/shared.d.ts +1 -4
- package/dist/tools/modality/shared.d.ts.map +1 -1
- package/dist/tools/modality/shared.js +7 -22
- package/dist/tools/modality/shared.js.map +1 -1
- package/dist/tools/plan-store.d.ts +20 -2
- package/dist/tools/plan-store.d.ts.map +1 -1
- package/dist/tools/plan-store.js +51 -7
- package/dist/tools/plan-store.js.map +1 -1
- package/dist/tools/registry.d.ts +76 -3
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +486 -26
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/remediation-ladder.d.ts.map +1 -1
- package/dist/tools/remediation-ladder.js +8 -0
- package/dist/tools/remediation-ladder.js.map +1 -1
- package/dist/tools/run-cli.d.ts.map +1 -1
- package/dist/tools/run-cli.js +29 -4
- package/dist/tools/run-cli.js.map +1 -1
- package/dist/tools/run-terminal.d.ts +11 -0
- package/dist/tools/run-terminal.d.ts.map +1 -1
- package/dist/tools/run-terminal.js +265 -10
- package/dist/tools/run-terminal.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +321 -13
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +867 -66
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/utils/atomic-store.d.ts +53 -0
- package/dist/utils/atomic-store.d.ts.map +1 -0
- package/dist/utils/atomic-store.js +178 -0
- package/dist/utils/atomic-store.js.map +1 -0
- package/dist/utils/binary-probe.d.ts +25 -0
- package/dist/utils/binary-probe.d.ts.map +1 -0
- package/dist/utils/binary-probe.js +48 -0
- package/dist/utils/binary-probe.js.map +1 -0
- package/dist/utils/workspace-path.d.ts +50 -0
- package/dist/utils/workspace-path.d.ts.map +1 -0
- package/dist/utils/workspace-path.js +86 -0
- package/dist/utils/workspace-path.js.map +1 -0
- package/dist/web-dashboard/chat-console.d.ts +24 -0
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +38 -0
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/project-context.d.ts +27 -2
- package/dist/web-dashboard/project-context.d.ts.map +1 -1
- package/dist/web-dashboard/project-context.js +32 -2
- package/dist/web-dashboard/project-context.js.map +1 -1
- package/dist/web-dashboard/server.d.ts +11 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +362 -11
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +170 -1
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/dist/web-dashboard/workspace-guard.d.ts +11 -2
- package/dist/web-dashboard/workspace-guard.d.ts.map +1 -1
- package/dist/web-dashboard/workspace-guard.js +24 -12
- package/dist/web-dashboard/workspace-guard.js.map +1 -1
- package/dist/web-dashboard/workspace-resolution.d.ts +87 -0
- package/dist/web-dashboard/workspace-resolution.d.ts.map +1 -0
- package/dist/web-dashboard/workspace-resolution.js +105 -0
- package/dist/web-dashboard/workspace-resolution.js.map +1 -0
- package/package.json +1 -1
- package/src/web-dashboard/public/assets/index-zjbdJnO-.js +210 -0
- package/src/web-dashboard/public/assets/index-zjbdJnO-.js.map +1 -0
- package/src/web-dashboard/public/index.html +1 -1
- package/dist/agents/nvda-addon.d.ts +0 -14
- package/dist/agents/nvda-addon.js +0 -52
- package/dist/forwarded.d.ts +0 -2
- package/dist/forwarded.js +0 -2
- package/src/web-dashboard/public/assets/index-DhiuR4S2.js +0 -210
- package/src/web-dashboard/public/assets/index-DhiuR4S2.js.map +0 -1
|
@@ -43,6 +43,22 @@ export interface BetaPrior {
|
|
|
43
43
|
* unlearned and (when enabled) escalates to a provider/model that has data.
|
|
44
44
|
*/
|
|
45
45
|
export declare const DEFAULT_MIN_SAMPLES = 8;
|
|
46
|
+
/**
|
|
47
|
+
* How much one deferred `userAccepted: false` moves an arm.
|
|
48
|
+
*
|
|
49
|
+
* NOT a new reward rule: the success branch of {@link RouterBandit.applyReward}
|
|
50
|
+
* already treats `userAccepted: false` as `reward -= 0.1`, and `reward` moves α by
|
|
51
|
+
* exactly that amount (β by `1 - reward`). Applying the verdict a turn late is
|
|
52
|
+
* therefore `α -= 0.1, β += 0.1` — byte-for-byte the same arm the run would have
|
|
53
|
+
* had if the verdict had been known at record time. Stated as a constant so the
|
|
54
|
+
* two halves cannot drift apart.
|
|
55
|
+
*/
|
|
56
|
+
export declare const USER_REJECTION_DELTA = 0.1;
|
|
57
|
+
/**
|
|
58
|
+
* How old the newest recorded outcome may be before the bandit's data stops
|
|
59
|
+
* being described as "learned" for a decision made today. See `isStale`.
|
|
60
|
+
*/
|
|
61
|
+
export declare const BANDIT_STALENESS_MS: number;
|
|
46
62
|
/** The complexity buckets the bandit learns per provider. */
|
|
47
63
|
export declare const COMPLEXITY_BUCKETS: ComplexityLevel[];
|
|
48
64
|
/** Persisted bandit state. */
|
|
@@ -76,6 +92,14 @@ export interface RouterBanditState {
|
|
|
76
92
|
verificationPassed?: boolean;
|
|
77
93
|
timestamp: string;
|
|
78
94
|
}>;
|
|
95
|
+
/**
|
|
96
|
+
* Bundle 36 — trace ids whose EXPLICIT user verdict has already been applied to
|
|
97
|
+
* the arms that served them. An explicit `nuvira rate bad` arrives in its OWN
|
|
98
|
+
* process, so it cannot rely on `pendingOutcome`; keying the correction on the
|
|
99
|
+
* trace is what lets a re-run (or a verdict that follows a DERIVED rejection of
|
|
100
|
+
* the same turn) move an arm exactly once. Bounded like the history.
|
|
101
|
+
*/
|
|
102
|
+
correctedVerdicts?: string[];
|
|
79
103
|
}
|
|
80
104
|
/** Standard normal via Box–Muller. */
|
|
81
105
|
export declare function standardNormal(): number;
|
|
@@ -130,6 +154,47 @@ export declare class RouterBandit {
|
|
|
130
154
|
sampleModelScore(model: string, complexity: ComplexityLevel, score: number, taskIntent?: string): number;
|
|
131
155
|
/** Get the Beta prior for a provider in a complexity bucket (intent-aware). */
|
|
132
156
|
getPrior(provider: string, complexity: ComplexityLevel, taskIntent?: string): BetaPrior;
|
|
157
|
+
/**
|
|
158
|
+
* P6 (fix_model_routing) — IS THERE ACTUALLY LEARNED DATA for this arm?
|
|
159
|
+
*
|
|
160
|
+
* `Beta(1,1)` is the UNTOUCHED prior: no outcome has ever been recorded for
|
|
161
|
+
* this provider in this bucket. The router used to call any `useBandit`
|
|
162
|
+
* decision `bandit-learned`, so a decision made from a cold-start prior — a
|
|
163
|
+
* score multiplied by a constant 0.5 that cannot reorder anything — was
|
|
164
|
+
* presented to the user as learned. Live: the store had no entry for ANY of
|
|
165
|
+
* the models in play, and the trace still read `bandit-learned`.
|
|
166
|
+
*/
|
|
167
|
+
hasLearnedData(provider: string, complexity: ComplexityLevel, taskIntent?: string,
|
|
168
|
+
/** The concrete model, when known — its own arm is evidence too. */
|
|
169
|
+
model?: string): boolean;
|
|
170
|
+
/** Milliseconds since the newest recorded outcome (`Infinity` when none). */
|
|
171
|
+
ageMs(now?: number): number;
|
|
172
|
+
/**
|
|
173
|
+
* P6 (fix_model_routing) — NEGATIVE REWARD for a step-level failure.
|
|
174
|
+
*
|
|
175
|
+
* `recordOutcome` rewards a model only when a whole TASK succeeds or fails,
|
|
176
|
+
* which never happens for the failure that actually killed runs: a model that
|
|
177
|
+
* resolves a step with NOTHING usable. That model was retried, the turn ended
|
|
178
|
+
* `bounded`, and the bandit learned nothing — so its prior kept sampling the
|
|
179
|
+
* same broken arm back up. This is where an ungrounded "learned" score comes
|
|
180
|
+
* from, and where it is now corrected.
|
|
181
|
+
*
|
|
182
|
+
* The signal is a property of the MODEL rather than of the task (a model that
|
|
183
|
+
* returns nothing fails every kind of ask), so when no bucket is supplied the
|
|
184
|
+
* penalty lands on every arm that already holds an entry for this model — the
|
|
185
|
+
* only arms that could otherwise keep sampling it up — and a brand-new model
|
|
186
|
+
* with no arms at all gets the general bucket rather than inventing
|
|
187
|
+
* task-specific ones.
|
|
188
|
+
*/
|
|
189
|
+
penalizeModel(model: string, complexity?: ComplexityLevel, taskIntent?: string): void;
|
|
190
|
+
/**
|
|
191
|
+
* P6 — staleness guard. A store whose newest sample is older than
|
|
192
|
+
* {@link BANDIT_STALENESS_MS} describes a different machine, different keys
|
|
193
|
+
* and a different model roster; calling its output "learned" for today's task
|
|
194
|
+
* is a claim nobody checked. Observed on disk: the store was last written 11
|
|
195
|
+
* days before the decision it supposedly informed.
|
|
196
|
+
*/
|
|
197
|
+
isStale(now?: number): boolean;
|
|
133
198
|
/** Note the provider picked for an agent type (for recordOutcome wiring). */
|
|
134
199
|
noteDecision(agentType: string, provider: string): void;
|
|
135
200
|
/** Provider picked last for an agent type, if any. */
|
|
@@ -181,6 +246,73 @@ export declare class RouterBandit {
|
|
|
181
246
|
* learning (ADR-149) so subtask labels stay consistent.
|
|
182
247
|
*/
|
|
183
248
|
recordModelOutcomeWithComplexity(model: string, complexity: ComplexityLevel, outcome: BanditOutcome, costScore?: number, outcomeData?: Partial<BanditOutcomeData>, taskIntent?: string): void;
|
|
249
|
+
/**
|
|
250
|
+
* Apply the DEFERRED half of `userAccepted: false` to the arms that served the
|
|
251
|
+
* turn the user has just corrected.
|
|
252
|
+
*
|
|
253
|
+
* WHY DEFERRED. The user's verdict on a turn arrives with their NEXT message
|
|
254
|
+
* ("still broken", "no change"), but bandit learning happens at the END of the
|
|
255
|
+
* turn it describes — so the signal can never be part of that turn's own
|
|
256
|
+
* observation. Reading the user's SILENCE as acceptance would be a fabricated
|
|
257
|
+
* sample (exactly what this reward model refuses to do), so the turn is recorded
|
|
258
|
+
* as it was and the rejection is applied when it actually arrives.
|
|
259
|
+
*
|
|
260
|
+
* Only a SUCCESS carries an un-applied penalty: the escalated and failure
|
|
261
|
+
* branches of `applyReward` never read `userAccepted`, so a rejection of one of
|
|
262
|
+
* those is already fully reflected and adds nothing.
|
|
263
|
+
*
|
|
264
|
+
* A rejection CORRECTS an existing arm and never creates one — a turn we never
|
|
265
|
+
* recorded has nothing to correct.
|
|
266
|
+
*
|
|
267
|
+
* @returns True when a prior was actually moved.
|
|
268
|
+
*/
|
|
269
|
+
recordUserRejection(provider: string, complexity: ComplexityLevel, outcome: BanditOutcome, taskIntent?: string, model?: string): boolean;
|
|
270
|
+
/**
|
|
271
|
+
* Apply an EXPLICIT user verdict (`nuvira rate bad`, or the dashboard's 👎) to the
|
|
272
|
+
* arms that served the trace it is about.
|
|
273
|
+
*
|
|
274
|
+
* WHY A SEPARATE ENTRY POINT. `recordUserRejection` applies the same deferred
|
|
275
|
+
* delta for the DERIVED signal, but its attribution lives in the in-process
|
|
276
|
+
* `pendingOutcome` slot: it is gone by the time the user rates a turn from the
|
|
277
|
+
* CLI (or from the dashboard after the process ended). An explicit verdict names
|
|
278
|
+
* a TRACE, so this reads the pair and complexity the trace recorded and corrects
|
|
279
|
+
* the arm there — the same `α−δ / β+δ` a known verdict would have applied at
|
|
280
|
+
* record time.
|
|
281
|
+
*
|
|
282
|
+
* COUNTED ONCE, EVER. The trace id is remembered, so a re-run — or a verdict
|
|
283
|
+
* that follows a DERIVED rejection of the same turn — cannot move the arm twice.
|
|
284
|
+
* The marker is written even when no arm existed, because a rejection CORRECTS an
|
|
285
|
+
* existing arm and never creates one, and a second attempt must not suddenly
|
|
286
|
+
* apply a delta the first deliberately did not.
|
|
287
|
+
*
|
|
288
|
+
* Only a SUCCESS carries an un-applied penalty: the escalated and failure
|
|
289
|
+
* branches of `applyReward` never read `userAccepted`, so a rejection of one of
|
|
290
|
+
* those is already fully reflected.
|
|
291
|
+
*/
|
|
292
|
+
recordExplicitVerdict(input: {
|
|
293
|
+
traceId: string;
|
|
294
|
+
provider: string;
|
|
295
|
+
complexity: ComplexityLevel;
|
|
296
|
+
taskIntent?: string;
|
|
297
|
+
model?: string;
|
|
298
|
+
/** The outcome the turn's own evidence was recorded under (see `turnOutcomeObservation`). */
|
|
299
|
+
outcome: BanditOutcome;
|
|
300
|
+
}): {
|
|
301
|
+
applied: boolean;
|
|
302
|
+
alreadyApplied: boolean;
|
|
303
|
+
moved: number;
|
|
304
|
+
reason: string;
|
|
305
|
+
};
|
|
306
|
+
/**
|
|
307
|
+
* The bucket keys whose arms could have served this turn, most precise first.
|
|
308
|
+
*
|
|
309
|
+
* The exact `intent:complexity` bucket is used when the trace carried the intent
|
|
310
|
+
* (new traces do; see `TraceRoutingSnapshot.taskIntent`). When it did not — an
|
|
311
|
+
* older trace — every bucket at the SAME complexity that already holds an entry
|
|
312
|
+
* for the provider is corrected instead, because a correction that silently
|
|
313
|
+
* no-ops is worse than one that lands on the buckets this pair could have served.
|
|
314
|
+
*/
|
|
315
|
+
private correctionKeys;
|
|
184
316
|
/**
|
|
185
317
|
* Update the PER-MODEL prior for a concrete model id in the task's complexity
|
|
186
318
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-bandit.d.ts","sourceRoot":"","sources":["../../src/learning/router-bandit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI7E,oDAAoD;AACpD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AAEhE,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,gCAAgC;AAChC,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAM/C,CAAC;AAEF,8BAA8B;AAC9B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAClD;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACvD,4DAA4D;IAC5D,eAAe,EAAE,KAAK,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,6EAA6E;QAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,iFAAiF;QACjF,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"router-bandit.d.ts","sourceRoot":"","sources":["../../src/learning/router-bandit.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,22 @@ import { analyzeComplexity } from './hybrid-router.js';
|
|
|
27
27
|
* unlearned and (when enabled) escalates to a provider/model that has data.
|
|
28
28
|
*/
|
|
29
29
|
export const DEFAULT_MIN_SAMPLES = 8;
|
|
30
|
+
/**
|
|
31
|
+
* How much one deferred `userAccepted: false` moves an arm.
|
|
32
|
+
*
|
|
33
|
+
* NOT a new reward rule: the success branch of {@link RouterBandit.applyReward}
|
|
34
|
+
* already treats `userAccepted: false` as `reward -= 0.1`, and `reward` moves α by
|
|
35
|
+
* exactly that amount (β by `1 - reward`). Applying the verdict a turn late is
|
|
36
|
+
* therefore `α -= 0.1, β += 0.1` — byte-for-byte the same arm the run would have
|
|
37
|
+
* had if the verdict had been known at record time. Stated as a constant so the
|
|
38
|
+
* two halves cannot drift apart.
|
|
39
|
+
*/
|
|
40
|
+
export const USER_REJECTION_DELTA = 0.1;
|
|
41
|
+
/**
|
|
42
|
+
* How old the newest recorded outcome may be before the bandit's data stops
|
|
43
|
+
* being described as "learned" for a decision made today. See `isStale`.
|
|
44
|
+
*/
|
|
45
|
+
export const BANDIT_STALENESS_MS = 7 * 24 * 60 * 60 * 1000;
|
|
30
46
|
/** The complexity buckets the bandit learns per provider. */
|
|
31
47
|
export const COMPLEXITY_BUCKETS = [
|
|
32
48
|
'trivial',
|
|
@@ -39,6 +55,8 @@ export const COMPLEXITY_BUCKETS = [
|
|
|
39
55
|
const DEFAULT_MEMORY_DIR = join(resolveNuviraHome(), 'memory');
|
|
40
56
|
const CURRENT_VERSION = 3; // v2 = per-modelId modelPriors; v3 = task-INTENT-aware buckets
|
|
41
57
|
const MAX_HISTORY = 200;
|
|
58
|
+
/** Cap the applied-verdict dedupe set (oldest drop first — a trace, once old, is never re-rated). */
|
|
59
|
+
const MAX_CORRECTED_VERDICTS = 2000;
|
|
42
60
|
function memoryDir() {
|
|
43
61
|
return envBuff('MEMORY_DIR') || DEFAULT_MEMORY_DIR;
|
|
44
62
|
}
|
|
@@ -187,6 +205,99 @@ export class RouterBandit {
|
|
|
187
205
|
getPrior(provider, complexity, taskIntent) {
|
|
188
206
|
return this.state.priors[this.bucketKey(complexity, taskIntent)]?.[provider] ?? { alpha: 1, beta: 1 };
|
|
189
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* P6 (fix_model_routing) — IS THERE ACTUALLY LEARNED DATA for this arm?
|
|
210
|
+
*
|
|
211
|
+
* `Beta(1,1)` is the UNTOUCHED prior: no outcome has ever been recorded for
|
|
212
|
+
* this provider in this bucket. The router used to call any `useBandit`
|
|
213
|
+
* decision `bandit-learned`, so a decision made from a cold-start prior — a
|
|
214
|
+
* score multiplied by a constant 0.5 that cannot reorder anything — was
|
|
215
|
+
* presented to the user as learned. Live: the store had no entry for ANY of
|
|
216
|
+
* the models in play, and the trace still read `bandit-learned`.
|
|
217
|
+
*/
|
|
218
|
+
hasLearnedData(provider, complexity, taskIntent,
|
|
219
|
+
/** The concrete model, when known — its own arm is evidence too. */
|
|
220
|
+
model) {
|
|
221
|
+
const prior = this.getPrior(provider, complexity, taskIntent);
|
|
222
|
+
if (prior.alpha + prior.beta > 2)
|
|
223
|
+
return true;
|
|
224
|
+
if (model) {
|
|
225
|
+
const modelPrior = this.getModelPrior(model, complexity, taskIntent);
|
|
226
|
+
if (modelPrior.alpha + modelPrior.beta > 2)
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
/** Milliseconds since the newest recorded outcome (`Infinity` when none). */
|
|
232
|
+
ageMs(now = Date.now()) {
|
|
233
|
+
const newest = this.state.learningHistory.reduce((acc, h) => {
|
|
234
|
+
const t = Date.parse(h.timestamp ?? '');
|
|
235
|
+
return Number.isFinite(t) && t > acc ? t : acc;
|
|
236
|
+
}, 0);
|
|
237
|
+
return newest === 0 ? Number.POSITIVE_INFINITY : Math.max(0, now - newest);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* P6 (fix_model_routing) — NEGATIVE REWARD for a step-level failure.
|
|
241
|
+
*
|
|
242
|
+
* `recordOutcome` rewards a model only when a whole TASK succeeds or fails,
|
|
243
|
+
* which never happens for the failure that actually killed runs: a model that
|
|
244
|
+
* resolves a step with NOTHING usable. That model was retried, the turn ended
|
|
245
|
+
* `bounded`, and the bandit learned nothing — so its prior kept sampling the
|
|
246
|
+
* same broken arm back up. This is where an ungrounded "learned" score comes
|
|
247
|
+
* from, and where it is now corrected.
|
|
248
|
+
*
|
|
249
|
+
* The signal is a property of the MODEL rather than of the task (a model that
|
|
250
|
+
* returns nothing fails every kind of ask), so when no bucket is supplied the
|
|
251
|
+
* penalty lands on every arm that already holds an entry for this model — the
|
|
252
|
+
* only arms that could otherwise keep sampling it up — and a brand-new model
|
|
253
|
+
* with no arms at all gets the general bucket rather than inventing
|
|
254
|
+
* task-specific ones.
|
|
255
|
+
*/
|
|
256
|
+
penalizeModel(model, complexity, taskIntent) {
|
|
257
|
+
if (!model || model === 'default')
|
|
258
|
+
return;
|
|
259
|
+
const keys = [];
|
|
260
|
+
if (complexity) {
|
|
261
|
+
keys.push(this.bucketKey(complexity, taskIntent));
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
for (const key of Object.keys(this.state.modelPriors)) {
|
|
265
|
+
if (this.state.modelPriors[key]?.[model])
|
|
266
|
+
keys.push(key);
|
|
267
|
+
}
|
|
268
|
+
if (keys.length === 0)
|
|
269
|
+
keys.push(this.bucketKey('moderate', taskIntent));
|
|
270
|
+
}
|
|
271
|
+
const nowIso = new Date().toISOString();
|
|
272
|
+
for (const key of keys) {
|
|
273
|
+
const bucket = this.state.modelPriors[key] ?? (this.state.modelPriors[key] = {});
|
|
274
|
+
const prior = bucket[model] ?? (bucket[model] = { alpha: 1, beta: 1 });
|
|
275
|
+
prior.beta += 1;
|
|
276
|
+
this.state.learningHistory.push({
|
|
277
|
+
provider: model, // model-id surface; `provider` keeps CLI history rendering
|
|
278
|
+
model,
|
|
279
|
+
complexity: (complexity ?? 'moderate'),
|
|
280
|
+
...(taskIntent ? { taskIntent } : {}),
|
|
281
|
+
outcome: 'failure',
|
|
282
|
+
reward: 0,
|
|
283
|
+
timestamp: nowIso,
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
if (this.state.learningHistory.length > MAX_HISTORY) {
|
|
287
|
+
this.state.learningHistory = this.state.learningHistory.slice(-MAX_HISTORY);
|
|
288
|
+
}
|
|
289
|
+
this.save();
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* P6 — staleness guard. A store whose newest sample is older than
|
|
293
|
+
* {@link BANDIT_STALENESS_MS} describes a different machine, different keys
|
|
294
|
+
* and a different model roster; calling its output "learned" for today's task
|
|
295
|
+
* is a claim nobody checked. Observed on disk: the store was last written 11
|
|
296
|
+
* days before the decision it supposedly informed.
|
|
297
|
+
*/
|
|
298
|
+
isStale(now = Date.now()) {
|
|
299
|
+
return this.ageMs(now) > BANDIT_STALENESS_MS;
|
|
300
|
+
}
|
|
190
301
|
/** Note the provider picked for an agent type (for recordOutcome wiring). */
|
|
191
302
|
noteDecision(agentType, provider) {
|
|
192
303
|
this.lastProviderByAgent[agentType] = provider;
|
|
@@ -335,6 +446,148 @@ export class RouterBandit {
|
|
|
335
446
|
}
|
|
336
447
|
this.save();
|
|
337
448
|
}
|
|
449
|
+
/**
|
|
450
|
+
* Apply the DEFERRED half of `userAccepted: false` to the arms that served the
|
|
451
|
+
* turn the user has just corrected.
|
|
452
|
+
*
|
|
453
|
+
* WHY DEFERRED. The user's verdict on a turn arrives with their NEXT message
|
|
454
|
+
* ("still broken", "no change"), but bandit learning happens at the END of the
|
|
455
|
+
* turn it describes — so the signal can never be part of that turn's own
|
|
456
|
+
* observation. Reading the user's SILENCE as acceptance would be a fabricated
|
|
457
|
+
* sample (exactly what this reward model refuses to do), so the turn is recorded
|
|
458
|
+
* as it was and the rejection is applied when it actually arrives.
|
|
459
|
+
*
|
|
460
|
+
* Only a SUCCESS carries an un-applied penalty: the escalated and failure
|
|
461
|
+
* branches of `applyReward` never read `userAccepted`, so a rejection of one of
|
|
462
|
+
* those is already fully reflected and adds nothing.
|
|
463
|
+
*
|
|
464
|
+
* A rejection CORRECTS an existing arm and never creates one — a turn we never
|
|
465
|
+
* recorded has nothing to correct.
|
|
466
|
+
*
|
|
467
|
+
* @returns True when a prior was actually moved.
|
|
468
|
+
*/
|
|
469
|
+
recordUserRejection(provider, complexity, outcome, taskIntent, model) {
|
|
470
|
+
if (outcome !== 'success')
|
|
471
|
+
return false;
|
|
472
|
+
const key = this.bucketKey(complexity, taskIntent);
|
|
473
|
+
// Clamp α above zero: a Beta prior needs positive shape parameters, so a run of
|
|
474
|
+
// rejections must never make an arm numerically invalid.
|
|
475
|
+
const applyDelta = (prior) => {
|
|
476
|
+
prior.alpha = Math.max(0.1, prior.alpha - USER_REJECTION_DELTA);
|
|
477
|
+
prior.beta += USER_REJECTION_DELTA;
|
|
478
|
+
};
|
|
479
|
+
let moved = false;
|
|
480
|
+
const providerPrior = this.state.priors[key]?.[provider];
|
|
481
|
+
if (providerPrior) {
|
|
482
|
+
applyDelta(providerPrior);
|
|
483
|
+
moved = true;
|
|
484
|
+
}
|
|
485
|
+
if (model) {
|
|
486
|
+
const modelPrior = this.state.modelPriors[key]?.[model];
|
|
487
|
+
if (modelPrior) {
|
|
488
|
+
applyDelta(modelPrior);
|
|
489
|
+
moved = true;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
if (moved)
|
|
493
|
+
this.save();
|
|
494
|
+
return moved;
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* Apply an EXPLICIT user verdict (`nuvira rate bad`, or the dashboard's 👎) to the
|
|
498
|
+
* arms that served the trace it is about.
|
|
499
|
+
*
|
|
500
|
+
* WHY A SEPARATE ENTRY POINT. `recordUserRejection` applies the same deferred
|
|
501
|
+
* delta for the DERIVED signal, but its attribution lives in the in-process
|
|
502
|
+
* `pendingOutcome` slot: it is gone by the time the user rates a turn from the
|
|
503
|
+
* CLI (or from the dashboard after the process ended). An explicit verdict names
|
|
504
|
+
* a TRACE, so this reads the pair and complexity the trace recorded and corrects
|
|
505
|
+
* the arm there — the same `α−δ / β+δ` a known verdict would have applied at
|
|
506
|
+
* record time.
|
|
507
|
+
*
|
|
508
|
+
* COUNTED ONCE, EVER. The trace id is remembered, so a re-run — or a verdict
|
|
509
|
+
* that follows a DERIVED rejection of the same turn — cannot move the arm twice.
|
|
510
|
+
* The marker is written even when no arm existed, because a rejection CORRECTS an
|
|
511
|
+
* existing arm and never creates one, and a second attempt must not suddenly
|
|
512
|
+
* apply a delta the first deliberately did not.
|
|
513
|
+
*
|
|
514
|
+
* Only a SUCCESS carries an un-applied penalty: the escalated and failure
|
|
515
|
+
* branches of `applyReward` never read `userAccepted`, so a rejection of one of
|
|
516
|
+
* those is already fully reflected.
|
|
517
|
+
*/
|
|
518
|
+
recordExplicitVerdict(input) {
|
|
519
|
+
const noop = (reason, alreadyApplied = false) => ({
|
|
520
|
+
applied: false,
|
|
521
|
+
alreadyApplied,
|
|
522
|
+
moved: 0,
|
|
523
|
+
reason,
|
|
524
|
+
});
|
|
525
|
+
if (!input.traceId)
|
|
526
|
+
return noop('no trace id to key the correction on');
|
|
527
|
+
const done = this.state.correctedVerdicts ?? [];
|
|
528
|
+
if (done.includes(input.traceId))
|
|
529
|
+
return noop('this verdict was already applied', true);
|
|
530
|
+
if (input.outcome !== 'success') {
|
|
531
|
+
return noop('the turn was not recorded as a success — its arm never read the verdict');
|
|
532
|
+
}
|
|
533
|
+
const keys = this.correctionKeys(input.provider, input.complexity, input.taskIntent);
|
|
534
|
+
const applyDelta = (prior) => {
|
|
535
|
+
// Clamp α above zero: a Beta prior needs positive shape parameters.
|
|
536
|
+
prior.alpha = Math.max(0.1, prior.alpha - USER_REJECTION_DELTA);
|
|
537
|
+
prior.beta += USER_REJECTION_DELTA;
|
|
538
|
+
};
|
|
539
|
+
let moved = 0;
|
|
540
|
+
for (const key of keys) {
|
|
541
|
+
const providerPrior = this.state.priors[key]?.[input.provider];
|
|
542
|
+
if (providerPrior) {
|
|
543
|
+
applyDelta(providerPrior);
|
|
544
|
+
moved++;
|
|
545
|
+
}
|
|
546
|
+
if (input.model) {
|
|
547
|
+
const modelPrior = this.state.modelPriors[key]?.[input.model];
|
|
548
|
+
if (modelPrior) {
|
|
549
|
+
applyDelta(modelPrior);
|
|
550
|
+
moved++;
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
this.state.correctedVerdicts = [...done, input.traceId].slice(-MAX_CORRECTED_VERDICTS);
|
|
555
|
+
this.save();
|
|
556
|
+
return {
|
|
557
|
+
applied: true,
|
|
558
|
+
alreadyApplied: false,
|
|
559
|
+
moved,
|
|
560
|
+
reason: moved > 0 ? `moved ${moved} prior(s)` : 'no recorded arm for this pair yet',
|
|
561
|
+
};
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* The bucket keys whose arms could have served this turn, most precise first.
|
|
565
|
+
*
|
|
566
|
+
* The exact `intent:complexity` bucket is used when the trace carried the intent
|
|
567
|
+
* (new traces do; see `TraceRoutingSnapshot.taskIntent`). When it did not — an
|
|
568
|
+
* older trace — every bucket at the SAME complexity that already holds an entry
|
|
569
|
+
* for the provider is corrected instead, because a correction that silently
|
|
570
|
+
* no-ops is worse than one that lands on the buckets this pair could have served.
|
|
571
|
+
*/
|
|
572
|
+
correctionKeys(provider, complexity, taskIntent) {
|
|
573
|
+
const keys = [];
|
|
574
|
+
if (taskIntent) {
|
|
575
|
+
const exact = this.bucketKey(complexity, taskIntent);
|
|
576
|
+
if (this.state.priors[exact]?.[provider])
|
|
577
|
+
keys.push(exact);
|
|
578
|
+
}
|
|
579
|
+
else if (this.state.priors[complexity]?.[provider]) {
|
|
580
|
+
keys.push(complexity);
|
|
581
|
+
}
|
|
582
|
+
if (keys.length === 0) {
|
|
583
|
+
for (const key of Object.keys(this.state.priors)) {
|
|
584
|
+
if ((key === complexity || key.endsWith(`:${complexity}`)) && this.state.priors[key]?.[provider]) {
|
|
585
|
+
keys.push(key);
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
return keys;
|
|
590
|
+
}
|
|
338
591
|
/**
|
|
339
592
|
* Update the PER-MODEL prior for a concrete model id in the task's complexity
|
|
340
593
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-bandit.js","sourceRoot":"","sources":["../../src/learning/router-bandit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router-bandit.js","sourceRoot":"","sources":["../../src/learning/router-bandit.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,19 @@
|
|
|
19
19
|
*/
|
|
20
20
|
/** Where a routing decision came from. */
|
|
21
21
|
export type RoutingSource = 'explain' | 'benchmark' | 'eval' | 'chat' | 'orchestrator';
|
|
22
|
+
/**
|
|
23
|
+
* The scale a recorded `score` is on.
|
|
24
|
+
*
|
|
25
|
+
* Two scales decide a walk and they are NOT interchangeable: the auto-router
|
|
26
|
+
* ranks PROVIDERS by a weighted composite, while `buildModelCandidates` ranks
|
|
27
|
+
* MODELS. Comparing one against the other is meaningless, so a row states which
|
|
28
|
+
* it used (see `RoutingHistoryEntry.score`).
|
|
29
|
+
*/
|
|
30
|
+
export type RoutingScoreBasis =
|
|
31
|
+
/** The auto-router's provider-level weighted composite for this task. */
|
|
32
|
+
'provider'
|
|
33
|
+
/** A model-level candidate score from `buildModelCandidates`. */
|
|
34
|
+
| 'model';
|
|
22
35
|
/**
|
|
23
36
|
* A full routing-decision snapshot — the ranked candidate list with scores and
|
|
24
37
|
* the decision context, captured at decision time. Recorded for `explain`
|
|
@@ -83,8 +96,34 @@ export interface RoutingHistoryEntry {
|
|
|
83
96
|
provider: string;
|
|
84
97
|
/** Selected model within that provider */
|
|
85
98
|
model: string;
|
|
86
|
-
/**
|
|
87
|
-
|
|
99
|
+
/**
|
|
100
|
+
* The score of THIS row's own pick — and ONLY this row's pick.
|
|
101
|
+
*
|
|
102
|
+
* B2-a, measured live. There are two scales in play: the auto-router's
|
|
103
|
+
* provider-level COMPOSITE (`decision.score`) and the model-level candidate
|
|
104
|
+
* score from `buildModelCandidates`. `cli/chat.ts` used to write
|
|
105
|
+
* `score: decision.score` onto EVERY row of a failover walk, so three
|
|
106
|
+
* different pairs appeared to share one number — measured:
|
|
107
|
+
* `0.43836864406779663` on gemini/`gemma-4-26b-a4b-it`,
|
|
108
|
+
* openrouter/`cohere/command-r7b-12-2024` and deepseek/`deepseek-flash`, while
|
|
109
|
+
* the provider scores `model explain` prints for that same ask are
|
|
110
|
+
* `local 0.438` / `gemini 0.438`. A reader could only conclude the models had
|
|
111
|
+
* tied — and that is exactly the wrong inference the Bundle 8 live run drew
|
|
112
|
+
* ("equal priors, so the ranking carries no information"), when the
|
|
113
|
+
* model-level scores were in fact ORDERED at 0.9206 / 0.77 / 0.597148.
|
|
114
|
+
*
|
|
115
|
+
* So a row carries its own pick's score or nothing: an audit record may not
|
|
116
|
+
* borrow a number from a different pair, and may not invent one for an
|
|
117
|
+
* ordering placeholder. `scoreBasis` names the scale, because the two scales
|
|
118
|
+
* are not comparable and a column that silently mixes them is the same defect
|
|
119
|
+
* wearing a different hat.
|
|
120
|
+
*/
|
|
121
|
+
score?: number;
|
|
122
|
+
/**
|
|
123
|
+
* Which scale `score` is on. Present whenever `score` is meant to be read or
|
|
124
|
+
* compared; absent alongside an absent `score`.
|
|
125
|
+
*/
|
|
126
|
+
scoreBasis?: RoutingScoreBasis;
|
|
88
127
|
/**
|
|
89
128
|
* Full decision snapshot (ranked candidates + context) — recorded for
|
|
90
129
|
* `explain` decisions to power `model explain --since` (P3-M3.3). Optional:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing-history.d.ts","sourceRoot":"","sources":["../../src/learning/routing-history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AASH,0CAA0C;AAC1C,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,wBAAwB;IACxB,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,iEAAiE;IACjE,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,gFAAgF;QAChF,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,sDAAsD;QACtD,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gEAAgE;QAChE,UAAU,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;QACtC,mDAAmD;QACnD,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,8BAA8B;IAC9B,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjE;AAED,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd
|
|
1
|
+
{"version":3,"file":"routing-history.d.ts","sourceRoot":"","sources":["../../src/learning/routing-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing-history.js","sourceRoot":"","sources":["../../src/learning/routing-history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAC,OAAO,EAAE,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"routing-history.js","sourceRoot":"","sources":["../../src/learning/routing-history.ts"],"names":[],"mappings":"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"}
|