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

Documentation Index

Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

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

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

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

جذور التثبيت

يستخدم OpenClaw جذورا ثابتة لكل مصدر:
  • تثبت حزم npm تحت ~/.openclaw/npm
  • تستنسخ حزم git تحت ~/.openclaw/git
  • تنسخ تثبيتات local/path/archive أو يشار إليها من دون إصلاح التبعيات
تعمل تثبيتات npm في جذر npm باستخدام:
cd ~/.openclaw/npm
npm install --omit=dev --omit=peer --legacy-peer-deps --ignore-scripts --no-audit --no-fund
يستخدم openclaw plugins install npm-pack:<path.tgz> جذر npm المدار نفسه لكرة tar محلية من npm-pack. يقرأ OpenClaw بيانات تعريف npm الخاصة بكرة tar، ويضيفها إلى الجذر المدار كتبعية file: منسوخة، ويشغل تثبيت npm العادي، ثم يتحقق من بيانات تعريف lockfile المثبتة قبل الوثوق بـ Plugin. هذا مخصص لإثبات قبول الحزمة ومرشح الإصدار حيث ينبغي أن يتصرف أثر الحزمة المحلي مثل أثر السجل الذي يحاكيه. قد يرفع npm التبعيات الانتقالية إلى ~/.openclaw/npm/node_modules بجانب حزمة Plugin. يفحص OpenClaw جذر npm المدار قبل الوثوق بالتثبيت ويستخدم npm لإزالة الحزم المدارة بواسطة npm أثناء إلغاء التثبيت، لذلك تبقى تبعيات وقت التشغيل المرفوعة داخل حدود التنظيف المدارة. تعلن Plugins التي تستورد openclaw/plugin-sdk/* عن openclaw كتبعية نظيرة. لا يسمح OpenClaw لـ npm بتثبيت نسخة سجل منفصلة من حزمة المضيف في الجذر المدار، لأن حزم المضيف القديمة يمكن أن تؤثر في حل تبعيات npm النظيرة أثناء تثبيت Plugins اللاحقة. تتخطى تثبيتات npm المدارة حل/تجسيد تبعيات npm النظيرة للجذر المشترك ويعيد OpenClaw تأكيد روابط node_modules/openclaw المحلية لـ Plugin للحزم المثبتة التي تعلن عن نظير المضيف بعد التثبيت أو التحديث أو إلغاء التثبيت. تستنسخ تثبيتات 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 القابلة للتنزيل المفقودة من سجلات التثبيت المحلية عندما تشير الإعدادات إليها. لا يصلح doctor تبعيات Plugin محلي مثبت مسبقا.

Plugins المضمنة

تشحن Plugins المضمنة الخفيفة والحرجة للنواة كجزء من OpenClaw. ينبغي ألا تكون لها شجرة تبعيات وقت تشغيل ثقيلة، أو أن تنقل إلى حزمة قابلة للتنزيل على ClawHub/npm. للاطلاع على القائمة الحالية المولدة لـ Plugins التي تشحن في حزمة النواة، أو تثبت خارجيا، أو تبقى مصدرية فقط، راجع مخزون Plugin. يجب ألا تطلب بيانات تعريف Plugins المضمنة تجهيز التبعيات. ينبغي تحزيم وظائف 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 الأقدم جذور تبعيات Plugins المضمنة عند بدء التشغيل أو أثناء إصلاح doctor. يزيل تنظيف doctor الحالي تلك الأدلة والروابط الرمزية القديمة عند استخدام --fix، بما في ذلك جذور plugin-runtime-deps القديمة، وروابط حزم بادئة Node العامة التي تشير إلى أهداف plugin-runtime-deps المشذبة، وبيانات تعريف .openclaw-runtime-deps*، وnode_modules المولدة لـ Plugin، وأدلة مرحلة التثبيت، ومخازن pnpm المحلية للحزمة. يزيل postinstall المحزم أيضا تلك الروابط الرمزية العامة قبل تشذيب جذور الأهداف القديمة حتى لا تترك الترقيات استيرادات حزم ESM متدلية. هذه المسارات ليست سوى بقايا قديمة. يجب ألا تنشئها التثبيتات الجديدة.