gemini-code-flow
Version:
AI-powered development orchestration for Gemini CLI - adapted from Claude Code Flow by ruvnet
51 lines (40 loc) ⢠1.52 kB
text/typescript
/**
* Agent Command for Gemini Code Flow
* Adapted from Claude Code Flow by ruvnet
*/
import chalk from 'chalk';
import ora from 'ora';
import { GeminiClient } from '../core/gemini-client';
import { AgentMode } from '../types';
export class AgentCommand {
async execute(task: string, options: { mode?: string; stream?: boolean }): Promise<void> {
const mode = (options.mode || 'coder') as AgentMode;
const spinner = ora(`š¤ Agent working on task...`).start();
try {
const apiKey = process.env.GEMINI_API_KEY;
if (!apiKey) {
throw new Error('GEMINI_API_KEY environment variable is required');
}
const client = new GeminiClient({ apiKey });
const prompt = `You are an AI assistant in ${mode} mode.
Task: ${task}
Please provide a clear, actionable response. Be concise but thorough.`;
if (options.stream) {
spinner.stop();
console.log(chalk.cyan('š¤ Agent response:\n'));
for await (const chunk of client.streamExecute(prompt, mode)) {
process.stdout.write(chunk);
}
console.log('\n');
} else {
const result = await client.execute(prompt, mode);
spinner.succeed('Agent completed task');
console.log(chalk.cyan('\nš¤ Agent response:\n'));
console.log(result);
}
} catch (error) {
spinner.fail('Agent failed');
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
}
}
}