इस प्रोजेक्ट के बारे में
Context (supa-media/context) एक MCP गेटवे है जो AI क्लाइंट्स — ChatGPT, Claude, Codex, Notion AI और अन्य — को एक सिंगल एंडपॉइंट देता है जिसके माध्यम से वे एक व्यक्तिगत नॉलेज बेस को पढ़ और लिख सकते हैं। यह नॉलेज बेस प्लेन Markdown है जो उपयोगकर्ता द्वारा नियंत्रित अकाउंट में स्टोर होता है: Dropbox, Cloudflare R2, AWS S3, Backblaze B2, या कोई भी S3-संगत स्टोरेज।
README तीन संबंधित इकाइयों का वर्णन करता है: एक **brain** (आपके नाम से संबोधित व्यक्तिगत संदर्भ), एक **workspace** (दूसरों के साथ साझा संदर्भ), और **context** जो आपके brain, आपके साथ साझा किए गए brains और आपके workspaces का संघ (union) है। एक एंडपॉइंट को जोड़ने का उद्देश्य प्रत्येक नए असिस्टेंट को आपके प्रोजेक्ट्स, निर्णयों और इतिहास के बारे में दोबारा सिखाने की ज़रूरत को खत्म करना है।
## दो प्लेन (Two planes)
डिज़ाइन एक कंट्रोल प्लेन को डेटा प्लेन से अलग करता है, और README इस विभाजन को प्रोजेक्ट के मूल के रूप में मानता है।
- **Control plane** (`apps/convex`) — अकाउंट्स, वर्कस्पेस, OAuth ग्रांट्स और स्टोरेज बाइंडिंग्स। यह केवल मेटाडेटा रखने के लिए है: कोई नोट्स नहीं, कोई दूसरी कॉपी नहीं।
- **Data plane** — उपयोगकर्ता का Dropbox फोल्डर या ऑब्जेक्ट-स्टोरेज बकेट। Context अकाउंट को हटाने से कंट्रोल प्लेन साफ़ हो जाता है जबकि डेटा प्लेन अछूता रहता है।
MCP गेटवे (`apps/mcp`) को एक सेल्फ-कंटेन्ड Cloudflare Worker के रूप में वर्णित किया गया है जिसे उपयोगकर्ता द्वारा तैनात किया जा सकता है यदि होस्टेड सेवा समाप्त हो जाती है, जिससे बकेट काम करना जारी रखेगा।
## स्टोरेज और पोर्टेबिलिटी दावे
- प्लेन फाइलें कैनोनिकल हैं: Markdown जिसे Obsidian में पढ़ा जा सकता है, greppable है, या `rclone` के साथ हटाया जा सकता है; एकमात्र कॉपी के रूप में कोई प्रोप्रायटरी डेटाबेस नहीं है।
- स्टोरेज अपना मूल स्वरूप बनाए रखता है — Dropbox में एक साधारण फोल्डर, ऑब्जेक्ट स्टोरेज में बकेट-लेवल टेनेंसी, बिना कीज़ (keys) को दोबारा लिखे या पाथ्स को नेमस्पेस किए। कहा गया है कि एक मौजूदा brain बिना माइग्रेशन के कनेक्ट हो जाता है।
- इंडेक्स (सर्च कैश, एम्बेडिंग्स) को डिस्पोजेबल डेरिवेटिव्स के रूप में वर्णित किया गया है जिन्हें फाइलों से दोबारा बनाया जा सकता है।
## टूल्स और कन्वेंशन
**`orient`** वह पहला टूल है जिसे कनेक्टेड क्लाइंट्स को कॉल करने के लिए कहा जाता है। यह फ्रंट पेज, हाल ही में छुए गए नोट्स और नोट काउंट के साथ फोल्डर्स का मैप लौटाता है। इसका अधिकांश आउटपुट बकेट से प्राप्त होता है और प्रत्येक कॉल पर दोबारा बनाया जाता है। README नोट करता है कि यह निर्देश क्लाइंट के बजाय कनेक्शन में रहता है, इसलिए इसे स्थायी बनाने के लिए क्लाइंट-साइड कस्टम निर्देश, सिस्टम प्रॉम्प्ट या रूल्स फाइल का सुझाव दिया गया है।
**`index.md`** बकेट रूट पर एक साधारण Markdown फाइल है, जिसका स्वामित्व उपयोगकर्ता के पास होता है। सेटअप एक शुरुआती संस्करण लिखता है; एजेंटों को इसे बदलने के बजाय इसमें जोड़ने और पहले बदलावों को बताने के लिए कहा जाता है। केवल व्यक्तिगत कनेक्शन के लिए इच्छित सामग्री के लिए इसके बगल में एक वैकल्पिक `index-private.md` हो सकता है। ऐसे बकेट को कनेक्ट करना जिसमें पहले से नोट्स हैं, कुछ भी ओवरराइट नहीं करता है, इसलिए एक इम्पोर्टेड brain में `index.md` नहीं हो सकता है और `orient` ऐसा बताएगा।
**`save_context`** सेशन के अंत में एजेंट द्वारा कॉल किया जाने वाला टूल है। इसका व्यवहार `index.md` में `## Save context` सेक्शन के माध्यम से उपयोगकर्ता-परिभाषित होता है जिसमें एक `destination:` लाइन और कोई भी प्रक्रिया होती है जिसे उपयोगकर्ता चाहता है।
**Session-end hook** — `npx -y @supa-media/context-hook install` एक बार साइन-इन करता है और Claude Code में एक `SessionEnd` हुक जोड़ता है ताकि सेशन के उपयोगकर्ता-दृश्य संदेश स्वचालित रूप से `0-inbox/` में पहुँच जाएँ। README कहता है कि यह केवल कैप्चर एक्सेस का अनुरोध करता है, नोट्स नहीं पढ़ सकता, Connections में दिखाई देता है और अलग से रिवोकेबल है। सोर्स `packages/hook` में है।
## संगठन (Organization)
सेटअप एक PARA-स्टाइल स्ट्रक्चर — `0-inbox/`, `1-projects/`, `2-areas/`, `3-resources/`, `4-archive/` — तैयार करता है, जिसे स्कीमा के बजाय एक सुझाव के रूप में प्रस्तुत किया गया है। टूल्स पाथ्स पर काम करते हैं, इसलिए कहा गया है कि उपयोगकर्ता द्वारा प्रदान किया गया स्ट्रक्चर भी उसी तरह काम करेगा।
## गोपनीयता (Privacy)
प्रत्येक नोट `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.