UNPKG

@thugdacake/operante

Version:

Cérebro Operante — o núcleo IA que invade e domina assistentes, criando uma mente única com Thug Developer

115 lines (97 loc) 3.66 kB
const fs = require('fs'); const path = require('path'); const chalk = require('chalk'); const { parseMind } = require('./mind-interpreter'); class AgentEngine { constructor(mindPath = './mind.md') { this.mindPath = mindPath; this.agents = { leader: null, manager: null, architect: null, engineer: null, analyst: null }; } async initialize() { console.log(chalk.cyan('\n[🧠 Cérebro Operante] Iniciando motor de agentes...')); if (!fs.existsSync(this.mindPath)) { throw new Error(`Arquivo ${this.mindPath} não encontrado.`); } const mind = fs.readFileSync(this.mindPath, 'utf-8'); const instructions = parseMind(mind); // Inicializa cada agente com suas instruções for (const [role, instructions] of Object.entries(instructions)) { await this.initializeAgent(role, instructions); } console.log(chalk.green('\n[✅] Motor de agentes inicializado com sucesso.')); } async initializeAgent(role, instructions) { console.log(chalk.yellow(`\n[${role.toUpperCase()}] Inicializando agente...`)); // Aqui cada agente será inicializado com suas instruções específicas this.agents[role] = { instructions, execute: async () => { console.log(chalk.blue(`\n[${role.toUpperCase()}] Executando instruções:`)); for (const instruction of instructions) { if (instruction.trim()) { console.log(chalk.gray(`- ${instruction}`)); // Aqui cada instrução será processada pelo agente específico await this.processInstruction(role, instruction); } } } }; } async processInstruction(role, instruction) { // Cada agente processa suas instruções de forma específica switch (role) { case 'leader': await this.processLeaderInstruction(instruction); break; case 'manager': await this.processManagerInstruction(instruction); break; case 'architect': await this.processArchitectInstruction(instruction); break; case 'engineer': await this.processEngineerInstruction(instruction); break; case 'analyst': await this.processAnalystInstruction(instruction); break; } } async executeAll() { console.log(chalk.cyan('\n[🚀] Iniciando execução de todos os agentes...')); for (const [role, agent] of Object.entries(this.agents)) { if (agent) { await agent.execute(); } } console.log(chalk.green('\n[✅] Execução completa.')); } // Métodos específicos para cada agente async processLeaderInstruction(instruction) { // Implementação específica do Leader console.log(chalk.blue(`[LEADER] Processando: ${instruction}`)); } async processManagerInstruction(instruction) { // Implementação específica do Manager console.log(chalk.blue(`[MANAGER] Processando: ${instruction}`)); } async processArchitectInstruction(instruction) { // Implementação específica do Architect console.log(chalk.blue(`[ARCHITECT] Processando: ${instruction}`)); } async processEngineerInstruction(instruction) { // Implementação específica do Engineer console.log(chalk.blue(`[ENGINEER] Processando: ${instruction}`)); } async processAnalystInstruction(instruction) { // Implementação específica do Analyst console.log(chalk.blue(`[ANALYST] Processando: ${instruction}`)); } } module.exports = AgentEngine;