macOS companion app
WebChat (macOS)
يضمّن تطبيق شريط القوائم في macOS واجهة WebChat كعرض SwiftUI أصلي. ويتصل بـ Gateway ويستخدم افتراضيًا الجلسة الأساسية للوكيل المحدد (main، أو global عندما تكون قيمة session.scope هي global).
نافذة الدردشة الكاملة هي عرض منقسم أصلي:
- الشريط الجانبي للجلسات: قائمة جلسات قابلة للبحث، تتضمن قسمين للجلسات المثبتة والحديثة، ومؤشرات للعناصر غير المقروءة، وقوائم سياقية للتثبيت/إلغاء التثبيت، ونسخ مفتاح الجلسة، والحذف. ينشئ زر في شريط الأدوات (أو Cmd-N) جلسة جديدة فعلية عبر
sessions.create. - شريط أدوات النافذة: حلقة لاستخدام السياق (الرموز المميزة وتكلفة الجلسة، مع إجراء مصغّر)، ومنتقي مستوى التفكير، ومنتقي النموذج، وقائمة إجراءات الجلسة (جلسة جديدة، تحديث، نسخ مفتاح الجلسة، تصدير النص المنسوخ، Compaction، مسح السجل).
- النص المنسوخ ومحرر الرسائل: تُعرض رسائل المساعد كنص عادي مع صورة رمزية، ورسائل المستخدم كفقاعات مميزة. تؤدي كتابة
/إلى فتح الإكمال التلقائي للأوامر ذات الشرطة المائلة والمدعوم بواسطةcommands.list، مع التنقل بلوحة المفاتيح باستخدام الأسهم/Tab/Return/Escape. انقر بزر الماوس الأيمن على رسالة لنسخها.
تحافظ لوحة الدردشة السريعة المثبتة إلى شريط القوائم على التخطيط المصغّر ذي العمود الواحد، مع منتقيات مضمّنة.
- الوضع المحلي: يتصل مباشرةً بـ WebSocket الخاص بـ Gateway المحلي.
- الوضع البعيد: يعيد توجيه منفذ التحكم الخاص بـ Gateway عبر SSH، ويستخدم ذلك النفق كمستوى لنقل البيانات.
التشغيل وتصحيح الأخطاء
-
يدويًا: قائمة Lobster -> "Open Chat".
-
الفتح التلقائي للاختبار:
bash dist/OpenClaw.app/Contents/MacOS/OpenClaw --chat(يُقبل
--webchatكاسم مستعار قديم.) -
السجلات:
./scripts/clawlog.sh(النظام الفرعيai.openclaw، والفئةWebChatSwiftUI).
كيفية توصيل المكونات
- مستوى نقل البيانات: أساليب Gateway WS
chat.historyوchat.sendوchat.abortوchat.inject، والأحداثchatوagentوpresenceوtickوhealth. - يعيد
chat.historyنصًا منسوخًا مطبّعًا للعرض: تُزال وسوم التوجيه المضمّنة من النص المرئي، وتُزال حمولات XML لاستدعاءات الأدوات ذات النص العادي (<tool_call>و<function_call>و<tool_calls>و<function_calls>، بما في ذلك الكتل المبتورة) ورموز التحكم المتسربة من النموذج، وتُحذف صفوف المساعد التي لا تحتوي إلا على رمز صامت مثلNO_REPLY/no_replyتمامًا، ويمكن استبدال الصفوف كبيرة الحجم بعنصر نائب مبتور. - الجلسة: تستخدم افتراضيًا الجلسة الأساسية كما هو موضح أعلاه؛ ويمكن لواجهة المستخدم التبديل بين الجلسات.
- يستخدم الإعداد الأولي جلسة مخصصة لإبقاء إعداد التشغيل الأول منفصلًا.
- ذاكرة التخزين المؤقت دون اتصال: يحتفظ التطبيق بذاكرة تخزين مؤقت صغيرة للقراءة فقط لجلسات الدردشة الحديثة والنصوص المنسوخة لكل Gateway (
~/Library/Application Support/OpenClaw/chat-cache.sqlite): تعرض عمليات الفتح البارد آخر نص منسوخ معروف فورًا وتحدّثه بمجرد استجابة Gateway، وتظل الدردشات الحديثة قابلة للتصفح أثناء انقطاع الاتصال (يظل الإرسال معطّلًا حتى عودة الاتصال).
نطاق الأمان
- يعيد الوضع البعيد توجيه منفذ تحكم WebSocket الخاص بـ Gateway فقط عبر SSH.
القيود المعروفة
- واجهة المستخدم محسّنة لجلسات الدردشة، وليست بيئة اختبار معزولة كاملة للمتصفح.
ذو صلة
Was this useful?