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

31 KiB

🦞 Moltbot - Documentación Completa del Proyecto

Índice

  1. Visión General
  2. ¿Qué es Moltbot?
  3. Arquitectura del Sistema
  4. Componentes Principales
  5. Canales de Mensajería
  6. Tecnologías Utilizadas
  7. Sistema de Plugins
  8. Configuración y Despliegue
  9. Desarrollo
  10. 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:

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:

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:

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:

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:

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

{
  "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:

# 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:

# 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)

npm install -g moltbot@latest
moltbot onboard --install-daemon

Desde fuente (desarrollo)

git clone https://github.com/moltbot/moltbot.git
cd moltbot
pnpm install
pnpm ui:build
pnpm build
pnpm moltbot onboard --install-daemon

Docker

docker-compose up -d

Despliegue como Daemon

macOS (launchd)

moltbot daemon install
moltbot daemon start
moltbot daemon status

Linux (systemd)

moltbot daemon install
systemctl --user start moltbot-gateway
systemctl --user status moltbot-gateway

Windows (WSL2)

# En WSL2
moltbot daemon install
moltbot daemon start

Gateway Remoto

Para servidores sin interfaz gráfica:

# 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

# 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

# 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

Comunidad

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 para detalles.


Contribuir

¡Las contribuciones son bienvenidas! Ver CONTRIBUTING.md para guías.


¡Feliz hacking con Moltbot! 🦞