agentic-qe 1.3.3 → 1.3.5

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 (147) hide show
  1. package/.claude/agents/qe-api-contract-validator.md +20 -0
  2. package/.claude/agents/qe-chaos-engineer.md +20 -0
  3. package/.claude/agents/qe-coverage-analyzer.md +21 -0
  4. package/.claude/agents/qe-deployment-readiness.md +20 -0
  5. package/.claude/agents/qe-flaky-test-hunter.md +20 -0
  6. package/.claude/agents/qe-fleet-commander.md +20 -0
  7. package/.claude/agents/qe-performance-tester.md +21 -0
  8. package/.claude/agents/qe-production-intelligence.md +20 -0
  9. package/.claude/agents/qe-quality-analyzer.md +20 -0
  10. package/.claude/agents/qe-quality-gate.md +20 -0
  11. package/.claude/agents/qe-regression-risk-analyzer.md +20 -0
  12. package/.claude/agents/qe-requirements-validator.md +20 -0
  13. package/.claude/agents/qe-security-scanner.md +21 -0
  14. package/.claude/agents/qe-test-data-architect.md +19 -0
  15. package/.claude/agents/qe-test-executor.md +20 -0
  16. package/.claude/agents/qe-test-generator.md +22 -0
  17. package/.claude/agents/qe-visual-tester.md +22 -0
  18. package/CHANGELOG.md +252 -0
  19. package/README.md +325 -1019
  20. package/README.md.backup-20251026 +1366 -0
  21. package/bin/aqe-mcp +1 -1
  22. package/dist/agents/BaseAgent.js +1 -1
  23. package/dist/agents/BaseAgent.js.map +1 -1
  24. package/dist/agents/CoverageAnalyzerAgent.js +16 -16
  25. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  26. package/dist/agents/FlakyTestHunterAgent.js +1 -1
  27. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  28. package/dist/cli/commands/init.d.ts.map +1 -1
  29. package/dist/cli/commands/init.js +71 -37
  30. package/dist/cli/commands/init.js.map +1 -1
  31. package/dist/cli/commands/routing/index.d.ts +1 -1
  32. package/dist/cli/commands/routing/index.d.ts.map +1 -1
  33. package/dist/cli/commands/routing/index.js +29 -19
  34. package/dist/cli/commands/routing/index.js.map +1 -1
  35. package/dist/core/memory/EnhancedAgentDBService.d.ts +127 -0
  36. package/dist/core/memory/EnhancedAgentDBService.d.ts.map +1 -0
  37. package/dist/core/memory/EnhancedAgentDBService.js +298 -0
  38. package/dist/core/memory/EnhancedAgentDBService.js.map +1 -0
  39. package/dist/core/neural/NeuralTrainer.js +2 -2
  40. package/dist/core/neural/NeuralTrainer.js.map +1 -1
  41. package/dist/learning/ExperienceReplayBuffer.d.ts +143 -0
  42. package/dist/learning/ExperienceReplayBuffer.d.ts.map +1 -0
  43. package/dist/learning/ExperienceReplayBuffer.js +255 -0
  44. package/dist/learning/ExperienceReplayBuffer.js.map +1 -0
  45. package/dist/learning/FixRecommendationEngine.d.ts +68 -0
  46. package/dist/learning/FixRecommendationEngine.d.ts.map +1 -0
  47. package/dist/learning/FixRecommendationEngine.js +500 -0
  48. package/dist/learning/FixRecommendationEngine.js.map +1 -0
  49. package/dist/learning/FlakyTestDetector.d.ts +19 -0
  50. package/dist/learning/FlakyTestDetector.d.ts.map +1 -1
  51. package/dist/learning/FlakyTestDetector.js +121 -2
  52. package/dist/learning/FlakyTestDetector.js.map +1 -1
  53. package/dist/learning/LearningEngine.d.ts +50 -1
  54. package/dist/learning/LearningEngine.d.ts.map +1 -1
  55. package/dist/learning/LearningEngine.js +140 -0
  56. package/dist/learning/LearningEngine.js.map +1 -1
  57. package/dist/learning/QLearning.d.ts +154 -0
  58. package/dist/learning/QLearning.d.ts.map +1 -0
  59. package/dist/learning/QLearning.js +337 -0
  60. package/dist/learning/QLearning.js.map +1 -0
  61. package/dist/learning/index.d.ts +4 -0
  62. package/dist/learning/index.d.ts.map +1 -1
  63. package/dist/learning/index.js +7 -0
  64. package/dist/learning/index.js.map +1 -1
  65. package/dist/learning/types.d.ts +11 -0
  66. package/dist/learning/types.d.ts.map +1 -1
  67. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts +11 -1
  68. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts.map +1 -1
  69. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js +12 -0
  70. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js.map +1 -1
  71. package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts +10 -1
  72. package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts.map +1 -1
  73. package/dist/mcp/streaming/TestExecuteStreamHandler.js +11 -0
  74. package/dist/mcp/streaming/TestExecuteStreamHandler.js.map +1 -1
  75. package/dist/reasoning/PatternQualityScorer.d.ts +134 -0
  76. package/dist/reasoning/PatternQualityScorer.d.ts.map +1 -0
  77. package/dist/reasoning/PatternQualityScorer.js +340 -0
  78. package/dist/reasoning/PatternQualityScorer.js.map +1 -0
  79. package/dist/reasoning/QEReasoningBank.d.ts +138 -4
  80. package/dist/reasoning/QEReasoningBank.d.ts.map +1 -1
  81. package/dist/reasoning/QEReasoningBank.js +560 -12
  82. package/dist/reasoning/QEReasoningBank.js.map +1 -1
  83. package/dist/reasoning/VectorSimilarity.d.ts +131 -0
  84. package/dist/reasoning/VectorSimilarity.d.ts.map +1 -0
  85. package/dist/reasoning/VectorSimilarity.js +250 -0
  86. package/dist/reasoning/VectorSimilarity.js.map +1 -0
  87. package/dist/reasoning/index.d.ts +8 -1
  88. package/dist/reasoning/index.d.ts.map +1 -1
  89. package/dist/reasoning/index.js +13 -2
  90. package/dist/reasoning/index.js.map +1 -1
  91. package/dist/streaming/BaseStreamHandler.d.ts +89 -0
  92. package/dist/streaming/BaseStreamHandler.d.ts.map +1 -0
  93. package/dist/streaming/BaseStreamHandler.js +168 -0
  94. package/dist/streaming/BaseStreamHandler.js.map +1 -0
  95. package/dist/streaming/TestGenerateStreamHandler.d.ts +103 -0
  96. package/dist/streaming/TestGenerateStreamHandler.d.ts.map +1 -0
  97. package/dist/streaming/TestGenerateStreamHandler.js +321 -0
  98. package/dist/streaming/TestGenerateStreamHandler.js.map +1 -0
  99. package/dist/streaming/index.d.ts +16 -0
  100. package/dist/streaming/index.d.ts.map +1 -0
  101. package/dist/streaming/index.js +39 -0
  102. package/dist/streaming/index.js.map +1 -0
  103. package/dist/utils/__mocks__/Logger.d.ts +26 -0
  104. package/dist/utils/__mocks__/Logger.d.ts.map +1 -0
  105. package/dist/utils/__mocks__/Logger.js +42 -0
  106. package/dist/utils/__mocks__/Logger.js.map +1 -0
  107. package/package.json +15 -3
  108. package/dist/agents/mixins/NeuralCapableMixin.d.ts +0 -130
  109. package/dist/agents/mixins/NeuralCapableMixin.d.ts.map +0 -1
  110. package/dist/agents/mixins/NeuralCapableMixin.js +0 -358
  111. package/dist/agents/mixins/NeuralCapableMixin.js.map +0 -1
  112. package/dist/agents/mixins/QUICCapableMixin.d.ts +0 -34
  113. package/dist/agents/mixins/QUICCapableMixin.d.ts.map +0 -1
  114. package/dist/agents/mixins/QUICCapableMixin.js +0 -346
  115. package/dist/agents/mixins/QUICCapableMixin.js.map +0 -1
  116. package/dist/core/security/CertificateValidator.d.ts +0 -130
  117. package/dist/core/security/CertificateValidator.d.ts.map +0 -1
  118. package/dist/core/security/CertificateValidator.js +0 -376
  119. package/dist/core/security/CertificateValidator.js.map +0 -1
  120. package/dist/core/transport/QUICTransport.d.ts +0 -62
  121. package/dist/core/transport/QUICTransport.d.ts.map +0 -1
  122. package/dist/core/transport/QUICTransport.js +0 -381
  123. package/dist/core/transport/QUICTransport.js.map +0 -1
  124. package/dist/core/transport/SecureQUICTransport.d.ts +0 -71
  125. package/dist/core/transport/SecureQUICTransport.d.ts.map +0 -1
  126. package/dist/core/transport/SecureQUICTransport.js +0 -253
  127. package/dist/core/transport/SecureQUICTransport.js.map +0 -1
  128. package/dist/learning/AdvancedFeatureExtractor.d.ts +0 -123
  129. package/dist/learning/AdvancedFeatureExtractor.d.ts.map +0 -1
  130. package/dist/learning/AdvancedFeatureExtractor.js +0 -423
  131. package/dist/learning/AdvancedFeatureExtractor.js.map +0 -1
  132. package/dist/learning/NeuralPatternMatcher.d.ts +0 -184
  133. package/dist/learning/NeuralPatternMatcher.d.ts.map +0 -1
  134. package/dist/learning/NeuralPatternMatcher.js +0 -702
  135. package/dist/learning/NeuralPatternMatcher.js.map +0 -1
  136. package/dist/learning/NeuralTrainer.d.ts +0 -209
  137. package/dist/learning/NeuralTrainer.d.ts.map +0 -1
  138. package/dist/learning/NeuralTrainer.js +0 -478
  139. package/dist/learning/NeuralTrainer.js.map +0 -1
  140. package/dist/transport/QUICTransport.d.ts +0 -340
  141. package/dist/transport/QUICTransport.d.ts.map +0 -1
  142. package/dist/transport/QUICTransport.js +0 -814
  143. package/dist/transport/QUICTransport.js.map +0 -1
  144. package/dist/transport/UDPTransport.d.ts +0 -348
  145. package/dist/transport/UDPTransport.d.ts.map +0 -1
  146. package/dist/transport/UDPTransport.js +0 -820
  147. package/dist/transport/UDPTransport.js.map +0 -1
