@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.
Files changed (459) hide show
  1. package/README.md +16 -43
  2. package/dist/index.d.ts +2 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -91
  5. package/dist/index.js.map +1 -1
  6. package/dist/proxy.d.ts +9 -0
  7. package/dist/proxy.d.ts.map +1 -0
  8. package/dist/proxy.js +76 -0
  9. package/dist/proxy.js.map +1 -0
  10. package/package.json +9 -13
  11. package/src/index.ts +3 -115
  12. package/src/proxy.test.ts +250 -0
  13. package/src/proxy.ts +111 -0
  14. package/.docs/organized/code-examples/waterfall.md +0 -807
  15. package/.docs/organized/code-examples/with-a2a.md +0 -674
  16. package/.docs/organized/code-examples/with-ag-ui.md +0 -552
  17. package/.docs/organized/code-examples/with-ai-sdk-v7.md +0 -465
  18. package/.docs/organized/code-examples/with-artifacts.md +0 -814
  19. package/.docs/organized/code-examples/with-assistant-transport.md +0 -575
  20. package/.docs/organized/code-examples/with-browser-extension.md +0 -371
  21. package/.docs/organized/code-examples/with-chain-of-thought.md +0 -960
  22. package/.docs/organized/code-examples/with-cloud-standalone.md +0 -681
  23. package/.docs/organized/code-examples/with-cloud.md +0 -438
  24. package/.docs/organized/code-examples/with-custom-thread-list.md +0 -568
  25. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +0 -526
  26. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +0 -696
  27. package/.docs/organized/code-examples/with-eve.md +0 -404
  28. package/.docs/organized/code-examples/with-expo.md +0 -2063
  29. package/.docs/organized/code-examples/with-external-store.md +0 -420
  30. package/.docs/organized/code-examples/with-ffmpeg.md +0 -828
  31. package/.docs/organized/code-examples/with-generative-ui.md +0 -1812
  32. package/.docs/organized/code-examples/with-google-adk.md +0 -367
  33. package/.docs/organized/code-examples/with-heat-graph.md +0 -304
  34. package/.docs/organized/code-examples/with-image-generation.md +0 -462
  35. package/.docs/organized/code-examples/with-interactables.md +0 -732
  36. package/.docs/organized/code-examples/with-langchain.md +0 -445
  37. package/.docs/organized/code-examples/with-langgraph.md +0 -854
  38. package/.docs/organized/code-examples/with-livekit.md +0 -642
  39. package/.docs/organized/code-examples/with-mcp.md +0 -780
  40. package/.docs/organized/code-examples/with-nuxt.md +0 -2428
  41. package/.docs/organized/code-examples/with-opencode.md +0 -1974
  42. package/.docs/organized/code-examples/with-openui.md +0 -449
  43. package/.docs/organized/code-examples/with-pi.md +0 -2083
  44. package/.docs/organized/code-examples/with-react-hook-form.md +0 -724
  45. package/.docs/organized/code-examples/with-react-ink-web.md +0 -690
  46. package/.docs/organized/code-examples/with-react-ink.md +0 -472
  47. package/.docs/organized/code-examples/with-react-router.md +0 -935
  48. package/.docs/organized/code-examples/with-resumable-stream.md +0 -667
  49. package/.docs/organized/code-examples/with-store.md +0 -679
  50. package/.docs/organized/code-examples/with-svelte.md +0 -415
  51. package/.docs/organized/code-examples/with-sveltekit.md +0 -1061
  52. package/.docs/organized/code-examples/with-tanstack.md +0 -811
  53. package/.docs/organized/code-examples/with-tap-runtime.md +0 -812
  54. package/.docs/organized/code-examples/with-virtualized-thread.md +0 -680
  55. package/.docs/organized/code-examples/with-vue.md +0 -408
  56. package/.docs/raw/docs/(docs)/architecture.mdx +0 -146
  57. package/.docs/raw/docs/(docs)/base-ui.mdx +0 -39
  58. package/.docs/raw/docs/(docs)/cli.mdx +0 -542
  59. package/.docs/raw/docs/(docs)/devtools.mdx +0 -79
  60. package/.docs/raw/docs/(docs)/index.mdx +0 -21
  61. package/.docs/raw/docs/(docs)/installation.mdx +0 -483
  62. package/.docs/raw/docs/(docs)/llm.mdx +0 -211
  63. package/.docs/raw/docs/(docs)/rtl.mdx +0 -78
  64. package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +0 -36
  65. package/.docs/raw/docs/(reference)/api-reference/adapters/feedback.mdx +0 -20
  66. package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +0 -34
  67. package/.docs/raw/docs/(reference)/api-reference/adapters/model.mdx +0 -44
  68. package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +0 -59
  69. package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +0 -20
  70. package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +0 -20
  71. package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +0 -84
  72. package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +0 -22
  73. package/.docs/raw/docs/(reference)/api-reference/context-providers/scoped-providers.mdx +0 -64
  74. package/.docs/raw/docs/(reference)/api-reference/external-store/index.mdx +0 -22
  75. package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +0 -52
  76. package/.docs/raw/docs/(reference)/api-reference/external-store/runtime.mdx +0 -49
  77. package/.docs/raw/docs/(reference)/api-reference/generative-ui/a2ui.mdx +0 -40
  78. package/.docs/raw/docs/(reference)/api-reference/generative-ui/actions.mdx +0 -56
  79. package/.docs/raw/docs/(reference)/api-reference/generative-ui/components.mdx +0 -86
  80. package/.docs/raw/docs/(reference)/api-reference/generative-ui/index.mdx +0 -39
  81. package/.docs/raw/docs/(reference)/api-reference/generative-ui/json-generative-ui.mdx +0 -42
  82. package/.docs/raw/docs/(reference)/api-reference/generative-ui/rendering.mdx +0 -84
  83. package/.docs/raw/docs/(reference)/api-reference/generative-ui/slack.mdx +0 -85
  84. package/.docs/raw/docs/(reference)/api-reference/generative-ui/spec.mdx +0 -45
  85. package/.docs/raw/docs/(reference)/api-reference/generative-ui/teams.mdx +0 -93
  86. package/.docs/raw/docs/(reference)/api-reference/generative-ui/tokens.mdx +0 -62
  87. package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +0 -129
  88. package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +0 -31
  89. package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +0 -34
  90. package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +0 -350
  91. package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +0 -28
  92. package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +0 -97
  93. package/.docs/raw/docs/(reference)/api-reference/integrations/cloud-ai-sdk.mdx +0 -24
  94. package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +0 -97
  95. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +0 -28
  96. package/.docs/raw/docs/(reference)/api-reference/integrations/react-ai-sdk.mdx +0 -200
  97. package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +0 -37
  98. package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +0 -50
  99. package/.docs/raw/docs/(reference)/api-reference/model-context/index.mdx +0 -22
  100. package/.docs/raw/docs/(reference)/api-reference/model-context/registry.mdx +0 -20
  101. package/.docs/raw/docs/(reference)/api-reference/overview.mdx +0 -566
  102. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar-more.mdx +0 -152
  103. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +0 -239
  104. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +0 -208
  105. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-modal.mdx +0 -108
  106. package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +0 -99
  107. package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +0 -145
  108. package/.docs/raw/docs/(reference)/api-reference/primitives/chain-of-thought.mdx +0 -82
  109. package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +0 -619
  110. package/.docs/raw/docs/(reference)/api-reference/primitives/composition.mdx +0 -22
  111. package/.docs/raw/docs/(reference)/api-reference/primitives/error.mdx +0 -65
  112. package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +0 -73
  113. package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +0 -117
  114. package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +0 -339
  115. package/.docs/raw/docs/(reference)/api-reference/primitives/queue-item.mdx +0 -77
  116. package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +0 -88
  117. package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +0 -81
  118. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item-more.mdx +0 -129
  119. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item.mdx +0 -138
  120. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +0 -122
  121. package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +0 -289
  122. package/.docs/raw/docs/(reference)/api-reference/runtimes/assistant-runtime.mdx +0 -20
  123. package/.docs/raw/docs/(reference)/api-reference/runtimes/attachment-runtime.mdx +0 -24
  124. package/.docs/raw/docs/(reference)/api-reference/runtimes/composer-runtime.mdx +0 -32
  125. package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +0 -43
  126. package/.docs/raw/docs/(reference)/api-reference/runtimes/message-part-runtime.mdx +0 -43
  127. package/.docs/raw/docs/(reference)/api-reference/runtimes/message-runtime.mdx +0 -24
  128. package/.docs/raw/docs/(reference)/api-reference/runtimes/queue-state.mdx +0 -20
  129. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-item-runtime.mdx +0 -24
  130. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +0 -24
  131. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-runtime.mdx +0 -36
  132. package/.docs/raw/docs/(reference)/api-reference/tools/component-tools.mdx +0 -85
  133. package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +0 -45
  134. package/.docs/raw/docs/(reference)/api-reference/tools/interactables-legacy.mdx +0 -55
  135. package/.docs/raw/docs/(reference)/api-reference/tools/interactables.mdx +0 -151
  136. package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +0 -106
  137. package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +0 -62
  138. package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +0 -178
  139. package/.docs/raw/docs/(reference)/api-reference/transport/assistant-transport.mdx +0 -48
  140. package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +0 -62
  141. package/.docs/raw/docs/(reference)/api-reference/transport/index.mdx +0 -22
  142. package/.docs/raw/docs/(reference)/api-reference/utilities/index.mdx +0 -19
  143. package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +0 -149
  144. package/.docs/raw/docs/(reference)/api-reference/voice/index.mdx +0 -22
  145. package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +0 -54
  146. package/.docs/raw/docs/(reference)/api-reference/voice/speech-dictation.mdx +0 -36
  147. package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +0 -527
  148. package/.docs/raw/docs/cloud/ai-sdk.mdx +0 -602
  149. package/.docs/raw/docs/cloud/authorization.mdx +0 -252
  150. package/.docs/raw/docs/cloud/index.mdx +0 -46
  151. package/.docs/raw/docs/cloud/langgraph.mdx +0 -554
  152. package/.docs/raw/docs/copilots/assistant-frame.mdx +0 -400
  153. package/.docs/raw/docs/copilots/make-assistant-visible.mdx +0 -82
  154. package/.docs/raw/docs/copilots/model-context.mdx +0 -156
  155. package/.docs/raw/docs/copilots/motivation.mdx +0 -202
  156. package/.docs/raw/docs/copilots/use-assistant-instructions.mdx +0 -64
  157. package/.docs/raw/docs/guides/attachments.mdx +0 -619
  158. package/.docs/raw/docs/guides/branching.mdx +0 -76
  159. package/.docs/raw/docs/guides/chain-of-thought.mdx +0 -164
  160. package/.docs/raw/docs/guides/chatgpt-subscription.mdx +0 -108
  161. package/.docs/raw/docs/guides/context-api.mdx +0 -619
  162. package/.docs/raw/docs/guides/dictation.mdx +0 -298
  163. package/.docs/raw/docs/guides/editing.mdx +0 -102
  164. package/.docs/raw/docs/guides/electron.mdx +0 -369
  165. package/.docs/raw/docs/guides/headless-composer-input.mdx +0 -113
  166. package/.docs/raw/docs/guides/image-generation.mdx +0 -74
  167. package/.docs/raw/docs/guides/index.mdx +0 -117
  168. package/.docs/raw/docs/guides/input-history.mdx +0 -55
  169. package/.docs/raw/docs/guides/latex.mdx +0 -158
  170. package/.docs/raw/docs/guides/mentions.mdx +0 -575
  171. package/.docs/raw/docs/guides/message-timing.mdx +0 -209
  172. package/.docs/raw/docs/guides/quoting.mdx +0 -169
  173. package/.docs/raw/docs/guides/resumable-stream-deployment.mdx +0 -212
  174. package/.docs/raw/docs/guides/resumable-stream-stores.mdx +0 -152
  175. package/.docs/raw/docs/guides/resumable-streams.mdx +0 -292
  176. package/.docs/raw/docs/guides/slash-commands.mdx +0 -358
  177. package/.docs/raw/docs/guides/speech.mdx +0 -172
  178. package/.docs/raw/docs/guides/suggestions.mdx +0 -384
  179. package/.docs/raw/docs/guides/virtualization.mdx +0 -133
  180. package/.docs/raw/docs/guides/voice.mdx +0 -310
  181. package/.docs/raw/docs/ink/adapters.mdx +0 -99
  182. package/.docs/raw/docs/ink/custom-backend.mdx +0 -254
  183. package/.docs/raw/docs/ink/hooks.mdx +0 -469
  184. package/.docs/raw/docs/ink/index.mdx +0 -236
  185. package/.docs/raw/docs/ink/migration.mdx +0 -138
  186. package/.docs/raw/docs/ink/primitives.mdx +0 -1259
  187. package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +0 -528
  188. package/.docs/raw/docs/integrations/auth/better-auth.mdx +0 -188
  189. package/.docs/raw/docs/integrations/auth/clerk.mdx +0 -166
  190. package/.docs/raw/docs/integrations/auth/next-auth.mdx +0 -191
  191. package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +0 -88
  192. package/.docs/raw/docs/integrations/frameworks/cloudflare-agents/overview.mdx +0 -282
  193. package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +0 -188
  194. package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +0 -57
  195. package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +0 -201
  196. package/.docs/raw/docs/integrations/gateways/index.mdx +0 -162
  197. package/.docs/raw/docs/integrations/index.mdx +0 -178
  198. package/.docs/raw/docs/integrations/observability/helicone.mdx +0 -129
  199. package/.docs/raw/docs/integrations/observability/langfuse.mdx +0 -161
  200. package/.docs/raw/docs/integrations/observability/langsmith.mdx +0 -151
  201. package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +0 -773
  202. package/.docs/raw/docs/migrations/deprecation-policy.mdx +0 -42
  203. package/.docs/raw/docs/migrations/index.mdx +0 -50
  204. package/.docs/raw/docs/migrations/react-compatibility.mdx +0 -74
  205. package/.docs/raw/docs/migrations/react-langgraph-v0-7.mdx +0 -328
  206. package/.docs/raw/docs/migrations/toolkit-tools.mdx +0 -236
  207. package/.docs/raw/docs/migrations/v0-11.mdx +0 -172
  208. package/.docs/raw/docs/migrations/v0-12.mdx +0 -302
  209. package/.docs/raw/docs/migrations/v0-14.mdx +0 -297
  210. package/.docs/raw/docs/migrations/v0-15.mdx +0 -270
  211. package/.docs/raw/docs/primitives/action-bar.mdx +0 -352
  212. package/.docs/raw/docs/primitives/assistant-modal.mdx +0 -216
  213. package/.docs/raw/docs/primitives/attachment.mdx +0 -217
  214. package/.docs/raw/docs/primitives/branch-picker.mdx +0 -222
  215. package/.docs/raw/docs/primitives/chain-of-thought.mdx +0 -315
  216. package/.docs/raw/docs/primitives/composer.mdx +0 -659
  217. package/.docs/raw/docs/primitives/error.mdx +0 -142
  218. package/.docs/raw/docs/primitives/index.mdx +0 -99
  219. package/.docs/raw/docs/primitives/message.mdx +0 -618
  220. package/.docs/raw/docs/primitives/selection-toolbar.mdx +0 -191
  221. package/.docs/raw/docs/primitives/suggestion.mdx +0 -254
  222. package/.docs/raw/docs/primitives/thread-list.mdx +0 -467
  223. package/.docs/raw/docs/primitives/thread.mdx +0 -509
  224. package/.docs/raw/docs/react-native/adapters.mdx +0 -94
  225. package/.docs/raw/docs/react-native/custom-backend.mdx +0 -207
  226. package/.docs/raw/docs/react-native/hooks.mdx +0 -339
  227. package/.docs/raw/docs/react-native/index.mdx +0 -289
  228. package/.docs/raw/docs/react-native/migration.mdx +0 -142
  229. package/.docs/raw/docs/react-native/primitives.mdx +0 -839
  230. package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +0 -399
  231. package/.docs/raw/docs/runtimes/a2a/overview.mdx +0 -60
  232. package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +0 -216
  233. package/.docs/raw/docs/runtimes/ag-ui/agent-state.mdx +0 -124
  234. package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +0 -70
  235. package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +0 -243
  236. package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +0 -255
  237. package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +0 -61
  238. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +0 -122
  239. package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +0 -135
  240. package/.docs/raw/docs/runtimes/ai-sdk/v6-legacy.mdx +0 -636
  241. package/.docs/raw/docs/runtimes/ai-sdk/v7.mdx +0 -716
  242. package/.docs/raw/docs/runtimes/claude-managed-agents.mdx +0 -118
  243. package/.docs/raw/docs/runtimes/concepts/adapters.mdx +0 -265
  244. package/.docs/raw/docs/runtimes/concepts/architecture.mdx +0 -167
  245. package/.docs/raw/docs/runtimes/concepts/stability.mdx +0 -68
  246. package/.docs/raw/docs/runtimes/concepts/threads.mdx +0 -513
  247. package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +0 -763
  248. package/.docs/raw/docs/runtimes/custom/data-stream.mdx +0 -339
  249. package/.docs/raw/docs/runtimes/custom/external-store.mdx +0 -957
  250. package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +0 -902
  251. package/.docs/raw/docs/runtimes/custom/overview.mdx +0 -71
  252. package/.docs/raw/docs/runtimes/eve/overview.mdx +0 -151
  253. package/.docs/raw/docs/runtimes/eve/quickstart.mdx +0 -192
  254. package/.docs/raw/docs/runtimes/google-adk/api.mdx +0 -256
  255. package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +0 -784
  256. package/.docs/raw/docs/runtimes/google-adk/overview.mdx +0 -69
  257. package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +0 -229
  258. package/.docs/raw/docs/runtimes/langchain.mdx +0 -901
  259. package/.docs/raw/docs/runtimes/langgraph/agent-state.mdx +0 -181
  260. package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +0 -305
  261. package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +0 -104
  262. package/.docs/raw/docs/runtimes/langgraph/overview.mdx +0 -84
  263. package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +0 -496
  264. package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +0 -144
  265. package/.docs/raw/docs/runtimes/langgraph/threads.mdx +0 -113
  266. package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +0 -29
  267. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -93
  268. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +0 -347
  269. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-3.mdx +0 -393
  270. package/.docs/raw/docs/runtimes/opencode/hooks.mdx +0 -194
  271. package/.docs/raw/docs/runtimes/opencode/overview.mdx +0 -58
  272. package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +0 -119
  273. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +0 -133
  274. package/.docs/raw/docs/tools/a2ui.mdx +0 -107
  275. package/.docs/raw/docs/tools/backend.mdx +0 -147
  276. package/.docs/raw/docs/tools/defining-tools.mdx +0 -574
  277. package/.docs/raw/docs/tools/dynamic-tools.mdx +0 -112
  278. package/.docs/raw/docs/tools/generative-ui-primitive.mdx +0 -180
  279. package/.docs/raw/docs/tools/generative-ui-slack.mdx +0 -167
  280. package/.docs/raw/docs/tools/generative-ui-teams.mdx +0 -160
  281. package/.docs/raw/docs/tools/generative-ui.mdx +0 -322
  282. package/.docs/raw/docs/tools/index.mdx +0 -72
  283. package/.docs/raw/docs/tools/interactables.mdx +0 -1084
  284. package/.docs/raw/docs/tools/mcp-apps.mdx +0 -346
  285. package/.docs/raw/docs/tools/mcp.mdx +0 -466
  286. package/.docs/raw/docs/tools/multi-agent.mdx +0 -237
  287. package/.docs/raw/docs/tools/openui.mdx +0 -175
  288. package/.docs/raw/docs/tools/tool-ui.mdx +0 -1008
  289. package/.docs/raw/docs/tools/user-managed-mcp.mdx +0 -428
  290. package/.docs/raw/docs/ui/accordion.mdx +0 -266
  291. package/.docs/raw/docs/ui/assistant-modal.mdx +0 -166
  292. package/.docs/raw/docs/ui/assistant-sidebar.mdx +0 -89
  293. package/.docs/raw/docs/ui/attachment.mdx +0 -259
  294. package/.docs/raw/docs/ui/badge.mdx +0 -150
  295. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +0 -212
  296. package/.docs/raw/docs/ui/context-display.mdx +0 -148
  297. package/.docs/raw/docs/ui/diff-viewer.mdx +0 -280
  298. package/.docs/raw/docs/ui/directive-text.mdx +0 -114
  299. package/.docs/raw/docs/ui/dot-matrix.mdx +0 -133
  300. package/.docs/raw/docs/ui/file.mdx +0 -159
  301. package/.docs/raw/docs/ui/follow-up-suggestions.mdx +0 -82
  302. package/.docs/raw/docs/ui/image.mdx +0 -102
  303. package/.docs/raw/docs/ui/markdown.mdx +0 -64
  304. package/.docs/raw/docs/ui/mcp-config.mdx +0 -107
  305. package/.docs/raw/docs/ui/mermaid.mdx +0 -92
  306. package/.docs/raw/docs/ui/message-timing.mdx +0 -93
  307. package/.docs/raw/docs/ui/model-selector.mdx +0 -455
  308. package/.docs/raw/docs/ui/number-roll.mdx +0 -154
  309. package/.docs/raw/docs/ui/part-grouping.mdx +0 -614
  310. package/.docs/raw/docs/ui/quote.mdx +0 -211
  311. package/.docs/raw/docs/ui/reasoning.mdx +0 -186
  312. package/.docs/raw/docs/ui/scrollbar.mdx +0 -77
  313. package/.docs/raw/docs/ui/select.mdx +0 -254
  314. package/.docs/raw/docs/ui/sources.mdx +0 -177
  315. package/.docs/raw/docs/ui/streamdown.mdx +0 -392
  316. package/.docs/raw/docs/ui/syntax-highlighting.mdx +0 -205
  317. package/.docs/raw/docs/ui/tabs.mdx +0 -271
  318. package/.docs/raw/docs/ui/thread-list.mdx +0 -372
  319. package/.docs/raw/docs/ui/thread.mdx +0 -512
  320. package/.docs/raw/docs/ui/tool-fallback.mdx +0 -127
  321. package/.docs/raw/docs/ui/tool-group.mdx +0 -240
  322. package/.docs/raw/docs/ui/voice.mdx +0 -173
  323. package/.docs/raw/docs/utilities/heat-graph.mdx +0 -237
  324. package/.docs/raw/docs/utilities/react-o11y.mdx +0 -362
  325. package/.docs/raw/docs/utilities/tw-shimmer.mdx +0 -212
  326. package/dist/constants.d.ts +0 -14
  327. package/dist/constants.d.ts.map +0 -1
  328. package/dist/constants.js +0 -19
  329. package/dist/constants.js.map +0 -1
  330. package/dist/prepare-docs/code-examples.d.ts +0 -5
  331. package/dist/prepare-docs/code-examples.d.ts.map +0 -1
  332. package/dist/prepare-docs/code-examples.js +0 -117
  333. package/dist/prepare-docs/code-examples.js.map +0 -1
  334. package/dist/prepare-docs/copy-raw.d.ts +0 -5
  335. package/dist/prepare-docs/copy-raw.d.ts.map +0 -1
  336. package/dist/prepare-docs/copy-raw.js +0 -49
  337. package/dist/prepare-docs/copy-raw.js.map +0 -1
  338. package/dist/prepare-docs/prepare.d.ts +0 -1
  339. package/dist/prepare-docs/prepare.js +0 -22
  340. package/dist/prepare-docs/prepare.js.map +0 -1
  341. package/dist/prompts/xulux-playground.d.ts +0 -12
  342. package/dist/prompts/xulux-playground.d.ts.map +0 -1
  343. package/dist/prompts/xulux-playground.js +0 -33
  344. package/dist/prompts/xulux-playground.js.map +0 -1
  345. package/dist/tools/docs.d.ts +0 -22
  346. package/dist/tools/docs.d.ts.map +0 -1
  347. package/dist/tools/docs.js +0 -177
  348. package/dist/tools/docs.js.map +0 -1
  349. package/dist/tools/examples.d.ts +0 -24
  350. package/dist/tools/examples.d.ts.map +0 -1
  351. package/dist/tools/examples.js +0 -87
  352. package/dist/tools/examples.js.map +0 -1
  353. package/dist/tools/resources.d.ts +0 -6
  354. package/dist/tools/resources.d.ts.map +0 -1
  355. package/dist/tools/resources.js +0 -75
  356. package/dist/tools/resources.js.map +0 -1
  357. package/dist/tools/search.d.ts +0 -24
  358. package/dist/tools/search.d.ts.map +0 -1
  359. package/dist/tools/search.js +0 -39
  360. package/dist/tools/search.js.map +0 -1
  361. package/dist/tools/tests/mcp-test-client.d.ts +0 -15
  362. package/dist/tools/tests/mcp-test-client.d.ts.map +0 -1
  363. package/dist/tools/tests/mcp-test-client.js +0 -68
  364. package/dist/tools/tests/mcp-test-client.js.map +0 -1
  365. package/dist/tools/tests/test-setup.d.ts +0 -7
  366. package/dist/tools/tests/test-setup.d.ts.map +0 -1
  367. package/dist/tools/tests/test-setup.js +0 -36
  368. package/dist/tools/tests/test-setup.js.map +0 -1
  369. package/dist/tools/xulux-templates.d.ts +0 -58
  370. package/dist/tools/xulux-templates.d.ts.map +0 -1
  371. package/dist/tools/xulux-templates.js +0 -84
  372. package/dist/tools/xulux-templates.js.map +0 -1
  373. package/dist/utils/cache.d.ts +0 -5
  374. package/dist/utils/cache.d.ts.map +0 -1
  375. package/dist/utils/cache.js +0 -18
  376. package/dist/utils/cache.js.map +0 -1
  377. package/dist/utils/logger.d.ts +0 -10
  378. package/dist/utils/logger.d.ts.map +0 -1
  379. package/dist/utils/logger.js +0 -20
  380. package/dist/utils/logger.js.map +0 -1
  381. package/dist/utils/mcp-format.d.ts +0 -11
  382. package/dist/utils/mcp-format.d.ts.map +0 -1
  383. package/dist/utils/mcp-format.js +0 -14
  384. package/dist/utils/mcp-format.js.map +0 -1
  385. package/dist/utils/mdx.d.ts +0 -12
  386. package/dist/utils/mdx.d.ts.map +0 -1
  387. package/dist/utils/mdx.js +0 -45
  388. package/dist/utils/mdx.js.map +0 -1
  389. package/dist/utils/paths.d.ts +0 -12
  390. package/dist/utils/paths.d.ts.map +0 -1
  391. package/dist/utils/paths.js +0 -93
  392. package/dist/utils/paths.js.map +0 -1
  393. package/dist/utils/search.d.ts +0 -10
  394. package/dist/utils/search.d.ts.map +0 -1
  395. package/dist/utils/search.js +0 -97
  396. package/dist/utils/search.js.map +0 -1
  397. package/dist/utils/security.d.ts +0 -5
  398. package/dist/utils/security.d.ts.map +0 -1
  399. package/dist/utils/security.js +0 -22
  400. package/dist/utils/security.js.map +0 -1
  401. package/dist/xulux/catalog-client.d.ts +0 -14
  402. package/dist/xulux/catalog-client.d.ts.map +0 -1
  403. package/dist/xulux/catalog-client.js +0 -67
  404. package/dist/xulux/catalog-client.js.map +0 -1
  405. package/dist/xulux/fallback-catalog.d.ts +0 -7
  406. package/dist/xulux/fallback-catalog.d.ts.map +0 -1
  407. package/dist/xulux/fallback-catalog.js +0 -47
  408. package/dist/xulux/fallback-catalog.js.map +0 -1
  409. package/dist/xulux/fetch-sandbox.d.ts +0 -5
  410. package/dist/xulux/fetch-sandbox.d.ts.map +0 -1
  411. package/dist/xulux/fetch-sandbox.js +0 -40
  412. package/dist/xulux/fetch-sandbox.js.map +0 -1
  413. package/dist/xulux/template-service.d.ts +0 -84
  414. package/dist/xulux/template-service.d.ts.map +0 -1
  415. package/dist/xulux/template-service.js +0 -223
  416. package/dist/xulux/template-service.js.map +0 -1
  417. package/dist/xulux/types.d.ts +0 -55
  418. package/dist/xulux/types.d.ts.map +0 -1
  419. package/dist/xulux/types.js +0 -6
  420. package/dist/xulux/types.js.map +0 -1
  421. package/src/constants.ts +0 -24
  422. package/src/prepare-docs/code-examples.ts +0 -158
  423. package/src/prepare-docs/copy-raw.ts +0 -50
  424. package/src/prepare-docs/prepare.ts +0 -24
  425. package/src/prompts/xulux-playground.ts +0 -36
  426. package/src/tools/docs.ts +0 -255
  427. package/src/tools/examples.ts +0 -114
  428. package/src/tools/resources.ts +0 -111
  429. package/src/tools/search.ts +0 -46
  430. package/src/tools/tests/completions.test.ts +0 -60
  431. package/src/tools/tests/directory-size-cap.test.ts +0 -50
  432. package/src/tools/tests/docs.test.ts +0 -144
  433. package/src/tools/tests/examples.test.ts +0 -94
  434. package/src/tools/tests/integration.test.ts +0 -45
  435. package/src/tools/tests/json-parsing.test.ts +0 -23
  436. package/src/tools/tests/listings-cache.test.ts +0 -19
  437. package/src/tools/tests/mcp-protocol.test.ts +0 -216
  438. package/src/tools/tests/mcp-test-client.ts +0 -111
  439. package/src/tools/tests/path-traversal.test.ts +0 -81
  440. package/src/tools/tests/resources.test.ts +0 -133
  441. package/src/tools/tests/search.test.ts +0 -37
  442. package/src/tools/tests/test-setup.ts +0 -50
  443. package/src/tools/tests/xulux-templates.test.ts +0 -262
  444. package/src/tools/xulux-templates.ts +0 -141
  445. package/src/utils/cache.ts +0 -20
  446. package/src/utils/logger.ts +0 -20
  447. package/src/utils/mcp-format.ts +0 -14
  448. package/src/utils/mdx.ts +0 -59
  449. package/src/utils/paths.ts +0 -139
  450. package/src/utils/search.ts +0 -131
  451. package/src/utils/security.ts +0 -52
  452. package/src/utils/tests/cache.test.ts +0 -51
  453. package/src/utils/tests/mcp-format.test.ts +0 -22
  454. package/src/utils/tests/security.test.ts +0 -119
  455. package/src/xulux/catalog-client.ts +0 -105
  456. package/src/xulux/fallback-catalog.ts +0 -63
  457. package/src/xulux/fetch-sandbox.ts +0 -56
  458. package/src/xulux/template-service.ts +0 -406
  459. package/src/xulux/types.ts +0 -60
