DeepSeek Harness: إضافات المجتمع
آخر تحديث: 2026-08-31
"كل شيء مكون إضافي" في DSH ليس مجرد بنية تقنية — بل رؤية نظام بيئي. الفريق الرسمي يوفر الأدوات الأساسية، بينما المجتمع يساهم بإمكانيات غير محدودة. من عمليات قواعد البيانات إلى تكامل API، من تحليل الكود إلى النشر الآلي، إضافات المجتمع توسع باستمرار حدود قدرات DSH.
📋 المتطلبات المسبقة: إكمال 06-tools.md، إلمام بأساسيات الأدوات والإضافات
1. ما ستتعلمه
- سوق الإضافات وموضوع dsh-plugin على GitHub
- تثبيت وإدارة إضافات المجتمع
- إضافات المجتمع الموصى بها
- طرق تقييم أمان الإضافات
- تدفق تطوير ونشر الإضافات
2. سوق الإضافات والاكتشاف
(1) طرق اكتشاف الإضافات
لا يملك DSH سوق إضافات مركزي. تُكتشف الإضافات عبر:
| القناة | الوصف | URL |
|---|---|---|
| موضوع GitHub | مستودعات موسومة بـ dsh-plugin |
github.com/topics/dsh-plugin |
| التوثيق الرسمي | قائمة إضافات موصى بها | docs.deepseek.com/dsh/plugins |
| منتدى المجتمع | مشاركة ونقاش المستخدمين | community.deepseek.com |
| بحث npm | حزم ببادئة @dsh-plugin/ |
npmjs.com/search?q=@dsh-plugin |
(2) اصطلاح تسمية الإضافات
تتبع إضافات المجتمع اصطلاح تسمية موحد:
اسم حزمة npm: @dsh-plugin/plugin-name
اسم مستودع GitHub: dsh-plugin-name
اسم مرجع الإعداد: plugin-name
أمثلة:
npm: @dsh-plugin/database → GitHub: dsh-plugin-database
npm: @dsh-plugin/git-enhanced → GitHub: dsh-plugin-git-enhanced
npm: @dsh-plugin/docker → GitHub: dsh-plugin-docker
(3) البحث عن إضافات المجتمع
▶ مثال 1: البحث عن إضافات باستخدام GitHub CLI
# البحث عن مستودعات بموضوع dsh-plugin
gh repo list --topic dsh-plugin --limit 20
# الترتيب حسب النجوم
gh search repos "dsh-plugin" --sort stars --limit 20
▶ مثال 2: البحث عن إضافات باستخدام npm
# البحث عن حزم إضافات dsh
npm search @dsh-plugin
# عرض تفاصيل إضافة محددة
npm info @dsh-plugin/database
3. تثبيت إضافات المجتمع
(1) طرق التثبيت
يدعم DSH ثلاث طرق لتثبيت الإضافات:
| الطريقة | الأمر | الوصف |
|---|---|---|
| تثبيت npm | dsh plugin add @dsh-plugin/name |
تنزيل تلقائي من npm |
| تثبيت GitHub | dsh plugin add github:user/repo |
تثبيت من GitHub |
| مسار محلي | dsh plugin add ./path/to/plugin |
تثبيت إضافة محلية المطورة |
▶ مثال 3: تثبيت إضافة قاعدة بيانات
# التثبيت من npm
dsh plugin add @dsh-plugin/database
# مخرجات التثبيت
📦 Installing @dsh-plugin/database@1.2.0...
✅ Plugin installed successfully!
Available tools:
- database.query: Execute SQL queries
- database.migrate: Run database migrations
- database.schema: Inspect database schema
(2) التثبيت من المصدر
# التثبيت من مستودع GitHub
dsh plugin add github:alice/dsh-plugin-redis
# تثبيت فرع محدد
dsh plugin add github:alice/dsh-plugin-redis#feature/cluster-support
# تثبيت وسُم إصدار محدد
dsh plugin add github:alice/dsh-plugin-redis#v2.1.0
(3) إدارة الإضافات المثبتة
▶ مثال 4: أوامر إدارة الإضافات
# عرض الإضافات المثبتة
dsh plugin list
# المخرجات
📦 Installed Plugins:
@dsh-plugin/database v1.2.0 ✅ enabled
@dsh-plugin/redis v2.1.0 ✅ enabled
@dsh-plugin/git-enhanced v0.8.0 ⚠️ disabled
# تعطيل إضافة (بدون إلغاء التثبيت)
dsh plugin disable @dsh-plugin/redis
# تفعيل إضافة
dsh plugin enable @dsh-plugin/redis
# إلغاء تثبيت إضافة
dsh plugin remove @dsh-plugin/database
# تحديث إضافة
dsh plugin update @dsh-plugin/database
(4) إدارة الإضافات عبر ملف الإعداد
يمكن أيضًا إدارة الإضافات عبر ملف الإعداد:
# dsh.config.yaml
plugins:
# إضافة npm
- name: "@dsh-plugin/database"
version: "^1.2.0"
enabled: true
config:
default_connection: "postgresql://localhost/mydb"
# إضافة GitHub
- name: "@dsh-plugin/redis"
source: "github:alice/dsh-plugin-redis"
version: "v2.1.0"
enabled: true
config:
host: "localhost"
port: 6379
# إضافة محلية
- name: "my-custom-tool"
source: "./plugins/my-custom-tool"
enabled: true
4. إضافات المجتمع الموصى بها
(1) فئة قواعد البيانات
| الإضافة | الوظيفة | نجوم | الحالة |
|---|---|---|---|
| @dsh-plugin/database | استعلامات SQL، الترحيل، فحص Schema | 2.1k | ✅ نشطة |
| @dsh-plugin/redis | عمليات Redis، إدارة ذاكرة التخزين المؤقت | 890 | ✅ نشطة |
| @dsh-plugin/mongodb | عمليات مستندات MongoDB | 650 | ✅ نشطة |
| @dsh-plugin/prisma | تكامل Prisma ORM | 430 | ⚠️ تجريبية |
▶ مثال 5: استخدام إضافة قاعدة البيانات
# dsh.config.yaml
plugins:
- name: "@dsh-plugin/database"
config:
connections:
main: "postgresql://localhost/myapp"
analytics: "postgresql://localhost/analytics"
يمكن لـ Agent الاستعلام عن قاعدة البيانات مباشرة:
👤 Alice: استعلم عن 10 مستخدمين مسجلين مؤخرًا من جدول users
🤖 Agent:
🔧 استخدام أداة: database.query
→ الاتصال: main
→ الاستعلام: SELECT * FROM users ORDER BY created_at DESC LIMIT 10
→ النتائج: 10 صفوف
(2) فئة DevOps
| الإضافة | الوظيفة | نجوم | الحالة |
|---|---|---|---|
| @dsh-plugin/docker | إدارة حاويات Docker | 1.5k | ✅ نشطة |
| @dsh-plugin/k8s | عمليات موارد Kubernetes | 980 | ✅ نشطة |
| @dsh-plugin/ci | إدارة خطوط CI/CD | 560 | ✅ نشطة |
| @dsh-plugin/terraform | إدارة البنية التحتية IaC | 340 | ⚠️ تجريبية |
(3) فئة جودة الكود
| الإضافة | الوظيفة | نجوم | الحالة |
|---|---|---|---|
| @dsh-plugin/linter | تكامل ESLint/Pylint | 1.8k | ✅ نشطة |
| @dsh-plugin/test-runner | تشغيل الاختبارات والتغطية | 1.2k | ✅ نشطة |
| @dsh-plugin/code-metrics | تحليل تعقيد الكود | 780 | ✅ نشطة |
| @dsh-plugin/deps-audit | تدقيق أمان التبعيات | 920 | ✅ نشطة |
▶ مثال 6: استخدام إضافة Linter
👤 Bob: تحقق من جودة الكود في دليل src/
🤖 Agent:
🔧 استخدام أداة: linter.check
→ الدليل: src/
→ الإعداد: .eslintrc.json
→ النتائج: 12 تحذيرًا، 3 أخطاء
الأخطاء:
- src/utils/format.ts:45 — نوع any غير متوقع
- src/routes/api.ts:128 — نوع إرجاع مفقود
- src/models/user.ts:23 — استيراد غير مستخدم
(4) فئة تكامل API
| الإضافة | الوظيفة | نجوم | الحالة |
|---|---|---|---|
| @dsh-plugin/github | عمليات GitHub API | 2.3k | ✅ نشطة |
| @dsh-plugin/jira | إدارة مهام JIRA | 560 | ✅ نشطة |
| @dsh-plugin/slack | إرسال رسائل Slack | 890 | ✅ نشطة |
| @dsh-plugin/notion | عمليات صفحات Notion | 450 | ✅ نشطة |
5. تقييم أمان الإضافات
(1) إطار التقييم
قم دائمًا بإجراء تقييم أمان قبل تثبيت أي إضافة مجتمعية:
graph TD
A[اكتشاف إضافة] --> B[مراجعة الكود المصدري]
B --> C[فحص التبعيات]
C --> D[مراجعة الصلاحيات]
D --> E[تقييم حالة الصيانة]
E --> F{هل اجتاز التقييم الأمني؟}
F -->|نعم| G[تثبيت واستخدام]
F -->|لا| H[تخلي أو أصلح قبل الاستخدام]
(2) قائمة مراجعة التقييم
| عنصر التحقق | الوصف | مستوى المخاطر |
|---|---|---|
| مراجعة الكود المصدري | اقرأ الكود الرئيسي للتأكد من عدم وجود منطق خبيث | 🔴 حرج |
| فحص التبعيات | تحقق من أن التبعيات في package.json موثوقة | 🔴 حرج |
| مراجعة الصلاحيات | ما صلاحيات الملف/الشبكة/النظام التي تطلبها الإضافة | 🟡 مهم |
| حالة الصيانة | تاريخ آخر تحديث، سرعة استجابة المشاكل | 🟡 مهم |
| تقييم المجتمع | نجوم GitHub، التنزيلات، تعليقات المستخدمين | 🟢 مرجعي |
| الترخيص | نوع ترخيص المصدر المفتوح وقيوده | 🟢 مرجعي |
(3) نقاط مراجعة الكود المصدري الرئيسية
▶ مثال 7: مراجعة كود مصدري إضافة
# استنساخ مستودع الإضافة للمراجعة
git clone https://github.com/user/dsh-plugin-example.git
cd dsh-plugin-example
# فحص ملف الإدخال الرئيسي
cat src/index.ts
# فحص التبعيات
cat package.json | grep -A 20 "dependencies"
# البحث عن طلبات شبكة مشبوهة
grep -r "fetch\|http\|axios\|request" src/
# البحث عن عمليات نظام الملفات
grep -r "fs\.\|readFile\|writeFile\|exec\|spawn" src/
# البحث عن وصول متغيرات البيئة
grep -r "process\.env" src/
(4) نظام صلاحيات الإضافات
يجب على إضافات DSH تعريف الصلاحيات المطلوبة:
// تعريف صلاحيات الإضافة
export default definePlugin({
name: 'dsh-plugin-example',
permissions: [
'fs.read', // قراءة الملفات
'fs.write', // كتابة الملفات
'network.outbound', // طلبات شبكة صادرة
'shell.execute', // تنفيذ أوامر Shell
'env.read' // قراءة متغيرات البيئة
],
// ...
});
عند التثبيت، يعرض DSH طلبات الصلاحيات:
📦 Installing @dsh-plugin/example@1.0.0
⚠️ هذه الإضافة تطلب الصلاحيات التالية:
✅ fs.read — قراءة الملفات في مساحة العمل
⚠️ network.outbound — إجراء طلبات HTTP صادرة
🔴 shell.execute — تنفيذ أوامر shell
هل تتابع التثبيت؟ (y/n)
6. تطوير ونشر الإضافات
(1) قالب تطوير الإضافات
▶ مثال 8: إنشاء إضافة باستخدام القالب
# استخدام القالب الرسمي
npx @deepseek-ai/create-dsh-plugin my-plugin
# المخرجات
📁 Creating plugin: my-plugin
├── src/
│ └── index.ts
├── package.json
├── tsconfig.json
└── README.md
✅ Plugin scaffolded! Run:
cd my-plugin
npm install
npm run dev
(2) بنية مشروع الإضافة
dsh-plugin-my-plugin/
├── src/
│ ├── index.ts # ملف إدخال الإضافة الرئيسي
│ ├── tools/ # تعريفات الأدوات
│ │ └── my-tool.ts
│ └── services/ # تعريفات الخدمات
│ └── my-service.ts
├── package.json
├── tsconfig.json
├── dsh-plugin.yaml # بيانات الإضافة الوصفية
└── README.md
(3) النشر على npm
# البناء
npm run build
# النشر
npm publish --access public
# إضافة موضوع GitHub
# في إعدادات مستودع GitHub، أضف موضوع: dsh-plugin
(4) بيانات dsh-plugin.yaml الوصفية
name: dsh-plugin-my-plugin
version: 1.0.0
description: تعمّق في نظام إضافات مجتمع DSH — اكتشف وثبّت وأعد وقيّم الإضافات الخارجية، تعلّم أفضل ممارسات إدارة إصدارات الإضافات وتحديث التبعيات
author: "Alice"
license: "MIT"
repository: "https://github.com/alice/dsh-plugin-my-plugin"
keywords:
- dsh-plugin
- database
- tools
permissions:
- fs.read
- network.outbound
compatibility:
dsh: ">=0.5.0"
❓ أسئلة شائعة
dsh plugin disable)، ثم تحقق من سجلات الأخطاء. إذا كانت مشكلة توافق، جرّب تثبيت إصدار متوافق أو تواصل مع مؤلف الإضافة.priority في الإعداد.dsh plugin add ./path/to/plugin لتثبيت إضافات محلية، أو اضبط سجل npm داخلي.dsh plugin update <name> لتحديث إضافة واحدة، أو dsh plugin update --all لتحديث جميع الإضافات. نوصي بنسخ مساحة عملك احتياطيًا قبل التحديث.📖 ملخص
- إضافات المجتمع تُكتشف عبر موضوع GitHub
dsh-pluginوبادئة npm@dsh-plugin/ - ثلاث طرق تثبيت: npm، GitHub، مسار محلي
- فئات الإضافات الشائعة: قواعد البيانات، DevOps، جودة الكود، تكامل API
- ستة عوامل تقييم أمني: الكود المصدري، التبعيات، الصلاحيات، حالة الصيانة، تقييم المجتمع، الترخيص
- يجب على الإضافات تعريف الصلاحيات المطلوبة؛ تُعرض طلبات الصلاحيات عند التثبيت
- طوّر إضافات باستخدام قالب
create-dsh-plugin؛ انشر على npm + GitHub
📝 تمارين
1. ⭐ أساسي: ابحث عن موضوع dsh-plugin على GitHub، اذكر 3 إضافات تثير اهتمامك أكثر، وصف وظائفها ولماذا تريد استخدامها.
2. ⭐⭐ متوسط: ثبّت إضافة مجتمعية (مثل @dsh-plugin/database)، أعد معلومات الاتصال، واجعل Agent يستعلم عن بيانات عبر الإضافة. سجّل عملية التثبيت والإعداد.
3. ⭐⭐⭐ تحدٍ: طوّر إضافة DSH بسيطة (مثل أداة "استعلام الوقت الحالي")، استخدم قالب create-dsh-plugin لإنشاء المشروع، اكتب منطق الأداة، ثبّتها محليًا، واجعل Agent يستدعيها بنجاح.