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 packages | Private packages | |
|---|---|---|
| Published by | OpenEng only | You |
| Come from | The official package registry at pack.ael.openeng.ai | A file you host: a release download in your own GitHub or GitLab project, any https address, or a file inside your project |
| Protected by | OpenEng's signature on every version; a published version will never change | The address and fingerprint your project records; AEL will refuse the file if it ever changes |
| Listed on the registry | Yes | Never |
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.aelwill declare the packages a project uses, andpack.lockwill 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 packagewill 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.