@assistant-ui/mcp-docs-server 0.2.3 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) 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 +91 -0
  9. package/dist/proxy.js.map +1 -0
  10. package/package.json +8 -12
  11. package/src/index.ts +3 -115
  12. package/src/proxy.test.ts +385 -0
  13. package/src/proxy.ts +126 -0
  14. package/.docs/organized/code-examples/waterfall.md +0 -807
  15. package/.docs/organized/code-examples/with-a2a.md +0 -675
  16. package/.docs/organized/code-examples/with-ag-ui.md +0 -553
  17. package/.docs/organized/code-examples/with-ai-sdk-v7.md +0 -466
  18. package/.docs/organized/code-examples/with-artifacts.md +0 -815
  19. package/.docs/organized/code-examples/with-assistant-transport.md +0 -576
  20. package/.docs/organized/code-examples/with-browser-extension.md +0 -371
  21. package/.docs/organized/code-examples/with-chain-of-thought.md +0 -962
  22. package/.docs/organized/code-examples/with-cloud-standalone.md +0 -681
  23. package/.docs/organized/code-examples/with-cloud.md +0 -439
  24. package/.docs/organized/code-examples/with-custom-thread-list.md +0 -569
  25. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +0 -527
  26. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +0 -697
  27. package/.docs/organized/code-examples/with-eve.md +0 -405
  28. package/.docs/organized/code-examples/with-expo.md +0 -2246
  29. package/.docs/organized/code-examples/with-external-store.md +0 -421
  30. package/.docs/organized/code-examples/with-ffmpeg.md +0 -829
  31. package/.docs/organized/code-examples/with-generative-ui.md +0 -1810
  32. package/.docs/organized/code-examples/with-google-adk.md +0 -368
  33. package/.docs/organized/code-examples/with-heat-graph.md +0 -304
  34. package/.docs/organized/code-examples/with-image-generation.md +0 -463
  35. package/.docs/organized/code-examples/with-interactables.md +0 -733
  36. package/.docs/organized/code-examples/with-langchain.md +0 -446
  37. package/.docs/organized/code-examples/with-langgraph.md +0 -855
  38. package/.docs/organized/code-examples/with-livekit.md +0 -643
  39. package/.docs/organized/code-examples/with-mcp.md +0 -782
  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 -450
  43. package/.docs/organized/code-examples/with-pi.md +0 -2084
  44. package/.docs/organized/code-examples/with-react-hook-form.md +0 -727
  45. package/.docs/organized/code-examples/with-react-ink-web.md +0 -740
  46. package/.docs/organized/code-examples/with-react-ink.md +0 -473
  47. package/.docs/organized/code-examples/with-react-router.md +0 -936
  48. package/.docs/organized/code-examples/with-resumable-stream.md +0 -668
  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 -812
  53. package/.docs/organized/code-examples/with-tap-runtime.md +0 -813
  54. package/.docs/organized/code-examples/with-virtualized-thread.md +0 -681
  55. package/.docs/organized/code-examples/with-vue.md +0 -408
  56. package/.docs/raw/docs/(getting-started)/architecture.mdx +0 -146
  57. package/.docs/raw/docs/(getting-started)/base-ui.mdx +0 -39
  58. package/.docs/raw/docs/(getting-started)/cli.mdx +0 -542
  59. package/.docs/raw/docs/(getting-started)/devtools.mdx +0 -79
  60. package/.docs/raw/docs/(getting-started)/index.mdx +0 -23
  61. package/.docs/raw/docs/(getting-started)/installation.mdx +0 -483
  62. package/.docs/raw/docs/(getting-started)/llm.mdx +0 -211
  63. package/.docs/raw/docs/(getting-started)/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 -26
  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 -57
  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/ai-sdk.mdx +0 -200
  94. package/.docs/raw/docs/(reference)/api-reference/integrations/cloud-ai-sdk.mdx +0 -24
  95. package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +0 -118
  96. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +0 -28
  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 -637
  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 -152
  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 -604
  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 -411
  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 -215
  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 -237
  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.mdx +0 -283
  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 -976
  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 -267
  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 -731
  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 -363
  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 -1020
  289. package/.docs/raw/docs/tools/user-managed-mcp.mdx +0 -428
  290. package/.docs/raw/docs/ui/assistant-modal.mdx +0 -166
  291. package/.docs/raw/docs/ui/assistant-sidebar.mdx +0 -89
  292. package/.docs/raw/docs/ui/attachment.mdx +0 -279
  293. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +0 -247
  294. package/.docs/raw/docs/ui/context-display.mdx +0 -148
  295. package/.docs/raw/docs/ui/directive-text.mdx +0 -114
  296. package/.docs/raw/docs/ui/file.mdx +0 -159
  297. package/.docs/raw/docs/ui/follow-up-suggestions.mdx +0 -82
  298. package/.docs/raw/docs/ui/image.mdx +0 -102
  299. package/.docs/raw/docs/ui/markdown.mdx +0 -103
  300. package/.docs/raw/docs/ui/mcp-config.mdx +0 -107
  301. package/.docs/raw/docs/ui/mermaid.mdx +0 -92
  302. package/.docs/raw/docs/ui/message-timing.mdx +0 -93
  303. package/.docs/raw/docs/ui/model-selector.mdx +0 -455
  304. package/.docs/raw/docs/ui/part-grouping.mdx +0 -614
  305. package/.docs/raw/docs/ui/quote.mdx +0 -211
  306. package/.docs/raw/docs/ui/reasoning.mdx +0 -214
  307. package/.docs/raw/docs/ui/scrollbar.mdx +0 -77
  308. package/.docs/raw/docs/ui/sources.mdx +0 -186
  309. package/.docs/raw/docs/ui/streamdown.mdx +0 -392
  310. package/.docs/raw/docs/ui/syntax-highlighting.mdx +0 -205
  311. package/.docs/raw/docs/ui/thread-list.mdx +0 -411
  312. package/.docs/raw/docs/ui/thread.mdx +0 -559
  313. package/.docs/raw/docs/ui/tool-fallback.mdx +0 -141
  314. package/.docs/raw/docs/ui/tool-group.mdx +0 -240
  315. package/.docs/raw/docs/ui/voice.mdx +0 -173
  316. package/.docs/raw/docs/utilities/heat-graph.mdx +0 -237
  317. package/.docs/raw/docs/utilities/react-o11y.mdx +0 -362
  318. package/.docs/raw/docs/utilities/tw-shimmer.mdx +0 -212
  319. package/dist/constants.d.ts +0 -14
  320. package/dist/constants.d.ts.map +0 -1
  321. package/dist/constants.js +0 -19
  322. package/dist/constants.js.map +0 -1
  323. package/dist/prepare-docs/code-examples.d.ts +0 -5
  324. package/dist/prepare-docs/code-examples.d.ts.map +0 -1
  325. package/dist/prepare-docs/code-examples.js +0 -117
  326. package/dist/prepare-docs/code-examples.js.map +0 -1
  327. package/dist/prepare-docs/copy-raw.d.ts +0 -5
  328. package/dist/prepare-docs/copy-raw.d.ts.map +0 -1
  329. package/dist/prepare-docs/copy-raw.js +0 -49
  330. package/dist/prepare-docs/copy-raw.js.map +0 -1
  331. package/dist/prepare-docs/prepare.d.ts +0 -1
  332. package/dist/prepare-docs/prepare.js +0 -22
  333. package/dist/prepare-docs/prepare.js.map +0 -1
  334. package/dist/prompts/xulux-playground.d.ts +0 -12
  335. package/dist/prompts/xulux-playground.d.ts.map +0 -1
  336. package/dist/prompts/xulux-playground.js +0 -33
  337. package/dist/prompts/xulux-playground.js.map +0 -1
  338. package/dist/tools/docs.d.ts +0 -22
  339. package/dist/tools/docs.d.ts.map +0 -1
  340. package/dist/tools/docs.js +0 -177
  341. package/dist/tools/docs.js.map +0 -1
  342. package/dist/tools/examples.d.ts +0 -24
  343. package/dist/tools/examples.d.ts.map +0 -1
  344. package/dist/tools/examples.js +0 -87
  345. package/dist/tools/examples.js.map +0 -1
  346. package/dist/tools/resources.d.ts +0 -6
  347. package/dist/tools/resources.d.ts.map +0 -1
  348. package/dist/tools/resources.js +0 -75
  349. package/dist/tools/resources.js.map +0 -1
  350. package/dist/tools/search.d.ts +0 -24
  351. package/dist/tools/search.d.ts.map +0 -1
  352. package/dist/tools/search.js +0 -39
  353. package/dist/tools/search.js.map +0 -1
  354. package/dist/tools/tests/mcp-test-client.d.ts +0 -15
  355. package/dist/tools/tests/mcp-test-client.d.ts.map +0 -1
  356. package/dist/tools/tests/mcp-test-client.js +0 -68
  357. package/dist/tools/tests/mcp-test-client.js.map +0 -1
  358. package/dist/tools/tests/test-setup.d.ts +0 -7
  359. package/dist/tools/tests/test-setup.d.ts.map +0 -1
  360. package/dist/tools/tests/test-setup.js +0 -36
  361. package/dist/tools/tests/test-setup.js.map +0 -1
  362. package/dist/tools/xulux-templates.d.ts +0 -58
  363. package/dist/tools/xulux-templates.d.ts.map +0 -1
  364. package/dist/tools/xulux-templates.js +0 -84
  365. package/dist/tools/xulux-templates.js.map +0 -1
  366. package/dist/utils/cache.d.ts +0 -5
  367. package/dist/utils/cache.d.ts.map +0 -1
  368. package/dist/utils/cache.js +0 -18
  369. package/dist/utils/cache.js.map +0 -1
  370. package/dist/utils/logger.d.ts +0 -10
  371. package/dist/utils/logger.d.ts.map +0 -1
  372. package/dist/utils/logger.js +0 -20
  373. package/dist/utils/logger.js.map +0 -1
  374. package/dist/utils/mcp-format.d.ts +0 -11
  375. package/dist/utils/mcp-format.d.ts.map +0 -1
  376. package/dist/utils/mcp-format.js +0 -14
  377. package/dist/utils/mcp-format.js.map +0 -1
  378. package/dist/utils/mdx.d.ts +0 -12
  379. package/dist/utils/mdx.d.ts.map +0 -1
  380. package/dist/utils/mdx.js +0 -45
  381. package/dist/utils/mdx.js.map +0 -1
  382. package/dist/utils/paths.d.ts +0 -12
  383. package/dist/utils/paths.d.ts.map +0 -1
  384. package/dist/utils/paths.js +0 -93
  385. package/dist/utils/paths.js.map +0 -1
  386. package/dist/utils/search.d.ts +0 -10
  387. package/dist/utils/search.d.ts.map +0 -1
  388. package/dist/utils/search.js +0 -97
  389. package/dist/utils/search.js.map +0 -1
  390. package/dist/utils/security.d.ts +0 -5
  391. package/dist/utils/security.d.ts.map +0 -1
  392. package/dist/utils/security.js +0 -22
  393. package/dist/utils/security.js.map +0 -1
  394. package/dist/xulux/catalog-client.d.ts +0 -14
  395. package/dist/xulux/catalog-client.d.ts.map +0 -1
  396. package/dist/xulux/catalog-client.js +0 -112
  397. package/dist/xulux/catalog-client.js.map +0 -1
  398. package/dist/xulux/fallback-catalog.d.ts +0 -7
  399. package/dist/xulux/fallback-catalog.d.ts.map +0 -1
  400. package/dist/xulux/fallback-catalog.js +0 -47
  401. package/dist/xulux/fallback-catalog.js.map +0 -1
  402. package/dist/xulux/fetch-sandbox.d.ts +0 -5
  403. package/dist/xulux/fetch-sandbox.d.ts.map +0 -1
  404. package/dist/xulux/fetch-sandbox.js +0 -40
  405. package/dist/xulux/fetch-sandbox.js.map +0 -1
  406. package/dist/xulux/template-service.d.ts +0 -84
  407. package/dist/xulux/template-service.d.ts.map +0 -1
  408. package/dist/xulux/template-service.js +0 -223
  409. package/dist/xulux/template-service.js.map +0 -1
  410. package/dist/xulux/types.d.ts +0 -55
  411. package/dist/xulux/types.d.ts.map +0 -1
  412. package/dist/xulux/types.js +0 -6
  413. package/dist/xulux/types.js.map +0 -1
  414. package/src/constants.ts +0 -24
  415. package/src/prepare-docs/code-examples.ts +0 -158
  416. package/src/prepare-docs/copy-raw.ts +0 -50
  417. package/src/prepare-docs/prepare.ts +0 -24
  418. package/src/prompts/xulux-playground.ts +0 -36
  419. package/src/tools/docs.ts +0 -255
  420. package/src/tools/examples.ts +0 -114
  421. package/src/tools/resources.ts +0 -111
  422. package/src/tools/search.ts +0 -46
  423. package/src/tools/tests/completions.test.ts +0 -60
  424. package/src/tools/tests/directory-size-cap.test.ts +0 -50
  425. package/src/tools/tests/docs.test.ts +0 -147
  426. package/src/tools/tests/examples.test.ts +0 -94
  427. package/src/tools/tests/integration.test.ts +0 -45
  428. package/src/tools/tests/json-parsing.test.ts +0 -23
  429. package/src/tools/tests/listings-cache.test.ts +0 -19
  430. package/src/tools/tests/mcp-protocol.test.ts +0 -216
  431. package/src/tools/tests/mcp-test-client.ts +0 -111
  432. package/src/tools/tests/path-traversal.test.ts +0 -84
  433. package/src/tools/tests/resources.test.ts +0 -133
  434. package/src/tools/tests/search.test.ts +0 -37
  435. package/src/tools/tests/test-setup.ts +0 -50
  436. package/src/tools/tests/xulux-templates.test.ts +0 -325
  437. package/src/tools/xulux-templates.ts +0 -141
  438. package/src/utils/cache.ts +0 -20
  439. package/src/utils/logger.ts +0 -20
  440. package/src/utils/mcp-format.ts +0 -14
  441. package/src/utils/mdx.ts +0 -59
  442. package/src/utils/paths.ts +0 -139
  443. package/src/utils/search.ts +0 -131
  444. package/src/utils/security.ts +0 -52
  445. package/src/utils/tests/cache.test.ts +0 -51
  446. package/src/utils/tests/mcp-format.test.ts +0 -22
  447. package/src/utils/tests/security.test.ts +0 -119
  448. package/src/xulux/catalog-client.ts +0 -150
  449. package/src/xulux/fallback-catalog.ts +0 -63
  450. package/src/xulux/fetch-sandbox.ts +0 -56
  451. package/src/xulux/template-service.ts +0 -406
  452. package/src/xulux/types.ts +0 -64
