@factorybots/provider-sdk
v1.0.0-alpha.1
Published
SDK provider for BuilderBot — exposes bot flows via REST + SSE for web chat integration
Readme
@factorybots/provider-sdk
Provider de BuilderBot para integración con cualquier frontend web. Expone los flujos del bot como una API REST + SSE, sin necesidad de WhatsApp ni ninguna plataforma externa.
¿Para qué sirve?
Permite conectar un bot de BuilderBot a un chat web (o cualquier cliente HTTP) mediante:
POST /v1/message— el frontend envía mensajes al botGET /v1/stream/:sessionId— el frontend recibe respuestas del bot en tiempo real via SSE
Instalación
pnpm add github:rpineda/provider-sdkUso básico
import { createBot, createProvider, createFlow, addKeyword } from '@builderbot/bot'
import { MemoryDB as Database } from '@builderbot/bot'
import { SdkProvider as Provider } from '@factorybots/provider-sdk'
const PORT = process.env.PORT ?? 3008
const welcomeFlow = addKeyword<Provider, Database>(['hola', 'hi', 'hello'])
.addAnswer('Hola! Bienvenido.')
const main = async () => {
const adapterFlow = createFlow([welcomeFlow])
const adapterProvider = createProvider(Provider, { port: +PORT })
const adapterDB = new Database()
const { httpServer } = await createBot({
flow: adapterFlow,
provider: adapterProvider,
database: adapterDB,
})
httpServer(+PORT)
}
main()Endpoints
POST /v1/message
Envía un mensaje del usuario al bot.
Body:
{
"sessionId": "uuid-del-usuario",
"message": "hola",
"name": "Ricardo"
}Response:
{ "ok": true }GET /v1/stream/:sessionId
Suscripción SSE para recibir respuestas del bot en tiempo real.
const events = new EventSource(`http://localhost:3008/v1/stream/${sessionId}`)
events.onmessage = (e) => {
const data = JSON.parse(e.data)
console.log(data.body) // mensaje del bot
}Opciones del provider
| Opción | Tipo | Default | Descripción |
|--------|------|---------|-------------|
| port | number | 3008 | Puerto del servidor HTTP |
createProvider(Provider, { port: 4000 })Tipos exportados
import type { SdkProviderArgs, SdkIncomingMessage } from '@factorybots/provider-sdk'| Tipo | Descripción |
|------|-------------|
| SdkProviderArgs | Opciones del constructor del provider |
| SdkIncomingMessage | Estructura del body en POST /v1/message |
Diferencias con otros providers
| | provider-sdk | provider-baileys | provider-meta | |---|---|---|---| | Requiere WhatsApp | ❌ | ✅ | ✅ | | Requiere credenciales | ❌ | ✅ | ✅ | | Ideal para | Web chat | WhatsApp personal | WhatsApp Business API |
Licencia
MIT
