open-standards/wai/wai-app/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

40 lines
1.8 KiB
TOML

[package]
name = "wai-app"
version = "0.1.0"
edition = "2024"
license = "Apache-2.0"
description = "WAI's widgets for joule-ui, and Create, as a library with no binary: a registry of WAI widgets (rooms, watching together, a show, chat, a poll, the room's video, receipts, energy) for agent-emitted surfaces, the guide a model writes against, the plan of the room an app needs, the files of a starter project (which `wai create --from app.oui` writes), a WebAssembly build for the page that renders an app while a model streams it, and the bridge on loopback a coding agent streams a program into that page through (`wai mcp --toolset app`)."
repository = "https://git.transaction.science/Transaction-Science/open-standards"
publish = false
# Its own workspace and Cargo.lock, like the other crates beside wai-rs.
[workspace]
# A library: `wai` (wai-rs, the feature `app`) is its command line and its MCP server, and
# the page's WebAssembly build is the cdylib.
[lib]
crate-type = ["cdylib", "rlib"]
[dependencies]
joule-ui-core = { path = "../../joule-ui/joule-ui-rs/crates/joule-ui-core" }
joule-ui-lang = { path = "../../joule-ui/joule-ui-rs/crates/joule-ui-lang" }
joule-ui-interaction = { path = "../../joule-ui/joule-ui-rs/crates/joule-ui-interaction" }
joule-ui-catalogue = { path = "../../joule-ui/joule-ui-rs/crates/joule-ui-catalogue" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
ed25519-dalek = "2"
sha2 = "0.10"
bs58 = "0.5"
# Pinned to the wasm-bindgen CLI the build runs: the two must match exactly.
wasm-bindgen = { version = "=0.2.127", optional = true }
[features]
default = []
# The page's WebAssembly surface (src/web.rs), built for wasm32-unknown-unknown with
# `--no-default-features --features web`.
web = ["dep:wasm-bindgen"]
[profile.release]
opt-level = "s"
lto = true
codegen-units = 1