agentic-qe 1.9.3 → 1.9.4

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 (108) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +30 -5
  3. package/config/.env.otel.example +25 -0
  4. package/config/OTEL-QUICK-REFERENCE.md +137 -0
  5. package/config/README-OTEL.md +222 -0
  6. package/config/alerting-rules.yml +518 -0
  7. package/config/docker-compose.otel.yml +187 -0
  8. package/config/grafana/dashboards/agentic-qe-overview.json +286 -0
  9. package/config/grafana/provisioning/dashboards/dashboards.yml +19 -0
  10. package/config/grafana/provisioning/datasources/datasources.yml +53 -0
  11. package/config/otel-collector-config.yaml.example +145 -0
  12. package/config/prometheus.yml.example +106 -0
  13. package/dist/alerting/AlertManager.d.ts +120 -0
  14. package/dist/alerting/AlertManager.d.ts.map +1 -0
  15. package/dist/alerting/AlertManager.js +345 -0
  16. package/dist/alerting/AlertManager.js.map +1 -0
  17. package/dist/alerting/FeedbackRouter.d.ts +98 -0
  18. package/dist/alerting/FeedbackRouter.d.ts.map +1 -0
  19. package/dist/alerting/FeedbackRouter.js +331 -0
  20. package/dist/alerting/FeedbackRouter.js.map +1 -0
  21. package/dist/alerting/StrategyApplicator.d.ts +120 -0
  22. package/dist/alerting/StrategyApplicator.d.ts.map +1 -0
  23. package/dist/alerting/StrategyApplicator.js +299 -0
  24. package/dist/alerting/StrategyApplicator.js.map +1 -0
  25. package/dist/alerting/index.d.ts +68 -0
  26. package/dist/alerting/index.d.ts.map +1 -0
  27. package/dist/alerting/index.js +112 -0
  28. package/dist/alerting/index.js.map +1 -0
  29. package/dist/alerting/types.d.ts +118 -0
  30. package/dist/alerting/types.d.ts.map +1 -0
  31. package/dist/alerting/types.js +11 -0
  32. package/dist/alerting/types.js.map +1 -0
  33. package/dist/cli/init/claude-config.d.ts.map +1 -1
  34. package/dist/cli/init/claude-config.js +12 -7
  35. package/dist/cli/init/claude-config.js.map +1 -1
  36. package/dist/core/memory/IPatternStore.d.ts +209 -0
  37. package/dist/core/memory/IPatternStore.d.ts.map +1 -0
  38. package/dist/core/memory/IPatternStore.js +15 -0
  39. package/dist/core/memory/IPatternStore.js.map +1 -0
  40. package/dist/core/memory/MigrationTools.d.ts +192 -0
  41. package/dist/core/memory/MigrationTools.d.ts.map +1 -0
  42. package/dist/core/memory/MigrationTools.js +615 -0
  43. package/dist/core/memory/MigrationTools.js.map +1 -0
  44. package/dist/core/memory/NeuralEnhancement.d.ts +154 -0
  45. package/dist/core/memory/NeuralEnhancement.d.ts.map +1 -0
  46. package/dist/core/memory/NeuralEnhancement.js +598 -0
  47. package/dist/core/memory/NeuralEnhancement.js.map +1 -0
  48. package/dist/core/memory/PatternStoreFactory.d.ts +143 -0
  49. package/dist/core/memory/PatternStoreFactory.d.ts.map +1 -0
  50. package/dist/core/memory/PatternStoreFactory.js +370 -0
  51. package/dist/core/memory/PatternStoreFactory.js.map +1 -0
  52. package/dist/core/memory/RealAgentDBAdapter.d.ts +1 -0
  53. package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -1
  54. package/dist/core/memory/RealAgentDBAdapter.js +28 -20
  55. package/dist/core/memory/RealAgentDBAdapter.js.map +1 -1
  56. package/dist/core/memory/RuVectorPatternStore.d.ts +198 -0
  57. package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -0
  58. package/dist/core/memory/RuVectorPatternStore.js +605 -0
  59. package/dist/core/memory/RuVectorPatternStore.js.map +1 -0
  60. package/dist/core/memory/SelfHealingMonitor.d.ts +186 -0
  61. package/dist/core/memory/SelfHealingMonitor.d.ts.map +1 -0
  62. package/dist/core/memory/SelfHealingMonitor.js +451 -0
  63. package/dist/core/memory/SelfHealingMonitor.js.map +1 -0
  64. package/dist/core/memory/SwarmMemoryManager.d.ts +62 -0
  65. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  66. package/dist/core/memory/SwarmMemoryManager.js +97 -0
  67. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  68. package/dist/core/memory/index.d.ts +11 -0
  69. package/dist/core/memory/index.d.ts.map +1 -1
  70. package/dist/core/memory/index.js +36 -1
  71. package/dist/core/memory/index.js.map +1 -1
  72. package/dist/reasoning/RuVectorReasoningAdapter.d.ts +232 -0
  73. package/dist/reasoning/RuVectorReasoningAdapter.d.ts.map +1 -0
  74. package/dist/reasoning/RuVectorReasoningAdapter.js +585 -0
  75. package/dist/reasoning/RuVectorReasoningAdapter.js.map +1 -0
  76. package/dist/reasoning/index.d.ts +2 -0
  77. package/dist/reasoning/index.d.ts.map +1 -1
  78. package/dist/reasoning/index.js +6 -1
  79. package/dist/reasoning/index.js.map +1 -1
  80. package/dist/reporting/ResultAggregator.d.ts +107 -0
  81. package/dist/reporting/ResultAggregator.d.ts.map +1 -0
  82. package/dist/reporting/ResultAggregator.js +435 -0
  83. package/dist/reporting/ResultAggregator.js.map +1 -0
  84. package/dist/reporting/index.d.ts +48 -0
  85. package/dist/reporting/index.d.ts.map +1 -0
  86. package/dist/reporting/index.js +154 -0
  87. package/dist/reporting/index.js.map +1 -0
  88. package/dist/reporting/reporters/ControlLoopReporter.d.ts +128 -0
  89. package/dist/reporting/reporters/ControlLoopReporter.d.ts.map +1 -0
  90. package/dist/reporting/reporters/ControlLoopReporter.js +417 -0
  91. package/dist/reporting/reporters/ControlLoopReporter.js.map +1 -0
  92. package/dist/reporting/reporters/HumanReadableReporter.d.ts +140 -0
  93. package/dist/reporting/reporters/HumanReadableReporter.d.ts.map +1 -0
  94. package/dist/reporting/reporters/HumanReadableReporter.js +524 -0
  95. package/dist/reporting/reporters/HumanReadableReporter.js.map +1 -0
  96. package/dist/reporting/reporters/JSONReporter.d.ts +193 -0
  97. package/dist/reporting/reporters/JSONReporter.d.ts.map +1 -0
  98. package/dist/reporting/reporters/JSONReporter.js +324 -0
  99. package/dist/reporting/reporters/JSONReporter.js.map +1 -0
  100. package/dist/reporting/reporters/index.d.ts +14 -0
  101. package/dist/reporting/reporters/index.d.ts.map +1 -0
  102. package/dist/reporting/reporters/index.js +19 -0
  103. package/dist/reporting/reporters/index.js.map +1 -0
  104. package/dist/reporting/types.d.ts +427 -0
  105. package/dist/reporting/types.d.ts.map +1 -0
  106. package/dist/reporting/types.js +12 -0
  107. package/dist/reporting/types.js.map +1 -0
  108. package/package.json +9 -1
