agentic-qe 2.6.1 → 2.6.2

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 (114) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/README.md +222 -159
  3. package/dist/agents/BaseAgent.d.ts +19 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +41 -1
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/agents/CodeIntelligenceAgent.d.ts +14 -0
  8. package/dist/agents/CodeIntelligenceAgent.d.ts.map +1 -1
  9. package/dist/agents/CodeIntelligenceAgent.js +66 -0
  10. package/dist/agents/CodeIntelligenceAgent.js.map +1 -1
  11. package/dist/agents/CoverageAnalyzerAgent.d.ts +8 -0
  12. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  13. package/dist/agents/CoverageAnalyzerAgent.js +65 -1
  14. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  15. package/dist/agents/TestGeneratorAgent.d.ts +2 -2
  16. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  17. package/dist/agents/TestGeneratorAgent.js +16 -6
  18. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  19. package/dist/agents/adapters/AgentLLMAdapter.d.ts +127 -0
  20. package/dist/agents/adapters/AgentLLMAdapter.d.ts.map +1 -0
  21. package/dist/agents/adapters/AgentLLMAdapter.js +366 -0
  22. package/dist/agents/adapters/AgentLLMAdapter.js.map +1 -0
  23. package/dist/agents/adapters/index.d.ts +1 -0
  24. package/dist/agents/adapters/index.d.ts.map +1 -1
  25. package/dist/agents/adapters/index.js +5 -1
  26. package/dist/agents/adapters/index.js.map +1 -1
  27. package/dist/agents/interfaces/IAgentLLM.d.ts +257 -0
  28. package/dist/agents/interfaces/IAgentLLM.d.ts.map +1 -0
  29. package/dist/agents/interfaces/IAgentLLM.js +39 -0
  30. package/dist/agents/interfaces/IAgentLLM.js.map +1 -0
  31. package/dist/agents/interfaces/index.d.ts +10 -0
  32. package/dist/agents/interfaces/index.d.ts.map +1 -0
  33. package/dist/agents/interfaces/index.js +14 -0
  34. package/dist/agents/interfaces/index.js.map +1 -0
  35. package/dist/agents/n8n/N8nBaseAgent.d.ts +18 -0
  36. package/dist/agents/n8n/N8nBaseAgent.d.ts.map +1 -1
  37. package/dist/agents/n8n/N8nBaseAgent.js +80 -0
  38. package/dist/agents/n8n/N8nBaseAgent.js.map +1 -1
  39. package/dist/cli/commands/providers.d.ts +50 -0
  40. package/dist/cli/commands/providers.d.ts.map +1 -0
  41. package/dist/cli/commands/providers.js +403 -0
  42. package/dist/cli/commands/providers.js.map +1 -0
  43. package/dist/cli/index.js +62 -0
  44. package/dist/cli/index.js.map +1 -1
  45. package/dist/code-intelligence/indexing/FileWatcher.d.ts.map +1 -1
  46. package/dist/code-intelligence/indexing/FileWatcher.js +11 -8
  47. package/dist/code-intelligence/indexing/FileWatcher.js.map +1 -1
  48. package/dist/config/ConfigLoader.d.ts +85 -0
  49. package/dist/config/ConfigLoader.d.ts.map +1 -0
  50. package/dist/config/ConfigLoader.js +420 -0
  51. package/dist/config/ConfigLoader.js.map +1 -0
  52. package/dist/config/ProviderConfig.d.ts +153 -0
  53. package/dist/config/ProviderConfig.d.ts.map +1 -0
  54. package/dist/config/ProviderConfig.js +155 -0
  55. package/dist/config/ProviderConfig.js.map +1 -0
  56. package/dist/config/index.d.ts +35 -0
  57. package/dist/config/index.d.ts.map +1 -0
  58. package/dist/config/index.js +45 -0
  59. package/dist/config/index.js.map +1 -0
  60. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  61. package/dist/mcp/server-instructions.d.ts +1 -1
  62. package/dist/mcp/server-instructions.js +1 -1
  63. package/dist/mcp/server.d.ts +1 -0
  64. package/dist/mcp/server.d.ts.map +1 -1
  65. package/dist/memory/HNSWPatternStore.d.ts.map +1 -1
  66. package/dist/memory/HNSWPatternStore.js +23 -0
  67. package/dist/memory/HNSWPatternStore.js.map +1 -1
  68. package/dist/memory/RuVectorPatternStore.d.ts +5 -0
  69. package/dist/memory/RuVectorPatternStore.d.ts.map +1 -1
  70. package/dist/memory/RuVectorPatternStore.js +11 -0
  71. package/dist/memory/RuVectorPatternStore.js.map +1 -1
  72. package/dist/providers/CostOptimizationStrategies.d.ts +297 -0
  73. package/dist/providers/CostOptimizationStrategies.d.ts.map +1 -0
  74. package/dist/providers/CostOptimizationStrategies.js +831 -0
  75. package/dist/providers/CostOptimizationStrategies.js.map +1 -0
  76. package/dist/providers/HybridRouter.d.ts +142 -5
  77. package/dist/providers/HybridRouter.d.ts.map +1 -1
  78. package/dist/providers/HybridRouter.js +472 -6
  79. package/dist/providers/HybridRouter.js.map +1 -1
  80. package/dist/providers/HybridRouterComplexityIntegration.d.ts +169 -0
  81. package/dist/providers/HybridRouterComplexityIntegration.d.ts.map +1 -0
  82. package/dist/providers/HybridRouterComplexityIntegration.js +319 -0
  83. package/dist/providers/HybridRouterComplexityIntegration.js.map +1 -0
  84. package/dist/providers/HybridRouterModelSelection.d.ts +106 -0
  85. package/dist/providers/HybridRouterModelSelection.d.ts.map +1 -0
  86. package/dist/providers/HybridRouterModelSelection.js +420 -0
  87. package/dist/providers/HybridRouterModelSelection.js.map +1 -0
  88. package/dist/providers/LLMProviderFactory.d.ts +23 -9
  89. package/dist/providers/LLMProviderFactory.d.ts.map +1 -1
  90. package/dist/providers/LLMProviderFactory.js +54 -11
  91. package/dist/providers/LLMProviderFactory.js.map +1 -1
  92. package/dist/providers/OllamaProvider.d.ts +122 -0
  93. package/dist/providers/OllamaProvider.d.ts.map +1 -0
  94. package/dist/providers/OllamaProvider.js +425 -0
  95. package/dist/providers/OllamaProvider.js.map +1 -0
  96. package/dist/providers/index.d.ts +6 -1
  97. package/dist/providers/index.d.ts.map +1 -1
  98. package/dist/providers/index.js +17 -1
  99. package/dist/providers/index.js.map +1 -1
  100. package/dist/routing/ComplexityClassifier.d.ts +266 -0
  101. package/dist/routing/ComplexityClassifier.d.ts.map +1 -0
  102. package/dist/routing/ComplexityClassifier.js +567 -0
  103. package/dist/routing/ComplexityClassifier.js.map +1 -0
  104. package/dist/routing/ModelCapabilityRegistry.d.ts +98 -0
  105. package/dist/routing/ModelCapabilityRegistry.d.ts.map +1 -0
  106. package/dist/routing/ModelCapabilityRegistry.js +216 -0
  107. package/dist/routing/ModelCapabilityRegistry.js.map +1 -0
  108. package/dist/routing/index.d.ts +13 -0
  109. package/dist/routing/index.d.ts.map +1 -0
  110. package/dist/routing/index.js +24 -0
  111. package/dist/routing/index.js.map +1 -0
  112. package/docs/reference/model-capability-registry.md +402 -0
  113. package/docs/reference/provider-config-schema.md +608 -0
  114. package/package.json +19 -4
