wai/wai-ui becomes wai/wai-app, the library `wai_app`, with no binary and no `cli` feature: `wai`, built with its feature `app`, is its command line and its MCP server. Its served files are named wai-app-* (the WebAssembly package wai_app), the recordings wai-app-*.json. - export.rs gives the files of a starter project for a program and the facts its project file holds (title, summary, `wai dev`'s mode for the app's room, a watch room's file, a show's audience); `wai create --from app.oui` writes them, the project file and the licence. The export no longer writes app.json, room.toml, relay.toml, package.json, check.mjs or serve.mjs: wai.json names the room, `wai dev` runs it and `wai app check` checks the project. Its README and AGENTS.md say so, and the README its licence. - runtime.rs reads a Create runtime by its listing (create/wai-app-runtime.json), checking each file's SHA-256. - bridge.rs keeps the bridge on 127.0.0.1 a coding agent streams a program into the page through, with a stream helper; the stdio server, its tools and the binary's test go (`wai mcp --toolset app` serves them). - The page's Export hands over app.oui, the program in its canonical form, and the command that makes it a project; the ZIP writer and the page's export in WebAssembly go. The page names `wai mcp --toolset app` for the coding agent. - joule-ui/docs/create.md §4 and §5: the export as `wai create --from app.oui`, and the agent's tools app_guide, app_check, app_stream and app_export. Co-Authored-By: Claude Opus 5.5 <[email protected]>
40 lines
1.7 KiB
TOML
40 lines
1.7 KiB
TOML
[package]
|
|
name = "wai-app"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
rust-version = "1.97"
|
|
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" }
|
|
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
|