Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
diffs هي أداة Plugin اختيارية مع إرشادات نظام مدمجة موجزة وSkill مرافقة تحوّل محتوى التغييرات إلى أثر diff للقراءة فقط من أجل الوكلاء.
تقبل إما:
- نصي
beforeوafter patchموحّدًا
- عنوان URL لعارض Gateway من أجل عرض اللوحة
- مسار ملف معروض (PNG أو PDF) من أجل تسليم الرسائل
- كلا المخرجين في استدعاء واحد
البدء السريع
تعطيل إرشادات النظام المدمجة
إذا أردت إبقاء أداةdiffs مفعّلة مع تعطيل إرشادات موجه النظام المدمجة الخاصة بها، فاضبط plugins.entries.diffs.hooks.allowPromptInjection على false:
before_prompt_build الخاص بـPlugin diffs مع إبقاء Plugin والأداة وSkill المرافقة متاحة.
إذا أردت تعطيل كل من الإرشادات والأداة، فعطّل Plugin بدلًا من ذلك.
سير عمل الوكيل المعتاد
أمثلة الإدخال
- قبل وبعد
- Patch
مرجع إدخال الأداة
كل الحقول اختيارية ما لم يُذكر خلاف ذلك.النص الأصلي. مطلوب مع
after عند حذف patch.النص المحدّث. مطلوب مع
before عند حذف patch.نص diff موحّد. متنافر مع
before وafter.اسم الملف المعروض لوضع قبل وبعد.
تلميح تجاوز اللغة لوضع قبل وبعد. القيم غير المعروفة تعود إلى نص عادي.
تجاوز عنوان العارض.
وضع الإخراج. الافتراضي هو القيمة الافتراضية لـPlugin
defaults.mode. الاسم المستعار المهمل: "image" يتصرف مثل "file" ولا يزال مقبولًا للتوافق العكسي.سمة العارض. الافتراضي هو القيمة الافتراضية لـPlugin
defaults.theme.تخطيط diff. الافتراضي هو القيمة الافتراضية لـPlugin
defaults.layout.توسيع الأقسام غير المتغيرة عند توفر السياق الكامل. خيار لكل استدعاء فقط (ليس مفتاحًا افتراضيًا لـPlugin).
تنسيق الملف المعروض. الافتراضي هو القيمة الافتراضية لـPlugin
defaults.fileFormat.إعداد جودة مسبق لعرض PNG أو PDF.
تجاوز مقياس الجهاز (
1-4).أقصى عرض للعرض بالبكسلات في CSS (
640-2400).مدة TTL للأثر بالثواني لمخرجات العارض والملف المستقل. الحد الأقصى 21600.
تجاوز أصل عنوان URL للعارض. يتجاوز
viewerBaseUrl الخاص بـPlugin. يجب أن يكون http أو https، بلا استعلام/تجزئة.أسماء الإدخال المستعارة القديمة
أسماء الإدخال المستعارة القديمة
لا تزال مقبولة للتوافق العكسي:
format->fileFormatimageFormat->fileFormatimageQuality->fileQualityimageScale->fileScaleimageMaxWidth->fileMaxWidth
التحقق والحدود
التحقق والحدود
- الحد الأقصى لكل من
beforeوafterهو 512 KiB. - الحد الأقصى لـ
patchهو 2 MiB. - الحد الأقصى لـ
pathهو 2048 بايت. - الحد الأقصى لـ
langهو 128 بايت. - الحد الأقصى لـ
titleهو 1024 بايت. - حد تعقيد Patch: 128 ملفًا كحد أقصى و120000 سطر إجمالًا.
- يتم رفض
patchمعbeforeأوafterمعًا. - حدود أمان الملف المعروض (تنطبق على PNG وPDF):
fileQuality: "standard": الحد الأقصى 8 MP (8,000,000 بكسل معروض).fileQuality: "hq": الحد الأقصى 14 MP (14,000,000 بكسل معروض).fileQuality: "print": الحد الأقصى 24 MP (24,000,000 بكسل معروض).- لدى PDF أيضًا حد أقصى قدره 50 صفحة.
عقد تفاصيل الإخراج
تعيد الأداة بيانات وصفية منظّمة ضمنdetails.
حقول العارض
حقول العارض
حقول مشتركة للأوضاع التي تنشئ عارضًا:
artifactIdviewerUrlviewerPathtitleexpiresAtinputKindfileCountmodecontext(agentId,sessionId,messageChannel,agentAccountIdعند التوفر)
حقول الملف
حقول الملف
حقول الملف عند عرض PNG أو PDF:
artifactIdexpiresAtfilePathpath(القيمة نفسها مثلfilePath، للتوافق مع أداة الرسائل)fileBytesfileFormatfileQualityfileScalefileMaxWidth
أسماء التوافق المستعارة
أسماء التوافق المستعارة
تُعاد أيضًا للمتصلين الحاليين:
format(القيمة نفسها مثلfileFormat)imagePath(القيمة نفسها مثلfilePath)imageBytes(القيمة نفسها مثلfileBytes)imageQuality(القيمة نفسها مثلfileQuality)imageScale(القيمة نفسها مثلfileScale)imageMaxWidth(القيمة نفسها مثلfileMaxWidth)
| الوضع | ما يتم إرجاعه |
|---|---|
"view" | حقول العارض فقط. |
"file" | حقول الملف فقط، بلا أثر عارض. |
"both" | حقول العارض إضافة إلى حقول الملف. إذا فشل عرض الملف، يظل العارض يُعاد مع fileError والاسم المستعار imageError. |
الأقسام غير المتغيرة المطوية
- يمكن أن يعرض العارض صفوفًا مثل
N unmodified lines. - عناصر التحكم في التوسيع على تلك الصفوف شرطية وليست مضمونة لكل نوع إدخال.
- تظهر عناصر التحكم في التوسيع عندما يحتوي diff المعروض على بيانات سياق قابلة للتوسيع، وهذا معتاد لإدخال قبل وبعد.
- بالنسبة للعديد من إدخالات Patch الموحّدة، لا تكون أجسام السياق المحذوفة متاحة في أجزاء Patch المحللة، لذا يمكن أن يظهر الصف من دون عناصر تحكم في التوسيع. هذا سلوك متوقع.
- ينطبق
expandUnchangedفقط عند وجود سياق قابل للتوسيع.
القيم الافتراضية لـPlugin
اضبط القيم الافتراضية على مستوى Plugin في~/.openclaw/openclaw.json:
fontFamilyfontSizelineSpacinglayoutshowLineNumbersdiffIndicatorswordWrapbackgroundthemefileFormatfileQualityfileScalefileMaxWidthmodettlSeconds
إعداد عنوان URL عارض دائم
بديل احتياطي مملوك لـPlugin لروابط العارض المُعادة عندما لا يمرر استدعاء الأداة
baseUrl. يجب أن يكون http أو https، بلا استعلام/تجزئة.إعداد الأمان
false: تُرفض الطلبات غير المحلية إلى مسارات العارض. true: يُسمح بالعارضين البعيدين إذا كان المسار ذي الرمز صالحًا.دورة حياة الأثر والتخزين
- تُخزن الآثار ضمن المجلد الفرعي المؤقت:
$TMPDIR/openclaw-diffs. - تحتوي البيانات الوصفية لأثر العارض على:
- معرّف أثر عشوائي (20 حرفًا سداسيًا)
- رمز عشوائي (48 حرفًا سداسيًا)
createdAtوexpiresAt- مسار
viewer.htmlالمخزّن
- مدة TTL الافتراضية للأثر هي 30 دقيقة عند عدم تحديدها.
- الحد الأقصى المقبول لمدة TTL للعارض هو 6 ساعات.
- يعمل التنظيف انتهازيًا بعد إنشاء الأثر.
- تُحذف الآثار المنتهية.
- يزيل التنظيف الاحتياطي المجلدات القديمة التي يزيد عمرها عن 24 ساعة عند غياب البيانات الوصفية.
عنوان URL للعارض وسلوك الشبكة
مسار العارض:/plugins/diffs/view/{artifactId}/{token}
/plugins/diffs/assets/viewer.js/plugins/diffs/assets/viewer-runtime.js
baseUrl الاختيارية لكل طلبي الأصلين.
سلوك إنشاء عنوان URL:
- إذا تم توفير
baseUrlفي استدعاء الأداة، فسيُستخدم بعد تحقق صارم. - وإلا إذا تم إعداد
viewerBaseUrlالخاص بـPlugin، فسيُستخدم. - من دون أي تجاوز، يكون عنوان URL للعارض افتراضيًا local loopback
127.0.0.1. - إذا كان وضع ربط Gateway هو
customوتم ضبطgateway.customBindHost، فسيُستخدم ذلك المضيف.
baseUrl:
- يجب أن يكون
http://أوhttps://. - تُرفض الاستعلامات والتجزئة.
- يُسمح بالأصل مع مسار أساس اختياري.
نموذج الأمان
تقوية العارض
تقوية العارض
- يقتصر على Loopback افتراضيا.
- مسارات عارض مرمزة برموز مميزة مع تحقق صارم من المعرف والرمز المميز.
- CSP لاستجابة العارض:
default-src 'none'- النصوص البرمجية والأصول من self فقط
- لا يوجد
connect-srcصادر
- تقييد حالات الفقد البعيدة عند تفعيل الوصول البعيد:
- 40 إخفاقا لكل 60 ثانية
- قفل لمدة 60 ثانية (
429 Too Many Requests)
تقوية عرض الملفات
تقوية عرض الملفات
- توجيه طلبات متصفح لقطات الشاشة يرفض افتراضيا.
- يسمح فقط بأصول العارض المحلية من
http://127.0.0.1/plugins/diffs/assets/*. - تحظر طلبات الشبكة الخارجية.
متطلبات المتصفح لوضع الملف
يحتاجmode: "file" وmode: "both" إلى متصفح متوافق مع Chromium.
ترتيب الحل:
متغيرات البيئة
OPENCLAW_BROWSER_EXECUTABLE_PATHBROWSER_EXECUTABLE_PATHPLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH
Diff PNG/PDF rendering requires a Chromium-compatible browser...
استكشاف الأخطاء وإصلاحها
أخطاء التحقق من صحة الإدخال
أخطاء التحقق من صحة الإدخال
Provide patch or both before and after text.— ضمّن كلا منbeforeوafter، أو قدمpatch.Provide either patch or before/after input, not both.— لا تخلط بين أوضاع الإدخال.Invalid baseUrl: ...— استخدم أصلhttp(s)مع مسار اختياري، بدون استعلام/جزء.{field} exceeds maximum size (...)— قلل حجم الحمولة.- رفض التصحيح الكبير — قلل عدد ملفات التصحيح أو إجمالي الأسطر.
إمكانية الوصول إلى العارض
إمكانية الوصول إلى العارض
- يحل عنوان URL للعارض إلى
127.0.0.1افتراضيا. - لسيناريوهات الوصول البعيد، إما:
- عيّن
viewerBaseUrlالخاص بالـ Plugin، أو - مرر
baseUrlلكل استدعاء أداة، أو - استخدم
gateway.bind=customوgateway.customBindHost
- عيّن
- إذا كان
gateway.trustedProxiesيتضمن loopback لوكيل على المضيف نفسه (على سبيل المثال Tailscale Serve)، فستفشل طلبات عارض loopback الخام التي لا تحتوي على ترويسات عنوان IP للعميل المعاد توجيهها على نحو مغلق حسب التصميم. - لطوبولوجيا الوكيل هذه:
- فضّل
mode: "file"أوmode: "both"عندما تحتاج إلى مرفق فقط، أو - فعّل
security.allowRemoteViewerعمدا وعيّنviewerBaseUrlالخاص بالـ Plugin أو مررbaseUrlللوكيل/العام عندما تحتاج إلى عنوان URL قابل للمشاركة للعارض
- فضّل
- فعّل
security.allowRemoteViewerفقط عندما تقصد إتاحة وصول خارجي إلى العارض.
صف الأسطر غير المعدلة لا يحتوي على زر توسيع
صف الأسطر غير المعدلة لا يحتوي على زر توسيع
قد يحدث هذا لإدخال التصحيح عندما لا يحمل التصحيح سياقا قابلا للتوسيع. هذا متوقع ولا يشير إلى إخفاق في العارض.
لم يعثر على الأثر
لم يعثر على الأثر
- انتهت صلاحية الأثر بسبب TTL.
- تغير الرمز المميز أو المسار.
- أزالت عملية التنظيف البيانات القديمة.
الإرشادات التشغيلية
- فضّل
mode: "view"للمراجعات التفاعلية المحلية في اللوحة. - فضّل
mode: "file"لقنوات الدردشة الصادرة التي تحتاج إلى مرفق. - أبق
allowRemoteViewerمعطلا ما لم يتطلب نشرك عناوين URL بعيدة للعارض. - عيّن
ttlSecondsقصيرة وصريحة للفروقات الحساسة. - تجنب إرسال الأسرار في إدخال الفروقات عندما لا تكون مطلوبة.
- إذا كانت قناتك تضغط الصور بقوة (على سبيل المثال Telegram أو WhatsApp)، ففضّل إخراج PDF (
fileFormat: "pdf").
يشغّل محرك عرض الفروقات Diffs.