AIKernel.NET
version: 0.0.4 / status: Refactor / edition: Draft / published: 2026-05-16 / updated: 2026-06-04

英語版: Vfs Capability Contracts

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 として残す。

  • IVfsFileIReadableVfsFile を継承する。
  • IVfsDirectoryINavigableVfsDirectory を継承し、従来の 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