OpenClaw macOS IPC arxitekturasi
Joriy model: lokal Unix soketi node host xizmatini macOS ilovasi bilan exec ruxsatlari vasystem.run uchun bog‘laydi. Kashf etish/ulanish tekshiruvlari uchun openclaw-mac debug CLI mavjud; agent amallari hanuz Gateway WebSocket va node.invoke orqali oqadi. UI avtomatlashtirish PeekabooBridge’dan foydalanadi.
Maqsadlar
- TCC bilan bog‘liq barcha ishlarni (bildirishnomalar, ekran yozuvi, mikrofon, nutq, AppleScript) bajaradigan yagona GUI ilova instansiyasi.
- Avtomatlashtirish uchun kichik yuzasi: Gateway + node buyruqlari, hamda UI avtomatlashtirish uchun PeekabooBridge.
- Oldindan aytib bo‘ladigan ruxsatlar: har doim bir xil imzolangan bundle ID, launchd tomonidan ishga tushiriladi, shuning uchun TCC ruxsatlari saqlanib qoladi.
Qanday ishlaydi
Gateway + tugun transporti
- Ilova Gateway’ni (mahalliy rejimda) ishga tushiradi va unga tugun sifatida ulanadi.
- Agent amallari
node.invokeorqali bajariladi (masalan,system.run,system.notify,canvas.*).
Node xizmati + ilova IPC
- Headless node host xizmati Gateway WebSocket’iga ulanadi.
system.runso‘rovlari lokal Unix soketi orqali macOS ilovasiga uzatiladi.- Ilova exec’ni UI kontekstida bajaradi, kerak bo‘lsa so‘raydi va natijani qaytaradi.
PeekabooBridge (UI avtomatlashtirish)
- UI avtomatlashtirish
bridge.socknomli alohida UNIX soketi va PeekabooBridge JSON protokolidan foydalanadi. - Xost afzallik tartibi (klient tomoni): Peekaboo.app → Claude.app → OpenClaw.app → lokal bajarish.
- Xavfsizlik: bridge xostlari ruxsat etilgan TeamID’ni talab qiladi; DEBUG-only bir xil UID uchun chetlab o‘tish
PEEKABOO_ALLOW_UNSIGNED_SOCKET_CLIENTS=1bilan himoyalangan (Peekaboo an’anasi). - Batafsil ma’lumot uchun qarang: PeekabooBridge usage.
Operatsion oqimlar
- Qayta ishga tushirish/qayta yig‘ish:
SIGN_IDENTITY="Apple Development: <Developer Name> (<TEAMID>)" scripts/restart-mac.sh- Mavjud instansiyalarni to‘xtatadi
- Swift build + paketlash
- LaunchAgent’ni yozadi/bootstraps/kickstart qiladi
- Yagona instansiya: agar xuddi shu bundle ID bilan boshqa instansiya ishlayotgan bo‘lsa, ilova erta chiqadi.
Mustahkamlash eslatmalari
- Barcha imtiyozli yuzalar uchun TeamID mosligini talab qilishni afzal ko‘ring.
- PeekabooBridge:
PEEKABOO_ALLOW_UNSIGNED_SOCKET_CLIENTS=1(faqat DEBUG) lokal ishlab chiqish uchun bir xil UID’dagi chaqiruvchilarga ruxsat berishi mumkin. - Barcha aloqa faqat lokal bo‘lib qoladi; hech qanday tarmoq soketlari ochilmaydi.
- TCC so‘rovlari faqat GUI ilova bundle’idan kelib chiqishi kerak; qayta build qilishlar orasida imzolangan bundle ID’ni barqaror saqlang.
- IPC mustahkamlash: soket rejimi
0600, token, peer‑UID tekshiruvlari, HMAC chaqiruv/javob, qisqa TTL.