Plan de refactorización del SDK de plugins + runtime
Objetivo: cada conector de mensajería es un plugin (incluido o externo) usando una API estable única.
Ningún plugin importa directamente de src/**. Todas las dependencias pasan por el SDK o el runtime.
Por qué ahora
- Los conectores actuales mezclan patrones: imports directos del core, bridges solo-dist, y helpers personalizados.
- Esto hace las actualizaciones frágiles y bloquea una superficie limpia de plugins externos.
Arquitectura objetivo (dos capas)
1) SDK de plugins (tiempo de compilación, estable, publicable)
Alcance: tipos, helpers y utilidades de configuración. Sin estado de runtime, sin efectos secundarios.
2) Runtime de plugins (superficie de ejecución, inyectada)
Alcance: todo lo que toca el comportamiento del runtime del core.
Accedido vía OpenClawPluginApi.runtime para que los plugins nunca importen src/**.
Plan de migración (por fases, seguro)
- Fase 0: Scaffolding
- Fase 1: Limpieza de bridges (bajo riesgo)
- Fase 2: Plugins con imports directos ligeros
- Fase 3: Plugins con imports directos pesados
- Fase 4: Conversión de iMessage a plugin
- Fase 5: Aplicación de reglas
Criterios de éxito
- Todos los conectores de canal son plugins usando SDK + runtime.
- Sin imports de
extensions/**desdesrc/**. - Los nuevos templates de conectores dependen solo del SDK + runtime.
- Los plugins externos pueden desarrollarse y actualizarse sin acceso al código fuente del core.
Documentación relacionada: Plugins, Canales, Configuración.