@@ -0,0 +1,154 @@
1
+ /**
2
+ * QLearning - Phase 2 (Milestone 2.2)
3
+ *
4
+ * Implements standard Q-learning algorithm for reinforcement learning.
5
+ * Provides epsilon-greedy policy, Q-table updates, and value function estimation.
6
+ */
7
+ import { TaskState, AgentAction, TaskExperience } from './types';
8
+ /**
9
+ * Q-learning algorithm configuration
10
+ */
11
+ export interface QLearningConfig {
12
+ learningRate: number;
13
+ discountFactor: number;
14
+ explorationRate: number;
15
+ explorationDecay: number;
16
+ minExplorationRate: number;
17
+ useExperienceReplay: boolean;
18
+ replayBufferSize: number;
19
+ batchSize: number;
20
+ }
21
+ /**
22
+ * Q-learning action-value pair
23
+ */
24
+ interface QValue {
25
+ state: string;
26
+ action: string;
27
+ value: number;
28
+ updateCount: number;
29
+ lastUpdated: number;
30
+ }
31
+ /**
32
+ * QLearning - Standard Q-learning implementation
33
+ *
34
+ * Implements the classic Q-learning algorithm with:
35
+ * - Epsilon-greedy exploration policy
36
+ * - Temporal difference (TD) learning
37
+ * - Q-table for state-action values
38
+ * - Optional experience replay for stability
39
+ */
40
+ export declare class QLearning {
41
+ private readonly logger;
42
+ private config;
43
+ private qTable;
44
+ private replayBuffer?;
45
+ private stepCount;
46
+ private episodeCount;
47
+ constructor(config?: Partial<QLearningConfig>);
48
+ /**
49
+ * Select action using epsilon-greedy policy
50
+ * With probability ε, select random action (exploration)
51
+ * Otherwise, select action with highest Q-value (exploitation)
52
+ */
53
+ selectAction(state: TaskState, availableActions: AgentAction[]): AgentAction;
54
+ /**
55
+ * Get best action based on current Q-values
56
+ */
57
+ getBestAction(state: TaskState, availableActions: AgentAction[]): AgentAction;
58
+ /**
59
+ * Update Q-value using Q-learning update rule
60
+ * Q(s,a) ← Q(s,a) + α[r + γ·max(Q(s',a')) - Q(s,a)]
61
+ */
62
+ update(experience: TaskExperience): void;
63
+ /**
64
+ * Perform batch update using experience replay
65
+ * Samples random batch from replay buffer and updates Q-values
66
+ */
67
+ batchUpdate(): void;
68
+ /**
69
+ * Get Q-value for a state-action pair
70
+ */
71
+ getQValue(state: TaskState, action: AgentAction): number;
72
+ /**
73
+ * Get all Q-values for a state
74
+ */
75
+ getStateValues(state: TaskState): Map<string, number>;
76
+ /**
77
+ * Get value of a state (max Q-value over all actions)
78
+ * V(s) = max_a Q(s,a)
79
+ */
80
+ getStateValue(state: TaskState): number;
81
+ /**
82
+ * Decay exploration rate (epsilon)
83
+ * Called after each episode to gradually reduce exploration
84
+ */
85
+ decayExploration(): void;
86
+ /**
87
+ * Mark end of episode
88
+ */
89
+ endEpisode(): void;
90
+ /**
91
+ * Encode state to string key for Q-table
92
+ */
93
+ private encodeState;
94
+ /**
95
+ * Encode action to string key for Q-table
96
+ */
97
+ private encodeAction;
98
+ /**
99
+ * Get current exploration rate (epsilon)
100
+ */
101
+ getExplorationRate(): number;
102
+ /**
103
+ * Get total number of learning steps
104
+ */
105
+ getStepCount(): number;
106
+ /**
107
+ * Get total number of episodes
108
+ */
109
+ getEpisodeCount(): number;
110
+ /**
111
+ * Get Q-table size (number of state-action pairs)
112
+ */
113
+ getTableSize(): number;
114
+ /**
115
+ * Get statistics about learning progress
116
+ */
117
+ getStatistics(): {
118
+ steps: number;
119
+ episodes: number;
120
+ tableSize: number;
121
+ explorationRate: number;
122
+ avgQValue: number;
123
+ maxQValue: number;
124
+ minQValue: number;
125
+ };
126
+ /**
127
+ * Reset Q-table and learning state
128
+ */
129
+ reset(): void;
130
+ /**
131
+ * Export Q-table and state for persistence
132
+ */
133
+ export(): {
134
+ qTable: Record<string, Record<string, QValue>>;
135
+ config: QLearningConfig;
136
+ stepCount: number;
137
+ episodeCount: number;
138
+ };
139
+ /**
140
+ * Import Q-table and state from persistence
141
+ */
142
+ import(state: {
143
+ qTable: Record<string, Record<string, QValue>>;
144
+ config: QLearningConfig;
145
+ stepCount: number;
146
+ episodeCount: number;
147
+ }): void;
148
+ /**
149
+ * Get memory usage estimate in bytes
150
+ */
151
+ getMemoryUsage(): number;
152
+ }
153
+ export {};
154
+ //# sourceMappingURL=QLearning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QLearning.d.ts","sourceRoot":"","sources":["../../src/learning/QLearning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,337 @@
1
+ "use strict";
2
+ /**
3
+ * QLearning - Phase 2 (Milestone 2.2)
4
+ *
5
+ * Implements standard Q-learning algorithm for reinforcement learning.
6
+ * Provides epsilon-greedy policy, Q-table updates, and value function estimation.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.QLearning = void 0;
10
+ const Logger_1 = require("../utils/Logger");
11
+ const ExperienceReplayBuffer_1 = require("./ExperienceReplayBuffer");
12
+ /**
13
+ * Default Q-learning configuration
14
+ */
15
+ const DEFAULT_CONFIG = {
16
+ learningRate: 0.1,
17
+ discountFactor: 0.95,
18
+ explorationRate: 0.3,
19
+ explorationDecay: 0.995,
20
+ minExplorationRate: 0.01,
21
+ useExperienceReplay: true,
22
+ replayBufferSize: 10000,
23
+ batchSize: 32
24
+ };
25
+ /**
26
+ * QLearning - Standard Q-learning implementation
27
+ *
28
+ * Implements the classic Q-learning algorithm with:
29
+ * - Epsilon-greedy exploration policy
30
+ * - Temporal difference (TD) learning
31
+ * - Q-table for state-action values
32
+ * - Optional experience replay for stability
33
+ */
34
+ class QLearning {
35
+ constructor(config = {}) {
36
+ this.logger = Logger_1.Logger.getInstance();
37
+ this.config = { ...DEFAULT_CONFIG, ...config };
38
+ this.qTable = new Map();
39
+ this.stepCount = 0;
40
+ this.episodeCount = 0;
41
+ // Initialize experience replay buffer if enabled
42
+ if (this.config.useExperienceReplay) {
43
+ this.replayBuffer = new ExperienceReplayBuffer_1.ExperienceReplayBuffer({
44
+ maxSize: this.config.replayBufferSize,
45
+ minSize: this.config.batchSize,
46
+ prioritized: false
47
+ });
48
+ }
49
+ this.logger.info('QLearning initialized', { config: this.config });
50
+ }
51
+ /**
52
+ * Select action using epsilon-greedy policy
53
+ * With probability ε, select random action (exploration)
54
+ * Otherwise, select action with highest Q-value (exploitation)
55
+ */
56
+ selectAction(state, availableActions) {
57
+ if (availableActions.length === 0) {
58
+ throw new Error('No available actions to select from');
59
+ }
60
+ // Exploration: random action
61
+ if (Math.random() < this.config.explorationRate) {
62
+ const randomIndex = Math.floor(Math.random() * availableActions.length);
63
+ return availableActions[randomIndex];
64
+ }
65
+ // Exploitation: best action based on Q-values
66
+ return this.getBestAction(state, availableActions);
67
+ }
68
+ /**
69
+ * Get best action based on current Q-values
70
+ */
71
+ getBestAction(state, availableActions) {
72
+ const stateKey = this.encodeState(state);
73
+ const stateActions = this.qTable.get(stateKey);
74
+ if (!stateActions || stateActions.size === 0) {
75
+ // No Q-values yet, return random action
76
+ const randomIndex = Math.floor(Math.random() * availableActions.length);
77
+ return availableActions[randomIndex];
78
+ }
79
+ // Find action with highest Q-value
80
+ let bestAction = availableActions[0];
81
+ let bestValue = -Infinity;
82
+ for (const action of availableActions) {
83
+ const actionKey = this.encodeAction(action);
84
+ const qValue = stateActions.get(actionKey);
85
+ if (qValue && qValue.value > bestValue) {
86
+ bestValue = qValue.value;
87
+ bestAction = action;
88
+ }
89
+ }
90
+ return bestAction;
91
+ }
92
+ /**
93
+ * Update Q-value using Q-learning update rule
94
+ * Q(s,a) ← Q(s,a) + α[r + γ·max(Q(s',a')) - Q(s,a)]
95
+ */
96
+ update(experience) {
97
+ const stateKey = this.encodeState(experience.state);
98
+ const actionKey = this.encodeAction(experience.action);
99
+ const nextStateKey = this.encodeState(experience.nextState);
100
+ // Get or initialize state-action map
101
+ if (!this.qTable.has(stateKey)) {
102
+ this.qTable.set(stateKey, new Map());
103
+ }
104
+ const stateActions = this.qTable.get(stateKey);
105
+ // Get current Q-value
106
+ const currentQValue = stateActions.get(actionKey);
107
+ const currentQ = currentQValue?.value ?? 0;
108
+ // Get max Q-value for next state (for all possible actions)
109
+ const nextStateActions = this.qTable.get(nextStateKey);
110
+ const maxNextQ = nextStateActions && nextStateActions.size > 0
111
+ ? Math.max(...Array.from(nextStateActions.values()).map(qv => qv.value))
112
+ : 0;
113
+ // Q-learning update rule
114
+ // Q(s,a) = Q(s,a) + α * [r + γ * max(Q(s',a')) - Q(s,a)]
115
+ const tdTarget = experience.reward + this.config.discountFactor * maxNextQ;
116
+ const tdError = tdTarget - currentQ;
117
+ const newQ = currentQ + this.config.learningRate * tdError;
118
+ // Update Q-value
119
+ stateActions.set(actionKey, {
120
+ state: stateKey,
121
+ action: actionKey,
122
+ value: newQ,
123
+ updateCount: (currentQValue?.updateCount ?? 0) + 1,
124
+ lastUpdated: Date.now()
125
+ });
126
+ // Add to experience replay buffer
127
+ if (this.replayBuffer) {
128
+ this.replayBuffer.add(experience, Math.abs(tdError)); // Priority based on TD error
129
+ }
130
+ this.stepCount++;
131
+ }
132
+ /**
133
+ * Perform batch update using experience replay
134
+ * Samples random batch from replay buffer and updates Q-values
135
+ */
136
+ batchUpdate() {
137
+ if (!this.replayBuffer || !this.replayBuffer.canSample(this.config.batchSize)) {
138
+ return;
139
+ }
140
+ const batch = this.replayBuffer.sample(this.config.batchSize);
141
+ for (const experience of batch) {
142
+ this.update(experience);
143
+ }
144
+ this.logger.debug(`Performed batch update with ${batch.length} experiences`);
145
+ }
146
+ /**
147
+ * Get Q-value for a state-action pair
148
+ */
149
+ getQValue(state, action) {
150
+ const stateKey = this.encodeState(state);
151
+ const actionKey = this.encodeAction(action);
152
+ const stateActions = this.qTable.get(stateKey);
153
+ if (!stateActions) {
154
+ return 0;
155
+ }
156
+ const qValue = stateActions.get(actionKey);
157
+ return qValue?.value ?? 0;
158
+ }
159
+ /**
160
+ * Get all Q-values for a state
161
+ */
162
+ getStateValues(state) {
163
+ const stateKey = this.encodeState(state);
164
+ const stateActions = this.qTable.get(stateKey);
165
+ if (!stateActions) {
166
+ return new Map();
167
+ }
168
+ const values = new Map();
169
+ for (const [actionKey, qValue] of stateActions.entries()) {
170
+ values.set(actionKey, qValue.value);
171
+ }
172
+ return values;
173
+ }
174
+ /**
175
+ * Get value of a state (max Q-value over all actions)
176
+ * V(s) = max_a Q(s,a)
177
+ */
178
+ getStateValue(state) {
179
+ const stateKey = this.encodeState(state);
180
+ const stateActions = this.qTable.get(stateKey);
181
+ if (!stateActions || stateActions.size === 0) {
182
+ return 0;
183
+ }
184
+ return Math.max(...Array.from(stateActions.values()).map(qv => qv.value));
185
+ }
186
+ /**
187
+ * Decay exploration rate (epsilon)
188
+ * Called after each episode to gradually reduce exploration
189
+ */
190
+ decayExploration() {
191
+ this.config.explorationRate = Math.max(this.config.minExplorationRate, this.config.explorationRate * this.config.explorationDecay);
192
+ }
193
+ /**
194
+ * Mark end of episode
195
+ */
196
+ endEpisode() {
197
+ this.episodeCount++;
198
+ this.decayExploration();
199
+ // Perform batch update if using experience replay
200
+ if (this.config.useExperienceReplay) {
201
+ this.batchUpdate();
202
+ }
203
+ }
204
+ /**
205
+ * Encode state to string key for Q-table
206
+ */
207
+ encodeState(state) {
208
+ // Create normalized feature vector
209
+ const features = [
210
+ state.taskComplexity,
211
+ state.requiredCapabilities.length / 10, // normalize
212
+ state.previousAttempts / 5, // normalize
213
+ state.availableResources,
214
+ state.timeConstraint ? Math.min(state.timeConstraint / 300000, 1) : 1 // normalize to 5 min
215
+ ];
216
+ // Round to reduce state space (discretization)
217
+ return features.map(f => Math.round(f * 10) / 10).join(',');
218
+ }
219
+ /**
220
+ * Encode action to string key for Q-table
221
+ */
222
+ encodeAction(action) {
223
+ return `${action.strategy}:${action.parallelization.toFixed(1)}:${action.retryPolicy}`;
224
+ }
225
+ /**
226
+ * Get current exploration rate (epsilon)
227
+ */
228
+ getExplorationRate() {
229
+ return this.config.explorationRate;
230
+ }
231
+ /**
232
+ * Get total number of learning steps
233
+ */
234
+ getStepCount() {
235
+ return this.stepCount;
236
+ }
237
+ /**
238
+ * Get total number of episodes
239
+ */
240
+ getEpisodeCount() {
241
+ return this.episodeCount;
242
+ }
243
+ /**
244
+ * Get Q-table size (number of state-action pairs)
245
+ */
246
+ getTableSize() {
247
+ let size = 0;
248
+ for (const stateActions of this.qTable.values()) {
249
+ size += stateActions.size;
250
+ }
251
+ return size;
252
+ }
253
+ /**
254
+ * Get statistics about learning progress
255
+ */
256
+ getStatistics() {
257
+ let totalQValue = 0;
258
+ let count = 0;
259
+ let maxQ = -Infinity;
260
+ let minQ = Infinity;
261
+ for (const stateActions of this.qTable.values()) {
262
+ for (const qValue of stateActions.values()) {
263
+ totalQValue += qValue.value;
264
+ maxQ = Math.max(maxQ, qValue.value);
265
+ minQ = Math.min(minQ, qValue.value);
266
+ count++;
267
+ }
268
+ }
269
+ return {
270
+ steps: this.stepCount,
271
+ episodes: this.episodeCount,
272
+ tableSize: count,
273
+ explorationRate: this.config.explorationRate,
274
+ avgQValue: count > 0 ? totalQValue / count : 0,
275
+ maxQValue: count > 0 ? maxQ : 0,
276
+ minQValue: count > 0 ? minQ : 0
277
+ };
278
+ }
279
+ /**
280
+ * Reset Q-table and learning state
281
+ */
282
+ reset() {
283
+ this.qTable.clear();
284
+ this.stepCount = 0;
285
+ this.episodeCount = 0;
286
+ this.config.explorationRate = DEFAULT_CONFIG.explorationRate;
287
+ if (this.replayBuffer) {
288
+ this.replayBuffer.clear();
289
+ }
290
+ this.logger.info('QLearning reset to initial state');
291
+ }
292
+ /**
293
+ * Export Q-table and state for persistence
294
+ */
295
+ export() {
296
+ const serializedQTable = {};
297
+ for (const [state, actions] of this.qTable.entries()) {
298
+ serializedQTable[state] = {};
299
+ for (const [action, qValue] of actions.entries()) {
300
+ serializedQTable[state][action] = qValue;
301
+ }
302
+ }
303
+ return {
304
+ qTable: serializedQTable,
305
+ config: { ...this.config },
306
+ stepCount: this.stepCount,
307
+ episodeCount: this.episodeCount
308
+ };
309
+ }
310
+ /**
311
+ * Import Q-table and state from persistence
312
+ */
313
+ import(state) {
314
+ this.qTable.clear();
315
+ for (const [stateKey, actions] of Object.entries(state.qTable)) {
316
+ const actionMap = new Map();
317
+ for (const [actionKey, qValue] of Object.entries(actions)) {
318
+ actionMap.set(actionKey, qValue);
319
+ }
320
+ this.qTable.set(stateKey, actionMap);
321
+ }
322
+ this.config = { ...state.config };
323
+ this.stepCount = state.stepCount;
324
+ this.episodeCount = state.episodeCount;
325
+ this.logger.info(`Imported Q-table with ${this.getTableSize()} state-action pairs`);
326
+ }
327
+ /**
328
+ * Get memory usage estimate in bytes
329
+ */
330
+ getMemoryUsage() {
331
+ const qTableSize = JSON.stringify(this.export().qTable).length;
332
+ const bufferSize = this.replayBuffer?.getMemoryUsage() ?? 0;
333
+ return qTableSize + bufferSize;
334
+ }
335
+ }
336
+ exports.QLearning = QLearning;
337
+ //# sourceMappingURL=QLearning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QLearning.js","sourceRoot":"","sources":["../../src/learning/QLearning.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  /**
2
2
  * Learning System - Phase 2 (Milestone 2.2)
