@assistant-ui/mcp-docs-server 0.1.30 → 0.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/.docs/organized/code-examples/waterfall.md +1 -1
  2. package/.docs/organized/code-examples/with-a2a.md +2 -2
  3. package/.docs/organized/code-examples/with-ag-ui.md +3 -3
  4. package/.docs/organized/code-examples/with-ai-sdk-v6.md +5 -5
  5. package/.docs/organized/code-examples/with-artifacts.md +5 -5
  6. package/.docs/organized/code-examples/with-assistant-transport.md +3 -3
  7. package/.docs/organized/code-examples/with-chain-of-thought.md +79 -50
  8. package/.docs/organized/code-examples/with-cloud-standalone.md +4 -4
  9. package/.docs/organized/code-examples/with-cloud.md +4 -4
  10. package/.docs/organized/code-examples/with-custom-thread-list.md +56 -11
  11. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +7 -7
  12. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +7 -7
  13. package/.docs/organized/code-examples/with-expo.md +16 -16
  14. package/.docs/organized/code-examples/with-external-store.md +2 -2
  15. package/.docs/organized/code-examples/with-ffmpeg.md +5 -5
  16. package/.docs/organized/code-examples/with-generative-ui.md +5 -5
  17. package/.docs/organized/code-examples/with-google-adk.md +4 -4
  18. package/.docs/organized/code-examples/with-heat-graph.md +1 -1
  19. package/.docs/organized/code-examples/with-interactables.md +5 -5
  20. package/.docs/organized/code-examples/with-langchain.md +3 -3
  21. package/.docs/organized/code-examples/with-langgraph.md +3 -3
  22. package/.docs/organized/code-examples/with-livekit.md +8 -8
  23. package/.docs/organized/code-examples/with-opencode.md +99 -54
  24. package/.docs/organized/code-examples/with-parent-id-grouping.md +4 -4
  25. package/.docs/organized/code-examples/with-react-hook-form.md +5 -5
  26. package/.docs/organized/code-examples/with-react-ink.md +1 -1
  27. package/.docs/organized/code-examples/with-react-router.md +8 -8
  28. package/.docs/organized/code-examples/with-store.md +1 -1
  29. package/.docs/organized/code-examples/with-tanstack.md +5 -5
  30. package/.docs/organized/code-examples/with-tap-runtime.md +2 -2
  31. package/.docs/raw/docs/(docs)/cli.mdx +2 -1
  32. package/.docs/raw/docs/(docs)/copilots/assistant-frame.mdx +1 -0
  33. package/.docs/raw/docs/(docs)/copilots/make-assistant-tool-ui.mdx +10 -3
  34. package/.docs/raw/docs/(docs)/copilots/make-assistant-tool.mdx +8 -3
  35. package/.docs/raw/docs/(docs)/copilots/make-assistant-visible.mdx +1 -0
  36. package/.docs/raw/docs/(docs)/copilots/model-context.mdx +1 -0
  37. package/.docs/raw/docs/(docs)/copilots/motivation.mdx +1 -0
  38. package/.docs/raw/docs/(docs)/copilots/use-assistant-instructions.mdx +1 -0
  39. package/.docs/raw/docs/(docs)/devtools.mdx +1 -0
  40. package/.docs/raw/docs/(docs)/index.mdx +1 -0
  41. package/.docs/raw/docs/(docs)/installation.mdx +1 -0
  42. package/.docs/raw/docs/(docs)/rtl.mdx +1 -0
  43. package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +34 -0
  44. package/.docs/raw/docs/(reference)/api-reference/adapters/feedback-speech.mdx +41 -0
  45. package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +26 -0
  46. package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +34 -0
  47. package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +31 -0
  48. package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +20 -0
  49. package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +26 -0
  50. package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +72 -0
  51. package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +41 -0
  52. package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +48 -0
  53. package/.docs/raw/docs/(reference)/api-reference/hooks/utilities.mdx +30 -0
  54. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +23 -0
  55. package/.docs/raw/docs/(reference)/api-reference/overview.mdx +21 -0
  56. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +7 -0
  57. package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +65 -0
  58. package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +50 -6
  59. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +15 -0
  60. package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +36 -1
  61. package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +38 -0
  62. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +5 -0
  63. package/.docs/raw/docs/(reference)/migrations/v0-14.mdx +144 -6
  64. package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +230 -2
  65. package/.docs/raw/docs/cloud/ai-sdk.mdx +221 -3
  66. package/.docs/raw/docs/cloud/langgraph.mdx +274 -2
  67. package/.docs/raw/docs/{(docs)/guides → guides}/attachments.mdx +41 -36
  68. package/.docs/raw/docs/guides/branching.mdx +76 -0
  69. package/.docs/raw/docs/guides/chain-of-thought.mdx +166 -0
  70. package/.docs/raw/docs/{(docs)/guides → guides}/context-api.mdx +50 -22
  71. package/.docs/raw/docs/{(docs)/guides → guides}/dictation.mdx +2 -0
  72. package/.docs/raw/docs/guides/editing.mdx +102 -0
  73. package/.docs/raw/docs/guides/index.mdx +103 -0
  74. package/.docs/raw/docs/{(docs)/guides → guides}/interactables.mdx +49 -0
  75. package/.docs/raw/docs/{(docs)/guides → guides}/latex.mdx +51 -8
  76. package/.docs/raw/docs/{(docs)/guides → guides}/mentions.mdx +61 -86
  77. package/.docs/raw/docs/{(docs)/guides → guides}/message-timing.mdx +8 -2
  78. package/.docs/raw/docs/{(docs)/guides → guides}/multi-agent.mdx +64 -4
  79. package/.docs/raw/docs/{(docs)/guides → guides}/quoting.mdx +10 -17
  80. package/.docs/raw/docs/{(docs)/guides → guides}/slash-commands.mdx +103 -37
  81. package/.docs/raw/docs/guides/speech.mdx +156 -0
  82. package/.docs/raw/docs/{(docs)/guides → guides}/suggestions.mdx +21 -83
  83. package/.docs/raw/docs/{(docs)/guides → guides}/tool-ui.mdx +108 -36
  84. package/.docs/raw/docs/{(docs)/guides → guides}/tools.mdx +131 -35
  85. package/.docs/raw/docs/{(docs)/guides → guides}/voice.mdx +39 -0
  86. package/.docs/raw/docs/ink/index.mdx +1 -3
  87. package/.docs/raw/docs/ink/migration.mdx +1 -3
  88. package/.docs/raw/docs/ink/primitives.mdx +37 -1
  89. package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +520 -0
  90. package/.docs/raw/docs/integrations/auth/better-auth.mdx +191 -0
  91. package/.docs/raw/docs/integrations/auth/clerk.mdx +172 -0
  92. package/.docs/raw/docs/integrations/auth/next-auth.mdx +196 -0
  93. package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +79 -0
  94. package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +188 -0
  95. package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +57 -0
  96. package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +201 -0
  97. package/.docs/raw/docs/integrations/gateways/index.mdx +157 -0
  98. package/.docs/raw/docs/integrations/index.mdx +173 -0
  99. package/.docs/raw/docs/integrations/observability/helicone.mdx +130 -0
  100. package/.docs/raw/docs/integrations/observability/langfuse.mdx +156 -0
  101. package/.docs/raw/docs/integrations/observability/langsmith.mdx +146 -0
  102. package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +712 -0
  103. package/.docs/raw/docs/integrations/tools/mcp.mdx +267 -0
  104. package/.docs/raw/docs/primitives/action-bar.mdx +1 -0
  105. package/.docs/raw/docs/primitives/assistant-modal.mdx +1 -0
  106. package/.docs/raw/docs/primitives/attachment.mdx +1 -0
  107. package/.docs/raw/docs/primitives/branch-picker.mdx +1 -0
  108. package/.docs/raw/docs/primitives/chain-of-thought.mdx +90 -85
  109. package/.docs/raw/docs/primitives/composer.mdx +2 -1
  110. package/.docs/raw/docs/primitives/error.mdx +1 -0
  111. package/.docs/raw/docs/primitives/index.mdx +2 -1
  112. package/.docs/raw/docs/primitives/message.mdx +68 -5
  113. package/.docs/raw/docs/primitives/selection-toolbar.mdx +1 -0
  114. package/.docs/raw/docs/primitives/suggestion.mdx +1 -0
  115. package/.docs/raw/docs/primitives/thread-list.mdx +39 -0
  116. package/.docs/raw/docs/primitives/thread.mdx +16 -13
  117. package/.docs/raw/docs/react-native/index.mdx +1 -3
  118. package/.docs/raw/docs/react-native/migration.mdx +1 -3
  119. package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +396 -0
  120. package/.docs/raw/docs/runtimes/a2a/overview.mdx +60 -0
  121. package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +216 -0
  122. package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +70 -0
  123. package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +243 -0
  124. package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +123 -0
  125. package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +52 -0
  126. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +71 -131
  127. package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +69 -63
  128. package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +330 -123
  129. package/.docs/raw/docs/runtimes/concepts/adapters.mdx +265 -0
  130. package/.docs/raw/docs/runtimes/concepts/architecture.mdx +125 -0
  131. package/.docs/raw/docs/runtimes/concepts/stability.mdx +67 -0
  132. package/.docs/raw/docs/runtimes/concepts/threads.mdx +428 -0
  133. package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +703 -0
  134. package/.docs/raw/docs/runtimes/custom/data-stream.mdx +323 -0
  135. package/.docs/raw/docs/runtimes/custom/external-store.mdx +253 -1236
  136. package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +746 -0
  137. package/.docs/raw/docs/runtimes/custom/overview.mdx +71 -0
  138. package/.docs/raw/docs/runtimes/google-adk/api.mdx +256 -0
  139. package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +717 -0
  140. package/.docs/raw/docs/runtimes/google-adk/overview.mdx +69 -0
  141. package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +229 -0
  142. package/.docs/raw/docs/runtimes/langchain.mdx +533 -0
  143. package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +305 -0
  144. package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +104 -0
  145. package/.docs/raw/docs/runtimes/langgraph/overview.mdx +84 -0
  146. package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +496 -0
  147. package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +127 -0
  148. package/.docs/raw/docs/runtimes/langgraph/threads.mdx +113 -0
  149. package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +3 -3
  150. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -23
  151. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +1 -1
  152. package/.docs/raw/docs/runtimes/opencode/hooks.mdx +191 -0
  153. package/.docs/raw/docs/runtimes/opencode/overview.mdx +48 -0
  154. package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +119 -0
  155. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +71 -203
  156. package/.docs/raw/docs/ui/accordion.mdx +1 -0
  157. package/.docs/raw/docs/ui/assistant-modal.mdx +1 -0
  158. package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -0
  159. package/.docs/raw/docs/ui/attachment.mdx +1 -0
  160. package/.docs/raw/docs/ui/badge.mdx +1 -0
  161. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +1 -0
  162. package/.docs/raw/docs/ui/context-display.mdx +1 -0
  163. package/.docs/raw/docs/ui/diff-viewer.mdx +1 -0
  164. package/.docs/raw/docs/ui/directive-text.mdx +1 -0
  165. package/.docs/raw/docs/ui/file.mdx +1 -0
  166. package/.docs/raw/docs/ui/image.mdx +1 -0
  167. package/.docs/raw/docs/ui/markdown.mdx +2 -14
  168. package/.docs/raw/docs/ui/mermaid.mdx +1 -0
  169. package/.docs/raw/docs/ui/message-timing.mdx +3 -2
  170. package/.docs/raw/docs/ui/model-selector.mdx +1 -0
  171. package/.docs/raw/docs/ui/part-grouping.mdx +325 -313
  172. package/.docs/raw/docs/ui/quote.mdx +1 -0
  173. package/.docs/raw/docs/ui/reasoning.mdx +66 -33
  174. package/.docs/raw/docs/ui/scrollbar.mdx +1 -0
  175. package/.docs/raw/docs/ui/select.mdx +1 -0
  176. package/.docs/raw/docs/ui/sources.mdx +1 -0
  177. package/.docs/raw/docs/ui/streamdown.mdx +1 -0
  178. package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -0
  179. package/.docs/raw/docs/ui/tabs.mdx +1 -0
  180. package/.docs/raw/docs/ui/thread-list.mdx +17 -0
  181. package/.docs/raw/docs/ui/thread.mdx +56 -1
  182. package/.docs/raw/docs/ui/tool-fallback.mdx +1 -0
  183. package/.docs/raw/docs/ui/tool-group.mdx +39 -11
  184. package/.docs/raw/docs/ui/voice.mdx +1 -0
  185. package/.docs/raw/docs/utilities/heat-graph.mdx +1 -0
  186. package/.docs/raw/docs/utilities/react-o11y.mdx +278 -0
  187. package/.docs/raw/docs/utilities/tw-shimmer.mdx +1 -0
  188. package/package.json +3 -3
  189. package/src/tools/tests/path-traversal.test.ts +1 -1
  190. package/.docs/raw/docs/(docs)/guides/branching.mdx +0 -65
  191. package/.docs/raw/docs/(docs)/guides/chain-of-thought.mdx +0 -164
  192. package/.docs/raw/docs/(docs)/guides/editing.mdx +0 -66
  193. package/.docs/raw/docs/(docs)/guides/speech.mdx +0 -38
  194. package/.docs/raw/docs/runtimes/a2a/index.mdx +0 -298
  195. package/.docs/raw/docs/runtimes/assistant-transport.mdx +0 -1033
  196. package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +0 -314
  197. package/.docs/raw/docs/runtimes/custom/local.mdx +0 -1464
  198. package/.docs/raw/docs/runtimes/data-stream.mdx +0 -422
  199. package/.docs/raw/docs/runtimes/google-adk/index.mdx +0 -686
  200. package/.docs/raw/docs/runtimes/helicone.mdx +0 -61
  201. package/.docs/raw/docs/runtimes/langchain/comparison.mdx +0 -60
  202. package/.docs/raw/docs/runtimes/langchain/index.mdx +0 -210
  203. package/.docs/raw/docs/runtimes/langgraph/index.mdx +0 -699
  204. package/.docs/raw/docs/runtimes/langgraph/tutorial/index.mdx +0 -12
  205. package/.docs/raw/docs/runtimes/langserve.mdx +0 -116
  206. package/.docs/raw/docs/runtimes/mastra/full-stack-integration.mdx +0 -218
  207. package/.docs/raw/docs/runtimes/mastra/overview.mdx +0 -18
  208. package/.docs/raw/docs/runtimes/mastra/separate-server-integration.mdx +0 -217
