# A2UI v0.3.0 - Table of Contents Lightweight Elixir library for Google's A2UI protocol. Serve interactive, agent-driven UI surfaces from any BEAM app via declarative JSON over WebSocket — no Phoenix or LiveView required. ## Pages - [ex_a2ui](readme.md) - [ex_a2ui Roadmap](roadmap.md) - [Changelog](changelog.md) - [LICENSE](license.md) ## Modules - [A2UI](A2UI.md): Lightweight Elixir implementation of Google's A2UI (Agent-to-User Interface) protocol. - [A2UI.Action](A2UI.Action.md): An action triggered by user interaction with an A2UI component. - [A2UI.BoundValue](A2UI.BoundValue.md): A value that can be a literal, a data model binding (JSON Pointer path), or both. - [A2UI.Builder](A2UI.Builder.md): Pipe-friendly convenience functions for building A2UI surfaces. - [A2UI.Component](A2UI.Component.md): A single UI component in an A2UI surface. - [A2UI.Decoder](A2UI.Decoder.md): Decodes incoming A2UI v0.9 messages from JSON. - [A2UI.Encoder](A2UI.Encoder.md): Encodes A2UI Elixir structs into v0.9 JSON wire format. - [A2UI.Endpoint](A2UI.Endpoint.md): Plug endpoint for A2UI HTTP and WebSocket connections. - [A2UI.Server](A2UI.Server.md): Starts an A2UI WebSocket server, embeddable in any OTP supervision tree. - [A2UI.Socket](A2UI.Socket.md): WebSock handler implementing the A2UI message flow. - [A2UI.Supervisor](A2UI.Supervisor.md): OTP Supervisor that starts a Registry (for connection tracking) alongside Bandit. - [A2UI.Surface](A2UI.Surface.md): An A2UI surface — a canvas holding a flat list of components. - [A2UI.SurfaceProvider](A2UI.SurfaceProvider.md): Behaviour for defining A2UI surfaces and handling user actions.