@assistant-ui/react 0.12.11 → 0.12.12

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 (352) hide show
  1. package/README.md +68 -58
  2. package/dist/client/ExternalThread.d.ts.map +1 -1
  3. package/dist/client/ExternalThread.js +25 -13
  4. package/dist/client/ExternalThread.js.map +1 -1
  5. package/dist/client/InMemoryThreadList.d.ts.map +1 -1
  6. package/dist/client/InMemoryThreadList.js +1 -2
  7. package/dist/client/InMemoryThreadList.js.map +1 -1
  8. package/dist/client/index.d.ts +1 -2
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +2 -2
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/context/providers/AttachmentByIndexProvider.d.ts +1 -7
  13. package/dist/context/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  14. package/dist/context/providers/AttachmentByIndexProvider.js +1 -22
  15. package/dist/context/providers/AttachmentByIndexProvider.js.map +1 -1
  16. package/dist/context/providers/ChainOfThoughtByIndicesProvider.d.ts +1 -5
  17. package/dist/context/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  18. package/dist/context/providers/ChainOfThoughtByIndicesProvider.js +1 -19
  19. package/dist/context/providers/ChainOfThoughtByIndicesProvider.js.map +1 -1
  20. package/dist/context/providers/ChainOfThoughtPartByIndexProvider.d.ts +1 -4
  21. package/dist/context/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  22. package/dist/context/providers/ChainOfThoughtPartByIndexProvider.js +1 -12
  23. package/dist/context/providers/ChainOfThoughtPartByIndexProvider.js.map +1 -1
  24. package/dist/context/providers/MessageByIndexProvider.d.ts +1 -4
  25. package/dist/context/providers/MessageByIndexProvider.d.ts.map +1 -1
  26. package/dist/context/providers/MessageByIndexProvider.js +1 -17
  27. package/dist/context/providers/MessageByIndexProvider.js.map +1 -1
  28. package/dist/context/providers/PartByIndexProvider.d.ts +1 -4
  29. package/dist/context/providers/PartByIndexProvider.d.ts.map +1 -1
  30. package/dist/context/providers/PartByIndexProvider.js +1 -12
  31. package/dist/context/providers/PartByIndexProvider.js.map +1 -1
  32. package/dist/context/providers/SuggestionByIndexProvider.d.ts +1 -5
  33. package/dist/context/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  34. package/dist/context/providers/SuggestionByIndexProvider.js +1 -12
  35. package/dist/context/providers/SuggestionByIndexProvider.js.map +1 -1
  36. package/dist/context/providers/TextMessagePartProvider.d.ts +1 -5
  37. package/dist/context/providers/TextMessagePartProvider.d.ts.map +1 -1
  38. package/dist/context/providers/TextMessagePartProvider.js +1 -25
  39. package/dist/context/providers/TextMessagePartProvider.js.map +1 -1
  40. package/dist/context/providers/ThreadListItemProvider.d.ts +1 -9
  41. package/dist/context/providers/ThreadListItemProvider.d.ts.map +1 -1
  42. package/dist/context/providers/ThreadListItemProvider.js +1 -19
  43. package/dist/context/providers/ThreadListItemProvider.js.map +1 -1
  44. package/dist/context/providers/index.d.ts +1 -0
  45. package/dist/context/providers/index.d.ts.map +1 -1
  46. package/dist/context/providers/index.js +1 -0
  47. package/dist/context/providers/index.js.map +1 -1
  48. package/dist/index.d.ts +1 -1
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +1 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -1
  53. package/dist/legacy-runtime/AssistantRuntimeProvider.js +8 -9
  54. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
  55. package/dist/legacy-runtime/RuntimeAdapter.d.ts +1 -2
  56. package/dist/legacy-runtime/RuntimeAdapter.d.ts.map +1 -1
  57. package/dist/legacy-runtime/RuntimeAdapter.js +1 -48
  58. package/dist/legacy-runtime/RuntimeAdapter.js.map +1 -1
  59. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts +280 -112
  60. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts.map +1 -1
  61. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.js +1 -1
  62. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.js.map +1 -1
  63. package/dist/legacy-runtime/runtime-cores/assistant-transport/index.d.ts +1 -1
  64. package/dist/legacy-runtime/runtime-cores/assistant-transport/index.d.ts.map +1 -1
  65. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts +22 -0
  66. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts.map +1 -1
  67. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.js.map +1 -1
  68. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  69. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +17 -13
  70. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  71. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.d.ts.map +1 -1
  72. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.js +8 -6
  73. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.js.map +1 -1
  74. package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.d.ts +1 -1
  75. package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.d.ts.map +1 -1
  76. package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.js +1 -1
  77. package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.js.map +1 -1
  78. package/dist/legacy-runtime/runtime-cores/external-store/index.d.ts +1 -1
  79. package/dist/legacy-runtime/runtime-cores/external-store/index.d.ts.map +1 -1
  80. package/dist/legacy-runtime/runtime-cores/external-store/index.js +1 -1
  81. package/dist/legacy-runtime/runtime-cores/external-store/index.js.map +1 -1
  82. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.d.ts.map +1 -1
  83. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.js +14 -4
  84. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.js.map +1 -1
  85. package/dist/model-context/index.d.ts +4 -13
  86. package/dist/model-context/index.d.ts.map +1 -1
  87. package/dist/model-context/index.js +6 -11
  88. package/dist/model-context/index.js.map +1 -1
  89. package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts +1 -1
  90. package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts.map +1 -1
  91. package/dist/primitives/actionBarMore/ActionBarMoreContent.js +1 -1
  92. package/dist/primitives/actionBarMore/ActionBarMoreContent.js.map +1 -1
  93. package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts +1 -1
  94. package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts.map +1 -1
  95. package/dist/primitives/actionBarMore/ActionBarMoreItem.js +1 -1
  96. package/dist/primitives/actionBarMore/ActionBarMoreItem.js.map +1 -1
  97. package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts +1 -1
  98. package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts.map +1 -1
  99. package/dist/primitives/actionBarMore/ActionBarMoreRoot.js +1 -1
  100. package/dist/primitives/actionBarMore/ActionBarMoreRoot.js.map +1 -1
  101. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts +1 -1
  102. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts.map +1 -1
  103. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js +1 -1
  104. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js.map +1 -1
  105. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts +1 -1
  106. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts.map +1 -1
  107. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js +1 -1
  108. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js.map +1 -1
  109. package/dist/primitives/actionBarMore/scope.d.ts +1 -1
  110. package/dist/primitives/actionBarMore/scope.d.ts.map +1 -1
  111. package/dist/primitives/actionBarMore/scope.js +1 -1
  112. package/dist/primitives/actionBarMore/scope.js.map +1 -1
  113. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts +1 -1
  114. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts.map +1 -1
  115. package/dist/primitives/assistantModal/AssistantModalAnchor.js +1 -1
  116. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
  117. package/dist/primitives/assistantModal/AssistantModalContent.d.ts +1 -1
  118. package/dist/primitives/assistantModal/AssistantModalContent.d.ts.map +1 -1
  119. package/dist/primitives/assistantModal/AssistantModalContent.js +1 -1
  120. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  121. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts +1 -1
  122. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts.map +1 -1
  123. package/dist/primitives/assistantModal/AssistantModalRoot.js +1 -1
  124. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  125. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts +1 -1
  126. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts.map +1 -1
  127. package/dist/primitives/assistantModal/AssistantModalTrigger.js +1 -1
  128. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  129. package/dist/primitives/assistantModal/scope.d.ts +1 -1
  130. package/dist/primitives/assistantModal/scope.d.ts.map +1 -1
  131. package/dist/primitives/assistantModal/scope.js +1 -1
  132. package/dist/primitives/assistantModal/scope.js.map +1 -1
  133. package/dist/primitives/chainOfThought/ChainOfThoughtParts.d.ts +1 -38
  134. package/dist/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  135. package/dist/primitives/chainOfThought/ChainOfThoughtParts.js +1 -38
  136. package/dist/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
  137. package/dist/primitives/composer/ComposerAttachmentDropzone.js +2 -2
  138. package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
  139. package/dist/primitives/composer/ComposerAttachments.d.ts +1 -36
  140. package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  141. package/dist/primitives/composer/ComposerAttachments.js +1 -61
  142. package/dist/primitives/composer/ComposerAttachments.js.map +1 -1
  143. package/dist/primitives/composer/ComposerIf.d.ts +2 -17
  144. package/dist/primitives/composer/ComposerIf.d.ts.map +1 -1
  145. package/dist/primitives/composer/ComposerIf.js +1 -23
  146. package/dist/primitives/composer/ComposerIf.js.map +1 -1
  147. package/dist/primitives/composer/ComposerInput.js +2 -2
  148. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  149. package/dist/primitives/message/MessageAttachments.d.ts +1 -36
  150. package/dist/primitives/message/MessageAttachments.d.ts.map +1 -1
  151. package/dist/primitives/message/MessageAttachments.js +1 -65
  152. package/dist/primitives/message/MessageAttachments.js.map +1 -1
  153. package/dist/primitives/message/MessageIf.d.ts +1 -1
  154. package/dist/primitives/message/MessageIf.js +1 -1
  155. package/dist/primitives/message/MessageParts.d.ts +5 -219
  156. package/dist/primitives/message/MessageParts.d.ts.map +1 -1
  157. package/dist/primitives/message/MessageParts.js +29 -270
  158. package/dist/primitives/message/MessageParts.js.map +1 -1
  159. package/dist/primitives/message/MessagePartsGrouped.d.ts +1 -1
  160. package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
  161. package/dist/primitives/message/MessagePartsGrouped.js +2 -2
  162. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  163. package/dist/primitives/thread/ThreadEmpty.d.ts +3 -0
  164. package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -1
  165. package/dist/primitives/thread/ThreadEmpty.js +4 -1
  166. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  167. package/dist/primitives/thread/ThreadIf.d.ts +1 -1
  168. package/dist/primitives/thread/ThreadIf.js +1 -1
  169. package/dist/primitives/thread/ThreadMessages.d.ts +1 -94
  170. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
  171. package/dist/primitives/thread/ThreadMessages.js +1 -109
  172. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  173. package/dist/primitives/thread/ThreadSuggestions.d.ts +1 -52
  174. package/dist/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  175. package/dist/primitives/thread/ThreadSuggestions.js +1 -56
  176. package/dist/primitives/thread/ThreadSuggestions.js.map +1 -1
  177. package/dist/primitives/thread/ThreadViewportSlack.js +2 -2
  178. package/dist/primitives/thread/ThreadViewportSlack.js.map +1 -1
  179. package/dist/primitives/threadList/ThreadListItems.d.ts +1 -34
  180. package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  181. package/dist/primitives/threadList/ThreadListItems.js +1 -35
  182. package/dist/primitives/threadList/ThreadListItems.js.map +1 -1
  183. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts +1 -7
  184. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  185. package/dist/primitives/threadListItem/ThreadListItemTitle.js +1 -7
  186. package/dist/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
  187. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts +1 -1
  188. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts.map +1 -1
  189. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js +1 -1
  190. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js.map +1 -1
  191. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts +1 -1
  192. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts.map +1 -1
  193. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js +1 -1
  194. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js.map +1 -1
  195. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts +1 -1
  196. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts.map +1 -1
  197. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js +1 -1
  198. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js.map +1 -1
  199. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts +1 -1
  200. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts.map +1 -1
  201. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js +1 -1
  202. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js.map +1 -1
  203. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts +1 -1
  204. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts.map +1 -1
  205. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js +1 -1
  206. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js.map +1 -1
  207. package/dist/primitives/threadListItemMore/scope.d.ts +1 -1
  208. package/dist/primitives/threadListItemMore/scope.d.ts.map +1 -1
  209. package/dist/primitives/threadListItemMore/scope.js +1 -1
  210. package/dist/primitives/threadListItemMore/scope.js.map +1 -1
  211. package/dist/types/index.d.ts +2 -2
  212. package/dist/types/index.d.ts.map +1 -1
  213. package/dist/types/scopes/index.d.ts +1 -2
  214. package/dist/types/scopes/index.d.ts.map +1 -1
  215. package/package.json +10 -12
  216. package/src/client/ExternalThread.ts +25 -13
  217. package/src/client/InMemoryThreadList.ts +1 -2
  218. package/src/client/index.ts +3 -2
  219. package/src/context/providers/AttachmentByIndexProvider.tsx +4 -34
  220. package/src/context/providers/ChainOfThoughtByIndicesProvider.tsx +1 -34
  221. package/src/context/providers/ChainOfThoughtPartByIndexProvider.tsx +1 -18
  222. package/src/context/providers/MessageByIndexProvider.tsx +1 -23
  223. package/src/context/providers/PartByIndexProvider.tsx +1 -18
  224. package/src/context/providers/SuggestionByIndexProvider.tsx +4 -21
  225. package/src/context/providers/TextMessagePartProvider.tsx +1 -46
  226. package/src/context/providers/ThreadListItemProvider.tsx +4 -33
  227. package/src/context/providers/index.ts +1 -0
  228. package/src/index.ts +1 -1
  229. package/src/legacy-runtime/AssistantRuntimeProvider.tsx +13 -21
  230. package/src/legacy-runtime/RuntimeAdapter.ts +1 -66
  231. package/src/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.ts +1 -1
  232. package/src/legacy-runtime/runtime-cores/assistant-transport/index.ts +1 -0
  233. package/src/legacy-runtime/runtime-cores/assistant-transport/types.ts +25 -0
  234. package/src/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.ts +22 -13
  235. package/src/legacy-runtime/runtime-cores/external-store/external-message-converter.ts +19 -21
  236. package/src/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.ts +1 -0
  237. package/src/legacy-runtime/runtime-cores/external-store/index.ts +1 -0
  238. package/src/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.ts +20 -4
  239. package/src/model-context/index.ts +29 -22
  240. package/src/primitives/actionBarMore/ActionBarMoreContent.tsx +1 -1
  241. package/src/primitives/actionBarMore/ActionBarMoreItem.tsx +1 -1
  242. package/src/primitives/actionBarMore/ActionBarMoreRoot.tsx +1 -1
  243. package/src/primitives/actionBarMore/ActionBarMoreSeparator.tsx +1 -1
  244. package/src/primitives/actionBarMore/ActionBarMoreTrigger.tsx +1 -1
  245. package/src/primitives/actionBarMore/scope.ts +1 -1
  246. package/src/primitives/assistantModal/AssistantModalAnchor.tsx +1 -1
  247. package/src/primitives/assistantModal/AssistantModalContent.tsx +1 -1
  248. package/src/primitives/assistantModal/AssistantModalRoot.tsx +1 -1
  249. package/src/primitives/assistantModal/AssistantModalTrigger.tsx +1 -1
  250. package/src/primitives/assistantModal/scope.ts +1 -1
  251. package/src/primitives/chainOfThought/ChainOfThoughtParts.tsx +1 -85
  252. package/src/primitives/composer/ComposerAttachmentDropzone.tsx +2 -2
  253. package/src/primitives/composer/ComposerAttachments.tsx +4 -110
  254. package/src/primitives/composer/ComposerIf.ts +2 -42
  255. package/src/primitives/composer/ComposerInput.tsx +2 -2
  256. package/src/primitives/message/MessageAttachments.tsx +4 -113
  257. package/src/primitives/message/MessageIf.ts +1 -1
  258. package/src/primitives/message/MessageParts.tsx +43 -642
  259. package/src/primitives/message/MessagePartsGrouped.tsx +3 -3
  260. package/src/primitives/thread/ThreadEmpty.ts +4 -3
  261. package/src/primitives/thread/ThreadIf.ts +1 -1
  262. package/src/primitives/thread/ThreadMessages.tsx +4 -217
  263. package/src/primitives/thread/ThreadSuggestions.tsx +4 -106
  264. package/src/primitives/thread/ThreadViewportSlack.tsx +2 -2
  265. package/src/primitives/threadList/ThreadListItems.tsx +4 -79
  266. package/src/primitives/threadListItem/ThreadListItemTitle.test.tsx +7 -3
  267. package/src/primitives/threadListItem/ThreadListItemTitle.tsx +1 -17
  268. package/src/primitives/threadListItemMore/ThreadListItemMoreContent.tsx +1 -1
  269. package/src/primitives/threadListItemMore/ThreadListItemMoreItem.tsx +1 -1
  270. package/src/primitives/threadListItemMore/ThreadListItemMoreRoot.tsx +1 -1
  271. package/src/primitives/threadListItemMore/ThreadListItemMoreSeparator.tsx +1 -1
  272. package/src/primitives/threadListItemMore/ThreadListItemMoreTrigger.tsx +1 -1
  273. package/src/primitives/threadListItemMore/scope.ts +1 -1
  274. package/src/tests/BaseComposerRuntimeCore.test.ts +106 -1
  275. package/src/tests/DataRenderers.test.ts +1 -2
  276. package/src/types/index.ts +3 -2
  277. package/src/types/scopes/index.ts +5 -3
  278. package/dist/client/DataRenderers.d.ts +0 -3
  279. package/dist/client/DataRenderers.d.ts.map +0 -1
  280. package/dist/client/DataRenderers.js +0 -33
  281. package/dist/client/DataRenderers.js.map +0 -1
  282. package/dist/client/Tools.d.ts +0 -8
  283. package/dist/client/Tools.d.ts.map +0 -1
  284. package/dist/client/Tools.js +0 -68
  285. package/dist/client/Tools.js.map +0 -1
  286. package/dist/model-context/makeAssistantDataUI.d.ts +0 -7
  287. package/dist/model-context/makeAssistantDataUI.d.ts.map +0 -1
  288. package/dist/model-context/makeAssistantDataUI.js +0 -11
  289. package/dist/model-context/makeAssistantDataUI.js.map +0 -1
  290. package/dist/model-context/makeAssistantTool.d.ts +0 -7
  291. package/dist/model-context/makeAssistantTool.d.ts.map +0 -1
  292. package/dist/model-context/makeAssistantTool.js +0 -11
  293. package/dist/model-context/makeAssistantTool.js.map +0 -1
  294. package/dist/model-context/makeAssistantToolUI.d.ts +0 -7
  295. package/dist/model-context/makeAssistantToolUI.d.ts.map +0 -1
  296. package/dist/model-context/makeAssistantToolUI.js +0 -11
  297. package/dist/model-context/makeAssistantToolUI.js.map +0 -1
  298. package/dist/model-context/toolbox.d.ts +0 -10
  299. package/dist/model-context/toolbox.d.ts.map +0 -1
  300. package/dist/model-context/toolbox.js +0 -3
  301. package/dist/model-context/toolbox.js.map +0 -1
  302. package/dist/model-context/useAssistantDataUI.d.ts +0 -7
  303. package/dist/model-context/useAssistantDataUI.d.ts.map +0 -1
  304. package/dist/model-context/useAssistantDataUI.js +0 -12
  305. package/dist/model-context/useAssistantDataUI.js.map +0 -1
  306. package/dist/model-context/useAssistantInstructions.d.ts +0 -4
  307. package/dist/model-context/useAssistantInstructions.d.ts.map +0 -1
  308. package/dist/model-context/useAssistantInstructions.js +0 -23
  309. package/dist/model-context/useAssistantInstructions.js.map +0 -1
  310. package/dist/model-context/useAssistantTool.d.ts +0 -7
  311. package/dist/model-context/useAssistantTool.d.ts.map +0 -1
  312. package/dist/model-context/useAssistantTool.js +0 -23
  313. package/dist/model-context/useAssistantTool.js.map +0 -1
  314. package/dist/model-context/useAssistantToolUI.d.ts +0 -7
  315. package/dist/model-context/useAssistantToolUI.d.ts.map +0 -1
  316. package/dist/model-context/useAssistantToolUI.js +0 -12
  317. package/dist/model-context/useAssistantToolUI.js.map +0 -1
  318. package/dist/model-context/useInlineRender.d.ts +0 -4
  319. package/dist/model-context/useInlineRender.d.ts.map +0 -1
  320. package/dist/model-context/useInlineRender.js +0 -16
  321. package/dist/model-context/useInlineRender.js.map +0 -1
  322. package/dist/types/MessagePartComponentTypes.d.ts +0 -33
  323. package/dist/types/MessagePartComponentTypes.d.ts.map +0 -1
  324. package/dist/types/MessagePartComponentTypes.js +0 -2
  325. package/dist/types/MessagePartComponentTypes.js.map +0 -1
  326. package/dist/types/scopes/dataRenderers.d.ts +0 -13
  327. package/dist/types/scopes/dataRenderers.d.ts.map +0 -1
  328. package/dist/types/scopes/dataRenderers.js +0 -2
  329. package/dist/types/scopes/dataRenderers.js.map +0 -1
  330. package/dist/types/scopes/tools.d.ts +0 -13
  331. package/dist/types/scopes/tools.d.ts.map +0 -1
  332. package/dist/types/scopes/tools.js +0 -2
  333. package/dist/types/scopes/tools.js.map +0 -1
  334. package/dist/types/store-augmentation.d.ts +0 -10
  335. package/dist/types/store-augmentation.d.ts.map +0 -1
  336. package/dist/types/store-augmentation.js +0 -2
  337. package/dist/types/store-augmentation.js.map +0 -1
  338. package/src/client/DataRenderers.ts +0 -42
  339. package/src/client/Tools.ts +0 -97
  340. package/src/model-context/makeAssistantDataUI.ts +0 -22
  341. package/src/model-context/makeAssistantTool.ts +0 -22
  342. package/src/model-context/makeAssistantToolUI.ts +0 -22
  343. package/src/model-context/toolbox.ts +0 -17
  344. package/src/model-context/useAssistantDataUI.ts +0 -18
  345. package/src/model-context/useAssistantInstructions.ts +0 -32
  346. package/src/model-context/useAssistantTool.ts +0 -39
  347. package/src/model-context/useAssistantToolUI.ts +0 -20
  348. package/src/model-context/useInlineRender.ts +0 -27
  349. package/src/types/MessagePartComponentTypes.ts +0 -66
  350. package/src/types/scopes/dataRenderers.ts +0 -15
  351. package/src/types/scopes/tools.ts +0 -18
  352. package/src/types/store-augmentation.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,SAAS,GACV,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,kCAAkC,EAClC,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,EACpB,4BAA4B,EAC5B,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,GACxB,uCAAoC;AAGrC,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,kCAAkC,EAClC,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,EACpB,4BAA4B,EAC5B,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,4 +1,3 @@
