agentic-qe 1.0.5 → 1.1.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 (141) hide show
  1. package/.claude/agents/qe-quality-analyzer.md +405 -0
  2. package/CHANGELOG.md +109 -0
  3. package/CONTRIBUTING.md +51 -0
  4. package/README.md +669 -162
  5. package/bin/aqe +90 -938
  6. package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
  7. package/dist/adapters/MemoryStoreAdapter.js +6 -0
  8. package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
  9. package/dist/agents/CoverageAnalyzerAgent.d.ts +58 -3
  10. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  11. package/dist/agents/CoverageAnalyzerAgent.js +316 -48
  12. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  13. package/dist/agents/FlakyTestHunterAgent.d.ts +48 -4
  14. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  15. package/dist/agents/FlakyTestHunterAgent.js +217 -10
  16. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  17. package/dist/agents/LearningAgent.d.ts +75 -0
  18. package/dist/agents/LearningAgent.d.ts.map +1 -0
  19. package/dist/agents/LearningAgent.js +177 -0
  20. package/dist/agents/LearningAgent.js.map +1 -0
  21. package/dist/agents/TestGeneratorAgent.d.ts +42 -2
  22. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  23. package/dist/agents/TestGeneratorAgent.js +232 -13
  24. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  25. package/dist/cli/commands/improve/index.d.ts +70 -0
  26. package/dist/cli/commands/improve/index.d.ts.map +1 -0
  27. package/dist/cli/commands/improve/index.js +530 -0
  28. package/dist/cli/commands/improve/index.js.map +1 -0
  29. package/dist/cli/commands/init.d.ts +33 -0
  30. package/dist/cli/commands/init.d.ts.map +1 -1
  31. package/dist/cli/commands/init.js +656 -39
  32. package/dist/cli/commands/init.js.map +1 -1
  33. package/dist/cli/commands/learn/index.d.ts +68 -0
  34. package/dist/cli/commands/learn/index.d.ts.map +1 -0
  35. package/dist/cli/commands/learn/index.js +431 -0
  36. package/dist/cli/commands/learn/index.js.map +1 -0
  37. package/dist/cli/commands/patterns/index.d.ts +75 -0
  38. package/dist/cli/commands/patterns/index.d.ts.map +1 -0
  39. package/dist/cli/commands/patterns/index.js +502 -0
  40. package/dist/cli/commands/patterns/index.js.map +1 -0
  41. package/dist/cli/index.js +367 -8
  42. package/dist/cli/index.js.map +1 -1
  43. package/dist/core/memory/SwarmMemoryManager.d.ts +5 -0
  44. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  45. package/dist/core/memory/SwarmMemoryManager.js +7 -0
  46. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  47. package/dist/index.d.ts +10 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +10 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/learning/FlakyFixRecommendations.d.ts +40 -0
  52. package/dist/learning/FlakyFixRecommendations.d.ts.map +1 -0
  53. package/dist/learning/FlakyFixRecommendations.js +247 -0
  54. package/dist/learning/FlakyFixRecommendations.js.map +1 -0
  55. package/dist/learning/FlakyPredictionModel.d.ts +57 -0
  56. package/dist/learning/FlakyPredictionModel.d.ts.map +1 -0
  57. package/dist/learning/FlakyPredictionModel.js +289 -0
  58. package/dist/learning/FlakyPredictionModel.js.map +1 -0
  59. package/dist/learning/FlakyTestDetector.d.ts +46 -0
  60. package/dist/learning/FlakyTestDetector.d.ts.map +1 -0
  61. package/dist/learning/FlakyTestDetector.js +215 -0
  62. package/dist/learning/FlakyTestDetector.js.map +1 -0
  63. package/dist/learning/ImprovementLoop.d.ts +119 -0
  64. package/dist/learning/ImprovementLoop.d.ts.map +1 -0
  65. package/dist/learning/ImprovementLoop.js +353 -0
  66. package/dist/learning/ImprovementLoop.js.map +1 -0
  67. package/dist/learning/LearningEngine.d.ts +144 -0
  68. package/dist/learning/LearningEngine.d.ts.map +1 -0
  69. package/dist/learning/LearningEngine.js +531 -0
  70. package/dist/learning/LearningEngine.js.map +1 -0
  71. package/dist/learning/PerformanceTracker.d.ts +118 -0
  72. package/dist/learning/PerformanceTracker.d.ts.map +1 -0
  73. package/dist/learning/PerformanceTracker.js +376 -0
  74. package/dist/learning/PerformanceTracker.js.map +1 -0
  75. package/dist/learning/StatisticalAnalysis.d.ts +47 -0
  76. package/dist/learning/StatisticalAnalysis.d.ts.map +1 -0
  77. package/dist/learning/StatisticalAnalysis.js +170 -0
  78. package/dist/learning/StatisticalAnalysis.js.map +1 -0
  79. package/dist/learning/SwarmIntegration.d.ts +107 -0
  80. package/dist/learning/SwarmIntegration.d.ts.map +1 -0
  81. package/dist/learning/SwarmIntegration.js +191 -0
  82. package/dist/learning/SwarmIntegration.js.map +1 -0
  83. package/dist/learning/index.d.ts +10 -0
  84. package/dist/learning/index.d.ts.map +1 -0
  85. package/dist/learning/index.js +16 -0
  86. package/dist/learning/index.js.map +1 -0
  87. package/dist/learning/types.d.ts +288 -0
  88. package/dist/learning/types.d.ts.map +1 -0
  89. package/dist/learning/types.js +9 -0
  90. package/dist/learning/types.js.map +1 -0
  91. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts +175 -0
  92. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -0
  93. package/dist/mcp/handlers/phase2/Phase2Tools.js +693 -0
  94. package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -0
  95. package/dist/mcp/server.d.ts.map +1 -1
  96. package/dist/mcp/server.js +94 -0
  97. package/dist/mcp/server.js.map +1 -1
  98. package/dist/mcp/tools.d.ts +15 -0
  99. package/dist/mcp/tools.d.ts.map +1 -1
  100. package/dist/mcp/tools.js +17 -1
  101. package/dist/mcp/tools.js.map +1 -1
  102. package/dist/reasoning/CodeSignatureGenerator.d.ts +98 -0
  103. package/dist/reasoning/CodeSignatureGenerator.d.ts.map +1 -0
  104. package/dist/reasoning/CodeSignatureGenerator.js +427 -0
  105. package/dist/reasoning/CodeSignatureGenerator.js.map +1 -0
  106. package/dist/reasoning/PatternClassifier.d.ts +98 -0
  107. package/dist/reasoning/PatternClassifier.d.ts.map +1 -0
  108. package/dist/reasoning/PatternClassifier.js +345 -0
  109. package/dist/reasoning/PatternClassifier.js.map +1 -0
  110. package/dist/reasoning/PatternExtractor.d.ts +131 -0
  111. package/dist/reasoning/PatternExtractor.d.ts.map +1 -0
  112. package/dist/reasoning/PatternExtractor.js +539 -0
  113. package/dist/reasoning/PatternExtractor.js.map +1 -0
  114. package/dist/reasoning/PatternMemoryIntegration.d.ts +102 -0
  115. package/dist/reasoning/PatternMemoryIntegration.d.ts.map +1 -0
  116. package/dist/reasoning/PatternMemoryIntegration.js +336 -0
  117. package/dist/reasoning/PatternMemoryIntegration.js.map +1 -0
  118. package/dist/reasoning/QEReasoningBank.d.ts +121 -0
  119. package/dist/reasoning/QEReasoningBank.d.ts.map +1 -0
  120. package/dist/reasoning/QEReasoningBank.js +235 -0
  121. package/dist/reasoning/QEReasoningBank.js.map +1 -0
  122. package/dist/reasoning/TestTemplateCreator.d.ts +95 -0
  123. package/dist/reasoning/TestTemplateCreator.d.ts.map +1 -0
  124. package/dist/reasoning/TestTemplateCreator.js +535 -0
  125. package/dist/reasoning/TestTemplateCreator.js.map +1 -0
  126. package/dist/reasoning/index.d.ts +10 -0
  127. package/dist/reasoning/index.d.ts.map +1 -0
  128. package/dist/reasoning/index.js +31 -0
  129. package/dist/reasoning/index.js.map +1 -0
  130. package/dist/reasoning/types.d.ts +717 -0
  131. package/dist/reasoning/types.d.ts.map +1 -0
  132. package/dist/reasoning/types.js +57 -0
  133. package/dist/reasoning/types.js.map +1 -0
  134. package/dist/types/index.d.ts +4 -0
  135. package/dist/types/index.d.ts.map +1 -1
  136. package/dist/types/index.js.map +1 -1
  137. package/dist/types/pattern.types.d.ts +364 -0
  138. package/dist/types/pattern.types.d.ts.map +1 -0
  139. package/dist/types/pattern.types.js +60 -0
  140. package/dist/types/pattern.types.js.map +1 -0
  141. package/package.json +25 -3
