@thugdacake/operante
Version:
Cérebro Operante — o núcleo IA que invade e domina assistentes, criando uma mente única com Thug Developer
115 lines (106 loc) • 3.59 kB
text/typescript
import { Command } from 'commander';
import chalk from 'chalk';
import dotenv from 'dotenv';
import { init } from './core/init';
import { validate } from './core/validate';
import { deploy } from './core/deploy';
import { registerPlugin } from './core/plugins';
import { on, emit } from './core/events';
// Carregar variáveis de ambiente
dotenv.config();
// Criar CLI
const program = new Command();
program
.name('cerebro-operante')
.description('Framework de Produção Universal para desenvolvimento de software')
.version('1.0.0');
// Comando init
program
.command('init')
.description('Inicializa o Cérebro Operante no projeto')
.option('-c, --config <path>', 'Caminho para o arquivo de configuração')
.action(async (options) => {
try {
console.log(chalk.blue('🧠 Inicializando Cérebro Operante...'));
await init(options);
console.log(chalk.green('✅ Inicialização concluída!'));
} catch (error) {
console.error(chalk.red('❌ Erro na inicialização:'), error);
process.exit(1);
}
});
// Comando validate
program
.command('validate')
.description('Valida o código do projeto')
.option('-p, --path <path>', 'Caminho para validar')
.option('-r, --report', 'Gerar relatório detalhado')
.action(async (options) => {
try {
console.log(chalk.blue('🔍 Validando código...'));
const result = await validate(options);
console.log(chalk.green('✅ Validação concluída!'));
if (options.report) {
console.log(JSON.stringify(result, null, 2));
}
} catch (error) {
console.error(chalk.red('❌ Erro na validação:'), error);
process.exit(1);
}
});
// Comando deploy
program
.command('deploy')
.description('Realiza deploy do projeto')
.option('-e, --env <environment>', 'Ambiente de deploy')
.option('-f, --force', 'Forçar deploy sem confirmação')
.action(async (options) => {
try {
console.log(chalk.blue('🚀 Iniciando deploy...'));
const result = await deploy(options);
console.log(chalk.green('✅ Deploy concluído!'));
console.log(chalk.blue('📊 Métricas:'), result.metrics);
} catch (error) {
console.error(chalk.red('❌ Erro no deploy:'), error);
process.exit(1);
}
});
// Comando plugin
program
.command('plugin')
.description('Gerencia plugins do Cérebro Operante')
.option('-a, --add <name>', 'Adicionar plugin')
.option('-r, --remove <name>', 'Remover plugin')
.option('-l, --list', 'Listar plugins instalados')
.action(async (options) => {
try {
if (options.add) {
console.log(chalk.blue(`📦 Instalando plugin: ${options.add}`));
await registerPlugin(options.add);
console.log(chalk.green('✅ Plugin instalado!'));
} else if (options.remove) {
console.log(chalk.blue(`🗑️ Removendo plugin: ${options.remove}`));
// Implementar remoção de plugin
console.log(chalk.green('✅ Plugin removido!'));
} else if (options.list) {
console.log(chalk.blue('📋 Plugins instalados:'));
// Implementar listagem de plugins
}
} catch (error) {
console.error(chalk.red('❌ Erro na operação:'), error);
process.exit(1);
}
});
// Exportar API
export {
init,
validate,
deploy,
registerPlugin,
on,
emit
};
// Executar CLI se chamado diretamente
if (require.main === module) {
program.parse(process.argv);
}