plazbot-cli 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/agent.config.json +21 -0
  2. package/dist/cli.js +22 -0
  3. package/dist/commands/agent/chat.js +92 -0
  4. package/dist/commands/agent/create.js +52 -0
  5. package/dist/commands/agent/delete.js +61 -0
  6. package/dist/commands/agent/enable-widget.js +55 -0
  7. package/dist/commands/agent/get.js +161 -0
  8. package/dist/commands/agent/index.js +22 -0
  9. package/dist/commands/agent/list.js +47 -0
  10. package/dist/commands/agent/on-message.js +67 -0
  11. package/dist/commands/agent/update.js +52 -0
  12. package/dist/commands/auth/index.js +9 -0
  13. package/dist/commands/auth/login.js +52 -0
  14. package/dist/commands/auth/logout.js +23 -0
  15. package/dist/commands/message/delete-webhook.js +39 -0
  16. package/dist/commands/message/index.js +14 -0
  17. package/dist/commands/message/register-webhook.js +42 -0
  18. package/dist/commands/message/send-template.js +42 -0
  19. package/dist/commands/message/send.js +42 -0
  20. package/dist/commands/portal/add-agent.js +58 -0
  21. package/dist/commands/portal/add-link.js +33 -0
  22. package/dist/commands/portal/clear-links.js +27 -0
  23. package/dist/commands/portal/create.js +51 -0
  24. package/dist/commands/portal/delete.js +58 -0
  25. package/dist/commands/portal/get.js +66 -0
  26. package/dist/commands/portal/index.js +22 -0
  27. package/dist/commands/portal/list.js +65 -0
  28. package/dist/commands/portal/update.js +79 -0
  29. package/dist/commands/whatsapp/delete-webhook.js +32 -0
  30. package/dist/commands/whatsapp/index.js +14 -0
  31. package/dist/commands/whatsapp/register-webhook.js +35 -0
  32. package/dist/commands/whatsapp/send-template.js +41 -0
  33. package/dist/commands/whatsapp/send.js +42 -0
  34. package/dist/types/agent.js +2 -0
  35. package/dist/types/auth.js +2 -0
  36. package/dist/types/common.js +2 -0
  37. package/dist/types/message.js +2 -0
  38. package/dist/types/portal.js +2 -0
  39. package/dist/utils/credentials.js +33 -0
  40. package/dist/utils/logger.js +24 -0
  41. package/package.json +47 -0
  42. package/src/cli.ts +26 -0
  43. package/src/commands/agent/chat.ts +103 -0
  44. package/src/commands/agent/create.ts +53 -0
  45. package/src/commands/agent/delete.ts +64 -0
  46. package/src/commands/agent/enable-widget.ts +62 -0
  47. package/src/commands/agent/get.ts +175 -0
  48. package/src/commands/agent/index.ts +20 -0
  49. package/src/commands/agent/list.ts +52 -0
  50. package/src/commands/agent/on-message.ts +75 -0
  51. package/src/commands/agent/update.ts +53 -0
  52. package/src/commands/auth/index.ts +8 -0
  53. package/src/commands/auth/login.ts +56 -0
  54. package/src/commands/auth/logout.ts +22 -0
  55. package/src/commands/portal/add-agent.ts +66 -0
  56. package/src/commands/portal/add-link.ts +39 -0
  57. package/src/commands/portal/clear-links.ts +26 -0
  58. package/src/commands/portal/create.ts +55 -0
  59. package/src/commands/portal/delete.ts +63 -0
  60. package/src/commands/portal/get.ts +75 -0
  61. package/src/commands/portal/index.ts +20 -0
  62. package/src/commands/portal/list.ts +73 -0
  63. package/src/commands/portal/update.ts +82 -0
  64. package/src/commands/whatsapp/delete-webhook.ts +37 -0
  65. package/src/commands/whatsapp/index.ts +12 -0
  66. package/src/commands/whatsapp/register-webhook.ts +41 -0
  67. package/src/commands/whatsapp/send-template.ts +44 -0
  68. package/src/commands/whatsapp/send.ts +46 -0
  69. package/src/types/agent.ts +63 -0
  70. package/src/types/auth.ts +8 -0
  71. package/src/types/common.ts +10 -0
  72. package/src/types/message.ts +34 -0
  73. package/src/types/portal.ts +56 -0
  74. package/src/utils/credentials.ts +37 -0
  75. package/src/utils/logger.ts +21 -0
  76. package/tsconfig.json +15 -0
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authCommands = void 0;
4
+ const login_1 = require("./login");
5
+ const logout_1 = require("./logout");
6
+ exports.authCommands = [
7
+ login_1.loginCommand,
8
+ logout_1.logoutCommand
9
+ ];
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loginCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const credentials_1 = require("../../utils/credentials");
6
+ const logger_1 = require("../../utils/logger");
7
+ exports.loginCommand = new commander_1.Command('init')
8
+ .description('Guarda la API Key y correo del usuario localmente')
9
+ .requiredOption('-e, --email <email>', 'Correo del usuario')
10
+ .requiredOption('-k, --api-key <apiKey>', 'API Key del usuario')
11
+ .requiredOption('-w, --workspace <workspace>', 'ID del workspace')
12
+ .requiredOption('-z, --zone <zone>', 'Zona (LA o EU)')
13
+ .option('--dev', 'Usar ambiente de desarrollo', false)
14
+ .action(async (options) => {
15
+ try {
16
+ // Limpiar la pantalla
17
+ console.clear();
18
+ // Banner de bienvenida
19
+ logger_1.logger.info('┌' + '─'.repeat(70) + '┐');
20
+ logger_1.logger.info('│' + ' Bienvenido a Plazbot CLI'.padEnd(69) + '│');
21
+ logger_1.logger.info('│' + ''.padEnd(69) + '│');
22
+ logger_1.logger.info('│' + ' Con esta herramienta podrás:'.padEnd(69) + '│');
23
+ logger_1.logger.info('│' + ' • Crear y actualizar agentes'.padEnd(69) + '│');
24
+ logger_1.logger.info('│' + ' • Gestionar configuraciones'.padEnd(69) + '│');
25
+ logger_1.logger.info('│' + ' • Interactuar con tus agentes'.padEnd(69) + '│');
26
+ logger_1.logger.info('│' + ' • Activar todas sus capacidades'.padEnd(69) + '│');
27
+ logger_1.logger.info('└' + '─'.repeat(70) + '┘\n');
28
+ await (0, credentials_1.saveCredentials)({
29
+ email: options.email,
30
+ apiKey: options.apiKey,
31
+ workspace: options.workspace,
32
+ zone: options.zone
33
+ });
34
+ logger_1.logger.success('Configuración guardada exitosamente:');
35
+ logger_1.logger.info(' • Email: ' + options.email);
36
+ logger_1.logger.info(' • Workspace: ' + options.workspace);
37
+ logger_1.logger.info(' • Zona: ' + options.zone);
38
+ logger_1.logger.info('\n🚀 Puedes comenzar usando los siguientes comandos:');
39
+ logger_1.logger.info(' • plazbot list-agents - Ver tus agentes');
40
+ logger_1.logger.info(' • plazbot create-agent - Crear un nuevo agente');
41
+ logger_1.logger.info(' • plazbot chat - Chatear con un agente');
42
+ logger_1.logger.info(' • plazbot --help - Ver todos los comandos\n');
43
+ if (options.dev) {
44
+ logger_1.logger.warning('Ambiente: desarrollo');
45
+ }
46
+ }
47
+ catch (error) {
48
+ const message = error instanceof Error ? error.message : 'Error desconocido';
49
+ logger_1.logger.error(message);
50
+ process.exit(1);
51
+ }
52
+ });
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logoutCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const credentials_1 = require("../../utils/credentials");
6
+ const logger_1 = require("../../utils/logger");
7
+ exports.logoutCommand = new commander_1.Command('finish')
8
+ .description('Elimina la configuración local del usuario')
9
+ .option('--dev', 'Usar ambiente de desarrollo', false)
10
+ .action(async (options) => {
11
+ try {
12
+ await (0, credentials_1.removeCredentials)();
13
+ logger_1.logger.success('Has cerrado sesión correctamente');
14
+ if (options.dev) {
15
+ logger_1.logger.warning('Ambiente: desarrollo');
16
+ }
17
+ }
18
+ catch (error) {
19
+ const message = error instanceof Error ? error.message : 'Error desconocido al cerrar sesión';
20
+ logger_1.logger.error(message);
21
+ process.exit(1);
22
+ }
23
+ });
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteWebhookCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const plazbot_1 = require("plazbot");
6
+ const credentials_1 = require("../../utils/credentials");
7
+ const logger_1 = require("../../utils/logger");
8
+ exports.deleteWebhookCommand = new commander_1.Command('delete-webhook')
9
+ .description('Elimina un webhook registrado')
10
+ .argument('<number>', 'Número de WhatsApp (con código de país, ej: 51912345678)')
11
+ .option('--dev', 'Usar ambiente de desarrollo', false)
12
+ .action(async (number, options) => {
13
+ try {
14
+ // Obtener credenciales guardadas
15
+ const credentials = await (0, credentials_1.getStoredCredentials)();
16
+ const messageClient = new plazbot_1.Message({
17
+ workspaceId: credentials.workspace,
18
+ apiKey: credentials.apiKey,
19
+ zone: credentials.zone,
20
+ ...(options.dev && { customUrl: "http://localhost:5090" })
21
+ });
22
+ logger_1.logger.info('\n🗑️ Eliminando webhook...');
23
+ logger_1.logger.info(`Número: ${number}`);
24
+ const response = await messageClient.deleteWebhook({
25
+ number
26
+ });
27
+ logger_1.logger.success('Webhook eliminado exitosamente');
28
+ logger_1.logger.info('\n📋 Detalles:');
29
+ logger_1.logger.info(JSON.stringify(response, null, 2));
30
+ if (options.dev) {
31
+ logger_1.logger.warning('\nAmbiente: desarrollo');
32
+ }
33
+ }
34
+ catch (error) {
35
+ const message = error instanceof Error ? error.message : 'Error desconocido al eliminar el webhook';
36
+ logger_1.logger.error(message);
37
+ process.exit(1);
38
+ }
39
+ });
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.messageCommands = void 0;
4
+ const commander_1 = require("commander");
5
+ const send_1 = require("./send");
6
+ const send_template_1 = require("./send-template");
7
+ const register_webhook_1 = require("./register-webhook");
8
+ const delete_webhook_1 = require("./delete-webhook");
9
+ exports.messageCommands = new commander_1.Command('message')
10
+ .description('Comandos relacionados con mensajes de WhatsApp')
11
+ .addCommand(send_1.sendMessageCommand)
12
+ .addCommand(send_template_1.sendTemplateCommand)
13
+ .addCommand(register_webhook_1.registerWebhookCommand)
14
+ .addCommand(delete_webhook_1.deleteWebhookCommand);
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerWebhookCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const plazbot_1 = require("plazbot");
6
+ const credentials_1 = require("../../utils/credentials");
7
+ const logger_1 = require("../../utils/logger");
8
+ exports.registerWebhookCommand = new commander_1.Command('register-webhook')
9
+ .description('Registra un webhook para recibir mensajes de WhatsApp')
10
+ .argument('<number>', 'Número de WhatsApp (con código de país, ej: 51912345678)')
11
+ .argument('<webhookUrl>', 'URL del webhook')
12
+ .option('--dev', 'Usar ambiente de desarrollo', false)
13
+ .action(async (number, webhookUrl, options) => {
14
+ try {
15
+ // Obtener credenciales guardadas
16
+ const credentials = await (0, credentials_1.getStoredCredentials)();
17
+ const messageClient = new plazbot_1.Message({
18
+ workspaceId: credentials.workspace,
19
+ apiKey: credentials.apiKey,
20
+ zone: credentials.zone,
21
+ ...(options.dev && { customUrl: "http://localhost:5090" })
22
+ });
23
+ logger_1.logger.info('\n🔗 Registrando webhook...');
24
+ logger_1.logger.info(`Número: ${number}`);
25
+ logger_1.logger.info(`URL: ${webhookUrl}`);
26
+ const response = await messageClient.registerWebhook({
27
+ number,
28
+ webhookUrl
29
+ });
30
+ logger_1.logger.success('Webhook registrado exitosamente');
31
+ logger_1.logger.info('\n📋 Detalles:');
32
+ logger_1.logger.info(JSON.stringify(response, null, 2));
33
+ if (options.dev) {
34
+ logger_1.logger.warning('\nAmbiente: desarrollo');
35
+ }
36
+ }
37
+ catch (error) {
38
+ const message = error instanceof Error ? error.message : 'Error desconocido al registrar el webhook';
39
+ logger_1.logger.error(message);
40
+ process.exit(1);
41
+ }
42
+ });
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendTemplateCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const plazbot_1 = require("plazbot");
6
+ const credentials_1 = require("../../utils/credentials");
7
+ const logger_1 = require("../../utils/logger");
8
+ exports.sendTemplateCommand = new commander_1.Command('send-template')
9
+ .description('Envía una plantilla de WhatsApp')
10
+ .argument('<to>', 'Número de teléfono del destinatario (con código de país, ej: 51912345678)')
11
+ .argument('<template>', 'Nombre de la plantilla a enviar')
12
+ .option('--dev', 'Usar ambiente de desarrollo', false)
13
+ .action(async (to, template, options) => {
14
+ try {
15
+ // Obtener credenciales guardadas
16
+ const credentials = await (0, credentials_1.getStoredCredentials)();
17
+ const messageClient = new plazbot_1.Message({
18
+ workspaceId: credentials.workspace,
19
+ apiKey: credentials.apiKey,
20
+ zone: credentials.zone,
21
+ ...(options.dev && { customUrl: "http://localhost:5090" })
22
+ });
23
+ logger_1.logger.info('\n📱 Enviando plantilla de WhatsApp...');
24
+ logger_1.logger.info(`A: ${to}`);
25
+ logger_1.logger.info(`Plantilla: ${template}`);
26
+ const response = await messageClient.onConversation({
27
+ to,
28
+ template
29
+ });
30
+ logger_1.logger.success('Plantilla enviada exitosamente');
31
+ logger_1.logger.info('\n📋 Detalles:');
32
+ logger_1.logger.info(JSON.stringify(response, null, 2));
33
+ if (options.dev) {
34
+ logger_1.logger.warning('\nAmbiente: desarrollo');
35
+ }
36
+ }
37
+ catch (error) {
38
+ const message = error instanceof Error ? error.message : 'Error desconocido al enviar la plantilla';
39
+ logger_1.logger.error(message);
40
+ process.exit(1);
41
+ }
42
+ });
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendMessageCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const plazbot_1 = require("plazbot");
6
+ const credentials_1 = require("../../utils/credentials");
7
+ const logger_1 = require("../../utils/logger");
8
+ exports.sendMessageCommand = new commander_1.Command('send-message')
9
+ .description('Envía un mensaje de WhatsApp')
10
+ .argument('<to>', 'Número de teléfono del destinatario (con código de país, ej: 51912345678)')
11
+ .argument('<message>', 'Mensaje a enviar')
12
+ .option('--dev', 'Usar ambiente de desarrollo', false)
13
+ .action(async (to, message, options) => {
14
+ try {
15
+ // Obtener credenciales guardadas
16
+ const credentials = await (0, credentials_1.getStoredCredentials)();
17
+ const messageClient = new plazbot_1.Message({
18
+ workspaceId: credentials.workspace,
19
+ apiKey: credentials.apiKey,
20
+ zone: credentials.zone,
21
+ ...(options.dev && { customUrl: "http://localhost:5090" })
22
+ });
23
+ logger_1.logger.info('\n📱 Enviando mensaje de WhatsApp...');
24
+ logger_1.logger.info(`A: ${to}`);
25
+ logger_1.logger.info(`Mensaje: ${message}`);
26
+ const response = await messageClient.onWhatsappMessage({
27
+ message,
28
+ to
29
+ });
30
+ logger_1.logger.success('Mensaje enviado exitosamente');
31
+ logger_1.logger.info('\n📋 Detalles:');
32
+ logger_1.logger.info(JSON.stringify(response, null, 2));
33
+ if (options.dev) {
34
+ logger_1.logger.warning('\nAmbiente: desarrollo');
35
+ }
36
+ }
37
+ catch (error) {
38
+ const message = error instanceof Error ? error.message : 'Error desconocido al enviar el mensaje';
39
+ logger_1.logger.error(message);
40
+ process.exit(1);
41
+ }
42
+ });
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addAgentCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const plazbot_1 = require("plazbot");
6
+ const credentials_1 = require("../../utils/credentials");
7
+ const logger_1 = require("../../utils/logger");
8
+ exports.addAgentCommand = new commander_1.Command('add-agent-portal')
9
+ .description('Agrega un agente existente a un portal')
10
+ .requiredOption('-p, --portal-id <portalId>', 'ID del portal')
11
+ .requiredOption('-a, --agent-id <agentId>', 'ID del agente a agregar')
12
+ .option('--dev', 'Usar ambiente de desarrollo', false)
13
+ .action(async (options) => {
14
+ try {
15
+ // Obtener credenciales guardadas
16
+ const credentials = await (0, credentials_1.getStoredCredentials)();
17
+ const portal = new plazbot_1.Portal({
18
+ workspaceId: credentials.workspace,
19
+ apiKey: credentials.apiKey,
20
+ zone: credentials.zone,
21
+ ...(options.dev && { customUrl: "http://localhost:5090" })
22
+ });
23
+ // Obtener detalles del portal
24
+ const portalDetails = await portal.getPortal(options.portalId);
25
+ // Crear instancia del agente para obtener sus detalles
26
+ const agent = new plazbot_1.Agent({
27
+ workspaceId: credentials.workspace,
28
+ apiKey: credentials.apiKey,
29
+ zone: credentials.zone,
30
+ ...(options.dev && { customUrl: "http://localhost:5090" })
31
+ });
32
+ // Obtener detalles del agente
33
+ const agentDetails = await agent.getAgentById({ id: options.agentId });
34
+ logger_1.logger.info('\n📎 Detalles de la operación:');
35
+ logger_1.logger.divider();
36
+ logger_1.logger.info('Portal:');
37
+ logger_1.logger.info(` ID: ${portalDetails.portal.id}`);
38
+ logger_1.logger.info(` Nombre: ${portalDetails.portal.name}`);
39
+ logger_1.logger.info('\nAgente:');
40
+ logger_1.logger.info(` ID: ${agentDetails.agent.id}`);
41
+ logger_1.logger.info(` Nombre: ${agentDetails.agent.name}`);
42
+ logger_1.logger.divider();
43
+ logger_1.logger.info('\n🔄 Agregando agente al portal...');
44
+ await portal.addAgentToPortal({
45
+ portalId: options.portalId,
46
+ id: options.agentId
47
+ });
48
+ logger_1.logger.success('Agente agregado exitosamente al portal');
49
+ if (options.dev) {
50
+ logger_1.logger.warning('Ambiente: desarrollo');
51
+ }
52
+ }
53
+ catch (error) {
54
+ const message = error instanceof Error ? error.message : 'Error desconocido';
55
+ logger_1.logger.error(message);
56
+ process.exit(1);
57
+ }
58
+ });
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addLinkCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const plazbot_1 = require("plazbot");
6
+ const credentials_1 = require("../../utils/credentials");
7
+ exports.addLinkCommand = new commander_1.Command('add-link')
8
+ .description('Agregar un enlace al portal')
9
+ .argument('<portalId>', 'ID del portal')
10
+ .requiredOption('-t, --title <title>', 'Título del enlace')
11
+ .requiredOption('-u, --url <url>', 'URL del enlace')
12
+ .option('--dev', 'Usar entorno de desarrollo')
13
+ .action(async (portalId, options) => {
14
+ try {
15
+ const credentials = await (0, credentials_1.getStoredCredentials)();
16
+ const portal = new plazbot_1.Portal({
17
+ workspaceId: credentials.workspace,
18
+ apiKey: credentials.apiKey,
19
+ zone: credentials.zone,
20
+ ...(options.dev && { customUrl: "http://localhost:5090" })
21
+ });
22
+ await portal.addLinkToPortal({
23
+ portalId,
24
+ value: options.title,
25
+ url: options.url
26
+ });
27
+ console.log('✅ Enlace agregado exitosamente');
28
+ }
29
+ catch (error) {
30
+ console.error('❌ Error al agregar el enlace:', error.message);
31
+ process.exit(1);
32
+ }
33
+ });
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clearLinksCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const plazbot_1 = require("plazbot");
6
+ const credentials_1 = require("../../utils/credentials");
7
+ exports.clearLinksCommand = new commander_1.Command('clear-links')
8
+ .description('Eliminar todos los enlaces del portal')
9
+ .argument('<portalId>', 'ID del portal')
10
+ .option('--dev', 'Usar entorno de desarrollo')
11
+ .action(async (portalId, options) => {
12
+ try {
13
+ const credentials = await (0, credentials_1.getStoredCredentials)();
14
+ const portal = new plazbot_1.Portal({
15
+ workspaceId: credentials.workspace,
16
+ apiKey: credentials.apiKey,
17
+ zone: credentials.zone,
18
+ ...(options.dev && { customUrl: "http://localhost:5090" })
19
+ });
20
+ await portal.clearLinks(portalId);
21
+ console.log('✅ Enlaces eliminados exitosamente');
22
+ }
23
+ catch (error) {
24
+ console.error('❌ Error al eliminar los enlaces:', error.message);
25
+ process.exit(1);
26
+ }
27
+ });
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const plazbot_1 = require("plazbot");
6
+ const credentials_1 = require("../../utils/credentials");
7
+ const logger_1 = require("../../utils/logger");
8
+ exports.createCommand = new commander_1.Command('create')
9
+ .description('Crea un nuevo portal con configuración simplificada')
10
+ .requiredOption('-n, --name <name>', 'Nombre del portal')
11
+ .requiredOption('-t, --title <title>', 'Título de bienvenida del portal')
12
+ .option('--dev', 'Usar ambiente de desarrollo', false)
13
+ .action(async (options) => {
14
+ try {
15
+ // Obtener credenciales guardadas
16
+ const credentials = await (0, credentials_1.getStoredCredentials)();
17
+ const portal = new plazbot_1.Portal({
18
+ workspaceId: credentials.workspace,
19
+ apiKey: credentials.apiKey,
20
+ zone: credentials.zone,
21
+ ...(options.dev && { customUrl: "http://localhost:5090" })
22
+ });
23
+ logger_1.logger.info('\n🚀 Creando portal...');
24
+ const portalCreated = await portal.addPortal({
25
+ name: options.name,
26
+ title: options.title,
27
+ zone: credentials.zone,
28
+ // Valores por defecto
29
+ subtitle: "",
30
+ logo: "",
31
+ logodark: "",
32
+ access: "direct",
33
+ disabled: false,
34
+ brandOff: false
35
+ });
36
+ logger_1.logger.success('Portal creado exitosamente');
37
+ logger_1.logger.info('\n📋 Detalles del portal:');
38
+ logger_1.logger.divider();
39
+ logger_1.logger.info(`ID: ${portalCreated.id}`);
40
+ logger_1.logger.info(`URL: ${portalCreated.url}`);
41
+ logger_1.logger.divider();
42
+ if (options.dev) {
43
+ logger_1.logger.warning('\nAmbiente: desarrollo');
44
+ }
45
+ }
46
+ catch (error) {
47
+ const message = error instanceof Error ? error.message : 'Error desconocido al crear el portal';
48
+ logger_1.logger.error(message);
49
+ process.exit(1);
50
+ }
51
+ });
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.deleteCommand = void 0;
7
+ const commander_1 = require("commander");
8
+ const plazbot_1 = require("plazbot");
9
+ const credentials_1 = require("../../utils/credentials");
10
+ const logger_1 = require("../../utils/logger");
11
+ const inquirer_1 = __importDefault(require("inquirer"));
12
+ exports.deleteCommand = new commander_1.Command('delete')
13
+ .description('Elimina un portal')
14
+ .argument('<portalId>', 'ID del portal')
15
+ .option('--force', 'Eliminar sin confirmación', false)
16
+ .option('--dev', 'Usar ambiente de desarrollo', false)
17
+ .action(async (portalId, options) => {
18
+ try {
19
+ // Obtener credenciales guardadas
20
+ const credentials = await (0, credentials_1.getStoredCredentials)();
21
+ const portal = new plazbot_1.Portal({
22
+ workspaceId: credentials.workspace,
23
+ apiKey: credentials.apiKey,
24
+ zone: credentials.zone,
25
+ ...(options.dev && { customUrl: "http://localhost:5090" })
26
+ });
27
+ // Obtener detalles del portal para mostrar qué se va a eliminar
28
+ const portalDetails = await portal.getPortal(portalId);
29
+ logger_1.logger.info('\n🗑️ Portal a eliminar:');
30
+ logger_1.logger.divider();
31
+ logger_1.logger.info(`ID: ${portalDetails.portal.id}`);
32
+ logger_1.logger.info(`Nombre: ${portalDetails.portal.name}`);
33
+ logger_1.logger.info(`URL: ${portalDetails.portal.url}`);
34
+ if (!options.force) {
35
+ const { confirm } = await inquirer_1.default.prompt([{
36
+ type: 'confirm',
37
+ name: 'confirm',
38
+ message: '¿Estás seguro de que quieres eliminar este portal?',
39
+ default: false
40
+ }]);
41
+ if (!confirm) {
42
+ logger_1.logger.info('Operación cancelada.');
43
+ return;
44
+ }
45
+ }
46
+ logger_1.logger.info('\n🔄 Eliminando portal...');
47
+ await portal.deletePortal(portalId);
48
+ logger_1.logger.success('Portal eliminado exitosamente');
49
+ if (options.dev) {
50
+ logger_1.logger.warning('\nAmbiente: desarrollo');
51
+ }
52
+ }
53
+ catch (error) {
54
+ const message = error instanceof Error ? error.message : 'Error desconocido al eliminar el portal';
55
+ logger_1.logger.error(message);
56
+ process.exit(1);
57
+ }
58
+ });
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const plazbot_1 = require("plazbot");
6
+ const credentials_1 = require("../../utils/credentials");
7
+ const logger_1 = require("../../utils/logger");
8
+ exports.getCommand = new commander_1.Command('get')
9
+ .description('Muestra información detallada de un portal')
10
+ .argument('<portalId>', 'ID del portal')
11
+ .option('--dev', 'Usar ambiente de desarrollo', false)
12
+ .action(async (portalId, options) => {
13
+ try {
14
+ // Obtener credenciales guardadas
15
+ const credentials = await (0, credentials_1.getStoredCredentials)();
16
+ const portal = new plazbot_1.Portal({
17
+ workspaceId: credentials.workspace,
18
+ apiKey: credentials.apiKey,
19
+ zone: credentials.zone,
20
+ ...(options.dev && { customUrl: "http://localhost:5090" })
21
+ });
22
+ logger_1.logger.info('\n🔄 Obteniendo detalles del portal...');
23
+ const response = await portal.getPortal(portalId);
24
+ const portalDetails = response.portal;
25
+ logger_1.logger.info('\n🌐 Detalles del portal:');
26
+ logger_1.logger.divider();
27
+ logger_1.logger.info(`ID: ${portalDetails.id}`);
28
+ logger_1.logger.info(`Nombre: ${portalDetails.name}`);
29
+ logger_1.logger.info(`URL: ${portalDetails.url}`);
30
+ logger_1.logger.info(`Acceso: ${portalDetails.access}`);
31
+ logger_1.logger.info(`Estado: ${portalDetails.disabled ? 'Deshabilitado' : 'Habilitado'}`);
32
+ if (portalDetails.title) {
33
+ logger_1.logger.info(`Título: ${portalDetails.title}`);
34
+ }
35
+ if (portalDetails.subtitle) {
36
+ logger_1.logger.info(`Subtítulo: ${portalDetails.subtitle}`);
37
+ }
38
+ if (portalDetails.logo) {
39
+ logger_1.logger.info(`\n🖼️ Recursos:`);
40
+ logger_1.logger.info(`Logo: ${portalDetails.logo}`);
41
+ if (portalDetails.logodark) {
42
+ logger_1.logger.info(`Logo (modo oscuro): ${portalDetails.logodark}`);
43
+ }
44
+ }
45
+ if (portalDetails.links && portalDetails.links.length > 0) {
46
+ logger_1.logger.info('\n🔗 Enlaces:');
47
+ portalDetails.links.forEach((link) => {
48
+ logger_1.logger.info(`- ${link.value}: ${link.url}`);
49
+ });
50
+ }
51
+ if (portalDetails.agents && portalDetails.agents.length > 0) {
52
+ logger_1.logger.info('\n🤖 Agentes asociados:');
53
+ portalDetails.agents.forEach((agent) => {
54
+ logger_1.logger.info(`- ${agent.name} (${agent.id})`);
55
+ });
56
+ }
57
+ if (options.dev) {
58
+ logger_1.logger.warning('\nAmbiente: desarrollo');
59
+ }
60
+ }
61
+ catch (error) {
62
+ const message = error instanceof Error ? error.message : 'Error desconocido al obtener detalles del portal';
63
+ logger_1.logger.error(message);
64
+ process.exit(1);
65
+ }
66
+ });
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.portalCommands = void 0;
4
+ const commander_1 = require("commander");
5
+ const get_1 = require("./get");
6
+ const delete_1 = require("./delete");
7
+ const create_1 = require("./create");
8
+ const update_1 = require("./update");
9
+ const add_agent_1 = require("./add-agent");
10
+ const list_1 = require("./list");
11
+ const add_link_1 = require("./add-link");
12
+ const clear_links_1 = require("./clear-links");
13
+ exports.portalCommands = new commander_1.Command('portal')
14
+ .description('Comandos relacionados con portales')
15
+ .addCommand(list_1.listCommand)
16
+ .addCommand(get_1.getCommand)
17
+ .addCommand(delete_1.deleteCommand)
18
+ .addCommand(create_1.createCommand)
19
+ .addCommand(update_1.updateCommand)
20
+ .addCommand(add_agent_1.addAgentCommand)
21
+ .addCommand(add_link_1.addLinkCommand)
22
+ .addCommand(clear_links_1.clearLinksCommand);
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const plazbot_1 = require("plazbot");
6
+ const credentials_1 = require("../../utils/credentials");
7
+ const logger_1 = require("../../utils/logger");
8
+ exports.listCommand = new commander_1.Command('list')
9
+ .description('Muestra el portal asociado al workspace')
10
+ .option('--dev', 'Usar ambiente de desarrollo', false)
11
+ .action(async (options) => {
12
+ try {
13
+ // Obtener credenciales guardadas
14
+ const credentials = await (0, credentials_1.getStoredCredentials)();
15
+ const portal = new plazbot_1.Portal({
16
+ workspaceId: credentials.workspace,
17
+ apiKey: credentials.apiKey,
18
+ zone: credentials.zone,
19
+ ...(options.dev && { customUrl: "http://localhost:5090" })
20
+ });
21
+ logger_1.logger.info('\n🔍 Buscando portal del workspace...');
22
+ const response = await portal.getExistsPortal();
23
+ const portalDetails = response.portal;
24
+ logger_1.logger.info('\n🌐 Portal encontrado:');
25
+ logger_1.logger.divider();
26
+ logger_1.logger.info(`ID: ${portalDetails.id}`);
27
+ logger_1.logger.info(`Nombre: ${portalDetails.name}`);
28
+ logger_1.logger.info(`URL: ${portalDetails.url}`);
29
+ logger_1.logger.info(`Acceso: ${portalDetails.access}`);
30
+ logger_1.logger.info(`Estado: ${portalDetails.disabled ? 'Deshabilitado' : 'Habilitado'}`);
31
+ if (portalDetails.title) {
32
+ logger_1.logger.info(`Título: ${portalDetails.title}`);
33
+ }
34
+ if (portalDetails.subtitle) {
35
+ logger_1.logger.info(`Subtítulo: ${portalDetails.subtitle}`);
36
+ }
37
+ if (portalDetails.logo) {
38
+ logger_1.logger.info('\n🖼️ Recursos:');
39
+ logger_1.logger.info(`Logo: ${portalDetails.logo}`);
40
+ if (portalDetails.logodark) {
41
+ logger_1.logger.info(`Logo (modo oscuro): ${portalDetails.logodark}`);
42
+ }
43
+ }
44
+ if (portalDetails.links && portalDetails.links.length > 0) {
45
+ logger_1.logger.info('\n🔗 Enlaces:');
46
+ portalDetails.links.forEach((link) => {
47
+ logger_1.logger.info(`- ${link.value}: ${link.url}`);
48
+ });
49
+ }
50
+ if (portalDetails.agents && portalDetails.agents.length > 0) {
51
+ logger_1.logger.info('\n🤖 Agentes asociados:');
52
+ portalDetails.agents.forEach((agent) => {
53
+ logger_1.logger.info(`- ${agent.name} (${agent.id})`);
54
+ });
55
+ }
56
+ if (options.dev) {
57
+ logger_1.logger.warning('\nAmbiente: desarrollo');
58
+ }
59
+ }
60
+ catch (error) {
61
+ const message = error instanceof Error ? error.message : 'Error desconocido al listar el portal';
62
+ logger_1.logger.error(message);
63
+ process.exit(1);
64
+ }
65
+ });