@assistant-ui/mcp-docs-server 0.1.31 → 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 (247) 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 +11 -11
  4. package/.docs/organized/code-examples/with-ai-sdk-v6.md +13 -13
  5. package/.docs/organized/code-examples/with-artifacts.md +13 -13
  6. package/.docs/organized/code-examples/with-assistant-transport.md +10 -10
  7. package/.docs/organized/code-examples/with-browser-extension.md +345 -0
  8. package/.docs/organized/code-examples/with-chain-of-thought.md +54 -17
  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 +13 -13
  12. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +17 -16
  13. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +17 -16
  14. package/.docs/organized/code-examples/with-expo.md +24 -24
  15. package/.docs/organized/code-examples/with-external-store.md +10 -10
  16. package/.docs/organized/code-examples/with-ffmpeg.md +13 -13
  17. package/.docs/organized/code-examples/with-generative-ui.md +210 -13
  18. package/.docs/organized/code-examples/with-google-adk.md +10 -10
  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 +13 -13
  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 +18 -17
  25. package/.docs/organized/code-examples/with-mcp.md +748 -0
  26. package/.docs/organized/code-examples/with-opencode.md +11 -11
  27. package/.docs/organized/code-examples/with-parent-id-grouping.md +11 -11
  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 +15 -15
  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 +1 -0
  36. package/.docs/raw/docs/(docs)/index.mdx +2 -2
  37. package/.docs/raw/docs/(docs)/installation.mdx +1 -1
  38. package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +26 -24
  39. package/.docs/raw/docs/(reference)/api-reference/adapters/feedback.mdx +20 -0
  40. package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +20 -12
  41. package/.docs/raw/docs/(reference)/api-reference/adapters/model.mdx +44 -0
  42. package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +37 -16
  43. package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +12 -23
  44. package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +20 -0
  45. package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +37 -8
  46. package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +11 -9
  47. package/.docs/raw/docs/(reference)/api-reference/context-providers/scoped-providers.mdx +64 -0
  48. package/.docs/raw/docs/(reference)/api-reference/external-store/index.mdx +22 -0
  49. package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +52 -0
  50. package/.docs/raw/docs/(reference)/api-reference/external-store/runtime.mdx +36 -0
  51. package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +98 -0
  52. package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +18 -13
  53. package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +18 -57
  54. package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +640 -0
  55. package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +15 -28
  56. package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +64 -18
  57. package/.docs/raw/docs/(reference)/api-reference/hooks/utilities.mdx +434 -0
  58. package/.docs/raw/docs/(reference)/api-reference/integrations/cloud-ai-sdk.mdx +24 -0
  59. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +11 -12
  60. package/.docs/raw/docs/(reference)/api-reference/integrations/react-ai-sdk.mdx +79 -0
  61. package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +52 -0
  62. package/.docs/raw/docs/(reference)/api-reference/model-context/index.mdx +22 -0
  63. package/.docs/raw/docs/(reference)/api-reference/model-context/registry.mdx +20 -0
  64. package/.docs/raw/docs/(reference)/api-reference/overview.mdx +110 -131
  65. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar-more.mdx +78 -221
  66. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +127 -242
  67. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +39 -20
  68. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-modal.mdx +66 -87
  69. package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +50 -58
  70. package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +80 -48
  71. package/.docs/raw/docs/(reference)/api-reference/primitives/chain-of-thought.mdx +67 -0
  72. package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +323 -461
  73. package/.docs/raw/docs/(reference)/api-reference/primitives/error.mdx +36 -43
  74. package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +29 -24
  75. package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +63 -245
  76. package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +175 -591
  77. package/.docs/raw/docs/(reference)/api-reference/primitives/queue-item.mdx +65 -0
  78. package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +35 -22
  79. package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +57 -140
  80. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item-more.mdx +70 -161
  81. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item.mdx +84 -108
  82. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +77 -96
  83. package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +173 -349
  84. package/.docs/raw/docs/(reference)/api-reference/runtimes/assistant-runtime.mdx +9 -21
  85. package/.docs/raw/docs/(reference)/api-reference/runtimes/attachment-runtime.mdx +10 -21
  86. package/.docs/raw/docs/(reference)/api-reference/runtimes/composer-runtime.mdx +15 -70
  87. package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +18 -13
  88. package/.docs/raw/docs/(reference)/api-reference/runtimes/message-part-runtime.mdx +25 -28
  89. package/.docs/raw/docs/(reference)/api-reference/runtimes/message-runtime.mdx +11 -63
  90. package/.docs/raw/docs/(reference)/api-reference/runtimes/queue-state.mdx +20 -0
  91. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-item-runtime.mdx +11 -48
  92. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +10 -47
  93. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-runtime.mdx +18 -30
  94. package/.docs/raw/docs/(reference)/api-reference/tools/component-tools.mdx +68 -0
  95. package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +39 -0
  96. package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +79 -0
  97. package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +42 -0
  98. package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +92 -0
  99. package/.docs/raw/docs/(reference)/api-reference/transport/assistant-transport.mdx +48 -0
  100. package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +62 -0
  101. package/.docs/raw/docs/(reference)/api-reference/transport/index.mdx +22 -0
  102. package/.docs/raw/docs/(reference)/api-reference/utilities/index.mdx +19 -0
  103. package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +131 -0
  104. package/.docs/raw/docs/(reference)/api-reference/voice/index.mdx +22 -0
  105. package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +54 -0
  106. package/.docs/raw/docs/(reference)/api-reference/voice/speech-dictation.mdx +36 -0
  107. package/.docs/raw/docs/cloud/ai-sdk.mdx +1 -1
  108. package/.docs/raw/docs/cloud/index.mdx +2 -2
  109. package/.docs/raw/docs/guides/attachments.mdx +4 -4
  110. package/.docs/raw/docs/guides/branching.mdx +1 -1
  111. package/.docs/raw/docs/guides/chain-of-thought.mdx +5 -5
  112. package/.docs/raw/docs/guides/context-api.mdx +4 -4
  113. package/.docs/raw/docs/guides/dictation.mdx +2 -2
  114. package/.docs/raw/docs/guides/editing.mdx +1 -1
  115. package/.docs/raw/docs/guides/generative-ui.mdx +142 -0
  116. package/.docs/raw/docs/guides/image-generation.mdx +74 -0
  117. package/.docs/raw/docs/guides/index.mdx +2 -2
  118. package/.docs/raw/docs/guides/interactables.mdx +2 -2
  119. package/.docs/raw/docs/guides/latex.mdx +2 -2
  120. package/.docs/raw/docs/guides/mcp-apps.mdx +231 -0
  121. package/.docs/raw/docs/guides/mentions.mdx +2 -2
  122. package/.docs/raw/docs/guides/message-timing.mdx +38 -5
  123. package/.docs/raw/docs/guides/multi-agent.mdx +2 -2
  124. package/.docs/raw/docs/guides/quoting.mdx +1 -1
  125. package/.docs/raw/docs/guides/resumable-stream-deployment.mdx +212 -0
  126. package/.docs/raw/docs/guides/resumable-stream-stores.mdx +152 -0
  127. package/.docs/raw/docs/guides/resumable-streams.mdx +210 -0
  128. package/.docs/raw/docs/guides/slash-commands.mdx +1 -1
  129. package/.docs/raw/docs/guides/speech.mdx +2 -2
  130. package/.docs/raw/docs/guides/suggestions.mdx +88 -4
  131. package/.docs/raw/docs/guides/tool-ui.mdx +2 -2
  132. package/.docs/raw/docs/guides/tools.mdx +66 -5
  133. package/.docs/raw/docs/guides/voice.mdx +2 -2
  134. package/.docs/raw/docs/ink/adapters.mdx +37 -1
  135. package/.docs/raw/docs/ink/custom-backend.mdx +59 -8
  136. package/.docs/raw/docs/ink/index.mdx +10 -11
  137. package/.docs/raw/docs/ink/primitives.mdx +349 -8
  138. package/.docs/raw/docs/integrations/auth/better-auth.mdx +1 -1
  139. package/.docs/raw/docs/integrations/auth/clerk.mdx +1 -1
  140. package/.docs/raw/docs/integrations/auth/next-auth.mdx +1 -1
  141. package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +2 -2
  142. package/.docs/raw/docs/integrations/frameworks/cloudflare-agents/overview.mdx +282 -0
  143. package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +2 -2
  144. package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +1 -1
  145. package/.docs/raw/docs/integrations/gateways/index.mdx +9 -4
  146. package/.docs/raw/docs/integrations/index.mdx +15 -3
  147. package/.docs/raw/docs/integrations/observability/langfuse.mdx +8 -1
  148. package/.docs/raw/docs/integrations/observability/langsmith.mdx +8 -4
  149. package/.docs/raw/docs/integrations/tools/react-mcp.mdx +337 -0
  150. package/.docs/raw/docs/primitives/composer.mdx +53 -0
  151. package/.docs/raw/docs/primitives/index.mdx +2 -2
  152. package/.docs/raw/docs/primitives/suggestion.mdx +9 -0
  153. package/.docs/raw/docs/react-native/hooks.mdx +2 -2
  154. package/.docs/raw/docs/react-native/index.mdx +4 -4
  155. package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +4 -4
  156. package/.docs/raw/docs/runtimes/a2a/overview.mdx +2 -2
  157. package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +2 -2
  158. package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +32 -1
  159. package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +2 -2
  160. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +7 -2
  161. package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +1 -1
  162. package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +7 -0
  163. package/.docs/raw/docs/runtimes/custom/data-stream.mdx +27 -2
  164. package/.docs/raw/docs/runtimes/custom/external-store.mdx +9 -1
  165. package/.docs/raw/docs/runtimes/custom/overview.mdx +2 -2
  166. package/.docs/raw/docs/runtimes/google-adk/overview.mdx +2 -2
  167. package/.docs/raw/docs/runtimes/langchain.mdx +2 -2
  168. package/.docs/raw/docs/runtimes/langgraph/overview.mdx +2 -2
  169. package/.docs/raw/docs/runtimes/opencode/overview.mdx +2 -2
  170. package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +1 -1
  171. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +12 -5
  172. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +11 -1
  173. package/.docs/raw/docs/ui/mcp-config.mdx +102 -0
  174. package/.docs/raw/docs/ui/model-selector.mdx +8 -8
  175. package/.docs/raw/docs/ui/sources.mdx +17 -0
  176. package/.docs/raw/docs/ui/streamdown.mdx +34 -2
  177. package/.docs/raw/docs/ui/thread-list.mdx +2 -2
  178. package/.docs/raw/docs/ui/thread.mdx +2 -2
  179. package/README.md +14 -72
  180. package/dist/constants.d.ts +12 -9
  181. package/dist/constants.d.ts.map +1 -1
  182. package/dist/constants.js +13 -9
  183. package/dist/constants.js.map +1 -1
  184. package/dist/index.d.ts +7 -3
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +25 -24
  187. package/dist/index.js.map +1 -1
  188. package/dist/prepare-docs/code-examples.d.ts +4 -1
  189. package/dist/prepare-docs/code-examples.d.ts.map +1 -1
  190. package/dist/prepare-docs/code-examples.js +109 -121
  191. package/dist/prepare-docs/code-examples.js.map +1 -1
  192. package/dist/prepare-docs/copy-raw.d.ts +4 -1
  193. package/dist/prepare-docs/copy-raw.d.ts.map +1 -1
  194. package/dist/prepare-docs/copy-raw.js +45 -42
  195. package/dist/prepare-docs/copy-raw.js.map +1 -1
  196. package/dist/prepare-docs/prepare.d.ts +1 -2
  197. package/dist/prepare-docs/prepare.js +17 -17
  198. package/dist/prepare-docs/prepare.js.map +1 -1
  199. package/dist/stdio.d.ts +1 -3
  200. package/dist/stdio.js +6 -3
  201. package/dist/stdio.js.map +1 -1
  202. package/dist/tools/docs.d.ts +20 -15
  203. package/dist/tools/docs.d.ts.map +1 -1
  204. package/dist/tools/docs.js +140 -161
  205. package/dist/tools/docs.js.map +1 -1
  206. package/dist/tools/examples.d.ts +20 -15
  207. package/dist/tools/examples.d.ts.map +1 -1
  208. package/dist/tools/examples.js +74 -86
  209. package/dist/tools/examples.js.map +1 -1
  210. package/dist/tools/tests/test-setup.d.ts +5 -2
  211. package/dist/tools/tests/test-setup.d.ts.map +1 -1
  212. package/dist/tools/tests/test-setup.js +21 -28
  213. package/dist/tools/tests/test-setup.js.map +1 -1
  214. package/dist/utils/logger.d.ts +8 -5
  215. package/dist/utils/logger.d.ts.map +1 -1
  216. package/dist/utils/logger.js +17 -17
  217. package/dist/utils/logger.js.map +1 -1
  218. package/dist/utils/mcp-format.d.ts +8 -5
  219. package/dist/utils/mcp-format.d.ts.map +1 -1
  220. package/dist/utils/mcp-format.js +9 -9
  221. package/dist/utils/mcp-format.js.map +1 -1
  222. package/dist/utils/mdx.d.ts +8 -6
  223. package/dist/utils/mdx.d.ts.map +1 -1
  224. package/dist/utils/mdx.js +22 -22
  225. package/dist/utils/mdx.js.map +1 -1
  226. package/dist/utils/paths.d.ts +9 -6
  227. package/dist/utils/paths.d.ts.map +1 -1
  228. package/dist/utils/paths.js +66 -76
  229. package/dist/utils/paths.js.map +1 -1
  230. package/dist/utils/security.d.ts +4 -1
  231. package/dist/utils/security.d.ts.map +1 -1
  232. package/dist/utils/security.js +19 -40
  233. package/dist/utils/security.js.map +1 -1
  234. package/package.json +5 -5
  235. package/.docs/raw/docs/(reference)/api-reference/adapters/feedback-speech.mdx +0 -41
  236. package/.docs/raw/docs/(reference)/api-reference/context-providers/text-message-part-provider.mdx +0 -40
  237. package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +0 -260
  238. package/.docs/raw/docs/(reference)/api-reference/integrations/react-hook-form.mdx +0 -103
  239. package/.docs/raw/docs/(reference)/api-reference/integrations/vercel-ai-sdk.mdx +0 -254
  240. package/dist/prepare-docs/prepare.d.ts.map +0 -1
  241. package/dist/stdio.d.ts.map +0 -1
  242. /package/.docs/raw/docs/{(reference)/migrations → migrations}/deprecation-policy.mdx +0 -0
  243. /package/.docs/raw/docs/{(reference) → migrations}/react-compatibility.mdx +0 -0
  244. /package/.docs/raw/docs/{(reference)/migrations → migrations}/react-langgraph-v0-7.mdx +0 -0
  245. /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-11.mdx +0 -0
  246. /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-12.mdx +0 -0
  247. /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-14.mdx +0 -0
