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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/.docs/organized/code-examples/waterfall.md +1 -1
  2. package/.docs/organized/code-examples/with-a2a.md +2 -2
  3. package/.docs/organized/code-examples/with-ag-ui.md +3 -3
  4. package/.docs/organized/code-examples/with-ai-sdk-v6.md +5 -5
  5. package/.docs/organized/code-examples/with-artifacts.md +5 -5
  6. package/.docs/organized/code-examples/with-assistant-transport.md +3 -3
  7. package/.docs/organized/code-examples/with-chain-of-thought.md +79 -50
  8. package/.docs/organized/code-examples/with-cloud-standalone.md +4 -4
  9. package/.docs/organized/code-examples/with-cloud.md +4 -4
  10. package/.docs/organized/code-examples/with-custom-thread-list.md +56 -11
  11. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +7 -7
  12. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +7 -7
  13. package/.docs/organized/code-examples/with-expo.md +16 -16
  14. package/.docs/organized/code-examples/with-external-store.md +2 -2
  15. package/.docs/organized/code-examples/with-ffmpeg.md +5 -5
  16. package/.docs/organized/code-examples/with-generative-ui.md +5 -5
  17. package/.docs/organized/code-examples/with-google-adk.md +4 -4
  18. package/.docs/organized/code-examples/with-heat-graph.md +1 -1
  19. package/.docs/organized/code-examples/with-interactables.md +5 -5
  20. package/.docs/organized/code-examples/with-langchain.md +3 -3
  21. package/.docs/organized/code-examples/with-langgraph.md +3 -3
  22. package/.docs/organized/code-examples/with-livekit.md +8 -8
  23. package/.docs/organized/code-examples/with-opencode.md +99 -54
  24. package/.docs/organized/code-examples/with-parent-id-grouping.md +4 -4
  25. package/.docs/organized/code-examples/with-react-hook-form.md +5 -5
  26. package/.docs/organized/code-examples/with-react-ink.md +1 -1
  27. package/.docs/organized/code-examples/with-react-router.md +8 -8
  28. package/.docs/organized/code-examples/with-store.md +1 -1
  29. package/.docs/organized/code-examples/with-tanstack.md +5 -5
  30. package/.docs/organized/code-examples/with-tap-runtime.md +2 -2
  31. package/.docs/raw/docs/(docs)/cli.mdx +2 -1
  32. package/.docs/raw/docs/(docs)/copilots/assistant-frame.mdx +1 -0
  33. package/.docs/raw/docs/(docs)/copilots/make-assistant-tool-ui.mdx +10 -3
  34. package/.docs/raw/docs/(docs)/copilots/make-assistant-tool.mdx +8 -3
  35. package/.docs/raw/docs/(docs)/copilots/make-assistant-visible.mdx +1 -0
  36. package/.docs/raw/docs/(docs)/copilots/model-context.mdx +1 -0
  37. package/.docs/raw/docs/(docs)/copilots/motivation.mdx +1 -0
  38. package/.docs/raw/docs/(docs)/copilots/use-assistant-instructions.mdx +1 -0
  39. package/.docs/raw/docs/(docs)/devtools.mdx +1 -0
  40. package/.docs/raw/docs/(docs)/index.mdx +1 -0
  41. package/.docs/raw/docs/(docs)/installation.mdx +1 -0
  42. package/.docs/raw/docs/(docs)/rtl.mdx +1 -0
  43. package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +34 -0
  44. package/.docs/raw/docs/(reference)/api-reference/adapters/feedback-speech.mdx +41 -0
  45. package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +26 -0
  46. package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +34 -0
  47. package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +31 -0
  48. package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +20 -0
  49. package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +26 -0
  50. package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +72 -0
  51. package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +41 -0
  52. package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +48 -0
  53. package/.docs/raw/docs/(reference)/api-reference/hooks/utilities.mdx +30 -0
  54. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +23 -0
  55. package/.docs/raw/docs/(reference)/api-reference/overview.mdx +21 -0
  56. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +7 -0
  57. package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +65 -0
  58. package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +50 -6
  59. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +15 -0
  60. package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +36 -1
  61. package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +38 -0
  62. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +5 -0
  63. package/.docs/raw/docs/(reference)/migrations/v0-14.mdx +144 -6
  64. package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +230 -2
  65. package/.docs/raw/docs/cloud/ai-sdk.mdx +221 -3
  66. package/.docs/raw/docs/cloud/langgraph.mdx +274 -2
  67. package/.docs/raw/docs/{(docs)/guides → guides}/attachments.mdx +41 -36
  68. package/.docs/raw/docs/guides/branching.mdx +76 -0
  69. package/.docs/raw/docs/guides/chain-of-thought.mdx +166 -0
  70. package/.docs/raw/docs/{(docs)/guides → guides}/context-api.mdx +50 -22
  71. package/.docs/raw/docs/{(docs)/guides → guides}/dictation.mdx +2 -0
  72. package/.docs/raw/docs/guides/editing.mdx +102 -0
  73. package/.docs/raw/docs/guides/index.mdx +103 -0
  74. package/.docs/raw/docs/{(docs)/guides → guides}/interactables.mdx +49 -0
  75. package/.docs/raw/docs/{(docs)/guides → guides}/latex.mdx +51 -8
  76. package/.docs/raw/docs/{(docs)/guides → guides}/mentions.mdx +61 -86
  77. package/.docs/raw/docs/{(docs)/guides → guides}/message-timing.mdx +8 -2
  78. package/.docs/raw/docs/{(docs)/guides → guides}/multi-agent.mdx +64 -4
  79. package/.docs/raw/docs/{(docs)/guides → guides}/quoting.mdx +10 -17
  80. package/.docs/raw/docs/{(docs)/guides → guides}/slash-commands.mdx +103 -37
  81. package/.docs/raw/docs/guides/speech.mdx +156 -0
  82. package/.docs/raw/docs/{(docs)/guides → guides}/suggestions.mdx +21 -83
  83. package/.docs/raw/docs/{(docs)/guides → guides}/tool-ui.mdx +108 -36
  84. package/.docs/raw/docs/{(docs)/guides → guides}/tools.mdx +131 -35
  85. package/.docs/raw/docs/{(docs)/guides → guides}/voice.mdx +39 -0
  86. package/.docs/raw/docs/ink/index.mdx +1 -3
  87. package/.docs/raw/docs/ink/migration.mdx +1 -3
  88. package/.docs/raw/docs/ink/primitives.mdx +37 -1
  89. package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +520 -0
  90. package/.docs/raw/docs/integrations/auth/better-auth.mdx +191 -0
  91. package/.docs/raw/docs/integrations/auth/clerk.mdx +172 -0
  92. package/.docs/raw/docs/integrations/auth/next-auth.mdx +196 -0
  93. package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +79 -0
  94. package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +188 -0
  95. package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +57 -0
  96. package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +201 -0
  97. package/.docs/raw/docs/integrations/gateways/index.mdx +157 -0
  98. package/.docs/raw/docs/integrations/index.mdx +173 -0
  99. package/.docs/raw/docs/integrations/observability/helicone.mdx +130 -0
  100. package/.docs/raw/docs/integrations/observability/langfuse.mdx +156 -0
  101. package/.docs/raw/docs/integrations/observability/langsmith.mdx +146 -0
  102. package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +712 -0
  103. package/.docs/raw/docs/integrations/tools/mcp.mdx +267 -0
  104. package/.docs/raw/docs/primitives/action-bar.mdx +1 -0
  105. package/.docs/raw/docs/primitives/assistant-modal.mdx +1 -0
  106. package/.docs/raw/docs/primitives/attachment.mdx +1 -0
  107. package/.docs/raw/docs/primitives/branch-picker.mdx +1 -0
  108. package/.docs/raw/docs/primitives/chain-of-thought.mdx +90 -85
  109. package/.docs/raw/docs/primitives/composer.mdx +2 -1
  110. package/.docs/raw/docs/primitives/error.mdx +1 -0
  111. package/.docs/raw/docs/primitives/index.mdx +2 -1
  112. package/.docs/raw/docs/primitives/message.mdx +68 -5
  113. package/.docs/raw/docs/primitives/selection-toolbar.mdx +1 -0
  114. package/.docs/raw/docs/primitives/suggestion.mdx +1 -0
  115. package/.docs/raw/docs/primitives/thread-list.mdx +39 -0
  116. package/.docs/raw/docs/primitives/thread.mdx +16 -13
  117. package/.docs/raw/docs/react-native/index.mdx +1 -3
  118. package/.docs/raw/docs/react-native/migration.mdx +1 -3
  119. package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +396 -0
  120. package/.docs/raw/docs/runtimes/a2a/overview.mdx +60 -0
  121. package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +216 -0
  122. package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +70 -0
  123. package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +243 -0
  124. package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +123 -0
  125. package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +52 -0
  126. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +71 -131
  127. package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +69 -63
  128. package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +330 -123
  129. package/.docs/raw/docs/runtimes/concepts/adapters.mdx +265 -0
  130. package/.docs/raw/docs/runtimes/concepts/architecture.mdx +125 -0
  131. package/.docs/raw/docs/runtimes/concepts/stability.mdx +67 -0
  132. package/.docs/raw/docs/runtimes/concepts/threads.mdx +428 -0
  133. package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +703 -0
  134. package/.docs/raw/docs/runtimes/custom/data-stream.mdx +323 -0
  135. package/.docs/raw/docs/runtimes/custom/external-store.mdx +253 -1236
  136. package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +746 -0
  137. package/.docs/raw/docs/runtimes/custom/overview.mdx +71 -0
  138. package/.docs/raw/docs/runtimes/google-adk/api.mdx +256 -0
  139. package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +717 -0
  140. package/.docs/raw/docs/runtimes/google-adk/overview.mdx +69 -0
  141. package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +229 -0
  142. package/.docs/raw/docs/runtimes/langchain.mdx +533 -0
  143. package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +305 -0
  144. package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +104 -0
  145. package/.docs/raw/docs/runtimes/langgraph/overview.mdx +84 -0
  146. package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +496 -0
  147. package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +127 -0
  148. package/.docs/raw/docs/runtimes/langgraph/threads.mdx +113 -0
  149. package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +3 -3
  150. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -23
  151. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +1 -1
  152. package/.docs/raw/docs/runtimes/opencode/hooks.mdx +191 -0
  153. package/.docs/raw/docs/runtimes/opencode/overview.mdx +48 -0
  154. package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +119 -0
  155. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +71 -203
  156. package/.docs/raw/docs/ui/accordion.mdx +1 -0
  157. package/.docs/raw/docs/ui/assistant-modal.mdx +1 -0
  158. package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -0
  159. package/.docs/raw/docs/ui/attachment.mdx +1 -0
  160. package/.docs/raw/docs/ui/badge.mdx +1 -0
  161. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +1 -0
  162. package/.docs/raw/docs/ui/context-display.mdx +1 -0
  163. package/.docs/raw/docs/ui/diff-viewer.mdx +1 -0
  164. package/.docs/raw/docs/ui/directive-text.mdx +1 -0
  165. package/.docs/raw/docs/ui/file.mdx +1 -0
  166. package/.docs/raw/docs/ui/image.mdx +1 -0
  167. package/.docs/raw/docs/ui/markdown.mdx +2 -14
  168. package/.docs/raw/docs/ui/mermaid.mdx +1 -0
  169. package/.docs/raw/docs/ui/message-timing.mdx +3 -2
  170. package/.docs/raw/docs/ui/model-selector.mdx +1 -0
  171. package/.docs/raw/docs/ui/part-grouping.mdx +325 -313
  172. package/.docs/raw/docs/ui/quote.mdx +1 -0
  173. package/.docs/raw/docs/ui/reasoning.mdx +66 -33
  174. package/.docs/raw/docs/ui/scrollbar.mdx +1 -0
  175. package/.docs/raw/docs/ui/select.mdx +1 -0
  176. package/.docs/raw/docs/ui/sources.mdx +1 -0
  177. package/.docs/raw/docs/ui/streamdown.mdx +1 -0
  178. package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -0
  179. package/.docs/raw/docs/ui/tabs.mdx +1 -0
  180. package/.docs/raw/docs/ui/thread-list.mdx +17 -0
  181. package/.docs/raw/docs/ui/thread.mdx +56 -1
  182. package/.docs/raw/docs/ui/tool-fallback.mdx +1 -0
  183. package/.docs/raw/docs/ui/tool-group.mdx +39 -11
  184. package/.docs/raw/docs/ui/voice.mdx +1 -0
  185. package/.docs/raw/docs/utilities/heat-graph.mdx +1 -0
  186. package/.docs/raw/docs/utilities/react-o11y.mdx +278 -0
  187. package/.docs/raw/docs/utilities/tw-shimmer.mdx +1 -0
  188. package/package.json +3 -3
  189. package/src/tools/tests/path-traversal.test.ts +1 -1
  190. package/.docs/raw/docs/(docs)/guides/branching.mdx +0 -65
  191. package/.docs/raw/docs/(docs)/guides/chain-of-thought.mdx +0 -164
  192. package/.docs/raw/docs/(docs)/guides/editing.mdx +0 -66
  193. package/.docs/raw/docs/(docs)/guides/speech.mdx +0 -38
  194. package/.docs/raw/docs/runtimes/a2a/index.mdx +0 -298
  195. package/.docs/raw/docs/runtimes/assistant-transport.mdx +0 -1033
  196. package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +0 -314
  197. package/.docs/raw/docs/runtimes/custom/local.mdx +0 -1464
  198. package/.docs/raw/docs/runtimes/data-stream.mdx +0 -422
  199. package/.docs/raw/docs/runtimes/google-adk/index.mdx +0 -686
  200. package/.docs/raw/docs/runtimes/helicone.mdx +0 -61
  201. package/.docs/raw/docs/runtimes/langchain/comparison.mdx +0 -60
  202. package/.docs/raw/docs/runtimes/langchain/index.mdx +0 -210
  203. package/.docs/raw/docs/runtimes/langgraph/index.mdx +0 -699
  204. package/.docs/raw/docs/runtimes/langgraph/tutorial/index.mdx +0 -12
  205. package/.docs/raw/docs/runtimes/langserve.mdx +0 -116
  206. package/.docs/raw/docs/runtimes/mastra/full-stack-integration.mdx +0 -218
  207. package/.docs/raw/docs/runtimes/mastra/overview.mdx +0 -18
  208. package/.docs/raw/docs/runtimes/mastra/separate-server-integration.mdx +0 -217
