agentic-qe 3.8.4 → 3.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +12 -0
  3. package/dist/cli/bundle.js +694 -694
  4. package/dist/cli/commands/hooks-handlers/command-hooks.d.ts +12 -0
  5. package/dist/cli/commands/hooks-handlers/command-hooks.js +253 -0
  6. package/dist/cli/commands/hooks-handlers/editing-hooks.d.ts +12 -0
  7. package/dist/cli/commands/hooks-handlers/editing-hooks.js +161 -0
  8. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.d.ts +57 -0
  9. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +263 -0
  10. package/dist/cli/commands/hooks-handlers/hooks-shared.d.ts +52 -0
  11. package/dist/cli/commands/hooks-handlers/hooks-shared.js +223 -0
  12. package/dist/cli/commands/hooks-handlers/routing-hooks.d.ts +12 -0
  13. package/dist/cli/commands/hooks-handlers/routing-hooks.js +107 -0
  14. package/dist/cli/commands/hooks-handlers/session-hooks.d.ts +12 -0
  15. package/dist/cli/commands/hooks-handlers/session-hooks.js +171 -0
  16. package/dist/cli/commands/hooks-handlers/stats-hooks.d.ts +12 -0
  17. package/dist/cli/commands/hooks-handlers/stats-hooks.js +248 -0
  18. package/dist/cli/commands/hooks-handlers/task-hooks.d.ts +12 -0
  19. package/dist/cli/commands/hooks-handlers/task-hooks.js +152 -0
  20. package/dist/cli/commands/hooks.d.ts +3 -23
  21. package/dist/cli/commands/hooks.js +16 -1459
  22. package/dist/domains/base-domain-coordinator.d.ts +0 -15
  23. package/dist/domains/base-domain-coordinator.js +7 -5
  24. package/dist/domains/chaos-resilience/coordinator.d.ts +0 -4
  25. package/dist/domains/chaos-resilience/coordinator.js +24 -22
  26. package/dist/domains/chaos-resilience/services/chaos-engineer.d.ts +0 -4
  27. package/dist/domains/chaos-resilience/services/chaos-engineer.js +47 -45
  28. package/dist/domains/chaos-resilience/services/performance-profiler.d.ts +0 -4
  29. package/dist/domains/chaos-resilience/services/performance-profiler.js +10 -8
  30. package/dist/domains/code-intelligence/coordinator-consensus.d.ts +0 -3
  31. package/dist/domains/code-intelligence/coordinator-consensus.js +8 -6
  32. package/dist/domains/code-intelligence/coordinator-gnn.d.ts +0 -3
  33. package/dist/domains/code-intelligence/coordinator-gnn.js +8 -6
  34. package/dist/domains/code-intelligence/coordinator-hypergraph.d.ts +0 -3
  35. package/dist/domains/code-intelligence/coordinator-hypergraph.js +13 -11
  36. package/dist/domains/code-intelligence/coordinator.d.ts +0 -3
  37. package/dist/domains/code-intelligence/coordinator.js +21 -19
  38. package/dist/domains/code-intelligence/services/c4-model/index.d.ts +0 -3
  39. package/dist/domains/code-intelligence/services/c4-model/index.js +5 -3
  40. package/dist/domains/code-intelligence/services/knowledge-graph.d.ts +0 -6
  41. package/dist/domains/code-intelligence/services/knowledge-graph.js +4 -2
  42. package/dist/domains/code-intelligence/services/product-factors-bridge.d.ts +0 -5
  43. package/dist/domains/code-intelligence/services/product-factors-bridge.js +9 -7
  44. package/dist/domains/contract-testing/coordinator.d.ts +0 -6
  45. package/dist/domains/contract-testing/coordinator.js +25 -23
  46. package/dist/domains/contract-testing/services/contract-validator.d.ts +0 -4
  47. package/dist/domains/contract-testing/services/contract-validator.js +4 -2
  48. package/dist/domains/contract-testing/services/schema-validator.js +1 -1
  49. package/dist/domains/coverage-analysis/coordinator.js +13 -11
  50. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +4 -2
  51. package/dist/domains/coverage-analysis/services/gap-detector.js +3 -1
  52. package/dist/domains/coverage-analysis/services/hnsw-index.d.ts +0 -15
  53. package/dist/domains/coverage-analysis/services/hnsw-index.js +3 -1
  54. package/dist/domains/coverage-analysis/services/sublinear-analyzer.d.ts +0 -26
  55. package/dist/domains/coverage-analysis/services/sublinear-analyzer.js +3 -1
  56. package/dist/domains/defect-intelligence/coordinator.d.ts +1 -10
  57. package/dist/domains/defect-intelligence/coordinator.js +5 -3
  58. package/dist/domains/defect-intelligence/services/causal-root-cause-analyzer.d.ts +0 -6
  59. package/dist/domains/defect-intelligence/services/causal-root-cause-analyzer.js +3 -1
  60. package/dist/domains/defect-intelligence/services/defect-predictor.d.ts +0 -6
  61. package/dist/domains/defect-intelligence/services/defect-predictor.js +5 -3
  62. package/dist/domains/defect-intelligence/services/pattern-learner.d.ts +0 -4
  63. package/dist/domains/defect-intelligence/services/pattern-learner.js +3 -1
  64. package/dist/domains/defect-intelligence/services/root-cause-analyzer.d.ts +0 -6
  65. package/dist/domains/defect-intelligence/services/root-cause-analyzer.js +3 -1
  66. package/dist/domains/enterprise-integration/coordinator.js +6 -4
  67. package/dist/domains/learning-optimization/coordinator-consensus.d.ts +0 -3
  68. package/dist/domains/learning-optimization/coordinator-consensus.js +8 -6
  69. package/dist/domains/learning-optimization/coordinator.d.ts +0 -3
  70. package/dist/domains/learning-optimization/coordinator.js +15 -13
  71. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +0 -4
  72. package/dist/domains/learning-optimization/services/learning-coordinator.js +4 -2
  73. package/dist/domains/quality-assessment/coordinator-claim-verifier.d.ts +0 -3
  74. package/dist/domains/quality-assessment/coordinator-claim-verifier.js +6 -4
  75. package/dist/domains/quality-assessment/coordinator-gate-evaluation.d.ts +0 -4
  76. package/dist/domains/quality-assessment/coordinator-gate-evaluation.js +9 -7
  77. package/dist/domains/quality-assessment/coordinator-rl-integration.d.ts +0 -3
  78. package/dist/domains/quality-assessment/coordinator-rl-integration.js +10 -8
  79. package/dist/domains/quality-assessment/coordinator.d.ts +0 -15
  80. package/dist/domains/quality-assessment/coordinator.js +14 -12
  81. package/dist/domains/quality-assessment/services/deployment-advisor.d.ts +0 -10
  82. package/dist/domains/quality-assessment/services/deployment-advisor.js +4 -2
  83. package/dist/domains/quality-assessment/services/quality-analyzer.d.ts +0 -6
  84. package/dist/domains/quality-assessment/services/quality-analyzer.js +4 -2
  85. package/dist/domains/requirements-validation/coordinator.d.ts +0 -3
  86. package/dist/domains/requirements-validation/coordinator.js +15 -13
  87. package/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.d.ts +0 -5
  88. package/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.js +15 -13
  89. package/dist/domains/requirements-validation/services/product-factors-assessment/product-factors-service.d.ts +0 -6
  90. package/dist/domains/requirements-validation/services/product-factors-assessment/product-factors-service.js +9 -7
  91. package/dist/domains/requirements-validation/services/requirements-validator.d.ts +0 -6
  92. package/dist/domains/requirements-validation/services/requirements-validator.js +4 -2
  93. package/dist/domains/security-compliance/coordinator.js +24 -22
  94. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +0 -21
  95. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +4 -2
  96. package/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts +0 -4
  97. package/dist/domains/security-compliance/services/scanners/sast-scanner.js +3 -1
  98. package/dist/domains/security-compliance/services/security-auditor-dast.d.ts +0 -4
  99. package/dist/domains/security-compliance/services/security-auditor-dast.js +3 -1
  100. package/dist/domains/security-compliance/services/security-auditor-sast.d.ts +0 -3
  101. package/dist/domains/security-compliance/services/security-auditor-sast.js +3 -1
  102. package/dist/domains/security-compliance/services/security-auditor-secrets.d.ts +0 -3
  103. package/dist/domains/security-compliance/services/security-auditor-secrets.js +3 -1
  104. package/dist/domains/security-compliance/services/security-auditor.js +11 -9
  105. package/dist/domains/test-execution/coordinator.js +11 -9
  106. package/dist/domains/test-execution/services/auth-state-manager.d.ts +0 -3
  107. package/dist/domains/test-execution/services/auth-state-manager.js +4 -2
  108. package/dist/domains/test-execution/services/e2e/e2e-coordinator.d.ts +0 -14
  109. package/dist/domains/test-execution/services/e2e/e2e-coordinator.js +3 -1
  110. package/dist/domains/test-execution/services/flaky-detector.js +4 -2
  111. package/dist/domains/test-execution/services/retry-handler.js +3 -1
  112. package/dist/domains/test-execution/services/test-executor.js +3 -1
  113. package/dist/domains/test-generation/coordinator.d.ts +0 -17
  114. package/dist/domains/test-generation/coordinator.js +33 -31
  115. package/dist/domains/test-generation/pattern-injection/edge-case-injector.d.ts +0 -5
  116. package/dist/domains/test-generation/pattern-injection/edge-case-injector.js +3 -1
  117. package/dist/domains/test-generation/services/code-transform-integration.d.ts +0 -7
  118. package/dist/domains/test-generation/services/code-transform-integration.js +3 -1
  119. package/dist/domains/test-generation/services/coherence-gate-service.d.ts +0 -3
  120. package/dist/domains/test-generation/services/coherence-gate-service.js +3 -1
  121. package/dist/domains/test-generation/services/test-generator.d.ts +0 -8
  122. package/dist/domains/test-generation/services/test-generator.js +5 -3
  123. package/dist/domains/visual-accessibility/coordinator.d.ts +0 -3
  124. package/dist/domains/visual-accessibility/coordinator.js +14 -12
  125. package/dist/domains/visual-accessibility/services/accessibility-tester-browser.d.ts +0 -3
  126. package/dist/domains/visual-accessibility/services/accessibility-tester-browser.js +52 -50
  127. package/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +0 -4
  128. package/dist/domains/visual-accessibility/services/accessibility-tester.js +8 -6
  129. package/dist/domains/visual-accessibility/services/axe-core-integration.d.ts +0 -3
  130. package/dist/domains/visual-accessibility/services/axe-core-integration.js +20 -18
  131. package/dist/domains/visual-accessibility/services/browser-security-scanner.d.ts +0 -4
  132. package/dist/domains/visual-accessibility/services/browser-security-scanner.js +6 -4
  133. package/dist/domains/visual-accessibility/services/browser-swarm-coordinator.d.ts +0 -30
  134. package/dist/domains/visual-accessibility/services/browser-swarm-coordinator.js +5 -3
  135. package/dist/domains/visual-accessibility/services/viewport-capture.d.ts +0 -27
  136. package/dist/domains/visual-accessibility/services/viewport-capture.js +6 -4
  137. package/dist/domains/visual-accessibility/services/visual-regression.d.ts +0 -26
  138. package/dist/domains/visual-accessibility/services/visual-regression.js +4 -2
  139. package/dist/domains/visual-accessibility/services/visual-tester.d.ts +0 -4
  140. package/dist/domains/visual-accessibility/services/visual-tester.js +4 -2
  141. package/dist/governance/deterministic-gateway-integration.js +1 -1
  142. package/dist/mcp/bundle.js +335 -335
  143. package/dist/mcp/security/validators/command-validator.d.ts +1 -40
  144. package/dist/mcp/security/validators/command-validator.js +2 -122
  145. package/dist/mcp/security/validators/crypto-validator.d.ts +1 -39
  146. package/dist/mcp/security/validators/crypto-validator.js +2 -71
  147. package/dist/mcp/security/validators/input-sanitizer.d.ts +1 -55
  148. package/dist/mcp/security/validators/input-sanitizer.js +2 -156
  149. package/dist/mcp/security/validators/interfaces.d.ts +1 -163
  150. package/dist/mcp/security/validators/interfaces.js +2 -5
  151. package/dist/mcp/security/validators/path-traversal-validator.d.ts +1 -49
  152. package/dist/mcp/security/validators/path-traversal-validator.js +2 -241
  153. package/dist/mcp/security/validators/regex-safety-validator.d.ts +1 -49
  154. package/dist/mcp/security/validators/regex-safety-validator.js +2 -182
  155. package/dist/mcp/security/validators/validation-orchestrator.d.ts +1 -65
  156. package/dist/mcp/security/validators/validation-orchestrator.js +2 -145
  157. package/dist/shared/io/file-reader.js +1 -1
  158. package/dist/shared/security/command-validator.d.ts +44 -0
  159. package/dist/shared/security/command-validator.js +126 -0
  160. package/dist/shared/security/crypto-validator.d.ts +43 -0
  161. package/dist/shared/security/crypto-validator.js +75 -0
  162. package/dist/shared/security/index.d.ts +7 -0
  163. package/dist/shared/security/index.js +15 -0
  164. package/dist/shared/security/input-sanitizer.d.ts +59 -0
  165. package/dist/shared/security/input-sanitizer.js +160 -0
  166. package/dist/shared/security/path-traversal-validator.d.ts +53 -0
  167. package/dist/shared/security/path-traversal-validator.js +245 -0
  168. package/dist/shared/security/regex-safety-validator.d.ts +53 -0
  169. package/dist/shared/security/regex-safety-validator.js +186 -0
  170. package/dist/shared/security/validation-orchestrator.d.ts +69 -0
  171. package/dist/shared/security/validation-orchestrator.js +149 -0
  172. package/dist/shared/security/validators-interfaces.d.ts +167 -0
  173. package/dist/shared/security/validators-interfaces.js +9 -0
  174. package/package.json +1 -1
