Plugin SDK + Runtime Refactor Plan
Ziel: Jeder Messaging-Connector ist ein Plugin (gebundelt oder extern) das eine stabile API nutzt. Kein Plugin importiert direkt aus src/**. Alle Abhaengigkeiten gehen ueber das SDK oder die Runtime.
Warum jetzt
- Aktuelle Connectors mischen Muster: direkte Core-Imports, dist-only-Bridges und Custom-Helper.
- Das macht Upgrades fragil und blockiert eine saubere externe Plugin-Oberflaeche.
Zielarchitektur (zwei Schichten)
1) Plugin SDK (Compile-Time, stabil, veroeffentlichbar)
Scope: Typen, Helper und Config-Utilities. Kein Runtime-Zustand, keine Seiteneffekte. Veroeffentlichen als openclaw/plugin-sdk. Semver mit expliziten Stabilitaetsgarantien.
2) Plugin Runtime (Ausfuehrungsoberflaeche, injiziert)
Scope: Alles was Core-Runtime-Verhalten beruehrt. Zugriff via OpenClawPluginApi.runtime, damit Plugins nie src/** importieren.
Migrationsplan (phasenweise, sicher)
Phase 0: Scaffolding
Phase 1: Bridge-Cleanup (BlueBubbles, Zalo zuerst)
Phase 2: Leichte Direct-Import-Plugins (Matrix)
Phase 3: Schwere Direct-Import-Plugins (MS Teams)
Phase 4: iMessage-Pluginisierung
Phase 5: Durchsetzung (Lint-Regel: keine extensions/** Imports aus src/**)
Erfolgskriterien
- Alle Channel-Connectors sind Plugins mit SDK + Runtime.
- Keine
extensions/**Imports aussrc/**. - Neue Connector-Templates haengen nur von SDK + Runtime ab.
- Externe Plugins koennen ohne Core-Quellzugang entwickelt werden.
Verwandte Docs: Plugins, Channels, Konfiguration.