plazbot-cli
Version:
CLI para Plazbot SDK
53 lines (45 loc) • 1.99 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 createCommand = new Command('create')
.description('Crea un nuevo agente en Plazbot usando el archivo de configuración')
.argument('<configPath>', 'Ruta al archivo de configuración JSON')
.option('--dev', 'Usar ambiente de desarrollo', false)
.action(async (configPath: 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" })
});
// Leer archivo de configuración
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}`);
}
logger.info('\n🤖 Creando nuevo agente...');
logger.info('Configuración:');
logger.info(JSON.stringify(agentConfig, null, 2));
const result = await agent.addAgent(agentConfig);
logger.success('Agente creado exitosamente');
logger.info('\n📋 Detalles del agente:');
logger.info(JSON.stringify(result, null, 2));
if (options.dev) {
logger.warning('\nAmbiente: desarrollo');
}
} catch (error) {
const message = error instanceof Error ? error.message : 'Error desconocido al crear el agente';
logger.error(message);
process.exit(1);
}
});