このプロジェクトについて
AIForgeは、プロバイダーに依存しないランタイムカーネルを中心に設計されたネイティブC++23ターミナルAIクライアントです。Venice (venice-cpp経由) によるストリーミングインタラクション、ワンショットおよびパイプベースのAIワークフロー、そして永続的で再開可能なチャットセッションをサポートしています。インタラクティブなChatインターフェースは、堅牢なターミナルレンダリングを実現するTermForgeに基づいて構築されています。
主な機能は以下の通りです:
- **プロバイダーに依存しないカーネル**: コアロジックがAIプロバイダーから切り離されており、永続的で再現可能な実行とプロジェクションを可能にします。
- **永続的なセッション**: セッション状態、イベント、トランスクリプトはSQLiteを使用して永続的に保存され、セッションの再開や継続が可能です。
- **再現可能なタスクプランニング**: 構造化された`ask_user`ツールの利用、プランの修正、タスクグラフ、および競合分析とリポジトリベースのバックログ追跡による正確なリビジョン決定をサポートします。
- **ファイルベースのペルソナ**: XDG設定内の`.md`または`.txt`ファイルからシステム指示をロードします。コンテンツハッシュとアトミック更新により安全に管理されます。
- **モデルの検出と選択**: 機能、価格、コンテキストサイズを含む利用可能なモデルをリスト表示し、CLIまたはインタラクティブな`/model`コマンドによるフィルタリングと選択が可能です。
- **一時的なキャラクター選択**: コア設定を変更することなく、実行時にプロバイダー固有のキャラクターを選択できます。
- **ローカルオーディオサポート (Linux)**: ALSA (RtAudio) を介したキャプチャと再生に対応し、安全に処理されAIモデルに公開されることはありません。
- **画像処理**: コンテンツアドレスストレージと検証(RasterForgeによるPNG, JPEG, WebP)を用いて、画像の生成、表示、エクスポートを行います。
- **制限付き実行**: 安全性を高めるため、ポリシーによるプロセス実行の制限、入出力サイズ制限、および機能制限を設けています。
- **利用量およびコスト管理**: セッションごとのトークン使用量と金銭的コストを追跡し、設定可能な支出上限を適用します。
- **スラッシュコマンドシステム**: ヘルプ、補完、可用性チェックを備えた、統一され拡張可能なコマンドレジストリを提供します。
- **静的解析とスタイル**: ドキュメント化されたポリシーに基づき、コードフォーマット (clang-format 20) と静的解析 (clang-tidy 20) を強制しています。
CMake (3.28+) を使用してビルドし、GCC 13+ または Clang 17+ を必要とします。コア機能としてTermForge、venice-cpp、RasterForgeに依存し、永続的なセッションストレージにはSQLiteを使用します。テストとリンティングはビルドシステムに統合されています。
アーキテクチャはセキュリティ、決定論、および監査可能性を重視しており、設計上の決定はADR (Architecture Decision Records) と設計ドキュメントによって管理されています。主な制約として、UTF-8検証、コンテンツアドレス付きアーティファクト、および安全でない入力やシンボリックリンクの厳格な拒否が挙げられます。
ヘッドレス (CLI) モードとインタラクティブ TUI モードの両方で動作します。ターミナルで引数なしに起動すると、インタラクティブなChatワークスペースが開きます。また、diffレビュー、コード分析、自動化のための標準入力パイプラインをサポートしています。
BSD 3-clauseライセンスの下で提供されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.