Canvas (تطبيق macOS)
يضمّن تطبيق macOS لوحة Canvas يتحكم بها الوكيل باستخدامWKWebView. وهي
مساحة عمل مرئية خفيفة لـ HTML/CSS/JS وA2UI والواجهات
التفاعلية الصغيرة.
مكان وجود 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 في الجذر، يعرض التطبيق صفحة scaffold مدمجة.
سلوك اللوحة
- لوحة بلا حدود وقابلة لتغيير الحجم ومثبتة بالقرب من شريط القائمة (أو مؤشر الفأرة).
- تتذكر الحجم/الموضع لكل جلسة.
- تعيد التحميل تلقائيًا عند تغير ملفات canvas المحلية.
- تكون لوحة Canvas واحدة فقط مرئية في الوقت نفسه (ويتم تبديل الجلسة عند الحاجة).
CANVAS_DISABLED.
سطح API الخاص بالوكيل
تُعرَض Canvas عبر Gateway WebSocket، بحيث يمكن للوكيل:- إظهار اللوحة/إخفاؤها
- الانتقال إلى مسار أو URL
- تنفيذ JavaScript
- التقاط صورة snapshot
- يقبل
canvas.navigateمسارات canvas المحلية، وعناوين URL من نوعhttp(s)، وعناوين URL من نوعfile://. - إذا مررت
"/"، فستعرض Canvas الـ scaffold المحلي أوindex.html.
A2UI داخل Canvas
تُستضاف A2UI بواسطة Gateway canvas host وتُعرَض داخل لوحة Canvas. وعندما يعلن Gateway عن Canvas host، ينتقل تطبيق macOS تلقائيًا إلى صفحة مضيف A2UI عند أول فتح. عنوان URL الافتراضي لمضيف A2UI:أوامر A2UI (v0.8)
تقبل Canvas حاليًا رسائل A2UI v0.8 من الخادم إلى العميل:beginRenderingsurfaceUpdatedataModelUpdatedeleteSurface
createSurface (v0.9) فهو غير مدعوم.
مثال CLI:
تشغيل عمليات وكيل من Canvas
يمكن لـ Canvas تشغيل عمليات وكيل جديدة عبر الروابط العميقة:openclaw://agent?...
ملاحظات الأمان
- يمنع مخطط Canvas اجتياز الأدلة؛ ويجب أن توجد الملفات ضمن جذر الجلسة.
- يستخدم محتوى Canvas المحلي مخططًا مخصصًا (ولا يتطلب خادم loopback).
- لا يُسمح بعناوين URL الخارجية من نوع
http(s)إلا عند الانتقال إليها صراحة.