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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/.docs/organized/code-examples/waterfall.md +8 -8
  2. package/.docs/organized/code-examples/with-a2a.md +10 -10
  3. package/.docs/organized/code-examples/with-ag-ui.md +12 -12
  4. package/.docs/organized/code-examples/with-ai-sdk-v6.md +14 -14
  5. package/.docs/organized/code-examples/with-artifacts.md +14 -14
  6. package/.docs/organized/code-examples/with-assistant-transport.md +11 -11
  7. package/.docs/organized/code-examples/with-browser-extension.md +345 -0
  8. package/.docs/organized/code-examples/with-chain-of-thought.md +129 -63
  9. package/.docs/organized/code-examples/with-cloud-standalone.md +13 -13
  10. package/.docs/organized/code-examples/with-cloud.md +13 -13
  11. package/.docs/organized/code-examples/with-custom-thread-list.md +65 -20
  12. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +18 -17
  13. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +18 -17
  14. package/.docs/organized/code-examples/with-expo.md +25 -25
  15. package/.docs/organized/code-examples/with-external-store.md +10 -10
  16. package/.docs/organized/code-examples/with-ffmpeg.md +14 -14
  17. package/.docs/organized/code-examples/with-generative-ui.md +211 -14
  18. package/.docs/organized/code-examples/with-google-adk.md +12 -12
  19. package/.docs/organized/code-examples/with-heat-graph.md +8 -8
  20. package/.docs/organized/code-examples/with-image-generation.md +454 -0
  21. package/.docs/organized/code-examples/with-interactables.md +14 -14
  22. package/.docs/organized/code-examples/with-langchain.md +12 -12
  23. package/.docs/organized/code-examples/with-langgraph.md +15 -12
  24. package/.docs/organized/code-examples/with-livekit.md +19 -18
  25. package/.docs/organized/code-examples/with-mcp.md +748 -0
  26. package/.docs/organized/code-examples/with-opencode.md +107 -62
  27. package/.docs/organized/code-examples/with-parent-id-grouping.md +12 -12
  28. package/.docs/organized/code-examples/with-react-hook-form.md +14 -14
  29. package/.docs/organized/code-examples/with-react-ink.md +4 -4
  30. package/.docs/organized/code-examples/with-react-router.md +16 -16
  31. package/.docs/organized/code-examples/with-resumable-stream.md +660 -0
  32. package/.docs/organized/code-examples/with-store.md +8 -8
  33. package/.docs/organized/code-examples/with-tanstack.md +14 -14
  34. package/.docs/organized/code-examples/with-tap-runtime.md +11 -10
  35. package/.docs/raw/docs/(docs)/cli.mdx +3 -1
  36. package/.docs/raw/docs/(docs)/copilots/assistant-frame.mdx +1 -0
  37. package/.docs/raw/docs/(docs)/copilots/make-assistant-tool-ui.mdx +10 -3
  38. package/.docs/raw/docs/(docs)/copilots/make-assistant-tool.mdx +8 -3
  39. package/.docs/raw/docs/(docs)/copilots/make-assistant-visible.mdx +1 -0
  40. package/.docs/raw/docs/(docs)/copilots/model-context.mdx +1 -0
  41. package/.docs/raw/docs/(docs)/copilots/motivation.mdx +1 -0
  42. package/.docs/raw/docs/(docs)/copilots/use-assistant-instructions.mdx +1 -0
  43. package/.docs/raw/docs/(docs)/devtools.mdx +1 -0
  44. package/.docs/raw/docs/(docs)/index.mdx +3 -2
  45. package/.docs/raw/docs/(docs)/installation.mdx +2 -1
  46. package/.docs/raw/docs/(docs)/rtl.mdx +1 -0
  47. package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +36 -0
  48. package/.docs/raw/docs/(reference)/api-reference/adapters/feedback.mdx +20 -0
  49. package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +34 -0
  50. package/.docs/raw/docs/(reference)/api-reference/adapters/model.mdx +44 -0
  51. package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +55 -0
  52. package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +20 -0
  53. package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +20 -0
  54. package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +37 -8
  55. package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +22 -0
  56. package/.docs/raw/docs/(reference)/api-reference/context-providers/scoped-providers.mdx +64 -0
  57. package/.docs/raw/docs/(reference)/api-reference/external-store/index.mdx +22 -0
  58. package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +52 -0
  59. package/.docs/raw/docs/(reference)/api-reference/external-store/runtime.mdx +36 -0
  60. package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +98 -0
  61. package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +31 -0
  62. package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +33 -0
  63. package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +640 -0
  64. package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +28 -0
  65. package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +94 -0
  66. package/.docs/raw/docs/(reference)/api-reference/hooks/utilities.mdx +464 -0
  67. package/.docs/raw/docs/(reference)/api-reference/integrations/cloud-ai-sdk.mdx +24 -0
  68. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +22 -0
  69. package/.docs/raw/docs/(reference)/api-reference/integrations/react-ai-sdk.mdx +79 -0
  70. package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +52 -0
  71. package/.docs/raw/docs/(reference)/api-reference/model-context/index.mdx +22 -0
  72. package/.docs/raw/docs/(reference)/api-reference/model-context/registry.mdx +20 -0
  73. package/.docs/raw/docs/(reference)/api-reference/overview.mdx +125 -125
  74. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar-more.mdx +78 -221
  75. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +127 -242
  76. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +46 -20
  77. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-modal.mdx +66 -87
  78. package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +50 -58
  79. package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +80 -48
  80. package/.docs/raw/docs/(reference)/api-reference/primitives/chain-of-thought.mdx +67 -0
  81. package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +323 -461
  82. package/.docs/raw/docs/(reference)/api-reference/primitives/error.mdx +36 -43
  83. package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +70 -0
  84. package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +63 -245
  85. package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +182 -554
  86. package/.docs/raw/docs/(reference)/api-reference/primitives/queue-item.mdx +65 -0
  87. package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +35 -22
  88. package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +57 -140
  89. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item-more.mdx +70 -161
  90. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item.mdx +84 -108
  91. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +82 -86
  92. package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +173 -314
  93. package/.docs/raw/docs/(reference)/api-reference/runtimes/assistant-runtime.mdx +9 -21
  94. package/.docs/raw/docs/(reference)/api-reference/runtimes/attachment-runtime.mdx +10 -21
  95. package/.docs/raw/docs/(reference)/api-reference/runtimes/composer-runtime.mdx +15 -70
  96. package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +43 -0
  97. package/.docs/raw/docs/(reference)/api-reference/runtimes/message-part-runtime.mdx +25 -28
  98. package/.docs/raw/docs/(reference)/api-reference/runtimes/message-runtime.mdx +11 -63
  99. package/.docs/raw/docs/(reference)/api-reference/runtimes/queue-state.mdx +20 -0
  100. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-item-runtime.mdx +11 -48
  101. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +10 -42
  102. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-runtime.mdx +18 -30
  103. package/.docs/raw/docs/(reference)/api-reference/tools/component-tools.mdx +68 -0
  104. package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +39 -0
  105. package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +79 -0
  106. package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +42 -0
  107. package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +92 -0
  108. package/.docs/raw/docs/(reference)/api-reference/transport/assistant-transport.mdx +48 -0
  109. package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +62 -0
  110. package/.docs/raw/docs/(reference)/api-reference/transport/index.mdx +22 -0
  111. package/.docs/raw/docs/(reference)/api-reference/utilities/index.mdx +19 -0
  112. package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +131 -0
  113. package/.docs/raw/docs/(reference)/api-reference/voice/index.mdx +22 -0
  114. package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +54 -0
  115. package/.docs/raw/docs/(reference)/api-reference/voice/speech-dictation.mdx +36 -0
  116. package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +230 -2
  117. package/.docs/raw/docs/cloud/ai-sdk.mdx +222 -4
  118. package/.docs/raw/docs/cloud/index.mdx +2 -2
  119. package/.docs/raw/docs/cloud/langgraph.mdx +274 -2
  120. package/.docs/raw/docs/{(docs)/guides → guides}/attachments.mdx +45 -40
  121. package/.docs/raw/docs/guides/branching.mdx +76 -0
  122. package/.docs/raw/docs/guides/chain-of-thought.mdx +166 -0
  123. package/.docs/raw/docs/{(docs)/guides → guides}/context-api.mdx +54 -26
  124. package/.docs/raw/docs/{(docs)/guides → guides}/dictation.mdx +3 -1
  125. package/.docs/raw/docs/guides/editing.mdx +102 -0
  126. package/.docs/raw/docs/guides/generative-ui.mdx +142 -0
  127. package/.docs/raw/docs/guides/image-generation.mdx +74 -0
  128. package/.docs/raw/docs/guides/index.mdx +103 -0
  129. package/.docs/raw/docs/{(docs)/guides → guides}/interactables.mdx +51 -2
  130. package/.docs/raw/docs/{(docs)/guides → guides}/latex.mdx +53 -10
  131. package/.docs/raw/docs/guides/mcp-apps.mdx +231 -0
  132. package/.docs/raw/docs/{(docs)/guides → guides}/mentions.mdx +63 -88
  133. package/.docs/raw/docs/{(docs)/guides → guides}/message-timing.mdx +45 -6
  134. package/.docs/raw/docs/{(docs)/guides → guides}/multi-agent.mdx +66 -6
  135. package/.docs/raw/docs/{(docs)/guides → guides}/quoting.mdx +11 -18
  136. package/.docs/raw/docs/guides/resumable-stream-deployment.mdx +212 -0
  137. package/.docs/raw/docs/guides/resumable-stream-stores.mdx +152 -0
  138. package/.docs/raw/docs/guides/resumable-streams.mdx +210 -0
  139. package/.docs/raw/docs/{(docs)/guides → guides}/slash-commands.mdx +104 -38
  140. package/.docs/raw/docs/guides/speech.mdx +156 -0
  141. package/.docs/raw/docs/{(docs)/guides → guides}/suggestions.mdx +91 -69
  142. package/.docs/raw/docs/{(docs)/guides → guides}/tool-ui.mdx +110 -38
  143. package/.docs/raw/docs/{(docs)/guides → guides}/tools.mdx +197 -40
  144. package/.docs/raw/docs/{(docs)/guides → guides}/voice.mdx +41 -2
  145. package/.docs/raw/docs/ink/adapters.mdx +37 -1
  146. package/.docs/raw/docs/ink/custom-backend.mdx +59 -8
  147. package/.docs/raw/docs/ink/index.mdx +11 -14
  148. package/.docs/raw/docs/ink/migration.mdx +1 -3
  149. package/.docs/raw/docs/ink/primitives.mdx +386 -9
  150. package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +520 -0
  151. package/.docs/raw/docs/integrations/auth/better-auth.mdx +191 -0
  152. package/.docs/raw/docs/integrations/auth/clerk.mdx +172 -0
  153. package/.docs/raw/docs/integrations/auth/next-auth.mdx +196 -0
  154. package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +79 -0
  155. package/.docs/raw/docs/integrations/frameworks/cloudflare-agents/overview.mdx +282 -0
  156. package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +188 -0
  157. package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +57 -0
  158. package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +201 -0
  159. package/.docs/raw/docs/integrations/gateways/index.mdx +162 -0
  160. package/.docs/raw/docs/integrations/index.mdx +185 -0
  161. package/.docs/raw/docs/integrations/observability/helicone.mdx +130 -0
  162. package/.docs/raw/docs/integrations/observability/langfuse.mdx +163 -0
  163. package/.docs/raw/docs/integrations/observability/langsmith.mdx +150 -0
  164. package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +712 -0
  165. package/.docs/raw/docs/integrations/tools/mcp.mdx +267 -0
  166. package/.docs/raw/docs/integrations/tools/react-mcp.mdx +337 -0
  167. package/.docs/raw/docs/migrations/v0-14.mdx +297 -0
  168. package/.docs/raw/docs/primitives/action-bar.mdx +1 -0
  169. package/.docs/raw/docs/primitives/assistant-modal.mdx +1 -0
  170. package/.docs/raw/docs/primitives/attachment.mdx +1 -0
  171. package/.docs/raw/docs/primitives/branch-picker.mdx +1 -0
  172. package/.docs/raw/docs/primitives/chain-of-thought.mdx +90 -85
  173. package/.docs/raw/docs/primitives/composer.mdx +55 -1
  174. package/.docs/raw/docs/primitives/error.mdx +1 -0
  175. package/.docs/raw/docs/primitives/index.mdx +4 -3
  176. package/.docs/raw/docs/primitives/message.mdx +68 -5
  177. package/.docs/raw/docs/primitives/selection-toolbar.mdx +1 -0
  178. package/.docs/raw/docs/primitives/suggestion.mdx +10 -0
  179. package/.docs/raw/docs/primitives/thread-list.mdx +39 -0
  180. package/.docs/raw/docs/primitives/thread.mdx +16 -13
  181. package/.docs/raw/docs/react-native/hooks.mdx +2 -2
  182. package/.docs/raw/docs/react-native/index.mdx +5 -7
  183. package/.docs/raw/docs/react-native/migration.mdx +1 -3
  184. package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +396 -0
  185. package/.docs/raw/docs/runtimes/a2a/overview.mdx +60 -0
  186. package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +216 -0
  187. package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +70 -0
  188. package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +243 -0
  189. package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +154 -0
  190. package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +52 -0
  191. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +73 -128
  192. package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +70 -64
  193. package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +337 -123
  194. package/.docs/raw/docs/runtimes/concepts/adapters.mdx +265 -0
  195. package/.docs/raw/docs/runtimes/concepts/architecture.mdx +125 -0
  196. package/.docs/raw/docs/runtimes/concepts/stability.mdx +67 -0
  197. package/.docs/raw/docs/runtimes/concepts/threads.mdx +428 -0
  198. package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +703 -0
  199. package/.docs/raw/docs/runtimes/custom/data-stream.mdx +348 -0
  200. package/.docs/raw/docs/runtimes/custom/external-store.mdx +261 -1236
  201. package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +746 -0
  202. package/.docs/raw/docs/runtimes/custom/overview.mdx +71 -0
  203. package/.docs/raw/docs/runtimes/google-adk/api.mdx +256 -0
  204. package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +717 -0
  205. package/.docs/raw/docs/runtimes/google-adk/overview.mdx +69 -0
  206. package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +229 -0
  207. package/.docs/raw/docs/runtimes/langchain.mdx +533 -0
  208. package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +305 -0
  209. package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +104 -0
  210. package/.docs/raw/docs/runtimes/langgraph/overview.mdx +84 -0
  211. package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +496 -0
  212. package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +127 -0
  213. package/.docs/raw/docs/runtimes/langgraph/threads.mdx +113 -0
  214. package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +3 -3
  215. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -23
  216. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +1 -1
  217. package/.docs/raw/docs/runtimes/opencode/hooks.mdx +191 -0
  218. package/.docs/raw/docs/runtimes/opencode/overview.mdx +48 -0
  219. package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +119 -0
  220. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +78 -203
  221. package/.docs/raw/docs/ui/accordion.mdx +1 -0
  222. package/.docs/raw/docs/ui/assistant-modal.mdx +1 -0
  223. package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -0
  224. package/.docs/raw/docs/ui/attachment.mdx +1 -0
  225. package/.docs/raw/docs/ui/badge.mdx +1 -0
  226. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +12 -1
  227. package/.docs/raw/docs/ui/context-display.mdx +1 -0
  228. package/.docs/raw/docs/ui/diff-viewer.mdx +1 -0
  229. package/.docs/raw/docs/ui/directive-text.mdx +1 -0
  230. package/.docs/raw/docs/ui/file.mdx +1 -0
  231. package/.docs/raw/docs/ui/image.mdx +1 -0
  232. package/.docs/raw/docs/ui/markdown.mdx +2 -14
  233. package/.docs/raw/docs/ui/mcp-config.mdx +102 -0
  234. package/.docs/raw/docs/ui/mermaid.mdx +1 -0
  235. package/.docs/raw/docs/ui/message-timing.mdx +3 -2
  236. package/.docs/raw/docs/ui/model-selector.mdx +9 -8
  237. package/.docs/raw/docs/ui/part-grouping.mdx +325 -313
  238. package/.docs/raw/docs/ui/quote.mdx +1 -0
  239. package/.docs/raw/docs/ui/reasoning.mdx +66 -33
  240. package/.docs/raw/docs/ui/scrollbar.mdx +1 -0
  241. package/.docs/raw/docs/ui/select.mdx +1 -0
  242. package/.docs/raw/docs/ui/sources.mdx +18 -0
  243. package/.docs/raw/docs/ui/streamdown.mdx +35 -2
  244. package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -0
  245. package/.docs/raw/docs/ui/tabs.mdx +1 -0
  246. package/.docs/raw/docs/ui/thread-list.mdx +19 -2
  247. package/.docs/raw/docs/ui/thread.mdx +58 -3
  248. package/.docs/raw/docs/ui/tool-fallback.mdx +1 -0
  249. package/.docs/raw/docs/ui/tool-group.mdx +39 -11
  250. package/.docs/raw/docs/ui/voice.mdx +1 -0
  251. package/.docs/raw/docs/utilities/heat-graph.mdx +1 -0
  252. package/.docs/raw/docs/utilities/react-o11y.mdx +278 -0
  253. package/.docs/raw/docs/utilities/tw-shimmer.mdx +1 -0
  254. package/README.md +14 -72
  255. package/dist/constants.d.ts +12 -9
  256. package/dist/constants.d.ts.map +1 -1
  257. package/dist/constants.js +13 -9
  258. package/dist/constants.js.map +1 -1
  259. package/dist/index.d.ts +7 -3
  260. package/dist/index.d.ts.map +1 -1
  261. package/dist/index.js +25 -24
  262. package/dist/index.js.map +1 -1
  263. package/dist/prepare-docs/code-examples.d.ts +4 -1
  264. package/dist/prepare-docs/code-examples.d.ts.map +1 -1
  265. package/dist/prepare-docs/code-examples.js +109 -121
  266. package/dist/prepare-docs/code-examples.js.map +1 -1
  267. package/dist/prepare-docs/copy-raw.d.ts +4 -1
  268. package/dist/prepare-docs/copy-raw.d.ts.map +1 -1
  269. package/dist/prepare-docs/copy-raw.js +45 -42
  270. package/dist/prepare-docs/copy-raw.js.map +1 -1
  271. package/dist/prepare-docs/prepare.d.ts +1 -2
  272. package/dist/prepare-docs/prepare.js +17 -17
  273. package/dist/prepare-docs/prepare.js.map +1 -1
  274. package/dist/stdio.d.ts +1 -3
  275. package/dist/stdio.js +6 -3
  276. package/dist/stdio.js.map +1 -1
  277. package/dist/tools/docs.d.ts +20 -15
  278. package/dist/tools/docs.d.ts.map +1 -1
  279. package/dist/tools/docs.js +140 -161
  280. package/dist/tools/docs.js.map +1 -1
  281. package/dist/tools/examples.d.ts +20 -15
  282. package/dist/tools/examples.d.ts.map +1 -1
  283. package/dist/tools/examples.js +74 -86
  284. package/dist/tools/examples.js.map +1 -1
  285. package/dist/tools/tests/test-setup.d.ts +5 -2
  286. package/dist/tools/tests/test-setup.d.ts.map +1 -1
  287. package/dist/tools/tests/test-setup.js +21 -28
  288. package/dist/tools/tests/test-setup.js.map +1 -1
  289. package/dist/utils/logger.d.ts +8 -5
  290. package/dist/utils/logger.d.ts.map +1 -1
  291. package/dist/utils/logger.js +17 -17
  292. package/dist/utils/logger.js.map +1 -1
  293. package/dist/utils/mcp-format.d.ts +8 -5
  294. package/dist/utils/mcp-format.d.ts.map +1 -1
  295. package/dist/utils/mcp-format.js +9 -9
  296. package/dist/utils/mcp-format.js.map +1 -1
  297. package/dist/utils/mdx.d.ts +8 -6
  298. package/dist/utils/mdx.d.ts.map +1 -1
  299. package/dist/utils/mdx.js +22 -22
  300. package/dist/utils/mdx.js.map +1 -1
  301. package/dist/utils/paths.d.ts +9 -6
  302. package/dist/utils/paths.d.ts.map +1 -1
  303. package/dist/utils/paths.js +66 -76
  304. package/dist/utils/paths.js.map +1 -1
  305. package/dist/utils/security.d.ts +4 -1
  306. package/dist/utils/security.d.ts.map +1 -1
  307. package/dist/utils/security.js +19 -40
  308. package/dist/utils/security.js.map +1 -1
  309. package/package.json +6 -6
  310. package/src/tools/tests/path-traversal.test.ts +1 -1
  311. package/.docs/raw/docs/(docs)/guides/branching.mdx +0 -65
  312. package/.docs/raw/docs/(docs)/guides/chain-of-thought.mdx +0 -164
  313. package/.docs/raw/docs/(docs)/guides/editing.mdx +0 -66
  314. package/.docs/raw/docs/(docs)/guides/speech.mdx +0 -38
  315. package/.docs/raw/docs/(reference)/api-reference/context-providers/text-message-part-provider.mdx +0 -40
  316. package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +0 -260
  317. package/.docs/raw/docs/(reference)/api-reference/integrations/react-hook-form.mdx +0 -103
  318. package/.docs/raw/docs/(reference)/api-reference/integrations/vercel-ai-sdk.mdx +0 -254
  319. package/.docs/raw/docs/(reference)/migrations/v0-14.mdx +0 -159
  320. package/.docs/raw/docs/runtimes/a2a/index.mdx +0 -298
  321. package/.docs/raw/docs/runtimes/assistant-transport.mdx +0 -1033
  322. package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +0 -314
  323. package/.docs/raw/docs/runtimes/custom/local.mdx +0 -1464
  324. package/.docs/raw/docs/runtimes/data-stream.mdx +0 -422
  325. package/.docs/raw/docs/runtimes/google-adk/index.mdx +0 -686
  326. package/.docs/raw/docs/runtimes/helicone.mdx +0 -61
  327. package/.docs/raw/docs/runtimes/langchain/comparison.mdx +0 -60
  328. package/.docs/raw/docs/runtimes/langchain/index.mdx +0 -210
  329. package/.docs/raw/docs/runtimes/langgraph/index.mdx +0 -699
  330. package/.docs/raw/docs/runtimes/langgraph/tutorial/index.mdx +0 -12
  331. package/.docs/raw/docs/runtimes/langserve.mdx +0 -116
  332. package/.docs/raw/docs/runtimes/mastra/full-stack-integration.mdx +0 -218
  333. package/.docs/raw/docs/runtimes/mastra/overview.mdx +0 -18
  334. package/.docs/raw/docs/runtimes/mastra/separate-server-integration.mdx +0 -217
  335. package/dist/prepare-docs/prepare.d.ts.map +0 -1
  336. package/dist/stdio.d.ts.map +0 -1
  337. /package/.docs/raw/docs/{(reference)/migrations → migrations}/deprecation-policy.mdx +0 -0
  338. /package/.docs/raw/docs/{(reference) → migrations}/react-compatibility.mdx +0 -0
  339. /package/.docs/raw/docs/{(reference)/migrations → migrations}/react-langgraph-v0-7.mdx +0 -0
  340. /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-11.mdx +0 -0
  341. /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-12.mdx +0 -0
