واجهات الويب

WebChat

الحالة: واجهة المستخدم SwiftUI الخاصة بـ macOS/iOS تتحدث مباشرة إلى منفذ WebSocket الخاص بالبوابة.

ما هو

  • واجهة مستخدم محادثة أصلية للبوابة (بدون متصفح مضمن وبدون خادم ثابت محلي).
  • تستخدم نفس الجلسات وقواعد التوجيه مثل القنوات الأخرى.
  • توجيه حتمي: الردود تعود دائمًا إلى WebChat.

البدء السريع

  1. ابدأ تشغيل البوابة.
  2. افتح واجهة مستخدم WebChat (تطبيق macOS/iOS) أو علامة تبويب المحادثة في واجهة التحكم.
  3. تأكد من تكوين مصادقة البوابة (مطلوبة افتراضيًا، حتى على الاتصال المحلي).

آلية العمل (السلوك)

  • تتصل واجهة المستخدم بـ WebSocket الخاص بالبوابة وتستخدم chat.history، و chat.send، و chat.inject.
  • chat.history محدود للاستقرار: قد تقوم البوابة بتقصير حقول النص الطويلة، وحذف البيانات الوصفية الثقيلة، واستبدال الإدخالات كبيرة الحجم بـ [chat.history omitted: message too large].
  • chat.inject يضيف ملاحظة مساعد مباشرةً إلى النص وينشرها إلى واجهة المستخدم (بدون تشغيل وكيل).
  • يمكن للعمليات الملغاة أن تحتفظ بإخراج المساعد الجزئي مرئيًا في واجهة المستخدم.
  • تحتفظ البوابة بنص المساعد الجزئي الملغي في سجل النص عند وجود إخراج مؤقت، وتضع علامة على تلك الإدخالات ببيانات وصفية للإلغاء.
  • يتم جلب السجل دائمًا من البوابة (بدون مراقبة للملفات المحلية).
  • إذا كانت البوابة غير قابلة للوصول، فإن WebChat يكون للقراءة فقط.

لوحة أدوات الوكلاء في واجهة التحكم

  • تجلب لوحة الأدوات /agents في واجهة التحكم كتالوج وقت التشغيل عبر tools.catalog وتصنف كل أداة على أنها core أو plugin:<id> (بالإضافة إلى optional لأدوات الإضافات الاختيارية).
  • إذا كان tools.catalog غير متاح، تعود اللوحة إلى قائمة ثابتة مدمجة.
  • تقوم اللوحة بتحرير ملف التعريف وتجاوز التكوين، لكن الوصول الفعلي في وقت التشغيل لا يزال يتبع أولوية السياسة (allow/deny، وتجاوزات لكل وكيل وموفر/قناة).

الاستخدام عن بُعد

  • يقوم الوضع البعيد بنفق WebSocket الخاص بالبوابة عبر SSH/Tailscale.
  • لا تحتاج إلى تشغيل خادم WebChat منفصل.

مرجع التكوين (WebChat)

التكوين الكامل: التكوين خيارات القناة:

  • لا توجد كتلة مخصصة webchat.*. يستخدم WebChat نقطة نهاية البوابة + إعدادات المصادقة أدناه.

الخيارات العامة ذات الصلة:

  • gateway.port, gateway.bind: المضيف/المنفذ لـ WebSocket.
  • gateway.auth.mode, gateway.auth.token, gateway.auth.password: مصادقة WebSocket (رمز/كلمة مرور).
  • gateway.auth.mode: "trusted-proxy": مصادقة الوكيل العكسي لعملاء المتصفح (انظر مصادقة الوكيل الموثوق).
  • gateway.remote.url, gateway.remote.token, gateway.remote.password: هدف البوابة البعيدة.
  • session.*: تخزين الجلسة والإعدادات الافتراضية للمفتاح الرئيسي.

لوحة التحكمواجهة المستخدم النصية