パターン A: HTTP デーモン (signal-cli)
signal-cliは HTTP 経由の JSON-RPC を備えたデーモンとして実行されます。- イベントストリームは SSE (
/api/v1/events) です。 - ヘルスプローブ:
/api/v1/check。 channels.signal.autoStart=trueの場合、OpenClaw がライフサイクルを所有します。
パターン B: stdio 子プロセス (imsg)
- OpenClaw は iMessage 用の子プロセスとして
imsg rpcを起動します。 - JSON-RPC は stdin/stdout 上で行区切りです (1 行につき 1 つの JSON オブジェクト)。
- TCP ポートもデーモンも不要です。
watch.subscribe→ 通知 (method: "message")watch.unsubscribesendchats.list(プローブ/診断)
chat_id を推奨)。
アダプターのガイドライン
- Gateway がプロセスを所有します (開始/停止はプロバイダーのライフサイクルに紐づきます)。
- RPC クライアントの回復性を保ちます: タイムアウト、終了時の再起動。
- 表示文字列より安定した ID (例:
chat_id) を優先します。