3
+ * Enhanced (v1.3.3+) - ML Root Cause Analysis and Fix Recommendations
3
4
  *
4
5
  * Exports all learning components for agent performance improvement.
5
6
  */
6
7
  export * from './types';
7
8
  export * from './LearningEngine';
9
+ export * from './QLearning';
10
+ export * from './ExperienceReplayBuffer';
8
11
  export * from './PerformanceTracker';
9
12
  export * from './ImprovementLoop';
10
13
  export * from './ImprovementWorker';
@@ -13,4 +16,5 @@ export * from './FlakyPredictionModel';
13
16
  export * from './FlakyFixRecommendations';
14
17
  export * from './StatisticalAnalysis';
15
18
  export * from './SwarmIntegration';
19
+ export { FixRecommendationEngine } from './FixRecommendationEngine';
16
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EACL,uBAAuB,EACxB,MAAM,2BAA2B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Learning System - Phase 2 (Milestone 2.2)
4
+ * Enhanced (v1.3.3+) - ML Root Cause Analysis and Fix Recommendations
4
5
  *
5
6
  * Exports all learning components for agent performance improvement.
6
7
  */
@@ -19,8 +20,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
21
  };
21
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.FixRecommendationEngine = void 0;
22
24
  __exportStar(require("./types"), exports);
