Elizon Docs
Features & Specs

The .pkg format

What's inside a built Package artifact, and the limits it must respect.

A .pkg is a zip archive written by build. You never need to open one, but it helps to know what it holds.

elizon.yaml
intake.json
voice.json
sip.json
digests.json
signature.json (added by sign)
EntryContents
elizon.yamlYour manifest, byte for byte.
<collection>/<name>.jsonEach object's portable definition, as canonical JSON (keys sorted). A Skill's folder is packed into one entry.
voice.json, sip.jsonThe voice configuration and SIP routing template, if the Package has them.
the evaluation suiteAt the path evaluation.suite names.
.elizon/digests.jsonThe digest manifest: format version, and the SHA-256 and size of every other entry.
.elizon/signature.jsonThe signature over the digest manifest. Present only after sign.
.elizon/digests.json
{
  "formatVersion": 1,
  "algorithm": "sha256",
  "entries": [
    { "path": "agents/escalation.json", "bytes": 2114, "sha256": "98973866e574faf7…" },
    { "path": "agents/intake.json", "bytes": 2010, "sha256": "242c09b5b4045e69…" }
  ]
}

Reading without extracting

Studio's Review step and the install pre-check read elizon.yaml straight from the archive's index, without unpacking anything. An installer sees the full inventory, the compliance block and the signature result before anything is written.

Limits

LimitValue
Artifact size on disk50 MB
Total uncompressed content50 MB
Any single file5 MB uncompressed
One Skill's files, in total10 MB
Entries in the archive5,000
Objects in one Package100
Folder depth of an entry path8 segments

A Package over a limit fails at build (PKG_LIMIT_EXCEEDED, PKG_ENTRY_TOO_LARGE, PORTABLE_SKILL_TOO_LARGE) rather than producing an artifact that could never install. If you hit the object limit, split the Package into more than one.

Safety

The reader refuses entries with absolute paths, .. segments or symlinks (PKG_UNSAFE_ENTRY_PATH), duplicate entries, and any file whose hash doesn't match the digest manifest (PKG_DIGEST_MISMATCH). Your source folder may not contain .elizon/digests.json or .elizon/signature.json either; build and sign write those.