plazbot-cli
Version:
CLI para Plazbot SDK
87 lines (86 loc) • 3.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assignCommand = exports.channelsCommand = void 0;
const commander_1 = require("commander");
const plazbot_1 = require("plazbot");
const credentials_1 = require("../../utils/credentials");
const logger_1 = require("../../utils/logger");
const ui_1 = require("../../utils/ui");
exports.channelsCommand = new commander_1.Command('channels')
.description('Listar agentes con canales de WhatsApp asignados')
.option('--dev', 'Usar ambiente de desarrollo', false)
.action(async (options) => {
try {
const credentials = await (0, credentials_1.getStoredCredentials)();
const agent = new plazbot_1.Agent({
workspaceId: credentials.workspace,
apiKey: credentials.apiKey,
zone: credentials.zone,
...(options.dev && { customUrl: "http://localhost:5090" })
});
const spinner = (0, ui_1.createSpinner)('Cargando canales...');
spinner.start();
const agents = await agent.getAgents();
spinner.stop();
console.log((0, ui_1.section)('Canales WhatsApp'));
const whatsappAgents = (agents || []).filter((a) => a.channels && a.channels.some((c) => c.channel === 'whatsapp'));
if (whatsappAgents.length === 0) {
console.log(ui_1.theme.muted('\n No hay agentes con WhatsApp configurado'));
console.log(ui_1.theme.muted(' Usa el wizard: plazbot agent create\n'));
return;
}
const rows = whatsappAgents.map((a) => {
const waChannel = a.channels.find((c) => c.channel === 'whatsapp');
return [
a.id || a._id,
a.name,
waChannel?.key || 'N/A',
(0, ui_1.statusBadge)(a.enable !== false),
];
});
console.log((0, ui_1.createTable)(['Agent ID', 'Nombre', 'Numero WhatsApp', 'Estado'], rows));
}
catch (error) {
const message = error instanceof Error ? error.message : 'Error desconocido';
logger_1.logger.error(message);
process.exit(1);
}
});
exports.assignCommand = new commander_1.Command('assign')
.description('Asignar un agente a un numero de WhatsApp')
.argument('<phone>', 'Numero de WhatsApp')
.argument('<agentId>', 'ID del agente')
.option('--dev', 'Usar ambiente de desarrollo', false)
.action(async (phone, agentId, options) => {
try {
const credentials = await (0, credentials_1.getStoredCredentials)();
const agent = new plazbot_1.Agent({
workspaceId: credentials.workspace,
apiKey: credentials.apiKey,
zone: credentials.zone,
...(options.dev && { customUrl: "http://localhost:5090" })
});
const spinner = (0, ui_1.createSpinner)('Cargando agente...');
spinner.start();
const agentData = await agent.getAgentById({ id: agentId });
spinner.stop();
const channels = agentData.channels || [];
// Verificar si ya tiene este canal
const existing = channels.findIndex((c) => c.channel === 'whatsapp' && c.key === phone);
if (existing >= 0) {
logger_1.logger.warning('Este numero ya esta asignado a este agente');
return;
}
// Agregar canal
channels.push({ channel: 'whatsapp', key: phone, multianswer: false });
const updateSpinner = (0, ui_1.createSpinner)('Asignando...');
updateSpinner.start();
await agent.updateAgent(agentId, { channels });
updateSpinner.succeed(`Agente "${agentData.name}" asignado a WhatsApp ${phone}`);
}
catch (error) {
const message = error instanceof Error ? error.message : 'Error desconocido';
logger_1.logger.error(message);
process.exit(1);
}
});