@wabot-dev/framework
v0.9.80
Published
Framework for IA Chat Bots
Downloads
4,625
Readme
🤖 Wabot
Un framework moderno y flexible para crear bots con TypeScript e Inteligencia Artificial
🌟 Introducción
Wabot es un framework diseñado para desarrolladores que desean crear bots inteligentes de manera rápida y profesional. Con soporte nativo para TypeScript, múltiples plataformas de mensajería y los principales proveedores de IA, Wabot te permite enfocarte en la lógica de tu bot mientras nosotros nos encargamos de la infraestructura.
✨ Características Principales
- 🔷 Tipado estricto con TypeScript - Desarrollo seguro y predecible
- 🧩 Modular y extensible - Arquitectura flexible para escalar
- 🔌 Fácil integración con múltiples plataformas - Conecta con diversos canales
- 🤖 Soporte para bots con IA - Inteligencia artificial lista para usar
- 🧠 Múltiples proveedores de IA - OpenAI, Google Gemini, Anthropic Claude
- 💬 Múltiples canales de chat - Telegram, WhatsApp, Socket y más
- 🧪 Sistema de testing integrado - Prueba tus chatbots sin API keys ni base de datos
- 📖 Documentación clara y en español - Aprende sin barreras de idioma
🚀 Inicio Rápido
visita nuestra documentación 📘 Ver guía completa de inicio →
📦 Building for production
En modo dev, el framework descubre módulos escaneando el disco. Para producción, el framework incluye un script que empaqueta tu proyecto en un único dist/entry.js autocontenido usando tsup.
1. Instala tsup como dev dependency del consumidor
npm i -D tsup2. Cambia _run_.ts para exportar la config
En vez de invocar run() directamente, exporta config para que tanto dev como build la puedan usar:
// src/_run_.ts
import { run, IProjectRunnerConfig } from '@wabot-dev/framework'
export const config: IProjectRunnerConfig = {
directories: ['src'],
}
// Solo en dev: arrancar inmediatamente.
if (process.env.WABOT_BUNDLED !== '1') {
run(config)
}3. Configura el build (opcional)
Crea wabot.build.json en la raíz del proyecto o agrega un campo wabot al package.json:
{
"entry": "./src/_run_.ts",
"directories": ["src"],
"exclude": ["_run_.ts", "_cmd_.ts"],
"outDir": "./dist",
"sourcemap": true,
"minify": false,
"external": ["pg"]
}4. Agrega los scripts
"scripts": {
"dev": "node --import @yucacodes/ts ./src/_run_.ts",
"build": "node ./node_modules/@wabot-dev/framework/dist/build/build.js",
"start": "WABOT_BUNDLED=1 node ./dist/entry.js"
}El script de build:
- Escanea las
directoriesconfiguradas (saltando tests y_run_.ts/_cmd_.ts). - Genera un manifiesto temporal en
.wabot/con imports estáticos a cada módulo. - Empaqueta todo con
tsup(ESM, single-file) endist/entry.js. - Arranca el runtime en modo
preloaded: true, así que no hayreaddirni imports dinámicos por template literal en el bundle final.
Los addons opcionales (pg, SDKs de IA) se mantienen como peerDependencies y solo entran al bundle si tu proyecto los usa.
🧪 Testing
El framework incluye un sistema de testing en @wabot-dev/framework/testing, agnóstico al runner (node:test, vitest, bun test). Permite probar chatbots de forma determinista —sin API keys ni base de datos— y también evaluar el comportamiento real con un juez LLM.
import { createChatBotHarness, LlmJudge } from '@wabot-dev/framework/testing'
// Determinista: el LLM se simula, tus tools se ejecutan de verdad
const harness = createChatBotHarness({ mindset: EliaMindset })
harness.adapter.callTool('saveEvent', { title: 'Demo', ... }).reply('¡Agendado!')
const turn = await harness.send('agenda una demo mañana')
// turn.replies, turn.toolCalls (con resultados reales), harness.history()
// Evals: juzga conversaciones reales con un LLM
const judge = new LlmJudge({ adapter, models: [{ model: 'claude-haiku-4-5' }] })
await judge.assert({
transcript: harness.history(),
criteria: 'Responde en español y confirma la fecha del evento',
})También incluye harnesses para controllers de chat (createChatControllerHarness), endpoints REST con guards JWT/API-Key reales (createRestHarness), commands y crons (createAsyncHarness), repositorios en memoria (useMemoryRepositories), aserciones de validación y una suite de conformance para adapters LLM propios (chatAdapterConformanceCases).
💬 Plataformas Soportadas
Wabot se integra nativamente con las principales plataformas de mensajería:
| Plataforma | Estado | | --------------- | ------------ | | 📱 WhatsApp | ✅ Soportado | | ✈️ Telegram | ✅ Soportado | | 🔌 Socket | ✅ Soportado |
🧠 Proveedores de IA
Potencia tu bot con los principales proveedores de inteligencia artificial:
| Proveedor | Soporte en Wabot | | ---------------- | ----------------------- | | 🟢 OpenAI | ✅ Integración completa | | 🔵 Google | ✅ Integración completa | | 🟣 Anthropic | ✅ Integración completa |
📚 Documentación
Explora nuestra documentación completa para dominar Wabot:
- 📖 Introducción - Conoce el framework
- 🧠 Mentalidad del Bot - Diseña bots inteligentes
- ⚙️ Agregar Funcionalidades - Extiende tu bot con módulos
- 🔍 Documentación Completa - Explora todas las guías
💡 Ejemplos
💡 Ver más ejemplos en la documentación oficial
🛠️ Desarrollo y Contribución
¿Quieres contribuir al proyecto? ¡Serás bienvenido!
- 🐛 Reportar bugs: Issues
- 💬 Discusiones: Discussions
📞 Soporte
¿Necesitas ayuda? Estamos aquí para ti:
- 📧 Email: [email protected]
- 🐛 Issues: Reportar un problema
📄 Licencia
Este proyecto está licenciado bajo Licencia MIT.
Hecho con ❤️ por el equipo de Wabot
