Add README to all crates
This commit is contained in:
parent
4c3f81b4fa
commit
60505f206b
9
crates/daemon/README.md
Normal file
9
crates/daemon/README.md
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
# daemon
|
||||
|
||||
Pod のライフサイクルを管理する常駐デーモン。未実装。
|
||||
|
||||
## 依存クレート
|
||||
|
||||
- `manifest` — マニフェスト設定
|
||||
- `protocol` — 通信プロトコル型
|
||||
- `tokio` — 非同期ランタイム
|
||||
9
crates/llm-worker-macros/README.md
Normal file
9
crates/llm-worker-macros/README.md
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
# llm-worker-macros
|
||||
|
||||
Rust メソッドを LLM 呼び出し可能なツールとして自動登録する手続きマクロクレート。引数構造体・Tool トレイト実装・ToolDefinition を自動生成する。
|
||||
|
||||
## 公開マクロ
|
||||
|
||||
- `#[tool_registry]` — impl ブロックに付与し、内部の `#[tool]` メソッドを一括処理
|
||||
- `#[tool]` — メソッドをツールとしてマーク
|
||||
- `#[description = "..."]` — 引数に説明を付与(JSON Schema の description に反映)
|
||||
29
crates/llm-worker-persistence/README.md
Normal file
29
crates/llm-worker-persistence/README.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# llm-worker-persistence
|
||||
|
||||
Worker のセッション永続化を提供するクレート。追記専用の JSONL ログとして状態遷移を記録し、ログの再生によってセッションを完全に復元する。大きなツール出力は Blob ストアに分離保存する。
|
||||
|
||||
## 公開型
|
||||
|
||||
### セッション
|
||||
|
||||
- `Session<C, St>` — Worker をラップした永続化セッション(`run()`, `resume()`, `fork()`, `fork_at()`)
|
||||
- `SessionId` — UUID v7 によるセッション識別子
|
||||
- `SessionConfig` — 永続化設定(イベントトレース記録の有無)
|
||||
|
||||
### ストア
|
||||
|
||||
- `Store` トレイト — 永続化バックエンド抽象(`append`, `read_all`, `list_sessions`)
|
||||
- `FsStore` — ファイルシステム上の JSONL ストア実装
|
||||
- `BlobStore` トレイト — Blob ストレージ抽象(`store`, `load`)
|
||||
- `FsBlobStore` — ファイルシステム上の Blob ストア実装
|
||||
- `BlobOutputProcessor` — ToolOutputProcessor 実装(小さい出力はインライン、大きい出力は Blob 保存)
|
||||
|
||||
### ログ
|
||||
|
||||
- `LogEntry` — セッションログのエントリ型(`SessionStart`, `UserInput`, `AssistantItems`, `TurnEnd` など)
|
||||
- `RestoredState` — ログ再生で復元された状態
|
||||
- `collect_state()` — ログエントリ列から状態を復元する関数
|
||||
|
||||
### ツール
|
||||
|
||||
- `InspectTool` — Blob 内容を取得する組み込みツール(行範囲・配列スライス・キー指定セレクタ対応)
|
||||
22
crates/llm-worker/README.md
Normal file
22
crates/llm-worker/README.md
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# llm-worker
|
||||
|
||||
LLM との対話を管理する低レベル基盤クレート。会話履歴、ツール実行、イベントストリーミング、ライフサイクルフックを統合した `Worker` 抽象を提供する。
|
||||
|
||||
## 公開型
|
||||
|
||||
### コア
|
||||
|
||||
- `Worker<C, S>` — LLM 対話の中央管理(ターン実行、ツール呼び出し、キャンセル)
|
||||
- `WorkerConfig` / `WorkerResult` / `WorkerError` — 設定・実行結果・エラー
|
||||
- `Item` / `ContentPart` / `Role` — 会話履歴の構成要素
|
||||
|
||||
### モジュール
|
||||
|
||||
- `llm_client` — プロバイダ抽象(`LlmClient` トレイト、`Request`, `RequestConfig`, Anthropic/OpenAI/Gemini/Ollama 実装)
|
||||
- `tool` — ツール定義・実行(`Tool` トレイト、`ToolDefinition`, `ToolOutput`, サイズ判定による Inline/Stored 切替)
|
||||
- `tool_server` — ツール登録・ルックアップ(`ToolServer`, `ToolServerHandle`)
|
||||
- `hook` — 実行フローへの介入ポイント(`Hook` トレイト、`PreToolCall`, `PostToolCall`, `OnTurnEnd` など)
|
||||
- `subscriber` — リアルタイムイベント購読(`WorkerSubscriber` トレイト)
|
||||
- `timeline` — イベントストリームのディスパッチ(`Handler` トレイト、各ブロックコレクター)
|
||||
- `event` — ストリーミングイベント型(`Event`, `BlockStart`, `BlockDelta` など)
|
||||
- `state` — 型状態パターンによるキャッシュ保護(`Mutable` / `CacheLocked`)
|
||||
13
crates/manifest/README.md
Normal file
13
crates/manifest/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# manifest
|
||||
|
||||
Pod の宣言的設定を TOML マニフェストとして定義・パースするクレート。プロバイダ設定、ワーカー設定、ディレクトリスコープ制約を記述できる。
|
||||
|
||||
## 公開型
|
||||
|
||||
- `PodManifest` — Pod 設定全体(`from_toml()` でパース)
|
||||
- `PodMeta` — Pod メタデータ(名前)
|
||||
- `ProviderConfig` — LLM プロバイダ設定(種別、モデル、APIキー環境変数、ベースURL)
|
||||
- `ProviderKind` — プロバイダ種別(`Anthropic`, `Openai`, `Gemini`, `Ollama`)
|
||||
- `WorkerManifest` — ワーカー設定(システムプロンプト、max_tokens、temperature)
|
||||
- `ScopeConfig` — スコープ設定(ルートディレクトリ)
|
||||
- `Scope` — ディレクトリスコープの実行時チェック(`contains()` でパス包含判定)
|
||||
23
crates/pod/README.md
Normal file
23
crates/pod/README.md
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# pod
|
||||
|
||||
独立したエージェント実行単位「Pod」を実装するクレート。LLM ワーカーセッションをマニフェスト設定・ファイルスコープ制約と組み合わせ、Unix ソケット経由の双方向通信で操作可能にする。
|
||||
|
||||
## 公開型
|
||||
|
||||
### コア
|
||||
|
||||
- `Pod<C, St>` — LLM ワーカーセッション + マニフェスト + スコープのラッパー(`run()`, `resume()`, `from_manifest()`)
|
||||
- `PodId` — UUID v7 による Pod 識別子
|
||||
- `PodRunResult` — 実行結果(`Finished`, `Paused`)
|
||||
- `PodError` — エラー型
|
||||
|
||||
### 制御
|
||||
|
||||
- `PodController` — Pod ライフサイクルを管理するアクター(`spawn()` でタスク起動)
|
||||
- `PodHandle` — Pod への操作ハンドル(`send()`, `subscribe()`)
|
||||
- `PodSharedState` / `PodStatus` — 共有状態(`Idle`, `Running`, `Paused`)
|
||||
|
||||
### ランタイム
|
||||
|
||||
- `RuntimeDir` — `$XDG_RUNTIME_DIR/insomnia/{pod_name}/` 配下のランタイムディレクトリ管理(ステータス・履歴のアトミック書き込み)
|
||||
- `SocketServer` — Pod Protocol 用 Unix ソケットサーバー
|
||||
10
crates/protocol/README.md
Normal file
10
crates/protocol/README.md
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# protocol
|
||||
|
||||
クライアントとPod間の通信プロトコルを定義するクレート。Unix ソケット上で JSON Lines として送受信されるメッセージ型を提供する。
|
||||
|
||||
## 公開型
|
||||
|
||||
- `Method` — クライアント→Pod のコマンド(`Run`, `Resume`, `Cancel`)
|
||||
- `Event` — Pod→クライアント のイベント(`TurnStart`, `TextDelta`, `ToolCallStart`, `Usage`, `Error` など)
|
||||
- `TurnResult` — ターン完了状態(`Finished`, `Paused`)
|
||||
- `ErrorCode` — エラー分類(`AlreadyRunning`, `ProviderError`, `ToolError` など)
|
||||
8
crates/provider/README.md
Normal file
8
crates/provider/README.md
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
# provider
|
||||
|
||||
マニフェストの設定から適切な LLM クライアントを構築するファクトリクレート。APIキーの環境変数解決を含む。
|
||||
|
||||
## 公開型
|
||||
|
||||
- `build_client(config: &ProviderConfig) -> Result<Box<dyn LlmClient>, ProviderError>` — プロバイダ設定に応じたクライアント生成(Anthropic, OpenAI, Gemini, Ollama)
|
||||
- `ProviderError` — クライアント構築エラー
|
||||
10
crates/tui/README.md
Normal file
10
crates/tui/README.md
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# tui
|
||||
|
||||
Pod と対話するためのターミナル UI クライアント。Unix ソケット経由で Pod に接続し、チャット形式でユーザー入力の送信・アシスタント応答の表示・ツール実行の監視を行う。
|
||||
|
||||
## 公開型
|
||||
|
||||
- `App` — アプリケーション状態(メッセージ履歴、入力バッファ、スクロール位置)
|
||||
- `Message` / `MessageKind` — 表示メッセージ(User, Assistant, Tool, Error, Status)
|
||||
- `PodClient` — Pod との Unix ソケット通信クライアント(`connect()`, `send()`, `next_event()`)
|
||||
- `draw()` — ratatui によるUI描画関数
|
||||
Loading…
Reference in New Issue
Block a user