@assistant-ui/react 0.10.50 → 0.11.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 (1262) hide show
  1. package/dist/client/AssistantClient.d.ts +66 -0
  2. package/dist/client/AssistantClient.d.ts.map +1 -0
  3. package/dist/client/AssistantClient.js +112 -0
  4. package/dist/client/AssistantClient.js.map +1 -0
  5. package/dist/client/EventContext.d.ts +4 -0
  6. package/dist/client/EventContext.d.ts.map +1 -0
  7. package/dist/client/EventContext.js +20 -0
  8. package/dist/client/EventContext.js.map +1 -0
  9. package/dist/client/ToolUIClient.d.ts +6 -0
  10. package/dist/client/ToolUIClient.d.ts.map +1 -0
  11. package/dist/client/ToolUIClient.js +33 -0
  12. package/dist/client/ToolUIClient.js.map +1 -0
  13. package/dist/client/types/Attachment.d.ts +7 -0
  14. package/dist/client/types/Attachment.d.ts.map +1 -0
  15. package/dist/client/types/Attachment.js +1 -0
  16. package/dist/client/types/Composer.d.ts +30 -0
  17. package/dist/client/types/Composer.d.ts.map +1 -0
  18. package/dist/client/types/Composer.js +1 -0
  19. package/dist/client/types/Message.d.ts +58 -0
  20. package/dist/client/types/Message.d.ts.map +1 -0
  21. package/dist/client/types/Message.js +1 -0
  22. package/dist/client/types/Part.d.ts +17 -0
  23. package/dist/client/types/Part.d.ts.map +1 -0
  24. package/dist/client/types/Part.js +1 -0
  25. package/dist/client/types/Thread.d.ts +106 -0
  26. package/dist/client/types/Thread.d.ts.map +1 -0
  27. package/dist/client/types/Thread.js +1 -0
  28. package/dist/client/types/ThreadList.d.ts +24 -0
  29. package/dist/client/types/ThreadList.d.ts.map +1 -0
  30. package/dist/client/types/ThreadList.js +1 -0
  31. package/dist/client/types/ThreadListItem.d.ts +23 -0
  32. package/dist/client/types/ThreadListItem.d.ts.map +1 -0
  33. package/dist/client/types/ThreadListItem.js +1 -0
  34. package/dist/client/types/ToolUI.d.ts +12 -0
  35. package/dist/client/types/ToolUI.d.ts.map +1 -0
  36. package/dist/client/types/ToolUI.js +1 -0
  37. package/dist/context/providers/AttachmentProvider.d.ts +8 -0
  38. package/dist/context/providers/AttachmentProvider.d.ts.map +1 -0
  39. package/dist/context/providers/AttachmentProvider.js +41 -0
  40. package/dist/context/providers/AttachmentProvider.js.map +1 -0
  41. package/dist/context/providers/MessageProvider.d.ts +5 -0
  42. package/dist/context/providers/MessageProvider.d.ts.map +1 -0
  43. package/dist/context/providers/MessageProvider.js +47 -0
  44. package/dist/context/providers/MessageProvider.js.map +1 -0
  45. package/dist/context/providers/PartProvider.d.ts +5 -0
  46. package/dist/context/providers/PartProvider.d.ts.map +1 -0
  47. package/dist/context/providers/PartProvider.js +27 -0
  48. package/dist/context/providers/PartProvider.js.map +1 -0
  49. package/dist/context/providers/TextMessagePartProvider.d.ts +5 -8
  50. package/dist/context/providers/TextMessagePartProvider.d.ts.map +1 -1
  51. package/dist/context/providers/TextMessagePartProvider.js +40 -53
  52. package/dist/context/providers/TextMessagePartProvider.js.map +1 -1
  53. package/dist/context/providers/ThreadListItemProvider.d.ts +9 -0
  54. package/dist/context/providers/ThreadListItemProvider.d.ts.map +1 -0
  55. package/dist/context/providers/ThreadListItemProvider.js +65 -0
  56. package/dist/context/providers/ThreadListItemProvider.js.map +1 -0
  57. package/dist/context/providers/index.d.ts +5 -2
  58. package/dist/context/providers/index.d.ts.map +1 -1
  59. package/dist/context/providers/index.js +18 -4
  60. package/dist/context/providers/index.js.map +1 -1
  61. package/dist/context/react/AssistantApiContext.d.ts +106 -0
  62. package/dist/context/react/AssistantApiContext.d.ts.map +1 -0
  63. package/dist/context/react/AssistantApiContext.js +149 -0
  64. package/dist/context/react/AssistantApiContext.js.map +1 -0
  65. package/dist/context/react/hooks/useAssistantEvent.d.ts +3 -0
  66. package/dist/context/react/hooks/useAssistantEvent.d.ts.map +1 -0
  67. package/dist/context/react/hooks/useAssistantEvent.js +22 -0
  68. package/dist/context/react/hooks/useAssistantEvent.js.map +1 -0
  69. package/dist/context/react/hooks/useAssistantState.d.ts +3 -0
  70. package/dist/context/react/hooks/useAssistantState.d.ts.map +1 -0
  71. package/dist/context/react/hooks/useAssistantState.js +54 -0
  72. package/dist/context/react/hooks/useAssistantState.js.map +1 -0
  73. package/dist/context/react/index.d.ts +10 -12
  74. package/dist/context/react/index.d.ts.map +1 -1
  75. package/dist/context/react/index.js +45 -33
  76. package/dist/context/react/index.js.map +1 -1
  77. package/dist/context/stores/index.d.ts +0 -2
  78. package/dist/context/stores/index.d.ts.map +1 -1
  79. package/dist/index.d.ts +3 -3
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +3 -3
  82. package/dist/index.js.map +1 -1
  83. package/dist/internal.d.ts +10 -10
  84. package/dist/internal.d.ts.map +1 -1
  85. package/dist/internal.js +8 -8
  86. package/dist/internal.js.map +1 -1
  87. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts +13 -0
  88. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -0
  89. package/dist/legacy-runtime/AssistantRuntimeProvider.js +38 -0
  90. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -0
  91. package/dist/legacy-runtime/client/AttachmentRuntimeClient.d.ts +12 -0
  92. package/dist/legacy-runtime/client/AttachmentRuntimeClient.d.ts.map +1 -0
  93. package/dist/legacy-runtime/client/AttachmentRuntimeClient.js +23 -0
  94. package/dist/legacy-runtime/client/AttachmentRuntimeClient.js.map +1 -0
  95. package/dist/legacy-runtime/client/ComposerRuntimeClient.d.ts +12 -0
  96. package/dist/legacy-runtime/client/ComposerRuntimeClient.d.ts.map +1 -0
  97. package/dist/legacy-runtime/client/ComposerRuntimeClient.js +99 -0
  98. package/dist/legacy-runtime/client/ComposerRuntimeClient.js.map +1 -0
  99. package/dist/legacy-runtime/client/EventManagerRuntimeClient.d.ts +12 -0
  100. package/dist/legacy-runtime/client/EventManagerRuntimeClient.d.ts.map +1 -0
  101. package/dist/legacy-runtime/client/EventManagerRuntimeClient.js +36 -0
  102. package/dist/legacy-runtime/client/EventManagerRuntimeClient.js.map +1 -0
  103. package/dist/legacy-runtime/client/MessagePartRuntimeClient.d.ts +10 -0
  104. package/dist/legacy-runtime/client/MessagePartRuntimeClient.d.ts.map +1 -0
  105. package/dist/legacy-runtime/client/MessagePartRuntimeClient.js +23 -0
  106. package/dist/legacy-runtime/client/MessagePartRuntimeClient.js.map +1 -0
  107. package/dist/legacy-runtime/client/MessageRuntimeClient.d.ts +12 -0
  108. package/dist/legacy-runtime/client/MessageRuntimeClient.d.ts.map +1 -0
  109. package/dist/legacy-runtime/client/MessageRuntimeClient.js +113 -0
  110. package/dist/legacy-runtime/client/MessageRuntimeClient.js.map +1 -0
  111. package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.d.ts +10 -0
  112. package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.d.ts.map +1 -0
  113. package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.js +50 -0
  114. package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.js.map +1 -0
  115. package/dist/legacy-runtime/client/ThreadListRuntimeClient.d.ts +9 -0
  116. package/dist/legacy-runtime/client/ThreadListRuntimeClient.d.ts.map +1 -0
  117. package/dist/legacy-runtime/client/ThreadListRuntimeClient.js +75 -0
  118. package/dist/legacy-runtime/client/ThreadListRuntimeClient.js.map +1 -0
  119. package/dist/legacy-runtime/client/ThreadRuntimeClient.d.ts +9 -0
  120. package/dist/legacy-runtime/client/ThreadRuntimeClient.d.ts.map +1 -0
  121. package/dist/legacy-runtime/client/ThreadRuntimeClient.js +120 -0
  122. package/dist/legacy-runtime/client/ThreadRuntimeClient.js.map +1 -0
  123. package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.d.ts +5 -0
  124. package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -0
  125. package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.js +120 -0
  126. package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -0
  127. package/dist/legacy-runtime/cloud/auiV0.d.ts +55 -0
  128. package/dist/legacy-runtime/cloud/auiV0.d.ts.map +1 -0
  129. package/dist/legacy-runtime/cloud/auiV0.js +88 -0
  130. package/dist/legacy-runtime/cloud/auiV0.js.map +1 -0
  131. package/dist/legacy-runtime/cloud/index.d.ts.map +1 -0
  132. package/dist/legacy-runtime/cloud/index.js +8 -0
  133. package/dist/legacy-runtime/cloud/index.js.map +1 -0
  134. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts +14 -0
  135. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts.map +1 -0
  136. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js +20 -0
  137. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js.map +1 -0
  138. package/dist/legacy-runtime/hooks/AssistantContext.d.ts +58 -0
  139. package/dist/legacy-runtime/hooks/AssistantContext.d.ts.map +1 -0
  140. package/dist/legacy-runtime/hooks/AssistantContext.js +20 -0
  141. package/dist/legacy-runtime/hooks/AssistantContext.js.map +1 -0
  142. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts +830 -0
  143. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts.map +1 -0
  144. package/dist/legacy-runtime/hooks/AttachmentContext.js +61 -0
  145. package/dist/legacy-runtime/hooks/AttachmentContext.js.map +1 -0
  146. package/dist/legacy-runtime/hooks/ComposerContext.d.ts +99 -0
  147. package/dist/legacy-runtime/hooks/ComposerContext.d.ts.map +1 -0
  148. package/dist/legacy-runtime/hooks/ComposerContext.js +19 -0
  149. package/dist/legacy-runtime/hooks/ComposerContext.js.map +1 -0
  150. package/dist/legacy-runtime/hooks/MessageContext.d.ts +118 -0
  151. package/dist/legacy-runtime/hooks/MessageContext.d.ts.map +1 -0
  152. package/dist/legacy-runtime/hooks/MessageContext.js +24 -0
  153. package/dist/legacy-runtime/hooks/MessageContext.js.map +1 -0
  154. package/dist/legacy-runtime/hooks/MessagePartContext.d.ts +35 -0
  155. package/dist/legacy-runtime/hooks/MessagePartContext.d.ts.map +1 -0
  156. package/dist/legacy-runtime/hooks/MessagePartContext.js +19 -0
  157. package/dist/legacy-runtime/hooks/MessagePartContext.js.map +1 -0
  158. package/dist/legacy-runtime/hooks/ThreadContext.d.ts +111 -0
  159. package/dist/legacy-runtime/hooks/ThreadContext.d.ts.map +1 -0
  160. package/dist/legacy-runtime/hooks/ThreadContext.js +33 -0
  161. package/dist/legacy-runtime/hooks/ThreadContext.js.map +1 -0
  162. package/dist/legacy-runtime/hooks/ThreadListItemContext.d.ts +35 -0
  163. package/dist/legacy-runtime/hooks/ThreadListItemContext.d.ts.map +1 -0
  164. package/dist/legacy-runtime/hooks/ThreadListItemContext.js +21 -0
  165. package/dist/legacy-runtime/hooks/ThreadListItemContext.js.map +1 -0
  166. package/dist/legacy-runtime/runtime/AssistantRuntime.d.ts +64 -0
  167. package/dist/legacy-runtime/runtime/AssistantRuntime.d.ts.map +1 -0
  168. package/dist/legacy-runtime/runtime/AssistantRuntime.js +47 -0
  169. package/dist/legacy-runtime/runtime/AssistantRuntime.js.map +1 -0
  170. package/dist/legacy-runtime/runtime/AttachmentRuntime.d.ts +63 -0
  171. package/dist/legacy-runtime/runtime/AttachmentRuntime.d.ts.map +1 -0
  172. package/dist/legacy-runtime/runtime/AttachmentRuntime.js +60 -0
  173. package/dist/legacy-runtime/runtime/AttachmentRuntime.js.map +1 -0
  174. package/dist/legacy-runtime/runtime/ComposerRuntime.d.ts +156 -0
  175. package/dist/legacy-runtime/runtime/ComposerRuntime.d.ts.map +1 -0
  176. package/dist/legacy-runtime/runtime/ComposerRuntime.js +228 -0
  177. package/dist/legacy-runtime/runtime/ComposerRuntime.js.map +1 -0
  178. package/dist/legacy-runtime/runtime/MessagePartRuntime.d.ts +34 -0
  179. package/dist/legacy-runtime/runtime/MessagePartRuntime.d.ts.map +1 -0
  180. package/dist/legacy-runtime/runtime/MessagePartRuntime.js +52 -0
  181. package/dist/legacy-runtime/runtime/MessagePartRuntime.js.map +1 -0
  182. package/dist/legacy-runtime/runtime/MessageRuntime.d.ts +86 -0
  183. package/dist/legacy-runtime/runtime/MessageRuntime.d.ts.map +1 -0
  184. package/dist/legacy-runtime/runtime/MessageRuntime.js +213 -0
  185. package/dist/legacy-runtime/runtime/MessageRuntime.js.map +1 -0
  186. package/dist/legacy-runtime/runtime/RuntimeBindings.d.ts +38 -0
  187. package/dist/legacy-runtime/runtime/RuntimeBindings.d.ts.map +1 -0
  188. package/dist/legacy-runtime/runtime/RuntimeBindings.js.map +1 -0
  189. package/dist/legacy-runtime/runtime/RuntimePathTypes.d.ts.map +1 -0
  190. package/dist/legacy-runtime/runtime/RuntimePathTypes.js.map +1 -0
  191. package/dist/legacy-runtime/runtime/ThreadListItemRuntime.d.ts +50 -0
  192. package/dist/legacy-runtime/runtime/ThreadListItemRuntime.d.ts.map +1 -0
  193. package/dist/legacy-runtime/runtime/ThreadListItemRuntime.js +85 -0
  194. package/dist/legacy-runtime/runtime/ThreadListItemRuntime.js.map +1 -0
  195. package/dist/legacy-runtime/runtime/ThreadListRuntime.d.ts +44 -0
  196. package/dist/legacy-runtime/runtime/ThreadListRuntime.d.ts.map +1 -0
  197. package/dist/legacy-runtime/runtime/ThreadListRuntime.js +168 -0
  198. package/dist/legacy-runtime/runtime/ThreadListRuntime.js.map +1 -0
  199. package/dist/legacy-runtime/runtime/ThreadRuntime.d.ts +241 -0
  200. package/dist/legacy-runtime/runtime/ThreadRuntime.d.ts.map +1 -0
  201. package/dist/legacy-runtime/runtime/ThreadRuntime.js +243 -0
  202. package/dist/legacy-runtime/runtime/ThreadRuntime.js.map +1 -0
  203. package/dist/legacy-runtime/runtime/index.d.ts.map +1 -0
  204. package/dist/legacy-runtime/runtime/index.js.map +1 -0
  205. package/dist/legacy-runtime/runtime/subscribable/BaseSubject.d.ts +11 -0
  206. package/dist/legacy-runtime/runtime/subscribable/BaseSubject.d.ts.map +1 -0
  207. package/dist/legacy-runtime/runtime/subscribable/BaseSubject.js +32 -0
  208. package/dist/legacy-runtime/runtime/subscribable/BaseSubject.js.map +1 -0
  209. package/dist/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.d.ts +13 -0
  210. package/dist/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.d.ts.map +1 -0
  211. package/dist/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.js +37 -0
  212. package/dist/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.js.map +1 -0
  213. package/dist/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.d.ts +13 -0
  214. package/dist/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.d.ts.map +1 -0
  215. package/dist/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.js +37 -0
  216. package/dist/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.js.map +1 -0
  217. package/dist/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.d.ts +12 -0
  218. package/dist/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.d.ts.map +1 -0
  219. package/dist/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.js +41 -0
  220. package/dist/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.js.map +1 -0
  221. package/dist/legacy-runtime/runtime/subscribable/SKIP_UPDATE.d.ts.map +1 -0
  222. package/dist/legacy-runtime/runtime/subscribable/SKIP_UPDATE.js +6 -0
  223. package/dist/legacy-runtime/runtime/subscribable/SKIP_UPDATE.js.map +1 -0
  224. package/dist/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.d.ts +13 -0
  225. package/dist/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.d.ts.map +1 -0
  226. package/dist/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.js +41 -0
  227. package/dist/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.js.map +1 -0
  228. package/dist/legacy-runtime/runtime/subscribable/Subscribable.d.ts +16 -0
  229. package/dist/legacy-runtime/runtime/subscribable/Subscribable.d.ts.map +1 -0
  230. package/dist/legacy-runtime/runtime/subscribable/Subscribable.js.map +1 -0
  231. package/dist/legacy-runtime/runtime/subscribable/shallowEqual.d.ts.map +1 -0
  232. package/dist/legacy-runtime/runtime/subscribable/shallowEqual.js +16 -0
  233. package/dist/legacy-runtime/runtime/subscribable/shallowEqual.js.map +1 -0
  234. package/dist/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.d.ts +19 -0
  235. package/dist/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.d.ts.map +1 -0
  236. package/dist/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.js +31 -0
  237. package/dist/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.js.map +1 -0
  238. package/dist/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.d.ts +64 -0
  239. package/dist/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.d.ts.map +1 -0
  240. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.d.ts +15 -0
  241. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.d.ts.map +1 -0
  242. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.js +83 -0
  243. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.js.map +1 -0
  244. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.d.ts +13 -0
  245. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.d.ts.map +1 -0
  246. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.js +79 -0
  247. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.js.map +1 -0
  248. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.d.ts +11 -0
  249. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.d.ts.map +1 -0
  250. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.js +38 -0
  251. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.js.map +1 -0
  252. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.d.ts +11 -0
  253. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.d.ts.map +1 -0
  254. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.js +40 -0
  255. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.js.map +1 -0
  256. package/dist/legacy-runtime/runtime-cores/adapters/attachment/index.d.ts.map +1 -0
  257. package/dist/legacy-runtime/runtime-cores/adapters/attachment/index.js +12 -0
  258. package/dist/legacy-runtime/runtime-cores/adapters/attachment/index.js.map +1 -0
  259. package/dist/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.d.ts +43 -0
  260. package/dist/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.d.ts.map +1 -0
  261. package/dist/legacy-runtime/runtime-cores/adapters/feedback/index.d.ts.map +1 -0
  262. package/dist/legacy-runtime/runtime-cores/adapters/index.d.ts.map +1 -0
  263. package/dist/legacy-runtime/runtime-cores/adapters/index.js +8 -0
  264. package/dist/legacy-runtime/runtime-cores/adapters/index.js.map +1 -0
  265. package/dist/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.d.ts +88 -0
  266. package/dist/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.d.ts.map +1 -0
  267. package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.d.ts.map +1 -0
  268. package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.js +43 -0
  269. package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.js.map +1 -0
  270. package/dist/legacy-runtime/runtime-cores/adapters/speech/index.d.ts.map +1 -0
  271. package/dist/legacy-runtime/runtime-cores/adapters/speech/index.js +6 -0
  272. package/dist/legacy-runtime/runtime-cores/adapters/speech/index.js.map +1 -0
  273. package/dist/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.d.ts +10 -0
  274. package/dist/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.d.ts.map +1 -0
  275. package/dist/legacy-runtime/runtime-cores/adapters/suggestion/index.d.ts.map +1 -0
  276. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/MessageFormatAdapter.d.ts.map +1 -0
  277. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/ThreadHistoryAdapter.d.ts.map +1 -0
  278. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/index.d.ts.map +1 -0
  279. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/index.js +4 -0
  280. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/index.js.map +1 -0
  281. package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.d.ts +39 -0
  282. package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.d.ts.map +1 -0
  283. package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.js +164 -0
  284. package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.js.map +1 -0
  285. package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.d.ts +25 -0
  286. package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.d.ts.map +1 -0
  287. package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.js +48 -0
  288. package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.js.map +1 -0
  289. package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.d.ts +21 -0
  290. package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.d.ts.map +1 -0
  291. package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.js +41 -0
  292. package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.js.map +1 -0
  293. package/dist/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.d.ts +16 -0
  294. package/dist/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.d.ts.map +1 -0
  295. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.d.ts +11 -0
  296. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.d.ts.map +1 -0
  297. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.js +12 -0
  298. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.js.map +1 -0
  299. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.d.ts +64 -0
  300. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.d.ts.map +1 -0
  301. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.js +159 -0
  302. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.js.map +1 -0
  303. package/dist/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.d.ts +28 -0
  304. package/dist/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.d.ts.map +1 -0
  305. package/dist/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.d.ts +37 -0
  306. package/dist/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.d.ts.map +1 -0
  307. package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.d.ts +86 -0
  308. package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.d.ts.map +1 -0
  309. package/dist/legacy-runtime/runtime-cores/core/index.d.ts.map +1 -0
  310. package/dist/legacy-runtime/runtime-cores/core/index.js.map +1 -0
  311. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.d.ts +71 -0
  312. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.d.ts.map +1 -0
  313. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.js.map +1 -0
  314. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.d.ts.map +1 -0
  315. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.js +25 -0
  316. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.js.map +1 -0
  317. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.d.ts +39 -0
  318. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -0
  319. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.js +174 -0
  320. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -0
  321. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts +41 -0
  322. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -0
  323. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js +226 -0
  324. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -0
  325. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.d.ts +7 -0
  326. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.d.ts.map +1 -0
  327. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.js +16 -0
  328. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.js.map +1 -0
  329. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts +30 -0
  330. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts.map +1 -0
  331. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.js +131 -0
  332. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.js.map +1 -0
  333. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.d.ts +12 -0
  334. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.d.ts.map +1 -0
  335. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.js +17 -0
  336. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.js.map +1 -0
  337. package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.d.ts +16 -0
  338. package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.d.ts.map +1 -0
  339. package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.js +60 -0
  340. package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.js.map +1 -0
  341. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.d.ts +24 -0
  342. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.d.ts.map +1 -0
  343. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.js +255 -0
  344. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.js.map +1 -0
  345. package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.d.ts +9 -0
  346. package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.d.ts.map +1 -0
  347. package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.js +24 -0
  348. package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.js.map +1 -0
  349. package/dist/legacy-runtime/runtime-cores/external-store/index.d.ts.map +1 -0
  350. package/dist/legacy-runtime/runtime-cores/external-store/index.js +20 -0
  351. package/dist/legacy-runtime/runtime-cores/external-store/index.js.map +1 -0
  352. package/dist/legacy-runtime/runtime-cores/external-store/useExternalStoreRuntime.d.ts +4 -0
  353. package/dist/legacy-runtime/runtime-cores/external-store/useExternalStoreRuntime.d.ts.map +1 -0
  354. package/dist/legacy-runtime/runtime-cores/external-store/useExternalStoreRuntime.js +25 -0
  355. package/dist/legacy-runtime/runtime-cores/external-store/useExternalStoreRuntime.js.map +1 -0
  356. package/dist/legacy-runtime/runtime-cores/index.d.ts.map +1 -0
  357. package/dist/legacy-runtime/runtime-cores/index.js +11 -0
  358. package/dist/legacy-runtime/runtime-cores/index.js.map +1 -0
  359. package/dist/legacy-runtime/runtime-cores/local/ChatModelAdapter.d.ts +37 -0
  360. package/dist/legacy-runtime/runtime-cores/local/ChatModelAdapter.d.ts.map +1 -0
  361. package/dist/legacy-runtime/runtime-cores/local/ChatModelAdapter.js.map +1 -0
  362. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.d.ts.map +1 -0
  363. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.js +24 -0
  364. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.js.map +1 -0
  365. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.d.ts.map +1 -0
  366. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.js +25 -0
  367. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.js.map +1 -0
  368. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.d.ts +43 -0
  369. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.d.ts.map +1 -0
  370. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.js +91 -0
  371. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.js.map +1 -0
  372. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts +48 -0
  373. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts.map +1 -0
  374. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js +340 -0
  375. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js.map +1 -0
  376. package/dist/legacy-runtime/runtime-cores/local/index.d.ts.map +1 -0
  377. package/dist/legacy-runtime/runtime-cores/local/index.js +7 -0
  378. package/dist/legacy-runtime/runtime-cores/local/index.js.map +1 -0
  379. package/dist/legacy-runtime/runtime-cores/local/shouldContinue.d.ts +3 -0
  380. package/dist/legacy-runtime/runtime-cores/local/shouldContinue.d.ts.map +1 -0
  381. package/dist/legacy-runtime/runtime-cores/local/shouldContinue.js +13 -0
  382. package/dist/legacy-runtime/runtime-cores/local/shouldContinue.js.map +1 -0
  383. package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.d.ts +6 -0
  384. package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.d.ts.map +1 -0
  385. package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.js +52 -0
  386. package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.js.map +1 -0
  387. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.d.ts +8 -0
  388. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.d.ts.map +1 -0
  389. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.js +37 -0
  390. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.js.map +1 -0
  391. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.d.ts +3 -0
  392. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +1 -0
  393. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.js +131 -0
  394. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.js.map +1 -0
  395. package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.d.ts.map +1 -0
  396. package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.js +60 -0
  397. package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.js.map +1 -0
  398. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts +87 -0
  399. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -0
  400. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.js +119 -0
  401. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.js.map +1 -0
  402. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +131 -0
  403. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -0
  404. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +452 -0
  405. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -0
  406. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.d.ts.map +1 -0
  407. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.js +98 -0
  408. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.js.map +1 -0
  409. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.d.ts.map +1 -0
  410. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.js +30 -0
  411. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.js.map +1 -0
  412. package/dist/legacy-runtime/runtime-cores/remote-thread-list/index.d.ts.map +1 -0
  413. package/dist/legacy-runtime/runtime-cores/remote-thread-list/index.js +10 -0
  414. package/dist/legacy-runtime/runtime-cores/remote-thread-list/index.js.map +1 -0
  415. package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.d.ts +32 -0
  416. package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.d.ts.map +1 -0
  417. package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.js.map +1 -0
  418. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.d.ts +4 -0
  419. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.d.ts.map +1 -0
  420. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.js +32 -0
  421. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.js.map +1 -0
  422. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.d.ts +151 -0
  423. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.d.ts.map +1 -0
  424. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js +362 -0
  425. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js.map +1 -0
  426. package/dist/legacy-runtime/util-hooks/tapLookupResources.d.ts +15 -0
  427. package/dist/legacy-runtime/util-hooks/tapLookupResources.d.ts.map +1 -0
  428. package/dist/legacy-runtime/util-hooks/tapLookupResources.js +21 -0
  429. package/dist/legacy-runtime/util-hooks/tapLookupResources.js.map +1 -0
  430. package/dist/legacy-runtime/util-hooks/tapSubscribable.d.ts +3 -0
  431. package/dist/legacy-runtime/util-hooks/tapSubscribable.d.ts.map +1 -0
  432. package/dist/legacy-runtime/util-hooks/tapSubscribable.js +16 -0
  433. package/dist/legacy-runtime/util-hooks/tapSubscribable.js.map +1 -0
  434. package/dist/model-context/makeAssistantVisible.js +4 -4
  435. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  436. package/dist/model-context/useAssistantInstructions.js +4 -4
  437. package/dist/model-context/useAssistantInstructions.js.map +1 -1
  438. package/dist/model-context/useAssistantTool.d.ts.map +1 -1
  439. package/dist/model-context/useAssistantTool.js +7 -10
  440. package/dist/model-context/useAssistantTool.js.map +1 -1
  441. package/dist/model-context/useAssistantToolUI.js +5 -5
  442. package/dist/model-context/useAssistantToolUI.js.map +1 -1
  443. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  444. package/dist/primitives/actionBar/ActionBarCopy.js +12 -17
  445. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  446. package/dist/primitives/actionBar/ActionBarEdit.js +5 -5
  447. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  448. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
  449. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +6 -7
  450. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  451. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +6 -6
  452. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  453. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
  454. package/dist/primitives/actionBar/ActionBarReload.js +6 -10
  455. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  456. package/dist/primitives/actionBar/ActionBarSpeak.js +6 -6
  457. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
  458. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -1
  459. package/dist/primitives/actionBar/ActionBarStopSpeaking.js +5 -8
  460. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
  461. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -1
  462. package/dist/primitives/actionBar/useActionBarFloatStatus.js +10 -21
  463. package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
  464. package/dist/primitives/assistantModal/AssistantModalRoot.js +4 -4
  465. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  466. package/dist/primitives/attachment/AttachmentName.js +2 -2
  467. package/dist/primitives/attachment/AttachmentName.js.map +1 -1
  468. package/dist/primitives/attachment/AttachmentRemove.js +4 -4
  469. package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
  470. package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -1
  471. package/dist/primitives/attachment/AttachmentThumb.js +5 -2
  472. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
  473. package/dist/primitives/branchPicker/BranchPickerCount.js +2 -2
  474. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
  475. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
  476. package/dist/primitives/branchPicker/BranchPickerNext.js +7 -8
  477. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  478. package/dist/primitives/branchPicker/BranchPickerNumber.js +2 -2
  479. package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
  480. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
  481. package/dist/primitives/branchPicker/BranchPickerPrevious.js +7 -8
  482. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  483. package/dist/primitives/composer/ComposerAddAttachment.js +6 -6
  484. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  485. package/dist/primitives/composer/ComposerAttachmentDropzone.js +4 -4
  486. package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
  487. package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  488. package/dist/primitives/composer/ComposerAttachments.js +11 -13
  489. package/dist/primitives/composer/ComposerAttachments.js.map +1 -1
  490. package/dist/primitives/composer/ComposerCancel.js +5 -5
  491. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  492. package/dist/primitives/composer/ComposerIf.js +2 -2
  493. package/dist/primitives/composer/ComposerIf.js.map +1 -1
  494. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
  495. package/dist/primitives/composer/ComposerInput.js +22 -32
  496. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  497. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
  498. package/dist/primitives/composer/ComposerSend.js +6 -10
  499. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  500. package/dist/primitives/error/ErrorMessage.d.ts.map +1 -1
  501. package/dist/primitives/error/ErrorMessage.js +3 -3
  502. package/dist/primitives/error/ErrorMessage.js.map +1 -1
  503. package/dist/primitives/message/MessageAttachments.d.ts.map +1 -1
  504. package/dist/primitives/message/MessageAttachments.js +9 -11
  505. package/dist/primitives/message/MessageAttachments.js.map +1 -1
  506. package/dist/primitives/message/MessageError.d.ts.map +1 -1
  507. package/dist/primitives/message/MessageError.js +3 -3
  508. package/dist/primitives/message/MessageError.js.map +1 -1
  509. package/dist/primitives/message/MessageIf.d.ts.map +1 -1
  510. package/dist/primitives/message/MessageIf.js +28 -34
  511. package/dist/primitives/message/MessageIf.js.map +1 -1
  512. package/dist/primitives/message/MessageParts.d.ts.map +1 -1
  513. package/dist/primitives/message/MessageParts.js +25 -27
  514. package/dist/primitives/message/MessageParts.js.map +1 -1
  515. package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
  516. package/dist/primitives/message/MessagePartsGrouped.js +24 -26
  517. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  518. package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
  519. package/dist/primitives/message/MessageRoot.js +8 -7
  520. package/dist/primitives/message/MessageRoot.js.map +1 -1
  521. package/dist/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  522. package/dist/primitives/messagePart/MessagePartInProgress.js +4 -2
  523. package/dist/primitives/messagePart/MessagePartInProgress.js.map +1 -1
  524. package/dist/primitives/messagePart/useMessagePartFile.js +4 -4
  525. package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -1
  526. package/dist/primitives/messagePart/useMessagePartImage.js +4 -4
  527. package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -1
  528. package/dist/primitives/messagePart/useMessagePartReasoning.js +4 -4
  529. package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -1
  530. package/dist/primitives/messagePart/useMessagePartSource.js +4 -4
  531. package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -1
  532. package/dist/primitives/messagePart/useMessagePartText.js +4 -4
  533. package/dist/primitives/messagePart/useMessagePartText.js.map +1 -1
  534. package/dist/primitives/thread/ThreadEmpty.js +2 -2
  535. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  536. package/dist/primitives/thread/ThreadIf.js +2 -2
  537. package/dist/primitives/thread/ThreadIf.js.map +1 -1
  538. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
  539. package/dist/primitives/thread/ThreadMessages.js +9 -12
  540. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  541. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  542. package/dist/primitives/thread/ThreadSuggestion.js +8 -8
  543. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  544. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
  545. package/dist/primitives/thread/useThreadViewportAutoScroll.js +3 -6
  546. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  547. package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  548. package/dist/primitives/threadList/ThreadListItems.js +7 -10
  549. package/dist/primitives/threadList/ThreadListItems.js.map +1 -1
  550. package/dist/primitives/threadList/ThreadListNew.d.ts +1 -3
  551. package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -1
  552. package/dist/primitives/threadList/ThreadListNew.js +7 -11
  553. package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
  554. package/dist/primitives/threadListItem/ThreadListItemArchive.js +4 -4
  555. package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -1
  556. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -1
  557. package/dist/primitives/threadListItem/ThreadListItemDelete.js +6 -5
  558. package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -1
  559. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -1
  560. package/dist/primitives/threadListItem/ThreadListItemRoot.js +4 -2
  561. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
  562. package/dist/primitives/threadListItem/ThreadListItemTitle.js +2 -2
  563. package/dist/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
  564. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -1
  565. package/dist/primitives/threadListItem/ThreadListItemTrigger.js +6 -5
  566. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
  567. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -1
  568. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js +6 -5
  569. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -1
  570. package/dist/tests/setup.js +8 -8
  571. package/dist/tests/setup.js.map +1 -1
  572. package/dist/types/EventTypes.d.ts +49 -0
  573. package/dist/types/EventTypes.d.ts.map +1 -0
  574. package/dist/types/EventTypes.js +22 -0
  575. package/dist/types/EventTypes.js.map +1 -0
  576. package/dist/types/MessagePartComponentTypes.d.ts +1 -1
  577. package/dist/types/MessagePartComponentTypes.d.ts.map +1 -1
  578. package/dist/types/index.d.ts +2 -1
  579. package/dist/types/index.d.ts.map +1 -1
  580. package/dist/utils/smooth/SmoothContext.js +3 -3
  581. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  582. package/dist/utils/smooth/useSmooth.d.ts +1 -1
  583. package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
  584. package/dist/utils/smooth/useSmooth.js +2 -5
  585. package/dist/utils/smooth/useSmooth.js.map +1 -1
  586. package/dist/utils/tap-store/index.d.ts +3 -0
  587. package/dist/utils/tap-store/index.d.ts.map +1 -0
  588. package/dist/utils/tap-store/index.js +8 -0
  589. package/dist/utils/tap-store/index.js.map +1 -0
  590. package/dist/utils/tap-store/store.d.ts +19 -0
  591. package/dist/utils/tap-store/store.d.ts.map +1 -0
  592. package/dist/utils/tap-store/store.js +23 -0
  593. package/dist/utils/tap-store/store.js.map +1 -0
  594. package/dist/utils/tap-store/tap-api.d.ts +5 -0
  595. package/dist/utils/tap-store/tap-api.d.ts.map +1 -0
  596. package/dist/utils/tap-store/tap-api.js +42 -0
  597. package/dist/utils/tap-store/tap-api.js.map +1 -0
  598. package/dist/utils/useToolArgsFieldStatus.js +6 -6
  599. package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
  600. package/package.json +2 -1
  601. package/src/client/AssistantClient.ts +168 -0
  602. package/src/client/EventContext.ts +22 -0
  603. package/src/client/ToolUIClient.ts +34 -0
  604. package/src/client/types/Attachment.ts +13 -0
  605. package/src/client/types/Composer.ts +34 -0
  606. package/src/client/types/Message.ts +66 -0
  607. package/src/client/types/Part.ts +31 -0
  608. package/src/client/types/Thread.ts +135 -0
  609. package/src/client/types/ThreadList.ts +32 -0
  610. package/src/client/types/ThreadListItem.ts +26 -0
  611. package/src/client/types/ToolUI.ts +18 -0
  612. package/src/context/providers/AttachmentProvider.tsx +48 -0
  613. package/src/context/providers/MessageProvider.tsx +57 -0
  614. package/src/context/providers/PartProvider.tsx +28 -0
  615. package/src/context/providers/TextMessagePartProvider.tsx +51 -79
  616. package/src/context/providers/ThreadListItemProvider.tsx +84 -0
  617. package/src/context/providers/index.ts +11 -4
  618. package/src/context/react/AssistantApiContext.tsx +291 -0
  619. package/src/context/react/hooks/useAssistantEvent.ts +24 -0
  620. package/src/context/react/hooks/useAssistantState.tsx +65 -0
  621. package/src/context/react/index.ts +37 -37
  622. package/src/context/stores/index.ts +0 -2
  623. package/src/index.ts +4 -3
  624. package/src/internal.ts +10 -10
  625. package/src/legacy-runtime/AssistantRuntimeProvider.tsx +60 -0
  626. package/src/legacy-runtime/client/AttachmentRuntimeClient.ts +22 -0
  627. package/src/legacy-runtime/client/ComposerRuntimeClient.ts +128 -0
  628. package/src/legacy-runtime/client/EventManagerRuntimeClient.ts +58 -0
  629. package/src/legacy-runtime/client/MessagePartRuntimeClient.ts +27 -0
  630. package/src/legacy-runtime/client/MessageRuntimeClient.ts +136 -0
  631. package/src/legacy-runtime/client/ThreadListItemRuntimeClient.ts +60 -0
  632. package/src/legacy-runtime/client/ThreadListRuntimeClient.ts +90 -0
  633. package/src/legacy-runtime/client/ThreadRuntimeClient.ts +145 -0
  634. package/src/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.tsx +185 -0
  635. package/src/legacy-runtime/cloud/auiV0.ts +158 -0
  636. package/src/legacy-runtime/cloud/useCloudThreadListRuntime.tsx +32 -0
  637. package/src/legacy-runtime/hooks/AssistantContext.ts +53 -0
  638. package/src/legacy-runtime/hooks/AttachmentContext.ts +91 -0
  639. package/src/legacy-runtime/hooks/ComposerContext.ts +90 -0
  640. package/src/legacy-runtime/hooks/MessageContext.ts +90 -0
  641. package/src/legacy-runtime/hooks/MessagePartContext.ts +24 -0
  642. package/src/legacy-runtime/hooks/ThreadContext.ts +94 -0
  643. package/src/legacy-runtime/hooks/ThreadListItemContext.ts +28 -0
  644. package/src/legacy-runtime/runtime/AssistantRuntime.ts +109 -0
  645. package/src/legacy-runtime/runtime/AttachmentRuntime.ts +119 -0
  646. package/src/legacy-runtime/runtime/ComposerRuntime.ts +443 -0
  647. package/src/legacy-runtime/runtime/MessagePartRuntime.ts +94 -0
  648. package/src/legacy-runtime/runtime/MessageRuntime.ts +330 -0
  649. package/src/legacy-runtime/runtime/RuntimeBindings.ts +70 -0
  650. package/src/legacy-runtime/runtime/ThreadListItemRuntime.ts +155 -0
  651. package/src/legacy-runtime/runtime/ThreadListRuntime.ts +226 -0
  652. package/src/legacy-runtime/runtime/ThreadRuntime.ts +519 -0
  653. package/src/legacy-runtime/runtime/subscribable/BaseSubject.ts +36 -0
  654. package/src/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.ts +44 -0
  655. package/src/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.ts +58 -0
  656. package/src/legacy-runtime/runtime/subscribable/Subscribable.ts +26 -0
  657. package/src/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.tsx +43 -0
  658. package/src/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.ts +71 -0
  659. package/src/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.ts +101 -0
  660. package/src/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.ts +107 -0
  661. package/src/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.ts +49 -0
  662. package/src/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.ts +50 -0
  663. package/src/legacy-runtime/runtime-cores/adapters/attachment/index.ts +5 -0
  664. package/src/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.ts +43 -0
  665. package/src/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.ts +98 -0
  666. package/src/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.ts +14 -0
  667. package/src/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.tsx +239 -0
  668. package/src/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.tsx +62 -0
  669. package/src/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.tsx +55 -0
  670. package/src/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.tsx +18 -0
  671. package/src/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.tsx +16 -0
  672. package/src/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.tsx +228 -0
  673. package/src/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.tsx +48 -0
  674. package/src/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.tsx +49 -0
  675. package/src/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.tsx +125 -0
  676. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.tsx +98 -0
  677. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.tsx +233 -0
  678. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.tsx +317 -0
  679. package/src/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.ts +23 -0
  680. package/src/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.tsx +215 -0
  681. package/src/legacy-runtime/runtime-cores/external-store/auto-status.tsx +26 -0
  682. package/src/legacy-runtime/runtime-cores/external-store/createMessageConverter.tsx +70 -0
  683. package/src/legacy-runtime/runtime-cores/external-store/external-message-converter.tsx +354 -0
  684. package/src/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.tsx +37 -0
  685. package/src/legacy-runtime/runtime-cores/external-store/useExternalStoreRuntime.tsx +29 -0
  686. package/src/legacy-runtime/runtime-cores/local/ChatModelAdapter.tsx +62 -0
  687. package/src/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.tsx +114 -0
  688. package/src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.tsx +456 -0
  689. package/src/legacy-runtime/runtime-cores/local/shouldContinue.tsx +26 -0
  690. package/src/legacy-runtime/runtime-cores/local/useLocalRuntime.tsx +61 -0
  691. package/src/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.tsx +38 -0
  692. package/src/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.tsx +170 -0
  693. package/src/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.tsx +164 -0
  694. package/src/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +589 -0
  695. package/src/legacy-runtime/runtime-cores/remote-thread-list/types.tsx +41 -0
  696. package/src/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.tsx +38 -0
  697. package/src/legacy-runtime/runtime-cores/utils/MessageRepository.tsx +506 -0
  698. package/src/legacy-runtime/util-hooks/tapLookupResources.ts +30 -0
  699. package/src/legacy-runtime/util-hooks/tapSubscribable.ts +16 -0
  700. package/src/model-context/makeAssistantVisible.tsx +4 -4
  701. package/src/model-context/useAssistantInstructions.tsx +4 -4
  702. package/src/model-context/useAssistantTool.tsx +7 -12
  703. package/src/model-context/useAssistantToolUI.tsx +5 -5
  704. package/src/primitives/actionBar/ActionBarCopy.tsx +14 -20
  705. package/src/primitives/actionBar/ActionBarEdit.tsx +5 -5
  706. package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +6 -7
  707. package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +6 -6
  708. package/src/primitives/actionBar/ActionBarReload.tsx +9 -10
  709. package/src/primitives/actionBar/ActionBarSpeak.tsx +7 -7
  710. package/src/primitives/actionBar/ActionBarStopSpeaking.tsx +5 -8
  711. package/src/primitives/actionBar/useActionBarFloatStatus.tsx +22 -34
  712. package/src/primitives/assistantModal/AssistantModalRoot.tsx +4 -4
  713. package/src/primitives/attachment/AttachmentName.tsx +2 -2
  714. package/src/primitives/attachment/AttachmentRemove.tsx +4 -4
  715. package/src/primitives/attachment/AttachmentThumb.tsx +5 -2
  716. package/src/primitives/branchPicker/BranchPickerCount.tsx +2 -2
  717. package/src/primitives/branchPicker/BranchPickerNext.tsx +7 -8
  718. package/src/primitives/branchPicker/BranchPickerNumber.tsx +2 -2
  719. package/src/primitives/branchPicker/BranchPickerPrevious.tsx +7 -8
  720. package/src/primitives/composer/ComposerAddAttachment.tsx +6 -6
  721. package/src/primitives/composer/ComposerAttachmentDropzone.tsx +4 -4
  722. package/src/primitives/composer/ComposerAttachments.tsx +12 -15
  723. package/src/primitives/composer/ComposerCancel.tsx +5 -5
  724. package/src/primitives/composer/ComposerIf.tsx +2 -2
  725. package/src/primitives/composer/ComposerInput.tsx +32 -32
  726. package/src/primitives/composer/ComposerSend.tsx +6 -10
  727. package/src/primitives/error/ErrorMessage.tsx +5 -4
  728. package/src/primitives/message/MessageAttachments.tsx +10 -13
  729. package/src/primitives/message/MessageError.tsx +5 -3
  730. package/src/primitives/message/MessageIf.tsx +43 -52
  731. package/src/primitives/message/MessageParts.tsx +26 -31
  732. package/src/primitives/message/MessagePartsGrouped.tsx +25 -30
  733. package/src/primitives/message/MessageRoot.tsx +10 -8
  734. package/src/primitives/messagePart/MessagePartInProgress.tsx +4 -2
  735. package/src/primitives/messagePart/useMessagePartFile.tsx +5 -5
  736. package/src/primitives/messagePart/useMessagePartImage.tsx +5 -5
  737. package/src/primitives/messagePart/useMessagePartReasoning.tsx +5 -5
  738. package/src/primitives/messagePart/useMessagePartSource.tsx +5 -5
  739. package/src/primitives/messagePart/useMessagePartText.tsx +5 -5
  740. package/src/primitives/thread/ThreadEmpty.tsx +2 -2
  741. package/src/primitives/thread/ThreadIf.tsx +2 -2
  742. package/src/primitives/thread/ThreadMessages.tsx +10 -14
  743. package/src/primitives/thread/ThreadSuggestion.tsx +8 -8
  744. package/src/primitives/thread/useThreadViewportAutoScroll.tsx +3 -6
  745. package/src/primitives/threadList/ThreadListItems.tsx +8 -15
  746. package/src/primitives/threadList/ThreadListNew.tsx +9 -13
  747. package/src/primitives/threadListItem/ThreadListItemArchive.ts +4 -4
  748. package/src/primitives/threadListItem/ThreadListItemDelete.ts +6 -5
  749. package/src/primitives/threadListItem/ThreadListItemRoot.tsx +4 -2
  750. package/src/primitives/threadListItem/ThreadListItemTitle.tsx +2 -2
  751. package/src/primitives/threadListItem/ThreadListItemTrigger.ts +6 -5
  752. package/src/primitives/threadListItem/ThreadListItemUnarchive.ts +6 -5
  753. package/src/tests/MessageRepository.test.ts +2 -2
  754. package/src/types/EventTypes.ts +92 -0
  755. package/src/types/MessagePartComponentTypes.tsx +1 -1
  756. package/src/types/index.ts +7 -1
  757. package/src/utils/smooth/SmoothContext.tsx +3 -3
  758. package/src/utils/smooth/useSmooth.tsx +3 -6
  759. package/src/utils/tap-store/index.ts +2 -0
  760. package/src/utils/tap-store/store.ts +40 -0
  761. package/src/utils/tap-store/tap-api.ts +48 -0
  762. package/src/utils/useToolArgsFieldStatus.tsx +6 -6
  763. package/dist/api/AssistantRuntime.d.ts +0 -64
  764. package/dist/api/AssistantRuntime.d.ts.map +0 -1
  765. package/dist/api/AssistantRuntime.js +0 -46
  766. package/dist/api/AssistantRuntime.js.map +0 -1
  767. package/dist/api/AttachmentRuntime.d.ts +0 -63
  768. package/dist/api/AttachmentRuntime.d.ts.map +0 -1
  769. package/dist/api/AttachmentRuntime.js +0 -59
  770. package/dist/api/AttachmentRuntime.js.map +0 -1
  771. package/dist/api/ComposerRuntime.d.ts +0 -153
  772. package/dist/api/ComposerRuntime.d.ts.map +0 -1
  773. package/dist/api/ComposerRuntime.js +0 -230
  774. package/dist/api/ComposerRuntime.js.map +0 -1
  775. package/dist/api/MessagePartRuntime.d.ts +0 -34
  776. package/dist/api/MessagePartRuntime.d.ts.map +0 -1
  777. package/dist/api/MessagePartRuntime.js +0 -51
  778. package/dist/api/MessagePartRuntime.js.map +0 -1
  779. package/dist/api/MessageRuntime.d.ts +0 -86
  780. package/dist/api/MessageRuntime.d.ts.map +0 -1
  781. package/dist/api/MessageRuntime.js +0 -212
  782. package/dist/api/MessageRuntime.js.map +0 -1
  783. package/dist/api/RuntimeBindings.d.ts +0 -38
  784. package/dist/api/RuntimeBindings.d.ts.map +0 -1
  785. package/dist/api/RuntimePathTypes.d.ts.map +0 -1
  786. package/dist/api/ThreadListItemRuntime.d.ts +0 -50
  787. package/dist/api/ThreadListItemRuntime.d.ts.map +0 -1
  788. package/dist/api/ThreadListItemRuntime.js +0 -80
  789. package/dist/api/ThreadListItemRuntime.js.map +0 -1
  790. package/dist/api/ThreadListRuntime.d.ts +0 -45
  791. package/dist/api/ThreadListRuntime.d.ts.map +0 -1
  792. package/dist/api/ThreadListRuntime.js +0 -169
  793. package/dist/api/ThreadListRuntime.js.map +0 -1
  794. package/dist/api/ThreadRuntime.d.ts +0 -241
  795. package/dist/api/ThreadRuntime.d.ts.map +0 -1
  796. package/dist/api/ThreadRuntime.js +0 -242
  797. package/dist/api/ThreadRuntime.js.map +0 -1
  798. package/dist/api/index.d.ts.map +0 -1
  799. package/dist/api/subscribable/BaseSubject.d.ts +0 -11
  800. package/dist/api/subscribable/BaseSubject.d.ts.map +0 -1
  801. package/dist/api/subscribable/BaseSubject.js +0 -32
  802. package/dist/api/subscribable/BaseSubject.js.map +0 -1
  803. package/dist/api/subscribable/EventSubscriptionSubject.d.ts +0 -13
  804. package/dist/api/subscribable/EventSubscriptionSubject.d.ts.map +0 -1
  805. package/dist/api/subscribable/EventSubscriptionSubject.js +0 -37
  806. package/dist/api/subscribable/EventSubscriptionSubject.js.map +0 -1
  807. package/dist/api/subscribable/LazyMemoizeSubject.d.ts +0 -13
  808. package/dist/api/subscribable/LazyMemoizeSubject.d.ts.map +0 -1
  809. package/dist/api/subscribable/LazyMemoizeSubject.js +0 -37
  810. package/dist/api/subscribable/LazyMemoizeSubject.js.map +0 -1
  811. package/dist/api/subscribable/NestedSubscriptionSubject.d.ts +0 -12
  812. package/dist/api/subscribable/NestedSubscriptionSubject.d.ts.map +0 -1
  813. package/dist/api/subscribable/NestedSubscriptionSubject.js +0 -41
  814. package/dist/api/subscribable/NestedSubscriptionSubject.js.map +0 -1
  815. package/dist/api/subscribable/SKIP_UPDATE.d.ts.map +0 -1
  816. package/dist/api/subscribable/SKIP_UPDATE.js +0 -6
  817. package/dist/api/subscribable/SKIP_UPDATE.js.map +0 -1
  818. package/dist/api/subscribable/ShallowMemoizeSubject.d.ts +0 -13
  819. package/dist/api/subscribable/ShallowMemoizeSubject.d.ts.map +0 -1
  820. package/dist/api/subscribable/ShallowMemoizeSubject.js +0 -41
  821. package/dist/api/subscribable/ShallowMemoizeSubject.js.map +0 -1
  822. package/dist/api/subscribable/Subscribable.d.ts +0 -16
  823. package/dist/api/subscribable/Subscribable.d.ts.map +0 -1
  824. package/dist/api/subscribable/shallowEqual.d.ts.map +0 -1
  825. package/dist/api/subscribable/shallowEqual.js +0 -16
  826. package/dist/api/subscribable/shallowEqual.js.map +0 -1
  827. package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts +0 -5
  828. package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +0 -1
  829. package/dist/cloud/AssistantCloudThreadHistoryAdapter.js +0 -118
  830. package/dist/cloud/AssistantCloudThreadHistoryAdapter.js.map +0 -1
  831. package/dist/cloud/auiV0.d.ts +0 -55
  832. package/dist/cloud/auiV0.d.ts.map +0 -1
  833. package/dist/cloud/auiV0.js +0 -88
  834. package/dist/cloud/auiV0.js.map +0 -1
  835. package/dist/cloud/index.d.ts.map +0 -1
  836. package/dist/cloud/index.js +0 -8
  837. package/dist/cloud/index.js.map +0 -1
  838. package/dist/cloud/useCloudThreadListRuntime.d.ts +0 -14
  839. package/dist/cloud/useCloudThreadListRuntime.d.ts.map +0 -1
  840. package/dist/cloud/useCloudThreadListRuntime.js +0 -20
  841. package/dist/cloud/useCloudThreadListRuntime.js.map +0 -1
  842. package/dist/context/providers/AssistantRuntimeProvider.d.ts +0 -13
  843. package/dist/context/providers/AssistantRuntimeProvider.d.ts.map +0 -1
  844. package/dist/context/providers/AssistantRuntimeProvider.js +0 -59
  845. package/dist/context/providers/AssistantRuntimeProvider.js.map +0 -1
  846. package/dist/context/providers/AttachmentRuntimeProvider.d.ts +0 -9
  847. package/dist/context/providers/AttachmentRuntimeProvider.d.ts.map +0 -1
  848. package/dist/context/providers/AttachmentRuntimeProvider.js +0 -33
  849. package/dist/context/providers/AttachmentRuntimeProvider.js.map +0 -1
  850. package/dist/context/providers/MessagePartRuntimeProvider.d.ts +0 -9
  851. package/dist/context/providers/MessagePartRuntimeProvider.d.ts.map +0 -1
  852. package/dist/context/providers/MessagePartRuntimeProvider.js +0 -28
  853. package/dist/context/providers/MessagePartRuntimeProvider.js.map +0 -1
  854. package/dist/context/providers/MessageRuntimeProvider.d.ts +0 -9
  855. package/dist/context/providers/MessageRuntimeProvider.d.ts.map +0 -1
  856. package/dist/context/providers/MessageRuntimeProvider.js +0 -37
  857. package/dist/context/providers/MessageRuntimeProvider.js.map +0 -1
  858. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts +0 -9
  859. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts.map +0 -1
  860. package/dist/context/providers/ThreadListItemRuntimeProvider.js +0 -30
  861. package/dist/context/providers/ThreadListItemRuntimeProvider.js.map +0 -1
  862. package/dist/context/providers/ThreadRuntimeProvider.d.ts +0 -10
  863. package/dist/context/providers/ThreadRuntimeProvider.d.ts.map +0 -1
  864. package/dist/context/providers/ThreadRuntimeProvider.js +0 -33
  865. package/dist/context/providers/ThreadRuntimeProvider.js.map +0 -1
  866. package/dist/context/react/AssistantContext.d.ts +0 -85
  867. package/dist/context/react/AssistantContext.d.ts.map +0 -1
  868. package/dist/context/react/AssistantContext.js +0 -34
  869. package/dist/context/react/AssistantContext.js.map +0 -1
  870. package/dist/context/react/AttachmentContext.d.ts +0 -836
  871. package/dist/context/react/AttachmentContext.d.ts.map +0 -1
  872. package/dist/context/react/AttachmentContext.js +0 -67
  873. package/dist/context/react/AttachmentContext.js.map +0 -1
  874. package/dist/context/react/ComposerContext.d.ts +0 -99
  875. package/dist/context/react/ComposerContext.d.ts.map +0 -1
  876. package/dist/context/react/ComposerContext.js +0 -17
  877. package/dist/context/react/ComposerContext.js.map +0 -1
  878. package/dist/context/react/MessageContext.d.ts +0 -142
  879. package/dist/context/react/MessageContext.d.ts.map +0 -1
  880. package/dist/context/react/MessageContext.js +0 -35
  881. package/dist/context/react/MessageContext.js.map +0 -1
  882. package/dist/context/react/MessagePartContext.d.ts +0 -41
  883. package/dist/context/react/MessagePartContext.d.ts.map +0 -1
  884. package/dist/context/react/MessagePartContext.js +0 -25
  885. package/dist/context/react/MessagePartContext.js.map +0 -1
  886. package/dist/context/react/ThreadContext.d.ts +0 -117
  887. package/dist/context/react/ThreadContext.d.ts.map +0 -1
  888. package/dist/context/react/ThreadContext.js +0 -38
  889. package/dist/context/react/ThreadContext.js.map +0 -1
  890. package/dist/context/react/ThreadListItemContext.d.ts +0 -41
  891. package/dist/context/react/ThreadListItemContext.d.ts.map +0 -1
  892. package/dist/context/react/ThreadListItemContext.js +0 -25
  893. package/dist/context/react/ThreadListItemContext.js.map +0 -1
  894. package/dist/context/stores/AssistantToolUIs.d.ts +0 -14
  895. package/dist/context/stores/AssistantToolUIs.d.ts.map +0 -1
  896. package/dist/context/stores/AssistantToolUIs.js +0 -35
  897. package/dist/context/stores/AssistantToolUIs.js.map +0 -1
  898. package/dist/context/stores/MessageUtils.d.ts +0 -8
  899. package/dist/context/stores/MessageUtils.d.ts.map +0 -1
  900. package/dist/context/stores/MessageUtils.js +0 -18
  901. package/dist/context/stores/MessageUtils.js.map +0 -1
  902. package/dist/runtimes/adapters/RuntimeAdapterProvider.d.ts +0 -19
  903. package/dist/runtimes/adapters/RuntimeAdapterProvider.d.ts.map +0 -1
  904. package/dist/runtimes/adapters/RuntimeAdapterProvider.js +0 -31
  905. package/dist/runtimes/adapters/RuntimeAdapterProvider.js.map +0 -1
  906. package/dist/runtimes/adapters/attachment/AttachmentAdapter.d.ts +0 -64
  907. package/dist/runtimes/adapters/attachment/AttachmentAdapter.d.ts.map +0 -1
  908. package/dist/runtimes/adapters/attachment/CloudFileAttachmentAdapter.d.ts +0 -15
  909. package/dist/runtimes/adapters/attachment/CloudFileAttachmentAdapter.d.ts.map +0 -1
  910. package/dist/runtimes/adapters/attachment/CloudFileAttachmentAdapter.js +0 -83
  911. package/dist/runtimes/adapters/attachment/CloudFileAttachmentAdapter.js.map +0 -1
  912. package/dist/runtimes/adapters/attachment/CompositeAttachmentAdapter.d.ts +0 -13
  913. package/dist/runtimes/adapters/attachment/CompositeAttachmentAdapter.d.ts.map +0 -1
  914. package/dist/runtimes/adapters/attachment/CompositeAttachmentAdapter.js +0 -79
  915. package/dist/runtimes/adapters/attachment/CompositeAttachmentAdapter.js.map +0 -1
  916. package/dist/runtimes/adapters/attachment/SimpleImageAttachmentAdapter.d.ts +0 -11
  917. package/dist/runtimes/adapters/attachment/SimpleImageAttachmentAdapter.d.ts.map +0 -1
  918. package/dist/runtimes/adapters/attachment/SimpleImageAttachmentAdapter.js +0 -38
  919. package/dist/runtimes/adapters/attachment/SimpleImageAttachmentAdapter.js.map +0 -1
  920. package/dist/runtimes/adapters/attachment/SimpleTextAttachmentAdapter.d.ts +0 -11
  921. package/dist/runtimes/adapters/attachment/SimpleTextAttachmentAdapter.d.ts.map +0 -1
  922. package/dist/runtimes/adapters/attachment/SimpleTextAttachmentAdapter.js +0 -40
  923. package/dist/runtimes/adapters/attachment/SimpleTextAttachmentAdapter.js.map +0 -1
  924. package/dist/runtimes/adapters/attachment/index.d.ts.map +0 -1
  925. package/dist/runtimes/adapters/attachment/index.js +0 -12
  926. package/dist/runtimes/adapters/attachment/index.js.map +0 -1
  927. package/dist/runtimes/adapters/feedback/FeedbackAdapter.d.ts +0 -43
  928. package/dist/runtimes/adapters/feedback/FeedbackAdapter.d.ts.map +0 -1
  929. package/dist/runtimes/adapters/feedback/index.d.ts.map +0 -1
  930. package/dist/runtimes/adapters/index.d.ts.map +0 -1
  931. package/dist/runtimes/adapters/index.js +0 -8
  932. package/dist/runtimes/adapters/index.js.map +0 -1
  933. package/dist/runtimes/adapters/speech/SpeechAdapterTypes.d.ts +0 -88
  934. package/dist/runtimes/adapters/speech/SpeechAdapterTypes.d.ts.map +0 -1
  935. package/dist/runtimes/adapters/speech/WebSpeechSynthesisAdapter.d.ts.map +0 -1
  936. package/dist/runtimes/adapters/speech/WebSpeechSynthesisAdapter.js +0 -43
  937. package/dist/runtimes/adapters/speech/WebSpeechSynthesisAdapter.js.map +0 -1
  938. package/dist/runtimes/adapters/speech/index.d.ts.map +0 -1
  939. package/dist/runtimes/adapters/speech/index.js +0 -6
  940. package/dist/runtimes/adapters/speech/index.js.map +0 -1
  941. package/dist/runtimes/adapters/suggestion/SuggestionAdapter.d.ts +0 -10
  942. package/dist/runtimes/adapters/suggestion/SuggestionAdapter.d.ts.map +0 -1
  943. package/dist/runtimes/adapters/suggestion/index.d.ts.map +0 -1
  944. package/dist/runtimes/adapters/thread-history/MessageFormatAdapter.d.ts.map +0 -1
  945. package/dist/runtimes/adapters/thread-history/ThreadHistoryAdapter.d.ts.map +0 -1
  946. package/dist/runtimes/adapters/thread-history/index.d.ts.map +0 -1
  947. package/dist/runtimes/adapters/thread-history/index.js +0 -4
  948. package/dist/runtimes/adapters/thread-history/index.js.map +0 -1
  949. package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts +0 -39
  950. package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts.map +0 -1
  951. package/dist/runtimes/composer/BaseComposerRuntimeCore.js +0 -164
  952. package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +0 -1
  953. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.d.ts +0 -25
  954. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.d.ts.map +0 -1
  955. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.js +0 -48
  956. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.js.map +0 -1
  957. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.d.ts +0 -21
  958. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.d.ts.map +0 -1
  959. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.js +0 -41
  960. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.js.map +0 -1
  961. package/dist/runtimes/core/AssistantRuntimeCore.d.ts +0 -16
  962. package/dist/runtimes/core/AssistantRuntimeCore.d.ts.map +0 -1
  963. package/dist/runtimes/core/BaseAssistantRuntimeCore.d.ts +0 -11
  964. package/dist/runtimes/core/BaseAssistantRuntimeCore.d.ts.map +0 -1
  965. package/dist/runtimes/core/BaseAssistantRuntimeCore.js +0 -12
  966. package/dist/runtimes/core/BaseAssistantRuntimeCore.js.map +0 -1
  967. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts +0 -64
  968. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts.map +0 -1
  969. package/dist/runtimes/core/BaseThreadRuntimeCore.js +0 -155
  970. package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +0 -1
  971. package/dist/runtimes/core/ComposerRuntimeCore.d.ts +0 -28
  972. package/dist/runtimes/core/ComposerRuntimeCore.d.ts.map +0 -1
  973. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts +0 -37
  974. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts.map +0 -1
  975. package/dist/runtimes/core/ThreadRuntimeCore.d.ts +0 -86
  976. package/dist/runtimes/core/ThreadRuntimeCore.d.ts.map +0 -1
  977. package/dist/runtimes/core/index.d.ts.map +0 -1
  978. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts +0 -68
  979. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts.map +0 -1
  980. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts.map +0 -1
  981. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js +0 -25
  982. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js.map +0 -1
  983. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts +0 -37
  984. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +0 -1
  985. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js +0 -139
  986. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js.map +0 -1
  987. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts +0 -41
  988. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +0 -1
  989. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +0 -223
  990. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +0 -1
  991. package/dist/runtimes/external-store/ThreadMessageConverter.d.ts +0 -7
  992. package/dist/runtimes/external-store/ThreadMessageConverter.d.ts.map +0 -1
  993. package/dist/runtimes/external-store/ThreadMessageConverter.js +0 -16
  994. package/dist/runtimes/external-store/ThreadMessageConverter.js.map +0 -1
  995. package/dist/runtimes/external-store/ThreadMessageLike.d.ts +0 -30
  996. package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +0 -1
  997. package/dist/runtimes/external-store/ThreadMessageLike.js +0 -131
  998. package/dist/runtimes/external-store/ThreadMessageLike.js.map +0 -1
  999. package/dist/runtimes/external-store/auto-status.d.ts +0 -12
  1000. package/dist/runtimes/external-store/auto-status.d.ts.map +0 -1
  1001. package/dist/runtimes/external-store/auto-status.js +0 -17
  1002. package/dist/runtimes/external-store/auto-status.js.map +0 -1
  1003. package/dist/runtimes/external-store/createMessageConverter.d.ts +0 -16
  1004. package/dist/runtimes/external-store/createMessageConverter.d.ts.map +0 -1
  1005. package/dist/runtimes/external-store/createMessageConverter.js +0 -57
  1006. package/dist/runtimes/external-store/createMessageConverter.js.map +0 -1
  1007. package/dist/runtimes/external-store/external-message-converter.d.ts +0 -24
  1008. package/dist/runtimes/external-store/external-message-converter.d.ts.map +0 -1
  1009. package/dist/runtimes/external-store/external-message-converter.js +0 -255
  1010. package/dist/runtimes/external-store/external-message-converter.js.map +0 -1
  1011. package/dist/runtimes/external-store/getExternalStoreMessage.d.ts +0 -9
  1012. package/dist/runtimes/external-store/getExternalStoreMessage.d.ts.map +0 -1
  1013. package/dist/runtimes/external-store/getExternalStoreMessage.js +0 -24
  1014. package/dist/runtimes/external-store/getExternalStoreMessage.js.map +0 -1
  1015. package/dist/runtimes/external-store/index.d.ts.map +0 -1
  1016. package/dist/runtimes/external-store/index.js +0 -20
  1017. package/dist/runtimes/external-store/index.js.map +0 -1
  1018. package/dist/runtimes/external-store/useExternalStoreRuntime.d.ts +0 -4
  1019. package/dist/runtimes/external-store/useExternalStoreRuntime.d.ts.map +0 -1
  1020. package/dist/runtimes/external-store/useExternalStoreRuntime.js +0 -25
  1021. package/dist/runtimes/external-store/useExternalStoreRuntime.js.map +0 -1
  1022. package/dist/runtimes/index.d.ts.map +0 -1
  1023. package/dist/runtimes/index.js +0 -11
  1024. package/dist/runtimes/index.js.map +0 -1
  1025. package/dist/runtimes/local/ChatModelAdapter.d.ts +0 -37
  1026. package/dist/runtimes/local/ChatModelAdapter.d.ts.map +0 -1
  1027. package/dist/runtimes/local/LocalRuntimeCore.d.ts.map +0 -1
  1028. package/dist/runtimes/local/LocalRuntimeCore.js +0 -24
  1029. package/dist/runtimes/local/LocalRuntimeCore.js.map +0 -1
  1030. package/dist/runtimes/local/LocalRuntimeOptions.d.ts.map +0 -1
  1031. package/dist/runtimes/local/LocalRuntimeOptions.js +0 -25
  1032. package/dist/runtimes/local/LocalRuntimeOptions.js.map +0 -1
  1033. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts +0 -34
  1034. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts.map +0 -1
  1035. package/dist/runtimes/local/LocalThreadListRuntimeCore.js +0 -78
  1036. package/dist/runtimes/local/LocalThreadListRuntimeCore.js.map +0 -1
  1037. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +0 -48
  1038. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +0 -1
  1039. package/dist/runtimes/local/LocalThreadRuntimeCore.js +0 -340
  1040. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +0 -1
  1041. package/dist/runtimes/local/index.d.ts.map +0 -1
  1042. package/dist/runtimes/local/index.js +0 -7
  1043. package/dist/runtimes/local/index.js.map +0 -1
  1044. package/dist/runtimes/local/shouldContinue.d.ts +0 -3
  1045. package/dist/runtimes/local/shouldContinue.d.ts.map +0 -1
  1046. package/dist/runtimes/local/shouldContinue.js +0 -13
  1047. package/dist/runtimes/local/shouldContinue.js.map +0 -1
  1048. package/dist/runtimes/local/useLocalRuntime.d.ts +0 -6
  1049. package/dist/runtimes/local/useLocalRuntime.d.ts.map +0 -1
  1050. package/dist/runtimes/local/useLocalRuntime.js +0 -52
  1051. package/dist/runtimes/local/useLocalRuntime.js.map +0 -1
  1052. package/dist/runtimes/remote-thread-list/BaseSubscribable.d.ts +0 -8
  1053. package/dist/runtimes/remote-thread-list/BaseSubscribable.d.ts.map +0 -1
  1054. package/dist/runtimes/remote-thread-list/BaseSubscribable.js +0 -37
  1055. package/dist/runtimes/remote-thread-list/BaseSubscribable.js.map +0 -1
  1056. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.d.ts +0 -3
  1057. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +0 -1
  1058. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js +0 -133
  1059. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js.map +0 -1
  1060. package/dist/runtimes/remote-thread-list/OptimisticState.d.ts.map +0 -1
  1061. package/dist/runtimes/remote-thread-list/OptimisticState.js +0 -60
  1062. package/dist/runtimes/remote-thread-list/OptimisticState.js.map +0 -1
  1063. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts +0 -87
  1064. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +0 -1
  1065. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js +0 -125
  1066. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js.map +0 -1
  1067. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +0 -127
  1068. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +0 -1
  1069. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +0 -446
  1070. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +0 -1
  1071. package/dist/runtimes/remote-thread-list/adapter/cloud.d.ts.map +0 -1
  1072. package/dist/runtimes/remote-thread-list/adapter/cloud.js +0 -98
  1073. package/dist/runtimes/remote-thread-list/adapter/cloud.js.map +0 -1
  1074. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +0 -1
  1075. package/dist/runtimes/remote-thread-list/adapter/in-memory.js +0 -30
  1076. package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +0 -1
  1077. package/dist/runtimes/remote-thread-list/index.d.ts.map +0 -1
  1078. package/dist/runtimes/remote-thread-list/index.js +0 -10
  1079. package/dist/runtimes/remote-thread-list/index.js.map +0 -1
  1080. package/dist/runtimes/remote-thread-list/types.d.ts +0 -32
  1081. package/dist/runtimes/remote-thread-list/types.d.ts.map +0 -1
  1082. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.d.ts +0 -4
  1083. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.d.ts.map +0 -1
  1084. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js +0 -32
  1085. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js.map +0 -1
  1086. package/dist/runtimes/utils/MessageRepository.d.ts +0 -151
  1087. package/dist/runtimes/utils/MessageRepository.d.ts.map +0 -1
  1088. package/dist/runtimes/utils/MessageRepository.js +0 -362
  1089. package/dist/runtimes/utils/MessageRepository.js.map +0 -1
  1090. package/dist/utils/combined/createCombinedStore.d.ts +0 -8
  1091. package/dist/utils/combined/createCombinedStore.d.ts.map +0 -1
  1092. package/dist/utils/combined/createCombinedStore.js +0 -22
  1093. package/dist/utils/combined/createCombinedStore.js.map +0 -1
  1094. package/dist/utils/combined/useCombinedStore.d.ts +0 -3
  1095. package/dist/utils/combined/useCombinedStore.d.ts.map +0 -1
  1096. package/dist/utils/combined/useCombinedStore.js +0 -15
  1097. package/dist/utils/combined/useCombinedStore.js.map +0 -1
  1098. package/src/api/AssistantRuntime.ts +0 -107
  1099. package/src/api/AttachmentRuntime.ts +0 -117
  1100. package/src/api/ComposerRuntime.ts +0 -436
  1101. package/src/api/MessagePartRuntime.ts +0 -92
  1102. package/src/api/MessageRuntime.ts +0 -328
  1103. package/src/api/RuntimeBindings.ts +0 -70
  1104. package/src/api/ThreadListItemRuntime.ts +0 -145
  1105. package/src/api/ThreadListRuntime.ts +0 -226
  1106. package/src/api/ThreadRuntime.ts +0 -517
  1107. package/src/api/subscribable/BaseSubject.ts +0 -36
  1108. package/src/api/subscribable/EventSubscriptionSubject.ts +0 -44
  1109. package/src/api/subscribable/NestedSubscriptionSubject.ts +0 -58
  1110. package/src/api/subscribable/Subscribable.ts +0 -26
  1111. package/src/cloud/AssistantCloudThreadHistoryAdapter.tsx +0 -183
  1112. package/src/cloud/auiV0.ts +0 -158
  1113. package/src/cloud/useCloudThreadListRuntime.tsx +0 -32
  1114. package/src/context/providers/AssistantRuntimeProvider.tsx +0 -77
  1115. package/src/context/providers/AttachmentRuntimeProvider.tsx +0 -44
  1116. package/src/context/providers/MessagePartRuntimeProvider.tsx +0 -42
  1117. package/src/context/providers/MessageRuntimeProvider.tsx +0 -50
  1118. package/src/context/providers/ThreadListItemRuntimeProvider.tsx +0 -43
  1119. package/src/context/providers/ThreadRuntimeProvider.tsx +0 -53
  1120. package/src/context/react/AssistantContext.ts +0 -72
  1121. package/src/context/react/AttachmentContext.ts +0 -102
  1122. package/src/context/react/ComposerContext.ts +0 -88
  1123. package/src/context/react/MessageContext.ts +0 -107
  1124. package/src/context/react/MessagePartContext.ts +0 -37
  1125. package/src/context/react/ThreadContext.ts +0 -104
  1126. package/src/context/react/ThreadListItemContext.ts +0 -38
  1127. package/src/context/stores/AssistantToolUIs.ts +0 -51
  1128. package/src/context/stores/MessageUtils.ts +0 -23
  1129. package/src/runtimes/adapters/RuntimeAdapterProvider.tsx +0 -43
  1130. package/src/runtimes/adapters/attachment/AttachmentAdapter.ts +0 -71
  1131. package/src/runtimes/adapters/attachment/CloudFileAttachmentAdapter.ts +0 -101
  1132. package/src/runtimes/adapters/attachment/CompositeAttachmentAdapter.ts +0 -104
  1133. package/src/runtimes/adapters/attachment/SimpleImageAttachmentAdapter.ts +0 -49
  1134. package/src/runtimes/adapters/attachment/SimpleTextAttachmentAdapter.ts +0 -50
  1135. package/src/runtimes/adapters/attachment/index.ts +0 -5
  1136. package/src/runtimes/adapters/feedback/FeedbackAdapter.ts +0 -43
  1137. package/src/runtimes/adapters/speech/SpeechAdapterTypes.ts +0 -98
  1138. package/src/runtimes/adapters/suggestion/SuggestionAdapter.ts +0 -14
  1139. package/src/runtimes/composer/BaseComposerRuntimeCore.tsx +0 -239
  1140. package/src/runtimes/composer/DefaultEditComposerRuntimeCore.tsx +0 -62
  1141. package/src/runtimes/composer/DefaultThreadComposerRuntimeCore.tsx +0 -55
  1142. package/src/runtimes/core/AssistantRuntimeCore.tsx +0 -18
  1143. package/src/runtimes/core/BaseAssistantRuntimeCore.tsx +0 -16
  1144. package/src/runtimes/core/BaseThreadRuntimeCore.tsx +0 -224
  1145. package/src/runtimes/core/ComposerRuntimeCore.tsx +0 -44
  1146. package/src/runtimes/core/ThreadListRuntimeCore.tsx +0 -47
  1147. package/src/runtimes/core/ThreadRuntimeCore.tsx +0 -125
  1148. package/src/runtimes/external-store/ExternalStoreAdapter.tsx +0 -95
  1149. package/src/runtimes/external-store/ExternalStoreThreadListRuntimeCore.tsx +0 -192
  1150. package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +0 -313
  1151. package/src/runtimes/external-store/ThreadMessageConverter.ts +0 -23
  1152. package/src/runtimes/external-store/ThreadMessageLike.tsx +0 -215
  1153. package/src/runtimes/external-store/auto-status.tsx +0 -26
  1154. package/src/runtimes/external-store/createMessageConverter.tsx +0 -66
  1155. package/src/runtimes/external-store/external-message-converter.tsx +0 -354
  1156. package/src/runtimes/external-store/getExternalStoreMessage.tsx +0 -37
  1157. package/src/runtimes/external-store/useExternalStoreRuntime.tsx +0 -29
  1158. package/src/runtimes/local/ChatModelAdapter.tsx +0 -62
  1159. package/src/runtimes/local/LocalThreadListRuntimeCore.tsx +0 -100
  1160. package/src/runtimes/local/LocalThreadRuntimeCore.tsx +0 -456
  1161. package/src/runtimes/local/shouldContinue.tsx +0 -26
  1162. package/src/runtimes/local/useLocalRuntime.tsx +0 -61
  1163. package/src/runtimes/remote-thread-list/BaseSubscribable.tsx +0 -38
  1164. package/src/runtimes/remote-thread-list/EMPTY_THREAD_CORE.tsx +0 -173
  1165. package/src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx +0 -169
  1166. package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +0 -582
  1167. package/src/runtimes/remote-thread-list/types.tsx +0 -41
  1168. package/src/runtimes/remote-thread-list/useRemoteThreadListRuntime.tsx +0 -38
  1169. package/src/runtimes/utils/MessageRepository.tsx +0 -506
  1170. package/src/utils/combined/createCombinedStore.ts +0 -31
  1171. package/src/utils/combined/useCombinedStore.ts +0 -17
  1172. /package/dist/{api/RuntimeBindings.js.map → client/types/Attachment.js.map} +0 -0
  1173. /package/dist/{api/RuntimePathTypes.js.map → client/types/Composer.js.map} +0 -0
  1174. /package/dist/{api/index.js.map → client/types/Message.js.map} +0 -0
  1175. /package/dist/{api/subscribable/Subscribable.js.map → client/types/Part.js.map} +0 -0
  1176. /package/dist/{runtimes/adapters/attachment/AttachmentAdapter.js.map → client/types/Thread.js.map} +0 -0
  1177. /package/dist/{runtimes/adapters/feedback/FeedbackAdapter.js.map → client/types/ThreadList.js.map} +0 -0
  1178. /package/dist/{runtimes/adapters/feedback/index.js.map → client/types/ThreadListItem.js.map} +0 -0
  1179. /package/dist/{runtimes/adapters/speech/SpeechAdapterTypes.js.map → client/types/ToolUI.js.map} +0 -0
  1180. /package/dist/{cloud → legacy-runtime/cloud}/index.d.ts +0 -0
  1181. /package/dist/{api → legacy-runtime/runtime}/RuntimeBindings.js +0 -0
  1182. /package/dist/{api → legacy-runtime/runtime}/RuntimePathTypes.d.ts +0 -0
  1183. /package/dist/{api → legacy-runtime/runtime}/RuntimePathTypes.js +0 -0
  1184. /package/dist/{api → legacy-runtime/runtime}/index.d.ts +0 -0
  1185. /package/dist/{runtimes/core → legacy-runtime/runtime}/index.js +0 -0
  1186. /package/dist/{api → legacy-runtime/runtime}/subscribable/SKIP_UPDATE.d.ts +0 -0
  1187. /package/dist/{api → legacy-runtime/runtime}/subscribable/Subscribable.js +0 -0
  1188. /package/dist/{api → legacy-runtime/runtime}/subscribable/shallowEqual.d.ts +0 -0
  1189. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/attachment/AttachmentAdapter.js +0 -0
  1190. /package/dist/{runtimes/adapters/suggestion/SuggestionAdapter.js.map → legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.js.map} +0 -0
  1191. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/attachment/index.d.ts +0 -0
  1192. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/feedback/FeedbackAdapter.js +0 -0
  1193. /package/dist/{runtimes/adapters/suggestion/index.js.map → legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.js.map} +0 -0
  1194. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/feedback/index.d.ts +0 -0
  1195. /package/dist/{api → legacy-runtime/runtime-cores/adapters/feedback}/index.js +0 -0
  1196. /package/dist/{runtimes/core → legacy-runtime/runtime-cores/adapters/feedback}/index.js.map +0 -0
  1197. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/index.d.ts +0 -0
  1198. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/speech/SpeechAdapterTypes.js +0 -0
  1199. /package/dist/{runtimes/adapters/thread-history/MessageFormatAdapter.js.map → legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.js.map} +0 -0
  1200. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/speech/WebSpeechSynthesisAdapter.d.ts +0 -0
  1201. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/speech/index.d.ts +0 -0
  1202. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/suggestion/SuggestionAdapter.js +0 -0
  1203. /package/dist/{runtimes/adapters/thread-history/ThreadHistoryAdapter.js.map → legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.js.map} +0 -0
  1204. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/suggestion/index.d.ts +0 -0
  1205. /package/dist/{runtimes/adapters/feedback → legacy-runtime/runtime-cores/adapters/suggestion}/index.js +0 -0
  1206. /package/dist/{runtimes/core/AssistantRuntimeCore.js.map → legacy-runtime/runtime-cores/adapters/suggestion/index.js.map} +0 -0
  1207. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/thread-history/MessageFormatAdapter.d.ts +0 -0
  1208. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/thread-history/MessageFormatAdapter.js +0 -0
  1209. /package/dist/{runtimes/core/ComposerRuntimeCore.js.map → legacy-runtime/runtime-cores/adapters/thread-history/MessageFormatAdapter.js.map} +0 -0
  1210. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/thread-history/ThreadHistoryAdapter.d.ts +0 -0
  1211. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/thread-history/ThreadHistoryAdapter.js +0 -0
  1212. /package/dist/{runtimes/core/ThreadListRuntimeCore.js.map → legacy-runtime/runtime-cores/adapters/thread-history/ThreadHistoryAdapter.js.map} +0 -0
  1213. /package/dist/{runtimes → legacy-runtime/runtime-cores}/adapters/thread-history/index.d.ts +0 -0
  1214. /package/dist/{runtimes → legacy-runtime/runtime-cores}/core/AssistantRuntimeCore.js +0 -0
  1215. /package/dist/{runtimes/core/ThreadRuntimeCore.js.map → legacy-runtime/runtime-cores/core/AssistantRuntimeCore.js.map} +0 -0
  1216. /package/dist/{runtimes → legacy-runtime/runtime-cores}/core/ComposerRuntimeCore.js +0 -0
  1217. /package/dist/{runtimes/external-store/ExternalStoreAdapter.js.map → legacy-runtime/runtime-cores/core/ComposerRuntimeCore.js.map} +0 -0
  1218. /package/dist/{runtimes → legacy-runtime/runtime-cores}/core/ThreadListRuntimeCore.js +0 -0
  1219. /package/dist/{runtimes/local/ChatModelAdapter.js.map → legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.js.map} +0 -0
  1220. /package/dist/{runtimes → legacy-runtime/runtime-cores}/core/ThreadRuntimeCore.js +0 -0
  1221. /package/dist/{runtimes/remote-thread-list/types.js.map → legacy-runtime/runtime-cores/core/ThreadRuntimeCore.js.map} +0 -0
  1222. /package/dist/{runtimes → legacy-runtime/runtime-cores}/core/index.d.ts +0 -0
  1223. /package/dist/{runtimes/adapters/suggestion → legacy-runtime/runtime-cores/core}/index.js +0 -0
  1224. /package/dist/{runtimes → legacy-runtime/runtime-cores}/external-store/ExternalStoreAdapter.js +0 -0
  1225. /package/dist/{runtimes → legacy-runtime/runtime-cores}/external-store/ExternalStoreRuntimeCore.d.ts +0 -0
  1226. /package/dist/{runtimes → legacy-runtime/runtime-cores}/external-store/index.d.ts +0 -0
  1227. /package/dist/{runtimes → legacy-runtime/runtime-cores}/index.d.ts +0 -0
  1228. /package/dist/{runtimes → legacy-runtime/runtime-cores}/local/ChatModelAdapter.js +0 -0
  1229. /package/dist/{runtimes → legacy-runtime/runtime-cores}/local/LocalRuntimeCore.d.ts +0 -0
  1230. /package/dist/{runtimes → legacy-runtime/runtime-cores}/local/LocalRuntimeOptions.d.ts +0 -0
  1231. /package/dist/{runtimes → legacy-runtime/runtime-cores}/local/index.d.ts +0 -0
  1232. /package/dist/{runtimes → legacy-runtime/runtime-cores}/remote-thread-list/OptimisticState.d.ts +0 -0
  1233. /package/dist/{runtimes → legacy-runtime/runtime-cores}/remote-thread-list/adapter/cloud.d.ts +0 -0
  1234. /package/dist/{runtimes → legacy-runtime/runtime-cores}/remote-thread-list/adapter/in-memory.d.ts +0 -0
  1235. /package/dist/{runtimes → legacy-runtime/runtime-cores}/remote-thread-list/index.d.ts +0 -0
  1236. /package/dist/{runtimes → legacy-runtime/runtime-cores}/remote-thread-list/types.js +0 -0
  1237. /package/src/{cloud → legacy-runtime/cloud}/index.ts +0 -0
  1238. /package/src/{api → legacy-runtime/runtime}/RuntimePathTypes.ts +0 -0
  1239. /package/src/{api → legacy-runtime/runtime}/index.ts +0 -0
  1240. /package/src/{api → legacy-runtime/runtime}/subscribable/LazyMemoizeSubject.ts +0 -0
  1241. /package/src/{api → legacy-runtime/runtime}/subscribable/SKIP_UPDATE.ts +0 -0
  1242. /package/src/{api → legacy-runtime/runtime}/subscribable/ShallowMemoizeSubject.ts +0 -0
  1243. /package/src/{api → legacy-runtime/runtime}/subscribable/shallowEqual.ts +0 -0
  1244. /package/src/{runtimes → legacy-runtime/runtime-cores}/adapters/feedback/index.ts +0 -0
  1245. /package/src/{runtimes → legacy-runtime/runtime-cores}/adapters/index.ts +0 -0
  1246. /package/src/{runtimes → legacy-runtime/runtime-cores}/adapters/speech/WebSpeechSynthesisAdapter.ts +0 -0
  1247. /package/src/{runtimes → legacy-runtime/runtime-cores}/adapters/speech/index.ts +0 -0
  1248. /package/src/{runtimes → legacy-runtime/runtime-cores}/adapters/suggestion/index.ts +0 -0
  1249. /package/src/{runtimes → legacy-runtime/runtime-cores}/adapters/thread-history/MessageFormatAdapter.ts +0 -0
  1250. /package/src/{runtimes → legacy-runtime/runtime-cores}/adapters/thread-history/ThreadHistoryAdapter.ts +0 -0
  1251. /package/src/{runtimes → legacy-runtime/runtime-cores}/adapters/thread-history/index.ts +0 -0
  1252. /package/src/{runtimes → legacy-runtime/runtime-cores}/core/index.ts +0 -0
  1253. /package/src/{runtimes → legacy-runtime/runtime-cores}/external-store/ExternalStoreRuntimeCore.tsx +0 -0
  1254. /package/src/{runtimes → legacy-runtime/runtime-cores}/external-store/index.ts +0 -0
  1255. /package/src/{runtimes → legacy-runtime/runtime-cores}/index.ts +0 -0
  1256. /package/src/{runtimes → legacy-runtime/runtime-cores}/local/LocalRuntimeCore.tsx +0 -0
  1257. /package/src/{runtimes → legacy-runtime/runtime-cores}/local/LocalRuntimeOptions.tsx +0 -0
  1258. /package/src/{runtimes → legacy-runtime/runtime-cores}/local/index.ts +0 -0
  1259. /package/src/{runtimes → legacy-runtime/runtime-cores}/remote-thread-list/OptimisticState.ts +0 -0
  1260. /package/src/{runtimes → legacy-runtime/runtime-cores}/remote-thread-list/adapter/cloud.tsx +0 -0
  1261. /package/src/{runtimes → legacy-runtime/runtime-cores}/remote-thread-list/adapter/in-memory.tsx +0 -0
  1262. /package/src/{runtimes → legacy-runtime/runtime-cores}/remote-thread-list/index.ts +0 -0
