agentic-qe 2.6.5 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (534) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/README.md +1 -1
  3. package/dist/agents/AccessibilityAllyAgent.d.ts.map +1 -1
  4. package/dist/agents/AccessibilityAllyAgent.js +1 -1
  5. package/dist/agents/AccessibilityAllyAgent.js.map +1 -1
  6. package/dist/agents/ApiContractValidatorAgent.d.ts +83 -56
  7. package/dist/agents/ApiContractValidatorAgent.d.ts.map +1 -1
  8. package/dist/agents/ApiContractValidatorAgent.js +97 -46
  9. package/dist/agents/ApiContractValidatorAgent.js.map +1 -1
  10. package/dist/agents/BaseAgent.d.ts +64 -13
  11. package/dist/agents/BaseAgent.d.ts.map +1 -1
  12. package/dist/agents/BaseAgent.js +5 -4
  13. package/dist/agents/BaseAgent.js.map +1 -1
  14. package/dist/agents/CodeComplexityAnalyzerAgent.d.ts +18 -12
  15. package/dist/agents/CodeComplexityAnalyzerAgent.d.ts.map +1 -1
  16. package/dist/agents/CodeComplexityAnalyzerAgent.js +25 -24
  17. package/dist/agents/CodeComplexityAnalyzerAgent.js.map +1 -1
  18. package/dist/agents/CodeIntelligenceAgent.d.ts.map +1 -1
  19. package/dist/agents/CodeIntelligenceAgent.js.map +1 -1
  20. package/dist/agents/CoverageAnalyzerAgent.d.ts +201 -41
  21. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  22. package/dist/agents/CoverageAnalyzerAgent.js +165 -4
  23. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  24. package/dist/agents/DeploymentReadinessAgent.d.ts +49 -13
  25. package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
  26. package/dist/agents/DeploymentReadinessAgent.js +30 -30
  27. package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
  28. package/dist/agents/FlakyTestHunterAgent.d.ts +56 -18
  29. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  30. package/dist/agents/FlakyTestHunterAgent.js +45 -46
  31. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  32. package/dist/agents/FleetCommanderAgent.d.ts +199 -14
  33. package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
  34. package/dist/agents/FleetCommanderAgent.js +270 -34
  35. package/dist/agents/FleetCommanderAgent.js.map +1 -1
  36. package/dist/agents/LearningAgent.d.ts +29 -7
  37. package/dist/agents/LearningAgent.d.ts.map +1 -1
  38. package/dist/agents/LearningAgent.js +6 -4
  39. package/dist/agents/LearningAgent.js.map +1 -1
  40. package/dist/agents/NeuralAgentExtension.d.ts +46 -2
  41. package/dist/agents/NeuralAgentExtension.d.ts.map +1 -1
  42. package/dist/agents/NeuralAgentExtension.js +13 -11
  43. package/dist/agents/NeuralAgentExtension.js.map +1 -1
  44. package/dist/agents/PerformanceTesterAgent.d.ts +177 -14
  45. package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
  46. package/dist/agents/PerformanceTesterAgent.js +73 -10
  47. package/dist/agents/PerformanceTesterAgent.js.map +1 -1
  48. package/dist/agents/ProductionIntelligenceAgent.d.ts +117 -15
  49. package/dist/agents/ProductionIntelligenceAgent.d.ts.map +1 -1
  50. package/dist/agents/ProductionIntelligenceAgent.js +76 -63
  51. package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
  52. package/dist/agents/QXPartnerAgent.d.ts.map +1 -1
  53. package/dist/agents/QXPartnerAgent.js +40 -30
  54. package/dist/agents/QXPartnerAgent.js.map +1 -1
  55. package/dist/agents/QualityAnalyzerAgent.d.ts +113 -6
  56. package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
  57. package/dist/agents/QualityAnalyzerAgent.js +30 -25
  58. package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
  59. package/dist/agents/QualityGateAgent.d.ts +125 -4
  60. package/dist/agents/QualityGateAgent.d.ts.map +1 -1
  61. package/dist/agents/QualityGateAgent.js +13 -15
  62. package/dist/agents/QualityGateAgent.js.map +1 -1
  63. package/dist/agents/RegressionRiskAnalyzerAgent.d.ts +32 -13
  64. package/dist/agents/RegressionRiskAnalyzerAgent.d.ts.map +1 -1
  65. package/dist/agents/RegressionRiskAnalyzerAgent.js +49 -30
  66. package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
  67. package/dist/agents/RequirementsValidatorAgent.d.ts +6 -13
  68. package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
  69. package/dist/agents/RequirementsValidatorAgent.js +34 -27
  70. package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
  71. package/dist/agents/SecurityScannerAgent.d.ts +86 -14
  72. package/dist/agents/SecurityScannerAgent.d.ts.map +1 -1
  73. package/dist/agents/SecurityScannerAgent.js +53 -38
  74. package/dist/agents/SecurityScannerAgent.js.map +1 -1
  75. package/dist/agents/TestDataArchitectAgent.d.ts +140 -57
  76. package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -1
  77. package/dist/agents/TestDataArchitectAgent.js +93 -54
  78. package/dist/agents/TestDataArchitectAgent.js.map +1 -1
  79. package/dist/agents/TestExecutorAgent.d.ts +43 -18
  80. package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
  81. package/dist/agents/TestExecutorAgent.js +31 -23
  82. package/dist/agents/TestExecutorAgent.js.map +1 -1
  83. package/dist/agents/TestGeneratorAgent.d.ts +71 -23
  84. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  85. package/dist/agents/TestGeneratorAgent.js +116 -58
  86. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  87. package/dist/agents/adapters/LearningEngineAdapter.d.ts.map +1 -1
  88. package/dist/agents/adapters/LearningEngineAdapter.js.map +1 -1
  89. package/dist/agents/adapters/MemoryServiceAdapter.d.ts.map +1 -1
  90. package/dist/agents/adapters/MemoryServiceAdapter.js +10 -6
  91. package/dist/agents/adapters/MemoryServiceAdapter.js.map +1 -1
  92. package/dist/agents/index.d.ts +36 -5
  93. package/dist/agents/index.d.ts.map +1 -1
  94. package/dist/agents/index.js +1 -1
  95. package/dist/agents/index.js.map +1 -1
  96. package/dist/agents/n8n/N8nBaseAgent.d.ts.map +1 -1
  97. package/dist/agents/n8n/N8nBaseAgent.js +2 -1
  98. package/dist/agents/n8n/N8nBaseAgent.js.map +1 -1
  99. package/dist/cli/commands/analyze.d.ts.map +1 -1
  100. package/dist/cli/commands/analyze.js +221 -66
  101. package/dist/cli/commands/analyze.js.map +1 -1
  102. package/dist/cli/commands/fleet/backup.d.ts +4 -4
  103. package/dist/cli/commands/fleet/backup.d.ts.map +1 -1
  104. package/dist/cli/commands/fleet/backup.js +4 -4
  105. package/dist/cli/commands/fleet/backup.js.map +1 -1
  106. package/dist/cli/commands/fleet/health.d.ts +131 -1
  107. package/dist/cli/commands/fleet/health.d.ts.map +1 -1
  108. package/dist/cli/commands/fleet/health.js +204 -138
  109. package/dist/cli/commands/fleet/health.js.map +1 -1
  110. package/dist/cli/commands/fleet/metrics.d.ts.map +1 -1
  111. package/dist/cli/commands/fleet/metrics.js +1 -1
  112. package/dist/cli/commands/fleet/metrics.js.map +1 -1
  113. package/dist/cli/commands/fleet/monitor.d.ts.map +1 -1
  114. package/dist/cli/commands/fleet/monitor.js +2 -1
  115. package/dist/cli/commands/fleet/monitor.js.map +1 -1
  116. package/dist/cli/commands/fleet/restart.d.ts.map +1 -1
  117. package/dist/cli/commands/fleet/restart.js +1 -1
  118. package/dist/cli/commands/fleet/restart.js.map +1 -1
  119. package/dist/cli/commands/fleet/shutdown.d.ts.map +1 -1
  120. package/dist/cli/commands/fleet/shutdown.js.map +1 -1
  121. package/dist/cli/commands/fleet/status.d.ts.map +1 -1
  122. package/dist/cli/commands/fleet/status.js +1 -1
  123. package/dist/cli/commands/fleet/status.js.map +1 -1
  124. package/dist/cli/commands/fleet/topology.d.ts.map +1 -1
  125. package/dist/cli/commands/fleet/topology.js +9 -8
  126. package/dist/cli/commands/fleet/topology.js.map +1 -1
  127. package/dist/cli/commands/fleet.d.ts +8 -0
  128. package/dist/cli/commands/fleet.d.ts.map +1 -1
  129. package/dist/cli/commands/fleet.js +55 -21
  130. package/dist/cli/commands/fleet.js.map +1 -1
  131. package/dist/cli/commands/improve/index.d.ts +2 -2
  132. package/dist/cli/commands/improve/index.d.ts.map +1 -1
  133. package/dist/cli/commands/improve/index.js +76 -38
  134. package/dist/cli/commands/improve/index.js.map +1 -1
  135. package/dist/cli/commands/kg/mincut.d.ts +50 -0
  136. package/dist/cli/commands/kg/mincut.d.ts.map +1 -0
  137. package/dist/cli/commands/kg/mincut.js +372 -0
  138. package/dist/cli/commands/kg/mincut.js.map +1 -0
  139. package/dist/cli/commands/learn/index.d.ts.map +1 -1
  140. package/dist/cli/commands/learn/index.js +57 -19
  141. package/dist/cli/commands/learn/index.js.map +1 -1
  142. package/dist/cli/commands/memory/index.d.ts +23 -4
  143. package/dist/cli/commands/memory/index.d.ts.map +1 -1
  144. package/dist/cli/commands/memory/index.js.map +1 -1
  145. package/dist/cli/commands/memory/stats.js +1 -1
  146. package/dist/cli/commands/memory/stats.js.map +1 -1
  147. package/dist/cli/commands/memory/vacuum.js +3 -3
  148. package/dist/cli/commands/memory/vacuum.js.map +1 -1
  149. package/dist/cli/commands/patterns/extract.d.ts.map +1 -1
  150. package/dist/cli/commands/patterns/extract.js +4 -3
  151. package/dist/cli/commands/patterns/extract.js.map +1 -1
  152. package/dist/cli/commands/patterns/index-new.d.ts +10 -1
  153. package/dist/cli/commands/patterns/index-new.d.ts.map +1 -1
  154. package/dist/cli/commands/patterns/index-new.js.map +1 -1
  155. package/dist/cli/commands/patterns/index.d.ts +2 -2
  156. package/dist/cli/commands/patterns/index.d.ts.map +1 -1
  157. package/dist/cli/commands/patterns/index.js +105 -19
  158. package/dist/cli/commands/patterns/index.js.map +1 -1
  159. package/dist/cli/commands/patterns/list.d.ts.map +1 -1
  160. package/dist/cli/commands/patterns/list.js +2 -1
  161. package/dist/cli/commands/patterns/list.js.map +1 -1
  162. package/dist/cli/commands/patterns/search.d.ts.map +1 -1
  163. package/dist/cli/commands/patterns/search.js +2 -1
  164. package/dist/cli/commands/patterns/search.js.map +1 -1
  165. package/dist/cli/commands/patterns/show.d.ts.map +1 -1
  166. package/dist/cli/commands/patterns/show.js +7 -6
  167. package/dist/cli/commands/patterns/show.js.map +1 -1
  168. package/dist/cli/commands/patterns/stats.d.ts.map +1 -1
  169. package/dist/cli/commands/patterns/stats.js +5 -4
  170. package/dist/cli/commands/patterns/stats.js.map +1 -1
  171. package/dist/cli/commands/quality/baseline.d.ts.map +1 -1
  172. package/dist/cli/commands/quality/baseline.js +2 -2
  173. package/dist/cli/commands/quality/baseline.js.map +1 -1
  174. package/dist/cli/commands/quality/compare.d.ts.map +1 -1
  175. package/dist/cli/commands/quality/compare.js +1 -1
  176. package/dist/cli/commands/quality/compare.js.map +1 -1
  177. package/dist/cli/commands/quality/trends.d.ts.map +1 -1
  178. package/dist/cli/commands/quality/trends.js.map +1 -1
  179. package/dist/cli/commands/routing/index.d.ts.map +1 -1
  180. package/dist/cli/commands/routing/index.js +90 -35
  181. package/dist/cli/commands/routing/index.js.map +1 -1
  182. package/dist/cli/commands/run.d.ts.map +1 -1
  183. package/dist/cli/commands/run.js +59 -33
  184. package/dist/cli/commands/run.js.map +1 -1
  185. package/dist/cli/commands/workflow/cancel.d.ts +14 -7
  186. package/dist/cli/commands/workflow/cancel.d.ts.map +1 -1
  187. package/dist/cli/commands/workflow/cancel.js +23 -6
  188. package/dist/cli/commands/workflow/cancel.js.map +1 -1
  189. package/dist/cli/commands/workflow/list.d.ts.map +1 -1
  190. package/dist/cli/commands/workflow/list.js +46 -9
  191. package/dist/cli/commands/workflow/list.js.map +1 -1
  192. package/dist/cli/commands/workflow/pause.d.ts +1 -1
  193. package/dist/cli/commands/workflow/pause.d.ts.map +1 -1
  194. package/dist/cli/commands/workflow/pause.js +21 -4
  195. package/dist/cli/commands/workflow/pause.js.map +1 -1
  196. package/dist/cli/index.js +91 -0
  197. package/dist/cli/index.js.map +1 -1
  198. package/dist/cli/init/claude-config.js +2 -2
  199. package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.d.ts +148 -0
  200. package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.d.ts.map +1 -0
  201. package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.js +393 -0
  202. package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.js.map +1 -0
  203. package/dist/code-intelligence/analysis/mincut/GraphAdapter.d.ts +169 -0
  204. package/dist/code-intelligence/analysis/mincut/GraphAdapter.d.ts.map +1 -0
  205. package/dist/code-intelligence/analysis/mincut/GraphAdapter.js +335 -0
  206. package/dist/code-intelligence/analysis/mincut/GraphAdapter.js.map +1 -0
  207. package/dist/code-intelligence/analysis/mincut/JsMinCut.d.ts +55 -0
  208. package/dist/code-intelligence/analysis/mincut/JsMinCut.d.ts.map +1 -0
  209. package/dist/code-intelligence/analysis/mincut/JsMinCut.js +265 -0
  210. package/dist/code-intelligence/analysis/mincut/JsMinCut.js.map +1 -0
  211. package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.d.ts +92 -0
  212. package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.d.ts.map +1 -0
  213. package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.js +200 -0
  214. package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.js.map +1 -0
  215. package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.d.ts +157 -0
  216. package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.d.ts.map +1 -0
  217. package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.js +434 -0
  218. package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.js.map +1 -0
  219. package/dist/code-intelligence/analysis/mincut/index.d.ts +12 -0
  220. package/dist/code-intelligence/analysis/mincut/index.d.ts.map +1 -0
  221. package/dist/code-intelligence/analysis/mincut/index.js +20 -0
  222. package/dist/code-intelligence/analysis/mincut/index.js.map +1 -0
  223. package/dist/code-intelligence/analysis/mincut/types.d.ts +145 -0
  224. package/dist/code-intelligence/analysis/mincut/types.d.ts.map +1 -0
  225. package/dist/code-intelligence/analysis/mincut/types.js +16 -0
  226. package/dist/code-intelligence/analysis/mincut/types.js.map +1 -0
  227. package/dist/code-intelligence/chunking/ASTChunker.d.ts +1 -1
  228. package/dist/code-intelligence/chunking/ASTChunker.d.ts.map +1 -1
  229. package/dist/code-intelligence/chunking/ASTChunker.js +4 -4
  230. package/dist/code-intelligence/chunking/ASTChunker.js.map +1 -1
  231. package/dist/code-intelligence/graph/GraphBuilder.d.ts +120 -0
  232. package/dist/code-intelligence/graph/GraphBuilder.d.ts.map +1 -1
  233. package/dist/code-intelligence/graph/GraphBuilder.js +517 -0
  234. package/dist/code-intelligence/graph/GraphBuilder.js.map +1 -1
  235. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts.map +1 -1
  236. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js +3 -3
  237. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js.map +1 -1
  238. package/dist/code-intelligence/parser/{TreeSitterParser.d.ts → WebTreeSitterParser.d.ts} +45 -10
  239. package/dist/code-intelligence/parser/WebTreeSitterParser.d.ts.map +1 -0
  240. package/dist/code-intelligence/parser/{TreeSitterParser.js → WebTreeSitterParser.js} +147 -54
  241. package/dist/code-intelligence/parser/WebTreeSitterParser.js.map +1 -0
  242. package/dist/code-intelligence/parser/extractors/BaseExtractor.d.ts +12 -10
  243. package/dist/code-intelligence/parser/extractors/BaseExtractor.d.ts.map +1 -1
  244. package/dist/code-intelligence/parser/extractors/BaseExtractor.js +7 -3
  245. package/dist/code-intelligence/parser/extractors/BaseExtractor.js.map +1 -1
  246. package/dist/code-intelligence/parser/extractors/GoExtractor.d.ts +7 -5
  247. package/dist/code-intelligence/parser/extractors/GoExtractor.d.ts.map +1 -1
  248. package/dist/code-intelligence/parser/extractors/GoExtractor.js +2 -2
  249. package/dist/code-intelligence/parser/extractors/GoExtractor.js.map +1 -1
  250. package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.d.ts +7 -5
  251. package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.d.ts.map +1 -1
  252. package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.js +2 -2
  253. package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.js.map +1 -1
  254. package/dist/code-intelligence/parser/extractors/PythonExtractor.d.ts +7 -5
  255. package/dist/code-intelligence/parser/extractors/PythonExtractor.d.ts.map +1 -1
  256. package/dist/code-intelligence/parser/extractors/PythonExtractor.js +2 -2
  257. package/dist/code-intelligence/parser/extractors/PythonExtractor.js.map +1 -1
  258. package/dist/code-intelligence/parser/extractors/RustExtractor.d.ts +7 -5
  259. package/dist/code-intelligence/parser/extractors/RustExtractor.d.ts.map +1 -1
  260. package/dist/code-intelligence/parser/extractors/RustExtractor.js +2 -2
  261. package/dist/code-intelligence/parser/extractors/RustExtractor.js.map +1 -1
  262. package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.d.ts +7 -5
  263. package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.d.ts.map +1 -1
  264. package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.js +2 -2
  265. package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.js.map +1 -1
  266. package/dist/code-intelligence/parser/index.d.ts +7 -1
  267. package/dist/code-intelligence/parser/index.d.ts.map +1 -1
  268. package/dist/code-intelligence/parser/index.js +11 -3
  269. package/dist/code-intelligence/parser/index.js.map +1 -1
  270. package/dist/code-intelligence/service/CodeIntelligenceService.d.ts.map +1 -1
  271. package/dist/code-intelligence/service/CodeIntelligenceService.js +7 -5
  272. package/dist/code-intelligence/service/CodeIntelligenceService.js.map +1 -1
  273. package/dist/core/ArtifactWorkflow.d.ts.map +1 -1
  274. package/dist/core/ArtifactWorkflow.js +130 -43
  275. package/dist/core/ArtifactWorkflow.js.map +1 -1
  276. package/dist/core/MemoryManager.d.ts +5 -5
  277. package/dist/core/MemoryManager.d.ts.map +1 -1
  278. package/dist/core/MemoryManager.js +4 -3
  279. package/dist/core/MemoryManager.js.map +1 -1
  280. package/dist/core/PatternDatabaseAdapter.d.ts +1 -1
  281. package/dist/core/PatternDatabaseAdapter.d.ts.map +1 -1
  282. package/dist/core/PatternDatabaseAdapter.js +12 -12
  283. package/dist/core/PatternDatabaseAdapter.js.map +1 -1
  284. package/dist/core/coordination/BlackboardCoordination.d.ts +2 -2
  285. package/dist/core/coordination/BlackboardCoordination.d.ts.map +1 -1
  286. package/dist/core/coordination/ConsensusGating.d.ts.map +1 -1
  287. package/dist/core/coordination/ConsensusGating.js +50 -9
  288. package/dist/core/coordination/ConsensusGating.js.map +1 -1
  289. package/dist/core/coordination/GOAPCoordination.d.ts +1 -1
  290. package/dist/core/coordination/GOAPCoordination.d.ts.map +1 -1
  291. package/dist/core/coordination/GOAPCoordination.js +70 -8
  292. package/dist/core/coordination/GOAPCoordination.js.map +1 -1
  293. package/dist/core/coordination/OODACoordination.d.ts +10 -10
  294. package/dist/core/coordination/OODACoordination.d.ts.map +1 -1
  295. package/dist/core/coordination/OODACoordination.js +48 -9
  296. package/dist/core/coordination/OODACoordination.js.map +1 -1
  297. package/dist/core/hooks/RollbackManager.d.ts +2 -2
  298. package/dist/core/hooks/RollbackManager.d.ts.map +1 -1
  299. package/dist/core/hooks/RollbackManager.js +41 -4
  300. package/dist/core/hooks/RollbackManager.js.map +1 -1
  301. package/dist/core/hooks/VerificationHookManager.d.ts +8 -8
  302. package/dist/core/hooks/VerificationHookManager.d.ts.map +1 -1
  303. package/dist/core/hooks/VerificationHookManager.js +12 -2
  304. package/dist/core/hooks/VerificationHookManager.js.map +1 -1
  305. package/dist/core/hooks/checkers/ConfigurationChecker.d.ts +1 -1
  306. package/dist/core/hooks/checkers/ConfigurationChecker.d.ts.map +1 -1
  307. package/dist/core/hooks/checkers/ConfigurationChecker.js.map +1 -1
  308. package/dist/core/hooks/validators/OutputValidator.d.ts +2 -2
  309. package/dist/core/hooks/validators/OutputValidator.d.ts.map +1 -1
  310. package/dist/core/hooks/validators/QualityValidator.d.ts +1 -1
  311. package/dist/core/hooks/validators/QualityValidator.d.ts.map +1 -1
  312. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  313. package/dist/core/memory/SwarmMemoryManager.d.ts +143 -37
  314. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  315. package/dist/core/memory/SwarmMemoryManager.js +28 -25
  316. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  317. package/dist/core/memory/VersionHistory.d.ts +5 -5
  318. package/dist/core/memory/VersionHistory.d.ts.map +1 -1
  319. package/dist/core/memory/VersionHistory.js +37 -4
  320. package/dist/core/memory/VersionHistory.js.map +1 -1
  321. package/dist/core/neural/NeuralTrainer.d.ts +12 -0
  322. package/dist/core/neural/NeuralTrainer.d.ts.map +1 -1
  323. package/dist/core/neural/NeuralTrainer.js +162 -18
  324. package/dist/core/neural/NeuralTrainer.js.map +1 -1
  325. package/dist/core/optimization/SwarmOptimizer.d.ts.map +1 -1
  326. package/dist/core/optimization/SwarmOptimizer.js +198 -26
  327. package/dist/core/optimization/SwarmOptimizer.js.map +1 -1
  328. package/dist/core/orchestration/WorkflowOrchestrator.d.ts +5 -1
  329. package/dist/core/orchestration/WorkflowOrchestrator.d.ts.map +1 -1
  330. package/dist/core/orchestration/WorkflowOrchestrator.js +58 -12
  331. package/dist/core/orchestration/WorkflowOrchestrator.js.map +1 -1
  332. package/dist/core/orchestration/types.d.ts +8 -8
  333. package/dist/core/orchestration/types.d.ts.map +1 -1
  334. package/dist/core/routing/AdaptiveModelRouter.d.ts +3 -3
  335. package/dist/core/routing/AdaptiveModelRouter.d.ts.map +1 -1
  336. package/dist/core/routing/AdaptiveModelRouter.js.map +1 -1
  337. package/dist/core/routing/CostTracker.d.ts +10 -2
  338. package/dist/core/routing/CostTracker.d.ts.map +1 -1
  339. package/dist/core/routing/CostTracker.js +36 -4
  340. package/dist/core/routing/CostTracker.js.map +1 -1
  341. package/dist/core/routing/FleetManagerIntegration.d.ts +1 -1
  342. package/dist/core/routing/types.d.ts +41 -4
  343. package/dist/core/routing/types.d.ts.map +1 -1
  344. package/dist/core/strategies/DefaultMemoryStrategy.d.ts.map +1 -1
  345. package/dist/core/strategies/DefaultMemoryStrategy.js +33 -1
  346. package/dist/core/strategies/DefaultMemoryStrategy.js.map +1 -1
  347. package/dist/coverage/CriticalPathDetector.d.ts +240 -0
  348. package/dist/coverage/CriticalPathDetector.d.ts.map +1 -0
  349. package/dist/coverage/CriticalPathDetector.js +388 -0
  350. package/dist/coverage/CriticalPathDetector.js.map +1 -0
  351. package/dist/coverage/index.d.ts +13 -0
  352. package/dist/coverage/index.d.ts.map +1 -0
  353. package/dist/coverage/index.js +16 -0
  354. package/dist/coverage/index.js.map +1 -0
  355. package/dist/fleet/topology/SPOFMonitor.d.ts +181 -0
  356. package/dist/fleet/topology/SPOFMonitor.d.ts.map +1 -0
  357. package/dist/fleet/topology/SPOFMonitor.js +286 -0
  358. package/dist/fleet/topology/SPOFMonitor.js.map +1 -0
  359. package/dist/fleet/topology/TopologyMinCutAnalyzer.d.ts +87 -0
  360. package/dist/fleet/topology/TopologyMinCutAnalyzer.d.ts.map +1 -0
  361. package/dist/fleet/topology/TopologyMinCutAnalyzer.js +472 -0
  362. package/dist/fleet/topology/TopologyMinCutAnalyzer.js.map +1 -0
  363. package/dist/fleet/topology/index.d.ts +13 -0
  364. package/dist/fleet/topology/index.d.ts.map +1 -0
  365. package/dist/fleet/topology/index.js +20 -0
  366. package/dist/fleet/topology/index.js.map +1 -0
  367. package/dist/fleet/topology/types.d.ts +139 -0
  368. package/dist/fleet/topology/types.d.ts.map +1 -0
  369. package/dist/fleet/topology/types.js +19 -0
  370. package/dist/fleet/topology/types.js.map +1 -0
  371. package/dist/learning/ImprovementLoop.d.ts +4 -4
  372. package/dist/learning/ImprovementLoop.d.ts.map +1 -1
  373. package/dist/learning/ImprovementLoop.js +108 -9
  374. package/dist/learning/ImprovementLoop.js.map +1 -1
  375. package/dist/learning/LearningEngine.d.ts +2 -2
  376. package/dist/learning/LearningEngine.d.ts.map +1 -1
  377. package/dist/learning/LearningEngine.js +72 -30
  378. package/dist/learning/LearningEngine.js.map +1 -1
  379. package/dist/learning/PerformanceTracker.d.ts.map +1 -1
  380. package/dist/learning/PerformanceTracker.js +40 -4
  381. package/dist/learning/PerformanceTracker.js.map +1 -1
  382. package/dist/learning/TransferLearningManager.d.ts +1 -1
  383. package/dist/learning/TransferLearningManager.d.ts.map +1 -1
  384. package/dist/learning/TransferLearningManager.js +143 -9
  385. package/dist/learning/TransferLearningManager.js.map +1 -1
  386. package/dist/learning/metrics/AlertManager.d.ts.map +1 -1
  387. package/dist/learning/metrics/AlertManager.js +20 -9
  388. package/dist/learning/metrics/AlertManager.js.map +1 -1
  389. package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -1
  390. package/dist/learning/metrics/LearningMetrics.js +21 -21
  391. package/dist/learning/metrics/LearningMetrics.js.map +1 -1
  392. package/dist/learning/metrics/MetricsCollector.d.ts.map +1 -1
  393. package/dist/learning/metrics/MetricsCollector.js +20 -7
  394. package/dist/learning/metrics/MetricsCollector.js.map +1 -1
  395. package/dist/learning/metrics/MetricsStore.js +6 -6
  396. package/dist/learning/metrics/MetricsStore.js.map +1 -1
  397. package/dist/mcp/handlers/base-handler.d.ts +8 -8
  398. package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
  399. package/dist/mcp/handlers/base-handler.js +5 -4
  400. package/dist/mcp/handlers/base-handler.js.map +1 -1
  401. package/dist/mcp/handlers/coordination/event-emit.d.ts +2 -2
  402. package/dist/mcp/handlers/coordination/event-emit.d.ts.map +1 -1
  403. package/dist/mcp/handlers/coordination/event-emit.js.map +1 -1
  404. package/dist/mcp/handlers/coordination/event-subscribe.d.ts +2 -2
  405. package/dist/mcp/handlers/coordination/event-subscribe.d.ts.map +1 -1
  406. package/dist/mcp/handlers/coordination/event-subscribe.js +2 -1
  407. package/dist/mcp/handlers/coordination/event-subscribe.js.map +1 -1
  408. package/dist/mcp/handlers/coordination/task-status.d.ts.map +1 -1
  409. package/dist/mcp/handlers/coordination/task-status.js +40 -18
  410. package/dist/mcp/handlers/coordination/task-status.js.map +1 -1
  411. package/dist/mcp/handlers/coordination/workflow-checkpoint.d.ts +5 -5
  412. package/dist/mcp/handlers/coordination/workflow-checkpoint.d.ts.map +1 -1
  413. package/dist/mcp/handlers/coordination/workflow-checkpoint.js +64 -16
  414. package/dist/mcp/handlers/coordination/workflow-checkpoint.js.map +1 -1
  415. package/dist/mcp/handlers/coordination/workflow-create.d.ts +3 -3
  416. package/dist/mcp/handlers/coordination/workflow-create.d.ts.map +1 -1
  417. package/dist/mcp/handlers/coordination/workflow-execute.d.ts +3 -3
  418. package/dist/mcp/handlers/coordination/workflow-execute.d.ts.map +1 -1
  419. package/dist/mcp/handlers/coordination/workflow-execute.js +2 -2
  420. package/dist/mcp/handlers/coordination/workflow-execute.js.map +1 -1
  421. package/dist/mcp/handlers/coordination/workflow-resume.d.ts +2 -2
  422. package/dist/mcp/handlers/coordination/workflow-resume.d.ts.map +1 -1
  423. package/dist/mcp/handlers/coordination/workflow-resume.js +26 -6
  424. package/dist/mcp/handlers/coordination/workflow-resume.js.map +1 -1
  425. package/dist/mcp/handlers/learning/learning-query.d.ts.map +1 -1
  426. package/dist/mcp/handlers/learning/learning-query.js +1 -1
  427. package/dist/mcp/handlers/learning/learning-query.js.map +1 -1
  428. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts +5 -4
  429. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
  430. package/dist/mcp/handlers/phase2/Phase2Tools.js +6 -4
  431. package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
  432. package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts +247 -31
  433. package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts.map +1 -1
  434. package/dist/mcp/handlers/phase3/Phase3DomainTools.js +3 -3
  435. package/dist/mcp/handlers/phase3/Phase3DomainTools.js.map +1 -1
  436. package/dist/mcp/handlers/task-orchestrate.d.ts +3 -3
  437. package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
  438. package/dist/mcp/handlers/task-orchestrate.js +3 -2
  439. package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
  440. package/dist/mcp/handlers/test/generate-integration-tests.d.ts +15 -3
  441. package/dist/mcp/handlers/test/generate-integration-tests.d.ts.map +1 -1
  442. package/dist/mcp/handlers/test/generate-integration-tests.js +5 -5
  443. package/dist/mcp/handlers/test/generate-integration-tests.js.map +1 -1
  444. package/dist/mcp/handlers/test/generate-unit-tests.js.map +1 -1
  445. package/dist/mcp/handlers/test/test-coverage-detailed.d.ts.map +1 -1
  446. package/dist/mcp/handlers/test/test-coverage-detailed.js +1 -1
  447. package/dist/mcp/handlers/test/test-coverage-detailed.js.map +1 -1
  448. package/dist/mcp/handlers/test/test-execute-parallel.d.ts +34 -3
  449. package/dist/mcp/handlers/test/test-execute-parallel.d.ts.map +1 -1
  450. package/dist/mcp/handlers/test/test-execute-parallel.js +128 -11
  451. package/dist/mcp/handlers/test/test-execute-parallel.js.map +1 -1
  452. package/dist/mcp/handlers/test/test-optimize-sublinear.d.ts +8 -1
  453. package/dist/mcp/handlers/test/test-optimize-sublinear.d.ts.map +1 -1
  454. package/dist/mcp/handlers/test/test-optimize-sublinear.js +1 -1
  455. package/dist/mcp/handlers/test/test-optimize-sublinear.js.map +1 -1
  456. package/dist/mcp/handlers/test/test-report-comprehensive.d.ts +14 -2
  457. package/dist/mcp/handlers/test/test-report-comprehensive.d.ts.map +1 -1
  458. package/dist/mcp/handlers/test/test-report-comprehensive.js.map +1 -1
  459. package/dist/mcp/server-instructions.d.ts +2 -2
  460. package/dist/mcp/server-instructions.d.ts.map +1 -1
  461. package/dist/mcp/server-instructions.js +2 -2
  462. package/dist/mcp/server.d.ts +1 -1
  463. package/dist/mcp/server.d.ts.map +1 -1
  464. package/dist/mcp/server.js +11 -10
  465. package/dist/mcp/server.js.map +1 -1
  466. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts +2 -6
  467. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts.map +1 -1
  468. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.js.map +1 -1
  469. package/dist/reasoning/CodeSignatureGenerator.d.ts +37 -1
  470. package/dist/reasoning/CodeSignatureGenerator.d.ts.map +1 -1
  471. package/dist/reasoning/CodeSignatureGenerator.js +113 -53
  472. package/dist/reasoning/CodeSignatureGenerator.js.map +1 -1
  473. package/dist/reasoning/PatternExtractor.d.ts +91 -10
  474. package/dist/reasoning/PatternExtractor.d.ts.map +1 -1
  475. package/dist/reasoning/PatternExtractor.js +104 -26
  476. package/dist/reasoning/PatternExtractor.js.map +1 -1
  477. package/dist/test/partition/MinCutPartitioner.d.ts +97 -0
  478. package/dist/test/partition/MinCutPartitioner.d.ts.map +1 -0
  479. package/dist/test/partition/MinCutPartitioner.js +459 -0
  480. package/dist/test/partition/MinCutPartitioner.js.map +1 -0
  481. package/dist/test/partition/RealTestExecutor.d.ts +86 -0
  482. package/dist/test/partition/RealTestExecutor.d.ts.map +1 -0
  483. package/dist/test/partition/RealTestExecutor.js +279 -0
  484. package/dist/test/partition/RealTestExecutor.js.map +1 -0
  485. package/dist/test/partition/TestDependencyAnalyzer.d.ts +75 -0
  486. package/dist/test/partition/TestDependencyAnalyzer.d.ts.map +1 -0
  487. package/dist/test/partition/TestDependencyAnalyzer.js +297 -0
  488. package/dist/test/partition/TestDependencyAnalyzer.js.map +1 -0
  489. package/dist/test/partition/index.d.ts +10 -0
  490. package/dist/test/partition/index.d.ts.map +1 -0
  491. package/dist/test/partition/index.js +26 -0
  492. package/dist/test/partition/index.js.map +1 -0
  493. package/dist/test/partition/types.d.ts +120 -0
  494. package/dist/test/partition/types.d.ts.map +1 -0
  495. package/dist/test/partition/types.js +21 -0
  496. package/dist/test/partition/types.js.map +1 -0
  497. package/dist/types/hook.types.d.ts +628 -70
  498. package/dist/types/hook.types.d.ts.map +1 -1
  499. package/dist/utils/Config.d.ts +1 -1
  500. package/dist/utils/Config.d.ts.map +1 -1
  501. package/dist/utils/Database.d.ts +187 -44
  502. package/dist/utils/Database.d.ts.map +1 -1
  503. package/dist/utils/Database.js +24 -15
  504. package/dist/utils/Database.js.map +1 -1
  505. package/dist/utils/FakerDataGenerator.d.ts +28 -4
  506. package/dist/utils/FakerDataGenerator.d.ts.map +1 -1
  507. package/dist/utils/FakerDataGenerator.js +2 -2
  508. package/dist/utils/FakerDataGenerator.js.map +1 -1
  509. package/dist/utils/Logger.d.ts +6 -6
  510. package/dist/utils/Logger.d.ts.map +1 -1
  511. package/dist/utils/Logger.js +5 -5
  512. package/dist/utils/Logger.js.map +1 -1
  513. package/dist/utils/SecureValidation.d.ts +4 -4
  514. package/dist/utils/SecureValidation.d.ts.map +1 -1
  515. package/dist/utils/SecureValidation.js.map +1 -1
  516. package/dist/utils/SeededRandom.d.ts +297 -0
  517. package/dist/utils/SeededRandom.d.ts.map +1 -0
  518. package/dist/utils/SeededRandom.js +389 -0
  519. package/dist/utils/SeededRandom.js.map +1 -0
  520. package/dist/utils/TestFrameworkExecutor.d.ts.map +1 -1
  521. package/dist/utils/TestFrameworkExecutor.js +3 -3
  522. package/dist/utils/TestFrameworkExecutor.js.map +1 -1
  523. package/dist/utils/batch-operations.d.ts +2 -2
  524. package/dist/utils/batch-operations.d.ts.map +1 -1
  525. package/dist/utils/batch-operations.js.map +1 -1
  526. package/dist/utils/filtering.d.ts +1 -1
  527. package/dist/utils/filtering.d.ts.map +1 -1
  528. package/dist/utils/index.d.ts +1 -0
  529. package/dist/utils/index.d.ts.map +1 -1
  530. package/dist/utils/index.js +5 -1
  531. package/dist/utils/index.js.map +1 -1
  532. package/package.json +4 -7
  533. package/dist/code-intelligence/parser/TreeSitterParser.d.ts.map +0 -1
  534. package/dist/code-intelligence/parser/TreeSitterParser.js.map +0 -1
