@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
@@ -1,9 +1,8 @@
1
1
  "use client";
2
2
 
3
- import { useMessageRuntime } from "./MessageContext";
4
- import { useThreadRuntime } from "./ThreadContext";
5
- import { ComposerRuntime } from "../../api/ComposerRuntime";
6
- import { createStateHookForRuntime } from "./utils/createStateHookForRuntime";
3
+ import { useAssistantApi } from "..";
4
+ import { ComposerRuntime } from "../../../api/ComposerRuntime";
5
+ import { createStateHookForRuntime } from "../utils/createStateHookForRuntime";
7
6
 
8
7
  /**
9
8
  * Hook to access the ComposerRuntime from the current context.
@@ -52,11 +51,14 @@ export function useComposerRuntime(options?: {
52
51
  export function useComposerRuntime(options?: {
53
52
  optional?: boolean | undefined;
54
53
  }): ComposerRuntime | null {
55
- const messageRuntime = useMessageRuntime({ optional: true });
56
- const threadRuntime = useThreadRuntime(options);
57
- return messageRuntime
58
- ? messageRuntime.composer
59
- : (threadRuntime?.composer ?? null);
54
+ const api = useAssistantApi();
55
+ const runtime = api.composer.source
56
+ ? api.composer().__internal_getRuntime()
57
+ : null;
58
+ if (!runtime && !options?.optional) {
59
+ throw new Error("ComposerRuntime is not available");
60
+ }
61
+ return runtime;
60
62
  }
61
63
 
62
64
  /**
@@ -1,26 +1,9 @@
1
1
  "use client";
2
2
 
3
- import { createContext } from "react";
4
- import { ReadonlyStore } from "../ReadonlyStore";
5
- import { MessageUtilsState } from "../stores/MessageUtils";
6
- import { createContextHook } from "./utils/createContextHook";
7
- import { createContextStoreHook } from "./utils/createContextStoreHook";
8
- import { UseBoundStore } from "zustand";
9
- import { MessageRuntime } from "../../api/MessageRuntime";
10
- import { createStateHookForRuntime } from "./utils/createStateHookForRuntime";
11
- import { EditComposerRuntime } from "../../api";
12
-
13
- export type MessageContextValue = {
14
- useMessageRuntime: UseBoundStore<ReadonlyStore<MessageRuntime>>;
15
- useMessageUtils: UseBoundStore<ReadonlyStore<MessageUtilsState>>;
16
- };
17
-
18
- export const MessageContext = createContext<MessageContextValue | null>(null);
19
-
20
- const useMessageContext = createContextHook(
21
- MessageContext,
22
- "a component passed to <ThreadPrimitive.Messages components={...} />",
23
- );
3
+ import { MessageRuntime } from "../../../api/MessageRuntime";
4
+ import { useAssistantApi } from "..";
5
+ import { createStateHookForRuntime } from "../utils/createStateHookForRuntime";
6
+ import { EditComposerRuntime } from "../../../api";
24
7
 
25
8
  /**
26
9
  * Hook to access the MessageRuntime from the current context.
@@ -63,9 +46,14 @@ export function useMessageRuntime(options?: {
63
46
  export function useMessageRuntime(options?: {
64
47
  optional?: boolean | undefined;
65
48
  }) {
66
- const context = useMessageContext(options);
67
- if (!context) return null;
68
- return context.useMessageRuntime();
49
+ const api = useAssistantApi();
50
+ const runtime = api.message.source
51
+ ? api.message().__internal_getRuntime()
52
+ : null;
53
+ if (!runtime && !options?.optional) {
54
+ throw new Error("MessageRuntime is not available");
55
+ }
56
+ return runtime;
69
57
  }
70
58
 
71
59
  /**
@@ -100,8 +88,3 @@ const useEditComposerRuntime = (opt: {
100
88
  export const useEditComposer = createStateHookForRuntime(
101
89
  useEditComposerRuntime,
102
90
  );
103
-
104
- export const { useMessageUtils, useMessageUtilsStore } = createContextStoreHook(
105
- useMessageContext,
106
- "useMessageUtils",
107
- );
@@ -0,0 +1,24 @@
1
+ "use client";
2
+
3
+ import { MessagePartRuntime } from "../../../api/MessagePartRuntime";
4
+ import { createStateHookForRuntime } from "../utils/createStateHookForRuntime";
5
+ import { useAssistantApi } from "..";
6
+
7
+ export function useMessagePartRuntime(options?: {
8
+ optional?: false | undefined;
9
+ }): MessagePartRuntime;
10
+ export function useMessagePartRuntime(options?: {
11
+ optional?: boolean | undefined;
12
+ }): MessagePartRuntime | null;
13
+ export function useMessagePartRuntime(options?: {
14
+ optional?: boolean | undefined;
15
+ }) {
16
+ const api = useAssistantApi();
17
+ const runtime = api.part.source ? api.part().__internal_getRuntime() : null;
18
+ if (!runtime && !options?.optional) {
19
+ throw new Error("MessagePartRuntime is not available");
20
+ }
21
+ return runtime;
22
+ }
23
+
24
+ export const useMessagePart = createStateHookForRuntime(useMessagePartRuntime);
@@ -1,24 +1,11 @@
1
1
  "use client";
2
2
 
3
- import { createContext, useEffect, useState } from "react";
4
- import { ReadonlyStore } from "../ReadonlyStore";
5
- import { UseBoundStore } from "zustand";
6
- import { createContextHook } from "./utils/createContextHook";
7
- import { ThreadRuntime } from "../../api/ThreadRuntime";
8
- import { ModelContext } from "../../model-context";
9
- import { createStateHookForRuntime } from "./utils/createStateHookForRuntime";
10
- import { ThreadComposerRuntime } from "../../api";
11
-
12
- export type ThreadContextValue = {
13
- useThreadRuntime: UseBoundStore<ReadonlyStore<ThreadRuntime>>;
14
- };
15
-
16
- export const ThreadContext = createContext<ThreadContextValue | null>(null);
17
-
18
- const useThreadContext = createContextHook(
19
- ThreadContext,
20
- "AssistantRuntimeProvider",
21
- );
3
+ import { useState } from "react";
4
+ import { ThreadRuntime } from "../../../api/ThreadRuntime";
5
+ import { ModelContext } from "../../../model-context";
6
+ import { createStateHookForRuntime } from "../utils/createStateHookForRuntime";
7
+ import { ThreadComposerRuntime } from "../../../api";
8
+ import { useAssistantApi, useAssistantEvent } from "..";
22
9
 
23
10
  /**
24
11
  * Hook to access the ThreadRuntime from the current context.
@@ -50,9 +37,14 @@ export function useThreadRuntime(options?: {
50
37
  optional?: boolean | undefined;
51
38
  }): ThreadRuntime | null;
52
39
  export function useThreadRuntime(options?: { optional?: boolean | undefined }) {
53
- const context = useThreadContext(options);
54
- if (!context) return null;
55
- return context.useThreadRuntime();
40
+ const api = useAssistantApi();
41
+ const runtime = api.thread.source
42
+ ? api.thread().__internal_getRuntime()
43
+ : null;
44
+ if (!runtime && !options?.optional) {
45
+ throw new Error("ThreadRuntime is not available");
46
+ }
47
+ return runtime;
56
48
  }
57
49
 
58
50
  /**
@@ -95,9 +87,7 @@ export function useThreadModelContext(options?: {
95
87
  const [, rerender] = useState({});
96
88
 
97
89
  const runtime = useThreadRuntime(options);
98
- useEffect(() => {
99
- return runtime?.unstable_on("model-context-update", () => rerender({}));
100
- }, [runtime]);
90
+ useAssistantEvent("thread.model-context-update", () => rerender({}));
101
91
 
102
92
  if (!runtime) return null;
103
93
  return runtime?.getModelContext();
@@ -0,0 +1,28 @@
1
+ "use client";
2
+
3
+ import { ThreadListItemRuntime } from "../../../api/ThreadListItemRuntime";
4
+ import { createStateHookForRuntime } from "../utils/createStateHookForRuntime";
5
+ import { useAssistantApi } from "..";
6
+
7
+ export function useThreadListItemRuntime(options?: {
8
+ optional?: false | undefined;
9
+ }): ThreadListItemRuntime;
10
+ export function useThreadListItemRuntime(options?: {
11
+ optional?: boolean | undefined;
12
+ }): ThreadListItemRuntime | null;
13
+ export function useThreadListItemRuntime(options?: {
14
+ optional?: boolean | undefined;
15
+ }) {
16
+ const api = useAssistantApi();
17
+ const runtime = api.threadListItem.source
18
+ ? api.threadListItem().__internal_getRuntime()
19
+ : null;
20
+ if (!runtime && !options?.optional) {
21
+ throw new Error("ThreadListItemRuntime is not available");
22
+ }
23
+ return runtime;
24
+ }
25
+
26
+ export const useThreadListItem = createStateHookForRuntime(
27
+ useThreadListItemRuntime,
28
+ );
@@ -1,3 +1 @@
1
- export type { AssistantToolUIsState } from "./AssistantToolUIs";
2
- export type { MessageUtilsState } from "./MessageUtils";
3
1
  export type { ThreadViewportState } from "./ThreadViewport";
@@ -0,0 +1,24 @@
1
+ import { useEffect, useRef } from "react";
2
+ import { useAssistantApi } from "../context/react/AssistantApiContext";
3
+ import {
4
+ AssistantEventSelector,
5
+ AssistantEvents,
6
+ normalizeEventSelector,
7
+ } from "../types/EventTypes";
8
+
9
+ export const useAssistantEvent = <TEvent extends keyof AssistantEvents>(
10
+ selector: AssistantEventSelector<TEvent>,
11
+ callback: (e: AssistantEvents[TEvent]) => void,
12
+ ) => {
13
+ const api = useAssistantApi();
14
+ const callbackRef = useRef(callback);
15
+ useEffect(() => {
16
+ callbackRef.current = callback;
17
+ });
18
+
19
+ const { scope, event } = normalizeEventSelector(selector);
20
+ useEffect(
21
+ () => api.on({ scope, event }, (e) => callbackRef.current(e)),
22
+ [api, scope, event],
23
+ );
24
+ };
@@ -12,7 +12,7 @@ import {
12
12
  useContext,
13
13
  } from "react";
14
14
  import { z } from "zod";
15
- import { useAssistantRuntime } from "../context";
15
+ import { useAssistantApi } from "../context/react/AssistantApiContext";
16
16
  import { useComposedRefs } from "@radix-ui/react-compose-refs";
17
17
  import { tool } from "./tool";
18
18
 
@@ -72,11 +72,11 @@ export const makeAssistantVisible = <T extends ComponentType<any>>(
72
72
  const clickId = useId();
73
73
  const componentRef = useRef<HTMLElement>(null);
74
74
 
75
- const assistant = useAssistantRuntime();
75
+ const api = useAssistantApi();
76
76
 
77
77
  const { clickable, editable } = config ?? {};
78
78
  useEffect(() => {
79
- return assistant.registerModelContextProvider({
79
+ return api.registerModelContextProvider({
80
80
  getModelContext: () => {
81
81
  return {
82
82
  tools: {
@@ -89,7 +89,7 @@ export const makeAssistantVisible = <T extends ComponentType<any>>(
89
89
  };
90
90
  },
91
91
  });
92
- }, [isNestedReadable, assistant, clickable, editable]);
92
+ }, [isNestedReadable, api, clickable, editable]);
93
93
 
94
94
  const ref = useComposedRefs(componentRef, outerRef);
95
95
 
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { useEffect } from "react";
4
- import { useAssistantRuntime } from "../context";
4
+ import { useAssistantApi } from "../context/react/AssistantApiContext";
5
5
 
6
6
  export type AssistantInstructionsConfig = {
7
7
  disabled?: boolean | undefined;
@@ -19,7 +19,7 @@ export const useAssistantInstructions = (
19
19
  config: string | AssistantInstructionsConfig,
20
20
  ) => {
21
21
  const { instruction, disabled = false } = getInstructions(config);
22
- const assistantRuntime = useAssistantRuntime();
22
+ const api = useAssistantApi();
23
23
 
24
24
  useEffect(() => {
25
25
  if (disabled) return;
@@ -27,8 +27,8 @@ export const useAssistantInstructions = (
27
27
  const config = {
28
28
  system: instruction,
29
29
  };
30
- return assistantRuntime.registerModelContextProvider({
30
+ return api.registerModelContextProvider({
31
31
  getModelContext: () => config,
32
32
  });
33
- }, [assistantRuntime, instruction, disabled]);
33
+ }, [api, instruction, disabled]);
34
34
  };
@@ -1,10 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { useEffect } from "react";
4
- import {
5
- useAssistantRuntime,
6
- useToolUIsStore,
7
- } from "../context/react/AssistantContext";
4
+ import { useAssistantApi } from "../context/react/AssistantApiContext";
8
5
  import type { ToolCallMessagePartComponent } from "../types/MessagePartComponentTypes";
9
6
  import type { Tool } from "assistant-stream";
10
7
 
@@ -22,14 +19,12 @@ export const useAssistantTool = <
22
19
  >(
23
20
  tool: AssistantToolProps<TArgs, TResult>,
24
21
  ) => {
25
- const assistantRuntime = useAssistantRuntime();
26
- const toolUIsStore = useToolUIsStore();
22
+ const api = useAssistantApi();
27
23
 
28
24
  useEffect(() => {
29
- return tool.render
30
- ? toolUIsStore.getState().setToolUI(tool.toolName, tool.render)
31
- : undefined;
32
- }, [toolUIsStore, tool.toolName, tool.render]);
25
+ if (!tool.render) return undefined;
26
+ return api.toolUIs().setToolUI(tool.toolName, tool.render);
27
+ }, [api, tool.toolName, tool.render]);
33
28
 
34
29
  useEffect(() => {
35
30
  const { toolName, render, ...rest } = tool;
@@ -38,8 +33,8 @@ export const useAssistantTool = <
38
33
  [toolName]: rest,
39
34
  },
40
35
  };
41
- return assistantRuntime.registerModelContextProvider({
36
+ return api.registerModelContextProvider({
42
37
  getModelContext: () => context,
43
38
  });
44
- }, [assistantRuntime, tool]);
39
+ }, [api, tool]);
45
40
  };
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { useEffect } from "react";
4
- import { useToolUIsStore } from "../context/react/AssistantContext";
4
+ import { useAssistantApi } from "../context/react/AssistantApiContext";
5
5
  import type { ToolCallMessagePartComponent } from "../types/MessagePartComponentTypes";
6
6
 
7
7
  export type AssistantToolUIProps<TArgs, TResult> = {
@@ -12,9 +12,9 @@ export type AssistantToolUIProps<TArgs, TResult> = {
12
12
  export const useAssistantToolUI = (
13
13
  tool: AssistantToolUIProps<any, any> | null,
14
14
  ) => {
15
- const toolUIsStore = useToolUIsStore();
15
+ const api = useAssistantApi();
16
16
  useEffect(() => {
17
- if (!tool?.toolName || !tool?.render) return;
18
- return toolUIsStore.getState().setToolUI(tool.toolName, tool.render);
19
- }, [toolUIsStore, tool?.toolName, tool?.render]);
17
+ if (!tool?.toolName || !tool?.render) return undefined;
18
+ return api.toolUIs().setToolUI(tool.toolName, tool.render);
19
+ }, [api, tool?.toolName, tool?.render]);
20
20
  };
@@ -4,13 +4,8 @@ import { forwardRef } from "react";
4
4
  import { ActionButtonProps } from "../../utils/createActionButton";
5
5
  import { composeEventHandlers } from "@radix-ui/primitive";
6
6
  import { Primitive } from "@radix-ui/react-primitive";
7
- import { useMessageUtils } from "../../context";
8
7
  import { useCallback } from "react";
9
- import {
10
- useMessage,
11
- useMessageRuntime,
12
- } from "../../context/react/MessageContext";
13
- import { useComposerRuntime } from "../../context";
8
+ import { useAssistantState, useAssistantApi } from "../../context";
14
9
 
15
10
  /**
16
11
  * Hook that provides copy functionality for action bar buttons.
@@ -39,28 +34,27 @@ import { useComposerRuntime } from "../../context";
39
34
  const useActionBarPrimitiveCopy = ({
40
35
  copiedDuration = 3000,
41
36
  }: { copiedDuration?: number | undefined } = {}) => {
42
- const messageRuntime = useMessageRuntime();
43
- const composerRuntime = useComposerRuntime();
44
- const setIsCopied = useMessageUtils((s) => s.setIsCopied);
45
- const hasCopyableContent = useMessage((message) => {
37
+ const api = useAssistantApi();
38
+ const hasCopyableContent = useAssistantState(({ message }) => {
46
39
  return (
47
- (message.role !== "assistant" || message.status.type !== "running") &&
48
- message.content.some((c) => c.type === "text" && c.text.length > 0)
40
+ (message.role !== "assistant" || message.status?.type !== "running") &&
41
+ message.parts.some((c) => c.type === "text" && c.text.length > 0)
49
42
  );
50
43
  });
51
44
 
45
+ const isEditing = useAssistantState(({ composer }) => composer.isEditing);
46
+ const composerValue = useAssistantState(({ composer }) => composer.text);
47
+
52
48
  const callback = useCallback(() => {
53
- const { isEditing, text: composerValue } = composerRuntime.getState();
49
+ const valueToCopy = isEditing ? composerValue : api.message().getCopyText();
54
50
 
55
- const valueToCopy = isEditing
56
- ? composerValue
57
- : messageRuntime.unstable_getCopyText();
51
+ if (!valueToCopy) return;
58
52
 
59
53
  navigator.clipboard.writeText(valueToCopy).then(() => {
60
- setIsCopied(true);
61
- setTimeout(() => setIsCopied(false), copiedDuration);
54
+ api.message().setIsCopied(true);
55
+ setTimeout(() => api.message().setIsCopied(false), copiedDuration);
62
56
  });
63
- }, [messageRuntime, setIsCopied, composerRuntime, copiedDuration]);
57
+ }, [api, isEditing, composerValue, copiedDuration]);
64
58
 
65
59
  if (!hasCopyableContent) return null;
66
60
  return callback;
@@ -93,7 +87,7 @@ export const ActionBarPrimitiveCopy = forwardRef<
93
87
  ActionBarPrimitiveCopy.Element,
94
88
  ActionBarPrimitiveCopy.Props
95
89
  >(({ copiedDuration, onClick, disabled, ...props }, forwardedRef) => {
96
- const isCopied = useMessageUtils((u) => u.isCopied);
90
+ const isCopied = useAssistantState(({ message }) => message.isCopied);
97
91
  const callback = useActionBarPrimitiveCopy({ copiedDuration });
98
92
  return (
99
93
  <Primitive.button
@@ -6,7 +6,7 @@ import {
6
6
  createActionButton,
7
7
  } from "../../utils/createActionButton";
8
8
  import { useCallback } from "react";
9
- import { useEditComposer, useMessageRuntime } from "../../context";
9
+ import { useAssistantState, useAssistantApi } from "../../context";
10
10
 
11
11
  /**
12
12
  * Hook that provides edit functionality for action bar buttons.
@@ -30,12 +30,12 @@ import { useEditComposer, useMessageRuntime } from "../../context";
30
30
  * ```
31
31
  */
