@assistant-ui/mcp-docs-server 0.2.2 → 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 (167) hide show
  1. package/.docs/organized/code-examples/waterfall.md +2 -2
  2. package/.docs/organized/code-examples/with-a2a.md +4 -3
  3. package/.docs/organized/code-examples/with-ag-ui.md +5 -4
  4. package/.docs/organized/code-examples/with-ai-sdk-v7.md +12 -11
  5. package/.docs/organized/code-examples/with-artifacts.md +10 -9
  6. package/.docs/organized/code-examples/with-assistant-transport.md +4 -3
  7. package/.docs/organized/code-examples/with-browser-extension.md +3 -3
  8. package/.docs/organized/code-examples/with-chain-of-thought.md +14 -12
  9. package/.docs/organized/code-examples/with-cloud-standalone.md +5 -5
  10. package/.docs/organized/code-examples/with-cloud.md +9 -8
  11. package/.docs/organized/code-examples/with-custom-thread-list.md +8 -7
  12. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +12 -11
  13. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +12 -11
  14. package/.docs/organized/code-examples/with-eve.md +5 -4
  15. package/.docs/organized/code-examples/with-expo.md +214 -31
  16. package/.docs/organized/code-examples/with-external-store.md +4 -3
  17. package/.docs/organized/code-examples/with-ffmpeg.md +9 -8
  18. package/.docs/organized/code-examples/with-generative-ui.md +13 -15
  19. package/.docs/organized/code-examples/with-google-adk.md +4 -3
  20. package/.docs/organized/code-examples/with-heat-graph.md +2 -2
  21. package/.docs/organized/code-examples/with-image-generation.md +7 -6
  22. package/.docs/organized/code-examples/with-interactables.md +9 -8
  23. package/.docs/organized/code-examples/with-langchain.md +6 -5
  24. package/.docs/organized/code-examples/with-langgraph.md +6 -5
  25. package/.docs/organized/code-examples/with-livekit.md +13 -12
  26. package/.docs/organized/code-examples/with-mcp.md +11 -9
  27. package/.docs/organized/code-examples/with-nuxt.md +502 -502
  28. package/.docs/organized/code-examples/with-opencode.md +3 -3
  29. package/.docs/organized/code-examples/with-openui.md +14 -13
  30. package/.docs/organized/code-examples/with-pi.md +5 -4
  31. package/.docs/organized/code-examples/with-react-hook-form.md +13 -10
  32. package/.docs/organized/code-examples/with-react-ink-web.md +64 -14
  33. package/.docs/organized/code-examples/with-react-ink.md +3 -2
  34. package/.docs/organized/code-examples/with-react-router.md +6 -5
  35. package/.docs/organized/code-examples/with-resumable-stream.md +10 -9
  36. package/.docs/organized/code-examples/with-store.md +2 -2
  37. package/.docs/organized/code-examples/with-svelte.md +3 -3
  38. package/.docs/organized/code-examples/with-sveltekit.md +9 -9
  39. package/.docs/organized/code-examples/with-tanstack.md +8 -7
  40. package/.docs/organized/code-examples/with-tap-runtime.md +4 -3
  41. package/.docs/organized/code-examples/with-virtualized-thread.md +5 -4
  42. package/.docs/organized/code-examples/with-vue.md +2 -2
  43. package/.docs/raw/docs/{(docs) → (getting-started)}/devtools.mdx +1 -1
  44. package/.docs/raw/docs/{(docs) → (getting-started)}/index.mdx +4 -2
  45. package/.docs/raw/docs/{(docs) → (getting-started)}/installation.mdx +24 -24
  46. package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +6 -0
  47. package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +1 -1
  48. package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +6 -1
  49. package/.docs/raw/docs/(reference)/api-reference/integrations/{react-ai-sdk.mdx → ai-sdk.mdx} +19 -19
  50. package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +22 -1
  51. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +3 -3
  52. package/.docs/raw/docs/(reference)/api-reference/overview.mdx +2 -2
  53. package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +20 -2
  54. package/.docs/raw/docs/(reference)/api-reference/tools/interactables.mdx +1 -1
  55. package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +1 -1
  56. package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +3 -0
  57. package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +10 -10
  58. package/.docs/raw/docs/cloud/ai-sdk.mdx +2 -0
  59. package/.docs/raw/docs/copilots/assistant-frame.mdx +19 -8
  60. package/.docs/raw/docs/guides/attachments.mdx +2 -2
  61. package/.docs/raw/docs/guides/branching.mdx +1 -1
  62. package/.docs/raw/docs/guides/chatgpt-subscription.mdx +1 -1
  63. package/.docs/raw/docs/guides/dictation.mdx +1 -1
  64. package/.docs/raw/docs/guides/electron.mdx +1 -1
  65. package/.docs/raw/docs/guides/latex.mdx +1 -1
  66. package/.docs/raw/docs/guides/message-timing.mdx +11 -5
  67. package/.docs/raw/docs/guides/quoting.mdx +1 -1
  68. package/.docs/raw/docs/guides/resumable-streams.mdx +3 -3
  69. package/.docs/raw/docs/guides/speech.mdx +1 -1
  70. package/.docs/raw/docs/guides/suggestions.mdx +2 -2
  71. package/.docs/raw/docs/guides/voice.mdx +1 -1
  72. package/.docs/raw/docs/ink/hooks.mdx +1 -1
  73. package/.docs/raw/docs/ink/index.mdx +3 -2
  74. package/.docs/raw/docs/ink/migration.mdx +1 -1
  75. package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +3 -3
  76. package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +3 -3
  77. package/.docs/raw/docs/integrations/frameworks/{cloudflare-agents/overview.mdx → cloudflare-agents.mdx} +4 -3
  78. package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +1 -1
  79. package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +1 -1
  80. package/.docs/raw/docs/integrations/index.mdx +2 -2
  81. package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +3 -3
  82. package/.docs/raw/docs/migrations/toolkit-tools.mdx +2 -2
  83. package/.docs/raw/docs/primitives/action-bar.mdx +1 -1
  84. package/.docs/raw/docs/primitives/assistant-modal.mdx +1 -1
  85. package/.docs/raw/docs/primitives/attachment.mdx +1 -1
  86. package/.docs/raw/docs/primitives/branch-picker.mdx +1 -1
  87. package/.docs/raw/docs/primitives/chain-of-thought.mdx +3 -3
  88. package/.docs/raw/docs/primitives/composer.mdx +1 -1
  89. package/.docs/raw/docs/primitives/error.mdx +1 -1
  90. package/.docs/raw/docs/primitives/message.mdx +1 -1
  91. package/.docs/raw/docs/primitives/selection-toolbar.mdx +1 -1
  92. package/.docs/raw/docs/primitives/suggestion.mdx +1 -1
  93. package/.docs/raw/docs/primitives/thread-list.mdx +1 -1
  94. package/.docs/raw/docs/primitives/thread.mdx +1 -1
  95. package/.docs/raw/docs/react-native/adapters.mdx +1 -1
  96. package/.docs/raw/docs/react-native/index.mdx +2 -2
  97. package/.docs/raw/docs/react-native/migration.mdx +2 -2
  98. package/.docs/raw/docs/react-native/primitives.mdx +142 -5
  99. package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +13 -1
  100. package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +3 -3
  101. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +4 -4
  102. package/.docs/raw/docs/runtimes/ai-sdk/v7.mdx +31 -16
  103. package/.docs/raw/docs/runtimes/concepts/adapters.mdx +3 -3
  104. package/.docs/raw/docs/runtimes/concepts/architecture.mdx +3 -3
  105. package/.docs/raw/docs/runtimes/concepts/threads.mdx +5 -5
  106. package/.docs/raw/docs/runtimes/langchain.mdx +1 -1
  107. package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +1 -1
  108. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +1 -1
  109. package/.docs/raw/docs/tools/backend.mdx +4 -4
  110. package/.docs/raw/docs/tools/defining-tools.mdx +2 -2
  111. package/.docs/raw/docs/tools/generative-ui.mdx +2 -2
  112. package/.docs/raw/docs/tools/interactables.mdx +3 -3
  113. package/.docs/raw/docs/tools/mcp-apps.mdx +18 -1
  114. package/.docs/raw/docs/tools/mcp.mdx +2 -2
  115. package/.docs/raw/docs/tools/openui.mdx +2 -2
  116. package/.docs/raw/docs/tools/tool-ui.mdx +17 -5
  117. package/.docs/raw/docs/tools/user-managed-mcp.mdx +2 -2
  118. package/.docs/raw/docs/ui/assistant-modal.mdx +3 -3
  119. package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -1
  120. package/.docs/raw/docs/ui/attachment.mdx +30 -10
  121. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +36 -1
  122. package/.docs/raw/docs/ui/context-display.mdx +1 -1
  123. package/.docs/raw/docs/ui/directive-text.mdx +1 -1
  124. package/.docs/raw/docs/ui/file.mdx +1 -1
  125. package/.docs/raw/docs/ui/follow-up-suggestions.mdx +1 -1
  126. package/.docs/raw/docs/ui/image.mdx +1 -1
  127. package/.docs/raw/docs/ui/markdown.mdx +40 -1
  128. package/.docs/raw/docs/ui/mermaid.mdx +1 -1
  129. package/.docs/raw/docs/ui/message-timing.mdx +1 -1
  130. package/.docs/raw/docs/ui/model-selector.mdx +4 -4
  131. package/.docs/raw/docs/ui/part-grouping.mdx +1 -1
  132. package/.docs/raw/docs/ui/quote.mdx +3 -3
  133. package/.docs/raw/docs/ui/reasoning.mdx +31 -3
  134. package/.docs/raw/docs/ui/scrollbar.mdx +1 -1
  135. package/.docs/raw/docs/ui/sources.mdx +10 -1
  136. package/.docs/raw/docs/ui/streamdown.mdx +2 -2
  137. package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -1
  138. package/.docs/raw/docs/ui/thread-list.mdx +40 -1
  139. package/.docs/raw/docs/ui/thread.mdx +49 -2
  140. package/.docs/raw/docs/ui/tool-fallback.mdx +23 -9
  141. package/.docs/raw/docs/ui/tool-group.mdx +1 -1
  142. package/.docs/raw/docs/ui/voice.mdx +1 -1
  143. package/.docs/raw/docs/utilities/react-o11y.mdx +2 -2
  144. package/dist/xulux/catalog-client.d.ts.map +1 -1
  145. package/dist/xulux/catalog-client.js +51 -6
  146. package/dist/xulux/catalog-client.js.map +1 -1
  147. package/dist/xulux/types.d.ts +7 -7
  148. package/dist/xulux/types.d.ts.map +1 -1
  149. package/dist/xulux/types.js.map +1 -1
  150. package/package.json +3 -3
  151. package/src/tools/tests/docs.test.ts +10 -7
  152. package/src/tools/tests/path-traversal.test.ts +5 -2
  153. package/src/tools/tests/xulux-templates.test.ts +63 -0
  154. package/src/xulux/catalog-client.ts +68 -23
  155. package/src/xulux/types.ts +17 -13
  156. package/.docs/raw/docs/ui/accordion.mdx +0 -266
  157. package/.docs/raw/docs/ui/badge.mdx +0 -150
  158. package/.docs/raw/docs/ui/diff-viewer.mdx +0 -280
  159. package/.docs/raw/docs/ui/dot-matrix.mdx +0 -133
  160. package/.docs/raw/docs/ui/number-roll.mdx +0 -154
  161. package/.docs/raw/docs/ui/select.mdx +0 -254
  162. package/.docs/raw/docs/ui/tabs.mdx +0 -271
  163. /package/.docs/raw/docs/{(docs) → (getting-started)}/architecture.mdx +0 -0
  164. /package/.docs/raw/docs/{(docs) → (getting-started)}/base-ui.mdx +0 -0
  165. /package/.docs/raw/docs/{(docs) → (getting-started)}/cli.mdx +0 -0
  166. /package/.docs/raw/docs/{(docs) → (getting-started)}/llm.mdx +0 -0
  167. /package/.docs/raw/docs/{(docs) → (getting-started)}/rtl.mdx +0 -0
