@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,114 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Directive Text
|
|
3
|
-
description: Render mention directives as inline chips in user messages.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
import { DirectiveTextSample } from "@/components/pages/docs/samples/directive-text";
|
|
8
|
-
|
|
9
|
-
<DirectiveTextSample />
|
|
10
|
-
|
|
11
|
-
`DirectiveText` parses the directive syntax written by [`ComposerTriggerPopover`](/docs/ui/composer-trigger-popover) (default: `:type[label]{name=id}`) and renders each segment as an inline chip. Use it as the `Text` component in user messages so the raw directive syntax never shows up.
|
|
12
|
-
|
|
13
|
-
## Getting Started
|
|
14
|
-
|
|
15
|
-
<Steps>
|
|
16
|
-
<Step>
|
|
17
|
-
|
|
18
|
-
### Add `directive-text`
|
|
19
|
-
|
|
20
|
-
<InstallCommand shadcn={["directive-text"]} />
|
|
21
|
-
|
|
22
|
-
This adds `/components/assistant-ui/directive-text.tsx` with `DirectiveText` and the `createDirectiveText(formatter, options?)` factory.
|
|
23
|
-
|
|
24
|
-
</Step>
|
|
25
|
-
<Step>
|
|
26
|
-
|
|
27
|
-
### Use in user messages
|
|
28
|
-
|
|
29
|
-
Pass `DirectiveText` as the `Text` component in `MessagePrimitive.Parts`:
|
|
30
|
-
|
|
31
|
-
```tsx title="components/assistant-ui/thread.tsx"
|
|
32
|
-
import { DirectiveText } from "@/components/assistant-ui/directive-text";
|
|
33
|
-
|
|
34
|
-
const UserMessage = () => (
|
|
35
|
-
<MessagePrimitive.Root>
|
|
36
|
-
<MessagePrimitive.Parts components={{ Text: DirectiveText }} />
|
|
37
|
-
</MessagePrimitive.Root>
|
|
38
|
-
);
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Keep your markdown renderer (e.g. `MarkdownText`) for assistant messages — assistants rarely emit directive syntax.
|
|
42
|
-
|
|
43
|
-
</Step>
|
|
44
|
-
</Steps>
|
|
45
|
-
|
|
46
|
-
## Icons per Directive Type
|
|
47
|
-
|
|
48
|
-
`DirectiveText` ships icon-free by default — every parsed segment renders as a plain label chip regardless of its `type`. To add icons, use the `createDirectiveText` factory and pass an `iconMap` that routes each `type` string to an icon component, plus an optional `fallbackIcon` for unmapped types:
|
|
49
|
-
|
|
50
|
-
```tsx
|
|
51
|
-
import { createDirectiveText } from "@/components/assistant-ui/directive-text";
|
|
52
|
-
import { unstable_defaultDirectiveFormatter } from "@assistant-ui/react";
|
|
53
|
-
import { FileTextIcon, SparklesIcon, UserIcon, WrenchIcon } from "lucide-react";
|
|
54
|
-
|
|
55
|
-
const DirectiveTextWithIcons = createDirectiveText(
|
|
56
|
-
unstable_defaultDirectiveFormatter,
|
|
57
|
-
{
|
|
58
|
-
iconMap: {
|
|
59
|
-
tool: WrenchIcon,
|
|
60
|
-
user: UserIcon,
|
|
61
|
-
file: FileTextIcon,
|
|
62
|
-
},
|
|
63
|
-
fallbackIcon: SparklesIcon,
|
|
64
|
-
},
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
<MessagePrimitive.Parts components={{ Text: DirectiveTextWithIcons }} />;
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
A matching `iconMap` / `fallbackIcon` option is accepted by [`ComposerTriggerPopover`](/docs/ui/composer-trigger-popover), where it routes `item.metadata.icon` strings instead of `type` — keeping icon configuration consistent across the composer and the rendered message.
|
|
71
|
-
|
|
72
|
-
## Custom Formatter
|
|
73
|
-
|
|
74
|
-
The default format is `:type[label]{name=id}`. For a different format, build a custom `Unstable_DirectiveFormatter` and wrap it with `createDirectiveText`:
|
|
75
|
-
|
|
76
|
-
```tsx
|
|
77
|
-
import type { Unstable_DirectiveFormatter } from "@assistant-ui/react";
|
|
78
|
-
import { createDirectiveText } from "@/components/assistant-ui/directive-text";
|
|
79
|
-
|
|
80
|
-
const slashFormatter: Unstable_DirectiveFormatter = {
|
|
81
|
-
serialize: (item) => `/${item.id}`,
|
|
82
|
-
parse: (text) => {
|
|
83
|
-
/* return alternating text / mention segments */
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
const SlashDirectiveText = createDirectiveText(slashFormatter);
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
Pass the **same formatter** to the composer trigger's `directive={{ formatter }}` (or `action={{ formatter }}`) so insertion and rendering stay consistent.
|
|
91
|
-
|
|
92
|
-
## Customizing the Chip
|
|
93
|
-
|
|
94
|
-
Because `directive-text.tsx` is copied into your project, you can also edit it directly — swap the chip styling, read `data-directive-id` to link to a detail page, or replace the chip wrapper entirely.
|
|
95
|
-
|
|
96
|
-
## API Reference
|
|
97
|
-
|
|
98
|
-
### `DirectiveText`
|
|
99
|
-
|
|
100
|
-
A `TextMessagePartComponent` that parses `:type[label]{name=id}` directives and renders them as inline chips. Uses the default formatter from `@assistant-ui/react` and renders chips without icons. For per-type icons, build a component with `createDirectiveText(formatter, { iconMap })`.
|
|
101
|
-
|
|
102
|
-
### `createDirectiveText(formatter, options?)`
|
|
103
|
-
|
|
104
|
-
Factory that returns a `TextMessagePartComponent` bound to a custom `Unstable_DirectiveFormatter`.
|
|
105
|
-
|
|
106
|
-
| Option | Type | Description |
|
|
107
|
-
| --- | --- | --- |
|
|
108
|
-
| `iconMap` | `Record<string, ComponentType<{ className?: string }>>` | Maps a directive segment's `type` to an icon rendered inside the chip |
|
|
109
|
-
| `fallbackIcon` | `ComponentType<{ className?: string }>` | Icon used when no `iconMap` entry matches. When neither option resolves, the chip renders without an icon. |
|
|
110
|
-
|
|
111
|
-
## Related
|
|
112
|
-
|
|
113
|
-
- [Composer Trigger Popover](/docs/ui/composer-trigger-popover) — the picker that inserts directives
|
|
114
|
-
- [Mentions guide](/docs/guides/mentions) — directive format, backend parsing
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: File
|
|
3
|
-
description: Display file message parts with icon, name, size, and download button.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
import { FileSample } from "@/components/pages/docs/samples/file";
|
|
8
|
-
|
|
9
|
-
<FileSample />
|
|
10
|
-
|
|
11
|
-
## Getting Started
|
|
12
|
-
|
|
13
|
-
<Steps>
|
|
14
|
-
<Step>
|
|
15
|
-
|
|
16
|
-
### Add `file`
|
|
17
|
-
|
|
18
|
-
<InstallCommand shadcn={["file"]} />
|
|
19
|
-
|
|
20
|
-
</Step>
|
|
21
|
-
<Step>
|
|
22
|
-
|
|
23
|
-
### Use in your application
|
|
24
|
-
|
|
25
|
-
The shipped `Thread` component renders `file` parts through `File` by default, in both assistant and user messages. In a custom thread, pass `File` to `MessagePrimitive.Parts`:
|
|
26
|
-
|
|
27
|
-
```tsx title="/components/assistant-ui/thread.tsx" {1,8}
|
|
28
|
-
import { File } from "@/components/assistant-ui/file";
|
|
29
|
-
|
|
30
|
-
const UserMessage: FC = () => {
|
|
31
|
-
return (
|
|
32
|
-
<MessagePrimitive.Root className="...">
|
|
33
|
-
<MessagePrimitive.Parts>
|
|
34
|
-
{({ part }) => {
|
|
35
|
-
if (part.type === "file") return <File {...part} />;
|
|
36
|
-
return null;
|
|
37
|
-
}}
|
|
38
|
-
</MessagePrimitive.Parts>
|
|
39
|
-
</MessagePrimitive.Root>
|
|
40
|
-
);
|
|
41
|
-
};
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
</Step>
|
|
45
|
-
</Steps>
|
|
46
|
-
|
|
47
|
-
## Variants
|
|
48
|
-
|
|
49
|
-
Use the `variant` prop to change the visual style.
|
|
50
|
-
|
|
51
|
-
```tsx
|
|
52
|
-
<File.Root variant="outline" /> // Border (default)
|
|
53
|
-
<File.Root variant="ghost" /> // No border
|
|
54
|
-
<File.Root variant="muted" /> // Background fill
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Sizes
|
|
58
|
-
|
|
59
|
-
Use the `size` prop to change padding and font size.
|
|
60
|
-
|
|
61
|
-
```tsx
|
|
62
|
-
<File.Root size="sm" /> // Compact
|
|
63
|
-
<File.Root size="default" /> // Default
|
|
64
|
-
<File.Root size="lg" /> // Larger
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## MimeType Icons
|
|
68
|
-
|
|
69
|
-
The component automatically selects an appropriate icon based on the file's MIME type:
|
|
70
|
-
|
|
71
|
-
| MIME Type | Icon |
|
|
72
|
-
|-----------|------|
|
|
73
|
-
| `image/*` | ImageIcon |
|
|
74
|
-
| `application/pdf` | FileTextIcon |
|
|
75
|
-
| `application/json` | BracesIcon |
|
|
76
|
-
| `text/*` | FileTextIcon |
|
|
77
|
-
| `audio/*` | MusicIcon |
|
|
78
|
-
| `video/*` | VideoIcon |
|
|
79
|
-
| fallback | FileIcon |
|
|
80
|
-
|
|
81
|
-
## API Reference
|
|
82
|
-
|
|
83
|
-
### Composable API
|
|
84
|
-
|
|
85
|
-
The component exports composable sub-components:
|
|
86
|
-
|
|
87
|
-
```tsx
|
|
88
|
-
import {
|
|
89
|
-
File,
|
|
90
|
-
FileRoot,
|
|
91
|
-
FileIconDisplay,
|
|
92
|
-
FileName,
|
|
93
|
-
FileSize,
|
|
94
|
-
FileDownload,
|
|
95
|
-
} from "@/components/assistant-ui/file";
|
|
96
|
-
|
|
97
|
-
<FileRoot variant="muted" size="lg">
|
|
98
|
-
<FileIconDisplay mimeType="application/pdf" />
|
|
99
|
-
<div className="flex flex-col gap-0.5">
|
|
100
|
-
<FileName>report.pdf</FileName>
|
|
101
|
-
<FileSize bytes={2048} className="text-xs" />
|
|
102
|
-
</div>
|
|
103
|
-
<FileDownload
|
|
104
|
-
data="SGVsbG8gV29ybGQh"
|
|
105
|
-
mimeType="application/pdf"
|
|
106
|
-
filename="report.pdf"
|
|
107
|
-
/>
|
|
108
|
-
</FileRoot>
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
| Component | Description |
|
|
112
|
-
|-----------|-------------|
|
|
113
|
-
| `File` | Default export, renders complete file part |
|
|
114
|
-
| `File.Root` | Container with variant and size styling |
|
|
115
|
-
| `File.Icon` | MIME type-aware icon, or pass custom `children` |
|
|
116
|
-
| `File.Name` | Truncated filename |
|
|
117
|
-
| `File.Size` | Human-readable file size |
|
|
118
|
-
| `File.Download` | Download link button; renders nothing without a browser-resolvable target (`sourceType: "id"`, urls that are not http(s)/blob/data) |
|
|
119
|
-
|
|
120
|
-
### Custom Icon
|
|
121
|
-
|
|
122
|
-
Pass `children` to `File.Icon` to override the default MIME type icon:
|
|
123
|
-
|
|
124
|
-
```tsx
|
|
125
|
-
<File.Icon>
|
|
126
|
-
<MyCustomIcon className="size-5" />
|
|
127
|
-
</File.Icon>
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
## Utilities
|
|
131
|
-
|
|
132
|
-
The component also exports utility functions:
|
|
133
|
-
|
|
134
|
-
```tsx
|
|
135
|
-
import {
|
|
136
|
-
getMimeTypeIcon,
|
|
137
|
-
getFileDataKind,
|
|
138
|
-
getBase64Size,
|
|
139
|
-
formatFileSize,
|
|
140
|
-
} from "@/components/assistant-ui/file";
|
|
141
|
-
|
|
142
|
-
// Get icon component for a MIME type
|
|
143
|
-
const Icon = getMimeTypeIcon("application/pdf"); // FileTextIcon
|
|
144
|
-
|
|
145
|
-
// Classify the data field of a file part; a declared sourceType wins over sniffing, except a data: payload declared as "url"
|
|
146
|
-
const kind = getFileDataKind("https://example.com/report.pdf"); // "url"
|
|
147
|
-
const ref = getFileDataKind("file-abc123", "id"); // "id"
|
|
148
|
-
|
|
149
|
-
// Calculate size from base64 string
|
|
150
|
-
const bytes = getBase64Size("SGVsbG8gV29ybGQh"); // 12
|
|
151
|
-
|
|
152
|
-
// Format bytes to human-readable
|
|
153
|
-
const size = formatFileSize(2048); // "2.0 KB"
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
## Related Components
|
|
157
|
-
|
|
158
|
-
- [Image](/docs/ui/image) - Image message parts
|
|
159
|
-
- [Attachment](/docs/ui/attachment) - File attachments in composer and messages
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Follow-Up Suggestions
|
|
3
|
-
description: Render runtime-generated follow-up prompt chips after an assistant response.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
import { FollowUpSuggestionsSample } from "@/components/pages/docs/samples/follow-up-suggestions";
|
|
8
|
-
|
|
9
|
-
<FollowUpSuggestionsSample />
|
|
10
|
-
|
|
11
|
-
`ThreadFollowupSuggestions` renders the current thread's runtime suggestions as clickable prompt chips. Use it for follow-up prompts that arrive after a response, such as suggested next questions, refinements, or task shortcuts.
|
|
12
|
-
|
|
13
|
-
<Callout type="info">
|
|
14
|
-
This component reads from `thread.suggestions`. For static welcome-screen prompts, use `ThreadPrimitive.Suggestions` instead.
|
|
15
|
-
</Callout>
|
|
16
|
-
|
|
17
|
-
## Getting Started
|
|
18
|
-
|
|
19
|
-
<Steps>
|
|
20
|
-
<Step>
|
|
21
|
-
|
|
22
|
-
### Add `follow-up-suggestions`
|
|
23
|
-
|
|
24
|
-
<InstallCommand shadcn={["follow-up-suggestions"]} />
|
|
25
|
-
|
|
26
|
-
This adds a `/components/assistant-ui/follow-up-suggestions.tsx` file to your project. The default `thread` component already renders `ThreadFollowupSuggestions`, so installing it standalone is only needed when you build your own thread layout.
|
|
27
|
-
|
|
28
|
-
</Step>
|
|
29
|
-
<Step>
|
|
30
|
-
|
|
31
|
-
### Provide runtime suggestions
|
|
32
|
-
|
|
33
|
-
Pass suggestions through your runtime. External-store runtimes, AI SDK runtimes, and local runtimes can all surface follow-up prompts through `thread.suggestions`.
|
|
34
|
-
|
|
35
|
-
```tsx title="/app/assistant.tsx" {7-10}
|
|
36
|
-
const runtime = useExternalStoreRuntime({
|
|
37
|
-
messages,
|
|
38
|
-
convertMessage,
|
|
39
|
-
onNew: async (message) => {
|
|
40
|
-
// append the message in your store
|
|
41
|
-
},
|
|
42
|
-
suggestions: [
|
|
43
|
-
{ prompt: "Summarize this as action items" },
|
|
44
|
-
{ prompt: "Write a shorter version" },
|
|
45
|
-
],
|
|
46
|
-
});
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
</Step>
|
|
50
|
-
<Step>
|
|
51
|
-
|
|
52
|
-
### Render after messages
|
|
53
|
-
|
|
54
|
-
Place `ThreadFollowupSuggestions` near the bottom of your thread viewport, after the assistant message list and before the composer.
|
|
55
|
-
|
|
56
|
-
```tsx title="/components/assistant-ui/thread.tsx" {1,10}
|
|
57
|
-
import { ThreadFollowupSuggestions } from "@/components/assistant-ui/follow-up-suggestions";
|
|
58
|
-
|
|
59
|
-
const ThreadViewportFooter = () => {
|
|
60
|
-
return (
|
|
61
|
-
<ThreadPrimitive.ViewportFooter>
|
|
62
|
-
<ThreadPrimitive.ScrollToBottom />
|
|
63
|
-
<ThreadFollowupSuggestions />
|
|
64
|
-
<Composer />
|
|
65
|
-
</ThreadPrimitive.ViewportFooter>
|
|
66
|
-
);
|
|
67
|
-
};
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
</Step>
|
|
71
|
-
</Steps>
|
|
72
|
-
|
|
73
|
-
## Behavior
|
|
74
|
-
|
|
75
|
-
The component only renders when the thread is not empty, not currently running, and has at least one suggestion. Each suggestion uses `ThreadPrimitive.Suggestion`, replaces the composer text with the prompt, and sends it immediately.
|
|
76
|
-
|
|
77
|
-
Suggestions stay on a single line. When they overflow, the row scrolls horizontally without a scrollbar, and each edge with clipped content fades out — so no fade shows at the start edge until you scroll.
|
|
78
|
-
|
|
79
|
-
## Related Components
|
|
80
|
-
|
|
81
|
-
- [Thread](/docs/ui/thread) - Complete chat interface with message list and composer
|
|
82
|
-
- [Suggestions guide](/docs/guides/suggestions) - Runtime and static suggestion patterns
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Image
|
|
3
|
-
description: Display image message parts with preview, loading states, and fullscreen dialog.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
import { ImageSample } from "@/components/pages/docs/samples/image";
|
|
8
|
-
|
|
9
|
-
<ImageSample />
|
|
10
|
-
|
|
11
|
-
## Getting Started
|
|
12
|
-
|
|
13
|
-
<Steps>
|
|
14
|
-
<Step>
|
|
15
|
-
|
|
16
|
-
### Add `image`
|
|
17
|
-
|
|
18
|
-
<InstallCommand shadcn={["image"]} />
|
|
19
|
-
|
|
20
|
-
</Step>
|
|
21
|
-
<Step>
|
|
22
|
-
|
|
23
|
-
### Use in your application
|
|
24
|
-
|
|
25
|
-
The shipped `Thread` component renders `image` parts through `Image` by default, in both assistant and user messages. In a custom thread, pass `Image` to `MessagePrimitive.Parts`:
|
|
26
|
-
|
|
27
|
-
```tsx title="/components/assistant-ui/thread.tsx" {1,8}
|
|
28
|
-
import { Image } from "@/components/assistant-ui/image";
|
|
29
|
-
|
|
30
|
-
const AssistantMessage: FC = () => {
|
|
31
|
-
return (
|
|
32
|
-
<MessagePrimitive.Root className="...">
|
|
33
|
-
<MessagePrimitive.Parts>
|
|
34
|
-
{({ part }) => {
|
|
35
|
-
if (part.type === "image") return <Image {...part} />;
|
|
36
|
-
return null;
|
|
37
|
-
}}
|
|
38
|
-
</MessagePrimitive.Parts>
|
|
39
|
-
</MessagePrimitive.Root>
|
|
40
|
-
);
|
|
41
|
-
};
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
</Step>
|
|
45
|
-
</Steps>
|
|
46
|
-
|
|
47
|
-
## Variants
|
|
48
|
-
|
|
49
|
-
Use the `variant` prop to change the visual style.
|
|
50
|
-
|
|
51
|
-
```tsx
|
|
52
|
-
<Image.Root variant="outline" /> // Border (default)
|
|
53
|
-
<Image.Root variant="ghost" /> // No border
|
|
54
|
-
<Image.Root variant="muted" /> // Background fill
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Sizes
|
|
58
|
-
|
|
59
|
-
Use the `size` prop to control the maximum width.
|
|
60
|
-
|
|
61
|
-
```tsx
|
|
62
|
-
<Image.Root size="sm" /> // max-w-64 (256px)
|
|
63
|
-
<Image.Root size="default" /> // max-w-96 (384px)
|
|
64
|
-
<Image.Root size="lg" /> // max-w-[512px]
|
|
65
|
-
<Image.Root size="full" /> // w-full
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## API Reference
|
|
69
|
-
|
|
70
|
-
### Composable API
|
|
71
|
-
|
|
72
|
-
The component exports composable sub-components:
|
|
73
|
-
|
|
74
|
-
```tsx
|
|
75
|
-
import {
|
|
76
|
-
Image,
|
|
77
|
-
ImageRoot,
|
|
78
|
-
ImagePreview,
|
|
79
|
-
ImageFilename,
|
|
80
|
-
ImageZoom,
|
|
81
|
-
} from "@/components/assistant-ui/image";
|
|
82
|
-
|
|
83
|
-
<ImageRoot variant="muted" size="lg">
|
|
84
|
-
<ImageZoom src="https://example.com/photo.jpg" alt="Photo">
|
|
85
|
-
<ImagePreview src="https://example.com/photo.jpg" alt="Photo" />
|
|
86
|
-
</ImageZoom>
|
|
87
|
-
<ImageFilename>photo.jpg</ImageFilename>
|
|
88
|
-
</ImageRoot>
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
| Component | Description |
|
|
92
|
-
|-----------|-------------|
|
|
93
|
-
| `Image` | Default export, renders complete image part |
|
|
94
|
-
| `Image.Root` | Container with variant and size styling |
|
|
95
|
-
| `Image.Preview` | Image container with loading/error states |
|
|
96
|
-
| `Image.Filename` | Optional filename display below image |
|
|
97
|
-
| `Image.Zoom` | Medium-style zoom overlay (click to expand, ESC to close) |
|
|
98
|
-
|
|
99
|
-
## Related Components
|
|
100
|
-
|
|
101
|
-
- [Attachment](/docs/ui/attachment) - File attachments in composer and messages
|
|
102
|
-
- [File](/docs/ui/file) - Non-image file message parts
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Markdown
|
|
3
|
-
description: Display rich text with headings, lists, links, and code blocks.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
import { MarkdownSample } from "@/components/pages/docs/samples/markdown";
|
|
8
|
-
import { PreviewCode } from "@/components/pages/docs/preview-code.server";
|
|
9
|
-
import { MarkdownCodeBlockSample } from "@/components/pages/docs/samples/markdown/code-block-and-copy";
|
|
10
|
-
import { MarkdownRichDocumentSample } from "@/components/pages/docs/samples/markdown/rich-document";
|
|
11
|
-
import { MarkdownStreamingSample } from "@/components/pages/docs/samples/markdown/streaming-markdown";
|
|
12
|
-
import { MarkdownGfmSample } from "@/components/pages/docs/samples/markdown/gfm-extras";
|
|
13
|
-
|
|
14
|
-
<MarkdownSample />
|
|
15
|
-
|
|
16
|
-
<Callout>
|
|
17
|
-
Markdown support is already included by default in the `Thread` component.
|
|
18
|
-
</Callout>
|
|
19
|
-
|
|
20
|
-
## Enabling markdown support
|
|
21
|
-
|
|
22
|
-
<Steps>
|
|
23
|
-
|
|
24
|
-
<Step>
|
|
25
|
-
### Add `markdown-text`
|
|
26
|
-
|
|
27
|
-
<InstallCommand shadcn={["markdown-text"]} />
|
|
28
|
-
|
|
29
|
-
This adds a `/components/assistant-ui/markdown-text.tsx` file to your project, which you can adjust as needed.
|
|
30
|
-
|
|
31
|
-
</Step>
|
|
32
|
-
|
|
33
|
-
<Step>
|
|
34
|
-
|
|
35
|
-
### Use it in your application
|
|
36
|
-
|
|
37
|
-
Pass the `MarkdownText` component to the `MessagePrimitive.Parts` component
|
|
38
|
-
|
|
39
|
-
```tsx title="/components/assistant-ui/thread.tsx" {1,7}
|
|
40
|
-
import { MarkdownText } from "@/components/assistant-ui/markdown-text";
|
|
41
|
-
|
|
42
|
-
const AssistantMessage: FC = () => {
|
|
43
|
-
return (
|
|
44
|
-
<MessagePrimitive.Root className="...">
|
|
45
|
-
<div className="...">
|
|
46
|
-
<MessagePrimitive.Parts>
|
|
47
|
-
{({ part }) => part.type === "text" ? <MarkdownText /> : null}
|
|
48
|
-
</MessagePrimitive.Parts>
|
|
49
|
-
</div>
|
|
50
|
-
<AssistantActionBar />
|
|
51
|
-
|
|
52
|
-
<BranchPicker className="..." />
|
|
53
|
-
</MessagePrimitive.Root>
|
|
54
|
-
);
|
|
55
|
-
};
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
</Step>
|
|
59
|
-
|
|
60
|
-
</Steps>
|
|
61
|
-
|
|
62
|
-
## Examples
|
|
63
|
-
|
|
64
|
-
### Code Block and Copy
|
|
65
|
-
|
|
66
|
-
Fenced code blocks get a language header and a copy button, and inline code keeps compact styling. The preview also uses [syntax highlighting](/docs/ui/syntax-highlighting), which the copied component does not include by default.
|
|
67
|
-
|
|
68
|
-
<PreviewCode file="components/pages/docs/samples/markdown/code-block-and-copy" name="MarkdownWithCode">
|
|
69
|
-
<MarkdownCodeBlockSample />
|
|
70
|
-
</PreviewCode>
|
|
71
|
-
|
|
72
|
-
### Rich Document
|
|
73
|
-
|
|
74
|
-
The renderer shows headings, emphasis, links, nested lists, a blockquote, a divider, and a table from one completed response.
|
|
75
|
-
|
|
76
|
-
<PreviewCode file="components/pages/docs/samples/markdown/rich-document" name="MarkdownDocument">
|
|
77
|
-
<MarkdownRichDocumentSample />
|
|
78
|
-
</PreviewCode>
|
|
79
|
-
|
|
80
|
-
### Streaming Markdown
|
|
81
|
-
|
|
82
|
-
Select Replay. The markdown increases in steps, and the text part shows a running status until the last chunk.
|
|
83
|
-
|
|
84
|
-
<PreviewCode file="components/pages/docs/samples/markdown/streaming-markdown" name="StreamingMarkdown">
|
|
85
|
-
<MarkdownStreamingSample />
|
|
86
|
-
</PreviewCode>
|
|
87
|
-
|
|
88
|
-
### GitHub Flavored Markdown
|
|
89
|
-
|
|
90
|
-
Task-list checkboxes, strikethrough text, a bare autolink, and an aligned table show through the built-in GFM support.
|
|
91
|
-
|
|
92
|
-
<PreviewCode file="components/pages/docs/samples/markdown/gfm-extras" name="GfmMarkdown">
|
|
93
|
-
<MarkdownGfmSample />
|
|
94
|
-
</PreviewCode>
|
|
95
|
-
|
|
96
|
-
## Syntax highlighting
|
|
97
|
-
|
|
98
|
-
Syntax Highlighting is not included by default, see [Syntax Highlighting](/docs/ui/syntax-highlighting) to learn how to add it.
|
|
99
|
-
|
|
100
|
-
## Related Components
|
|
101
|
-
|
|
102
|
-
- [Syntax Highlighting](/docs/ui/syntax-highlighting) - Add code highlighting to markdown
|
|
103
|
-
- [Mermaid](/docs/ui/mermaid) - Render diagrams in markdown code blocks
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: MCP Config Dialog
|
|
3
|
-
description: Drop-in shadcn dialog that lists MCP connectors and custom servers, with inline OAuth/bearer auth controls and an add form.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
`McpConfigDialog` is a shadcn template that wraps the [`@assistant-ui/react-mcp`](/docs/tools/user-managed-mcp) primitives. Render it anywhere inside an `McpManagerResource`-mounted client and your users get a styled MCP server panel — no manual primitive composition.
|
|
8
|
-
|
|
9
|
-
## Getting Started
|
|
10
|
-
|
|
11
|
-
<Steps>
|
|
12
|
-
<Step>
|
|
13
|
-
|
|
14
|
-
### Install the package and the component
|
|
15
|
-
|
|
16
|
-
<InstallCommand npm={["@assistant-ui/react-mcp"]} />
|
|
17
|
-
|
|
18
|
-
<InstallCommand shadcn={["mcp-config"]} />
|
|
19
|
-
|
|
20
|
-
</Step>
|
|
21
|
-
<Step>
|
|
22
|
-
|
|
23
|
-
### Mount the manager
|
|
24
|
-
|
|
25
|
-
```tsx title="app/providers.tsx"
|
|
26
|
-
"use client";
|
|
27
|
-
|
|
28
|
-
import { AuiConfig, AuiProvider, useAui } from "@assistant-ui/react";
|
|
29
|
-
import { McpManagerResource, defineConnector } from "@assistant-ui/react-mcp";
|
|
30
|
-
|
|
31
|
-
const connectors = [
|
|
32
|
-
defineConnector({
|
|
33
|
-
id: "linear",
|
|
34
|
-
name: "Linear",
|
|
35
|
-
url: "https://mcp.linear.app",
|
|
36
|
-
auth: { type: "oauth", scopes: ["read"] },
|
|
37
|
-
}),
|
|
38
|
-
];
|
|
39
|
-
|
|
40
|
-
export function Providers({ children }: { children: React.ReactNode }) {
|
|
41
|
-
const aui = useAui();
|
|
42
|
-
const config = AuiConfig({ mcp: McpManagerResource({ connectors }) });
|
|
43
|
-
return (
|
|
44
|
-
<AuiProvider extends={aui} config={config}>
|
|
45
|
-
{children}
|
|
46
|
-
</AuiProvider>
|
|
47
|
-
);
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
</Step>
|
|
52
|
-
<Step>
|
|
53
|
-
|
|
54
|
-
### Drop the dialog in
|
|
55
|
-
|
|
56
|
-
```tsx title="app/page.tsx"
|
|
57
|
-
import { McpConfigDialog } from "@/components/assistant-ui/mcp-config";
|
|
58
|
-
|
|
59
|
-
export default function Page() {
|
|
60
|
-
return (
|
|
61
|
-
<header className="flex items-center justify-between">
|
|
62
|
-
<h1>My app</h1>
|
|
63
|
-
<McpConfigDialog />
|
|
64
|
-
</header>
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
That's it. The default trigger is an outline `"🔌 MCP servers"` button. Click it to open the dialog, which renders a **Connectors** list (your app-defined presets with connect/authorize/disconnect controls), a **Custom servers** list (user-added entries with the same controls plus a remove button), and an inline **Add server** form for URL + name + auth selection.
|
|
70
|
-
|
|
71
|
-
</Step>
|
|
72
|
-
<Step>
|
|
73
|
-
|
|
74
|
-
### Override the trigger (optional)
|
|
75
|
-
|
|
76
|
-
Pass children to swap the default button for your own:
|
|
77
|
-
|
|
78
|
-
```tsx
|
|
79
|
-
<McpConfigDialog>
|
|
80
|
-
<Button variant="ghost">Servers</Button>
|
|
81
|
-
</McpConfigDialog>
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
</Step>
|
|
85
|
-
<Step>
|
|
86
|
-
|
|
87
|
-
### Wire up the OAuth callback
|
|
88
|
-
|
|
89
|
-
Required for any OAuth-enabled connector or custom server. See the [OAuth callback section in the react-mcp guide](/docs/tools/user-managed-mcp#handle-the-oauth-callback) for the route handler.
|
|
90
|
-
|
|
91
|
-
</Step>
|
|
92
|
-
</Steps>
|
|
93
|
-
|
|
94
|
-
## Related
|
|
95
|
-
|
|
96
|
-
<Cards>
|
|
97
|
-
<Card
|
|
98
|
-
title="User-managed MCP servers"
|
|
99
|
-
description="Full @assistant-ui/react-mcp guide — connectors, custom servers, OAuth, storage, custom primitives."
|
|
100
|
-
href="/docs/tools/user-managed-mcp"
|
|
101
|
-
/>
|
|
102
|
-
<Card
|
|
103
|
-
title="Server-side MCP"
|
|
104
|
-
description="App-developer-controlled MCP servers wired into the API route."
|
|
105
|
-
href="/docs/tools/mcp"
|
|
106
|
-
/>
|
|
107
|
-
</Cards>
|