@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.
- package/.docs/organized/code-examples/waterfall.md +2 -2
- package/.docs/organized/code-examples/with-a2a.md +4 -3
- package/.docs/organized/code-examples/with-ag-ui.md +5 -4
- package/.docs/organized/code-examples/with-ai-sdk-v7.md +12 -11
- package/.docs/organized/code-examples/with-artifacts.md +10 -9
- package/.docs/organized/code-examples/with-assistant-transport.md +4 -3
- package/.docs/organized/code-examples/with-browser-extension.md +3 -3
- package/.docs/organized/code-examples/with-chain-of-thought.md +14 -12
- package/.docs/organized/code-examples/with-cloud-standalone.md +5 -5
- package/.docs/organized/code-examples/with-cloud.md +9 -8
- package/.docs/organized/code-examples/with-custom-thread-list.md +8 -7
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +12 -11
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +12 -11
- package/.docs/organized/code-examples/with-eve.md +5 -4
- package/.docs/organized/code-examples/with-expo.md +214 -31
- package/.docs/organized/code-examples/with-external-store.md +4 -3
- package/.docs/organized/code-examples/with-ffmpeg.md +9 -8
- package/.docs/organized/code-examples/with-generative-ui.md +13 -15
- package/.docs/organized/code-examples/with-google-adk.md +4 -3
- package/.docs/organized/code-examples/with-heat-graph.md +2 -2
- package/.docs/organized/code-examples/with-image-generation.md +7 -6
- package/.docs/organized/code-examples/with-interactables.md +9 -8
- package/.docs/organized/code-examples/with-langchain.md +6 -5
- package/.docs/organized/code-examples/with-langgraph.md +6 -5
- package/.docs/organized/code-examples/with-livekit.md +13 -12
- package/.docs/organized/code-examples/with-mcp.md +11 -9
- package/.docs/organized/code-examples/with-nuxt.md +502 -502
- package/.docs/organized/code-examples/with-opencode.md +3 -3
- package/.docs/organized/code-examples/with-openui.md +14 -13
- package/.docs/organized/code-examples/with-pi.md +5 -4
- package/.docs/organized/code-examples/with-react-hook-form.md +13 -10
- package/.docs/organized/code-examples/with-react-ink-web.md +64 -14
- package/.docs/organized/code-examples/with-react-ink.md +3 -2
- package/.docs/organized/code-examples/with-react-router.md +6 -5
- package/.docs/organized/code-examples/with-resumable-stream.md +10 -9
- package/.docs/organized/code-examples/with-store.md +2 -2
- package/.docs/organized/code-examples/with-svelte.md +3 -3
- package/.docs/organized/code-examples/with-sveltekit.md +9 -9
- package/.docs/organized/code-examples/with-tanstack.md +8 -7
- package/.docs/organized/code-examples/with-tap-runtime.md +4 -3
- package/.docs/organized/code-examples/with-virtualized-thread.md +5 -4
- package/.docs/organized/code-examples/with-vue.md +2 -2
- package/.docs/raw/docs/{(docs) → (getting-started)}/devtools.mdx +1 -1
- package/.docs/raw/docs/{(docs) → (getting-started)}/index.mdx +4 -2
- package/.docs/raw/docs/{(docs) → (getting-started)}/installation.mdx +24 -24
- package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +6 -0
- package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +1 -1
- package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +6 -1
- package/.docs/raw/docs/(reference)/api-reference/integrations/{react-ai-sdk.mdx → ai-sdk.mdx} +19 -19
- package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +22 -1
- package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +3 -3
- package/.docs/raw/docs/(reference)/api-reference/overview.mdx +2 -2
- package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +20 -2
- package/.docs/raw/docs/(reference)/api-reference/tools/interactables.mdx +1 -1
- package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +1 -1
- package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +3 -0
- package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +10 -10
- package/.docs/raw/docs/cloud/ai-sdk.mdx +2 -0
- package/.docs/raw/docs/copilots/assistant-frame.mdx +19 -8
- package/.docs/raw/docs/guides/attachments.mdx +2 -2
- package/.docs/raw/docs/guides/branching.mdx +1 -1
- package/.docs/raw/docs/guides/chatgpt-subscription.mdx +1 -1
- package/.docs/raw/docs/guides/dictation.mdx +1 -1
- package/.docs/raw/docs/guides/electron.mdx +1 -1
- package/.docs/raw/docs/guides/latex.mdx +1 -1
- package/.docs/raw/docs/guides/message-timing.mdx +11 -5
- package/.docs/raw/docs/guides/quoting.mdx +1 -1
- package/.docs/raw/docs/guides/resumable-streams.mdx +3 -3
- package/.docs/raw/docs/guides/speech.mdx +1 -1
- package/.docs/raw/docs/guides/suggestions.mdx +2 -2
- package/.docs/raw/docs/guides/voice.mdx +1 -1
- package/.docs/raw/docs/ink/hooks.mdx +1 -1
- package/.docs/raw/docs/ink/index.mdx +3 -2
- package/.docs/raw/docs/ink/migration.mdx +1 -1
- package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +3 -3
- package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +3 -3
- package/.docs/raw/docs/integrations/frameworks/{cloudflare-agents/overview.mdx → cloudflare-agents.mdx} +4 -3
- package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +1 -1
- package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +1 -1
- package/.docs/raw/docs/integrations/index.mdx +2 -2
- package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +3 -3
- package/.docs/raw/docs/migrations/toolkit-tools.mdx +2 -2
- package/.docs/raw/docs/primitives/action-bar.mdx +1 -1
- package/.docs/raw/docs/primitives/assistant-modal.mdx +1 -1
- package/.docs/raw/docs/primitives/attachment.mdx +1 -1
- package/.docs/raw/docs/primitives/branch-picker.mdx +1 -1
- package/.docs/raw/docs/primitives/chain-of-thought.mdx +3 -3
- package/.docs/raw/docs/primitives/composer.mdx +1 -1
- package/.docs/raw/docs/primitives/error.mdx +1 -1
- package/.docs/raw/docs/primitives/message.mdx +1 -1
- package/.docs/raw/docs/primitives/selection-toolbar.mdx +1 -1
- package/.docs/raw/docs/primitives/suggestion.mdx +1 -1
- package/.docs/raw/docs/primitives/thread-list.mdx +1 -1
- package/.docs/raw/docs/primitives/thread.mdx +1 -1
- package/.docs/raw/docs/react-native/adapters.mdx +1 -1
- package/.docs/raw/docs/react-native/index.mdx +2 -2
- package/.docs/raw/docs/react-native/migration.mdx +2 -2
- package/.docs/raw/docs/react-native/primitives.mdx +142 -5
- package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +13 -1
- package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +3 -3
- package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +4 -4
- package/.docs/raw/docs/runtimes/ai-sdk/v7.mdx +31 -16
- package/.docs/raw/docs/runtimes/concepts/adapters.mdx +3 -3
- package/.docs/raw/docs/runtimes/concepts/architecture.mdx +3 -3
- package/.docs/raw/docs/runtimes/concepts/threads.mdx +5 -5
- package/.docs/raw/docs/runtimes/langchain.mdx +1 -1
- package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +1 -1
- package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +1 -1
- package/.docs/raw/docs/tools/backend.mdx +4 -4
- package/.docs/raw/docs/tools/defining-tools.mdx +2 -2
- package/.docs/raw/docs/tools/generative-ui.mdx +2 -2
- package/.docs/raw/docs/tools/interactables.mdx +3 -3
- package/.docs/raw/docs/tools/mcp-apps.mdx +18 -1
- package/.docs/raw/docs/tools/mcp.mdx +2 -2
- package/.docs/raw/docs/tools/openui.mdx +2 -2
- package/.docs/raw/docs/tools/tool-ui.mdx +17 -5
- package/.docs/raw/docs/tools/user-managed-mcp.mdx +2 -2
- package/.docs/raw/docs/ui/assistant-modal.mdx +3 -3
- package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -1
- package/.docs/raw/docs/ui/attachment.mdx +30 -10
- package/.docs/raw/docs/ui/composer-trigger-popover.mdx +36 -1
- package/.docs/raw/docs/ui/context-display.mdx +1 -1
- package/.docs/raw/docs/ui/directive-text.mdx +1 -1
- package/.docs/raw/docs/ui/file.mdx +1 -1
- package/.docs/raw/docs/ui/follow-up-suggestions.mdx +1 -1
- package/.docs/raw/docs/ui/image.mdx +1 -1
- package/.docs/raw/docs/ui/markdown.mdx +40 -1
- package/.docs/raw/docs/ui/mermaid.mdx +1 -1
- package/.docs/raw/docs/ui/message-timing.mdx +1 -1
- package/.docs/raw/docs/ui/model-selector.mdx +4 -4
- package/.docs/raw/docs/ui/part-grouping.mdx +1 -1
- package/.docs/raw/docs/ui/quote.mdx +3 -3
- package/.docs/raw/docs/ui/reasoning.mdx +31 -3
- package/.docs/raw/docs/ui/scrollbar.mdx +1 -1
- package/.docs/raw/docs/ui/sources.mdx +10 -1
- package/.docs/raw/docs/ui/streamdown.mdx +2 -2
- package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -1
- package/.docs/raw/docs/ui/thread-list.mdx +40 -1
- package/.docs/raw/docs/ui/thread.mdx +49 -2
- package/.docs/raw/docs/ui/tool-fallback.mdx +23 -9
- package/.docs/raw/docs/ui/tool-group.mdx +1 -1
- package/.docs/raw/docs/ui/voice.mdx +1 -1
- package/.docs/raw/docs/utilities/react-o11y.mdx +2 -2
- package/dist/xulux/catalog-client.d.ts.map +1 -1
- package/dist/xulux/catalog-client.js +51 -6
- package/dist/xulux/catalog-client.js.map +1 -1
- package/dist/xulux/types.d.ts +7 -7
- package/dist/xulux/types.d.ts.map +1 -1
- package/dist/xulux/types.js.map +1 -1
- package/package.json +3 -3
- package/src/tools/tests/docs.test.ts +10 -7
- package/src/tools/tests/path-traversal.test.ts +5 -2
- package/src/tools/tests/xulux-templates.test.ts +63 -0
- package/src/xulux/catalog-client.ts +68 -23
- package/src/xulux/types.ts +17 -13
- package/.docs/raw/docs/ui/accordion.mdx +0 -266
- package/.docs/raw/docs/ui/badge.mdx +0 -150
- package/.docs/raw/docs/ui/diff-viewer.mdx +0 -280
- package/.docs/raw/docs/ui/dot-matrix.mdx +0 -133
- package/.docs/raw/docs/ui/number-roll.mdx +0 -154
- package/.docs/raw/docs/ui/select.mdx +0 -254
- package/.docs/raw/docs/ui/tabs.mdx +0 -271
- /package/.docs/raw/docs/{(docs) → (getting-started)}/architecture.mdx +0 -0
- /package/.docs/raw/docs/{(docs) → (getting-started)}/base-ui.mdx +0 -0
- /package/.docs/raw/docs/{(docs) → (getting-started)}/cli.mdx +0 -0
- /package/.docs/raw/docs/{(docs) → (getting-started)}/llm.mdx +0 -0
- /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.
|
|
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.
|
|
604
|
-
"next": "^16.3.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
|
@@ -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/
|
|
96
|
+
<InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/openai"]} />
|
|
97
97
|
</Tab>
|
|
98
98
|
<Tab>
|
|
99
|
-
<InstallCommand npm={["ai", "@assistant-ui/
|
|
99
|
+
<InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/anthropic"]} />
|
|
100
100
|
</Tab>
|
|
101
101
|
<Tab>
|
|
102
|
-
<InstallCommand npm={["ai", "@assistant-ui/
|
|
102
|
+
<InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/azure"]} />
|
|
103
103
|
</Tab>
|
|
104
104
|
<Tab>
|
|
105
|
-
<InstallCommand npm={["ai", "@assistant-ui/
|
|
105
|
+
<InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/amazon-bedrock"]} />
|
|
106
106
|
</Tab>
|
|
107
107
|
<Tab>
|
|
108
|
-
<InstallCommand npm={["ai", "@assistant-ui/
|
|
108
|
+
<InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/google"]} />
|
|
109
109
|
</Tab>
|
|
110
110
|
<Tab>
|
|
111
|
-
<InstallCommand npm={["ai", "@assistant-ui/
|
|
111
|
+
<InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/google-vertex"]} />
|
|
112
112
|
</Tab>
|
|
113
113
|
<Tab>
|
|
114
|
-
<InstallCommand npm={["ai", "@assistant-ui/
|
|
114
|
+
<InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/groq"]} />
|
|
115
115
|
</Tab>
|
|
116
116
|
<Tab>
|
|
117
|
-
<InstallCommand npm={["ai", "@assistant-ui/
|
|
117
|
+
<InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/fireworks"]} />
|
|
118
118
|
</Tab>
|
|
119
119
|
<Tab>
|
|
120
|
-
<InstallCommand npm={["ai", "@assistant-ui/
|
|
120
|
+
<InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "@ai-sdk/cohere"]} />
|
|
121
121
|
</Tab>
|
|
122
122
|
<Tab>
|
|
123
|
-
<InstallCommand npm={["ai", "@assistant-ui/
|
|
123
|
+
<InstallCommand npm={["ai", "@assistant-ui/ai-sdk", "ollama-ai-provider-v2"]} />
|
|
124
124
|
</Tab>
|
|
125
125
|
<Tab>
|
|
126
|
-
<InstallCommand npm={["ai", "@assistant-ui/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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} />
|
package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx
CHANGED
|
@@ -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/
|
|
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>(
|
|
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
|
package/.docs/raw/docs/(reference)/api-reference/integrations/{react-ai-sdk.mdx → ai-sdk.mdx}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "@assistant-ui/
|
|
3
|
-
description: Vercel AI SDK runtime hooks, chat transports, and message conversion utilities for assistant-ui
|
|
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 {
|
|
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/
|
|
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 {...
|
|
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/
|
|
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 {...
|
|
40
|
+
<ParametersTable {...aiSdk_AISDKThreads} />
|
|
41
41
|
|
|
42
42
|
### AISDKToolkit
|
|
43
43
|
|
|
44
|
-
<ParametersTable {...
|
|
44
|
+
<ParametersTable {...aiSdk_AISDKToolkit} />
|
|
45
45
|
|
|
46
46
|
### AssistantChatTransport
|
|
47
47
|
|
|
48
|
-
<ParametersTable {...
|
|
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 {...
|
|
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 {...
|
|
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/
|
|
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 {...
|
|
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/
|
|
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/
|
|
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 {...
|
|
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 {...
|
|
152
|
+
<ParametersTable {...aiSdk_useAISDKRuntime} />
|
|
153
153
|
|
|
154
154
|
### useChatRuntime
|
|
155
155
|
|
|
156
|
-
<ParametersTable {...
|
|
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/
|
|
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/
|
|
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/
|
|
17
|
-
{"Vercel AI SDK runtime hooks, chat transports, and message conversion utilities for assistant-ui
|
|
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/
|
|
50
|
-
Package-level APIs for integrations such as `@assistant-ui/
|
|
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
|
-
<
|
|
339
|
+
<AuiIf condition={(s) => s.composer.dictation != null}>
|
|
340
340
|
<div className="dictation-preview">
|
|
341
341
|
<ComposerPrimitive.DictationTranscript />
|
|
342
342
|
</div>
|
|
343
|
-
</
|
|
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/
|
|
117
|
+
`@assistant-ui/ai-sdk` for the AI SDK implementation).
|
|
118
118
|
|
|
119
119
|
<ParametersTable {...unstable_getInteractableSnapshots} />
|
|
120
120
|
|
|
@@ -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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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 |
|