32
32
  const useActionBarEdit = () => {
33
- const messageRuntime = useMessageRuntime();
34
- const disabled = useEditComposer((c) => c.isEditing);
33
+ const api = useAssistantApi();
34
+ const disabled = useAssistantState(({ composer }) => composer.isEditing);
35
35
 
36
36
  const callback = useCallback(() => {
37
- messageRuntime.composer.beginEdit();
38
- }, [messageRuntime]);
37
+ api.composer().beginEdit();
38
+ }, [api]);
39
39
 
40
40
  if (disabled) return null;
41
41
  return callback;
@@ -3,17 +3,16 @@
3
3
  import { forwardRef } from "react";
4
4
  import { ActionButtonProps } from "../../utils/createActionButton";
5
5
  import { composeEventHandlers } from "@radix-ui/primitive";
6
- import { useMessage } from "../../context";
7
6
  import { Primitive } from "@radix-ui/react-primitive";
8
7
  import { useCallback } from "react";
9
- import { useMessageRuntime } from "../../context";
8
+ import { useAssistantState, useAssistantApi } from "../../context";
10
9
 
11
10
  const useActionBarFeedbackNegative = () => {
12
- const messageRuntime = useMessageRuntime();
11
+ const api = useAssistantApi();
13
12
 
14
13
  const callback = useCallback(() => {
15
- messageRuntime.submitFeedback({ type: "negative" });
16
- }, [messageRuntime]);
14
+ api.message().submitFeedback({ type: "negative" });
15
+ }, [api]);
17
16
 
