@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
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Migration to v0.14
|
|
3
|
+
description: Drops APIs deprecated since v0.11/v0.12, and primitives migrate from components prop to children render functions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Version 0.14 finishes deprecation cycles started in v0.11 and v0.12, and replaces the `components` prop on primitives with a children render function pattern. If your app is on v0.13 and free of deprecation warnings, the only required change is the children API migration.
|
|
7
|
+
|
|
8
|
+
## Automatic Migration
|
|
9
|
+
|
|
10
|
+
The codemod that ships with the CLI handles the v0.12 hook renames (`useAssistantApi` → `useAui`, etc.) which are also removed in v0.14:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npx assistant-ui@latest upgrade
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The other removals listed below are simple renames you can apply with find-and-replace.
|
|
17
|
+
|
|
18
|
+
## Hook Aliases Removed
|
|
19
|
+
|
|
20
|
+
These thin aliases existed only for backwards compatibility:
|
|
21
|
+
|
|
22
|
+
| Removed | Replacement |
|
|
23
|
+
| ------------------------------------ | ---------------------------- |
|
|
24
|
+
| `useAssistantApi` | `useAui` |
|
|
25
|
+
| `useAssistantState` | `useAuiState` |
|
|
26
|
+
| `useAssistantEvent` | `useAuiEvent` |
|
|
27
|
+
| `AssistantIf` | `AuiIf` |
|
|
28
|
+
| `useLocalThreadRuntime` | `useLocalRuntime` |
|
|
29
|
+
| `unstable_useRemoteThreadListRuntime`| `useRemoteThreadListRuntime` |
|
|
30
|
+
| `unstable_useCloudThreadListAdapter` | `useCloudThreadListAdapter` |
|
|
31
|
+
| `unstable_RemoteThreadListAdapter` | `RemoteThreadListAdapter` |
|
|
32
|
+
| `unstable_InMemoryThreadListAdapter` | `InMemoryThreadListAdapter` |
|
|
33
|
+
|
|
34
|
+
## Runtime API Cleanups
|
|
35
|
+
|
|
36
|
+
### `AssistantRuntime`
|
|
37
|
+
|
|
38
|
+
| Removed | Replacement |
|
|
39
|
+
| ---------------------------------------- | ----------------------------------------- |
|
|
40
|
+
| `runtime.threadList` | `runtime.threads` |
|
|
41
|
+
| `runtime.switchToNewThread()` | `runtime.threads.switchToNewThread()` |
|
|
42
|
+
| `runtime.switchToThread(id)` | `runtime.threads.switchToThread(id)` |
|
|
43
|
+
| `runtime.registerModelConfigProvider(p)` | `runtime.registerModelContextProvider(p)` |
|
|
44
|
+
| `runtime.reset({ initialMessages })` | `runtime.thread.reset(initialMessages)` |
|
|
45
|
+
|
|
46
|
+
### `ThreadRuntime`
|
|
47
|
+
|
|
48
|
+
| Removed | Replacement |
|
|
49
|
+
| ------------------------------------------ | ----------------------------------- |
|
|
50
|
+
| `thread.startRun(parentId)` (positional) | `thread.startRun({ parentId })` |
|
|
51
|
+
| `thread.unstable_resumeRun(config)` | `thread.resumeRun(config)` |
|
|
52
|
+
| `thread.unstable_loadExternalState(state)` | `thread.importExternalState(state)` |
|
|
53
|
+
| `thread.getModelConfig()` | `thread.getModelContext()` |
|
|
54
|
+
|
|
55
|
+
### `MessageState` / `MessageRuntime`
|
|
56
|
+
|
|
57
|
+
The duplicate top-level `submittedFeedback` field has been removed. It has always been mirrored from `message.metadata.submittedFeedback`, which remains the source of truth:
|
|
58
|
+
|
|
59
|
+
```tsx
|
|
60
|
+
// Before
|
|
61
|
+
useAuiState((s) => s.message.submittedFeedback);
|
|
62
|
+
|
|
63
|
+
// After
|
|
64
|
+
useAuiState((s) => s.message.metadata.submittedFeedback);
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### `ChatModelRunOptions`
|
|
68
|
+
|
|
69
|
+
If you wrote a custom `ChatModelAdapter`, the legacy alias `options.config` (which mirrored `options.context`) is gone:
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
// Before
|
|
73
|
+
const adapter: ChatModelAdapter = {
|
|
74
|
+
async run({ messages, config }) {
|
|
75
|
+
/* config.tools, config.config, ... */
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
// After
|
|
80
|
+
const adapter: ChatModelAdapter = {
|
|
81
|
+
async run({ messages, context }) {
|
|
82
|
+
/* context.tools, context.config, ... */
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## External Store Helpers
|
|
88
|
+
|
|
89
|
+
`getExternalStoreMessage` (singular) has been removed. Use `getExternalStoreMessages` (plural), which always returns an array — even when only one source message is bound:
|
|
90
|
+
|
|
91
|
+
```ts
|
|
92
|
+
// Before
|
|
93
|
+
const original = getExternalStoreMessage<MyMessage>(threadMessage);
|
|
94
|
+
|
|
95
|
+
// After
|
|
96
|
+
const [original] = getExternalStoreMessages<MyMessage>(threadMessage);
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Assistant Transport Helpers
|
|
100
|
+
|
|
101
|
+
`toAISDKTools` and `getEnabledTools` (re-exported from `@assistant-ui/react`) have been removed. Both wrapped functionality that's now exposed directly by `assistant-stream`:
|
|
102
|
+
|
|
103
|
+
```ts
|
|
104
|
+
// Before
|
|
105
|
+
import { toAISDKTools } from "@assistant-ui/react";
|
|
106
|
+
const schemas = toAISDKTools(tools);
|
|
107
|
+
|
|
108
|
+
// After
|
|
109
|
+
import { toToolsJSONSchema } from "assistant-stream";
|
|
110
|
+
const schemas = toToolsJSONSchema(tools);
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
`toToolsJSONSchema` filters out `disabled` and `backend` tools by default. To replicate the old `toAISDKTools` behavior exactly (include all tools regardless), pass `{ filter: () => true }`.
|
|
114
|
+
|
|
115
|
+
## react-langgraph
|
|
116
|
+
|
|
117
|
+
`useLangGraphRuntime`'s `onSwitchToThread` option has been removed. Use `load`, which has the same signature plus an optional `AbortSignal`:
|
|
118
|
+
|
|
119
|
+
```ts
|
|
120
|
+
// Before
|
|
121
|
+
useLangGraphRuntime({
|
|
122
|
+
stream,
|
|
123
|
+
onSwitchToThread: async (threadId) => {
|
|
124
|
+
return await fetchThread(threadId);
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
// After
|
|
129
|
+
useLangGraphRuntime({
|
|
130
|
+
stream,
|
|
131
|
+
load: async (threadId, { signal } = {}) => {
|
|
132
|
+
return await fetchThread(threadId, { signal });
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Children API for Primitives
|
|
138
|
+
|
|
139
|
+
Version 0.14 replaces the `components` prop on primitives with a children render function pattern. This gives you full control over rendering with simple inline logic.
|
|
140
|
+
|
|
141
|
+
### ThreadPrimitive.Messages
|
|
142
|
+
|
|
143
|
+
**Before:**
|
|
144
|
+
|
|
145
|
+
```tsx
|
|
146
|
+
<ThreadPrimitive.Messages
|
|
147
|
+
components={{
|
|
148
|
+
UserMessage,
|
|
149
|
+
EditComposer,
|
|
150
|
+
AssistantMessage,
|
|
151
|
+
}}
|
|
152
|
+
/>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**After:**
|
|
156
|
+
|
|
157
|
+
```tsx
|
|
158
|
+
<ThreadPrimitive.Messages>
|
|
159
|
+
{({ message }) => {
|
|
160
|
+
if (message.composer.isEditing) return <EditComposer />;
|
|
161
|
+
if (message.role === "user") return <UserMessage />;
|
|
162
|
+
return <AssistantMessage />;
|
|
163
|
+
}}
|
|
164
|
+
</ThreadPrimitive.Messages>
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### MessagePrimitive.Parts
|
|
168
|
+
|
|
169
|
+
**Before:**
|
|
170
|
+
|
|
171
|
+
```tsx
|
|
172
|
+
<MessagePrimitive.Parts
|
|
173
|
+
components={{
|
|
174
|
+
Text: MarkdownText,
|
|
175
|
+
Reasoning,
|
|
176
|
+
tools: { Fallback: ToolFallback },
|
|
177
|
+
}}
|
|
178
|
+
/>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**After:**
|
|
182
|
+
|
|
183
|
+
```tsx
|
|
184
|
+
<MessagePrimitive.Parts>
|
|
185
|
+
{({ part }) => {
|
|
186
|
+
if (part.type === "text") return <MarkdownText />;
|
|
187
|
+
if (part.type === "reasoning") return <Reasoning {...part} />;
|
|
188
|
+
if (part.type === "tool-call")
|
|
189
|
+
return part.toolUI ?? <ToolFallback {...part} />;
|
|
190
|
+
return null;
|
|
191
|
+
}}
|
|
192
|
+
</MessagePrimitive.Parts>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### `part.toolUI` and `part.dataRendererUI`
|
|
196
|
+
|
|
197
|
+
Tool-call parts now expose a `toolUI` property that resolves to the registered tool UI (via `useAssistantToolUI` / `makeAssistantToolUI`) or `null` if none is registered. Data parts similarly expose `dataRendererUI`.
|
|
198
|
+
|
|
199
|
+
```tsx
|
|
200
|
+
// Renders the registered tool UI if available, otherwise ToolFallback
|
|
201
|
+
if (part.type === "tool-call")
|
|
202
|
+
return part.toolUI ?? <ToolFallback {...part} />;
|
|
203
|
+
|
|
204
|
+
// Renders the registered data renderer if available
|
|
205
|
+
if (part.type === "data")
|
|
206
|
+
return part.dataRendererUI ?? null;
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Returning `null`
|
|
210
|
+
|
|
211
|
+
Returning `null` from the children function renders registered tool UIs and data renderer UIs automatically via the registry. To explicitly render nothing (suppressing registered UIs), return `<></>`.
|
|
212
|
+
|
|
213
|
+
```tsx
|
|
214
|
+
<MessagePrimitive.Parts>
|
|
215
|
+
{({ part }) => {
|
|
216
|
+
if (part.type === "text") return <MarkdownText />;
|
|
217
|
+
return null; // registered tool/data UIs still render
|
|
218
|
+
}}
|
|
219
|
+
</MessagePrimitive.Parts>
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### ThreadPrimitive.Suggestions
|
|
223
|
+
|
|
224
|
+
**Before:**
|
|
225
|
+
|
|
226
|
+
```tsx
|
|
227
|
+
<ThreadPrimitive.Suggestions
|
|
228
|
+
components={{ Suggestion: SuggestionItem }}
|
|
229
|
+
/>
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**After:**
|
|
233
|
+
|
|
234
|
+
```tsx
|
|
235
|
+
<ThreadPrimitive.Suggestions>
|
|
236
|
+
{() => <SuggestionItem />}
|
|
237
|
+
</ThreadPrimitive.Suggestions>
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### ThreadListPrimitive.Items
|
|
241
|
+
|
|
242
|
+
**Before:**
|
|
243
|
+
|
|
244
|
+
```tsx
|
|
245
|
+
<ThreadListPrimitive.Items
|
|
246
|
+
components={{ ThreadListItem: MyThreadListItem }}
|
|
247
|
+
/>
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**After:**
|
|
251
|
+
|
|
252
|
+
```tsx
|
|
253
|
+
<ThreadListPrimitive.Items>
|
|
254
|
+
{() => <MyThreadListItem />}
|
|
255
|
+
</ThreadListPrimitive.Items>
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Attachments
|
|
259
|
+
|
|
260
|
+
**Before:**
|
|
261
|
+
|
|
262
|
+
```tsx
|
|
263
|
+
<ComposerPrimitive.Attachments
|
|
264
|
+
components={{ Attachment: MyAttachment }}
|
|
265
|
+
/>
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
**After:**
|
|
269
|
+
|
|
270
|
+
```tsx
|
|
271
|
+
<ComposerPrimitive.Attachments>
|
|
272
|
+
{() => <MyAttachment />}
|
|
273
|
+
</ComposerPrimitive.Attachments>
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### `addResult` / `resume` on enriched part state
|
|
277
|
+
|
|
278
|
+
When using the children API, tool-call parts include `addResult` and `resume` methods directly on the part object. This means `<ToolFallback {...part} />` works without needing a wrapper component to provide these methods.
|
|
279
|
+
|
|
280
|
+
### Backwards Compatibility
|
|
281
|
+
|
|
282
|
+
The `components` prop is still supported on all primitives but is deprecated and will be removed in a future version.
|
|
283
|
+
|
|
284
|
+
## Still Deprecated (not removed)
|
|
285
|
+
|
|
286
|
+
Some APIs marked `@deprecated` are intentionally kept for one more release to give downstream runtimes time to migrate:
|
|
287
|
+
|
|
288
|
+
- `ThreadState.threadId` and `ThreadState.metadata` — use `useThreadListItem()` (see [v0.12 guide](/docs/migrations/v0-12)). Will be removed in a future minor release.
|
|
289
|
+
- Legacy context hooks under `legacy-runtime/hooks/*` (`useThreadRuntime`, `useMessageRuntime`, etc.) — replaced by `useAui()` / `useAuiState()` in v0.12. The codemod migrates these.
|
|
290
|
+
- Primitive `If` components (`ThreadIf`, `MessageIf`, `ComposerIf`, `ThreadEmpty`) — replaced by `AuiIf`. The codemod migrates these.
|
|
291
|
+
|
|
292
|
+
You'll continue to see deprecation warnings on these; expect removal in a future minor release.
|
|
293
|
+
|
|
294
|
+
## Getting Help
|
|
295
|
+
|
|
296
|
+
- File issues at https://github.com/assistant-ui/assistant-ui/issues
|
|
297
|
+
- See the [deprecation policy](/docs/migrations/deprecation-policy) for the support window
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: ChainOfThought
|
|
3
3
|
description: Collapsible accordion for grouping reasoning steps and tool calls.
|
|
4
|
+
platforms: ["react"]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
import { ChainOfThoughtPrimitiveSample } from "@/components/docs/samples/chain-of-thought-primitive";
|
|
7
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
ChainOfThoughtPrimitive as ChainOfThoughtPrimitiveDocs,
|
|
10
|
+
MessagePrimitive as MessagePrimitiveDocs,
|
|
11
|
+
} from "@/generated/primitiveDocs";
|
|
8
12
|
|
|
9
|
-
The ChainOfThought primitive
|
|
13
|
+
The ChainOfThought primitive is the legacy accordion API for grouped reasoning and tool-call parts. Reasoning models emit reasoning tokens and tool calls before producing a final answer.
|
|
10
14
|
|
|
11
|
-
<Callout type="
|
|
12
|
-
|
|
15
|
+
<Callout type="warn">
|
|
16
|
+
For new grouped reasoning/tool-call UI, use `MessagePrimitive.GroupedParts`. `ChainOfThoughtPrimitive` and `components.ChainOfThought` remain available for maintaining existing code.
|
|
13
17
|
</Callout>
|
|
14
18
|
|
|
15
19
|
<Tabs items={["Preview", "Code"]}>
|
|
@@ -18,105 +22,106 @@ Grouped Chain of Thought currently plugs into `MessagePrimitive.Parts` via `comp
|
|
|
18
22
|
</Tab>
|
|
19
23
|
<Tab>
|
|
20
24
|
```tsx
|
|
21
|
-
import {
|
|
22
|
-
AuiIf,
|
|
23
|
-
ChainOfThoughtPrimitive,
|
|
24
|
-
MessagePrimitive,
|
|
25
|
-
} from "@assistant-ui/react";
|
|
25
|
+
import { MessagePrimitive } from "@assistant-ui/react";
|
|
26
26
|
|
|
27
27
|
function AssistantMessage() {
|
|
28
28
|
return (
|
|
29
29
|
<MessagePrimitive.Root>
|
|
30
|
-
<MessagePrimitive.
|
|
31
|
-
{(
|
|
32
|
-
if (part.type === "
|
|
30
|
+
<MessagePrimitive.GroupedParts
|
|
31
|
+
groupBy={(part) => {
|
|
32
|
+
if (part.type === "reasoning")
|
|
33
|
+
return ["group-chainOfThought", "group-reasoning"];
|
|
34
|
+
if (part.type === "tool-call")
|
|
35
|
+
return ["group-chainOfThought", "group-tool"];
|
|
33
36
|
return null;
|
|
34
37
|
}}
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
>
|
|
39
|
+
{({ part, children }) => {
|
|
40
|
+
switch (part.type) {
|
|
41
|
+
case "group-chainOfThought":
|
|
42
|
+
return <ThinkingAccordion>{children}</ThinkingAccordion>;
|
|
43
|
+
case "group-reasoning":
|
|
44
|
+
return <ReasoningGroup>{children}</ReasoningGroup>;
|
|
45
|
+
case "group-tool":
|
|
46
|
+
return <ToolGroup>{children}</ToolGroup>;
|
|
47
|
+
case "text":
|
|
48
|
+
return <MyText />;
|
|
49
|
+
case "reasoning":
|
|
50
|
+
return <MyReasoning {...part} />;
|
|
51
|
+
case "tool-call":
|
|
52
|
+
return part.toolUI ?? <MyToolFallback {...part} />;
|
|
53
|
+
default:
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
}}
|
|
57
|
+
</MessagePrimitive.GroupedParts>
|
|
37
58
|
</MessagePrimitive.Root>
|
|
38
59
|
);
|
|
39
60
|
}
|
|
40
|
-
|
|
41
|
-
function ChainOfThought() {
|
|
42
|
-
return (
|
|
43
|
-
<ChainOfThoughtPrimitive.Root className="my-2 rounded-lg border">
|
|
44
|
-
<ChainOfThoughtPrimitive.AccordionTrigger className="flex w-full cursor-pointer items-center gap-2 px-4 py-2.5 font-medium text-sm hover:bg-muted/50">
|
|
45
|
-
Thinking
|
|
46
|
-
</ChainOfThoughtPrimitive.AccordionTrigger>
|
|
47
|
-
<AuiIf condition={(s) => !s.chainOfThought.collapsed}>
|
|
48
|
-
<ChainOfThoughtPrimitive.Parts
|
|
49
|
-
components={{
|
|
50
|
-
Reasoning: ({ text }) => (
|
|
51
|
-
<p className="whitespace-pre-wrap px-4 py-2 text-muted-foreground text-sm italic">
|
|
52
|
-
{text}
|
|
53
|
-
</p>
|
|
54
|
-
),
|
|
55
|
-
tools: {
|
|
56
|
-
Fallback: ({ toolName, status }) => (
|
|
57
|
-
<div className="flex items-center gap-2 px-4 py-2 text-sm">
|
|
58
|
-
<span className="font-medium">{toolName}</span>
|
|
59
|
-
<span className="text-muted-foreground">
|
|
60
|
-
{status.type === "running" ? "running..." : "done"}
|
|
61
|
-
</span>
|
|
62
|
-
</div>
|
|
63
|
-
),
|
|
64
|
-
},
|
|
65
|
-
}}
|
|
66
|
-
/>
|
|
67
|
-
</AuiIf>
|
|
68
|
-
</ChainOfThoughtPrimitive.Root>
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
61
|
```
|
|
72
62
|
</Tab>
|
|
73
63
|
</Tabs>
|
|
74
64
|
|
|
75
|
-
##
|
|
65
|
+
## Recommended: GroupedParts
|
|
76
66
|
|
|
77
|
-
|
|
67
|
+
Group reasoning and tool-call parts directly in your assistant message:
|
|
78
68
|
|
|
79
69
|
```tsx
|
|
80
|
-
import {
|
|
81
|
-
ChainOfThoughtPrimitive,
|
|
82
|
-
MessagePrimitive,
|
|
83
|
-
} from "@assistant-ui/react";
|
|
70
|
+
import { MessagePrimitive } from "@assistant-ui/react";
|
|
84
71
|
|
|
85
72
|
<MessagePrimitive.Root>
|
|
86
|
-
<MessagePrimitive.
|
|
87
|
-
{(
|
|
88
|
-
if (part.type === "
|
|
73
|
+
<MessagePrimitive.GroupedParts
|
|
74
|
+
groupBy={(part) => {
|
|
75
|
+
if (part.type === "reasoning")
|
|
76
|
+
return ["group-chainOfThought", "group-reasoning"];
|
|
77
|
+
if (part.type === "tool-call")
|
|
78
|
+
return ["group-chainOfThought", "group-tool"];
|
|
89
79
|
return null;
|
|
90
80
|
}}
|
|
91
|
-
|
|
92
|
-
|
|
81
|
+
>
|
|
82
|
+
{({ part, children }) => {
|
|
83
|
+
switch (part.type) {
|
|
84
|
+
case "group-chainOfThought":
|
|
85
|
+
return <ThinkingAccordion>{children}</ThinkingAccordion>;
|
|
86
|
+
case "group-reasoning":
|
|
87
|
+
return <ReasoningGroup>{children}</ReasoningGroup>;
|
|
88
|
+
case "group-tool":
|
|
89
|
+
return <ToolGroup>{children}</ToolGroup>;
|
|
90
|
+
case "text":
|
|
91
|
+
return <MyText />;
|
|
92
|
+
case "reasoning":
|
|
93
|
+
return <MyReasoning {...part} />;
|
|
94
|
+
case "tool-call":
|
|
95
|
+
return part.toolUI ?? <MyToolFallback {...part} />;
|
|
96
|
+
default:
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
}}
|
|
100
|
+
</MessagePrimitive.GroupedParts>
|
|
93
101
|
</MessagePrimitive.Root>
|
|
94
|
-
|
|
95
|
-
function MyChainOfThought() {
|
|
96
|
-
return (
|
|
97
|
-
<ChainOfThoughtPrimitive.Root>
|
|
98
|
-
<ChainOfThoughtPrimitive.AccordionTrigger>
|
|
99
|
-
Thinking
|
|
100
|
-
</ChainOfThoughtPrimitive.AccordionTrigger>
|
|
101
|
-
<ChainOfThoughtPrimitive.Parts />
|
|
102
|
-
</ChainOfThoughtPrimitive.Root>
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
102
|
```
|
|
106
103
|
|
|
107
|
-
|
|
104
|
+
### GroupedParts API Reference
|
|
105
|
+
|
|
106
|
+
<PrimitivesTypeTable type="MessagePrimitiveGroupedPartsProps" parameters={MessagePrimitiveDocs.GroupedParts.props} />
|
|
107
|
+
|
|
108
|
+
## Legacy: ChainOfThoughtPrimitive
|
|
109
|
+
|
|
110
|
+
### Quick Start
|
|
111
|
+
|
|
112
|
+
Render your normal message parts with `MessagePrimitive.Parts`, then place a `ChainOfThought` component alongside them inside the same `MessagePrimitive.Root` only when maintaining older code that already uses the ChainOfThought primitive.
|
|
108
113
|
|
|
109
114
|
<Callout type="info">
|
|
110
115
|
Runtime setup: primitives require runtime context. Wrap your UI in `AssistantRuntimeProvider` with a runtime (for example `useLocalRuntime(...)`). See [Pick a Runtime](/docs/runtimes/pick-a-runtime).
|
|
111
116
|
</Callout>
|
|
112
117
|
|
|
113
|
-
|
|
118
|
+
### Concepts
|
|
114
119
|
|
|
115
|
-
|
|
120
|
+
#### How Grouping Works
|
|
116
121
|
|
|
117
|
-
`ChainOfThoughtPrimitive.Parts` reads the current message's grouped reasoning and tool-call context
|
|
122
|
+
`ChainOfThoughtPrimitive.Parts` reads the current message's grouped reasoning and tool-call context from the legacy `components.ChainOfThought` path. New code should use `MessagePrimitive.GroupedParts` instead.
|
|
118
123
|
|
|
119
|
-
|
|
124
|
+
#### Collapsed State
|
|
120
125
|
|
|
121
126
|
The accordion starts collapsed by default. `AccordionTrigger` toggles between collapsed and expanded. Use `AuiIf` to conditionally render parts based on the collapsed state:
|
|
122
127
|
|
|
@@ -135,7 +140,7 @@ import { AuiIf, ChainOfThoughtPrimitive } from "@assistant-ui/react";
|
|
|
135
140
|
</ChainOfThoughtPrimitive.Root>
|
|
136
141
|
```
|
|
137
142
|
|
|
138
|
-
|
|
143
|
+
#### Chevron Indicators
|
|
139
144
|
|
|
140
145
|
Use `AuiIf` to show directional icons that reflect the current state:
|
|
141
146
|
|
|
@@ -154,9 +159,9 @@ import { ChevronDownIcon, ChevronRightIcon } from "lucide-react";
|
|
|
154
159
|
</ChainOfThoughtPrimitive.AccordionTrigger>
|
|
155
160
|
```
|
|
156
161
|
|
|
157
|
-
|
|
162
|
+
#### Parts Components
|
|
158
163
|
|
|
159
|
-
`ChainOfThoughtPrimitive.Parts` accepts a `components` prop to control how each part type renders:
|
|
164
|
+
`ChainOfThoughtPrimitive.Parts` accepts a deprecated `components` prop to control how each part type renders:
|
|
160
165
|
|
|
161
166
|
```tsx
|
|
162
167
|
<ChainOfThoughtPrimitive.Parts
|
|
@@ -186,9 +191,9 @@ import { ChevronDownIcon, ChevronRightIcon } from "lucide-react";
|
|
|
186
191
|
| `components.tools.Fallback` | `ToolCallMessagePartComponent` | Fallback for tool-call parts |
|
|
187
192
|
| `components.Layout` | `ComponentType<PropsWithChildren>` | Wrapper around each rendered part |
|
|
188
193
|
|
|
189
|
-
|
|
194
|
+
### Parts API Reference
|
|
190
195
|
|
|
191
|
-
|
|
196
|
+
#### Root
|
|
192
197
|
|
|
193
198
|
Container for the chain-of-thought disclosure UI. Renders a `<div>` element unless `asChild` is set.
|
|
194
199
|
|
|
@@ -198,7 +203,7 @@ Container for the chain-of-thought disclosure UI. Renders a `<div>` element unle
|
|
|
198
203
|
</ChainOfThoughtPrimitive.Root>
|
|
199
204
|
```
|
|
200
205
|
|
|
201
|
-
|
|
206
|
+
#### AccordionTrigger
|
|
202
207
|
|
|
203
208
|
Trigger that toggles the collapsed state. Renders a `<button>` element unless `asChild` is set.
|
|
204
209
|
|
|
@@ -208,7 +213,7 @@ Trigger that toggles the collapsed state. Renders a `<button>` element unless `a
|
|
|
208
213
|
</ChainOfThoughtPrimitive.AccordionTrigger>
|
|
209
214
|
```
|
|
210
215
|
|
|
211
|
-
|
|
216
|
+
#### Parts
|
|
212
217
|
|
|
213
218
|
Renders reasoning and tool-call parts. This component does not track collapsed state internally, so control visibility with `AuiIf` as shown in the patterns below.
|
|
214
219
|
|
|
@@ -233,9 +238,9 @@ Renders reasoning and tool-call parts. This component does not track collapsed s
|
|
|
233
238
|
|
|
234
239
|
<PrimitivesTypeTable type="ChainOfThoughtPrimitivePartsProps" parameters={ChainOfThoughtPrimitiveDocs.Parts.props} />
|
|
235
240
|
|
|
236
|
-
|
|
241
|
+
### Patterns
|
|
237
242
|
|
|
238
|
-
|
|
243
|
+
#### Minimal Accordion
|
|
239
244
|
|
|
240
245
|
```tsx
|
|
241
246
|
function ChainOfThought() {
|
|
@@ -260,7 +265,7 @@ function ChainOfThought() {
|
|
|
260
265
|
}
|
|
261
266
|
```
|
|
262
267
|
|
|
263
|
-
|
|
268
|
+
#### With Tool Calls
|
|
264
269
|
|
|
265
270
|
```tsx
|
|
266
271
|
function ChainOfThought() {
|
|
@@ -298,11 +303,11 @@ function ChainOfThought() {
|
|
|
298
303
|
}
|
|
299
304
|
```
|
|
300
305
|
|
|
301
|
-
|
|
306
|
+
### Relationship to Components
|
|
302
307
|
|
|
303
|
-
The [Chain of Thought guide](/docs/guides/chain-of-thought) covers end-to-end setup including backend configuration with reasoning models. See the complete [with-chain-of-thought example](https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-chain-of-thought) for a full working implementation.
|
|
308
|
+
The [Chain of Thought guide](/docs/guides/chain-of-thought) covers end-to-end setup with `MessagePrimitive.GroupedParts`, including backend configuration with reasoning models. See the complete [with-chain-of-thought example](https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-chain-of-thought) for a full working implementation.
|
|
304
309
|
|
|
305
|
-
|
|
310
|
+
### API Reference
|
|
306
311
|
|
|
307
312
|
For the complete guide including backend configuration, see [Chain of Thought](/docs/guides/chain-of-thought). For prop details, see the [ChainOfThoughtPrimitive source](https://github.com/assistant-ui/assistant-ui/tree/main/packages/react/src/primitives/chainOfThought).
|
|
308
313
|
|