@iservu-inc/adf-cli 0.12.9 ā 0.12.10
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/.claude/settings.local.json +2 -1
- package/CHANGELOG.md +109 -0
- package/README.md +33 -14
- package/lib/ai/ai-config.js +37 -9
- package/lib/commands/deploy.js +2 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,115 @@ 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.12.9] - 2025-12-23
|
|
9
|
+
|
|
10
|
+
### š Multi-Tool Expansion & AI Provider Robustness
|
|
11
|
+
|
|
12
|
+
**MAJOR ENHANCEMENTS:** Expanded deployment support to 4 additional CLI tools and significantly improved AI provider reliability with comprehensive model verification and parameter compatibility fixes.
|
|
13
|
+
|
|
14
|
+
#### What's New
|
|
15
|
+
|
|
16
|
+
**New CLI Tool Support:**
|
|
17
|
+
- **OpenCode CLI** - Complete generator with JSON configuration
|
|
18
|
+
- Output: `.opencode.json` with project config, agents, and MCP servers
|
|
19
|
+
- Model selection: Anthropic Claude models based on framework complexity
|
|
20
|
+
- MCP integration: Filesystem server for project access
|
|
21
|
+
- Auto-compacting and debug configuration
|
|
22
|
+
|
|
23
|
+
- **Google Gemini CLI** - Markdown-based project context
|
|
24
|
+
- Output: `GEMINI.md` with structured project information
|
|
25
|
+
- Role-specific agent guidance
|
|
26
|
+
- Build/test/lint command reference
|
|
27
|
+
- Development guidelines and security standards
|
|
28
|
+
|
|
29
|
+
- **DeepAgent (Abacus.ai)** - Agent markdown deployment
|
|
30
|
+
- Output: `.deepagent/agents/*.md` + `.deepagent/README.md`
|
|
31
|
+
- Similar to Claude Code but for DeepAgent CLI
|
|
32
|
+
- Project overview and workflow documentation
|
|
33
|
+
- Per-agent markdown files with role-specific instructions
|
|
34
|
+
|
|
35
|
+
- **Zed Editor Support Verified** - Confirmed full 253-line generator integration
|
|
36
|
+
- MCP server configuration (project_context, archon)
|
|
37
|
+
- AGENTS.md symlink support (`.zed/rules -> ../AGENTS.md`)
|
|
38
|
+
- Agent-specific keymap configuration
|
|
39
|
+
- Model selection based on framework complexity
|
|
40
|
+
|
|
41
|
+
**AI Provider Improvements:**
|
|
42
|
+
|
|
43
|
+
**Model Verification System:**
|
|
44
|
+
- ā
**Test Before Save** - All models now tested with actual API request before configuration
|
|
45
|
+
- ā
**Clear Error Messages** - Detailed failure reasons when models don't work
|
|
46
|
+
- ā
**Retry Option** - Easy retry with different model on failure
|
|
47
|
+
- ā
**Operational Status** - Distinguishes between "listed" and "operational" models
|
|
48
|
+
|
|
49
|
+
**Google Gemini Fixes:**
|
|
50
|
+
- š§ Fixed API key validation (`genAI.listModels is not a function` error)
|
|
51
|
+
- š§ Implemented dynamic model fetching via REST API (`/v1beta/models` endpoint)
|
|
52
|
+
- š§ Updated validation model from deprecated `gemini-pro` to `gemini-1.5-flash`
|
|
53
|
+
- š§ Filters models by `generateContent` support capability
|
|
54
|
+
|
|
55
|
+
**Anthropic Model Expansion:**
|
|
56
|
+
- š Expanded from 3 to 11 models with comprehensive coverage
|
|
57
|
+
- š Added Claude 4.5 series (Sonnet, Opus)
|
|
58
|
+
- š Added Claude 3.5 series (Sonnet variants, Haiku)
|
|
59
|
+
- š Added Claude 3 series (Opus, Sonnet, Haiku)
|
|
60
|
+
- š Added Claude 2 series (2.1, 2.0, Instant)
|
|
61
|
+
- š Attempts dynamic fetch from API with fallback to curated list
|
|
62
|
+
|
|
63
|
+
**OpenAI & OpenRouter Parameter Compatibility:**
|
|
64
|
+
- š§ Fixed parameter compatibility for newer models (GPT-5, o-series)
|
|
65
|
+
- š§ Updated regex pattern from `/^(o\d|gpt-5)/` to `/^(o1|o3|gpt-5)/i`
|
|
66
|
+
- š§ Uses `max_completion_tokens` for reasoning models instead of `max_tokens`
|
|
67
|
+
- š§ Automatic retry with fallback parameters on 400 errors
|
|
68
|
+
- ā
Confirmed working with `gpt-5.2-chat-latest` and other GPT-5 models
|
|
69
|
+
|
|
70
|
+
**Enhanced Help System:**
|
|
71
|
+
- š Comprehensive `--help` documentation for all commands
|
|
72
|
+
- š Quick Start section with step-by-step workflow
|
|
73
|
+
- š Detailed command breakdowns (init, deploy, config, update)
|
|
74
|
+
- š Tool-by-tool deployment guide with output locations
|
|
75
|
+
- š Performance mode explanations (Fast/Balanced/Comprehensive)
|
|
76
|
+
- š AI provider setup instructions with API key links
|
|
77
|
+
- š Configuration categories with feature descriptions
|
|
78
|
+
- š Examples for common workflows
|
|
79
|
+
|
|
80
|
+
#### Technical Details
|
|
81
|
+
|
|
82
|
+
**New Files:**
|
|
83
|
+
- `lib/generators/opencode-generator.js` - OpenCode CLI configuration generator (120+ lines)
|
|
84
|
+
- `lib/generators/gemini-cli-generator.js` - Gemini CLI markdown generator (150+ lines)
|
|
85
|
+
- `lib/generators/deepagent-generator.js` - DeepAgent configuration generator (145+ lines)
|
|
86
|
+
|
|
87
|
+
**Modified Files:**
|
|
88
|
+
- `lib/ai/ai-client.js` - Parameter compatibility fixes for newer models
|
|
89
|
+
- `lib/ai/ai-config.js` - Model verification, Google Gemini fixes, Anthropic expansion
|
|
90
|
+
- `bin/adf.js` - Comprehensive help system enhancements (300+ lines of documentation)
|
|
91
|
+
- `lib/commands/deploy.js` - Added new tool registrations and deployment cases
|
|
92
|
+
- `lib/generators/index.js` - Export new generators
|
|
93
|
+
|
|
94
|
+
**Deployment Support Summary:**
|
|
95
|
+
- **IDEs (6):** Windsurf, Cursor, VS Code, Zed, Antigravity, VS Code Insider
|
|
96
|
+
- **CLI Tools (5):** Claude Code, OpenCode, Gemini CLI, DeepAgent, Generic
|
|
97
|
+
- **Total Tools:** 11 deployment targets
|
|
98
|
+
|
|
99
|
+
#### Bug Fixes
|
|
100
|
+
- Fixed: OpenRouter models listed but not operational (added verification)
|
|
101
|
+
- Fixed: OpenAI GPT-5 models parameter incompatibility (`max_tokens` vs `max_completion_tokens`)
|
|
102
|
+
- Fixed: Google Gemini API validation failure (`listModels` method error)
|
|
103
|
+
- Fixed: Anthropic incomplete model listing (3 models ā 11 models)
|
|
104
|
+
- Fixed: Model testing skipped during configuration process
|
|
105
|
+
|
|
106
|
+
#### Keywords Added
|
|
107
|
+
- `opencode` - OpenCode CLI support
|
|
108
|
+
- `gemini-cli` - Google Gemini CLI support
|
|
109
|
+
- `deepagent` - Abacus.ai DeepAgent support
|
|
110
|
+
|
|
111
|
+
#### Backward Compatibility
|
|
112
|
+
- ā
**100% Backward Compatible** - All changes are additive
|
|
113
|
+
- ā
All existing deployments continue to work
|
|
114
|
+
- ā
No breaking changes to API or CLI commands
|
|
115
|
+
- ā
Existing configurations automatically benefit from improved verification
|
|
116
|
+
|
|
8
117
|
## [0.12.0] - 2025-12-22
|
|
9
118
|
|
|
10
119
|
### šÆ Agent-Native Development Framework (ANDF) Standard Implementation
|
package/README.md
CHANGED
|
@@ -98,15 +98,21 @@ adf deploy --list
|
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
**Supported Tools:**
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
|
|
101
|
+
|
|
102
|
+
**IDEs:**
|
|
103
|
+
- windsurf - Codeium Windsurf IDE
|
|
104
|
+
- cursor - Cursor AI IDE
|
|
105
|
+
- vscode - Visual Studio Code
|
|
106
|
+
- vscode-insider - VS Code Insider
|
|
107
|
+
- zed - Zed Editor
|
|
108
|
+
- antigravity - Google Antigravity
|
|
109
|
+
|
|
110
|
+
**CLI Tools:**
|
|
111
|
+
- claude-code - Anthropic Claude Code CLI
|
|
112
|
+
- opencode - OpenCode CLI
|
|
113
|
+
- gemini-cli - Google Gemini CLI
|
|
114
|
+
- deepagent - Abacus.ai DeepAgent
|
|
115
|
+
- generic - Generic AI tools
|
|
110
116
|
|
|
111
117
|
### Update CLI
|
|
112
118
|
|
|
@@ -495,16 +501,29 @@ When we release updates to the framework:
|
|
|
495
501
|
|
|
496
502
|
See [CHANGELOG.md](./CHANGELOG.md) for detailed version history.
|
|
497
503
|
|
|
498
|
-
**Latest:** v0.
|
|
499
|
-
- **
|
|
504
|
+
**Latest:** v0.12.9 (2025-12-23)
|
|
505
|
+
- **Multi-Tool Expansion & AI Provider Robustness (v0.12.9)**
|
|
506
|
+
- Added 4 new CLI tools: OpenCode, Gemini CLI, DeepAgent, verified Zed support
|
|
507
|
+
- Comprehensive AI provider improvements with model verification
|
|
508
|
+
- Fixed Google Gemini API integration and expanded Anthropic models (3 ā 11)
|
|
509
|
+
- Enhanced help system with detailed documentation
|
|
510
|
+
- OpenAI/OpenRouter parameter compatibility for GPT-5 and o-series models
|
|
511
|
+
- All models now tested before configuration save
|
|
512
|
+
|
|
513
|
+
**Previous Releases:**
|
|
514
|
+
- **v0.12.0 (2025-12-22)** - ANDF Standard Implementation
|
|
515
|
+
- Complete AGENTS.md standard compliance with YAML frontmatter
|
|
516
|
+
- .context/ directory support with architecture and glossary generation
|
|
517
|
+
- Zed Editor and Google Antigravity full generator support
|
|
518
|
+
- MCP integration and agent configuration
|
|
519
|
+
|
|
520
|
+
- **v0.10.0 (2025-10-27)** - Pattern Decay Algorithm
|
|
500
521
|
- Time-based exponential decay for inactive patterns
|
|
501
522
|
- Confidence-based decay rates (high/medium/low)
|
|
502
523
|
- Automatic pattern cleanup and renewal system
|
|
503
524
|
- 40+ comprehensive tests for decay functionality
|
|
504
|
-
- Pattern metadata tracking (timestamps, renewal counts)
|
|
505
|
-
- Removal history and analytics
|
|
506
525
|
|
|
507
|
-
**
|
|
526
|
+
- **v0.9.1 (2025-10-05)** - AI Analysis Settings
|
|
508
527
|
- **AI Analysis Settings (v0.9.0)** - Performance modes and configurable AI features
|
|
509
528
|
- Three performance modes: Fast, Balanced, Comprehensive
|
|
510
529
|
- Five individually configurable AI features
|
package/lib/ai/ai-config.js
CHANGED
|
@@ -600,13 +600,19 @@ async function configureAIProvider(projectPath = process.cwd()) {
|
|
|
600
600
|
// Fetch available models (only after successful validation)
|
|
601
601
|
const availableModels = await fetchAvailableModels(selectedProvider, apiKey);
|
|
602
602
|
|
|
603
|
-
// Show helpful
|
|
603
|
+
// Show helpful tips about model selection
|
|
604
604
|
if (selectedProvider.id === 'openrouter' && availableModels.length > 50) {
|
|
605
605
|
console.log(chalk.gray('\nš” Tip: Recommended models for best compatibility:'));
|
|
606
606
|
console.log(chalk.gray(' ⢠anthropic/claude-sonnet-4-5'));
|
|
607
607
|
console.log(chalk.gray(' ⢠openai/gpt-4-turbo'));
|
|
608
608
|
console.log(chalk.gray(' ⢠google/gemini-pro-1.5'));
|
|
609
609
|
console.log(chalk.yellow(' ā ļø Free models may require specific privacy settings\n'));
|
|
610
|
+
} else if (selectedProvider.id === 'google') {
|
|
611
|
+
console.log(chalk.gray('\nš” Tip: Recommended models for free tier:'));
|
|
612
|
+
console.log(chalk.gray(' ⢠gemini-1.5-flash (fastest, lowest quota usage)'));
|
|
613
|
+
console.log(chalk.gray(' ⢠gemini-1.5-flash-8b (ultra-fast, minimal quota)'));
|
|
614
|
+
console.log(chalk.gray(' ⢠gemini-2.0-flash-exp (newer, experimental)'));
|
|
615
|
+
console.log(chalk.yellow(' ā ļø Pro models (gemini-pro, gemini-2.5-pro) may exceed free tier quota\n'));
|
|
610
616
|
}
|
|
611
617
|
|
|
612
618
|
// Model selection with autocomplete
|
|
@@ -651,19 +657,41 @@ async function configureAIProvider(projectPath = process.cwd()) {
|
|
|
651
657
|
modelTestSpinner.succeed(chalk.green(`Model ${model} verified successfully`));
|
|
652
658
|
} catch (error) {
|
|
653
659
|
modelTestSpinner.fail(chalk.red(`Model ${model} test failed`));
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
660
|
+
|
|
661
|
+
// Check if this is a rate limit error
|
|
662
|
+
const isRateLimit = error.message.includes('429') ||
|
|
663
|
+
error.message.includes('Too Many Requests') ||
|
|
664
|
+
error.message.includes('quota') ||
|
|
665
|
+
error.message.includes('rate limit');
|
|
666
|
+
|
|
667
|
+
if (isRateLimit) {
|
|
668
|
+
console.log(chalk.yellow('\nā ļø Rate Limit / Quota Exceeded'));
|
|
669
|
+
console.log(chalk.gray('\nThis model is operational but you\'ve exceeded your API quota.'));
|
|
670
|
+
console.log(chalk.gray('Common causes:'));
|
|
671
|
+
console.log(chalk.gray(' ⢠Free tier daily/hourly limits reached'));
|
|
672
|
+
console.log(chalk.gray(' ⢠Too many recent requests'));
|
|
673
|
+
console.log(chalk.gray(' ⢠Model requires paid API tier\n'));
|
|
674
|
+
|
|
675
|
+
console.log(chalk.cyan('Solutions:'));
|
|
676
|
+
console.log(chalk.gray(' 1. Select a different model with available quota'));
|
|
677
|
+
console.log(chalk.gray(' 2. Wait for quota reset (usually hourly or daily)'));
|
|
678
|
+
console.log(chalk.gray(' 3. Upgrade to paid tier at: https://ai.google.dev/pricing'));
|
|
679
|
+
console.log(chalk.gray(' 4. Use a different AI provider (OpenAI, Anthropic, etc.)\n'));
|
|
680
|
+
} else {
|
|
681
|
+
console.log(chalk.red(`\nError: ${error.message}\n`));
|
|
682
|
+
console.log(chalk.yellow('ā ļø This model appears to be listed but not operational.'));
|
|
683
|
+
console.log(chalk.gray('Possible reasons:'));
|
|
684
|
+
console.log(chalk.gray(' ⢠Model requires higher API tier or special access'));
|
|
685
|
+
console.log(chalk.gray(' ⢠Model is experimental or in preview'));
|
|
686
|
+
console.log(chalk.gray(' ⢠Model has specific parameter requirements'));
|
|
687
|
+
console.log(chalk.gray(' ⢠Provider-side issue\n'));
|
|
688
|
+
}
|
|
661
689
|
|
|
662
690
|
const { retry } = await inquirer.prompt([
|
|
663
691
|
{
|
|
664
692
|
type: 'confirm',
|
|
665
693
|
name: 'retry',
|
|
666
|
-
message: 'Try selecting a different model?',
|
|
694
|
+
message: isRateLimit ? 'Try selecting a different model?' : 'Try selecting a different model?',
|
|
667
695
|
default: true
|
|
668
696
|
}
|
|
669
697
|
]);
|
package/lib/commands/deploy.js
CHANGED
|
@@ -241,8 +241,9 @@ async function deployToTool(tool, options = {}) {
|
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
// Copy tool-specific config (simplified)
|
|
244
|
+
// Skip for directory-based tools (claude-code, deepagent, generic) - they use dedicated generators
|
|
244
245
|
const toolConfig = TOOLS[tool];
|
|
245
|
-
if (toolConfig) {
|
|
246
|
+
if (toolConfig && !toolConfig.configFile.endsWith('/')) {
|
|
246
247
|
const configPath = path.join(cwd, toolConfig.configFile);
|
|
247
248
|
const configDir = path.dirname(configPath);
|
|
248
249
|
|