A2UI Core Library (a2ui_core)
a2ui_core is a framework-agnostic Python library containing the core data models, reactive state management, and JSON schema validation logic for the A2UI protocol (v0.9 and onwards).
It provides the logic-neutral, visual-agnostic layer used by python-based server agents, rendering backends, and conformance testing frameworks.
Features
- Protocol Handling: Symmetrical processing and validation of A2UI specification envelope messages (
CreateSurface,UpdateComponents,UpdateDataModel, andDeleteSurface). - State Management: Reactive state tracking driven by a high-performance custom
Signalimplementation and decoupled hierarchical models (SurfaceGroupModel,SurfaceModel, andSurfaceComponentsModel). - DataContext: Advanced data binding and function execution environment with support for dynamic path resolution and automatic dependency updates.
- Catalog System: Extensible catalog registry supporting compiled object models (
ModelCatalog) and raw text-based schemas (JsonCatalog) for LLM prompt integration. - Validation & Integrity: Strict validation engine combining Pydantic (compiled envelopes) and JSON Schema Draft 2020-12 (dynamic catalogs) with advanced topological and integrity checks (cyclic layout detection, reachability analysis, orphan tracking, and recursive reference verification).
Architecture
The a2ui_core architecture aligns symmetrically with the client-side @a2ui/web_core engine, allowing exact parity when evaluating state representations and resolving dynamic layout values.
graph TD
MP[MessageProcessor] -->|Executes Messages| SGM[SurfaceGroupModel]
SGM -->|Manages active surfaces| SM[SurfaceModel]
SM -->|Dynamic Components| SCM[SurfaceComponentsModel]
SM -->|State Context| DM[DataModel]
SCM --> GB[GenericBinder]
DM --> GB
Core Packages
1. State Layer (src/a2ui/core/state)
Signal: Thread-safe (where applicable) core reactive primitive. Allows components and rendering pipelines to subscribe to precise state increments.DataModel: Active state key-value dictionary path observer supporting reactive wildcard queries and path resolution.SurfaceComponentsModel: Manages the adjacency map of component configurations and topological validation for a surface.SurfaceModel: Orchestrates components and data model pipelines for a single viewport surface.SurfaceGroupModel: Manages a collection of active client rendering surfaces.
2. Resolution Engine (src/a2ui/core/resolution)
DataContext: Coordinates lexical scopes, resolves data paths (e.g.,/some/data), and handles dynamic expressions.GenericBinder: Subscribes to relevant data path models and binds component properties dynamically.ComponentContext: Connects standard component models with their targetDataContextexecution environments.
3. Message Processing (src/a2ui/core/processing)
MessageProcessor: A stateless protocol processor. Translates raw incoming A2UI messages into structural mutations across theSurfaceGroupModellayer.
4. Catalogs (src/a2ui/core/catalog)
JsonCatalog: Loads raw JSON schemas directly, compiling schema-validated references dynamically for prompt injection.ModelCatalog: Compiles catalog rules based on structured Pydantic or standard object class configurations.
5. Basic Catalog (src/a2ui/core/basic_catalog)
- Basic Component Models: Symmetrical declarations of core out-of-the-box components (
TextComponent,ButtonComponent,CardComponent, etc.) conforming directly to standard schema configurations. BasicCatalog: Factory provider initializing standard schemas and layout parameters.
6. Symmetrical Schemas (src/a2ui/core/schema)
- Pydantic Message Wrappers: Compiled Pydantic models representing
A2uiMessage, envelopes, and capabilities configuration structures. constants: Spec constants defining default reachability links and single/list component reference parameters.
Development & Testing
We use uv for extremely fast and reliable environment management and task execution.
Setup Environment
To synchronize the virtual environment and dependencies, run the following from the python/ directory:
uv sync
Running Tests
Run all unit, conformance, and structural integrity test suites:
# From the package directory (python/a2ui_core)
uv run pytest
Code Formatting
Format and lint source files before committing changes:
uv run pyink .
Release files for a2ui-core 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| a2ui_core-0.2.0.tar.gz | 184.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| a2ui_core-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 363.1 kB
Release files / a2ui_core-0.2.0.tar.gz
| Download URL | a2ui_core-0.2.0.tar.gz |
|---|---|
| Size | 184.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e7ac301ca4f83acd817c9835d55c42af7d458fa9662acefdb4c9be45a719ddc2
|
|
BLAKE2b-256 checksum How to use checksums |
8d496c6f675802a690a3342af9296f8f9b14d7ef996936a1efa139bf2180aa12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by Google Cloud, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / a2ui_core-0.2.0-py3-none-any.whl
| Download URL | a2ui_core-0.2.0-py3-none-any.whl |
|---|---|
| Size | 178.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
75161fc5493395fcdb1473f2deec14bc13280d79bb50beb1d8b8a85c3d4a0b6f
|
|
BLAKE2b-256 checksum How to use checksums |
ae20db1b2f2226d82497ba50dafc84f671f518577ac2f2fc5a9d98762163424c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by Google Cloud, verified by PyPI on Sep 28, 2026.
Transparency log