UNPKG

plazbot-cli

Version:
62 lines (52 loc) 2.3 kB
import { Command } from 'commander'; import { Agent } from 'plazbot'; import { getStoredCredentials } from '../../utils/credentials'; import { logger } from '../../utils/logger'; import { EnableWidgetOptions } from '../../types/agent'; export const enableCommand = new Command('enable-widget') .description('Habilita o deshabilita el widget de un agente') .argument('<agentId>', 'ID del agente') .option('-d, --disable', 'Deshabilitar el widget en lugar de habilitarlo') .option('--dev', 'Usar ambiente de desarrollo', false) .action(async (agentId: string, options: EnableWidgetOptions) => { try { // Obtener credenciales guardadas const credentials = await getStoredCredentials(); const agent = new Agent({ workspaceId: credentials.workspace, apiKey: credentials.apiKey, zone: credentials.zone, ...(options.dev && { customUrl: "http://localhost:5090" }) }); // Obtener estado actual del agente const agentDetails = await agent.getAgentById({ id: agentId }); logger.info('\n🔧 Estado actual del widget:'); logger.divider(); logger.info(`Agente: ${agentDetails.agent.name}`); logger.divider(); // Cambiar estado const newState = !options.disable; // Si --disable está presente, newState será false const result = await agent.enableWidget({ id: agentId, enable: newState }); logger.success(`Widget ${newState ? 'habilitado' : 'deshabilitado'} exitosamente`); logger.info('\n🔧 Respuesta del servidor:'); logger.divider(); logger.info(`Estado: ${result.success ? '✅ Exitoso' : '❌ Fallido'}`); logger.info(`Mensaje: ${result.message}`); if (newState && result.script) { logger.info('\n📝 Instrucciones de instalación:'); logger.divider(); logger.info('Coloca este script debajo de la etiqueta <HEAD> en tu sitio web:'); logger.info('\n' + result.script); } if (options.dev) { logger.warning('Ambiente: desarrollo'); } } catch (error) { const message = error instanceof Error ? error.message : 'Error desconocido al modificar el widget'; logger.error(message); process.exit(1); } });