@@ -6,16 +6,11 @@ import {
6
6
  useMemo
7
7
  } from "react";
8
8
  import {
9
- TextMessagePartProvider,
10
- useMessagePart,
11
- useMessagePartRuntime,
12
- useToolUIs
9
+ useAssistantState,
10
+ useAssistantApi,
11
+ PartByIndexProvider,
12
+ TextMessagePartProvider
13
13
  } from "../../context/index.js";
14
- import {
15
- useMessage,
16
- useMessageRuntime
17
- } from "../../context/react/MessageContext.js";
18
- import { MessagePartRuntimeProvider } from "../../context/providers/MessagePartRuntimeProvider.js";
19
14
  import { MessagePartPrimitiveText } from "../messagePart/MessagePartText.js";
20
15
  import { MessagePartPrimitiveImage } from "../messagePart/MessagePartImage.js";
21
16
  import { MessagePartPrimitiveInProgress } from "../messagePart/MessagePartInProgress.js";
@@ -52,8 +47,8 @@ var groupMessageParts = (messageTypes) => {
52
47
  return ranges;
53
48
  };
54
49
  var useMessagePartsGroups = () => {
55
- const messageTypes = useMessage(
56
- useShallow((m) => m.content.map((c) => c.type))
50
+ const messageTypes = useAssistantState(
51
+ useShallow((s) => s.message.parts.map((c) => c.type))
57
52
  );
58
53
  return useMemo(() => {
59
54
  if (messageTypes.length === 0) {
@@ -66,7 +61,11 @@ var ToolUIDisplay = ({
66
61
  Fallback,
67
62
  ...props
68
63
  }) => {
69
- const Render = useToolUIs((s) => s.getToolUI(props.toolName)) ?? Fallback;
64
+ const Render = useAssistantState(({ toolUIs }) => {
65
+ const Render2 = toolUIs[props.toolName] ?? Fallback;
66
+ if (Array.isArray(Render2)) return Render2[0];
67
+ return Render2;
68
+ });
70
69
  if (!Render) return null;
71
70
  return /* @__PURE__ */ jsx(Render, { ...props });
72
71
  };
@@ -93,17 +92,17 @@ var MessagePartComponent = ({
93
92
  tools = {}
94
93
  } = {}
95
94
  }) => {
96
- const MessagePartRuntime = useMessagePartRuntime();
97
- const part = useMessagePart();
95
+ const api = useAssistantApi();
96
+ const part = useAssistantState(({ part: part2 }) => part2);
98
97
  const type = part.type;
99
98
  if (type === "tool-call") {
100
- const addResult = (result) => MessagePartRuntime.addToolResult(result);
99
+ const addResult = (result) => api.part().addToolResult(result);
101
100
  if ("Override" in tools)
102
101
  return /* @__PURE__ */ jsx(tools.Override, { ...part, addResult });
103
102
  const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;
104
103
  return /* @__PURE__ */ jsx(ToolUIDisplay, { ...part, Fallback: Tool, addResult });
105
104
  }
106
- if (part.status.type === "requires-action")
105
+ if (part.status?.type === "requires-action")
107
106
  throw new Error("Encountered unexpected requires-action status");
108
107
  switch (type) {
109
108
  case "text":
@@ -125,24 +124,21 @@ var MessagePartComponent = ({
125
124
  };
126
125
  var MessagePrimitivePartByIndex = memo(
127
126
  ({ index, components }) => {
128
- const messageRuntime = useMessageRuntime();
129
- const runtime = useMemo(
130
- () => messageRuntime.getMessagePartByIndex(index),
131
- [messageRuntime, index]
132
- );
133
- return /* @__PURE__ */ jsx(MessagePartRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx(MessagePartComponent, { components }) });
127
+ return /* @__PURE__ */ jsx(PartByIndexProvider, { index, children: /* @__PURE__ */ jsx(MessagePartComponent, { components }) });
134
128
  },
135
129
  (prev, next) => prev.index === next.index && prev.components?.Text === next.components?.Text && prev.components?.Reasoning === next.components?.Reasoning && prev.components?.Source === next.components?.Source && prev.components?.Image === next.components?.Image && prev.components?.File === next.components?.File && prev.components?.Unstable_Audio === next.components?.Unstable_Audio && prev.components?.tools === next.components?.tools && prev.components?.ToolGroup === next.components?.ToolGroup
136
130
  );
137
131
  MessagePrimitivePartByIndex.displayName = "MessagePrimitive.PartByIndex";
138
- var COMPLETE_STATUS = Object.freeze({
139
- type: "complete"
140
- });
141
132
  var EmptyPartFallback = ({ status, component: Component }) => {
142
133
  return /* @__PURE__ */ jsx(TextMessagePartProvider, { text: "", isRunning: status.type === "running", children: /* @__PURE__ */ jsx(Component, { type: "text", text: "", status }) });
143
134
  };
135
+ var COMPLETE_STATUS = Object.freeze({
136
+ type: "complete"
137
+ });
144
138
  var EmptyPartsImpl = ({ components }) => {
145
- const status = useMessage((s) => s.status) ?? COMPLETE_STATUS;
139
+ const status = useAssistantState(
140
+ (s) => s.message.status ?? COMPLETE_STATUS
141
+ );
146
142
  if (components?.Empty) return /* @__PURE__ */ jsx(components.Empty, { status });
147
143
  return /* @__PURE__ */ jsx(
148
144
  EmptyPartFallback,
@@ -159,7 +155,9 @@ var EmptyParts = memo(
159
155
  var MessagePrimitiveParts = ({
160
156
  components
161
157
  }) => {
162
- const contentLength = useMessage((s) => s.content.length);
158
+ const contentLength = useAssistantState(
159
+ ({ message }) => message.parts.length
160
+ );
163
161
  const messageRanges = useMessagePartsGroups();
164
162
  const partsElements = useMemo(() => {
165
163
  if (contentLength === 0) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/message/MessageParts.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ComponentType,\n type FC,\n memo,\n PropsWithChildren,\n useMemo,\n} from \"react\";\nimport {\n TextMessagePartProvider,\n useMessagePart,\n useMessagePartRuntime,\n useToolUIs,\n} from \"../../context\";\nimport {\n useMessage,\n useMessageRuntime,\n} from \"../../context/react/MessageContext\";\nimport { MessagePartRuntimeProvider } from \"../../context/providers/MessagePartRuntimeProvider\";\nimport { MessagePartPrimitiveText } from \"../messagePart/MessagePartText\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\nimport type {\n Unstable_AudioMessagePartComponent,\n EmptyMessagePartComponent,\n TextMessagePartComponent,\n ImageMessagePartComponent,\n SourceMessagePartComponent,\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n FileMessagePartComponent,\n ReasoningMessagePartComponent,\n} from \"../../types/MessagePartComponentTypes\";\nimport { MessagePartPrimitiveInProgress } from \"../messagePart/MessagePartInProgress\";\nimport { MessagePartStatus } from \"../../types/AssistantTypes\";\nimport { useShallow } from \"zustand/shallow\";\n\ntype MessagePartRange =\n | { type: \"single\"; index: number }\n | { type: \"toolGroup\"; startIndex: number; endIndex: number };\n\n/**\n * Groups consecutive tool-call message parts into ranges.\n * Always groups tool calls, even if there's only one.\n */\nconst groupMessageParts = (\n messageTypes: readonly string[],\n): MessagePartRange[] => {\n const ranges: MessagePartRange[] = [];\n let currentToolGroupStart = -1;\n\n for (let i = 0; i < messageTypes.length; i++) {\n const type = messageTypes[i];\n\n if (type === \"tool-call\") {\n // Start a new tool group if we haven't started one\n if (currentToolGroupStart === -1) {\n currentToolGroupStart = i;\n }\n } else {\n // End current tool group if it exists\n if (currentToolGroupStart !== -1) {\n ranges.push({\n type: \"toolGroup\",\n startIndex: currentToolGroupStart,\n endIndex: i - 1,\n });\n currentToolGroupStart = -1;\n }\n\n // Add non-tool-call part individually\n ranges.push({ type: \"single\", index: i });\n }\n }\n\n // Handle any remaining tool group at the end\n if (currentToolGroupStart !== -1) {\n ranges.push({\n type: \"toolGroup\",\n startIndex: currentToolGroupStart,\n endIndex: messageTypes.length - 1,\n });\n }\n\n return ranges;\n};\n\nconst useMessagePartsGroups = (): MessagePartRange[] => {\n const messageTypes = useMessage(\n useShallow((m) => m.content.map((c) => c.type)),\n );\n\n return useMemo(() => {\n if (messageTypes.length === 0) {\n return [];\n }\n return groupMessageParts(messageTypes);\n }, [messageTypes]);\n};\n\nexport namespace MessagePrimitiveParts {\n export type Props = {\n /**\n * Component configuration for rendering different types of message content.\n *\n * You can provide custom components for each content type (text, image, file, etc.)\n * and configure tool rendering behavior. If not provided, default components will be used.\n */\n components?:\n | {\n /** Component for rendering empty messages */\n Empty?: EmptyMessagePartComponent | undefined;\n /** Component for rendering text content */\n Text?: TextMessagePartComponent | undefined;\n /** Component for rendering reasoning content (typically hidden) */\n Reasoning?: ReasoningMessagePartComponent | undefined;\n /** Component for rendering source content */\n Source?: SourceMessagePartComponent | undefined;\n /** Component for rendering image content */\n Image?: ImageMessagePartComponent | undefined;\n /** Component for rendering file content */\n File?: FileMessagePartComponent | undefined;\n /** Component for rendering audio content (experimental) */\n Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;\n /** Configuration for tool call rendering */\n tools?:\n | {\n /** Map of tool names to their specific components */\n by_name?:\n | Record<string, ToolCallMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unregistered tools */\n Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;\n }\n | {\n /** Override component that handles all tool calls */\n Override: ComponentType<ToolCallMessagePartProps>;\n }\n | undefined;\n\n /**\n * Component for rendering grouped consecutive tool calls.\n *\n * When provided, this component will automatically wrap consecutive tool-call\n * message parts, allowing you to create collapsible sections, custom styling,\n * or other grouped presentations for multiple tool calls.\n *\n * The component receives:\n * - `startIndex`: The index of the first tool call in the group\n * - `endIndex`: The index of the last tool call in the group\n * - `children`: The rendered tool call components\n *\n * @example\n * ```tsx\n * // Collapsible tool group\n * ToolGroup: ({ startIndex, endIndex, children }) => (\n * <details className=\"tool-group\">\n * <summary>\n * {endIndex - startIndex + 1} tool calls\n * </summary>\n * <div className=\"tool-group-content\">\n * {children}\n * </div>\n * </details>\n * )\n * ```\n *\n * @example\n * ```tsx\n * // Custom styled tool group with header\n * ToolGroup: ({ startIndex, endIndex, children }) => (\n * <div className=\"border rounded-lg p-4 my-2\">\n * <div className=\"text-sm text-gray-600 mb-2\">\n * Tool execution #{startIndex + 1}-{endIndex + 1}\n * </div>\n * <div className=\"space-y-2\">\n * {children}\n * </div>\n * </div>\n * )\n * ```\n *\n * @param startIndex - Index of the first tool call in the group\n * @param endIndex - Index of the last tool call in the group\n * @param children - Rendered tool call components to display within the group\n *\n * @deprecated This feature is still experimental and subject to change.\n */\n ToolGroup?: ComponentType<\n PropsWithChildren<{ startIndex: number; endIndex: number }>\n >;\n }\n | undefined;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallMessagePartComponent | undefined;\n} & ToolCallMessagePartProps) => {\n const Render = useToolUIs((s) => s.getToolUI(props.toolName)) ?? Fallback;\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst defaultComponents = {\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <MessagePartPrimitiveText />\n <MessagePartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </MessagePartPrimitiveInProgress>\n </p>\n ),\n Reasoning: () => null,\n Source: () => null,\n Image: () => <MessagePartPrimitiveImage />,\n File: () => null,\n Unstable_Audio: () => null,\n ToolGroup: ({ children }) => children,\n} satisfies MessagePrimitiveParts.Props[\"components\"];\n\ntype MessagePartComponentProps = {\n components: MessagePrimitiveParts.Props[\"components\"];\n};\n\nconst MessagePartComponent: FC<MessagePartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Reasoning = defaultComponents.Reasoning,\n Image = defaultComponents.Image,\n Source = defaultComponents.Source,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n } = {},\n}) => {\n const MessagePartRuntime = useMessagePartRuntime();\n\n const part = useMessagePart();\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = (result: any) => MessagePartRuntime.addToolResult(result);\n if (\"Override\" in tools)\n return <tools.Override {...part} addResult={addResult} />;\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return <ToolUIDisplay {...part} Fallback={Tool} addResult={addResult} />;\n }\n\n if (part.status.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n return <Text {...part} />;\n\n case \"reasoning\":\n return <Reasoning {...part} />;\n\n case \"source\":\n return <Source {...part} />;\n\n case \"image\":\n // eslint-disable-next-line jsx-a11y/alt-text\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n default:\n const unhandledType: never = type;\n throw new Error(`Unknown message part type: ${unhandledType}`);\n }\n};\n\nexport namespace MessagePrimitivePartByIndex {\n export type Props = {\n index: number;\n components: MessagePrimitiveParts.Props[\"components\"];\n };\n}\n\n/**\n * Renders a single message part at the specified index.\n *\n * This component provides direct access to render a specific message part\n * within the current message context, using the provided component configuration.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.PartByIndex\n * index={0}\n * components={{\n * Text: MyTextComponent,\n * Image: MyImageComponent\n * }}\n * />\n * ```\n */\nexport const MessagePrimitivePartByIndex: FC<MessagePrimitivePartByIndex.Props> =\n memo(\n ({ index, components }) => {\n const messageRuntime = useMessageRuntime();\n const runtime = useMemo(\n () => messageRuntime.getMessagePartByIndex(index),\n [messageRuntime, index],\n );\n\n return (\n <MessagePartRuntimeProvider runtime={runtime}>\n <MessagePartComponent components={components} />\n </MessagePartRuntimeProvider>\n );\n },\n (prev, next) =>\n prev.index === next.index &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Reasoning === next.components?.Reasoning &&\n prev.components?.Source === next.components?.Source &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.tools === next.components?.tools &&\n prev.components?.ToolGroup === next.components?.ToolGroup,\n );\n\nMessagePrimitivePartByIndex.displayName = \"MessagePrimitive.PartByIndex\";\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst EmptyPartFallback: FC<{\n status: MessagePartStatus;\n component: TextMessagePartComponent;\n}> = ({ status, component: Component }) => {\n return (\n <TextMessagePartProvider text=\"\" isRunning={status.type === \"running\"}>\n <Component type=\"text\" text=\"\" status={status} />\n </TextMessagePartProvider>\n );\n};\n\nconst EmptyPartsImpl: FC<MessagePartComponentProps> = ({ components }) => {\n const status =\n useMessage((s) => s.status as MessagePartStatus) ?? COMPLETE_STATUS;\n\n if (components?.Empty) return <components.Empty status={status} />;\n\n return (\n <EmptyPartFallback\n status={status}\n component={components?.Text ?? defaultComponents.Text}\n />\n );\n};\n\nconst EmptyParts = memo(\n EmptyPartsImpl,\n (prev, next) =>\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\n/**\n * Renders the parts of a message with support for multiple content types.\n *\n * This component automatically handles different types of message content including\n * text, images, files, tool calls, and more. It provides a flexible component\n * system for customizing how each content type is rendered.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.Parts\n * components={{\n * Text: ({ text }) => <p className=\"message-text\">{text}</p>,\n * Image: ({ image }) => <img src={image} alt=\"Message image\" />,\n * tools: {\n * by_name: {\n * calculator: CalculatorTool,\n * weather: WeatherTool,\n * },\n * Fallback: DefaultToolComponent\n * }\n * }}\n * />\n * ```\n */\nexport const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props> = ({\n components,\n}) => {\n const contentLength = useMessage((s) => s.content.length);\n const messageRanges = useMessagePartsGroups();\n\n const partsElements = useMemo(() => {\n if (contentLength === 0) {\n return <EmptyParts components={components} />;\n }\n\n return messageRanges.map((range) => {\n if (range.type === \"single\") {\n return (\n <MessagePrimitivePartByIndex\n key={range.index}\n index={range.index}\n components={components}\n />\n );\n } else {\n const ToolGroupComponent =\n components!.ToolGroup ?? defaultComponents.ToolGroup;\n return (\n <ToolGroupComponent\n key={range.startIndex}\n startIndex={range.startIndex}\n endIndex={range.endIndex}\n >\n {Array.from(\n { length: range.endIndex - range.startIndex + 1 },\n (_, i) => (\n <MessagePrimitivePartByIndex\n key={i}\n index={range.startIndex + i}\n components={components}\n />\n ),\n )}\n </ToolGroupComponent>\n );\n }\n });\n }, [messageRanges, components, contentLength]);\n\n return <>{partsElements}</>;\n};\n\nMessagePrimitiveParts.displayName = \"MessagePrimitive.Parts\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/message/MessageParts.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ComponentType,\n type FC,\n memo,\n PropsWithChildren,\n useMemo,\n} from \"react\";\nimport {\n useAssistantState,\n useAssistantApi,\n PartByIndexProvider,\n TextMessagePartProvider,\n} from \"../../context\";\nimport { MessagePartPrimitiveText } from \"../messagePart/MessagePartText\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\nimport type {\n Unstable_AudioMessagePartComponent,\n EmptyMessagePartComponent,\n TextMessagePartComponent,\n ImageMessagePartComponent,\n SourceMessagePartComponent,\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n FileMessagePartComponent,\n ReasoningMessagePartComponent,\n} from \"../../types/MessagePartComponentTypes\";\nimport { MessagePartPrimitiveInProgress } from \"../messagePart/MessagePartInProgress\";\nimport { MessagePartStatus } from \"../../types/AssistantTypes\";\nimport { useShallow } from \"zustand/shallow\";\n\ntype MessagePartRange =\n | { type: \"single\"; index: number }\n | { type: \"toolGroup\"; startIndex: number; endIndex: number };\n\n/**\n * Groups consecutive tool-call message parts into ranges.\n * Always groups tool calls, even if there's only one.\n */\nconst groupMessageParts = (\n messageTypes: readonly string[],\n): MessagePartRange[] => {\n const ranges: MessagePartRange[] = [];\n let currentToolGroupStart = -1;\n\n for (let i = 0; i < messageTypes.length; i++) {\n const type = messageTypes[i];\n\n if (type === \"tool-call\") {\n // Start a new tool group if we haven't started one\n if (currentToolGroupStart === -1) {\n currentToolGroupStart = i;\n }\n } else {\n // End current tool group if it exists\n if (currentToolGroupStart !== -1) {\n ranges.push({\n type: \"toolGroup\",\n startIndex: currentToolGroupStart,\n endIndex: i - 1,\n });\n currentToolGroupStart = -1;\n }\n\n // Add non-tool-call part individually\n ranges.push({ type: \"single\", index: i });\n }\n }\n\n // Handle any remaining tool group at the end\n if (currentToolGroupStart !== -1) {\n ranges.push({\n type: \"toolGroup\",\n startIndex: currentToolGroupStart,\n endIndex: messageTypes.length - 1,\n });\n }\n\n return ranges;\n};\n\nconst useMessagePartsGroups = (): MessagePartRange[] => {\n const messageTypes = useAssistantState(\n useShallow((s) => s.message.parts.map((c: any) => c.type)),\n );\n\n return useMemo(() => {\n if (messageTypes.length === 0) {\n return [];\n }\n return groupMessageParts(messageTypes);\n }, [messageTypes]);\n};\n\nexport namespace MessagePrimitiveParts {\n export type Props = {\n /**\n * Component configuration for rendering different types of message content.\n *\n * You can provide custom components for each content type (text, image, file, etc.)\n * and configure tool rendering behavior. If not provided, default components will be used.\n */\n components?:\n | {\n /** Component for rendering empty messages */\n Empty?: EmptyMessagePartComponent | undefined;\n /** Component for rendering text content */\n Text?: TextMessagePartComponent | undefined;\n /** Component for rendering reasoning content (typically hidden) */\n Reasoning?: ReasoningMessagePartComponent | undefined;\n /** Component for rendering source content */\n Source?: SourceMessagePartComponent | undefined;\n /** Component for rendering image content */\n Image?: ImageMessagePartComponent | undefined;\n /** Component for rendering file content */\n File?: FileMessagePartComponent | undefined;\n /** Component for rendering audio content (experimental) */\n Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;\n /** Configuration for tool call rendering */\n tools?:\n | {\n /** Map of tool names to their specific components */\n by_name?:\n | Record<string, ToolCallMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unregistered tools */\n Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;\n }\n | {\n /** Override component that handles all tool calls */\n Override: ComponentType<ToolCallMessagePartProps>;\n }\n | undefined;\n\n /**\n * Component for rendering grouped consecutive tool calls.\n *\n * When provided, this component will automatically wrap consecutive tool-call\n * message parts, allowing you to create collapsible sections, custom styling,\n * or other grouped presentations for multiple tool calls.\n *\n * The component receives:\n * - `startIndex`: The index of the first tool call in the group\n * - `endIndex`: The index of the last tool call in the group\n * - `children`: The rendered tool call components\n *\n * @example\n * ```tsx\n * // Collapsible tool group\n * ToolGroup: ({ startIndex, endIndex, children }) => (\n * <details className=\"tool-group\">\n * <summary>\n * {endIndex - startIndex + 1} tool calls\n * </summary>\n * <div className=\"tool-group-content\">\n * {children}\n * </div>\n * </details>\n * )\n * ```\n *\n * @example\n * ```tsx\n * // Custom styled tool group with header\n * ToolGroup: ({ startIndex, endIndex, children }) => (\n * <div className=\"border rounded-lg p-4 my-2\">\n * <div className=\"text-sm text-gray-600 mb-2\">\n * Tool execution #{startIndex + 1}-{endIndex + 1}\n * </div>\n * <div className=\"space-y-2\">\n * {children}\n * </div>\n * </div>\n * )\n * ```\n *\n * @param startIndex - Index of the first tool call in the group\n * @param endIndex - Index of the last tool call in the group\n * @param children - Rendered tool call components to display within the group\n *\n * @deprecated This feature is still experimental and subject to change.\n */\n ToolGroup?: ComponentType<\n PropsWithChildren<{ startIndex: number; endIndex: number }>\n >;\n }\n | undefined;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallMessagePartComponent | undefined;\n} & ToolCallMessagePartProps) => {\n const Render = useAssistantState(({ toolUIs }) => {\n const Render = toolUIs[props.toolName] ?? Fallback;\n if (Array.isArray(Render)) return Render[0];\n return Render;\n });\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst defaultComponents = {\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <MessagePartPrimitiveText />\n <MessagePartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </MessagePartPrimitiveInProgress>\n </p>\n ),\n Reasoning: () => null,\n Source: () => null,\n Image: () => <MessagePartPrimitiveImage />,\n File: () => null,\n Unstable_Audio: () => null,\n ToolGroup: ({ children }) => children,\n} satisfies MessagePrimitiveParts.Props[\"components\"];\n\ntype MessagePartComponentProps = {\n components: MessagePrimitiveParts.Props[\"components\"];\n};\n\nconst MessagePartComponent: FC<MessagePartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Reasoning = defaultComponents.Reasoning,\n Image = defaultComponents.Image,\n Source = defaultComponents.Source,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n } = {},\n}) => {\n const api = useAssistantApi();\n const part = useAssistantState(({ part }) => part);\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = (result: any) => api.part().addToolResult(result);\n if (\"Override\" in tools)\n return <tools.Override {...part} addResult={addResult} />;\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return <ToolUIDisplay {...part} Fallback={Tool} addResult={addResult} />;\n }\n\n if (part.status?.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n return <Text {...part} />;\n\n case \"reasoning\":\n return <Reasoning {...part} />;\n\n case \"source\":\n return <Source {...part} />;\n\n case \"image\":\n // eslint-disable-next-line jsx-a11y/alt-text\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n default:\n const unhandledType: never = type;\n throw new Error(`Unknown message part type: ${unhandledType}`);\n }\n};\n\nexport namespace MessagePrimitivePartByIndex {\n export type Props = {\n index: number;\n components: MessagePrimitiveParts.Props[\"components\"];\n };\n}\n\n/**\n * Renders a single message part at the specified index.\n *\n * This component provides direct access to render a specific message part\n * within the current message context, using the provided component configuration.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.PartByIndex\n * index={0}\n * components={{\n * Text: MyTextComponent,\n * Image: MyImageComponent\n * }}\n * />\n * ```\n */\nexport const MessagePrimitivePartByIndex: FC<MessagePrimitivePartByIndex.Props> =\n memo(\n ({ index, components }) => {\n return (\n <PartByIndexProvider index={index}>\n <MessagePartComponent components={components} />\n </PartByIndexProvider>\n );\n },\n (prev, next) =>\n prev.index === next.index &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Reasoning === next.components?.Reasoning &&\n prev.components?.Source === next.components?.Source &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.tools === next.components?.tools &&\n prev.components?.ToolGroup === next.components?.ToolGroup,\n );\n\nMessagePrimitivePartByIndex.displayName = \"MessagePrimitive.PartByIndex\";\n\nconst EmptyPartFallback: FC<{\n status: MessagePartStatus;\n component: TextMessagePartComponent;\n}> = ({ status, component: Component }) => {\n return (\n <TextMessagePartProvider text=\"\" isRunning={status.type === \"running\"}>\n <Component type=\"text\" text=\"\" status={status} />\n </TextMessagePartProvider>\n );\n};\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst EmptyPartsImpl: FC<MessagePartComponentProps> = ({ components }) => {\n const status = useAssistantState(\n (s) => (s.message.status ?? COMPLETE_STATUS) as MessagePartStatus,\n );\n\n if (components?.Empty) return <components.Empty status={status} />;\n\n return (\n <EmptyPartFallback\n status={status}\n component={components?.Text ?? defaultComponents.Text}\n />\n );\n};\n\nconst EmptyParts = memo(\n EmptyPartsImpl,\n (prev, next) =>\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\n/**\n * Renders the parts of a message with support for multiple content types.\n *\n * This component automatically handles different types of message content including\n * text, images, files, tool calls, and more. It provides a flexible component\n * system for customizing how each content type is rendered.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.Parts\n * components={{\n * Text: ({ text }) => <p className=\"message-text\">{text}</p>,\n * Image: ({ image }) => <img src={image} alt=\"Message image\" />,\n * tools: {\n * by_name: {\n * calculator: CalculatorTool,\n * weather: WeatherTool,\n * },\n * Fallback: DefaultToolComponent\n * }\n * }}\n * />\n * ```\n */\nexport const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props> = ({\n components,\n}) => {\n const contentLength = useAssistantState(\n ({ message }) => message.parts.length,\n );\n const messageRanges = useMessagePartsGroups();\n\n const partsElements = useMemo(() => {\n if (contentLength === 0) {\n return <EmptyParts components={components} />;\n }\n\n return messageRanges.map((range) => {\n if (range.type === \"single\") {\n return (\n <MessagePrimitivePartByIndex\n key={range.index}\n index={range.index}\n components={components}\n />\n );\n } else {\n const ToolGroupComponent =\n components!.ToolGroup ?? defaultComponents.ToolGroup;\n return (\n <ToolGroupComponent\n key={range.startIndex}\n startIndex={range.startIndex}\n endIndex={range.endIndex}\n >\n {Array.from(\n { length: range.endIndex - range.startIndex + 1 },\n (_, i) => (\n <MessagePrimitivePartByIndex\n key={i}\n index={range.startIndex + i}\n components={components}\n />\n ),\n )}\n </ToolGroupComponent>\n );\n }\n });\n }, [messageRanges, components, contentLength]);\n\n return <>{partsElements}</>;\n};\n\nMessagePrimitiveParts.displayName = \"MessagePrimitive.Parts\";\n"],"mappings":"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","names":["Render","part"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MessagePartsGrouped.d.ts","sourceRoot":"","sources":["../../../src/primitives/message/MessagePartsGrouped.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,EAAE,EAEP,iBAAiB,EAElB,MAAM,OAAO,CAAC;AAcf,OAAO,KAAK,EACV,kCAAkC,EAClC,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,uCAAuC,CAAC;AAI/C,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE,KAAK,gBAAgB,EAAE,CAAC;AAmD7E,yBAAiB,qCAAqC,CAAC;IACrD,KAAY,KAAK,GAAG;QAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA0CG;QACH,gBAAgB,EAAE,gBAAgB,CAAC;QAEnC;;;;;WAKG;QACH,UAAU,EACN;YACE,6CAA6C;YAC7C,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;YAC9C,2CAA2C;YAC3C,IAAI,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;YAC5C,mEAAmE;YACnE,SAAS,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;YACtD,6CAA6C;YAC7C,MAAM,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;YAChD,4CAA4C;YAC5C,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;YAC9C,2CAA2C;YAC3C,IAAI,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;YAC5C,2DAA2D;YAC3D,cAAc,CAAC,EAAE,kCAAkC,GAAG,SAAS,CAAC;YAChE,4CAA4C;YAC5C,KAAK,CAAC,EACF;gBACE,qDAAqD;gBACrD,OAAO,CAAC,EACJ,MAAM,CAAC,MAAM,EAAE,4BAA4B,GAAG,SAAS,CAAC,GACxD,SAAS,CAAC;gBACd,gDAAgD;gBAChD,QAAQ,CAAC,EAAE,aAAa,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC;aAChE,GACD;gBACE,qDAAqD;gBACrD,QAAQ,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;aACnD,GACD,SAAS,CAAC;YAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAgCG;YACH,KAAK,CAAC,EAAE,aAAa,CACnB,iBAAiB,CAAC;gBAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;gBAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;aACnB,CAAC,CACH,CAAC;SACH,GACD,SAAS,CAAC;KACf,CAAC;CACH;AA4JD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,qCAAqC,EAAE,EAAE,CACpD,qCAAqC,CAAC,KAAK,CAgC5C,CAAC;AAKF;;;;;GAKG;AACH,eAAO,MAAM,+CAA+C,EAAE,EAAE,CAC9D,IAAI,CAAC,qCAAqC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAStE,CAAC"}
1
+ {"version":3,"file":"MessagePartsGrouped.d.ts","sourceRoot":"","sources":["../../../src/primitives/message/MessagePartsGrouped.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,EAAE,EAEP,iBAAiB,EAElB,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EACV,kCAAkC,EAClC,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,uCAAuC,CAAC;AAI/C,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE,KAAK,gBAAgB,EAAE,CAAC;AAmD7E,yBAAiB,qCAAqC,CAAC;IACrD,KAAY,KAAK,GAAG;QAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA0CG;QACH,gBAAgB,EAAE,gBAAgB,CAAC;QAEnC;;;;;WAKG;QACH,UAAU,EACN;YACE,6CAA6C;YAC7C,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;YAC9C,2CAA2C;YAC3C,IAAI,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;YAC5C,mEAAmE;YACnE,SAAS,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;YACtD,6CAA6C;YAC7C,MAAM,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;YAChD,4CAA4C;YAC5C,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;YAC9C,2CAA2C;YAC3C,IAAI,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;YAC5C,2DAA2D;YAC3D,cAAc,CAAC,EAAE,kCAAkC,GAAG,SAAS,CAAC;YAChE,4CAA4C;YAC5C,KAAK,CAAC,EACF;gBACE,qDAAqD;gBACrD,OAAO,CAAC,EACJ,MAAM,CAAC,MAAM,EAAE,4BAA4B,GAAG,SAAS,CAAC,GACxD,SAAS,CAAC;gBACd,gDAAgD;gBAChD,QAAQ,CAAC,EAAE,aAAa,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC;aAChE,GACD;gBACE,qDAAqD;gBACrD,QAAQ,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;aACnD,GACD,SAAS,CAAC;YAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAgCG;YACH,KAAK,CAAC,EAAE,aAAa,CACnB,iBAAiB,CAAC;gBAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;gBAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;aACnB,CAAC,CACH,CAAC;SACH,GACD,SAAS,CAAC;KACf,CAAC;CACH;AA0JD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,qCAAqC,EAAE,EAAE,CACpD,qCAAqC,CAAC,KAAK,CAkC5C,CAAC;AAKF;;;;;GAKG;AACH,eAAO,MAAM,+CAA+C,EAAE,EAAE,CAC9D,IAAI,CAAC,qCAAqC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAStE,CAAC"}
@@ -6,16 +6,11 @@ import {
6
6
  useMemo
7
7
  } from "react";
8
8
  import {
9
- TextMessagePartProvider,
10
- useMessagePart,
11
- useMessagePartRuntime,
12
- useToolUIs
9
+ useAssistantState,
10
+ PartByIndexProvider,
11
+ useAssistantApi,
12
+ TextMessagePartProvider
13
13
  } from "../../context/index.js";
14
- import {
15
- useMessage,
16
- useMessageRuntime
17
- } from "../../context/react/MessageContext.js";
18
- import { MessagePartRuntimeProvider } from "../../context/providers/MessagePartRuntimeProvider.js";
19
14
  import { MessagePartPrimitiveText } from "../messagePart/MessagePartText.js";
20
15
  import { MessagePartPrimitiveImage } from "../messagePart/MessagePartImage.js";
21
16
  import { MessagePartPrimitiveInProgress } from "../messagePart/MessagePartInProgress.js";
@@ -38,7 +33,7 @@ var groupMessagePartsByParentId = (parts) => {
38
33
  return groups;
39
34
  };
40
35
  var useMessagePartsGrouped = (groupingFunction) => {
41
- const parts = useMessage((m) => m.content);
36
+ const parts = useAssistantState(({ message }) => message.parts);
42
37
  return useMemo(() => {
43
38
  if (parts.length === 0) {
44
39
  return [];
@@ -50,7 +45,11 @@ var ToolUIDisplay = ({
50
45
  Fallback,
51
46
  ...props
52
47
  }) => {
53
- const Render = useToolUIs((s) => s.getToolUI(props.toolName)) ?? Fallback;
48
+ const Render = useAssistantState(({ toolUIs }) => {
49
+ const Render2 = toolUIs[props.toolName] ?? Fallback;
50
+ if (Array.isArray(Render2)) return Render2[0];
51
+ return Render2;
52
+ });
54
53
  if (!Render) return null;
55
54
  return /* @__PURE__ */ jsx(Render, { ...props });
56
55
  };
@@ -77,17 +76,17 @@ var MessagePartComponent = ({
77
76
  tools = {}
78
77
  } = {}
79
78
  }) => {
80
- const MessagePartRuntime = useMessagePartRuntime();
81
- const part = useMessagePart();
79
+ const api = useAssistantApi();
80
+ const part = useAssistantState(({ part: part2 }) => part2);
82
81
  const type = part.type;
83
82
  if (type === "tool-call") {
84
- const addResult = (result) => MessagePartRuntime.addToolResult(result);
83
+ const addResult = (result) => api.part().addToolResult(result);
85
84
  if ("Override" in tools)
86
85
  return /* @__PURE__ */ jsx(tools.Override, { ...part, addResult });
87
86
  const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;
88
87
  return /* @__PURE__ */ jsx(ToolUIDisplay, { ...part, Fallback: Tool, addResult });
89
88
  }
90
- if (part.status.type === "requires-action")
89
+ if (part.status?.type === "requires-action")
91
90
  throw new Error("Encountered unexpected requires-action status");
92
91
  switch (type) {
93
92
  case "text":
@@ -108,25 +107,22 @@ var MessagePartComponent = ({
108
107
  }
109
108
  };
110
109
  var MessagePartImpl = ({ partIndex, components }) => {
111
- const messageRuntime = useMessageRuntime();
112
- const runtime = useMemo(
113
- () => messageRuntime.getMessagePartByIndex(partIndex),
114
- [messageRuntime, partIndex]
115
- );
116
- return /* @__PURE__ */ jsx(MessagePartRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx(MessagePartComponent, { components }) });
110
+ return /* @__PURE__ */ jsx(PartByIndexProvider, { index: partIndex, children: /* @__PURE__ */ jsx(MessagePartComponent, { components }) });
117
111
  };
118
112
  var MessagePart = memo(
119
113
  MessagePartImpl,
120
114
  (prev, next) => prev.partIndex === next.partIndex && prev.components?.Text === next.components?.Text && prev.components?.Reasoning === next.components?.Reasoning && prev.components?.Source === next.components?.Source && prev.components?.Image === next.components?.Image && prev.components?.File === next.components?.File && prev.components?.Unstable_Audio === next.components?.Unstable_Audio && prev.components?.tools === next.components?.tools && prev.components?.Group === next.components?.Group
121
115
  );
122
- var COMPLETE_STATUS = Object.freeze({
123
- type: "complete"
124
- });
125
116
  var EmptyPartFallback = ({ status, component: Component }) => {
126
117
  return /* @__PURE__ */ jsx(TextMessagePartProvider, { text: "", isRunning: status.type === "running", children: /* @__PURE__ */ jsx(Component, { type: "text", text: "", status }) });
127
118
  };
119
+ var COMPLETE_STATUS = Object.freeze({
120
+ type: "complete"
121
+ });
128
122
  var EmptyPartsImpl = ({ components }) => {
129
- const status = useMessage((s) => s.status) ?? COMPLETE_STATUS;
123
+ const status = useAssistantState(
124
+ (s) => s.message.status ?? COMPLETE_STATUS
125
+ );
130
126
  if (components?.Empty) return /* @__PURE__ */ jsx(components.Empty, { status });
131
127
  return /* @__PURE__ */ jsx(
132
128
  EmptyPartFallback,
@@ -141,7 +137,9 @@ var EmptyParts = memo(
141
137
  (prev, next) => prev.components?.Empty === next.components?.Empty && prev.components?.Text === next.components?.Text
142
138
  );
143
139
  var MessagePrimitiveUnstable_PartsGrouped = ({ groupingFunction, components }) => {
144
- const contentLength = useMessage((s) => s.content.length);
140
+ const contentLength = useAssistantState(
141
+ ({ message }) => message.parts.length
142
+ );
145
143
  const messageGroups = useMessagePartsGrouped(groupingFunction);
146
144
  const partsElements = useMemo(() => {
147
145
  if (contentLength === 0) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/message/MessagePartsGrouped.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ComponentType,\n type FC,\n memo,\n PropsWithChildren,\n useMemo,\n} from \"react\";\nimport {\n TextMessagePartProvider,\n useMessagePart,\n useMessagePartRuntime,\n useToolUIs,\n} from \"../../context\";\nimport {\n useMessage,\n useMessageRuntime,\n} from \"../../context/react/MessageContext\";\nimport { MessagePartRuntimeProvider } from \"../../context/providers/MessagePartRuntimeProvider\";\nimport { MessagePartPrimitiveText } from \"../messagePart/MessagePartText\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\nimport type {\n Unstable_AudioMessagePartComponent,\n EmptyMessagePartComponent,\n TextMessagePartComponent,\n ImageMessagePartComponent,\n SourceMessagePartComponent,\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n FileMessagePartComponent,\n ReasoningMessagePartComponent,\n} from \"../../types/MessagePartComponentTypes\";\nimport { MessagePartPrimitiveInProgress } from \"../messagePart/MessagePartInProgress\";\nimport { MessagePartStatus } from \"../../types/AssistantTypes\";\n\ntype MessagePartGroup = {\n groupKey: string | undefined;\n indices: number[];\n};\n\nexport type GroupingFunction = (parts: readonly any[]) => MessagePartGroup[];\n\n/**\n * Groups message parts by their parent ID.\n * Parts without a parent ID appear in their chronological position as individual groups.\n * Parts with the same parent ID are grouped together at the position of their first occurrence.\n */\nconst groupMessagePartsByParentId: GroupingFunction = (\n parts: readonly any[],\n): MessagePartGroup[] => {\n // Map maintains insertion order, so groups appear in order of first occurrence\n const groupMap = new Map<string, number[]>();\n\n // Process each part in order\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const parentId = part?.parentId as string | undefined;\n\n // For parts without parentId, assign a unique group ID to maintain their position\n const groupId = parentId ?? `__ungrouped_${i}`;\n\n // Get or create the indices array for this group\n const indices = groupMap.get(groupId) ?? [];\n indices.push(i);\n groupMap.set(groupId, indices);\n }\n\n // Convert map to array of groups\n const groups: MessagePartGroup[] = [];\n for (const [groupId, indices] of groupMap) {\n // Extract parentId (undefined for ungrouped parts)\n const groupKey = groupId.startsWith(\"__ungrouped_\") ? undefined : groupId;\n groups.push({ groupKey, indices });\n }\n\n return groups;\n};\n\nconst useMessagePartsGrouped = (\n groupingFunction: GroupingFunction,\n): MessagePartGroup[] => {\n const parts = useMessage((m) => m.content);\n\n return useMemo(() => {\n if (parts.length === 0) {\n return [];\n }\n return groupingFunction(parts);\n }, [parts, groupingFunction]);\n};\n\nexport namespace MessagePrimitiveUnstable_PartsGrouped {\n export type Props = {\n /**\n * Function that takes an array of message parts and returns an array of groups.\n * Each group contains a key (for identification) and an array of indices.\n *\n * @example\n * ```tsx\n * // Group by parent ID (default behavior)\n * groupingFunction={(parts) => {\n * const groups = new Map<string, number[]>();\n * parts.forEach((part, i) => {\n * const key = part.parentId ?? `__ungrouped_${i}`;\n * const indices = groups.get(key) ?? [];\n * indices.push(i);\n * groups.set(key, indices);\n * });\n * return Array.from(groups.entries()).map(([key, indices]) => ({\n * key: key.startsWith(\"__ungrouped_\") ? undefined : key,\n * indices\n * }));\n * }}\n * ```\n *\n * @example\n * ```tsx\n * // Group by tool name\n * import { groupMessagePartsByToolName } from \"@assistant-ui/react\";\n *\n * <MessagePrimitive.Unstable_PartsGrouped\n * groupingFunction={groupMessagePartsByToolName}\n * components={{\n * Group: ({ key, indices, children }) => {\n * if (!key) return <>{children}</>;\n * return (\n * <div className=\"tool-group\">\n * <h4>Tool: {key}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n */\n groupingFunction: GroupingFunction;\n\n /**\n * Component configuration for rendering different types of message content.\n *\n * You can provide custom components for each content type (text, image, file, etc.)\n * and configure tool rendering behavior. If not provided, default components will be used.\n */\n components:\n | {\n /** Component for rendering empty messages */\n Empty?: EmptyMessagePartComponent | undefined;\n /** Component for rendering text content */\n Text?: TextMessagePartComponent | undefined;\n /** Component for rendering reasoning content (typically hidden) */\n Reasoning?: ReasoningMessagePartComponent | undefined;\n /** Component for rendering source content */\n Source?: SourceMessagePartComponent | undefined;\n /** Component for rendering image content */\n Image?: ImageMessagePartComponent | undefined;\n /** Component for rendering file content */\n File?: FileMessagePartComponent | undefined;\n /** Component for rendering audio content (experimental) */\n Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;\n /** Configuration for tool call rendering */\n tools?:\n | {\n /** Map of tool names to their specific components */\n by_name?:\n | Record<string, ToolCallMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unregistered tools */\n Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;\n }\n | {\n /** Override component that handles all tool calls */\n Override: ComponentType<ToolCallMessagePartProps>;\n }\n | undefined;\n\n /**\n * Component for rendering grouped message parts.\n *\n * When provided, this component will automatically wrap message parts that share\n * the same group key as determined by the groupingFunction.\n *\n * The component receives:\n * - `groupKey`: The group key (or undefined for ungrouped parts)\n * - `indices`: Array of indices for the parts in this group\n * - `children`: The rendered message part components\n *\n * @example\n * ```tsx\n * // Collapsible group\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <details className=\"message-group\">\n * <summary>\n * Group {groupKey} ({indices.length} parts)\n * </summary>\n * <div className=\"group-content\">\n * {children}\n * </div>\n * </details>\n * );\n * }\n * ```\n *\n * @param groupKey - The group key (undefined for ungrouped parts)\n * @param indices - Array of indices for the parts in this group\n * @param children - Rendered message part components to display within the group\n */\n Group?: ComponentType<\n PropsWithChildren<{\n groupKey: string | undefined;\n indices: number[];\n }>\n >;\n }\n | undefined;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallMessagePartComponent | undefined;\n} & ToolCallMessagePartProps) => {\n const Render = useToolUIs((s) => s.getToolUI(props.toolName)) ?? Fallback;\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst defaultComponents = {\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <MessagePartPrimitiveText />\n <MessagePartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </MessagePartPrimitiveInProgress>\n </p>\n ),\n Reasoning: () => null,\n Source: () => null,\n Image: () => <MessagePartPrimitiveImage />,\n File: () => null,\n Unstable_Audio: () => null,\n Group: ({ children }) => children,\n} satisfies MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n\ntype MessagePartComponentProps = {\n components: MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n};\n\nconst MessagePartComponent: FC<MessagePartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Reasoning = defaultComponents.Reasoning,\n Image = defaultComponents.Image,\n Source = defaultComponents.Source,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n } = {},\n}) => {\n const MessagePartRuntime = useMessagePartRuntime();\n\n const part = useMessagePart();\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = (result: any) => MessagePartRuntime.addToolResult(result);\n if (\"Override\" in tools)\n return <tools.Override {...part} addResult={addResult} />;\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return <ToolUIDisplay {...part} Fallback={Tool} addResult={addResult} />;\n }\n\n if (part.status.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n return <Text {...part} />;\n\n case \"reasoning\":\n return <Reasoning {...part} />;\n\n case \"source\":\n return <Source {...part} />;\n\n case \"image\":\n // eslint-disable-next-line jsx-a11y/alt-text\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n default:\n const unhandledType: never = type;\n throw new Error(`Unknown message part type: ${unhandledType}`);\n }\n};\n\ntype MessagePartProps = {\n partIndex: number;\n components: MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n};\n\nconst MessagePartImpl: FC<MessagePartProps> = ({ partIndex, components }) => {\n const messageRuntime = useMessageRuntime();\n const runtime = useMemo(\n () => messageRuntime.getMessagePartByIndex(partIndex),\n [messageRuntime, partIndex],\n );\n\n return (\n <MessagePartRuntimeProvider runtime={runtime}>\n <MessagePartComponent components={components} />\n </MessagePartRuntimeProvider>\n );\n};\n\nconst MessagePart = memo(\n MessagePartImpl,\n (prev, next) =>\n prev.partIndex === next.partIndex &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Reasoning === next.components?.Reasoning &&\n prev.components?.Source === next.components?.Source &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.tools === next.components?.tools &&\n prev.components?.Group === next.components?.Group,\n);\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst EmptyPartFallback: FC<{\n status: MessagePartStatus;\n component: TextMessagePartComponent;\n}> = ({ status, component: Component }) => {\n return (\n <TextMessagePartProvider text=\"\" isRunning={status.type === \"running\"}>\n <Component type=\"text\" text=\"\" status={status} />\n </TextMessagePartProvider>\n );\n};\n\nconst EmptyPartsImpl: FC<MessagePartComponentProps> = ({ components }) => {\n const status =\n useMessage((s) => s.status as MessagePartStatus) ?? COMPLETE_STATUS;\n\n if (components?.Empty) return <components.Empty status={status} />;\n\n return (\n <EmptyPartFallback\n status={status}\n component={components?.Text ?? defaultComponents.Text}\n />\n );\n};\n\nconst EmptyParts = memo(\n EmptyPartsImpl,\n (prev, next) =>\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\n/**\n * Renders the parts of a message grouped by a custom grouping function.\n *\n * This component allows you to group message parts based on any criteria you define.\n * The grouping function receives all message parts and returns an array of groups,\n * where each group has a key and an array of part indices.\n *\n * @example\n * ```tsx\n * // Group by parent ID (default behavior)\n * <MessagePrimitive.Unstable_PartsGrouped\n * components={{\n * Text: ({ text }) => <p className=\"message-text\">{text}</p>,\n * Image: ({ image }) => <img src={image} alt=\"Message image\" />,\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <div className=\"parent-group border rounded p-4\">\n * <h4>Parent ID: {groupKey}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Group by tool name\n * import { groupMessagePartsByToolName } from \"@assistant-ui/react\";\n *\n * <MessagePrimitive.Unstable_PartsGrouped\n * groupingFunction={groupMessagePartsByToolName}\n * components={{\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <div className=\"tool-group\">\n * <h4>Tool: {groupKey}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n */\nexport const MessagePrimitiveUnstable_PartsGrouped: FC<\n MessagePrimitiveUnstable_PartsGrouped.Props\n> = ({ groupingFunction, components }) => {\n const contentLength = useMessage((s) => s.content.length);\n const messageGroups = useMessagePartsGrouped(groupingFunction);\n\n const partsElements = useMemo(() => {\n if (contentLength === 0) {\n return <EmptyParts components={components} />;\n }\n\n return messageGroups.map((group, groupIndex) => {\n const GroupComponent = components?.Group ?? defaultComponents.Group;\n\n return (\n <GroupComponent\n key={`group-${groupIndex}-${group.groupKey ?? \"ungrouped\"}`}\n groupKey={group.groupKey}\n indices={group.indices}\n >\n {group.indices.map((partIndex) => (\n <MessagePart\n key={partIndex}\n partIndex={partIndex}\n components={components}\n />\n ))}\n </GroupComponent>\n );\n });\n }, [messageGroups, components, contentLength]);\n\n return <>{partsElements}</>;\n};\n\nMessagePrimitiveUnstable_PartsGrouped.displayName =\n \"MessagePrimitive.Unstable_PartsGrouped\";\n\n/**\n * Renders the parts of a message grouped by their parent ID.\n * This is a convenience wrapper around Unstable_PartsGrouped with parent ID grouping.\n *\n * @deprecated Use MessagePrimitive.Unstable_PartsGrouped instead for more flexibility\n */\nexport const MessagePrimitiveUnstable_PartsGroupedByParentId: FC<\n Omit<MessagePrimitiveUnstable_PartsGrouped.Props, \"groupingFunction\">\n> = ({ components, ...props }) => {\n return (\n <MessagePrimitiveUnstable_PartsGrouped\n {...props}\n components={components}\n groupingFunction={groupMessagePartsByParentId}\n />\n );\n};\n\nMessagePrimitiveUnstable_PartsGroupedByParentId.displayName =\n \"MessagePrimitive.Unstable_PartsGroupedByParentId\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/message/MessagePartsGrouped.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ComponentType,\n type FC,\n memo,\n PropsWithChildren,\n useMemo,\n} from \"react\";\nimport {\n useAssistantState,\n PartByIndexProvider,\n useAssistantApi,\n TextMessagePartProvider,\n} from \"../../context\";\nimport { MessagePartPrimitiveText } from \"../messagePart/MessagePartText\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\nimport type {\n Unstable_AudioMessagePartComponent,\n EmptyMessagePartComponent,\n TextMessagePartComponent,\n ImageMessagePartComponent,\n SourceMessagePartComponent,\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n FileMessagePartComponent,\n ReasoningMessagePartComponent,\n} from \"../../types/MessagePartComponentTypes\";\nimport { MessagePartPrimitiveInProgress } from \"../messagePart/MessagePartInProgress\";\nimport { MessagePartStatus } from \"../../types/AssistantTypes\";\n\ntype MessagePartGroup = {\n groupKey: string | undefined;\n indices: number[];\n};\n\nexport type GroupingFunction = (parts: readonly any[]) => MessagePartGroup[];\n\n/**\n * Groups message parts by their parent ID.\n * Parts without a parent ID appear in their chronological position as individual groups.\n * Parts with the same parent ID are grouped together at the position of their first occurrence.\n */\nconst groupMessagePartsByParentId: GroupingFunction = (\n parts: readonly any[],\n): MessagePartGroup[] => {\n // Map maintains insertion order, so groups appear in order of first occurrence\n const groupMap = new Map<string, number[]>();\n\n // Process each part in order\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const parentId = part?.parentId as string | undefined;\n\n // For parts without parentId, assign a unique group ID to maintain their position\n const groupId = parentId ?? `__ungrouped_${i}`;\n\n // Get or create the indices array for this group\n const indices = groupMap.get(groupId) ?? [];\n indices.push(i);\n groupMap.set(groupId, indices);\n }\n\n // Convert map to array of groups\n const groups: MessagePartGroup[] = [];\n for (const [groupId, indices] of groupMap) {\n // Extract parentId (undefined for ungrouped parts)\n const groupKey = groupId.startsWith(\"__ungrouped_\") ? undefined : groupId;\n groups.push({ groupKey, indices });\n }\n\n return groups;\n};\n\nconst useMessagePartsGrouped = (\n groupingFunction: GroupingFunction,\n): MessagePartGroup[] => {\n const parts = useAssistantState(({ message }) => message.parts);\n\n return useMemo(() => {\n if (parts.length === 0) {\n return [];\n }\n return groupingFunction(parts);\n }, [parts, groupingFunction]);\n};\n\nexport namespace MessagePrimitiveUnstable_PartsGrouped {\n export type Props = {\n /**\n * Function that takes an array of message parts and returns an array of groups.\n * Each group contains a key (for identification) and an array of indices.\n *\n * @example\n * ```tsx\n * // Group by parent ID (default behavior)\n * groupingFunction={(parts) => {\n * const groups = new Map<string, number[]>();\n * parts.forEach((part, i) => {\n * const key = part.parentId ?? `__ungrouped_${i}`;\n * const indices = groups.get(key) ?? [];\n * indices.push(i);\n * groups.set(key, indices);\n * });\n * return Array.from(groups.entries()).map(([key, indices]) => ({\n * key: key.startsWith(\"__ungrouped_\") ? undefined : key,\n * indices\n * }));\n * }}\n * ```\n *\n * @example\n * ```tsx\n * // Group by tool name\n * import { groupMessagePartsByToolName } from \"@assistant-ui/react\";\n *\n * <MessagePrimitive.Unstable_PartsGrouped\n * groupingFunction={groupMessagePartsByToolName}\n * components={{\n * Group: ({ key, indices, children }) => {\n * if (!key) return <>{children}</>;\n * return (\n * <div className=\"tool-group\">\n * <h4>Tool: {key}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n */\n groupingFunction: GroupingFunction;\n\n /**\n * Component configuration for rendering different types of message content.\n *\n * You can provide custom components for each content type (text, image, file, etc.)\n * and configure tool rendering behavior. If not provided, default components will be used.\n */\n components:\n | {\n /** Component for rendering empty messages */\n Empty?: EmptyMessagePartComponent | undefined;\n /** Component for rendering text content */\n Text?: TextMessagePartComponent | undefined;\n /** Component for rendering reasoning content (typically hidden) */\n Reasoning?: ReasoningMessagePartComponent | undefined;\n /** Component for rendering source content */\n Source?: SourceMessagePartComponent | undefined;\n /** Component for rendering image content */\n Image?: ImageMessagePartComponent | undefined;\n /** Component for rendering file content */\n File?: FileMessagePartComponent | undefined;\n /** Component for rendering audio content (experimental) */\n Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;\n /** Configuration for tool call rendering */\n tools?:\n | {\n /** Map of tool names to their specific components */\n by_name?:\n | Record<string, ToolCallMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unregistered tools */\n Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;\n }\n | {\n /** Override component that handles all tool calls */\n Override: ComponentType<ToolCallMessagePartProps>;\n }\n | undefined;\n\n /**\n * Component for rendering grouped message parts.\n *\n * When provided, this component will automatically wrap message parts that share\n * the same group key as determined by the groupingFunction.\n *\n * The component receives:\n * - `groupKey`: The group key (or undefined for ungrouped parts)\n * - `indices`: Array of indices for the parts in this group\n * - `children`: The rendered message part components\n *\n * @example\n * ```tsx\n * // Collapsible group\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <details className=\"message-group\">\n * <summary>\n * Group {groupKey} ({indices.length} parts)\n * </summary>\n * <div className=\"group-content\">\n * {children}\n * </div>\n * </details>\n * );\n * }\n * ```\n *\n * @param groupKey - The group key (undefined for ungrouped parts)\n * @param indices - Array of indices for the parts in this group\n * @param children - Rendered message part components to display within the group\n */\n Group?: ComponentType<\n PropsWithChildren<{\n groupKey: string | undefined;\n indices: number[];\n }>\n >;\n }\n | undefined;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallMessagePartComponent | undefined;\n} & ToolCallMessagePartProps) => {\n const Render = useAssistantState(({ toolUIs }) => {\n const Render = toolUIs[props.toolName] ?? Fallback;\n if (Array.isArray(Render)) return Render[0];\n return Render;\n });\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst defaultComponents = {\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <MessagePartPrimitiveText />\n <MessagePartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </MessagePartPrimitiveInProgress>\n </p>\n ),\n Reasoning: () => null,\n Source: () => null,\n Image: () => <MessagePartPrimitiveImage />,\n File: () => null,\n Unstable_Audio: () => null,\n Group: ({ children }) => children,\n} satisfies MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n\ntype MessagePartComponentProps = {\n components: MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n};\n\nconst MessagePartComponent: FC<MessagePartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Reasoning = defaultComponents.Reasoning,\n Image = defaultComponents.Image,\n Source = defaultComponents.Source,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n } = {},\n}) => {\n const api = useAssistantApi();\n const part = useAssistantState(({ part }) => part);\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = (result: any) => api.part().addToolResult(result);\n if (\"Override\" in tools)\n return <tools.Override {...part} addResult={addResult} />;\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return <ToolUIDisplay {...part} Fallback={Tool} addResult={addResult} />;\n }\n\n if (part.status?.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n return <Text {...part} />;\n\n case \"reasoning\":\n return <Reasoning {...part} />;\n\n case \"source\":\n return <Source {...part} />;\n\n case \"image\":\n // eslint-disable-next-line jsx-a11y/alt-text\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n default:\n const unhandledType: never = type;\n throw new Error(`Unknown message part type: ${unhandledType}`);\n }\n};\n\ntype MessagePartProps = {\n partIndex: number;\n components: MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n};\n\nconst MessagePartImpl: FC<MessagePartProps> = ({ partIndex, components }) => {\n return (\n <PartByIndexProvider index={partIndex}>\n <MessagePartComponent components={components} />\n </PartByIndexProvider>\n );\n};\n\nconst MessagePart = memo(\n MessagePartImpl,\n (prev, next) =>\n prev.partIndex === next.partIndex &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Reasoning === next.components?.Reasoning &&\n prev.components?.Source === next.components?.Source &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.tools === next.components?.tools &&\n prev.components?.Group === next.components?.Group,\n);\n\nconst EmptyPartFallback: FC<{\n status: MessagePartStatus;\n component: TextMessagePartComponent;\n}> = ({ status, component: Component }) => {\n return (\n <TextMessagePartProvider text=\"\" isRunning={status.type === \"running\"}>\n <Component type=\"text\" text=\"\" status={status} />\n </TextMessagePartProvider>\n );\n};\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst EmptyPartsImpl: FC<MessagePartComponentProps> = ({ components }) => {\n const status = useAssistantState(\n (s) => (s.message.status ?? COMPLETE_STATUS) as MessagePartStatus,\n );\n\n if (components?.Empty) return <components.Empty status={status} />;\n\n return (\n <EmptyPartFallback\n status={status}\n component={components?.Text ?? defaultComponents.Text}\n />\n );\n};\n\nconst EmptyParts = memo(\n EmptyPartsImpl,\n (prev, next) =>\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\n/**\n * Renders the parts of a message grouped by a custom grouping function.\n *\n * This component allows you to group message parts based on any criteria you define.\n * The grouping function receives all message parts and returns an array of groups,\n * where each group has a key and an array of part indices.\n *\n * @example\n * ```tsx\n * // Group by parent ID (default behavior)\n * <MessagePrimitive.Unstable_PartsGrouped\n * components={{\n * Text: ({ text }) => <p className=\"message-text\">{text}</p>,\n * Image: ({ image }) => <img src={image} alt=\"Message image\" />,\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <div className=\"parent-group border rounded p-4\">\n * <h4>Parent ID: {groupKey}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Group by tool name\n * import { groupMessagePartsByToolName } from \"@assistant-ui/react\";\n *\n * <MessagePrimitive.Unstable_PartsGrouped\n * groupingFunction={groupMessagePartsByToolName}\n * components={{\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <div className=\"tool-group\">\n * <h4>Tool: {groupKey}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n */\nexport const MessagePrimitiveUnstable_PartsGrouped: FC<\n MessagePrimitiveUnstable_PartsGrouped.Props\n> = ({ groupingFunction, components }) => {\n const contentLength = useAssistantState(\n ({ message }) => message.parts.length,\n );\n const messageGroups = useMessagePartsGrouped(groupingFunction);\n\n const partsElements = useMemo(() => {\n if (contentLength === 0) {\n return <EmptyParts components={components} />;\n }\n\n return messageGroups.map((group, groupIndex) => {\n const GroupComponent = components?.Group ?? defaultComponents.Group;\n\n return (\n <GroupComponent\n key={`group-${groupIndex}-${group.groupKey ?? \"ungrouped\"}`}\n groupKey={group.groupKey}\n indices={group.indices}\n >\n {group.indices.map((partIndex) => (\n <MessagePart\n key={partIndex}\n partIndex={partIndex}\n components={components}\n />\n ))}\n </GroupComponent>\n );\n });\n }, [messageGroups, components, contentLength]);\n\n return <>{partsElements}</>;\n};\n\nMessagePrimitiveUnstable_PartsGrouped.displayName =\n \"MessagePrimitive.Unstable_PartsGrouped\";\n\n/**\n * Renders the parts of a message grouped by their parent ID.\n * This is a convenience wrapper around Unstable_PartsGrouped with parent ID grouping.\n *\n * @deprecated Use MessagePrimitive.Unstable_PartsGrouped instead for more flexibility\n */\nexport const MessagePrimitiveUnstable_PartsGroupedByParentId: FC<\n Omit<MessagePrimitiveUnstable_PartsGrouped.Props, \"groupingFunction\">\n> = ({ components, ...props }) => {\n return (\n <MessagePrimitiveUnstable_PartsGrouped\n {...props}\n components={components}\n groupingFunction={groupMessagePartsByParentId}\n />\n );\n};\n\nMessagePrimitiveUnstable_PartsGroupedByParentId.displayName =\n \"MessagePrimitive.Unstable_PartsGroupedByParentId\";\n"],"mappings":"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","names":["Render","part"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageRoot.d.ts","sourceRoot":"","sources":["../../../src/primitives/message/MessageRoot.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EACL,KAAK,YAAY,EAEjB,wBAAwB,EAEzB,MAAM,OAAO,CAAC;AAiCf,yBAAiB,oBAAoB,CAAC;IACpC,KAAY,OAAO,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACzD;;;OAGG;IACH,KAAY,KAAK,GAAG,wBAAwB,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;CACpE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oBAAoB;;0DAQ/B,CAAC"}
1
+ {"version":3,"file":"MessageRoot.d.ts","sourceRoot":"","sources":["../../../src/primitives/message/MessageRoot.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EACL,KAAK,YAAY,EAEjB,wBAAwB,EAEzB,MAAM,OAAO,CAAC;AAmCf,yBAAiB,oBAAoB,CAAC;IACpC,KAAY,OAAO,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACzD;;;OAGG;IACH,KAAY,KAAK,GAAG,wBAAwB,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;CACpE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oBAAoB;;0DAQ/B,CAAC"}
@@ -6,30 +6,31 @@ import {
6
6
  forwardRef,
7
7
  useCallback
8
8
  } from "react";
9
- import { useMessageUtilsStore } from "../../context/react/MessageContext.js";
9
+ import { useAssistantApi, useAssistantState } from "../../context/index.js";
10
10
  import { useManagedRef } from "../../utils/hooks/useManagedRef.js";
11
11
  import { useComposedRefs } from "@radix-ui/react-compose-refs";
12
12
  import { jsx } from "react/jsx-runtime";
13
13
  var useIsHoveringRef = () => {
14
- const messageUtilsStore = useMessageUtilsStore();
14
+ const api = useAssistantApi();
15
+ const message = useAssistantState(() => api.message());
15
16
  const callbackRef = useCallback(
16
17
  (el) => {
17
- const setIsHovering = messageUtilsStore.getState().setIsHovering;
18
18
  const handleMouseEnter = () => {
19
- setIsHovering(true);
19
+ message.setIsHovering(true);
20
20
  };
21
21
  const handleMouseLeave = () => {
22
- setIsHovering(false);
22
+ message.setIsHovering(false);
23
23
  };
24
24
  el.addEventListener("mouseenter", handleMouseEnter);
25
25
  el.addEventListener("mouseleave", handleMouseLeave);
26
+ if (el.matches(":hover")) message.setIsHovering(true);
26
27
  return () => {
27
28
  el.removeEventListener("mouseenter", handleMouseEnter);
28
29
  el.removeEventListener("mouseleave", handleMouseLeave);
29
- setIsHovering(false);
30
+ message.setIsHovering(false);
30
31
  };
31
32
  },
32
- [messageUtilsStore]
33
+ [message]
33
34
  );
34
35
  return useManagedRef(callbackRef);
35
36
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/message/MessageRoot.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport {\n type ComponentRef,\n forwardRef,\n ComponentPropsWithoutRef,\n useCallback,\n} from \"react\";\nimport { useMessageUtilsStore } from \"../../context/react/MessageContext\";\nimport { useManagedRef } from \"../../utils/hooks/useManagedRef\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\n\nconst useIsHoveringRef = () => {\n const messageUtilsStore = useMessageUtilsStore();\n const callbackRef = useCallback(\n (el: HTMLElement) => {\n const setIsHovering = messageUtilsStore.getState().setIsHovering;\n\n const handleMouseEnter = () => {\n setIsHovering(true);\n };\n const handleMouseLeave = () => {\n setIsHovering(false);\n };\n\n el.addEventListener(\"mouseenter\", handleMouseEnter);\n el.addEventListener(\"mouseleave\", handleMouseLeave);\n\n return () => {\n el.removeEventListener(\"mouseenter\", handleMouseEnter);\n el.removeEventListener(\"mouseleave\", handleMouseLeave);\n setIsHovering(false);\n };\n },\n [messageUtilsStore],\n );\n\n return useManagedRef(callbackRef);\n};\n\nexport namespace MessagePrimitiveRoot {\n export type Element = ComponentRef<typeof Primitive.div>;\n /**\n * Props for the MessagePrimitive.Root component.\n * Accepts all standard div element props.\n */\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\n/**\n * The root container component for a message.\n *\n * This component provides the foundational wrapper for message content and handles\n * hover state management for the message. It automatically tracks when the user\n * is hovering over the message, which can be used by child components like action bars.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.Root>\n * <MessagePrimitive.Content />\n * <ActionBarPrimitive.Root>\n * <ActionBarPrimitive.Copy />\n * <ActionBarPrimitive.Edit />\n * </ActionBarPrimitive.Root>\n * </MessagePrimitive.Root>\n * ```\n */\nexport const MessagePrimitiveRoot = forwardRef<\n MessagePrimitiveRoot.Element,\n MessagePrimitiveRoot.Props\n>((props, forwardRef) => {\n const isHoveringRef = useIsHoveringRef();\n const ref = useComposedRefs<HTMLDivElement>(forwardRef, isHoveringRef);\n\n return <Primitive.div {...props} ref={ref} />;\n});\n\nMessagePrimitiveRoot.displayName = \"MessagePrimitive.Root\";\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B;AAAA,EAEE;AAAA,EAEA;AAAA,OACK;AACP,SAAS,4BAA4B;AACrC,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAgEvB;AA9DT,IAAM,mBAAmB,MAAM;AAC7B,QAAM,oBAAoB,qBAAqB;AAC/C,QAAM,cAAc;AAAA,IAClB,CAAC,OAAoB;AACnB,YAAM,gBAAgB,kBAAkB,SAAS,EAAE;AAEnD,YAAM,mBAAmB,MAAM;AAC7B,sBAAc,IAAI;AAAA,MACpB;AACA,YAAM,mBAAmB,MAAM;AAC7B,sBAAc,KAAK;AAAA,MACrB;AAEA,SAAG,iBAAiB,cAAc,gBAAgB;AAClD,SAAG,iBAAiB,cAAc,gBAAgB;AAElD,aAAO,MAAM;AACX,WAAG,oBAAoB,cAAc,gBAAgB;AACrD,WAAG,oBAAoB,cAAc,gBAAgB;AACrD,sBAAc,KAAK;AAAA,MACrB;AAAA,IACF;AAAA,IACA,CAAC,iBAAiB;AAAA,EACpB;AAEA,SAAO,cAAc,WAAW;AAClC;AA6BO,IAAM,uBAAuB,WAGlC,CAAC,OAAOA,gBAAe;AACvB,QAAM,gBAAgB,iBAAiB;AACvC,QAAM,MAAM,gBAAgCA,aAAY,aAAa;AAErE,SAAO,oBAAC,UAAU,KAAV,EAAe,GAAG,OAAO,KAAU;AAC7C,CAAC;AAED,qBAAqB,cAAc;","names":["forwardRef"]}
1
+ {"version":3,"sources":["../../../src/primitives/message/MessageRoot.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport {\n type ComponentRef,\n forwardRef,\n ComponentPropsWithoutRef,\n useCallback,\n} from \"react\";\nimport { useAssistantApi, useAssistantState } from \"../../context\";\nimport { useManagedRef } from \"../../utils/hooks/useManagedRef\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\n\nconst useIsHoveringRef = () => {\n const api = useAssistantApi();\n const message = useAssistantState(() => api.message());\n\n const callbackRef = useCallback(\n (el: HTMLElement) => {\n const handleMouseEnter = () => {\n message.setIsHovering(true);\n };\n const handleMouseLeave = () => {\n message.setIsHovering(false);\n };\n\n el.addEventListener(\"mouseenter\", handleMouseEnter);\n el.addEventListener(\"mouseleave\", handleMouseLeave);\n\n if (el.matches(\":hover\")) message.setIsHovering(true);\n\n return () => {\n el.removeEventListener(\"mouseenter\", handleMouseEnter);\n el.removeEventListener(\"mouseleave\", handleMouseLeave);\n message.setIsHovering(false);\n };\n },\n [message],\n );\n\n return useManagedRef(callbackRef);\n};\n\nexport namespace MessagePrimitiveRoot {\n export type Element = ComponentRef<typeof Primitive.div>;\n /**\n * Props for the MessagePrimitive.Root component.\n * Accepts all standard div element props.\n */\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\n/**\n * The root container component for a message.\n *\n * This component provides the foundational wrapper for message content and handles\n * hover state management for the message. It automatically tracks when the user\n * is hovering over the message, which can be used by child components like action bars.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.Root>\n * <MessagePrimitive.Content />\n * <ActionBarPrimitive.Root>\n * <ActionBarPrimitive.Copy />\n * <ActionBarPrimitive.Edit />\n * </ActionBarPrimitive.Root>\n * </MessagePrimitive.Root>\n * ```\n */\nexport const MessagePrimitiveRoot = forwardRef<\n MessagePrimitiveRoot.Element,\n MessagePrimitiveRoot.Props\n>((props, forwardRef) => {\n const isHoveringRef = useIsHoveringRef();\n const ref = useComposedRefs<HTMLDivElement>(forwardRef, isHoveringRef);\n\n return <Primitive.div {...props} ref={ref} />;\n});\n\nMessagePrimitiveRoot.displayName = \"MessagePrimitive.Root\";\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B;AAAA,EAEE;AAAA,EAEA;AAAA,OACK;AACP,SAAS,iBAAiB,yBAAyB;AACnD,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAkEvB;AAhET,IAAM,mBAAmB,MAAM;AAC7B,QAAM,MAAM,gBAAgB;AAC5B,QAAM,UAAU,kBAAkB,MAAM,IAAI,QAAQ,CAAC;AAErD,QAAM,cAAc;AAAA,IAClB,CAAC,OAAoB;AACnB,YAAM,mBAAmB,MAAM;AAC7B,gBAAQ,cAAc,IAAI;AAAA,MAC5B;AACA,YAAM,mBAAmB,MAAM;AAC7B,gBAAQ,cAAc,KAAK;AAAA,MAC7B;AAEA,SAAG,iBAAiB,cAAc,gBAAgB;AAClD,SAAG,iBAAiB,cAAc,gBAAgB;AAElD,UAAI,GAAG,QAAQ,QAAQ,EAAG,SAAQ,cAAc,IAAI;AAEpD,aAAO,MAAM;AACX,WAAG,oBAAoB,cAAc,gBAAgB;AACrD,WAAG,oBAAoB,cAAc,gBAAgB;AACrD,gBAAQ,cAAc,KAAK;AAAA,MAC7B;AAAA,IACF;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SAAO,cAAc,WAAW;AAClC;AA6BO,IAAM,uBAAuB,WAGlC,CAAC,OAAOA,gBAAe;AACvB,QAAM,gBAAgB,iBAAiB;AACvC,QAAM,MAAM,gBAAgCA,aAAY,aAAa;AAErE,SAAO,oBAAC,UAAU,KAAV,EAAe,GAAG,OAAO,KAAU;AAC7C,CAAC;AAED,qBAAqB,cAAc;","names":["forwardRef"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MessagePartInProgress.d.ts","sourceRoot":"","sources":["../../../src/primitives/messagePart/MessagePartInProgress.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG9C,yBAAiB,8BAA8B,CAAC;IAC9C,KAAY,KAAK,GAAG,iBAAiB,CAAC;CACvC;AAGD,eAAO,MAAM,8BAA8B,EAAE,EAAE,CAC7C,8BAA8B,CAAC,KAAK,CAKrC,CAAC"}
1
+ {"version":3,"file":"MessagePartInProgress.d.ts","sourceRoot":"","sources":["../../../src/primitives/messagePart/MessagePartInProgress.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG9C,yBAAiB,8BAA8B,CAAC;IAC9C,KAAY,KAAK,GAAG,iBAAiB,CAAC;CACvC;AAGD,eAAO,MAAM,8BAA8B,EAAE,EAAE,CAC7C,8BAA8B,CAAC,KAAK,CAOrC,CAAC"}
@@ -1,9 +1,11 @@
1
1
  "use client";
2
2
 
3
3
  // src/primitives/messagePart/MessagePartInProgress.tsx
4
- import { useMessagePart } from "../../context/index.js";
4
+ import { useAssistantState } from "../../context/index.js";
5
5
  var MessagePartPrimitiveInProgress = ({ children }) => {
6
- const isInProgress = useMessagePart((c) => c.status.type === "running");
6
+ const isInProgress = useAssistantState(
7
+ ({ part }) => part.status.type === "running"
8
+ );
7
9
  return isInProgress ? children : null;
8
10
  };
9
11
  MessagePartPrimitiveInProgress.displayName = "MessagePartPrimitive.InProgress";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/messagePart/MessagePartInProgress.tsx"],"sourcesContent":["\"use client\";\n\nimport { FC, PropsWithChildren } from \"react\";\nimport { useMessagePart } from \"../../context\";\n\nexport namespace MessagePartPrimitiveInProgress {\n export type Props = PropsWithChildren;\n}\n\n// TODO should this be renamed to IsRunning?\nexport const MessagePartPrimitiveInProgress: FC<\n MessagePartPrimitiveInProgress.Props\n> = ({ children }) => {\n const isInProgress = useMessagePart((c) => c.status.type === \"running\");\n\n return isInProgress ? children : null;\n};\n\nMessagePartPrimitiveInProgress.displayName = \"MessagePartPrimitive.InProgress\";\n"],"mappings":";;;AAGA,SAAS,sBAAsB;AAOxB,IAAM,iCAET,CAAC,EAAE,SAAS,MAAM;AACpB,QAAM,eAAe,eAAe,CAAC,MAAM,EAAE,OAAO,SAAS,SAAS;AAEtE,SAAO,eAAe,WAAW;AACnC;AAEA,+BAA+B,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/messagePart/MessagePartInProgress.tsx"],"sourcesContent":["\"use client\";\n\nimport { FC, PropsWithChildren } from \"react\";\nimport { useAssistantState } from \"../../context\";\n\nexport namespace MessagePartPrimitiveInProgress {\n export type Props = PropsWithChildren;\n}\n\n// TODO should this be renamed to IsRunning?\nexport const MessagePartPrimitiveInProgress: FC<\n MessagePartPrimitiveInProgress.Props\n> = ({ children }) => {\n const isInProgress = useAssistantState(\n ({ part }) => part.status.type === \"running\",\n );\n\n return isInProgress ? children : null;\n};\n\nMessagePartPrimitiveInProgress.displayName = \"MessagePartPrimitive.InProgress\";\n"],"mappings":";;;AAGA,SAAS,yBAAyB;AAO3B,IAAM,iCAET,CAAC,EAAE,SAAS,MAAM;AACpB,QAAM,eAAe;AAAA,IACnB,CAAC,EAAE,KAAK,MAAM,KAAK,OAAO,SAAS;AAAA,EACrC;AAEA,SAAO,eAAe,WAAW;AACnC;AAEA,+BAA+B,cAAc;","names":[]}
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
 
3
3
  // src/primitives/messagePart/useMessagePartFile.tsx
4
- import { useMessagePart } from "../../context/react/MessagePartContext.js";
4
+ import { useAssistantState } from "../../context/index.js";
5
5
  var useMessagePartFile = () => {
6
- const file = useMessagePart((c) => {
7
- if (c.type !== "file")
6
+ const file = useAssistantState(({ part }) => {
7
+ if (part.type !== "file")
8
8
  throw new Error(
9
9
  "MessagePartFile can only be used inside file message parts."
10
10
  );
11
- return c;
11
+ return part;
12
12
  });
13
13
  return file;
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/messagePart/useMessagePartFile.tsx"],"sourcesContent":["\"use client\";\n\nimport { MessagePartState } from \"../../api/MessagePartRuntime\";\nimport { useMessagePart } from \"../../context/react/MessagePartContext\";\nimport { FileMessagePart } from \"../../types\";\n\nexport const useMessagePartFile = () => {\n const file = useMessagePart((c) => {\n if (c.type !== \"file\")\n throw new Error(\n \"MessagePartFile can only be used inside file message parts.\",\n );\n\n return c as MessagePartState & FileMessagePart;\n });\n\n return file;\n};\n"],"mappings":";;;AAGA,SAAS,sBAAsB;AAGxB,IAAM,qBAAqB,MAAM;AACtC,QAAM,OAAO,eAAe,CAAC,MAAM;AACjC,QAAI,EAAE,SAAS;AACb,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/messagePart/useMessagePartFile.tsx"],"sourcesContent":["\"use client\";\n\nimport { MessagePartState } from \"../../legacy-runtime/runtime/MessagePartRuntime\";\nimport { useAssistantState } from \"../../context\";\nimport { FileMessagePart } from \"../../types\";\n\nexport const useMessagePartFile = () => {\n const file = useAssistantState(({ part }) => {\n if (part.type !== \"file\")\n throw new Error(\n \"MessagePartFile can only be used inside file message parts.\",\n );\n\n return part as MessagePartState & FileMessagePart;\n });\n\n return file;\n};\n"],"mappings":";;;AAGA,SAAS,yBAAyB;AAG3B,IAAM,qBAAqB,MAAM;AACtC,QAAM,OAAO,kBAAkB,CAAC,EAAE,KAAK,MAAM;AAC3C,QAAI,KAAK,SAAS;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AACT;","names":[]}
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
 
3
3
  // src/primitives/messagePart/useMessagePartImage.tsx
4
- import { useMessagePart } from "../../context/react/MessagePartContext.js";
4
+ import { useAssistantState } from "../../context/index.js";
5
5
  var useMessagePartImage = () => {
6
- const image = useMessagePart((c) => {
7
- if (c.type !== "image")
6
+ const image = useAssistantState(({ part }) => {
7
+ if (part.type !== "image")
8
8
  throw new Error(
9
9
  "MessagePartImage can only be used inside image message parts."
10
10
  );
11
- return c;
11
+ return part;
12
12
  });
13
13
  return image;
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/messagePart/useMessagePartImage.tsx"],"sourcesContent":["\"use client\";\n\nimport { MessagePartState } from \"../../api/MessagePartRuntime\";\nimport { useMessagePart } from \"../../context/react/MessagePartContext\";\nimport { ImageMessagePart } from \"../../types\";\n\nexport const useMessagePartImage = () => {\n const image = useMessagePart((c) => {\n if (c.type !== \"image\")\n throw new Error(\n \"MessagePartImage can only be used inside image message parts.\",\n );\n\n return c as MessagePartState & ImageMessagePart;\n });\n\n return image;\n};\n"],"mappings":";;;AAGA,SAAS,sBAAsB;AAGxB,IAAM,sBAAsB,MAAM;AACvC,QAAM,QAAQ,eAAe,CAAC,MAAM;AAClC,QAAI,EAAE,SAAS;AACb,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/messagePart/useMessagePartImage.tsx"],"sourcesContent":["\"use client\";\n\nimport { MessagePartState } from \"../../legacy-runtime/runtime/MessagePartRuntime\";\nimport { useAssistantState } from \"../../context\";\nimport { ImageMessagePart } from \"../../types\";\n\nexport const useMessagePartImage = () => {\n const image = useAssistantState(({ part }) => {\n if (part.type !== \"image\")\n throw new Error(\n \"MessagePartImage can only be used inside image message parts.\",\n );\n\n return part as MessagePartState & ImageMessagePart;\n });\n\n return image;\n};\n"],"mappings":";;;AAGA,SAAS,yBAAyB;AAG3B,IAAM,sBAAsB,MAAM;AACvC,QAAM,QAAQ,kBAAkB,CAAC,EAAE,KAAK,MAAM;AAC5C,QAAI,KAAK,SAAS;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AACT;","names":[]}
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
 
3
3
  // src/primitives/messagePart/useMessagePartReasoning.tsx
4
- import { useMessagePart } from "../../context/react/MessagePartContext.js";
4
+ import { useAssistantState } from "../../context/index.js";
5
5
  var useMessagePartReasoning = () => {
6
- const text = useMessagePart((c) => {
7
- if (c.type !== "reasoning")
6
+ const text = useAssistantState(({ part }) => {
7
+ if (part.type !== "reasoning")
8
8
  throw new Error(
9
9
  "MessagePartReasoning can only be used inside reasoning message parts."
10
10
  );
11
- return c;
11
+ return part;
12
12
  });
13
13
  return text;
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/messagePart/useMessagePartReasoning.tsx"],"sourcesContent":["\"use client\";\n\nimport { MessagePartState } from \"../../api/MessagePartRuntime\";\nimport { useMessagePart } from \"../../context/react/MessagePartContext\";\nimport { ReasoningMessagePart } from \"../../types\";\n\nexport const useMessagePartReasoning = () => {\n const text = useMessagePart((c) => {\n if (c.type !== \"reasoning\")\n throw new Error(\n \"MessagePartReasoning can only be used inside reasoning message parts.\",\n );\n\n return c as MessagePartState & ReasoningMessagePart;\n });\n\n return text;\n};\n"],"mappings":";;;AAGA,SAAS,sBAAsB;AAGxB,IAAM,0BAA0B,MAAM;AAC3C,QAAM,OAAO,eAAe,CAAC,MAAM;AACjC,QAAI,EAAE,SAAS;AACb,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/messagePart/useMessagePartReasoning.tsx"],"sourcesContent":["\"use client\";\n\nimport { MessagePartState } from \"../../legacy-runtime/runtime/MessagePartRuntime\";\nimport { useAssistantState } from \"../../context\";\nimport { ReasoningMessagePart } from \"../../types\";\n\nexport const useMessagePartReasoning = () => {\n const text = useAssistantState(({ part }) => {\n if (part.type !== \"reasoning\")\n throw new Error(\n \"MessagePartReasoning can only be used inside reasoning message parts.\",\n );\n\n return part as MessagePartState & ReasoningMessagePart;\n });\n\n return text;\n};\n"],"mappings":";;;AAGA,SAAS,yBAAyB;AAG3B,IAAM,0BAA0B,MAAM;AAC3C,QAAM,OAAO,kBAAkB,CAAC,EAAE,KAAK,MAAM;AAC3C,QAAI,KAAK,SAAS;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AACT;","names":[]}