@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,533 @@
1
+ ---
2
+ title: LangChain React Runtime
3
+ description: Use LangChain's useStream hook with a React chat UI through assistant-ui — a lighter LangGraph adapter that delegates streaming to @langchain/react.
4
+ ---
5
+
6
+ import { LangGraphIcon } from "@/components/icons/langgraph";
7
+
8
+ `@assistant-ui/react-langchain` wraps [`useStream`](https://docs.langchain.com/oss/javascript/langgraph-sdk/react-stream) from `@langchain/react` and exposes it as an assistant-ui runtime. It targets the same backend as [`@assistant-ui/react-langgraph`](/docs/runtimes/langgraph) (LangGraph Cloud) but at a higher level, delegating stream plumbing to the upstream hook.
9
+
10
+ ## When to use it
11
+
12
+ Pick `react-langchain` over `react-langgraph` when:
13
+
14
+ - Your app already depends on `@langchain/react` and uses `useStream` elsewhere.
15
+ - You want to read custom state keys (`todos`, `files`, plans) reactively with `useLangChainState<T>(key)`.
16
+ - You prefer a thin wrapper that stays pinned to upstream behavior.
17
+
18
+ Pick `react-langgraph` instead when:
19
+
20
+ - You are scaffolding via `npx create-assistant-ui -t langgraph` (the template uses it).
21
+ - You need subgraph events, generative UI messages, message metadata, or end-to-end cancellation today.
22
+
23
+ Both adapters are first-class. `react-langchain` is newer and thinner; some features have not been ported yet (the [comparison](#comparison-with-react-langgraph) below has the full table).
24
+
25
+ ## Architecture
26
+
27
+ `@assistant-ui/react-langchain` is layered on `ExternalStoreRuntime` (see [architecture](/docs/runtimes/concepts/architecture)). Graph state is the source of truth; the runtime renders messages from `state.values.messages` and submits user input back to the graph.
28
+
29
+ Shared adapters (attachments, speech, feedback) work the same way described in [adapters](/docs/runtimes/concepts/adapters). Cloud thread persistence is built in.
30
+
31
+ ## Requirements
32
+
33
+ - A LangGraph Cloud API server (locally via [LangGraph Studio](https://github.com/langchain-ai/langgraph-studio) or hosted via [LangSmith](https://www.langchain.com/langsmith)).
34
+ - The graph state must include a `messages` key with LangChain-alike messages, or pass a custom `messagesKey`.
35
+
36
+ ## Quickstart
37
+
38
+ <Steps>
39
+ <Step>
40
+
41
+ ### Install dependencies
42
+
43
+ <PlatformTabs>
44
+ <Tab value="React">
45
+
46
+ <InstallCommand npm={["@assistant-ui/react", "@assistant-ui/react-langchain", "@langchain/react", "@langchain/langgraph-sdk"]} />
47
+
48
+ </Tab>
49
+ <Tab value="React Native">
50
+
51
+ <InstallCommand expo={["@assistant-ui/react-native", "@assistant-ui/react-langchain", "@langchain/react", "@langchain/langgraph-sdk"]} />
52
+
53
+ </Tab>
54
+ <Tab value="React Ink">
55
+
56
+ <InstallCommand npm={["@assistant-ui/react-ink", "@assistant-ui/react-langchain", "@langchain/react", "@langchain/langgraph-sdk", "ink", "react"]} />
57
+
58
+ </Tab>
59
+ </PlatformTabs>
60
+
61
+ </Step>
62
+ <Step>
63
+
64
+ ### Define the assistant component
65
+
66
+ <PlatformTabs>
67
+ <Tab value="React">
68
+
69
+ ```tsx title="@/components/MyAssistant.tsx"
70
+ "use client";
71
+
72
+ import { Thread } from "@/components/assistant-ui/thread";
73
+ import { AssistantRuntimeProvider } from "@assistant-ui/react";
74
+ import { useStreamRuntime } from "@assistant-ui/react-langchain";
75
+
76
+ export function MyAssistant() {
77
+ const runtime = useStreamRuntime({
78
+ assistantId: process.env["NEXT_PUBLIC_LANGGRAPH_ASSISTANT_ID"]!,
79
+ apiUrl: process.env["NEXT_PUBLIC_LANGGRAPH_API_URL"],
80
+ });
81
+
82
+ return (
83
+ <AssistantRuntimeProvider runtime={runtime}>
84
+ <Thread />
85
+ </AssistantRuntimeProvider>
86
+ );
87
+ }
88
+ ```
89
+
90
+ </Tab>
91
+ <Tab value="React Native">
92
+
93
+ ```tsx title="components/MyAssistant.tsx"
94
+ import { Thread } from "@/components/assistant-ui/thread";
95
+ import { AssistantRuntimeProvider } from "@assistant-ui/react-native";
96
+ import { useStreamRuntime } from "@assistant-ui/react-langchain";
97
+
98
+ export function MyAssistant() {
99
+ const runtime = useStreamRuntime({
100
+ assistantId: process.env.EXPO_PUBLIC_LANGGRAPH_ASSISTANT_ID!,
101
+ apiUrl: process.env.EXPO_PUBLIC_LANGGRAPH_API_URL,
102
+ });
103
+
104
+ return (
105
+ <AssistantRuntimeProvider runtime={runtime}>
106
+ <Thread />
107
+ </AssistantRuntimeProvider>
108
+ );
109
+ }
110
+ ```
111
+
112
+ </Tab>
113
+ <Tab value="React Ink">
114
+
115
+ ```tsx title="components/MyAssistant.tsx"
116
+ import { Thread } from "./thread.js";
117
+ import { AssistantRuntimeProvider } from "@assistant-ui/react-ink";
118
+ import { useStreamRuntime } from "@assistant-ui/react-langchain";
119
+
120
+ export function MyAssistant() {
121
+ const runtime = useStreamRuntime({
122
+ assistantId: process.env.LANGGRAPH_ASSISTANT_ID!,
123
+ apiUrl: process.env.LANGGRAPH_API_URL,
124
+ });
125
+
126
+ return (
127
+ <AssistantRuntimeProvider runtime={runtime}>
128
+ <Thread />
129
+ </AssistantRuntimeProvider>
130
+ );
131
+ }
132
+ ```
133
+
134
+ </Tab>
135
+ </PlatformTabs>
136
+
137
+ </Step>
138
+ <Step>
139
+
140
+ ### Mount the component
141
+
142
+ <PlatformTabs>
143
+ <Tab value="React">
144
+
145
+ ```tsx title="@/app/page.tsx"
146
+ import { MyAssistant } from "@/components/MyAssistant";
147
+
148
+ export default function Home() {
149
+ return (
150
+ <main className="h-dvh">
151
+ <MyAssistant />
152
+ </main>
153
+ );
154
+ }
155
+ ```
156
+
157
+ </Tab>
158
+ <Tab value="React Native">
159
+
160
+ ```tsx title="app/index.tsx"
161
+ import { View } from "react-native";
162
+ import { MyAssistant } from "@/components/MyAssistant";
163
+
164
+ export default function Home() {
165
+ return (
166
+ <View style={{ flex: 1 }}>
167
+ <MyAssistant />
168
+ </View>
169
+ );
170
+ }
171
+ ```
172
+
173
+ </Tab>
174
+ <Tab value="React Ink">
175
+
176
+ ```tsx title="app.tsx"
177
+ import { Box } from "ink";
178
+ import { MyAssistant } from "./components/MyAssistant.js";
179
+
180
+ export function App() {
181
+ return (
182
+ <Box flexDirection="column">
183
+ <MyAssistant />
184
+ </Box>
185
+ );
186
+ }
187
+ ```
188
+
189
+ </Tab>
190
+ </PlatformTabs>
191
+
192
+ </Step>
193
+ <Step>
194
+
195
+ ### Set environment variables
196
+
197
+ <PlatformTabs>
198
+ <Tab value="React">
199
+
200
+ ```sh title=".env.local"
201
+ NEXT_PUBLIC_LANGGRAPH_API_URL=http://localhost:2024
202
+ NEXT_PUBLIC_LANGGRAPH_ASSISTANT_ID=your_graph_id
203
+ ```
204
+
205
+ </Tab>
206
+ <Tab value="React Native">
207
+
208
+ ```sh title=".env"
209
+ EXPO_PUBLIC_LANGGRAPH_API_URL=http://localhost:2024
210
+ EXPO_PUBLIC_LANGGRAPH_ASSISTANT_ID=your_graph_id
211
+ ```
212
+
213
+ </Tab>
214
+ <Tab value="React Ink">
215
+
216
+ ```sh title=".env"
217
+ LANGGRAPH_API_URL=http://localhost:2024
218
+ LANGGRAPH_ASSISTANT_ID=your_graph_id
219
+ ```
220
+
221
+ </Tab>
222
+ </PlatformTabs>
223
+
224
+ </Step>
225
+ <Step>
226
+
227
+ ### Set up UI components
228
+
229
+ <PlatformTabs>
230
+ <Tab value="React">
231
+
232
+ Follow the [UI Components guide](/docs/ui/thread).
233
+
234
+ </Tab>
235
+ <Tab value="React Native">
236
+
237
+ Follow the [React Native setup](/docs/react-native).
238
+
239
+ </Tab>
240
+ <Tab value="React Ink">
241
+
242
+ Follow the [Ink setup](/docs/ink).
243
+
244
+ </Tab>
245
+ </PlatformTabs>
246
+
247
+ </Step>
248
+ </Steps>
249
+
250
+ ## `useStreamRuntime` options
251
+
252
+ `useStreamRuntime` accepts every option upstream `useStream` does, plus three assistant-ui-specific fields:
253
+
254
+ | Option | Type | Description |
255
+ | --- | --- | --- |
256
+ | `cloud` | `AssistantCloud` | Optional. Persists threads via assistant-cloud. |
257
+ | `adapters` | `{ attachments?, speech?, feedback? }` | Optional. Attachment, speech, and feedback adapters. |
258
+ | `messagesKey` | `string` | The state key that holds messages. Defaults to `"messages"`. |
259
+
260
+ ## Reading custom state keys
261
+
262
+ LangGraph agents often expose structured state beyond messages (plans, todos, scratch files, generative-UI artifacts). Read them directly with `useLangChainState`. It mirrors `useStream().values[key]` upstream and updates when the stream emits new state.
263
+
264
+ <PlatformTabs>
265
+ <Tab value="React">
266
+
267
+ ```tsx
268
+ import { useLangChainState } from "@assistant-ui/react-langchain";
269
+
270
+ type Todo = { id: string; title: string; done: boolean };
271
+
272
+ function TodoList() {
273
+ const todos = useLangChainState<Todo[]>("todos", []);
274
+ return (
275
+ <ul>
276
+ {todos.map((t) => (
277
+ <li key={t.id}>
278
+ {t.done ? "✓" : "○"} {t.title}
279
+ </li>
280
+ ))}
281
+ </ul>
282
+ );
283
+ }
284
+ ```
285
+
286
+ </Tab>
287
+ <Tab value="React Native">
288
+
289
+ ```tsx
290
+ import { useLangChainState } from "@assistant-ui/react-langchain";
291
+ import { Text, View } from "react-native";
292
+
293
+ type Todo = { id: string; title: string; done: boolean };
294
+
295
+ function TodoList() {
296
+ const todos = useLangChainState<Todo[]>("todos", []);
297
+ return (
298
+ <View>
299
+ {todos.map((t) => (
300
+ <Text key={t.id}>
301
+ {t.done ? "✓" : "○"} {t.title}
302
+ </Text>
303
+ ))}
304
+ </View>
305
+ );
306
+ }
307
+ ```
308
+
309
+ </Tab>
310
+ <Tab value="React Ink">
311
+
312
+ ```tsx
313
+ import { useLangChainState } from "@assistant-ui/react-langchain";
314
+ import { Box, Text } from "ink";
315
+
316
+ type Todo = { id: string; title: string; done: boolean };
317
+
318
+ function TodoList() {
319
+ const todos = useLangChainState<Todo[]>("todos", []);
320
+ return (
321
+ <Box flexDirection="column">
322
+ {todos.map((t) => (
323
+ <Text key={t.id}>
324
+ {t.done ? "✓" : "○"} {t.title}
325
+ </Text>
326
+ ))}
327
+ </Box>
328
+ );
329
+ }
330
+ ```
331
+
332
+ </Tab>
333
+ </PlatformTabs>
334
+
335
+ Signatures:
336
+
337
+ ```ts
338
+ useLangChainState<T>(key: string): T | undefined;
339
+ useLangChainState<T>(key: string, defaultValue: T): T;
340
+ ```
341
+
342
+ Useful with the [`deepagents`](https://docs.langchain.com/oss/python/deepagents) middleware, whose `write_todos` step updates `state.todos` alongside the tool-call stream. Reading the state key directly avoids reconstructing the list from partial tool-call args.
343
+
344
+ <Callout type="info">
345
+ Added in v0.0.2 — see issue [#3862](https://github.com/assistant-ui/assistant-ui/issues/3862) for motivation.
346
+ </Callout>
347
+
348
+ ## Interrupts
349
+
350
+ LangGraph interrupts pause the graph and wait for client input. `useLangChainInterruptState` exposes the current interrupt; `useLangChainSubmit` resumes the graph with a raw state update.
351
+
352
+ <PlatformTabs>
353
+ <Tab value="React">
354
+
355
+ ```tsx
356
+ import {
357
+ useLangChainInterruptState,
358
+ useLangChainSubmit,
359
+ } from "@assistant-ui/react-langchain";
360
+ import { Command } from "@langchain/langgraph-sdk";
361
+
362
+ function InterruptPrompt() {
363
+ const interrupt = useLangChainInterruptState();
364
+ const submit = useLangChainSubmit();
365
+ if (!interrupt) return null;
366
+ return (
367
+ <div>
368
+ <pre>{JSON.stringify(interrupt.value, null, 2)}</pre>
369
+ <button
370
+ onClick={() =>
371
+ submit(null, { command: new Command({ resume: "approved" }) })
372
+ }
373
+ >
374
+ Approve
375
+ </button>
376
+ </div>
377
+ );
378
+ }
379
+ ```
380
+
381
+ </Tab>
382
+ <Tab value="React Native">
383
+
384
+ ```tsx
385
+ import {
386
+ useLangChainInterruptState,
387
+ useLangChainSubmit,
388
+ } from "@assistant-ui/react-langchain";
389
+ import { Command } from "@langchain/langgraph-sdk";
390
+ import { Pressable, Text, View } from "react-native";
391
+
392
+ function InterruptPrompt() {
393
+ const interrupt = useLangChainInterruptState();
394
+ const submit = useLangChainSubmit();
395
+ if (!interrupt) return null;
396
+ return (
397
+ <View>
398
+ <Text>{JSON.stringify(interrupt.value, null, 2)}</Text>
399
+ <Pressable
400
+ onPress={() =>
401
+ submit(null, { command: new Command({ resume: "approved" }) })
402
+ }
403
+ >
404
+ <Text>Approve</Text>
405
+ </Pressable>
406
+ </View>
407
+ );
408
+ }
409
+ ```
410
+
411
+ </Tab>
412
+ <Tab value="React Ink">
413
+
414
+ ```tsx
415
+ import {
416
+ useLangChainInterruptState,
417
+ useLangChainSubmit,
418
+ } from "@assistant-ui/react-langchain";
419
+ import { Command } from "@langchain/langgraph-sdk";
420
+ import { Box, Text, useInput } from "ink";
421
+
422
+ function InterruptPrompt() {
423
+ const interrupt = useLangChainInterruptState();
424
+ const submit = useLangChainSubmit();
425
+
426
+ useInput((input) => {
427
+ if (!interrupt || input !== "a") return;
428
+ submit(null, { command: new Command({ resume: "approved" }) });
429
+ });
430
+
431
+ if (!interrupt) return null;
432
+ return (
433
+ <Box flexDirection="column">
434
+ <Text>{JSON.stringify(interrupt.value, null, 2)}</Text>
435
+ <Text>Press a to approve.</Text>
436
+ </Box>
437
+ );
438
+ }
439
+ ```
440
+
441
+ </Tab>
442
+ </PlatformTabs>
443
+
444
+ ## Message conversion
445
+
446
+ `convertLangChainBaseMessage` transforms a LangChain `BaseMessage` into an assistant-ui message. Use it when building a custom `ExternalStoreAdapter` that consumes LangChain messages outside `useStreamRuntime`.
447
+
448
+ ```ts
449
+ import { convertLangChainBaseMessage } from "@assistant-ui/react-langchain";
450
+ ```
451
+
452
+ ## Cloud persistence
453
+
454
+ Pass an `AssistantCloud` instance to persist threads across sessions. The runtime automatically wires thread list management and resumes state from the cloud.
455
+
456
+ ```tsx
457
+ // see "AssistantCloud" in /docs/runtimes/concepts/threads for cloud setup
458
+ const runtime = useStreamRuntime({
459
+ cloud,
460
+ assistantId: "agent",
461
+ apiUrl: "http://localhost:2024",
462
+ });
463
+ ```
464
+
465
+ ## Custom `messagesKey`
466
+
467
+ If your graph stores messages under a non-default key, pass `messagesKey` so the runtime submits tool results and human turns to the correct state slot:
468
+
469
+ ```tsx
470
+ const runtime = useStreamRuntime({
471
+ assistantId: "agent",
472
+ apiUrl: "http://localhost:2024",
473
+ messagesKey: "chat_messages",
474
+ });
475
+ ```
476
+
477
+ ## Comparison with `react-langgraph`
478
+
479
+ Both packages connect assistant-ui to LangGraph backends. They are independent adapters for different upstream libraries; one is not a successor to the other.
480
+
481
+ | Aspect | `react-langgraph` | `react-langchain` |
482
+ | --- | --- | --- |
483
+ | Wraps | `@langchain/langgraph-sdk` (raw SDK) | `@langchain/react` (`useStream` hook) |
484
+ | Age | Sept 2024 onward | April 2026 onward |
485
+ | Version | `0.13.x` | `0.0.x` |
486
+ | Lines of source | ~7,500 | ~600 |
487
+ | Built on | `useExternalStoreRuntime` | `useExternalStoreRuntime` |
488
+ | `create-assistant-ui` template | `-t langgraph` | No template yet |
489
+
490
+ ### Feature coverage
491
+
492
+ | Feature | `react-langgraph` | `react-langchain` |
493
+ | --- | --- | --- |
494
+ | Stream messages | Yes (`useLangGraphRuntime`) | Yes (`useStreamRuntime`) |
495
+ | Interrupt state | Yes | Yes |
496
+ | Send raw state update / resume command | Yes | Yes (`useLangChainSubmit`) |
497
+ | Read arbitrary custom state key | No | Yes (`useLangChainState<T>(key)`) |
498
+ | Per-message metadata (`messages-tuple`) | Yes | Not exposed |
499
+ | Generative UI messages (LangSmith) | Yes | Not exposed |
500
+ | Subgraph / namespaced stream events | Yes (via `eventHandlers`) | Not exposed |
501
+ | End-to-end cancellation primitive | Yes (`unstable_createLangGraphStream`) | Not exposed |
502
+ | Message accumulator utility | Yes (`LangGraphMessageAccumulator`) | Not exposed |
503
+ | Cloud thread persistence | Yes | Yes |
504
+
505
+ `react-langchain` is the newer, thinner wrapper. It delegates to upstream `useStream` rather than re-implementing the stream plumbing, which is why its footprint is smaller. Features absent today have not been ported, not deprecated.
506
+
507
+ ### Hook name mapping
508
+
509
+ | `react-langgraph` | `react-langchain` | Notes |
510
+ | --- | --- | --- |
511
+ | `useLangGraphRuntime` | `useStreamRuntime` | Options extend upstream `UseStreamOptions`; no `stream` / `create` / `load` to write. |
512
+ | `useLangGraphInterruptState` | `useLangChainInterruptState` | Same return shape. |
513
+ | `useLangGraphSendCommand` | `useLangChainSubmit` | `submit(values, { command })` replaces the dedicated hook. |
514
+ | `useLangGraphSend` | _(use `runtime.thread.append`)_ | No direct equivalent; send turns through the runtime. |
515
+ | `useLangGraphMessageMetadata` | _(not available)_ | Open an issue if you rely on this. |
516
+ | `useLangGraphUIMessages` | _(not available)_ | Open an issue if you rely on this. |
517
+ | _(none)_ | `useLangChainState<T>(key)` | New — reads any custom state key reactively. |
518
+
519
+ ## Related
520
+
521
+ <Cards>
522
+ <Card
523
+ icon={<LangGraphIcon width={20} height={20} className="text-[#1C3C3C] dark:text-[#5b9595]" />}
524
+ title="LangGraph"
525
+ description="The full-featured adapter with subgraph events, UI messages, metadata."
526
+ href="/docs/runtimes/langgraph"
527
+ />
528
+ <Card
529
+ title="ExternalStoreRuntime"
530
+ description="The core runtime react-langchain is built on."
531
+ href="/docs/runtimes/custom/external-store"
532
+ />
533
+ </Cards>