@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
@@ -1,245 +1,120 @@
1
1
  ---
2
- title: Picking a Runtime
3
- description: Which runtime fits your backend? Decision guide for common setups.
2
+ title: Picking a runtime
3
+ description: Decision guide for choosing the right runtime, by framework or by feature.
4
4
  ---
5
5
 
6
- Choosing the right runtime is crucial for your assistant-ui implementation. This guide helps you navigate the options based on your specific needs.
6
+ import { A2AIcon } from "@/components/icons/a2a";
7
+ import { AdkIcon } from "@/components/icons/adk";
8
+ import { AguiIcon } from "@/components/icons/agui";
9
+ import { CloudflareIcon } from "@/components/icons/cloudflare";
10
+ import { LangChainIcon } from "@/components/icons/langchain";
11
+ import { LangGraphIcon } from "@/components/icons/langgraph";
12
+ import { MastraIcon } from "@/components/icons/mastra";
13
+ import { OpenCodeIcon } from "@/components/icons/opencode";
14
+ import { VercelIcon } from "@/components/icons/vercel";
7
15
 
8
- ## Quick Decision Tree
16
+ A runtime is the connection between assistant-ui's UI primitives and your AI backend. This page helps you pick one. Two lenses, pick whichever maps to what you already know.
9
17
 
10
- ```mermaid
11
- graph TD
12
- A[What's your starting point?] --> B{Existing Framework?}
13
- B -->|Vercel AI SDK| C[Use AI SDK Integration]
14
- B -->|LangGraph via langgraph-sdk| D1[Use react-langgraph]
15
- B -->|LangChain via @langchain/react useStream| D2[Use react-langchain]
16
- B -->|LangServe| E[Use LangServe Runtime]
17
- B -->|Mastra| F[Use Mastra Runtime]
18
- B -->|AG-UI Protocol| J[Use AG-UI Runtime]
19
- B -->|A2A Protocol| K[Use A2A Runtime]
20
- B -->|Custom Backend| G{State Management?}
21
- G -->|Let assistant-ui handle it| H[Use LocalRuntime]
22
- G -->|I'll manage it myself| I[Use ExternalStoreRuntime]
23
- ```
18
+ ## Lens 1: by framework
24
19
 
25
- ## Core Runtimes
20
+ If you are already using one of these frameworks, the choice is mechanical.
26
21
 
27
- These are the foundational runtimes that power assistant-ui:
22
+ ### First-party adapters
28
23
 
29
- <Cards>
30
- <Card
31
- title="`LocalRuntime`"
32
- description="assistant-ui manages chat state internally. Simple adapter pattern for any backend."
33
- href="/docs/runtimes/custom/local"
34
- />
35
- <Card
36
- title="`ExternalStoreRuntime`"
37
- description="You control the state. Perfect for Redux, Zustand, or existing state management."
38
- href="/docs/runtimes/custom/external-store"
39
- />
40
- </Cards>
41
-
42
- ## Pre-Built Integrations
43
-
44
- For popular frameworks, we provide ready-to-use integrations built on top of our core runtimes:
24
+ assistant-ui ships React adapter packages for these. Pick the matching card and follow its overview.
45
25
 
46
26
  <Cards>
47
27
  <Card
28
+ icon={<VercelIcon width={20} height={20} />}
48
29
  title="Vercel AI SDK"
49
- description="For useChat hook - streaming with all major providers"
50
- href="/docs/runtimes/ai-sdk/v6"
51
- />
52
- <Card
53
- title="Data Stream Protocol"
54
- description="For custom backends using the data stream protocol standard"
55
- href="/docs/runtimes/data-stream"
30
+ description="useChat hook, streaming, tools, attachments, multi-step. v6 current; v5 / v4 legacy."
31
+ href="/docs/runtimes/ai-sdk"
56
32
  />
57
33
  <Card
34
+ icon={<LangGraphIcon width={20} height={20} className="text-[#1C3C3C] dark:text-[#5b9595]" />}
58
35
  title="LangGraph"
59
- description="Integrates with `@langchain/langgraph-sdk` directly. Broader feature set: subgraph events, UI messages, message metadata, cancellation."
36
+ description="Direct integration with @langchain/langgraph-sdk. Subgraph events, UI messages, message metadata."
60
37
  href="/docs/runtimes/langgraph"
