Vigilo.toml Reference
Vigilo.toml tells vigilo how to prepare and publish an evaluator WebAssembly component. It lives beside the evaluator crate Cargo.toml.
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.wit"
world = "evaluator-world"
package = "vigilo:evaluator"
version = "0.1.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]
Optional but recommended. Declares the WIT contract implemented by the evaluator.
[wit]
path = "../../wit/evaluator.wit"
world = "evaluator-world"
package = "vigilo:evaluator"
version = "0.1.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: whentrue, publish fails if the WIT file does not match these values
If [wit] is omitted, the evaluator can still be prepared, but registry interface metadata is not populated from the manifest.
[profile.<name>]
Required for every build profile 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 evaluators publish <path> --release |
| custom | selected by vigilo evaluators 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 evaluator identifier. Publishing changed content under an existing identifier is rejected. Bump 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 evaluators publish ./evaluators/my-evaluator --release