@@ -159,6 +159,69 @@ Renders a suggestion button. Uses Ink `Box` + `Text`.
159
159
  | `send` | `boolean` | When true, automatically sends the message |
160
160
  | `clearComposer` | `boolean` | When true (default), replaces composer text; when false, appends |
161
161
 
162
+ ## Loading
163
+
164
+ ```tsx
165
+ import { LoadingPrimitive } from "@assistant-ui/react-ink";
166
+ ```
167
+
168
+ Composable loading UI for active runs. `LoadingPrimitive.Root` only renders
169
+ while the current thread is running, so it pairs naturally with status rows in
170
+ terminal chat layouts.
171
+
172
+ ```tsx
173
+ <LoadingPrimitive.Root gap={1}>
174
+ <LoadingPrimitive.Spinner variant="bar" />
175
+ <LoadingPrimitive.Text>Analyzing codebase...</LoadingPrimitive.Text>
176
+ <LoadingPrimitive.ElapsedTime />
177
+ </LoadingPrimitive.Root>
178
+ ```
179
+
180
+ This renders a compact status line such as `[=== ] Analyzing codebase... (3s)`
181
+ while the assistant is streaming.
182
+
183
+ ### Root
184
+
185
+ Runtime-aware `Box` container that renders children only while
186
+ `s.thread.isRunning` is true.
187
+
188
+ | Prop | Type | Description |
189
+ |------|------|-------------|
190
+ | `children` | `ReactNode` | Status row content |
191
+ | `...rest` | `BoxProps` | Standard Ink Box props |
192
+
193
+ ### Spinner
194
+
195
+ Animated loader indicator. Supports the existing `ink-spinner` path plus a few
196
+ built-in text-based variants for more terminal-native styles.
197
+
198
+ | Prop | Type | Description |
199
+ |------|------|-------------|
200
+ | `variant` | `"spinner" \| "dots" \| "pulse" \| "bar" \| "bounce"` | Loader style (default: `"spinner"`) |
201
+ | `type` | `ink-spinner` type | Spinner preset used when `variant="spinner"` |
202
+ | `intervalMs` | `number` | Animation speed for non-spinner variants (default: `120`) |
203
+ | `...rest` | `TextProps` | Standard Ink Text props |
204
+
205
+ ### Text
206
+
207
+ Status label rendered as Ink `Text`.
208
+
209
+ | Prop | Type | Description |
210
+ |------|------|-------------|
211
+ | `children` | `ReactNode` | Message text (default: `"Thinking..."`) |
212
+ | `...rest` | `TextProps` | Standard Ink Text props |
213
+
214
+ ### ElapsedTime
215
+
216
+ Elapsed time indicator for the current run. Uses message timing metadata when
217
+ available and falls back to a local timer so it still works during manual
218
+ testing.
219
+
220
+ | Prop | Type | Description |
221
+ |------|------|-------------|
222
+ | `format` | `(seconds: number) => string` | Custom formatter for the elapsed time label |
223
+ | `...rest` | `TextProps` | Standard Ink Text props |
224
+
162
225
  ## Composer
