DeepSeek Harness: إضافات المجتمع

آخر تحديث: 2026-08-31

"كل شيء مكون إضافي" في DSH ليس مجرد بنية تقنية — بل رؤية نظام بيئي. الفريق الرسمي يوفر الأدوات الأساسية، بينما المجتمع يساهم بإمكانيات غير محدودة. من عمليات قواعد البيانات إلى تكامل API، من تحليل الكود إلى النشر الآلي، إضافات المجتمع توسع باستمرار حدود قدرات DSH.

💡 نصيحة: إضافات المجتمع متفاوتة الجودة. قيّم الأمان دائمًا قبل التثبيت — راجع الكود المصدري، تحقق من حالة الصيانة، افحص التبعيات. التثبيت بدون مراجعة مثل إعطاء مفتاح بابك لغريب.

📋 المتطلبات المسبقة: إكمال 06-tools.md، إلمام بأساسيات الأدوات والإضافات

1. ما ستتعلمه

DSH مقابل الأطر التقليدية


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) اصطلاح تسمية الإضافات

تتبع إضافات المجتمع اصطلاح تسمية موحد:

TEXT 📖 للعرض فقط
اسم حزمة npm: @dsh-plugin/plugin-name
اسم مستودع GitHub: dsh-plugin-name
اسم مرجع الإعداد: plugin-name

أمثلة:

TEXT 📖 للعرض فقط
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

BASH
# البحث عن مستودعات بموضوع dsh-plugin
gh repo list --topic dsh-plugin --limit 20

# الترتيب حسب النجوم
gh search repos "dsh-plugin" --sort stars --limit 20

▶ مثال 2: البحث عن إضافات باستخدام npm

BASH
# البحث عن حزم إضافات 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: تثبيت إضافة قاعدة بيانات

BASH
# التثبيت من 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) التثبيت من المصدر

BASH
# التثبيت من مستودع 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: أوامر إدارة الإضافات

BASH
# عرض الإضافات المثبتة
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) إدارة الإضافات عبر ملف الإعداد

يمكن أيضًا إدارة الإضافات عبر ملف الإعداد:

YAML
# 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: استخدام إضافة قاعدة البيانات

YAML
# dsh.config.yaml
plugins:
  - name: "@dsh-plugin/database"
    config:
      connections:
        main: "postgresql://localhost/myapp"
        analytics: "postgresql://localhost/analytics"

يمكن لـ Agent الاستعلام عن قاعدة البيانات مباشرة:

TEXT 📖 للعرض فقط
👤 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

TEXT 📖 للعرض فقط
👤 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) إطار التقييم

قم دائمًا بإجراء تقييم أمان قبل تثبيت أي إضافة مجتمعية:

100%
graph TD
    A[اكتشاف إضافة] --> B[مراجعة الكود المصدري]
    B --> C[فحص التبعيات]
    C --> D[مراجعة الصلاحيات]
    D --> E[تقييم حالة الصيانة]
    E --> F{هل اجتاز التقييم الأمني؟}
    F -->|نعم| G[تثبيت واستخدام]
    F -->|لا| H[تخلي أو أصلح قبل الاستخدام]

(2) قائمة مراجعة التقييم

عنصر التحقق الوصف مستوى المخاطر
مراجعة الكود المصدري اقرأ الكود الرئيسي للتأكد من عدم وجود منطق خبيث 🔴 حرج
فحص التبعيات تحقق من أن التبعيات في package.json موثوقة 🔴 حرج
مراجعة الصلاحيات ما صلاحيات الملف/الشبكة/النظام التي تطلبها الإضافة 🟡 مهم
حالة الصيانة تاريخ آخر تحديث، سرعة استجابة المشاكل 🟡 مهم
تقييم المجتمع نجوم GitHub، التنزيلات، تعليقات المستخدمين 🟢 مرجعي
الترخيص نوع ترخيص المصدر المفتوح وقيوده 🟢 مرجعي

(3) نقاط مراجعة الكود المصدري الرئيسية

