agentic-qe 2.3.5 → 2.4.0

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.
Files changed (170) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +1 -1
  3. package/dist/agents/BaseAgent.d.ts +56 -49
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +208 -604
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/agents/FlakyTestHunterAgent.d.ts +2 -2
  8. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  9. package/dist/agents/FlakyTestHunterAgent.js +8 -104
  10. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  11. package/dist/agents/TestExecutorAgent.d.ts +1 -1
  12. package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
  13. package/dist/agents/TestExecutorAgent.js +4 -46
  14. package/dist/agents/TestExecutorAgent.js.map +1 -1
  15. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  16. package/dist/agents/TestGeneratorAgent.js +15 -35
  17. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  18. package/dist/agents/adapters/CoordinatorAdapter.d.ts +47 -0
  19. package/dist/agents/adapters/CoordinatorAdapter.d.ts.map +1 -0
  20. package/dist/agents/adapters/CoordinatorAdapter.js +266 -0
  21. package/dist/agents/adapters/CoordinatorAdapter.js.map +1 -0
  22. package/dist/agents/adapters/LearningEngineAdapter.d.ts +45 -0
  23. package/dist/agents/adapters/LearningEngineAdapter.d.ts.map +1 -0
  24. package/dist/agents/adapters/LearningEngineAdapter.js +279 -0
  25. package/dist/agents/adapters/LearningEngineAdapter.js.map +1 -0
  26. package/dist/agents/adapters/LifecycleManagerAdapter.d.ts +45 -0
  27. package/dist/agents/adapters/LifecycleManagerAdapter.d.ts.map +1 -0
  28. package/dist/agents/adapters/LifecycleManagerAdapter.js +128 -0
  29. package/dist/agents/adapters/LifecycleManagerAdapter.js.map +1 -0
  30. package/dist/agents/adapters/MemoryServiceAdapter.d.ts +96 -0
  31. package/dist/agents/adapters/MemoryServiceAdapter.d.ts.map +1 -0
  32. package/dist/agents/adapters/MemoryServiceAdapter.js +266 -0
  33. package/dist/agents/adapters/MemoryServiceAdapter.js.map +1 -0
  34. package/dist/agents/adapters/index.d.ts +14 -0
  35. package/dist/agents/adapters/index.d.ts.map +1 -0
  36. package/dist/agents/adapters/index.js +25 -0
  37. package/dist/agents/adapters/index.js.map +1 -0
  38. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
  39. package/dist/agents/lifecycle/AgentLifecycleManager.js +12 -6
  40. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
  41. package/dist/core/cache/BinaryCacheBuilder.d.ts +84 -0
  42. package/dist/core/cache/BinaryCacheBuilder.d.ts.map +1 -0
  43. package/dist/core/cache/BinaryCacheBuilder.js +225 -0
  44. package/dist/core/cache/BinaryCacheBuilder.js.map +1 -0
  45. package/dist/core/cache/BinaryCacheManager.d.ts +142 -0
  46. package/dist/core/cache/BinaryCacheManager.d.ts.map +1 -0
  47. package/dist/core/cache/BinaryCacheManager.js +354 -0
  48. package/dist/core/cache/BinaryCacheManager.js.map +1 -0
  49. package/dist/core/cache/BinaryCacheReader.d.ts +129 -0
  50. package/dist/core/cache/BinaryCacheReader.d.ts.map +1 -0
  51. package/dist/core/cache/BinaryCacheReader.js +243 -0
  52. package/dist/core/cache/BinaryCacheReader.js.map +1 -0
  53. package/dist/core/cache/BinaryMetadataCache.d.ts +533 -0
  54. package/dist/core/cache/BinaryMetadataCache.d.ts.map +1 -0
  55. package/dist/core/cache/BinaryMetadataCache.js +142 -0
  56. package/dist/core/cache/BinaryMetadataCache.js.map +1 -0
  57. package/dist/core/cache/CacheInvalidator.d.ts +103 -0
  58. package/dist/core/cache/CacheInvalidator.d.ts.map +1 -0
  59. package/dist/core/cache/CacheInvalidator.js +152 -0
  60. package/dist/core/cache/CacheInvalidator.js.map +1 -0
  61. package/dist/core/cache/CacheValidator.d.ts +69 -0
  62. package/dist/core/cache/CacheValidator.d.ts.map +1 -0
  63. package/dist/core/cache/CacheValidator.js +189 -0
  64. package/dist/core/cache/CacheValidator.js.map +1 -0
  65. package/dist/core/cache/MessagePackSerializer.d.ts +163 -0
  66. package/dist/core/cache/MessagePackSerializer.d.ts.map +1 -0
  67. package/dist/core/cache/MessagePackSerializer.js +274 -0
  68. package/dist/core/cache/MessagePackSerializer.js.map +1 -0
  69. package/dist/core/cache/index.d.ts +58 -0
  70. package/dist/core/cache/index.d.ts.map +1 -0
  71. package/dist/core/cache/index.js +102 -0
  72. package/dist/core/cache/index.js.map +1 -0
  73. package/dist/core/index.d.ts +2 -0
  74. package/dist/core/index.d.ts.map +1 -1
  75. package/dist/core/index.js +18 -0
  76. package/dist/core/index.js.map +1 -1
  77. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  78. package/dist/core/memory/PatternStoreFactory.d.ts +28 -0
  79. package/dist/core/memory/PatternStoreFactory.d.ts.map +1 -1
  80. package/dist/core/memory/PatternStoreFactory.js +68 -3
  81. package/dist/core/memory/PatternStoreFactory.js.map +1 -1
  82. package/dist/core/platform/FileOperations.d.ts +124 -0
  83. package/dist/core/platform/FileOperations.d.ts.map +1 -0
  84. package/dist/core/platform/FileOperations.js +371 -0
  85. package/dist/core/platform/FileOperations.js.map +1 -0
  86. package/dist/core/platform/PlatformDetector.d.ts +53 -0
  87. package/dist/core/platform/PlatformDetector.d.ts.map +1 -0
  88. package/dist/core/platform/PlatformDetector.js +251 -0
  89. package/dist/core/platform/PlatformDetector.js.map +1 -0
  90. package/dist/core/platform/index.d.ts +12 -0
  91. package/dist/core/platform/index.d.ts.map +1 -0
  92. package/dist/core/platform/index.js +28 -0
  93. package/dist/core/platform/index.js.map +1 -0
  94. package/dist/core/strategies/AcceleratedLearningStrategy.d.ts +74 -0
  95. package/dist/core/strategies/AcceleratedLearningStrategy.d.ts.map +1 -0
  96. package/dist/core/strategies/AcceleratedLearningStrategy.js +200 -0
  97. package/dist/core/strategies/AcceleratedLearningStrategy.js.map +1 -0
  98. package/dist/core/strategies/AgentCoordinationStrategy.d.ts +157 -0
  99. package/dist/core/strategies/AgentCoordinationStrategy.d.ts.map +1 -0
  100. package/dist/core/strategies/AgentCoordinationStrategy.js +12 -0
  101. package/dist/core/strategies/AgentCoordinationStrategy.js.map +1 -0
  102. package/dist/core/strategies/AgentLearningStrategy.d.ts +200 -0
  103. package/dist/core/strategies/AgentLearningStrategy.d.ts.map +1 -0
  104. package/dist/core/strategies/AgentLearningStrategy.js +13 -0
  105. package/dist/core/strategies/AgentLearningStrategy.js.map +1 -0
  106. package/dist/core/strategies/AgentLifecycleStrategy.d.ts +116 -0
  107. package/dist/core/strategies/AgentLifecycleStrategy.d.ts.map +1 -0
  108. package/dist/core/strategies/AgentLifecycleStrategy.js +12 -0
  109. package/dist/core/strategies/AgentLifecycleStrategy.js.map +1 -0
  110. package/dist/core/strategies/AgentMemoryStrategy.d.ts +154 -0
  111. package/dist/core/strategies/AgentMemoryStrategy.d.ts.map +1 -0
  112. package/dist/core/strategies/AgentMemoryStrategy.js +13 -0
  113. package/dist/core/strategies/AgentMemoryStrategy.js.map +1 -0
  114. package/dist/core/strategies/DefaultCoordinationStrategy.d.ts +105 -0
  115. package/dist/core/strategies/DefaultCoordinationStrategy.d.ts.map +1 -0
  116. package/dist/core/strategies/DefaultCoordinationStrategy.js +332 -0
  117. package/dist/core/strategies/DefaultCoordinationStrategy.js.map +1 -0
  118. package/dist/core/strategies/DefaultLearningStrategy.d.ts +120 -0
  119. package/dist/core/strategies/DefaultLearningStrategy.d.ts.map +1 -0
  120. package/dist/core/strategies/DefaultLearningStrategy.js +365 -0
  121. package/dist/core/strategies/DefaultLearningStrategy.js.map +1 -0
  122. package/dist/core/strategies/DefaultLifecycleStrategy.d.ts +129 -0
  123. package/dist/core/strategies/DefaultLifecycleStrategy.d.ts.map +1 -0
  124. package/dist/core/strategies/DefaultLifecycleStrategy.js +297 -0
  125. package/dist/core/strategies/DefaultLifecycleStrategy.js.map +1 -0
  126. package/dist/core/strategies/DefaultMemoryStrategy.d.ts +91 -0
  127. package/dist/core/strategies/DefaultMemoryStrategy.d.ts.map +1 -0
  128. package/dist/core/strategies/DefaultMemoryStrategy.js +257 -0
  129. package/dist/core/strategies/DefaultMemoryStrategy.js.map +1 -0
  130. package/dist/core/strategies/DistributedMemoryStrategy.d.ts +85 -0
  131. package/dist/core/strategies/DistributedMemoryStrategy.d.ts.map +1 -0
  132. package/dist/core/strategies/DistributedMemoryStrategy.js +126 -0
  133. package/dist/core/strategies/DistributedMemoryStrategy.js.map +1 -0
  134. package/dist/core/strategies/index.d.ts +95 -0
  135. package/dist/core/strategies/index.d.ts.map +1 -0
  136. package/dist/core/strategies/index.js +65 -0
  137. package/dist/core/strategies/index.js.map +1 -0
  138. package/dist/learning/PerformanceOptimizer.js +2 -2
  139. package/dist/learning/PerformanceOptimizer.js.map +1 -1
  140. package/dist/mcp/handlers/base-handler.d.ts +28 -1
  141. package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
  142. package/dist/mcp/handlers/base-handler.js +41 -0
  143. package/dist/mcp/handlers/base-handler.js.map +1 -1
  144. package/dist/mcp/server-instructions.d.ts +1 -1
  145. package/dist/mcp/server-instructions.js +1 -1
  146. package/dist/output/AIActionSuggester.d.ts +98 -0
  147. package/dist/output/AIActionSuggester.d.ts.map +1 -0
  148. package/dist/output/AIActionSuggester.js +499 -0
  149. package/dist/output/AIActionSuggester.js.map +1 -0
  150. package/dist/output/CLIOutputHelper.d.ts +169 -0
  151. package/dist/output/CLIOutputHelper.d.ts.map +1 -0
  152. package/dist/output/CLIOutputHelper.js +320 -0
  153. package/dist/output/CLIOutputHelper.js.map +1 -0
  154. package/dist/output/OutputFormatter.d.ts +764 -0
  155. package/dist/output/OutputFormatter.d.ts.map +1 -0
  156. package/dist/output/OutputFormatter.js +125 -0
  157. package/dist/output/OutputFormatter.js.map +1 -0
  158. package/dist/output/OutputFormatterImpl.d.ts +131 -0
  159. package/dist/output/OutputFormatterImpl.d.ts.map +1 -0
  160. package/dist/output/OutputFormatterImpl.js +556 -0
  161. package/dist/output/OutputFormatterImpl.js.map +1 -0
  162. package/dist/output/examples.d.ts +38 -0
  163. package/dist/output/examples.d.ts.map +1 -0
  164. package/dist/output/examples.js +503 -0
  165. package/dist/output/examples.js.map +1 -0
  166. package/dist/output/index.d.ts +16 -0
  167. package/dist/output/index.d.ts.map +1 -0
  168. package/dist/output/index.js +58 -0
  169. package/dist/output/index.js.map +1 -0
  170. package/package.json +4 -1
