plazbot-cli
Version:
CLI para Plazbot SDK
66 lines (55 loc) • 2.37 kB
text/typescript
import { Command } from 'commander';
import { Portal, Agent } from 'plazbot';
import { getStoredCredentials } from '../../utils/credentials';
import { logger } from '../../utils/logger';
import { AddAgentToPortalOptions } from '../../types/portal';
export const addAgentCommand = new Command('add-agent-portal')
.description('Agrega un agente existente a un portal')
.requiredOption('-p, --portal-id <portalId>', 'ID del portal')
.requiredOption('-a, --agent-id <agentId>', 'ID del agente a agregar')
.option('--dev', 'Usar ambiente de desarrollo', false)
.action(async (options: AddAgentToPortalOptions) => {
try {
// Obtener credenciales guardadas
const credentials = await getStoredCredentials();
const portal = new Portal({
workspaceId: credentials.workspace,
apiKey: credentials.apiKey,
zone: credentials.zone,
...(options.dev && { customUrl: "http://localhost:5090" })
});
// Obtener detalles del portal
const portalDetails = await portal.getPortal(options.portalId);
// Crear instancia del agente para obtener sus detalles
const agent = new Agent({
workspaceId: credentials.workspace,
apiKey: credentials.apiKey,
zone: credentials.zone,
...(options.dev && { customUrl: "http://localhost:5090" })
});
// Obtener detalles del agente
const agentDetails = await agent.getAgentById({ id: options.agentId });
logger.info('\n📎 Detalles de la operación:');
logger.divider();
logger.info('Portal:');
logger.info(` ID: ${portalDetails.portal.id}`);
logger.info(` Nombre: ${portalDetails.portal.name}`);
logger.info('\nAgente:');
logger.info(` ID: ${agentDetails.agent.id}`);
logger.info(` Nombre: ${agentDetails.agent.name}`);
logger.divider();
logger.info('\n🔄 Agregando agente al portal...');
await portal.addAgentToPortal({
portalId: options.portalId,
id: options.agentId
});
logger.success('Agente agregado exitosamente al portal');
if (options.dev) {
logger.warning('Ambiente: desarrollo');
}
} catch (error) {
const message = error instanceof Error ? error.message : 'Error desconocido';
logger.error(message);
process.exit(1);
}
});