# Goose एक्सटेंशन्स पर चलता है। एक ऐसा जोड़ें जो आपका रिपो जानता हो।

Canonical source: https://maguyva.ai/hi/for-goose

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Goose अपना काम एक्सटेंशन्स से करता है, और हर एक्सटेंशन एक MCP सर्वर है। Maguyva वह एक्सटेंशन है जो आपका कोडबेस इंडेक्स करता है, ताकि Goose डायरेक्टरी लिस्ट करने के बजाय पूछे कि चीज़ें कहां हैं।

> काम कैसे करना है, इसके लिए .goosehints। कोड अभी क्या कहता है, इसके लिए Maguyva।

## Goose के बारे में क्या जानना ज़रूरी है

Goose से जुड़े चार तथ्य।

### config.yaml

एक्सटेंशन `~/.config/goose/config.yaml` में `extensions` के नीचे रहते हैं। `goose configure` → Add Extension आपके लिए उसी तरह की एंट्री लिख देता है।

### एक रिमोट एक्सटेंशन

Maguyva एक `streamable_http` एक्सटेंशन है, इसलिए Goose खुद एंडपॉइंट से कनेक्ट होता है: कोई लोकल प्रोसेस नहीं, कोई Node.js नहीं। URL `uri` में जाता है, `url` में नहीं।

### headers

Goose हर रिक्वेस्ट के साथ `headers` मैप भेजता है, इसलिए कुंजी `Authorization` हेडर में जाती है। Goose इसे `env_keys` में लिखे किसी एनवायरनमेंट वेरिएबल से भी भर सकता है।

### available_tools

एक्सटेंशन अपने टूल्स का सिर्फ़ एक हिस्सा दिखा सकता है: जो चाहिए उन्हें `available_tools` के नीचे लिखें, या सभी के लिए खाली छोड़ दें।

## Goose हिंट्स एक वर्किंग एग्रीमेंट हैं। इन्हें इस्तेमाल करें।

```text
# .goosehints
- npm नहीं, pnpm इस्तेमाल करें।
- किसी बदलाव को पूरा मानने से पहले इंटीग्रेशन टेस्ट चलाएं।
```

डिफ़ॉल्ट रूप से Goose `AGENTS.md` और `.goosehints` लोड करता है: ग्लोबल हिंट्स `~/.config/goose/.goosehints` से, प्रोजेक्ट हिंट्स रिपो से, और सबफ़ोल्डरों में काम करते समय नेस्टेड फ़ाइलें। हिंट्स के लिए Developer एक्सटेंशन चाहिए। ये इनके लिए सही जगह हैं:

- टूलिंग के विकल्प और कमांड।
- वे कन्वेंशन जिनका Goose को पालन करना चाहिए।
- डॉक्यूमेंटेशन कहां है।

हिंट्स प्रोजेक्ट का वर्णन करते हैं। वे “इस पर क्या निर्भर है?” का जवाब नहीं देते।

## जहां हिंट्स और शेल कम पड़ते हैं

तीन कमियां जिन्हें Goose शेल कमांड से, एक-एक फ़ाइल करके भरता है।

### // लिस्टिंग नक़्शा नहीं है

अनजान रिपो में Goose डायरेक्टरी लिस्टिंग और फ़ाइल रीड्स से दिशा समझता है। हर एक में टास्क शुरू होने से पहले ही कॉन्टेक्स्ट खर्च होता है।

### // grep स्ट्रिंग ढूंढता है, कॉलर नहीं

टेक्स्ट सर्च असली कॉल को किसी कमेंट, mock या उसी नाम वाले मेथड से अलग नहीं कर सकता।

### // हिंट्स पीछे छूट जाते हैं

पिछली तिमाही में लिखी गई हिंट्स फ़ाइल पिछली तिमाही का स्ट्रक्चर बताती है। Goose फिर भी उसका पालन करता है।

## Goose एक्सटेंशन के रूप में Maguyva

एक extensions एंट्री Goose को देती है:

- **आपके इंडेक्स किए गए रिपो पर 11 टूल**: सिमेंटिक, स्ट्रक्चरल (AST), ग्राफ़ और टेक्स्ट सर्च, साथ में सिंबल लुकअप, डिपेंडेंट्स और फ़ाइल रिट्रीवल।
- **फ़ाइल पाथ और लाइन नंबर के साथ जवाब**: 285+ भाषाओं में।
- **सिर्फ़ पढ़ने वाले टूल**: Maguyva के टूल इंडेक्स से क्वेरी करते हैं। इनमें से कोई भी आपकी फ़ाइलें एडिट नहीं करता।

> हिंट्स, Goose को बताते हैं *कैसे काम करना है*।
> Maguyva, Goose को *कोड का नक़्शा* देता है।

## दो वर्कफ़्लो

पहले नक़्शा, फिर Goose को चलने दें।

### 01. किसी बग को उसके स्रोत तक ट्रेस करें

```text
goose> कुछ एक्सपोर्ट शून्य पंक्तियों के साथ क्यों खत्म होते हैं?

semantic_search("export job empty result")
  src/export/runner.ts:118   flushBatch()
  src/export/filters.ts:40   applyTenantFilter()

→ Goose पूरा export पैकेज नहीं, दो फ़ाइलें पढ़ता है।
[exit 0]
```

Goose के शेल खोलने से पहले ही रैंक किए गए नतीजे खोज को सीमित कर देते हैं।

### 02. रीफ़ैक्टर से पहले डिपेंडेंट्स जांचें

```text
goose> Notifier क्लास को ईमेल और SMS में बांटो

dependency_search("Notifier", dependents)
  5 पैकेजों में 11 रेफ़रेंस

→ पहली एडिट से पहले योजना सभी ग्यारह को कवर करती है।
[exit 0]
```

Goose को grep की लंबी श्रृंखला के बजाय एक ही कॉल में डिपेंडेंट्स की पूरी सूची मिलती है।

## Goose में सेटअप

तीन चरण। Free स्तर: 3 रिपॉज़िटरी, 50K तक इंडेक्स्ड रिपॉज़िटरी लाइनें, क्रेडिट कार्ड की ज़रूरत नहीं।

### 01. maguyva.ai पर एक रिपो इंडेक्स करें

ऐसा रिपो चुनें जिसे आप पहले से जानते हैं, ताकि आप जवाबों को परख सकें।

### 02. config.yaml में extensions के नीचे Maguyva जोड़ें

`~/.config/goose/config.yaml`

```yaml
extensions:
  maguyva:
    name: maguyva
    type: streamable_http
    uri: https://maguyva.tools/mcp
    enabled: true
    headers:
      Authorization: Bearer mgv_xxxx
    timeout: 300

```

### 03. प्लेसहोल्डर बदलें और एक सेशन शुरू करें

`mgv_xxxx` को अपनी API कुंजी से बदलें, `goose session` चलाएं, और एक ऐसा सवाल पूछें जिसका जवाब आप पहले से जानते हैं। YAML इंडेंटेशन के प्रति संवेदनशील है: टैब नहीं, स्पेस इस्तेमाल करें।

Goose के [एक्सटेंशन डॉक्स](https://goose-docs.ai/docs/getting-started/using-extensions/) रिमोट एक्सटेंशन, टाइमआउट और टूल फ़िल्टर के बारे में बताते हैं।

## एक ऐसा रिपो इंडेक्स करें जिसे आप पहले से जानते हैं।

Goose को MCP पर कनेक्ट करें, फिर एक ऐसा सवाल पूछें जिसे आप जांच सकें।
