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

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 (341) hide show
  1. package/.docs/organized/code-examples/waterfall.md +8 -8
  2. package/.docs/organized/code-examples/with-a2a.md +10 -10
  3. package/.docs/organized/code-examples/with-ag-ui.md +12 -12
  4. package/.docs/organized/code-examples/with-ai-sdk-v6.md +14 -14
  5. package/.docs/organized/code-examples/with-artifacts.md +14 -14
  6. package/.docs/organized/code-examples/with-assistant-transport.md +11 -11
  7. package/.docs/organized/code-examples/with-browser-extension.md +345 -0
  8. package/.docs/organized/code-examples/with-chain-of-thought.md +129 -63
  9. package/.docs/organized/code-examples/with-cloud-standalone.md +13 -13
  10. package/.docs/organized/code-examples/with-cloud.md +13 -13
  11. package/.docs/organized/code-examples/with-custom-thread-list.md +65 -20
  12. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +18 -17
  13. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +18 -17
  14. package/.docs/organized/code-examples/with-expo.md +25 -25
  15. package/.docs/organized/code-examples/with-external-store.md +10 -10
  16. package/.docs/organized/code-examples/with-ffmpeg.md +14 -14
  17. package/.docs/organized/code-examples/with-generative-ui.md +211 -14
  18. package/.docs/organized/code-examples/with-google-adk.md +12 -12
  19. package/.docs/organized/code-examples/with-heat-graph.md +8 -8
  20. package/.docs/organized/code-examples/with-image-generation.md +454 -0
  21. package/.docs/organized/code-examples/with-interactables.md +14 -14
  22. package/.docs/organized/code-examples/with-langchain.md +12 -12
  23. package/.docs/organized/code-examples/with-langgraph.md +15 -12
  24. package/.docs/organized/code-examples/with-livekit.md +19 -18
  25. package/.docs/organized/code-examples/with-mcp.md +748 -0
  26. package/.docs/organized/code-examples/with-opencode.md +107 -62
  27. package/.docs/organized/code-examples/with-parent-id-grouping.md +12 -12
  28. package/.docs/organized/code-examples/with-react-hook-form.md +14 -14
  29. package/.docs/organized/code-examples/with-react-ink.md +4 -4
  30. package/.docs/organized/code-examples/with-react-router.md +16 -16
  31. package/.docs/organized/code-examples/with-resumable-stream.md +660 -0
  32. package/.docs/organized/code-examples/with-store.md +8 -8
  33. package/.docs/organized/code-examples/with-tanstack.md +14 -14
  34. package/.docs/organized/code-examples/with-tap-runtime.md +11 -10
  35. package/.docs/raw/docs/(docs)/cli.mdx +3 -1
  36. package/.docs/raw/docs/(docs)/copilots/assistant-frame.mdx +1 -0
  37. package/.docs/raw/docs/(docs)/copilots/make-assistant-tool-ui.mdx +10 -3
  38. package/.docs/raw/docs/(docs)/copilots/make-assistant-tool.mdx +8 -3
  39. package/.docs/raw/docs/(docs)/copilots/make-assistant-visible.mdx +1 -0
  40. package/.docs/raw/docs/(docs)/copilots/model-context.mdx +1 -0
  41. package/.docs/raw/docs/(docs)/copilots/motivation.mdx +1 -0
  42. package/.docs/raw/docs/(docs)/copilots/use-assistant-instructions.mdx +1 -0
  43. package/.docs/raw/docs/(docs)/devtools.mdx +1 -0
  44. package/.docs/raw/docs/(docs)/index.mdx +3 -2
  45. package/.docs/raw/docs/(docs)/installation.mdx +2 -1
  46. package/.docs/raw/docs/(docs)/rtl.mdx +1 -0
  47. package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +36 -0
  48. package/.docs/raw/docs/(reference)/api-reference/adapters/feedback.mdx +20 -0
  49. package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +34 -0
  50. package/.docs/raw/docs/(reference)/api-reference/adapters/model.mdx +44 -0
  51. package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +55 -0
  52. package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +20 -0
  53. package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +20 -0
  54. package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +37 -8
  55. package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +22 -0
  56. package/.docs/raw/docs/(reference)/api-reference/context-providers/scoped-providers.mdx +64 -0
  57. package/.docs/raw/docs/(reference)/api-reference/external-store/index.mdx +22 -0
  58. package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +52 -0
  59. package/.docs/raw/docs/(reference)/api-reference/external-store/runtime.mdx +36 -0
  60. package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +98 -0
  61. package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +31 -0
  62. package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +33 -0
  63. package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +640 -0
  64. package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +28 -0
  65. package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +94 -0
  66. package/.docs/raw/docs/(reference)/api-reference/hooks/utilities.mdx +464 -0
  67. package/.docs/raw/docs/(reference)/api-reference/integrations/cloud-ai-sdk.mdx +24 -0
  68. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +22 -0
  69. package/.docs/raw/docs/(reference)/api-reference/integrations/react-ai-sdk.mdx +79 -0
  70. package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +52 -0
  71. package/.docs/raw/docs/(reference)/api-reference/model-context/index.mdx +22 -0
  72. package/.docs/raw/docs/(reference)/api-reference/model-context/registry.mdx +20 -0
  73. package/.docs/raw/docs/(reference)/api-reference/overview.mdx +125 -125
  74. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar-more.mdx +78 -221
  75. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +127 -242
  76. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +46 -20
  77. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-modal.mdx +66 -87
  78. package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +50 -58
  79. package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +80 -48
  80. package/.docs/raw/docs/(reference)/api-reference/primitives/chain-of-thought.mdx +67 -0
  81. package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +323 -461
  82. package/.docs/raw/docs/(reference)/api-reference/primitives/error.mdx +36 -43
  83. package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +70 -0
  84. package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +63 -245
  85. package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +182 -554
  86. package/.docs/raw/docs/(reference)/api-reference/primitives/queue-item.mdx +65 -0
  87. package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +35 -22
  88. package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +57 -140
  89. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item-more.mdx +70 -161
  90. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item.mdx +84 -108
  91. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +82 -86
  92. package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +173 -314
  93. package/.docs/raw/docs/(reference)/api-reference/runtimes/assistant-runtime.mdx +9 -21
  94. package/.docs/raw/docs/(reference)/api-reference/runtimes/attachment-runtime.mdx +10 -21
  95. package/.docs/raw/docs/(reference)/api-reference/runtimes/composer-runtime.mdx +15 -70
  96. package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +43 -0
  97. package/.docs/raw/docs/(reference)/api-reference/runtimes/message-part-runtime.mdx +25 -28
  98. package/.docs/raw/docs/(reference)/api-reference/runtimes/message-runtime.mdx +11 -63
  99. package/.docs/raw/docs/(reference)/api-reference/runtimes/queue-state.mdx +20 -0
  100. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-item-runtime.mdx +11 -48
  101. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +10 -42
  102. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-runtime.mdx +18 -30
  103. package/.docs/raw/docs/(reference)/api-reference/tools/component-tools.mdx +68 -0
  104. package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +39 -0
  105. package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +79 -0
  106. package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +42 -0
  107. package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +92 -0
  108. package/.docs/raw/docs/(reference)/api-reference/transport/assistant-transport.mdx +48 -0
  109. package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +62 -0
  110. package/.docs/raw/docs/(reference)/api-reference/transport/index.mdx +22 -0
  111. package/.docs/raw/docs/(reference)/api-reference/utilities/index.mdx +19 -0
  112. package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +131 -0
  113. package/.docs/raw/docs/(reference)/api-reference/voice/index.mdx +22 -0
  114. package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +54 -0
  115. package/.docs/raw/docs/(reference)/api-reference/voice/speech-dictation.mdx +36 -0
  116. package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +230 -2
  117. package/.docs/raw/docs/cloud/ai-sdk.mdx +222 -4
  118. package/.docs/raw/docs/cloud/index.mdx +2 -2
  119. package/.docs/raw/docs/cloud/langgraph.mdx +274 -2
  120. package/.docs/raw/docs/{(docs)/guides → guides}/attachments.mdx +45 -40
  121. package/.docs/raw/docs/guides/branching.mdx +76 -0
  122. package/.docs/raw/docs/guides/chain-of-thought.mdx +166 -0
  123. package/.docs/raw/docs/{(docs)/guides → guides}/context-api.mdx +54 -26
  124. package/.docs/raw/docs/{(docs)/guides → guides}/dictation.mdx +3 -1
  125. package/.docs/raw/docs/guides/editing.mdx +102 -0
  126. package/.docs/raw/docs/guides/generative-ui.mdx +142 -0
  127. package/.docs/raw/docs/guides/image-generation.mdx +74 -0
  128. package/.docs/raw/docs/guides/index.mdx +103 -0
  129. package/.docs/raw/docs/{(docs)/guides → guides}/interactables.mdx +51 -2
  130. package/.docs/raw/docs/{(docs)/guides → guides}/latex.mdx +53 -10
  131. package/.docs/raw/docs/guides/mcp-apps.mdx +231 -0
  132. package/.docs/raw/docs/{(docs)/guides → guides}/mentions.mdx +63 -88
  133. package/.docs/raw/docs/{(docs)/guides → guides}/message-timing.mdx +45 -6
  134. package/.docs/raw/docs/{(docs)/guides → guides}/multi-agent.mdx +66 -6
  135. package/.docs/raw/docs/{(docs)/guides → guides}/quoting.mdx +11 -18
  136. package/.docs/raw/docs/guides/resumable-stream-deployment.mdx +212 -0
  137. package/.docs/raw/docs/guides/resumable-stream-stores.mdx +152 -0
  138. package/.docs/raw/docs/guides/resumable-streams.mdx +210 -0
  139. package/.docs/raw/docs/{(docs)/guides → guides}/slash-commands.mdx +104 -38
  140. package/.docs/raw/docs/guides/speech.mdx +156 -0
  141. package/.docs/raw/docs/{(docs)/guides → guides}/suggestions.mdx +91 -69
  142. package/.docs/raw/docs/{(docs)/guides → guides}/tool-ui.mdx +110 -38
  143. package/.docs/raw/docs/{(docs)/guides → guides}/tools.mdx +197 -40
  144. package/.docs/raw/docs/{(docs)/guides → guides}/voice.mdx +41 -2
  145. package/.docs/raw/docs/ink/adapters.mdx +37 -1
  146. package/.docs/raw/docs/ink/custom-backend.mdx +59 -8
  147. package/.docs/raw/docs/ink/index.mdx +11 -14
  148. package/.docs/raw/docs/ink/migration.mdx +1 -3
  149. package/.docs/raw/docs/ink/primitives.mdx +386 -9
  150. package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +520 -0
  151. package/.docs/raw/docs/integrations/auth/better-auth.mdx +191 -0
  152. package/.docs/raw/docs/integrations/auth/clerk.mdx +172 -0
  153. package/.docs/raw/docs/integrations/auth/next-auth.mdx +196 -0
  154. package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +79 -0
  155. package/.docs/raw/docs/integrations/frameworks/cloudflare-agents/overview.mdx +282 -0
  156. package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +188 -0
  157. package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +57 -0
  158. package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +201 -0
  159. package/.docs/raw/docs/integrations/gateways/index.mdx +162 -0
  160. package/.docs/raw/docs/integrations/index.mdx +185 -0
  161. package/.docs/raw/docs/integrations/observability/helicone.mdx +130 -0
  162. package/.docs/raw/docs/integrations/observability/langfuse.mdx +163 -0
  163. package/.docs/raw/docs/integrations/observability/langsmith.mdx +150 -0
  164. package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +712 -0
  165. package/.docs/raw/docs/integrations/tools/mcp.mdx +267 -0
  166. package/.docs/raw/docs/integrations/tools/react-mcp.mdx +337 -0
  167. package/.docs/raw/docs/migrations/v0-14.mdx +297 -0
  168. package/.docs/raw/docs/primitives/action-bar.mdx +1 -0
  169. package/.docs/raw/docs/primitives/assistant-modal.mdx +1 -0
  170. package/.docs/raw/docs/primitives/attachment.mdx +1 -0
  171. package/.docs/raw/docs/primitives/branch-picker.mdx +1 -0
  172. package/.docs/raw/docs/primitives/chain-of-thought.mdx +90 -85
  173. package/.docs/raw/docs/primitives/composer.mdx +55 -1
  174. package/.docs/raw/docs/primitives/error.mdx +1 -0
  175. package/.docs/raw/docs/primitives/index.mdx +4 -3
  176. package/.docs/raw/docs/primitives/message.mdx +68 -5
  177. package/.docs/raw/docs/primitives/selection-toolbar.mdx +1 -0
  178. package/.docs/raw/docs/primitives/suggestion.mdx +10 -0
  179. package/.docs/raw/docs/primitives/thread-list.mdx +39 -0
  180. package/.docs/raw/docs/primitives/thread.mdx +16 -13
  181. package/.docs/raw/docs/react-native/hooks.mdx +2 -2
  182. package/.docs/raw/docs/react-native/index.mdx +5 -7
  183. package/.docs/raw/docs/react-native/migration.mdx +1 -3
  184. package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +396 -0
  185. package/.docs/raw/docs/runtimes/a2a/overview.mdx +60 -0
  186. package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +216 -0
  187. package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +70 -0
  188. package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +243 -0
  189. package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +154 -0
  190. package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +52 -0
  191. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +73 -128
  192. package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +70 -64
  193. package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +337 -123
  194. package/.docs/raw/docs/runtimes/concepts/adapters.mdx +265 -0
  195. package/.docs/raw/docs/runtimes/concepts/architecture.mdx +125 -0
  196. package/.docs/raw/docs/runtimes/concepts/stability.mdx +67 -0
  197. package/.docs/raw/docs/runtimes/concepts/threads.mdx +428 -0
  198. package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +703 -0
  199. package/.docs/raw/docs/runtimes/custom/data-stream.mdx +348 -0
  200. package/.docs/raw/docs/runtimes/custom/external-store.mdx +261 -1236
  201. package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +746 -0
  202. package/.docs/raw/docs/runtimes/custom/overview.mdx +71 -0
  203. package/.docs/raw/docs/runtimes/google-adk/api.mdx +256 -0
  204. package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +717 -0
  205. package/.docs/raw/docs/runtimes/google-adk/overview.mdx +69 -0
  206. package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +229 -0
  207. package/.docs/raw/docs/runtimes/langchain.mdx +533 -0
  208. package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +305 -0
  209. package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +104 -0
  210. package/.docs/raw/docs/runtimes/langgraph/overview.mdx +84 -0
  211. package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +496 -0
  212. package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +127 -0
  213. package/.docs/raw/docs/runtimes/langgraph/threads.mdx +113 -0
  214. package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +3 -3
  215. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -23
  216. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +1 -1
  217. package/.docs/raw/docs/runtimes/opencode/hooks.mdx +191 -0
  218. package/.docs/raw/docs/runtimes/opencode/overview.mdx +48 -0
  219. package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +119 -0
  220. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +78 -203
  221. package/.docs/raw/docs/ui/accordion.mdx +1 -0
  222. package/.docs/raw/docs/ui/assistant-modal.mdx +1 -0
  223. package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -0
  224. package/.docs/raw/docs/ui/attachment.mdx +1 -0
  225. package/.docs/raw/docs/ui/badge.mdx +1 -0
  226. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +12 -1
  227. package/.docs/raw/docs/ui/context-display.mdx +1 -0
  228. package/.docs/raw/docs/ui/diff-viewer.mdx +1 -0
  229. package/.docs/raw/docs/ui/directive-text.mdx +1 -0
  230. package/.docs/raw/docs/ui/file.mdx +1 -0
  231. package/.docs/raw/docs/ui/image.mdx +1 -0
  232. package/.docs/raw/docs/ui/markdown.mdx +2 -14
  233. package/.docs/raw/docs/ui/mcp-config.mdx +102 -0
  234. package/.docs/raw/docs/ui/mermaid.mdx +1 -0
  235. package/.docs/raw/docs/ui/message-timing.mdx +3 -2
  236. package/.docs/raw/docs/ui/model-selector.mdx +9 -8
  237. package/.docs/raw/docs/ui/part-grouping.mdx +325 -313
  238. package/.docs/raw/docs/ui/quote.mdx +1 -0
  239. package/.docs/raw/docs/ui/reasoning.mdx +66 -33
  240. package/.docs/raw/docs/ui/scrollbar.mdx +1 -0
  241. package/.docs/raw/docs/ui/select.mdx +1 -0
  242. package/.docs/raw/docs/ui/sources.mdx +18 -0
  243. package/.docs/raw/docs/ui/streamdown.mdx +35 -2
  244. package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -0
  245. package/.docs/raw/docs/ui/tabs.mdx +1 -0
  246. package/.docs/raw/docs/ui/thread-list.mdx +19 -2
  247. package/.docs/raw/docs/ui/thread.mdx +58 -3
  248. package/.docs/raw/docs/ui/tool-fallback.mdx +1 -0
  249. package/.docs/raw/docs/ui/tool-group.mdx +39 -11
  250. package/.docs/raw/docs/ui/voice.mdx +1 -0
  251. package/.docs/raw/docs/utilities/heat-graph.mdx +1 -0
  252. package/.docs/raw/docs/utilities/react-o11y.mdx +278 -0
  253. package/.docs/raw/docs/utilities/tw-shimmer.mdx +1 -0
  254. package/README.md +14 -72
  255. package/dist/constants.d.ts +12 -9
  256. package/dist/constants.d.ts.map +1 -1
  257. package/dist/constants.js +13 -9
  258. package/dist/constants.js.map +1 -1
  259. package/dist/index.d.ts +7 -3
  260. package/dist/index.d.ts.map +1 -1
  261. package/dist/index.js +25 -24
  262. package/dist/index.js.map +1 -1
  263. package/dist/prepare-docs/code-examples.d.ts +4 -1
  264. package/dist/prepare-docs/code-examples.d.ts.map +1 -1
  265. package/dist/prepare-docs/code-examples.js +109 -121
  266. package/dist/prepare-docs/code-examples.js.map +1 -1
  267. package/dist/prepare-docs/copy-raw.d.ts +4 -1
  268. package/dist/prepare-docs/copy-raw.d.ts.map +1 -1
  269. package/dist/prepare-docs/copy-raw.js +45 -42
  270. package/dist/prepare-docs/copy-raw.js.map +1 -1
  271. package/dist/prepare-docs/prepare.d.ts +1 -2
  272. package/dist/prepare-docs/prepare.js +17 -17
  273. package/dist/prepare-docs/prepare.js.map +1 -1
  274. package/dist/stdio.d.ts +1 -3
  275. package/dist/stdio.js +6 -3
  276. package/dist/stdio.js.map +1 -1
  277. package/dist/tools/docs.d.ts +20 -15
  278. package/dist/tools/docs.d.ts.map +1 -1
  279. package/dist/tools/docs.js +140 -161
  280. package/dist/tools/docs.js.map +1 -1
  281. package/dist/tools/examples.d.ts +20 -15
  282. package/dist/tools/examples.d.ts.map +1 -1
  283. package/dist/tools/examples.js +74 -86
  284. package/dist/tools/examples.js.map +1 -1
  285. package/dist/tools/tests/test-setup.d.ts +5 -2
  286. package/dist/tools/tests/test-setup.d.ts.map +1 -1
  287. package/dist/tools/tests/test-setup.js +21 -28
  288. package/dist/tools/tests/test-setup.js.map +1 -1
  289. package/dist/utils/logger.d.ts +8 -5
  290. package/dist/utils/logger.d.ts.map +1 -1
  291. package/dist/utils/logger.js +17 -17
  292. package/dist/utils/logger.js.map +1 -1
  293. package/dist/utils/mcp-format.d.ts +8 -5
  294. package/dist/utils/mcp-format.d.ts.map +1 -1
  295. package/dist/utils/mcp-format.js +9 -9
  296. package/dist/utils/mcp-format.js.map +1 -1
  297. package/dist/utils/mdx.d.ts +8 -6
  298. package/dist/utils/mdx.d.ts.map +1 -1
  299. package/dist/utils/mdx.js +22 -22
  300. package/dist/utils/mdx.js.map +1 -1
  301. package/dist/utils/paths.d.ts +9 -6
  302. package/dist/utils/paths.d.ts.map +1 -1
  303. package/dist/utils/paths.js +66 -76
  304. package/dist/utils/paths.js.map +1 -1
  305. package/dist/utils/security.d.ts +4 -1
  306. package/dist/utils/security.d.ts.map +1 -1
  307. package/dist/utils/security.js +19 -40
  308. package/dist/utils/security.js.map +1 -1
  309. package/package.json +6 -6
  310. package/src/tools/tests/path-traversal.test.ts +1 -1
  311. package/.docs/raw/docs/(docs)/guides/branching.mdx +0 -65
  312. package/.docs/raw/docs/(docs)/guides/chain-of-thought.mdx +0 -164
  313. package/.docs/raw/docs/(docs)/guides/editing.mdx +0 -66
  314. package/.docs/raw/docs/(docs)/guides/speech.mdx +0 -38
  315. package/.docs/raw/docs/(reference)/api-reference/context-providers/text-message-part-provider.mdx +0 -40
  316. package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +0 -260
  317. package/.docs/raw/docs/(reference)/api-reference/integrations/react-hook-form.mdx +0 -103
  318. package/.docs/raw/docs/(reference)/api-reference/integrations/vercel-ai-sdk.mdx +0 -254
  319. package/.docs/raw/docs/(reference)/migrations/v0-14.mdx +0 -159
  320. package/.docs/raw/docs/runtimes/a2a/index.mdx +0 -298
  321. package/.docs/raw/docs/runtimes/assistant-transport.mdx +0 -1033
  322. package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +0 -314
  323. package/.docs/raw/docs/runtimes/custom/local.mdx +0 -1464
  324. package/.docs/raw/docs/runtimes/data-stream.mdx +0 -422
  325. package/.docs/raw/docs/runtimes/google-adk/index.mdx +0 -686
  326. package/.docs/raw/docs/runtimes/helicone.mdx +0 -61
  327. package/.docs/raw/docs/runtimes/langchain/comparison.mdx +0 -60
  328. package/.docs/raw/docs/runtimes/langchain/index.mdx +0 -210
  329. package/.docs/raw/docs/runtimes/langgraph/index.mdx +0 -699
  330. package/.docs/raw/docs/runtimes/langgraph/tutorial/index.mdx +0 -12
  331. package/.docs/raw/docs/runtimes/langserve.mdx +0 -116
  332. package/.docs/raw/docs/runtimes/mastra/full-stack-integration.mdx +0 -218
  333. package/.docs/raw/docs/runtimes/mastra/overview.mdx +0 -18
  334. package/.docs/raw/docs/runtimes/mastra/separate-server-integration.mdx +0 -217
  335. package/dist/prepare-docs/prepare.d.ts.map +0 -1
  336. package/dist/stdio.d.ts.map +0 -1
  337. /package/.docs/raw/docs/{(reference)/migrations → migrations}/deprecation-policy.mdx +0 -0
  338. /package/.docs/raw/docs/{(reference) → migrations}/react-compatibility.mdx +0 -0
  339. /package/.docs/raw/docs/{(reference)/migrations → migrations}/react-langgraph-v0-7.mdx +0 -0
  340. /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-11.mdx +0 -0
  341. /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-12.mdx +0 -0
