@assistant-ui/mcp-docs-server 0.1.30 → 0.1.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/organized/code-examples/waterfall.md +8 -8
- package/.docs/organized/code-examples/with-a2a.md +10 -10
- package/.docs/organized/code-examples/with-ag-ui.md +12 -12
- package/.docs/organized/code-examples/with-ai-sdk-v6.md +14 -14
- package/.docs/organized/code-examples/with-artifacts.md +14 -14
- package/.docs/organized/code-examples/with-assistant-transport.md +11 -11
- package/.docs/organized/code-examples/with-browser-extension.md +345 -0
- package/.docs/organized/code-examples/with-chain-of-thought.md +129 -63
- package/.docs/organized/code-examples/with-cloud-standalone.md +13 -13
- package/.docs/organized/code-examples/with-cloud.md +13 -13
- package/.docs/organized/code-examples/with-custom-thread-list.md +65 -20
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +18 -17
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +18 -17
- package/.docs/organized/code-examples/with-expo.md +25 -25
- package/.docs/organized/code-examples/with-external-store.md +10 -10
- package/.docs/organized/code-examples/with-ffmpeg.md +14 -14
- package/.docs/organized/code-examples/with-generative-ui.md +211 -14
- package/.docs/organized/code-examples/with-google-adk.md +12 -12
- package/.docs/organized/code-examples/with-heat-graph.md +8 -8
- package/.docs/organized/code-examples/with-image-generation.md +454 -0
- package/.docs/organized/code-examples/with-interactables.md +14 -14
- package/.docs/organized/code-examples/with-langchain.md +12 -12
- package/.docs/organized/code-examples/with-langgraph.md +15 -12
- package/.docs/organized/code-examples/with-livekit.md +19 -18
- package/.docs/organized/code-examples/with-mcp.md +748 -0
- package/.docs/organized/code-examples/with-opencode.md +107 -62
- package/.docs/organized/code-examples/with-parent-id-grouping.md +12 -12
- package/.docs/organized/code-examples/with-react-hook-form.md +14 -14
- package/.docs/organized/code-examples/with-react-ink.md +4 -4
- package/.docs/organized/code-examples/with-react-router.md +16 -16
- package/.docs/organized/code-examples/with-resumable-stream.md +660 -0
- package/.docs/organized/code-examples/with-store.md +8 -8
- package/.docs/organized/code-examples/with-tanstack.md +14 -14
- package/.docs/organized/code-examples/with-tap-runtime.md +11 -10
- package/.docs/raw/docs/(docs)/cli.mdx +3 -1
- package/.docs/raw/docs/(docs)/copilots/assistant-frame.mdx +1 -0
- package/.docs/raw/docs/(docs)/copilots/make-assistant-tool-ui.mdx +10 -3
- package/.docs/raw/docs/(docs)/copilots/make-assistant-tool.mdx +8 -3
- package/.docs/raw/docs/(docs)/copilots/make-assistant-visible.mdx +1 -0
- package/.docs/raw/docs/(docs)/copilots/model-context.mdx +1 -0
- package/.docs/raw/docs/(docs)/copilots/motivation.mdx +1 -0
- package/.docs/raw/docs/(docs)/copilots/use-assistant-instructions.mdx +1 -0
- package/.docs/raw/docs/(docs)/devtools.mdx +1 -0
- package/.docs/raw/docs/(docs)/index.mdx +3 -2
- package/.docs/raw/docs/(docs)/installation.mdx +2 -1
- package/.docs/raw/docs/(docs)/rtl.mdx +1 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +36 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/feedback.mdx +20 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +34 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/model.mdx +44 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +55 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +20 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +20 -0
- package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +37 -8
- package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +22 -0
- package/.docs/raw/docs/(reference)/api-reference/context-providers/scoped-providers.mdx +64 -0
- package/.docs/raw/docs/(reference)/api-reference/external-store/index.mdx +22 -0
- package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +52 -0
- package/.docs/raw/docs/(reference)/api-reference/external-store/runtime.mdx +36 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +98 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +31 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +33 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +640 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +28 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +94 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/utilities.mdx +464 -0
- package/.docs/raw/docs/(reference)/api-reference/integrations/cloud-ai-sdk.mdx +24 -0
- package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +22 -0
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-ai-sdk.mdx +79 -0
- package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +52 -0
- package/.docs/raw/docs/(reference)/api-reference/model-context/index.mdx +22 -0
- package/.docs/raw/docs/(reference)/api-reference/model-context/registry.mdx +20 -0
- package/.docs/raw/docs/(reference)/api-reference/overview.mdx +125 -125
- package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar-more.mdx +78 -221
- package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +127 -242
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +46 -20
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-modal.mdx +66 -87
- package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +50 -58
- package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +80 -48
- package/.docs/raw/docs/(reference)/api-reference/primitives/chain-of-thought.mdx +67 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +323 -461
- package/.docs/raw/docs/(reference)/api-reference/primitives/error.mdx +36 -43
- package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +70 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +63 -245
- package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +182 -554
- package/.docs/raw/docs/(reference)/api-reference/primitives/queue-item.mdx +65 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +35 -22
- package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +57 -140
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item-more.mdx +70 -161
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item.mdx +84 -108
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +82 -86
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +173 -314
- package/.docs/raw/docs/(reference)/api-reference/runtimes/assistant-runtime.mdx +9 -21
- package/.docs/raw/docs/(reference)/api-reference/runtimes/attachment-runtime.mdx +10 -21
- package/.docs/raw/docs/(reference)/api-reference/runtimes/composer-runtime.mdx +15 -70
- package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +43 -0
- package/.docs/raw/docs/(reference)/api-reference/runtimes/message-part-runtime.mdx +25 -28
- package/.docs/raw/docs/(reference)/api-reference/runtimes/message-runtime.mdx +11 -63
- package/.docs/raw/docs/(reference)/api-reference/runtimes/queue-state.mdx +20 -0
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-item-runtime.mdx +11 -48
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +10 -42
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-runtime.mdx +18 -30
- package/.docs/raw/docs/(reference)/api-reference/tools/component-tools.mdx +68 -0
- package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +39 -0
- package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +79 -0
- package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +42 -0
- package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +92 -0
- package/.docs/raw/docs/(reference)/api-reference/transport/assistant-transport.mdx +48 -0
- package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +62 -0
- package/.docs/raw/docs/(reference)/api-reference/transport/index.mdx +22 -0
- package/.docs/raw/docs/(reference)/api-reference/utilities/index.mdx +19 -0
- package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +131 -0
- package/.docs/raw/docs/(reference)/api-reference/voice/index.mdx +22 -0
- package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +54 -0
- package/.docs/raw/docs/(reference)/api-reference/voice/speech-dictation.mdx +36 -0
- package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +230 -2
- package/.docs/raw/docs/cloud/ai-sdk.mdx +222 -4
- package/.docs/raw/docs/cloud/index.mdx +2 -2
- package/.docs/raw/docs/cloud/langgraph.mdx +274 -2
- package/.docs/raw/docs/{(docs)/guides → guides}/attachments.mdx +45 -40
- package/.docs/raw/docs/guides/branching.mdx +76 -0
- package/.docs/raw/docs/guides/chain-of-thought.mdx +166 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/context-api.mdx +54 -26
- package/.docs/raw/docs/{(docs)/guides → guides}/dictation.mdx +3 -1
- package/.docs/raw/docs/guides/editing.mdx +102 -0
- package/.docs/raw/docs/guides/generative-ui.mdx +142 -0
- package/.docs/raw/docs/guides/image-generation.mdx +74 -0
- package/.docs/raw/docs/guides/index.mdx +103 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/interactables.mdx +51 -2
- package/.docs/raw/docs/{(docs)/guides → guides}/latex.mdx +53 -10
- package/.docs/raw/docs/guides/mcp-apps.mdx +231 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/mentions.mdx +63 -88
- package/.docs/raw/docs/{(docs)/guides → guides}/message-timing.mdx +45 -6
- package/.docs/raw/docs/{(docs)/guides → guides}/multi-agent.mdx +66 -6
- package/.docs/raw/docs/{(docs)/guides → guides}/quoting.mdx +11 -18
- package/.docs/raw/docs/guides/resumable-stream-deployment.mdx +212 -0
- package/.docs/raw/docs/guides/resumable-stream-stores.mdx +152 -0
- package/.docs/raw/docs/guides/resumable-streams.mdx +210 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/slash-commands.mdx +104 -38
- package/.docs/raw/docs/guides/speech.mdx +156 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/suggestions.mdx +91 -69
- package/.docs/raw/docs/{(docs)/guides → guides}/tool-ui.mdx +110 -38
- package/.docs/raw/docs/{(docs)/guides → guides}/tools.mdx +197 -40
- package/.docs/raw/docs/{(docs)/guides → guides}/voice.mdx +41 -2
- package/.docs/raw/docs/ink/adapters.mdx +37 -1
- package/.docs/raw/docs/ink/custom-backend.mdx +59 -8
- package/.docs/raw/docs/ink/index.mdx +11 -14
- package/.docs/raw/docs/ink/migration.mdx +1 -3
- package/.docs/raw/docs/ink/primitives.mdx +386 -9
- package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +520 -0
- package/.docs/raw/docs/integrations/auth/better-auth.mdx +191 -0
- package/.docs/raw/docs/integrations/auth/clerk.mdx +172 -0
- package/.docs/raw/docs/integrations/auth/next-auth.mdx +196 -0
- package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +79 -0
- package/.docs/raw/docs/integrations/frameworks/cloudflare-agents/overview.mdx +282 -0
- package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +188 -0
- package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +57 -0
- package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +201 -0
- package/.docs/raw/docs/integrations/gateways/index.mdx +162 -0
- package/.docs/raw/docs/integrations/index.mdx +185 -0
- package/.docs/raw/docs/integrations/observability/helicone.mdx +130 -0
- package/.docs/raw/docs/integrations/observability/langfuse.mdx +163 -0
- package/.docs/raw/docs/integrations/observability/langsmith.mdx +150 -0
- package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +712 -0
- package/.docs/raw/docs/integrations/tools/mcp.mdx +267 -0
- package/.docs/raw/docs/integrations/tools/react-mcp.mdx +337 -0
- package/.docs/raw/docs/migrations/v0-14.mdx +297 -0
- package/.docs/raw/docs/primitives/action-bar.mdx +1 -0
- package/.docs/raw/docs/primitives/assistant-modal.mdx +1 -0
- package/.docs/raw/docs/primitives/attachment.mdx +1 -0
- package/.docs/raw/docs/primitives/branch-picker.mdx +1 -0
- package/.docs/raw/docs/primitives/chain-of-thought.mdx +90 -85
- package/.docs/raw/docs/primitives/composer.mdx +55 -1
- package/.docs/raw/docs/primitives/error.mdx +1 -0
- package/.docs/raw/docs/primitives/index.mdx +4 -3
- package/.docs/raw/docs/primitives/message.mdx +68 -5
- package/.docs/raw/docs/primitives/selection-toolbar.mdx +1 -0
- package/.docs/raw/docs/primitives/suggestion.mdx +10 -0
- package/.docs/raw/docs/primitives/thread-list.mdx +39 -0
- package/.docs/raw/docs/primitives/thread.mdx +16 -13
- package/.docs/raw/docs/react-native/hooks.mdx +2 -2
- package/.docs/raw/docs/react-native/index.mdx +5 -7
- package/.docs/raw/docs/react-native/migration.mdx +1 -3
- package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +396 -0
- package/.docs/raw/docs/runtimes/a2a/overview.mdx +60 -0
- package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +216 -0
- package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +70 -0
- package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +243 -0
- package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +154 -0
- package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +52 -0
- package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +73 -128
- package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +70 -64
- package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +337 -123
- package/.docs/raw/docs/runtimes/concepts/adapters.mdx +265 -0
- package/.docs/raw/docs/runtimes/concepts/architecture.mdx +125 -0
- package/.docs/raw/docs/runtimes/concepts/stability.mdx +67 -0
- package/.docs/raw/docs/runtimes/concepts/threads.mdx +428 -0
- package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +703 -0
- package/.docs/raw/docs/runtimes/custom/data-stream.mdx +348 -0
- package/.docs/raw/docs/runtimes/custom/external-store.mdx +261 -1236
- package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +746 -0
- package/.docs/raw/docs/runtimes/custom/overview.mdx +71 -0
- package/.docs/raw/docs/runtimes/google-adk/api.mdx +256 -0
- package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +717 -0
- package/.docs/raw/docs/runtimes/google-adk/overview.mdx +69 -0
- package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +229 -0
- package/.docs/raw/docs/runtimes/langchain.mdx +533 -0
- package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +305 -0
- package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +104 -0
- package/.docs/raw/docs/runtimes/langgraph/overview.mdx +84 -0
- package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +496 -0
- package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +127 -0
- package/.docs/raw/docs/runtimes/langgraph/threads.mdx +113 -0
- package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +3 -3
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -23
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +1 -1
- package/.docs/raw/docs/runtimes/opencode/hooks.mdx +191 -0
- package/.docs/raw/docs/runtimes/opencode/overview.mdx +48 -0
- package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +119 -0
- package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +78 -203
- package/.docs/raw/docs/ui/accordion.mdx +1 -0
- package/.docs/raw/docs/ui/assistant-modal.mdx +1 -0
- package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -0
- package/.docs/raw/docs/ui/attachment.mdx +1 -0
- package/.docs/raw/docs/ui/badge.mdx +1 -0
- package/.docs/raw/docs/ui/composer-trigger-popover.mdx +12 -1
- package/.docs/raw/docs/ui/context-display.mdx +1 -0
- package/.docs/raw/docs/ui/diff-viewer.mdx +1 -0
- package/.docs/raw/docs/ui/directive-text.mdx +1 -0
- package/.docs/raw/docs/ui/file.mdx +1 -0
- package/.docs/raw/docs/ui/image.mdx +1 -0
- package/.docs/raw/docs/ui/markdown.mdx +2 -14
- package/.docs/raw/docs/ui/mcp-config.mdx +102 -0
- package/.docs/raw/docs/ui/mermaid.mdx +1 -0
- package/.docs/raw/docs/ui/message-timing.mdx +3 -2
- package/.docs/raw/docs/ui/model-selector.mdx +9 -8
- package/.docs/raw/docs/ui/part-grouping.mdx +325 -313
- package/.docs/raw/docs/ui/quote.mdx +1 -0
- package/.docs/raw/docs/ui/reasoning.mdx +66 -33
- package/.docs/raw/docs/ui/scrollbar.mdx +1 -0
- package/.docs/raw/docs/ui/select.mdx +1 -0
- package/.docs/raw/docs/ui/sources.mdx +18 -0
- package/.docs/raw/docs/ui/streamdown.mdx +35 -2
- package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -0
- package/.docs/raw/docs/ui/tabs.mdx +1 -0
- package/.docs/raw/docs/ui/thread-list.mdx +19 -2
- package/.docs/raw/docs/ui/thread.mdx +58 -3
- package/.docs/raw/docs/ui/tool-fallback.mdx +1 -0
- package/.docs/raw/docs/ui/tool-group.mdx +39 -11
- package/.docs/raw/docs/ui/voice.mdx +1 -0
- package/.docs/raw/docs/utilities/heat-graph.mdx +1 -0
- package/.docs/raw/docs/utilities/react-o11y.mdx +278 -0
- package/.docs/raw/docs/utilities/tw-shimmer.mdx +1 -0
- package/README.md +14 -72
- package/dist/constants.d.ts +12 -9
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +13 -9
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -24
- package/dist/index.js.map +1 -1
- package/dist/prepare-docs/code-examples.d.ts +4 -1
- package/dist/prepare-docs/code-examples.d.ts.map +1 -1
- package/dist/prepare-docs/code-examples.js +109 -121
- package/dist/prepare-docs/code-examples.js.map +1 -1
- package/dist/prepare-docs/copy-raw.d.ts +4 -1
- package/dist/prepare-docs/copy-raw.d.ts.map +1 -1
- package/dist/prepare-docs/copy-raw.js +45 -42
- package/dist/prepare-docs/copy-raw.js.map +1 -1
- package/dist/prepare-docs/prepare.d.ts +1 -2
- package/dist/prepare-docs/prepare.js +17 -17
- package/dist/prepare-docs/prepare.js.map +1 -1
- package/dist/stdio.d.ts +1 -3
- package/dist/stdio.js +6 -3
- package/dist/stdio.js.map +1 -1
- package/dist/tools/docs.d.ts +20 -15
- package/dist/tools/docs.d.ts.map +1 -1
- package/dist/tools/docs.js +140 -161
- package/dist/tools/docs.js.map +1 -1
- package/dist/tools/examples.d.ts +20 -15
- package/dist/tools/examples.d.ts.map +1 -1
- package/dist/tools/examples.js +74 -86
- package/dist/tools/examples.js.map +1 -1
- package/dist/tools/tests/test-setup.d.ts +5 -2
- package/dist/tools/tests/test-setup.d.ts.map +1 -1
- package/dist/tools/tests/test-setup.js +21 -28
- package/dist/tools/tests/test-setup.js.map +1 -1
- package/dist/utils/logger.d.ts +8 -5
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +17 -17
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/mcp-format.d.ts +8 -5
- package/dist/utils/mcp-format.d.ts.map +1 -1
- package/dist/utils/mcp-format.js +9 -9
- package/dist/utils/mcp-format.js.map +1 -1
- package/dist/utils/mdx.d.ts +8 -6
- package/dist/utils/mdx.d.ts.map +1 -1
- package/dist/utils/mdx.js +22 -22
- package/dist/utils/mdx.js.map +1 -1
- package/dist/utils/paths.d.ts +9 -6
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +66 -76
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/security.d.ts +4 -1
- package/dist/utils/security.d.ts.map +1 -1
- package/dist/utils/security.js +19 -40
- package/dist/utils/security.js.map +1 -1
- package/package.json +6 -6
- package/src/tools/tests/path-traversal.test.ts +1 -1
- package/.docs/raw/docs/(docs)/guides/branching.mdx +0 -65
- package/.docs/raw/docs/(docs)/guides/chain-of-thought.mdx +0 -164
- package/.docs/raw/docs/(docs)/guides/editing.mdx +0 -66
- package/.docs/raw/docs/(docs)/guides/speech.mdx +0 -38
- package/.docs/raw/docs/(reference)/api-reference/context-providers/text-message-part-provider.mdx +0 -40
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +0 -260
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-hook-form.mdx +0 -103
- package/.docs/raw/docs/(reference)/api-reference/integrations/vercel-ai-sdk.mdx +0 -254
- package/.docs/raw/docs/(reference)/migrations/v0-14.mdx +0 -159
- package/.docs/raw/docs/runtimes/a2a/index.mdx +0 -298
- package/.docs/raw/docs/runtimes/assistant-transport.mdx +0 -1033
- package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +0 -314
- package/.docs/raw/docs/runtimes/custom/local.mdx +0 -1464
- package/.docs/raw/docs/runtimes/data-stream.mdx +0 -422
- package/.docs/raw/docs/runtimes/google-adk/index.mdx +0 -686
- package/.docs/raw/docs/runtimes/helicone.mdx +0 -61
- package/.docs/raw/docs/runtimes/langchain/comparison.mdx +0 -60
- package/.docs/raw/docs/runtimes/langchain/index.mdx +0 -210
- package/.docs/raw/docs/runtimes/langgraph/index.mdx +0 -699
- package/.docs/raw/docs/runtimes/langgraph/tutorial/index.mdx +0 -12
- package/.docs/raw/docs/runtimes/langserve.mdx +0 -116
- package/.docs/raw/docs/runtimes/mastra/full-stack-integration.mdx +0 -218
- package/.docs/raw/docs/runtimes/mastra/overview.mdx +0 -18
- package/.docs/raw/docs/runtimes/mastra/separate-server-integration.mdx +0 -217
- package/dist/prepare-docs/prepare.d.ts.map +0 -1
- package/dist/stdio.d.ts.map +0 -1
- /package/.docs/raw/docs/{(reference)/migrations → migrations}/deprecation-policy.mdx +0 -0
- /package/.docs/raw/docs/{(reference) → migrations}/react-compatibility.mdx +0 -0
- /package/.docs/raw/docs/{(reference)/migrations → migrations}/react-langgraph-v0-7.mdx +0 -0
- /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-11.mdx +0 -0
- /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-12.mdx +0 -0
|
@@ -1,245 +1,120 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Picking a
|
|
3
|
-
description:
|
|
2
|
+
title: Picking a runtime
|
|
3
|
+
description: Decision guide for choosing the right runtime, by framework or by feature.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
import { A2AIcon } from "@/components/icons/a2a";
|
|
7
|
+
import { AdkIcon } from "@/components/icons/adk";
|
|
8
|
+
import { AguiIcon } from "@/components/icons/agui";
|
|
9
|
+
import { CloudflareIcon } from "@/components/icons/cloudflare";
|
|
10
|
+
import { LangChainIcon } from "@/components/icons/langchain";
|
|
11
|
+
import { LangGraphIcon } from "@/components/icons/langgraph";
|
|
12
|
+
import { MastraIcon } from "@/components/icons/mastra";
|
|
13
|
+
import { OpenCodeIcon } from "@/components/icons/opencode";
|
|
14
|
+
import { VercelIcon } from "@/components/icons/vercel";
|
|
7
15
|
|
|
8
|
-
|
|
16
|
+
A runtime is the connection between assistant-ui's UI primitives and your AI backend. This page helps you pick one. Two lenses, pick whichever maps to what you already know.
|
|
9
17
|
|
|
10
|
-
|
|
11
|
-
graph TD
|
|
12
|
-
A[What's your starting point?] --> B{Existing Framework?}
|
|
13
|
-
B -->|Vercel AI SDK| C[Use AI SDK Integration]
|
|
14
|
-
B -->|LangGraph via langgraph-sdk| D1[Use react-langgraph]
|
|
15
|
-
B -->|LangChain via @langchain/react useStream| D2[Use react-langchain]
|
|
16
|
-
B -->|LangServe| E[Use LangServe Runtime]
|
|
17
|
-
B -->|Mastra| F[Use Mastra Runtime]
|
|
18
|
-
B -->|AG-UI Protocol| J[Use AG-UI Runtime]
|
|
19
|
-
B -->|A2A Protocol| K[Use A2A Runtime]
|
|
20
|
-
B -->|Custom Backend| G{State Management?}
|
|
21
|
-
G -->|Let assistant-ui handle it| H[Use LocalRuntime]
|
|
22
|
-
G -->|I'll manage it myself| I[Use ExternalStoreRuntime]
|
|
23
|
-
```
|
|
18
|
+
## Lens 1: by framework
|
|
24
19
|
|
|
25
|
-
|
|
20
|
+
If you are already using one of these frameworks, the choice is mechanical.
|
|
26
21
|
|
|
27
|
-
|
|
22
|
+
### First-party adapters
|
|
28
23
|
|
|
29
|
-
|
|
30
|
-
<Card
|
|
31
|
-
title="`LocalRuntime`"
|
|
32
|
-
description="assistant-ui manages chat state internally. Simple adapter pattern for any backend."
|
|
33
|
-
href="/docs/runtimes/custom/local"
|
|
34
|
-
/>
|
|
35
|
-
<Card
|
|
36
|
-
title="`ExternalStoreRuntime`"
|
|
37
|
-
description="You control the state. Perfect for Redux, Zustand, or existing state management."
|
|
38
|
-
href="/docs/runtimes/custom/external-store"
|
|
39
|
-
/>
|
|
40
|
-
</Cards>
|
|
41
|
-
|
|
42
|
-
## Pre-Built Integrations
|
|
43
|
-
|
|
44
|
-
For popular frameworks, we provide ready-to-use integrations built on top of our core runtimes:
|
|
24
|
+
assistant-ui ships React adapter packages for these. Pick the matching card and follow its overview.
|
|
45
25
|
|
|
46
26
|
<Cards>
|
|
47
27
|
<Card
|
|
28
|
+
icon={<VercelIcon width={20} height={20} />}
|
|
48
29
|
title="Vercel AI SDK"
|
|
49
|
-
description="
|
|
50
|
-
href="/docs/runtimes/ai-sdk
|
|
51
|
-
/>
|
|
52
|
-
<Card
|
|
53
|
-
title="Data Stream Protocol"
|
|
54
|
-
description="For custom backends using the data stream protocol standard"
|
|
55
|
-
href="/docs/runtimes/data-stream"
|
|
30
|
+
description="useChat hook, streaming, tools, attachments, multi-step. v6 current; v5 / v4 legacy."
|
|
31
|
+
href="/docs/runtimes/ai-sdk"
|
|
56
32
|
/>
|
|
57
33
|
<Card
|
|
34
|
+
icon={<LangGraphIcon width={20} height={20} className="text-[#1C3C3C] dark:text-[#5b9595]" />}
|
|
58
35
|
title="LangGraph"
|
|
59
|
-
description="
|
|
36
|
+
description="Direct integration with @langchain/langgraph-sdk. Subgraph events, UI messages, message metadata."
|
|
60
37
|
href="/docs/runtimes/langgraph"
|
|
61
38
|
/>
|
|
62
39
|
<Card
|
|
40
|
+
icon={<LangChainIcon width={20} height={20} className="text-[#7FC8FF]" />}
|
|
63
41
|
title="LangChain useStream"
|
|
64
|
-
description="Wraps
|
|
42
|
+
description="Wraps @langchain/react's useStream. Lighter-weight, tracks upstream."
|
|
65
43
|
href="/docs/runtimes/langchain"
|
|
66
44
|
/>
|
|
67
45
|
<Card
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
46
|
+
icon={<AdkIcon width={20} height={20} />}
|
|
47
|
+
title="Google ADK"
|
|
48
|
+
description="ADK JS or Python agents. Tool confirmations, auth flows, multi-agent, code execution."
|
|
49
|
+
href="/docs/runtimes/google-adk"
|
|
71
50
|
/>
|
|
72
51
|
<Card
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
52
|
+
icon={<A2AIcon width={20} height={20} />}
|
|
53
|
+
title="A2A Protocol"
|
|
54
|
+
description="Any A2A v1.0-compliant agent server. Streaming task state, artifacts, multi-tenancy."
|
|
55
|
+
href="/docs/runtimes/a2a/overview"
|
|
76
56
|
/>
|
|
77
57
|
<Card
|
|
58
|
+
icon={<AguiIcon width={20} height={20} />}
|
|
78
59
|
title="AG-UI Protocol"
|
|
79
|
-
description="
|
|
80
|
-
href="
|
|
81
|
-
/>
|
|
82
|
-
<Card
|
|
83
|
-
title="A2A Protocol"
|
|
84
|
-
description="For Agent-to-Agent protocol communication between AI agents"
|
|
85
|
-
href="/docs/runtimes/a2a"
|
|
60
|
+
description="AG-UI agents (CopilotKit, custom servers). Streaming text, thinking, tool calls, state snapshots."
|
|
61
|
+
href="/docs/runtimes/ag-ui"
|
|
86
62
|
/>
|
|
63
|
+
<PlatformOnly platforms={["react"]}>
|
|
64
|
+
<Card
|
|
65
|
+
icon={<OpenCodeIcon width={20} height={20} />}
|
|
66
|
+
title="OpenCode"
|
|
67
|
+
description="OpenCode coding-agent server. Permission flows, questions, fork / revert. Experimental."
|
|
68
|
+
href="/docs/runtimes/opencode"
|
|
69
|
+
/>
|
|
70
|
+
</PlatformOnly>
|
|
87
71
|
</Cards>
|
|
88
72
|
|
|
89
|
-
|
|
73
|
+
<PlatformOnly platforms={["react"]}>
|
|
90
74
|
|
|
91
|
-
###
|
|
75
|
+
### Integration guides
|
|
92
76
|
|
|
93
|
-
|
|
77
|
+
For frameworks without a dedicated adapter, these wiring guides route through one of the adapters above.
|
|
94
78
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
-
|
|
101
|
-
|
|
79
|
+
<Cards>
|
|
80
|
+
<Card
|
|
81
|
+
icon={<CloudflareIcon width={20} height={20} />}
|
|
82
|
+
title="Cloudflare Agents"
|
|
83
|
+
description="Stateful agents on Durable Objects with WebSocket streaming. Wired through the Vercel AI SDK runtime."
|
|
84
|
+
href="/docs/integrations/frameworks/cloudflare-agents/overview"
|
|
85
|
+
/>
|
|
86
|
+
<Card
|
|
87
|
+
icon={<MastraIcon width={20} height={20} />}
|
|
88
|
+
title="Mastra"
|
|
89
|
+
description="TypeScript agent framework. Wired through the Vercel AI SDK runtime."
|
|
90
|
+
href="/docs/integrations/frameworks/mastra/overview"
|
|
91
|
+
/>
|
|
92
|
+
</Cards>
|
|
102
93
|
|
|
103
|
-
|
|
94
|
+
</PlatformOnly>
|
|
104
95
|
|
|
105
|
-
|
|
96
|
+
## Lens 2: by needs
|
|
106
97
|
|
|
107
|
-
|
|
108
|
-
- You're already using that framework
|
|
109
|
-
- You want the fastest possible setup
|
|
110
|
-
- The integration covers your needs
|
|
98
|
+
If you do not know your framework yet, or your backend is custom, pick by what you need:
|
|
111
99
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
100
|
+
| You need | Use |
|
|
101
|
+
| --- | --- |
|
|
102
|
+
| Simple `fetch` call to your API, runtime owns state | [LocalRuntime](/docs/runtimes/custom/local-runtime) |
|
|
103
|
+
| Keep messages in redux, zustand, tanstack-query, etc. | [ExternalStoreRuntime](/docs/runtimes/custom/external-store) |
|
|
104
|
+
| Backend that already speaks the data stream protocol | [DataStream](/docs/runtimes/custom/data-stream) |
|
|
105
|
+
| Stream full agent state snapshots (not just messages) | [AssistantTransport](/docs/runtimes/custom/assistant-transport) |
|
|
116
106
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
107
|
+
If none of the framework adapters fits, start at [custom backend](/docs/runtimes/custom).
|
|
108
|
+
|
|
109
|
+
## Shared concepts
|
|
110
|
+
|
|
111
|
+
Regardless of which runtime you pick, four ideas apply across the board.
|
|
120
112
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
| Feature | `LocalRuntime` | `ExternalStoreRuntime` |
|
|
126
|
-
| ------- | -------------- | ---------------------- |
|
|
127
|
-
| **State Management** | Automatic | You control |
|
|
128
|
-
| **Setup Complexity** | Simple | Moderate |
|
|
129
|
-
| **Message Editing** | Built-in | Implement `onEdit` |
|
|
130
|
-
| **Branch Switching** | Built-in | Implement `setMessages` |
|
|
131
|
-
| **Regeneration** | Built-in | Implement `onReload` |
|
|
132
|
-
| **Cancellation** | Built-in | Implement `onCancel` |
|
|
133
|
-
| **Multi-thread** | Via adapters | Via adapters |
|
|
134
|
-
|
|
135
|
-
### Available Adapters
|
|
136
|
-
|
|
137
|
-
| Adapter | `LocalRuntime` | `ExternalStoreRuntime` |
|
|
138
|
-
| ------- | -------------- | ---------------------- |
|
|
139
|
-
| ChatModel | ✅ Required | ❌ N/A |
|
|
140
|
-
| Attachments | ✅ | ✅ |
|
|
141
|
-
| Speech | ✅ | ✅ |
|
|
142
|
-
| Feedback | ✅ | ✅ |
|
|
143
|
-
| History | ✅ | ❌ Use your state |
|
|
144
|
-
| Suggestions | ✅ | ❌ Use your state |
|
|
145
|
-
|
|
146
|
-
## Common Implementation Patterns
|
|
147
|
-
|
|
148
|
-
### Vercel AI SDK with Streaming
|
|
149
|
-
|
|
150
|
-
```tsx
|
|
151
|
-
import { AssistantRuntimeProvider, Thread } from "@assistant-ui/react";
|
|
152
|
-
import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
|
|
153
|
-
|
|
154
|
-
export function MyAssistant() {
|
|
155
|
-
const runtime = useChatRuntime();
|
|
156
|
-
|
|
157
|
-
return (
|
|
158
|
-
<AssistantRuntimeProvider runtime={runtime}>
|
|
159
|
-
<Thread />
|
|
160
|
-
</AssistantRuntimeProvider>
|
|
161
|
-
);
|
|
162
|
-
}
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Custom Backend with `LocalRuntime`
|
|
166
|
-
|
|
167
|
-
```tsx
|
|
168
|
-
import { useLocalRuntime } from "@assistant-ui/react";
|
|
169
|
-
|
|
170
|
-
const runtime = useLocalRuntime({
|
|
171
|
-
async run({ messages, abortSignal }) {
|
|
172
|
-
const response = await fetch("/api/chat", {
|
|
173
|
-
method: "POST",
|
|
174
|
-
headers: { "Content-Type": "application/json" },
|
|
175
|
-
body: JSON.stringify({ messages }),
|
|
176
|
-
signal: abortSignal,
|
|
177
|
-
});
|
|
178
|
-
return response.json();
|
|
179
|
-
},
|
|
180
|
-
});
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### Redux Integration with `ExternalStoreRuntime`
|
|
184
|
-
|
|
185
|
-
```tsx
|
|
186
|
-
import { useExternalStoreRuntime } from "@assistant-ui/react";
|
|
187
|
-
|
|
188
|
-
const messages = useSelector(selectMessages);
|
|
189
|
-
const dispatch = useDispatch();
|
|
190
|
-
|
|
191
|
-
const runtime = useExternalStoreRuntime({
|
|
192
|
-
messages,
|
|
193
|
-
onNew: async (message) => {
|
|
194
|
-
dispatch(addUserMessage(message));
|
|
195
|
-
const response = await api.chat(message);
|
|
196
|
-
dispatch(addAssistantMessage(response));
|
|
197
|
-
},
|
|
198
|
-
setMessages: (messages) => dispatch(setMessages(messages)),
|
|
199
|
-
onEdit: async (message) => dispatch(editMessage(message)),
|
|
200
|
-
onReload: async (parentId) => dispatch(reloadMessage(parentId)),
|
|
201
|
-
});
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
## Examples
|
|
205
|
-
|
|
206
|
-
Explore our implementation examples:
|
|
207
|
-
|
|
208
|
-
- **[AI SDK v6 Example](https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-ai-sdk-v6)** - Vercel AI SDK with `useChatRuntime`
|
|
209
|
-
- **[External Store Example](https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-external-store)** - `ExternalStoreRuntime` with custom state
|
|
210
|
-
- **[Assistant Cloud Example](https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-cloud)** - Multi-thread with cloud persistence
|
|
211
|
-
- **[LangGraph Example](https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-langgraph)** - Agent workflows
|
|
212
|
-
|
|
213
|
-
## Common Pitfalls to Avoid
|
|
214
|
-
|
|
215
|
-
### LocalRuntime Pitfalls
|
|
216
|
-
- **Forgetting the adapter**: `LocalRuntime` requires a `ChatModelAdapter` - it won't work without one
|
|
217
|
-
- **Not handling errors**: Always handle API errors in your adapter's `run` function
|
|
218
|
-
- **Missing abort signal**: Pass `abortSignal` to your fetch calls for proper cancellation
|
|
219
|
-
|
|
220
|
-
### ExternalStoreRuntime Pitfalls
|
|
221
|
-
- **Mutating state**: Always create new arrays/objects when updating messages
|
|
222
|
-
- **Missing handlers**: Each UI feature requires its corresponding handler (e.g., no edit button without `onEdit`)
|
|
223
|
-
- **Forgetting optimistic updates**: Set `isRunning` to `true` for loading states
|
|
224
|
-
|
|
225
|
-
### General Pitfalls
|
|
226
|
-
- **Wrong integration level**: Don't use `LocalRuntime` if you already have Vercel AI SDK - use the AI SDK integration instead
|
|
227
|
-
- **Over-engineering**: Start with pre-built integrations before building custom solutions
|
|
228
|
-
- **Ignoring TypeScript**: The types will guide you to the correct implementation
|
|
229
|
-
|
|
230
|
-
## Next Steps
|
|
231
|
-
|
|
232
|
-
1. **Choose your runtime** based on the decision tree above
|
|
233
|
-
2. **Follow the specific guide**:
|
|
234
|
-
- [AI SDK Integration](/docs/runtimes/ai-sdk/v6)
|
|
235
|
-
- [`LocalRuntime` Guide](/docs/runtimes/custom/local)
|
|
236
|
-
- [`ExternalStoreRuntime` Guide](/docs/runtimes/custom/external-store)
|
|
237
|
-
- [LangGraph Integration](/docs/runtimes/langgraph)
|
|
238
|
-
- [LangChain useStream Integration](/docs/runtimes/langchain)
|
|
239
|
-
3. **Start with an example** from our [examples repository](https://github.com/assistant-ui/assistant-ui/tree/main/examples)
|
|
240
|
-
4. **Add features progressively** using adapters
|
|
241
|
-
5. **Consider Assistant Cloud** for production persistence
|
|
113
|
+
- **Architecture** — Framework adapters wrap one of two **core runtimes** (`LocalRuntime`, `ExternalStoreRuntime`). See [architecture](/docs/runtimes/concepts/architecture) for the full layering.
|
|
114
|
+
- **Adapters** (attachments, speech, feedback, history, suggestions) work the same way across runtimes. See [adapters](/docs/runtimes/concepts/adapters).
|
|
115
|
+
- **Threads** (single, cloud, custom database) follow the same model. See [threads](/docs/runtimes/concepts/threads).
|
|
116
|
+
- **Stability** policy: APIs prefixed with `unstable_` may change in any release. See [stability](/docs/runtimes/concepts/stability).
|
|
242
117
|
|
|
243
118
|
<Callout type="info">
|
|
244
|
-
Need help? Join our [Discord community](https://discord.gg/S9dwgCNEFs) or check the [GitHub](https://github.com/assistant-ui/assistant-ui).
|
|
119
|
+
Need help? Join our [Discord community](https://discord.gg/S9dwgCNEFs) or check the [GitHub repo](https://github.com/assistant-ui/assistant-ui).
|
|
245
120
|
</Callout>
|
|
@@ -4,6 +4,7 @@ description: A vertically stacked set of interactive headings that reveal or hid
|
|
|
4
4
|
links:
|
|
5
5
|
- label: Radix UI Accordion
|
|
6
6
|
url: https://www.radix-ui.com/primitives/docs/components/accordion
|
|
7
|
+
platforms: ["react"]
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
import { PreviewCode } from "@/components/docs/preview-code.server";
|
|
@@ -4,6 +4,7 @@ description: A small label component for displaying status, categories, or metad
|
|
|
4
4
|
links:
|
|
5
5
|
- label: Radix UI Slot
|
|
6
6
|
url: https://www.radix-ui.com/primitives/docs/utilities/slot
|
|
7
|
+
platforms: ["react"]
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
import { PreviewCode } from "@/components/docs/preview-code.server";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Composer Trigger Popover
|
|
3
3
|
description: Reusable picker UI for @ mentions, / slash commands, and any other character-triggered popover.
|
|
4
|
+
platforms: ["react"]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
import { ComposerTriggerPopoverSample } from "@/components/docs/samples/composer-trigger-popover";
|
|
@@ -157,10 +158,20 @@ const commandHandlers: Record<string, () => void> = {
|
|
|
157
158
|
| --- | --- |
|
|
158
159
|
| <Kbd>ArrowDown</Kbd> | Highlight next item |
|
|
159
160
|
| <Kbd>ArrowUp</Kbd> | Highlight previous item |
|
|
160
|
-
| <Kbd>Enter</Kbd> | Select highlighted item / drill into category |
|
|
161
|
+
| <Kbd>Enter</Kbd> / <Kbd>Tab</Kbd> | Select highlighted item / drill into category |
|
|
162
|
+
| <Kbd>Shift + Enter</Kbd> | Insert newline (popover stays open) |
|
|
163
|
+
| <Kbd>Shift + Tab</Kbd> | Pass through (native focus traversal) |
|
|
161
164
|
| <Kbd>Escape</Kbd> | Close popover |
|
|
162
165
|
| <Kbd>Backspace</Kbd> | Go back to categories (when query is empty) |
|
|
163
166
|
|
|
167
|
+
## Accessibility
|
|
168
|
+
|
|
169
|
+
The popover implements the WAI-ARIA editable combobox pattern.
|
|
170
|
+
|
|
171
|
+
- The listbox container has `role="listbox"` and each item has `role="option"` plus `aria-selected`.
|
|
172
|
+
- When a popover is open, `ComposerPrimitive.Input` (the underlying `<textarea>`) automatically receives `aria-controls`, `aria-expanded="true"`, `aria-haspopup="listbox"`, and `aria-activedescendant` pointing at the highlighted option. Attributes are removed when the popover closes.
|
|
173
|
+
- When `ComposerPrimitive.Input` is rendered outside a `TriggerPopoverRoot`, no ARIA attributes are added.
|
|
174
|
+
|
|
164
175
|
## API Reference
|
|
165
176
|
|
|
166
177
|
| Prop | Type | Default | Description |
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Context Display
|
|
3
3
|
description: Visualize token usage relative to a model's context window — ring, bar, or text — with a detailed hover popover.
|
|
4
|
+
platforms: ["react"]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
import { ContextDisplaySample } from "@/components/docs/samples/context-display";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Markdown
|
|
3
3
|
description: Display rich text with headings, lists, links, and code blocks.
|
|
4
|
+
platforms: ["react"]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
import { MarkdownSample } from "@/components/docs/samples/markdown";
|
|
@@ -30,20 +31,7 @@ This adds a `/components/assistant-ui/markdown-text.tsx` file to your project, w
|
|
|
30
31
|
|
|
31
32
|
Pass the `MarkdownText` component to the `MessagePrimitive.Parts` component
|
|
32
33
|
|
|
33
|
-
```tsx
|
|
34
|
-
// @filename: /components/assistant-ui/markdown-text.tsx
|
|
35
|
-
import { FC } from "react";
|
|
36
|
-
export const MarkdownText: FC = () => null;
|
|
37
|
-
|
|
38
|
-
// @filename: ./thread.tsx
|
|
39
|
-
import { FC } from "react";
|
|
40
|
-
import { MessagePrimitive } from "@assistant-ui/react";
|
|
41
|
-
import { Avatar, AvatarFallback } from "@/components/ui/avatar";
|
|
42
|
-
|
|
43
|
-
const AssistantActionBar: FC = () => null;
|
|
44
|
-
const BranchPicker: FC<{ className?: string }> = () => null;
|
|
45
|
-
|
|
46
|
-
// ---cut---
|
|
34
|
+
```tsx title="/components/assistant-ui/thread.tsx" {1,7}
|
|
47
35
|
import { MarkdownText } from "@/components/assistant-ui/markdown-text";
|
|
48
36
|
|
|
49
37
|
const AssistantMessage: FC = () => {
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: MCP Config Dialog
|
|
3
|
+
description: Drop-in shadcn dialog that lists MCP connectors and custom servers, with inline OAuth/bearer auth controls and an add form.
|
|
4
|
+
platforms: ["react"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
`McpConfigDialog` is a shadcn template that wraps the [`@assistant-ui/react-mcp`](/docs/integrations/tools/react-mcp) primitives. Render it anywhere inside an `McpManagerResource`-mounted client and your users get a styled MCP server panel — no manual primitive composition.
|
|
8
|
+
|
|
9
|
+
## Getting Started
|
|
10
|
+
|
|
11
|
+
<Steps>
|
|
12
|
+
<Step>
|
|
13
|
+
|
|
14
|
+
### Install the package and the component
|
|
15
|
+
|
|
16
|
+
<InstallCommand npm={["@assistant-ui/react-mcp"]} />
|
|
17
|
+
|
|
18
|
+
<InstallCommand shadcn={["mcp-config"]} />
|
|
19
|
+
|
|
20
|
+
</Step>
|
|
21
|
+
<Step>
|
|
22
|
+
|
|
23
|
+
### Mount the manager
|
|
24
|
+
|
|
25
|
+
```tsx title="app/providers.tsx"
|
|
26
|
+
"use client";
|
|
27
|
+
|
|
28
|
+
import { AuiProvider, useAui } from "@assistant-ui/react";
|
|
29
|
+
import { McpManagerResource, defineConnector } from "@assistant-ui/react-mcp";
|
|
30
|
+
|
|
31
|
+
const connectors = [
|
|
32
|
+
defineConnector({
|
|
33
|
+
id: "linear",
|
|
34
|
+
name: "Linear",
|
|
35
|
+
url: "https://mcp.linear.app",
|
|
36
|
+
auth: { type: "oauth", scopes: ["read"] },
|
|
37
|
+
}),
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
export function Providers({ children }: { children: React.ReactNode }) {
|
|
41
|
+
const aui = useAui({ mcp: McpManagerResource({ connectors }) });
|
|
42
|
+
return <AuiProvider value={aui}>{children}</AuiProvider>;
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
</Step>
|
|
47
|
+
<Step>
|
|
48
|
+
|
|
49
|
+
### Drop the dialog in
|
|
50
|
+
|
|
51
|
+
```tsx title="app/page.tsx"
|
|
52
|
+
import { McpConfigDialog } from "@/components/assistant-ui/mcp-config";
|
|
53
|
+
|
|
54
|
+
export default function Page() {
|
|
55
|
+
return (
|
|
56
|
+
<header className="flex items-center justify-between">
|
|
57
|
+
<h1>My app</h1>
|
|
58
|
+
<McpConfigDialog />
|
|
59
|
+
</header>
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
That's it. The default trigger is an outline `"🔌 MCP servers"` button. Click it to open the dialog, which renders a **Connectors** list (your app-defined presets with connect/authorize/disconnect controls), a **Custom servers** list (user-added entries with the same controls plus a remove button), and an inline **Add server** form for URL + name + auth selection.
|
|
65
|
+
|
|
66
|
+
</Step>
|
|
67
|
+
<Step>
|
|
68
|
+
|
|
69
|
+
### Override the trigger (optional)
|
|
70
|
+
|
|
71
|
+
Pass children to swap the default button for your own:
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
<McpConfigDialog>
|
|
75
|
+
<Button variant="ghost">Servers</Button>
|
|
76
|
+
</McpConfigDialog>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
</Step>
|
|
80
|
+
<Step>
|
|
81
|
+
|
|
82
|
+
### Wire up the OAuth callback
|
|
83
|
+
|
|
84
|
+
Required for any OAuth-enabled connector or custom server. See the [OAuth callback section in the react-mcp guide](/docs/integrations/tools/react-mcp#handle-the-oauth-callback) for the route handler.
|
|
85
|
+
|
|
86
|
+
</Step>
|
|
87
|
+
</Steps>
|
|
88
|
+
|
|
89
|
+
## Related
|
|
90
|
+
|
|
91
|
+
<Cards>
|
|
92
|
+
<Card
|
|
93
|
+
title="User-managed MCP servers"
|
|
94
|
+
description="Full @assistant-ui/react-mcp guide — connectors, custom servers, OAuth, storage, custom primitives."
|
|
95
|
+
href="/docs/integrations/tools/react-mcp"
|
|
96
|
+
/>
|
|
97
|
+
<Card
|
|
98
|
+
title="Server-side MCP"
|
|
99
|
+
description="App-developer-controlled MCP servers wired into the API route."
|
|
100
|
+
href="/docs/integrations/tools/mcp"
|
|
101
|
+
/>
|
|
102
|
+
</Cards>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Message Timing
|
|
3
3
|
description: Display streaming performance stats — TTFT, total time, tok/s, and chunk count — as a badge with hover popover.
|
|
4
|
+
platforms: ["react"]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
import { MessageTimingSample } from "@/components/docs/samples/message-timing";
|
|
@@ -65,9 +66,9 @@ The badge displays `totalStreamTime` inline and reveals a popover on hover with
|
|
|
65
66
|
|
|
66
67
|
Timing accuracy depends on how your backend is connected.
|
|
67
68
|
|
|
68
|
-
###
|
|
69
|
+
### Data Stream (accurate)
|
|
69
70
|
|
|
70
|
-
When using
|
|
71
|
+
When using the [Data Stream](/docs/runtimes/custom/data-stream) protocol on the backend (via `assistant-stream`), token counts come directly from the model's usage data sent in `step-finish` chunks. The `tokensPerSecond` metric is exact whenever your backend reports `outputTokens`.
|
|
71
72
|
|
|
72
73
|
### Vercel AI SDK (estimated)
|
|
73
74
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: ModelSelector
|
|
3
3
|
description: Model picker with unified overlay positioning and runtime integration.
|
|
4
|
+
platforms: ["react"]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
import { ModelSelectorSample } from "@/components/docs/samples/model-selector";
|
|
@@ -33,11 +34,11 @@ const ComposerAction: FC = () => {
|
|
|
33
34
|
<div className="flex items-center gap-1">
|
|
34
35
|
<ModelSelector
|
|
35
36
|
models={[
|
|
36
|
-
{ id: "gpt-
|
|
37
|
-
{ id: "gpt-
|
|
38
|
-
{ id: "
|
|
37
|
+
{ id: "gpt-5.4-nano", name: "GPT-5.4 Nano", description: "Fast and efficient" },
|
|
38
|
+
{ id: "gpt-5.4-mini", name: "GPT-5.4 Mini", description: "Balanced performance" },
|
|
39
|
+
{ id: "gpt-5.5", name: "GPT-5.5", description: "Most capable" },
|
|
39
40
|
]}
|
|
40
|
-
defaultValue="gpt-
|
|
41
|
+
defaultValue="gpt-5.4-nano"
|
|
41
42
|
size="sm"
|
|
42
43
|
/>
|
|
43
44
|
</div>
|
|
@@ -57,7 +58,7 @@ export async function POST(req: Request) {
|
|
|
57
58
|
const { messages, config } = await req.json();
|
|
58
59
|
|
|
59
60
|
const result = streamText({
|
|
60
|
-
model: openai(config?.modelName ?? "gpt-
|
|
61
|
+
model: openai(config?.modelName ?? "gpt-5.4-nano"),
|
|
61
62
|
messages: await convertToModelMessages(messages),
|
|
62
63
|
});
|
|
63
64
|
|
|
@@ -101,9 +102,9 @@ Each model in the `models` array supports:
|
|
|
101
102
|
```tsx
|
|
102
103
|
const models = [
|
|
103
104
|
{
|
|
104
|
-
id: "gpt-
|
|
105
|
-
name: "GPT-
|
|
106
|
-
description: "
|
|
105
|
+
id: "gpt-5.4-nano", // Sent to backend as config.modelName
|
|
106
|
+
name: "GPT-5.4 Nano", // Display name in trigger and items
|
|
107
|
+
description: "Fast and efficient", // Optional subtitle in items only
|
|
107
108
|
icon: <SparklesIcon />, // Optional icon (any ReactNode)
|
|
108
109
|
},
|
|
109
110
|
];
|