@@ -11,6 +11,7 @@
11
11
  *
12
12
  * Event-driven architecture following V3 patterns.
13
13
  */
14
+ import { LoggerFactory } from '../../../logging/index.js';
14
15
  import { v4 as uuidv4 } from 'uuid';
15
16
  import * as path from 'path';
16
17
  import * as fs from 'fs/promises';
@@ -88,6 +89,7 @@ const EXTERNAL_SYSTEM_PATTERNS = {
88
89
  *
89
90
  * Bridges code-intelligence C4 capabilities with product-factors-assessor.
90
91
  */
92
+ const logger = LoggerFactory.create('code-intelligence/product-factors-bridge');
91
93
  export class ProductFactorsBridgeService {
92
94
  eventBus;
93
95
  memory;
@@ -130,14 +132,14 @@ export class ProductFactorsBridgeService {
130
132
  }
131
133
  async handleKnowledgeGraphUpdated(event) {
132
134
  // Invalidate relevant caches when knowledge graph is updated
133
- console.log('[ProductFactorsBridge] Knowledge graph updated, considering cache invalidation');
135
+ logger.info('[ProductFactorsBridge] Knowledge graph updated, considering cache invalidation');
134
136
  // Note: We don't have project path in this event, so we rely on hash-based invalidation
135
137
  }
136
138
  async handleImpactAnalysisCompleted(event) {
137
139
  // Track impacted files for potential cache invalidation
138
140
  const payload = event.payload;
139
141
  if (payload.changedFiles && payload.changedFiles.length > 0) {
140
- console.log(`[ProductFactorsBridge] Impact analysis detected ${payload.changedFiles.length} changed files`);
142
+ logger.info(`[ProductFactorsBridge] Impact analysis detected ${payload.changedFiles.length} changed files`);
141
143
  }
142
144
  }
143
145
  // ==========================================================================
@@ -150,7 +152,7 @@ export class ProductFactorsBridgeService {
150
152
  // Check cache first
151
153
  const cached = await this.getCachedDiagrams(request.projectPath);
152
154
  if (cached) {
153
- console.log(`[ProductFactorsBridge] Returning cached C4 diagrams for ${request.projectPath}`);
155
+ logger.info(`[ProductFactorsBridge] Returning cached C4 diagrams for ${request.projectPath}`);
154
156
  return ok(cached);
155
157
  }
156
158
  // Generate new diagrams
@@ -369,7 +371,7 @@ export class ProductFactorsBridgeService {
369
371
  }
370
372
  }
371
373
  catch (error) {
372
- console.error('[ProductFactorsBridge] External system detection failed:', error);
374
+ logger.error('External system detection failed', error instanceof Error ? error : undefined);
373
375
  }
374
376
  return systems;
375
377
  }
@@ -435,7 +437,7 @@ export class ProductFactorsBridgeService {
435
437
  }
436
438
  }
437
439
  catch (error) {
438
- console.error('[ProductFactorsBridge] Component analysis failed:', error);
440
+ logger.error('Component analysis failed:', error instanceof Error ? error : undefined);
439
441
  }
440
442
  return { components, relationships };
441
443
  }
@@ -473,7 +475,7 @@ export class ProductFactorsBridgeService {
473
475
  }
474
476
  catch (error) {
475
477
  // Non-critical: permission errors when scanning directories
476
- console.debug('[ProductFactorsBridge] Directory scan error:', error instanceof Error ? error.message : error);
478
+ logger.debug('Directory scan error:');
477
479
  }
478
480
  };
479
481
  await scan(dir, 0);
@@ -573,7 +575,7 @@ export class ProductFactorsBridgeService {
573
575
  }
574
576
  }
575
577
  catch (error) {
576
- console.error('[ProductFactorsBridge] Coupling analysis failed:', error);
578
+ logger.error('Coupling analysis failed:', error instanceof Error ? error : undefined);
577
579
  }
578
580
  return couplingInfo;
579
581
  }
@@ -41,12 +41,6 @@ export interface CoordinatorConfig extends BaseDomainCoordinatorConfig {
41
41
  enableQESONA: boolean;
42
42
  }
43
43
  type ContractWorkflowType = 'verify' | 'compare' | 'import' | 'export';