@@ -0,0 +1,403 @@
1
+ "use strict";
2
+ /**
3
+ * Providers CLI Commands
4
+ *
5
+ * Commands for managing LLM providers
6
+ * Provides list, status, switch, and test functionality for provider management.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.ProvidersCommand = void 0;
46
+ exports.providersList = providersList;
47
+ exports.providersStatus = providersStatus;
48
+ exports.providersSwitch = providersSwitch;
49
+ exports.providersTest = providersTest;
50
+ const chalk_1 = __importDefault(require("chalk"));
51
+ const LLMProviderFactory_1 = require("../../providers/LLMProviderFactory");
52
+ const ConfigLoader_1 = require("../../config/ConfigLoader");
53
+ const Logger_1 = require("../../utils/Logger");
54
+ const ProcessExit_1 = require("../../utils/ProcessExit");
55
+ /**
56
+ * Providers command class
57
+ */
58
+ class ProvidersCommand {
59
+ /**
60
+ * Execute providers command
61
+ */
62
+ static async execute(subcommand, args = [], options = {}) {
63
+ switch (subcommand) {
64
+ case 'list':
65
+ await this.listProviders(options);
66
+ break;
67
+ case 'status':
68
+ await this.showStatus(options);
69
+ break;
70
+ case 'switch':
71
+ await this.switchProvider(args[0], options);
72
+ break;
73
+ case 'test':
74
+ await this.testProvider(options.provider || args[0], options);
75
+ break;
76
+ default:
77
+ console.error(chalk_1.default.red(`❌ Unknown providers command: ${subcommand}`));
78
+ this.showHelp();
79
+ ProcessExit_1.ProcessExit.exitIfNotTest(1);
80
+ }
81
+ }
82
+ /**
83
+ * List all configured providers and their status
84
+ */
85
+ static async listProviders(options) {
86
+ try {
87
+ console.log(chalk_1.default.blue('\n🔌 LLM Providers:\n'));
88
+ // Load config to get provider settings
89
+ const config = await (0, ConfigLoader_1.loadConfig)();
90
+ const factory = new LLMProviderFactory_1.LLMProviderFactory();
91
+ await factory.initialize();
92
+ const availableProviders = factory.getAvailableProviders();
93
+ const signals = factory.getEnvironmentSignals();
94
+ // Determine default provider (lowest priority number, or first enabled)
95
+ const defaultProvider = config.providers
96
+ ?.filter(p => p.enabled)
97
+ .sort((a, b) => a.priority - b.priority)[0]?.type || 'auto';
98
+ if (options.format === 'json') {
99
+ const providerData = {
100
+ defaultProvider,
101
+ availableProviders,
102
+ providers: config.providers?.map(p => ({
103
+ type: p.type,
104
+ enabled: p.enabled,
105
+ model: p.defaultModel,
106
+ priority: p.priority,
107
+ hasApiKey: !!p.apiKey,
108
+ isAvailable: availableProviders.includes(p.type)
109
+ }))
110
+ };
111
+ console.log(JSON.stringify(providerData, null, 2));
112
+ await factory.shutdown();
113
+ return;
114
+ }
115
+ // Table format
116
+ const table = [];
117
+ // Check each provider type
118
+ const providerTypes = ['claude', 'openrouter', 'ollama', 'ruvllm'];
119
+ for (const type of providerTypes) {
120
+ const providerConfig = config.providers?.find(p => p.type === type);
121
+ const isAvailable = availableProviders.includes(type);
122
+ const isDefault = defaultProvider === type;
123
+ let statusText = '✗ not configured';
124
+ let statusColor = chalk_1.default.red;
125
+ if (isAvailable) {
126
+ statusText = '✓ ready';
127
+ statusColor = chalk_1.default.green;
128
+ }
129
+ else if (providerConfig?.enabled) {
130
+ // Check why it's not available
131
+ if (type === 'claude' && !signals.hasAnthropicKey) {
132
+ statusText = '✗ no api key';
133
+ statusColor = chalk_1.default.yellow;
134
+ }
135
+ else if (type === 'openrouter' && !signals.hasOpenRouterKey) {
136
+ statusText = '✗ no api key';
137
+ statusColor = chalk_1.default.yellow;
138
+ }
139
+ else if (type === 'ollama' && !signals.hasOllamaRunning) {
140
+ statusText = '✗ not running';
141
+ statusColor = chalk_1.default.yellow;
142
+ }
143
+ else if (type === 'ruvllm' && !signals.hasRuvllm) {
144
+ statusText = '✗ not installed';
145
+ statusColor = chalk_1.default.yellow;
146
+ }
147
+ else {
148
+ statusText = '✗ failed';
149
+ statusColor = chalk_1.default.red;
150
+ }
151
+ }
152
+ table.push({
153
+ provider: type,
154
+ status: statusColor(statusText),
155
+ default: isDefault ? '✓' : '',
156
+ model: providerConfig?.defaultModel || '-'
157
+ });
158
+ }
159
+ // Print table
160
+ console.log('┌─────────────┬──────────────────┬─────────┬──────────────────┐');
161
+ console.log('│ Provider │ Status │ Default │ Model │');
162
+ console.log('├─────────────┼──────────────────┼─────────┼──────────────────┤');
163
+ for (const row of table) {
164
+ const provider = row.provider.padEnd(11);
165
+ const status = row.status.padEnd(16 + (row.status.length - this.stripAnsi(row.status).length));
166
+ const def = row.default.padEnd(7);
167
+ const model = row.model.padEnd(16);
168
+ console.log(`│ ${provider} │ ${status} │ ${def} │ ${model} │`);
169
+ }
170
+ console.log('└─────────────┴──────────────────┴─────────┴──────────────────┘\n');
171
+ if (options.verbose) {
172
+ console.log(chalk_1.default.blue('Environment Signals:\n'));
173
+ console.log(` ANTHROPIC_API_KEY: ${signals.hasAnthropicKey ? '✓' : '✗'}`);
174
+ console.log(` OPENROUTER_API_KEY: ${signals.hasOpenRouterKey ? '✓' : '✗'}`);
175
+ console.log(` Ollama Running: ${signals.hasOllamaRunning ? '✓' : '✗'}`);
176
+ console.log(` ruvLLM Available: ${signals.hasRuvllm ? '✓' : '✗'}`);
177
+ console.log(` Claude Code Environment: ${signals.isClaudeCode ? '✓' : '✗'}\n`);
178
+ }
179
+ await factory.shutdown();
180
+ }
181
+ catch (error) {
182
+ console.error(chalk_1.default.red('❌ Failed to list providers:'), error.message);
183
+ ProcessExit_1.ProcessExit.exitIfNotTest(1);
184
+ }
185
+ }
186
+ /**
187
+ * Show current provider status and health
188
+ */
189
+ static async showStatus(options) {
190
+ try {
191
+ console.log(chalk_1.default.blue('\n📊 Provider Status:\n'));
192
+ const config = await (0, ConfigLoader_1.loadConfig)();
193
+ const factory = new LLMProviderFactory_1.LLMProviderFactory();
194
+ await factory.initialize();
195
+ const availableProviders = factory.getAvailableProviders();
196
+ // Determine default provider (lowest priority number, or first enabled)
197
+ const defaultProvider = config.providers
198
+ ?.filter(p => p.enabled)
199
+ .sort((a, b) => a.priority - b.priority)[0]?.type || 'auto';
200
+ console.log(` Default Provider: ${chalk_1.default.cyan(defaultProvider)}`);
201
+ console.log(` Available Providers: ${chalk_1.default.green(availableProviders.length)}`);
202
+ console.log(` Providers: ${availableProviders.map(p => chalk_1.default.cyan(p)).join(', ') || chalk_1.default.gray('none')}\n`);
203
+ // Show provider details
204
+ for (const type of availableProviders) {
205
+ const metadata = factory.getProviderMetadata(type);
206
+ if (!metadata)
207
+ continue;
208
+ console.log(chalk_1.default.blue(`${type}:`));
209
+ console.log(` Name: ${metadata.name}`);
210
+ console.log(` Version: ${metadata.version}`);
211
+ console.log(` Models: ${metadata.models.slice(0, 3).join(', ')}${metadata.models.length > 3 ? '...' : ''}`);
212
+ console.log(` Location: ${metadata.location}`);
213
+ console.log(` Capabilities:`);
214
+ console.log(` Streaming: ${metadata.capabilities.streaming ? '✓' : '✗'}`);
215
+ console.log(` Caching: ${metadata.capabilities.caching ? '✓' : '✗'}`);
216
+ console.log(` Embeddings: ${metadata.capabilities.embeddings ? '✓' : '✗'}`);
217
+ console.log(` Vision: ${metadata.capabilities.vision ? '✓' : '✗'}`);
218
+ console.log(` Cost per 1M tokens:`);
219
+ console.log(` Input: $${metadata.costs.inputPerMillion.toFixed(2)}`);
220
+ console.log(` Output: $${metadata.costs.outputPerMillion.toFixed(2)}\n`);
221
+ }
222
+ // Show usage statistics if verbose
223
+ if (options.verbose) {
224
+ const usageStats = factory.getUsageStats();
225
+ if (usageStats.size > 0) {
226
+ console.log(chalk_1.default.blue('Usage Statistics:\n'));
227
+ for (const [type, stats] of usageStats.entries()) {
228
+ if (stats.requestCount > 0) {
229
+ console.log(chalk_1.default.cyan(`${type}:`));
230
+ console.log(` Requests: ${stats.requestCount}`);
231
+ console.log(` Success Rate: ${((stats.successCount / stats.requestCount) * 100).toFixed(1)}%`);
232
+ console.log(` Total Cost: $${stats.totalCost.toFixed(4)}`);
233
+ console.log(` Avg Latency: ${stats.averageLatency.toFixed(0)}ms\n`);
234
+ }
235
+ }
236
+ }
237
+ }
238
+ await factory.shutdown();
239
+ }
240
+ catch (error) {
241
+ console.error(chalk_1.default.red('❌ Failed to get status:'), error.message);
242
+ ProcessExit_1.ProcessExit.exitIfNotTest(1);
243
+ }
244
+ }
245
+ /**
246
+ * Switch the default provider
247
+ */
248
+ static async switchProvider(provider, options) {
249
+ try {
250
+ if (!provider) {
251
+ console.error(chalk_1.default.red('❌ Provider name required'));
252
+ console.log(chalk_1.default.gray('\nUsage: aqe providers switch <provider>'));
253
+ console.log(chalk_1.default.gray('Valid providers: claude, openrouter, ollama, ruvllm\n'));
254
+ ProcessExit_1.ProcessExit.exitIfNotTest(1);
255
+ return;
256
+ }
257
+ const validProviders = ['claude', 'openrouter', 'ollama', 'ruvllm'];
258
+ if (!validProviders.includes(provider)) {
259
+ console.error(chalk_1.default.red(`❌ Invalid provider: ${provider}`));
260
+ console.log(chalk_1.default.gray(`\nValid providers: ${validProviders.join(', ')}\n`));
261
+ ProcessExit_1.ProcessExit.exitIfNotTest(1);
262
+ return;
263
+ }
264
+ console.log(chalk_1.default.blue(`🔄 Switching default provider to: ${chalk_1.default.cyan(provider)}\n`));
265
+ const config = await (0, ConfigLoader_1.loadConfig)();
266
+ // Check if provider is configured
267
+ const providerConfig = config.providers?.find(p => p.type === provider);
268
+ if (!providerConfig) {
269
+ console.error(chalk_1.default.red(`❌ Provider ${provider} is not configured`));
270
+ console.log(chalk_1.default.yellow('\n💡 Add provider to .aqe/providers.yaml first\n'));
271
+ ProcessExit_1.ProcessExit.exitIfNotTest(1);
272
+ return;
273
+ }
274
+ // Update priority to make this provider the default (priority 0)
275
+ // and adjust other providers' priorities
276
+ config.providers = config.providers?.map(p => {
277
+ if (p.type === provider) {
278
+ return { ...p, priority: 0, enabled: true };
279
+ }
280
+ return { ...p, priority: p.priority >= 0 ? p.priority + 1 : p.priority };
281
+ });
282
+ // Save config
283
+ const { ConfigLoader } = await Promise.resolve().then(() => __importStar(require('../../config/ConfigLoader')));
284
+ const loader = new ConfigLoader();
285
+ await loader.save(config, '.aqe/providers.yaml');
286
+ console.log(chalk_1.default.green(`✅ Default provider switched to: ${provider}\n`));
287
+ // Test the provider
288
+ console.log(chalk_1.default.gray('Testing provider...\n'));
289
+ await this.testProvider(provider, options);
290
+ }
291
+ catch (error) {
292
+ console.error(chalk_1.default.red('❌ Failed to switch provider:'), error.message);
293
+ ProcessExit_1.ProcessExit.exitIfNotTest(1);
294
+ }
295
+ }
296
+ /**
297
+ * Test a specific provider's connectivity
298
+ */
299
+ static async testProvider(provider, options) {
300
+ try {
301
+ if (!provider) {
302
+ console.error(chalk_1.default.red('❌ Provider name required'));
303
+ console.log(chalk_1.default.gray('\nUsage: aqe providers test <provider>'));
304
+ console.log(chalk_1.default.gray('Valid providers: claude, openrouter, ollama, ruvllm\n'));
305
+ ProcessExit_1.ProcessExit.exitIfNotTest(1);
306
+ return;
307
+ }
308
+ console.log(chalk_1.default.blue(`🔍 Testing provider: ${chalk_1.default.cyan(provider)}\n`));
309
+ const factory = new LLMProviderFactory_1.LLMProviderFactory();
310
+ await factory.initialize();
311
+ const providerInstance = factory.getProvider(provider);
312
+ if (!providerInstance) {
313
+ console.error(chalk_1.default.red(`❌ Provider ${provider} is not available`));
314
+ console.log(chalk_1.default.yellow('\n💡 Check configuration and API keys\n'));
315
+ ProcessExit_1.ProcessExit.exitIfNotTest(1);
316
+ return;
317
+ }
318
+ // Perform health check
319
+ console.log(chalk_1.default.gray('Performing health check...\n'));
320
+ const startTime = Date.now();
321
+ const health = await providerInstance.healthCheck();
322
+ const duration = Date.now() - startTime;
323
+ if (health.healthy) {
324
+ console.log(chalk_1.default.green('✅ Provider is healthy\n'));
325
+ console.log(` Response Time: ${chalk_1.default.cyan(duration + 'ms')}`);
326
+ if (health.latency) {
327
+ console.log(` API Latency: ${chalk_1.default.cyan(health.latency + 'ms')}`);
328
+ }
329
+ if (health.metadata) {
330
+ console.log(` Metadata: ${JSON.stringify(health.metadata, null, 2)}`);
331
+ }
332
+ }
333
+ else {
334
+ console.log(chalk_1.default.red('❌ Provider is unhealthy\n'));
335
+ console.log(` Response Time: ${chalk_1.default.cyan(duration + 'ms')}`);
336
+ if (health.error) {
337
+ console.log(` Error: ${chalk_1.default.red(health.error)}`);
338
+ }
339
+ }
340
+ // Show provider metadata
341
+ const metadata = providerInstance.getMetadata();
342
+ console.log(chalk_1.default.blue('\nProvider Information:\n'));
343
+ console.log(` Name: ${metadata.name}`);
344
+ console.log(` Version: ${metadata.version}`);
345
+ console.log(` Available Models: ${metadata.models.length}`);
346
+ console.log(` Location: ${metadata.location}`);
347
+ console.log();
348
+ await factory.shutdown();
349
+ }
350
+ catch (error) {
351
+ console.error(chalk_1.default.red('❌ Provider test failed:'), error.message);
352
+ if (options.verbose) {
353
+ console.error(chalk_1.default.gray(error.stack));
354
+ }
355
+ ProcessExit_1.ProcessExit.exitIfNotTest(1);
356
+ }
357
+ }
358
+ /**
359
+ * Strip ANSI codes for padding calculation
360
+ */
361
+ static stripAnsi(str) {
362
+ return str.replace(/\u001b\[[0-9;]*m/g, '');
363
+ }
364
+ /**
365
+ * Show command help
366
+ */
367
+ static showHelp() {
368
+ console.log(chalk_1.default.blue('\n📚 Providers Commands:\n'));
369
+ console.log(chalk_1.default.cyan(' aqe providers list') + chalk_1.default.gray(' - List all configured providers'));
370
+ console.log(chalk_1.default.cyan(' aqe providers status') + chalk_1.default.gray(' - Show current provider status'));
371
+ console.log(chalk_1.default.cyan(' aqe providers switch <name>') + chalk_1.default.gray(' - Switch default provider'));
372
+ console.log(chalk_1.default.cyan(' aqe providers test [provider]') + chalk_1.default.gray(' - Test provider connectivity'));
373
+ console.log(chalk_1.default.blue('\nOptions:\n'));
374
+ console.log(chalk_1.default.gray(' --format <format> - Output format (json|table)'));
375
+ console.log(chalk_1.default.gray(' --verbose, -v - Verbose output'));
376
+ console.log(chalk_1.default.blue('\nExamples:\n'));
377
+ console.log(chalk_1.default.gray(' aqe providers list'));
378
+ console.log(chalk_1.default.gray(' aqe providers status --verbose'));
379
+ console.log(chalk_1.default.gray(' aqe providers switch ollama'));
380
+ console.log(chalk_1.default.gray(' aqe providers test claude'));
381
+ console.log();
382
+ }
383
+ }
384
+ exports.ProvidersCommand = ProvidersCommand;
385
+ ProvidersCommand.logger = Logger_1.Logger.getInstance();
386
+ // Export command functions for CLI registration
387
+ async function providersList(options) {
388
+ await ProvidersCommand.execute('list', [], options);
389
+ ProcessExit_1.ProcessExit.exitIfNotTest(0);
390
+ }
391
+ async function providersStatus(options) {
392
+ await ProvidersCommand.execute('status', [], options);
393
+ ProcessExit_1.ProcessExit.exitIfNotTest(0);
394
+ }
395
+ async function providersSwitch(provider, options) {
396
+ await ProvidersCommand.execute('switch', [provider], options);
397
+ ProcessExit_1.ProcessExit.exitIfNotTest(0);
398
+ }
399
+ async function providersTest(provider, options) {
400
+ await ProvidersCommand.execute('test', [provider], options);
401
+ ProcessExit_1.ProcessExit.exitIfNotTest(0);
402
+ }
403
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/cli/commands/providers.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -58,6 +58,7 @@ const transferCommands = __importStar(require("./commands/transfer/index.js"));
58
58
  const patternsCommands = __importStar(require("./commands/patterns/index.js"));
59
59
  const improveCommands = __importStar(require("./commands/improve/index.js"));
60
60
  const skillsCommands = __importStar(require("./commands/skills/index.js"));
61
+ const providersCommands = __importStar(require("./commands/providers"));
61
62
  const init_1 = require("./commands/init");
62
63
  const quantization_1 = require("./commands/quantization");
63
64
  const constitution_1 = require("./commands/constitution");
@@ -1268,6 +1269,67 @@ improveCommand
1268
1269
  process.exit(1);
1269
1270
  }
