plazbot-cli
Version:
CLI para Plazbot SDK
64 lines (54 loc) • 2.21 kB
text/typescript
import { Command } from 'commander';
import { Agent } from 'plazbot';
import { getStoredCredentials } from '../../utils/credentials';
import { logger } from '../../utils/logger';
import { AgentCommandOptions } from '../../types/agent';
import readline from 'readline';
export const deleteCommand = new Command('delete')
.description('Elimina un agente existente')
.argument('<agentId>', 'ID del agente a eliminar')
.option('--dev', 'Usar ambiente de desarrollo', false)
.action(async (agentId: string, options: AgentCommandOptions) => {
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 detalles del agente para mostrar información
const agentDetails = await agent.getAgentById({ id: agentId });
logger.warning('\nVas a eliminar el siguiente agente:');
logger.divider();
logger.info(`ID: ${agentDetails.agent.id}`);
logger.info(`Nombre: ${agentDetails.agent.name}`);
logger.info(`Descripción: ${agentDetails.agent.description}`);
logger.divider();
// Crear interfaz para confirmación
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// Preguntar por confirmación
rl.question('\n❗ ¿Estás seguro que deseas eliminar este agente? (y/N): ', async (answer) => {
if (answer.toLowerCase() === 'y') {
await agent.deleteAgent({
id: agentId
});
logger.success('Agente eliminado exitosamente');
if (options.dev) {
logger.warning('Ambiente: desarrollo');
}
} else {
logger.error('Operación cancelada');
}
rl.close();
});
} catch (error) {
const message = error instanceof Error ? error.message : 'Error desconocido al eliminar el agente';
logger.error(message);
process.exit(1);
}
});