Content integrity in Agent Volumes is not a hash of a tarball or a transport artifact. It is a hash of the normalized file tree — a canonical, deterministic representation of every file in a release, computed the same way regardless of how the release was packaged or delivered. This means that a CDN-hosted archive and a Git-backed release of the same volume version produce identical integrity values, and any modification to any file — even a single byte — produces a different digest.Documentation Index
Fetch the complete documentation index at: https://agentvolumes.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
The two mandatory identities of every release
Every published release carries two complementary, mandatory identities:Logical identity
pkg:volume/<name>@<version>The package-facing identity. Used for dependency resolution, search, and supply chain tooling integrations.Immutable content identity
sha256:<hex>The digest of the normalized file tree. Immutable once computed at publish time.Normalized file tree construction
The digest is computed from the logical file tree of the release, not from any particular archive container. Here is how the normalized file tree is constructed:Collect the published release files
Gather all files that are part of the release subject. For hosted archive (
.tar.gz) releases, this is the set of valid regular-file entries in the submitted archive. For Git-backed releases, this is the set of regular files materialized from the concrete Git reference in the release metadata.Exclude non-release material
Remove archive/container metadata, VCS administrative directories (such as
.git/), and implementation-local transient files. These are never part of the normalized file tree.Normalize paths
Convert all paths to a stable relative-rooted form: forward slashes only, relative to the volume root, no
. or .. segments, no absolute paths. Duplicate normalized paths are invalid and cause digest construction to fail. Unicode path strings are interpreted as UTF-8 and must not be silently normalized between Unicode normalization forms.Sort entries lexicographically
Sort all file entries by their normalized path. The sort order must be stable and deterministic.
Encode the canonical byte stream
For each sorted file entry, write one record in the canonical format. Concatenate all records in sorted order without any separator.
Canonical byte stream encoding
Each file entry in the byte stream uses this exact format:<normalized-path>is the path as normalized in step 3 above<executable-flag>is1when the file is executable,0otherwise — the executable bit is the only mode-derived metadata included<byte-length>is the decimal byte length of the raw content (not a character count)\nis a single LF byte (0x0A)<raw-content-bytes>is the file content exactly as present in the release, including binary bytes and original line endings
The sha256: hash format
Content hashes are represented assha256: followed by lowercase hexadecimal:
integrity field of release metadata returned by the bibliotheca API:
Verification steps
After downloading a release, verify it before installation or trust evaluation:Resolve the release subject
Fetch exact release metadata from the bibliotheca. This gives you the authoritative
integrity value for the release.Construct the normalized file tree
Extract the downloaded archive or materialize the Git-backed release files. Apply the normalization and sorting rules described above.
Compare against the published integrity value
Compare your computed
sha256:<hex> string against the integrity field in the release metadata. The comparison must be exact and byte-for-byte.Bibliothecas compute and store the
integrity value during the release finalization step, before
the release becomes available for download. You should never receive a release from a conforming
bibliotheca without an integrity value.CDN and Git-backed delivery
The delivery mechanism does not change the release subject or the integrity check requirement.- CDN-backed releases
- Git-backed releases
The release metadata includes a
dist.url pointing to a .tar.gz archive. Download the
archive, extract the regular files, apply the normalization rules, and verify the computed
digest against integrity. HTTP redirects, CDN caching, and backend storage choices are all
transparent to the integrity check.What is excluded from the file tree
The following items are never part of the normalized file tree and therefore never affect the digest:- Archive timestamps, ownership metadata, and extended attributes
- VCS administrative directories (
.git/,.hg/, etc.) - Symlinks, hardlinks, Git submodules, device nodes, and sockets — these are invalid entries and cause digest construction to fail rather than being silently skipped
- Platform-specific mode bits other than the executable bit
- Implementation-local transient build outputs that are not part of the published release subject
- Generated files that are not explicitly included in the published release subject