163
226
 
164
227
  ```tsx
@@ -177,11 +240,12 @@ Container `Box` for the composer area.
177
240
 
178
241
  ### Input
179
242
 
180
- Ink `TextInput` wired to the composer runtime. Value is managed automatically.
243
+ Terminal line editor wired to the composer runtime. Value is managed automatically and supports cursor-aware editing.
181
244
 
182
245
  ```tsx
183
246
  <ComposerPrimitive.Input
184
247
  submitOnEnter
248
+ multiLine
185
249
  placeholder="Type a message..."
186
250
  autoFocus
187
251
  />
@@ -192,6 +256,41 @@ Ink `TextInput` wired to the composer runtime. Value is managed automatically.
192
256
  | `submitOnEnter` | `boolean` | Whether Enter sends the message (default: `false`) |
193
257
  | `placeholder` | `string` | Placeholder text when empty |
194
258
  | `autoFocus` | `boolean` | Auto-focus on mount |
259
+ | `multiLine` | `boolean` | When true, Enter inserts a newline unless `submitOnEnter` is enabled |
260
+ | `onSubmit` | `(text: string) => void` | Overrides the default send behavior and receives the current composer text |
261
+
262
+ Supported keyboard bindings:
263
+
264
+ | Key | Action | Context |
265
+ |-----|--------|---------|
266
+ | `Left` / `Right` | Move cursor by one grapheme | Always |
267
+ | `Backspace` / `Delete` | Remove the grapheme before / after the cursor | Always |
268
+ | `Home` / `End` | Jump to buffer or line boundary | Buffer in single-line, line in multi-line |
269
+ | `Up` / `Down` | Move between lines, preserving column when possible | Multi-line only |
270
+ | `Ctrl+A` / `Ctrl+E` | Move to line start / end | Always |
271
+ | `Ctrl+W` | Kill the word before the cursor | Always |
272
+ | `Ctrl+D` | Delete the grapheme after the cursor | Always |
273
+ | `Ctrl+U` / `Ctrl+K` | Kill from cursor to line start / end; in multi-line, `Ctrl+K` at end-of-line joins the next line | Always |
274
+ | `Ctrl+J` | Insert a newline | Multi-line only; swallowed in single-line so it never submits |
275
+ | `Alt+B` / `Alt+F` | Move by word backward / forward | Terminals that emit meta-key sequences |
276
+ | `Alt+D` | Kill the word after the cursor | Terminals that emit meta-key sequences |
277
+ | `Shift+Enter` | Insert a newline | Multi-line submit mode, terminals that distinguish it |
278
+
279
+ Word boundaries and grapheme stepping use `Intl.Segmenter`, so emoji, accented letters, skin-tone modifiers, ZWJ sequences, and CJK ideographs each move and delete as a single character.
280
+
281
+ Some bindings depend on terminal capabilities. iTerm2, Windows Terminal, and most Linux terminals emit `Alt`-letter combinations as `Esc`-prefixed sequences that Ink decodes as meta-key input; macOS Terminal.app requires enabling "Use Option as Meta key" in its preferences before `Alt+B` / `Alt+F` / `Alt+D` work as expected. `Shift+Enter` requires a terminal that supports the CSI-u protocol (iTerm2 3.4+, kitty, foot, and similar) — terminals that conflate it with `Enter` will fall back to the `submitOnEnter` behaviour.
282
+
283
+ Example with custom submit handling:
284
+
285
+ ```tsx
286
+ <ComposerPrimitive.Input
287
+ multiLine
288
+ submitOnEnter
289
+ onSubmit={(text) => {
290
+ console.log("submit", text);
291
+ }}
292
+ />
293
+ ```
195
294
 
