@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
@@ -25,7 +25,7 @@ export async function POST(req: Request) {
25
25
 
26
26
  const result = streamText({
27
27
  // Use a reasoning model to showcase chain of thought
28
- model: openai("o4-mini"),
28
+ model: openai("gpt-5.4-mini"),
29
29
  messages: await convertToModelMessages(messages),
30
30
  stopWhen: stepCountIs(10),
31
31
  tools: {
@@ -45,9 +45,15 @@ export async function POST(req: Request) {
45
45
  },
46
46
  }),
47
47
  },
48
+ providerOptions: {
49
+ openai: {
50
+ reasoningEffort: "high",
51
+ reasoningSummary: "auto",
52
+ },
53
+ },
48
54
  });
49
55
 
50
- return result.toUIMessageStreamResponse();
56
+ return result.toUIMessageStreamResponse({ sendReasoning: true });
51
57
  }
52
58
 
53
59
  ```
@@ -188,7 +194,7 @@ import "./globals.css";
188
194
 
189
195
  export const metadata: Metadata = {
190
196
  title: "Chain of Thought Example",
191
- description: "Example using ChainOfThoughtPrimitive with AI SDK",
197
+ description: "Example using MessagePrimitive.GroupedParts with AI SDK",
192
198
  };
193
199
 
194
200
  export default function RootLayout({
@@ -215,12 +221,11 @@ import { MarkdownText } from "@/components/assistant-ui/markdown-text";
215
221
  import { TooltipIconButton } from "@/components/assistant-ui/tooltip-icon-button";
216
222
  import { Button } from "@/components/ui/button";
217
223
  import {
218
- AuiIf,
219
- ChainOfThoughtPrimitive,
220
224
  ComposerPrimitive,
221
225
  MessagePrimitive,
226
+ SuggestionPrimitive,
222
227
  ThreadPrimitive,
223
- useAuiState,
228
+ useThread,
224
229
  } from "@assistant-ui/react";
225
230
  import {
226
231
  ArrowDownIcon,
@@ -237,6 +242,10 @@ export const MyThread: FC = () => {
237
242
  style={{ ["--thread-max-width" as string]: "44rem" }}
238
243
  >
239
244
  <ThreadPrimitive.Viewport className="flex flex-1 flex-col overflow-y-scroll scroll-smooth px-4 pt-8">
245
+ <ThreadPrimitive.Empty>
246
+ <ThreadWelcome />
247
+ </ThreadPrimitive.Empty>
248
+
240
249
  <ThreadPrimitive.Messages>
241
250
  {({ message }) => {
242
251
  if (message.role === "user") return <UserMessage />;
@@ -265,6 +274,36 @@ const Text: FC<{ text: string }> = ({ text }) => {
265
274
  return <p>{text}</p>;
266
275
  };
267
276
 
277
+ const ThreadWelcome: FC = () => {
278
+ return (
279
+ <div className="mx-auto flex w-full max-w-(--thread-max-width) grow flex-col justify-center gap-6">
280
+ <div>
281
+ <h1 className="font-semibold text-2xl">What should we calculate?</h1>
282
+ </div>
283
+ <div className="flex flex-wrap gap-2">
284
+ <ThreadPrimitive.Suggestions>
285
+ {() => <ThreadSuggestionItem />}
286
+ </ThreadPrimitive.Suggestions>
287
+ </div>
288
+ </div>
289
+ );
290
+ };
291
+
292
+ const ThreadSuggestionItem: FC = () => {
293
+ return (
294
+ <SuggestionPrimitive.Trigger send asChild>
295
+ <Button
296
+ type="button"
297
+ variant="ghost"
298
+ className="h-auto w-full flex-col items-start justify-start gap-1 rounded-2xl border bg-background px-4 py-3 text-start text-sm hover:bg-muted sm:w-[calc(50%-0.25rem)]"
299
+ >
300
+ <SuggestionPrimitive.Title className="font-medium" />
301
+ <SuggestionPrimitive.Description className="text-muted-foreground empty:hidden" />
302
+ </Button>
303
+ </SuggestionPrimitive.Trigger>
304
+ );
305
+ };
306
+
268
307
  const UserMessage: FC = () => {
269
308
  return (
270
309
  <MessagePrimitive.Root className="mx-auto w-full max-w-(--thread-max-width) py-3">
@@ -286,61 +325,69 @@ const AssistantMessage: FC = () => {
286
325
  return (
287
326
  <MessagePrimitive.Root className="mx-auto w-full max-w-(--thread-max-width) py-3">
288
327
  <div className="flex flex-col gap-2 px-2 leading-relaxed">
289
- {/* Text parts are rendered inline; ChainOfThought is rendered separately below. */}
290
- <MessagePrimitive.Parts>
291
- {({ part }) => {
292
- if (part.type === "text") return <MarkdownText />;
328
+ <MessagePrimitive.GroupedParts
329
+ groupBy={(part) => {
330
+ if (part.type === "reasoning")
331
+ return ["group-chainOfThought", "group-reasoning"];
332
+ if (part.type === "tool-call")
333
+ return ["group-chainOfThought", "group-tool"];
293
334
  return null;
294
335
  }}
295
- </MessagePrimitive.Parts>
296
- <ChainOfThought />
336
+ >
337
+ {({ part, children }) => {
338
+ switch (part.type) {
339
+ case "group-chainOfThought":
340
+ return <ChainOfThoughtGroup>{children}</ChainOfThoughtGroup>;
341
+ case "group-reasoning":
342
+ return <PartLayout label="Thinking">{children}</PartLayout>;
343
+ case "group-tool":
344
+ return (
345
+ <PartLayout label="Taking action">{children}</PartLayout>
346
+ );
347
+ case "text":
348
+ return <MarkdownText />;
349
+ case "reasoning":
350
+ return <Reasoning {...part} />;
351
+ case "tool-call":
352
+ return <ToolCall {...part} />;
353
+ default:
354
+ return null;
355
+ }
356
+ }}
357
+ </MessagePrimitive.GroupedParts>
297
358
  </div>
298
359
  </MessagePrimitive.Root>
299
360
  );
300
361
  };
301
362
 
302
- /**
303
- * ChainOfThought component — rendered by MessagePrimitive.Parts when it
304
- * encounters consecutive reasoning + tool-call parts.
305
- *
306
- * Uses ChainOfThoughtPrimitive.Root, AccordionTrigger, and Parts to create
307
- * a collapsible accordion that groups all "thinking" steps together.
308
- */
309
- const ChainOfThought: FC = () => {
363
+ const ChainOfThoughtGroup: FC<PropsWithChildren> = ({ children }) => {
364
+ const [open, setOpen] = useState(false);
365
+
310
366
  return (
311
- <ChainOfThoughtPrimitive.Root className="my-2 rounded-lg border">
312
- <ChainOfThoughtPrimitive.AccordionTrigger className="flex w-full cursor-pointer items-center gap-2 px-4 py-2 font-medium text-sm hover:bg-muted/50">
313
- <AuiIf condition={(s) => s.chainOfThought.collapsed}>
314
- <ChevronRightIcon className="size-4 shrink-0" />
315
- </AuiIf>
316
- <AuiIf condition={(s) => !s.chainOfThought.collapsed}>
367
+ <div className="my-2 rounded-lg border">
368
+ <button
369
+ type="button"
370
+ className="flex w-full cursor-pointer items-center gap-2 px-4 py-2 font-medium text-sm hover:bg-muted/50"
371
+ onClick={() => setOpen((o) => !o)}
372
+ >
373
+ {open ? (
317
374
  <ChevronDownIcon className="size-4 shrink-0" />
318
- </AuiIf>
375
+ ) : (
376
+ <ChevronRightIcon className="size-4 shrink-0" />
377
+ )}
319
378
  Thinking
320
- </ChainOfThoughtPrimitive.AccordionTrigger>
321
- <AuiIf condition={(s) => !s.chainOfThought.collapsed}>
322
- <ChainOfThoughtPrimitive.Parts>
323
- {({ part }) => {
324
- if (part.type === "reasoning")
325
- return (
326
- <PartLayout>
327
- <Reasoning {...part} />
328
- </PartLayout>
329
- );
330
- return null;
331
- }}
332
- </ChainOfThoughtPrimitive.Parts>
333
- </AuiIf>
334
- </ChainOfThoughtPrimitive.Root>
379
+ </button>
380
+ {open && children}
381
+ </div>
335
382
  );
336
383
  };
337
384
 
338
- const PartLayout: FC<PropsWithChildren> = ({ children }) => {
339
- const partType = useAuiState((s) => s.part.type);
385
+ const PartLayout: FC<PropsWithChildren<{ label: string }>> = ({
386
+ children,
387
+ label,
388
+ }) => {
340
389
  const [open, setOpen] = useState(true);
341
390
 
342
- const label = partType === "reasoning" ? "Thinking" : "Taking action";
343
-
344
391
  return (
345
392
  <div className="border-t">
346
393
  <button
@@ -368,7 +415,26 @@ const Reasoning: FC<{ text: string }> = ({ text }) => {
368
415
  );
369
416
  };
370
417
 
418
+ const ToolCall: FC<{ toolName: string; status: { type: string } }> = ({
419
+ toolName,
420
+ status,
421
+ }) => {
422
+ return (
423
+ <div className="px-4 py-2 text-sm">
424
+ {status.type === "running"
425
+ ? `Running ${toolName}...`
426
+ : status.type === "complete"
427
+ ? `${toolName} completed`
428
+ : status.type === "incomplete"
429
+ ? `${toolName} failed`
430
+ : `${toolName} requires action`}
431
+ </div>
432
+ );
433
+ };
434
+
371
435
  const Composer: FC = () => {
436
+ const isRunning = useThread((state) => state.isRunning);
437
+
372
438
  return (
373
439
  <ComposerPrimitive.Root className="flex w-full flex-col rounded-2xl border border-input bg-background px-1 pt-2 outline-none transition-shadow has-[textarea:focus-visible]:border-ring has-[textarea:focus-visible]:ring-2 has-[textarea:focus-visible]:ring-ring/20">
374
440
  <ComposerPrimitive.Input
@@ -378,7 +444,7 @@ const Composer: FC = () => {
378
444
  autoFocus
379
445
  />
380
446
  <div className="relative mx-2 mb-2 flex items-center justify-end">
381
- <AuiIf condition={(s) => !s.thread.isRunning}>
447
+ {!isRunning ? (
382
448
  <ComposerPrimitive.Send asChild>
383
449
  <TooltipIconButton
384
450
  tooltip="Send"
@@ -390,8 +456,7 @@ const Composer: FC = () => {
390
456
  <ArrowUpIcon className="size-4" />
391
457
  </TooltipIconButton>
392
458
  </ComposerPrimitive.Send>
393
- </AuiIf>
394
- <AuiIf condition={(s) => s.thread.isRunning}>
459
+ ) : (
395
460
  <ComposerPrimitive.Cancel asChild>
396
461
  <Button
397
462
  type="button"
@@ -402,7 +467,7 @@ const Composer: FC = () => {
402
467
  <SquareIcon className="size-3 fill-current" />
403
468
  </Button>
404
469
  </ComposerPrimitive.Cancel>
405
- </AuiIf>
470
+ )}
406
471
  </div>
407
472
  </ComposerPrimitive.Root>
408
473
  );
@@ -557,29 +622,29 @@ export default nextConfig;
557
622
  "start": "next start"
558
623
  },
559
624
  "dependencies": {
560
- "@ai-sdk/openai": "^3.0.53",
625
+ "@ai-sdk/openai": "^3.0.64",
561
626
  "@assistant-ui/react": "workspace:*",
562
627
  "@assistant-ui/react-ai-sdk": "workspace:*",
563
628
  "@assistant-ui/react-markdown": "workspace:*",
564
629
  "@assistant-ui/ui": "workspace:*",
565
- "ai": "^6.0.168",
630
+ "ai": "^6.0.188",
566
631
  "class-variance-authority": "^0.7.1",
567
632
  "clsx": "^2.1.1",
568
- "lucide-react": "^1.8.0",
569
- "next": "^16.2.4",
570
- "react": "^19.2.5",
571
- "react-dom": "^19.2.5",
572
- "tailwind-merge": "^3.5.0",
573
- "zod": "^4.3.6"
633
+ "lucide-react": "^1.16.0",
634
+ "next": "^16.2.6",
635
+ "react": "^19.2.6",
636
+ "react-dom": "^19.2.6",
637
+ "tailwind-merge": "^3.6.0",
638
+ "zod": "^4.4.3"
574
639
  },
575
640
  "devDependencies": {
576
641
  "@assistant-ui/x-buildutils": "workspace:*",
577
- "@tailwindcss/postcss": "^4.2.4",
578
- "@types/node": "^25.6.0",
579
- "@types/react": "^19.2.14",
642
+ "@tailwindcss/postcss": "^4.3.0",
643
+ "@types/node": "^25.9.1",
644
+ "@types/react": "^19.2.15",
580
645
  "@types/react-dom": "^19.2.3",
581
- "postcss": "^8.5.10",
582
- "tailwindcss": "^4.2.4",
646
+ "postcss": "^8.5.15",
647
+ "tailwindcss": "^4.3.0",
583
648
  "tw-animate-css": "^1.4.0",
584
649
  "typescript": "^6.0.3"
585
650
  }
@@ -602,6 +667,7 @@ export default nextConfig;
602
667
  "@/lib/utils": ["../../packages/ui/src/lib/utils"],
603
668
  "@assistant-ui/ui/*": ["../../packages/ui/src/*"],
604
669
  "@assistant-ui/*": ["../../packages/*/src"],
670
+ "@assistant-ui/core/*": ["../../packages/core/src/*"],
605
671
  "@assistant-ui/react/*": ["../../packages/react/src/*"],
606
672
  "@assistant-ui/tap/*": ["../../packages/tap/src/*"],
607
673
  "assistant-stream": ["../../packages/assistant-stream/src"]
@@ -13,7 +13,7 @@ export async function POST(req: Request) {
13
13
  const { messages }: { messages: UIMessage[] } = await req.json();
14
14
 
15
15
  const result = streamText({
16
- model: openai("gpt-4o-mini"),
16
+ model: openai("gpt-5.4-nano"),
17
17
  messages: await convertToModelMessages(messages),
18
18
  });
19
19
 
@@ -568,25 +568,25 @@ export default nextConfig;
568
568
  "start": "next start"
569
569
  },
570
570
  "dependencies": {
571
- "@ai-sdk/openai": "^3.0.53",
571
+ "@ai-sdk/openai": "^3.0.64",
572
572
  "@assistant-ui/cloud-ai-sdk": "workspace:*",
573
- "ai": "^6.0.168",
573
+ "ai": "^6.0.188",
574
574
  "class-variance-authority": "^0.7.1",
575
575
  "clsx": "^2.1.1",
576
- "lucide-react": "^1.8.0",
577
- "next": "^16.2.4",
578
- "react": "^19.2.5",
579
- "react-dom": "^19.2.5",
580
- "tailwind-merge": "^3.5.0"
576
+ "lucide-react": "^1.16.0",
577
+ "next": "^16.2.6",
578
+ "react": "^19.2.6",
579
+ "react-dom": "^19.2.6",
580
+ "tailwind-merge": "^3.6.0"
581
581
  },
582
582
  "devDependencies": {
583
583
  "@assistant-ui/x-buildutils": "workspace:*",
584
- "@tailwindcss/postcss": "^4.2.4",
585
- "@types/node": "^25.6.0",
586
- "@types/react": "^19.2.14",
584
+ "@tailwindcss/postcss": "^4.3.0",
585
+ "@types/node": "^25.9.1",
586
+ "@types/react": "^19.2.15",
587
587
  "@types/react-dom": "^19.2.3",
588
- "postcss": "^8.5.10",
589
- "tailwindcss": "^4.2.4",
588
+ "postcss": "^8.5.15",
589
+ "tailwindcss": "^4.3.0",
590
590
  "tw-animate-css": "^1.4.0",
591
591
  "typescript": "^6.0.3"
592
592
  }
@@ -13,7 +13,7 @@ export async function POST(req: Request) {
13
13
  const { messages, system, tools } = await req.json();
14
14
 
15
15
  const result = streamText({
16
- model: openai("gpt-4o"),
16
+ model: openai("gpt-5.4-nano"),
17
17
  messages: await convertToModelMessages(messages),
18
18
  // forward system prompt and tools from the frontend
19
19
  system,
@@ -327,28 +327,28 @@ export default nextConfig;
327
327
  "start": "next start"
328
328
  },
329
329
  "dependencies": {
330
- "@ai-sdk/openai": "^3.0.53",
330
+ "@ai-sdk/openai": "^3.0.64",
331
331
  "@assistant-ui/react": "workspace:*",
332
332
  "@assistant-ui/react-ai-sdk": "workspace:*",
333
333
  "@assistant-ui/react-markdown": "workspace:*",
334
334
  "@assistant-ui/ui": "workspace:*",
335
- "ai": "^6.0.168",
335
+ "ai": "^6.0.188",
336
336
  "class-variance-authority": "^0.7.1",
337
337
  "clsx": "^2.1.1",
338
- "lucide-react": "^1.8.0",
339
- "next": "^16.2.4",
340
- "react": "^19.2.5",
341
- "react-dom": "^19.2.5",
342
- "tailwind-merge": "^3.5.0"
338
+ "lucide-react": "^1.16.0",
339
+ "next": "^16.2.6",
340
+ "react": "^19.2.6",
341
+ "react-dom": "^19.2.6",
342
+ "tailwind-merge": "^3.6.0"
343
343
  },
344
344
  "devDependencies": {
345
345
  "@assistant-ui/x-buildutils": "workspace:*",
346
- "@tailwindcss/postcss": "^4.2.4",
347
- "@types/node": "^25.6.0",
348
- "@types/react": "^19.2.14",
346
+ "@tailwindcss/postcss": "^4.3.0",
347
+ "@types/node": "^25.9.1",
348
+ "@types/react": "^19.2.15",
349
349
  "@types/react-dom": "^19.2.3",
350
- "postcss": "^8.5.10",
351
- "tailwindcss": "^4.2.4",
350
+ "postcss": "^8.5.15",
351
+ "tailwindcss": "^4.3.0",
352
352
  "tw-animate-css": "^1.4.0",
353
353
  "typescript": "^6.0.3"
354
354
  }
@@ -21,7 +21,7 @@ export async function POST(req: Request) {
21
21
  const { messages }: { messages: UIMessage[] } = await req.json();
22
22
 
23
23
  const result = streamText({
24
- model: openai("gpt-4o"),
24
+ model: openai("gpt-5.4-nano"),
25
25
  messages: await convertToModelMessages(messages),
26
26
  stopWhen: stepCountIs(10),
27
27
  tools: {
@@ -215,7 +215,8 @@ import {
215
215
  import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
216
216
  import { createAssistantStream } from "assistant-stream";
217
217
 
218
- // In-memory storage for threads (simulating a database)
218
+ const PAGE_SIZE = 10;
219
+
219
220
  const threadsStore = new Map<
220
221
  string,
221
222
  {
@@ -223,16 +224,33 @@ const threadsStore = new Map<
223
224
  status: "regular" | "archived";
224
225
  title?: string;
225
226
  }
226
- >();
227
+ >(
228
+ Array.from({ length: 25 }, (_, i) => {
229
+ const id = `seed-${String(i).padStart(2, "0")}`;
230
+ return [
231
+ id,
232
+ {
233
+ remoteId: id,
234
+ status: "regular" as const,
235
+ title: `Seeded thread ${i + 1}`,
236
+ },
237
+ ] as const;
238
+ }),
239
+ );
227
240
 
228
241
  const threadListAdapter: RemoteThreadListAdapter = {
229
- async list() {
242
+ async list({ after }: { after?: string } = {}) {
243
+ const all = Array.from(threadsStore.values());
244
+ const start = after ? Number(after) : 0;
245
+ const page = all.slice(start, start + PAGE_SIZE);
246
+ const nextStart = start + page.length;
230
247
  return {
231
- threads: Array.from(threadsStore.values()).map((thread) => ({
248
+ threads: page.map((thread) => ({
232
249
  remoteId: thread.remoteId,
233
250
  status: thread.status,
234
251
  title: thread.title,
235
252
  })),
253
+ nextCursor: nextStart < all.length ? String(nextStart) : undefined,
236
254
  };
237
255
  },
238
256
 
@@ -323,8 +341,35 @@ export function MyRuntimeProvider({
323
341
  "use client";
324
342
 
325
343
  import { Thread } from "@/components/assistant-ui/thread";
326
- import { ThreadList } from "@/components/assistant-ui/thread-list";
327
- import { useAui, AuiProvider, Suggestions } from "@assistant-ui/react";
344
+ import {
345
+ AuiProvider,
346
+ Suggestions,
347
+ ThreadListItemPrimitive,
348
+ ThreadListPrimitive,
349
+ useAui,
350
+ } from "@assistant-ui/react";
351
+
352
+ function ThreadList() {
353
+ return (
354
+ <ThreadListPrimitive.Root className="flex flex-col gap-1 overflow-y-auto">
355
+ <ThreadListPrimitive.New className="flex h-9 items-center gap-2 rounded-lg border px-3 text-sm hover:bg-muted">
356
+ New Thread
357
+ </ThreadListPrimitive.New>
358
+ <ThreadListPrimitive.Items>
359
+ {() => (
360
+ <ThreadListItemPrimitive.Root className="flex h-9 items-center rounded-lg hover:bg-muted data-active:bg-muted">
361
+ <ThreadListItemPrimitive.Trigger className="flex-1 truncate px-3 text-start text-sm">
362
+ <ThreadListItemPrimitive.Title fallback="New Chat" />
363
+ </ThreadListItemPrimitive.Trigger>
364
+ </ThreadListItemPrimitive.Root>
365
+ )}
366
+ </ThreadListPrimitive.Items>
367
+ <ThreadListPrimitive.LoadMore className="mt-1 h-9 rounded-lg border px-3 text-sm hover:bg-muted disabled:opacity-50">
368
+ Load more
369
+ </ThreadListPrimitive.LoadMore>
370
+ </ThreadListPrimitive.Root>
371
+ );
372
+ }
328
373
 
329
374
  function ThreadWithSuggestions() {
330
375
  const aui = useAui({
@@ -414,30 +459,30 @@ export default nextConfig;
414
459
  "start": "next start"
415
460
  },
416
461
  "dependencies": {
417
- "@ai-sdk/openai": "^3.0.53",
462
+ "@ai-sdk/openai": "^3.0.64",
418
463
  "@assistant-ui/react": "workspace:*",
419
464
  "@assistant-ui/react-ai-sdk": "workspace:*",
420
465
  "@assistant-ui/react-markdown": "workspace:*",
421
466
  "@assistant-ui/ui": "workspace:*",
422
- "ai": "^6.0.168",
467
+ "ai": "^6.0.188",
423
468
  "assistant-stream": "workspace:*",
424
469
  "class-variance-authority": "^0.7.1",
425
470
  "clsx": "^2.1.1",
426
- "lucide-react": "^1.8.0",
427
- "next": "^16.2.4",
428
- "react": "^19.2.5",
429
- "react-dom": "^19.2.5",
430
- "tailwind-merge": "^3.5.0",
431
- "zod": "^4.3.6"
471
+ "lucide-react": "^1.16.0",
472
+ "next": "^16.2.6",
473
+ "react": "^19.2.6",
474
+ "react-dom": "^19.2.6",
475
+ "tailwind-merge": "^3.6.0",
476
+ "zod": "^4.4.3"
432
477
  },
433
478
  "devDependencies": {
434
479
  "@assistant-ui/x-buildutils": "workspace:*",
435
- "@tailwindcss/postcss": "^4.2.4",
436
- "@types/node": "^25.6.0",
437
- "@types/react": "^19.2.14",
480
+ "@tailwindcss/postcss": "^4.3.0",
481
+ "@types/node": "^25.9.1",
482
+ "@types/react": "^19.2.15",
438
483
  "@types/react-dom": "^19.2.3",
439
- "postcss": "^8.5.10",
440
- "tailwindcss": "^4.2.4",
484
+ "postcss": "^8.5.15",
485
+ "tailwindcss": "^4.3.0",
441
486
  "tw-animate-css": "^1.4.0",
442
487
  "typescript": "^6.0.3"
443
488
  }
@@ -17,7 +17,7 @@ export async function POST(req: Request) {
17
17
  const { messages }: { messages: UIMessage[] } = await req.json();
18
18
 
19
19
  const result = streamText({
20
- model: openai("gpt-4o"),
20
+ model: openai("gpt-5.4-nano"),
21
21
  messages: await convertToModelMessages(messages),
22
22
  stopWhen: stepCountIs(10),
23
23
  });
@@ -438,31 +438,31 @@ export default nextConfig;
438
438
  "version": "0.0.0",
439
439
  "type": "module",
440
440
  "dependencies": {
441
- "@ai-sdk/openai": "^3.0.53",
442
- "@ai-sdk/react": "^3.0.170",
441
+ "@ai-sdk/openai": "^3.0.64",
442
+ "@ai-sdk/react": "^3.0.190",
443
443
  "@assistant-ui/react": "workspace:^",
444
444
  "@assistant-ui/react-ai-sdk": "workspace:*",
445
445
  "@assistant-ui/react-markdown": "workspace:^",
446
446
  "@assistant-ui/ui": "workspace:*",
447
- "@elevenlabs/client": "^1.2.1",
448
- "@tailwindcss/postcss": "^4.2.4",
449
- "ai": "^6.0.168",
447
+ "@elevenlabs/client": "^1.8.0",
448
+ "@tailwindcss/postcss": "^4.3.0",
449
+ "ai": "^6.0.188",
450
450
  "class-variance-authority": "^0.7.1",
451
451
  "clsx": "^2.1.1",
452
- "lucide-react": "^1.8.0",
453
- "motion": "^12.38.0",
454
- "next": "^16.2.4",
455
- "postcss": "^8.5.10",
456
- "react": "^19.2.5",
457
- "react-dom": "^19.2.5",
458
- "tailwind-merge": "^3.5.0",
459
- "tailwindcss": "^4.2.4",
460
- "zod": "^4.3.6"
452
+ "lucide-react": "^1.16.0",
453
+ "motion": "^12.39.0",
454
+ "next": "^16.2.6",
455
+ "postcss": "^8.5.15",
456
+ "react": "^19.2.6",
457
+ "react-dom": "^19.2.6",
458
+ "tailwind-merge": "^3.6.0",
459
+ "tailwindcss": "^4.3.0",
460
+ "zod": "^4.4.3"
461
461
  },
462
462
  "devDependencies": {
463
463
  "@assistant-ui/x-buildutils": "workspace:*",
464
- "@types/node": "^25.6.0",
465
- "@types/react": "^19.2.14",
464
+ "@types/node": "^25.9.1",
465
+ "@types/react": "^19.2.15",
466
466
  "@types/react-dom": "^19.2.3",
467
467
  "tw-animate-css": "^1.4.0",
468
468
  "typescript": "^6.0.3"
@@ -502,6 +502,7 @@ export default nextConfig;
502
502
  "@/lib/utils": ["../../packages/ui/src/lib/utils"],
503
503
  "@assistant-ui/ui/*": ["../../packages/ui/src/*"],
504
504
  "@assistant-ui/*": ["../../packages/*/src"],
505
+ "@assistant-ui/core/*": ["../../packages/core/src/*"],
505
506
  "@assistant-ui/react/*": ["../../packages/react/src/*"],
506
507
  "@assistant-ui/tap/*": ["../../packages/tap/src/*"],
507
508
  "assistant-stream": ["../../packages/assistant-stream/src"],