agentic-qe 2.6.4 → 2.6.6

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 (182) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/README.md +26 -1
  3. package/dist/agents/CoverageAnalyzerAgent.d.ts +31 -0
  4. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  5. package/dist/agents/CoverageAnalyzerAgent.js +159 -0
  6. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  7. package/dist/agents/FleetCommanderAgent.d.ts +36 -0
  8. package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
  9. package/dist/agents/FleetCommanderAgent.js +226 -0
  10. package/dist/agents/FleetCommanderAgent.js.map +1 -1
  11. package/dist/cli/commands/kg/mincut.d.ts +50 -0
  12. package/dist/cli/commands/kg/mincut.d.ts.map +1 -0
  13. package/dist/cli/commands/kg/mincut.js +372 -0
  14. package/dist/cli/commands/kg/mincut.js.map +1 -0
  15. package/dist/cli/commands/providers/index.d.ts +20 -0
  16. package/dist/cli/commands/providers/index.d.ts.map +1 -0
  17. package/dist/cli/commands/providers/index.js +143 -0
  18. package/dist/cli/commands/providers/index.js.map +1 -0
  19. package/dist/cli/commands/providers/status.d.ts +117 -0
  20. package/dist/cli/commands/providers/status.d.ts.map +1 -0
  21. package/dist/cli/commands/providers/status.js +368 -0
  22. package/dist/cli/commands/providers/status.js.map +1 -0
  23. package/dist/cli/index.js +99 -62
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/cli/init/claude-config.js +2 -2
  26. package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.d.ts +148 -0
  27. package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.d.ts.map +1 -0
  28. package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.js +393 -0
  29. package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.js.map +1 -0
  30. package/dist/code-intelligence/analysis/mincut/GraphAdapter.d.ts +169 -0
  31. package/dist/code-intelligence/analysis/mincut/GraphAdapter.d.ts.map +1 -0
  32. package/dist/code-intelligence/analysis/mincut/GraphAdapter.js +335 -0
  33. package/dist/code-intelligence/analysis/mincut/GraphAdapter.js.map +1 -0
  34. package/dist/code-intelligence/analysis/mincut/JsMinCut.d.ts +55 -0
  35. package/dist/code-intelligence/analysis/mincut/JsMinCut.d.ts.map +1 -0
  36. package/dist/code-intelligence/analysis/mincut/JsMinCut.js +265 -0
  37. package/dist/code-intelligence/analysis/mincut/JsMinCut.js.map +1 -0
  38. package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.d.ts +92 -0
  39. package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.d.ts.map +1 -0
  40. package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.js +200 -0
  41. package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.js.map +1 -0
  42. package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.d.ts +157 -0
  43. package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.d.ts.map +1 -0
  44. package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.js +434 -0
  45. package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.js.map +1 -0
  46. package/dist/code-intelligence/analysis/mincut/index.d.ts +12 -0
  47. package/dist/code-intelligence/analysis/mincut/index.d.ts.map +1 -0
  48. package/dist/code-intelligence/analysis/mincut/index.js +20 -0
  49. package/dist/code-intelligence/analysis/mincut/index.js.map +1 -0
  50. package/dist/code-intelligence/analysis/mincut/types.d.ts +145 -0
  51. package/dist/code-intelligence/analysis/mincut/types.d.ts.map +1 -0
  52. package/dist/code-intelligence/analysis/mincut/types.js +16 -0
  53. package/dist/code-intelligence/analysis/mincut/types.js.map +1 -0
  54. package/dist/code-intelligence/chunking/ASTChunker.d.ts +1 -1
  55. package/dist/code-intelligence/chunking/ASTChunker.d.ts.map +1 -1
  56. package/dist/code-intelligence/chunking/ASTChunker.js +4 -4
  57. package/dist/code-intelligence/chunking/ASTChunker.js.map +1 -1
  58. package/dist/code-intelligence/graph/GraphBuilder.d.ts +120 -0
  59. package/dist/code-intelligence/graph/GraphBuilder.d.ts.map +1 -1
  60. package/dist/code-intelligence/graph/GraphBuilder.js +517 -0
  61. package/dist/code-intelligence/graph/GraphBuilder.js.map +1 -1
  62. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts.map +1 -1
  63. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js +3 -3
  64. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js.map +1 -1
  65. package/dist/code-intelligence/parser/{TreeSitterParser.d.ts → WebTreeSitterParser.d.ts} +45 -10
  66. package/dist/code-intelligence/parser/WebTreeSitterParser.d.ts.map +1 -0
  67. package/dist/code-intelligence/parser/{TreeSitterParser.js → WebTreeSitterParser.js} +147 -54
  68. package/dist/code-intelligence/parser/WebTreeSitterParser.js.map +1 -0
  69. package/dist/code-intelligence/parser/extractors/BaseExtractor.d.ts +12 -10
  70. package/dist/code-intelligence/parser/extractors/BaseExtractor.d.ts.map +1 -1
  71. package/dist/code-intelligence/parser/extractors/BaseExtractor.js +7 -3
  72. package/dist/code-intelligence/parser/extractors/BaseExtractor.js.map +1 -1
  73. package/dist/code-intelligence/parser/extractors/GoExtractor.d.ts +7 -5
  74. package/dist/code-intelligence/parser/extractors/GoExtractor.d.ts.map +1 -1
  75. package/dist/code-intelligence/parser/extractors/GoExtractor.js +2 -2
  76. package/dist/code-intelligence/parser/extractors/GoExtractor.js.map +1 -1
  77. package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.d.ts +7 -5
  78. package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.d.ts.map +1 -1
  79. package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.js +2 -2
  80. package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.js.map +1 -1
  81. package/dist/code-intelligence/parser/extractors/PythonExtractor.d.ts +7 -5
  82. package/dist/code-intelligence/parser/extractors/PythonExtractor.d.ts.map +1 -1
  83. package/dist/code-intelligence/parser/extractors/PythonExtractor.js +2 -2
  84. package/dist/code-intelligence/parser/extractors/PythonExtractor.js.map +1 -1
  85. package/dist/code-intelligence/parser/extractors/RustExtractor.d.ts +7 -5
  86. package/dist/code-intelligence/parser/extractors/RustExtractor.d.ts.map +1 -1
  87. package/dist/code-intelligence/parser/extractors/RustExtractor.js +2 -2
  88. package/dist/code-intelligence/parser/extractors/RustExtractor.js.map +1 -1
  89. package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.d.ts +7 -5
  90. package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.d.ts.map +1 -1
  91. package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.js +2 -2
  92. package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.js.map +1 -1
  93. package/dist/code-intelligence/parser/index.d.ts +7 -1
  94. package/dist/code-intelligence/parser/index.d.ts.map +1 -1
  95. package/dist/code-intelligence/parser/index.js +11 -3
  96. package/dist/code-intelligence/parser/index.js.map +1 -1
  97. package/dist/code-intelligence/service/CodeIntelligenceService.d.ts.map +1 -1
  98. package/dist/code-intelligence/service/CodeIntelligenceService.js +7 -5
  99. package/dist/code-intelligence/service/CodeIntelligenceService.js.map +1 -1
  100. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  101. package/dist/coverage/CriticalPathDetector.d.ts +240 -0
  102. package/dist/coverage/CriticalPathDetector.d.ts.map +1 -0
  103. package/dist/coverage/CriticalPathDetector.js +388 -0
  104. package/dist/coverage/CriticalPathDetector.js.map +1 -0
  105. package/dist/coverage/index.d.ts +13 -0
  106. package/dist/coverage/index.d.ts.map +1 -0
  107. package/dist/coverage/index.js +16 -0
  108. package/dist/coverage/index.js.map +1 -0
  109. package/dist/fleet/topology/SPOFMonitor.d.ts +181 -0
  110. package/dist/fleet/topology/SPOFMonitor.d.ts.map +1 -0
  111. package/dist/fleet/topology/SPOFMonitor.js +286 -0
  112. package/dist/fleet/topology/SPOFMonitor.js.map +1 -0
  113. package/dist/fleet/topology/TopologyMinCutAnalyzer.d.ts +87 -0
  114. package/dist/fleet/topology/TopologyMinCutAnalyzer.d.ts.map +1 -0
  115. package/dist/fleet/topology/TopologyMinCutAnalyzer.js +472 -0
  116. package/dist/fleet/topology/TopologyMinCutAnalyzer.js.map +1 -0
  117. package/dist/fleet/topology/index.d.ts +13 -0
  118. package/dist/fleet/topology/index.d.ts.map +1 -0
  119. package/dist/fleet/topology/index.js +20 -0
  120. package/dist/fleet/topology/index.js.map +1 -0
  121. package/dist/fleet/topology/types.d.ts +139 -0
  122. package/dist/fleet/topology/types.d.ts.map +1 -0
  123. package/dist/fleet/topology/types.js +19 -0
  124. package/dist/fleet/topology/types.js.map +1 -0
  125. package/dist/mcp/handlers/test/test-execute-parallel.d.ts +34 -3
  126. package/dist/mcp/handlers/test/test-execute-parallel.d.ts.map +1 -1
  127. package/dist/mcp/handlers/test/test-execute-parallel.js +120 -5
  128. package/dist/mcp/handlers/test/test-execute-parallel.js.map +1 -1
  129. package/dist/mcp/server-instructions.d.ts +2 -2
  130. package/dist/mcp/server-instructions.d.ts.map +1 -1
  131. package/dist/mcp/server-instructions.js +2 -2
  132. package/dist/monitoring/ProviderHealthMonitor.d.ts +195 -0
  133. package/dist/monitoring/ProviderHealthMonitor.d.ts.map +1 -0
  134. package/dist/monitoring/ProviderHealthMonitor.js +431 -0
  135. package/dist/monitoring/ProviderHealthMonitor.js.map +1 -0
  136. package/dist/monitoring/QuotaManager.d.ts +122 -0
  137. package/dist/monitoring/QuotaManager.d.ts.map +1 -0
  138. package/dist/monitoring/QuotaManager.js +351 -0
  139. package/dist/monitoring/QuotaManager.js.map +1 -0
  140. package/dist/providers/GitHubModelsProvider.d.ts +117 -0
  141. package/dist/providers/GitHubModelsProvider.d.ts.map +1 -0
  142. package/dist/providers/GitHubModelsProvider.js +464 -0
  143. package/dist/providers/GitHubModelsProvider.js.map +1 -0
  144. package/dist/providers/GroqProvider.d.ts +115 -0
  145. package/dist/providers/GroqProvider.d.ts.map +1 -0
  146. package/dist/providers/GroqProvider.js +443 -0
  147. package/dist/providers/GroqProvider.js.map +1 -0
  148. package/dist/providers/HybridRouterHealthIntegration.d.ts +191 -0
  149. package/dist/providers/HybridRouterHealthIntegration.d.ts.map +1 -0
  150. package/dist/providers/HybridRouterHealthIntegration.js +439 -0
  151. package/dist/providers/HybridRouterHealthIntegration.js.map +1 -0
  152. package/dist/providers/index.d.ts +6 -0
  153. package/dist/providers/index.d.ts.map +1 -1
  154. package/dist/providers/index.js +12 -1
  155. package/dist/providers/index.js.map +1 -1
  156. package/dist/test/partition/MinCutPartitioner.d.ts +97 -0
  157. package/dist/test/partition/MinCutPartitioner.d.ts.map +1 -0
  158. package/dist/test/partition/MinCutPartitioner.js +459 -0
  159. package/dist/test/partition/MinCutPartitioner.js.map +1 -0
  160. package/dist/test/partition/RealTestExecutor.d.ts +86 -0
  161. package/dist/test/partition/RealTestExecutor.d.ts.map +1 -0
  162. package/dist/test/partition/RealTestExecutor.js +279 -0
  163. package/dist/test/partition/RealTestExecutor.js.map +1 -0
  164. package/dist/test/partition/TestDependencyAnalyzer.d.ts +75 -0
  165. package/dist/test/partition/TestDependencyAnalyzer.d.ts.map +1 -0
  166. package/dist/test/partition/TestDependencyAnalyzer.js +297 -0
  167. package/dist/test/partition/TestDependencyAnalyzer.js.map +1 -0
  168. package/dist/test/partition/index.d.ts +10 -0
  169. package/dist/test/partition/index.d.ts.map +1 -0
  170. package/dist/test/partition/index.js +26 -0
  171. package/dist/test/partition/index.js.map +1 -0
  172. package/dist/test/partition/types.d.ts +120 -0
  173. package/dist/test/partition/types.d.ts.map +1 -0
  174. package/dist/test/partition/types.js +21 -0
  175. package/dist/test/partition/types.js.map +1 -0
  176. package/package.json +5 -8
  177. package/dist/cli/commands/providers.d.ts +0 -50
  178. package/dist/cli/commands/providers.d.ts.map +0 -1
  179. package/dist/cli/commands/providers.js +0 -403
  180. package/dist/cli/commands/providers.js.map +0 -1
  181. package/dist/code-intelligence/parser/TreeSitterParser.d.ts.map +0 -1
  182. package/dist/code-intelligence/parser/TreeSitterParser.js.map +0 -1