196
295
  ### Send
197
296
 
@@ -237,6 +336,80 @@ Triggers attachment addition.
237
336
  </ComposerPrimitive.AddAttachment>
238
337
  ```
239
338
 
339
+ ### Queue
340
+
341
+ Renders all queued composer items. Each item is wrapped in a `QueueItemByIndexProvider`, so `QueueItemPrimitive.*` can read item state and call queue actions inside the render prop. Backed by the shared `ComposerPrimitiveQueue` from `@assistant-ui/core/react`.
342
+
343
+ ```tsx
344
+ <ComposerPrimitive.Queue>
345
+ {({ queueItem }) => (
346
+ <Box>
347
+ <QueueItemPrimitive.Text />
348
+ <QueueItemPrimitive.Steer>
349
+ <Text color="cyan">[Run Now]</Text>
350
+ </QueueItemPrimitive.Steer>
351
+ <QueueItemPrimitive.Remove>
352
+ <Text color="red">[x]</Text>
353
+ </QueueItemPrimitive.Remove>
354
+ </Box>
355
+ )}
356
+ </ComposerPrimitive.Queue>
357
+ ```
358
+
359
+ | Prop | Type | Description |
360
+ |------|------|-------------|
361
+ | `children` | `(value: { queueItem: QueueItemState }) => ReactNode` | Render function called for each queue item |
362
+
363
+ ### Quote
364
+
365
+ Renders the active composer quote preview. Children are only rendered while `s.composer.quote` is set, so this acts as both a container and a gate.
366
+
367
+ ```tsx
368
+ <ComposerPrimitive.Quote>
369
+ <Box>
370
+ <Text dimColor>Quoting:</Text>
371
+ <ComposerPrimitive.QuoteText color="gray" />
372
+ <ComposerPrimitive.QuoteDismiss>
373
+ <Text color="red">[x]</Text>
374
+ </ComposerPrimitive.QuoteDismiss>
375
+ </Box>
376
+ </ComposerPrimitive.Quote>
377
+ ```
378
+
379
+ | Prop | Type | Description |
380
+ |------|------|-------------|
381
+ | `children` | `ReactNode` | Quote preview content; only rendered when a quote is set |
382
+ | `...rest` | `BoxProps` | Standard Ink Box props |
383
+
384
+ ### QuoteText
385
+
386
+ Renders the quoted text from `s.composer.quote?.text`. Pass `children` to override the displayed value.
387
+
388
+ ```tsx
389
+ <ComposerPrimitive.QuoteText color="gray" />
390
+ ```
391
+
392
+ | Prop | Type | Description |
393
+ |------|------|-------------|
394
+ | `children` | `ReactNode` | Override content; defaults to `s.composer.quote?.text` |
395
+ | `...rest` | `TextProps` | Standard Ink Text props |
396
+
397
+ ### QuoteDismiss
398
+
399
+ Pressable that clears the active quote by calling `aui.composer().setQuote(undefined)`.
400
+
401
+ ```tsx
402
+ <ComposerPrimitive.QuoteDismiss>
403
+ <Text color="red">[x]</Text>
404
+ </ComposerPrimitive.QuoteDismiss>
405
+ ```
406
+
407
+ | Prop | Type | Description |
408
+ |------|------|-------------|
409
+ | `children` | `ReactNode` | Button content |
410
+ | `disabled` | `boolean` | Disable Enter activation and focus |
411
+ | `...rest` | `BoxProps` | Standard Ink Box props |
412
+
240
413
  ### Conditional Rendering (Composer)
241
414
 
242
415
  Use `AuiIf` for conditional rendering based on composer state:
@@ -287,7 +460,7 @@ Conditional rendering based on composer state. Shared from `@assistant-ui/core/r
287
460
  ## Message
