@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
@@ -0,0 +1,87 @@
1
+ // src/client/ThreadListClient.ts
2
+ import { tapApi } from "../utils/tap-store/index.js";
3
+ import { resource, tapInlineResource, tapMemo } from "@assistant-ui/tap";
4
+ import { tapSubscribable } from "./util-hooks/tapSubscribable.js";
5
+ import {
6
+ ThreadListItemClient
7
+ } from "./ThreadListItemClient.js";
8
+ import {
9
+ ThreadClient
10
+ } from "./ThreadClient.js";
11
+ import { tapLookupResources } from "./util-hooks/tapLookupResources.js";
12
+ var ThreadListItemClientById = resource(
13
+ ({
14
+ runtime,
15
+ id,
16
+ events
17
+ }) => {
18
+ const threadListItemRuntime = tapMemo(
19
+ () => runtime.getItemById(id),
20
+ [runtime, id]
21
+ );
22
+ return tapInlineResource(
23
+ ThreadListItemClient({
24
+ runtime: threadListItemRuntime,
25
+ events
26
+ })
27
+ );
28
+ }
29
+ );
30
+ var ThreadListClient = resource(
31
+ ({
32
+ runtime,
33
+ events
34
+ }) => {
35
+ const runtimeState = tapSubscribable(runtime);
36
+ const main = tapInlineResource(
37
+ ThreadClient({
38
+ runtime: runtime.main,
39
+ events
40
+ })
41
+ );
42
+ const threadItems = tapLookupResources(
43
+ Object.keys(runtimeState.threadItems).map(
44
+ (id) => ThreadListItemClientById({ runtime, id, events }, { key: id })
45
+ )
46
+ );
47
+ const state = tapMemo(() => {
48
+ return {
49
+ mainThreadId: runtimeState.mainThreadId,
50
+ newThreadId: runtimeState.newThread,
51
+ isLoading: runtimeState.isLoading,
52
+ threadIds: runtimeState.threads,
53
+ archivedThreadIds: runtimeState.archivedThreads,
54
+ threadItems: threadItems.state,
55
+ main: main.state
56
+ };
57
+ }, [runtimeState, threadItems.state, main.state]);
58
+ const api = tapApi(state, {
59
+ thread: () => main.api,
60
+ item: (threadIdOrOptions) => {
61
+ if (threadIdOrOptions === "main") {
62
+ return threadItems.api({ key: state.mainThreadId });
63
+ }
64
+ if ("id" in threadIdOrOptions) {
65
+ return threadItems.api({ key: threadIdOrOptions.id });
66
+ }
67
+ const { index, archived = false } = threadIdOrOptions;
68
+ const id = archived ? state.archivedThreadIds[index] : state.threadIds[index];
69
+ return threadItems.api({ key: id });
70
+ },
71
+ switchToThread: (threadId) => {
72
+ runtime.switchToThread(threadId);
73
+ },
74
+ switchToNewThread: () => {
75
+ runtime.switchToNewThread();
76
+ }
77
+ });
78
+ return {
79
+ state,
80
+ api
81
+ };
82
+ }
83
+ );
84
+ export {
85
+ ThreadListClient
86
+ };
87
+ //# sourceMappingURL=ThreadListClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/client/ThreadListClient.ts"],"sourcesContent":["import { tapApi } from \"../utils/tap-store\";\nimport { resource, tapInlineResource, tapMemo } from \"@assistant-ui/tap\";\nimport { ThreadListRuntime } from \"../api/ThreadListRuntime\";\nimport { tapSubscribable } from \"./util-hooks/tapSubscribable\";\nimport {\n ThreadListItemClientState,\n ThreadListItemClientActions,\n ThreadListItemClient,\n} from \"./ThreadListItemClient\";\nimport {\n ThreadClient,\n ThreadClientActions,\n ThreadClientState,\n} from \"./ThreadClient\";\nimport { StoreApi } from \"../utils/tap-store/tap-store-api\";\nimport { tapLookupResources } from \"./util-hooks/tapLookupResources\";\nimport { EventManagerActions } from \"./EventManagerClient\";\n\nexport type ThreadListClientState = {\n readonly mainThreadId: string;\n readonly newThreadId: string | undefined;\n readonly isLoading: boolean;\n readonly threadIds: readonly string[];\n readonly archivedThreadIds: readonly string[];\n\n readonly threadItems: readonly ThreadListItemClientState[];\n\n readonly main: ThreadClientState;\n};\n\nexport type ThreadListClientActions = {\n switchToThread(threadId: string): void;\n switchToNewThread(): void;\n item(\n threadIdOrOptions:\n | \"main\"\n | { id: string }\n | { index: number; archived?: boolean },\n ): StoreApi<ThreadListItemClientState, ThreadListItemClientActions>;\n\n thread(selector: \"main\"): StoreApi<ThreadClientState, ThreadClientActions>;\n};\n\nconst ThreadListItemClientById = resource(\n ({\n runtime,\n id,\n events,\n }: {\n runtime: ThreadListRuntime;\n id: string;\n events: EventManagerActions;\n }) => {\n const threadListItemRuntime = tapMemo(\n () => runtime.getItemById(id),\n [runtime, id],\n );\n return tapInlineResource(\n ThreadListItemClient({\n runtime: threadListItemRuntime,\n events,\n }),\n );\n },\n);\n\nexport const ThreadListClient = resource(\n ({\n runtime,\n events,\n }: {\n runtime: ThreadListRuntime;\n events: EventManagerActions;\n }) => {\n const runtimeState = tapSubscribable(runtime);\n\n const main = tapInlineResource(\n ThreadClient({\n runtime: runtime.main,\n events,\n }),\n );\n\n const threadItems = tapLookupResources(\n Object.keys(runtimeState.threadItems).map((id) =>\n ThreadListItemClientById({ runtime, id, events }, { key: id }),\n ),\n );\n\n const state = tapMemo<ThreadListClientState>(() => {\n return {\n mainThreadId: runtimeState.mainThreadId,\n newThreadId: runtimeState.newThread,\n isLoading: runtimeState.isLoading,\n threadIds: runtimeState.threads,\n archivedThreadIds: runtimeState.archivedThreads,\n threadItems: threadItems.state,\n\n main: main.state,\n };\n }, [runtimeState, threadItems.state, main.state]);\n\n const api = tapApi<ThreadListClientState, ThreadListClientActions>(state, {\n thread: () => main.api,\n\n item: (threadIdOrOptions) => {\n if (threadIdOrOptions === \"main\") {\n return threadItems.api({ key: state.mainThreadId });\n }\n\n if (\"id\" in threadIdOrOptions) {\n return threadItems.api({ key: threadIdOrOptions.id });\n }\n\n const { index, archived = false } = threadIdOrOptions;\n const id = archived\n ? state.archivedThreadIds[index]!\n : state.threadIds[index]!;\n return threadItems.api({ key: id });\n },\n\n switchToThread: (threadId) => {\n runtime.switchToThread(threadId);\n },\n switchToNewThread: () => {\n runtime.switchToNewThread();\n },\n });\n\n return {\n state,\n api,\n };\n },\n);\n"],"mappings":";AAAA,SAAS,cAAc;AACvB,SAAS,UAAU,mBAAmB,eAAe;AAErD,SAAS,uBAAuB;AAChC;AAAA,EAGE;AAAA,OACK;AACP;AAAA,EACE;AAAA,OAGK;AAEP,SAAS,0BAA0B;AA4BnC,IAAM,2BAA2B;AAAA,EAC/B,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAIM;AACJ,UAAM,wBAAwB;AAAA,MAC5B,MAAM,QAAQ,YAAY,EAAE;AAAA,MAC5B,CAAC,SAAS,EAAE;AAAA,IACd;AACA,WAAO;AAAA,MACL,qBAAqB;AAAA,QACnB,SAAS;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAEO,IAAM,mBAAmB;AAAA,EAC9B,CAAC;AAAA,IACC;AAAA,IACA;AAAA,EACF,MAGM;AACJ,UAAM,eAAe,gBAAgB,OAAO;AAE5C,UAAM,OAAO;AAAA,MACX,aAAa;AAAA,QACX,SAAS,QAAQ;AAAA,QACjB;AAAA,MACF,CAAC;AAAA,IACH;AAEA,UAAM,cAAc;AAAA,MAClB,OAAO,KAAK,aAAa,WAAW,EAAE;AAAA,QAAI,CAAC,OACzC,yBAAyB,EAAE,SAAS,IAAI,OAAO,GAAG,EAAE,KAAK,GAAG,CAAC;AAAA,MAC/D;AAAA,IACF;AAEA,UAAM,QAAQ,QAA+B,MAAM;AACjD,aAAO;AAAA,QACL,cAAc,aAAa;AAAA,QAC3B,aAAa,aAAa;AAAA,QAC1B,WAAW,aAAa;AAAA,QACxB,WAAW,aAAa;AAAA,QACxB,mBAAmB,aAAa;AAAA,QAChC,aAAa,YAAY;AAAA,QAEzB,MAAM,KAAK;AAAA,MACb;AAAA,IACF,GAAG,CAAC,cAAc,YAAY,OAAO,KAAK,KAAK,CAAC;AAEhD,UAAM,MAAM,OAAuD,OAAO;AAAA,MACxE,QAAQ,MAAM,KAAK;AAAA,MAEnB,MAAM,CAAC,sBAAsB;AAC3B,YAAI,sBAAsB,QAAQ;AAChC,iBAAO,YAAY,IAAI,EAAE,KAAK,MAAM,aAAa,CAAC;AAAA,QACpD;AAEA,YAAI,QAAQ,mBAAmB;AAC7B,iBAAO,YAAY,IAAI,EAAE,KAAK,kBAAkB,GAAG,CAAC;AAAA,QACtD;AAEA,cAAM,EAAE,OAAO,WAAW,MAAM,IAAI;AACpC,cAAM,KAAK,WACP,MAAM,kBAAkB,KAAK,IAC7B,MAAM,UAAU,KAAK;AACzB,eAAO,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC;AAAA,MACpC;AAAA,MAEA,gBAAgB,CAAC,aAAa;AAC5B,gBAAQ,eAAe,QAAQ;AAAA,MACjC;AAAA,MACA,mBAAmB,MAAM;AACvB,gBAAQ,kBAAkB;AAAA,MAC5B;AAAA,IACF,CAAC;AAED,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,32 @@
1
+ import { ThreadListItemRuntime } from "../api/ThreadListItemRuntime";
2
+ import { ThreadListItemStatus } from "../types";
3
+ import { EventManagerActions } from "./EventManagerClient";
4
+ export type ThreadListItemClientState = {
5
+ readonly id: string;
6
+ readonly remoteId: string | undefined;
7
+ readonly externalId: string | undefined;
8
+ readonly title?: string | undefined;
9
+ readonly status: ThreadListItemStatus;
10
+ };
11
+ export type ThreadListItemClientActions = {
12
+ switchTo(): void;
13
+ rename(newTitle: string): void;
14
+ archive(): void;
15
+ unarchive(): void;
16
+ delete(): void;
17
+ generateTitle(): void;
18
+ initialize(): Promise<{
19
+ remoteId: string;
20
+ externalId: string | undefined;
21
+ }>;
22
+ detach(): void;
23
+ };
24
+ export declare const ThreadListItemClient: import("@assistant-ui/tap").ResourceElementConstructor<{
25
+ state: import("..").ThreadListItemState;
26
+ api: import("../utils/tap-store/tap-store-api").StoreApi<ThreadListItemClientState, ThreadListItemClientActions>;
27
+ key: string;
28
+ }, {
29
+ runtime: ThreadListItemRuntime;
30
+ events: EventManagerActions;
31
+ }>;
32
+ //# sourceMappingURL=ThreadListItemClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreadListItemClient.d.ts","sourceRoot":"","sources":["../../src/client/ThreadListItemClient.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAe,MAAM,UAAU,CAAC;AAG7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,IAAI,IAAI,CAAC;IAChB,SAAS,IAAI,IAAI,CAAC;IAClB,MAAM,IAAI,IAAI,CAAC;IACf,aAAa,IAAI,IAAI,CAAC;IACtB,UAAU,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IAC5E,MAAM,IAAI,IAAI,CAAC;CAIhB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;aAKpB,qBAAqB;YACtB,mBAAmB;EAiD9B,CAAC"}
@@ -0,0 +1,53 @@
1
+ // src/client/ThreadListItemClient.ts
2
+ import { resource, tapEffect } from "@assistant-ui/tap";
3
+ import { tapApi } from "../utils/tap-store/index.js";
4
+ import { tapSubscribable } from "./util-hooks/tapSubscribable.js";
5
+ var ThreadListItemClient = resource(
6
+ ({
7
+ runtime,
8
+ events
9
+ }) => {
10
+ const runtimeState = tapSubscribable(runtime);
11
+ tapEffect(() => {
12
+ const unsubscribers = [];
13
+ const threadListItemEvents = [
14
+ "switched-to",
15
+ "switched-away"
16
+ ];
17
+ for (const event of threadListItemEvents) {
18
+ const unsubscribe = runtime.unstable_on(event, () => {
19
+ events.emit(`thread-list-item.${event}`, {
20
+ threadId: runtime.getState().id
21
+ });
22
+ });
23
+ unsubscribers.push(unsubscribe);
24
+ }
25
+ return () => {
26
+ for (const unsub of unsubscribers) unsub();
27
+ };
28
+ }, [runtime, events]);
29
+ const api = tapApi(
30
+ runtimeState,
31
+ {
32
+ switchTo: runtime.switchTo,
33
+ rename: runtime.rename,
34
+ archive: runtime.archive,
35
+ unarchive: runtime.unarchive,
36
+ delete: runtime.delete,
37
+ generateTitle: runtime.generateTitle,
38
+ initialize: runtime.initialize,
39
+ detach: runtime.detach,
40
+ __internal_getRuntime: () => runtime
41
+ }
42
+ );
43
+ return {
44
+ state: runtimeState,
45
+ api,
46
+ key: runtimeState.id
47
+ };
48
+ }
49
+ );
50
+ export {
51
+ ThreadListItemClient
52
+ };
53
+ //# sourceMappingURL=ThreadListItemClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/client/ThreadListItemClient.ts"],"sourcesContent":["import { resource, tapEffect } from \"@assistant-ui/tap\";\nimport {\n ThreadListItemEventType,\n ThreadListItemRuntime,\n} from \"../api/ThreadListItemRuntime\";\nimport { ThreadListItemStatus, Unsubscribe } from \"../types\";\nimport { tapApi } from \"../utils/tap-store\";\nimport { tapSubscribable } from \"./util-hooks/tapSubscribable\";\nimport { EventManagerActions } from \"./EventManagerClient\";\n\nexport type ThreadListItemClientState = {\n readonly id: string;\n readonly remoteId: string | undefined;\n readonly externalId: string | undefined;\n readonly title?: string | undefined;\n readonly status: ThreadListItemStatus;\n};\n\nexport type ThreadListItemClientActions = {\n switchTo(): void;\n rename(newTitle: string): void;\n archive(): void;\n unarchive(): void;\n delete(): void;\n generateTitle(): void;\n initialize(): Promise<{ remoteId: string; externalId: string | undefined }>;\n detach(): void;\n\n /** @internal */\n __internal_getRuntime(): ThreadListItemRuntime;\n};\n\nexport const ThreadListItemClient = resource(\n ({\n runtime,\n events,\n }: {\n runtime: ThreadListItemRuntime;\n events: EventManagerActions;\n }) => {\n const runtimeState = tapSubscribable(runtime);\n\n // Bind thread list item events to event manager\n tapEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n // Subscribe to thread list item events\n const threadListItemEvents: ThreadListItemEventType[] = [\n \"switched-to\",\n \"switched-away\",\n ];\n\n for (const event of threadListItemEvents) {\n const unsubscribe = runtime.unstable_on(event, () => {\n events.emit(`thread-list-item.${event}`, {\n threadId: runtime.getState()!.id,\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, events]);\n\n const api = tapApi<ThreadListItemClientState, ThreadListItemClientActions>(\n runtimeState,\n {\n switchTo: runtime.switchTo,\n rename: runtime.rename,\n archive: runtime.archive,\n unarchive: runtime.unarchive,\n delete: runtime.delete,\n generateTitle: runtime.generateTitle,\n initialize: runtime.initialize,\n detach: runtime.detach,\n __internal_getRuntime: () => runtime,\n },\n );\n\n return {\n state: runtimeState,\n api,\n key: runtimeState.id,\n };\n },\n);\n"],"mappings":";AAAA,SAAS,UAAU,iBAAiB;AAMpC,SAAS,cAAc;AACvB,SAAS,uBAAuB;AAyBzB,IAAM,uBAAuB;AAAA,EAClC,CAAC;AAAA,IACC;AAAA,IACA;AAAA,EACF,MAGM;AACJ,UAAM,eAAe,gBAAgB,OAAO;AAG5C,cAAU,MAAM;AACd,YAAM,gBAA+B,CAAC;AAGtC,YAAM,uBAAkD;AAAA,QACtD;AAAA,QACA;AAAA,MACF;AAEA,iBAAW,SAAS,sBAAsB;AACxC,cAAM,cAAc,QAAQ,YAAY,OAAO,MAAM;AACnD,iBAAO,KAAK,oBAAoB,KAAK,IAAI;AAAA,YACvC,UAAU,QAAQ,SAAS,EAAG;AAAA,UAChC,CAAC;AAAA,QACH,CAAC;AACD,sBAAc,KAAK,WAAW;AAAA,MAChC;AAEA,aAAO,MAAM;AACX,mBAAW,SAAS,cAAe,OAAM;AAAA,MAC3C;AAAA,IACF,GAAG,CAAC,SAAS,MAAM,CAAC;AAEpB,UAAM,MAAM;AAAA,MACV;AAAA,MACA;AAAA,QACE,UAAU,QAAQ;AAAA,QAClB,QAAQ,QAAQ;AAAA,QAChB,SAAS,QAAQ;AAAA,QACjB,WAAW,QAAQ;AAAA,QACnB,QAAQ,QAAQ;AAAA,QAChB,eAAe,QAAQ;AAAA,QACvB,YAAY,QAAQ;AAAA,QACpB,QAAQ,QAAQ;AAAA,QAChB,uBAAuB,MAAM;AAAA,MAC/B;AAAA,IACF;AAEA,WAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA,KAAK,aAAa;AAAA,IACpB;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,16 @@
1
+ import { ResourceElement } from "@assistant-ui/tap";
2
+ import { ActionsObject } from "../../utils/tap-store";
3
+ import { StoreApi } from "../../utils/tap-store/tap-store-api";
4
+ export declare const tapLookupResources: <TState, TActions extends ActionsObject>(elements: ResourceElement<{
5
+ key: string | undefined;
6
+ state: TState;
7
+ api: StoreApi<TState, TActions>;
8
+ }>[]) => {
9
+ state: TState[];
10
+ api: (lookup: {
11
+ index: number;
12
+ } | {
13
+ key: string;
14
+ }) => StoreApi<TState, TActions>;
15
+ };
16
+ //# sourceMappingURL=tapLookupResources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tapLookupResources.d.ts","sourceRoot":"","sources":["../../../src/client/util-hooks/tapLookupResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAgB,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE/D,eAAO,MAAM,kBAAkB,GAAI,MAAM,EAAE,QAAQ,SAAS,aAAa,EACvE,UAAU,eAAe,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACjC,CAAC,EAAE;;kBAMY;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;CAepD,CAAC"}
@@ -0,0 +1,21 @@
1
+ // src/client/util-hooks/tapLookupResources.ts
2
+ import { tapResources } from "@assistant-ui/tap";
3
+ var tapLookupResources = (elements) => {
4
+ const resources = tapResources(elements);
5
+ return {
6
+ state: resources.map((r) => r.state),
7
+ api: (lookup) => {
8
+ const value = "index" in lookup ? resources[lookup.index]?.api : resources.find((r) => r.key === lookup.key)?.api;
9
+ if (!value) {
10
+ throw new Error(
11
+ `tapLookupResources: Resource not found for lookup: ${JSON.stringify(lookup)}`
12
+ );
13
+ }
14
+ return value;
15
+ }
16
+ };
17
+ };
18
+ export {
19
+ tapLookupResources
20
+ };
21
+ //# sourceMappingURL=tapLookupResources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/util-hooks/tapLookupResources.ts"],"sourcesContent":["import { ResourceElement, tapResources } from \"@assistant-ui/tap\";\nimport { ActionsObject } from \"../../utils/tap-store\";\nimport { StoreApi } from \"../../utils/tap-store/tap-store-api\";\n\nexport const tapLookupResources = <TState, TActions extends ActionsObject>(\n elements: ResourceElement<{\n key: string | undefined;\n state: TState;\n api: StoreApi<TState, TActions>;\n }>[],\n) => {\n const resources = tapResources(elements);\n\n return {\n state: resources.map((r) => r.state),\n api: (lookup: { index: number } | { key: string }) => {\n const value =\n \"index\" in lookup\n ? resources[lookup.index]?.api\n : resources.find((r) => r.key === lookup.key)?.api;\n\n if (!value) {\n throw new Error(\n `tapLookupResources: Resource not found for lookup: ${JSON.stringify(lookup)}`,\n );\n }\n\n return value;\n },\n };\n};\n"],"mappings":";AAAA,SAA0B,oBAAoB;AAIvC,IAAM,qBAAqB,CAChC,aAKG;AACH,QAAM,YAAY,aAAa,QAAQ;AAEvC,SAAO;AAAA,IACL,OAAO,UAAU,IAAI,CAAC,MAAM,EAAE,KAAK;AAAA,IACnC,KAAK,CAAC,WAAgD;AACpD,YAAM,QACJ,WAAW,SACP,UAAU,OAAO,KAAK,GAAG,MACzB,UAAU,KAAK,CAAC,MAAM,EAAE,QAAQ,OAAO,GAAG,GAAG;AAEnD,UAAI,CAAC,OAAO;AACV,cAAM,IAAI;AAAA,UACR,sDAAsD,KAAK,UAAU,MAAM,CAAC;AAAA,QAC9E;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,3 @@
1
+ import { SubscribableWithState } from "../../api/subscribable/Subscribable";
2
+ export declare const tapSubscribable: <T>(subscribable: Omit<SubscribableWithState<T, any>, "path">) => T;
3
+ //# sourceMappingURL=tapSubscribable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tapSubscribable.d.ts","sourceRoot":"","sources":["../../../src/client/util-hooks/tapSubscribable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,eAAO,MAAM,eAAe,GAAI,CAAC,EAC/B,cAAc,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAW1D,CAAC"}
@@ -0,0 +1,16 @@
1
+ // src/client/util-hooks/tapSubscribable.ts
2
+ import { tapState, tapEffect } from "@assistant-ui/tap";
3
+ var tapSubscribable = (subscribable) => {
4
+ const [, setState] = tapState(subscribable.getState);
5
+ tapEffect(() => {
6
+ setState(subscribable.getState());
7
+ return subscribable.subscribe(() => {
8
+ setState(subscribable.getState());
9
+ });
10
+ }, [subscribable]);
11
+ return subscribable.getState();
12
+ };
13
+ export {
14
+ tapSubscribable
15
+ };
16
+ //# sourceMappingURL=tapSubscribable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/util-hooks/tapSubscribable.ts"],"sourcesContent":["import { tapState, tapEffect } from \"@assistant-ui/tap\";\nimport { SubscribableWithState } from \"../../api/subscribable/Subscribable\";\n\nexport const tapSubscribable = <T>(\n subscribable: Omit<SubscribableWithState<T, any>, \"path\">,\n) => {\n const [, setState] = tapState(subscribable.getState);\n tapEffect(() => {\n setState(subscribable.getState());\n return subscribable.subscribe(() => {\n setState(subscribable.getState());\n });\n }, [subscribable]);\n\n return subscribable.getState();\n};\n"],"mappings":";AAAA,SAAS,UAAU,iBAAiB;AAG7B,IAAM,kBAAkB,CAC7B,iBACG;AACH,QAAM,CAAC,EAAE,QAAQ,IAAI,SAAS,aAAa,QAAQ;AACnD,YAAU,MAAM;AACd,aAAS,aAAa,SAAS,CAAC;AAChC,WAAO,aAAa,UAAU,MAAM;AAClC,eAAS,aAAa,SAAS,CAAC;AAAA,IAClC,CAAC;AAAA,EACH,GAAG,CAAC,YAAY,CAAC;AAEjB,SAAO,aAAa,SAAS;AAC/B;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantCloudThreadHistoryAdapter.d.ts","sourceRoot":"","sources":["../../src/cloud/AssistantCloudThreadHistoryAdapter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAEhG,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAwKjD,eAAO,MAAM,qCAAqC,GAChD,UAAU,SAAS,CAAC,cAAc,CAAC,KAClC,oBAQF,CAAC"}
1
+ {"version":3,"file":"AssistantCloudThreadHistoryAdapter.d.ts","sourceRoot":"","sources":["../../src/cloud/AssistantCloudThreadHistoryAdapter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAEhG,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAqLjD,eAAO,MAAM,qCAAqC,GAChD,UAAU,SAAS,CAAC,cAAc,CAAC,KAClC,oBAOF,CAAC"}
@@ -1,7 +1,9 @@
1
1
  // src/cloud/AssistantCloudThreadHistoryAdapter.tsx
2
2
  import { useState } from "react";
3
- import { useThreadListItemRuntime } from "../context/index.js";
4
3
  import { auiV0Decode, auiV0Encode } from "./auiV0.js";
4
+ import {
5
+ useAssistantApi
6
+ } from "../context/react/AssistantApiContext.js";
5
7
  var globalMessageIdMapping = /* @__PURE__ */ new WeakMap();
6
8
  var FormattedThreadHistoryAdapter = class {
7
9
  constructor(parent, formatAdapter) {
@@ -26,21 +28,28 @@ var FormattedThreadHistoryAdapter = class {
26
28
  }
27
29
  };
28
30
  var AssistantCloudThreadHistoryAdapter = class {
29
- constructor(cloudRef, threadListItemRuntime) {
31
+ constructor(cloudRef, store) {
30
32
  this.cloudRef = cloudRef;
31
- this.threadListItemRuntime = threadListItemRuntime;
33
+ this.store = store;
32
34
  }
33
35
  get _getIdForLocalId() {
34
- if (!globalMessageIdMapping.has(this.threadListItemRuntime)) {
35
- globalMessageIdMapping.set(this.threadListItemRuntime, {});
36
+ if (!globalMessageIdMapping.has(
37
+ this.store.threadListItem().__internal_getRuntime()
38
+ )) {
39
+ globalMessageIdMapping.set(
40
+ this.store.threadListItem().__internal_getRuntime(),
41
+ {}
42
+ );
36
43
  }
37
- return globalMessageIdMapping.get(this.threadListItemRuntime);
44
+ return globalMessageIdMapping.get(
45
+ this.store.threadListItem().__internal_getRuntime()
46
+ );
38
47
  }
39
48
  withFormat(formatAdapter) {
40
49
  return new FormattedThreadHistoryAdapter(this, formatAdapter);
41
50
  }
42
51
  async append({ parentId, message }) {
43
- const { remoteId } = await this.threadListItemRuntime.initialize();
52
+ const { remoteId } = await this.store.threadListItem().initialize();
44
53
  const task = this.cloudRef.current.threads.messages.create(remoteId, {
45
54
  parent_id: parentId ? await this._getIdForLocalId[parentId] ?? parentId : null,
46
55
  format: "aui/v0",
@@ -54,7 +63,7 @@ var AssistantCloudThreadHistoryAdapter = class {
54
63
  });
55
64
  }
56
65
  async load() {
57
- const remoteId = this.threadListItemRuntime.getState().remoteId;
66
+ const remoteId = this.store.threadListItem().getState().remoteId;
58
67
  if (!remoteId) return { messages: [] };
59
68
  const { messages } = await this.cloudRef.current.threads.messages.list(
60
69
  remoteId,
@@ -71,7 +80,7 @@ var AssistantCloudThreadHistoryAdapter = class {
71
80
  }
72
81
  // Internal methods for FormattedThreadHistoryAdapter
73
82
  async _appendWithFormat(parentId, messageId, format, content) {
74
- const { remoteId } = await this.threadListItemRuntime.initialize();
83
+ const { remoteId } = await this.store.threadListItem().initialize();
75
84
  const task = this.cloudRef.current.threads.messages.create(remoteId, {
76
85
  parent_id: parentId ? await this._getIdForLocalId[parentId] ?? parentId : null,
77
86
  format,
@@ -85,7 +94,7 @@ var AssistantCloudThreadHistoryAdapter = class {
85
94
  });
86
95
  }
87
96
  async _loadWithFormat(format, decoder) {
88
- const remoteId = this.threadListItemRuntime.getState().remoteId;
97
+ const remoteId = this.store.threadListItem().getState().remoteId;
89
98
  if (!remoteId) return { messages: [] };
90
99
  const { messages } = await this.cloudRef.current.threads.messages.list(
91
100
  remoteId,
@@ -106,9 +115,9 @@ var AssistantCloudThreadHistoryAdapter = class {
106
115
  }
107
116
  };
108
117
  var useAssistantCloudThreadHistoryAdapter = (cloudRef) => {
109
- const threadListItemRuntime = useThreadListItemRuntime();
118
+ const store = useAssistantApi();
110
119
  const [adapter] = useState(
111
- () => new AssistantCloudThreadHistoryAdapter(cloudRef, threadListItemRuntime)
120
+ () => new AssistantCloudThreadHistoryAdapter(cloudRef, store)
112
121
  );
113
122
  return adapter;
114
123
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cloud/AssistantCloudThreadHistoryAdapter.tsx"],"sourcesContent":["import { RefObject, useState } from \"react\";\nimport { useThreadListItemRuntime } from \"../context\";\nimport { ThreadHistoryAdapter } from \"../runtimes/adapters/thread-history/ThreadHistoryAdapter\";\nimport { ExportedMessageRepositoryItem } from \"../runtimes/utils/MessageRepository\";\nimport { AssistantCloud } from \"assistant-cloud\";\nimport { auiV0Decode, auiV0Encode } from \"./auiV0\";\nimport { ThreadListItemRuntime } from \"../api\";\nimport {\n MessageFormatAdapter,\n MessageFormatItem,\n MessageFormatRepository,\n MessageStorageEntry,\n} from \"../runtimes/adapters/thread-history/MessageFormatAdapter\";\nimport { GenericThreadHistoryAdapter } from \"../runtimes/adapters/thread-history/ThreadHistoryAdapter\";\nimport { ReadonlyJSONObject } from \"assistant-stream/utils\";\n\n// Global WeakMap to store message ID mappings across adapter instances\nconst globalMessageIdMapping = new WeakMap<\n ThreadListItemRuntime,\n Record<string, string | Promise<string>>\n>();\n\nclass FormattedThreadHistoryAdapter<TMessage, TStorageFormat>\n implements GenericThreadHistoryAdapter<TMessage>\n{\n constructor(\n private parent: AssistantCloudThreadHistoryAdapter,\n private formatAdapter: MessageFormatAdapter<TMessage, TStorageFormat>,\n ) {}\n\n async append(item: MessageFormatItem<TMessage>) {\n // Encode the message using the format adapter\n const encoded = this.formatAdapter.encode(item);\n const messageId = this.formatAdapter.getId(item.message);\n\n // Delegate to parent's internal append method with the encoded format\n return this.parent._appendWithFormat(\n item.parentId,\n messageId,\n this.formatAdapter.format,\n encoded,\n );\n }\n\n async load(): Promise<MessageFormatRepository<TMessage>> {\n // Delegate to parent's internal load method with format filter\n return this.parent._loadWithFormat(\n this.formatAdapter.format,\n (message: MessageStorageEntry<TStorageFormat>) =>\n this.formatAdapter.decode(message),\n );\n }\n}\n\nclass AssistantCloudThreadHistoryAdapter implements ThreadHistoryAdapter {\n constructor(\n private cloudRef: RefObject<AssistantCloud>,\n private threadListItemRuntime: ThreadListItemRuntime,\n ) {}\n\n private get _getIdForLocalId(): Record<string, string | Promise<string>> {\n if (!globalMessageIdMapping.has(this.threadListItemRuntime)) {\n globalMessageIdMapping.set(this.threadListItemRuntime, {});\n }\n return globalMessageIdMapping.get(this.threadListItemRuntime)!;\n }\n\n withFormat<TMessage, TStorageFormat>(\n formatAdapter: MessageFormatAdapter<TMessage, TStorageFormat>,\n ): GenericThreadHistoryAdapter<TMessage> {\n return new FormattedThreadHistoryAdapter(this, formatAdapter);\n }\n\n async append({ parentId, message }: ExportedMessageRepositoryItem) {\n const { remoteId } = await this.threadListItemRuntime.initialize();\n const task = this.cloudRef.current.threads.messages\n .create(remoteId, {\n parent_id: parentId\n ? ((await this._getIdForLocalId[parentId]) ?? parentId)\n : null,\n format: \"aui/v0\",\n content: auiV0Encode(message),\n })\n .then(({ message_id }) => {\n this._getIdForLocalId[message.id] = message_id;\n return message_id;\n });\n\n this._getIdForLocalId[message.id] = task;\n\n return task.then(() => {});\n }\n\n async load() {\n const remoteId = this.threadListItemRuntime.getState().remoteId;\n if (!remoteId) return { messages: [] };\n const { messages } = await this.cloudRef.current.threads.messages.list(\n remoteId,\n {\n format: \"aui/v0\",\n },\n );\n const payload = {\n messages: messages\n .filter(\n (m): m is typeof m & { format: \"aui/v0\" } => m.format === \"aui/v0\",\n )\n .map(auiV0Decode)\n .reverse(),\n };\n return payload;\n }\n\n // Internal methods for FormattedThreadHistoryAdapter\n async _appendWithFormat<T>(\n parentId: string | null,\n messageId: string,\n format: string,\n content: T,\n ) {\n const { remoteId } = await this.threadListItemRuntime.initialize();\n\n const task = this.cloudRef.current.threads.messages\n .create(remoteId, {\n parent_id: parentId\n ? ((await this._getIdForLocalId[parentId]) ?? parentId)\n : null,\n format,\n content: content as ReadonlyJSONObject,\n })\n .then(({ message_id }) => {\n this._getIdForLocalId[messageId] = message_id;\n return message_id;\n });\n\n this._getIdForLocalId[messageId] = task;\n\n return task.then(() => {});\n }\n\n async _loadWithFormat<TMessage, TStorageFormat>(\n format: string,\n decoder: (\n message: MessageStorageEntry<TStorageFormat>,\n ) => MessageFormatItem<TMessage>,\n ): Promise<MessageFormatRepository<TMessage>> {\n const remoteId = this.threadListItemRuntime.getState().remoteId;\n if (!remoteId) return { messages: [] };\n\n const { messages } = await this.cloudRef.current.threads.messages.list(\n remoteId,\n {\n format,\n },\n );\n\n return {\n messages: messages\n .filter((m) => m.format === format)\n .map((m) =>\n decoder({\n id: m.id,\n parent_id: m.parent_id,\n format: m.format,\n content: m.content as TStorageFormat,\n }),\n )\n .reverse(),\n };\n }\n}\n\nexport const useAssistantCloudThreadHistoryAdapter = (\n cloudRef: RefObject<AssistantCloud>,\n): ThreadHistoryAdapter => {\n const threadListItemRuntime = useThreadListItemRuntime();\n const [adapter] = useState(\n () =>\n new AssistantCloudThreadHistoryAdapter(cloudRef, threadListItemRuntime),\n );\n\n return adapter;\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/cloud/AssistantCloudThreadHistoryAdapter.tsx"],"sourcesContent":["import { RefObject, useState } from \"react\";\nimport { ThreadHistoryAdapter } from \"../runtimes/adapters/thread-history/ThreadHistoryAdapter\";\nimport { ExportedMessageRepositoryItem } from \"../runtimes/utils/MessageRepository\";\nimport { AssistantCloud } from \"assistant-cloud\";\nimport { auiV0Decode, auiV0Encode } from \"./auiV0\";\nimport {\n MessageFormatAdapter,\n MessageFormatItem,\n MessageFormatRepository,\n MessageStorageEntry,\n} from \"../runtimes/adapters/thread-history/MessageFormatAdapter\";\nimport { GenericThreadHistoryAdapter } from \"../runtimes/adapters/thread-history/ThreadHistoryAdapter\";\nimport { ReadonlyJSONObject } from \"assistant-stream/utils\";\nimport {\n AssistantApi,\n useAssistantApi,\n} from \"../context/react/AssistantApiContext\";\nimport { ThreadListItemRuntime } from \"../api\";\n\n// Global WeakMap to store message ID mappings across adapter instances\nconst globalMessageIdMapping = new WeakMap<\n ThreadListItemRuntime,\n Record<string, string | Promise<string>>\n>();\n\nclass FormattedThreadHistoryAdapter<TMessage, TStorageFormat>\n implements GenericThreadHistoryAdapter<TMessage>\n{\n constructor(\n private parent: AssistantCloudThreadHistoryAdapter,\n private formatAdapter: MessageFormatAdapter<TMessage, TStorageFormat>,\n ) {}\n\n async append(item: MessageFormatItem<TMessage>) {\n // Encode the message using the format adapter\n const encoded = this.formatAdapter.encode(item);\n const messageId = this.formatAdapter.getId(item.message);\n\n // Delegate to parent's internal append method with the encoded format\n return this.parent._appendWithFormat(\n item.parentId,\n messageId,\n this.formatAdapter.format,\n encoded,\n );\n }\n\n async load(): Promise<MessageFormatRepository<TMessage>> {\n // Delegate to parent's internal load method with format filter\n return this.parent._loadWithFormat(\n this.formatAdapter.format,\n (message: MessageStorageEntry<TStorageFormat>) =>\n this.formatAdapter.decode(message),\n );\n }\n}\n\nclass AssistantCloudThreadHistoryAdapter implements ThreadHistoryAdapter {\n constructor(\n private cloudRef: RefObject<AssistantCloud>,\n private store: AssistantApi,\n ) {}\n\n private get _getIdForLocalId(): Record<string, string | Promise<string>> {\n if (\n !globalMessageIdMapping.has(\n this.store.threadListItem().__internal_getRuntime(),\n )\n ) {\n globalMessageIdMapping.set(\n this.store.threadListItem().__internal_getRuntime(),\n {},\n );\n }\n return globalMessageIdMapping.get(\n this.store.threadListItem().__internal_getRuntime(),\n )!;\n }\n\n withFormat<TMessage, TStorageFormat>(\n formatAdapter: MessageFormatAdapter<TMessage, TStorageFormat>,\n ): GenericThreadHistoryAdapter<TMessage> {\n return new FormattedThreadHistoryAdapter(this, formatAdapter);\n }\n\n async append({ parentId, message }: ExportedMessageRepositoryItem) {\n const { remoteId } = await this.store.threadListItem().initialize();\n const task = this.cloudRef.current.threads.messages\n .create(remoteId, {\n parent_id: parentId\n ? ((await this._getIdForLocalId[parentId]) ?? parentId)\n : null,\n format: \"aui/v0\",\n content: auiV0Encode(message),\n })\n .then(({ message_id }) => {\n this._getIdForLocalId[message.id] = message_id;\n return message_id;\n });\n\n this._getIdForLocalId[message.id] = task;\n\n return task.then(() => {});\n }\n\n async load() {\n const remoteId = this.store.threadListItem().getState().remoteId;\n if (!remoteId) return { messages: [] };\n const { messages } = await this.cloudRef.current.threads.messages.list(\n remoteId,\n {\n format: \"aui/v0\",\n },\n );\n const payload = {\n messages: messages\n .filter(\n (m): m is typeof m & { format: \"aui/v0\" } => m.format === \"aui/v0\",\n )\n .map(auiV0Decode)\n .reverse(),\n };\n return payload;\n }\n\n // Internal methods for FormattedThreadHistoryAdapter\n async _appendWithFormat<T>(\n parentId: string | null,\n messageId: string,\n format: string,\n content: T,\n ) {\n const { remoteId } = await this.store.threadListItem().initialize();\n\n const task = this.cloudRef.current.threads.messages\n .create(remoteId, {\n parent_id: parentId\n ? ((await this._getIdForLocalId[parentId]) ?? parentId)\n : null,\n format,\n content: content as ReadonlyJSONObject,\n })\n .then(({ message_id }) => {\n this._getIdForLocalId[messageId] = message_id;\n return message_id;\n });\n\n this._getIdForLocalId[messageId] = task;\n\n return task.then(() => {});\n }\n\n async _loadWithFormat<TMessage, TStorageFormat>(\n format: string,\n decoder: (\n message: MessageStorageEntry<TStorageFormat>,\n ) => MessageFormatItem<TMessage>,\n ): Promise<MessageFormatRepository<TMessage>> {\n const remoteId = this.store.threadListItem().getState().remoteId;\n if (!remoteId) return { messages: [] };\n\n const { messages } = await this.cloudRef.current.threads.messages.list(\n remoteId,\n {\n format,\n },\n );\n\n return {\n messages: messages\n .filter((m) => m.format === format)\n .map((m) =>\n decoder({\n id: m.id,\n parent_id: m.parent_id,\n format: m.format,\n content: m.content as TStorageFormat,\n }),\n )\n .reverse(),\n };\n }\n}\n\nexport const useAssistantCloudThreadHistoryAdapter = (\n cloudRef: RefObject<AssistantCloud>,\n): ThreadHistoryAdapter => {\n const store = useAssistantApi();\n const [adapter] = useState(\n () => new AssistantCloudThreadHistoryAdapter(cloudRef, store),\n );\n\n return adapter;\n};\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import { FC, PropsWithChildren } from "react";
2
2
  import { AssistantRuntime } from "../../api/AssistantRuntime";
3
- export declare namespace AssistantRuntimeProvider {
3
+ export declare namespace AssistantProvider {
4
4
  type Props = PropsWithChildren<{
5
5
  /**
6
6
  * The runtime to provide to the rest of your app.
@@ -8,6 +8,6 @@ export declare namespace AssistantRuntimeProvider {
8
8
  runtime: AssistantRuntime;
9
9
  }>;
10
10
  }
11
- export declare const AssistantRuntimeProviderImpl: FC<AssistantRuntimeProvider.Props>;
12
- export declare const AssistantRuntimeProvider: import("react").NamedExoticComponent<AssistantRuntimeProvider.Props>;
11
+ export declare const AssistantRuntimeProviderImpl: FC<AssistantProvider.Props>;
12
+ export declare const AssistantRuntimeProvider: import("react").NamedExoticComponent<AssistantProvider.Props>;
13
13
  //# sourceMappingURL=AssistantRuntimeProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantRuntimeProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/AssistantRuntimeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,EAAE,EACF,iBAAiB,EAKlB,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAM9D,yBAAiB,wBAAwB,CAAC;IACxC,KAAY,KAAK,GAAG,iBAAiB,CAAC;QACpC;;WAEG;QACH,OAAO,EAAE,gBAAgB,CAAC;KAC3B,CAAC,CAAC;CACJ;AAuBD,eAAO,MAAM,4BAA4B,EAAE,EAAE,CAC3C,wBAAwB,CAAC,KAAK,CAwB/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,sEAAqC,CAAC"}
1
+ {"version":3,"file":"AssistantRuntimeProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/AssistantRuntimeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAM9D,yBAAiB,iBAAiB,CAAC;IACjC,KAAY,KAAK,GAAG,iBAAiB,CAAC;QACpC;;WAEG;QACH,OAAO,EAAE,gBAAgB,CAAC;KAC3B,CAAC,CAAC;CACJ;AAMD,eAAO,MAAM,4BAA4B,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAepE,CAAC;AAEF,eAAO,MAAM,wBAAwB,+DAAqC,CAAC"}
@@ -1,57 +1,29 @@
1
1
  "use client";
2
2
 
3
3
  // src/context/providers/AssistantRuntimeProvider.tsx
4
- import {
5
- memo,
6
- useEffect,
7
- useMemo,
8
- useState
9
- } from "react";
10
- import { AssistantContext } from "../react/AssistantContext.js";
11
- import { makeAssistantToolUIsStore } from "../stores/AssistantToolUIs.js";
12
- import { ThreadRuntimeProvider } from "./ThreadRuntimeProvider.js";
13
- import { create } from "zustand";
14
- import { writableStore } from "../ReadonlyStore.js";
15
- import { ensureBinding } from "../react/utils/ensureBinding.js";
4
+ import { memo } from "react";
5
+ import { AssistantApiProvider } from "../react/AssistantApiContext.js";
6
+ import { useAssistantRuntimeClient } from "../../client/AssistantRuntimeClient.js";
7
+ import { ThreadViewportProvider } from "./ThreadViewportProvider.js";
16
8
  import { jsx, jsxs } from "react/jsx-runtime";
17
- var useAssistantRuntimeStore = (runtime) => {
18
- const [store] = useState(() => create(() => runtime));
19
- useEffect(() => {
20
- ensureBinding(runtime);
21
- ensureBinding(runtime.threads);
22
- writableStore(store).setState(runtime, true);
23
- }, [runtime, store]);
24
- return store;
25
- };
26
- var useAssistantToolUIsStore = () => {
27
- return useMemo(() => makeAssistantToolUIsStore(), []);
28
- };
29
9
  var getRenderComponent = (runtime) => {
30
10
  return runtime._core?.RenderComponent;
31
11
  };
32
- var AssistantRuntimeProviderImpl = ({ children, runtime }) => {
33
- const useAssistantRuntime = useAssistantRuntimeStore(runtime);
34
- const useToolUIs = useAssistantToolUIsStore();
35
- const [context] = useState(() => {
36
- return {
37
- useToolUIs,
38
- useAssistantRuntime
39
- };
40
- });
12
+ var AssistantRuntimeProviderImpl = ({
13
+ children,
14
+ runtime
15
+ }) => {
16
+ const api = useAssistantRuntimeClient(runtime);
41
17
  const RenderComponent = getRenderComponent(runtime);
42
- return /* @__PURE__ */ jsxs(AssistantContext.Provider, { value: context, children: [
18
+ return /* @__PURE__ */ jsxs(AssistantProvider, { api, children: [
43
19
  RenderComponent && /* @__PURE__ */ jsx(RenderComponent, {}),
44
- /* @__PURE__ */ jsx(
45
- ThreadRuntimeProvider,
46
- {
47
- runtime: runtime.thread,
48
- listItemRuntime: runtime.threads.mainItem,
49
- children
50
- }
51
- )
20
+ children
52
21
  ] });
53
22
  };
54
23
  var AssistantRuntimeProvider = memo(AssistantRuntimeProviderImpl);
24
+ var AssistantProvider = ({ children, api }) => {
25
+ return /* @__PURE__ */ jsx(AssistantApiProvider, { api, children: /* @__PURE__ */ jsx(ThreadViewportProvider, { children }) });
26
+ };
55
27
  export {
56
28
  AssistantRuntimeProvider,
57
29
  AssistantRuntimeProviderImpl
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/providers/AssistantRuntimeProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n FC,\n PropsWithChildren,\n memo,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { AssistantContext } from \"../react/AssistantContext\";\nimport { makeAssistantToolUIsStore } from \"../stores/AssistantToolUIs\";\nimport { ThreadRuntimeProvider } from \"./ThreadRuntimeProvider\";\nimport { AssistantRuntime } from \"../../api/AssistantRuntime\";\nimport { create } from \"zustand\";\nimport { writableStore } from \"../ReadonlyStore\";\nimport { AssistantRuntimeCore } from \"../../runtimes/core/AssistantRuntimeCore\";\nimport { ensureBinding } from \"../react/utils/ensureBinding\";\n\nexport namespace AssistantRuntimeProvider {\n export type Props = PropsWithChildren<{\n /**\n * The runtime to provide to the rest of your app.\n */\n runtime: AssistantRuntime;\n }>;\n}\n\nconst useAssistantRuntimeStore = (runtime: AssistantRuntime) => {\n const [store] = useState(() => create(() => runtime));\n\n useEffect(() => {\n ensureBinding(runtime);\n ensureBinding(runtime.threads);\n\n writableStore(store).setState(runtime, true);\n }, [runtime, store]);\n\n return store;\n};\n\nconst useAssistantToolUIsStore = () => {\n return useMemo(() => makeAssistantToolUIsStore(), []);\n};\n\nconst getRenderComponent = (runtime: AssistantRuntime) => {\n return (runtime as { _core?: AssistantRuntimeCore })._core?.RenderComponent;\n};\n\nexport const AssistantRuntimeProviderImpl: FC<\n AssistantRuntimeProvider.Props\n> = ({ children, runtime }) => {\n const useAssistantRuntime = useAssistantRuntimeStore(runtime);\n const useToolUIs = useAssistantToolUIsStore();\n const [context] = useState(() => {\n return {\n useToolUIs,\n useAssistantRuntime,\n };\n });\n\n const RenderComponent = getRenderComponent(runtime);\n\n return (\n <AssistantContext.Provider value={context}>\n {RenderComponent && <RenderComponent />}\n <ThreadRuntimeProvider\n runtime={runtime.thread}\n listItemRuntime={runtime.threads.mainItem}\n >\n {children}\n </ThreadRuntimeProvider>\n </AssistantContext.Provider>\n );\n};\n\nexport const AssistantRuntimeProvider = memo(AssistantRuntimeProviderImpl);\n"],"mappings":";;;AAEA;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,wBAAwB;AACjC,SAAS,iCAAiC;AAC1C,SAAS,6BAA6B;AAEtC,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAE9B,SAAS,qBAAqB;AA+C1B,SACsB,KADtB;AApCJ,IAAM,2BAA2B,CAAC,YAA8B;AAC9D,QAAM,CAAC,KAAK,IAAI,SAAS,MAAM,OAAO,MAAM,OAAO,CAAC;AAEpD,YAAU,MAAM;AACd,kBAAc,OAAO;AACrB,kBAAc,QAAQ,OAAO;AAE7B,kBAAc,KAAK,EAAE,SAAS,SAAS,IAAI;AAAA,EAC7C,GAAG,CAAC,SAAS,KAAK,CAAC;AAEnB,SAAO;AACT;AAEA,IAAM,2BAA2B,MAAM;AACrC,SAAO,QAAQ,MAAM,0BAA0B,GAAG,CAAC,CAAC;AACtD;AAEA,IAAM,qBAAqB,CAAC,YAA8B;AACxD,SAAQ,QAA6C,OAAO;AAC9D;AAEO,IAAM,+BAET,CAAC,EAAE,UAAU,QAAQ,MAAM;AAC7B,QAAM,sBAAsB,yBAAyB,OAAO;AAC5D,QAAM,aAAa,yBAAyB;AAC5C,QAAM,CAAC,OAAO,IAAI,SAAS,MAAM;AAC/B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,kBAAkB,mBAAmB,OAAO;AAElD,SACE,qBAAC,iBAAiB,UAAjB,EAA0B,OAAO,SAC/B;AAAA,uBAAmB,oBAAC,mBAAgB;AAAA,IACrC;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,QAAQ;AAAA,QACjB,iBAAiB,QAAQ,QAAQ;AAAA,QAEhC;AAAA;AAAA,IACH;AAAA,KACF;AAEJ;AAEO,IAAM,2BAA2B,KAAK,4BAA4B;","names":[]}
1
+ {"version":3,"sources":["../../../src/context/providers/AssistantRuntimeProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { FC, memo, PropsWithChildren } from \"react\";\nimport { AssistantApiProvider } from \"../react/AssistantApiContext\";\nimport { AssistantRuntime } from \"../../api/AssistantRuntime\";\nimport { AssistantRuntimeCore } from \"../../runtimes/core/AssistantRuntimeCore\";\nimport { useAssistantRuntimeClient } from \"../../client/AssistantRuntimeClient\";\n\nimport { ThreadViewportProvider } from \"./ThreadViewportProvider\";\n\nexport namespace AssistantProvider {\n export type Props = PropsWithChildren<{\n /**\n * The runtime to provide to the rest of your app.\n */\n runtime: AssistantRuntime;\n }>;\n}\n\nconst getRenderComponent = (runtime: AssistantRuntime) => {\n return (runtime as { _core?: AssistantRuntimeCore })._core?.RenderComponent;\n};\n\nexport const AssistantRuntimeProviderImpl: FC<AssistantProvider.Props> = ({\n children,\n runtime,\n}) => {\n const api = useAssistantRuntimeClient(runtime);\n\n const RenderComponent = getRenderComponent(runtime);\n\n return (\n <AssistantProvider api={api}>\n {RenderComponent && <RenderComponent />}\n\n {children}\n </AssistantProvider>\n );\n};\n\nexport const AssistantRuntimeProvider = memo(AssistantRuntimeProviderImpl);\n\nconst AssistantProvider: FC<\n PropsWithChildren<{ api: ReturnType<typeof useAssistantRuntimeClient> }>\n> = ({ children, api }) => {\n return (\n <AssistantApiProvider api={api}>\n {/* TODO temporarily allow accessing viewport state from outside the viewport */}\n {/* TODO figure out if this behavior should be deprecated, since it is quite hacky */}\n <ThreadViewportProvider>{children}</ThreadViewportProvider>\n </AssistantApiProvider>\n );\n};\n"],"mappings":";;;AAEA,SAAa,YAA+B;AAC5C,SAAS,4BAA4B;AAGrC,SAAS,iCAAiC;AAE1C,SAAS,8BAA8B;AAwBnC,SACsB,KADtB;AAbJ,IAAM,qBAAqB,CAAC,YAA8B;AACxD,SAAQ,QAA6C,OAAO;AAC9D;AAEO,IAAM,+BAA4D,CAAC;AAAA,EACxE;AAAA,EACA;AACF,MAAM;AACJ,QAAM,MAAM,0BAA0B,OAAO;AAE7C,QAAM,kBAAkB,mBAAmB,OAAO;AAElD,SACE,qBAAC,qBAAkB,KAChB;AAAA,uBAAmB,oBAAC,mBAAgB;AAAA,IAEpC;AAAA,KACH;AAEJ;AAEO,IAAM,2BAA2B,KAAK,4BAA4B;AAEzE,IAAM,oBAEF,CAAC,EAAE,UAAU,IAAI,MAAM;AACzB,SACE,oBAAC,wBAAqB,KAGpB,8BAAC,0BAAwB,UAAS,GACpC;AAEJ;","names":[]}
@@ -0,0 +1,8 @@
1
+ import { type FC, type PropsWithChildren } from "react";
2
+ export declare const MessageAttachmentByIndexProvider: FC<PropsWithChildren<{
3
+ index: number;
4
+ }>>;
5
+ export declare const ComposerAttachmentByIndexProvider: FC<PropsWithChildren<{
6
+ index: number;
7
+ }>>;
8
+ //# sourceMappingURL=AttachmentProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/AttachmentProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AASjE,eAAO,MAAM,gCAAgC,EAAE,EAAE,CAC/C,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAcH,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,EAAE,CAChD,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAcH,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use client";
2
+
3
+ // src/context/providers/AttachmentProvider.tsx
4
+ import { useMemo } from "react";
5
+ import {
6
+ AssistantApiProvider,
7
+ useAssistantApi,
8
+ createAssistantApiField
9
+ } from "../react/AssistantApiContext.js";
10
+ import { jsx } from "react/jsx-runtime";
11
+ var MessageAttachmentByIndexProvider = ({ index, children }) => {
12
+ const api = useAssistantApi();
13
+ const api2 = useMemo(() => {
14
+ return {
15
+ attachment: createAssistantApiField({
16
+ source: "message",
17
+ query: { type: "index", index },
18
+ get: () => api.message().attachment({ index })
19
+ })
20
+ };
21
+ }, [api, index]);
22
+ return /* @__PURE__ */ jsx(AssistantApiProvider, { api: api2, children });
23
+ };
24
+ var ComposerAttachmentByIndexProvider = ({ index, children }) => {
25
+ const api = useAssistantApi();
26
+ const api2 = useMemo(() => {
27
+ return {
28
+ attachment: createAssistantApiField({
29
+ source: "composer",
30
+ query: { type: "index", index },
31
+ get: () => api.composer().attachment({ index })
32
+ })
33
+ };
34
+ }, [api, index]);
35
+ return /* @__PURE__ */ jsx(AssistantApiProvider, { api: api2, children });
36
+ };
37
+ export {
38
+ ComposerAttachmentByIndexProvider,
39
+ MessageAttachmentByIndexProvider
40
+ };
41
+ //# sourceMappingURL=AttachmentProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/context/providers/AttachmentProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\n\nimport {\n AssistantApi,\n AssistantApiProvider,\n useAssistantApi,\n createAssistantApiField,\n} from \"../react/AssistantApiContext\";\n\nexport const MessageAttachmentByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const api = useAssistantApi();\n const api2 = useMemo(() => {\n return {\n attachment: createAssistantApiField({\n source: \"message\",\n query: { type: \"index\", index },\n get: () => api.message().attachment({ index }),\n }),\n } satisfies Partial<AssistantApi>;\n }, [api, index]);\n\n return <AssistantApiProvider api={api2}>{children}</AssistantApiProvider>;\n};\n\nexport const ComposerAttachmentByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const api = useAssistantApi();\n const api2 = useMemo(() => {\n return {\n attachment: createAssistantApiField({\n source: \"composer\",\n query: { type: \"index\", index },\n get: () => api.composer().attachment({ index }),\n }),\n } satisfies Partial<AssistantApi>;\n }, [api, index]);\n\n return <AssistantApiProvider api={api2}>{children}</AssistantApiProvider>;\n};\n"],"mappings":";;;AAEA,SAAS,eAAgD;AAEzD;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAkBE;AAhBF,IAAM,mCAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,MAAM,gBAAgB;AAC5B,QAAM,OAAO,QAAQ,MAAM;AACzB,WAAO;AAAA,MACL,YAAY,wBAAwB;AAAA,QAClC,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,QAC9B,KAAK,MAAM,IAAI,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,MAC/C,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,KAAK,KAAK,CAAC;AAEf,SAAO,oBAAC,wBAAqB,KAAK,MAAO,UAAS;AACpD;AAEO,IAAM,oCAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,MAAM,gBAAgB;AAC5B,QAAM,OAAO,QAAQ,MAAM;AACzB,WAAO;AAAA,MACL,YAAY,wBAAwB;AAAA,QAClC,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,QAC9B,KAAK,MAAM,IAAI,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,MAChD,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,KAAK,KAAK,CAAC;AAEf,SAAO,oBAAC,wBAAqB,KAAK,MAAO,UAAS;AACpD;","names":[]}
@@ -0,0 +1,5 @@
1
+ import { type FC, type PropsWithChildren } from "react";
2
+ export declare const MessageByIndexProvider: FC<PropsWithChildren<{
3
+ index: number;
4
+ }>>;
5
+ //# sourceMappingURL=MessageProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/MessageProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAcjE,eAAO,MAAM,sBAAsB,EAAE,EAAE,CACrC,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAqCH,CAAC"}