A2UI Python SDK - Core Library
Project description
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, andComponentNodelayers). - 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).
[!IMPORTANT] Specification Support: The
a2ui_corelibrary strictly targets the A2UI specification v0.9 and onwards. Unlike client-side renderers that may support legacy v0.8 layouts for backward compatibility, this Python core library does not support legacy v0.8 protocol definitions.
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[Components Model]
SM -->|State Context| DM[DataModel]
SCM --> GB[GenericBinder]
DM --> GB
GB -->|Re-resolves dynamic values| CN[ComponentNode<br/>Resolved Tree]
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.ComponentNode: Represents a live, reactively bound component instance in the final visual tree hierarchy. Automatically disposes of nested resources and subscriptions when unmounted.SurfaceModel: Orchestrates components and data model pipelines for a single viewport surface.SurfaceGroupModel: Manages a collection of active client rendering surfaces.
2. Rendering Engine (src/a2ui/core/rendering)
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 agent_sdks/python directory:
uv sync
Running Tests
Run all unit, conformance, and structural integrity test suites:
# From the package directory (agent_sdks/python/a2ui_core)
uv run pytest
Code Formatting
Format and lint source files before committing changes:
uv run pyink .
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file a2ui_core-0.0.3.tar.gz.
File metadata
- Download URL: a2ui_core-0.0.3.tar.gz
- Upload date:
- Size: 99.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
960d5f8f6ccc8c6f5d5446db25b3373e1539857761c44b5c4cc956c2ea1c64b6
|
|
| MD5 |
b38abfa7ec25ffb09e50fc3ef5c01fcb
|
|
| BLAKE2b-256 |
718cb9c5c6edc121270432d5eeff76a426669e479b7ad7e276a580a125295a35
|
Provenance
The following attestation bundles were made for a2ui_core-0.0.3.tar.gz:
Publisher:
a2ui-py@oss-exit-gate-prod.iam.gserviceaccount.com
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
a2ui_core-0.0.3.tar.gz -
Subject digest:
960d5f8f6ccc8c6f5d5446db25b3373e1539857761c44b5c4cc956c2ea1c64b6 - Sigstore transparency entry: 1931453317
- Sigstore integration time:
-
Token Issuer:
https://accounts.google.com -
Service Account:
a2ui-py@oss-exit-gate-prod.iam.gserviceaccount.com
-
Statement type:
File details
Details for the file a2ui_core-0.0.3-py3-none-any.whl.
File metadata
- Download URL: a2ui_core-0.0.3-py3-none-any.whl
- Upload date:
- Size: 71.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51a860268f71e2338e909e4608856175d23e7a37250afaf239c52c5ca268448c
|
|
| MD5 |
532afc16c9bbb070e7a31d776396381d
|
|
| BLAKE2b-256 |
b7f68bad65d4e871c76541523dd7cbb78cfcda9ee9d5f04592bd344243d3b1eb
|
Provenance
The following attestation bundles were made for a2ui_core-0.0.3-py3-none-any.whl:
Publisher:
a2ui-py@oss-exit-gate-prod.iam.gserviceaccount.com
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
a2ui_core-0.0.3-py3-none-any.whl -
Subject digest:
51a860268f71e2338e909e4608856175d23e7a37250afaf239c52c5ca268448c - Sigstore transparency entry: 1931453276
- Sigstore integration time:
-
Token Issuer:
https://accounts.google.com -
Service Account:
a2ui-py@oss-exit-gate-prod.iam.gserviceaccount.com
-
Statement type: