UNPKG

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
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