@@ -597,11 +597,11 @@ export default withAui(nextConfig);
597
597
  "@assistant-ui/react": "workspace:*",
598
598
  "@assistant-ui/react-markdown": "workspace:*",
599
599
  "@assistant-ui/ui": "workspace:*",
600
- "@tanstack/react-virtual": "^3.14.9",
600
+ "@tanstack/react-virtual": "^3.14.10",
601
601
  "class-variance-authority": "^0.7.1",
602
602
  "clsx": "^2.1.1",
603
- "lucide-react": "^1.31.0",
604
- "next": "^16.3.0",
603
+ "lucide-react": "^1.33.0",
604
+ "next": "^16.3.2",
605
605
  "react": "^19.2.8",
606
606
  "react-dom": "^19.2.8",
607
607
  "tailwind-merge": "^3.6.0"
@@ -612,7 +612,7 @@ export default withAui(nextConfig);
612
612
  "@tailwindcss/postcss": "^4.3.3",
613
613
  "@types/node": "^26.2.0",
614
614
  "@types/react": "^19.2.18",
615
- "@types/react-dom": "^19.2.4",
615
+ "@types/react-dom": "^19.2.5",
616
616
  "postcss": "^8.5.26",
617
617
  "tailwindcss": "^4.3.3",
618
618
  "tw-animate-css": "^1.4.0",
