Skip to content

Consolidate demo clients #182

@jacobsimionato

Description

@jacobsimionato

Currently, we have separate client codebases for each web demo, in order to allow for special casing of the rendering that is specific to the demo content. While this is a valid approach, it risks undermining one of our core messages, which is that _A2UI can allow any client to talk to any agent. To emphasize this interoperability story and simplify the codebase, let’s just have one sample client for each renderer. These sample clients can then connect to any of the multiple agent samples.

We should also consider changing the sample app framing to make it more obvious how A2UI can be incorporated into an existing agent using a chat paradigm. We can do this by framing the sample as a chat app. Within the chat chrome, we can still demonstrate single-surface UI patterns by updating the content of an existing surface within the chat.

Requirements for each renderer sample app:

  • Has a prompt box at the bottom
  • Uses the standard catalog
  • Handles creation of new surfaces and updating of existing surfaces correctly
    • If updateSurface and beginRendering is received with a new surfaceId, that surface is appended to the chat
    • If updateSurface is received with an existing surfaceId, that surface is updated.
  • Show the agent URL at the top, which defaults to the same localhost port as the agent server examples. There is a button to change the URL which should also clear the chat.
  • The sample app codebase should have minimal code, because most of it is in the rendering library.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions