UNPKG

plazbot-cli

Version:
108 lines (107 loc) 5.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.aiConfigCommand = void 0; const commander_1 = require("commander"); const plazbot_1 = require("plazbot"); const inquirer_1 = __importDefault(require("inquirer")); const credentials_1 = require("../../utils/credentials"); const logger_1 = require("../../utils/logger"); const ui_1 = require("../../utils/ui"); const MODELS = { openai: ['gpt-4o', 'gpt-4', 'gpt-3.5-turbo', 'o1-preview', 'o1-mini'], claude: ['claude-3-5-sonnet-20241022', 'claude-3-opus-20240229', 'claude-3-haiku-20240307'], gemini: ['gemini-2.0-flash', 'gemini-1.5-pro', 'gemini-1.5-flash'], }; exports.aiConfigCommand = new commander_1.Command('ai-config') .description('Configurar proveedor de IA del agente') .argument('<agentId>', 'ID del agente') .option('--dev', 'Usar ambiente de desarrollo', false) .action(async (agentId, options) => { try { const credentials = await (0, credentials_1.getStoredCredentials)(); const agent = new plazbot_1.Agent({ workspaceId: credentials.workspace, apiKey: credentials.apiKey, zone: credentials.zone, ...(options.dev && { customUrl: "http://localhost:5090" }) }); const spinner = (0, ui_1.createSpinner)('Cargando agente...'); spinner.start(); const agentData = await agent.getAgentById({ id: agentId }); spinner.stop(); console.log((0, ui_1.section)('Configuracion de IA - ' + (agentData.name || agentId))); const currentProviders = agentData.aiProviders || []; if (currentProviders.length > 0 && agentData.customAIConfig) { console.log(ui_1.theme.bold('\n Configuracion actual:')); currentProviders.forEach((p) => { console.log((0, ui_1.kvPair)(' Proveedor', p.provider)); console.log((0, ui_1.kvPair)(' Modelo', p.model)); console.log((0, ui_1.kvPair)(' Temperatura', String(p.temperature))); console.log((0, ui_1.kvPair)(' Max Tokens', String(p.maxTokens))); console.log((0, ui_1.kvPair)(' Default', p.isDefault ? 'Si' : 'No')); }); } else { console.log(ui_1.theme.muted('\n Usando configuracion de IA por defecto (Plazbot)')); } const { action } = await inquirer_1.default.prompt([{ type: 'list', name: 'action', message: 'Que deseas hacer?', choices: [ { name: 'Configurar nuevo proveedor', value: 'set' }, { name: 'Usar configuracion por defecto', value: 'reset' }, { name: 'Salir', value: 'exit' }, ], }]); if (action === 'exit') return; if (action === 'reset') { const resetConfig = { ...agentData, customAIConfig: false, aiProviders: [] }; delete resetConfig.id; delete resetConfig._id; const resetSpinner = (0, ui_1.createSpinner)('Reseteando configuracion...'); resetSpinner.start(); await agent.updateAgent(agentId, resetConfig); resetSpinner.succeed('Usando configuracion por defecto'); return; } // Configurar nuevo proveedor const ai = await inquirer_1.default.prompt([ { type: 'list', name: 'provider', message: 'Proveedor:', choices: ['openai', 'claude', 'gemini'] }, ]); const models = MODELS[ai.provider] || MODELS.openai; const config = await inquirer_1.default.prompt([ { type: 'list', name: 'model', message: 'Modelo:', choices: models }, { type: 'password', name: 'apiToken', message: 'API Token:', mask: '*', validate: (v) => v.length > 0 || 'Requerido' }, { type: 'number', name: 'temperature', message: 'Temperatura (0-2):', default: 0.7 }, { type: 'number', name: 'maxTokens', message: 'Max tokens (1024-16384):', default: 4096 }, ]); const updatedConfig = { ...agentData, customAIConfig: true, aiProviders: [{ provider: ai.provider, model: config.model, apiToken: config.apiToken, temperature: config.temperature, maxTokens: config.maxTokens, isDefault: true, }], }; delete updatedConfig.id; delete updatedConfig._id; const updateSpinner = (0, ui_1.createSpinner)('Guardando configuracion...'); updateSpinner.start(); await agent.updateAgent(agentId, updatedConfig); updateSpinner.succeed(`Proveedor configurado: ${ai.provider} / ${config.model}`); } catch (error) { const message = error instanceof Error ? error.message : 'Error desconocido'; logger_1.logger.error(message); process.exit(1); } });