- SessionId 型を新設、各 SegmentStart に session_id を持たせる - compaction / 内部 fork は同 SessionId を継承、fork() は新 Session を発行 - Store API を (SessionId, SegmentId) ベースに、FsStore layout は <root>/<session_id>/<segment_id>.jsonl に - Store::list_sessions / list_segments(session_id) / lookup_session_of を追加 - restore_by_segment shim を session-store に提供(pod-cli --session で使用) - SegmentState に SegmentLocation (session_id, segment_id) を保持し ArcSwap で更新 - RestoredState に session_id: Option<SessionId> を追加 - Picker は Session 単位に列挙、leaf segment を解決して resume |
||
|---|---|---|
| .. | ||
| examples | ||
| src | ||
| tests | ||
| build.rs | ||
| Cargo.toml | ||
| README.md | ||
pod
独立したエージェント実行単位「Pod」を実装するクレート。LLM ワーカーセッションをマニフェスト設定・ファイルスコープ制約と組み合わせ、Unix ソケット経由の双方向通信で操作可能にする。
公開型
コア
Pod<C, St>— LLM ワーカーセッション + マニフェスト + スコープのラッパー(run(),resume(),from_manifest())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 ソケットサーバー