44
- /**
45
- * Contract Testing Coordinator
46
- * Orchestrates contract testing workflows and coordinates with agents
47
- *
48
- * CQ-002: Extends BaseDomainCoordinator
49
- */
50
44
  export declare class ContractTestingCoordinator extends BaseDomainCoordinator<CoordinatorConfig, ContractWorkflowType> implements IContractTestingCoordinator {
51
45
  private readonly memory;
52
46
  private readonly agentCoordinator;
@@ -4,6 +4,7 @@
4
4
  *
5
5
  * CQ-002: Extends BaseDomainCoordinator for lifecycle deduplication
6
6
  */
7
+ import { LoggerFactory } from '../../logging/index.js';
7
8
  import { v4 as uuidv4 } from 'uuid';
8
9
  import { ok, err } from '../../shared/types/index.js';
9
10
  import { toError, toErrorMessage } from '../../shared/error-utils.js';
@@ -52,6 +53,7 @@ const DEFAULT_CONFIG = {
52
53
  *
53
54
  * CQ-002: Extends BaseDomainCoordinator
54
55
  */
56
+ const logger = LoggerFactory.create('contract-testing');
55
57
  export class ContractTestingCoordinator extends BaseDomainCoordinator {
56
58
  memory;
57
59
  agentCoordinator;
@@ -91,10 +93,10 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
91
93
  hiddenLayers: [64, 64],
92
94
  });
93
95
  // First call to predict will initialize the algorithm
94
- console.log('[contract-testing] SARSA algorithm created successfully');
96
+ logger.info('SARSA algorithm created successfully');
95
97
  }
96
98
  catch (error) {
97
- console.error('[contract-testing] Failed to create SARSA:', error);
99
+ logger.error('Failed to create SARSA:', error instanceof Error ? error : undefined);
98
100
  throw new Error(`SARSA creation failed: ${toErrorMessage(error)}`);
99
101
  }
100
102
  }
@@ -108,12 +110,12 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
108
110
  maxPatterns: 5000,
109
111
  minConfidence: 0.6,
110
112
  });
111
- console.log('[contract-testing] PersistentSONAEngine initialized successfully');
113
+ logger.info('PersistentSONAEngine initialized successfully');
112
114
  }
113
115
  catch (error) {
114
116
  // Log and continue - SONA is enhancement, not critical
115
- console.error('[contract-testing] Failed to initialize PersistentSONAEngine:', error);
116
- console.warn('[contract-testing] Continuing without SONA pattern persistence');
117
+ logger.error('Failed to initialize PersistentSONAEngine:', error instanceof Error ? error : undefined);
118
+ logger.warn('Continuing without SONA pattern persistence');
117
119
  this.qesona = undefined;
118
120
  }
119
121
  }
@@ -188,7 +190,7 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
188
190
  this.startWorkflow(workflowId, 'verify');
189
191
  // ADR-047: Check topology health before expensive operations
190
192
  if (this.config.enableMinCutAwareness && !this.isTopologyHealthy()) {
191
- console.warn(`[${this.domainName}] Topology degraded, using conservative verification strategy`);
193
+ logger.warn(`Topology degraded, using conservative verification strategy`);
192
194
  // Continue with reduced parallelism when topology is unhealthy
193
195
  }
194
196
  // ADR-047: Check if operations should be paused due to critical topology
@@ -220,7 +222,7 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
220
222
  const prioritizationResult = await this.prioritizeContracts(contracts, prioritizationContext);
221
223
  if (prioritizationResult.success) {
222
224
  contracts = prioritizationResult.value.orderedContracts;
223
- console.log(`[contract-testing] Using ${prioritizationResult.value.strategy} strategy for contract verification order (confidence: ${prioritizationResult.value.confidence.toFixed(2)})`);
225
+ logger.info(`[contract-testing] Using ${prioritizationResult.value.strategy} strategy for contract verification order (confidence: ${prioritizationResult.value.confidence.toFixed(2)})`);
224
226
  }
225
227
  }
226
228
  // Spawn verification agent
@@ -282,7 +284,7 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
282
284
  this.startWorkflow(workflowId, 'compare');
283
285
  // ADR-047: Check topology health before expensive operations
284
286
  if (this.config.enableMinCutAwareness && !this.isTopologyHealthy()) {
285
- console.warn(`[${this.domainName}] Topology degraded, using conservative pre-release check`);
287
+ logger.warn(`Topology degraded, using conservative pre-release check`);
286
288
  }
287
289
  // ADR-047: Check if operations should be paused due to critical topology
288
290
  if (this.minCutMixin.shouldPauseOperations()) {
@@ -596,14 +598,14 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
596
598
  else if (filePath.endsWith('.yaml') || filePath.endsWith('.yml')) {
597
599
  // YAML support would require a YAML parser
598
600
  // For now, log a warning and return null
599
- console.warn('YAML contract files not yet supported:', path.value);
601
+ logger.warn('YAML contract files not yet supported:');
600
602
  return null;
601
603
  }
602
604
  // Try parsing as JSON anyway
603
605
  return safeJsonParse(content);
604
606
  }
