agent-nuvira 3.3.12 → 3.3.14
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/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 +31 -0
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +103 -135
- 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 +798 -39
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts.map +1 -1
- package/dist/cli/cli-program.js +20 -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 +107 -3
- 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/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +6 -0
- package/dist/cli/execute.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 +31 -0
- package/dist/cli/knowledge.d.ts.map +1 -0
- package/dist/cli/knowledge.js +223 -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 +92 -18
- 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/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/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/config/types.d.ts +8 -0
- package/dist/config/types.d.ts.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/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 +206 -0
- package/dist/gateway/hook-contract.d.ts.map +1 -0
- package/dist/gateway/hook-contract.js +449 -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/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 +54 -0
- package/dist/inference/interface.d.ts.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/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/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 +32 -8
- package/dist/inference/route-resolver.d.ts.map +1 -1
- package/dist/inference/route-resolver.js +175 -1
- package/dist/inference/route-resolver.js.map +1 -1
- package/dist/inference/tool-call-utils.d.ts.map +1 -1
- package/dist/inference/tool-call-utils.js +10 -8
- package/dist/inference/tool-call-utils.js.map +1 -1
- package/dist/inference/tools.d.ts +17 -1
- package/dist/inference/tools.d.ts.map +1 -1
- package/dist/inference/tools.js +69 -19
- 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 +121 -24
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +374 -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 +45 -2
- package/dist/learning/error-repair.d.ts.map +1 -1
- package/dist/learning/error-repair.js +95 -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 +350 -0
- package/dist/learning/knowledge-base.d.ts.map +1 -0
- package/dist/learning/knowledge-base.js +906 -0
- package/dist/learning/knowledge-base.js.map +1 -0
- 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 +2 -1
- package/dist/learning/model-selection.d.ts.map +1 -1
- package/dist/learning/model-selection.js +76 -2
- 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/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/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/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 +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/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/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/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/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 +44 -4
- package/dist/tools/plan-store.d.ts.map +1 -1
- package/dist/tools/plan-store.js +93 -9
- 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 +623 -15
- 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 +316 -0
- package/dist/tools/remediation-ladder.js.map +1 -0
- 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 +289 -10
- 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 +327 -13
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +891 -66
- 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/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 +40 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +733 -15
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +236 -1
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/dist/web-dashboard/workspace-guard.d.ts +18 -2
- package/dist/web-dashboard/workspace-guard.d.ts.map +1 -1
- package/dist/web-dashboard/workspace-guard.js +94 -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-tK8Y2qHB.css +1 -0
- 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 +2 -2
- package/src/web-dashboard/public/assets/index-BrZcYhy6.js +0 -207
- package/src/web-dashboard/public/assets/index-BrZcYhy6.js.map +0 -1
- package/src/web-dashboard/public/assets/index-DsWczTa6.css +0 -1
|
@@ -16,7 +16,10 @@
|
|
|
16
16
|
* then picked a model within the winning provider.
|
|
17
17
|
*/
|
|
18
18
|
import { getModelRegistry } from './model-registry.js';
|
|
19
|
+
import { classifyPairEntitlement, orderByEntitlement } from './pair-entitlement.js';
|
|
19
20
|
import { getCatalogProvider, CATALOG_PROVIDER_IDS } from '../inference/provider-catalog.js';
|
|
21
|
+
import { isSmallTalk } from './hybrid-router.js';
|
|
22
|
+
import { hasCredentials, KEYLESS_PROVIDERS } from './model-selection.js';
|
|
20
23
|
import { isNonChatModel } from '../inference/model-catalog.js';
|
|
21
24
|
// ─── Task Analysis ──────────────────────────────────────────────────────────
|
|
22
25
|
/**
|
|
@@ -43,7 +46,11 @@ export function estimateTaskRequirements(taskDescription, complexity, estimatedI
|
|
|
43
46
|
if (desc.includes('security') || desc.includes('audit') || desc.includes('vulnerability')) {
|
|
44
47
|
reasoningNeed = 'high';
|
|
45
48
|
}
|
|
46
|
-
|
|
49
|
+
// B2 — a greeting is a WHOLE WORD and the WHOLE MESSAGE. The old substring
|
|
50
|
+
// test (`desc.includes('hi')`) matched `this`/`which`/`anything`, which is how
|
|
51
|
+
// 81 of 160 recorded tasks ended up on `reasoningNeed: 'low'` and how a
|
|
52
|
+
// multi-provider engineering ask got ranked a 4B-active model first.
|
|
53
|
+
if (isSmallTalk(taskDescription)) {
|
|
47
54
|
reasoningNeed = 'low';
|
|
48
55
|
}
|
|
49
56
|
const speedPriority = desc.includes('quick') || desc.includes('fast') || desc.includes('urgent')
|
|
@@ -113,30 +120,43 @@ function scoreModelOnProvider(model, provider, entry, catalog, requirements, pro
|
|
|
113
120
|
return { costPerMToken: 0, costScore: 0, capabilityFit: 0, health: 0, quotaAvailability: 0, providerSpeed: 0, verification: 0 };
|
|
114
121
|
// 2. Capability fit — score by model SIZE relative to task complexity
|
|
115
122
|
let capabilityFit = 0.5;
|
|
116
|
-
// Detect model size from name (b = billion parameters)
|
|
123
|
+
// Detect model size from name (b = billion parameters).
|
|
124
|
+
//
|
|
125
|
+
// P6 (fix_model_routing) — MOE ACTIVE PARAMETERS COUNT, NOT TOTAL ONES. A
|
|
126
|
+
// mixture-of-experts name like `gemma-4-26b-a4b-it` holds 26B parameters but
|
|
127
|
+
// routes each token through ~4B of them, and it is the ACTIVE width that
|
|
128
|
+
// decides whether a model can hold a multi-step agentic task — which is why
|
|
129
|
+
// the tag is in the name at all. The naive parse read `26b` and ranked it as a
|
|
130
|
+
// MEDIUM model with capabilityFit 1.0, measured live as the #1 pick (0.87)
|
|
131
|
+
// above `gemini-3.1-flash-lite`, during the very run that then returned five
|
|
132
|
+
// empty responses in a row. Reading the active width is not a heuristics
|
|
133
|
+
// rewrite: it is reading the number the provider published.
|
|
117
134
|
const sizeMatch = modelLower.match(/(\d+\.?\d*)b/);
|
|
118
135
|
const sizeB = sizeMatch ? parseFloat(sizeMatch[1]) : 0;
|
|
136
|
+
const activeMatch = modelLower.match(/a(\d+\.?\d*)b/);
|
|
137
|
+
const activeB = activeMatch ? parseFloat(activeMatch[1]) : 0;
|
|
138
|
+
const effectiveB = activeB > 0 && (sizeB === 0 || activeB < sizeB) ? activeB : sizeB;
|
|
119
139
|
// Per-model pricing that depends on size detection
|
|
120
140
|
if (modelLower.includes('qwen') && sizeB >= 70)
|
|
121
141
|
costPerMToken = 0.0009;
|
|
122
142
|
else if (modelLower.includes('qwen') && sizeB > 0)
|
|
123
143
|
costPerMToken = 0.0001;
|
|
124
144
|
// Known large models (70B+ params or known high-capability closed models)
|
|
125
|
-
const isLargeModel =
|
|
145
|
+
const isLargeModel = effectiveB >= 70
|
|
126
146
|
|| modelLower.includes('gpt-4o') && !modelLower.includes('mini')
|
|
127
147
|
|| modelLower.includes('claude-3') && !modelLower.includes('haiku')
|
|
128
148
|
|| modelLower.includes('sonnet') || modelLower.includes('opus')
|
|
129
149
|
|| modelLower.includes('o1') || modelLower.includes('o3') || modelLower.includes('o4')
|
|
130
150
|
|| (modelLower.includes('gemini') && (modelLower.includes('pro') && !modelLower.includes('nano')));
|
|
131
151
|
// Known medium models (8B-70B or known mid-tier closed models)
|
|
132
|
-
const isMediumModel = (
|
|
152
|
+
const isMediumModel = (effectiveB >= 8 && effectiveB < 70)
|
|
133
153
|
|| modelLower.includes('gpt-4o-mini') || modelLower.includes('gpt-4o-nano')
|
|
134
154
|
|| modelLower.includes('haiku') || modelLower.includes('flash')
|
|
135
155
|
|| (modelLower.includes('gemini') && (modelLower.includes('flash') || modelLower.includes('lite')))
|
|
136
156
|
|| modelLower.includes('mistral-small') || modelLower.includes('mistral-medium')
|
|
137
157
|
|| modelLower.includes('command-r') && !modelLower.includes('plus');
|
|
138
158
|
// Known small models (<8B or known lightweight)
|
|
139
|
-
const isSmallModel = (
|
|
159
|
+
const isSmallModel = (effectiveB > 0 && effectiveB < 8)
|
|
140
160
|
|| modelLower.includes('nano') || modelLower.includes('0.5b') || modelLower.includes('micro')
|
|
141
161
|
|| modelLower.includes('turbo') && !modelLower.includes('gpt')
|
|
142
162
|
|| modelLower.includes('lite') || modelLower.includes('tiny') || modelLower.includes('mini') && sizeB > 0;
|
|
@@ -165,6 +185,16 @@ function scoreModelOnProvider(model, provider, entry, catalog, requirements, pro
|
|
|
165
185
|
else if (isLargeModel)
|
|
166
186
|
capabilityFit = 0.5; // Overkill
|
|
167
187
|
}
|
|
188
|
+
// P6 — EVIDENCE, not a name. A pair the registry has already judged
|
|
189
|
+
// `unavailable` (repeated real failures — including the empty-response park
|
|
190
|
+
// the routing fixes now record) must not keep presenting itself as a
|
|
191
|
+
// capability match for the task. `isCandidateAvailable` filters such an entry
|
|
192
|
+
// out of the tiered chain, but SCORING still ranked it as if it were healthy,
|
|
193
|
+
// so any caller that reads the ranking (or the report derived from it) saw an
|
|
194
|
+
// unfit model near the top. Capability is the dimension that claims "can do
|
|
195
|
+
// this" — it is exactly the one an availability ruling must limit.
|
|
196
|
+
if (entry?.status === 'unavailable')
|
|
197
|
+
capabilityFit = Math.min(capabilityFit, 0.2);
|
|
168
198
|
// 3. Health (latency + error rate)
|
|
169
199
|
let health = 0.7; // Default
|
|
170
200
|
if (entry) {
|
|
@@ -203,6 +233,44 @@ function scoreModelOnProvider(model, provider, entry, catalog, requirements, pro
|
|
|
203
233
|
verification,
|
|
204
234
|
};
|
|
205
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* P6 (fix_model_routing) — POOL HYGIENE: could this provider really serve this
|
|
238
|
+
* model id?
|
|
239
|
+
*
|
|
240
|
+
* The registry can hold pairs that are syntactically fine and physically
|
|
241
|
+
* impossible, and a `verified` status on one of them is worse than useless — it
|
|
242
|
+
* spends a fallback slot, a round trip, and (as an "eligible model") credibility
|
|
243
|
+
* on a call that cannot succeed. Observed on disk: `gemini/qwen2.5:0.5b` and
|
|
244
|
+
* `groq/wire-stub-model` marked verified.
|
|
245
|
+
*
|
|
246
|
+
* Deliberately CONSERVATIVE — only two rules, both of which are decidable from
|
|
247
|
+
* the id alone:
|
|
248
|
+
*
|
|
249
|
+
* 1. An Ollama-style TAGGED id (`name:tag`) is a LOCAL runner's naming
|
|
250
|
+
* scheme. A hosted provider does not serve `qwen2.5:0.5b`; the `:tag` form
|
|
251
|
+
* belongs to the local-ops providers (see KEYLESS_PROVIDERS).
|
|
252
|
+
* 2. Stub/fixture ids (`wire-stub-model`, `test-…`, `…-stub`) come from test
|
|
253
|
+
* harnesses and must never be routed to.
|
|
254
|
+
*
|
|
255
|
+
* Anything needing a catalog to adjudicate (a vendor that does not serve a
|
|
256
|
+
* family) is NOT guessed at here: a wrong exclusion silently removes a working
|
|
257
|
+
* model, which is the more expensive mistake.
|
|
258
|
+
*/
|
|
259
|
+
export function isPairPlausible(provider, model) {
|
|
260
|
+
const id = (model ?? '').trim().toLowerCase();
|
|
261
|
+
if (!id)
|
|
262
|
+
return false;
|
|
263
|
+
// 2. Fixture/stub ids.
|
|
264
|
+
if (/^(wire-|test-|fixture-|stub-)/.test(id) || /-stub(-|$)|\.stub\./.test(id))
|
|
265
|
+
return false;
|
|
266
|
+
// 1. Ollama-style tags only on a local runner.
|
|
267
|
+
if (id.includes(':')) {
|
|
268
|
+
const localRunner = KEYLESS_PROVIDERS.includes(provider) || provider === 'ollama';
|
|
269
|
+
if (!localRunner)
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
return true;
|
|
273
|
+
}
|
|
206
274
|
/**
|
|
207
275
|
* Build the full model candidate list across all providers.
|
|
208
276
|
* This is the core of model-first routing: instead of scoring providers,
|
|
@@ -215,6 +283,20 @@ export function buildModelCandidates(taskDescription, complexity, configManager,
|
|
|
215
283
|
// Determine which providers to consider
|
|
216
284
|
const providers = allowedProviders || CATALOG_PROVIDER_IDS;
|
|
217
285
|
for (const providerId of providers) {
|
|
286
|
+
// ── P5 (fix_model_routing) — A CREDENTIAL GATE, so the pool is CALLABLE ──
|
|
287
|
+
// Without this the candidate list (and every count derived from it) included
|
|
288
|
+
// providers the user has NO credential for. Measured on this machine: the
|
|
289
|
+
// pool claimed 538 models across 23 "providers" — openai, anthropic, xai,
|
|
290
|
+
// perplexity, bedrock, omniroute… all keyless here — while only 17 pairs had
|
|
291
|
+
// ever been verified. A report that can say "538 models are available"
|
|
292
|
+
// cannot be trusted when it says "no model can do this", and the ranking it
|
|
293
|
+
// produces is dominated by providers that would 401. Gated only when a
|
|
294
|
+
// ConfigManager is supplied (every real routing path passes one); callers
|
|
295
|
+
// that deliberately want the raw catalog — a probe sweep, a test — still get
|
|
296
|
+
// the unfiltered list, and `countEligibleModels` keeps its old behaviour
|
|
297
|
+
// rather than silently changing the meaning of an existing number.
|
|
298
|
+
if (configManager && !hasCredentials(configManager, providerId))
|
|
299
|
+
continue;
|
|
218
300
|
const catalog = getCatalogProvider(providerId);
|
|
219
301
|
const providerSpeed = catalog?.capabilities.speed || 0.5;
|
|
220
302
|
// Get ALL models for this provider from the registry
|
|
@@ -242,6 +324,12 @@ export function buildModelCandidates(taskDescription, complexity, configManager,
|
|
|
242
324
|
// serve a Google model) on every walk until this filter existed.
|
|
243
325
|
if (registry.isDeadPair(providerId, modelEntry.model))
|
|
244
326
|
continue;
|
|
327
|
+
// P6 — a pair that CANNOT exist is not a candidate: an Ollama-tagged id on
|
|
328
|
+
// a hosted provider, or a test fixture. Same class as the dead-pair filter
|
|
329
|
+
// above, decided from the id instead of from a past 404 (see
|
|
330
|
+
// `isPairPlausible`).
|
|
331
|
+
if (!isPairPlausible(providerId, modelEntry.model))
|
|
332
|
+
continue;
|
|
245
333
|
// Skip speech/audio/video/image/research models early
|
|
246
334
|
const modelLower = modelEntry.model.toLowerCase();
|
|
247
335
|
if (modelLower.includes('whisper') || modelLower.includes('tts') || modelLower.includes('speech')
|
|
@@ -290,15 +378,27 @@ export function buildModelCandidates(taskDescription, complexity, configManager,
|
|
|
290
378
|
provider: providerId,
|
|
291
379
|
score,
|
|
292
380
|
dimensions: dims,
|
|
381
|
+
entitlement: classifyPairEntitlement(modelEntry),
|
|
293
382
|
reason: reasons.length > 0 ? reasons.join(', ') : 'default',
|
|
294
383
|
entry: modelEntry,
|
|
295
384
|
catalog: catalog || undefined,
|
|
296
385
|
});
|
|
297
386
|
}
|
|
298
387
|
}
|
|
299
|
-
// Sort by score (best first)
|
|
388
|
+
// Sort by score (best first)…
|
|
300
389
|
candidates.sort((a, b) => b.score - a.score);
|
|
301
|
-
|
|
390
|
+
// …then, and ONLY then, let PAIR ENTITLEMENT reorder the pool.
|
|
391
|
+
//
|
|
392
|
+
// WHY AFTER THE SCORE SORT. The scored dimensions answer "which model is the
|
|
393
|
+
// better choice"; entitlement answers "may this account be called at all".
|
|
394
|
+
// Folding entitlement INTO the score would let a large enough capability or
|
|
395
|
+
// cost advantage buy a call the registry already knows is refused — measured:
|
|
396
|
+
// the run-D pin was refused and the same model was funded on another provider
|
|
397
|
+
// 6 seconds later. As a stable PARTITION it cannot: every funded pair precedes
|
|
398
|
+
// every refused one, while equal-entitlement candidates keep the score order
|
|
399
|
+
// the weights produced. Nothing is removed, so "reject only when nothing is
|
|
400
|
+
// left" still holds — the refused twins are simply the last thing tried.
|
|
401
|
+
return orderByEntitlement(candidates, (c) => c.entitlement ?? 'unknown');
|
|
302
402
|
}
|
|
303
403
|
/**
|
|
304
404
|
* Pick the best model candidate for a task.
|
|
@@ -321,11 +421,17 @@ export function pickBestModelCandidate(taskDescription, complexity, configManage
|
|
|
321
421
|
* pairs + non-chat models excluded) — the report can never disagree with what
|
|
322
422
|
* routing would actually consider.
|
|
323
423
|
*/
|
|
324
|
-
export function countEligibleModels(allowedProviders) {
|
|
424
|
+
export function countEligibleModels(allowedProviders, configManager) {
|
|
325
425
|
try {
|
|
326
426
|
// A neutral, class-agnostic description: we want the SIZE of the pool, not
|
|
327
427
|
// a ranking. Complexity only shifts score weights, never eligibility.
|
|
328
|
-
|
|
428
|
+
//
|
|
429
|
+
// P5: when a ConfigManager is supplied the count is CREDENTIALED — it is the
|
|
430
|
+
// set routing would actually try, not the catalog. Without it the count is
|
|
431
|
+
// the legacy filter-only number, which must never be used to justify a
|
|
432
|
+
// shortage claim ("no model is available") — it counts models this machine
|
|
433
|
+
// has no key for.
|
|
434
|
+
const candidates = buildModelCandidates('general task', 'moderate', configManager, allowedProviders);
|
|
329
435
|
const providers = new Set();
|
|
330
436
|
for (const c of candidates)
|
|
331
437
|
providers.add(c.provider);
|
|
@@ -377,6 +483,14 @@ export function isCandidateAvailable(candidate) {
|
|
|
377
483
|
if (candidate.entry) {
|
|
378
484
|
if (candidate.entry.quotaParkedUntil > Date.now())
|
|
379
485
|
return false;
|
|
486
|
+
// A REFUSED pair (the account cannot serve it: credit-exhausted / auth /
|
|
487
|
+
// billing, or the id does not exist there) is not available — retrying it
|
|
488
|
+
// buys a guaranteed failed round trip. `status === 'unavailable'` alone did
|
|
489
|
+
// not catch it, because the registry deliberately does NOT demote a
|
|
490
|
+
// `verified` entry on a later entitlement refusal (a top-up repairs it), so
|
|
491
|
+
// such a pair reads `verified` with a `402` in `lastError`.
|
|
492
|
+
if (classifyPairEntitlement(candidate.entry) === 'refused')
|
|
493
|
+
return false;
|
|
380
494
|
if (candidate.entry.status === 'unavailable')
|
|
381
495
|
return false;
|
|
382
496
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-first-router.js","sourceRoot":"","sources":["../../src/learning/model-first-router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model-first-router.js","sourceRoot":"","sources":["../../src/learning/model-first-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MODEL IDENTITY (A1) — when two provider × model rows are the SAME MODEL.
|
|
3
|
+
*
|
|
4
|
+
* THE DEFECT. The registry keys everything by `provider × model`, so two rows for
|
|
5
|
+
* one model are unrelated. Measured on this machine:
|
|
6
|
+
*
|
|
7
|
+
* | Row | Status |
|
|
8
|
+
* |---|---|
|
|
9
|
+
* | `openrouter / deepseek/deepseek-v4.1-flash` | `unavailable` (`credit-exhausted`) |
|
|
10
|
+
* | `deepseek / deepseek-flash` | `verified` |
|
|
11
|
+
*
|
|
12
|
+
* Nothing in the system could say "these are the same model", so the system could
|
|
13
|
+
* not tell an operator that the model they pinned is available on another
|
|
14
|
+
* provider, and the capability knowledge collected on one row could never inform
|
|
15
|
+
* the other.
|
|
16
|
+
*
|
|
17
|
+
* WHY A DECLARED TABLE, NOT A GUESS. `deepseek-flash` and
|
|
18
|
+
* `deepseek/deepseek-v4.1-flash` look similar and are the same model — but
|
|
19
|
+
* `deepseek-v4-flash` and `deepseek-v4.1-flash` also look similar and are NOT.
|
|
20
|
+
* Deciding identity from the spelling is the same name-based judgement this
|
|
21
|
+
* programme removes from capability scoring, so identity here is **data**: a small
|
|
22
|
+
* hand-maintained table, each entry carrying the date it was declared and the
|
|
23
|
+
* evidence it rests on. An id in no entry simply gets its own bare-id group
|
|
24
|
+
* (which is the pre-A1 behaviour), so an undeclared model is never grouped with
|
|
25
|
+
* the wrong one — the failure mode of a table is "unknown", not "wrong".
|
|
26
|
+
*
|
|
27
|
+
* ─── THE ONE RULE THAT MUST NOT BREAK ──────────────────────────────────────
|
|
28
|
+
*
|
|
29
|
+
* **Identity groups CAPABILITY, never ROUTABILITY.** Two providers are two
|
|
30
|
+
* ACCOUNTS with two independent truths: `openrouter`'s exhausted credits say
|
|
31
|
+
* nothing about `deepseek`'s funded account. So a verdict is NEVER copied across
|
|
32
|
+
* twins — not an availability verdict (that is defect F6: "the model works"
|
|
33
|
+
* masquerading as "this provider will serve it"), and not an error rate either.
|
|
34
|
+
* What identity buys is the QUESTION — "is the same model served by a provider
|
|
35
|
+
* that can serve it?" — and every candidate the question produces is then judged
|
|
36
|
+
* on its OWN registry row. `learning/pair-entitlement.ts` implements that
|
|
37
|
+
* judgement; this module only answers what a model IS.
|
|
38
|
+
*/
|
|
39
|
+
/** One hand-declared model, and the provider-specific ids it is served under. */
|
|
40
|
+
export interface DeclaredAlias {
|
|
41
|
+
/** The id this model is known as internally. */
|
|
42
|
+
canonical: string;
|
|
43
|
+
/**
|
|
44
|
+
* Every provider-specific id it is served under. The canonical id itself is
|
|
45
|
+
* implicitly a member (see `memberMatches`), so a provider serving the
|
|
46
|
+
* canonical spelling needs no separate entry.
|
|
47
|
+
*/
|
|
48
|
+
members: string[];
|
|
49
|
+
/** `YYYY-MM-DD` the entry was declared — printed wherever it is used. */
|
|
50
|
+
declaredAt: string;
|
|
51
|
+
/** What the declaration rests on. An assertion without a basis is a guess. */
|
|
52
|
+
note: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The declared aliases.
|
|
56
|
+
*
|
|
57
|
+
* Deliberately tiny and hand-checked: every entry is an ASSERTION, and a wrong one
|
|
58
|
+
* groups two different models. Entries are added from observed registry rows (a
|
|
59
|
+
* `verified` row on one provider beside an `unavailable` row on another for the
|
|
60
|
+
* same model is exactly how the first one was found), never from similarity.
|
|
61
|
+
*/
|
|
62
|
+
export declare const DECLARED_MODEL_ALIASES: DeclaredAlias[];
|
|
63
|
+
/**
|
|
64
|
+
* The identity key two ids must share to be treated as the same model.
|
|
65
|
+
*
|
|
66
|
+
* Prefixed (`canonical:` / `bare:`) so a canonical name can never collide with a
|
|
67
|
+
* model that happens to be called the same thing without being declared.
|
|
68
|
+
*/
|
|
69
|
+
export declare function identityKey(model: string | undefined | null): string;
|
|
70
|
+
/** Are these two ids the same model? Empty ids are never the same as anything. */
|
|
71
|
+
export declare function sameModel(a: string | undefined | null, b: string | undefined | null): boolean;
|
|
72
|
+
/** The declared entry that grouped this id, for printing WHERE identity came from. */
|
|
73
|
+
export declare function declaredAliasFor(model: string | undefined | null): DeclaredAlias | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* One line naming the provenance of a grouping, or `undefined` when the grouping
|
|
76
|
+
* is the bare-id rule. `model explain` prints it, so a reader can always tell a
|
|
77
|
+
* declared fact from a derived one.
|
|
78
|
+
*/
|
|
79
|
+
export declare function identityProvenance(model: string | undefined | null): string | undefined;
|
|
80
|
+
//# sourceMappingURL=model-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-identity.d.ts","sourceRoot":"","sources":["../../src/learning/model-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAAa,EAWjD,CAAC;AAuBF;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CASpE;AAED,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAI7F;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CAM5F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAGvF"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MODEL IDENTITY (A1) — when two provider × model rows are the SAME MODEL.
|
|
3
|
+
*
|
|
4
|
+
* THE DEFECT. The registry keys everything by `provider × model`, so two rows for
|
|
5
|
+
* one model are unrelated. Measured on this machine:
|
|
6
|
+
*
|
|
7
|
+
* | Row | Status |
|
|
8
|
+
* |---|---|
|
|
9
|
+
* | `openrouter / deepseek/deepseek-v4.1-flash` | `unavailable` (`credit-exhausted`) |
|
|
10
|
+
* | `deepseek / deepseek-flash` | `verified` |
|
|
11
|
+
*
|
|
12
|
+
* Nothing in the system could say "these are the same model", so the system could
|
|
13
|
+
* not tell an operator that the model they pinned is available on another
|
|
14
|
+
* provider, and the capability knowledge collected on one row could never inform
|
|
15
|
+
* the other.
|
|
16
|
+
*
|
|
17
|
+
* WHY A DECLARED TABLE, NOT A GUESS. `deepseek-flash` and
|
|
18
|
+
* `deepseek/deepseek-v4.1-flash` look similar and are the same model — but
|
|
19
|
+
* `deepseek-v4-flash` and `deepseek-v4.1-flash` also look similar and are NOT.
|
|
20
|
+
* Deciding identity from the spelling is the same name-based judgement this
|
|
21
|
+
* programme removes from capability scoring, so identity here is **data**: a small
|
|
22
|
+
* hand-maintained table, each entry carrying the date it was declared and the
|
|
23
|
+
* evidence it rests on. An id in no entry simply gets its own bare-id group
|
|
24
|
+
* (which is the pre-A1 behaviour), so an undeclared model is never grouped with
|
|
25
|
+
* the wrong one — the failure mode of a table is "unknown", not "wrong".
|
|
26
|
+
*
|
|
27
|
+
* ─── THE ONE RULE THAT MUST NOT BREAK ──────────────────────────────────────
|
|
28
|
+
*
|
|
29
|
+
* **Identity groups CAPABILITY, never ROUTABILITY.** Two providers are two
|
|
30
|
+
* ACCOUNTS with two independent truths: `openrouter`'s exhausted credits say
|
|
31
|
+
* nothing about `deepseek`'s funded account. So a verdict is NEVER copied across
|
|
32
|
+
* twins — not an availability verdict (that is defect F6: "the model works"
|
|
33
|
+
* masquerading as "this provider will serve it"), and not an error rate either.
|
|
34
|
+
* What identity buys is the QUESTION — "is the same model served by a provider
|
|
35
|
+
* that can serve it?" — and every candidate the question produces is then judged
|
|
36
|
+
* on its OWN registry row. `learning/pair-entitlement.ts` implements that
|
|
37
|
+
* judgement; this module only answers what a model IS.
|
|
38
|
+
*/
|
|
39
|
+
/**
|
|
40
|
+
* The declared aliases.
|
|
41
|
+
*
|
|
42
|
+
* Deliberately tiny and hand-checked: every entry is an ASSERTION, and a wrong one
|
|
43
|
+
* groups two different models. Entries are added from observed registry rows (a
|
|
44
|
+
* `verified` row on one provider beside an `unavailable` row on another for the
|
|
45
|
+
* same model is exactly how the first one was found), never from similarity.
|
|
46
|
+
*/
|
|
47
|
+
export const DECLARED_MODEL_ALIASES = [
|
|
48
|
+
{
|
|
49
|
+
canonical: 'deepseek-v4.1-flash',
|
|
50
|
+
members: ['deepseek-flash', 'deepseek/deepseek-v4.1-flash'],
|
|
51
|
+
declaredAt: '2026-10-07',
|
|
52
|
+
note: "DeepSeek's own API serves this model as `deepseek-flash`; OpenRouter's catalogue lists it as " +
|
|
53
|
+
'`deepseek/deepseek-v4.1-flash`. Declared from this machine\'s registry, where ' +
|
|
54
|
+
'`deepseek|deepseek-flash` was `verified` while `openrouter|deepseek/deepseek-v4.1-flash` was ' +
|
|
55
|
+
'`credit-exhausted` — the pair the programme could not previously relate.',
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
/** Lower-case, trimmed, and with the provider alias marker `~` stripped. */
|
|
59
|
+
function normalize(model) {
|
|
60
|
+
return (model ?? '').trim().toLowerCase().replace(/^~/, '');
|
|
61
|
+
}
|
|
62
|
+
/** Everything after the last `/` — the model's name without its vendor prefix. */
|
|
63
|
+
function bareId(id) {
|
|
64
|
+
const slash = id.lastIndexOf('/');
|
|
65
|
+
return slash >= 0 ? id.slice(slash + 1) : id;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Does this id name the declared member — exactly, or after dropping the vendor
|
|
69
|
+
* prefix? The same EXACT rule as before (`deepseek-flash` ≡
|
|
70
|
+
* `deepseek/deepseek-flash`), applied to each declared spelling.
|
|
71
|
+
*/
|
|
72
|
+
function memberMatches(member, id) {
|
|
73
|
+
const m = normalize(member);
|
|
74
|
+
return m === id || bareId(m) === bareId(id);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The identity key two ids must share to be treated as the same model.
|
|
78
|
+
*
|
|
79
|
+
* Prefixed (`canonical:` / `bare:`) so a canonical name can never collide with a
|
|
80
|
+
* model that happens to be called the same thing without being declared.
|
|
81
|
+
*/
|
|
82
|
+
export function identityKey(model) {
|
|
83
|
+
const id = normalize(model);
|
|
84
|
+
if (!id)
|
|
85
|
+
return '';
|
|
86
|
+
for (const alias of DECLARED_MODEL_ALIASES) {
|
|
87
|
+
if (memberMatches(alias.canonical, id) || alias.members.some((m) => memberMatches(m, id))) {
|
|
88
|
+
return `canonical:${normalize(alias.canonical)}`;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return `bare:${bareId(id)}`;
|
|
92
|
+
}
|
|
93
|
+
/** Are these two ids the same model? Empty ids are never the same as anything. */
|
|
94
|
+
export function sameModel(a, b) {
|
|
95
|
+
const ka = identityKey(a);
|
|
96
|
+
const kb = identityKey(b);
|
|
97
|
+
return !!ka && ka === kb;
|
|
98
|
+
}
|
|
99
|
+
/** The declared entry that grouped this id, for printing WHERE identity came from. */
|
|
100
|
+
export function declaredAliasFor(model) {
|
|
101
|
+
const id = normalize(model);
|
|
102
|
+
if (!id)
|
|
103
|
+
return undefined;
|
|
104
|
+
return DECLARED_MODEL_ALIASES.find((alias) => memberMatches(alias.canonical, id) || alias.members.some((m) => memberMatches(m, id)));
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* One line naming the provenance of a grouping, or `undefined` when the grouping
|
|
108
|
+
* is the bare-id rule. `model explain` prints it, so a reader can always tell a
|
|
109
|
+
* declared fact from a derived one.
|
|
110
|
+
*/
|
|
111
|
+
export function identityProvenance(model) {
|
|
112
|
+
const alias = declaredAliasFor(model);
|
|
113
|
+
return alias ? `declared alias → '${alias.canonical}' (table, ${alias.declaredAt})` : undefined;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=model-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-identity.js","sourceRoot":"","sources":["../../src/learning/model-identity.ts"],"names":[],"mappings":"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"}
|