agentic-qe 1.9.3 → 2.0.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 (271) hide show
  1. package/.claude/agents/qe-api-contract-validator.md +95 -1336
  2. package/.claude/agents/qe-chaos-engineer.md +152 -1211
  3. package/.claude/agents/qe-code-complexity.md +144 -707
  4. package/.claude/agents/qe-coverage-analyzer.md +147 -743
  5. package/.claude/agents/qe-deployment-readiness.md +143 -1496
  6. package/.claude/agents/qe-flaky-test-hunter.md +132 -1529
  7. package/.claude/agents/qe-fleet-commander.md +12 -12
  8. package/.claude/agents/qe-performance-tester.md +150 -886
  9. package/.claude/agents/qe-production-intelligence.md +155 -1396
  10. package/.claude/agents/qe-quality-analyzer.md +6 -6
  11. package/.claude/agents/qe-quality-gate.md +151 -648
  12. package/.claude/agents/qe-regression-risk-analyzer.md +132 -1150
  13. package/.claude/agents/qe-requirements-validator.md +149 -932
  14. package/.claude/agents/qe-security-scanner.md +157 -797
  15. package/.claude/agents/qe-test-data-architect.md +96 -1365
  16. package/.claude/agents/qe-test-executor.md +8 -8
  17. package/.claude/agents/qe-test-generator.md +145 -1540
  18. package/.claude/agents/qe-visual-tester.md +153 -1257
  19. package/.claude/agents/qx-partner.md +235 -0
  20. package/.claude/agents/subagents/qe-code-reviewer.md +40 -136
  21. package/.claude/agents/subagents/qe-coverage-gap-analyzer.md +40 -480
  22. package/.claude/agents/subagents/qe-data-generator.md +41 -125
  23. package/.claude/agents/subagents/qe-flaky-investigator.md +55 -411
  24. package/.claude/agents/subagents/qe-integration-tester.md +53 -141
  25. package/.claude/agents/subagents/qe-performance-validator.md +54 -130
  26. package/.claude/agents/subagents/qe-security-auditor.md +56 -114
  27. package/.claude/agents/subagents/qe-test-data-architect-sub.md +57 -548
  28. package/.claude/agents/subagents/qe-test-implementer.md +58 -551
  29. package/.claude/agents/subagents/qe-test-refactorer.md +65 -722
  30. package/.claude/agents/subagents/qe-test-writer.md +63 -726
  31. package/.claude/skills/skills-manifest.json +632 -0
  32. package/.claude/skills/testability-scoring/README.md +71 -0
  33. package/.claude/skills/testability-scoring/SKILL.md +611 -0
  34. package/.claude/skills/testability-scoring/resources/templates/config.template.js +84 -0
  35. package/.claude/skills/testability-scoring/resources/templates/testability-scoring.spec.template.js +532 -0
  36. package/.claude/skills/testability-scoring/scripts/generate-html-report.js +1007 -0
  37. package/.claude/skills/testability-scoring/scripts/run-assessment.sh +70 -0
  38. package/CHANGELOG.md +116 -0
  39. package/README.md +59 -7
  40. package/config/.env.otel.example +25 -0
  41. package/config/OTEL-QUICK-REFERENCE.md +137 -0
  42. package/config/README-OTEL.md +222 -0
  43. package/config/alerting-rules.yml +518 -0
  44. package/config/docker-compose.otel.yml +187 -0
  45. package/config/grafana/dashboards/agentic-qe-overview.json +286 -0
  46. package/config/grafana/provisioning/dashboards/dashboards.yml +19 -0
  47. package/config/grafana/provisioning/datasources/datasources.yml +53 -0
  48. package/config/otel-collector-config.yaml.example +145 -0
  49. package/config/prometheus.yml.example +106 -0
  50. package/dist/agents/QXPartnerAgent.d.ts +139 -0
  51. package/dist/agents/QXPartnerAgent.d.ts.map +1 -0
  52. package/dist/agents/QXPartnerAgent.js +769 -0
  53. package/dist/agents/QXPartnerAgent.js.map +1 -0
  54. package/dist/agents/index.d.ts +1 -0
  55. package/dist/agents/index.d.ts.map +1 -1
  56. package/dist/agents/index.js +82 -2
  57. package/dist/agents/index.js.map +1 -1
  58. package/dist/alerting/AlertManager.d.ts +120 -0
  59. package/dist/alerting/AlertManager.d.ts.map +1 -0
  60. package/dist/alerting/AlertManager.js +345 -0
  61. package/dist/alerting/AlertManager.js.map +1 -0
  62. package/dist/alerting/FeedbackRouter.d.ts +98 -0
  63. package/dist/alerting/FeedbackRouter.d.ts.map +1 -0
  64. package/dist/alerting/FeedbackRouter.js +331 -0
  65. package/dist/alerting/FeedbackRouter.js.map +1 -0
  66. package/dist/alerting/StrategyApplicator.d.ts +120 -0
  67. package/dist/alerting/StrategyApplicator.d.ts.map +1 -0
  68. package/dist/alerting/StrategyApplicator.js +299 -0
  69. package/dist/alerting/StrategyApplicator.js.map +1 -0
  70. package/dist/alerting/index.d.ts +68 -0
  71. package/dist/alerting/index.d.ts.map +1 -0
  72. package/dist/alerting/index.js +112 -0
  73. package/dist/alerting/index.js.map +1 -0
  74. package/dist/alerting/types.d.ts +118 -0
  75. package/dist/alerting/types.d.ts.map +1 -0
  76. package/dist/alerting/types.js +11 -0
  77. package/dist/alerting/types.js.map +1 -0
  78. package/dist/cli/commands/debug/agent.d.ts.map +1 -1
  79. package/dist/cli/commands/debug/agent.js +19 -6
  80. package/dist/cli/commands/debug/agent.js.map +1 -1
  81. package/dist/cli/commands/debug/health-check.js +20 -7
  82. package/dist/cli/commands/debug/health-check.js.map +1 -1
  83. package/dist/cli/commands/init-claude-md-template.d.ts +1 -0
  84. package/dist/cli/commands/init-claude-md-template.d.ts.map +1 -1
  85. package/dist/cli/commands/init-claude-md-template.js +4 -3
  86. package/dist/cli/commands/init-claude-md-template.js.map +1 -1
  87. package/dist/cli/commands/workflow/cancel.d.ts.map +1 -1
  88. package/dist/cli/commands/workflow/cancel.js +4 -3
  89. package/dist/cli/commands/workflow/cancel.js.map +1 -1
  90. package/dist/cli/commands/workflow/list.d.ts.map +1 -1
  91. package/dist/cli/commands/workflow/list.js +4 -3
  92. package/dist/cli/commands/workflow/list.js.map +1 -1
  93. package/dist/cli/commands/workflow/pause.d.ts.map +1 -1
  94. package/dist/cli/commands/workflow/pause.js +4 -3
  95. package/dist/cli/commands/workflow/pause.js.map +1 -1
  96. package/dist/cli/init/claude-config.d.ts.map +1 -1
  97. package/dist/cli/init/claude-config.js +13 -13
  98. package/dist/cli/init/claude-config.js.map +1 -1
  99. package/dist/cli/init/claude-md.d.ts.map +1 -1
  100. package/dist/cli/init/claude-md.js +44 -2
  101. package/dist/cli/init/claude-md.js.map +1 -1
  102. package/dist/cli/init/database-init.js +1 -1
  103. package/dist/cli/init/index.d.ts.map +1 -1
  104. package/dist/cli/init/index.js +13 -6
  105. package/dist/cli/init/index.js.map +1 -1
  106. package/dist/cli/init/skills.d.ts.map +1 -1
  107. package/dist/cli/init/skills.js +2 -1
  108. package/dist/cli/init/skills.js.map +1 -1
  109. package/dist/core/memory/AgentDBIntegration.d.ts +24 -6
  110. package/dist/core/memory/AgentDBIntegration.d.ts.map +1 -1
  111. package/dist/core/memory/AgentDBIntegration.js +66 -10
  112. package/dist/core/memory/AgentDBIntegration.js.map +1 -1
  113. package/dist/core/memory/IPatternStore.d.ts +209 -0
  114. package/dist/core/memory/IPatternStore.d.ts.map +1 -0
  115. package/dist/core/memory/IPatternStore.js +15 -0
  116. package/dist/core/memory/IPatternStore.js.map +1 -0
  117. package/dist/core/memory/MigrationTools.d.ts +192 -0
  118. package/dist/core/memory/MigrationTools.d.ts.map +1 -0
  119. package/dist/core/memory/MigrationTools.js +615 -0
  120. package/dist/core/memory/MigrationTools.js.map +1 -0
  121. package/dist/core/memory/NeuralEnhancement.d.ts +154 -0
  122. package/dist/core/memory/NeuralEnhancement.d.ts.map +1 -0
  123. package/dist/core/memory/NeuralEnhancement.js +598 -0
  124. package/dist/core/memory/NeuralEnhancement.js.map +1 -0
  125. package/dist/core/memory/PatternStoreFactory.d.ts +143 -0
  126. package/dist/core/memory/PatternStoreFactory.d.ts.map +1 -0
  127. package/dist/core/memory/PatternStoreFactory.js +370 -0
  128. package/dist/core/memory/PatternStoreFactory.js.map +1 -0
  129. package/dist/core/memory/RealAgentDBAdapter.d.ts +1 -0
  130. package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -1
  131. package/dist/core/memory/RealAgentDBAdapter.js +28 -20
  132. package/dist/core/memory/RealAgentDBAdapter.js.map +1 -1
  133. package/dist/core/memory/RuVectorPatternStore.d.ts +198 -0
  134. package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -0
  135. package/dist/core/memory/RuVectorPatternStore.js +605 -0
  136. package/dist/core/memory/RuVectorPatternStore.js.map +1 -0
  137. package/dist/core/memory/SelfHealingMonitor.d.ts +186 -0
  138. package/dist/core/memory/SelfHealingMonitor.d.ts.map +1 -0
  139. package/dist/core/memory/SelfHealingMonitor.js +451 -0
  140. package/dist/core/memory/SelfHealingMonitor.js.map +1 -0
  141. package/dist/core/memory/SwarmMemoryManager.d.ts +62 -0
  142. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  143. package/dist/core/memory/SwarmMemoryManager.js +97 -0
  144. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  145. package/dist/core/memory/UnifiedMemoryCoordinator.d.ts +341 -0
  146. package/dist/core/memory/UnifiedMemoryCoordinator.d.ts.map +1 -0
  147. package/dist/core/memory/UnifiedMemoryCoordinator.js +986 -0
  148. package/dist/core/memory/UnifiedMemoryCoordinator.js.map +1 -0
  149. package/dist/core/memory/index.d.ts +16 -0
  150. package/dist/core/memory/index.d.ts.map +1 -1
  151. package/dist/core/memory/index.js +58 -1
  152. package/dist/core/memory/index.js.map +1 -1
  153. package/dist/core/optimization/SwarmOptimizer.d.ts +185 -0
  154. package/dist/core/optimization/SwarmOptimizer.d.ts.map +1 -0
  155. package/dist/core/optimization/SwarmOptimizer.js +631 -0
  156. package/dist/core/optimization/SwarmOptimizer.js.map +1 -0
  157. package/dist/core/optimization/index.d.ts +9 -0
  158. package/dist/core/optimization/index.d.ts.map +1 -0
  159. package/dist/core/optimization/index.js +25 -0
  160. package/dist/core/optimization/index.js.map +1 -0
  161. package/dist/core/optimization/types.d.ts +53 -0
  162. package/dist/core/optimization/types.d.ts.map +1 -0
  163. package/dist/core/optimization/types.js +6 -0
  164. package/dist/core/optimization/types.js.map +1 -0
  165. package/dist/core/orchestration/PriorityQueue.d.ts +54 -0
  166. package/dist/core/orchestration/PriorityQueue.d.ts.map +1 -0
  167. package/dist/core/orchestration/PriorityQueue.js +122 -0
  168. package/dist/core/orchestration/PriorityQueue.js.map +1 -0
  169. package/dist/core/orchestration/WorkflowOrchestrator.d.ts +176 -0
  170. package/dist/core/orchestration/WorkflowOrchestrator.d.ts.map +1 -0
  171. package/dist/core/orchestration/WorkflowOrchestrator.js +813 -0
  172. package/dist/core/orchestration/WorkflowOrchestrator.js.map +1 -0
  173. package/dist/core/orchestration/index.d.ts +7 -0
  174. package/dist/core/orchestration/index.d.ts.map +1 -0
  175. package/dist/core/orchestration/index.js +11 -0
  176. package/dist/core/orchestration/index.js.map +1 -0
  177. package/dist/core/orchestration/types.d.ts +96 -0
  178. package/dist/core/orchestration/types.d.ts.map +1 -0
  179. package/dist/core/orchestration/types.js +6 -0
  180. package/dist/core/orchestration/types.js.map +1 -0
  181. package/dist/core/skills/DynamicSkillLoader.d.ts +96 -0
  182. package/dist/core/skills/DynamicSkillLoader.d.ts.map +1 -0
  183. package/dist/core/skills/DynamicSkillLoader.js +353 -0
  184. package/dist/core/skills/DynamicSkillLoader.js.map +1 -0
  185. package/dist/core/skills/types.d.ts +118 -0
  186. package/dist/core/skills/types.d.ts.map +1 -0
  187. package/dist/core/skills/types.js +7 -0
  188. package/dist/core/skills/types.js.map +1 -0
  189. package/dist/core/transport/QUICTransport.d.ts +320 -0
  190. package/dist/core/transport/QUICTransport.d.ts.map +1 -0
  191. package/dist/core/transport/QUICTransport.js +711 -0
  192. package/dist/core/transport/QUICTransport.js.map +1 -0
  193. package/dist/core/transport/index.d.ts +40 -0
  194. package/dist/core/transport/index.d.ts.map +1 -0
  195. package/dist/core/transport/index.js +46 -0
  196. package/dist/core/transport/index.js.map +1 -0
  197. package/dist/core/transport/quic-loader.d.ts +123 -0
  198. package/dist/core/transport/quic-loader.d.ts.map +1 -0
  199. package/dist/core/transport/quic-loader.js +293 -0
  200. package/dist/core/transport/quic-loader.js.map +1 -0
  201. package/dist/core/transport/quic.d.ts +154 -0
  202. package/dist/core/transport/quic.d.ts.map +1 -0
  203. package/dist/core/transport/quic.js +214 -0
  204. package/dist/core/transport/quic.js.map +1 -0
  205. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  206. package/dist/mcp/services/AgentRegistry.js +4 -1
  207. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  208. package/dist/reasoning/RuVectorReasoningAdapter.d.ts +232 -0
  209. package/dist/reasoning/RuVectorReasoningAdapter.d.ts.map +1 -0
  210. package/dist/reasoning/RuVectorReasoningAdapter.js +585 -0
  211. package/dist/reasoning/RuVectorReasoningAdapter.js.map +1 -0
  212. package/dist/reasoning/index.d.ts +2 -0
  213. package/dist/reasoning/index.d.ts.map +1 -1
  214. package/dist/reasoning/index.js +6 -1
  215. package/dist/reasoning/index.js.map +1 -1
  216. package/dist/reporting/ResultAggregator.d.ts +107 -0
  217. package/dist/reporting/ResultAggregator.d.ts.map +1 -0
  218. package/dist/reporting/ResultAggregator.js +435 -0
  219. package/dist/reporting/ResultAggregator.js.map +1 -0
  220. package/dist/reporting/index.d.ts +48 -0
  221. package/dist/reporting/index.d.ts.map +1 -0
  222. package/dist/reporting/index.js +154 -0
  223. package/dist/reporting/index.js.map +1 -0
  224. package/dist/reporting/reporters/ControlLoopReporter.d.ts +128 -0
  225. package/dist/reporting/reporters/ControlLoopReporter.d.ts.map +1 -0
  226. package/dist/reporting/reporters/ControlLoopReporter.js +417 -0
  227. package/dist/reporting/reporters/ControlLoopReporter.js.map +1 -0
  228. package/dist/reporting/reporters/HumanReadableReporter.d.ts +140 -0
  229. package/dist/reporting/reporters/HumanReadableReporter.d.ts.map +1 -0
  230. package/dist/reporting/reporters/HumanReadableReporter.js +524 -0
  231. package/dist/reporting/reporters/HumanReadableReporter.js.map +1 -0
  232. package/dist/reporting/reporters/JSONReporter.d.ts +193 -0
  233. package/dist/reporting/reporters/JSONReporter.d.ts.map +1 -0
  234. package/dist/reporting/reporters/JSONReporter.js +324 -0
  235. package/dist/reporting/reporters/JSONReporter.js.map +1 -0
  236. package/dist/reporting/reporters/index.d.ts +14 -0
  237. package/dist/reporting/reporters/index.d.ts.map +1 -0
  238. package/dist/reporting/reporters/index.js +19 -0
  239. package/dist/reporting/reporters/index.js.map +1 -0
  240. package/dist/reporting/types.d.ts +427 -0
  241. package/dist/reporting/types.d.ts.map +1 -0
  242. package/dist/reporting/types.js +12 -0
  243. package/dist/reporting/types.js.map +1 -0
  244. package/dist/types/index.d.ts +2 -1
  245. package/dist/types/index.d.ts.map +1 -1
  246. package/dist/types/index.js +2 -0
  247. package/dist/types/index.js.map +1 -1
  248. package/dist/types/qx.d.ts +397 -0
  249. package/dist/types/qx.d.ts.map +1 -0
  250. package/dist/types/qx.js +71 -0
  251. package/dist/types/qx.js.map +1 -0
  252. package/dist/visualization/api/RestEndpoints.js +1 -1
  253. package/dist/visualization/api/RestEndpoints.js.map +1 -1
  254. package/dist/visualization/api/WebSocketServer.d.ts +44 -0
  255. package/dist/visualization/api/WebSocketServer.d.ts.map +1 -1
  256. package/dist/visualization/api/WebSocketServer.js +144 -23
  257. package/dist/visualization/api/WebSocketServer.js.map +1 -1
  258. package/dist/visualization/core/DataTransformer.d.ts +10 -0
  259. package/dist/visualization/core/DataTransformer.d.ts.map +1 -1
  260. package/dist/visualization/core/DataTransformer.js +60 -5
  261. package/dist/visualization/core/DataTransformer.js.map +1 -1
  262. package/dist/visualization/emit-event.d.ts +75 -0
  263. package/dist/visualization/emit-event.d.ts.map +1 -0
  264. package/dist/visualization/emit-event.js +213 -0
  265. package/dist/visualization/emit-event.js.map +1 -0
  266. package/dist/visualization/index.d.ts +1 -0
  267. package/dist/visualization/index.d.ts.map +1 -1
  268. package/dist/visualization/index.js +7 -1
  269. package/dist/visualization/index.js.map +1 -1
  270. package/docs/reference/skills.md +63 -1
  271. package/package.json +12 -4