18
17
  return callback;
19
18
  };
@@ -27,8 +26,8 @@ export const ActionBarPrimitiveFeedbackNegative = forwardRef<
27
26
  ActionBarPrimitiveFeedbackNegative.Element,
28
27
  ActionBarPrimitiveFeedbackNegative.Props
29
28
  >(({ onClick, disabled, ...props }, forwardedRef) => {
30
- const isSubmitted = useMessage(
31
- (u) => u.submittedFeedback?.type === "negative",
29
+ const isSubmitted = useAssistantState(
30
+ (s) => s.message.submittedFeedback?.type === "negative",
32
31
  );
33
32
  const callback = useActionBarFeedbackNegative();
34
33
  return (
@@ -3,15 +3,15 @@
3
3
  import { forwardRef, useCallback } from "react";
4
4
  import { ActionButtonProps } from "../../utils/createActionButton";
5
5
  import { composeEventHandlers } from "@radix-ui/primitive";
6
- import { useMessage, useMessageRuntime } from "../../context";
6
+ import { useAssistantState, useAssistantApi } from "../../context";
7
7
  import { Primitive } from "@radix-ui/react-primitive";
8
8
 
9
9
  const useActionBarFeedbackPositive = () => {
10
- const messageRuntime = useMessageRuntime();
10
+ const api = useAssistantApi();
11
11
 
12
12
  const callback = useCallback(() => {
13
- messageRuntime.submitFeedback({ type: "positive" });
14
- }, [messageRuntime]);
13
+ api.message().submitFeedback({ type: "positive" });
14
+ }, [api]);
15
15
 
16
16
  return callback;
17
17
  };
@@ -25,8 +25,8 @@ export const ActionBarPrimitiveFeedbackPositive = forwardRef<
25
25
  ActionBarPrimitiveFeedbackPositive.Element,
26
26
  ActionBarPrimitiveFeedbackPositive.Props
27
27
  >(({ onClick, disabled, ...props }, forwardedRef) => {
28
- const isSubmitted = useMessage(
29
- (u) => u.submittedFeedback?.type === "positive",
28
+ const isSubmitted = useAssistantState(
29
+ (s) => s.message.submittedFeedback?.type === "positive",
30
30
  );
31
31
  const callback = useActionBarFeedbackPositive();
32
32
  return (
@@ -6,9 +6,7 @@ import {
6
6
  createActionButton,
7
7
  } from "../../utils/createActionButton";
8
8
  import { useCallback } from "react";
9
- import { useMessageRuntime } from "../../context";
10
- import { useThreadRuntime } from "../../context/react/ThreadContext";
11
- import { useCombinedStore } from "../../utils/combined/useCombinedStore";
9
+ import { useAssistantState, useAssistantApi } from "../../context";
12
10
 
13
11
  /**
14
12
  * Hook that provides reload functionality for action bar buttons.
@@ -32,17 +30,18 @@ import { useCombinedStore } from "../../utils/combined/useCombinedStore";
32
30
  * ```
33
31
  */
34
32
  const useActionBarReload = () => {
35
- const messageRuntime = useMessageRuntime();
36
- const threadRuntime = useThreadRuntime();
33
+ const api = useAssistantApi();
37
34
 
38
- const disabled = useCombinedStore(
39
- [threadRuntime, messageRuntime],
40
- (t, m) => t.isRunning || t.isDisabled || m.role !== "assistant",
35
+ const disabled = useAssistantState(
36
+ (s) =>
37
+ s.thread.isRunning ||
38
+ s.thread.isDisabled ||
39
+ s.message.role !== "assistant",
41
40
  );
42
41
 
43
42
  const callback = useCallback(() => {
44
- messageRuntime.reload();
45
- }, [messageRuntime]);
43
+ api.message().reload();
44
+ }, [api]);
46
45
 
47
46
  if (disabled) return null;
48
47
  return callback;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { useCallback } from "react";
4
- import { useMessage, useMessageRuntime } from "../../context";
4
+ import { useAssistantState, useAssistantApi } from "../../context";
5
5
  import {
6
6
  ActionButtonElement,
7
7
  ActionButtonProps,
@@ -9,15 +9,15 @@ import {
9
9
  } from "../../utils/createActionButton";
10
10
 
11
11
  const useActionBarSpeak = () => {
12
- const messageRuntime = useMessageRuntime();
12
+ const api = useAssistantApi();
13
13
  const callback = useCallback(async () => {
14
- messageRuntime.speak();
15
- }, [messageRuntime]);
14
+ api.message().speak();
15
+ }, [api]);
16
16
 
17
- const hasSpeakableContent = useMessage((m) => {
17
+ const hasSpeakableContent = useAssistantState(({ message }) => {
18
18
  return (
19
- (m.role !== "assistant" || m.status.type !== "running") &&
20
- m.content.some((c) => c.type === "text" && c.text.length > 0)
19
+ (message.role !== "assistant" || message.status?.type !== "running") &&
20
+ message.parts.some((c) => c.type === "text" && c.text.length > 0)
21
21
  );
22
22
  });
23
23
 
@@ -6,18 +6,15 @@ import { useEscapeKeydown } from "@radix-ui/react-use-escape-keydown";
6
6
  import { Primitive } from "@radix-ui/react-primitive";
7
7
  import { composeEventHandlers } from "@radix-ui/primitive";
8
8
  import { useCallback } from "react";
9
- import {
10
- useMessage,
11
- useMessageRuntime,
12
- } from "../../context/react/MessageContext";
9
+ import { useAssistantState, useAssistantApi } from "../../context";
13
10
 
14
11
  const useActionBarStopSpeaking = () => {
15
- const messageRuntime = useMessageRuntime();
16
- const isSpeaking = useMessage((u) => u.speech != null);
12
+ const api = useAssistantApi();
13
+ const isSpeaking = useAssistantState(({ message }) => message.speech != null);
17
14
 
18
15
  const callback = useCallback(() => {
19
- messageRuntime.stopSpeaking();
20
- }, [messageRuntime]);
16
+ api.message().stopSpeaking();
17
+ }, [api]);
21
18
 
22
19
  if (!isSpeaking) return null;
23
20