23
25
  __exportStar(require("./LearningEngine"), exports);
26
+ __exportStar(require("./QLearning"), exports);
27
+ __exportStar(require("./ExperienceReplayBuffer"), exports);
24
28
  __exportStar(require("./PerformanceTracker"), exports);
25
29
  __exportStar(require("./ImprovementLoop"), exports);
26
30
  __exportStar(require("./ImprovementWorker"), exports);
@@ -29,4 +33,7 @@ __exportStar(require("./FlakyPredictionModel"), exports);
29
33
  __exportStar(require("./FlakyFixRecommendations"), exports);
30
34
  __exportStar(require("./StatisticalAnalysis"), exports);
31
35
  __exportStar(require("./SwarmIntegration"), exports);
36
+ // Enhanced fix recommendations (NEW in v1.3.3+)
37
+ var FixRecommendationEngine_1 = require("./FixRecommendationEngine");
38
+ Object.defineProperty(exports, "FixRecommendationEngine", { enumerable: true, get: function () { return FixRecommendationEngine_1.FixRecommendationEngine; } });
32
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,mDAAiC;AACjC,uDAAqC;AACrC,oDAAkC;AAClC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,4DAA0C;AAC1C,wDAAsC;AACtC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,mDAAiC;AACjC,8CAA4B;AAC5B,2DAAyC;AACzC,uDAAqC;AACrC,oDAAkC;AAClC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,4DAA0C;AAC1C,wDAAsC;AACtC,qDAAmC;AAEnC,gDAAgD;AAChD,qEAEmC;AADjC,kIAAA,uBAAuB,OAAA"}
@@ -211,6 +211,15 @@ export interface TestResult {
211
211
  environment?: Record<string, any>;
212
212
  retryCount?: number;
213
213
  }
