@assistant-ui/react 0.10.23 → 0.10.25

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 (443) hide show
  1. package/dist/api/{ContentPartRuntime.d.ts → MessagePartRuntime.d.ts} +14 -14
  2. package/dist/api/{ContentPartRuntime.d.ts.map → MessagePartRuntime.d.ts.map} +1 -1
  3. package/dist/api/{ContentPartRuntime.js → MessagePartRuntime.js} +6 -6
  4. package/dist/api/{ContentPartRuntime.js.map → MessagePartRuntime.js.map} +1 -1
  5. package/dist/api/MessageRuntime.d.ts +8 -8
  6. package/dist/api/MessageRuntime.js +17 -17
  7. package/dist/api/MessageRuntime.js.map +1 -1
  8. package/dist/api/RuntimePathTypes.d.ts +2 -2
  9. package/dist/api/ThreadListRuntime.d.ts +3 -0
  10. package/dist/api/ThreadListRuntime.d.ts.map +1 -1
  11. package/dist/api/ThreadListRuntime.js +5 -1
  12. package/dist/api/ThreadListRuntime.js.map +1 -1
  13. package/dist/api/ThreadRuntime.d.ts +5 -0
  14. package/dist/api/ThreadRuntime.d.ts.map +1 -1
  15. package/dist/api/ThreadRuntime.js +1 -0
  16. package/dist/api/ThreadRuntime.js.map +1 -1
  17. package/dist/api/index.d.ts +2 -1
  18. package/dist/api/index.d.ts.map +1 -1
  19. package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts +1 -1
  20. package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  21. package/dist/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  22. package/dist/cloud/auiV0.d.ts +3 -3
  23. package/dist/cloud/auiV0.d.ts.map +1 -1
  24. package/dist/cloud/auiV0.js +1 -1
  25. package/dist/cloud/auiV0.js.map +1 -1
  26. package/dist/cloud/index.d.ts +1 -1
  27. package/dist/cloud/index.d.ts.map +1 -1
  28. package/dist/cloud/index.js +1 -1
  29. package/dist/cloud/index.js.map +1 -1
  30. package/dist/cloud/useCloudThreadListRuntime.d.ts +1 -1
  31. package/dist/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  32. package/dist/cloud/useCloudThreadListRuntime.js.map +1 -1
  33. package/dist/context/providers/MessagePartRuntimeProvider.d.ts +9 -0
  34. package/dist/context/providers/{ContentPartRuntimeProvider.d.ts.map → MessagePartRuntimeProvider.d.ts.map} +1 -1
  35. package/dist/context/providers/{ContentPartRuntimeProvider.js → MessagePartRuntimeProvider.js} +9 -9
  36. package/dist/context/providers/MessagePartRuntimeProvider.js.map +1 -0
  37. package/dist/context/providers/{TextContentPartProvider.d.ts → TextMessagePartProvider.d.ts} +3 -3
  38. package/dist/context/providers/{TextContentPartProvider.d.ts.map → TextMessagePartProvider.d.ts.map} +1 -1
  39. package/dist/context/providers/{TextContentPartProvider.js → TextMessagePartProvider.js} +19 -19
  40. package/dist/context/providers/{TextContentPartProvider.js.map → TextMessagePartProvider.js.map} +1 -1
  41. package/dist/context/providers/index.d.ts +2 -1
  42. package/dist/context/providers/index.d.ts.map +1 -1
  43. package/dist/context/providers/index.js +4 -2
  44. package/dist/context/providers/index.js.map +1 -1
  45. package/dist/context/react/AssistantContext.d.ts +23 -0
  46. package/dist/context/react/AssistantContext.d.ts.map +1 -1
  47. package/dist/context/react/AssistantContext.js.map +1 -1
  48. package/dist/context/react/AttachmentContext.d.ts +72 -72
  49. package/dist/context/react/ComposerContext.d.ts +64 -0
  50. package/dist/context/react/ComposerContext.d.ts.map +1 -1
  51. package/dist/context/react/ComposerContext.js.map +1 -1
  52. package/dist/context/react/MessageContext.d.ts +56 -0
  53. package/dist/context/react/MessageContext.d.ts.map +1 -1
  54. package/dist/context/react/MessageContext.js.map +1 -1
  55. package/dist/context/react/MessagePartContext.d.ts +41 -0
  56. package/dist/context/react/{ContentPartContext.d.ts.map → MessagePartContext.d.ts.map} +1 -1
  57. package/dist/context/react/MessagePartContext.js +25 -0
  58. package/dist/context/react/MessagePartContext.js.map +1 -0
  59. package/dist/context/react/ThreadContext.d.ts +42 -0
  60. package/dist/context/react/ThreadContext.d.ts.map +1 -1
  61. package/dist/context/react/ThreadContext.js.map +1 -1
  62. package/dist/context/react/index.d.ts +1 -1
  63. package/dist/context/react/index.js +3 -3
  64. package/dist/context/react/index.js.map +1 -1
  65. package/dist/context/stores/AssistantToolUIs.d.ts +3 -3
  66. package/dist/context/stores/AssistantToolUIs.js.map +1 -1
  67. package/dist/model-context/useAssistantTool.d.ts +2 -2
  68. package/dist/model-context/useAssistantTool.js.map +1 -1
  69. package/dist/model-context/useAssistantToolUI.d.ts +2 -2
  70. package/dist/model-context/useAssistantToolUI.js.map +1 -1
  71. package/dist/model-context/useInlineRender.d.ts +2 -2
  72. package/dist/model-context/useInlineRender.js.map +1 -1
  73. package/dist/primitives/actionBar/ActionBarCopy.d.ts +42 -0
  74. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  75. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  76. package/dist/primitives/actionBar/ActionBarEdit.d.ts +38 -0
  77. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
  78. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  79. package/dist/primitives/actionBar/ActionBarReload.d.ts +39 -0
  80. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
  81. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  82. package/dist/primitives/actionBar/ActionBarRoot.d.ts +56 -0
  83. package/dist/primitives/actionBar/ActionBarRoot.d.ts.map +1 -1
  84. package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -1
  85. package/dist/primitives/assistantModal/AssistantModalContent.d.ts +2 -0
  86. package/dist/primitives/assistantModal/AssistantModalContent.d.ts.map +1 -1
  87. package/dist/primitives/assistantModal/AssistantModalContent.js +2 -1
  88. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  89. package/dist/primitives/attachment/AttachmentRoot.d.ts +18 -0
  90. package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -1
  91. package/dist/primitives/attachment/AttachmentRoot.js.map +1 -1
  92. package/dist/primitives/branchPicker/BranchPickerCount.d.ts +17 -0
  93. package/dist/primitives/branchPicker/BranchPickerCount.d.ts.map +1 -1
  94. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
  95. package/dist/primitives/branchPicker/BranchPickerNext.d.ts +17 -0
  96. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
  97. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  98. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +38 -0
  99. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
  100. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  101. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts +27 -0
  102. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -1
  103. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  104. package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  105. package/dist/primitives/composer/ComposerAttachments.js +11 -8
  106. package/dist/primitives/composer/ComposerAttachments.js.map +1 -1
  107. package/dist/primitives/composer/ComposerCancel.d.ts +17 -0
  108. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
  109. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  110. package/dist/primitives/composer/ComposerInput.d.ts +72 -0
  111. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
  112. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  113. package/dist/primitives/composer/ComposerRoot.d.ts +19 -0
  114. package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -1
  115. package/dist/primitives/composer/ComposerRoot.js.map +1 -1
  116. package/dist/primitives/composer/ComposerSend.d.ts +18 -0
  117. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
  118. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  119. package/dist/primitives/index.d.ts +12 -6
  120. package/dist/primitives/index.d.ts.map +1 -1
  121. package/dist/primitives/index.js +23 -11
  122. package/dist/primitives/index.js.map +1 -1
  123. package/dist/primitives/message/MessageAttachments.d.ts.map +1 -1
  124. package/dist/primitives/message/MessageAttachments.js +11 -8
  125. package/dist/primitives/message/MessageAttachments.js.map +1 -1
  126. package/dist/primitives/message/MessageParts.d.ts +116 -0
  127. package/dist/primitives/message/MessageParts.d.ts.map +1 -0
  128. package/dist/primitives/message/MessageParts.js +208 -0
  129. package/dist/primitives/message/MessageParts.js.map +1 -0
  130. package/dist/primitives/message/MessageRoot.d.ts +22 -0
  131. package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
  132. package/dist/primitives/message/MessageRoot.js.map +1 -1
  133. package/dist/primitives/message/index.d.ts +2 -1
  134. package/dist/primitives/message/index.d.ts.map +1 -1
  135. package/dist/primitives/message/index.js +4 -2
  136. package/dist/primitives/message/index.js.map +1 -1
  137. package/dist/primitives/messagePart/MessagePartImage.d.ts +29 -0
  138. package/dist/primitives/messagePart/MessagePartImage.d.ts.map +1 -0
  139. package/dist/primitives/messagePart/MessagePartImage.js +16 -0
  140. package/dist/primitives/messagePart/MessagePartImage.js.map +1 -0
  141. package/dist/primitives/messagePart/MessagePartInProgress.d.ts +6 -0
  142. package/dist/primitives/{contentPart/ContentPartInProgress.d.ts.map → messagePart/MessagePartInProgress.d.ts.map} +1 -1
  143. package/dist/primitives/messagePart/MessagePartInProgress.js +13 -0
  144. package/dist/primitives/messagePart/MessagePartInProgress.js.map +1 -0
  145. package/dist/primitives/messagePart/MessagePartText.d.ts +50 -0
  146. package/dist/primitives/messagePart/MessagePartText.d.ts.map +1 -0
  147. package/dist/primitives/messagePart/MessagePartText.js +18 -0
  148. package/dist/primitives/messagePart/MessagePartText.js.map +1 -0
  149. package/dist/primitives/messagePart/index.d.ts +4 -0
  150. package/dist/primitives/{contentPart → messagePart}/index.d.ts.map +1 -1
  151. package/dist/primitives/messagePart/index.js +10 -0
  152. package/dist/primitives/messagePart/index.js.map +1 -0
  153. package/dist/primitives/messagePart/useMessagePartFile.d.ts +5 -0
  154. package/dist/primitives/messagePart/useMessagePartFile.d.ts.map +1 -0
  155. package/dist/primitives/messagePart/useMessagePartFile.js +18 -0
  156. package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -0
  157. package/dist/primitives/messagePart/useMessagePartImage.d.ts +5 -0
  158. package/dist/primitives/messagePart/useMessagePartImage.d.ts.map +1 -0
  159. package/dist/primitives/messagePart/useMessagePartImage.js +18 -0
  160. package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -0
  161. package/dist/primitives/messagePart/useMessagePartReasoning.d.ts +5 -0
  162. package/dist/primitives/messagePart/useMessagePartReasoning.d.ts.map +1 -0
  163. package/dist/primitives/messagePart/useMessagePartReasoning.js +18 -0
  164. package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -0
  165. package/dist/primitives/messagePart/useMessagePartSource.d.ts +5 -0
  166. package/dist/primitives/messagePart/useMessagePartSource.d.ts.map +1 -0
  167. package/dist/primitives/messagePart/useMessagePartSource.js +18 -0
  168. package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -0
  169. package/dist/primitives/messagePart/useMessagePartText.d.ts +7 -0
  170. package/dist/primitives/messagePart/useMessagePartText.d.ts.map +1 -0
  171. package/dist/primitives/messagePart/useMessagePartText.js +18 -0
  172. package/dist/primitives/messagePart/useMessagePartText.js.map +1 -0
  173. package/dist/primitives/thread/ThreadMessages.d.ts +44 -0
  174. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
  175. package/dist/primitives/thread/ThreadMessages.js +5 -2
  176. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  177. package/dist/primitives/thread/ThreadRoot.d.ts +19 -0
  178. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
  179. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  180. package/dist/primitives/thread/ThreadViewport.d.ts +24 -0
  181. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -1
  182. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  183. package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  184. package/dist/primitives/threadList/ThreadListItems.js +12 -9
  185. package/dist/primitives/threadList/ThreadListItems.js.map +1 -1
  186. package/dist/runtimes/adapters/attachment/AttachmentAdapter.d.ts +54 -0
  187. package/dist/runtimes/adapters/attachment/AttachmentAdapter.d.ts.map +1 -1
  188. package/dist/runtimes/adapters/feedback/FeedbackAdapter.d.ts +33 -0
  189. package/dist/runtimes/adapters/feedback/FeedbackAdapter.d.ts.map +1 -1
  190. package/dist/runtimes/adapters/speech/SpeechAdapterTypes.d.ts +47 -0
  191. package/dist/runtimes/adapters/speech/SpeechAdapterTypes.d.ts.map +1 -1
  192. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts +1 -0
  193. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts.map +1 -1
  194. package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +1 -1
  195. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts +1 -0
  196. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts.map +1 -1
  197. package/dist/runtimes/core/ThreadRuntimeCore.d.ts +1 -0
  198. package/dist/runtimes/core/ThreadRuntimeCore.d.ts.map +1 -1
  199. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts +2 -0
  200. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts.map +1 -1
  201. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts +1 -0
  202. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -1
  203. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js +3 -0
  204. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -1
  205. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts +1 -0
  206. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
  207. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +3 -0
  208. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  209. package/dist/runtimes/external-store/ThreadMessageLike.d.ts +3 -3
  210. package/dist/runtimes/external-store/ThreadMessageLike.js +3 -3
  211. package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
  212. package/dist/runtimes/external-store/createMessageConverter.js +3 -3
  213. package/dist/runtimes/external-store/createMessageConverter.js.map +1 -1
  214. package/dist/runtimes/external-store/external-message-converter.js.map +1 -1
  215. package/dist/runtimes/local/ChatModelAdapter.d.ts +4 -4
  216. package/dist/runtimes/local/LocalRuntimeOptions.d.ts +2 -2
  217. package/dist/runtimes/local/LocalRuntimeOptions.d.ts.map +1 -1
  218. package/dist/runtimes/local/LocalRuntimeOptions.js.map +1 -1
  219. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts +1 -0
  220. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts.map +1 -1
  221. package/dist/runtimes/local/LocalThreadListRuntimeCore.js +3 -0
  222. package/dist/runtimes/local/LocalThreadListRuntimeCore.js.map +1 -1
  223. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +2 -0
  224. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
  225. package/dist/runtimes/local/LocalThreadRuntimeCore.js +12 -1
  226. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
  227. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +1 -1
  228. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js +1 -0
  229. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js.map +1 -1
  230. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts +2 -0
  231. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  232. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +3 -0
  233. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  234. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +3 -0
  235. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  236. package/dist/runtimes/remote-thread-list/adapter/cloud.d.ts +1 -1
  237. package/dist/runtimes/remote-thread-list/adapter/cloud.d.ts.map +1 -1
  238. package/dist/runtimes/remote-thread-list/adapter/cloud.js +1 -1
  239. package/dist/runtimes/remote-thread-list/adapter/cloud.js.map +1 -1
  240. package/dist/runtimes/utils/MessageRepository.js +1 -1
  241. package/dist/runtimes/utils/MessageRepository.js.map +1 -1
  242. package/dist/tests/setup.js +8 -8
  243. package/dist/tests/setup.js.map +1 -1
  244. package/dist/types/AssistantTypes.d.ts +15 -15
  245. package/dist/types/AttachmentTypes.d.ts +3 -3
  246. package/dist/types/MessagePartComponentTypes.d.ts +25 -0
  247. package/dist/types/{ContentPartComponentTypes.d.ts.map → MessagePartComponentTypes.d.ts.map} +1 -1
  248. package/dist/types/MessagePartComponentTypes.js +1 -0
  249. package/dist/types/index.d.ts +4 -2
  250. package/dist/types/index.d.ts.map +1 -1
  251. package/dist/utils/getThreadMessageText.js.map +1 -1
  252. package/dist/utils/smooth/SmoothContext.js +3 -3
  253. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  254. package/dist/utils/smooth/useSmooth.d.ts +3 -3
  255. package/dist/utils/smooth/useSmooth.js.map +1 -1
  256. package/dist/utils/useToolArgsFieldStatus.js +3 -3
  257. package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
  258. package/package.json +9 -8
  259. package/src/api/{ContentPartRuntime.ts → MessagePartRuntime.ts} +20 -20
  260. package/src/api/MessageRuntime.ts +32 -32
  261. package/src/api/RuntimePathTypes.ts +2 -2
  262. package/src/api/ThreadListRuntime.ts +8 -0
  263. package/src/api/ThreadRuntime.ts +6 -0
  264. package/src/api/index.ts +11 -3
  265. package/src/cloud/AssistantCloudThreadHistoryAdapter.tsx +1 -1
  266. package/src/cloud/auiV0.ts +4 -4
  267. package/src/cloud/index.ts +1 -1
  268. package/src/cloud/useCloudThreadListRuntime.tsx +1 -1
  269. package/src/context/providers/MessagePartRuntimeProvider.tsx +42 -0
  270. package/src/context/providers/{TextContentPartProvider.tsx → TextMessagePartProvider.tsx} +27 -27
  271. package/src/context/providers/index.ts +4 -1
  272. package/src/context/react/AssistantContext.ts +23 -0
  273. package/src/context/react/ComposerContext.ts +64 -0
  274. package/src/context/react/MessageContext.ts +56 -0
  275. package/src/context/react/MessagePartContext.ts +37 -0
  276. package/src/context/react/ThreadContext.ts +42 -0
  277. package/src/context/react/index.ts +1 -1
  278. package/src/context/stores/AssistantToolUIs.ts +4 -4
  279. package/src/model-context/useAssistantTool.tsx +2 -2
  280. package/src/model-context/useAssistantToolUI.tsx +2 -2
  281. package/src/model-context/useInlineRender.tsx +3 -3
  282. package/src/primitives/actionBar/ActionBarCopy.tsx +42 -0
  283. package/src/primitives/actionBar/ActionBarEdit.tsx +38 -0
  284. package/src/primitives/actionBar/ActionBarReload.tsx +39 -0
  285. package/src/primitives/actionBar/ActionBarRoot.tsx +38 -0
  286. package/src/primitives/assistantModal/AssistantModalContent.tsx +5 -1
  287. package/src/primitives/attachment/AttachmentRoot.tsx +18 -0
  288. package/src/primitives/branchPicker/BranchPickerCount.tsx +17 -0
  289. package/src/primitives/branchPicker/BranchPickerNext.tsx +17 -0
  290. package/src/primitives/branchPicker/BranchPickerPrevious.tsx +38 -0
  291. package/src/primitives/branchPicker/BranchPickerRoot.tsx +22 -0
  292. package/src/primitives/composer/ComposerAttachments.tsx +11 -7
  293. package/src/primitives/composer/ComposerCancel.tsx +17 -0
  294. package/src/primitives/composer/ComposerInput.tsx +44 -0
  295. package/src/primitives/composer/ComposerRoot.tsx +19 -0
  296. package/src/primitives/composer/ComposerSend.tsx +18 -0
  297. package/src/primitives/index.ts +14 -6
  298. package/src/primitives/message/MessageAttachments.tsx +11 -7
  299. package/src/primitives/message/MessageParts.tsx +423 -0
  300. package/src/primitives/message/MessageRoot.tsx +22 -0
  301. package/src/primitives/message/index.ts +2 -1
  302. package/src/primitives/messagePart/MessagePartImage.tsx +39 -0
  303. package/src/primitives/messagePart/MessagePartInProgress.tsx +19 -0
  304. package/src/primitives/messagePart/MessagePartText.tsx +62 -0
  305. package/src/primitives/messagePart/index.ts +3 -0
  306. package/src/primitives/messagePart/useMessagePartFile.tsx +18 -0
  307. package/src/primitives/messagePart/useMessagePartImage.tsx +18 -0
  308. package/src/primitives/messagePart/useMessagePartReasoning.tsx +18 -0
  309. package/src/primitives/messagePart/useMessagePartSource.tsx +18 -0
  310. package/src/primitives/messagePart/useMessagePartText.tsx +18 -0
  311. package/src/primitives/thread/ThreadMessages.tsx +52 -4
  312. package/src/primitives/thread/ThreadRoot.tsx +19 -0
  313. package/src/primitives/thread/ThreadViewport.tsx +19 -0
  314. package/src/primitives/threadList/ThreadListItems.tsx +12 -8
  315. package/src/runtimes/adapters/attachment/AttachmentAdapter.ts +56 -0
  316. package/src/runtimes/adapters/feedback/FeedbackAdapter.ts +33 -0
  317. package/src/runtimes/adapters/speech/SpeechAdapterTypes.ts +47 -0
  318. package/src/runtimes/core/BaseThreadRuntimeCore.tsx +1 -0
  319. package/src/runtimes/core/ThreadListRuntimeCore.tsx +1 -0
  320. package/src/runtimes/core/ThreadRuntimeCore.tsx +1 -0
  321. package/src/runtimes/external-store/ExternalStoreAdapter.tsx +2 -0
  322. package/src/runtimes/external-store/ExternalStoreThreadListRuntimeCore.tsx +4 -0
  323. package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +3 -0
  324. package/src/runtimes/external-store/ThreadMessageLike.tsx +20 -20
  325. package/src/runtimes/external-store/createMessageConverter.tsx +3 -3
  326. package/src/runtimes/external-store/external-message-converter.tsx +2 -2
  327. package/src/runtimes/local/ChatModelAdapter.tsx +13 -13
  328. package/src/runtimes/local/LocalRuntimeOptions.tsx +1 -1
  329. package/src/runtimes/local/LocalThreadListRuntimeCore.tsx +4 -0
  330. package/src/runtimes/local/LocalThreadRuntimeCore.tsx +30 -15
  331. package/src/runtimes/remote-thread-list/EMPTY_THREAD_CORE.tsx +1 -0
  332. package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +4 -0
  333. package/src/runtimes/remote-thread-list/adapter/cloud.tsx +1 -1
  334. package/src/runtimes/utils/MessageRepository.tsx +1 -1
  335. package/src/tests/MessageRepository.test.ts +6 -6
  336. package/src/types/AssistantTypes.ts +24 -24
  337. package/src/types/AttachmentTypes.ts +3 -3
  338. package/src/types/MessagePartComponentTypes.tsx +52 -0
  339. package/src/types/index.ts +69 -28
  340. package/src/utils/getThreadMessageText.tsx +2 -2
  341. package/src/utils/smooth/SmoothContext.tsx +7 -7
  342. package/src/utils/smooth/useSmooth.tsx +7 -7
  343. package/src/utils/useToolArgsFieldStatus.tsx +3 -3
  344. package/dist/cloud/AssistantCloud.d.ts +0 -15
  345. package/dist/cloud/AssistantCloud.d.ts.map +0 -1
  346. package/dist/cloud/AssistantCloud.js +0 -25
  347. package/dist/cloud/AssistantCloud.js.map +0 -1
  348. package/dist/cloud/AssistantCloudAPI.d.ts +0 -28
  349. package/dist/cloud/AssistantCloudAPI.d.ts.map +0 -1
  350. package/dist/cloud/AssistantCloudAPI.js +0 -87
  351. package/dist/cloud/AssistantCloudAPI.js.map +0 -1
  352. package/dist/cloud/AssistantCloudAuthStrategy.d.ts +0 -30
  353. package/dist/cloud/AssistantCloudAuthStrategy.d.ts.map +0 -1
  354. package/dist/cloud/AssistantCloudAuthStrategy.js +0 -139
  355. package/dist/cloud/AssistantCloudAuthStrategy.js.map +0 -1
  356. package/dist/cloud/AssistantCloudAuthTokens.d.ts +0 -11
  357. package/dist/cloud/AssistantCloudAuthTokens.d.ts.map +0 -1
  358. package/dist/cloud/AssistantCloudAuthTokens.js +0 -13
  359. package/dist/cloud/AssistantCloudAuthTokens.js.map +0 -1
  360. package/dist/cloud/AssistantCloudFiles.d.ts +0 -27
  361. package/dist/cloud/AssistantCloudFiles.d.ts.map +0 -1
  362. package/dist/cloud/AssistantCloudFiles.js +0 -25
  363. package/dist/cloud/AssistantCloudFiles.js.map +0 -1
  364. package/dist/cloud/AssistantCloudRuns.d.ts +0 -26
  365. package/dist/cloud/AssistantCloudRuns.d.ts.map +0 -1
  366. package/dist/cloud/AssistantCloudRuns.js +0 -39
  367. package/dist/cloud/AssistantCloudRuns.js.map +0 -1
  368. package/dist/cloud/AssistantCloudThreadMessages.d.ts +0 -30
  369. package/dist/cloud/AssistantCloudThreadMessages.d.ts.map +0 -1
  370. package/dist/cloud/AssistantCloudThreadMessages.js +0 -21
  371. package/dist/cloud/AssistantCloudThreadMessages.js.map +0 -1
  372. package/dist/cloud/AssistantCloudThreads.d.ts +0 -48
  373. package/dist/cloud/AssistantCloudThreads.d.ts.map +0 -1
  374. package/dist/cloud/AssistantCloudThreads.js +0 -30
  375. package/dist/cloud/AssistantCloudThreads.js.map +0 -1
  376. package/dist/context/providers/ContentPartRuntimeProvider.d.ts +0 -9
  377. package/dist/context/providers/ContentPartRuntimeProvider.js.map +0 -1
  378. package/dist/context/react/ContentPartContext.d.ts +0 -41
  379. package/dist/context/react/ContentPartContext.js +0 -25
  380. package/dist/context/react/ContentPartContext.js.map +0 -1
  381. package/dist/primitives/contentPart/ContentPartImage.d.ts +0 -10
  382. package/dist/primitives/contentPart/ContentPartImage.d.ts.map +0 -1
  383. package/dist/primitives/contentPart/ContentPartImage.js +0 -16
  384. package/dist/primitives/contentPart/ContentPartImage.js.map +0 -1
  385. package/dist/primitives/contentPart/ContentPartInProgress.d.ts +0 -6
  386. package/dist/primitives/contentPart/ContentPartInProgress.js +0 -13
  387. package/dist/primitives/contentPart/ContentPartInProgress.js.map +0 -1
  388. package/dist/primitives/contentPart/ContentPartText.d.ts +0 -16
  389. package/dist/primitives/contentPart/ContentPartText.d.ts.map +0 -1
  390. package/dist/primitives/contentPart/ContentPartText.js +0 -18
  391. package/dist/primitives/contentPart/ContentPartText.js.map +0 -1
  392. package/dist/primitives/contentPart/index.d.ts +0 -4
  393. package/dist/primitives/contentPart/index.js +0 -10
  394. package/dist/primitives/contentPart/index.js.map +0 -1
  395. package/dist/primitives/contentPart/useContentPartFile.d.ts +0 -5
  396. package/dist/primitives/contentPart/useContentPartFile.d.ts.map +0 -1
  397. package/dist/primitives/contentPart/useContentPartFile.js +0 -18
  398. package/dist/primitives/contentPart/useContentPartFile.js.map +0 -1
  399. package/dist/primitives/contentPart/useContentPartImage.d.ts +0 -5
  400. package/dist/primitives/contentPart/useContentPartImage.d.ts.map +0 -1
  401. package/dist/primitives/contentPart/useContentPartImage.js +0 -18
  402. package/dist/primitives/contentPart/useContentPartImage.js.map +0 -1
  403. package/dist/primitives/contentPart/useContentPartReasoning.d.ts +0 -5
  404. package/dist/primitives/contentPart/useContentPartReasoning.d.ts.map +0 -1
  405. package/dist/primitives/contentPart/useContentPartReasoning.js +0 -18
  406. package/dist/primitives/contentPart/useContentPartReasoning.js.map +0 -1
  407. package/dist/primitives/contentPart/useContentPartSource.d.ts +0 -5
  408. package/dist/primitives/contentPart/useContentPartSource.d.ts.map +0 -1
  409. package/dist/primitives/contentPart/useContentPartSource.js +0 -18
  410. package/dist/primitives/contentPart/useContentPartSource.js.map +0 -1
  411. package/dist/primitives/contentPart/useContentPartText.d.ts +0 -7
  412. package/dist/primitives/contentPart/useContentPartText.d.ts.map +0 -1
  413. package/dist/primitives/contentPart/useContentPartText.js +0 -18
  414. package/dist/primitives/contentPart/useContentPartText.js.map +0 -1
  415. package/dist/primitives/message/MessageContent.d.ts +0 -23
  416. package/dist/primitives/message/MessageContent.d.ts.map +0 -1
  417. package/dist/primitives/message/MessageContent.js +0 -138
  418. package/dist/primitives/message/MessageContent.js.map +0 -1
  419. package/dist/types/ContentPartComponentTypes.d.ts +0 -25
  420. package/dist/types/ContentPartComponentTypes.js +0 -1
  421. package/src/cloud/AssistantCloud.tsx +0 -22
  422. package/src/cloud/AssistantCloudAPI.tsx +0 -121
  423. package/src/cloud/AssistantCloudAuthStrategy.tsx +0 -193
  424. package/src/cloud/AssistantCloudAuthTokens.tsx +0 -13
  425. package/src/cloud/AssistantCloudFiles.tsx +0 -48
  426. package/src/cloud/AssistantCloudRuns.tsx +0 -45
  427. package/src/cloud/AssistantCloudThreadMessages.tsx +0 -48
  428. package/src/cloud/AssistantCloudThreads.tsx +0 -79
  429. package/src/context/providers/ContentPartRuntimeProvider.tsx +0 -42
  430. package/src/context/react/ContentPartContext.ts +0 -37
  431. package/src/primitives/contentPart/ContentPartImage.tsx +0 -20
  432. package/src/primitives/contentPart/ContentPartInProgress.tsx +0 -19
  433. package/src/primitives/contentPart/ContentPartText.tsx +0 -37
  434. package/src/primitives/contentPart/index.ts +0 -3
  435. package/src/primitives/contentPart/useContentPartFile.tsx +0 -18
  436. package/src/primitives/contentPart/useContentPartImage.tsx +0 -18
  437. package/src/primitives/contentPart/useContentPartReasoning.tsx +0 -18
  438. package/src/primitives/contentPart/useContentPartSource.tsx +0 -18
  439. package/src/primitives/contentPart/useContentPartText.tsx +0 -18
  440. package/src/primitives/message/MessageContent.tsx +0 -241
  441. package/src/tests/AssistantCloudFiles.test.ts +0 -564
  442. package/src/types/ContentPartComponentTypes.tsx +0 -52
  443. /package/dist/types/{ContentPartComponentTypes.js.map → MessagePartComponentTypes.js.map} +0 -0
