mcp-subagents
Version:
Multi-Agent AI Orchestration via Model Context Protocol - Access specialized CLI AI agents (Aider, Qwen, Gemini, Goose, etc.) with intelligent fallback and configuration
48 lines • 2.01 kB
JavaScript
import { BaseAgent } from './base.js';
export class AiderAgent extends BaseAgent {
buildCommand(_task, taskConfig) {
const cmd = ['aider'];
// Use stdin instead of --message flag
// Essential for autonomous operation
cmd.push('--yes-always');
// Get custom flags to check for model conflicts
const customFlags = taskConfig.flags || [];
// Only add internal model if no model flags are in custom flags
const hasModelFlag = customFlags.some(flag => flag === '--model' || flag.startsWith('--model='));
if (!hasModelFlag) {
// Model selection with proper priority:
// 1. Task config model (highest priority)
// 2. AIDER_MODEL from task env (config file/MCP config)
// 3. AIDER_MODEL from process env (system environment)
// 4. Config file model (from this.config.defaults)
// 5. Built-in default (lowest priority, handled in registry)
const model = taskConfig.model ||
taskConfig.env?.['AIDER_MODEL'] ||
process.env['AIDER_MODEL'] ||
this.config.defaults['model'];
if (model) {
cmd.push('--model', String(model));
}
}
// Files to edit
if (taskConfig.files && taskConfig.files.length > 0) {
cmd.push(...taskConfig.files);
}
// API keys from environment
if (process.env['OPENAI_API_KEY']) {
cmd.push('--openai-api-key', process.env['OPENAI_API_KEY']);
}
if (process.env['ANTHROPIC_API_KEY']) {
cmd.push('--anthropic-api-key', process.env['ANTHROPIC_API_KEY']);
}
// Add custom flags (overrides defaults)
if (taskConfig.flags && taskConfig.flags.length > 0) {
cmd.push(...taskConfig.flags);
}
return this.validateCommand(cmd);
}
getInputMethod() {
return 'stdin';
}
}
//# sourceMappingURL=aider.js.map