Skip to content

docs(ecosystem): add svelte-a2ui (Svelte 5 community renderer) - #2290

Open
ChaliceForAuri wants to merge 3 commits into
a2ui-project:mainfrom
ChaliceForAuri:add-svelte-renderer
Open

docs(ecosystem): add svelte-a2ui (Svelte 5 community renderer)#2290
ChaliceForAuri wants to merge 3 commits into
a2ui-project:mainfrom
ChaliceForAuri:add-svelte-renderer

Conversation

@ChaliceForAuri

Copy link
Copy Markdown

Adds svelte-a2ui — a Svelte 5 renderer — to the Community Renderers table, filling the roadmap's "Svelte/Kit — Community interest" slot.

What it is: a runes-native A2UI renderer targeting the v1.0 Candidate spec (property names shared with v0.9). Full Basic Catalog: all 18 components, the complete 59-name Icon enum + {svgPath}, all 14 built-in functions, checks validation, collection templates. The test suite (83 protocol tests on node --test, 19 browser tests on headless Chromium) includes a replay of the spec's own contact_form_example fixture.

Architecture: pure-reducer protocol core with structural sharing, held in $state.raw — unchanged components keep referential identity and skip re-rendering. The threat model assumes a hostile agent: catalog allowlist, unconditional on*/function stripping, prototype-pollution refusal, escape-then-markup text rendering, bounded recursion, callableFrom enforcement.

Transports: HTTP JSONL/SSE, the A2A extension binding (application/a2ui+json DataParts, metadata lifted to the A2A message per the extension spec), and AG-UI activities (including a2ui-surface from @ag-ui/a2ui-middleware). a2uiRendererCapabilities is advertised on every outbound message.

Listing criteria:

🤖 Generated with Claude Code

@google-cla

google-cla Bot commented Aug 16, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

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

Copy link
Copy Markdown
Contributor

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 adds the ChaliceForAuri/a2ui-svelte (svelte-a2ui) Svelte 5 renderer to the community renderers table and includes a detailed description of its features and capabilities. The review feedback suggests improving the description's readability by fixing a sentence fragment, formatting {svgPath} as code, and clarifying that the client determines a function's execution boundary at runtime based on the active catalog definition.

Comment thread docs/public/ecosystem/renderers.md Outdated
@ChaliceForAuri

Copy link
Copy Markdown
Author

@googlebot I signed it!

2 similar comments
@ChaliceForAuri

Copy link
Copy Markdown
Author

@googlebot I signed it!

@ChaliceForAuri

Copy link
Copy Markdown
Author

@googlebot I signed it!

Adds the Svelte 5 renderer (ChaliceForAuri/a2ui-svelte, npm
svelte-a2ui) to the Community Renderers table and Highlights.
@github-actions github-actions Bot added the status: needs-triage auto-managed: https://github.com/a2ui-project/a2ui/blob/main/scripts/triage.mjs label Aug 18, 2026
| **BoteAI/a2ui** (`@boteai/a2ui-render`) | React (Web) | ✅ | ✅ | ![Stars](https://img.shields.io/github/stars/BoteAI/a2ui?style=flat-square&label=⭐) ![Last commit](https://img.shields.io/github/last-commit/BoteAI/a2ui?style=flat-square&label=updated) | [GitHub](https://github.com/BoteAI/a2ui) · [npm](https://www.npmjs.com/package/@boteai/a2ui-render) |
| **kokoro-ele/a2ui-ink** (`@evanyu/a2ui-ink`) | Terminal / CLI (Ink) | ❌ | ✅ | ![Stars](https://img.shields.io/github/stars/kokoro-ele/a2ui-ink?style=flat-square&label=⭐) ![Last commit](https://img.shields.io/github/last-commit/kokoro-ele/a2ui-ink?style=flat-square&label=updated) | [GitHub](https://github.com/kokoro-ele/a2ui-ink) · [npm](https://www.npmjs.com/package/@evanyu/a2ui-ink) |
| **yessGlory17/generative-mui** (`@yessglory/generative-mui-react`) | React + Material UI (Web) | ❌ | ✅ | ![Stars](https://img.shields.io/github/stars/yessGlory17/generative-mui?style=flat-square&label=⭐) ![Last commit](https://img.shields.io/github/last-commit/yessGlory17/generative-mui?style=flat-square&label=updated) | [GitHub](https://github.com/yessGlory17/generative-mui) · [npm](https://www.npmjs.com/package/@yessglory/generative-mui-react) |
| **ChaliceForAuri/a2ui-svelte** (`svelte-a2ui`) | Svelte 5 (Web) | ❌ | ✅ | ![Stars](https://img.shields.io/github/stars/ChaliceForAuri/a2ui-svelte?style=flat-square&label=⭐) ![Last commit](https://img.shields.io/github/last-commit/ChaliceForAuri/a2ui-svelte?style=flat-square&label=updated) | [GitHub](https://github.com/ChaliceForAuri/a2ui-svelte) · [npm](https://www.npmjs.com/package/svelte-a2ui) · [Demo](https://chaliceforauri.github.io/a2ui-svelte/) |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I checked the demo - when i click 'Book table' nothing happens in UI.

Should new UI be rendered as result of interaction?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Great catch, thank you — and no, that wasn't intended behaviour, it was a gap in the demo.

You're right that new UI should be the result: in A2UI an action is a request, not a form submission, and the agent answers with more UI. My mock agent simply had nothing scripted to say back, so the action left the renderer (visible in the wire feed on the right) and then… silence.

Fixed and deployed. Booking now gets a reply: updateDataModel writes the booking details, then updateComponents re-points root at a confirmation surface — which is a much better demonstration of the model than what was there before, since "navigating to a new screen" turns out to be just more data. There's a Book another table button that replays the original stream.

Live at demo — the wire feed shows the full round trip now: the action going up (179 bytes, hand-picked context only), then the agent's reply coming back down.

Thanks for actually clicking through it.

@github-actions github-actions Bot removed the status: needs-triage auto-managed: https://github.com/a2ui-project/a2ui/blob/main/scripts/triage.mjs label Aug 18, 2026
@github-actions github-actions Bot added status: needs-triage auto-managed: https://github.com/a2ui-project/a2ui/blob/main/scripts/triage.mjs and removed status: waiting-for-author-response labels Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: needs-triage auto-managed: https://github.com/a2ui-project/a2ui/blob/main/scripts/triage.mjs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants