Browse the documentation

AEL 1.0.0

Packages

In AEL, the Agent Engineering Language, optional capabilities such as servers, model providers, caches and message brokers, storage and databases, vector stores and skills come as packages. A project adds only the packages it needs, and only the parts it actually uses reach your program.

Two kinds of package

AspectOfficial packagesPrivate packages
Published byOpenEng onlyYou
Come fromThe official package registry at pack.ael.openeng.aiA file you host: a release download in your own GitHub or GitLab project, any https address, or a file inside your project
Protected byOpenEng's signature on every version; a published version never changesThe address and fingerprint your project records; AEL refuses the file if it ever changes
Listed on the registryYesNever

Both kinds are written in AEL and ship as compiled, verified AEL, with no bundled native code and no install scripts. Your own libraries ship compiled, without your source.

What packages give you

  • One manifest and one lock file. pack.ael declares the packages a project uses, and pack.lock records the exact versions, origins and fingerprints a build used, so builds repeat, even offline.
  • Folder scopes. Each folder of a project can add its own packages without affecting the rest.
  • Safe changes. Adding, installing, updating and removing packages are atomic and safe to roll back, and a package never runs an install script.
  • Explicit exports. You select exactly the exports you use, and the compiler flags selections you never use.
  • Only what you use ships. An HTTP-only app carries no WebSocket code, and no gRPC code unless an edge is placed on the network, and a GET-only API no POST handlers.
  • Verified before use. AEL verifies every package before using it, whatever its host: its fingerprint, its contents and how it was built.
  • Nothing downloads at startup. Your lock file pins the exact versions you built with, and nothing downloads when an app starts.

Two commands, two jobs

  • ael pack manages the packages a project uses: add, install, update, remove, lock and inspect them.
  • ael package builds a package file from your own project, ready for you to host.

Keep the two apart: ael pack add adds someone else's package to your project; ael package makes your project into a package.

In this section

  • Using packages: the manifest, folder scopes, adding, installing, updating and removing packages, selecting exports and building offline.
  • Manifest reference: every field of pack.ael, version requirements, sources, names and limits.
  • The official registry: how pack.ael.openeng.ai publishes signed packages, and what your tools check.
  • Package catalog: the package families of AEL 1.0.0, from servers and model providers to storage and databases, vector stores and skills.
  • Creating a package: building your own package file with ael package, and the rule that every package is written in AEL.
  • Private packages: hosting your package file yourself and using it from other projects.
  • Security and provenance: what AEL checks before it uses a package, and what those checks do and do not promise.