@assistant-ui/core 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/LICENSE +21 -0
  2. package/dist/adapters/attachment.js +1 -1
  3. package/dist/adapters/attachment.js.map +1 -1
  4. package/dist/react/AssistantProvider.d.ts +10 -0
  5. package/dist/react/AssistantProvider.d.ts.map +1 -0
  6. package/dist/react/AssistantProvider.js +13 -0
  7. package/dist/react/AssistantProvider.js.map +1 -0
  8. package/dist/react/RuntimeAdapter.d.ts +3 -0
  9. package/dist/react/RuntimeAdapter.d.ts.map +1 -0
  10. package/dist/react/RuntimeAdapter.js +13 -0
  11. package/dist/react/RuntimeAdapter.js.map +1 -0
  12. package/dist/react/client/DataRenderers.d.ts +3 -0
  13. package/dist/react/client/DataRenderers.d.ts.map +1 -0
  14. package/dist/react/client/DataRenderers.js +33 -0
  15. package/dist/react/client/DataRenderers.js.map +1 -0
  16. package/dist/react/client/Tools.d.ts +8 -0
  17. package/dist/react/client/Tools.d.ts.map +1 -0
  18. package/dist/react/client/Tools.js +68 -0
  19. package/dist/react/client/Tools.js.map +1 -0
  20. package/dist/react/client/index.d.ts +3 -0
  21. package/dist/react/client/index.d.ts.map +1 -0
  22. package/dist/react/client/index.js +3 -0
  23. package/dist/react/client/index.js.map +1 -0
  24. package/dist/react/index.d.ts +17 -0
  25. package/dist/react/index.d.ts.map +1 -0
  26. package/dist/react/index.js +19 -0
  27. package/dist/react/index.js.map +1 -0
  28. package/dist/react/model-context/index.d.ts +12 -0
  29. package/dist/react/model-context/index.d.ts.map +1 -0
  30. package/dist/react/model-context/index.js +11 -0
  31. package/dist/react/model-context/index.js.map +1 -0
  32. package/dist/react/model-context/makeAssistantDataUI.d.ts +7 -0
  33. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -0
  34. package/dist/react/model-context/makeAssistantDataUI.js +10 -0
  35. package/dist/react/model-context/makeAssistantDataUI.js.map +1 -0
  36. package/dist/react/model-context/makeAssistantTool.d.ts +7 -0
  37. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -0
  38. package/dist/react/model-context/makeAssistantTool.js +10 -0
  39. package/dist/react/model-context/makeAssistantTool.js.map +1 -0
  40. package/dist/react/model-context/makeAssistantToolUI.d.ts +7 -0
  41. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -0
  42. package/dist/react/model-context/makeAssistantToolUI.js +10 -0
  43. package/dist/react/model-context/makeAssistantToolUI.js.map +1 -0
  44. package/dist/react/model-context/toolbox.d.ts +10 -0
  45. package/dist/react/model-context/toolbox.d.ts.map +1 -0
  46. package/dist/react/model-context/toolbox.js +2 -0
  47. package/dist/react/model-context/toolbox.js.map +1 -0
  48. package/dist/react/model-context/useAssistantDataUI.d.ts +7 -0
  49. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -0
  50. package/dist/react/model-context/useAssistantDataUI.js +11 -0
  51. package/dist/react/model-context/useAssistantDataUI.js.map +1 -0
  52. package/dist/react/model-context/useAssistantInstructions.d.ts +4 -0
  53. package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -0
  54. package/dist/react/model-context/useAssistantInstructions.js +22 -0
  55. package/dist/react/model-context/useAssistantInstructions.js.map +1 -0
  56. package/dist/react/model-context/useAssistantTool.d.ts +7 -0
  57. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -0
  58. package/dist/react/model-context/useAssistantTool.js +22 -0
  59. package/dist/react/model-context/useAssistantTool.js.map +1 -0
  60. package/dist/react/model-context/useAssistantToolUI.d.ts +7 -0
  61. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -0
  62. package/dist/react/model-context/useAssistantToolUI.js +11 -0
  63. package/dist/react/model-context/useAssistantToolUI.js.map +1 -0
  64. package/dist/react/model-context/useInlineRender.d.ts +4 -0
  65. package/dist/react/model-context/useInlineRender.d.ts.map +1 -0
  66. package/dist/react/model-context/useInlineRender.js +15 -0
  67. package/dist/react/model-context/useInlineRender.js.map +1 -0
  68. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +27 -0
  69. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -0
  70. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js +27 -0
  71. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -0
  72. package/dist/react/primitives/composer/ComposerAttachments.d.ts +23 -0
  73. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -0
  74. package/dist/react/primitives/composer/ComposerAttachments.js +47 -0
  75. package/dist/react/primitives/composer/ComposerAttachments.js.map +1 -0
  76. package/dist/react/primitives/composer/ComposerIf.d.ts +20 -0
  77. package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -0
  78. package/dist/react/primitives/composer/ComposerIf.js +24 -0
  79. package/dist/react/primitives/composer/ComposerIf.js.map +1 -0
  80. package/dist/react/primitives/message/MessageAttachments.d.ts +23 -0
  81. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -0
  82. package/dist/react/primitives/message/MessageAttachments.js +51 -0
  83. package/dist/react/primitives/message/MessageAttachments.js.map +1 -0
  84. package/dist/react/primitives/message/MessageParts.d.ts +139 -0
  85. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -0
  86. package/dist/react/primitives/message/MessageParts.js +251 -0
  87. package/dist/react/primitives/message/MessageParts.js.map +1 -0
  88. package/dist/react/primitives/thread/ThreadMessages.d.ts +95 -0
  89. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -0
  90. package/dist/react/primitives/thread/ThreadMessages.js +112 -0
  91. package/dist/react/primitives/thread/ThreadMessages.js.map +1 -0
  92. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +28 -0
  93. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -0
  94. package/dist/react/primitives/thread/ThreadSuggestions.js +32 -0
  95. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -0
  96. package/dist/react/primitives/threadList/ThreadListItems.d.ts +22 -0
  97. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -0
  98. package/dist/react/primitives/threadList/ThreadListItems.js +23 -0
  99. package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -0
  100. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +8 -0
  101. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -0
  102. package/dist/react/primitives/threadListItem/ThreadListItemTitle.js +8 -0
  103. package/dist/react/primitives/threadListItem/ThreadListItemTitle.js.map +1 -0
  104. package/dist/react/providers/AttachmentByIndexProvider.d.ts +8 -0
  105. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -0
  106. package/dist/react/providers/AttachmentByIndexProvider.js +23 -0
  107. package/dist/react/providers/AttachmentByIndexProvider.js.map +1 -0
  108. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +6 -0
  109. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -0
  110. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js +20 -0
  111. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js.map +1 -0
  112. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +5 -0
  113. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -0
  114. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js +13 -0
  115. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js.map +1 -0
  116. package/dist/react/providers/MessageByIndexProvider.d.ts +5 -0
  117. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -0
  118. package/dist/react/providers/MessageByIndexProvider.js +18 -0
  119. package/dist/react/providers/MessageByIndexProvider.js.map +1 -0
  120. package/dist/react/providers/PartByIndexProvider.d.ts +5 -0
  121. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -0
  122. package/dist/react/providers/PartByIndexProvider.js +13 -0
  123. package/dist/react/providers/PartByIndexProvider.js.map +1 -0
  124. package/dist/react/providers/SuggestionByIndexProvider.d.ts +6 -0
  125. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -0
  126. package/dist/react/providers/SuggestionByIndexProvider.js +13 -0
  127. package/dist/react/providers/SuggestionByIndexProvider.js.map +1 -0
  128. package/dist/react/providers/TextMessagePartProvider.d.ts +6 -0
  129. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -0
  130. package/dist/react/providers/TextMessagePartProvider.js +26 -0
  131. package/dist/react/providers/TextMessagePartProvider.js.map +1 -0
  132. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +6 -0
  133. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -0
  134. package/dist/react/providers/ThreadListItemByIndexProvider.js +13 -0
  135. package/dist/react/providers/ThreadListItemByIndexProvider.js.map +1 -0
  136. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +6 -0
  137. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -0
  138. package/dist/react/providers/ThreadListItemRuntimeProvider.js +10 -0
  139. package/dist/react/providers/ThreadListItemRuntimeProvider.js.map +1 -0
  140. package/dist/react/providers/index.d.ts +10 -0
  141. package/dist/react/providers/index.d.ts.map +1 -0
  142. package/dist/react/providers/index.js +10 -0
  143. package/dist/react/providers/index.js.map +1 -0
  144. package/dist/react/types/MessagePartComponentTypes.d.ts +33 -0
  145. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -0
  146. package/dist/react/types/MessagePartComponentTypes.js +2 -0
  147. package/dist/react/types/MessagePartComponentTypes.js.map +1 -0
  148. package/dist/react/types/index.d.ts +3 -0
  149. package/dist/react/types/index.d.ts.map +1 -0
  150. package/dist/react/types/index.js +2 -0
  151. package/dist/react/types/index.js.map +1 -0
  152. package/dist/react/types/scopes/dataRenderers.d.ts +13 -0
  153. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -0
  154. package/dist/react/types/scopes/dataRenderers.js +2 -0
  155. package/dist/react/types/scopes/dataRenderers.js.map +1 -0
  156. package/dist/react/types/scopes/index.d.ts +3 -0
  157. package/dist/react/types/scopes/index.d.ts.map +1 -0
  158. package/dist/react/types/scopes/index.js +2 -0
  159. package/dist/react/types/scopes/index.js.map +1 -0
  160. package/dist/react/types/scopes/tools.d.ts +13 -0
  161. package/dist/react/types/scopes/tools.d.ts.map +1 -0
  162. package/dist/react/types/scopes/tools.js +2 -0
  163. package/dist/react/types/scopes/tools.js.map +1 -0
  164. package/dist/react/types/store-augmentation.d.ts +10 -0
  165. package/dist/react/types/store-augmentation.d.ts.map +1 -0
  166. package/dist/react/types/store-augmentation.js +2 -0
  167. package/dist/react/types/store-augmentation.js.map +1 -0
  168. package/dist/runtime/api/attachment-runtime.d.ts +2 -2
  169. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  170. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  171. package/dist/runtime/api/composer-runtime.d.ts +8 -6
  172. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  173. package/dist/runtime/api/composer-runtime.js +2 -2
  174. package/dist/runtime/api/composer-runtime.js.map +1 -1
  175. package/dist/runtime/api/thread-runtime.d.ts +27 -2
  176. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  177. package/dist/runtime/base/base-composer-runtime-core.d.ts +2 -2
  178. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  179. package/dist/runtime/base/base-composer-runtime-core.js +28 -8
  180. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  181. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +1 -2
  182. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  183. package/dist/runtime/base/default-thread-composer-runtime-core.js +0 -3
  184. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  185. package/dist/runtime/index.d.ts +1 -1
  186. package/dist/runtime/index.d.ts.map +1 -1
  187. package/dist/runtime/index.js +1 -1
  188. package/dist/runtime/index.js.map +1 -1
  189. package/dist/runtime/interfaces/composer-runtime-core.d.ts +3 -5
  190. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  191. package/dist/runtime/utils/external-store-message.d.ts +8 -0
  192. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  193. package/dist/runtime/utils/external-store-message.js +12 -0
  194. package/dist/runtime/utils/external-store-message.js.map +1 -1
  195. package/dist/runtime/utils/thread-message-like.d.ts +10 -3
  196. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  197. package/dist/runtime/utils/thread-message-like.js +20 -5
  198. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  199. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  200. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +26 -8
  201. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  202. package/dist/runtimes/remote-thread-list/empty-thread-core.js +1 -1
  203. package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
  204. package/dist/store/clients/chain-of-thought-client.d.ts +1 -1
  205. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  206. package/dist/store/clients/model-context-client.d.ts +1 -1
  207. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  208. package/dist/store/clients/no-op-composer-client.d.ts +1 -1
  209. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  210. package/dist/store/clients/runtime-adapter.d.ts +5 -0
  211. package/dist/store/clients/runtime-adapter.d.ts.map +1 -0
  212. package/dist/store/clients/runtime-adapter.js +46 -0
  213. package/dist/store/clients/runtime-adapter.js.map +1 -0
  214. package/dist/store/clients/suggestions.d.ts +1 -1
  215. package/dist/store/clients/suggestions.d.ts.map +1 -1
  216. package/dist/store/clients/suggestions.js +1 -1
  217. package/dist/store/clients/suggestions.js.map +1 -1
  218. package/dist/store/clients/thread-message-client.d.ts +1 -1
  219. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  220. package/dist/store/clients/thread-message-client.js +1 -1
  221. package/dist/store/clients/thread-message-client.js.map +1 -1
  222. package/dist/store/index.d.ts +1 -11
  223. package/dist/store/index.d.ts.map +1 -1
  224. package/dist/store/index.js +2 -9
  225. package/dist/store/index.js.map +1 -1
  226. package/dist/store/internal.d.ts +1 -9
  227. package/dist/store/internal.d.ts.map +1 -1
  228. package/dist/store/internal.js +1 -10
  229. package/dist/store/internal.js.map +1 -1
  230. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +1 -1
  231. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  232. package/dist/store/runtime-clients/composer-runtime-client.d.ts +1 -1
  233. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  234. package/dist/store/runtime-clients/composer-runtime-client.js +1 -1
  235. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  236. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +1 -1
  237. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  238. package/dist/store/runtime-clients/message-runtime-client.d.ts +1 -1
  239. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  240. package/dist/store/runtime-clients/message-runtime-client.js +1 -1
  241. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  242. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +1 -1
  243. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  244. package/dist/store/runtime-clients/thread-list-item-runtime-client.js +1 -1
  245. package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -1
  246. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +1 -1
  247. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  248. package/dist/store/runtime-clients/thread-list-runtime-client.js +1 -1
  249. package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
  250. package/dist/store/runtime-clients/thread-runtime-client.d.ts +1 -1
  251. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  252. package/dist/store/runtime-clients/thread-runtime-client.js +1 -1
  253. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  254. package/dist/store/scope-registration.d.ts +27 -0
  255. package/dist/store/scope-registration.d.ts.map +1 -0
  256. package/dist/store/scope-registration.js +2 -0
  257. package/dist/store/scope-registration.js.map +1 -0
  258. package/dist/store/scopes/composer.d.ts +2 -2
  259. package/dist/store/scopes/composer.d.ts.map +1 -1
  260. package/dist/types/attachment.d.ts +9 -2
  261. package/dist/types/attachment.d.ts.map +1 -1
  262. package/dist/types/index.d.ts +1 -1
  263. package/dist/types/index.d.ts.map +1 -1
  264. package/package.json +35 -12
  265. package/src/adapters/attachment.ts +1 -1
  266. package/src/react/AssistantProvider.tsx +34 -0
  267. package/src/react/RuntimeAdapter.ts +22 -0
  268. package/src/react/client/DataRenderers.ts +42 -0
  269. package/src/react/client/Tools.ts +97 -0
  270. package/src/react/client/index.ts +2 -0
  271. package/src/react/index.ts +50 -0
  272. package/src/react/model-context/index.ts +25 -0
  273. package/src/react/model-context/makeAssistantDataUI.ts +20 -0
  274. package/src/react/model-context/makeAssistantTool.ts +20 -0
  275. package/src/react/model-context/makeAssistantToolUI.ts +20 -0
  276. package/src/react/model-context/toolbox.ts +15 -0
  277. package/src/react/model-context/useAssistantDataUI.ts +16 -0
  278. package/src/react/model-context/useAssistantInstructions.ts +30 -0
  279. package/src/react/model-context/useAssistantTool.ts +37 -0
  280. package/src/react/model-context/useAssistantToolUI.ts +18 -0
  281. package/src/react/model-context/useInlineRender.ts +25 -0
  282. package/src/react/primitives/chainOfThought/ChainOfThoughtParts.tsx +73 -0
  283. package/src/react/primitives/composer/ComposerAttachments.tsx +95 -0
  284. package/src/react/primitives/composer/ComposerIf.tsx +49 -0
  285. package/src/react/primitives/message/MessageAttachments.tsx +98 -0
  286. package/src/react/primitives/message/MessageParts.tsx +561 -0
  287. package/src/react/primitives/thread/ThreadMessages.tsx +222 -0
  288. package/src/react/primitives/thread/ThreadSuggestions.tsx +82 -0
  289. package/src/react/primitives/threadList/ThreadListItems.tsx +66 -0
  290. package/src/react/primitives/threadListItem/ThreadListItemTitle.tsx +17 -0
  291. package/src/react/providers/AttachmentByIndexProvider.tsx +34 -0
  292. package/src/react/providers/ChainOfThoughtByIndicesProvider.tsx +34 -0
  293. package/src/react/providers/ChainOfThoughtPartByIndexProvider.tsx +18 -0
  294. package/src/react/providers/MessageByIndexProvider.tsx +23 -0
  295. package/src/react/providers/PartByIndexProvider.tsx +18 -0
  296. package/src/react/providers/SuggestionByIndexProvider.tsx +21 -0
  297. package/src/react/providers/TextMessagePartProvider.tsx +46 -0
  298. package/src/react/providers/ThreadListItemByIndexProvider.tsx +19 -0
  299. package/src/react/providers/ThreadListItemRuntimeProvider.tsx +16 -0
  300. package/src/react/providers/index.ts +15 -0
  301. package/src/react/types/MessagePartComponentTypes.ts +66 -0
  302. package/src/react/types/index.ts +31 -0
  303. package/src/react/types/scopes/dataRenderers.ts +15 -0
  304. package/src/react/types/scopes/index.ts +6 -0
  305. package/src/react/types/scopes/tools.ts +18 -0
  306. package/src/react/types/store-augmentation.ts +11 -0
  307. package/src/runtime/api/attachment-runtime.ts +2 -7
  308. package/src/runtime/api/composer-runtime.ts +9 -8
  309. package/src/runtime/base/base-composer-runtime-core.ts +28 -8
  310. package/src/runtime/base/default-thread-composer-runtime-core.ts +1 -5
  311. package/src/runtime/index.ts +1 -0
  312. package/src/runtime/interfaces/composer-runtime-core.ts +3 -6
  313. package/src/runtime/utils/external-store-message.ts +15 -0
  314. package/src/runtime/utils/thread-message-like.ts +40 -7
  315. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +29 -12
  316. package/src/runtimes/remote-thread-list/empty-thread-core.ts +1 -1
  317. package/src/store/clients/chain-of-thought-client.ts +1 -1
  318. package/src/store/clients/model-context-client.ts +1 -1
  319. package/src/store/clients/no-op-composer-client.ts +1 -1
  320. package/src/store/clients/runtime-adapter.ts +67 -0
  321. package/src/store/clients/suggestions.ts +2 -2
  322. package/src/store/clients/thread-message-client.ts +2 -2
  323. package/src/store/index.ts +2 -38
  324. package/src/store/internal.ts +4 -31
  325. package/src/store/runtime-clients/attachment-runtime-client.ts +1 -1
  326. package/src/store/runtime-clients/composer-runtime-client.ts +5 -1
  327. package/src/store/runtime-clients/message-part-runtime-client.ts +1 -1
  328. package/src/store/runtime-clients/message-runtime-client.ts +5 -1
  329. package/src/store/runtime-clients/thread-list-item-runtime-client.ts +1 -1
  330. package/src/store/runtime-clients/thread-list-runtime-client.ts +5 -1
  331. package/src/store/runtime-clients/thread-runtime-client.ts +1 -1
  332. package/src/store/scope-registration.ts +27 -0
  333. package/src/store/scopes/composer.ts +2 -1
  334. package/src/tests/external-store-thread-runtime-core.test.ts +152 -0
  335. package/src/tests/thread-message-like.test.ts +110 -0
  336. package/src/types/attachment.ts +10 -2
  337. package/src/types/index.ts +1 -0
  338. package/dist/store/types/client.d.ts +0 -137
  339. package/dist/store/types/client.d.ts.map +0 -1
  340. package/dist/store/types/client.js +0 -2
  341. package/dist/store/types/client.js.map +0 -1
  342. package/dist/store/types/events.d.ts +0 -33
  343. package/dist/store/types/events.d.ts.map +0 -1
  344. package/dist/store/types/events.js +0 -8
  345. package/dist/store/types/events.js.map +0 -1
  346. package/dist/store/types/index.d.ts +0 -3
  347. package/dist/store/types/index.d.ts.map +0 -1
  348. package/dist/store/types/index.js +0 -2
  349. package/dist/store/types/index.js.map +0 -1
  350. package/dist/store/utils/attach-transform-scopes.d.ts +0 -11
  351. package/dist/store/utils/attach-transform-scopes.d.ts.map +0 -1
  352. package/dist/store/utils/attach-transform-scopes.js +0 -12
  353. package/dist/store/utils/attach-transform-scopes.js.map +0 -1
  354. package/dist/store/utils/base-proxy-handler.d.ts +0 -23
  355. package/dist/store/utils/base-proxy-handler.d.ts.map +0 -1
  356. package/dist/store/utils/base-proxy-handler.js +0 -46
  357. package/dist/store/utils/base-proxy-handler.js.map +0 -1
  358. package/dist/store/utils/derived.d.ts +0 -34
  359. package/dist/store/utils/derived.d.ts.map +0 -1
  360. package/dist/store/utils/derived.js +0 -24
  361. package/dist/store/utils/derived.js.map +0 -1
  362. package/dist/store/utils/index.d.ts +0 -7
  363. package/dist/store/utils/index.d.ts.map +0 -1
  364. package/dist/store/utils/index.js +0 -7
  365. package/dist/store/utils/index.js.map +0 -1
  366. package/dist/store/utils/notification-manager.d.ts +0 -11
  367. package/dist/store/utils/notification-manager.d.ts.map +0 -1
  368. package/dist/store/utils/notification-manager.js +0 -84
  369. package/dist/store/utils/notification-manager.js.map +0 -1
  370. package/dist/store/utils/proxied-assistant-state.d.ts +0 -8
  371. package/dist/store/utils/proxied-assistant-state.d.ts.map +0 -1
  372. package/dist/store/utils/proxied-assistant-state.js +0 -33
  373. package/dist/store/utils/proxied-assistant-state.js.map +0 -1
  374. package/dist/store/utils/split-clients.d.ts +0 -10
  375. package/dist/store/utils/split-clients.d.ts.map +0 -1
  376. package/dist/store/utils/split-clients.js +0 -53
  377. package/dist/store/utils/split-clients.js.map +0 -1
  378. package/dist/store/utils/tap-assistant-context.d.ts +0 -19
  379. package/dist/store/utils/tap-assistant-context.d.ts.map +0 -1
  380. package/dist/store/utils/tap-assistant-context.js +0 -23
  381. package/dist/store/utils/tap-assistant-context.js.map +0 -1
  382. package/dist/store/utils/tap-client-list.d.ts +0 -28
  383. package/dist/store/utils/tap-client-list.d.ts.map +0 -1
  384. package/dist/store/utils/tap-client-list.js +0 -68
  385. package/dist/store/utils/tap-client-list.js.map +0 -1
  386. package/dist/store/utils/tap-client-lookup.d.ts +0 -15
  387. package/dist/store/utils/tap-client-lookup.d.ts.map +0 -1
  388. package/dist/store/utils/tap-client-lookup.js +0 -42
  389. package/dist/store/utils/tap-client-lookup.js.map +0 -1
  390. package/dist/store/utils/tap-client-resource.d.ts +0 -13
  391. package/dist/store/utils/tap-client-resource.d.ts.map +0 -1
  392. package/dist/store/utils/tap-client-resource.js +0 -114
  393. package/dist/store/utils/tap-client-resource.js.map +0 -1
  394. package/dist/store/utils/tap-client-stack-context.d.ts +0 -23
  395. package/dist/store/utils/tap-client-stack-context.d.ts.map +0 -1
  396. package/dist/store/utils/tap-client-stack-context.js +0 -28
  397. package/dist/store/utils/tap-client-stack-context.js.map +0 -1
  398. package/dist/store/utils/wrapper-resource.d.ts +0 -3
  399. package/dist/store/utils/wrapper-resource.d.ts.map +0 -1
  400. package/dist/store/utils/wrapper-resource.js +0 -11
  401. package/dist/store/utils/wrapper-resource.js.map +0 -1
  402. package/src/store/types/client.ts +0 -203
  403. package/src/store/types/events.ts +0 -77
  404. package/src/store/types/index.ts +0 -23
  405. package/src/store/utils/attach-transform-scopes.ts +0 -38
  406. package/src/store/utils/base-proxy-handler.ts +0 -50
  407. package/src/store/utils/derived.ts +0 -46
  408. package/src/store/utils/index.ts +0 -28
  409. package/src/store/utils/notification-manager.ts +0 -114
  410. package/src/store/utils/proxied-assistant-state.ts +0 -55
  411. package/src/store/utils/split-clients.ts +0 -82
  412. package/src/store/utils/tap-assistant-context.ts +0 -58
  413. package/src/store/utils/tap-client-list.ts +0 -121
  414. package/src/store/utils/tap-client-lookup.ts +0 -79
  415. package/src/store/utils/tap-client-resource.ts +0 -187
  416. package/src/store/utils/tap-client-stack-context.ts +0 -51
  417. package/src/store/utils/wrapper-resource.ts +0 -17
