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,154 @@
1
+ "use strict";
2
+ /**
3
+ * Reporting Module
4
+ *
5
+ * Complete output generation and reporting system for quality check results.
6
+ * Supports multiple output formats and provides result aggregation capabilities.
7
+ *
8
+ * @module reporting
9
+ * @version 1.0.0
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
28
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
29
+ };
30
+ var __importStar = (this && this.__importStar) || (function () {
31
+ var ownKeys = function(o) {
32
+ ownKeys = Object.getOwnPropertyNames || function (o) {
33
+ var ar = [];
34
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
+ return ar;
36
+ };
37
+ return ownKeys(o);
38
+ };
39
+ return function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ })();
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.ReporterFactory = exports.ControlLoopReporter = exports.JSONReporter = exports.HumanReadableReporter = exports.ResultAggregator = void 0;
49
+ exports.generateAllReports = generateAllReports;
50
+ exports.writeReports = writeReports;
51
+ exports.quickReport = quickReport;
52
+ // Core types
53
+ __exportStar(require("./types"), exports);
54
+ // Result aggregation
55
+ var ResultAggregator_1 = require("./ResultAggregator");
56
+ Object.defineProperty(exports, "ResultAggregator", { enumerable: true, get: function () { return ResultAggregator_1.ResultAggregator; } });
57
+ // Reporters
58
+ var reporters_1 = require("./reporters");
59
+ Object.defineProperty(exports, "HumanReadableReporter", { enumerable: true, get: function () { return reporters_1.HumanReadableReporter; } });
60
+ Object.defineProperty(exports, "JSONReporter", { enumerable: true, get: function () { return reporters_1.JSONReporter; } });
61
+ Object.defineProperty(exports, "ControlLoopReporter", { enumerable: true, get: function () { return reporters_1.ControlLoopReporter; } });
62
+ const HumanReadableReporter_1 = require("./reporters/HumanReadableReporter");
63
+ const JSONReporter_1 = require("./reporters/JSONReporter");
64
+ const ControlLoopReporter_1 = require("./reporters/ControlLoopReporter");
65
+ class ReporterFactory {
66
+ /**
67
+ * Create reporter by format
68
+ */
69
+ static create(format, config) {
70
+ const fullConfig = {
71
+ format,
72
+ detailLevel: config?.detailLevel || 'detailed',
73
+ useColors: config?.useColors,
74
+ includeTimestamps: config?.includeTimestamps,
75
+ includeMetadata: config?.includeMetadata,
76
+ outputPath: config?.outputPath,
77
+ prettyPrint: config?.prettyPrint
78
+ };
79
+ switch (format) {
80
+ case 'human':
81
+ return new HumanReadableReporter_1.HumanReadableReporter(fullConfig);
82
+ case 'json':
83
+ return new JSONReporter_1.JSONReporter(fullConfig);
84
+ case 'control-loop':
85
+ return new ControlLoopReporter_1.ControlLoopReporter(fullConfig);
86
+ case 'html':
87
+ case 'markdown':
88
+ throw new Error(`Reporter format '${format}' is not yet implemented`);
89
+ default:
90
+ throw new Error(`Unknown reporter format: ${format}`);
91
+ }
92
+ }
93
+ /**
94
+ * Create all reporters
95
+ */
96
+ static createAll(config) {
97
+ const reporters = new Map();
98
+ reporters.set('human', this.create('human', config));
99
+ reporters.set('json', this.create('json', config));
100
+ reporters.set('control-loop', this.create('control-loop', config));
101
+ return reporters;
102
+ }
103
+ /**
104
+ * Get available formats
105
+ */
106
+ static getAvailableFormats() {
107
+ return ['human', 'json', 'control-loop'];
108
+ }
109
+ /**
110
+ * Validate format
111
+ */
112
+ static isValidFormat(format) {
113
+ return this.getAvailableFormats().includes(format);
114
+ }
115
+ }
116
+ exports.ReporterFactory = ReporterFactory;
117
+ async function generateAllReports(results, config) {
118
+ const reporters = ReporterFactory.createAll(config);
119
+ const outputs = new Map();
120
+ for (const [format, reporter] of reporters) {
121
+ const output = reporter.report(results);
122
+ const resolvedOutput = output instanceof Promise ? await output : output;
123
+ outputs.set(format, resolvedOutput);
124
+ }
125
+ return outputs;
126
+ }
127
+ /**
128
+ * Convenience function to write reports to files
129
+ */
130
+ const fs = __importStar(require("fs-extra"));
131
+ const path = __importStar(require("path"));
132
+ async function writeReports(results, outputDir, config) {
133
+ await fs.ensureDir(outputDir);
134
+ const outputs = await generateAllReports(results, config);
135
+ const filePaths = new Map();
136
+ for (const [format, reportOutput] of outputs) {
137
+ const extension = format === 'human' ? 'txt' : format === 'control-loop' ? 'json' : format;
138
+ const fileName = `quality-report-${results.executionId}.${extension}`;
139
+ const filePath = path.join(outputDir, fileName);
140
+ await fs.writeFile(filePath, reportOutput.content, 'utf8');
141
+ filePaths.set(format, filePath);
142
+ }
143
+ return filePaths;
144
+ }
145
+ /**
146
+ * Quick report generation helper
147
+ */
148
+ async function quickReport(results, format = 'human') {
149
+ const reporter = ReporterFactory.create(format);
150
+ const output = reporter.report(results);
151
+ const resolvedOutput = output instanceof Promise ? await output : output;
152
+ return resolvedOutput.content;
153
+ }
154
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Control Loop Reporter
3
+ *
4
+ * Generates machine-readable feedback for automated control systems,
5
+ * CI/CD pipelines, and decision-making engines. Provides actionable
6
+ * signals, threshold violations, and recommended actions.
7
+ *
8
+ * @module reporting/reporters/ControlLoopReporter
9
+ * @version 1.0.0
10
+ */
11
+ import { Reporter, ReporterConfig, ReportFormat, ReporterOutput, AggregatedResults, ControlLoopAction, ThresholdViolation } from '../types';
12
+ /**
13
+ * Control loop configuration
14
+ */
15
+ export interface ControlLoopConfig extends Partial<ReporterConfig> {
16
+ /** Deployment threshold - minimum test pass rate */
17
+ minPassRate?: number;
18
+ /** Coverage threshold */
19
+ minCoverage?: number;
20
+ /** Quality score threshold */
21
+ minQualityScore?: number;
22
+ /** Security score threshold */
23
+ minSecurityScore?: number;
24
+ /** Maximum allowed critical vulnerabilities */
25
+ maxCriticalVulnerabilities?: number;
26
+ /** Maximum allowed high vulnerabilities */
27
+ maxHighVulnerabilities?: number;
28
+ /** Performance P95 threshold (ms) */
29
+ maxP95ResponseTime?: number;
30
+ /** Error rate threshold (0-1) */
31
+ maxErrorRate?: number;
32
+ /** Flaky test threshold */
33
+ maxFlakyTests?: number;
34
+ }
35
+ /**
36
+ * Control Loop Reporter
37
+ *
38
+ * Designed for automated systems to consume test results and make
39
+ * deployment decisions based on quality gates and thresholds.
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const reporter = new ControlLoopReporter({
44
+ * minPassRate: 0.95,
45
+ * minCoverage: 80,
46
+ * maxCriticalVulnerabilities: 0
47
+ * });
48
+ *
49
+ * const output = reporter.report(aggregatedResults);
50
+ * const feedback = JSON.parse(output.content) as ControlLoopFeedback;
51
+ *
52
+ * if (!feedback.signals.canDeploy) {
53
+ * // Block deployment
54
+ * process.exit(1);
55
+ * }
56
+ * ```
57
+ */
58
+ export declare class ControlLoopReporter implements Reporter {
59
+ private config;
60
+ private thresholds;
61
+ constructor(config?: ControlLoopConfig);
62
+ /**
63
+ * Generate control loop feedback
64
+ */
65
+ report(results: AggregatedResults): ReporterOutput;
66
+ /**
67
+ * Build control loop feedback structure
68
+ */
69
+ private buildFeedback;
70
+ /**
71
+ * Calculate key metrics for decision making
72
+ */
73
+ private calculateMetrics;
74
+ /**
75
+ * Calculate performance score (0-100)
76
+ */
77
+ private calculatePerformanceScore;
78
+ /**
79
+ * Detect actionable signals
80
+ */
81
+ private detectSignals;
82
+ /**
83
+ * Generate recommended actions
84
+ */
85
+ private generateActions;
86
+ /**
87
+ * Detect threshold violations
88
+ */
89
+ private detectViolations;
90
+ /**
91
+ * Generate next steps based on signals and violations
92
+ */
93
+ private generateNextSteps;
94
+ getFormat(): ReportFormat;
95
+ validateConfig(config: ReporterConfig): boolean;
96
+ /**
97
+ * Get current thresholds
98
+ */
99
+ getThresholds(): {
100
+ minPassRate: number;
101
+ minCoverage: number;
102
+ minQualityScore: number;
103
+ minSecurityScore: number;
104
+ maxCriticalVulnerabilities: number;
105
+ maxHighVulnerabilities: number;
106
+ maxP95ResponseTime: number;
107
+ maxErrorRate: number;
108
+ maxFlakyTests: number;
109
+ };
110
+ /**
111
+ * Update thresholds
112
+ */
113
+ updateThresholds(thresholds: Partial<typeof this.thresholds>): void;
114
+ /**
115
+ * Check if results pass all gates
116
+ */
117
+ static passesGates(results: AggregatedResults, config?: ControlLoopConfig): boolean;
118
+ /**
119
+ * Get deployment decision
120
+ */
121
+ static getDeploymentDecision(results: AggregatedResults, config?: ControlLoopConfig): {
122
+ canDeploy: boolean;
123
+ reason: string;
124
+ actions: ControlLoopAction[];
125
+ violations: ThresholdViolation[];
126
+ };
127
+ }
128
+ //# sourceMappingURL=ControlLoopReporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlLoopReporter.d.ts","sourceRoot":"","sources":["../../../src/reporting/reporters/ControlLoopReporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,cAAc,EACd,iBAAiB,EAEjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,cAAc,CAAC;IAChE,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,+CAA+C;IAC/C,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC,2CAA2C;IAC3C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,mBAAoB,YAAW,QAAQ;IAClD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAUhB;gBAEU,MAAM,GAAE,iBAAsB;IAuB1C;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc;IAsBlD;;OAEG;IACH,OAAO,CAAC,aAAa;IA8BrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAoBjC;;OAEG;IACH,OAAO,CAAC,aAAa;IA6CrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqEvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgGxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuDzB,SAAS,IAAI,YAAY;IAIzB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO;IAI/C;;OAEG;IACH,aAAa;qBAjaE,MAAM;qBACN,MAAM;yBACF,MAAM;0BACL,MAAM;oCACI,MAAM;gCACV,MAAM;4BACV,MAAM;sBACZ,MAAM;uBACL,MAAM;;IA6ZvB;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI;IAOnE;;OAEG;IACH,MAAM,CAAC,WAAW,CAChB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,GAAE,iBAAsB,GAC7B,OAAO;IAOV;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAC1B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,GAAE,iBAAsB,GAC7B;QACD,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC7B,UAAU,EAAE,kBAAkB,EAAE,CAAC;KAClC;CAYF"}