1
1
  export type { ThreadsState, ThreadsMethods, ThreadsClientSchema, ThreadListItemState, ThreadListItemMethods, ThreadListItemMeta, ThreadListItemEvents, ThreadListItemClientSchema, ThreadState, ThreadMethods, ThreadMeta, ThreadEvents, ThreadClientSchema, MessageState, MessageMethods, MessageMeta, MessageClientSchema, PartState, PartMethods, PartMeta, PartClientSchema, ComposerState, ComposerMethods, ComposerMeta, ComposerEvents, ComposerClientSchema, AttachmentState, AttachmentMethods, AttachmentMeta, AttachmentClientSchema, SuggestionsState, SuggestionsMethods, SuggestionsClientSchema, Suggestion, SuggestionState, SuggestionMethods, SuggestionMeta, SuggestionClientSchema, ModelContextState, ModelContextMethods, ModelContextClientSchema, ChainOfThoughtState, ChainOfThoughtMethods, ChainOfThoughtMeta, ChainOfThoughtClientSchema, ChainOfThoughtPart, } from "@assistant-ui/core/store";
2
- export type { ToolsState, ToolsMethods, ToolsClientSchema } from "./tools.js";
3
- export type { DataRenderersState, DataRenderersMethods, DataRenderersClientSchema, } from "./dataRenderers.js";
2
+ export type { ToolsState, ToolsMethods, ToolsClientSchema, DataRenderersState, DataRenderersMethods, DataRenderersClientSchema, } from "@assistant-ui/core/react";
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/scopes/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAgB;AAC3E,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,GAC1B,2BAAwB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/scopes/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assistant-ui/react",
3
- "version": "0.12.11",
3
+ "version": "0.12.12",
4
4
  "description": "TypeScript/React library for AI Chat",
