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

ترحيل Plugin SDK

انتقل OpenClaw من طبقة توافق عكسي واسعة إلى بنية إضافات حديثة ذات عمليات استيراد مركزة وموثقة. إذا كانت إضافتك قد بُنيت قبل البنية الجديدة، فسيساعدك هذا الدليل على ترحيلها.

ما الذي يتغير

كان نظام الإضافات القديم يوفر سطحين مفتوحين على اتساعهما يتيحان للإضافات استيراد أي شيء تحتاجه من نقطة دخول واحدة:
  • openclaw/plugin-sdk/compat — استيراد واحد يعيد تصدير عشرات الأدوات المساعدة. تم تقديمه للإبقاء على عمل الإضافات القديمة المعتمدة على hooks أثناء بناء بنية الإضافات الجديدة.
  • openclaw/extension-api — جسر يمنح الإضافات وصولًا مباشرًا إلى أدوات جهة المضيف المساعدة مثل مشغل الوكيل المضمن.
كلا السطحين أصبح الآن مهجورًا. لا يزالان يعملان وقت التشغيل، لكن يجب ألا تستخدمهما الإضافات الجديدة، ويجب على الإضافات الحالية الترحيل قبل أن تزيلهما الإصدار الرئيسي التالي.
ستُزال طبقة التوافق العكسي في إصدار رئيسي مستقبلي. الإضافات التي لا تزال تستورد من هذه الأسطح ستتعطل عند حدوث ذلك.

لماذا تغيّر هذا

تسبب النهج القديم في مشكلات:
  • بدء تشغيل بطيء — كان استيراد أداة مساعدة واحدة يحمّل عشرات الوحدات غير المرتبطة
  • اعتماديات دائرية — كانت إعادة التصدير الواسعة تجعل من السهل إنشاء دورات استيراد
  • سطح API غير واضح — لم تكن هناك طريقة لمعرفة أي الصادرات مستقرة وأيها داخلية
يعالج Plugin SDK الحديث ذلك: فكل مسار استيراد (openclaw/plugin-sdk/\<subpath\>) هو وحدة صغيرة مكتفية بذاتها ذات غرض واضح وعقد موثق. كما أزيلت أيضًا واجهات الراحة القديمة الخاصة بالموفرات للقنوات المضمنة. عمليات استيراد مثل openclaw/plugin-sdk/slack وopenclaw/plugin-sdk/discord و openclaw/plugin-sdk/signal وopenclaw/plugin-sdk/whatsapp، وواجهات المساعدة الموسومة باسم القناة، و openclaw/plugin-sdk/telegram-core كانت اختصارات خاصة داخل mono-repo، وليست عقود إضافات مستقرة. استخدم بدلًا منها مسارات SDK عامة ضيقة. داخل مساحة عمل الإضافات المضمنة، احتفظ بالأدوات المساعدة المملوكة للموفر في api.ts أو runtime-api.ts الخاصين بتلك الإضافة. أمثلة الموفرات المضمنة الحالية:
  • تحتفظ Anthropic بأدوات بث خاصة بـ Claude في واجهتها الخاصة api.ts / contract-api.ts
  • تحتفظ OpenAI بمنشئات الموفرات، وأدوات النموذج الافتراضي، ومنشئات موفرات realtime في api.ts الخاص بها
  • يحتفظ OpenRouter بمنشئ الموفر وأدوات onboarding/config المساعدة في api.ts الخاص به

كيفية الترحيل

1

ترحيل المعالجات الأصلية المعتمدة على الموافقة إلى حقائق القدرات

