"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DynamicAgentBuilder = void 0;
class DynamicAgentBuilder {
    brain;
    constructor(brain) {
        this.brain = brain;
    }
    async propose(goal, existingAgents) {
        const prompt = `
Você é o DynamicAgentBuilder do OpenLife.

Objetivo:
${goal}

Agentes já disponíveis:
${existingAgents.map(a => `${a.id} -> ${a.role}`).join('\n')}

Decida se falta um agente temporário especializado.
Se sim, responda em JSON com:
- id
- name
- role
- capabilities (array)
- temporary: true

Se não precisar, responda {"temporary": false}.
`;
        const raw = await this.brain.think('Decida se vale criar um agente temporário especializado.', prompt);
        try {
            const jsonStart = raw.indexOf('{');
            const parsed = JSON.parse(jsonStart >= 0 ? raw.slice(jsonStart) : raw);
            if (!parsed.temporary)
                return null;
            return {
                id: parsed.id || `dynamic-agent-${Date.now()}`,
                name: parsed.name || 'Dynamic Specialist',
                role: parsed.role || 'specialist',
                capabilities: Array.isArray(parsed.capabilities) ? parsed.capabilities : ['specialized-task'],
                temporary: true
            };
        }
        catch {
            return null;
        }
    }
}
exports.DynamicAgentBuilder = DynamicAgentBuilder;
