The render pipeline
- Validate. The description is clamped to safe limits before anything renders.
- Walk. The renderer recurses through the tree.
- Look up. Each node’s
typeis matched to a widget builder. - Build. The builder constructs the widget, reading properties directly off the node.
- Recurse. Children are rendered the same way.
Safety caps
Because the description is AI-generated, the renderer enforces hard limits so a malformed or oversized description can’t cause problems:
The same caps are enforced on both the assistant and the desktop, and the
A2UI schema tells the AI to stay well under them.
Layout constraint rules
Certain layout combinations are invalid and would fail at runtime. The schema instructs the AI to avoid them, and the renderer defends against them:- Never put
input_text,slider,progress, ordropdowndirectly in arow— wrap inexpandedor give an explicitwidth. - Never use
expanded/flexible/spaceroutside aroworcolumn. - Prefer
wrap: trueon rows with many children.
Telemetry & self-correction
The desktop records render successes and failures so problematic component shapes can be found and fixed. Two sources feed it: caught build errors, and the validator rejecting a malformed subtree. This telemetry can be fed back to the assistant so it learns to avoid shapes that don’t render — a feedback loop that improves generated UIs over time.Component catalog
Browse every renderable
type and its properties.