@@ -1,469 +0,0 @@
1
- ---
2
- title: Hooks
3
- description: Reactive hooks for accessing runtime state in React Ink.
4
- ---
5
-
6
- ## State Hooks
7
-
8
- ### useAuiState
9
-
10
- The primary hook for accessing reactive state. It accepts a selector function for fine-grained re-renders — the component only re-renders when the selected value changes (shallow equality).
11
-
12
- ```tsx
13
- import { useAuiState } from "@assistant-ui/react-ink";
14
-
15
- // Thread state
16
- const messages = useAuiState((s) => s.thread.messages);
17
- const isRunning = useAuiState((s) => s.thread.isRunning);
18
- const isEmpty = useAuiState((s) => s.thread.isEmpty);
19
-
20
- // Composer state
21
- const text = useAuiState((s) => s.composer.text);
22
- const composerIsEmpty = useAuiState((s) => s.composer.isEmpty);
23
- const attachments = useAuiState((s) => s.composer.attachments);
24
-
25
- // Message state (inside a message context)
26
- const role = useAuiState((s) => s.message.role);
27
- const isLast = useAuiState((s) => s.message.isLast);
28
-
29
- // Thread list item state
30
- const threadId = useAuiState((s) => s.threadListItem.id);
31
- const title = useAuiState((s) => s.threadListItem.title);
32
- ```
33
-
34
- ### useAui
35
-
36
- Access the store methods for imperative actions.
37
-
38
- ```tsx
39
- import { useAui } from "@assistant-ui/react-ink";
40
-
41
- const aui = useAui();
42
-
43
- // Composer actions
44
- aui.composer.setText("Hello");
45
- aui.composer.send();
46
-
47
- // Thread actions
48
- aui.thread.cancelRun();
49
- ```
50
-
51
- ### useAuiEvent
52
-
53
- Subscribe to events without causing re-renders.
54
-
55
- ```tsx
56
- import { useAuiEvent } from "@assistant-ui/react-ink";
57
-
58
- useAuiEvent("thread.runStart", (payload) => {
59
- console.log("Run started:", payload);
60
- });
61
- ```
62
-
63
- ### useNotification
64
-
65
- Ring the terminal bell and emit an OSC desktop notification when the assistant finishes a run, stops with an error, or pauses for user input.
66
-
67
- ```tsx
68
- import { useNotification } from "@assistant-ui/react-ink";
69
-
70
- useNotification();
71
- ```
72
-
73
- Defaults:
74
-
75
- - `task-complete`: bell + OSC 9
76
- - `task-incomplete`: bell
77
- - `needs-input` (assistant message in `requires-action` with `reason: "interrupt"`): bell
78
-
79
- Pass `false` to suppress one trigger, or a `NotificationHandler` to override it:
80
-
81
- ```tsx
82
- useNotification({
83
- onTaskComplete: { osc: "osc99" },
84
- onTaskIncomplete: false,
85
- onNeedsInput: {
86
- custom: (event) => myLogger.log(event),
87
- },
88
- });
89
- ```
90
-
91
- | Option | Type | Description |
92
- |--------|------|-------------|
93
- | `enabled` | `boolean` | Master switch. Defaults to `true`. |
94
- | `onTaskComplete` | `NotificationHandler<"task-complete"> \| false` | Fired when the latest assistant message status flips to `complete` after a run was observed. |
95
- | `onTaskIncomplete` | `NotificationHandler<"task-incomplete"> \| false` | Fired when the latest assistant message status flips to `incomplete` after a run was observed. |
96
- | `onNeedsInput` | `NotificationHandler<"needs-input"> \| false` | Fired when the latest assistant message enters `requires-action` with `reason: "interrupt"`. Tool-call pauses are skipped. |
97
-
98
- `NotificationHandler<T>` fields (all optional, any combination):
99
-
100
- | Field | Type | Description |
101
- |-------|------|-------------|
102
- | `bell` | `boolean` | Ring the terminal bell (`\x07`). |
103
- | `osc` | `boolean \| "osc9" \| "osc99" \| "osc777"` | Send an OSC notification. `true` is equivalent to `"osc9"`. |
104
- | `custom` | `(event: Extract<NotificationEvent, { type: T }>) => void` | User callback invoked with the event payload narrowed to this handler's type. |
105
-
106
- Notifications are deduplicated per `thread:message:status:reason` tuple, so passing an inline config object does not produce duplicate fires. `ringBell` and `sendOSCNotification(title, body?, variant?)` are also exported for imperative use. OSC support depends on the terminal emulator.
107
-
108
- ## Runtime Hooks
109
-
110
- ### useLocalRuntime
111
-
112
- Create an `AssistantRuntime` with a `ChatModelAdapter`.
113
-
114
- ```tsx
115
- import { useLocalRuntime } from "@assistant-ui/react-ink";
116
-
117
- const runtime = useLocalRuntime(chatModel, {
118
- initialMessages: [],
119
- });
120
- ```
121
-
122
- | Option | Type | Description |
123
- |--------|------|-------------|
124
- | `initialMessages` | `ThreadMessageLike[]` | Messages to pre-populate the thread with |
125
- | `maxSteps` | `number` | Maximum number of agentic steps before stopping |
126
- | `adapters.history` | `ThreadHistoryAdapter` | Adapter for persisting thread history |
127
- | `adapters.attachments` | `AttachmentAdapter` | Adapter for handling file attachments |
128
- | `adapters.speech` | `SpeechSynthesisAdapter` | Adapter for text-to-speech output |
129
- | `adapters.dictation` | `DictationAdapter` | Adapter for speech-to-text input |
130
- | `adapters.feedback` | `FeedbackAdapter` | Adapter for message feedback (thumbs up/down) |
131
- | `adapters.suggestion` | `SuggestionAdapter` | Adapter for suggested prompts |
132
- | `cloud` | `AssistantCloud` | Cloud instance for thread persistence via `assistant-cloud` |
133
- | `unstable_humanToolNames` | `string[]` | Tool names that pause the run until a result is added via `addResult` |
134
-
135
- ### useRemoteThreadListRuntime
136
-
137
- Create an `AssistantRuntime` backed by a `RemoteThreadListAdapter` for multi-thread persistence. The `runtimeHook` is called for each thread to produce the per-thread runtime (typically `useLocalRuntime`).
138
-
139
- ```tsx
140
- import { useRemoteThreadListRuntime, useLocalRuntime } from "@assistant-ui/react-ink";
141
-
142
- const runtime = useRemoteThreadListRuntime({
143
- adapter: myRemoteAdapter,
144
- runtimeHook: () => useLocalRuntime(chatModel),
145
- });
146
- ```
147
-
148
- | Option | Type | Description |
149
- |--------|------|-------------|
150
- | `runtimeHook` | `() => AssistantRuntime` | Hook called to produce the per-thread runtime |
151
- | `adapter` | `RemoteThreadListAdapter` | Adapter implementing thread list persistence |
152
- | `allowNesting` | `boolean` | When true, becomes a no-op if nested inside another `RemoteThreadListRuntime` |
153
-
154
- ## Model Context Hooks
155
-
156
- ### Tools
157
-
158
- Author tools with `defineToolkit`, the same API as on the web ([Defining Tools](/docs/tools/defining-tools)). The tool definition is forwarded to the model; when the model calls it, the `execute` function runs and the `render` component displays the result.
159
-
160
- <Callout type="info">
161
- An Ink app runs in a single Node process, so there is no client/server
162
- boundary to split and no build step. `defineToolkit` from
163
- `@assistant-ui/react-ink` runs at runtime: import it as a value, with no
164
- `"use generative"` directive and no `"use client"` inside `execute`.
165
- </Callout>
166
-
167
- ```tsx title="weather-toolkit.tsx"
168
- import { defineToolkit } from "@assistant-ui/react-ink";
169
- import { Text } from "ink";
170
- import { z } from "zod";
171
-
172
- export default defineToolkit({
173
- get_weather: {
174
- description: "Get the current weather for a city",
175
- parameters: z.object({ city: z.string() }),
176
- execute: async ({ city }) => {
177
- const res = await fetch(`https://api.weather.example/${city}`);
178
- return res.json();
179
- },
180
- render: ({ args, result }) => (
181
- <Text>
182
- {args.city}: {result?.temperature}°F
183
- </Text>
184
- ),
185
- },
186
- });
187
- ```
188
-
189
- ```tsx title="ToolProvider.tsx"
190
- import { AuiConfig, AuiProvider, Tools, useAui } from "@assistant-ui/react-ink";
191
- import toolkit from "./weather-toolkit";
192
-
193
- function ToolProvider({ children }: { children: React.ReactNode }) {
194
- const aui = useAui();
195
- const config = AuiConfig({ tools: Tools({ toolkit }) });
196
- return (
197
- <AuiProvider extends={aui} config={config}>
198
- {children}
199
- </AuiProvider>
200
- );
201
- }
202
- ```
203
-
204
- ### useAssistantInstructions
205
-
206
- Register system instructions in the model context.
207
-
208
- ```tsx
209
- import { useAssistantInstructions } from "@assistant-ui/react-ink";
210
-
211
- useAssistantInstructions("You are a helpful terminal assistant.");
212
- ```
213
-
214
- ### useAssistantDataUI
215
-
216
- Register a UI renderer for a named data part type. When a message contains a data part with the given `name`, the `render` component is used.
217
-
218
- ```tsx
219
- import { useAssistantDataUI } from "@assistant-ui/react-ink";
220
- import { Text } from "ink";
221
-
222
- useAssistantDataUI({
223
- name: "weather_card",
224
- render: ({ data }) => (
225
- <Text>{data.city}: {data.temperature}°F</Text>
226
- ),
227
- });
228
- ```
229
- ### Dynamic Tool Renderers
230
-
231
- Use a toolkit with `useInlineRender` when the renderer closes over changing props.
232
-
233
- ### makeAssistantDataUI
234
-
235
- Create a component that registers a data UI renderer when mounted.
236
-
237
- ```tsx
238
- import { makeAssistantDataUI } from "@assistant-ui/react-ink";
239
- import { Text } from "ink";
240
-
241
- const WeatherCardUI = makeAssistantDataUI({
242
- name: "weather_card",
243
- render: ({ data }) => (
244
- <Text>{data.city}: {data.temperature}°F</Text>
245
- ),
246
- });
247
-
248
- // Mount inside AssistantRuntimeProvider to register
249
- <WeatherCardUI />
250
- ```
251
-
252
- ### useInlineRender
253
-
254
- Wrap a render function component so that it always uses the latest version without re-creating a stable reference. Useful when passing a render prop inline and the function closes over changing state.
255
-
256
- ```tsx title="weather-toolkit.tsx"
257
- import { defineToolkit, useInlineRender } from "@assistant-ui/react-ink";
258
- import { Text } from "ink";
259
- import { useMemo } from "react";
260
-
261
- export function useWeatherToolkit() {
262
- const render = useInlineRender(({ args, result }) => (
263
- <Text>{args.city}: {result?.temperature}°F</Text>
264
- ));
265
-
266
- return useMemo(
267
- () =>
268
- defineToolkit({
269
- get_weather: {
270
- type: "backend",
271
- render,
272
- },
273
- }),
274
- [render],
275
- );
276
- }
277
- ```
278
-
279
- Import the toolkit hook and mount it with `<AuiProvider extends={aui} config={config}>` where `const aui = useAui()` and `const config = AuiConfig({ tools: Tools({ toolkit }) })`, as shown in the [Tools](#tools) section above.
280
-
281
- ## Runtime Providers
282
-
283
- ### AssistantRuntimeProvider
284
-
285
- Connects an `AssistantRuntime` to the React tree. All primitives and hooks must be used inside this provider.
286
-
287
- ```tsx
288
- import { AssistantRuntimeProvider, useLocalRuntime } from "@assistant-ui/react-ink";
289
-
290
- const runtime = useLocalRuntime(chatModel);
291
-
292
- <AssistantRuntimeProvider runtime={runtime}>
293
- {/* app content */}
294
- </AssistantRuntimeProvider>
295
- ```
296
-
297
- | Prop | Type | Description |
298
- |------|------|-------------|
299
- | `runtime` | `AssistantRuntime` | The runtime instance to provide |
300
-
301
- ## Context Providers
302
-
303
- These low-level providers are used to set up scoped contexts for rendering primitives outside of the standard `ThreadPrimitive.Messages` / `MessagePrimitive.Parts` hierarchy.
304
-
305
- ### MessageByIndexProvider
306
-
307
- Sets up the message context for a given message index in the thread. Used internally by `ThreadPrimitive.Messages`.
308
-
309
- ```tsx
310
- import { MessageByIndexProvider } from "@assistant-ui/react-ink";
311
-
312
- <MessageByIndexProvider index={0}>
313
- <MessagePrimitive.Root>...</MessagePrimitive.Root>
314
- </MessageByIndexProvider>
315
- ```
316
-
317
- | Prop | Type | Description |
318
- |------|------|-------------|
319
- | `index` | `number` | Zero-based index of the message in the thread |
320
-
321
- ### PartByIndexProvider
322
-
323
- Sets up the part context for a given part index in the current message. Used internally by `MessagePrimitive.Parts`.
324
-
325
- ```tsx
326
- import { PartByIndexProvider } from "@assistant-ui/react-ink";
327
-
328
- <PartByIndexProvider index={0}>
329
- {/* part content */}
330
- </PartByIndexProvider>
331
- ```
332
-
333
- | Prop | Type | Description |
334
- |------|------|-------------|
335
- | `index` | `number` | Zero-based index of the part in the message |
336
-
337
- ### TextMessagePartProvider
338
-
339
- Provides a synthetic text part context with a fixed text value. Useful for rendering text content outside of a real message part (e.g., in previews or testing).
340
-
341
- ```tsx
342
- import { TextMessagePartProvider } from "@assistant-ui/react-ink";
343
-
344
- <TextMessagePartProvider text="Hello world" isRunning={false}>
345
- {/* content rendered with a text part context */}
346
- </TextMessagePartProvider>
347
- ```
348
-
349
- | Prop | Type | Description |
350
- |------|------|-------------|
351
- | `text` | `string` | The text content for the synthetic part |
352
- | `isRunning` | `boolean` | Whether the part should appear as running (default: `false`) |
353
-
354
- ### ChainOfThoughtByIndicesProvider
355
-
356
- Sets up a chain-of-thought context spanning a range of message parts by start and end index. Used to group consecutive reasoning parts.
357
-
358
- ```tsx
359
- import { ChainOfThoughtByIndicesProvider } from "@assistant-ui/react-ink";
360
-
361
- <ChainOfThoughtByIndicesProvider startIndex={1} endIndex={3}>
362
- <ChainOfThoughtPrimitive.Root>...</ChainOfThoughtPrimitive.Root>
363
- </ChainOfThoughtByIndicesProvider>
364
- ```
365
-
366
- | Prop | Type | Description |
367
- |------|------|-------------|
368
- | `startIndex` | `number` | Index of the first part in the chain-of-thought range |
369
- | `endIndex` | `number` | Index of the last part in the chain-of-thought range |
370
-
371
- ### ChainOfThoughtPartByIndexProvider
372
-
373
- Sets up the part context for a specific part within the current chain-of-thought by index.
374
-
375
- ```tsx
376
- import { ChainOfThoughtPartByIndexProvider } from "@assistant-ui/react-ink";
377
-
378
- <ChainOfThoughtPartByIndexProvider index={0}>
379
- {/* chain-of-thought part content */}
380
- </ChainOfThoughtPartByIndexProvider>
381
- ```
382
-
383
- | Prop | Type | Description |
384
- |------|------|-------------|
385
- | `index` | `number` | Zero-based index of the part within the chain-of-thought |
386
-
387
- ### SuggestionByIndexProvider
388
-
389
- Sets up the suggestion context for a given suggestion index. Used internally by `ThreadPrimitive.Suggestions`.
390
-
391
- ```tsx
392
- import { SuggestionByIndexProvider } from "@assistant-ui/react-ink";
393
-
394
- <SuggestionByIndexProvider index={0}>
395
- <SuggestionPrimitive.Title />
396
- </SuggestionByIndexProvider>
397
- ```
398
-
399
- | Prop | Type | Description |
400
- |------|------|-------------|
401
- | `index` | `number` | Zero-based index of the suggestion |
402
-
403
- ### ThreadListItemByIndexProvider
404
-
405
- Sets up the thread list item context for a given index, differentiating between regular and archived threads.
406
-
407
- ```tsx
408
- import { ThreadListItemByIndexProvider } from "@assistant-ui/react-ink";
409
-
410
- <ThreadListItemByIndexProvider index={0} archived={false}>
411
- <ThreadListItemPrimitive.Root>...</ThreadListItemPrimitive.Root>
412
- </ThreadListItemByIndexProvider>
413
- ```
414
-
415
- | Prop | Type | Description |
416
- |------|------|-------------|
417
- | `index` | `number` | Zero-based index in the thread list |
418
- | `archived` | `boolean` | Whether to index into the archived thread list |
419
-
420
- ### ThreadListItemRuntimeProvider
421
-
422
- Sets up the thread list item context from a `ThreadListItemRuntime` instance directly.
423
-
424
- ```tsx
425
- import { ThreadListItemRuntimeProvider } from "@assistant-ui/react-ink";
426
-
427
- <ThreadListItemRuntimeProvider runtime={threadListItemRuntime}>
428
- <ThreadListItemPrimitive.Root>...</ThreadListItemPrimitive.Root>
429
- </ThreadListItemRuntimeProvider>
430
- ```
431
-
432
- | Prop | Type | Description |
433
- |------|------|-------------|
434
- | `runtime` | `ThreadListItemRuntime` | The thread list item runtime instance |
435
-
436
- ### MessageAttachmentByIndexProvider
437
-
438
- Sets up the attachment context for a specific message attachment by index.
439
-
440
- ```tsx
441
- import { MessageAttachmentByIndexProvider } from "@assistant-ui/react-ink";
442
-
443
- <MessageAttachmentByIndexProvider index={0}>
444
- <AttachmentPrimitive.Name />
445
- </MessageAttachmentByIndexProvider>
446
- ```
447
-
448
- | Prop | Type | Description |
449
- |------|------|-------------|
450
- | `index` | `number` | Zero-based index of the attachment in the message |
451
-
452
- ### ComposerAttachmentByIndexProvider
453
-
454
- Sets up the attachment context for a specific composer attachment by index.
455
-
456
- ```tsx
457
- import { ComposerAttachmentByIndexProvider } from "@assistant-ui/react-ink";
458
-
459
- <ComposerAttachmentByIndexProvider index={0}>
460
- <AttachmentPrimitive.Name />
461
- <AttachmentPrimitive.Remove>
462
- <Text color="red">[x]</Text>
463
- </AttachmentPrimitive.Remove>
464
- </ComposerAttachmentByIndexProvider>
465
- ```
466
-
467
- | Prop | Type | Description |
468
- |------|------|-------------|
469
- | `index` | `number` | Zero-based index of the attachment in the composer |
@@ -1,237 +0,0 @@
1
- ---
2
- title: Terminal AI Chat with Ink
3
- description: Build AI chat interfaces for the terminal in TypeScript with @assistant-ui/react-ink — streaming, tool calls, and keyboard navigation in CLI apps.
4
- ---
5
-
6
- ## Quick Start
7
-
8
- The fastest way to get started with assistant-ui for the terminal.
9
-
10
- <Steps>
11
- <Step>
12
-
13
- ### Create a new project
14
-
15
- ```sh
16
- npx assistant-ui@latest create --ink my-chat-app
17
- cd my-chat-app
18
- ```
19
-
20
- </Step>
21
- <Step>
22
-
23
- ### Install dependencies
24
-
25
- ```sh
26
- pnpm install
27
- ```
28
-
29
- </Step>
30
- <Step>
31
-
32
- ### Start the app
33
-
34
- ```sh
35
- pnpm dev
36
- ```
37
-
38
- </Step>
39
- </Steps>
40
-
41
- ## Manual Setup
42
-
43
- If you prefer to add assistant-ui to an existing Node.js project, follow these steps.
44
-
45
- <Steps>
46
- <Step>
47
-
48
- ### Install dependencies
49
-
50
- <InstallCommand npm={["@assistant-ui/react-ink", "@assistant-ui/react-ink-markdown", "ink", "react"]} />
51
-
52
- </Step>
53
- <Step>
54
-
55
- ### Create a chat model adapter
56
-
57
- Define how your app communicates with your AI backend. This example uses a simple streaming adapter:
58
-
59
- ```ts title="adapters/my-chat-adapter.ts"
60
- import type { ChatModelAdapter } from "@assistant-ui/react-ink";
61
-
62
- export const myChatAdapter: ChatModelAdapter = {
63
- async *run({ messages, abortSignal }) {
64
- const response = await fetch("http://localhost:3000/api/chat", {
65
- method: "POST",
66
- headers: { "Content-Type": "application/json" },
67
- body: JSON.stringify({ messages }),
68
- signal: abortSignal,
69
- });
70
-
71
- const reader = response.body?.getReader();
72
- if (!reader) throw new Error("No response body");
73
-
74
- const decoder = new TextDecoder();
75
- let fullText = "";
76
-
77
- while (true) {
78
- const { done, value } = await reader.read();
79
- if (done) break;
80
-
81
- const chunk = decoder.decode(value, { stream: true });
82
- fullText += chunk;
83
- yield { content: [{ type: "text", text: fullText }] };
84
- }
85
- },
86
- };
87
- ```
88
-
89
- <Callout type="info">
90
- This is the same `ChatModelAdapter` interface used in `@assistant-ui/react` and `@assistant-ui/react-native`. If you already have an adapter, you can reuse it as-is.
91
- </Callout>
92
-
93
- </Step>
94
- <Step>
95
-
96
- ### Set up the runtime
97
-
98
- ```tsx title="app.tsx"
99
- import { Box, Text } from "ink";
100
- import {
101
- AssistantRuntimeProvider,
102
- useLocalRuntime,
103
- } from "@assistant-ui/react-ink";
104
- import { myChatAdapter } from "./adapters/my-chat-adapter.js";
105
-
106
- export function App() {
107
- const runtime = useLocalRuntime(myChatAdapter);
108
-
109
- return (
110
- <AssistantRuntimeProvider runtime={runtime}>
111
- <Box flexDirection="column" padding={1}>
112
- <Text bold color="cyan">My Terminal Chat</Text>
113
- {/* your chat UI */}
114
- </Box>
115
- </AssistantRuntimeProvider>
116
- );
117
- }
118
- ```
119
-
120
- </Step>
121
- <Step>
122
-
123
- ### Build your chat UI
124
-
125
- Use primitives to compose your terminal chat interface:
126
-
127
- ```tsx title="components/thread.tsx"
128
- import { Box, Text } from "ink";
129
- import {
130
- AuiIf,
131
- ThreadPrimitive,
132
- ComposerPrimitive,
133
- LoadingPrimitive,
134
- useAuiState,
135
- } from "@assistant-ui/react-ink";
136
- import { MarkdownText } from "@assistant-ui/react-ink-markdown";
137
-
138
- const Message = () => {
139
- const message = useAuiState((s) => s.message);
140
- const isUser = message.role === "user";
141
- const text = message.content
142
- .filter((p) => p.type === "text")
143
- .map((p) => ("text" in p ? p.text : ""))
144
- .join("");
145
-
146
- if (isUser) {
147
- return (
148
- <Box marginBottom={1}>
149
- <Text bold color="green">You: </Text>
150
- <Text wrap="wrap">{text}</Text>
151
- </Box>
152
- );
153
- }
154
-
155
- return (
156
- <Box flexDirection="column" marginBottom={1}>
157
- <Text bold color="blue">AI:</Text>
158
- <MarkdownText text={text} />
159
- </Box>
160
- );
161
- };
162
-
163
- const StatusIndicator = () => (
164
- <LoadingPrimitive.Root marginBottom={1} gap={1}>
165
- <LoadingPrimitive.Spinner variant="bar" />
166
- <LoadingPrimitive.Text />
167
- <LoadingPrimitive.ElapsedTime />
168
- </LoadingPrimitive.Root>
169
- );
170
-
171
- export const Thread = () => {
172
- return (
173
- <ThreadPrimitive.Root>
174
- <AuiIf condition={(s) => s.thread.isEmpty}>
175
- <Box marginBottom={1}>
176
- <Text dimColor>No messages yet. Start typing below!</Text>
177
- </Box>
178
- </AuiIf>
179
-
180
- <ThreadPrimitive.Messages>
181
- {() => <Message />}
182
- </ThreadPrimitive.Messages>
183
-
184
- <StatusIndicator />
185
-
186
- <Box borderStyle="round" borderColor="gray" paddingX={1}>
187
- <Text color="gray">{"> "}</Text>
188
- <ComposerPrimitive.Input
189
- submitOnEnter
190
- placeholder="Type a message..."
191
- autoFocus
192
- />
193
- </Box>
194
- </ThreadPrimitive.Root>
195
- );
196
- };
197
- ```
198
-
199
- </Step>
200
- <Step>
201
-
202
- ### Render with Ink
203
-
204
- ```tsx title="index.tsx"
205
- import { render } from "ink";
206
- import { App } from "./app.js";
207
-
208
- render(<App />);
209
- ```
210
-
211
- </Step>
212
- </Steps>
213
-
214
- ## What's Next?
215
-
216
- <Cards>
217
- <Card
218
- title="Migration from Web"
219
- description="Already using assistant-ui? Migrate your web app to the terminal."
220
- href="/docs/ink/migration"
221
- />
222
- <Card
223
- title="Custom Backend"
224
- description="Connect to your own backend API or manage threads server-side."
225
- href="/docs/ink/custom-backend"
226
- />
227
- <Card
228
- title="Primitives"
229
- description="Composable terminal UI components for building chat interfaces."
230
- href="/docs/ink/primitives"
231
- />
232
- <Card
233
- title="Example App"
234
- description="Full terminal chat example with markdown rendering and streaming."
235
- href="https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-react-ink"
236
- />
237
- </Cards>