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]>
38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown
# {{TITLE}}
|
|
|
|
A WAI app made with Create: {{SUMMARY}}
|
|
|
|
It is an ordinary WAI project, made by `wai create --from app.oui`. `app.oui` is the app, one
|
|
widget a line. The WAI widgets that render it, and the room client under them, are in `vendor/`.
|
|
`wai.json` names the room that `wai dev` runs for it.
|
|
|
|
## Run it
|
|
|
|
```sh
|
|
wai app check # the app, the room wai.json names for it, and the runtime under vendor/
|
|
wai dev # the relay, the room service and this page on http://127.0.0.1:8080/
|
|
```
|
|
{{WATCH}}
|
|
## What you see
|
|
|
|
{{WHAT}} The page's receipts show every action you take there, sealed into a log the
|
|
page signs and checks.
|
|
|
|
## Change it
|
|
|
|
Edit `app.oui` (the widgets and their signatures are in `AGENTS.md`), then run
|
|
`wai app check`. It refuses a line the registry does not accept, naming the line and the
|
|
reason. A change to the app's room (its kind, a show's audience, a watch room's file) goes into
|
|
`wai.json` too, and `wai app check` says when the two disagree.
|
|
|
|
## Development and production
|
|
|
|
Everything `wai dev` starts listens on 127.0.0.1 alone, and its keys are made in `.wai/`,
|
|
which is never committed. In production, the room service runs with keys of its own, kept
|
|
outside the repository, behind a front that serves this page with TLS and passes `/room-api/`
|
|
to the room service and `/moq` to the relay on the same origin. No model key or other secret is
|
|
part of this project.
|
|
|
|
## Licence
|
|
|
|
Apache-2.0: see `LICENSE`.
|