open-standards/joule-ui/joule-ui-rs/crates/joule-ui-a2ui/Cargo.toml
Transaction Science dd970f3407 The catalogue's check reads every keyword, and wai's manifests name no format
joule-ui-catalogue now holds the node form both ways: the reading of a node and the
catalogue writer. joule-ui-a2ui keeps its names on that reading, so wai-app depends on
the neutral crate and neither format's name is left under wai/, in a manifest or a
lock file. A test holds the two lock files and the manifest to that.

check_catalogue compares the document with what the registry writes, every keyword of
it, and reads it as a schema: on each node it builds, the catalogue and the reading
must agree. That includes a node with no props for a widget that requires some, a key
folding onto a slot of an open widget, and every child a widget does not admit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 03:08:05 -05:00

13 lines
671 B
TOML

[package]
name = "joule-ui-a2ui"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
description = "A2UI ingest for joule-ui — convert a Google A2UI declarative component tree into a validated joule-ui Widget tree, so an A2UI surface can be wrapped in joule-ui's metered, attested interaction loop. Ingest, not compete: A2UI/MCP-Apps is the converged agent-UI shape; joule-ui adds the sealed energy-accounted receipt it lacks."
[dependencies]
joule-ui-catalogue = { path = "../joule-ui-catalogue" }
joule-ui-core = { path = "../joule-ui-core" }
serde_json = { workspace = true }