تعرض إضافات القنوات القادرة على الموافقة الآن سلوك الموافقة الأصلي عبر approvalCapability.nativeRuntime بالإضافة إلى سجل سياق وقت التشغيل المشترك.التغييرات الأساسية:
  • استبدل approvalCapability.handler.loadRuntime(...) بـ approvalCapability.nativeRuntime
  • انقل المصادقة/التسليم الخاصين بالموافقة من الربط القديم plugin.auth / plugin.approvals إلى approvalCapability
  • تمت إزالة ChannelPlugin.approvals من العقد العام لإضافات القنوات؛ انقل حقول delivery/native/render إلى approvalCapability
  • يبقى plugin.auth لتدفقات تسجيل الدخول/الخروج الخاصة بالقناة فقط؛ لم تعد hooks مصادقة الموافقة هناك تُقرأ من core
  • سجّل عناصر وقت التشغيل المملوكة للقناة مثل العملاء أو الرموز أو تطبيقات Bolt من خلال openclaw/plugin-sdk/channel-runtime-context
  • لا ترسل إشعارات إعادة التوجيه المملوكة للإضافة من معالجات الموافقة الأصلية؛ أصبح core الآن مسؤولًا عن إشعارات التوجيه إلى مكان آخر بناءً على نتائج التسليم الفعلية
  • عند تمرير channelRuntime إلى createChannelManager(...)، قدّم سطح createPluginRuntime().channel حقيقيًا. تُرفض البدائل الجزئية.
راجع /plugins/sdk-channel-plugins للاطلاع على تخطيط قدرة الموافقة الحالي.
2

مراجعة سلوك fallback الخاص بغلاف Windows

إذا كانت إضافتك تستخدم openclaw/plugin-sdk/windows-spawn، فإن أغلفة Windows من نوع .cmd/.bat غير المحلولة ستفشل الآن بشكل مغلق ما لم تمرر صراحةً allowShellFallback: true.
// قبل
const program = applyWindowsSpawnProgramPolicy({ candidate });

// بعد
const program = applyWindowsSpawnProgramPolicy({
  candidate,
  // اضبط هذا فقط للجهات المتوافقة الموثوقة التي
  // تقبل عمدًا fallback بوساطة shell.
  allowShellFallback: true,
});
إذا لم يكن المستدعي لديك يعتمد عمدًا على shell fallback، فلا تضبط allowShellFallback وتعامل مع الخطأ المرمى بدلًا من ذلك.
3

العثور على عمليات الاستيراد المهجورة

ابحث في إضافتك عن عمليات الاستيراد من أي من السطحين المهجورين:
grep -r "plugin-sdk/compat" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
4

الاستبدال بعمليات استيراد مركزة