@@ -0,0 +1,11 @@
1
+ import { useEffect } from "react";
2
+ import { useAui } from "@assistant-ui/store";
3
+ export const useAssistantToolUI = (tool) => {
4
+ const aui = useAui();
5
+ useEffect(() => {
6
+ if (!tool?.toolName || !tool?.render)
7
+ return undefined;
8
+ return aui.tools().setToolUI(tool.toolName, tool.render);
9
+ }, [aui, tool?.toolName, tool?.render]);
10
+ };
11
+ //# sourceMappingURL=useAssistantToolUI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAssistantToolUI.js","sourceRoot":"","sources":["../../../src/react/model-context/useAssistantToolUI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQ7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAA2C,EAC3C,EAAE;IACF,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,IAAI,EAAE,MAAM;YAAE,OAAO,SAAS,CAAC;QACvD,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { FC } from "react";
2
+ import { ToolCallMessagePartProps } from "../types/index.js";
3
+ export declare const useInlineRender: <TArgs, TResult>(toolUI: FC<ToolCallMessagePartProps<TArgs, TResult>>) => FC<ToolCallMessagePartProps<TArgs, TResult>>;
4
+ //# sourceMappingURL=useInlineRender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInlineRender.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/useInlineRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAoC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,0BAAiB;AAGpD,eAAO,MAAM,eAAe,GAAI,KAAK,EAAE,OAAO,EAC5C,QAAQ,EAAE,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KACnD,EAAE,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAkB7C,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { useCallback, useEffect, useState } from "react";
2
+ import { create } from "zustand";
3
+ export const useInlineRender = (toolUI) => {
4
+ const [useToolUIStore] = useState(() => create(() => ({
5
+ toolUI,
6
+ })));
7
+ useEffect(() => {
8
+ useToolUIStore.setState({ toolUI });
9
+ }, [toolUI, useToolUIStore]);
10
+ return useCallback(function ToolUI(args) {
11
+ const store = useToolUIStore();
12
+ return store.toolUI(args);
13
+ }, [useToolUIStore]);
14
+ };
15
+ //# sourceMappingURL=useInlineRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInlineRender.js","sourceRoot":"","sources":["../../../src/react/model-context/useInlineRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,MAAoD,EACN,EAAE;IAChD,MAAM,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CACrC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACZ,MAAM;KACP,CAAC,CAAC,CACJ,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAE7B,OAAO,WAAW,CAChB,SAAS,MAAM,CAAC,IAAI;QAClB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type ComponentType, type FC, type PropsWithChildren } from "react";
2
+ import type { ReasoningMessagePartComponent, ToolCallMessagePartComponent } from "../../types/index.js";
3
+ export declare namespace ChainOfThoughtPrimitiveParts {
4
+ type Props = {
5
+ /**
6
+ * Component configuration for rendering chain of thought parts.
7
+ */
8
+ components?: {
9
+ /** Component for rendering reasoning parts */
10
+ Reasoning?: ReasoningMessagePartComponent | undefined;
11
+ /** Fallback component for tool-call parts */
12
+ tools?: {
13
+ Fallback?: ToolCallMessagePartComponent | undefined;
14
+ };
15
+ /** Layout component to wrap the rendered parts when expanded */
16
+ Layout?: ComponentType<PropsWithChildren> | undefined;
17
+ };
18
+ };
19
+ }
20
+ /**
21
+ * Renders the parts within a chain of thought, with support for collapsed/expanded states.
22
+ *
23
+ * When collapsed, no parts are shown. When expanded, all parts are rendered
24
+ * using the provided component configuration through the part scope mechanism.
25
+ */
26
+ export declare const ChainOfThoughtPrimitiveParts: FC<ChainOfThoughtPrimitiveParts.Props>;
27
+ //# sourceMappingURL=ChainOfThoughtParts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainOfThoughtParts.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/chainOfThought/ChainOfThoughtParts.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,EAAE,EACP,KAAK,iBAAiB,EAEvB,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EACV,6BAA6B,EAC7B,4BAA4B,EAC7B,6BAAoB;AAErB,yBAAiB,4BAA4B,CAAC;IAC5C,KAAY,KAAK,GAAG;QAClB;;WAEG;QACH,UAAU,CAAC,EAAE;YACX,8CAA8C;YAC9C,SAAS,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;YACtD,6CAA6C;YAC7C,KAAK,CAAC,EAAE;gBACN,QAAQ,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;aACrD,CAAC;YACF,gEAAgE;YAChE,MAAM,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;SACvD,CAAC;KACH,CAAC;CACH;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,EAAE,EAAE,CAC3C,4BAA4B,CAAC,KAAK,CA+BnC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useMemo, } from "react";
3
+ import { useAuiState } from "@assistant-ui/store";
4
+ import { ChainOfThoughtPartByIndexProvider } from "../../providers/ChainOfThoughtPartByIndexProvider.js";
5
+ import { MessagePartComponent } from "../message/MessageParts.js";
6
+ /**
7
+ * Renders the parts within a chain of thought, with support for collapsed/expanded states.
8
+ *
9
+ * When collapsed, no parts are shown. When expanded, all parts are rendered
10
+ * using the provided component configuration through the part scope mechanism.
11
+ */
12
+ export const ChainOfThoughtPrimitiveParts = ({ components }) => {
13
+ const partsLength = useAuiState((s) => s.chainOfThought.parts.length);
14
+ const messageComponents = useMemo(() => ({
15
+ Reasoning: components?.Reasoning,
16
+ tools: {
17
+ Fallback: components?.tools?.Fallback,
18
+ },
19
+ }), [components?.Reasoning, components?.tools?.Fallback]);
20
+ const Layout = components?.Layout;
21
+ const elements = useMemo(() => {
22
+ return Array.from({ length: partsLength }, (_, index) => (_jsx(ChainOfThoughtPartByIndexProvider, { index: index, children: Layout ? (_jsx(Layout, { children: _jsx(MessagePartComponent, { components: messageComponents }) })) : (_jsx(MessagePartComponent, { components: messageComponents })) }, index)));
23
+ }, [partsLength, messageComponents, Layout]);
24
+ return _jsx(_Fragment, { children: elements });
25
+ };
26
+ ChainOfThoughtPrimitiveParts.displayName = "ChainOfThoughtPrimitive.Parts";
27
+ //# sourceMappingURL=ChainOfThoughtParts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainOfThoughtParts.js","sourceRoot":"","sources":["../../../../src/react/primitives/chainOfThought/ChainOfThoughtParts.tsx"],"names":[],"mappings":";AAAA,OAAO,EAIL,OAAO,GACR,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,iCAAiC,EAAE,6DAA0D;AACtG,OAAO,EAAE,oBAAoB,EAAE,mCAAgC;AAwB/D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAErC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IACrB,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtE,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE,UAAU,EAAE,SAAS;QAChC,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ;SACtC;KACF,CAAC,EACF,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CACrD,CAAC;IAEF,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,CAAC;IAElC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACvD,KAAC,iCAAiC,IAAa,KAAK,EAAE,KAAK,YACxD,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,MAAM,cACL,KAAC,oBAAoB,IAAC,UAAU,EAAE,iBAAiB,GAAI,GAChD,CACV,CAAC,CAAC,CAAC,CACF,KAAC,oBAAoB,IAAC,UAAU,EAAE,iBAAiB,GAAI,CACxD,IAPqC,KAAK,CAQT,CACrC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAE7C,OAAO,4BAAG,QAAQ,GAAI,CAAC;AACzB,CAAC,CAAC;AAEF,4BAA4B,CAAC,WAAW,GAAG,+BAA+B,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { ComponentType, type FC } from "react";
2
+ export declare namespace ComposerPrimitiveAttachments {
3
+ type Props = {
4
+ components: {
5
+ Image?: ComponentType | undefined;
6
+ Document?: ComponentType | undefined;
7
+ File?: ComponentType | undefined;
8
+ Attachment?: ComponentType | undefined;
9
+ } | undefined;
10
+ };
11
+ }
12
+ export declare namespace ComposerPrimitiveAttachmentByIndex {
13
+ type Props = {
14
+ index: number;
15
+ components?: ComposerPrimitiveAttachments.Props["components"];
16
+ };
17
+ }
18
+ /**
19
+ * Renders a single attachment at the specified index within the composer.
20
+ */
21
+ export declare const ComposerPrimitiveAttachmentByIndex: FC<ComposerPrimitiveAttachmentByIndex.Props>;
22
+ export declare const ComposerPrimitiveAttachments: FC<ComposerPrimitiveAttachments.Props>;
23
+ //# sourceMappingURL=ComposerAttachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposerAttachments.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/composer/ComposerAttachments.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,EAAiB,MAAM,OAAO,CAAC;AAI9D,yBAAiB,4BAA4B,CAAC;IAC5C,KAAY,KAAK,GAAG;QAClB,UAAU,EACN;YACE,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;YAClC,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;YACrC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;YACjC,UAAU,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;SACxC,GACD,SAAS,CAAC;KACf,CAAC;CACH;AA8BD,yBAAiB,kCAAkC,CAAC;IAClD,KAAY,KAAK,GAAG;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,4BAA4B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;KAC/D,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,kCAAkC,EAAE,EAAE,CAAC,kCAAkC,CAAC,KAAK,CAezF,CAAC;AAKJ,eAAO,MAAM,4BAA4B,EAAE,EAAE,CAC3C,4BAA4B,CAAC,KAAK,CAenC,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo, useMemo } from "react";
3
+ import { useAuiState } from "@assistant-ui/store";
4
+ import { ComposerAttachmentByIndexProvider } from "../../providers/index.js";
5
+ const getComponent = (components, attachment) => {
6
+ const type = attachment.type;
7
+ switch (type) {
8
+ case "image":
9
+ return components?.Image ?? components?.Attachment;
10
+ case "document":
11
+ return components?.Document ?? components?.Attachment;
12
+ case "file":
13
+ return components?.File ?? components?.Attachment;
14
+ default:
15
+ return components?.Attachment;
16
+ }
17
+ };
18
+ const AttachmentComponent = ({ components }) => {
19
+ const attachment = useAuiState((s) => s.attachment);
20
+ if (!attachment)
21
+ return null;
22
+ const Component = getComponent(components, attachment);
23
+ if (!Component)
24
+ return null;
25
+ return _jsx(Component, {});
26
+ };
27
+ /**
28
+ * Renders a single attachment at the specified index within the composer.
29
+ */
30
+ export const ComposerPrimitiveAttachmentByIndex = memo(({ index, components }) => {
31
+ return (_jsx(ComposerAttachmentByIndexProvider, { index: index, children: _jsx(AttachmentComponent, { components: components }) }));
32
+ }, (prev, next) => prev.index === next.index &&
33
+ prev.components?.Image === next.components?.Image &&
34
+ prev.components?.Document === next.components?.Document &&
35
+ prev.components?.File === next.components?.File &&
36
+ prev.components?.Attachment === next.components?.Attachment);
37
+ ComposerPrimitiveAttachmentByIndex.displayName =
38
+ "ComposerPrimitive.AttachmentByIndex";
39
+ export const ComposerPrimitiveAttachments = ({ components }) => {
40
+ const attachmentsCount = useAuiState((s) => s.composer.attachments.length);
41
+ const attachmentElements = useMemo(() => {
42
+ return Array.from({ length: attachmentsCount }, (_, index) => (_jsx(ComposerPrimitiveAttachmentByIndex, { index: index, components: components }, index)));
43
+ }, [attachmentsCount, components]);
44
+ return attachmentElements;
45
+ };
46
+ ComposerPrimitiveAttachments.displayName = "ComposerPrimitive.Attachments";
47
+ //# sourceMappingURL=ComposerAttachments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposerAttachments.js","sourceRoot":"","sources":["../../../../src/react/primitives/composer/ComposerAttachments.tsx"],"names":[],"mappings":";AACA,OAAO,EAA0B,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,iCAAiC,EAAE,iCAAwB;AAepE,MAAM,YAAY,GAAG,CACnB,UAA4D,EAC5D,UAAsB,EACtB,EAAE;IACF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAC7B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,UAAU,EAAE,KAAK,IAAI,UAAU,EAAE,UAAU,CAAC;QACrD,KAAK,UAAU;YACb,OAAO,UAAU,EAAE,QAAQ,IAAI,UAAU,EAAE,UAAU,CAAC;QACxD,KAAK,MAAM;YACT,OAAO,UAAU,EAAE,IAAI,IAAI,UAAU,EAAE,UAAU,CAAC;QACpD;YACE,OAAO,UAAU,EAAE,UAAU,CAAC;IAClC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAEpB,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IACtB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,KAAC,SAAS,KAAG,CAAC;AACvB,CAAC,CAAC;AASF;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,IAAI,CACF,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;IACxB,OAAO,CACL,KAAC,iCAAiC,IAAC,KAAK,EAAE,KAAK,YAC7C,KAAC,mBAAmB,IAAC,UAAU,EAAE,UAAU,GAAI,GACb,CACrC,CAAC;AACJ,CAAC,EACD,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CACb,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;IACzB,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE,KAAK;IACjD,IAAI,CAAC,UAAU,EAAE,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE,QAAQ;IACvD,IAAI,CAAC,UAAU,EAAE,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE,IAAI;IAC/C,IAAI,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,UAAU,CAC9D,CAAC;AAEJ,kCAAkC,CAAC,WAAW;IAC5C,qCAAqC,CAAC;AAExC,MAAM,CAAC,MAAM,4BAA4B,GAErC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IACrB,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAE3E,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5D,KAAC,kCAAkC,IAEjC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,IAFjB,KAAK,CAGV,CACH,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;IAEnC,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAEF,4BAA4B,CAAC,WAAW,GAAG,+BAA+B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { FC, PropsWithChildren } from "react";
2
+ type ComposerIfFilters = {
3
+ /** Whether the composer is in editing mode */
4
+ editing: boolean | undefined;
5
+ /** Whether dictation is currently active */
6
+ dictation: boolean | undefined;
7
+ };
8
+ export type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
9
+ [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
10
+ }[Keys];
11
+ export type UseComposerIfProps = RequireAtLeastOne<ComposerIfFilters>;
12
+ export declare namespace ComposerPrimitiveIf {
13
+ type Props = PropsWithChildren<UseComposerIfProps>;
14
+ }
15
+ /**
16
+ * @deprecated Use `<AuiIf condition={(s) => s.composer...} />` instead.
17
+ */
18
+ export declare const ComposerPrimitiveIf: FC<ComposerPrimitiveIf.Props>;
19
+ export {};
20
+ //# sourceMappingURL=ComposerIf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposerIf.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/composer/ComposerIf.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGnD,KAAK,iBAAiB,GAAG;IACvB,8CAA8C;IAC9C,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,4CAA4C;IAC5C,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,IAAI,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,CACrE,CAAC,EACD,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CACvB,GACC;KACG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;CACzE,CAAC,IAAI,CAAC,CAAC;AAEV,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AAetE,yBAAiB,mBAAmB,CAAC;IACnC,KAAY,KAAK,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAM7D,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { useAuiState } from "@assistant-ui/store";
2
+ const useComposerIf = (props) => {
3
+ return useAuiState((s) => {
4
+ if (props.editing === true && !s.composer.isEditing)
5
+ return false;
6
+ if (props.editing === false && s.composer.isEditing)
7
+ return false;
8
+ const isDictating = s.composer.dictation != null;
9
+ if (props.dictation === true && !isDictating)
10
+ return false;
11
+ if (props.dictation === false && isDictating)
12
+ return false;
13
+ return true;
14
+ });
15
+ };
16
+ /**
17
+ * @deprecated Use `<AuiIf condition={(s) => s.composer...} />` instead.
18
+ */
19
+ export const ComposerPrimitiveIf = ({ children, ...query }) => {
20
+ const result = useComposerIf(query);
21
+ return result ? children : null;
22
+ };
23
+ ComposerPrimitiveIf.displayName = "ComposerPrimitive.If";
24
+ //# sourceMappingURL=ComposerIf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposerIf.js","sourceRoot":"","sources":["../../../../src/react/primitives/composer/ComposerIf.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAmBlD,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE;IAClD,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAClE,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAElE,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC;QACjD,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAC3D,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,IAAI,WAAW;YAAE,OAAO,KAAK,CAAC;QAE3D,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAMF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAkC,CAAC,EACjE,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC,CAAC;AAEF,mBAAmB,CAAC,WAAW,GAAG,sBAAsB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { ComponentType, type FC } from "react";
2
+ export declare namespace MessagePrimitiveAttachments {
3
+ type Props = {
4
+ components: {
5
+ Image?: ComponentType | undefined;
6
+ Document?: ComponentType | undefined;
7
+ File?: ComponentType | undefined;
8
+ Attachment?: ComponentType | undefined;
9
+ } | undefined;
10
+ };
11
+ }
12
+ export declare namespace MessagePrimitiveAttachmentByIndex {
13
+ type Props = {
14
+ index: number;
15
+ components?: MessagePrimitiveAttachments.Props["components"];
16
+ };
17
+ }
18
+ /**
19
+ * Renders a single attachment at the specified index within the current message.
20
+ */
21
+ export declare const MessagePrimitiveAttachmentByIndex: FC<MessagePrimitiveAttachmentByIndex.Props>;
22
+ export declare const MessagePrimitiveAttachments: FC<MessagePrimitiveAttachments.Props>;
23
+ //# sourceMappingURL=MessageAttachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageAttachments.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/message/MessageAttachments.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,EAAiB,MAAM,OAAO,CAAC;AAI9D,yBAAiB,2BAA2B,CAAC;IAC3C,KAAY,KAAK,GAAG;QAClB,UAAU,EACN;YACE,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;YAClC,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;YACrC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;YACjC,UAAU,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;SACxC,GACD,SAAS,CAAC;KACf,CAAC;CACH;AA8BD,yBAAiB,iCAAiC,CAAC;IACjD,KAAY,KAAK,GAAG;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,2BAA2B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;KAC9D,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAAE,EAAE,CAAC,iCAAiC,CAAC,KAAK,CAevF,CAAC;AAKJ,eAAO,MAAM,2BAA2B,EAAE,EAAE,CAC1C,2BAA2B,CAAC,KAAK,CAkBlC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo, useMemo } from "react";
3
+ import { useAuiState } from "@assistant-ui/store";
4
+ import { MessageAttachmentByIndexProvider } from "../../providers/index.js";
5
+ const getComponent = (components, attachment) => {
6
+ const type = attachment.type;
7
+ switch (type) {
8
+ case "image":
9
+ return components?.Image ?? components?.Attachment;
10
+ case "document":
11
+ return components?.Document ?? components?.Attachment;
12
+ case "file":
13
+ return components?.File ?? components?.Attachment;
14
+ default:
15
+ return components?.Attachment;
16
+ }
17
+ };
18
+ const AttachmentComponent = ({ components }) => {
19
+ const attachment = useAuiState((s) => s.attachment);
20
+ if (!attachment)
21
+ return null;
22
+ const Component = getComponent(components, attachment);
23
+ if (!Component)
24
+ return null;
25
+ return _jsx(Component, {});
26
+ };
27
+ /**
28
+ * Renders a single attachment at the specified index within the current message.
29
+ */
30
+ export const MessagePrimitiveAttachmentByIndex = memo(({ index, components }) => {
31
+ return (_jsx(MessageAttachmentByIndexProvider, { index: index, children: _jsx(AttachmentComponent, { components: components }) }));
32
+ }, (prev, next) => prev.index === next.index &&
33
+ prev.components?.Image === next.components?.Image &&
34
+ prev.components?.Document === next.components?.Document &&
35
+ prev.components?.File === next.components?.File &&
36
+ prev.components?.Attachment === next.components?.Attachment);
37
+ MessagePrimitiveAttachmentByIndex.displayName =
38
+ "MessagePrimitive.AttachmentByIndex";
39
+ export const MessagePrimitiveAttachments = ({ components }) => {
40
+ const attachmentsCount = useAuiState((s) => {
41
+ if (s.message.role !== "user")
42
+ return 0;
43
+ return s.message.attachments.length;
44
+ });
45
+ const attachmentElements = useMemo(() => {
46
+ return Array.from({ length: attachmentsCount }, (_, index) => (_jsx(MessagePrimitiveAttachmentByIndex, { index: index, components: components }, index)));
47
+ }, [attachmentsCount, components]);
48
+ return attachmentElements;
49
+ };
50
+ MessagePrimitiveAttachments.displayName = "MessagePrimitive.Attachments";
51
+ //# sourceMappingURL=MessageAttachments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageAttachments.js","sourceRoot":"","sources":["../../../../src/react/primitives/message/MessageAttachments.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ import { type ComponentType, type FC, PropsWithChildren } from "react";
2
+ import type { Unstable_AudioMessagePartComponent, DataMessagePartComponent, EmptyMessagePartComponent, TextMessagePartComponent, ImageMessagePartComponent, SourceMessagePartComponent, ToolCallMessagePartComponent, ToolCallMessagePartProps, FileMessagePartComponent, ReasoningMessagePartComponent, ReasoningGroupComponent } from "../../types/index.js";
3
+ export declare namespace MessagePrimitiveParts {
4
+ type DataConfig = {
5
+ /** Map data event names to specific components */
6
+ by_name?: Record<string, DataMessagePartComponent | undefined> | undefined;
7
+ /** Fallback component for unmatched data events */
8
+ Fallback?: DataMessagePartComponent | undefined;
9
+ };
10
+ type BaseComponents = {
11
+ /** Component for rendering empty messages */
12
+ Empty?: EmptyMessagePartComponent | undefined;
13
+ /** Component for rendering text content */
14
+ Text?: TextMessagePartComponent | undefined;
15
+ /** Component for rendering source content */
16
+ Source?: SourceMessagePartComponent | undefined;
17
+ /** Component for rendering image content */
18
+ Image?: ImageMessagePartComponent | undefined;
19
+ /** Component for rendering file content */
20
+ File?: FileMessagePartComponent | undefined;
21
+ /** Component for rendering audio content (experimental) */
22
+ Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;
23
+ /** Configuration for data part rendering */
24
+ data?: DataConfig | undefined;
25
+ };
26
+ type ToolsConfig = {
27
+ /** Map of tool names to their specific components */
28
+ by_name?: Record<string, ToolCallMessagePartComponent | undefined> | undefined;
29
+ /** Fallback component for unregistered tools */
30
+ Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;
31
+ } | {
32
+ /** Override component that handles all tool calls */
33
+ Override: ComponentType<ToolCallMessagePartProps>;
34
+ };
35
+ /**
36
+ * Standard component configuration for rendering reasoning and tool-call parts
37
+ * individually (with optional grouping).
38
+ *
39
+ * Cannot be combined with `ChainOfThought`.
40
+ */
41
+ type StandardComponents = BaseComponents & {
42
+ /** Component for rendering reasoning content (typically hidden) */
43
+ Reasoning?: ReasoningMessagePartComponent | undefined;
44
+ /** Configuration for tool call rendering */
45
+ tools?: ToolsConfig | undefined;
46
+ /**
47
+ * Component for rendering grouped consecutive tool calls.
48
+ *
49
+ * @param startIndex - Index of the first tool call in the group
50
+ * @param endIndex - Index of the last tool call in the group
51
+ * @param children - Rendered tool call components to display within the group
52
+ *
53
+ * @deprecated This feature is still experimental and subject to change.
54
+ */
55
+ ToolGroup?: ComponentType<PropsWithChildren<{
56
+ startIndex: number;
57
+ endIndex: number;
58
+ }>>;
59
+ /**
60
+ * Component for rendering grouped reasoning parts.
61
+ *
62
+ * @param startIndex - Index of the first reasoning part in the group
63
+ * @param endIndex - Index of the last reasoning part in the group
64
+ * @param children - Rendered reasoning part components
65
+ */
66
+ ReasoningGroup?: ReasoningGroupComponent;
67
+ ChainOfThought?: never;
68
+ };
69
+ /**
70
+ * Chain of thought component configuration.
71
+ *
72
+ * When `ChainOfThought` is set, it takes control of rendering ALL reasoning and
73
+ * tool-call parts in the message. The `Reasoning`, `tools`, `ReasoningGroup`, and
74
+ * `ToolGroup` components cannot be used alongside it.
75
+ */
76
+ type ChainOfThoughtComponents = BaseComponents & {
77
+ ChainOfThought: ComponentType;
78
+ Reasoning?: never;
79
+ tools?: never;
80
+ ToolGroup?: never;
81
+ ReasoningGroup?: never;
82
+ };
83
+ export type Props = {
84
+ /**
85
+ * Component configuration for rendering different types of message content.
86
+ *
87
+ * Use either `Reasoning`/`tools`/`ToolGroup`/`ReasoningGroup` for standard rendering,
88
+ * or `ChainOfThought` to group all reasoning and tool-call parts into a single
89
+ * collapsible component. These two modes are mutually exclusive.
90
+ */
91
+ components?: StandardComponents | ChainOfThoughtComponents | undefined;
92
+ /**
93
+ * When enabled, shows the Empty component if the last part in the message
94
+ * is anything other than Text or Reasoning.
95
+ *
96
+ * @experimental This API is experimental and may change in future versions.
97
+ * @default true
98
+ */
99
+ unstable_showEmptyOnNonTextEnd?: boolean | undefined;
100
+ };
101
+ export {};
102
+ }
103
+ /**
104
+ * Platform-agnostic no-op default components.
105
+ * Each platform (web, RN) wraps MessagePrimitiveParts with its own defaults.
106
+ */
107
+ export declare const defaultComponents: {
108
+ Text: () => null;
109
+ Reasoning: () => null;
110
+ Source: () => null;
111
+ Image: () => null;
112
+ File: () => null;
113
+ Unstable_Audio: () => null;
114
+ ToolGroup: ({ children }: PropsWithChildren) => import("react").ReactNode;
115
+ ReasoningGroup: ({ children }: PropsWithChildren) => import("react").ReactNode;
116
+ };
117
+ type MessagePartComponentProps = {
118
+ components: MessagePrimitiveParts.Props["components"];
119
+ };
120
+ export declare const MessagePartComponent: FC<MessagePartComponentProps>;
121
+ export declare namespace MessagePrimitivePartByIndex {
122
+ type Props = {
123
+ index: number;
124
+ components: MessagePrimitiveParts.Props["components"];
125
+ };
126
+ }
127
+ /**
128
+ * Renders a single message part at the specified index.
129
+ */
130
+ export declare const MessagePrimitivePartByIndex: FC<MessagePrimitivePartByIndex.Props>;
131
+ /**
132
+ * Renders the parts of a message with support for multiple content types.
133
+ *
134
+ * This is the platform-agnostic base. Each platform wraps this with its own
135
+ * default components (web uses `<p>`, `<span>`; RN would use `<Text>`, etc.).
136
+ */
137
+ export declare const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props>;
138
+ export {};
139
+ //# sourceMappingURL=MessageParts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageParts.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/message/MessageParts.tsx"],"names":[],"mappings":"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"}