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 • 1.92 kB
JavaScript
import { BaseAgent } from './base.js';
export class QwenAgent extends BaseAgent {
buildCommand(_task, taskConfig) {
const cmd = ['qwen', '-y'];
// 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 === '-m' || flag.startsWith('--model=') || flag.startsWith('-m='));
if (!hasModelFlag) {
// Model selection with proper priority:
// 1. Task config model (highest priority)
// 2. OPENAI_MODEL from task env (config file/MCP config)
// 3. OPENAI_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?.['OPENAI_MODEL'] ||
process.env['OPENAI_MODEL'] ||
this.config.defaults['model'];
if (model) {
cmd.push('-m', String(model));
}
}
// API key (required)
const apiKey = process.env['OPENAI_API_KEY'];
if (apiKey) {
cmd.push('--openai-api-key', apiKey);
}
// Optional base URL
const baseUrl = process.env['OPENAI_BASE_URL'];
if (baseUrl) {
cmd.push('--openai-base-url', baseUrl);
}
// Sandbox mode
if (taskConfig.sandbox) {
cmd.push('-s');
}
// Add custom flags (overrides defaults)
if (taskConfig.flags && taskConfig.flags.length > 0) {
cmd.push(...taskConfig.flags);
}
return this.validateCommand(cmd);
}
getInputMethod() {
return 'stdin';
}
}
//# sourceMappingURL=qwen.js.map