605
607
  catch (error) {
606
- console.error(`Failed to parse contract from ${path.value}:`, toErrorMessage(error));
608
+ logger.error(`Failed to parse contract from ${path.value}: ${toErrorMessage(error)}`);
607
609
  return null;
608
610
  }
609
611
  }
@@ -611,7 +613,7 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
611
613
  // Read file content using FileReader
612
614
  const result = await this.fileReader.readFile(path.value);
613
615
  if (!result.success) {
614
- console.error(`Failed to read file ${path.value}:`, result.error);
616
+ logger.error(`Failed to read file ${path.value}:`, result.error);
615
617
  return null;
616
618
  }
617
619
  return result.value;
@@ -894,7 +896,7 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
894
896
  nextState: state,
895
897
  done: true,
896
898
  });
897
- console.log(`[contract-testing] SARSA prioritized ${contracts.length} contracts using ${strategy} strategy (confidence: ${prediction.confidence.toFixed(2)})`);
899
+ logger.info(`[contract-testing] SARSA prioritized ${contracts.length} contracts using ${strategy} strategy (confidence: ${prediction.confidence.toFixed(2)})`);
898
900
  return ok({
899
901
  orderedContracts: prioritized,
900
902
  strategy,
@@ -902,7 +904,7 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
902
904
  });
903
905
  }
904
906
  catch (error) {
905
- console.error('[contract-testing] SARSA prioritization failed:', error);
907
+ logger.error('SARSA prioritization failed:', error instanceof Error ? error : undefined);
906
908
  // Return original contracts on error (graceful degradation)
907
909
  return ok({
908
910
  orderedContracts: contracts,
@@ -971,10 +973,10 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
971
973
  provider: contract.provider.name,
972
974
  version: contract.version.toString(),
973
975
  });
974
- console.log(`[contract-testing] Stored pattern for contract ${contract.id} (success: ${validationSuccess}, quality: ${quality.toFixed(2)})`);
976
+ logger.info(`Stored pattern for contract ${contract.id} (success: ${validationSuccess}, quality: ${quality.toFixed(2)})`);
975
977
  }
976
978
  catch (error) {
977
- console.error('[contract-testing] Failed to store contract pattern:', error);
979
+ logger.error('Failed to store contract pattern:', error instanceof Error ? error : undefined);
978
980
  }
979
981
  }
