agentic-qe 3.3.1 → 3.3.3

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 (250) hide show
  1. package/.claude/helpers/statusline-v3.cjs +96 -27
  2. package/README.md +6 -3
  3. package/package.json +1 -1
  4. package/scripts/sync-claude-flow.cjs +99 -0
  5. package/v3/CHANGELOG.md +133 -0
  6. package/v3/README.md +9 -5
  7. package/v3/dist/cli/bundle.js +60879 -51811
  8. package/v3/dist/coordination/consensus/domain-findings.d.ts +202 -0
  9. package/v3/dist/coordination/consensus/domain-findings.d.ts.map +1 -0
  10. package/v3/dist/coordination/consensus/domain-findings.js +66 -0
  11. package/v3/dist/coordination/consensus/domain-findings.js.map +1 -0
  12. package/v3/dist/coordination/consensus/index.d.ts +2 -0
  13. package/v3/dist/coordination/consensus/index.d.ts.map +1 -1
  14. package/v3/dist/coordination/consensus/index.js +4 -0
  15. package/v3/dist/coordination/consensus/index.js.map +1 -1
  16. package/v3/dist/coordination/index.d.ts +1 -0
  17. package/v3/dist/coordination/index.d.ts.map +1 -1
  18. package/v3/dist/coordination/index.js +4 -0
  19. package/v3/dist/coordination/index.js.map +1 -1
  20. package/v3/dist/coordination/mixins/consensus-enabled-domain.d.ts +225 -0
  21. package/v3/dist/coordination/mixins/consensus-enabled-domain.d.ts.map +1 -0
  22. package/v3/dist/coordination/mixins/consensus-enabled-domain.js +466 -0
  23. package/v3/dist/coordination/mixins/consensus-enabled-domain.js.map +1 -0
  24. package/v3/dist/coordination/mixins/index.d.ts +14 -0
  25. package/v3/dist/coordination/mixins/index.d.ts.map +1 -0
  26. package/v3/dist/coordination/mixins/index.js +28 -0
  27. package/v3/dist/coordination/mixins/index.js.map +1 -0
  28. package/v3/dist/coordination/mixins/mincut-aware-domain.d.ts +227 -0
  29. package/v3/dist/coordination/mixins/mincut-aware-domain.d.ts.map +1 -0
  30. package/v3/dist/coordination/mixins/mincut-aware-domain.js +368 -0
  31. package/v3/dist/coordination/mixins/mincut-aware-domain.js.map +1 -0
  32. package/v3/dist/coordination/queen-coordinator.d.ts +23 -1
  33. package/v3/dist/coordination/queen-coordinator.d.ts.map +1 -1
  34. package/v3/dist/coordination/queen-coordinator.js +131 -3
  35. package/v3/dist/coordination/queen-coordinator.js.map +1 -1
  36. package/v3/dist/coordination/task-executor.d.ts +21 -1
  37. package/v3/dist/coordination/task-executor.d.ts.map +1 -1
  38. package/v3/dist/coordination/task-executor.js +222 -5
  39. package/v3/dist/coordination/task-executor.js.map +1 -1
  40. package/v3/dist/domains/chaos-resilience/coordinator.d.ts +92 -0
  41. package/v3/dist/domains/chaos-resilience/coordinator.d.ts.map +1 -1
  42. package/v3/dist/domains/chaos-resilience/coordinator.js +241 -1
  43. package/v3/dist/domains/chaos-resilience/coordinator.js.map +1 -1
  44. package/v3/dist/domains/chaos-resilience/plugin.js +1 -1
  45. package/v3/dist/domains/chaos-resilience/plugin.js.map +1 -1
  46. package/v3/dist/domains/chaos-resilience/services/chaos-engineer.d.ts +29 -2
  47. package/v3/dist/domains/chaos-resilience/services/chaos-engineer.d.ts.map +1 -1
  48. package/v3/dist/domains/chaos-resilience/services/chaos-engineer.js +62 -3
  49. package/v3/dist/domains/chaos-resilience/services/chaos-engineer.js.map +1 -1
  50. package/v3/dist/domains/code-intelligence/coordinator.d.ts +112 -0
  51. package/v3/dist/domains/code-intelligence/coordinator.d.ts.map +1 -1
  52. package/v3/dist/domains/code-intelligence/coordinator.js +221 -0
  53. package/v3/dist/domains/code-intelligence/coordinator.js.map +1 -1
  54. package/v3/dist/domains/code-intelligence/services/knowledge-graph.d.ts +66 -2
  55. package/v3/dist/domains/code-intelligence/services/knowledge-graph.d.ts.map +1 -1
  56. package/v3/dist/domains/code-intelligence/services/knowledge-graph.js +253 -3
  57. package/v3/dist/domains/code-intelligence/services/knowledge-graph.js.map +1 -1
  58. package/v3/dist/domains/contract-testing/coordinator.d.ts +89 -1
  59. package/v3/dist/domains/contract-testing/coordinator.d.ts.map +1 -1
  60. package/v3/dist/domains/contract-testing/coordinator.js +222 -1
  61. package/v3/dist/domains/contract-testing/coordinator.js.map +1 -1
  62. package/v3/dist/domains/contract-testing/interfaces.d.ts +29 -1
  63. package/v3/dist/domains/contract-testing/interfaces.d.ts.map +1 -1
  64. package/v3/dist/domains/contract-testing/plugin.js +1 -1
  65. package/v3/dist/domains/contract-testing/plugin.js.map +1 -1
  66. package/v3/dist/domains/contract-testing/services/contract-validator.d.ts +29 -2
  67. package/v3/dist/domains/contract-testing/services/contract-validator.d.ts.map +1 -1
  68. package/v3/dist/domains/contract-testing/services/contract-validator.js +58 -3
  69. package/v3/dist/domains/contract-testing/services/contract-validator.js.map +1 -1
  70. package/v3/dist/domains/coverage-analysis/coordinator.d.ts +95 -2
  71. package/v3/dist/domains/coverage-analysis/coordinator.d.ts.map +1 -1
  72. package/v3/dist/domains/coverage-analysis/coordinator.js +274 -6
  73. package/v3/dist/domains/coverage-analysis/coordinator.js.map +1 -1
  74. package/v3/dist/domains/coverage-analysis/plugin.d.ts +6 -1
  75. package/v3/dist/domains/coverage-analysis/plugin.d.ts.map +1 -1
  76. package/v3/dist/domains/coverage-analysis/plugin.js +73 -0
  77. package/v3/dist/domains/coverage-analysis/plugin.js.map +1 -1
  78. package/v3/dist/domains/coverage-analysis/services/coverage-analyzer.d.ts +119 -3
  79. package/v3/dist/domains/coverage-analysis/services/coverage-analyzer.d.ts.map +1 -1
  80. package/v3/dist/domains/coverage-analysis/services/coverage-analyzer.js +267 -5
  81. package/v3/dist/domains/coverage-analysis/services/coverage-analyzer.js.map +1 -1
  82. package/v3/dist/domains/coverage-analysis/services/gap-detector.d.ts +111 -2
  83. package/v3/dist/domains/coverage-analysis/services/gap-detector.d.ts.map +1 -1
  84. package/v3/dist/domains/coverage-analysis/services/gap-detector.js +231 -3
  85. package/v3/dist/domains/coverage-analysis/services/gap-detector.js.map +1 -1
  86. package/v3/dist/domains/defect-intelligence/coordinator.d.ts +80 -1
  87. package/v3/dist/domains/defect-intelligence/coordinator.d.ts.map +1 -1
  88. package/v3/dist/domains/defect-intelligence/coordinator.js +262 -7
  89. package/v3/dist/domains/defect-intelligence/coordinator.js.map +1 -1
  90. package/v3/dist/domains/defect-intelligence/interfaces.d.ts +17 -0
  91. package/v3/dist/domains/defect-intelligence/interfaces.d.ts.map +1 -1
  92. package/v3/dist/domains/defect-intelligence/services/defect-predictor.d.ts +91 -2
  93. package/v3/dist/domains/defect-intelligence/services/defect-predictor.d.ts.map +1 -1
  94. package/v3/dist/domains/defect-intelligence/services/defect-predictor.js +274 -7
  95. package/v3/dist/domains/defect-intelligence/services/defect-predictor.js.map +1 -1
  96. package/v3/dist/domains/defect-intelligence/services/root-cause-analyzer.d.ts +79 -2
  97. package/v3/dist/domains/defect-intelligence/services/root-cause-analyzer.d.ts.map +1 -1
  98. package/v3/dist/domains/defect-intelligence/services/root-cause-analyzer.js +259 -3
  99. package/v3/dist/domains/defect-intelligence/services/root-cause-analyzer.js.map +1 -1
  100. package/v3/dist/domains/domain-interface.d.ts +194 -2
  101. package/v3/dist/domains/domain-interface.d.ts.map +1 -1
  102. package/v3/dist/domains/domain-interface.js +239 -0
  103. package/v3/dist/domains/domain-interface.js.map +1 -1
  104. package/v3/dist/domains/learning-optimization/coordinator.d.ts +171 -0
  105. package/v3/dist/domains/learning-optimization/coordinator.d.ts.map +1 -1
  106. package/v3/dist/domains/learning-optimization/coordinator.js +401 -1
  107. package/v3/dist/domains/learning-optimization/coordinator.js.map +1 -1
  108. package/v3/dist/domains/learning-optimization/index.d.ts +1 -1
  109. package/v3/dist/domains/learning-optimization/index.d.ts.map +1 -1
  110. package/v3/dist/domains/learning-optimization/index.js.map +1 -1
  111. package/v3/dist/domains/learning-optimization/interfaces.d.ts +18 -0
  112. package/v3/dist/domains/learning-optimization/interfaces.d.ts.map +1 -1
  113. package/v3/dist/domains/learning-optimization/plugin.js +1 -1
  114. package/v3/dist/domains/learning-optimization/plugin.js.map +1 -1
  115. package/v3/dist/domains/learning-optimization/services/learning-coordinator.d.ts +54 -2
  116. package/v3/dist/domains/learning-optimization/services/learning-coordinator.d.ts.map +1 -1
  117. package/v3/dist/domains/learning-optimization/services/learning-coordinator.js +90 -3
  118. package/v3/dist/domains/learning-optimization/services/learning-coordinator.js.map +1 -1
  119. package/v3/dist/domains/quality-assessment/coordinator.d.ts +127 -0
  120. package/v3/dist/domains/quality-assessment/coordinator.d.ts.map +1 -1
  121. package/v3/dist/domains/quality-assessment/coordinator.js +493 -7
  122. package/v3/dist/domains/quality-assessment/coordinator.js.map +1 -1
  123. package/v3/dist/domains/quality-assessment/interfaces.d.ts +22 -0
  124. package/v3/dist/domains/quality-assessment/interfaces.d.ts.map +1 -1
  125. package/v3/dist/domains/quality-assessment/plugin.d.ts +6 -1
  126. package/v3/dist/domains/quality-assessment/plugin.d.ts.map +1 -1
  127. package/v3/dist/domains/quality-assessment/plugin.js +67 -0
  128. package/v3/dist/domains/quality-assessment/plugin.js.map +1 -1
  129. package/v3/dist/domains/quality-assessment/services/deployment-advisor.d.ts +61 -2
  130. package/v3/dist/domains/quality-assessment/services/deployment-advisor.d.ts.map +1 -1
  131. package/v3/dist/domains/quality-assessment/services/deployment-advisor.js +213 -5
  132. package/v3/dist/domains/quality-assessment/services/deployment-advisor.js.map +1 -1
  133. package/v3/dist/domains/quality-assessment/services/quality-analyzer.d.ts +59 -4
  134. package/v3/dist/domains/quality-assessment/services/quality-analyzer.d.ts.map +1 -1
  135. package/v3/dist/domains/quality-assessment/services/quality-analyzer.js +195 -3
  136. package/v3/dist/domains/quality-assessment/services/quality-analyzer.js.map +1 -1
  137. package/v3/dist/domains/requirements-validation/coordinator.d.ts +78 -0
  138. package/v3/dist/domains/requirements-validation/coordinator.d.ts.map +1 -1
  139. package/v3/dist/domains/requirements-validation/coordinator.js +189 -0
  140. package/v3/dist/domains/requirements-validation/coordinator.js.map +1 -1
  141. package/v3/dist/domains/requirements-validation/interfaces.d.ts +4 -0
  142. package/v3/dist/domains/requirements-validation/interfaces.d.ts.map +1 -1
  143. package/v3/dist/domains/requirements-validation/services/requirements-validator.d.ts +106 -2
  144. package/v3/dist/domains/requirements-validation/services/requirements-validator.d.ts.map +1 -1
  145. package/v3/dist/domains/requirements-validation/services/requirements-validator.js +263 -3
  146. package/v3/dist/domains/requirements-validation/services/requirements-validator.js.map +1 -1
  147. package/v3/dist/domains/security-compliance/coordinator.d.ts +56 -1
  148. package/v3/dist/domains/security-compliance/coordinator.d.ts.map +1 -1
  149. package/v3/dist/domains/security-compliance/coordinator.js +241 -17
  150. package/v3/dist/domains/security-compliance/coordinator.js.map +1 -1
  151. package/v3/dist/domains/security-compliance/interfaces.d.ts +2 -0
  152. package/v3/dist/domains/security-compliance/interfaces.d.ts.map +1 -1
  153. package/v3/dist/domains/security-compliance/services/security-scanner.d.ts +33 -2
  154. package/v3/dist/domains/security-compliance/services/security-scanner.d.ts.map +1 -1
  155. package/v3/dist/domains/security-compliance/services/security-scanner.js +107 -3
  156. package/v3/dist/domains/security-compliance/services/security-scanner.js.map +1 -1
  157. package/v3/dist/domains/test-execution/coordinator.d.ts +89 -0
  158. package/v3/dist/domains/test-execution/coordinator.d.ts.map +1 -1
  159. package/v3/dist/domains/test-execution/coordinator.js +259 -2
  160. package/v3/dist/domains/test-execution/coordinator.js.map +1 -1
  161. package/v3/dist/domains/test-execution/plugin.d.ts +6 -1
  162. package/v3/dist/domains/test-execution/plugin.d.ts.map +1 -1
  163. package/v3/dist/domains/test-execution/plugin.js +77 -0
  164. package/v3/dist/domains/test-execution/plugin.js.map +1 -1
  165. package/v3/dist/domains/test-execution/services/test-executor.d.ts +30 -2
  166. package/v3/dist/domains/test-execution/services/test-executor.d.ts.map +1 -1
  167. package/v3/dist/domains/test-execution/services/test-executor.js +64 -3
  168. package/v3/dist/domains/test-execution/services/test-executor.js.map +1 -1
  169. package/v3/dist/domains/test-generation/coordinator.d.ts +137 -0
  170. package/v3/dist/domains/test-generation/coordinator.d.ts.map +1 -1
  171. package/v3/dist/domains/test-generation/coordinator.js +421 -1
  172. package/v3/dist/domains/test-generation/coordinator.js.map +1 -1
  173. package/v3/dist/domains/test-generation/interfaces.d.ts +2 -0
  174. package/v3/dist/domains/test-generation/interfaces.d.ts.map +1 -1
  175. package/v3/dist/domains/test-generation/plugin.d.ts +6 -1
  176. package/v3/dist/domains/test-generation/plugin.d.ts.map +1 -1
  177. package/v3/dist/domains/test-generation/plugin.js +84 -0
  178. package/v3/dist/domains/test-generation/plugin.js.map +1 -1
  179. package/v3/dist/domains/test-generation/services/test-generator.d.ts +32 -0
  180. package/v3/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
  181. package/v3/dist/domains/test-generation/services/test-generator.js +158 -3
  182. package/v3/dist/domains/test-generation/services/test-generator.js.map +1 -1
  183. package/v3/dist/domains/visual-accessibility/coordinator.d.ts +77 -0
  184. package/v3/dist/domains/visual-accessibility/coordinator.d.ts.map +1 -1
  185. package/v3/dist/domains/visual-accessibility/coordinator.js +210 -2
  186. package/v3/dist/domains/visual-accessibility/coordinator.js.map +1 -1
  187. package/v3/dist/domains/visual-accessibility/plugin.d.ts.map +1 -1
  188. package/v3/dist/domains/visual-accessibility/plugin.js +3 -3
  189. package/v3/dist/domains/visual-accessibility/plugin.js.map +1 -1
  190. package/v3/dist/domains/visual-accessibility/services/visual-tester.d.ts +47 -2
  191. package/v3/dist/domains/visual-accessibility/services/visual-tester.d.ts.map +1 -1
  192. package/v3/dist/domains/visual-accessibility/services/visual-tester.js +87 -3
  193. package/v3/dist/domains/visual-accessibility/services/visual-tester.js.map +1 -1
  194. package/v3/dist/kernel/interfaces.d.ts +54 -1
  195. package/v3/dist/kernel/interfaces.d.ts.map +1 -1
  196. package/v3/dist/learning/dream/dream-scheduler.d.ts +302 -0
  197. package/v3/dist/learning/dream/dream-scheduler.d.ts.map +1 -0
  198. package/v3/dist/learning/dream/dream-scheduler.js +551 -0
  199. package/v3/dist/learning/dream/dream-scheduler.js.map +1 -0
  200. package/v3/dist/learning/dream/index.d.ts +1 -0
  201. package/v3/dist/learning/dream/index.d.ts.map +1 -1
  202. package/v3/dist/learning/dream/index.js +4 -0
  203. package/v3/dist/learning/dream/index.js.map +1 -1
  204. package/v3/dist/learning/experience-capture-middleware.d.ts +119 -0
  205. package/v3/dist/learning/experience-capture-middleware.d.ts.map +1 -0
  206. package/v3/dist/learning/experience-capture-middleware.js +416 -0
  207. package/v3/dist/learning/experience-capture-middleware.js.map +1 -0
  208. package/v3/dist/mcp/bundle.js +83142 -70580
  209. package/v3/dist/mcp/handlers/core-handlers.d.ts.map +1 -1
  210. package/v3/dist/mcp/handlers/core-handlers.js +16 -2
  211. package/v3/dist/mcp/handlers/core-handlers.js.map +1 -1
  212. package/v3/dist/mcp/handlers/domain-handlers.d.ts +12 -13
  213. package/v3/dist/mcp/handlers/domain-handlers.d.ts.map +1 -1
  214. package/v3/dist/mcp/handlers/index.d.ts +1 -1
  215. package/v3/dist/mcp/handlers/index.d.ts.map +1 -1
  216. package/v3/dist/mcp/handlers/index.js +2 -2
  217. package/v3/dist/mcp/handlers/index.js.map +1 -1
  218. package/v3/dist/mcp/handlers/task-handlers.d.ts +1 -0
  219. package/v3/dist/mcp/handlers/task-handlers.d.ts.map +1 -1
  220. package/v3/dist/mcp/handlers/task-handlers.js +46 -12
  221. package/v3/dist/mcp/handlers/task-handlers.js.map +1 -1
  222. package/v3/dist/mcp/handlers/wrapped-domain-handlers.d.ts +30 -0
  223. package/v3/dist/mcp/handlers/wrapped-domain-handlers.d.ts.map +1 -0
  224. package/v3/dist/mcp/handlers/wrapped-domain-handlers.js +75 -0
  225. package/v3/dist/mcp/handlers/wrapped-domain-handlers.js.map +1 -0
  226. package/v3/dist/mcp/services/reasoning-bank-service.d.ts +87 -13
  227. package/v3/dist/mcp/services/reasoning-bank-service.d.ts.map +1 -1
  228. package/v3/dist/mcp/services/reasoning-bank-service.js +291 -31
  229. package/v3/dist/mcp/services/reasoning-bank-service.js.map +1 -1
  230. package/v3/dist/mcp/tools/chaos-resilience/inject.js +1 -1
  231. package/v3/dist/mcp/tools/chaos-resilience/inject.js.map +1 -1
  232. package/v3/dist/mcp/tools/contract-testing/validate.js +1 -1
  233. package/v3/dist/mcp/tools/contract-testing/validate.js.map +1 -1
  234. package/v3/dist/mcp/tools/learning-optimization/optimize.js +1 -1
  235. package/v3/dist/mcp/tools/learning-optimization/optimize.js.map +1 -1
  236. package/v3/dist/mcp/tools/visual-accessibility/index.js +2 -2
  237. package/v3/dist/mcp/tools/visual-accessibility/index.js.map +1 -1
  238. package/v3/dist/routing/qe-agent-registry.d.ts +28 -1
  239. package/v3/dist/routing/qe-agent-registry.d.ts.map +1 -1
  240. package/v3/dist/routing/qe-agent-registry.js +116 -1
  241. package/v3/dist/routing/qe-agent-registry.js.map +1 -1
  242. package/v3/dist/shared/events/domain-events.d.ts +27 -0
  243. package/v3/dist/shared/events/domain-events.d.ts.map +1 -1
  244. package/v3/dist/shared/events/domain-events.js +1 -0
  245. package/v3/dist/shared/events/domain-events.js.map +1 -1
  246. package/v3/dist/sync/claude-flow-bridge.d.ts +63 -0
  247. package/v3/dist/sync/claude-flow-bridge.d.ts.map +1 -0
  248. package/v3/dist/sync/claude-flow-bridge.js +320 -0
  249. package/v3/dist/sync/claude-flow-bridge.js.map +1 -0
  250. package/v3/package.json +1 -1
