agentic-qe 3.3.1 → 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 +133 -0
- package/v3/README.md +9 -5
- package/v3/dist/cli/bundle.js +60879 -51811
- 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 +23 -1
- package/v3/dist/coordination/queen-coordinator.d.ts.map +1 -1
- package/v3/dist/coordination/queen-coordinator.js +131 -3
- 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/plugin.d.ts +6 -1
- package/v3/dist/domains/coverage-analysis/plugin.d.ts.map +1 -1
- package/v3/dist/domains/coverage-analysis/plugin.js +73 -0
- package/v3/dist/domains/coverage-analysis/plugin.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 +194 -2
- package/v3/dist/domains/domain-interface.d.ts.map +1 -1
- package/v3/dist/domains/domain-interface.js +239 -0
- package/v3/dist/domains/domain-interface.js.map +1 -1
- package/v3/dist/domains/learning-optimization/coordinator.d.ts +171 -0
- package/v3/dist/domains/learning-optimization/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/learning-optimization/coordinator.js +401 -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 +18 -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 +127 -0
- package/v3/dist/domains/quality-assessment/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/quality-assessment/coordinator.js +493 -7
- 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/plugin.d.ts +6 -1
- package/v3/dist/domains/quality-assessment/plugin.d.ts.map +1 -1
- package/v3/dist/domains/quality-assessment/plugin.js +67 -0
- package/v3/dist/domains/quality-assessment/plugin.js.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/plugin.d.ts +6 -1
- package/v3/dist/domains/test-execution/plugin.d.ts.map +1 -1
- package/v3/dist/domains/test-execution/plugin.js +77 -0
- package/v3/dist/domains/test-execution/plugin.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 +137 -0
- package/v3/dist/domains/test-generation/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/coordinator.js +421 -1
- 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/plugin.d.ts +6 -1
- package/v3/dist/domains/test-generation/plugin.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/plugin.js +84 -0
- package/v3/dist/domains/test-generation/plugin.js.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/kernel/interfaces.d.ts +54 -1
- package/v3/dist/kernel/interfaces.d.ts.map +1 -1
- package/v3/dist/learning/dream/dream-scheduler.d.ts +302 -0
- package/v3/dist/learning/dream/dream-scheduler.d.ts.map +1 -0
- package/v3/dist/learning/dream/dream-scheduler.js +551 -0
- package/v3/dist/learning/dream/dream-scheduler.js.map +1 -0
- package/v3/dist/learning/dream/index.d.ts +1 -0
- package/v3/dist/learning/dream/index.d.ts.map +1 -1
- package/v3/dist/learning/dream/index.js +4 -0
- package/v3/dist/learning/dream/index.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 +83142 -70580
- package/v3/dist/mcp/handlers/core-handlers.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/core-handlers.js +16 -2
- package/v3/dist/mcp/handlers/core-handlers.js.map +1 -1
- 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/task-handlers.d.ts +1 -0
- package/v3/dist/mcp/handlers/task-handlers.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/task-handlers.js +46 -12
- package/v3/dist/mcp/handlers/task-handlers.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/services/reasoning-bank-service.d.ts +87 -13
- package/v3/dist/mcp/services/reasoning-bank-service.d.ts.map +1 -1
- package/v3/dist/mcp/services/reasoning-bank-service.js +291 -31
- package/v3/dist/mcp/services/reasoning-bank-service.js.map +1 -1
- 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 +28 -1
- package/v3/dist/routing/qe-agent-registry.d.ts.map +1 -1
- package/v3/dist/routing/qe-agent-registry.js +116 -1
- package/v3/dist/routing/qe-agent-registry.js.map +1 -1
- package/v3/dist/shared/events/domain-events.d.ts +27 -0
- package/v3/dist/shared/events/domain-events.d.ts.map +1 -1
- package/v3/dist/shared/events/domain-events.js +1 -0
- package/v3/dist/shared/events/domain-events.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,10 +1,13 @@
|
|
|
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 { Result } from '../../../shared/types';
|
|
6
8
|
import { MemoryBackend } from '../../../kernel/interfaces';
|
|
7
|
-
import { AnalyzeCoverageRequest, CoverageReport, CoverageData, CoverageSummary, CoverageGaps } from '../interfaces';
|
|
9
|
+
import { AnalyzeCoverageRequest, CoverageReport, CoverageData, CoverageSummary, CoverageGaps, CoverageGap } from '../interfaces';
|
|
10
|
+
import type { HybridRouter } from '../../../shared/llm';
|
|
8
11
|
export interface ICoverageAnalysisService {
|
|
9
12
|
/** Analyze coverage from reports */
|
|
10
13
|
analyze(request: AnalyzeCoverageRequest): Promise<Result<CoverageReport, Error>>;
|
|
@@ -13,11 +16,69 @@ export interface ICoverageAnalysisService {
|
|
|
13
16
|
/** Calculate coverage metrics */
|
|
14
17
|
calculateMetrics(coverageData: CoverageData): CoverageSummary;
|
|
15
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Configuration for the coverage analyzer
|
|
21
|
+
*/
|
|
22
|
+
export interface CoverageAnalyzerConfig {
|
|
23
|
+
/** Default coverage threshold percentage */
|
|
24
|
+
defaultThreshold: number;
|
|
25
|
+
/** ADR-051: Enable LLM-powered coverage analysis */
|
|
26
|
+
enableLLMAnalysis?: boolean;
|
|
27
|
+
/** ADR-051: Model tier for LLM calls (1=Haiku, 2=Sonnet, 4=Opus) */
|
|
28
|
+
llmModelTier?: number;
|
|
29
|
+
/** ADR-051: Max tokens for LLM responses */
|
|
30
|
+
llmMaxTokens?: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Dependencies for CoverageAnalyzerService
|
|
34
|
+
* Enables dependency injection and testing
|
|
35
|
+
*/
|
|
36
|
+
export interface CoverageAnalyzerDependencies {
|
|
37
|
+
memory: MemoryBackend;
|
|
38
|
+
/** ADR-051: Optional LLM router for AI-enhanced coverage analysis */
|
|
39
|
+
llmRouter?: HybridRouter;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* LLM-generated coverage insights
|
|
43
|
+
* ADR-051: Structured analysis results from LLM
|
|
44
|
+
*/
|
|
45
|
+
export interface CoverageInsights {
|
|
46
|
+
/** Explanation of why code is uncovered */
|
|
47
|
+
uncoveredReasoning: string[];
|
|
48
|
+
/** Suggested test cases to cover gaps */
|
|
49
|
+
suggestedTestCases: SuggestedTestCase[];
|
|
50
|
+
/** Risk assessment for uncovered paths */
|
|
51
|
+
riskAssessment: RiskAssessment;
|
|
52
|
+
}
|
|
53
|
+
export interface SuggestedTestCase {
|
|
54
|
+
name: string;
|
|
55
|
+
description: string;
|
|
56
|
+
type: 'unit' | 'integration' | 'edge-case';
|
|
57
|
+
targetLines: number[];
|
|
58
|
+
estimatedEffort: 'low' | 'medium' | 'high';
|
|
59
|
+
}
|
|
60
|
+
export interface RiskAssessment {
|
|
61
|
+
overallRisk: 'low' | 'medium' | 'high' | 'critical';
|
|
62
|
+
riskFactors: string[];
|
|
63
|
+
businessImpact: string;
|
|
64
|
+
recommendations: string[];
|
|
65
|
+
}
|
|
16
66
|
export declare class CoverageAnalyzerService implements ICoverageAnalysisService {
|
|
17
|
-
private readonly memory;
|
|
18
67
|
private static readonly DEFAULT_THRESHOLD;
|
|
19
68
|
private static readonly VECTOR_DIMENSION;
|
|
20
|
-
|
|
69
|
+
private readonly memory;
|
|
70
|
+
private readonly config;
|
|
71
|
+
private readonly llmRouter?;
|
|
72
|
+
/**
|
|
73
|
+
* Constructor with backward compatibility support
|
|
74
|
+
* @param memoryOrDependencies - Either a MemoryBackend (legacy) or CoverageAnalyzerDependencies
|
|
75
|
+
* @param config - Optional configuration overrides
|
|
76
|
+
*/
|
|
77
|
+
constructor(memoryOrDependencies: MemoryBackend | CoverageAnalyzerDependencies, config?: Partial<CoverageAnalyzerConfig>);
|
|
78
|
+
/**
|
|
79
|
+
* Type guard to check if input is a MemoryBackend
|
|
80
|
+
*/
|
|
81
|
+
private isMemoryBackend;
|
|
21
82
|
/**
|
|
22
83
|
* Analyze coverage from reports
|
|
23
84
|
*/
|
|
@@ -31,6 +92,43 @@ export declare class CoverageAnalyzerService implements ICoverageAnalysisService
|
|
|
31
92
|
* Calculate coverage metrics from raw data
|
|
32
93
|
*/
|
|
33
94
|
calculateMetrics(coverageData: CoverageData): CoverageSummary;
|
|
95
|
+
/**
|
|
96
|
+
* Check if LLM analysis is available and enabled
|
|
97
|
+
*/
|
|
98
|
+
isLLMAnalysisAvailable(): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Get model ID for the configured tier
|
|
101
|
+
*/
|
|
102
|
+
private getModelForTier;
|
|
103
|
+
/**
|
|
104
|
+
* Analyze coverage gaps using LLM for intelligent insights
|
|
105
|
+
* ADR-051: Provides explanations, test suggestions, and risk assessment
|
|
106
|
+
*
|
|
107
|
+
* @param gaps - Coverage gaps to analyze
|
|
108
|
+
* @param sourceCode - Source code content (optional, for deeper analysis)
|
|
109
|
+
* @returns LLM-generated coverage insights
|
|
110
|
+
*/
|
|
111
|
+
analyzeCoverageWithLLM(gaps: CoverageGap[], sourceCode?: string): Promise<CoverageInsights>;
|
|
112
|
+
/**
|
|
113
|
+
* Build the prompt for LLM coverage analysis
|
|
114
|
+
*/
|
|
115
|
+
private buildCoverageAnalysisPrompt;
|
|
116
|
+
/**
|
|
117
|
+
* Parse LLM response into CoverageInsights structure
|
|
118
|
+
*/
|
|
119
|
+
private parseInsightsResponse;
|
|
120
|
+
/**
|
|
121
|
+
* Normalize a suggested test case to ensure valid structure
|
|
122
|
+
*/
|
|
123
|
+
private normalizeTestCase;
|
|
124
|
+
/**
|
|
125
|
+
* Normalize risk assessment to ensure valid structure
|
|
126
|
+
*/
|
|
127
|
+
private normalizeRiskAssessment;
|
|
128
|
+
/**
|
|
129
|
+
* Get default insights when LLM is unavailable
|
|
130
|
+
*/
|
|
131
|
+
private getDefaultInsights;
|
|
34
132
|
private calculateOverallCoverage;
|
|
35
133
|
private calculateFileCoveragePercentage;
|
|
36
134
|
private calculateFileRiskScore;
|
|
@@ -46,4 +144,22 @@ export declare class CoverageAnalyzerService implements ICoverageAnalysisService
|
|
|
46
144
|
private generateGapId;
|
|
47
145
|
private estimateEffort;
|
|
48
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Create a CoverageAnalyzerService instance with default dependencies
|
|
149
|
+
* Maintains backward compatibility with existing code
|
|
150
|
+
*
|
|
151
|
+
* @param memory - Memory backend for vector storage and caching
|
|
152
|
+
* @param config - Optional configuration overrides
|
|
153
|
+
* @returns Configured CoverageAnalyzerService instance
|
|
154
|
+
*/
|
|
155
|
+
export declare function createCoverageAnalyzerService(memory: MemoryBackend, config?: Partial<CoverageAnalyzerConfig>): CoverageAnalyzerService;
|
|
156
|
+
/**
|
|
157
|
+
* Create a CoverageAnalyzerService instance with custom dependencies
|
|
158
|
+
* Used for testing or when LLM integration is needed
|
|
159
|
+
*
|
|
160
|
+
* @param dependencies - All service dependencies including optional LLM router
|
|
161
|
+
* @param config - Optional configuration overrides
|
|
162
|
+
* @returns Configured CoverageAnalyzerService instance
|
|
163
|
+
*/
|
|
164
|
+
export declare function createCoverageAnalyzerServiceWithDependencies(dependencies: CoverageAnalyzerDependencies, config?: Partial<CoverageAnalyzerConfig>): CoverageAnalyzerService;
|
|
49
165
|
//# sourceMappingURL=coverage-analyzer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage-analyzer.d.ts","sourceRoot":"","sources":["../../../../src/domains/coverage-analysis/services/coverage-analyzer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"coverage-analyzer.d.ts","sourceRoot":"","sources":["../../../../src/domains/coverage-analysis/services/coverage-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"AAAA;;;GAGG;AAEH,OAAO,EAAU,EAAE,EAAE,GAAG,EAAY,MAAM,uBAAuB,CAAC;AA4BlE,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,MAAM,OAAO,uBAAuB;IAIL;IAHrB,MAAM,CAAU,iBAAiB,GAAG,EAAE,CAAC;IACvC,MAAM,CAAU,gBAAgB,GAAG,GAAG,CAAC;IAE/C,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,OAA+B;QAC3C,IAAI,CAAC;YACH,MAAM,EAAE,YAAY,EAAE,SAAS,GAAG,uBAAuB,CAAC,iBAAiB,EAAE,GAAG,OAAO,CAAC;YAExF,4BAA4B;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAEpD,oCAAoC;YACpC,MAAM,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,eAAe,IAAI,SAAS,CAAC;YAEpD,qDAAqD;YACrD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAEjD,6CAA6C;YAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAEvF,uDAAuD;YACvD,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAE1C,+CAA+C;YAC/C,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1D,CAAC;YAED,OAAO,EAAE,CAAC;gBACR,OAAO;gBACP,cAAc;gBACd,KAAK;gBACL,eAAe;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,YAA0B,EAC1B,YAAoB,uBAAuB,CAAC,iBAAiB;QAE7D,IAAI,CAAC;YACH,MAAM,IAAI,GAAkB,EAAE,CAAC;YAC/B,IAAI,mBAAmB,GAAG,CAAC,CAAC;YAE5B,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;gBACtC,MAAM,YAAY,GAAG,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;gBAEhE,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;oBAC7B,qCAAqC;oBACrC,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;oBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;oBAErD,4DAA4D;oBAC5D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;oBAEhE,IAAI,CAAC,IAAI,CAAC;wBACR,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACjC,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,KAAK,EAAE,IAAI,CAAC,cAAc;wBAC1B,QAAQ,EAAE,IAAI,CAAC,iBAAiB;wBAChC,SAAS;wBACT,QAAQ;wBACR,cAAc,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,eAAe,CAAC;qBACtE,CAAC,CAAC;oBAEH,mBAAmB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,0CAA0C;YAC1C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;YAE/C,iDAAiD;YACjD,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YAEjE,OAAO,EAAE,CAAC;gBACR,IAAI;gBACJ,mBAAmB;gBACnB,eAAe;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,YAA0B;QACzC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAEjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC/B,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACnC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACrC,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACvC,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC3C,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACzC,iBAAiB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAC/C,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACvE,QAAQ,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5E,SAAS,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,eAAe,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAChF,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,yBAAyB;IACzB,+EAA+E;IAEvE,wBAAwB,CAAC,OAAwB;QACvD,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpF,CAAC;IAEO,+BAA+B,CAAC,IAAkB;QACxD,MAAM,OAAO,GAAG;YACd,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;YAC1E,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;YACnF,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;YACtF,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;SAC1F,CAAC;QAEF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACjE,CAAC;IAEO,sBAAsB,CAAC,IAAkB;QAC/C,gBAAgB;QAChB,sDAAsD;QACtD,sDAAsD;QACtD,yDAAyD;QAEzD,MAAM,eAAe,GACnB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvE,MAAM,iBAAiB,GACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhF,MAAM,mBAAmB,GACvB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnF,mEAAmE;QACnE,MAAM,SAAS,GACb,eAAe,GAAG,GAAG,GAAG,iBAAiB,GAAG,GAAG,GAAG,mBAAmB,GAAG,GAAG,CAAC;QAE9E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEO,mBAAmB,CAAC,SAAiB;QAC3C,IAAI,SAAS,IAAI,GAAG;YAAE,OAAO,UAAU,CAAC;QACxC,IAAI,SAAS,IAAI,GAAG;YAAE,OAAO,MAAM,CAAC;QACpC,IAAI,SAAS,IAAI,GAAG;YAAE,OAAO,QAAQ,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAAwB;QACnD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAkB,iBAAiB,CAAC,CAAC;YAE3E,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YACrD,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC3D,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;YAE9D,MAAM,QAAQ,GAAG,CAAC,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAEhF,IAAI,KAA2C,CAAC;YAChD,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;gBACnB,KAAK,GAAG,WAAW,CAAC;YACtB,CAAC;iBAAM,IAAI,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC;gBAC3B,KAAK,GAAG,WAAW,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,QAAQ,CAAC;YACnB,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,aAAa;gBACvB,SAAS,EAAE,cAAc;gBACzB,KAAK;aACN,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,OAAwB;QAC1D,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAErE,4BAA4B;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,SAAS,EAAE,EAAE,OAAO,EAAE;gBAC9D,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,kBAAkB;aAC9B,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,KAAqB;QAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,sDAAsD;gBACtD,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBACrD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE;oBACrE,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;oBAC1D,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;oBAClE,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;iBAC/C,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,oDAAoD;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,IAAkB;QAChD,8DAA8D;QAC9D,yDAAyD;QACzD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE9E,yBAAyB;QACzB,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QAC5D,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QAClE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACpE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QAEtE,8CAA8C;QAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QAC5E,SAAS,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;QAE9B,2BAA2B;QAC3B,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QACpD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QACtD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QAEtD,kDAAkD;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC;YAClE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;QAC1D,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,IAAkB;QACrD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACrD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,uBAAuB,CAC7B,YAA0B,EAC1B,OAAwB,EACxB,SAAiB;QAEjB,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,kCAAkC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,SAAS,GAAG,OAAO,CAAC;YAChC,eAAe,CAAC,IAAI,CAClB,eAAe,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,oDAAoD,CAClF,CAAC;QACJ,CAAC;QAED,0CAA0C;QAC1C,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YACvC,eAAe,CAAC,IAAI,CAClB,6FAA6F,CAC9F,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,IAAI,OAAO,CAAC,QAAQ,GAAG,EAAE,EAAE,CAAC;YAC1B,eAAe,CAAC,IAAI,CAClB,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAClD,CAAC;QACF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,eAAe,CAAC,IAAI,CAClB,GAAG,iBAAiB,CAAC,MAAM,0EAA0E,CACtG,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,MAAM,kBAAkB,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC1F,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,eAAe,CAAC,IAAI,CAClB,GAAG,kBAAkB,CAAC,MAAM,oGAAoG,CACjI,CAAC;QACJ,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,yBAAyB,CAC/B,IAAkB,EAClB,eAAqC;QAErC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE3D,IAAI,cAAc,GAAG,iBAAiB,cAAc,kBAAkB,CAAC;QAEvE,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC3B,cAAc,IAAI,YAAY,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACzD,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,cAAc,IAAI,cAAc,IAAI,CAAC,iBAAiB,CAAC,MAAM,sBAAsB,CAAC;QACtF,CAAC;QAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC;YACjE,cAAc,IAAI,wEAAwE,CAAC;QAC7F,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,aAAa,CAAC,KAAe;QACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC/C,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBAClB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,aAAa,CAAC,QAAgB;QACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACnD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,OAAO,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9C,CAAC;IAEO,cAAc,CAAC,cAAsB;QAC3C,oDAAoD;QACpD,oEAAoE;QACpE,+DAA+D;QAC/D,MAAM,eAAe,GAAG,cAAc,GAAG,EAAE,CAAC,CAAC,iBAAiB;QAC9D,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC,CAAC;IACvD,CAAC"}
|
|
1
|
+
{"version":3,"file":"coverage-analyzer.js","sourceRoot":"","sources":["../../../../src/domains/coverage-analysis/services/coverage-analyzer.ts"],"names":[],"mappings":"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"}
|