288
461
 
289
462
  ```tsx
290
- import { MessagePrimitive } from "@assistant-ui/react-ink";
463
+ import { MessagePartPrimitive, MessagePrimitive } from "@assistant-ui/react-ink";
291
464
  ```
292
465
 
293
466
  ### Root
@@ -302,7 +475,7 @@ Container `Box` for a single message.
302
475
 
303
476
  ### Parts
304
477
 
305
- Renders message content parts via a `components` prop. Tool call and data parts automatically render registered tool UIs (via `useAssistantTool` / `useAssistantDataUI`), falling back to components provided here. A default `Text` component using Ink's `<Text>` is provided out of the box.
478
+ Renders message content parts via a `components` prop. Tool call and data parts automatically render registered tool UIs (via `useAssistantTool` / `useAssistantDataUI`), falling back to components provided here. Default terminal-safe renderers are provided for text, reasoning, source, image, file, and data parts.
306
479
 
307
480
  ```tsx
308
481
  <MessagePrimitive.Parts>
@@ -314,10 +487,26 @@ Renders message content parts via a `components` prop. Tool call and data parts
314
487
  </MessagePrimitive.Parts>
315
488
  ```
316
489
 
490
+ Override part rendering with app-owned components when you need richer terminal UI:
491
+
492
+ ```tsx
493
+ <MessagePrimitive.Parts
494
+ components={{
495
+ Image: () => <Text color="cyan">image available</Text>,
496
+ Reasoning: () => null,
497
+ data: {
498
+ by_name: {
499
+ weather_card: ({ data }) => <Text>{data.city}: {data.temperature}</Text>,
500
+ },
501
+ },
502
+ }}
503
+ />
504
+ ```
505
+
317
506
  ### Content (deprecated)
