عن المشروع
Context (supa-media/context) هو بوابة MCP تمنح عملاء الذكاء الاصطناعي — مثل ChatGPT وClaude وCodex وNotion AI وغيرهم — نقطة نهاية واحدة يمكنهم من خلالها القراءة والكتابة في قاعدة معرفية شخصية. قاعدة المعرفة هذه عبارة عن ملفات Markdown بسيطة مخزنة في حساب يتحكم فيه المستخدم: Dropbox، أو Cloudflare R2، أو AWS S3، أو Backblaze B2، أو أي وحدة تخزين متوافقة مع S3.
يصف ملف README ثلاث وحدات مرتبطة: الـ **brain** (سياق شخصي يتم مخاطبته باسمك)، والـ **workspace** (سياق مشترك مع الآخرين)، والـ **context** وهو اتحاد الـ brain الخاص بك، والـ brains المشتركة معك، ومساحات العمل الخاصة بك. الهدف من ربط نقطة نهاية واحدة هو تجنيب كل مساعد جديد عملية إعادة تعليمه بمشاريعك وقراراتك وتاريخك.
## مستويان (Two planes)
يفصل التصميم بين مستوى التحكم (control plane) ومستوى البيانات (data plane)، ويتعامل ملف README مع هذا التقسيم كجوهر للمشروع.
- **مستوى التحكم** (`apps/convex`) — الحسابات، مساحات العمل، منح OAuth وربط التخزين. ويُذكر أنه يحمل البيانات الوصفية فقط: لا ملاحظات، ولا نسخة ثانية.
- **مستوى البيانات** — مجلد Dropbox الخاص بالمستخدم أو حاوية تخزين الكائنات (object-storage bucket). يؤدي حذف حساب Context إلى مسح مستوى التحكم بينما يظل مستوى البيانات دون مساس.
توصَف بوابة MCP (`apps/mcp`) بأنها Cloudflare Worker مستقل يمكن للمستخدم نشره إذا اختفت الخدمة المستضافة، مع استمرار عمل الحاوية.
## ادعاءات التخزين وقابلية النقل
- الملفات البسيطة هي المرجع الأساسي: ملفات Markdown قابلة للقراءة في Obsidian، أو قابلة للبحث عبر greppable، أو قابلة للإزالة باستخدام `rclone`؛ لا توجد قاعدة بيانات مملوكة كنسخة وحيدة.
- يحافظ التخزين على شكله الأصلي — مجلد عادي في Dropbox، أو ملكية على مستوى الحاوية في تخزين الكائنات، دون إعادة كتابة المفاتيح أو تسمية المسارات. ويُذكر أن الـ brain الموجود مسبقاً يمكن ربطه دون الحاجة إلى ترحيل البيانات.
- توصف الفهارس (ذاكرة التخزين المؤقت للبحث، والـ embeddings) بأنها مشتقات قابلة للاستبدال يمكن إعادة بنائها من الملفات.
## الأدوات والاتفاقيات
**`orient`** هي أول أداة يُطلب من العملاء المتصلين استدعاؤها. تعيد الصفحة الرئيسية، والملاحظات التي تم تعديلها مؤخراً، وخريطة للمجلدات مع عدد الملاحظات. معظم مخرجاتها مشتقة من الحاوية ويتم إعادة بنائها عند كل استدعاء. يشير ملف README إلى أن هذه التعليمات توجد في الاتصال وليس في العميل، لذا يُقترح استخدام تعليمات مخصصة من جانب العميل، أو موجه نظام (system prompt)، أو ملف قواعد لجعلها دائمة.
**`index.md`** هو ملف Markdown عادي في جذر الحاوية، يملكه المستخدم. يقوم الإعداد بكتابة نسخة أولية؛ ويُطلب من الوكلاء (agents) الإضافة إليها بدلاً من استبدالها وذكر التغييرات أولاً. يمكن وضع ملف `index-private.md` اختياري بجانبه للمحتوى المخصص للاتصال الشخصي فقط. ربط حاوية تحتوي بالفعل على ملاحظات لا يؤدي إلى مسح أي شيء، لذا قد لا يحتوي الـ brain المستورد على `index.md` وسيوضح ذلك أمر `orient`.
**`save_context`** هي أداة يستدعيها الوكيل في نهاية الجلسة. سلوكها محدد من قبل المستخدم من خلال قسم `## Save context` في ملف `index.md` مع سطر `destination:` وأي إجراء يرغب المستخدم في اتباعه.
**خطاف نهاية الجلسة (Session-end hook)** — يقوم الأمر `npx -y @supa-media/context-hook install` بتسجيل الدخول مرة واحدة وإضافة خطاف `SessionEnd` إلى Claude Code بحيث تذهب الرسائل المرئية للمستخدم في الجلسة إلى `0-inbox/` تلقائياً. يذكر ملف README أنه يطلب الوصول إلى الالتقاط فقط، ولا يمكنه قراءة الملاحظات، ويظهر في الاتصالات ويمكن إلغاؤه بشكل منفصل. المصدر موجود في `packages/hook`.
## التنظيم
يقوم الإعداد بإنشاء هيكل على نمط PARA — `0-inbox/`, `1-projects/`, `2-areas/`, `3-resources/`, `4-archive/` — ويُقدم كاقتراح وليس كمخطط إلزامي. تعمل الأدوات على المسارات، لذا يُذكر أن أي هيكل يوفره المستخدم سيعمل بنفس الطريقة.
## الخصوصية
كل ملاحظة تكون إما `private` (خاصة) أو `team` (فريق). يتم التصريح عن افتراضات المجلدات في بيان `privacy.md` في جذر الحاوية، ويكون مرئياً للمالك ويتم فرضه من جانب الخادم قبل إرجاع المحتوى، مع قدرة الملاحظات الفردية على تجاوز إعدادات مجلدها في أي من الاتجاهين. يتم تعريف `team` على أنه أشخاص مسمون، وليس الإنترنت العام أبداً؛ لا توجد طبقة مجهولة.
## تخطيط المستودع
| المسار | الغرض |
| --- | --- |
| `apps/convex/` | مستوى التحكم — الحسابات، مساحات العمل، ربط التخزين، المنح |
| `apps/mobile/` | تطبيق Expo (iOS, Android, web) — التهيئة ولوحة التحكم |
| `apps/mcp/` | بوابة MCP Worker — الأدوات، محرك الخصوصية، محول التخزين |
| `packages/shared/` | الأنواع والثوابت المشتركة عبر التطبيقات |
| `packages/hook/` | خطاف نهاية الجلسة القابل للتثبيت عبر `npx` |
## التطوير
```sh
pnpm install
npx convex dev # ينشئ نشر Convex الخاص بك
pnpm dev # Convex + Expo معاً
cd apps/mcp && pnpm test # يشير README إلى 442 فحصاً، بدون تبعيات، وبدون شبكة
```
يُذكر أن المشروع مبني على supa-framework.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.