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