@@ -1,839 +0,0 @@
1
- ---
2
- title: Primitives
3
- description: Composable React Native components for building chat UIs.
4
- ---
5
-
6
- Primitives are thin wrappers around React Native components (`View`, `TextInput`, `FlatList`, `Pressable`) that integrate with the assistant-ui runtime. They accept all standard React Native props and add runtime-aware behavior.
7
-
8
- Primitives are accessed via namespace imports (e.g. `ThreadPrimitive.Root`, `ComposerPrimitive.Input`), matching the pattern used in `@assistant-ui/react`.
9
-
10
- Many primitives share their core logic with `@assistant-ui/react` via `@assistant-ui/core/react` — only the UI layer (View/Pressable/Text vs DOM elements) differs.
11
-
12
- ## Thread
13
-
14
- ```tsx
15
- import { ThreadPrimitive } from "@assistant-ui/react-native";
16
- ```
17
-
18
- ### ThreadPrimitive.Root
19
-
20
- Container `View` for the thread area.
21
-
22
- ```tsx
23
- <ThreadPrimitive.Root style={{ flex: 1 }}>
24
- {children}
25
- </ThreadPrimitive.Root>
26
- ```
27
-
28
- | Prop | Type | Description |
29
- |------|------|-------------|
30
- | `...rest` | `ViewProps` | Standard React Native View props |
31
-
32
- ### ThreadPrimitive.Messages
33
-
34
- Deprecated `FlatList`-based message list kept for backwards compatibility. It uses `ThreadPrimitive.MessagesFlatList` internally, but keeps the previous no-auto-scroll default so existing apps with custom scroll handling do not change behavior on upgrade.
35
-
36
- Use `ThreadPrimitive.MessagesFlatList` for new React Native threads.
37
-
38
- ```tsx
39
- <ThreadPrimitive.Messages>
40
- {() => <MyMessage />}
41
- </ThreadPrimitive.Messages>
42
- ```
43
-
44
- You can also provide role-specific components:
45
-
46
- ```tsx
47
- <ThreadPrimitive.Messages>
48
- {({ message }) => {
49
- if (message.role === "user") return <MyUserMessage />;
50
- return <MyAssistantMessage />;
51
- }}
52
- </ThreadPrimitive.Messages>
53
- ```
54
-
55
- | Prop | Type | Description |
56
- |------|------|-------------|
57
- | `components` | `MessageComponents` | Component map — provide either a `Message` component (used for all roles) or role-specific `UserMessage`, `AssistantMessage`, and optionally `SystemMessage`. Edit composers can be set via `EditComposer` or role-specific variants (`UserEditComposer`, `AssistantEditComposer`, `SystemEditComposer`). |
58
- | `...rest` | `ThreadPrimitive.MessagesFlatList` props | Same props as `ThreadPrimitive.MessagesFlatList`, with the auto-scroll options defaulting to `false` on this deprecated wrapper |
59
-
60
- ### ThreadPrimitive.MessagesFlatList
61
-
62
- Canonical React Native message viewport backed by `FlatList`. It scopes each row to its message, forwards refs to the underlying `FlatList`, and handles scroll-to-bottom behavior for common chat flows.
63
-
64
- ```tsx
65
- <ThreadPrimitive.MessagesFlatList autoScroll>
66
- {() => <MyMessage />}
67
- </ThreadPrimitive.MessagesFlatList>
68
- ```
69
-
70
- | Prop | Type | Description |
71
- |------|------|-------------|
72
- | `children` | `({ message }) => ReactNode` | Render function for each message |
73
- | `components` | `MessageComponents` | Component map alternative to `children` |
74
- | `autoScroll` | `boolean` | Automatically keeps the list at the bottom while it is already near the bottom. Defaults to `true` |
75
- | `scrollToBottomOnRunStart` | `boolean` | Scrolls to the bottom when a run starts. Defaults to `true` |
76
- | `scrollToBottomOnInitialize` | `boolean` | Scrolls to the bottom when messages first appear. Defaults to `true` |
77
- | `scrollToBottomOnThreadSwitch` | `boolean` | Scrolls to the bottom when switching threads. Defaults to `true` |
78
- | `...rest` | `FlatListProps` | Standard FlatList props, except `data`, `renderItem`, and `children` |
79
-
80
- The built-in auto-scroll behavior assumes the default, non-inverted `FlatList` direction.
81
-
82
- ### ThreadPrimitive.MessageByIndex
83
-
84
- Renders a single message at a specific index in the thread. Provides message context so that `useAuiState((s) => s.message)` works inside the rendered component. This component is shared from `@assistant-ui/core/react`.
85
-
86
- ```tsx
87
- <ThreadPrimitive.MessageByIndex
88
- index={0}
89
- components={{
90
- UserMessage: MyUserMessage,
91
- AssistantMessage: MyAssistantMessage,
92
- }}
93
- />
94
- ```
95
-
96
- | Prop | Type | Description |
97
- |------|------|-------------|
98
- | `index` | `number` | Zero-based index of the message to render |
99
- | `components` | `MessageComponents` | Same component map as `ThreadPrimitive.Messages` |
100
-
101
- ### ThreadPrimitive.Empty
102
-
103
- Renders its children only when the thread has no messages. Deprecated in favor of `AuiIf`.
104
-
105
- ```tsx
106
- <ThreadPrimitive.Empty>
107
- <Text>Send a message to get started</Text>
108
- </ThreadPrimitive.Empty>
109
- ```
110
-
111
- ### ThreadPrimitive.If
112
-
113
- Conditional rendering based on thread state. Deprecated in favor of `AuiIf`.
114
-
115
- ```tsx
116
- <ThreadPrimitive.If empty>
117
- <Text>No messages yet</Text>
118
- </ThreadPrimitive.If>
119
-
120
- <ThreadPrimitive.If running>
121
- <ActivityIndicator />
122
- </ThreadPrimitive.If>
123
- ```
124
-
125
- | Prop | Type | Description |
126
- |------|------|-------------|
127
- | `empty` | `boolean` | Renders children when thread emptiness matches this value |
128
- | `running` | `boolean` | Renders children when thread running state matches this value |
129
-
130
- ### ThreadPrimitive.Suggestion
131
-
132
- `Pressable` that inserts or sends a hard-coded suggestion prompt. Unlike `SuggestionPrimitive.Trigger`, this component does not require a suggestion context — the prompt is passed directly as a prop.
133
-
134
- ```tsx
135
- <ThreadPrimitive.Suggestion prompt="What can you help me with?" send>
136
- <Text>What can you help me with?</Text>
137
- </ThreadPrimitive.Suggestion>
138
- ```
139
-
140
- | Prop | Type | Description |
141
- |------|------|-------------|
142
- | `prompt` | `string` | The text to send or insert into the composer |
143
- | `send` | `boolean` | When true, sends the prompt immediately; when false, inserts into composer (default: false) |
144
- | `clearComposer` | `boolean` | Whether to replace composer text (default: true) |
145
- | `...rest` | `PressableProps` | Standard Pressable props (except `onPress`) |
146
-
147
- ### ThreadPrimitive.Suggestions
148
-
149
- Renders all suggestions using the provided component configuration. This component is shared from `@assistant-ui/core/react`.
150
-
151
- ```tsx
152
- <ThreadPrimitive.Suggestions>
153
- {() => <MySuggestion />}
154
- </ThreadPrimitive.Suggestions>
155
- ```
156
-
157
- | Prop | Type | Description |
158
- |------|------|-------------|
159
- | `components` | `{ Suggestion: ComponentType }` | Component to render for each suggestion |
160
-
161
- ### ThreadPrimitive.SuggestionByIndex
162
-
163
- Renders a single suggestion at the specified index, providing suggestion context. This component is shared from `@assistant-ui/core/react`.
164
-
165
- ```tsx
166
- <ThreadPrimitive.SuggestionByIndex
167
- index={0}
168
- components={{ Suggestion: MySuggestion }}
169
- />
170
- ```
171
-
172
- | Prop | Type | Description |
173
- |------|------|-------------|
174
- | `index` | `number` | Zero-based index of the suggestion to render |
175
- | `components` | `{ Suggestion: ComponentType }` | Component to render for the suggestion |
176
-
177
- ### AuiIf
178
-
179
- Conditional rendering based on assistant state. Replaces the deprecated `ThreadPrimitive.Empty`, `ThreadPrimitive.If`, `MessagePrimitive.If`, and `ComposerPrimitive.If`.
180
-
181
- ```tsx
182
- import { AuiIf } from "@assistant-ui/react-native";
183
-
184
- <AuiIf condition={(s) => s.thread.isEmpty}>
185
- <Text>Send a message to get started</Text>
186
- </AuiIf>
187
-
188
- <AuiIf condition={(s) => s.thread.isRunning}>
189
- <ActivityIndicator />
190
- </AuiIf>
191
- ```
192
-
193
- | Prop | Type | Description |
194
- |------|------|-------------|
195
- | `condition` | `(state) => boolean` | Selector that determines whether children are rendered |
196
-
197
- ## Composer
198
-
199
- ```tsx
200
- import { ComposerPrimitive } from "@assistant-ui/react-native";
201
- ```
202
-
203
- ### ComposerPrimitive.Root
204
-
205
- Container `View` for the composer area.
206
-
207
- ```tsx
208
- <ComposerPrimitive.Root style={styles.composerContainer}>
209
- {children}
210
- </ComposerPrimitive.Root>
211
- ```
212
-
213
- ### ComposerPrimitive.Input
214
-
215
- `TextInput` wired to the composer runtime. Value and `onChangeText` are managed automatically.
216
-
217
- ```tsx
218
- <ComposerPrimitive.Input
219
- placeholder="Message..."
220
- multiline
221
- style={styles.input}
222
- />
223
- ```
224
-
225
- | Prop | Type | Description |
226
- |------|------|-------------|
227
- | `submitMode` | `"enter" \| "none"` | Whether Enter sends the message on web (default: `"enter"`) |
228
- | `...rest` | `TextInputProps` | Standard TextInput props (except `value`, `onChangeText`) |
229
-
230
- ### ComposerPrimitive.Send
231
-
232
- `Pressable` that sends the current message. Automatically disabled when the composer is empty.
233
-
234
- ```tsx
235
- <ComposerPrimitive.Send style={styles.sendButton}>
236
- <Text>Send</Text>
237
- </ComposerPrimitive.Send>
238
- ```
239
-
240
- ### ComposerPrimitive.Cancel
241
-
242
- `Pressable` that cancels the current run. Automatically disabled when no run is active.
243
-
244
- ```tsx
245
- <ComposerPrimitive.Cancel style={styles.cancelButton}>
246
- <Text>Stop</Text>
247
- </ComposerPrimitive.Cancel>
248
- ```
249
-
250
- ### ComposerPrimitive.Attachments
251
-
252
- Renders composer attachments using the provided component configuration.
253
-
254
- ```tsx
255
- <ComposerPrimitive.Attachments>
256
- {({ attachment }) => {
257
- if (attachment.type === "image") return <MyImageAttachment />;
258
- if (attachment.type === "document") return <MyDocumentAttachment />;
259
- return <MyFallbackAttachment />;
260
- }}
261
- </ComposerPrimitive.Attachments>
262
- ```
263
-
264
- | Prop | Type | Description |
265
- |------|------|-------------|
266
- | `components` | `{ Image?, Document?, File?, Attachment? }` | Component renderers by attachment type |
267
-
268
- ### ComposerPrimitive.AddAttachment
269
-
270
- `Pressable` for triggering attachment addition. The actual file picker must be implemented by the consumer (e.g. using `expo-document-picker` or `expo-image-picker`).
271
-
272
- ```tsx
273
- <ComposerPrimitive.AddAttachment>
274
- <Text>Attach</Text>
275
- </ComposerPrimitive.AddAttachment>
276
- ```
277
-
278
- ### ComposerPrimitive.AttachmentByIndex
279
-
280
- Renders a single composer attachment at the specified index. Useful for building custom attachment layouts.
281
-
282
- ```tsx
283
- <ComposerPrimitive.AttachmentByIndex
284
- index={0}
285
- components={{
286
- Image: MyImageAttachment,
287
- Attachment: MyFallbackAttachment,
288
- }}
289
- />
290
- ```
291
-
292
- | Prop | Type | Description |
293
- |------|------|-------------|
294
- | `index` | `number` | Zero-based index of the attachment to render |
295
- | `components` | `{ Image?, Document?, File?, Attachment? }` | Component renderers by attachment type |
296
-
297
- ### ComposerPrimitive.EditInput
298
-
299
- `TextInput` wired to the edit composer runtime. Used inside an edit composer to allow editing an existing message. Value and `onChangeText` are managed automatically.
300
-
301
- ```tsx
302
- <ComposerPrimitive.EditInput
303
- placeholder="Edit message..."
304
- multiline
305
- style={styles.input}
306
- />
307
- ```
308
-
309
- | Prop | Type | Description |
310
- |------|------|-------------|
311
- | `...rest` | `TextInputProps` | Standard TextInput props (except `value`, `onChangeText`) |
312
-
313
- ### ComposerPrimitive.EditSend
314
-
315
- `Pressable` that confirms and submits a message edit. Automatically disabled when the composer is empty.
316
-
317
- ```tsx
318
- <ComposerPrimitive.EditSend style={styles.sendButton}>
319
- <Text>Save</Text>
320
- </ComposerPrimitive.EditSend>
321
- ```
322
-
323
- ### ComposerPrimitive.EditCancel
324
-
325
- `Pressable` that cancels an in-progress message edit and returns to the original message.
326
-
327
- ```tsx
328
- <ComposerPrimitive.EditCancel style={styles.cancelButton}>
329
- <Text>Cancel</Text>
330
- </ComposerPrimitive.EditCancel>
331
- ```
332
-
333
- ### Conditional Rendering (Composer)
334
-
335
- Use `AuiIf` for conditional rendering based on composer state:
336
-
337
- ```tsx
338
- <AuiIf condition={(s) => s.composer.isEditing}>
339
- <Text>Currently editing</Text>
340
- </AuiIf>
341
-
342
- <AuiIf condition={(s) => s.composer.dictation != null}>
343
- <Text>Dictation active</Text>
344
- </AuiIf>
345
- ```
346
-
347
- ## Message
348
-
349
- ```tsx
350
- import { MessagePrimitive } from "@assistant-ui/react-native";
351
- ```
352
-
353
- ### MessagePrimitive.Root
354
-
355
- Container `View` for a single message.
356
-
357
- ```tsx
358
- <MessagePrimitive.Root style={styles.messageBubble}>
359
- {children}
360
- </MessagePrimitive.Root>
361
- ```
362
-
363
- ### MessagePrimitive.Content
364
-
365
- Renders message content parts using render-prop functions instead of the component-map approach used by `MessagePrimitive.Parts`. Each part type receives a `part` object and its `index`. Registered toolkit renderers are automatically dispatched and take priority over `renderToolCall`.
366
-
367
- ```tsx
368
- <MessagePrimitive.Content
369
- renderText={({ part }) => <Text>{part.text}</Text>}
370
- renderToolCall={({ part, index }) => (
371
- <Text>Tool: {part.toolName}</Text>
372
- )}
373
- renderImage={({ part }) => (
374
- <Image source={{ uri: part.image }} />
375
- )}
376
- />
377
- ```
378
-
379
- | Prop | Type | Description |
380
- |------|------|-------------|
381
- | `renderText` | `(props: { part, index }) => ReactElement` | Renderer for text parts (default: React Native `<Text>`) |
382
- | `renderToolCall` | `(props: { part, index }) => ReactElement` | Fallback renderer for tool-call parts not handled by registered tool UIs |
383
- | `renderImage` | `(props: { part, index }) => ReactElement` | Renderer for image parts |
384
- | `renderReasoning` | `(props: { part, index }) => ReactElement` | Renderer for reasoning parts |
385
- | `renderSource` | `(props: { part, index }) => ReactElement` | Renderer for source parts |
386
- | `renderFile` | `(props: { part, index }) => ReactElement` | Renderer for file parts |
387
- | `renderData` | `(props: { part, index }) => ReactElement` | Fallback renderer for data parts not handled by registered data UIs |
388
-
389
- #### Rendering Markdown
390
-
391
- `MessagePrimitive.Content` renders text parts with React Native's `<Text>` by default, so markdown syntax is displayed as plain text. To render markdown, install a React Native markdown renderer and pass it through `renderText`:
392
-
393
- <InstallCommand npm={["react-native-markdown-display"]} />
394
-
395
- ```tsx
396
- import Markdown from "react-native-markdown-display";
397
- import { MessagePrimitive } from "@assistant-ui/react-native";
398
-
399
- const AssistantMessage = () => {
400
- return (
401
- <MessagePrimitive.Root>
402
- <MessagePrimitive.Content
403
- renderText={({ part }) => (
404
- <Markdown>{part.text}</Markdown>
405
- )}
406
- />
407
- </MessagePrimitive.Root>
408
- );
409
- };
410
- ```
411
-
412
- ### MessagePrimitive.Parts
413
-
414
- Renders message content parts via a `components` prop. Tool call and data parts automatically render registered toolkit renderers and data UIs (via `useAssistantDataUI`), falling back to components provided here. A default `Text` component using React Native's `<Text>` is provided out of the box.
415
-
416
- ```tsx
417
- <MessagePrimitive.Parts>
418
- {({ part }) => {
419
- if (part.type === "text") return <Text>{part.text}</Text>;
420
- if (part.type === "image") return <Image source={{ uri: part.image }} />;
421
- if (part.type === "tool-call") return <MyToolCallComponent {...part} />;
422
- return null;
423
- }}
424
- </MessagePrimitive.Parts>
425
- ```
426
-
427
- | Prop | Type | Description |
428
- |------|------|-------------|
429
- | `components` | `object` | Component map for rendering each part type. See below. |
430
-
431
- **`components` fields:**
432
-
433
- | Field | Type | Description |
434
- |-------|------|-------------|
435
- | `Text` | `TextMessagePartComponent` | Text part renderer (default: React Native `<Text>`) |
436
- | `Image` | `ImageMessagePartComponent` | Image part renderer |
437
- | `Reasoning` | `ReasoningMessagePartComponent` | Reasoning part renderer |
438
- | `Source` | `SourceMessagePartComponent` | Source part renderer |
439
- | `File` | `FileMessagePartComponent` | File part renderer |
440
- | `Unstable_Audio` | `Unstable_AudioMessagePartComponent` | Audio part renderer (deprecated, render `audio/*` from `File`) |
441
- | `tools` | `{ by_name?, Fallback? }` or `{ Override }` | Tool call rendering config — use `by_name` to map tool names to components, `Fallback` for unregistered tools, or `Override` to handle all tool calls |
442
- | `data` | `{ by_name?, Fallback? }` | Data part rendering config — use `by_name` to map data event names, `Fallback` for unmatched events |
443
- | `Empty` | `EmptyMessagePartComponent` | Component shown for empty messages |
444
- | `Quote` | `QuoteMessagePartComponent` | Component for rendering quoted message references |
445
- | `ChainOfThought` | `ComponentType` | Groups all reasoning and tool-call parts into a single component (mutually exclusive with `Reasoning`/`tools`/`ToolGroup`/`ReasoningGroup`) |
446
-
447
- ### MessagePrimitive.PartByIndex
448
-
449
- Renders a single message part at the specified index, providing part context. Useful for building custom part layouts outside of `MessagePrimitive.Parts`. This component is shared from `@assistant-ui/core/react`.
450
-
451
- ```tsx
452
- <MessagePrimitive.PartByIndex
453
- index={0}
454
- components={{
455
- Text: ({ text }) => <Text>{text}</Text>,
456
- tools: { Fallback: MyToolComponent },
457
- }}
458
- />
459
- ```
460
-
461
- | Prop | Type | Description |
462
- |------|------|-------------|
463
- | `index` | `number` | Zero-based index of the message part to render |
464
- | `components` | `object` | Same component map as `MessagePrimitive.Parts` |
465
-
466
- ### Conditional Rendering (Message)
467
-
468
- Use `AuiIf` for conditional rendering based on message properties:
469
-
470
- ```tsx
471
- <AuiIf condition={(s) => s.message.role === "user"}>
472
- <Text>You said:</Text>
473
- </AuiIf>
474
-
475
- <AuiIf condition={(s) => s.message.role === "assistant" && s.message.isLast}>
476
- <ActivityIndicator />
477
- </AuiIf>
478
- ```
479
-
480
- ### MessagePrimitive.Attachments
481
-
482
- Renders user message attachments using the provided component configuration.
483
-
484
- ```tsx
485
- <MessagePrimitive.Attachments>
486
- {({ attachment }) => {
487
- if (attachment.type === "image") return <MyImageAttachment />;
488
- return <MyFallbackAttachment />;
489
- }}
490
- </MessagePrimitive.Attachments>
491
- ```
492
-
493
- | Prop | Type | Description |
494
- |------|------|-------------|
495
- | `components` | `{ Image?, Document?, File?, Attachment? }` | Component renderers by attachment type |
496
-
497
- ### MessagePrimitive.AttachmentByIndex
498
-
499
- Renders a single message attachment at the specified index. Useful for building custom attachment layouts outside of `MessagePrimitive.Attachments`.
500
-
501
- ```tsx
502
- <MessagePrimitive.AttachmentByIndex
503
- index={0}
504
- components={{
505
- Image: MyImageAttachment,
506
- Attachment: MyFallbackAttachment,
507
- }}
508
- />
509
- ```
510
-
511
- | Prop | Type | Description |
512
- |------|------|-------------|
513
- | `index` | `number` | Zero-based index of the attachment to render |
514
- | `components` | `{ Image?, Document?, File?, Attachment? }` | Component renderers by attachment type |
515
-
516
- ## Attachment
517
-
518
- ```tsx
519
- import { AttachmentPrimitive } from "@assistant-ui/react-native";
520
- ```
521
-
522
- Primitives for rendering individual attachments (inside `ComposerPrimitive.Attachments` or `MessagePrimitive.Attachments`).
523
-
524
- ### AttachmentPrimitive.Root
525
-
526
- Container `View` for an attachment.
527
-
528
- ```tsx
529
- <AttachmentPrimitive.Root style={styles.attachment}>
530
- {children}
531
- </AttachmentPrimitive.Root>
532
- ```
533
-
534
- ### AttachmentPrimitive.Name
535
-
536
- `Text` component displaying the attachment filename.
537
-
538
- ```tsx
539
- <AttachmentPrimitive.Name style={styles.filename} />
540
- ```
541
-
542
- ### AttachmentPrimitive.Thumb
543
-
544
- `Text` component displaying the file extension (e.g. `.pdf`), or the attachment type (e.g. `image`) when the filename has no extension (including leading-dot names like `.env`). If you pass `children`, they override that text.
545
-
546
- ```tsx
547
- <AttachmentPrimitive.Thumb style={styles.extension} />
548
- ```
549
-
550
- ### AttachmentPrimitive.Remove
551
-
552
- `Pressable` that removes the attachment from the composer.
553
-
554
- ```tsx
555
- <AttachmentPrimitive.Remove>
556
- <Text>Remove</Text>
557
- </AttachmentPrimitive.Remove>
558
- ```
559
-
560
- ## ActionBar
561
-
562
- ```tsx
563
- import { ActionBarPrimitive } from "@assistant-ui/react-native";
564
- ```
565
-
566
- ### ActionBarPrimitive.Copy
567
-
568
- `Pressable` that copies the message content. Pass a platform clipboard writer through `copyToClipboard`. Supports function-as-children for copy state feedback.
569
-
570
- ```tsx
571
- import * as Clipboard from "expo-clipboard";
572
-
573
- const copyToClipboard = async (text: string) => {
574
- const didCopy = await Clipboard.setStringAsync(text);
575
- if (!didCopy) throw new Error("Clipboard write failed");
576
- };
577
-
578
- <ActionBarPrimitive.Copy
579
- copiedDuration={3000}
580
- copyToClipboard={copyToClipboard}
581
- >
582
- {({ isCopied }) => <Text>{isCopied ? "Copied!" : "Copy"}</Text>}
583
- </ActionBarPrimitive.Copy>
584
- ```
585
-
586
- | Prop | Type | Description |
587
- |------|------|-------------|
588
- | `copiedDuration` | `number` | Duration in ms to show "copied" state (default: 3000) |
589
- | `copyToClipboard` | `(text: string) => void \| Promise<void>` | Platform clipboard writer |
590
-
591
- ### ActionBarPrimitive.Edit
592
-
593
- `Pressable` that enters edit mode for a message.
594
-
595
- ```tsx
596
- <ActionBarPrimitive.Edit>
597
- <Text>Edit</Text>
598
- </ActionBarPrimitive.Edit>
599
- ```
600
-
601
- ### ActionBarPrimitive.Reload
602
-
603
- `Pressable` that regenerates an assistant message.
604
-
605
- ```tsx
606
- <ActionBarPrimitive.Reload>
607
- <Text>Retry</Text>
608
- </ActionBarPrimitive.Reload>
609
- ```
610
-
611
- ### ActionBarPrimitive.FeedbackPositive / ActionBarPrimitive.FeedbackNegative
612
-
613
- `Pressable` buttons for submitting message feedback.
614
-
615
- ```tsx
616
- <ActionBarPrimitive.FeedbackPositive>
617
- {({ isSubmitted }) => <Text>{isSubmitted ? "Liked" : "Like"}</Text>}
618
- </ActionBarPrimitive.FeedbackPositive>
619
-
620
- <ActionBarPrimitive.FeedbackNegative>
621
- {({ isSubmitted }) => <Text>{isSubmitted ? "Disliked" : "Dislike"}</Text>}
622
- </ActionBarPrimitive.FeedbackNegative>
623
- ```
624
-
625
- ## BranchPicker
626
-
627
- ```tsx
628
- import { BranchPickerPrimitive } from "@assistant-ui/react-native";
629
- ```
630
-
631
- ### BranchPickerPrimitive.Previous / BranchPickerPrimitive.Next
632
-
633
- `Pressable` buttons to navigate between message branches.
634
-
635
- ```tsx
636
- <View style={{ flexDirection: "row", alignItems: "center" }}>
637
- <BranchPickerPrimitive.Previous>
638
- <Text>-</Text>
639
- </BranchPickerPrimitive.Previous>
640
- <BranchPickerPrimitive.Number />
641
- <Text>/</Text>
642
- <BranchPickerPrimitive.Count />
643
- <BranchPickerPrimitive.Next>
644
- <Text>+</Text>
645
- </BranchPickerPrimitive.Next>
646
- </View>
647
- ```
648
-
649
- ### BranchPickerPrimitive.Number / BranchPickerPrimitive.Count
650
-
651
- `Text` components displaying the current branch number and total count.
652
-
653
- ## ThreadList
654
-
655
- ```tsx
656
- import { ThreadListPrimitive } from "@assistant-ui/react-native";
657
- ```
658
-
659
- ### ThreadListPrimitive.Root
660
-
661
- Container `View` for the thread list.
662
-
663
- ```tsx
664
- <ThreadListPrimitive.Root style={styles.threadList}>
665
- {children}
666
- </ThreadListPrimitive.Root>
667
- ```
668
-
669
- ### ThreadListPrimitive.Items
670
-
671
- `FlatList` of thread IDs with runtime integration.
672
-
673
- ```tsx
674
- <ThreadListPrimitive.Items
675
- renderItem={({ threadId }) => (
676
- <ThreadListEntry threadId={threadId} />
677
- )}
678
- />
679
- ```
680
-
681
- | Prop | Type | Description |
682
- |------|------|-------------|
683
- | `renderItem` | `(props: { threadId: string; index: number }) => ReactElement` | Thread item renderer |
684
- | `...rest` | `FlatListProps` | Standard FlatList props (except `data`, `renderItem`) |
685
-
686
- ### ThreadListPrimitive.New
687
-
688
- `Pressable` that creates a new thread.
689
-
690
- ```tsx
691
- <ThreadListPrimitive.New style={styles.newThreadButton}>
692
- <Text>New Chat</Text>
693
- </ThreadListPrimitive.New>
694
- ```
695
-
696
- ## ThreadListItem
697
-
698
- ```tsx
699
- import { ThreadListItemPrimitive } from "@assistant-ui/react-native";
700
- ```
701
-
702
- Primitives for rendering individual thread list items.
703
-
704
- ### ThreadListItemPrimitive.Root
705
-
706
- Container `View` for a thread list item.
707
-
708
- ```tsx
709
- <ThreadListItemPrimitive.Root style={styles.threadItem}>
710
- {children}
711
- </ThreadListItemPrimitive.Root>
712
- ```
713
-
714
- ### ThreadListItemPrimitive.Title
715
-
716
- Renders the thread title text. Falls back to the provided fallback when title is empty. This component is shared from `@assistant-ui/core/react`.
717
-
718
- ```tsx
719
- <ThreadListItemPrimitive.Title fallback="New Chat" />
720
- ```
721
-
722
- | Prop | Type | Description |
723
- |------|------|-------------|
724
- | `fallback` | `ReactNode` | Content to show when title is empty |
725
-
726
- ### ThreadListItemPrimitive.Trigger
727
-
728
- `Pressable` that switches to the thread.
729
-
730
- ```tsx
731
- <ThreadListItemPrimitive.Trigger>
732
- <ThreadListItemPrimitive.Title fallback="New Chat" />
733
- </ThreadListItemPrimitive.Trigger>
734
- ```
735
-
736
- ### ThreadListItemPrimitive.Delete
737
-
738
- `Pressable` that deletes the thread.
739
-
740
- ```tsx
741
- <ThreadListItemPrimitive.Delete>
742
- <Text>Delete</Text>
743
- </ThreadListItemPrimitive.Delete>
744
- ```
745
-
746
- ### ThreadListItemPrimitive.Archive / ThreadListItemPrimitive.Unarchive
747
-
748
- `Pressable` buttons that archive or unarchive the thread.
749
-
750
- ```tsx
751
- <ThreadListItemPrimitive.Archive>
752
- <Text>Archive</Text>
753
- </ThreadListItemPrimitive.Archive>
754
-
755
- <ThreadListItemPrimitive.Unarchive>
756
- <Text>Unarchive</Text>
757
- </ThreadListItemPrimitive.Unarchive>
758
- ```
759
-
760
- ## Suggestion
761
-
762
- ```tsx
763
- import { SuggestionPrimitive } from "@assistant-ui/react-native";
764
- ```
765
-
766
- Primitives for rendering suggestions. Use inside a `SuggestionByIndexProvider` (from `@assistant-ui/core/react`).
767
-
768
- ### SuggestionPrimitive.Title
769
-
770
- `Text` component displaying the suggestion title.
771
-
772
- ```tsx
773
- <SuggestionPrimitive.Title style={styles.suggestionTitle} />
774
- ```
775
-
776
- ### SuggestionPrimitive.Description
777
-
778
- `Text` component displaying the suggestion description/label.
779
-
780
- ```tsx
781
- <SuggestionPrimitive.Description style={styles.suggestionDescription} />
782
- ```
783
-
784
- ### SuggestionPrimitive.Trigger
785
-
786
- `Pressable` that triggers the suggestion action (send or insert into composer).
787
-
788
- ```tsx
789
- <SuggestionPrimitive.Trigger send>
790
- <SuggestionPrimitive.Title />
791
- </SuggestionPrimitive.Trigger>
792
- ```
793
-
794
- | Prop | Type | Description |
795
- |------|------|-------------|
796
- | `send` | `boolean` | When true, sends immediately; when false, inserts into composer |
797
- | `clearComposer` | `boolean` | Whether to clear/replace composer text (default: true) |
798
-
799
- ## ChainOfThought
800
-
801
- ```tsx
802
- import { ChainOfThoughtPrimitive } from "@assistant-ui/react-native";
803
- ```
804
-
805
- Primitives for rendering chain of thought content (grouped reasoning and tool-call parts).
806
-
807
- ### ChainOfThoughtPrimitive.Root
808
-
809
- Container `View` for chain of thought content.
810
-
811
- ```tsx
812
- <ChainOfThoughtPrimitive.Root style={styles.chainOfThought}>
813
- {children}
814
- </ChainOfThoughtPrimitive.Root>
815
- ```
816
-
817
- ### ChainOfThoughtPrimitive.AccordionTrigger
818
-
819
- `Pressable` that toggles the collapsed state of the chain of thought.
820
-
821
- ```tsx
822
- <ChainOfThoughtPrimitive.AccordionTrigger>
823
- <Text>Toggle reasoning</Text>
824
- </ChainOfThoughtPrimitive.AccordionTrigger>
825
- ```
826
-
827
- ### ChainOfThoughtPrimitive.Parts
828
-
829
- Renders the parts within a chain of thought. Shared from `@assistant-ui/core/react`.
830
-
831
- ```tsx
832
- <ChainOfThoughtPrimitive.Parts>
833
- {({ part }) => {
834
- if (part.type === "reasoning") return <Text>{part.text}</Text>;
835
- if (part.type === "tool-call") return <MyToolComponent {...part} />;
836
- return null;
837
- }}
838
- </ChainOfThoughtPrimitive.Parts>
839
- ```