@assistant-ui/mcp-docs-server 0.2.2 → 0.3.0
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 +76 -0
- package/dist/proxy.js.map +1 -0
- package/package.json +9 -13
- package/src/index.ts +3 -115
- package/src/proxy.test.ts +250 -0
- package/src/proxy.ts +111 -0
- package/.docs/organized/code-examples/waterfall.md +0 -807
- package/.docs/organized/code-examples/with-a2a.md +0 -674
- package/.docs/organized/code-examples/with-ag-ui.md +0 -552
- package/.docs/organized/code-examples/with-ai-sdk-v7.md +0 -465
- package/.docs/organized/code-examples/with-artifacts.md +0 -814
- package/.docs/organized/code-examples/with-assistant-transport.md +0 -575
- package/.docs/organized/code-examples/with-browser-extension.md +0 -371
- package/.docs/organized/code-examples/with-chain-of-thought.md +0 -960
- package/.docs/organized/code-examples/with-cloud-standalone.md +0 -681
- package/.docs/organized/code-examples/with-cloud.md +0 -438
- package/.docs/organized/code-examples/with-custom-thread-list.md +0 -568
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +0 -526
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +0 -696
- package/.docs/organized/code-examples/with-eve.md +0 -404
- package/.docs/organized/code-examples/with-expo.md +0 -2063
- package/.docs/organized/code-examples/with-external-store.md +0 -420
- package/.docs/organized/code-examples/with-ffmpeg.md +0 -828
- package/.docs/organized/code-examples/with-generative-ui.md +0 -1812
- package/.docs/organized/code-examples/with-google-adk.md +0 -367
- package/.docs/organized/code-examples/with-heat-graph.md +0 -304
- package/.docs/organized/code-examples/with-image-generation.md +0 -462
- package/.docs/organized/code-examples/with-interactables.md +0 -732
- package/.docs/organized/code-examples/with-langchain.md +0 -445
- package/.docs/organized/code-examples/with-langgraph.md +0 -854
- package/.docs/organized/code-examples/with-livekit.md +0 -642
- package/.docs/organized/code-examples/with-mcp.md +0 -780
- 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 -449
- package/.docs/organized/code-examples/with-pi.md +0 -2083
- package/.docs/organized/code-examples/with-react-hook-form.md +0 -724
- package/.docs/organized/code-examples/with-react-ink-web.md +0 -690
- package/.docs/organized/code-examples/with-react-ink.md +0 -472
- package/.docs/organized/code-examples/with-react-router.md +0 -935
- package/.docs/organized/code-examples/with-resumable-stream.md +0 -667
- 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 -811
- package/.docs/organized/code-examples/with-tap-runtime.md +0 -812
- package/.docs/organized/code-examples/with-virtualized-thread.md +0 -680
- package/.docs/organized/code-examples/with-vue.md +0 -408
- package/.docs/raw/docs/(docs)/architecture.mdx +0 -146
- package/.docs/raw/docs/(docs)/base-ui.mdx +0 -39
- package/.docs/raw/docs/(docs)/cli.mdx +0 -542
- package/.docs/raw/docs/(docs)/devtools.mdx +0 -79
- package/.docs/raw/docs/(docs)/index.mdx +0 -21
- package/.docs/raw/docs/(docs)/installation.mdx +0 -483
- package/.docs/raw/docs/(docs)/llm.mdx +0 -211
- package/.docs/raw/docs/(docs)/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 -20
- 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 -52
- 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/cloud-ai-sdk.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +0 -97
- package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +0 -28
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-ai-sdk.mdx +0 -200
- 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 -619
- 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 -149
- 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 -602
- 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 -400
- 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 -209
- 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 -236
- 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/overview.mdx +0 -282
- 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 -839
- 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 -255
- 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 -716
- 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 -346
- 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 -1008
- package/.docs/raw/docs/tools/user-managed-mcp.mdx +0 -428
- package/.docs/raw/docs/ui/accordion.mdx +0 -266
- 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 -259
- package/.docs/raw/docs/ui/badge.mdx +0 -150
- package/.docs/raw/docs/ui/composer-trigger-popover.mdx +0 -212
- package/.docs/raw/docs/ui/context-display.mdx +0 -148
- package/.docs/raw/docs/ui/diff-viewer.mdx +0 -280
- package/.docs/raw/docs/ui/directive-text.mdx +0 -114
- package/.docs/raw/docs/ui/dot-matrix.mdx +0 -133
- 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 -64
- 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/number-roll.mdx +0 -154
- 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 -186
- package/.docs/raw/docs/ui/scrollbar.mdx +0 -77
- package/.docs/raw/docs/ui/select.mdx +0 -254
- package/.docs/raw/docs/ui/sources.mdx +0 -177
- package/.docs/raw/docs/ui/streamdown.mdx +0 -392
- package/.docs/raw/docs/ui/syntax-highlighting.mdx +0 -205
- package/.docs/raw/docs/ui/tabs.mdx +0 -271
- package/.docs/raw/docs/ui/thread-list.mdx +0 -372
- package/.docs/raw/docs/ui/thread.mdx +0 -512
- package/.docs/raw/docs/ui/tool-fallback.mdx +0 -127
- 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 -67
- 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 -144
- 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 -81
- 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 -262
- 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 -105
- 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 -60
|
@@ -1,512 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Thread Component
|
|
3
|
-
description: Stream-ready React chat container with message list, composer, auto-scroll, and accessibility built in. Drop into any AI chat UI built with assistant-ui.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
import { ThreadSample } from "@/components/docs/samples/thread";
|
|
8
|
-
|
|
9
|
-
A complete chat interface that combines message rendering, auto-scrolling, composer input,
|
|
10
|
-
attachments, and conditional UI states. Fully customizable and composable.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
<ThreadSample />
|
|
14
|
-
|
|
15
|
-
## Anatomy
|
|
16
|
-
|
|
17
|
-
The `Thread` component is built with the following primitives:
|
|
18
|
-
|
|
19
|
-
```tsx
|
|
20
|
-
import { ThreadPrimitive, AuiIf } from "@assistant-ui/react";
|
|
21
|
-
|
|
22
|
-
<ThreadPrimitive.Root>
|
|
23
|
-
<ThreadPrimitive.Viewport>
|
|
24
|
-
<AuiIf condition={(s) => s.thread.isEmpty}>
|
|
25
|
-
<ThreadWelcome />
|
|
26
|
-
{/* ThreadWelcome includes ThreadPrimitive.Suggestions */}
|
|
27
|
-
</AuiIf>
|
|
28
|
-
|
|
29
|
-
<ThreadPrimitive.Messages>
|
|
30
|
-
{({ message }) => {
|
|
31
|
-
if (message.role === "user") return <UserMessage />;
|
|
32
|
-
return <AssistantMessage />;
|
|
33
|
-
}}
|
|
34
|
-
</ThreadPrimitive.Messages>
|
|
35
|
-
|
|
36
|
-
<ThreadPrimitive.ViewportFooter>
|
|
37
|
-
<ThreadPrimitive.ScrollToBottom />
|
|
38
|
-
<Composer />
|
|
39
|
-
</ThreadPrimitive.ViewportFooter>
|
|
40
|
-
</ThreadPrimitive.Viewport>
|
|
41
|
-
</ThreadPrimitive.Root>
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Getting Started
|
|
45
|
-
|
|
46
|
-
<Steps>
|
|
47
|
-
<Step>
|
|
48
|
-
|
|
49
|
-
### Add the component
|
|
50
|
-
|
|
51
|
-
<InstallCommand shadcn={["thread"]} />
|
|
52
|
-
|
|
53
|
-
This adds a `/components/assistant-ui/thread.tsx` file to your project, which you can adjust as needed.
|
|
54
|
-
|
|
55
|
-
</Step>
|
|
56
|
-
<Step>
|
|
57
|
-
|
|
58
|
-
### Use in your application
|
|
59
|
-
|
|
60
|
-
```tsx title="/app/page.tsx" {1,6}
|
|
61
|
-
import { Thread } from "@/components/assistant-ui/thread";
|
|
62
|
-
|
|
63
|
-
export default function Chat() {
|
|
64
|
-
return (
|
|
65
|
-
<div className="h-full">
|
|
66
|
-
<Thread />
|
|
67
|
-
</div>
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
</Step>
|
|
73
|
-
</Steps>
|
|
74
|
-
|
|
75
|
-
## Examples
|
|
76
|
-
|
|
77
|
-
### Welcome Screen
|
|
78
|
-
|
|
79
|
-
```tsx
|
|
80
|
-
<AuiIf condition={(s) => s.thread.isEmpty}>
|
|
81
|
-
<ThreadWelcome />
|
|
82
|
-
</AuiIf>
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Viewport Spacer
|
|
86
|
-
|
|
87
|
-
```tsx
|
|
88
|
-
<AuiIf condition={(s) => !s.thread.isEmpty}>
|
|
89
|
-
<div className="min-h-8 grow" />
|
|
90
|
-
</AuiIf>
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### Conditional Send/Cancel Button
|
|
94
|
-
|
|
95
|
-
```tsx
|
|
96
|
-
<AuiIf condition={(s) => !s.thread.isRunning}>
|
|
97
|
-
<ComposerPrimitive.Send>
|
|
98
|
-
Send
|
|
99
|
-
</ComposerPrimitive.Send>
|
|
100
|
-
</AuiIf>
|
|
101
|
-
|
|
102
|
-
<AuiIf condition={(s) => s.thread.isRunning}>
|
|
103
|
-
<ComposerPrimitive.Cancel>
|
|
104
|
-
Cancel
|
|
105
|
-
</ComposerPrimitive.Cancel>
|
|
106
|
-
</AuiIf>
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### Suggestions
|
|
110
|
-
|
|
111
|
-
Display suggested prompts using the Suggestions API. See the [Suggestions guide](/docs/guides/suggestions) for detailed configuration.
|
|
112
|
-
|
|
113
|
-
```tsx
|
|
114
|
-
import type { ReactNode } from "react";
|
|
115
|
-
import {
|
|
116
|
-
AssistantRuntimeProvider,
|
|
117
|
-
AuiConfig,
|
|
118
|
-
SuggestionPrimitive,
|
|
119
|
-
Suggestions,
|
|
120
|
-
ThreadPrimitive,
|
|
121
|
-
} from "@assistant-ui/react";
|
|
122
|
-
import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
|
|
123
|
-
|
|
124
|
-
// Configure suggestions in your runtime provider
|
|
125
|
-
const config = AuiConfig({
|
|
126
|
-
suggestions: Suggestions(["What's the weather?", "Tell me a joke"]),
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
const App = ({ children }: { children: ReactNode }) => {
|
|
130
|
-
const runtime = useChatRuntime();
|
|
131
|
-
return (
|
|
132
|
-
<AssistantRuntimeProvider runtime={runtime} config={config}>
|
|
133
|
-
{children}
|
|
134
|
-
</AssistantRuntimeProvider>
|
|
135
|
-
);
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
// Display suggestions in your thread component
|
|
139
|
-
const ThreadSuggestions = () => (
|
|
140
|
-
<ThreadPrimitive.Suggestions>
|
|
141
|
-
{() => <SuggestionItem />}
|
|
142
|
-
</ThreadPrimitive.Suggestions>
|
|
143
|
-
);
|
|
144
|
-
|
|
145
|
-
// Custom suggestion item
|
|
146
|
-
const SuggestionItem = () => (
|
|
147
|
-
<SuggestionPrimitive.Trigger send asChild>
|
|
148
|
-
<button>
|
|
149
|
-
<SuggestionPrimitive.Title />
|
|
150
|
-
</button>
|
|
151
|
-
</SuggestionPrimitive.Trigger>
|
|
152
|
-
);
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
## Component Overrides
|
|
156
|
-
|
|
157
|
-
`Thread` accepts an optional `components` prop that swaps parts of the rendering without editing the copied file. All slots are optional; omitted slots keep the built-in rendering.
|
|
158
|
-
|
|
159
|
-
```tsx
|
|
160
|
-
import { Thread, type ThreadComponents } from "@/components/assistant-ui/thread";
|
|
161
|
-
|
|
162
|
-
const THREAD_COMPONENTS: ThreadComponents = {
|
|
163
|
-
ToolFallback: MyToolFallback,
|
|
164
|
-
ToolGroup: MyToolGroup,
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
export default function Chat() {
|
|
168
|
-
return <Thread components={THREAD_COMPONENTS} />;
|
|
169
|
-
}
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
<ParametersTable
|
|
173
|
-
type="ThreadComponents"
|
|
174
|
-
parameters={[
|
|
175
|
-
{
|
|
176
|
-
name: "AssistantMessage",
|
|
177
|
-
type: "ComponentType",
|
|
178
|
-
description: "Replaces the entire assistant message, including the action bar and branch picker.",
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
name: "Welcome",
|
|
182
|
-
type: "ComponentType",
|
|
183
|
-
description: "Replaces the welcome screen shown for a new chat.",
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
name: "ToolFallback",
|
|
187
|
-
type: "ToolCallMessagePartComponent",
|
|
188
|
-
description: "Renders tool calls that have no tool UI registered by name. Registered tool UIs take precedence over this slot.",
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
name: "ToolGroup",
|
|
192
|
-
type: "ComponentType<PropsWithChildren<{ group: ThreadGroupPart }>>",
|
|
193
|
-
description: "Wraps runs of consecutive tool calls. Receives the group part (`indices`, `status`) and the rendered children.",
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
name: "ReasoningGroup",
|
|
197
|
-
type: "ComponentType<PropsWithChildren<{ group: ThreadGroupPart }>>",
|
|
198
|
-
description: "Wraps runs of consecutive reasoning parts. Receives the group part and the rendered children.",
|
|
199
|
-
},
|
|
200
|
-
]}
|
|
201
|
-
/>
|
|
202
|
-
|
|
203
|
-
Define the `components` object once at module scope (or memoize it) so message subtrees do not re-render whenever the parent re-renders.
|
|
204
|
-
|
|
205
|
-
For per-tool UI, prefer registering a renderer by tool name over overriding `ToolFallback`: put `render` on the matching toolkit entry (see [Tool UI](/docs/tools/tool-ui)). `data` message parts render through renderers registered with `useAssistantDataUI`; parts without a registered renderer are not displayed.
|
|
206
|
-
|
|
207
|
-
## API Reference
|
|
208
|
-
|
|
209
|
-
The following primitives are used within the Thread component and can be customized in your `/components/assistant-ui/thread.tsx` file.
|
|
210
|
-
|
|
211
|
-
### Root
|
|
212
|
-
|
|
213
|
-
Contains all parts of the thread.
|
|
214
|
-
|
|
215
|
-
<ParametersTable
|
|
216
|
-
type="ThreadPrimitiveRootProps"
|
|
217
|
-
parameters={[
|
|
218
|
-
{
|
|
219
|
-
name: "asChild",
|
|
220
|
-
type: "boolean",
|
|
221
|
-
default: "false",
|
|
222
|
-
description: "Merge props with child element instead of rendering a wrapper div.",
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
name: "className",
|
|
226
|
-
type: "string",
|
|
227
|
-
description: "CSS class name.",
|
|
228
|
-
},
|
|
229
|
-
]}
|
|
230
|
-
/>
|
|
231
|
-
|
|
232
|
-
This primitive renders a `<div>` element unless `asChild` is set.
|
|
233
|
-
|
|
234
|
-
### Viewport
|
|
235
|
-
|
|
236
|
-
The scrollable area containing all messages. Automatically scrolls to the bottom as new messages are added.
|
|
237
|
-
|
|
238
|
-
<ParametersTable
|
|
239
|
-
type="ThreadPrimitiveViewportProps"
|
|
240
|
-
parameters={[
|
|
241
|
-
{
|
|
242
|
-
name: "asChild",
|
|
243
|
-
type: "boolean",
|
|
244
|
-
default: "false",
|
|
245
|
-
description: "Merge props with child element instead of rendering a wrapper div.",
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
name: "autoScroll",
|
|
249
|
-
type: "boolean",
|
|
250
|
-
default: 'true (false when turnAnchor is "top")',
|
|
251
|
-
description:
|
|
252
|
-
"Whether to automatically scroll to the bottom when new messages are added while the viewport was previously scrolled to the bottom.",
|
|
253
|
-
},
|
|
254
|
-
{
|
|
255
|
-
name: "turnAnchor",
|
|
256
|
-
type: '"top" | "bottom"',
|
|
257
|
-
default: '"bottom"',
|
|
258
|
-
description:
|
|
259
|
-
'Controls scroll anchoring behavior for new messages. "top" anchors new user messages at the top of the viewport.',
|
|
260
|
-
},
|
|
261
|
-
{
|
|
262
|
-
name: "topAnchorMessageClamp",
|
|
263
|
-
type: '{ tallerThan?: string; visibleHeight?: string }',
|
|
264
|
-
default: '{ tallerThan: "10em", visibleHeight: "6em" }',
|
|
265
|
-
description:
|
|
266
|
-
'Clamps tall user messages when turnAnchor is "top". Messages up to `tallerThan` stay fully visible; taller messages show only `visibleHeight` of their bottom edge above the assistant response.',
|
|
267
|
-
children: [
|
|
268
|
-
{
|
|
269
|
-
type: '{ tallerThan?: string; visibleHeight?: string }',
|
|
270
|
-
parameters: [
|
|
271
|
-
{
|
|
272
|
-
name: "tallerThan",
|
|
273
|
-
type: "string",
|
|
274
|
-
default: '"10em"',
|
|
275
|
-
description: "Clamp messages taller than this CSS length.",
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
name: "visibleHeight",
|
|
279
|
-
type: "string",
|
|
280
|
-
default: '"6em"',
|
|
281
|
-
description:
|
|
282
|
-
"Visible portion of a clamped message's bottom edge.",
|
|
283
|
-
},
|
|
284
|
-
],
|
|
285
|
-
},
|
|
286
|
-
],
|
|
287
|
-
},
|
|
288
|
-
{
|
|
289
|
-
name: "scrollToBottomOnRunStart",
|
|
290
|
-
type: "boolean",
|
|
291
|
-
default: "true",
|
|
292
|
-
description: "Whether to scroll to bottom when a new run starts.",
|
|
293
|
-
},
|
|
294
|
-
{
|
|
295
|
-
name: "scrollToBottomOnInitialize",
|
|
296
|
-
type: "boolean",
|
|
297
|
-
default: "true",
|
|
298
|
-
description:
|
|
299
|
-
"Whether to scroll to bottom when thread history is first loaded.",
|
|
300
|
-
},
|
|
301
|
-
{
|
|
302
|
-
name: "scrollToBottomOnThreadSwitch",
|
|
303
|
-
type: "boolean",
|
|
304
|
-
default: "true",
|
|
305
|
-
description:
|
|
306
|
-
"Whether to scroll to bottom when switching to a different thread.",
|
|
307
|
-
},
|
|
308
|
-
{
|
|
309
|
-
name: "className",
|
|
310
|
-
type: "string",
|
|
311
|
-
description: "CSS class name.",
|
|
312
|
-
},
|
|
313
|
-
]}
|
|
314
|
-
/>
|
|
315
|
-
|
|
316
|
-
This primitive renders a `<div>` element unless `asChild` is set.
|
|
317
|
-
|
|
318
|
-
### Messages
|
|
319
|
-
|
|
320
|
-
Renders all messages in the thread. This primitive renders a separate component for each message.
|
|
321
|
-
|
|
322
|
-
```tsx
|
|
323
|
-
<ThreadPrimitive.Messages>
|
|
324
|
-
{({ message }) => {
|
|
325
|
-
if (message.role === "user") return <UserMessage />;
|
|
326
|
-
return <AssistantMessage />;
|
|
327
|
-
}}
|
|
328
|
-
</ThreadPrimitive.Messages>
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
<ParametersTable
|
|
332
|
-
type="ThreadPrimitiveMessagesProps"
|
|
333
|
-
parameters={[
|
|
334
|
-
{
|
|
335
|
-
name: "components",
|
|
336
|
-
type: "MessageComponents",
|
|
337
|
-
required: true,
|
|
338
|
-
description: "Components to render for different message types.",
|
|
339
|
-
children: [
|
|
340
|
-
{
|
|
341
|
-
type: "MessageComponents",
|
|
342
|
-
parameters: [
|
|
343
|
-
{
|
|
344
|
-
name: "Message",
|
|
345
|
-
type: "ComponentType",
|
|
346
|
-
description: "Default component for all messages.",
|
|
347
|
-
},
|
|
348
|
-
{
|
|
349
|
-
name: "UserMessage",
|
|
350
|
-
type: "ComponentType",
|
|
351
|
-
description: "Component for user messages.",
|
|
352
|
-
},
|
|
353
|
-
{
|
|
354
|
-
name: "EditComposer",
|
|
355
|
-
type: "ComponentType",
|
|
356
|
-
description:
|
|
357
|
-
"Component for user messages being edited.",
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
name: "AssistantMessage",
|
|
361
|
-
type: "ComponentType",
|
|
362
|
-
description: "Component for assistant messages.",
|
|
363
|
-
},
|
|
364
|
-
{
|
|
365
|
-
name: "SystemMessage",
|
|
366
|
-
type: "ComponentType",
|
|
367
|
-
description: "Component for system messages.",
|
|
368
|
-
},
|
|
369
|
-
],
|
|
370
|
-
},
|
|
371
|
-
],
|
|
372
|
-
},
|
|
373
|
-
]}
|
|
374
|
-
/>
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
### MessageByIndex
|
|
378
|
-
|
|
379
|
-
Renders a single message at the specified index.
|
|
380
|
-
|
|
381
|
-
```tsx
|
|
382
|
-
<ThreadPrimitive.MessageByIndex
|
|
383
|
-
index={0}
|
|
384
|
-
components={{
|
|
385
|
-
UserMessage: UserMessage,
|
|
386
|
-
AssistantMessage: AssistantMessage
|
|
387
|
-
}}
|
|
388
|
-
/>
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
<ParametersTable
|
|
392
|
-
type="ThreadPrimitiveMessageByIndexProps"
|
|
393
|
-
parameters={[
|
|
394
|
-
{
|
|
395
|
-
name: "index",
|
|
396
|
-
type: "number",
|
|
397
|
-
required: true,
|
|
398
|
-
description: "The index of the message to render.",
|
|
399
|
-
},
|
|
400
|
-
{
|
|
401
|
-
name: "components",
|
|
402
|
-
type: "MessageComponents",
|
|
403
|
-
description: "Components to render for different message types.",
|
|
404
|
-
},
|
|
405
|
-
]}
|
|
406
|
-
/>
|
|
407
|
-
|
|
408
|
-
### Empty
|
|
409
|
-
|
|
410
|
-
Renders children only when there are no messages in the thread.
|
|
411
|
-
|
|
412
|
-
<ParametersTable
|
|
413
|
-
type="ThreadPrimitiveEmptyProps"
|
|
414
|
-
parameters={[
|
|
415
|
-
{
|
|
416
|
-
name: "children",
|
|
417
|
-
type: "ReactNode",
|
|
418
|
-
description: "Content to display when the thread is empty.",
|
|
419
|
-
},
|
|
420
|
-
]}
|
|
421
|
-
/>
|
|
422
|
-
|
|
423
|
-
### ScrollToBottom
|
|
424
|
-
|
|
425
|
-
A button to scroll the viewport to the bottom. Disabled when the viewport is already at the bottom.
|
|
426
|
-
|
|
427
|
-
<ParametersTable
|
|
428
|
-
type="ThreadPrimitiveScrollToBottomProps"
|
|
429
|
-
parameters={[
|
|
430
|
-
{
|
|
431
|
-
name: "asChild",
|
|
432
|
-
type: "boolean",
|
|
433
|
-
default: "false",
|
|
434
|
-
description: "Merge props with child element instead of rendering a wrapper button.",
|
|
435
|
-
},
|
|
436
|
-
{
|
|
437
|
-
name: "className",
|
|
438
|
-
type: "string",
|
|
439
|
-
description: "CSS class name.",
|
|
440
|
-
},
|
|
441
|
-
]}
|
|
442
|
-
/>
|
|
443
|
-
|
|
444
|
-
This primitive renders a `<button>` element unless `asChild` is set.
|
|
445
|
-
|
|
446
|
-
### Suggestions
|
|
447
|
-
|
|
448
|
-
Renders all configured suggestions. Configure suggestions using the `Suggestions()` API in your runtime provider.
|
|
449
|
-
|
|
450
|
-
```tsx
|
|
451
|
-
<ThreadPrimitive.Suggestions>
|
|
452
|
-
{() => <CustomSuggestionComponent />}
|
|
453
|
-
</ThreadPrimitive.Suggestions>
|
|
454
|
-
```
|
|
455
|
-
|
|
456
|
-
<ParametersTable
|
|
457
|
-
type="ThreadPrimitiveSuggestionsProps"
|
|
458
|
-
parameters={[
|
|
459
|
-
{
|
|
460
|
-
name: "components",
|
|
461
|
-
type: "{ Suggestion: ComponentType }",
|
|
462
|
-
description: "Custom component to render each suggestion.",
|
|
463
|
-
},
|
|
464
|
-
]}
|
|
465
|
-
/>
|
|
466
|
-
|
|
467
|
-
<Callout type="info">
|
|
468
|
-
See the [Suggestions guide](/docs/guides/suggestions) for detailed information on configuring and customizing suggestions.
|
|
469
|
-
</Callout>
|
|
470
|
-
|
|
471
|
-
### AuiIf
|
|
472
|
-
|
|
473
|
-
Conditionally renders children based on assistant state. This is a generic component that can access thread, message, composer, and other state.
|
|
474
|
-
|
|
475
|
-
```tsx
|
|
476
|
-
import { AuiIf } from "@assistant-ui/react";
|
|
477
|
-
|
|
478
|
-
<AuiIf condition={(s) => s.thread.isEmpty}>
|
|
479
|
-
<WelcomeScreen />
|
|
480
|
-
</AuiIf>
|
|
481
|
-
|
|
482
|
-
<AuiIf condition={(s) => s.thread.isRunning}>
|
|
483
|
-
<LoadingIndicator />
|
|
484
|
-
</AuiIf>
|
|
485
|
-
|
|
486
|
-
<AuiIf condition={(s) => s.message.role === "assistant"}>
|
|
487
|
-
<AssistantAvatar />
|
|
488
|
-
</AuiIf>
|
|
489
|
-
```
|
|
490
|
-
|
|
491
|
-
<ParametersTable
|
|
492
|
-
type="AuiIfProps"
|
|
493
|
-
parameters={[
|
|
494
|
-
{
|
|
495
|
-
name: "condition",
|
|
496
|
-
type: "(state: AssistantState) => boolean",
|
|
497
|
-
required: true,
|
|
498
|
-
description: "A function that receives the assistant state and returns whether to render children.",
|
|
499
|
-
},
|
|
500
|
-
]}
|
|
501
|
-
/>
|
|
502
|
-
|
|
503
|
-
<Callout type="info">
|
|
504
|
-
The condition function receives an `AssistantState` object with access to `thread`, `message`, `composer`, `part`, and `attachment` state depending on context.
|
|
505
|
-
</Callout>
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
## Related Components
|
|
509
|
-
|
|
510
|
-
- [ThreadList](/docs/ui/thread-list) - List of threads, with or without sidebar
|
|
511
|
-
- [Quoting guide](/docs/guides/quoting) - Quote selected text from messages
|
|
512
|
-
- [SelectionToolbarPrimitive](/docs/api-reference/primitives/selection-toolbar) - Floating toolbar API reference
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: ToolFallback
|
|
3
|
-
description: Default UI component for tools without dedicated custom renderers.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
ToolFallbackSample,
|
|
9
|
-
ToolFallbackRunningSample,
|
|
10
|
-
ToolFallbackCancelledSample,
|
|
11
|
-
ToolFallbackStreamingSample,
|
|
12
|
-
ToolFallbackRequiresActionSample,
|
|
13
|
-
} from "@/components/docs/samples/tool-fallback";
|
|
14
|
-
|
|
15
|
-
<ToolFallbackSample />
|
|
16
|
-
|
|
17
|
-
## Getting Started
|
|
18
|
-
|
|
19
|
-
<Steps>
|
|
20
|
-
<Step>
|
|
21
|
-
|
|
22
|
-
### Add `tool-fallback`
|
|
23
|
-
|
|
24
|
-
<InstallCommand shadcn={["tool-fallback"]} />
|
|
25
|
-
|
|
26
|
-
This adds a `/components/assistant-ui/tool-fallback.tsx` file to your project, which you can adjust as needed.
|
|
27
|
-
|
|
28
|
-
</Step>
|
|
29
|
-
<Step>
|
|
30
|
-
|
|
31
|
-
### Use it in your application
|
|
32
|
-
|
|
33
|
-
Pass the `ToolFallback` component to the `MessagePrimitive.Parts` component
|
|
34
|
-
|
|
35
|
-
```tsx title="/components/assistant-ui/thread.tsx" {1,9}
|
|
36
|
-
import { ToolFallback } from "@/components/assistant-ui/tool-fallback";
|
|
37
|
-
|
|
38
|
-
const AssistantMessage = () => {
|
|
39
|
-
return (
|
|
40
|
-
<MessagePrimitive.Root>
|
|
41
|
-
<MessagePrimitive.Parts>
|
|
42
|
-
{({ part }) => {
|
|
43
|
-
if (part.type === "tool-call") return <ToolFallback {...part} />;
|
|
44
|
-
return null;
|
|
45
|
-
}}
|
|
46
|
-
</MessagePrimitive.Parts>
|
|
47
|
-
</MessagePrimitive.Root>
|
|
48
|
-
);
|
|
49
|
-
};
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
</Step>
|
|
53
|
-
</Steps>
|
|
54
|
-
|
|
55
|
-
## Examples
|
|
56
|
-
|
|
57
|
-
### Streaming Demo
|
|
58
|
-
|
|
59
|
-
Interactive demo showing the full tool call lifecycle: running → complete.
|
|
60
|
-
|
|
61
|
-
<ToolFallbackStreamingSample />
|
|
62
|
-
|
|
63
|
-
### Running State
|
|
64
|
-
|
|
65
|
-
Shows a loading spinner and shimmer animation while the tool is executing.
|
|
66
|
-
|
|
67
|
-
<ToolFallbackRunningSample />
|
|
68
|
-
|
|
69
|
-
### Cancelled State
|
|
70
|
-
|
|
71
|
-
Shows a muted appearance when a tool call was cancelled.
|
|
72
|
-
|
|
73
|
-
<ToolFallbackCancelledSample />
|
|
74
|
-
|
|
75
|
-
### Approval State
|
|
76
|
-
|
|
77
|
-
Shows the default Allow / Deny buttons rendered when a tool call enters `requires-action`. A tool call whose approval gate is already decided renders no buttons. The block auto-expands so the decision is visible without a click. Edit your project's copy of `tool-fallback.tsx` to add trust escalation, edit-args, custom labels, or analytics hooks — the shadcn philosophy is you own the file.
|
|
78
|
-
|
|
79
|
-
<ToolFallbackRequiresActionSample />
|
|
80
|
-
|
|
81
|
-
## Composable API
|
|
82
|
-
|
|
83
|
-
All sub-components are exported for custom layouts:
|
|
84
|
-
|
|
85
|
-
| Component | Description |
|
|
86
|
-
| --------- | ----------- |
|
|
87
|
-
| `ToolFallback.Root` | Collapsible container with scroll lock |
|
|
88
|
-
| `ToolFallback.Trigger` | Header with tool name, status icon, and shimmer |
|
|
89
|
-
| `ToolFallback.Content` | Animated collapsible content wrapper |
|
|
90
|
-
| `ToolFallback.Args` | Displays tool arguments |
|
|
91
|
-
| `ToolFallback.Result` | Displays tool execution result |
|
|
92
|
-
| `ToolFallback.Error` | Displays error or cancellation messages |
|
|
93
|
-
| `ToolFallback.Approval` | Renders Allow / Deny buttons for `requires-action` tools until a decision is recorded; wires `resume` / `addResult` / `respondToApproval` |
|
|
94
|
-
|
|
95
|
-
```tsx
|
|
96
|
-
import {
|
|
97
|
-
ToolFallback,
|
|
98
|
-
ToolFallbackRoot,
|
|
99
|
-
ToolFallbackTrigger,
|
|
100
|
-
ToolFallbackContent,
|
|
101
|
-
ToolFallbackArgs,
|
|
102
|
-
ToolFallbackResult,
|
|
103
|
-
ToolFallbackError,
|
|
104
|
-
ToolFallbackApproval,
|
|
105
|
-
} from "@/components/assistant-ui/tool-fallback";
|
|
106
|
-
|
|
107
|
-
// Compound component syntax
|
|
108
|
-
<ToolFallback.Root>
|
|
109
|
-
<ToolFallback.Trigger toolName="get_weather" status={status} />
|
|
110
|
-
<ToolFallback.Content>
|
|
111
|
-
<ToolFallback.Error status={status} />
|
|
112
|
-
<ToolFallback.Args argsText={argsText} />
|
|
113
|
-
<ToolFallback.Approval
|
|
114
|
-
addResult={addResult}
|
|
115
|
-
resume={resume}
|
|
116
|
-
interrupt={interrupt}
|
|
117
|
-
approval={approval}
|
|
118
|
-
respondToApproval={respondToApproval}
|
|
119
|
-
/>
|
|
120
|
-
<ToolFallback.Result result={result} />
|
|
121
|
-
</ToolFallback.Content>
|
|
122
|
-
</ToolFallback.Root>
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Related Components
|
|
126
|
-
|
|
127
|
-
- [ToolGroup](/docs/ui/tool-group) - Group consecutive tool calls together
|