pumuki-ast-hooks 5.4.5 → 5.4.7

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 (166) hide show
  1. package/package.json +2 -2
  2. package/scripts/hooks-system/application/services/AutonomousOrchestrator.js +2 -0
  3. package/scripts/hooks-system/application/services/ContextDetectionEngine.js +2 -0
  4. package/scripts/hooks-system/application/services/DynamicRulesLoader.js +3 -1
  5. package/scripts/hooks-system/application/services/GitFlowService.js +2 -0
  6. package/scripts/hooks-system/application/services/GitTreeState.js +1 -0
  7. package/scripts/hooks-system/application/services/HookSystemScheduler.js +2 -0
  8. package/scripts/hooks-system/application/services/IntelligentCommitAnalyzer.js +4 -1
  9. package/scripts/hooks-system/application/services/IntelligentGitTreeMonitor.js +2 -0
  10. package/scripts/hooks-system/application/services/PlatformAnalysisService.js +2 -0
  11. package/scripts/hooks-system/application/services/PlatformDetectionService.js +3 -1
  12. package/scripts/hooks-system/application/services/PlaybookRunner.js +3 -0
  13. package/scripts/hooks-system/application/services/PredictiveHookAdvisor.js +2 -0
  14. package/scripts/hooks-system/application/services/RealtimeGuardPlugin.js +2 -0
  15. package/scripts/hooks-system/application/services/SmartDirtyTreeAnalyzer.js +2 -0
  16. package/scripts/hooks-system/application/services/commit/CommitMessageGenerator.js +3 -1
  17. package/scripts/hooks-system/application/services/commit/FeatureDetector.js +5 -1
  18. package/scripts/hooks-system/application/services/evidence/EvidenceContextManager.js +2 -0
  19. package/scripts/hooks-system/application/services/guard/GuardAutoManagerService.js +1 -0
  20. package/scripts/hooks-system/application/services/guard/GuardConfig.js +3 -1
  21. package/scripts/hooks-system/application/services/guard/GuardEventLogger.js +2 -0
  22. package/scripts/hooks-system/application/services/guard/GuardHealthReminder.js +5 -1
  23. package/scripts/hooks-system/application/services/guard/GuardHeartbeatMonitor.js +2 -0
  24. package/scripts/hooks-system/application/services/guard/GuardLockManager.js +2 -0
  25. package/scripts/hooks-system/application/services/guard/GuardMonitorLoop.js +3 -1
  26. package/scripts/hooks-system/application/services/guard/GuardNotificationHandler.js +4 -0
  27. package/scripts/hooks-system/application/services/guard/GuardNotifier.js +3 -1
  28. package/scripts/hooks-system/application/services/guard/GuardProcessManager.js +2 -0
  29. package/scripts/hooks-system/application/services/guard/GuardRecoveryService.js +3 -0
  30. package/scripts/hooks-system/application/services/installation/ConfigurationGeneratorService.js +4 -0
  31. package/scripts/hooks-system/application/services/installation/FileSystemInstallerService.js +3 -0
  32. package/scripts/hooks-system/application/services/installation/GitEnvironmentService.js +3 -0
  33. package/scripts/hooks-system/application/services/installation/HookInstaller.js +4 -0
  34. package/scripts/hooks-system/application/services/installation/IdeIntegrationService.js +3 -0
  35. package/scripts/hooks-system/application/services/installation/InstallService.js +3 -0
  36. package/scripts/hooks-system/application/services/installation/McpConfigurator.js +1 -0
  37. package/scripts/hooks-system/application/services/installation/PlatformDetectorService.js +4 -0
  38. package/scripts/hooks-system/application/services/installation/VSCodeTaskConfigurator.js +4 -0
  39. package/scripts/hooks-system/application/services/logging/UnifiedLogger.js +2 -0
  40. package/scripts/hooks-system/application/services/monitoring/ActivityMonitor.js +2 -0
  41. package/scripts/hooks-system/application/services/monitoring/AstMonitor.js +2 -0
  42. package/scripts/hooks-system/application/services/monitoring/DevDocsMonitor.js +2 -0
  43. package/scripts/hooks-system/application/services/monitoring/EvidenceMonitor.js +2 -0
  44. package/scripts/hooks-system/application/services/monitoring/EvidenceMonitorService.js +1 -0
  45. package/scripts/hooks-system/application/services/monitoring/GitTreeMonitor.js +2 -0
  46. package/scripts/hooks-system/application/services/monitoring/GitTreeMonitorService.js +3 -0
  47. package/scripts/hooks-system/application/services/monitoring/HealthCheckService.js +2 -0
  48. package/scripts/hooks-system/application/services/monitoring/HeartbeatMonitorService.js +2 -0
  49. package/scripts/hooks-system/application/services/monitoring/TokenMonitor.js +2 -0
  50. package/scripts/hooks-system/application/services/notification/MacNotificationSender.js +2 -0
  51. package/scripts/hooks-system/application/services/notification/NotificationCenterService.js +2 -0
  52. package/scripts/hooks-system/application/services/notification/NotificationDispatcher.js +3 -0
  53. package/scripts/hooks-system/application/services/notification/components/NotificationCooldownManager.js +3 -0
  54. package/scripts/hooks-system/application/services/notification/components/NotificationDeduplicator.js +2 -0
  55. package/scripts/hooks-system/application/services/notification/components/NotificationQueue.js +3 -0
  56. package/scripts/hooks-system/application/services/notification/components/NotificationRetryExecutor.js +4 -0
  57. package/scripts/hooks-system/application/services/platform/PlatformHeuristics.js +2 -0
  58. package/scripts/hooks-system/application/services/recovery/AutoRecoveryManager.js +2 -0
  59. package/scripts/hooks-system/application/services/smart-commit/CommitMessageSuggester.js +4 -0
  60. package/scripts/hooks-system/application/services/smart-commit/FileContextGrouper.js +2 -0
  61. package/scripts/hooks-system/application/services/smart-commit/SmartCommitSummaryBuilder.js +6 -0
  62. package/scripts/hooks-system/application/services/token/CursorTokenService.js +3 -0
  63. package/scripts/hooks-system/application/services/token/TokenMetricsService.js +4 -0
  64. package/scripts/hooks-system/application/services/token/TokenMonitorService.js +1 -0
  65. package/scripts/hooks-system/application/services/token/TokenStatusReporter.js +2 -0
  66. package/scripts/hooks-system/application/state/HookSystemStateMachine.js +2 -0
  67. package/scripts/hooks-system/application/use-cases/AnalyzeCodebaseUseCase.js +2 -0
  68. package/scripts/hooks-system/application/use-cases/AnalyzeStagedFilesUseCase.js +2 -0
  69. package/scripts/hooks-system/application/use-cases/AutoExecuteAIStartUseCase.js +2 -0
  70. package/scripts/hooks-system/application/use-cases/BlockCommitUseCase.js +2 -0
  71. package/scripts/hooks-system/application/use-cases/GenerateAuditReportUseCase.js +3 -0
  72. package/scripts/hooks-system/bin/audit-library.js +5 -4
  73. package/scripts/hooks-system/bin/auto-fix-violations.js +1 -0
  74. package/scripts/hooks-system/bin/auto-restart-guards.js +3 -2
  75. package/scripts/hooks-system/bin/check-doc-drift.js +1 -0
  76. package/scripts/hooks-system/bin/check-version.js +26 -25
  77. package/scripts/hooks-system/bin/cli.js +1 -0
  78. package/scripts/hooks-system/bin/guard-auto-manager.js +1 -0
  79. package/scripts/hooks-system/bin/guard-supervisor.js +1 -0
  80. package/scripts/hooks-system/bin/hook-status.js +1 -0
  81. package/scripts/hooks-system/bin/install.js +1 -0
  82. package/scripts/hooks-system/bin/nightly-metrics-report.js +1 -0
  83. package/scripts/hooks-system/bin/plan-review.js +1 -0
  84. package/scripts/hooks-system/bin/predictive-hooks.js +1 -0
  85. package/scripts/hooks-system/bin/pumuki-audit.js +1 -0
  86. package/scripts/hooks-system/bin/pumuki-init.js +1 -0
  87. package/scripts/hooks-system/bin/pumuki-mcp.js +1 -0
  88. package/scripts/hooks-system/bin/pumuki-rules.js +1 -0
  89. package/scripts/hooks-system/bin/run-ast-adapter.js +2 -0
  90. package/scripts/hooks-system/bin/run-orchestrator.js +1 -0
  91. package/scripts/hooks-system/bin/run-playbook.js +1 -0
  92. package/scripts/hooks-system/bin/setup-eslint.js +1 -0
  93. package/scripts/hooks-system/bin/violations-api.js +1 -0
  94. package/scripts/hooks-system/bin/watch-hooks.js +1 -0
  95. package/scripts/hooks-system/domain/errors/index.js +2 -0
  96. package/scripts/hooks-system/domain/services/AuditAnalyzer.js +2 -0
  97. package/scripts/hooks-system/domain/services/AuditFilter.js +5 -0
  98. package/scripts/hooks-system/domain/services/AuditResultSerializer.js +5 -0
  99. package/scripts/hooks-system/domain/services/AuditScorer.js +6 -0
  100. package/scripts/hooks-system/infrastructure/adapters/AstAnalyzerAdapter.js +3 -0
  101. package/scripts/hooks-system/infrastructure/adapters/FileEvidenceAdapter.js +2 -0
  102. package/scripts/hooks-system/infrastructure/adapters/GitCliAdapter.js +4 -0
  103. package/scripts/hooks-system/infrastructure/adapters/GitCommandAdapter.js +4 -0
  104. package/scripts/hooks-system/infrastructure/adapters/GitHubCliAdapter.js +2 -0
  105. package/scripts/hooks-system/infrastructure/adapters/GitQueryAdapter.js +4 -0
  106. package/scripts/hooks-system/infrastructure/adapters/LegacyAnalyzerAdapter.js +2 -0
  107. package/scripts/hooks-system/infrastructure/adapters/MacOSNotificationAdapter.js +4 -0
  108. package/scripts/hooks-system/infrastructure/adapters/git/GitCommandRunner.js +2 -0
  109. package/scripts/hooks-system/infrastructure/adapters/git/GitCommandService.js +3 -0
  110. package/scripts/hooks-system/infrastructure/adapters/git/GitQueryService.js +3 -0
  111. package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidASTIntelligentAnalyzer.js +2 -0
  112. package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidASTParser.js +2 -0
  113. package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidAnalysisOrchestrator.js +2 -0
  114. package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidArchitectureDetector.js +7 -5
  115. package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidClassAnalyzer.js +3 -0
  116. package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidForbiddenLiteralsAnalyzer.js +1 -0
  117. package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidSOLIDAnalyzer.js +2 -0
  118. package/scripts/hooks-system/infrastructure/ast/archive/ios-rules.js +2 -0
  119. package/scripts/hooks-system/infrastructure/ast/archive/kotlin-analyzer.js +2 -0
  120. package/scripts/hooks-system/infrastructure/ast/archive/kotlin-parser.js +2 -0
  121. package/scripts/hooks-system/infrastructure/ast/archive/swift-analyzer.js +2 -0
  122. package/scripts/hooks-system/infrastructure/ast/backend/analyzers/BackendArchitectureDetector.js +2 -0
  123. package/scripts/hooks-system/infrastructure/ast/backend/analyzers/BackendPatternDetector.js +2 -0
  124. package/scripts/hooks-system/infrastructure/ast/common/BDDTDDWorkflowRules.js +2 -0
  125. package/scripts/hooks-system/infrastructure/ast/common/rules/BDDRules.js +2 -0
  126. package/scripts/hooks-system/infrastructure/ast/common/rules/ImplementationRules.js +2 -0
  127. package/scripts/hooks-system/infrastructure/ast/common/rules/TDDRules.js +2 -0
  128. package/scripts/hooks-system/infrastructure/ast/common/rules/WorkflowRules.js +2 -0
  129. package/scripts/hooks-system/infrastructure/ast/frontend/analyzers/FrontendArchitectureDetector.js +16 -14
  130. package/scripts/hooks-system/infrastructure/ast/frontend/analyzers/FrontendForbiddenLiteralsAnalyzer.js +5 -0
  131. package/scripts/hooks-system/infrastructure/ast/frontend/analyzers/FrontendSOLIDAnalyzer.js +2 -0
  132. package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSASTIntelligentAnalyzer.js +2 -0
  133. package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSArchitectureDetector.js +12 -10
  134. package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSArchitectureRules.js +2 -0
  135. package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSCICDRules.js +2 -0
  136. package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSEnterpriseAnalyzer.js +2 -0
  137. package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSForbiddenLiteralsAnalyzer.js +1 -0
  138. package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSNetworkingAdvancedRules.js +2 -0
  139. package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSPerformanceRules.js +3 -0
  140. package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSSPMRules.js +2 -0
  141. package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSSwiftUIAdvancedRules.js +2 -0
  142. package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSTestingAdvancedRules.js +2 -0
  143. package/scripts/hooks-system/infrastructure/ast/ios/native-bridge.js +1 -0
  144. package/scripts/hooks-system/infrastructure/ast/ios/parsers/SourceKittenParser.js +2 -0
  145. package/scripts/hooks-system/infrastructure/cli/install-wizard.js +1 -0
  146. package/scripts/hooks-system/infrastructure/mcp/ast-intelligence-automation.js +98 -42
  147. package/scripts/hooks-system/infrastructure/mcp/evidence-watcher.js +1 -0
  148. package/scripts/hooks-system/infrastructure/mcp/services/EvidenceService.js +4 -0
  149. package/scripts/hooks-system/infrastructure/mcp/services/McpProtocolHandler.js +2 -0
  150. package/scripts/hooks-system/infrastructure/orchestration/intelligent-audit.js +1 -1
  151. package/scripts/hooks-system/infrastructure/reporting/report-generator.js +4 -0
  152. package/scripts/hooks-system/infrastructure/reporting/severity-tracker.js +2 -0
  153. package/scripts/hooks-system/infrastructure/repositories/CursorTokenRepository.js +4 -0
  154. package/scripts/hooks-system/infrastructure/repositories/FileFindingsRepository.js +2 -0
  155. package/scripts/hooks-system/infrastructure/repositories/datasources/CursorApiDataSource.js +4 -0
  156. package/scripts/hooks-system/infrastructure/repositories/datasources/CursorFileDataSource.js +2 -0
  157. package/scripts/hooks-system/infrastructure/severity/context/context-builder.js +2 -0
  158. package/scripts/hooks-system/infrastructure/severity/policies/gate-policies.js +1 -0
  159. package/scripts/hooks-system/infrastructure/severity/severity-evaluator.js +2 -0
  160. package/scripts/hooks-system/infrastructure/telemetry/TelemetryService.js +2 -0
  161. package/scripts/hooks-system/infrastructure/telemetry/metrics-logger.js +2 -0
  162. package/scripts/hooks-system/infrastructure/utils/token-manager.js +2 -0
  163. package/scripts/hooks-system/infrastructure/validators/detect-commit-language.js +1 -0
  164. package/scripts/hooks-system/infrastructure/watchdog/auto-recovery.js +2 -1
  165. package/scripts/hooks-system/infrastructure/watchdog/health-check.js +2 -1
  166. package/scripts/hooks-system/infrastructure/watchdog/token-monitor.js +3 -1
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ const env = require('../config/env');
2
3
  const fs = require('fs');
