# A2UIAgent v0.1.1 - Table of Contents
## Pages
- [A2UIAgent](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)
- Guides
- [Serving an agent](serving_an_agent.md)
## Modules
- Catalogs
- [A2UIAgent](A2UIAgent.md): Agent-side SDK for the A2UI protocol, built on `A2UICore`.
- [A2UIAgent.CatalogConfig](A2UIAgent.CatalogConfig.md): A catalog an agent registers, together with the transformers applied to
it.
- [A2UIAgent.CatalogProvider](A2UIAgent.CatalogProvider.md): Loads catalog documents into `A2UICore.Catalog`s.
- [A2UIAgent.CatalogResolver](A2UIAgent.CatalogResolver.md): Negotiates the catalogs that are active for one renderer.
- [A2UIAgent.CatalogTransformer](A2UIAgent.CatalogTransformer.md): Rules applied to a catalog before it reaches a prompt or a validator.
- [A2UIAgent.CatalogTransformer.Pruning](A2UIAgent.CatalogTransformer.Pruning.md): The pruning transformer behind `A2UIAgent.CatalogTransformer.component_pruning/1`
and `A2UIAgent.CatalogTransformer.function_pruning/1`.
- [A2UIAgent.Catalogs](A2UIAgent.Catalogs.md): Checks on the list of active catalogs that a format, parser or prompt
works with.
- [A2UIAgent.SchemaPruning](A2UIAgent.SchemaPruning.md): Prunes the protocol schemas a prompt shows the model.
- Requests
- [A2UIAgent.Format](A2UIAgent.Format.md): An inference format: how the model is told to write A2UI, and how its
output is read back.
- [A2UIAgent.Generator](A2UIAgent.Generator.md): The agent-level entry point: the catalogs an agent supports, its
few-shot examples and its inference format, from which it creates one
`A2UIAgent.RequestProcessor` per request.
- [A2UIAgent.PayloadValidator](A2UIAgent.PayloadValidator.md): Checks a payload an agent is about to send the way a renderer holding
the same catalogs would.
- [A2UIAgent.RequestProcessor](A2UIAgent.RequestProcessor.md): Everything an agent needs to answer one request: the negotiated
catalogs, the inference format bound to them, its prompt snippet and
its parsers.
- Direct JSON
- [A2UIAgent.DirectJson](A2UIAgent.DirectJson.md): The direct JSON inference format: the model writes A2UI messages as
JSON between `` and `` tags, guided by the
protocol and catalog JSON schemas in its prompt.
- [A2UIAgent.DirectJson.JsonReader](A2UIAgent.DirectJson.JsonReader.md): Reads the JSON a model writes, which is often almost JSON.
- [A2UIAgent.DirectJson.Parser](A2UIAgent.DirectJson.Parser.md): Reads model output written in the direct JSON format: conversational
text with A2UI message lists between `` and ``
tags.
- [A2UIAgent.DirectJson.Prompt](A2UIAgent.DirectJson.Prompt.md): The system prompt snippet of the direct JSON format.
- [A2UIAgent.PayloadFixer](A2UIAgent.PayloadFixer.md): Reads a JSON payload a model wrote, fixing the mistakes models commonly
make, as the reference SDKs' payload fixer (`parse_and_fix`) does.
- Express
- [A2UIAgent.BlockLexer](A2UIAgent.BlockLexer.md): Splits model output into conversational text and the raw blocks
between a format's tags.
- [A2UIAgent.Express](A2UIAgent.Express.md): The Express inference format: the model writes a compact,
function-call notation between `` and `` tags, which the
agent compiles into A2UI messages.
- [A2UIAgent.Express.Catalogs](A2UIAgent.Express.Catalogs.md): The active catalogs of an Express format, compiler or decompiler, with
a schema helper for each, and the lookups they share.
- [A2UIAgent.Express.Compiler](A2UIAgent.Express.Compiler.md): Compiles an Express block into A2UI messages.
- [A2UIAgent.Express.Decompiler](A2UIAgent.Express.Decompiler.md): Writes A2UI messages back as Express.
- [A2UIAgent.Express.Parser](A2UIAgent.Express.Parser.md): Reads model output written in Express: conversational text with
Express blocks between `` and `` tags.
- [A2UIAgent.Express.Prompt](A2UIAgent.Express.Prompt.md): The system prompt snippet of the Express format.
- [A2UIAgent.Express.SchemaHelper](A2UIAgent.Express.SchemaHelper.md): What Express reads from a catalog: each component's properties in
positional order, each function's parameters, and the facts about a
property's schema that decide how an argument compiles.
- [A2UIAgent.Express.Syntax](A2UIAgent.Express.Syntax.md): Reads Express source into statements, following the grammar
`specification/inference_formats/express/Express.g4`.
- Skills
- [A2UIAgent.Skill](A2UIAgent.Skill.md): A skill package: a markdown document with YAML frontmatter (`name`,
`description` and optional `metadata`) that teaches an agent to write
A2UI, stored as `/SKILL.md`.
- [A2UIAgent.SkillGenerator](A2UIAgent.SkillGenerator.md): Packages an inference format's prompt as skills
(`A2UIAgent.Skill`).
- Builder
- [A2UIAgent.Builder](A2UIAgent.Builder.md): Builds component trees in Elixir and flattens them into the component
lists that A2UI messages carry.
- [A2UIAgent.Builder.Basic](A2UIAgent.Builder.Basic.md): A function for each component of the basic catalog, named after it in
snake case: `text/1`, `text_field/1`, `date_time_input/1` and so on.
Each one is `A2UIAgent.Builder.component/2` with the component's name.
- [A2UIAgent.Builder.Binding](A2UIAgent.Builder.Binding.md): A data binding, written as `{"path": path}` (`{"@path": path}` from
v1.0). Made by `A2UIAgent.Builder.bind/1`.
- [A2UIAgent.Builder.ChildList](A2UIAgent.Builder.ChildList.md): Children generated from a data model list: the list's path and the
template component repeated for each item, written as
`{"path": path, "componentId": template_id}`. Made by
`A2UIAgent.Builder.child_list/2`.
- [A2UIAgent.Builder.Component](A2UIAgent.Builder.Component.md): A component node of an `A2UIAgent.Builder` tree: the component name,
the id the author gave (if any) and the properties, as wire names and
values in the order given. Made by `A2UIAgent.Builder.component/2`.
- [A2UIAgent.Builder.FunctionCall](A2UIAgent.Builder.FunctionCall.md): A call of a catalog function, written as `{"call": name, "args": args}`
(`"@call"` from v1.0, with the `"catalogId"` it names). Made by
`A2UIAgent.Builder.call/3`.
- [A2UIAgent.Builder.Ref](A2UIAgent.Builder.Ref.md): A reference to a component already on the surface. It is written as
its id and never emitted. Made by `A2UIAgent.Builder.ref/1`.
- Macros
- [A2UIAgent.Macro](A2UIAgent.Macro.md): A macro: a component the model can write that the agent expands into
components of its catalog before they reach the renderer.
- [A2UIAgent.Macro.Call](A2UIAgent.Macro.Call.md): A macro call inside a component tree, expanded where the tree is
flattened. Made by `A2UIAgent.Macro.call/2`.
- [A2UIAgent.MacroExpander](A2UIAgent.MacroExpander.md): Puts macros (`A2UIAgent.Macro`) in front of a catalog: the model sees
a catalog with the macros as components, and the renderer gets the
base catalog's components they expand to.
- A2A
- [A2UIAgent.A2A](A2UIAgent.A2A.md): The A2UI extension of the [A2A protocol](https://a2a-protocol.org):
extension URIs and their negotiation, and A2UI messages carried in A2A
parts.
- [A2UIAgent.A2A.Agent](A2UIAgent.A2A.Agent.md): An agent that `A2UIAgent.A2A.Server` and `A2UIAgent.A2A.Plug` serve.
- [A2UIAgent.A2A.Plug](A2UIAgent.A2A.Plug.md): Serves an agent over A2A's JSON-RPC binding with
`A2UIAgent.A2A.Server`.
- [A2UIAgent.A2A.Request](A2UIAgent.A2A.Request.md): One A2A `message/send` or `message/stream` request, as
`A2UIAgent.A2A.Server` hands it to the agent.
- [A2UIAgent.A2A.Server](A2UIAgent.A2A.Server.md): Answers the A2A JSON-RPC methods `message/send` and `message/stream`
for an agent that writes A2UI.
- MCP and AG-UI
- [A2UIAgent.AGUI](A2UIAgent.AGUI.md): Carries A2UI over [AG-UI](https://docs.ag-ui.com), the event protocol
between agents and their front ends, the way AG-UI's A2UI middleware
and the renderers built on it (CopilotKit, assistant-ui) do. A2UI does
not define this binding itself.
- [A2UIAgent.MCP](A2UIAgent.MCP.md): Carries A2UI over the [Model Context Protocol](https://modelcontextprotocol.io),
as the A2UI project's guide "A2UI over MCP" describes: the JSON values an
MCP server puts in its responses, and the A2UI values it reads from
requests. It works with any MCP server implementation.