@@ -787,7 +787,7 @@ export default nextConfig;
787
787
  "@types/node": "^25.6.0",
788
788
  "@types/react": "^19.2.14",
789
789
  "@types/react-dom": "^19.2.3",
790
- "postcss": "^8.5.10",
790
+ "postcss": "^8.5.14",
791
791
  "tailwindcss": "^4.2.4",
792
792
  "typescript": "^6.0.3"
793
793
  }
@@ -556,7 +556,7 @@ export default nextConfig;
556
556
  "@assistant-ui/ui": "workspace:*",
557
557
  "class-variance-authority": "^0.7.1",
558
558
  "clsx": "^2.1.1",
559
- "lucide-react": "^1.8.0",
559
+ "lucide-react": "^1.14.0",
560
560
  "next": "^16.2.4",
561
561
  "react": "^19.2.5",
562
562
  "react-dom": "^19.2.5",
@@ -568,7 +568,7 @@ export default nextConfig;
568
568
  "@types/node": "^25.6.0",
569
569
  "@types/react": "^19.2.14",
570
570
  "@types/react-dom": "^19.2.3",
571
- "postcss": "^8.5.10",
571
+ "postcss": "^8.5.14",
572
572
  "tailwindcss": "^4.2.4",
573
573
  "tw-animate-css": "^1.4.0",