@@ -0,0 +1,297 @@
1
+ ---
2
+ title: Migration to v0.14
3
+ description: Drops APIs deprecated since v0.11/v0.12, and primitives migrate from components prop to children render functions.
4
+ ---
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
+
137
+ ## Children API for Primitives
138
+
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.
140
+
141
+ ### ThreadPrimitive.Messages
142
+
143
+ **Before:**
144
+
145
+ ```tsx
146
+ <ThreadPrimitive.Messages
147
+ components={{
148
+ UserMessage,
149
+ EditComposer,
150
+ AssistantMessage,
151
+ }}
152
+ />
153
+ ```
154
+
155
+ **After:**
156
+
157
+ ```tsx
158
+ <ThreadPrimitive.Messages>
159
+ {({ message }) => {
160
+ if (message.composer.isEditing) return <EditComposer />;
161
+ if (message.role === "user") return <UserMessage />;
162
+ return <AssistantMessage />;
163
+ }}
164
+ </ThreadPrimitive.Messages>
165
+ ```
166
+
167
+ ### MessagePrimitive.Parts
168
+
169
+ **Before:**
170
+
171
+ ```tsx
172
+ <MessagePrimitive.Parts
173
+ components={{
174
+ Text: MarkdownText,
175
+ Reasoning,
176
+ tools: { Fallback: ToolFallback },
177
+ }}
178
+ />
179
+ ```
180
+
181
+ **After:**
182
+
183
+ ```tsx
184
+ <MessagePrimitive.Parts>
185
+ {({ part }) => {
186
+ if (part.type === "text") return <MarkdownText />;
187
+ if (part.type === "reasoning") return <Reasoning {...part} />;
188
+ if (part.type === "tool-call")
189
+ return part.toolUI ?? <ToolFallback {...part} />;
190
+ return null;
191
+ }}
192
+ </MessagePrimitive.Parts>
193
+ ```
194
+
195
+ ### `part.toolUI` and `part.dataRendererUI`
196
+
197
+ Tool-call parts now expose a `toolUI` property that resolves to the registered tool UI (via `useAssistantToolUI` / `makeAssistantToolUI`) or `null` if none is registered. Data parts similarly expose `dataRendererUI`.
198
+
199
+ ```tsx
200
+ // Renders the registered tool UI if available, otherwise ToolFallback
201
+ if (part.type === "tool-call")
202
+ return part.toolUI ?? <ToolFallback {...part} />;
203
+
204
+ // Renders the registered data renderer if available
205
+ if (part.type === "data")
206
+ return part.dataRendererUI ?? null;
207
+ ```
208
+
209
+ ### Returning `null`
210
+
211
+ Returning `null` from the children function renders registered tool UIs and data renderer UIs automatically via the registry. To explicitly render nothing (suppressing registered UIs), return `<></>`.
212
+
213
+ ```tsx
214
+ <MessagePrimitive.Parts>
215
+ {({ part }) => {
216
+ if (part.type === "text") return <MarkdownText />;
217
+ return null; // registered tool/data UIs still render
218
+ }}
219
+ </MessagePrimitive.Parts>
220
+ ```
221
+
222
+ ### ThreadPrimitive.Suggestions
223
+
224
+ **Before:**
225
+
226
+ ```tsx
227
+ <ThreadPrimitive.Suggestions
228
+ components={{ Suggestion: SuggestionItem }}
229
+ />
230
+ ```
231
+
232
+ **After:**
233
+
234
+ ```tsx
235
+ <ThreadPrimitive.Suggestions>
236
+ {() => <SuggestionItem />}
237
+ </ThreadPrimitive.Suggestions>
238
+ ```
239
+
240
+ ### ThreadListPrimitive.Items
241
+
242
+ **Before:**
243
+
244
+ ```tsx
245
+ <ThreadListPrimitive.Items
246
+ components={{ ThreadListItem: MyThreadListItem }}
247
+ />
248
+ ```
249
+
250
+ **After:**
251
+
252
+ ```tsx
253
+ <ThreadListPrimitive.Items>
254
+ {() => <MyThreadListItem />}
255
+ </ThreadListPrimitive.Items>
256
+ ```
257
+
258
+ ### Attachments
259
+
260
+ **Before:**
261
+
262
+ ```tsx
263
+ <ComposerPrimitive.Attachments
264
+ components={{ Attachment: MyAttachment }}
265
+ />
266
+ ```
267
+
268
+ **After:**
269
+
270
+ ```tsx
271
+ <ComposerPrimitive.Attachments>
272
+ {() => <MyAttachment />}
273
+ </ComposerPrimitive.Attachments>
274
+ ```
275
+
276
+ ### `addResult` / `resume` on enriched part state
277
+
278
+ When using the children API, tool-call parts include `addResult` and `resume` methods directly on the part object. This means `<ToolFallback {...part} />` works without needing a wrapper component to provide these methods.
279
+
280
+ ### Backwards Compatibility
281
+
282
+ The `components` prop is still supported on all primitives but is deprecated and will be removed in a future version.
283
+
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.
291
+
292
+ You'll continue to see deprecation warnings on these; expect removal in a future minor release.
293
+
294
+ ## Getting Help
295
+
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
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: ActionBar
3
3
  description: Build message action buttons with auto-hide, copy state, and intelligent disabling.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { ActionBarPrimitiveSample } from "@/components/docs/samples/action-bar-primitive";
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: AssistantModal
3
3
  description: A floating chat popover with a fixed-position trigger button that opens a chat panel.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { AssistantModalSample } from "@/components/docs/samples/assistant-modal";
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: Attachment
3
3
  description: File and image attachment rendering for the composer and messages.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { AttachmentSample } from "@/components/docs/samples/attachment";
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: BranchPicker
3
3
  description: Navigate between message branches, which are alternative responses the user can flip through.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { BranchPickerPrimitiveSample } from "@/components/docs/samples/branch-picker-primitive";