3
4
  const path = require('path');
4
5
  const { execSync } = require('child_process');
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ const env = require('../config/env');
2
3
  const fs = require('fs');
3
4
  const path = require('path');
4
5
  const os = require('os');
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ const env = require('../config/env');
2
3
  const fs = require('fs');
3
4
  const path = require('path');
4
5
 
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ const env = require('../config/env');
4
+
3
5
  /**
4
6
  * AST ADAPTER FOR AST-HOOKS LIBRARY
5
7
  *
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ const env = require('../config/env');
3
4
  const ContextDetectionEngine = require('../application/services/ContextDetectionEngine');
4
5
  const AutonomousOrchestrator = require('../application/services/AutonomousOrchestrator');
5
6
  const PlatformDetectionService = require('../application/services/PlatformDetectionService');
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ const env = require('../config/env');
3
4
  const PlaybookRunner = require('../application/services/PlaybookRunner');
4
5
 
5
6
  const runner = new PlaybookRunner();
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ const env = require('../config/env');
3
4
  const fs = require('fs');
4
5
  const path = require('path');
5
6
  const { execSync } = require('child_process');
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ const env = require('../config/env');
3
4
  const fs = require('fs');
4
5
  const path = require('path');
5
6
 
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ const env = require('../config/env');
3
4
  const CompositionRoot = require('../application/CompositionRoot');
4
5
 
5
6
  // Initialize Composition Root
@@ -1,3 +1,5 @@
1
+ const env = require('../../config/env');
2
+
1
3
  class DomainError extends Error {
2
4
  constructor(message, code = null, details = {}) {
3
5
  super(message);
@@ -1,8 +1,10 @@
1
1
  const { ValidationError } = require('../errors');
2
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
2
3
 
3
4
  class AuditAnalyzer {
4
5
  constructor(scorer) {
5
6
  this.scorer = scorer;
7
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
6
8
  }
7
9
 
8
10
  getViolationsBySeverity(findings) {
@@ -1,6 +1,11 @@
1
1
  const AuditResult = require('../entities/AuditResult');
2
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
2
3
 
3
4
  class AuditFilter {
5
+ constructor() {
6
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
7
+ }
8
+
4
9
  filterByPlatform(findings, platform) {
5
10
  return findings.filter(f => f.belongsToPlatform(platform));
6
11
  }
@@ -1,6 +1,11 @@
1
1
  const Finding = require('../entities/Finding');
2
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
2
3
 
3
4
  class AuditResultSerializer {
5
+ constructor() {
6
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
7
+ }
8
+
4
9
  toJSON(auditResult) {
5
10
  return {
6
11
  timestamp: auditResult.timestamp.toISOString(),
@@ -1,4 +1,10 @@
1
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
2
+
1
3
  class AuditScorer {
4
+ constructor() {
5
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
6
+ }
7
+
2
8
  calculateTechnicalDebt(findings) {
3
9
  return findings.reduce((total, finding) => {
4
10
  // Assuming finding.severity is an instance of Severity or finding has access to getDebtHours
@@ -4,12 +4,15 @@
4
4
  * Infrastructure adapter implementing IAstPort.
5
5
  * Wraps the existing AST intelligence modules.
6
6
  */
