بنية OpenClaw IPC في macOS
النموذج الحالي: يربط مقبس Unix محلي خدمة مضيف العقدة بـ تطبيق macOS من أجل موافقات exec وsystem.run. ويوجد CLI للتصحيح باسم openclaw-mac لفحوصات الاكتشاف/الاتصال؛ ولا تزال إجراءات الوكيل تمر عبر Gateway WebSocket وnode.invoke. وتستخدم أتمتة واجهة المستخدم PeekabooBridge.
الأهداف
- مثيل واحد من تطبيق GUI يملك كل الأعمال المواجهة لـ TCC (الإشعارات، وتسجيل الشاشة، والميكروفون، والنطق، وAppleScript).
- سطح صغير للأتمتة: Gateway + أوامر العقدة، بالإضافة إلى PeekabooBridge لأتمتة واجهة المستخدم.
- أذونات متوقعة: معرّف حزمة موقّع واحد دائمًا، ويتم تشغيله بواسطة launchd، بحيث تبقى منح TCC ثابتة.
كيف يعمل
Gateway + نقل العقدة
- يشغّل التطبيق Gateway (الوضع المحلي) ويتصل به كعقدة.
- تُنفذ إجراءات الوكيل عبر
node.invoke(مثلsystem.runوsystem.notifyوcanvas.*).
خدمة العقدة + IPC التطبيق
- تتصل خدمة مضيف عقدة بلا واجهة بـ Gateway WebSocket.
- تُمرَّر طلبات
system.runإلى تطبيق macOS عبر مقبس Unix محلي. - ينفذ التطبيق exec في سياق UI، ويطلب الإذن عند الحاجة، ثم يعيد المخرجات.
PeekabooBridge (أتمتة واجهة المستخدم)
- تستخدم أتمتة واجهة المستخدم مقبس UNIX منفصلًا باسم
bridge.sockوبروتوكول JSON الخاص بـ PeekabooBridge. - ترتيب تفضيل المضيف (من جهة العميل): Peekaboo.app → Claude.app → OpenClaw.app → التنفيذ المحلي.
- الأمان: تتطلب مضيفات الجسر TeamID مسموحًا؛ ويُحمى منفذ الهروب DEBUG-only للمستخدم نفسه بواسطة
PEEKABOO_ALLOW_UNSIGNED_SOCKET_CLIENTS=1(وفق اصطلاح Peekaboo). - راجع: استخدام PeekabooBridge للتفاصيل.
التدفقات التشغيلية
- إعادة التشغيل/إعادة البناء:
SIGN_IDENTITY="Apple Development: <Developer Name> (<TEAMID>)" scripts/restart-mac.sh- يقتل المثيلات الموجودة
- بناء Swift + الحزم
- يكتب LaunchAgent ويقوم بالـ bootstrap/kickstart له
- مثيل واحد: يخرج التطبيق مبكرًا إذا كان هناك مثيل آخر يعمل بمعرّف الحزمة نفسه.
ملاحظات التقوية
- فضّل طلب تطابق TeamID لجميع الأسطح ذات الامتيازات.
- PeekabooBridge: قد يسمح
PEEKABOO_ALLOW_UNSIGNED_SOCKET_CLIENTS=1(DEBUG-only) للمتصلين من المستخدم نفسه أثناء التطوير المحلي. - تبقى كل الاتصالات محلية فقط؛ ولا يتم كشف أي مقابس شبكية.
- تصدر مطالبات TCC فقط من حزمة تطبيق GUI؛ وحافظ على ثبات معرّف الحزمة الموقعة عبر عمليات إعادة البناء.
- تقوية IPC: وضع المقبس
0600، ورمز، وفحوصات peer-UID، وتحدي/استجابة HMAC، وTTL قصير.