@assistant-ui/mcp-docs-server 0.2.1 → 0.2.3

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 (187) hide show
  1. package/.docs/organized/code-examples/waterfall.md +3 -3
  2. package/.docs/organized/code-examples/with-a2a.md +5 -4
  3. package/.docs/organized/code-examples/with-ag-ui.md +7 -6
  4. package/.docs/organized/code-examples/with-ai-sdk-v7.md +14 -13
  5. package/.docs/organized/code-examples/with-artifacts.md +12 -11
  6. package/.docs/organized/code-examples/with-assistant-transport.md +6 -5
  7. package/.docs/organized/code-examples/with-browser-extension.md +6 -6
  8. package/.docs/organized/code-examples/with-chain-of-thought.md +16 -14
  9. package/.docs/organized/code-examples/with-cloud-standalone.md +7 -7
  10. package/.docs/organized/code-examples/with-cloud.md +11 -10
  11. package/.docs/organized/code-examples/with-custom-thread-list.md +11 -10
  12. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +14 -13
  13. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +15 -14
  14. package/.docs/organized/code-examples/with-eve.md +6 -5
  15. package/.docs/organized/code-examples/with-expo.md +213 -36
  16. package/.docs/organized/code-examples/with-external-store.md +6 -5
  17. package/.docs/organized/code-examples/with-ffmpeg.md +11 -10
  18. package/.docs/organized/code-examples/with-generative-ui.md +263 -29
  19. package/.docs/organized/code-examples/with-google-adk.md +5 -4
  20. package/.docs/organized/code-examples/with-heat-graph.md +3 -3
  21. package/.docs/organized/code-examples/with-image-generation.md +8 -7
  22. package/.docs/organized/code-examples/with-interactables.md +11 -10
  23. package/.docs/organized/code-examples/with-langchain.md +10 -9
  24. package/.docs/organized/code-examples/with-langgraph.md +7 -6
  25. package/.docs/organized/code-examples/with-livekit.md +15 -14
  26. package/.docs/organized/code-examples/with-mcp.md +14 -12
  27. package/.docs/organized/code-examples/with-nuxt.md +511 -575
  28. package/.docs/organized/code-examples/with-opencode.md +4 -4
  29. package/.docs/organized/code-examples/with-openui.md +450 -0
  30. package/.docs/organized/code-examples/with-pi.md +6 -5
  31. package/.docs/organized/code-examples/with-react-hook-form.md +16 -13
  32. package/.docs/organized/code-examples/with-react-ink-web.md +65 -15
  33. package/.docs/organized/code-examples/with-react-ink.md +5 -4
  34. package/.docs/organized/code-examples/with-react-router.md +8 -7
  35. package/.docs/organized/code-examples/with-resumable-stream.md +13 -12
  36. package/.docs/organized/code-examples/with-store.md +3 -3
  37. package/.docs/organized/code-examples/with-svelte.md +415 -0
  38. package/.docs/organized/code-examples/with-sveltekit.md +1061 -0
  39. package/.docs/organized/code-examples/with-tanstack.md +10 -9
  40. package/.docs/organized/code-examples/with-tap-runtime.md +5 -4
  41. package/.docs/organized/code-examples/with-virtualized-thread.md +6 -5
  42. package/.docs/organized/code-examples/with-vue.md +2 -2
  43. package/.docs/raw/docs/{(docs) → (getting-started)}/cli.mdx +6 -1
  44. package/.docs/raw/docs/{(docs) → (getting-started)}/devtools.mdx +1 -1
  45. package/.docs/raw/docs/{(docs) → (getting-started)}/index.mdx +4 -2
  46. package/.docs/raw/docs/{(docs) → (getting-started)}/installation.mdx +26 -26
  47. package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +6 -0
  48. package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +1 -1
  49. package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +6 -1
  50. package/.docs/raw/docs/(reference)/api-reference/generative-ui/slack.mdx +5 -1
  51. package/.docs/raw/docs/(reference)/api-reference/generative-ui/teams.mdx +9 -2
  52. package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +2 -2
  53. package/.docs/raw/docs/(reference)/api-reference/integrations/{react-ai-sdk.mdx → ai-sdk.mdx} +43 -18
  54. package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +61 -2
  55. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +3 -3
  56. package/.docs/raw/docs/(reference)/api-reference/overview.mdx +2 -2
  57. package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +20 -2
  58. package/.docs/raw/docs/(reference)/api-reference/tools/interactables.mdx +1 -1
  59. package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +1 -1
  60. package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +1 -1
  61. package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +32 -1
  62. package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +1 -1
  63. package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +10 -10
  64. package/.docs/raw/docs/cloud/ai-sdk.mdx +4 -2
  65. package/.docs/raw/docs/cloud/index.mdx +1 -1
  66. package/.docs/raw/docs/copilots/assistant-frame.mdx +19 -8
  67. package/.docs/raw/docs/guides/attachments.mdx +4 -4
  68. package/.docs/raw/docs/guides/branching.mdx +1 -1
  69. package/.docs/raw/docs/guides/chatgpt-subscription.mdx +1 -1
  70. package/.docs/raw/docs/guides/context-api.mdx +15 -17
  71. package/.docs/raw/docs/guides/dictation.mdx +2 -2
  72. package/.docs/raw/docs/guides/electron.mdx +1 -1
  73. package/.docs/raw/docs/guides/latex.mdx +1 -1
  74. package/.docs/raw/docs/guides/mentions.mdx +2 -0
  75. package/.docs/raw/docs/guides/message-timing.mdx +11 -5
  76. package/.docs/raw/docs/guides/quoting.mdx +1 -1
  77. package/.docs/raw/docs/guides/resumable-streams.mdx +3 -3
  78. package/.docs/raw/docs/guides/speech.mdx +1 -1
  79. package/.docs/raw/docs/guides/suggestions.mdx +8 -5
  80. package/.docs/raw/docs/guides/voice.mdx +1 -1
  81. package/.docs/raw/docs/ink/hooks.mdx +1 -1
  82. package/.docs/raw/docs/ink/index.mdx +3 -2
  83. package/.docs/raw/docs/ink/migration.mdx +1 -1
  84. package/.docs/raw/docs/ink/primitives.mdx +1 -1
  85. package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +3 -3
  86. package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +3 -3
  87. package/.docs/raw/docs/integrations/frameworks/{cloudflare-agents/overview.mdx → cloudflare-agents.mdx} +4 -3
  88. package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +1 -1
  89. package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +1 -1
  90. package/.docs/raw/docs/integrations/index.mdx +2 -2
  91. package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +149 -131
  92. package/.docs/raw/docs/migrations/toolkit-tools.mdx +2 -2
  93. package/.docs/raw/docs/migrations/v0-15.mdx +34 -0
  94. package/.docs/raw/docs/primitives/action-bar.mdx +1 -1
  95. package/.docs/raw/docs/primitives/assistant-modal.mdx +1 -1
  96. package/.docs/raw/docs/primitives/attachment.mdx +1 -1
  97. package/.docs/raw/docs/primitives/branch-picker.mdx +1 -1
  98. package/.docs/raw/docs/primitives/chain-of-thought.mdx +3 -3
  99. package/.docs/raw/docs/primitives/composer.mdx +1 -1
  100. package/.docs/raw/docs/primitives/error.mdx +1 -1
  101. package/.docs/raw/docs/primitives/message.mdx +1 -1
  102. package/.docs/raw/docs/primitives/selection-toolbar.mdx +1 -1
  103. package/.docs/raw/docs/primitives/suggestion.mdx +4 -2
  104. package/.docs/raw/docs/primitives/thread-list.mdx +1 -1
  105. package/.docs/raw/docs/primitives/thread.mdx +2 -2
  106. package/.docs/raw/docs/react-native/adapters.mdx +1 -1
  107. package/.docs/raw/docs/react-native/index.mdx +2 -2
  108. package/.docs/raw/docs/react-native/migration.mdx +2 -2
  109. package/.docs/raw/docs/react-native/primitives.mdx +142 -5
  110. package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +48 -6
  111. package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +3 -3
  112. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +4 -4
  113. package/.docs/raw/docs/runtimes/ai-sdk/v7.mdx +31 -16
  114. package/.docs/raw/docs/runtimes/claude-managed-agents.mdx +118 -0
  115. package/.docs/raw/docs/runtimes/concepts/adapters.mdx +3 -3
  116. package/.docs/raw/docs/runtimes/concepts/architecture.mdx +3 -3
  117. package/.docs/raw/docs/runtimes/concepts/stability.mdx +2 -1
  118. package/.docs/raw/docs/runtimes/concepts/threads.mdx +73 -33
  119. package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +1 -1
  120. package/.docs/raw/docs/runtimes/custom/external-store.mdx +6 -2
  121. package/.docs/raw/docs/runtimes/langchain.mdx +2 -2
  122. package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +4 -0
  123. package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +1 -1
  124. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +9 -2
  125. package/.docs/raw/docs/tools/backend.mdx +4 -4
  126. package/.docs/raw/docs/tools/defining-tools.mdx +21 -2
  127. package/.docs/raw/docs/tools/generative-ui-primitive.mdx +180 -0
  128. package/.docs/raw/docs/tools/generative-ui-slack.mdx +167 -0
  129. package/.docs/raw/docs/tools/generative-ui-teams.mdx +160 -0
  130. package/.docs/raw/docs/tools/generative-ui.mdx +224 -211
  131. package/.docs/raw/docs/tools/index.mdx +2 -1
  132. package/.docs/raw/docs/tools/interactables.mdx +8 -7
  133. package/.docs/raw/docs/tools/mcp-apps.mdx +18 -1
  134. package/.docs/raw/docs/tools/mcp.mdx +2 -2
  135. package/.docs/raw/docs/tools/openui.mdx +175 -0
  136. package/.docs/raw/docs/tools/tool-ui.mdx +18 -7
  137. package/.docs/raw/docs/tools/user-managed-mcp.mdx +7 -3
  138. package/.docs/raw/docs/ui/assistant-modal.mdx +3 -3
  139. package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -1
  140. package/.docs/raw/docs/ui/attachment.mdx +50 -3
  141. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +36 -1
  142. package/.docs/raw/docs/ui/context-display.mdx +1 -1
  143. package/.docs/raw/docs/ui/directive-text.mdx +1 -1
  144. package/.docs/raw/docs/ui/file.mdx +2 -2
  145. package/.docs/raw/docs/ui/follow-up-suggestions.mdx +1 -1
  146. package/.docs/raw/docs/ui/image.mdx +2 -2
  147. package/.docs/raw/docs/ui/markdown.mdx +40 -1
  148. package/.docs/raw/docs/ui/mermaid.mdx +1 -1
  149. package/.docs/raw/docs/ui/message-timing.mdx +1 -1
  150. package/.docs/raw/docs/ui/model-selector.mdx +4 -4
  151. package/.docs/raw/docs/ui/part-grouping.mdx +1 -1
  152. package/.docs/raw/docs/ui/quote.mdx +3 -3
  153. package/.docs/raw/docs/ui/reasoning.mdx +31 -3
  154. package/.docs/raw/docs/ui/scrollbar.mdx +1 -1
  155. package/.docs/raw/docs/ui/sources.mdx +10 -1
  156. package/.docs/raw/docs/ui/streamdown.mdx +2 -2
  157. package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -1
  158. package/.docs/raw/docs/ui/thread-list.mdx +40 -1
  159. package/.docs/raw/docs/ui/thread.mdx +49 -2
  160. package/.docs/raw/docs/ui/tool-fallback.mdx +23 -9
  161. package/.docs/raw/docs/ui/tool-group.mdx +1 -1
  162. package/.docs/raw/docs/ui/voice.mdx +1 -1
  163. package/.docs/raw/docs/utilities/react-o11y.mdx +2 -2
  164. package/dist/xulux/catalog-client.d.ts.map +1 -1
  165. package/dist/xulux/catalog-client.js +51 -6
  166. package/dist/xulux/catalog-client.js.map +1 -1
  167. package/dist/xulux/types.d.ts +7 -7
  168. package/dist/xulux/types.d.ts.map +1 -1
  169. package/dist/xulux/types.js.map +1 -1
  170. package/package.json +5 -5
  171. package/src/tools/tests/docs.test.ts +10 -7
  172. package/src/tools/tests/path-traversal.test.ts +5 -2
  173. package/src/tools/tests/xulux-templates.test.ts +63 -0
  174. package/src/xulux/catalog-client.ts +68 -23
  175. package/src/xulux/types.ts +17 -13
  176. package/.docs/raw/docs/tools/interactables-legacy.mdx +0 -423
  177. package/.docs/raw/docs/ui/accordion.mdx +0 -266
  178. package/.docs/raw/docs/ui/badge.mdx +0 -150
  179. package/.docs/raw/docs/ui/diff-viewer.mdx +0 -280
  180. package/.docs/raw/docs/ui/dot-matrix.mdx +0 -133
  181. package/.docs/raw/docs/ui/number-roll.mdx +0 -154
  182. package/.docs/raw/docs/ui/select.mdx +0 -254
  183. package/.docs/raw/docs/ui/tabs.mdx +0 -271
  184. /package/.docs/raw/docs/{(docs) → (getting-started)}/architecture.mdx +0 -0
  185. /package/.docs/raw/docs/{(docs) → (getting-started)}/base-ui.mdx +0 -0
  186. /package/.docs/raw/docs/{(docs) → (getting-started)}/llm.mdx +0 -0
  187. /package/.docs/raw/docs/{(docs) → (getting-started)}/rtl.mdx +0 -0
