@assistant-ui/mcp-docs-server 0.2.3 → 0.3.1
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/README.md +16 -43
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -91
- package/dist/index.js.map +1 -1
- package/dist/proxy.d.ts +9 -0
- package/dist/proxy.d.ts.map +1 -0
- package/dist/proxy.js +91 -0
- package/dist/proxy.js.map +1 -0
- package/package.json +8 -12
- package/src/index.ts +3 -115
- package/src/proxy.test.ts +385 -0
- package/src/proxy.ts +126 -0
- package/.docs/organized/code-examples/waterfall.md +0 -807
- package/.docs/organized/code-examples/with-a2a.md +0 -675
- package/.docs/organized/code-examples/with-ag-ui.md +0 -553
- package/.docs/organized/code-examples/with-ai-sdk-v7.md +0 -466
- package/.docs/organized/code-examples/with-artifacts.md +0 -815
- package/.docs/organized/code-examples/with-assistant-transport.md +0 -576
- package/.docs/organized/code-examples/with-browser-extension.md +0 -371
- package/.docs/organized/code-examples/with-chain-of-thought.md +0 -962
- package/.docs/organized/code-examples/with-cloud-standalone.md +0 -681
- package/.docs/organized/code-examples/with-cloud.md +0 -439
- package/.docs/organized/code-examples/with-custom-thread-list.md +0 -569
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +0 -527
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +0 -697
- package/.docs/organized/code-examples/with-eve.md +0 -405
- package/.docs/organized/code-examples/with-expo.md +0 -2246
- package/.docs/organized/code-examples/with-external-store.md +0 -421
- package/.docs/organized/code-examples/with-ffmpeg.md +0 -829
- package/.docs/organized/code-examples/with-generative-ui.md +0 -1810
- package/.docs/organized/code-examples/with-google-adk.md +0 -368
- package/.docs/organized/code-examples/with-heat-graph.md +0 -304
- package/.docs/organized/code-examples/with-image-generation.md +0 -463
- package/.docs/organized/code-examples/with-interactables.md +0 -733
- package/.docs/organized/code-examples/with-langchain.md +0 -446
- package/.docs/organized/code-examples/with-langgraph.md +0 -855
- package/.docs/organized/code-examples/with-livekit.md +0 -643
- package/.docs/organized/code-examples/with-mcp.md +0 -782
- package/.docs/organized/code-examples/with-nuxt.md +0 -2428
- package/.docs/organized/code-examples/with-opencode.md +0 -1974
- package/.docs/organized/code-examples/with-openui.md +0 -450
- package/.docs/organized/code-examples/with-pi.md +0 -2084
- package/.docs/organized/code-examples/with-react-hook-form.md +0 -727
- package/.docs/organized/code-examples/with-react-ink-web.md +0 -740
- package/.docs/organized/code-examples/with-react-ink.md +0 -473
- package/.docs/organized/code-examples/with-react-router.md +0 -936
- package/.docs/organized/code-examples/with-resumable-stream.md +0 -668
- package/.docs/organized/code-examples/with-store.md +0 -679
- package/.docs/organized/code-examples/with-svelte.md +0 -415
- package/.docs/organized/code-examples/with-sveltekit.md +0 -1061
- package/.docs/organized/code-examples/with-tanstack.md +0 -812
- package/.docs/organized/code-examples/with-tap-runtime.md +0 -813
- package/.docs/organized/code-examples/with-virtualized-thread.md +0 -681
- package/.docs/organized/code-examples/with-vue.md +0 -408
- package/.docs/raw/docs/(getting-started)/architecture.mdx +0 -146
- package/.docs/raw/docs/(getting-started)/base-ui.mdx +0 -39
- package/.docs/raw/docs/(getting-started)/cli.mdx +0 -542
- package/.docs/raw/docs/(getting-started)/devtools.mdx +0 -79
- package/.docs/raw/docs/(getting-started)/index.mdx +0 -23
- package/.docs/raw/docs/(getting-started)/installation.mdx +0 -483
- package/.docs/raw/docs/(getting-started)/llm.mdx +0 -211
- package/.docs/raw/docs/(getting-started)/rtl.mdx +0 -78
- package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +0 -36
- package/.docs/raw/docs/(reference)/api-reference/adapters/feedback.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +0 -34
- package/.docs/raw/docs/(reference)/api-reference/adapters/model.mdx +0 -44
- package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +0 -59
- package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +0 -26
- package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +0 -84
- package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/context-providers/scoped-providers.mdx +0 -64
- package/.docs/raw/docs/(reference)/api-reference/external-store/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +0 -57
- package/.docs/raw/docs/(reference)/api-reference/external-store/runtime.mdx +0 -49
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/a2ui.mdx +0 -40
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/actions.mdx +0 -56
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/components.mdx +0 -86
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/index.mdx +0 -39
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/json-generative-ui.mdx +0 -42
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/rendering.mdx +0 -84
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/slack.mdx +0 -85
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/spec.mdx +0 -45
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/teams.mdx +0 -93
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/tokens.mdx +0 -62
- package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +0 -129
- package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +0 -31
- package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +0 -34
- package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +0 -350
- package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +0 -28
- package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +0 -97
- package/.docs/raw/docs/(reference)/api-reference/integrations/ai-sdk.mdx +0 -200
- package/.docs/raw/docs/(reference)/api-reference/integrations/cloud-ai-sdk.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +0 -118
- package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +0 -28
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +0 -37
- package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +0 -50
- package/.docs/raw/docs/(reference)/api-reference/model-context/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/model-context/registry.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/overview.mdx +0 -566
- package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar-more.mdx +0 -152
- package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +0 -239
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +0 -208
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-modal.mdx +0 -108
- package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +0 -99
- package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +0 -145
- package/.docs/raw/docs/(reference)/api-reference/primitives/chain-of-thought.mdx +0 -82
- package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +0 -637
- package/.docs/raw/docs/(reference)/api-reference/primitives/composition.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/primitives/error.mdx +0 -65
- package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +0 -73
- package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +0 -117
- package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +0 -339
- package/.docs/raw/docs/(reference)/api-reference/primitives/queue-item.mdx +0 -77
- package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +0 -88
- package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +0 -81
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item-more.mdx +0 -129
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item.mdx +0 -138
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +0 -122
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +0 -289
- package/.docs/raw/docs/(reference)/api-reference/runtimes/assistant-runtime.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/runtimes/attachment-runtime.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/runtimes/composer-runtime.mdx +0 -32
- package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +0 -43
- package/.docs/raw/docs/(reference)/api-reference/runtimes/message-part-runtime.mdx +0 -43
- package/.docs/raw/docs/(reference)/api-reference/runtimes/message-runtime.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/runtimes/queue-state.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-item-runtime.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-runtime.mdx +0 -36
- package/.docs/raw/docs/(reference)/api-reference/tools/component-tools.mdx +0 -85
- package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +0 -45
- package/.docs/raw/docs/(reference)/api-reference/tools/interactables-legacy.mdx +0 -55
- package/.docs/raw/docs/(reference)/api-reference/tools/interactables.mdx +0 -151
- package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +0 -106
- package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +0 -62
- package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +0 -178
- package/.docs/raw/docs/(reference)/api-reference/transport/assistant-transport.mdx +0 -48
- package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +0 -62
- package/.docs/raw/docs/(reference)/api-reference/transport/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/utilities/index.mdx +0 -19
- package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +0 -152
- package/.docs/raw/docs/(reference)/api-reference/voice/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +0 -54
- package/.docs/raw/docs/(reference)/api-reference/voice/speech-dictation.mdx +0 -36
- package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +0 -527
- package/.docs/raw/docs/cloud/ai-sdk.mdx +0 -604
- package/.docs/raw/docs/cloud/authorization.mdx +0 -252
- package/.docs/raw/docs/cloud/index.mdx +0 -46
- package/.docs/raw/docs/cloud/langgraph.mdx +0 -554
- package/.docs/raw/docs/copilots/assistant-frame.mdx +0 -411
- package/.docs/raw/docs/copilots/make-assistant-visible.mdx +0 -82
- package/.docs/raw/docs/copilots/model-context.mdx +0 -156
- package/.docs/raw/docs/copilots/motivation.mdx +0 -202
- package/.docs/raw/docs/copilots/use-assistant-instructions.mdx +0 -64
- package/.docs/raw/docs/guides/attachments.mdx +0 -619
- package/.docs/raw/docs/guides/branching.mdx +0 -76
- package/.docs/raw/docs/guides/chain-of-thought.mdx +0 -164
- package/.docs/raw/docs/guides/chatgpt-subscription.mdx +0 -108
- package/.docs/raw/docs/guides/context-api.mdx +0 -619
- package/.docs/raw/docs/guides/dictation.mdx +0 -298
- package/.docs/raw/docs/guides/editing.mdx +0 -102
- package/.docs/raw/docs/guides/electron.mdx +0 -369
- package/.docs/raw/docs/guides/headless-composer-input.mdx +0 -113
- package/.docs/raw/docs/guides/image-generation.mdx +0 -74
- package/.docs/raw/docs/guides/index.mdx +0 -117
- package/.docs/raw/docs/guides/input-history.mdx +0 -55
- package/.docs/raw/docs/guides/latex.mdx +0 -158
- package/.docs/raw/docs/guides/mentions.mdx +0 -575
- package/.docs/raw/docs/guides/message-timing.mdx +0 -215
- package/.docs/raw/docs/guides/quoting.mdx +0 -169
- package/.docs/raw/docs/guides/resumable-stream-deployment.mdx +0 -212
- package/.docs/raw/docs/guides/resumable-stream-stores.mdx +0 -152
- package/.docs/raw/docs/guides/resumable-streams.mdx +0 -292
- package/.docs/raw/docs/guides/slash-commands.mdx +0 -358
- package/.docs/raw/docs/guides/speech.mdx +0 -172
- package/.docs/raw/docs/guides/suggestions.mdx +0 -384
- package/.docs/raw/docs/guides/virtualization.mdx +0 -133
- package/.docs/raw/docs/guides/voice.mdx +0 -310
- package/.docs/raw/docs/ink/adapters.mdx +0 -99
- package/.docs/raw/docs/ink/custom-backend.mdx +0 -254
- package/.docs/raw/docs/ink/hooks.mdx +0 -469
- package/.docs/raw/docs/ink/index.mdx +0 -237
- package/.docs/raw/docs/ink/migration.mdx +0 -138
- package/.docs/raw/docs/ink/primitives.mdx +0 -1259
- package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +0 -528
- package/.docs/raw/docs/integrations/auth/better-auth.mdx +0 -188
- package/.docs/raw/docs/integrations/auth/clerk.mdx +0 -166
- package/.docs/raw/docs/integrations/auth/next-auth.mdx +0 -191
- package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +0 -88
- package/.docs/raw/docs/integrations/frameworks/cloudflare-agents.mdx +0 -283
- package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +0 -188
- package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +0 -57
- package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +0 -201
- package/.docs/raw/docs/integrations/gateways/index.mdx +0 -162
- package/.docs/raw/docs/integrations/index.mdx +0 -178
- package/.docs/raw/docs/integrations/observability/helicone.mdx +0 -129
- package/.docs/raw/docs/integrations/observability/langfuse.mdx +0 -161
- package/.docs/raw/docs/integrations/observability/langsmith.mdx +0 -151
- package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +0 -773
- package/.docs/raw/docs/migrations/deprecation-policy.mdx +0 -42
- package/.docs/raw/docs/migrations/index.mdx +0 -50
- package/.docs/raw/docs/migrations/react-compatibility.mdx +0 -74
- package/.docs/raw/docs/migrations/react-langgraph-v0-7.mdx +0 -328
- package/.docs/raw/docs/migrations/toolkit-tools.mdx +0 -236
- package/.docs/raw/docs/migrations/v0-11.mdx +0 -172
- package/.docs/raw/docs/migrations/v0-12.mdx +0 -302
- package/.docs/raw/docs/migrations/v0-14.mdx +0 -297
- package/.docs/raw/docs/migrations/v0-15.mdx +0 -270
- package/.docs/raw/docs/primitives/action-bar.mdx +0 -352
- package/.docs/raw/docs/primitives/assistant-modal.mdx +0 -216
- package/.docs/raw/docs/primitives/attachment.mdx +0 -217
- package/.docs/raw/docs/primitives/branch-picker.mdx +0 -222
- package/.docs/raw/docs/primitives/chain-of-thought.mdx +0 -315
- package/.docs/raw/docs/primitives/composer.mdx +0 -659
- package/.docs/raw/docs/primitives/error.mdx +0 -142
- package/.docs/raw/docs/primitives/index.mdx +0 -99
- package/.docs/raw/docs/primitives/message.mdx +0 -618
- package/.docs/raw/docs/primitives/selection-toolbar.mdx +0 -191
- package/.docs/raw/docs/primitives/suggestion.mdx +0 -254
- package/.docs/raw/docs/primitives/thread-list.mdx +0 -467
- package/.docs/raw/docs/primitives/thread.mdx +0 -509
- package/.docs/raw/docs/react-native/adapters.mdx +0 -94
- package/.docs/raw/docs/react-native/custom-backend.mdx +0 -207
- package/.docs/raw/docs/react-native/hooks.mdx +0 -339
- package/.docs/raw/docs/react-native/index.mdx +0 -289
- package/.docs/raw/docs/react-native/migration.mdx +0 -142
- package/.docs/raw/docs/react-native/primitives.mdx +0 -976
- package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +0 -399
- package/.docs/raw/docs/runtimes/a2a/overview.mdx +0 -60
- package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +0 -216
- package/.docs/raw/docs/runtimes/ag-ui/agent-state.mdx +0 -124
- package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +0 -70
- package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +0 -243
- package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +0 -267
- package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +0 -61
- package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +0 -122
- package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +0 -135
- package/.docs/raw/docs/runtimes/ai-sdk/v6-legacy.mdx +0 -636
- package/.docs/raw/docs/runtimes/ai-sdk/v7.mdx +0 -731
- package/.docs/raw/docs/runtimes/claude-managed-agents.mdx +0 -118
- package/.docs/raw/docs/runtimes/concepts/adapters.mdx +0 -265
- package/.docs/raw/docs/runtimes/concepts/architecture.mdx +0 -167
- package/.docs/raw/docs/runtimes/concepts/stability.mdx +0 -68
- package/.docs/raw/docs/runtimes/concepts/threads.mdx +0 -513
- package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +0 -763
- package/.docs/raw/docs/runtimes/custom/data-stream.mdx +0 -339
- package/.docs/raw/docs/runtimes/custom/external-store.mdx +0 -957
- package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +0 -902
- package/.docs/raw/docs/runtimes/custom/overview.mdx +0 -71
- package/.docs/raw/docs/runtimes/eve/overview.mdx +0 -151
- package/.docs/raw/docs/runtimes/eve/quickstart.mdx +0 -192
- package/.docs/raw/docs/runtimes/google-adk/api.mdx +0 -256
- package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +0 -784
- package/.docs/raw/docs/runtimes/google-adk/overview.mdx +0 -69
- package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +0 -229
- package/.docs/raw/docs/runtimes/langchain.mdx +0 -901
- package/.docs/raw/docs/runtimes/langgraph/agent-state.mdx +0 -181
- package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +0 -305
- package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +0 -104
- package/.docs/raw/docs/runtimes/langgraph/overview.mdx +0 -84
- package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +0 -496
- package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +0 -144
- package/.docs/raw/docs/runtimes/langgraph/threads.mdx +0 -113
- package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +0 -29
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -93
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +0 -347
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-3.mdx +0 -393
- package/.docs/raw/docs/runtimes/opencode/hooks.mdx +0 -194
- package/.docs/raw/docs/runtimes/opencode/overview.mdx +0 -58
- package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +0 -119
- package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +0 -133
- package/.docs/raw/docs/tools/a2ui.mdx +0 -107
- package/.docs/raw/docs/tools/backend.mdx +0 -147
- package/.docs/raw/docs/tools/defining-tools.mdx +0 -574
- package/.docs/raw/docs/tools/dynamic-tools.mdx +0 -112
- package/.docs/raw/docs/tools/generative-ui-primitive.mdx +0 -180
- package/.docs/raw/docs/tools/generative-ui-slack.mdx +0 -167
- package/.docs/raw/docs/tools/generative-ui-teams.mdx +0 -160
- package/.docs/raw/docs/tools/generative-ui.mdx +0 -322
- package/.docs/raw/docs/tools/index.mdx +0 -72
- package/.docs/raw/docs/tools/interactables.mdx +0 -1084
- package/.docs/raw/docs/tools/mcp-apps.mdx +0 -363
- package/.docs/raw/docs/tools/mcp.mdx +0 -466
- package/.docs/raw/docs/tools/multi-agent.mdx +0 -237
- package/.docs/raw/docs/tools/openui.mdx +0 -175
- package/.docs/raw/docs/tools/tool-ui.mdx +0 -1020
- package/.docs/raw/docs/tools/user-managed-mcp.mdx +0 -428
- package/.docs/raw/docs/ui/assistant-modal.mdx +0 -166
- package/.docs/raw/docs/ui/assistant-sidebar.mdx +0 -89
- package/.docs/raw/docs/ui/attachment.mdx +0 -279
- package/.docs/raw/docs/ui/composer-trigger-popover.mdx +0 -247
- package/.docs/raw/docs/ui/context-display.mdx +0 -148
- package/.docs/raw/docs/ui/directive-text.mdx +0 -114
- package/.docs/raw/docs/ui/file.mdx +0 -159
- package/.docs/raw/docs/ui/follow-up-suggestions.mdx +0 -82
- package/.docs/raw/docs/ui/image.mdx +0 -102
- package/.docs/raw/docs/ui/markdown.mdx +0 -103
- package/.docs/raw/docs/ui/mcp-config.mdx +0 -107
- package/.docs/raw/docs/ui/mermaid.mdx +0 -92
- package/.docs/raw/docs/ui/message-timing.mdx +0 -93
- package/.docs/raw/docs/ui/model-selector.mdx +0 -455
- package/.docs/raw/docs/ui/part-grouping.mdx +0 -614
- package/.docs/raw/docs/ui/quote.mdx +0 -211
- package/.docs/raw/docs/ui/reasoning.mdx +0 -214
- package/.docs/raw/docs/ui/scrollbar.mdx +0 -77
- package/.docs/raw/docs/ui/sources.mdx +0 -186
- package/.docs/raw/docs/ui/streamdown.mdx +0 -392
- package/.docs/raw/docs/ui/syntax-highlighting.mdx +0 -205
- package/.docs/raw/docs/ui/thread-list.mdx +0 -411
- package/.docs/raw/docs/ui/thread.mdx +0 -559
- package/.docs/raw/docs/ui/tool-fallback.mdx +0 -141
- package/.docs/raw/docs/ui/tool-group.mdx +0 -240
- package/.docs/raw/docs/ui/voice.mdx +0 -173
- package/.docs/raw/docs/utilities/heat-graph.mdx +0 -237
- package/.docs/raw/docs/utilities/react-o11y.mdx +0 -362
- package/.docs/raw/docs/utilities/tw-shimmer.mdx +0 -212
- package/dist/constants.d.ts +0 -14
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -19
- package/dist/constants.js.map +0 -1
- package/dist/prepare-docs/code-examples.d.ts +0 -5
- package/dist/prepare-docs/code-examples.d.ts.map +0 -1
- package/dist/prepare-docs/code-examples.js +0 -117
- package/dist/prepare-docs/code-examples.js.map +0 -1
- package/dist/prepare-docs/copy-raw.d.ts +0 -5
- package/dist/prepare-docs/copy-raw.d.ts.map +0 -1
- package/dist/prepare-docs/copy-raw.js +0 -49
- package/dist/prepare-docs/copy-raw.js.map +0 -1
- package/dist/prepare-docs/prepare.d.ts +0 -1
- package/dist/prepare-docs/prepare.js +0 -22
- package/dist/prepare-docs/prepare.js.map +0 -1
- package/dist/prompts/xulux-playground.d.ts +0 -12
- package/dist/prompts/xulux-playground.d.ts.map +0 -1
- package/dist/prompts/xulux-playground.js +0 -33
- package/dist/prompts/xulux-playground.js.map +0 -1
- package/dist/tools/docs.d.ts +0 -22
- package/dist/tools/docs.d.ts.map +0 -1
- package/dist/tools/docs.js +0 -177
- package/dist/tools/docs.js.map +0 -1
- package/dist/tools/examples.d.ts +0 -24
- package/dist/tools/examples.d.ts.map +0 -1
- package/dist/tools/examples.js +0 -87
- package/dist/tools/examples.js.map +0 -1
- package/dist/tools/resources.d.ts +0 -6
- package/dist/tools/resources.d.ts.map +0 -1
- package/dist/tools/resources.js +0 -75
- package/dist/tools/resources.js.map +0 -1
- package/dist/tools/search.d.ts +0 -24
- package/dist/tools/search.d.ts.map +0 -1
- package/dist/tools/search.js +0 -39
- package/dist/tools/search.js.map +0 -1
- package/dist/tools/tests/mcp-test-client.d.ts +0 -15
- package/dist/tools/tests/mcp-test-client.d.ts.map +0 -1
- package/dist/tools/tests/mcp-test-client.js +0 -68
- package/dist/tools/tests/mcp-test-client.js.map +0 -1
- package/dist/tools/tests/test-setup.d.ts +0 -7
- package/dist/tools/tests/test-setup.d.ts.map +0 -1
- package/dist/tools/tests/test-setup.js +0 -36
- package/dist/tools/tests/test-setup.js.map +0 -1
- package/dist/tools/xulux-templates.d.ts +0 -58
- package/dist/tools/xulux-templates.d.ts.map +0 -1
- package/dist/tools/xulux-templates.js +0 -84
- package/dist/tools/xulux-templates.js.map +0 -1
- package/dist/utils/cache.d.ts +0 -5
- package/dist/utils/cache.d.ts.map +0 -1
- package/dist/utils/cache.js +0 -18
- package/dist/utils/cache.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -10
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -20
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/mcp-format.d.ts +0 -11
- package/dist/utils/mcp-format.d.ts.map +0 -1
- package/dist/utils/mcp-format.js +0 -14
- package/dist/utils/mcp-format.js.map +0 -1
- package/dist/utils/mdx.d.ts +0 -12
- package/dist/utils/mdx.d.ts.map +0 -1
- package/dist/utils/mdx.js +0 -45
- package/dist/utils/mdx.js.map +0 -1
- package/dist/utils/paths.d.ts +0 -12
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js +0 -93
- package/dist/utils/paths.js.map +0 -1
- package/dist/utils/search.d.ts +0 -10
- package/dist/utils/search.d.ts.map +0 -1
- package/dist/utils/search.js +0 -97
- package/dist/utils/search.js.map +0 -1
- package/dist/utils/security.d.ts +0 -5
- package/dist/utils/security.d.ts.map +0 -1
- package/dist/utils/security.js +0 -22
- package/dist/utils/security.js.map +0 -1
- package/dist/xulux/catalog-client.d.ts +0 -14
- package/dist/xulux/catalog-client.d.ts.map +0 -1
- package/dist/xulux/catalog-client.js +0 -112
- package/dist/xulux/catalog-client.js.map +0 -1
- package/dist/xulux/fallback-catalog.d.ts +0 -7
- package/dist/xulux/fallback-catalog.d.ts.map +0 -1
- package/dist/xulux/fallback-catalog.js +0 -47
- package/dist/xulux/fallback-catalog.js.map +0 -1
- package/dist/xulux/fetch-sandbox.d.ts +0 -5
- package/dist/xulux/fetch-sandbox.d.ts.map +0 -1
- package/dist/xulux/fetch-sandbox.js +0 -40
- package/dist/xulux/fetch-sandbox.js.map +0 -1
- package/dist/xulux/template-service.d.ts +0 -84
- package/dist/xulux/template-service.d.ts.map +0 -1
- package/dist/xulux/template-service.js +0 -223
- package/dist/xulux/template-service.js.map +0 -1
- package/dist/xulux/types.d.ts +0 -55
- package/dist/xulux/types.d.ts.map +0 -1
- package/dist/xulux/types.js +0 -6
- package/dist/xulux/types.js.map +0 -1
- package/src/constants.ts +0 -24
- package/src/prepare-docs/code-examples.ts +0 -158
- package/src/prepare-docs/copy-raw.ts +0 -50
- package/src/prepare-docs/prepare.ts +0 -24
- package/src/prompts/xulux-playground.ts +0 -36
- package/src/tools/docs.ts +0 -255
- package/src/tools/examples.ts +0 -114
- package/src/tools/resources.ts +0 -111
- package/src/tools/search.ts +0 -46
- package/src/tools/tests/completions.test.ts +0 -60
- package/src/tools/tests/directory-size-cap.test.ts +0 -50
- package/src/tools/tests/docs.test.ts +0 -147
- package/src/tools/tests/examples.test.ts +0 -94
- package/src/tools/tests/integration.test.ts +0 -45
- package/src/tools/tests/json-parsing.test.ts +0 -23
- package/src/tools/tests/listings-cache.test.ts +0 -19
- package/src/tools/tests/mcp-protocol.test.ts +0 -216
- package/src/tools/tests/mcp-test-client.ts +0 -111
- package/src/tools/tests/path-traversal.test.ts +0 -84
- package/src/tools/tests/resources.test.ts +0 -133
- package/src/tools/tests/search.test.ts +0 -37
- package/src/tools/tests/test-setup.ts +0 -50
- package/src/tools/tests/xulux-templates.test.ts +0 -325
- package/src/tools/xulux-templates.ts +0 -141
- package/src/utils/cache.ts +0 -20
- package/src/utils/logger.ts +0 -20
- package/src/utils/mcp-format.ts +0 -14
- package/src/utils/mdx.ts +0 -59
- package/src/utils/paths.ts +0 -139
- package/src/utils/search.ts +0 -131
- package/src/utils/security.ts +0 -52
- package/src/utils/tests/cache.test.ts +0 -51
- package/src/utils/tests/mcp-format.test.ts +0 -22
- package/src/utils/tests/security.test.ts +0 -119
- package/src/xulux/catalog-client.ts +0 -150
- package/src/xulux/fallback-catalog.ts +0 -63
- package/src/xulux/fetch-sandbox.ts +0 -56
- package/src/xulux/template-service.ts +0 -406
- package/src/xulux/types.ts +0 -64
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Quote
|
|
3
|
-
description: Let users select and quote text from messages with a floating toolbar, composer preview, and inline quote display.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
import { QuoteSample } from "@/components/pages/docs/samples/quote";
|
|
8
|
-
|
|
9
|
-
<QuoteSample />
|
|
10
|
-
|
|
11
|
-
## Getting Started
|
|
12
|
-
|
|
13
|
-
<Steps>
|
|
14
|
-
<Step>
|
|
15
|
-
|
|
16
|
-
### Add `quote`
|
|
17
|
-
|
|
18
|
-
<InstallCommand shadcn={["quote"]} />
|
|
19
|
-
|
|
20
|
-
This adds a `/components/assistant-ui/quote.tsx` file with three components: `QuoteBlock`, `SelectionToolbar`, and `ComposerQuotePreview`.
|
|
21
|
-
|
|
22
|
-
</Step>
|
|
23
|
-
<Step>
|
|
24
|
-
|
|
25
|
-
### Display Quotes in User Messages
|
|
26
|
-
|
|
27
|
-
Add `MessagePrimitive.Quote` above `MessagePrimitive.Parts` in your user message:
|
|
28
|
-
|
|
29
|
-
```tsx title="components/assistant-ui/thread.tsx" {1,8-10}
|
|
30
|
-
import { QuoteBlock } from "@/components/assistant-ui/quote";
|
|
31
|
-
|
|
32
|
-
const UserMessage = () => {
|
|
33
|
-
return (
|
|
34
|
-
<MessagePrimitive.Root>
|
|
35
|
-
<MessagePrimitive.Quote>
|
|
36
|
-
{(quote) => <QuoteBlock {...quote} />}
|
|
37
|
-
</MessagePrimitive.Quote>
|
|
38
|
-
<MessagePrimitive.Parts />
|
|
39
|
-
</MessagePrimitive.Root>
|
|
40
|
-
);
|
|
41
|
-
};
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
</Step>
|
|
45
|
-
<Step>
|
|
46
|
-
|
|
47
|
-
### Add the Floating Selection Toolbar
|
|
48
|
-
|
|
49
|
-
Render `SelectionToolbar` inside `ThreadPrimitive.Root`. It portals to the document body and appears near the user's text selection.
|
|
50
|
-
|
|
51
|
-
```tsx title="components/assistant-ui/thread.tsx" {1,11}
|
|
52
|
-
import { SelectionToolbar } from "@/components/assistant-ui/quote";
|
|
53
|
-
|
|
54
|
-
const Thread = () => {
|
|
55
|
-
return (
|
|
56
|
-
<ThreadPrimitive.Root>
|
|
57
|
-
<ThreadPrimitive.Viewport>
|
|
58
|
-
<ThreadPrimitive.Messages>
|
|
59
|
-
{({ message }) => { ... }}
|
|
60
|
-
</ThreadPrimitive.Messages>
|
|
61
|
-
...
|
|
62
|
-
</ThreadPrimitive.Viewport>
|
|
63
|
-
|
|
64
|
-
<SelectionToolbar />
|
|
65
|
-
</ThreadPrimitive.Root>
|
|
66
|
-
);
|
|
67
|
-
};
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
</Step>
|
|
71
|
-
<Step>
|
|
72
|
-
|
|
73
|
-
### Show Quote Preview in Composer
|
|
74
|
-
|
|
75
|
-
Add `ComposerQuotePreview` inside your composer. It only renders when a quote is set.
|
|
76
|
-
|
|
77
|
-
```tsx title="components/assistant-ui/thread.tsx" {1,6}
|
|
78
|
-
import { ComposerQuotePreview } from "@/components/assistant-ui/quote";
|
|
79
|
-
|
|
80
|
-
const Composer = () => {
|
|
81
|
-
return (
|
|
82
|
-
<ComposerPrimitive.Root>
|
|
83
|
-
<ComposerQuotePreview />
|
|
84
|
-
<ComposerPrimitive.Input placeholder="Send a message..." />
|
|
85
|
-
<ComposerPrimitive.Send />
|
|
86
|
-
</ComposerPrimitive.Root>
|
|
87
|
-
);
|
|
88
|
-
};
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
</Step>
|
|
92
|
-
<Step>
|
|
93
|
-
|
|
94
|
-
### Forward Quote Context to the LLM
|
|
95
|
-
|
|
96
|
-
Quote data is stored in message metadata, **not** in message content. Use `injectQuoteContext` in your route handler so the LLM sees the quoted text:
|
|
97
|
-
|
|
98
|
-
```typescript title="app/api/chat/route.ts" {2,9}
|
|
99
|
-
import { convertToModelMessages, streamText } from "ai";
|
|
100
|
-
import { injectQuoteContext } from "@assistant-ui/ai-sdk";
|
|
101
|
-
|
|
102
|
-
export async function POST(req: Request) {
|
|
103
|
-
const { messages } = await req.json();
|
|
104
|
-
|
|
105
|
-
const result = streamText({
|
|
106
|
-
model: myModel,
|
|
107
|
-
messages: await convertToModelMessages(injectQuoteContext(messages)),
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
return result.toUIMessageStreamResponse();
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
`injectQuoteContext` prepends the quoted text as a markdown `>` blockquote to the message parts so the LLM receives the context the user is referring to.
|
|
115
|
-
|
|
116
|
-
<Callout>
|
|
117
|
-
For alternative backend approaches (Claude SDK citation source, OpenAI message context), see the [Quoting guide](/docs/guides/quoting#backend-handling).
|
|
118
|
-
</Callout>
|
|
119
|
-
|
|
120
|
-
</Step>
|
|
121
|
-
</Steps>
|
|
122
|
-
|
|
123
|
-
## Customization
|
|
124
|
-
|
|
125
|
-
All three components expose sub-components for full control over styling:
|
|
126
|
-
|
|
127
|
-
```tsx
|
|
128
|
-
// Custom QuoteBlock
|
|
129
|
-
<QuoteBlock.Root className="my-custom-class">
|
|
130
|
-
<QuoteBlock.Icon />
|
|
131
|
-
<QuoteBlock.Text>{text}</QuoteBlock.Text>
|
|
132
|
-
</QuoteBlock.Root>
|
|
133
|
-
|
|
134
|
-
// Custom SelectionToolbar
|
|
135
|
-
<SelectionToolbar.Root>
|
|
136
|
-
<SelectionToolbar.Quote>Reply with quote</SelectionToolbar.Quote>
|
|
137
|
-
</SelectionToolbar.Root>
|
|
138
|
-
|
|
139
|
-
// Custom ComposerQuotePreview
|
|
140
|
-
<ComposerQuotePreview.Root>
|
|
141
|
-
<ComposerQuotePreview.Icon />
|
|
142
|
-
<ComposerQuotePreview.Text />
|
|
143
|
-
<ComposerQuotePreview.Dismiss />
|
|
144
|
-
</ComposerQuotePreview.Root>
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
## API Reference
|
|
148
|
-
|
|
149
|
-
### `QuoteBlock`
|
|
150
|
-
|
|
151
|
-
Renders quoted text in user messages. Pass to `MessagePrimitive.Parts` as `components.Quote`.
|
|
152
|
-
|
|
153
|
-
| Prop | Type | Description |
|
|
154
|
-
|------|------|-------------|
|
|
155
|
-
| `text` | `string` | The quoted text |
|
|
156
|
-
| `messageId` | `string` | ID of the source message |
|
|
157
|
-
|
|
158
|
-
**Sub-components:** `QuoteBlock.Root`, `QuoteBlock.Icon`, `QuoteBlock.Text`
|
|
159
|
-
|
|
160
|
-
### `SelectionToolbar`
|
|
161
|
-
|
|
162
|
-
Floating toolbar that appears when text is selected within a message. Renders as a portal positioned above the selection.
|
|
163
|
-
|
|
164
|
-
| Prop | Type | Description |
|
|
165
|
-
|------|------|-------------|
|
|
166
|
-
| `className` | `string` | Additional class names |
|
|
167
|
-
|
|
168
|
-
**Sub-components:** `SelectionToolbar.Root`, `SelectionToolbar.Quote`
|
|
169
|
-
|
|
170
|
-
### `ComposerQuotePreview`
|
|
171
|
-
|
|
172
|
-
Quote preview inside the composer. Only renders when a quote is set.
|
|
173
|
-
|
|
174
|
-
| Prop | Type | Description |
|
|
175
|
-
|------|------|-------------|
|
|
176
|
-
| `className` | `string` | Additional class names |
|
|
177
|
-
|
|
178
|
-
**Sub-components:** `ComposerQuotePreview.Root`, `ComposerQuotePreview.Icon`, `ComposerQuotePreview.Text`, `ComposerQuotePreview.Dismiss`
|
|
179
|
-
|
|
180
|
-
### `injectQuoteContext`
|
|
181
|
-
|
|
182
|
-
```typescript
|
|
183
|
-
import { injectQuoteContext } from "@assistant-ui/ai-sdk";
|
|
184
|
-
|
|
185
|
-
injectQuoteContext(messages: UIMessage[]): UIMessage[]
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
Extracts `metadata.custom.quote` from each message and prepends the quoted text as a `> blockquote` text part. Use before `convertToModelMessages` in your route handler. For alternative backend approaches, see the [Quoting guide](/docs/guides/quoting#backend-handling).
|
|
189
|
-
|
|
190
|
-
### `useMessageQuote`
|
|
191
|
-
|
|
192
|
-
```tsx
|
|
193
|
-
import { useMessageQuote } from "@assistant-ui/react";
|
|
194
|
-
|
|
195
|
-
const quote: QuoteInfo | undefined = useMessageQuote();
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
Returns the quote attached to the current message, or `undefined`. Useful for building custom quote displays without `QuoteBlock`. For a usage example, see the [Quoting guide](/docs/guides/quoting#reading-quote-data).
|
|
199
|
-
|
|
200
|
-
### `ComposerRuntime.setQuote`
|
|
201
|
-
|
|
202
|
-
```tsx
|
|
203
|
-
setQuote(quote: QuoteInfo | undefined): void
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
Set or clear the quote on the composer programmatically. The quote is automatically cleared when the message is sent. For a usage example, see the [Quoting guide](/docs/guides/quoting#programmatic-api).
|
|
207
|
-
|
|
208
|
-
## Related
|
|
209
|
-
|
|
210
|
-
- [Quoting guide](/docs/guides/quoting): Backend handling, programmatic API, data shape, and design notes
|
|
211
|
-
- [Thread](/docs/ui/thread): Main chat container
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Reasoning
|
|
3
|
-
description: Collapsible UI for displaying AI reasoning and thinking messages.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
import { ReasoningSample, ReasoningStreamingSample } from "@/components/pages/docs/samples/reasoning";
|
|
8
|
-
import { ReasoningCompletedSample } from "@/components/pages/docs/samples/reasoning/completed-with-duration";
|
|
9
|
-
import { ReasoningLongSample } from "@/components/pages/docs/samples/reasoning/long-reasoning";
|
|
10
|
-
import { ReasoningVariantsSample } from "@/components/pages/docs/samples/reasoning/variant-showcase";
|
|
11
|
-
|
|
12
|
-
<ReasoningSample />
|
|
13
|
-
|
|
14
|
-
## Getting Started
|
|
15
|
-
|
|
16
|
-
<Steps>
|
|
17
|
-
<Step>
|
|
18
|
-
|
|
19
|
-
### Add `reasoning`
|
|
20
|
-
|
|
21
|
-
<InstallCommand shadcn={["reasoning"]} />
|
|
22
|
-
|
|
23
|
-
This adds a `/components/assistant-ui/reasoning.tsx` file to your project.
|
|
24
|
-
|
|
25
|
-
</Step>
|
|
26
|
-
<Step>
|
|
27
|
-
|
|
28
|
-
### Use in your application
|
|
29
|
-
|
|
30
|
-
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.
|
|
31
|
-
|
|
32
|
-
Render reasoning parts through `MessagePrimitive.GroupedParts`. Group consecutive reasoning parts with `"group-reasoning"`, then compose `ReasoningRoot`, `ReasoningTrigger`, `ReasoningContent`, and `ReasoningText` around the grouped children.
|
|
33
|
-
|
|
34
|
-
While reasoning is streaming, `part.status.type === "running"`. Pass that to `streaming` so the accordion auto-opens during streaming with a bottom-pinned live preview of the newest tokens, and permanently defers to the first manual toggle. `streaming` only holds the disclosure open; when it ends the accordion returns to `defaultOpen`, which is `false` by default and therefore collapses. Pass `defaultOpen` to keep reasoning expanded once the run finishes.
|
|
35
|
-
|
|
36
|
-
```tsx title="/app/components/assistant-ui/thread.tsx"
|
|
37
|
-
import { MessagePrimitive, groupPartByType } from "@assistant-ui/react";
|
|
38
|
-
import { MarkdownText } from "@/components/assistant-ui/markdown-text";
|
|
39
|
-
import { ToolFallback } from "@/components/assistant-ui/tool-fallback";
|
|
40
|
-
import {
|
|
41
|
-
Reasoning,
|
|
42
|
-
ReasoningContent,
|
|
43
|
-
ReasoningRoot,
|
|
44
|
-
ReasoningText,
|
|
45
|
-
ReasoningTrigger,
|
|
46
|
-
} from "@/components/assistant-ui/reasoning"; // [!code ++]
|
|
47
|
-
|
|
48
|
-
const AssistantMessage: FC = () => {
|
|
49
|
-
return (
|
|
50
|
-
<MessagePrimitive.Root className="...">
|
|
51
|
-
<div className="...">
|
|
52
|
-
<MessagePrimitive.GroupedParts // [!code ++]
|
|
53
|
-
groupBy={groupPartByType({ // [!code ++]
|
|
54
|
-
reasoning: ["group-reasoning"], // [!code ++]
|
|
55
|
-
})} // [!code ++]
|
|
56
|
-
> // [!code ++]
|
|
57
|
-
{({ part, children }) => { // [!code ++]
|
|
58
|
-
switch (part.type) { // [!code ++]
|
|
59
|
-
case "group-reasoning": { // [!code ++]
|
|
60
|
-
const running = part.status.type === "running"; // [!code ++]
|
|
61
|
-
return ( // [!code ++]
|
|
62
|
-
<ReasoningRoot streaming={running}> // [!code ++]
|
|
63
|
-
<ReasoningTrigger active={running} /> // [!code ++]
|
|
64
|
-
<ReasoningContent aria-busy={running}> // [!code ++]
|
|
65
|
-
<ReasoningText>{children}</ReasoningText> // [!code ++]
|
|
66
|
-
</ReasoningContent> // [!code ++]
|
|
67
|
-
</ReasoningRoot> // [!code ++]
|
|
68
|
-
); // [!code ++]
|
|
69
|
-
} // [!code ++]
|
|
70
|
-
case "text": // [!code ++]
|
|
71
|
-
return <MarkdownText />; // [!code ++]
|
|
72
|
-
case "reasoning": // [!code ++]
|
|
73
|
-
return <Reasoning {...part} />; // [!code ++]
|
|
74
|
-
case "tool-call": // [!code ++]
|
|
75
|
-
return part.toolUI ?? <ToolFallback {...part} />; // [!code ++]
|
|
76
|
-
default: // [!code ++]
|
|
77
|
-
return null; // [!code ++]
|
|
78
|
-
} // [!code ++]
|
|
79
|
-
}} // [!code ++]
|
|
80
|
-
</MessagePrimitive.GroupedParts> // [!code ++]
|
|
81
|
-
</div>
|
|
82
|
-
<AssistantActionBar />
|
|
83
|
-
<BranchPicker className="..." />
|
|
84
|
-
</MessagePrimitive.Root>
|
|
85
|
-
);
|
|
86
|
-
};
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
`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.
|
|
90
|
-
|
|
91
|
-
</Step>
|
|
92
|
-
</Steps>
|
|
93
|
-
|
|
94
|
-
## How It Works
|
|
95
|
-
|
|
96
|
-
The component consists of two parts:
|
|
97
|
-
|
|
98
|
-
1. `Reasoning`: Renders individual reasoning message part content (with markdown support)
|
|
99
|
-
2. Composable group pieces (`ReasoningRoot`, `ReasoningTrigger`, `ReasoningContent`, `ReasoningText`): Wrap grouped reasoning children in a collapsible container
|
|
100
|
-
|
|
101
|
-
Consecutive reasoning parts are grouped by `MessagePrimitive.GroupedParts`. Use the composable API below to control the grouped layout.
|
|
102
|
-
|
|
103
|
-
> When using the composable API, `ReasoningText` is a plain container. Add `<MarkdownText />` for markdown rendering.
|
|
104
|
-
|
|
105
|
-
## Variants
|
|
106
|
-
|
|
107
|
-
Use the `variant` prop on `ReasoningRoot` to change the visual style:
|
|
108
|
-
|
|
109
|
-
```tsx
|
|
110
|
-
<ReasoningRoot variant="outline">...</ReasoningRoot>
|
|
111
|
-
<ReasoningRoot variant="ghost">...</ReasoningRoot>
|
|
112
|
-
<ReasoningRoot variant="muted">...</ReasoningRoot>
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
| Variant | Description |
|
|
116
|
-
| --------- | -------------------------------------------- |
|
|
117
|
-
| `outline` | Rounded border (default) |
|
|
118
|
-
| `ghost` | No additional styling |
|
|
119
|
-
| `muted` | Muted background |
|
|
120
|
-
|
|
121
|
-
## Examples
|
|
122
|
-
|
|
123
|
-
### Variant Showcase
|
|
124
|
-
|
|
125
|
-
Each variant renders in its closed and open state side by side. Select a trigger to toggle that disclosure.
|
|
126
|
-
|
|
127
|
-
<ReasoningVariantsSample />
|
|
128
|
-
|
|
129
|
-
### Streaming Reasoning
|
|
130
|
-
|
|
131
|
-
The response shows partial reasoning and stays active. Select Stop to cancel the response and return the composer to its idle state.
|
|
132
|
-
|
|
133
|
-
<ReasoningStreamingSample />
|
|
134
|
-
|
|
135
|
-
### Completed with Duration
|
|
136
|
-
|
|
137
|
-
Set `duration` in seconds on `ReasoningTrigger` to show the completed reasoning time in the trigger label. The disclosure starts closed because `defaultOpen` is `false`. Select the trigger to open or close the reasoning text.
|
|
138
|
-
|
|
139
|
-
<ReasoningCompletedSample />
|
|
140
|
-
|
|
141
|
-
### Long Reasoning
|
|
142
|
-
|
|
143
|
-
The `defaultOpen` prop opens the disclosure when the page loads. `ReasoningText` holds long reasoning in a `max-h-64` scroll area. Scroll the text. Then collapse and expand the disclosure.
|
|
144
|
-
|
|
145
|
-
<ReasoningLongSample />
|
|
146
|
-
|
|
147
|
-
## Legacy ReasoningGroup
|
|
148
|
-
|
|
149
|
-
`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.
|
|
150
|
-
|
|
151
|
-
```tsx
|
|
152
|
-
import { ReasoningGroup } from "@/components/assistant-ui/reasoning";
|
|
153
|
-
|
|
154
|
-
const ReasoningGroupImpl: ReasoningGroupComponent = ({
|
|
155
|
-
children,
|
|
156
|
-
startIndex,
|
|
157
|
-
endIndex,
|
|
158
|
-
}) => {
|
|
159
|
-
const isReasoningStreaming = useAuiState((s) => {
|
|
160
|
-
if (s.message.status?.type !== "running") return false;
|
|
161
|
-
const lastIndex = s.message.parts.length - 1;
|
|
162
|
-
if (lastIndex < 0) return false;
|
|
163
|
-
const lastType = s.message.parts[lastIndex]?.type;
|
|
164
|
-
if (lastType !== "reasoning") return false;
|
|
165
|
-
return lastIndex >= startIndex && lastIndex <= endIndex;
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
return (
|
|
169
|
-
<ReasoningRoot streaming={isReasoningStreaming}>
|
|
170
|
-
<ReasoningTrigger active={isReasoningStreaming} />
|
|
171
|
-
<ReasoningContent aria-busy={isReasoningStreaming}>
|
|
172
|
-
<ReasoningText>{children}</ReasoningText>
|
|
173
|
-
</ReasoningContent>
|
|
174
|
-
</ReasoningRoot>
|
|
175
|
-
);
|
|
176
|
-
};
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
## API Reference
|
|
181
|
-
|
|
182
|
-
### Composable API
|
|
183
|
-
|
|
184
|
-
All sub-components are exported for custom layouts:
|
|
185
|
-
|
|
186
|
-
| Component | Description |
|
|
187
|
-
| --------------------- | ------------------------------------------ |
|
|
188
|
-
| `ReasoningRoot` | Collapsible container with scroll lock |
|
|
189
|
-
| `ReasoningTrigger` | Button with icon, label, and shimmer |
|
|
190
|
-
| `ReasoningContent` | Animated collapsible content wrapper |
|
|
191
|
-
| `ReasoningText` | Text wrapper with slide/fade animation |
|
|
192
|
-
| `ReasoningFade` | Gradient fade overlay at bottom |
|
|
193
|
-
|
|
194
|
-
```tsx
|
|
195
|
-
import {
|
|
196
|
-
ReasoningRoot,
|
|
197
|
-
ReasoningTrigger,
|
|
198
|
-
ReasoningContent,
|
|
199
|
-
ReasoningText,
|
|
200
|
-
ReasoningFade,
|
|
201
|
-
} from "@/components/assistant-ui/reasoning";
|
|
202
|
-
|
|
203
|
-
<ReasoningRoot variant="muted">
|
|
204
|
-
<ReasoningTrigger active={isStreaming} />
|
|
205
|
-
<ReasoningContent>
|
|
206
|
-
<ReasoningText>{children}</ReasoningText>
|
|
207
|
-
</ReasoningContent>
|
|
208
|
-
</ReasoningRoot>
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
## Related Components
|
|
212
|
-
|
|
213
|
-
- [ToolGroup](/docs/ui/tool-group) - Similar grouping pattern for tool calls
|
|
214
|
-
- [PartGrouping](/docs/ui/part-grouping) - Advanced grouping options for message parts
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Custom Scrollbar
|
|
3
|
-
description: Replace the default scrollbar with a custom Radix UI scroll area.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
import { ScrollbarSample } from "@/components/pages/docs/samples/scrollbar";
|
|
8
|
-
|
|
9
|
-
<ScrollbarSample />
|
|
10
|
-
|
|
11
|
-
If you want to show a custom scrollbar UI of the `ThreadPrimitive.Viewport` in place of the system default, you can integrate `radix-ui`'s Scroll Area.
|
|
12
|
-
An example implementation of this is [shadcn/ui's Scroll Area](https://ui.shadcn.com/docs/components/scroll-area).
|
|
13
|
-
|
|
14
|
-
<Steps>
|
|
15
|
-
|
|
16
|
-
<Step>
|
|
17
|
-
|
|
18
|
-
### Add shadcn Scroll Area
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
npx shadcn@latest add scroll-area
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
</Step>
|
|
25
|
-
|
|
26
|
-
<Step>
|
|
27
|
-
|
|
28
|
-
### Add Additional Styles
|
|
29
|
-
|
|
30
|
-
The Radix UI Viewport component adds an intermediate `<div data-radix-scroll-area-content>` element.
|
|
31
|
-
Add the following CSS to your `globals.css`:
|
|
32
|
-
|
|
33
|
-
```css title="@/app/globals.css"
|
|
34
|
-
.thread-viewport > [data-radix-scroll-area-content] {
|
|
35
|
-
@apply flex flex-col items-center self-stretch bg-inherit;
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
</Step>
|
|
40
|
-
|
|
41
|
-
<Step>
|
|
42
|
-
|
|
43
|
-
### Integrate with Thread
|
|
44
|
-
|
|
45
|
-
- Wrap `ThreadPrimitive.Root` with `<ScrollAreaPrimitive.Root asChild>`
|
|
46
|
-
- Wrap `ThreadPrimitive.Viewport` with `<ScrollAreaPrimitive.Viewport className="thread-viewport" asChild>`
|
|
47
|
-
- Add shadcn's `<ScrollBar />` to `ThreadPrimitive.Root`
|
|
48
|
-
|
|
49
|
-
The resulting MyThread component should look like this:
|
|
50
|
-
|
|
51
|
-
```tsx {1-2,6,8,12-13,15}
|
|
52
|
-
import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
|
|
53
|
-
import { ScrollBar } from "@/components/ui/scroll-area";
|
|
54
|
-
|
|
55
|
-
const MyThread: FC = () => {
|
|
56
|
-
return (
|
|
57
|
-
<ScrollAreaPrimitive.Root asChild>
|
|
58
|
-
<ThreadPrimitive.Root className="...">
|
|
59
|
-
<ScrollAreaPrimitive.Viewport className="thread-viewport" asChild>
|
|
60
|
-
<ThreadPrimitive.Viewport className="...">
|
|
61
|
-
...
|
|
62
|
-
</ThreadPrimitive.Viewport>
|
|
63
|
-
</ScrollAreaPrimitive.Viewport>
|
|
64
|
-
<ScrollBar />
|
|
65
|
-
</ThreadPrimitive.Root>
|
|
66
|
-
</ScrollAreaPrimitive.Root>
|
|
67
|
-
);
|
|
68
|
-
};
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
</Step>
|
|
72
|
-
|
|
73
|
-
</Steps>
|
|
74
|
-
|
|
75
|
-
## Related Components
|
|
76
|
-
|
|
77
|
-
- [Thread](/docs/ui/thread) - The main chat interface where the scrollbar is used
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Sources
|
|
3
|
-
description: Display URL sources with favicon, title, and external link.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
import { SourcesSample } from "@/components/pages/docs/samples/sources";
|
|
8
|
-
import { SourcesUrlSample } from "@/components/pages/docs/samples/sources/url-sources";
|
|
9
|
-
|
|
10
|
-
<SourcesSample />
|
|
11
|
-
|
|
12
|
-
## Getting Started
|
|
13
|
-
|
|
14
|
-
<Steps>
|
|
15
|
-
<Step>
|
|
16
|
-
|
|
17
|
-
### Add `sources`
|
|
18
|
-
|
|
19
|
-
<InstallCommand shadcn={["sources"]} />
|
|
20
|
-
|
|
21
|
-
</Step>
|
|
22
|
-
<Step>
|
|
23
|
-
|
|
24
|
-
### Use in your application
|
|
25
|
-
|
|
26
|
-
Pass `Sources` to `MessagePrimitive.Parts`:
|
|
27
|
-
|
|
28
|
-
```tsx title="/components/assistant-ui/thread.tsx" {1,8}
|
|
29
|
-
import { Sources } from "@/components/assistant-ui/sources";
|
|
30
|
-
|
|
31
|
-
const AssistantMessage: FC = () => {
|
|
32
|
-
return (
|
|
33
|
-
<MessagePrimitive.Root className="...">
|
|
34
|
-
<MessagePrimitive.Parts>
|
|
35
|
-
{({ part }) => {
|
|
36
|
-
if (part.type === "source") return <Sources {...part} />;
|
|
37
|
-
return null;
|
|
38
|
-
}}
|
|
39
|
-
</MessagePrimitive.Parts>
|
|
40
|
-
</MessagePrimitive.Root>
|
|
41
|
-
);
|
|
42
|
-
};
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
</Step>
|
|
46
|
-
</Steps>
|
|
47
|
-
|
|
48
|
-
## Variants
|
|
49
|
-
|
|
50
|
-
Use the `variant` prop to change the visual style. The default is `outline`.
|
|
51
|
-
|
|
52
|
-
```tsx
|
|
53
|
-
<Source variant="outline" /> // Border (default)
|
|
54
|
-
<Source variant="ghost" /> // No background
|
|
55
|
-
<Source variant="muted" /> // Solid muted background
|
|
56
|
-
<Source variant="secondary" /> // Secondary background
|
|
57
|
-
<Source variant="info" /> // Blue
|
|
58
|
-
<Source variant="warning" /> // Amber
|
|
59
|
-
<Source variant="success" /> // Emerald
|
|
60
|
-
<Source variant="destructive" /> // Red
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Sizes
|
|
64
|
-
|
|
65
|
-
Use the `size` prop to change the size.
|
|
66
|
-
|
|
67
|
-
```tsx
|
|
68
|
-
<Source size="sm" /> // Small
|
|
69
|
-
<Source size="default" /> // Default
|
|
70
|
-
<Source size="lg" /> // Large
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Examples
|
|
74
|
-
|
|
75
|
-
### URL Sources
|
|
76
|
-
|
|
77
|
-
One source shows its supplied title. The other source uses its domain because its title is absent.
|
|
78
|
-
|
|
79
|
-
<SourcesUrlSample />
|
|
80
|
-
|
|
81
|
-
## API Reference
|
|
82
|
-
|
|
83
|
-
### `Sources`
|
|
84
|
-
|
|
85
|
-
The default export used as a `SourceMessagePartComponent`. Renders a single source part when `sourceType === "url"`. Also exposes compound sub-components for custom layouts.
|
|
86
|
-
|
|
87
|
-
| Prop | Type | Default | Description |
|
|
88
|
-
|------|------|---------|-------------|
|
|
89
|
-
| `url` | `string` | — | The URL of the source (provided by the runtime) |
|
|
90
|
-
| `title` | `string \| undefined` | — | Display title; falls back to the domain if omitted |
|
|
91
|
-
| `sourceType` | `string` | — | Must be `"url"` to render; other types are ignored |
|
|
92
|
-
|
|
93
|
-
#### Compound sub-components
|
|
94
|
-
|
|
95
|
-
```tsx
|
|
96
|
-
import { Sources } from "@/components/assistant-ui/sources";
|
|
97
|
-
|
|
98
|
-
<Sources.Root href="https://example.com">
|
|
99
|
-
<Sources.Icon url="https://example.com" />
|
|
100
|
-
<Sources.Title>Example</Sources.Title>
|
|
101
|
-
</Sources.Root>
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
| Sub-component | Equivalent named export | Description |
|
|
105
|
-
|---------------|------------------------|-------------|
|
|
106
|
-
| `Sources.Root` | `Source` | Root anchor element |
|
|
107
|
-
| `Sources.Icon` | `SourceIcon` | Favicon with domain initial fallback |
|
|
108
|
-
| `Sources.Title` | `SourceTitle` | Truncated title text |
|
|
109
|
-
|
|
110
|
-
### `Source`
|
|
111
|
-
|
|
112
|
-
Root container rendered as an `<a>` tag. Accepts all `<a>` props plus `variant` and `size`.
|
|
113
|
-
|
|
114
|
-
| Prop | Type | Default | Description |
|
|
115
|
-
|------|------|---------|-------------|
|
|
116
|
-
| `href` | `string` | — | URL the link points to |
|
|
117
|
-
| `variant` | `"outline" \| "ghost" \| "muted" \| "secondary" \| "info" \| "warning" \| "success" \| "destructive"` | `"outline"` | Visual style |
|
|
118
|
-
| `size` | `"sm" \| "default" \| "lg"` | `"default"` | Size of the badge |
|
|
119
|
-
| `target` | `string` | `"_blank"` | Link target |
|
|
120
|
-
| `rel` | `string` | `"noopener noreferrer"` | Link rel attribute |
|
|
121
|
-
| `asChild` | `boolean` | `false` | Merge props with a child element instead of rendering an anchor. Effective with the Radix badge; the Base UI badge ignores it |
|
|
122
|
-
| `className` | `string` | — | Additional CSS classes |
|
|
123
|
-
|
|
124
|
-
### `SourceIcon`
|
|
125
|
-
|
|
126
|
-
Displays the favicon for the given URL. Falls back to the domain initial inside a muted box when the favicon fails to load.
|
|
127
|
-
|
|
128
|
-
| Prop | Type | Default | Description |
|
|
129
|
-
|------|------|---------|-------------|
|
|
130
|
-
| `url` | `string` | — | URL used to derive the favicon and fallback initial |
|
|
131
|
-
| `faviconUrl` | `(domain: string) => string` | DuckDuckGo's `ip3` endpoint | Override the favicon source — useful in environments where the default service is unreachable |
|
|
132
|
-
| `className` | `string` | — | Additional CSS classes applied to the `<img>` or fallback `<span>` |
|
|
133
|
-
|
|
134
|
-
#### Customizing the favicon provider
|
|
135
|
-
|
|
136
|
-
The default `<Sources>` component renders `<SourceIcon>` without forwarding `faviconUrl`, so the prop only applies when you compose `Sources.Icon` directly:
|
|
137
|
-
|
|
138
|
-
```tsx
|
|
139
|
-
<Sources.Root href={url}>
|
|
140
|
-
<Sources.Icon
|
|
141
|
-
url={url}
|
|
142
|
-
faviconUrl={(domain) => `https://my-favicon-proxy.example.com/${domain}.ico`}
|
|
143
|
-
/>
|
|
144
|
-
<Sources.Title>{title}</Sources.Title>
|
|
145
|
-
</Sources.Root>
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
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>`.
|
|
149
|
-
|
|
150
|
-
### `SourceTitle`
|
|
151
|
-
|
|
152
|
-
Truncated title text rendered as a `<span>`.
|
|
153
|
-
|
|
154
|
-
| Prop | Type | Default | Description |
|
|
155
|
-
|------|------|---------|-------------|
|
|
156
|
-
| `children` | `ReactNode` | — | Title content to display |
|
|
157
|
-
| `className` | `string` | — | Additional CSS classes (default max-width is `37.5rem`) |
|
|
158
|
-
|
|
159
|
-
### `sourceVariants`
|
|
160
|
-
|
|
161
|
-
The underlying CVA variant function used to generate badge class names. Use this when building custom source-like components that need to match the built-in styling.
|
|
162
|
-
|
|
163
|
-
```tsx
|
|
164
|
-
import { sourceVariants } from "@/components/assistant-ui/sources";
|
|
165
|
-
|
|
166
|
-
<span className={sourceVariants({ variant: "info", size: "sm" })}>
|
|
167
|
-
Custom badge
|
|
168
|
-
</span>
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
## Composable API
|
|
172
|
-
|
|
173
|
-
Use the named exports to build fully custom source layouts:
|
|
174
|
-
|
|
175
|
-
```tsx
|
|
176
|
-
import { Source, SourceIcon, SourceTitle } from "@/components/assistant-ui/sources";
|
|
177
|
-
|
|
178
|
-
<Source href="https://example.com" variant="muted" className="gap-2">
|
|
179
|
-
<SourceIcon url="https://example.com" className="size-4" />
|
|
180
|
-
<SourceTitle className="max-w-none font-medium">Example</SourceTitle>
|
|
181
|
-
</Source>
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
## Related Components
|
|
185
|
-
|
|
186
|
-
- [PartGrouping](/docs/ui/part-grouping) - Group sources by parentId
|