Skip to main content

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 to Vigilo.toml
  • world: expected WIT world name
  • package: expected WIT package name
  • version: expected WIT package version
  • interface: expected exported evaluator interface
  • strict: retained for manifest compatibility; supported ABI declarations are always verified, even when this is false

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:

ProfilePublish selection
devdefault when no profile flag is provided
releaseselected by vigilo evaluator publish <path> --release
customselected 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