@@ -1,15 +1,19 @@
1
1
  ---
2
2
  title: ChainOfThought
3
3
  description: Collapsible accordion for grouping reasoning steps and tool calls.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { ChainOfThoughtPrimitiveSample } from "@/components/docs/samples/chain-of-thought-primitive";
7
- import { ChainOfThoughtPrimitive as ChainOfThoughtPrimitiveDocs } from "@/generated/primitiveDocs";
8
+ import {
9
+ ChainOfThoughtPrimitive as ChainOfThoughtPrimitiveDocs,
10
+ MessagePrimitive as MessagePrimitiveDocs,
11
+ } from "@/generated/primitiveDocs";
8
12
 
9
- The ChainOfThought primitive groups consecutive reasoning and tool-call parts into a collapsible accordion. Reasoning models emit reasoning tokens and tool calls before producing a final answer. This primitive lets you collapse those intermediate steps behind a "Thinking" toggle.
13
+ The ChainOfThought primitive is the legacy accordion API for grouped reasoning and tool-call parts. Reasoning models emit reasoning tokens and tool calls before producing a final answer.
10
14
 
11
- <Callout type="info">
12
- Grouped Chain of Thought currently plugs into `MessagePrimitive.Parts` via `components.ChainOfThought`. If you're wiring grouped CoT, use that API.
15
+ <Callout type="warn">
16
+ For new grouped reasoning/tool-call UI, use `MessagePrimitive.GroupedParts`. `ChainOfThoughtPrimitive` and `components.ChainOfThought` remain available for maintaining existing code.
13
17
  </Callout>
