プロジェクト構造
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
パッケージに依存関係を追加