574
574
  "typescript": "^6.0.3"
@@ -416,14 +416,14 @@ export default nextConfig;
416
416
  "start": "next start"
417
417
  },
418
418
  "dependencies": {
419
- "@ag-ui/client": "^0.0.52",
419
+ "@ag-ui/client": "^0.0.53",
420
420
  "@assistant-ui/react": "workspace:*",
421
421
  "@assistant-ui/react-ag-ui": "workspace:*",
422
422
  "@assistant-ui/react-markdown": "workspace:*",
423
423
  "@assistant-ui/ui": "workspace:*",
424
424
  "class-variance-authority": "^0.7.1",
425
425
  "clsx": "^2.1.1",
426
- "lucide-react": "^1.8.0",
426
+ "lucide-react": "^1.14.0",
427
427
  "next": "^16.2.4",
428
428
  "react": "^19.2.5",
429
429
  "react-dom": "^19.2.5",
@@ -435,7 +435,7 @@ export default nextConfig;
435
435
  "@types/node": "^25.6.0",
436
436
  "@types/react": "^19.2.14",
437
437
  "@types/react-dom": "^19.2.3",
438
- "postcss": "^8.5.10",
438
+ "postcss": "^8.5.14",
439
439
  "tailwindcss": "^4.2.4",
440
440
  "tw-animate-css": "^1.4.0",
441
441
  "typescript": "^6.0.3"
@@ -315,20 +315,20 @@ export default nextConfig;
315
315
  "start": "next start"
316
316
  },
