@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.
- package/.docs/organized/code-examples/waterfall.md +3 -3
- package/.docs/organized/code-examples/with-a2a.md +5 -4
- package/.docs/organized/code-examples/with-ag-ui.md +7 -6
- package/.docs/organized/code-examples/with-ai-sdk-v7.md +14 -13
- package/.docs/organized/code-examples/with-artifacts.md +12 -11
- package/.docs/organized/code-examples/with-assistant-transport.md +6 -5
- package/.docs/organized/code-examples/with-browser-extension.md +6 -6
- package/.docs/organized/code-examples/with-chain-of-thought.md +16 -14
- package/.docs/organized/code-examples/with-cloud-standalone.md +7 -7
- package/.docs/organized/code-examples/with-cloud.md +11 -10
- package/.docs/organized/code-examples/with-custom-thread-list.md +11 -10
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +14 -13
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +15 -14
- package/.docs/organized/code-examples/with-eve.md +6 -5
- package/.docs/organized/code-examples/with-expo.md +213 -36
- package/.docs/organized/code-examples/with-external-store.md +6 -5
- package/.docs/organized/code-examples/with-ffmpeg.md +11 -10
- package/.docs/organized/code-examples/with-generative-ui.md +263 -29
- package/.docs/organized/code-examples/with-google-adk.md +5 -4
- package/.docs/organized/code-examples/with-heat-graph.md +3 -3
- package/.docs/organized/code-examples/with-image-generation.md +8 -7
- package/.docs/organized/code-examples/with-interactables.md +11 -10
- package/.docs/organized/code-examples/with-langchain.md +10 -9
- package/.docs/organized/code-examples/with-langgraph.md +7 -6
- package/.docs/organized/code-examples/with-livekit.md +15 -14
- package/.docs/organized/code-examples/with-mcp.md +14 -12
- package/.docs/organized/code-examples/with-nuxt.md +511 -575
- package/.docs/organized/code-examples/with-opencode.md +4 -4
- package/.docs/organized/code-examples/with-openui.md +450 -0
- package/.docs/organized/code-examples/with-pi.md +6 -5
- package/.docs/organized/code-examples/with-react-hook-form.md +16 -13
- package/.docs/organized/code-examples/with-react-ink-web.md +65 -15
- package/.docs/organized/code-examples/with-react-ink.md +5 -4
- package/.docs/organized/code-examples/with-react-router.md +8 -7
- package/.docs/organized/code-examples/with-resumable-stream.md +13 -12
- package/.docs/organized/code-examples/with-store.md +3 -3
- package/.docs/organized/code-examples/with-svelte.md +415 -0
- package/.docs/organized/code-examples/with-sveltekit.md +1061 -0
- package/.docs/organized/code-examples/with-tanstack.md +10 -9
- package/.docs/organized/code-examples/with-tap-runtime.md +5 -4
- package/.docs/organized/code-examples/with-virtualized-thread.md +6 -5
- package/.docs/organized/code-examples/with-vue.md +2 -2
- package/.docs/raw/docs/{(docs) → (getting-started)}/cli.mdx +6 -1
- 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 +26 -26
- 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/generative-ui/slack.mdx +5 -1
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/teams.mdx +9 -2
- package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +2 -2
- package/.docs/raw/docs/(reference)/api-reference/integrations/{react-ai-sdk.mdx → ai-sdk.mdx} +43 -18
- package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +61 -2
- 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/tools/status.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 +32 -1
- package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +1 -1
- package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +10 -10
- package/.docs/raw/docs/cloud/ai-sdk.mdx +4 -2
- package/.docs/raw/docs/cloud/index.mdx +1 -1
- package/.docs/raw/docs/copilots/assistant-frame.mdx +19 -8
- package/.docs/raw/docs/guides/attachments.mdx +4 -4
- package/.docs/raw/docs/guides/branching.mdx +1 -1
- package/.docs/raw/docs/guides/chatgpt-subscription.mdx +1 -1
- package/.docs/raw/docs/guides/context-api.mdx +15 -17
- package/.docs/raw/docs/guides/dictation.mdx +2 -2
- package/.docs/raw/docs/guides/electron.mdx +1 -1
- package/.docs/raw/docs/guides/latex.mdx +1 -1
- package/.docs/raw/docs/guides/mentions.mdx +2 -0
- 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 +8 -5
- 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/ink/primitives.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 +149 -131
- package/.docs/raw/docs/migrations/toolkit-tools.mdx +2 -2
- package/.docs/raw/docs/migrations/v0-15.mdx +34 -0
- 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 +4 -2
- package/.docs/raw/docs/primitives/thread-list.mdx +1 -1
- package/.docs/raw/docs/primitives/thread.mdx +2 -2
- 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 +48 -6
- 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/claude-managed-agents.mdx +118 -0
- 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/stability.mdx +2 -1
- package/.docs/raw/docs/runtimes/concepts/threads.mdx +73 -33
- package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +1 -1
- package/.docs/raw/docs/runtimes/custom/external-store.mdx +6 -2
- package/.docs/raw/docs/runtimes/langchain.mdx +2 -2
- package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +4 -0
- package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +1 -1
- package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +9 -2
- package/.docs/raw/docs/tools/backend.mdx +4 -4
- package/.docs/raw/docs/tools/defining-tools.mdx +21 -2
- package/.docs/raw/docs/tools/generative-ui-primitive.mdx +180 -0
- package/.docs/raw/docs/tools/generative-ui-slack.mdx +167 -0
- package/.docs/raw/docs/tools/generative-ui-teams.mdx +160 -0
- package/.docs/raw/docs/tools/generative-ui.mdx +224 -211
- package/.docs/raw/docs/tools/index.mdx +2 -1
- package/.docs/raw/docs/tools/interactables.mdx +8 -7
- 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 +175 -0
- package/.docs/raw/docs/tools/tool-ui.mdx +18 -7
- package/.docs/raw/docs/tools/user-managed-mcp.mdx +7 -3
- 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 +50 -3
- 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 +2 -2
- package/.docs/raw/docs/ui/follow-up-suggestions.mdx +1 -1
- package/.docs/raw/docs/ui/image.mdx +2 -2
- 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 +5 -5
- 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/tools/interactables-legacy.mdx +0 -423
- 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)}/llm.mdx +0 -0
- /package/.docs/raw/docs/{(docs) → (getting-started)}/rtl.mdx +0 -0
|
@@ -65,13 +65,13 @@
|
|
|
65
65
|
"@assistant-ui/react": "workspace:*",
|
|
66
66
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
67
67
|
"@tailwindcss/vite": "^4.3.3",
|
|
68
|
-
"@tanstack/react-router": "^1.170.
|
|
69
|
-
"@tanstack/react-start": "^1.168.
|
|
68
|
+
"@tanstack/react-router": "^1.170.32",
|
|
69
|
+
"@tanstack/react-start": "^1.168.49",
|
|
70
70
|
"class-variance-authority": "^0.7.1",
|
|
71
71
|
"clsx": "^2.1.1",
|
|
72
|
-
"lucide-react": "^1.
|
|
72
|
+
"lucide-react": "^1.33.0",
|
|
73
73
|
"nitro": "^3.0.260311-beta",
|
|
74
|
-
"openai": "^7.
|
|
74
|
+
"openai": "^7.5.0",
|
|
75
75
|
"react": "^19.2.8",
|
|
76
76
|
"react-dom": "^19.2.8",
|
|
77
77
|
"remark-gfm": "^4.0.1",
|
|
@@ -81,12 +81,12 @@
|
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
84
|
-
"@types/node": "^26.
|
|
84
|
+
"@types/node": "^26.2.0",
|
|
85
85
|
"@types/react": "^19.2.18",
|
|
86
|
-
"@types/react-dom": "^19.2.
|
|
87
|
-
"@vitejs/plugin-react": "^6.0
|
|
86
|
+
"@types/react-dom": "^19.2.5",
|
|
87
|
+
"@vitejs/plugin-react": "^6.1.0",
|
|
88
88
|
"typescript": "^7.0.2",
|
|
89
|
-
"vite": "^8.2.
|
|
89
|
+
"vite": "^8.2.2"
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -463,7 +463,7 @@ export const chatStream = createServerFn({ method: "POST" })
|
|
|
463
463
|
});
|
|
464
464
|
|
|
465
465
|
const stream = await openai.chat.completions.create({
|
|
466
|
-
model: "gpt-5.
|
|
466
|
+
model: "gpt-5.6-luna",
|
|
467
467
|
messages: data.messages,
|
|
468
468
|
stream: true,
|
|
469
469
|
});
|
|
@@ -748,6 +748,7 @@ export const chatStream = createServerFn({ method: "POST" })
|
|
|
748
748
|
"@/components/assistant-ui/*": [
|
|
749
749
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
750
750
|
],
|
|
751
|
+
"@/hooks/*": ["../../packages/ui/src/hooks/*"],
|
|
751
752
|
"@/components/ui/*": [
|
|
752
753
|
"../../packages/ui/src/components/ui/base/*",
|
|
753
754
|
"../../packages/ui/src/components/ui/radix/*"
|
|
@@ -600,8 +600,8 @@ export default withAui(nextConfig);
|
|
|
600
600
|
"@assistant-ui/ui": "workspace:*",
|
|
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"
|
|
@@ -610,9 +610,9 @@ export default withAui(nextConfig);
|
|
|
610
610
|
"@assistant-ui/next": "workspace:*",
|
|
611
611
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
612
612
|
"@tailwindcss/postcss": "^4.3.3",
|
|
613
|
-
"@types/node": "^26.
|
|
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",
|
|
@@ -785,6 +785,7 @@ You can extend this example to:
|
|
|
785
785
|
"@/components/assistant-ui/*": [
|
|
786
786
|
"../../packages/ui/src/components/assistant-ui/*"
|
|
787
787
|
],
|
|
788
|
+
"@/hooks/*": ["../../packages/ui/src/hooks/*"],
|
|
788
789
|
"@/components/ui/*": [
|
|
789
790
|
"../../packages/ui/src/components/ui/base/*",
|
|
790
791
|
"../../packages/ui/src/components/ui/radix/*"
|
|
@@ -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"
|
|
@@ -610,9 +610,9 @@ export default withAui(nextConfig);
|
|
|
610
610
|
"@assistant-ui/next": "workspace:*",
|
|
611
611
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
612
612
|
"@tailwindcss/postcss": "^4.3.3",
|
|
613
|
-
"@types/node": "^26.
|
|
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
|
|
|
@@ -78,6 +78,7 @@ Use `--example` to create a project from one of the monorepo examples with full
|
|
|
78
78
|
| `with-chain-of-thought` | Chain-of-thought reasoning, tool calls, and source citations | `npx assistant-ui create my-app -e with-chain-of-thought` |
|
|
79
79
|
| `with-external-store` | External message store | `npx assistant-ui create my-app -e with-external-store` |
|
|
80
80
|
| `with-interactables` | AI-driven interactive UI components | `npx assistant-ui create my-app -e with-interactables` |
|
|
81
|
+
| `with-openui` | [OpenUI](/docs/tools/openui) generative UI integration | `npx assistant-ui create my-app -e with-openui` |
|
|
81
82
|
| `with-custom-thread-list` | Custom thread list UI | `npx assistant-ui create my-app -e with-custom-thread-list` |
|
|
82
83
|
| `with-react-hook-form` | React Hook Form integration | `npx assistant-ui create my-app -e with-react-hook-form` |
|
|
83
84
|
| `with-ffmpeg` | FFmpeg video processing tool | `npx assistant-ui create my-app -e with-ffmpeg` |
|
|
@@ -233,11 +234,15 @@ This command:
|
|
|
233
234
|
- Prompts to install new packages
|
|
234
235
|
|
|
235
236
|
**What it does:**
|
|
236
|
-
- Applies
|
|
237
|
+
- Applies the current bundled codemods sequentially
|
|
237
238
|
- Shows progress bar with file count
|
|
238
239
|
- Reports any transformation errors
|
|
239
240
|
- Automatically detects and offers to install new dependencies
|
|
240
241
|
|
|
242
|
+
The latest upgrade excludes the historical v0.8 UI package split because its
|
|
243
|
+
`@assistant-ui/react-ui` destination is incompatible with current runtime versions.
|
|
244
|
+
Do not run `codemod v0-8/ui-package-split` as part of a v0.15 upgrade.
|
|
245
|
+
|
|
241
246
|
**Example output:**
|
|
242
247
|
|
|
243
248
|
```bash
|
|
@@ -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() {
|
|
@@ -467,8 +467,8 @@ export default function MyApp() {
|
|
|
467
467
|
/>
|
|
468
468
|
<Card
|
|
469
469
|
title="Generative UI"
|
|
470
|
-
description="
|
|
471
|
-
href="/docs/tools/
|
|
470
|
+
description="Let the model compose UI from a component vocabulary you ship"
|
|
471
|
+
href="/docs/tools/generative-ui"
|
|
472
472
|
/>
|
|
473
473
|
<Card
|
|
474
474
|
title="Add Persistence"
|
|
@@ -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
|
|
@@ -63,7 +63,11 @@ The blocks and non-fatal warnings produced by Slack conversion.
|
|
|
63
63
|
|
|
64
64
|
### SlackConversionWarning
|
|
65
65
|
|
|
66
|
-
A non-fatal
|
|
66
|
+
A non-fatal note reported during Slack conversion.
|
|
67
|
+
|
|
68
|
+
`clamped` removed content to fit a limit, `dropped` discarded a node or one
|
|
69
|
+
of its props and may leave a placeholder note behind, and `fallback` emitted
|
|
70
|
+
the node in a different form than requested.
|
|
67
71
|
|
|
68
72
|
<ParametersTable {...SlackConversionWarning} />
|
|
69
73
|
|
|
@@ -50,14 +50,21 @@ The attachments and non-fatal warnings produced by [toTeamsAttachments](/docs/ap
|
|
|
50
50
|
|
|
51
51
|
### TeamsConversionWarning
|
|
52
52
|
|
|
53
|
-
A non-fatal
|
|
53
|
+
A non-fatal note reported during Teams conversion.
|
|
54
|
+
|
|
55
|
+
`clamped` removed content to fit a limit, `dropped` discarded a node or one
|
|
56
|
+
of its props and may leave a placeholder note behind, and `fallback`
|
|
57
|
+
emitted the node in a different form than requested. `advisory` changed
|
|
58
|
+
nothing at all and notes content Teams may still render poorly or refuse,
|
|
59
|
+
such as a payload over the byte budget or a `Row` past the recommended
|
|
60
|
+
column count.
|
|
54
61
|
|
|
55
62
|
<ParametersTable {...TeamsConversionWarning} />
|
|
56
63
|
|
|
57
64
|
### toAdaptiveCard
|
|
58
65
|
|
|
59
66
|
Converts a generative-ui tree into a Microsoft Teams Adaptive Card and
|
|
60
|
-
non-fatal
|
|
67
|
+
non-fatal conversion warnings. Sizes, weights, and colors map to Adaptive
|
|
61
68
|
Card's semantic enums rather than raw values. An Input/Select/RadioGroup/
|
|
62
69
|
Checkbox/DatePicker whose id would be the reserved RESERVED_INPUT_ID
|
|
63
70
|
is renamed with a warning (see `decodeSubmitData`). Never throws: an
|
|
@@ -33,7 +33,7 @@ function QuoteBlock() {
|
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
```ts
|
|
36
|
-
const useMessageQuote: () => QuoteInfo;
|
|
36
|
+
const useMessageQuote: () => QuoteInfo | undefined;
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
### useMessageTiming
|
|
@@ -51,7 +51,7 @@ function MessageStats() {
|
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
```ts
|
|
54
|
-
const useMessageTiming: () => MessageTiming;
|
|
54
|
+
const useMessageTiming: () => MessageTiming | undefined;
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
### useRuntimeAdapters
|
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. */}
|
|
@@ -14,19 +14,44 @@ import { reactAiSdk_AISDKToolkit, reactAiSdk_AssistantChatTransport, reactAiSdk_
|
|
|
14
14
|
|
|
15
15
|
## API Reference
|
|
16
16
|
|
|
17
|
+
### AISDKChat
|
|
18
|
+
|
|
19
|
+
`AuiConfig` entry that runs the AI SDK chat as the `threads` scope. Hosts the
|
|
20
|
+
same orchestration as `useChatRuntime` inside the client's own resource tree,
|
|
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/ai-sdk#aisdkthreads). The chat
|
|
23
|
+
id is captured when the entry mounts, so a later `id` change in the options
|
|
24
|
+
has no effect.
|
|
25
|
+
|
|
26
|
+
<ParametersTable {...aiSdk_AISDKChat} />
|
|
27
|
+
|
|
28
|
+
### AISDKThreads
|
|
29
|
+
|
|
30
|
+
`AuiConfig` entry that runs one AI SDK chat per thread. Hosts the same
|
|
31
|
+
per-thread orchestration as [AISDKChat](/docs/api-reference/integrations/ai-sdk#aisdkchat) inside the client's own
|
|
32
|
+
resource tree, so it works with any `AssistantClient` host, React or not.
|
|
33
|
+
Without `cloud`, threads live in memory for the client's lifetime and keep
|
|
34
|
+
their history across switches; each thread's chat id is its thread id.
|
|
35
|
+
With `cloud`, the list is a `RemoteThreadList` and the factory is keyed so
|
|
36
|
+
cloud history reloads on a switch. The store entry mounts only the visible
|
|
37
|
+
thread, so a switch cancels an in-flight run. Model context is
|
|
38
|
+
registered on the visible thread only.
|
|
39
|
+
|
|
40
|
+
<ParametersTable {...aiSdk_AISDKThreads} />
|
|
41
|
+
|
|
17
42
|
### AISDKToolkit
|
|
18
43
|
|
|
19
|
-
<ParametersTable {...
|
|
44
|
+
<ParametersTable {...aiSdk_AISDKToolkit} />
|
|
20
45
|
|
|
21
46
|
### AssistantChatTransport
|
|
22
47
|
|
|
23
|
-
<ParametersTable {...
|
|
48
|
+
<ParametersTable {...aiSdk_AssistantChatTransport} />
|
|
24
49
|
|
|
25
50
|
### createResumableSessionStorage
|
|
26
51
|
|
|
27
52
|
`sessionStorage`-backed storage for the pending resumable stream id. See the [Resumable Streams](/docs/guides/resumable-streams) guide for end-to-end wiring.
|
|
28
53
|
|
|
29
|
-
<ParametersTable {...
|
|
54
|
+
<ParametersTable {...aiSdk_createResumableSessionStorage} />
|
|
30
55
|
|
|
31
56
|
### frontendTools
|
|
32
57
|
|
|
@@ -36,7 +61,7 @@ const frontendTools: (tools: FrontendTools) => ToolSet;
|
|
|
36
61
|
|
|
37
62
|
### getThreadMessageTokenUsage
|
|
38
63
|
|
|
39
|
-
<ParametersTable {...
|
|
64
|
+
<ParametersTable {...aiSdk_getThreadMessageTokenUsage} />
|
|
40
65
|
|
|
41
66
|
### injectQuoteContext
|
|
42
67
|
|
|
@@ -47,7 +72,7 @@ sees the quoted text that the user is referring to.
|
|
|
47
72
|
|
|
48
73
|
```ts
|
|
49
74
|
import { convertToModelMessages, streamText } from "ai";
|
|
50
|
-
import { injectQuoteContext } from "@assistant-ui/
|
|
75
|
+
import { injectQuoteContext } from "@assistant-ui/ai-sdk";
|
|
51
76
|
|
|
52
77
|
export async function POST(req: Request) {
|
|
53
78
|
const { messages } = await req.json();
|
|
@@ -59,7 +84,7 @@ export async function POST(req: Request) {
|
|
|
59
84
|
}
|
|
60
85
|
```
|
|
61
86
|
|
|
62
|
-
<ParametersTable {...
|
|
87
|
+
<ParametersTable {...aiSdk_injectQuoteContext} />
|
|
63
88
|
|
|
64
89
|
### RESUMABLE_STREAM_ID_HEADER
|
|
65
90
|
|
|
@@ -73,7 +98,7 @@ const RESUMABLE_STREAM_ID_HEADER: "x-resumable-stream-id";
|
|
|
73
98
|
|
|
74
99
|
Injects interactable state snapshots into messages as model-visible text.
|
|
75
100
|
|
|
76
|
-
Mirrors [injectQuoteContext](/docs/api-reference/integrations/
|
|
101
|
+
Mirrors [injectQuoteContext](/docs/api-reference/integrations/ai-sdk#injectquotecontext): reads the frozen snapshot stamped on a user
|
|
77
102
|
message's `metadata.custom.interactables` (by the interactables scope at send
|
|
78
103
|
time) and prepends a text part. Run this in your route handler before
|
|
79
104
|
`convertToModelMessages`, which otherwise ignores `metadata.custom`.
|
|
@@ -87,7 +112,7 @@ only the fields that changed since the model's last known state.
|
|
|
87
112
|
|
|
88
113
|
```ts
|
|
89
114
|
import { convertToModelMessages, streamText } from "ai";
|
|
90
|
-
import { unstable_injectInteractableContext } from "@assistant-ui/
|
|
115
|
+
import { unstable_injectInteractableContext } from "@assistant-ui/ai-sdk";
|
|
91
116
|
|
|
92
117
|
export async function POST(req: Request) {
|
|
93
118
|
const { messages } = await req.json();
|
|
@@ -99,7 +124,7 @@ export async function POST(req: Request) {
|
|
|
99
124
|
}
|
|
100
125
|
```
|
|
101
126
|
|
|
102
|
-
<ParametersTable {...
|
|
127
|
+
<ParametersTable {...aiSdk_unstable_injectInteractableContext} />
|
|
103
128
|
|
|
104
129
|
### useAISDKChat
|
|
105
130
|
|
|
@@ -109,7 +134,7 @@ runtime hook. `undefined` when the current thread is not backed by the AI
|
|
|
109
134
|
SDK runtime.
|
|
110
135
|
|
|
111
136
|
```ts
|
|
112
|
-
const useAISDKChat: <UI_MESSAGE extends UIMessage = UIMessage<unknown, UIDataTypes, UITools>>() => UseChatHelpers<UI_MESSAGE
|
|
137
|
+
const useAISDKChat: <UI_MESSAGE extends UIMessage = UIMessage<unknown, UIDataTypes, UITools>>() => UseChatHelpers<UI_MESSAGE> | undefined;
|
|
113
138
|
```
|
|
114
139
|
|
|
115
140
|
### useAISDKError
|
|
@@ -119,27 +144,27 @@ Read the last AI SDK chat error object from the runtime extras.
|
|
|
119
144
|
the AI SDK runtime.
|
|
120
145
|
|
|
121
146
|
```ts
|
|
122
|
-
const useAISDKError: () => Error;
|
|
147
|
+
const useAISDKError: () => Error | undefined;
|
|
123
148
|
```
|
|
124
149
|
|
|
125
150
|
### useAISDKRuntime
|
|
126
151
|
|
|
127
|
-
<ParametersTable {...
|
|
152
|
+
<ParametersTable {...aiSdk_useAISDKRuntime} />
|
|
128
153
|
|
|
129
154
|
### useChatRuntime
|
|
130
155
|
|
|
131
|
-
<ParametersTable {...
|
|
156
|
+
<ParametersTable {...aiSdk_useChatRuntime} />
|
|
132
157
|
|
|
133
158
|
### useThreadTokenUsage
|
|
134
159
|
|
|
135
160
|
```ts
|
|
136
|
-
function useThreadTokenUsage(): ThreadTokenUsage;
|
|
161
|
+
function useThreadTokenUsage(): ThreadTokenUsage | undefined;
|
|
137
162
|
```
|
|
138
163
|
|
|
139
164
|
### generativeTools
|
|
140
165
|
|
|
141
166
|
<Callout type="warn">
|
|
142
|
-
<strong>Deprecated.</strong> Use [AISDKToolkit](/docs/api-reference/integrations/
|
|
167
|
+
<strong>Deprecated.</strong> Use [AISDKToolkit](/docs/api-reference/integrations/ai-sdk#aisdktoolkit) instead:
|
|
143
168
|
`new AISDKToolkit({ toolkit }).tools({ frontend })`. It is a strict superset
|
|
144
169
|
(it also opens MCP server connections), so it replaces `generativeTools`
|
|
145
170
|
everywhere. The `frontendTools` option is named `frontend` on `.tools()`, and
|