Joe — Plugins y Conectores
Joe — Plugins & Connectors
Joe es un sistema de gestión de tareas inteligente que recibe eventos desde múltiples canales externos (Telegram, correo IMAP, Gitea) y los convierte en tareas estructuradas para su procesamiento por la capa de IA (Dify/NOVA).
¿Cómo funciona el sistema de plugins?
Cada conector se registra en la base de datos como un PluginConfig. Este modelo centraliza las credenciales cifradas y los metadatos de configuración de cada canal. Cuando llega un evento (mensaje de Telegram, issue de Gitea, correo nuevo), el plugin correspondiente:
- Valida la autenticidad de la petición (firma HMAC, secret token).
- Deserializa el payload usando schemas Pydantic.
- Crea una tarea cascarón en estado
cuarentena. - La capa NOVA/Dify adopta la tarea y completa los campos faltantes vía Cross-Channel Slot Filling.
Plugins disponibles
Recibe mensajes de texto y notas de voz desde un bot de Telegram. Cada mensaje genera una tarea cascarón.
Ver configuración →Escucha eventos de issues y pull requests desde repositorios Gitea autohospedados. Valida firma HMAC SHA-256.
Ver configuración →Tarea Celery Beat que revisa buzones IMAP periódicamente y convierte correos no leídos en tareas.
Ver configuración →Conceptos clave
- Tarea cascarón: Tarea creada con
creador=Noneyestado=cuarentena. La IA la adopta y enriquece. - PluginConfig: Registro único por
(servicio, identificador). Almacena el token cifrado con Fernet. - Cross-Channel Slot Filling: Mecanismo de NOVA para unificar datos parciales de múltiples canales en una sola tarea.
- Soft delete: Ningún registro se elimina físicamente. El campo
activo=Falsemarca el borrado lógico (Regla GUARDIAN).
Joe is an intelligent task management system that receives events from multiple external channels (Telegram, IMAP email, Gitea) and converts them into structured tasks for processing by the AI layer (Dify/NOVA).
How the plugin system works
Each connector is registered in the database as a PluginConfig. This model centralizes encrypted credentials and configuration metadata for each channel. When an event arrives (Telegram message, Gitea issue, new email), the corresponding plugin:
- Validates the authenticity of the request (HMAC signature, secret token).
- Deserializes the payload using Pydantic schemas.
- Creates a shell task in
quarantinestate. - The NOVA/Dify layer adopts the task and completes missing fields via Cross-Channel Slot Filling.
Available plugins
Receives text messages and voice notes from a Telegram bot. Each message generates a shell task.
View configuration →Listens to issue and pull request events from self-hosted Gitea repositories. Validates HMAC SHA-256 signature.
View configuration →Celery Beat task that periodically checks IMAP mailboxes and converts unread emails into tasks.
View configuration →Key concepts
- Shell task: Task created with
creator=Noneandstate=quarantine. The AI adopts and enriches it. - PluginConfig: Unique record per
(service, identifier). Stores the Fernet-encrypted token. - Cross-Channel Slot Filling: NOVA mechanism to unify partial data from multiple channels into a single task.
- Soft delete: No record is physically deleted. The
active=Falsefield marks logical deletion (GUARDIAN Rule).