▶ مثال 7: مراجعة كود مصدري إضافة

BASH
# استنساخ مستودع الإضافة للمراجعة
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 تعريف الصلاحيات المطلوبة:

TYPESCRIPT
// تعريف صلاحيات الإضافة
export default definePlugin({
  name: 'dsh-plugin-example',
  permissions: [
    'fs.read',        // قراءة الملفات
    'fs.write',       // كتابة الملفات
    'network.outbound', // طلبات شبكة صادرة
    'shell.execute',  // تنفيذ أوامر Shell
    'env.read'        // قراءة متغيرات البيئة
  ],
  // ...
});

عند التثبيت، يعرض DSH طلبات الصلاحيات:

TEXT 📖 للعرض فقط
📦 Installing @dsh-plugin/example@1.0.0

⚠️ هذه الإضافة تطلب الصلاحيات التالية:
  ✅ fs.read        — قراءة الملفات في مساحة العمل
  ⚠️ network.outbound — إجراء طلبات HTTP صادرة
  🔴 shell.execute  — تنفيذ أوامر shell

هل تتابع التثبيت؟ (y/n)

6. تطوير ونشر الإضافات

(1) قالب تطوير الإضافات

▶ مثال 8: إنشاء إضافة باستخدام القالب

BASH
# استخدام القالب الرسمي
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) بنية مشروع الإضافة

TEXT 📖 للعرض فقط
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

BASH
# البناء
npm run build

# النشر
npm publish --access public

# إضافة موضوع GitHub
# في إعدادات مستودع GitHub، أضف موضوع: dsh-plugin

(4) بيانات dsh-plugin.yaml الوصفية

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 تُنشر من المطورين بشكل مستقل ولا تُراجع رسميًا. قيّم الأمان بنفسك دائمًا قبل التثبيت.
س ماذا أفعل إذا تسببت إضافة في أخطاء بعد التثبيت؟
ج عطّل الإضافة أولاً (dsh plugin disable)، ثم تحقق من سجلات الأخطاء. إذا كانت مشكلة توافق، جرّب تثبيت إصدار متوافق أو تواصل مع مؤلف الإضافة.
س هل يمكن أن تتعارض إضافات متعددة؟
ج ربما. إذا سجلت إضافتان أدوات بنفس الاسم، يستخدم DSH أول واحدة محملة. يمكنك التحكم في ترتيب التحميل بحقل priority في الإعداد.
س هل يمكنني استخدام إضافات خاصة داخل شركتي؟
ج نعم. استخدم dsh plugin add ./path/to/plugin لتثبيت إضافات محلية، أو اضبط سجل npm داخلي.
س كيف أُحدّث الإضافات؟
ج شغّل dsh plugin update <name> لتحديث إضافة واحدة، أو dsh plugin update --all لتحديث جميع الإضافات. نوصي بنسخ مساحة عملك احتياطيًا قبل التحديث.
س كيف أعرف إذا كانت إضافة لا تزال مُصانة؟
ج تحقق من تاريخ آخر commit في مستودع GitHub، وسرعة استجابة المشاكل، وتكرار النشر على npm. إضافات بدون تحديثات منذ أكثر من 6 أشهر يجب استخدامها بحذر.

📖 ملخص


📝 تمارين

1. ⭐ أساسي: ابحث عن موضوع dsh-plugin على GitHub، اذكر 3 إضافات تثير اهتمامك أكثر، وصف وظائفها ولماذا تريد استخدامها.

2. ⭐⭐ متوسط: ثبّت إضافة مجتمعية (مثل @dsh-plugin/database)، أعد معلومات الاتصال، واجعل Agent يستعلم عن بيانات عبر الإضافة. سجّل عملية التثبيت والإعداد.

3. ⭐⭐⭐ تحدٍ: طوّر إضافة DSH بسيطة (مثل أداة "استعلام الوقت الحالي")، استخدم قالب create-dsh-plugin لإنشاء المشروع، اكتب منطق الأداة، ثبّتها محليًا، واجعل Agent يستدعيها بنجاح.

Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%