RPC एडेप्टर
Silent housekeeping (जैसे memory writes जो user-visible आउटपुट नहीं बनाने चाहिए) Idle expiry (session.reset.idleMinutes या legacy session.idleMinutes) idle window के बाद जब कोई मैसेज आता है तो एक नया sessionId बनाता है।
पैटर्न A: HTTP डेमन (signal-cli)
signal-cliJSON-RPC के साथ HTTP पर एक डेमन के रूप में चलता है।- इवेंट स्ट्रीम SSE है (
/api/v1/events)। - हेल्थ प्रोब:
/api/v1/check। - जब
channels.signal.autoStart=trueहो, तब OpenClaw लाइफसाइकल का स्वामित्व रखता है।
पैटर्न B: stdio चाइल्ड प्रोसेस (legacy: imsg)
टिप्पणी: नए iMessage सेटअप के लिए, इसके बजाय BlueBubbles का उपयोग करें।
- OpenClaw
imsg rpcको एक चाइल्ड प्रोसेस के रूप में स्पॉन करता है (legacy iMessage एकीकरण)। - JSON-RPC stdin/stdout पर लाइन-डिलिमिटेड होता है (प्रति पंक्ति एक JSON ऑब्जेक्ट)।
- कोई TCP पोर्ट नहीं, डेमन की आवश्यकता नहीं।
watch.subscribe→ नोटिफ़िकेशन (method: "message")watch.unsubscribesendchats.list(प्रोब/डायग्नॉस्टिक्स)
chat_id को प्राथमिकता दी जाती है)।
एडेप्टर दिशानिर्देश
- Gateway प्रोसेस का स्वामित्व रखता है (स्टार्ट/स्टॉप प्रदाता के लाइफसाइकल से जुड़ा होता है)।
- RPC क्लाइंट्स को लचीला रखें: टाइमआउट, एग्ज़िट पर रीस्टार्ट।
- डिस्प्ले स्ट्रिंग्स के बजाय स्थिर IDs (उदा.,
chat_id) को प्राथमिकता दें।