214
+ /**
215
+ * Root cause analysis for flaky tests
216
+ */
217
+ export interface RootCauseAnalysis {
218
+ cause: 'timing' | 'race_condition' | 'dependency' | 'isolation' | 'environment';
219
+ mlConfidence: number;
220
+ evidence: string[];
221
+ patterns: string[];
222
+ }
214
223
  /**
215
224
  * Detected flaky test
216
225
  */
@@ -225,6 +234,8 @@ export interface FlakyTest {
225
234
  severity: 'low' | 'medium' | 'high' | 'critical';
226
235
  firstDetected: number;
227
236
  lastSeen: number;
237
+ rootCause?: RootCauseAnalysis;
238
+ fixRecommendations?: FlakyFixRecommendation[];
228
239
  }
229
240
  /**
230
241
  * Fix recommendation for flaky test
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/learning/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/learning/types.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import { EventEmitter } from 'events';
11
11
  import { StreamingMCPTool } from './StreamingMCPTool.js';
12
- import { ProgressReporter } from './types.js';
12
+ import { ProgressReporter, StreamEvent } from './types.js';
13
13
  export interface CoverageAnalyzeStreamParams {
14
14
  sourceFiles: string[];
15
15
  coverageThreshold?: number;
@@ -66,12 +66,22 @@ export interface CoverageGap {
66
66
  }
67
67
  /**
68
68
  * Streaming handler for coverage analysis with real-time progress
69
+ *
70
+ * Performance: Uses O(log n) complexity Johnson-Lindenstrauss dimension reduction
71
+ * for sublinear coverage analysis with AsyncGenerator-based streaming
69
72
  */
70
73
  export declare class CoverageAnalyzeStreamHandler extends StreamingMCPTool {
71
74
  private startTime;
72
75
  private filesAnalyzed;
73
76
  private totalFiles;
74
77
  constructor(memoryStore: Map<string, any>, eventBus: EventEmitter);
78
+ /**
79
+ * Analyze coverage with streaming progress updates using AsyncGenerator pattern
80
+ * Applies O(log n) Johnson-Lindenstrauss optimization for large codebases
81
+ * @yields {StreamEvent} Progress events, coverage results, and errors
82
+ * @returns {AsyncGenerator<StreamEvent, void, undefined>}
83
+ */
84
+ execute(params: CoverageAnalyzeStreamParams): AsyncGenerator<StreamEvent, void, undefined>;
75
85
  /**
76
86
  * Analyze coverage with streaming progress updates
77
87
  */