From 504f83fb8e62d677de41c06a11aa184795a44639 Mon Sep 17 00:00:00 2001 From: Jacob Simionato Date: Wed, 28 Jan 2026 08:43:37 +1030 Subject: [PATCH 1/2] docs: Fix discrepancies between v0.8 spec/docs and schemas Fixes #495 - Update standard catalog ID in protocol spec to match schema (a2ui.org:standard_catalog_0_8_0). - Rename 'Checkbox' to 'CheckBox' in component reference to match schema. - Update icon example in component reference to use 'check' instead of 'check_circle' (matches schema enum). --- docs/reference/components.md | 4 ++-- specification/v0_8/docs/a2ui_protocol.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/reference/components.md b/docs/reference/components.md index 3476eb54b..29a63fb4b 100644 --- a/docs/reference/components.md +++ b/docs/reference/components.md @@ -91,7 +91,7 @@ Display icons using Material Icons or custom icon sets. "id": "check-icon", "component": { "Icon": { - "name": {"literalString": "check_circle"} + "name": {"literalString": "check"} } } } @@ -169,7 +169,7 @@ Boolean toggle. { "id": "terms-checkbox", "component": { - "Checkbox": { + "CheckBox": { "label": {"literalString": "I agree to the terms"}, "value": {"path": "/form/agreedToTerms"} } diff --git a/specification/v0_8/docs/a2ui_protocol.md b/specification/v0_8/docs/a2ui_protocol.md index b546f7ed1..0539a3410 100644 --- a/specification/v0_8/docs/a2ui_protocol.md +++ b/specification/v0_8/docs/a2ui_protocol.md @@ -167,7 +167,7 @@ A2UI's component model is designed for flexibility, separating the protocol from A **Catalog** defines the contract between the server and the client for the UI that can be rendered. It contains a list of supported component types (e.g., `Row`, `Text`), their properties, and available styles. A catalog is defined by a **Catalog Definition Document**. -There is a **Standard Catalog** associated with each version of the A2UI protocol. For v0.8, its identifier is `https://github.com/google/A2UI/blob/main/specification/v0_8/json/standard_catalog_definition.json`. +There is a **Standard Catalog** associated with each version of the A2UI protocol. For v0.8, its identifier is `a2ui.org:standard_catalog_0_8_0`. Catalog IDs are simple string identifiers. While they can be anything, it is conventional to use a URI within a domain that you own, to simplify debugging, avoid confusion, and avoid name collisions. Furthermore, if any changes are made to a catalog that could break compatibility between an agent and renderer, a new `catalogId` **must** be assigned. This ensures clear versioning and prevents unexpected behavior if an agent has changes but the client does not, or vice versa. From 17fc8227a3519e193fc3017035c8adbd8374f3f9 Mon Sep 17 00:00:00 2001 From: Jacob Simionato Date: Wed, 28 Jan 2026 09:39:54 +1030 Subject: [PATCH 2/2] Fix catalog ids for v0.8 --- specification/v0_8/docs/a2ui_protocol.md | 2 +- specification/v0_8/docs/custom_catalog_changes.md | 2 +- specification/v0_8/json/a2ui_client_capabilities_schema.json | 2 +- specification/v0_8/json/server_to_client.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/specification/v0_8/docs/a2ui_protocol.md b/specification/v0_8/docs/a2ui_protocol.md index 0539a3410..b546f7ed1 100644 --- a/specification/v0_8/docs/a2ui_protocol.md +++ b/specification/v0_8/docs/a2ui_protocol.md @@ -167,7 +167,7 @@ A2UI's component model is designed for flexibility, separating the protocol from A **Catalog** defines the contract between the server and the client for the UI that can be rendered. It contains a list of supported component types (e.g., `Row`, `Text`), their properties, and available styles. A catalog is defined by a **Catalog Definition Document**. -There is a **Standard Catalog** associated with each version of the A2UI protocol. For v0.8, its identifier is `a2ui.org:standard_catalog_0_8_0`. +There is a **Standard Catalog** associated with each version of the A2UI protocol. For v0.8, its identifier is `https://github.com/google/A2UI/blob/main/specification/v0_8/json/standard_catalog_definition.json`. Catalog IDs are simple string identifiers. While they can be anything, it is conventional to use a URI within a domain that you own, to simplify debugging, avoid confusion, and avoid name collisions. Furthermore, if any changes are made to a catalog that could break compatibility between an agent and renderer, a new `catalogId` **must** be assigned. This ensures clear versioning and prevents unexpected behavior if an agent has changes but the client does not, or vice versa. diff --git a/specification/v0_8/docs/custom_catalog_changes.md b/specification/v0_8/docs/custom_catalog_changes.md index d800bc012..e1f2bd142 100644 --- a/specification/v0_8/docs/custom_catalog_changes.md +++ b/specification/v0_8/docs/custom_catalog_changes.md @@ -45,7 +45,7 @@ Your responsibilities are to accurately declare your capabilities and render sur 1. **Declare capabilities on every request**: For every A2A message your application sends, your library must inject the `a2uiClientCapabilities` object into the top-level `metadata` field. -2. **Populate `supportedCatalogIds`**: In the capabilities object, populate this array with the string identifiers of all pre-compiled catalogs your renderer supports. If your renderer supports the standard catalog for v0.8, you **should** include its ID: `a2ui.org:standard_catalog_0_8_0`. +2. **Populate `supportedCatalogIds`**: In the capabilities object, populate this array with the string identifiers of all pre-compiled catalogs your renderer supports. If your renderer supports the standard catalog for v0.8, you **should** include its ID: `https://github.com/google/A2UI/blob/main/specification/v0_8/json/standard_catalog_definition.json`. 3. **Provide `inlineCatalogs` (optional)**: If your renderer supports dynamically generating or defining catalogs at runtime, include their full, valid Catalog Definition Documents in the `inlineCatalogs` array. diff --git a/specification/v0_8/json/a2ui_client_capabilities_schema.json b/specification/v0_8/json/a2ui_client_capabilities_schema.json index b42df0039..519f0e9e6 100644 --- a/specification/v0_8/json/a2ui_client_capabilities_schema.json +++ b/specification/v0_8/json/a2ui_client_capabilities_schema.json @@ -6,7 +6,7 @@ "properties": { "supportedCatalogIds": { "type": "array", - "description": "The URI of each of the catalogs that is supported by the client. The standard catalog for v0.8 is 'a2ui.org:standard_catalog_0_8_0'.", + "description": "The URI of each of the catalogs that is supported by the client. The standard catalog for v0.8 is 'https://github.com/google/A2UI/blob/main/specification/v0_8/json/standard_catalog_definition.json'.", "items": { "type": "string" } diff --git a/specification/v0_8/json/server_to_client.json b/specification/v0_8/json/server_to_client.json index 17c829814..ba189470d 100644 --- a/specification/v0_8/json/server_to_client.json +++ b/specification/v0_8/json/server_to_client.json @@ -15,7 +15,7 @@ }, "catalogId": { "type": "string", - "description": "The identifier of the component catalog to use for this surface. If omitted, the client MUST default to the standard catalog for this A2UI version (a2ui.org:standard_catalog_0_8_0)." + "description": "The identifier of the component catalog to use for this surface. If omitted, the client MUST default to the standard catalog for this A2UI version (https://github.com/google/A2UI/blob/main/specification/v0_8/json/standard_catalog_definition.json)." }, "root": { "type": "string",