317
317
  "dependencies": {
318
- "@ai-sdk/openai": "^3.0.53",
318
+ "@ai-sdk/openai": "^3.0.61",
319
319
  "@assistant-ui/react": "workspace:*",
320
320
  "@assistant-ui/react-ai-sdk": "workspace:*",
321
321
  "@assistant-ui/react-markdown": "workspace:*",
322
322
  "@assistant-ui/ui": "workspace:*",
323
- "ai": "^6.0.168",
323
+ "ai": "^6.0.175",
324
324
  "class-variance-authority": "^0.7.1",
325
325
  "clsx": "^2.1.1",
326
- "lucide-react": "^1.8.0",
326
+ "lucide-react": "^1.14.0",
327
327
  "next": "^16.2.4",
328
328
  "react": "^19.2.5",
329
329
  "react-dom": "^19.2.5",
330
330
  "tailwind-merge": "^3.5.0",
331
- "zod": "^4.3.6"
331
+ "zod": "^4.4.3"
332
332
  },
333
333
  "devDependencies": {
334
334
  "@assistant-ui/x-buildutils": "workspace:*",
@@ -336,7 +336,7 @@ export default nextConfig;
336
336
  "@types/node": "^25.6.0",
337
337
  "@types/react": "^19.2.14",
338
338
  "@types/react-dom": "^19.2.3",
339
- "postcss": "^8.5.10",
339
+ "postcss": "^8.5.14",
340
340
  "tailwindcss": "^4.2.4",
341
341
  "tw-animate-css": "^1.4.0",
342
342
  "typescript": "^6.0.3"
@@ -415,20 +415,20 @@ export default nextConfig;
415
415
  "start": "next start"
416
416
  },