@@ -0,0 +1,372 @@
1
+ "use strict";
2
+ /**
3
+ * MinCut Analysis CLI Commands
4
+ *
5
+ * Provides CLI interface for module coupling analysis using MinCut algorithms:
6
+ * - coupling: Analyze coupling between two modules
7
+ * - coupling-all: Find all highly coupled module pairs
8
+ * - circular: Detect circular dependencies
9
+ * - boundaries: Suggest optimal module boundaries
10
+ * - overview: Get coupling overview for entire codebase
11
+ */
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.analyzeCoupling = analyzeCoupling;
17
+ exports.findHighlyCoupledModules = findHighlyCoupledModules;
18
+ exports.detectCircularDependencies = detectCircularDependencies;
19
+ exports.suggestModuleBoundaries = suggestModuleBoundaries;
20
+ exports.getCouplingOverview = getCouplingOverview;
21
+ const chalk_1 = __importDefault(require("chalk"));
22
+ const ora_1 = __importDefault(require("ora"));
23
+ const CodeIntelligenceOrchestrator_js_1 = require("../../../code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js");
24
+ const ModuleCouplingAnalyzer_js_1 = require("../../../code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.js");
25
+ const CircularDependencyDetector_js_1 = require("../../../code-intelligence/analysis/mincut/CircularDependencyDetector.js");
26
+ /**
27
+ * Load code graph from knowledge graph
28
+ */
29
+ async function loadCodeGraph() {
30
+ const spinner = (0, ora_1.default)('Loading code graph from knowledge graph...').start();
31
+ try {
32
+ // Initialize orchestrator
33
+ const orchestrator = new CodeIntelligenceOrchestrator_js_1.CodeIntelligenceOrchestrator({
34
+ rootDir: process.cwd(),
35
+ database: {
36
+ enabled: true,
37
+ host: 'localhost',
38
+ port: 5432,
39
+ database: 'ruvector_dev',
40
+ user: 'postgres',
41
+ password: 'postgres'
42
+ }
43
+ });
44
+ await orchestrator.initialize();
45
+ // Get graph builder
46
+ const graphBuilder = orchestrator.getGraphBuilder();
47
+ const graph = graphBuilder.exportGraph();
48
+ if (!graph || graph.nodes.length === 0) {
49
+ spinner.fail('No code graph found');
50
+ console.log(chalk_1.default.yellow('Run "aqe kg index" to index your codebase first.'));
51
+ process.exit(1);
52
+ }
53
+ spinner.succeed(`Code graph loaded: ${graph.nodes.length} nodes, ${graph.edges.length} edges`);
54
+ return graph;
55
+ }
56
+ catch (error) {
57
+ spinner.fail('Failed to load code graph');
58
+ if (error.message?.includes('connect')) {
59
+ console.error(chalk_1.default.red('❌ Database connection failed.'));
60
+ console.log(chalk_1.default.yellow('Make sure PostgreSQL is running and accessible.'));
61
+ }
62
+ else {
63
+ console.error(chalk_1.default.red(`❌ Error: ${error.message}`));
64
+ }
65
+ process.exit(1);
66
+ }
67
+ }
68
+ /**
69
+ * Format coupling strength with color
70
+ */
71
+ function formatCoupling(strength) {
72
+ const percentage = (strength * 100).toFixed(0);
73
+ if (strength >= 0.8) {
74
+ return chalk_1.default.red(`${percentage}% (Very High)`);
75
+ }
76
+ if (strength >= 0.6) {
77
+ return chalk_1.default.yellow(`${percentage}% (High)`);
78
+ }
79
+ if (strength >= 0.4) {
80
+ return chalk_1.default.blue(`${percentage}% (Moderate)`);
81
+ }
82
+ return chalk_1.default.green(`${percentage}% (Low)`);
83
+ }
84
+ /**
85
+ * Display coupling analysis result
86
+ */
87
+ function displayCouplingResult(result, json) {
88
+ if (json) {
89
+ console.log(JSON.stringify(result, null, 2));
90
+ return;
91
+ }
92
+ console.log(chalk_1.default.bold.cyan(`\n📊 Coupling Analysis: ${result.module1} ↔ ${result.module2}\n`));
93
+ console.log(`Coupling Strength: ${formatCoupling(result.couplingStrength)}`);
94
+ console.log(`Circular Dependency: ${result.circularDependency ? chalk_1.default.red('Yes ⚠️') : chalk_1.default.green('No ✓')}`);
95
+ if (result.sharedDependencies.length > 0) {
96
+ console.log(chalk_1.default.gray(`\nShared Dependencies (${result.sharedDependencies.length}):`));
97
+ result.sharedDependencies.slice(0, 5).forEach(dep => {
98
+ console.log(chalk_1.default.gray(` • ${dep}`));
99
+ });
100
+ if (result.sharedDependencies.length > 5) {
101
+ console.log(chalk_1.default.gray(` ... and ${result.sharedDependencies.length - 5} more`));
102
+ }
103
+ }
104
+ if (result.cutEdges.length > 0) {
105
+ console.log(chalk_1.default.gray(`\nKey Dependencies (${result.cutEdges.length}):`));
106
+ result.cutEdges.slice(0, 5).forEach(edge => {
107
+ console.log(chalk_1.default.gray(` • ${edge.source} → ${edge.target}`));
108
+ });
109
+ if (result.cutEdges.length > 5) {
110
+ console.log(chalk_1.default.gray(` ... and ${result.cutEdges.length - 5} more`));
111
+ }
112
+ }
113
+ if (result.recommendations.length > 0) {
114
+ console.log(chalk_1.default.yellow('\n💡 Recommendations:'));
115
+ result.recommendations.forEach(r => {
116
+ console.log(` ${r}`);
117
+ });
118
+ }
119
+ console.log(); // Empty line
120
+ }
121
+ /**
122
+ * Analyze coupling between two modules
123
+ */
124
+ async function analyzeCoupling(module1, module2, options) {
125
+ const graph = await loadCodeGraph();
126
+ const threshold = options.threshold ? parseFloat(options.threshold) : 0.3;
127
+ const spinner = (0, ora_1.default)('Analyzing module coupling...').start();
128
+ try {
129
+ // Convert graph to CodeGraph format
130
+ const codeGraph = {
131
+ nodes: new Map(graph.nodes.map(n => [n.id, n])),
132
+ edges: new Map(graph.edges.map(e => [e.id, e])),
133
+ fileNodes: new Map(),
134
+ outgoingEdges: new Map(),
135
+ incomingEdges: new Map()
136
+ };
137
+ // Build index maps
138
+ for (const node of graph.nodes) {
139
+ const fileNodes = codeGraph.fileNodes.get(node.filePath) || [];
140
+ fileNodes.push(node.id);
141
+ codeGraph.fileNodes.set(node.filePath, fileNodes);
142
+ codeGraph.outgoingEdges.set(node.id, []);
143
+ codeGraph.incomingEdges.set(node.id, []);
144
+ }
145
+ for (const edge of graph.edges) {
146
+ const outgoing = codeGraph.outgoingEdges.get(edge.source) || [];
147
+ outgoing.push(edge.id);
148
+ codeGraph.outgoingEdges.set(edge.source, outgoing);
149
+ const incoming = codeGraph.incomingEdges.get(edge.target) || [];
150
+ incoming.push(edge.id);
151
+ codeGraph.incomingEdges.set(edge.target, incoming);
152
+ }
153
+ const analyzer = new ModuleCouplingAnalyzer_js_1.ModuleCouplingAnalyzer(codeGraph, {
154
+ minCouplingThreshold: threshold
155
+ });
156
+ const result = await analyzer.analyzeCoupling(module1, module2);
157
+ spinner.succeed('Analysis complete');
158
+ displayCouplingResult(result, options.json || false);
159
+ }
160
+ catch (error) {
161
+ spinner.fail('Analysis failed');
162
+ console.error(chalk_1.default.red(`❌ Error: ${error.message}`));
163
+ process.exit(1);
164
+ }
165
+ }
166
+ /**
167
+ * Find all highly coupled module pairs
168
+ */
169
+ async function findHighlyCoupledModules(options) {
170
+ const graph = await loadCodeGraph();
171
+ const threshold = options.threshold ? parseFloat(options.threshold) : 0.5;
172
+ const limit = options.limit ? parseInt(options.limit) : 10;
173
+ const spinner = (0, ora_1.default)('Finding highly coupled modules...').start();
174
+ try {
175
+ // Convert graph to CodeGraph format
176
+ const codeGraph = {
177
+ nodes: new Map(graph.nodes.map(n => [n.id, n])),
178
+ edges: new Map(graph.edges.map(e => [e.id, e])),
179
+ fileNodes: new Map(),
180
+ outgoingEdges: new Map(),
181
+ incomingEdges: new Map()
182
+ };
183
+ // Build index maps
184
+ for (const node of graph.nodes) {
185
+ const fileNodes = codeGraph.fileNodes.get(node.filePath) || [];
186
+ fileNodes.push(node.id);
187
+ codeGraph.fileNodes.set(node.filePath, fileNodes);
188
+ codeGraph.outgoingEdges.set(node.id, []);
189
+ codeGraph.incomingEdges.set(node.id, []);
190
+ }
191
+ for (const edge of graph.edges) {
192
+ const outgoing = codeGraph.outgoingEdges.get(edge.source) || [];
193
+ outgoing.push(edge.id);
194
+ codeGraph.outgoingEdges.set(edge.source, outgoing);
195
+ const incoming = codeGraph.incomingEdges.get(edge.target) || [];
196
+ incoming.push(edge.id);
197
+ codeGraph.incomingEdges.set(edge.target, incoming);
198
+ }
199
+ const analyzer = new ModuleCouplingAnalyzer_js_1.ModuleCouplingAnalyzer(codeGraph);
200
+ const results = await analyzer.findHighlyCoupledModules(threshold);
201
+ const limitedResults = results.slice(0, limit);
202
+ spinner.succeed(`Found ${results.length} highly coupled module pairs`);
203
+ if (options.json) {
204
+ console.log(JSON.stringify(limitedResults, null, 2));
205
+ return;
206
+ }
207
+ if (limitedResults.length === 0) {
208
+ console.log(chalk_1.default.green('\n✓ No highly coupled modules found (threshold: ' + (threshold * 100).toFixed(0) + '%)'));
209
+ return;
210
+ }
211
+ console.log(chalk_1.default.bold.cyan(`\n🔗 Highly Coupled Modules (showing ${limitedResults.length} of ${results.length}):\n`));
212
+ for (const result of limitedResults) {
213
+ console.log(`${formatCoupling(result.couplingStrength)} ${chalk_1.default.bold(result.module1)} ↔ ${chalk_1.default.bold(result.module2)}`);
214
+ if (result.circularDependency) {
215
+ console.log(chalk_1.default.red(' ⚠️ Circular dependency detected'));
216
+ }
217
+ console.log();
218
+ }
219
+ }
220
+ catch (error) {
221
+ spinner.fail('Analysis failed');
222
+ console.error(chalk_1.default.red(`❌ Error: ${error.message}`));
223
+ process.exit(1);
224
+ }
225
+ }
226
+ /**
227
+ * Detect circular dependencies
228
+ */
229
+ async function detectCircularDependencies(options) {
230
+ const graph = await loadCodeGraph();
231
+ const spinner = (0, ora_1.default)('Detecting circular dependencies...').start();
232
+ try {
233
+ // Convert graph to CodeGraph format
234
+ const codeGraph = {
235
+ nodes: new Map(graph.nodes.map(n => [n.id, n])),
236
+ edges: new Map(graph.edges.map(e => [e.id, e])),
237
+ fileNodes: new Map(),
238
+ outgoingEdges: new Map(),
239
+ incomingEdges: new Map()
240
+ };
241
+ // Build index maps
242
+ for (const node of graph.nodes) {
243
+ const fileNodes = codeGraph.fileNodes.get(node.filePath) || [];
244
+ fileNodes.push(node.id);
245
+ codeGraph.fileNodes.set(node.filePath, fileNodes);
246
+ codeGraph.outgoingEdges.set(node.id, []);
247
+ codeGraph.incomingEdges.set(node.id, []);
248
+ }
249
+ for (const edge of graph.edges) {
250
+ const outgoing = codeGraph.outgoingEdges.get(edge.source) || [];
251
+ outgoing.push(edge.id);
252
+ codeGraph.outgoingEdges.set(edge.source, outgoing);
253
+ const incoming = codeGraph.incomingEdges.get(edge.target) || [];
254
+ incoming.push(edge.id);
255
+ codeGraph.incomingEdges.set(edge.target, incoming);
256
+ }
257
+ const detector = new CircularDependencyDetector_js_1.CircularDependencyDetector(codeGraph);
258
+ const cycles = await detector.detectAll();
259
+ // Filter by severity if specified
260
+ const filteredCycles = options.severity
261
+ ? cycles.filter(c => {
262
+ const severityOrder = { low: 1, medium: 2, high: 3 };
263
+ return severityOrder[c.severity] >= severityOrder[options.severity];
264
+ })
265
+ : cycles;
266
+ spinner.succeed(`Detected ${cycles.length} circular dependencies`);
267
+ if (options.json) {
268
+ console.log(JSON.stringify(filteredCycles, null, 2));
269
+ return;
270
+ }
271
+ if (filteredCycles.length === 0) {
272
+ console.log(chalk_1.default.green('\n✓ No circular dependencies found'));
273
+ return;
274
+ }
275
+ console.log(chalk_1.default.bold.red(`\n🔄 Circular Dependencies Found: ${filteredCycles.length}\n`));
276
+ for (const cycle of filteredCycles) {
277
+ const severityIcon = {
278
+ high: '🔴',
279
+ medium: '🟡',
280
+ low: '🟢'
281
+ }[cycle.severity];
282
+ console.log(`${severityIcon} ${chalk_1.default.bold(cycle.severity.toUpperCase())}: ${cycle.cycle.join(' → ')}`);
283
+ if (cycle.breakPoints.length > 0) {
284
+ console.log(chalk_1.default.gray(' Break points:'));
285
+ for (const bp of cycle.breakPoints.slice(0, 3)) {
286
+ console.log(chalk_1.default.gray(` • ${bp.source} → ${bp.target} (${bp.effort} effort)`));
287
+ }
288
+ if (cycle.breakPoints.length > 3) {
289
+ console.log(chalk_1.default.gray(` ... and ${cycle.breakPoints.length - 3} more`));
290
+ }
291
+ }
292
+ console.log();
293
+ }
294
+ }
295
+ catch (error) {
296
+ spinner.fail('Detection failed');
297
+ console.error(chalk_1.default.red(`❌ Error: ${error.message}`));
298
+ process.exit(1);
299
+ }
300
+ }
301
+ /**
302
+ * Suggest optimal module boundaries
303
+ */
304
+ async function suggestModuleBoundaries(count, options) {
305
+ const graph = await loadCodeGraph();
306
+ const moduleCount = parseInt(count);
307
+ if (isNaN(moduleCount) || moduleCount < 2) {
308
+ console.error(chalk_1.default.red('❌ Invalid module count. Must be >= 2'));
309
+ process.exit(1);
310
+ }
311
+ console.log(chalk_1.default.yellow(`\n⚠️ Module boundary suggestion is not yet implemented.`));
312
+ console.log(chalk_1.default.gray('This feature will analyze the code graph and suggest optimal module boundaries'));
313
+ console.log(chalk_1.default.gray(`to partition the codebase into ${moduleCount} modules with minimal coupling.\n`));
314
+ }
315
+ /**
316
+ * Get coupling overview for entire codebase
317
+ */
318
+ async function getCouplingOverview(options) {
319
+ const graph = await loadCodeGraph();
320
+ const spinner = (0, ora_1.default)('Computing coupling overview...').start();
321
+ try {
322
+ // Convert graph to CodeGraph format
323
+ const codeGraph = {
324
+ nodes: new Map(graph.nodes.map(n => [n.id, n])),
325
+ edges: new Map(graph.edges.map(e => [e.id, e])),
326
+ fileNodes: new Map(),
327
+ outgoingEdges: new Map(),
328
+ incomingEdges: new Map()
329
+ };
330
+ // Build index maps
331
+ for (const node of graph.nodes) {
332
+ const fileNodes = codeGraph.fileNodes.get(node.filePath) || [];
333
+ fileNodes.push(node.id);
334
+ codeGraph.fileNodes.set(node.filePath, fileNodes);
335
+ codeGraph.outgoingEdges.set(node.id, []);
336
+ codeGraph.incomingEdges.set(node.id, []);
337
+ }
338
+ for (const edge of graph.edges) {
339
+ const outgoing = codeGraph.outgoingEdges.get(edge.source) || [];
340
+ outgoing.push(edge.id);
341
+ codeGraph.outgoingEdges.set(edge.source, outgoing);
342
+ const incoming = codeGraph.incomingEdges.get(edge.target) || [];
343
+ incoming.push(edge.id);
344
+ codeGraph.incomingEdges.set(edge.target, incoming);
345
+ }
346
+ const analyzer = new ModuleCouplingAnalyzer_js_1.ModuleCouplingAnalyzer(codeGraph);
347
+ const overview = await analyzer.getCouplingOverview();
348
+ spinner.succeed('Overview computed');
349
+ if (options.json) {
350
+ console.log(JSON.stringify(overview, null, 2));
351
+ return;
352
+ }
353
+ console.log(chalk_1.default.bold.cyan('\n📊 Coupling Overview\n'));
354
+ console.log(`Average Coupling: ${formatCoupling(overview.averageCoupling)}`);
355
+ console.log(`Maximum Coupling: ${formatCoupling(overview.maxCoupling)}`);
356
+ console.log(`Highly Coupled Pairs: ${chalk_1.default.yellow(overview.highlyCoupledPairs)}`);
357
+ console.log(`Circular Dependencies: ${overview.circularDependencies > 0 ? chalk_1.default.red(overview.circularDependencies) : chalk_1.default.green(overview.circularDependencies)}`);
358
+ if (overview.recommendations.length > 0) {
359
+ console.log(chalk_1.default.yellow('\n💡 Recommendations:'));
360
+ overview.recommendations.forEach(r => {
361
+ console.log(` ${r}`);
362
+ });
363
+ }
364
+ console.log();
365
+ }
366
+ catch (error) {
367
+ spinner.fail('Overview computation failed');
368
+ console.error(chalk_1.default.red(`❌ Error: ${error.message}`));
369
+ process.exit(1);
370
+ }
371
+ }
372
+ //# sourceMappingURL=mincut.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mincut.js","sourceRoot":"","sources":["../../../../src/cli/commands/kg/mincut.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Provider Commands - LLM Provider management CLI
3
+ *
4
+ * Commands for monitoring, configuring, and managing LLM providers.
5
+ *
6
+ * Available commands:
7
+ * aqe providers status - Show provider health dashboard
8
+ * aqe providers list - List all registered providers
9
+ * aqe providers quota - Show quota usage for all providers
10
+ * aqe providers test - Test connectivity to a provider
11
+ * aqe providers switch - Switch the default provider
12
+ *
13
+ * @module cli/commands/providers
14
+ * @version 1.0.0
15
+ */
16
+ import { Command } from 'commander';
17
+ export declare function createProvidersCommand(): Command;
18
+ export { ProviderStatusCommand } from './status';
19
+ export type { ProviderStatusOptions, ProviderStatusReport, ProviderHealthInfo } from './status';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,sBAAsB,IAAI,OAAO,CAuHhD;AAGD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * Provider Commands - LLM Provider management CLI
4
+ *
5
+ * Commands for monitoring, configuring, and managing LLM providers.
6
+ *
7
+ * Available commands:
8
+ * aqe providers status - Show provider health dashboard
9
+ * aqe providers list - List all registered providers
10
+ * aqe providers quota - Show quota usage for all providers
11
+ * aqe providers test - Test connectivity to a provider
12
+ * aqe providers switch - Switch the default provider
13
+ *
14
+ * @module cli/commands/providers
15
+ * @version 1.0.0
16
+ */
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.ProviderStatusCommand = void 0;
22
+ exports.createProvidersCommand = createProvidersCommand;
23
+ const commander_1 = require("commander");
24
+ const chalk_1 = __importDefault(require("chalk"));
25
+ const status_1 = require("./status");
26
+ function createProvidersCommand() {
27
+ const providers = new commander_1.Command('providers')
28
+ .description('LLM provider management and health monitoring')
29
+ .addHelpText('after', `
30
+ Examples:
31
+ $ aqe providers status Show provider health dashboard
32
+ $ aqe providers status --detailed Show detailed metrics
33
+ $ aqe providers status --json Output in JSON format
34
+ $ aqe providers status --watch Continuously monitor
35
+ $ aqe providers list List all configured providers
36
+ $ aqe providers test groq Test Groq provider connectivity
37
+ $ aqe providers switch claude Switch default to Claude
38
+ `);
39
+ // Status subcommand - primary health dashboard
40
+ providers
41
+ .command('status')
42
+ .description('Show provider health dashboard with real-time metrics')
43
+ .option('-d, --detailed', 'Show detailed metrics for each provider')
44
+ .option('-j, --json', 'Output in JSON format')
45
+ .option('-f, --format <format>', 'Output format (json, table)', 'table')
46
+ .option('-v, --verbose', 'Show verbose output (alias for --detailed)')
47
+ .option('-w, --watch', 'Continuously monitor provider health')
48
+ .option('-i, --interval <seconds>', 'Watch interval in seconds', '10')
49
+ .action(async (options) => {
50
+ const statusOptions = {
51
+ detailed: options.detailed || options.verbose,
52
+ json: options.json || options.format === 'json',
53
+ watch: options.watch,
54
+ interval: parseInt(options.interval, 10)
55
+ };
56
+ try {
57
+ await status_1.ProviderStatusCommand.execute(statusOptions);
58
+ }
59
+ catch (error) {
60
+ console.error(chalk_1.default.red(`❌ Provider status failed: ${error.message}`));
61
+ process.exit(1);
62
+ }
63
+ });
64
+ // List subcommand - list all providers
65
+ providers
66
+ .command('list')
67
+ .description('List all configured providers and their status')
68
+ .option('-j, --json', 'Output in JSON format')
69
+ .option('-f, --format <format>', 'Output format (json, table)', 'table')
70
+ .option('-v, --verbose', 'Show detailed information')
71
+ .action(async (options) => {
72
+ try {
73
+ await status_1.ProviderStatusCommand.execute({
74
+ json: options.json || options.format === 'json',
75
+ detailed: options.verbose
76
+ });
77
+ }
78
+ catch (error) {
79
+ console.error(chalk_1.default.red(`❌ Provider list failed: ${error.message}`));
80
+ process.exit(1);
81
+ }
82
+ });
83
+ // Quota subcommand - show quota usage
84
+ providers
85
+ .command('quota')
86
+ .description('Show quota usage for all providers')
87
+ .option('-j, --json', 'Output in JSON format')
88
+ .action(async (options) => {
89
+ try {
90
+ await status_1.ProviderStatusCommand.execute({
91
+ detailed: true,
92
+ json: options.json
93
+ });
94
+ }
95
+ catch (error) {
96
+ console.error(chalk_1.default.red(`❌ Provider quota failed: ${error.message}`));
97
+ process.exit(1);
98
+ }
99
+ });
100
+ // Test subcommand - test provider connectivity
101
+ providers
102
+ .command('test')
103
+ .description('Test connectivity to a specific provider')
104
+ .argument('[provider]', 'Provider name to test (groq, github-models, claude, ollama)')
105
+ .option('-v, --verbose', 'Show detailed error information')
106
+ .action(async (provider, options) => {
107
+ try {
108
+ console.log(chalk_1.default.cyan(`\n🔍 Testing provider: ${provider || 'all'}\n`));
109
+ await status_1.ProviderStatusCommand.execute({
110
+ detailed: options.verbose || true
111
+ });
112
+ }
113
+ catch (error) {
114
+ console.error(chalk_1.default.red(`❌ Provider test failed: ${error.message}`));
115
+ process.exit(1);
116
+ }
117
+ });
118
+ // Switch subcommand - change default provider
119
+ providers
120
+ .command('switch')
121
+ .description('Switch the default provider')
122
+ .argument('<provider>', 'Provider name (groq, github-models, claude, ollama, openrouter)')
123
+ .action(async (provider) => {
124
+ const validProviders = ['groq', 'github-models', 'claude', 'ollama', 'openrouter', 'ruvllm'];
125
+ if (!validProviders.includes(provider.toLowerCase())) {
126
+ console.error(chalk_1.default.red(`❌ Invalid provider: ${provider}`));
127
+ console.log(chalk_1.default.yellow(`Valid providers: ${validProviders.join(', ')}`));
128
+ process.exit(1);
129
+ }
130
+ console.log(chalk_1.default.cyan(`\n🔄 Switching default provider to: ${provider}\n`));
131
+ console.log(chalk_1.default.yellow('To persist this change, update your configuration:'));
132
+ console.log(chalk_1.default.white(` aqe config set providers.default ${provider}`));
133
+ console.log(chalk_1.default.white(` # or edit .aqe/config.json directly\n`));
134
+ // Show current status of the target provider
135
+ console.log(chalk_1.default.cyan('Current status of target provider:'));
136
+ await status_1.ProviderStatusCommand.execute({ detailed: false });
137
+ });
138
+ return providers;
139
+ }
140
+ // Export command components for direct usage
141
+ var status_2 = require("./status");
142
+ Object.defineProperty(exports, "ProviderStatusCommand", { enumerable: true, get: function () { return status_2.ProviderStatusCommand; } });
143
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/providers/index.ts"],"names":[],"mappings":"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"}