6.2 KiB
6.2 KiB
v1.1.10 - Validation Complete ✅
Summary
v1.1.10 fixes all proxy URL issues from v1.1.8 and v1.1.9.
Fixed Issues
- ✅ Gemini proxy URL mismatch (was hardcoded to port 3001, now uses 3000 from CLI)
- ✅ claudeAgent now respects
ANTHROPIC_BASE_URLset by CLI - ✅ All providers automatically use correct proxy URL
- ✅ No more hanging with Gemini provider
Local Validation Results
Test 1: Anthropic Provider (Direct API)
node dist/cli-proxy.js --agent coder --task "Create add function" --provider anthropic --max-tokens 100
Result: ✅ WORKING - Function created successfully
Test 2: Gemini Provider (Via Proxy)
export GOOGLE_GEMINI_API_KEY="..."
node dist/cli-proxy.js --agent coder --task "Create add function" --provider gemini --max-tokens 100
Result: ✅ WORKING
- Proxy started on port 3000
- Gemini API call successful
- Function created:
add.py
Test 3: OpenRouter Provider (Via Proxy)
export OPENROUTER_API_KEY="..."
node dist/cli-proxy.js --agent coder --task "Create multiply function" --provider openrouter --model "openai/gpt-4o-mini" --max-tokens 100
Result: ✅ WORKING
- Proxy started on port 3000
- OpenRouter API call successful
- Function created successfully
Test 4: Claude Agent SDK Write Tool
node dist/cli-proxy.js --agent coder --task "Write a hello world function to a file called hello.js using the Write tool" --provider anthropic --max-tokens 200
Result: ✅ WORKING
- File created at
/tmp/hello.js - SDK Write tool functioning correctly
Test 5: MCP Integration (claude-flow-sdk)
export ENABLE_CLAUDE_FLOW_SDK=true
node dist/cli-proxy.js --agent coder --task "Use the claude-flow-sdk MCP to store 'test-validation'='all systems working' in memory, then retrieve it" --provider anthropic --max-tokens 250
Result: ✅ WORKING
- Memory stored:
test-validation=all systems working(19 bytes) - Memory retrieved successfully
- MCP memory system operational
Code Changes (v1.1.9 → v1.1.10)
File: src/agents/claudeAgent.ts
Before (v1.1.9):
if (provider === 'gemini' && process.env.GOOGLE_GEMINI_API_KEY) {
envOverrides.ANTHROPIC_API_KEY = 'proxy-key';
envOverrides.ANTHROPIC_BASE_URL = process.env.GEMINI_PROXY_URL || 'http://localhost:3001'; // ❌ Wrong port
}
After (v1.1.10):
if (provider === 'gemini' && process.env.GOOGLE_GEMINI_API_KEY) {
// Use ANTHROPIC_BASE_URL if already set by CLI
envOverrides.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY || 'proxy-key';
envOverrides.ANTHROPIC_BASE_URL = process.env.ANTHROPIC_BASE_URL || process.env.GEMINI_PROXY_URL || 'http://localhost:3000'; // ✅ Correct
}
File: src/cli-proxy.ts
Lines 136-156: Added proper Gemini proxy startup
// Start proxy if needed (OpenRouter or Gemini)
if (useOpenRouter) {
console.log('🚀 Initializing OpenRouter proxy...');
await this.startOpenRouterProxy(options.model);
} else if (useGemini) {
console.log('🚀 Initializing Gemini proxy...');
await this.startGeminiProxy(options.model); // ✅ New method
} else {
console.log('🚀 Using direct Anthropic API...\n');
}
Lines 254-295: New startGeminiProxy() method
private async startGeminiProxy(modelOverride?: string): Promise<void> {
const geminiKey = process.env.GOOGLE_GEMINI_API_KEY;
if (!geminiKey) {
console.error('❌ Error: GOOGLE_GEMINI_API_KEY required for Gemini models');
process.exit(1);
}
const defaultModel = modelOverride || process.env.COMPLETION_MODEL || 'gemini-2.0-flash-exp';
const { AnthropicToGeminiProxy } = await import('./proxy/anthropic-to-gemini.js');
const proxy = new AnthropicToGeminiProxy({
geminiApiKey: geminiKey,
defaultModel
});
proxy.start(this.proxyPort);
this.proxyServer = proxy;
// Set ANTHROPIC_BASE_URL so claudeAgent uses it
process.env.ANTHROPIC_BASE_URL = `http://localhost:${this.proxyPort}`;
if (!process.env.ANTHROPIC_API_KEY) {
process.env.ANTHROPIC_API_KEY = 'sk-ant-proxy-dummy-key';
}
console.log(`🔗 Proxy Mode: Google Gemini`);
console.log(`🔧 Proxy URL: http://localhost:${this.proxyPort}`);
console.log(`🤖 Default Model: ${defaultModel}\n`);
await new Promise(resolve => setTimeout(resolve, 1500));
}
Version Comparison
| Version | Gemini Provider | OpenRouter | Anthropic | MCP | SDK Tools |
|---|---|---|---|---|---|
| v1.1.8 | ❌ Hangs indefinitely | ✅ Works | ✅ Works | ✅ Works | ✅ Works |
| v1.1.9 | ❌ Hangs (proxy not started) | ✅ Works | ✅ Works | ✅ Works | ✅ Works |
| v1.1.10 | ✅ FIXED | ✅ Works | ✅ Works | ✅ Works | ✅ Works |
Installation
npm install -g agentic-flow@1.1.10
# or
npx agentic-flow@1.1.10 --agent coder --task "..."
Usage Examples
Gemini (Fixed in v1.1.10)
export GOOGLE_GEMINI_API_KEY="your-key-here"
npx agentic-flow@1.1.10 --agent coder --task "Create a REST API" --provider gemini
OpenRouter
export OPENROUTER_API_KEY="sk-or-v1-..."
npx agentic-flow@1.1.10 --agent coder --task "Write tests" --provider openrouter --model "openai/gpt-4o-mini"
Anthropic (Direct)
export ANTHROPIC_API_KEY="sk-ant-..."
npx agentic-flow@1.1.10 --agent coder --task "Refactor code"
With MCP Memory
export ENABLE_CLAUDE_FLOW_SDK=true
export ANTHROPIC_API_KEY="sk-ant-..."
npx agentic-flow@1.1.10 --agent coder --task "Store config in MCP memory"
Key Improvements
- Automatic Proxy Detection: CLI automatically starts the correct proxy based on provider
- URL Consistency:
claudeAgent.tsnow usesANTHROPIC_BASE_URLset by CLI - Better Error Messages: Clear errors instead of hanging
- Debug Mode: Use
--verboseto see provider selection logic - All Providers Validated: Anthropic, Gemini, OpenRouter, MCP, SDK tools all working
Recommended Version
Use v1.1.10 - All provider issues fixed, full validation complete.
Avoid: v1.1.8 (hangs), v1.1.9 (Gemini proxy not started)
Package Info
- NPM: https://www.npmjs.com/package/agentic-flow/v/1.1.10
- Size: 264 files, 66 agents, 111 MCP tools
- Published: 2025-10-05
- Status: ✅ Production Ready