chore(i18n): refresh ar translations
This commit is contained in:
parent
1bf37284fe
commit
a8e15e49ff
File diff suppressed because it is too large
Load Diff
@ -2,109 +2,117 @@
|
||||
read_when:
|
||||
- تريد أن يعمل ترقية الذاكرة تلقائيًا
|
||||
- تريد فهم ما الذي تفعله كل مرحلة من مراحل الحلم
|
||||
- تريد ضبط التجميع دون تلويث `MEMORY.md`
|
||||
summary: تجميع الذاكرة في الخلفية مع مراحل خفيفة وعميقة وREM بالإضافة إلى يوميات الأحلام
|
||||
- تريد ضبط الدمج دون تلويث `MEMORY.md`
|
||||
summary: دمج ذاكرة في الخلفية بمراحل خفيفة وعميقة وREM بالإضافة إلى يوميات الأحلام
|
||||
title: الحلم (تجريبي)
|
||||
x-i18n:
|
||||
generated_at: "2026-04-06T07:17:51Z"
|
||||
generated_at: "2026-04-08T07:16:29Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 36c4b1e70801d662090dc8ce20608c2f141c23cd7ce53c54e3dcf332c801fd4e
|
||||
source_hash: 0254f3b0949158264e583c12f36f2b1a83d1b44dc4da01a1b272422d38e8655d
|
||||
source_path: concepts/dreaming.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# الحلم (تجريبي)
|
||||
|
||||
الحلم هو نظام تجميع الذاكرة في الخلفية ضمن `memory-core`.
|
||||
يساعد OpenClaw على نقل الإشارات القصيرة المدى القوية إلى ذاكرة دائمة مع
|
||||
الحفاظ على العملية قابلة للتفسير والمراجعة.
|
||||
الحلم هو نظام دمج الذاكرة في الخلفية ضمن `memory-core`.
|
||||
يساعد OpenClaw على نقل الإشارات القوية قصيرة الأمد إلى ذاكرة دائمة مع
|
||||
الحفاظ على أن تكون العملية قابلة للتفسير والمراجعة.
|
||||
|
||||
الحلم **اختياري** ومُعطّل افتراضيًا.
|
||||
الحلم **اختياري** وهو معطّل افتراضيًا.
|
||||
|
||||
## ما الذي يكتبه الحلم
|
||||
|
||||
يحتفظ الحلم بنوعين من المخرجات:
|
||||
|
||||
- **حالة الآلة** في `memory/.dreams/` (مخزن الاستدعاء، إشارات المراحل، نقاط تحقق الإدخال، الأقفال).
|
||||
- **مخرجات قابلة للقراءة البشرية** في `DREAMS.md` (أو `dreams.md` الموجود) وملفات تقارير مراحل اختيارية ضمن `memory/dreaming/<phase>/YYYY-MM-DD.md`.
|
||||
- **حالة الآلة** في `memory/.dreams/` (مخزن الاستدعاء، إشارات المراحل، نقاط تحقق الاستيعاب، الأقفال).
|
||||
- **مخرجات قابلة للقراءة البشرية** في `DREAMS.md` (أو `dreams.md` الموجود) وملفات تقارير المراحل الاختيارية ضمن `memory/dreaming/<phase>/YYYY-MM-DD.md`.
|
||||
|
||||
تظل الترقية إلى الذاكرة طويلة المدى تكتب فقط إلى `MEMORY.md`.
|
||||
لا تزال الترقية إلى الذاكرة طويلة الأمد تكتب فقط إلى `MEMORY.md`.
|
||||
|
||||
## نموذج المراحل
|
||||
|
||||
يستخدم الحلم ثلاث مراحل تعاونية:
|
||||
|
||||
| المرحلة | الغرض | الكتابة الدائمة |
|
||||
| ------- | ---------------------------------------- | ------------------- |
|
||||
| الخفيفة | فرز وتجهيز المواد القصيرة المدى الحديثة | لا |
|
||||
| العميقة | تقييم المرشحين الدائمين وترقيتهم | نعم (`MEMORY.md`) |
|
||||
| REM | التأمل في السمات والأفكار المتكررة | لا |
|
||||
| المرحلة | الغرض | الكتابة الدائمة |
|
||||
| ----- | ----------------------------------------- | ----------------- |
|
||||
| الخفيفة | فرز المواد قصيرة الأمد الحديثة وتجهيزها | لا |
|
||||
| العميقة | تقييم المرشحين الدائمين وترقيتهم | نعم (`MEMORY.md`) |
|
||||
| REM | التأمل في الأنماط والأفكار المتكررة | لا |
|
||||
|
||||
هذه المراحل هي تفاصيل تنفيذ داخلية وليست "أوضاعًا" منفصلة يضبطها المستخدم.
|
||||
هذه المراحل تفاصيل تنفيذ داخلية وليست "أوضاعًا" منفصلة يضبطها المستخدم.
|
||||
|
||||
### المرحلة الخفيفة
|
||||
|
||||
تقوم المرحلة الخفيفة بإدخال إشارات الذاكرة اليومية الحديثة وآثار الاستدعاء، وإزالة التكرار منها،
|
||||
وتجهيز الأسطر المرشحة.
|
||||
تستوعب المرحلة الخفيفة إشارات الذاكرة اليومية الحديثة وآثار الاستدعاء، وتزيل التكرارات منها،
|
||||
وتجهز أسطرًا مرشحة.
|
||||
|
||||
- تقرأ من حالة الاستدعاء القصير المدى وملفات الذاكرة اليومية الحديثة.
|
||||
- تكتب كتلة `## Light Sleep` مُدارة عندما يتضمن التخزين مخرجات مضمنة.
|
||||
- تقرأ من حالة الاستدعاء قصيرة الأمد، وملفات الذاكرة اليومية الحديثة، ونصوص الجلسات المنقحة عند توفرها.
|
||||
- تكتب كتلة `## Light Sleep` مُدارة عندما يتضمن التخزين مخرجات مضمّنة.
|
||||
- تسجل إشارات تعزيز لاستخدامها لاحقًا في الترتيب العميق.
|
||||
- لا تكتب أبدًا إلى `MEMORY.md`.
|
||||
|
||||
### المرحلة العميقة
|
||||
|
||||
تقرر المرحلة العميقة ما الذي يصبح ذاكرة طويلة المدى.
|
||||
تقرر المرحلة العميقة ما الذي يصبح ذاكرة طويلة الأمد.
|
||||
|
||||
- ترتب المرشحين باستخدام تقييم مرجّح وبوابات حدود دنيا.
|
||||
- ترتب المرشحين باستخدام تقييم مرجّح وبوابات عتبة.
|
||||
- تتطلب اجتياز `minScore` و`minRecallCount` و`minUniqueQueries`.
|
||||
- تعيد ترطيب المقاطع من الملفات اليومية الحية قبل الكتابة، لذلك يتم تخطي المقاطع القديمة أو المحذوفة.
|
||||
- تلحق الإدخالات المُرقّاة إلى `MEMORY.md`.
|
||||
- تكتب ملخص `## Deep Sleep` في `DREAMS.md` وتكتب اختياريًا إلى `memory/dreaming/deep/YYYY-MM-DD.md`.
|
||||
- تعيد إماهة المقتطفات من الملفات اليومية الحية قبل الكتابة، لذلك يتم تخطي المقتطفات القديمة/المحذوفة.
|
||||
- تُلحق الإدخالات المُرقّاة إلى `MEMORY.md`.
|
||||
- تكتب ملخص `## Deep Sleep` داخل `DREAMS.md` وتكتب اختياريًا إلى `memory/dreaming/deep/YYYY-MM-DD.md`.
|
||||
|
||||
### مرحلة REM
|
||||
|
||||
تستخرج مرحلة REM الأنماط والإشارات التأملية.
|
||||
|
||||
- تنشئ ملخصات للسمات والتأملات من آثار الذاكرة القصيرة المدى الحديثة.
|
||||
- تكتب كتلة `## REM Sleep` مُدارة عندما يتضمن التخزين مخرجات مضمنة.
|
||||
- تبني ملخصات للموضوعات والتأملات من الآثار قصيرة الأمد الحديثة.
|
||||
- تكتب كتلة `## REM Sleep` مُدارة عندما يتضمن التخزين مخرجات مضمّنة.
|
||||
- تسجل إشارات تعزيز REM المستخدمة في الترتيب العميق.
|
||||
- لا تكتب أبدًا إلى `MEMORY.md`.
|
||||
|
||||
## استيعاب نصوص الجلسات
|
||||
|
||||
يمكن للحلم استيعاب نصوص الجلسات المنقحة ضمن مادة الحلم. عند
|
||||
توفر النصوص، يتم تمريرها إلى المرحلة الخفيفة إلى جانب إشارات الذاكرة
|
||||
اليومية وآثار الاستدعاء. تتم تنقيح المحتوى الشخصي والحساس
|
||||
قبل الاستيعاب.
|
||||
|
||||
## يوميات الأحلام
|
||||
|
||||
يحتفظ الحلم أيضًا بسرد قصصي بعنوان **يوميات الأحلام** في `DREAMS.md`.
|
||||
بعد أن تمتلك كل مرحلة مادة كافية، يشغّل `memory-core` بشكل أفضل جهد ممكن
|
||||
دورة وكيل فرعي في الخلفية (باستخدام نموذج وقت التشغيل الافتراضي) ويلحق إدخالًا قصيرًا إلى اليوميات.
|
||||
يحتفظ الحلم أيضًا بـ **يوميات أحلام** سردية في `DREAMS.md`.
|
||||
بعد أن تتوفر مادة كافية لكل مرحلة، يقوم `memory-core` بتشغيل
|
||||
دورة وكيل فرعي في الخلفية بأفضل جهد (باستخدام نموذج وقت التشغيل الافتراضي)
|
||||
ويُلحق إدخال يوميات قصيرًا.
|
||||
|
||||
هذه اليوميات مخصصة للقراءة البشرية في واجهة Dreams، وليست مصدرًا للترقية.
|
||||
|
||||
## إشارات الترتيب العميق
|
||||
|
||||
يستخدم الترتيب العميق ست إشارات أساسية مرجّحة بالإضافة إلى تعزيز المراحل:
|
||||
يستخدم الترتيب العميق ست إشارات أساسية مرجحة بالإضافة إلى تعزيز المراحل:
|
||||
|
||||
| الإشارة | الوزن | الوصف |
|
||||
| ------------------- | ----- | -------------------------------------------------- |
|
||||
| التكرار | 0.24 | عدد إشارات الذاكرة القصيرة المدى التي راكمها الإدخال |
|
||||
| الصلة | 0.30 | متوسط جودة الاسترجاع للإدخال |
|
||||
| تنوع الاستعلامات | 0.15 | سياقات الاستعلام/اليوم المختلفة التي أظهرته |
|
||||
| الحداثة | 0.15 | درجة حداثة متناقصة بمرور الوقت |
|
||||
| التجميع | 0.10 | قوة التكرار عبر أيام متعددة |
|
||||
| الثراء المفاهيمي | 0.06 | كثافة وسوم المفاهيم من المقطع/المسار |
|
||||
| الإشارة | الوزن | الوصف |
|
||||
| ------------------- | ------ | ------------------------------------------------- |
|
||||
| التكرار | 0.24 | عدد الإشارات قصيرة الأمد التي راكمها الإدخال |
|
||||
| الصلة | 0.30 | متوسط جودة الاسترجاع للإدخال |
|
||||
| تنوع الاستعلامات | 0.15 | سياقات الاستعلام/اليوم المميزة التي أظهرته |
|
||||
| الحداثة | 0.15 | درجة حداثة متناقصة بمرور الوقت |
|
||||
| الدمج | 0.10 | قوة التكرار عبر أيام متعددة |
|
||||
| الثراء المفاهيمي | 0.06 | كثافة وسوم المفاهيم من المقتطف/المسار |
|
||||
|
||||
تضيف إصابات المرحلتين الخفيفة وREM تعزيزًا صغيرًا متناقصًا بمرور الوقت للحداثة من
|
||||
تضيف إصابات المرحلتين الخفيفة وREM دفعة صغيرة متناقصة بمرور الوقت من
|
||||
`memory/.dreams/phase-signals.json`.
|
||||
|
||||
## الجدولة
|
||||
|
||||
عند التفعيل، يدير `memory-core` تلقائيًا مهمة cron واحدة لعملية
|
||||
حلم كاملة. تشغّل كل عملية المراحل بالترتيب: الخفيفة -> REM -> العميقة.
|
||||
عند التفعيل، يدير `memory-core` تلقائيًا مهمة cron واحدة لاكتساح حلم كامل.
|
||||
ينفذ كل اكتساح المراحل بالترتيب: الخفيفة -> REM -> العميقة.
|
||||
|
||||
سلوك الوتيرة الافتراضي:
|
||||
سلوك الوتيرة الافتراضية:
|
||||
|
||||
| الإعداد | الافتراضي |
|
||||
| -------------------- | ---------- |
|
||||
| الإعداد | الافتراضي |
|
||||
| -------------------- | ----------- |
|
||||
| `dreaming.frequency` | `0 3 * * *` |
|
||||
|
||||
## البدء السريع
|
||||
@ -127,7 +135,7 @@ x-i18n:
|
||||
}
|
||||
```
|
||||
|
||||
فعّل الحلم مع وتيرة عملية مخصصة:
|
||||
فعّل الحلم مع وتيرة اكتساح مخصصة:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -167,17 +175,17 @@ openclaw memory promote --limit 5
|
||||
openclaw memory status --deep
|
||||
```
|
||||
|
||||
يستخدم `memory promote` اليدوي حدود المرحلة العميقة افتراضيًا ما لم يتم تجاوزها
|
||||
بأعلام CLI.
|
||||
يستخدم `memory promote` اليدوي عتبات المرحلة العميقة افتراضيًا ما لم يتم تجاوزها
|
||||
بعلامات CLI.
|
||||
|
||||
اشرح سبب ترقية مرشح محدد أو عدم ترقيته:
|
||||
اشرح لماذا قد تتم أو لا تتم ترقية مرشح معيّن:
|
||||
|
||||
```bash
|
||||
openclaw memory promote-explain "router vlan"
|
||||
openclaw memory promote-explain "router vlan" --json
|
||||
```
|
||||
|
||||
عاين تأملات REM، والحقائق المرشحة، ومخرجات الترقية العميقة من دون
|
||||
عاين تأملات REM، والحقائق المرشحة، ومخرجات الترقية العميقة بدون
|
||||
كتابة أي شيء:
|
||||
|
||||
```bash
|
||||
@ -189,24 +197,24 @@ openclaw memory rem-harness --json
|
||||
|
||||
توجد جميع الإعدادات ضمن `plugins.entries.memory-core.config.dreaming`.
|
||||
|
||||
| المفتاح | الافتراضي |
|
||||
| ----------- | ---------- |
|
||||
| `enabled` | `false` |
|
||||
| المفتاح | الافتراضي |
|
||||
| ----------- | ----------- |
|
||||
| `enabled` | `false` |
|
||||
| `frequency` | `0 3 * * *` |
|
||||
|
||||
سياسة المراحل، والحدود، وسلوك التخزين هي تفاصيل تنفيذ داخلية
|
||||
سياسة المراحل، والعتبات، وسلوك التخزين هي تفاصيل تنفيذ داخلية
|
||||
(وليست إعدادات موجهة للمستخدم).
|
||||
|
||||
راجع [مرجع إعدادات الذاكرة](/ar/reference/memory-config#dreaming-experimental)
|
||||
للحصول على قائمة المفاتيح الكاملة.
|
||||
للاطلاع على القائمة الكاملة للمفاتيح.
|
||||
|
||||
## واجهة Dreams
|
||||
|
||||
عند التفعيل، تعرض علامة تبويب **Dreams** في Gateway ما يلي:
|
||||
|
||||
- حالة تفعيل الحلم الحالية
|
||||
- الحالة على مستوى المرحلة ووجود العملية المُدارة
|
||||
- أعداد الذاكرة القصيرة المدى، وطويلة المدى، والمُرقّاة اليوم
|
||||
- الحالة على مستوى المرحلة ووجود الاكتساح المُدار
|
||||
- أعداد الذاكرة قصيرة الأمد وطويلة الأمد والمُرقّاة اليوم
|
||||
- توقيت التشغيل المجدول التالي
|
||||
- قارئ يوميات أحلام قابل للتوسيع ومدعوم بواسطة `doctor.memory.dreamDiary`
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,30 +1,30 @@
|
||||
---
|
||||
read_when:
|
||||
- تحتاج إلى معرفة المسار الفرعي في SDK الذي يجب الاستيراد منه
|
||||
- تحتاج إلى معرفة أي مسار فرعي من SDK يجب الاستيراد منه
|
||||
- تريد مرجعًا لجميع أساليب التسجيل على OpenClawPluginApi
|
||||
- تبحث عن تصدير محدد في SDK
|
||||
sidebarTitle: SDK Overview
|
||||
summary: خريطة الاستيراد، ومرجع API للتسجيل، وبنية SDK
|
||||
summary: خريطة الاستيراد، ومرجع واجهة برمجة تطبيقات التسجيل، وبنية SDK
|
||||
title: نظرة عامة على Plugin SDK
|
||||
x-i18n:
|
||||
generated_at: "2026-04-08T02:18:17Z"
|
||||
generated_at: "2026-04-08T07:18:00Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: c5a41bd82d165dfbb7fbd6e4528cf322e9133a51efe55fa8518a7a0a626d9d30
|
||||
source_hash: a9141dc0303c91974fe693ce48ad9f7dc4179418ae262a96011ad565aae87d21
|
||||
source_path: plugins/sdk-overview.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# نظرة عامة على Plugin SDK
|
||||
|
||||
Plugin SDK هو العقد المطبّع بين الإضافات والنواة. هذه الصفحة هي
|
||||
المرجع الخاص بـ **ما الذي يجب استيراده** و**ما الذي يمكنك تسجيله**.
|
||||
يُعد plugin SDK العقد المطبّع بين plugins والنواة. هذه الصفحة هي
|
||||
المرجع الخاص بـ **ما يجب استيراده** و**ما الذي يمكنك تسجيله**.
|
||||
|
||||
<Tip>
|
||||
**هل تبحث عن دليل عملي؟**
|
||||
- أول إضافة؟ ابدأ من [البدء](/ar/plugins/building-plugins)
|
||||
- إضافة قناة؟ راجع [إضافات القنوات](/ar/plugins/sdk-channel-plugins)
|
||||
- إضافة موفّر؟ راجع [إضافات الموفّرات](/ar/plugins/sdk-provider-plugins)
|
||||
**هل تبحث عن دليل إرشادي؟**
|
||||
- أول plugin؟ ابدأ من [البدء](/ar/plugins/building-plugins)
|
||||
- Channel plugin؟ راجع [إضافات القنوات](/ar/plugins/sdk-channel-plugins)
|
||||
- Provider plugin؟ راجع [إضافات المزوّدين](/ar/plugins/sdk-provider-plugins)
|
||||
</Tip>
|
||||
|
||||
## اصطلاح الاستيراد
|
||||
@ -36,39 +36,38 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
||||
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
|
||||
```
|
||||
|
||||
كل مسار فرعي هو وحدة صغيرة ومستقلة بذاتها. يحافظ هذا على سرعة بدء التشغيل
|
||||
ويمنع مشكلات التبعيات الدائرية. بالنسبة إلى أدوات الإدخال/البناء الخاصة بالقنوات،
|
||||
فضّل `openclaw/plugin-sdk/channel-core`؛ واحتفظ بـ `openclaw/plugin-sdk/core` من أجل
|
||||
السطح الأشمل والمظلّي والمساعدات المشتركة مثل
|
||||
كل مسار فرعي هو وحدة صغيرة مستقلة بذاتها. يساعد هذا في إبقاء بدء التشغيل سريعًا
|
||||
ويمنع مشكلات الاعتماد الدائري. بالنسبة إلى أدوات إدخال/بناء القنوات الخاصة،
|
||||
ففضّل `openclaw/plugin-sdk/channel-core`؛ واحتفظ بـ `openclaw/plugin-sdk/core`
|
||||
للسطح الشامل الأوسع والمساعدات المشتركة مثل
|
||||
`buildChannelConfigSchema`.
|
||||
|
||||
لا تضف ولا تعتمد على مسارات تسهيلية مسماة على اسم الموفّر مثل
|
||||
`openclaw/plugin-sdk/slack` أو `openclaw/plugin-sdk/discord`،
|
||||
أو `openclaw/plugin-sdk/signal` أو `openclaw/plugin-sdk/whatsapp`، أو
|
||||
مسارات مساعدات تحمل علامة قناة محددة. يجب على الإضافات المضمّنة أن تركّب
|
||||
مسارات SDK الفرعية العامة داخل ملفات `api.ts` أو `runtime-api.ts` الخاصة بها، ويجب على النواة
|
||||
إما استخدام هذه الملفات المحلية للإضافة أو إضافة عقد SDK عام ضيّق
|
||||
عندما تكون الحاجة عابرة للقنوات فعلًا.
|
||||
لا تضف أو تعتمد على واجهات ملاءمة مسماة بأسماء المزوّدين مثل
|
||||
`openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
|
||||
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`، أو
|
||||
واجهات المساعدة المميّزة بعلامات القنوات. يجب على bundled plugins تركيب
|
||||
المسارات الفرعية العامة لـ SDK داخل ملفات `api.ts` أو `runtime-api.ts` الخاصة بها، ويجب
|
||||
على النواة إما استخدام هذه الملفات المحلية الخاصة بالplugin أو إضافة عقد SDK عام ضيق
|
||||
عندما تكون الحاجة فعلًا مشتركة بين عدة قنوات.
|
||||
|
||||
لا تزال خريطة التصدير المولدة تحتوي على مجموعة صغيرة من
|
||||
مسارات المساعدات الخاصة بالإضافات المضمّنة مثل `plugin-sdk/feishu` و`plugin-sdk/feishu-setup`،
|
||||
و`plugin-sdk/zalo` و`plugin-sdk/zalo-setup` و`plugin-sdk/matrix*`. هذه
|
||||
المسارات الفرعية موجودة فقط لصيانة الإضافات المضمّنة والتوافق؛ وهي
|
||||
مستبعدة عمدًا من الجدول الشائع أدناه وليست مسار الاستيراد
|
||||
الموصى به للإضافات الخارجية الجديدة.
|
||||
لا تزال خريطة التصدير المولّدة تحتوي على مجموعة صغيرة من
|
||||
واجهات المساعدة الخاصة بـ bundled plugins مثل `plugin-sdk/feishu`,
|
||||
`plugin-sdk/feishu-setup`, `plugin-sdk/zalo`, `plugin-sdk/zalo-setup`, و `plugin-sdk/matrix*`. توجد
|
||||
هذه المسارات الفرعية فقط من أجل صيانة bundled plugins والتوافق؛ وقد أُزيلت عمدًا من الجدول الشائع أدناه
|
||||
وليست هي مسار الاستيراد الموصى به لـ plugins الخارجية الجديدة.
|
||||
|
||||
## مرجع المسارات الفرعية
|
||||
|
||||
أكثر المسارات الفرعية استخدامًا، مجمّعة حسب الغرض. القائمة الكاملة المولدة والتي تضم
|
||||
أكثر من 200 مسار فرعي موجودة في `scripts/lib/plugin-sdk-entrypoints.json`.
|
||||
أكثر المسارات الفرعية استخدامًا، مجمّعة حسب الغرض. وتوجد القائمة الكاملة المولّدة
|
||||
التي تتضمن أكثر من 200 مسار فرعي في `scripts/lib/plugin-sdk-entrypoints.json`.
|
||||
|
||||
لا تزال المسارات الفرعية المحجوزة الخاصة بمساعدات الإضافات المضمّنة تظهر في تلك القائمة المولدة.
|
||||
تعامل مع هذه المسارات على أنها تفاصيل تنفيذ/أسطح توافق إلا إذا
|
||||
روّجت لها صفحة توثيق صراحة على أنها عامة.
|
||||
لا تزال المسارات الفرعية المحجوزة لمساعدات bundled plugins تظهر في تلك القائمة المولدة.
|
||||
تعامل معها على أنها تفاصيل تنفيذ/أسطح توافق ما لم تكن صفحة توثيق
|
||||
تروّج صراحةً لواحد منها على أنه عام.
|
||||
|
||||
### إدخال الإضافة
|
||||
### إدخال plugin
|
||||
|
||||
| المسار الفرعي | الصادرات الأساسية |
|
||||
| المسار الفرعي | أهم التصديرات |
|
||||
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
|
||||
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
|
||||
@ -77,285 +76,285 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="المسارات الفرعية للقنوات">
|
||||
| المسار الفرعي | الصادرات الأساسية |
|
||||
| المسار الفرعي | أهم التصديرات |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
|
||||
| `plugin-sdk/config-schema` | تصدير مخطط Zod الجذر لـ `openclaw.json` (`OpenClawSchema`) |
|
||||
| `plugin-sdk/config-schema` | تصدير مخطط Zod الجذري لـ `openclaw.json` (`OpenClawSchema`) |
|
||||
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`، بالإضافة إلى `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
|
||||
| `plugin-sdk/setup` | مساعدات معالج الإعداد المشتركة، ومطالبات قائمة السماح، وبناة حالة الإعداد |
|
||||
| `plugin-sdk/setup` | مساعدات معالج الإعداد المشتركة، ومطالبات allowlist، وبناة حالة الإعداد |
|
||||
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
|
||||
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
|
||||
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
|
||||
| `plugin-sdk/account-core` | مساعدات تكوين/بوابة إجراء الحسابات المتعددة ومساعدات الرجوع إلى الحساب الافتراضي |
|
||||
| `plugin-sdk/account-core` | مساعدات تهيئة/بوابة إجراءات متعددة الحسابات، ومساعدات الرجوع إلى الحساب الافتراضي |
|
||||
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`، ومساعدات تطبيع معرّف الحساب |
|
||||
| `plugin-sdk/account-resolution` | مساعدات البحث عن الحساب + الرجوع إلى الافتراضي |
|
||||
| `plugin-sdk/account-resolution` | مساعدات البحث عن الحساب + الرجوع الافتراضي |
|
||||
| `plugin-sdk/account-helpers` | مساعدات ضيقة لقائمة الحسابات/إجراءات الحساب |
|
||||
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
|
||||
| `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-config-schema` | أنواع مخطط تهيئة القناة |
|
||||
| `plugin-sdk/telegram-command-config` | مساعدات تطبيع/تحقق الأوامر المخصصة في Telegram مع الرجوع إلى bundled contract |
|
||||
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
|
||||
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink` |
|
||||
| `plugin-sdk/inbound-envelope` | مساعدات بناء المسار والمغلف المشترك للرسائل الواردة |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | مساعدات التسجيل والإرسال المشتركة للرسائل الواردة |
|
||||
| `plugin-sdk/inbound-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/outbound-media` | مساعدات مشتركة لتحميل الوسائط الصادرة |
|
||||
| `plugin-sdk/outbound-runtime` | مساعدات هوية الإرسال/التفويض للإرسال |
|
||||
| `plugin-sdk/thread-bindings-runtime` | دورة حياة ربط السلاسل ومساعدات المحوّل |
|
||||
| `plugin-sdk/agent-media-payload` | باني حمولة وسائط الوكيل القديم |
|
||||
| `plugin-sdk/conversation-runtime` | مساعدات المحادثة/ربط الخيوط/الإقران/الربط المهيأ |
|
||||
| `plugin-sdk/runtime-config-snapshot` | مساعد أخذ لقطة من تكوين وقت التشغيل |
|
||||
| `plugin-sdk/conversation-runtime` | مساعدات ربط المحادثة/السلسلة والاقتران والربط المهيأ |
|
||||
| `plugin-sdk/runtime-config-snapshot` | مساعد لقطة تهيئة وقت التشغيل |
|
||||
| `plugin-sdk/runtime-group-policy` | مساعدات حل سياسة المجموعة في وقت التشغيل |
|
||||
| `plugin-sdk/channel-status` | مساعدات اللقطة/الملخص المشتركة لحالة القناة |
|
||||
| `plugin-sdk/channel-config-primitives` | بدائيات ضيقة لمخطط تكوين القناة |
|
||||
| `plugin-sdk/channel-config-writes` | مساعدات تفويض كتابة تكوين القناة |
|
||||
| `plugin-sdk/channel-plugin-common` | صادرات تمهيدية مشتركة لإضافات القنوات |
|
||||
| `plugin-sdk/allowlist-config-edit` | مساعدات قراءة/تحرير تكوين قائمة السماح |
|
||||
| `plugin-sdk/group-access` | مساعدات مشتركة لاتخاذ قرار وصول المجموعة |
|
||||
| `plugin-sdk/direct-dm` | مساعدات مشتركة لمصادقة/حماية الرسائل المباشرة المباشرة |
|
||||
| `plugin-sdk/channel-status` | مساعدات مشتركة للّقطة/الملخص لحالة القناة |
|
||||
| `plugin-sdk/channel-config-primitives` | أوليات ضيقة لمخطط تهيئة القناة |
|
||||
| `plugin-sdk/channel-config-writes` | مساعدات تفويض كتابة تهيئة القناة |
|
||||
| `plugin-sdk/channel-plugin-common` | تصديرات تمهيدية مشتركة لـ channel plugin |
|
||||
| `plugin-sdk/allowlist-config-edit` | مساعدات قراءة/تعديل تهيئة allowlist |
|
||||
| `plugin-sdk/group-access` | مساعدات مشتركة لاتخاذ قرار الوصول إلى المجموعة |
|
||||
| `plugin-sdk/direct-dm` | مساعدات مشتركة للمصادقة/الحماية في الرسائل المباشرة |
|
||||
| `plugin-sdk/interactive-runtime` | مساعدات تطبيع/اختزال حمولة الرد التفاعلي |
|
||||
| `plugin-sdk/channel-inbound` | مساعدات إزالة الارتداد، ومطابقة الذكر، وسياسة الذكر للرسائل الواردة، ومساعدات المغلف |
|
||||
| `plugin-sdk/channel-inbound` | إزالة الارتداد للإدخال، ومطابقة الذكر، ومساعدات سياسة الذكر، ومساعدات المغلف |
|
||||
| `plugin-sdk/channel-send-result` | أنواع نتيجة الرد |
|
||||
| `plugin-sdk/channel-actions` | `createMessageToolButtonsSchema`, `createMessageToolCardSchema` |
|
||||
| `plugin-sdk/channel-targets` | مساعدات تحليل/مطابقة الأهداف |
|
||||
| `plugin-sdk/channel-contract` | أنواع عقد القناة |
|
||||
| `plugin-sdk/channel-feedback` | أسلاك التغذية الراجعة/التفاعلات |
|
||||
| `plugin-sdk/channel-secret-runtime` | مساعدات ضيقة لعقد الأسرار مثل `collectSimpleChannelFieldAssignments` و`getChannelSurface` و`pushAssignment` وأنواع أهداف الأسرار |
|
||||
| `plugin-sdk/channel-feedback` | توصيل التعليقات/التفاعلات |
|
||||
| `plugin-sdk/channel-secret-runtime` | مساعدات ضيقة لعقد الأسرار مثل `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`، وأنواع أهداف الأسرار |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="المسارات الفرعية للموفّرات">
|
||||
| المسار الفرعي | الصادرات الأساسية |
|
||||
<Accordion title="المسارات الفرعية للمزوّدين">
|
||||
| المسار الفرعي | أهم التصديرات |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/provider-setup` | مساعدات منسقة لإعداد الموفّرات المحلية/المستضافة ذاتيًا |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | مساعدات إعداد مركزة لموفّرات مستضافة ذاتيًا متوافقة مع OpenAI |
|
||||
| `plugin-sdk/cli-backend` | القيم الافتراضية للواجهة الخلفية لـ CLI + ثوابت المراقبة |
|
||||
| `plugin-sdk/provider-auth-runtime` | مساعدات حل مفاتيح API وقت التشغيل لإضافات الموفّرات |
|
||||
| `plugin-sdk/provider-auth-api-key` | مساعدات الإلحاق/الكتابة في الملف الشخصي لمفتاح API مثل `upsertApiKeyProfile` |
|
||||
| `plugin-sdk/provider-setup` | مساعدات منسّقة لإعداد المزوّدين المحليين/المستضافين ذاتيًا |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | مساعدات مركّزة لإعداد مزوّدات متوافقة مع OpenAI ومُستضافة ذاتيًا |
|
||||
| `plugin-sdk/cli-backend` | إعدادات CLI الخلفية الافتراضية + ثوابت watchdog |
|
||||
| `plugin-sdk/provider-auth-runtime` | مساعدات حل مفاتيح API في وقت التشغيل لـ provider plugins |
|
||||
| `plugin-sdk/provider-auth-api-key` | مساعدات ضمّ API key/الكتابة إلى الملف الشخصي مثل `upsertApiKeyProfile` |
|
||||
| `plugin-sdk/provider-auth-result` | باني نتيجة مصادقة OAuth القياسي |
|
||||
| `plugin-sdk/provider-auth-login` | مساعدات تسجيل الدخول التفاعلية المشتركة لإضافات الموفّرات |
|
||||
| `plugin-sdk/provider-env-vars` | مساعدات البحث عن متغيرات بيئة مصادقة الموفّر |
|
||||
| `plugin-sdk/provider-auth-login` | مساعدات تسجيل الدخول التفاعلي المشتركة لـ provider plugins |
|
||||
| `plugin-sdk/provider-env-vars` | مساعدات البحث عن متغيرات البيئة لمصادقة المزوّد |
|
||||
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
|
||||
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`، وبناة سياسة الإعادة المشتركة، ومساعدات نقطة نهاية الموفّر، ومساعدات تطبيع معرّف النموذج مثل `normalizeNativeXaiModelId` |
|
||||
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`، وبناة سياسة الإعادة المشتركة، ومساعدات نقاط نهاية المزوّد، ومساعدات تطبيع معرّف النموذج مثل `normalizeNativeXaiModelId` |
|
||||
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
|
||||
| `plugin-sdk/provider-http` | مساعدات عامة لقدرات HTTP/نقطة النهاية الخاصة بالموفّر |
|
||||
| `plugin-sdk/provider-web-fetch-contract` | مساعدات ضيقة لعقود تكوين/اختيار web-fetch مثل `enablePluginInConfig` و`WebFetchProviderPlugin` |
|
||||
| `plugin-sdk/provider-web-fetch` | مساعدات تسجيل/ذاكرة التخزين المؤقت لموفّر web-fetch |
|
||||
| `plugin-sdk/provider-web-search-contract` | مساعدات ضيقة لعقود تكوين/بيانات اعتماد web-search مثل `enablePluginInConfig` و`resolveProviderWebSearchPluginConfig` وضبط/جلب بيانات الاعتماد ذات النطاق |
|
||||
| `plugin-sdk/provider-web-search` | مساعدات التسجيل/الذاكرة المؤقتة/وقت التشغيل لموفّر web-search |
|
||||
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`، وتنظيف مخطط Gemini + التشخيصات، ومساعدات التوافق مع xAI مثل `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
|
||||
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` وما شابهها |
|
||||
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`، وأنواع مغطيات البث، ومساعدات المغطيات المشتركة لـ Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
|
||||
| `plugin-sdk/provider-onboard` | مساعدات ترقيع تكوين الإعداد الأولي |
|
||||
| `plugin-sdk/global-singleton` | مساعدات القيم المفردة/الخرائط/الذاكرات المؤقتة المحلية للعملية |
|
||||
| `plugin-sdk/provider-http` | مساعدات عامة لقدرات HTTP/نقطة النهاية للمزوّد |
|
||||
| `plugin-sdk/provider-web-fetch-contract` | مساعدات ضيقة لعقد تهيئة/اختيار web-fetch مثل `enablePluginInConfig` و `WebFetchProviderPlugin` |
|
||||
| `plugin-sdk/provider-web-fetch` | مساعدات تسجيل/تخزين مؤقت لمزوّد web-fetch |
|
||||
| `plugin-sdk/provider-web-search-contract` | مساعدات ضيقة لعقد تهيئة/بيانات اعتماد web-search مثل `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`، وواضعات/جالبات بيانات اعتماد ضمن النطاق |
|
||||
| `plugin-sdk/provider-web-search` | مساعدات تسجيل/تخزين مؤقت/وقت تشغيل لمزوّد web-search |
|
||||
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`، وتنظيف مخطط Gemini + التشخيصات، ومساعدات توافق xAI مثل `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
|
||||
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` وما شابه |
|
||||
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`، وأنواع أغلفة التدفق، ومساعدات الأغلفة المشتركة لـ Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
|
||||
| `plugin-sdk/provider-onboard` | مساعدات تصحيح التهيئة الخاصة بالإعداد الأولي |
|
||||
| `plugin-sdk/global-singleton` | مساعدات singleton/map/cache محلية على مستوى العملية |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="المسارات الفرعية للمصادقة والأمان">
|
||||
| المسار الفرعي | الصادرات الأساسية |
|
||||
| المسار الفرعي | أهم التصديرات |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/command-auth` | `resolveControlCommandGate`، ومساعدات سجل الأوامر، ومساعدات تفويض المرسِل |
|
||||
| `plugin-sdk/approval-auth-runtime` | مساعدات حل الموافقين ومصادقة الإجراء في نفس الدردشة |
|
||||
| `plugin-sdk/approval-client-runtime` | مساعدات الملف الشخصي/المرشح للموافقات الأصلية لـ exec |
|
||||
| `plugin-sdk/approval-delivery-runtime` | موائمات قدرات/تسليم الموافقات الأصلية |
|
||||
| `plugin-sdk/approval-gateway-runtime` | مساعد مشترك لحل بوابة الموافقات |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | مساعدات خفيفة لتحميل موائم الموافقات الأصلية لنقاط إدخال القنوات الساخنة |
|
||||
| `plugin-sdk/approval-handler-runtime` | مساعدات أوسع لوقت تشغيل معالج الموافقات؛ فضّل المسارات الأضيق الخاصة بالموائم/البوابة عندما تكون كافية |
|
||||
| `plugin-sdk/approval-native-runtime` | مساعدات الهدف الأصلي للموافقات + ربط الحساب |
|
||||
| `plugin-sdk/approval-reply-runtime` | مساعدات حمولة رد موافقات exec/الإضافة |
|
||||
| `plugin-sdk/command-auth-native` | مساعدات مصادقة الأوامر الأصلية + أهداف الجلسات الأصلية |
|
||||
| `plugin-sdk/approval-auth-runtime` | مساعدات حل المعتمِد ومصادقة الإجراءات ضمن نفس المحادثة |
|
||||
| `plugin-sdk/approval-client-runtime` | مساعدات الملف الشخصي/المرشّح لاعتماد التنفيذ الأصلي |
|
||||
| `plugin-sdk/approval-delivery-runtime` | محولات قدرة/تسليم الاعتماد الأصلية |
|
||||
| `plugin-sdk/approval-gateway-runtime` | مساعد مشترك لحل approval gateway |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | مساعدات خفيفة لتحميل محوّل الاعتماد الأصلي لنقاط دخول القنوات السريعة |
|
||||
| `plugin-sdk/approval-handler-runtime` | مساعدات أوسع لمعالِج الاعتماد في وقت التشغيل؛ فضّل الواجهات الأضيق للمحوّل/البوابة عندما تكون كافية |
|
||||
| `plugin-sdk/approval-native-runtime` | مساعدات الهدف الأصلي للاعتماد + ربط الحساب |
|
||||
| `plugin-sdk/approval-reply-runtime` | مساعدات حمولة رد اعتماد التنفيذ/الplugin |
|
||||
| `plugin-sdk/command-auth-native` | مصادقة الأوامر الأصلية + مساعدات هدف الجلسة الأصلية |
|
||||
| `plugin-sdk/command-detection` | مساعدات مشتركة لاكتشاف الأوامر |
|
||||
| `plugin-sdk/command-surface` | تطبيع جسم الأمر ومساعدات سطح الأوامر |
|
||||
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
|
||||
| `plugin-sdk/channel-secret-runtime` | مساعدات ضيقة لتجميع عقود الأسرار لأسطح أسرار القناة/الإضافة |
|
||||
| `plugin-sdk/secret-ref-runtime` | مساعدات ضيقة لـ `coerceSecretRef` وكتابة SecretRef لتحليل عقود الأسرار/التكوين |
|
||||
| `plugin-sdk/security-runtime` | مساعدات مشتركة للثقة، وبوابات الرسائل المباشرة، والمحتوى الخارجي، وتجميع الأسرار |
|
||||
| `plugin-sdk/ssrf-policy` | مساعدات قائمة السماح للمضيف وسياسة SSRF للشبكات الخاصة |
|
||||
| `plugin-sdk/ssrf-runtime` | مساعدات المرسِل المثبّت، والجلب المحمي بـ SSRF، وسياسة SSRF |
|
||||
| `plugin-sdk/channel-secret-runtime` | مساعدات ضيقة لجمع عقود الأسرار لأسطح أسرار القناة/الplugin |
|
||||
| `plugin-sdk/secret-ref-runtime` | مساعدات ضيقة لـ `coerceSecretRef` وكتابة SecretRef لتحليل عقود الأسرار/التهيئة |
|
||||
| `plugin-sdk/security-runtime` | مساعدات مشتركة للثقة، وبوابات الرسائل المباشرة، والمحتوى الخارجي، وجمع الأسرار |
|
||||
| `plugin-sdk/ssrf-policy` | مساعدات سياسة SSRF لقائمة السماح بالمضيفين والشبكات الخاصة |
|
||||
| `plugin-sdk/ssrf-runtime` | مساعدات pinned-dispatcher وfetch المحمي من SSRF وسياسة SSRF |
|
||||
| `plugin-sdk/secret-input` | مساعدات تحليل إدخال الأسرار |
|
||||
| `plugin-sdk/webhook-ingress` | مساعدات طلب/هدف Webhook |
|
||||
| `plugin-sdk/webhook-request-guards` | مساعدات حجم جسم الطلب/المهلة الزمنية |
|
||||
| `plugin-sdk/webhook-ingress` | مساعدات طلب/هدف webhook |
|
||||
| `plugin-sdk/webhook-request-guards` | مساعدات حجم/مهلة جسم الطلب |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="المسارات الفرعية لوقت التشغيل والتخزين">
|
||||
| المسار الفرعي | الصادرات الأساسية |
|
||||
| المسار الفرعي | أهم التصديرات |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/runtime` | مساعدات عامة لوقت التشغيل/السجلات/النسخ الاحتياطي/تثبيت الإضافات |
|
||||
| `plugin-sdk/runtime-env` | مساعدات ضيقة لبيئة وقت التشغيل، والمسجل، والمهلة، وإعادة المحاولة، وbackoff |
|
||||
| `plugin-sdk/channel-runtime-context` | مساعدات عامة لتسجيل والبحث عن سياق وقت تشغيل القناة |
|
||||
| `plugin-sdk/runtime` | مساعدات واسعة لوقت التشغيل/التسجيل/النسخ الاحتياطي/تثبيت plugin |
|
||||
| `plugin-sdk/runtime-env` | مساعدات ضيقة لبيئة وقت التشغيل، والمسجّل، والمهلة، وإعادة المحاولة، والتراجع التدريجي |
|
||||
| `plugin-sdk/channel-runtime-context` | مساعدات عامة لتسجيل سياق وقت تشغيل القناة والبحث عنه |
|
||||
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
|
||||
| `plugin-sdk/plugin-runtime` | مساعدات مشتركة لأوامر/خطافات/http/التفاعل الخاصة بالإضافةات |
|
||||
| `plugin-sdk/hook-runtime` | مساعدات مشتركة لمسار Webhook/الخطافات الداخلية |
|
||||
| `plugin-sdk/lazy-runtime` | مساعدات الاستيراد/الربط الكسول لوقت التشغيل مثل `createLazyRuntimeModule` و`createLazyRuntimeMethod` و`createLazyRuntimeSurface` |
|
||||
| `plugin-sdk/process-runtime` | مساعدات تنفيذ العملية |
|
||||
| `plugin-sdk/cli-runtime` | مساعدات التنسيق والانتظار والإصدار لـ CLI |
|
||||
| `plugin-sdk/gateway-runtime` | مساعدات عميل البوابة وترقيعات حالة القناة |
|
||||
| `plugin-sdk/config-runtime` | مساعدات تحميل/كتابة التكوين |
|
||||
| `plugin-sdk/telegram-command-config` | تطبيع اسم/وصف أمر Telegram وفحوصات التكرار/التعارض، حتى عند غياب سطح عقد Telegram المضمّن |
|
||||
| `plugin-sdk/approval-runtime` | مساعدات موافقات exec/الإضافة، وبناة قدرات الموافقة، ومساعدات المصادقة/الملف الشخصي، ومساعدات التوجيه/وقت التشغيل الأصلية |
|
||||
| `plugin-sdk/reply-runtime` | مساعدات مشتركة لوقت تشغيل الوارد/الرد، والتجزئة، والإرسال، والنبض، ومخطط الرد |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | مساعدات ضيقة لإرسال/إنهاء الرد |
|
||||
| `plugin-sdk/reply-history` | مساعدات مشتركة لسجل الردود ذي النافذة القصيرة مثل `buildHistoryContext` و`recordPendingHistoryEntry` و`clearHistoryEntriesIfEnabled` |
|
||||
| `plugin-sdk/plugin-runtime` | مساعدات مشتركة لأوامر/خطافات/HTTP/تفاعلية plugin |
|
||||
| `plugin-sdk/hook-runtime` | مساعدات مشتركة لخط أنابيب webhook/الخطاف الداخلي |
|
||||
| `plugin-sdk/lazy-runtime` | مساعدات الربط/الاستيراد الكسول لوقت التشغيل مثل `createLazyRuntimeModule`, `createLazyRuntimeMethod`, و `createLazyRuntimeSurface` |
|
||||
| `plugin-sdk/process-runtime` | مساعدات تنفيذ العمليات |
|
||||
| `plugin-sdk/cli-runtime` | مساعدات تنسيق CLI والانتظار والإصدار |
|
||||
| `plugin-sdk/gateway-runtime` | مساعدات عميل البوابة وتصحيح حالة القناة |
|
||||
| `plugin-sdk/config-runtime` | مساعدات تحميل/كتابة التهيئة |
|
||||
| `plugin-sdk/telegram-command-config` | تطبيع اسم/وصف أوامر Telegram وفحوصات التكرار/التعارض، حتى عند عدم توفر سطح عقد Telegram المضمّن |
|
||||
| `plugin-sdk/approval-runtime` | مساعدات اعتماد التنفيذ/الplugin، وبناة قدرات الاعتماد، ومساعدات المصادقة/الملف الشخصي، ومساعدات التوجيه الأصلي/وقت التشغيل |
|
||||
| `plugin-sdk/reply-runtime` | مساعدات مشتركة لوقت تشغيل الإدخال/الرد، والتقسيم، والتوزيع، والنبض، ومخطط الرد |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | مساعدات ضيقة لتوزيع/إنهاء الرد |
|
||||
| `plugin-sdk/reply-history` | مساعدات مشتركة لسجل الردود ضمن نافذة قصيرة مثل `buildHistoryContext`, `recordPendingHistoryEntry`, و `clearHistoryEntriesIfEnabled` |
|
||||
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
|
||||
| `plugin-sdk/reply-chunking` | مساعدات ضيقة لتجزئة النص/Markdown |
|
||||
| `plugin-sdk/session-store-runtime` | مساعدات مسار مخزن الجلسة و`updated-at` |
|
||||
| `plugin-sdk/state-paths` | مساعدات مسارات الحالة/دليل OAuth |
|
||||
| `plugin-sdk/routing` | مساعدات المسار/مفتاح الجلسة/ربط الحساب مثل `resolveAgentRoute` و`buildAgentSessionKey` و`resolveDefaultAgentBoundAccountId` |
|
||||
| `plugin-sdk/status-helpers` | مساعدات مشتركة لملخص حالة القناة/الحساب، والقيم الافتراضية لحالة وقت التشغيل، ومساعدات بيانات تعريف المشكلات |
|
||||
| `plugin-sdk/reply-chunking` | مساعدات ضيقة لتقسيم النص/Markdown |
|
||||
| `plugin-sdk/session-store-runtime` | مساعدات مسار مخزن الجلسة + updated-at |
|
||||
| `plugin-sdk/state-paths` | مساعدات مسارات دليل الحالة/OAuth |
|
||||
| `plugin-sdk/routing` | مساعدات ربط المسار/مفتاح الجلسة/الحساب مثل `resolveAgentRoute`, `buildAgentSessionKey`, و `resolveDefaultAgentBoundAccountId` |
|
||||
| `plugin-sdk/status-helpers` | مساعدات مشتركة لملخص حالة القناة/الحساب، وافتراضيات حالة وقت التشغيل، ومساعدات بيانات وصفية للمشكلات |
|
||||
| `plugin-sdk/target-resolver-runtime` | مساعدات مشتركة لحل الأهداف |
|
||||
| `plugin-sdk/string-normalization-runtime` | مساعدات تطبيع السلاسل/slug |
|
||||
| `plugin-sdk/string-normalization-runtime` | مساعدات تطبيع slug/string |
|
||||
| `plugin-sdk/request-url` | استخراج عناوين URL النصية من مدخلات شبيهة بـ fetch/request |
|
||||
| `plugin-sdk/run-command` | مشغل أوامر مؤقت بنتائج stdout/stderr مطبعة |
|
||||
| `plugin-sdk/param-readers` | قارئات معلمات شائعة للأدوات/CLI |
|
||||
| `plugin-sdk/tool-send` | استخراج حقول هدف الإرسال القياسية من وسائط الأداة |
|
||||
| `plugin-sdk/temp-path` | مساعدات مشتركة لمسار التنزيل المؤقت |
|
||||
| `plugin-sdk/logging-core` | مساعدات المسجل الفرعي والتنقيح |
|
||||
| `plugin-sdk/run-command` | مشغّل أوامر موقّت بنتائج stdout/stderr مطبّعة |
|
||||
| `plugin-sdk/param-readers` | قارئات شائعة لمعاملات الأداة/CLI |
|
||||
| `plugin-sdk/tool-send` | استخراج حقول هدف الإرسال القياسية من وسيطات الأداة |
|
||||
| `plugin-sdk/temp-path` | مساعدات مشتركة لمسارات التنزيل المؤقت |
|
||||
| `plugin-sdk/logging-core` | مسجّل النظام الفرعي ومساعدات إخفاء البيانات الحساسة |
|
||||
| `plugin-sdk/markdown-table-runtime` | مساعدات أوضاع جداول Markdown |
|
||||
| `plugin-sdk/json-store` | مساعدات صغيرة لقراءة/كتابة حالة JSON |
|
||||
| `plugin-sdk/file-lock` | مساعدات إعادة الدخول لقفل الملفات |
|
||||
| `plugin-sdk/persistent-dedupe` | مساعدات ذاكرة التخزين المؤقت لإزالة التكرار المدعومة بالقرص |
|
||||
| `plugin-sdk/acp-runtime` | مساعدات ACP وقت التشغيل/الجلسة وإرسال الرد |
|
||||
| `plugin-sdk/agent-config-primitives` | بدائيات ضيقة لمخطط تكوين وقت تشغيل الوكيل |
|
||||
| `plugin-sdk/boolean-param` | قارئ معلمات منطقي مرن |
|
||||
| `plugin-sdk/persistent-dedupe` | مساعدات ذاكرة التخزين المؤقت لإزالة التكرار المعتمدة على القرص |
|
||||
| `plugin-sdk/acp-runtime` | مساعدات ACP لوقت التشغيل/الجلسة وتوزيع الرد |
|
||||
| `plugin-sdk/agent-config-primitives` | أوليات ضيقة لمخطط تهيئة وقت تشغيل الوكيل |
|
||||
| `plugin-sdk/boolean-param` | قارئ مرن لمعاملات boolean |
|
||||
| `plugin-sdk/dangerous-name-runtime` | مساعدات حل مطابقة الأسماء الخطرة |
|
||||
| `plugin-sdk/device-bootstrap` | مساعدات bootstrap للجهاز ورمز الإقران |
|
||||
| `plugin-sdk/extension-shared` | بدائيات مشتركة لمساعدات القنوات السلبية، والحالة، والوكيل المحيط |
|
||||
| `plugin-sdk/models-provider-runtime` | مساعدات أوامر `/models` / ردود الموفّر |
|
||||
| `plugin-sdk/device-bootstrap` | مساعدات الإقلاع الأولي للجهاز ورمز الاقتران |
|
||||
| `plugin-sdk/extension-shared` | أوليات مشتركة لمساعدات القنوات السلبية، والحالة، والوكيل المحيط |
|
||||
| `plugin-sdk/models-provider-runtime` | مساعدات أمر `/models` وردود المزوّد |
|
||||
| `plugin-sdk/skill-commands-runtime` | مساعدات سرد أوامر Skills |
|
||||
| `plugin-sdk/native-command-registry` | مساعدات سجل/بناء/تسلسل الأوامر الأصلية |
|
||||
| `plugin-sdk/provider-zai-endpoint` | مساعدات اكتشاف نقطة نهاية Z.A.I |
|
||||
| `plugin-sdk/native-command-registry` | مساعدات سجل الأوامر الأصلية/بنائه/تسلسله |
|
||||
| `plugin-sdk/provider-zai-endpoint` | مساعدات اكتشاف نقاط نهاية Z.AI |
|
||||
| `plugin-sdk/infra-runtime` | مساعدات أحداث النظام/النبض |
|
||||
| `plugin-sdk/collection-runtime` | مساعدات صغيرة لذاكرة تخزين مؤقتة محدودة |
|
||||
| `plugin-sdk/diagnostic-runtime` | مساعدات أعلام التشخيص والأحداث |
|
||||
| `plugin-sdk/error-runtime` | مساعدات رسم الأخطاء، والتنسيق، وتصنيف الأخطاء المشتركة، و`isApprovalNotFoundError` |
|
||||
| `plugin-sdk/fetch-runtime` | مساعدات fetch المغلّفة، والوكيل، والبحث المثبّت |
|
||||
| `plugin-sdk/diagnostic-runtime` | مساعدات الأعلام والأحداث التشخيصية |
|
||||
| `plugin-sdk/error-runtime` | مساعدات رسم الأخطاء البياني، والتنسيق، وتصنيف الأخطاء المشتركة، و `isApprovalNotFoundError` |
|
||||
| `plugin-sdk/fetch-runtime` | مساعدات fetch المغلّف والوكيل والبحث المثبّت |
|
||||
| `plugin-sdk/host-runtime` | مساعدات تطبيع اسم المضيف ومضيف SCP |
|
||||
| `plugin-sdk/retry-runtime` | مساعدات تكوين إعادة المحاولة ومشغّل إعادة المحاولة |
|
||||
| `plugin-sdk/retry-runtime` | مساعدات تهيئة إعادة المحاولة ومشغّل إعادة المحاولة |
|
||||
| `plugin-sdk/agent-runtime` | مساعدات دليل/هوية/مساحة عمل الوكيل |
|
||||
| `plugin-sdk/directory-runtime` | استعلام/إزالة تكرار الدليل المدعوم بالتكوين |
|
||||
| `plugin-sdk/directory-runtime` | الاستعلام عن الدليل وإزالة التكرار استنادًا إلى التهيئة |
|
||||
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="المسارات الفرعية للقدرات والاختبار">
|
||||
| المسار الفرعي | الصادرات الأساسية |
|
||||
| المسار الفرعي | أهم التصديرات |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/media-runtime` | مساعدات مشتركة لجلب/تحويل/تخزين الوسائط بالإضافة إلى بناة حمولات الوسائط |
|
||||
| `plugin-sdk/media-generation-runtime` | مساعدات مشتركة للإخفاق المرحلي في توليد الوسائط، واختيار المرشحين، ورسائل النماذج المفقودة |
|
||||
| `plugin-sdk/media-understanding` | أنواع موفّر فهم الوسائط بالإضافة إلى صادرات مساعدات الصور/الصوت المواجهة للموفّر |
|
||||
| `plugin-sdk/text-runtime` | مساعدات مشتركة للنص/Markdown/السجلات مثل إزالة النص المرئي للمساعد، ومساعدات عرض/تجزئة/جداول Markdown، ومساعدات التنقيح، ووسوم التوجيه، وأدوات النص الآمن |
|
||||
| `plugin-sdk/text-chunking` | مساعد تجزئة النص الصادر |
|
||||
| `plugin-sdk/speech` | أنواع موفّر الكلام بالإضافة إلى مساعدات التوجيه، والسجل، والتحقق المواجهة للموفّر |
|
||||
| `plugin-sdk/speech-core` | أنواع موفّر الكلام المشتركة، والسجل، والتوجيه، ومساعدات التطبيع |
|
||||
| `plugin-sdk/realtime-transcription` | أنواع موفّر النسخ الفوري ومساعدات السجل |
|
||||
| `plugin-sdk/realtime-voice` | أنواع موفّر الصوت الفوري ومساعدات السجل |
|
||||
| `plugin-sdk/image-generation` | أنواع موفّر توليد الصور |
|
||||
| `plugin-sdk/image-generation-core` | أنواع توليد الصور المشتركة، والإخفاق المرحلي، والمصادقة، ومساعدات السجل |
|
||||
| `plugin-sdk/music-generation` | أنواع موفّر/طلب/نتيجة توليد الموسيقى |
|
||||
| `plugin-sdk/music-generation-core` | أنواع توليد الموسيقى المشتركة، ومساعدات الإخفاق المرحلي، والبحث عن الموفّر، وتحليل مرجع النموذج |
|
||||
| `plugin-sdk/video-generation` | أنواع موفّر/طلب/نتيجة توليد الفيديو |
|
||||
| `plugin-sdk/video-generation-core` | أنواع توليد الفيديو المشتركة، ومساعدات الإخفاق المرحلي، والبحث عن الموفّر، وتحليل مرجع النموذج |
|
||||
| `plugin-sdk/webhook-targets` | سجل أهداف Webhook ومساعدات تثبيت المسارات |
|
||||
| `plugin-sdk/webhook-path` | مساعدات تطبيع مسار Webhook |
|
||||
| `plugin-sdk/media-runtime` | مساعدات مشتركة لجلب/تحويل/تخزين الوسائط بالإضافة إلى بُناة حمولات الوسائط |
|
||||
| `plugin-sdk/media-generation-runtime` | مساعدات مشتركة للفشل المتتابع في توليد الوسائط، واختيار المرشحين، ورسائل النموذج المفقود |
|
||||
| `plugin-sdk/media-understanding` | أنواع مزوّد فهم الوسائط بالإضافة إلى تصديرات مساعدات الصور/الصوت للمزوّد |
|
||||
| `plugin-sdk/text-runtime` | مساعدات مشتركة للنص/Markdown/التسجيل مثل إزالة النص المرئي للمساعد، ومساعدات العرض/التقسيم/الجداول في Markdown، ومساعدات الإخفاء، ومساعدات وسم التوجيه، وأدوات النص الآمن |
|
||||
| `plugin-sdk/text-chunking` | مساعد تقسيم النص الصادر |
|
||||
| `plugin-sdk/speech` | أنواع مزوّدات الكلام بالإضافة إلى مساعدات التوجيه والسجل والتحقق الموجّهة للمزوّد |
|
||||
| `plugin-sdk/speech-core` | أنواع مزوّدات الكلام المشتركة، والسجل، والتوجيه، ومساعدات التطبيع |
|
||||
| `plugin-sdk/realtime-transcription` | أنواع مزوّدات النسخ الفوري ومساعدات السجل |
|
||||
| `plugin-sdk/realtime-voice` | أنواع مزوّدات الصوت الفوري ومساعدات السجل |
|
||||
| `plugin-sdk/image-generation` | أنواع مزوّدات توليد الصور |
|
||||
| `plugin-sdk/image-generation-core` | أنواع توليد الصور المشتركة، ومساعدات الفشل المتتابع، والمصادقة، والسجل |
|
||||
| `plugin-sdk/music-generation` | أنواع مزوّد/طلب/نتيجة توليد الموسيقى |
|
||||
| `plugin-sdk/music-generation-core` | أنواع توليد الموسيقى المشتركة، ومساعدات الفشل المتتابع، والبحث عن المزوّد، وتحليل model-ref |
|
||||
| `plugin-sdk/video-generation` | أنواع مزوّد/طلب/نتيجة توليد الفيديو |
|
||||
| `plugin-sdk/video-generation-core` | أنواع توليد الفيديو المشتركة، ومساعدات الفشل المتتابع، والبحث عن المزوّد، وتحليل model-ref |
|
||||
| `plugin-sdk/webhook-targets` | سجل أهداف webhook ومساعدات تثبيت المسارات |
|
||||
| `plugin-sdk/webhook-path` | مساعدات تطبيع مسار webhook |
|
||||
| `plugin-sdk/web-media` | مساعدات مشتركة لتحميل الوسائط البعيدة/المحلية |
|
||||
| `plugin-sdk/zod` | إعادة تصدير `zod` لمستهلكي Plugin SDK |
|
||||
| `plugin-sdk/zod` | إعادة تصدير `zod` لمستهلكي plugin SDK |
|
||||
| `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="المسارات الفرعية للذاكرة">
|
||||
| المسار الفرعي | الصادرات الأساسية |
|
||||
| المسار الفرعي | أهم التصديرات |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/memory-core` | سطح مساعد memory-core المضمّن لمساعدات المدير/التكوين/الملف/CLI |
|
||||
| `plugin-sdk/memory-core-engine-runtime` | واجهة وقت التشغيل لفهرسة/بحث الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-engine-foundation` | صادرات محرك الأساس لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-engine-embeddings` | صادرات محرك embeddings لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-engine-qmd` | صادرات محرك QMD لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-engine-storage` | صادرات محرك التخزين لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-multimodal` | مساعدات الوسائط المتعددة لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-query` | مساعدات استعلام مضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core` | سطح مساعد memory-core المضمّن لمدير/تهيئة/ملف/مساعدات CLI |
|
||||
| `plugin-sdk/memory-core-engine-runtime` | واجهة وقت تشغيل لفهرسة/بحث الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-engine-foundation` | تصديرات محرك الأساس لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-engine-embeddings` | تصديرات محرك embeddings لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-engine-qmd` | تصديرات محرك QMD لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-engine-storage` | تصديرات محرك التخزين لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-multimodal` | مساعدات متعددة الوسائط لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-query` | مساعدات الاستعلام لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-secret` | مساعدات الأسرار لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-events` | مساعدات دفتر أحداث مضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-events` | مساعدات سجل أحداث مضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-status` | مساعدات حالة مضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-runtime-cli` | مساعدات CLI وقت التشغيل لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-runtime-cli` | مساعدات وقت تشغيل CLI لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-runtime-core` | مساعدات وقت التشغيل الأساسية لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-core-host-runtime-files` | مساعدات الملفات/وقت التشغيل لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-host-core` | اسم مستعار محايد للمورّد لمساعدات وقت التشغيل الأساسية لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-host-events` | اسم مستعار محايد للمورّد لمساعدات دفتر أحداث مضيف الذاكرة |
|
||||
| `plugin-sdk/memory-host-files` | اسم مستعار محايد للمورّد لمساعدات الملفات/وقت التشغيل لمضيف الذاكرة |
|
||||
| `plugin-sdk/memory-host-markdown` | مساعدات Markdown المُدار المشتركة للإضافات المجاورة للذاكرة |
|
||||
| `plugin-sdk/memory-host-search` | واجهة وقت تشغيل الذاكرة النشطة للوصول إلى مدير البحث |
|
||||
| `plugin-sdk/memory-host-status` | اسم مستعار محايد للمورّد لمساعدات حالة مضيف الذاكرة |
|
||||
| `plugin-sdk/memory-host-core` | اسم بديل محايد تجاه المورّد لمساعدات وقت تشغيل نواة مضيف الذاكرة |
|
||||
| `plugin-sdk/memory-host-events` | اسم بديل محايد تجاه المورّد لمساعدات سجل أحداث مضيف الذاكرة |
|
||||
| `plugin-sdk/memory-host-files` | اسم بديل محايد تجاه المورّد لمساعدات ملفات/وقت تشغيل مضيف الذاكرة |
|
||||
| `plugin-sdk/memory-host-markdown` | مساعدات مشتركة لـ managed-markdown لـ plugins المجاورة للذاكرة |
|
||||
| `plugin-sdk/memory-host-search` | واجهة وقت تشغيل الذاكرة النشطة للوصول إلى search-manager |
|
||||
| `plugin-sdk/memory-host-status` | اسم بديل محايد تجاه المورّد لمساعدات حالة مضيف الذاكرة |
|
||||
| `plugin-sdk/memory-lancedb` | سطح مساعد memory-lancedb المضمّن |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="المسارات الفرعية المحجوزة للمساعدات المضمّنة">
|
||||
| العائلة | المسارات الفرعية الحالية | الاستخدام المقصود |
|
||||
| --- | --- | --- |
|
||||
| المتصفح | `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` | مساعدات دعم إضافة المتصفح المضمّنة (`browser-support` يبقى الشريط المتوافق) |
|
||||
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | سطح مساعد/وقت تشغيل Matrix المضمّن |
|
||||
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | سطح مساعد/وقت تشغيل LINE المضمّن |
|
||||
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | سطح مساعد IRC المضمّن |
|
||||
| مساعدات خاصة بالقنوات | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `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` |
|
||||
| Browser | `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` | مساعدات دعم bundled browser plugin (`browser-support` يبقى واجهة التوافق) |
|
||||
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | سطح المساعدة/وقت التشغيل الخاص بـ bundled Matrix |
|
||||
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | سطح المساعدة/وقت التشغيل الخاص بـ bundled LINE |
|
||||
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | سطح المساعدة الخاص بـ bundled IRC |
|
||||
| مساعدات خاصة بالقنوات | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | واجهات المساعدة/التوافق الخاصة بالقنوات المضمّنة |
|
||||
| مساعدات خاصة بالمصادقة/الplugin | `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` | واجهات مساعدة خاصة بالميزات/الplugins المضمّنة؛ يصدّر `plugin-sdk/github-copilot-token` حاليًا `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken`, و `resolveCopilotApiToken` |
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## API التسجيل
|
||||
## واجهة برمجة تطبيقات التسجيل
|
||||
|
||||
يتلقى استدعاء `register(api)` كائن `OpenClawPluginApi` بهذه
|
||||
يتلقى رد النداء `register(api)` كائن `OpenClawPluginApi` بهذه
|
||||
الأساليب:
|
||||
|
||||
### تسجيل القدرات
|
||||
|
||||
| الأسلوب | ما الذي يسجله |
|
||||
| الأسلوب | ما الذي يسجله |
|
||||
| ------------------------------------------------ | -------------------------------- |
|
||||
| `api.registerProvider(...)` | استدلال النص (LLM) |
|
||||
| `api.registerCliBackend(...)` | واجهة خلفية محلية للاستدلال عبر CLI |
|
||||
| `api.registerProvider(...)` | الاستدلال النصي (LLM) |
|
||||
| `api.registerCliBackend(...)` | خلفية استدلال CLI محلية |
|
||||
| `api.registerChannel(...)` | قناة مراسلة |
|
||||
| `api.registerSpeechProvider(...)` | تحويل النص إلى كلام / توليف STT |
|
||||
| `api.registerRealtimeTranscriptionProvider(...)` | نسخ فوري متدفق |
|
||||
| `api.registerRealtimeVoiceProvider(...)` | جلسات صوت فورية ثنائية الاتجاه |
|
||||
| `api.registerRealtimeVoiceProvider(...)` | جلسات صوت فوري ثنائية الاتجاه |
|
||||
| `api.registerMediaUnderstandingProvider(...)` | تحليل الصور/الصوت/الفيديو |
|
||||
| `api.registerImageGenerationProvider(...)` | توليد الصور |
|
||||
| `api.registerMusicGenerationProvider(...)` | توليد الموسيقى |
|
||||
| `api.registerVideoGenerationProvider(...)` | توليد الفيديو |
|
||||
| `api.registerWebFetchProvider(...)` | موفّر Web fetch / scrape |
|
||||
| `api.registerWebSearchProvider(...)` | البحث على الويب |
|
||||
| `api.registerWebFetchProvider(...)` | مزوّد جلب / scraping للويب |
|
||||
| `api.registerWebSearchProvider(...)` | بحث الويب |
|
||||
|
||||
### الأدوات والأوامر
|
||||
|
||||
| الأسلوب | ما الذي يسجله |
|
||||
| الأسلوب | ما الذي يسجله |
|
||||
| ------------------------------- | --------------------------------------------- |
|
||||
| `api.registerTool(tool, opts?)` | أداة وكيل (مطلوبة أو `{ optional: true }`) |
|
||||
| `api.registerTool(tool, opts?)` | أداة وكيل (إلزامية أو `{ optional: true }`) |
|
||||
| `api.registerCommand(def)` | أمر مخصص (يتجاوز LLM) |
|
||||
|
||||
### البنية التحتية
|
||||
|
||||
| الأسلوب | ما الذي يسجله |
|
||||
| الأسلوب | ما الذي يسجله |
|
||||
| ---------------------------------------------- | --------------------------------------- |
|
||||
| `api.registerHook(events, handler, opts?)` | خطاف حدث |
|
||||
| `api.registerHttpRoute(params)` | نقطة نهاية HTTP للبوابة |
|
||||
| `api.registerGatewayMethod(name, handler)` | أسلوب RPC للبوابة |
|
||||
| `api.registerCli(registrar, opts?)` | أمر فرعي في CLI |
|
||||
| `api.registerService(service)` | خدمة خلفية |
|
||||
| `api.registerInteractiveHandler(registration)` | معالج تفاعلي |
|
||||
| `api.registerMemoryPromptSupplement(builder)` | قسم إضافي للمطالبات المجاورة للذاكرة |
|
||||
| `api.registerService(service)` | خدمة في الخلفية |
|
||||
| `api.registerInteractiveHandler(registration)` | معالِج تفاعلي |
|
||||
| `api.registerMemoryPromptSupplement(builder)` | قسم إضافي للمطالبة مجاور للذاكرة |
|
||||
| `api.registerMemoryCorpusSupplement(adapter)` | corpus إضافي لبحث/قراءة الذاكرة |
|
||||
|
||||
تظل مساحات أسماء الإدارة الأساسية المحجوزة (`config.*` و`exec.approvals.*` و`wizard.*`،
|
||||
و`update.*`) دائمًا `operator.admin`، حتى إذا حاولت إضافة تعيين
|
||||
نطاق أضيق لأسلوب البوابة. فضّل البادئات الخاصة بالإضافة
|
||||
للأساليب التي تملكها الإضافة.
|
||||
تظل مساحات أسماء إدارة النواة المحجوزة (`config.*`, `exec.approvals.*`, `wizard.*`,
|
||||
`update.*`) دائمًا `operator.admin`، حتى إذا حاول plugin تعيين
|
||||
نطاق أضيق لأسلوب البوابة. فضّل البوادئ الخاصة بالplugin
|
||||
للأساليب المملوكة للplugin.
|
||||
|
||||
### بيانات تعريف تسجيل CLI
|
||||
|
||||
يقبل `api.registerCli(registrar, opts?)` نوعين من بيانات التعريف في المستوى الأعلى:
|
||||
يقبل `api.registerCli(registrar, opts?)` نوعين من البيانات التعريفية على المستوى الأعلى:
|
||||
|
||||
- `commands`: جذور أوامر صريحة يملكها المُسجِّل
|
||||
- `descriptors`: واصفات أوامر وقت التحليل المستخدمة لمساعدة CLI الجذرية،
|
||||
والتوجيه، وتسجيل CLI الكسول للإضافة
|
||||
- `descriptors`: واصفات أوامر في وقت التحليل تُستخدم لمساعدة CLI الجذري،
|
||||
والتوجيه، وتسجيل CLI الكسول للplugins
|
||||
|
||||
إذا كنت تريد أن يظل أمر الإضافة محمّلًا بكسل في المسار الجذري العادي لـ CLI،
|
||||
فقدّم `descriptors` تغطي كل جذر أمر من المستوى الأعلى يكشفه ذلك
|
||||
إذا أردت أن يبقى أمر plugin محمّلًا كسولًا في مسار CLI الجذري العادي،
|
||||
فقدّم `descriptors` تغطي كل جذر أمر على المستوى الأعلى يكشفه ذلك
|
||||
المُسجِّل.
|
||||
|
||||
```typescript
|
||||
@ -368,7 +367,7 @@ api.registerCli(
|
||||
descriptors: [
|
||||
{
|
||||
name: "matrix",
|
||||
description: "إدارة حسابات Matrix، والتحقق، والأجهزة، وحالة الملف الشخصي",
|
||||
description: "إدارة حسابات Matrix والتحقق والأجهزة وحالة الملف الشخصي",
|
||||
hasSubcommands: true,
|
||||
},
|
||||
],
|
||||
@ -377,133 +376,133 @@ api.registerCli(
|
||||
```
|
||||
|
||||
استخدم `commands` وحده فقط عندما لا تحتاج إلى تسجيل CLI جذري كسول.
|
||||
لا يزال هذا المسار التوافقي المتعجل مدعومًا، لكنه لا يثبت
|
||||
عناصر نائبة مدعومة بالواصفات من أجل التحميل الكسول وقت التحليل.
|
||||
لا يزال مسار التوافق المتحمّس هذا مدعومًا، لكنه لا يثبت
|
||||
عناصر نائبة مدعومة بـ descriptor للتحميل الكسول في وقت التحليل.
|
||||
|
||||
### تسجيل الواجهة الخلفية لـ CLI
|
||||
### تسجيل CLI backend
|
||||
|
||||
يتيح `api.registerCliBackend(...)` لإضافة أن تملك التكوين الافتراضي لواجهة خلفية
|
||||
محلية لـ CLI للذكاء الاصطناعي مثل `codex-cli`.
|
||||
يتيح `api.registerCliBackend(...)` لـ plugin امتلاك التهيئة الافتراضية لـ
|
||||
خلفية CLI محلية للذكاء الاصطناعي مثل `codex-cli`.
|
||||
|
||||
- يصبح `id` الخاص بالواجهة الخلفية بادئة الموفّر في مراجع النماذج مثل `codex-cli/gpt-5`.
|
||||
- يستخدم `config` الخاص بالواجهة الخلفية الشكل نفسه المستخدم في `agents.defaults.cliBackends.<id>`.
|
||||
- يظل تكوين المستخدم هو الغالب. يدمج OpenClaw `agents.defaults.cliBackends.<id>` فوق
|
||||
القيمة الافتراضية للإضافة قبل تشغيل CLI.
|
||||
- استخدم `normalizeConfig` عندما تحتاج الواجهة الخلفية إلى إعادة كتابة توافقية بعد الدمج
|
||||
(على سبيل المثال، تطبيع أشكال الأعلام القديمة).
|
||||
- يصبح `id` الخاص بالخلفية هو بادئة المزوّد في مراجع النماذج مثل `codex-cli/gpt-5`.
|
||||
- يستخدم `config` الخاص بالخلفية نفس البنية مثل `agents.defaults.cliBackends.<id>`.
|
||||
- تهيئة المستخدم تبقى هي الغالبة. يدمج OpenClaw `agents.defaults.cliBackends.<id>` فوق
|
||||
افتراضي plugin قبل تشغيل CLI.
|
||||
- استخدم `normalizeConfig` عندما تحتاج الخلفية إلى إعادة كتابة توافقية بعد الدمج
|
||||
(على سبيل المثال، تطبيع أشكال العلامات القديمة).
|
||||
|
||||
### الفتحات الحصرية
|
||||
|
||||
| الأسلوب | ما الذي يسجله |
|
||||
| ------------------------------------------ | ------------------------------------- |
|
||||
| `api.registerContextEngine(id, factory)` | محرك السياق (واحد نشط في كل مرة) |
|
||||
| `api.registerMemoryCapability(capability)` | قدرة الذاكرة الموحدة |
|
||||
| `api.registerMemoryPromptSection(builder)` | باني قسم مطالبة الذاكرة |
|
||||
| `api.registerMemoryFlushPlan(resolver)` | محلّل خطة تفريغ الذاكرة |
|
||||
| `api.registerMemoryRuntime(runtime)` | موائم وقت تشغيل الذاكرة |
|
||||
| الأسلوب | ما الذي يسجله |
|
||||
| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `api.registerContextEngine(id, factory)` | محرك السياق (واحد فقط نشط في كل مرة). يتلقى رد النداء `assemble()` كلًا من `availableTools` و `citationsMode` حتى يتمكن المحرك من تخصيص إضافات المطالبة. |
|
||||
| `api.registerMemoryCapability(capability)` | قدرة ذاكرة موحدة |
|
||||
| `api.registerMemoryPromptSection(builder)` | باني قسم مطالبة الذاكرة |
|
||||
| `api.registerMemoryFlushPlan(resolver)` | محلّل خطة تفريغ الذاكرة |
|
||||
| `api.registerMemoryRuntime(runtime)` | محوّل وقت تشغيل الذاكرة |
|
||||
|
||||
### موائمات تضمين الذاكرة
|
||||
### محوّلات تضمين الذاكرة
|
||||
|
||||
| الأسلوب | ما الذي يسجله |
|
||||
| الأسلوب | ما الذي يسجله |
|
||||
| ---------------------------------------------- | ---------------------------------------------- |
|
||||
| `api.registerMemoryEmbeddingProvider(adapter)` | موائم تضمين ذاكرة للإضافة النشطة |
|
||||
| `api.registerMemoryEmbeddingProvider(adapter)` | محوّل تضمين الذاكرة للplugin النشط |
|
||||
|
||||
- `registerMemoryCapability` هو API الإضافة الحصرية المفضلة الخاصة بذاكرة الذاكرة.
|
||||
- يُعد `registerMemoryCapability` واجهة API الحصرية المفضلة لـ memory-plugin.
|
||||
- قد يكشف `registerMemoryCapability` أيضًا `publicArtifacts.listArtifacts(...)`
|
||||
بحيث تتمكن الإضافات المرافقة من استهلاك مصنوعات الذاكرة المصدّرة عبر
|
||||
حتى تتمكن plugins المصاحبة من استهلاك العناصر المصدّرة الخاصة بالذاكرة عبر
|
||||
`openclaw/plugin-sdk/memory-host-core` بدلًا من الوصول إلى التخطيط الخاص
|
||||
لإضافة ذاكرة محددة.
|
||||
- `registerMemoryPromptSection` و`registerMemoryFlushPlan` و
|
||||
`registerMemoryRuntime` هي APIs حصرية متوافقة مع الإصدارات القديمة لإضافات الذاكرة.
|
||||
- يتيح `registerMemoryEmbeddingProvider` لإضافة الذاكرة النشطة تسجيل
|
||||
معرّف واحد أو أكثر لموائمات التضمين (مثل `openai` أو `gemini` أو معرّف
|
||||
مخصص تعرّفه الإضافة).
|
||||
- يُحل تكوين المستخدم مثل `agents.defaults.memorySearch.provider` و
|
||||
`agents.defaults.memorySearch.fallback` مقابل معرّفات الموائمات المسجلة هذه.
|
||||
لplugin ذاكرة محدد.
|
||||
- تمثّل `registerMemoryPromptSection`, `registerMemoryFlushPlan`, و
|
||||
`registerMemoryRuntime` واجهات API حصرية متوافقة مع الإصدارات القديمة لـ memory-plugin.
|
||||
- يتيح `registerMemoryEmbeddingProvider` لـ plugin الذاكرة النشط تسجيل
|
||||
معرّف محوّل تضمين واحد أو أكثر (على سبيل المثال `openai`, `gemini`، أو معرّف مخصص يعرّفه plugin).
|
||||
- تُحل تهيئة المستخدم مثل `agents.defaults.memorySearch.provider` و
|
||||
`agents.defaults.memorySearch.fallback` بالرجوع إلى معرّفات
|
||||
المحوّلات المسجّلة هذه.
|
||||
|
||||
### الأحداث ودورة الحياة
|
||||
|
||||
| الأسلوب | ما الذي يفعله |
|
||||
| الأسلوب | ما الذي يفعله |
|
||||
| -------------------------------------------- | ----------------------------- |
|
||||
| `api.on(hookName, handler, opts?)` | خطاف دورة حياة مطبّع |
|
||||
| `api.onConversationBindingResolved(handler)` | استدعاء رد رابط المحادثة |
|
||||
| `api.onConversationBindingResolved(handler)` | رد نداء ربط المحادثة |
|
||||
|
||||
### دلالات قرارات الخطافات
|
||||
### دلالات قرار الخطاف
|
||||
|
||||
- `before_tool_call`: إرجاع `{ block: true }` نهائي. بمجرد أن يضبطه أي معالج، يتم تخطي المعالجات ذات الأولوية الأقل.
|
||||
- `before_tool_call`: إرجاع `{ block: false }` يُعامل على أنه لا قرار (مثل حذف `block`)، وليس كتجاوز.
|
||||
- `before_install`: إرجاع `{ block: true }` نهائي. بمجرد أن يضبطه أي معالج، يتم تخطي المعالجات ذات الأولوية الأقل.
|
||||
- `before_install`: إرجاع `{ block: false }` يُعامل على أنه لا قرار (مثل حذف `block`)، وليس كتجاوز.
|
||||
- `reply_dispatch`: إرجاع `{ handled: true, ... }` نهائي. بمجرد أن يطالب أي معالج بالإرسال، يتم تخطي المعالجات ذات الأولوية الأقل ومسار إرسال النموذج الافتراضي.
|
||||
- `message_sending`: إرجاع `{ cancel: true }` نهائي. بمجرد أن يضبطه أي معالج، يتم تخطي المعالجات ذات الأولوية الأقل.
|
||||
- `message_sending`: إرجاع `{ cancel: false }` يُعامل على أنه لا قرار (مثل حذف `cancel`)، وليس كتجاوز.
|
||||
- `before_tool_call`: تكون إعادة `{ block: true }` نهائية. وبمجرد أن يضبطها أي معالِج، يتم تخطي المعالجات ذات الأولوية الأدنى.
|
||||
- `before_tool_call`: تُعامل إعادة `{ block: false }` على أنها بلا قرار (مثل حذف `block`) وليست تجاوزًا.
|
||||
- `before_install`: تكون إعادة `{ block: true }` نهائية. وبمجرد أن يضبطها أي معالِج، يتم تخطي المعالجات ذات الأولوية الأدنى.
|
||||
- `before_install`: تُعامل إعادة `{ block: false }` على أنها بلا قرار (مثل حذف `block`) وليست تجاوزًا.
|
||||
- `reply_dispatch`: تكون إعادة `{ handled: true, ... }` نهائية. وبمجرد أن يطالب أي معالِج بالتوزيع، يتم تخطي المعالجات ذات الأولوية الأدنى ومسار توزيع النموذج الافتراضي.
|
||||
- `message_sending`: تكون إعادة `{ cancel: true }` نهائية. وبمجرد أن يضبطها أي معالِج، يتم تخطي المعالجات ذات الأولوية الأدنى.
|
||||
- `message_sending`: تُعامل إعادة `{ cancel: false }` على أنها بلا قرار (مثل حذف `cancel`) وليست تجاوزًا.
|
||||
|
||||
### حقول كائن API
|
||||
|
||||
| الحقل | النوع | الوصف |
|
||||
| الحقل | النوع | الوصف |
|
||||
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
|
||||
| `api.id` | `string` | معرّف الإضافة |
|
||||
| `api.id` | `string` | معرّف plugin |
|
||||
| `api.name` | `string` | اسم العرض |
|
||||
| `api.version` | `string?` | إصدار الإضافة (اختياري) |
|
||||
| `api.description` | `string?` | وصف الإضافة (اختياري) |
|
||||
| `api.source` | `string` | مسار مصدر الإضافة |
|
||||
| `api.rootDir` | `string?` | الدليل الجذري للإضافة (اختياري) |
|
||||
| `api.config` | `OpenClawConfig` | لقطة التكوين الحالية (لقطة وقت التشغيل النشطة داخل الذاكرة عند توفرها) |
|
||||
| `api.pluginConfig` | `Record<string, unknown>` | تكوين خاص بالإضافة من `plugins.entries.<id>.config` |
|
||||
| `api.version` | `string?` | إصدار plugin (اختياري) |
|
||||
| `api.description` | `string?` | وصف plugin (اختياري) |
|
||||
| `api.source` | `string` | مسار مصدر plugin |
|
||||
| `api.rootDir` | `string?` | الدليل الجذري لـ plugin (اختياري) |
|
||||
| `api.config` | `OpenClawConfig` | لقطة التهيئة الحالية (لقطة وقت التشغيل النشطة داخل الذاكرة عند توفرها) |
|
||||
| `api.pluginConfig` | `Record<string, unknown>` | تهيئة plugin الخاصة من `plugins.entries.<id>.config` |
|
||||
| `api.runtime` | `PluginRuntime` | [مساعدات وقت التشغيل](/ar/plugins/sdk-runtime) |
|
||||
| `api.logger` | `PluginLogger` | مسجّل ذو نطاق (`debug`, `info`, `warn`, `error`) |
|
||||
| `api.logger` | `PluginLogger` | مسجّل ضمن النطاق (`debug`, `info`, `warn`, `error`) |
|
||||
| `api.registrationMode` | `PluginRegistrationMode` | وضع التحميل الحالي؛ `"setup-runtime"` هي نافذة بدء التشغيل/الإعداد الخفيفة قبل الإدخال الكامل |
|
||||
| `api.resolvePath(input)` | `(string) => string` | حل المسار نسبةً إلى جذر الإضافة |
|
||||
| `api.resolvePath(input)` | `(string) => string` | حل المسار نسبةً إلى جذر plugin |
|
||||
|
||||
## اصطلاح الوحدات الداخلية
|
||||
|
||||
داخل إضافتك، استخدم ملفات barrel محلية للاستيرادات الداخلية:
|
||||
داخل plugin الخاص بك، استخدم ملفات barrel محلية للاستيرادات الداخلية:
|
||||
|
||||
```
|
||||
my-plugin/
|
||||
api.ts # الصادرات العامة للمستهلكين الخارجيين
|
||||
runtime-api.ts # صادرات وقت تشغيل داخلية فقط
|
||||
index.ts # نقطة إدخال الإضافة
|
||||
setup-entry.ts # إدخال خفيف للإعداد فقط (اختياري)
|
||||
api.ts # التصديرات العامة للمستهلكين الخارجيين
|
||||
runtime-api.ts # تصديرات وقت تشغيل داخلية فقط
|
||||
index.ts # نقطة إدخال plugin
|
||||
setup-entry.ts # إدخال إعداد خفيف فقط (اختياري)
|
||||
```
|
||||
|
||||
<Warning>
|
||||
لا تستورد إضافتك الخاصة أبدًا من خلال `openclaw/plugin-sdk/<your-plugin>`
|
||||
لا تستورد plugin الخاص بك أبدًا عبر `openclaw/plugin-sdk/<your-plugin>`
|
||||
من كود الإنتاج. وجّه الاستيرادات الداخلية عبر `./api.ts` أو
|
||||
`./runtime-api.ts`. مسار SDK هو العقد الخارجي فقط.
|
||||
</Warning>
|
||||
|
||||
تفضّل الآن الأسطح العامة للإضافات المضمّنة المحمّلة عبر الواجهة (`api.ts` و`runtime-api.ts`،
|
||||
و`index.ts` و`setup-entry.ts`، وملفات الإدخال العامة المشابهة)
|
||||
لقطة تكوين وقت التشغيل النشطة عندما يكون OpenClaw قيد التشغيل بالفعل. وإذا لم تكن
|
||||
لقطة وقت التشغيل موجودة بعد، فإنها ترجع إلى ملف التكوين المحلول على القرص.
|
||||
تفضّل الآن الأسطح العامة لـ bundled plugin المحمّلة عبر الواجهة (`api.ts`, `runtime-api.ts`,
|
||||
`index.ts`, `setup-entry.ts`، وملفات الإدخال العامة المشابهة)
|
||||
لقطة تهيئة وقت التشغيل النشطة عندما يكون OpenClaw قيد التشغيل بالفعل. وإذا لم تكن لقطة
|
||||
وقت التشغيل موجودة بعد، فإنها تعود إلى ملف التهيئة المحلول على القرص.
|
||||
|
||||
يمكن لإضافات الموفّرات أيضًا كشف ملف barrel محلي ضيق خاص بالإضافة عندما يكون
|
||||
المساعد خاصًا بالموفّر عمدًا ولا ينتمي بعد إلى مسار فرعي عام في SDK.
|
||||
المثال المضمّن الحالي: يحتفظ موفّر Anthropic بمساعدات بث Claude
|
||||
الخاصة به في سطحه العام `api.ts` / `contract-api.ts` بدلًا من
|
||||
ترقية منطق رؤوس Anthropic التجريبية و`service_tier` إلى عقد
|
||||
عام من `plugin-sdk/*`.
|
||||
يمكن لـ provider plugins أيضًا كشف barrel محلي ضيق لعقد plugin عندما تكون
|
||||
المساعدة مخصصة عمدًا لمزوّد بعينه ولا تنتمي بعد إلى مسار فرعي عام في SDK.
|
||||
المثال المضمّن الحالي: يحتفظ مزوّد Anthropic بمساعدات تدفق Claude
|
||||
في واجهته العامة `api.ts` / `contract-api.ts` الخاصة به بدلًا من
|
||||
ترقية منطق رؤوس Anthropic التجريبية و `service_tier` إلى عقد
|
||||
عام في `plugin-sdk/*`.
|
||||
|
||||
أمثلة مضمّنة حالية أخرى:
|
||||
|
||||
- `@openclaw/openai-provider`: يصدّر `api.ts` بُناة الموفّر،
|
||||
ومساعدات النموذج الافتراضي، وبناة الموفّر الفوري
|
||||
- `@openclaw/openrouter-provider`: يصدّر `api.ts` باني الموفّر بالإضافة إلى
|
||||
مساعدات الإعداد الأولي/التكوين
|
||||
- `@openclaw/openai-provider`: يصدّر `api.ts` بُناة المزوّد،
|
||||
ومساعدات النموذج الافتراضي، وبُناة المزوّد الفوري
|
||||
- `@openclaw/openrouter-provider`: يصدّر `api.ts` باني المزوّد بالإضافة إلى
|
||||
مساعدات الإعداد الأولي/التهيئة
|
||||
|
||||
<Warning>
|
||||
يجب أيضًا على كود الإنتاج في الامتدادات تجنّب الاستيراد من `openclaw/plugin-sdk/<other-plugin>`.
|
||||
إذا كان المساعد مشتركًا فعلًا، فقم بترقيته إلى مسار فرعي محايد في SDK
|
||||
مثل `openclaw/plugin-sdk/speech` أو `.../provider-model-shared` أو سطح آخر
|
||||
موجّه للقدرات بدلًا من ربط إضافتين معًا.
|
||||
يجب على كود الإنتاج الخاص بالامتدادات أيضًا تجنب الاستيراد من `openclaw/plugin-sdk/<other-plugin>`.
|
||||
إذا كانت إحدى المساعدات مشتركة فعلًا، فقم بترقيتها إلى مسار فرعي محايد في SDK
|
||||
مثل `openclaw/plugin-sdk/speech`, `.../provider-model-shared`، أو سطح آخر
|
||||
موجّه للقدرات بدلًا من ربط pluginين معًا.
|
||||
</Warning>
|
||||
|
||||
## ذو صلة
|
||||
|
||||
- [نقاط الإدخال](/ar/plugins/sdk-entrypoints) — خيارات `definePluginEntry` و`defineChannelPluginEntry`
|
||||
- [نقاط الإدخال](/ar/plugins/sdk-entrypoints) — خيارات `definePluginEntry` و `defineChannelPluginEntry`
|
||||
- [مساعدات وقت التشغيل](/ar/plugins/sdk-runtime) — المرجع الكامل لمساحة الاسم `api.runtime`
|
||||
- [الإعداد والتكوين](/ar/plugins/sdk-setup) — الحزم، وmanifestات، ومخططات التكوين
|
||||
- [الإعداد والتهيئة](/ar/plugins/sdk-setup) — الحزم، وملفات manifest، ومخططات التهيئة
|
||||
- [الاختبار](/ar/plugins/sdk-testing) — أدوات الاختبار وقواعد lint
|
||||
- [ترحيل SDK](/ar/plugins/sdk-migration) — الترحيل من الأسطح القديمة المهملة
|
||||
- [الداخلية الخاصة بالإضافات](/ar/plugins/architecture) — بنية عميقة ونموذج القدرات
|
||||
- [ترحيل SDK](/ar/plugins/sdk-migration) — الترحيل من الأسطح المهجورة
|
||||
- [بنية plugin الداخلية](/ar/plugins/architecture) — البنية العميقة ونموذج القدرات
|
||||
|
||||
@ -2,37 +2,37 @@
|
||||
read_when:
|
||||
- تريد استخدام نماذج Google Gemini مع OpenClaw
|
||||
- تحتاج إلى تدفق المصادقة بمفتاح API أو OAuth
|
||||
summary: إعداد Google Gemini (مفتاح API وOAuth، وإنشاء الصور، وفهم الوسائط، والبحث على الويب)
|
||||
summary: إعداد Google Gemini (مفتاح API + OAuth، توليد الصور، فهم الوسائط، البحث على الويب)
|
||||
title: Google (Gemini)
|
||||
x-i18n:
|
||||
generated_at: "2026-04-08T02:17:12Z"
|
||||
generated_at: "2026-04-08T07:16:29Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: e9e558f5ce35c853e0240350be9a1890460c5f7f7fd30b05813a656497dee516
|
||||
source_hash: fad2ff68987301bd86145fa6e10de8c7b38d5bd5dbcd13db9c883f7f5b9a4e01
|
||||
source_path: providers/google.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Google (Gemini)
|
||||
|
||||
يوفر plugin Google إمكانية الوصول إلى نماذج Gemini عبر Google AI Studio، بالإضافة إلى
|
||||
إنشاء الصور، وفهم الوسائط (الصور/الصوت/الفيديو)، والبحث على الويب عبر
|
||||
يوفر مكون Google الإضافي الوصول إلى نماذج Gemini من خلال Google AI Studio، بالإضافة إلى
|
||||
توليد الصور، وفهم الوسائط (الصور/الصوت/الفيديو)، والبحث على الويب عبر
|
||||
Gemini Grounding.
|
||||
|
||||
- الموفر: `google`
|
||||
- المزوّد: `google`
|
||||
- المصادقة: `GEMINI_API_KEY` أو `GOOGLE_API_KEY`
|
||||
- API: Google Gemini API
|
||||
- موفر بديل: `google-gemini-cli` (OAuth)
|
||||
- API: Google Gemini API
|
||||
- المزوّد البديل: `google-gemini-cli` (OAuth)
|
||||
|
||||
## بداية سريعة
|
||||
## البدء السريع
|
||||
|
||||
1. اضبط مفتاح API:
|
||||
1. عيّن مفتاح API:
|
||||
|
||||
```bash
|
||||
openclaw onboard --auth-choice gemini-api-key
|
||||
```
|
||||
|
||||
2. اضبط نموذجًا افتراضيًا:
|
||||
2. عيّن نموذجًا افتراضيًا:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -53,15 +53,15 @@ openclaw onboard --non-interactive \
|
||||
--gemini-api-key "$GEMINI_API_KEY"
|
||||
```
|
||||
|
||||
## OAuth (Gemini CLI)
|
||||
## OAuth (Gemini CLI)
|
||||
|
||||
يستخدم موفر بديل باسم `google-gemini-cli` مصادقة PKCE OAuth بدلًا من مفتاح API.
|
||||
هذا تكامل غير رسمي؛ وقد أبلغ بعض المستخدمين عن
|
||||
يستخدم المزوّد البديل `google-gemini-cli` مصادقة PKCE OAuth بدلًا من مفتاح
|
||||
API. هذا تكامل غير رسمي؛ وقد أبلغ بعض المستخدمين عن
|
||||
قيود على الحساب. استخدمه على مسؤوليتك الخاصة.
|
||||
|
||||
- النموذج الافتراضي: `google-gemini-cli/gemini-3-flash-preview`
|
||||
- الاسم المستعار: `gemini-cli`
|
||||
- متطلب التثبيت المسبق: أن يكون Gemini CLI المحلي متاحًا باسم `gemini`
|
||||
- متطلب التثبيت المسبق: توفر Gemini CLI محليًا باسم `gemini`
|
||||
- Homebrew: `brew install gemini-cli`
|
||||
- npm: `npm install -g @google/gemini-cli`
|
||||
- تسجيل الدخول:
|
||||
@ -75,48 +75,51 @@ openclaw models auth login --provider google-gemini-cli --set-default
|
||||
- `OPENCLAW_GEMINI_OAUTH_CLIENT_ID`
|
||||
- `OPENCLAW_GEMINI_OAUTH_CLIENT_SECRET`
|
||||
|
||||
(أو الصيغ `GEMINI_CLI_*`.)
|
||||
(أو متغيرات `GEMINI_CLI_*`.)
|
||||
|
||||
إذا فشلت طلبات Gemini CLI OAuth بعد تسجيل الدخول، فاضبط
|
||||
إذا فشلت طلبات Gemini CLI OAuth بعد تسجيل الدخول، فعيّن
|
||||
`GOOGLE_CLOUD_PROJECT` أو `GOOGLE_CLOUD_PROJECT_ID` على مضيف البوابة ثم
|
||||
أعد المحاولة.
|
||||
|
||||
إذا فشل تسجيل الدخول قبل بدء تدفق المتصفح، فتأكد من أن الأمر المحلي `gemini`
|
||||
مثبّت وموجود على `PATH`. يدعم OpenClaw كلاً من عمليات التثبيت عبر Homebrew
|
||||
وعمليات التثبيت العامة عبر npm، بما في ذلك تخطيطات Windows/npm الشائعة.
|
||||
مثبّت وموجود في `PATH`. يدعم OpenClaw كلًا من تثبيتات Homebrew
|
||||
وتثبيتات npm العامة، بما في ذلك تخطيطات Windows/npm الشائعة.
|
||||
|
||||
ملاحظات استخدام Gemini CLI JSON:
|
||||
ملاحظات استخدام JSON في Gemini CLI:
|
||||
|
||||
- يأتي نص الرد من الحقل `response` في JSON الخاص بـ CLI.
|
||||
- يعود الاستخدام إلى `stats` عندما يترك CLI الحقل `usage` فارغًا.
|
||||
- تتم تسوية `stats.cached` إلى OpenClaw `cacheRead`.
|
||||
- إذا كان `stats.input` مفقودًا، فإن OpenClaw يشتق رموز الإدخال من
|
||||
- تتم تسوية `stats.cached` إلى `cacheRead` في OpenClaw.
|
||||
- إذا كان `stats.input` مفقودًا، يشتق OpenClaw رموز الإدخال من
|
||||
`stats.input_tokens - stats.cached`.
|
||||
|
||||
## الإمكانات
|
||||
|
||||
| الإمكانية | مدعومة |
|
||||
| --------------------- | ---------------- |
|
||||
| إكمالات الدردشة | نعم |
|
||||
| إنشاء الصور | نعم |
|
||||
| إنشاء الموسيقى | نعم |
|
||||
| فهم الصور | نعم |
|
||||
| نسخ الصوت | نعم |
|
||||
| فهم الفيديو | نعم |
|
||||
| البحث على الويب (Grounding) | نعم |
|
||||
| الإمكانية | مدعومة |
|
||||
| ---------------------- | ----------------- |
|
||||
| إكمالات الدردشة | نعم |
|
||||
| توليد الصور | نعم |
|
||||
| توليد الموسيقى | نعم |
|
||||
| فهم الصور | نعم |
|
||||
| نسخ الصوت | نعم |
|
||||
| فهم الفيديو | نعم |
|
||||
| البحث على الويب (Grounding) | نعم |
|
||||
| التفكير/الاستدلال | نعم (Gemini 3.1+) |
|
||||
| نماذج Gemma 4 | نعم |
|
||||
|
||||
## إعادة استخدام ذاكرة Gemini المؤقتة المباشرة
|
||||
تدعم نماذج Gemma 4 (على سبيل المثال `gemma-4-26b-a4b-it`) وضع التفكير. يعيد OpenClaw كتابة `thinkingBudget` إلى `thinkingLevel` مدعوم من Google لنماذج Gemma 4. يؤدي ضبط التفكير على `off` إلى إبقاء التفكير معطّلًا بدلًا من تعيينه إلى `MINIMAL`.
|
||||
|
||||
بالنسبة إلى التشغيلات المباشرة لـ Gemini API (`api: "google-generative-ai"`)، يقوم OpenClaw الآن
|
||||
بتمرير معرّف `cachedContent` المهيأ إلى طلبات Gemini.
|
||||
## إعادة استخدام ذاكرة التخزين المؤقت المباشرة لـ Gemini
|
||||
|
||||
- اضبط معلمات لكل نموذج أو معلمات عامة باستخدام
|
||||
في عمليات تشغيل Gemini API المباشرة (`api: "google-generative-ai"`)، يقوم OpenClaw الآن
|
||||
بتمرير معرّف `cachedContent` مُعدّ مسبقًا إلى طلبات Gemini.
|
||||
|
||||
- اضبط المعلمات لكل نموذج أو على مستوى عام باستخدام
|
||||
`cachedContent` أو `cached_content` القديم
|
||||
- إذا وُجد الاثنان، تكون الأولوية لـ `cachedContent`
|
||||
- إذا كان كلاهما موجودًا، تكون الأولوية لـ `cachedContent`
|
||||
- مثال على القيمة: `cachedContents/prebuilt-context`
|
||||
- تتم تسوية استخدام إصابة الذاكرة المؤقتة في Gemini إلى OpenClaw `cacheRead` من
|
||||
`cachedContentTokenCount` الصادر من الخدمة upstream
|
||||
- تتم تسوية استخدام إصابة ذاكرة التخزين المؤقت في Gemini إلى `cacheRead` في OpenClaw من
|
||||
`cachedContentTokenCount` في المصدر
|
||||
|
||||
مثال:
|
||||
|
||||
@ -136,21 +139,21 @@ openclaw models auth login --provider google-gemini-cli --set-default
|
||||
}
|
||||
```
|
||||
|
||||
## إنشاء الصور
|
||||
## توليد الصور
|
||||
|
||||
يفترض موفر إنشاء الصور `google` المضمن افتراضيًا استخدام
|
||||
يستخدم مزوّد توليد الصور `google` المضمّن افتراضيًا
|
||||
`google/gemini-3.1-flash-image-preview`.
|
||||
|
||||
- يدعم أيضًا `google/gemini-3-pro-image-preview`
|
||||
- الإنشاء: حتى 4 صور لكل طلب
|
||||
- وضع التحرير: مفعّل، وحتى 5 صور إدخال
|
||||
- عناصر التحكم الهندسية: `size` و`aspectRatio` و`resolution`
|
||||
- التوليد: حتى 4 صور لكل طلب
|
||||
- وضع التحرير: مفعّل، حتى 5 صور إدخال
|
||||
- عناصر التحكم في الأبعاد: `size` و`aspectRatio` و`resolution`
|
||||
|
||||
يُعد الموفر `google-gemini-cli` المعتمد على OAuth فقط واجهة منفصلة
|
||||
للاستدلال النصي. أما إنشاء الصور، وفهم الوسائط، وGemini Grounding فتبقى على
|
||||
معرّف الموفر `google`.
|
||||
يُعدّ المزوّد `google-gemini-cli` المعتمد على OAuth فقط سطحًا منفصلًا
|
||||
لاستدلال النص. يظل توليد الصور، وفهم الوسائط، وGemini Grounding على
|
||||
معرّف المزوّد `google`.
|
||||
|
||||
لاستخدام Google كموفر الصور الافتراضي:
|
||||
لاستخدام Google كمزوّد الصور الافتراضي:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -164,20 +167,20 @@ openclaw models auth login --provider google-gemini-cli --set-default
|
||||
}
|
||||
```
|
||||
|
||||
راجع [إنشاء الصور](/ar/tools/image-generation) للتعرّف على
|
||||
معلمات الأداة المشتركة، واختيار الموفر، وسلوك التبديل الاحتياطي.
|
||||
راجع [توليد الصور](/ar/tools/image-generation) لمعلمات
|
||||
الأداة المشتركة، واختيار المزوّد، وسلوك التبديل الاحتياطي.
|
||||
|
||||
## إنشاء الفيديو
|
||||
## توليد الفيديو
|
||||
|
||||
يسجل plugin `google` المضمن أيضًا إنشاء الفيديو عبر الأداة المشتركة
|
||||
`video_generate`.
|
||||
يسجل مكون `google` الإضافي المضمّن أيضًا توليد الفيديو من خلال أداة
|
||||
`video_generate` المشتركة.
|
||||
|
||||
- نموذج الفيديو الافتراضي: `google/veo-3.1-fast-generate-preview`
|
||||
- الأوضاع: نص إلى فيديو، وصورة إلى فيديو، وتدفقات مرجعية لفيديو واحد
|
||||
- يدعم `aspectRatio` و`resolution` و`audio`
|
||||
- القيد الحالي للمدة: **من 4 إلى 8 ثوانٍ**
|
||||
- التقييد الحالي للمدة: **من 4 إلى 8 ثوانٍ**
|
||||
|
||||
لاستخدام Google كموفر الفيديو الافتراضي:
|
||||
لاستخدام Google كمزوّد الفيديو الافتراضي:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -191,22 +194,22 @@ openclaw models auth login --provider google-gemini-cli --set-default
|
||||
}
|
||||
```
|
||||
|
||||
راجع [إنشاء الفيديو](/ar/tools/video-generation) للتعرّف على
|
||||
معلمات الأداة المشتركة، واختيار الموفر، وسلوك التبديل الاحتياطي.
|
||||
راجع [توليد الفيديو](/ar/tools/video-generation) لمعلمات
|
||||
الأداة المشتركة، واختيار المزوّد، وسلوك التبديل الاحتياطي.
|
||||
|
||||
## إنشاء الموسيقى
|
||||
## توليد الموسيقى
|
||||
|
||||
يسجل plugin `google` المضمن أيضًا إنشاء الموسيقى عبر الأداة المشتركة
|
||||
`music_generate`.
|
||||
يسجل مكون `google` الإضافي المضمّن أيضًا توليد الموسيقى من خلال أداة
|
||||
`music_generate` المشتركة.
|
||||
|
||||
- نموذج الموسيقى الافتراضي: `google/lyria-3-clip-preview`
|
||||
- يدعم أيضًا `google/lyria-3-pro-preview`
|
||||
- عناصر التحكم في الموجّه: `lyrics` و`instrumental`
|
||||
- عناصر التحكم في المطالبة: `lyrics` و`instrumental`
|
||||
- تنسيق الإخراج: `mp3` افتراضيًا، بالإضافة إلى `wav` على `google/lyria-3-pro-preview`
|
||||
- المدخلات المرجعية: حتى 10 صور
|
||||
- يتم فصل التشغيلات المدعومة بالجلسات عبر تدفق المهمة/الحالة المشترك، بما في ذلك `action: "status"`
|
||||
- تُفصل عمليات التشغيل المدعومة بالجلسات عبر تدفق المهام/الحالة المشترك، بما في ذلك `action: "status"`
|
||||
|
||||
لاستخدام Google كموفر الموسيقى الافتراضي:
|
||||
لاستخدام Google كمزوّد الموسيقى الافتراضي:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -220,11 +223,11 @@ openclaw models auth login --provider google-gemini-cli --set-default
|
||||
}
|
||||
```
|
||||
|
||||
راجع [إنشاء الموسيقى](/ar/tools/music-generation) للتعرّف على
|
||||
معلمات الأداة المشتركة، واختيار الموفر، وسلوك التبديل الاحتياطي.
|
||||
راجع [توليد الموسيقى](/ar/tools/music-generation) لمعلمات
|
||||
الأداة المشتركة، واختيار المزوّد، وسلوك التبديل الاحتياطي.
|
||||
|
||||
## ملاحظة البيئة
|
||||
## ملاحظة حول البيئة
|
||||
|
||||
إذا كانت البوابة تعمل كخدمة خلفية (launchd/systemd)، فتأكد من أن `GEMINI_API_KEY`
|
||||
إذا كانت البوابة تعمل كخدمة daemon (`launchd/systemd`)، فتأكد من أن `GEMINI_API_KEY`
|
||||
متاح لتلك العملية (على سبيل المثال، في `~/.openclaw/.env` أو عبر
|
||||
`env.shellEnv`).
|
||||
|
||||
@ -1,45 +1,45 @@
|
||||
---
|
||||
read_when:
|
||||
- تريد تشغيل OpenClaw مع نماذج سحابية أو محلية عبر Ollama
|
||||
- تحتاج إلى إرشادات إعداد وتكوين Ollama
|
||||
summary: تشغيل OpenClaw مع Ollama (النماذج السحابية والمحلية)
|
||||
- تحتاج إلى إرشادات إعداد Ollama وتهيئته
|
||||
summary: شغّل OpenClaw مع Ollama (النماذج السحابية والمحلية)
|
||||
title: Ollama
|
||||
x-i18n:
|
||||
generated_at: "2026-04-08T02:19:04Z"
|
||||
generated_at: "2026-04-08T07:16:47Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 222ec68f7d4bb29cc7796559ddef1d5059f5159e7a51e2baa3a271ddb3abb716
|
||||
source_hash: d3295a7c879d3636a2ffdec05aea6e670e54a990ef52bd9b0cae253bc24aa3f7
|
||||
source_path: providers/ollama.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Ollama
|
||||
|
||||
Ollama هو بيئة تشغيل محلية لـ LLM تجعل من السهل تشغيل النماذج مفتوحة المصدر على جهازك. يتكامل OpenClaw مع API الأصلي لـ Ollama (`/api/chat`)، ويدعم البث واستدعاء الأدوات، ويمكنه اكتشاف نماذج Ollama المحلية تلقائيًا عندما تختار ذلك عبر `OLLAMA_API_KEY` (أو ملف تعريف مصادقة) ولا تعرّف إدخال `models.providers.ollama` صريحًا.
|
||||
Ollama هو بيئة تشغيل محلية لنماذج LLM تجعل من السهل تشغيل النماذج مفتوحة المصدر على جهازك. يتكامل OpenClaw مع واجهة Ollama API الأصلية (`/api/chat`)، ويدعم البث واستدعاء الأدوات، ويمكنه الاكتشاف التلقائي لنماذج Ollama المحلية عند تفعيل ذلك باستخدام `OLLAMA_API_KEY` (أو ملف تعريف مصادقة) وعدم تعريف إدخال صريح لـ `models.providers.ollama`.
|
||||
|
||||
<Warning>
|
||||
**مستخدمو Ollama البعيد**: لا تستخدم عنوان URL المتوافق مع OpenAI الخاص بـ `/v1` (`http://host:11434/v1`) مع OpenClaw. فهذا يعطّل استدعاء الأدوات وقد تُخرج النماذج JSON الأدوات الخام كنص عادي. استخدم بدلًا من ذلك عنوان URL الخاص بـ API الأصلي لـ Ollama: `baseUrl: "http://host:11434"` (من دون `/v1`).
|
||||
**مستخدمو Ollama البعيد**: لا تستخدم عنوان URL المتوافق مع OpenAI عبر `/v1` (`http://host:11434/v1`) مع OpenClaw. فهذا يعطل استدعاء الأدوات وقد تُخرج النماذج JSON الخام الخاص بالأدوات كنص عادي. استخدم بدلًا من ذلك عنوان URL الخاص بواجهة Ollama API الأصلية: `baseUrl: "http://host:11434"` (من دون `/v1`).
|
||||
</Warning>
|
||||
|
||||
## البدء السريع
|
||||
|
||||
### الإعداد الأولي (مستحسن)
|
||||
### الإعداد الأولي (موصى به)
|
||||
|
||||
أسرع طريقة لإعداد Ollama هي عبر الإعداد الأولي:
|
||||
أسرع طريقة لإعداد Ollama هي من خلال الإعداد الأولي:
|
||||
|
||||
```bash
|
||||
openclaw onboard
|
||||
```
|
||||
|
||||
اختر **Ollama** من قائمة الموفّرين. سيقوم الإعداد الأولي بما يلي:
|
||||
اختر **Ollama** من قائمة موفري الخدمة. سيقوم الإعداد الأولي بما يلي:
|
||||
|
||||
1. سيسألك عن عنوان URL الأساسي لـ Ollama الذي يمكن الوصول إلى المثيل من خلاله (الافتراضي `http://127.0.0.1:11434`).
|
||||
2. يتيح لك اختيار **Cloud + Local** (نماذج سحابية ونماذج محلية) أو **Local** (نماذج محلية فقط).
|
||||
1. سيسأل عن عنوان URL الأساسي لـ Ollama الذي يمكن الوصول إلى مثيلك من خلاله (الافتراضي هو `http://127.0.0.1:11434`).
|
||||
2. يتيح لك اختيار **Cloud + Local** (نماذج سحابية ومحلية) أو **Local** (نماذج محلية فقط).
|
||||
3. يفتح تدفق تسجيل دخول عبر المتصفح إذا اخترت **Cloud + Local** ولم تكن قد سجلت الدخول إلى ollama.com.
|
||||
4. يكتشف النماذج المتاحة ويقترح الإعدادات الافتراضية.
|
||||
4. يكتشف النماذج المتاحة ويقترح إعدادات افتراضية.
|
||||
5. يسحب النموذج المحدد تلقائيًا إذا لم يكن متاحًا محليًا.
|
||||
|
||||
الوضع غير التفاعلي مدعوم أيضًا:
|
||||
كما أن الوضع غير التفاعلي مدعوم أيضًا:
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
@ -47,7 +47,7 @@ openclaw onboard --non-interactive \
|
||||
--accept-risk
|
||||
```
|
||||
|
||||
يمكنك اختياريًا تحديد عنوان URL أساسي مخصص أو نموذج مخصص:
|
||||
يمكنك اختياريًا تحديد عنوان URL أساسي مخصص أو نموذج:
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
@ -85,20 +85,20 @@ openclaw onboard
|
||||
|
||||
- `Local`: نماذج محلية فقط
|
||||
- `Cloud + Local`: نماذج محلية بالإضافة إلى نماذج سحابية
|
||||
- النماذج السحابية مثل `kimi-k2.5:cloud` و`minimax-m2.7:cloud` و`glm-5.1:cloud` لا **تتطلب** `ollama pull` محليًا
|
||||
- النماذج السحابية مثل `kimi-k2.5:cloud` و`minimax-m2.7:cloud` و`glm-5.1:cloud` لا تتطلب `ollama pull` محليًا
|
||||
|
||||
يقترح OpenClaw حاليًا:
|
||||
يقترح OpenClaw حاليًا ما يلي:
|
||||
|
||||
- الافتراضي المحلي: `gemma4`
|
||||
- الإعدادات الافتراضية السحابية: `kimi-k2.5:cloud` و`minimax-m2.7:cloud` و`glm-5.1:cloud`
|
||||
|
||||
5. إذا كنت تفضّل الإعداد اليدوي، فقم بتمكين Ollama مباشرة لـ OpenClaw (أي قيمة تعمل؛ لا يتطلب Ollama مفتاحًا حقيقيًا):
|
||||
5. إذا كنت تفضّل الإعداد اليدوي، ففعّل Ollama لـ OpenClaw مباشرةً (أي قيمة تعمل؛ إذ لا يتطلب Ollama مفتاحًا حقيقيًا):
|
||||
|
||||
```bash
|
||||
# تعيين متغير البيئة
|
||||
export OLLAMA_API_KEY="ollama-local"
|
||||
|
||||
# أو التكوين في ملف التكوين
|
||||
# أو التهيئة في ملف الإعداد
|
||||
openclaw config set models.providers.ollama.apiKey "ollama-local"
|
||||
```
|
||||
|
||||
@ -109,7 +109,7 @@ openclaw models list
|
||||
openclaw models set ollama/gemma4
|
||||
```
|
||||
|
||||
7. أو عيّن الإعداد الافتراضي في التكوين:
|
||||
7. أو عيّن الافتراضي في الإعداد:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -121,17 +121,18 @@ openclaw models set ollama/gemma4
|
||||
}
|
||||
```
|
||||
|
||||
## اكتشاف النماذج (الموفّر الضمني)
|
||||
## اكتشاف النماذج (موفر ضمني)
|
||||
|
||||
عندما تعيّن `OLLAMA_API_KEY` (أو ملف تعريف مصادقة) و**لا** تعرّف `models.providers.ollama`، يكتشف OpenClaw النماذج من مثيل Ollama المحلي على `http://127.0.0.1:11434`:
|
||||
عند تعيين `OLLAMA_API_KEY` (أو ملف تعريف مصادقة) و**عدم** تعريف `models.providers.ollama`، يكتشف OpenClaw النماذج من مثيل Ollama المحلي على `http://127.0.0.1:11434`:
|
||||
|
||||
- يستعلم عن `/api/tags`
|
||||
- يستخدم عمليات بحث `/api/show` بأفضل جهد لقراءة `contextWindow` عند توفره
|
||||
- يضع علامة `reasoning` باستخدام استدلال يعتمد على اسم النموذج (`r1` أو `reasoning` أو `think`)
|
||||
- يضبط `maxTokens` على الحد الأقصى الافتراضي للرموز في Ollama المستخدم من قبل OpenClaw
|
||||
- يستخدم عمليات بحث `/api/show` بأفضل جهد لقراءة `contextWindow` واكتشاف القدرات (بما في ذلك الرؤية) عند توفرها
|
||||
- تُعلَّم النماذج التي تُبلغ عن قدرة `vision` عبر `/api/show` على أنها قادرة على التعامل مع الصور (`input: ["text", "image"]`)، لذلك يحقن OpenClaw الصور تلقائيًا في الموجّه لهذه النماذج
|
||||
- يعلّم `reasoning` باستخدام استدلال يعتمد على اسم النموذج (`r1` و`reasoning` و`think`)
|
||||
- يضبط `maxTokens` على الحد الأقصى الافتراضي للرموز في Ollama الذي يستخدمه OpenClaw
|
||||
- يضبط جميع التكاليف على `0`
|
||||
|
||||
يؤدي ذلك إلى تجنب إدخالات النماذج اليدوية مع إبقاء الكتالوج متوافقًا مع مثيل Ollama المحلي.
|
||||
يؤدي ذلك إلى تجنّب الإدخالات اليدوية للنماذج مع إبقاء الفهرس متوافقًا مع مثيل Ollama المحلي.
|
||||
|
||||
لمعرفة النماذج المتاحة:
|
||||
|
||||
@ -140,31 +141,31 @@ ollama list
|
||||
openclaw models list
|
||||
```
|
||||
|
||||
لإضافة نموذج جديد، ما عليك سوى سحبه عبر Ollama:
|
||||
لإضافة نموذج جديد، ما عليك سوى سحبه باستخدام Ollama:
|
||||
|
||||
```bash
|
||||
ollama pull mistral
|
||||
```
|
||||
|
||||
سيتم اكتشاف النموذج الجديد تلقائيًا وسيصبح متاحًا للاستخدام.
|
||||
سيُكتشف النموذج الجديد تلقائيًا ويصبح متاحًا للاستخدام.
|
||||
|
||||
إذا عيّنت `models.providers.ollama` صراحة، فسيتم تخطي الاكتشاف التلقائي، ويجب عليك تعريف النماذج يدويًا (انظر أدناه).
|
||||
إذا عيّنت `models.providers.ollama` صراحةً، فسيتم تخطي الاكتشاف التلقائي ويجب عليك تعريف النماذج يدويًا (انظر أدناه).
|
||||
|
||||
## التكوين
|
||||
## التهيئة
|
||||
|
||||
### إعداد أساسي (اكتشاف ضمني)
|
||||
### الإعداد الأساسي (اكتشاف ضمني)
|
||||
|
||||
أبسط طريقة لتمكين Ollama هي عبر متغير البيئة:
|
||||
أبسط طريقة لتمكين Ollama هي عبر متغير بيئة:
|
||||
|
||||
```bash
|
||||
export OLLAMA_API_KEY="ollama-local"
|
||||
```
|
||||
|
||||
### إعداد صريح (نماذج يدوية)
|
||||
### الإعداد الصريح (نماذج يدوية)
|
||||
|
||||
استخدم التكوين الصريح عندما:
|
||||
استخدم التهيئة الصريحة عندما:
|
||||
|
||||
- يعمل Ollama على مضيف/منفذ آخر.
|
||||
- يكون Ollama يعمل على مضيف أو منفذ آخر.
|
||||
- تريد فرض نوافذ سياق أو قوائم نماذج محددة.
|
||||
- تريد تعريفات نماذج يدوية بالكامل.
|
||||
|
||||
@ -193,11 +194,11 @@ export OLLAMA_API_KEY="ollama-local"
|
||||
}
|
||||
```
|
||||
|
||||
إذا كان `OLLAMA_API_KEY` معيّنًا، فيمكنك حذف `apiKey` من إدخال الموفّر وسيقوم OpenClaw بملئه من أجل فحوصات التوفر.
|
||||
إذا كان `OLLAMA_API_KEY` معينًا، يمكنك حذف `apiKey` من إدخال الموفر وسيقوم OpenClaw بملئه لعمليات التحقق من التوفر.
|
||||
|
||||
### عنوان URL أساسي مخصص (تكوين صريح)
|
||||
### عنوان URL أساسي مخصص (تهيئة صريحة)
|
||||
|
||||
إذا كان Ollama يعمل على مضيف أو منفذ مختلفين (يعطّل التكوين الصريح الاكتشاف التلقائي، لذا عرّف النماذج يدويًا):
|
||||
إذا كان Ollama يعمل على مضيف أو منفذ مختلف (تعطّل التهيئة الصريحة الاكتشاف التلقائي، لذا عرّف النماذج يدويًا):
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -205,8 +206,8 @@ export OLLAMA_API_KEY="ollama-local"
|
||||
providers: {
|
||||
ollama: {
|
||||
apiKey: "ollama-local",
|
||||
baseUrl: "http://ollama-host:11434", // بدون /v1 - استخدم عنوان URL الخاص بـ API الأصلي لـ Ollama
|
||||
api: "ollama", // عيّنه صراحة لضمان سلوك استدعاء الأدوات الأصلي
|
||||
baseUrl: "http://ollama-host:11434", // بدون /v1 - استخدم عنوان URL الأصلي لواجهة Ollama API
|
||||
api: "ollama", // عيّنه صراحةً لضمان سلوك استدعاء الأدوات الأصلي
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -214,12 +215,12 @@ export OLLAMA_API_KEY="ollama-local"
|
||||
```
|
||||
|
||||
<Warning>
|
||||
لا تضف `/v1` إلى عنوان URL. يستخدم المسار `/v1` الوضع المتوافق مع OpenAI، حيث لا يكون استدعاء الأدوات موثوقًا. استخدم عنوان URL الأساسي لـ Ollama من دون لاحقة مسار.
|
||||
لا تضف `/v1` إلى عنوان URL. يستخدم المسار `/v1` وضع التوافق مع OpenAI، حيث لا يكون استدعاء الأدوات موثوقًا. استخدم عنوان URL الأساسي لـ Ollama من دون لاحقة مسار.
|
||||
</Warning>
|
||||
|
||||
### اختيار النموذج
|
||||
|
||||
بمجرد التكوين، ستكون جميع نماذج Ollama الخاصة بك متاحة:
|
||||
بعد اكتمال التهيئة، تصبح جميع نماذج Ollama الخاصة بك متاحة:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -236,21 +237,19 @@ export OLLAMA_API_KEY="ollama-local"
|
||||
|
||||
## النماذج السحابية
|
||||
|
||||
تتيح لك النماذج السحابية تشغيل نماذج مستضافة سحابيًا (على سبيل المثال `kimi-k2.5:cloud` و`minimax-m2.7:cloud` و`glm-5.1:cloud`) إلى جانب نماذجك المحلية.
|
||||
تتيح لك النماذج السحابية تشغيل النماذج المستضافة سحابيًا (مثل `kimi-k2.5:cloud` و`minimax-m2.7:cloud` و`glm-5.1:cloud`) إلى جانب نماذجك المحلية.
|
||||
|
||||
لاستخدام النماذج السحابية، اختر وضع **Cloud + Local** أثناء الإعداد. يتحقق المعالج مما إذا كنت قد سجلت الدخول ويفتح تدفق تسجيل دخول عبر المتصفح عند الحاجة. إذا تعذر التحقق من المصادقة، فسيعود المعالج إلى الإعدادات الافتراضية للنماذج المحلية.
|
||||
لاستخدام النماذج السحابية، اختر وضع **Cloud + Local** أثناء الإعداد. يتحقق المعالج مما إذا كنت قد سجلت الدخول ويفتح تدفق تسجيل دخول عبر المتصفح عند الحاجة. إذا تعذر التحقق من المصادقة، يعود المعالج إلى الإعدادات الافتراضية للنماذج المحلية.
|
||||
|
||||
يمكنك أيضًا تسجيل الدخول مباشرة على [ollama.com/signin](https://ollama.com/signin).
|
||||
يمكنك أيضًا تسجيل الدخول مباشرةً على [ollama.com/signin](https://ollama.com/signin).
|
||||
|
||||
## Ollama Web Search
|
||||
|
||||
يدعم OpenClaw أيضًا **Ollama Web Search** كموفّر
|
||||
`web_search` مضمّن.
|
||||
يدعم OpenClaw أيضًا **Ollama Web Search** كموفر `web_search` مضمّن.
|
||||
|
||||
- يستخدم مضيف Ollama المهيأ لديك (`models.providers.ollama.baseUrl` عند
|
||||
تعيينه، وإلا `http://127.0.0.1:11434`).
|
||||
- لا يحتاج إلى مفتاح.
|
||||
- يتطلب أن يكون Ollama قيد التشغيل وأن تكون قد سجلت الدخول عبر `ollama signin`.
|
||||
- يستخدم مضيف Ollama المهيأ لديك (`models.providers.ollama.baseUrl` عند تعيينه، وإلا `http://127.0.0.1:11434`).
|
||||
- لا يتطلب مفتاحًا.
|
||||
- يتطلب أن يكون Ollama قيد التشغيل وأن تكون قد سجلت الدخول باستخدام `ollama signin`.
|
||||
|
||||
اختر **Ollama Web Search** أثناء `openclaw onboard` أو
|
||||
`openclaw configure --section web`، أو عيّن:
|
||||
@ -267,13 +266,13 @@ export OLLAMA_API_KEY="ollama-local"
|
||||
}
|
||||
```
|
||||
|
||||
للحصول على تفاصيل الإعداد والسلوك الكاملة، راجع [Ollama Web Search](/ar/tools/ollama-search).
|
||||
للحصول على تفاصيل الإعداد والسلوك كاملة، راجع [Ollama Web Search](/ar/tools/ollama-search).
|
||||
|
||||
## متقدم
|
||||
|
||||
### نماذج الاستدلال
|
||||
|
||||
يعامل OpenClaw النماذج ذات الأسماء مثل `deepseek-r1` أو `reasoning` أو `think` على أنها قادرة على الاستدلال افتراضيًا:
|
||||
يتعامل OpenClaw مع النماذج ذات الأسماء مثل `deepseek-r1` أو `reasoning` أو `think` على أنها قادرة على الاستدلال افتراضيًا:
|
||||
|
||||
```bash
|
||||
ollama pull deepseek-r1:32b
|
||||
@ -283,17 +282,17 @@ ollama pull deepseek-r1:32b
|
||||
|
||||
Ollama مجاني ويعمل محليًا، لذا يتم تعيين جميع تكاليف النماذج إلى $0.
|
||||
|
||||
### تكوين البث
|
||||
### تهيئة البث
|
||||
|
||||
يستخدم تكامل OpenClaw مع Ollama **API الأصلي لـ Ollama** (`/api/chat`) افتراضيًا، وهو يدعم بالكامل البث واستدعاء الأدوات في الوقت نفسه. لا يلزم أي تكوين خاص.
|
||||
يستخدم تكامل OpenClaw مع Ollama **واجهة Ollama API الأصلية** (`/api/chat`) افتراضيًا، وهي تدعم بالكامل البث واستدعاء الأدوات في الوقت نفسه. لا حاجة إلى أي تهيئة خاصة.
|
||||
|
||||
#### الوضع القديم المتوافق مع OpenAI
|
||||
#### وضع التوافق القديم مع OpenAI
|
||||
|
||||
<Warning>
|
||||
**استدعاء الأدوات ليس موثوقًا في الوضع المتوافق مع OpenAI.** استخدم هذا الوضع فقط إذا كنت بحاجة إلى تنسيق OpenAI من أجل وكيل ولا تعتمد على سلوك استدعاء الأدوات الأصلي.
|
||||
**استدعاء الأدوات غير موثوق في وضع التوافق مع OpenAI.** استخدم هذا الوضع فقط إذا كنت بحاجة إلى تنسيق OpenAI لوكيل وسيط ولا تعتمد على سلوك استدعاء الأدوات الأصلي.
|
||||
</Warning>
|
||||
|
||||
إذا كنت بحاجة إلى استخدام نقطة النهاية المتوافقة مع OpenAI بدلًا من ذلك (مثلًا خلف وكيل لا يدعم إلا تنسيق OpenAI)، فعيّن `api: "openai-completions"` صراحة:
|
||||
إذا كنت تحتاج إلى استخدام نقطة النهاية المتوافقة مع OpenAI بدلًا من ذلك (على سبيل المثال، خلف وكيل وسيط لا يدعم سوى تنسيق OpenAI)، فعيّن `api: "openai-completions"` صراحةً:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -311,9 +310,9 @@ Ollama مجاني ويعمل محليًا، لذا يتم تعيين جميع ت
|
||||
}
|
||||
```
|
||||
|
||||
قد لا يدعم هذا الوضع البث + استدعاء الأدوات في الوقت نفسه. قد تحتاج إلى تعطيل البث باستخدام `params: { streaming: false }` في تكوين النموذج.
|
||||
قد لا يدعم هذا الوضع البث + استدعاء الأدوات في الوقت نفسه. قد تحتاج إلى تعطيل البث باستخدام `params: { streaming: false }` في تهيئة النموذج.
|
||||
|
||||
عند استخدام `api: "openai-completions"` مع Ollama، يحقن OpenClaw القيمة `options.num_ctx` افتراضيًا حتى لا يعود Ollama بصمت إلى نافذة سياق قدرها 4096. إذا كان وكيلك/خادمك الصاعد يرفض حقول `options` غير المعروفة، فعطّل هذا السلوك:
|
||||
عند استخدام `api: "openai-completions"` مع Ollama، يحقن OpenClaw `options.num_ctx` افتراضيًا حتى لا يعود Ollama بصمت إلى نافذة سياق قدرها 4096. إذا كان الوكيل الوسيط/الجهة العليا يرفض حقول `options` غير المعروفة، فعطّل هذا السلوك:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -333,7 +332,7 @@ Ollama مجاني ويعمل محليًا، لذا يتم تعيين جميع ت
|
||||
|
||||
### نوافذ السياق
|
||||
|
||||
بالنسبة إلى النماذج المكتشفة تلقائيًا، يستخدم OpenClaw نافذة السياق التي يبلغ عنها Ollama عند توفرها، وإلا فإنه يعود إلى نافذة سياق Ollama الافتراضية المستخدمة من قبل OpenClaw. يمكنك تجاوز `contextWindow` و`maxTokens` في تكوين الموفّر الصريح.
|
||||
بالنسبة إلى النماذج المكتشفة تلقائيًا، يستخدم OpenClaw نافذة السياق التي يبلغ عنها Ollama عند توفرها، وإلا فإنه يعود إلى نافذة سياق Ollama الافتراضية التي يستخدمها OpenClaw. يمكنك تجاوز `contextWindow` و`maxTokens` في تهيئة الموفر الصريحة.
|
||||
|
||||
## استكشاف الأخطاء وإصلاحها
|
||||
|
||||
@ -345,7 +344,7 @@ Ollama مجاني ويعمل محليًا، لذا يتم تعيين جميع ت
|
||||
ollama serve
|
||||
```
|
||||
|
||||
وتأكد من أن API يمكن الوصول إليه:
|
||||
وتأكد من أن واجهة API قابلة للوصول:
|
||||
|
||||
```bash
|
||||
curl http://localhost:11434/api/tags
|
||||
@ -353,15 +352,15 @@ curl http://localhost:11434/api/tags
|
||||
|
||||
### لا توجد نماذج متاحة
|
||||
|
||||
إذا لم يكن نموذجك مدرجًا، فإما أن:
|
||||
إذا لم يكن نموذجك مدرجًا، فإما:
|
||||
|
||||
- تسحب النموذج محليًا، أو
|
||||
- تعرّف النموذج صراحة في `models.providers.ollama`.
|
||||
- اسحب النموذج محليًا، أو
|
||||
- عرّف النموذج صراحةً في `models.providers.ollama`.
|
||||
|
||||
لإضافة نماذج:
|
||||
|
||||
```bash
|
||||
ollama list # اعرض ما هو مثبّت
|
||||
ollama list # اعرض ما هو مثبت
|
||||
ollama pull gemma4
|
||||
ollama pull gpt-oss:20b
|
||||
ollama pull llama3.3 # أو نموذج آخر
|
||||
@ -381,6 +380,6 @@ ollama serve
|
||||
|
||||
## راجع أيضًا
|
||||
|
||||
- [موفّرات النماذج](/ar/concepts/model-providers) - نظرة عامة على جميع الموفّرين
|
||||
- [موفرو النماذج](/ar/concepts/model-providers) - نظرة عامة على جميع الموفّرين
|
||||
- [اختيار النموذج](/ar/concepts/models) - كيفية اختيار النماذج
|
||||
- [التكوين](/ar/gateway/configuration) - المرجع الكامل للتكوين
|
||||
- [التهيئة](/ar/gateway/configuration) - المرجع الكامل للتهيئة
|
||||
|
||||
Loading…
Reference in New Issue
Block a user