@assistant-ui/mcp-docs-server 0.2.3 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -43
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -91
- package/dist/index.js.map +1 -1
- package/dist/proxy.d.ts +9 -0
- package/dist/proxy.d.ts.map +1 -0
- package/dist/proxy.js +91 -0
- package/dist/proxy.js.map +1 -0
- package/package.json +8 -12
- package/src/index.ts +3 -115
- package/src/proxy.test.ts +385 -0
- package/src/proxy.ts +126 -0
- package/.docs/organized/code-examples/waterfall.md +0 -807
- package/.docs/organized/code-examples/with-a2a.md +0 -675
- package/.docs/organized/code-examples/with-ag-ui.md +0 -553
- package/.docs/organized/code-examples/with-ai-sdk-v7.md +0 -466
- package/.docs/organized/code-examples/with-artifacts.md +0 -815
- package/.docs/organized/code-examples/with-assistant-transport.md +0 -576
- package/.docs/organized/code-examples/with-browser-extension.md +0 -371
- package/.docs/organized/code-examples/with-chain-of-thought.md +0 -962
- package/.docs/organized/code-examples/with-cloud-standalone.md +0 -681
- package/.docs/organized/code-examples/with-cloud.md +0 -439
- package/.docs/organized/code-examples/with-custom-thread-list.md +0 -569
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +0 -527
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +0 -697
- package/.docs/organized/code-examples/with-eve.md +0 -405
- package/.docs/organized/code-examples/with-expo.md +0 -2246
- package/.docs/organized/code-examples/with-external-store.md +0 -421
- package/.docs/organized/code-examples/with-ffmpeg.md +0 -829
- package/.docs/organized/code-examples/with-generative-ui.md +0 -1810
- package/.docs/organized/code-examples/with-google-adk.md +0 -368
- package/.docs/organized/code-examples/with-heat-graph.md +0 -304
- package/.docs/organized/code-examples/with-image-generation.md +0 -463
- package/.docs/organized/code-examples/with-interactables.md +0 -733
- package/.docs/organized/code-examples/with-langchain.md +0 -446
- package/.docs/organized/code-examples/with-langgraph.md +0 -855
- package/.docs/organized/code-examples/with-livekit.md +0 -643
- package/.docs/organized/code-examples/with-mcp.md +0 -782
- package/.docs/organized/code-examples/with-nuxt.md +0 -2428
- package/.docs/organized/code-examples/with-opencode.md +0 -1974
- package/.docs/organized/code-examples/with-openui.md +0 -450
- package/.docs/organized/code-examples/with-pi.md +0 -2084
- package/.docs/organized/code-examples/with-react-hook-form.md +0 -727
- package/.docs/organized/code-examples/with-react-ink-web.md +0 -740
- package/.docs/organized/code-examples/with-react-ink.md +0 -473
- package/.docs/organized/code-examples/with-react-router.md +0 -936
- package/.docs/organized/code-examples/with-resumable-stream.md +0 -668
- package/.docs/organized/code-examples/with-store.md +0 -679
- package/.docs/organized/code-examples/with-svelte.md +0 -415
- package/.docs/organized/code-examples/with-sveltekit.md +0 -1061
- package/.docs/organized/code-examples/with-tanstack.md +0 -812
- package/.docs/organized/code-examples/with-tap-runtime.md +0 -813
- package/.docs/organized/code-examples/with-virtualized-thread.md +0 -681
- package/.docs/organized/code-examples/with-vue.md +0 -408
- package/.docs/raw/docs/(getting-started)/architecture.mdx +0 -146
- package/.docs/raw/docs/(getting-started)/base-ui.mdx +0 -39
- package/.docs/raw/docs/(getting-started)/cli.mdx +0 -542
- package/.docs/raw/docs/(getting-started)/devtools.mdx +0 -79
- package/.docs/raw/docs/(getting-started)/index.mdx +0 -23
- package/.docs/raw/docs/(getting-started)/installation.mdx +0 -483
- package/.docs/raw/docs/(getting-started)/llm.mdx +0 -211
- package/.docs/raw/docs/(getting-started)/rtl.mdx +0 -78
- package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +0 -36
- package/.docs/raw/docs/(reference)/api-reference/adapters/feedback.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +0 -34
- package/.docs/raw/docs/(reference)/api-reference/adapters/model.mdx +0 -44
- package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +0 -59
- package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +0 -26
- package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +0 -84
- package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/context-providers/scoped-providers.mdx +0 -64
- package/.docs/raw/docs/(reference)/api-reference/external-store/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +0 -57
- package/.docs/raw/docs/(reference)/api-reference/external-store/runtime.mdx +0 -49
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/a2ui.mdx +0 -40
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/actions.mdx +0 -56
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/components.mdx +0 -86
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/index.mdx +0 -39
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/json-generative-ui.mdx +0 -42
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/rendering.mdx +0 -84
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/slack.mdx +0 -85
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/spec.mdx +0 -45
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/teams.mdx +0 -93
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/tokens.mdx +0 -62
- package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +0 -129
- package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +0 -31
- package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +0 -34
- package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +0 -350
- package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +0 -28
- package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +0 -97
- package/.docs/raw/docs/(reference)/api-reference/integrations/ai-sdk.mdx +0 -200
- package/.docs/raw/docs/(reference)/api-reference/integrations/cloud-ai-sdk.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +0 -118
- package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +0 -28
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +0 -37
- package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +0 -50
- package/.docs/raw/docs/(reference)/api-reference/model-context/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/model-context/registry.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/overview.mdx +0 -566
- package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar-more.mdx +0 -152
- package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +0 -239
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +0 -208
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-modal.mdx +0 -108
- package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +0 -99
- package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +0 -145
- package/.docs/raw/docs/(reference)/api-reference/primitives/chain-of-thought.mdx +0 -82
- package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +0 -637
- package/.docs/raw/docs/(reference)/api-reference/primitives/composition.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/primitives/error.mdx +0 -65
- package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +0 -73
- package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +0 -117
- package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +0 -339
- package/.docs/raw/docs/(reference)/api-reference/primitives/queue-item.mdx +0 -77
- package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +0 -88
- package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +0 -81
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item-more.mdx +0 -129
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item.mdx +0 -138
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +0 -122
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +0 -289
- package/.docs/raw/docs/(reference)/api-reference/runtimes/assistant-runtime.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/runtimes/attachment-runtime.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/runtimes/composer-runtime.mdx +0 -32
- package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +0 -43
- package/.docs/raw/docs/(reference)/api-reference/runtimes/message-part-runtime.mdx +0 -43
- package/.docs/raw/docs/(reference)/api-reference/runtimes/message-runtime.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/runtimes/queue-state.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-item-runtime.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-runtime.mdx +0 -36
- package/.docs/raw/docs/(reference)/api-reference/tools/component-tools.mdx +0 -85
- package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +0 -45
- package/.docs/raw/docs/(reference)/api-reference/tools/interactables-legacy.mdx +0 -55
- package/.docs/raw/docs/(reference)/api-reference/tools/interactables.mdx +0 -151
- package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +0 -106
- package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +0 -62
- package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +0 -178
- package/.docs/raw/docs/(reference)/api-reference/transport/assistant-transport.mdx +0 -48
- package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +0 -62
- package/.docs/raw/docs/(reference)/api-reference/transport/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/utilities/index.mdx +0 -19
- package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +0 -152
- package/.docs/raw/docs/(reference)/api-reference/voice/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +0 -54
- package/.docs/raw/docs/(reference)/api-reference/voice/speech-dictation.mdx +0 -36
- package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +0 -527
- package/.docs/raw/docs/cloud/ai-sdk.mdx +0 -604
- package/.docs/raw/docs/cloud/authorization.mdx +0 -252
- package/.docs/raw/docs/cloud/index.mdx +0 -46
- package/.docs/raw/docs/cloud/langgraph.mdx +0 -554
- package/.docs/raw/docs/copilots/assistant-frame.mdx +0 -411
- package/.docs/raw/docs/copilots/make-assistant-visible.mdx +0 -82
- package/.docs/raw/docs/copilots/model-context.mdx +0 -156
- package/.docs/raw/docs/copilots/motivation.mdx +0 -202
- package/.docs/raw/docs/copilots/use-assistant-instructions.mdx +0 -64
- package/.docs/raw/docs/guides/attachments.mdx +0 -619
- package/.docs/raw/docs/guides/branching.mdx +0 -76
- package/.docs/raw/docs/guides/chain-of-thought.mdx +0 -164
- package/.docs/raw/docs/guides/chatgpt-subscription.mdx +0 -108
- package/.docs/raw/docs/guides/context-api.mdx +0 -619
- package/.docs/raw/docs/guides/dictation.mdx +0 -298
- package/.docs/raw/docs/guides/editing.mdx +0 -102
- package/.docs/raw/docs/guides/electron.mdx +0 -369
- package/.docs/raw/docs/guides/headless-composer-input.mdx +0 -113
- package/.docs/raw/docs/guides/image-generation.mdx +0 -74
- package/.docs/raw/docs/guides/index.mdx +0 -117
- package/.docs/raw/docs/guides/input-history.mdx +0 -55
- package/.docs/raw/docs/guides/latex.mdx +0 -158
- package/.docs/raw/docs/guides/mentions.mdx +0 -575
- package/.docs/raw/docs/guides/message-timing.mdx +0 -215
- package/.docs/raw/docs/guides/quoting.mdx +0 -169
- package/.docs/raw/docs/guides/resumable-stream-deployment.mdx +0 -212
- package/.docs/raw/docs/guides/resumable-stream-stores.mdx +0 -152
- package/.docs/raw/docs/guides/resumable-streams.mdx +0 -292
- package/.docs/raw/docs/guides/slash-commands.mdx +0 -358
- package/.docs/raw/docs/guides/speech.mdx +0 -172
- package/.docs/raw/docs/guides/suggestions.mdx +0 -384
- package/.docs/raw/docs/guides/virtualization.mdx +0 -133
- package/.docs/raw/docs/guides/voice.mdx +0 -310
- package/.docs/raw/docs/ink/adapters.mdx +0 -99
- package/.docs/raw/docs/ink/custom-backend.mdx +0 -254
- package/.docs/raw/docs/ink/hooks.mdx +0 -469
- package/.docs/raw/docs/ink/index.mdx +0 -237
- package/.docs/raw/docs/ink/migration.mdx +0 -138
- package/.docs/raw/docs/ink/primitives.mdx +0 -1259
- package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +0 -528
- package/.docs/raw/docs/integrations/auth/better-auth.mdx +0 -188
- package/.docs/raw/docs/integrations/auth/clerk.mdx +0 -166
- package/.docs/raw/docs/integrations/auth/next-auth.mdx +0 -191
- package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +0 -88
- package/.docs/raw/docs/integrations/frameworks/cloudflare-agents.mdx +0 -283
- package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +0 -188
- package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +0 -57
- package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +0 -201
- package/.docs/raw/docs/integrations/gateways/index.mdx +0 -162
- package/.docs/raw/docs/integrations/index.mdx +0 -178
- package/.docs/raw/docs/integrations/observability/helicone.mdx +0 -129
- package/.docs/raw/docs/integrations/observability/langfuse.mdx +0 -161
- package/.docs/raw/docs/integrations/observability/langsmith.mdx +0 -151
- package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +0 -773
- package/.docs/raw/docs/migrations/deprecation-policy.mdx +0 -42
- package/.docs/raw/docs/migrations/index.mdx +0 -50
- package/.docs/raw/docs/migrations/react-compatibility.mdx +0 -74
- package/.docs/raw/docs/migrations/react-langgraph-v0-7.mdx +0 -328
- package/.docs/raw/docs/migrations/toolkit-tools.mdx +0 -236
- package/.docs/raw/docs/migrations/v0-11.mdx +0 -172
- package/.docs/raw/docs/migrations/v0-12.mdx +0 -302
- package/.docs/raw/docs/migrations/v0-14.mdx +0 -297
- package/.docs/raw/docs/migrations/v0-15.mdx +0 -270
- package/.docs/raw/docs/primitives/action-bar.mdx +0 -352
- package/.docs/raw/docs/primitives/assistant-modal.mdx +0 -216
- package/.docs/raw/docs/primitives/attachment.mdx +0 -217
- package/.docs/raw/docs/primitives/branch-picker.mdx +0 -222
- package/.docs/raw/docs/primitives/chain-of-thought.mdx +0 -315
- package/.docs/raw/docs/primitives/composer.mdx +0 -659
- package/.docs/raw/docs/primitives/error.mdx +0 -142
- package/.docs/raw/docs/primitives/index.mdx +0 -99
- package/.docs/raw/docs/primitives/message.mdx +0 -618
- package/.docs/raw/docs/primitives/selection-toolbar.mdx +0 -191
- package/.docs/raw/docs/primitives/suggestion.mdx +0 -254
- package/.docs/raw/docs/primitives/thread-list.mdx +0 -467
- package/.docs/raw/docs/primitives/thread.mdx +0 -509
- package/.docs/raw/docs/react-native/adapters.mdx +0 -94
- package/.docs/raw/docs/react-native/custom-backend.mdx +0 -207
- package/.docs/raw/docs/react-native/hooks.mdx +0 -339
- package/.docs/raw/docs/react-native/index.mdx +0 -289
- package/.docs/raw/docs/react-native/migration.mdx +0 -142
- package/.docs/raw/docs/react-native/primitives.mdx +0 -976
- package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +0 -399
- package/.docs/raw/docs/runtimes/a2a/overview.mdx +0 -60
- package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +0 -216
- package/.docs/raw/docs/runtimes/ag-ui/agent-state.mdx +0 -124
- package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +0 -70
- package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +0 -243
- package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +0 -267
- package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +0 -61
- package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +0 -122
- package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +0 -135
- package/.docs/raw/docs/runtimes/ai-sdk/v6-legacy.mdx +0 -636
- package/.docs/raw/docs/runtimes/ai-sdk/v7.mdx +0 -731
- package/.docs/raw/docs/runtimes/claude-managed-agents.mdx +0 -118
- package/.docs/raw/docs/runtimes/concepts/adapters.mdx +0 -265
- package/.docs/raw/docs/runtimes/concepts/architecture.mdx +0 -167
- package/.docs/raw/docs/runtimes/concepts/stability.mdx +0 -68
- package/.docs/raw/docs/runtimes/concepts/threads.mdx +0 -513
- package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +0 -763
- package/.docs/raw/docs/runtimes/custom/data-stream.mdx +0 -339
- package/.docs/raw/docs/runtimes/custom/external-store.mdx +0 -957
- package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +0 -902
- package/.docs/raw/docs/runtimes/custom/overview.mdx +0 -71
- package/.docs/raw/docs/runtimes/eve/overview.mdx +0 -151
- package/.docs/raw/docs/runtimes/eve/quickstart.mdx +0 -192
- package/.docs/raw/docs/runtimes/google-adk/api.mdx +0 -256
- package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +0 -784
- package/.docs/raw/docs/runtimes/google-adk/overview.mdx +0 -69
- package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +0 -229
- package/.docs/raw/docs/runtimes/langchain.mdx +0 -901
- package/.docs/raw/docs/runtimes/langgraph/agent-state.mdx +0 -181
- package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +0 -305
- package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +0 -104
- package/.docs/raw/docs/runtimes/langgraph/overview.mdx +0 -84
- package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +0 -496
- package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +0 -144
- package/.docs/raw/docs/runtimes/langgraph/threads.mdx +0 -113
- package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +0 -29
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -93
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +0 -347
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-3.mdx +0 -393
- package/.docs/raw/docs/runtimes/opencode/hooks.mdx +0 -194
- package/.docs/raw/docs/runtimes/opencode/overview.mdx +0 -58
- package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +0 -119
- package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +0 -133
- package/.docs/raw/docs/tools/a2ui.mdx +0 -107
- package/.docs/raw/docs/tools/backend.mdx +0 -147
- package/.docs/raw/docs/tools/defining-tools.mdx +0 -574
- package/.docs/raw/docs/tools/dynamic-tools.mdx +0 -112
- package/.docs/raw/docs/tools/generative-ui-primitive.mdx +0 -180
- package/.docs/raw/docs/tools/generative-ui-slack.mdx +0 -167
- package/.docs/raw/docs/tools/generative-ui-teams.mdx +0 -160
- package/.docs/raw/docs/tools/generative-ui.mdx +0 -322
- package/.docs/raw/docs/tools/index.mdx +0 -72
- package/.docs/raw/docs/tools/interactables.mdx +0 -1084
- package/.docs/raw/docs/tools/mcp-apps.mdx +0 -363
- package/.docs/raw/docs/tools/mcp.mdx +0 -466
- package/.docs/raw/docs/tools/multi-agent.mdx +0 -237
- package/.docs/raw/docs/tools/openui.mdx +0 -175
- package/.docs/raw/docs/tools/tool-ui.mdx +0 -1020
- package/.docs/raw/docs/tools/user-managed-mcp.mdx +0 -428
- package/.docs/raw/docs/ui/assistant-modal.mdx +0 -166
- package/.docs/raw/docs/ui/assistant-sidebar.mdx +0 -89
- package/.docs/raw/docs/ui/attachment.mdx +0 -279
- package/.docs/raw/docs/ui/composer-trigger-popover.mdx +0 -247
- package/.docs/raw/docs/ui/context-display.mdx +0 -148
- package/.docs/raw/docs/ui/directive-text.mdx +0 -114
- package/.docs/raw/docs/ui/file.mdx +0 -159
- package/.docs/raw/docs/ui/follow-up-suggestions.mdx +0 -82
- package/.docs/raw/docs/ui/image.mdx +0 -102
- package/.docs/raw/docs/ui/markdown.mdx +0 -103
- package/.docs/raw/docs/ui/mcp-config.mdx +0 -107
- package/.docs/raw/docs/ui/mermaid.mdx +0 -92
- package/.docs/raw/docs/ui/message-timing.mdx +0 -93
- package/.docs/raw/docs/ui/model-selector.mdx +0 -455
- package/.docs/raw/docs/ui/part-grouping.mdx +0 -614
- package/.docs/raw/docs/ui/quote.mdx +0 -211
- package/.docs/raw/docs/ui/reasoning.mdx +0 -214
- package/.docs/raw/docs/ui/scrollbar.mdx +0 -77
- package/.docs/raw/docs/ui/sources.mdx +0 -186
- package/.docs/raw/docs/ui/streamdown.mdx +0 -392
- package/.docs/raw/docs/ui/syntax-highlighting.mdx +0 -205
- package/.docs/raw/docs/ui/thread-list.mdx +0 -411
- package/.docs/raw/docs/ui/thread.mdx +0 -559
- package/.docs/raw/docs/ui/tool-fallback.mdx +0 -141
- package/.docs/raw/docs/ui/tool-group.mdx +0 -240
- package/.docs/raw/docs/ui/voice.mdx +0 -173
- package/.docs/raw/docs/utilities/heat-graph.mdx +0 -237
- package/.docs/raw/docs/utilities/react-o11y.mdx +0 -362
- package/.docs/raw/docs/utilities/tw-shimmer.mdx +0 -212
- package/dist/constants.d.ts +0 -14
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -19
- package/dist/constants.js.map +0 -1
- package/dist/prepare-docs/code-examples.d.ts +0 -5
- package/dist/prepare-docs/code-examples.d.ts.map +0 -1
- package/dist/prepare-docs/code-examples.js +0 -117
- package/dist/prepare-docs/code-examples.js.map +0 -1
- package/dist/prepare-docs/copy-raw.d.ts +0 -5
- package/dist/prepare-docs/copy-raw.d.ts.map +0 -1
- package/dist/prepare-docs/copy-raw.js +0 -49
- package/dist/prepare-docs/copy-raw.js.map +0 -1
- package/dist/prepare-docs/prepare.d.ts +0 -1
- package/dist/prepare-docs/prepare.js +0 -22
- package/dist/prepare-docs/prepare.js.map +0 -1
- package/dist/prompts/xulux-playground.d.ts +0 -12
- package/dist/prompts/xulux-playground.d.ts.map +0 -1
- package/dist/prompts/xulux-playground.js +0 -33
- package/dist/prompts/xulux-playground.js.map +0 -1
- package/dist/tools/docs.d.ts +0 -22
- package/dist/tools/docs.d.ts.map +0 -1
- package/dist/tools/docs.js +0 -177
- package/dist/tools/docs.js.map +0 -1
- package/dist/tools/examples.d.ts +0 -24
- package/dist/tools/examples.d.ts.map +0 -1
- package/dist/tools/examples.js +0 -87
- package/dist/tools/examples.js.map +0 -1
- package/dist/tools/resources.d.ts +0 -6
- package/dist/tools/resources.d.ts.map +0 -1
- package/dist/tools/resources.js +0 -75
- package/dist/tools/resources.js.map +0 -1
- package/dist/tools/search.d.ts +0 -24
- package/dist/tools/search.d.ts.map +0 -1
- package/dist/tools/search.js +0 -39
- package/dist/tools/search.js.map +0 -1
- package/dist/tools/tests/mcp-test-client.d.ts +0 -15
- package/dist/tools/tests/mcp-test-client.d.ts.map +0 -1
- package/dist/tools/tests/mcp-test-client.js +0 -68
- package/dist/tools/tests/mcp-test-client.js.map +0 -1
- package/dist/tools/tests/test-setup.d.ts +0 -7
- package/dist/tools/tests/test-setup.d.ts.map +0 -1
- package/dist/tools/tests/test-setup.js +0 -36
- package/dist/tools/tests/test-setup.js.map +0 -1
- package/dist/tools/xulux-templates.d.ts +0 -58
- package/dist/tools/xulux-templates.d.ts.map +0 -1
- package/dist/tools/xulux-templates.js +0 -84
- package/dist/tools/xulux-templates.js.map +0 -1
- package/dist/utils/cache.d.ts +0 -5
- package/dist/utils/cache.d.ts.map +0 -1
- package/dist/utils/cache.js +0 -18
- package/dist/utils/cache.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -10
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -20
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/mcp-format.d.ts +0 -11
- package/dist/utils/mcp-format.d.ts.map +0 -1
- package/dist/utils/mcp-format.js +0 -14
- package/dist/utils/mcp-format.js.map +0 -1
- package/dist/utils/mdx.d.ts +0 -12
- package/dist/utils/mdx.d.ts.map +0 -1
- package/dist/utils/mdx.js +0 -45
- package/dist/utils/mdx.js.map +0 -1
- package/dist/utils/paths.d.ts +0 -12
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js +0 -93
- package/dist/utils/paths.js.map +0 -1
- package/dist/utils/search.d.ts +0 -10
- package/dist/utils/search.d.ts.map +0 -1
- package/dist/utils/search.js +0 -97
- package/dist/utils/search.js.map +0 -1
- package/dist/utils/security.d.ts +0 -5
- package/dist/utils/security.d.ts.map +0 -1
- package/dist/utils/security.js +0 -22
- package/dist/utils/security.js.map +0 -1
- package/dist/xulux/catalog-client.d.ts +0 -14
- package/dist/xulux/catalog-client.d.ts.map +0 -1
- package/dist/xulux/catalog-client.js +0 -112
- package/dist/xulux/catalog-client.js.map +0 -1
- package/dist/xulux/fallback-catalog.d.ts +0 -7
- package/dist/xulux/fallback-catalog.d.ts.map +0 -1
- package/dist/xulux/fallback-catalog.js +0 -47
- package/dist/xulux/fallback-catalog.js.map +0 -1
- package/dist/xulux/fetch-sandbox.d.ts +0 -5
- package/dist/xulux/fetch-sandbox.d.ts.map +0 -1
- package/dist/xulux/fetch-sandbox.js +0 -40
- package/dist/xulux/fetch-sandbox.js.map +0 -1
- package/dist/xulux/template-service.d.ts +0 -84
- package/dist/xulux/template-service.d.ts.map +0 -1
- package/dist/xulux/template-service.js +0 -223
- package/dist/xulux/template-service.js.map +0 -1
- package/dist/xulux/types.d.ts +0 -55
- package/dist/xulux/types.d.ts.map +0 -1
- package/dist/xulux/types.js +0 -6
- package/dist/xulux/types.js.map +0 -1
- package/src/constants.ts +0 -24
- package/src/prepare-docs/code-examples.ts +0 -158
- package/src/prepare-docs/copy-raw.ts +0 -50
- package/src/prepare-docs/prepare.ts +0 -24
- package/src/prompts/xulux-playground.ts +0 -36
- package/src/tools/docs.ts +0 -255
- package/src/tools/examples.ts +0 -114
- package/src/tools/resources.ts +0 -111
- package/src/tools/search.ts +0 -46
- package/src/tools/tests/completions.test.ts +0 -60
- package/src/tools/tests/directory-size-cap.test.ts +0 -50
- package/src/tools/tests/docs.test.ts +0 -147
- package/src/tools/tests/examples.test.ts +0 -94
- package/src/tools/tests/integration.test.ts +0 -45
- package/src/tools/tests/json-parsing.test.ts +0 -23
- package/src/tools/tests/listings-cache.test.ts +0 -19
- package/src/tools/tests/mcp-protocol.test.ts +0 -216
- package/src/tools/tests/mcp-test-client.ts +0 -111
- package/src/tools/tests/path-traversal.test.ts +0 -84
- package/src/tools/tests/resources.test.ts +0 -133
- package/src/tools/tests/search.test.ts +0 -37
- package/src/tools/tests/test-setup.ts +0 -50
- package/src/tools/tests/xulux-templates.test.ts +0 -325
- package/src/tools/xulux-templates.ts +0 -141
- package/src/utils/cache.ts +0 -20
- package/src/utils/logger.ts +0 -20
- package/src/utils/mcp-format.ts +0 -14
- package/src/utils/mdx.ts +0 -59
- package/src/utils/paths.ts +0 -139
- package/src/utils/search.ts +0 -131
- package/src/utils/security.ts +0 -52
- package/src/utils/tests/cache.test.ts +0 -51
- package/src/utils/tests/mcp-format.test.ts +0 -22
- package/src/utils/tests/security.test.ts +0 -119
- package/src/xulux/catalog-client.ts +0 -150
- package/src/xulux/fallback-catalog.ts +0 -63
- package/src/xulux/fetch-sandbox.ts +0 -56
- package/src/xulux/template-service.ts +0 -406
- package/src/xulux/types.ts +0 -64
|
@@ -1,411 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Assistant Frame API
|
|
3
|
-
description: Share model context across iframe boundaries
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
The Assistant Frame API enables iframes to provide model context (tools and instructions) to a parent window's assistant. This is particularly useful for embedded applications, plugins, or sandboxed components that need to contribute capabilities to the main assistant.
|
|
8
|
-
|
|
9
|
-
## Overview
|
|
10
|
-
|
|
11
|
-
The Assistant Frame system consists of two main components:
|
|
12
|
-
|
|
13
|
-
- **AssistantFrameProvider**: Runs inside the iframe and provides model context
|
|
14
|
-
- **AssistantFrameHost**: Runs in the parent window and consumes context from iframes
|
|
15
|
-
|
|
16
|
-
## Basic Usage
|
|
17
|
-
|
|
18
|
-
### In the iframe (Provider)
|
|
19
|
-
|
|
20
|
-
The iframe acts as a provider of model context using `AssistantFrameProvider`:
|
|
21
|
-
|
|
22
|
-
```tsx
|
|
23
|
-
// iframe.tsx
|
|
24
|
-
import { AssistantFrameProvider } from "@assistant-ui/react";
|
|
25
|
-
import { ModelContextRegistry } from "@assistant-ui/react";
|
|
26
|
-
import { z } from "zod";
|
|
27
|
-
|
|
28
|
-
// Create a registry to manage your model context
|
|
29
|
-
const registry = new ModelContextRegistry();
|
|
30
|
-
|
|
31
|
-
// Expose the registry to the parent window
|
|
32
|
-
AssistantFrameProvider.addModelContextProvider(
|
|
33
|
-
registry,
|
|
34
|
-
"https://parent-app.com",
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
// Add tools that will be available to the parent assistant
|
|
38
|
-
registry.addTool({
|
|
39
|
-
toolName: "searchProducts",
|
|
40
|
-
description: "Search for products in the catalog",
|
|
41
|
-
parameters: z.object({
|
|
42
|
-
query: z.string(),
|
|
43
|
-
category: z.string().optional(),
|
|
44
|
-
}),
|
|
45
|
-
execute: async ({ query, category }) => {
|
|
46
|
-
// Tool implementation runs in the iframe
|
|
47
|
-
const results = await searchAPI(query, category);
|
|
48
|
-
return { products: results };
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
// Add system instructions
|
|
53
|
-
const instructionHandle = registry.addInstruction(
|
|
54
|
-
"You are a helpful assistant.",
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
// update the instruction
|
|
58
|
-
instructionHandle.update("You have access to a product catalog search tool.");
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### In the parent window (Host)
|
|
62
|
-
|
|
63
|
-
The parent window consumes the iframe's context using `AssistantFrameHost`:
|
|
64
|
-
|
|
65
|
-
```tsx
|
|
66
|
-
// parent.tsx
|
|
67
|
-
import { useAssistantFrameHost } from "@assistant-ui/react";
|
|
68
|
-
import { useRef } from "react";
|
|
69
|
-
|
|
70
|
-
function ParentComponent() {
|
|
71
|
-
const iframeRef = useRef<HTMLIFrameElement>(null);
|
|
72
|
-
|
|
73
|
-
// Connect to the iframe's model context
|
|
74
|
-
useAssistantFrameHost({
|
|
75
|
-
iframeRef,
|
|
76
|
-
targetOrigin: "https://trusted-iframe-domain.com",
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
return (
|
|
80
|
-
<div>
|
|
81
|
-
<Thread /> {/* Your assistant-ui */}
|
|
82
|
-
<iframe
|
|
83
|
-
ref={iframeRef}
|
|
84
|
-
src="https://trusted-iframe-domain.com/embed"
|
|
85
|
-
title="Embedded App"
|
|
86
|
-
/>
|
|
87
|
-
</div>
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Advanced Usage
|
|
93
|
-
|
|
94
|
-
### ModelContextRegistry
|
|
95
|
-
|
|
96
|
-
The `ModelContextRegistry` provides a flexible way to manage model context dynamically:
|
|
97
|
-
|
|
98
|
-
```tsx
|
|
99
|
-
const registry = new ModelContextRegistry();
|
|
100
|
-
|
|
101
|
-
// Add a tool with handle for updates
|
|
102
|
-
const toolHandle = registry.addTool({
|
|
103
|
-
toolName: "convertCurrency",
|
|
104
|
-
description: "Convert between currencies",
|
|
105
|
-
parameters: z.object({
|
|
106
|
-
amount: z.number(),
|
|
107
|
-
from: z.string(),
|
|
108
|
-
to: z.string(),
|
|
109
|
-
}),
|
|
110
|
-
execute: async ({ amount, from, to }) => {
|
|
111
|
-
const rate = await fetchExchangeRate(from, to);
|
|
112
|
-
return { result: amount * rate, currency: to };
|
|
113
|
-
},
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
// Update the tool later
|
|
117
|
-
toolHandle.update({
|
|
118
|
-
toolName: "convertCurrency",
|
|
119
|
-
description: "Convert between currencies with live rates", // Updated description
|
|
120
|
-
parameters: z.object({
|
|
121
|
-
amount: z.number(),
|
|
122
|
-
from: z.string(),
|
|
123
|
-
to: z.string(),
|
|
124
|
-
includesFees: z.boolean().optional(),
|
|
125
|
-
}),
|
|
126
|
-
execute: async ({ amount, from, to, includesFees }) => {
|
|
127
|
-
const rate = await fetchExchangeRate(from, to);
|
|
128
|
-
const fee = includesFees ? 0.02 : 0; // 2% fee
|
|
129
|
-
return {
|
|
130
|
-
result: amount * rate * (1 - fee),
|
|
131
|
-
currency: to,
|
|
132
|
-
fee: includesFees ? amount * rate * fee : 0,
|
|
133
|
-
};
|
|
134
|
-
},
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
// Remove the tool when no longer needed
|
|
138
|
-
toolHandle.remove();
|
|
139
|
-
|
|
140
|
-
// Add multiple instructions
|
|
141
|
-
const instruction1 = registry.addInstruction("Be helpful and concise.");
|
|
142
|
-
const instruction2 = registry.addInstruction("Use metric units.");
|
|
143
|
-
|
|
144
|
-
// Remove instructions
|
|
145
|
-
instruction1.remove();
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
### Multiple Providers
|
|
149
|
-
|
|
150
|
-
You can register multiple model context providers in the same iframe:
|
|
151
|
-
|
|
152
|
-
```tsx
|
|
153
|
-
const catalogRegistry = new ModelContextRegistry();
|
|
154
|
-
const analyticsRegistry = new ModelContextRegistry();
|
|
155
|
-
|
|
156
|
-
// Add different tools to each registry
|
|
157
|
-
catalogRegistry.addTool({
|
|
158
|
-
/* ... */
|
|
159
|
-
});
|
|
160
|
-
analyticsRegistry.addTool({
|
|
161
|
-
/* ... */
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
// Register both providers
|
|
165
|
-
const unsubscribe1 =
|
|
166
|
-
AssistantFrameProvider.addModelContextProvider(
|
|
167
|
-
catalogRegistry,
|
|
168
|
-
"https://parent-app.com",
|
|
169
|
-
);
|
|
170
|
-
const unsubscribe2 =
|
|
171
|
-
AssistantFrameProvider.addModelContextProvider(
|
|
172
|
-
analyticsRegistry,
|
|
173
|
-
"https://parent-app.com",
|
|
174
|
-
);
|
|
175
|
-
|
|
176
|
-
// Later, unsubscribe if needed
|
|
177
|
-
unsubscribe1();
|
|
178
|
-
unsubscribe2();
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
### Security Considerations
|
|
182
|
-
|
|
183
|
-
#### Origin Validation
|
|
184
|
-
|
|
185
|
-
Both the provider and host validate message origins. They default to the current page's origin, so cross-origin frames must specify the exact trusted origin on both sides:
|
|
186
|
-
|
|
187
|
-
```tsx
|
|
188
|
-
// In iframe - only accept messages from specific parent
|
|
189
|
-
AssistantFrameProvider.addModelContextProvider(
|
|
190
|
-
registry,
|
|
191
|
-
"https://parent-app.com",
|
|
192
|
-
);
|
|
193
|
-
|
|
194
|
-
// In parent - only accept messages from specific iframe
|
|
195
|
-
useAssistantFrameHost({
|
|
196
|
-
iframeRef,
|
|
197
|
-
targetOrigin: "https://iframe-app.com",
|
|
198
|
-
});
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
#### Tool Execution
|
|
202
|
-
|
|
203
|
-
Tools are executed in the iframe's context, keeping sensitive operations sandboxed:
|
|
204
|
-
|
|
205
|
-
```tsx
|
|
206
|
-
registry.addTool({
|
|
207
|
-
toolName: "accessDatabase",
|
|
208
|
-
description: "Query the database",
|
|
209
|
-
parameters: z.object({ query: z.string() }),
|
|
210
|
-
execute: async ({ query }) => {
|
|
211
|
-
// This runs in the iframe with iframe's permissions
|
|
212
|
-
// Parent cannot directly access the database
|
|
213
|
-
const results = await db.query(query);
|
|
214
|
-
return results;
|
|
215
|
-
},
|
|
216
|
-
});
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
## API Reference
|
|
220
|
-
|
|
221
|
-
### AssistantFrameProvider
|
|
222
|
-
|
|
223
|
-
Static class that manages model context providers in an iframe.
|
|
224
|
-
|
|
225
|
-
#### Methods
|
|
226
|
-
|
|
227
|
-
##### `addModelContextProvider(provider, targetOrigin?)`
|
|
228
|
-
|
|
229
|
-
Registers a model context provider to share with parent windows.
|
|
230
|
-
|
|
231
|
-
```tsx
|
|
232
|
-
const unsubscribe = AssistantFrameProvider.addModelContextProvider(
|
|
233
|
-
registry,
|
|
234
|
-
"https://parent-domain.com",
|
|
235
|
-
);
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
When `targetOrigin` is omitted, the provider only communicates with `window.location.origin`. All providers in a frame share one origin policy. Registering an explicit origin tightens an existing wildcard policy, while registering two different explicit origins throws an error. Unsubscribing drops that registration's requirement. The wildcard value `*` is available as an explicit opt-in, but it should not be used for contexts that expose tools or sensitive instructions.
|
|
239
|
-
|
|
240
|
-
##### `dispose()`
|
|
241
|
-
|
|
242
|
-
Cleans up all resources and removes all providers.
|
|
243
|
-
|
|
244
|
-
```tsx
|
|
245
|
-
AssistantFrameProvider.dispose();
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
### AssistantFrameHost
|
|
249
|
-
|
|
250
|
-
Class that connects to an iframe's model context providers.
|
|
251
|
-
|
|
252
|
-
#### Constructor
|
|
253
|
-
|
|
254
|
-
```tsx
|
|
255
|
-
const host = new AssistantFrameHost(
|
|
256
|
-
iframeWindow,
|
|
257
|
-
targetOrigin?, // Defaults to window.location.origin
|
|
258
|
-
);
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
#### Methods
|
|
262
|
-
|
|
263
|
-
##### `getModelContext()`
|
|
264
|
-
|
|
265
|
-
Returns the current merged model context from the iframe.
|
|
266
|
-
|
|
267
|
-
```tsx
|
|
268
|
-
const context = host.getModelContext();
|
|
269
|
-
// { system: "...", tools: { ... } }
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
##### `subscribe(callback)`
|
|
273
|
-
|
|
274
|
-
Subscribes to model context changes.
|
|
275
|
-
|
|
276
|
-
```tsx
|
|
277
|
-
const unsubscribe = host.subscribe(() => {
|
|
278
|
-
console.log("Context updated:", host.getModelContext());
|
|
279
|
-
});
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
##### `dispose()`
|
|
283
|
-
|
|
284
|
-
Cleans up the connection to the iframe.
|
|
285
|
-
|
|
286
|
-
```tsx
|
|
287
|
-
host.dispose();
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
### useAssistantFrameHost
|
|
291
|
-
|
|
292
|
-
React hook that manages the lifecycle of an AssistantFrameHost.
|
|
293
|
-
|
|
294
|
-
```tsx
|
|
295
|
-
useAssistantFrameHost({
|
|
296
|
-
iframeRef: RefObject<HTMLIFrameElement>,
|
|
297
|
-
targetOrigin?: string, // Defaults to window.location.origin
|
|
298
|
-
});
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
### ModelContextRegistry
|
|
302
|
-
|
|
303
|
-
A flexible registry for managing model context with dynamic updates.
|
|
304
|
-
|
|
305
|
-
#### Methods
|
|
306
|
-
|
|
307
|
-
##### `addTool(tool)`
|
|
308
|
-
|
|
309
|
-
Adds a tool and returns a handle for updates/removal.
|
|
310
|
-
|
|
311
|
-
```tsx
|
|
312
|
-
const handle = registry.addTool({
|
|
313
|
-
toolName: string,
|
|
314
|
-
description?: string,
|
|
315
|
-
parameters: ZodSchema | JSONSchema,
|
|
316
|
-
execute: (args, context) => Promise<any>,
|
|
317
|
-
});
|
|
318
|
-
|
|
319
|
-
handle.update(newTool); // Update the tool
|
|
320
|
-
handle.remove(); // Remove the tool
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
##### `addInstruction(instruction)`
|
|
324
|
-
|
|
325
|
-
Adds a system instruction and returns a handle.
|
|
326
|
-
|
|
327
|
-
```tsx
|
|
328
|
-
const handle = registry.addInstruction("Be concise.");
|
|
329
|
-
handle.update("Be detailed."); // Update instruction
|
|
330
|
-
handle.remove(); // Remove instruction
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
##### `addProvider(provider)`
|
|
334
|
-
|
|
335
|
-
Adds another model context provider.
|
|
336
|
-
|
|
337
|
-
```tsx
|
|
338
|
-
const handle = registry.addProvider(anotherProvider);
|
|
339
|
-
handle.remove(); // Remove provider
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
## Use Cases
|
|
343
|
-
|
|
344
|
-
### Embedded Analytics Dashboard
|
|
345
|
-
|
|
346
|
-
An analytics iframe can provide data query tools to the parent assistant:
|
|
347
|
-
|
|
348
|
-
```tsx
|
|
349
|
-
// In analytics iframe
|
|
350
|
-
registry.addTool({
|
|
351
|
-
toolName: "queryMetrics",
|
|
352
|
-
description: "Query analytics data",
|
|
353
|
-
parameters: z.object({
|
|
354
|
-
metric: z.string(),
|
|
355
|
-
timeRange: z.string(),
|
|
356
|
-
}),
|
|
357
|
-
execute: async ({ metric, timeRange }) => {
|
|
358
|
-
const data = await analyticsAPI.query(metric, timeRange);
|
|
359
|
-
return { data, visualization: createChart(data) };
|
|
360
|
-
},
|
|
361
|
-
});
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
### Plugin System
|
|
365
|
-
|
|
366
|
-
Third-party plugins can extend the assistant's capabilities:
|
|
367
|
-
|
|
368
|
-
```tsx
|
|
369
|
-
// In plugin iframe
|
|
370
|
-
registry.addTool({
|
|
371
|
-
toolName: "translateText",
|
|
372
|
-
description: "Translate text to another language",
|
|
373
|
-
parameters: z.object({
|
|
374
|
-
text: z.string(),
|
|
375
|
-
targetLanguage: z.string(),
|
|
376
|
-
}),
|
|
377
|
-
execute: async ({ text, targetLanguage }) => {
|
|
378
|
-
return await pluginAPI.translate(text, targetLanguage);
|
|
379
|
-
},
|
|
380
|
-
});
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
### Data Visualization
|
|
384
|
-
|
|
385
|
-
Provide data visualization tools in an iframe:
|
|
386
|
-
|
|
387
|
-
```tsx
|
|
388
|
-
// In visualization iframe
|
|
389
|
-
registry.addTool({
|
|
390
|
-
toolName: "createChart",
|
|
391
|
-
description: "Generate a chart from data",
|
|
392
|
-
parameters: z.object({
|
|
393
|
-
data: z.array(
|
|
394
|
-
z.object({
|
|
395
|
-
label: z.string(),
|
|
396
|
-
value: z.number(),
|
|
397
|
-
}),
|
|
398
|
-
),
|
|
399
|
-
chartType: z.enum(["bar", "line", "pie"]),
|
|
400
|
-
title: z.string().optional(),
|
|
401
|
-
}),
|
|
402
|
-
execute: async ({ data, chartType, title }) => {
|
|
403
|
-
// Generate chart using a library like Chart.js or D3
|
|
404
|
-
const chartUrl = await generateChart(data, chartType, title);
|
|
405
|
-
return {
|
|
406
|
-
chartUrl,
|
|
407
|
-
summary: `Created ${chartType} chart with ${data.length} data points`,
|
|
408
|
-
};
|
|
409
|
-
},
|
|
410
|
-
});
|
|
411
|
-
```
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: makeAssistantVisible
|
|
3
|
-
description: Make React components visible and interactive to assistants via higher-order component wrapping.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
`makeAssistantVisible` is a higher-order component (HOC) that makes React components "visible" by the assistant, allowing it to understand and interact with the component's HTML structure.
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
|
|
11
|
-
```tsx
|
|
12
|
-
import { makeAssistantVisible } from "@assistant-ui/react";
|
|
13
|
-
|
|
14
|
-
const Button = ({ onClick, children }) => (
|
|
15
|
-
<button onClick={onClick}>{children}</button>
|
|
16
|
-
);
|
|
17
|
-
|
|
18
|
-
// Basic usage - makes component HTML readable
|
|
19
|
-
const ReadableButton = makeAssistantVisible(Button);
|
|
20
|
-
|
|
21
|
-
// With clickable configuration
|
|
22
|
-
const ClickableButton = makeAssistantVisible(Button, {
|
|
23
|
-
clickable: true, // Enables the click tool
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
// With editable configuration
|
|
27
|
-
const EditableInput = makeAssistantVisible(Input, {
|
|
28
|
-
editable: true, // Enables the edit tool
|
|
29
|
-
});
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## API Reference
|
|
33
|
-
|
|
34
|
-
### Parameters
|
|
35
|
-
|
|
36
|
-
- `Component`: The base React component to enhance
|
|
37
|
-
- `config`: Optional configuration object
|
|
38
|
-
- `clickable`: When true, enables the assistant to programmatically click the component
|
|
39
|
-
- `editable`: When true, enables the assistant to programmatically set the value of an input or textarea within the component
|
|
40
|
-
|
|
41
|
-
### Behavior
|
|
42
|
-
|
|
43
|
-
The HOC will:
|
|
44
|
-
|
|
45
|
-
1. Make the component's HTML structure available to the assistant via the system context
|
|
46
|
-
2. Optionally provide a `click` tool if `clickable` is true
|
|
47
|
-
3. Optionally provide an `edit` tool if `editable` is true, which sets the value of an `<input>` or `<textarea>` inside the component
|
|
48
|
-
4. Handle nested readable components (only the outermost component's HTML is provided)
|
|
49
|
-
5. Forward refs and maintain component props
|
|
50
|
-
|
|
51
|
-
## Example
|
|
52
|
-
|
|
53
|
-
```tsx
|
|
54
|
-
// Create a readable form input that the assistant can also edit
|
|
55
|
-
const Input = ({ label, ...props }) => (
|
|
56
|
-
<div>
|
|
57
|
-
<label>{label}</label>
|
|
58
|
-
<input {...props} />
|
|
59
|
-
</div>
|
|
60
|
-
);
|
|
61
|
-
|
|
62
|
-
const EditableInput = makeAssistantVisible(Input, { editable: true });
|
|
63
|
-
|
|
64
|
-
// Use in your component
|
|
65
|
-
function Form() {
|
|
66
|
-
return (
|
|
67
|
-
<EditableInput label="Email" type="email" placeholder="Enter your email" />
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Technical Details
|
|
73
|
-
|
|
74
|
-
When a component is made readable:
|
|
75
|
-
|
|
76
|
-
- It's wrapped in a `ReadableContext.Provider` to handle nesting
|
|
77
|
-
- The component's `outerHTML` is provided as system context
|
|
78
|
-
- If `clickable` is true, a unique `data-click-id` is added and a `click` tool is provided
|
|
79
|
-
- The click tool uses `querySelector` and simulates a click event
|
|
80
|
-
- If `editable` is true, a unique `data-edit-id` is added and an `edit` tool is provided
|
|
81
|
-
- The edit tool uses `querySelector` to find an `<input>` or `<textarea>` and sets its value, dispatching `input` and `change` events
|
|
82
|
-
- All props and refs are properly forwarded to maintain component functionality
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Model Context
|
|
3
|
-
description: Configure assistant behavior through system instructions, tools, and context providers.
|
|
4
|
-
platforms: ["react"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Model Context is the foundation of intelligence in assistant-ui components. It provides configuration and capabilities to the assistant through a context provider system.
|
|
8
|
-
|
|
9
|
-
## Core Concepts
|
|
10
|
-
|
|
11
|
-
### System Instructions
|
|
12
|
-
|
|
13
|
-
System instructions define the base behavior and knowledge available to the assistant. These can be provided in several ways:
|
|
14
|
-
|
|
15
|
-
```tsx
|
|
16
|
-
import {
|
|
17
|
-
useAssistantInstructions,
|
|
18
|
-
useAssistantContext,
|
|
19
|
-
makeAssistantVisible,
|
|
20
|
-
} from "@assistant-ui/react";
|
|
21
|
-
|
|
22
|
-
// Static instructions
|
|
23
|
-
useAssistantInstructions("You are a helpful assistant...");
|
|
24
|
-
|
|
25
|
-
// Dynamic context — callback is evaluated lazily at send-time
|
|
26
|
-
useAssistantContext({
|
|
27
|
-
getContext: () => `Current page: ${window.location.href}`,
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
// Via makeAssistantVisible
|
|
31
|
-
const ReadableComponent = makeAssistantVisible(MyComponent);
|
|
32
|
-
// Automatically provides component HTML as system context
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
`useAssistantInstructions` takes a static string that re-registers when changed. `useAssistantContext` takes a callback that is evaluated fresh each time the model context is read, making it ideal for injecting frequently-changing application state without triggering re-registrations.
|
|
36
|
-
|
|
37
|
-
### Tools
|
|
38
|
-
|
|
39
|
-
Tools are functions that the assistant can use to interact with your application. They can be provided through various mechanisms:
|
|
40
|
-
|
|
41
|
-
```tsx title="app/form-toolkit.tsx"
|
|
42
|
-
"use generative";
|
|
43
|
-
|
|
44
|
-
import { defineToolkit } from "@assistant-ui/react";
|
|
45
|
-
import { z } from "zod";
|
|
46
|
-
|
|
47
|
-
export default defineToolkit({
|
|
48
|
-
submitForm: {
|
|
49
|
-
description: "Submit the form with the user's details.",
|
|
50
|
-
parameters: z.object({
|
|
51
|
-
email: z.string().email(),
|
|
52
|
-
name: z.string(),
|
|
53
|
-
}),
|
|
54
|
-
execute: async ({ email, name }) => {
|
|
55
|
-
"use client";
|
|
56
|
-
// Implementation
|
|
57
|
-
return { success: true };
|
|
58
|
-
},
|
|
59
|
-
renderText: { running: "Submitting…", complete: "Submitted" },
|
|
60
|
-
},
|
|
61
|
-
});
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
```tsx title="app/Form.tsx"
|
|
65
|
-
import {
|
|
66
|
-
AuiConfig,
|
|
67
|
-
AuiProvider,
|
|
68
|
-
makeAssistantVisible,
|
|
69
|
-
Tools,
|
|
70
|
-
useAui,
|
|
71
|
-
} from "@assistant-ui/react";
|
|
72
|
-
import toolkit from "./form-toolkit";
|
|
73
|
-
|
|
74
|
-
// Via makeAssistantVisible's clickable option
|
|
75
|
-
const ClickableButton = makeAssistantVisible(Button, {
|
|
76
|
-
clickable: true, // Provides a click tool
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
// Use in your component
|
|
80
|
-
function Form() {
|
|
81
|
-
const aui = useAui();
|
|
82
|
-
const config = AuiConfig({ tools: Tools({ toolkit }) });
|
|
83
|
-
return (
|
|
84
|
-
<AuiProvider extends={aui} config={config}>
|
|
85
|
-
<form>{/* form fields */}</form>
|
|
86
|
-
</AuiProvider>
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Context Provider System
|
|
92
|
-
|
|
93
|
-
The context provider system allows components to contribute to the model context. Here's a typical usage pattern:
|
|
94
|
-
|
|
95
|
-
```tsx
|
|
96
|
-
import { useAui, tool } from "@assistant-ui/react";
|
|
97
|
-
import { useEffect } from "react";
|
|
98
|
-
import { z } from "zod";
|
|
99
|
-
|
|
100
|
-
// Define tool outside the component (no runtime dependencies)
|
|
101
|
-
const myTool = tool({
|
|
102
|
-
parameters: z.object({
|
|
103
|
-
query: z.string(),
|
|
104
|
-
}),
|
|
105
|
-
execute: async ({ query }) => {
|
|
106
|
-
const result = await searchDatabase(query);
|
|
107
|
-
return { result };
|
|
108
|
-
},
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
function MyComponent() {
|
|
112
|
-
const aui = useAui();
|
|
113
|
-
|
|
114
|
-
useEffect(() => {
|
|
115
|
-
// Register context provider
|
|
116
|
-
return aui.modelContext.register({
|
|
117
|
-
getModelContext: () => ({
|
|
118
|
-
system: "You are a helpful search assistant...",
|
|
119
|
-
tools: { myTool },
|
|
120
|
-
}),
|
|
121
|
-
});
|
|
122
|
-
}, [aui]); // Re-register if api changes
|
|
123
|
-
|
|
124
|
-
return <div>{/* component content */}</div>;
|
|
125
|
-
}
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### Provider Composition
|
|
129
|
-
|
|
130
|
-
Multiple providers can be registered, and their contexts will be composed:
|
|
131
|
-
|
|
132
|
-
- System instructions are concatenated
|
|
133
|
-
- Tool sets are merged
|
|
134
|
-
- Nested readable components only contribute their context at the outermost level
|
|
135
|
-
|
|
136
|
-
## Best Practices
|
|
137
|
-
|
|
138
|
-
1. **System Instructions**
|
|
139
|
-
|
|
140
|
-
- Keep them focused and specific to the component's purpose
|
|
141
|
-
- Use useAssistantInstructions for explicit instructions
|
|
142
|
-
- Let makeAssistantVisible handle component structure
|
|
143
|
-
|
|
144
|
-
2. **Tools**
|
|
145
|
-
|
|
146
|
-
- Use toolkit entries to define tool schemas and behavior
|
|
147
|
-
- Prefer `Tools({ toolkit })` for reusable tools
|
|
148
|
-
- Handle errors gracefully
|
|
149
|
-
- Consider async operations and loading states
|
|
150
|
-
- Use the built-in click tool when possible
|
|
151
|
-
|
|
152
|
-
3. **Context Management**
|
|
153
|
-
- Register providers in useEffect for proper cleanup
|
|
154
|
-
- Clean up providers when components unmount
|
|
155
|
-
- Avoid deeply nested readable components
|
|
156
|
-
- Consider performance implications of large HTML structures
|