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
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deliverable corpus — COLLECT the case item 13's residual needs, instead of
|
|
3
|
+
* inventing a detector for it.
|
|
4
|
+
*
|
|
5
|
+
* THE PROBLEM THIS EXISTS FOR. Bundle 23 catches an authored artifact materially
|
|
6
|
+
* SHORTER than a magnitude the ask stated, and Bundle 19 catches one that admits
|
|
7
|
+
* its own content was omitted. Neither reaches the remaining shape: a deliverable
|
|
8
|
+
* that is complete and on-length yet simply GENERIC — the case none of the live
|
|
9
|
+
* runs has produced, and the one no deterministic rule can judge, because judging
|
|
10
|
+
* it from vocabulary is the defect this programme exists to remove.
|
|
11
|
+
*
|
|
12
|
+
* So this module does not judge. It COLLECTS. When a turn delivers a single
|
|
13
|
+
* authored artifact that trips neither the omission nor the shortfall check, the
|
|
14
|
+
* bare facts of that delivery (the ask, the file, its length, a bounded excerpt)
|
|
15
|
+
* are appended here. If the user then reports the turn as a miss — the SAME
|
|
16
|
+
* correction signal (`detectRegressionSignal`) the working-state ledger and the
|
|
17
|
+
* bandit already use — the most recent candidate is labelled `rejected`.
|
|
18
|
+
*
|
|
19
|
+
* That pair — a fluent, on-length delivery plus a human's verdict on it — is the
|
|
20
|
+
* ground truth a measured quality signal must be fit to. Until rows carry the
|
|
21
|
+
* label the corpus is deliberately INERT: nothing reads it, nothing routes on it,
|
|
22
|
+
* and no score is derived from it. It is a dataset, not a detector. Deriving a
|
|
23
|
+
* signal from `verdict: null` rows, or from the excerpt's wording, would be the
|
|
24
|
+
* phrase-list defect one layer down.
|
|
25
|
+
*
|
|
26
|
+
* Storage: `<memory>/deliverable-candidates.jsonl` (honours `NUVIRA_MEMORY_DIR`).
|
|
27
|
+
* Every write is best-effort — collection must NEVER break a turn.
|
|
28
|
+
*/
|
|
29
|
+
/** Rows kept on disk (oldest drop first) — a dataset, not an unbounded log. */
|
|
30
|
+
export declare const MAX_DELIVERABLE_CANDIDATES = 500;
|
|
31
|
+
/** Characters of the artifact kept per row: enough to fit features to, bounded. */
|
|
32
|
+
export declare const DELIVERABLE_EXCERPT_MAX = 2000;
|
|
33
|
+
/** Characters of the ask kept per row. */
|
|
34
|
+
export declare const DELIVERABLE_ASK_MAX = 500;
|
|
35
|
+
/** One collected delivery, and (once the user speaks) the verdict on it. */
|
|
36
|
+
export interface DeliverableCandidate {
|
|
37
|
+
/** Epoch ms the delivery was recorded. */
|
|
38
|
+
ts: number;
|
|
39
|
+
/** The user's ask that produced the deliverable. */
|
|
40
|
+
ask: string;
|
|
41
|
+
/** The file the turn wrote. */
|
|
42
|
+
path: string;
|
|
43
|
+
/** Words actually delivered. */
|
|
44
|
+
deliveredWords: number;
|
|
45
|
+
/** The magnitude the ask stated, when it stated one. */
|
|
46
|
+
targetWords?: number;
|
|
47
|
+
/** The turn's own verdict, so a reader can see what was already known. */
|
|
48
|
+
verification?: string;
|
|
49
|
+
/** A bounded excerpt of the artifact. */
|
|
50
|
+
excerpt: string;
|
|
51
|
+
/** The trace this delivery belongs to, so a later verdict can label THIS row. */
|
|
52
|
+
traceId?: string;
|
|
53
|
+
/**
|
|
54
|
+
* `null` — the user has not judged the turn; `'accepted'` / `'rejected'` — they
|
|
55
|
+
* did. A boolean `rejected: false` is deliberately NOT used: it cannot tell
|
|
56
|
+
* "the user accepted it" from "the user never said", and reading silence as
|
|
57
|
+
* acceptance would fabricate the positive class a fitted signal needs most
|
|
58
|
+
* (the same rule the bandit follows).
|
|
59
|
+
*/
|
|
60
|
+
verdict: 'accepted' | 'rejected' | null;
|
|
61
|
+
/** Epoch ms the verdict was recorded. */
|
|
62
|
+
verdictAt?: number;
|
|
63
|
+
}
|
|
64
|
+
/** The corpus path — exported so tests and an inspection surface can name it. */
|
|
65
|
+
export declare function deliverableCorpusPath(): string;
|
|
66
|
+
/** Parse the JSONL store; a malformed line is skipped, never fatal. */
|
|
67
|
+
export declare function readDeliverableCandidates(): DeliverableCandidate[];
|
|
68
|
+
/**
|
|
69
|
+
* Record one magnitude-satisfied authored delivery. Returns the stored row, or
|
|
70
|
+
* null when there was nothing to record.
|
|
71
|
+
*/
|
|
72
|
+
export declare function recordDeliverableCandidate(input: {
|
|
73
|
+
ask: string;
|
|
74
|
+
path: string;
|
|
75
|
+
deliveredWords: number;
|
|
76
|
+
targetWords?: number;
|
|
77
|
+
verification?: string;
|
|
78
|
+
excerpt: string;
|
|
79
|
+
traceId?: string;
|
|
80
|
+
}, now?: number): DeliverableCandidate | null;
|
|
81
|
+
/**
|
|
82
|
+
* Label the most recent UNLABELLED candidate as rejected.
|
|
83
|
+
*
|
|
84
|
+
* Called when the user's next message reports the previous turn as a miss. Only
|
|
85
|
+
* the newest unlabelled row is touched: a correction speaks about the most recent
|
|
86
|
+
* delivery, and a row that already carries a verdict must not be relabelled by a
|
|
87
|
+
* later, unrelated complaint. Returns true when a row was labelled.
|
|
88
|
+
*/
|
|
89
|
+
export declare function markLastDeliverableRejected(now?: number): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Label the most recent UNLABELLED row with `verdict`.
|
|
92
|
+
*
|
|
93
|
+
* The general form of {@link markLastDeliverableRejected}, for callers that carry
|
|
94
|
+
* a verdict but not a trace id (the tier-3 behavioural path can infer a label from
|
|
95
|
+
* what the user did without a trace to attach it to). Only the newest unlabelled
|
|
96
|
+
* row is touched — a verdict speaks about the most recent delivery, and a row that
|
|
97
|
+
* already carries one must not be relabelled by a later, unrelated signal. Returns
|
|
98
|
+
* true when a row was labelled.
|
|
99
|
+
*/
|
|
100
|
+
export declare function labelNewestUnlabelled(verdict: 'accepted' | 'rejected', now?: number): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Label the delivery that belongs to `traceId` with the user's EXPLICIT verdict.
|
|
103
|
+
*
|
|
104
|
+
* Unlike {@link markLastDeliverableRejected} (which the derived correction signal
|
|
105
|
+
* uses), this is the reliable path: the row knows which trace produced it, so the
|
|
106
|
+
* label lands on the RIGHT delivery rather than on "the most recent one".
|
|
107
|
+
*
|
|
108
|
+
* When no row carries this trace, a REJECTION still falls back to the newest
|
|
109
|
+
* unlabelled row — the delivery may predate the trace link — but an ACCEPTANCE
|
|
110
|
+
* does not: inventing a positive label for a delivery we cannot identify is
|
|
111
|
+
* exactly the fabricated sample this corpus refuses. Returns true when a row was
|
|
112
|
+
* labelled.
|
|
113
|
+
*/
|
|
114
|
+
export declare function labelDeliverableByTrace(traceId: string, verdict: 'accepted' | 'rejected', now?: number): boolean;
|
|
115
|
+
/** Forget the whole corpus (CLI/test escape hatch). */
|
|
116
|
+
export declare function clearDeliverableCandidates(): void;
|
|
117
|
+
//# sourceMappingURL=deliverable-corpus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliverable-corpus.d.ts","sourceRoot":"","sources":["../../src/learning/deliverable-corpus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,+EAA+E;AAC/E,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,mFAAmF;AACnF,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;IACxC,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,iFAAiF;AACjF,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,uEAAuE;AACvE,wBAAgB,yBAAyB,IAAI,oBAAoB,EAAE,CA2BlE;AAYD;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE;IACL,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,EACD,GAAG,GAAE,MAAmB,GACvB,oBAAoB,GAAG,IAAI,CAiB7B;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,MAAmB,GAAG,OAAO,CAE7E;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,UAAU,GAAG,UAAU,EAChC,GAAG,GAAE,MAAmB,GACvB,OAAO,CAUT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,GAAG,UAAU,EAChC,GAAG,GAAE,MAAmB,GACvB,OAAO,CAUT;AAED,uDAAuD;AACvD,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deliverable corpus — COLLECT the case item 13's residual needs, instead of
|
|
3
|
+
* inventing a detector for it.
|
|
4
|
+
*
|
|
5
|
+
* THE PROBLEM THIS EXISTS FOR. Bundle 23 catches an authored artifact materially
|
|
6
|
+
* SHORTER than a magnitude the ask stated, and Bundle 19 catches one that admits
|
|
7
|
+
* its own content was omitted. Neither reaches the remaining shape: a deliverable
|
|
8
|
+
* that is complete and on-length yet simply GENERIC — the case none of the live
|
|
9
|
+
* runs has produced, and the one no deterministic rule can judge, because judging
|
|
10
|
+
* it from vocabulary is the defect this programme exists to remove.
|
|
11
|
+
*
|
|
12
|
+
* So this module does not judge. It COLLECTS. When a turn delivers a single
|
|
13
|
+
* authored artifact that trips neither the omission nor the shortfall check, the
|
|
14
|
+
* bare facts of that delivery (the ask, the file, its length, a bounded excerpt)
|
|
15
|
+
* are appended here. If the user then reports the turn as a miss — the SAME
|
|
16
|
+
* correction signal (`detectRegressionSignal`) the working-state ledger and the
|
|
17
|
+
* bandit already use — the most recent candidate is labelled `rejected`.
|
|
18
|
+
*
|
|
19
|
+
* That pair — a fluent, on-length delivery plus a human's verdict on it — is the
|
|
20
|
+
* ground truth a measured quality signal must be fit to. Until rows carry the
|
|
21
|
+
* label the corpus is deliberately INERT: nothing reads it, nothing routes on it,
|
|
22
|
+
* and no score is derived from it. It is a dataset, not a detector. Deriving a
|
|
23
|
+
* signal from `verdict: null` rows, or from the excerpt's wording, would be the
|
|
24
|
+
* phrase-list defect one layer down.
|
|
25
|
+
*
|
|
26
|
+
* Storage: `<memory>/deliverable-candidates.jsonl` (honours `NUVIRA_MEMORY_DIR`).
|
|
27
|
+
* Every write is best-effort — collection must NEVER break a turn.
|
|
28
|
+
*/
|
|
29
|
+
import { envBuff, resolveNuviraHome } from '../config/paths.js';
|
|
30
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
31
|
+
import { join } from 'node:path';
|
|
32
|
+
/** Rows kept on disk (oldest drop first) — a dataset, not an unbounded log. */
|
|
33
|
+
export const MAX_DELIVERABLE_CANDIDATES = 500;
|
|
34
|
+
/** Characters of the artifact kept per row: enough to fit features to, bounded. */
|
|
35
|
+
export const DELIVERABLE_EXCERPT_MAX = 2000;
|
|
36
|
+
/** Characters of the ask kept per row. */
|
|
37
|
+
export const DELIVERABLE_ASK_MAX = 500;
|
|
38
|
+
function memoryDir() {
|
|
39
|
+
return envBuff('MEMORY_DIR') || join(resolveNuviraHome(), 'memory');
|
|
40
|
+
}
|
|
41
|
+
function corpusPath() {
|
|
42
|
+
return join(memoryDir(), 'deliverable-candidates.jsonl');
|
|
43
|
+
}
|
|
44
|
+
/** The corpus path — exported so tests and an inspection surface can name it. */
|
|
45
|
+
export function deliverableCorpusPath() {
|
|
46
|
+
return corpusPath();
|
|
47
|
+
}
|
|
48
|
+
/** Parse the JSONL store; a malformed line is skipped, never fatal. */
|
|
49
|
+
export function readDeliverableCandidates() {
|
|
50
|
+
try {
|
|
51
|
+
if (!existsSync(corpusPath()))
|
|
52
|
+
return [];
|
|
53
|
+
const out = [];
|
|
54
|
+
for (const line of readFileSync(corpusPath(), 'utf-8').split('\n')) {
|
|
55
|
+
const trimmed = line.trim();
|
|
56
|
+
if (!trimmed)
|
|
57
|
+
continue;
|
|
58
|
+
try {
|
|
59
|
+
const row = JSON.parse(trimmed);
|
|
60
|
+
if (row && typeof row.path === 'string' && typeof row.ask === 'string') {
|
|
61
|
+
// Tolerate the short-lived shape that predates the tri-state verdict: an
|
|
62
|
+
// old `rejected: true` row is a rejection, and is MIGRATED on read so the
|
|
63
|
+
// rest of the module has exactly one shape to reason about.
|
|
64
|
+
if (row.verdict === undefined && row.rejected === true) {
|
|
65
|
+
row.verdict = 'rejected';
|
|
66
|
+
}
|
|
67
|
+
if (row.verdict === undefined)
|
|
68
|
+
row.verdict = null;
|
|
69
|
+
out.push(row);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// A corrupt line is skipped — a collection store must not become a landmine.
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return out;
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function writeCandidates(rows) {
|
|
83
|
+
try {
|
|
84
|
+
if (!existsSync(memoryDir()))
|
|
85
|
+
mkdirSync(memoryDir(), { recursive: true });
|
|
86
|
+
const capped = rows.slice(-MAX_DELIVERABLE_CANDIDATES);
|
|
87
|
+
writeFileSync(corpusPath(), capped.map((r) => JSON.stringify(r)).join('\n') + '\n', 'utf-8');
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Best-effort — collection must never break a turn.
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Record one magnitude-satisfied authored delivery. Returns the stored row, or
|
|
95
|
+
* null when there was nothing to record.
|
|
96
|
+
*/
|
|
97
|
+
export function recordDeliverableCandidate(input, now = Date.now()) {
|
|
98
|
+
if (!input.path || !input.excerpt)
|
|
99
|
+
return null;
|
|
100
|
+
const row = {
|
|
101
|
+
ts: now,
|
|
102
|
+
ask: (input.ask || '').replace(/\s+/g, ' ').slice(0, DELIVERABLE_ASK_MAX),
|
|
103
|
+
path: input.path,
|
|
104
|
+
deliveredWords: input.deliveredWords,
|
|
105
|
+
...(input.targetWords !== undefined ? { targetWords: input.targetWords } : {}),
|
|
106
|
+
...(input.verification ? { verification: input.verification } : {}),
|
|
107
|
+
...(input.traceId ? { traceId: input.traceId } : {}),
|
|
108
|
+
excerpt: input.excerpt.slice(0, DELIVERABLE_EXCERPT_MAX),
|
|
109
|
+
verdict: null,
|
|
110
|
+
};
|
|
111
|
+
const rows = readDeliverableCandidates();
|
|
112
|
+
rows.push(row);
|
|
113
|
+
writeCandidates(rows);
|
|
114
|
+
return row;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Label the most recent UNLABELLED candidate as rejected.
|
|
118
|
+
*
|
|
119
|
+
* Called when the user's next message reports the previous turn as a miss. Only
|
|
120
|
+
* the newest unlabelled row is touched: a correction speaks about the most recent
|
|
121
|
+
* delivery, and a row that already carries a verdict must not be relabelled by a
|
|
122
|
+
* later, unrelated complaint. Returns true when a row was labelled.
|
|
123
|
+
*/
|
|
124
|
+
export function markLastDeliverableRejected(now = Date.now()) {
|
|
125
|
+
return labelNewestUnlabelled('rejected', now);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Label the most recent UNLABELLED row with `verdict`.
|
|
129
|
+
*
|
|
130
|
+
* The general form of {@link markLastDeliverableRejected}, for callers that carry
|
|
131
|
+
* a verdict but not a trace id (the tier-3 behavioural path can infer a label from
|
|
132
|
+
* what the user did without a trace to attach it to). Only the newest unlabelled
|
|
133
|
+
* row is touched — a verdict speaks about the most recent delivery, and a row that
|
|
134
|
+
* already carries one must not be relabelled by a later, unrelated signal. Returns
|
|
135
|
+
* true when a row was labelled.
|
|
136
|
+
*/
|
|
137
|
+
export function labelNewestUnlabelled(verdict, now = Date.now()) {
|
|
138
|
+
const rows = readDeliverableCandidates();
|
|
139
|
+
for (let i = rows.length - 1; i >= 0; i--) {
|
|
140
|
+
if (rows[i].verdict === null) {
|
|
141
|
+
rows[i] = { ...rows[i], verdict, verdictAt: now };
|
|
142
|
+
writeCandidates(rows);
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Label the delivery that belongs to `traceId` with the user's EXPLICIT verdict.
|
|
150
|
+
*
|
|
151
|
+
* Unlike {@link markLastDeliverableRejected} (which the derived correction signal
|
|
152
|
+
* uses), this is the reliable path: the row knows which trace produced it, so the
|
|
153
|
+
* label lands on the RIGHT delivery rather than on "the most recent one".
|
|
154
|
+
*
|
|
155
|
+
* When no row carries this trace, a REJECTION still falls back to the newest
|
|
156
|
+
* unlabelled row — the delivery may predate the trace link — but an ACCEPTANCE
|
|
157
|
+
* does not: inventing a positive label for a delivery we cannot identify is
|
|
158
|
+
* exactly the fabricated sample this corpus refuses. Returns true when a row was
|
|
159
|
+
* labelled.
|
|
160
|
+
*/
|
|
161
|
+
export function labelDeliverableByTrace(traceId, verdict, now = Date.now()) {
|
|
162
|
+
const rows = readDeliverableCandidates();
|
|
163
|
+
for (let i = rows.length - 1; i >= 0; i--) {
|
|
164
|
+
if (rows[i].traceId === traceId) {
|
|
165
|
+
rows[i] = { ...rows[i], verdict, verdictAt: now };
|
|
166
|
+
writeCandidates(rows);
|
|
167
|
+
return true;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return verdict === 'rejected' ? markLastDeliverableRejected(now) : false;
|
|
171
|
+
}
|
|
172
|
+
/** Forget the whole corpus (CLI/test escape hatch). */
|
|
173
|
+
export function clearDeliverableCandidates() {
|
|
174
|
+
writeCandidates([]);
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=deliverable-corpus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliverable-corpus.js","sourceRoot":"","sources":["../../src/learning/deliverable-corpus.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* | `adjust-temperature` | Repetitive or hallucinated output | Lower temperature to 0.2 for more deterministic output |
|
|
21
21
|
* | `retry-tool` | Tool call failed with retryable error | Retry the same call after a brief delay |
|
|
22
22
|
* | `alternative-approach` | Persistent failures across strategies | Ask the LLM for a fundamentally different strategy, then re-execute |
|
|
23
|
+
* | `shrink-scope` | WEAK-MODEL path (escalation is a no-op) | Re-ask for the SMALLEST single unit, so a model that cannot hold the whole task still moves the work forward |
|
|
23
24
|
* | `skip-step` | Budget exhausted or non-repairable | Gracefully skip the failing step |
|
|
24
25
|
*
|
|
25
26
|
* ## Error Classification
|
|
@@ -36,9 +37,30 @@
|
|
|
36
37
|
*/
|
|
37
38
|
import type { AgentContext, AgentResult, LLMCallFn } from '../agents/agent.js';
|
|
38
39
|
/** Categories of errors that the repair system can classify */
|
|
39
|
-
export type ErrorCategory = 'llm-error' | 'provider-error' | 'process-error' | 'injection-blocked' | 'context-limit' | 'budget-exhausted'
|
|
40
|
+
export type ErrorCategory = 'llm-error' | 'provider-error' | 'process-error' | 'injection-blocked' | 'context-limit' | 'budget-exhausted'
|
|
41
|
+
/**
|
|
42
|
+
* The PROVIDER's account has no money/credits left (HTTP 402). Distinct from
|
|
43
|
+
* `budget-exhausted` (OUR token/step allowance): retrying, re-prompting or
|
|
44
|
+
* shrinking the ask cannot conjure funds, so this is never repairable on the
|
|
45
|
+
* same pair. Switching PROVIDER is the real remedy — a different host may
|
|
46
|
+
* serve the same model — but that decision belongs to the failover walk, not
|
|
47
|
+
* to the repair ladder.
|
|
48
|
+
*/
|
|
49
|
+
| 'credit-exhausted'
|
|
50
|
+
/**
|
|
51
|
+
* A PIN that strict mode refuses to honour (`Model 'X' is not available on
|
|
52
|
+
* 'Y', and strict model mode forbids substituting another model`).
|
|
53
|
+
*
|
|
54
|
+
* DEFINITIVE for this run: only the user can change the pin or unset
|
|
55
|
+
* NUVIRA_STRICT_MODEL. No rung of the repair ladder may substitute a model the
|
|
56
|
+
* user explicitly forbade, so every attempt is waste. Measured: this sentence —
|
|
57
|
+
* NOT the raw provider error — is what reached the repair loop, so the planner
|
|
58
|
+
* burned its entire budget on it even after the underlying 402 was itself
|
|
59
|
+
* classified correctly.
|
|
60
|
+
*/
|
|
61
|
+
| 'pin-unavailable' | 'unknown';
|
|
40
62
|
/** Repair strategies that can be applied */
|
|
41
|
-
export type RepairStrategy = 're-prompt' | 'switch-model' | 'adjust-temperature' | 'retry-tool' | 'alternative-approach' | 'skip-step';
|
|
63
|
+
export type RepairStrategy = 're-prompt' | 'switch-model' | 'adjust-temperature' | 'retry-tool' | 'alternative-approach' | 'shrink-scope' | 'skip-step';
|
|
42
64
|
/** Mode of operation for the repair loop */
|
|
43
65
|
export type RepairMode = 'auto' | 'prompt' | 'off';
|
|
44
66
|
/** Result of a single repair attempt */
|
|
@@ -74,6 +96,18 @@ export interface ErrorRepairOptions {
|
|
|
74
96
|
* When false, retry-tool and alternative-approach strategies are skipped
|
|
75
97
|
* because they would hit the same rate-limited provider. */
|
|
76
98
|
isLLMAvailable?: () => boolean;
|
|
99
|
+
/**
|
|
100
|
+
* WEAK-MODEL CLOSE-THE-LOOP mode. Set by the orchestrator when model
|
|
101
|
+
* escalation is a NO-OP — every stronger candidate is unavailable/blocked, so
|
|
102
|
+
* the task can only ever run on the weak model in use.
|
|
103
|
+
*
|
|
104
|
+
* Re-prompting such a model repeats the same failure; the fix is to ask it
|
|
105
|
+
* for LESS. This switches the ladder to a bounded, non-repeating sequence
|
|
106
|
+
* (see `selectStrategy`) whose second step shrinks the ask to a single unit,
|
|
107
|
+
* so the run makes progress instead of dead-ending. Off by default — a
|
|
108
|
+
* healthy pipeline keeps the ordinary per-category ladder unchanged.
|
|
109
|
+
*/
|
|
110
|
+
weakModel?: boolean;
|
|
77
111
|
}
|
|
78
112
|
/**
|
|
79
113
|
* Classify an error string into a category.
|
|
@@ -152,6 +186,15 @@ export declare class ErrorRepairEngine {
|
|
|
152
186
|
/** Reset the repair budget (e.g., for a new pipeline) */
|
|
153
187
|
reset(): void;
|
|
154
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Build the NARROWED goal for a `shrink-scope` attempt (weak-model path).
|
|
191
|
+
*
|
|
192
|
+
* The whole point is to make the ask fit the model: one unit, explicitly, with
|
|
193
|
+
* permission to stop. It names the FIRST declared artifact when the caller
|
|
194
|
+
* supplied one and otherwise says "one file (or one function)" — it never
|
|
195
|
+
* invents a filename, and it never asks for a summary instead of the work.
|
|
196
|
+
*/
|
|
197
|
+
export declare function shrinkScopeGoal(context: AgentContext): string;
|
|
155
198
|
/**
|
|
156
199
|
* Format a repair result for display in verbose mode.
|
|
157
200
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-repair.d.ts","sourceRoot":"","sources":["../../src/learning/error-repair.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"error-repair.d.ts","sourceRoot":"","sources":["../../src/learning/error-repair.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* | `adjust-temperature` | Repetitive or hallucinated output | Lower temperature to 0.2 for more deterministic output |
|
|
21
21
|
* | `retry-tool` | Tool call failed with retryable error | Retry the same call after a brief delay |
|
|
22
22
|
* | `alternative-approach` | Persistent failures across strategies | Ask the LLM for a fundamentally different strategy, then re-execute |
|
|
23
|
+
* | `shrink-scope` | WEAK-MODEL path (escalation is a no-op) | Re-ask for the SMALLEST single unit, so a model that cannot hold the whole task still moves the work forward |
|
|
23
24
|
* | `skip-step` | Budget exhausted or non-repairable | Gracefully skip the failing step |
|
|
24
25
|
*
|
|
25
26
|
* ## Error Classification
|
|
@@ -59,6 +60,29 @@ export function classifyError(error) {
|
|
|
59
60
|
lower.includes('prompt injection')) {
|
|
60
61
|
return 'injection-blocked';
|
|
61
62
|
}
|
|
63
|
+
// Credit/payment exhaustion — checked BEFORE the generic provider/server
|
|
64
|
+
// patterns. Measured: an OpenRouter 402
|
|
65
|
+
// (`{"error":{"message":"Insufficient credits...","code":402,...}}`) matched
|
|
66
|
+
// NO branch and fell through to `unknown`, which `isRepairable` treats as
|
|
67
|
+
// repairable — so a Planner burned its whole repair budget ("Repair budget exhausted
|
|
68
|
+
// after 2 attempt(s)") on a failure that could never succeed. The message
|
|
69
|
+
// ALSO contains `max_tokens`, which is why the credit check must come first:
|
|
70
|
+
// a later `context-limit` match would classify an unfunded account as a
|
|
71
|
+
// too-long-prompt and try to shrink the ask.
|
|
72
|
+
if (/insufficient credits?/.test(lower) ||
|
|
73
|
+
/purchase (more )?credits?/.test(lower) ||
|
|
74
|
+
/credit balance/.test(lower) ||
|
|
75
|
+
/out of credits/.test(lower) ||
|
|
76
|
+
/"?code"?\s*:\s*402/.test(lower)) {
|
|
77
|
+
return 'credit-exhausted';
|
|
78
|
+
}
|
|
79
|
+
// A strict-mode pin refusal — DEFINITIVE, and deliberately matched on OUR OWN
|
|
80
|
+
// wording (the sentence `route-resolver.ts` emits), so it cannot accidentally
|
|
81
|
+
// swallow a provider's "service not available" (which is a retryable 503 and
|
|
82
|
+
// must stay `provider-error`).
|
|
83
|
+
if (lower.includes('strict model mode') || lower.includes('forbids substituting')) {
|
|
84
|
+
return 'pin-unavailable';
|
|
85
|
+
}
|
|
62
86
|
// Provider errors
|
|
63
87
|
if (/5\d{2}(\D|$)/.test(lower) ||
|
|
64
88
|
lower.includes('rate limit') ||
|
|
@@ -129,6 +153,15 @@ export function isRepairable(category) {
|
|
|
129
153
|
return true; // conditionally repairable
|
|
130
154
|
case 'injection-blocked':
|
|
131
155
|
case 'budget-exhausted':
|
|
156
|
+
// No strategy in the ladder changes an unfunded account: re-prompting the
|
|
157
|
+
// same pair, shrinking the ask or switching model within the provider all
|
|
158
|
+
// hit the same 402. Only a different PROVIDER can serve it — a decision the
|
|
159
|
+
// failover walk owns. Spending repair attempts here is pure waste, and it
|
|
160
|
+
// hides the real cause behind "repair budget exhausted".
|
|
161
|
+
case 'credit-exhausted':
|
|
162
|
+
// Only the user can change a pin or lift strict mode; the ladder must not
|
|
163
|
+
// substitute a model they forbade, so it has nothing to offer.
|
|
164
|
+
case 'pin-unavailable':
|
|
132
165
|
return false;
|
|
133
166
|
case 'unknown':
|
|
134
167
|
return true; // try a generic repair
|
|
@@ -138,6 +171,25 @@ export function isRepairable(category) {
|
|
|
138
171
|
* Determine the best repair strategy for a given error category.
|
|
139
172
|
*/
|
|
140
173
|
export function selectStrategy(category, attemptNumber, options) {
|
|
174
|
+
// ── WEAK-MODEL CLOSE-THE-LOOP LADDER ────────────────────────────────────
|
|
175
|
+
// When ONLY a weak model is available, the per-category ladder below is a
|
|
176
|
+
// trap: its 2nd/3rd steps (switch-model / alternative-approach) assume a
|
|
177
|
+
// stronger model exists to switch TO, and re-prompting the same weak model
|
|
178
|
+
// repeats the identical failure. So the ladder is replaced by a bounded,
|
|
179
|
+
// predictable sequence whose every step is a DIFFERENT kind of attempt:
|
|
180
|
+
// 1. `re-prompt` — cheap, honest first move: give it the failure once;
|
|
181
|
+
// 2. `shrink-scope` — ask for the SMALLEST single unit. This is the step
|
|
182
|
+
// that turns a stuck loop around: a model that cannot hold the whole
|
|
183
|
+
// task can still produce one correct file, which is real progress;
|
|
184
|
+
// 3. `skip-step` — end honestly (the durable hand-off records what is
|
|
185
|
+
// still missing, so the next run continues instead of re-deriving).
|
|
186
|
+
if (options.weakModel) {
|
|
187
|
+
if (attemptNumber === 1)
|
|
188
|
+
return 're-prompt';
|
|
189
|
+
if (attemptNumber === 2)
|
|
190
|
+
return 'shrink-scope';
|
|
191
|
+
return 'skip-step';
|
|
192
|
+
}
|
|
141
193
|
switch (category) {
|
|
142
194
|
case 'llm-error':
|
|
143
195
|
// First attempt: re-prompt. Second: switch model or adjust temperature.
|
|
@@ -196,6 +248,11 @@ export function selectStrategy(category, attemptNumber, options) {
|
|
|
196
248
|
return 'skip-step';
|
|
197
249
|
case 'injection-blocked':
|
|
198
250
|
case 'budget-exhausted':
|
|
251
|
+
// No rung of the ladder can fund an account, and `isRepairable` already
|
|
252
|
+
// refuses it — this case exists so the switch stays exhaustive and the
|
|
253
|
+
// strategy is stated positively rather than defaulting.
|
|
254
|
+
case 'credit-exhausted':
|
|
255
|
+
case 'pin-unavailable':
|
|
199
256
|
return 'skip-step';
|
|
200
257
|
}
|
|
201
258
|
}
|
|
@@ -470,6 +527,20 @@ export class ErrorRepairEngine {
|
|
|
470
527
|
result = await executeFn(altContext, callLLM);
|
|
471
528
|
break;
|
|
472
529
|
}
|
|
530
|
+
case 'shrink-scope': {
|
|
531
|
+
// WEAK-MODEL CLOSE-THE-LOOP: the model cannot hold the whole task,
|
|
532
|
+
// so ask for the smallest single unit instead of repeating the full
|
|
533
|
+
// ask. `context.metadata.expectedFiles` (set by the orchestrator
|
|
534
|
+
// from the task's declared artifacts) names the FIRST file to
|
|
535
|
+
// produce, so the narrowed ask is concrete rather than a vague
|
|
536
|
+
// "do less" — and never invents a file the task did not declare.
|
|
537
|
+
if (this.options.verbose) {
|
|
538
|
+
logger.info(` ✂️ Repair attempt ${attemptNumber}: reducing scope to the smallest single unit`);
|
|
539
|
+
}
|
|
540
|
+
context = { ...context, goal: shrinkScopeGoal(context) };
|
|
541
|
+
result = await executeFn(context, callLLM);
|
|
542
|
+
break;
|
|
543
|
+
}
|
|
473
544
|
default:
|
|
474
545
|
result = { success: false, summary: `Unknown strategy: ${strategy}`, error: originalError };
|
|
475
546
|
}
|
|
@@ -503,6 +574,30 @@ export class ErrorRepairEngine {
|
|
|
503
574
|
this.budget.reset();
|
|
504
575
|
}
|
|
505
576
|
}
|
|
577
|
+
/**
|
|
578
|
+
* Build the NARROWED goal for a `shrink-scope` attempt (weak-model path).
|
|
579
|
+
*
|
|
580
|
+
* The whole point is to make the ask fit the model: one unit, explicitly, with
|
|
581
|
+
* permission to stop. It names the FIRST declared artifact when the caller
|
|
582
|
+
* supplied one and otherwise says "one file (or one function)" — it never
|
|
583
|
+
* invents a filename, and it never asks for a summary instead of the work.
|
|
584
|
+
*/
|
|
585
|
+
export function shrinkScopeGoal(context) {
|
|
586
|
+
const declared = context.metadata?.expectedFiles;
|
|
587
|
+
const first = Array.isArray(declared)
|
|
588
|
+
? declared.find((f) => typeof f === 'string' && f.trim().length > 0)
|
|
589
|
+
: undefined;
|
|
590
|
+
return [
|
|
591
|
+
context.goal,
|
|
592
|
+
'',
|
|
593
|
+
'[SCOPE REDUCTION — WEAK MODEL]',
|
|
594
|
+
'This task is larger than the model in use can hold reliably, so deliver only the',
|
|
595
|
+
'SMALLEST single unit you can complete CORRECTLY, then stop:',
|
|
596
|
+
first ? ` • produce exactly this file: ${first}` : ' • one file (or one function) only',
|
|
597
|
+
'Write it to disk, then stop. Do NOT attempt the remaining files or steps — a later',
|
|
598
|
+
'step continues from here. One correct unit is worth more than partial work on many.',
|
|
599
|
+
].join('\n');
|
|
600
|
+
}
|
|
506
601
|
// ─── Format Helpers ─────────────────────────────────────────────────────────
|
|
507
602
|
/**
|
|
508
603
|
* Format a repair result for display in verbose mode.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-repair.js","sourceRoot":"","sources":["../../src/learning/error-repair.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"error-repair.js","sourceRoot":"","sources":["../../src/learning/error-repair.ts"],"names":[],"mappings":"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"}
|