61
38
  />
62
39
  <Card
40
+ icon={<LangChainIcon width={20} height={20} className="text-[#7FC8FF]" />}
63
41
  title="LangChain useStream"
64
- description="Wraps `useStream` from `@langchain/react`. Lighter-weight, stays aligned with upstream. Fewer features today."
42
+ description="Wraps @langchain/react's useStream. Lighter-weight, tracks upstream."
65
43
  href="/docs/runtimes/langchain"
66
44
  />
67
45
  <Card
68
- title="LangServe"
69
- description="For LangChain applications deployed with LangServe"
70
- href="/docs/runtimes/langserve"
46
+ icon={<AdkIcon width={20} height={20} />}
47
+ title="Google ADK"
48
+ description="ADK JS or Python agents. Tool confirmations, auth flows, multi-agent, code execution."
49
+ href="/docs/runtimes/google-adk"
71
50
  />
72
51
  <Card
73
- title="Mastra"
74
- description="For workflow orchestration with Mastra's ecosystem"
75
- href="/docs/runtimes/mastra/overview"
52
+ icon={<A2AIcon width={20} height={20} />}
53
+ title="A2A Protocol"
54
+ description="Any A2A v1.0-compliant agent server. Streaming task state, artifacts, multi-tenancy."
55
+ href="/docs/runtimes/a2a/overview"
76
56
  />
77
57
  <Card
58
+ icon={<AguiIcon width={20} height={20} />}
78
59
  title="AG-UI Protocol"
79
- description="For backends implementing the AG-UI (Agent-User Interaction) protocol"
80
- href="https://www.npmjs.com/package/@assistant-ui/react-ag-ui"
81
- />
82
- <Card
83
- title="A2A Protocol"
84
- description="For Agent-to-Agent protocol communication between AI agents"
85
- href="/docs/runtimes/a2a"
60
+ description="AG-UI agents (CopilotKit, custom servers). Streaming text, thinking, tool calls, state snapshots."
61
+ href="/docs/runtimes/ag-ui"
86
62
  />
63
+ <PlatformOnly platforms={["react"]}>
64
+ <Card
65
+ icon={<OpenCodeIcon width={20} height={20} />}
66
+ title="OpenCode"
67
+ description="OpenCode coding-agent server. Permission flows, questions, fork / revert. Experimental."
68
+ href="/docs/runtimes/opencode"
69
+ />
70
+ </PlatformOnly>
87
71
  </Cards>
88
72
 
89
- ## Understanding Runtime Architecture
73
+ <PlatformOnly platforms={["react"]}>
90
74
 
91
- ### How Pre-Built Integrations Work
75
+ ### Integration guides
92
76
 
93
- The pre-built integrations (AI SDK, LangGraph, etc.) are **not separate runtime types**. They're convenient wrappers built on top of our core runtimes:
77
+ For frameworks without a dedicated adapter, these wiring guides route through one of the adapters above.
94
78
 
95
- - **AI SDK Integration** → Built on `LocalRuntime` with streaming adapter
96
- - **LangGraph Runtime** → Built on `ExternalStoreRuntime`, integrates with `@langchain/langgraph-sdk`
97
- - **LangChain useStream Runtime** → Built on `ExternalStoreRuntime`, wraps `useStream` from `@langchain/react`
98
- - **LangServe Runtime** → Built on `LocalRuntime` with LangServe client adapter
99
- - **Mastra Runtime** → Built on `LocalRuntime` with workflow adapter
100
- - **AG-UI Runtime** → Built on `LocalRuntime` with AG-UI protocol adapter
101
- - **A2A Runtime** → Built on `LocalRuntime` with Agent-to-Agent protocol adapter
79
+ <Cards>
80
+ <Card
81
+ icon={<CloudflareIcon width={20} height={20} />}
82
+ title="Cloudflare Agents"
83
+ description="Stateful agents on Durable Objects with WebSocket streaming. Wired through the Vercel AI SDK runtime."
84
+ href="/docs/integrations/frameworks/cloudflare-agents/overview"
85
+ />
86
+ <Card
87
+ icon={<MastraIcon width={20} height={20} />}
88
+ title="Mastra"
89
+ description="TypeScript agent framework. Wired through the Vercel AI SDK runtime."
90
+ href="/docs/integrations/frameworks/mastra/overview"
91
+ />
92
+ </Cards>
102
93
 
