Package Manager (Cargo-backed)
The AIVI CLI uses Cargo as the dependency resolver and build tool. AIVI sources live in src/, and generated Rust is written to target/aivi-gen/.
Package Discovery
aivi search <query>searches crates.io with theaivikeyword and only presents AIVI packages.
Installing Dependencies
aivi install <spec>edits[dependencies]in the rootCargo.toml, then resolves the dependency with Cargo.- Installs are strict by default:
- the dependency must declare
[package.metadata.aivi]with at leastlanguage_versionandkind - dependencies must be
kind = "lib"(applications are not installable) - if the project declares
[project].language_versioninaivi.toml, the dependency'slanguage_versionmust match exactly
- the dependency must declare
--no-fetcheditsCargo.tomlbut skipscargo fetch(useful for offline workflows; validation happens viacargo metadata).
Dependency Specs
Supported <spec> formats:
name(registry; defaults to*)name@version(registry; also supportsname@latest)git+https://host/repo(.git)#rev=<sha>(git)path:../local-crate(path; the package name is inferred from the dependency'sCargo.tomlif available)
AIVI Package Metadata
An AIVI package is a Rust crate that declares:
toml
[package.metadata.aivi]
language_version = "0.1"
kind = "lib"For publishable packages, the entry field is also required:
toml
[package.metadata.aivi]
language_version = "0.1"
kind = "bin"
entry = "src/main.aivi"Packaging & Publishing
AIVI v0.1 intentionally delegates packaging and publishing to Cargo, but adds a small amount of preflight validation.
aivi packagerunscargo packageafter verifying that:aivi.tomlexists and parsesCargo.tomlcontains[package.metadata.aivi]consistent withaivi.toml
aivi publishrunscargo publishwith the same preflight validation.--dry-runforwards tocargo publish --dry-run--allow-dirtyand--no-verifyforward to Cargo