Plugin SDK + 런타임 리팩토링 계획

목표: 모든 메시징 커넥터가 하나의 안정적인 API를 사용하는 플러그인(번들 또는 외부)이 되는 것. 플러그인이 src/**에서 직접 임포트하지 않음. 모든 의존성은 SDK 또는 런타임을 통해.

왜 지금인가

  • 현재 커넥터가 패턴을 혼합: 직접 코어 임포트, dist 전용 브릿지, 커스텀 헬퍼.
  • 이로 인해 업그레이드가 취약하고 깔끔한 외부 플러그인 인터페이스를 차단.

목표 아키텍처 (두 레이어)

1) Plugin SDK (컴파일 타임, 안정적, 배포 가능)

범위: 타입, 헬퍼, 설정 유틸리티. 런타임 상태 없음, 부작용 없음.

2) Plugin Runtime (실행 표면, 주입됨)

범위: 코어 런타임 동작에 접근하는 모든 것. OpenClawPluginApi.runtime을 통해 접근하여 플러그인이 src/**를 절대 임포트하지 않음.

마이그레이션 계획 (단계적, 안전)

0단계: 스캐폴딩 1단계: 브릿지 정리 (저위험) 2단계: 경량 직접 임포트 플러그인 3단계: 중량 직접 임포트 플러그인 4단계: iMessage 플러그인화 5단계: 강제

성공 기준

  • 모든 채널 커넥터가 SDK + 런타임을 사용하는 플러그인.
  • extensions/**에서 src/**로의 임포트 없음.
  • 새 커넥터 템플릿이 SDK + 런타임에만 의존.
  • 외부 플러그인이 코어 소스 접근 없이 개발 및 업데이트 가능.