@iservu-inc/adf-cli 0.5.5-debug.0 → 0.5.5
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.
- package/CHANGELOG.md +44 -0
- package/lib/ai/ai-config.js +20 -8
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,50 @@ All notable changes to `@iservu-inc/adf-cli` will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.5.5] - 2025-10-05
|
|
9
|
+
|
|
10
|
+
### ✅ Fixed AI Provider Configuration Display
|
|
11
|
+
|
|
12
|
+
**FIX:** Restored checkmarks (✓) for configured AI providers alongside the active (★) indicator.
|
|
13
|
+
|
|
14
|
+
#### What Was Broken
|
|
15
|
+
|
|
16
|
+
In the AI provider selection menu, only the "★ Active" indicator was showing. The checkmarks that indicate which providers have configured API keys were missing.
|
|
17
|
+
|
|
18
|
+
**Before (broken):**
|
|
19
|
+
```
|
|
20
|
+
? Select AI provider:
|
|
21
|
+
Anthropic Claude
|
|
22
|
+
OpenAI GPT
|
|
23
|
+
Google Gemini
|
|
24
|
+
OpenRouter (Multi-Model) ★ Active
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**After (fixed):**
|
|
28
|
+
```
|
|
29
|
+
? Select AI provider:
|
|
30
|
+
Anthropic Claude ✓
|
|
31
|
+
OpenAI GPT ✓
|
|
32
|
+
Google Gemini ✓
|
|
33
|
+
OpenRouter (Multi-Model) ✓ ★ Active
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
#### What We Fixed
|
|
37
|
+
|
|
38
|
+
- Refactored provider name building logic for clarity
|
|
39
|
+
- Added proper spacing between provider name, checkmark, and active indicator
|
|
40
|
+
- Both indicators now show correctly:
|
|
41
|
+
- **✓** = API key configured
|
|
42
|
+
- **★ Active** = Currently selected provider
|
|
43
|
+
|
|
44
|
+
#### Technical Changes
|
|
45
|
+
|
|
46
|
+
- Modified: `lib/ai/ai-config.js` - Cleaner `buildProviderName()` function
|
|
47
|
+
- Better string concatenation with consistent spacing
|
|
48
|
+
- Removed debug logging
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
8
52
|
## [0.5.4] - 2025-10-05
|
|
9
53
|
|
|
10
54
|
### ✨ Enhanced Version & Help Display
|
package/lib/ai/ai-config.js
CHANGED
|
@@ -275,11 +275,8 @@ async function configureAIProvider(projectPath = process.cwd()) {
|
|
|
275
275
|
const apiKey = process.env[provider.envVar] || existingEnv[provider.envVar];
|
|
276
276
|
if (apiKey) {
|
|
277
277
|
availableProviders.push(provider);
|
|
278
|
-
console.log(chalk.gray(`[DEBUG] Found ${provider.id}: ${provider.envVar}=${apiKey ? '***' : 'not found'}`));
|
|
279
278
|
}
|
|
280
279
|
}
|
|
281
|
-
console.log(chalk.gray(`[DEBUG] availableProviders length: ${availableProviders.length}`));
|
|
282
|
-
console.log(chalk.gray(`[DEBUG] availableProviders ids: ${availableProviders.map(p => p.id).join(', ')}`));
|
|
283
280
|
|
|
284
281
|
// Get currently active provider and model
|
|
285
282
|
const currentProvider = process.env.ADF_CURRENT_PROVIDER || existingEnv.ADF_CURRENT_PROVIDER;
|
|
@@ -301,25 +298,40 @@ async function configureAIProvider(projectPath = process.cwd()) {
|
|
|
301
298
|
}
|
|
302
299
|
}
|
|
303
300
|
|
|
304
|
-
// Provider selection
|
|
301
|
+
// Provider selection with status indicators
|
|
302
|
+
const buildProviderName = (provider, providerId) => {
|
|
303
|
+
const isConfigured = availableProviders.find(p => p.id === providerId);
|
|
304
|
+
const isActive = currentProvider === providerId;
|
|
305
|
+
|
|
306
|
+
let name = provider.name;
|
|
307
|
+
if (isConfigured) {
|
|
308
|
+
name += chalk.green(' ✓');
|
|
309
|
+
}
|
|
310
|
+
if (isActive) {
|
|
311
|
+
name += chalk.cyan(' ★ Active');
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
return name;
|
|
315
|
+
};
|
|
316
|
+
|
|
305
317
|
const providerChoices = [
|
|
306
318
|
{
|
|
307
|
-
name:
|
|
319
|
+
name: buildProviderName(AI_PROVIDERS.ANTHROPIC, 'anthropic'),
|
|
308
320
|
value: 'anthropic',
|
|
309
321
|
short: 'Anthropic'
|
|
310
322
|
},
|
|
311
323
|
{
|
|
312
|
-
name:
|
|
324
|
+
name: buildProviderName(AI_PROVIDERS.OPENAI, 'openai'),
|
|
313
325
|
value: 'openai',
|
|
314
326
|
short: 'OpenAI'
|
|
315
327
|
},
|
|
316
328
|
{
|
|
317
|
-
name:
|
|
329
|
+
name: buildProviderName(AI_PROVIDERS.GOOGLE, 'google'),
|
|
318
330
|
value: 'google',
|
|
319
331
|
short: 'Google'
|
|
320
332
|
},
|
|
321
333
|
{
|
|
322
|
-
name:
|
|
334
|
+
name: buildProviderName(AI_PROVIDERS.OPENROUTER, 'openrouter'),
|
|
323
335
|
value: 'openrouter',
|
|
324
336
|
short: 'OpenRouter'
|
|
325
337
|
}
|