@assistant-ui/react 0.10.50 → 0.11.0

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 (526) hide show
  1. package/dist/api/AttachmentRuntime.d.ts.map +1 -1
  2. package/dist/api/AttachmentRuntime.js +1 -0
  3. package/dist/api/AttachmentRuntime.js.map +1 -1
  4. package/dist/api/ComposerRuntime.d.ts +5 -2
  5. package/dist/api/ComposerRuntime.d.ts.map +1 -1
  6. package/dist/api/ComposerRuntime.js +4 -6
  7. package/dist/api/ComposerRuntime.js.map +1 -1
  8. package/dist/api/MessagePartRuntime.d.ts.map +1 -1
  9. package/dist/api/MessagePartRuntime.js +1 -0
  10. package/dist/api/MessagePartRuntime.js.map +1 -1
  11. package/dist/api/MessageRuntime.d.ts.map +1 -1
  12. package/dist/api/MessageRuntime.js +1 -0
  13. package/dist/api/MessageRuntime.js.map +1 -1
  14. package/dist/api/ThreadListItemRuntime.d.ts.map +1 -1
  15. package/dist/api/ThreadListItemRuntime.js +5 -0
  16. package/dist/api/ThreadListItemRuntime.js.map +1 -1
  17. package/dist/api/ThreadListRuntime.d.ts +2 -3
  18. package/dist/api/ThreadListRuntime.d.ts.map +1 -1
  19. package/dist/api/ThreadListRuntime.js +6 -7
  20. package/dist/api/ThreadListRuntime.js.map +1 -1
  21. package/dist/api/ThreadRuntime.d.ts +6 -6
  22. package/dist/api/ThreadRuntime.d.ts.map +1 -1
  23. package/dist/api/ThreadRuntime.js +5 -4
  24. package/dist/api/ThreadRuntime.js.map +1 -1
  25. package/dist/client/AssistantRuntimeClient.d.ts +86 -0
  26. package/dist/client/AssistantRuntimeClient.d.ts.map +1 -0
  27. package/dist/client/AssistantRuntimeClient.js +138 -0
  28. package/dist/client/AssistantRuntimeClient.js.map +1 -0
  29. package/dist/client/AttachmentClient.d.ts +6 -0
  30. package/dist/client/AttachmentClient.d.ts.map +1 -0
  31. package/dist/client/AttachmentClient.js +1 -0
  32. package/dist/client/AttachmentClient.js.map +1 -0
  33. package/dist/client/ComposerClient.d.ts +42 -0
  34. package/dist/client/ComposerClient.d.ts.map +1 -0
  35. package/dist/client/ComposerClient.js +76 -0
  36. package/dist/client/ComposerClient.js.map +1 -0
  37. package/dist/client/EventManagerClient.d.ts +9 -0
  38. package/dist/client/EventManagerClient.d.ts.map +1 -0
  39. package/dist/client/EventManagerClient.js +40 -0
  40. package/dist/client/EventManagerClient.js.map +1 -0
  41. package/dist/client/MessageClient.d.ts +67 -0
  42. package/dist/client/MessageClient.d.ts.map +1 -0
  43. package/dist/client/MessageClient.js +108 -0
  44. package/dist/client/MessageClient.js.map +1 -0
  45. package/dist/client/MessagePartClient.d.ts +21 -0
  46. package/dist/client/MessagePartClient.d.ts.map +1 -0
  47. package/dist/client/MessagePartClient.js +25 -0
  48. package/dist/client/MessagePartClient.js.map +1 -0
  49. package/dist/client/ThreadClient.d.ts +111 -0
  50. package/dist/client/ThreadClient.d.ts.map +1 -0
  51. package/dist/client/ThreadClient.js +126 -0
  52. package/dist/client/ThreadClient.js.map +1 -0
  53. package/dist/client/ThreadListClient.d.ts +33 -0
  54. package/dist/client/ThreadListClient.d.ts.map +1 -0
  55. package/dist/client/ThreadListClient.js +87 -0
  56. package/dist/client/ThreadListClient.js.map +1 -0
  57. package/dist/client/ThreadListItemClient.d.ts +32 -0
  58. package/dist/client/ThreadListItemClient.d.ts.map +1 -0
  59. package/dist/client/ThreadListItemClient.js +53 -0
  60. package/dist/client/ThreadListItemClient.js.map +1 -0
  61. package/dist/client/util-hooks/tapLookupResources.d.ts +16 -0
  62. package/dist/client/util-hooks/tapLookupResources.d.ts.map +1 -0
  63. package/dist/client/util-hooks/tapLookupResources.js +21 -0
  64. package/dist/client/util-hooks/tapLookupResources.js.map +1 -0
  65. package/dist/client/util-hooks/tapSubscribable.d.ts +3 -0
  66. package/dist/client/util-hooks/tapSubscribable.d.ts.map +1 -0
  67. package/dist/client/util-hooks/tapSubscribable.js +16 -0
  68. package/dist/client/util-hooks/tapSubscribable.js.map +1 -0
  69. package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  70. package/dist/cloud/AssistantCloudThreadHistoryAdapter.js +21 -12
  71. package/dist/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  72. package/dist/context/providers/AssistantRuntimeProvider.d.ts +3 -3
  73. package/dist/context/providers/AssistantRuntimeProvider.d.ts.map +1 -1
  74. package/dist/context/providers/AssistantRuntimeProvider.js +14 -42
  75. package/dist/context/providers/AssistantRuntimeProvider.js.map +1 -1
  76. package/dist/context/providers/AttachmentProvider.d.ts +8 -0
  77. package/dist/context/providers/AttachmentProvider.d.ts.map +1 -0
  78. package/dist/context/providers/AttachmentProvider.js +41 -0
  79. package/dist/context/providers/AttachmentProvider.js.map +1 -0
  80. package/dist/context/providers/MessageProvider.d.ts +5 -0
  81. package/dist/context/providers/MessageProvider.d.ts.map +1 -0
  82. package/dist/context/providers/MessageProvider.js +47 -0
  83. package/dist/context/providers/MessageProvider.js.map +1 -0
  84. package/dist/context/providers/PartProvider.d.ts +5 -0
  85. package/dist/context/providers/PartProvider.d.ts.map +1 -0
  86. package/dist/context/providers/PartProvider.js +27 -0
  87. package/dist/context/providers/PartProvider.js.map +1 -0
  88. package/dist/context/providers/TextMessagePartProvider.d.ts +5 -8
  89. package/dist/context/providers/TextMessagePartProvider.d.ts.map +1 -1
  90. package/dist/context/providers/TextMessagePartProvider.js +42 -53
  91. package/dist/context/providers/TextMessagePartProvider.js.map +1 -1
  92. package/dist/context/providers/ThreadListItemProvider.d.ts +9 -0
  93. package/dist/context/providers/ThreadListItemProvider.d.ts.map +1 -0
  94. package/dist/context/providers/ThreadListItemProvider.js +65 -0
  95. package/dist/context/providers/ThreadListItemProvider.js.map +1 -0
  96. package/dist/context/providers/index.d.ts +4 -1
  97. package/dist/context/providers/index.d.ts.map +1 -1
  98. package/dist/context/providers/index.js +17 -3
  99. package/dist/context/providers/index.js.map +1 -1
  100. package/dist/context/react/AssistantApiContext.d.ts +112 -0
  101. package/dist/context/react/AssistantApiContext.d.ts.map +1 -0
  102. package/dist/context/react/AssistantApiContext.js +197 -0
  103. package/dist/context/react/AssistantApiContext.js.map +1 -0
  104. package/dist/context/react/index.d.ts +9 -12
  105. package/dist/context/react/index.d.ts.map +1 -1
  106. package/dist/context/react/index.js +38 -33
  107. package/dist/context/react/index.js.map +1 -1
  108. package/dist/context/react/legacy/AssistantContext.d.ts +58 -0
  109. package/dist/context/react/legacy/AssistantContext.d.ts.map +1 -0
  110. package/dist/context/react/legacy/AssistantContext.js +20 -0
  111. package/dist/context/react/legacy/AssistantContext.js.map +1 -0
  112. package/dist/context/react/{AttachmentContext.d.ts → legacy/AttachmentContext.d.ts} +133 -139
  113. package/dist/context/react/legacy/AttachmentContext.d.ts.map +1 -0
  114. package/dist/context/react/{AttachmentContext.js → legacy/AttachmentContext.js} +9 -15
  115. package/dist/context/react/legacy/AttachmentContext.js.map +1 -0
  116. package/dist/context/react/{ComposerContext.d.ts → legacy/ComposerContext.d.ts} +12 -12
  117. package/dist/context/react/legacy/ComposerContext.d.ts.map +1 -0
  118. package/dist/context/react/legacy/ComposerContext.js +19 -0
  119. package/dist/context/react/legacy/ComposerContext.js.map +1 -0
  120. package/dist/context/react/{MessageContext.d.ts → legacy/MessageContext.d.ts} +23 -47
  121. package/dist/context/react/legacy/MessageContext.d.ts.map +1 -0
  122. package/dist/context/react/legacy/MessageContext.js +24 -0
  123. package/dist/context/react/legacy/MessageContext.js.map +1 -0
  124. package/dist/context/react/legacy/MessagePartContext.d.ts +35 -0
  125. package/dist/context/react/legacy/MessagePartContext.d.ts.map +1 -0
  126. package/dist/context/react/legacy/MessagePartContext.js +19 -0
  127. package/dist/context/react/legacy/MessagePartContext.js.map +1 -0
  128. package/dist/context/react/{ThreadContext.d.ts → legacy/ThreadContext.d.ts} +24 -30
  129. package/dist/context/react/legacy/ThreadContext.d.ts.map +1 -0
  130. package/dist/context/react/legacy/ThreadContext.js +33 -0
  131. package/dist/context/react/legacy/ThreadContext.js.map +1 -0
  132. package/dist/context/react/legacy/ThreadListItemContext.d.ts +35 -0
  133. package/dist/context/react/legacy/ThreadListItemContext.d.ts.map +1 -0
  134. package/dist/context/react/legacy/ThreadListItemContext.js +21 -0
  135. package/dist/context/react/legacy/ThreadListItemContext.js.map +1 -0
  136. package/dist/context/stores/index.d.ts +0 -2
  137. package/dist/context/stores/index.d.ts.map +1 -1
  138. package/dist/hooks/useAssistantEvent.d.ts +3 -0
  139. package/dist/hooks/useAssistantEvent.d.ts.map +1 -0
  140. package/dist/hooks/useAssistantEvent.js +22 -0
  141. package/dist/hooks/useAssistantEvent.js.map +1 -0
  142. package/dist/model-context/makeAssistantVisible.js +4 -4
  143. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  144. package/dist/model-context/useAssistantInstructions.js +4 -4
  145. package/dist/model-context/useAssistantInstructions.js.map +1 -1
  146. package/dist/model-context/useAssistantTool.d.ts.map +1 -1
  147. package/dist/model-context/useAssistantTool.js +7 -10
  148. package/dist/model-context/useAssistantTool.js.map +1 -1
  149. package/dist/model-context/useAssistantToolUI.js +5 -5
  150. package/dist/model-context/useAssistantToolUI.js.map +1 -1
  151. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  152. package/dist/primitives/actionBar/ActionBarCopy.js +12 -17
  153. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  154. package/dist/primitives/actionBar/ActionBarEdit.js +5 -5
  155. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  156. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
  157. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +6 -7
  158. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  159. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +6 -6
  160. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  161. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
  162. package/dist/primitives/actionBar/ActionBarReload.js +6 -10
  163. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  164. package/dist/primitives/actionBar/ActionBarSpeak.js +6 -6
  165. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
  166. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -1
  167. package/dist/primitives/actionBar/ActionBarStopSpeaking.js +5 -8
  168. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
  169. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -1
  170. package/dist/primitives/actionBar/useActionBarFloatStatus.js +10 -21
  171. package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
  172. package/dist/primitives/assistantModal/AssistantModalRoot.js +4 -4
  173. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  174. package/dist/primitives/attachment/AttachmentName.js +2 -2
  175. package/dist/primitives/attachment/AttachmentName.js.map +1 -1
  176. package/dist/primitives/attachment/AttachmentRemove.js +4 -4
  177. package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
  178. package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -1
  179. package/dist/primitives/attachment/AttachmentThumb.js +5 -2
  180. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
  181. package/dist/primitives/branchPicker/BranchPickerCount.js +2 -2
  182. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
  183. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
  184. package/dist/primitives/branchPicker/BranchPickerNext.js +7 -8
  185. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  186. package/dist/primitives/branchPicker/BranchPickerNumber.js +2 -2
  187. package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
  188. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
  189. package/dist/primitives/branchPicker/BranchPickerPrevious.js +7 -8
  190. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  191. package/dist/primitives/composer/ComposerAddAttachment.js +6 -6
  192. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  193. package/dist/primitives/composer/ComposerAttachmentDropzone.js +4 -4
  194. package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
  195. package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  196. package/dist/primitives/composer/ComposerAttachments.js +11 -13
  197. package/dist/primitives/composer/ComposerAttachments.js.map +1 -1
  198. package/dist/primitives/composer/ComposerCancel.js +5 -5
  199. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  200. package/dist/primitives/composer/ComposerIf.js +2 -2
  201. package/dist/primitives/composer/ComposerIf.js.map +1 -1
  202. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
  203. package/dist/primitives/composer/ComposerInput.js +22 -32
  204. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  205. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
  206. package/dist/primitives/composer/ComposerSend.js +6 -10
  207. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  208. package/dist/primitives/error/ErrorMessage.d.ts.map +1 -1
  209. package/dist/primitives/error/ErrorMessage.js +3 -3
  210. package/dist/primitives/error/ErrorMessage.js.map +1 -1
  211. package/dist/primitives/message/MessageAttachments.d.ts.map +1 -1
  212. package/dist/primitives/message/MessageAttachments.js +9 -11
  213. package/dist/primitives/message/MessageAttachments.js.map +1 -1
  214. package/dist/primitives/message/MessageError.d.ts.map +1 -1
  215. package/dist/primitives/message/MessageError.js +3 -3
  216. package/dist/primitives/message/MessageError.js.map +1 -1
  217. package/dist/primitives/message/MessageIf.d.ts.map +1 -1
  218. package/dist/primitives/message/MessageIf.js +28 -34
  219. package/dist/primitives/message/MessageIf.js.map +1 -1
  220. package/dist/primitives/message/MessageParts.d.ts.map +1 -1
  221. package/dist/primitives/message/MessageParts.js +25 -27
  222. package/dist/primitives/message/MessageParts.js.map +1 -1
  223. package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
  224. package/dist/primitives/message/MessagePartsGrouped.js +24 -26
  225. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  226. package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
  227. package/dist/primitives/message/MessageRoot.js +8 -7
  228. package/dist/primitives/message/MessageRoot.js.map +1 -1
  229. package/dist/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  230. package/dist/primitives/messagePart/MessagePartInProgress.js +4 -2
  231. package/dist/primitives/messagePart/MessagePartInProgress.js.map +1 -1
  232. package/dist/primitives/messagePart/useMessagePartFile.js +4 -4
  233. package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -1
  234. package/dist/primitives/messagePart/useMessagePartImage.js +4 -4
  235. package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -1
  236. package/dist/primitives/messagePart/useMessagePartReasoning.js +4 -4
  237. package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -1
  238. package/dist/primitives/messagePart/useMessagePartSource.js +4 -4
  239. package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -1
  240. package/dist/primitives/messagePart/useMessagePartText.js +4 -4
  241. package/dist/primitives/messagePart/useMessagePartText.js.map +1 -1
  242. package/dist/primitives/thread/ThreadEmpty.js +2 -2
  243. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  244. package/dist/primitives/thread/ThreadIf.js +2 -2
  245. package/dist/primitives/thread/ThreadIf.js.map +1 -1
  246. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
  247. package/dist/primitives/thread/ThreadMessages.js +9 -12
  248. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  249. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  250. package/dist/primitives/thread/ThreadSuggestion.js +8 -8
  251. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  252. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
  253. package/dist/primitives/thread/useThreadViewportAutoScroll.js +3 -6
  254. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  255. package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  256. package/dist/primitives/threadList/ThreadListItems.js +7 -10
  257. package/dist/primitives/threadList/ThreadListItems.js.map +1 -1
  258. package/dist/primitives/threadList/ThreadListNew.d.ts +1 -3
  259. package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -1
  260. package/dist/primitives/threadList/ThreadListNew.js +7 -11
  261. package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
  262. package/dist/primitives/threadListItem/ThreadListItemArchive.js +4 -4
  263. package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -1
  264. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -1
  265. package/dist/primitives/threadListItem/ThreadListItemDelete.js +6 -5
  266. package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -1
  267. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -1
  268. package/dist/primitives/threadListItem/ThreadListItemRoot.js +4 -2
  269. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
  270. package/dist/primitives/threadListItem/ThreadListItemTitle.js +2 -2
  271. package/dist/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
  272. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -1
  273. package/dist/primitives/threadListItem/ThreadListItemTrigger.js +6 -5
  274. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
  275. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -1
  276. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js +6 -5
  277. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -1
  278. package/dist/runtimes/adapters/attachment/index.js.map +1 -1
  279. package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts +1 -1
  280. package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts.map +1 -1
  281. package/dist/runtimes/composer/BaseComposerRuntimeCore.js +3 -3
  282. package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +1 -1
  283. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts +1 -1
  284. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts.map +1 -1
  285. package/dist/runtimes/core/BaseThreadRuntimeCore.js +5 -1
  286. package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +1 -1
  287. package/dist/runtimes/core/ComposerRuntimeCore.d.ts +2 -2
  288. package/dist/runtimes/core/ComposerRuntimeCore.d.ts.map +1 -1
  289. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts +5 -5
  290. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts.map +1 -1
  291. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts +5 -2
  292. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts.map +1 -1
  293. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts +6 -4
  294. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -1
  295. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js +42 -7
  296. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -1
  297. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
  298. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +3 -0
  299. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  300. package/dist/runtimes/external-store/createMessageConverter.d.ts +2 -2
  301. package/dist/runtimes/external-store/createMessageConverter.d.ts.map +1 -1
  302. package/dist/runtimes/external-store/createMessageConverter.js +9 -6
  303. package/dist/runtimes/external-store/createMessageConverter.js.map +1 -1
  304. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts +10 -1
  305. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts.map +1 -1
  306. package/dist/runtimes/local/LocalThreadListRuntimeCore.js +15 -2
  307. package/dist/runtimes/local/LocalThreadListRuntimeCore.js.map +1 -1
  308. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +1 -1
  309. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js +3 -5
  310. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js.map +1 -1
  311. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  312. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js +13 -19
  313. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js.map +1 -1
  314. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +11 -7
  315. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  316. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +41 -35
  317. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  318. package/dist/tests/setup.js +8 -8
  319. package/dist/tests/setup.js.map +1 -1
  320. package/dist/types/EventTypes.d.ts +49 -0
  321. package/dist/types/EventTypes.d.ts.map +1 -0
  322. package/dist/types/EventTypes.js +22 -0
  323. package/dist/types/EventTypes.js.map +1 -0
  324. package/dist/types/index.d.ts +1 -0
  325. package/dist/types/index.d.ts.map +1 -1
  326. package/dist/utils/smooth/SmoothContext.js +3 -3
  327. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  328. package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
  329. package/dist/utils/smooth/useSmooth.js +2 -5
  330. package/dist/utils/smooth/useSmooth.js.map +1 -1
  331. package/dist/utils/tap-store/index.d.ts +3 -0
  332. package/dist/utils/tap-store/index.d.ts.map +1 -0
  333. package/dist/utils/tap-store/index.js +8 -0
  334. package/dist/utils/tap-store/index.js.map +1 -0
  335. package/dist/utils/tap-store/store.d.ts +21 -0
  336. package/dist/utils/tap-store/store.d.ts.map +1 -0
  337. package/dist/utils/tap-store/store.js +29 -0
  338. package/dist/utils/tap-store/store.js.map +1 -0
  339. package/dist/utils/tap-store/tap-store-api.d.ts +8 -0
  340. package/dist/utils/tap-store/tap-store-api.d.ts.map +1 -0
  341. package/dist/utils/tap-store/tap-store-api.js +57 -0
  342. package/dist/utils/tap-store/tap-store-api.js.map +1 -0
  343. package/dist/utils/useToolArgsFieldStatus.js +6 -6
  344. package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
  345. package/package.json +2 -1
  346. package/src/api/AttachmentRuntime.ts +3 -1
  347. package/src/api/ComposerRuntime.ts +16 -9
  348. package/src/api/MessagePartRuntime.ts +3 -1
  349. package/src/api/MessageRuntime.ts +2 -0
  350. package/src/api/ThreadListItemRuntime.ts +11 -1
  351. package/src/api/ThreadListRuntime.ts +9 -9
  352. package/src/api/ThreadRuntime.ts +9 -7
  353. package/src/client/AssistantRuntimeClient.ts +197 -0
  354. package/src/client/AttachmentClient.ts +11 -0
  355. package/src/client/ComposerClient.ts +133 -0
  356. package/src/client/EventManagerClient.ts +63 -0
  357. package/src/client/MessageClient.ts +196 -0
  358. package/src/client/MessagePartClient.ts +53 -0
  359. package/src/client/ThreadClient.ts +280 -0
  360. package/src/client/ThreadListClient.ts +135 -0
  361. package/src/client/ThreadListItemClient.ts +88 -0
  362. package/src/client/util-hooks/tapLookupResources.ts +31 -0
  363. package/src/client/util-hooks/tapSubscribable.ts +16 -0
  364. package/src/cloud/AssistantCloudThreadHistoryAdapter.tsx +24 -13
  365. package/src/context/providers/AssistantRuntimeProvider.tsx +27 -51
  366. package/src/context/providers/AttachmentProvider.tsx +48 -0
  367. package/src/context/providers/MessageProvider.tsx +57 -0
  368. package/src/context/providers/PartProvider.tsx +28 -0
  369. package/src/context/providers/TextMessagePartProvider.tsx +53 -78
  370. package/src/context/providers/ThreadListItemProvider.tsx +84 -0
  371. package/src/context/providers/index.ts +10 -3
  372. package/src/context/react/AssistantApiContext.tsx +392 -0
  373. package/src/context/react/index.ts +30 -37
  374. package/src/context/react/{AssistantContext.ts → legacy/AssistantContext.ts} +12 -31
  375. package/src/context/react/{AttachmentContext.ts → legacy/AttachmentContext.ts} +11 -22
  376. package/src/context/react/{ComposerContext.ts → legacy/ComposerContext.ts} +11 -9
  377. package/src/context/react/{MessageContext.ts → legacy/MessageContext.ts} +12 -29
  378. package/src/context/react/legacy/MessagePartContext.ts +24 -0
  379. package/src/context/react/{ThreadContext.ts → legacy/ThreadContext.ts} +15 -25
  380. package/src/context/react/legacy/ThreadListItemContext.ts +28 -0
  381. package/src/context/stores/index.ts +0 -2
  382. package/src/hooks/useAssistantEvent.ts +24 -0
  383. package/src/model-context/makeAssistantVisible.tsx +4 -4
  384. package/src/model-context/useAssistantInstructions.tsx +4 -4
  385. package/src/model-context/useAssistantTool.tsx +7 -12
  386. package/src/model-context/useAssistantToolUI.tsx +5 -5
  387. package/src/primitives/actionBar/ActionBarCopy.tsx +14 -20
  388. package/src/primitives/actionBar/ActionBarEdit.tsx +5 -5
  389. package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +6 -7
  390. package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +6 -6
  391. package/src/primitives/actionBar/ActionBarReload.tsx +9 -10
  392. package/src/primitives/actionBar/ActionBarSpeak.tsx +7 -7
  393. package/src/primitives/actionBar/ActionBarStopSpeaking.tsx +5 -8
  394. package/src/primitives/actionBar/useActionBarFloatStatus.tsx +22 -34
  395. package/src/primitives/assistantModal/AssistantModalRoot.tsx +4 -4
  396. package/src/primitives/attachment/AttachmentName.tsx +2 -2
  397. package/src/primitives/attachment/AttachmentRemove.tsx +4 -4
  398. package/src/primitives/attachment/AttachmentThumb.tsx +5 -2
  399. package/src/primitives/branchPicker/BranchPickerCount.tsx +2 -2
  400. package/src/primitives/branchPicker/BranchPickerNext.tsx +7 -8
  401. package/src/primitives/branchPicker/BranchPickerNumber.tsx +2 -2
  402. package/src/primitives/branchPicker/BranchPickerPrevious.tsx +7 -8
  403. package/src/primitives/composer/ComposerAddAttachment.tsx +6 -6
  404. package/src/primitives/composer/ComposerAttachmentDropzone.tsx +4 -4
  405. package/src/primitives/composer/ComposerAttachments.tsx +12 -15
  406. package/src/primitives/composer/ComposerCancel.tsx +5 -5
  407. package/src/primitives/composer/ComposerIf.tsx +2 -2
  408. package/src/primitives/composer/ComposerInput.tsx +32 -32
  409. package/src/primitives/composer/ComposerSend.tsx +6 -10
  410. package/src/primitives/error/ErrorMessage.tsx +5 -4
  411. package/src/primitives/message/MessageAttachments.tsx +10 -13
  412. package/src/primitives/message/MessageError.tsx +5 -3
  413. package/src/primitives/message/MessageIf.tsx +43 -52
  414. package/src/primitives/message/MessageParts.tsx +26 -31
  415. package/src/primitives/message/MessagePartsGrouped.tsx +25 -30
  416. package/src/primitives/message/MessageRoot.tsx +10 -8
  417. package/src/primitives/messagePart/MessagePartInProgress.tsx +4 -2
  418. package/src/primitives/messagePart/useMessagePartFile.tsx +4 -4
  419. package/src/primitives/messagePart/useMessagePartImage.tsx +4 -4
  420. package/src/primitives/messagePart/useMessagePartReasoning.tsx +4 -4
  421. package/src/primitives/messagePart/useMessagePartSource.tsx +4 -4
  422. package/src/primitives/messagePart/useMessagePartText.tsx +4 -4
  423. package/src/primitives/thread/ThreadEmpty.tsx +2 -2
  424. package/src/primitives/thread/ThreadIf.tsx +2 -2
  425. package/src/primitives/thread/ThreadMessages.tsx +10 -14
  426. package/src/primitives/thread/ThreadSuggestion.tsx +8 -8
  427. package/src/primitives/thread/useThreadViewportAutoScroll.tsx +3 -6
  428. package/src/primitives/threadList/ThreadListItems.tsx +8 -15
  429. package/src/primitives/threadList/ThreadListNew.tsx +9 -13
  430. package/src/primitives/threadListItem/ThreadListItemArchive.ts +4 -4
  431. package/src/primitives/threadListItem/ThreadListItemDelete.ts +6 -5
  432. package/src/primitives/threadListItem/ThreadListItemRoot.tsx +4 -2
  433. package/src/primitives/threadListItem/ThreadListItemTitle.tsx +2 -2
  434. package/src/primitives/threadListItem/ThreadListItemTrigger.ts +6 -5
  435. package/src/primitives/threadListItem/ThreadListItemUnarchive.ts +6 -5
  436. package/src/runtimes/adapters/attachment/index.ts +1 -1
  437. package/src/runtimes/composer/BaseComposerRuntimeCore.tsx +3 -3
  438. package/src/runtimes/core/BaseThreadRuntimeCore.tsx +5 -1
  439. package/src/runtimes/core/ComposerRuntimeCore.tsx +2 -2
  440. package/src/runtimes/core/ThreadListRuntimeCore.tsx +6 -4
  441. package/src/runtimes/external-store/ExternalStoreAdapter.tsx +5 -2
  442. package/src/runtimes/external-store/ExternalStoreThreadListRuntimeCore.tsx +53 -12
  443. package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +4 -0
  444. package/src/runtimes/external-store/createMessageConverter.tsx +10 -6
  445. package/src/runtimes/local/LocalThreadListRuntimeCore.tsx +16 -2
  446. package/src/runtimes/remote-thread-list/EMPTY_THREAD_CORE.tsx +3 -6
  447. package/src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx +14 -19
  448. package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +50 -43
  449. package/src/types/EventTypes.ts +92 -0
  450. package/src/types/index.ts +6 -0
  451. package/src/utils/smooth/SmoothContext.tsx +3 -3
  452. package/src/utils/smooth/useSmooth.tsx +2 -5
  453. package/src/utils/tap-store/index.ts +2 -0
  454. package/src/utils/tap-store/store.ts +51 -0
  455. package/src/utils/tap-store/tap-store-api.ts +75 -0
  456. package/src/utils/useToolArgsFieldStatus.tsx +6 -6
  457. package/dist/context/providers/AttachmentRuntimeProvider.d.ts +0 -9
  458. package/dist/context/providers/AttachmentRuntimeProvider.d.ts.map +0 -1
  459. package/dist/context/providers/AttachmentRuntimeProvider.js +0 -33
  460. package/dist/context/providers/AttachmentRuntimeProvider.js.map +0 -1
  461. package/dist/context/providers/MessagePartRuntimeProvider.d.ts +0 -9
  462. package/dist/context/providers/MessagePartRuntimeProvider.d.ts.map +0 -1
  463. package/dist/context/providers/MessagePartRuntimeProvider.js +0 -28
  464. package/dist/context/providers/MessagePartRuntimeProvider.js.map +0 -1
  465. package/dist/context/providers/MessageRuntimeProvider.d.ts +0 -9
  466. package/dist/context/providers/MessageRuntimeProvider.d.ts.map +0 -1
  467. package/dist/context/providers/MessageRuntimeProvider.js +0 -37
  468. package/dist/context/providers/MessageRuntimeProvider.js.map +0 -1
  469. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts +0 -9
  470. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts.map +0 -1
  471. package/dist/context/providers/ThreadListItemRuntimeProvider.js +0 -30
  472. package/dist/context/providers/ThreadListItemRuntimeProvider.js.map +0 -1
  473. package/dist/context/providers/ThreadRuntimeProvider.d.ts +0 -10
  474. package/dist/context/providers/ThreadRuntimeProvider.d.ts.map +0 -1
  475. package/dist/context/providers/ThreadRuntimeProvider.js +0 -33
  476. package/dist/context/providers/ThreadRuntimeProvider.js.map +0 -1
  477. package/dist/context/react/AssistantContext.d.ts +0 -85
  478. package/dist/context/react/AssistantContext.d.ts.map +0 -1
  479. package/dist/context/react/AssistantContext.js +0 -34
  480. package/dist/context/react/AssistantContext.js.map +0 -1
  481. package/dist/context/react/AttachmentContext.d.ts.map +0 -1
  482. package/dist/context/react/AttachmentContext.js.map +0 -1
  483. package/dist/context/react/ComposerContext.d.ts.map +0 -1
  484. package/dist/context/react/ComposerContext.js +0 -17
  485. package/dist/context/react/ComposerContext.js.map +0 -1
  486. package/dist/context/react/MessageContext.d.ts.map +0 -1
  487. package/dist/context/react/MessageContext.js +0 -35
  488. package/dist/context/react/MessageContext.js.map +0 -1
  489. package/dist/context/react/MessagePartContext.d.ts +0 -41
  490. package/dist/context/react/MessagePartContext.d.ts.map +0 -1
  491. package/dist/context/react/MessagePartContext.js +0 -25
  492. package/dist/context/react/MessagePartContext.js.map +0 -1
  493. package/dist/context/react/ThreadContext.d.ts.map +0 -1
  494. package/dist/context/react/ThreadContext.js +0 -38
  495. package/dist/context/react/ThreadContext.js.map +0 -1
  496. package/dist/context/react/ThreadListItemContext.d.ts +0 -41
  497. package/dist/context/react/ThreadListItemContext.d.ts.map +0 -1
  498. package/dist/context/react/ThreadListItemContext.js +0 -25
  499. package/dist/context/react/ThreadListItemContext.js.map +0 -1
  500. package/dist/context/stores/AssistantToolUIs.d.ts +0 -14
  501. package/dist/context/stores/AssistantToolUIs.d.ts.map +0 -1
  502. package/dist/context/stores/AssistantToolUIs.js +0 -35
  503. package/dist/context/stores/AssistantToolUIs.js.map +0 -1
  504. package/dist/context/stores/MessageUtils.d.ts +0 -8
  505. package/dist/context/stores/MessageUtils.d.ts.map +0 -1
  506. package/dist/context/stores/MessageUtils.js +0 -18
  507. package/dist/context/stores/MessageUtils.js.map +0 -1
  508. package/dist/utils/combined/createCombinedStore.d.ts +0 -8
  509. package/dist/utils/combined/createCombinedStore.d.ts.map +0 -1
  510. package/dist/utils/combined/createCombinedStore.js +0 -22
  511. package/dist/utils/combined/createCombinedStore.js.map +0 -1
  512. package/dist/utils/combined/useCombinedStore.d.ts +0 -3
  513. package/dist/utils/combined/useCombinedStore.d.ts.map +0 -1
  514. package/dist/utils/combined/useCombinedStore.js +0 -15
  515. package/dist/utils/combined/useCombinedStore.js.map +0 -1
  516. package/src/context/providers/AttachmentRuntimeProvider.tsx +0 -44
  517. package/src/context/providers/MessagePartRuntimeProvider.tsx +0 -42
  518. package/src/context/providers/MessageRuntimeProvider.tsx +0 -50
  519. package/src/context/providers/ThreadListItemRuntimeProvider.tsx +0 -43
  520. package/src/context/providers/ThreadRuntimeProvider.tsx +0 -53
  521. package/src/context/react/MessagePartContext.ts +0 -37
  522. package/src/context/react/ThreadListItemContext.ts +0 -38
  523. package/src/context/stores/AssistantToolUIs.ts +0 -51
  524. package/src/context/stores/MessageUtils.ts +0 -23
  525. package/src/utils/combined/createCombinedStore.ts +0 -31
  526. package/src/utils/combined/useCombinedStore.ts +0 -17
