agentic-qe 2.7.1 → 2.7.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/CHANGELOG.md +179 -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 +110 -2
- package/dist/learning/QLearning.d.ts.map +1 -1
- package/dist/learning/QLearning.js +218 -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 +170 -0
- package/dist/planning/GOAPPlanner.d.ts.map +1 -0
- package/dist/planning/GOAPPlanner.js +781 -0
- package/dist/planning/GOAPPlanner.js.map +1 -0
- package/dist/planning/PlanLearning.d.ts +184 -0
- package/dist/planning/PlanLearning.d.ts.map +1 -0
- package/dist/planning/PlanLearning.js +526 -0
- package/dist/planning/PlanLearning.js.map +1 -0
- package/dist/planning/PlanSimilarity.d.ts +148 -0
- package/dist/planning/PlanSimilarity.d.ts.map +1 -0
- package/dist/planning/PlanSimilarity.js +463 -0
- package/dist/planning/PlanSimilarity.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 +223 -0
- package/dist/planning/execution/PlanExecutor.d.ts.map +1 -0
- package/dist/planning/execution/PlanExecutor.js +978 -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 +36 -0
- package/dist/planning/index.d.ts.map +1 -0
- package/dist/planning/index.js +187 -0
- package/dist/planning/index.js.map +1 -0
- package/dist/planning/integration/GOAPQualityGateIntegration.d.ts +235 -0
- package/dist/planning/integration/GOAPQualityGateIntegration.d.ts.map +1 -0
- package/dist/planning/integration/GOAPQualityGateIntegration.js +589 -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 +266 -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,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Strategy GOAP Actions
|
|
3
|
+
*
|
|
4
|
+
* Actions for test strategy planning:
|
|
5
|
+
* - Impact analysis
|
|
6
|
+
* - Test prioritization
|
|
7
|
+
* - Coverage optimization
|
|
8
|
+
* - Risk-based test selection
|
|
9
|
+
*
|
|
10
|
+
* @module planning/actions/test-strategy-actions
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
import { GOAPAction } from '../types';
|
|
14
|
+
/**
|
|
15
|
+
* Analyze change impact action
|
|
16
|
+
*/
|
|
17
|
+
export declare const analyzeChangeImpact: GOAPAction;
|
|
18
|
+
/**
|
|
19
|
+
* Prioritize tests by risk action
|
|
20
|
+
*/
|
|
21
|
+
export declare const prioritizeTestsByRisk: GOAPAction;
|
|
22
|
+
/**
|
|
23
|
+
* Select minimal test suite action
|
|
24
|
+
*/
|
|
25
|
+
export declare const selectMinimalTestSuite: GOAPAction;
|
|
26
|
+
/**
|
|
27
|
+
* Analyze coverage gaps action
|
|
28
|
+
*/
|
|
29
|
+
export declare const analyzeCoverageGaps: GOAPAction;
|
|
30
|
+
/**
|
|
31
|
+
* Generate targeted tests action
|
|
32
|
+
*/
|
|
33
|
+
export declare const generateTargetedTests: GOAPAction;
|
|
34
|
+
/**
|
|
35
|
+
* Run critical path tests action
|
|
36
|
+
*/
|
|
37
|
+
export declare const runCriticalPathTests: GOAPAction;
|
|
38
|
+
/**
|
|
39
|
+
* Detect flaky tests action
|
|
40
|
+
*/
|
|
41
|
+
export declare const detectFlakyTests: GOAPAction;
|
|
42
|
+
/**
|
|
43
|
+
* Stabilize flaky tests action
|
|
44
|
+
*/
|
|
45
|
+
export declare const stabilizeFlakyTests: GOAPAction;
|
|
46
|
+
/**
|
|
47
|
+
* Generate BDD scenarios action
|
|
48
|
+
*/
|
|
49
|
+
export declare const generateBDDScenarios: GOAPAction;
|
|
50
|
+
/**
|
|
51
|
+
* Optimize parallel execution action
|
|
52
|
+
*/
|
|
53
|
+
export declare const optimizeParallelExecution: GOAPAction;
|
|
54
|
+
/**
|
|
55
|
+
* All test strategy actions
|
|
56
|
+
*/
|
|
57
|
+
export declare const testStrategyActions: GOAPAction[];
|
|
58
|
+
/**
|
|
59
|
+
* Get test strategy action by ID
|
|
60
|
+
*/
|
|
61
|
+
export declare function getTestStrategyAction(id: string): GOAPAction | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Get actions suitable for time-constrained scenarios
|
|
64
|
+
*/
|
|
65
|
+
export declare function getQuickTestStrategyActions(): GOAPAction[];
|
|
66
|
+
/**
|
|
67
|
+
* Get actions for coverage improvement
|
|
68
|
+
*/
|
|
69
|
+
export declare function getCoverageImprovementActions(): GOAPAction[];
|
|
70
|
+
//# sourceMappingURL=test-strategy-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-strategy-actions.d.ts","sourceRoot":"","sources":["../../../src/planning/actions/test-strategy-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAkBjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,UAkBnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,UAkBpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAkBjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,UAqBnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAmBlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,UAkB9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAmBjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAkBlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,UAkBvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAAU,EAW3C,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAExE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,UAAU,EAAE,CAE1D;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,UAAU,EAAE,CAK5D"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Test Strategy GOAP Actions
|
|
4
|
+
*
|
|
5
|
+
* Actions for test strategy planning:
|
|
6
|
+
* - Impact analysis
|
|
7
|
+
* - Test prioritization
|
|
8
|
+
* - Coverage optimization
|
|
9
|
+
* - Risk-based test selection
|
|
10
|
+
*
|
|
11
|
+
* @module planning/actions/test-strategy-actions
|
|
12
|
+
* @version 1.0.0
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.testStrategyActions = exports.optimizeParallelExecution = exports.generateBDDScenarios = exports.stabilizeFlakyTests = exports.detectFlakyTests = exports.runCriticalPathTests = exports.generateTargetedTests = exports.analyzeCoverageGaps = exports.selectMinimalTestSuite = exports.prioritizeTestsByRisk = exports.analyzeChangeImpact = void 0;
|
|
16
|
+
exports.getTestStrategyAction = getTestStrategyAction;
|
|
17
|
+
exports.getQuickTestStrategyActions = getQuickTestStrategyActions;
|
|
18
|
+
exports.getCoverageImprovementActions = getCoverageImprovementActions;
|
|
19
|
+
/**
|
|
20
|
+
* Analyze change impact action
|
|
21
|
+
*/
|
|
22
|
+
exports.analyzeChangeImpact = {
|
|
23
|
+
id: 'ts-analyze-impact',
|
|
24
|
+
name: 'Analyze Change Impact',
|
|
25
|
+
description: 'Determine blast radius and affected test areas',
|
|
26
|
+
agentType: 'qe-regression-risk-analyzer',
|
|
27
|
+
preconditions: {
|
|
28
|
+
'context.impactedFiles': { exists: true },
|
|
29
|
+
'resources.timeRemaining': { gte: 30 }
|
|
30
|
+
},
|
|
31
|
+
effects: {
|
|
32
|
+
'context.impactAnalyzed': { set: true }, // Flag: impact has been analyzed
|
|
33
|
+
'resources.timeRemaining': { decrease: 60 }
|
|
34
|
+
},
|
|
35
|
+
cost: 0.5,
|
|
36
|
+
durationEstimate: 60000, // 1 minute
|
|
37
|
+
successRate: 0.95,
|
|
38
|
+
executionCount: 0,
|
|
39
|
+
category: 'analysis'
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Prioritize tests by risk action
|
|
43
|
+
*/
|
|
44
|
+
exports.prioritizeTestsByRisk = {
|
|
45
|
+
id: 'ts-prioritize-risk',
|
|
46
|
+
name: 'Prioritize Tests by Risk',
|
|
47
|
+
description: 'Rank tests based on failure probability and impact',
|
|
48
|
+
agentType: 'qe-regression-risk-analyzer',
|
|
49
|
+
preconditions: {
|
|
50
|
+
'context.suggestedTests': { exists: true },
|
|
51
|
+
'resources.timeRemaining': { gte: 20 }
|
|
52
|
+
},
|
|
53
|
+
effects: {
|
|
54
|
+
'context.testPriority': { set: 'ranked' },
|
|
55
|
+
'resources.timeRemaining': { decrease: 30 }
|
|
56
|
+
},
|
|
57
|
+
cost: 0.4,
|
|
58
|
+
durationEstimate: 30000,
|
|
59
|
+
successRate: 0.98,
|
|
60
|
+
executionCount: 0,
|
|
61
|
+
category: 'analysis'
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Select minimal test suite action
|
|
65
|
+
*/
|
|
66
|
+
exports.selectMinimalTestSuite = {
|
|
67
|
+
id: 'ts-select-minimal',
|
|
68
|
+
name: 'Select Minimal Test Suite',
|
|
69
|
+
description: 'Choose smallest test set covering all changed code',
|
|
70
|
+
agentType: 'qe-regression-risk-analyzer',
|
|
71
|
+
preconditions: {
|
|
72
|
+
'context.suggestedTests': { exists: true },
|
|
73
|
+
'resources.timeRemaining': { lt: 600 } // Only when time-constrained
|
|
74
|
+
},
|
|
75
|
+
effects: {
|
|
76
|
+
'context.testPriority': { set: 'ranked' },
|
|
77
|
+
'resources.timeRemaining': { decrease: 15 }
|
|
78
|
+
},
|
|
79
|
+
cost: 0.3,
|
|
80
|
+
durationEstimate: 15000,
|
|
81
|
+
successRate: 0.92,
|
|
82
|
+
executionCount: 0,
|
|
83
|
+
category: 'analysis'
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Analyze coverage gaps action
|
|
87
|
+
*/
|
|
88
|
+
exports.analyzeCoverageGaps = {
|
|
89
|
+
id: 'ts-coverage-gaps',
|
|
90
|
+
name: 'Analyze Coverage Gaps',
|
|
91
|
+
description: 'Identify untested code paths and missing coverage',
|
|
92
|
+
agentType: 'qe-coverage-analyzer',
|
|
93
|
+
preconditions: {
|
|
94
|
+
'coverage.line': { lt: 100 }, // Has room for improvement
|
|
95
|
+
'resources.timeRemaining': { gte: 60 }
|
|
96
|
+
},
|
|
97
|
+
effects: {
|
|
98
|
+
'context.coverageGapsAnalyzed': { set: true }, // Flag: coverage gaps analyzed
|
|
99
|
+
'resources.timeRemaining': { decrease: 90 }
|
|
100
|
+
},
|
|
101
|
+
cost: 0.8,
|
|
102
|
+
durationEstimate: 90000,
|
|
103
|
+
successRate: 0.95,
|
|
104
|
+
executionCount: 0,
|
|
105
|
+
category: 'analysis'
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Generate targeted tests action
|
|
109
|
+
*/
|
|
110
|
+
exports.generateTargetedTests = {
|
|
111
|
+
id: 'ts-generate-targeted',
|
|
112
|
+
name: 'Generate Targeted Tests',
|
|
113
|
+
description: 'Create tests specifically for uncovered changes',
|
|
114
|
+
agentType: 'qe-test-generator',
|
|
115
|
+
preconditions: {
|
|
116
|
+
'context.suggestedTests': { exists: true },
|
|
117
|
+
'coverage.line': { lt: 80 },
|
|
118
|
+
'resources.timeRemaining': { gte: 300 },
|
|
119
|
+
'fleet.availableAgents': { contains: 'qe-test-generator' }
|
|
120
|
+
},
|
|
121
|
+
effects: {
|
|
122
|
+
'coverage.line': { increase: 20 },
|
|
123
|
+
'coverage.branch': { increase: 15 },
|
|
124
|
+
'resources.timeRemaining': { decrease: 360 }
|
|
125
|
+
},
|
|
126
|
+
cost: 2.5,
|
|
127
|
+
durationEstimate: 360000, // 6 minutes
|
|
128
|
+
successRate: 0.80,
|
|
129
|
+
executionCount: 0,
|
|
130
|
+
category: 'test'
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Run critical path tests action
|
|
134
|
+
*/
|
|
135
|
+
exports.runCriticalPathTests = {
|
|
136
|
+
id: 'ts-critical-path',
|
|
137
|
+
name: 'Run Critical Path Tests',
|
|
138
|
+
description: 'Execute tests for high-risk code paths only',
|
|
139
|
+
agentType: 'qe-test-executor',
|
|
140
|
+
preconditions: {
|
|
141
|
+
'context.testPriority': { eq: 'ranked' },
|
|
142
|
+
'resources.timeRemaining': { gte: 60 }
|
|
143
|
+
},
|
|
144
|
+
effects: {
|
|
145
|
+
'quality.criticalPathTested': { set: true },
|
|
146
|
+
'quality.testsMeasured': { set: true }, // Flag: tests have been measured
|
|
147
|
+
'resources.timeRemaining': { decrease: 120 }
|
|
148
|
+
},
|
|
149
|
+
cost: 0.8,
|
|
150
|
+
durationEstimate: 120000,
|
|
151
|
+
successRate: 0.93,
|
|
152
|
+
executionCount: 0,
|
|
153
|
+
category: 'test'
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Detect flaky tests action
|
|
157
|
+
*/
|
|
158
|
+
exports.detectFlakyTests = {
|
|
159
|
+
id: 'ts-detect-flaky',
|
|
160
|
+
name: 'Detect Flaky Tests',
|
|
161
|
+
description: 'Identify and quarantine unreliable tests',
|
|
162
|
+
agentType: 'qe-flaky-test-hunter',
|
|
163
|
+
preconditions: {
|
|
164
|
+
'context.previousFailures': { gte: 1 }, // Has failure history
|
|
165
|
+
'resources.timeRemaining': { gte: 120 }
|
|
166
|
+
},
|
|
167
|
+
effects: {
|
|
168
|
+
'context.previousFailures': { decrease: 1 },
|
|
169
|
+
'resources.timeRemaining': { decrease: 180 }
|
|
170
|
+
},
|
|
171
|
+
cost: 1.5,
|
|
172
|
+
durationEstimate: 180000,
|
|
173
|
+
successRate: 0.88,
|
|
174
|
+
executionCount: 0,
|
|
175
|
+
category: 'test'
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* Stabilize flaky tests action
|
|
179
|
+
*/
|
|
180
|
+
exports.stabilizeFlakyTests = {
|
|
181
|
+
id: 'ts-stabilize-flaky',
|
|
182
|
+
name: 'Stabilize Flaky Tests',
|
|
183
|
+
description: 'Auto-remediate detected flaky tests',
|
|
184
|
+
agentType: 'qe-flaky-test-hunter',
|
|
185
|
+
preconditions: {
|
|
186
|
+
'context.previousFailures': { gte: 2 }, // Multiple failures
|
|
187
|
+
'resources.timeRemaining': { gte: 300 }
|
|
188
|
+
},
|
|
189
|
+
effects: {
|
|
190
|
+
'context.previousFailures': { set: 0 },
|
|
191
|
+
'quality.testsPassing': { increase: 5 },
|
|
192
|
+
'resources.timeRemaining': { decrease: 360 }
|
|
193
|
+
},
|
|
194
|
+
cost: 2.0,
|
|
195
|
+
durationEstimate: 360000,
|
|
196
|
+
successRate: 0.70,
|
|
197
|
+
executionCount: 0,
|
|
198
|
+
category: 'test'
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* Generate BDD scenarios action
|
|
202
|
+
*/
|
|
203
|
+
exports.generateBDDScenarios = {
|
|
204
|
+
id: 'ts-bdd-scenarios',
|
|
205
|
+
name: 'Generate BDD Scenarios',
|
|
206
|
+
description: 'Create behavior-driven test scenarios from requirements',
|
|
207
|
+
agentType: 'qe-requirements-validator',
|
|
208
|
+
preconditions: {
|
|
209
|
+
'resources.timeRemaining': { gte: 180 },
|
|
210
|
+
'fleet.availableAgents': { contains: 'qe-requirements-validator' }
|
|
211
|
+
},
|
|
212
|
+
effects: {
|
|
213
|
+
'context.bddGenerated': { set: true }, // Flag: BDD scenarios generated
|
|
214
|
+
'resources.timeRemaining': { decrease: 240 }
|
|
215
|
+
},
|
|
216
|
+
cost: 1.8,
|
|
217
|
+
durationEstimate: 240000,
|
|
218
|
+
successRate: 0.85,
|
|
219
|
+
executionCount: 0,
|
|
220
|
+
category: 'test'
|
|
221
|
+
};
|
|
222
|
+
/**
|
|
223
|
+
* Optimize parallel execution action
|
|
224
|
+
*/
|
|
225
|
+
exports.optimizeParallelExecution = {
|
|
226
|
+
id: 'ts-optimize-parallel',
|
|
227
|
+
name: 'Optimize Parallel Execution',
|
|
228
|
+
description: 'Rebalance test distribution for parallel runners',
|
|
229
|
+
agentType: 'qe-test-executor',
|
|
230
|
+
preconditions: {
|
|
231
|
+
'resources.parallelSlots': { gte: 2 }, // Has parallelism available
|
|
232
|
+
'resources.timeRemaining': { lt: 300 } // Time pressure
|
|
233
|
+
},
|
|
234
|
+
effects: {
|
|
235
|
+
'resources.parallelSlots': { increase: 2 },
|
|
236
|
+
'resources.timeRemaining': { decrease: 30 }
|
|
237
|
+
},
|
|
238
|
+
cost: 0.6,
|
|
239
|
+
durationEstimate: 30000,
|
|
240
|
+
successRate: 0.95,
|
|
241
|
+
executionCount: 0,
|
|
242
|
+
category: 'process'
|
|
243
|
+
};
|
|
244
|
+
/**
|
|
245
|
+
* All test strategy actions
|
|
246
|
+
*/
|
|
247
|
+
exports.testStrategyActions = [
|
|
248
|
+
exports.analyzeChangeImpact,
|
|
249
|
+
exports.prioritizeTestsByRisk,
|
|
250
|
+
exports.selectMinimalTestSuite,
|
|
251
|
+
exports.analyzeCoverageGaps,
|
|
252
|
+
exports.generateTargetedTests,
|
|
253
|
+
exports.runCriticalPathTests,
|
|
254
|
+
exports.detectFlakyTests,
|
|
255
|
+
exports.stabilizeFlakyTests,
|
|
256
|
+
exports.generateBDDScenarios,
|
|
257
|
+
exports.optimizeParallelExecution
|
|
258
|
+
];
|
|
259
|
+
/**
|
|
260
|
+
* Get test strategy action by ID
|
|
261
|
+
*/
|
|
262
|
+
function getTestStrategyAction(id) {
|
|
263
|
+
return exports.testStrategyActions.find(a => a.id === id);
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Get actions suitable for time-constrained scenarios
|
|
267
|
+
*/
|
|
268
|
+
function getQuickTestStrategyActions() {
|
|
269
|
+
return exports.testStrategyActions.filter(a => (a.durationEstimate ?? 0) < 120000);
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Get actions for coverage improvement
|
|
273
|
+
*/
|
|
274
|
+
function getCoverageImprovementActions() {
|
|
275
|
+
return exports.testStrategyActions.filter(a => a.effects['coverage.line']?.increase ||
|
|
276
|
+
a.effects['coverage.branch']?.increase);
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=test-strategy-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-strategy-actions.js","sourceRoot":"","sources":["../../../src/planning/actions/test-strategy-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GOAP Plan Executor
|
|
3
|
+
*
|
|
4
|
+
* Executes remediation plans generated by GOAPQualityGateIntegration:
|
|
5
|
+
* - Spawns agents for each action
|
|
6
|
+
* - Executes actions in sequence with dependency ordering
|
|
7
|
+
* - Records outcomes for learning via PlanLearning integration
|
|
8
|
+
* - Handles failures with automatic replanning
|
|
9
|
+
* - Phase 6: Live agent execution with real world state updates
|
|
10
|
+
*
|
|
11
|
+
* @module planning/execution/PlanExecutor
|
|
12
|
+
* @version 1.2.0 - Phase 6: Live Agent Execution
|
|
13
|
+
*/
|
|
14
|
+
import Database from 'better-sqlite3';
|
|
15
|
+
import { GOAPQualityGateIntegration, RemediationPlan, QualityGateContext, QualityGateMetrics, QUALITY_GATE_GOALS } from '../integration/GOAPQualityGateIntegration';
|
|
16
|
+
import { PlanLearning } from '../PlanLearning';
|
|
17
|
+
import { WorldState } from '../types';
|
|
18
|
+
/**
|
|
19
|
+
* Result of executing a single action
|
|
20
|
+
*/
|
|
21
|
+
export interface ActionExecutionResult {
|
|
22
|
+
actionId: string;
|
|
23
|
+
actionName: string;
|
|
24
|
+
success: boolean;
|
|
25
|
+
durationMs: number;
|
|
26
|
+
error?: string;
|
|
27
|
+
agentId?: string;
|
|
28
|
+
output?: any;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Result of executing a full plan
|
|
32
|
+
*/
|
|
33
|
+
export interface PlanExecutionResult {
|
|
34
|
+
planId: string;
|
|
35
|
+
success: boolean;
|
|
36
|
+
totalDurationMs: number;
|
|
37
|
+
actionsExecuted: number;
|
|
38
|
+
actionsSucceeded: number;
|
|
39
|
+
actionsFailed: number;
|
|
40
|
+
actionResults: ActionExecutionResult[];
|
|
41
|
+
replanned: boolean;
|
|
42
|
+
alternativePlanUsed?: string;
|
|
43
|
+
error?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Configuration for plan execution
|
|
47
|
+
*/
|
|
48
|
+
export interface PlanExecutionConfig {
|
|
49
|
+
/** Maximum retries per action (default: 1) */
|
|
50
|
+
maxRetries?: number;
|
|
51
|
+
/** Timeout per action in ms (default: 300000 = 5 min) */
|
|
52
|
+
actionTimeoutMs?: number;
|
|
53
|
+
/** Whether to continue on action failure (default: false - triggers replanning) */
|
|
54
|
+
continueOnFailure?: boolean;
|
|
55
|
+
/** Maximum replan attempts (default: 2) */
|
|
56
|
+
maxReplanAttempts?: number;
|
|
57
|
+
/** Dry run - don't actually execute, just validate (default: false) */
|
|
58
|
+
dryRun?: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* GOAP Plan Executor
|
|
62
|
+
*
|
|
63
|
+
* Bridges plan generation with actual agent execution.
|
|
64
|
+
* Implements the OODA (Observe-Orient-Decide-Act) loop for plan execution.
|
|
65
|
+
* Integrates with PlanLearning for continuous improvement.
|
|
66
|
+
*/
|
|
67
|
+
export declare class PlanExecutor {
|
|
68
|
+
private registry;
|
|
69
|
+
private integration;
|
|
70
|
+
private planLearning;
|
|
71
|
+
private db;
|
|
72
|
+
private logger;
|
|
73
|
+
private config;
|
|
74
|
+
private ownsRegistry;
|
|
75
|
+
private currentWorldState;
|
|
76
|
+
constructor(db: Database.Database, integration: GOAPQualityGateIntegration, config?: PlanExecutionConfig);
|
|
77
|
+
/**
|
|
78
|
+
* Get the PlanLearning instance for external access
|
|
79
|
+
*/
|
|
80
|
+
getPlanLearning(): PlanLearning;
|
|
81
|
+
/**
|
|
82
|
+
* Update current world state (called by integration or externally)
|
|
83
|
+
*/
|
|
84
|
+
updateWorldState(state: Partial<WorldState>): void;
|
|
85
|
+
/**
|
|
86
|
+
* Get current world state
|
|
87
|
+
*/
|
|
88
|
+
getWorldState(): WorldState;
|
|
89
|
+
/**
|
|
90
|
+
* Initialize registry only when needed for actual execution
|
|
91
|
+
*/
|
|
92
|
+
private ensureRegistry;
|
|
93
|
+
/**
|
|
94
|
+
* Cleanup resources - call this when done with the executor
|
|
95
|
+
*/
|
|
96
|
+
cleanup(): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Execute a remediation plan
|
|
99
|
+
*
|
|
100
|
+
* @param plan - The remediation plan to execute
|
|
101
|
+
* @param context - Quality gate context for replanning
|
|
102
|
+
* @param metrics - Current metrics for replanning
|
|
103
|
+
*/
|
|
104
|
+
executePlan(plan: RemediationPlan, context: QualityGateContext, metrics: QualityGateMetrics): Promise<PlanExecutionResult>;
|
|
105
|
+
/**
|
|
106
|
+
* Execute a single remediation action
|
|
107
|
+
*/
|
|
108
|
+
private executeAction;
|
|
109
|
+
/**
|
|
110
|
+
* Map GOAP agent type to MCP agent type
|
|
111
|
+
*
|
|
112
|
+
* GOAP actions use 'qe-*' prefixed agent types which need to be
|
|
113
|
+
* mapped to MCP types that AgentRegistry understands.
|
|
114
|
+
*/
|
|
115
|
+
private mapAgentType;
|
|
116
|
+
/**
|
|
117
|
+
* Get capabilities for an action
|
|
118
|
+
*/
|
|
119
|
+
private getCapabilitiesForAction;
|
|
120
|
+
/**
|
|
121
|
+
* Create a task from a remediation action
|
|
122
|
+
*
|
|
123
|
+
* Maps GOAP action categories to structured task payloads that
|
|
124
|
+
* QE agents can understand and execute properly.
|
|
125
|
+
*/
|
|
126
|
+
private createTaskFromAction;
|
|
127
|
+
/**
|
|
128
|
+
* Build category-specific payload for task execution
|
|
129
|
+
*
|
|
130
|
+
* Note: action.effects is string[] describing the state changes
|
|
131
|
+
*/
|
|
132
|
+
private buildCategoryPayload;
|
|
133
|
+
/**
|
|
134
|
+
* Extract coverage target from effects array
|
|
135
|
+
*/
|
|
136
|
+
private extractCoverageTarget;
|
|
137
|
+
/**
|
|
138
|
+
* Map action category to task type
|
|
139
|
+
*/
|
|
140
|
+
private mapCategoryToTaskType;
|
|
141
|
+
/**
|
|
142
|
+
* Infer test type from action ID
|
|
143
|
+
*/
|
|
144
|
+
private inferTestType;
|
|
145
|
+
/**
|
|
146
|
+
* Infer security scan type from action ID
|
|
147
|
+
*/
|
|
148
|
+
private inferSecurityScanType;
|
|
149
|
+
/**
|
|
150
|
+
* Infer performance test type from action ID
|
|
151
|
+
*/
|
|
152
|
+
private inferPerformanceTestType;
|
|
153
|
+
/**
|
|
154
|
+
* Infer fleet operation from action ID
|
|
155
|
+
*/
|
|
156
|
+
private inferFleetOperation;
|
|
157
|
+
/**
|
|
158
|
+
* Build requirements for task execution
|
|
159
|
+
*/
|
|
160
|
+
private buildRequirements;
|
|
161
|
+
/**
|
|
162
|
+
* Parse agent output and update world state with real measurements
|
|
163
|
+
* This is called in live execution mode (not dry-run)
|
|
164
|
+
*/
|
|
165
|
+
private updateWorldStateFromAgentOutput;
|
|
166
|
+
/**
|
|
167
|
+
* Parse test execution output
|
|
168
|
+
*/
|
|
169
|
+
private parseTestOutput;
|
|
170
|
+
/**
|
|
171
|
+
* Parse coverage analysis output
|
|
172
|
+
*/
|
|
173
|
+
private parseCoverageOutput;
|
|
174
|
+
/**
|
|
175
|
+
* Parse security scan output
|
|
176
|
+
*/
|
|
177
|
+
private parseSecurityOutput;
|
|
178
|
+
/**
|
|
179
|
+
* Parse performance test output
|
|
180
|
+
*/
|
|
181
|
+
private parsePerformanceOutput;
|
|
182
|
+
/**
|
|
183
|
+
* Parse code analysis output
|
|
184
|
+
*/
|
|
185
|
+
private parseAnalysisOutput;
|
|
186
|
+
/**
|
|
187
|
+
* Initialize world state from quality gate metrics
|
|
188
|
+
*/
|
|
189
|
+
private initializeWorldStateFromMetrics;
|
|
190
|
+
/**
|
|
191
|
+
* Simulate action effects on world state
|
|
192
|
+
*/
|
|
193
|
+
private simulateActionEffects;
|
|
194
|
+
/**
|
|
195
|
+
* Convert RemediationAction to GOAPAction for learning
|
|
196
|
+
*/
|
|
197
|
+
private remediationActionToGOAPAction;
|
|
198
|
+
/**
|
|
199
|
+
* Convert RemediationPlan to GOAPPlan for learning
|
|
200
|
+
*/
|
|
201
|
+
private remediationPlanToGOAPPlan;
|
|
202
|
+
/**
|
|
203
|
+
* Update plan status in database
|
|
204
|
+
*/
|
|
205
|
+
private updatePlanStatus;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Factory function to create a PlanExecutor
|
|
209
|
+
*/
|
|
210
|
+
export declare function createPlanExecutor(dbPath: string, config?: PlanExecutionConfig): {
|
|
211
|
+
executor: PlanExecutor;
|
|
212
|
+
integration: GOAPQualityGateIntegration;
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* Execute a quality gate remediation with GOAP planning
|
|
216
|
+
*
|
|
217
|
+
* High-level function that:
|
|
218
|
+
* 1. Generates a remediation plan
|
|
219
|
+
* 2. Executes the plan
|
|
220
|
+
* 3. Records outcomes for learning
|
|
221
|
+
*/
|
|
222
|
+
export declare function executeQualityGateRemediation(metrics: QualityGateMetrics, context: QualityGateContext, dbPath: string, targetGoal?: keyof typeof QUALITY_GATE_GOALS, config?: PlanExecutionConfig): Promise<PlanExecutionResult | null>;
|
|
223
|
+
//# sourceMappingURL=PlanExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanExecutor.d.ts","sourceRoot":"","sources":["../../../src/planning/execution/PlanExecutor.ts"],"names":[],"mappings":"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"}
|