@assistant-ui/mcp-docs-server 0.1.30 → 0.1.32

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