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