@@ -0,0 +1,98 @@
1
+ /**
2
+ * AI Action Suggester
3
+ *
4
+ * Generates intelligent action suggestions based on test results, coverage gaps,
5
+ * flaky tests, and quality metrics. Provides specific, actionable guidance with
6
+ * automation support and confidence scores.
7
+ *
8
+ * @module output/AIActionSuggester
9
+ * @version 1.0.0
10
+ */
11
+ import { ActionSuggestion, TestResultsData, CoverageReportData, QualityMetricsData } from './OutputFormatter';
12
+ /**
13
+ * AI Action Suggester
14
+ * Generates actionable suggestions for various QE scenarios
15
+ */
16
+ export declare class AIActionSuggester {
17
+ /**
18
+ * Generate action suggestions for test results
19
+ */
20
+ generateTestResultActions(data: TestResultsData): ActionSuggestion[];
21
+ /**
22
+ * Generate action suggestions for coverage reports
23
+ */
24
+ generateCoverageReportActions(data: CoverageReportData): ActionSuggestion[];
25
+ /**
26
+ * Generate action suggestions for quality metrics
27
+ */
28
+ generateQualityMetricsActions(data: QualityMetricsData): ActionSuggestion[];
29
+ /**
30
+ * Create fix failures action
31
+ */
32
+ private createFixFailuresAction;
33
+ /**
34
+ * Create stabilize flaky tests action
35
+ */
36
+ private createStabilizeFlakyAction;
37
+ /**
38
+ * Create review skipped tests action
39
+ */
40
+ private createReviewSkippedTestsAction;
41
+ /**
42
+ * Create increase coverage action (from test results)
43
+ */
44
+ private createIncreaseCoverageAction;
45
+ /**
46
+ * Create success acknowledgment action
47
+ */
48
+ private createSuccessAcknowledgmentAction;
49
+ /**
50
+ * Create critical coverage gaps action
51
+ */
52
+ private createCriticalGapsAction;
53
+ /**
54
+ * Create high-priority gaps action
55
+ */
56
+ private createHighPriorityGapsAction;
57
+ /**
58
+ * Create coverage trend action
59
+ */
60
+ private createCoverageTrendAction;
61
+ /**
62
+ * Create overall coverage action
63
+ */
64
+ private createOverallCoverageAction;
65
+ /**
66
+ * Create quality gate failures action
67
+ */
68
+ private createQualityGateFailuresAction;
69
+ /**
70
+ * Create code smells action
71
+ */
72
+ private createCodeSmellsAction;
73
+ /**
74
+ * Create technical debt action
75
+ */
76
+ private createTechnicalDebtAction;
77
+ /**
78
+ * Create complexity action
79
+ */
80
+ private createComplexityAction;
81
+ /**
82
+ * Sort actions by priority
83
+ */
84
+ private sortActionsByPriority;
85
+ /**
86
+ * Calculate average flakiness score
87
+ */
88
+ private calculateAverageFlakinessScore;
89
+ /**
90
+ * Round to 2 decimal places
91
+ */
92
+ private round;
93
+ }
94
+ /**
95
+ * Default singleton instance
96
+ */
97
+ export declare const actionSuggester: AIActionSuggester;
98
+ //# sourceMappingURL=AIActionSuggester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIActionSuggester.d.ts","sourceRoot":"","sources":["../../src/output/AIActionSuggester.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,gBAAgB,EAIhB,eAAe,EAGf,kBAAkB,EAElB,kBAAkB,EAEnB,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,yBAAyB,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,EAAE;IA+BpE;;OAEG;IACH,6BAA6B,CAAC,IAAI,EAAE,kBAAkB,GAAG,gBAAgB,EAAE;IA4B3E;;OAEG;IACH,6BAA6B,CAAC,IAAI,EAAE,kBAAkB,GAAG,gBAAgB,EAAE;IA8B3E;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqC/B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAqClC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAoBtC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA8BpC;;OAEG;IACH,OAAO,CAAC,iCAAiC;IAmBzC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAkChC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAwBpC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA6BjC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA6BnC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAoBvC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAoBjC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2B9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAMtC;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,mBAA0B,CAAC"}
@@ -0,0 +1,499 @@
1
+ "use strict";
2
+ /**
3
+ * AI Action Suggester
4
+ *
5
+ * Generates intelligent action suggestions based on test results, coverage gaps,
6
+ * flaky tests, and quality metrics. Provides specific, actionable guidance with
7
+ * automation support and confidence scores.
8
+ *
9
+ * @module output/AIActionSuggester
10
+ * @version 1.0.0
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.actionSuggester = exports.AIActionSuggester = void 0;
14
+ const OutputFormatter_1 = require("./OutputFormatter");
15
+ /**
16
+ * AI Action Suggester
17
+ * Generates actionable suggestions for various QE scenarios
18
+ */
19
+ class AIActionSuggester {
20
+ /**
21
+ * Generate action suggestions for test results
22
+ */
23
+ generateTestResultActions(data) {
24
+ const actions = [];
25
+ // 1. Handle test failures
26
+ if (data.failures && data.failures.length > 0) {
27
+ actions.push(this.createFixFailuresAction(data.failures));
28
+ }
29
+ // 2. Handle flaky tests
30
+ if (data.flaky && data.flaky.length > 0) {
31
+ actions.push(this.createStabilizeFlakyAction(data.flaky));
32
+ }
33
+ // 3. Handle skipped tests
34
+ if (data.summary.skipped > 0) {
35
+ actions.push(this.createReviewSkippedTestsAction(data.summary.skipped));
36
+ }
37
+ // 4. Handle coverage gaps (if coverage data available)
38
+ if (data.coverage && data.coverage.overall < 80) {
39
+ actions.push(this.createIncreaseCoverageAction(data.coverage));
40
+ }
41
+ // 5. Success case - acknowledge good results
42
+ if (data.failures.length === 0 && data.summary.passRate === 100) {
43
+ actions.push(this.createSuccessAcknowledgmentAction(data.summary));
44
+ }
45
+ return this.sortActionsByPriority(actions);
46
+ }
47
+ /**
48
+ * Generate action suggestions for coverage reports
49
+ */
50
+ generateCoverageReportActions(data) {
51
+ const actions = [];
52
+ // 1. Handle critical coverage gaps
53
+ const criticalGaps = data.gaps.filter(gap => gap.priority === 'critical');
54
+ if (criticalGaps.length > 0) {
55
+ actions.push(this.createCriticalGapsAction(criticalGaps));
56
+ }
57
+ // 2. Handle high-priority gaps
58
+ const highGaps = data.gaps.filter(gap => gap.priority === 'high');
59
+ if (highGaps.length > 0) {
60
+ actions.push(this.createHighPriorityGapsAction(highGaps));
61
+ }
62
+ // 3. Review coverage trend
63
+ if (data.trend) {
64
+ actions.push(this.createCoverageTrendAction(data.trend));
65
+ }
66
+ // 4. Handle overall low coverage
67
+ if (data.summary.overall < 80) {
68
+ actions.push(this.createOverallCoverageAction(data.summary));
69
+ }
70
+ return this.sortActionsByPriority(actions);
71
+ }
72
+ /**
73
+ * Generate action suggestions for quality metrics
74
+ */
75
+ generateQualityMetricsActions(data) {
76
+ const actions = [];
77
+ // 1. Handle failed quality gates
78
+ const failedGates = data.qualityGates.gates.filter(gate => gate.status === 'failed');
79
+ if (failedGates.length > 0) {
80
+ actions.push(this.createQualityGateFailuresAction(failedGates));
81
+ }
82
+ // 2. Handle code smells
83
+ if (data.codeSmells.total > 0) {
84
+ actions.push(this.createCodeSmellsAction(data.codeSmells));
85
+ }
86
+ // 3. Handle technical debt
87
+ if (data.technicalDebt.total > 40) {
88
+ actions.push(this.createTechnicalDebtAction(data.technicalDebt));
89
+ }
90
+ // 4. Handle complexity issues
91
+ const complexityGate = data.qualityGates.gates.find(gate => gate.name === 'max_complexity');
92
+ if (complexityGate && complexityGate.status === 'failed') {
93
+ actions.push(this.createComplexityAction(complexityGate));
94
+ }
95
+ return this.sortActionsByPriority(actions);
96
+ }
97
+ // ==================== Private Action Creators ====================
98
+ /**
99
+ * Create fix failures action
100
+ */
101
+ createFixFailuresAction(failures) {
102
+ const affectedTests = failures.map(f => `${f.suiteName}: ${f.testName}`);
103
+ const timeoutFailures = failures.filter(f => f.error.type.includes('Timeout'));
104
+ const hasTimeoutIssues = timeoutFailures.length > 0;
105
+ const steps = [
106
+ `Review failure logs and error details for ${failures.length} failed test${failures.length > 1 ? 's' : ''}`,
107
+ `Run failed tests in isolation to reproduce: npm test -- --testNamePattern='${failures[0].testName}'`
108
+ ];
109
+ if (hasTimeoutIssues) {
110
+ steps.push('Check for timing issues and race conditions in async tests');
111
+ steps.push('Consider increasing timeout for network-dependent tests: jest.setTimeout(10000)');
112
+ }
113
+ steps.push('Review test setup and teardown for resource leaks or conflicts');
114
+ steps.push('Check for environment-specific issues (database, APIs, file system)');
115
+ return {
116
+ action: OutputFormatter_1.ActionTypes.FIX_TEST_FAILURES,
117
+ priority: 'critical',
118
+ reason: `${failures.length} test failure${failures.length > 1 ? 's' : ''} detected${hasTimeoutIssues ? ' (including timeout issues)' : ''}`,
119
+ affectedTests,
120
+ steps,
121
+ automation: {
122
+ command: 'aqe fix failures --interactive',
123
+ canAutoFix: false,
124
+ confidence: hasTimeoutIssues ? 0.55 : 0.65,
125
+ estimatedTime: failures.length * 5
126
+ },
127
+ relatedDocs: [
128
+ 'https://jestjs.io/docs/troubleshooting',
129
+ '/workspaces/agentic-qe-cf/docs/guides/debugging-test-failures.md'
130
+ ]
131
+ };
132
+ }
133
+ /**
134
+ * Create stabilize flaky tests action
135
+ */
136
+ createStabilizeFlakyAction(flaky) {
137
+ const affectedTests = flaky.map(f => `${f.suiteName}: ${f.testName}`);
138
+ const highInstability = flaky.filter(f => f.flakinessScore > 0.4);
139
+ const steps = [
140
+ `Analyze flaky test patterns for ${flaky.length} test${flaky.length > 1 ? 's' : ''}`,
141
+ `Review recent failure history: aqe analyze flaky --test-id=${flaky[0].testName}`
142
+ ];
143
+ if (highInstability.length > 0) {
144
+ steps.push(`Prioritize ${highInstability.length} test${highInstability.length > 1 ? 's' : ''} with high instability score (>40%)`);
145
+ }
146
+ steps.push('Add deterministic mocking for external dependencies (network, time, random)');
147
+ steps.push('Ensure proper test isolation and cleanup between runs');
148
+ steps.push('Consider using jest-retry for legitimate retry scenarios');
149
+ steps.push('Add wait conditions instead of fixed delays (waitFor, waitForElement)');
150
+ return {
151
+ action: OutputFormatter_1.ActionTypes.STABILIZE_FLAKY_TESTS,
152
+ priority: highInstability.length > 0 ? 'high' : 'medium',
153
+ reason: `${flaky.length} flaky test${flaky.length > 1 ? 's' : ''} detected (avg instability: ${this.calculateAverageFlakinessScore(flaky).toFixed(2)}%)`,
154
+ affectedTests,
155
+ steps,
156
+ automation: {
157
+ command: `aqe stabilize flaky --test-id=${flaky[0].testName}`,
158
+ canAutoFix: true,
159
+ confidence: 0.78,
160
+ estimatedTime: flaky.length * 3
161
+ },
162
+ relatedDocs: [
163
+ 'https://jestjs.io/docs/jest-platform#jest-retry',
164
+ '/workspaces/agentic-qe-cf/docs/guides/handling-flaky-tests.md'
165
+ ]
166
+ };
167
+ }
168
+ /**
169
+ * Create review skipped tests action
170
+ */
171
+ createReviewSkippedTestsAction(skippedCount) {
172
+ return {
173
+ action: 'review_skipped_tests',
174
+ priority: 'medium',
175
+ reason: `${skippedCount} test${skippedCount > 1 ? 's' : ''} skipped - may hide regressions`,
176
+ steps: [
177
+ 'Review skipped tests: grep -r "it.skip\\|test.skip\\|describe.skip" tests/',
178
+ 'Determine if tests are temporarily disabled or permanently irrelevant',
179
+ 'Re-enable or remove skipped tests to maintain test suite health',
180
+ 'Add comments explaining why tests are skipped if temporary'
181
+ ],
182
+ automation: {
183
+ command: 'aqe analyze skipped',
184
+ canAutoFix: false,
185
+ confidence: 0.50,
186
+ estimatedTime: 10
187
+ }
188
+ };
189
+ }
190
+ /**
191
+ * Create increase coverage action (from test results)
192
+ */
193
+ createIncreaseCoverageAction(coverage) {
194
+ const gap = 80 - coverage.overall;
195
+ return {
196
+ action: OutputFormatter_1.ActionTypes.INCREASE_COVERAGE,
197
+ priority: coverage.overall < 60 ? 'critical' : 'high',
198
+ reason: `Overall coverage is ${coverage.overall.toFixed(2)}% (target: 80%)`,
199
+ steps: [
200
+ 'Identify uncovered files and critical paths',
201
+ 'Generate tests for low-coverage areas: aqe generate tests --coverage-target=80',
202
+ 'Focus on business-critical code paths first',
203
+ 'Add edge case and error handling tests',
204
+ 'Review coverage reports: aqe analyze coverage --detailed'
205
+ ],
206
+ automation: {
207
+ command: 'aqe generate tests --coverage-target=80 --focus=uncovered',
208
+ canAutoFix: true,
209
+ confidence: 0.85,
210
+ estimatedTime: Math.ceil(gap * 2),
211
+ estimatedTests: Math.ceil(gap * 3)
212
+ },
213
+ impact: {
214
+ currentValue: coverage.overall,
215
+ targetValue: 80.0,
216
+ estimatedImprovement: gap,
217
+ businessValue: coverage.overall < 60 ? 'critical' : 'high'
218
+ }
219
+ };
220
+ }
221
+ /**
222
+ * Create success acknowledgment action
223
+ */
224
+ createSuccessAcknowledgmentAction(summary) {
225
+ return {
226
+ action: OutputFormatter_1.ActionTypes.AGENT_READY,
227
+ priority: 'info',
228
+ reason: `All ${summary.total} tests passed successfully`,
229
+ steps: [
230
+ 'Maintain current testing practices',
231
+ 'Continue test-driven development',
232
+ 'Monitor coverage trends over time',
233
+ 'Consider adding more edge case tests'
234
+ ],
235
+ automation: {
236
+ command: 'aqe analyze trends --period=30days',
237
+ canAutoFix: false,
238
+ confidence: 1.0
239
+ }
240
+ };
241
+ }
242
+ /**
243
+ * Create critical coverage gaps action
244
+ */
245
+ createCriticalGapsAction(gaps) {
246
+ const targetFiles = gaps.map(g => g.file);
247
+ return {
248
+ action: OutputFormatter_1.ActionTypes.INCREASE_COVERAGE,
249
+ priority: 'critical',
250
+ reason: `${gaps.length} critical coverage gap${gaps.length > 1 ? 's' : ''} detected in business-critical code`,
251
+ targetFiles,
252
+ steps: [
253
+ 'Review critical gaps in business-critical files',
254
+ `Focus on: ${gaps[0].file}`,
255
+ `Generate tests: aqe generate tests --file=${gaps[0].file} --coverage-target=80`,
256
+ 'Prioritize error handling and edge cases',
257
+ 'Add integration tests for critical paths'
258
+ ],
259
+ automation: {
260
+ command: `aqe generate tests --file=${gaps[0].file} --coverage-target=80 --priority=critical`,
261
+ canAutoFix: true,
262
+ confidence: 0.92,
263
+ estimatedTime: gaps.length * 5,
264
+ estimatedTests: gaps.reduce((sum, g) => sum + g.uncoveredLines.length, 0)
265
+ },
266
+ impact: {
267
+ currentValue: gaps[0].coverage.lines,
268
+ targetValue: 80.0,
269
+ estimatedImprovement: 80.0 - gaps[0].coverage.lines,
270
+ businessValue: 'critical'
271
+ },
272
+ relatedDocs: [
273
+ '/workspaces/agentic-qe-cf/docs/guides/coverage-best-practices.md'
274
+ ]
275
+ };
276
+ }
277
+ /**
278
+ * Create high-priority gaps action
279
+ */
280
+ createHighPriorityGapsAction(gaps) {
281
+ const targetFiles = gaps.map(g => g.file);
282
+ return {
283
+ action: OutputFormatter_1.ActionTypes.INCREASE_COVERAGE,
284
+ priority: 'high',
285
+ reason: `${gaps.length} high-priority coverage gap${gaps.length > 1 ? 's' : ''} detected`,
286
+ targetFiles,
287
+ steps: [
288
+ 'Review high-priority gaps in important files',
289
+ 'Generate tests for uncovered branches and error paths',
290
+ 'Add tests for complex conditional logic',
291
+ 'Focus on frequently changed code areas'
292
+ ],
293
+ automation: {
294
+ command: `aqe generate tests --priority=high --coverage-target=80`,
295
+ canAutoFix: true,
296
+ confidence: 0.88,
297
+ estimatedTime: gaps.length * 4,
298
+ estimatedTests: gaps.reduce((sum, g) => sum + g.uncoveredLines.length, 0)
299
+ }
300
+ };
301
+ }
302
+ /**
303
+ * Create coverage trend action
304
+ */
305
+ createCoverageTrendAction(trend) {
306
+ const isImproving = trend.direction === 'improving';
307
+ const isDegrading = trend.direction === 'degrading';
308
+ return {
309
+ action: OutputFormatter_1.ActionTypes.REVIEW_COVERAGE_TREND,
310
+ priority: isDegrading ? 'medium' : 'low',
311
+ reason: `Coverage ${trend.direction} by ${Math.abs(trend.change).toFixed(2)}% (${trend.previousCoverage.toFixed(2)}% → ${trend.currentCoverage.toFixed(2)}%)`,
312
+ steps: isImproving
313
+ ? [
314
+ 'Continue current testing practices',
315
+ 'Maintain momentum on test coverage',
316
+ 'Set up coverage ratcheting in CI/CD',
317
+ 'Monitor coverage on each commit'
318
+ ]
319
+ : [
320
+ 'Investigate causes of coverage degradation',
321
+ 'Review recent code changes without tests',
322
+ 'Add tests for new features before merging',
323
+ 'Enable pre-commit coverage checks'
324
+ ],
325
+ automation: {
326
+ command: 'aqe coverage trends --days=30',
327
+ canAutoFix: false,
328
+ confidence: 1.0
329
+ }
330
+ };
331
+ }
332
+ /**
333
+ * Create overall coverage action
334
+ */
335
+ createOverallCoverageAction(summary) {
336
+ const gap = 80 - summary.overall;
337
+ return {
338
+ action: OutputFormatter_1.ActionTypes.INCREASE_COVERAGE,
339
+ priority: summary.overall < 60 ? 'critical' : 'high',
340
+ reason: `Overall coverage is ${summary.overall.toFixed(2)}% (target: 80%)`,
341
+ steps: [
342
+ 'Analyze coverage gaps: aqe analyze coverage --detailed',
343
+ 'Generate tests for uncovered areas',
344
+ 'Focus on high-impact, low-coverage files first',
345
+ 'Set up coverage gates in CI/CD'
346
+ ],
347
+ automation: {
348
+ command: 'aqe generate tests --coverage-target=80 --focus=critical',
349
+ canAutoFix: true,
350
+ confidence: 0.87,
351
+ estimatedTime: Math.ceil(gap * 3),
352
+ estimatedTests: Math.ceil(gap * 5)
353
+ },
354
+ impact: {
355
+ currentValue: summary.overall,
356
+ targetValue: 80.0,
357
+ estimatedImprovement: gap,
358
+ businessValue: summary.overall < 60 ? 'critical' : 'high'
359
+ }
360
+ };
361
+ }
362
+ /**
363
+ * Create quality gate failures action
364
+ */
365
+ createQualityGateFailuresAction(failedGates) {
366
+ return {
367
+ action: 'fix_quality_gates',
368
+ priority: 'high',
369
+ reason: `${failedGates.length} quality gate${failedGates.length > 1 ? 's' : ''} failed`,
370
+ steps: [
371
+ 'Review failed quality gates and thresholds',
372
+ `Priority gates: ${failedGates.map(g => g.name).join(', ')}`,
373
+ 'Address highest-impact failures first',
374
+ 'Adjust thresholds if needed (with team approval)'
375
+ ],
376
+ automation: {
377
+ command: 'aqe quality gates --fix',
378
+ canAutoFix: false,
379
+ confidence: 0.60,
380
+ estimatedTime: failedGates.length * 15
381
+ }
382
+ };
383
+ }
384
+ /**
385
+ * Create code smells action
386
+ */
387
+ createCodeSmellsAction(codeSmells) {
388
+ const priorityTypes = Object.entries(codeSmells.byType)
389
+ .sort(([, a], [, b]) => b - a)
390
+ .slice(0, 3)
391
+ .map(([type]) => type);
392
+ return {
393
+ action: OutputFormatter_1.ActionTypes.FIX_CODE_SMELLS,
394
+ priority: codeSmells.total > 50 ? 'high' : 'medium',
395
+ reason: `${codeSmells.total} code smell${codeSmells.total > 1 ? 's' : ''} detected`,
396
+ steps: [
397
+ `Focus on top issues: ${priorityTypes.join(', ')}`,
398
+ 'Review duplicate code and extract common utilities',
399
+ 'Refactor long methods into smaller, focused functions',
400
+ 'Split large classes into cohesive components',
401
+ 'Run code quality analysis: aqe analyze quality --detailed'
402
+ ],
403
+ automation: {
404
+ command: 'aqe analyze smells --fix-duplicates --interactive',
405
+ canAutoFix: true,
406
+ confidence: 0.75,
407
+ estimatedTime: Math.ceil(codeSmells.total / 2)
408
+ },
409
+ relatedDocs: [
410
+ 'https://refactoring.guru/refactoring/smells',
411
+ '/workspaces/agentic-qe-cf/docs/guides/code-quality-best-practices.md'
412
+ ]
413
+ };
414
+ }
415
+ /**
416
+ * Create technical debt action
417
+ */
418
+ createTechnicalDebtAction(technicalDebt) {
419
+ return {
420
+ action: 'reduce_technical_debt',
421
+ priority: technicalDebt.total > 100 ? 'high' : 'medium',
422
+ reason: `${technicalDebt.total} ${technicalDebt.unit} of technical debt accumulated`,
423
+ steps: [
424
+ 'Prioritize debt by business impact and effort',
425
+ 'Allocate time in each sprint for debt reduction',
426
+ 'Focus on high-ROI improvements first',
427
+ 'Track debt trends over time'
428
+ ],
429
+ automation: {
430
+ command: 'aqe analyze debt --prioritize',
431
+ canAutoFix: false,
432
+ confidence: 0.65,
433
+ estimatedTime: Math.ceil(technicalDebt.total / 2)
434
+ }
435
+ };
436
+ }
437
+ /**
438
+ * Create complexity action
439
+ */
440
+ createComplexityAction(gate) {
441
+ return {
442
+ action: OutputFormatter_1.ActionTypes.REDUCE_COMPLEXITY,
443
+ priority: 'high',
444
+ reason: `Cyclomatic complexity exceeds threshold (${gate.actualValue} > ${gate.threshold})`,
445
+ steps: [
446
+ 'Identify complex methods and functions',
447
+ 'Extract nested logic into separate functions',
448
+ 'Apply Single Responsibility Principle',
449
+ 'Consider Strategy pattern for complex conditionals',
450
+ 'Use early returns to reduce nesting'
451
+ ],
452
+ automation: {
453
+ command: 'aqe analyze complexity --refactor-suggestions',
454
+ canAutoFix: false,
455
+ confidence: 0.55,
456
+ estimatedTime: 60
457
+ },
458
+ relatedDocs: [
459
+ 'https://refactoring.guru/refactoring/techniques',
460
+ '/workspaces/agentic-qe-cf/docs/guides/reducing-complexity.md'
461
+ ]
462
+ };
463
+ }
464
+ // ==================== Utility Methods ====================
465
+ /**
466
+ * Sort actions by priority
467
+ */
468
+ sortActionsByPriority(actions) {
469
+ const priorityOrder = {
470
+ critical: 1,
471
+ high: 2,
472
+ medium: 3,
473
+ low: 4,
474
+ info: 5
475
+ };
476
+ return actions.sort((a, b) => priorityOrder[a.priority] - priorityOrder[b.priority]);
477
+ }
478
+ /**
479
+ * Calculate average flakiness score
480
+ */
481
+ calculateAverageFlakinessScore(flaky) {
482
+ if (flaky.length === 0)
483
+ return 0;
484
+ const sum = flaky.reduce((acc, test) => acc + test.flakinessScore * 100, 0);
485
+ return sum / flaky.length;
486
+ }
487
+ /**
488
+ * Round to 2 decimal places
489
+ */
490
+ round(value) {
491
+ return Math.round(value * 100) / 100;
492
+ }
493
+ }
494
+ exports.AIActionSuggester = AIActionSuggester;
495
+ /**
496
+ * Default singleton instance
497
+ */
498
+ exports.actionSuggester = new AIActionSuggester();
499
+ //# sourceMappingURL=AIActionSuggester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIActionSuggester.js","sourceRoot":"","sources":["../../src/output/AIActionSuggester.ts"],"names":[],"mappings":"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"}