@@ -0,0 +1,193 @@
1
+ /**
2
+ * JSON Reporter
3
+ *
4
+ * Generates structured JSON output for API consumption, storage,
5
+ * and programmatic processing of quality check results.
6
+ *
7
+ * @module reporting/reporters/JSONReporter
8
+ * @version 1.0.0
9
+ */
10
+ import { Reporter, ReporterConfig, ReportFormat, ReporterOutput, AggregatedResults } from '../types';
11
+ /**
12
+ * JSON output structure
13
+ */
14
+ export interface JSONReportOutput {
15
+ /** Report metadata */
16
+ meta: {
17
+ reportVersion: string;
18
+ generatedAt: string;
19
+ executionId: string;
20
+ format: string;
21
+ };
22
+ /** Project information */
23
+ project: {
24
+ name: string;
25
+ version?: string;
26
+ repository?: string;
27
+ branch?: string;
28
+ commit?: string;
29
+ environment?: string;
30
+ };
31
+ /** Execution summary */
32
+ summary: {
33
+ status: string;
34
+ message: string;
35
+ deploymentReady: boolean;
36
+ criticalIssues: number;
37
+ warnings: number;
38
+ highlights: string[];
39
+ recommendations: string[];
40
+ };
41
+ /** Test results */
42
+ tests: {
43
+ total: number;
44
+ passed: number;
45
+ failed: number;
46
+ skipped: number;
47
+ flaky?: number;
48
+ duration: number;
49
+ passRate: number;
50
+ failureRate: number;
51
+ results?: any[];
52
+ suites?: any[];
53
+ };
54
+ /** Coverage data */
55
+ coverage?: {
56
+ overall: number;
57
+ lines: {
58
+ total: number;
59
+ covered: number;
60
+ uncovered: number;
61
+ percentage: number;
62
+ };
63
+ branches: {
64
+ total: number;
65
+ covered: number;
66
+ uncovered: number;
67
+ percentage: number;
68
+ };
69
+ functions: {
70
+ total: number;
71
+ covered: number;
72
+ uncovered: number;
73
+ percentage: number;
74
+ };
75
+ statements: {
76
+ total: number;
77
+ covered: number;
78
+ uncovered: number;
79
+ percentage: number;
80
+ };
81
+ trend?: string;
82
+ files?: any[];
83
+ };
84
+ /** Quality metrics */
85
+ quality?: {
86
+ score: number;
87
+ grade: string;
88
+ codeQuality: {
89
+ maintainabilityIndex: number;
90
+ cyclomaticComplexity: number;
91
+ technicalDebt: number;
92
+ codeSmells: number;
93
+ duplications: number;
94
+ };
95
+ gates: {
96
+ passed: number;
97
+ failed: number;
98
+ details?: any[];
99
+ };
100
+ };
101
+ /** Security data */
102
+ security?: {
103
+ total: number;
104
+ score: number;
105
+ summary: {
106
+ critical: number;
107
+ high: number;
108
+ medium: number;
109
+ low: number;
110
+ info: number;
111
+ };
112
+ vulnerabilities?: any[];
113
+ };
114
+ /** Performance data */
115
+ performance?: {
116
+ responseTime: {
117
+ min: number;
118
+ max: number;
119
+ mean: number;
120
+ median: number;
121
+ p95: number;
122
+ p99: number;
123
+ };
124
+ throughput: number;
125
+ errorRate: number;
126
+ resources: {
127
+ cpu: number;
128
+ memory: number;
129
+ disk?: number;
130
+ };
131
+ };
132
+ /** Execution metadata */
133
+ metadata: {
134
+ startedAt: string;
135
+ completedAt: string;
136
+ duration: number;
137
+ ci?: any;
138
+ agent?: any;
139
+ environment?: any;
140
+ };
141
+ }
142
+ /**
143
+ * JSON Reporter
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * const reporter = new JSONReporter({ prettyPrint: true });
148
+ * const output = reporter.report(aggregatedResults);
149
+ * console.log(output.content); // Pretty-printed JSON
150
+ * ```
151
+ */
152
+ export declare class JSONReporter implements Reporter {
153
+ private config;
154
+ constructor(config?: Partial<ReporterConfig>);
155
+ /**
156
+ * Generate JSON report
157
+ */
158
+ report(results: AggregatedResults): ReporterOutput;
159
+ /**
160
+ * Generate compact JSON (single line, minimal whitespace)
161
+ */
162
+ reportCompact(results: AggregatedResults): ReporterOutput;
163
+ /**
164
+ * Generate JSON with custom filter
165
+ */
166
+ reportFiltered(results: AggregatedResults, filter: (key: string, value: any) => boolean): ReporterOutput;
167
+ /**
168
+ * Filter object recursively
169
+ */
170
+ private filterObject;
171
+ /**
172
+ * Generate JSON Lines format (for streaming)
173
+ */
174
+ reportJSONLines(results: AggregatedResults): string;
175
+ getFormat(): ReportFormat;
176
+ validateConfig(config: ReporterConfig): boolean;
177
+ /**
178
+ * Create a minimal summary (useful for APIs)
179
+ */
180
+ static createSummary(results: AggregatedResults): object;
181
+ /**
182
+ * Parse JSON report back to AggregatedResults
183
+ */
184
+ static parse(jsonContent: string): JSONReportOutput;
185
+ /**
186
+ * Validate JSON report structure
187
+ */
188
+ static validate(jsonContent: string): {
189
+ valid: boolean;
190
+ errors: string[];
191
+ };
192
+ }
193
+ //# sourceMappingURL=JSONReporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JSONReporter.d.ts","sourceRoot":"","sources":["../../../src/reporting/reporters/JSONReporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,324 @@
1
+ "use strict";
2
+ /**
3
+ * JSON Reporter
4
+ *
5
+ * Generates structured JSON output for API consumption, storage,
6
+ * and programmatic processing of quality check results.
7
+ *
8
+ * @module reporting/reporters/JSONReporter
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.JSONReporter = void 0;
13
+ /**
14
+ * JSON Reporter
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const reporter = new JSONReporter({ prettyPrint: true });
19
+ * const output = reporter.report(aggregatedResults);
20
+ * console.log(output.content); // Pretty-printed JSON
21
+ * ```
22
+ */
23
+ class JSONReporter {
24
+ constructor(config = {}) {
25
+ this.config = {
26
+ format: 'json',
27
+ detailLevel: config.detailLevel || 'detailed',
28
+ prettyPrint: config.prettyPrint !== undefined ? config.prettyPrint : true,
29
+ includeTimestamps: config.includeTimestamps !== undefined ? config.includeTimestamps : true,
30
+ includeMetadata: config.includeMetadata !== undefined ? config.includeMetadata : true
31
+ };
32
+ }
33
+ /**
34
+ * Generate JSON report
35
+ */
36
+ report(results) {
37
+ const startTime = Date.now();
38
+ // Build JSON structure
39
+ const jsonOutput = {
40
+ meta: {
41
+ reportVersion: '1.0.0',
42
+ generatedAt: new Date().toISOString(),
43
+ executionId: results.executionId,
44
+ format: 'json'
45
+ },
46
+ project: {
47
+ name: results.project.name,
48
+ version: results.project.version,
49
+ repository: results.project.repository,
50
+ branch: results.project.branch,
51
+ commit: results.project.commit,
52
+ environment: results.project.environment
53
+ },
54
+ summary: {
55
+ status: results.summary.status,
56
+ message: results.summary.message,
57
+ deploymentReady: results.summary.deploymentReady,
58
+ criticalIssues: results.summary.criticalIssues,
59
+ warnings: results.summary.warnings,
60
+ highlights: results.summary.highlights,
61
+ recommendations: results.summary.recommendations
62
+ },
63
+ tests: {
64
+ total: results.testResults.total,
65
+ passed: results.testResults.passed,
66
+ failed: results.testResults.failed,
67
+ skipped: results.testResults.skipped,
68
+ flaky: results.testResults.flaky,
69
+ duration: results.testResults.duration,
70
+ passRate: results.testResults.passRate,
71
+ failureRate: results.testResults.failureRate
72
+ },
73
+ metadata: {
74
+ startedAt: results.metadata.startedAt,
75
+ completedAt: results.metadata.completedAt,
76
+ duration: results.metadata.duration,
77
+ ci: results.metadata.ci,
78
+ agent: results.metadata.agent,
79
+ environment: this.config.includeMetadata ? results.metadata.environment : undefined
80
+ }
81
+ };
82
+ // Add detailed test results if requested
83
+ if (this.config.detailLevel !== 'summary') {
84
+ jsonOutput.tests.results = results.testResults.tests.map(t => ({
85
+ testId: t.testId,
86
+ name: t.name,
87
+ status: t.status,
88
+ duration: t.duration,
89
+ error: t.error,
90
+ retryCount: t.retryCount
91
+ }));
92
+ if (results.testResults.suites) {
93
+ jsonOutput.tests.suites = results.testResults.suites;
94
+ }
95
+ }
96
+ // Add coverage data
97
+ if (results.coverage) {
98
+ jsonOutput.coverage = {
99
+ overall: results.coverage.overall,
100
+ lines: results.coverage.lines,
101
+ branches: results.coverage.branches,
102
+ functions: results.coverage.functions,
103
+ statements: results.coverage.statements,
104
+ trend: results.coverage.trend
105
+ };
106
+ // Add file-level coverage for detailed reports
107
+ if (this.config.detailLevel === 'comprehensive' && results.coverage.files) {
108
+ jsonOutput.coverage.files = results.coverage.files;
109
+ }
110
+ }
111
+ // Add quality metrics
112
+ if (results.qualityMetrics) {
113
+ jsonOutput.quality = {
114
+ score: results.qualityMetrics.score,
115
+ grade: results.qualityMetrics.grade,
116
+ codeQuality: results.qualityMetrics.codeQuality,
117
+ gates: {
118
+ passed: results.qualityMetrics.gatesPassed,
119
+ failed: results.qualityMetrics.gatesFailed,
120
+ details: this.config.detailLevel !== 'summary'
121
+ ? results.qualityMetrics.gates
122
+ : undefined
123
+ }
124
+ };
125
+ }
126
+ // Add security data
127
+ if (results.security) {
128
+ jsonOutput.security = {
129
+ total: results.security.total,
130
+ score: results.security.score,
131
+ summary: results.security.summary,
132
+ vulnerabilities: this.config.detailLevel !== 'summary'
133
+ ? results.security.vulnerabilities
134
+ : undefined
135
+ };
136
+ }
137
+ // Add performance data
138
+ if (results.performance) {
139
+ jsonOutput.performance = {
140
+ responseTime: results.performance.responseTime,
141
+ throughput: results.performance.throughput,
142
+ errorRate: results.performance.errorRate,
143
+ resources: results.performance.resources
144
+ };
145
+ }
146
+ // Convert to JSON string
147
+ const content = this.config.prettyPrint
148
+ ? JSON.stringify(jsonOutput, null, 2)
149
+ : JSON.stringify(jsonOutput);
150
+ const generationDuration = Date.now() - startTime;
151
+ return {
152
+ format: 'json',
153
+ content,
154
+ timestamp: new Date().toISOString(),
155
+ size: Buffer.byteLength(content, 'utf8'),
156
+ generationDuration
157
+ };
158
+ }
159
+ /**
160
+ * Generate compact JSON (single line, minimal whitespace)
161
+ */
162
+ reportCompact(results) {
163
+ const originalPrettyPrint = this.config.prettyPrint;
164
+ this.config.prettyPrint = false;
165
+ const output = this.report(results);
166
+ this.config.prettyPrint = originalPrettyPrint;
167
+ return output;
168
+ }
169
+ /**
170
+ * Generate JSON with custom filter
171
+ */
172
+ reportFiltered(results, filter) {
173
+ const startTime = Date.now();
174
+ const output = this.report(results);
175
+ // Parse and re-stringify with filter
176
+ const parsed = JSON.parse(output.content);
177
+ const filtered = this.filterObject(parsed, filter);
178
+ const content = this.config.prettyPrint
179
+ ? JSON.stringify(filtered, null, 2)
180
+ : JSON.stringify(filtered);
181
+ const generationDuration = Date.now() - startTime;
182
+ return {
183
+ format: 'json',
184
+ content,
185
+ timestamp: new Date().toISOString(),
186
+ size: Buffer.byteLength(content, 'utf8'),
187
+ generationDuration
188
+ };
189
+ }
190
+ /**
191
+ * Filter object recursively
192
+ */
193
+ filterObject(obj, filter) {
194
+ if (Array.isArray(obj)) {
195
+ return obj.map(item => this.filterObject(item, filter));
196
+ }
197
+ if (obj !== null && typeof obj === 'object') {
198
+ const filtered = {};
199
+ for (const [key, value] of Object.entries(obj)) {
200
+ if (filter(key, value)) {
201
+ filtered[key] = this.filterObject(value, filter);
202
+ }
203
+ }
204
+ return filtered;
205
+ }
206
+ return obj;
207
+ }
208
+ /**
209
+ * Generate JSON Lines format (for streaming)
210
+ */
211
+ reportJSONLines(results) {
212
+ const output = this.report(results);
213
+ const data = JSON.parse(output.content);
214
+ // Convert to JSON Lines (one JSON object per line)
215
+ const lines = [];
216
+ // Meta line
217
+ lines.push(JSON.stringify({ type: 'meta', data: data.meta }));
218
+ // Summary line
219
+ lines.push(JSON.stringify({ type: 'summary', data: data.summary }));
220
+ // Tests line
221
+ lines.push(JSON.stringify({ type: 'tests', data: data.tests }));
222
+ // Coverage line
223
+ if (data.coverage) {
224
+ lines.push(JSON.stringify({ type: 'coverage', data: data.coverage }));
225
+ }
226
+ // Quality line
227
+ if (data.quality) {
228
+ lines.push(JSON.stringify({ type: 'quality', data: data.quality }));
229
+ }
230
+ // Security line
231
+ if (data.security) {
232
+ lines.push(JSON.stringify({ type: 'security', data: data.security }));
233
+ }
234
+ // Performance line
235
+ if (data.performance) {
236
+ lines.push(JSON.stringify({ type: 'performance', data: data.performance }));
237
+ }
238
+ return lines.join('\n');
239
+ }
240
+ getFormat() {
241
+ return 'json';
242
+ }
243
+ validateConfig(config) {
244
+ return config.format === 'json';
245
+ }
246
+ /**
247
+ * Create a minimal summary (useful for APIs)
248
+ */
249
+ static createSummary(results) {
250
+ return {
251
+ executionId: results.executionId,
252
+ timestamp: results.timestamp,
253
+ status: results.summary.status,
254
+ deploymentReady: results.summary.deploymentReady,
255
+ tests: {
256
+ total: results.testResults.total,
257
+ passed: results.testResults.passed,
258
+ failed: results.testResults.failed,
259
+ passRate: results.testResults.passRate
260
+ },
261
+ coverage: results.coverage ? results.coverage.overall : null,
262
+ qualityScore: results.qualityMetrics?.score || null,
263
+ securityScore: results.security?.score || null
264
+ };
265
+ }
266
+ /**
267
+ * Parse JSON report back to AggregatedResults
268
+ */
269
+ static parse(jsonContent) {
270
+ try {
271
+ return JSON.parse(jsonContent);
272
+ }
273
+ catch (error) {
274
+ throw new Error(`Failed to parse JSON report: ${error instanceof Error ? error.message : 'Unknown error'}`);
275
+ }
276
+ }
277
+ /**
278
+ * Validate JSON report structure
279
+ */
280
+ static validate(jsonContent) {
281
+ const errors = [];
282
+ try {
283
+ const data = JSON.parse(jsonContent);
284
+ // Required fields
285
+ if (!data.meta)
286
+ errors.push('Missing meta section');
287
+ if (!data.summary)
288
+ errors.push('Missing summary section');
289
+ if (!data.tests)
290
+ errors.push('Missing tests section');
291
+ if (!data.metadata)
292
+ errors.push('Missing metadata section');
293
+ // Validate meta
294
+ if (data.meta && !data.meta.executionId) {
295
+ errors.push('Missing meta.executionId');
296
+ }
297
+ // Validate summary
298
+ if (data.summary && !data.summary.status) {
299
+ errors.push('Missing summary.status');
300
+ }
301
+ // Validate tests
302
+ if (data.tests) {
303
+ if (typeof data.tests.total !== 'number') {
304
+ errors.push('tests.total must be a number');
305
+ }
306
+ if (typeof data.tests.passed !== 'number') {
307
+ errors.push('tests.passed must be a number');
308
+ }
309
+ }
310
+ return {
311
+ valid: errors.length === 0,
312
+ errors
313
+ };
314
+ }
315
+ catch (error) {
316
+ return {
317
+ valid: false,
318
+ errors: [`Invalid JSON: ${error instanceof Error ? error.message : 'Unknown error'}`]
319
+ };
320
+ }
321
+ }
322
+ }
323
+ exports.JSONReporter = JSONReporter;
324
+ //# sourceMappingURL=JSONReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JSONReporter.js","sourceRoot":"","sources":["../../../src/reporting/reporters/JSONReporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Reporter Modules
3
+ *
4
+ * Exports all reporter implementations for generating quality check reports
5
+ * in various formats (human-readable, JSON, control-loop feedback).
6
+ *
7
+ * @module reporting/reporters
8
+ * @version 1.0.0
9
+ */
10
+ export { HumanReadableReporter } from './HumanReadableReporter';
11
+ export { JSONReporter, JSONReportOutput } from './JSONReporter';
12
+ export { ControlLoopReporter, ControlLoopConfig } from './ControlLoopReporter';
13
+ export type { Reporter, ReporterConfig, ReportFormat, ReporterOutput, AggregatedResults, ControlLoopFeedback, ControlLoopAction, ThresholdViolation } from '../types';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reporting/reporters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG/E,YAAY,EACV,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * Reporter Modules
4
+ *
5
+ * Exports all reporter implementations for generating quality check reports
6
+ * in various formats (human-readable, JSON, control-loop feedback).
7
+ *
8
+ * @module reporting/reporters
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ControlLoopReporter = exports.JSONReporter = exports.HumanReadableReporter = void 0;
13
+ var HumanReadableReporter_1 = require("./HumanReadableReporter");
14
+ Object.defineProperty(exports, "HumanReadableReporter", { enumerable: true, get: function () { return HumanReadableReporter_1.HumanReadableReporter; } });
15
+ var JSONReporter_1 = require("./JSONReporter");
16
+ Object.defineProperty(exports, "JSONReporter", { enumerable: true, get: function () { return JSONReporter_1.JSONReporter; } });
17
+ var ControlLoopReporter_1 = require("./ControlLoopReporter");
18
+ Object.defineProperty(exports, "ControlLoopReporter", { enumerable: true, get: function () { return ControlLoopReporter_1.ControlLoopReporter; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reporting/reporters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,+CAAgE;AAAvD,4GAAA,YAAY,OAAA;AACrB,6DAA+E;AAAtE,0HAAA,mBAAmB,OAAA"}