14
18
 
15
19
  <Tabs items={["Preview", "Code"]}>
@@ -18,105 +22,106 @@ Grouped Chain of Thought currently plugs into `MessagePrimitive.Parts` via `comp
18
22
  </Tab>
19
23
  <Tab>
20
24
  ```tsx
21
- import {
22
- AuiIf,
23
- ChainOfThoughtPrimitive,
24
- MessagePrimitive,
25
- } from "@assistant-ui/react";
25
+ import { MessagePrimitive } from "@assistant-ui/react";
26
26
 
27
27
  function AssistantMessage() {
28
28
  return (
29
29
  <MessagePrimitive.Root>
30
- <MessagePrimitive.Parts>
31
- {({ part }) => {
32
- if (part.type === "text") return <MyText />;
30
+ <MessagePrimitive.GroupedParts
31
+ groupBy={(part) => {
32
+ if (part.type === "reasoning")
33
+ return ["group-chainOfThought", "group-reasoning"];
34
+ if (part.type === "tool-call")
35
+ return ["group-chainOfThought", "group-tool"];
33
36
  return null;
34
37
  }}
35
- </MessagePrimitive.Parts>
36
- <ChainOfThought />
38
+ >
39
+ {({ part, children }) => {
40
+ switch (part.type) {
41
+ case "group-chainOfThought":
42
+ return <ThinkingAccordion>{children}</ThinkingAccordion>;
43
+ case "group-reasoning":
44
+ return <ReasoningGroup>{children}</ReasoningGroup>;
45
+ case "group-tool":
46
+ return <ToolGroup>{children}</ToolGroup>;
47
+ case "text":
48
+ return <MyText />;
49
+ case "reasoning":
50
+ return <MyReasoning {...part} />;
51
+ case "tool-call":
52
+ return part.toolUI ?? <MyToolFallback {...part} />;
53
+ default:
54
+ return null;
55
+ }
56
+ }}
57
+ </MessagePrimitive.GroupedParts>
37
58
  </MessagePrimitive.Root>
38
59
  );
39
60
  }
40
-
41
- function ChainOfThought() {
42
- return (
43
- <ChainOfThoughtPrimitive.Root className="my-2 rounded-lg border">
44
- <ChainOfThoughtPrimitive.AccordionTrigger className="flex w-full cursor-pointer items-center gap-2 px-4 py-2.5 font-medium text-sm hover:bg-muted/50">
45
- Thinking
46
- </ChainOfThoughtPrimitive.AccordionTrigger>
47
- <AuiIf condition={(s) => !s.chainOfThought.collapsed}>
48
- <ChainOfThoughtPrimitive.Parts
49
- components={{
50
- Reasoning: ({ text }) => (
51
- <p className="whitespace-pre-wrap px-4 py-2 text-muted-foreground text-sm italic">
52
- {text}
53
- </p>
54
- ),
55
- tools: {
56
- Fallback: ({ toolName, status }) => (
57
- <div className="flex items-center gap-2 px-4 py-2 text-sm">
58
- <span className="font-medium">{toolName}</span>
59
- <span className="text-muted-foreground">
60
- {status.type === "running" ? "running..." : "done"}
61
- </span>
62
- </div>
63
- ),
64
- },
65
- }}
66
- />
67
- </AuiIf>
68
- </ChainOfThoughtPrimitive.Root>
69
- );
70
- }
71
61
  ```
72
62
  </Tab>
73
63
  </Tabs>
74
64
 
75
- ## Quick Start
65
+ ## Recommended: GroupedParts
76
66
 
77
- Render your normal message parts with `MessagePrimitive.Parts`, then place a `ChainOfThought` component alongside them inside the same `MessagePrimitive.Root`:
67
+ Group reasoning and tool-call parts directly in your assistant message:
78
68
 
79
69
  ```tsx
80
- import {
81
- ChainOfThoughtPrimitive,
82
- MessagePrimitive,
83
- } from "@assistant-ui/react";
70
+ import { MessagePrimitive } from "@assistant-ui/react";
84
71
 
85
72
  <MessagePrimitive.Root>
86
- <MessagePrimitive.Parts>
87
- {({ part }) => {
88
- if (part.type === "text") return <MyText />;
73
+ <MessagePrimitive.GroupedParts
74
+ groupBy={(part) => {
75
+ if (part.type === "reasoning")
76
+ return ["group-chainOfThought", "group-reasoning"];
77
+ if (part.type === "tool-call")
78
+ return ["group-chainOfThought", "group-tool"];
89
79
  return null;
90
80
  }}
91
- </MessagePrimitive.Parts>
92
- <MyChainOfThought />
81
+ >
82
+ {({ part, children }) => {
83
+ switch (part.type) {
84
+ case "group-chainOfThought":
85
+ return <ThinkingAccordion>{children}</ThinkingAccordion>;
86
+ case "group-reasoning":
87
+ return <ReasoningGroup>{children}</ReasoningGroup>;
88
+ case "group-tool":
89
+ return <ToolGroup>{children}</ToolGroup>;
90
+ case "text":
91
+ return <MyText />;
92
+ case "reasoning":
93
+ return <MyReasoning {...part} />;
94
+ case "tool-call":
95
+ return part.toolUI ?? <MyToolFallback {...part} />;
96
+ default:
97
+ return null;
98
+ }
99
+ }}
100
+ </MessagePrimitive.GroupedParts>
93
101
  </MessagePrimitive.Root>
94
-
95
- function MyChainOfThought() {
96
- return (
97
- <ChainOfThoughtPrimitive.Root>
98
- <ChainOfThoughtPrimitive.AccordionTrigger>
99
- Thinking
100
- </ChainOfThoughtPrimitive.AccordionTrigger>
101
- <ChainOfThoughtPrimitive.Parts />
102
- </ChainOfThoughtPrimitive.Root>
103
- );
104
- }
105
102
  ```
106
103
 
107
- `Root` renders a `<div>`, `AccordionTrigger` renders a `<button>` that toggles the collapsed state, and `Parts` renders the grouped reasoning and tool-call parts.
104
+ ### GroupedParts API Reference
105
+
106
+ <PrimitivesTypeTable type="MessagePrimitiveGroupedPartsProps" parameters={MessagePrimitiveDocs.GroupedParts.props} />
107
+
108
+ ## Legacy: ChainOfThoughtPrimitive
109
+
110
+ ### Quick Start
111
+
112
+ Render your normal message parts with `MessagePrimitive.Parts`, then place a `ChainOfThought` component alongside them inside the same `MessagePrimitive.Root` only when maintaining older code that already uses the ChainOfThought primitive.
108
113
 
109
114
  <Callout type="info">
110
115
  Runtime setup: primitives require runtime context. Wrap your UI in `AssistantRuntimeProvider` with a runtime (for example `useLocalRuntime(...)`). See [Pick a Runtime](/docs/runtimes/pick-a-runtime).
111
116
  </Callout>
112
117
 
113
- ## Core Concepts
118
+ ### Concepts
114
119
 
115
- ### How Grouping Works
120
+ #### How Grouping Works
116
121
 
117
- `ChainOfThoughtPrimitive.Parts` reads the current message's grouped reasoning and tool-call context. In practice, render your normal text/image/data parts with `MessagePrimitive.Parts`, and render `ChainOfThoughtPrimitive` separately where you want the collapsible reasoning block to appear.
122
+ `ChainOfThoughtPrimitive.Parts` reads the current message's grouped reasoning and tool-call context from the legacy `components.ChainOfThought` path. New code should use `MessagePrimitive.GroupedParts` instead.
118
123
 
119
- ### Collapsed State
124
+ #### Collapsed State
120
125
 
121
126
  The accordion starts collapsed by default. `AccordionTrigger` toggles between collapsed and expanded. Use `AuiIf` to conditionally render parts based on the collapsed state:
122
127
 
@@ -135,7 +140,7 @@ import { AuiIf, ChainOfThoughtPrimitive } from "@assistant-ui/react";
135
140
  </ChainOfThoughtPrimitive.Root>
136
141
  ```
137
142
 
138
- ### Chevron Indicators
143
+ #### Chevron Indicators
139
144
 
140
145
  Use `AuiIf` to show directional icons that reflect the current state:
141
146
 
@@ -154,9 +159,9 @@ import { ChevronDownIcon, ChevronRightIcon } from "lucide-react";
154
159
  </ChainOfThoughtPrimitive.AccordionTrigger>
155
160
  ```
156
161
 
157
- ### Parts Components
162
+ #### Parts Components
158
163
 
159
- `ChainOfThoughtPrimitive.Parts` accepts a `components` prop to control how each part type renders:
164
+ `ChainOfThoughtPrimitive.Parts` accepts a deprecated `components` prop to control how each part type renders:
160
165
 
161
166
  ```tsx
162
167
  <ChainOfThoughtPrimitive.Parts
@@ -186,9 +191,9 @@ import { ChevronDownIcon, ChevronRightIcon } from "lucide-react";
186
191
  | `components.tools.Fallback` | `ToolCallMessagePartComponent` | Fallback for tool-call parts |
187
192
  | `components.Layout` | `ComponentType<PropsWithChildren>` | Wrapper around each rendered part |
188
193
 
189
- ## Parts
194
+ ### Parts API Reference
190
195
 
191
- ### Root
196
+ #### Root
192
197
 
193
198
  Container for the chain-of-thought disclosure UI. Renders a `<div>` element unless `asChild` is set.
194
199
 
@@ -198,7 +203,7 @@ Container for the chain-of-thought disclosure UI. Renders a `<div>` element unle
198
203
  </ChainOfThoughtPrimitive.Root>
199
204
  ```
200
205
 
201
- ### AccordionTrigger
206
+ #### AccordionTrigger
202
207
 
203
208
  Trigger that toggles the collapsed state. Renders a `<button>` element unless `asChild` is set.
204
209
 
@@ -208,7 +213,7 @@ Trigger that toggles the collapsed state. Renders a `<button>` element unless `a
208
213
  </ChainOfThoughtPrimitive.AccordionTrigger>
209
214
  ```
210
215
 
211
- ### Parts
216
+ #### Parts
212
217
 
213
218
  Renders reasoning and tool-call parts. This component does not track collapsed state internally, so control visibility with `AuiIf` as shown in the patterns below.
214
219
 
@@ -233,9 +238,9 @@ Renders reasoning and tool-call parts. This component does not track collapsed s
233
238
 
234
239
  <PrimitivesTypeTable type="ChainOfThoughtPrimitivePartsProps" parameters={ChainOfThoughtPrimitiveDocs.Parts.props} />
235
240
 
236
- ## Patterns
241
+ ### Patterns
237
242
 
238
- ### Minimal Accordion
243
+ #### Minimal Accordion
239
244
 
240
245
  ```tsx
241
246
  function ChainOfThought() {
@@ -260,7 +265,7 @@ function ChainOfThought() {
260
265
  }
261
266
  ```
262
267
 
263
- ### With Tool Calls
268
+ #### With Tool Calls
264
269
 
265
270
  ```tsx
266
271
  function ChainOfThought() {
@@ -298,11 +303,11 @@ function ChainOfThought() {
298
303
  }
299
304
  ```
300
305
 
301
- ## Relationship to Components
306
+ ### Relationship to Components
302
307
 
303
- The [Chain of Thought guide](/docs/guides/chain-of-thought) covers end-to-end setup including backend configuration with reasoning models. See the complete [with-chain-of-thought example](https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-chain-of-thought) for a full working implementation.
308
+ The [Chain of Thought guide](/docs/guides/chain-of-thought) covers end-to-end setup with `MessagePrimitive.GroupedParts`, including backend configuration with reasoning models. See the complete [with-chain-of-thought example](https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-chain-of-thought) for a full working implementation.
304
309
 
305
- ## API Reference
310
+ ### API Reference
306
311
 
307
312
  For the complete guide including backend configuration, see [Chain of Thought](/docs/guides/chain-of-thought). For prop details, see the [ChainOfThoughtPrimitive source](https://github.com/assistant-ui/assistant-ui/tree/main/packages/react/src/primitives/chainOfThought).
308
313