@@ -6,8 +6,7 @@ import {
6
6
  createActionButton,
7
7
  } from "../../utils/createActionButton";
8
8
  import { useCallback } from "react";
9
- import { useThread } from "../../context";
10
- import { useThreadRuntime } from "../../context/react/ThreadContext";
9
+ import { useAssistantState, useAssistantApi } from "../../context";
11
10
 
12
11
  const useThreadSuggestion = ({
13
12
  prompt,
@@ -17,16 +16,17 @@ const useThreadSuggestion = ({
17
16
  method?: "replace";
18
17
  autoSend?: boolean | undefined;
19
18
  }) => {
20
- const threadRuntime = useThreadRuntime();
19
+ const api = useAssistantApi();
20
+ const disabled = useAssistantState(({ thread }) => thread.isDisabled);
21
21
 
22
- const disabled = useThread((t) => t.isDisabled);
23
22
  const callback = useCallback(() => {
24
- if (autoSend && !threadRuntime.getState().isRunning) {
25
- threadRuntime.append(prompt);
23
+ const isRunning = api.thread().getState().isRunning;
24
+ if (autoSend && !isRunning) {
25
+ api.thread().append(prompt);
26
26
  } else {
27
- threadRuntime.composer.setText(prompt);
27
+ api.composer().setText(prompt);
28
28
  }
29
- }, [threadRuntime, autoSend, prompt]);
29
+ }, [api, autoSend, prompt]);
30
30
 
31
31
  if (disabled) return null;
32
32
  return callback;
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
 
3
3
  import { useComposedRefs } from "@radix-ui/react-compose-refs";
4
- import { RefCallback, useCallback, useEffect, useRef } from "react";
5
- import { useThreadRuntime } from "../../context/react/ThreadContext";
4
+ import { RefCallback, useCallback, useRef } from "react";
5
+ import { useAssistantEvent } from "../../context";
6
6
  import { useOnResizeContent } from "../../utils/hooks/useOnResizeContent";
7
7
  import { useOnScrollToBottom } from "../../utils/hooks/useOnScrollToBottom";
8
8
  import { useManagedRef } from "../../utils/hooks/useManagedRef";
@@ -87,10 +87,7 @@ export const useThreadViewportAutoScroll = <TElement extends HTMLElement>({
87
87
  });
88
88
 
89
89
  // autoscroll on run start
90
- const threadRuntime = useThreadRuntime();
91
- useEffect(() => {
92
- return threadRuntime.unstable_on("run-start", () => scrollToBottom("auto"));
93
- }, [scrollToBottom, threadRuntime]);
90
+ useAssistantEvent("thread.run-start", () => scrollToBottom("auto"));
94
91
 
95
92
  const autoScrollRef = useComposedRefs<TElement>(resizeRef, scrollRef, divRef);
96
93
  return autoScrollRef as RefCallback<TElement>;
@@ -1,8 +1,10 @@
1
1
  "use client";
2
2
 
3
3
  import { ComponentType, FC, memo, useMemo } from "react";
4
- import { ThreadListItemRuntimeProvider } from "../../context/providers/ThreadListItemRuntimeProvider";
5
- import { useAssistantRuntime, useThreadList } from "../../context";
4
+ import {
5
+ ThreadListItemByIndexProvider,
6
+ useAssistantState,
7
+ } from "../../context";
6
8
 
7
9
  export namespace ThreadListPrimitiveItems {
8
10
  export type Props = {
@@ -40,21 +42,12 @@ export namespace ThreadListPrimitiveItemByIndex {
40
42
  export const ThreadListPrimitiveItemByIndex: FC<ThreadListPrimitiveItemByIndex.Props> =
41
43
  memo(
42
44
  ({ index, archived = false, components }) => {
43
- const assistantRuntime = useAssistantRuntime();
44
- const runtime = useMemo(
45
- () =>
46
- archived
47
- ? assistantRuntime.threads.getArchivedItemByIndex(index)
48
- : assistantRuntime.threads.getItemByIndex(index),
49
- [assistantRuntime, index, archived],
50
- );
51
-
52
45
  const ThreadListItemComponent = components.ThreadListItem;
53
46
 
54
47
  return (
55
- <ThreadListItemRuntimeProvider runtime={runtime}>
48
+ <ThreadListItemByIndexProvider index={index} archived={archived}>
56
49
  <ThreadListItemComponent />
57
- </ThreadListItemRuntimeProvider>
50
+ </ThreadListItemByIndexProvider>
58
51
  );
59
52
  },
60
53
  (prev, next) =>
@@ -69,8 +62,8 @@ export const ThreadListPrimitiveItems: FC<ThreadListPrimitiveItems.Props> = ({
69
62
  archived = false,
70
63
  components,
71
64
  }) => {
72
- const contentLength = useThreadList((s) =>
73
- archived ? s.archivedThreads.length : s.threads.length,
65
+ const contentLength = useAssistantState(({ threads }) =>
66
+ archived ? threads.archivedThreadIds.length : threads.threadIds.length,
74
67
  );
75
68
 
76
69
  const listElements = useMemo(() => {
@@ -4,29 +4,25 @@ import {
4
4
  ActionButtonElement,
5
5
  ActionButtonProps,
6
6
  } from "../../utils/createActionButton";
7
- import { useAssistantRuntime, useThreadList } from "../../context";
8
7
  import { forwardRef } from "react";
9
8
  import { Primitive } from "@radix-ui/react-primitive";
10
9
  import { composeEventHandlers } from "@radix-ui/primitive";
11
-
12
- const useThreadListNew = () => {
13
- const runtime = useAssistantRuntime();
14
- return () => {
15
- runtime.switchToNewThread();
16
- };
17
- };
10
+ import { useAssistantState, useAssistantApi } from "../../context";
18
11
 
19
12
  export namespace ThreadListPrimitiveNew {
20
13
  export type Element = ActionButtonElement;
21
- export type Props = ActionButtonProps<typeof useThreadListNew>;
14
+ export type Props = ActionButtonProps<() => void>;
22
15
  }
23
16
 
24
17
  export const ThreadListPrimitiveNew = forwardRef<
25
18
  ThreadListPrimitiveNew.Element,
26
19
  ThreadListPrimitiveNew.Props
27
20
  >(({ onClick, disabled, ...props }, forwardedRef) => {
28
- const isMain = useThreadList((t) => t.newThread === t.mainThreadId);
29
- const callback = useThreadListNew();
21
+ const isMain = useAssistantState(
22
+ ({ threads }) => threads.newThreadId === threads.mainThreadId,
23
+ );
24
+
25
+ const api = useAssistantApi();
30
26
 
31
27
  return (
32
28
  <Primitive.button
@@ -34,9 +30,9 @@ export const ThreadListPrimitiveNew = forwardRef<
34
30
  {...(isMain ? { "data-active": "true", "aria-current": "true" } : null)}
35
31
  {...props}
36
32
  ref={forwardedRef}
37
- disabled={disabled || !callback}
33
+ disabled={disabled}
38
34
  onClick={composeEventHandlers(onClick, () => {
39
- callback?.();
35
+ api.threads().switchToNewThread();
40
36
  })}
41
37
  />
42
38
  );
@@ -5,14 +5,14 @@ import {
5
5
  ActionButtonProps,
6
6
  createActionButton,
7
7
  } from "../../utils/createActionButton";
8
- import { useThreadListItemRuntime } from "../../context/react/ThreadListItemContext";
8
+ import { useAssistantApi } from "../../context";
9
9
  import { useCallback } from "react";
10
10
 
11
11
  const useThreadListItemArchive = () => {
12
- const runtime = useThreadListItemRuntime();
12
+ const api = useAssistantApi();
13
13
  return useCallback(() => {
14
- runtime.archive();
15
- }, [runtime]);
14
+ api.threadListItem().archive();
15
+ }, [api]);
16
16
  };
17
17
 
18
18
  export namespace ThreadListItemPrimitiveArchive {
@@ -5,13 +5,14 @@ import {
5
5
  ActionButtonProps,
6
6
  createActionButton,
7
7
  } from "../../utils/createActionButton";
8
- import { useThreadListItemRuntime } from "../../context/react/ThreadListItemContext";
8
+ import { useAssistantApi } from "../../context";
9
+ import { useCallback } from "react";
9
10
 
10
11
  const useThreadListItemDelete = () => {
11
- const runtime = useThreadListItemRuntime();
12
- return () => {
13
- runtime.delete();
14
- };
12
+ const api = useAssistantApi();
13
+ return useCallback(() => {
14
+ api.threadListItem().delete();
15
+ }, [api]);
15
16
  };
16
17
 
17
18
  export namespace ThreadListItemPrimitiveDelete {
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { Primitive } from "@radix-ui/react-primitive";
4
4
  import { type ComponentRef, forwardRef, ComponentPropsWithoutRef } from "react";
5
- import { useThreadListItem } from "../../context/react/ThreadListItemContext";
5
+ import { useAssistantState } from "../../context";
6
6
 
7
7
  type PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;
8
8
 
@@ -15,7 +15,9 @@ export const ThreadListItemPrimitiveRoot = forwardRef<
15
15
  ThreadListItemPrimitiveRoot.Element,
16
16
  ThreadListItemPrimitiveRoot.Props
17
17
  >((props, ref) => {
18
- const isMain = useThreadListItem((t) => t.isMain);
18
+ const isMain = useAssistantState(
19
+ ({ threads, threadListItem }) => threads.mainThreadId === threadListItem.id,
20
+ );
19
21
 
20
22
  return (
21
23
  <Primitive.div
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import type { FC, ReactNode } from "react";
4
- import { useThreadListItem } from "../../context/react/ThreadListItemContext";
4
+ import { useAssistantState } from "../../context";
5
5
 
6
6
  export namespace ThreadListItemPrimitiveTitle {
7
7
  export type Props = {
@@ -12,7 +12,7 @@ export namespace ThreadListItemPrimitiveTitle {
12
12
  export const ThreadListItemPrimitiveTitle: FC<
13
13
  ThreadListItemPrimitiveTitle.Props
14
14
  > = ({ fallback }) => {
15
- const title = useThreadListItem((t) => t.title);
15
+ const title = useAssistantState(({ threadListItem }) => threadListItem.title);
16
16
  return <>{title || fallback}</>;
17
17
  };
18
18
 
@@ -5,13 +5,14 @@ import {
5
5
  ActionButtonProps,
6
6
  createActionButton,
7
7
  } from "../../utils/createActionButton";
8
- import { useThreadListItemRuntime } from "../../context/react/ThreadListItemContext";
8
+ import { useAssistantApi } from "../../context";
9
+ import { useCallback } from "react";
9
10
 
10
11
  const useThreadListItemTrigger = () => {
11
- const runtime = useThreadListItemRuntime();
12
- return () => {
13
- runtime.switchTo();
14
- };
12
+ const api = useAssistantApi();
13
+ return useCallback(() => {
14
+ api.threadListItem().switchTo();
15
+ }, [api]);
15
16
  };
16
17
 
17
18
  export namespace ThreadListItemPrimitiveTrigger {
@@ -5,13 +5,14 @@ import {
5
5
  ActionButtonProps,
6
6
  createActionButton,
7
7
  } from "../../utils/createActionButton";
8
- import { useThreadListItemRuntime } from "../../context/react/ThreadListItemContext";
8
+ import { useAssistantApi } from "../../context";
9
+ import { useCallback } from "react";
9
10
 
10
11
  const useThreadListItemUnarchive = () => {
11
- const runtime = useThreadListItemRuntime();
12
- return () => {
13
- runtime.unarchive();
14
- };
12
+ const api = useAssistantApi();
13
+ return useCallback(() => {
14
+ api.threadListItem().unarchive();
15
+ }, [api]);
15
16
  };
16
17
 
17
18
  export namespace ThreadListItemPrimitiveUnarchive {
@@ -2,4 +2,4 @@ export type { AttachmentAdapter } from "./AttachmentAdapter";
2
2
  export { SimpleImageAttachmentAdapter } from "./SimpleImageAttachmentAdapter";
3
3
  export { SimpleTextAttachmentAdapter } from "./SimpleTextAttachmentAdapter";
4
4
  export { CompositeAttachmentAdapter } from "./CompositeAttachmentAdapter";
5
- export { CloudFileAttachmentAdapter } from "./CloudFileAttachmentAdapter";
5
+ export { CloudFileAttachmentAdapter } from "./CloudFileAttachmentAdapter";
@@ -23,7 +23,7 @@ export abstract class BaseComposerRuntimeCore
23
23
 
24
24
  protected abstract getAttachmentAdapter(): AttachmentAdapter | undefined;
25
25
 
26
- public getAttachmentAccept(): string {
26
+ public get attachmentAccept(): string {
27
27
  return this.getAttachmentAdapter()?.accept ?? "*";
28
28
  }
29
29
 
@@ -173,7 +173,7 @@ export abstract class BaseComposerRuntimeCore
173
173
  ];
174
174
  else {
175
175
  this._attachments = [...this._attachments, a];
176
- this._notifyEventSubscribers("attachment_add");
176
+ this._notifyEventSubscribers("attachment-add");
177
177
  }
178
178
 
179
179
  this._notifySubscribers();
@@ -188,7 +188,7 @@ export abstract class BaseComposerRuntimeCore
188
188
  upsertAttachment(await promiseOrGenerator);
189
189
  }
190
190
 
191
- this._notifyEventSubscribers("attachment_add");
191
+ this._notifyEventSubscribers("attachment-add");
192
192
  this._notifySubscribers();
193
193
  }
194
194
 
@@ -92,7 +92,11 @@ export abstract class BaseThreadRuntimeCore implements ThreadRuntimeCore {
92
92
  }
93
93
 
94
94
  public getMessageById(messageId: string) {
95
- return this.repository.getMessage(messageId);
95
+ try {
96
+ return this.repository.getMessage(messageId);
97
+ } catch {
98
+ return undefined;
99
+ }
96
100
  }
97
101
 
98
102
  public getBranches(messageId: string): string[] {
@@ -1,7 +1,7 @@
1
1
  import type { Attachment, PendingAttachment, Unsubscribe } from "../../types";
2
2
  import { MessageRole, RunConfig } from "../../types/AssistantTypes";
3
3
 
4
- export type ComposerRuntimeEventType = "send" | "attachment_add";
4
+ export type ComposerRuntimeEventType = "send" | "attachment-add";
5
5
 
6
6
  export type ComposerRuntimeCore = Readonly<{
7
7
  isEditing: boolean;
@@ -10,8 +10,8 @@ export type ComposerRuntimeCore = Readonly<{
10
10
  isEmpty: boolean;
11
11
 
12
12
  attachments: readonly Attachment[];
13
+ attachmentAccept: string;
13
14
 
14
- getAttachmentAccept(): string;
15
15
  addAttachment: (file: File) => Promise<void>;
16
16
  removeAttachment: (attachmentId: string) => Promise<void>;
17
17
 
@@ -2,10 +2,10 @@ import { Unsubscribe } from "../../types";
2
2
  import { ThreadRuntimeCore } from "./ThreadRuntimeCore";
3
3
  import type { ThreadListItemStatus } from "../../api/RuntimeBindings";
4
4
 
5
- type ThreadListItemCoreState = {
6
- readonly threadId: string;
7
- readonly remoteId?: string | undefined;
8
- readonly externalId?: string | undefined;
5
+ export type ThreadListItemCoreState = {
6
+ readonly id: string;
7
+ readonly remoteId: string | undefined;
8
+ readonly externalId: string | undefined;
9
9
 
10
10
  readonly status: ThreadListItemStatus;
11
11
  readonly title?: string | undefined;
@@ -21,6 +21,8 @@ export type ThreadListRuntimeCore = {
21
21
  threadIds: readonly string[];
22
22
  archivedThreadIds: readonly string[];
23
23
 
24
+ readonly threadData: Readonly<Record<string, ThreadListItemCoreState>>;
25
+
24
26
  getMainThreadRuntimeCore(): ThreadRuntimeCore;
25
27
  getThreadRuntimeCore(threadId: string): ThreadRuntimeCore;
26
28
 
@@ -12,7 +12,9 @@ import { ExportedMessageRepository } from "../utils/MessageRepository";
12
12
 
13
13
  export type ExternalStoreThreadData<TState extends "regular" | "archived"> = {
14
14
  status: TState;
15
- threadId: string;
15
+ id: string;
16
+ remoteId?: string | undefined;
17
+ externalId?: string | undefined;
16
18
  title?: string | undefined;
17
19
  };
18
20
 
@@ -59,7 +61,8 @@ type ExternalStoreAdapterBase<T> = {
59
61
  suggestions?: readonly ThreadSuggestion[] | undefined;
60
62
  extras?: unknown;
61
63
 
62
- setMessages?: ((messages: T[]) => void) | undefined;
64
+ setMessages?: ((messages: readonly T[]) => void) | undefined;
65
+ onImport?: ((messages: readonly ThreadMessage[]) => void) | undefined;
63
66
  onNew: (message: AppendMessage) => Promise<void>;
64
67
  onEdit?: ((message: AppendMessage) => Promise<void>) | undefined;
65
68
  onReload?: // TODO: remove parentId in 0.8.0
@@ -1,21 +1,26 @@
1
1
  import type { Unsubscribe } from "../../types";
2
2
  import { ExternalStoreThreadRuntimeCore } from "./ExternalStoreThreadRuntimeCore";
3
- import { ThreadListRuntimeCore } from "../core/ThreadListRuntimeCore";
4
3
  import {
5
- ExternalStoreThreadData,
6
- ExternalStoreThreadListAdapter,
7
- } from "./ExternalStoreAdapter";
4
+ ThreadListItemCoreState,
5
+ ThreadListRuntimeCore,
6
+ } from "../core/ThreadListRuntimeCore";
7
+ import { ExternalStoreThreadListAdapter } from "./ExternalStoreAdapter";
8
8
 
9
9
  export type ExternalStoreThreadFactory = () => ExternalStoreThreadRuntimeCore;
10
10
 
11
11
  const EMPTY_ARRAY = Object.freeze([]);
12
12
  const DEFAULT_THREAD_ID = "DEFAULT_THREAD_ID";
13
13
  const DEFAULT_THREADS = Object.freeze([DEFAULT_THREAD_ID]);
14
- const DEFAULT_THREAD: ExternalStoreThreadData<"regular"> = Object.freeze({
15
- threadId: DEFAULT_THREAD_ID,
14
+ const DEFAULT_THREAD = Object.freeze({
15
+ id: DEFAULT_THREAD_ID,
16
+ remoteId: undefined,
17
+ externalId: undefined,
16
18
  status: "regular",
17
19
  });
18
20
  const RESOLVED_PROMISE = Promise.resolve();
21
+ const DEFAULT_THREAD_DATA = Object.freeze({
22
+ [DEFAULT_THREAD_ID]: DEFAULT_THREAD,
23
+ });
19
24
 
20
25
  export class ExternalStoreThreadListRuntimeCore
21
26
  implements ThreadListRuntimeCore
@@ -23,6 +28,8 @@ export class ExternalStoreThreadListRuntimeCore
23
28
  private _mainThreadId: string = DEFAULT_THREAD_ID;
24
29
  private _threads: readonly string[] = DEFAULT_THREADS;
25
30
  private _archivedThreads: readonly string[] = EMPTY_ARRAY;
31
+ private _threadData: Readonly<Record<string, ThreadListItemCoreState>> =
32
+ DEFAULT_THREAD_DATA;
26
33
 
27
34
  public get isLoading() {
28
35
  return this.adapter.isLoading ?? false;
@@ -40,6 +47,10 @@ export class ExternalStoreThreadListRuntimeCore
40
47
  return this._archivedThreads;
41
48
  }
42
49
 
50
+ public get threadData() {
51
+ return this._threadData;
52
+ }
53
+
43
54
  public getLoadThreadsPromise() {
44
55
  return RESOLVED_PROMISE;
45
56
  }
@@ -55,6 +66,7 @@ export class ExternalStoreThreadListRuntimeCore
55
66
  private threadFactory: ExternalStoreThreadFactory,
56
67
  ) {
57
68
  this._mainThread = this.threadFactory();
69
+ this.__internal_setAdapter(adapter, true);
58
70
  }
59
71
 
60
72
  public getMainThreadRuntimeCore() {
@@ -67,16 +79,19 @@ export class ExternalStoreThreadListRuntimeCore
67
79
 
68
80
  public getItemById(threadId: string) {
69
81
  for (const thread of this.adapter.threads ?? []) {
70
- if (thread.threadId === threadId) return thread;
82
+ if (thread.id === threadId) return thread as any;
71
83
  }
72
84
  for (const thread of this.adapter.archivedThreads ?? []) {
73
- if (thread.threadId === threadId) return thread;
85
+ if (thread.id === threadId) return thread as any;
74
86
  }
75
87
  if (threadId === DEFAULT_THREAD_ID) return DEFAULT_THREAD;
76
88
  return undefined;
77
89
  }
78
90
 
79
- public __internal_setAdapter(adapter: ExternalStoreThreadListAdapter) {
91
+ public __internal_setAdapter(
92
+ adapter: ExternalStoreThreadListAdapter,
93
+ initialLoad = false,
94
+ ) {
80
95
  const previousAdapter = this.adapter;
81
96
  this.adapter = adapter;
82
97
 
@@ -90,6 +105,7 @@ export class ExternalStoreThreadListRuntimeCore
90
105
  previousAdapter.archivedThreads ?? EMPTY_ARRAY;
91
106
 
92
107
  if (
108
+ !initialLoad &&
93
109
  previousThreadId === newThreadId &&
94
110
  previousThreads === newThreads &&
95
111
  previousArchivedThreads === newArchivedThreads
@@ -97,14 +113,39 @@ export class ExternalStoreThreadListRuntimeCore
97
113
  return;
98
114
  }
99
115
 
116
+ this._threadData = {
117
+ ...DEFAULT_THREAD_DATA,
118
+ ...Object.fromEntries(
119
+ adapter.threads?.map((t) => [
120
+ t.id,
121
+ {
122
+ ...t,
123
+ remoteId: t.remoteId,
124
+ externalId: t.externalId,
125
+ status: "regular",
126
+ },
127
+ ]) ?? [],
128
+ ),
129
+ ...Object.fromEntries(
130
+ adapter.archivedThreads?.map((t) => [
131
+ t.id,
132
+ {
133
+ ...t,
134
+ remoteId: t.remoteId,
135
+ externalId: t.externalId,
136
+ status: "archived",
137
+ },
138
+ ]) ?? [],
139
+ ),
140
+ };
141
+
100
142
  if (previousThreads !== newThreads) {
101
- this._threads =
102
- this.adapter.threads?.map((t) => t.threadId) ?? EMPTY_ARRAY;
143
+ this._threads = this.adapter.threads?.map((t) => t.id) ?? EMPTY_ARRAY;
103
144
  }
104
145
 
105
146
  if (previousArchivedThreads !== newArchivedThreads) {
106
147
  this._archivedThreads =
107
- this.adapter.archivedThreads?.map((t) => t.threadId) ?? EMPTY_ARRAY;
148
+ this.adapter.archivedThreads?.map((t) => t.id) ?? EMPTY_ARRAY;
108
149
  }
109
150
 
110
151
  if (previousThreadId !== newThreadId) {
@@ -297,6 +297,10 @@ export class ExternalStoreThreadRuntimeCore
297
297
  this._assistantOptimisticId = null;
298
298
 
299
299
  super.import(data);
300
+
301
+ if (this._store.onImport) {
302
+ this._store.onImport(this.repository.getMessages());
303
+ }
300
304
  }
301
305
 
302
306
  private updateMessages = (messages: readonly ThreadMessage[]) => {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { ThreadState } from "../../api";
3
- import { useMessagePart, useMessage } from "../../context";
3
+ import { useAssistantApi, useAssistantState } from "../../context";
4
4
  import { ThreadMessage } from "../../types";
5
5
  import {
6
6
  useExternalMessageConverter,
@@ -50,13 +50,17 @@ export const createMessageConverter = <T extends object>(
50
50
  return first;
51
51
  },
52
52
  useOriginalMessages: () => {
53
- const MessagePartMessages = useMessagePart<T[]>({
54
- optional: true,
55
- selector: getExternalStoreMessages,
53
+ const api = useAssistantApi();
54
+ const partMessages = useAssistantState((s) => {
55
+ if (api.part.source) return getExternalStoreMessages(s.part);
56
+ return undefined;
56
57
  });
57
58
 
58
- const messageMessages = useMessage<T[]>(getExternalStoreMessages);
59
- const messages = MessagePartMessages ?? messageMessages;
59
+ const messageMessages = useAssistantState<T[]>(({ message }) =>
60
+ getExternalStoreMessages(message),
61
+ );
62
+
63
+ const messages = partMessages ?? messageMessages;
60
64
  if (messages.length === 0) throw new Error("No original messages found");
61
65
  return messages;
62
66
  },
@@ -5,6 +5,16 @@ import { LocalThreadRuntimeCore } from "./LocalThreadRuntimeCore";
5
5
  export type LocalThreadFactory = () => LocalThreadRuntimeCore;
6
6
 
7
7
  const EMPTY_ARRAY = Object.freeze([]);
8
+ const DEFAULT_THREAD_ID = "__DEFAULT_ID__";
9
+ const DEFAULT_THREAD_DATA = Object.freeze({
10
+ [DEFAULT_THREAD_ID]: {
11
+ id: DEFAULT_THREAD_ID,
12
+ remoteId: undefined,
13
+ externalId: undefined,
14
+ status: "regular" as const,
15
+ title: undefined,
16
+ },
17
+ });
8
18
  export class LocalThreadListRuntimeCore
9
19
  extends BaseSubscribable
10
20
  implements ThreadListRuntimeCore
@@ -37,7 +47,11 @@ export class LocalThreadListRuntimeCore
37
47
  }
38
48
 
39
49
  public get mainThreadId(): string {
40
- return "__DEFAULT_ID__";
50
+ return DEFAULT_THREAD_ID;
51
+ }
52
+
53
+ public get threadData() {
54
+ return DEFAULT_THREAD_DATA;
41
55
  }
42
56
 
43
57
  public getThreadRuntimeCore(): never {
@@ -52,7 +66,7 @@ export class LocalThreadListRuntimeCore
52
66
  if (threadId === this.mainThreadId) {
53
67
  return {
54
68
  status: "regular" as const,
55
- threadId: this.mainThreadId,
69
+ id: this.mainThreadId,
56
70
  remoteId: this.mainThreadId,
57
71
  externalId: undefined,
58
72
  title: undefined,
@@ -58,10 +58,7 @@ export const EMPTY_THREAD_CORE: ThreadRuntimeCore = {
58
58
 
59
59
  composer: {
60
60
  attachments: [],
61
-
62
- getAttachmentAccept() {
63
- return "*";
64
- },
61
+ attachmentAccept: "*",
65
62
 
66
63
  async addAttachment() {
67
64
  throw EMPTY_THREAD_ERROR;
@@ -71,7 +68,7 @@ export const EMPTY_THREAD_CORE: ThreadRuntimeCore = {
71
68
  throw EMPTY_THREAD_ERROR;
72
69
  },
73
70
 
74
- isEditing: false,
71
+ isEditing: true,
75
72
 
76
73
  canCancel: false,
77
74
  isEmpty: true,
@@ -140,7 +137,7 @@ export const EMPTY_THREAD_CORE: ThreadRuntimeCore = {
140
137
  feedback: false,
141
138
  },
142
139
 
143
- isDisabled: true,
140
+ isDisabled: false,
144
141
  isLoading: false,
145
142
 
146
143
  messages: [],