@@ -0,0 +1,434 @@
1
+ "use strict";
2
+ /**
3
+ * Module Coupling Analyzer
4
+ *
5
+ * High-level analyzer for module coupling that provides actionable insights
6
+ * for code quality improvement. Uses MinCut analysis to identify optimal
7
+ * module boundaries and coupling reduction points.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const graph = graphBuilder.exportGraph();
12
+ * const analyzer = new ModuleCouplingAnalyzer(graph, {
13
+ * moduleGrouping: 'directory',
14
+ * minCouplingThreshold: 0.1
15
+ * });
16
+ *
17
+ * // Analyze coupling between two modules
18
+ * const result = await analyzer.analyzeCoupling('src/auth', 'src/user');
19
+ * console.log('Coupling strength:', result.couplingStrength);
20
+ * console.log('Recommendations:', result.recommendations);
21
+ *
22
+ * // Find all highly coupled module pairs
23
+ * const coupled = await analyzer.findHighlyCoupledModules(0.7);
24
+ * ```
25
+ */
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.ModuleCouplingAnalyzer = void 0;
28
+ const MinCutAnalyzer_js_1 = require("./MinCutAnalyzer.js");
29
+ const GraphAdapter_js_1 = require("./GraphAdapter.js");
30
+ const Logger_js_1 = require("../../../utils/Logger.js");
31
+ const logger = Logger_js_1.Logger.getInstance();
32
+ /**
33
+ * ModuleCouplingAnalyzer - High-level analyzer for module coupling
34
+ *
35
+ * Provides actionable insights about module coupling and recommendations
36
+ * for improving code quality through better module boundaries.
37
+ */
38
+ class ModuleCouplingAnalyzer {
39
+ /**
40
+ * Create a new ModuleCouplingAnalyzer
41
+ *
42
+ * @param graph - Code graph to analyze (from GraphBuilder.exportGraph())
43
+ * @param options - Analysis options
44
+ */
45
+ constructor(graph, options = {}) {
46
+ this.graph = graph;
47
+ this.analyzer = new MinCutAnalyzer_js_1.MinCutAnalyzer(options.minCutConfig);
48
+ this.options = {
49
+ minCutConfig: options.minCutConfig || {},
50
+ moduleGrouping: options.moduleGrouping || 'directory',
51
+ customModuleExtractor: options.customModuleExtractor || this.defaultModuleExtractor.bind(this),
52
+ minCouplingThreshold: options.minCouplingThreshold || 0.1,
53
+ };
54
+ logger.info('ModuleCouplingAnalyzer initialized', {
55
+ nodeCount: graph.nodes.size,
56
+ edgeCount: graph.edges.size,
57
+ moduleGrouping: this.options.moduleGrouping,
58
+ });
59
+ }
60
+ /**
61
+ * Analyze coupling between two specific modules
62
+ *
63
+ * @param module1Path - Path to first module
64
+ * @param module2Path - Path to second module
65
+ * @returns Promise resolving to coupling analysis result
66
+ *
67
+ * @example
68
+ * ```typescript
69
+ * const result = await analyzer.analyzeCoupling('src/auth', 'src/user');
70
+ * if (result.couplingStrength > 0.7) {
71
+ * console.log('High coupling detected!');
72
+ * console.log('Recommendations:', result.recommendations);
73
+ * }
74
+ * ```
75
+ */
76
+ async analyzeCoupling(module1Path, module2Path) {
77
+ logger.debug('Analyzing coupling', { module1Path, module2Path });
78
+ // 1. Extract nodes for both modules
79
+ const module1Nodes = this.getModuleNodes(module1Path);
80
+ const module2Nodes = this.getModuleNodes(module2Path);
81
+ if (module1Nodes.length === 0 || module2Nodes.length === 0) {
82
+ logger.warn('One or both modules have no nodes', {
83
+ module1Count: module1Nodes.length,
84
+ module2Count: module2Nodes.length,
85
+ });
86
+ return {
87
+ module1: module1Path,
88
+ module2: module2Path,
89
+ couplingStrength: 0,
90
+ sharedDependencies: [],
91
+ circularDependency: false,
92
+ cutEdges: [],
93
+ recommendations: ['One or both modules not found in the code graph'],
94
+ };
95
+ }
96
+ // 2. Build subgraph containing only these modules
97
+ const subgraph = this.extractModuleSubgraph(module1Nodes, module2Nodes);
98
+ // 3. Run MinCut analysis
99
+ const minCutInput = GraphAdapter_js_1.GraphAdapter.toMinCutFormat(subgraph, {
100
+ normalizeWeights: true,
101
+ directed: false,
102
+ });
103
+ let result;
104
+ try {
105
+ result = await this.analyzer.computeMinCut(minCutInput);
106
+ }
107
+ catch (error) {
108
+ logger.error('MinCut computation failed', { error });
109
+ return {
110
+ module1: module1Path,
111
+ module2: module2Path,
112
+ couplingStrength: 0,
113
+ sharedDependencies: [],
114
+ circularDependency: false,
115
+ cutEdges: [],
116
+ recommendations: ['Failed to compute minimum cut - graph may be too large or disconnected'],
117
+ };
118
+ }
119
+ // 4. Calculate coupling strength
120
+ const couplingStrength = this.calculateCouplingStrength(result, subgraph);
121
+ // 5. Check for circular dependency
122
+ const circular = this.hasCircularDependency(module1Nodes, module2Nodes);
123
+ // 6. Find shared dependencies
124
+ const shared = this.findSharedDependencies(module1Nodes, module2Nodes);
125
+ // 7. Generate recommendations
126
+ const recommendations = this.generateRecommendations(couplingStrength, circular, result.cutEdges);
127
+ logger.debug('Coupling analysis complete', {
128
+ module1Path,
129
+ module2Path,
130
+ couplingStrength,
131
+ circularDependency: circular,
132
+ });
133
+ return {
134
+ module1: module1Path,
135
+ module2: module2Path,
136
+ couplingStrength,
137
+ sharedDependencies: shared,
138
+ circularDependency: circular,
139
+ cutEdges: result.cutEdges,
140
+ recommendations,
141
+ };
142
+ }
143
+ /**
144
+ * Find all highly coupled module pairs
145
+ *
146
+ * @param threshold - Minimum coupling strength to include (0-1, default 0.7)
147
+ * @returns Promise resolving to array of coupling results, sorted by strength
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * const coupled = await analyzer.findHighlyCoupledModules(0.7);
152
+ * for (const pair of coupled) {
153
+ * console.log(`${pair.module1} <-> ${pair.module2}: ${pair.couplingStrength}`);
154
+ * }
155
+ * ```
156
+ */
157
+ async findHighlyCoupledModules(threshold = 0.7) {
158
+ const modules = this.getUniqueModules();
159
+ const results = [];
160
+ logger.info('Finding highly coupled modules', {
161
+ moduleCount: modules.length,
162
+ threshold,
163
+ });
164
+ // Analyze all module pairs
165
+ for (let i = 0; i < modules.length; i++) {
166
+ for (let j = i + 1; j < modules.length; j++) {
167
+ const result = await this.analyzeCoupling(modules[i], modules[j]);
168
+ // Only include if above minimum threshold AND above requested threshold
169
+ if (result.couplingStrength >= this.options.minCouplingThreshold &&
170
+ result.couplingStrength >= threshold) {
171
+ results.push(result);
172
+ }
173
+ }
174
+ }
175
+ // Sort by coupling strength (highest first)
176
+ results.sort((a, b) => b.couplingStrength - a.couplingStrength);
177
+ logger.info('Found highly coupled modules', { count: results.length });
178
+ return results;
179
+ }
180
+ /**
181
+ * Get a coupling summary for the entire codebase
182
+ *
183
+ * @returns Promise resolving to overall coupling statistics and recommendations
184
+ *
185
+ * @example
186
+ * ```typescript
187
+ * const overview = await analyzer.getCouplingOverview();
188
+ * console.log('Average coupling:', overview.averageCoupling);
189
+ * console.log('Recommendations:', overview.recommendations);
190
+ * ```
191
+ */
192
+ async getCouplingOverview() {
193
+ logger.info('Computing coupling overview');
194
+ // Analyze all module pairs (no threshold filter)
195
+ const allResults = await this.findHighlyCoupledModules(0);
196
+ if (allResults.length === 0) {
197
+ return {
198
+ averageCoupling: 0,
199
+ maxCoupling: 0,
200
+ highlyCoupledPairs: 0,
201
+ circularDependencies: 0,
202
+ recommendations: ['No module coupling found - graph may be disconnected or too small'],
203
+ };
204
+ }
205
+ const average = allResults.reduce((sum, r) => sum + r.couplingStrength, 0) / allResults.length;
206
+ const max = Math.max(...allResults.map(r => r.couplingStrength));
207
+ const highlyPaired = allResults.filter(r => r.couplingStrength > 0.7).length;
208
+ const circular = allResults.filter(r => r.circularDependency).length;
209
+ const recommendations = [];
210
+ if (average > 0.5) {
211
+ recommendations.push('Consider breaking up large modules into smaller, focused units');
212
+ }
213
+ if (circular > 0) {
214
+ recommendations.push(`Found ${circular} circular dependencies - consider introducing abstraction layers`);
215
+ }
216
+ if (highlyPaired > 0) {
217
+ recommendations.push(`Found ${highlyPaired} highly coupled module pairs - review for potential merging or refactoring`);
218
+ }
219
+ if (average < 0.3 && highlyPaired === 0) {
220
+ recommendations.push('Module coupling is low - good separation of concerns');
221
+ }
222
+ logger.info('Coupling overview complete', {
223
+ averageCoupling: average,
224
+ maxCoupling: max,
225
+ highlyCoupledPairs: highlyPaired,
226
+ circularDependencies: circular,
227
+ });
228
+ return {
229
+ averageCoupling: average,
230
+ maxCoupling: max,
231
+ highlyCoupledPairs: highlyPaired,
232
+ circularDependencies: circular,
233
+ recommendations,
234
+ };
235
+ }
236
+ /**
237
+ * Get all nodes belonging to a module
238
+ */
239
+ getModuleNodes(modulePath) {
240
+ const nodes = [];
241
+ for (const node of this.graph.nodes.values()) {
242
+ const nodeModule = this.extractModulePath(node.filePath);
243
+ if (nodeModule === modulePath) {
244
+ nodes.push(node);
245
+ }
246
+ }
247
+ return nodes;
248
+ }
249
+ /**
250
+ * Extract module subgraph containing only specified nodes
251
+ */
252
+ extractModuleSubgraph(nodes1, nodes2) {
253
+ const allNodes = [...nodes1, ...nodes2];
254
+ const nodeIdSet = new Set(allNodes.map(n => n.id));
255
+ // Filter edges to only those connecting nodes in the subgraph
256
+ const edges = [];
257
+ for (const edge of this.graph.edges.values()) {
258
+ if (nodeIdSet.has(edge.source) && nodeIdSet.has(edge.target)) {
259
+ edges.push(edge);
260
+ }
261
+ }
262
+ return { nodes: allNodes, edges };
263
+ }
264
+ /**
265
+ * Calculate coupling strength from MinCut result
266
+ *
267
+ * Coupling strength is calculated as:
268
+ * - If cutValue is 0: coupling = 0 (no connection)
269
+ * - Otherwise: coupling = normalized based on cut edges and graph structure
270
+ */
271
+ calculateCouplingStrength(result, graph) {
272
+ if (result.cutValue === 0 || graph.edges.length === 0) {
273
+ return 0;
274
+ }
275
+ // Calculate total possible weight (all edges)
276
+ const totalWeight = graph.edges.reduce((sum, e) => sum + e.weight, 0);
277
+ if (totalWeight === 0) {
278
+ return 0;
279
+ }
280
+ // Coupling strength is the ratio of cut value to total weight
281
+ // Cut edges represent the coupling between modules
282
+ const rawStrength = result.cutValue / totalWeight;
283
+ // Cap at 1.0 and ensure it's in [0, 1] range
284
+ return Math.min(1.0, Math.max(0, rawStrength));
285
+ }
286
+ /**
287
+ * Check if there's a circular dependency between module nodes
288
+ */
289
+ hasCircularDependency(nodes1, nodes2) {
290
+ const nodeIds1 = new Set(nodes1.map(n => n.id));
291
+ const nodeIds2 = new Set(nodes2.map(n => n.id));
292
+ // Check if there are edges in both directions
293
+ let hasForward = false;
294
+ let hasBackward = false;
295
+ for (const edge of this.graph.edges.values()) {
296
+ // Forward: module1 -> module2
297
+ if (nodeIds1.has(edge.source) && nodeIds2.has(edge.target)) {
298
+ hasForward = true;
299
+ }
300
+ // Backward: module2 -> module1
301
+ if (nodeIds2.has(edge.source) && nodeIds1.has(edge.target)) {
302
+ hasBackward = true;
303
+ }
304
+ if (hasForward && hasBackward) {
305
+ return true;
306
+ }
307
+ }
308
+ return false;
309
+ }
310
+ /**
311
+ * Find dependencies shared by both modules
312
+ */
313
+ findSharedDependencies(nodes1, nodes2) {
314
+ const nodeIds1 = new Set(nodes1.map(n => n.id));
315
+ const nodeIds2 = new Set(nodes2.map(n => n.id));
316
+ // Find external dependencies for each module
317
+ const deps1 = new Set();
318
+ const deps2 = new Set();
319
+ for (const edge of this.graph.edges.values()) {
320
+ // Dependencies of module 1 (exclude internal and module 2)
321
+ if (nodeIds1.has(edge.source) &&
322
+ !nodeIds1.has(edge.target) &&
323
+ !nodeIds2.has(edge.target)) {
324
+ deps1.add(edge.target);
325
+ }
326
+ // Dependencies of module 2 (exclude internal and module 1)
327
+ if (nodeIds2.has(edge.source) &&
328
+ !nodeIds2.has(edge.target) &&
329
+ !nodeIds1.has(edge.target)) {
330
+ deps2.add(edge.target);
331
+ }
332
+ }
333
+ // Find intersection
334
+ const shared = [];
335
+ for (const dep of deps1) {
336
+ if (deps2.has(dep)) {
337
+ shared.push(dep);
338
+ }
339
+ }
340
+ return shared;
341
+ }
342
+ /**
343
+ * Generate actionable recommendations based on coupling analysis
344
+ */
345
+ generateRecommendations(strength, circular, edges) {
346
+ const recommendations = [];
347
+ // Recommendations based on coupling strength
348
+ if (strength > 0.8) {
349
+ recommendations.push('Very high coupling detected - strongly consider merging these modules');
350
+ recommendations.push('If merging is not appropriate, extract shared functionality to a separate module');
351
+ }
352
+ else if (strength > 0.6) {
353
+ recommendations.push('High coupling detected - review for potential refactoring');
354
+ recommendations.push('Consider extracting shared functionality to reduce interdependence');
355
+ }
356
+ else if (strength > 0.4) {
357
+ recommendations.push('Moderate coupling - acceptable for closely related modules');
358
+ recommendations.push('Monitor for further increases in coupling');
359
+ }
360
+ else if (strength < 0.2) {
361
+ recommendations.push('Low coupling - modules are well-isolated');
362
+ recommendations.push('No immediate action needed');
363
+ }
364
+ // Recommendations for circular dependencies
365
+ if (circular) {
366
+ recommendations.push('⚠️ Circular dependency detected - this should be resolved');
367
+ recommendations.push('Break the cycle by:');
368
+ recommendations.push(' 1. Introducing an interface/abstraction layer');
369
+ recommendations.push(' 2. Moving shared code to a third module');
370
+ recommendations.push(' 3. Using dependency injection');
371
+ recommendations.push(' 4. Applying the Dependency Inversion Principle');
372
+ }
373
+ // Recommendations for specific edges to break
374
+ if (edges.length > 0 && edges.length <= 5) {
375
+ recommendations.push(`Consider breaking these ${edges.length} key dependencies:`);
376
+ for (const edge of edges.slice(0, 5)) {
377
+ recommendations.push(` - ${edge.source} -> ${edge.target}`);
378
+ }
379
+ }
380
+ else if (edges.length > 5) {
381
+ recommendations.push(`Many dependencies found (${edges.length} total)`);
382
+ recommendations.push('Review the top dependencies and extract common patterns');
383
+ }
384
+ return recommendations;
385
+ }
386
+ /**
387
+ * Get unique module identifiers from the graph
388
+ */
389
+ getUniqueModules() {
390
+ const modules = new Set();
391
+ for (const node of this.graph.nodes.values()) {
392
+ const modulePath = this.extractModulePath(node.filePath);
393
+ modules.add(modulePath);
394
+ }
395
+ return Array.from(modules).sort();
396
+ }
397
+ /**
398
+ * Extract module path from file path based on grouping strategy
399
+ */
400
+ extractModulePath(filePath) {
401
+ if (this.options.moduleGrouping === 'custom') {
402
+ return this.options.customModuleExtractor(filePath);
403
+ }
404
+ if (this.options.moduleGrouping === 'file') {
405
+ return filePath;
406
+ }
407
+ // 'directory' mode - extract directory path
408
+ return this.defaultModuleExtractor(filePath);
409
+ }
410
+ /**
411
+ * Default module extractor - extracts directory path
412
+ */
413
+ defaultModuleExtractor(filePath) {
414
+ const parts = filePath.split('/');
415
+ // Remove filename
416
+ parts.pop();
417
+ // Return directory path, or filename if no directory
418
+ return parts.length > 0 ? parts.join('/') : filePath;
419
+ }
420
+ /**
421
+ * Get current analysis options
422
+ */
423
+ getOptions() {
424
+ return { ...this.options };
425
+ }
426
+ /**
427
+ * Get the underlying graph
428
+ */
429
+ getGraph() {
430
+ return this.graph;
431
+ }
432
+ }
433
+ exports.ModuleCouplingAnalyzer = ModuleCouplingAnalyzer;
434
+ //# sourceMappingURL=ModuleCouplingAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleCouplingAnalyzer.js","sourceRoot":"","sources":["../../../../src/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * MinCut Analysis Module
3
+ *
4
+ * Provides minimum cut analysis for code dependency graphs.
5
+ * Used to identify optimal module boundaries and coupling reduction points.
6
+ */
7
+ export { GraphAdapter, GraphAdapterOptions } from './GraphAdapter.js';
8
+ export { MinCutAnalyzer } from './MinCutAnalyzer.js';
9
+ export { CircularDependencyDetector } from './CircularDependencyDetector.js';
10
+ export { ModuleCouplingAnalyzer, ModuleCouplingOptions } from './ModuleCouplingAnalyzer.js';
11
+ export { MinCutGraphInput, MinCutResult, MinCutConfig, DEFAULT_MINCUT_CONFIG, CutEdge, CircularDependencyResult, BreakPoint, ModuleCouplingResult, } from './types.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/code-intelligence/analysis/mincut/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,OAAO,EACP,wBAAwB,EACxB,UAAU,EACV,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ /**
3
+ * MinCut Analysis Module
4
+ *
5
+ * Provides minimum cut analysis for code dependency graphs.
6
+ * Used to identify optimal module boundaries and coupling reduction points.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DEFAULT_MINCUT_CONFIG = exports.ModuleCouplingAnalyzer = exports.CircularDependencyDetector = exports.MinCutAnalyzer = exports.GraphAdapter = void 0;
10
+ var GraphAdapter_js_1 = require("./GraphAdapter.js");
11
+ Object.defineProperty(exports, "GraphAdapter", { enumerable: true, get: function () { return GraphAdapter_js_1.GraphAdapter; } });
12
+ var MinCutAnalyzer_js_1 = require("./MinCutAnalyzer.js");
13
+ Object.defineProperty(exports, "MinCutAnalyzer", { enumerable: true, get: function () { return MinCutAnalyzer_js_1.MinCutAnalyzer; } });
14
+ var CircularDependencyDetector_js_1 = require("./CircularDependencyDetector.js");
15
+ Object.defineProperty(exports, "CircularDependencyDetector", { enumerable: true, get: function () { return CircularDependencyDetector_js_1.CircularDependencyDetector; } });
16
+ var ModuleCouplingAnalyzer_js_1 = require("./ModuleCouplingAnalyzer.js");
17
+ Object.defineProperty(exports, "ModuleCouplingAnalyzer", { enumerable: true, get: function () { return ModuleCouplingAnalyzer_js_1.ModuleCouplingAnalyzer; } });
18
+ var types_js_1 = require("./types.js");
19
+ Object.defineProperty(exports, "DEFAULT_MINCUT_CONFIG", { enumerable: true, get: function () { return types_js_1.DEFAULT_MINCUT_CONFIG; } });
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/code-intelligence/analysis/mincut/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,qDAAsE;AAA7D,+GAAA,YAAY,OAAA;AACrB,yDAAqD;AAA5C,mHAAA,cAAc,OAAA;AACvB,iFAA6E;AAApE,2IAAA,0BAA0B,OAAA;AACnC,yEAA4F;AAAnF,mIAAA,sBAAsB,OAAA;AAC/B,uCASoB;AALlB,iHAAA,qBAAqB,OAAA"}
@@ -0,0 +1,145 @@
1
+ import { EdgeType } from '../../graph/types.js';
2
+ /**
3
+ * Result of a minimum cut computation
4
+ */
5
+ export interface MinCutResult {
6
+ /** The value (total weight) of the minimum cut */
7
+ cutValue: number;
8
+ /** Node IDs in the first partition */
9
+ partition1: string[];
10
+ /** Node IDs in the second partition */
11
+ partition2: string[];
12
+ /** Edges that were cut to separate the partitions */
13
+ cutEdges: CutEdge[];
14
+ /** Algorithm used for computation (currently only stoer-wagner is implemented) */
15
+ algorithmUsed: 'stoer-wagner';
16
+ /** Time taken to compute the cut in milliseconds */
17
+ computationTimeMs: number;
18
+ }
19
+ /**
20
+ * An edge that crosses the minimum cut
21
+ */
22
+ export interface CutEdge {
23
+ /** Source node ID */
24
+ source: string;
25
+ /** Target node ID */
26
+ target: string;
27
+ /** Edge weight */
28
+ weight: number;
29
+ /** Optional edge type from the knowledge graph */
30
+ edgeType?: EdgeType;
31
+ }
32
+ /**
33
+ * Input graph format for MinCut computation
34
+ */
35
+ export interface MinCutGraphInput {
36
+ /** Graph nodes */
37
+ nodes: Array<{
38
+ id: string;
39
+ label: string;
40
+ properties?: Record<string, unknown>;
41
+ }>;
42
+ /** Graph edges with weights */
43
+ edges: Array<{
44
+ source: string;
45
+ target: string;
46
+ weight: number;
47
+ edgeType?: EdgeType;
48
+ }>;
49
+ /** Whether the graph is directed (MinCut works on undirected graphs) */
50
+ directed: boolean;
51
+ }
52
+ /**
53
+ * Configuration for MinCut analyzer
54
+ */
55
+ export interface MinCutConfig {
56
+ /**
57
+ * Algorithm selection.
58
+ * Currently only 'stoer-wagner' is supported (pure JavaScript implementation).
59
+ * The 'auto' option is kept for backwards compatibility but uses stoer-wagner.
60
+ */
61
+ algorithm: 'stoer-wagner' | 'auto';
62
+ /** Maximum number of nodes before rejecting the graph (recommended: 500 for performance) */
63
+ maxNodes: number;
64
+ /** Timeout in milliseconds for computation */
65
+ timeout: number;
66
+ /** Whether to normalize edge weights to [0, 1] */
67
+ normalizeWeights: boolean;
68
+ }
69
+ /**
70
+ * Default configuration for MinCut analyzer
71
+ *
72
+ * Uses Stoer-Wagner algorithm with a 10,000 node limit and 30 second timeout.
73
+ * For optimal performance, graphs should have < 500 nodes.
74
+ */
75
+ export declare const DEFAULT_MINCUT_CONFIG: MinCutConfig;
76
+ /**
77
+ * Internal representation of the graph for MinCut algorithms
78
+ */
79
+ export interface MinCutGraph {
80
+ /** Adjacency list: nodeId -> { neighborId: weight } */
81
+ adjacency: Map<string, Map<string, number>>;
82
+ /** All node IDs */
83
+ nodes: string[];
84
+ /** Total number of nodes */
85
+ nodeCount: number;
86
+ }
87
+ /**
88
+ * Result of a single phase in the Stoer-Wagner algorithm
89
+ */
90
+ export interface StoerWagnerPhase {
91
+ /** The s-t cut value from this phase */
92
+ cutValue: number;
93
+ /** The node that was merged (t) */
94
+ mergedNode: string;
95
+ /** The node it was merged into (s) */
96
+ targetNode: string;
97
+ }
98
+ /**
99
+ * Result of module coupling analysis
100
+ */
101
+ export interface ModuleCouplingResult {
102
+ /** First module (file or directory path) */
103
+ module1: string;
104
+ /** Second module (file or directory path) */
105
+ module2: string;
106
+ /** Coupling strength (0-1, higher = more coupled) */
107
+ couplingStrength: number;
108
+ /** Shared dependencies between modules */
109
+ sharedDependencies: string[];
110
+ /** Whether a circular dependency exists */
111
+ circularDependency: boolean;
112
+ /** Edges that were cut */
113
+ cutEdges: CutEdge[];
114
+ /** Actionable recommendations for reducing coupling */
115
+ recommendations: string[];
116
+ }
117
+ /**
118
+ * Result of circular dependency detection
119
+ */
120
+ export interface CircularDependencyResult {
121
+ /** Files involved in the circular dependency */
122
+ cycle: string[];
123
+ /** Suggested break points to resolve the cycle */
124
+ breakPoints: BreakPoint[];
125
+ /** Severity of the circular dependency */
126
+ severity: 'low' | 'medium' | 'high';
127
+ /** Recommendations for fixing the cycle */
128
+ recommendations: string[];
129
+ }
130
+ /**
131
+ * A suggested point to break a circular dependency
132
+ */
133
+ export interface BreakPoint {
134
+ /** Source file/entity in the dependency */
135
+ source: string;
136
+ /** Target file/entity in the dependency */
137
+ target: string;
138
+ /** Type of edge that should be broken */
139
+ edgeType: string;
140
+ /** Estimated effort to break this dependency */
141
+ effort: 'low' | 'medium' | 'high';
142
+ /** Specific suggestion for how to break the dependency */
143
+ suggestion: string;
144
+ }
145
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/code-intelligence/analysis/mincut/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_MINCUT_CONFIG = void 0;
4
+ /**
5
+ * Default configuration for MinCut analyzer
6
+ *
7
+ * Uses Stoer-Wagner algorithm with a 10,000 node limit and 30 second timeout.
8
+ * For optimal performance, graphs should have < 500 nodes.
9
+ */
10
+ exports.DEFAULT_MINCUT_CONFIG = {
11
+ algorithm: 'stoer-wagner',
12
+ maxNodes: 10000,
13
+ timeout: 30000,
14
+ normalizeWeights: true,
15
+ };
16
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/code-intelligence/analysis/mincut/types.ts"],"names":[],"mappings":";;;AAyEA;;;;;GAKG;AACU,QAAA,qBAAqB,GAAiB;IACjD,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,KAAK;IACd,gBAAgB,EAAE,IAAI;CACvB,CAAC"}