Vfs Capability Contracts
Responsibility
Vfs capability contract は、ファイルシステム権限を型システム上で表現する。実装は、実際に実行できる操作に対応する interface のみを公開する。
これらの contract は公開 namespace AIKernel.Vfs を維持したまま、AIKernel.Abstractions が所有する。個別の AIKernel.Vfs 互換 package は v0.0.4 で削除された。
Capability Interfaces
| Interface | 責務 |
|---|---|
IVfsEntryInfo |
Vfs entry に共通する識別情報と metadata。 |
IReadableVfsFile |
ファイル内容を bytes または text として読み取る。 |
IWritableVfsFile |
file-level mutation が成立する場合に、ファイル内容を bytes または text として書き込む。 |
INavigableVfsDirectory |
ファイル、ディレクトリ、entry、サブディレクトリを列挙する。 |
IReadableVfsSession |
session 経由でファイルを読み取り、path の存在を確認する。 |
IWritableVfsSession |
session 経由でファイルを書き込む。 |
IDeletableVfsSession |
session 経由でファイルまたはディレクトリを削除する。 |
INavigableVfsSession |
session 経由で navigable directory を開く。 |
IQueryableVfsSession |
provider 定義の Vfs query を実行する。 |
Compatibility Contracts
IVfsFile, IVfsDirectory, IVfsSession は互換合成 contract として残す。
IVfsFileはIReadableVfsFileを継承する。IVfsDirectoryはINavigableVfsDirectoryを継承し、従来の directory 戻り値型を維持する。IVfsSessionは readable, writable, deletable, navigable, queryable, async-disposable な session capability を合成する。
Fail-Closed Rule
呼び出し側は、操作を開始する前に必要な capability interface を確認すること。Capability が存在しない場合、副作用が始まる前に実行を拒否しなければならない。
未対応 capability を、部分実行する method や NotSupportedException による遅延失敗で表現してはならない。
変更履歴
- v0.0.2 (2026-05-09): Capability-based Vfs contract を初期定義
- v0.0.3 (2026-06-02): Abstractions 所有と type-forwarding 互換の注記を追加
- v0.0.4 (2026-06-04): 公開 namespace を維持したまま個別の AIKernel.Vfs 互換 package 注記を削除
Source:
architecture/interfaces/vfs/IVfsCapabilityContracts-jp.md