プロジェクト構造

Gemini CLIのコードベース組織とアーキテクチャの理解

プロジェクト概要

Gemini CLIは複数の相互接続されたパッケージを持つモノレポとして組織されています

Gemini CLIは、開発、テスト、メンテナンスを容易にするために機能を独立したパッケージにモジュール化するLernaベースのモノレポプロジェクトです。

パッケージ構造

Gemini CLIエコシステムを構成するコアパッケージ

CLIパッケージ

packages/cli

メインのコマンドラインインターフェースとユーザー向けコマンド

主な責任:

  • コマンドの解析とルーティング
  • ユーザーインターフェースとインタラクション
  • 設定管理
  • エラーハンドリングとレポート
  • ヘルプとドキュメント表示

コアパッケージ

packages/core

コア機能とビジネスロジック

主な責任:

  • APIクライアント実装
  • モデルインタラクション
  • ツール管理システム
  • MCPプロトコル処理
  • 状態管理

ツールパッケージ

packages/tools

組み込みツールとユーティリティ

主な責任:

  • ファイルシステム操作
  • シェルコマンド実行
  • Webリクエストと検索
  • メモリ管理
  • ツール登録

拡張パッケージ

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

パッケージに依存関係を追加

関連リソース

開発ドキュメントの探索を続ける