@@ -661,6 +661,7 @@ See the [thread virtualization guide](https://assistant-ui.com/docs/guides/virtu
661
661
  "@/components/assistant-ui/*": [
662
662
  "../../packages/ui/src/components/assistant-ui/*"
663
663
  ],
664
+ "@/hooks/*": ["../../packages/ui/src/hooks/*"],
664
665
  "@/components/ui/*": [
665
666
  "../../packages/ui/src/components/ui/base/*",
666
667
  "../../packages/ui/src/components/ui/radix/*"
@@ -18,7 +18,7 @@
18
18
  "@assistant-ui/store": "workspace:*",
19
19
  "@assistant-ui/tap": "workspace:*",
20
20
  "@assistant-ui/vue": "workspace:*",
21
- "@lucide/vue": "^1.31.0",
21
+ "@lucide/vue": "^1.33.0",
22
22
  "vue": "^3.5.41"
23
23
  },
24
24
  "devDependencies": {
@@ -27,7 +27,7 @@
27
27
  "@vitejs/plugin-vue": "^6.0.8",
28
28
  "tailwindcss": "^4.3.3",
29
29
  "typescript": "^7.0.2",
30
- "vite": "^8.2.1"
30
+ "vite": "^8.2.2"
31
31
  }
32
32
  }
33
33
 
@@ -4,7 +4,7 @@ description: Inspect runtime state, context, and events in the browser.
4
4
  platforms: ["react"]
5
5
  ---
6
6
 
7
- import { DevToolsSample, DevToolsModalSample } from "@/components/docs/samples/devtools";
7
+ import { DevToolsSample, DevToolsModalSample } from "@/components/pages/docs/samples/devtools";
8
8
 
9
9
  The assistant-ui DevTools allows you to debug the assistant-ui state and context, and events without resorting to `console.log`. It's an easy way to see how data flows to the assistant-ui's runtime layer.
10
10
 
@@ -6,9 +6,11 @@ platforms: ["react"]
6
6
 
7
7
  <Quickstart />
8
8
 
9
- ## One library, any interface
9
+ ## Pick a surface
10
10
 
11
- <DemoShowcase />
11
+ Same primitives on web, native, and the terminal.
12
+
13
+ <SurfaceGrid />
12
14
 
13
15
  ## Bring your own backend
14
16
 
@@ -93,37 +93,37 @@ Install provider SDK:
93
93
 
94
94
  <Tabs groupId="provider" items={["OpenAI", "Anthropic", "Azure", "AWS", "Gemini", "GCP", "Groq", "Fireworks", "Cohere", "Ollama", "Chrome AI"]}>
95
95
  <Tab>
96
- <InstallCommand npm={["ai", "@assistant-ui/react-ai-sdk", "@ai-sdk/openai"]} />
96
+ <InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/openai"]} />
97
97
  </Tab>
98
98
  <Tab>
99
- <InstallCommand npm={["ai", "@assistant-ui/react-ai-sdk", "@ai-sdk/anthropic"]} />
99
+ <InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/anthropic"]} />
100
100
  </Tab>
101
101
  <Tab>
102
- <InstallCommand npm={["ai", "@assistant-ui/react-ai-sdk", "@ai-sdk/azure"]} />
102
+ <InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/azure"]} />
103
103
  </Tab>
104
104
  <Tab>
105
- <InstallCommand npm={["ai", "@assistant-ui/react-ai-sdk", "@ai-sdk/amazon-bedrock"]} />
105
+ <InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/amazon-bedrock"]} />
106
106
  </Tab>
107
107
  <Tab>
108
- <InstallCommand npm={["ai", "@assistant-ui/react-ai-sdk", "@ai-sdk/google"]} />
108
+ <InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/google"]} />
109
109
  </Tab>
110
110
  <Tab>
111
- <InstallCommand npm={["ai", "@assistant-ui/react-ai-sdk", "@ai-sdk/google-vertex"]} />
111
+ <InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/google-vertex"]} />
112
112
  </Tab>
113
113
  <Tab>
114
- <InstallCommand npm={["ai", "@assistant-ui/react-ai-sdk", "@ai-sdk/groq"]} />
114
+ <InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/groq"]} />
115
115
  </Tab>
116
116
  <Tab>
117
- <InstallCommand npm={["ai", "@assistant-ui/react-ai-sdk", "@ai-sdk/fireworks"]} />
117
+ <InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/fireworks"]} />
118
118
  </Tab>
119
119
  <Tab>
120
- <InstallCommand npm={["ai", "@assistant-ui/react-ai-sdk", "@ai-sdk/cohere"]} />
120
+ <InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/cohere"]} />
121
121
  </Tab>
122
122
  <Tab>
123
- <InstallCommand npm={["ai", "@assistant-ui/react-ai-sdk", "ollama-ai-provider-v2"]} />
123
+ <InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "ollama-ai-provider-v2"]} />
124
124
  </Tab>
125
125
  <Tab>