@@ -0,0 +1,466 @@
1
+ /**
2
+ * Agentic QE v3 - Consensus Enabled Domain Mixin
3
+ * CONSENSUS-MIXIN-001: Reusable mixin for multi-model consensus verification
4
+ *
5
+ * This mixin allows any domain coordinator to leverage multi-model consensus
6
+ * verification for high-stakes decisions without duplicating consensus logic.
7
+ *
8
+ * @see docs/plans/AQE_V3_IMPROVEMENTS_PLAN.md - Phase 2: Multi-Model Verification
9
+ */
10
+ import { createConsensusEngine, registerProvidersFromEnv, DEFAULT_CONSENSUS_CONFIG, } from '../consensus';
11
+ import { ok, err } from '../../shared/types';
12
+ /**
13
+ * Default consensus configuration
14
+ */
15
+ export const DEFAULT_CONSENSUS_ENABLED_CONFIG = {
16
+ enableConsensus: true,
17
+ consensusThreshold: 0.7,
18
+ verifyFindingTypes: [],
19
+ strategy: 'weighted',
20
+ minModels: 2,
21
+ modelTimeout: 60000,
22
+ verifySeverities: ['critical', 'high'],
23
+ enableLogging: false,
24
+ };
25
+ // ============================================================================
26
+ // Domain Finding to Security Finding Conversion
27
+ // ============================================================================
28
+ /**
29
+ * Convert a generic DomainFinding to SecurityFinding format for the consensus engine
30
+ */
31
+ function toSecurityFinding(finding, category = 'other') {
32
+ // Map FindingSeverity to Severity
33
+ const severityMap = {
34
+ critical: 'critical',
35
+ high: 'high',
36
+ medium: 'medium',
37
+ low: 'low',
38
+ info: 'info',
39
+ };
40
+ // Extract location from payload if available
41
+ const payload = finding.payload;
42
+ const location = payload?.location || {
43
+ file: 'unknown',
44
+ };
45
+ // Extract evidence from payload if available
46
+ const evidence = payload?.evidence || [];
47
+ return {
48
+ id: finding.id,
49
+ type: finding.type,
50
+ category,
51
+ severity: severityMap[finding.severity || 'medium'],
52
+ description: finding.description,
53
+ location,
54
+ evidence,
55
+ detectedAt: finding.detectedAt,
56
+ detectedBy: finding.detectedBy,
57
+ correlationId: finding.correlationId,
58
+ metadata: {
59
+ originalFinding: finding,
60
+ domainContext: finding.context,
61
+ },
62
+ };
63
+ }
64
+ // ============================================================================
65
+ // Consensus Enabled Mixin Class
66
+ // ============================================================================
67
+ /**
68
+ * Mixin class that adds consensus verification capabilities to any domain coordinator
69
+ *
70
+ * This is designed to be used with TypeScript's class composition pattern.
71
+ * Domain coordinators can extend this mixin to gain consensus verification capabilities.
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * class MyDomainCoordinator extends ConsensusEnabledMixin {
76
+ * constructor(config: MyConfig) {
77
+ * super({
78
+ * enableConsensus: true,
79
+ * consensusThreshold: 0.8,
80
+ * verifyFindingTypes: ['vulnerability', 'defect'],
81
+ * strategy: 'weighted',
82
+ * minModels: 2,
83
+ * modelTimeout: 30000,
84
+ * verifySeverities: ['critical', 'high'],
85
+ * enableLogging: true,
86
+ * });
87
+ * }
88
+ *
89
+ * async initialize(): Promise<void> {
90
+ * await this.initializeConsensus();
91
+ * // ... other initialization
92
+ * }
93
+ *
94
+ * async dispose(): Promise<void> {
95
+ * await this.disposeConsensus();
96
+ * // ... other cleanup
97
+ * }
98
+ *
99
+ * async processFindings(findings: DomainFinding[]): Promise<void> {
100
+ * for (const finding of findings) {
101
+ * if (this.requiresConsensus(finding)) {
102
+ * const result = await this.verifyFinding(finding);
103
+ * if (result.success && result.value.verdict === 'verified') {
104
+ * // Take action on verified finding
105
+ * }
106
+ * }
107
+ * }
108
+ * }
109
+ * }
110
+ * ```
111
+ */
112
+ export class ConsensusEnabledMixin {
113
+ consensusConfig;
114
+ consensusEngine;
115
+ consensusInitialized = false;
116
+ /**
117
+ * Create a new ConsensusEnabledMixin
118
+ *
119
+ * @param config - Configuration for consensus verification
120
+ */
121
+ constructor(config = {}) {
122
+ this.consensusConfig = {
123
+ ...DEFAULT_CONSENSUS_ENABLED_CONFIG,
124
+ ...config,
125
+ };
126
+ }
127
+ // ============================================================================
128
+ // Lifecycle Methods
129
+ // ============================================================================
130
+ /**
131
+ * Initialize the consensus engine
132
+ *
133
+ * Call this in the domain coordinator's initialize() method.
134
+ * Uses registerProvidersFromEnv to auto-detect available model providers.
135
+ *
136
+ * @throws Error if consensus initialization fails
137
+ */
138
+ async initializeConsensus() {
139
+ if (!this.consensusConfig.enableConsensus) {
140
+ if (this.consensusConfig.enableLogging) {
141
+ console.log('[ConsensusEnabledMixin] Consensus verification disabled');
142
+ }
143
+ return;
144
+ }
145
+ try {
146
+ // Register providers from environment
147
+ const registry = registerProvidersFromEnv(this.consensusConfig.enableLogging);
148
+ const providers = registry.getAll();
149
+ if (providers.length === 0) {
150
+ if (this.consensusConfig.enableLogging) {
151
+ console.warn('[ConsensusEnabledMixin] No model providers available for consensus verification');
152
+ }
153
+ return;
154
+ }
155
+ // Create consensus engine
156
+ this.consensusEngine = createConsensusEngine({
157
+ strategy: this.consensusConfig.strategy,
158
+ models: providers,
159
+ engineConfig: {
160
+ minModels: Math.min(this.consensusConfig.minModels, providers.length),
161
+ defaultModelTimeout: this.consensusConfig.modelTimeout,
162
+ verifySeverities: this.consensusConfig.verifySeverities,
163
+ humanReviewThreshold: DEFAULT_CONSENSUS_CONFIG.humanReviewThreshold,
164
+ },
165
+ });
166
+ this.consensusInitialized = true;
167
+ if (this.consensusConfig.enableLogging) {
168
+ console.log(`[ConsensusEnabledMixin] Initialized with ${providers.length} providers ` +
169
+ `(strategy: ${this.consensusConfig.strategy})`);
170
+ }
171
+ }
172
+ catch (error) {
173
+ console.error('[ConsensusEnabledMixin] Failed to initialize consensus:', error);
174
+ throw error;
175
+ }
176
+ }
177
+ /**
178
+ * Dispose the consensus engine
179
+ *
180
+ * Call this in the domain coordinator's dispose() method.
181
+ */
182
+ async disposeConsensus() {
183
+ if (this.consensusEngine) {
184
+ await this.consensusEngine.dispose();
185
+ this.consensusEngine = undefined;
186
+ this.consensusInitialized = false;
187
+ if (this.consensusConfig.enableLogging) {
188
+ console.log('[ConsensusEnabledMixin] Consensus engine disposed');
189
+ }
190
+ }
191
+ }
192
+ // ============================================================================
193
+ // IConsensusEnabledDomain Implementation
194
+ // ============================================================================
195
+ /**
196
+ * Verify a single finding using multi-model consensus
197
+ */
198
+ async verifyFinding(finding, options) {
199
+ // Check if consensus is available
200
+ if (!this.consensusEngine || !this.consensusInitialized) {
201
+ return err(new Error('Consensus engine not initialized'));
202
+ }
203
+ // Check if finding requires consensus
204
+ if (!this.requiresConsensus(finding)) {
205
+ return err(new Error(`Finding ${finding.id} does not require consensus verification`));
206
+ }
207
+ try {
208
+ // Convert to SecurityFinding format
209
+ const securityFinding = toSecurityFinding(finding, this.inferCategory(finding.type));
210
+ // Verify using consensus engine
211
+ const result = await this.consensusEngine.verify(securityFinding, {
212
+ forceVerification: true,
213
+ ...options,
214
+ });
215
+ if (this.consensusConfig.enableLogging && result.success) {
216
+ console.log(`[ConsensusEnabledMixin] Finding ${finding.id} verified: ` +
217
+ `verdict=${result.value.verdict}, confidence=${result.value.confidence.toFixed(2)}`);
218
+ }
219
+ return result;
220
+ }
221
+ catch (error) {
222
+ return err(error instanceof Error ? error : new Error(String(error)));
223
+ }
224
+ }
225
+ /**
226
+ * Check if a finding requires consensus verification
227
+ */
228
+ requiresConsensus(finding) {
229
+ // Check if consensus is enabled
230
+ if (!this.consensusConfig.enableConsensus) {
231
+ return false;
232
+ }
233
+ // Check if finding type is in the verify list
234
+ const typeMatches = this.consensusConfig.verifyFindingTypes.length === 0 ||
235
+ this.consensusConfig.verifyFindingTypes.includes(finding.type);
236
+ if (!typeMatches) {
237
+ return false;
238
+ }
239
+ // Check severity
240
+ if (finding.severity) {
241
+ const severityMatches = this.consensusConfig.verifySeverities.includes(finding.severity);
242
+ if (severityMatches) {
243
+ return true;
244
+ }
245
+ }
246
+ // Check confidence threshold
247
+ return finding.confidence >= this.consensusConfig.consensusThreshold;
248
+ }
249
+ /**
250
+ * Verify multiple findings in batch
251
+ */
252
+ async verifyFindings(findings, options) {
253
+ // Check if consensus is available
254
+ if (!this.consensusEngine || !this.consensusInitialized) {
255
+ return err(new Error('Consensus engine not initialized'));
256
+ }
257
+ // Filter findings that require consensus
258
+ const findingsRequiringConsensus = findings.filter(f => this.requiresConsensus(f));
259
+ if (findingsRequiringConsensus.length === 0) {
260
+ return ok([]);
261
+ }
262
+ try {
263
+ // Convert all findings to SecurityFinding format
264
+ const securityFindings = findingsRequiringConsensus.map(f => toSecurityFinding(f, this.inferCategory(f.type)));
265
+ // Verify batch
266
+ const result = await this.consensusEngine.verifyBatch(securityFindings, {
267
+ forceVerification: true,
268
+ ...options,
269
+ });
270
+ if (this.consensusConfig.enableLogging && result.success) {
271
+ const verified = result.value.filter(r => r.verdict === 'verified').length;
272
+ console.log(`[ConsensusEnabledMixin] Batch verification complete: ` +
273
+ `${verified}/${result.value.length} verified`);
274
+ }
275
+ return result;
276
+ }
277
+ catch (error) {
278
+ return err(error instanceof Error ? error : new Error(String(error)));
279
+ }
280
+ }
281
+ /**
282
+ * Get consensus statistics
283
+ */
284
+ getConsensusStats() {
285
+ return this.consensusEngine?.getStats();
286
+ }
287
+ // ============================================================================
288
+ // Helper Methods
289
+ // ============================================================================
290
+ /**
291
+ * Check if consensus engine is available
292
+ */
293
+ isConsensusAvailable() {
294
+ return this.consensusInitialized && this.consensusEngine !== undefined;
295
+ }
296
+ /**
297
+ * Get the consensus engine (for advanced usage)
298
+ */
299
+ getConsensusEngine() {
300
+ return this.consensusEngine;
301
+ }
302
+ /**
303
+ * Infer security finding category from finding type
304
+ */
305
+ inferCategory(findingType) {
306
+ const categoryMap = {
307
+ // Security categories
308
+ 'sql-injection': 'injection',
309
+ 'command-injection': 'injection',
310
+ 'xss': 'input-validation',
311
+ 'authentication': 'authentication',
312
+ 'authorization': 'authorization',
313
+ 'crypto': 'cryptography',
314
+ 'hardcoded-secret': 'cryptography',
315
+ 'data-exposure': 'data-exposure',
316
+ 'pii-exposure': 'data-exposure',
317
+ 'misconfiguration': 'configuration',
318
+ 'vulnerable-dependency': 'dependency',
319
+ 'path-traversal': 'input-validation',
320
+ 'session': 'session-management',
321
+ 'timing': 'timing-attack',
322
+ 'dos': 'resource-management',
323
+ 'memory-leak': 'resource-management',
324
+ 'logging': 'logging',
325
+ // Generic categories for non-security findings
326
+ 'vulnerability': 'other',
327
+ 'defect': 'other',
328
+ 'coverage-gap': 'other',
329
+ 'contract-violation': 'other',
330
+ 'quality-issue': 'other',
331
+ };
332
+ // Find matching category
333
+ const lowercaseType = findingType.toLowerCase();
334
+ for (const [pattern, category] of Object.entries(categoryMap)) {
335
+ if (lowercaseType.includes(pattern)) {
336
+ return category;
337
+ }
338
+ }
339
+ return 'other';
340
+ }
341
+ }
342
+ // ============================================================================
343
+ // Factory Function
344
+ // ============================================================================
345
+ /**
346
+ * Create a consensus-enabled mixin instance
347
+ *
348
+ * @param config - Configuration for consensus verification
349
+ * @returns ConsensusEnabledMixin instance
350
+ *
351
+ * @example
352
+ * ```typescript
353
+ * const mixin = createConsensusEnabledMixin({
354
+ * enableConsensus: true,
355
+ * consensusThreshold: 0.8,
356
+ * verifyFindingTypes: ['vulnerability'],
357
+ * strategy: 'weighted',
358
+ * minModels: 2,
359
+ * modelTimeout: 30000,
360
+ * });
361
+ *
362
+ * await mixin.initializeConsensus();
363
+ *
364
+ * const result = await mixin.verifyFinding(finding);
365
+ * ```
366
+ */
367
+ export function createConsensusEnabledMixin(config = {}) {
368
+ return new ConsensusEnabledMixin(config);
369
+ }
370
+ /**
371
+ * Apply ConsensusEnabledMixin to a base class
372
+ *
373
+ * This is a TypeScript mixin pattern that adds consensus capabilities
374
+ * to any base class.
375
+ *
376
+ * @param Base - The base class to extend
377
+ * @param config - Configuration for consensus verification
378
+ * @returns Mixed class with consensus capabilities
379
+ */
380
+ export function withConsensusEnabled(Base, config = {}) {
381
+ return class extends Base {
382
+ consensusConfig;
383
+ consensusEngine;
384
+ consensusInitialized = false;
385
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
386
+ constructor(...args) {
387
+ super(...args);
388
+ this.consensusConfig = {
389
+ ...DEFAULT_CONSENSUS_ENABLED_CONFIG,
390
+ ...config,
391
+ };
392
+ }
393
+ async initializeConsensus() {
394
+ if (!this.consensusConfig.enableConsensus) {
395
+ return;
396
+ }
397
+ const registry = registerProvidersFromEnv(this.consensusConfig.enableLogging);
398
+ const providers = registry.getAll();
399
+ if (providers.length === 0) {
400
+ return;
401
+ }
402
+ this.consensusEngine = createConsensusEngine({
403
+ strategy: this.consensusConfig.strategy,
404
+ models: providers,
405
+ engineConfig: {
406
+ minModels: Math.min(this.consensusConfig.minModels, providers.length),
407
+ defaultModelTimeout: this.consensusConfig.modelTimeout,
408
+ verifySeverities: this.consensusConfig.verifySeverities,
409
+ },
410
+ });
411
+ this.consensusInitialized = true;
412
+ }
413
+ async disposeConsensus() {
414
+ if (this.consensusEngine) {
415
+ await this.consensusEngine.dispose();
416
+ this.consensusEngine = undefined;
417
+ this.consensusInitialized = false;
418
+ }
419
+ }
420
+ async verifyFinding(finding, options) {
421
+ if (!this.consensusEngine || !this.consensusInitialized) {
422
+ return err(new Error('Consensus engine not initialized'));
423
+ }
424
+ if (!this.requiresConsensus(finding)) {
425
+ return err(new Error(`Finding ${finding.id} does not require consensus verification`));
426
+ }
427
+ const securityFinding = toSecurityFinding(finding, 'other');
428
+ return this.consensusEngine.verify(securityFinding, {
429
+ forceVerification: true,
430
+ ...options,
431
+ });
432
+ }
433
+ requiresConsensus(finding) {
434
+ if (!this.consensusConfig.enableConsensus) {
435
+ return false;
436
+ }
437
+ const typeMatches = this.consensusConfig.verifyFindingTypes.length === 0 ||
438
+ this.consensusConfig.verifyFindingTypes.includes(finding.type);
439
+ if (!typeMatches) {
440
+ return false;
441
+ }
442
+ if (finding.severity && this.consensusConfig.verifySeverities.includes(finding.severity)) {
443
+ return true;
444
+ }
445
+ return finding.confidence >= this.consensusConfig.consensusThreshold;
446
+ }
447
+ async verifyFindings(findings, options) {
448
+ if (!this.consensusEngine || !this.consensusInitialized) {
449
+ return err(new Error('Consensus engine not initialized'));
450
+ }
451
+ const findingsRequiringConsensus = findings.filter(f => this.requiresConsensus(f));
452
+ if (findingsRequiringConsensus.length === 0) {
453
+ return ok([]);
454
+ }
455
+ const securityFindings = findingsRequiringConsensus.map(f => toSecurityFinding(f, 'other'));
456
+ return this.consensusEngine.verifyBatch(securityFindings, {
457
+ forceVerification: true,
458
+ ...options,
459
+ });
460
+ }
461
+ getConsensusStats() {
462
+ return this.consensusEngine?.getStats();
463
+ }
464
+ };
465
+ }
466
+ //# sourceMappingURL=consensus-enabled-domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consensus-enabled-domain.js","sourceRoot":"","sources":["../../../src/coordination/mixins/consensus-enabled-domain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Agentic QE v3 - Coordination Mixins
3
+ * Reusable mixins for domain coordinator capabilities
4
+ *
5
+ * Mixins provide cross-cutting capabilities that can be composed into
6
+ * domain coordinators without inheritance hierarchies.
7
+ */
8
+ export { MinCutAwareDomainMixin, createMinCutAwareMixin, isMinCutAwareDomain, DEFAULT_MINCUT_AWARE_CONFIG, } from './mincut-aware-domain';
9
+ export type { IMinCutAwareDomain, MinCutAwareConfig, } from './mincut-aware-domain';
10
+ export { ConsensusEnabledMixin, createConsensusEnabledMixin, withConsensusEnabled, DEFAULT_CONSENSUS_ENABLED_CONFIG, } from './consensus-enabled-domain';
11
+ export type { IConsensusEnabledDomain, ConsensusEnabledConfig, Constructor, } from './consensus-enabled-domain';
12
+ export { createDomainFinding, isHighStakesFinding, generateFindingId, } from '../consensus/domain-findings';
13
+ export type { DomainFinding, FindingSeverity, SecurityFindingPayload, DefectPredictionPayload, ContractViolationPayload, } from '../consensus/domain-findings';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/coordination/mixins/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAEL,qBAAqB,EAGrB,2BAA2B,EAG3B,oBAAoB,EAGpB,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAEV,uBAAuB,EACvB,sBAAsB,EAGtB,WAAW,GACZ,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAItC,YAAY,EACV,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Agentic QE v3 - Coordination Mixins
3
+ * Reusable mixins for domain coordinator capabilities
4
+ *
5
+ * Mixins provide cross-cutting capabilities that can be composed into
6
+ * domain coordinators without inheritance hierarchies.
7
+ */
8
+ // ============================================================================
9
+ // MinCut-Aware Domain Mixin
10
+ // ============================================================================
11
+ export { MinCutAwareDomainMixin, createMinCutAwareMixin, isMinCutAwareDomain, DEFAULT_MINCUT_AWARE_CONFIG, } from './mincut-aware-domain';
12
+ // ============================================================================
13
+ // Consensus Enabled Domain Mixin (CONSENSUS-MIXIN-001)
14
+ // ============================================================================
15
+ export {
16
+ // Main mixin class
17
+ ConsensusEnabledMixin,
18
+ // Factory function
19
+ createConsensusEnabledMixin,
20
+ // TypeScript mixin helper
21
+ withConsensusEnabled,
22
+ // Configuration
23
+ DEFAULT_CONSENSUS_ENABLED_CONFIG, } from './consensus-enabled-domain';
24
+ // ============================================================================
25
+ // Re-export Domain Finding Types (used by consensus mixin)
26
+ // ============================================================================
27
+ export { createDomainFinding, isHighStakesFinding, generateFindingId, } from '../consensus/domain-findings';
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/coordination/mixins/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAO/B,+EAA+E;AAC/E,uDAAuD;AACvD,+EAA+E;AAE/E,OAAO;AACL,mBAAmB;AACnB,qBAAqB;AAErB,mBAAmB;AACnB,2BAA2B;AAE3B,0BAA0B;AAC1B,oBAAoB;AAEpB,gBAAgB;AAChB,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AAWpC,+EAA+E;AAC/E,2DAA2D;AAC3D,+EAA+E;AAE/E,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC"}