a2ui-project / a2ui-project/a2ui
Migrate genui (Flutter SDK) to A2UI protocol v1.0
- 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
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