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,340 @@
1
+ "use strict";
2
+ /**
3
+ * PatternQualityScorer - Comprehensive pattern quality assessment
4
+ *
5
+ * Calculates multi-dimensional quality scores for test patterns
6
+ * Includes readability, completeness, specificity, reusability, and success rate
7
+ *
8
+ * @module reasoning/PatternQualityScorer
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PatternQualityScorer = void 0;
13
+ /**
14
+ * PatternQualityScorer for comprehensive quality assessment
15
+ */
16
+ class PatternQualityScorer {
17
+ constructor() {
18
+ this.weights = {
19
+ readability: 0.2,
20
+ completeness: 0.2,
21
+ specificity: 0.2,
22
+ reusability: 0.2,
23
+ successRate: 0.2
24
+ };
25
+ }
26
+ /**
27
+ * Calculate comprehensive quality score for a pattern
28
+ *
29
+ * @param pattern - Pattern to score
30
+ * @returns Quality components and overall score
31
+ */
32
+ calculateQuality(pattern) {
33
+ const readability = this.scoreReadability(pattern.code);
34
+ const completeness = this.scoreCompleteness(pattern);
35
+ const specificity = this.scoreSpecificity(pattern);
36
+ const reusability = this.scoreReusability(pattern);
37
+ const successRate = pattern.metadata?.successRate ?? 0.5;
38
+ const overall = readability * this.weights.readability +
39
+ completeness * this.weights.completeness +
40
+ specificity * this.weights.specificity +
41
+ reusability * this.weights.reusability +
42
+ successRate * this.weights.successRate;
43
+ return {
44
+ readability,
45
+ completeness,
46
+ specificity,
47
+ reusability,
48
+ successRate,
49
+ overall
50
+ };
51
+ }
52
+ /**
53
+ * Score code readability
54
+ * Factors: line length, complexity, comments, naming
55
+ *
56
+ * @param code - Code to score
57
+ * @returns Readability score (0-1)
58
+ */
59
+ scoreReadability(code) {
60
+ let score = 1.0;
61
+ // Line length penalty
62
+ const lines = code.split('\n');
63
+ const avgLineLength = lines.reduce((sum, line) => sum + line.length, 0) / lines.length;
64
+ if (avgLineLength > 100) {
65
+ score -= 0.2;
66
+ }
67
+ else if (avgLineLength > 80) {
68
+ score -= 0.1;
69
+ }
70
+ // Complexity penalty (nesting depth)
71
+ const maxNesting = this.calculateMaxNesting(code);
72
+ if (maxNesting > 4) {
73
+ score -= 0.3;
74
+ }
75
+ else if (maxNesting > 3) {
76
+ score -= 0.15;
77
+ }
78
+ // Comment bonus
79
+ const commentRatio = this.calculateCommentRatio(code);
80
+ if (commentRatio > 0.1 && commentRatio < 0.4) {
81
+ score += 0.1;
82
+ }
83
+ // Descriptive naming bonus
84
+ const hasDescriptiveNames = this.hasDescriptiveNaming(code);
85
+ if (hasDescriptiveNames) {
86
+ score += 0.1;
87
+ }
88
+ return Math.max(0, Math.min(1, score));
89
+ }
90
+ /**
91
+ * Score pattern completeness
92
+ * Factors: assertions, setup/teardown, error handling, documentation
93
+ *
94
+ * @param pattern - Pattern to score
95
+ * @returns Completeness score (0-1)
96
+ */
97
+ scoreCompleteness(pattern) {
98
+ let score = 0;
99
+ // Has assertions
100
+ if (this.hasAssertions(pattern.code)) {
101
+ score += 0.3;
102
+ }
103
+ // Has setup/teardown
104
+ if (this.hasSetupTeardown(pattern.code)) {
105
+ score += 0.2;
106
+ }
107
+ // Has error handling
108
+ if (this.hasErrorHandling(pattern.code)) {
109
+ score += 0.2;
110
+ }
111
+ // Has description
112
+ if (pattern.description && pattern.description.length > 20) {
113
+ score += 0.15;
114
+ }
115
+ // Has tags
116
+ if (pattern.tags && pattern.tags.length > 0) {
117
+ score += 0.1;
118
+ }
119
+ // Has template
120
+ if (pattern.template) {
121
+ score += 0.05;
122
+ }
123
+ return Math.min(1, score);
124
+ }
125
+ /**
126
+ * Score pattern specificity
127
+ * Higher score = more specific and targeted pattern
128
+ * Factors: domain-specific terms, clear use case, focused scope
129
+ *
130
+ * @param pattern - Pattern to score
131
+ * @returns Specificity score (0-1)
132
+ */
133
+ scoreSpecificity(pattern) {
134
+ let score = 0.5; // Base score
135
+ // Domain-specific terms bonus
136
+ const domainTerms = this.countDomainTerms(pattern);
137
+ score += Math.min(domainTerms * 0.1, 0.3);
138
+ // Clear use case (description)
139
+ if (pattern.description) {
140
+ const hasUseCase = /should|when|given|test|verify/i.test(pattern.description);
141
+ if (hasUseCase) {
142
+ score += 0.1;
143
+ }
144
+ }
145
+ // Focused scope (not too generic)
146
+ const isGeneric = this.isGenericPattern(pattern);
147
+ if (!isGeneric) {
148
+ score += 0.1;
149
+ }
150
+ return Math.max(0, Math.min(1, score));
151
+ }
152
+ /**
153
+ * Score pattern reusability
154
+ * Factors: parameterization, modularity, usage count, adaptability
155
+ *
156
+ * @param pattern - Pattern to score
157
+ * @returns Reusability score (0-1)
158
+ */
159
+ scoreReusability(pattern) {
160
+ let score = 0;
161
+ // Has parameterization
162
+ if (this.hasParameterization(pattern.code)) {
163
+ score += 0.3;
164
+ }
165
+ // Is modular (focused, single responsibility)
166
+ if (this.isModular(pattern.code)) {
167
+ score += 0.2;
168
+ }
169
+ // Usage count (proven reusability)
170
+ const usageCount = pattern.usageCount || 0;
171
+ if (usageCount > 10) {
172
+ score += 0.3;
173
+ }
174
+ else if (usageCount > 5) {
175
+ score += 0.2;
176
+ }
177
+ else if (usageCount > 0) {
178
+ score += 0.1;
179
+ }
180
+ // Has template (enables adaptation)
181
+ if (pattern.template) {
182
+ score += 0.2;
183
+ }
184
+ return Math.min(1, score);
185
+ }
186
+ // Private helper methods
187
+ /**
188
+ * Calculate maximum nesting depth in code
189
+ */
190
+ calculateMaxNesting(code) {
191
+ let maxDepth = 0;
192
+ let currentDepth = 0;
193
+ for (const char of code) {
194
+ if (char === '{' || char === '(') {
195
+ currentDepth++;
196
+ maxDepth = Math.max(maxDepth, currentDepth);
197
+ }
198
+ else if (char === '}' || char === ')') {
199
+ currentDepth--;
200
+ }
201
+ }
202
+ return maxDepth;
203
+ }
204
+ /**
205
+ * Calculate comment ratio in code
206
+ */
207
+ calculateCommentRatio(code) {
208
+ const lines = code.split('\n');
209
+ const commentLines = lines.filter(line => line.trim().startsWith('//') || line.trim().startsWith('/*') || line.trim().startsWith('*')).length;
210
+ return commentLines / Math.max(lines.length, 1);
211
+ }
212
+ /**
213
+ * Check if code has descriptive naming
214
+ */
215
+ hasDescriptiveNaming(code) {
216
+ // Check for meaningful variable/function names (not single char or generic)
217
+ const identifiers = code.match(/\b[a-z_][a-zA-Z0-9_]{2,}\b/g) || [];
218
+ const descriptive = identifiers.filter(id => !['test', 'data', 'result', 'value', 'temp', 'tmp', 'foo', 'bar'].includes(id.toLowerCase()));
219
+ return descriptive.length / Math.max(identifiers.length, 1) > 0.6;
220
+ }
221
+ /**
222
+ * Check if code has assertions
223
+ */
224
+ hasAssertions(code) {
225
+ const assertionPatterns = [
226
+ /expect\(/,
227
+ /assert\./,
228
+ /should\./,
229
+ /\.to\./,
230
+ /\.toBe/,
231
+ /\.toEqual/,
232
+ /\.toContain/
233
+ ];
234
+ return assertionPatterns.some(pattern => pattern.test(code));
235
+ }
236
+ /**
237
+ * Check if code has setup/teardown
238
+ */
239
+ hasSetupTeardown(code) {
240
+ const setupPatterns = [
241
+ /beforeEach/,
242
+ /afterEach/,
243
+ /beforeAll/,
244
+ /afterAll/,
245
+ /setUp/,
246
+ /tearDown/
247
+ ];
248
+ return setupPatterns.some(pattern => pattern.test(code));
249
+ }
250
+ /**
251
+ * Check if code has error handling
252
+ */
253
+ hasErrorHandling(code) {
254
+ const errorPatterns = [
255
+ /try\s*{/,
256
+ /catch\s*\(/,
257
+ /toThrow/,
258
+ /\.rejects/,
259
+ /Error\(/
260
+ ];
261
+ return errorPatterns.some(pattern => pattern.test(code));
262
+ }
263
+ /**
264
+ * Count domain-specific terms in pattern
265
+ */
266
+ countDomainTerms(pattern) {
267
+ const text = `${pattern.name} ${pattern.description || ''} ${pattern.tags?.join(' ') || ''}`;
268
+ const domainTerms = [
269
+ 'authentication', 'authorization', 'validation', 'api', 'database',
270
+ 'service', 'controller', 'repository', 'model', 'entity',
271
+ 'async', 'promise', 'callback', 'middleware', 'handler',
272
+ 'request', 'response', 'endpoint', 'route', 'query'
273
+ ];
274
+ let count = 0;
275
+ for (const term of domainTerms) {
276
+ if (text.toLowerCase().includes(term)) {
277
+ count++;
278
+ }
279
+ }
280
+ return count;
281
+ }
282
+ /**
283
+ * Check if pattern is too generic
284
+ */
285
+ isGenericPattern(pattern) {
286
+ const genericNames = [
287
+ 'test', 'basic test', 'simple test', 'example', 'sample',
288
+ 'generic', 'default', 'standard', 'common'
289
+ ];
290
+ const name = pattern.name.toLowerCase();
291
+ return genericNames.some(generic => name.includes(generic));
292
+ }
293
+ /**
294
+ * Check if code has parameterization
295
+ */
296
+ hasParameterization(code) {
297
+ // Check for function parameters or template placeholders
298
+ const hasParams = /\([a-zA-Z_][a-zA-Z0-9_,\s]*\)/.test(code);
299
+ const hasPlaceholders = /\{\{[^}]+\}\}/.test(code);
300
+ return hasParams || hasPlaceholders;
301
+ }
302
+ /**
303
+ * Check if code is modular (focused, single responsibility)
304
+ */
305
+ isModular(code) {
306
+ const lines = code.split('\n').filter(line => line.trim().length > 0);
307
+ // Not too long (focused)
308
+ if (lines.length > 50) {
309
+ return false;
310
+ }
311
+ // Single describe/test block (not nested)
312
+ const describeCount = (code.match(/describe\(/g) || []).length;
313
+ const testCount = (code.match(/\b(it|test)\(/g) || []).length;
314
+ return describeCount <= 1 && testCount <= 3;
315
+ }
316
+ /**
317
+ * Set custom weights for quality components
318
+ *
319
+ * @param weights - Custom weights (must sum to 1.0)
320
+ */
321
+ setWeights(weights) {
322
+ this.weights = { ...this.weights, ...weights };
323
+ // Normalize to sum to 1.0
324
+ const sum = Object.values(this.weights).reduce((a, b) => a + b, 0);
325
+ if (sum !== 1.0) {
326
+ for (const key in this.weights) {
327
+ this.weights[key] /= sum;
328
+ }
329
+ }
330
+ }
331
+ /**
332
+ * Get current weights
333
+ */
334
+ getWeights() {
335
+ return { ...this.weights };
336
+ }
337
+ }
338
+ exports.PatternQualityScorer = PatternQualityScorer;
339
+ exports.default = PatternQualityScorer;
340
+ //# sourceMappingURL=PatternQualityScorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternQualityScorer.js","sourceRoot":"","sources":["../../src/reasoning/PatternQualityScorer.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA+BH;;GAEG;AACH,MAAa,oBAAoB;IAAjC;QACU,YAAO,GAAG;YAChB,WAAW,EAAE,GAAG;YAChB,YAAY,EAAE,GAAG;YACjB,WAAW,EAAE,GAAG;YAChB,WAAW,EAAE,GAAG;YAChB,WAAW,EAAE,GAAG;SACjB,CAAC;IAgXJ,CAAC;IA9WC;;;;;OAKG;IACH,gBAAgB,CAAC,OAAsB;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,IAAI,GAAG,CAAC;QAEzD,MAAM,OAAO,GACX,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;YACtC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;YACxC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;YACtC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;YACtC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAEzC,OAAO;YACL,WAAW;YACX,YAAY;YACZ,WAAW;YACX,WAAW;YACX,WAAW;YACX,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,IAAY;QAC3B,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,sBAAsB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACvF,IAAI,aAAa,GAAG,GAAG,EAAE,CAAC;YACxB,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;aAAM,IAAI,aAAa,GAAG,EAAE,EAAE,CAAC;YAC9B,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,qCAAqC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;aAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,IAAI,IAAI,CAAC;QAChB,CAAC;QAED,gBAAgB;QAChB,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,YAAY,GAAG,GAAG,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC;YAC7C,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,2BAA2B;QAC3B,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,mBAAmB,EAAE,CAAC;YACxB,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB,CAAC,OAAsB;QACtC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,iBAAiB;QACjB,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,kBAAkB;QAClB,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC3D,KAAK,IAAI,IAAI,CAAC;QAChB,CAAC;QAED,WAAW;QACX,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,eAAe;QACf,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,IAAI,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;;OAOG;IACH,gBAAgB,CAAC,OAAsB;QACrC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,aAAa;QAE9B,8BAA8B;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnD,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QAE1C,+BAA+B;QAC/B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9E,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,IAAI,GAAG,CAAC;YACf,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,OAAsB;QACrC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,uBAAuB;QACvB,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,8CAA8C;QAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,mCAAmC;QACnC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QAC3C,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;YACpB,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;aAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;aAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,yBAAyB;IAEzB;;OAEG;IACK,mBAAmB,CAAC,IAAY;QACtC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjC,YAAY,EAAE,CAAC;gBACf,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxC,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,IAAY;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CACvC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAC5F,CAAC,MAAM,CAAC;QAET,OAAO,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,IAAY;QACvC,4EAA4E;QAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC;QACpE,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAC1C,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAC7F,CAAC;QAEF,OAAO,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;IACpE,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAAY;QAChC,MAAM,iBAAiB,GAAG;YACxB,UAAU;YACV,UAAU;YACV,UAAU;YACV,QAAQ;YACR,QAAQ;YACR,WAAW;YACX,aAAa;SACd,CAAC;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,IAAY;QACnC,MAAM,aAAa,GAAG;YACpB,YAAY;YACZ,WAAW;YACX,WAAW;YACX,UAAU;YACV,OAAO;YACP,UAAU;SACX,CAAC;QAEF,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,IAAY;QACnC,MAAM,aAAa,GAAG;YACpB,SAAS;YACT,YAAY;YACZ,SAAS;YACT,WAAW;YACX,SAAS;SACV,CAAC;QAEF,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAsB;QAC7C,MAAM,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7F,MAAM,WAAW,GAAG;YAClB,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU;YAClE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ;YACxD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS;YACvD,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;SACpD,CAAC;QAEF,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAsB;QAC7C,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ;YACxD,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ;SAC3C,CAAC;QAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,IAAY;QACtC,yDAAyD;QACzD,MAAM,SAAS,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEnD,OAAO,SAAS,IAAI,eAAe,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,IAAY;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEtE,yBAAyB;QACzB,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,0CAA0C;QAC1C,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAC/D,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAE9D,OAAO,aAAa,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,OAAqC;QAC9C,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAE/C,0BAA0B;QAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,GAAgC,CAAC,IAAI,GAAG,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACF;AAvXD,oDAuXC;AAED,kBAAe,oBAAoB,CAAC"}
@@ -33,13 +33,14 @@ export interface TestPattern {
33
33
  name: string;
34
34
  description: string;
35
35
  category: 'unit' | 'integration' | 'e2e' | 'performance' | 'security';
36
- framework: 'jest' | 'mocha' | 'vitest' | 'playwright';
36
+ framework: 'jest' | 'mocha' | 'vitest' | 'playwright' | 'cypress' | 'jasmine' | 'ava';
37
37
  language: 'typescript' | 'javascript' | 'python';
38
38
  template: string;
39
39
  examples: string[];
40
40
  confidence: number;
41
41
  usageCount: number;
42
42
  successRate: number;
43
+ quality?: number;
43
44
  metadata: {
44
45
  createdAt: Date;
45
46
  updatedAt: Date;
@@ -50,6 +51,7 @@ export interface TestPattern {
50
51
  export interface PatternMatch {
51
52
  pattern: TestPattern;
52
53
  confidence: number;
54
+ similarity: number;
53
55
  reasoning: string;
54
56
  applicability: number;
55
57
  }
@@ -73,9 +75,22 @@ export interface PatternMatch {
73
75
  export declare class QEReasoningBank {
74
76
  private patterns;
75
77
  private patternIndex;
78
+ private keywordIndex;
79
+ private frameworkIndex;
76
80
  private versionHistory;
81
+ private vectorSimilarity;
82
+ private qualityScorer;
83
+ private vectorCache;
84
+ private similarityCache;
85
+ private cacheExpiryTime;
86
+ private lastCacheCleanup;
87
+ private minQuality;
88
+ private performanceMetrics;
89
+ constructor(config?: {
90
+ minQuality?: number;
91
+ });
77
92
  /**
78
- * Store a new test pattern
93
+ * Store a new test pattern with quality scoring and vector indexing
79
94
  */
80
95
  storePattern(pattern: TestPattern): Promise<void>;
81
96
  /**
@@ -83,25 +98,64 @@ export declare class QEReasoningBank {
83
98
  */
84
99
  getPattern(id: string): Promise<TestPattern | null>;
85
100
  /**
86
- * Find matching patterns for a code context
101
+ * Find matching patterns using vector similarity with performance optimizations
102
+ * Target: 85%+ matching accuracy, <50ms p95 latency
103
+ *
104
+ * **Optimizations:**
105
+ * - Caching: Frequently accessed patterns cached for 5 minutes
106
+ * - Indexing: Multi-level indexes (keyword, framework, tag) for fast lookup
107
+ * - Early termination: Stop processing when enough high-quality matches found
108
+ * - Batch processing: Process multiple candidates in batches
87
109
  */
88
110
  findMatchingPatterns(context: {
89
111
  codeType: string;
90
112
  framework?: string;
91
113
  language?: string;
92
114
  keywords?: string[];
115
+ sourceCode?: string;
93
116
  }, limit?: number): Promise<PatternMatch[]>;
117
+ /**
118
+ * Get cache key for context
119
+ */
120
+ private getCacheKey;
121
+ /**
122
+ * Get indexed candidates for fast lookup
123
+ * Uses multi-level indexes (framework, keywords, tags)
124
+ */
125
+ private getIndexedCandidates;
126
+ /**
127
+ * Score indexed candidates efficiently
128
+ */
129
+ private scoreIndexedCandidates;
130
+ /**
131
+ * Fallback vector similarity search
132
+ */
133
+ private vectorSimilaritySearch;
134
+ /**
135
+ * Record lookup time for performance monitoring
136
+ */
137
+ private recordLookupTime;
138
+ /**
139
+ * Cleanup cache if needed (every 5 minutes)
140
+ */
141
+ private cleanupCacheIfNeeded;
142
+ /**
143
+ * Find similar patterns by example code
144
+ * Uses vector similarity for code-based matching
145
+ */
146
+ findSimilarPatterns(exampleCode: string, framework?: string, limit?: number): Promise<PatternMatch[]>;
94
147
  /**
95
148
  * Update pattern success metrics
96
149
  */
97
150
  updatePatternMetrics(patternId: string, success: boolean): Promise<void>;
98
151
  /**
99
- * Get pattern statistics
152
+ * Get pattern statistics (alias for getStats for backward compatibility)
100
153
  */
101
154
  getStatistics(): Promise<{
102
155
  totalPatterns: number;
103
156
  averageConfidence: number;
104
157
  averageSuccessRate: number;
158
+ averageQuality: number;
105
159
  byCategory: Record<string, number>;
106
160
  byFramework: Record<string, number>;
107
161
  }>;
@@ -116,6 +170,86 @@ export declare class QEReasoningBank {
116
170
  private updateIndex;
117
171
  private calculateMatchConfidence;
118
172
  private generateReasoning;
173
+ /**
174
+ * Build query text from context for vector matching
175
+ */
176
+ private buildQueryText;
177
+ /**
178
+ * Get pattern text for vector embedding
179
+ */
180
+ private getPatternText;
181
+ /**
182
+ * Extract keywords from code
183
+ */
184
+ private extractKeywords;
185
+ /**
186
+ * Match a pattern by exact ID
187
+ * Alias for getPattern for consistency with pattern matching API
188
+ */
189
+ matchPattern(patternId: string): Promise<TestPattern | null>;
190
+ /**
191
+ * Find patterns using flexible search criteria
192
+ * Supports multiple search strategies: vector similarity, tag matching, keyword search
193
+ */
194
+ findPattern(criteria: {
195
+ query?: string;
196
+ category?: TestPattern['category'];
197
+ framework?: TestPattern['framework'];
198
+ language?: TestPattern['language'];
199
+ tags?: string[];
200
+ minConfidence?: number;
201
+ minQuality?: number;
202
+ }, limit?: number): Promise<PatternMatch[]>;
203
+ /**
204
+ * Calculate similarity score between two patterns
205
+ * Returns a score between 0-1 indicating how similar the patterns are
206
+ */
207
+ calculateSimilarity(pattern1: TestPattern, pattern2: TestPattern): number;
208
+ /**
209
+ * Search patterns by similarity to a reference pattern
210
+ */
211
+ searchSimilarPatterns(referencePattern: TestPattern, limit?: number): Promise<PatternMatch[]>;
212
+ /**
213
+ * Load patterns from registry file
214
+ */
215
+ loadFromRegistry(registryPath: string): Promise<number>;
216
+ /**
217
+ * Save patterns to registry file
218
+ */
219
+ saveToRegistry(registryPath: string, filter?: Partial<TestPattern>): Promise<void>;
220
+ /**
221
+ * Export patterns for cross-project sharing
222
+ */
223
+ exportPatterns(filter?: Partial<TestPattern>): TestPattern[];
224
+ /**
225
+ * Import patterns from another project
226
+ */
227
+ importPatterns(patterns: TestPattern[]): Promise<void>;
228
+ /**
229
+ * Get pattern statistics including quality metrics
230
+ */
231
+ getStats(): {
232
+ totalPatterns: number;
233
+ byFramework: Record<string, number>;
234
+ byCategory: Record<string, number>;
235
+ averageQuality: number;
236
+ averageSuccessRate: number;
237
+ };
238
+ /**
239
+ * Get performance metrics (NEW)
240
+ * Returns timing statistics for pattern matching operations
241
+ */
242
+ getPerformanceMetrics(): {
243
+ avgLookupTime: number;
244
+ p95LookupTime: number;
245
+ p99LookupTime: number;
246
+ cacheHitRate: number;
247
+ totalLookups: number;
248
+ };
249
+ /**
250
+ * Reset performance metrics (for testing)
251
+ */
252
+ resetPerformanceMetrics(): void;
119
253
  }
120
254
  export default QEReasoningBank;
121
255
  //# sourceMappingURL=QEReasoningBank.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QEReasoningBank.d.ts","sourceRoot":"","sources":["../../src/reasoning/QEReasoningBank.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAQH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,aAAa,GAAG,UAAU,CAAC;IACtE,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;IACtD,QAAQ,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QACR,SAAS,EAAE,IAAI,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,cAAc,CAAyC;IAE/D;;OAEG;IACU,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9D;;OAEG;IACU,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAIhE;;OAEG;IACU,oBAAoB,CAC/B,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,EACD,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC;IAsB1B;;OAEG;IACU,oBAAoB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC;IAkBhB;;OAEG;IACU,aAAa,IAAI,OAAO,CAAC;QACpC,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC,CAAC;IAqBF;;OAEG;IACU,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAIzE;;OAEG;IACU,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA8BjE,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,wBAAwB;IA0ChC,OAAO,CAAC,iBAAiB;CA6B1B;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"QEReasoningBank.d.ts","sourceRoot":"","sources":["../../src/reasoning/QEReasoningBank.ts"],"names":[],"mappings":"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"}