Quirl0.1 RC
ArchitectureCrates

quirl-contract

Canonical Quirl project documentation synced from crates/quirl-contract/README.md.

quirl-contract owns Quirl's versioned agent and package machine contracts. It depends inward on quirl-core for ShellError and quirl-catalog for semantic command facts. It has no Lua, UI, process, or CLI dependency.

The crate provides:

  • deny-unknown agent catalog, context, manifest, and validation schemas;
  • deterministic installed-content hashes and comprehensive structural schema fingerprints;
  • relevance-ranked context selection under a documented token estimate;
  • deny-unknown plugin.toml parsing and Quirl-version/capability checks; and
  • package public-command, Phase 2 contribution, source-audit reconciliation, and network-free publish-plan gates.

The CLI is responsible for adapting the generated Lua HOST_API into these contracts, supplying trusted installed catalog/HOST_API hash anchors, reading package files, and using quirl-lua for non-executing parse/lint checks. This preserves the one-way dependency graph: quirl-contract does not depend on the Lua layer. Validation never executes Lua.