@@ -0,0 +1,65 @@
1
+ ---
2
+ title: Overview
3
+ description: Generated API reference for assistant-ui React primitive namespaces and parts.
4
+ ---
5
+
6
+ {/* AUTO-GENERATED by scripts/generate-api-reference-overviews.mts */}
7
+ {/* Do not edit manually. */}
8
+
9
+ Primitives are the composable React components exported from `@assistant-ui/react`. These pages focus on parts, props, rendered elements, and composition behavior.
10
+
11
+ ## Pages
12
+
13
+ <Cards>
14
+ <Card title={"ActionBarPrimitive"} href={"/docs/api-reference/primitives/action-bar"}>
15
+ {"Buttons for message actions like copy, edit, reload, speak, and feedback."}
16
+ </Card>
17
+ <Card title={"ActionBarMorePrimitive"} href={"/docs/api-reference/primitives/action-bar-more"}>
18
+ {"API reference for ActionBarMorePrimitive."}
19
+ </Card>
20
+ <Card title={"AuiIf"} href={"/docs/api-reference/primitives/assistant-if"}>
21
+ {"Conditional rendering component based on thread, message, or composer state."}
22
+ </Card>
23
+ <Card title={"AssistantModalPrimitive"} href={"/docs/api-reference/primitives/assistant-modal"}>
24
+ {"A popover chat interface for floating assistant UI in the corner of the screen."}
25
+ </Card>
26
+ <Card title={"AttachmentPrimitive"} href={"/docs/api-reference/primitives/attachment"}>
27
+ {"Components for displaying and managing file attachments in messages and composer."}
28
+ </Card>
29
+ <Card title={"BranchPickerPrimitive"} href={"/docs/api-reference/primitives/branch-picker"}>
30
+ {"Navigate between conversation branches with previous/next controls."}
31
+ </Card>
32
+ <Card title={"ComposerPrimitive"} href={"/docs/api-reference/primitives/composer"}>
33
+ {"Primitives for the text input, send button, and attachments."}
34
+ </Card>
35
+ <Card title={"ErrorPrimitive"} href={"/docs/api-reference/primitives/error"}>
36
+ {"Components for displaying error messages in the chat interface."}
37
+ </Card>
38
+ <Card title={"MessagePrimitive"} href={"/docs/api-reference/primitives/message"}>
39
+ {"Components for rendering message content, parts, and attachments."}
40
+ </Card>
41
+ <Card title={"MessagePartPrimitive"} href={"/docs/api-reference/primitives/message-part"}>
42
+ {"Primitives for text, images, tool calls, and other message content."}
43
+ </Card>
44
+ <Card title={"SelectionToolbarPrimitive"} href={"/docs/api-reference/primitives/selection-toolbar"}>
45
+ {"A floating toolbar that appears when text is selected within a message."}
46
+ </Card>
47
+ <Card title={"SuggestionPrimitive"} href={"/docs/api-reference/primitives/suggestion"}>
48
+ {"API reference for SuggestionPrimitive."}
49
+ </Card>
50
+ <Card title={"ThreadPrimitive"} href={"/docs/api-reference/primitives/thread"}>
51
+ {"Primitives for the message list, viewport, and welcome screen."}
52
+ </Card>
53
+ <Card title={"ThreadListPrimitive"} href={"/docs/api-reference/primitives/thread-list"}>
54
+ {"Display and manage multiple conversation threads with create and archive actions."}
55
+ </Card>
56
+ <Card title={"ThreadListItemPrimitive"} href={"/docs/api-reference/primitives/thread-list-item"}>
57
+ {"Individual thread item with title, archive, and delete controls."}
58
+ </Card>
59
+ <Card title={"ThreadListItemMorePrimitive"} href={"/docs/api-reference/primitives/thread-list-item-more"}>
60
+ {"Dropdown menu for additional thread actions like archive and delete."}
61
+ </Card>
62
+ <Card title={"Composition"} href={"/docs/api-reference/primitives/composition"}>
63
+ {"How to compose primitives with custom components using asChild."}
64
+ </Card>
65
+ </Cards>
@@ -3,6 +3,8 @@ title: MessagePrimitive
3
3
  description: Components for rendering message content, parts, and attachments.