318
507
 
319
508
  <Callout type="warn">
320
- Deprecated. Use `MessagePrimitive.Parts` instead. See the [v0.11 migration guide](/docs/reference/migrations/v0-11) for details.
509
+ Deprecated. Use `MessagePrimitive.Parts` instead. See the [v0.11 migration guide](/docs/migrations/v0-11) for details.
321
510
  </Callout>
322
511
 
323
512
  Renders message content parts using render props. Tool call and data parts automatically render registered tool UIs (via `useAssistantTool` / `useAssistantDataUI`), falling back to render props if provided.
@@ -339,6 +528,36 @@ Renders message content parts using render props. Tool call and data parts autom
339
528
  | `renderFile` | `(props: { part; index }) => ReactElement` | File part renderer |
340
529
  | `renderData` | `(props: { part; index }) => ReactElement` | Data part fallback |
341
530
 
531
+ ## MessagePartPrimitive
532
+
533
+ Composable primitives for rendering the current message part inside part context from `MessagePrimitive.Parts`, `MessagePrimitive.PartByIndex`, or `PartByIndexProvider`.
534
+
535
+ ```tsx
536
+ <MessagePrimitive.Parts
537
+ components={{
538
+ Text: () => (
539
+ <>
540
+ <MessagePartPrimitive.Text />
541
+ <MessagePartPrimitive.InProgress>
542
+ <Text color="yellow"> ...</Text>
543
+ </MessagePartPrimitive.InProgress>
544
+ </>
545
+ ),
546
+ File: () => <MessagePartPrimitive.File dimColor />,
547
+ }}
548
+ />
549
+ ```
550
+
551
+ | Primitive | Default terminal behavior |
552
+ |-----------|---------------------------|
553
+ | `MessagePartPrimitive.Text` | Renders text with Ink `<Text>` |
554
+ | `MessagePartPrimitive.InProgress` | Renders children only while the current part status is `running` |
555
+ | `MessagePartPrimitive.Image` | Renders `[image: filename]` or `[image]`; never emits image data or terminal image protocols |
556
+ | `MessagePartPrimitive.File` | Renders `[file: filename mimeType]` or `[file: mimeType]`; never prints file data |
557
+ | `MessagePartPrimitive.Source` | Renders source title and/or URL metadata |
558
+ | `MessagePartPrimitive.Reasoning` | Renders conservative reasoning text by default; override or return `null` to suppress |
559
+ | `MessagePartPrimitive.Data` | Renders `[data: name]` when no registered data renderer is available |
560
+
342
561
  ### PartByIndex
