"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IntentClassifier = exports.TaskIntent = void 0;
var TaskIntent;
(function (TaskIntent) {
    TaskIntent["KNOWLEDGE_RETRIEVAL"] = "KNOWLEDGE_RETRIEVAL";
    TaskIntent["ENGINEERING_BUILD"] = "ENGINEERING_BUILD";
    TaskIntent["RESEARCH_ANALYSIS"] = "RESEARCH_ANALYSIS";
    TaskIntent["UNKNOWN"] = "UNKNOWN";
})(TaskIntent || (exports.TaskIntent = TaskIntent = {}));
class IntentClassifier {
    /**
     * O Classificador Cognitivo do OPEN-LIFE.
     * Na vida real, isso chamaria um LLM muito rápido (Haiku ou Llama 3 via Ollama)
     * para ler o prompt e classificar a intenção baseado nas palavras-chave ou contexto.
     *
     * Aqui, estamos mockando a heurística para ilustrar o Padrão "Dispatcher".
     */
    async classify(userInput) {
        const lowerInput = userInput.toLowerCase();
        // Heurística de Construção / Complex Path
        if (lowerInput.includes('crie') || lowerInput.includes('construa') || lowerInput.includes('desenvolva')) {
            return {
                intent: TaskIntent.ENGINEERING_BUILD,
                budgetLimit: 5.00, // Budget inicial de $5.00 para tarefas de engenharia
                requiresHarness: true // Engenharia aciona CLIs, precisa estar isolado
            };
        }
        // Heurística de Pesquisa / OSWorld
        if (lowerInput.includes('pesquise') || lowerInput.includes('procure') || lowerInput.includes('investigue')) {
            return {
                intent: TaskIntent.RESEARCH_ANALYSIS,
                budgetLimit: 1.00, // Pesquisa é mais barata
                requiresHarness: true // Browser-use precisa de sandbox
            };
        }
        // Heurística de Fast Path (Conversa, dúvida)
        return {
            intent: TaskIntent.KNOWLEDGE_RETRIEVAL,
            budgetLimit: 0.10, // Resposta rápida, custo quase zero
            requiresHarness: false // Não vai acessar terminal local
        };
    }
}
exports.IntentClassifier = IntentClassifier;
