@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,71 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Custom Runtime
|
|
3
|
-
description: Build a React chat UI for any AI backend with assistant-ui — four runtime patterns covering local state, REST, custom protocols, and external runtimes.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
If no [framework adapter](/docs/runtimes/pick-a-runtime) fits your backend, this section gives you four building blocks. All four are built on one of the two core runtimes; understanding the layering (see [architecture](/docs/runtimes/concepts/architecture)) makes the choice clear.
|
|
7
|
-
|
|
8
|
-
## The four paths
|
|
9
|
-
|
|
10
|
-
| Path | Layered on | Wire shape | Choose when |
|
|
11
|
-
| --- | --- | --- | --- |
|
|
12
|
-
| [`LocalRuntime`](/docs/runtimes/custom/local-runtime) | Core | You write a `ChatModelAdapter.run` function | The simplest case: you have a `fetch` call to make, want assistant-ui to handle state |
|
|
13
|
-
| [`ExternalStoreRuntime`](/docs/runtimes/custom/external-store) | Core | You provide messages + callbacks | You already have state in redux, zustand, tanstack-query, or anywhere |
|
|
14
|
-
| [`DataStream`](/docs/runtimes/custom/data-stream) | LocalRuntime + protocol | Your backend emits the data stream protocol | You want a thin message-stream contract, or you are migrating from AI SDK v4 |
|
|
15
|
-
| [`AssistantTransport`](/docs/runtimes/custom/assistant-transport) | ExternalStoreRuntime + protocol | Your backend streams agent state snapshots | Your agent has rich internal state and you want it surfaced in the UI; or you need bidirectional commands |
|
|
16
|
-
|
|
17
|
-
## Decision tree
|
|
18
|
-
|
|
19
|
-
```text
|
|
20
|
-
do you have an AI SDK / LangGraph / Google ADK / A2A backend?
|
|
21
|
-
└── yes → use that framework adapter; you do not need this section
|
|
22
|
-
└── no → continue
|
|
23
|
-
│
|
|
24
|
-
do you already have message state in redux / zustand / tanstack-query?
|
|
25
|
-
└── yes → ExternalStoreRuntime
|
|
26
|
-
└── no → continue
|
|
27
|
-
│
|
|
28
|
-
do you control the backend wire format?
|
|
29
|
-
└── yes, and i want simple fetch calls → LocalRuntime
|
|
30
|
-
└── yes, and i want to stream a structured agent state → AssistantTransport
|
|
31
|
-
└── no, the backend already speaks data stream protocol → DataStream
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## What each path gives you
|
|
35
|
-
|
|
36
|
-
**`LocalRuntime`** is the lowest-friction path. You implement one method (`run` or `async *run`). Branching, editing, regeneration, multi-thread, and adapter slots all work without extra code.
|
|
37
|
-
|
|
38
|
-
**`ExternalStoreRuntime`** is the inverse: you own the message array and provide callbacks for each interaction. UI features turn on based on which callbacks you provide. Ideal when chat state is a first-class entity in your existing store.
|
|
39
|
-
|
|
40
|
-
**`DataStream`** is `LocalRuntime` plus a wire protocol. You do not write a `ChatModelAdapter`; your backend emits a standardized stream of message parts and the runtime consumes it directly.
|
|
41
|
-
|
|
42
|
-
**`AssistantTransport`** is `ExternalStoreRuntime` plus a state-streaming protocol. Instead of sending message parts, your backend sends snapshots of its full agent state. The UI is a stateless view on top of that state. Supports custom commands beyond the built-in `add-message` and `add-tool-result`.
|
|
43
|
-
|
|
44
|
-
## Common building blocks
|
|
45
|
-
|
|
46
|
-
Regardless of which path you pick, the [adapter](/docs/runtimes/concepts/adapters) and [thread](/docs/runtimes/concepts/threads) interfaces work the same way. Wire attachments, history, speech, feedback, suggestions, and multi-thread support through those shared contracts.
|
|
47
|
-
|
|
48
|
-
## Next
|
|
49
|
-
|
|
50
|
-
<Cards>
|
|
51
|
-
<Card
|
|
52
|
-
title="LocalRuntime"
|
|
53
|
-
description="Write a single ChatModelAdapter.run function."
|
|
54
|
-
href="/docs/runtimes/custom/local-runtime"
|
|
55
|
-
/>
|
|
56
|
-
<Card
|
|
57
|
-
title="ExternalStoreRuntime"
|
|
58
|
-
description="Bring redux, zustand, tanstack-query, or your own state."
|
|
59
|
-
href="/docs/runtimes/custom/external-store"
|
|
60
|
-
/>
|
|
61
|
-
<Card
|
|
62
|
-
title="Data Stream"
|
|
63
|
-
description="Standard message-stream protocol on top of LocalRuntime."
|
|
64
|
-
href="/docs/runtimes/custom/data-stream"
|
|
65
|
-
/>
|
|
66
|
-
<Card
|
|
67
|
-
title="Assistant Transport"
|
|
68
|
-
description="Stream full agent state snapshots and bidirectional commands."
|
|
69
|
-
href="/docs/runtimes/custom/assistant-transport"
|
|
70
|
-
/>
|
|
71
|
-
</Cards>
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Eve Runtime
|
|
3
|
-
description: Connect an Eve agent to assistant-ui with useEveAgentRuntime, eve/next, durable sessions, streaming messages, and human-in-the-loop approvals.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { VercelIcon } from "@/components/icons/vercel";
|
|
7
|
-
|
|
8
|
-
`@assistant-ui/eve` integrates assistant-ui with [Eve](https://eve.dev/), Vercel's filesystem-first framework for durable agents. It wraps Eve's `useEveAgent` hook and exposes it as an assistant-ui `ExternalStoreRuntime`, so Eve owns the session stream while assistant-ui renders messages, reasoning, dynamic tool calls, and approval requests.
|
|
9
|
-
|
|
10
|
-
## When to use it
|
|
11
|
-
|
|
12
|
-
Pick the Eve runtime when:
|
|
13
|
-
|
|
14
|
-
- You want your agent implementation to live under `agent/` and be served by `eve/next`.
|
|
15
|
-
- You want Eve sessions, continuation tokens, NDJSON streaming, and local development tooling.
|
|
16
|
-
- You want assistant-ui to render Eve messages and human-in-the-loop tool approvals without writing a custom runtime adapter.
|
|
17
|
-
|
|
18
|
-
## Architecture
|
|
19
|
-
|
|
20
|
-
The Next.js app mounts Eve with `withEve()` and assistant-ui's registry transform with `withAui()`:
|
|
21
|
-
|
|
22
|
-
```ts title="next.config.ts"
|
|
23
|
-
import { withAui } from "@assistant-ui/next";
|
|
24
|
-
import type { NextConfig } from "next";
|
|
25
|
-
import { withEve } from "eve/next";
|
|
26
|
-
|
|
27
|
-
const nextConfig: NextConfig = {};
|
|
28
|
-
|
|
29
|
-
export default withEve(withAui(nextConfig));
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
On the client, `useEveAgentRuntime()` calls Eve's React hook and converts Eve message parts into assistant-ui thread messages:
|
|
33
|
-
|
|
34
|
-
```tsx title="app/page.tsx"
|
|
35
|
-
"use client";
|
|
36
|
-
|
|
37
|
-
import { Thread } from "@/components/assistant-ui/thread";
|
|
38
|
-
import { useEveAgentRuntime } from "@assistant-ui/eve";
|
|
39
|
-
import { AssistantRuntimeProvider } from "@assistant-ui/react";
|
|
40
|
-
|
|
41
|
-
export default function Home() {
|
|
42
|
-
const runtime = useEveAgentRuntime();
|
|
43
|
-
|
|
44
|
-
return (
|
|
45
|
-
<AssistantRuntimeProvider runtime={runtime}>
|
|
46
|
-
<Thread />
|
|
47
|
-
</AssistantRuntimeProvider>
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
The `custom` bag of a per-turn `runConfig` is forwarded to Eve as
|
|
53
|
-
`clientContext`, so `runConfig: { custom: { page: "/pricing" } }` arrives as
|
|
54
|
-
`clientContext: { page: "/pricing" }`. An empty or absent bag is omitted, and
|
|
55
|
-
every value must be JSON-serializable.
|
|
56
|
-
|
|
57
|
-
Eve turns that object into a model context message, which is why the
|
|
58
|
-
assistant-ui `custom` envelope is unwrapped: the envelope would put a literal
|
|
59
|
-
`custom` key in the prompt. It is page or client context rather than run
|
|
60
|
-
configuration, and it cannot select a model or change how the turn executes.
|
|
61
|
-
Keep secrets, credentials, and personal data out of it, since the model reads
|
|
62
|
-
it as message text.
|
|
63
|
-
|
|
64
|
-
## Connector authorization
|
|
65
|
-
|
|
66
|
-
When Eve pauses for connector authorization, the runtime emits an assistant
|
|
67
|
-
data part named `authorization`. Its data includes `state`, `name`, and the
|
|
68
|
-
available display fields such as `displayName`, `description`, `url`,
|
|
69
|
-
`userCode`, `instructions`, and `expiresAt`. Completed parts may also include
|
|
70
|
-
`outcome` and `reason`. `url` is present only when the connector supplied an
|
|
71
|
-
`http(s)` address; the adapter drops other schemes so a renderer can link to it
|
|
72
|
-
directly.
|
|
73
|
-
|
|
74
|
-
The Eve template ships this renderer as `components/eve-authorization.tsx` and
|
|
75
|
-
mounts it next to `<Thread />`. To add it to an existing app, register a data UI
|
|
76
|
-
for the part and type it with the exported `EveAuthorizationData`:
|
|
77
|
-
|
|
78
|
-
```tsx title="authorization-ui.tsx"
|
|
79
|
-
import type { EveAuthorizationData } from "@assistant-ui/eve";
|
|
80
|
-
import { makeAssistantDataUI } from "@assistant-ui/react";
|
|
81
|
-
|
|
82
|
-
export const AuthorizationUI = makeAssistantDataUI<EveAuthorizationData>({
|
|
83
|
-
name: "authorization",
|
|
84
|
-
render: ({ data }) => (
|
|
85
|
-
<div>
|
|
86
|
-
{data.state === "required" ? (
|
|
87
|
-
<>
|
|
88
|
-
<p>{data.instructions ?? `Sign in to ${data.displayName ?? data.name}`}</p>
|
|
89
|
-
{data.userCode && <code>{data.userCode}</code>}
|
|
90
|
-
{data.url && <a href={data.url}>Continue to sign in</a>}
|
|
91
|
-
</>
|
|
92
|
-
) : (
|
|
93
|
-
<p>{data.outcome ?? "Authorization completed"}</p>
|
|
94
|
-
)}
|
|
95
|
-
</div>
|
|
96
|
-
),
|
|
97
|
-
});
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Mount `<AuthorizationUI />` inside the `AssistantRuntimeProvider` tree. The
|
|
101
|
-
standard thread intentionally leaves unmatched data parts unrendered.
|
|
102
|
-
|
|
103
|
-
## Requirements
|
|
104
|
-
|
|
105
|
-
- Node.js 24 or higher.
|
|
106
|
-
- React 18 or 19.
|
|
107
|
-
- An Eve app mounted with `eve/next`.
|
|
108
|
-
- A model credential for the model configured in `agent/agent.ts`.
|
|
109
|
-
|
|
110
|
-
Eve's default gateway model ids route through the [Vercel AI Gateway](https://vercel.com/docs/ai-gateway). Use `AI_GATEWAY_API_KEY` or Vercel OIDC, or configure a direct provider `LanguageModel`. For local development, a direct `LanguageModel` can also run on a ChatGPT Plus or Pro plan without any API key; see [ChatGPT Subscription](/docs/guides/chatgpt-subscription).
|
|
111
|
-
|
|
112
|
-
## Install
|
|
113
|
-
|
|
114
|
-
<PlatformTabs>
|
|
115
|
-
<Tab value="React">
|
|
116
|
-
|
|
117
|
-
<InstallCommand npm={["@assistant-ui/react", "@assistant-ui/eve", "eve"]} />
|
|
118
|
-
|
|
119
|
-
</Tab>
|
|
120
|
-
<Tab value="React Native">
|
|
121
|
-
|
|
122
|
-
Eve's browser hook talks to the Eve HTTP channel. There is not a React Native Eve runtime package yet.
|
|
123
|
-
|
|
124
|
-
</Tab>
|
|
125
|
-
<Tab value="React Ink">
|
|
126
|
-
|
|
127
|
-
Use Eve's terminal UI directly for command-line agent sessions. There is not an Ink Eve runtime package yet.
|
|
128
|
-
|
|
129
|
-
</Tab>
|
|
130
|
-
</PlatformTabs>
|
|
131
|
-
|
|
132
|
-
## Auth note
|
|
133
|
-
|
|
134
|
-
Eve's built-in `eve` channel accepts localhost during development and trusted Vercel OIDC callers. It does not automatically admit browser users in production. Before deploying a public app, add `agent/channels/eve.ts` and wire the channel to your application auth.
|
|
135
|
-
|
|
136
|
-
## Next
|
|
137
|
-
|
|
138
|
-
<Cards>
|
|
139
|
-
<Card
|
|
140
|
-
icon={<VercelIcon width={20} height={20} />}
|
|
141
|
-
title="Quickstart"
|
|
142
|
-
description="Scaffold the Eve template or add Eve to an existing assistant-ui app."
|
|
143
|
-
href="/docs/runtimes/eve/quickstart"
|
|
144
|
-
/>
|
|
145
|
-
<Card
|
|
146
|
-
icon={<VercelIcon width={20} height={20} />}
|
|
147
|
-
title="Eve channel"
|
|
148
|
-
description="Routes, auth, session creation, and stream events in the default Eve HTTP channel."
|
|
149
|
-
href="https://eve.dev/docs/channels/eve"
|
|
150
|
-
/>
|
|
151
|
-
</Cards>
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Quickstart
|
|
3
|
-
description: Template, Eve CLI, and manual setup paths to a working Eve agent chat in assistant-ui.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Three paths to a running Eve-powered assistant-ui app. The template is fastest, `eve add` drops assistant-ui into an Eve app you already have, and the manual path is what you adapt when integrating into an existing Next.js project.
|
|
7
|
-
|
|
8
|
-
## From the template
|
|
9
|
-
|
|
10
|
-
<PlatformTabs>
|
|
11
|
-
<Tab value="React">
|
|
12
|
-
|
|
13
|
-
```sh
|
|
14
|
-
npx create-assistant-ui@latest -t eve my-app
|
|
15
|
-
cd my-app
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Set a model credential:
|
|
19
|
-
|
|
20
|
-
```sh title=".env.local"
|
|
21
|
-
AI_GATEWAY_API_KEY=your-api-key
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
```sh
|
|
25
|
-
npm run dev
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Open http://localhost:3000 and send a message. The template includes:
|
|
29
|
-
|
|
30
|
-
- `agent/agent.ts` for Eve runtime config.
|
|
31
|
-
- `agent/instructions.md` for the always-on system prompt.
|
|
32
|
-
- `next.config.ts` with `withEve(withAui(nextConfig))`.
|
|
33
|
-
- `app/page.tsx` with `useEveAgentRuntime()`.
|
|
34
|
-
|
|
35
|
-
</Tab>
|
|
36
|
-
<Tab value="React Native">
|
|
37
|
-
|
|
38
|
-
There is not a React Native Eve template yet.
|
|
39
|
-
|
|
40
|
-
</Tab>
|
|
41
|
-
<Tab value="React Ink">
|
|
42
|
-
|
|
43
|
-
Use Eve's terminal UI directly for command-line agent sessions.
|
|
44
|
-
|
|
45
|
-
</Tab>
|
|
46
|
-
</PlatformTabs>
|
|
47
|
-
|
|
48
|
-
## With the Eve CLI
|
|
49
|
-
|
|
50
|
-
For an Eve app that already exists, register the assistant-ui registry once and install the chat page from it:
|
|
51
|
-
|
|
52
|
-
```sh
|
|
53
|
-
eve registry add @assistant-ui=https://r.assistant-ui.com/{name}.json
|
|
54
|
-
eve add @assistant-ui/eve-chat --overwrite
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
`eve registry add` records the namespace in your `package.json`. `eve add` then installs `@assistant-ui/react` and `@assistant-ui/eve`, writes `app/page.tsx`, and writes the thread component together with everything it imports into `components/assistant-ui` and `components/ui`. It expects an Eve app that carries the Next.js Web Chat scaffold, because the installed files import `@/lib/utils` through the `@/*` alias that `eve init --channel-web-nextjs` sets up.
|
|
58
|
-
|
|
59
|
-
`--overwrite` is global rather than per file. It is what lets the item replace the scaffold's own `app/page.tsx`, and it also replaces any `components/assistant-ui` or `components/ui` file already in the project, including `avatar`, `button`, `collapsible`, `dialog`, and `tooltip`, so install on a clean tree and read the diff before keeping it. A plain `eve add` skips every pre-existing file instead, which leaves `app/page.tsx` untouched. Inspect an item before installing it with `eve registry view @assistant-ui/eve-chat`, and browse the rest of the registry with `eve registry list --registry @assistant-ui`.
|
|
60
|
-
|
|
61
|
-
That namespace serves the Radix flavor, which matches the shadcn components in Eve's Next.js scaffold. Point it at `https://r.assistant-ui.com/base/{name}.json` instead for a Base UI project.
|
|
62
|
-
|
|
63
|
-
The Eve CLI writes registry files without editing CSS, so add the styles the reasoning and tool components animate with to `app/globals.css` yourself:
|
|
64
|
-
|
|
65
|
-
```css title="app/globals.css"
|
|
66
|
-
@import "tw-shimmer";
|
|
67
|
-
|
|
68
|
-
@custom-variant data-open (&:where([data-state="open"], [data-open]:not([data-open="false"])));
|
|
69
|
-
@custom-variant data-closed (&:where([data-state="closed"], [data-closed]:not([data-closed="false"])));
|
|
70
|
-
|
|
71
|
-
@theme inline {
|
|
72
|
-
@keyframes collapsible-down {
|
|
73
|
-
from {
|
|
74
|
-
height: 0;
|
|
75
|
-
}
|
|
76
|
-
to {
|
|
77
|
-
height: var(
|
|
78
|
-
--radix-collapsible-content-height,
|
|
79
|
-
var(--collapsible-panel-height, auto)
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
@keyframes collapsible-up {
|
|
84
|
-
from {
|
|
85
|
-
height: var(
|
|
86
|
-
--radix-collapsible-content-height,
|
|
87
|
-
var(--collapsible-panel-height, auto)
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
to {
|
|
91
|
-
height: 0;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
## Manual setup in an existing app
|
|
98
|
-
|
|
99
|
-
<Steps>
|
|
100
|
-
<Step>
|
|
101
|
-
|
|
102
|
-
### Install dependencies
|
|
103
|
-
|
|
104
|
-
<InstallCommand npm={["@assistant-ui/react", "@assistant-ui/eve", "eve"]} />
|
|
105
|
-
|
|
106
|
-
</Step>
|
|
107
|
-
<Step>
|
|
108
|
-
|
|
109
|
-
### Mount Eve in Next.js
|
|
110
|
-
|
|
111
|
-
```ts title="next.config.ts"
|
|
112
|
-
import { withAui } from "@assistant-ui/next";
|
|
113
|
-
import type { NextConfig } from "next";
|
|
114
|
-
import { withEve } from "eve/next";
|
|
115
|
-
|
|
116
|
-
const nextConfig: NextConfig = {};
|
|
117
|
-
|
|
118
|
-
export default withEve(withAui(nextConfig));
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
</Step>
|
|
122
|
-
<Step>
|
|
123
|
-
|
|
124
|
-
### Add an Eve agent
|
|
125
|
-
|
|
126
|
-
```ts title="agent/agent.ts"
|
|
127
|
-
import { defineAgent } from "eve";
|
|
128
|
-
|
|
129
|
-
export default defineAgent({
|
|
130
|
-
model: "anthropic/claude-sonnet-4.6",
|
|
131
|
-
});
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
```md title="agent/instructions.md"
|
|
135
|
-
You are a concise assistant. Use tools when they are available.
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
</Step>
|
|
139
|
-
<Step>
|
|
140
|
-
|
|
141
|
-
### Create the runtime
|
|
142
|
-
|
|
143
|
-
```tsx title="app/page.tsx"
|
|
144
|
-
"use client";
|
|
145
|
-
|
|
146
|
-
import { Thread } from "@/components/assistant-ui/thread";
|
|
147
|
-
import { useEveAgentRuntime } from "@assistant-ui/eve";
|
|
148
|
-
import { AssistantRuntimeProvider } from "@assistant-ui/react";
|
|
149
|
-
|
|
150
|
-
export default function Home() {
|
|
151
|
-
const runtime = useEveAgentRuntime();
|
|
152
|
-
|
|
153
|
-
return (
|
|
154
|
-
<AssistantRuntimeProvider runtime={runtime}>
|
|
155
|
-
<Thread />
|
|
156
|
-
</AssistantRuntimeProvider>
|
|
157
|
-
);
|
|
158
|
-
}
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
</Step>
|
|
162
|
-
</Steps>
|
|
163
|
-
|
|
164
|
-
## Production auth
|
|
165
|
-
|
|
166
|
-
The default Eve channel is convenient for local development. For production browser users, define `agent/channels/eve.ts` and replace the default auth policy with your app's auth.
|
|
167
|
-
|
|
168
|
-
```ts title="agent/channels/eve.ts"
|
|
169
|
-
import { localDev, vercelOidc } from "eve/channels/auth";
|
|
170
|
-
import { eveChannel } from "eve/channels/eve";
|
|
171
|
-
|
|
172
|
-
export default eveChannel({
|
|
173
|
-
auth: [localDev(), vercelOidc()],
|
|
174
|
-
});
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
That example keeps the development defaults. Swap in your Clerk, Auth.js, OIDC, or JWT verification before going live.
|
|
178
|
-
|
|
179
|
-
## Next
|
|
180
|
-
|
|
181
|
-
<Cards>
|
|
182
|
-
<Card
|
|
183
|
-
title="Eve overview"
|
|
184
|
-
description="Architecture, requirements, and runtime behavior."
|
|
185
|
-
href="/docs/runtimes/eve/overview"
|
|
186
|
-
/>
|
|
187
|
-
<Card
|
|
188
|
-
title="API reference"
|
|
189
|
-
description="useEveAgentRuntime and message conversion helpers."
|
|
190
|
-
href="/docs/api-reference/integrations/eve"
|
|
191
|
-
/>
|
|
192
|
-
</Cards>
|
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: API reference
|
|
3
|
-
description: createAdkStream, server helpers, session adapter, threads, message editing.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Reference for the runtime's wire-up surface. Start with [quickstart](/docs/runtimes/google-adk/quickstart) if you have not already.
|
|
7
|
-
|
|
8
|
-
## createAdkStream
|
|
9
|
-
|
|
10
|
-
Creates an `AdkStreamCallback` that connects to an ADK endpoint via SSE. Supports two modes.
|
|
11
|
-
|
|
12
|
-
**proxy mode** — POST to your own API route:
|
|
13
|
-
|
|
14
|
-
```ts
|
|
15
|
-
import { createAdkStream } from "@assistant-ui/react-google-adk";
|
|
16
|
-
|
|
17
|
-
const stream = createAdkStream({ api: "/api/chat" });
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
**direct mode** — connect directly to an ADK server:
|
|
21
|
-
|
|
22
|
-
```ts
|
|
23
|
-
const stream = createAdkStream({
|
|
24
|
-
api: "http://localhost:8000",
|
|
25
|
-
appName: "my-app",
|
|
26
|
-
userId: "user-1",
|
|
27
|
-
});
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
| Option | Type | Description |
|
|
31
|
-
| --- | --- | --- |
|
|
32
|
-
| `api` | `string` | URL to POST to (proxy route or ADK server base URL). |
|
|
33
|
-
| `appName` | `string?` | ADK app name (enables direct mode when set). |
|
|
34
|
-
| `userId` | `string?` | ADK user ID (required with `appName`). |
|
|
35
|
-
| `headers` | `Record<string, string>` or `() => ...` | Static or dynamic request headers. |
|
|
36
|
-
|
|
37
|
-
## Direct ADK server connection
|
|
38
|
-
|
|
39
|
-
When connecting directly to an ADK server (without a proxy API route), use `createAdkSessionAdapter` to back your thread list with ADK sessions:
|
|
40
|
-
|
|
41
|
-
```tsx
|
|
42
|
-
import {
|
|
43
|
-
useAdkRuntime,
|
|
44
|
-
createAdkStream,
|
|
45
|
-
createAdkSessionAdapter,
|
|
46
|
-
} from "@assistant-ui/react-google-adk";
|
|
47
|
-
|
|
48
|
-
const ADK_URL = "http://localhost:8000";
|
|
49
|
-
|
|
50
|
-
const { adapter, load, artifacts } = createAdkSessionAdapter({
|
|
51
|
-
apiUrl: ADK_URL,
|
|
52
|
-
appName: "my-app",
|
|
53
|
-
userId: "user-1",
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
const runtime = useAdkRuntime({
|
|
57
|
-
stream: createAdkStream({
|
|
58
|
-
api: ADK_URL,
|
|
59
|
-
appName: "my-app",
|
|
60
|
-
userId: "user-1",
|
|
61
|
-
}),
|
|
62
|
-
sessionAdapter: adapter,
|
|
63
|
-
load,
|
|
64
|
-
});
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
The session adapter maps ADK sessions to assistant-ui threads:
|
|
68
|
-
|
|
69
|
-
- **`adapter`** is a `RemoteThreadListAdapter` that uses ADK's session REST API for thread CRUD.
|
|
70
|
-
- **`load`** reconstructs messages from session events via `AdkEventAccumulator`.
|
|
71
|
-
- **`artifacts`** are functions to fetch, list, and delete session artifacts (see [hooks → artifacts](/docs/runtimes/google-adk/hooks#artifacts)).
|
|
72
|
-
|
|
73
|
-
| Option | Type | Description |
|
|
74
|
-
| --- | --- | --- |
|
|
75
|
-
| `apiUrl` | `string` | ADK server base URL. |
|
|
76
|
-
| `appName` | `string` | ADK app name. |
|
|
77
|
-
| `userId` | `string` | ADK user ID. |
|
|
78
|
-
| `headers` | `Record<string, string>` or `() => ...` | Static or dynamic request headers. |
|
|
79
|
-
|
|
80
|
-
## Server helpers
|
|
81
|
-
|
|
82
|
-
Server helpers live under the `/server` subpath:
|
|
83
|
-
|
|
84
|
-
```ts
|
|
85
|
-
import {
|
|
86
|
-
createAdkApiRoute,
|
|
87
|
-
adkEventStream,
|
|
88
|
-
parseAdkRequest,
|
|
89
|
-
toAdkContent,
|
|
90
|
-
} from "@assistant-ui/react-google-adk/server";
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### createAdkApiRoute
|
|
94
|
-
|
|
95
|
-
One-liner API route handler that combines request parsing and SSE streaming:
|
|
96
|
-
|
|
97
|
-
```ts
|
|
98
|
-
export const POST = createAdkApiRoute({
|
|
99
|
-
runner,
|
|
100
|
-
userId: "default-user",
|
|
101
|
-
sessionId: (req) =>
|
|
102
|
-
new URL(req.url).searchParams.get("sessionId") ?? "default",
|
|
103
|
-
});
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
Both `userId` and `sessionId` accept a static string or a function `(req: Request) => string` for dynamic resolution.
|
|
107
|
-
|
|
108
|
-
### adkEventStream
|
|
109
|
-
|
|
110
|
-
Converts an `AsyncGenerator<Event>` from ADK's `Runner.runAsync()` into an SSE `Response`. Sends an initial `:ok` comment to keep connections alive through proxies.
|
|
111
|
-
|
|
112
|
-
```ts
|
|
113
|
-
const events = runner.runAsync({ userId, sessionId, newMessage });
|
|
114
|
-
return adkEventStream(events);
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### parseAdkRequest and toAdkContent
|
|
118
|
-
|
|
119
|
-
Lower-level helpers for custom API routes. `parseAdkRequest` parses incoming requests; `toAdkContent` converts to ADK's `Content` format. Supports user messages, tool results, `stateDelta`, `checkpointId`, and multimodal content:
|
|
120
|
-
|
|
121
|
-
```ts
|
|
122
|
-
const parsed = await parseAdkRequest(req);
|
|
123
|
-
// parsed.type is "message" or "tool-result"
|
|
124
|
-
// parsed.config contains runConfig, checkpointId
|
|
125
|
-
// parsed.stateDelta contains session state changes
|
|
126
|
-
|
|
127
|
-
const newMessage = toAdkContent(parsed);
|
|
128
|
-
const events = runner.runAsync({
|
|
129
|
-
userId,
|
|
130
|
-
sessionId,
|
|
131
|
-
newMessage,
|
|
132
|
-
stateDelta: parsed.stateDelta,
|
|
133
|
-
});
|
|
134
|
-
return adkEventStream(events);
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## Thread management
|
|
138
|
-
|
|
139
|
-
Three options, picked by what you want to own. See [threads](/docs/runtimes/concepts/threads) for the general model.
|
|
140
|
-
|
|
141
|
-
### ADK session adapter
|
|
142
|
-
|
|
143
|
-
Use `createAdkSessionAdapter` to persist threads via ADK's session API; see [Direct ADK server connection](#direct-adk-server-connection) above.
|
|
144
|
-
|
|
145
|
-
### Custom thread management
|
|
146
|
-
|
|
147
|
-
```ts
|
|
148
|
-
const runtime = useAdkRuntime({
|
|
149
|
-
stream: createAdkStream({ api: "/api/chat" }),
|
|
150
|
-
create: async () => {
|
|
151
|
-
const sessionId = await createSession();
|
|
152
|
-
return { externalId: sessionId };
|
|
153
|
-
},
|
|
154
|
-
load: async (externalId) => {
|
|
155
|
-
const history = await loadSession(externalId);
|
|
156
|
-
return { messages: history };
|
|
157
|
-
},
|
|
158
|
-
delete: async (externalId) => {
|
|
159
|
-
await deleteSession(externalId);
|
|
160
|
-
},
|
|
161
|
-
});
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
### Cloud persistence
|
|
165
|
-
|
|
166
|
-
For persistent thread history via assistant-cloud, pass a `cloud` instance:
|
|
167
|
-
|
|
168
|
-
```ts
|
|
169
|
-
const runtime = useAdkRuntime({
|
|
170
|
-
cloud, // see "AssistantCloud" in /docs/runtimes/concepts/threads
|
|
171
|
-
stream: createAdkStream({ api: "/api/chat" }),
|
|
172
|
-
});
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
## Message editing and regeneration
|
|
176
|
-
|
|
177
|
-
Provide a `getCheckpointId` callback to enable edit and regenerate buttons:
|
|
178
|
-
|
|
179
|
-
```ts
|
|
180
|
-
const runtime = useAdkRuntime({
|
|
181
|
-
stream: createAdkStream({ api: "/api/chat" }),
|
|
182
|
-
getCheckpointId: async (threadId, parentMessages) => {
|
|
183
|
-
// Resolve checkpoint ID for server-side forking
|
|
184
|
-
return checkpointId;
|
|
185
|
-
},
|
|
186
|
-
});
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
When `getCheckpointId` is provided:
|
|
190
|
-
|
|
191
|
-
- **Edit buttons** appear on user messages.
|
|
192
|
-
- **Regenerate buttons** appear on assistant messages.
|
|
193
|
-
|
|
194
|
-
The resolved `checkpointId` is passed to your `stream` callback via `config.checkpointId`.
|
|
195
|
-
|
|
196
|
-
<Callout type="info">
|
|
197
|
-
Without `getCheckpointId`, edit and regenerate buttons will not appear. This is intentional; truncating client-side messages without forking from the correct server-side checkpoint would produce incorrect state.
|
|
198
|
-
</Callout>
|
|
199
|
-
|
|
200
|
-
## Event handlers
|
|
201
|
-
|
|
202
|
-
Listen to streaming events:
|
|
203
|
-
|
|
204
|
-
```ts
|
|
205
|
-
const runtime = useAdkRuntime({
|
|
206
|
-
stream: createAdkStream({ api: "/api/chat" }),
|
|
207
|
-
eventHandlers: {
|
|
208
|
-
onError: (error) => {
|
|
209
|
-
console.error("Stream error:", error);
|
|
210
|
-
},
|
|
211
|
-
onAgentTransfer: (toAgent) => {
|
|
212
|
-
console.log("Agent transferred to:", toAgent);
|
|
213
|
-
},
|
|
214
|
-
onCustomEvent: (key, value) => {
|
|
215
|
-
// Fired for each entry in event.customMetadata
|
|
216
|
-
console.log("Custom metadata:", key, value);
|
|
217
|
-
},
|
|
218
|
-
},
|
|
219
|
-
});
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
## RunConfig and stateDelta
|
|
223
|
-
|
|
224
|
-
Pass `AdkRunConfig` to control agent behavior, and `stateDelta` to mutate session state along with messages:
|
|
225
|
-
|
|
226
|
-
```ts
|
|
227
|
-
import { useAdkSend } from "@assistant-ui/react-google-adk";
|
|
228
|
-
|
|
229
|
-
const send = useAdkSend();
|
|
230
|
-
|
|
231
|
-
send(messages, {
|
|
232
|
-
runConfig: {
|
|
233
|
-
streamingMode: "sse",
|
|
234
|
-
maxLlmCalls: 10,
|
|
235
|
-
pauseOnToolCalls: true,
|
|
236
|
-
},
|
|
237
|
-
stateDelta: { taskId: "abc", mode: "verbose" },
|
|
238
|
-
});
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
`stateDelta` maps to ADK's `stateDelta` parameter on `/run_sse`.
|
|
242
|
-
|
|
243
|
-
## Next
|
|
244
|
-
|
|
245
|
-
<Cards>
|
|
246
|
-
<Card
|
|
247
|
-
title="Hooks"
|
|
248
|
-
description="Tool confirmations, auth, input requests, artifacts, escalation, metadata."
|
|
249
|
-
href="/docs/runtimes/google-adk/hooks"
|
|
250
|
-
/>
|
|
251
|
-
<Card
|
|
252
|
-
title="Threads"
|
|
253
|
-
description="General model for multi-thread support across runtimes."
|
|
254
|
-
href="/docs/runtimes/concepts/threads"
|
|
255
|
-
/>
|
|
256
|
-
</Cards>
|