1270
1271
  });
1272
+ /**
1273
+ * Providers commands
1274
+ */
1275
+ const providersCommand = program
1276
+ .command('providers')
1277
+ .description('Manage LLM providers');
1278
+ providersCommand
1279
+ .command('list')
1280
+ .description('List all configured providers and their status')
1281
+ .option('-f, --format <format>', 'Output format (json, table)', 'table')
1282
+ .option('-v, --verbose', 'Show detailed information')
1283
+ .action(async (options) => {
1284
+ try {
1285
+ await providersCommands.providersList(options);
1286
+ }
1287
+ catch (error) {
1288
+ console.error(chalk_1.default.red('❌ Providers list failed:'), error);
1289
+ process.exit(1);
1290
+ }
1291
+ });
1292
+ providersCommand
1293
+ .command('status')
1294
+ .description('Show current provider status and health')
1295
+ .option('-f, --format <format>', 'Output format (json, table)', 'table')
1296
+ .option('-v, --verbose', 'Show usage statistics')
1297
+ .action(async (options) => {
1298
+ try {
1299
+ await providersCommands.providersStatus(options);
1300
+ }
1301
+ catch (error) {
1302
+ console.error(chalk_1.default.red('❌ Providers status failed:'), error);
1303
+ process.exit(1);
1304
+ }
1305
+ });
1306
+ providersCommand
1307
+ .command('switch')
1308
+ .description('Switch the default provider')
1309
+ .argument('<provider>', 'Provider name (ollama, claude, openrouter, ruvllm)')
1310
+ .action(async (provider, options) => {
1311
+ try {
1312
+ await providersCommands.providersSwitch(provider, options);
1313
+ }
1314
+ catch (error) {
1315
+ console.error(chalk_1.default.red('❌ Providers switch failed:'), error);
1316
+ process.exit(1);
1317
+ }
1318
+ });
1319
+ providersCommand
1320
+ .command('test')
1321
+ .description('Test a specific provider\'s connectivity')
1322
+ .argument('[provider]', 'Provider name to test')
1323
+ .option('-v, --verbose', 'Show detailed error information')
1324
+ .action(async (provider, options) => {
1325
+ try {
1326
+ await providersCommands.providersTest(provider, { ...options, provider });
1327
+ }
1328
+ catch (error) {
1329
+ console.error(chalk_1.default.red('❌ Provider test failed:'), error);
1330
+ process.exit(1);
1331
+ }
1332
+ });
1271
1333
  /**
1272
1334
  * Telemetry commands
1273
1335
  */