UNPKG

plazbot-cli

Version:
93 lines (69 loc) 2.73 kB
# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Descripción del Proyecto Plazbot CLI v2.0 es una interfaz de línea de comandos oficial para la plataforma Plazbot. Permite gestionar agentes de IA, portales web y comunicaciones vía WhatsApp desde la terminal. - **Lenguaje**: TypeScript 5.0+ - **Runtime**: Node.js >=16.0.0 - **Framework CLI**: Commander.js ## Comandos de Desarrollo ```bash # Compilar TypeScript npm run build # Modo watch (compilación continua) npm run dev # Ejecutar CLI localmente npm start # o directamente: node dist/cli.js # Versionado npm run version:patch # Incrementar patch npm run version:minor # Incrementar minor npm run version:major # Incrementar major # SDK local vs npm npm run prepare:dev # Usar SDK local (desarrollo) npm run prepare:prod # Usar SDK de npm # Publicación npm run publish:beta # Publicar beta npm run publish:prod # Publicar producción ``` ## Arquitectura ``` src/ ├── cli.ts # Entry point - registra todos los comandos ├── commands/ # Comandos organizados por dominio │ ├── agent/ # CRUD + chat interactivo de agentes │ ├── auth/ # init (login) y logout │ ├── portal/ # CRUD + gestión de enlaces │ └── whatsapp/ # Mensajes y webhooks ├── types/ # Interfaces TypeScript └── utils/ ├── logger.ts # Logging formateado (info, success, warning, error) └── credentials.ts # Persistencia en ~/.plazbot/config.json ``` ### Flujo de Comandos 1. `cli.ts` usa Commander.js para registrar grupos de comandos 2. Cada comando carga credenciales de `~/.plazbot/config.json` 3. Instancia el SDK (`plazbot`) con las credenciales 4. Ejecuta la operación contra el backend de Plazbot 5. Formatea la respuesta usando `logger.ts` ### SDK de Plazbot El CLI depende del paquete `plazbot` que expone tres clases principales: - **Agent** - Operaciones con agentes de IA - **Portal** - Gestión de portales web - **Message** - Envío de mensajes WhatsApp ### Credenciales Se almacenan en `~/.plazbot/config.json`: ```json { "email": "string", "apiKey": "string", "workspace": "string", "zone": "LA | EU" } ``` ### Flag --dev Todos los comandos soportan `--dev` para apuntar al backend local (`http://localhost:5090`). ## Convenciones - Cada grupo de comandos tiene un `index.ts` que exporta el comando padre con subcomandos - Los tipos de opciones de comando se definen en `src/types/` - El logger proporciona formato consistente: `logger.info()`, `logger.success()`, `logger.error()`