الانتقال إلى المحتوى الرئيسي

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.

حل تبعيات Plugin

يبقي OpenClaw عمل تبعيات Plugin في وقت التثبيت/التحديث. لا يقوم التحميل وقت التشغيل بتشغيل مديري الحزم، أو إصلاح أشجار التبعيات، أو تعديل دليل حزمة OpenClaw.

تقسيم المسؤوليات

تمتلك حزم Plugin مخطط تبعياتها:
  • تعيش تبعيات وقت التشغيل في dependencies أو optionalDependencies الخاصة بحزمة Plugin
  • تكون استيرادات SDK/core استيرادات peer أو استيرادات يوفرها OpenClaw
  • تجلب Plugins التطوير المحلية تبعياتها المثبتة مسبقًا بنفسها
  • يتم تثبيت Plugins من npm و git في جذور حزم مملوكة لـ OpenClaw
يمتلك OpenClaw دورة حياة Plugin فقط:
  • اكتشاف مصدر Plugin
  • تثبيت الحزمة أو تحديثها عند الطلب الصريح
  • تسجيل بيانات تعريف التثبيت
  • تحميل نقطة دخول Plugin
  • الفشل برسالة خطأ قابلة للإجراء عندما تكون التبعيات مفقودة

جذور التثبيت

يستخدم OpenClaw جذورًا ثابتة لكل مصدر:
  • تُثبَّت حزم npm تحت ~/.openclaw/npm
  • تُنسَخ حزم git تحت ~/.openclaw/git
  • تُنسخ أو تُشار إلى تثبيتات local/path/archive بدون إصلاح للتبعيات
تعمل تثبيتات npm في جذر npm باستخدام:
npm install --prefix ~/.openclaw/npm <spec> --omit=dev --ignore-scripts --no-audit --no-fund
قد يرفع npm التبعيات العابرة إلى ~/.openclaw/npm/node_modules بجانب حزمة Plugin. يفحص OpenClaw جذر npm المُدار قبل الوثوق بالتثبيت، ويستخدم npm لإزالة الحزم المُدارة بواسطة npm أثناء إلغاء التثبيت، لذلك تبقى تبعيات وقت التشغيل المرفوعة داخل حد التنظيف المُدار. تنسخ تثبيتات git المستودع أو تحدّثه، ثم تشغّل:
npm install --omit=dev --ignore-scripts --no-audit --no-fund
ثم يُحمَّل Plugin المثبت من دليل تلك الحزمة، لذلك يعمل حل node_modules المحلي للحزمة والتابع للأب بالطريقة نفسها التي يعمل بها لحزمة Node عادية.

Plugins المحلية

تُعامل Plugins المحلية كدلائل يتحكم بها المطور. لا يشغّل OpenClaw npm install أو pnpm install أو إصلاح التبعيات لها. إذا كانت لدى Plugin محلية تبعيات، فثبّتها في تلك Plugin قبل تحميلها. يمكن لـ Plugins TypeScript المحلية التابعة لجهات خارجية استخدام مسار Jiti الطارئ. تُحمَّل Plugins JavaScript المعبأة وPlugins الداخلية المضمنة عبر import/require الأصلي بدلًا من Jiti.

بدء التشغيل وإعادة التحميل

لا يثبت بدء تشغيل Gateway وإعادة تحميل الإعدادات تبعيات Plugin أبدًا. إنهما يقرآن سجلات تثبيت Plugin، ويحسبان نقطة الدخول، ويحمّلانها. إذا كانت تبعية مفقودة وقت التشغيل، يفشل تحميل Plugin ويجب أن يوجه الخطأ المشغّل إلى إصلاح صريح:
openclaw plugins update <id>
openclaw plugins install <source>
openclaw doctor --fix
يمكن لـ doctor --fix تنظيف حالة التبعيات القديمة التي أنشأها OpenClaw وتثبيت Plugins القابلة للتنزيل والمهيأة والمفقودة من سجلات التثبيت المحلية. لا يصلح التبعيات لـ Plugin محلية مثبتة مسبقًا.

Plugins المضمنة

تُشحَن Plugins المضمنة الخفيفة والحرجة للنواة كجزء من OpenClaw. يجب إما ألا تكون لديها شجرة تبعيات وقت تشغيل ثقيلة، أو أن تُنقل إلى حزمة قابلة للتنزيل على ClawHub/npm. يجب ألا تطلب بيانات Plugin المضمنة التمهيد المرحلي للتبعيات. يجب تعبئة وظائف Plugin الكبيرة أو الاختيارية كـ Plugin عادية وتثبيتها عبر مسار npm/git/ClawHub نفسه مثل Plugins الجهات الخارجية. في نسخ المصدر، يعامل OpenClaw المستودع كمستودع pnpm أحادي. بعد pnpm install، تُحمَّل Plugins المضمنة من extensions/<id> بحيث تكون تبعيات مساحة العمل المحلية للحزمة متاحة ويتم التقاط التعديلات مباشرة. تطوير نسخة المصدر يعتمد على pnpm فقط؛ لا يُعد تشغيل npm install العادي في جذر المستودع طريقة مدعومة لإعداد تبعيات Plugin المضمنة.
شكل التثبيتموقع Plugin المضمنةمالك التبعيات
npm install -g openclawشجرة وقت التشغيل المبنية داخل الحزمةحزمة OpenClaw وتدفقات تثبيت/تحديث/doctor الصريحة لـ Plugin
نسخة git مع pnpm installحزم مساحة العمل extensions/<id>مساحة عمل pnpm، بما في ذلك التبعيات الخاصة بكل حزمة Plugin
openclaw plugins install ...جذر Plugin المُدار لـ npm/git/ClawHubتدفق تثبيت/تحديث Plugin

تنظيف القديم

أنشأت إصدارات OpenClaw الأقدم جذور تبعيات Plugin المضمنة عند بدء التشغيل أو أثناء إصلاح doctor. يزيل تنظيف doctor الحالي تلك الدلائل والروابط الرمزية القديمة عند استخدام --fix، بما في ذلك جذور plugin-runtime-deps القديمة، وبيانات .openclaw-runtime-deps*، وnode_modules الخاصة بـ Plugin المُنشأة، ودلائل مرحلة التثبيت، ومخازن pnpm المحلية للحزمة. هذه المسارات بقايا قديمة فقط. يجب ألا تنشئها التثبيتات الجديدة.