417
417
  "dependencies": {
418
- "@ai-sdk/openai": "^3.0.53",
418
+ "@ai-sdk/openai": "^3.0.61",
419
419
  "@assistant-ui/react": "workspace:*",
420
420
  "@assistant-ui/react-ai-sdk": "workspace:*",
421
421
  "@assistant-ui/react-markdown": "workspace:*",
422
422
  "@assistant-ui/ui": "workspace:*",
423
- "ai": "^6.0.168",
423
+ "ai": "^6.0.175",
424
424
  "class-variance-authority": "^0.7.1",
425
425
  "clsx": "^2.1.1",
426
- "lucide-react": "^1.8.0",
426
+ "lucide-react": "^1.14.0",
427
427
  "next": "^16.2.4",
428
428
  "react": "^19.2.5",
429
429
  "react-dom": "^19.2.5",
430
430
  "tailwind-merge": "^3.5.0",
431
- "zod": "^4.3.6"
431
+ "zod": "^4.4.3"
432
432
  },
433
433
  "devDependencies": {
434
434
  "@assistant-ui/x-buildutils": "workspace:*",
@@ -436,7 +436,7 @@ export default nextConfig;
436
436
  "@types/node": "^25.6.0",
437
437
  "@types/react": "^19.2.14",
438
438
  "@types/react-dom": "^19.2.3",
439
- "postcss": "^8.5.10",
439
+ "postcss": "^8.5.14",
440
440
  "tailwindcss": "^4.2.4",
441
441
  "tw-animate-css": "^1.4.0",
442
442
  "typescript": "^6.0.3"
@@ -422,12 +422,12 @@ export default nextConfig;
422
422
  "@assistant-ui/ui": "workspace:*",
423
423
  "class-variance-authority": "^0.7.1",
424
424
  "clsx": "^2.1.1",
425
- "lucide-react": "^1.8.0",
425
+ "lucide-react": "^1.14.0",
426
426
  "next": "^16.2.4",
427
427
  "react": "^19.2.5",
428
428
  "react-dom": "^19.2.5",
429
429
  "tailwind-merge": "^3.5.0",
430
- "zod": "^4.3.6"
430
+ "zod": "^4.4.3"
431
431
  },