@@ -772,7 +772,7 @@ export default withAui(nextConfig);
772
772
  "@assistant-ui/react-o11y": "workspace:*",
773
773
  "@assistant-ui/store": "workspace:*",
774
774
  "@assistant-ui/tap": "workspace:*",
775
- "next": "^16.3.0",
775
+ "next": "^16.3.2",
776
776
  "react": "^19.2.8",
777
777
  "react-dom": "^19.2.8"
778
778
  },
@@ -780,9 +780,9 @@ export default withAui(nextConfig);
780
780
  "@assistant-ui/next": "workspace:*",
781
781
  "@assistant-ui/x-buildutils": "workspace:*",
782
782
  "@tailwindcss/postcss": "^4.3.3",
783
- "@types/node": "^26.1.2",
783
+ "@types/node": "^26.2.0",
784
784
  "@types/react": "^19.2.18",
785
- "@types/react-dom": "^19.2.4",
785
+ "@types/react-dom": "^19.2.5",
786
786
  "postcss": "^8.5.26",
787
787
  "tailwindcss": "^4.3.3",
788
788
  "typescript": "^7.0.2"
@@ -559,8 +559,8 @@ export default withAui(nextConfig);
559
559
  "@assistant-ui/ui": "workspace:*",
560
560
  "class-variance-authority": "^0.7.1",
