@assistant-ui/mcp-docs-server 0.2.3 → 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 +8 -12
- 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 -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,207 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Custom Backend
|
|
3
|
-
description: Connect your React Native app to your own backend API.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
By default, `useLocalRuntime` manages threads and messages on-device. You can connect to your own backend in two ways depending on your needs.
|
|
7
|
-
|
|
8
|
-
## Option 1: ChatModelAdapter only
|
|
9
|
-
|
|
10
|
-
The simplest approach — keep thread management local, but send messages to your backend for inference.
|
|
11
|
-
|
|
12
|
-
```tsx title="adapters/my-chat-adapter.ts"
|
|
13
|
-
import type { ChatModelAdapter } from "@assistant-ui/react-native";
|
|
14
|
-
|
|
15
|
-
export const myChatAdapter: ChatModelAdapter = {
|
|
16
|
-
async *run({ messages, abortSignal }) {
|
|
17
|
-
const response = await fetch("https://my-api.com/chat", {
|
|
18
|
-
method: "POST",
|
|
19
|
-
headers: { "Content-Type": "application/json" },
|
|
20
|
-
body: JSON.stringify({ messages }),
|
|
21
|
-
signal: abortSignal,
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
const reader = response.body?.getReader();
|
|
25
|
-
if (!reader) throw new Error("No response body");
|
|
26
|
-
|
|
27
|
-
const decoder = new TextDecoder();
|
|
28
|
-
let fullText = "";
|
|
29
|
-
|
|
30
|
-
while (true) {
|
|
31
|
-
const { done, value } = await reader.read();
|
|
32
|
-
if (done) break;
|
|
33
|
-
|
|
34
|
-
const chunk = decoder.decode(value, { stream: true });
|
|
35
|
-
fullText += chunk;
|
|
36
|
-
yield { content: [{ type: "text", text: fullText }] };
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
```tsx title="hooks/use-app-runtime.ts"
|
|
43
|
-
import { useLocalRuntime } from "@assistant-ui/react-native";
|
|
44
|
-
import { myChatAdapter } from "@/adapters/my-chat-adapter";
|
|
45
|
-
|
|
46
|
-
export function useAppRuntime() {
|
|
47
|
-
return useLocalRuntime(myChatAdapter);
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
This gives you:
|
|
52
|
-
|
|
53
|
-
- Streaming chat responses from your API
|
|
54
|
-
- In-memory thread and message management
|
|
55
|
-
- Automatic features like message editing, reloading, and branch switching
|
|
56
|
-
|
|
57
|
-
## Option 2: Full backend thread management
|
|
58
|
-
|
|
59
|
-
When you want your backend to own thread state (e.g. for cross-device sync, team sharing, or server-side history), implement a `RemoteThreadListAdapter`.
|
|
60
|
-
|
|
61
|
-
<Steps>
|
|
62
|
-
<Step>
|
|
63
|
-
|
|
64
|
-
### Implement the adapter
|
|
65
|
-
|
|
66
|
-
```tsx title="adapters/my-thread-list-adapter.ts"
|
|
67
|
-
import type { RemoteThreadListAdapter } from "@assistant-ui/react-native";
|
|
68
|
-
import { createAssistantStream } from "assistant-stream";
|
|
69
|
-
|
|
70
|
-
const API_BASE = "https://my-api.com";
|
|
71
|
-
|
|
72
|
-
export const myThreadListAdapter: RemoteThreadListAdapter = {
|
|
73
|
-
async list() {
|
|
74
|
-
const res = await fetch(`${API_BASE}/threads`);
|
|
75
|
-
const threads = await res.json();
|
|
76
|
-
return {
|
|
77
|
-
threads: threads.map((t: any) => ({
|
|
78
|
-
remoteId: t.id,
|
|
79
|
-
status: t.archived ? "archived" : "regular",
|
|
80
|
-
title: t.title,
|
|
81
|
-
})),
|
|
82
|
-
};
|
|
83
|
-
},
|
|
84
|
-
|
|
85
|
-
async initialize(localId) {
|
|
86
|
-
const res = await fetch(`${API_BASE}/threads`, {
|
|
87
|
-
method: "POST",
|
|
88
|
-
headers: { "Content-Type": "application/json" },
|
|
89
|
-
body: JSON.stringify({ localId }),
|
|
90
|
-
});
|
|
91
|
-
const { id } = await res.json();
|
|
92
|
-
return { remoteId: id, externalId: undefined };
|
|
93
|
-
},
|
|
94
|
-
|
|
95
|
-
async rename(remoteId, title) {
|
|
96
|
-
await fetch(`${API_BASE}/threads/${remoteId}`, {
|
|
97
|
-
method: "PATCH",
|
|
98
|
-
headers: { "Content-Type": "application/json" },
|
|
99
|
-
body: JSON.stringify({ title }),
|
|
100
|
-
});
|
|
101
|
-
},
|
|
102
|
-
|
|
103
|
-
async archive(remoteId) {
|
|
104
|
-
await fetch(`${API_BASE}/threads/${remoteId}/archive`, {
|
|
105
|
-
method: "POST",
|
|
106
|
-
});
|
|
107
|
-
},
|
|
108
|
-
|
|
109
|
-
async unarchive(remoteId) {
|
|
110
|
-
await fetch(`${API_BASE}/threads/${remoteId}/unarchive`, {
|
|
111
|
-
method: "POST",
|
|
112
|
-
});
|
|
113
|
-
},
|
|
114
|
-
|
|
115
|
-
async delete(remoteId) {
|
|
116
|
-
await fetch(`${API_BASE}/threads/${remoteId}`, { method: "DELETE" });
|
|
117
|
-
},
|
|
118
|
-
|
|
119
|
-
async fetch(remoteId) {
|
|
120
|
-
const res = await fetch(`${API_BASE}/threads/${remoteId}`);
|
|
121
|
-
const t = await res.json();
|
|
122
|
-
return {
|
|
123
|
-
remoteId: t.id,
|
|
124
|
-
status: t.archived ? "archived" : "regular",
|
|
125
|
-
title: t.title,
|
|
126
|
-
};
|
|
127
|
-
},
|
|
128
|
-
|
|
129
|
-
async generateTitle(remoteId, unstable_messages) {
|
|
130
|
-
return createAssistantStream(async (controller) => {
|
|
131
|
-
const res = await fetch(`${API_BASE}/threads/${remoteId}/title`, {
|
|
132
|
-
method: "POST",
|
|
133
|
-
headers: { "Content-Type": "application/json" },
|
|
134
|
-
body: JSON.stringify({ messages: unstable_messages }),
|
|
135
|
-
});
|
|
136
|
-
const { title } = await res.json();
|
|
137
|
-
controller.appendText(title);
|
|
138
|
-
});
|
|
139
|
-
},
|
|
140
|
-
};
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
</Step>
|
|
144
|
-
<Step>
|
|
145
|
-
|
|
146
|
-
### Compose the runtime
|
|
147
|
-
|
|
148
|
-
```tsx title="hooks/use-app-runtime.ts"
|
|
149
|
-
import {
|
|
150
|
-
useLocalRuntime,
|
|
151
|
-
useRemoteThreadListRuntime,
|
|
152
|
-
} from "@assistant-ui/react-native";
|
|
153
|
-
import { myChatAdapter } from "@/adapters/my-chat-adapter";
|
|
154
|
-
import { myThreadListAdapter } from "@/adapters/my-thread-list-adapter";
|
|
155
|
-
|
|
156
|
-
export function useAppRuntime() {
|
|
157
|
-
return useRemoteThreadListRuntime({
|
|
158
|
-
runtimeHook: () => useLocalRuntime(myChatAdapter),
|
|
159
|
-
adapter: myThreadListAdapter,
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
</Step>
|
|
165
|
-
<Step>
|
|
166
|
-
|
|
167
|
-
### Use in your app
|
|
168
|
-
|
|
169
|
-
```tsx title="app/index.tsx"
|
|
170
|
-
import { AssistantRuntimeProvider } from "@assistant-ui/react-native";
|
|
171
|
-
import { useAppRuntime } from "@/hooks/use-app-runtime";
|
|
172
|
-
|
|
173
|
-
export default function App() {
|
|
174
|
-
const runtime = useAppRuntime();
|
|
175
|
-
return (
|
|
176
|
-
<AssistantRuntimeProvider runtime={runtime}>
|
|
177
|
-
{/* your chat UI */}
|
|
178
|
-
</AssistantRuntimeProvider>
|
|
179
|
-
);
|
|
180
|
-
}
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
</Step>
|
|
184
|
-
</Steps>
|
|
185
|
-
|
|
186
|
-
## Adapter methods
|
|
187
|
-
|
|
188
|
-
| Method | Description |
|
|
189
|
-
|--------|-------------|
|
|
190
|
-
| `list()` | Return all threads on mount |
|
|
191
|
-
| `initialize(localId)` | Create a thread server-side, return `{ remoteId }` |
|
|
192
|
-
| `rename(remoteId, title)` | Persist title changes |
|
|
193
|
-
| `archive(remoteId)` | Mark thread as archived |
|
|
194
|
-
| `unarchive(remoteId)` | Restore archived thread |
|
|
195
|
-
| `delete(remoteId)` | Permanently remove thread |
|
|
196
|
-
| `fetch(remoteId)` | Fetch single thread metadata |
|
|
197
|
-
| `generateTitle(remoteId, unstable_messages)` | Return an `AssistantStream` with the generated title |
|
|
198
|
-
|
|
199
|
-
## Which option to choose?
|
|
200
|
-
|
|
201
|
-
| | Option 1: ChatModelAdapter | Option 2: RemoteThreadListAdapter |
|
|
202
|
-
|---|---|---|
|
|
203
|
-
| **Thread storage** | In-memory | Your backend |
|
|
204
|
-
| **Message storage** | In-memory | In-memory (can add history adapter for server-side) |
|
|
205
|
-
| **Cross-device sync** | No | Yes |
|
|
206
|
-
| **Setup complexity** | Minimal | Moderate |
|
|
207
|
-
| **Best for** | Single-device apps, prototypes | Production apps with user accounts |
|
|
@@ -1,339 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Hooks
|
|
3
|
-
description: Reactive hooks for accessing runtime state in React Native.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## State Hooks
|
|
7
|
-
|
|
8
|
-
### useAuiState
|
|
9
|
-
|
|
10
|
-
The primary hook for accessing reactive state. It accepts a selector function for fine-grained re-renders — the component only re-renders when the selected value changes (shallow equality).
|
|
11
|
-
|
|
12
|
-
```tsx
|
|
13
|
-
import { useAuiState } from "@assistant-ui/react-native";
|
|
14
|
-
|
|
15
|
-
// Thread state
|
|
16
|
-
const messages = useAuiState((s) => s.thread.messages);
|
|
17
|
-
const isRunning = useAuiState((s) => s.thread.isRunning);
|
|
18
|
-
const isEmpty = useAuiState((s) => s.thread.isEmpty);
|
|
19
|
-
|
|
20
|
-
// Composer state
|
|
21
|
-
const text = useAuiState((s) => s.composer.text);
|
|
22
|
-
const composerIsEmpty = useAuiState((s) => s.composer.isEmpty);
|
|
23
|
-
const attachments = useAuiState((s) => s.composer.attachments);
|
|
24
|
-
|
|
25
|
-
// Message state (inside a message context)
|
|
26
|
-
const role = useAuiState((s) => s.message.role);
|
|
27
|
-
const isLast = useAuiState((s) => s.message.isLast);
|
|
28
|
-
|
|
29
|
-
// Thread list item state
|
|
30
|
-
const threadId = useAuiState((s) => s.threadListItem.id);
|
|
31
|
-
const title = useAuiState((s) => s.threadListItem.title);
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### useAui
|
|
35
|
-
|
|
36
|
-
Access the store methods for imperative actions.
|
|
37
|
-
|
|
38
|
-
```tsx
|
|
39
|
-
import { useAui } from "@assistant-ui/react-native";
|
|
40
|
-
|
|
41
|
-
const aui = useAui();
|
|
42
|
-
|
|
43
|
-
// Composer actions
|
|
44
|
-
aui.composer.setText("Hello");
|
|
45
|
-
aui.composer.send();
|
|
46
|
-
|
|
47
|
-
// Thread actions
|
|
48
|
-
aui.thread.cancelRun();
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### useAuiEvent
|
|
52
|
-
|
|
53
|
-
Subscribe to events without causing re-renders.
|
|
54
|
-
|
|
55
|
-
```tsx
|
|
56
|
-
import { useAuiEvent } from "@assistant-ui/react-native";
|
|
57
|
-
|
|
58
|
-
useAuiEvent("thread.modelContextUpdate", ({ threadId }) => {
|
|
59
|
-
console.log("Model context updated:", threadId);
|
|
60
|
-
});
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Runtime Hooks
|
|
64
|
-
|
|
65
|
-
### useLocalRuntime
|
|
66
|
-
|
|
67
|
-
Create an `AssistantRuntime` with a `ChatModelAdapter`.
|
|
68
|
-
|
|
69
|
-
```tsx
|
|
70
|
-
import { useLocalRuntime } from "@assistant-ui/react-native";
|
|
71
|
-
|
|
72
|
-
const runtime = useLocalRuntime(chatModel, {
|
|
73
|
-
initialMessages: [],
|
|
74
|
-
});
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
| Option | Type | Description |
|
|
78
|
-
|--------|------|-------------|
|
|
79
|
-
| `initialMessages` | `ThreadMessageLike[]` | Messages to pre-populate |
|
|
80
|
-
| `maxSteps` | `number` | Maximum tool call steps per run |
|
|
81
|
-
| `cloud` | `AssistantCloud` | Optional cloud instance for persistence |
|
|
82
|
-
| `adapters` | `object` | Optional adapter overrides (see below) |
|
|
83
|
-
| `unstable_humanToolNames` | `string[]` | Tool names that pause the run until a result is added via `addResult` |
|
|
84
|
-
|
|
85
|
-
The `adapters` option accepts the following fields (all optional):
|
|
86
|
-
|
|
87
|
-
| Adapter | Type | Description |
|
|
88
|
-
|---------|------|-------------|
|
|
89
|
-
| `history` | `ThreadHistoryAdapter` | Load and save thread message history |
|
|
90
|
-
| `attachments` | `AttachmentAdapter` | Handle file and attachment uploads |
|
|
91
|
-
| `speech` | `SpeechSynthesisAdapter` | Text-to-speech playback |
|
|
92
|
-
| `dictation` | `DictationAdapter` | Speech-to-text input |
|
|
93
|
-
| `feedback` | `FeedbackAdapter` | Thumbs up/down feedback |
|
|
94
|
-
| `suggestion` | `SuggestionAdapter` | Prompt suggestions |
|
|
95
|
-
|
|
96
|
-
### useRemoteThreadListRuntime
|
|
97
|
-
|
|
98
|
-
Create an `AssistantRuntime` with a persistent thread list backed by a `RemoteThreadListAdapter`. This wraps any runtime hook (such as one calling `useLocalRuntime` or a custom AI SDK hook) and layers thread-list management on top.
|
|
99
|
-
|
|
100
|
-
```tsx
|
|
101
|
-
import { useRemoteThreadListRuntime } from "@assistant-ui/react-native";
|
|
102
|
-
|
|
103
|
-
const runtime = useRemoteThreadListRuntime({
|
|
104
|
-
runtimeHook: () => useLocalRuntime(chatModel),
|
|
105
|
-
adapter: myThreadListAdapter,
|
|
106
|
-
});
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
| Option | Type | Description |
|
|
110
|
-
|--------|------|-------------|
|
|
111
|
-
| `runtimeHook` | `() => AssistantRuntime` | Hook that returns a per-thread runtime |
|
|
112
|
-
| `adapter` | `RemoteThreadListAdapter` | Backend adapter for listing/creating/archiving threads |
|
|
113
|
-
| `allowNesting` | `boolean` | When `true`, silently becomes a no-op if already inside another `useRemoteThreadListRuntime` |
|
|
114
|
-
|
|
115
|
-
## Model Context Hooks
|
|
116
|
-
|
|
117
|
-
### Tools
|
|
118
|
-
|
|
119
|
-
Author tools in a `"use generative"` file with `defineToolkit`, the same API as on the web ([Defining Tools](/docs/tools/defining-tools)). The tool definition is forwarded to the model; when the model calls it, the `execute` function runs and the `render` component displays the result.
|
|
120
|
-
|
|
121
|
-
Add the [`@assistant-ui/metro`](https://www.npmjs.com/package/@assistant-ui/metro) plugin so Metro compiles the `"use generative"` directive:
|
|
122
|
-
|
|
123
|
-
```js title="metro.config.js"
|
|
124
|
-
const { getDefaultConfig } = require("expo/metro-config");
|
|
125
|
-
const { withAui } = require("@assistant-ui/metro");
|
|
126
|
-
|
|
127
|
-
module.exports = withAui(getDefaultConfig(__dirname));
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
```tsx title="weather-toolkit.tsx"
|
|
131
|
-
"use generative";
|
|
132
|
-
|
|
133
|
-
import { defineToolkit } from "@assistant-ui/react-native";
|
|
134
|
-
import { Text, View } from "react-native";
|
|
135
|
-
import { z } from "zod";
|
|
136
|
-
|
|
137
|
-
export default defineToolkit({
|
|
138
|
-
get_weather: {
|
|
139
|
-
description: "Get the current weather for a city",
|
|
140
|
-
parameters: z.object({ city: z.string() }),
|
|
141
|
-
execute: async ({ city }) => {
|
|
142
|
-
"use client";
|
|
143
|
-
const res = await fetch(`https://api.weather.example/${city}`);
|
|
144
|
-
return res.json();
|
|
145
|
-
},
|
|
146
|
-
render: ({ args, result }) => (
|
|
147
|
-
<View>
|
|
148
|
-
<Text>
|
|
149
|
-
{args.city}: {result?.temperature}°F
|
|
150
|
-
</Text>
|
|
151
|
-
</View>
|
|
152
|
-
),
|
|
153
|
-
},
|
|
154
|
-
});
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
```tsx title="ToolProvider.tsx"
|
|
158
|
-
import {
|
|
159
|
-
AuiConfig,
|
|
160
|
-
AuiProvider,
|
|
161
|
-
Tools,
|
|
162
|
-
useAui,
|
|
163
|
-
} from "@assistant-ui/react-native";
|
|
164
|
-
import toolkit from "./weather-toolkit";
|
|
165
|
-
|
|
166
|
-
function ToolProvider({ children }: { children: React.ReactNode }) {
|
|
167
|
-
const aui = useAui();
|
|
168
|
-
const config = AuiConfig({ tools: Tools({ toolkit }) });
|
|
169
|
-
return (
|
|
170
|
-
<AuiProvider extends={aui} config={config}>
|
|
171
|
-
{children}
|
|
172
|
-
</AuiProvider>
|
|
173
|
-
);
|
|
174
|
-
}
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
### useAssistantDataUI
|
|
178
|
-
|
|
179
|
-
Register a UI renderer for a named data message part.
|
|
180
|
-
|
|
181
|
-
```tsx
|
|
182
|
-
import { useAssistantDataUI } from "@assistant-ui/react-native";
|
|
183
|
-
|
|
184
|
-
useAssistantDataUI({
|
|
185
|
-
name: "weather_card",
|
|
186
|
-
render: ({ data }) => (
|
|
187
|
-
<View>
|
|
188
|
-
<Text>{data.city}: {data.temperature}°F</Text>
|
|
189
|
-
</View>
|
|
190
|
-
),
|
|
191
|
-
});
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### useAssistantInstructions
|
|
195
|
-
|
|
196
|
-
Register system instructions in the model context.
|
|
197
|
-
|
|
198
|
-
```tsx
|
|
199
|
-
import { useAssistantInstructions } from "@assistant-ui/react-native";
|
|
200
|
-
|
|
201
|
-
useAssistantInstructions("You are a helpful weather assistant.");
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
### useInlineRender
|
|
205
|
-
|
|
206
|
-
Wrap a tool UI component so that inline state updates (from a parent component's render) are reflected without remounting. Use this when the render function closes over props that change over time.
|
|
207
|
-
|
|
208
|
-
```tsx title="my-tool-toolkit.tsx"
|
|
209
|
-
import { defineToolkit, useInlineRender } from "@assistant-ui/react-native";
|
|
210
|
-
import { Text } from "react-native";
|
|
211
|
-
import { useMemo } from "react";
|
|
212
|
-
|
|
213
|
-
export function useMyToolToolkit(someOuterProp: string) {
|
|
214
|
-
const stableRender = useInlineRender(({ args, result }) => (
|
|
215
|
-
<Text>{someOuterProp}: {result?.value}</Text>
|
|
216
|
-
));
|
|
217
|
-
|
|
218
|
-
return useMemo(
|
|
219
|
-
() =>
|
|
220
|
-
defineToolkit({
|
|
221
|
-
my_tool: {
|
|
222
|
-
type: "backend",
|
|
223
|
-
render: stableRender,
|
|
224
|
-
},
|
|
225
|
-
}),
|
|
226
|
-
[stableRender],
|
|
227
|
-
);
|
|
228
|
-
}
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
Import the toolkit hook, hoist `const aui = useAui()` and `const config = AuiConfig({ tools: Tools({ toolkit }) })` in the component body, and mount it with `<AuiProvider extends={aui} config={config}>`, as shown in the [Tools](#tools) section above.
|
|
232
|
-
|
|
233
|
-
### makeAssistantDataUI
|
|
234
|
-
|
|
235
|
-
Create a component that registers a data UI renderer when mounted.
|
|
236
|
-
|
|
237
|
-
```tsx
|
|
238
|
-
import { makeAssistantDataUI } from "@assistant-ui/react-native";
|
|
239
|
-
|
|
240
|
-
const WeatherCard = makeAssistantDataUI({
|
|
241
|
-
name: "weather_card",
|
|
242
|
-
render: ({ data }) => <Text>{data.city}: {data.temperature}°F</Text>,
|
|
243
|
-
});
|
|
244
|
-
|
|
245
|
-
<WeatherCard />
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
## Shared Providers
|
|
249
|
-
|
|
250
|
-
These context providers are re-exported from `@assistant-ui/core/react` and are used internally by the primitives to scope the `aui` store to a particular item (message, part, thread list item, etc.). They are available for advanced custom rendering scenarios.
|
|
251
|
-
|
|
252
|
-
### MessageByIndexProvider
|
|
253
|
-
|
|
254
|
-
Scopes the `aui` context to a specific message by its index in the thread.
|
|
255
|
-
|
|
256
|
-
```tsx
|
|
257
|
-
import { MessageByIndexProvider } from "@assistant-ui/react-native";
|
|
258
|
-
|
|
259
|
-
<MessageByIndexProvider index={2}>
|
|
260
|
-
{/* children can read s.message, s.composer */}
|
|
261
|
-
</MessageByIndexProvider>
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
### PartByIndexProvider
|
|
265
|
-
|
|
266
|
-
Scopes the `aui` context to a specific message part by its index.
|
|
267
|
-
|
|
268
|
-
```tsx
|
|
269
|
-
import { PartByIndexProvider } from "@assistant-ui/react-native";
|
|
270
|
-
|
|
271
|
-
<PartByIndexProvider index={0}>
|
|
272
|
-
{/* children can read s.part */}
|
|
273
|
-
</PartByIndexProvider>
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
### TextMessagePartProvider
|
|
277
|
-
|
|
278
|
-
Provides a synthetic text part context from a plain string. Useful for rendering text outside the normal message-part pipeline.
|
|
279
|
-
|
|
280
|
-
```tsx
|
|
281
|
-
import { TextMessagePartProvider } from "@assistant-ui/react-native";
|
|
282
|
-
|
|
283
|
-
<TextMessagePartProvider text="Hello world" isRunning={false}>
|
|
284
|
-
{/* children can read s.part as a text part */}
|
|
285
|
-
</TextMessagePartProvider>
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
| Prop | Type | Description |
|
|
289
|
-
|------|------|-------------|
|
|
290
|
-
| `text` | `string` | The text content |
|
|
291
|
-
| `isRunning` | `boolean` | Whether the part is still streaming (default `false`) |
|
|
292
|
-
|
|
293
|
-
### ChainOfThoughtByIndicesProvider
|
|
294
|
-
|
|
295
|
-
Scopes the `aui` context to a slice of message parts that form a chain-of-thought block.
|
|
296
|
-
|
|
297
|
-
```tsx
|
|
298
|
-
import { ChainOfThoughtByIndicesProvider } from "@assistant-ui/react-native";
|
|
299
|
-
|
|
300
|
-
<ChainOfThoughtByIndicesProvider startIndex={1} endIndex={3}>
|
|
301
|
-
{/* children can read s.chainOfThought */}
|
|
302
|
-
</ChainOfThoughtByIndicesProvider>
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
### ChainOfThoughtPartByIndexProvider
|
|
306
|
-
|
|
307
|
-
Scopes the `aui` context to a specific part within a chain-of-thought block.
|
|
308
|
-
|
|
309
|
-
```tsx
|
|
310
|
-
import { ChainOfThoughtPartByIndexProvider } from "@assistant-ui/react-native";
|
|
311
|
-
|
|
312
|
-
<ChainOfThoughtPartByIndexProvider index={0}>
|
|
313
|
-
{/* children can read s.part */}
|
|
314
|
-
</ChainOfThoughtPartByIndexProvider>
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
### ThreadListItemByIndexProvider
|
|
318
|
-
|
|
319
|
-
Scopes the `aui` context to a specific thread list item by its index.
|
|
320
|
-
|
|
321
|
-
```tsx
|
|
322
|
-
import { ThreadListItemByIndexProvider } from "@assistant-ui/react-native";
|
|
323
|
-
|
|
324
|
-
<ThreadListItemByIndexProvider index={0} archived={false}>
|
|
325
|
-
{/* children can read s.threadListItem */}
|
|
326
|
-
</ThreadListItemByIndexProvider>
|
|
327
|
-
```
|
|
328
|
-
|
|
329
|
-
### SuggestionByIndexProvider
|
|
330
|
-
|
|
331
|
-
Scopes the `aui` context to a specific suggestion by its index.
|
|
332
|
-
|
|
333
|
-
```tsx
|
|
334
|
-
import { SuggestionByIndexProvider } from "@assistant-ui/react-native";
|
|
335
|
-
|
|
336
|
-
<SuggestionByIndexProvider index={0}>
|
|
337
|
-
{/* children can read s.suggestion */}
|
|
338
|
-
</SuggestionByIndexProvider>
|
|
339
|
-
```
|