agentic-qe 3.8.7 → 3.8.9
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/.claude/agents/n8n/n8n-base-agent.md +4 -35
- package/.claude/agents/n8n/n8n-bdd-scenario-tester.md +4 -25
- package/.claude/agents/n8n/n8n-chaos-tester.md +4 -26
- package/.claude/agents/n8n/n8n-ci-orchestrator.md +4 -27
- package/.claude/agents/n8n/n8n-compliance-validator.md +4 -25
- package/.claude/agents/n8n/n8n-expression-validator.md +4 -25
- package/.claude/agents/n8n/n8n-integration-test.md +4 -27
- package/.claude/agents/n8n/n8n-monitoring-validator.md +4 -26
- package/.claude/agents/n8n/n8n-node-validator.md +4 -25
- package/.claude/agents/n8n/n8n-performance-tester.md +4 -29
- package/.claude/agents/n8n/n8n-security-auditor.md +4 -26
- package/.claude/agents/n8n/n8n-trigger-test.md +4 -27
- package/.claude/agents/n8n/n8n-unit-tester.md +4 -25
- package/.claude/agents/n8n/n8n-version-comparator.md +4 -26
- package/.claude/agents/n8n/n8n-workflow-executor.md +4 -26
- package/.claude/agents/v3/qe-accessibility-auditor.md +21 -55
- package/.claude/agents/v3/qe-bdd-generator.md +23 -58
- package/.claude/agents/v3/qe-chaos-engineer.md +21 -54
- package/.claude/agents/v3/qe-code-complexity.md +21 -54
- package/.claude/agents/v3/qe-code-intelligence.md +21 -54
- package/.claude/agents/v3/qe-contract-validator.md +21 -53
- package/.claude/agents/v3/qe-coverage-specialist.md +23 -79
- package/.claude/agents/v3/qe-defect-predictor.md +23 -76
- package/.claude/agents/v3/qe-dependency-mapper.md +21 -53
- package/.claude/agents/v3/qe-deployment-advisor.md +21 -54
- package/.claude/agents/v3/qe-devils-advocate.md +212 -238
- package/.claude/agents/v3/qe-flaky-hunter.md +21 -53
- package/.claude/agents/v3/qe-fleet-commander.md +21 -54
- package/.claude/agents/v3/qe-gap-detector.md +23 -79
- package/.claude/agents/v3/qe-graphql-tester.md +21 -54
- package/.claude/agents/v3/qe-impact-analyzer.md +21 -53
- package/.claude/agents/v3/qe-integration-architect.md +2 -2
- package/.claude/agents/v3/qe-integration-tester.md +15 -36
- package/.claude/agents/v3/qe-kg-builder.md +21 -53
- package/.claude/agents/v3/qe-learning-coordinator.md +21 -51
- package/.claude/agents/v3/qe-load-tester.md +21 -55
- package/.claude/agents/v3/qe-message-broker-tester.md +345 -385
- package/.claude/agents/v3/qe-metrics-optimizer.md +21 -54
- package/.claude/agents/v3/qe-middleware-validator.md +389 -428
- package/.claude/agents/v3/qe-mutation-tester.md +21 -54
- package/.claude/agents/v3/qe-odata-contract-tester.md +443 -489
- package/.claude/agents/v3/qe-parallel-executor.md +21 -52
- package/.claude/agents/v3/qe-pattern-learner.md +23 -70
- package/.claude/agents/v3/qe-pentest-validator.md +322 -359
- package/.claude/agents/v3/qe-performance-tester.md +21 -54
- package/.claude/agents/v3/qe-product-factors-assessor.md +339 -376
- package/.claude/agents/v3/qe-property-tester.md +21 -53
- package/.claude/agents/v3/qe-quality-criteria-recommender.md +379 -410
- package/.claude/agents/v3/qe-quality-gate.md +17 -64
- package/.claude/agents/v3/qe-queen-coordinator.md +71 -121
- package/.claude/agents/v3/qe-qx-partner.md +23 -64
- package/.claude/agents/v3/qe-regression-analyzer.md +21 -54
- package/.claude/agents/v3/qe-requirements-validator.md +23 -66
- package/.claude/agents/v3/qe-responsive-tester.md +21 -54
- package/.claude/agents/v3/qe-retry-handler.md +21 -53
- package/.claude/agents/v3/qe-risk-assessor.md +23 -58
- package/.claude/agents/v3/qe-root-cause-analyzer.md +21 -53
- package/.claude/agents/v3/qe-sap-idoc-tester.md +371 -412
- package/.claude/agents/v3/qe-sap-rfc-tester.md +323 -362
- package/.claude/agents/v3/qe-security-auditor.md +21 -54
- package/.claude/agents/v3/qe-security-scanner.md +21 -58
- package/.claude/agents/v3/qe-soap-tester.md +307 -345
- package/.claude/agents/v3/qe-sod-analyzer.md +486 -533
- package/.claude/agents/v3/qe-tdd-specialist.md +17 -42
- package/.claude/agents/v3/qe-test-architect.md +23 -58
- package/.claude/agents/v3/qe-test-idea-rewriter.md +351 -375
- package/.claude/agents/v3/qe-transfer-specialist.md +21 -55
- package/.claude/agents/v3/qe-visual-tester.md +15 -37
- package/.claude/agents/v3/subagents/qe-code-reviewer.md +21 -54
- package/.claude/agents/v3/subagents/qe-integration-reviewer.md +21 -54
- package/.claude/agents/v3/subagents/qe-performance-reviewer.md +21 -54
- package/.claude/agents/v3/subagents/qe-security-reviewer.md +21 -54
- package/.claude/agents/v3/subagents/qe-tdd-green.md +21 -53
- package/.claude/agents/v3/subagents/qe-tdd-red.md +21 -53
- package/.claude/agents/v3/subagents/qe-tdd-refactor.md +21 -53
- package/.claude/skills/.validation/schemas/skill-eval.schema.json +5 -5
- package/.claude/skills/.validation/skill-validation-mcp-integration.md +32 -81
- package/.claude/skills/agentic-quality-engineering/SKILL.md +31 -60
- package/.claude/skills/iterative-loop/SKILL.md +2 -2
- package/.claude/skills/pair-programming/SKILL.md +2 -2
- package/.claude/skills/performance-testing/SKILL.md +1 -1
- package/.claude/skills/qcsd-cicd-swarm/steps/01-flag-detection.md +2 -2
- package/.claude/skills/qcsd-cicd-swarm/steps/07-learning-persistence.md +6 -6
- package/.claude/skills/qcsd-development-swarm/steps/01-flag-detection.md +2 -2
- package/.claude/skills/qcsd-development-swarm/steps/07-learning-persistence.md +6 -6
- package/.claude/skills/qcsd-ideation-swarm/steps/07-learning-persistence.md +6 -6
- package/.claude/skills/qcsd-production-swarm/steps/01-flag-detection.md +202 -206
- package/.claude/skills/qcsd-production-swarm/steps/07-learning-persistence.md +157 -185
- package/.claude/skills/qcsd-refinement-swarm/steps/01-flag-detection.md +87 -91
- package/.claude/skills/qcsd-refinement-swarm/steps/07-learning-persistence.md +49 -53
- package/.claude/skills/qe-chaos-resilience/SKILL.md +2 -2
- package/.claude/skills/qe-code-intelligence/SKILL.md +2 -2
- package/.claude/skills/qe-coverage-analysis/SKILL.md +2 -2
- package/.claude/skills/qe-defect-intelligence/SKILL.md +2 -2
- package/.claude/skills/qe-iterative-loop/SKILL.md +12 -12
- package/.claude/skills/qe-learning-optimization/SKILL.md +2 -2
- package/.claude/skills/qe-quality-assessment/SKILL.md +2 -2
- package/.claude/skills/qe-requirements-validation/SKILL.md +2 -2
- package/.claude/skills/qe-test-execution/SKILL.md +2 -2
- package/.claude/skills/qe-test-generation/SKILL.md +2 -2
- package/.claude/skills/qe-visual-accessibility/SKILL.md +2 -2
- package/.claude/skills/quality-metrics/SKILL.md +1 -1
- package/.claude/skills/security-testing/SKILL.md +1 -1
- package/.claude/skills/skills-manifest.json +1 -1
- package/.claude/skills/validation-pipeline/SKILL.md +2 -2
- package/.claude/skills/verification-quality/SKILL.md +2 -2
- package/CHANGELOG.md +31 -0
- package/assets/agents/v3/qe-accessibility-auditor.md +21 -55
- package/assets/agents/v3/qe-bdd-generator.md +23 -58
- package/assets/agents/v3/qe-chaos-engineer.md +21 -54
- package/assets/agents/v3/qe-code-complexity.md +21 -54
- package/assets/agents/v3/qe-code-intelligence.md +21 -54
- package/assets/agents/v3/qe-contract-validator.md +21 -53
- package/assets/agents/v3/qe-coverage-specialist.md +23 -79
- package/assets/agents/v3/qe-defect-predictor.md +23 -76
- package/assets/agents/v3/qe-dependency-mapper.md +21 -53
- package/assets/agents/v3/qe-deployment-advisor.md +21 -54
- package/assets/agents/v3/qe-devils-advocate.md +212 -238
- package/assets/agents/v3/qe-flaky-hunter.md +21 -53
- package/assets/agents/v3/qe-fleet-commander.md +21 -54
- package/assets/agents/v3/qe-gap-detector.md +23 -79
- package/assets/agents/v3/qe-graphql-tester.md +21 -54
- package/assets/agents/v3/qe-impact-analyzer.md +21 -53
- package/assets/agents/v3/qe-integration-architect.md +2 -2
- package/assets/agents/v3/qe-integration-tester.md +15 -36
- package/assets/agents/v3/qe-kg-builder.md +21 -53
- package/assets/agents/v3/qe-learning-coordinator.md +21 -51
- package/assets/agents/v3/qe-load-tester.md +21 -55
- package/assets/agents/v3/qe-message-broker-tester.md +345 -385
- package/assets/agents/v3/qe-metrics-optimizer.md +21 -54
- package/assets/agents/v3/qe-middleware-validator.md +389 -428
- package/assets/agents/v3/qe-mutation-tester.md +21 -54
- package/assets/agents/v3/qe-odata-contract-tester.md +443 -489
- package/assets/agents/v3/qe-parallel-executor.md +21 -52
- package/assets/agents/v3/qe-pattern-learner.md +23 -70
- package/assets/agents/v3/qe-pentest-validator.md +322 -359
- package/assets/agents/v3/qe-performance-tester.md +21 -54
- package/assets/agents/v3/qe-product-factors-assessor.md +339 -376
- package/assets/agents/v3/qe-property-tester.md +21 -53
- package/assets/agents/v3/qe-quality-criteria-recommender.md +379 -410
- package/assets/agents/v3/qe-quality-gate.md +17 -64
- package/assets/agents/v3/qe-queen-coordinator.md +71 -121
- package/assets/agents/v3/qe-qx-partner.md +23 -64
- package/assets/agents/v3/qe-regression-analyzer.md +21 -54
- package/assets/agents/v3/qe-requirements-validator.md +23 -66
- package/assets/agents/v3/qe-responsive-tester.md +21 -54
- package/assets/agents/v3/qe-retry-handler.md +21 -53
- package/assets/agents/v3/qe-risk-assessor.md +23 -58
- package/assets/agents/v3/qe-root-cause-analyzer.md +21 -53
- package/assets/agents/v3/qe-sap-idoc-tester.md +371 -412
- package/assets/agents/v3/qe-sap-rfc-tester.md +323 -362
- package/assets/agents/v3/qe-security-auditor.md +21 -54
- package/assets/agents/v3/qe-security-scanner.md +21 -58
- package/assets/agents/v3/qe-soap-tester.md +307 -345
- package/assets/agents/v3/qe-sod-analyzer.md +486 -533
- package/assets/agents/v3/qe-tdd-specialist.md +17 -42
- package/assets/agents/v3/qe-test-architect.md +23 -58
- package/assets/agents/v3/qe-test-idea-rewriter.md +351 -375
- package/assets/agents/v3/qe-transfer-specialist.md +21 -55
- package/assets/agents/v3/qe-visual-tester.md +15 -37
- package/assets/agents/v3/subagents/qe-code-reviewer.md +21 -54
- package/assets/agents/v3/subagents/qe-integration-reviewer.md +21 -54
- package/assets/agents/v3/subagents/qe-performance-reviewer.md +21 -54
- package/assets/agents/v3/subagents/qe-security-reviewer.md +21 -54
- package/assets/agents/v3/subagents/qe-tdd-green.md +21 -53
- package/assets/agents/v3/subagents/qe-tdd-red.md +21 -53
- package/assets/agents/v3/subagents/qe-tdd-refactor.md +21 -53
- package/assets/grammars/tree-sitter-c_sharp.wasm +0 -0
- package/assets/grammars/tree-sitter-java.wasm +0 -0
- package/assets/grammars/tree-sitter-python.wasm +0 -0
- package/assets/grammars/tree-sitter-rust.wasm +0 -0
- package/assets/grammars/tree-sitter-swift.wasm +0 -0
- package/assets/skills/.validation/schemas/skill-eval.schema.json +5 -5
- package/assets/skills/.validation/skill-validation-mcp-integration.md +32 -81
- package/assets/skills/agentic-quality-engineering/SKILL.md +31 -60
- package/assets/skills/pair-programming/SKILL.md +2 -2
- package/assets/skills/performance-testing/SKILL.md +1 -1
- package/assets/skills/qcsd-cicd-swarm/steps/01-flag-detection.md +2 -2
- package/assets/skills/qcsd-cicd-swarm/steps/07-learning-persistence.md +6 -6
- package/assets/skills/qcsd-development-swarm/steps/01-flag-detection.md +2 -2
- package/assets/skills/qcsd-development-swarm/steps/07-learning-persistence.md +6 -6
- package/assets/skills/qcsd-ideation-swarm/steps/07-learning-persistence.md +6 -6
- package/assets/skills/qcsd-production-swarm/steps/01-flag-detection.md +202 -206
- package/assets/skills/qcsd-production-swarm/steps/07-learning-persistence.md +157 -185
- package/assets/skills/qcsd-refinement-swarm/steps/01-flag-detection.md +87 -91
- package/assets/skills/qcsd-refinement-swarm/steps/07-learning-persistence.md +49 -53
- package/assets/skills/qe-chaos-resilience/SKILL.md +2 -2
- package/assets/skills/qe-code-intelligence/SKILL.md +2 -2
- package/assets/skills/qe-coverage-analysis/SKILL.md +2 -2
- package/assets/skills/qe-defect-intelligence/SKILL.md +2 -2
- package/assets/skills/qe-iterative-loop/SKILL.md +12 -12
- package/assets/skills/qe-learning-optimization/SKILL.md +2 -2
- package/assets/skills/qe-quality-assessment/SKILL.md +2 -2
- package/assets/skills/qe-requirements-validation/SKILL.md +2 -2
- package/assets/skills/qe-test-execution/SKILL.md +2 -2
- package/assets/skills/qe-test-generation/SKILL.md +2 -2
- package/assets/skills/qe-visual-accessibility/SKILL.md +2 -2
- package/assets/skills/quality-metrics/SKILL.md +1 -1
- package/assets/skills/security-testing/SKILL.md +1 -1
- package/assets/skills/validation-pipeline/SKILL.md +2 -2
- package/assets/skills/verification-quality/SKILL.md +2 -2
- package/dist/cli/bundle.js +5169 -4631
- package/dist/cli/commands/init.js +2 -0
- package/dist/cli/commands/memory.d.ts +11 -0
- package/dist/cli/commands/memory.js +333 -0
- package/dist/cli/commands/ruvector-commands.js +41 -1
- package/dist/cli/handlers/init-handler.d.ts +1 -0
- package/dist/cli/handlers/init-handler.js +18 -6
- package/dist/cli/index.js +2 -0
- package/dist/domains/code-intelligence/services/knowledge-graph.js +3 -0
- package/dist/domains/coverage-analysis/services/coverage-parser.d.ts +72 -4
- package/dist/domains/coverage-analysis/services/coverage-parser.js +559 -6
- package/dist/governance/proof-envelope-integration.js +10 -4
- package/dist/init/phases/08-mcp.js +10 -0
- package/dist/init/phases/phase-interface.d.ts +2 -0
- package/dist/integrations/coherence/engines/witness-adapter.d.ts +5 -5
- package/dist/integrations/coherence/engines/witness-adapter.js +10 -22
- package/dist/integrations/ruvector/coherence-gate.d.ts +14 -5
- package/dist/integrations/ruvector/coherence-gate.js +34 -6
- package/dist/learning/agent-routing.d.ts +7 -2
- package/dist/learning/agent-routing.js +17 -1
- package/dist/mcp/bundle.js +1087 -1086
- package/dist/mcp/tools/coverage-analysis/index.d.ts +12 -0
- package/dist/mcp/tools/coverage-analysis/index.js +27 -4
- package/dist/shared/parsers/multi-language-parser.d.ts +4 -1
- package/dist/shared/parsers/multi-language-parser.js +73 -1
- package/dist/shared/parsers/tree-sitter-wasm-parser.d.ts +32 -0
- package/dist/shared/parsers/tree-sitter-wasm-parser.js +1034 -0
- package/package.json +2 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agentic QE v3 - Witness Engine Adapter
|
|
3
3
|
*
|
|
4
|
-
* Wraps the Prime Radiant WitnessEngine for
|
|
4
|
+
* Wraps the Prime Radiant WitnessEngine for SHA-256 witness chain operations.
|
|
5
5
|
* Used for creating tamper-evident audit trails of agent decisions.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
* - Each decision is hashed with
|
|
7
|
+
* Witness Chains:
|
|
8
|
+
* - Each decision is hashed with SHA-256
|
|
9
9
|
* - Hash includes reference to previous witness
|
|
10
10
|
* - Creates immutable audit trail
|
|
11
11
|
* - Enables deterministic replay
|
|
@@ -94,8 +94,8 @@ export declare class WitnessAdapter implements IWitnessAdapter {
|
|
|
94
94
|
*/
|
|
95
95
|
private createFallbackEngine;
|
|
96
96
|
/**
|
|
97
|
-
* Compute a hash for witness creation
|
|
98
|
-
*
|
|
97
|
+
* Compute a SHA-256 hash for witness creation.
|
|
98
|
+
* Chains the previous hash into the computation for tamper-evidence.
|
|
99
99
|
*/
|
|
100
100
|
private computeHash;
|
|
101
101
|
/**
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agentic QE v3 - Witness Engine Adapter
|
|
3
3
|
*
|
|
4
|
-
* Wraps the Prime Radiant WitnessEngine for
|
|
4
|
+
* Wraps the Prime Radiant WitnessEngine for SHA-256 witness chain operations.
|
|
5
5
|
* Used for creating tamper-evident audit trails of agent decisions.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
* - Each decision is hashed with
|
|
7
|
+
* Witness Chains:
|
|
8
|
+
* - Each decision is hashed with SHA-256
|
|
9
9
|
* - Hash includes reference to previous witness
|
|
10
10
|
* - Creates immutable audit trail
|
|
11
11
|
* - Enables deterministic replay
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* @module integrations/coherence/engines/witness-adapter
|
|
14
14
|
*/
|
|
15
15
|
import { WasmNotLoadedError, DEFAULT_COHERENCE_LOGGER } from '../types';
|
|
16
|
-
import {
|
|
16
|
+
import { createHash } from 'crypto';
|
|
17
17
|
// ============================================================================
|
|
18
18
|
// Witness Adapter Implementation
|
|
19
19
|
// ============================================================================
|
|
@@ -131,28 +131,16 @@ export class WitnessAdapter {
|
|
|
131
131
|
};
|
|
132
132
|
}
|
|
133
133
|
/**
|
|
134
|
-
* Compute a hash for witness creation
|
|
135
|
-
*
|
|
134
|
+
* Compute a SHA-256 hash for witness creation.
|
|
135
|
+
* Chains the previous hash into the computation for tamper-evidence.
|
|
136
136
|
*/
|
|
137
137
|
computeHash(data, previousHash) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
let hash = 0;
|
|
141
|
-
for (let i = 0; i < data.length; i++) {
|
|
142
|
-
hash = ((hash << 5) - hash + data[i]) | 0;
|
|
143
|
-
}
|
|
138
|
+
const hasher = createHash('sha256');
|
|
139
|
+
hasher.update(data);
|
|
144
140
|
if (previousHash) {
|
|
145
|
-
|
|
146
|
-
hash = ((hash << 5) - hash + previousHash.charCodeAt(i)) | 0;
|
|
147
|
-
}
|
|
141
|
+
hasher.update(previousHash, 'utf-8');
|
|
148
142
|
}
|
|
149
|
-
|
|
150
|
-
const unsignedHash = hash >>> 0;
|
|
151
|
-
return unsignedHash.toString(16).padStart(8, '0') +
|
|
152
|
-
'-' +
|
|
153
|
-
Date.now().toString(16) +
|
|
154
|
-
'-' +
|
|
155
|
-
secureRandom().toString(16).slice(2, 10);
|
|
143
|
+
return hasher.digest('hex');
|
|
156
144
|
}
|
|
157
145
|
/**
|
|
158
146
|
* Check if the adapter is initialized
|
|
@@ -10,12 +10,13 @@
|
|
|
10
10
|
* - Retrieval (~10ms): Full word-frequency coherence computation
|
|
11
11
|
*
|
|
12
12
|
* Implements ITransferCoherenceGate for cross-domain transfer validation.
|
|
13
|
-
* Uses
|
|
13
|
+
* Uses SHA-256 hash-chained witness records for audit trail.
|
|
14
14
|
*
|
|
15
15
|
* @module integrations/ruvector/coherence-gate
|
|
16
16
|
* @see ADR-083-coherence-gated-agent-actions.md
|
|
17
17
|
*/
|
|
18
18
|
import type { ITransferCoherenceGate, CoherenceValidation } from './transfer-coherence-stub.js';
|
|
19
|
+
import type { WitnessChain as GovernanceWitnessChain } from '../../governance/witness-chain.js';
|
|
19
20
|
/**
|
|
20
21
|
* Reset the CohomologyEngine loader state (for testing).
|
|
21
22
|
*/
|
|
@@ -148,7 +149,16 @@ export declare class CoherenceGate implements ITransferCoherenceGate {
|
|
|
148
149
|
private witnessChain;
|
|
149
150
|
private lastWitnessHash;
|
|
150
151
|
private nativeAvailable;
|
|
152
|
+
/** Optional governance witness chain for SQLite persistence */
|
|
153
|
+
private governanceChain;
|
|
151
154
|
constructor(threshold?: number);
|
|
155
|
+
/**
|
|
156
|
+
* Attach a governance WitnessChain (or PersistentWitnessChain) for
|
|
157
|
+
* durable persistence of coherence decisions. When attached, every
|
|
158
|
+
* validation is appended to the governance chain in addition to the
|
|
159
|
+
* in-memory witness array.
|
|
160
|
+
*/
|
|
161
|
+
setGovernanceChain(chain: GovernanceWitnessChain): void;
|
|
152
162
|
/**
|
|
153
163
|
* Compute coherence energy for a test artifact.
|
|
154
164
|
*
|
|
@@ -271,12 +281,11 @@ export declare class CoherenceGate implements ITransferCoherenceGate {
|
|
|
271
281
|
*/
|
|
272
282
|
private buildFailureReason;
|
|
273
283
|
/**
|
|
274
|
-
* Create a
|
|
275
|
-
* Falls back to SHA-256 when Blake3 is unavailable.
|
|
284
|
+
* Create a SHA-256 hash-chained witness record.
|
|
276
285
|
*/
|
|
277
286
|
private createWitnessRecord;
|
|
278
287
|
/**
|
|
279
|
-
* Hash content using SHA-256
|
|
288
|
+
* Hash content using SHA-256.
|
|
280
289
|
*/
|
|
281
290
|
private hashContent;
|
|
282
291
|
/**
|
|
@@ -298,7 +307,7 @@ export declare class CoherenceGate implements ITransferCoherenceGate {
|
|
|
298
307
|
* @param threshold - Coherence energy threshold (default: 0.4)
|
|
299
308
|
* @returns A new CoherenceGate instance
|
|
300
309
|
*/
|
|
301
|
-
export declare function createCoherenceGate(threshold?: number): CoherenceGate;
|
|
310
|
+
export declare function createCoherenceGate(threshold?: number, governanceChain?: GovernanceWitnessChain): CoherenceGate;
|
|
302
311
|
/**
|
|
303
312
|
* Create a transfer coherence gate.
|
|
304
313
|
*
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* - Retrieval (~10ms): Full word-frequency coherence computation
|
|
11
11
|
*
|
|
12
12
|
* Implements ITransferCoherenceGate for cross-domain transfer validation.
|
|
13
|
-
* Uses
|
|
13
|
+
* Uses SHA-256 hash-chained witness records for audit trail.
|
|
14
14
|
*
|
|
15
15
|
* @module integrations/ruvector/coherence-gate
|
|
16
16
|
* @see ADR-083-coherence-gated-agent-actions.md
|
|
@@ -97,9 +97,20 @@ export class CoherenceGate {
|
|
|
97
97
|
witnessChain = [];
|
|
98
98
|
lastWitnessHash = '0'.repeat(64);
|
|
99
99
|
nativeAvailable = null;
|
|
100
|
+
/** Optional governance witness chain for SQLite persistence */
|
|
101
|
+
governanceChain = null;
|
|
100
102
|
constructor(threshold = DEFAULT_COHERENCE_THRESHOLD) {
|
|
101
103
|
this.threshold = threshold;
|
|
102
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Attach a governance WitnessChain (or PersistentWitnessChain) for
|
|
107
|
+
* durable persistence of coherence decisions. When attached, every
|
|
108
|
+
* validation is appended to the governance chain in addition to the
|
|
109
|
+
* in-memory witness array.
|
|
110
|
+
*/
|
|
111
|
+
setGovernanceChain(chain) {
|
|
112
|
+
this.governanceChain = chain;
|
|
113
|
+
}
|
|
103
114
|
// ==========================================================================
|
|
104
115
|
// Core API
|
|
105
116
|
// ==========================================================================
|
|
@@ -531,8 +542,7 @@ export class CoherenceGate {
|
|
|
531
542
|
return parts.join(' ');
|
|
532
543
|
}
|
|
533
544
|
/**
|
|
534
|
-
* Create a
|
|
535
|
-
* Falls back to SHA-256 when Blake3 is unavailable.
|
|
545
|
+
* Create a SHA-256 hash-chained witness record.
|
|
536
546
|
*/
|
|
537
547
|
createWitnessRecord(artifact, energy, threshold, passed) {
|
|
538
548
|
const id = randomUUID();
|
|
@@ -556,11 +566,25 @@ export class CoherenceGate {
|
|
|
556
566
|
if (flags.useWitnessChain) {
|
|
557
567
|
this.witnessChain.push(record);
|
|
558
568
|
this.lastWitnessHash = record.recordHash;
|
|
569
|
+
// Persist to governance chain if attached
|
|
570
|
+
if (this.governanceChain) {
|
|
571
|
+
try {
|
|
572
|
+
const governanceDecision = {
|
|
573
|
+
type: 'coherence-gate',
|
|
574
|
+
decision: passed ? 'PASS' : 'FAIL',
|
|
575
|
+
context: { energy, threshold, artifactHash: record.artifactHash },
|
|
576
|
+
};
|
|
577
|
+
this.governanceChain.appendWitness(governanceDecision);
|
|
578
|
+
}
|
|
579
|
+
catch (err) {
|
|
580
|
+
logger.debug('Failed to persist to governance chain', { error: String(err) });
|
|
581
|
+
}
|
|
582
|
+
}
|
|
559
583
|
}
|
|
560
584
|
return record;
|
|
561
585
|
}
|
|
562
586
|
/**
|
|
563
|
-
* Hash content using SHA-256
|
|
587
|
+
* Hash content using SHA-256.
|
|
564
588
|
*/
|
|
565
589
|
hashContent(content) {
|
|
566
590
|
return createHash('sha256').update(content).digest('hex');
|
|
@@ -616,8 +640,12 @@ export class CoherenceGate {
|
|
|
616
640
|
* @param threshold - Coherence energy threshold (default: 0.4)
|
|
617
641
|
* @returns A new CoherenceGate instance
|
|
618
642
|
*/
|
|
619
|
-
export function createCoherenceGate(threshold) {
|
|
620
|
-
|
|
643
|
+
export function createCoherenceGate(threshold, governanceChain) {
|
|
644
|
+
const gate = new CoherenceGate(threshold);
|
|
645
|
+
if (governanceChain) {
|
|
646
|
+
gate.setGovernanceChain(governanceChain);
|
|
647
|
+
}
|
|
648
|
+
return gate;
|
|
621
649
|
}
|
|
622
650
|
/**
|
|
623
651
|
* Create a transfer coherence gate.
|
|
@@ -7,12 +7,14 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { QEDomain } from './qe-patterns.js';
|
|
9
9
|
/**
|
|
10
|
-
* Profile describing an agent's domains, capabilities, and
|
|
10
|
+
* Profile describing an agent's domains, capabilities, performance, and language expertise.
|
|
11
11
|
*/
|
|
12
12
|
export interface AgentCapabilityProfile {
|
|
13
13
|
domains: QEDomain[];
|
|
14
14
|
capabilities: string[];
|
|
15
15
|
performanceScore: number;
|
|
16
|
+
/** Languages this agent has expertise in (for language-aware routing) */
|
|
17
|
+
languages?: string[];
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* Static mapping of QE agent types to their capability profiles.
|
|
@@ -33,6 +35,8 @@ export interface RoutingWeights {
|
|
|
33
35
|
similarity: number;
|
|
34
36
|
performance: number;
|
|
35
37
|
capabilities: number;
|
|
38
|
+
/** Weight for language match boost (default: 1.0) */
|
|
39
|
+
language?: number;
|
|
36
40
|
}
|
|
37
41
|
/**
|
|
38
42
|
* Calculate agent scores for a routing request.
|
|
@@ -42,9 +46,10 @@ export interface RoutingWeights {
|
|
|
42
46
|
* @param agentDomainPatternCounts - Map from agent type to number of matching patterns
|
|
43
47
|
* @param routingWeights - Weights for the scoring components
|
|
44
48
|
* @param agentCapabilities - Agent capability map (defaults to AGENT_CAPABILITIES)
|
|
49
|
+
* @param requestLanguage - Optional language to boost agents with matching language expertise
|
|
45
50
|
* @returns Sorted array of scored agents (highest score first)
|
|
46
51
|
*/
|
|
47
|
-
export declare function calculateAgentScores(detectedDomains: QEDomain[], requestCapabilities: string[] | undefined, agentDomainPatternCounts: Map<string, number>, routingWeights: RoutingWeights, agentCapabilities?: Record<string, AgentCapabilityProfile
|
|
52
|
+
export declare function calculateAgentScores(detectedDomains: QEDomain[], requestCapabilities: string[] | undefined, agentDomainPatternCounts: Map<string, number>, routingWeights: RoutingWeights, agentCapabilities?: Record<string, AgentCapabilityProfile>, requestLanguage?: string): ScoredAgent[];
|
|
48
53
|
/**
|
|
49
54
|
* Domain compatibility matrix for cross-domain pattern transfer.
|
|
50
55
|
* Maps each domain to its related domains (same as TransferSpecialistService).
|
|
@@ -16,21 +16,25 @@ export const AGENT_CAPABILITIES = {
|
|
|
16
16
|
domains: ['test-generation'],
|
|
17
17
|
capabilities: ['test-generation', 'tdd', 'bdd', 'unit-test', 'integration-test'],
|
|
18
18
|
performanceScore: 0.85,
|
|
19
|
+
languages: ['typescript', 'javascript', 'python', 'java', 'csharp', 'go', 'rust', 'swift', 'kotlin', 'dart'],
|
|
19
20
|
},
|
|
20
21
|
'qe-coverage-analyzer': {
|
|
21
22
|
domains: ['coverage-analysis'],
|
|
22
23
|
capabilities: ['coverage-analysis', 'gap-detection', 'risk-scoring'],
|
|
23
24
|
performanceScore: 0.92,
|
|
25
|
+
languages: ['typescript', 'javascript', 'python', 'java', 'csharp', 'go', 'rust', 'swift', 'kotlin', 'dart'],
|
|
24
26
|
},
|
|
25
27
|
'qe-coverage-specialist': {
|
|
26
28
|
domains: ['coverage-analysis'],
|
|
27
29
|
capabilities: ['sublinear-analysis', 'branch-coverage', 'mutation-testing'],
|
|
28
30
|
performanceScore: 0.88,
|
|
31
|
+
languages: ['typescript', 'javascript'],
|
|
29
32
|
},
|
|
30
33
|
'qe-test-architect': {
|
|
31
34
|
domains: ['test-generation', 'coverage-analysis'],
|
|
32
35
|
capabilities: ['test-strategy', 'test-pyramid', 'architecture'],
|
|
33
36
|
performanceScore: 0.9,
|
|
37
|
+
languages: ['typescript', 'javascript', 'python', 'java', 'csharp', 'go', 'rust', 'swift', 'kotlin', 'dart'],
|
|
34
38
|
},
|
|
35
39
|
'qe-api-contract-validator': {
|
|
36
40
|
domains: ['contract-testing'],
|
|
@@ -76,9 +80,10 @@ export const AGENT_CAPABILITIES = {
|
|
|
76
80
|
* @param agentDomainPatternCounts - Map from agent type to number of matching patterns
|
|
77
81
|
* @param routingWeights - Weights for the scoring components
|
|
78
82
|
* @param agentCapabilities - Agent capability map (defaults to AGENT_CAPABILITIES)
|
|
83
|
+
* @param requestLanguage - Optional language to boost agents with matching language expertise
|
|
79
84
|
* @returns Sorted array of scored agents (highest score first)
|
|
80
85
|
*/
|
|
81
|
-
export function calculateAgentScores(detectedDomains, requestCapabilities, agentDomainPatternCounts, routingWeights, agentCapabilities = AGENT_CAPABILITIES) {
|
|
86
|
+
export function calculateAgentScores(detectedDomains, requestCapabilities, agentDomainPatternCounts, routingWeights, agentCapabilities = AGENT_CAPABILITIES, requestLanguage) {
|
|
82
87
|
const agentScores = [];
|
|
83
88
|
for (const [agentType, profile] of Object.entries(agentCapabilities)) {
|
|
84
89
|
let score = 0;
|
|
@@ -105,6 +110,17 @@ export function calculateAgentScores(detectedDomains, requestCapabilities, agent
|
|
|
105
110
|
// Historical performance (0-0.3)
|
|
106
111
|
score += profile.performanceScore * 0.3 * routingWeights.performance;
|
|
107
112
|
reasoning.push(`Performance score: ${(profile.performanceScore * 100).toFixed(0)}%`);
|
|
113
|
+
// Language match boost (0-0.15)
|
|
114
|
+
if (requestLanguage && profile.languages && profile.languages.length > 0) {
|
|
115
|
+
const langWeight = routingWeights.language ?? 1.0;
|
|
116
|
+
const langLower = requestLanguage.toLowerCase();
|
|
117
|
+
const hasLanguage = profile.languages.some(l => l.toLowerCase() === langLower);
|
|
118
|
+
if (hasLanguage) {
|
|
119
|
+
const langBoost = 0.15 * langWeight;
|
|
120
|
+
score += langBoost;
|
|
121
|
+
reasoning.push(`Language match: ${requestLanguage}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
108
124
|
// Pattern similarity boost
|
|
109
125
|
const patternCount = agentDomainPatternCounts.get(agentType) || 0;
|
|
110
126
|
if (patternCount > 0) {
|