7
+ const env = require('../../config/env');
7
8
  const path = require('path');
8
9
  const fs = require('fs');
10
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
9
11
 
10
12
  class AstAnalyzerAdapter {
11
13
  constructor(config = {}) {
12
14
  this.repoRoot = config.repoRoot || process.cwd();
15
+ this.auditLogger = new AuditLogger({ repoRoot: this.repoRoot });
13
16
  this.astModulesPath = config.astModulesPath || path.join(__dirname, '../ast');
14
17
 
15
18
  this.ignoredPatterns = [
@@ -3,10 +3,12 @@
3
3
  *
4
4
  * Infrastructure adapter implementing IEvidencePort using file system.
5
5
  */
6
+ const env = require('../../config/env');
6
7
  const fs = require('fs');
7
8
  const path = require('path');
8
9
  const { execSync } = require('child_process');
9
10
  const { ConfigurationError } = require('../../domain/errors');
11
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
10
12
 
11
13
  function resolveUpdateEvidenceScript(repoRoot) {
12
14
  const candidates = [
@@ -1,9 +1,13 @@
1
+ const env = require('../../config/env');
2
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
3
+
1
4
  const GitCommandRunner = require('./git/GitCommandRunner');
2
5
 
3
6
  class GitCliAdapter {
4
7
  constructor(config = {}) {
5
8
  this.repoRoot = config.repoRoot || process.cwd();
6
9
  this.logger = config.logger || console;
10
+ this.auditLogger = new AuditLogger({ repoRoot: this.repoRoot, logger: this.logger });
7
11
  this.protectedBranches = config.protectedBranches || ['main', 'master', 'develop'];
8
12
  this.runner = new GitCommandRunner(this.repoRoot, this.logger);
9
13
  }
@@ -1,3 +1,6 @@
1
+ const env = require('../../config/env');
2
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
3
+
1
4
  const IGitCommandPort = require('../../domain/ports/IGitCommandPort');
2
5
  const GitCommandRunner = require('./git/GitCommandRunner');
3
6
  const GitCommandService = require('./git/GitCommandService');
@@ -7,6 +10,7 @@ class GitCommandAdapter extends IGitCommandPort {
7
10
  super();
8
11
  this.repoRoot = config.repoRoot || process.cwd();
9
12
  this.logger = config.logger || console;
13
+ this.auditLogger = new AuditLogger({ repoRoot: this.repoRoot, logger: this.logger });
10
14
 
11
15
  this.runner = new GitCommandRunner(this.repoRoot, this.logger);
12
16
  this.commandService = new GitCommandService(this.runner);
@@ -1,9 +1,11 @@
1
1
  const { execSync } = require('child_process');
2
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
2
3
 
3
4
  class GitHubCliAdapter {
4
5
  constructor(repoRoot, logger = console, options = {}) {
5
6
  this.repoRoot = repoRoot;
6
7
  this.logger = logger;
8
+ this.auditLogger = new AuditLogger({ repoRoot, logger });
7
9
  this.options = {
8
10
  timeout: options.timeout || 30000,
9
11
  maxRetries: options.maxRetries || 3,
@@ -1,3 +1,6 @@
1
+ const env = require('../../config/env');
2
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
3
+
1
4
  const IGitQueryPort = require('../../domain/ports/IGitQueryPort');
2
5
  const GitCommandRunner = require('./git/GitCommandRunner');
3
6
  const GitQueryService = require('./git/GitQueryService');
@@ -7,6 +10,7 @@ class GitQueryAdapter extends IGitQueryPort {
7
10
  super();
8
11
  this.repoRoot = config.repoRoot || process.cwd();
9
12
  this.logger = config.logger || console;
13
+ this.auditLogger = new AuditLogger({ repoRoot: this.repoRoot, logger: this.logger });
10
14
  this.protectedBranches = config.protectedBranches || ['main', 'master', 'develop'];
11
15
 
12
16
  this.runner = new GitCommandRunner(this.repoRoot, this.logger);
@@ -1,11 +1,13 @@
1
1
 
2
2
  const Finding = require('../../domain/entities/Finding');
3
3
  const { createProject, listSourceFiles } = require('../ast/ast-core');
4
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
4
5
 
5
6
  class LegacyAnalyzerAdapter {
6
7
  constructor(legacyAnalyzerFunction, platform) {
7
8
  this.legacyAnalyzerFunction = legacyAnalyzerFunction;
8
9
  this.platform = platform;
10
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
9
11
  }
10
12
 
11
13
  async analyze(targetPath, options = {}) {
@@ -1,3 +1,6 @@
1
+ const env = require('../../config/env');
2
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
3
+
1
4
  const { execSync } = require('child_process');
2
5
  const fs = require('fs');
3
6
 
@@ -6,6 +9,7 @@ class MacOSNotificationAdapter {
6
9
  this.enabled = config.enabled !== false;
7
10
  this.defaultSound = config.defaultSound || 'Hero';
8
11
  this.defaultTitle = config.defaultTitle || 'Hook-System Guard';
12
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
9
13
  this.terminalNotifierPath = this.resolveTerminalNotifier();
10
14
  this.osascriptPath = '/usr/bin/osascript';
11
15
 
@@ -1,10 +1,12 @@
1
1
  const { execSync } = require('child_process');
2
2
  const { ConfigurationError } = require('../../../domain/errors');
3
+ const AuditLogger = require('../../../application/services/logging/AuditLogger');
3
4
 
4
5
  class GitCommandRunner {
5
6
  constructor(repoRoot, logger = console, options = {}) {
6
7
  this.repoRoot = repoRoot;
7
8
  this.logger = logger;
9
+ this.auditLogger = new AuditLogger({ repoRoot, logger });
8
10
  this.options = {
9
11
  timeout: options.timeout || 30000, // 30s default timeout
10
12
  maxRetries: options.maxRetries || 3,
@@ -1,6 +1,9 @@
1
+ const AuditLogger = require('../../../application/services/logging/AuditLogger');
2
+
1
3
  class GitCommandService {
2
4
  constructor(commandRunner) {
3
5
  this.runner = commandRunner;
6
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
4
7
  }
5
8
 
6
9
  createBranch(branchName) {
@@ -1,6 +1,9 @@
1
+ const AuditLogger = require('../../../application/services/logging/AuditLogger');
2
+
1
3
  class GitQueryService {
2
4
  constructor(commandRunner) {
3
5
  this.runner = commandRunner;
6
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
4
7
  }
5
8
 
6
9
  getCurrentBranch() {
@@ -1,9 +1,11 @@
1
1
 
2
2
  const { AndroidAnalysisOrchestrator } = require('./AndroidAnalysisOrchestrator');
3
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
3
4
 
4
5
  class AndroidASTIntelligentAnalyzer {
5
6
  constructor(findings) {
6
7
  this.findings = findings;
8
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
7
9
  this.orchestrator = new AndroidAnalysisOrchestrator(findings);
8
10
  }
9
11
 
@@ -1,8 +1,10 @@
1
1
  const fs = require('fs');
2
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
2
3
 
3
4
  class AndroidASTParser {
4
5
  constructor(filePath) {
5
6
  this.filePath = filePath;
7
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
6
8
  this.content = '';
7
9
  this.lines = [];
8
10
  this.imports = [];
@@ -1,10 +1,12 @@
1
1
  const { AndroidASTParser } = require('./AndroidASTParser');
2
2
  const { AndroidClassAnalyzer } = require('./AndroidClassAnalyzer');
3
3
  const fs = require('fs');
4
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
4
5
 
5
6
  class AndroidAnalysisOrchestrator {
6
7
  constructor(findings) {
7
8
  this.findings = findings;
9
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
8
10
  this.godClassCandidates = [];
9
11
  this.godClassBaseline = null;
10
12
  }
@@ -1,10 +1,12 @@
1
1
  const fs = require('fs');
2
2
  const path = require('path');
3
3
  const glob = require('glob');
4
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
4
5
 
5
6
  class AndroidArchitectureDetector {
6
7
  constructor(projectRoot) {
7
8
  this.projectRoot = projectRoot;
9
+ this.auditLogger = new AuditLogger({ repoRoot: projectRoot });
8
10
  this.patterns = {
9
11
  featureFirstClean: 0, // Feature-First + DDD + Clean Architecture
10
12
  mvvm: 0,
@@ -230,10 +232,10 @@ class AndroidArchitectureDetector {
230
232
  this.patterns.cleanArchitecture += 10;
231
233
  }
232
234
 
233
- const domainRepos = files.filter(f =>
235
+ const domainRepos = files.filter(f =>
234
236
  f.includes('/domain/') && f.includes('Repository') && fs.readFileSync(path.join(this.projectRoot, f), 'utf-8').includes('interface ')
235
237
  );
236
- const dataRepos = files.filter(f =>
238
+ const dataRepos = files.filter(f =>
237
239
  f.includes('/data/') && f.includes('Repository') && fs.readFileSync(path.join(this.projectRoot, f), 'utf-8').includes('class ')
238
240
  );
239
241
 
@@ -253,14 +255,14 @@ class AndroidArchitectureDetector {
253
255
  detectMVC(files) {
254
256
  files.forEach(file => {
255
257
  const content = this.readFile(file);
256
-
258
+
257
259
  if ((file.includes('Activity.kt') || file.includes('Fragment.kt')) &&
258
- (content.includes('RoomDatabase') || content.includes('SQLiteDatabase'))) {
260
+ (content.includes('RoomDatabase') || content.includes('SQLiteDatabase'))) {
259
261
  this.patterns.mvc += 3;
260
262
  }
261
263
 
262
264
  if ((file.includes('Activity.kt') || file.includes('Fragment.kt')) &&
263
- content.match(/fun\s+(calculate|process|validate|transform)/)) {
265
+ content.match(/fun\s+(calculate|process|validate|transform)/)) {
264
266
  this.patterns.mvc += 2;
265
267
  }
266
268
  });
@@ -1,7 +1,10 @@
1
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
2
+
1
3
  class AndroidClassAnalyzer {
2
4
  constructor(parser, findings, godClassBaseline = null) {
3
5
  this.parser = parser;
4
6
  this.findings = findings;
7
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
5
8
  this.godClassBaseline = godClassBaseline;
6
9
  }
7
10
 
@@ -1,4 +1,5 @@
1
1
  const { SyntaxKind } = require('../../ast-core');
2
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
2
3
 
3
4
  const FORBIDDEN_STRING_LITERALS = [
4
5
  'unknown',
@@ -1,6 +1,7 @@
1
1
 
2
2
  const path = require('path');
3
3
  const { pushFinding, SyntaxKind } = require(path.join(__dirname, '../../ast-core'));
4
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
4
5
 
5
6
  /**
6
7
  * AndroidSOLIDAnalyzer
@@ -12,6 +13,7 @@ const { pushFinding, SyntaxKind } = require(path.join(__dirname, '../../ast-core
12
13
  class AndroidSOLIDAnalyzer {
13
14
  constructor() {
14
15
  this.findings = [];
16
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
15
17
  }
16
18
 
17
19
  /**
@@ -8,10 +8,12 @@
8
8
  const SwiftParser = require('./swift-parser');
9
9
  const fs = require('fs');
10
10
  const path = require('path');
11
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
11
12
 
12
13
  class iOSRules {
13
14
  constructor() {
14
15
  this.parser = null;
16
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
15
17
  try {
16
18
  this.parser = new SwiftParser();
17
19
  } catch (error) {
@@ -8,10 +8,12 @@
8
8
  const { execSync } = require('child_process');
9
9
  const fs = require('fs');
10
10
  const path = require('path');
11
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
11
12
 
12
13
  class KotlinAnalyzer {
13
14
  constructor() {
14
15
  this.findings = [];
16
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
15
17
  }
16
18
 
17
19
  /**
@@ -10,9 +10,11 @@ const fs = require('fs');
10
10
  const path = require('path');
11
11
  const xml2js = require('xml2js');
12
12
  const { ConfigurationError } = require('../../../domain/errors');
13
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
13
14
 
14
15
  class KotlinParser {
15
16
  constructor() {
17
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
16
18
  this.detektPath = '/opt/homebrew/bin/detekt';
17
19
  this.checkAvailability();
18
20
  }
@@ -8,10 +8,12 @@
8
8
  const { execSync } = require('child_process');
9
9
  const fs = require('fs');
10
10
  const path = require('path');
11
+ const AuditLogger = require('../../application/services/logging/AuditLogger');
11
12
 
12
13
  class SwiftAnalyzer {
13
14
  constructor() {
14
15
  this.findings = [];
16
+ this.auditLogger = new AuditLogger({ repoRoot: process.cwd() });
15
17
  }
16
18
 
17
19
  /**
@@ -1,6 +1,7 @@
1
1
  const fs = require('fs');
2
2
  const path = require('path');
3
3
  const glob = require('glob');
4
+ const AuditLogger = require('../../../application/services/logging/AuditLogger');
4
5
 
5
6
  const { FeatureFirstCleanDetector } = require('./detectors/FeatureFirstCleanDetector');
6
7
  const { CleanArchitectureDetector } = require('./detectors/CleanArchitectureDetector');
@@ -12,6 +13,7 @@ const { MVCDetector } = require('./detectors/MVCDetector');
12
13
  class BackendArchitectureDetector {
13
14
  constructor(projectRoot) {
14
15
  this.projectRoot = projectRoot;
16
+ this.auditLogger = new AuditLogger({ repoRoot: projectRoot });
15
17
  this.patterns = {
16
18
  featureFirstClean: 0,
17
19
  cleanArchitecture: 0,
@@ -1,10 +1,12 @@
1
1
  const fs = require('fs');
2
2
  const path = require('path');
3
3
  const env = require('../../../../config/env');
4
+ const AuditLogger = require('../../../../application/services/logging/AuditLogger');
4
5
 
5
6
  class BackendPatternDetector {
6
7
  constructor(projectRoot) {
7
8
  this.projectRoot = projectRoot;
9
+ this.auditLogger = new AuditLogger({ repoRoot: projectRoot });
8
10
  }
9
11
 
10
12
  readFile(relativePath) {
@@ -2,6 +2,7 @@ const BDDRules = require('./rules/BDDRules');
2
2
  const TDDRules = require('./rules/TDDRules');
3
3
  const ImplementationRules = require('./rules/ImplementationRules');
4
4
  const WorkflowRules = require('./rules/WorkflowRules');
5
+ const AuditLogger = require('../../../application/services/logging/AuditLogger');
5
6
 
6
7
  /**
7
8
  * BDDTDDWorkflowRules
@@ -13,6 +14,7 @@ class BDDTDDWorkflowRules {
13
14
  constructor(findings, projectRoot) {
14
15
  this.findings = findings;
15
16
  this.projectRoot = projectRoot;
17
+ this.auditLogger = new AuditLogger({ repoRoot: projectRoot });
16
18
 
17
19
  this.bddRules = new BDDRules(projectRoot);
18
20
  this.tddRules = new TDDRules(projectRoot);
@@ -1,10 +1,12 @@
1
1
  const fs = require('fs');
2
2
  const glob = require('glob');
3
3
  const { pushFileFinding } = require('../../ast-core');
4
+ const AuditLogger = require('../../../application/services/logging/AuditLogger');
4
5
 
5
6
  class BDDRules {
6
7
  constructor(projectRoot) {
7
8
  this.projectRoot = projectRoot;
9
+ this.auditLogger = new AuditLogger({ repoRoot: projectRoot });
8
10
  }
9
11
 
10
12
  analyze(findings) {
@@ -1,10 +1,12 @@
1
1
  const fs = require('fs');
2
2
  const glob = require('glob');
3
3
  const { pushFileFinding } = require('../../ast-core');
4
+ const AuditLogger = require('../../../application/services/logging/AuditLogger');
4
5
 
5
6
  class ImplementationRules {
6
7
  constructor(projectRoot) {
7
8
  this.projectRoot = projectRoot;
9
+ this.auditLogger = new AuditLogger({ repoRoot: projectRoot });
8
10
  }
9
11
 
10
12
  analyze(findings) {
@@ -1,10 +1,12 @@
1
1
  const path = require('path');
2
2
  const glob = require('glob');
3
3
  const { pushFileFinding } = require('../../ast-core');
4
+ const AuditLogger = require('../../../application/services/logging/AuditLogger');
4
5
 
5
6
  class TDDRules {
6
7
  constructor(projectRoot) {
7
8
  this.projectRoot = projectRoot;
9
+ this.auditLogger = new AuditLogger({ repoRoot: projectRoot });
8
10
  }
9
11
 
10
12
  analyze(findings) {
@@ -1,10 +1,12 @@
1
1
  const fs = require('fs');
2
2
  const glob = require('glob');
3
3
  const { pushFileFinding } = require('../../ast-core');
4
+ const AuditLogger = require('../../../application/services/logging/AuditLogger');
4
5
 
5
6
  class WorkflowRules {
6
7
  constructor(projectRoot) {
7
8
  this.projectRoot = projectRoot;
9
+ this.auditLogger = new AuditLogger({ repoRoot: projectRoot });
8
10
  }
9
11
 
10
12
  analyze(findings) {