WKWebView، وهي
مساحة عمل مرئية خفيفة لـ HTML/CSS/JS وA2UI وواجهات UI
تفاعلية صغيرة.
مكان وجود Canvas
تُخزَّن حالة Canvas ضمن Application Support:~/Library/Application Support/OpenClaw/canvas/<session>/...
openclaw-canvas://<session>/<path>:
openclaw-canvas://main/-><canvasRoot>/main/index.htmlopenclaw-canvas://main/assets/app.css-><canvasRoot>/main/assets/app.cssopenclaw-canvas://main/widgets/todo/-><canvasRoot>/main/widgets/todo/index.html
index.html في الجذر، فسيعرض التطبيق صفحة هيكلية مضمّنة.
سلوك اللوحة
- لوحة بلا حدود قابلة لتغيير الحجم ومثبتة بالقرب من شريط القوائم (أو مؤشر الماوس).
- تتذكر الحجم والموضع لكل جلسة.
- تُعاد تهيئتها تلقائيًا عند تغير ملفات Canvas المحلية.
- لا تظهر سوى لوحة Canvas واحدة في كل مرة (مع تبديل الجلسات حسب الحاجة).
CANVAS_DISABLED.
واجهة API للوكيل
تُتاح Canvas عبر WebSocket الخاص بـ Gateway، بحيث يمكن للوكيل إظهار اللوحة أو إخفاؤها، والانتقال إلى مسار أو عنوان URL، وتقييم JavaScript، والتقاط صورة لقطة:canvas.navigate مسارات Canvas المحلية وعناوين URL من نوع http(s) وعناوين URL من نوع file://.
يؤدي تمرير "/" إلى إظهار الهيكل المحلي أو index.html.
تُحل الأهداف التي يستضيفها Gateway ضمن /__openclaw__/canvas/ و
/__openclaw__/a2ui/ من خلال عنوان URL الحالي المحدد النطاق لـ Canvas في جلسة العقدة.
يُحدّث التطبيق تلك الصلاحية قصيرة الأجل قبل الانتقال؛
ولا تحتاج إلى إنشاء عنوان URL للصلاحية أو نسخه بنفسك.
A2UI في Canvas
يستضيف مضيف Canvas في Gateway واجهة A2UI ويعرضها داخل لوحة Canvas. عندما يعلن Gateway عن مضيف Canvas، ينتقل تطبيق macOS تلقائيًا إلى صفحة مضيف A2UI عند الفتح لأول مرة. يكون عنوان URL المُعلن محدد النطاق بصلاحية، مثلhttp://<gateway-host>:18789/__openclaw__/cap/<token>/__openclaw__/a2ui/?platform=macos.
تعامل معه باعتباره بيانات اعتماد مؤقتة، لا رابطًا ثابتًا.
أوامر A2UI (v0.8)
تقبل Canvas رسائل A2UI v0.8 من الخادم إلى العميل:beginRendering،
وsurfaceUpdate، وdataModelUpdate، وdeleteSurface. أما createSurface (v0.9)
فغير مدعوم حتى الآن.
تشغيل عمليات الوكيل من Canvas
يمكن لـ Canvas تشغيل عمليات وكيل جديدة عبر الروابط العميقةopenclaw://agent?...:
يطلب التطبيق التأكيد ما لم يُقدَّم مفتاح صالح. وتعرض
الروابط التي بلا مفتاح الرسالة وعنوان URL قبل الموافقة، وتتجاهل حقول توجيه
التسليم؛ أما الروابط ذات المفتاح فتستخدم مسار التشغيل المعتاد في Gateway.
ملاحظات أمنية
- يحظر مخطط Canvas اجتياز الأدلة؛ ويجب أن تكون الملفات ضمن جذر الجلسة.
- يستخدم محتوى Canvas المحلي مخططًا مخصصًا (ولا يلزم خادم استرجاع حلقي).
- لا يُسمح بعناوين URL الخارجية من نوع
http(s)إلا عند الانتقال إليها صراحةً. - صفحات الويب العادية مخصصة للعرض فقط. لا تُقبل إجراءات الوكيل إلا من مخطط Canvas المملوك للتطبيق أو مستند A2UI المحدد النطاق بصلاحية في Gateway الذي يختاره التطبيق تحديدًا؛ ولا يمكن للإطارات الفرعية أو عمليات إعادة التوجيه أو الصلاحيات القديمة أو الاستعلامات المتغيرة إرسال إجراءات.