plazbot-cli
Version:
CLI para Plazbot SDK
62 lines (52 loc) • 2.3 kB
text/typescript
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);
}
});