Skip to content

feat: A2UI v0.9 protocol support — message parsing, surface rendering, 12-component catalog#78

Merged
blove merged 13 commits into
mainfrom
langgraph-integration
Apr 9, 2026
Merged

feat: A2UI v0.9 protocol support — message parsing, surface rendering, 12-component catalog#78
blove merged 13 commits into
mainfrom
langgraph-integration

Conversation

@blove
Copy link
Copy Markdown
Contributor

@blove blove commented Apr 9, 2026

Summary

Implements A2UI v0.9 protocol support (Google's open standard for agent-driven interfaces).

  • New @cacheplane/a2ui library — framework-agnostic A2UI v0.9 types, JSONL message parser, JSON Pointer utilities, and dynamic value resolution with template interpolation
  • A2UI Surface Store — Angular signal-based state management for A2UI surfaces (create, update components, update data model, delete)
  • 12-component default catalog — Text, Image, Icon, Divider, Row, Column, Card, List, Button, TextField, CheckBox, ChoicePicker matching the v0.9 basic catalog
  • A2UI Surface Renderer — converts A2UI surfaces to json-render Specs, resolves data bindings, renders via existing <render-spec> pipeline
  • ContentClassifier integration---a2ui_JSON--- prefix detection now routes to JSONL parser + surface store instead of the single-JSON parser
  • ChatComponent template — auto-renders A2UI surfaces when detected in AI messages

Architecture

A2UI messages stream as JSONL → A2uiMessageParser splits lines and extracts typed envelopes → A2uiSurfaceStore maintains surface state (components + data model) → A2uiSurfaceComponent converts to json-render Spec with resolved data bindings → <render-spec> renders via the catalog's Angular components.

Test plan

  • 33 @cacheplane/a2ui tests pass (pointer, parser, resolver)
  • 10 surface store tests pass
  • All chat lib tests pass including A2UI classifier integration
  • Lint clean (added a2ui selector prefix to eslint config)
  • Phase 2: actions, validation, two-way data binding, remaining components (Tabs, Modal, Video, etc.)

blove and others added 13 commits April 9, 2026 09:27
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…pecs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… surface store

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 9, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cacheplane Ready Ready Preview, Comment Apr 9, 2026 4:47pm

Request Review

@blove blove merged commit d5fc40e into main Apr 9, 2026
12 of 13 checks passed
@blove blove deleted the langgraph-integration branch May 7, 2026 16:30
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.

1 participant