diff --git a/apps/website/content/docs/render/a2ui/catalog.mdx b/apps/website/content/docs/chat/a2ui/catalog.mdx
similarity index 99%
rename from apps/website/content/docs/render/a2ui/catalog.mdx
rename to apps/website/content/docs/chat/a2ui/catalog.mdx
index 091ed967..b2638924 100644
--- a/apps/website/content/docs/render/a2ui/catalog.mdx
+++ b/apps/website/content/docs/chat/a2ui/catalog.mdx
@@ -128,7 +128,7 @@ Renders children in a scrollable vertical list (max height 24rem).
| `spec` | `Spec` | Injected automatically by the render engine |
-For data-driven lists, use the `A2uiChildTemplate` form instead of static `childKeys`. Set `children` to `{"path": "/items", "componentId": "item-template"}` and the surface component will expand the template once per array item. See the [Surface Component](/docs/render/a2ui/surface-component) page for details.
+For data-driven lists, use the `A2uiChildTemplate` form instead of static `childKeys`. Set `children` to `{"path": "/items", "componentId": "item-template"}` and the surface component will expand the template once per array item. See the [Surface Component](/docs/chat/a2ui/surface-component) page for details.
## Interactive Components
@@ -459,14 +459,14 @@ Props that use `A2uiFunctionCall` can reference these built-in functions:
How the A2UI protocol works end-to-end.
Render surfaces and understand dynamic value resolution.
diff --git a/apps/website/content/docs/render/a2ui/overview.mdx b/apps/website/content/docs/chat/a2ui/overview.mdx
similarity index 98%
rename from apps/website/content/docs/render/a2ui/overview.mdx
rename to apps/website/content/docs/chat/a2ui/overview.mdx
index 533c333b..8037aa9d 100644
--- a/apps/website/content/docs/render/a2ui/overview.mdx
+++ b/apps/website/content/docs/chat/a2ui/overview.mdx
@@ -290,21 +290,21 @@ Do not assume the progressive chat renderer and the render-spec compatibility pa
Render a surface outside the full ChatComponent composition.
Understand how messages update surfaces and data models.
See the built-in catalog components and their props.
diff --git a/apps/website/content/docs/render/a2ui/surface-component.mdx b/apps/website/content/docs/chat/a2ui/surface-component.mdx
similarity index 98%
rename from apps/website/content/docs/render/a2ui/surface-component.mdx
rename to apps/website/content/docs/chat/a2ui/surface-component.mdx
index e5f707d4..c6750fd5 100644
--- a/apps/website/content/docs/render/a2ui/surface-component.mdx
+++ b/apps/website/content/docs/chat/a2ui/surface-component.mdx
@@ -114,14 +114,14 @@ Returns `null` when the surface has no `root` component. Otherwise returns a com
Manage surfaces and apply A2UI messages reactively.
All 18 built-in components and their props.
diff --git a/apps/website/content/docs/render/a2ui/surface-store.mdx b/apps/website/content/docs/chat/a2ui/surface-store.mdx
similarity index 98%
rename from apps/website/content/docs/render/a2ui/surface-store.mdx
rename to apps/website/content/docs/chat/a2ui/surface-store.mdx
index 75e87125..01d0fc5c 100644
--- a/apps/website/content/docs/render/a2ui/surface-store.mdx
+++ b/apps/website/content/docs/chat/a2ui/surface-store.mdx
@@ -138,14 +138,14 @@ The `components` map is keyed by component ID. The `dataModel` is a plain object
Render a surface using A2uiSurfaceComponent.
All 18 built-in components and their props.
diff --git a/apps/website/content/docs/chat/components/chat.mdx b/apps/website/content/docs/chat/components/chat.mdx
index d229b6ad..c448fa0a 100644
--- a/apps/website/content/docs/chat/components/chat.mdx
+++ b/apps/website/content/docs/chat/components/chat.mdx
@@ -174,7 +174,7 @@ views = a2uiBasicCatalog();
The catalog currently maps 18 component types: Text, Image, Icon, Divider, Row, Column, Card, List, Button, TextField, CheckBox, MultipleChoice, DateTimeInput, Slider, Tabs, Modal, Video, and AudioPlayer.
-A2UI surfaces support two-way data binding, button actions, template expansion over collections, and validation. See the [A2UI guide](/docs/render/a2ui/overview) for details.
+A2UI surfaces support two-way data binding, button actions, template expansion over collections, and validation. See the [A2UI guide](/docs/chat/a2ui/overview) for details.
## Auto-Scroll Behavior
diff --git a/apps/website/content/docs/chat/guides/generative-ui.mdx b/apps/website/content/docs/chat/guides/generative-ui.mdx
index 7a606671..7f3646c8 100644
--- a/apps/website/content/docs/chat/guides/generative-ui.mdx
+++ b/apps/website/content/docs/chat/guides/generative-ui.mdx
@@ -133,7 +133,7 @@ The store enables two-way data binding between generative UI components and your
## A2UI Protocol
-For agents that emit A2UI JSONL payloads, `ChatComponent` auto-detects content prefixed with `---a2ui_JSON---`. Pass `a2uiBasicCatalog()` to `[views]` when you want those surfaces rendered with the built-in components. See the [A2UI guide](/docs/render/a2ui/overview) for details.
+For agents that emit A2UI JSONL payloads, `ChatComponent` auto-detects content prefixed with `---a2ui_JSON---`. Pass `a2uiBasicCatalog()` to `[views]` when you want those surfaces rendered with the built-in components. See the [A2UI guide](/docs/chat/a2ui/overview) for details.
## What's Next
@@ -152,7 +152,7 @@ For agents that emit A2UI JSONL payloads, `ChatComponent` auto-detects content p
>
Full reference for the JSON spec format, prop expressions, and element types.
-
+
Render A2UI surfaces with the built-in 18-component catalog.
diff --git a/apps/website/content/docs/chat/guides/streaming.mdx b/apps/website/content/docs/chat/guides/streaming.mdx
index 998691af..c55c1705 100644
--- a/apps/website/content/docs/chat/guides/streaming.mdx
+++ b/apps/website/content/docs/chat/guides/streaming.mdx
@@ -110,7 +110,7 @@ A2UI content uses a different detection trigger than JSON-render specs. Instead
Once detected, the classifier switches to A2UI mode and parses the remaining content as JSONL — one JSON object per line — rather than a single JSON object. Each line represents an A2UI message that builds up surfaces with components and data models.
-The resulting surfaces are available via `classifier.a2uiSurfaces()`, which returns a `Map` keyed by surface ID. See the [A2UI guide](/docs/render/a2ui/overview) for full details on the A2UI protocol and surface structure.
+The resulting surfaces are available via `classifier.a2uiSurfaces()`, which returns a `Map` keyed by surface ID. See the [A2UI guide](/docs/chat/a2ui/overview) for full details on the A2UI protocol and surface structure.
## Error Handling
diff --git a/apps/website/e2e/website.spec.ts b/apps/website/e2e/website.spec.ts
index e8b6f73b..2a41946d 100644
--- a/apps/website/e2e/website.spec.ts
+++ b/apps/website/e2e/website.spec.ts
@@ -214,7 +214,7 @@ test('sitemap.xml includes configured docs pages', async ({ request }) => {
const body = await response.text();
expect(body).toContain('https://threadplane.ai/docs');
expect(body).toContain('https://threadplane.ai/docs/langgraph/getting-started/introduction');
- expect(body).toContain('https://threadplane.ai/docs/render/a2ui/overview');
+ expect(body).toContain('https://threadplane.ai/docs/chat/a2ui/overview');
});
test('docs pages render canonical and social metadata', async ({ page }) => {
@@ -254,7 +254,7 @@ test('representative docs pages do not create page-level horizontal overflow', a
'/docs/langgraph/getting-started/introduction',
'/docs/langgraph/api/inject-agent',
'/docs/chat/components/chat-tool-calls',
- '/docs/render/a2ui/overview',
+ '/docs/chat/a2ui/overview',
'/docs/telemetry/guides/browser',
];
const widths = [320, 375, 768, 1280];
diff --git a/apps/website/src/lib/docs-config.ts b/apps/website/src/lib/docs-config.ts
index cf827597..ac71d827 100644
--- a/apps/website/src/lib/docs-config.ts
+++ b/apps/website/src/lib/docs-config.ts
@@ -119,17 +119,6 @@ export const docsConfig: DocsLibrary[] = [
{ title: 'JSON Render vs A2UI', slug: 'json-render-vs-a2ui', section: 'concepts' },
],
},
- {
- title: 'A2UI',
- id: 'a2ui',
- color: 'red',
- pages: [
- { title: 'Overview', slug: 'overview', section: 'a2ui' },
- { title: 'A2uiSurfaceComponent', slug: 'surface-component', section: 'a2ui' },
- { title: 'createA2uiSurfaceStore()', slug: 'surface-store', section: 'a2ui' },
- { title: 'Component Catalog', slug: 'catalog', section: 'a2ui' },
- ],
- },
{
title: 'API Reference',
id: 'api',
@@ -206,6 +195,17 @@ export const docsConfig: DocsLibrary[] = [
{ title: 'ChatSelect', slug: 'chat-select', section: 'components' },
],
},
+ {
+ title: 'A2UI',
+ id: 'a2ui',
+ color: 'red',
+ pages: [
+ { title: 'Overview', slug: 'overview', section: 'a2ui' },
+ { title: 'A2uiSurfaceComponent', slug: 'surface-component', section: 'a2ui' },
+ { title: 'createA2uiSurfaceStore()', slug: 'surface-store', section: 'a2ui' },
+ { title: 'Component Catalog', slug: 'catalog', section: 'a2ui' },
+ ],
+ },
{
title: 'API Reference',
id: 'api',