5
5
  "keywords": [
6
6
  "radix-ui",
@@ -49,20 +49,18 @@
49
49
  ],
50
50
  "sideEffects": false,
51
51
  "dependencies": {
52
- "assistant-cloud": "^0.1.18",
53
- "@assistant-ui/core": "^0.1.0",
54
- "@assistant-ui/tap": "^0.5.0",
55
- "@assistant-ui/store": "^0.2.0",
52
+ "assistant-cloud": "^0.1.19",
53
+ "@assistant-ui/core": "^0.1.1",
54
+ "@assistant-ui/tap": "^0.5.1",
55
+ "@assistant-ui/store": "^0.2.1",
56
56
  "@radix-ui/primitive": "^1.1.3",
57
57
  "@radix-ui/react-compose-refs": "^1.1.2",
58
58
  "@radix-ui/react-context": "^1.1.3",
59
- "@radix-ui/react-dropdown-menu": "^2.1.16",
60
- "@radix-ui/react-popover": "^1.1.15",
61
59
  "@radix-ui/react-primitive": "^2.1.4",
62
- "@radix-ui/react-slot": "^1.2.4",
63
60
  "@radix-ui/react-use-callback-ref": "^1.1.1",
64
61
  "@radix-ui/react-use-escape-keydown": "^1.1.1",
65
- "assistant-stream": "^0.3.3",
62
+ "radix-ui": "^1.4.3",
63
+ "assistant-stream": "^0.3.4",
66
64
  "nanoid": "^5.1.6",
67
65
  "react-textarea-autosize": "^8.5.9",
68
66
  "zod": "^4.3.6",
@@ -85,10 +83,10 @@
85
83
  "devDependencies": {
86
84
  "@testing-library/react": "^16.3.2",
87
85
  "@types/json-schema": "^7.0.15",
88
- "@types/node": "^25.2.1",
89
- "@types/react": "^19.2.13",
86
+ "@types/node": "^25.3.0",
87
+ "@types/react": "^19.2.14",
90
88
  "@types/react-dom": "^19.2.3",
91
- "jsdom": "^28.0.0",
89
+ "jsdom": "^28.1.0",
92
90
  "react": "^19.2.4",
93
91
  "react-dom": "^19.2.4",
94
92
  "vitest": "^4.0.18",
@@ -15,13 +15,13 @@ import {
15
15
  import { withKey } from "@assistant-ui/tap";
16
16
  import type {
17
17
  Attachment,
18
+ CreateAttachment,
18
19
  ThreadAssistantMessagePart,
19
20
  ThreadUserMessagePart,
20
21
  ThreadMessage,
21
22
  } from "@assistant-ui/core";
22
23
  import { ModelContext, Suggestions } from "@assistant-ui/core/store";
23
- import { Tools } from "./Tools";
24
- import { DataRenderers } from "./DataRenderers";
24
+ import { Tools, DataRenderers } from "@assistant-ui/core/react";
25
25
 
26
26
  export type ExternalThreadMessage = ThreadMessage & {
27
27
  id: string;
@@ -308,17 +308,29 @@ const ComposerClientResource = resource(
308
308
  setText,
309
309
  setRole,
310
310
  setRunConfig,
311
- addAttachment: async (file: File) => {
312
- const newAttachment: Attachment = {
313
- id: Math.random().toString(36).substring(7),
314
- type: "file",
315
- name: file.name,
316
- contentType: file.type,
317
- file,
318
- status: { type: "complete" },
319
- content: [],
320
- };
321
- setAttachments([...attachments, newAttachment]);
311
+ addAttachment: async (fileOrAttachment: File | CreateAttachment) => {
312
+ if (fileOrAttachment instanceof File) {
313
+ const newAttachment: Attachment = {
314
+ id: Math.random().toString(36).substring(7),
315
+ type: "file",
316
+ name: fileOrAttachment.name,
317
+ contentType: fileOrAttachment.type,
318
+ file: fileOrAttachment,
319
+ status: { type: "complete" },
320
+ content: [],
321
+ };
322
+ setAttachments([...attachments, newAttachment]);
323
+ } else {
324
+ const newAttachment: Attachment = {
325
+ id: fileOrAttachment.id ?? Math.random().toString(36).substring(7),
326
+ type: fileOrAttachment.type ?? "document",
327
+ name: fileOrAttachment.name,
328
+ contentType: fileOrAttachment.contentType,
329
+ content: fileOrAttachment.content,
330
+ status: { type: "complete" },
331
+ };
332
+ setAttachments([...attachments, newAttachment]);
333
+ }
322
334
  },
323
335
  clearAttachments: async () => {
324
336
  setAttachments([]);
@@ -10,8 +10,7 @@ import { withKey } from "@assistant-ui/tap";
10
10
  import type { ResourceElement } from "@assistant-ui/tap";
11
11
 
12
12
  import { ModelContext, Suggestions } from "@assistant-ui/core/store";
13
- import { Tools } from "./Tools";
14
- import { DataRenderers } from "./DataRenderers";
13
+ import { Tools, DataRenderers } from "@assistant-ui/core/react";
15
14
 
16
15
  export type InMemoryThreadListProps = {
17
16
  thread: (threadId: string) => ResourceElement<ClientOutput<"thread">>;
@@ -1,11 +1,12 @@
1
+ // Re-export shared clients from core/react
2
+ export { Tools, DataRenderers } from "@assistant-ui/core/react";
3
+
1
4
  // Re-export moved clients from core (matching previous public API)
2
5
  export { ModelContext as ModelContextClient } from "@assistant-ui/core/store";
3
6
  export { Suggestions, type SuggestionConfig } from "@assistant-ui/core/store";
4
7
  export { ChainOfThoughtClient } from "@assistant-ui/core/store";
5
8
 
6
9
  // Local clients (React-specific)
7
- export { Tools } from "./Tools";
8
- export { DataRenderers } from "./DataRenderers";
9
10
  export {
10
11
  ExternalThread,
11
12
  type ExternalThreadProps,
@@ -1,36 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { type FC, type PropsWithChildren } from "react";
4
- import { useAui, AuiProvider, Derived } from "@assistant-ui/store";
5
-
6
- export const MessageAttachmentByIndexProvider: FC<
7
- PropsWithChildren<{
8
- index: number;
9
- }>
10
- > = ({ index, children }) => {
11
- const aui = useAui({
12
- attachment: Derived({
13
- source: "message",
14
- query: { type: "index", index },
15
- get: (aui) => aui.message().attachment({ index }),
16
- }),
17
- });
18
-
19
- return <AuiProvider value={aui}>{children}</AuiProvider>;
20
- };
21
-
22
- export const ComposerAttachmentByIndexProvider: FC<
23
- PropsWithChildren<{
24
- index: number;
25
- }>
26
- > = ({ index, children }) => {
27
- const aui = useAui({
28
- attachment: Derived({
29
- source: "composer",
30
- query: { type: "index", index },
31
- get: (aui) => aui.composer().attachment({ index }),
32
- }),
33
- });
34
-
35
- return <AuiProvider value={aui}>{children}</AuiProvider>;
36
- };
3
+ export {
4
+ MessageAttachmentByIndexProvider,
5
+ ComposerAttachmentByIndexProvider,
6
+ } from "@assistant-ui/core/react";
@@ -1,36 +1,3 @@
1
1
  "use client";
2
2
 
3
- import { type FC, type PropsWithChildren } from "react";
4
- import { useAui, useAuiState, AuiProvider } from "@assistant-ui/store";
5
- import { ChainOfThoughtClient } from "@assistant-ui/core/store";
6
- import type { ChainOfThoughtPart } from "@assistant-ui/core/store";
7
-
8
- export const ChainOfThoughtByIndicesProvider: FC<
9
- PropsWithChildren<{
10
- startIndex: number;
11
- endIndex: number;
12
- }>
13
- > = ({ startIndex, endIndex, children }) => {
14
- const parts = useAuiState((s) => s.message.parts).slice(
15
- startIndex,
16
- endIndex + 1,
17
- ) as ChainOfThoughtPart[];
18
-
19
- const parentAui = useAui();
20
-
21
- const aui = useAui({
22
- chainOfThought: ChainOfThoughtClient({
23
- parts,
24
- getMessagePart: ({ index }) => {
25
- if (index < 0 || index >= parts.length) {
26
- throw new Error(
27
- `ChainOfThought part index ${index} is out of bounds (0..${parts.length - 1})`,
28
- );
29
- }
30
- return parentAui.message().part({ index: startIndex + index });
31
- },
32
- }),
33
- });
34
-
35
- return <AuiProvider value={aui}>{children}</AuiProvider>;
36
- };
3
+ export { ChainOfThoughtByIndicesProvider } from "@assistant-ui/core/react";
@@ -1,20 +1,3 @@
1
1
  "use client";
2
2
 
3
- import { type FC, type PropsWithChildren } from "react";
4
- import { useAui, AuiProvider, Derived } from "@assistant-ui/store";
5
-
6
- export const ChainOfThoughtPartByIndexProvider: FC<
7
- PropsWithChildren<{
8
- index: number;
9
- }>
10
- > = ({ index, children }) => {
11
- const aui = useAui({
12
- part: Derived({
13
- source: "chainOfThought",
14
- query: { type: "index", index },
15
- get: (aui) => aui.chainOfThought().part({ index }),
16
- }),
17
- });
18
-
19
- return <AuiProvider value={aui}>{children}</AuiProvider>;
20
- };
3
+ export { ChainOfThoughtPartByIndexProvider } from "@assistant-ui/core/react";
@@ -1,25 +1,3 @@
1
1
  "use client";
2
2
 
3
- import { type FC, type PropsWithChildren } from "react";
4
- import { useAui, AuiProvider, Derived } from "@assistant-ui/store";
5
-
6
- export const MessageByIndexProvider: FC<
7
- PropsWithChildren<{
8
- index: number;
9
- }>
10
- > = ({ index, children }) => {
11
- const aui = useAui({
12
- message: Derived({
13
- source: "thread",
14
- query: { type: "index", index },
15
- get: (aui) => aui.thread().message({ index }),
16
- }),
17
- composer: Derived({
18
- source: "message",
19
- query: {},
20
- get: (aui) => aui.thread().message({ index }).composer(),
21
- }),
22
- });
23
-
24
- return <AuiProvider value={aui}>{children}</AuiProvider>;
25
- };
3
+ export { MessageByIndexProvider } from "@assistant-ui/core/react";
@@ -1,20 +1,3 @@
1
1
  "use client";
2
2
 
3
- import { type FC, type PropsWithChildren } from "react";
4
- import { useAui, AuiProvider, Derived } from "@assistant-ui/store";
5
-
6
- export const PartByIndexProvider: FC<
7
- PropsWithChildren<{
8
- index: number;
9
- }>
10
- > = ({ index, children }) => {
11
- const aui = useAui({
12
- part: Derived({
13
- source: "message",
14
- query: { type: "index", index },
15
- get: (aui) => aui.message().part({ index }),
16
- }),
17
- });
18
-
19
- return <AuiProvider value={aui}>{children}</AuiProvider>;
20
- };
3
+ export { PartByIndexProvider } from "@assistant-ui/core/react";
@@ -1,23 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { type FC, type PropsWithChildren } from "react";
4
- import { AuiProvider, Derived, useAui } from "@assistant-ui/store";
5
-
6
- export type SuggestionByIndexProviderProps = PropsWithChildren<{
7
- index: number;
8
- }>;
9
-
10
- export const SuggestionByIndexProvider: FC<SuggestionByIndexProviderProps> = ({
11
- index,
12
- children,
13
- }) => {
14
- const aui = useAui({
15
- suggestion: Derived({
16
- source: "suggestions",
17
- query: { index },
18
- get: (aui) => aui.suggestions().suggestion({ index }),
19
- }),
20
- });
21
-
22
- return <AuiProvider value={aui}>{children}</AuiProvider>;
23
- };
3
+ export {
4
+ SuggestionByIndexProvider,
5
+ type SuggestionByIndexProviderProps,
6
+ } from "@assistant-ui/core/react";
@@ -1,48 +1,3 @@
1
1
  "use client";
2
2
 
3
- import { type FC, type PropsWithChildren } from "react";
4
- import { useAui, AuiProvider, type ClientOutput } from "@assistant-ui/store";
5
- import { PartState } from "../../types/scopes";
6
- import { resource, tapMemo } from "@assistant-ui/tap";
7
-
8
- const TextMessagePartClient = resource(
9
- ({
10
- text,
11
- isRunning,
12
- }: {
13
- text: string;
14
- isRunning: boolean;
15
- }): ClientOutput<"part"> => {
16
- const state = tapMemo<PartState>(
17
- () => ({
18
- type: "text",
19
- text,
20
- status: isRunning ? { type: "running" } : { type: "complete" },
21
- }),
22
- [text, isRunning],
23
- );
24
-
25
- return {
26
- getState: () => state,
27
- addToolResult: () => {
28
- throw new Error("Not supported");
29
- },
30
- resumeToolCall: () => {
31
- throw new Error("Not supported");
32
- },
33
- };
34
- },
35
- );
36
-
37
- export const TextMessagePartProvider: FC<
38
- PropsWithChildren<{
39
- text: string;
40
- isRunning?: boolean;
41
- }>
42
- > = ({ text, isRunning = false, children }) => {
43
- const aui = useAui({
44
- part: TextMessagePartClient({ text, isRunning }),
45
- });
46
-
47
- return <AuiProvider value={aui}>{children}</AuiProvider>;
48
- };
3
+ export { TextMessagePartProvider } from "@assistant-ui/core/react";
@@ -1,35 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { type FC, type PropsWithChildren } from "react";
4
- import { useAui, AuiProvider, Derived } from "@assistant-ui/store";
5
- import type { ThreadListItemRuntime } from "../../legacy-runtime/runtime/ThreadListItemRuntime";
6
- import { ThreadListItemClient } from "@assistant-ui/core/store/internal";
7
-
8
- export const ThreadListItemByIndexProvider: FC<
9
- PropsWithChildren<{
10
- index: number;
11
- archived: boolean;
12
- }>
13
- > = ({ index, archived, children }) => {
14
- const aui = useAui({
15
- threadListItem: Derived({
16
- source: "threads",
17
- query: { type: "index", index, archived },
18
- get: (aui) => aui.threads().item({ index, archived }),
19
- }),
20
- });
21
-
22
- return <AuiProvider value={aui}>{children}</AuiProvider>;
23
- };
24
-
25
- export const ThreadListItemRuntimeProvider: FC<
26
- PropsWithChildren<{
27
- runtime: ThreadListItemRuntime;
28
- }>
29
- > = ({ runtime, children }) => {
30
- const aui = useAui({
31
- threadListItem: ThreadListItemClient({ runtime }),
32
- });
33
-
34
- return <AuiProvider value={aui}>{children}</AuiProvider>;
35
- };
3
+ export {
4
+ ThreadListItemByIndexProvider,
5
+ ThreadListItemRuntimeProvider,
6
+ } from "@assistant-ui/core/react";
@@ -12,3 +12,4 @@ export {
12
12
  } from "./AttachmentByIndexProvider";
13
13
  export { TextMessagePartProvider } from "./TextMessagePartProvider";
14
14
  export { MessageProvider } from "./MessageProvider";
15
+ export { ChainOfThoughtByIndicesProvider } from "./ChainOfThoughtByIndicesProvider";
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import "./types/store-augmentation";
1
+ import "@assistant-ui/core/react"; // store-augmentation side-effect (tools, dataRenderers scopes)
2
2
 
3
3
  // Re-export from @assistant-ui/store
4
4
  export {
@@ -1,10 +1,9 @@
1
1
  "use client";
2
2
 
3
- import { ComponentType, FC, memo, PropsWithChildren, useEffect } from "react";
4
- import { useAui, AuiProvider, AssistantClient } from "@assistant-ui/store";
3
+ import { FC, memo, PropsWithChildren, useEffect } from "react";
4
+ import { AssistantClient, useAui } from "@assistant-ui/store";
5
5
  import { AssistantRuntime } from "./runtime/AssistantRuntime";
6
- import { AssistantRuntimeCore } from "./runtime-cores/core/AssistantRuntimeCore";
7
- import { RuntimeAdapter } from "./RuntimeAdapter";
6
+ import { AssistantProviderBase } from "@assistant-ui/core/react";
8
7
  import { ThreadPrimitiveViewportProvider } from "../context/providers/ThreadViewportProvider";
9
8
  import { DevToolsProviderApi } from "../devtools";
10
9
 
@@ -22,35 +21,28 @@ export namespace AssistantRuntimeProvider {
22
21
  }>;
23
22
  }
24
23
 
25
- const getRenderComponent = (runtime: AssistantRuntime) => {
26
- return (runtime as { _core?: AssistantRuntimeCore })._core?.RenderComponent as
27
- | ComponentType
28
- | undefined;
29
- };
30
-
31
- export const AssistantRuntimeProviderImpl: FC<
32
- AssistantRuntimeProvider.Props
33
- > = ({ children, aui: parent = null, runtime }) => {
34
- const aui = useAui({ threads: RuntimeAdapter(runtime) }, { parent: parent });
35
-
24
+ const DevToolsRegistration: FC = () => {
25
+ const aui = useAui();
36
26
  useEffect(() => {
37
27
  if (typeof process === "undefined" || process.env.NODE_ENV === "production")
38
28
  return;
39
29
  return DevToolsProviderApi.register(aui);
40
30
  }, [aui]);
31
+ return null;
32
+ };
41
33
 
42
- const RenderComponent = getRenderComponent(runtime);
43
-
34
+ export const AssistantRuntimeProviderImpl: FC<
35
+ AssistantRuntimeProvider.Props
36
+ > = ({ children, aui, runtime }) => {
44
37
  return (
45
- <AuiProvider value={aui}>
46
- {RenderComponent && <RenderComponent />}
47
-
38
+ <AssistantProviderBase runtime={runtime} aui={aui ?? null}>
39
+ <DevToolsRegistration />
48
40
  {/* TODO temporarily allow accessing viewport state from outside the viewport */}
49
41
  {/* TODO figure out if this behavior should be deprecated, since it is quite hacky */}
50
42
  <ThreadPrimitiveViewportProvider>
51
43
  {children}
52
44
  </ThreadPrimitiveViewportProvider>
53
- </AuiProvider>
45
+ </AssistantProviderBase>
54
46
  );
55
47
  };
56
48
 
@@ -1,66 +1 @@
1
- import { resource, tapEffect, tapResource } from "@assistant-ui/tap";
2
- import type { AssistantRuntime } from "./runtime/AssistantRuntime";
3
- import { ThreadListClient } from "@assistant-ui/core/store/internal";
4
- import {
5
- tapAssistantClientRef,
6
- Derived,
7
- attachTransformScopes,
8
- } from "@assistant-ui/store";
9
- import { ModelContext } from "@assistant-ui/core/store";
10
- import { Tools, Suggestions } from "../model-context";
11
-
12
- export const RuntimeAdapter = resource((runtime: AssistantRuntime) => {
13
- const clientRef = tapAssistantClientRef();
14
-
15
- tapEffect(() => {
16
- return runtime.registerModelContextProvider(
17
- clientRef.current!.modelContext(),
18
- );
19
- }, [runtime, clientRef]);
20
-
21
- return tapResource(
22
- ThreadListClient({
23
- runtime: runtime.threads,
24
- __internal_assistantRuntime: runtime,
25
- }),
26
- );
27
- });
28
-
29
- attachTransformScopes(RuntimeAdapter, (scopes, parent) => {
30
- const result = {
31
- ...scopes,
32
- thread:
33
- scopes.thread ??
34
- Derived({
35
- source: "threads",
36
- query: { type: "main" },
37
- get: (aui) => aui.threads().thread("main"),
38
- }),
39
- threadListItem:
40
- scopes.threadListItem ??
41
- Derived({
42
- source: "threads",
43
- query: { type: "main" },
44
- get: (aui) => aui.threads().item("main"),
45
- }),
46
- composer:
47
- scopes.composer ??
48
- Derived({
49
- source: "thread",
50
- query: {},
51
- get: (aui) => aui.threads().thread("main").composer(),
52
- }),
53
- };
54
-
55
- if (!result.modelContext && parent.modelContext.source === null) {
56
- result.modelContext = ModelContext();
57
- }
58
- if (!result.tools && parent.tools.source === null) {
59
- result.tools = Tools({});
60
- }
61
- if (!result.suggestions && parent.suggestions.source === null) {
62
- result.suggestions = Suggestions();
63
- }
64
-
65
- return result;
66
- });
1
+ export { RuntimeAdapter } from "@assistant-ui/core/react";
@@ -86,7 +86,7 @@ export class CloudFileAttachmentAdapter implements AttachmentAdapter {
86
86
  {
87
87
  type: "file",
88
88
  data: url,
89
- mimeType: attachment.contentType,
89
+ mimeType: attachment.contentType ?? "",
90
90
  filename: attachment.name,
91
91
  },
92
92
  ];
@@ -7,4 +7,5 @@ export type {
7
7
  AssistantTransportConnectionMetadata,
8
8
  AssistantTransportCommand,
9
9
  AssistantTransportProtocol,
10
+ SendCommandsRequestBody,
10
11
  } from "./types";
@@ -83,6 +83,16 @@ export type HeadersValue = Record<string, string> | Headers;
83
83
 
84
84
  export type AssistantTransportProtocol = "data-stream" | "assistant-transport";
85
85
 
86
+ export type SendCommandsRequestBody = {
87
+ commands: QueuedCommand[];
88
+ state: unknown;
89
+ system: string | undefined;
90
+ tools: Record<string, unknown> | undefined;
91
+ threadId: string | null;
92
+ parentId?: string | null;
93
+ [key: string]: unknown;
94
+ };
95
+
86
96
  export type AssistantTransportOptions<T> = {
87
97
  initialState: T;
88
98
  api: string;
@@ -91,6 +101,21 @@ export type AssistantTransportOptions<T> = {
91
101
  converter: AssistantTransportStateConverter<T>;
92
102
  headers: HeadersValue | (() => Promise<HeadersValue>);
93
103
  body?: object | (() => Promise<object | undefined>);
104
+ /**
105
+ * Transform the request body before it is sent to the API.
106
+ * Receives the fully assembled body and returns the (potentially transformed) body.
107
+ *
108
+ * @example
109
+ * ```ts
110
+ * prepareSendCommandsRequest: (body) => ({
111
+ * ...body,
112
+ * trackingId: crypto.randomUUID(),
113
+ * })
114
+ * ```
115
+ */
116
+ prepareSendCommandsRequest?: (
117
+ body: SendCommandsRequestBody,
118
+ ) => Record<string, unknown> | Promise<Record<string, unknown>>;
94
119
  onResponse?: (response: Response) => void;
95
120
  onFinish?: () => void;
96
121
  onError?: (