343
562
 
344
563
  Low-level provider that sets up the part context for a specific message part by index. Used internally by `MessagePrimitive.Parts`.
@@ -426,34 +645,118 @@ Renders user message attachments using the provided component configuration.
426
645
  import { AttachmentPrimitive } from "@assistant-ui/react-ink";
427
646
  ```
428
647
 
429
- Primitives for rendering individual attachments.
648
+ Primitives for rendering individual attachments. Each primitive reads from the current attachment context (provided by `ComposerPrimitive.Attachments`, `ComposerPrimitive.AttachmentByIndex`, `MessagePrimitive.Attachments`, or `MessagePrimitive.AttachmentByIndex`).
430
649
 
431
650
  ### Root
432
651
 
433
- Container `Box` for an attachment.
652
+ Container `Box` for an attachment. Forwards all `Box` props.
653
+
654
+ | Prop | Type | Description |
655
+ |------|------|-------------|
656
+ | `children` | `ReactNode` | Attachment sub-components |
657
+ | `...rest` | `ComponentProps<typeof Box>` | Forwarded to the underlying Ink `Box` |
434
658
 
435
659
  ### Name
436
660
 
437
- `Text` component displaying the attachment filename.
661
+ `Text` component displaying `s.attachment.name`.
662
+
663
+ | Prop | Type | Description |
664
+ |------|------|-------------|
665
+ | `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
438
666
 
439
667
  ### Thumb
440
668
 
441
- `Text` component displaying the file extension.
669
+ `Text` component displaying a short identifier for the attachment. Renders the file extension (`.pdf`, `.png`, …) when the name has one. Falls back to the attachment `type` (e.g. `image`, `document`) otherwise, and finally to `file`.
670
+
671
+ | Prop | Type | Description |
672
+ |------|------|-------------|
673
+ | `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
674
+
675
+ ### Status
676
+
677
+ `Text` component rendering the current attachment status from `s.attachment.status`. Uses the same visual vocabulary as `ToolFallback`: spinner = uploading, `?` = pending action, `x` = error, `||` = paused. By default, completed attachments render nothing.
678
+
679
+ | Prop | Type | Description |
680
+ |------|------|-------------|
681
+ | `showComplete` | `boolean` | When `true`, completed attachments render `+ ready` instead of `null` |
682
+ | `...rest` | `Omit<ComponentProps<typeof Text>, "children">` | Forwarded to the underlying Ink `Text`. Caller-supplied `color` overrides the per-status default. `children` is not accepted; `Status` always renders its own content. |
442
683
 
443
684
  ### Remove
444
685
 
445
- Pressable that removes the attachment from the composer.
686
+ `Pressable` that calls `aui.attachment().remove()` when activated (Enter while focused). Disabled when not focused or when the `disabled` prop is set.
687
+
688
+ | Prop | Type | Description |
689
+ |------|------|-------------|
690
+ | `children` | `ReactNode` | Visual content for the button |
691
+ | `disabled` | `boolean` | Skip focus registration and ignore Enter |
692
+ | `...rest` | `ComponentProps<typeof Box>` | Forwarded to the underlying Pressable's `Box` |
446
693
 
447
694
  ```tsx
448
695
  <AttachmentPrimitive.Root>
449
696
  <AttachmentPrimitive.Thumb />
450
697
  <AttachmentPrimitive.Name />
698
+ <AttachmentPrimitive.Status />
451
699
  <AttachmentPrimitive.Remove>
452
700
  <Text color="red">[x]</Text>
453
701
  </AttachmentPrimitive.Remove>
454
702
  </AttachmentPrimitive.Root>