@@ -221,10 +221,11 @@ import { MarkdownText } from "@/components/assistant-ui/markdown-text";
221
221
  import { TooltipIconButton } from "@/components/assistant-ui/tooltip-icon-button";
222
222
  import { Button } from "@/components/ui/button";
223
223
  import {
224
- AuiIf,
225
224
  ComposerPrimitive,
226
225
  MessagePrimitive,
226
+ SuggestionPrimitive,
227
227
  ThreadPrimitive,
228
+ useThread,
228
229
  } from "@assistant-ui/react";
229
230
  import {
230
231
  ArrowDownIcon,
@@ -241,6 +242,10 @@ export const MyThread: FC = () => {
241
242
  style={{ ["--thread-max-width" as string]: "44rem" }}
242
243
  >
243
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
+
244
249
  <ThreadPrimitive.Messages>
245
250
  {({ message }) => {
246
251
  if (message.role === "user") return <UserMessage />;
@@ -269,6 +274,36 @@ const Text: FC<{ text: string }> = ({ text }) => {
269
274
  return <p>{text}</p>;
270
275
  };
271
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
+
272
307
  const UserMessage: FC = () => {
273
308
  return (
274
309
  <MessagePrimitive.Root className="mx-auto w-full max-w-(--thread-max-width) py-3">
@@ -398,6 +433,8 @@ const ToolCall: FC<{ toolName: string; status: { type: string } }> = ({
398
433
  };
399
434
 
400
435
  const Composer: FC = () => {
436
+ const isRunning = useThread((state) => state.isRunning);
437
+
401
438
  return (
402
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">
403
440
  <ComposerPrimitive.Input
@@ -407,7 +444,7 @@ const Composer: FC = () => {
407
444
  autoFocus
408
445
  />
409
446
  <div className="relative mx-2 mb-2 flex items-center justify-end">
410
- <AuiIf condition={(s) => !s.thread.isRunning}>
447
+ {!isRunning ? (
411
448
  <ComposerPrimitive.Send asChild>
412
449
  <TooltipIconButton
413
450
  tooltip="Send"
@@ -419,8 +456,7 @@ const Composer: FC = () => {
419
456
  <ArrowUpIcon className="size-4" />
420
457
  </TooltipIconButton>
421
458
  </ComposerPrimitive.Send>
422
- </AuiIf>
423
- <AuiIf condition={(s) => s.thread.isRunning}>
459
+ ) : (
424
460
  <ComposerPrimitive.Cancel asChild>
425
461
  <Button
426
462
  type="button"
@@ -431,7 +467,7 @@ const Composer: FC = () => {
431
467
  <SquareIcon className="size-3 fill-current" />
432
468
  </Button>
433
469
  </ComposerPrimitive.Cancel>
434
- </AuiIf>
470
+ )}
435
471
  </div>
436
472
  </ComposerPrimitive.Root>
437
473
  );
@@ -586,29 +622,29 @@ export default nextConfig;
586
622
  "start": "next start"
587
623
  },
588
624
  "dependencies": {
589
- "@ai-sdk/openai": "^3.0.61",
625
+ "@ai-sdk/openai": "^3.0.64",
590
626
  "@assistant-ui/react": "workspace:*",
591
627
  "@assistant-ui/react-ai-sdk": "workspace:*",
592
628
  "@assistant-ui/react-markdown": "workspace:*",
593
629
  "@assistant-ui/ui": "workspace:*",
594
- "ai": "^6.0.175",
630
+ "ai": "^6.0.188",
595
631
  "class-variance-authority": "^0.7.1",
596
632
  "clsx": "^2.1.1",
597
- "lucide-react": "^1.14.0",
598
- "next": "^16.2.4",
599
- "react": "^19.2.5",
600
- "react-dom": "^19.2.5",
601
- "tailwind-merge": "^3.5.0",
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",
602
638
  "zod": "^4.4.3"
603
639
  },
604
640
  "devDependencies": {
605
641
  "@assistant-ui/x-buildutils": "workspace:*",
606
- "@tailwindcss/postcss": "^4.2.4",
607
- "@types/node": "^25.6.0",
608
- "@types/react": "^19.2.14",
642
+ "@tailwindcss/postcss": "^4.3.0",
643
+ "@types/node": "^25.9.1",
644
+ "@types/react": "^19.2.15",
609
645
  "@types/react-dom": "^19.2.3",
610
- "postcss": "^8.5.14",
611
- "tailwindcss": "^4.2.4",
646
+ "postcss": "^8.5.15",
647
+ "tailwindcss": "^4.3.0",
612
648
  "tw-animate-css": "^1.4.0",
613
649
  "typescript": "^6.0.3"
614
650
  }
@@ -631,6 +667,7 @@ export default nextConfig;
631
667
  "@/lib/utils": ["../../packages/ui/src/lib/utils"],
632
668
  "@assistant-ui/ui/*": ["../../packages/ui/src/*"],
633
669
  "@assistant-ui/*": ["../../packages/*/src"],
670
+ "@assistant-ui/core/*": ["../../packages/core/src/*"],
634
671
  "@assistant-ui/react/*": ["../../packages/react/src/*"],
635
672
  "@assistant-ui/tap/*": ["../../packages/tap/src/*"],
636
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.61",
571
+ "@ai-sdk/openai": "^3.0.64",
572
572
  "@assistant-ui/cloud-ai-sdk": "workspace:*",
573
- "ai": "^6.0.175",
573
+ "ai": "^6.0.188",
574
574
  "class-variance-authority": "^0.7.1",
575
575
  "clsx": "^2.1.1",
576
- "lucide-react": "^1.14.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.14",
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.61",
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.175",
335
+ "ai": "^6.0.188",
336
336
  "class-variance-authority": "^0.7.1",
337
337
  "clsx": "^2.1.1",
338
- "lucide-react": "^1.14.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.14",
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: {
@@ -459,30 +459,30 @@ export default nextConfig;
459
459
  "start": "next start"
460
460
  },
461
461
  "dependencies": {
462
- "@ai-sdk/openai": "^3.0.61",
462
+ "@ai-sdk/openai": "^3.0.64",
463
463
  "@assistant-ui/react": "workspace:*",
464
464
  "@assistant-ui/react-ai-sdk": "workspace:*",
465
465
  "@assistant-ui/react-markdown": "workspace:*",
466
466
  "@assistant-ui/ui": "workspace:*",
467
- "ai": "^6.0.175",
467
+ "ai": "^6.0.188",
468
468
  "assistant-stream": "workspace:*",
469
469
  "class-variance-authority": "^0.7.1",
470
470
  "clsx": "^2.1.1",
471
- "lucide-react": "^1.14.0",
472
- "next": "^16.2.4",
473
- "react": "^19.2.5",
474
- "react-dom": "^19.2.5",
475
- "tailwind-merge": "^3.5.0",
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
476
  "zod": "^4.4.3"
477
477
  },
478
478
  "devDependencies": {
479
479
  "@assistant-ui/x-buildutils": "workspace:*",
480
- "@tailwindcss/postcss": "^4.2.4",
481
- "@types/node": "^25.6.0",
482
- "@types/react": "^19.2.14",
480
+ "@tailwindcss/postcss": "^4.3.0",
481
+ "@types/node": "^25.9.1",
482
+ "@types/react": "^19.2.15",
483
483
  "@types/react-dom": "^19.2.3",
484
- "postcss": "^8.5.14",
485
- "tailwindcss": "^4.2.4",
484
+ "postcss": "^8.5.15",
485
+ "tailwindcss": "^4.3.0",
486
486
  "tw-animate-css": "^1.4.0",
487
487
  "typescript": "^6.0.3"
488
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.61",
442
- "@ai-sdk/react": "^3.0.177",
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.5.0",
448
- "@tailwindcss/postcss": "^4.2.4",
449
- "ai": "^6.0.175",
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.14.0",
453
- "motion": "^12.38.0",
454
- "next": "^16.2.4",
455
- "postcss": "^8.5.14",
456
- "react": "^19.2.5",
457
- "react-dom": "^19.2.5",
458
- "tailwind-merge": "^3.5.0",
459
- "tailwindcss": "^4.2.4",
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
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"],
@@ -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: {
@@ -562,31 +562,31 @@ export default nextConfig;
562
562
  "version": "0.0.0",
563
563
  "type": "module",
564
564
  "dependencies": {
565
- "@ai-sdk/openai": "^3.0.61",
566
- "@ai-sdk/react": "^3.0.177",
565
+ "@ai-sdk/openai": "^3.0.64",
566
+ "@ai-sdk/react": "^3.0.190",
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.5.0",
572
- "@tailwindcss/postcss": "^4.2.4",
573
- "ai": "^6.0.175",
571
+ "@elevenlabs/client": "^1.8.0",
572
+ "@tailwindcss/postcss": "^4.3.0",
573
+ "ai": "^6.0.188",
574
574
  "class-variance-authority": "^0.7.1",
575
575
  "clsx": "^2.1.1",
576
- "lucide-react": "^1.14.0",
577
- "motion": "^12.38.0",
578
- "next": "^16.2.4",
579
- "postcss": "^8.5.14",
580
- "react": "^19.2.5",
581
- "react-dom": "^19.2.5",
582
- "tailwind-merge": "^3.5.0",
583
- "tailwindcss": "^4.2.4",
576
+ "lucide-react": "^1.16.0",
577
+ "motion": "^12.39.0",
578
+ "next": "^16.2.6",
579
+ "postcss": "^8.5.15",
580
+ "react": "^19.2.6",
581
+ "react-dom": "^19.2.6",
582
+ "tailwind-merge": "^3.6.0",
583
+ "tailwindcss": "^4.3.0",
584
584
  "zod": "^4.4.3"
585
585
  },
586
586
  "devDependencies": {
587
587
  "@assistant-ui/x-buildutils": "workspace:*",
588
- "@types/node": "^25.6.0",
589
- "@types/react": "^19.2.14",
588
+ "@types/node": "^25.9.1",
589
+ "@types/react": "^19.2.15",
590
590
  "@types/react-dom": "^19.2.3",
591
591
  "tw-animate-css": "^1.4.0",
592
592
  "typescript": "^6.0.3"
@@ -671,6 +671,7 @@ npm run dev
671
671
  "@/lib/utils": ["../../packages/ui/src/lib/utils"],
672
672
  "@assistant-ui/ui/*": ["../../packages/ui/src/*"],
673
673
  "@assistant-ui/*": ["../../packages/*/src"],
674
+ "@assistant-ui/core/*": ["../../packages/core/src/*"],
674
675
  "@assistant-ui/react/*": ["../../packages/react/src/*"],
675
676
  "@assistant-ui/tap/*": ["../../packages/tap/src/*"],
676
677
  "assistant-stream": ["../../packages/assistant-stream/src"],
@@ -178,7 +178,7 @@ export async function POST(req: Request) {
178
178
  const body = await req.json();
179
179
  const { messages, tools } = body;
180
180
 
181
- const model = openai("gpt-4o-mini");
181
+ const model = openai("gpt-5.4-nano");
182
182
 
183
183
  const prunedMessages = pruneMessages({
184
184
  messages: await convertToModelMessages(messages),
@@ -1944,38 +1944,38 @@ 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.61",
1948
- "@ai-sdk/react": "^3.0.177",
1947
+ "@ai-sdk/openai": "^3.0.64",
1948
+ "@ai-sdk/react": "^3.0.190",
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.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
- "react": "19.2.0",
1966
- "react-dom": "19.2.0",
1967
- "react-native": "0.83.6",
1968
- "react-native-gesture-handler": "2.30.1",
1969
- "react-native-reanimated": "4.2.1",
1970
- "react-native-safe-area-context": "5.6.2",
1971
- "react-native-screens": "4.23.0",
1954
+ "ai": "^6.0.188",
1955
+ "expo": "~56.0.4",
1956
+ "expo-constants": "~56.0.15",
1957
+ "expo-font": "~56.0.5",
1958
+ "expo-image-picker": "~56.0.13",
1959
+ "expo-linking": "~56.0.11",
1960
+ "expo-router": "~56.2.6",
1961
+ "expo-server": "~56.0.4",
1962
+ "expo-splash-screen": "~56.0.10",
1963
+ "expo-status-bar": "~56.0.4",
1964
+ "expo-system-ui": "~56.0.5",
1965
+ "react": "19.2.3",
1966
+ "react-dom": "19.2.3",
1967
+ "react-native": "0.85.3",
1968
+ "react-native-gesture-handler": "~2.31.2",
1969
+ "react-native-reanimated": "4.3.1",
1970
+ "react-native-safe-area-context": "~5.7.0",
1971
+ "react-native-screens": "4.25.2",
1972
1972
  "react-native-web": "~0.21.2",
1973
- "react-native-worklets": "0.7.4",
1973
+ "react-native-worklets": "0.8.3",
1974
1974
  "zod": "^4.4.3"
1975
1975
  },
1976
1976
  "devDependencies": {
1977
- "@types/react": "~19.2.14",
1978
- "typescript": "5.9.3"
1977
+ "@types/react": "~19.2.15",
1978
+ "typescript": "~6.0.3"
1979
1979
  },
1980
1980
  "private": true
1981
1981
  }
@@ -319,20 +319,20 @@ export default nextConfig;
319
319
  "@assistant-ui/ui": "workspace:*",
320
320
  "class-variance-authority": "^0.7.1",
321
321
  "clsx": "^2.1.1",
322
- "lucide-react": "^1.14.0",
323
- "next": "^16.2.4",
324
- "react": "^19.2.5",
325
- "react-dom": "^19.2.5",
326
- "tailwind-merge": "^3.5.0"
322
+ "lucide-react": "^1.16.0",
323
+ "next": "^16.2.6",
324
+ "react": "^19.2.6",
325
+ "react-dom": "^19.2.6",
326
+ "tailwind-merge": "^3.6.0"
327
327
  },
328
328
  "devDependencies": {
329
329
  "@assistant-ui/x-buildutils": "workspace:*",
330
- "@tailwindcss/postcss": "^4.2.4",
331
- "@types/node": "^25.6.0",
332
- "@types/react": "^19.2.14",
330
+ "@tailwindcss/postcss": "^4.3.0",
331
+ "@types/node": "^25.9.1",
332
+ "@types/react": "^19.2.15",
333
333
  "@types/react-dom": "^19.2.3",
334
- "postcss": "^8.5.14",
335
- "tailwindcss": "^4.2.4",
334
+ "postcss": "^8.5.15",
335
+ "tailwindcss": "^4.3.0",
336
336
  "tw-animate-css": "^1.4.0",
337
337
  "typescript": "^6.0.3"
338
338
  }
@@ -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
  system,
19
19
  tools: {
@@ -682,31 +682,31 @@ export default nextConfig;
682
682
  "start": "next start"
683
683
  },
684
684
  "dependencies": {
685
- "@ai-sdk/openai": "^3.0.61",
685
+ "@ai-sdk/openai": "^3.0.64",
686
686
  "@assistant-ui/react": "workspace:*",
687
687
  "@assistant-ui/react-ai-sdk": "workspace:*",
688
688
  "@assistant-ui/react-markdown": "workspace:*",
689
689
  "@assistant-ui/ui": "workspace:*",
690
690
  "@ffmpeg/ffmpeg": "^0.12.15",
691
691
  "@ffmpeg/util": "^0.12.2",
692
- "ai": "^6.0.175",
692
+ "ai": "^6.0.188",
693
693
  "class-variance-authority": "^0.7.1",
694
694
  "clsx": "^2.1.1",
695
- "lucide-react": "^1.14.0",
696
- "next": "^16.2.4",
697
- "react": "^19.2.5",
698
- "react-dom": "^19.2.5",
699
- "tailwind-merge": "^3.5.0",
695
+ "lucide-react": "^1.16.0",
696
+ "next": "^16.2.6",
697
+ "react": "^19.2.6",
698
+ "react-dom": "^19.2.6",
699
+ "tailwind-merge": "^3.6.0",
700
700
  "zod": "^4.4.3"
701
701
  },
702
702
  "devDependencies": {
703
703
  "@assistant-ui/x-buildutils": "workspace:*",
704
- "@tailwindcss/postcss": "^4.2.4",
705
- "@types/node": "^25.6.0",
706
- "@types/react": "^19.2.14",
704
+ "@tailwindcss/postcss": "^4.3.0",
705
+ "@types/node": "^25.9.1",
706
+ "@types/react": "^19.2.15",
707
707
  "@types/react-dom": "^19.2.3",
708
- "postcss": "^8.5.14",
709
- "tailwindcss": "^4.2.4",
708
+ "postcss": "^8.5.15",
709
+ "tailwindcss": "^4.3.0",
710
710
  "tw-animate-css": "^1.4.0",
711
711
  "typescript": "^6.0.3"
712
712
  }