agentic-qe 3.3.2 → 3.3.3
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/helpers/statusline-v3.cjs +96 -27
- package/README.md +6 -3
- package/package.json +1 -1
- package/scripts/sync-claude-flow.cjs +99 -0
- package/v3/CHANGELOG.md +87 -0
- package/v3/README.md +9 -5
- package/v3/dist/cli/bundle.js +43386 -37651
- package/v3/dist/coordination/consensus/domain-findings.d.ts +202 -0
- package/v3/dist/coordination/consensus/domain-findings.d.ts.map +1 -0
- package/v3/dist/coordination/consensus/domain-findings.js +66 -0
- package/v3/dist/coordination/consensus/domain-findings.js.map +1 -0
- package/v3/dist/coordination/consensus/index.d.ts +2 -0
- package/v3/dist/coordination/consensus/index.d.ts.map +1 -1
- package/v3/dist/coordination/consensus/index.js +4 -0
- package/v3/dist/coordination/consensus/index.js.map +1 -1
- package/v3/dist/coordination/index.d.ts +1 -0
- package/v3/dist/coordination/index.d.ts.map +1 -1
- package/v3/dist/coordination/index.js +4 -0
- package/v3/dist/coordination/index.js.map +1 -1
- package/v3/dist/coordination/mixins/consensus-enabled-domain.d.ts +225 -0
- package/v3/dist/coordination/mixins/consensus-enabled-domain.d.ts.map +1 -0
- package/v3/dist/coordination/mixins/consensus-enabled-domain.js +466 -0
- package/v3/dist/coordination/mixins/consensus-enabled-domain.js.map +1 -0
- package/v3/dist/coordination/mixins/index.d.ts +14 -0
- package/v3/dist/coordination/mixins/index.d.ts.map +1 -0
- package/v3/dist/coordination/mixins/index.js +28 -0
- package/v3/dist/coordination/mixins/index.js.map +1 -0
- package/v3/dist/coordination/mixins/mincut-aware-domain.d.ts +227 -0
- package/v3/dist/coordination/mixins/mincut-aware-domain.d.ts.map +1 -0
- package/v3/dist/coordination/mixins/mincut-aware-domain.js +368 -0
- package/v3/dist/coordination/mixins/mincut-aware-domain.js.map +1 -0
- package/v3/dist/coordination/queen-coordinator.d.ts +10 -0
- package/v3/dist/coordination/queen-coordinator.d.ts.map +1 -1
- package/v3/dist/coordination/queen-coordinator.js +40 -0
- package/v3/dist/coordination/queen-coordinator.js.map +1 -1
- package/v3/dist/coordination/task-executor.d.ts +21 -1
- package/v3/dist/coordination/task-executor.d.ts.map +1 -1
- package/v3/dist/coordination/task-executor.js +222 -5
- package/v3/dist/coordination/task-executor.js.map +1 -1
- package/v3/dist/domains/chaos-resilience/coordinator.d.ts +92 -0
- package/v3/dist/domains/chaos-resilience/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/chaos-resilience/coordinator.js +241 -1
- package/v3/dist/domains/chaos-resilience/coordinator.js.map +1 -1
- package/v3/dist/domains/chaos-resilience/plugin.js +1 -1
- package/v3/dist/domains/chaos-resilience/plugin.js.map +1 -1
- package/v3/dist/domains/chaos-resilience/services/chaos-engineer.d.ts +29 -2
- package/v3/dist/domains/chaos-resilience/services/chaos-engineer.d.ts.map +1 -1
- package/v3/dist/domains/chaos-resilience/services/chaos-engineer.js +62 -3
- package/v3/dist/domains/chaos-resilience/services/chaos-engineer.js.map +1 -1
- package/v3/dist/domains/code-intelligence/coordinator.d.ts +112 -0
- package/v3/dist/domains/code-intelligence/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/code-intelligence/coordinator.js +221 -0
- package/v3/dist/domains/code-intelligence/coordinator.js.map +1 -1
- package/v3/dist/domains/code-intelligence/services/knowledge-graph.d.ts +66 -2
- package/v3/dist/domains/code-intelligence/services/knowledge-graph.d.ts.map +1 -1
- package/v3/dist/domains/code-intelligence/services/knowledge-graph.js +253 -3
- package/v3/dist/domains/code-intelligence/services/knowledge-graph.js.map +1 -1
- package/v3/dist/domains/contract-testing/coordinator.d.ts +89 -1
- package/v3/dist/domains/contract-testing/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/contract-testing/coordinator.js +222 -1
- package/v3/dist/domains/contract-testing/coordinator.js.map +1 -1
- package/v3/dist/domains/contract-testing/interfaces.d.ts +29 -1
- package/v3/dist/domains/contract-testing/interfaces.d.ts.map +1 -1
- package/v3/dist/domains/contract-testing/plugin.js +1 -1
- package/v3/dist/domains/contract-testing/plugin.js.map +1 -1
- package/v3/dist/domains/contract-testing/services/contract-validator.d.ts +29 -2
- package/v3/dist/domains/contract-testing/services/contract-validator.d.ts.map +1 -1
- package/v3/dist/domains/contract-testing/services/contract-validator.js +58 -3
- package/v3/dist/domains/contract-testing/services/contract-validator.js.map +1 -1
- package/v3/dist/domains/coverage-analysis/coordinator.d.ts +95 -2
- package/v3/dist/domains/coverage-analysis/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/coverage-analysis/coordinator.js +274 -6
- package/v3/dist/domains/coverage-analysis/coordinator.js.map +1 -1
- package/v3/dist/domains/coverage-analysis/services/coverage-analyzer.d.ts +119 -3
- package/v3/dist/domains/coverage-analysis/services/coverage-analyzer.d.ts.map +1 -1
- package/v3/dist/domains/coverage-analysis/services/coverage-analyzer.js +267 -5
- package/v3/dist/domains/coverage-analysis/services/coverage-analyzer.js.map +1 -1
- package/v3/dist/domains/coverage-analysis/services/gap-detector.d.ts +111 -2
- package/v3/dist/domains/coverage-analysis/services/gap-detector.d.ts.map +1 -1
- package/v3/dist/domains/coverage-analysis/services/gap-detector.js +231 -3
- package/v3/dist/domains/coverage-analysis/services/gap-detector.js.map +1 -1
- package/v3/dist/domains/defect-intelligence/coordinator.d.ts +80 -1
- package/v3/dist/domains/defect-intelligence/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/defect-intelligence/coordinator.js +262 -7
- package/v3/dist/domains/defect-intelligence/coordinator.js.map +1 -1
- package/v3/dist/domains/defect-intelligence/interfaces.d.ts +17 -0
- package/v3/dist/domains/defect-intelligence/interfaces.d.ts.map +1 -1
- package/v3/dist/domains/defect-intelligence/services/defect-predictor.d.ts +91 -2
- package/v3/dist/domains/defect-intelligence/services/defect-predictor.d.ts.map +1 -1
- package/v3/dist/domains/defect-intelligence/services/defect-predictor.js +274 -7
- package/v3/dist/domains/defect-intelligence/services/defect-predictor.js.map +1 -1
- package/v3/dist/domains/defect-intelligence/services/root-cause-analyzer.d.ts +79 -2
- package/v3/dist/domains/defect-intelligence/services/root-cause-analyzer.d.ts.map +1 -1
- package/v3/dist/domains/defect-intelligence/services/root-cause-analyzer.js +259 -3
- package/v3/dist/domains/defect-intelligence/services/root-cause-analyzer.js.map +1 -1
- package/v3/dist/domains/domain-interface.d.ts +155 -0
- package/v3/dist/domains/domain-interface.d.ts.map +1 -1
- package/v3/dist/domains/domain-interface.js +140 -0
- package/v3/dist/domains/domain-interface.js.map +1 -1
- package/v3/dist/domains/learning-optimization/coordinator.d.ts +88 -0
- package/v3/dist/domains/learning-optimization/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/learning-optimization/coordinator.js +227 -1
- package/v3/dist/domains/learning-optimization/coordinator.js.map +1 -1
- package/v3/dist/domains/learning-optimization/index.d.ts +1 -1
- package/v3/dist/domains/learning-optimization/index.d.ts.map +1 -1
- package/v3/dist/domains/learning-optimization/index.js.map +1 -1
- package/v3/dist/domains/learning-optimization/interfaces.d.ts +4 -0
- package/v3/dist/domains/learning-optimization/interfaces.d.ts.map +1 -1
- package/v3/dist/domains/learning-optimization/plugin.js +1 -1
- package/v3/dist/domains/learning-optimization/plugin.js.map +1 -1
- package/v3/dist/domains/learning-optimization/services/learning-coordinator.d.ts +54 -2
- package/v3/dist/domains/learning-optimization/services/learning-coordinator.d.ts.map +1 -1
- package/v3/dist/domains/learning-optimization/services/learning-coordinator.js +90 -3
- package/v3/dist/domains/learning-optimization/services/learning-coordinator.js.map +1 -1
- package/v3/dist/domains/quality-assessment/coordinator.d.ts +104 -0
- package/v3/dist/domains/quality-assessment/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/quality-assessment/coordinator.js +354 -6
- package/v3/dist/domains/quality-assessment/coordinator.js.map +1 -1
- package/v3/dist/domains/quality-assessment/interfaces.d.ts +22 -0
- package/v3/dist/domains/quality-assessment/interfaces.d.ts.map +1 -1
- package/v3/dist/domains/quality-assessment/services/deployment-advisor.d.ts +61 -2
- package/v3/dist/domains/quality-assessment/services/deployment-advisor.d.ts.map +1 -1
- package/v3/dist/domains/quality-assessment/services/deployment-advisor.js +213 -5
- package/v3/dist/domains/quality-assessment/services/deployment-advisor.js.map +1 -1
- package/v3/dist/domains/quality-assessment/services/quality-analyzer.d.ts +59 -4
- package/v3/dist/domains/quality-assessment/services/quality-analyzer.d.ts.map +1 -1
- package/v3/dist/domains/quality-assessment/services/quality-analyzer.js +195 -3
- package/v3/dist/domains/quality-assessment/services/quality-analyzer.js.map +1 -1
- package/v3/dist/domains/requirements-validation/coordinator.d.ts +78 -0
- package/v3/dist/domains/requirements-validation/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/requirements-validation/coordinator.js +189 -0
- package/v3/dist/domains/requirements-validation/coordinator.js.map +1 -1
- package/v3/dist/domains/requirements-validation/interfaces.d.ts +4 -0
- package/v3/dist/domains/requirements-validation/interfaces.d.ts.map +1 -1
- package/v3/dist/domains/requirements-validation/services/requirements-validator.d.ts +106 -2
- package/v3/dist/domains/requirements-validation/services/requirements-validator.d.ts.map +1 -1
- package/v3/dist/domains/requirements-validation/services/requirements-validator.js +263 -3
- package/v3/dist/domains/requirements-validation/services/requirements-validator.js.map +1 -1
- package/v3/dist/domains/security-compliance/coordinator.d.ts +56 -1
- package/v3/dist/domains/security-compliance/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/security-compliance/coordinator.js +241 -17
- package/v3/dist/domains/security-compliance/coordinator.js.map +1 -1
- package/v3/dist/domains/security-compliance/interfaces.d.ts +2 -0
- package/v3/dist/domains/security-compliance/interfaces.d.ts.map +1 -1
- package/v3/dist/domains/security-compliance/services/security-scanner.d.ts +33 -2
- package/v3/dist/domains/security-compliance/services/security-scanner.d.ts.map +1 -1
- package/v3/dist/domains/security-compliance/services/security-scanner.js +107 -3
- package/v3/dist/domains/security-compliance/services/security-scanner.js.map +1 -1
- package/v3/dist/domains/test-execution/coordinator.d.ts +89 -0
- package/v3/dist/domains/test-execution/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/coordinator.js +259 -2
- package/v3/dist/domains/test-execution/coordinator.js.map +1 -1
- package/v3/dist/domains/test-execution/services/test-executor.d.ts +30 -2
- package/v3/dist/domains/test-execution/services/test-executor.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/services/test-executor.js +64 -3
- package/v3/dist/domains/test-execution/services/test-executor.js.map +1 -1
- package/v3/dist/domains/test-generation/coordinator.d.ts +97 -0
- package/v3/dist/domains/test-generation/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/coordinator.js +237 -0
- package/v3/dist/domains/test-generation/coordinator.js.map +1 -1
- package/v3/dist/domains/test-generation/interfaces.d.ts +2 -0
- package/v3/dist/domains/test-generation/interfaces.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/services/test-generator.d.ts +32 -0
- package/v3/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/services/test-generator.js +158 -3
- package/v3/dist/domains/test-generation/services/test-generator.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/coordinator.d.ts +77 -0
- package/v3/dist/domains/visual-accessibility/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/coordinator.js +210 -2
- package/v3/dist/domains/visual-accessibility/coordinator.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/plugin.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/plugin.js +3 -3
- package/v3/dist/domains/visual-accessibility/plugin.js.map +1 -1
- package/v3/dist/domains/visual-accessibility/services/visual-tester.d.ts +47 -2
- package/v3/dist/domains/visual-accessibility/services/visual-tester.d.ts.map +1 -1
- package/v3/dist/domains/visual-accessibility/services/visual-tester.js +87 -3
- package/v3/dist/domains/visual-accessibility/services/visual-tester.js.map +1 -1
- package/v3/dist/learning/experience-capture-middleware.d.ts +119 -0
- package/v3/dist/learning/experience-capture-middleware.d.ts.map +1 -0
- package/v3/dist/learning/experience-capture-middleware.js +416 -0
- package/v3/dist/learning/experience-capture-middleware.js.map +1 -0
- package/v3/dist/mcp/bundle.js +60723 -54421
- package/v3/dist/mcp/handlers/domain-handlers.d.ts +12 -13
- package/v3/dist/mcp/handlers/domain-handlers.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/index.d.ts +1 -1
- package/v3/dist/mcp/handlers/index.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/index.js +2 -2
- package/v3/dist/mcp/handlers/index.js.map +1 -1
- package/v3/dist/mcp/handlers/wrapped-domain-handlers.d.ts +30 -0
- package/v3/dist/mcp/handlers/wrapped-domain-handlers.d.ts.map +1 -0
- package/v3/dist/mcp/handlers/wrapped-domain-handlers.js +75 -0
- package/v3/dist/mcp/handlers/wrapped-domain-handlers.js.map +1 -0
- package/v3/dist/mcp/tools/chaos-resilience/inject.js +1 -1
- package/v3/dist/mcp/tools/chaos-resilience/inject.js.map +1 -1
- package/v3/dist/mcp/tools/contract-testing/validate.js +1 -1
- package/v3/dist/mcp/tools/contract-testing/validate.js.map +1 -1
- package/v3/dist/mcp/tools/learning-optimization/optimize.js +1 -1
- package/v3/dist/mcp/tools/learning-optimization/optimize.js.map +1 -1
- package/v3/dist/mcp/tools/visual-accessibility/index.js +2 -2
- package/v3/dist/mcp/tools/visual-accessibility/index.js.map +1 -1
- package/v3/dist/routing/qe-agent-registry.d.ts +1 -1
- package/v3/dist/routing/qe-agent-registry.d.ts.map +1 -1
- package/v3/dist/routing/qe-agent-registry.js +20 -1
- package/v3/dist/routing/qe-agent-registry.js.map +1 -1
- package/v3/dist/sync/claude-flow-bridge.d.ts +63 -0
- package/v3/dist/sync/claude-flow-bridge.d.ts.map +1 -0
- package/v3/dist/sync/claude-flow-bridge.js +320 -0
- package/v3/dist/sync/claude-flow-bridge.js.map +1 -0
- package/v3/package.json +1 -1
|
@@ -1,24 +1,60 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agentic QE v3 - Coverage Analyzer Service
|
|
3
3
|
* Implements ICoverageAnalysisService with O(log n) vector-based analysis
|
|
4
|
+
*
|
|
5
|
+
* ADR-051: LLM-powered coverage analysis for intelligent gap detection
|
|
4
6
|
*/
|
|
5
7
|
import { ok, err } from '../../../shared/types';
|
|
8
|
+
const DEFAULT_CONFIG = {
|
|
9
|
+
defaultThreshold: 80,
|
|
10
|
+
enableLLMAnalysis: true, // On by default - opt-out
|
|
11
|
+
llmModelTier: 2, // Sonnet by default
|
|
12
|
+
llmMaxTokens: 2048,
|
|
13
|
+
};
|
|
6
14
|
// ============================================================================
|
|
7
15
|
// Service Implementation
|
|
8
16
|
// ============================================================================
|
|
9
17
|
export class CoverageAnalyzerService {
|
|
10
|
-
memory;
|
|
11
18
|
static DEFAULT_THRESHOLD = 80;
|
|
12
19
|
static VECTOR_DIMENSION = 128;
|
|
13
|
-
|
|
14
|
-
|
|
20
|
+
memory;
|
|
21
|
+
config;
|
|
22
|
+
llmRouter;
|
|
23
|
+
/**
|
|
24
|
+
* Constructor with backward compatibility support
|
|
25
|
+
* @param memoryOrDependencies - Either a MemoryBackend (legacy) or CoverageAnalyzerDependencies
|
|
26
|
+
* @param config - Optional configuration overrides
|
|
27
|
+
*/
|
|
28
|
+
constructor(memoryOrDependencies, config = {}) {
|
|
29
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
30
|
+
// Support both old (MemoryBackend) and new (Dependencies) signatures
|
|
31
|
+
if (this.isMemoryBackend(memoryOrDependencies)) {
|
|
32
|
+
// Legacy: direct MemoryBackend parameter
|
|
33
|
+
this.memory = memoryOrDependencies;
|
|
34
|
+
this.llmRouter = undefined;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
// New: dependencies object
|
|
38
|
+
this.memory = memoryOrDependencies.memory;
|
|
39
|
+
this.llmRouter = memoryOrDependencies.llmRouter;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Type guard to check if input is a MemoryBackend
|
|
44
|
+
*/
|
|
45
|
+
isMemoryBackend(input) {
|
|
46
|
+
// MemoryBackend has 'get', 'set', 'delete' methods directly
|
|
47
|
+
// CoverageAnalyzerDependencies has a 'memory' property
|
|
48
|
+
return (typeof input.get === 'function' &&
|
|
49
|
+
typeof input.set === 'function' &&
|
|
50
|
+
!('memory' in input));
|
|
15
51
|
}
|
|
16
52
|
/**
|
|
17
53
|
* Analyze coverage from reports
|
|
18
54
|
*/
|
|
19
55
|
async analyze(request) {
|
|
20
56
|
try {
|
|
21
|
-
const { coverageData, threshold =
|
|
57
|
+
const { coverageData, threshold = this.config.defaultThreshold } = request;
|
|
22
58
|
// Calculate current metrics
|
|
23
59
|
const summary = this.calculateMetrics(coverageData);
|
|
24
60
|
// Check if coverage meets threshold
|
|
@@ -49,7 +85,7 @@ export class CoverageAnalyzerService {
|
|
|
49
85
|
* Find coverage gaps using O(log n) vector similarity search
|
|
50
86
|
* Uses HNSW indexing for efficient gap detection across large codebases
|
|
51
87
|
*/
|
|
52
|
-
async findGaps(coverageData, threshold =
|
|
88
|
+
async findGaps(coverageData, threshold = this.config.defaultThreshold) {
|
|
53
89
|
try {
|
|
54
90
|
const gaps = [];
|
|
55
91
|
let totalUncoveredLines = 0;
|
|
@@ -128,6 +164,207 @@ export class CoverageAnalyzerService {
|
|
|
128
164
|
};
|
|
129
165
|
}
|
|
130
166
|
// ============================================================================
|
|
167
|
+
// ADR-051: LLM Enhancement Methods
|
|
168
|
+
// ============================================================================
|
|
169
|
+
/**
|
|
170
|
+
* Check if LLM analysis is available and enabled
|
|
171
|
+
*/
|
|
172
|
+
isLLMAnalysisAvailable() {
|
|
173
|
+
return this.config.enableLLMAnalysis === true && this.llmRouter !== undefined;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Get model ID for the configured tier
|
|
177
|
+
*/
|
|
178
|
+
getModelForTier(tier) {
|
|
179
|
+
switch (tier) {
|
|
180
|
+
case 1:
|
|
181
|
+
return 'claude-3-5-haiku-20241022';
|
|
182
|
+
case 2:
|
|
183
|
+
return 'claude-sonnet-4-20250514';
|
|
184
|
+
case 3:
|
|
185
|
+
return 'claude-sonnet-4-20250514';
|
|
186
|
+
case 4:
|
|
187
|
+
return 'claude-opus-4-5-20251101';
|
|
188
|
+
default:
|
|
189
|
+
return 'claude-sonnet-4-20250514';
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Analyze coverage gaps using LLM for intelligent insights
|
|
194
|
+
* ADR-051: Provides explanations, test suggestions, and risk assessment
|
|
195
|
+
*
|
|
196
|
+
* @param gaps - Coverage gaps to analyze
|
|
197
|
+
* @param sourceCode - Source code content (optional, for deeper analysis)
|
|
198
|
+
* @returns LLM-generated coverage insights
|
|
199
|
+
*/
|
|
200
|
+
async analyzeCoverageWithLLM(gaps, sourceCode) {
|
|
201
|
+
if (!this.llmRouter) {
|
|
202
|
+
return this.getDefaultInsights();
|
|
203
|
+
}
|
|
204
|
+
try {
|
|
205
|
+
const prompt = this.buildCoverageAnalysisPrompt(gaps, sourceCode);
|
|
206
|
+
const modelId = this.getModelForTier(this.config.llmModelTier ?? 2);
|
|
207
|
+
const response = await this.llmRouter.chat({
|
|
208
|
+
messages: [
|
|
209
|
+
{
|
|
210
|
+
role: 'system',
|
|
211
|
+
content: `You are an expert code coverage analyst and test engineer. Analyze coverage gaps and provide actionable insights.
|
|
212
|
+
|
|
213
|
+
Your response MUST be valid JSON with this exact structure:
|
|
214
|
+
{
|
|
215
|
+
"uncoveredReasoning": ["reason1", "reason2", ...],
|
|
216
|
+
"suggestedTestCases": [
|
|
217
|
+
{
|
|
218
|
+
"name": "test name",
|
|
219
|
+
"description": "what this test covers",
|
|
220
|
+
"type": "unit" | "integration" | "edge-case",
|
|
221
|
+
"targetLines": [1, 2, 3],
|
|
222
|
+
"estimatedEffort": "low" | "medium" | "high"
|
|
223
|
+
}
|
|
224
|
+
],
|
|
225
|
+
"riskAssessment": {
|
|
226
|
+
"overallRisk": "low" | "medium" | "high" | "critical",
|
|
227
|
+
"riskFactors": ["factor1", "factor2"],
|
|
228
|
+
"businessImpact": "description of potential business impact",
|
|
229
|
+
"recommendations": ["recommendation1", "recommendation2"]
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
Provide thoughtful, specific analysis based on the coverage data. Do not include any text outside the JSON.`,
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
role: 'user',
|
|
237
|
+
content: prompt,
|
|
238
|
+
},
|
|
239
|
+
],
|
|
240
|
+
model: modelId,
|
|
241
|
+
maxTokens: this.config.llmMaxTokens ?? 2048,
|
|
242
|
+
temperature: 0.3, // Low temperature for consistent analysis
|
|
243
|
+
});
|
|
244
|
+
if (response.content && response.content.length > 0) {
|
|
245
|
+
return this.parseInsightsResponse(response.content);
|
|
246
|
+
}
|
|
247
|
+
return this.getDefaultInsights();
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
console.warn('[CoverageAnalyzer] LLM analysis failed, using defaults:', error);
|
|
251
|
+
return this.getDefaultInsights();
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Build the prompt for LLM coverage analysis
|
|
256
|
+
*/
|
|
257
|
+
buildCoverageAnalysisPrompt(gaps, sourceCode) {
|
|
258
|
+
let prompt = '## Coverage Gaps to Analyze\n\n';
|
|
259
|
+
for (const gap of gaps.slice(0, 10)) {
|
|
260
|
+
// Limit to top 10 gaps to avoid token limits
|
|
261
|
+
prompt += `### File: ${gap.file}\n`;
|
|
262
|
+
prompt += `- Uncovered lines: ${gap.lines.slice(0, 20).join(', ')}${gap.lines.length > 20 ? '...' : ''}\n`;
|
|
263
|
+
prompt += `- Uncovered branches: ${gap.branches.length}\n`;
|
|
264
|
+
prompt += `- Risk score: ${(gap.riskScore * 100).toFixed(1)}%\n`;
|
|
265
|
+
prompt += `- Severity: ${gap.severity}\n`;
|
|
266
|
+
prompt += `- Current recommendation: ${gap.recommendation}\n\n`;
|
|
267
|
+
}
|
|
268
|
+
if (sourceCode) {
|
|
269
|
+
// Truncate source code to avoid token limits
|
|
270
|
+
const truncatedSource = sourceCode.length > 3000 ? sourceCode.substring(0, 3000) + '\n... (truncated)' : sourceCode;
|
|
271
|
+
prompt += `## Source Code Context\n\`\`\`typescript\n${truncatedSource}\n\`\`\`\n\n`;
|
|
272
|
+
}
|
|
273
|
+
prompt += `## Analysis Request\n`;
|
|
274
|
+
prompt += `1. Explain why these code sections might be uncovered (common patterns, complexity, etc.)\n`;
|
|
275
|
+
prompt += `2. Suggest specific test cases to cover the gaps, with effort estimates\n`;
|
|
276
|
+
prompt += `3. Assess the risk of leaving this code uncovered\n`;
|
|
277
|
+
prompt += `4. Provide actionable recommendations prioritized by impact\n`;
|
|
278
|
+
return prompt;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Parse LLM response into CoverageInsights structure
|
|
282
|
+
*/
|
|
283
|
+
parseInsightsResponse(content) {
|
|
284
|
+
try {
|
|
285
|
+
// Try to extract JSON from response (handling potential markdown fences)
|
|
286
|
+
let jsonContent = content;
|
|
287
|
+
const jsonMatch = content.match(/```(?:json)?\n?([\s\S]*?)```/);
|
|
288
|
+
if (jsonMatch) {
|
|
289
|
+
jsonContent = jsonMatch[1].trim();
|
|
290
|
+
}
|
|
291
|
+
const parsed = JSON.parse(jsonContent);
|
|
292
|
+
// Validate and normalize the response structure
|
|
293
|
+
return {
|
|
294
|
+
uncoveredReasoning: Array.isArray(parsed.uncoveredReasoning)
|
|
295
|
+
? parsed.uncoveredReasoning
|
|
296
|
+
: [],
|
|
297
|
+
suggestedTestCases: Array.isArray(parsed.suggestedTestCases)
|
|
298
|
+
? parsed.suggestedTestCases.map(this.normalizeTestCase)
|
|
299
|
+
: [],
|
|
300
|
+
riskAssessment: this.normalizeRiskAssessment(parsed.riskAssessment),
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
catch {
|
|
304
|
+
console.warn('[CoverageAnalyzer] Failed to parse LLM response as JSON');
|
|
305
|
+
return this.getDefaultInsights();
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Normalize a suggested test case to ensure valid structure
|
|
310
|
+
*/
|
|
311
|
+
normalizeTestCase(testCase) {
|
|
312
|
+
return {
|
|
313
|
+
name: testCase.name || 'Unnamed test',
|
|
314
|
+
description: testCase.description || 'No description provided',
|
|
315
|
+
type: ['unit', 'integration', 'edge-case'].includes(testCase.type)
|
|
316
|
+
? testCase.type
|
|
317
|
+
: 'unit',
|
|
318
|
+
targetLines: Array.isArray(testCase.targetLines) ? testCase.targetLines : [],
|
|
319
|
+
estimatedEffort: ['low', 'medium', 'high'].includes(testCase.estimatedEffort)
|
|
320
|
+
? testCase.estimatedEffort
|
|
321
|
+
: 'medium',
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Normalize risk assessment to ensure valid structure
|
|
326
|
+
*/
|
|
327
|
+
normalizeRiskAssessment(assessment) {
|
|
328
|
+
if (!assessment) {
|
|
329
|
+
return {
|
|
330
|
+
overallRisk: 'medium',
|
|
331
|
+
riskFactors: ['Unable to determine specific risk factors'],
|
|
332
|
+
businessImpact: 'Unknown - manual review recommended',
|
|
333
|
+
recommendations: ['Review uncovered code paths manually'],
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
return {
|
|
337
|
+
overallRisk: ['low', 'medium', 'high', 'critical'].includes(assessment.overallRisk)
|
|
338
|
+
? assessment.overallRisk
|
|
339
|
+
: 'medium',
|
|
340
|
+
riskFactors: Array.isArray(assessment.riskFactors) ? assessment.riskFactors : [],
|
|
341
|
+
businessImpact: assessment.businessImpact || 'Unknown',
|
|
342
|
+
recommendations: Array.isArray(assessment.recommendations) ? assessment.recommendations : [],
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Get default insights when LLM is unavailable
|
|
347
|
+
*/
|
|
348
|
+
getDefaultInsights() {
|
|
349
|
+
return {
|
|
350
|
+
uncoveredReasoning: [
|
|
351
|
+
'LLM analysis not available - using rule-based analysis',
|
|
352
|
+
'Consider enabling LLM analysis for deeper insights',
|
|
353
|
+
],
|
|
354
|
+
suggestedTestCases: [],
|
|
355
|
+
riskAssessment: {
|
|
356
|
+
overallRisk: 'medium',
|
|
357
|
+
riskFactors: ['Unable to perform automated risk analysis'],
|
|
358
|
+
businessImpact: 'Unknown - manual review recommended',
|
|
359
|
+
recommendations: [
|
|
360
|
+
'Enable LLM analysis for intelligent gap detection',
|
|
361
|
+
'Review high-risk files manually',
|
|
362
|
+
'Prioritize branch coverage for conditional logic',
|
|
363
|
+
],
|
|
364
|
+
},
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
// ============================================================================
|
|
131
368
|
// Private Helper Methods
|
|
132
369
|
// ============================================================================
|
|
133
370
|
calculateOverallCoverage(summary) {
|
|
@@ -339,4 +576,29 @@ export class CoverageAnalyzerService {
|
|
|
339
576
|
return Math.ceil(testLinesNeeded * hoursPerTestLine);
|
|
340
577
|
}
|
|
341
578
|
}
|
|
579
|
+
// ============================================================================
|
|
580
|
+
// Factory Functions
|
|
581
|
+
// ============================================================================
|
|
582
|
+
/**
|
|
583
|
+
* Create a CoverageAnalyzerService instance with default dependencies
|
|
584
|
+
* Maintains backward compatibility with existing code
|
|
585
|
+
*
|
|
586
|
+
* @param memory - Memory backend for vector storage and caching
|
|
587
|
+
* @param config - Optional configuration overrides
|
|
588
|
+
* @returns Configured CoverageAnalyzerService instance
|
|
589
|
+
*/
|
|
590
|
+
export function createCoverageAnalyzerService(memory, config = {}) {
|
|
591
|
+
return new CoverageAnalyzerService(memory, config);
|
|
592
|
+
}
|
|
593
|
+
/**
|
|
594
|
+
* Create a CoverageAnalyzerService instance with custom dependencies
|
|
595
|
+
* Used for testing or when LLM integration is needed
|
|
596
|
+
*
|
|
597
|
+
* @param dependencies - All service dependencies including optional LLM router
|
|
598
|
+
* @param config - Optional configuration overrides
|
|
599
|
+
* @returns Configured CoverageAnalyzerService instance
|
|
600
|
+
*/
|
|
601
|
+
export function createCoverageAnalyzerServiceWithDependencies(dependencies, config = {}) {
|
|
602
|
+
return new CoverageAnalyzerService(dependencies, config);
|
|
603
|
+
}
|
|
342
604
|
//# sourceMappingURL=coverage-analyzer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage-analyzer.js","sourceRoot":"","sources":["../../../../src/domains/coverage-analysis/services/coverage-analyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coverage-analyzer.js","sourceRoot":"","sources":["../../../../src/domains/coverage-analysis/services/coverage-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agentic QE v3 - Gap Detection Service
|
|
3
3
|
* Implements IGapDetectionService with risk-based prioritization
|
|
4
|
+
*
|
|
5
|
+
* ADR-051: Added LLM-powered gap analysis for intelligent prioritization
|
|
4
6
|
*/
|
|
5
7
|
import { Result } from '../../../shared/types';
|
|
6
8
|
import { MemoryBackend } from '../../../kernel/interfaces';
|
|
7
9
|
import { GapDetectionRequest, CoverageGaps, CoverageGap } from '../interfaces';
|
|
10
|
+
import type { HybridRouter } from '../../../shared/llm';
|
|
8
11
|
export interface IGapDetectionService {
|
|
9
12
|
/** Detect uncovered code regions */
|
|
10
13
|
detectGaps(request: GapDetectionRequest): Promise<Result<CoverageGaps, Error>>;
|
|
@@ -21,11 +24,99 @@ export interface TestSuggestion {
|
|
|
21
24
|
estimatedEffort: number;
|
|
22
25
|
testTemplate?: string;
|
|
23
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Configuration for GapDetectorService
|
|
29
|
+
*/
|
|
30
|
+
export interface GapDetectorConfig {
|
|
31
|
+
/** Minimum coverage threshold (default: 80) */
|
|
32
|
+
minCoverage?: number;
|
|
33
|
+
/** ADR-051: Enable LLM-powered gap analysis */
|
|
34
|
+
enableLLMAnalysis?: boolean;
|
|
35
|
+
/** ADR-051: Model tier for LLM calls (1=Haiku, 2=Sonnet, 4=Opus) */
|
|
36
|
+
llmModelTier?: number;
|
|
37
|
+
/** ADR-051: Max tokens for LLM responses */
|
|
38
|
+
llmMaxTokens?: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Dependencies for GapDetectorService
|
|
42
|
+
* ADR-051: Added LLM router for AI-enhanced analysis
|
|
43
|
+
*/
|
|
44
|
+
export interface GapDetectorDependencies {
|
|
45
|
+
memory: MemoryBackend;
|
|
46
|
+
/** ADR-051: Optional LLM router for AI-enhanced gap analysis */
|
|
47
|
+
llmRouter?: HybridRouter;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* LLM-enhanced gap analysis result
|
|
51
|
+
* Provides intelligent prioritization and suggestions
|
|
52
|
+
*/
|
|
53
|
+
export interface LLMGapAnalysis {
|
|
54
|
+
/** Risk-weighted prioritization of gaps */
|
|
55
|
+
prioritizedGaps: Array<{
|
|
56
|
+
gapId: string;
|
|
57
|
+
riskWeight: number;
|
|
58
|
+
explanation: string;
|
|
59
|
+
businessImpact: 'critical' | 'high' | 'medium' | 'low';
|
|
60
|
+
}>;
|
|
61
|
+
/** Suggested test cases to fill gaps */
|
|
62
|
+
suggestedTests: Array<{
|
|
63
|
+
gapId: string;
|
|
64
|
+
testDescription: string;
|
|
65
|
+
testType: 'unit' | 'integration' | 'e2e';
|
|
66
|
+
estimatedEffort: number;
|
|
67
|
+
}>;
|
|
68
|
+
/** Estimated effort to achieve target coverage */
|
|
69
|
+
effortEstimate: {
|
|
70
|
+
totalHours: number;
|
|
71
|
+
confidence: number;
|
|
72
|
+
breakdown: Record<string, number>;
|
|
73
|
+
};
|
|
74
|
+
/** Overall analysis summary */
|
|
75
|
+
summary: string;
|
|
76
|
+
}
|
|
24
77
|
export declare class GapDetectorService implements IGapDetectionService {
|
|
25
|
-
private readonly memory;
|
|
26
78
|
private static readonly DEFAULT_MIN_COVERAGE;
|
|
27
79
|
private static readonly VECTOR_DIMENSION;
|
|
28
|
-
|
|
80
|
+
private readonly memory;
|
|
81
|
+
private readonly config;
|
|
82
|
+
private readonly llmRouter?;
|
|
83
|
+
/**
|
|
84
|
+
* Create a GapDetectorService instance
|
|
85
|
+
* Supports both old (MemoryBackend only) and new (dependencies + config) signatures
|
|
86
|
+
*
|
|
87
|
+
* @param dependenciesOrMemory - Either a GapDetectorDependencies object or a MemoryBackend
|
|
88
|
+
* @param config - Optional configuration (only used with new signature)
|
|
89
|
+
*/
|
|
90
|
+
constructor(dependenciesOrMemory: GapDetectorDependencies | MemoryBackend, config?: GapDetectorConfig);
|
|
91
|
+
/**
|
|
92
|
+
* Check if LLM analysis is available and enabled
|
|
93
|
+
*/
|
|
94
|
+
private isLLMAnalysisAvailable;
|
|
95
|
+
/**
|
|
96
|
+
* Get model ID for the configured tier
|
|
97
|
+
*/
|
|
98
|
+
private getModelForTier;
|
|
99
|
+
/**
|
|
100
|
+
* Analyze coverage gaps using LLM for intelligent prioritization
|
|
101
|
+
* Provides risk-weighted analysis, test suggestions, and effort estimates
|
|
102
|
+
*/
|
|
103
|
+
analyzeGapsWithLLM(gaps: CoverageGap[], codeContext?: string): Promise<Result<LLMGapAnalysis, Error>>;
|
|
104
|
+
/**
|
|
105
|
+
* Build prompt for gap analysis
|
|
106
|
+
*/
|
|
107
|
+
private buildGapAnalysisPrompt;
|
|
108
|
+
/**
|
|
109
|
+
* Parse LLM response into structured gap analysis
|
|
110
|
+
*/
|
|
111
|
+
private parseGapAnalysisResponse;
|
|
112
|
+
/**
|
|
113
|
+
* Convert severity to business impact
|
|
114
|
+
*/
|
|
115
|
+
private severityToBusinessImpact;
|
|
116
|
+
/**
|
|
117
|
+
* Calculate effort breakdown by file
|
|
118
|
+
*/
|
|
119
|
+
private calculateEffortBreakdown;
|
|
29
120
|
/**
|
|
30
121
|
* Detect uncovered code regions using vector similarity for O(log n) analysis
|
|
31
122
|
*/
|
|
@@ -58,4 +149,22 @@ export declare class GapDetectorService implements IGapDetectionService {
|
|
|
58
149
|
private toCamelCase;
|
|
59
150
|
private generateIntegrationTestTemplate;
|
|
60
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Create a GapDetectorService instance with default dependencies
|
|
154
|
+
* Maintains backward compatibility with existing code
|
|
155
|
+
*
|
|
156
|
+
* @param memory - Memory backend for pattern storage
|
|
157
|
+
* @param config - Optional configuration overrides
|
|
158
|
+
* @returns Configured GapDetectorService instance
|
|
159
|
+
*/
|
|
160
|
+
export declare function createGapDetectorService(memory: MemoryBackend, config?: GapDetectorConfig): GapDetectorService;
|
|
161
|
+
/**
|
|
162
|
+
* Create a GapDetectorService instance with custom dependencies
|
|
163
|
+
* Used when LLM router or other custom implementations are needed
|
|
164
|
+
*
|
|
165
|
+
* @param dependencies - All service dependencies (memory + optional llmRouter)
|
|
166
|
+
* @param config - Optional configuration overrides
|
|
167
|
+
* @returns Configured GapDetectorService instance
|
|
168
|
+
*/
|
|
169
|
+
export declare function createGapDetectorServiceWithDependencies(dependencies: GapDetectorDependencies, config?: GapDetectorConfig): GapDetectorService;
|
|
61
170
|
//# sourceMappingURL=gap-detector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gap-detector.d.ts","sourceRoot":"","sources":["../../../../src/domains/coverage-analysis/services/gap-detector.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gap-detector.d.ts","sourceRoot":"","sources":["../../../../src/domains/coverage-analysis/services/gap-detector.ts"],"names":[],"mappings":"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"}
|