a2ui-project / a2ui-project/a2ui

Migrate genui (Flutter SDK) to A2UI protocol v1.0

Open
#1,959 2 comments 0 reactions 0 assignees View on GitHub
P2 status: first-line-handled
Dominant language
TypeScript
Stars
16.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
134

Description

## Description

The Flutter GenUI SDK (flutter/genui) currently implements A2UI protocol v0.9/v0.9.1. The v1.0 specification is now published ([evolution guide](https://a2ui.org/specification/v1.0-evolution-guide/), [v1.0 spec + schemas](https://github.com/a2ui-project/a2ui/tree/main/specification/v1_0)), and the SDK should be migrated to it.

Scope (per the evolution guide):

- `version: "v1.0"` envelopes and capabilities/data-model namespaces
- `createSurface`: `theme` → `surfaceProperties`, inline `components`/`dataModel`
- Bidirectional RPC: `callFunction`/`functionResponse` with `callableFrom` runtime boundary checks (`INVALID_FUNCTION_CALL`), and `actionResponse` correlated by `actionId`/`wantResponse`
- Explicit-null deletion in `updateDataModel` (also resolves #1896)
- Catalog changes: `functions` as a map with static `returnType`/`callableFrom`, `$defs/surfaceProperties`, optional `instructions`, UAX #31 entity naming
- Basic catalog: `TextField.placeholder`, `Slider.steps`, `Video.posterUrl`
- `@index` system function in template loops; `@` prefix reserved
- A2A extension URI `a2ui/v1.0` and `application/a2ui+json` MIME type

## Implementation

PR: flutter/genui#996

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Contributor guide

Open the contributing guide

Research direction

The work is in the Flutter GenUI SDK (flutter/genui). Start by reading the v1.0 evolution guide and specification linked in the issue. The PR flutter/genui#996 is closed but not merged, so examine its changes to understand the migration scope. Focus on updating envelope version, surface creation, bidirectional RPC, data model updates, and catalog changes. Verify changes against the closed PR and run existing tests to ensure compatibility.

Written by the indexing model from the issue text.

Assessment

Tech stack
flutter, typescript
Domain
api, backend-api-design, mobile
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.