@@ -33,6 +33,11 @@ export class LocalThreadRuntimeCore
33
33
 
34
34
  public readonly isDisabled = false;
35
35
 
36
+ private _isLoading = false;
37
+ public get isLoading() {
38
+ return this._isLoading;
39
+ }
40
+
36
41
  private _suggestions: readonly ThreadSuggestion[] = [];
37
42
  private _suggestionsController: AbortController | null = null;
38
43
  public get suggestions(): readonly ThreadSuggestion[] {
@@ -93,23 +98,33 @@ export class LocalThreadRuntimeCore
93
98
 
94
99
  const promise = this.adapters.history?.load() ?? Promise.resolve(null);
95
100
 
96
- this._loadPromise = promise.then((repo) => {
97
- if (!repo) return;
98
- this.repository.import(repo);
99
- this._notifySubscribers();
101
+ this._isLoading = true;
102
+ this._notifySubscribers();
100
103
 
101
- const resume = this.adapters.history?.resume?.bind(this.adapters.history);
102
- if (repo.unstable_resume && resume) {
103
- this.startRun(
104
- {
105
- parentId: this.repository.headId,
106
- sourceId: this.repository.headId,
107
- runConfig: this._lastRunConfig,
108
- },
109
- resume,
104
+ this._loadPromise = promise
105
+ .then((repo) => {
106
+ if (!repo) return;
107
+ this.repository.import(repo);
108
+ this._notifySubscribers();
109
+
110
+ const resume = this.adapters.history?.resume?.bind(
111
+ this.adapters.history,
110
112
  );
111
- }
112
- });
113
+ if (repo.unstable_resume && resume) {
114
+ this.startRun(
115
+ {
116
+ parentId: this.repository.headId,
117
+ sourceId: this.repository.headId,
118
+ runConfig: this._lastRunConfig,
119
+ },
120
+ resume,
121
+ );
122
+ }
123
+ })
124
+ .finally(() => {
125
+ this._isLoading = false;
126
+ this._notifySubscribers();
127
+ });
113
128
 
114
129
  return this._loadPromise;
115
130
  }
@@ -141,6 +141,7 @@ export const EMPTY_THREAD_CORE: ThreadRuntimeCore = {
141
141
  },
142
142
 
143
143
  isDisabled: true,
144
+ isLoading: false,
144
145
 
145
146
  messages: [],
146
147
 
@@ -264,6 +264,10 @@ export class RemoteThreadListThreadListRuntimeCore
264
264
  this.getLoadThreadsPromise(); // begin loading on initial bind
265
265
  }