126
- <InstallCommand npm={["ai", "@assistant-ui/react-ai-sdk", "chrome-ai"]} />
126
+ <InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "chrome-ai"]} />
127
127
  </Tab>
128
128
  </Tabs>
129
129
 
@@ -132,7 +132,7 @@ Add an API endpoint:
132
132
  <Tabs groupId="provider" items={["OpenAI", "Anthropic", "Azure", "AWS", "Gemini", "GCP", "Groq", "Fireworks", "Cohere", "Ollama", "Chrome AI"]}>
133
133
  ```ts title="/app/api/chat/route.ts" tab="OpenAI"
134
134
  import { openai } from "@ai-sdk/openai";
135
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
135
+ import { frontendTools } from "@assistant-ui/ai-sdk";
136
136
  import { convertToModelMessages, streamText } from "ai";
137
137
 
138
138
  export const maxDuration = 30;
@@ -151,7 +151,7 @@ export async function POST(req: Request) {
151
151
 
152
152
  ```ts title="/app/api/chat/route.ts" tab="Anthropic"
153
153
  import { anthropic } from "@ai-sdk/anthropic";
154
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
154
+ import { frontendTools } from "@assistant-ui/ai-sdk";
155
155
  import { convertToModelMessages, streamText } from "ai";
156
156
 
157
157
  export const maxDuration = 30;