103
- This means pre-built integrations give you assistant-ui's features — state management, streaming, UI primitives — with zero configuration for your specific framework, regardless of whether the adapter happens to build on `LocalRuntime` or `ExternalStoreRuntime` internally. The list above tells you which core runtime each adapter uses.
94
+ </PlatformOnly>
104
95
 
105
- ### When to Use Pre-Built vs Core Runtimes
96
+ ## Lens 2: by needs
106
97
 
107
- **Use a pre-built integration when:**
108
- - You're already using that framework
109
- - You want the fastest possible setup
110
- - The integration covers your needs
98
+ If you do not know your framework yet, or your backend is custom, pick by what you need:
111
99
 
112
- **Use a core runtime when:**
113
- - You have a custom backend
114
- - You need features not exposed by the integration
115
- - You want full control over the implementation
100
+ | You need | Use |
101
+ | --- | --- |
102
+ | Simple `fetch` call to your API, runtime owns state | [LocalRuntime](/docs/runtimes/custom/local-runtime) |
103
+ | Keep messages in redux, zustand, tanstack-query, etc. | [ExternalStoreRuntime](/docs/runtimes/custom/external-store) |
104
+ | Backend that already speaks the data stream protocol | [DataStream](/docs/runtimes/custom/data-stream) |
105
+ | Stream full agent state snapshots (not just messages) | [AssistantTransport](/docs/runtimes/custom/assistant-transport) |
116
106
 
117
- <Callout>
118
- Pre-built integrations can always be replaced with a custom `LocalRuntime` or `ExternalStoreRuntime` implementation if you need more control later.
119
- </Callout>
107
+ If none of the framework adapters fits, start at [custom backend](/docs/runtimes/custom).
108
+
109
+ ## Shared concepts
110
+
111
+ Regardless of which runtime you pick, four ideas apply across the board.
120
112
 
