Skip to content

Conversation

@jacobsimionato
Copy link
Collaborator

@jacobsimionato jacobsimionato commented Jan 16, 2026

This PR updates the A2UI v0.9 specification with the following changes:

  • DateTimeInput: Removed the outputFormat property as it was underspecified and better handled at the presentation layer. Added min and max properties to support date/time range constraints using ISO 8601 strings.
  • openUrl: Added a new openUrl function to the standard catalog to facilitate opening URLs (e.g., for links).
  • Schema Updates: Updated common_types.json and a2ui_client_capabilities.json to include void as a valid function return type, supporting the new openUrl function.
  • Generalized Actions: Generalized the action concept by moving the definition to common_types.json. It now supports:
    • Server-side actions (traditional object with name and context).
    • Local client-side actions via a function property or string shorthand (e.g., "action": "openUrl(${/url})").
    • Updated Button component to use this new shared Action type.

Changes:
- Removed outputFormat from DateTimeInput as it was underspecified.
- Added min and max properties to DateTimeInput for ISO 8601 range constraints.
- Added openUrl function to the standard catalog for handling links.
- Updated schema definitions to support 'void' return type for functions.
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request effectively updates the v0.9 specification by refining DateTimeInput, adding a new openUrl function, and updating schemas to support a void return type. The changes are clear and well-aligned with the description.

I have a couple of suggestions to improve the JSON schemas for better validation by adding format hints for date-time and URI strings.

Additionally, a more significant point of feedback concerns the FunctionCall definition in common_types.json. While adding the void return type is necessary, retaining default: "boolean" for returnType could lead to runtime errors if a developer forgets to specify returnType: "void" for a function with side-effects like openUrl. I strongly recommend removing this default to enforce explicit return type declaration, which would make the protocol more robust. Since this change would affect an unchanged line in the diff, I'm highlighting it here for your consideration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants