plazbot-cli
Version:
CLI para Plazbot SDK
93 lines (69 loc) • 2.73 kB
Markdown
# 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()`