plazbot-cli
Version:
CLI para Plazbot SDK
53 lines (45 loc) • 2.03 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 fs from 'fs/promises';
export const updateCommand = new Command('update')
.description('Actualiza un agente existente en Plazbot')
.argument('<agentId>', 'ID del agente a actualizar')
.argument('<configPath>', 'Ruta al archivo de configuración JSON del agente')
.option('--dev', 'Usar ambiente de desarrollo', false)
.action(async (agentId: string, configPath: string, options: AgentCommandOptions) => {
try {
// Obtener credenciales guardadas
const credentials = await getStoredCredentials();
// Leer archivo de configuración del agente
let agentConfig;
try {
const fileContent = await fs.readFile(configPath, 'utf-8');
agentConfig = JSON.parse(fileContent);
} catch (error) {
const errorMessage = error instanceof Error ? error.message : 'Error desconocido';
throw new Error(`Error al leer el archivo de configuración: ${errorMessage}`);
}
// Crear instancia del agente con las credenciales guardadas
const agent = new Agent({
workspaceId: credentials.workspace,
apiKey: credentials.apiKey,
zone: credentials.zone,
...(options.dev && { customUrl: "http://localhost:5090" })
});
logger.info('\n🔄 Actualizando agente...');
// Actualizar el agente
const result = await agent.updateAgent(agentId, agentConfig);
logger.success('Agente actualizado exitosamente');
logger.info(`Mensaje: ${result.message}`);
if (options.dev) {
logger.warning('Ambiente: desarrollo');
}
} catch (error) {
const message = error instanceof Error ? error.message : 'Error desconocido al actualizar el agente';
logger.error(message);
process.exit(1);
}
});