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]>
1.2 KiB
1.2 KiB
Working on this project
This is a WAI app. app.oui is the app, written in joule-ui's line language (SPEC §11 of
joule-ui): one widget a line, name = Widget(arguments), root first. The page renders
it with the WAI widgets in vendor/create/, and wai dev runs the room that wai.json names.
- To change the app, edit
app.oui, then runwai app check. A line the registry does not accept is refused with its line and a reason code; fix that line. - Keep
wai.json'sdevblock matching the app's room: aRoomis"mode": "room"; aWatchTogetheris"mode": "watch"with"watch": "media/<source>"(and"watch_ms"for a file that is not WAV); aShowis"mode": "show"with"audience"equal to its audience. - Run it with
wai dev;wai dev --checkchecks every piece and stops. - Do not edit
vendor/: it is the runtime, checked file by file againstvendor.json. - Never put a key, a token or any other secret in this repository. Development keys are
made in
.wai/bywai devand stay there. - WAI's tools for a coding agent:
wai mcp --toolset core,dev,app(wai setup-agentregisters it).app_checkchecks a program, aswai app checkdoes.
The language and the widgets
{{GUIDE}}