マニフェスト
生成されたアプリに何が組み込まれたかを、すべてのビルドが記録する内容。
マニフェスト
すべての build は .build/manifest.json を書き込みます - これは、生成されたアプリに実際に何が組み込まれたかについての、BX Agents 自身の記録です。bxAgents inspect は再ビルドせずにこれを整形して表示します。bxAgents package は機密情報を除去したバージョンを .bxa と一緒にコピーします (デプロイとシークレット 参照)。
スキーマ
{
"manifestVersion": "1.0.0",
"generator": { "name": "bx-agents", "version": "dev" },
"agent": {
"name": "my-agent",
"description": "",
"model": "openai/gpt-5",
"environment": "development"
},
"files": [
{ "category": "tools", "name": "Greeter", "path": "tools/Greeter.bx", "hash": "..." }
]
}
| フィールド | 意味 |
|---|---|
manifestVersion | マニフェストスキーマ自体の Semver スタンプ (現在は 1.0.0) - これが未設定または不正な形式の場合、package は実行を拒否します。 |
generator.name / generator.version | 常に "bx-agents" / このビルドを生成した BX Agents モジュールのバージョンです。 |
agent | 安全で構造的なフィールド (name、description、model、environment) のみです - シークレットは決して含まれません。シークレットはそもそもマニフェストに読み込まれることがなく、実行時に bx-ai 自身によってライブに解決されます。 |
files | 発見されたコンベンションフォルダ内の項目ごとに 1 エントリで、決定的な順序のために category、続いて path でソートされています - ファイルシステムの列挙順序には依存しません。 |
コンテンツハッシュ
各 files[] エントリの hash は、その内容の SHA-256 です。
- ファイル: 内容のハッシュです。ただし最初に改行コードが正規化されます (同じ内容の CRLF と LF のチェックアウトは同一のハッシュになります)。
- ディレクトリ (スキルフォルダ、サブエージェントフォルダ、モジュールフォルダ): 含まれるすべてのファイル自身の
relativePath:contentHashを再帰的に、決定性のためにソートしてハッシュ化したものです - つまり内部の任意の 1 ファイルの名前変更や編集は、そのフォルダ全体のハッシュを変化させます。
これにより、変更のないプロジェクトを再ビルドすると同一のマニフェストが生成されることが保証されます - 同じカテゴリ、同じ順序、同じハッシュが毎回得られます - そしてまさにこの理由で、あるツールファイルの内容を変更すると、そのエントリのハッシュだけが変化し、他は一切変化しません。
互換性ポリシー
manifestVersion が存在するのは、このスキーマへの将来の破壊的変更を、manifest.json を読み取るあらゆるもの (デプロイターゲット、将来の inspect のバージョン、外部ツール) が検知できるようにするためです - 認識できないメジャーバージョンに遭遇したツールは、フィールドの形状を勝手に推測してサイレントに誤読するのではなく、明確に失敗を報告すべきです。