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
|
@@ -85,6 +85,11 @@ export interface RunTraceSnapshot {
|
|
|
85
85
|
mutations: number;
|
|
86
86
|
/** The distinct files changed. */
|
|
87
87
|
paths: string[];
|
|
88
|
+
/**
|
|
89
|
+
* Decisions the run took ON THE USER'S BEHALF because nobody was reachable,
|
|
90
|
+
* one line each (deduped, oldest first). Empty on a turn the user drove.
|
|
91
|
+
*/
|
|
92
|
+
assumptions: string[];
|
|
88
93
|
}
|
|
89
94
|
/**
|
|
90
95
|
* The run's own behaviour, as data.
|
|
@@ -96,6 +101,7 @@ export interface RunTraceSnapshot {
|
|
|
96
101
|
*/
|
|
97
102
|
export declare class RunTrace {
|
|
98
103
|
private asks;
|
|
104
|
+
private assumptions;
|
|
99
105
|
private refusals;
|
|
100
106
|
private failures;
|
|
101
107
|
private mutations;
|
|
@@ -105,6 +111,21 @@ export declare class RunTrace {
|
|
|
105
111
|
priorAnswer(question: string): string | undefined;
|
|
106
112
|
/** Record that the agent asked something, and whether the user saw it. */
|
|
107
113
|
recordAsk(question: string, shown: boolean, answer?: string): void;
|
|
114
|
+
/**
|
|
115
|
+
* Record a decision taken on the user's behalf because nobody was reachable.
|
|
116
|
+
*
|
|
117
|
+
* Deliberately NOT `recordAsk`: an assumption is not a question the user
|
|
118
|
+
* answered, and filing it as one is what let a silent default read as the
|
|
119
|
+
* user's own choice on every surface downstream.
|
|
120
|
+
*/
|
|
121
|
+
recordAssumption(question: string, assumed: string): void;
|
|
122
|
+
/** How many decisions the run took on the user's behalf. */
|
|
123
|
+
assumptionCount(): number;
|
|
124
|
+
/**
|
|
125
|
+
* The assumptions as disclosure lines, deduped and oldest first — the exact
|
|
126
|
+
* text a surface prints so "what did it decide for me?" is answerable.
|
|
127
|
+
*/
|
|
128
|
+
assumptionLines(): string[];
|
|
108
129
|
/** Prior refusals of the SAME tool for the SAME reason. */
|
|
109
130
|
priorRefusalMatches(tool: string, detail: string): number;
|
|
110
131
|
recordRefusal(tool: string, reason: string, detail: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-trace.d.ts","sourceRoot":"","sources":["../../src/learning/run-trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAsCD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAiB7D;AAUD,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAK1E;AAED,oCAAoC;AACpC,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,+DAA+D;IAC/D,KAAK,EAAE,OAAO,CAAC;IACf,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;
|
|
1
|
+
{"version":3,"file":"run-trace.d.ts","sourceRoot":"","sources":["../../src/learning/run-trace.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,6 +125,7 @@ export const MAX_TRACE_ENTRIES = 60;
|
|
|
125
125
|
*/
|
|
126
126
|
export class RunTrace {
|
|
127
127
|
asks = [];
|
|
128
|
+
assumptions = [];
|
|
128
129
|
refusals = [];
|
|
129
130
|
failures = [];
|
|
130
131
|
mutations = [];
|
|
@@ -150,6 +151,42 @@ export class RunTrace {
|
|
|
150
151
|
if (this.asks.length > MAX_TRACE_ENTRIES)
|
|
151
152
|
this.asks.shift();
|
|
152
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Record a decision taken on the user's behalf because nobody was reachable.
|
|
156
|
+
*
|
|
157
|
+
* Deliberately NOT `recordAsk`: an assumption is not a question the user
|
|
158
|
+
* answered, and filing it as one is what let a silent default read as the
|
|
159
|
+
* user's own choice on every surface downstream.
|
|
160
|
+
*/
|
|
161
|
+
recordAssumption(question, assumed) {
|
|
162
|
+
this.assumptions.push({
|
|
163
|
+
question: String(question ?? ''),
|
|
164
|
+
assumed: String(assumed ?? ''),
|
|
165
|
+
at: Date.now(),
|
|
166
|
+
});
|
|
167
|
+
if (this.assumptions.length > MAX_TRACE_ENTRIES)
|
|
168
|
+
this.assumptions.shift();
|
|
169
|
+
}
|
|
170
|
+
/** How many decisions the run took on the user's behalf. */
|
|
171
|
+
assumptionCount() {
|
|
172
|
+
return this.assumptions.length;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* The assumptions as disclosure lines, deduped and oldest first — the exact
|
|
176
|
+
* text a surface prints so "what did it decide for me?" is answerable.
|
|
177
|
+
*/
|
|
178
|
+
assumptionLines() {
|
|
179
|
+
const lines = [];
|
|
180
|
+
const seen = new Set();
|
|
181
|
+
for (const a of this.assumptions) {
|
|
182
|
+
const line = `assumed "${a.assumed}" for: ${a.question}`;
|
|
183
|
+
if (seen.has(line))
|
|
184
|
+
continue;
|
|
185
|
+
seen.add(line);
|
|
186
|
+
lines.push(line);
|
|
187
|
+
}
|
|
188
|
+
return lines;
|
|
189
|
+
}
|
|
153
190
|
/** Prior refusals of the SAME tool for the SAME reason. */
|
|
154
191
|
priorRefusalMatches(tool, detail) {
|
|
155
192
|
const signature = normalize(detail).slice(0, 200);
|
|
@@ -262,6 +299,7 @@ export class RunTrace {
|
|
|
262
299
|
refusals: this.refusals.length,
|
|
263
300
|
mutations: this.mutations.length,
|
|
264
301
|
paths: this.distinctMutationPaths(),
|
|
302
|
+
assumptions: this.assumptionLines(),
|
|
265
303
|
};
|
|
266
304
|
}
|
|
267
305
|
/** Distinct questions, each with how many times it was asked and its answer. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-trace.js","sourceRoot":"","sources":["../../src/learning/run-trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAUH;;;;;GAKG;AACH,MAAM,SAAS,GAAwB,IAAI,GAAG,CAAC;IAC7C,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACrF,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAC/E,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACrF,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI;IACnF,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAC/E,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU;IAC/E,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS;IAC7E,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IACpF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAC5E,CAAC,CAAC;AAEH,iFAAiF;AACjF,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;SACtB,WAAW,EAAE;SACb,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC;SACpC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,6EAA6E;AAC7E,MAAM,cAAc,GAClB,uGAAuG,CAAC;AAC1G,4EAA4E;AAC5E,+EAA+E;AAC/E,mEAAmE;AACnE,MAAM,iBAAiB,GACrB,2HAA2H,CAAC;AAE9H;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1G,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;AAClD,CAAC;AAED,kEAAkE;AAClE,SAAS,OAAO,CAAC,CAAW,EAAE,CAAW;IACvC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACnD,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,CAAgB,EAAE,CAAgB;IAC/D,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC;AAC9D,CAAC;AAkDD,oFAAoF;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAkBpC;;;;;;;GAOG;AACH,MAAM,OAAO,QAAQ;IACX,IAAI,GAAgB,EAAE,CAAC;IACvB,QAAQ,GAAoB,EAAE,CAAC;IAC/B,QAAQ,GAAoB,EAAE,CAAC;IAC/B,SAAS,GAAqB,EAAE,CAAC;IAEzC,wEAAwE;IACxE,eAAe,CAAC,QAAgB;QAC9B,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,2EAA2E;IAC3E,WAAW,CAAC,QAAgB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC;IAED,0EAA0E;IAC1E,SAAS,CAAC,QAAgB,EAAE,KAAc,EAAE,MAAe;QACzD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YAChC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC;YAC9B,KAAK;YACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;SACf,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,iBAAiB;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC9D,CAAC;IAED,2DAA2D;IAC3D,mBAAmB,CAAC,IAAY,EAAE,MAAc;QAC9C,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAC1F,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,MAAc,EAAE,MAAc;QACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI;YACJ,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YAC1C,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;SACf,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,iBAAiB;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACtE,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,IAAY,EAAE,MAAc,EAAE,MAAc;QACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI;YACJ,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACvC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YAC1C,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;SACf,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,iBAAiB;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACtE,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,KAAK,GAAG,CAAC;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrH,CAAC;IAED;;;;;;;;;OASG;IACH,eAAe;QACb,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2E,CAAC;QAClG,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,GAAG,EAAE,CAAC;gBACR,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;gBACf,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QACD,IAAI,KAAK,GAA2E,IAAI,CAAC;QACzF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAAE,KAAK,GAAG,KAAK,CAAC;QAC/E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc,CAAC,IAAY,EAAE,IAAa;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,iBAAiB;YAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACxE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACd,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3D,OAAO,IAAI,CAAC,CAAC;oBACb,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ;QACN,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACtB,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE;YAChC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC9B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;YAChC,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE;SACpC,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,UAAU;QACR,MAAM,MAAM,GAAsF,EAAE,CAAC;QACrG,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YACnE,IAAI,GAAG,EAAE,CAAC;gBACR,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;gBACf,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM;oBAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAClH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAClD,QAAQ;YACR,KAAK;YACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC,CAAC;IACN,CAAC;IAED,qBAAqB;QACnB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC;IAED;;;;;;OAMG;IACH,UAAU;QACR,MAAM,KAAK,GAAa,CAAC,oDAAoD,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEzC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CACR,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,iBAAiB,KAAK,qBAAqB;gBACtE,GAAG,QAAQ,qDAAqD,CACnE,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC;gBAC1F,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,MAAM,GAAG,CAAC;YACd,CAAC,CAAC,sBAAsB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG;YACnH,CAAC,CAAC,iCAAiC,CACtC,CAAC;QAEF,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CACR,8EAA8E;gBAC5E,qFAAqF,CACxF,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,MAAe;IAC3D,OAAO,CACL,gFAAgF;QAChF,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK;QAC7C,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,gFAAgF;QAChF,sFAAsF;QACtF,mFAAmF;QACnF,oDAAoD,CACrD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAwE;IAExE,OAAO,CACL,gCAAgC,OAAO,CAAC,KAAK,uCAAuC;QACpF,KAAK,OAAO,CAAC,MAAM,OAAO,OAAO,CAAC,IAAI,MAAM;QAC5C,wBAAwB,OAAO,CAAC,MAAM,IAAI;QAC1C,mFAAmF;QACnF,8FAA8F;QAC9F,8FAA8F;QAC9F,8FAA8F;QAC9F,4FAA4F;QAC5F,mDAAmD,CACpD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAiE,EACjE,KAAa;IAEb,MAAM,MAAM,GACV,QAAQ,CAAC,MAAM,GAAG,CAAC;QACjB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChF,CAAC,CAAC,6DAA6D,CAAC;IACpE,OAAO,CACL,iBAAiB,KAAK,mDAAmD,MAAM,IAAI;QACnF,2FAA2F;QAC3F,gGAAgG;QAChG,kGAAkG;QAClG,gGAAgG;QAChG,4FAA4F;QAC5F,iFAAiF,CAClF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,MAAM,oBAAoB,GAAG,IAAI,MAAM,CACrC;IACE,qHAAqH;IACrH,2GAA2G;IAC3G,oDAAoD;IACpD,yFAAyF;IACzF,wBAAwB;IACxB,kDAAkD;CACnD,CAAC,IAAI,CAAC,GAAG,CAAC,EACX,GAAG,CACJ,CAAC;AAEF,0DAA0D;AAC1D,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,+EAA+E;AAE/E,MAAM,MAAM,GAAG,IAAI,OAAO,EAAoB,CAAC;AAE/C,+DAA+D;AAC/D,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,OAAO,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC;AAChF,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,YAAY,CAAC,GAAuB;IAClD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,aAAa,CAAC,GAAuB;IACnD,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC"}
|
|
1
|
+
{"version":3,"file":"run-trace.js","sourceRoot":"","sources":["../../src/learning/run-trace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The SESSION GRANT — "allow all write commands for this session".
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS. The confirm gate is correct to ask before a state-changing
|
|
5
|
+
* action, but asking at ACTION granularity is the manual cadence at scale: on a
|
|
6
|
+
* real codebase the number of interruptions is O(number of edits), which is not
|
|
7
|
+
* safety, it is friction that merely looks like diligence. The intent envelope
|
|
8
|
+
* (`intent-envelope.ts`) already removed the friction for work a request or an
|
|
9
|
+
* approved plan authorized — but it is derived from the REQUEST, so an
|
|
10
|
+
* operation the request did not obviously cover still asks, every time, for the
|
|
11
|
+
* whole session.
|
|
12
|
+
*
|
|
13
|
+
* WHAT THIS IS. An EXPLICIT, user-granted, session-scoped permission to run a
|
|
14
|
+
* CATEGORY of state-changing action without asking again:
|
|
15
|
+
*
|
|
16
|
+
* - `write` — file mutations (`edit_file`, `write_file`, …).
|
|
17
|
+
* - `terminal` — recoverable *local-state* shell commands (installs, mkdir,
|
|
18
|
+
* cp/mv, git add — the workspace set).
|
|
19
|
+
* - `external` — OFF-MACHINE actions: network fetches, global/system installs,
|
|
20
|
+
* publish, push. The user may grant it EXPLICITLY, once, at the
|
|
21
|
+
* friction point; it is never the default.
|
|
22
|
+
*
|
|
23
|
+
* It is offered at the exact moment the guard would ask (the `ask_user` a
|
|
24
|
+
* confirmation refusal asks for) as one extra choice — "Allow all <category>
|
|
25
|
+
* for this session" — so the user's explicit go-ahead is received, never
|
|
26
|
+
* inferred. A user who does not pick it keeps the ask-every-time default; there
|
|
27
|
+
* is no silent widening.
|
|
28
|
+
*
|
|
29
|
+
* THE LINE IT DOES NOT CROSS. The HARD DENY floor is not a category and can
|
|
30
|
+
* never be granted: the absolute DENY patterns in `run-terminal.ts` (sudo, rm
|
|
31
|
+
* -rf at dangerous targets, force-push, history destruction) run BEFORE any
|
|
32
|
+
* grant is consulted, so no grant unlocks them. And a grant is never inferred
|
|
33
|
+
* from prose — `external` in particular is only ever granted when the user
|
|
34
|
+
* picks it explicitly, so a blanket "go ahead and build" cannot silently
|
|
35
|
+
* authorize changing the whole machine or publishing to the world.
|
|
36
|
+
*
|
|
37
|
+
* WHERE IT LIVES. Per CONVERSATION, keyed to the session's plan store — the
|
|
38
|
+
* same key the intent envelope uses — so it survives the turn that granted it
|
|
39
|
+
* and dies with the conversation. A `WeakMap` key means nothing to clean up. A
|
|
40
|
+
* TTL is the brakeman on a stale grant; the default is long enough to outlast a
|
|
41
|
+
* working session and short enough that yesterday's go-ahead cannot silently
|
|
42
|
+
* authorize today's work.
|
|
43
|
+
*/
|
|
44
|
+
/** The categories a session grant can cover. */
|
|
45
|
+
export type SessionGrantCategory = 'write' | 'terminal' | 'external';
|
|
46
|
+
/**
|
|
47
|
+
* How long a session grant stays live. Eight hours is a working session; the
|
|
48
|
+
* grant is per-conversation anyway, so this only bounds a conversation that is
|
|
49
|
+
* left open far longer than its work.
|
|
50
|
+
*/
|
|
51
|
+
export declare const SESSION_GRANT_TTL_MS: number;
|
|
52
|
+
/** An explicit, session-scoped permission to skip the confirm gate. */
|
|
53
|
+
export interface SessionGrant {
|
|
54
|
+
categories: SessionGrantCategory[];
|
|
55
|
+
grantedAt: number;
|
|
56
|
+
expiresAt: number;
|
|
57
|
+
/** How it was granted — recorded so the decision is auditable, not a vibe. */
|
|
58
|
+
reason: string;
|
|
59
|
+
}
|
|
60
|
+
/** The human label for a category, used in the offered choice and messages. */
|
|
61
|
+
export declare function sessionGrantLabel(category: SessionGrantCategory): string;
|
|
62
|
+
/**
|
|
63
|
+
* Grant (or extend) session permission for the given categories. Additive on
|
|
64
|
+
* purpose: granting `write` after `terminal` must not revoke the first.
|
|
65
|
+
*/
|
|
66
|
+
export declare function grantSession(key: object | undefined, categories: SessionGrantCategory[], reason?: string, now?: number): SessionGrant | null;
|
|
67
|
+
/** The live grant for a conversation, or null. An EXPIRED grant is dropped on read. */
|
|
68
|
+
export declare function getSessionGrant(key: object | undefined, now?: number): SessionGrant | null;
|
|
69
|
+
/** Revoke the grant (the user asked to be asked again, or the session ended). */
|
|
70
|
+
export declare function clearSessionGrant(key: object | undefined): void;
|
|
71
|
+
/** Does the session grant cover this category right now? */
|
|
72
|
+
export declare function sessionGrantCovers(key: object | undefined, category: SessionGrantCategory, now?: number): boolean;
|
|
73
|
+
/** A one-line disclosure, so a granted session says so instead of acting silently. */
|
|
74
|
+
export declare function sessionGrantNotice(grant: SessionGrant): string;
|
|
75
|
+
//# sourceMappingURL=session-grant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-grant.d.ts","sourceRoot":"","sources":["../../src/learning/session-grant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,gDAAgD;AAChD,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAqB,CAAC;AAEvD,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;CAChB;AASD,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAIxE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,UAAU,EAAE,oBAAoB,EAAE,EAClC,MAAM,SAA0C,EAChD,GAAG,SAAa,GACf,YAAY,GAAG,IAAI,CAerB;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,SAAa,GAAG,YAAY,GAAG,IAAI,CAS9F;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE/D;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,SAAa,GACf,OAAO,CAET;AAED,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAM9D"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The SESSION GRANT — "allow all write commands for this session".
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS. The confirm gate is correct to ask before a state-changing
|
|
5
|
+
* action, but asking at ACTION granularity is the manual cadence at scale: on a
|
|
6
|
+
* real codebase the number of interruptions is O(number of edits), which is not
|
|
7
|
+
* safety, it is friction that merely looks like diligence. The intent envelope
|
|
8
|
+
* (`intent-envelope.ts`) already removed the friction for work a request or an
|
|
9
|
+
* approved plan authorized — but it is derived from the REQUEST, so an
|
|
10
|
+
* operation the request did not obviously cover still asks, every time, for the
|
|
11
|
+
* whole session.
|
|
12
|
+
*
|
|
13
|
+
* WHAT THIS IS. An EXPLICIT, user-granted, session-scoped permission to run a
|
|
14
|
+
* CATEGORY of state-changing action without asking again:
|
|
15
|
+
*
|
|
16
|
+
* - `write` — file mutations (`edit_file`, `write_file`, …).
|
|
17
|
+
* - `terminal` — recoverable *local-state* shell commands (installs, mkdir,
|
|
18
|
+
* cp/mv, git add — the workspace set).
|
|
19
|
+
* - `external` — OFF-MACHINE actions: network fetches, global/system installs,
|
|
20
|
+
* publish, push. The user may grant it EXPLICITLY, once, at the
|
|
21
|
+
* friction point; it is never the default.
|
|
22
|
+
*
|
|
23
|
+
* It is offered at the exact moment the guard would ask (the `ask_user` a
|
|
24
|
+
* confirmation refusal asks for) as one extra choice — "Allow all <category>
|
|
25
|
+
* for this session" — so the user's explicit go-ahead is received, never
|
|
26
|
+
* inferred. A user who does not pick it keeps the ask-every-time default; there
|
|
27
|
+
* is no silent widening.
|
|
28
|
+
*
|
|
29
|
+
* THE LINE IT DOES NOT CROSS. The HARD DENY floor is not a category and can
|
|
30
|
+
* never be granted: the absolute DENY patterns in `run-terminal.ts` (sudo, rm
|
|
31
|
+
* -rf at dangerous targets, force-push, history destruction) run BEFORE any
|
|
32
|
+
* grant is consulted, so no grant unlocks them. And a grant is never inferred
|
|
33
|
+
* from prose — `external` in particular is only ever granted when the user
|
|
34
|
+
* picks it explicitly, so a blanket "go ahead and build" cannot silently
|
|
35
|
+
* authorize changing the whole machine or publishing to the world.
|
|
36
|
+
*
|
|
37
|
+
* WHERE IT LIVES. Per CONVERSATION, keyed to the session's plan store — the
|
|
38
|
+
* same key the intent envelope uses — so it survives the turn that granted it
|
|
39
|
+
* and dies with the conversation. A `WeakMap` key means nothing to clean up. A
|
|
40
|
+
* TTL is the brakeman on a stale grant; the default is long enough to outlast a
|
|
41
|
+
* working session and short enough that yesterday's go-ahead cannot silently
|
|
42
|
+
* authorize today's work.
|
|
43
|
+
*/
|
|
44
|
+
/**
|
|
45
|
+
* How long a session grant stays live. Eight hours is a working session; the
|
|
46
|
+
* grant is per-conversation anyway, so this only bounds a conversation that is
|
|
47
|
+
* left open far longer than its work.
|
|
48
|
+
*/
|
|
49
|
+
export const SESSION_GRANT_TTL_MS = 8 * 60 * 60 * 1000;
|
|
50
|
+
/** Per-conversation grant store, keyed by the session's plan store. */
|
|
51
|
+
const store = new WeakMap();
|
|
52
|
+
function isKey(key) {
|
|
53
|
+
return (typeof key === 'object' && key !== null) || typeof key === 'function';
|
|
54
|
+
}
|
|
55
|
+
/** The human label for a category, used in the offered choice and messages. */
|
|
56
|
+
export function sessionGrantLabel(category) {
|
|
57
|
+
if (category === 'terminal')
|
|
58
|
+
return 'terminal commands';
|
|
59
|
+
if (category === 'external')
|
|
60
|
+
return 'off-machine actions';
|
|
61
|
+
return 'file writes';
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Grant (or extend) session permission for the given categories. Additive on
|
|
65
|
+
* purpose: granting `write` after `terminal` must not revoke the first.
|
|
66
|
+
*/
|
|
67
|
+
export function grantSession(key, categories, reason = 'the user allowed this for the session', now = Date.now()) {
|
|
68
|
+
if (!isKey(key) || categories.length === 0)
|
|
69
|
+
return null;
|
|
70
|
+
const prev = store.get(key);
|
|
71
|
+
const merged = new Set([
|
|
72
|
+
...(prev && prev.expiresAt > now ? prev.categories : []),
|
|
73
|
+
...categories,
|
|
74
|
+
]);
|
|
75
|
+
const grant = {
|
|
76
|
+
categories: [...merged],
|
|
77
|
+
grantedAt: now,
|
|
78
|
+
expiresAt: now + SESSION_GRANT_TTL_MS,
|
|
79
|
+
reason,
|
|
80
|
+
};
|
|
81
|
+
store.set(key, grant);
|
|
82
|
+
return grant;
|
|
83
|
+
}
|
|
84
|
+
/** The live grant for a conversation, or null. An EXPIRED grant is dropped on read. */
|
|
85
|
+
export function getSessionGrant(key, now = Date.now()) {
|
|
86
|
+
if (!isKey(key))
|
|
87
|
+
return null;
|
|
88
|
+
const grant = store.get(key);
|
|
89
|
+
if (!grant)
|
|
90
|
+
return null;
|
|
91
|
+
if (grant.expiresAt <= now) {
|
|
92
|
+
store.delete(key);
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return grant;
|
|
96
|
+
}
|
|
97
|
+
/** Revoke the grant (the user asked to be asked again, or the session ended). */
|
|
98
|
+
export function clearSessionGrant(key) {
|
|
99
|
+
if (isKey(key))
|
|
100
|
+
store.delete(key);
|
|
101
|
+
}
|
|
102
|
+
/** Does the session grant cover this category right now? */
|
|
103
|
+
export function sessionGrantCovers(key, category, now = Date.now()) {
|
|
104
|
+
return getSessionGrant(key, now)?.categories.includes(category) ?? false;
|
|
105
|
+
}
|
|
106
|
+
/** A one-line disclosure, so a granted session says so instead of acting silently. */
|
|
107
|
+
export function sessionGrantNotice(grant) {
|
|
108
|
+
const labels = grant.categories.map(sessionGrantLabel).join(' and ');
|
|
109
|
+
return (`✅ Allowed for this session: ${labels}. They run without asking again; ` +
|
|
110
|
+
'irreversible and off-machine actions still ask, and the permission ends with this conversation.');
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=session-grant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-grant.js","sourceRoot":"","sources":["../../src/learning/session-grant.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task-level model CONTINUITY (fix_model_routing P3, RC7).
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS. Routing is decided PER TURN, and for a continuation the turn
|
|
5
|
+
* text is signal-free: "resume", "continue", "go on". `continuationSoftwareText`
|
|
6
|
+
* already rescues the ROUTING by scoring the ask the continuation continues — but
|
|
7
|
+
* the DECISION is then re-made from scratch, so a task that was being served by
|
|
8
|
+
* a model that demonstrably worked can be handed, on its very next turn, to a
|
|
9
|
+
* model that has never touched it (and, in the live case, to one that returns
|
|
10
|
+
* nothing at all). The user sees a working run "resume" and die.
|
|
11
|
+
*
|
|
12
|
+
* The rule this module implements is the one a competent operator follows: when
|
|
13
|
+
* you pick up a task someone was already making progress on, you go back to the
|
|
14
|
+
* same worker if they are still available. Continuity is therefore a PREFERENCE,
|
|
15
|
+
* never a constraint — the remembered pair is offered FIRST and the ordinary
|
|
16
|
+
* routing pool stands behind it, so a model that has since died, been parked or
|
|
17
|
+
* lost its key costs one check and is skipped (the caller re-validates before
|
|
18
|
+
* using it; this module only remembers).
|
|
19
|
+
*
|
|
20
|
+
* What it is NOT: a pin. It never overrides the user's explicit provider/model,
|
|
21
|
+
* and it never bypasses the governance or capability gates the router applies —
|
|
22
|
+
* the caller checks those and falls back to the normal walk.
|
|
23
|
+
*
|
|
24
|
+
* Scope: deliberately IN-MEMORY, per process/session. A memory is a fact about
|
|
25
|
+
* the run in front of us, and writing it to disk would make yesterday's model a
|
|
26
|
+
* silent preference in a fresh session with different credentials.
|
|
27
|
+
*/
|
|
28
|
+
/** A model that produced usable work for a task signature. */
|
|
29
|
+
export interface RememberedServingModel {
|
|
30
|
+
provider: string;
|
|
31
|
+
model: string;
|
|
32
|
+
/** The task signature this pair served (see {@link taskSignature}). */
|
|
33
|
+
signature: string;
|
|
34
|
+
/** When it last served that task (ms epoch). */
|
|
35
|
+
servedAt: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* How long a memory is good for. Long enough to cover a real working session
|
|
39
|
+
* (including a pause while the user reads the result), short enough that a stale
|
|
40
|
+
* preference cannot outlive the task it belonged to.
|
|
41
|
+
*/
|
|
42
|
+
export declare const TASK_CONTINUITY_TTL_MS: number;
|
|
43
|
+
/**
|
|
44
|
+
* The identity of a TASK, as far as model continuity is concerned: what kind of
|
|
45
|
+
* work it is and how hard it is. Deliberately NOT the raw prompt text — a
|
|
46
|
+
* continuation re-states the task in different words ("resume" vs the original
|
|
47
|
+
* sentence), so a text key would never match, while intent+complexity does,
|
|
48
|
+
* because both are derived from the SAME ask (the continuation's routing text is
|
|
49
|
+
* the prior software ask).
|
|
50
|
+
*
|
|
51
|
+
* Unknown parts stay unknown and are named `general`/`unknown` rather than
|
|
52
|
+
* dropped, so two turns that both failed to classify still match each other
|
|
53
|
+
* instead of silently forming an empty key.
|
|
54
|
+
*/
|
|
55
|
+
export declare function taskSignature(intent: string | undefined | null, complexity: string | undefined | null): string;
|
|
56
|
+
/**
|
|
57
|
+
* The per-session memory. Bounded by construction: one entry per task signature
|
|
58
|
+
* (a re-serve REPLACES rather than stacks), and a signature is a coarse class,
|
|
59
|
+
* not a prompt.
|
|
60
|
+
*/
|
|
61
|
+
export declare class TaskModelContinuity {
|
|
62
|
+
private bySignature;
|
|
63
|
+
/** Record the pair that just produced usable work for this task. */
|
|
64
|
+
remember(signature: string, provider: string, model: string, now?: number): void;
|
|
65
|
+
/** The remembered pair for this task, or null when there is none / it is stale. */
|
|
66
|
+
recall(signature: string, now?: number): RememberedServingModel | null;
|
|
67
|
+
/** Forget one task (used when the remembered pair turns out to be unusable). */
|
|
68
|
+
forget(signature: string): void;
|
|
69
|
+
/** How many tasks are remembered — telemetry/tests. */
|
|
70
|
+
size(): number;
|
|
71
|
+
clear(): void;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=task-model-continuity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-model-continuity.d.ts","sourceRoot":"","sources":["../../src/learning/task-model-continuity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,8DAA8D;AAC9D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAqB,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACjC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GACpC,MAAM,CAIR;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAA6C;IAEhE,oEAAoE;IACpE,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,MAAmB,GACvB,IAAI;IAKP,mFAAmF;IACnF,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,sBAAsB,GAAG,IAAI;IAUlF,gFAAgF;IAChF,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/B,uDAAuD;IACvD,IAAI,IAAI,MAAM;IAId,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task-level model CONTINUITY (fix_model_routing P3, RC7).
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS. Routing is decided PER TURN, and for a continuation the turn
|
|
5
|
+
* text is signal-free: "resume", "continue", "go on". `continuationSoftwareText`
|
|
6
|
+
* already rescues the ROUTING by scoring the ask the continuation continues — but
|
|
7
|
+
* the DECISION is then re-made from scratch, so a task that was being served by
|
|
8
|
+
* a model that demonstrably worked can be handed, on its very next turn, to a
|
|
9
|
+
* model that has never touched it (and, in the live case, to one that returns
|
|
10
|
+
* nothing at all). The user sees a working run "resume" and die.
|
|
11
|
+
*
|
|
12
|
+
* The rule this module implements is the one a competent operator follows: when
|
|
13
|
+
* you pick up a task someone was already making progress on, you go back to the
|
|
14
|
+
* same worker if they are still available. Continuity is therefore a PREFERENCE,
|
|
15
|
+
* never a constraint — the remembered pair is offered FIRST and the ordinary
|
|
16
|
+
* routing pool stands behind it, so a model that has since died, been parked or
|
|
17
|
+
* lost its key costs one check and is skipped (the caller re-validates before
|
|
18
|
+
* using it; this module only remembers).
|
|
19
|
+
*
|
|
20
|
+
* What it is NOT: a pin. It never overrides the user's explicit provider/model,
|
|
21
|
+
* and it never bypasses the governance or capability gates the router applies —
|
|
22
|
+
* the caller checks those and falls back to the normal walk.
|
|
23
|
+
*
|
|
24
|
+
* Scope: deliberately IN-MEMORY, per process/session. A memory is a fact about
|
|
25
|
+
* the run in front of us, and writing it to disk would make yesterday's model a
|
|
26
|
+
* silent preference in a fresh session with different credentials.
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* How long a memory is good for. Long enough to cover a real working session
|
|
30
|
+
* (including a pause while the user reads the result), short enough that a stale
|
|
31
|
+
* preference cannot outlive the task it belonged to.
|
|
32
|
+
*/
|
|
33
|
+
export const TASK_CONTINUITY_TTL_MS = 2 * 60 * 60 * 1000;
|
|
34
|
+
/**
|
|
35
|
+
* The identity of a TASK, as far as model continuity is concerned: what kind of
|
|
36
|
+
* work it is and how hard it is. Deliberately NOT the raw prompt text — a
|
|
37
|
+
* continuation re-states the task in different words ("resume" vs the original
|
|
38
|
+
* sentence), so a text key would never match, while intent+complexity does,
|
|
39
|
+
* because both are derived from the SAME ask (the continuation's routing text is
|
|
40
|
+
* the prior software ask).
|
|
41
|
+
*
|
|
42
|
+
* Unknown parts stay unknown and are named `general`/`unknown` rather than
|
|
43
|
+
* dropped, so two turns that both failed to classify still match each other
|
|
44
|
+
* instead of silently forming an empty key.
|
|
45
|
+
*/
|
|
46
|
+
export function taskSignature(intent, complexity) {
|
|
47
|
+
const i = (intent ?? '').trim().toLowerCase() || 'general';
|
|
48
|
+
const c = (complexity ?? '').trim().toLowerCase() || 'unknown';
|
|
49
|
+
return `${i}|${c}`;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The per-session memory. Bounded by construction: one entry per task signature
|
|
53
|
+
* (a re-serve REPLACES rather than stacks), and a signature is a coarse class,
|
|
54
|
+
* not a prompt.
|
|
55
|
+
*/
|
|
56
|
+
export class TaskModelContinuity {
|
|
57
|
+
bySignature = new Map();
|
|
58
|
+
/** Record the pair that just produced usable work for this task. */
|
|
59
|
+
remember(signature, provider, model, now = Date.now()) {
|
|
60
|
+
if (!signature || !provider || !model || model === 'default')
|
|
61
|
+
return;
|
|
62
|
+
this.bySignature.set(signature, { provider, model, signature, servedAt: now });
|
|
63
|
+
}
|
|
64
|
+
/** The remembered pair for this task, or null when there is none / it is stale. */
|
|
65
|
+
recall(signature, now = Date.now()) {
|
|
66
|
+
const entry = this.bySignature.get(signature);
|
|
67
|
+
if (!entry)
|
|
68
|
+
return null;
|
|
69
|
+
if (now - entry.servedAt > TASK_CONTINUITY_TTL_MS) {
|
|
70
|
+
this.bySignature.delete(signature);
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
return entry;
|
|
74
|
+
}
|
|
75
|
+
/** Forget one task (used when the remembered pair turns out to be unusable). */
|
|
76
|
+
forget(signature) {
|
|
77
|
+
this.bySignature.delete(signature);
|
|
78
|
+
}
|
|
79
|
+
/** How many tasks are remembered — telemetry/tests. */
|
|
80
|
+
size() {
|
|
81
|
+
return this.bySignature.size;
|
|
82
|
+
}
|
|
83
|
+
clear() {
|
|
84
|
+
this.bySignature.clear();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=task-model-continuity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-model-continuity.js","sourceRoot":"","sources":["../../src/learning/task-model-continuity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAYH;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAiC,EACjC,UAAqC;IAErC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC;IAC3D,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC;IAC/D,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IACtB,WAAW,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEhE,oEAAoE;IACpE,QAAQ,CACN,SAAiB,EACjB,QAAgB,EAChB,KAAa,EACb,MAAc,IAAI,CAAC,GAAG,EAAE;QAExB,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QACrE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,mFAAmF;IACnF,MAAM,CAAC,SAAiB,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,sBAAsB,EAAE,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gFAAgF;IAChF,MAAM,CAAC,SAAiB;QACtB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,uDAAuD;IACvD,IAAI;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turn feedback — the user's verdict on a turn, recorded as the LABEL a quality
|
|
3
|
+
* signal is fit to.
|
|
4
|
+
*
|
|
5
|
+
* THE GAP THIS CLOSES. Every honesty signal the harness has is DERIVED: a tool
|
|
6
|
+
* ran, a plan step closed, a flag fired. None of them answers "was this any
|
|
7
|
+
* good?", and a quality score fit to derived signals would just be a second copy
|
|
8
|
+
* of the verification verdict. The missing input was a LABEL, and the only source
|
|
9
|
+
* of one is the person who asked.
|
|
10
|
+
*
|
|
11
|
+
* WHY THIS IS THE CHEAPEST SOURCE. The derived correction signal
|
|
12
|
+
* (`detectRegressionSignal`) yields NEGATIVES ONLY — silence is not acceptance, so
|
|
13
|
+
* it can never produce the positive class. An explicit verdict yields both, which
|
|
14
|
+
* is what makes a fitted `P(accepted | features)` possible at all.
|
|
15
|
+
*
|
|
16
|
+
* WHAT IT DOES NOT DO. It fits nothing and routes nothing. Recording the label
|
|
17
|
+
* and using it are separate decisions, and the second one waits until enough rows
|
|
18
|
+
* exist to mean anything (see `docs/DESIGN_CAPABILITY_BY_MEASUREMENT.md` §4.2).
|
|
19
|
+
*
|
|
20
|
+
* PROVENANCE IS PART OF THE LABEL. A verdict carries its `source` ('cli' |
|
|
21
|
+
* 'dashboard') so a future fit can weigh a human judgement against a derived one,
|
|
22
|
+
* and the corpus keeps `verdict: null` for "not judged" — never a fabricated
|
|
23
|
+
* `false`, because reading silence as acceptance would manufacture the positive
|
|
24
|
+
* class rather than measure it.
|
|
25
|
+
*/
|
|
26
|
+
import { type VerdictRoutingOutcome } from './verdict-routing.js';
|
|
27
|
+
/** The two things a user can say about a turn. */
|
|
28
|
+
export type TurnVerdict = 'accepted' | 'rejected';
|
|
29
|
+
/**
|
|
30
|
+
* Where a verdict came from — kept so a fit can separate them.
|
|
31
|
+
*
|
|
32
|
+
* `'cli'` / `'dashboard'` are a PERSON's explicit verdict. `'derived'` is a
|
|
33
|
+
* BEHAVIOURAL one (tier 3): the harness observed the user re-ask, hand-edit the
|
|
34
|
+
* artifact, or leave it untouched and reference it — an inference, not a
|
|
35
|
+
* statement. Keeping them apart is the whole reason the source is stored: a fit
|
|
36
|
+
* can weigh a human judgement above an inference from what the run happened to
|
|
37
|
+
* see.
|
|
38
|
+
*/
|
|
39
|
+
export type VerdictSource = 'cli' | 'dashboard' | 'derived';
|
|
40
|
+
/** One recorded verdict, as reported back to the caller. */
|
|
41
|
+
export interface RatedTurn {
|
|
42
|
+
traceId: string;
|
|
43
|
+
goal: string;
|
|
44
|
+
verdict: TurnVerdict;
|
|
45
|
+
source: VerdictSource;
|
|
46
|
+
at: number;
|
|
47
|
+
/** True when a deliverable-corpus row was labelled by this verdict. */
|
|
48
|
+
corpusLabeled: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Bundle 36 — what the verdict did to the ROUTER, when it reached it. A
|
|
51
|
+
* rejection corrects the bandit arm that served the turn (the deferred
|
|
52
|
+
* `userAccepted: false` delta, applied once); an acceptance adds nothing to
|
|
53
|
+
* routing. Present only when a correction was attempted.
|
|
54
|
+
*/
|
|
55
|
+
router?: VerdictRoutingOutcome;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The verdict words the CLI accepts. Deliberately narrow — `good`/`bad` are the
|
|
59
|
+
* friendly forms, `accepted`/`rejected` the precise ones. No synonyms beyond
|
|
60
|
+
* these: a parser that accepts eight spellings is a parser nobody can predict.
|
|
61
|
+
*/
|
|
62
|
+
export declare function parseVerdict(text: string): TurnVerdict | null;
|
|
63
|
+
/** The most recent trace, or null when nothing has been recorded yet. */
|
|
64
|
+
export declare function latestRateableTraceId(): string | null;
|
|
65
|
+
/**
|
|
66
|
+
* Record the user's verdict on a turn: on the trace (the durable per-turn record)
|
|
67
|
+
* and, when the turn delivered an authored artifact, on that specific corpus row.
|
|
68
|
+
*
|
|
69
|
+
* `traceId` is optional — omitted, it means "the turn I just saw", which is the
|
|
70
|
+
* common case for the CLI. Both writes are best-effort and reported, never thrown:
|
|
71
|
+
* feedback must never break anything.
|
|
72
|
+
*/
|
|
73
|
+
export declare function rateTurn(input: {
|
|
74
|
+
verdict: TurnVerdict;
|
|
75
|
+
traceId?: string;
|
|
76
|
+
source: VerdictSource;
|
|
77
|
+
now?: number;
|
|
78
|
+
}): {
|
|
79
|
+
ok: true;
|
|
80
|
+
rated: RatedTurn;
|
|
81
|
+
} | {
|
|
82
|
+
ok: false;
|
|
83
|
+
error: string;
|
|
84
|
+
};
|
|
85
|
+
/** Recent verdicts, most recent first, for a review surface. */
|
|
86
|
+
export declare function listTurnVerdicts(limit?: number): Array<{
|
|
87
|
+
traceId: string;
|
|
88
|
+
goal: string;
|
|
89
|
+
verdict: TurnVerdict;
|
|
90
|
+
source: VerdictSource;
|
|
91
|
+
at: number;
|
|
92
|
+
}>;
|
|
93
|
+
//# sourceMappingURL=turn-feedback.d.ts.map
|