openclaw/docs/README-ES.md
copilot-swe-agent[bot] 87241dbb7a docs: add comprehensive Spanish documentation with diagrams and improved README
Co-authored-by: jcarvajalantigua <54653531+jcarvajalantigua@users.noreply.github.com>
2026-01-29 13:32:09 +00:00

980 lines
31 KiB
Markdown

# 🦞 Moltbot - Documentación Completa del Proyecto
## Índice
1. [Visión General](#visión-general)
2. [¿Qué es Moltbot?](#qué-es-moltbot)
3. [Arquitectura del Sistema](#arquitectura-del-sistema)
4. [Componentes Principales](#componentes-principales)
5. [Canales de Mensajería](#canales-de-mensajería)
6. [Tecnologías Utilizadas](#tecnologías-utilizadas)
7. [Sistema de Plugins](#sistema-de-plugins)
8. [Configuración y Despliegue](#configuración-y-despliegue)
9. [Desarrollo](#desarrollo)
10. [Estructura de Directorios](#estructura-de-directorios)
---
## Visión General
**Moltbot** (también conocido como Jarvis o Clawdbot) es un **asistente personal de IA** que se ejecuta en tus propios dispositivos. Es una plataforma local-first, auto-hospedada y diseñada para control de usuario único.
### Características Principales
**Multi-canal**: Conecta con WhatsApp, Telegram, Slack, Discord, Signal, iMessage, Microsoft Teams, Matrix, Zalo y más
**Capacidades de voz**: Wake Voice, Talk Mode (entrada/salida de voz en macOS/iOS/Android)
**Canvas en vivo**: Espacio de trabajo visual controlado por agente con framework A2UI
**Herramientas de primera clase**: Browser, Canvas, Cron, Sessions, acciones de Discord/Slack
**Enrutamiento multi-agente**: Aisla agentes por espacio de trabajo/canal
**Asistente de configuración**: `moltbot onboard` para configuración fácil
**Daemon siempre activo**: vía systemd/launchd
**Soporte Gateway remoto**: para servidores Linux sin interfaz gráfica
**Privacidad**: Se ejecuta localmente, sin dependencia de servidor
---
## ¿Qué es Moltbot?
Moltbot es un asistente de IA personal que:
### Propósito Principal
- Asistente de IA personal siempre activo usando modelos Claude/OpenAI
- Gateway de mensajería multi-canal (bandeja de entrada unificada entre plataformas)
- Funciona en macOS, iOS, Android, Linux, Windows (WSL2)
- Enfocado en privacidad: se ejecuta localmente, sin dependencia de servidor
### Casos de Uso
1. **Asistente Personal**: Responde preguntas, ejecuta tareas, gestiona calendarios
2. **Centro de Mensajería Unificado**: Una interfaz para todos tus canales de chat
3. **Automatización**: Ejecuta scripts, gestiona tareas programadas (cron)
4. **Navegación Web**: Automatización de navegador con Playwright
5. **Procesamiento de Medios**: Transcripción de audio, análisis de imágenes, procesamiento de video
6. **Desarrollo**: Asistente de código, revisión de código, depuración
### Ventajas Únicas
- **Control Total**: Tú posees tus datos y configuración
- **Sin Servidor Central**: No hay dependencia de servicios de terceros
- **Extensible**: Sistema de plugins robusto para añadir funcionalidad
- **Multi-Plataforma**: Funciona en todos los sistemas operativos principales
- **Seguro**: Autenticación local, políticas de lista de permitidos
---
## Arquitectura del Sistema
```
┌────────────────────────────────────────────────────┐
│ Gateway (Servidor WebSocket) │
│ - Plano de control para sesiones/canales │
│ - Registro de chat y enrutamiento de mensajes │
│ - Catálogo de modelos y perfiles de autenticación │
│ - Trabajos cron, webhooks, herramienta de navegador│
└────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────┐
│ Runtime de Agente (Pi Agent) │
│ - Modo RPC embedding │
│ - Streaming de herramientas y bloques │
│ - Failover de modelos/rotación de auth │
│ - Ventana de contexto de sesión │
│ - Entorno sandbox (Docker opcional) │
└────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────┐
│ Capa Multi-Canal │
│ - Manejadores de canal base │
│ - Análisis de mensajes entrantes │
│ - Enrutamiento y formato salientes │
│ - Políticas de lista de permitidos/emparejamiento DM│
│ - Enrutamiento de menciones en grupo │
└────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────┐
│ Sistema de Herramientas │
│ - Browser (automatización web) │
│ - Canvas (espacio de trabajo visual) │
│ - Image (analizar/generar) │
│ - Message (enviar entre canales) │
│ - Session (generar sub-agentes) │
│ - Bash (ejecutar comandos) │
│ - Web (fetch, search, readability) │
│ - Memory (recordar contexto) │
│ - Cron (programar tareas) │
│ - Acciones Discord/Slack/WhatsApp │
└────────────────────────────────────────────────────┘
```
### Flujo de Mensajes
1. **Entrada**: Mensaje recibido desde canal (WhatsApp, Telegram, etc.)
2. **Enrutamiento**: Gateway determina sesión y agente apropiado
3. **Procesamiento**: Agente procesa mensaje con herramientas disponibles
4. **Ejecución**: Herramientas se ejecutan (browser, bash, memory, etc.)
5. **Respuesta**: Agente genera respuesta basada en resultados
6. **Salida**: Mensaje enviado de vuelta al canal original o cruzado
---
## Componentes Principales
### 1. Gateway (`src/gateway/`)
El **Gateway** es el corazón del sistema. Es un servidor WebSocket que:
- **Gestiona todas las sesiones** de chat activas
- **Enruta mensajes** entre canales y agentes
- **Mantiene catálogo de modelos** (Claude, GPT, Bedrock)
- **Ejecuta trabajos cron** y webhooks
- **Proporciona herramienta de navegador** compartida
- **Maneja descubrimiento** de servicios (mDNS)
**Archivos clave:**
- `server.ts` - Servidor principal WebSocket
- `chat-registry.ts` - Registro de chats activos
- `model-catalog.ts` - Catálogo de modelos AI
- `browser-tool.ts` - Integración de Playwright
### 2. Runtime de Agente (`src/agents/`)
El **Runtime de Agente** ejecuta modelos de IA y gestiona interacciones:
- **Integración Pi Agent** (`pi-embedded-runner.ts`) - Ejecuta Claude/GPT en modo RPC
- **Gestión de sesiones** (`session-*.ts`) - Aisla contextos de chat
- **Streaming de herramientas** - Streaming en tiempo real de uso de herramientas
- **Failover de modelos** - Rotación automática si un modelo falla
- **Manejo de perfiles de auth** - OAuth y claves API
**Archivos clave:**
- `pi-embedded-runner.ts` - Ejecutor principal de agente
- `session-manager.ts` - Gestor de sesiones de chat
- `tool-registry.ts` - Registro de herramientas disponibles
- `model-auth.ts` - Autenticación de modelos
### 3. Canales (`src/channels/`, `extensions/`)
**Canales integrados** (en `src/`):
- `whatsapp/` - WhatsApp (biblioteca Baileys)
- `telegram/` - Telegram (grammY)
- `signal/` - Signal (signal-cli)
- `imessage/` - iMessage (imsg)
- `discord/` - Discord (discord.js)
- `slack/` - Slack (Bolt)
**Canales de extensión** (en `extensions/`):
- `msteams/` - Microsoft Teams
- `matrix/` - Matrix con soporte E2E
- `zalo/`, `zalouser/` - Mensajería vietnamita
- `bluebubbles/` - Relay iMessage
- Y más de 20 extensiones de canal
**Características:**
- Emparejamiento DM (lista de permitidos basada en código)
- Enrutamiento de grupo/canal con control de menciones
- Etiquetas de respuesta para respuestas basadas en hilos
- Fragmentación de mensajes por canal
- Reconocimientos de reacción
- Indicadores de escritura
### 4. Sistema de Plugins (`src/plugins/`)
El **sistema de plugins** permite extensibilidad:
**Tipos de plugins:**
- **Plugins de canal** - Nuevas integraciones de mensajería
- **Plugins de auth** - Manejadores OAuth
- **Plugins de herramientas** - Herramientas personalizadas de agente
- **Plugins de memoria** - Backends de almacenamiento personalizados
- **Plugins de hooks** - Manejadores de eventos globales
**Archivos clave:**
- `discovery.ts` - Auto-detecta plugins
- `loader.ts` - Carga plugins validados
- `manifest.ts` - Validación de esquema de manifiesto
- `services.ts` - Proveedores de inyección de servicios
### 5. Herramienta de Navegador (`src/browser/`)
La **herramienta de navegador** proporciona automatización web:
- **Automatización Chromium** vía Playwright
- **Snapshots conscientes de IA** de páginas
- **Rellenado de formularios e interacción**
- **Generación de screenshots y PDF**
- **Perfiles personalizados** con cookies/almacenamiento
- **Puente CDP** para depuración DevTools
**Archivos clave:**
- `browser-tool.ts` - API principal de herramienta
- `playwright-bridge.ts` - Puente Playwright
- `snapshot.ts` - Generación de snapshots de página
### 6. Pipeline de Medios (`src/media/`)
El **pipeline de medios** maneja procesamiento de medios:
- Procesamiento de imagen/audio/video
- Hooks de transcripción
- Almacén de archivos con límites de tamaño
- Detección de tipo MIME
- Gestión de ciclo de vida temporal
**Archivos clave:**
- `index.ts` - API principal de medios
- `transcription.ts` - Hooks de transcripción de audio
- `file-store.ts` - Almacenamiento persistente de archivos
### 7. Canvas Host (`src/canvas-host/`)
El **Canvas Host** proporciona un espacio de trabajo visual:
- Framework A2UI para renderizado
- Actualización de estado en tiempo real
- Serialización de DOM
- Integración WebSocket
**Archivos clave:**
- `index.ts` - API principal de Canvas
- `a2ui/` - Paquetes de framework A2UI
### 8. CLI (`src/cli/`)
La **CLI** proporciona interfaz de línea de comandos:
**Comandos principales:**
- `gateway` - Iniciar servidor gateway
- `agent` - Ejecutar agente AI
- `onboard` - Asistente de configuración
- `models` - Gestionar modelos AI
- `channels` - Gestionar canales
- `cron` - Gestionar trabajos programados
- `daemon` - Gestionar servicio daemon
- `plugins` - Gestionar plugins
- `skills` - Gestionar skills
**Archivos clave:**
- `index.ts` - Entry point de CLI
- `commands/` - Implementaciones de comandos
### 9. Configuración (`src/config/`)
El **sistema de configuración** gestiona ajustes:
- Carga de configuración YAML
- Validación de esquema Zod
- Almacenamiento de sesión
- Gestión de rutas
- Migraciones de configuración
**Archivos clave:**
- `index.ts` - Cargador principal de configuración
- `schema.ts` - Esquema de validación Zod
- `paths.ts` - Resolución de rutas de sistema
---
## Canales de Mensajería
### Canales Integrados
| Canal | Biblioteca | Estado |
|-------|-----------|--------|
| **WhatsApp** | @whiskeysockets/baileys | ✅ Estable |
| **Telegram** | grammy | ✅ Estable |
| **Signal** | signal-cli | ✅ Estable |
| **iMessage** | imsg | ✅ Estable |
| **Discord** | discord.js | ✅ Estable |
| **Slack** | @slack/bolt | ✅ Estable |
| **Google Chat** | Chat API | ✅ Estable |
### Canales de Extensión
| Canal | Ubicación | Estado |
|-------|-----------|--------|
| **BlueBubbles** | extensions/bluebubbles | ✅ Estable |
| **Microsoft Teams** | extensions/msteams | ✅ Estable |
| **Matrix** | extensions/matrix | ✅ Estable |
| **Zalo** | extensions/zalo | ✅ Estable |
| **Zalo Personal** | extensions/zalouser | ✅ Estable |
| **Twitch** | extensions/twitch | ✅ Estable |
| **Mattermost** | extensions/mattermost | ✅ Estable |
| **Nextcloud Talk** | extensions/nextcloud-talk | ✅ Estable |
| **Tlon** | extensions/tlon | ✅ Estable |
| **Nostr** | extensions/nostr | ✅ Estable |
| **LINE** | extensions/line | ✅ Estable |
| **Voice Call** | extensions/voice-call | ✅ Beta |
### Características de Canal
- **Emparejamiento DM**: Lista de permitidos basada en código
- **Enrutamiento de grupo**: Control de menciones
- **Etiquetas de respuesta**: Respuestas basadas en hilos
- **Fragmentación de mensajes**: Límites específicos por canal
- **Reacciones**: Reconocimientos
- **Indicadores de escritura**: Estado en tiempo real
- **Redacción de medios**: Capacidades de privacidad
---
## Tecnologías Utilizadas
### Stack Backend
| Tecnología | Versión | Propósito |
|------------|---------|-----------|
| **TypeScript** | 5.9+ | Lenguaje principal |
| **Node.js** | ≥22.12.0 | Runtime |
| **Hono** | 4.11.4 | Framework HTTP |
| **Express** | 5.2 | Servidor WebSocket (legacy) |
| **ws** | 8.19 | Biblioteca WebSocket |
| **Zod** | 4.3 | Validación de esquema |
### Integración AI/Modelo
| Tecnología | Propósito |
|------------|-----------|
| **@mariozechner/pi-agent-core** | Agente Pi de Anthropic |
| **@mariozechner/pi-tui** | UI de terminal para agente |
| **Anthropic SDK** | API Claude |
| **OpenAI SDK** | API ChatGPT |
| **AWS Bedrock SDK** | Modelos AWS |
| **Ollama SDK** | Soporte LLM local |
### Mensajería & Comunicación
| Biblioteca | Canal |
|-----------|-------|
| **@whiskeysockets/baileys** | WhatsApp |
| **grammy** | Telegram |
| **@slack/bolt** | Slack |
| **discord.js** | Discord |
| **@line/bot-sdk** | LINE |
| **signal-cli** | Signal |
| **imsg** | iMessage |
### Automatización de Navegador
| Tecnología | Propósito |
|------------|-----------|
| **Playwright Core** | 1.58 - Automatización web |
| **chromium-bidi** | 13.0 - Protocolo DevTools Chrome |
| **Sharp** | 0.34 - Procesamiento de imágenes |
| **pdfjs-dist** | Manipulación de PDF |
### Base de Datos & Almacenamiento
| Tecnología | Propósito |
|------------|-----------|
| **SQLite-vec** | Almacenamiento vectorial para memoria |
| **LanceDB** | Búsqueda vectorial (extensión) |
| **Sistema de archivos** | Persistencia de sesión/configuración |
| **proper-lockfile** | Control de acceso concurrente |
### CLI & DevOps
| Tecnología | Propósito |
|------------|-----------|
| **Commander.js** | Análisis de argumentos CLI |
| **@clack/prompts** | Prompts CLI interactivos |
| **Chalk** | Colores de terminal |
| **dotenv** | Configuración de entorno |
| **YAML** | Soporte de formato de configuración |
### Herramientas de Desarrollo
| Tecnología | Propósito |
|------------|-----------|
| **TypeScript** | Verificación de tipos estricta |
| **Vitest** | Ejecutor de tests |
| **oxlint** | Linting (OxC) |
| **oxfmt** | Formateo |
| **tsx** | Ejecución TS |
| **Playwright Core** | Testing E2E |
| **Wireit** | Orquestación de tareas de build |
---
## Sistema de Plugins
### Arquitectura de Plugins
```
┌─────────────────────────────────────────────┐
│ Descubrimiento de Plugins │
│ - Auto-detecta desde extensions/ │
│ - Auto-detecta desde node_modules/@moltbot/│
│ - Validación de manifiesto │
└─────────────────────────────────────────────┘
┌─────────────────────────────────────────────┐
│ Cargador de Plugins │
│ - Validación de esquema de configuración │
│ - Inicialización de runtime │
│ - Registro de hooks │
└─────────────────────────────────────────────┘
┌─────────────────────────────────────────────┐
│ Proveedores de Servicios │
│ - Acceso a cliente Gateway │
│ - Proveedor de configuración │
│ - Inyección de logger │
│ - Utilidades de cliente HTTP │
└─────────────────────────────────────────────┘
```
### Tipos de Plugins
#### 1. Plugins de Canal
Añaden nuevos canales de mensajería:
```typescript
export function createChannelPlugin(): ChannelPlugin {
return {
name: 'my-channel',
type: 'channel',
init: async (config) => {
// Inicializar canal
},
send: async (message) => {
// Enviar mensaje
},
receive: async (handler) => {
// Recibir mensajes
}
}
}
```
#### 2. Plugins de Herramientas
Añaden herramientas personalizadas para agentes:
```typescript
export function createToolPlugin(): ToolPlugin {
return {
name: 'my-tool',
type: 'tool',
schema: z.object({
input: z.string()
}),
execute: async (params) => {
// Ejecutar herramienta
return { result: 'done' }
}
}
}
```
#### 3. Plugins de Auth
Añaden manejadores OAuth personalizados:
```typescript
export function createAuthPlugin(): AuthPlugin {
return {
name: 'my-auth',
type: 'auth',
authorize: async (credentials) => {
// Manejar OAuth
return { token: 'access_token' }
}
}
}
```
#### 4. Plugins de Memoria
Añaden backends de almacenamiento personalizados:
```typescript
export function createMemoryPlugin(): MemoryPlugin {
return {
name: 'my-memory',
type: 'memory',
store: async (key, value) => {
// Almacenar valor
},
retrieve: async (key) => {
// Recuperar valor
}
}
}
```
#### 5. Plugins de Hooks
Añaden manejadores de eventos globales:
```typescript
export function createHookPlugin(): HookPlugin {
return {
name: 'my-hook',
type: 'hook',
hooks: {
'message:received': async (message) => {
// Manejar mensaje recibido
},
'message:sent': async (message) => {
// Manejar mensaje enviado
}
}
}
}
```
### Esquema de Manifiesto de Plugin
```json
{
"name": "plugin-name",
"version": "1.0.0",
"description": "Plugin description",
"exports": {
".": "./dist/index.js",
"./config-schema": "./dist/config-schema.js"
},
"hooks": ["channel", "tool"],
"permissions": ["network", "fs"],
"dependencies": {
"some-lib": "^1.0.0"
}
}
```
### Ciclo de Vida de Plugin
1. **Descubrimiento** - Auto-detecta plugins desde directorios conocidos
2. **Validación** - Valida manifiesto y esquema de configuración
3. **Carga** - Carga módulo de plugin
4. **Inicialización** - Ejecuta función init de plugin
5. **Registro** - Registra hooks y herramientas
6. **Ejecución** - Plugin maneja eventos y llamadas
7. **Apagado** - Limpieza durante apagado de gateway
---
## Configuración y Despliegue
### Archivo de Configuración Principal
El archivo `.moltbot.yaml` (o `.clawdbot.yaml`) controla toda la configuración:
```yaml
# Configuración de Gateway
gateway:
mode: local # o 'remote'
port: 18789
bind: loopback # o 'all'
verbose: true
# Configuración de Agentes
agents:
default:
model: claude-4.5-sonnet
thinking: high
temperature: 0.7
max_tokens: 8192
# Configuración de Canales
channels:
whatsapp:
enabled: true
pairing: code
allowlist:
- "+1234567890"
telegram:
enabled: true
bot_token: "${TELEGRAM_BOT_TOKEN}"
discord:
enabled: true
bot_token: "${DISCORD_BOT_TOKEN}"
# Configuración de Herramientas
tools:
browser:
enabled: true
headless: true
timeout: 30000
canvas:
enabled: true
port: 8080
# Configuración de Sandbox
sandbox:
enabled: false
docker_image: "moltbot/sandbox"
# Configuración de Plugins
plugins:
- name: matrix
enabled: true
config:
homeserver: "https://matrix.org"
# Configuración de Skills
skills:
- workspace1
- workspace2
```
### Variables de Entorno
Archivo `.env`:
```bash
# Tokens de API
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
TELEGRAM_BOT_TOKEN=123456:ABC-DEF...
DISCORD_BOT_TOKEN=MTk4...
# Configuración de Gateway
CLAWDBOT_GATEWAY_PORT=18789
CLAWDBOT_GATEWAY_BIND=loopback
# Configuración de Modo
CLAWDBOT_PROFILE=production # o 'dev'
CLAWDBOT_SKIP_CHANNELS=0
# Configuración de Depuración
CLAWDBOT_DEBUG=0
CLAWDBOT_VERBOSE=0
```
### Instalación
#### Instalación rápida (npm)
```bash
npm install -g moltbot@latest
moltbot onboard --install-daemon
```
#### Desde fuente (desarrollo)
```bash
git clone https://github.com/moltbot/moltbot.git
cd moltbot
pnpm install
pnpm ui:build
pnpm build
pnpm moltbot onboard --install-daemon
```
#### Docker
```bash
docker-compose up -d
```
### Despliegue como Daemon
#### macOS (launchd)
```bash
moltbot daemon install
moltbot daemon start
moltbot daemon status
```
#### Linux (systemd)
```bash
moltbot daemon install
systemctl --user start moltbot-gateway
systemctl --user status moltbot-gateway
```
#### Windows (WSL2)
```bash
# En WSL2
moltbot daemon install
moltbot daemon start
```
### Gateway Remoto
Para servidores sin interfaz gráfica:
```yaml
# En servidor remoto
gateway:
mode: remote
bind: all
port: 18789
# En cliente local
agents:
gateway_url: "ws://your-server:18789"
```
---
## Desarrollo
### Configuración de Entorno de Desarrollo
```bash
# 1. Clonar repositorio
git clone https://github.com/moltbot/moltbot.git
cd moltbot
# 2. Instalar dependencias
pnpm install
# 3. Construir UI
pnpm ui:build
# 4. Construir proyecto
pnpm build
# 5. Ejecutar en modo desarrollo
pnpm gateway:watch # Auto-recarga en cambios
```
### Scripts de Desarrollo
```bash
# Desarrollo
pnpm dev # Ejecutar CLI en modo dev
pnpm gateway:watch # Gateway con auto-recarga
pnpm gateway:dev # Gateway dev sin canales
pnpm tui:dev # UI de terminal dev
# Build
pnpm build # Compilar TypeScript
pnpm ui:build # Construir UI web
pnpm canvas:a2ui:bundle # Empaquetar Canvas A2UI
# Testing
pnpm test # Ejecutar todos los tests
pnpm test:watch # Tests en modo watch
pnpm test:coverage # Tests con cobertura
pnpm test:e2e # Tests end-to-end
pnpm test:live # Tests con APIs reales
# Linting & Formatting
pnpm lint # Lint TypeScript
pnpm lint:fix # Fix problemas de lint
pnpm format # Verificar formato
pnpm format:fix # Fix formato
# Plataformas
pnpm ios:build # Construir app iOS
pnpm ios:run # Ejecutar app iOS
pnpm android:assemble # Ensamblar app Android
pnpm android:run # Ejecutar app Android
pnpm mac:package # Empaquetar app macOS
```
### Estructura de Testing
```
test/
├── unit/ # Tests unitarios
├── e2e/ # Tests end-to-end
├── integration/ # Tests de integración
└── fixtures/ # Datos de prueba
```
**Configuraciones de Vitest:**
- `vitest.config.ts` - Configuración principal
- `vitest.unit.config.ts` - Tests unitarios
- `vitest.e2e.config.ts` - Tests E2E
- `vitest.live.config.ts` - Tests con APIs reales
- `vitest.extensions.config.ts` - Tests de extensiones
- `vitest.gateway.config.ts` - Tests de gateway
### Requisitos de Cobertura de Tests
- **Líneas**: 70%
- **Funciones**: 70%
- **Ramas**: 70%
- **Declaraciones**: 70%
### Estándares de Código
- **TypeScript estricto**: Verificación de tipos completa
- **ESLint**: Linting con oxlint
- **Prettier**: Formateo con oxfmt
- **Pre-commit hooks**: Ejecuta lint + format antes de commit
- **Límite de LOC**: ~700 líneas por archivo (guía)
---
## Estructura de Directorios
```
/
├── src/ # Código fuente TypeScript
│ ├── agents/ # Runtime de agente y gestión de sesiones
│ ├── gateway/ # Servidor gateway y registro de chat
│ ├── channels/ # Infraestructura base de canales
│ ├── cli/ # Comandos de interfaz de línea de comandos
│ ├── browser/ # Herramienta de automatización de navegador
│ ├── canvas-host/ # Host de Canvas y framework A2UI
│ ├── media/ # Pipeline de procesamiento de medios
│ ├── plugins/ # Sistema de plugins y cargador
│ ├── config/ # Sistema de configuración
│ ├── whatsapp/ # Integración WhatsApp
│ ├── telegram/ # Integración Telegram
│ ├── signal/ # Integración Signal
│ ├── discord/ # Integración Discord
│ ├── slack/ # Integración Slack
│ ├── imessage/ # Integración iMessage
│ ├── routing/ # Enrutamiento de mensajes
│ ├── security/ # Auth y políticas de seguridad
│ ├── memory/ # Gestión de memoria/contexto
│ ├── tts/ # Integración text-to-speech
│ ├── wizard/ # Flujo de asistente de onboarding CLI
│ ├── web/ # Frontend WebChat y Control UI
│ ├── utils/ # Utilidades compartidas
│ └── ...
├── extensions/ # Plugins de canal y extensiones
│ ├── bluebubbles/ # Plugin BlueBubbles
│ ├── matrix/ # Plugin Matrix
│ ├── msteams/ # Plugin Microsoft Teams
│ ├── zalo/ # Plugin Zalo
│ ├── zalouser/ # Plugin Zalo Personal
│ ├── voice-call/ # Plugin Voice Call
│ └── ...
├── apps/ # Aplicaciones nativas
│ ├── macos/ # App macOS (SwiftUI)
│ ├── ios/ # App iOS (SwiftUI)
│ └── android/ # App Android (Kotlin)
├── docs/ # Documentación
│ ├── start/ # Guías de inicio
│ ├── install/ # Guías de instalación
│ ├── channels/ # Documentación de canales
│ ├── concepts/ # Documentación de conceptos
│ ├── cli/ # Documentación de CLI
│ ├── gateway/ # Documentación de gateway
│ ├── platforms/ # Guías específicas de plataforma
│ ├── providers/ # Documentación de proveedores
│ ├── reference/ # Documentación de referencia
│ └── ...
├── skills/ # Paquetes de skills de workspace
│ └── workspace1/ # Ejemplo de workspace
├── packages/ # Paquetes monorepo
│ └── ...
├── scripts/ # Scripts de utilidad
│ ├── build-*.ts # Scripts de build
│ ├── test-*.sh # Scripts de test
│ ├── package-*.sh # Scripts de empaquetado
│ └── ...
├── test/ # Fixtures de test y helpers
│ ├── fixtures/ # Datos de prueba
│ └── helpers/ # Utilidades de test
├── ui/ # UI web (Control UI)
│ └── ...
├── vendor/ # Dependencias vendorizadas
│ └── ...
├── .github/ # Workflows de GitHub Actions
│ ├── workflows/ # Definiciones de workflow CI/CD
│ └── labeler.yml # Configuración de auto-etiquetado
├── dist/ # Salida compilada (generada)
│ └── ...
├── package.json # Configuración de paquete npm
├── pnpm-workspace.yaml # Configuración de workspace pnpm
├── tsconfig.json # Configuración de TypeScript
├── vitest.config.ts # Configuración de Vitest
├── docker-compose.yml # Configuración de Docker Compose
├── Dockerfile # Dockerfile principal
├── README.md # README principal (inglés)
├── CHANGELOG.md # Registro de cambios
├── LICENSE # Licencia MIT
└── ...
```
### Directorios Clave
#### `/src/`
Código fuente principal de TypeScript. Organizado por dominio:
- **Agentes & Runtime**: `agents/`, `memory/`, `sessions/`
- **Comunicación**: `gateway/`, `channels/`, `routing/`
- **Canales Integrados**: `whatsapp/`, `telegram/`, `discord/`, etc.
- **Herramientas**: `browser/`, `canvas-host/`, `media/`, `tts/`
- **Sistema**: `cli/`, `config/`, `plugins/`, `daemon/`
- **Seguridad**: `security/`, `pairing/`
- **UI**: `web/`, `wizard/`, `tui/`
#### `/extensions/`
Plugins de extensión (20+ canales). Cada extensión es un paquete npm auto-contenido:
- Tiene su propio `package.json`
- Define `plugin.manifest.json`
- Implementa hooks de plugin
- Puede tener dependencias propias
#### `/apps/`
Aplicaciones nativas para múltiples plataformas:
- **macOS**: App SwiftUI con integración de menubar
- **iOS**: App SwiftUI con soporte de voz
- **Android**: App Kotlin con soporte de voz
#### `/docs/`
Documentación completa (Mintlify):
- Guías de inicio rápido
- Tutoriales de instalación
- Documentación de conceptos
- Referencia de API
- Guías específicas de plataforma
- Documentación de desarrollo de plugins
#### `/skills/`
Skills de workspace. Cada workspace puede tener:
- Prompts personalizados
- Herramientas bash personalizadas
- Integraciones personalizadas
- Configuración específica de workspace
#### `/scripts/`
Scripts de utilidad para:
- Construcción y empaquetado
- Testing (unit, E2E, Docker)
- Generación de código (protocol, Swift)
- Gestión de releases
- Automatización de desarrollo
#### `/test/`
Fixtures de test y helpers:
- Datos de prueba
- Mocks y stubs
- Utilidades de test
- Configuraciones de test
---
## Recursos Adicionales
### Documentación Oficial
- **Sitio Web**: https://molt.bot
- **Documentación**: https://docs.molt.bot
- **Comenzar**: https://docs.molt.bot/start/getting-started
- **FAQ**: https://docs.molt.bot/start/faq
- **Showcase**: https://docs.molt.bot/start/showcase
### Comunidad
- **Discord**: https://discord.gg/clawd
- **GitHub**: https://github.com/moltbot/moltbot
- **Releases**: https://github.com/moltbot/moltbot/releases
### Guías de Desarrollo
- **Desarrollo de Plugins**: Ver `PLUGIN-DEVELOPMENT.md`
- **Referencia de API**: Ver `API-REFERENCE.md`
- **Guía de Arquitectura**: Ver `ARCHITECTURE.md`
- **Guía de Despliegue**: Ver `DEPLOYMENT.md`
---
## Licencia
MIT License - Ver [LICENSE](../LICENSE) para detalles.
---
## Contribuir
¡Las contribuciones son bienvenidas! Ver [CONTRIBUTING.md](../CONTRIBUTING.md) para guías.
---
**¡Feliz hacking con Moltbot! 🦞**