561
561
  "clsx": "^2.1.1",
562
- "lucide-react": "^1.29.0",
563
- "next": "^16.3.0",
562
+ "lucide-react": "^1.33.0",
563
+ "next": "^16.3.2",
564
564
  "react": "^19.2.8",
565
565
  "react-dom": "^19.2.8",
566
566
  "tailwind-merge": "^3.6.0"
@@ -569,9 +569,9 @@ export default withAui(nextConfig);
569
569
  "@assistant-ui/next": "workspace:*",
570
570
  "@assistant-ui/x-buildutils": "workspace:*",
571
571
  "@tailwindcss/postcss": "^4.3.3",
572
- "@types/node": "^26.1.2",
572
+ "@types/node": "^26.2.0",
573
573
  "@types/react": "^19.2.18",
574
- "@types/react-dom": "^19.2.4",
574
+ "@types/react-dom": "^19.2.5",
575
575
  "postcss": "^8.5.26",
576
576
  "tailwindcss": "^4.3.3",
577
577
  "tw-animate-css": "^1.4.0",
@@ -655,6 +655,7 @@ No proxy backend needed. `@assistant-ui/react-a2a` handles the full A2A protocol
655
655
  "@/components/assistant-ui/*": [
656
656
  "../../packages/ui/src/components/assistant-ui/*"
657
657
  ],
658
+ "@/hooks/*": ["../../packages/ui/src/hooks/*"],
658
659
  "@/components/ui/*": [
659
660
  "../../packages/ui/src/components/ui/base/*",
660
661
  "../../packages/ui/src/components/ui/radix/*"
@@ -421,15 +421,15 @@ export default withAui(nextConfig);
421
421
  "start": "next start"
422
422
  },
