agentic-qe 2.7.1 → 2.7.2
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/CHANGELOG.md +105 -0
- package/README.md +2 -2
- package/dist/agents/CodeIntelligenceAgent.d.ts.map +1 -1
- package/dist/agents/CodeIntelligenceAgent.js +7 -5
- package/dist/agents/CodeIntelligenceAgent.js.map +1 -1
- package/dist/cli/commands/knowledge-graph.d.ts.map +1 -1
- package/dist/cli/commands/knowledge-graph.js +4 -2
- package/dist/cli/commands/knowledge-graph.js.map +1 -1
- package/dist/cli/commands/migrate/index.d.ts +14 -0
- package/dist/cli/commands/migrate/index.d.ts.map +1 -0
- package/dist/cli/commands/migrate/index.js +283 -0
- package/dist/cli/commands/migrate/index.js.map +1 -0
- package/dist/cli/formatters/KGOutputFormatter.d.ts.map +1 -1
- package/dist/cli/formatters/KGOutputFormatter.js +15 -6
- package/dist/cli/formatters/KGOutputFormatter.js.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/database-init.d.ts.map +1 -1
- package/dist/cli/init/database-init.js +105 -0
- package/dist/cli/init/database-init.js.map +1 -1
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts +9 -3
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts.map +1 -1
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js +41 -3
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js.map +1 -1
- package/dist/code-intelligence/service/CodeIntelligenceService.js +1 -1
- package/dist/code-intelligence/service/CodeIntelligenceService.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/learning/QLearning.d.ts +9 -1
- package/dist/learning/QLearning.d.ts.map +1 -1
- package/dist/learning/QLearning.js +50 -1
- package/dist/learning/QLearning.js.map +1 -1
- package/dist/learning/metrics/LearningMetrics.d.ts +37 -0
- package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -1
- package/dist/learning/metrics/LearningMetrics.js +73 -0
- package/dist/learning/metrics/LearningMetrics.js.map +1 -1
- package/dist/mcp/handlers/fleet-init.d.ts +10 -0
- package/dist/mcp/handlers/fleet-init.d.ts.map +1 -1
- package/dist/mcp/handlers/fleet-init.js +61 -0
- package/dist/mcp/handlers/fleet-init.js.map +1 -1
- package/dist/mcp/handlers/learning/learning-store-pattern.d.ts +13 -0
- package/dist/mcp/handlers/learning/learning-store-pattern.d.ts.map +1 -1
- package/dist/mcp/handlers/learning/learning-store-pattern.js +38 -0
- package/dist/mcp/handlers/learning/learning-store-pattern.js.map +1 -1
- package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts +89 -0
- package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts.map +1 -1
- package/dist/mcp/handlers/phase3/Phase3DomainTools.js +110 -1
- package/dist/mcp/handlers/phase3/Phase3DomainTools.js.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.d.ts +27 -1
- package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.js +188 -8
- package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server.d.ts +6 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +92 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts +13 -0
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +66 -0
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts +55 -0
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts.map +1 -1
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js +233 -0
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js.map +1 -1
- package/dist/mcp/tools/qe/quality-gates/index.d.ts +5 -2
- package/dist/mcp/tools/qe/quality-gates/index.d.ts.map +1 -1
- package/dist/mcp/tools/qe/quality-gates/index.js +10 -1
- package/dist/mcp/tools/qe/quality-gates/index.js.map +1 -1
- package/dist/mcp/tools.d.ts +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +156 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/persistence/migrations/all-migrations.d.ts +18 -0
- package/dist/persistence/migrations/all-migrations.d.ts.map +1 -0
- package/dist/persistence/migrations/all-migrations.js +624 -0
- package/dist/persistence/migrations/all-migrations.js.map +1 -0
- package/dist/persistence/migrations/index.d.ts +110 -0
- package/dist/persistence/migrations/index.d.ts.map +1 -0
- package/dist/persistence/migrations/index.js +303 -0
- package/dist/persistence/migrations/index.js.map +1 -0
- package/dist/planning/GOAPPlanner.d.ts +128 -0
- package/dist/planning/GOAPPlanner.d.ts.map +1 -0
- package/dist/planning/GOAPPlanner.js +630 -0
- package/dist/planning/GOAPPlanner.js.map +1 -0
- package/dist/planning/WorldStateBuilder.d.ts +150 -0
- package/dist/planning/WorldStateBuilder.d.ts.map +1 -0
- package/dist/planning/WorldStateBuilder.js +267 -0
- package/dist/planning/WorldStateBuilder.js.map +1 -0
- package/dist/planning/actions/fleet-actions.d.ts +78 -0
- package/dist/planning/actions/fleet-actions.d.ts.map +1 -0
- package/dist/planning/actions/fleet-actions.js +329 -0
- package/dist/planning/actions/fleet-actions.js.map +1 -0
- package/dist/planning/actions/index.d.ts +61 -0
- package/dist/planning/actions/index.d.ts.map +1 -0
- package/dist/planning/actions/index.js +159 -0
- package/dist/planning/actions/index.js.map +1 -0
- package/dist/planning/actions/orchestration-actions.d.ts +61 -0
- package/dist/planning/actions/orchestration-actions.d.ts.map +1 -0
- package/dist/planning/actions/orchestration-actions.js +395 -0
- package/dist/planning/actions/orchestration-actions.js.map +1 -0
- package/dist/planning/actions/quality-gate-actions.d.ts +160 -0
- package/dist/planning/actions/quality-gate-actions.d.ts.map +1 -0
- package/dist/planning/actions/quality-gate-actions.js +639 -0
- package/dist/planning/actions/quality-gate-actions.js.map +1 -0
- package/dist/planning/actions/test-strategy-actions.d.ts +70 -0
- package/dist/planning/actions/test-strategy-actions.d.ts.map +1 -0
- package/dist/planning/actions/test-strategy-actions.js +278 -0
- package/dist/planning/actions/test-strategy-actions.js.map +1 -0
- package/dist/planning/execution/PlanExecutor.d.ts +124 -0
- package/dist/planning/execution/PlanExecutor.d.ts.map +1 -0
- package/dist/planning/execution/PlanExecutor.js +405 -0
- package/dist/planning/execution/PlanExecutor.js.map +1 -0
- package/dist/planning/execution/index.d.ts +12 -0
- package/dist/planning/execution/index.d.ts.map +1 -0
- package/dist/planning/execution/index.js +18 -0
- package/dist/planning/execution/index.js.map +1 -0
- package/dist/planning/goals/TaskWorkflowGoals.d.ts +67 -0
- package/dist/planning/goals/TaskWorkflowGoals.d.ts.map +1 -0
- package/dist/planning/goals/TaskWorkflowGoals.js +208 -0
- package/dist/planning/goals/TaskWorkflowGoals.js.map +1 -0
- package/dist/planning/goals/index.d.ts +10 -0
- package/dist/planning/goals/index.d.ts.map +1 -0
- package/dist/planning/goals/index.js +19 -0
- package/dist/planning/goals/index.js.map +1 -0
- package/dist/planning/index.d.ts +34 -0
- package/dist/planning/index.d.ts.map +1 -0
- package/dist/planning/index.js +176 -0
- package/dist/planning/index.js.map +1 -0
- package/dist/planning/integration/GOAPQualityGateIntegration.d.ts +229 -0
- package/dist/planning/integration/GOAPQualityGateIntegration.d.ts.map +1 -0
- package/dist/planning/integration/GOAPQualityGateIntegration.js +582 -0
- package/dist/planning/integration/GOAPQualityGateIntegration.js.map +1 -0
- package/dist/planning/integration/GOAPTaskOrchestration.d.ts +165 -0
- package/dist/planning/integration/GOAPTaskOrchestration.d.ts.map +1 -0
- package/dist/planning/integration/GOAPTaskOrchestration.js +490 -0
- package/dist/planning/integration/GOAPTaskOrchestration.js.map +1 -0
- package/dist/planning/integration/index.d.ts +14 -0
- package/dist/planning/integration/index.d.ts.map +1 -0
- package/dist/planning/integration/index.js +23 -0
- package/dist/planning/integration/index.js.map +1 -0
- package/dist/planning/types.d.ts +264 -0
- package/dist/planning/types.d.ts.map +1 -0
- package/dist/planning/types.js +63 -0
- package/dist/planning/types.js.map +1 -0
- package/dist/utils/Database.d.ts.map +1 -1
- package/dist/utils/Database.js +81 -2
- package/dist/utils/Database.js.map +1 -1
- package/package.json +6 -3
|
@@ -0,0 +1,639 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Quality Gate GOAP Actions
|
|
4
|
+
*
|
|
5
|
+
* Actions for achieving quality gate goals:
|
|
6
|
+
* - Test execution and coverage
|
|
7
|
+
* - Security scanning
|
|
8
|
+
* - Performance validation
|
|
9
|
+
* - Code quality checks
|
|
10
|
+
*
|
|
11
|
+
* @module planning/actions/quality-gate-actions
|
|
12
|
+
* @version 1.0.0
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.qualityGateActions = exports.finalizeQualityGate = exports.implementCaching = exports.optimizeDatabaseQueries = exports.profileHotPaths = exports.addEdgeCaseTests = exports.targetUncoveredBranches = exports.increaseTestCoverage = exports.optimizePerformance = exports.refactorBrittleTests = exports.fixFlakyTests = exports.fixFailingTests = exports.evaluateQualityGate = exports.runSmokeTests = exports.requestGateException = exports.analyzeCodeComplexity = exports.runPerformanceBenchmark = exports.fixLowVulnerabilities = exports.fixMediumVulnerabilities = exports.fixCriticalVulnerabilities = exports.runSecurityScan = exports.generateMissingTests = exports.runIntegrationTests = exports.runUnitTests = void 0;
|
|
16
|
+
exports.getQualityGateAction = getQualityGateAction;
|
|
17
|
+
exports.getQualityGateActionsByCategory = getQualityGateActionsByCategory;
|
|
18
|
+
/**
|
|
19
|
+
* Run unit tests action (MEASUREMENT ACTION)
|
|
20
|
+
*
|
|
21
|
+
* This action MEASURES the current state - it does NOT improve metrics.
|
|
22
|
+
* It sets measurement flags that enable improvement actions to run.
|
|
23
|
+
* Can only run once (precondition: not already measured).
|
|
24
|
+
*/
|
|
25
|
+
exports.runUnitTests = {
|
|
26
|
+
id: 'qg-run-unit-tests',
|
|
27
|
+
name: 'Run Unit Tests',
|
|
28
|
+
description: 'Execute unit test suite to measure current test pass rate and coverage',
|
|
29
|
+
agentType: 'qe-test-executor',
|
|
30
|
+
preconditions: {
|
|
31
|
+
'resources.timeRemaining': { gte: 60 },
|
|
32
|
+
'resources.parallelSlots': { gte: 1 },
|
|
33
|
+
'quality.testsMeasured': { eq: false } // Only run if not already measured
|
|
34
|
+
},
|
|
35
|
+
effects: {
|
|
36
|
+
'quality.testsMeasured': { set: true }, // Flag: tests have been run
|
|
37
|
+
'coverage.measured': { set: true }, // Flag: coverage is known
|
|
38
|
+
'resources.timeRemaining': { decrease: 120 }
|
|
39
|
+
},
|
|
40
|
+
cost: 1.0,
|
|
41
|
+
durationEstimate: 120000,
|
|
42
|
+
successRate: 0.95,
|
|
43
|
+
executionCount: 0,
|
|
44
|
+
category: 'test'
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Run integration tests action (MEASUREMENT ACTION)
|
|
48
|
+
*
|
|
49
|
+
* Measures integration test pass rate. Sets integration testing flag.
|
|
50
|
+
*/
|
|
51
|
+
exports.runIntegrationTests = {
|
|
52
|
+
id: 'qg-run-integration-tests',
|
|
53
|
+
name: 'Run Integration Tests',
|
|
54
|
+
description: 'Execute integration test suite to verify component interactions',
|
|
55
|
+
agentType: 'qe-integration-tester',
|
|
56
|
+
preconditions: {
|
|
57
|
+
'resources.timeRemaining': { gte: 180 },
|
|
58
|
+
'resources.parallelSlots': { gte: 1 },
|
|
59
|
+
'quality.testsMeasured': { eq: true }, // Unit tests must run first
|
|
60
|
+
'quality.integrationTested': { eq: false } // Only run once
|
|
61
|
+
},
|
|
62
|
+
effects: {
|
|
63
|
+
'quality.integrationTested': { set: true },
|
|
64
|
+
'quality.criticalPathTested': { set: true },
|
|
65
|
+
'resources.timeRemaining': { decrease: 300 }
|
|
66
|
+
},
|
|
67
|
+
cost: 1.5,
|
|
68
|
+
durationEstimate: 300000,
|
|
69
|
+
successRate: 0.90,
|
|
70
|
+
executionCount: 0,
|
|
71
|
+
category: 'test'
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Generate missing tests action (IMPROVEMENT ACTION)
|
|
75
|
+
*
|
|
76
|
+
* Requires coverage to have been measured first.
|
|
77
|
+
*/
|
|
78
|
+
exports.generateMissingTests = {
|
|
79
|
+
id: 'qg-generate-tests',
|
|
80
|
+
name: 'Generate Missing Tests',
|
|
81
|
+
description: 'AI-powered test generation for uncovered code paths',
|
|
82
|
+
agentType: 'qe-test-generator',
|
|
83
|
+
preconditions: {
|
|
84
|
+
'coverage.measured': { eq: true }, // Coverage must be measured first
|
|
85
|
+
'coverage.line': { lt: 80 }, // Only if coverage is low
|
|
86
|
+
'resources.timeRemaining': { gte: 300 }
|
|
87
|
+
},
|
|
88
|
+
effects: {
|
|
89
|
+
'coverage.line': { increase: 15 },
|
|
90
|
+
'coverage.branch': { increase: 10 },
|
|
91
|
+
'resources.timeRemaining': { decrease: 300 }
|
|
92
|
+
},
|
|
93
|
+
cost: 2.0,
|
|
94
|
+
durationEstimate: 300000, // 5 minutes
|
|
95
|
+
successRate: 0.85,
|
|
96
|
+
executionCount: 0,
|
|
97
|
+
category: 'test'
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Run security scan action (MEASUREMENT ACTION)
|
|
101
|
+
*
|
|
102
|
+
* Measures security vulnerabilities. Sets measurement flag.
|
|
103
|
+
* Can only run once - improvement actions require this to run first.
|
|
104
|
+
*/
|
|
105
|
+
exports.runSecurityScan = {
|
|
106
|
+
id: 'qg-security-scan',
|
|
107
|
+
name: 'Run Security Scan',
|
|
108
|
+
description: 'SAST/DAST security vulnerability scanning',
|
|
109
|
+
agentType: 'qe-security-scanner',
|
|
110
|
+
preconditions: {
|
|
111
|
+
'resources.timeRemaining': { gte: 120 },
|
|
112
|
+
'quality.securityMeasured': { eq: false } // Only run if not already measured
|
|
113
|
+
},
|
|
114
|
+
effects: {
|
|
115
|
+
'quality.securityMeasured': { set: true }, // Flag: security has been scanned
|
|
116
|
+
'resources.timeRemaining': { decrease: 180 }
|
|
117
|
+
},
|
|
118
|
+
cost: 1.2,
|
|
119
|
+
durationEstimate: 180000, // 3 minutes
|
|
120
|
+
successRate: 0.98,
|
|
121
|
+
executionCount: 0,
|
|
122
|
+
category: 'security'
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Fix critical vulnerabilities action (IMPROVEMENT ACTION)
|
|
126
|
+
*
|
|
127
|
+
* Requires security scan to have been run first.
|
|
128
|
+
*/
|
|
129
|
+
exports.fixCriticalVulnerabilities = {
|
|
130
|
+
id: 'qg-fix-critical-vulns',
|
|
131
|
+
name: 'Fix Critical Vulnerabilities',
|
|
132
|
+
description: 'Auto-remediate critical security issues',
|
|
133
|
+
agentType: 'qe-security-scanner',
|
|
134
|
+
preconditions: {
|
|
135
|
+
'quality.securityMeasured': { eq: true }, // Security scan must run first
|
|
136
|
+
'quality.securityScore': { lt: 75 }, // Has security issues
|
|
137
|
+
'resources.timeRemaining': { gte: 600 }
|
|
138
|
+
},
|
|
139
|
+
effects: {
|
|
140
|
+
'quality.securityScore': { increase: 25 },
|
|
141
|
+
'resources.timeRemaining': { decrease: 600 }
|
|
142
|
+
},
|
|
143
|
+
cost: 3.0,
|
|
144
|
+
durationEstimate: 600000, // 10 minutes
|
|
145
|
+
successRate: 0.75,
|
|
146
|
+
executionCount: 0,
|
|
147
|
+
category: 'security'
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Fix medium vulnerabilities action (IMPROVEMENT ACTION)
|
|
151
|
+
* Works on systems with medium-range security scores
|
|
152
|
+
*/
|
|
153
|
+
exports.fixMediumVulnerabilities = {
|
|
154
|
+
id: 'qg-fix-medium-vulns',
|
|
155
|
+
name: 'Fix Medium Vulnerabilities',
|
|
156
|
+
description: 'Remediate medium-severity security issues',
|
|
157
|
+
agentType: 'qe-security-scanner',
|
|
158
|
+
preconditions: {
|
|
159
|
+
'quality.securityMeasured': { eq: true }, // Security scan must run first
|
|
160
|
+
'quality.securityScore': { lt: 90 }, // Still has issues to fix
|
|
161
|
+
'resources.timeRemaining': { gte: 400 }
|
|
162
|
+
},
|
|
163
|
+
effects: {
|
|
164
|
+
'quality.securityScore': { increase: 15 },
|
|
165
|
+
'resources.timeRemaining': { decrease: 400 }
|
|
166
|
+
},
|
|
167
|
+
cost: 2.0,
|
|
168
|
+
durationEstimate: 400000, // ~7 minutes
|
|
169
|
+
successRate: 0.85,
|
|
170
|
+
executionCount: 0,
|
|
171
|
+
category: 'security'
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Fix low vulnerabilities action (IMPROVEMENT ACTION)
|
|
175
|
+
* Works on systems with higher security scores needing final polish
|
|
176
|
+
*/
|
|
177
|
+
exports.fixLowVulnerabilities = {
|
|
178
|
+
id: 'qg-fix-low-vulns',
|
|
179
|
+
name: 'Fix Low Vulnerabilities',
|
|
180
|
+
description: 'Clean up low-severity security issues',
|
|
181
|
+
agentType: 'qe-security-scanner',
|
|
182
|
+
preconditions: {
|
|
183
|
+
'quality.securityMeasured': { eq: true }, // Security scan must run first
|
|
184
|
+
'quality.securityScore': { lt: 95 },
|
|
185
|
+
'resources.timeRemaining': { gte: 300 }
|
|
186
|
+
},
|
|
187
|
+
effects: {
|
|
188
|
+
'quality.securityScore': { increase: 10 },
|
|
189
|
+
'resources.timeRemaining': { decrease: 300 }
|
|
190
|
+
},
|
|
191
|
+
cost: 1.5,
|
|
192
|
+
durationEstimate: 300000, // 5 minutes
|
|
193
|
+
successRate: 0.90,
|
|
194
|
+
executionCount: 0,
|
|
195
|
+
category: 'security'
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Run performance benchmark action (MEASUREMENT ACTION)
|
|
199
|
+
*
|
|
200
|
+
* Measures performance metrics. Sets measurement flag.
|
|
201
|
+
* Improvement actions require this to run first.
|
|
202
|
+
*/
|
|
203
|
+
exports.runPerformanceBenchmark = {
|
|
204
|
+
id: 'qg-performance-benchmark',
|
|
205
|
+
name: 'Run Performance Benchmark',
|
|
206
|
+
description: 'Execute performance tests and measure metrics',
|
|
207
|
+
agentType: 'qe-performance-tester',
|
|
208
|
+
preconditions: {
|
|
209
|
+
'resources.timeRemaining': { gte: 300 },
|
|
210
|
+
'quality.testsMeasured': { eq: true }, // Tests must run first
|
|
211
|
+
'quality.performanceMeasured': { eq: false } // Only run if not already measured
|
|
212
|
+
},
|
|
213
|
+
effects: {
|
|
214
|
+
'quality.performanceMeasured': { set: true }, // Flag: performance has been measured
|
|
215
|
+
'resources.timeRemaining': { decrease: 300 }
|
|
216
|
+
},
|
|
217
|
+
cost: 1.5,
|
|
218
|
+
durationEstimate: 300000, // 5 minutes
|
|
219
|
+
successRate: 0.92,
|
|
220
|
+
executionCount: 0,
|
|
221
|
+
category: 'performance'
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* Analyze code complexity action (MEASUREMENT ACTION)
|
|
225
|
+
*
|
|
226
|
+
* Measures code complexity and technical debt. Sets measurement flag.
|
|
227
|
+
*/
|
|
228
|
+
exports.analyzeCodeComplexity = {
|
|
229
|
+
id: 'qg-code-complexity',
|
|
230
|
+
name: 'Analyze Code Complexity',
|
|
231
|
+
description: 'Measure cyclomatic complexity and technical debt',
|
|
232
|
+
agentType: 'qe-code-complexity',
|
|
233
|
+
preconditions: {
|
|
234
|
+
'resources.timeRemaining': { gte: 60 },
|
|
235
|
+
'quality.complexityMeasured': { eq: false } // Only run if not already measured
|
|
236
|
+
},
|
|
237
|
+
effects: {
|
|
238
|
+
'quality.complexityMeasured': { set: true }, // Flag: complexity has been analyzed
|
|
239
|
+
'resources.timeRemaining': { decrease: 90 }
|
|
240
|
+
},
|
|
241
|
+
cost: 0.8,
|
|
242
|
+
durationEstimate: 90000, // 1.5 minutes
|
|
243
|
+
successRate: 0.98,
|
|
244
|
+
executionCount: 0,
|
|
245
|
+
category: 'analysis'
|
|
246
|
+
};
|
|
247
|
+
/**
|
|
248
|
+
* Request quality gate exception action
|
|
249
|
+
*/
|
|
250
|
+
exports.requestGateException = {
|
|
251
|
+
id: 'qg-request-exception',
|
|
252
|
+
name: 'Request Gate Exception',
|
|
253
|
+
description: 'Request temporary exception for quality gate failure',
|
|
254
|
+
agentType: 'qe-quality-gate',
|
|
255
|
+
preconditions: {
|
|
256
|
+
'quality.gateStatus': { eq: 'failed' },
|
|
257
|
+
'context.riskLevel': { ne: 'critical' } // Cannot except critical
|
|
258
|
+
},
|
|
259
|
+
effects: {
|
|
260
|
+
'quality.gateStatus': { set: 'exception_requested' }
|
|
261
|
+
},
|
|
262
|
+
cost: 5.0, // High cost - discourage exceptions
|
|
263
|
+
durationEstimate: 5000,
|
|
264
|
+
successRate: 0.60, // Often rejected
|
|
265
|
+
executionCount: 0,
|
|
266
|
+
category: 'process'
|
|
267
|
+
};
|
|
268
|
+
/**
|
|
269
|
+
* Run smoke tests action (fast validation)
|
|
270
|
+
*/
|
|
271
|
+
exports.runSmokeTests = {
|
|
272
|
+
id: 'qg-smoke-tests',
|
|
273
|
+
name: 'Run Smoke Tests',
|
|
274
|
+
description: 'Quick sanity check for critical paths',
|
|
275
|
+
agentType: 'qe-test-executor',
|
|
276
|
+
preconditions: {
|
|
277
|
+
'resources.timeRemaining': { gte: 30 }
|
|
278
|
+
},
|
|
279
|
+
effects: {
|
|
280
|
+
'quality.smokeTestsPassing': { set: true },
|
|
281
|
+
'resources.timeRemaining': { decrease: 45 }
|
|
282
|
+
},
|
|
283
|
+
cost: 0.5, // Low cost - quick check
|
|
284
|
+
durationEstimate: 45000, // 45 seconds
|
|
285
|
+
successRate: 0.97,
|
|
286
|
+
executionCount: 0,
|
|
287
|
+
category: 'test'
|
|
288
|
+
};
|
|
289
|
+
/**
|
|
290
|
+
* Evaluate quality gate action (MEASUREMENT ACTION)
|
|
291
|
+
*
|
|
292
|
+
* Evaluates all quality metrics against thresholds.
|
|
293
|
+
* Requires all measurements to be complete first.
|
|
294
|
+
*/
|
|
295
|
+
exports.evaluateQualityGate = {
|
|
296
|
+
id: 'qg-evaluate-gate',
|
|
297
|
+
name: 'Evaluate Quality Gate',
|
|
298
|
+
description: 'Final quality gate evaluation against thresholds',
|
|
299
|
+
agentType: 'qe-quality-gate',
|
|
300
|
+
preconditions: {
|
|
301
|
+
'quality.testsMeasured': { eq: true }, // Tests must be measured
|
|
302
|
+
'quality.securityMeasured': { eq: true }, // Security must be checked
|
|
303
|
+
'quality.performanceMeasured': { eq: true }, // Performance must be measured
|
|
304
|
+
'quality.gateEvaluated': { eq: false } // Only evaluate once
|
|
305
|
+
},
|
|
306
|
+
effects: {
|
|
307
|
+
'quality.gateEvaluated': { set: true } // Flag: gate has been evaluated
|
|
308
|
+
},
|
|
309
|
+
cost: 0.3,
|
|
310
|
+
durationEstimate: 10000,
|
|
311
|
+
successRate: 0.99,
|
|
312
|
+
executionCount: 0,
|
|
313
|
+
category: 'process'
|
|
314
|
+
};
|
|
315
|
+
/**
|
|
316
|
+
* Fix failing tests action (IMPROVEMENT ACTION)
|
|
317
|
+
*
|
|
318
|
+
* Requires tests to have been run first.
|
|
319
|
+
*/
|
|
320
|
+
exports.fixFailingTests = {
|
|
321
|
+
id: 'qg-fix-failing-tests',
|
|
322
|
+
name: 'Fix Failing Tests',
|
|
323
|
+
description: 'Analyze and fix failing test cases',
|
|
324
|
+
agentType: 'qe-test-writer',
|
|
325
|
+
preconditions: {
|
|
326
|
+
'quality.testsMeasured': { eq: true }, // Tests must be run first
|
|
327
|
+
'quality.testsPassing': { lt: 95 }, // Tests need fixing
|
|
328
|
+
'resources.timeRemaining': { gte: 300 }
|
|
329
|
+
},
|
|
330
|
+
effects: {
|
|
331
|
+
'quality.testsPassing': { increase: 10 },
|
|
332
|
+
'resources.timeRemaining': { decrease: 300 }
|
|
333
|
+
},
|
|
334
|
+
cost: 2.5,
|
|
335
|
+
durationEstimate: 300000, // 5 minutes
|
|
336
|
+
successRate: 0.80,
|
|
337
|
+
executionCount: 0,
|
|
338
|
+
category: 'test'
|
|
339
|
+
};
|
|
340
|
+
/**
|
|
341
|
+
* Fix flaky tests action (IMPROVEMENT ACTION)
|
|
342
|
+
*
|
|
343
|
+
* Requires tests to have been run first.
|
|
344
|
+
*/
|
|
345
|
+
exports.fixFlakyTests = {
|
|
346
|
+
id: 'qg-fix-flaky-tests',
|
|
347
|
+
name: 'Fix Flaky Tests',
|
|
348
|
+
description: 'Identify and stabilize flaky test cases',
|
|
349
|
+
agentType: 'qe-flaky-test-hunter',
|
|
350
|
+
preconditions: {
|
|
351
|
+
'quality.testsMeasured': { eq: true }, // Tests must be run first
|
|
352
|
+
'quality.testsPassing': { lt: 98 },
|
|
353
|
+
'resources.timeRemaining': { gte: 600 }
|
|
354
|
+
},
|
|
355
|
+
effects: {
|
|
356
|
+
'quality.testsPassing': { increase: 5 },
|
|
357
|
+
'resources.timeRemaining': { decrease: 600 }
|
|
358
|
+
},
|
|
359
|
+
cost: 3.5,
|
|
360
|
+
durationEstimate: 600000, // 10 minutes
|
|
361
|
+
successRate: 0.75,
|
|
362
|
+
executionCount: 0,
|
|
363
|
+
category: 'test'
|
|
364
|
+
};
|
|
365
|
+
/**
|
|
366
|
+
* Refactor brittle tests action (IMPROVEMENT ACTION)
|
|
367
|
+
* Alternative approach to improving test pass rate
|
|
368
|
+
*/
|
|
369
|
+
exports.refactorBrittleTests = {
|
|
370
|
+
id: 'qg-refactor-brittle-tests',
|
|
371
|
+
name: 'Refactor Brittle Tests',
|
|
372
|
+
description: 'Identify and refactor brittle/unreliable tests',
|
|
373
|
+
agentType: 'qe-test-writer',
|
|
374
|
+
preconditions: {
|
|
375
|
+
'quality.testsMeasured': { eq: true }, // Tests must be run first
|
|
376
|
+
'quality.testsPassing': { lt: 92 },
|
|
377
|
+
'resources.timeRemaining': { gte: 450 }
|
|
378
|
+
},
|
|
379
|
+
effects: {
|
|
380
|
+
'quality.testsPassing': { increase: 8 },
|
|
381
|
+
'resources.timeRemaining': { decrease: 450 }
|
|
382
|
+
},
|
|
383
|
+
cost: 2.8,
|
|
384
|
+
durationEstimate: 450000, // 7.5 minutes
|
|
385
|
+
successRate: 0.82,
|
|
386
|
+
executionCount: 0,
|
|
387
|
+
category: 'test'
|
|
388
|
+
};
|
|
389
|
+
/**
|
|
390
|
+
* Optimize performance action (IMPROVEMENT ACTION)
|
|
391
|
+
*
|
|
392
|
+
* Requires performance benchmark to have been run first.
|
|
393
|
+
*/
|
|
394
|
+
exports.optimizePerformance = {
|
|
395
|
+
id: 'qg-optimize-performance',
|
|
396
|
+
name: 'Optimize Performance',
|
|
397
|
+
description: 'Profile and optimize critical performance paths',
|
|
398
|
+
agentType: 'qe-performance-tester',
|
|
399
|
+
preconditions: {
|
|
400
|
+
'quality.performanceMeasured': { eq: true }, // Performance must be measured first
|
|
401
|
+
'quality.performanceScore': { lt: 80 },
|
|
402
|
+
'resources.timeRemaining': { gte: 600 }
|
|
403
|
+
},
|
|
404
|
+
effects: {
|
|
405
|
+
'quality.performanceScore': { increase: 20 },
|
|
406
|
+
'resources.timeRemaining': { decrease: 600 }
|
|
407
|
+
},
|
|
408
|
+
cost: 4.0,
|
|
409
|
+
durationEstimate: 600000, // 10 minutes
|
|
410
|
+
successRate: 0.70,
|
|
411
|
+
executionCount: 0,
|
|
412
|
+
category: 'performance'
|
|
413
|
+
};
|
|
414
|
+
/**
|
|
415
|
+
* Increase test coverage action (IMPROVEMENT ACTION)
|
|
416
|
+
* Alternative to generateMissingTests
|
|
417
|
+
*/
|
|
418
|
+
exports.increaseTestCoverage = {
|
|
419
|
+
id: 'qg-increase-coverage',
|
|
420
|
+
name: 'Increase Test Coverage',
|
|
421
|
+
description: 'Target uncovered code paths with new tests',
|
|
422
|
+
agentType: 'qe-coverage-analyzer',
|
|
423
|
+
preconditions: {
|
|
424
|
+
'coverage.measured': { eq: true }, // Coverage must be measured first
|
|
425
|
+
'coverage.line': { lt: 85 },
|
|
426
|
+
'resources.timeRemaining': { gte: 480 }
|
|
427
|
+
},
|
|
428
|
+
effects: {
|
|
429
|
+
'coverage.line': { increase: 12 },
|
|
430
|
+
'coverage.branch': { increase: 8 },
|
|
431
|
+
'resources.timeRemaining': { decrease: 480 }
|
|
432
|
+
},
|
|
433
|
+
cost: 2.8,
|
|
434
|
+
durationEstimate: 480000, // 8 minutes
|
|
435
|
+
successRate: 0.82,
|
|
436
|
+
executionCount: 0,
|
|
437
|
+
category: 'test'
|
|
438
|
+
};
|
|
439
|
+
/**
|
|
440
|
+
* Target uncovered branches action (IMPROVEMENT ACTION)
|
|
441
|
+
* Alternative path for branch coverage improvement
|
|
442
|
+
*/
|
|
443
|
+
exports.targetUncoveredBranches = {
|
|
444
|
+
id: 'qg-target-branches',
|
|
445
|
+
name: 'Target Uncovered Branches',
|
|
446
|
+
description: 'Generate tests specifically for uncovered branches',
|
|
447
|
+
agentType: 'qe-coverage-analyzer',
|
|
448
|
+
preconditions: {
|
|
449
|
+
'coverage.measured': { eq: true }, // Coverage must be measured first
|
|
450
|
+
'coverage.branch': { lt: 75 },
|
|
451
|
+
'resources.timeRemaining': { gte: 400 }
|
|
452
|
+
},
|
|
453
|
+
effects: {
|
|
454
|
+
'coverage.branch': { increase: 12 },
|
|
455
|
+
'coverage.line': { increase: 8 },
|
|
456
|
+
'resources.timeRemaining': { decrease: 400 }
|
|
457
|
+
},
|
|
458
|
+
cost: 2.5,
|
|
459
|
+
durationEstimate: 400000, // ~7 minutes
|
|
460
|
+
successRate: 0.80,
|
|
461
|
+
executionCount: 0,
|
|
462
|
+
category: 'test'
|
|
463
|
+
};
|
|
464
|
+
/**
|
|
465
|
+
* Add edge case tests action (IMPROVEMENT ACTION)
|
|
466
|
+
* Thorough coverage boost through edge case testing
|
|
467
|
+
*/
|
|
468
|
+
exports.addEdgeCaseTests = {
|
|
469
|
+
id: 'qg-edge-case-tests',
|
|
470
|
+
name: 'Add Edge Case Tests',
|
|
471
|
+
description: 'Generate comprehensive edge case tests for boundary conditions',
|
|
472
|
+
agentType: 'qe-test-generator',
|
|
473
|
+
preconditions: {
|
|
474
|
+
'coverage.measured': { eq: true }, // Coverage must be measured first
|
|
475
|
+
'coverage.line': { lt: 90 },
|
|
476
|
+
'resources.timeRemaining': { gte: 600 }
|
|
477
|
+
},
|
|
478
|
+
effects: {
|
|
479
|
+
'coverage.line': { increase: 10 },
|
|
480
|
+
'coverage.branch': { increase: 15 },
|
|
481
|
+
'resources.timeRemaining': { decrease: 600 }
|
|
482
|
+
},
|
|
483
|
+
cost: 3.5,
|
|
484
|
+
durationEstimate: 600000, // 10 minutes
|
|
485
|
+
successRate: 0.78,
|
|
486
|
+
executionCount: 0,
|
|
487
|
+
category: 'test'
|
|
488
|
+
};
|
|
489
|
+
/**
|
|
490
|
+
* Profile hot paths action (IMPROVEMENT ACTION)
|
|
491
|
+
* Quick performance analysis with modest improvement
|
|
492
|
+
*/
|
|
493
|
+
exports.profileHotPaths = {
|
|
494
|
+
id: 'qg-profile-hot-paths',
|
|
495
|
+
name: 'Profile Hot Paths',
|
|
496
|
+
description: 'Analyze and optimize critical code paths',
|
|
497
|
+
agentType: 'qe-performance-tester',
|
|
498
|
+
preconditions: {
|
|
499
|
+
'quality.performanceMeasured': { eq: true }, // Performance must be measured first
|
|
500
|
+
'quality.performanceScore': { lt: 85 },
|
|
501
|
+
'resources.timeRemaining': { gte: 300 }
|
|
502
|
+
},
|
|
503
|
+
effects: {
|
|
504
|
+
'quality.performanceScore': { increase: 12 },
|
|
505
|
+
'resources.timeRemaining': { decrease: 300 }
|
|
506
|
+
},
|
|
507
|
+
cost: 2.2,
|
|
508
|
+
durationEstimate: 300000, // 5 minutes
|
|
509
|
+
successRate: 0.85,
|
|
510
|
+
executionCount: 0,
|
|
511
|
+
category: 'performance'
|
|
512
|
+
};
|
|
513
|
+
/**
|
|
514
|
+
* Optimize database queries action (IMPROVEMENT ACTION)
|
|
515
|
+
* Specific performance optimization for data layer
|
|
516
|
+
*/
|
|
517
|
+
exports.optimizeDatabaseQueries = {
|
|
518
|
+
id: 'qg-optimize-db-queries',
|
|
519
|
+
name: 'Optimize Database Queries',
|
|
520
|
+
description: 'Profile and optimize slow database queries',
|
|
521
|
+
agentType: 'qe-performance-tester',
|
|
522
|
+
preconditions: {
|
|
523
|
+
'quality.performanceMeasured': { eq: true }, // Performance must be measured first
|
|
524
|
+
'quality.performanceScore': { lt: 90 },
|
|
525
|
+
'resources.timeRemaining': { gte: 450 }
|
|
526
|
+
},
|
|
527
|
+
effects: {
|
|
528
|
+
'quality.performanceScore': { increase: 15 },
|
|
529
|
+
'resources.timeRemaining': { decrease: 450 }
|
|
530
|
+
},
|
|
531
|
+
cost: 3.0,
|
|
532
|
+
durationEstimate: 450000, // 7.5 minutes
|
|
533
|
+
successRate: 0.80,
|
|
534
|
+
executionCount: 0,
|
|
535
|
+
category: 'performance'
|
|
536
|
+
};
|
|
537
|
+
/**
|
|
538
|
+
* Implement caching optimization action (IMPROVEMENT ACTION)
|
|
539
|
+
* Performance boost through caching strategies
|
|
540
|
+
*/
|
|
541
|
+
exports.implementCaching = {
|
|
542
|
+
id: 'qg-implement-caching',
|
|
543
|
+
name: 'Implement Caching',
|
|
544
|
+
description: 'Add or optimize caching for frequently accessed data',
|
|
545
|
+
agentType: 'qe-performance-tester',
|
|
546
|
+
preconditions: {
|
|
547
|
+
'quality.performanceMeasured': { eq: true }, // Performance must be measured first
|
|
548
|
+
'quality.performanceScore': { lt: 88 },
|
|
549
|
+
'resources.timeRemaining': { gte: 500 }
|
|
550
|
+
},
|
|
551
|
+
effects: {
|
|
552
|
+
'quality.performanceScore': { increase: 18 },
|
|
553
|
+
'resources.timeRemaining': { decrease: 500 }
|
|
554
|
+
},
|
|
555
|
+
cost: 3.2,
|
|
556
|
+
durationEstimate: 500000, // ~8 minutes
|
|
557
|
+
successRate: 0.82,
|
|
558
|
+
executionCount: 0,
|
|
559
|
+
category: 'performance'
|
|
560
|
+
};
|
|
561
|
+
/**
|
|
562
|
+
* Finalize quality gate action (TERMINAL ACTION)
|
|
563
|
+
*
|
|
564
|
+
* This action validates that all quality criteria are met and
|
|
565
|
+
* sets the gate status to 'passed'. It's the terminal action
|
|
566
|
+
* for achieving PASS_QUALITY_GATE goal.
|
|
567
|
+
*
|
|
568
|
+
* Requires gate to have been evaluated first.
|
|
569
|
+
*/
|
|
570
|
+
exports.finalizeQualityGate = {
|
|
571
|
+
id: 'qg-finalize-gate',
|
|
572
|
+
name: 'Finalize Quality Gate',
|
|
573
|
+
description: 'Validate all quality criteria and mark gate as passed',
|
|
574
|
+
agentType: 'qe-quality-gate',
|
|
575
|
+
preconditions: {
|
|
576
|
+
// Gate must have been evaluated first
|
|
577
|
+
'quality.gateEvaluated': { eq: true },
|
|
578
|
+
// All quality criteria must be met before finalizing
|
|
579
|
+
'quality.testsPassing': { gte: 95 },
|
|
580
|
+
'coverage.line': { gte: 80 },
|
|
581
|
+
'coverage.branch': { gte: 70 },
|
|
582
|
+
'quality.securityScore': { gte: 70 },
|
|
583
|
+
'quality.performanceScore': { gte: 70 }
|
|
584
|
+
},
|
|
585
|
+
effects: {
|
|
586
|
+
'quality.gateStatus': { set: 'passed' }
|
|
587
|
+
},
|
|
588
|
+
cost: 0.1, // Very low cost - just validation
|
|
589
|
+
durationEstimate: 5000, // 5 seconds
|
|
590
|
+
successRate: 0.99,
|
|
591
|
+
executionCount: 0,
|
|
592
|
+
category: 'process'
|
|
593
|
+
};
|
|
594
|
+
/**
|
|
595
|
+
* All quality gate actions
|
|
596
|
+
*/
|
|
597
|
+
exports.qualityGateActions = [
|
|
598
|
+
// Test actions
|
|
599
|
+
exports.runUnitTests,
|
|
600
|
+
exports.runIntegrationTests,
|
|
601
|
+
exports.generateMissingTests,
|
|
602
|
+
exports.fixFailingTests,
|
|
603
|
+
exports.fixFlakyTests,
|
|
604
|
+
exports.runSmokeTests,
|
|
605
|
+
exports.increaseTestCoverage,
|
|
606
|
+
exports.targetUncoveredBranches,
|
|
607
|
+
exports.addEdgeCaseTests,
|
|
608
|
+
exports.refactorBrittleTests,
|
|
609
|
+
// Security actions
|
|
610
|
+
exports.runSecurityScan,
|
|
611
|
+
exports.fixCriticalVulnerabilities,
|
|
612
|
+
exports.fixMediumVulnerabilities,
|
|
613
|
+
exports.fixLowVulnerabilities,
|
|
614
|
+
// Performance actions
|
|
615
|
+
exports.runPerformanceBenchmark,
|
|
616
|
+
exports.optimizePerformance,
|
|
617
|
+
exports.profileHotPaths,
|
|
618
|
+
exports.optimizeDatabaseQueries,
|
|
619
|
+
exports.implementCaching,
|
|
620
|
+
// Analysis actions
|
|
621
|
+
exports.analyzeCodeComplexity,
|
|
622
|
+
// Process actions
|
|
623
|
+
exports.requestGateException,
|
|
624
|
+
exports.evaluateQualityGate,
|
|
625
|
+
exports.finalizeQualityGate
|
|
626
|
+
];
|
|
627
|
+
/**
|
|
628
|
+
* Get quality gate action by ID
|
|
629
|
+
*/
|
|
630
|
+
function getQualityGateAction(id) {
|
|
631
|
+
return exports.qualityGateActions.find(a => a.id === id);
|
|
632
|
+
}
|
|
633
|
+
/**
|
|
634
|
+
* Get actions by category
|
|
635
|
+
*/
|
|
636
|
+
function getQualityGateActionsByCategory(category) {
|
|
637
|
+
return exports.qualityGateActions.filter(a => a.category === category);
|
|
638
|
+
}
|
|
639
|
+
//# sourceMappingURL=quality-gate-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-gate-actions.js","sourceRoot":"","sources":["../../../src/planning/actions/quality-gate-actions.ts"],"names":[],"mappings":"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"}
|