Skip to main content

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, and DeleteSurface).
  • State Management: Reactive state tracking driven by a high-performance custom Signal implementation and decoupled hierarchical models (SurfaceGroupModel, SurfaceModel, and ComponentNode layers).
  • 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_core library 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 target DataContext execution environments.

3. Message Processing (src/a2ui/core/processing)

  • MessageProcessor: A stateless protocol processor. Translates raw incoming A2UI messages into structural mutations across the SurfaceGroupModel layer.

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

a2ui_core-0.0.4.tar.gz (99.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

a2ui_core-0.0.4-py3-none-any.whl (71.7 kB view details)

Uploaded Python 3

File details

Details for the file a2ui_core-0.0.4.tar.gz.

File metadata

  • Download URL: a2ui_core-0.0.4.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

Hashes for a2ui_core-0.0.4.tar.gz
Algorithm Hash digest
SHA256 26a48426c4f938708b70f8c9cb848596fac4fbc2a4b9314b28be9e4c28d8544d
MD5 c0336e67985a08031ab3288b9648f368
BLAKE2b-256 b2ef807389991453fd2f095f7e740f133517bb7c1126bd3b9418c6eb6bc2afad

See more details on using hashes here.

Provenance

The following attestation bundles were made for a2ui_core-0.0.4.tar.gz:

Publisher: a2ui-py@oss-exit-gate-prod.iam.gserviceaccount.com

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.
  • Statement: Publication detail:
    • Token Issuer: https://accounts.google.com
    • Service Account: a2ui-py@oss-exit-gate-prod.iam.gserviceaccount.com

File details

Details for the file a2ui_core-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: a2ui_core-0.0.4-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

Hashes for a2ui_core-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a50b56d527118fb890cc1e6191608d11fd7ee2859a8712d45e8bab5a55738a6e
MD5 bffeb420a5ae4fd718a573af1603c67b
BLAKE2b-256 30dd8f8bf8de5d4906bb6f496dce8751e6267c56e7ad9a2b6d85ce31abe7250c

See more details on using hashes here.

Provenance

The following attestation bundles were made for a2ui_core-0.0.4-py3-none-any.whl:

Publisher: a2ui-py@oss-exit-gate-prod.iam.gserviceaccount.com

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.
  • Statement: Publication detail:
    • Token Issuer: https://accounts.google.com
    • Service Account: a2ui-py@oss-exit-gate-prod.iam.gserviceaccount.com

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page