1
0
shell/docs/development-status.md
2025-06-02 00:32:00 +09:00

153 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ai.shell 開発状況
## プロジェクト概要
- **目的**: Claude Codeのようなローカル環境で動作するAIコーディングアシスタント
- **アーキテクチャ**: Rust CLI + Python MCP Server + Ollama (Local LLM)
- **作者**: syui
- **リポジトリ**: https://git.syui.ai/ai/shell
## 現在の実装状況
### ✅ 完了した機能
1. **基本アーキテクチャ**
- Rust CLIクライアント
- Python MCPサーバー
- HTTP REST API通信
2. **環境構築**
- `~/.config/syui/ai/shell/` にPython venv環境
- セットアップスクリプト (`make setup`)
- 起動スクリプト
3. **CLI機能**
- インタラクティブモード
- ワンショット実行 (`aishell exec "prompt"`)
- ファイル分析 (`aishell analyze file`)
- ヘルスチェック (`aishell health`)
4. **コマンド**
- `/help` - ヘルプ表示
- `/clear` - 画面クリア
- `/model [name]` - モデル切り替えUI実装済み、機能は未実装
- `/analyze <file>` - ファイル分析
- `/create <type> <name>` - プロジェクト作成
5. **MCP Server API**
- `POST /execute` - ツール実行
- `GET /health` - ヘルスチェック
- `GET /tools` - 利用可能ツール一覧
## 🚧 未実装・改善が必要な機能
### 高優先度
1. **会話履歴の保持**
- 現在は単発のリクエストのみ
- コンテキストを維持した連続的な会話
2. **ファイル操作の安全性**
- ファイル書き込み前の確認
- バックアップ機能
- undo/redo機能
3. **エラーハンドリング**
- Ollamaが起動していない場合の対処
- ネットワークエラーの適切な処理
### 中優先度
1. **モデル切り替え機能**
- `/model` コマンドの実装
- 設定ファイルへの保存
2. **Git統合**
- `git diff` の解析
- コミットメッセージ生成
- ブランチ情報の取得
3. **プロジェクトテンプレート**
- より多くの言語サポート
- カスタムテンプレート
### 低優先度
1. **TUIモード**
- ratatuiを使用した分割画面
- プログレスバー表示
2. **プラグインシステム**
- カスタムツールの追加
- 外部コマンドの統合
## 技術的な詳細
### ディレクトリ構造
```
/Users/syui/ai/shell/
├── src/
│ ├── main.rs # CLIエントリーポイント
│ ├── lib.rs # ライブラリルート
│ ├── mcp_client.rs # MCPクライアント実装
│ ├── config.rs # 設定管理
│ ├── prompt.rs # プロンプト表示
│ └── commands.rs # コマンドハンドラー
├── mcp_server.py # MCPサーバー実装
├── requirements.txt # Python依存関係
├── Cargo.toml # Rust依存関係
└── scripts/
├── setup.sh # セットアップスクリプト
└── start.sh # 起動スクリプト
~/.config/syui/ai/shell/ # ユーザー設定ディレクトリ
├── venv/ # Python仮想環境
├── config.toml # ユーザー設定
├── mcp_server.py # MCPサーバーコピー
└── bin/
├── aishell # CLIラッパー
└── mcp-server # サーバーラッパー
```
### 主要な依存関係
- **Rust**: clap, tokio, reqwest, colored, serde
- **Python**: aiohttp, requests, toml
- **LLM**: Ollama (qwen2.5-coder:7b)
## 次回の開発時の開始方法
```bash
# リポジトリに移動
cd /Users/syui/ai/shell
# 現在の状態を確認
git status
# サーバーを起動Terminal 1
make run-server
# CLIを起動Terminal 2
./target/debug/aishell
# または、セットアップ済みなら
aishell
```
## 重要な設計思想
1. **分離された責務**
- Rust: 高速なCLI、ユーザーインターフェース
- Python: AI/ML処理、MCPサーバー
- Ollama: ローカルLLM実行
2. **プライバシー重視**
- 完全ローカル動作
- 外部APIへの依存なし
3. **拡張性**
- MCPプロトコルによる標準化
- 新しいツールの追加が容易
## 参考リンク
- [プロジェクト哲学 (claude.md)](/Users/syui/ai/shell/claude.md)
- [MCPプロトコル仕様](/Users/syui/ai/shell/docs/mcp-protocol.md)
- [アーキテクチャ図](/Users/syui/ai/shell/docs/architecture.md)
---
最終更新: 2025-06-01