@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,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Reasoning
|
|
3
3
|
description: Collapsible UI for displaying AI reasoning and thinking messages.
|
|
4
|
+
platforms: ["react"]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
import { ReasoningSample, ReasoningGroupSample } from "@/components/docs/samples/reasoning";
|
|
@@ -23,26 +24,58 @@ This adds a `/components/assistant-ui/reasoning.tsx` file to your project.
|
|
|
23
24
|
|
|
24
25
|
### Use in your application
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
Previously, reasoning parts were rendered via `components.Reasoning` and grouped via `components.ReasoningGroup` on `MessagePrimitive.Parts`. Both are deprecated; `MessagePrimitive.GroupedParts` is the supported replacement, and the highlighted lines below show the new pieces.
|
|
28
|
+
|
|
29
|
+
Render reasoning parts through `MessagePrimitive.GroupedParts`. Group consecutive reasoning parts with `"group-reasoning"`, then compose `ReasoningRoot`, `ReasoningTrigger`, `ReasoningContent`, and `ReasoningText` around the grouped children.
|
|
30
|
+
|
|
31
|
+
While reasoning is streaming, `part.status.type === "running"`. Pass that to `defaultOpen` so the accordion auto-opens during streaming and lets the user collapse it once the model moves on.
|
|
27
32
|
|
|
28
33
|
```tsx title="/app/components/assistant-ui/thread.tsx"
|
|
29
34
|
import { MessagePrimitive } from "@assistant-ui/react";
|
|
30
35
|
import { MarkdownText } from "@/components/assistant-ui/markdown-text";
|
|
31
36
|
import { ToolFallback } from "@/components/assistant-ui/tool-fallback";
|
|
32
|
-
import {
|
|
37
|
+
import {
|
|
38
|
+
Reasoning,
|
|
39
|
+
ReasoningContent,
|
|
40
|
+
ReasoningRoot,
|
|
41
|
+
ReasoningText,
|
|
42
|
+
ReasoningTrigger,
|
|
43
|
+
} from "@/components/assistant-ui/reasoning"; // [!code ++]
|
|
33
44
|
|
|
34
45
|
const AssistantMessage: FC = () => {
|
|
35
46
|
return (
|
|
36
47
|
<MessagePrimitive.Root className="...">
|
|
37
48
|
<div className="...">
|
|
38
|
-
<MessagePrimitive.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
49
|
+
<MessagePrimitive.GroupedParts // [!code ++]
|
|
50
|
+
groupBy={(part) => { // [!code ++]
|
|
51
|
+
if (part.type === "reasoning") return ["group-reasoning"]; // [!code ++]
|
|
52
|
+
return null; // [!code ++]
|
|
53
|
+
}} // [!code ++]
|
|
54
|
+
> // [!code ++]
|
|
55
|
+
{({ part, children }) => { // [!code ++]
|
|
56
|
+
switch (part.type) { // [!code ++]
|
|
57
|
+
case "group-reasoning": { // [!code ++]
|
|
58
|
+
const running = part.status.type === "running"; // [!code ++]
|
|
59
|
+
return ( // [!code ++]
|
|
60
|
+
<ReasoningRoot defaultOpen={running}> // [!code ++]
|
|
61
|
+
<ReasoningTrigger active={running} /> // [!code ++]
|
|
62
|
+
<ReasoningContent aria-busy={running}> // [!code ++]
|
|
63
|
+
<ReasoningText>{children}</ReasoningText> // [!code ++]
|
|
64
|
+
</ReasoningContent> // [!code ++]
|
|
65
|
+
</ReasoningRoot> // [!code ++]
|
|
66
|
+
); // [!code ++]
|
|
67
|
+
} // [!code ++]
|
|
68
|
+
case "text": // [!code ++]
|
|
69
|
+
return <MarkdownText />; // [!code ++]
|
|
70
|
+
case "reasoning": // [!code ++]
|
|
71
|
+
return <Reasoning {...part} />; // [!code ++]
|
|
72
|
+
case "tool-call": // [!code ++]
|
|
73
|
+
return part.toolUI ?? <ToolFallback {...part} />; // [!code ++]
|
|
74
|
+
default: // [!code ++]
|
|
75
|
+
return null; // [!code ++]
|
|
76
|
+
} // [!code ++]
|
|
77
|
+
}} // [!code ++]
|
|
78
|
+
</MessagePrimitive.GroupedParts> // [!code ++]
|
|
46
79
|
</div>
|
|
47
80
|
<AssistantActionBar />
|
|
48
81
|
<BranchPicker className="..." />
|
|
@@ -51,6 +84,8 @@ const AssistantMessage: FC = () => {
|
|
|
51
84
|
};
|
|
52
85
|
```
|
|
53
86
|
|
|
87
|
+
`GroupedParts` calls your render function for both group nodes and leaf parts. The `case "group-reasoning"` branch renders the collapsible shell and must render `{children}`; that is where the individual reasoning parts get placed. The `case "reasoning"` branch renders each individual reasoning part inside that shell and must not render `children`. Removing either case breaks rendering.
|
|
88
|
+
|
|
54
89
|
</Step>
|
|
55
90
|
</Steps>
|
|
56
91
|
|
|
@@ -59,20 +94,20 @@ const AssistantMessage: FC = () => {
|
|
|
59
94
|
The component consists of two parts:
|
|
60
95
|
|
|
61
96
|
1. `Reasoning`: Renders individual reasoning message part content (with markdown support)
|
|
62
|
-
2. `
|
|
97
|
+
2. Composable group pieces (`ReasoningRoot`, `ReasoningTrigger`, `ReasoningContent`, `ReasoningText`): Wrap grouped reasoning children in a collapsible container
|
|
63
98
|
|
|
64
|
-
Consecutive reasoning parts are
|
|
99
|
+
Consecutive reasoning parts are grouped by `MessagePrimitive.GroupedParts`. Use the composable API below to control the grouped layout.
|
|
65
100
|
|
|
66
|
-
> When using the composable API, `
|
|
101
|
+
> When using the composable API, `ReasoningText` is a plain container. Add `<MarkdownText />` for markdown rendering.
|
|
67
102
|
|
|
68
103
|
## Variants
|
|
69
104
|
|
|
70
|
-
Use the `variant` prop on `
|
|
105
|
+
Use the `variant` prop on `ReasoningRoot` to change the visual style:
|
|
71
106
|
|
|
72
107
|
```tsx
|
|
73
|
-
<
|
|
74
|
-
<
|
|
75
|
-
<
|
|
108
|
+
<ReasoningRoot variant="outline">...</ReasoningRoot>
|
|
109
|
+
<ReasoningRoot variant="ghost">...</ReasoningRoot>
|
|
110
|
+
<ReasoningRoot variant="muted">...</ReasoningRoot>
|
|
76
111
|
```
|
|
77
112
|
|
|
78
113
|
| Variant | Description |
|
|
@@ -81,9 +116,9 @@ Use the `variant` prop on `Reasoning.Root` to change the visual style:
|
|
|
81
116
|
| `ghost` | No additional styling |
|
|
82
117
|
| `muted` | Muted background |
|
|
83
118
|
|
|
84
|
-
## ReasoningGroup
|
|
119
|
+
## Legacy ReasoningGroup
|
|
85
120
|
|
|
86
|
-
`ReasoningGroup`
|
|
121
|
+
`ReasoningGroup` is kept for existing code that still uses the deprecated `components.ReasoningGroup` prop on `MessagePrimitive.Parts`. New code should use `MessagePrimitive.GroupedParts` and compose the root/trigger/content pieces directly.
|
|
87
122
|
|
|
88
123
|
<ReasoningGroupSample />
|
|
89
124
|
|
|
@@ -123,15 +158,14 @@ All sub-components are exported for custom layouts:
|
|
|
123
158
|
|
|
124
159
|
| Component | Description |
|
|
125
160
|
| --------------------- | ------------------------------------------ |
|
|
126
|
-
| `
|
|
127
|
-
| `
|
|
128
|
-
| `
|
|
129
|
-
| `
|
|
130
|
-
| `
|
|
161
|
+
| `ReasoningRoot` | Collapsible container with scroll lock |
|
|
162
|
+
| `ReasoningTrigger` | Button with icon, label, and shimmer |
|
|
163
|
+
| `ReasoningContent` | Animated collapsible content wrapper |
|
|
164
|
+
| `ReasoningText` | Text wrapper with slide/fade animation |
|
|
165
|
+
| `ReasoningFade` | Gradient fade overlay at bottom |
|
|
131
166
|
|
|
132
167
|
```tsx
|
|
133
168
|
import {
|
|
134
|
-
Reasoning,
|
|
135
169
|
ReasoningRoot,
|
|
136
170
|
ReasoningTrigger,
|
|
137
171
|
ReasoningContent,
|
|
@@ -139,16 +173,15 @@ import {
|
|
|
139
173
|
ReasoningFade,
|
|
140
174
|
} from "@/components/assistant-ui/reasoning";
|
|
141
175
|
|
|
142
|
-
|
|
143
|
-
<
|
|
144
|
-
<
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
</Reasoning.Root>
|
|
176
|
+
<ReasoningRoot variant="muted">
|
|
177
|
+
<ReasoningTrigger active={isStreaming} />
|
|
178
|
+
<ReasoningContent>
|
|
179
|
+
<ReasoningText>{children}</ReasoningText>
|
|
180
|
+
</ReasoningContent>
|
|
181
|
+
</ReasoningRoot>
|
|
149
182
|
```
|
|
150
183
|
|
|
151
184
|
## Related Components
|
|
152
185
|
|
|
153
186
|
- [ToolGroup](/docs/ui/tool-group) - Similar grouping pattern for tool calls
|
|
154
|
-
- [PartGrouping](/docs/ui/part-grouping) -
|
|
187
|
+
- [PartGrouping](/docs/ui/part-grouping) - Advanced grouping options for message parts
|
|
@@ -4,6 +4,7 @@ description: A dropdown select component with composable sub-components.
|
|
|
4
4
|
links:
|
|
5
5
|
- label: Radix UI Select
|
|
6
6
|
url: https://www.radix-ui.com/primitives/docs/components/select
|
|
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: Sources
|
|
3
3
|
description: Display URL sources with favicon, title, and external link.
|
|
4
|
+
platforms: ["react"]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
import { SourcesSample } from "@/components/docs/samples/sources";
|
|
@@ -118,8 +119,25 @@ Displays the favicon for the given URL. Falls back to the domain initial inside
|
|
|
118
119
|
| Prop | Type | Default | Description |
|
|
119
120
|
|------|------|---------|-------------|
|
|
120
121
|
| `url` | `string` | — | URL used to derive the favicon and fallback initial |
|
|
122
|
+
| `faviconUrl` | `(domain: string) => string` | DuckDuckGo's `ip3` endpoint | Override the favicon source — useful in environments where the default service is unreachable |
|
|
121
123
|
| `className` | `string` | — | Additional CSS classes applied to the `<img>` or fallback `<span>` |
|
|
122
124
|
|
|
125
|
+
#### Customizing the favicon provider
|
|
126
|
+
|
|
127
|
+
The default `<Sources>` component renders `<SourceIcon>` without forwarding `faviconUrl`, so the prop only applies when you compose `Sources.Icon` directly:
|
|
128
|
+
|
|
129
|
+
```tsx
|
|
130
|
+
<Sources.Root href={url}>
|
|
131
|
+
<Sources.Icon
|
|
132
|
+
url={url}
|
|
133
|
+
faviconUrl={(domain) => `https://my-favicon-proxy.example.com/${domain}.ico`}
|
|
134
|
+
/>
|
|
135
|
+
<Sources.Title>{title}</Sources.Title>
|
|
136
|
+
</Sources.Root>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
To change the default for every source in your app, edit the `defaultFaviconUrl` constant at the top of your copied `sources.tsx` — that is the single source of truth used by `<Sources>`.
|
|
140
|
+
|
|
123
141
|
### `SourceTitle`
|
|
124
142
|
|
|
125
143
|
Truncated title text rendered as a `<span>`.
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Streamdown
|
|
3
|
-
description:
|
|
2
|
+
title: Streamdown Markdown Renderer
|
|
3
|
+
description: Stream markdown into a React chat UI with syntax highlighting, math, and Mermaid diagrams. Powered by Vercel Streamdown, integrated for assistant-ui.
|
|
4
4
|
links:
|
|
5
5
|
- label: Streamdown
|
|
6
6
|
url: https://github.com/vercel/streamdown
|
|
7
|
+
platforms: ["react"]
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
import { PackageManagerTabs } from "@/components/docs/fumadocs/install/package-manager-tabs";
|
|
@@ -25,6 +26,36 @@ For additional features, install the optional plugins:
|
|
|
25
26
|
|
|
26
27
|
<PackageManagerTabs packages={["@streamdown/code", "@streamdown/math", "@streamdown/mermaid", "@streamdown/cjk"]} />
|
|
27
28
|
|
|
29
|
+
## CSS setup
|
|
30
|
+
|
|
31
|
+
Streamdown's controls (code-block copy/download buttons, mermaid fullscreen overlay) and the streaming caret are written as Tailwind utility classes. Tailwind v4 does not scan `node_modules` by default, so add a `@source` directive for Streamdown (and one per installed plugin) to the same global stylesheet that imports Tailwind:
|
|
32
|
+
|
|
33
|
+
```css
|
|
34
|
+
@import "tailwindcss";
|
|
35
|
+
|
|
36
|
+
@source "../node_modules/streamdown/dist/*.js";
|
|
37
|
+
@source "../node_modules/@streamdown/code/dist/*.js";
|
|
38
|
+
@source "../node_modules/@streamdown/math/dist/*.js";
|
|
39
|
+
@source "../node_modules/@streamdown/mermaid/dist/*.js";
|
|
40
|
+
@source "../node_modules/@streamdown/cjk/dist/*.js";
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Adjust the relative path to wherever your project's `node_modules` lives. In a pnpm or Turbo monorepo with hoisted dependencies, you typically need more `../` segments to reach the workspace root. Only include the plugin lines for packages you actually installed.
|
|
44
|
+
|
|
45
|
+
Without these directives, the copy/download/fullscreen buttons render with no padding or cursor styling (and look broken), and the `caret` indicator stays invisible.
|
|
46
|
+
|
|
47
|
+
<Callout type="info">
|
|
48
|
+
Streamdown's components assume the shadcn/ui design tokens (`--background`, `--muted-foreground`, `--border`, etc.). If you are not on shadcn/ui, copy the minimum variable set from the [Streamdown README](https://github.com/vercel/streamdown#css-custom-properties-design-tokens).
|
|
49
|
+
</Callout>
|
|
50
|
+
|
|
51
|
+
If you opt into the `animated` prop or use `createAnimatePlugin` for word-level fade-in, also import the keyframes once at your app entry:
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
import "streamdown/styles.css";
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The bare `caret` prop does **not** require this import; only the word-level animation does.
|
|
58
|
+
|
|
28
59
|
## Basic Usage
|
|
29
60
|
|
|
30
61
|
```tsx
|
|
@@ -172,6 +203,8 @@ Display a caret indicator during streaming:
|
|
|
172
203
|
<StreamdownTextPrimitive caret="circle" /> // ●
|
|
173
204
|
```
|
|
174
205
|
|
|
206
|
+
The caret is implemented as a Tailwind `::after` utility on the wrapper, so it only appears if your Tailwind setup includes the `@source` directive from [CSS setup](#css-setup).
|
|
207
|
+
|
|
175
208
|
### Link Safety
|
|
176
209
|
|
|
177
210
|
Show confirmation before opening external links:
|
|
@@ -4,6 +4,7 @@ description: A multi-variant tabs component for organizing content into switchab
|
|
|
4
4
|
links:
|
|
5
5
|
- label: Radix UI Tabs
|
|
6
6
|
url: https://www.radix-ui.com/primitives/docs/components/tabs
|
|
7
|
+
platforms: ["react"]
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
import { PreviewCode } from "@/components/docs/preview-code.server";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
3
|
-
description:
|
|
2
|
+
title: Thread List Component
|
|
3
|
+
description: Sidebar or dropdown component for switching between AI chat conversations. Persistent thread state, search, and active selection — built for assistant-ui apps.
|
|
4
|
+
platforms: ["react"]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
import { ThreadListSample } from "@/components/docs/samples/threadlist";
|
|
@@ -171,6 +172,22 @@ A button to create a new thread.
|
|
|
171
172
|
]}
|
|
172
173
|
/>
|
|
173
174
|
|
|
175
|
+
### ThreadListPrimitive.LoadMore
|
|
176
|
+
|
|
177
|
+
A button that appends the next page of threads. See the [LoadMore primitive reference](/docs/primitives/thread-list#loadmore) for usage and [Threads concepts](/docs/runtimes/concepts/threads#paginating-the-thread-list) for the adapter contract.
|
|
178
|
+
|
|
179
|
+
<ParametersTable
|
|
180
|
+
type="ThreadListPrimitiveLoadMoreProps"
|
|
181
|
+
parameters={[
|
|
182
|
+
{
|
|
183
|
+
name: "asChild",
|
|
184
|
+
type: "boolean",
|
|
185
|
+
default: "false",
|
|
186
|
+
description: "Merge props with child element instead of rendering a wrapper button.",
|
|
187
|
+
},
|
|
188
|
+
]}
|
|
189
|
+
/>
|
|
190
|
+
|
|
174
191
|
### ThreadListItemPrimitive.Root
|
|
175
192
|
|
|
176
193
|
Container for a single thread item. Automatically sets `data-active` and `aria-current` when this is the current thread.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Thread
|
|
3
|
-
description:
|
|
2
|
+
title: Thread Component
|
|
3
|
+
description: Stream-ready React chat container with message list, composer, auto-scroll, and accessibility built in. Drop into any AI chat UI built with assistant-ui.
|
|
4
|
+
platforms: ["react"]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
import { ThreadSample } from "@/components/docs/samples/thread";
|
|
@@ -175,10 +176,64 @@ The scrollable area containing all messages. Automatically scrolls to the bottom
|
|
|
175
176
|
{
|
|
176
177
|
name: "autoScroll",
|
|
177
178
|
type: "boolean",
|
|
178
|
-
default:
|
|
179
|
+
default: 'true (false when turnAnchor is "top")',
|
|
179
180
|
description:
|
|
180
181
|
"Whether to automatically scroll to the bottom when new messages are added while the viewport was previously scrolled to the bottom.",
|
|
181
182
|
},
|
|
183
|
+
{
|
|
184
|
+
name: "turnAnchor",
|
|
185
|
+
type: '"top" | "bottom"',
|
|
186
|
+
default: '"bottom"',
|
|
187
|
+
description:
|
|
188
|
+
'Controls scroll anchoring behavior for new messages. "top" anchors new user messages at the top of the viewport.',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: "topAnchorMessageClamp",
|
|
192
|
+
type: '{ tallerThan?: string; visibleHeight?: string }',
|
|
193
|
+
default: '{ tallerThan: "10em", visibleHeight: "6em" }',
|
|
194
|
+
description:
|
|
195
|
+
'Clamps tall user messages when turnAnchor is "top". Messages up to `tallerThan` stay fully visible; taller messages show only `visibleHeight` of their bottom edge above the assistant response.',
|
|
196
|
+
children: [
|
|
197
|
+
{
|
|
198
|
+
type: '{ tallerThan?: string; visibleHeight?: string }',
|
|
199
|
+
parameters: [
|
|
200
|
+
{
|
|
201
|
+
name: "tallerThan",
|
|
202
|
+
type: "string",
|
|
203
|
+
default: '"10em"',
|
|
204
|
+
description: "Clamp messages taller than this CSS length.",
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
name: "visibleHeight",
|
|
208
|
+
type: "string",
|
|
209
|
+
default: '"6em"',
|
|
210
|
+
description:
|
|
211
|
+
"Visible portion of a clamped message's bottom edge.",
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
name: "scrollToBottomOnRunStart",
|
|
219
|
+
type: "boolean",
|
|
220
|
+
default: "true",
|
|
221
|
+
description: "Whether to scroll to bottom when a new run starts.",
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
name: "scrollToBottomOnInitialize",
|
|
225
|
+
type: "boolean",
|
|
226
|
+
default: "true",
|
|
227
|
+
description:
|
|
228
|
+
"Whether to scroll to bottom when thread history is first loaded.",
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
name: "scrollToBottomOnThreadSwitch",
|
|
232
|
+
type: "boolean",
|
|
233
|
+
default: "true",
|
|
234
|
+
description:
|
|
235
|
+
"Whether to scroll to bottom when switching to a different thread.",
|
|
236
|
+
},
|
|
182
237
|
{
|
|
183
238
|
name: "className",
|
|
184
239
|
type: "string",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: ToolGroup
|
|
3
3
|
description: Wrapper for consecutive tool calls with collapsible and styled options.
|
|
4
|
+
platforms: ["react"]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
import {
|
|
@@ -17,31 +18,56 @@ A wrapper component that groups consecutive tool calls together, displaying them
|
|
|
17
18
|
<Steps>
|
|
18
19
|
<Step>
|
|
19
20
|
|
|
20
|
-
### Add `tool-group`
|
|
21
|
+
### Add `tool-group` and `tool-fallback`
|
|
21
22
|
|
|
22
|
-
<InstallCommand shadcn={["tool-group"]} />
|
|
23
|
+
<InstallCommand shadcn={["tool-group", "tool-fallback"]} />
|
|
23
24
|
|
|
24
|
-
This adds
|
|
25
|
+
This adds `/components/assistant-ui/tool-group.tsx` and `/components/assistant-ui/tool-fallback.tsx` files to your project, which you can adjust as needed.
|
|
25
26
|
|
|
26
27
|
</Step>
|
|
27
28
|
<Step>
|
|
28
29
|
|
|
29
30
|
### Use it in your application
|
|
30
31
|
|
|
31
|
-
|
|
32
|
+
Use `MessagePrimitive.GroupedParts` and return `"group-tool"` for tool-call parts. The group case wraps `children`; the tool-call leaf renders the resolved tool UI or your fallback.
|
|
32
33
|
|
|
33
|
-
```tsx title="/components/assistant-ui/thread.tsx"
|
|
34
|
-
import {
|
|
34
|
+
```tsx title="/components/assistant-ui/thread.tsx"
|
|
35
|
+
import { MessagePrimitive } from "@assistant-ui/react";
|
|
36
|
+
import { ToolFallback } from "@/components/assistant-ui/tool-fallback";
|
|
37
|
+
import {
|
|
38
|
+
ToolGroupContent,
|
|
39
|
+
ToolGroupRoot,
|
|
40
|
+
ToolGroupTrigger,
|
|
41
|
+
} from "@/components/assistant-ui/tool-group";
|
|
35
42
|
|
|
36
43
|
const AssistantMessage = () => {
|
|
37
44
|
return (
|
|
38
45
|
<MessagePrimitive.Root>
|
|
39
|
-
<MessagePrimitive.
|
|
40
|
-
{(
|
|
41
|
-
if (part.type === "tool-call") return
|
|
46
|
+
<MessagePrimitive.GroupedParts
|
|
47
|
+
groupBy={(part) => {
|
|
48
|
+
if (part.type === "tool-call") return ["group-tool"];
|
|
42
49
|
return null;
|
|
43
50
|
}}
|
|
44
|
-
|
|
51
|
+
>
|
|
52
|
+
{({ part, children }) => {
|
|
53
|
+
switch (part.type) {
|
|
54
|
+
case "group-tool":
|
|
55
|
+
return (
|
|
56
|
+
<ToolGroupRoot>
|
|
57
|
+
<ToolGroupTrigger
|
|
58
|
+
count={part.indices.length}
|
|
59
|
+
active={part.status.type === "running"}
|
|
60
|
+
/>
|
|
61
|
+
<ToolGroupContent>{children}</ToolGroupContent>
|
|
62
|
+
</ToolGroupRoot>
|
|
63
|
+
);
|
|
64
|
+
case "tool-call":
|
|
65
|
+
return part.toolUI ?? <ToolFallback {...part} />;
|
|
66
|
+
default:
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}}
|
|
70
|
+
</MessagePrimitive.GroupedParts>
|
|
45
71
|
</MessagePrimitive.Root>
|
|
46
72
|
);
|
|
47
73
|
};
|
|
@@ -181,7 +207,9 @@ import {
|
|
|
181
207
|
]}
|
|
182
208
|
/>
|
|
183
209
|
|
|
184
|
-
### ToolGroup (
|
|
210
|
+
### ToolGroup (Legacy Wrapper)
|
|
211
|
+
|
|
212
|
+
`ToolGroup` is kept for existing code that still uses the deprecated `components.ToolGroup` prop on `MessagePrimitive.Parts`. Prefer composing `ToolGroupRoot`, `ToolGroupTrigger`, and `ToolGroupContent` inside `MessagePrimitive.GroupedParts`.
|
|
185
213
|
|
|
186
214
|
<ParametersTable
|
|
187
215
|
type="ToolGroupProps"
|