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.1.tar.gz (95.8 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.1-py3-none-any.whl (69.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: a2ui_core-0.0.1.tar.gz
  • Upload date:
  • Size: 95.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux rodete","version":null,"id":"rodete","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for a2ui_core-0.0.1.tar.gz
Algorithm Hash digest
SHA256 f29d0828d36c6214aa19930a9f10546dabc7bfd2827136ee200902d6315abe9a
MD5 0e84f2b6c1479d30fd6874a47d20c190
BLAKE2b-256 7eaa3e9ac33baa14709b3ab068df4a6ab2fa2b2600bfb15fdf26a0d32e59a9e8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: a2ui_core-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 69.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux rodete","version":null,"id":"rodete","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for a2ui_core-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 850ead09f66c9b3c5a650c0a4cf2b6ee5fc0af88472de129a4532f6e37bbfea3
MD5 64e5b75c4bf1011bcd54935ea3d741d8
BLAKE2b-256 9bdd1703dc0514b140d17ab8803a00fbbf0f7e644f2b422bdba7a7da0cc4b4aa

See more details on using hashes here.

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