संदर्भ
स्थानीय डायरेक्टरी और Git रिपॉज़िटरी को प्रोजेक्ट संदर्भ के रूप में जोड़ें।
संदर्भ OpenCode को वर्तमान प्रोजेक्ट के बाहर की डायरेक्टरी तक पहुँच देते हैं। इनका उपयोग डॉक्यूमेंटेशन, शेयर्ड लाइब्रेरी, उदाहरण, या किसी अन्य रिपॉज़िटरी को अपने काम के दौरान उपलब्ध कराने के लिए करें।
संदर्भ को opencode.json या opencode.jsonc में उपनाम (alias) द्वारा कॉन्फ़िगर किया जाता है।
{
"$schema": "https://opencode.ai/config.json",
"references": {
"docs": {
"path": "../product-docs",
"description": "Use for product behavior and documentation conventions",
},
"sdk": {
"repository": "anomalyco/opencode-sdk-js",
"branch": "main",
"description": "Use for JavaScript SDK implementation details",
},
},
}स्थानीय डायरेक्टरी
किसी स्थानीय डायरेक्टरी को संदर्भित करने के लिए path का उपयोग करें।
{
"references": {
"docs": {
"path": "../docs",
},
},
}पथ हो सकते हैं:
- उस कॉन्फ़िग फ़ाइल के सापेक्ष जो संदर्भ को परिभाषित करती है
- Absolute, जैसे
/home/user/docs - आपकी home directory के सापेक्ष, जैसे
~/docs
आप एक string shorthand भी उपयोग कर सकते हैं:
{
"references": {
"docs": "../docs",
},
}Git रिपॉज़िटरी
किसी Git रिपॉज़िटरी को संदर्भित करने के लिए repository का उपयोग करें। OpenCode रिपॉज़िटरी को अपने local repository cache में मैटीरियलाइज़ करता है और चेक-आउट किए गए सोर्स को संदर्भ डायरेक्टरी के रूप में उपलब्ध कराता है।
{
"references": {
"effect": {
"repository": "Effect-TS/effect",
"branch": "main",
},
},
}repository Git URL, host/path संदर्भ, और GitHub owner/repo shorthand स्वीकार करता है। वैकल्पिक branch फ़ील्ड कोई branch या ref चुनता है। branch के बिना, OpenCode रिपॉज़िटरी की डिफ़ॉल्ट branch का उपयोग करता है।
जब आपको branch, description, या अन्य विकल्पों की आवश्यकता नहीं है तो आप string shorthand का उपयोग कर सकते हैं:
{
"references": {
"effect": "Effect-TS/effect",
},
}Note: Git संदर्भ असिंक्रोनस रूप से रीफ़्रेश होते हैं। नया कॉन्फ़िगर किया गया रिपॉज़िटरी clone या update पूरा करने में कुछ समय ले सकता है।
उपयोग का विवरण दें
यह बताने के लिए description जोड़ें कि किसी एजेंट को कब किसी संदर्भ का उपयोग करना चाहिए।
{
"references": {
"design-system": {
"path": "../design-system",
"description": "Use when implementing UI components or design tokens",
},
},
}OpenCode description वाले संदर्भों को एजेंट संदर्भ (context) में शामिल करता है। Descriptions छोटे और इतने विशिष्ट होने चाहिए कि समान सामग्री वाले संदर्भों के बीच अंतर किया जा सके। बिना description वाले संदर्भ ऑटोकम्प्लीट और सीधे उपयोग के माध्यम से उपलब्ध रहते हैं, लेकिन एजेंट को नहीं दिखाए जाते।
ऑटोकम्प्लीट एंट्री छिपाएँ
TUI में @ ऑटोकम्प्लीट से किसी संदर्भ को छोड़ने के लिए hidden को true पर सेट करें।
{
"references": {
"internal": {
"path": "../internal",
"description": "Use for internal implementation details",
"hidden": true,
},
},
}hidden केवल ऑटोकम्प्लीट को प्रभावित करता है। description वाला छिपा हुआ संदर्भ एजेंट संदर्भ में शामिल रहता है।
संदर्भों का उपयोग करें
कॉन्फ़िगर किए गए संदर्भ TUI के @ ऑटोकम्प्लीट में दिखाई देते हैं। संदर्भ रूट को अटैच करने के लिए @alias टाइप करें, या उसके अंदर फ़ाइलें खोजने के लिए @alias/ टाइप करें।
Compare this implementation with @sdk/src/client.tsएजेंट को description वाले कॉन्फ़िगर किए गए संदर्भों के resolved पथ और descriptions भी उनके सिस्टम संदर्भ (context) में प्राप्त होते हैं, ताकि वे आपके मैन्युअल रूप से अटैच किए बिना, प्रासंगिक होने पर किसी संदर्भ की जाँच कर सकें।
OpenCode अपने external-directory परमिशन बाउंड्री के माध्यम से संदर्भ डायरेक्टरी को स्वचालित रूप से अनुमति देता है। सामान्य टूल परमिशन अभी भी लागू होती हैं; उदाहरण के लिए, एक एजेंट जो फ़ाइलें संपादित नहीं कर सकता, उसे किसी डायरेक्टरी को संदर्भ के रूप में कॉन्फ़िगर करने से edit एक्सेस नहीं मिलती।
कॉन्फ़िगर फ़ील्ड
| फ़ील्ड | Local | Git | विवरण |
|---|---|---|---|
path | हाँ | नहीं | स्थानीय संदर्भ डायरेक्टरी |
repository | नहीं | हाँ | Git URL, host/path, या GitHub owner/repo मान |
branch | नहीं | हाँ | वैकल्पिक Git branch या ref |
description | हाँ | हाँ | संदर्भ का उपयोग कब करना है, यह बताने वाला मार्गदर्शन |
hidden | हाँ | हाँ | संदर्भ को TUI @ ऑटोकम्प्लीट से छिपाएँ |
संदर्भ उपनाम (alias) खाली नहीं हो सकते या इनमें /, whitespace, backticks, या commas नहीं हो सकते।