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