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