प्रोजेक्ट संरचना

Gemini CLI के कोडबेस संगठन और आर्किटेक्चर को समझना

प्रोजेक्ट अवलोकन

Gemini CLI को कई परस्पर जुड़े पैकेजों के साथ एक मोनोरेपो के रूप में व्यवस्थित किया गया है

Gemini CLI एक Lerna-आधारित मोनोरेपो प्रोजेक्ट है जो आसान विकास, परीक्षण और रखरखाव के लिए कार्यक्षमता को स्वतंत्र पैकेजों में मॉड्यूलराइज़ करता है।

पैकेज संरचना

मुख्य पैकेजेस जो Gemini CLI इकोसिस्टम बनाते हैं

CLI पैकेज

packages/cli

मुख्य कमांड-लाइन इंटरफेस और उपयोगकर्ता-सामना करने वाले कमांड

मुख्य जिम्मेदारियां:

  • कमांड पार्सिंग और रूटिंग
  • उपयोगकर्ता इंटरफेस और इंटरैक्शन
  • कॉन्फ़िगरेशन प्रबंधन
  • त्रुटि हैंडलिंग और रिपोर्टिंग
  • सहायता और दस्तावेज़ीकरण प्रदर्शन

कोर पैकेज

packages/core

मुख्य कार्यक्षमता और व्यावसायिक तर्क

मुख्य जिम्मेदारियां:

  • API क्लाइंट कार्यान्वयन
  • मॉडल इंटरैक्शन
  • टूल प्रबंधन सिस्टम
  • MCP प्रोटोकॉल हैंडलिंग
  • स्टेट प्रबंधन

टूल्स पैकेज

packages/tools

अंतर्निहित उपकरण और उपयोगिताएं

मुख्य जिम्मेदारियां:

  • फ़ाइल सिस्टम ऑपरेशन
  • शेल कमांड निष्पादन
  • वेब अनुरोध और खोज
  • मेमोरी प्रबंधन
  • टूल पंजीकरण

एक्सटेंशन पैकेज

packages/extensions

एक्सटेंशन सिस्टम और प्लगइन प्रबंधन

मुख्य जिम्मेदारियां:

  • एक्सटेंशन लोडिंग और प्रबंधन
  • प्लगइन रजिस्ट्री
  • एक्सटेंशन API
  • लाइफसाइकल प्रबंधन
  • डिपेंडेंसी रिज़ॉल्यूशन

विकास वर्कफ़्लो

कोडबेस के साथ प्रभावी रूप से कैसे काम करें

ग्लोबल कमांड

npm run bootstrap

सभी पैकेजेस इंस्टॉल और लिंक करें

npm run build

सभी पैकेजेस बिल्ड करें

npm run test

सभी टेस्ट चलाएं

npm run lint

सभी पैकेजेस को लिंट करें

पैकेज-विशिष्ट कमांड

lerna run build --scope @gemini/cli

विशिष्ट पैकेज बिल्ड करें

lerna run test --scope @gemini/core

विशिष्ट पैकेज टेस्ट करें

lerna add lodash packages/core

पैकेज में डिपेंडेंसी जोड़ें

संबंधित संसाधन

विकास दस्तावेज़ीकरण की खोज जारी रखें