Skip to main content

Documentation Index

Fetch the complete documentation index at: https://filepacks.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

manifest.json is UTF-8 JSON written with two-space indentation and one trailing newline. The current public generic manifest uses format_version: 1.

Annotated example

{
  "artifact_name": "example",
  "created_with": "filepacks",
  "file_count": 1,
  "files": [
    {
      "hash": "64 lowercase hex SHA-256 digest",
      "path": "hello.txt",
      "size": 12
    }
  ],
  "format_version": 1,
  "payload_digest": "64 lowercase hex SHA-256 digest",
  "total_bytes": 12
}

What the fields mean

FieldMeaningUsed by
artifact_nameHuman-readable name of the artifactpack, inspect, compare results
created_withProducer identity; must be filepacksmanifest validation
file_countNumber of payload filesinspect, verify
files[]Sorted file descriptorsverify, compare
format_versionManifest version; current public value is 1manifest validation
payload_digestDigest over the sorted manifest file listverify
total_bytesSum of payload file sizesinspect, verify

Required fields

FieldRule
artifact_namenon-empty string
created_withmust be filepacks
file_countnon-negative integer matching files.length
filessorted payload file descriptors
format_versionmust be 1
payload_digestSHA-256 digest over the sorted file list
total_bytessum of all file sizes
Each file descriptor contains:
FieldRule
pathnormalized payload-relative path
sizenon-negative integer
hashlowercase hex SHA-256 digest of exact payload bytes

How the CLI uses the manifest

  • inspect prints a summary derived from artifact_name, format_version, file_count, and total_bytes
  • verify checks that the payload files still match files[] and payload_digest
  • compare compares the files[] lists from two artifacts by path, size, and hash

Validation behavior

The current public validator rejects manifests when:
  • artifact_name is empty
  • created_with is not filepacks
  • format_version is not 1
  • file paths are invalid
  • file entries are duplicated
  • file_count does not match the files list
  • total_bytes does not match file sizes
  • payload_digest does not match the sorted file list
The current public OSS validator also rejects typed artifact fields such as:
  • schema_version
  • artifact_type
Those are explicitly outside the public v0 OSS surface.

Payload digest computation

The manifest payload digest is computed from the sorted file list using UTF-8 input lines in this form:
<path>\0<size>\0<hash>\n
The SHA-256 of the concatenated sequence is payload_digest.