प्रोजेक्ट संरचना
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
पैकेज में डिपेंडेंसी जोड़ें