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,459 @@
1
+ "use strict";
2
+ /**
3
+ * MinCut-Based Test Suite Partitioner
4
+ *
5
+ * Uses the Stoer-Wagner minimum cut algorithm to optimally partition
6
+ * test suites for parallel execution, minimizing cross-partition
7
+ * dependencies and balancing execution time across workers.
8
+ *
9
+ * Expected improvement: 30-50% faster parallel execution compared
10
+ * to naive round-robin or random distribution.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.MinCutPartitioner = void 0;
14
+ exports.partitionTests = partitionTests;
15
+ const types_js_1 = require("./types.js");
16
+ const MinCutAnalyzer_js_1 = require("../../code-intelligence/analysis/mincut/MinCutAnalyzer.js");
17
+ const Logger_js_1 = require("../../utils/Logger.js");
18
+ const logger = Logger_js_1.Logger.getInstance();
19
+ /**
20
+ * Partitions test suites using MinCut algorithm to minimize
21
+ * cross-partition dependencies and balance execution time.
22
+ */
23
+ class MinCutPartitioner {
24
+ constructor(config = {}) {
25
+ this.config = { ...types_js_1.DEFAULT_PARTITION_CONFIG, ...config };
26
+ this.minCutAnalyzer = new MinCutAnalyzer_js_1.MinCutAnalyzer({
27
+ timeout: this.config.timeout,
28
+ maxNodes: 10000,
29
+ });
30
+ }
31
+ /**
32
+ * Partition test files for optimal parallel execution
33
+ *
34
+ * @param tests - Array of test files with metadata
35
+ * @returns PartitionResult with optimized test distribution
36
+ */
37
+ async partition(tests) {
38
+ const startTime = performance.now();
39
+ // Handle edge cases
40
+ if (tests.length === 0) {
41
+ return this.emptyResult(startTime);
42
+ }
43
+ if (tests.length <= this.config.partitionCount) {
44
+ return this.trivialPartition(tests, startTime);
45
+ }
46
+ // Build dependency graph
47
+ const { nodes, edges } = this.buildTestGraph(tests);
48
+ // If no dependencies, use duration-balanced partitioning
49
+ if (edges.length === 0) {
50
+ return this.durationBalancedPartition(tests, startTime);
51
+ }
52
+ // Use MinCut to find optimal partition boundaries
53
+ const graph = {
54
+ nodes: nodes.map(n => ({
55
+ id: n.id,
56
+ label: n.id,
57
+ properties: { weight: n.weight },
58
+ })),
59
+ edges: edges.map(e => ({
60
+ source: e.source,
61
+ target: e.target,
62
+ weight: e.weight,
63
+ })),
64
+ directed: false,
65
+ };
66
+ try {
67
+ // For 2 partitions, use single MinCut
68
+ if (this.config.partitionCount === 2) {
69
+ const result = await this.minCutAnalyzer.computeMinCut(graph);
70
+ return this.buildResult(tests, [result], startTime);
71
+ }
72
+ // For k partitions, use recursive bisection
73
+ const partitions = await this.recursiveBisection(tests, graph);
74
+ return this.buildResultFromPartitions(tests, partitions, startTime);
75
+ }
76
+ catch (error) {
77
+ logger.warn('MinCut partitioning failed, falling back to duration-balanced', { error });
78
+ return this.durationBalancedPartition(tests, startTime);
79
+ }
80
+ }
81
+ /**
82
+ * Build a dependency graph from test files
83
+ */
84
+ buildTestGraph(tests) {
85
+ const testMap = new Map(tests.map(t => [t.path, t]));
86
+ const nodes = [];
87
+ const edges = [];
88
+ const edgeSet = new Set();
89
+ for (const test of tests) {
90
+ // Node weight based on duration (normalized)
91
+ const maxDuration = Math.max(...tests.map(t => t.estimatedDuration));
92
+ const normalizedWeight = maxDuration > 0 ? test.estimatedDuration / maxDuration : 1;
93
+ nodes.push({
94
+ id: test.path,
95
+ testFile: test,
96
+ weight: normalizedWeight,
97
+ });
98
+ // Add edges for dependencies
99
+ for (const dep of test.dependencies) {
100
+ if (testMap.has(dep)) {
101
+ const edgeKey = [test.path, dep].sort().join('->');
102
+ if (!edgeSet.has(edgeKey)) {
103
+ edgeSet.add(edgeKey);
104
+ edges.push({
105
+ source: test.path,
106
+ target: dep,
107
+ weight: this.calculateEdgeWeight(test, testMap.get(dep)),
108
+ type: 'import',
109
+ });
110
+ }
111
+ }
112
+ }
113
+ // Add edges for dependents (reverse dependencies)
114
+ for (const dependent of test.dependents) {
115
+ if (testMap.has(dependent)) {
116
+ const edgeKey = [test.path, dependent].sort().join('->');
117
+ if (!edgeSet.has(edgeKey)) {
118
+ edgeSet.add(edgeKey);
119
+ edges.push({
120
+ source: test.path,
121
+ target: dependent,
122
+ weight: this.calculateEdgeWeight(test, testMap.get(dependent)),
123
+ type: 'fixture',
124
+ });
125
+ }
126
+ }
127
+ }
128
+ }
129
+ return { nodes, edges };
130
+ }
131
+ /**
132
+ * Calculate edge weight based on dependency characteristics
133
+ * Higher weight = stronger coupling = should stay together
134
+ */
135
+ calculateEdgeWeight(test1, test2) {
136
+ let weight = 1.0;
137
+ // Shared tags increase weight
138
+ const sharedTags = test1.tags?.filter(t => test2.tags?.includes(t)) || [];
139
+ weight += sharedTags.length * 0.5;
140
+ // Same priority increases weight
141
+ if (test1.priority === test2.priority) {
142
+ weight += 0.3;
143
+ }
144
+ // Critical tests should stay with their dependencies
145
+ if (test1.priority === 'critical' || test2.priority === 'critical') {
146
+ weight += 1.0;
147
+ }
148
+ // Flaky tests should stay together (for isolation)
149
+ if (test1.flakinessScore > 0.3 && test2.flakinessScore > 0.3) {
150
+ weight += 0.5;
151
+ }
152
+ return weight;
153
+ }
154
+ /**
155
+ * Recursively bisect graph to create k partitions
156
+ */
157
+ async recursiveBisection(tests, graph) {
158
+ const partitions = [];
159
+ const queue = [{ tests, graph }];
160
+ while (queue.length < this.config.partitionCount && queue.length > 0) {
161
+ // Find the largest partition to split
162
+ queue.sort((a, b) => b.tests.length - a.tests.length);
163
+ const { tests: currentTests, graph: currentGraph } = queue.shift();
164
+ if (currentTests.length <= 2) {
165
+ // Too small to split, add as final partition
166
+ partitions.push(currentTests);
167
+ continue;
168
+ }
169
+ try {
170
+ const result = await this.minCutAnalyzer.computeMinCut(currentGraph);
171
+ // Create two sub-partitions
172
+ const partition1Tests = currentTests.filter(t => result.partition1.includes(t.path));
173
+ const partition2Tests = currentTests.filter(t => result.partition2.includes(t.path));
174
+ // Create sub-graphs
175
+ const subGraph1 = this.createSubgraph(currentGraph, result.partition1);
176
+ const subGraph2 = this.createSubgraph(currentGraph, result.partition2);
177
+ if (partition1Tests.length > 0) {
178
+ queue.push({ tests: partition1Tests, graph: subGraph1 });
179
+ }
180
+ if (partition2Tests.length > 0) {
181
+ queue.push({ tests: partition2Tests, graph: subGraph2 });
182
+ }
183
+ }
184
+ catch (error) {
185
+ // If MinCut fails, add as final partition
186
+ partitions.push(currentTests);
187
+ }
188
+ }
189
+ // Add remaining queue items as partitions
190
+ for (const item of queue) {
191
+ partitions.push(item.tests);
192
+ }
193
+ // Ensure we have exactly partitionCount partitions
194
+ return this.balancePartitions(partitions);
195
+ }
196
+ /**
197
+ * Create a subgraph containing only specified nodes
198
+ */
199
+ createSubgraph(graph, nodeIds) {
200
+ const nodeSet = new Set(nodeIds);
201
+ return {
202
+ nodes: graph.nodes.filter(n => nodeSet.has(n.id)),
203
+ edges: graph.edges.filter(e => nodeSet.has(e.source) && nodeSet.has(e.target)),
204
+ directed: graph.directed,
205
+ };
206
+ }
207
+ /**
208
+ * Balance partitions to ensure exactly k partitions
209
+ */
210
+ balancePartitions(partitions) {
211
+ const k = this.config.partitionCount;
212
+ // If we have too few partitions, split the largest ones
213
+ while (partitions.length < k) {
214
+ partitions.sort((a, b) => b.length - a.length);
215
+ const largest = partitions.shift();
216
+ if (largest.length <= 1) {
217
+ partitions.push(largest);
218
+ break;
219
+ }
220
+ const mid = Math.ceil(largest.length / 2);
221
+ partitions.push(largest.slice(0, mid));
222
+ partitions.push(largest.slice(mid));
223
+ }
224
+ // If we have too many partitions, merge the smallest ones
225
+ while (partitions.length > k) {
226
+ partitions.sort((a, b) => a.length - b.length);
227
+ const smallest1 = partitions.shift();
228
+ const smallest2 = partitions.shift();
229
+ partitions.push([...smallest1, ...smallest2]);
230
+ }
231
+ return partitions;
232
+ }
233
+ /**
234
+ * Simple duration-balanced partitioning (fallback)
235
+ */
236
+ durationBalancedPartition(tests, startTime) {
237
+ // Sort by duration descending (longest first)
238
+ const sortedTests = [...tests].sort((a, b) => b.estimatedDuration - a.estimatedDuration);
239
+ // Initialize partition buckets
240
+ const buckets = [];
241
+ for (let i = 0; i < this.config.partitionCount; i++) {
242
+ buckets.push({ tests: [], duration: 0 });
243
+ }
244
+ // Greedy assignment: add each test to the bucket with least total duration
245
+ for (const test of sortedTests) {
246
+ buckets.sort((a, b) => a.duration - b.duration);
247
+ buckets[0].tests.push(test);
248
+ buckets[0].duration += test.estimatedDuration;
249
+ }
250
+ const partitions = buckets.map((bucket, i) => ({
251
+ id: `partition-${i}`,
252
+ tests: bucket.tests,
253
+ estimatedDuration: bucket.duration,
254
+ crossPartitionDeps: this.countCrossPartitionDeps(bucket.tests, tests, buckets),
255
+ workerIndex: i,
256
+ }));
257
+ const computationTimeMs = performance.now() - startTime;
258
+ const stats = this.calculateStats(partitions, tests);
259
+ return {
260
+ partitions,
261
+ algorithm: 'duration-balanced',
262
+ totalCrossPartitionDeps: partitions.reduce((sum, p) => sum + p.crossPartitionDeps, 0),
263
+ loadBalanceScore: stats.parallelEfficiency,
264
+ computationTimeMs,
265
+ estimatedSpeedup: this.estimateSpeedup(partitions, tests),
266
+ };
267
+ }
268
+ /**
269
+ * Build result from MinCut output (2 partitions)
270
+ */
271
+ buildResult(tests, cuts, startTime) {
272
+ const testMap = new Map(tests.map(t => [t.path, t]));
273
+ const cut = cuts[0];
274
+ const partition1Tests = tests.filter(t => cut.partition1.includes(t.path));
275
+ const partition2Tests = tests.filter(t => cut.partition2.includes(t.path));
276
+ const partitions = [
277
+ {
278
+ id: 'partition-0',
279
+ tests: partition1Tests,
280
+ estimatedDuration: partition1Tests.reduce((sum, t) => sum + t.estimatedDuration, 0),
281
+ crossPartitionDeps: cut.cutEdges.length,
282
+ workerIndex: 0,
283
+ },
284
+ {
285
+ id: 'partition-1',
286
+ tests: partition2Tests,
287
+ estimatedDuration: partition2Tests.reduce((sum, t) => sum + t.estimatedDuration, 0),
288
+ crossPartitionDeps: cut.cutEdges.length,
289
+ workerIndex: 1,
290
+ },
291
+ ];
292
+ const computationTimeMs = performance.now() - startTime;
293
+ const stats = this.calculateStats(partitions, tests);
294
+ return {
295
+ partitions,
296
+ algorithm: 'mincut',
297
+ totalCrossPartitionDeps: cut.cutEdges.length,
298
+ loadBalanceScore: stats.parallelEfficiency,
299
+ computationTimeMs,
300
+ minCutValue: cut.cutValue,
301
+ estimatedSpeedup: this.estimateSpeedup(partitions, tests),
302
+ };
303
+ }
304
+ /**
305
+ * Build result from recursive bisection partitions
306
+ */
307
+ buildResultFromPartitions(tests, testPartitions, startTime) {
308
+ const partitions = testPartitions.map((partition, i) => ({
309
+ id: `partition-${i}`,
310
+ tests: partition,
311
+ estimatedDuration: partition.reduce((sum, t) => sum + t.estimatedDuration, 0),
312
+ crossPartitionDeps: this.countCrossPartitionDepsForPartition(partition, tests, testPartitions),
313
+ workerIndex: i,
314
+ }));
315
+ const computationTimeMs = performance.now() - startTime;
316
+ const stats = this.calculateStats(partitions, tests);
317
+ const totalCrossPartitionDeps = partitions.reduce((sum, p) => sum + p.crossPartitionDeps, 0) / 2; // Divide by 2 to avoid double counting
318
+ return {
319
+ partitions,
320
+ algorithm: 'mincut',
321
+ totalCrossPartitionDeps,
322
+ loadBalanceScore: stats.parallelEfficiency,
323
+ computationTimeMs,
324
+ estimatedSpeedup: this.estimateSpeedup(partitions, tests),
325
+ };
326
+ }
327
+ /**
328
+ * Count cross-partition dependencies for a single partition
329
+ */
330
+ countCrossPartitionDepsForPartition(partition, allTests, allPartitions) {
331
+ const partitionPaths = new Set(partition.map(t => t.path));
332
+ let count = 0;
333
+ for (const test of partition) {
334
+ for (const dep of [...test.dependencies, ...test.dependents]) {
335
+ if (!partitionPaths.has(dep) && allTests.some(t => t.path === dep)) {
336
+ count++;
337
+ }
338
+ }
339
+ }
340
+ return count;
341
+ }
342
+ /**
343
+ * Count cross-partition dependencies
344
+ */
345
+ countCrossPartitionDeps(partitionTests, allTests, buckets) {
346
+ const partitionPaths = new Set(partitionTests.map(t => t.path));
347
+ let count = 0;
348
+ for (const test of partitionTests) {
349
+ for (const dep of [...test.dependencies, ...test.dependents]) {
350
+ if (!partitionPaths.has(dep) && allTests.some(t => t.path === dep)) {
351
+ count++;
352
+ }
353
+ }
354
+ }
355
+ return count;
356
+ }
357
+ /**
358
+ * Calculate partition quality statistics
359
+ */
360
+ calculateStats(partitions, tests) {
361
+ const durations = partitions.map(p => p.estimatedDuration);
362
+ const avgDuration = durations.reduce((a, b) => a + b, 0) / durations.length;
363
+ const variance = durations.reduce((sum, d) => sum + Math.pow(d - avgDuration, 2), 0) / durations.length;
364
+ const stdDev = Math.sqrt(variance);
365
+ const sizes = partitions.map(p => p.tests.length);
366
+ const avgSize = sizes.reduce((a, b) => a + b, 0) / sizes.length;
367
+ const sizeVariance = sizes.reduce((sum, s) => sum + Math.pow(s - avgSize, 2), 0) / sizes.length;
368
+ const sizeStdDev = Math.sqrt(sizeVariance);
369
+ const totalDeps = tests.reduce((sum, t) => sum + t.dependencies.length + t.dependents.length, 0);
370
+ const crossDeps = partitions.reduce((sum, p) => sum + p.crossPartitionDeps, 0);
371
+ const crossDepPercentage = totalDeps > 0 ? crossDeps / totalDeps : 0;
372
+ // Parallel efficiency: ratio of avg duration to max duration
373
+ const maxDuration = Math.max(...durations);
374
+ const parallelEfficiency = maxDuration > 0 ? avgDuration / maxDuration : 1;
375
+ // Compare with naive round-robin (would have higher variance)
376
+ const naiveVariance = this.estimateNaiveVariance(tests);
377
+ const vsNaiveImprovement = naiveVariance > 0 ? 1 - (variance / naiveVariance) : 0;
378
+ return {
379
+ durationVariance: variance,
380
+ sizeStdDev,
381
+ crossDepPercentage,
382
+ parallelEfficiency,
383
+ vsNaiveImprovement: Math.max(0, vsNaiveImprovement),
384
+ };
385
+ }
386
+ /**
387
+ * Estimate variance for naive round-robin
388
+ */
389
+ estimateNaiveVariance(tests) {
390
+ const k = this.config.partitionCount;
391
+ const naiveBuckets = Array(k).fill(0);
392
+ tests.forEach((test, i) => {
393
+ naiveBuckets[i % k] += test.estimatedDuration;
394
+ });
395
+ const avg = naiveBuckets.reduce((a, b) => a + b, 0) / k;
396
+ return naiveBuckets.reduce((sum, d) => sum + Math.pow(d - avg, 2), 0) / k;
397
+ }
398
+ /**
399
+ * Estimate speedup compared to sequential execution
400
+ */
401
+ estimateSpeedup(partitions, tests) {
402
+ const totalDuration = tests.reduce((sum, t) => sum + t.estimatedDuration, 0);
403
+ const maxPartitionDuration = Math.max(...partitions.map(p => p.estimatedDuration));
404
+ if (maxPartitionDuration === 0)
405
+ return 1;
406
+ // Account for cross-partition dependency overhead (10% per dependency)
407
+ const crossDepOverhead = partitions.reduce((sum, p) => sum + p.crossPartitionDeps, 0) * 0.1;
408
+ const effectiveParallelDuration = maxPartitionDuration * (1 + crossDepOverhead / 100);
409
+ return totalDuration / effectiveParallelDuration;
410
+ }
411
+ /**
412
+ * Empty result for no tests
413
+ */
414
+ emptyResult(startTime) {
415
+ return {
416
+ partitions: [],
417
+ algorithm: 'mincut',
418
+ totalCrossPartitionDeps: 0,
419
+ loadBalanceScore: 1,
420
+ computationTimeMs: performance.now() - startTime,
421
+ estimatedSpeedup: 1,
422
+ };
423
+ }
424
+ /**
425
+ * Trivial partition when tests <= partition count
426
+ */
427
+ trivialPartition(tests, startTime) {
428
+ const partitions = tests.map((test, i) => ({
429
+ id: `partition-${i}`,
430
+ tests: [test],
431
+ estimatedDuration: test.estimatedDuration,
432
+ crossPartitionDeps: 0,
433
+ workerIndex: i,
434
+ }));
435
+ return {
436
+ partitions,
437
+ algorithm: 'mincut',
438
+ totalCrossPartitionDeps: 0,
439
+ loadBalanceScore: 1,
440
+ computationTimeMs: performance.now() - startTime,
441
+ estimatedSpeedup: tests.length,
442
+ };
443
+ }
444
+ /**
445
+ * Get current configuration
446
+ */
447
+ getConfig() {
448
+ return { ...this.config };
449
+ }
450
+ }
451
+ exports.MinCutPartitioner = MinCutPartitioner;
452
+ /**
453
+ * Convenience function for one-off partitioning
454
+ */
455
+ async function partitionTests(tests, config) {
456
+ const partitioner = new MinCutPartitioner(config);
457
+ return partitioner.partition(tests);
458
+ }
459
+ //# sourceMappingURL=MinCutPartitioner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MinCutPartitioner.js","sourceRoot":"","sources":["../../../src/test/partition/MinCutPartitioner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Real Test Executor
3
+ *
4
+ * Executes tests using actual Jest/Vitest via child_process.spawn.
5
+ * This replaces the fake "setTimeout + random pass/fail" mock
6
+ * with real test execution.
7
+ */
8
+ export interface TestExecutionResult {
9
+ testFile: string;
10
+ passed: boolean;
11
+ failed: number;
12
+ total: number;
13
+ duration: number;
14
+ error?: string;
15
+ output?: string;
16
+ workerIndex: number;
17
+ }
18
+ export interface BatchExecutionResult {
19
+ results: TestExecutionResult[];
20
+ totalDuration: number;
21
+ passed: number;
22
+ failed: number;
23
+ }
24
+ export interface ExecutorConfig {
25
+ /** Test runner command (default: 'npx') */
26
+ command: string;
27
+ /** Test runner args (default: ['jest']) */
28
+ runnerArgs: string[];
29
+ /** Timeout per test file in ms (default: 30000) */
30
+ timeout: number;
31
+ /** Working directory */
32
+ cwd: string;
33
+ /** Environment variables */
34
+ env?: Record<string, string>;
35
+ /** Whether to collect coverage */
36
+ collectCoverage: boolean;
37
+ }
38
+ /**
39
+ * Executes real tests using Jest via child_process
40
+ */
41
+ export declare class RealTestExecutor {
42
+ private config;
43
+ private runningProcesses;
44
+ constructor(config?: Partial<ExecutorConfig>);
45
+ /**
46
+ * Execute a single test file
47
+ */
48
+ executeTest(testFile: string, workerIndex?: number): Promise<TestExecutionResult>;
49
+ /**
50
+ * Execute a batch of test files sequentially on a single worker
51
+ */
52
+ executeBatch(testFiles: string[], workerIndex?: number): Promise<BatchExecutionResult>;
53
+ /**
54
+ * Execute multiple batches in parallel (one per worker)
55
+ */
56
+ executeParallel(batches: string[][], onProgress?: (workerIndex: number, result: TestExecutionResult) => void): Promise<BatchExecutionResult[]>;
57
+ /**
58
+ * Execute batch with progress callback
59
+ */
60
+ private executeBatchWithProgress;
61
+ /**
62
+ * Parse Jest JSON output to extract test results
63
+ */
64
+ private parseJestOutput;
65
+ /**
66
+ * Kill all running test processes
67
+ */
68
+ killAll(): void;
69
+ /**
70
+ * Get number of currently running tests
71
+ */
72
+ getRunningCount(): number;
73
+ }
74
+ /**
75
+ * Aggregate results from multiple batch executions
76
+ */
77
+ export declare function aggregateBatchResults(batches: BatchExecutionResult[]): {
78
+ allResults: TestExecutionResult[];
79
+ totalDuration: number;
80
+ maxWorkerDuration: number;
81
+ passed: number;
82
+ failed: number;
83
+ total: number;
84
+ parallelSpeedup: number;
85
+ };
86
+ //# sourceMappingURL=RealTestExecutor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RealTestExecutor.d.ts","sourceRoot":"","sources":["../../../src/test/partition/RealTestExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,kCAAkC;IAClC,eAAe,EAAE,OAAO,CAAC;CAC1B;AAUD;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,gBAAgB,CAAwC;gBAEpD,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM;IAIhD;;OAEG;IACU,WAAW,CACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAU,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAqG/B;;OAEG;IACU,YAAY,CACvB,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,GAAE,MAAU,GACtB,OAAO,CAAC,oBAAoB,CAAC;IA2BhC;;OAEG;IACU,eAAe,CAC1B,OAAO,EAAE,MAAM,EAAE,EAAE,EACnB,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,KAAK,IAAI,GACtE,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAQlC;;OAEG;YACW,wBAAwB;IAiCtC;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;OAEG;IACI,OAAO,IAAI,IAAI;IAQtB;;OAEG;IACI,eAAe,IAAI,MAAM;CAGjC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG;IACtE,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;CACzB,CAgBA"}