Projektstruktur
Verstehen der Codebase-Organisation und Architektur von Gemini CLI
Projektübersicht
Gemini CLI ist als Monorepo mit mehreren miteinander verbundenen Paketen organisiert
Gemini CLI ist ein Lerna-basiertes Monorepo-Projekt, das Funktionalitäten in unabhängige Pakete modularisiert für einfachere Entwicklung, Tests und Wartung.
Paketstruktur
Kernpakete, die das Gemini CLI-Ökosystem ausmachen
CLI-Paket
packages/cliHaupt-Kommandozeilenschnittstelle und benutzerseitige Befehle
Hauptverantwortlichkeiten:
- Befehlsanalyse und -routing
- Benutzeroberfläche und Interaktion
- Konfigurationsverwaltung
- Fehlerbehandlung und -berichterstattung
- Hilfe- und Dokumentationsanzeige
Core-Paket
packages/coreKernfunktionalität und Geschäftslogik
Hauptverantwortlichkeiten:
- API-Client-Implementierungen
- Modell-Interaktionen
- Tool-Management-System
- MCP-Protokoll-Behandlung
- Zustandsverwaltung
Tools-Paket
packages/toolsEingebaute Tools und Dienstprogramme
Hauptverantwortlichkeiten:
- Dateisystem-Operationen
- Shell-Befehl-Ausführung
- Web-Anfragen und Suchen
- Speicherverwaltung
- Tool-Registrierung
Extensions-Paket
packages/extensionsErweiterungssystem und Plugin-Verwaltung
Hauptverantwortlichkeiten:
- Erweiterungsladung und -verwaltung
- Plugin-Registry
- Erweiterungs-API
- Lebenszyklus-Verwaltung
- Abhängigkeitsauflösung
Entwicklungsworkflow
Wie man effektiv mit der Codebasis arbeitet
Globale Befehle
npm run bootstrapAlle Pakete installieren und verknüpfen
npm run buildAlle Pakete erstellen
npm run testAlle Tests ausführen
npm run lintAlle Pakete linten
Paketspezifische Befehle
lerna run build --scope @gemini/cliSpezifisches Paket erstellen
lerna run test --scope @gemini/coreSpezifisches Paket testen
lerna add lodash packages/coreAbhängigkeit zum Paket hinzufügen
Verwandte Ressourcen
Setzen Sie die Erkundung der Entwicklungsdokumentation fort