كل عنصر مُصدَّر من السطح القديم يقابله مسار استيراد حديث محدد:
// قبل (طبقة التوافق العكسي المهجورة)
import {
  createChannelReplyPipeline,
  createPluginRuntimeStore,
  resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";

// بعد (عمليات استيراد حديثة ومركزة)
import { createChannelReplyPipeline } from "openclaw/plugin-sdk/channel-reply-pipeline";
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth";
بالنسبة إلى الأدوات المساعدة على جهة المضيف، استخدم وقت تشغيل الإضافة المحقون بدلًا من الاستيراد المباشر:
// قبل (جسر extension-api المهجور)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });

// بعد (وقت تشغيل محقون)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
ينطبق النمط نفسه على أدوات الجسر القديمة الأخرى:
الاستيراد القديمالمكافئ الحديث
resolveAgentDirapi.runtime.agent.resolveAgentDir
resolveAgentWorkspaceDirapi.runtime.agent.resolveAgentWorkspaceDir
resolveAgentIdentityapi.runtime.agent.resolveAgentIdentity
resolveThinkingDefaultapi.runtime.agent.resolveThinkingDefault
resolveAgentTimeoutMsapi.runtime.agent.resolveAgentTimeoutMs
ensureAgentWorkspaceapi.runtime.agent.ensureAgentWorkspace
أدوات مخزن الجلسة المساعدةapi.runtime.agent.session.*
5

البناء والاختبار

pnpm build
pnpm test -- my-plugin/

مرجع مسارات الاستيراد

مسار الاستيرادالغرضالصادرات الأساسية
plugin-sdk/plugin-entryأداة إدخال الإضافة القياسيةdefinePluginEntry
plugin-sdk/coreإعادة تصدير مظلية قديمة لتعريفات/منشئات إدخال القنواتdefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaتصدير مخطط الإعداد الجذرOpenClawSchema
plugin-sdk/provider-entryأداة إدخال موفر واحدdefineSingleProviderPluginEntry
plugin-sdk/channel-coreتعريفات ومنشئات إدخال القنوات المركزةdefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setupأدوات معالج الإعداد المشتركةمطالبات قائمة السماح، ومنشئات حالة الإعداد
plugin-sdk/setup-runtimeأدوات وقت التشغيل المساعدة أثناء الإعدادمحولات setup patch الآمنة للاستيراد، وأدوات lookup-note المساعدة، وpromptResolvedAllowFrom وsplitSetupEntries ووكلاء الإعداد المفوضون
plugin-sdk/setup-adapter-runtimeأدوات محول الإعداد المساعدةcreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsأدوات الإعداد المساعدةformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreأدوات تعدد الحسابات المساعدةأدوات قائمة الحساب/الإعداد/بوابة الإجراء
plugin-sdk/account-idأدوات معرّف الحساب المساعدةDEFAULT_ACCOUNT_ID، وتطبيع معرّف الحساب
plugin-sdk/account-resolutionأدوات البحث عن الحساب المساعدةأدوات البحث عن الحساب + fallback الافتراضي
plugin-sdk/account-helpersأدوات حساب ضيقة المدىأدوات قائمة الحساب/إجراء الحساب
plugin-sdk/channel-setupمحولات معالج الإعدادcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard، بالإضافة إلى DEFAULT_ACCOUNT_ID وcreateTopLevelChannelDmPolicy وsetSetupChannelEnabled وsplitSetupEntries
plugin-sdk/channel-pairingأساسيات إقران DMcreateChannelPairingController
plugin-sdk/channel-reply-pipelineأسلاك بادئة الرد + مؤشرات الكتابةcreateChannelReplyPipeline
plugin-sdk/channel-config-helpersمصانع محولات الإعدادcreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaمنشئات مخطط الإعدادأنواع مخطط إعداد القناة
plugin-sdk/telegram-command-configأدوات إعداد أوامر Telegram المساعدةتطبيع أسماء الأوامر، واقتطاع الأوصاف، والتحقق من التكرار/التعارض
plugin-sdk/channel-policyتحليل سياسات المجموعة/DMresolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleتتبع حالة الحسابcreateAccountStatusSink
plugin-sdk/inbound-envelopeأدوات envelope الوارد المساعدةأدوات route + منشئ envelope المشتركة
plugin-sdk/inbound-reply-dispatchأدوات الرد الوارد المساعدةأدوات التسجيل والإرسال المشتركة
plugin-sdk/messaging-targetsتحليل وجهات المراسلةأدوات تحليل/مطابقة الوجهات
plugin-sdk/outbound-mediaأدوات الوسائط الصادرة المساعدةتحميل الوسائط الصادرة المشتركة
plugin-sdk/outbound-runtimeأدوات وقت التشغيل الصادر المساعدةأدوات هوية الصادر/مفوّض الإرسال
plugin-sdk/thread-bindings-runtimeأدوات ربط السلاسل المساعدةدورة حياة ربط السلاسل وأدوات المحول المساعدة
plugin-sdk/agent-media-payloadأدوات حمولة الوسائط القديمة المساعدةمنشئ حمولة وسائط الوكيل لتخطيطات الحقول القديمة
plugin-sdk/channel-runtimeطبقة توافقية مهجورةأدوات وقت تشغيل القناة القديمة فقط
plugin-sdk/channel-send-resultأنواع نتائج الإرسالأنواع نتائج الرد
plugin-sdk/runtime-storeتخزين الإضافة الدائمcreatePluginRuntimeStore
plugin-sdk/runtimeأدوات وقت تشغيل واسعةأدوات وقت التشغيل/التسجيل/النسخ الاحتياطي/تثبيت الإضافات
plugin-sdk/runtime-envأدوات بيئة وقت تشغيل ضيقةالمسجل/بيئة وقت التشغيل، وأدوات المهلة وإعادة المحاولة وbackoff
plugin-sdk/plugin-runtimeأدوات وقت تشغيل الإضافات المشتركةأدوات أوامر/ hooks /HTTP/التفاعلية الخاصة بالإضافات
plugin-sdk/hook-runtimeأدوات خط أنابيب hook المساعدةأدوات خط أنابيب webhook/internal hook المشتركة
plugin-sdk/lazy-runtimeأدوات وقت التشغيل الكسول المساعدةcreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeأدوات العمليات المساعدةأدوات exec المشتركة
plugin-sdk/cli-runtimeأدوات وقت تشغيل CLI المساعدةتنسيق الأوامر، والانتظار، وأدوات الإصدار المساعدة
plugin-sdk/gateway-runtimeأدوات البوابة المساعدةعميل البوابة وأدوات patch حالة القناة المساعدة
plugin-sdk/config-runtimeأدوات الإعداد المساعدةأدوات تحميل/كتابة الإعداد
plugin-sdk/telegram-command-configأدوات أوامر Telegram المساعدةأدوات التحقق من أوامر Telegram المستقرة بالحد الأدنى عندما يكون سطح عقد Telegram المضمن غير متاح
plugin-sdk/approval-runtimeأدوات مطالبات الموافقة المساعدةحمولة موافقة exec/plugin، وأدوات قدرة/ملف تعريف الموافقة، وأدوات توجيه/وقت تشغيل الموافقة الأصلية
plugin-sdk/approval-auth-runtimeأدوات مصادقة الموافقة المساعدةتحليل المُوافق، ومصادقة الإجراء ضمن الدردشة نفسها
plugin-sdk/approval-client-runtimeأدوات عميل الموافقة المساعدةأدوات ملف تعريف/تصفية الموافقة الأصلية لـ exec
plugin-sdk/approval-delivery-runtimeأدوات تسليم الموافقة المساعدةمحولات قدرة/تسليم الموافقة الأصلية
plugin-sdk/approval-gateway-runtimeأدوات بوابة الموافقة المساعدةأداة تحليل approval gateway المشتركة
plugin-sdk/approval-handler-adapter-runtimeأدوات محول الموافقة المساعدةأدوات تحميل محول الموافقة الأصلية خفيفة الوزن لنقاط إدخال القنوات الساخنة
plugin-sdk/approval-handler-runtimeأدوات معالج الموافقة المساعدةأدوات وقت تشغيل معالج الموافقة الأوسع؛ فضّل واجهات adapter/gateway الأضيق عندما تكون كافية
plugin-sdk/approval-native-runtimeأدوات هدف الموافقة المساعدةأدوات ربط هدف/حساب الموافقة الأصلية
plugin-sdk/approval-reply-runtimeأدوات رد الموافقة المساعدةأدوات حمولة رد موافقة exec/plugin
plugin-sdk/channel-runtime-contextأدوات channel runtime-context المساعدةأدوات register/get/watch عامة لسياق وقت تشغيل القناة
plugin-sdk/security-runtimeأدوات الأمان المساعدةأدوات الثقة المشتركة، وبوابة DM، والمحتوى الخارجي، وجمع الأسرار
plugin-sdk/ssrf-policyأدوات سياسة SSRF المساعدةقائمة سماح المضيف وأدوات سياسة الشبكة الخاصة
plugin-sdk/ssrf-runtimeأدوات وقت تشغيل SSRF المساعدةPinned-dispatcher وguarded fetch وأدوات سياسة SSRF
plugin-sdk/collection-runtimeأدوات cache المقيّدة المساعدةpruneMapToMaxSize
plugin-sdk/diagnostic-runtimeأدوات بوابة التشخيص المساعدةisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeأدوات تنسيق الأخطاء المساعدةformatUncaughtError, isApprovalNotFoundError، وأدوات error graph
plugin-sdk/fetch-runtimeأدوات fetch/proxy المغلفة المساعدةresolveFetch، وأدوات proxy المساعدة
plugin-sdk/host-runtimeأدوات تطبيع المضيف المساعدةnormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeأدوات إعادة المحاولة المساعدةRetryConfig, retryAsync، ومنفذات السياسات
plugin-sdk/allow-fromتنسيق قائمة السماحformatAllowFromLowercase
plugin-sdk/allowlist-resolutionتعيين مدخلات قائمة السماحmapAllowlistResolutionInputs
plugin-sdk/command-authأدوات بوابة الأوامر وسطح الأوامر المساعدةresolveControlCommandGate، وأدوات تفويض المرسل المساعدة، وأدوات سجل الأوامر
plugin-sdk/command-statusعارضات حالة/مساعدة الأوامرbuildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage
plugin-sdk/secret-inputتحليل المدخلات السريةأدوات المدخلات السرية المساعدة
plugin-sdk/webhook-ingressأدوات طلبات webhook المساعدةأدوات هدف webhook
plugin-sdk/webhook-request-guardsأدوات حماية جسم webhook المساعدةأدوات قراءة/تحديد جسم الطلب
plugin-sdk/reply-runtimeوقت تشغيل الرد المشتركالإرسال الوارد، وheartbeat، ومخطط الرد، والتقسيم
plugin-sdk/reply-dispatch-runtimeأدوات إرسال الرد الضيقة المساعدةأدوات finalize + provider dispatch المساعدة
plugin-sdk/reply-historyأدوات سجل الرد المساعدةbuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referenceتخطيط مرجع الردcreateReplyReferencePlanner
plugin-sdk/reply-chunkingأدوات تقسيم الرد المساعدةأدوات تقسيم النص/Markdown
plugin-sdk/session-store-runtimeأدوات مخزن الجلسة المساعدةأدوات مسار المخزن + وقت آخر تحديث
plugin-sdk/state-pathsأدوات مسارات الحالة المساعدةأدوات مجلد الحالة وOAuth
plugin-sdk/routingأدوات التوجيه/مفتاح الجلسة المساعدةresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId، وأدوات تطبيع مفتاح الجلسة
plugin-sdk/status-helpersأدوات حالة القناة المساعدةمنشئات ملخص حالة القناة/الحساب، وافتراضيات runtime-state، وأدوات metadata الخاصة بالمشكلات
plugin-sdk/target-resolver-runtimeأدوات تحليل الوجهة المساعدةأدوات تحليل الوجهة المشتركة
plugin-sdk/string-normalization-runtimeأدوات تطبيع السلاسل المساعدةأدوات تطبيع slug/string
plugin-sdk/request-urlأدوات URL الطلب المساعدةاستخراج عناوين URL النصية من المدخلات الشبيهة بالطلبات
plugin-sdk/run-commandأدوات الأوامر الموقّتة المساعدةمشغل أوامر موقّت مع stdout/stderr مطبّعين
plugin-sdk/param-readersقارئات المعلماتقارئات معلمات شائعة للأداة/CLI
plugin-sdk/tool-payloadاستخراج حمولة الأداةاستخراج حمولات مطبّعة من كائنات نتائج الأدوات
plugin-sdk/tool-sendاستخراج إرسال الأداةاستخراج حقول وجهة الإرسال القياسية من وسائط الأداة
plugin-sdk/temp-pathأدوات المسارات المؤقتة المساعدةأدوات مشتركة لمسارات تنزيل الملفات المؤقتة
plugin-sdk/logging-coreأدوات التسجيل المساعدةمسجل النظام الفرعي وأدوات إخفاء البيانات الحساسة
plugin-sdk/markdown-table-runtimeأدوات جداول Markdown المساعدةأدوات أوضاع جداول Markdown
plugin-sdk/reply-payloadأنواع ردود الرسائلأنواع حمولة الرد
plugin-sdk/provider-setupأدوات إعداد الموفّر المحلي/المستضاف ذاتيًا المنسقةأدوات اكتشاف/إعداد الموفّر المستضاف ذاتيًا
plugin-sdk/self-hosted-provider-setupأدوات إعداد مركزة للموفرات المستضافة ذاتيًا المتوافقة مع OpenAIالأدوات نفسها لاكتشاف/إعداد الموفّر المستضاف ذاتيًا
plugin-sdk/provider-auth-runtimeأدوات مصادقة وقت تشغيل الموفّر المساعدةأدوات تحليل مفتاح API في وقت التشغيل
plugin-sdk/provider-auth-api-keyأدوات إعداد مفتاح API للموفرأدوات onboarding/profile-write الخاصة بمفتاح API
plugin-sdk/provider-auth-resultأدوات نتائج مصادقة الموفّر المساعدةمنشئ auth-result قياسي لـ OAuth
plugin-sdk/provider-auth-loginأدوات تسجيل الدخول التفاعلي للموفّرأدوات تسجيل الدخول التفاعلي المشتركة
plugin-sdk/provider-env-varsأدوات متغيرات البيئة للموفّرأدوات البحث عن متغيرات البيئة الخاصة بمصادقة الموفّر
plugin-sdk/provider-model-sharedأدوات مشتركة لنماذج/إعادة تشغيل الموفرProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat، ومنشئات replay-policy المشتركة، وأدوات provider-endpoint، وأدوات تطبيع model-id
plugin-sdk/provider-catalog-sharedأدوات مشتركة لفهرس الموفّرfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardأدوات onboarding للموفّرأدوات إعداد onboarding المساعدة
plugin-sdk/provider-httpأدوات HTTP الخاصة بالموفّرأدوات HTTP/قدرات endpoint العامة الخاصة بالموفّر
plugin-sdk/provider-web-fetchأدوات web-fetch الخاصة بالموفّرأدوات تسجيل/تخزين مؤقت لموفّر web-fetch
plugin-sdk/provider-web-search-config-contractأدوات إعداد web-search الخاصة بالموفّرأدوات إعداد/اعتماد ضيقة للبحث على الويب للموفرات التي لا تحتاج إلى ربط تمكين الإضافة
plugin-sdk/provider-web-search-contractأدوات عقد web-search الخاصة بالموفّرأدوات عقد إعداد/اعتماد ضيقة للبحث على الويب مثل createWebSearchProviderContractFields وenablePluginInConfig وresolveProviderWebSearchPluginConfig وأدوات تعيين/قراءة بيانات الاعتماد المقيّدة
plugin-sdk/provider-web-searchأدوات web-search الخاصة بالموفّرأدوات تسجيل/تخزين مؤقت/وقت تشغيل لموفّر البحث على الويب
plugin-sdk/provider-toolsأدوات توافق أدوات/مخطط الموفّرProviderToolCompatFamily, buildProviderToolCompatFamilyHooks، وتنظيف مخطط Gemini + أدوات التشخيص، وأدوات توافق xAI مثل resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usageأدوات استخدام الموفّرfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage، وأدوات استخدام موفر أخرى
plugin-sdk/provider-streamأدوات تغليف بث الموفّرProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers، وأنواع مغلفات البث، وأدوات مغلفات مشتركة لـ Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/keyed-async-queueقائمة انتظار async مرتبةKeyedAsyncQueue
plugin-sdk/media-runtimeأدوات وسائط مشتركةأدوات جلب/تحويل/تخزين الوسائط بالإضافة إلى منشئات حمولة الوسائط
plugin-sdk/media-generation-runtimeأدوات مشتركة لتوليد الوسائطأدوات failover المشتركة، واختيار المرشح، ورسائل النماذج المفقودة لتوليد الصور/الفيديو/الموسيقى
plugin-sdk/media-understandingأدوات فهم الوسائط المساعدةأنواع موفر فهم الوسائط بالإضافة إلى صادرات أدوات الصور/الصوت المواجهة للموفر
plugin-sdk/text-runtimeأدوات نصية مشتركةإزالة النص المرئي للمساعد، وأدوات render/chunking/table الخاصة بـ Markdown، وأدوات إخفاء البيانات، وأدوات directive-tag، وأدوات النص الآمن، وغيرها من أدوات النص/التسجيل ذات الصلة
plugin-sdk/text-chunkingأدوات تقسيم النص المساعدةأداة تقسيم النص الصادر
plugin-sdk/speechأدوات الكلام المساعدةأنواع موفّر الكلام بالإضافة إلى أدوات directive والسجل والتحقق المواجهة للموفّر
plugin-sdk/speech-coreنواة الكلام المشتركةأنواع موفّر الكلام، والسجل، والتوجيهات، والتطبيع
plugin-sdk/realtime-transcriptionأدوات النسخ الفوري المساعدةأنواع الموفّر وأدوات السجل
plugin-sdk/realtime-voiceأدوات الصوت الفوري المساعدةأنواع الموفّر وأدوات السجل
plugin-sdk/image-generation-coreنواة توليد الصور المشتركةأنواع توليد الصور، وfailover، والمصادقة، وأدوات السجل
plugin-sdk/music-generationأدوات توليد الموسيقى المساعدةأنواع موفر/طلب/نتيجة توليد الموسيقى
plugin-sdk/music-generation-coreنواة توليد الموسيقى المشتركةأنواع توليد الموسيقى، وأدوات failover المساعدة، والبحث عن الموفّر، وتحليل model-ref
plugin-sdk/video-generationأدوات توليد الفيديو المساعدةأنواع موفر/طلب/نتيجة توليد الفيديو
plugin-sdk/video-generation-coreنواة توليد الفيديو المشتركةأنواع توليد الفيديو، وأدوات failover المساعدة، والبحث عن الموفّر، وتحليل model-ref
plugin-sdk/interactive-runtimeأدوات الرد التفاعلي المساعدةتطبيع/اختزال حمولة الرد التفاعلي
plugin-sdk/channel-config-primitivesبدائيات إعداد القناةبدائيات ضيقة لمخطط إعداد القناة
plugin-sdk/channel-config-writesأدوات كتابة إعداد القناة المساعدةأدوات تفويض كتابة إعداد القناة
plugin-sdk/channel-plugin-commonتمهيد القنوات المشتركصادرات تمهيد إضافات القنوات المشتركة
plugin-sdk/channel-statusأدوات حالة القناة المساعدةأدوات snapshot/summary المشتركة لحالة القناة
plugin-sdk/allowlist-config-editأدوات إعداد قائمة السماحأدوات قراءة/تعديل إعداد قائمة السماح
plugin-sdk/group-accessأدوات الوصول للمجموعات المساعدةأدوات القرار المشتركة للوصول إلى المجموعات
plugin-sdk/direct-dmأدوات DM المباشر المساعدةأدوات المصادقة/الحماية المشتركة للـ DM المباشر
plugin-sdk/extension-sharedأدوات إضافات مشتركةبدائيات القناة/الحالة السلبية وأدوات ambient proxy المساعدة
plugin-sdk/webhook-targetsأدوات أهداف webhook المساعدةسجل أهداف webhook وأدوات تثبيت route
plugin-sdk/webhook-pathأدوات مسار webhook المساعدةأدوات تطبيع مسار webhook
plugin-sdk/web-mediaأدوات وسائط الويب المشتركةأدوات تحميل الوسائط البعيدة/المحلية
plugin-sdk/zodإعادة تصدير Zodإعادة تصدير zod لمستهلكي Plugin SDK
plugin-sdk/memory-coreأدوات memory-core المضمنةسطح أدوات memory manager/config/file/CLI
plugin-sdk/memory-core-engine-runtimeواجهة وقت تشغيل محرك الذاكرةواجهة وقت تشغيل memory index/search
plugin-sdk/memory-core-host-engine-foundationمحرك أساس مضيف الذاكرةصادرات محرك الأساس لمضيف الذاكرة
plugin-sdk/memory-core-host-engine-embeddingsمحرك embeddings لمضيف الذاكرةصادرات محرك embeddings لمضيف الذاكرة
plugin-sdk/memory-core-host-engine-qmdمحرك QMD لمضيف الذاكرةصادرات محرك QMD لمضيف الذاكرة
plugin-sdk/memory-core-host-engine-storageمحرك التخزين لمضيف الذاكرةصادرات محرك التخزين لمضيف الذاكرة
plugin-sdk/memory-core-host-multimodalأدوات multimodal لمضيف الذاكرةأدوات multimodal لمضيف الذاكرة
plugin-sdk/memory-core-host-queryأدوات الاستعلام لمضيف الذاكرةأدوات الاستعلام لمضيف الذاكرة
plugin-sdk/memory-core-host-secretأدوات الأسرار لمضيف الذاكرةأدوات الأسرار لمضيف الذاكرة
plugin-sdk/memory-core-host-eventsأدوات سجل أحداث مضيف الذاكرةأدوات سجل أحداث مضيف الذاكرة
plugin-sdk/memory-core-host-statusأدوات حالة مضيف الذاكرةأدوات حالة مضيف الذاكرة
plugin-sdk/memory-core-host-runtime-cliوقت تشغيل CLI لمضيف الذاكرةأدوات وقت تشغيل CLI لمضيف الذاكرة
plugin-sdk/memory-core-host-runtime-coreوقت تشغيل core لمضيف الذاكرةأدوات وقت تشغيل core لمضيف الذاكرة
plugin-sdk/memory-core-host-runtime-filesأدوات ملف/وقت تشغيل لمضيف الذاكرةأدوات ملف/وقت تشغيل لمضيف الذاكرة
plugin-sdk/memory-host-coreاسم بديل لوقت تشغيل core لمضيف الذاكرةاسم بديل محايد للبائع لأدوات وقت تشغيل core لمضيف الذاكرة
plugin-sdk/memory-host-eventsاسم بديل لسجل أحداث مضيف الذاكرةاسم بديل محايد للبائع لأدوات سجل أحداث مضيف الذاكرة
plugin-sdk/memory-host-filesاسم بديل لأدوات ملف/وقت تشغيل مضيف الذاكرةاسم بديل محايد للبائع لأدوات ملف/وقت تشغيل مضيف الذاكرة
plugin-sdk/memory-host-markdownأدوات markdown مُدارةأدوات markdown مُدارة مشتركة للإضافات القريبة من الذاكرة
plugin-sdk/memory-host-searchواجهة بحث الذاكرة النشطةواجهة وقت تشغيل lazy active-memory search-manager
plugin-sdk/memory-host-statusاسم بديل لحالة مضيف الذاكرةاسم بديل محايد للبائع لأدوات حالة مضيف الذاكرة
plugin-sdk/memory-lancedbأدوات memory-lancedb المضمنةسطح أدوات memory-lancedb
plugin-sdk/testingأدوات الاختبارأدوات الاختبار وmockات
هذا الجدول هو عمدًا مجموعة الترحيل الشائعة، وليس سطح SDK الكامل. القائمة الكاملة التي تضم أكثر من 200 نقطة دخول موجودة في scripts/lib/plugin-sdk-entrypoints.json. لا تزال تلك القائمة تتضمن بعض واجهات المساعدة الخاصة بالإضافات المضمنة مثل plugin-sdk/feishu وplugin-sdk/feishu-setup وplugin-sdk/zalo و plugin-sdk/zalo-setup وplugin-sdk/matrix*. لا تزال هذه الواجهات مُصدّرة لصيانة الإضافات المضمنة والتوافق، لكنها حُذفت عمدًا من جدول الترحيل الشائع وليست الهدف الموصى به لكتابة إضافات جديدة. وتنطبق القاعدة نفسها على عائلات المساعدات المضمنة الأخرى مثل:
  • أدوات دعم المتصفح المساعدة: plugin-sdk/browser-cdp, plugin-sdk/browser-config-runtime, plugin-sdk/browser-config-support, plugin-sdk/browser-control-auth, plugin-sdk/browser-node-runtime, plugin-sdk/browser-profiles, plugin-sdk/browser-security-runtime, plugin-sdk/browser-setup-tools, plugin-sdk/browser-support
  • Matrix: plugin-sdk/matrix*
  • LINE: plugin-sdk/line*
  • IRC: plugin-sdk/irc*
  • الأسطح المضمنة للمساعدات/الإضافات مثل plugin-sdk/googlechat, وplugin-sdk/zalouser, وplugin-sdk/bluebubbles*, وplugin-sdk/mattermost*, وplugin-sdk/msteams, وplugin-sdk/nextcloud-talk, وplugin-sdk/nostr, وplugin-sdk/tlon, وplugin-sdk/twitch, وplugin-sdk/github-copilot-login, وplugin-sdk/github-copilot-token, وplugin-sdk/diagnostics-otel, وplugin-sdk/diffs, وplugin-sdk/llm-task, وplugin-sdk/thread-ownership, وplugin-sdk/voice-call
يكشف plugin-sdk/github-copilot-token حاليًا عن سطح أدوات الرموز الضيق DEFAULT_COPILOT_API_BASE_URL, وderiveCopilotApiBaseUrlFromToken، وresolveCopilotApiToken. استخدم أضيق استيراد يطابق المهمة. إذا لم تتمكن من العثور على عنصر مُصدَّر، فتحقق من المصدر في src/plugin-sdk/ أو اسأل في Discord.

الجدول الزمني للإزالة

متىما الذي يحدث
الآنتصدر الأسطح المهجورة تحذيرات وقت التشغيل
الإصدار الرئيسي التاليستُزال الأسطح المهجورة؛ وستفشل الإضافات التي لا تزال تستخدمها
تم بالفعل ترحيل جميع الإضافات الأساسية. يجب على الإضافات الخارجية الترحيل قبل الإصدار الرئيسي التالي.

إخفاء التحذيرات مؤقتًا

اضبط متغيرات البيئة هذه أثناء العمل على الترحيل:
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
هذا مخرج مؤقت، وليس حلًا دائمًا.

ذو صلة