423
423
  "dependencies": {
424
- "@ag-ui/client": "^0.0.57",
424
+ "@ag-ui/client": "^0.0.58",
425
425
  "@assistant-ui/react": "workspace:*",
426
426
  "@assistant-ui/react-ag-ui": "workspace:*",
427
427
  "@assistant-ui/react-markdown": "workspace:*",
428
428
  "@assistant-ui/ui": "workspace:*",
429
429
  "class-variance-authority": "^0.7.1",
430
430
  "clsx": "^2.1.1",
431
- "lucide-react": "^1.29.0",
432
- "next": "^16.3.0",
431
+ "lucide-react": "^1.33.0",
432
+ "next": "^16.3.2",
433
433
  "react": "^19.2.8",
434
434
  "react-dom": "^19.2.8",
435
435
  "tailwind-merge": "^3.6.0"
@@ -438,9 +438,9 @@ export default withAui(nextConfig);
438
438
  "@assistant-ui/next": "workspace:*",
439
439
  "@assistant-ui/x-buildutils": "workspace:*",
440
440
  "@tailwindcss/postcss": "^4.3.3",
441
- "@types/node": "^26.1.2",
441
+ "@types/node": "^26.2.0",
442
442
  "@types/react": "^19.2.18",
443
- "@types/react-dom": "^19.2.4",
443
+ "@types/react-dom": "^19.2.5",
444
444
  "postcss": "^8.5.26",
445
445
  "tailwindcss": "^4.3.3",
446
446
  "tw-animate-css": "^1.4.0",
@@ -508,7 +508,7 @@ pnpm dev
508
508
  The included `server/agent.py` provides:
509
509
 
510
510
  - **Echo mode** (default): Echoes back user messages for testing
511
- - **OpenAI mode**: Uses GPT-5.4 Nano when `OPENAI_API_KEY` is set
511
+ - **OpenAI mode**: Uses GPT-5.6 Luna when `OPENAI_API_KEY` is set
512
512
 
513
513
  ### Endpoints
514
514
 
@@ -533,6 +533,7 @@ The included `server/agent.py` provides:
533
533
  "@/components/assistant-ui/*": [
534
534
  "../../packages/ui/src/components/assistant-ui/*"
535
535
  ],
536
+ "@/hooks/*": ["../../packages/ui/src/hooks/*"],
536
537
  "@/components/ui/*": [
537
538
  "../../packages/ui/src/components/ui/base/*",
538
539
  "../../packages/ui/src/components/ui/radix/*"
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```typescript
6
6
  import { openai } from "@ai-sdk/openai";
7
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
7
+ import { frontendTools } from "@assistant-ui/ai-sdk";
8
8
  import {
9
9
  type JSONSchema7,
10
10
  streamText,
@@ -33,7 +33,7 @@ export async function POST(req: Request) {
33
33
  } = await req.json();
34
34
 
35
35
  const result = streamText({
36
- model: openai("gpt-5.4-nano"),
36
+ model: openai("gpt-5.6-luna"),
37
37
  messages: await convertToModelMessages(messages),
38
38
  ...(system ? { system } : {}),
39
39
  stopWhen: stepCountIs(10),
@@ -226,7 +226,7 @@ import {
226
226
  AuiConfig,
227
227
  Suggestions,
228
228
  } from "@assistant-ui/react";
229
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
229
+ import { useChatRuntime } from "@assistant-ui/ai-sdk";
230
230
 
231
231
  function ThreadWithSuggestions() {
232
232
  const aui = useAui();
@@ -301,7 +301,7 @@ export default function Home() {
301
301
  import { withAui } from "@assistant-ui/next";
302
302
  /** @type {import('next').NextConfig} */
303
303
  const nextConfig = {
304
- transpilePackages: ["@assistant-ui/react", "@assistant-ui/react-ai-sdk"],
304
+ transpilePackages: ["@assistant-ui/react", "@assistant-ui/ai-sdk"],
305
305
  };
306
306
 
307
307
  export default withAui(nextConfig);
@@ -322,16 +322,16 @@ export default withAui(nextConfig);
322
322
  "start": "next start"
323
323
  },
324
324
  "dependencies": {
325
- "@ai-sdk/openai": "^4.0.34",
325
+ "@ai-sdk/openai": "^4.0.46",
326
+ "@assistant-ui/ai-sdk": "workspace:*",
326
327
  "@assistant-ui/react": "workspace:*",
327
- "@assistant-ui/react-ai-sdk": "workspace:*",
328
328
  "@assistant-ui/react-markdown": "workspace:*",
329
329
  "@assistant-ui/ui": "workspace:*",
330
- "ai": "^7.0.56",
330
+ "ai": "^7.0.77",
331
331
  "class-variance-authority": "^0.7.1",
332
332
  "clsx": "^2.1.1",
333
- "lucide-react": "^1.29.0",
334
- "next": "^16.3.0",
333
+ "lucide-react": "^1.33.0",
334
+ "next": "^16.3.2",
335
335
  "react": "^19.2.8",
336
336
  "react-dom": "^19.2.8",
337
337
  "tailwind-merge": "^3.6.0",
@@ -341,9 +341,9 @@ export default withAui(nextConfig);
341
341
  "@assistant-ui/next": "workspace:*",
342
342
  "@assistant-ui/x-buildutils": "workspace:*",
343
343
  "@tailwindcss/postcss": "^4.3.3",
344
- "@types/node": "^26.1.2",
344
+ "@types/node": "^26.2.0",
345
345
  "@types/react": "^19.2.18",
346
- "@types/react-dom": "^19.2.4",
346
+ "@types/react-dom": "^19.2.5",
347
347
  "postcss": "^8.5.26",
348
348
  "tailwindcss": "^4.3.3",
349
349
  "tw-animate-css": "^1.4.0",
@@ -358,7 +358,7 @@ export default withAui(nextConfig);
358
358
  ```markdown
359
359
  # AI SDK v7 Example
360
360
 
361
- This example demonstrates how to use `@assistant-ui/react-ai-sdk` with the Vercel AI SDK v7.
361
+ This example demonstrates how to use `@assistant-ui/ai-sdk` with the Vercel AI SDK v7.
362
362
 
363
363
  ## Quick Start
364
364
 
@@ -403,7 +403,7 @@ By default, `useChatRuntime` uses `AssistantChatTransport` which automatically f
403
403
  When customizing the API URL, you must explicitly use `AssistantChatTransport` to keep system/tools forwarding:
404
404
 
405
405
  ```typescript
406
- import { AssistantChatTransport } from "@assistant-ui/react-ai-sdk";
406
+ import { AssistantChatTransport } from "@assistant-ui/ai-sdk";
407
407
 
408
408
  const runtime = useChatRuntime({
409
409
  transport: new AssistantChatTransport({
@@ -446,6 +446,7 @@ The API route at `/api/chat` uses AI SDK v7 `streamText`, forwards `system` and
446
446
  "@/components/assistant-ui/*": [
447
447
  "../../packages/ui/src/components/assistant-ui/*"
448
448
  ],
449
+ "@/hooks/*": ["../../packages/ui/src/hooks/*"],
449
450
  "@/components/ui/*": [
450
451
  "../../packages/ui/src/components/ui/base/*",
451
452
  "../../packages/ui/src/components/ui/radix/*"
@@ -10,7 +10,7 @@ import {
10
10
  AISDKToolkit,
11
11
  unstable_injectInteractableContext,
12
12
  type AISDKToolkitToolsOptions,
13
- } from "@assistant-ui/react-ai-sdk";
13
+ } from "@assistant-ui/ai-sdk";
14
14
  import toolkit from "../../toolkit";
15
15
 
16
16
  export const maxDuration = 30;
@@ -33,7 +33,7 @@ export async function POST(req: Request) {
33
33
  });
34
34
 
35
35
  const result = streamText({
36
- model: openai("gpt-5.4-nano"),
36
+ model: openai("gpt-5.6-luna"),
37
37
  system:
38
38
  "You create functional HTML artifacts. When the user requests a webpage, interface, visualization, or other visual content, call the artifact tool with a short title and a complete HTML document. When an artifact already exists and the user requests a change, call update_artifact with its id and only the fields that changed. Do not put artifact HTML in a code block.",
39
39
  messages: await convertToModelMessages(
@@ -601,7 +601,7 @@ import {
601
601
  unstable_Interactables,
602
602
  useAui,
603
603
  } from "@assistant-ui/react";
604
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
604
+ import { useChatRuntime } from "@assistant-ui/ai-sdk";
605
605
  import { lastAssistantMessageIsCompleteWithToolCalls } from "ai";
606
606
  import {
607
607
  ArtifactSurface,
@@ -730,7 +730,7 @@ import { withAui } from "@assistant-ui/next";
730
730
  const nextConfig = {
731
731
  transpilePackages: [
732
732
  "@assistant-ui/react",
733
- "@assistant-ui/react-ai-sdk",
733
+ "@assistant-ui/ai-sdk",
734
734
  "@assistant-ui/react-markdown",
735
735
  ],
736
736
  };
@@ -753,16 +753,16 @@ export default withAui(nextConfig);
753
753
  "start": "next start"
754
754
  },
755
755
  "dependencies": {
756
- "@ai-sdk/openai": "^4.0.34",
756
+ "@ai-sdk/openai": "^4.0.46",
757
+ "@assistant-ui/ai-sdk": "workspace:*",
757
758
  "@assistant-ui/react": "workspace:*",
758
- "@assistant-ui/react-ai-sdk": "workspace:*",
759
759
  "@assistant-ui/react-markdown": "workspace:*",
760
760
  "@assistant-ui/ui": "workspace:*",
761
- "ai": "^7.0.56",
761
+ "ai": "^7.0.77",
762
762
  "class-variance-authority": "^0.7.1",
763
763
  "clsx": "^2.1.1",
764
- "lucide-react": "^1.29.0",
765
- "next": "^16.3.0",
764
+ "lucide-react": "^1.33.0",
765
+ "next": "^16.3.2",
766
766
  "react": "^19.2.8",
767
767
  "react-dom": "^19.2.8",
768
768
  "tailwind-merge": "^3.6.0",
@@ -772,9 +772,9 @@ export default withAui(nextConfig);
772
772
  "@assistant-ui/next": "workspace:*",
773
773
  "@assistant-ui/x-buildutils": "workspace:*",
774
774
  "@tailwindcss/postcss": "^4.3.3",
775
- "@types/node": "^26.1.2",
775
+ "@types/node": "^26.2.0",
776
776
  "@types/react": "^19.2.18",
777
- "@types/react-dom": "^19.2.4",
777
+ "@types/react-dom": "^19.2.5",
778
778
  "postcss": "^8.5.26",
779
779
  "tailwindcss": "^4.3.3",
780
780
  "tw-animate-css": "^1.4.0",
@@ -795,6 +795,7 @@ export default withAui(nextConfig);
795
795
  "@/components/assistant-ui/*": [
796
796
  "../../packages/ui/src/components/assistant-ui/*"
797
797
  ],
798
+ "@/hooks/*": ["../../packages/ui/src/hooks/*"],
798
799
  "@/components/ui/*": [
799
800
  "../../packages/ui/src/components/ui/base/*",
800
801
  "../../packages/ui/src/components/ui/radix/*"
@@ -455,8 +455,8 @@ export default withAui(nextConfig);
455
455
  "@assistant-ui/ui": "workspace:*",
456
456
  "class-variance-authority": "^0.7.1",
457
457
  "clsx": "^2.1.1",
458
- "lucide-react": "^1.29.0",
459
- "next": "^16.3.0",
458
+ "lucide-react": "^1.33.0",
459
+ "next": "^16.3.2",
460
460
  "react": "^19.2.8",
461
461
  "react-dom": "^19.2.8",
462
462
  "tailwind-merge": "^3.6.0",
@@ -466,9 +466,9 @@ export default withAui(nextConfig);
466
466
  "@assistant-ui/next": "workspace:*",
467
467
  "@assistant-ui/x-buildutils": "workspace:*",
468
468
  "@tailwindcss/postcss": "^4.3.3",
469
- "@types/node": "^26.1.2",
469
+ "@types/node": "^26.2.0",
470
470
  "@types/react": "^19.2.18",
471
- "@types/react-dom": "^19.2.4",
471
+ "@types/react-dom": "^19.2.5",
472
472
  "postcss": "^8.5.26",
473
473
  "tailwindcss": "^4.3.3",
474
474
  "tw-animate-css": "^1.4.0",
@@ -541,7 +541,7 @@ Your backend server should:
541
541
  ## Related Documentation
542
542
 
543
543
  - [assistant-ui Documentation](https://www.assistant-ui.com/docs)
544
- - [Assistant Transport Runtime API](https://www.assistant-ui.com/docs/runtimes/assistant-transport)
544
+ - [Assistant Transport Runtime API](https://www.assistant-ui.com/docs/runtimes/custom/assistant-transport)
545
545
 
546
546
  ```
547
547
 
@@ -556,6 +556,7 @@ Your backend server should:
556
556
  "@/components/assistant-ui/*": [
557
557
  "../../packages/ui/src/components/assistant-ui/*"
558
558
  ],
559
+ "@/hooks/*": ["../../packages/ui/src/hooks/*"],
559
560
  "@/components/ui/*": [
560
561
  "../../packages/ui/src/components/ui/base/*",
561
562
  "../../packages/ui/src/components/ui/radix/*"
@@ -243,21 +243,21 @@ export function MyThread() {
243
243
  "@assistant-ui/ui": "workspace:*",
244
244
  "class-variance-authority": "^0.7.1",
245
245
  "clsx": "^2.1.1",
246
- "lucide-react": "^1.29.0",
246
+ "lucide-react": "^1.33.0",
247
247
  "react": "^19.2.8",
248
248
  "react-dom": "^19.2.8",
249
249
  "tailwind-merge": "^3.6.0"
250
250
  },
251
251
  "devDependencies": {
252
252
  "@tailwindcss/postcss": "^4.3.3",
253
- "@types/chrome": "^0.2.5",
254
- "@types/node": "^26.1.2",
253
+ "@types/chrome": "^0.2.7",
254
+ "@types/node": "^26.2.0",
255
255
  "@types/react": "^19.2.18",
256
- "@types/react-dom": "^19.2.4",
257
- "esbuild": "^0.28.1",
256
+ "@types/react-dom": "^19.2.5",
257
+ "esbuild": "^0.28.2",
258
258
  "postcss": "^8.5.26",
259
259
  "tailwindcss": "^4.3.3",
260
- "tsx": "^4.23.10",
260
+ "tsx": "^4.23.12",
261
261
  "tw-animate-css": "^1.4.0",
262
262
  "typescript": "^7.0.2"
263
263
  }
@@ -14,7 +14,7 @@ import {
14
14
  JsonToSseTransformStream,
15
15
  } from "ai";
16
16
  import type { UIMessage, UIMessageStreamWriter } from "ai";
17
- import { AISDKToolkit } from "@assistant-ui/react-ai-sdk";
17
+ import { AISDKToolkit } from "@assistant-ui/ai-sdk";
18
18
  import { z } from "zod";
19
19
  import toolkit from "../../toolkit";
20
20
 
@@ -119,7 +119,7 @@ async function streamModel(
119
119
 
120
120
  const result = streamText({
121
121
  // Reasoning model so the chain-of-thought group has real content.
122
- model: openai("gpt-5.4-mini"),
122
+ model: openai("gpt-5.6-luna"),
123
123
  messages: await convertToModelMessages(messages),
124
124
  stopWhen: stepCountIs(10),
125
125
  tools: {
@@ -424,6 +424,7 @@ import {
424
424
  ToolGroupTrigger,
425
425
  } from "@/components/assistant-ui/tool-group";
426
426
  import {
427
+ AuiIf,
427
428
  ComposerPrimitive,
428
429
  groupPartByType,
429
430
  MessagePrimitive,
@@ -440,9 +441,9 @@ export const MyThread: FC = () => {
440
441
  style={{ ["--thread-max-width" as string]: "44rem" }}
441
442
  >
442
443
  <ThreadPrimitive.Viewport className="flex flex-1 flex-col overflow-y-scroll scroll-smooth px-4 pt-8">
443
- <ThreadPrimitive.Empty>
444
+ <AuiIf condition={(s) => s.thread.isEmpty}>
444
445
  <ThreadWelcome />
445
- </ThreadPrimitive.Empty>
446
+ </AuiIf>
446
447
 
447
448
  <ThreadPrimitive.Messages>
448
449
  {({ message }) => {
@@ -643,7 +644,7 @@ import {
643
644
  AuiProvider,
644
645
  Suggestions,
645
646
  } from "@assistant-ui/react";
646
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
647
+ import { useChatRuntime } from "@assistant-ui/ai-sdk";
647
648
  import { MyThread } from "./MyThread";
648
649
  import { lastAssistantMessageIsCompleteWithApprovalResponses } from "ai";
649
650
  import toolkit from "./toolkit";
@@ -781,7 +782,7 @@ export default defineToolkit({
781
782
  import { withAui } from "@assistant-ui/next";
782
783
  /** @type {import('next').NextConfig} */
783
784
  const nextConfig = {
784
- transpilePackages: ["@assistant-ui/react", "@assistant-ui/react-ai-sdk"],
785
+ transpilePackages: ["@assistant-ui/react", "@assistant-ui/ai-sdk"],
785
786
  };
786
787
 
787
788
  export default withAui(nextConfig);
@@ -802,16 +803,16 @@ export default withAui(nextConfig);
802
803
  "start": "next start"
803
804
  },
804
805
  "dependencies": {
805
- "@ai-sdk/openai": "^4.0.34",
806
+ "@ai-sdk/openai": "^4.0.46",
807
+ "@assistant-ui/ai-sdk": "workspace:*",
806
808
  "@assistant-ui/react": "workspace:*",
807
- "@assistant-ui/react-ai-sdk": "workspace:*",
808
809
  "@assistant-ui/react-markdown": "workspace:*",
809
810
  "@assistant-ui/ui": "workspace:*",
810
- "ai": "^7.0.56",
811
+ "ai": "^7.0.77",
811
812
  "class-variance-authority": "^0.7.1",
812
813
  "clsx": "^2.1.1",
813
- "lucide-react": "^1.29.0",
814
- "next": "^16.3.0",
814
+ "lucide-react": "^1.33.0",
815
+ "next": "^16.3.2",
815
816
  "react": "^19.2.8",
816
817
  "react-dom": "^19.2.8",
817
818
  "tailwind-merge": "^3.6.0",
@@ -821,9 +822,9 @@ export default withAui(nextConfig);
821
822
  "@assistant-ui/next": "workspace:*",
822
823
  "@assistant-ui/x-buildutils": "workspace:*",
823
824
  "@tailwindcss/postcss": "^4.3.3",
824
- "@types/node": "^26.1.2",
825
+ "@types/node": "^26.2.0",
825
826
  "@types/react": "^19.2.18",
826
- "@types/react-dom": "^19.2.4",
827
+ "@types/react-dom": "^19.2.5",
827
828
  "postcss": "^8.5.26",
828
829
  "tailwindcss": "^4.3.3",
829
830
  "tw-animate-css": "^1.4.0",
@@ -899,7 +900,7 @@ This is the canonical pattern. For non-adjacent clustering (parts that share an
899
900
 
900
901
  ## How sources are emitted
901
902
 
902
- The route emits structured `source-url` chunks; `@assistant-ui/react-ai-sdk` converts them to `source` message parts that the `Sources` component renders as badges. They are not URLs scraped from assistant text.
903
+ The route emits structured `source-url` chunks; `@assistant-ui/ai-sdk` converts them to `source` message parts that the `Sources` component renders as badges. They are not URLs scraped from assistant text.
903
904
 
904
905
  ```ts
905
906
  writer.write({
@@ -935,6 +936,7 @@ Chain-of-thought, tool calls, and citation sources are the parts of an assistant
935
936
  "@/components/assistant-ui/*": [
936
937
  "../../packages/ui/src/components/assistant-ui/*"
937
938
  ],
939
+ "@/hooks/*": ["../../packages/ui/src/hooks/*"],
938
940
  "@/components/ui/*": [
939
941
  "../../packages/ui/src/components/ui/base/*",
940
942
  "../../packages/ui/src/components/ui/radix/*"
@@ -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-5.4-nano"),
16
+ model: openai("gpt-5.6-luna"),
17
17
  messages: await convertToModelMessages(messages),
18
18
  });
19
19
 
@@ -568,13 +568,13 @@ export default withAui(nextConfig);
568
568
  "start": "next start"
569
569
  },
570
570
  "dependencies": {
571
- "@ai-sdk/openai": "^4.0.34",
571
+ "@ai-sdk/openai": "^4.0.46",
572
572
  "@assistant-ui/cloud-ai-sdk": "workspace:*",
573
- "ai": "^7.0.56",
573
+ "ai": "^7.0.77",
574
574
  "class-variance-authority": "^0.7.1",
575
575
  "clsx": "^2.1.1",
576
- "lucide-react": "^1.29.0",
577
- "next": "^16.3.0",
576
+ "lucide-react": "^1.33.0",
577
+ "next": "^16.3.2",
578
578
  "react": "^19.2.8",
579
579
  "react-dom": "^19.2.8",
580
580
  "tailwind-merge": "^3.6.0"
@@ -583,9 +583,9 @@ export default withAui(nextConfig);
583
583
  "@assistant-ui/next": "workspace:*",
584
584
  "@assistant-ui/x-buildutils": "workspace:*",
585
585
  "@tailwindcss/postcss": "^4.3.3",
586
- "@types/node": "^26.1.2",
586
+ "@types/node": "^26.2.0",
587
587
  "@types/react": "^19.2.18",
588
- "@types/react-dom": "^19.2.4",
588
+ "@types/react-dom": "^19.2.5",
589
589
  "postcss": "^8.5.26",
590
590
  "tailwindcss": "^4.3.3",
591
591
  "tw-animate-css": "^1.4.0",
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```typescript
6
6
  import { openai } from "@ai-sdk/openai";
7
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
7
+ import { frontendTools } from "@assistant-ui/ai-sdk";
8
8
  import { convertToModelMessages, streamText } from "ai";
9
9
 
10
10
  export const maxDuration = 30;
@@ -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-5.4-nano"),
16
+ model: openai("gpt-5.6-luna"),
17
17
  messages: await convertToModelMessages(messages),
18
18
  // forward system prompt and tools from the frontend
19
19
  system,
@@ -203,7 +203,7 @@ export default function RootLayout({
203
203
  "use client";
204
204
 
205
205
  import { AssistantCloud, AssistantRuntimeProvider } from "@assistant-ui/react";
206
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
206
+ import { useChatRuntime } from "@assistant-ui/ai-sdk";
207
207
 
208
208
  const cloud = new AssistantCloud({
209
209
  baseUrl: process.env.NEXT_PUBLIC_ASSISTANT_BASE_URL!,
@@ -332,16 +332,16 @@ export default withAui(nextConfig);
332
332
  "start": "next start"
333
333
  },
334
334
  "dependencies": {
335
- "@ai-sdk/openai": "^4.0.34",
335
+ "@ai-sdk/openai": "^4.0.46",
336
+ "@assistant-ui/ai-sdk": "workspace:*",
336
337
  "@assistant-ui/react": "workspace:*",
337
- "@assistant-ui/react-ai-sdk": "workspace:*",
338
338
  "@assistant-ui/react-markdown": "workspace:*",
339
339
  "@assistant-ui/ui": "workspace:*",
340
- "ai": "^7.0.56",
340
+ "ai": "^7.0.77",
341
341
  "class-variance-authority": "^0.7.1",
342
342
  "clsx": "^2.1.1",
343
- "lucide-react": "^1.29.0",
344
- "next": "^16.3.0",
343
+ "lucide-react": "^1.33.0",
344
+ "next": "^16.3.2",
345
345
  "react": "^19.2.8",
346
346
  "react-dom": "^19.2.8",
347
347
  "tailwind-merge": "^3.6.0"
@@ -350,9 +350,9 @@ export default withAui(nextConfig);
350
350
  "@assistant-ui/next": "workspace:*",
351
351
  "@assistant-ui/x-buildutils": "workspace:*",
352
352
  "@tailwindcss/postcss": "^4.3.3",
353
- "@types/node": "^26.1.2",
353
+ "@types/node": "^26.2.0",
354
354
  "@types/react": "^19.2.18",
355
- "@types/react-dom": "^19.2.4",
355
+ "@types/react-dom": "^19.2.5",
356
356
  "postcss": "^8.5.26",
357
357
  "tailwindcss": "^4.3.3",
358
358
  "tw-animate-css": "^1.4.0",
@@ -419,6 +419,7 @@ npm run dev
419
419
  "@/components/assistant-ui/*": [
420
420
  "../../packages/ui/src/components/assistant-ui/*"
421
421
  ],
422
+ "@/hooks/*": ["../../packages/ui/src/hooks/*"],
422
423
  "@/components/ui/*": [
423
424
  "../../packages/ui/src/components/ui/base/*",
424
425
  "../../packages/ui/src/components/ui/radix/*"
@@ -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-5.4-nano"),
24
+ model: openai("gpt-5.6-luna"),
25
25
  messages: await convertToModelMessages(messages),
26
26
  stopWhen: stepCountIs(10),
27
27
  tools: {
@@ -212,7 +212,7 @@ import {
212
212
  useRemoteThreadListRuntime,
213
213
  type RemoteThreadListAdapter,
214
214
  } from "@assistant-ui/react";
215
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
215
+ import { useChatRuntime } from "@assistant-ui/ai-sdk";
216
216
  import { createAssistantStream } from "assistant-stream";
217
217
 
218
218
  const PAGE_SIZE = 10;
@@ -462,17 +462,17 @@ export default withAui(nextConfig);
462
462
  "start": "next start"
463
463
  },
464
464
  "dependencies": {
465
- "@ai-sdk/openai": "^4.0.34",
465
+ "@ai-sdk/openai": "^4.0.46",
466
+ "@assistant-ui/ai-sdk": "workspace:*",
466
467
  "@assistant-ui/react": "workspace:*",
467
- "@assistant-ui/react-ai-sdk": "workspace:*",
468
468
  "@assistant-ui/react-markdown": "workspace:*",
469
469
  "@assistant-ui/ui": "workspace:*",
470
- "ai": "^7.0.56",
470
+ "ai": "^7.0.77",
471
471
  "assistant-stream": "workspace:*",
472
472
  "class-variance-authority": "^0.7.1",
473
473
  "clsx": "^2.1.1",
474
- "lucide-react": "^1.29.0",
475
- "next": "^16.3.0",
474
+ "lucide-react": "^1.33.0",
475
+ "next": "^16.3.2",
476
476
  "react": "^19.2.8",
477
477
  "react-dom": "^19.2.8",
478
478
  "tailwind-merge": "^3.6.0",
@@ -482,9 +482,9 @@ export default withAui(nextConfig);
482
482
  "@assistant-ui/next": "workspace:*",
483
483
  "@assistant-ui/x-buildutils": "workspace:*",
484
484
  "@tailwindcss/postcss": "^4.3.3",
485
- "@types/node": "^26.1.2",
485
+ "@types/node": "^26.2.0",
486
486
  "@types/react": "^19.2.18",
487
- "@types/react-dom": "^19.2.4",
487
+ "@types/react-dom": "^19.2.5",
488
488
  "postcss": "^8.5.26",
489
489
  "tailwindcss": "^4.3.3",
490
490
  "tw-animate-css": "^1.4.0",
@@ -534,7 +534,7 @@ npm run dev
534
534
  ## Related Documentation
535
535
 
536
536
  - [assistant-ui Documentation](https://www.assistant-ui.com/docs)
537
- - [Thread List Guide](https://www.assistant-ui.com/docs/thread-list)
537
+ - [Thread List Guide](https://www.assistant-ui.com/docs/ui/thread-list)
538
538
 
539
539
  ```
540
540
 
@@ -549,6 +549,7 @@ npm run dev
549
549
  "@/components/assistant-ui/*": [
550
550
  "../../packages/ui/src/components/assistant-ui/*"
551
551
  ],
552
+ "@/hooks/*": ["../../packages/ui/src/hooks/*"],
552
553
  "@/components/ui/*": [
553
554
  "../../packages/ui/src/components/ui/base/*",
554
555
  "../../packages/ui/src/components/ui/radix/*"