agent-nuvira 3.3.13 → 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/orchestrator.d.ts +31 -0
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +74 -126
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/cli/chat.d.ts +89 -0
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +765 -33
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts.map +1 -1
- package/dist/cli/cli-program.js +12 -0
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/config.d.ts +12 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +86 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/decisions.d.ts +28 -0
- package/dist/cli/decisions.d.ts.map +1 -0
- package/dist/cli/decisions.js +140 -0
- package/dist/cli/decisions.js.map +1 -0
- package/dist/cli/doctor.d.ts +6 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +46 -0
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/failover-runner.d.ts.map +1 -1
- package/dist/cli/failover-runner.js +19 -1
- package/dist/cli/failover-runner.js.map +1 -1
- package/dist/cli/feedback.d.ts.map +1 -1
- package/dist/cli/feedback.js +5 -1
- package/dist/cli/feedback.js.map +1 -1
- package/dist/cli/hooks.d.ts +30 -0
- package/dist/cli/hooks.d.ts.map +1 -0
- package/dist/cli/hooks.js +224 -0
- package/dist/cli/hooks.js.map +1 -0
- package/dist/cli/knowledge.d.ts +9 -1
- package/dist/cli/knowledge.d.ts.map +1 -1
- package/dist/cli/knowledge.js +93 -2
- package/dist/cli/knowledge.js.map +1 -1
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +47 -12
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/model.d.ts +20 -0
- package/dist/cli/model.d.ts.map +1 -1
- package/dist/cli/model.js +294 -14
- package/dist/cli/model.js.map +1 -1
- package/dist/cli/rate.d.ts +78 -0
- package/dist/cli/rate.d.ts.map +1 -0
- package/dist/cli/rate.js +294 -0
- package/dist/cli/rate.js.map +1 -0
- package/dist/config/process-env.d.ts.map +1 -1
- package/dist/config/process-env.js +10 -0
- package/dist/config/process-env.js.map +1 -1
- package/dist/enterprise/vault.d.ts.map +1 -1
- package/dist/enterprise/vault.js +5 -21
- package/dist/enterprise/vault.js.map +1 -1
- package/dist/gateway/hook-contract.d.ts +33 -0
- package/dist/gateway/hook-contract.d.ts.map +1 -1
- package/dist/gateway/hook-contract.js +97 -0
- package/dist/gateway/hook-contract.js.map +1 -1
- package/dist/inference/gemini-adapter.d.ts.map +1 -1
- package/dist/inference/gemini-adapter.js +4 -0
- package/dist/inference/gemini-adapter.js.map +1 -1
- package/dist/inference/interface.d.ts +37 -0
- package/dist/inference/interface.d.ts.map +1 -1
- package/dist/inference/native-tools.d.ts +16 -1
- package/dist/inference/native-tools.d.ts.map +1 -1
- package/dist/inference/native-tools.js +34 -10
- package/dist/inference/native-tools.js.map +1 -1
- package/dist/inference/route-resolver.d.ts +30 -0
- package/dist/inference/route-resolver.d.ts.map +1 -1
- package/dist/inference/route-resolver.js +158 -1
- package/dist/inference/route-resolver.js.map +1 -1
- package/dist/inference/tools.d.ts +16 -1
- package/dist/inference/tools.d.ts.map +1 -1
- package/dist/inference/tools.js +51 -18
- package/dist/inference/tools.js.map +1 -1
- package/dist/learning/acceptance-model.d.ts +247 -0
- package/dist/learning/acceptance-model.d.ts.map +1 -0
- package/dist/learning/acceptance-model.js +708 -0
- package/dist/learning/acceptance-model.js.map +1 -0
- package/dist/learning/auto-router.d.ts +68 -24
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +301 -96
- package/dist/learning/auto-router.js.map +1 -1
- package/dist/learning/autonomy-policy.d.ts +12 -16
- package/dist/learning/autonomy-policy.d.ts.map +1 -1
- package/dist/learning/autonomy-policy.js +50 -48
- package/dist/learning/autonomy-policy.js.map +1 -1
- package/dist/learning/behavioural-labels.d.ts +86 -0
- package/dist/learning/behavioural-labels.d.ts.map +1 -0
- package/dist/learning/behavioural-labels.js +166 -0
- package/dist/learning/behavioural-labels.js.map +1 -0
- package/dist/learning/capability-evidence.d.ts +167 -0
- package/dist/learning/capability-evidence.d.ts.map +1 -0
- package/dist/learning/capability-evidence.js +210 -0
- package/dist/learning/capability-evidence.js.map +1 -0
- package/dist/learning/capability-readiness.d.ts +64 -0
- package/dist/learning/capability-readiness.d.ts.map +1 -0
- package/dist/learning/capability-readiness.js +74 -0
- package/dist/learning/capability-readiness.js.map +1 -0
- package/dist/learning/capability-types.d.ts +169 -0
- package/dist/learning/capability-types.d.ts.map +1 -0
- package/dist/learning/capability-types.js +20 -0
- package/dist/learning/capability-types.js.map +1 -0
- package/dist/learning/catalog-feed.d.ts +89 -0
- package/dist/learning/catalog-feed.d.ts.map +1 -0
- package/dist/learning/catalog-feed.js +211 -0
- package/dist/learning/catalog-feed.js.map +1 -0
- package/dist/learning/cli-intent-effects.d.ts +60 -0
- package/dist/learning/cli-intent-effects.d.ts.map +1 -0
- package/dist/learning/cli-intent-effects.js +153 -0
- package/dist/learning/cli-intent-effects.js.map +1 -0
- package/dist/learning/command-adaptation.d.ts +41 -0
- package/dist/learning/command-adaptation.d.ts.map +1 -0
- package/dist/learning/command-adaptation.js +122 -0
- package/dist/learning/command-adaptation.js.map +1 -0
- package/dist/learning/consent-picture.d.ts +42 -0
- package/dist/learning/consent-picture.d.ts.map +1 -0
- package/dist/learning/consent-picture.js +53 -0
- package/dist/learning/consent-picture.js.map +1 -0
- package/dist/learning/context-budget.d.ts +37 -6
- package/dist/learning/context-budget.d.ts.map +1 -1
- package/dist/learning/context-budget.js +38 -9
- package/dist/learning/context-budget.js.map +1 -1
- package/dist/learning/decision-log.d.ts +114 -0
- package/dist/learning/decision-log.d.ts.map +1 -0
- package/dist/learning/decision-log.js +296 -0
- package/dist/learning/decision-log.js.map +1 -0
- package/dist/learning/deliverable-class.d.ts.map +1 -1
- package/dist/learning/deliverable-class.js +19 -0
- package/dist/learning/deliverable-class.js.map +1 -1
- package/dist/learning/deliverable-corpus.d.ts +117 -0
- package/dist/learning/deliverable-corpus.d.ts.map +1 -0
- package/dist/learning/deliverable-corpus.js +176 -0
- package/dist/learning/deliverable-corpus.js.map +1 -0
- package/dist/learning/error-repair.d.ts +22 -1
- package/dist/learning/error-repair.d.ts.map +1 -1
- package/dist/learning/error-repair.js +37 -0
- package/dist/learning/error-repair.js.map +1 -1
- package/dist/learning/exhaustion-report.d.ts +136 -0
- package/dist/learning/exhaustion-report.d.ts.map +1 -0
- package/dist/learning/exhaustion-report.js +239 -0
- package/dist/learning/exhaustion-report.js.map +1 -0
- package/dist/learning/failure-bookkeeping.d.ts +16 -0
- package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
- package/dist/learning/failure-bookkeeping.js +51 -5
- package/dist/learning/failure-bookkeeping.js.map +1 -1
- package/dist/learning/gate-friction.d.ts +39 -0
- package/dist/learning/gate-friction.d.ts.map +1 -0
- package/dist/learning/gate-friction.js +91 -0
- package/dist/learning/gate-friction.js.map +1 -0
- package/dist/learning/harness-narration.d.ts +34 -0
- package/dist/learning/harness-narration.d.ts.map +1 -0
- package/dist/learning/harness-narration.js +58 -0
- package/dist/learning/harness-narration.js.map +1 -0
- package/dist/learning/hub-skill-catalog.d.ts.map +1 -1
- package/dist/learning/hub-skill-catalog.js +1 -2
- package/dist/learning/hub-skill-catalog.js.map +1 -1
- package/dist/learning/hybrid-router.d.ts +65 -0
- package/dist/learning/hybrid-router.d.ts.map +1 -1
- package/dist/learning/hybrid-router.js +186 -0
- package/dist/learning/hybrid-router.js.map +1 -1
- package/dist/learning/knowledge-base.d.ts +229 -3
- package/dist/learning/knowledge-base.d.ts.map +1 -1
- package/dist/learning/knowledge-base.js +593 -24
- package/dist/learning/knowledge-base.js.map +1 -1
- package/dist/learning/knowledge-eval.d.ts +171 -0
- package/dist/learning/knowledge-eval.d.ts.map +1 -0
- package/dist/learning/knowledge-eval.js +196 -0
- package/dist/learning/knowledge-eval.js.map +1 -0
- package/dist/learning/knowledge-turn.d.ts +92 -0
- package/dist/learning/knowledge-turn.d.ts.map +1 -0
- package/dist/learning/knowledge-turn.js +190 -0
- package/dist/learning/knowledge-turn.js.map +1 -0
- package/dist/learning/learned-commands.d.ts +64 -0
- package/dist/learning/learned-commands.d.ts.map +1 -0
- package/dist/learning/learned-commands.js +108 -0
- package/dist/learning/learned-commands.js.map +1 -0
- package/dist/learning/lexical-search.d.ts +50 -0
- package/dist/learning/lexical-search.d.ts.map +1 -0
- package/dist/learning/lexical-search.js +111 -0
- package/dist/learning/lexical-search.js.map +1 -0
- package/dist/learning/machine-facts.d.ts +71 -0
- package/dist/learning/machine-facts.d.ts.map +1 -0
- package/dist/learning/machine-facts.js +164 -0
- package/dist/learning/machine-facts.js.map +1 -0
- package/dist/learning/markdown-outline.d.ts +73 -0
- package/dist/learning/markdown-outline.d.ts.map +1 -0
- package/dist/learning/markdown-outline.js +136 -0
- package/dist/learning/markdown-outline.js.map +1 -0
- package/dist/learning/model-first-router.d.ts +33 -1
- package/dist/learning/model-first-router.d.ts.map +1 -1
- package/dist/learning/model-first-router.js +123 -9
- package/dist/learning/model-first-router.js.map +1 -1
- package/dist/learning/model-identity.d.ts +80 -0
- package/dist/learning/model-identity.d.ts.map +1 -0
- package/dist/learning/model-identity.js +115 -0
- package/dist/learning/model-identity.js.map +1 -0
- package/dist/learning/model-registry.d.ts +141 -2
- package/dist/learning/model-registry.d.ts.map +1 -1
- package/dist/learning/model-registry.js +324 -38
- package/dist/learning/model-registry.js.map +1 -1
- package/dist/learning/model-scoring.d.ts.map +1 -1
- package/dist/learning/model-scoring.js +8 -1
- package/dist/learning/model-scoring.js.map +1 -1
- package/dist/learning/model-selection.d.ts.map +1 -1
- package/dist/learning/model-selection.js +41 -0
- package/dist/learning/model-selection.js.map +1 -1
- package/dist/learning/outcome-observation.d.ts +49 -0
- package/dist/learning/outcome-observation.d.ts.map +1 -0
- package/dist/learning/outcome-observation.js +95 -0
- package/dist/learning/outcome-observation.js.map +1 -0
- package/dist/learning/pair-entitlement.d.ts +184 -0
- package/dist/learning/pair-entitlement.d.ts.map +1 -0
- package/dist/learning/pair-entitlement.js +214 -0
- package/dist/learning/pair-entitlement.js.map +1 -0
- package/dist/learning/provider-fallback.d.ts +23 -1
- package/dist/learning/provider-fallback.d.ts.map +1 -1
- package/dist/learning/provider-fallback.js +24 -0
- package/dist/learning/provider-fallback.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +65 -1
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js +123 -1
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/requirement-probe.d.ts +55 -0
- package/dist/learning/requirement-probe.d.ts.map +1 -0
- package/dist/learning/requirement-probe.js +77 -0
- package/dist/learning/requirement-probe.js.map +1 -0
- package/dist/learning/resilient-call.d.ts +20 -1
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +42 -4
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/learning/response-usability.d.ts +85 -0
- package/dist/learning/response-usability.d.ts.map +1 -0
- package/dist/learning/response-usability.js +135 -0
- package/dist/learning/response-usability.js.map +1 -0
- package/dist/learning/router-bandit.d.ts +132 -0
- package/dist/learning/router-bandit.d.ts.map +1 -1
- package/dist/learning/router-bandit.js +253 -0
- package/dist/learning/router-bandit.js.map +1 -1
- package/dist/learning/routing-history.d.ts +41 -2
- package/dist/learning/routing-history.d.ts.map +1 -1
- package/dist/learning/routing-history.js.map +1 -1
- package/dist/learning/run-trace.d.ts +21 -0
- package/dist/learning/run-trace.d.ts.map +1 -1
- package/dist/learning/run-trace.js +38 -0
- package/dist/learning/run-trace.js.map +1 -1
- package/dist/learning/session-grant.d.ts +75 -0
- package/dist/learning/session-grant.d.ts.map +1 -0
- package/dist/learning/session-grant.js +112 -0
- package/dist/learning/session-grant.js.map +1 -0
- package/dist/learning/task-model-continuity.d.ts +73 -0
- package/dist/learning/task-model-continuity.d.ts.map +1 -0
- package/dist/learning/task-model-continuity.js +87 -0
- package/dist/learning/task-model-continuity.js.map +1 -0
- package/dist/learning/turn-feedback.d.ts +93 -0
- package/dist/learning/turn-feedback.d.ts.map +1 -0
- package/dist/learning/turn-feedback.js +127 -0
- package/dist/learning/turn-feedback.js.map +1 -0
- package/dist/learning/turn-report.d.ts +104 -2
- package/dist/learning/turn-report.d.ts.map +1 -1
- package/dist/learning/turn-report.js +161 -6
- package/dist/learning/turn-report.js.map +1 -1
- package/dist/learning/verdict-routing.d.ts +51 -0
- package/dist/learning/verdict-routing.d.ts.map +1 -0
- package/dist/learning/verdict-routing.js +122 -0
- package/dist/learning/verdict-routing.js.map +1 -0
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +5 -0
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/manager.d.ts +10 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +20 -0
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/mcp-discovery.d.ts +34 -0
- package/dist/mcp/mcp-discovery.d.ts.map +1 -0
- package/dist/mcp/mcp-discovery.js +71 -0
- package/dist/mcp/mcp-discovery.js.map +1 -0
- package/dist/mcp/mcp-schema-cache.d.ts +17 -0
- package/dist/mcp/mcp-schema-cache.d.ts.map +1 -1
- package/dist/mcp/mcp-schema-cache.js +47 -3
- package/dist/mcp/mcp-schema-cache.js.map +1 -1
- package/dist/mcp/types.d.ts +28 -0
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/mcp/types.js.map +1 -1
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +4 -0
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/capability-registry.d.ts +150 -0
- package/dist/tools/capability-registry.d.ts.map +1 -0
- package/dist/tools/capability-registry.js +400 -0
- package/dist/tools/capability-registry.js.map +1 -0
- package/dist/tools/child-agent-runtime.d.ts.map +1 -1
- package/dist/tools/child-agent-runtime.js +19 -5
- package/dist/tools/child-agent-runtime.js.map +1 -1
- package/dist/tools/coding-tools.d.ts +17 -5
- package/dist/tools/coding-tools.d.ts.map +1 -1
- package/dist/tools/coding-tools.js +80 -11
- package/dist/tools/coding-tools.js.map +1 -1
- package/dist/tools/command-memo.d.ts +116 -0
- package/dist/tools/command-memo.d.ts.map +1 -0
- package/dist/tools/command-memo.js +202 -0
- package/dist/tools/command-memo.js.map +1 -0
- package/dist/tools/git-tool.d.ts.map +1 -1
- package/dist/tools/git-tool.js +13 -3
- package/dist/tools/git-tool.js.map +1 -1
- package/dist/tools/harness-directive.d.ts +42 -0
- package/dist/tools/harness-directive.d.ts.map +1 -0
- package/dist/tools/harness-directive.js +45 -0
- package/dist/tools/harness-directive.js.map +1 -0
- package/dist/tools/loop-skill-hint.d.ts +74 -174
- package/dist/tools/loop-skill-hint.d.ts.map +1 -1
- package/dist/tools/loop-skill-hint.js +110 -536
- package/dist/tools/loop-skill-hint.js.map +1 -1
- package/dist/tools/mcp-client-tool.d.ts +2 -0
- package/dist/tools/mcp-client-tool.d.ts.map +1 -1
- package/dist/tools/mcp-client-tool.js +3 -0
- package/dist/tools/mcp-client-tool.js.map +1 -1
- package/dist/tools/modality/shared.d.ts +1 -4
- package/dist/tools/modality/shared.d.ts.map +1 -1
- package/dist/tools/modality/shared.js +7 -22
- package/dist/tools/modality/shared.js.map +1 -1
- package/dist/tools/plan-store.d.ts +20 -2
- package/dist/tools/plan-store.d.ts.map +1 -1
- package/dist/tools/plan-store.js +51 -7
- package/dist/tools/plan-store.js.map +1 -1
- package/dist/tools/registry.d.ts +76 -3
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +486 -26
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/remediation-ladder.d.ts.map +1 -1
- package/dist/tools/remediation-ladder.js +8 -0
- package/dist/tools/remediation-ladder.js.map +1 -1
- package/dist/tools/run-cli.d.ts.map +1 -1
- package/dist/tools/run-cli.js +29 -4
- package/dist/tools/run-cli.js.map +1 -1
- package/dist/tools/run-terminal.d.ts +11 -0
- package/dist/tools/run-terminal.d.ts.map +1 -1
- package/dist/tools/run-terminal.js +265 -10
- package/dist/tools/run-terminal.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +321 -13
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +867 -66
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/utils/atomic-store.d.ts +53 -0
- package/dist/utils/atomic-store.d.ts.map +1 -0
- package/dist/utils/atomic-store.js +178 -0
- package/dist/utils/atomic-store.js.map +1 -0
- package/dist/utils/binary-probe.d.ts +25 -0
- package/dist/utils/binary-probe.d.ts.map +1 -0
- package/dist/utils/binary-probe.js +48 -0
- package/dist/utils/binary-probe.js.map +1 -0
- package/dist/utils/workspace-path.d.ts +50 -0
- package/dist/utils/workspace-path.d.ts.map +1 -0
- package/dist/utils/workspace-path.js +86 -0
- package/dist/utils/workspace-path.js.map +1 -0
- package/dist/web-dashboard/chat-console.d.ts +24 -0
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +38 -0
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/project-context.d.ts +27 -2
- package/dist/web-dashboard/project-context.d.ts.map +1 -1
- package/dist/web-dashboard/project-context.js +32 -2
- package/dist/web-dashboard/project-context.js.map +1 -1
- package/dist/web-dashboard/server.d.ts +11 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +362 -11
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +170 -1
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/dist/web-dashboard/workspace-guard.d.ts +11 -2
- package/dist/web-dashboard/workspace-guard.d.ts.map +1 -1
- package/dist/web-dashboard/workspace-guard.js +24 -12
- package/dist/web-dashboard/workspace-guard.js.map +1 -1
- package/dist/web-dashboard/workspace-resolution.d.ts +87 -0
- package/dist/web-dashboard/workspace-resolution.d.ts.map +1 -0
- package/dist/web-dashboard/workspace-resolution.js +105 -0
- package/dist/web-dashboard/workspace-resolution.js.map +1 -0
- package/package.json +1 -1
- package/src/web-dashboard/public/assets/index-zjbdJnO-.js +210 -0
- package/src/web-dashboard/public/assets/index-zjbdJnO-.js.map +1 -0
- package/src/web-dashboard/public/index.html +1 -1
- package/src/web-dashboard/public/assets/index-DhiuR4S2.js +0 -210
- package/src/web-dashboard/public/assets/index-DhiuR4S2.js.map +0 -1
|
@@ -60,12 +60,38 @@ export const CHARS_PER_TOKEN = 4.5;
|
|
|
60
60
|
*/
|
|
61
61
|
export const MAX_THREAD_BUDGET_CHARS = 4_000_000;
|
|
62
62
|
/**
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
63
|
+
* THERE IS NO UNIVERSAL NEVER-SHRINK FLOOR (C1/C5, decided with the user).
|
|
64
|
+
*
|
|
65
|
+
* This module used to export `THREAD_BUDGET_FLOOR_CHARS = 200_000` and apply it
|
|
66
|
+
* as `Math.max(FLOOR, windowDerivedChars)`, so the resolver could only ever
|
|
67
|
+
* RAISE a budget. A model whose REAL window was 32,768 tokens was therefore
|
|
68
|
+
* handed 200,000 chars (~44K tokens) of thread — **1.4× its own window**, from
|
|
69
|
+
* the very lookup that had just established that window. That is C5: the floor
|
|
70
|
+
* made a KNOWN window unenforceable, so a mid-turn handoff to a smaller model
|
|
71
|
+
* could overflow the window we already knew about. (Measured against the old
|
|
72
|
+
* rule: a 32K window returned 200,000.)
|
|
73
|
+
*
|
|
74
|
+
* The user's decision, and the reason no floor may sit above the window: the
|
|
75
|
+
* thread is fitted to the model that is ANSWERING, because what makes a model
|
|
76
|
+
* hallucinate is losing the ask. The protections that preserve perspective are
|
|
77
|
+
* RULES in `trimThreadBudget`, not a budget number — the system prompt, the
|
|
78
|
+
* FIRST user message, the last `RECENT_KEEP` messages and the work digest are
|
|
79
|
+
* never touched, and only OLD TOOL OUTPUT is ever shrunk. So a large-window
|
|
80
|
+
* model is deliberately left to use its window, and a small-window model gets a
|
|
81
|
+
* thread that fits it.
|
|
82
|
+
*
|
|
83
|
+
* The UNKNOWN case is unchanged and is still the dominant one: no window → this
|
|
84
|
+
* resolver returns `undefined` and the caller keeps its own default
|
|
85
|
+
* (`DEFAULT_THREAD_BUDGET_CHARS` in `tools/tool-loop.ts`, also 200,000).
|
|
67
86
|
*/
|
|
68
|
-
|
|
87
|
+
/**
|
|
88
|
+
* The smallest thread we will ask a model to work in (~4.4K tokens at 4.5
|
|
89
|
+
* chars/token). A window recorded BELOW this is a registry error rather than a
|
|
90
|
+
* real model, and trimming a thread to near-zero would destroy the turn — so
|
|
91
|
+
* this is the one floor that survives, and it is deliberately far below the
|
|
92
|
+
* 200,000 it replaces.
|
|
93
|
+
*/
|
|
94
|
+
export const MIN_THREAD_BUDGET_CHARS = 20_000;
|
|
69
95
|
/** Default per-prompt file-context caps (today's constants) for unknown models. */
|
|
70
96
|
export const DEFAULT_CONTEXT_FILES = 10;
|
|
71
97
|
export const DEFAULT_CONTEXT_FILE_CHARS = 16_000;
|
|
@@ -161,7 +187,12 @@ export function resolveMaxOutputTokens(input = {}) {
|
|
|
161
187
|
* model. Returns `undefined` when the window is UNKNOWN so the caller keeps
|
|
162
188
|
* `DEFAULT_THREAD_BUDGET_CHARS` untouched ("unknown → unchanged", the same
|
|
163
189
|
* discipline as `resolveContextBudget`); a known window converts its token
|
|
164
|
-
* budget to characters so a 1M-token model is not trimmed to a 128K keyhole
|
|
190
|
+
* budget to characters so a 1M-token model is not trimmed to a 128K keyhole —
|
|
191
|
+
* and, since C1/C5, so a 32K-token model is not handed a 44K-token thread.
|
|
192
|
+
*
|
|
193
|
+
* The WINDOW decides in BOTH directions. The old `Math.max(FLOOR, chars)` is
|
|
194
|
+
* what made a known small window unenforceable; see the note on
|
|
195
|
+
* `MIN_THREAD_BUDGET_CHARS` above.
|
|
165
196
|
*/
|
|
166
197
|
export function resolveThreadBudgetChars(input = {}) {
|
|
167
198
|
const budget = resolveContextBudget(input);
|
|
@@ -169,9 +200,7 @@ export function resolveThreadBudgetChars(input = {}) {
|
|
|
169
200
|
return undefined;
|
|
170
201
|
const basis = budget.window ?? budget.budget;
|
|
171
202
|
const chars = Math.floor(basis * (1 - CONTEXT_HEADROOM_PCT) * CHARS_PER_TOKEN);
|
|
172
|
-
|
|
173
|
-
// so the caller's behavior is byte-identical.
|
|
174
|
-
return Math.max(THREAD_BUDGET_FLOOR_CHARS, Math.min(MAX_THREAD_BUDGET_CHARS, chars));
|
|
203
|
+
return Math.max(MIN_THREAD_BUDGET_CHARS, Math.min(MAX_THREAD_BUDGET_CHARS, chars));
|
|
175
204
|
}
|
|
176
205
|
/**
|
|
177
206
|
* Resolve the writer/edit FILE-CONTEXT caps for a served provider × model.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-budget.js","sourceRoot":"","sources":["../../src/learning/context-budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAE9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,sEAAsE;AACtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAExC,wEAAwE;AACxE,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AACjD,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"context-budget.js","sourceRoot":"","sources":["../../src/learning/context-budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decision log — the decisions a project's turns asked the user to make, kept as
|
|
3
|
+
* artifacts the user can go back through, refer to, and REVISE.
|
|
4
|
+
*
|
|
5
|
+
* WHY THIS EXISTS. When the agent must ask (`ask_user`), the question and the
|
|
6
|
+
* user's answer currently live only in that turn's transcript and the in-memory
|
|
7
|
+
* run trace. Close the terminal and the decision is gone — nobody can see later
|
|
8
|
+
* WHAT was decided, or WHY, and there is no way to change it. A must-ask is the
|
|
9
|
+
* one place the user's intent is explicit, so it is the worst thing to lose.
|
|
10
|
+
*
|
|
11
|
+
* WHAT IT WRITES. `<project>/.nuvira/decisions.jsonl` — one JSON record per
|
|
12
|
+
* decision, append-only, the machine-readable source of truth — and a generated
|
|
13
|
+
* `<project>/.nuvira/DECISIONS.md` a person can read in a PR. `.nuvira/` is
|
|
14
|
+
* ignored by git, so a decision log never dirties a repo.
|
|
15
|
+
*
|
|
16
|
+
* WHAT IT DELIBERATELY DOES NOT DO.
|
|
17
|
+
* - It is never a SUBSTITUTE for asking. Nothing here suppresses an `ask_user`
|
|
18
|
+
* call or auto-answers one; it records what was asked and answered. The
|
|
19
|
+
* read-back block (`recallDecisionBlock`) is ADVISORY context for a later
|
|
20
|
+
* turn — it says what is settled, and explicitly that a changed situation
|
|
21
|
+
* may still ask again. It never gates whether the agent may ask.
|
|
22
|
+
* - It never fabricates an answer. The `unattended` default an unreachable user
|
|
23
|
+
* gets is an ASSUMPTION, and is not recorded here as a decision — only a
|
|
24
|
+
* genuine, shown question with a real reply is.
|
|
25
|
+
* - It never blocks. Every write is best-effort; a failed decision-log write
|
|
26
|
+
* must never break a turn.
|
|
27
|
+
* - It redacts obvious secrets before writing anything to disk.
|
|
28
|
+
*/
|
|
29
|
+
/** One decision the user was asked to make, and what they chose. */
|
|
30
|
+
export interface DecisionRecord {
|
|
31
|
+
id: string;
|
|
32
|
+
/** Epoch ms when the decision was recorded. */
|
|
33
|
+
at: number;
|
|
34
|
+
/** The question the agent could not answer for the user. */
|
|
35
|
+
question: string;
|
|
36
|
+
/** The choice the user made (a label, or their own words). */
|
|
37
|
+
answer: string;
|
|
38
|
+
/** The choices offered, for context when the answer is one of them. */
|
|
39
|
+
choices?: string[];
|
|
40
|
+
/** Which surface asked (`cli` | `dashboard` | `gateway` | `unknown`). */
|
|
41
|
+
source: string;
|
|
42
|
+
/** `decided` until it is revised; `revised` once a later answer supersedes it. */
|
|
43
|
+
status: 'decided' | 'revised';
|
|
44
|
+
/** Append-only revision history, newest last. */
|
|
45
|
+
revisions?: Array<{
|
|
46
|
+
at: number;
|
|
47
|
+
answer: string;
|
|
48
|
+
note?: string;
|
|
49
|
+
}>;
|
|
50
|
+
}
|
|
51
|
+
/** Cap the log so one busy project cannot grow without bound (oldest drop first). */
|
|
52
|
+
export declare const MAX_DECISIONS = 500;
|
|
53
|
+
export declare function decisionsDir(dir: string): string;
|
|
54
|
+
export declare function decisionLogPath(dir: string): string;
|
|
55
|
+
export declare function decisionsDocPath(dir: string): string;
|
|
56
|
+
/**
|
|
57
|
+
* Whether decision recording is on. Off under a test runner (an injected
|
|
58
|
+
* `askUser` renderer in a test is not a person making a decision) and when
|
|
59
|
+
* `NUVIRA_DECISION_LOG=off` is set explicitly.
|
|
60
|
+
*/
|
|
61
|
+
export declare function decisionsRecordingEnabled(): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Mask obvious secrets before they reach disk. The log is meant to be readable
|
|
64
|
+
* and shareable, so a token the user pasted into an answer must not be stored
|
|
65
|
+
* verbatim. Deliberately conservative: it masks clear credential SHAPES, not
|
|
66
|
+
* anything that merely looks random.
|
|
67
|
+
*/
|
|
68
|
+
export declare function redactDecisionText(text: string): string;
|
|
69
|
+
/** Parse the JSONL store, skipping corrupt lines (a dataset must not be a landmine). */
|
|
70
|
+
export declare function readDecisions(dir: string): DecisionRecord[];
|
|
71
|
+
/**
|
|
72
|
+
* Record one decision a shown `ask_user` produced. Returns the record, or null
|
|
73
|
+
* when there is nothing to record (an empty question) or the write failed.
|
|
74
|
+
* The question and answer are redacted first.
|
|
75
|
+
*/
|
|
76
|
+
export declare function recordDecision(input: {
|
|
77
|
+
question: string;
|
|
78
|
+
answer: string;
|
|
79
|
+
choices?: string[];
|
|
80
|
+
source?: string;
|
|
81
|
+
dir: string;
|
|
82
|
+
now?: number;
|
|
83
|
+
}): DecisionRecord | null;
|
|
84
|
+
/**
|
|
85
|
+
* Revise a decision. The new answer becomes the record's answer and is appended
|
|
86
|
+
* to its history, so the OLD choice is still visible — a decision that changed is
|
|
87
|
+
* more useful documented than overwritten.
|
|
88
|
+
*/
|
|
89
|
+
export declare function reviseDecision(dir: string, id: string, answer: string, note?: string, now?: number): DecisionRecord | null;
|
|
90
|
+
/** The human-readable companion, regenerated on every write. */
|
|
91
|
+
export declare function renderDecisionsDoc(records: DecisionRecord[]): string;
|
|
92
|
+
/** One-line summaries for a CLI list. */
|
|
93
|
+
export declare function formatDecisionSummaries(records: DecisionRecord[]): string[];
|
|
94
|
+
/**
|
|
95
|
+
* Decisions relevant to an ask, ranked by shared significant tokens — the
|
|
96
|
+
* READ-BACK half: so a later turn can be shown what was already decided about a
|
|
97
|
+
* related ask instead of re-asking. Best-effort; an empty list is a real answer.
|
|
98
|
+
*/
|
|
99
|
+
export declare function recallDecisions(dir: string, text: string, limit?: number): DecisionRecord[];
|
|
100
|
+
/**
|
|
101
|
+
* The READ-BACK block injected into a later turn's context: the related
|
|
102
|
+
* decisions this project already made, so the model is not asked to re-decide
|
|
103
|
+
* what is settled. ADVISORY ONLY.
|
|
104
|
+
*
|
|
105
|
+
* The header says what the block IS and marks it revisable on purpose: the whole
|
|
106
|
+
* point of a standing answer is that a CHANGED situation must still be able to
|
|
107
|
+
* ask again. Nothing here suppresses an `ask_user` — the block only tells the
|
|
108
|
+
* model what was already decided; the decision to ask belongs to the situation.
|
|
109
|
+
*
|
|
110
|
+
* Empty string when nothing matches a significant token, so a turn with no
|
|
111
|
+
* related decision is byte-identical to one from a build without this feature.
|
|
112
|
+
*/
|
|
113
|
+
export declare function recallDecisionBlock(dir: string, text: string, limit?: number): string;
|
|
114
|
+
//# sourceMappingURL=decision-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-log.d.ts","sourceRoot":"","sources":["../../src/learning/decision-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,iDAAiD;IACjD,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AAED,qFAAqF;AACrF,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAOnD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBvD;AAMD,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CA4B3D;AAaD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,cAAc,GAAG,IAAI,CAsBxB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,GAAG,GAAE,MAAmB,GACvB,cAAc,GAAG,IAAI,CAyBvB;AAMD,gEAAgE;AAChE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CAuCpE;AAED,yCAAyC;AACzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,CAM3E;AAiBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,cAAc,EAAE,CAatF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,CAehF"}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decision log — the decisions a project's turns asked the user to make, kept as
|
|
3
|
+
* artifacts the user can go back through, refer to, and REVISE.
|
|
4
|
+
*
|
|
5
|
+
* WHY THIS EXISTS. When the agent must ask (`ask_user`), the question and the
|
|
6
|
+
* user's answer currently live only in that turn's transcript and the in-memory
|
|
7
|
+
* run trace. Close the terminal and the decision is gone — nobody can see later
|
|
8
|
+
* WHAT was decided, or WHY, and there is no way to change it. A must-ask is the
|
|
9
|
+
* one place the user's intent is explicit, so it is the worst thing to lose.
|
|
10
|
+
*
|
|
11
|
+
* WHAT IT WRITES. `<project>/.nuvira/decisions.jsonl` — one JSON record per
|
|
12
|
+
* decision, append-only, the machine-readable source of truth — and a generated
|
|
13
|
+
* `<project>/.nuvira/DECISIONS.md` a person can read in a PR. `.nuvira/` is
|
|
14
|
+
* ignored by git, so a decision log never dirties a repo.
|
|
15
|
+
*
|
|
16
|
+
* WHAT IT DELIBERATELY DOES NOT DO.
|
|
17
|
+
* - It is never a SUBSTITUTE for asking. Nothing here suppresses an `ask_user`
|
|
18
|
+
* call or auto-answers one; it records what was asked and answered. The
|
|
19
|
+
* read-back block (`recallDecisionBlock`) is ADVISORY context for a later
|
|
20
|
+
* turn — it says what is settled, and explicitly that a changed situation
|
|
21
|
+
* may still ask again. It never gates whether the agent may ask.
|
|
22
|
+
* - It never fabricates an answer. The `unattended` default an unreachable user
|
|
23
|
+
* gets is an ASSUMPTION, and is not recorded here as a decision — only a
|
|
24
|
+
* genuine, shown question with a real reply is.
|
|
25
|
+
* - It never blocks. Every write is best-effort; a failed decision-log write
|
|
26
|
+
* must never break a turn.
|
|
27
|
+
* - It redacts obvious secrets before writing anything to disk.
|
|
28
|
+
*/
|
|
29
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
30
|
+
import { join, resolve } from 'node:path';
|
|
31
|
+
/** Cap the log so one busy project cannot grow without bound (oldest drop first). */
|
|
32
|
+
export const MAX_DECISIONS = 500;
|
|
33
|
+
export function decisionsDir(dir) {
|
|
34
|
+
return join(resolve(dir), '.nuvira');
|
|
35
|
+
}
|
|
36
|
+
export function decisionLogPath(dir) {
|
|
37
|
+
return join(decisionsDir(dir), 'decisions.jsonl');
|
|
38
|
+
}
|
|
39
|
+
export function decisionsDocPath(dir) {
|
|
40
|
+
return join(decisionsDir(dir), 'DECISIONS.md');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Whether decision recording is on. Off under a test runner (an injected
|
|
44
|
+
* `askUser` renderer in a test is not a person making a decision) and when
|
|
45
|
+
* `NUVIRA_DECISION_LOG=off` is set explicitly.
|
|
46
|
+
*/
|
|
47
|
+
export function decisionsRecordingEnabled() {
|
|
48
|
+
if (process.env.NUVIRA_DECISION_LOG === 'off')
|
|
49
|
+
return false;
|
|
50
|
+
// Explicit opt-IN wins over the test-runner default below, so a test can
|
|
51
|
+
// exercise the record → recall round trip without a real terminal.
|
|
52
|
+
if (process.env.NUVIRA_DECISION_LOG === 'on')
|
|
53
|
+
return true;
|
|
54
|
+
if (process.env.VITEST === 'true' || process.env.NODE_ENV === 'test')
|
|
55
|
+
return false;
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Mask obvious secrets before they reach disk. The log is meant to be readable
|
|
60
|
+
* and shareable, so a token the user pasted into an answer must not be stored
|
|
61
|
+
* verbatim. Deliberately conservative: it masks clear credential SHAPES, not
|
|
62
|
+
* anything that merely looks random.
|
|
63
|
+
*/
|
|
64
|
+
export function redactDecisionText(text) {
|
|
65
|
+
let out = String(text ?? '');
|
|
66
|
+
// Provider / vendor keys with a recognizable prefix.
|
|
67
|
+
out = out.replace(/\b(sk-[A-Za-z0-9_-]{12,})/g, 'sk-***');
|
|
68
|
+
out = out.replace(/\b(ghp_[A-Za-z0-9]{20,})/g, 'ghp_***');
|
|
69
|
+
out = out.replace(/\b(github_pat_[A-Za-z0-9_]{20,})/g, 'github_pat_***');
|
|
70
|
+
out = out.replace(/\b(AKIA[0-9A-Z]{12,})/g, 'AKIA***');
|
|
71
|
+
out = out.replace(/\b(xox[baprs]-[A-Za-z0-9-]{10,})/g, 'xox***');
|
|
72
|
+
// A bearer token in a header.
|
|
73
|
+
out = out.replace(/(Bearer\s+)[A-Za-z0-9._-]{12,}/gi, '$1***');
|
|
74
|
+
// `password: hunter2` / `api_key=...` — keep the key name, mask the value.
|
|
75
|
+
out = out.replace(/\b(password|passwd|pwd|secret|token|api[_-]?key|access[_-]?key)\s*[:=]\s*(\S+)/gi, '$1: ***');
|
|
76
|
+
return out;
|
|
77
|
+
}
|
|
78
|
+
function newId(now) {
|
|
79
|
+
return `dec-${now}-${Math.random().toString(36).slice(2, 8)}`;
|
|
80
|
+
}
|
|
81
|
+
/** Parse the JSONL store, skipping corrupt lines (a dataset must not be a landmine). */
|
|
82
|
+
export function readDecisions(dir) {
|
|
83
|
+
try {
|
|
84
|
+
if (!existsSync(decisionLogPath(dir)))
|
|
85
|
+
return [];
|
|
86
|
+
const out = [];
|
|
87
|
+
for (const line of readFileSync(decisionLogPath(dir), 'utf-8').split('\n')) {
|
|
88
|
+
const trimmed = line.trim();
|
|
89
|
+
if (!trimmed)
|
|
90
|
+
continue;
|
|
91
|
+
try {
|
|
92
|
+
const raw = JSON.parse(trimmed);
|
|
93
|
+
if (!raw || typeof raw !== 'object' || !raw.id || !raw.question)
|
|
94
|
+
continue;
|
|
95
|
+
out.push({
|
|
96
|
+
id: String(raw.id),
|
|
97
|
+
at: Number(raw.at) || 0,
|
|
98
|
+
question: String(raw.question),
|
|
99
|
+
answer: String(raw.answer ?? ''),
|
|
100
|
+
...(Array.isArray(raw.choices) ? { choices: raw.choices.map(String) } : {}),
|
|
101
|
+
source: String(raw.source ?? 'unknown'),
|
|
102
|
+
status: raw.status === 'revised' ? 'revised' : 'decided',
|
|
103
|
+
...(Array.isArray(raw.revisions) ? { revisions: raw.revisions } : {}),
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// Corrupt line — skip.
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return out;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function writeStore(dir, records) {
|
|
117
|
+
const trimmed = records.slice(-MAX_DECISIONS);
|
|
118
|
+
if (!existsSync(decisionsDir(dir)))
|
|
119
|
+
mkdirSync(decisionsDir(dir), { recursive: true });
|
|
120
|
+
writeFileSync(decisionLogPath(dir), trimmed.map((r) => JSON.stringify(r)).join('\n') + (trimmed.length > 0 ? '\n' : ''), 'utf-8');
|
|
121
|
+
writeFileSync(decisionsDocPath(dir), renderDecisionsDoc(trimmed), 'utf-8');
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Record one decision a shown `ask_user` produced. Returns the record, or null
|
|
125
|
+
* when there is nothing to record (an empty question) or the write failed.
|
|
126
|
+
* The question and answer are redacted first.
|
|
127
|
+
*/
|
|
128
|
+
export function recordDecision(input) {
|
|
129
|
+
const question = redactDecisionText(input.question).trim();
|
|
130
|
+
if (!question)
|
|
131
|
+
return null;
|
|
132
|
+
const now = input.now ?? Date.now();
|
|
133
|
+
const record = {
|
|
134
|
+
id: newId(now),
|
|
135
|
+
at: now,
|
|
136
|
+
question,
|
|
137
|
+
answer: redactDecisionText(String(input.answer ?? '').trim()),
|
|
138
|
+
...(input.choices && input.choices.length > 0
|
|
139
|
+
? { choices: input.choices.slice(0, 8).map((c) => redactDecisionText(c)) }
|
|
140
|
+
: {}),
|
|
141
|
+
source: input.source ?? 'unknown',
|
|
142
|
+
status: 'decided',
|
|
143
|
+
};
|
|
144
|
+
try {
|
|
145
|
+
writeStore(input.dir, [...readDecisions(input.dir), record]);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
// Best-effort — a decision-log write must never break a turn.
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
return record;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Revise a decision. The new answer becomes the record's answer and is appended
|
|
155
|
+
* to its history, so the OLD choice is still visible — a decision that changed is
|
|
156
|
+
* more useful documented than overwritten.
|
|
157
|
+
*/
|
|
158
|
+
export function reviseDecision(dir, id, answer, note, now = Date.now()) {
|
|
159
|
+
const records = readDecisions(dir);
|
|
160
|
+
const idx = records.findIndex((r) => r.id === id);
|
|
161
|
+
if (idx === -1)
|
|
162
|
+
return null;
|
|
163
|
+
const prev = records[idx];
|
|
164
|
+
const revised = {
|
|
165
|
+
...prev,
|
|
166
|
+
answer: redactDecisionText(answer.trim()),
|
|
167
|
+
status: 'revised',
|
|
168
|
+
revisions: [
|
|
169
|
+
...(prev.revisions ?? []),
|
|
170
|
+
{
|
|
171
|
+
at: now,
|
|
172
|
+
answer: redactDecisionText(answer.trim()),
|
|
173
|
+
...(note ? { note: redactDecisionText(note.trim()) } : {}),
|
|
174
|
+
},
|
|
175
|
+
],
|
|
176
|
+
};
|
|
177
|
+
records[idx] = revised;
|
|
178
|
+
try {
|
|
179
|
+
writeStore(dir, records);
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
return revised;
|
|
185
|
+
}
|
|
186
|
+
function iso(at) {
|
|
187
|
+
return at > 0 ? new Date(at).toISOString() : 'unknown';
|
|
188
|
+
}
|
|
189
|
+
/** The human-readable companion, regenerated on every write. */
|
|
190
|
+
export function renderDecisionsDoc(records) {
|
|
191
|
+
const lines = [];
|
|
192
|
+
lines.push('# Decisions');
|
|
193
|
+
lines.push('');
|
|
194
|
+
lines.push('Decisions this project asked YOU to make (`ask_user`), recorded so they can be');
|
|
195
|
+
lines.push('referred to and revised later. Generated from `.nuvira/decisions.jsonl` — do not');
|
|
196
|
+
lines.push(`edit by hand; change a decision with \`nuvira decisions revise <id> --answer "…"\`.`);
|
|
197
|
+
lines.push('');
|
|
198
|
+
if (records.length === 0) {
|
|
199
|
+
lines.push('_No decisions recorded yet._');
|
|
200
|
+
lines.push('');
|
|
201
|
+
return lines.join('\n');
|
|
202
|
+
}
|
|
203
|
+
for (const r of records) {
|
|
204
|
+
lines.push(`## ${r.question}`);
|
|
205
|
+
lines.push('');
|
|
206
|
+
lines.push(`- **Answer:** ${r.answer || '_(none)_'}`);
|
|
207
|
+
lines.push(`- **Recorded:** ${iso(r.at)} · ${r.source} · \`${r.id}\``);
|
|
208
|
+
if (r.status === 'revised')
|
|
209
|
+
lines.push('- **Status:** revised');
|
|
210
|
+
if (r.choices && r.choices.length > 0) {
|
|
211
|
+
lines.push(`- **Choices offered:** ${r.choices.map((c) => `\`${c}\``).join(', ')}`);
|
|
212
|
+
}
|
|
213
|
+
if (r.revisions && r.revisions.length > 0) {
|
|
214
|
+
lines.push('- **History:**');
|
|
215
|
+
for (const rev of r.revisions) {
|
|
216
|
+
lines.push(` - ${iso(rev.at)} → ${rev.answer || '_(none)_'}${rev.note ? ` — ${rev.note}` : ''}`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
lines.push('');
|
|
220
|
+
}
|
|
221
|
+
return lines.join('\n');
|
|
222
|
+
}
|
|
223
|
+
/** One-line summaries for a CLI list. */
|
|
224
|
+
export function formatDecisionSummaries(records) {
|
|
225
|
+
if (records.length === 0)
|
|
226
|
+
return ['(no decisions recorded for this project yet)'];
|
|
227
|
+
return records.map((r) => {
|
|
228
|
+
const mark = r.status === 'revised' ? '✏️' : '✅';
|
|
229
|
+
return `${mark} ${r.id} ${iso(r.at)} [${r.source}] ${r.question.slice(0, 90)} → ${r.answer.slice(0, 60)}`;
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Token set for a lightweight relevance match (no phrase lists, no model).
|
|
234
|
+
* Only tokens of 4+ characters count, so the short function words that would
|
|
235
|
+
* otherwise match every question ("the", "use", "and") do not drown the real
|
|
236
|
+
* subject; the user still sees each question and judges for themselves.
|
|
237
|
+
*/
|
|
238
|
+
function tokenSet(text) {
|
|
239
|
+
return new Set(String(text ?? '')
|
|
240
|
+
.toLowerCase()
|
|
241
|
+
.split(/[^a-z0-9]+/)
|
|
242
|
+
.filter((t) => t.length >= 4));
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Decisions relevant to an ask, ranked by shared significant tokens — the
|
|
246
|
+
* READ-BACK half: so a later turn can be shown what was already decided about a
|
|
247
|
+
* related ask instead of re-asking. Best-effort; an empty list is a real answer.
|
|
248
|
+
*/
|
|
249
|
+
export function recallDecisions(dir, text, limit = 5) {
|
|
250
|
+
const want = tokenSet(text);
|
|
251
|
+
if (want.size === 0)
|
|
252
|
+
return [];
|
|
253
|
+
const scored = readDecisions(dir)
|
|
254
|
+
.map((r) => {
|
|
255
|
+
const have = tokenSet(r.question);
|
|
256
|
+
let shared = 0;
|
|
257
|
+
for (const t of want)
|
|
258
|
+
if (have.has(t))
|
|
259
|
+
shared++;
|
|
260
|
+
return { r, shared };
|
|
261
|
+
})
|
|
262
|
+
.filter((s) => s.shared > 0)
|
|
263
|
+
.sort((a, b) => b.shared - a.shared || b.r.at - a.r.at);
|
|
264
|
+
return scored.slice(0, Math.max(1, limit)).map((s) => s.r);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* The READ-BACK block injected into a later turn's context: the related
|
|
268
|
+
* decisions this project already made, so the model is not asked to re-decide
|
|
269
|
+
* what is settled. ADVISORY ONLY.
|
|
270
|
+
*
|
|
271
|
+
* The header says what the block IS and marks it revisable on purpose: the whole
|
|
272
|
+
* point of a standing answer is that a CHANGED situation must still be able to
|
|
273
|
+
* ask again. Nothing here suppresses an `ask_user` — the block only tells the
|
|
274
|
+
* model what was already decided; the decision to ask belongs to the situation.
|
|
275
|
+
*
|
|
276
|
+
* Empty string when nothing matches a significant token, so a turn with no
|
|
277
|
+
* related decision is byte-identical to one from a build without this feature.
|
|
278
|
+
*/
|
|
279
|
+
export function recallDecisionBlock(dir, text, limit = 3) {
|
|
280
|
+
const hits = recallDecisions(dir, text, limit);
|
|
281
|
+
if (hits.length === 0)
|
|
282
|
+
return '';
|
|
283
|
+
const lines = hits.map((r) => {
|
|
284
|
+
const revised = r.status === 'revised' ? ' (revised)' : '';
|
|
285
|
+
return `- ${r.question} → ${r.answer || '(no answer)'}${revised}`;
|
|
286
|
+
});
|
|
287
|
+
return [
|
|
288
|
+
'[Previously decided — this project already answered these related questions]',
|
|
289
|
+
'Standing answers, so the same question is not asked twice. They are NOT a',
|
|
290
|
+
'reason to skip a must-ask: if the situation has genuinely changed (new scope, a',
|
|
291
|
+
'different target, a constraint that no longer holds), ask again and record the',
|
|
292
|
+
'new answer.',
|
|
293
|
+
...lines,
|
|
294
|
+
].join('\n');
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=decision-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-log.js","sourceRoot":"","sources":["../../src/learning/decision-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliverable-class.d.ts","sourceRoot":"","sources":["../../src/learning/deliverable-class.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAOH;;;;;GAKG;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtF;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtE,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,KAAK,EAAE,gBAAgB,CAAC;IACxB,qFAAqF;IACrF,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"deliverable-class.d.ts","sourceRoot":"","sources":["../../src/learning/deliverable-class.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAOH;;;;;GAKG;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtF;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtE,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,KAAK,EAAE,gBAAgB,CAAC;IACxB,qFAAqF;IACrF,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAoJ9C;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAqFpE;AA0FD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMzD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG3D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAEtE;AAED,yDAAyD;AACzD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAanE;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,CA0BnG"}
|
|
@@ -65,6 +65,25 @@ const DOCUMENT_SIGNALS = [
|
|
|
65
65
|
[/\b(document|documentation|guide|tutorial|readme)\b[^.]{0,30}\b(write|draft|author|create|prepare|compose)\b/i, 3],
|
|
66
66
|
[/\b(write|writes|writing|draft|author|compose|prepare)\b[^.]{0,30}\b(document|documentation|guide|tutorial|report|essay|article|blog\s+post|letter|chapter)\b/i, 2],
|
|
67
67
|
[/\b(रिपोर्ट|निबंध|लेख|पत्र)\b/, 3],
|
|
68
|
+
// A creation verb whose DOCUMENT noun is the HEAD of its object — the noun ends
|
|
69
|
+
// the clause or is followed only by a destination/preposition. This is the
|
|
70
|
+
// high-precision complement to the two proximity rules above, and it exists
|
|
71
|
+
// because those two MISS the most ordinary phrasing of a document ask: the
|
|
72
|
+
// proximity window is 30 characters, while "write a comprehensive technical
|
|
73
|
+
// guide…" puts the noun 32 characters after the verb and "write a long detailed
|
|
74
|
+
// technical design document to DESIGN.md" puts it 34 — measured, both classified
|
|
75
|
+
// `code` (the F1 ask at confidence 0), so `wantsAuthoredArtifact` was false and
|
|
76
|
+
// NEITHER the deliverable gate NOR `undeliveredArtifact` could apply. A live run
|
|
77
|
+
// then wrote no file, claimed a "full ~5,000-word guide" on disk, and printed no
|
|
78
|
+
// warning. Anchoring on what FOLLOWS the noun is what keeps this precise: "write
|
|
79
|
+
// a test that validates the document parser" has `document` followed by `parser`,
|
|
80
|
+
// and "write a user manual, then add a CLI flag" has `manual` followed by a
|
|
81
|
+
// comma, so both stay off the authored path (the second is a genuinely mixed ask
|
|
82
|
+
// whose code signal must win).
|
|
83
|
+
[
|
|
84
|
+
/\b(?:write|writes|writing|draft|author|compose|prepare|create)\b[^.;]{0,60}\b(?:document|documentation|guide|tutorial|report|essay|article|whitepaper|white\s+paper|manual|handbook|thesis|dissertation|specification)\b\s*(?:\([^)]*\)\s*)?(?:$|to\b|into\b|as\b|for\b|in\b|at\b|on\b|about\b|covering\b|describing\b)/i,
|
|
85
|
+
3,
|
|
86
|
+
],
|
|
68
87
|
];
|
|
69
88
|
/** Data-analysis signals. */
|
|
70
89
|
const DATA_SIGNALS = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliverable-class.js","sourceRoot":"","sources":["../../src/learning/deliverable-class.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deliverable-class.js","sourceRoot":"","sources":["../../src/learning/deliverable-class.ts"],"names":[],"mappings":"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"}
|