121
- ## Feature Comparison
122
-
123
- ### Core Runtime Capabilities
124
-
125
- | Feature | `LocalRuntime` | `ExternalStoreRuntime` |
126
- | ------- | -------------- | ---------------------- |
127
- | **State Management** | Automatic | You control |
128
- | **Setup Complexity** | Simple | Moderate |
129
- | **Message Editing** | Built-in | Implement `onEdit` |
130
- | **Branch Switching** | Built-in | Implement `setMessages` |
131
- | **Regeneration** | Built-in | Implement `onReload` |
132
- | **Cancellation** | Built-in | Implement `onCancel` |
133
- | **Multi-thread** | Via adapters | Via adapters |
134
-
135
- ### Available Adapters
136
-
137
- | Adapter | `LocalRuntime` | `ExternalStoreRuntime` |
138
- | ------- | -------------- | ---------------------- |
139
- | ChatModel | ✅ Required | ❌ N/A |
140
- | Attachments | ✅ | ✅ |
141
- | Speech | ✅ | ✅ |
142
- | Feedback | ✅ | ✅ |
143
- | History | ✅ | ❌ Use your state |
144
- | Suggestions | ✅ | ❌ Use your state |
145
-
146
- ## Common Implementation Patterns
147
-
148
- ### Vercel AI SDK with Streaming
149
-
150
- ```tsx
151
- import { AssistantRuntimeProvider, Thread } from "@assistant-ui/react";
152
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
153
-
154
- export function MyAssistant() {
155
- const runtime = useChatRuntime();
156
-
157
- return (
158
- <AssistantRuntimeProvider runtime={runtime}>
159
- <Thread />
160
- </AssistantRuntimeProvider>
161
- );
162
- }
163
- ```
164
-
165
- ### Custom Backend with `LocalRuntime`
166
-
167
- ```tsx
168
- import { useLocalRuntime } from "@assistant-ui/react";
169
-
170
- const runtime = useLocalRuntime({
171
- async run({ messages, abortSignal }) {
172
- const response = await fetch("/api/chat", {
173
- method: "POST",
174
- headers: { "Content-Type": "application/json" },
175
- body: JSON.stringify({ messages }),
176
- signal: abortSignal,
177
- });
178
- return response.json();
179
- },
180
- });
181
- ```
182
-
183
- ### Redux Integration with `ExternalStoreRuntime`
184
-
185
- ```tsx
186
- import { useExternalStoreRuntime } from "@assistant-ui/react";
187
-
188
- const messages = useSelector(selectMessages);
189
- const dispatch = useDispatch();
190
-
191
- const runtime = useExternalStoreRuntime({
192
- messages,
193
- onNew: async (message) => {
194
- dispatch(addUserMessage(message));
195
- const response = await api.chat(message);
196
- dispatch(addAssistantMessage(response));
197
- },
198
- setMessages: (messages) => dispatch(setMessages(messages)),
199
- onEdit: async (message) => dispatch(editMessage(message)),
200
- onReload: async (parentId) => dispatch(reloadMessage(parentId)),
201
- });
202
- ```
203
-
204
- ## Examples
205
-
206
- Explore our implementation examples:
207
-
208
- - **[AI SDK v6 Example](https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-ai-sdk-v6)** - Vercel AI SDK with `useChatRuntime`
209
- - **[External Store Example](https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-external-store)** - `ExternalStoreRuntime` with custom state
210
- - **[Assistant Cloud Example](https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-cloud)** - Multi-thread with cloud persistence
211
- - **[LangGraph Example](https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-langgraph)** - Agent workflows
212
-
213
- ## Common Pitfalls to Avoid
214
-
215
- ### LocalRuntime Pitfalls
216
- - **Forgetting the adapter**: `LocalRuntime` requires a `ChatModelAdapter` - it won't work without one
217
- - **Not handling errors**: Always handle API errors in your adapter's `run` function
218
- - **Missing abort signal**: Pass `abortSignal` to your fetch calls for proper cancellation
219
-
220
- ### ExternalStoreRuntime Pitfalls
221
- - **Mutating state**: Always create new arrays/objects when updating messages
222
- - **Missing handlers**: Each UI feature requires its corresponding handler (e.g., no edit button without `onEdit`)
223
- - **Forgetting optimistic updates**: Set `isRunning` to `true` for loading states
224
-
225
- ### General Pitfalls
226
- - **Wrong integration level**: Don't use `LocalRuntime` if you already have Vercel AI SDK - use the AI SDK integration instead
227
- - **Over-engineering**: Start with pre-built integrations before building custom solutions
228
- - **Ignoring TypeScript**: The types will guide you to the correct implementation
229
-
230
- ## Next Steps
231
-
232
- 1. **Choose your runtime** based on the decision tree above
233
- 2. **Follow the specific guide**:
234
- - [AI SDK Integration](/docs/runtimes/ai-sdk/v6)
235
- - [`LocalRuntime` Guide](/docs/runtimes/custom/local)
236
- - [`ExternalStoreRuntime` Guide](/docs/runtimes/custom/external-store)
237
- - [LangGraph Integration](/docs/runtimes/langgraph)
238
- - [LangChain useStream Integration](/docs/runtimes/langchain)
239
- 3. **Start with an example** from our [examples repository](https://github.com/assistant-ui/assistant-ui/tree/main/examples)
240
- 4. **Add features progressively** using adapters
241
- 5. **Consider Assistant Cloud** for production persistence
113
+ - **Architecture** — Framework adapters wrap one of two **core runtimes** (`LocalRuntime`, `ExternalStoreRuntime`). See [architecture](/docs/runtimes/concepts/architecture) for the full layering.
114
+ - **Adapters** (attachments, speech, feedback, history, suggestions) work the same way across runtimes. See [adapters](/docs/runtimes/concepts/adapters).
115
+ - **Threads** (single, cloud, custom database) follow the same model. See [threads](/docs/runtimes/concepts/threads).
116
+ - **Stability** policy: APIs prefixed with `unstable_` may change in any release. See [stability](/docs/runtimes/concepts/stability).
242
117
 
243
118
  <Callout type="info">
244
- Need help? Join our [Discord community](https://discord.gg/S9dwgCNEFs) or check the [GitHub](https://github.com/assistant-ui/assistant-ui).
119
+ Need help? Join our [Discord community](https://discord.gg/S9dwgCNEFs) or check the [GitHub repo](https://github.com/assistant-ui/assistant-ui).
245
120
  </Callout>
@@ -4,6 +4,7 @@ description: A vertically stacked set of interactive headings that reveal or hid
4
4
  links:
5
5
  - label: Radix UI Accordion
6
6
  url: https://www.radix-ui.com/primitives/docs/components/accordion
7
+ platforms: ["react"]
7
8
  ---
8
9
 
9
10
  import { PreviewCode } from "@/components/docs/preview-code.server";
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: AssistantModal
3
3
  description: Floating chat bubble for support widgets and help desks.
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: AssistantSidebar
3
3
  description: Side panel chat for co-pilot experiences and inline assistance.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { AssistantSidebarSample } from "@/components/docs/samples/assistant-sidebar";
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: Attachment
3
3
  description: UI components for attaching and viewing files in messages.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { AttachmentSample } from "@/components/docs/samples/attachment";
@@ -4,6 +4,7 @@ description: A small label component for displaying status, categories, or metad
4
4
  links:
5
5
  - label: Radix UI Slot
6
6
  url: https://www.radix-ui.com/primitives/docs/utilities/slot
7
+ platforms: ["react"]
7
8
  ---
8
9
 
9
10
  import { PreviewCode } from "@/components/docs/preview-code.server";
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: Composer Trigger Popover
3
3
  description: Reusable picker UI for @ mentions, / slash commands, and any other character-triggered popover.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { ComposerTriggerPopoverSample } from "@/components/docs/samples/composer-trigger-popover";
@@ -157,10 +158,20 @@ const commandHandlers: Record<string, () => void> = {
157
158
  | --- | --- |
158
159
  | <Kbd>ArrowDown</Kbd> | Highlight next item |
159
160
  | <Kbd>ArrowUp</Kbd> | Highlight previous item |
160
- | <Kbd>Enter</Kbd> | Select highlighted item / drill into category |
161
+ | <Kbd>Enter</Kbd> / <Kbd>Tab</Kbd> | Select highlighted item / drill into category |
162
+ | <Kbd>Shift + Enter</Kbd> | Insert newline (popover stays open) |
163
+ | <Kbd>Shift + Tab</Kbd> | Pass through (native focus traversal) |
161
164
  | <Kbd>Escape</Kbd> | Close popover |
162
165
  | <Kbd>Backspace</Kbd> | Go back to categories (when query is empty) |
163
166
 
167
+ ## Accessibility
168
+
169
+ The popover implements the WAI-ARIA editable combobox pattern.
170
+
171
+ - The listbox container has `role="listbox"` and each item has `role="option"` plus `aria-selected`.
172
+ - When a popover is open, `ComposerPrimitive.Input` (the underlying `<textarea>`) automatically receives `aria-controls`, `aria-expanded="true"`, `aria-haspopup="listbox"`, and `aria-activedescendant` pointing at the highlighted option. Attributes are removed when the popover closes.
173
+ - When `ComposerPrimitive.Input` is rendered outside a `TriggerPopoverRoot`, no ARIA attributes are added.
174
+
164
175
  ## API Reference
165
176
 
166
177
  | Prop | Type | Default | Description |
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: Context Display
3
3
  description: Visualize token usage relative to a model's context window — ring, bar, or text — with a detailed hover popover.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { ContextDisplaySample } from "@/components/docs/samples/context-display";
@@ -6,6 +6,7 @@ links:
6
6
  url: https://github.com/sergeyt/parse-diff
7
7
  - label: diff
8
8
  url: https://github.com/kpdecker/jsdiff
9
+ platforms: ["react"]
9
10
  ---
10
11
 
11
12
  import { PreviewCode } from "@/components/docs/preview-code.server";
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: Directive Text
3
3
  description: Render mention directives as inline chips in user messages.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { DirectiveTextSample } from "@/components/docs/samples/directive-text";
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: File
3
3
  description: Display file message parts with icon, name, size, and download button.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { FileSample } from "@/components/docs/samples/file";
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: Image
3
3
  description: Display image message parts with preview, loading states, and fullscreen dialog.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { ImageSample } from "@/components/docs/samples/image";
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: Markdown
3
3
  description: Display rich text with headings, lists, links, and code blocks.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { MarkdownSample } from "@/components/docs/samples/markdown";
@@ -30,20 +31,7 @@ This adds a `/components/assistant-ui/markdown-text.tsx` file to your project, w
30
31
 
31
32
  Pass the `MarkdownText` component to the `MessagePrimitive.Parts` component
32
33
 
33
- ```tsx twoslash title="/components/assistant-ui/thread.tsx" {1,7}
34
- // @filename: /components/assistant-ui/markdown-text.tsx
35
- import { FC } from "react";
36
- export const MarkdownText: FC = () => null;
37
-
38
- // @filename: ./thread.tsx
39
- import { FC } from "react";
40
- import { MessagePrimitive } from "@assistant-ui/react";
41
- import { Avatar, AvatarFallback } from "@/components/ui/avatar";
42
-
43
- const AssistantActionBar: FC = () => null;
44
- const BranchPicker: FC<{ className?: string }> = () => null;
45
-
46
- // ---cut---
34
+ ```tsx title="/components/assistant-ui/thread.tsx" {1,7}
47
35
  import { MarkdownText } from "@/components/assistant-ui/markdown-text";
48
36
 
49
37
  const AssistantMessage: FC = () => {
@@ -0,0 +1,102 @@
1
+ ---
2
+ title: MCP Config Dialog
3
+ description: Drop-in shadcn dialog that lists MCP connectors and custom servers, with inline OAuth/bearer auth controls and an add form.
4
+ platforms: ["react"]
5
+ ---
6
+
7
+ `McpConfigDialog` is a shadcn template that wraps the [`@assistant-ui/react-mcp`](/docs/integrations/tools/react-mcp) primitives. Render it anywhere inside an `McpManagerResource`-mounted client and your users get a styled MCP server panel — no manual primitive composition.
8
+
9
+ ## Getting Started
10
+
11
+ <Steps>
12
+ <Step>
13
+
14
+ ### Install the package and the component
15
+
16
+ <InstallCommand npm={["@assistant-ui/react-mcp"]} />
17
+
18
+ <InstallCommand shadcn={["mcp-config"]} />
19
+
20
+ </Step>
21
+ <Step>
22
+
23
+ ### Mount the manager
24
+
25
+ ```tsx title="app/providers.tsx"
26
+ "use client";
27
+
28
+ import { AuiProvider, useAui } from "@assistant-ui/react";
29
+ import { McpManagerResource, defineConnector } from "@assistant-ui/react-mcp";
30
+
31
+ const connectors = [
32
+ defineConnector({
33
+ id: "linear",
34
+ name: "Linear",
35
+ url: "https://mcp.linear.app",
36
+ auth: { type: "oauth", scopes: ["read"] },
37
+ }),
38
+ ];
39
+
40
+ export function Providers({ children }: { children: React.ReactNode }) {
41
+ const aui = useAui({ mcp: McpManagerResource({ connectors }) });
42
+ return <AuiProvider value={aui}>{children}</AuiProvider>;
43
+ }
44
+ ```
45
+
46
+ </Step>
47
+ <Step>
48
+
49
+ ### Drop the dialog in
50
+
51
+ ```tsx title="app/page.tsx"
52
+ import { McpConfigDialog } from "@/components/assistant-ui/mcp-config";
53
+
54
+ export default function Page() {
55
+ return (
56
+ <header className="flex items-center justify-between">
57
+ <h1>My app</h1>
58
+ <McpConfigDialog />
59
+ </header>
60
+ );
61
+ }
62
+ ```
63
+
64
+ That's it. The default trigger is an outline `"🔌 MCP servers"` button. Click it to open the dialog, which renders a **Connectors** list (your app-defined presets with connect/authorize/disconnect controls), a **Custom servers** list (user-added entries with the same controls plus a remove button), and an inline **Add server** form for URL + name + auth selection.
65
+
66
+ </Step>
67
+ <Step>
68
+
69
+ ### Override the trigger (optional)
70
+
71
+ Pass children to swap the default button for your own:
72
+
73
+ ```tsx
74
+ <McpConfigDialog>
75
+ <Button variant="ghost">Servers</Button>
76
+ </McpConfigDialog>
77
+ ```
78
+
79
+ </Step>
80
+ <Step>
81
+
82
+ ### Wire up the OAuth callback
83
+
84
+ Required for any OAuth-enabled connector or custom server. See the [OAuth callback section in the react-mcp guide](/docs/integrations/tools/react-mcp#handle-the-oauth-callback) for the route handler.
85
+
86
+ </Step>
87
+ </Steps>
88
+
89
+ ## Related
90
+
91
+ <Cards>
92
+ <Card
93
+ title="User-managed MCP servers"
94
+ description="Full @assistant-ui/react-mcp guide — connectors, custom servers, OAuth, storage, custom primitives."
95
+ href="/docs/integrations/tools/react-mcp"
96
+ />
97
+ <Card
98
+ title="Server-side MCP"
99
+ description="App-developer-controlled MCP servers wired into the API route."
100
+ href="/docs/integrations/tools/mcp"
101
+ />
102
+ </Cards>
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: "Mermaid Diagrams"
3
3
  description: Render Mermaid diagrams in chat messages with streaming support.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { MermaidSample } from "@/components/docs/samples/mermaid";
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: Message Timing
3
3
  description: Display streaming performance stats — TTFT, total time, tok/s, and chunk count — as a badge with hover popover.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { MessageTimingSample } from "@/components/docs/samples/message-timing";
@@ -65,9 +66,9 @@ The badge displays `totalStreamTime` inline and reveals a popover on hover with
65
66
 
66
67
  Timing accuracy depends on how your backend is connected.
67
68
 
68
- ### assistant-stream (accurate)
69
+ ### Data Stream (accurate)
69
70
 
70
- When using `assistant-stream` on the backend, token counts come directly from the model's usage data sent in `step-finish` chunks. The `tokensPerSecond` metric is exact whenever your backend reports `outputTokens`.
71
+ When using the [Data Stream](/docs/runtimes/custom/data-stream) protocol on the backend (via `assistant-stream`), token counts come directly from the model's usage data sent in `step-finish` chunks. The `tokensPerSecond` metric is exact whenever your backend reports `outputTokens`.
71
72
 
72
73
  ### Vercel AI SDK (estimated)
73
74
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  title: ModelSelector
3
3
  description: Model picker with unified overlay positioning and runtime integration.
4
+ platforms: ["react"]
4
5
  ---
5
6
 
6
7
  import { ModelSelectorSample } from "@/components/docs/samples/model-selector";
@@ -33,11 +34,11 @@ const ComposerAction: FC = () => {
33
34
  <div className="flex items-center gap-1">
34
35
  <ModelSelector
35
36
  models={[
36
- { id: "gpt-4o-mini", name: "GPT-4o Mini", description: "Fast and efficient" },
37
- { id: "gpt-4o", name: "GPT-4o", description: "Balanced performance" },
38
- { id: "o3", name: "o3", description: "Most capable" },
37
+ { id: "gpt-5.4-nano", name: "GPT-5.4 Nano", description: "Fast and efficient" },
38
+ { id: "gpt-5.4-mini", name: "GPT-5.4 Mini", description: "Balanced performance" },
39
+ { id: "gpt-5.5", name: "GPT-5.5", description: "Most capable" },
39
40
  ]}
40
- defaultValue="gpt-4o-mini"
41
+ defaultValue="gpt-5.4-nano"
41
42
  size="sm"
42
43
  />
43
44
  </div>
@@ -57,7 +58,7 @@ export async function POST(req: Request) {
57
58
  const { messages, config } = await req.json();
58
59
 
59
60
  const result = streamText({
60
- model: openai(config?.modelName ?? "gpt-4o"),
61
+ model: openai(config?.modelName ?? "gpt-5.4-nano"),
61
62
  messages: await convertToModelMessages(messages),
62
63
  });
63
64
 
@@ -101,9 +102,9 @@ Each model in the `models` array supports:
101
102
  ```tsx
102
103
  const models = [
103
104
  {
104
- id: "gpt-4o", // Sent to backend as config.modelName
105
- name: "GPT-4o", // Display name in trigger and items
106
- description: "Most capable", // Optional subtitle in items only
105
+ id: "gpt-5.4-nano", // Sent to backend as config.modelName
106
+ name: "GPT-5.4 Nano", // Display name in trigger and items
107
+ description: "Fast and efficient", // Optional subtitle in items only
107
108
  icon: <SparklesIcon />, // Optional icon (any ReactNode)
108
109
  },
109
110
  ];