4
4
  ---
5
5
 
6
+ import { MessagePrimitive as MessagePrimitiveDocs } from "@/generated/primitiveDocs";
7
+
6
8
  A single message in a conversation. Messages may consist of multiple parts.
7
9
 
8
10
 
@@ -95,13 +97,13 @@ The content of the message. This renders a separate component for each message p
95
97
  name: "Reasoning",
96
98
  type: "ReasoningMessagePartComponent",
97
99
  description:
98
- "The component to render for each reasoning message part. Cannot be used alongside ChainOfThought.",
100
+ "Deprecated components-map renderer for each reasoning message part. Prefer the children render function or MessagePrimitive.GroupedParts.",
99
101
  },
100
102
  {
101
103
  name: "tools",
102
104
  type: "object",
103
105
  description:
104
- "Configuration for tool call rendering. Cannot be used alongside ChainOfThought.",
106
+ "Deprecated components-map configuration for tool call rendering. Prefer part.toolUI in the children render function or MessagePrimitive.GroupedParts.",
105
107
  children: [
106
108
  {
107
109
  parameters: [
@@ -155,7 +157,7 @@ The content of the message. This renders a separate component for each message p
155
157
  name: "ToolGroup",
156
158
  type: "ComponentType<PropsWithChildren<{ startIndex: number; endIndex: number }>>",
157
159
  description:
158
- "Deprecated: This feature is still experimental and subject to change. Component for rendering grouped consecutive tool calls. When provided, consecutive tool-call message parts will be automatically grouped and wrapped with this component. Cannot be used alongside ChainOfThought.",
160
+ "Deprecated legacy wrapper for grouped consecutive tool calls. Prefer MessagePrimitive.GroupedParts with groupBy returning \"group-tool\".",
159
161
  children: [
160
162
  {
161
163
  type: "ToolGroupProps",
@@ -187,7 +189,7 @@ The content of the message. This renders a separate component for each message p
187
189
  name: "ReasoningGroup",
188
190
  type: "ReasoningGroupComponent",
189
191
  description:
190
- "Component for rendering grouped consecutive reasoning parts. Cannot be used alongside ChainOfThought.",
192
+ "Deprecated legacy wrapper for grouped consecutive reasoning parts. Prefer MessagePrimitive.GroupedParts with groupBy returning \"group-reasoning\".",
191
193
  children: [
192
194
  {
193
195
  type: "ReasoningGroupProps",
@@ -219,7 +221,7 @@ The content of the message. This renders a separate component for each message p
219
221
  name: "ChainOfThought",
220
222
  type: "ComponentType",
221
223
  description:
222
- "When set, groups all consecutive reasoning and tool-call parts into a single collapsible component. Mutually exclusive with Reasoning, tools, ToolGroup, and ReasoningGroup.",
224
+ "Deprecated legacy grouping path. Prefer MessagePrimitive.GroupedParts for grouped reasoning and tool calls.",
223
225
  },
224
226
  {
225
227
  name: "Empty",
@@ -400,9 +402,51 @@ type QuoteInfo = {
400
402
  See the [Quoting guide](/docs/guides/quoting) for a complete walkthrough.
401
403
  </Callout>
402
404
 
405
+ ### GroupedParts
406
+
407
+ Renders adjacent message parts through a hierarchical grouping tree. Use this for grouped Chain of Thought, consecutive tool calls, or any other adjacent grouping where each part stays in chronological order.
408
+
409
+ ```tsx
410
+ <MessagePrimitive.GroupedParts
411
+ groupBy={(part) => {
412
+ if (part.type === "reasoning")
413
+ return ["group-chainOfThought", "group-reasoning"];
414
+ if (part.type === "tool-call")
415
+ return ["group-chainOfThought", "group-tool"];
416
+ return null;
417
+ }}
418
+ >
419
+ {({ part, children }) => {
420
+ switch (part.type) {
421
+ case "group-chainOfThought":
422
+ return <div>{children}</div>;
423
+ case "group-reasoning":
424
+ return <ReasoningRoot>{children}</ReasoningRoot>;
425
+ case "group-tool":
426
+ return <ToolGroupRoot>{children}</ToolGroupRoot>;
427
+ case "text":
428
+ return <MarkdownText />;
429
+ case "reasoning":
430
+ return <Reasoning {...part} />;
431
+ case "tool-call":
432
+ return part.toolUI ?? <ToolFallback {...part} />;
433
+ case "data":
434
+ return part.dataRendererUI;
435
+ default:
436
+ return null;
437
+ }
438
+ }}
439
+ </MessagePrimitive.GroupedParts>
440
+ ```
441
+
442
+ <ParametersTable
443
+ type="MessagePrimitiveGroupedPartsProps"
444
+ parameters={MessagePrimitiveDocs.GroupedParts.props}
445
+ />
446
+
403
447
  ### Unstable_PartsGrouped
404
448
 
405
- Renders the parts of a message grouped by a custom grouping function. Use this component when you need to visually group related message parts together — for example, grouping parts that share a common parent ID, or collecting consecutive tool calls under a single header.
449
+ Renders the parts of a message grouped by a custom grouping function. Use this unstable API only when you need non-adjacent clustering, such as collecting parts that share a common parent ID across different positions. For adjacent grouping, prefer `MessagePrimitive.GroupedParts`.
406
450
 
407
451
  The `groupingFunction` prop controls how parts are grouped. It receives the full array of message parts and must return an array of group descriptors, each with a `groupKey` (or `undefined` for ungrouped parts) and an array of `indices` into the message parts array. The optional `components.Group` component is then rendered once per group and receives the `groupKey`, `indices`, and the rendered part children.
408
452
 
@@ -124,3 +124,18 @@ Renders a single thread list item at the specified index.
124
124
  },
125
125
  ]}
126
126
  />
127
+
128
+ ### LoadMore
129
+
130
+ A button that calls `aui.threads().loadMore()` to append the next page. See the [LoadMore primitive reference](/docs/primitives/thread-list#loadmore) for usage and [Threads concepts](/docs/runtimes/concepts/threads#paginating-the-thread-list) for the adapter contract.
131
+
132
+ This primitive renders a `<button>` element unless `asChild` is set.
133
+
134
+ <ParametersTable
135
+ type="ThreadListPrimitiveLoadMoreProps"
136
+ parameters={[
137
+ {
138
+ name: "asChild",
139
+ },
140
+ ]}
141
+ />
@@ -67,6 +67,33 @@ This primitive renders a `<div>` element unless `asChild` is set.
67
67
  description:
68
68
  'Controls scroll anchoring behavior for new messages. "bottom" is the classic chat behavior where messages anchor at the bottom. "top" anchors new user messages at the top of the viewport for a focused reading experience.',
69
69
  },
70
+ {
71
+ name: "topAnchorMessageClamp",
72
+ type: '{ tallerThan?: string; visibleHeight?: string }',
73
+ default: '{ tallerThan: "10em", visibleHeight: "6em" }',
74
+ description:
75
+ 'Clamps tall user messages so the assistant response stays in view when turnAnchor is "top". Messages up to `tallerThan` stay fully visible; taller messages show only `visibleHeight` of their bottom edge above the assistant response.',
76
+ children: [
77
+ {
78
+ type: '{ tallerThan?: string; visibleHeight?: string }',
79
+ parameters: [
80
+ {
81
+ name: "tallerThan",
82
+ type: "string",
83
+ default: '"10em"',
84
+ description: "Clamp messages taller than this CSS length.",
85
+ },
86
+ {
87
+ name: "visibleHeight",
88
+ type: "string",
89
+ default: '"6em"',
90
+ description:
91
+ "Visible portion of a clamped message's bottom edge.",
92
+ },
93
+ ],
94
+ },
95
+ ],
96
+ },
70
97
  {
71
98
  name: "scrollToBottomOnRunStart",
72
99
  type: "boolean",
@@ -90,9 +117,17 @@ This primitive renders a `<div>` element unless `asChild` is set.
90
117
  ]}
91
118
  />
92
119
 
120
+ <Callout type="info">
121
+ `ThreadPrimitive.ViewportSlack` has been removed. When `turnAnchor="top"` is
122
+ set, `MessagePrimitive.Root` handles top-anchor registration automatically. If
123
+ you previously customized `fillClampThreshold` or `fillClampOffset` on
124
+ `ViewportSlack` or `MessagePrimitive.Root`, use `topAnchorMessageClamp`
125
+ instead.
126
+ </Callout>
127
+
93
128
  ### ViewportFooter
94
129
 
95
- A footer container placed inside `ThreadPrimitive.Viewport` that measures its own height (including top margin) and reports it to the viewport context. The viewport uses this measurement in scroll calculations — for example, as the minimum height for `ViewportSlack` — so that the scroll-to-bottom behaviour accounts for any sticky footer overlapping the message list.
130
+ A footer container placed inside `ThreadPrimitive.Viewport` that measures its own height (including top margin) and reports it to the viewport context. The viewport uses this measurement in scroll calculations so the scroll-to-bottom behaviour accounts for any sticky footer overlapping the message list.
96
131
 
97
132
  Multiple `ViewportFooter` components may be used; their heights are summed.
98
133
 
@@ -0,0 +1,38 @@
1
+ ---
2
+ title: Overview
3
+ description: Runtime action and state references used by useAui and useAuiState.
4
+ ---
5
+
6
+ {/* AUTO-GENERATED by scripts/generate-api-reference-overviews.mts */}
7
+ {/* Do not edit manually. */}
8
+
9
+ Runtime state pages document the objects exposed through `useAui` and `useAuiState`. Use this section when you need to control assistant-ui programmatically or inspect the exact state available in a context.
10
+
11
+ ## Pages
12
+
13
+ <Cards>
14
+ <Card title={"AssistantRuntime"} href={"/docs/api-reference/runtimes/assistant-runtime"}>
15
+ {"Root runtime for managing threads, tool UIs, and assistant state."}
16
+ </Card>
17
+ <Card title={"AttachmentRuntime"} href={"/docs/api-reference/runtimes/attachment-runtime"}>
18
+ {"Hooks for accessing attachment state in composer and messages."}
19
+ </Card>
20
+ <Card title={"ComposerRuntime"} href={"/docs/api-reference/runtimes/composer-runtime"}>
21
+ {"Runtime for programmatically controlling the message composer."}
22
+ </Card>
23
+ <Card title={"MessagePartRuntime"} href={"/docs/api-reference/runtimes/message-part-runtime"}>
24
+ {"Hook for accessing message part state within parts."}
25
+ </Card>
26
+ <Card title={"MessageRuntime"} href={"/docs/api-reference/runtimes/message-runtime"}>
27
+ {"Hooks for accessing message state and edit composer."}
28
+ </Card>
29
+ <Card title={"ThreadListItemRuntime"} href={"/docs/api-reference/runtimes/thread-list-item-runtime"}>
30
+ {"Runtime for managing individual thread list items."}
31
+ </Card>
32
+ <Card title={"ThreadListRuntime"} href={"/docs/api-reference/runtimes/thread-list-runtime"}>
33
+ {"Runtime for accessing and managing the list of threads."}
34
+ </Card>
35
+ <Card title={"ThreadRuntime"} href={"/docs/api-reference/runtimes/thread-runtime"}>
36
+ {"Runtime for thread state, messages, and viewport management."}
37
+ </Card>
38
+ </Cards>
@@ -22,6 +22,9 @@ await aui.threads().switchToThread(threadId);
22
22
  // (e.g. after async auth completes)
23
23
  await aui.threads().reload();
24
24
 
25
+ // Append the next page of threads when the adapter returned a `nextCursor`
26
+ await aui.threads().loadMore();
27
+
25
28
  // Access the main thread runtime
26
29
  const mainThread = aui.threads().main;
27
30
 
@@ -51,6 +54,8 @@ import { useAuiState } from "@assistant-ui/react";
51
54
 
52
55
  const threads = useAuiState((s) => s.threads.threadIds);
53
56
  const isLoading = useAuiState((s) => s.threads.isLoading);
57
+ const hasMore = useAuiState((s) => s.threads.hasMore);
58
+ const isLoadingMore = useAuiState((s) => s.threads.isLoadingMore);
54
59
  ```
55
60
 
56
61
  <ParametersTable {...ThreadListState} />
@@ -1,8 +1,139 @@
1
1
  ---
2
2
  title: Migration to v0.14
3
- description: Primitives migrate from components prop to children render functions.
3
+ description: Drops APIs deprecated since v0.11/v0.12, and primitives migrate from components prop to children render functions.
4
4
  ---
5
5
 
6
+ Version 0.14 finishes deprecation cycles started in v0.11 and v0.12, and replaces the `components` prop on primitives with a children render function pattern. If your app is on v0.13 and free of deprecation warnings, the only required change is the children API migration.
7
+
8
+ ## Automatic Migration
9
+
10
+ The codemod that ships with the CLI handles the v0.12 hook renames (`useAssistantApi` → `useAui`, etc.) which are also removed in v0.14:
11
+
12
+ ```bash
13
+ npx assistant-ui@latest upgrade
14
+ ```
15
+
16
+ The other removals listed below are simple renames you can apply with find-and-replace.
17
+
18
+ ## Hook Aliases Removed
19
+
20
+ These thin aliases existed only for backwards compatibility:
21
+
22
+ | Removed | Replacement |
23
+ | ------------------------------------ | ---------------------------- |
24
+ | `useAssistantApi` | `useAui` |
25
+ | `useAssistantState` | `useAuiState` |
26
+ | `useAssistantEvent` | `useAuiEvent` |
27
+ | `AssistantIf` | `AuiIf` |
28
+ | `useLocalThreadRuntime` | `useLocalRuntime` |
29
+ | `unstable_useRemoteThreadListRuntime`| `useRemoteThreadListRuntime` |
30
+ | `unstable_useCloudThreadListAdapter` | `useCloudThreadListAdapter` |
31
+ | `unstable_RemoteThreadListAdapter` | `RemoteThreadListAdapter` |
32
+ | `unstable_InMemoryThreadListAdapter` | `InMemoryThreadListAdapter` |
33
+
34
+ ## Runtime API Cleanups
35
+
36
+ ### `AssistantRuntime`
37
+
38
+ | Removed | Replacement |
39
+ | ---------------------------------------- | ----------------------------------------- |
40
+ | `runtime.threadList` | `runtime.threads` |
41
+ | `runtime.switchToNewThread()` | `runtime.threads.switchToNewThread()` |
42
+ | `runtime.switchToThread(id)` | `runtime.threads.switchToThread(id)` |
43
+ | `runtime.registerModelConfigProvider(p)` | `runtime.registerModelContextProvider(p)` |
44
+ | `runtime.reset({ initialMessages })` | `runtime.thread.reset(initialMessages)` |
45
+
46
+ ### `ThreadRuntime`
47
+
48
+ | Removed | Replacement |
49
+ | ------------------------------------------ | ----------------------------------- |
50
+ | `thread.startRun(parentId)` (positional) | `thread.startRun({ parentId })` |
51
+ | `thread.unstable_resumeRun(config)` | `thread.resumeRun(config)` |
52
+ | `thread.unstable_loadExternalState(state)` | `thread.importExternalState(state)` |
53
+ | `thread.getModelConfig()` | `thread.getModelContext()` |
54
+
55
+ ### `MessageState` / `MessageRuntime`
56
+
57
+ The duplicate top-level `submittedFeedback` field has been removed. It has always been mirrored from `message.metadata.submittedFeedback`, which remains the source of truth:
58
+
59
+ ```tsx
60
+ // Before
61
+ useAuiState((s) => s.message.submittedFeedback);
62
+
63
+ // After
64
+ useAuiState((s) => s.message.metadata.submittedFeedback);
65
+ ```
66
+
67
+ ### `ChatModelRunOptions`
68
+
69
+ If you wrote a custom `ChatModelAdapter`, the legacy alias `options.config` (which mirrored `options.context`) is gone:
70
+
71
+ ```ts
72
+ // Before
73
+ const adapter: ChatModelAdapter = {
74
+ async run({ messages, config }) {
75
+ /* config.tools, config.config, ... */
76
+ },
77
+ };
78
+
79
+ // After
80
+ const adapter: ChatModelAdapter = {
81
+ async run({ messages, context }) {
82
+ /* context.tools, context.config, ... */
83
+ },
84
+ };
85
+ ```
86
+
87
+ ## External Store Helpers
88
+
89
+ `getExternalStoreMessage` (singular) has been removed. Use `getExternalStoreMessages` (plural), which always returns an array — even when only one source message is bound:
90
+
91
+ ```ts
92
+ // Before
93
+ const original = getExternalStoreMessage<MyMessage>(threadMessage);
94
+
95
+ // After
96
+ const [original] = getExternalStoreMessages<MyMessage>(threadMessage);
97
+ ```
98
+
99
+ ## Assistant Transport Helpers
100
+
101
+ `toAISDKTools` and `getEnabledTools` (re-exported from `@assistant-ui/react`) have been removed. Both wrapped functionality that's now exposed directly by `assistant-stream`:
102
+
103
+ ```ts
104
+ // Before
105
+ import { toAISDKTools } from "@assistant-ui/react";
106
+ const schemas = toAISDKTools(tools);
107
+
108
+ // After
109
+ import { toToolsJSONSchema } from "assistant-stream";
110
+ const schemas = toToolsJSONSchema(tools);
111
+ ```
112
+
113
+ `toToolsJSONSchema` filters out `disabled` and `backend` tools by default. To replicate the old `toAISDKTools` behavior exactly (include all tools regardless), pass `{ filter: () => true }`.
114
+
115
+ ## react-langgraph
116
+
117
+ `useLangGraphRuntime`'s `onSwitchToThread` option has been removed. Use `load`, which has the same signature plus an optional `AbortSignal`:
118
+
119
+ ```ts
120
+ // Before
121
+ useLangGraphRuntime({
122
+ stream,
123
+ onSwitchToThread: async (threadId) => {
124
+ return await fetchThread(threadId);
125
+ },
126
+ });
127
+
128
+ // After
129
+ useLangGraphRuntime({
130
+ stream,
131
+ load: async (threadId, { signal } = {}) => {
132
+ return await fetchThread(threadId, { signal });
133
+ },
134
+ });
135
+ ```
136
+
6
137
  ## Children API for Primitives
7
138
 
8
139
  Version 0.14 replaces the `components` prop on primitives with a children render function pattern. This gives you full control over rendering with simple inline logic.
@@ -150,10 +281,17 @@ When using the children API, tool-call parts include `addResult` and `resume` me
150
281
 
151
282
  The `components` prop is still supported on all primitives but is deprecated and will be removed in a future version.
152
283
 
153
- ## Getting Help
284
+ ## Still Deprecated (not removed)
285
+
286
+ Some APIs marked `@deprecated` are intentionally kept for one more release to give downstream runtimes time to migrate:
287
+
288
+ - `ThreadState.threadId` and `ThreadState.metadata` — use `useThreadListItem()` (see [v0.12 guide](/docs/migrations/v0-12)). Will be removed in a future minor release.
289
+ - Legacy context hooks under `legacy-runtime/hooks/*` (`useThreadRuntime`, `useMessageRuntime`, etc.) — replaced by `useAui()` / `useAuiState()` in v0.12. The codemod migrates these.
290
+ - Primitive `If` components (`ThreadIf`, `MessageIf`, `ComposerIf`, `ThreadEmpty`) — replaced by `AuiIf`. The codemod migrates these.
154
291
 
155
- If you encounter issues during migration:
292
+ You'll continue to see deprecation warnings on these; expect removal in a future minor release.
293
+
294
+ ## Getting Help
156
295
 
157
- 1. Check the updated API documentation for detailed examples
158
- 2. Review the example applications in the repository
159
- 3. Report issues at https://github.com/assistant-ui/assistant-ui/issues
296
+ - File issues at https://github.com/assistant-ui/assistant-ui/issues
297
+ - See the [deprecation policy](/docs/migrations/deprecation-policy) for the support window