980
982
  /**
@@ -1008,7 +1010,7 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
1008
1010
  if (adaptation.success && adaptation.pattern) {
1009
1011
  const shouldValidate = adaptation.pattern.outcome.success;
1010
1012
  const strategy = adaptation.pattern.action.type;
1011
- console.log(`[contract-testing] QESONA adapted pattern for ${contract.id}: shouldValidate=${shouldValidate}, confidence=${adaptation.similarity.toFixed(2)}`);
1013
+ logger.info(`[contract-testing] QESONA adapted pattern for ${contract.id}: shouldValidate=${shouldValidate}, confidence=${adaptation.similarity.toFixed(2)}`);
1012
1014
  return {
1013
1015
  shouldValidate,
1014
1016
  confidence: adaptation.similarity,
@@ -1022,7 +1024,7 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
1022
1024
  };
1023
1025
  }
1024
1026
  catch (error) {
1025
- console.error('[contract-testing] QESONA pattern adaptation failed:', error);
1027
+ logger.error('QESONA pattern adaptation failed:', error instanceof Error ? error : undefined);
1026
1028
  return {
1027
1029
  shouldValidate: true,
1028
1030
  confidence: 0.5,
@@ -1084,10 +1086,10 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
1084
1086
  if (this.consensusMixin.requiresConsensus(finding)) {
1085
1087
  const result = await this.consensusMixin.verifyFinding(finding);
1086
1088
  if (result.success && result.value.verdict === 'verified') {
1087
- console.log(`[${this.domainName}] Contract violation verified by consensus`);
1089
+ logger.info(`Contract violation verified by consensus`);
1088
1090
  return true;
1089
1091
  }
1090
- console.warn(`[${this.domainName}] Contract violation NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
1092
+ logger.warn(`Contract violation NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
1091
1093
  return false;
1092
1094
  }
1093
1095
  return true; // No consensus needed
@@ -1108,10 +1110,10 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
1108
1110
  if (this.consensusMixin.requiresConsensus(finding)) {
1109
1111
  const result = await this.consensusMixin.verifyFinding(finding);
1110
1112
  if (result.success && result.value.verdict === 'verified') {
1111
- console.log(`[${this.domainName}] Breaking change at '${change.path}' verified by consensus`);
1113
+ logger.info(`Breaking change at '${change.path}' verified by consensus`);
1112
1114
  return true;
1113
1115
  }
1114
- console.warn(`[${this.domainName}] Breaking change NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
1116
+ logger.warn(`Breaking change NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
1115
1117
  return false;
1116
1118
  }
1117
1119
  return true; // No consensus needed
@@ -1132,10 +1134,10 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
1132
1134
  if (this.consensusMixin.requiresConsensus(finding)) {
1133
1135
  const result = await this.consensusMixin.verifyFinding(finding);
1134
1136
  if (result.success && result.value.verdict === 'verified') {
1135
- console.log(`[${this.domainName}] Schema incompatibility verified by consensus`);
1137
+ logger.info(`Schema incompatibility verified by consensus`);
1136
1138
  return true;
1137
1139
  }
1138
- console.warn(`[${this.domainName}] Schema incompatibility NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
1140
+ logger.warn(`Schema incompatibility NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
1139
1141
  return false;
1140
1142
  }
1141
1143
  return true; // No consensus needed
@@ -28,10 +28,6 @@ export interface ContractValidatorDependencies {
28
28
  memory: MemoryBackend;
29
29
  llmRouter?: HybridRouter;
30
30
  }
31
- /**
32
- * Contract Validation Service Implementation
33
- * Validates API contracts against schemas and specifications
34
- */
35
31
  export declare class ContractValidatorService implements IContractValidationService {
36
32
  private readonly config;
37
33
  private readonly memory;
@@ -2,8 +2,9 @@
2
2
  * Agentic QE v3 - Contract Validator Service
3
3
  * Implements IContractValidationService for API contract validation (Pact-style)
4
4
  */
5
+ import { LoggerFactory } from '../../../logging/index.js';
5
6
  import { ok, err } from '../../../shared/types/index.js';
6
- import { createSafeRegex } from '../../../mcp/security/validators/regex-safety-validator.js';
7
+ import { createSafeRegex } from '../../../shared/security/regex-safety-validator.js';
7
8
  import { CONTRACT_CONSTANTS, LLM_ANALYSIS_CONSTANTS } from '../../constants.js';
8
9
  import { toError } from '../../../shared/error-utils.js';
9
10
  import { safeJsonParse } from '../../../shared/safe-json.js';
@@ -20,6 +21,7 @@ const DEFAULT_CONFIG = {
20
21
  * Contract Validation Service Implementation
21
22
  * Validates API contracts against schemas and specifications
22
23
  */
24
+ const logger = LoggerFactory.create('contract-testing/contract-validator');
23
25
  export class ContractValidatorService {
24
26
  config;
25
27
  memory;
@@ -80,7 +82,7 @@ Provide:
80
82
  return response.content;
81
83
  }
82
84
  catch (error) {
83
- console.warn('[ContractValidatorService] LLM analysis failed:', error);
85
+ logger.warn('LLM analysis failed:');
84
86
  return null;
85
87
  }
86
88
  }
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { v4 as uuidv4 } from 'uuid';
6
6
  import { ok, err } from '../../../shared/types/index.js';
7
- import { createSafeRegex } from '../../../mcp/security/validators/regex-safety-validator.js';
7
+ import { createSafeRegex } from '../../../shared/security/regex-safety-validator.js';
8
8
  import { toError } from '../../../shared/error-utils.js';
9
9
  import { safeJsonParse } from '../../../shared/safe-json.js';
10
10
  const DEFAULT_CONFIG = {
@@ -3,6 +3,7 @@
3
3
  * Orchestrates coverage analysis workflow and domain events
4
4
  * Integrates Q-Learning for intelligent test prioritization
5
5
  */
6
+ import { LoggerFactory } from '../../logging/index.js';
6
7
  import { ok, err } from '../../shared/types';
7
8
  import { toError } from '../../shared/error-utils.js';
8
9
  import { createEvent, CoverageAnalysisEvents, } from '../../shared/events';
@@ -33,6 +34,7 @@ const DEFAULT_CONFIG = {
33
34
  // ============================================================================
34
35
  // Coordinator Implementation
35
36
  // ============================================================================
37
+ const logger = LoggerFactory.create('coverage-analysis');
36
38
  export class CoverageAnalysisCoordinator extends BaseDomainCoordinator {
37
39
  memory;
38
40
  coverageAnalyzer;
@@ -160,7 +162,7 @@ export class CoverageAnalysisCoordinator extends BaseDomainCoordinator {
160
162
  }
161
163
  }
162
164
  catch (error) {
163
- console.error('Failed to train Q-Learning model:', error);
165
+ logger.error('Failed to train Q-Learning model', error instanceof Error ? error : undefined);
164
166
  }
165
167
  }
166
168
  // ============================================================================
@@ -346,7 +348,7 @@ export class CoverageAnalysisCoordinator extends BaseDomainCoordinator {
346
348
  try {
347
349
  // ADR-047: Check topology health before expensive analysis
348
350
  if (this.config.enableMinCutAwareness && !this.isTopologyHealthy()) {
349
- console.warn(`[${this.domainName}] Topology degraded, using conservative analysis mode`);
351
+ logger.warn('Topology degraded, using conservative analysis mode');
350
352
  }
351
353
  // ADR-047: Check if operations should be paused due to critical topology
352
354
  if (this.minCutMixin.shouldPauseOperations()) {
@@ -372,7 +374,7 @@ export class CoverageAnalysisCoordinator extends BaseDomainCoordinator {
372
374
  try {
373
375
  // ADR-047: Check topology health before gap detection
374
376
  if (this.config.enableMinCutAwareness && !this.isTopologyHealthy()) {
375
- console.warn(`[${this.domainName}] Topology degraded, using conservative gap detection`);
377
+ logger.warn('Topology degraded, using conservative gap detection');
376
378
  }
377
379
  // ADR-047: Check if operations should be paused due to critical topology
378
380
  if (this.minCutMixin.shouldPauseOperations()) {
@@ -388,7 +390,7 @@ export class CoverageAnalysisCoordinator extends BaseDomainCoordinator {
388
390
  const confidence = Math.min(0.95, gap.riskScore / 10 + 0.3);
389
391
  const isVerified = await this.verifyCoverageGap(gap, confidence);
390
392
  if (!isVerified) {
391
- console.log(`[${this.domainName}] Coverage gap in '${gap.file}' not verified, skipping publication`);
393
+ logger.info(`Coverage gap in '${gap.file}' not verified, skipping publication`);
392
394
  continue;
393
395
  }
394
396
  }
@@ -428,7 +430,7 @@ export class CoverageAnalysisCoordinator extends BaseDomainCoordinator {
428
430
  factors: result.value.factors.map(f => ({ name: f.name, weight: f.contribution })),
429
431
  }, Math.min(0.95, result.value.overallRisk / 10 + 0.5));
430
432
  if (!isVerified) {
431
- console.warn(`[${this.domainName}] Risk zone '${result.value.file}' not verified, downgrading severity`);
433
+ logger.warn(`Risk zone '${result.value.file}' not verified, downgrading severity`);
432
434
  // Downgrade the risk level if not verified
433
435
  return ok({
434
436
  ...result.value,
@@ -785,10 +787,10 @@ export class CoverageAnalysisCoordinator extends BaseDomainCoordinator {
785
787
  if (this.consensusMixin.requiresConsensus(finding)) {
786
788
  const result = await this.consensusMixin.verifyFinding(finding);
787
789
  if (result.success && result.value.verdict === 'verified') {
788
- console.log(`[${this.domainName}] Coverage gap in '${gap.file}' verified by consensus`);
790
+ logger.info(`Coverage gap in '${gap.file}' verified by consensus`);
789
791
  return true;
790
792
  }
791
- console.warn(`[${this.domainName}] Coverage gap in '${gap.file}' NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
793
+ logger.warn(`Coverage gap in '${gap.file}' NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
792
794
  return false;
793
795
  }
794
796
  return true; // No consensus needed
@@ -814,10 +816,10 @@ export class CoverageAnalysisCoordinator extends BaseDomainCoordinator {
814
816
  if (this.consensusMixin.requiresConsensus(finding)) {
815
817
  const result = await this.consensusMixin.verifyFinding(finding);
816
818
  if (result.success && result.value.verdict === 'verified') {
817
- console.log(`[${this.domainName}] Risk zone '${zone.file}' classification verified by consensus`);
819
+ logger.info(`Risk zone '${zone.file}' classification verified by consensus`);
818
820
  return true;
819
821
  }
820
- console.warn(`[${this.domainName}] Risk zone '${zone.file}' classification NOT verified`);
822
+ logger.warn(`Risk zone '${zone.file}' classification NOT verified`);
821
823
  return false;
822
824
  }
823
825
  return true; // No consensus needed
@@ -843,10 +845,10 @@ export class CoverageAnalysisCoordinator extends BaseDomainCoordinator {
843
845
  if (this.consensusMixin.requiresConsensus(finding)) {
844
846
  const result = await this.consensusMixin.verifyFinding(finding);
845
847
  if (result.success && result.value.verdict === 'verified') {
846
- console.log(`[${this.domainName}] Quality regression verified by consensus`);
848
+ logger.info('Quality regression verified by consensus');
847
849
  return true;
848
850
  }
849
- console.warn(`[${this.domainName}] Quality regression NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
851
+ logger.warn(`Quality regression NOT verified: ${result.success ? result.value.verdict : result.error.message}`);
850
852
  return false;
851
853
  }
852
854
  return true; // No consensus needed
@@ -4,6 +4,7 @@
4
4
  *
5
5
  * ADR-051: LLM-powered coverage analysis for intelligent gap detection
6
6
  */
7
+ import { LoggerFactory } from '../../../logging/index.js';
7
8
  import { ok, err } from '../../../shared/types';
8
9
  import { toError } from '../../../shared/error-utils.js';
9
10
  import { safeJsonParse } from '../../../shared/safe-json.js';
@@ -16,6 +17,7 @@ const DEFAULT_CONFIG = {
16
17
  // ============================================================================
17
18
  // Service Implementation
18
19
  // ============================================================================
20
+ const logger = LoggerFactory.create('coverage-analysis/coverage-analyzer');
19
21
  export class CoverageAnalyzerService {
20
22
  static DEFAULT_THRESHOLD = 80;
21
23
  static VECTOR_DIMENSION = 384;
@@ -249,7 +251,7 @@ Provide thoughtful, specific analysis based on the coverage data. Do not include
249
251
  return this.getDefaultInsights();
250
252
  }
251
253
  catch (error) {
252
- console.warn('[CoverageAnalyzer] LLM analysis failed, using defaults:', error);
254
+ logger.warn('LLM analysis failed, using defaults');
253
255
  return this.getDefaultInsights();
254
256
  }
255
257
  }
@@ -303,7 +305,7 @@ Provide thoughtful, specific analysis based on the coverage data. Do not include
303
305
  };
304
306
  }
305
307
  catch {
306
- console.warn('[CoverageAnalyzer] Failed to parse LLM response as JSON');
308
+ logger.warn('Failed to parse LLM response as JSON');
307
309
  return this.getDefaultInsights();
308
310
  }
309
311
  }
@@ -4,6 +4,7 @@
4
4
  *
5
5
  * ADR-051: Added LLM-powered gap analysis for intelligent prioritization
6
6
  */
7
+ import { LoggerFactory } from '../../../logging/index.js';
7
8
  import { ok, err } from '../../../shared/types';
8
9
  import { toError } from '../../../shared/error-utils.js';
9
10
  import { safeJsonParse } from '../../../shared/safe-json.js';
@@ -16,6 +17,7 @@ const DEFAULT_CONFIG = {
16
17
  // ============================================================================
17
18
  // Service Implementation
18
19
  // ============================================================================
20
+ const logger = LoggerFactory.create('coverage-analysis/gap-detector');
19
21
  export class GapDetectorService {
20
22
  static DEFAULT_MIN_COVERAGE = 80;
21
23
  static VECTOR_DIMENSION = 384;
@@ -122,7 +124,7 @@ Return JSON in this exact format:
122
124
  return err(new Error('Empty response from LLM'));
123
125
  }
124
126
  catch (error) {
125
- console.warn('[GapDetector] LLM analysis failed:', error);
127
+ logger.warn('LLM analysis failed');
126
128
  return err(toError(error));
127
129
  }
128
130
  }
@@ -143,21 +143,6 @@ export interface HNSWIndexStats {
143
143
  /** Number of insert operations performed */
144
144
  insertOperations: number;
145
145
  }
146
- /**
147
- * HNSW Index implementation delegating to the unified HnswAdapter (ADR-071).
148
- *
149
- * This provides O(log n) approximate nearest neighbor search for coverage
150
- * gap detection. Internally uses HnswAdapter which wraps ProgressiveHnswBackend
151
- * with @ruvector/gnn differentiableSearch and brute-force cosine fallback.
152
- *
153
- * @example
154
- * ```typescript
155
- * const index = new HNSWIndex(memoryBackend);
156
- * await index.initialize();
157
- * await index.insert('file:src/main.ts', embedding, { filePath: 'src/main.ts', ... });
158
- * const similar = await index.search(queryEmbedding, 10);
159
- * ```
160
- */
161
146
  export declare class HNSWIndex implements IHNSWIndex {
162
147
  private readonly memory;
163
148
  private readonly config;
@@ -18,6 +18,7 @@
18
18
  *
19
19
  * @module coverage-analysis/hnsw-index
20
20
  */
21
+ import { LoggerFactory } from '../../../logging/index.js';
21
22
  import { HnswAdapter } from '../../../kernel/hnsw-adapter.js';
22
23
  import { secureRandom } from '../../../shared/utils/crypto-random.js';
23
24
  /**
@@ -50,6 +51,7 @@ export const DEFAULT_HNSW_CONFIG = {
50
51
  * const similar = await index.search(queryEmbedding, 10);
51
52
  * ```
52
53
  */
54
+ const logger = LoggerFactory.create('coverage-analysis/hnsw-index');
53
55
  export class HNSWIndex {
54
56
  memory;
55
57
  config;
@@ -96,7 +98,7 @@ export class HNSWIndex {
96
98
  efSearch: this.config.efSearch,
97
99
  metric: adapterMetric,
98
100
  });
99
- console.log(`[HNSWIndex] HnswAdapter initialized: dimension=${this.config.dimensions}, ` +
101
+ logger.info(`HnswAdapter initialized: dimension=${this.config.dimensions}, ` +
100
102
  `metric=${this.config.metric}, M=${this.config.M} (unified backend via ADR-071)`);
101
103
  this.initialized = true;
102
104
  }
@@ -117,32 +117,6 @@ export interface SublinearAnalyzerStats {
117
117
  /** Performance vs linear scan improvement factor */
118
118
  performanceImprovement: number;
119
119
  }
120
- /**
121
- * Sublinear Coverage Analyzer
122
- *
123
- * Implements O(log n) coverage gap detection using HNSW vector indexing.
124
- * This is the core implementation for ADR-003 performance targets.
125
- *
126
- * Key features:
127
- * - O(log n) gap detection via HNSW approximate nearest neighbor search
128
- * - Dense coverage embeddings capture coverage patterns
129
- * - Batch indexing for efficient bulk operations
130
- * - Risk zone detection using vector similarity clustering
131
- * - <100ms target for 100k file codebases
132
- *
133
- * @example
134
- * ```typescript
135
- * const analyzer = new SublinearCoverageAnalyzer(memoryBackend);
136
- * await analyzer.initialize();
137
- * await analyzer.indexCoverageData(coverageData);
138
- *
139
- * // O(log n) gap detection
140
- * const gaps = await analyzer.findGapsSublinear({ maxLineCoverage: 60 });
141
- *
142
- * // Find similar patterns
143
- * const similar = await analyzer.findSimilarPatterns(gap, 5);
144
- * ```
145
- */
146
120
  export declare class SublinearCoverageAnalyzer implements ISublinearCoverageAnalyzer {
147
121
  private readonly memory;
148
122
  private readonly config;
@@ -16,6 +16,7 @@
16
16
  *
17
17
  * @module coverage-analysis/sublinear-analyzer
18
18
  */
19
+ import { LoggerFactory } from '../../../logging/index.js';
19
20
  import { ok, err } from '../../../shared/types';
20
21
  import { createHNSWIndex, } from './hnsw-index';
21
22
  import { toError } from '../../../shared/error-utils.js';
@@ -61,6 +62,7 @@ export const DEFAULT_ANALYZER_CONFIG = {
61
62
  * const similar = await analyzer.findSimilarPatterns(gap, 5);
62
63
  * ```
63
64
  */
65
+ const logger = LoggerFactory.create('coverage-analysis/sublinear-analyzer');
64
66
  export class SublinearCoverageAnalyzer {
65
67
  memory;
66
68
  config;
@@ -179,7 +181,7 @@ export class SublinearCoverageAnalyzer {
179
181
  const estimatedEffort = this.estimateEffort(totalUncoveredLines);
180
182
  // Verify performance target
181
183
  if (searchTimeMs > 100) {
182
- console.warn(`Sublinear search took ${searchTimeMs.toFixed(2)}ms, ` +
184
+ logger.warn(`Sublinear search took ${searchTimeMs.toFixed(2)}ms, ` +
183
185
  `exceeding 100ms target for ${this.fileCount} files`);
184
186
  }
185
187
  return ok({
@@ -48,15 +48,6 @@ export interface CoordinatorConfig extends BaseDomainCoordinatorConfig {
48
48
  consensusConfig?: Partial<ConsensusEnabledConfig>;
49
49
  }
50
50
  type DefectWorkflowType = 'predict' | 'analyze' | 'regression' | 'cluster' | 'learn';
51
- /**
52
- * Defect Intelligence Coordinator
53
- * Orchestrates defect analysis workflows and coordinates with agents
54
- *
55
- * V3 Integration:
56
- * - MinCut topology awareness for routing and health monitoring (ADR-047)
57
- * - Multi-model consensus for high-confidence predictions (MM-001)
58
- * - CQ-002: Extends BaseDomainCoordinator
59
- */
60
51
  export declare class DefectIntelligenceCoordinator extends BaseDomainCoordinator<CoordinatorConfig, DefectWorkflowType> implements IDefectIntelligenceCoordinator {
61
52
  private readonly memory;
62
53
  private readonly agentCoordinator;
@@ -71,7 +62,7 @@ export declare class DefectIntelligenceCoordinator extends BaseDomainCoordinator
71
62
  /**
72
63
  * Get weak vertices in this domain (for diagnostics)
73
64
  */
74
- getDomainWeakVertices(): import("../..").WeakVertex[];
65
+ getDomainWeakVertices(): import("../../index.js").WeakVertex[];
75
66
  /**
76
67
  * Subscribe to topology health changes
77
68
  */