@@ -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":";AAAA;;;;;;;;GAQG;;;AAsJH;;;;;;;;;GASG;AACH,MAAa,YAAY;IAGvB,YAAY,SAAkC,EAAE;QAC9C,IAAI,CAAC,MAAM,GAAG;YACZ,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,UAAU;YAC7C,WAAW,EAAE,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;YACzE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI;YAC3F,eAAe,EAAE,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI;SACtF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAA0B;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,uBAAuB;QACvB,MAAM,UAAU,GAAqB;YACnC,IAAI,EAAE;gBACJ,aAAa,EAAE,OAAO;gBACtB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,MAAM,EAAE,MAAM;aACf;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;gBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;gBAChC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU;gBACtC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;gBAC9B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;gBAC9B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;aACzC;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;gBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;gBAChC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;gBAChD,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc;gBAC9C,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;gBAClC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU;gBACtC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;aACjD;YACD,KAAK,EAAE;gBACL,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK;gBAChC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM;gBAClC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM;gBAClC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,OAAO;gBACpC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK;gBAChC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ;gBACtC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ;gBACtC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW;aAC7C;YACD,QAAQ,EAAE;gBACR,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS;gBACrC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;gBACzC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBACnC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACvB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAC7B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;aACpF;SACF,CAAC;QAEF,yCAAyC;QACzC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC1C,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7D,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,UAAU,EAAE,CAAC,CAAC,UAAU;aACzB,CAAC,CAAC,CAAC;YAEJ,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC/B,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;YACvD,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,UAAU,CAAC,QAAQ,GAAG;gBACpB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBACjC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBACnC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS;gBACrC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU;gBACvC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK;aAC9B,CAAC;YAEF,+CAA+C;YAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC1E,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YACrD,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,UAAU,CAAC,OAAO,GAAG;gBACnB,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK;gBACnC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK;gBACnC,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,WAAW;gBAC/C,KAAK,EAAE;oBACL,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,WAAW;oBAC1C,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,WAAW;oBAC1C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS;wBAC5C,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK;wBAC9B,CAAC,CAAC,SAAS;iBACd;aACF,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,UAAU,CAAC,QAAQ,GAAG;gBACpB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAC7B,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAC7B,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBACjC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS;oBACpD,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe;oBAClC,CAAC,CAAC,SAAS;aACd,CAAC;QACJ,CAAC;QAED,uBAAuB;QACvB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,UAAU,CAAC,WAAW,GAAG;gBACvB,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,YAAY;gBAC9C,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,UAAU;gBAC1C,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS;gBACxC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS;aACzC,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;YACrC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE/B,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAElD,OAAO;YACL,MAAM,EAAE,MAAM;YACd,OAAO;YACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;YACxC,kBAAkB;SACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAA0B;QACtC,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,OAA0B,EAC1B,MAA4C;QAE5C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpC,qCAAqC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;YACrC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE7B,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAElD,OAAO;YACL,MAAM,EAAE,MAAM;YACd,OAAO;YACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;YACxC,kBAAkB;SACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,YAAY,CAClB,GAAQ,EACR,MAA4C;QAE5C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAQ,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;oBACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,OAA0B;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExC,mDAAmD;QACnD,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,YAAY;QACZ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE9D,eAAe;QACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEpE,aAAa;QACb,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEhE,gBAAgB;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,eAAe;QACf,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,MAAsB;QACnC,OAAO,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAA0B;QAC7C,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;YAC9B,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;YAChD,KAAK,EAAE;gBACL,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK;gBAChC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM;gBAClC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM;gBAClC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ;aACvC;YACD,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC5D,YAAY,EAAE,OAAO,CAAC,cAAc,EAAE,KAAK,IAAI,IAAI;YACnD,aAAa,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI;SAC/C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAmB;QAC9B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,WAAmB;QACjC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAErC,kBAAkB;YAClB,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAE5D,gBAAgB;YAChB,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC1C,CAAC;YAED,mBAAmB;YACnB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACxC,CAAC;YAED,iBAAiB;YACjB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACzC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC9C,CAAC;gBACD,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;gBAC1B,MAAM;aACP,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,CAAC,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;aACtF,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAtVD,oCAsVC"}
@@ -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"}