432
432
  "devDependencies": {
433
433
  "@assistant-ui/x-buildutils": "workspace:*",
@@ -435,7 +435,7 @@ export default nextConfig;
435
435
  "@types/node": "^25.6.0",
436
436
  "@types/react": "^19.2.14",
437
437
  "@types/react-dom": "^19.2.3",
438
- "postcss": "^8.5.10",
438
+ "postcss": "^8.5.14",
439
439
  "tailwindcss": "^4.2.4",
440
440
  "tw-animate-css": "^1.4.0",
441
441
  "typescript": "^6.0.3"
@@ -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({
@@ -216,11 +222,9 @@ import { TooltipIconButton } from "@/components/assistant-ui/tooltip-icon-button
216
222
  import { Button } from "@/components/ui/button";
217
223
  import {
218
224
  AuiIf,
219
- ChainOfThoughtPrimitive,
220
225
  ComposerPrimitive,
221
226
  MessagePrimitive,
222
227
  ThreadPrimitive,
223
- useAuiState,
224
228
  } from "@assistant-ui/react";
225
229
  import {
226
230
  ArrowDownIcon,
@@ -286,61 +290,69 @@ const AssistantMessage: FC = () => {
286
290
  return (
287
291
  <MessagePrimitive.Root className="mx-auto w-full max-w-(--thread-max-width) py-3">
288
292
  <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 />;
293
+ <MessagePrimitive.GroupedParts
294
+ groupBy={(part) => {
295
+ if (part.type === "reasoning")
296
+ return ["group-chainOfThought", "group-reasoning"];
297
+ if (part.type === "tool-call")
298
+ return ["group-chainOfThought", "group-tool"];
293
299
  return null;
294
300
  }}
295
- </MessagePrimitive.Parts>
296
- <ChainOfThought />
301
+ >
302
+ {({ part, children }) => {
303
+ switch (part.type) {
304
+ case "group-chainOfThought":
305
+ return <ChainOfThoughtGroup>{children}</ChainOfThoughtGroup>;
306
+ case "group-reasoning":
307
+ return <PartLayout label="Thinking">{children}</PartLayout>;
308
+ case "group-tool":
309
+ return (
310
+ <PartLayout label="Taking action">{children}</PartLayout>
311
+ );
312
+ case "text":
313
+ return <MarkdownText />;
314
+ case "reasoning":
315
+ return <Reasoning {...part} />;
316
+ case "tool-call":
317
+ return <ToolCall {...part} />;
318
+ default:
319
+ return null;
320
+ }
321
+ }}
322
+ </MessagePrimitive.GroupedParts>
297
323
  </div>
298
324
  </MessagePrimitive.Root>
299
325
  );
300
326
  };
301
327
 
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 = () => {
328
+ const ChainOfThoughtGroup: FC<PropsWithChildren> = ({ children }) => {
329
+ const [open, setOpen] = useState(false);
330
+
310
331
  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}>
332
+ <div className="my-2 rounded-lg border">
333
+ <button
334
+ type="button"
335
+ className="flex w-full cursor-pointer items-center gap-2 px-4 py-2 font-medium text-sm hover:bg-muted/50"
336
+ onClick={() => setOpen((o) => !o)}
337
+ >
338
+ {open ? (
317
339
  <ChevronDownIcon className="size-4 shrink-0" />
318
- </AuiIf>
340
+ ) : (
341
+ <ChevronRightIcon className="size-4 shrink-0" />
342
+ )}
319
343
  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>
344
+ </button>
345
+ {open && children}
346
+ </div>
335
347
  );
336
348
  };
337
349
 
338
- const PartLayout: FC<PropsWithChildren> = ({ children }) => {
339
- const partType = useAuiState((s) => s.part.type);
350
+ const PartLayout: FC<PropsWithChildren<{ label: string }>> = ({
351
+ children,
352
+ label,
353
+ }) => {
340
354
  const [open, setOpen] = useState(true);
341
355
 
342
- const label = partType === "reasoning" ? "Thinking" : "Taking action";
343
-
344
356
  return (
345
357
  <div className="border-t">
346
358
  <button
@@ -368,6 +380,23 @@ const Reasoning: FC<{ text: string }> = ({ text }) => {
368
380
  );
369
381
  };
370
382
 
383
+ const ToolCall: FC<{ toolName: string; status: { type: string } }> = ({
384
+ toolName,
385
+ status,
386
+ }) => {
387
+ return (
388
+ <div className="px-4 py-2 text-sm">
389
+ {status.type === "running"
390
+ ? `Running ${toolName}...`
391
+ : status.type === "complete"
392
+ ? `${toolName} completed`
393
+ : status.type === "incomplete"
394
+ ? `${toolName} failed`
395
+ : `${toolName} requires action`}
396
+ </div>
397
+ );
398
+ };
399
+
371
400
  const Composer: FC = () => {
372
401
  return (
373
402
  <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">
@@ -557,20 +586,20 @@ export default nextConfig;
557
586
  "start": "next start"
558
587
  },
559
588
  "dependencies": {
560
- "@ai-sdk/openai": "^3.0.53",
589
+ "@ai-sdk/openai": "^3.0.61",
561
590
  "@assistant-ui/react": "workspace:*",
562
591
  "@assistant-ui/react-ai-sdk": "workspace:*",
563
592
  "@assistant-ui/react-markdown": "workspace:*",
564
593
  "@assistant-ui/ui": "workspace:*",
565
- "ai": "^6.0.168",
594
+ "ai": "^6.0.175",
566
595
  "class-variance-authority": "^0.7.1",
567
596
  "clsx": "^2.1.1",
568
- "lucide-react": "^1.8.0",
597
+ "lucide-react": "^1.14.0",
569
598
  "next": "^16.2.4",
570
599
  "react": "^19.2.5",
571
600
  "react-dom": "^19.2.5",
572
601
  "tailwind-merge": "^3.5.0",
573
- "zod": "^4.3.6"
602
+ "zod": "^4.4.3"
574
603
  },
575
604
  "devDependencies": {
576
605
  "@assistant-ui/x-buildutils": "workspace:*",
@@ -578,7 +607,7 @@ export default nextConfig;
578
607
  "@types/node": "^25.6.0",
579
608
  "@types/react": "^19.2.14",
580
609
  "@types/react-dom": "^19.2.3",
581
- "postcss": "^8.5.10",
610
+ "postcss": "^8.5.14",
582
611
  "tailwindcss": "^4.2.4",
583
612
  "tw-animate-css": "^1.4.0",
584
613
  "typescript": "^6.0.3"
@@ -568,12 +568,12 @@ 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.61",
572
572
  "@assistant-ui/cloud-ai-sdk": "workspace:*",
573
- "ai": "^6.0.168",
573
+ "ai": "^6.0.175",
574
574
  "class-variance-authority": "^0.7.1",
575
575
  "clsx": "^2.1.1",
576
- "lucide-react": "^1.8.0",
576
+ "lucide-react": "^1.14.0",
577
577
  "next": "^16.2.4",
578
578
  "react": "^19.2.5",
579
579
  "react-dom": "^19.2.5",
@@ -585,7 +585,7 @@ export default nextConfig;
585
585
  "@types/node": "^25.6.0",
586
586
  "@types/react": "^19.2.14",
587
587
  "@types/react-dom": "^19.2.3",
588
- "postcss": "^8.5.10",
588
+ "postcss": "^8.5.14",
589
589
  "tailwindcss": "^4.2.4",
590
590
  "tw-animate-css": "^1.4.0",
591
591
  "typescript": "^6.0.3"
@@ -327,15 +327,15 @@ 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.61",
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.175",
336
336
  "class-variance-authority": "^0.7.1",
337
337
  "clsx": "^2.1.1",
338
- "lucide-react": "^1.8.0",
338
+ "lucide-react": "^1.14.0",
339
339
  "next": "^16.2.4",
340
340
  "react": "^19.2.5",
341
341
  "react-dom": "^19.2.5",
@@ -347,7 +347,7 @@ export default nextConfig;
347
347
  "@types/node": "^25.6.0",
348
348
  "@types/react": "^19.2.14",
349
349
  "@types/react-dom": "^19.2.3",
350
- "postcss": "^8.5.10",
350
+ "postcss": "^8.5.14",
351
351
  "tailwindcss": "^4.2.4",
352
352
  "tw-animate-css": "^1.4.0",
353
353
  "typescript": "^6.0.3"
@@ -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,21 +459,21 @@ 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.61",
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.175",
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",
471
+ "lucide-react": "^1.14.0",
427
472
  "next": "^16.2.4",
428
473
  "react": "^19.2.5",
429
474
  "react-dom": "^19.2.5",
430
475
  "tailwind-merge": "^3.5.0",
431
- "zod": "^4.3.6"
476
+ "zod": "^4.4.3"
432
477
  },
433
478
  "devDependencies": {
434
479
  "@assistant-ui/x-buildutils": "workspace:*",
@@ -436,7 +481,7 @@ export default nextConfig;
436
481
  "@types/node": "^25.6.0",
437
482
  "@types/react": "^19.2.14",
438
483
  "@types/react-dom": "^19.2.3",
439
- "postcss": "^8.5.10",
484
+ "postcss": "^8.5.14",
440
485
  "tailwindcss": "^4.2.4",
441
486
  "tw-animate-css": "^1.4.0",
442
487
  "typescript": "^6.0.3"
@@ -438,26 +438,26 @@ 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.61",
442
+ "@ai-sdk/react": "^3.0.177",
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",
447
+ "@elevenlabs/client": "^1.5.0",
448
448
  "@tailwindcss/postcss": "^4.2.4",
449
- "ai": "^6.0.168",
449
+ "ai": "^6.0.175",
450
450
  "class-variance-authority": "^0.7.1",
451
451
  "clsx": "^2.1.1",
452
- "lucide-react": "^1.8.0",
452
+ "lucide-react": "^1.14.0",
453
453
  "motion": "^12.38.0",
454
454
  "next": "^16.2.4",
455
- "postcss": "^8.5.10",
455
+ "postcss": "^8.5.14",
456
456
  "react": "^19.2.5",
457
457
  "react-dom": "^19.2.5",
458
458
  "tailwind-merge": "^3.5.0",
459
459
  "tailwindcss": "^4.2.4",
460
- "zod": "^4.3.6"
460
+ "zod": "^4.4.3"
461
461
  },
462
462
  "devDependencies": {
463
463
  "@assistant-ui/x-buildutils": "workspace:*",
@@ -562,26 +562,26 @@ export default nextConfig;
562
562
  "version": "0.0.0",
563
563
  "type": "module",
564
564
  "dependencies": {
565
- "@ai-sdk/openai": "^3.0.53",
566
- "@ai-sdk/react": "^3.0.170",
565
+ "@ai-sdk/openai": "^3.0.61",
566
+ "@ai-sdk/react": "^3.0.177",
567
567
  "@assistant-ui/react": "workspace:^",
568
568
  "@assistant-ui/react-ai-sdk": "workspace:*",
569
569
  "@assistant-ui/react-markdown": "workspace:^",
570
570
  "@assistant-ui/ui": "workspace:*",
571
- "@elevenlabs/client": "^1.2.1",
571
+ "@elevenlabs/client": "^1.5.0",
572
572
  "@tailwindcss/postcss": "^4.2.4",
573
- "ai": "^6.0.168",
573
+ "ai": "^6.0.175",
574
574
  "class-variance-authority": "^0.7.1",
575
575
  "clsx": "^2.1.1",
576
- "lucide-react": "^1.8.0",
576
+ "lucide-react": "^1.14.0",
577
577
  "motion": "^12.38.0",
578
578
  "next": "^16.2.4",
579
- "postcss": "^8.5.10",
579
+ "postcss": "^8.5.14",
580
580
  "react": "^19.2.5",
581
581
  "react-dom": "^19.2.5",
582
582
  "tailwind-merge": "^3.5.0",
583
583
  "tailwindcss": "^4.2.4",
584
- "zod": "^4.3.6"
584
+ "zod": "^4.4.3"
585
585
  },
586
586
  "devDependencies": {
587
587
  "@assistant-ui/x-buildutils": "workspace:*",
@@ -1944,34 +1944,34 @@ module.exports = config;
1944
1944
  "export:web": "expo export --platform web && node scripts/flatten-assets.mjs"
1945
1945
  },
1946
1946
  "dependencies": {
1947
- "@ai-sdk/openai": "^3.0.53",
1948
- "@ai-sdk/react": "^3.0.170",
1947
+ "@ai-sdk/openai": "^3.0.61",
1948
+ "@ai-sdk/react": "^3.0.177",
1949
1949
  "@assistant-ui/react-ai-sdk": "workspace:*",
1950
1950
  "@assistant-ui/react-native": "workspace:*",
1951
1951
  "@expo/vector-icons": "^15.1.1",
1952
1952
  "@react-navigation/drawer": "7.9.4",
1953
1953
  "@react-navigation/native": "7.1.33",
1954
- "ai": "^6.0.168",
1955
- "expo": "~55.0.17",
1956
- "expo-constants": "~55.0.15",
1957
- "expo-font": "~55.0.6",
1958
- "expo-image-picker": "~55.0.19",
1959
- "expo-linking": "~55.0.14",
1960
- "expo-router": "~55.0.13",
1961
- "expo-server": "~55.0.8",
1962
- "expo-splash-screen": "~55.0.19",
1963
- "expo-status-bar": "~55.0.5",
1964
- "expo-system-ui": "~55.0.16",
1954
+ "ai": "^6.0.175",
1955
+ "expo": "~55.0.23",
1956
+ "expo-constants": "~55.0.16",
1957
+ "expo-font": "~55.0.7",
1958
+ "expo-image-picker": "~55.0.20",
1959
+ "expo-linking": "~55.0.15",
1960
+ "expo-router": "~55.0.14",
1961
+ "expo-server": "~55.0.9",
1962
+ "expo-splash-screen": "~55.0.20",
1963
+ "expo-status-bar": "~55.0.6",
1964
+ "expo-system-ui": "~55.0.17",
1965
1965
  "react": "19.2.0",
1966
1966
  "react-dom": "19.2.0",
1967
- "react-native": "0.83.4",
1967
+ "react-native": "0.83.6",
1968
1968
  "react-native-gesture-handler": "2.30.1",
1969
1969
  "react-native-reanimated": "4.2.1",
1970
1970
  "react-native-safe-area-context": "5.6.2",
1971
1971
  "react-native-screens": "4.23.0",
1972
1972
  "react-native-web": "~0.21.2",
1973
- "react-native-worklets": "0.7.2",
1974
- "zod": "^4.3.6"
1973
+ "react-native-worklets": "0.7.4",
1974
+ "zod": "^4.4.3"
1975
1975
  },
1976
1976
  "devDependencies": {
1977
1977
  "@types/react": "~19.2.14",