plazbot-cli
Version:
CLI para Plazbot SDK
68 lines (67 loc) • 3.05 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.messageCommand = 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 crypto_1 = __importDefault(require("crypto"));
exports.messageCommand = new commander_1.Command('message')
.description('Envía un mensaje a un agente y obtiene su respuesta')
.requiredOption('-a, --agent-id <id>', 'ID del agente')
.requiredOption('-q, --question <text>', 'Mensaje o pregunta para el agente')
.option('-s, --session-id <id>', 'ID de sesión (opcional)')
.option('-m, --multiple-answers', 'Permitir múltiples respuestas', false)
.option('--dev', 'Usar ambiente de desarrollo', false)
.action(async (options) => {
try {
// Obtener credenciales guardadas
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" })
});
// Generar un sessionId si no se proporcionó uno
const sessionId = options.sessionId || crypto_1.default.randomUUID();
logger_1.logger.info('\n🤖 Enviando mensaje al agente...');
logger_1.logger.info(`ID del agente: ${options.agentId}`);
logger_1.logger.info(`Pregunta: ${options.question}`);
logger_1.logger.info(`ID de sesión: ${sessionId}`);
if (options.multipleAnswers) {
logger_1.logger.info('Modo: Múltiples respuestas');
}
const response = await agent.onMessage({
agentId: options.agentId,
question: options.question,
sessionId,
multipleAnswers: options.multipleAnswers
});
logger_1.logger.info('\n💬 Respuesta del Agente:');
logger_1.logger.divider();
console.log(response.answer);
if (response.sources && response.sources.length > 0) {
logger_1.logger.info('\n📚 Fuentes:');
logger_1.logger.divider();
response.sources.forEach((source) => {
logger_1.logger.info(`- ${source.title || 'Sin título'}`);
if (source.url)
logger_1.logger.info(` URL: ${source.url}`);
});
}
logger_1.logger.info('\n🔑 ID de Sesión:');
logger_1.logger.info(sessionId);
if (options.dev) {
logger_1.logger.warning('\nAmbiente: desarrollo');
}
}
catch (error) {
const message = error instanceof Error ? error.message : 'Error desconocido al enviar el mensaje';
logger_1.logger.error(message);
process.exit(1);
}
});