@@ -0,0 +1,535 @@
1
+ "use strict";
2
+ /**
3
+ * TestTemplateCreator - Create reusable test templates from patterns
4
+ * Phase 2 (v1.1.0) - Pattern Extraction Specialist
5
+ *
6
+ * Generalizes specific tests into reusable templates by:
7
+ * - Parameterizing test inputs
8
+ * - Creating framework-agnostic structures
9
+ * - Supporting template validation
10
+ * - Generating code for multiple frameworks
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.TestTemplateCreator = void 0;
47
+ const pattern_types_1 = require("../types/pattern.types");
48
+ const Logger_1 = require("../utils/Logger");
49
+ const crypto = __importStar(require("crypto"));
50
+ class TestTemplateCreator {
51
+ constructor() {
52
+ this.logger = Logger_1.Logger.getInstance();
53
+ }
54
+ /**
55
+ * Create template from test pattern
56
+ */
57
+ async createTemplate(pattern) {
58
+ try {
59
+ const id = this.generateTemplateId(pattern);
60
+ const structure = await this.buildTemplateStructure(pattern);
61
+ const parameters = this.extractParameters(pattern);
62
+ const validationRules = this.createValidationRules(pattern, parameters);
63
+ const codeGenerators = this.createCodeGenerators(pattern, structure);
64
+ const template = {
65
+ id,
66
+ name: `Template: ${pattern.name}`,
67
+ description: this.generateDescription(pattern),
68
+ structure,
69
+ parameters,
70
+ validationRules,
71
+ codeGenerators
72
+ };
73
+ this.logger.info(`Created template ${id} for pattern ${pattern.id}`);
74
+ return template;
75
+ }
76
+ catch (error) {
77
+ this.logger.error(`Failed to create template for pattern ${pattern.id}:`, error);
78
+ throw error;
79
+ }
80
+ }
81
+ /**
82
+ * Create templates from multiple patterns
83
+ */
84
+ async createTemplates(patterns) {
85
+ const templates = [];
86
+ for (const pattern of patterns) {
87
+ try {
88
+ const template = await this.createTemplate(pattern);
89
+ templates.push(template);
90
+ }
91
+ catch (error) {
92
+ this.logger.warn(`Skipping pattern ${pattern.id} due to error:`, error);
93
+ }
94
+ }
95
+ return templates;
96
+ }
97
+ /**
98
+ * Build template structure from pattern
99
+ */
100
+ async buildTemplateStructure(pattern) {
101
+ const root = {
102
+ type: 'describe',
103
+ id: 'root',
104
+ children: [],
105
+ properties: {
106
+ name: '{{suiteName}}'
107
+ },
108
+ parameterRefs: ['suiteName']
109
+ };
110
+ // Add test node
111
+ const testNode = {
112
+ type: 'it',
113
+ id: 'test-1',
114
+ children: [],
115
+ properties: {
116
+ name: '{{testName}}'
117
+ },
118
+ parameterRefs: ['testName']
119
+ };
120
+ // Add setup if needed
121
+ if (this.needsSetup(pattern)) {
122
+ testNode.children.push(this.createSetupNode());
123
+ }
124
+ // Add arrange-act-assert structure
125
+ testNode.children.push(this.createArrangeNode(pattern));
126
+ testNode.children.push(this.createActNode(pattern));
127
+ testNode.children.push(this.createAssertNode(pattern));
128
+ // Add teardown if needed
129
+ if (this.needsTeardown(pattern)) {
130
+ testNode.children.push(this.createTeardownNode());
131
+ }
132
+ root.children.push(testNode);
133
+ return root;
134
+ }
135
+ /**
136
+ * Extract parameters from pattern
137
+ */
138
+ extractParameters(pattern) {
139
+ const parameters = [];
140
+ // Always include basic parameters
141
+ parameters.push({
142
+ name: 'suiteName',
143
+ type: pattern_types_1.ParameterType.STRING,
144
+ description: 'Name of the test suite',
145
+ required: true,
146
+ defaultValue: pattern.name
147
+ });
148
+ parameters.push({
149
+ name: 'testName',
150
+ type: pattern_types_1.ParameterType.STRING,
151
+ description: 'Name of the test case',
152
+ required: true,
153
+ defaultValue: `should ${pattern.name}`
154
+ });
155
+ // Pattern-specific parameters
156
+ switch (pattern.type) {
157
+ case 'edge-case':
158
+ parameters.push({
159
+ name: 'edgeValue',
160
+ type: pattern_types_1.ParameterType.ANY,
161
+ description: 'Edge case value to test',
162
+ required: true,
163
+ constraints: { enum: ['null', 'undefined', 'empty', 'zero', 'max', 'min'] }
164
+ });
165
+ break;
166
+ case 'boundary-condition':
167
+ parameters.push({
168
+ name: 'minValue',
169
+ type: pattern_types_1.ParameterType.NUMBER,
170
+ description: 'Minimum boundary value',
171
+ required: true
172
+ });
173
+ parameters.push({
174
+ name: 'maxValue',
175
+ type: pattern_types_1.ParameterType.NUMBER,
176
+ description: 'Maximum boundary value',
177
+ required: true
178
+ });
179
+ break;
180
+ case 'error-handling':
181
+ parameters.push({
182
+ name: 'errorType',
183
+ type: pattern_types_1.ParameterType.STRING,
184
+ description: 'Expected error type',
185
+ required: true,
186
+ defaultValue: 'Error'
187
+ });
188
+ parameters.push({
189
+ name: 'errorMessage',
190
+ type: pattern_types_1.ParameterType.STRING,
191
+ description: 'Expected error message pattern',
192
+ required: false
193
+ });
194
+ break;
195
+ case 'async-pattern':
196
+ parameters.push({
197
+ name: 'timeout',
198
+ type: pattern_types_1.ParameterType.NUMBER,
199
+ description: 'Test timeout in milliseconds',
200
+ required: false,
201
+ defaultValue: 5000,
202
+ constraints: { min: 0, max: 30000 }
203
+ });
204
+ break;
205
+ case 'mock-pattern':
206
+ parameters.push({
207
+ name: 'mockTarget',
208
+ type: pattern_types_1.ParameterType.STRING,
209
+ description: 'Function or module to mock',
210
+ required: true
211
+ });
212
+ parameters.push({
213
+ name: 'mockReturnValue',
214
+ type: pattern_types_1.ParameterType.ANY,
215
+ description: 'Mock return value',
216
+ required: true
217
+ });
218
+ break;
219
+ }
220
+ // Add input/output parameters
221
+ parameters.push({
222
+ name: 'input',
223
+ type: pattern_types_1.ParameterType.ANY,
224
+ description: 'Test input value',
225
+ required: true
226
+ });
227
+ parameters.push({
228
+ name: 'expectedOutput',
229
+ type: pattern_types_1.ParameterType.ANY,
230
+ description: 'Expected test output',
231
+ required: true
232
+ });
233
+ return parameters;
234
+ }
235
+ /**
236
+ * Create validation rules
237
+ */
238
+ createValidationRules(pattern, parameters) {
239
+ const rules = [];
240
+ // Required parameter validation
241
+ rules.push({
242
+ id: 'required-params',
243
+ description: 'All required parameters must be provided',
244
+ validator: `(params) => ${JSON.stringify(parameters.filter(p => p.required).map(p => p.name))}.every(name => params[name] !== undefined)`,
245
+ severity: 'error'
246
+ });
247
+ // Type validation
248
+ rules.push({
249
+ id: 'type-validation',
250
+ description: 'Parameters must match their expected types',
251
+ validator: '(params) => true', // Simplified
252
+ severity: 'error'
253
+ });
254
+ // Pattern-specific validation
255
+ if (pattern.type === 'boundary-condition') {
256
+ rules.push({
257
+ id: 'boundary-order',
258
+ description: 'minValue must be less than maxValue',
259
+ validator: '(params) => params.minValue < params.maxValue',
260
+ severity: 'error'
261
+ });
262
+ }
263
+ return rules;
264
+ }
265
+ /**
266
+ * Create code generators for different frameworks
267
+ */
268
+ createCodeGenerators(pattern, structure) {
269
+ return {
270
+ [pattern_types_1.TestFramework.JEST]: this.generateJestCode(pattern, structure),
271
+ [pattern_types_1.TestFramework.MOCHA]: this.generateMochaCode(pattern, structure),
272
+ [pattern_types_1.TestFramework.CYPRESS]: this.generateCypressCode(pattern, structure),
273
+ [pattern_types_1.TestFramework.VITEST]: this.generateVitestCode(pattern, structure),
274
+ [pattern_types_1.TestFramework.JASMINE]: this.generateJasmineCode(pattern, structure),
275
+ [pattern_types_1.TestFramework.AVA]: this.generateAvaCode(pattern, structure)
276
+ };
277
+ }
278
+ /**
279
+ * Generate Jest code
280
+ */
281
+ generateJestCode(pattern, structure) {
282
+ return `
283
+ describe('{{suiteName}}', () => {
284
+ it('{{testName}}', async () => {
285
+ // Arrange
286
+ const input = {{input}};
287
+
288
+ ${this.getPatternSpecificSetup(pattern, 'jest')}
289
+
290
+ // Act
291
+ const result = await functionUnderTest(input);
292
+
293
+ // Assert
294
+ ${this.getPatternSpecificAssertion(pattern, 'jest')}
295
+ expect(result).toEqual({{expectedOutput}});
296
+ });
297
+ });
298
+ `.trim();
299
+ }
300
+ /**
301
+ * Generate Mocha code
302
+ */
303
+ generateMochaCode(pattern, structure) {
304
+ return `
305
+ describe('{{suiteName}}', function() {
306
+ it('{{testName}}', async function() {
307
+ // Arrange
308
+ const input = {{input}};
309
+
310
+ ${this.getPatternSpecificSetup(pattern, 'mocha')}
311
+
312
+ // Act
313
+ const result = await functionUnderTest(input);
314
+
315
+ // Assert
316
+ ${this.getPatternSpecificAssertion(pattern, 'mocha')}
317
+ expect(result).to.equal({{expectedOutput}});
318
+ });
319
+ });
320
+ `.trim();
321
+ }
322
+ /**
323
+ * Generate Cypress code
324
+ */
325
+ generateCypressCode(pattern, structure) {
326
+ return `
327
+ describe('{{suiteName}}', () => {
328
+ it('{{testName}}', () => {
329
+ // Arrange
330
+ cy.visit('/test-page');
331
+
332
+ ${this.getPatternSpecificSetup(pattern, 'cypress')}
333
+
334
+ // Act
335
+ cy.get('[data-testid="input"]').type('{{input}}');
336
+ cy.get('[data-testid="submit"]').click();
337
+
338
+ // Assert
339
+ ${this.getPatternSpecificAssertion(pattern, 'cypress')}
340
+ cy.get('[data-testid="output"]').should('contain', '{{expectedOutput}}');
341
+ });
342
+ });
343
+ `.trim();
344
+ }
345
+ /**
346
+ * Generate Vitest code
347
+ */
348
+ generateVitestCode(pattern, structure) {
349
+ return this.generateJestCode(pattern, structure); // Similar to Jest
350
+ }
351
+ /**
352
+ * Generate Jasmine code
353
+ */
354
+ generateJasmineCode(pattern, structure) {
355
+ return `
356
+ describe('{{suiteName}}', () => {
357
+ it('{{testName}}', async () => {
358
+ // Arrange
359
+ const input = {{input}};
360
+
361
+ ${this.getPatternSpecificSetup(pattern, 'jasmine')}
362
+
363
+ // Act
364
+ const result = await functionUnderTest(input);
365
+
366
+ // Assert
367
+ ${this.getPatternSpecificAssertion(pattern, 'jasmine')}
368
+ expect(result).toEqual({{expectedOutput}});
369
+ });
370
+ });
371
+ `.trim();
372
+ }
373
+ /**
374
+ * Generate AVA code
375
+ */
376
+ generateAvaCode(pattern, structure) {
377
+ return `
378
+ test('{{testName}}', async t => {
379
+ // Arrange
380
+ const input = {{input}};
381
+
382
+ ${this.getPatternSpecificSetup(pattern, 'ava')}
383
+
384
+ // Act
385
+ const result = await functionUnderTest(input);
386
+
387
+ // Assert
388
+ ${this.getPatternSpecificAssertion(pattern, 'ava')}
389
+ t.deepEqual(result, {{expectedOutput}});
390
+ });
391
+ `.trim();
392
+ }
393
+ /**
394
+ * Get pattern-specific setup code
395
+ */
396
+ getPatternSpecificSetup(pattern, framework) {
397
+ switch (pattern.type) {
398
+ case 'mock-pattern':
399
+ return framework === 'jest'
400
+ ? 'const mockFn = jest.fn().mockReturnValue({{mockReturnValue}});'
401
+ : 'const mockFn = sinon.stub().returns({{mockReturnValue}});';
402
+ case 'async-pattern':
403
+ return '// Setup async operation';
404
+ default:
405
+ return '';
406
+ }
407
+ }
408
+ /**
409
+ * Get pattern-specific assertion code
410
+ */
411
+ getPatternSpecificAssertion(pattern, framework) {
412
+ switch (pattern.type) {
413
+ case 'error-handling':
414
+ return framework === 'jest'
415
+ ? 'expect(() => result).toThrow({{errorType}});'
416
+ : 'expect(() => result).to.throw({{errorType}});';
417
+ case 'boundary-condition':
418
+ return 'expect(result).toBeGreaterThanOrEqual({{minValue}});\nexpect(result).toBeLessThanOrEqual({{maxValue}});';
419
+ case 'mock-pattern':
420
+ return 'expect(mockFn).toHaveBeenCalled();';
421
+ default:
422
+ return '';
423
+ }
424
+ }
425
+ /**
426
+ * Helper methods for structure building
427
+ */
428
+ needsSetup(pattern) {
429
+ return ['mock-pattern', 'integration'].includes(pattern.type);
430
+ }
431
+ needsTeardown(pattern) {
432
+ return ['integration', 'performance-test'].includes(pattern.type);
433
+ }
434
+ createSetupNode() {
435
+ return {
436
+ type: 'setup',
437
+ id: 'setup',
438
+ children: [],
439
+ properties: { code: '// Setup' },
440
+ parameterRefs: []
441
+ };
442
+ }
443
+ createArrangeNode(pattern) {
444
+ return {
445
+ type: 'arrange',
446
+ id: 'arrange',
447
+ children: [],
448
+ properties: { code: 'const input = {{input}};' },
449
+ parameterRefs: ['input']
450
+ };
451
+ }
452
+ createActNode(pattern) {
453
+ return {
454
+ type: 'act',
455
+ id: 'act',
456
+ children: [],
457
+ properties: { code: 'const result = await functionUnderTest(input);' },
458
+ parameterRefs: []
459
+ };
460
+ }
461
+ createAssertNode(pattern) {
462
+ return {
463
+ type: 'assert',
464
+ id: 'assert',
465
+ children: [],
466
+ properties: { code: 'expect(result).toEqual({{expectedOutput}});' },
467
+ parameterRefs: ['expectedOutput']
468
+ };
469
+ }
470
+ createTeardownNode() {
471
+ return {
472
+ type: 'teardown',
473
+ id: 'teardown',
474
+ children: [],
475
+ properties: { code: '// Cleanup' },
476
+ parameterRefs: []
477
+ };
478
+ }
479
+ generateTemplateId(pattern) {
480
+ const hash = crypto
481
+ .createHash('md5')
482
+ .update(`${pattern.id}-${pattern.type}`)
483
+ .digest('hex')
484
+ .substring(0, 8);
485
+ return `template-${pattern.type}-${hash}`;
486
+ }
487
+ generateDescription(pattern) {
488
+ return `Reusable template for ${pattern.type} tests. Generated from pattern: ${pattern.name}`;
489
+ }
490
+ /**
491
+ * Validate template
492
+ */
493
+ async validateTemplate(template, params) {
494
+ const errors = [];
495
+ for (const rule of template.validationRules) {
496
+ try {
497
+ const validator = eval(rule.validator);
498
+ if (!validator(params)) {
499
+ errors.push(rule.description);
500
+ }
501
+ }
502
+ catch (error) {
503
+ errors.push(`Validation rule ${rule.id} failed: ${error.message}`);
504
+ }
505
+ }
506
+ return {
507
+ valid: errors.length === 0,
508
+ errors
509
+ };
510
+ }
511
+ /**
512
+ * Instantiate template with parameters
513
+ */
514
+ async instantiateTemplate(template, framework, params) {
515
+ // Validate parameters
516
+ const validation = await this.validateTemplate(template, params);
517
+ if (!validation.valid) {
518
+ throw new Error(`Template validation failed: ${validation.errors.join(', ')}`);
519
+ }
520
+ // Get code generator for framework
521
+ let code = template.codeGenerators[framework];
522
+ if (!code) {
523
+ throw new Error(`No code generator found for framework ${framework}`);
524
+ }
525
+ // Replace parameters
526
+ for (const [key, value] of Object.entries(params)) {
527
+ const placeholder = `{{${key}}}`;
528
+ const replacement = typeof value === 'string' ? value : JSON.stringify(value);
529
+ code = code.replace(new RegExp(placeholder, 'g'), replacement);
530
+ }
531
+ return code;
532
+ }
533
+ }
534
+ exports.TestTemplateCreator = TestTemplateCreator;
535
+ //# sourceMappingURL=TestTemplateCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestTemplateCreator.js","sourceRoot":"","sources":["../../src/reasoning/TestTemplateCreator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Reasoning module - Pattern extraction and analysis
3
+ * Phase 2 (v1.1.0) - Pattern Extraction Specialist
4
+ */
5
+ export { PatternExtractor } from './PatternExtractor';
6
+ export { CodeSignatureGenerator } from './CodeSignatureGenerator';
7
+ export { TestTemplateCreator } from './TestTemplateCreator';
8
+ export { PatternClassifier } from './PatternClassifier';
9
+ export * from '../types/pattern.types';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reasoning/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * Reasoning module - Pattern extraction and analysis
4
+ * Phase 2 (v1.1.0) - Pattern Extraction Specialist
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.PatternClassifier = exports.TestTemplateCreator = exports.CodeSignatureGenerator = exports.PatternExtractor = void 0;
22
+ var PatternExtractor_1 = require("./PatternExtractor");
23
+ Object.defineProperty(exports, "PatternExtractor", { enumerable: true, get: function () { return PatternExtractor_1.PatternExtractor; } });
24
+ var CodeSignatureGenerator_1 = require("./CodeSignatureGenerator");
25
+ Object.defineProperty(exports, "CodeSignatureGenerator", { enumerable: true, get: function () { return CodeSignatureGenerator_1.CodeSignatureGenerator; } });
26
+ var TestTemplateCreator_1 = require("./TestTemplateCreator");
27
+ Object.defineProperty(exports, "TestTemplateCreator", { enumerable: true, get: function () { return TestTemplateCreator_1.TestTemplateCreator; } });
28
+ var PatternClassifier_1 = require("./PatternClassifier");
29
+ Object.defineProperty(exports, "PatternClassifier", { enumerable: true, get: function () { return PatternClassifier_1.PatternClassifier; } });
30
+ __exportStar(require("../types/pattern.types"), exports);
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reasoning/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAE1B,yDAAuC"}