@assistant-ui/mcp-docs-server 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -43
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -91
- package/dist/index.js.map +1 -1
- package/dist/proxy.d.ts +9 -0
- package/dist/proxy.d.ts.map +1 -0
- package/dist/proxy.js +76 -0
- package/dist/proxy.js.map +1 -0
- package/package.json +9 -13
- package/src/index.ts +3 -115
- package/src/proxy.test.ts +250 -0
- package/src/proxy.ts +111 -0
- package/.docs/organized/code-examples/waterfall.md +0 -807
- package/.docs/organized/code-examples/with-a2a.md +0 -674
- package/.docs/organized/code-examples/with-ag-ui.md +0 -552
- package/.docs/organized/code-examples/with-ai-sdk-v7.md +0 -465
- package/.docs/organized/code-examples/with-artifacts.md +0 -814
- package/.docs/organized/code-examples/with-assistant-transport.md +0 -575
- package/.docs/organized/code-examples/with-browser-extension.md +0 -371
- package/.docs/organized/code-examples/with-chain-of-thought.md +0 -960
- package/.docs/organized/code-examples/with-cloud-standalone.md +0 -681
- package/.docs/organized/code-examples/with-cloud.md +0 -438
- package/.docs/organized/code-examples/with-custom-thread-list.md +0 -568
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +0 -526
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +0 -696
- package/.docs/organized/code-examples/with-eve.md +0 -404
- package/.docs/organized/code-examples/with-expo.md +0 -2063
- package/.docs/organized/code-examples/with-external-store.md +0 -420
- package/.docs/organized/code-examples/with-ffmpeg.md +0 -828
- package/.docs/organized/code-examples/with-generative-ui.md +0 -1812
- package/.docs/organized/code-examples/with-google-adk.md +0 -367
- package/.docs/organized/code-examples/with-heat-graph.md +0 -304
- package/.docs/organized/code-examples/with-image-generation.md +0 -462
- package/.docs/organized/code-examples/with-interactables.md +0 -732
- package/.docs/organized/code-examples/with-langchain.md +0 -445
- package/.docs/organized/code-examples/with-langgraph.md +0 -854
- package/.docs/organized/code-examples/with-livekit.md +0 -642
- package/.docs/organized/code-examples/with-mcp.md +0 -780
- package/.docs/organized/code-examples/with-nuxt.md +0 -2428
- package/.docs/organized/code-examples/with-opencode.md +0 -1974
- package/.docs/organized/code-examples/with-openui.md +0 -449
- package/.docs/organized/code-examples/with-pi.md +0 -2083
- package/.docs/organized/code-examples/with-react-hook-form.md +0 -724
- package/.docs/organized/code-examples/with-react-ink-web.md +0 -690
- package/.docs/organized/code-examples/with-react-ink.md +0 -472
- package/.docs/organized/code-examples/with-react-router.md +0 -935
- package/.docs/organized/code-examples/with-resumable-stream.md +0 -667
- package/.docs/organized/code-examples/with-store.md +0 -679
- package/.docs/organized/code-examples/with-svelte.md +0 -415
- package/.docs/organized/code-examples/with-sveltekit.md +0 -1061
- package/.docs/organized/code-examples/with-tanstack.md +0 -811
- package/.docs/organized/code-examples/with-tap-runtime.md +0 -812
- package/.docs/organized/code-examples/with-virtualized-thread.md +0 -680
- package/.docs/organized/code-examples/with-vue.md +0 -408
- package/.docs/raw/docs/(docs)/architecture.mdx +0 -146
- package/.docs/raw/docs/(docs)/base-ui.mdx +0 -39
- package/.docs/raw/docs/(docs)/cli.mdx +0 -542
- package/.docs/raw/docs/(docs)/devtools.mdx +0 -79
- package/.docs/raw/docs/(docs)/index.mdx +0 -21
- package/.docs/raw/docs/(docs)/installation.mdx +0 -483
- package/.docs/raw/docs/(docs)/llm.mdx +0 -211
- package/.docs/raw/docs/(docs)/rtl.mdx +0 -78
- package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +0 -36
- package/.docs/raw/docs/(reference)/api-reference/adapters/feedback.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +0 -34
- package/.docs/raw/docs/(reference)/api-reference/adapters/model.mdx +0 -44
- package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +0 -59
- package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +0 -84
- package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/context-providers/scoped-providers.mdx +0 -64
- package/.docs/raw/docs/(reference)/api-reference/external-store/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +0 -52
- package/.docs/raw/docs/(reference)/api-reference/external-store/runtime.mdx +0 -49
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/a2ui.mdx +0 -40
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/actions.mdx +0 -56
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/components.mdx +0 -86
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/index.mdx +0 -39
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/json-generative-ui.mdx +0 -42
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/rendering.mdx +0 -84
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/slack.mdx +0 -85
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/spec.mdx +0 -45
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/teams.mdx +0 -93
- package/.docs/raw/docs/(reference)/api-reference/generative-ui/tokens.mdx +0 -62
- package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +0 -129
- package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +0 -31
- package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +0 -34
- package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +0 -350
- package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +0 -28
- package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +0 -97
- package/.docs/raw/docs/(reference)/api-reference/integrations/cloud-ai-sdk.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +0 -97
- package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +0 -28
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-ai-sdk.mdx +0 -200
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +0 -37
- package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +0 -50
- package/.docs/raw/docs/(reference)/api-reference/model-context/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/model-context/registry.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/overview.mdx +0 -566
- package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar-more.mdx +0 -152
- package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +0 -239
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +0 -208
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-modal.mdx +0 -108
- package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +0 -99
- package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +0 -145
- package/.docs/raw/docs/(reference)/api-reference/primitives/chain-of-thought.mdx +0 -82
- package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +0 -619
- package/.docs/raw/docs/(reference)/api-reference/primitives/composition.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/primitives/error.mdx +0 -65
- package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +0 -73
- package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +0 -117
- package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +0 -339
- package/.docs/raw/docs/(reference)/api-reference/primitives/queue-item.mdx +0 -77
- package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +0 -88
- package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +0 -81
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item-more.mdx +0 -129
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item.mdx +0 -138
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +0 -122
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +0 -289
- package/.docs/raw/docs/(reference)/api-reference/runtimes/assistant-runtime.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/runtimes/attachment-runtime.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/runtimes/composer-runtime.mdx +0 -32
- package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +0 -43
- package/.docs/raw/docs/(reference)/api-reference/runtimes/message-part-runtime.mdx +0 -43
- package/.docs/raw/docs/(reference)/api-reference/runtimes/message-runtime.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/runtimes/queue-state.mdx +0 -20
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-item-runtime.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +0 -24
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-runtime.mdx +0 -36
- package/.docs/raw/docs/(reference)/api-reference/tools/component-tools.mdx +0 -85
- package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +0 -45
- package/.docs/raw/docs/(reference)/api-reference/tools/interactables-legacy.mdx +0 -55
- package/.docs/raw/docs/(reference)/api-reference/tools/interactables.mdx +0 -151
- package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +0 -106
- package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +0 -62
- package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +0 -178
- package/.docs/raw/docs/(reference)/api-reference/transport/assistant-transport.mdx +0 -48
- package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +0 -62
- package/.docs/raw/docs/(reference)/api-reference/transport/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/utilities/index.mdx +0 -19
- package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +0 -149
- package/.docs/raw/docs/(reference)/api-reference/voice/index.mdx +0 -22
- package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +0 -54
- package/.docs/raw/docs/(reference)/api-reference/voice/speech-dictation.mdx +0 -36
- package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +0 -527
- package/.docs/raw/docs/cloud/ai-sdk.mdx +0 -602
- package/.docs/raw/docs/cloud/authorization.mdx +0 -252
- package/.docs/raw/docs/cloud/index.mdx +0 -46
- package/.docs/raw/docs/cloud/langgraph.mdx +0 -554
- package/.docs/raw/docs/copilots/assistant-frame.mdx +0 -400
- package/.docs/raw/docs/copilots/make-assistant-visible.mdx +0 -82
- package/.docs/raw/docs/copilots/model-context.mdx +0 -156
- package/.docs/raw/docs/copilots/motivation.mdx +0 -202
- package/.docs/raw/docs/copilots/use-assistant-instructions.mdx +0 -64
- package/.docs/raw/docs/guides/attachments.mdx +0 -619
- package/.docs/raw/docs/guides/branching.mdx +0 -76
- package/.docs/raw/docs/guides/chain-of-thought.mdx +0 -164
- package/.docs/raw/docs/guides/chatgpt-subscription.mdx +0 -108
- package/.docs/raw/docs/guides/context-api.mdx +0 -619
- package/.docs/raw/docs/guides/dictation.mdx +0 -298
- package/.docs/raw/docs/guides/editing.mdx +0 -102
- package/.docs/raw/docs/guides/electron.mdx +0 -369
- package/.docs/raw/docs/guides/headless-composer-input.mdx +0 -113
- package/.docs/raw/docs/guides/image-generation.mdx +0 -74
- package/.docs/raw/docs/guides/index.mdx +0 -117
- package/.docs/raw/docs/guides/input-history.mdx +0 -55
- package/.docs/raw/docs/guides/latex.mdx +0 -158
- package/.docs/raw/docs/guides/mentions.mdx +0 -575
- package/.docs/raw/docs/guides/message-timing.mdx +0 -209
- package/.docs/raw/docs/guides/quoting.mdx +0 -169
- package/.docs/raw/docs/guides/resumable-stream-deployment.mdx +0 -212
- package/.docs/raw/docs/guides/resumable-stream-stores.mdx +0 -152
- package/.docs/raw/docs/guides/resumable-streams.mdx +0 -292
- package/.docs/raw/docs/guides/slash-commands.mdx +0 -358
- package/.docs/raw/docs/guides/speech.mdx +0 -172
- package/.docs/raw/docs/guides/suggestions.mdx +0 -384
- package/.docs/raw/docs/guides/virtualization.mdx +0 -133
- package/.docs/raw/docs/guides/voice.mdx +0 -310
- package/.docs/raw/docs/ink/adapters.mdx +0 -99
- package/.docs/raw/docs/ink/custom-backend.mdx +0 -254
- package/.docs/raw/docs/ink/hooks.mdx +0 -469
- package/.docs/raw/docs/ink/index.mdx +0 -236
- package/.docs/raw/docs/ink/migration.mdx +0 -138
- package/.docs/raw/docs/ink/primitives.mdx +0 -1259
- package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +0 -528
- package/.docs/raw/docs/integrations/auth/better-auth.mdx +0 -188
- package/.docs/raw/docs/integrations/auth/clerk.mdx +0 -166
- package/.docs/raw/docs/integrations/auth/next-auth.mdx +0 -191
- package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +0 -88
- package/.docs/raw/docs/integrations/frameworks/cloudflare-agents/overview.mdx +0 -282
- package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +0 -188
- package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +0 -57
- package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +0 -201
- package/.docs/raw/docs/integrations/gateways/index.mdx +0 -162
- package/.docs/raw/docs/integrations/index.mdx +0 -178
- package/.docs/raw/docs/integrations/observability/helicone.mdx +0 -129
- package/.docs/raw/docs/integrations/observability/langfuse.mdx +0 -161
- package/.docs/raw/docs/integrations/observability/langsmith.mdx +0 -151
- package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +0 -773
- package/.docs/raw/docs/migrations/deprecation-policy.mdx +0 -42
- package/.docs/raw/docs/migrations/index.mdx +0 -50
- package/.docs/raw/docs/migrations/react-compatibility.mdx +0 -74
- package/.docs/raw/docs/migrations/react-langgraph-v0-7.mdx +0 -328
- package/.docs/raw/docs/migrations/toolkit-tools.mdx +0 -236
- package/.docs/raw/docs/migrations/v0-11.mdx +0 -172
- package/.docs/raw/docs/migrations/v0-12.mdx +0 -302
- package/.docs/raw/docs/migrations/v0-14.mdx +0 -297
- package/.docs/raw/docs/migrations/v0-15.mdx +0 -270
- package/.docs/raw/docs/primitives/action-bar.mdx +0 -352
- package/.docs/raw/docs/primitives/assistant-modal.mdx +0 -216
- package/.docs/raw/docs/primitives/attachment.mdx +0 -217
- package/.docs/raw/docs/primitives/branch-picker.mdx +0 -222
- package/.docs/raw/docs/primitives/chain-of-thought.mdx +0 -315
- package/.docs/raw/docs/primitives/composer.mdx +0 -659
- package/.docs/raw/docs/primitives/error.mdx +0 -142
- package/.docs/raw/docs/primitives/index.mdx +0 -99
- package/.docs/raw/docs/primitives/message.mdx +0 -618
- package/.docs/raw/docs/primitives/selection-toolbar.mdx +0 -191
- package/.docs/raw/docs/primitives/suggestion.mdx +0 -254
- package/.docs/raw/docs/primitives/thread-list.mdx +0 -467
- package/.docs/raw/docs/primitives/thread.mdx +0 -509
- package/.docs/raw/docs/react-native/adapters.mdx +0 -94
- package/.docs/raw/docs/react-native/custom-backend.mdx +0 -207
- package/.docs/raw/docs/react-native/hooks.mdx +0 -339
- package/.docs/raw/docs/react-native/index.mdx +0 -289
- package/.docs/raw/docs/react-native/migration.mdx +0 -142
- package/.docs/raw/docs/react-native/primitives.mdx +0 -839
- package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +0 -399
- package/.docs/raw/docs/runtimes/a2a/overview.mdx +0 -60
- package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +0 -216
- package/.docs/raw/docs/runtimes/ag-ui/agent-state.mdx +0 -124
- package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +0 -70
- package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +0 -243
- package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +0 -255
- package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +0 -61
- package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +0 -122
- package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +0 -135
- package/.docs/raw/docs/runtimes/ai-sdk/v6-legacy.mdx +0 -636
- package/.docs/raw/docs/runtimes/ai-sdk/v7.mdx +0 -716
- package/.docs/raw/docs/runtimes/claude-managed-agents.mdx +0 -118
- package/.docs/raw/docs/runtimes/concepts/adapters.mdx +0 -265
- package/.docs/raw/docs/runtimes/concepts/architecture.mdx +0 -167
- package/.docs/raw/docs/runtimes/concepts/stability.mdx +0 -68
- package/.docs/raw/docs/runtimes/concepts/threads.mdx +0 -513
- package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +0 -763
- package/.docs/raw/docs/runtimes/custom/data-stream.mdx +0 -339
- package/.docs/raw/docs/runtimes/custom/external-store.mdx +0 -957
- package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +0 -902
- package/.docs/raw/docs/runtimes/custom/overview.mdx +0 -71
- package/.docs/raw/docs/runtimes/eve/overview.mdx +0 -151
- package/.docs/raw/docs/runtimes/eve/quickstart.mdx +0 -192
- package/.docs/raw/docs/runtimes/google-adk/api.mdx +0 -256
- package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +0 -784
- package/.docs/raw/docs/runtimes/google-adk/overview.mdx +0 -69
- package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +0 -229
- package/.docs/raw/docs/runtimes/langchain.mdx +0 -901
- package/.docs/raw/docs/runtimes/langgraph/agent-state.mdx +0 -181
- package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +0 -305
- package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +0 -104
- package/.docs/raw/docs/runtimes/langgraph/overview.mdx +0 -84
- package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +0 -496
- package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +0 -144
- package/.docs/raw/docs/runtimes/langgraph/threads.mdx +0 -113
- package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +0 -29
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -93
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +0 -347
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-3.mdx +0 -393
- package/.docs/raw/docs/runtimes/opencode/hooks.mdx +0 -194
- package/.docs/raw/docs/runtimes/opencode/overview.mdx +0 -58
- package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +0 -119
- package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +0 -133
- package/.docs/raw/docs/tools/a2ui.mdx +0 -107
- package/.docs/raw/docs/tools/backend.mdx +0 -147
- package/.docs/raw/docs/tools/defining-tools.mdx +0 -574
- package/.docs/raw/docs/tools/dynamic-tools.mdx +0 -112
- package/.docs/raw/docs/tools/generative-ui-primitive.mdx +0 -180
- package/.docs/raw/docs/tools/generative-ui-slack.mdx +0 -167
- package/.docs/raw/docs/tools/generative-ui-teams.mdx +0 -160
- package/.docs/raw/docs/tools/generative-ui.mdx +0 -322
- package/.docs/raw/docs/tools/index.mdx +0 -72
- package/.docs/raw/docs/tools/interactables.mdx +0 -1084
- package/.docs/raw/docs/tools/mcp-apps.mdx +0 -346
- package/.docs/raw/docs/tools/mcp.mdx +0 -466
- package/.docs/raw/docs/tools/multi-agent.mdx +0 -237
- package/.docs/raw/docs/tools/openui.mdx +0 -175
- package/.docs/raw/docs/tools/tool-ui.mdx +0 -1008
- package/.docs/raw/docs/tools/user-managed-mcp.mdx +0 -428
- package/.docs/raw/docs/ui/accordion.mdx +0 -266
- package/.docs/raw/docs/ui/assistant-modal.mdx +0 -166
- package/.docs/raw/docs/ui/assistant-sidebar.mdx +0 -89
- package/.docs/raw/docs/ui/attachment.mdx +0 -259
- package/.docs/raw/docs/ui/badge.mdx +0 -150
- package/.docs/raw/docs/ui/composer-trigger-popover.mdx +0 -212
- package/.docs/raw/docs/ui/context-display.mdx +0 -148
- package/.docs/raw/docs/ui/diff-viewer.mdx +0 -280
- package/.docs/raw/docs/ui/directive-text.mdx +0 -114
- package/.docs/raw/docs/ui/dot-matrix.mdx +0 -133
- package/.docs/raw/docs/ui/file.mdx +0 -159
- package/.docs/raw/docs/ui/follow-up-suggestions.mdx +0 -82
- package/.docs/raw/docs/ui/image.mdx +0 -102
- package/.docs/raw/docs/ui/markdown.mdx +0 -64
- package/.docs/raw/docs/ui/mcp-config.mdx +0 -107
- package/.docs/raw/docs/ui/mermaid.mdx +0 -92
- package/.docs/raw/docs/ui/message-timing.mdx +0 -93
- package/.docs/raw/docs/ui/model-selector.mdx +0 -455
- package/.docs/raw/docs/ui/number-roll.mdx +0 -154
- package/.docs/raw/docs/ui/part-grouping.mdx +0 -614
- package/.docs/raw/docs/ui/quote.mdx +0 -211
- package/.docs/raw/docs/ui/reasoning.mdx +0 -186
- package/.docs/raw/docs/ui/scrollbar.mdx +0 -77
- package/.docs/raw/docs/ui/select.mdx +0 -254
- package/.docs/raw/docs/ui/sources.mdx +0 -177
- package/.docs/raw/docs/ui/streamdown.mdx +0 -392
- package/.docs/raw/docs/ui/syntax-highlighting.mdx +0 -205
- package/.docs/raw/docs/ui/tabs.mdx +0 -271
- package/.docs/raw/docs/ui/thread-list.mdx +0 -372
- package/.docs/raw/docs/ui/thread.mdx +0 -512
- package/.docs/raw/docs/ui/tool-fallback.mdx +0 -127
- package/.docs/raw/docs/ui/tool-group.mdx +0 -240
- package/.docs/raw/docs/ui/voice.mdx +0 -173
- package/.docs/raw/docs/utilities/heat-graph.mdx +0 -237
- package/.docs/raw/docs/utilities/react-o11y.mdx +0 -362
- package/.docs/raw/docs/utilities/tw-shimmer.mdx +0 -212
- package/dist/constants.d.ts +0 -14
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -19
- package/dist/constants.js.map +0 -1
- package/dist/prepare-docs/code-examples.d.ts +0 -5
- package/dist/prepare-docs/code-examples.d.ts.map +0 -1
- package/dist/prepare-docs/code-examples.js +0 -117
- package/dist/prepare-docs/code-examples.js.map +0 -1
- package/dist/prepare-docs/copy-raw.d.ts +0 -5
- package/dist/prepare-docs/copy-raw.d.ts.map +0 -1
- package/dist/prepare-docs/copy-raw.js +0 -49
- package/dist/prepare-docs/copy-raw.js.map +0 -1
- package/dist/prepare-docs/prepare.d.ts +0 -1
- package/dist/prepare-docs/prepare.js +0 -22
- package/dist/prepare-docs/prepare.js.map +0 -1
- package/dist/prompts/xulux-playground.d.ts +0 -12
- package/dist/prompts/xulux-playground.d.ts.map +0 -1
- package/dist/prompts/xulux-playground.js +0 -33
- package/dist/prompts/xulux-playground.js.map +0 -1
- package/dist/tools/docs.d.ts +0 -22
- package/dist/tools/docs.d.ts.map +0 -1
- package/dist/tools/docs.js +0 -177
- package/dist/tools/docs.js.map +0 -1
- package/dist/tools/examples.d.ts +0 -24
- package/dist/tools/examples.d.ts.map +0 -1
- package/dist/tools/examples.js +0 -87
- package/dist/tools/examples.js.map +0 -1
- package/dist/tools/resources.d.ts +0 -6
- package/dist/tools/resources.d.ts.map +0 -1
- package/dist/tools/resources.js +0 -75
- package/dist/tools/resources.js.map +0 -1
- package/dist/tools/search.d.ts +0 -24
- package/dist/tools/search.d.ts.map +0 -1
- package/dist/tools/search.js +0 -39
- package/dist/tools/search.js.map +0 -1
- package/dist/tools/tests/mcp-test-client.d.ts +0 -15
- package/dist/tools/tests/mcp-test-client.d.ts.map +0 -1
- package/dist/tools/tests/mcp-test-client.js +0 -68
- package/dist/tools/tests/mcp-test-client.js.map +0 -1
- package/dist/tools/tests/test-setup.d.ts +0 -7
- package/dist/tools/tests/test-setup.d.ts.map +0 -1
- package/dist/tools/tests/test-setup.js +0 -36
- package/dist/tools/tests/test-setup.js.map +0 -1
- package/dist/tools/xulux-templates.d.ts +0 -58
- package/dist/tools/xulux-templates.d.ts.map +0 -1
- package/dist/tools/xulux-templates.js +0 -84
- package/dist/tools/xulux-templates.js.map +0 -1
- package/dist/utils/cache.d.ts +0 -5
- package/dist/utils/cache.d.ts.map +0 -1
- package/dist/utils/cache.js +0 -18
- package/dist/utils/cache.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -10
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -20
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/mcp-format.d.ts +0 -11
- package/dist/utils/mcp-format.d.ts.map +0 -1
- package/dist/utils/mcp-format.js +0 -14
- package/dist/utils/mcp-format.js.map +0 -1
- package/dist/utils/mdx.d.ts +0 -12
- package/dist/utils/mdx.d.ts.map +0 -1
- package/dist/utils/mdx.js +0 -45
- package/dist/utils/mdx.js.map +0 -1
- package/dist/utils/paths.d.ts +0 -12
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js +0 -93
- package/dist/utils/paths.js.map +0 -1
- package/dist/utils/search.d.ts +0 -10
- package/dist/utils/search.d.ts.map +0 -1
- package/dist/utils/search.js +0 -97
- package/dist/utils/search.js.map +0 -1
- package/dist/utils/security.d.ts +0 -5
- package/dist/utils/security.d.ts.map +0 -1
- package/dist/utils/security.js +0 -22
- package/dist/utils/security.js.map +0 -1
- package/dist/xulux/catalog-client.d.ts +0 -14
- package/dist/xulux/catalog-client.d.ts.map +0 -1
- package/dist/xulux/catalog-client.js +0 -67
- package/dist/xulux/catalog-client.js.map +0 -1
- package/dist/xulux/fallback-catalog.d.ts +0 -7
- package/dist/xulux/fallback-catalog.d.ts.map +0 -1
- package/dist/xulux/fallback-catalog.js +0 -47
- package/dist/xulux/fallback-catalog.js.map +0 -1
- package/dist/xulux/fetch-sandbox.d.ts +0 -5
- package/dist/xulux/fetch-sandbox.d.ts.map +0 -1
- package/dist/xulux/fetch-sandbox.js +0 -40
- package/dist/xulux/fetch-sandbox.js.map +0 -1
- package/dist/xulux/template-service.d.ts +0 -84
- package/dist/xulux/template-service.d.ts.map +0 -1
- package/dist/xulux/template-service.js +0 -223
- package/dist/xulux/template-service.js.map +0 -1
- package/dist/xulux/types.d.ts +0 -55
- package/dist/xulux/types.d.ts.map +0 -1
- package/dist/xulux/types.js +0 -6
- package/dist/xulux/types.js.map +0 -1
- package/src/constants.ts +0 -24
- package/src/prepare-docs/code-examples.ts +0 -158
- package/src/prepare-docs/copy-raw.ts +0 -50
- package/src/prepare-docs/prepare.ts +0 -24
- package/src/prompts/xulux-playground.ts +0 -36
- package/src/tools/docs.ts +0 -255
- package/src/tools/examples.ts +0 -114
- package/src/tools/resources.ts +0 -111
- package/src/tools/search.ts +0 -46
- package/src/tools/tests/completions.test.ts +0 -60
- package/src/tools/tests/directory-size-cap.test.ts +0 -50
- package/src/tools/tests/docs.test.ts +0 -144
- package/src/tools/tests/examples.test.ts +0 -94
- package/src/tools/tests/integration.test.ts +0 -45
- package/src/tools/tests/json-parsing.test.ts +0 -23
- package/src/tools/tests/listings-cache.test.ts +0 -19
- package/src/tools/tests/mcp-protocol.test.ts +0 -216
- package/src/tools/tests/mcp-test-client.ts +0 -111
- package/src/tools/tests/path-traversal.test.ts +0 -81
- package/src/tools/tests/resources.test.ts +0 -133
- package/src/tools/tests/search.test.ts +0 -37
- package/src/tools/tests/test-setup.ts +0 -50
- package/src/tools/tests/xulux-templates.test.ts +0 -262
- package/src/tools/xulux-templates.ts +0 -141
- package/src/utils/cache.ts +0 -20
- package/src/utils/logger.ts +0 -20
- package/src/utils/mcp-format.ts +0 -14
- package/src/utils/mdx.ts +0 -59
- package/src/utils/paths.ts +0 -139
- package/src/utils/search.ts +0 -131
- package/src/utils/security.ts +0 -52
- package/src/utils/tests/cache.test.ts +0 -51
- package/src/utils/tests/mcp-format.test.ts +0 -22
- package/src/utils/tests/security.test.ts +0 -119
- package/src/xulux/catalog-client.ts +0 -105
- package/src/xulux/fallback-catalog.ts +0 -63
- package/src/xulux/fetch-sandbox.ts +0 -56
- package/src/xulux/template-service.ts +0 -406
- package/src/xulux/types.ts +0 -60
|
@@ -1,784 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Hooks
|
|
3
|
-
description: Tool confirmations, auth, input requests, artifacts, escalation, metadata, structured events.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Reference for the runtime's React hooks. These expose ADK-specific state and HITL primitives. Start with [quickstart](/docs/runtimes/google-adk/quickstart) if you have not wired up a basic runtime yet.
|
|
7
|
-
|
|
8
|
-
## Agent and session state
|
|
9
|
-
|
|
10
|
-
```ts
|
|
11
|
-
import {
|
|
12
|
-
useAdkAgentInfo,
|
|
13
|
-
useAdkSessionState,
|
|
14
|
-
useAdkSend,
|
|
15
|
-
} from "@assistant-ui/react-google-adk";
|
|
16
|
-
|
|
17
|
-
function MyComponent() {
|
|
18
|
-
// Current active agent name and branch path (multi-agent)
|
|
19
|
-
const agentInfo = useAdkAgentInfo();
|
|
20
|
-
// agentInfo?.name = "search_agent"
|
|
21
|
-
// agentInfo?.branch = "root.search_agent"
|
|
22
|
-
|
|
23
|
-
// Accumulated session state delta
|
|
24
|
-
const state = useAdkSessionState();
|
|
25
|
-
|
|
26
|
-
// Send raw ADK messages programmatically
|
|
27
|
-
const send = useAdkSend();
|
|
28
|
-
}
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Tool confirmations
|
|
32
|
-
|
|
33
|
-
When ADK's `SecurityPlugin` or tool callbacks request user confirmation before executing a tool, use `useAdkToolConfirmations` to read pending requests and `useAdkConfirmTool` to respond:
|
|
34
|
-
|
|
35
|
-
<PlatformTabs>
|
|
36
|
-
<Tab value="React">
|
|
37
|
-
|
|
38
|
-
```tsx
|
|
39
|
-
import {
|
|
40
|
-
useAdkToolConfirmations,
|
|
41
|
-
useAdkConfirmTool,
|
|
42
|
-
} from "@assistant-ui/react-google-adk";
|
|
43
|
-
|
|
44
|
-
function ToolConfirmationUI() {
|
|
45
|
-
const confirmations = useAdkToolConfirmations();
|
|
46
|
-
const confirmTool = useAdkConfirmTool();
|
|
47
|
-
|
|
48
|
-
if (confirmations.length === 0) return null;
|
|
49
|
-
|
|
50
|
-
return confirmations.map((conf) => (
|
|
51
|
-
<div key={conf.toolCallId}>
|
|
52
|
-
<p>
|
|
53
|
-
Tool "{conf.toolName}" wants to run. {conf.hint}
|
|
54
|
-
</p>
|
|
55
|
-
<button onClick={() => confirmTool(conf.toolCallId, true)}>Approve</button>
|
|
56
|
-
<button onClick={() => confirmTool(conf.toolCallId, false)}>Deny</button>
|
|
57
|
-
</div>
|
|
58
|
-
));
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
</Tab>
|
|
63
|
-
<Tab value="React Native">
|
|
64
|
-
|
|
65
|
-
```tsx
|
|
66
|
-
import {
|
|
67
|
-
useAdkToolConfirmations,
|
|
68
|
-
useAdkConfirmTool,
|
|
69
|
-
} from "@assistant-ui/react-google-adk";
|
|
70
|
-
import { Pressable, Text, View } from "react-native";
|
|
71
|
-
|
|
72
|
-
function ToolConfirmationUI() {
|
|
73
|
-
const confirmations = useAdkToolConfirmations();
|
|
74
|
-
const confirmTool = useAdkConfirmTool();
|
|
75
|
-
|
|
76
|
-
if (confirmations.length === 0) return null;
|
|
77
|
-
|
|
78
|
-
return (
|
|
79
|
-
<View>
|
|
80
|
-
{confirmations.map((conf) => (
|
|
81
|
-
<View key={conf.toolCallId}>
|
|
82
|
-
<Text>
|
|
83
|
-
Tool "{conf.toolName}" wants to run. {conf.hint}
|
|
84
|
-
</Text>
|
|
85
|
-
<Pressable onPress={() => confirmTool(conf.toolCallId, true)}>
|
|
86
|
-
<Text>Approve</Text>
|
|
87
|
-
</Pressable>
|
|
88
|
-
<Pressable onPress={() => confirmTool(conf.toolCallId, false)}>
|
|
89
|
-
<Text>Deny</Text>
|
|
90
|
-
</Pressable>
|
|
91
|
-
</View>
|
|
92
|
-
))}
|
|
93
|
-
</View>
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
</Tab>
|
|
99
|
-
<Tab value="React Ink">
|
|
100
|
-
|
|
101
|
-
```tsx
|
|
102
|
-
import {
|
|
103
|
-
useAdkToolConfirmations,
|
|
104
|
-
useAdkConfirmTool,
|
|
105
|
-
} from "@assistant-ui/react-google-adk";
|
|
106
|
-
import { Box, Text, useInput } from "ink";
|
|
107
|
-
|
|
108
|
-
function ToolConfirmationUI() {
|
|
109
|
-
const confirmations = useAdkToolConfirmations();
|
|
110
|
-
const confirmTool = useAdkConfirmTool();
|
|
111
|
-
const active = confirmations[0];
|
|
112
|
-
|
|
113
|
-
useInput((input) => {
|
|
114
|
-
if (!active) return;
|
|
115
|
-
if (input === "y") confirmTool(active.toolCallId, true);
|
|
116
|
-
if (input === "n") confirmTool(active.toolCallId, false);
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
if (!active) return null;
|
|
120
|
-
|
|
121
|
-
return (
|
|
122
|
-
<Box flexDirection="column">
|
|
123
|
-
<Text>
|
|
124
|
-
Tool "{active.toolName}" wants to run. {active.hint}
|
|
125
|
-
</Text>
|
|
126
|
-
<Text>Press y to approve, n to deny.</Text>
|
|
127
|
-
</Box>
|
|
128
|
-
);
|
|
129
|
-
}
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
</Tab>
|
|
133
|
-
</PlatformTabs>
|
|
134
|
-
|
|
135
|
-
## Auth requests
|
|
136
|
-
|
|
137
|
-
When a tool requires OAuth or other authentication, use `useAdkAuthRequests` to read pending requests and `useAdkSubmitAuth` to submit credentials:
|
|
138
|
-
|
|
139
|
-
<PlatformTabs>
|
|
140
|
-
<Tab value="React">
|
|
141
|
-
|
|
142
|
-
```tsx
|
|
143
|
-
import {
|
|
144
|
-
useAdkAuthRequests,
|
|
145
|
-
useAdkSubmitAuth,
|
|
146
|
-
type AdkAuthCredential,
|
|
147
|
-
} from "@assistant-ui/react-google-adk";
|
|
148
|
-
|
|
149
|
-
function AuthUI() {
|
|
150
|
-
const authRequests = useAdkAuthRequests();
|
|
151
|
-
const submitAuth = useAdkSubmitAuth();
|
|
152
|
-
|
|
153
|
-
if (authRequests.length === 0) return null;
|
|
154
|
-
|
|
155
|
-
return authRequests.map((req) => (
|
|
156
|
-
<div key={req.toolCallId}>
|
|
157
|
-
<button
|
|
158
|
-
onClick={() => {
|
|
159
|
-
const credential: AdkAuthCredential = {
|
|
160
|
-
authType: "oauth2",
|
|
161
|
-
oauth2: { accessToken: "..." },
|
|
162
|
-
};
|
|
163
|
-
submitAuth(req.toolCallId, credential);
|
|
164
|
-
}}
|
|
165
|
-
>
|
|
166
|
-
Authenticate
|
|
167
|
-
</button>
|
|
168
|
-
</div>
|
|
169
|
-
));
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
</Tab>
|
|
174
|
-
<Tab value="React Native">
|
|
175
|
-
|
|
176
|
-
```tsx
|
|
177
|
-
import {
|
|
178
|
-
useAdkAuthRequests,
|
|
179
|
-
useAdkSubmitAuth,
|
|
180
|
-
type AdkAuthCredential,
|
|
181
|
-
} from "@assistant-ui/react-google-adk";
|
|
182
|
-
import { Pressable, Text, View } from "react-native";
|
|
183
|
-
|
|
184
|
-
function AuthUI() {
|
|
185
|
-
const authRequests = useAdkAuthRequests();
|
|
186
|
-
const submitAuth = useAdkSubmitAuth();
|
|
187
|
-
|
|
188
|
-
if (authRequests.length === 0) return null;
|
|
189
|
-
|
|
190
|
-
return (
|
|
191
|
-
<View>
|
|
192
|
-
{authRequests.map((req) => (
|
|
193
|
-
<Pressable
|
|
194
|
-
key={req.toolCallId}
|
|
195
|
-
onPress={() => {
|
|
196
|
-
const credential: AdkAuthCredential = {
|
|
197
|
-
authType: "oauth2",
|
|
198
|
-
oauth2: { accessToken: "..." },
|
|
199
|
-
};
|
|
200
|
-
submitAuth(req.toolCallId, credential);
|
|
201
|
-
}}
|
|
202
|
-
>
|
|
203
|
-
<Text>Authenticate</Text>
|
|
204
|
-
</Pressable>
|
|
205
|
-
))}
|
|
206
|
-
</View>
|
|
207
|
-
);
|
|
208
|
-
}
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
</Tab>
|
|
212
|
-
<Tab value="React Ink">
|
|
213
|
-
|
|
214
|
-
```tsx
|
|
215
|
-
import {
|
|
216
|
-
useAdkAuthRequests,
|
|
217
|
-
useAdkSubmitAuth,
|
|
218
|
-
type AdkAuthCredential,
|
|
219
|
-
} from "@assistant-ui/react-google-adk";
|
|
220
|
-
import { Box, Text, useInput } from "ink";
|
|
221
|
-
|
|
222
|
-
function AuthUI() {
|
|
223
|
-
const authRequests = useAdkAuthRequests();
|
|
224
|
-
const submitAuth = useAdkSubmitAuth();
|
|
225
|
-
const active = authRequests[0];
|
|
226
|
-
|
|
227
|
-
useInput((input) => {
|
|
228
|
-
if (!active || input !== "a") return;
|
|
229
|
-
const credential: AdkAuthCredential = {
|
|
230
|
-
authType: "oauth2",
|
|
231
|
-
oauth2: { accessToken: "..." },
|
|
232
|
-
};
|
|
233
|
-
submitAuth(active.toolCallId, credential);
|
|
234
|
-
});
|
|
235
|
-
|
|
236
|
-
if (!active) return null;
|
|
237
|
-
|
|
238
|
-
return (
|
|
239
|
-
<Box flexDirection="column">
|
|
240
|
-
<Text>Authentication required for a tool call.</Text>
|
|
241
|
-
<Text>Press a after completing your auth flow.</Text>
|
|
242
|
-
</Box>
|
|
243
|
-
);
|
|
244
|
-
}
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
</Tab>
|
|
248
|
-
</PlatformTabs>
|
|
249
|
-
|
|
250
|
-
`AdkAuthCredential` supports all ADK auth types: `apiKey`, `http`, `oauth2`, `openIdConnect`, `serviceAccount`.
|
|
251
|
-
|
|
252
|
-
## Input requests
|
|
253
|
-
|
|
254
|
-
When an ADK Python 2.0+ Workflow's `RequestInput` node pauses execution to ask the user a question, ADK emits an `adk_request_input` function call marked as long-running. Respond with `useAdkSubmitInput` inside a tool UI; the helper wraps the answer as `{ result }` to match ADK's `unwrap_response` contract, so the Workflow node resumes with the unwrapped value:
|
|
255
|
-
|
|
256
|
-
<PlatformTabs>
|
|
257
|
-
<Tab value="React">
|
|
258
|
-
|
|
259
|
-
```tsx
|
|
260
|
-
import type { ToolCallMessagePartComponent } from "@assistant-ui/react";
|
|
261
|
-
import { useAdkSubmitInput } from "@assistant-ui/react-google-adk";
|
|
262
|
-
|
|
263
|
-
type RequestInputArgs = {
|
|
264
|
-
interrupt_id?: string;
|
|
265
|
-
message?: string;
|
|
266
|
-
payload?: unknown;
|
|
267
|
-
response_schema?: unknown;
|
|
268
|
-
};
|
|
269
|
-
|
|
270
|
-
export const RequestInputToolUI: ToolCallMessagePartComponent<
|
|
271
|
-
RequestInputArgs,
|
|
272
|
-
unknown
|
|
273
|
-
> = function RequestInputUI({ toolCallId, args, result }) {
|
|
274
|
-
const submitInput = useAdkSubmitInput();
|
|
275
|
-
|
|
276
|
-
if (result !== undefined) {
|
|
277
|
-
return <p>Answered: {String(result)}</p>;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
return (
|
|
281
|
-
<form
|
|
282
|
-
onSubmit={(e) => {
|
|
283
|
-
e.preventDefault();
|
|
284
|
-
const value = (
|
|
285
|
-
e.currentTarget.elements.namedItem("answer") as HTMLInputElement
|
|
286
|
-
).value;
|
|
287
|
-
submitInput(toolCallId, value);
|
|
288
|
-
}}
|
|
289
|
-
>
|
|
290
|
-
<p>{args.message ?? "Please provide input:"}</p>
|
|
291
|
-
<input name="answer" autoFocus />
|
|
292
|
-
<button type="submit">Submit</button>
|
|
293
|
-
</form>
|
|
294
|
-
);
|
|
295
|
-
};
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
</Tab>
|
|
299
|
-
<Tab value="React Native">
|
|
300
|
-
|
|
301
|
-
```tsx
|
|
302
|
-
import type { ToolCallMessagePartComponent } from "@assistant-ui/react-native";
|
|
303
|
-
import { useAdkSubmitInput } from "@assistant-ui/react-google-adk";
|
|
304
|
-
import { useState } from "react";
|
|
305
|
-
import { Pressable, Text, TextInput, View } from "react-native";
|
|
306
|
-
|
|
307
|
-
type RequestInputArgs = {
|
|
308
|
-
interrupt_id?: string;
|
|
309
|
-
message?: string;
|
|
310
|
-
payload?: unknown;
|
|
311
|
-
response_schema?: unknown;
|
|
312
|
-
};
|
|
313
|
-
|
|
314
|
-
export const RequestInputToolUI: ToolCallMessagePartComponent<
|
|
315
|
-
RequestInputArgs,
|
|
316
|
-
unknown
|
|
317
|
-
> = function RequestInputUI({ toolCallId, args, result }) {
|
|
318
|
-
const submitInput = useAdkSubmitInput();
|
|
319
|
-
const [value, setValue] = useState("");
|
|
320
|
-
|
|
321
|
-
if (result !== undefined) {
|
|
322
|
-
return <Text>Answered: {String(result)}</Text>;
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
return (
|
|
326
|
-
<View>
|
|
327
|
-
<Text>{args.message ?? "Please provide input:"}</Text>
|
|
328
|
-
<TextInput value={value} onChangeText={setValue} autoFocus />
|
|
329
|
-
<Pressable onPress={() => submitInput(toolCallId, value)}>
|
|
330
|
-
<Text>Submit</Text>
|
|
331
|
-
</Pressable>
|
|
332
|
-
</View>
|
|
333
|
-
);
|
|
334
|
-
};
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
</Tab>
|
|
338
|
-
<Tab value="React Ink">
|
|
339
|
-
|
|
340
|
-
```tsx
|
|
341
|
-
import type { ToolCallMessagePartComponent } from "@assistant-ui/react-ink";
|
|
342
|
-
import { useAdkSubmitInput } from "@assistant-ui/react-google-adk";
|
|
343
|
-
import { useState } from "react";
|
|
344
|
-
import { Box, Text, useInput } from "ink";
|
|
345
|
-
|
|
346
|
-
type RequestInputArgs = {
|
|
347
|
-
interrupt_id?: string;
|
|
348
|
-
message?: string;
|
|
349
|
-
payload?: unknown;
|
|
350
|
-
response_schema?: unknown;
|
|
351
|
-
};
|
|
352
|
-
|
|
353
|
-
export const RequestInputToolUI: ToolCallMessagePartComponent<
|
|
354
|
-
RequestInputArgs,
|
|
355
|
-
unknown
|
|
356
|
-
> = function RequestInputUI({ toolCallId, args, result }) {
|
|
357
|
-
const submitInput = useAdkSubmitInput();
|
|
358
|
-
const [value, setValue] = useState("");
|
|
359
|
-
|
|
360
|
-
useInput((input, key) => {
|
|
361
|
-
if (result !== undefined) return;
|
|
362
|
-
if (key.return) submitInput(toolCallId, value);
|
|
363
|
-
else if (key.backspace || key.delete) setValue((text) => text.slice(0, -1));
|
|
364
|
-
else if (input) setValue((text) => text + input);
|
|
365
|
-
});
|
|
366
|
-
|
|
367
|
-
if (result !== undefined) {
|
|
368
|
-
return <Text>Answered: {String(result)}</Text>;
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
return (
|
|
372
|
-
<Box flexDirection="column">
|
|
373
|
-
<Text>{args.message ?? "Please provide input:"}</Text>
|
|
374
|
-
<Text>{value}</Text>
|
|
375
|
-
<Text dimColor>Press enter to submit.</Text>
|
|
376
|
-
</Box>
|
|
377
|
-
);
|
|
378
|
-
};
|
|
379
|
-
```
|
|
380
|
-
|
|
381
|
-
</Tab>
|
|
382
|
-
</PlatformTabs>
|
|
383
|
-
|
|
384
|
-
Register the renderer with a backend toolkit entry inside `AssistantRuntimeProvider`:
|
|
385
|
-
|
|
386
|
-
<PlatformTabs>
|
|
387
|
-
<Tab value="React">
|
|
388
|
-
|
|
389
|
-
```tsx
|
|
390
|
-
import {
|
|
391
|
-
AssistantRuntimeProvider,
|
|
392
|
-
AuiConfig,
|
|
393
|
-
defineToolkit,
|
|
394
|
-
Tools,
|
|
395
|
-
} from "@assistant-ui/react";
|
|
396
|
-
import {
|
|
397
|
-
createAdkStream,
|
|
398
|
-
useAdkRuntime,
|
|
399
|
-
} from "@assistant-ui/react-google-adk";
|
|
400
|
-
import { Thread } from "@/components/assistant-ui/thread";
|
|
401
|
-
|
|
402
|
-
const toolkit = defineToolkit({
|
|
403
|
-
adk_request_input: {
|
|
404
|
-
type: "backend",
|
|
405
|
-
render: RequestInputToolUI,
|
|
406
|
-
},
|
|
407
|
-
});
|
|
408
|
-
|
|
409
|
-
function App() {
|
|
410
|
-
const runtime = useAdkRuntime({
|
|
411
|
-
stream: createAdkStream({ api: "/api/chat" }),
|
|
412
|
-
});
|
|
413
|
-
const config = AuiConfig({ tools: Tools({ toolkit }) });
|
|
414
|
-
return (
|
|
415
|
-
<AssistantRuntimeProvider runtime={runtime} config={config}>
|
|
416
|
-
<Thread />
|
|
417
|
-
</AssistantRuntimeProvider>
|
|
418
|
-
);
|
|
419
|
-
}
|
|
420
|
-
```
|
|
421
|
-
|
|
422
|
-
</Tab>
|
|
423
|
-
<Tab value="React Native">
|
|
424
|
-
|
|
425
|
-
```tsx
|
|
426
|
-
import {
|
|
427
|
-
AssistantRuntimeProvider,
|
|
428
|
-
AuiConfig,
|
|
429
|
-
defineToolkit,
|
|
430
|
-
Tools,
|
|
431
|
-
} from "@assistant-ui/react-native";
|
|
432
|
-
import {
|
|
433
|
-
createAdkStream,
|
|
434
|
-
useAdkRuntime,
|
|
435
|
-
} from "@assistant-ui/react-google-adk";
|
|
436
|
-
import { View } from "react-native";
|
|
437
|
-
import { Thread } from "@/components/assistant-ui/thread";
|
|
438
|
-
|
|
439
|
-
const API_URL = process.env.EXPO_PUBLIC_API_URL ?? "http://localhost:3000";
|
|
440
|
-
|
|
441
|
-
const toolkit = defineToolkit({
|
|
442
|
-
adk_request_input: {
|
|
443
|
-
type: "backend",
|
|
444
|
-
render: RequestInputToolUI,
|
|
445
|
-
},
|
|
446
|
-
});
|
|
447
|
-
|
|
448
|
-
function App() {
|
|
449
|
-
const runtime = useAdkRuntime({
|
|
450
|
-
stream: createAdkStream({ api: `${API_URL}/api/chat` }),
|
|
451
|
-
});
|
|
452
|
-
const config = AuiConfig({ tools: Tools({ toolkit }) });
|
|
453
|
-
return (
|
|
454
|
-
<AssistantRuntimeProvider runtime={runtime} config={config}>
|
|
455
|
-
<View style={{ flex: 1 }}>
|
|
456
|
-
<Thread />
|
|
457
|
-
</View>
|
|
458
|
-
</AssistantRuntimeProvider>
|
|
459
|
-
);
|
|
460
|
-
}
|
|
461
|
-
```
|
|
462
|
-
|
|
463
|
-
</Tab>
|
|
464
|
-
<Tab value="React Ink">
|
|
465
|
-
|
|
466
|
-
```tsx
|
|
467
|
-
import {
|
|
468
|
-
AssistantRuntimeProvider,
|
|
469
|
-
AuiConfig,
|
|
470
|
-
defineToolkit,
|
|
471
|
-
Tools,
|
|
472
|
-
} from "@assistant-ui/react-ink";
|
|
473
|
-
import {
|
|
474
|
-
createAdkStream,
|
|
475
|
-
useAdkRuntime,
|
|
476
|
-
} from "@assistant-ui/react-google-adk";
|
|
477
|
-
import { Box } from "ink";
|
|
478
|
-
import { Thread } from "./components/thread.js";
|
|
479
|
-
|
|
480
|
-
const toolkit = defineToolkit({
|
|
481
|
-
adk_request_input: {
|
|
482
|
-
type: "backend",
|
|
483
|
-
render: RequestInputToolUI,
|
|
484
|
-
},
|
|
485
|
-
});
|
|
486
|
-
|
|
487
|
-
function App() {
|
|
488
|
-
const runtime = useAdkRuntime({
|
|
489
|
-
stream: createAdkStream({ api: "http://localhost:3000/api/chat" }),
|
|
490
|
-
});
|
|
491
|
-
const config = AuiConfig({ tools: Tools({ toolkit }) });
|
|
492
|
-
return (
|
|
493
|
-
<AssistantRuntimeProvider runtime={runtime} config={config}>
|
|
494
|
-
<Box flexDirection="column">
|
|
495
|
-
<Thread />
|
|
496
|
-
</Box>
|
|
497
|
-
</AssistantRuntimeProvider>
|
|
498
|
-
);
|
|
499
|
-
}
|
|
500
|
-
```
|
|
501
|
-
|
|
502
|
-
</Tab>
|
|
503
|
-
</PlatformTabs>
|
|
504
|
-
|
|
505
|
-
<Callout type="info">
|
|
506
|
-
`adk_request_input` is emitted only by ADK Python 2.0+ Workflow `RequestInput` nodes; ADK JS has no equivalent. Always respond via a tool UI with `useAdkSubmitInput`. HITL interrupts are automatically exempt from `autoCancelPendingToolCalls`, so typing a normal message in the composer will not overwrite the pending interrupt.
|
|
507
|
-
</Callout>
|
|
508
|
-
|
|
509
|
-
`useAdkSubmitInput` is sugar over the generic `addResult`. If you prefer, call `addResult({ result: value })` from inside the render function directly. The `{ result }` wrapper is required either way: the adapter JSON-stringifies the value before sending, and ADK's `unwrap_response` unwraps it on the backend before the Workflow node resumes.
|
|
510
|
-
|
|
511
|
-
## Artifacts
|
|
512
|
-
|
|
513
|
-
Track file artifacts created or modified by the agent:
|
|
514
|
-
|
|
515
|
-
```ts
|
|
516
|
-
import { useAdkArtifacts } from "@assistant-ui/react-google-adk";
|
|
517
|
-
|
|
518
|
-
function ArtifactList() {
|
|
519
|
-
const artifacts = useAdkArtifacts();
|
|
520
|
-
// Record<string, number> — filename to version number
|
|
521
|
-
}
|
|
522
|
-
```
|
|
523
|
-
|
|
524
|
-
### Artifact fetching
|
|
525
|
-
|
|
526
|
-
When using `createAdkSessionAdapter` (see [api reference](/docs/runtimes/google-adk/api#direct-adk-server-connection)), the returned `artifacts` object provides functions to fetch artifact content from the ADK server:
|
|
527
|
-
|
|
528
|
-
```ts
|
|
529
|
-
const { artifacts } = createAdkSessionAdapter({ apiUrl, appName, userId });
|
|
530
|
-
|
|
531
|
-
// List all artifact filenames in a session
|
|
532
|
-
const filenames = await artifacts.list(sessionId);
|
|
533
|
-
|
|
534
|
-
// Load artifact content (latest version)
|
|
535
|
-
const data = await artifacts.load(sessionId, "document.pdf");
|
|
536
|
-
// data.inlineData?.data — base64 content
|
|
537
|
-
// data.inlineData?.mimeType — MIME type
|
|
538
|
-
// data.text — text content (if text artifact)
|
|
539
|
-
|
|
540
|
-
// Load a specific version
|
|
541
|
-
const v1 = await artifacts.load(sessionId, "document.pdf", 1);
|
|
542
|
-
|
|
543
|
-
// List all versions
|
|
544
|
-
const versions = await artifacts.listVersions(sessionId, "document.pdf");
|
|
545
|
-
|
|
546
|
-
// Delete an artifact
|
|
547
|
-
await artifacts.delete(sessionId, "document.pdf");
|
|
548
|
-
```
|
|
549
|
-
|
|
550
|
-
## Escalation
|
|
551
|
-
|
|
552
|
-
Detect when an agent requests escalation to a human operator:
|
|
553
|
-
|
|
554
|
-
<PlatformTabs>
|
|
555
|
-
<Tab value="React">
|
|
556
|
-
|
|
557
|
-
```tsx
|
|
558
|
-
import { useAdkEscalation } from "@assistant-ui/react-google-adk";
|
|
559
|
-
|
|
560
|
-
function EscalationBanner() {
|
|
561
|
-
const escalated = useAdkEscalation();
|
|
562
|
-
if (!escalated) return null;
|
|
563
|
-
return <div>Agent has requested human assistance.</div>;
|
|
564
|
-
}
|
|
565
|
-
```
|
|
566
|
-
|
|
567
|
-
</Tab>
|
|
568
|
-
<Tab value="React Native">
|
|
569
|
-
|
|
570
|
-
```tsx
|
|
571
|
-
import { useAdkEscalation } from "@assistant-ui/react-google-adk";
|
|
572
|
-
import { Text } from "react-native";
|
|
573
|
-
|
|
574
|
-
function EscalationBanner() {
|
|
575
|
-
const escalated = useAdkEscalation();
|
|
576
|
-
if (!escalated) return null;
|
|
577
|
-
return <Text>Agent has requested human assistance.</Text>;
|
|
578
|
-
}
|
|
579
|
-
```
|
|
580
|
-
|
|
581
|
-
</Tab>
|
|
582
|
-
<Tab value="React Ink">
|
|
583
|
-
|
|
584
|
-
```tsx
|
|
585
|
-
import { useAdkEscalation } from "@assistant-ui/react-google-adk";
|
|
586
|
-
import { Text } from "ink";
|
|
587
|
-
|
|
588
|
-
function EscalationBanner() {
|
|
589
|
-
const escalated = useAdkEscalation();
|
|
590
|
-
if (!escalated) return null;
|
|
591
|
-
return <Text>Agent has requested human assistance.</Text>;
|
|
592
|
-
}
|
|
593
|
-
```
|
|
594
|
-
|
|
595
|
-
</Tab>
|
|
596
|
-
</PlatformTabs>
|
|
597
|
-
|
|
598
|
-
## Long-running tools
|
|
599
|
-
|
|
600
|
-
Track tools that are executing asynchronously and awaiting external input:
|
|
601
|
-
|
|
602
|
-
<PlatformTabs>
|
|
603
|
-
<Tab value="React">
|
|
604
|
-
|
|
605
|
-
```tsx
|
|
606
|
-
import { useAdkLongRunningToolIds } from "@assistant-ui/react-google-adk";
|
|
607
|
-
|
|
608
|
-
function PendingToolsIndicator() {
|
|
609
|
-
const pendingToolIds = useAdkLongRunningToolIds();
|
|
610
|
-
if (pendingToolIds.length === 0) return null;
|
|
611
|
-
return <div>{pendingToolIds.length} tool(s) awaiting input</div>;
|
|
612
|
-
}
|
|
613
|
-
```
|
|
614
|
-
|
|
615
|
-
</Tab>
|
|
616
|
-
<Tab value="React Native">
|
|
617
|
-
|
|
618
|
-
```tsx
|
|
619
|
-
import { useAdkLongRunningToolIds } from "@assistant-ui/react-google-adk";
|
|
620
|
-
import { Text } from "react-native";
|
|
621
|
-
|
|
622
|
-
function PendingToolsIndicator() {
|
|
623
|
-
const pendingToolIds = useAdkLongRunningToolIds();
|
|
624
|
-
if (pendingToolIds.length === 0) return null;
|
|
625
|
-
return <Text>{pendingToolIds.length} tool(s) awaiting input</Text>;
|
|
626
|
-
}
|
|
627
|
-
```
|
|
628
|
-
|
|
629
|
-
</Tab>
|
|
630
|
-
<Tab value="React Ink">
|
|
631
|
-
|
|
632
|
-
```tsx
|
|
633
|
-
import { useAdkLongRunningToolIds } from "@assistant-ui/react-google-adk";
|
|
634
|
-
import { Text } from "ink";
|
|
635
|
-
|
|
636
|
-
function PendingToolsIndicator() {
|
|
637
|
-
const pendingToolIds = useAdkLongRunningToolIds();
|
|
638
|
-
if (pendingToolIds.length === 0) return null;
|
|
639
|
-
return <Text>{pendingToolIds.length} tool(s) awaiting input</Text>;
|
|
640
|
-
}
|
|
641
|
-
```
|
|
642
|
-
|
|
643
|
-
</Tab>
|
|
644
|
-
</PlatformTabs>
|
|
645
|
-
|
|
646
|
-
This hook reports every tool call ADK marked via `long_running_tool_ids`, including HITL interrupts. To respond to a specific HITL type, see [tool confirmations](#tool-confirmations), [auth requests](#auth-requests), or [input requests](#input-requests).
|
|
647
|
-
|
|
648
|
-
## Per-message metadata
|
|
649
|
-
|
|
650
|
-
Access grounding, citation, and token usage metadata per message:
|
|
651
|
-
|
|
652
|
-
```ts
|
|
653
|
-
import { useAdkMessageMetadata } from "@assistant-ui/react-google-adk";
|
|
654
|
-
|
|
655
|
-
function MessageMetadata({ messageId }: { messageId: string }) {
|
|
656
|
-
const metadataMap = useAdkMessageMetadata();
|
|
657
|
-
const meta = metadataMap.get(messageId);
|
|
658
|
-
// meta?.groundingMetadata — Google Search grounding sources
|
|
659
|
-
// meta?.citationMetadata — citation references
|
|
660
|
-
// meta?.usageMetadata — token counts
|
|
661
|
-
}
|
|
662
|
-
```
|
|
663
|
-
|
|
664
|
-
## Session state by scope
|
|
665
|
-
|
|
666
|
-
ADK uses key prefixes to scope state. These helpers filter and strip the prefix:
|
|
667
|
-
|
|
668
|
-
```ts
|
|
669
|
-
import {
|
|
670
|
-
useAdkAppState,
|
|
671
|
-
useAdkUserState,
|
|
672
|
-
useAdkTempState,
|
|
673
|
-
} from "@assistant-ui/react-google-adk";
|
|
674
|
-
|
|
675
|
-
function StateDebug() {
|
|
676
|
-
const appState = useAdkAppState(); // app:* keys (app-level, shared)
|
|
677
|
-
const userState = useAdkUserState(); // user:* keys (user-level)
|
|
678
|
-
const tempState = useAdkTempState(); // temp:* keys (not persisted)
|
|
679
|
-
}
|
|
680
|
-
```
|
|
681
|
-
|
|
682
|
-
Use `useAdkSessionState()` for the full unfiltered state delta.
|
|
683
|
-
|
|
684
|
-
## Structured events
|
|
685
|
-
|
|
686
|
-
Convert raw ADK events into typed, structured events for custom renderers:
|
|
687
|
-
|
|
688
|
-
```ts
|
|
689
|
-
import {
|
|
690
|
-
toAdkStructuredEvents,
|
|
691
|
-
AdkEventType,
|
|
692
|
-
type AdkStructuredEvent,
|
|
693
|
-
} from "@assistant-ui/react-google-adk";
|
|
694
|
-
|
|
695
|
-
const structured = toAdkStructuredEvents(event);
|
|
696
|
-
for (const e of structured) {
|
|
697
|
-
switch (e.type) {
|
|
698
|
-
case AdkEventType.CONTENT:
|
|
699
|
-
console.log("Text:", e.content);
|
|
700
|
-
break;
|
|
701
|
-
case AdkEventType.THOUGHT:
|
|
702
|
-
console.log("Reasoning:", e.content);
|
|
703
|
-
break;
|
|
704
|
-
case AdkEventType.TOOL_CALL:
|
|
705
|
-
console.log("Tool:", e.call.name, e.call.args);
|
|
706
|
-
break;
|
|
707
|
-
case AdkEventType.ERROR:
|
|
708
|
-
console.error(e.errorMessage);
|
|
709
|
-
break;
|
|
710
|
-
}
|
|
711
|
-
}
|
|
712
|
-
```
|
|
713
|
-
|
|
714
|
-
## Hooks reference
|
|
715
|
-
|
|
716
|
-
| Hook | Description |
|
|
717
|
-
| --- | --- |
|
|
718
|
-
| `useAdkAgentInfo()` | Current agent name and branch path. |
|
|
719
|
-
| `useAdkSessionState()` | Full accumulated session state delta. |
|
|
720
|
-
| `useAdkAppState()` | App-level state (`app:*` prefix, stripped). |
|
|
721
|
-
| `useAdkUserState()` | User-level state (`user:*` prefix, stripped). |
|
|
722
|
-
| `useAdkTempState()` | Temp state (`temp:*` prefix, stripped, not persisted). |
|
|
723
|
-
| `useAdkSend()` | Send raw ADK messages. |
|
|
724
|
-
| `useAdkConfirmTool()` | Confirm or deny a pending tool confirmation. |
|
|
725
|
-
| `useAdkSubmitAuth()` | Submit auth credentials for a pending auth request. |
|
|
726
|
-
| `useAdkSubmitInput()` | Submit the user's answer for a pending `adk_request_input` HITL interrupt. |
|
|
727
|
-
| `useAdkToolConfirmations()` | Pending tool confirmation requests. |
|
|
728
|
-
| `useAdkAuthRequests()` | Pending auth credential requests. |
|
|
729
|
-
| `useAdkLongRunningToolIds()` | IDs of long-running tools awaiting input. |
|
|
730
|
-
| `useAdkArtifacts()` | Artifact delta (filename → version). |
|
|
731
|
-
| `useAdkEscalation()` | Whether escalation was requested. |
|
|
732
|
-
| `useAdkMessageMetadata()` | Per-message grounding, citation, and usage metadata. |
|
|
733
|
-
|
|
734
|
-
## Feature support
|
|
735
|
-
|
|
736
|
-
| Feature | Status |
|
|
737
|
-
| --- | --- |
|
|
738
|
-
| Streaming text (SSE) | Supported |
|
|
739
|
-
| Tool calls and results | Supported |
|
|
740
|
-
| Tool confirmations (`useAdkConfirmTool`) | Supported |
|
|
741
|
-
| Auth credential flow (`useAdkSubmitAuth`) | Supported |
|
|
742
|
-
| Workflow input requests (`useAdkSubmitInput`, ADK Python 2.0+) | Supported |
|
|
743
|
-
| Multi-agent (author and branch tracking) | Supported |
|
|
744
|
-
| Agent transfer events | Supported |
|
|
745
|
-
| Escalation detection | Supported |
|
|
746
|
-
| Chain-of-thought / reasoning | Supported |
|
|
747
|
-
| Code execution (executableCode + result) | Supported |
|
|
748
|
-
| Inline images and file data | Supported |
|
|
749
|
-
| Session state delta + scoped state | Supported |
|
|
750
|
-
| Artifact delta tracking + fetching | Supported |
|
|
751
|
-
| Long-running tools (HITL) | Supported |
|
|
752
|
-
| Grounding / citation / usage metadata | Supported |
|
|
753
|
-
| Structured events (`toAdkStructuredEvents`) | Supported |
|
|
754
|
-
| Typed `AdkRunConfig` | Supported |
|
|
755
|
-
| Client → server `stateDelta` | Supported |
|
|
756
|
-
| `finishReason` mapping (17 values) | Supported |
|
|
757
|
-
| `interrupted` event handling | Supported |
|
|
758
|
-
| Snake_case events (Python ADK) | Supported |
|
|
759
|
-
| Cloud thread persistence | Supported |
|
|
760
|
-
| ADK session-backed thread persistence | Supported |
|
|
761
|
-
| Direct ADK server connection (no proxy) | Supported |
|
|
762
|
-
| One-liner API route (`createAdkApiRoute`) | Supported |
|
|
763
|
-
| Message editing and regeneration | Supported |
|
|
764
|
-
| Automatic tool invocations | Supported |
|
|
765
|
-
|
|
766
|
-
## Related
|
|
767
|
-
|
|
768
|
-
<Cards>
|
|
769
|
-
<Card
|
|
770
|
-
title="API reference"
|
|
771
|
-
description="createAdkStream, server helpers, session adapter, threads."
|
|
772
|
-
href="/docs/runtimes/google-adk/api"
|
|
773
|
-
/>
|
|
774
|
-
<Card
|
|
775
|
-
title="Quickstart"
|
|
776
|
-
description="Minimal API route + client setup."
|
|
777
|
-
href="/docs/runtimes/google-adk/quickstart"
|
|
778
|
-
/>
|
|
779
|
-
<Card
|
|
780
|
-
title="Adapters"
|
|
781
|
-
description="Attachments, speech, feedback, history, threads."
|
|
782
|
-
href="/docs/runtimes/concepts/adapters"
|
|
783
|
-
/>
|
|
784
|
-
</Cards>
|