Browse the documentation

Preview documentation for AEL Beta 0.0.1 — launching soon

Packages

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

Status

Planned for AEL Beta 0.0.1. AEL is not available yet.

Two kinds of package

Official 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 will never changeThe address and fingerprint your project records; AEL will refuse the file if it ever changes
Listed on the registryYesNever

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

What packages will give you

  • One manifest and one lock file. pack.ael will declare the packages a project uses, and pack.lock will record the exact versions, origins and fingerprints a build used, so builds repeat, even offline.
  • Folder scopes. Each folder of a project will be able to add its own packages without affecting the rest.
  • Safe changes. Adding, installing, updating and removing packages will be atomic and safe to roll back, and a package will never run an install script.
  • Explicit exports. You will select exactly the exports you use, and the compiler will flag selections you never use.
  • Only what you use will ship. An HTTP-only app will carry no gRPC or WebSocket code, and a GET-only API no POST handlers.
  • Verified before use. AEL will verify every package before using it, whatever its host: its fingerprint, its contents and how it was built.
  • Nothing will download at startup. Your lock file will pin the exact versions you built with, and nothing will download when an app starts.

Two commands, two jobs

  • ael pack (command names may change before launch) will manage the packages a project uses: add, install, update, remove, lock and inspect them.
  • ael package will build a package file from your own project, ready for you to host.

Keep the two apart: ael pack add will add someone else's package to your project; ael package will make 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 will publish signed packages, and what your tools will check.
  • Package catalog: the families of official packages planned for the beta.
  • 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 will check before it uses a package, and what those checks will and will not promise.