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

Objetivo:
${goal}

Critérios de sucesso:
${successCriteria.join('\n- ')}

Output do executor:
${executorOutput}

Responda em JSON com:
- approved (boolean)
- critique (string curta)
- nextAction ('refine' ou 'finish')
- score (0 a 10)
`;
        const raw = await this.brain.think('Faça uma revisão crítica, objetiva e curta.', prompt);
        try {
            const jsonStart = raw.indexOf('{');
            const parsed = JSON.parse(jsonStart >= 0 ? raw.slice(jsonStart) : raw);
            return {
                approved: !!parsed.approved,
                critique: parsed.critique || 'Sem crítica específica.',
                nextAction: parsed.nextAction === 'finish' ? 'finish' : 'refine',
                score: typeof parsed.score === 'number' ? parsed.score : 7
            };
        }
        catch {
            return {
                approved: true,
                critique: 'Revisão fallback: output aceitável.',
                nextAction: 'finish',
                score: 7
            };
        }
    }
}
exports.ReviewerAgent = ReviewerAgent;