@@ -170,7 +170,7 @@ export async function POST(req: Request) {
170
170
 
171
171
  ```ts title="/app/api/chat/route.ts" tab="Azure"
172
172
  import { azure } from "@ai-sdk/azure";
173
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
173
+ import { frontendTools } from "@assistant-ui/ai-sdk";
174
174
  import { convertToModelMessages, streamText } from "ai";
175
175
 
176
176
  export const maxDuration = 30;
@@ -189,7 +189,7 @@ export async function POST(req: Request) {
189
189
 
190
190
  ```ts title="/app/api/chat/route.ts" tab="AWS"
191
191
  import { bedrock } from "@ai-sdk/amazon-bedrock";
192
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
192
+ import { frontendTools } from "@assistant-ui/ai-sdk";
193
193
  import { convertToModelMessages, streamText } from "ai";
194
194
 
195
195
  export const maxDuration = 30;
@@ -208,7 +208,7 @@ export async function POST(req: Request) {
208
208
 
209
209
  ```ts title="/app/api/chat/route.ts" tab="Gemini"
210
210
  import { google } from "@ai-sdk/google";
211
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
211
+ import { frontendTools } from "@assistant-ui/ai-sdk";
212
212
  import { convertToModelMessages, streamText } from "ai";
213
213
 
214
214
  export const maxDuration = 30;
@@ -227,7 +227,7 @@ export async function POST(req: Request) {
227
227
 
228
228
  ```ts title="/app/api/chat/route.ts" tab="GCP"
229
229
  import { vertex } from "@ai-sdk/google-vertex";
230
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
230
+ import { frontendTools } from "@assistant-ui/ai-sdk";
231
231
  import { convertToModelMessages, streamText } from "ai";
232
232
 
233
233
  export const maxDuration = 30;
@@ -246,7 +246,7 @@ export async function POST(req: Request) {
246
246
 
247
247
  ```ts title="/app/api/chat/route.ts" tab="Groq"
248
248
  import { groq } from "@ai-sdk/groq";
249
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
249
+ import { frontendTools } from "@assistant-ui/ai-sdk";
250
250
  import { convertToModelMessages, streamText } from "ai";
251
251
 
252
252
  export const maxDuration = 30;
@@ -265,7 +265,7 @@ export async function POST(req: Request) {
265
265
 
266
266
  ```ts title="/app/api/chat/route.ts" tab="Fireworks"
267
267
  import { fireworks } from "@ai-sdk/fireworks";
268
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
268
+ import { frontendTools } from "@assistant-ui/ai-sdk";
269
269
  import { convertToModelMessages, streamText } from "ai";
270
270
 
271
271
  export const maxDuration = 30;
@@ -284,7 +284,7 @@ export async function POST(req: Request) {
284
284
 
285
285
  ```ts title="/app/api/chat/route.ts" tab="Cohere"
286
286
  import { cohere } from "@ai-sdk/cohere";
287
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
287
+ import { frontendTools } from "@assistant-ui/ai-sdk";
288
288
  import { convertToModelMessages, streamText } from "ai";
289
289
 
290
290
  export const maxDuration = 30;
@@ -303,7 +303,7 @@ export async function POST(req: Request) {
303
303
 
304
304
  ```ts title="/app/api/chat/route.ts" tab="Ollama"
305
305
  import { ollama } from "ollama-ai-provider-v2";
306
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
306
+ import { frontendTools } from "@assistant-ui/ai-sdk";
307
307
  import { convertToModelMessages, streamText } from "ai";
308
308
 
309
309
  export const maxDuration = 30;
@@ -322,7 +322,7 @@ export async function POST(req: Request) {
322
322
 
323
323
  ```ts title="/app/api/chat/route.ts" tab="Chrome AI"
324
324
  import { chromeai } from "chrome-ai";
325
- import { frontendTools } from "@assistant-ui/react-ai-sdk";
325
+ import { frontendTools } from "@assistant-ui/ai-sdk";
326
326
  import { convertToModelMessages, streamText } from "ai";
327
327
 
328
328
  export const maxDuration = 30;
@@ -408,7 +408,7 @@ If you aren't using Next.js, you can also deploy this endpoint to Cloudflare Wor
408
408
 
409
409
  ```tsx title="/app/page.tsx" tab="Thread"
410
410
  import { AssistantRuntimeProvider } from "@assistant-ui/react";
411
- import { useChatRuntime, AssistantChatTransport } from "@assistant-ui/react-ai-sdk";
411
+ import { useChatRuntime, AssistantChatTransport } from "@assistant-ui/ai-sdk";
412
412
  import { ThreadList } from "@/components/assistant-ui/thread-list";
413
413
  import { Thread } from "@/components/assistant-ui/thread";
414
414
 
@@ -434,7 +434,7 @@ export default function MyApp() {
434
434
  // run `npx shadcn@latest add @assistant-ui/assistant-modal`
435
435
 
436
436
  import { AssistantRuntimeProvider } from "@assistant-ui/react";
437
- import { useChatRuntime, AssistantChatTransport } from "@assistant-ui/react-ai-sdk";
437
+ import { useChatRuntime, AssistantChatTransport } from "@assistant-ui/ai-sdk";
438
438
  import { AssistantModal } from "@/components/assistant-ui/assistant-modal";
439
439
 
440
440
  export default function MyApp() {
@@ -14,6 +14,12 @@ import { SuggestionAdapter } from "@/generated/typeDocs";
14
14
 
15
15
  ## API Reference
16
16
 
17
+ ### createSuggestionAdapter
18
+
19
+ ```ts
20
+ const createSuggestionAdapter: (options: CreateSuggestionAdapterOptions) => SuggestionAdapter;
21
+ ```
22
+
17
23
  ### SuggestionAdapter
18
24
 
19
25
  <ParametersTable {...SuggestionAdapter} />
@@ -19,7 +19,7 @@ import { AssistantRuntimeProvider, AuiProvider } from "@/generated/typeDocs";
19
19
  {/* api-example:AssistantRuntimeProvider:start */}
20
20
  ```tsx {1, 8, 10}
21
21
  import { AssistantRuntimeProvider } from "@assistant-ui/react";
22
- import { useChatRuntime, AssistantChatTransport } from "@assistant-ui/react-ai-sdk";
22
+ import { useChatRuntime, AssistantChatTransport } from "@assistant-ui/ai-sdk";
23
23
 
24
24
  const MyApp = () => {
25
25
  const runtime = useChatRuntime({
@@ -23,7 +23,12 @@ const getExternalStoreMessages: <T>(input: { messages: readonly ThreadMessage[];
23
23
  ### unstable_convertExternalMessages
24
24
 
25
25
  ```ts
26
- const unstable_convertExternalMessages: <T extends WeakKey>(messages: T[], callback: useExternalMessageConverter.Callback<T>, isRunning: boolean, metadata: useExternalMessageConverter.Metadata) => ThreadMessage[];
26
+ const unstable_convertExternalMessages: <T extends WeakKey>(
27
+ messages: T[],
28
+ callback: useExternalMessageConverter.Callback<T>,
29
+ isRunning: boolean,
30
+ metadata: useExternalMessageConverter.Metadata,
31
+ ) => ThreadMessage[];
27
32
  ```
28
33
 
29
34
  ### unstable_createMessageConverter
@@ -1,9 +1,9 @@
1
1
  ---
2
- title: "@assistant-ui/react-ai-sdk"
3
- description: Vercel AI SDK runtime hooks, chat transports, and message conversion utilities for assistant-ui React applications.
2
+ title: "@assistant-ui/ai-sdk"
3
+ description: Vercel AI SDK runtime hooks, chat transports, and message conversion utilities for assistant-ui applications.
4
4
  ---
5
5
 
6
- import { reactAiSdk_AISDKChat, reactAiSdk_AISDKThreads, reactAiSdk_AISDKToolkit, reactAiSdk_AssistantChatTransport, reactAiSdk_createResumableSessionStorage, reactAiSdk_getThreadMessageTokenUsage, reactAiSdk_injectQuoteContext, reactAiSdk_unstable_injectInteractableContext, reactAiSdk_useAISDKRuntime, reactAiSdk_useChatRuntime } from "@/generated/integrationTypeDocs";
6
+ import { aiSdk_AISDKChat, aiSdk_AISDKThreads, aiSdk_AISDKToolkit, aiSdk_AssistantChatTransport, aiSdk_createResumableSessionStorage, aiSdk_getThreadMessageTokenUsage, aiSdk_injectQuoteContext, aiSdk_unstable_injectInteractableContext, aiSdk_useAISDKRuntime, aiSdk_useChatRuntime } from "@/generated/integrationTypeDocs";
7
7
 
8
8
  {/* AUTO-GENERATED PAGE by scripts/generate-api-reference.mts */}
9
9
  {/* Do not edit manually. */}
@@ -19,16 +19,16 @@ import { reactAiSdk_AISDKChat, reactAiSdk_AISDKThreads, reactAiSdk_AISDKToolkit,
19
19
  `AuiConfig` entry that runs the AI SDK chat as the `threads` scope. Hosts the
20
20
  same orchestration as `useChatRuntime` inside the client's own resource tree,
21
21
  so it works with any `AssistantClient` host, React or not. Single thread; the
22
- multi-thread and assistant-cloud surface is [AISDKThreads](/docs/api-reference/integrations/react-ai-sdk#aisdkthreads). The chat
22
+ multi-thread and assistant-cloud surface is [AISDKThreads](/docs/api-reference/integrations/ai-sdk#aisdkthreads). The chat
23
23
  id is captured when the entry mounts, so a later `id` change in the options
24
24
  has no effect.
25
25
 
26
- <ParametersTable {...reactAiSdk_AISDKChat} />
26
+ <ParametersTable {...aiSdk_AISDKChat} />
27
27
 
28
28
  ### AISDKThreads
29
29
 
30
30
  `AuiConfig` entry that runs one AI SDK chat per thread. Hosts the same
31
- per-thread orchestration as [AISDKChat](/docs/api-reference/integrations/react-ai-sdk#aisdkchat) inside the client's own
31
+ per-thread orchestration as [AISDKChat](/docs/api-reference/integrations/ai-sdk#aisdkchat) inside the client's own
32
32
  resource tree, so it works with any `AssistantClient` host, React or not.
33
33
  Without `cloud`, threads live in memory for the client's lifetime and keep
34
34
  their history across switches; each thread's chat id is its thread id.
@@ -37,21 +37,21 @@ cloud history reloads on a switch. The store entry mounts only the visible
37
37
  thread, so a switch cancels an in-flight run. Model context is
38
38
  registered on the visible thread only.
39
39
 
40
- <ParametersTable {...reactAiSdk_AISDKThreads} />
40
+ <ParametersTable {...aiSdk_AISDKThreads} />
41
41
 
42
42
  ### AISDKToolkit
43
43
 
44
- <ParametersTable {...reactAiSdk_AISDKToolkit} />
44
+ <ParametersTable {...aiSdk_AISDKToolkit} />
45
45
 
46
46
  ### AssistantChatTransport
47
47
 
48
- <ParametersTable {...reactAiSdk_AssistantChatTransport} />
48
+ <ParametersTable {...aiSdk_AssistantChatTransport} />
49
49
 
50
50
  ### createResumableSessionStorage
51
51
 
52
52
  `sessionStorage`-backed storage for the pending resumable stream id. See the [Resumable Streams](/docs/guides/resumable-streams) guide for end-to-end wiring.
53
53
 
54
- <ParametersTable {...reactAiSdk_createResumableSessionStorage} />
54
+ <ParametersTable {...aiSdk_createResumableSessionStorage} />
55
55
 
56
56
  ### frontendTools
57
57
 
@@ -61,7 +61,7 @@ const frontendTools: (tools: FrontendTools) => ToolSet;
61
61
 
62
62
  ### getThreadMessageTokenUsage
63
63
 
64
- <ParametersTable {...reactAiSdk_getThreadMessageTokenUsage} />
64
+ <ParametersTable {...aiSdk_getThreadMessageTokenUsage} />
65
65
 
66
66
  ### injectQuoteContext
67
67
 
@@ -72,7 +72,7 @@ sees the quoted text that the user is referring to.
72
72
 
73
73
  ```ts
74
74
  import { convertToModelMessages, streamText } from "ai";
75
- import { injectQuoteContext } from "@assistant-ui/react-ai-sdk";
75
+ import { injectQuoteContext } from "@assistant-ui/ai-sdk";
76
76
 
77
77
  export async function POST(req: Request) {
78
78
  const { messages } = await req.json();
@@ -84,7 +84,7 @@ export async function POST(req: Request) {
84
84
  }
85
85
  ```
86
86
 
87
- <ParametersTable {...reactAiSdk_injectQuoteContext} />
87
+ <ParametersTable {...aiSdk_injectQuoteContext} />
88
88
 
89
89
  ### RESUMABLE_STREAM_ID_HEADER
90
90
 
@@ -98,7 +98,7 @@ const RESUMABLE_STREAM_ID_HEADER: "x-resumable-stream-id";
98
98
 
99
99
  Injects interactable state snapshots into messages as model-visible text.
100
100
 
101
- Mirrors [injectQuoteContext](/docs/api-reference/integrations/react-ai-sdk#injectquotecontext): reads the frozen snapshot stamped on a user
101
+ Mirrors [injectQuoteContext](/docs/api-reference/integrations/ai-sdk#injectquotecontext): reads the frozen snapshot stamped on a user
102
102
  message's `metadata.custom.interactables` (by the interactables scope at send
103
103
  time) and prepends a text part. Run this in your route handler before
104
104
  `convertToModelMessages`, which otherwise ignores `metadata.custom`.
@@ -112,7 +112,7 @@ only the fields that changed since the model's last known state.
112
112
 
113
113
  ```ts
114
114
  import { convertToModelMessages, streamText } from "ai";
115
- import { unstable_injectInteractableContext } from "@assistant-ui/react-ai-sdk";
115
+ import { unstable_injectInteractableContext } from "@assistant-ui/ai-sdk";
116
116
 
117
117
  export async function POST(req: Request) {
118
118
  const { messages } = await req.json();
@@ -124,7 +124,7 @@ export async function POST(req: Request) {
124
124
  }
125
125
  ```
126
126
 
127
- <ParametersTable {...reactAiSdk_unstable_injectInteractableContext} />
127
+ <ParametersTable {...aiSdk_unstable_injectInteractableContext} />
128
128
 
129
129
  ### useAISDKChat
130
130
 
@@ -149,11 +149,11 @@ const useAISDKError: () => Error | undefined;
149
149
 
150
150
  ### useAISDKRuntime
151
151
 
152
- <ParametersTable {...reactAiSdk_useAISDKRuntime} />
152
+ <ParametersTable {...aiSdk_useAISDKRuntime} />
153
153
 
154
154
  ### useChatRuntime
155
155
 
156
- <ParametersTable {...reactAiSdk_useChatRuntime} />
156
+ <ParametersTable {...aiSdk_useChatRuntime} />
157
157
 
158
158
  ### useThreadTokenUsage
159
159
 
@@ -164,7 +164,7 @@ function useThreadTokenUsage(): ThreadTokenUsage | undefined;
164
164
  ### generativeTools
165
165
 
166
166
  <Callout type="warn">
167
- <strong>Deprecated.</strong> Use [AISDKToolkit](/docs/api-reference/integrations/react-ai-sdk#aisdktoolkit) instead:
167
+ <strong>Deprecated.</strong> Use [AISDKToolkit](/docs/api-reference/integrations/ai-sdk#aisdktoolkit) instead:
168
168
  `new AISDKToolkit({ toolkit }).tools({ frontend })`. It is a strict superset
169
169
  (it also opens MCP server connections), so it replaces `generativeTools`
170
170
  everywhere. The `frontendTools` option is named `frontend` on `.tools()`, and
@@ -43,8 +43,29 @@ const getEveMessageContent: (message: AppendMessage) => EveMessageContent;
43
43
 
44
44
  Converts an assistant-ui tool approval response into an Eve input response.
45
45
 
46
+ When `inputRequest` is known, every returned response carries either an
47
+ option the request declares or a free-form answer. A literal option match
48
+ wins, then the `"approve"` / `"cancel"` option the response's boolean decision
49
+ names, then the response's `reason` text when the request takes a free-form
50
+ answer (`display: "text"`, `allowFreeform`, or no options at all, and never
51
+ `display: "confirmation"`) and the response is not a refusal.
52
+ A one-argument call, or a part with no request, still forwards a caller
53
+ `optionId` as it always has, including ids the request never declared.
54
+
55
+ A response the known request cannot record as the answer it asked for throws
56
+ instead of being submitted, because eve resolves a request the moment any
57
+ response for it arrives, and an empty one is recorded as an answer with no
58
+ content. Not sending leaves the request pending, so the caller can retry or
59
+ the user can answer it as an ordinary message.
60
+
61
+ With no request to map against — a one-argument call, or a part carrying no
62
+ `toolMetadata.eve.inputRequest` — the response maps as it always has, to the
63
+ literal `"approve"` / `"cancel"` option every eve approval declares. Guessing
64
+ a display mode is what this mapper stopped doing; an unknown request is not
65
+ a guess about one.
66
+
46
67
  ```ts
47
- const toEveInputResponse: (response: RespondToToolApprovalOptions) => InputResponse;
68
+ const toEveInputResponse: (response: RespondToToolApprovalOptions, inputRequest?: EveMessageInputRequest) => InputResponse;
48
69
  ```
49
70
 
50
71
  ### useEveAgentRuntime
@@ -7,14 +7,14 @@ description: Package-level APIs for connecting assistant-ui React to the Vercel
7
7
  {/* The page list is generated from exported APIs; edit only the manual prose slot. */}
8
8
 
9
9
  {/* api-manual:start */}
10
- Integration packages connect assistant-ui to adjacent React and AI ecosystems. Use this section when you need the exact hooks, options, and helper exports for a package such as `@assistant-ui/react-ai-sdk`, `@assistant-ui/react-data-stream`, `@assistant-ui/cloud-ai-sdk`, or `@assistant-ui/eve`.
10
+ Integration packages connect assistant-ui to adjacent React and AI ecosystems. Use this section when you need the exact hooks, options, and helper exports for a package such as `@assistant-ui/ai-sdk`, `@assistant-ui/react-data-stream`, `@assistant-ui/cloud-ai-sdk`, or `@assistant-ui/eve`.
11
11
  {/* api-manual:end */}
12
12
 
13
13
  ## Pages
14
14
 
15
15
  <Cards>
16
- <Card title={"@assistant-ui/react-ai-sdk"} href={"/docs/api-reference/integrations/react-ai-sdk"}>
17
- {"Vercel AI SDK runtime hooks, chat transports, and message conversion utilities for assistant-ui React applications."}
16
+ <Card title={"@assistant-ui/ai-sdk"} href={"/docs/api-reference/integrations/ai-sdk"}>
17
+ {"Vercel AI SDK runtime hooks, chat transports, and message conversion utilities for assistant-ui applications."}
18
18
  </Card>
19
19
  <Card title={"@assistant-ui/react-data-stream"} href={"/docs/api-reference/integrations/react-data-stream"}>
20
20
  {"Data stream runtime hook and message conversion utilities for custom assistant-ui streaming backends."}
@@ -46,8 +46,8 @@ The React API reference is organized by how you build with assistant-ui:
46
46
  <Card title="Adapters" href="/docs/api-reference/adapters/model">
47
47
  Runtime extension points for attachments, persistence, feedback, speech, dictation, and suggestions.
48
48
  </Card>
49
- <Card title="Integrations" href="/docs/api-reference/integrations/react-ai-sdk">
50
- Package-level APIs for integrations such as `@assistant-ui/react-ai-sdk` and `@assistant-ui/cloud-ai-sdk`.
49
+ <Card title="Integrations" href="/docs/api-reference/integrations/ai-sdk">
50
+ Package-level APIs for integrations such as `@assistant-ui/ai-sdk` and `@assistant-ui/cloud-ai-sdk`.
51
51
  </Card>
52
52
  <Card title="Runtime State" href="/docs/api-reference/runtimes/assistant-runtime">
53
53
  Runtime action and state shapes used by `useAui` and `useAuiState`.
@@ -336,11 +336,11 @@ Only takes effect when `submitMode` resolves to `"enter"` (the default); `"ctrlE
336
336
  )}
337
337
 
338
338
  ```tsx
339
- <ComposerPrimitive.If dictation>
339
+ <AuiIf condition={(s) => s.composer.dictation != null}>
340
340
  <div className="dictation-preview">
341
341
  <ComposerPrimitive.DictationTranscript />
342
342
  </div>
343
- </ComposerPrimitive.If>
343
+ </AuiIf>
344
344
  ```
345
345
 
346
346
  <ParametersTable {...ComposerPrimitiveDictationTranscriptProps} />
@@ -616,4 +616,22 @@ Only takes effect when `submitMode` resolves to `"enter"` (the default); `"ctrlE
616
616
  {ComposerPrimitiveDocs.Unstable_RegisteredTrigger?.props && (
617
617
  <ParametersTable type={ComposerPrimitiveDocs.Unstable_RegisteredTrigger?.element} parameters={ComposerPrimitiveDocs.Unstable_RegisteredTrigger.props} />
618
618
  )}
619
+
620
+ ### Unstable_TriggerMatcher
621
+
622
+ {ComposerPrimitiveDocs.Unstable_TriggerMatcher?.deprecated && (
623
+ <Callout type="warn">
624
+ <strong>Deprecated.</strong> {ComposerPrimitiveDocs.Unstable_TriggerMatcher.deprecated}
625
+ </Callout>
626
+ )}
627
+
628
+ {ComposerPrimitiveDocs.Unstable_TriggerMatcher?.description}
629
+
630
+ {ComposerPrimitiveDocs.Unstable_TriggerMatcher?.element && (
631
+ <p>This primitive renders a <code>{`<${ComposerPrimitiveDocs.Unstable_TriggerMatcher?.element}>`}</code> element unless <code>asChild</code> is set.</p>
632
+ )}
633
+
634
+ {ComposerPrimitiveDocs.Unstable_TriggerMatcher?.props && (
635
+ <ParametersTable type={ComposerPrimitiveDocs.Unstable_TriggerMatcher?.element} parameters={ComposerPrimitiveDocs.Unstable_TriggerMatcher.props} />
636
+ )}
619
637
  {/* api-reference:end */}
@@ -114,7 +114,7 @@ Reads the interactable snapshots stamped on a message's
114
114
  `metadata.custom.interactables`, or `undefined` if none. This is the read
115
115
  half of the snapshot channel — integrations use it to surface interactable
116
116
  state to the model (see `unstable_injectInteractableContext` in
117
- `@assistant-ui/react-ai-sdk` for the AI SDK implementation).
117
+ `@assistant-ui/ai-sdk` for the AI SDK implementation).
118
118
 
119
119
  <ParametersTable {...unstable_getInteractableSnapshots} />
120
120
 
@@ -51,7 +51,7 @@ function MyComponent() {
51
51
 
52
52
  useAssistantFrameHost({
53
53
  iframeRef,
54
- targetOrigin: "https://trusted-domain.com", // optional
54
+ targetOrigin: "https://trusted-domain.com",
55
55
  });
56
56
 
57
57
  return <iframe ref={iframeRef} src="..." />;
@@ -113,6 +113,9 @@ Takes the current part state and a `smooth` argument: `false` disables,
113
113
  `true` uses the default rate, and a SmoothOptions object tunes
114
114
  the reveal. Returns the part state with `text` replaced by the revealed
115
115
  prefix and `status` reporting `running` until the reveal catches up.
116
+ If the source settles before any character has been revealed, the text
117
+ is committed immediately so a missed animation frame cannot leave an
118
+ empty bubble.
116
119
 
117
120
  The reveal auto-disables under `prefers-reduced-motion: reduce`,
118
121
  committing the full text immediately; this takes precedence over an
@@ -19,7 +19,7 @@ This integration provides:
19
19
 
20
20
  ## How It Works
21
21
 
22
- The `useChatRuntime` hook from `@assistant-ui/react-ai-sdk` wraps AI SDK's `useChat` and adds cloud persistence via the `cloud` parameter. `AISDKThreads({ cloud })` is the store-entry list for `AuiConfig` / `createAssistantClient` hosts. That host mounts only the visible thread, so a switch cancels an in-flight run. The runtime automatically:
22
+ The `useChatRuntime` hook from `@assistant-ui/ai-sdk` wraps AI SDK's `useChat` and adds cloud persistence via the `cloud` parameter. `AISDKThreads({ cloud })` is the store-entry list for `AuiConfig` / `createAssistantClient` hosts. That host mounts only the visible thread, so a switch cancels an in-flight run. The runtime automatically:
23
23
 
24
24
  1. Creates a cloud thread on the first user message
25
25
  2. Persists messages as they complete streaming
@@ -102,17 +102,17 @@ Install the required packages:
102
102
  <PlatformTabs>
103
103
  <Tab value="React">
104
104
 
105
- <InstallCommand npm={["@assistant-ui/react", "@assistant-ui/react-ai-sdk"]} />
105
+ <InstallCommand npm={["@assistant-ui/react", "@assistant-ui/ai-sdk"]} />
106
106
 
107
107
  </Tab>
108
108
  <Tab value="React Native">
109
109
 
110
- <InstallCommand expo={["@assistant-ui/react-native", "@assistant-ui/react-ai-sdk", "assistant-cloud"]} />
110
+ <InstallCommand expo={["@assistant-ui/react-native", "@assistant-ui/ai-sdk", "assistant-cloud"]} />
111
111
 
112
112
  </Tab>
113
113
  <Tab value="React Ink">
114
114
 
115
- <InstallCommand npm={["@assistant-ui/react-ink", "@assistant-ui/react-ai-sdk", "assistant-cloud", "ink", "react"]} />
115
+ <InstallCommand npm={["@assistant-ui/react-ink", "@assistant-ui/ai-sdk", "assistant-cloud", "ink", "react"]} />
116
116
 
117
117
  </Tab>
118
118
  </PlatformTabs>
@@ -133,7 +133,7 @@ Create a client-side AssistantCloud instance and integrate it with your AI SDK r
133
133
 
134
134
  import { useMemo } from "react";
135
135
  import { AssistantCloud, AssistantRuntimeProvider } from "@assistant-ui/react";
136
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
136
+ import { useChatRuntime } from "@assistant-ui/ai-sdk";
137
137
  import { ThreadList } from "@/components/assistant-ui/thread-list";
138
138
  import { Thread } from "@/components/assistant-ui/thread";
139
139
 
@@ -174,7 +174,7 @@ import {
174
174
  ThreadListPrimitive,
175
175
  } from "@assistant-ui/react-native";
176
176
  import { AssistantCloud } from "assistant-cloud";
177
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
177
+ import { useChatRuntime } from "@assistant-ui/ai-sdk";
178
178
  import { Thread } from "@/components/assistant-ui/thread";
179
179
 
180
180
  async function getAssistantToken() {
@@ -236,7 +236,7 @@ import {
236
236
  ThreadListPrimitive,
237
237
  } from "@assistant-ui/react-ink";
238
238
  import { AssistantCloud } from "assistant-cloud";
239
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
239
+ import { useChatRuntime } from "@assistant-ui/ai-sdk";
240
240
  import { Thread } from "./components/thread.js";
241
241
 
242
242
  async function getAssistantToken() {
@@ -453,7 +453,7 @@ The React example above uses anonymous mode for quick demos. For production apps
453
453
  import { useMemo } from "react";
454
454
  import { useAuth } from "@clerk/nextjs";
455
455
  import { AssistantCloud } from "@assistant-ui/react";
456
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
456
+ import { useChatRuntime } from "@assistant-ui/ai-sdk";
457
457
 
458
458
  function Chat() {
459
459
  const { getToken } = useAuth();
@@ -474,7 +474,7 @@ function Chat() {
474
474
  ```tsx
475
475
  import { useMemo } from "react";
476
476
  import { AssistantCloud } from "assistant-cloud";
477
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
477
+ import { useChatRuntime } from "@assistant-ui/ai-sdk";
478
478
 
479
479
  async function getAssistantToken() {
480
480
  // Return a user token from your native auth provider.
@@ -498,7 +498,7 @@ function Chat() {
498
498
  ```tsx
499
499
  import { useMemo } from "react";
500
500
  import { AssistantCloud } from "assistant-cloud";
501
- import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
501
+ import { useChatRuntime } from "@assistant-ui/ai-sdk";
502
502
 
503
503
  async function getAssistantToken() {
504
504
  // Return a user token from your CLI auth flow.
@@ -355,6 +355,8 @@ const myThreads = useThreads({ cloud: myCloud });
355
355
  const { messages, sendMessage } = useCloudChat({ threads: myThreads });
356
356
  ```
357
357
 
358
+ `useThreads` requests 20 threads per page and follows Cloud cursors until all matching threads are loaded. With `includeArchived`, active and archived pages load concurrently and the complete list is committed after both finish.
359
+
358
360
  **Parameters:**
359
361
 
360
362
  | Parameter | Type | Description |