Make A2UI v0.9 an A2A Extension and Unify Catalogs #452
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR formalizes the A2UI v0.9 specification as a first-class Agent-to-Agent (A2A) extension, similar to the 0.8 specification. It streamlines the protocol by unifying UI components and client-side functions into a single Catalog structure.
Additionally, this PR improves the schema testing infrastructure by transitioning to a Python-based test runner capable of validating complex scenarios, including the new unified catalogs and client-side logic.
Key Changes
1. A2A Extension Formalization
a2ui_extension_specification.mddefining the extension URI (https://a2ui.org/a2a-extension/a2ui/v0.9) and MIME type (application/json+a2ui) (mostly a copy of what is in 0.8)capabilitiesmessage with ana2uiClientCapabilitiesobject sent in the A2A metadata envelope. This ensures that the agent always has the latest client capabilities without an explicit handshake (same as 0.8).2. Unified Catalog System
standard_catalog_definition.jsonandstandard_function_catalog.jsoninto a single, unifiedstandard_catalog.json.Catalogobject, simplifying discovery and inline definitions.ChoicePicker,Slider, andDateTimeInputto enforce stricter property requirements (e.g.,min/maxfor Sliders).3. Schema Architecture Refactoring
FunctionCalland logic primitives fromexpression_types.jsonintocommon_types.json.expression_types.json,standard_function_catalog.json, andvalidate_example.sh.4. Testing Infrastructure
run_tests.py, replacing the previous bash script. The test runner now supports:Buttonchecks andChoicePickerconstraints.contact_form_example.jsonlto use the latest unified catalog syntax and added function calling.contact_form_example.jsonlintospecification/0.9/test/cases.Verification Results
python3 specification/0.9/test/run_tests.py.