@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,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-ui/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,236 +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
- ThreadPrimitive,
131
- ComposerPrimitive,
132
- LoadingPrimitive,
133
- useAuiState,
134
- } from "@assistant-ui/react-ink";
135
- import { MarkdownText } from "@assistant-ui/react-ink-markdown";
136
-
137
- const Message = () => {
138
- const message = useAuiState((s) => s.message);
139
- const isUser = message.role === "user";
140
- const text = message.content
141
- .filter((p) => p.type === "text")
142
- .map((p) => ("text" in p ? p.text : ""))
143
- .join("");
144
-
145
- if (isUser) {
146
- return (
147
- <Box marginBottom={1}>
148
- <Text bold color="green">You: </Text>
149
- <Text wrap="wrap">{text}</Text>
150
- </Box>
151
- );
152
- }
153
-
154
- return (
155
- <Box flexDirection="column" marginBottom={1}>
156
- <Text bold color="blue">AI:</Text>
157
- <MarkdownText text={text} />
158
- </Box>
159
- );
160
- };
161
-
162
- const StatusIndicator = () => (
163
- <LoadingPrimitive.Root marginBottom={1} gap={1}>
164
- <LoadingPrimitive.Spinner variant="bar" />
165
- <LoadingPrimitive.Text />
166
- <LoadingPrimitive.ElapsedTime />
167
- </LoadingPrimitive.Root>
168
- );
169
-
170
- export const Thread = () => {
171
- return (
172
- <ThreadPrimitive.Root>
173
- <ThreadPrimitive.Empty>
174
- <Box marginBottom={1}>
175
- <Text dimColor>No messages yet. Start typing below!</Text>
176
- </Box>
177
- </ThreadPrimitive.Empty>
178
-
179
- <ThreadPrimitive.Messages>
180
- {() => <Message />}
181
- </ThreadPrimitive.Messages>
182
-
183
- <StatusIndicator />
184
-
185
- <Box borderStyle="round" borderColor="gray" paddingX={1}>
186
- <Text color="gray">{"> "}</Text>
187
- <ComposerPrimitive.Input
188
- submitOnEnter
189
- placeholder="Type a message..."
190
- autoFocus
191
- />
192
- </Box>
193
- </ThreadPrimitive.Root>
194
- );
195
- };
196
- ```
197
-
198
- </Step>
199
- <Step>
200
-
201
- ### Render with Ink
202
-
203
- ```tsx title="index.tsx"
204
- import { render } from "ink";
205
- import { App } from "./app.js";
206
-
207
- render(<App />);
208
- ```
209
-
210
- </Step>
211
- </Steps>
212
-
213
- ## What's Next?
214
-
215
- <Cards>
216
- <Card
217
- title="Migration from Web"
218
- description="Already using assistant-ui? Migrate your web app to the terminal."
219
- href="/docs/ink/migration"
220
- />
221
- <Card
222
- title="Custom Backend"
223
- description="Connect to your own backend API or manage threads server-side."
224
- href="/docs/ink/custom-backend"
225
- />
226
- <Card
227
- title="Primitives"
228
- description="Composable terminal UI components for building chat interfaces."
229
- href="/docs/ink/primitives"
230
- />
231
- <Card
232
- title="Example App"
233
- description="Full terminal chat example with markdown rendering and streaming."
234
- href="https://github.com/assistant-ui/assistant-ui/tree/main/examples/with-react-ink"
235
- />
236
- </Cards>