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
|
@@ -1,225 +1,125 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* hint applies the identical regex so "deploy the API" does not drag in
|
|
36
|
-
* static-site deployment steps.
|
|
37
|
-
* - Side-effect-free matching: the match itself marks nothing; usage is
|
|
38
|
-
* marked ONCE via markLoopSkillUsed by the caller (skillView()'s internal
|
|
39
|
-
* markUsed is deliberately avoided so the hint builder is idempotent).
|
|
40
|
-
* - Bounded injection: at most ONE methodology block per prompt, and the
|
|
41
|
-
* methodology text itself is capped (compiled: 8 steps; hub: 2000 chars)
|
|
42
|
-
* so a crowded catalog cannot balloon the system prompt.
|
|
43
|
-
* - Best-effort by construction: any store/catalog failure returns '' /
|
|
44
|
-
* null and the turn proceeds exactly as before (a hint must never break
|
|
45
|
-
* a turn).
|
|
46
|
-
*
|
|
47
|
-
* Consumers: chat's runChatAnswer (system prompt) and the execute loop's
|
|
48
|
-
* runLoopExecutor — the two runToolLoop callers that had no skill knowledge.
|
|
2
|
+
* Skill hint (`src/tools/loop-skill-hint.ts`) — model-driven skill selection.
|
|
3
|
+
*
|
|
4
|
+
* HISTORY (why the keyword scorer is gone). This module used to decide, in code,
|
|
5
|
+
* WHICH skill a goal wanted: `findLoopSkillMatch` scored the compiled store and
|
|
6
|
+
* the hub catalog, then a hand-written evidence filter (`hasRealGoalEvidence`)
|
|
7
|
+
* pulled back the false positives with stopword lists, generic-name-word lists,
|
|
8
|
+
* generic-tag lists and platform-host lists. Every one of those lists was a bug
|
|
9
|
+
* report: "blood test report" matched the software `test-strategy` skill,
|
|
10
|
+
* "Windows and Linux" matched `wsl-setup`, "packaging" matched `electron-app`.
|
|
11
|
+
* A word list cannot decide what a goal MEANS, and each word added to force one
|
|
12
|
+
* case right made some real match wrong.
|
|
13
|
+
*
|
|
14
|
+
* THE REPLACEMENT. Selection is the MODEL's job now. The harness no longer
|
|
15
|
+
* guesses; it hands the model the discovery path and gets out of the way:
|
|
16
|
+
*
|
|
17
|
+
* - default (`pointer`) — a few lines saying skills exist and HOW to find one:
|
|
18
|
+
* the `skill` tool (list / load) and the capability search (`tool_search`,
|
|
19
|
+
* whose hits include `kind:"skill"` capabilities). Near-zero prompt cost,
|
|
20
|
+
* no false positives, no maintenance.
|
|
21
|
+
* - `catalog` / `names` (OPT-IN) — the full name+description catalog, or the
|
|
22
|
+
* names-only list, for a user who wants everything in-context.
|
|
23
|
+
* - `off` — inject nothing.
|
|
24
|
+
*
|
|
25
|
+
* The old default was the ~24.5K-char catalog, which buried the task on every
|
|
26
|
+
* turn (3.3.11 regression, see tests/release/agent-contracts.test.ts); the
|
|
27
|
+
* pointer keeps the small-prompt property while still being model-driven.
|
|
28
|
+
*
|
|
29
|
+
* The pipeline arm consumes the SAME catalog builder (see the orchestrator's
|
|
30
|
+
* `skillCatalog` injection): the planner is a model too, so it is handed the
|
|
31
|
+
* list instead of a keyword-selected skill.
|
|
32
|
+
*
|
|
33
|
+
* Best-effort by construction: any store/catalog failure returns '' and the turn
|
|
34
|
+
* proceeds byte-identically (a hint must never break a turn).
|
|
49
35
|
*/
|
|
50
36
|
import type { ConfigManager } from '../config/manager.js';
|
|
51
|
-
/**
|
|
52
|
-
|
|
53
|
-
* `null` = no match (no skill scored, or it was gated out).
|
|
54
|
-
*/
|
|
55
|
-
export interface LoopSkillHintMatch {
|
|
37
|
+
/** One catalog entry the model can read and pick from. */
|
|
38
|
+
interface SkillEntry {
|
|
56
39
|
name: string;
|
|
57
|
-
|
|
58
|
-
source: 'compiled' | 'hub';
|
|
40
|
+
description: string;
|
|
59
41
|
}
|
|
60
|
-
/** Is this token a host/platform name (never goal evidence)? */
|
|
61
|
-
export declare function isPlatformName(word: string): boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Did the goal show REAL evidence for this skill — a name-word hit, a tag hit,
|
|
64
|
-
* or two DISTINCT pattern/description words (meta-words and platform names
|
|
65
|
-
* excluded)? Guards the compiled store's intentionally loose threshold:
|
|
66
|
-
* findMatch adds a quality/usage bonus to every skill, so a generic word like
|
|
67
|
-
* "goal" alone must never inject methodology into a chat turn.
|
|
68
|
-
*
|
|
69
|
-
* Also the HUB path's only filter: `findHubSkillMatch` scores name words and
|
|
70
|
-
* DESCRIPTION keywords and returns the top scorer with no evidence gate at all,
|
|
71
|
-
* so an installed skill whose description merely names the target platform
|
|
72
|
-
* scored on that alone. A hub match carries no tags/goalPattern, so its
|
|
73
|
-
* description words are the pattern-level evidence (the caller passes it here).
|
|
74
|
-
*
|
|
75
|
-
* MATCHING IS BY WHOLE WORD, never substring. `q.includes(word)` matched
|
|
76
|
-
* "kill" inside "s**kill**" — measured: `feature-flags` (goalPattern “…kill
|
|
77
|
-
* switch…”) matched "no **skill** covers alpaca husbandry whatsoever", and the
|
|
78
|
-
* same class makes `mac` match "machine" and `arch` match "search". The goal is
|
|
79
|
-
* tokenized once into a word set and skills are matched against tokens.
|
|
80
|
-
*
|
|
81
|
-
* Deterministic, no LLM.
|
|
82
|
-
*/
|
|
83
|
-
export declare function hasRealGoalEvidence(goal: string, skill: {
|
|
84
|
-
name: string;
|
|
85
|
-
tags?: string[];
|
|
86
|
-
goalPattern?: string;
|
|
87
|
-
description?: string;
|
|
88
|
-
}): boolean;
|
|
89
42
|
/**
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* HOSTING intent, so a generic "deploy the API" goal never gets it; and (2) the
|
|
94
|
-
* evidence rule above.
|
|
95
|
-
*
|
|
96
|
-
* Before this existed the gate was implemented three times with different
|
|
97
|
-
* strength: the chat/execute loop applied the evidence filter to COMPILED
|
|
98
|
-
* matches but trusted hub matches raw, and the ORCHESTRATOR applied neither
|
|
99
|
-
* (only the website-deploy rule) — so the pipeline was the most exposed
|
|
100
|
-
* surface. One predicate, consumed by all of them.
|
|
43
|
+
* Every skill the model may pick from — compiled first-party + installed hub
|
|
44
|
+
* (SKILL.md) skills, deduped by name, with the disabled gate applied. Best-effort:
|
|
45
|
+
* a store/catalog failure contributes nothing rather than throwing.
|
|
101
46
|
*/
|
|
102
|
-
export declare function
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
tags?: string[];
|
|
106
|
-
goalPattern?: string;
|
|
107
|
-
description?: string;
|
|
108
|
-
}): boolean;
|
|
47
|
+
export declare function collectSkillEntries(cm?: ConfigManager): Promise<SkillEntry[]>;
|
|
48
|
+
/** Where the "load one" tail should point: the loop's skill tool, or the pipeline's skill_view. */
|
|
49
|
+
export type SkillLoadHint = 'skill-tool' | 'skill-view';
|
|
109
50
|
/**
|
|
110
|
-
*
|
|
111
|
-
* consults, honoring the disabled + website-deploy activation gates (+ the
|
|
112
|
-
* compiled evidence filter). Compiled wins ties (its id is the deterministic
|
|
113
|
-
* seed id). Returns null when nothing matches (never a forced match).
|
|
114
|
-
*/
|
|
115
|
-
export declare function findLoopSkillMatch(goal: string, cm?: ConfigManager): Promise<LoopSkillHintMatch | null>;
|
|
116
|
-
/**
|
|
117
|
-
* Build the system-prompt block for a matched skill, or '' when there is no
|
|
118
|
-
* match. The block follows the orchestrator's injection contract:
|
|
119
|
-
*
|
|
120
|
-
* - the skill is a RECOMMENDATION, the model still owns the plan (the
|
|
121
|
-
* orchestrator's "model-selected activation" phrasing),
|
|
122
|
-
* - the methodology rides in as Level-2 content (progressive disclosure —
|
|
123
|
-
* the model sees the steps without paying a tool call for them),
|
|
124
|
-
* - the exact load syntax is included so the model can refresh/parameterize
|
|
125
|
-
* via the `skill` tool mid-turn,
|
|
126
|
-
* - ONE block max (bounded system-prompt growth).
|
|
51
|
+
* The DEFAULT hint — a bounded discovery pointer, not a recommendation.
|
|
127
52
|
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* @param goal the user's goal text (matched against skill triggers)
|
|
132
|
-
* @param cm ConfigManager for the disabled-skills gate (optional)
|
|
133
|
-
* @param injected out-param: when provided, receives the match that was
|
|
134
|
-
* injected (null when none).
|
|
53
|
+
* It names the two model-driven paths to a skill (the `skill` tool and the
|
|
54
|
+
* capability search) and leaves the decision with the model. Returns '' when
|
|
55
|
+
* there are no skills to discover (nothing to say — never a forced hint).
|
|
135
56
|
*/
|
|
136
|
-
export declare function
|
|
137
|
-
value: LoopSkillHintMatch | null;
|
|
138
|
-
}): Promise<string>;
|
|
57
|
+
export declare function buildSkillPointerHint(cm?: ConfigManager, loadHint?: SkillLoadHint): Promise<string>;
|
|
139
58
|
/**
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
* WHY THIS REPLACES THE MATCHER: a word list cannot decide whether "blood test
|
|
144
|
-
* report" is software testing, and every stopword added to force it right made
|
|
145
|
-
* some real match wrong. The model can read the same catalog and judge instantly,
|
|
146
|
-
* so the fix is to STOP deciding in code and hand the model the list: name + a
|
|
147
|
-
* one-line description each, plus the exact `skill` tool syntax to load one. This
|
|
148
|
-
* scales to infinite permutations with no maintenance and no false positives —
|
|
149
|
-
* the model loads a skill only when it actually applies.
|
|
59
|
+
* The bounded CATALOG of available skills for the system prompt — the model-facing
|
|
60
|
+
* discovery surface, read straight through.
|
|
150
61
|
*
|
|
151
62
|
* Bounded deliberately: descriptions are capped and the list is capped, so a
|
|
152
|
-
* crowded catalog cannot balloon the
|
|
153
|
-
* skills (nothing to say) — never a forced recommendation.
|
|
63
|
+
* crowded catalog cannot balloon the prompt. Returns '' when there are no skills.
|
|
154
64
|
*
|
|
155
65
|
* @param cm ConfigManager (honors skills.disabled — a disabled skill is
|
|
156
66
|
* never listed, the same gate the tool enforces)
|
|
157
67
|
* @param opts caps: maxSkills (default 200 — the full bundled+hub catalog,
|
|
158
68
|
* so NO skill is dropped from the model's view; missing a skill
|
|
159
69
|
* is the failure this design exists to avoid), descriptionChars
|
|
160
|
-
* (default 140)
|
|
70
|
+
* (default 140), namesOnly (default false), loadHint
|
|
161
71
|
*/
|
|
162
72
|
export declare function buildSkillCatalogHint(cm?: ConfigManager, opts?: {
|
|
163
73
|
maxSkills?: number;
|
|
164
74
|
descriptionChars?: number;
|
|
165
75
|
namesOnly?: boolean;
|
|
76
|
+
loadHint?: SkillLoadHint;
|
|
166
77
|
}): Promise<string>;
|
|
167
78
|
/**
|
|
168
79
|
* Which skill hint the system prompt carries. See {@link resolveSkillHintMode}.
|
|
169
|
-
* - `
|
|
170
|
-
*
|
|
80
|
+
* - `pointer` — the small discovery pointer (names the skill tool + capability
|
|
81
|
+
* search). The DEFAULT.
|
|
171
82
|
* - `catalog` — the FULL name+description catalog (opt-in).
|
|
172
83
|
* - `names` — the catalog WITHOUT descriptions (names only; far smaller).
|
|
173
84
|
* - `off` — never inject a skill hint.
|
|
174
85
|
*/
|
|
175
|
-
export type SkillHintMode = '
|
|
86
|
+
export type SkillHintMode = 'pointer' | 'catalog' | 'names' | 'off';
|
|
176
87
|
/** The default. The catalog is ~24K chars — it must never be the default. */
|
|
177
88
|
export declare const DEFAULT_SKILL_HINT_MODE: SkillHintMode;
|
|
178
89
|
/**
|
|
179
90
|
* Parse a raw value into a mode. Synonyms accepted so a typo cannot silently
|
|
180
91
|
* change behaviour; null (unrecognized) falls through to the next source.
|
|
181
|
-
* - match / keyword / auto / small / default
|
|
182
|
-
* - catalog / full / all / on / true / 1
|
|
183
|
-
* - names / names-only / list / bare / titles
|
|
184
|
-
* - off / none / never / false / 0
|
|
92
|
+
* - pointer / match / keyword / auto / small / default → 'pointer'
|
|
93
|
+
* - catalog / full / all / on / true / 1 → 'catalog'
|
|
94
|
+
* - names / names-only / list / bare / titles → 'names'
|
|
95
|
+
* - off / none / never / false / 0 → 'off'
|
|
96
|
+
*
|
|
97
|
+
* `match`/`keyword` are kept as ACCEPTED SYNONYMS for back-compat (an existing
|
|
98
|
+
* `NUVIRA_SKILL_CATALOG=match` or `skills.catalogHint: "match"` still works) —
|
|
99
|
+
* they now mean the pointer, since there is no keyword matcher any more.
|
|
185
100
|
*/
|
|
186
101
|
export declare function parseSkillHintMode(raw: string | undefined | null): SkillHintMode | null;
|
|
187
102
|
/**
|
|
188
103
|
* The effective skill-hint mode. Env first (`NUVIRA_SKILL_CATALOG`, then the
|
|
189
104
|
* legacy `BUFF_*`), then `skills.catalogHint` in the config file, then the
|
|
190
|
-
* default (`
|
|
191
|
-
*
|
|
192
|
-
* WHY THIS EXISTS (2026-10-04). 3.3.11 replaced the keyword hint with the full
|
|
193
|
-
* catalog unconditionally — measured live, `buildSkillCatalogHint()` returned
|
|
194
|
-
* 24,543 chars on the goal "create mac od gui app", taking the chat system
|
|
195
|
-
* prompt from 7,653 chars (3.3.10) to 32,809. That ~6.1K-token tax on EVERY
|
|
196
|
-
* turn buried the task for weak/free-tier models and made 16K-token tiers
|
|
197
|
-
* impossible (the prompt alone is ~8.2K). The catalog is a genuinely useful
|
|
198
|
-
* discovery mechanism, but it must be CHOSEN, not imposed.
|
|
105
|
+
* default (`pointer`). Pure and never throws.
|
|
199
106
|
*/
|
|
200
107
|
export declare function resolveSkillHintMode(cm?: ConfigManager): SkillHintMode;
|
|
201
108
|
/**
|
|
202
|
-
* The skill hint
|
|
203
|
-
*
|
|
204
|
-
* the policy:
|
|
109
|
+
* The skill hint, resolved through the configured mode — the ONE entry point
|
|
110
|
+
* both the chat/execute loop and the pipeline call, so a surface can never drift
|
|
111
|
+
* from the policy:
|
|
205
112
|
* - `off` → ''
|
|
206
113
|
* - `catalog` → the full name+description catalog ({@link buildSkillCatalogHint})
|
|
207
114
|
* - `names` → the names-only catalog (no descriptions)
|
|
208
|
-
* - `
|
|
115
|
+
* - `pointer` → the discovery pointer ({@link buildSkillPointerHint})
|
|
209
116
|
*
|
|
210
|
-
* `
|
|
211
|
-
*
|
|
212
|
-
*
|
|
117
|
+
* `loadHint` lets the pipeline point its tail at skill_view (the writer's load
|
|
118
|
+
* path) instead of the loop's skill tool; it is ignored in the catalog modes'
|
|
119
|
+
* default wording and only affects the tail line.
|
|
213
120
|
*/
|
|
214
|
-
export declare function buildConfiguredSkillHint(
|
|
215
|
-
|
|
121
|
+
export declare function buildConfiguredSkillHint(cm?: ConfigManager, opts?: {
|
|
122
|
+
loadHint?: SkillLoadHint;
|
|
216
123
|
}): Promise<string>;
|
|
217
|
-
|
|
218
|
-
* Mark an injected skill as used (usage tracking parity with the orchestrator
|
|
219
|
-
* — compiled skills only; hub skills have no compiled usage counter). The
|
|
220
|
-
* SINGLE usage marker for the loop hint path (the hint builder never marks).
|
|
221
|
-
* Best-effort, fire-and-forget: never throws, never awaited by callers on the
|
|
222
|
-
* hot path.
|
|
223
|
-
*/
|
|
224
|
-
export declare function markLoopSkillUsed(match: LoopSkillHintMatch | null): Promise<void>;
|
|
124
|
+
export {};
|
|
225
125
|
//# sourceMappingURL=loop-skill-hint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-skill-hint.d.ts","sourceRoot":"","sources":["../../src/tools/loop-skill-hint.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"loop-skill-hint.d.ts","sourceRoot":"","sources":["../../src/tools/loop-skill-hint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAqB1D,0DAA0D;AAC1D,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAsBnF;AAED,mGAAmG;AACnG,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,YAAY,CAAC;AAQxD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,GAAE,aAA4B,GAAG,OAAO,CAAC,MAAM,CAAC,CAYvH;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,CAAC,EAAE,aAAa,EAClB,IAAI,GAAE;IACJ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,aAAa,CAAC;CACrB,GACL,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;AAEpE,6EAA6E;AAC7E,eAAO,MAAM,uBAAuB,EAAE,aAAyB,CAAC;AAKhE;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,aAAa,GAAG,IAAI,CAQvF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa,CAatE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,EAAE,CAAC,EAAE,aAAa,EAClB,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,aAAa,CAAA;CAAO,GACtC,OAAO,CAAC,MAAM,CAAC,CAOjB"}
|