455
703
  ```
456
704
 
705
+ ## QueueItem
706
+
707
+ ```tsx
708
+ import { QueueItemPrimitive } from "@assistant-ui/react-ink";
709
+ ```
710
+
711
+ Primitives for rendering individual queued composer items. Use inside a `ComposerPrimitive.Queue` render prop, where the queue item context is set up by `QueueItemByIndexProvider`.
712
+
713
+ ### Text
714
+
715
+ Renders the queue item's prompt with Ink `<Text>`. Pass `children` to override the displayed value.
716
+
717
+ ```tsx
718
+ <QueueItemPrimitive.Text color="gray" />
719
+ ```
720
+
721
+ | Prop | Type | Description |
722
+ |------|------|-------------|
723
+ | `children` | `ReactNode` | Override content; defaults to `s.queueItem.prompt` |
724
+ | `...rest` | `TextProps` | Standard Ink Text props |
725
+
726
+ ### Remove
727
+
728
+ Pressable that removes the queue item by calling `aui.queueItem().remove()`.
729
+
730
+ ```tsx
731
+ <QueueItemPrimitive.Remove>
732
+ <Text color="red">[x]</Text>
733
+ </QueueItemPrimitive.Remove>
734
+ ```
735
+
736
+ | Prop | Type | Description |
737
+ |------|------|-------------|
738
+ | `children` | `ReactNode` | Button content |
739
+ | `disabled` | `boolean` | Disable Enter activation and focus |
740
+
741
+ Remaining props are forwarded to the underlying `Pressable` (Ink `Box` props).
742
+
743
+ ### Steer
744
+
745
+ Pressable that promotes the queue item to run next by calling `aui.queueItem().steer()`.
746
+
747
+ ```tsx
748
+ <QueueItemPrimitive.Steer>
749
+ <Text color="cyan">[Run Now]</Text>
750
+ </QueueItemPrimitive.Steer>
751
+ ```
752
+
753
+ | Prop | Type | Description |
754
+ |------|------|-------------|
755
+ | `children` | `ReactNode` | Button content |
756
+ | `disabled` | `boolean` | Disable Enter activation and focus |
757
+
758
+ Remaining props are forwarded to the underlying `Pressable` (Ink `Box` props).
759
+
457
760
  ## ActionBar
458
761
 
459
762
  ```tsx
@@ -710,6 +1013,8 @@ Components for rendering code diffs in the terminal.
710
1013
 
711
1014
  Pre-composed component that combines all diff primitives for easy diff rendering. Accepts either a unified diff patch string or old/new file content for inline comparison.
712
1015
 
1016
+ When a replacement is rendered as an equal-length adjacent `-`/`+` run, `DiffView` also highlights the changed word spans inside those lines. The existing prefixes, line numbers, folding, and primitive API surface stay the same. This intra-line behavior is internal to `DiffView`; `DiffPrimitive.Line` remains a line-level primitive.
1017
+
713
1018
  ```tsx
714
1019
  // From a patch string
715
1020
  <DiffView
@@ -838,3 +1143,75 @@ For custom layouts, use the primitives directly:
838
1143
  </Box>
839
1144
  </DiffPrimitive.Root>
840
1145
  ```
1146
+
1147
+ ## StatusBar
1148
+
1149
+ ```tsx
1150
+ import { StatusBarPrimitive } from "@assistant-ui/react-ink";
1151
+ ```
1152
+
1153
+ Primitives for rendering a compact terminal status bar showing run state, model, message count, token usage, and latency. All sub-components read directly from the active thread state.
1154
+
1155
+ ### Root
1156
+
1157
+ Container `Box` for the status bar. Forwards all `Box` props; pass `gap` to space its children.
1158
+
1159
+ | Prop | Type | Description |
1160
+ |------|------|-------------|
1161
+ | `children` | `ReactNode` | Status bar sub-components |
1162
+ | `...rest` | `ComponentProps<typeof Box>` | Forwarded to the underlying Ink `Box` |
1163
+
1164
+ ### ModelName
1165
+
1166
+ `Text` component displaying the current model name. The name is supplied as a prop — the primitive does not infer it from state.
1167
+
1168
+ | Prop | Type | Description |
1169
+ |------|------|-------------|
1170
+ | `name` | `ReactNode` | Model label to render (default: `"unknown"`) |
1171
+ | `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
1172
+
1173
+ ### MessageCount
1174
+
1175
+ `Text` component displaying the number of messages on the current thread, formatted as `N msgs` by default. Renders nothing when the thread is empty.
1176
+
1177
+ | Prop | Type | Description |
1178
+ |------|------|-------------|
1179
+ | `format` | `(count: number) => string` | Custom formatter for the count (default: `` `${count} msgs` ``) |
1180
+ | `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
1181
+
1182
+ ### TokenCount
1183
+
1184
+ `Text` component summing `metadata.timing.tokenCount` across all assistant messages on the thread, formatted with `toLocaleString()` + `" tokens"` by default. Renders nothing when the total is `0`.
1185
+
1186
+ | Prop | Type | Description |
1187
+ |------|------|-------------|
1188
+ | `format` | `(tokens: number) => string` | Custom formatter for the total (default: `` `${tokens.toLocaleString()} tokens` ``) |
1189
+ | `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
1190
+
1191
+ ### Latency
1192
+
1193
+ `Text` component displaying `metadata.timing.tokensPerSecond` from the most recent assistant message, formatted as `N tok/s` (rounded) by default. Renders nothing when the field is missing.
1194
+
1195
+ | Prop | Type | Description |
1196
+ |------|------|-------------|
1197
+ | `format` | `(tokensPerSecond: number) => string` | Custom formatter (default: `` `${Math.round(tokensPerSecond)} tok/s` ``) |
1198
+ | `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
1199
+
1200
+ ### Status
1201
+
1202
+ `Text` component reporting the thread's run state. Resolves to `"running"` while `s.thread.isRunning`, otherwise inspects the most recent assistant message: `"error"` when its status is `incomplete` with reason `error`, `"cancelled"` when reason is `cancelled`, and `"idle"` for every other case. Pass `color` (or any `Text` prop) to style the label.
1203
+
1204
+ | Prop | Type | Description |
1205
+ |------|------|-------------|
1206
+ | `format` | `(status: "idle" \| "running" \| "error" \| "cancelled") => string` | Custom label formatter (default: returns the state string verbatim) |
1207
+ | `...rest` | `ComponentProps<typeof Text>` | Forwarded to the underlying Ink `Text` |
1208
+
1209
+ ```tsx
1210
+ <StatusBarPrimitive.Root gap={1}>
1211
+ <StatusBarPrimitive.Status />
1212
+ <StatusBarPrimitive.ModelName name="gpt-5" />
1213
+ <StatusBarPrimitive.MessageCount />
1214
+ <StatusBarPrimitive.TokenCount />
1215
+ <StatusBarPrimitive.Latency />
1216
+ </StatusBarPrimitive.Root>
1217
+ ```