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,168 @@
1
+ "use strict";
2
+ /**
3
+ * Base Streaming Handler
4
+ *
5
+ * Provides AsyncGenerator-based streaming for real-time progress updates.
6
+ * Supports for-await-of compatibility and incremental result emission.
7
+ *
8
+ * @version 1.0.0
9
+ * @author Agentic QE Team
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BaseStreamHandler = void 0;
13
+ /**
14
+ * Base class for all streaming handlers
15
+ * Provides AsyncGenerator pattern for progressive result emission
16
+ */
17
+ class BaseStreamHandler {
18
+ constructor() {
19
+ this.startTime = 0;
20
+ this.cancelled = false;
21
+ }
22
+ /**
23
+ * Execute task with real-time streaming updates
24
+ * Returns AsyncGenerator for for-await-of compatibility
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const handler = new TestExecuteStreamHandler();
29
+ * for await (const event of handler.execute(params)) {
30
+ * if (event.type === 'progress') {
31
+ * console.log(`${event.percent}% - ${event.message}`);
32
+ * } else if (event.type === 'result') {
33
+ * console.log('Result:', event.data);
34
+ * }
35
+ * }
36
+ * ```
37
+ */
38
+ async *execute(params) {
39
+ this.startTime = Date.now();
40
+ this.cancelled = false;
41
+ try {
42
+ // Emit start event
43
+ yield this.startEvent();
44
+ // Process task (implemented by subclass)
45
+ yield* this.processTask(params);
46
+ // Emit completion event
47
+ yield this.completeEvent();
48
+ }
49
+ catch (error) {
50
+ // Emit error event
51
+ yield this.errorEvent(error);
52
+ throw error;
53
+ }
54
+ }
55
+ /**
56
+ * Cancel streaming operation
57
+ */
58
+ cancel() {
59
+ this.cancelled = true;
60
+ }
61
+ /**
62
+ * Check if operation was cancelled
63
+ */
64
+ isCancelled() {
65
+ return this.cancelled;
66
+ }
67
+ /**
68
+ * Create start event
69
+ */
70
+ startEvent(message = 'Starting task...') {
71
+ return {
72
+ type: 'progress',
73
+ timestamp: Date.now(),
74
+ percent: 0,
75
+ message
76
+ };
77
+ }
78
+ /**
79
+ * Create progress event
80
+ */
81
+ progressEvent(percent, message, metadata) {
82
+ return {
83
+ type: 'progress',
84
+ timestamp: Date.now(),
85
+ percent: Math.min(100, Math.max(0, percent)),
86
+ message,
87
+ metadata
88
+ };
89
+ }
90
+ /**
91
+ * Create result event
92
+ */
93
+ resultEvent(data, metadata) {
94
+ return {
95
+ type: 'result',
96
+ timestamp: Date.now(),
97
+ data,
98
+ metadata
99
+ };
100
+ }
101
+ /**
102
+ * Create completion event
103
+ */
104
+ completeEvent(message = 'Task completed') {
105
+ const duration = Date.now() - this.startTime;
106
+ return {
107
+ type: 'complete',
108
+ timestamp: Date.now(),
109
+ percent: 100,
110
+ message,
111
+ metadata: {
112
+ executionTime: duration,
113
+ executionTimeFormatted: this.formatDuration(duration)
114
+ }
115
+ };
116
+ }
117
+ /**
118
+ * Create error event
119
+ */
120
+ errorEvent(error, message) {
121
+ return {
122
+ type: 'error',
123
+ timestamp: Date.now(),
124
+ error,
125
+ message: message || error.message,
126
+ metadata: {
127
+ errorType: error.constructor.name,
128
+ stack: error.stack
129
+ }
130
+ };
131
+ }
132
+ /**
133
+ * Calculate progress percentage
134
+ */
135
+ calculateProgress(current, total) {
136
+ if (total === 0)
137
+ return 0;
138
+ return Math.round((current / total) * 100);
139
+ }
140
+ /**
141
+ * Format duration in human-readable format
142
+ */
143
+ formatDuration(ms) {
144
+ const seconds = Math.floor(ms / 1000);
145
+ const minutes = Math.floor(seconds / 60);
146
+ const hours = Math.floor(minutes / 60);
147
+ if (hours > 0) {
148
+ return `${hours}h ${minutes % 60}m ${seconds % 60}s`;
149
+ }
150
+ else if (minutes > 0) {
151
+ return `${minutes}m ${seconds % 60}s`;
152
+ }
153
+ else if (seconds > 0) {
154
+ return `${seconds}s`;
155
+ }
156
+ else {
157
+ return `${ms}ms`;
158
+ }
159
+ }
160
+ /**
161
+ * Sleep utility for testing/throttling
162
+ */
163
+ async sleep(ms) {
164
+ return new Promise(resolve => setTimeout(resolve, ms));
165
+ }
166
+ }
167
+ exports.BaseStreamHandler = BaseStreamHandler;
168
+ //# sourceMappingURL=BaseStreamHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseStreamHandler.js","sourceRoot":"","sources":["../../src/streaming/BaseStreamHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Test Generation Streaming Handler
3
+ *
4
+ * Provides real-time progress updates for AI-powered test generation.
5
+ * Emits progress for each function/module as tests are generated.
6
+ *
7
+ * @version 1.0.0
8
+ * @author Agentic QE Team
9
+ */
10
+ import { BaseStreamHandler, StreamEvent } from './BaseStreamHandler';
11
+ export interface TestGenerateParams {
12
+ sourceFile: string;
13
+ framework: 'jest' | 'mocha' | 'vitest';
14
+ testType?: 'unit' | 'integration' | 'e2e';
15
+ coverage?: number;
16
+ includeEdgeCases?: boolean;
17
+ generateMocks?: boolean;
18
+ }
19
+ export interface FunctionAnalysis {
20
+ name: string;
21
+ params: string[];
22
+ returnType?: string;
23
+ complexity: number;
24
+ isAsync: boolean;
25
+ isExported: boolean;
26
+ lineStart: number;
27
+ lineEnd: number;
28
+ }
29
+ export interface GeneratedTest {
30
+ functionName: string;
31
+ testCode: string;
32
+ testCount: number;
33
+ coverageEstimate: number;
34
+ includesEdgeCases: boolean;
35
+ includesMocks: boolean;
36
+ }
37
+ export interface TestGenerateResult {
38
+ sourceFile: string;
39
+ framework: string;
40
+ tests: GeneratedTest[];
41
+ totalTests: number;
42
+ estimatedCoverage: number;
43
+ generationTime: number;
44
+ outputFile: string;
45
+ }
46
+ /**
47
+ * Streaming handler for test generation with real-time progress
48
+ */
49
+ export declare class TestGenerateStreamHandler extends BaseStreamHandler {
50
+ /**
51
+ * Process test generation task with incremental progress updates
52
+ */
53
+ protected processTask(params: TestGenerateParams): AsyncGenerator<StreamEvent>;
54
+ /**
55
+ * Validate source file exists and is readable
56
+ */
57
+ private validateSourceFile;
58
+ /**
59
+ * Analyze source file to extract functions
60
+ */
61
+ private analyzeSourceFile;
62
+ /**
63
+ * Extract function information from AST node
64
+ */
65
+ private extractFunctionInfo;
66
+ /**
67
+ * Estimate cyclomatic complexity
68
+ */
69
+ private estimateComplexity;
70
+ /**
71
+ * Check if function is exported
72
+ */
73
+ private isExported;
74
+ /**
75
+ * Generate test for a single function
76
+ */
77
+ private generateTestForFunction;
78
+ /**
79
+ * Generate happy path test
80
+ */
81
+ private generateHappyPathTest;
82
+ /**
83
+ * Generate edge case tests
84
+ */
85
+ private generateEdgeCaseTests;
86
+ /**
87
+ * Generate error handling test
88
+ */
89
+ private generateErrorTest;
90
+ /**
91
+ * Generate test file with all tests
92
+ */
93
+ private generateTestFile;
94
+ /**
95
+ * Generate import statements
96
+ */
97
+ private generateImports;
98
+ /**
99
+ * Calculate estimated coverage
100
+ */
101
+ private calculateCoverageEstimate;
102
+ }
103
+ //# sourceMappingURL=TestGenerateStreamHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestGenerateStreamHandler.d.ts","sourceRoot":"","sources":["../../src/streaming/TestGenerateStreamHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMrE,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;IAC9D;;OAEG;cACc,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAAC,WAAW,CAAC;IAsFrF;;OAEG;YACW,kBAAkB;IAQhC;;OAEG;YACW,iBAAiB;IA2C/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;OAEG;YACW,uBAAuB;IAuCrC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;YACW,gBAAgB;IAmB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAmBvB;;OAEG;IACH,OAAO,CAAC,yBAAyB;CAIlC"}
@@ -0,0 +1,321 @@
1
+ "use strict";
2
+ /**
3
+ * Test Generation Streaming Handler
4
+ *
5
+ * Provides real-time progress updates for AI-powered test generation.
6
+ * Emits progress for each function/module as tests are generated.
7
+ *
8
+ * @version 1.0.0
9
+ * @author Agentic QE Team
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.TestGenerateStreamHandler = void 0;
49
+ const BaseStreamHandler_1 = require("./BaseStreamHandler");
50
+ const fs = __importStar(require("fs/promises"));
51
+ const path = __importStar(require("path"));
52
+ const parser_1 = require("@babel/parser");
53
+ const traverse_1 = __importDefault(require("@babel/traverse"));
54
+ /**
55
+ * Streaming handler for test generation with real-time progress
56
+ */
57
+ class TestGenerateStreamHandler extends BaseStreamHandler_1.BaseStreamHandler {
58
+ /**
59
+ * Process test generation task with incremental progress updates
60
+ */
61
+ async *processTask(params) {
62
+ const { sourceFile, framework, testType = 'unit', coverage = 80, includeEdgeCases = true, generateMocks = true } = params;
63
+ // Validate source file exists
64
+ yield this.progressEvent(5, `Validating source file: ${sourceFile}`);
65
+ await this.validateSourceFile(sourceFile);
66
+ // Analyze source file
67
+ yield this.progressEvent(10, 'Analyzing source file...');
68
+ const analysis = await this.analyzeSourceFile(sourceFile);
69
+ yield this.progressEvent(20, `Found ${analysis.functions.length} functions to test`, {
70
+ functionsFound: analysis.functions.length,
71
+ totalLines: analysis.totalLines
72
+ });
73
+ // Generate tests for each function
74
+ const tests = [];
75
+ const totalFunctions = analysis.functions.length;
76
+ for (let i = 0; i < totalFunctions; i++) {
77
+ if (this.isCancelled()) {
78
+ throw new Error('Test generation cancelled');
79
+ }
80
+ const func = analysis.functions[i];
81
+ const progress = 20 + ((i / totalFunctions) * 60);
82
+ yield this.progressEvent(progress, `Generating tests for ${func.name}...`, {
83
+ currentFunction: func.name,
84
+ functionsCompleted: i,
85
+ functionsTotal: totalFunctions
86
+ });
87
+ const generatedTest = await this.generateTestForFunction(func, framework, { includeEdgeCases, generateMocks, coverage });
88
+ tests.push(generatedTest);
89
+ // Emit intermediate result
90
+ yield this.resultEvent(generatedTest, {
91
+ type: 'intermediate',
92
+ progress: i + 1,
93
+ total: totalFunctions
94
+ });
95
+ // Small delay to simulate AI generation (in real impl, this would be LLM call)
96
+ await this.sleep(100);
97
+ }
98
+ // Generate output file
99
+ yield this.progressEvent(85, 'Generating test file...');
100
+ const outputFile = await this.generateTestFile(sourceFile, tests, framework);
101
+ yield this.progressEvent(95, 'Calculating coverage estimate...');
102
+ const estimatedCoverage = this.calculateCoverageEstimate(tests, analysis.totalLines);
103
+ // Final result
104
+ const result = {
105
+ sourceFile,
106
+ framework,
107
+ tests,
108
+ totalTests: tests.reduce((sum, t) => sum + t.testCount, 0),
109
+ estimatedCoverage,
110
+ generationTime: Date.now() - this.startTime,
111
+ outputFile
112
+ };
113
+ yield this.progressEvent(100, `Generated ${result.totalTests} tests in ${outputFile}`);
114
+ yield this.resultEvent(result, { type: 'final' });
115
+ }
116
+ /**
117
+ * Validate source file exists and is readable
118
+ */
119
+ async validateSourceFile(sourceFile) {
120
+ try {
121
+ await fs.access(sourceFile, fs.constants.R_OK);
122
+ }
123
+ catch (error) {
124
+ throw new Error(`Source file not found or not readable: ${sourceFile}`);
125
+ }
126
+ }
127
+ /**
128
+ * Analyze source file to extract functions
129
+ */
130
+ async analyzeSourceFile(sourceFile) {
131
+ const code = await fs.readFile(sourceFile, 'utf-8');
132
+ const functions = [];
133
+ try {
134
+ const ast = (0, parser_1.parse)(code, {
135
+ sourceType: 'module',
136
+ plugins: ['typescript', 'jsx']
137
+ });
138
+ // Use @babel/traverse default export
139
+ const traverseFunc = typeof traverse_1.default === 'function' ? traverse_1.default : traverse_1.default.default;
140
+ traverseFunc(ast, {
141
+ FunctionDeclaration(path) {
142
+ functions.push(this.extractFunctionInfo(path));
143
+ },
144
+ ArrowFunctionExpression(path) {
145
+ if (path.parent.type === 'VariableDeclarator') {
146
+ functions.push(this.extractFunctionInfo(path));
147
+ }
148
+ },
149
+ ClassMethod(path) {
150
+ functions.push(this.extractFunctionInfo(path));
151
+ }
152
+ });
153
+ return {
154
+ functions,
155
+ totalLines: code.split('\n').length
156
+ };
157
+ }
158
+ catch (error) {
159
+ // If parsing fails, return empty analysis
160
+ return {
161
+ functions: [],
162
+ totalLines: code.split('\n').length
163
+ };
164
+ }
165
+ }
166
+ /**
167
+ * Extract function information from AST node
168
+ */
169
+ extractFunctionInfo(path) {
170
+ const node = path.node;
171
+ const name = node.id?.name || node.key?.name || 'anonymous';
172
+ return {
173
+ name,
174
+ params: node.params?.map((p) => p.name || 'param') || [],
175
+ complexity: this.estimateComplexity(node),
176
+ isAsync: node.async || false,
177
+ isExported: this.isExported(path),
178
+ lineStart: node.loc?.start.line || 0,
179
+ lineEnd: node.loc?.end.line || 0
180
+ };
181
+ }
182
+ /**
183
+ * Estimate cyclomatic complexity
184
+ */
185
+ estimateComplexity(node) {
186
+ // Simplified complexity estimation
187
+ let complexity = 1;
188
+ if (node.body) {
189
+ const bodyStr = JSON.stringify(node.body);
190
+ complexity += (bodyStr.match(/if|while|for|case|\&\&|\|\|/g) || []).length;
191
+ }
192
+ return complexity;
193
+ }
194
+ /**
195
+ * Check if function is exported
196
+ */
197
+ isExported(path) {
198
+ let parent = path.parentPath;
199
+ while (parent) {
200
+ if (parent.node.type === 'ExportNamedDeclaration' ||
201
+ parent.node.type === 'ExportDefaultDeclaration') {
202
+ return true;
203
+ }
204
+ parent = parent.parentPath;
205
+ }
206
+ return false;
207
+ }
208
+ /**
209
+ * Generate test for a single function
210
+ */
211
+ async generateTestForFunction(func, framework, options) {
212
+ // In real implementation, this would use LLM to generate tests
213
+ // For now, generate template-based tests
214
+ const tests = [];
215
+ // Basic happy path test
216
+ tests.push(this.generateHappyPathTest(func, framework));
217
+ // Edge cases based on complexity
218
+ if (options.includeEdgeCases) {
219
+ tests.push(...this.generateEdgeCaseTests(func, framework));
220
+ }
221
+ // Error handling tests
222
+ if (func.complexity > 2) {
223
+ tests.push(this.generateErrorTest(func, framework));
224
+ }
225
+ const testCode = tests.join('\n\n');
226
+ return {
227
+ functionName: func.name,
228
+ testCode,
229
+ testCount: tests.length,
230
+ coverageEstimate: Math.min(95, 50 + (tests.length * 15)),
231
+ includesEdgeCases: options.includeEdgeCases,
232
+ includesMocks: options.generateMocks
233
+ };
234
+ }
235
+ /**
236
+ * Generate happy path test
237
+ */
238
+ generateHappyPathTest(func, framework) {
239
+ const testFn = framework === 'jest' ? 'test' : 'it';
240
+ const expectFn = framework === 'mocha' ? 'expect' : 'expect';
241
+ return `${testFn}('${func.name} should work with valid input', ${func.isAsync ? 'async ' : ''}() => {
242
+ // Arrange
243
+ const input = {}; // TODO: Provide valid input
244
+
245
+ // Act
246
+ const result = ${func.isAsync ? 'await ' : ''}${func.name}(input);
247
+
248
+ // Assert
249
+ ${expectFn}(result).toBeDefined();
250
+ });`;
251
+ }
252
+ /**
253
+ * Generate edge case tests
254
+ */
255
+ generateEdgeCaseTests(func, framework) {
256
+ const testFn = framework === 'jest' ? 'test' : 'it';
257
+ const tests = [];
258
+ // Null/undefined test
259
+ tests.push(`${testFn}('${func.name} should handle null/undefined', () => {
260
+ expect(() => ${func.name}(null)).not.toThrow();
261
+ });`);
262
+ // Empty input test
263
+ if (func.params.length > 0) {
264
+ tests.push(`${testFn}('${func.name} should handle empty input', () => {
265
+ const result = ${func.name}({});
266
+ expect(result).toBeDefined();
267
+ });`);
268
+ }
269
+ return tests;
270
+ }
271
+ /**
272
+ * Generate error handling test
273
+ */
274
+ generateErrorTest(func, framework) {
275
+ const testFn = framework === 'jest' ? 'test' : 'it';
276
+ return `${testFn}('${func.name} should handle errors gracefully', ${func.isAsync ? 'async ' : ''}() => {
277
+ const invalidInput = undefined;
278
+
279
+ ${func.isAsync ?
280
+ 'await expect(' + func.name + '(invalidInput)).rejects.toThrow();' :
281
+ 'expect(() => ' + func.name + '(invalidInput)).toThrow();'}
282
+ });`;
283
+ }
284
+ /**
285
+ * Generate test file with all tests
286
+ */
287
+ async generateTestFile(sourceFile, tests, framework) {
288
+ const dir = path.dirname(sourceFile);
289
+ const basename = path.basename(sourceFile, path.extname(sourceFile));
290
+ const outputFile = path.join(dir, `${basename}.test.ts`);
291
+ const imports = this.generateImports(sourceFile, tests, framework);
292
+ const testSuites = tests.map(t => t.testCode).join('\n\n');
293
+ const fileContent = `${imports}\n\ndescribe('${basename}', () => {\n${testSuites}\n});\n`;
294
+ await fs.writeFile(outputFile, fileContent, 'utf-8');
295
+ return outputFile;
296
+ }
297
+ /**
298
+ * Generate import statements
299
+ */
300
+ generateImports(sourceFile, tests, framework) {
301
+ const functionNames = tests.map(t => t.functionName).join(', ');
302
+ const relativePath = './' + path.basename(sourceFile, path.extname(sourceFile));
303
+ let imports = `import { ${functionNames} } from '${relativePath}';\n`;
304
+ if (framework === 'jest') {
305
+ imports += `import { describe, test, expect } from '@jest/globals';\n`;
306
+ }
307
+ else if (framework === 'mocha') {
308
+ imports += `import { describe, it } from 'mocha';\nimport { expect } from 'chai';\n`;
309
+ }
310
+ return imports;
311
+ }
312
+ /**
313
+ * Calculate estimated coverage
314
+ */
315
+ calculateCoverageEstimate(tests, totalLines) {
316
+ const avgCoverage = tests.reduce((sum, t) => sum + t.coverageEstimate, 0) / tests.length;
317
+ return Math.min(95, avgCoverage);
318
+ }
319
+ }
320
+ exports.TestGenerateStreamHandler = TestGenerateStreamHandler;
321
+ //# sourceMappingURL=TestGenerateStreamHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestGenerateStreamHandler.js","sourceRoot":"","sources":["../../src/streaming/TestGenerateStreamHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Streaming API Module
3
+ *
4
+ * Provides AsyncGenerator-based streaming handlers for real-time progress updates.
5
+ * All handlers support for-await-of pattern for incremental result processing.
6
+ *
7
+ * @version 1.0.0
8
+ * @author Agentic QE Team
9
+ */
10
+ export { BaseStreamHandler, StreamEvent } from './BaseStreamHandler';
11
+ export { TestGenerateStreamHandler, TestGenerateParams, TestGenerateResult } from './TestGenerateStreamHandler';
12
+ export { TestExecuteStreamHandler } from '../mcp/streaming/TestExecuteStreamHandler';
13
+ export { CoverageAnalyzeStreamHandler } from '../mcp/streaming/CoverageAnalyzeStreamHandler';
14
+ export { StreamingMCPTool } from '../mcp/streaming/StreamingMCPTool';
15
+ export * from '../mcp/streaming/types';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/streaming/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGhH,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /**
3
+ * Streaming API Module
4
+ *
5
+ * Provides AsyncGenerator-based streaming handlers for real-time progress updates.
6
+ * All handlers support for-await-of pattern for incremental result processing.
7
+ *
8
+ * @version 1.0.0
9
+ * @author Agentic QE Team
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
23
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.StreamingMCPTool = exports.CoverageAnalyzeStreamHandler = exports.TestExecuteStreamHandler = exports.TestGenerateStreamHandler = exports.BaseStreamHandler = void 0;
27
+ var BaseStreamHandler_1 = require("./BaseStreamHandler");
28
+ Object.defineProperty(exports, "BaseStreamHandler", { enumerable: true, get: function () { return BaseStreamHandler_1.BaseStreamHandler; } });
29
+ var TestGenerateStreamHandler_1 = require("./TestGenerateStreamHandler");
30
+ Object.defineProperty(exports, "TestGenerateStreamHandler", { enumerable: true, get: function () { return TestGenerateStreamHandler_1.TestGenerateStreamHandler; } });
31
+ // Re-export MCP streaming handlers
32
+ var TestExecuteStreamHandler_1 = require("../mcp/streaming/TestExecuteStreamHandler");
33
+ Object.defineProperty(exports, "TestExecuteStreamHandler", { enumerable: true, get: function () { return TestExecuteStreamHandler_1.TestExecuteStreamHandler; } });
34
+ var CoverageAnalyzeStreamHandler_1 = require("../mcp/streaming/CoverageAnalyzeStreamHandler");
35
+ Object.defineProperty(exports, "CoverageAnalyzeStreamHandler", { enumerable: true, get: function () { return CoverageAnalyzeStreamHandler_1.CoverageAnalyzeStreamHandler; } });
36
+ var StreamingMCPTool_1 = require("../mcp/streaming/StreamingMCPTool");
37
+ Object.defineProperty(exports, "StreamingMCPTool", { enumerable: true, get: function () { return StreamingMCPTool_1.StreamingMCPTool; } });
38
+ __exportStar(require("../mcp/streaming/types"), exports);
39
+ //# sourceMappingURL=index.js.map