266
266
 
267
+ public get isLoading() {
268
+ return this._state.value.isLoading;
269
+ }
270
+
267
271
  public get threadIds() {
268
272
  return this._state.value.threadIds;
269
273
  }
@@ -6,7 +6,7 @@ import {
6
6
  useMemo,
7
7
  useRef,
8
8
  } from "react";
9
- import { AssistantCloud } from "../../../cloud";
9
+ import { AssistantCloud } from "assistant-cloud";
10
10
  import { RemoteThreadListAdapter } from "../types";
11
11
  import { useAssistantCloudThreadHistoryAdapter } from "../../../cloud/AssistantCloudThreadHistoryAdapter";
12
12
  import { RuntimeAdapterProvider } from "../../adapters/RuntimeAdapterProvider";
@@ -330,7 +330,7 @@ export class MessageRepository {
330
330
 
331
331
  if (!message)
332
332
  throw new Error(
333
- "MessageRepository(deleteMessage): Optimistic message not found. This is likely an internal bug in assistant-ui.",
333
+ "MessageRepository(deleteMessage): Message not found. This is likely an internal bug in assistant-ui.",
334
334
  );
335
335
 
336
336
  const replacement =
@@ -3,7 +3,7 @@ import {
3
3
  MessageRepository,
4
4
  ExportedMessageRepository,
5
5
  } from "../runtimes/utils/MessageRepository";
6
- import type { ThreadMessage, TextContentPart } from "../types/AssistantTypes";
6
+ import type { ThreadMessage, TextMessagePart } from "../types/AssistantTypes";
7
7
  import { ThreadMessageLike } from "../runtimes";
8
8
 
9
9
  // Mock generateId and generateOptimisticId to make tests deterministic
@@ -501,13 +501,13 @@ describe("MessageRepository", () => {
501
501
  role: "user" as const,
502
502
  content: [
503
503
  { type: "text" as const, text: "Hello" },
504
- ] as TextContentPart[],
504
+ ] as TextMessagePart[],
505
505
  },
506
506
  {
507
507
  role: "assistant" as const,
508
508
  content: [
509
509
  { type: "text" as const, text: "Hi there" },
510
- ] as TextContentPart[],
510
+ ] as TextMessagePart[],
511
511
  },
512
512
  ];
513
513
 
@@ -680,9 +680,9 @@ describe("MessageRepository", () => {
680
680
  ]);
681
681
 
682
682
  // Verify content was updated
683
- const contentPart = messages[1]!.content[0];
684
- expect(contentPart.type).toBe("text");
685
- expect((contentPart as TextContentPart).text).toBe("Updated content");
683
+ const MessagePart = messages[1]!.content[0];
684
+ expect(MessagePart.type).toBe("text");
685
+ expect((MessagePart as TextMessagePart).text).toBe("Updated content");
686
686
  });
687
687
  });
688
688
  });
@@ -3,17 +3,17 @@ import { ReadonlyJSONObject, ReadonlyJSONValue } from "assistant-stream/utils";
3
3
 
4
4
  export type MessageRole = ThreadMessage["role"];
5
5
 
6
- export type TextContentPart = {
6
+ export type TextMessagePart = {
7
7
  readonly type: "text";
8
8
  readonly text: string;
9
9
  };
10
10
 
11
- export type ReasoningContentPart = {
11
+ export type ReasoningMessagePart = {
12
12
  readonly type: "reasoning";
13
13
  readonly text: string;
14
14
  };
15
15
 
16
- export type SourceContentPart = {
16
+ export type SourceMessagePart = {
17
17
  readonly type: "source";
18
18
  readonly sourceType: "url";
19
19
  readonly id: string;
@@ -21,18 +21,18 @@ export type SourceContentPart = {
21
21
  readonly title?: string;
22
22
  };
23
23
 
24
- export type ImageContentPart = {
24
+ export type ImageMessagePart = {
25
25
  readonly type: "image";
26
26
  readonly image: string;
27
27
  };
28
28
 
29
- export type FileContentPart = {
29
+ export type FileMessagePart = {
30
30
  readonly type: "file";
31
31
  readonly data: string;
32
32
  readonly mimeType: string;
33
33
  };
34
34
 
35
- export type Unstable_AudioContentPart = {
35
+ export type Unstable_AudioMessagePart = {
36
36
  readonly type: "audio";
37
37
  readonly audio: {
38
38
  readonly data: string;
@@ -40,7 +40,7 @@ export type Unstable_AudioContentPart = {
40
40
  };
41
41
  };
42
42
 
43
- export type ToolCallContentPart<
43
+ export type ToolCallMessagePart<
44
44
  TArgs = ReadonlyJSONObject,
45
45
  TResult = unknown,
46
46
  > = {
@@ -54,18 +54,18 @@ export type ToolCallContentPart<
54
54
  readonly artifact?: unknown;
55
55
  };
56
56
 
57
- export type ThreadUserContentPart =
58
- | TextContentPart
59
- | ImageContentPart
60
- | FileContentPart
61
- | Unstable_AudioContentPart;
57
+ export type ThreadUserMessagePart =
58
+ | TextMessagePart
59
+ | ImageMessagePart
60
+ | FileMessagePart
61
+ | Unstable_AudioMessagePart;
62
62
 
63
- export type ThreadAssistantContentPart =
64
- | TextContentPart
65
- | ReasoningContentPart
66
- | ToolCallContentPart
67
- | SourceContentPart
68
- | FileContentPart;
63
+ export type ThreadAssistantMessagePart =
64
+ | TextMessagePart
65
+ | ReasoningMessagePart
66
+ | ToolCallMessagePart
67
+ | SourceMessagePart
68
+ | FileMessagePart;
69
69
 
70
70
  type MessageCommonProps = {
71
71
  readonly id: string;
@@ -82,7 +82,7 @@ export type ThreadStep = {
82
82
  | undefined;
83
83
  };
84
84
 
85
- export type ContentPartStatus =
85
+ export type MessagePartStatus =
86
86
  | {
87
87
  readonly type: "running";
88
88
  }
@@ -100,12 +100,12 @@ export type ContentPartStatus =
100
100
  readonly error?: unknown;
101
101
  };
102
102
 
103
- export type ToolCallContentPartStatus =
103
+ export type ToolCallMessagePartStatus =
104
104
  | {
105
105
  readonly type: "requires-action";
106
106
  readonly reason: "tool-calls";
107
107
  }
108
- | ContentPartStatus;
108
+ | MessagePartStatus;
109
109
 
110
110
  export type MessageStatus =
111
111
  | {
@@ -133,7 +133,7 @@ export type MessageStatus =
133
133
 
134
134
  export type ThreadSystemMessage = MessageCommonProps & {
135
135
  readonly role: "system";
136
- readonly content: readonly [TextContentPart];
136
+ readonly content: readonly [TextMessagePart];
137
137
  readonly metadata: {
138
138
  readonly custom: Record<string, unknown>;
139
139
  };
@@ -141,7 +141,7 @@ export type ThreadSystemMessage = MessageCommonProps & {
141
141
 
142
142
  export type ThreadUserMessage = MessageCommonProps & {
143
143
  readonly role: "user";
144
- readonly content: readonly ThreadUserContentPart[];
144
+ readonly content: readonly ThreadUserMessagePart[];
145
145
  readonly attachments: readonly CompleteAttachment[];
146
146
  readonly metadata: {
147
147
  readonly custom: Record<string, unknown>;
@@ -150,7 +150,7 @@ export type ThreadUserMessage = MessageCommonProps & {
150
150
 
151
151
  export type ThreadAssistantMessage = MessageCommonProps & {
152
152
  readonly role: "assistant";
153
- readonly content: readonly ThreadAssistantContentPart[];
153
+ readonly content: readonly ThreadAssistantMessagePart[];
154
154
  readonly status: MessageStatus;
155
155
  readonly metadata: {
156
156
  readonly unstable_state: ReadonlyJSONValue;
@@ -1,4 +1,4 @@
1
- import { ThreadUserContentPart } from "./AssistantTypes";
1
+ import { ThreadUserMessagePart } from "./AssistantTypes";
2
2
 
3
3
  export type PendingAttachmentStatus =
4
4
  | {
@@ -29,7 +29,7 @@ type BaseAttachment = {
29
29
  name: string;
30
30
  contentType: string;
31
31
  file?: File;
32
- content?: ThreadUserContentPart[];
32
+ content?: ThreadUserMessagePart[];
33
33
  };
34
34
 
35
35
  export type PendingAttachment = BaseAttachment & {
@@ -39,7 +39,7 @@ export type PendingAttachment = BaseAttachment & {
39
39
 
40
40
  export type CompleteAttachment = BaseAttachment & {
41
41
  status: CompleteAttachmentStatus;
42
- content: ThreadUserContentPart[];
42
+ content: ThreadUserMessagePart[];
43
43
  };
44
44
 
45
45
  export type Attachment = PendingAttachment | CompleteAttachment;
@@ -0,0 +1,52 @@
1
+ import type { ComponentType } from "react";
2
+ import type {
3
+ MessagePartStatus,
4
+ FileMessagePart,
5
+ ImageMessagePart,
6
+ ReasoningMessagePart,
7
+ SourceMessagePart,
8
+ TextMessagePart,
9
+ ToolCallMessagePart,
10
+ Unstable_AudioMessagePart,
11
+ } from "./AssistantTypes";
12
+ import { MessagePartState } from "../api/MessagePartRuntime";
13
+ import { ToolResponse } from "assistant-stream";
14
+
15
+ export type EmptyMessagePartProps = {
16
+ status: MessagePartStatus;
17
+ };
18
+ export type EmptyMessagePartComponent = ComponentType<EmptyMessagePartProps>;
19
+
20
+ export type TextMessagePartProps = MessagePartState & TextMessagePart;
21
+ export type TextMessagePartComponent = ComponentType<TextMessagePartProps>;
22
+
23
+ export type ReasoningMessagePartProps = MessagePartState & ReasoningMessagePart;
24
+ export type ReasoningMessagePartComponent =
25
+ ComponentType<ReasoningMessagePartProps>;
26
+
27
+ export type SourceMessagePartProps = MessagePartState & SourceMessagePart;
28
+ export type SourceMessagePartComponent = ComponentType<SourceMessagePartProps>;
29
+
30
+ export type ImageMessagePartProps = MessagePartState & ImageMessagePart;
31
+ export type ImageMessagePartComponent = ComponentType<ImageMessagePartProps>;
32
+
33
+ export type FileMessagePartProps = MessagePartState & FileMessagePart;
34
+ export type FileMessagePartComponent = ComponentType<FileMessagePartProps>;
35
+
36
+ export type Unstable_AudioMessagePartProps = MessagePartState &
37
+ Unstable_AudioMessagePart;
38
+ export type Unstable_AudioMessagePartComponent =
39
+ ComponentType<Unstable_AudioMessagePartProps>;
40
+
41
+ export type ToolCallMessagePartProps<
42
+ TArgs = any,
43
+ TResult = unknown,
44
+ > = MessagePartState &
45
+ ToolCallMessagePart<TArgs, TResult> & {
46
+ addResult: (result: TResult | ToolResponse<TResult>) => void;
47
+ };
48
+
49
+ export type ToolCallMessagePartComponent<
50
+ TArgs = any,
51
+ TResult = any,
52
+ > = ComponentType<ToolCallMessagePartProps<TArgs, TResult>>;
@@ -7,43 +7,84 @@ export type {
7
7
 
8
8
  export type {
9
9
  AppendMessage,
10
- TextContentPart,
11
- ReasoningContentPart,
12
- SourceContentPart,
13
- ImageContentPart,
14
- FileContentPart,
15
- Unstable_AudioContentPart,
16
- ToolCallContentPart,
10
+ TextMessagePart,
11
+ ReasoningMessagePart,
12
+ SourceMessagePart,
13
+ ImageMessagePart,
14
+ FileMessagePart,
15
+ Unstable_AudioMessagePart,
16
+ ToolCallMessagePart,
17
17
  MessageStatus,
18
- ContentPartStatus,
19
- ToolCallContentPartStatus,
18
+ MessagePartStatus,
19
+ ToolCallMessagePartStatus,
20
20
 
21
21
  // thread message types
22
- ThreadUserContentPart,
23
- ThreadAssistantContentPart,
22
+ ThreadUserMessagePart,
23
+ ThreadAssistantMessagePart,
24
24
  ThreadSystemMessage,
25
25
  ThreadAssistantMessage,
26
26
  ThreadUserMessage,
27
27
  ThreadMessage,
28
28
  } from "./AssistantTypes";
29
29
 
30
+ // TODO remove in v0.11
30
31
  export type {
31
- EmptyContentPartProps,
32
- EmptyContentPartComponent,
33
- TextContentPartProps,
34
- TextContentPartComponent,
35
- ReasoningContentPartProps,
36
- ReasoningContentPartComponent,
37
- SourceContentPartProps,
38
- SourceContentPartComponent,
39
- ImageContentPartProps,
40
- ImageContentPartComponent,
41
- FileContentPartProps,
42
- FileContentPartComponent,
43
- Unstable_AudioContentPartProps,
44
- Unstable_AudioContentPartComponent,
45
- ToolCallContentPartProps,
46
- ToolCallContentPartComponent,
47
- } from "./ContentPartComponentTypes";
32
+ TextMessagePart as TextContentPart,
33
+ ReasoningMessagePart as ReasoningContentPart,
34
+ SourceMessagePart as SourceContentPart,
35
+ ImageMessagePart as ImageContentPart,
36
+ FileMessagePart as FileContentPart,
37
+ Unstable_AudioMessagePart as AudioContentPart,
38
+ ToolCallMessagePart as ToolCallContentPart,
39
+ MessagePartStatus as ContentPartStatus,
40
+ ToolCallMessagePartStatus as ToolCallContentPartStatus,
41
+
42
+ // thread message types
43
+ ThreadUserMessagePart as ThreadUserContentPart,
44
+ ThreadAssistantMessagePart as ThreadAssistantContentPart,
45
+ ThreadSystemMessage as ThreadSystemContentPart,
46
+ ThreadAssistantMessage as ThreadAssistantContent,
47
+ ThreadUserMessage as ThreadUserContent,
48
+ ThreadMessage as ThreadContent,
49
+ } from "./AssistantTypes";
50
+
51
+ export type {
52
+ EmptyMessagePartComponent,
53
+ EmptyMessagePartProps,
54
+ TextMessagePartComponent,
55
+ TextMessagePartProps,
56
+ ReasoningMessagePartComponent,
57
+ ReasoningMessagePartProps,
58
+ SourceMessagePartComponent,
59
+ SourceMessagePartProps,
60
+ ImageMessagePartComponent,
61
+ ImageMessagePartProps,
62
+ FileMessagePartComponent,
63
+ FileMessagePartProps,
64
+ Unstable_AudioMessagePartComponent,
65
+ Unstable_AudioMessagePartProps,
66
+ ToolCallMessagePartComponent,
67
+ ToolCallMessagePartProps,
68
+ } from "./MessagePartComponentTypes";
69
+
70
+ // TODO remove in v0.11
71
+ export type {
72
+ EmptyMessagePartComponent as EmptyContentPartComponent,
73
+ EmptyMessagePartProps as EmptyContentPartProps,
74
+ TextMessagePartComponent as TextContentPartComponent,
75
+ TextMessagePartProps as TextContentPartProps,
76
+ ReasoningMessagePartComponent as ReasoningContentPartComponent,
77
+ ReasoningMessagePartProps as ReasoningContentPartProps,
78
+ SourceMessagePartComponent as SourceContentPartComponent,
79
+ SourceMessagePartProps as SourceContentPartProps,
80
+ ImageMessagePartComponent as ImageContentPartComponent,
81
+ ImageMessagePartProps as ImageContentPartProps,
82
+ FileMessagePartComponent as FileContentPartComponent,
83
+ FileMessagePartProps as FileContentPartProps,
84
+ Unstable_AudioMessagePartComponent as AudioContentPartComponent,
85
+ Unstable_AudioMessagePartProps as AudioContentPartProps,
86
+ ToolCallMessagePartComponent as ToolCallContentPartComponent,
87
+ ToolCallMessagePartProps as ToolCallContentPartProps,
88
+ } from "./MessagePartComponentTypes";
48
89
 
49
90
  export type { Unsubscribe } from "./Unsubscribe";
@@ -1,6 +1,6 @@
1
1
  import type {
2
2
  AppendMessage,
3
- TextContentPart,
3
+ TextMessagePart,
4
4
  ThreadMessage,
5
5
  } from "../types/AssistantTypes";
6
6
 
@@ -9,7 +9,7 @@ export const getThreadMessageText = (
9
9
  ) => {
10
10
  const textParts = message.content.filter(
11
11
  (part) => part.type === "text",
12
- ) as TextContentPart[];
12
+ ) as TextMessagePart[];
13
13
 
14
14
  return textParts.map((part) => part.text).join("\n\n");
15
15
  };
@@ -12,22 +12,22 @@ import {
12
12
  import { ReadonlyStore } from "../../context/ReadonlyStore";
13
13
  import { create, UseBoundStore } from "zustand";
14
14
  import {
15
- ContentPartStatus,
16
- ToolCallContentPartStatus,
15
+ MessagePartStatus,
16
+ ToolCallMessagePartStatus,
17
17
  } from "../../types/AssistantTypes";
18
- import { useContentPartRuntime } from "../../context/react/ContentPartContext";
18
+ import { useMessagePartRuntime } from "../../context/react/MessagePartContext";
19
19
  import { createContextStoreHook } from "../../context/react/utils/createContextStoreHook";
20
20
 
21
21
  type SmoothContextValue = {
22
22
  useSmoothStatus: UseBoundStore<
23
- ReadonlyStore<ContentPartStatus | ToolCallContentPartStatus>
23
+ ReadonlyStore<MessagePartStatus | ToolCallMessagePartStatus>
24
24
  >;
25
25
  };
26
26
 
27
27
  const SmoothContext = createContext<SmoothContextValue | null>(null);
28
28
 
29
29
  const makeSmoothContext = (
30
- initialState: ContentPartStatus | ToolCallContentPartStatus,
30
+ initialState: MessagePartStatus | ToolCallMessagePartStatus,
31
31
  ) => {
32
32
  const useSmoothStatus = create(() => initialState);
33
33
  return { useSmoothStatus };
@@ -35,10 +35,10 @@ const makeSmoothContext = (
35
35
 
36
36
  export const SmoothContextProvider: FC<PropsWithChildren> = ({ children }) => {
37
37
  const outer = useSmoothContext({ optional: true });
38
- const contentPartRuntime = useContentPartRuntime();
38
+ const MessagePartRuntime = useMessagePartRuntime();
39
39
 
40
40
  const [context] = useState(() =>
41
- makeSmoothContext(contentPartRuntime.getState().status),
41
+ makeSmoothContext(MessagePartRuntime.getState().status),
42
42
  );
43
43
 
44
44
  // do not wrap if there is an outer SmoothContextProvider
@@ -3,14 +3,14 @@
3
3
  import { useEffect, useMemo, useRef, useState } from "react";
4
4
  import { useMessage } from "../../context";
5
5
  import {
6
- ContentPartStatus,
7
- ReasoningContentPart,
8
- TextContentPart,
6
+ MessagePartStatus,
7
+ ReasoningMessagePart,
8
+ TextMessagePart,
9
9
  } from "../../types/AssistantTypes";
10
10
  import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
11
11
  import { useSmoothStatusStore } from "./SmoothContext";
12
12
  import { writableStore } from "../../context/ReadonlyStore";
13
- import { ContentPartState } from "../../api/ContentPartRuntime";
13
+ import { MessagePartState } from "../../api/MessagePartRuntime";
14
14
 
15
15
  class TextStreamAnimator {
16
16
  private animationFrameId: number | null = null;
@@ -66,14 +66,14 @@ class TextStreamAnimator {
66
66
  };
67
67
  }
68
68
 
69
- const SMOOTH_STATUS: ContentPartStatus = Object.freeze({
69
+ const SMOOTH_STATUS: MessagePartStatus = Object.freeze({
70
70
  type: "running",
71
71
  });
72
72
 
73
73
  export const useSmooth = (
74
- state: ContentPartState & (TextContentPart | ReasoningContentPart),
74
+ state: MessagePartState & (TextMessagePart | ReasoningMessagePart),
75
75
  smooth: boolean = false,
76
- ): ContentPartState & (TextContentPart | ReasoningContentPart) => {
76
+ ): MessagePartState & (TextMessagePart | ReasoningMessagePart) => {
77
77
  const { text } = state;
78
78
  const id = useMessage({
79
79
  optional: true,
@@ -1,13 +1,13 @@
1
1
  import { getPartialJsonObjectFieldState } from "assistant-stream/utils";
2
- import { useContentPart } from "../context";
2
+ import { useMessagePart } from "../context";
3
3
 
4
4
  const COMPLETE_STATUS = { type: "complete" };
5
5
 
6
6
  export const useToolArgsFieldStatus = (fieldPath: (string | number)[]) => {
7
- return useContentPart((t) => {
7
+ return useMessagePart((t) => {
8
8
  if (t.type !== "tool-call")
9
9
  throw new Error(
10
- "useToolArgsFieldStatus can only be used inside tool-call content parts",
10
+ "useToolArgsFieldStatus can only be used inside tool-call message parts",
11
11
  );
12
12
 
13
13
  const state = getPartialJsonObjectFieldState(t.args, fieldPath);
@@ -1,15 +0,0 @@
1
- import { AssistantCloudConfig } from "./AssistantCloudAPI";
2
- import { AssistantCloudAuthTokens } from "./AssistantCloudAuthTokens";
3
- import { AssistantCloudRuns } from "./AssistantCloudRuns";
4
- import { AssistantCloudThreads } from "./AssistantCloudThreads";
5
- import { AssistantCloudFiles } from "./AssistantCloudFiles";
6
- export declare class AssistantCloud {
7
- readonly threads: AssistantCloudThreads;
8
- readonly auth: {
9
- tokens: AssistantCloudAuthTokens;
10
- };
11
- readonly runs: AssistantCloudRuns;
12
- readonly files: AssistantCloudFiles;
13
- constructor(config: AssistantCloudConfig);
14
- }
15
- //# sourceMappingURL=AssistantCloud.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssistantCloud.d.ts","sourceRoot":"","sources":["../../src/cloud/AssistantCloud.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,cAAc;IACzB,SAAgB,OAAO,wBAAC;IACxB,SAAgB,IAAI;;MAAC;IACrB,SAAgB,IAAI,qBAAC;IACrB,SAAgB,KAAK,sBAAC;gBAEV,MAAM,EAAE,oBAAoB;CASzC"}
@@ -1,25 +0,0 @@
1
- // src/cloud/AssistantCloud.tsx
2
- import { AssistantCloudAPI } from "./AssistantCloudAPI.js";
3
- import { AssistantCloudAuthTokens } from "./AssistantCloudAuthTokens.js";
4
- import { AssistantCloudRuns } from "./AssistantCloudRuns.js";
5
- import { AssistantCloudThreads } from "./AssistantCloudThreads.js";
6
- import { AssistantCloudFiles } from "./AssistantCloudFiles.js";
7
- var AssistantCloud = class {
8
- threads;
9
- auth;
10
- runs;
11
- files;
12
- constructor(config) {
13
- const api = new AssistantCloudAPI(config);
14
- this.threads = new AssistantCloudThreads(api);
15
- this.auth = {
16
- tokens: new AssistantCloudAuthTokens(api)
17
- };
18
- this.runs = new AssistantCloudRuns(api);
19
- this.files = new AssistantCloudFiles(api);
20
- }
21
- };
22
- export {
23
- AssistantCloud
24
- };
25
- //# sourceMappingURL=AssistantCloud.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/cloud/AssistantCloud.tsx"],"sourcesContent":["import { AssistantCloudAPI, AssistantCloudConfig } from \"./AssistantCloudAPI\";\nimport { AssistantCloudAuthTokens } from \"./AssistantCloudAuthTokens\";\nimport { AssistantCloudRuns } from \"./AssistantCloudRuns\";\nimport { AssistantCloudThreads } from \"./AssistantCloudThreads\";\nimport { AssistantCloudFiles } from \"./AssistantCloudFiles\";\n\nexport class AssistantCloud {\n public readonly threads;\n public readonly auth;\n public readonly runs;\n public readonly files;\n\n constructor(config: AssistantCloudConfig) {\n const api = new AssistantCloudAPI(config);\n this.threads = new AssistantCloudThreads(api);\n this.auth = {\n tokens: new AssistantCloudAuthTokens(api),\n };\n this.runs = new AssistantCloudRuns(api);\n this.files = new AssistantCloudFiles(api);\n }\n}\n"],"mappings":";AAAA,SAAS,yBAA+C;AACxD,SAAS,gCAAgC;AACzC,SAAS,0BAA0B;AACnC,SAAS,6BAA6B;AACtC,SAAS,2BAA2B;AAE7B,IAAM,iBAAN,MAAqB;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEhB,YAAY,QAA8B;AACxC,UAAM,MAAM,IAAI,kBAAkB,MAAM;AACxC,SAAK,UAAU,IAAI,sBAAsB,GAAG;AAC5C,SAAK,OAAO;AAAA,MACV,QAAQ,IAAI,yBAAyB,GAAG;AAAA,IAC1C;AACA,SAAK,OAAO,IAAI,mBAAmB,GAAG;AACtC,SAAK,QAAQ,IAAI,oBAAoB,GAAG;AAAA,EAC1C;AACF;","names":[]}
@@ -1,28 +0,0 @@
1
- import { AssistantCloudAuthStrategy } from "./AssistantCloudAuthStrategy";
2
- export type AssistantCloudConfig = {
3
- baseUrl: string;
4
- authToken: () => Promise<string | null>;
5
- } | {
6
- apiKey: string;
7
- userId: string;
8
- workspaceId: string;
9
- } | {
10
- baseUrl: string;
11
- anonymous: true;
12
- };
13
- type MakeRequestOptions = {
14
- method?: "POST" | "PUT" | "DELETE" | undefined;
15
- headers?: Record<string, string> | undefined;
16
- query?: Record<string, string | number | boolean> | undefined;
17
- body?: object | undefined;
18
- };
19
- export declare class AssistantCloudAPI {
20
- _auth: AssistantCloudAuthStrategy;
21
- _baseUrl: string;
22
- constructor(config: AssistantCloudConfig);
23
- initializeAuth(): Promise<boolean>;
24
- makeRawRequest(endpoint: string, options?: MakeRequestOptions): Promise<Response>;
25
- makeRequest(endpoint: string, options?: MakeRequestOptions): Promise<any>;
26
- }
27
- export {};
28
- //# sourceMappingURL=AssistantCloudAPI.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssistantCloudAPI.d.ts","sourceRoot":"","sources":["../../src/cloud/AssistantCloudAPI.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAI3B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,oBAAoB,GAC5B;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACzC,GACD;IACE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AASN,KAAK,kBAAkB,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,SAAS,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,qBAAa,iBAAiB;IACrB,KAAK,EAAE,0BAA0B,CAAC;IAClC,QAAQ,SAAC;gBAEJ,MAAM,EAAE,oBAAoB;IAqB3B,cAAc;IAId,cAAc,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,kBAAuB;IAiDrB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;CAI5E"}