Vigilo.toml Reference
The
tells vigilo how to prepare and publish an evaluator WebAssembly component.
It lives beside the evaluator crate
.
File Location
Place Vigilo.toml in the evaluator crate directory:
my-evaluator/
Cargo.toml
Vigilo.toml
src/
lib.rs
Complete Example
[package]
manifest = "Cargo.toml"
description = "Example evaluator"
tags = ["example", "quality"]
[package.metadata]
owner = "evaluators-team"
tier = "example"
[wit]
path = "../../wit/evaluator/v1.0.0/evaluator.wit"
world = "evaluator-world"
package = "vigilo:evaluator"
version = "1.0.0"
interface = "evaluator"
strict = true
[profile.dev]
wasm = "wasm32-wasip2/debug/my_evaluator.wasm"
[profile.release]
wasm = "wasm32-wasip2/release/my_evaluator.wasm"
[package]
manifest
Required. Path to the Cargo manifest file, relative to Vigilo.toml.
[package]
manifest = "Cargo.toml"
Current publishing code supports Cargo.toml. vigilo reads evaluator name, version, Cargo description, Cargo keywords, and optional [package.metadata.vigilo] from this manifest.
description
Optional. Human-readable evaluator description stored in the registry. When present, this overrides the Cargo package description.
[package]
description = "Basic English-only lexicon sentiment evaluator"
tags
Optional. Searchable evaluator tags stored in the registry. When present, these override Cargo package keywords.
[package]
tags = ["sentiment", "classification", "example"]
[package.metadata]
Optional. Extra evaluator metadata stored as JSON in the registry. When present, this overrides [package.metadata.vigilo] from Cargo.toml.
[package.metadata]
owner = "evaluators-team"
tier = "example"
[wit]
Required for publication. Declares the immutable implemented by the evaluator.
[wit]
path = "../../wit/evaluator/v1.0.0/evaluator.wit"
world = "evaluator-world"
package = "vigilo:evaluator"
version = "1.0.0"
interface = "evaluator"
strict = true
Fields:
path: path to the WIT file, relative toVigilo.tomlworld: expected WIT world namepackage: expected WIT package nameversion: expected WIT package versioninterface: expected exported evaluator interfacestrict: retained for manifest compatibility; supported ABI declarations are always verified, even when this isfalse
Publication fails when [wit] is omitted, the declared ABI is unsupported, the
referenced WIT does not match the declaration, or the compiled component does
not link against the selected host adapter. Use strict = true for clarity.
Before the first release, v1.0.0 is the only supported contract. Released WIT
files are immutable; see
Evaluator Compatibility for the ABI
release and upgrade rules.
[profile.<name>]
Required for every you want to publish. Each profile maps a name to a compiled Wasm artifact path.
[profile.release]
wasm = "wasm32-wasip2/release/my_evaluator.wasm"
The wasm path is joined to Cargo's target directory for the evaluator package. With the default Cargo target directory, the path above resolves to:
target/wasm32-wasip2/release/my_evaluator.wasm
Common profiles:
| Profile | Publish selection |
|---|---|
dev | default when no profile flag is provided |
release | selected by vigilo evaluator publish <path> --release |
| custom | selected by vigilo evaluator publish <path> --profile <name> |
Registry Identity
Published evaluators use the strict identifier format:
<namespace>/<name>:<version>
Current CLI publishing inserts into the built-in vigilo namespace and reads name and version from Cargo.toml.
The selected profile chooses which artifact path to publish; it is not part of
the .
Publishing changed content under an existing identifier is
rejected. Bump the Cargo.toml version before publishing changed evaluator
behavior or contract shape.
Stale Build Detection
vigilo compares the modification time of the selected wasm artifact against Cargo.toml. If the manifest was modified more recently than the wasm, publish fails with a stale-build error.
Rebuild the selected profile before publishing:
cargo build --manifest-path evaluators/my-evaluator/Cargo.toml --target wasm32-wasip2 --release
vigilo evaluator publish ./evaluators/my-evaluator --release