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/cli
Haupt-Kommandozeilenschnittstelle und benutzerseitige Befehle
Hauptverantwortlichkeiten:
- Befehlsanalyse und -routing
- Benutzeroberfläche und Interaktion
- Konfigurationsverwaltung
- Fehlerbehandlung und -berichterstattung
- Hilfe- und Dokumentationsanzeige
Core-Paket
packages/core
Kernfunktionalität und Geschäftslogik
Hauptverantwortlichkeiten:
- API-Client-Implementierungen
- Modell-Interaktionen
- Tool-Management-System
- MCP-Protokoll-Behandlung
- Zustandsverwaltung
Tools-Paket
packages/tools
Eingebaute Tools und Dienstprogramme
Hauptverantwortlichkeiten:
- Dateisystem-Operationen
- Shell-Befehl-Ausführung
- Web-Anfragen und Suchen
- Speicherverwaltung
- Tool-Registrierung
Extensions-Paket
packages/extensions
Erweiterungssystem 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 bootstrap
Alle Pakete installieren und verknüpfen
npm run build
Alle Pakete erstellen
npm run test
Alle Tests ausführen
npm run lint
Alle Pakete linten
Paketspezifische Befehle
lerna run build --scope @gemini/cli
Spezifisches Paket erstellen
lerna run test --scope @gemini/core
Spezifisches Paket testen
lerna add lodash packages/core
Abhängigkeit zum Paket hinzufügen
Verwandte Ressourcen
Setzen Sie die Erkundung der Entwicklungsdokumentation fort