All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
A2UI.Agentbehaviour anduse A2UI.Agentmacro for building agents with minimal boilerplateA2UI.Agent.send_message/2andsend_messages/2helpers for agent-to-client messagingA2UI.Connectionopaque handle for transport-agnostic client connections- SSE + JSON-RPC HTTP transport:
A2UI.Plug,A2UI.Plug.SSE,A2UI.Plug.JSONRPC,A2UI.Plug.ConnectionRegistry A2UI.Transport.SSEclient-side transport for connecting to SSE endpoints- A2A protocol transport binding:
A2UI.A2Aserver adapter,A2UI.Transport.A2Aclient transport (optional dep on:a2a ~> 0.2) A2UI.Protocol.Messages.Errormessage type for client-to-server error feedbackA2UI.Catalogmodule for compile-time component type validation against catalog schemas
- Agents track connections as
%{id => Connection.t()}map instead ofMapSetof PIDs (breaking for custom agent implementations that relied on the internal connection tracking format) - Demo agent refactored to use
A2UI.Agentbehaviour
- Form handling: added missing
phx-submitattribute - Catalog validation: accept custom
component_modulesin validation
- A2UI v0.9 protocol types: Surface, Component, DataModel, Messages
- JSONL parser for protocol message streams
- JSON Pointer (RFC 6901) implementation for data model access
- Data binding with path resolution and function call descriptors
- Component tree management with template expansion
- Surface manager for pure-functional state management
- Phoenix function components for all A2UI component types
- LiveView integration with two-way data binding and action dispatch
- Transport behaviour with local process-messaging implementation
- Video and AudioPlayer components
- Client-side validation via JS hooks (required, regex, length, numeric, email)
- Client-side formatting functions (formatString, formatNumber, formatCurrency, formatDate, pluralize)
- Server-side function evaluation (formatString, formatNumber, formatCurrency, formatDate, pluralize, boolean logic)
- JS interactivity hooks (A2UITabs, A2UIModal, A2UISubmit, A2UIValidation)
- Theming support via CSS variables (primaryColor, iconUrl, agentDisplayName)
- Local action support (openUrl, client-side function calls on Button)
- Demo application with
mix a2ui.demo
- README: corrected component count (16 → 18), removed completed items from "Not Yet Implemented"
- SPEC.md: added Known Gaps section documenting unimplemented spec features