الرسوم البيانية والجداول والموافقات في Slack مع OpenClaw
الكتل الأصلية للعرض المرئي للبيانات وحدودها، وقاعدة الرسمين البيانيين لكل رسالة، وجداول البيانات الأصلية ذات الخلايا محددة الأنواع، والبديل النصي الذي لا يسقط أي صف، وإرسالات النوافذ المنبثقة التي تملكها المكونات الإضافية، والموافقات الأصلية في Slack على التنفيذ والمكونات الإضافية
كان إدراج رسم بياني في رسالة Slack يعني حتى وقت قريب إنشاء صورة في مكان ما ثم رفعها. أما الآن فلدى Slack كتل Block Kit أصلية للرسوم البيانية والجداول، ويحول OpenClaw كتل العرض المحمولة الخاصة به إليها مباشرة، مع نسخة نصية ترافقها من أجل كل ما لا يستطيع رسم كتلة. إليك الكتلتين الأصليتين بحدودهما وبدائلهما، ومسار النوافذ المنبثقة (modals) للمكونات الإضافية، وأزرار الموافقة التي تجعل Slack يعمل عميلًا للموافقة.
الرسوم البيانية الأصلية
- تعرض الكتلة العامة للعرض المرئي للبيانات في Slack رسومًا بيانية خطية وشريطية ومساحية ودائرية داخل الرسائل، ويحول OpenClaw كتلة الرسم البياني المحمولة، بما فيها نوع الرسم والعنوان والفئات وسلاسل البيانات المسماة وتسمية المحور الاختيارية، إلى هذا الشكل الأصلي دون أي نطاق OAuth إضافي أو رفع ملفات أو أداة لتصيير الصور أو إعداد في Slack يتجاوز الوصول العادي إلى الرسائل.
- تفرض حدود Slack قبل العرض الأصلي: 50 حرفًا للعناوين وتسميات المحاور، ومن شريحة واحدة إلى اثنتي عشرة شريحة موجبة للرسم الدائري، ومن سلسلة بيانات واحدة إلى اثنتي عشرة سلسلة بأسماء فريدة ومن فئة واحدة إلى عشرين فئة مشتركة للرسوم الخطية والشريطية والمساحية، و20 حرفًا للتسميات، وقيمة عددية منتهية واحدة لكل فئة في كل سلسلة، مع السماح بالقيم السالبة خارج الرسوم الدائرية.
- يحمل كل رسم بياني أصلي تمثيلًا نصيًا على المستوى الأعلى من أجل قارئات الشاشة والإشعارات وعكس الجلسات والعملاء الذين لا يستطيعون عرض الكتلة، وتتلقى القنوات الأخرى بيانات الرسم الحتمية نفسها نصًا ما لم تعلن دعمها للرسوم البيانية الأصلية، وعندما يرفض Slack رسمًا بيانيًا بخطأ الكتل غير الصالحة يزيل OpenClaw كتل البيانات المرفوضة، ويحتفظ بعناصر التحكم المجاورة، ويرسل الرسم البياني كاملًا نصًا مرئيًا.
- يقبل Slack كتلتين على الأكثر من كتل العرض المرئي للبيانات في كل رسالة، وهو حد لا يوثقه مرجعه العام، لذا فإن العرض الذي يضم رسومًا بيانية صالحة أكثر يحافظ على ترتيبها ويواصل العرض الأصلي في رسائل لاحقة بما لا يتجاوز رسمين في كل رسالة؛ ويوثق إعلان الإطلاق الموجه للمطورين الكتلة بوصفها ميزة متاحة للتطبيقات دون أي قيد مرتبط بالخطط المدفوعة، أما الصياغة المتعلقة بخطتي Business Plus وEnterprise فتنطبق على توليد Slackbot نفسه للرسوم البيانية بالذكاء الاصطناعي، والرسوم البيانية كتل خاصة بالرسائل وحدها، وليست محتوى في App Home ولا في النوافذ المنبثقة ولا في Canvas.
لا تتحول إلى جداول أصلية إلا كتل الجداول الصريحة في العرض.
الجداول الأصلية
تعرض كتلة جدول البيانات الحالية في Slack صفوفًا وأعمدة داخل الرسائل، ويحول OpenClaw إليها كتلة جدول محمولة صريحة، بما فيها التسمية التوضيحية والترويسات والصفوف ومؤشر اختياري لعمود ترويسات الصفوف، بدلًا من تحويلها إلى كتلة الجدول القديمة، وهنا أيضًا دون أي نطاق إضافي. تصبح خلايا الترويسة والخلايا النصية خلايا نص خام، وتصبح الخلايا الرقمية خلايا أرقام خام مع الحفاظ على القيمة المنتهية من أجل الفرز والتصفية الأصليين، ويحدد مؤشر ترويسة الصف ذلك العمود، المرقم بدءًا من الصفر، بوصفه ترويسات صفوف في Slack. تفرض الحدود المنشورة أولًا: من عمود واحد إلى عشرين عمودًا، ومن صف واحد إلى مئة صف من البيانات إضافة إلى صف الترويسة، والعدد نفسه من الخلايا في كل صف، وعشرة آلاف حرف على الأكثر مجموعة عبر كل الخلايا في رسالة واحدة. يمكن لعدة جداول صالحة أن تعرض أصليًا ما دامت الرسالة ضمن هذا الغلاف؛ أما الجدول الذي لا يمكنه ذلك فيصبح نصًا حتميًا كاملًا بدلًا من أن يفقد صفوفًا أو خلايا، والنص الذي يتجاوز رسالة واحدة يرسل على أجزاء مرتبة في حالات الإرسال وردود أوامر slash، ويفشل تعديل الجدول بخطأ حجم صريح بدلًا من اقتطاع صفوف من رسالة موجودة دون أي إشعار. ويحمل كل جدول أصلي أيضًا تمثيله النصي، وتبقى القيم الخام للرسوم البيانية والجداول حرفية في البديل النصي حتى لا تتحول إشارة إلى مستخدم داخل خلية إلى إشارة حقيقية، وعندما يرفض Slack كتل الرسوم البيانية أو الجداول الأصلية يزيل OpenClaw كل كتل البيانات الأصلية في خطوة استعادة واحدة محدودة، ويحتفظ بالعناصر المجاورة الصالحة مثل الأزرار والقوائم المنسدلة، ويرسل النص كاملًا مع تعطيل تنسيق Slack؛ ويتتبع تسليم أوامر slash ميزانية Slack البالغة خمسة استدعاءات للرد، ويختار قبل كل دفعة خطة كاملة تتسع لها الاستدعاءات المتبقية. لا تتحول إلى جداول أصلية إلا كتل الجداول الصريحة في العرض، وتبقى جداول Markdown ذات الخطوط العمودية نصًا كما كتبه صاحبه لأن OpenClaw لا يخمن البنية ولا أنواع الخلايا، ولا يزال بإمكان المنتجين الموثوقين الأصليين في Slack تمرير كتل خام عبر بيانات القناة مع نص بديل مشتق من الخلايا الخام الصالحة، ويعرض محتوى جداول البيانات الملصق الذي يصل ككتلة جدول قديمة بصيغة TSV آمنة من حيث الفواصل من أجل مدخلات الوكيل وسياق سلسلة المحادثة وإجراءات القراءة، ولا يقبل من المرفقات العادية إلا كتل الجداول الأصلية.
النوافذ المنبثقة والموافقات
- يمكن لمكونات Slack الإضافية التي تملك معالجًا تفاعليًا أن تتلقى أحداث إرسال النافذة المنبثقة وإغلاقها قبل أن يختصر OpenClaw الحمولة، وذلك بضبط معرّف رد الاستدعاء (callback ID) على قيمة تبدأ بالبادئة openclaw وتتضمن مساحة أسماء وحمولة، أو بوضع بيانات المكون الإضافي التفاعلية في البيانات الوصفية الخاصة بالنافذة؛ ويتلقى المعالج نوع التفاعل والمدخلات الموحدة وقيم الحالة الخام، ويكفي التوجيه بمعرّف رد الاستدعاء وحده لاستدعائه، وتجعل حقول توجيه المستخدم والجلسة في البيانات الوصفية الخاصة النافذة تنتج أيضًا حدثًا يراه الوكيل، ويتلقى الوكيل حدث تفاعل مختصرًا ومنقحًا يمكن أن يحمل ملخصًا ومرجعًا وبيانات من المعالج دون حمولة الاستمارة كاملة.
- يستطيع Slack أن يعمل عميل موافقة أصليًا بأزرار تفاعلية بدلًا من الرجوع إلى واجهة الويب أو الطرفية: تعرض موافقات التنفيذ والمكونات الإضافية على شكل مطالبات Block Kit، وتذهب الرسائل المباشرة لموافقات التنفيذ إلى الموافقين المضبوطين أو إلى مالكي الأوامر، وتستخدم موافقات المكونات الإضافية أزرار Slack الأصلية عندما يكون Slack هو العميل الأصلي للجلسة التي صدر منها الطلب، أو عندما توجه موافقات المكونات الإضافية إلى جلسة أو هدف في Slack، مع موافقين مأخوذين من قائمة السماح الخاصة بالقناة أو قائمة السماح الخاصة بحساب مسمى أو المسار الافتراضي للحساب، ولا يستطيع الموافقون على التنفيذ وحده الموافقة على طلبات المكونات الإضافية ما لم يكونوا موافقين على المكونات الإضافية أيضًا.
- مسار الإعداد هو الكتلة exec-approvals وفيها enabled، وموافقون اختياريون يُرجَع عند غيابهم إلى مالكي الأوامر، وهدف قيمته dm أو channel أو both مع dm افتراضيًا، ومرشحات للوكيل والجلسة؛ وتتطلب موافقات التنفيذ الأصلية ضبط enabled على true أو auto إضافة إلى موافق واحد محلول على الأقل، وتركه غير مضبوط أو على false يعطل التسليم الأصلي لموافقات التنفيذ دون أن يعطل موافقات المكونات الإضافية الأصلية، ويبقى التحويل المشترك لطلبات التنفيذ والمكونات الإضافية منفصلًا ولا يلغى إلا عندما يعالج Slack الطلب أصليًا، ولا يزال أمر الموافقة في الدردشة نفسها يعمل حيثما تعمل الأوامر، وفي Enterprise Grid يحتفظ بمساحة العمل التي تم التحقق منها في الحدث المصدر من أجل المطالبة والرسالة المباشرة ورد استدعاء الزر والتحديث النهائي، مع الرفض الافتراضي (fail closed) عندما يفتقر الحساب المثبت على مستوى المؤسسة إلى هذا النطاق.
OpenClaw على Slack هو مقال القناة الذي تبني عليه هذه الواجهات، أما سلوك رسائل Slack في OpenClaw فهو نموذج البطاقات والمعاينات الذي تندرج ضمنه.
لماذا يرافق النص الكتل دائمًا
الرسم البياني الموجود ككتلة فقط يختفي من الإشعارات وقارئات الشاشة ومن كل قناة أخرى تعكس إليها الجلسة، ولهذا فالنسخة النصية الحتمية ليست اختيارية، ولهذا أيضًا تتراجع الكتلة المرفوضة إلى ذلك النص بدلًا من أن تختفي تمامًا. يغطي مقال موافقات التنفيذ في OpenClaw نموذج الموافقة الذي تشغله هذه الأزرار، ويغطي مقال الرسائل الغنية والموافقات في Telegram مع OpenClaw الواجهات الغنية المكافئة على Telegram.
على Diali
يعد Slack إحدى القنوات التي تربطها Diali من لوحة التحكم، مع إعدادات محرك تولد وتستبدل عند كل إصدار، لذا تتصرف الرسوم البيانية والجداول ومطالبات الموافقة لدى الوكيل المستضاف كما هو موضح هنا دون إعدادات تعدل يدويًا. Slack على Diali هو القناة كما تعمل على Diali، أما الأمان في Diali فهو الحدود التي تنطبق على كل إجراء يمكن أن يتخذه البوت.
- رسمان بيانيان لكل رسالة؛ وتنتقل الرسوم الإضافية إلى رسائل لاحقة.
- الجدول الذي يتجاوز الغلاف يصبح نصًا كاملًا، ولا يفقد أي صف أبدًا.
- أزرار الموافقة هي تجربة الاستخدام الأساسية؛ وأمر الموافقة هو الحل الاحتياطي.
كفاك قراءة، ابنِ وكيلك الخاص
جهز وكيلًا، واختر قناة، واجعله يعمل داخل التطبيق المفتوح لديك دائمًا.
