@assistant-ui/react 0.7.34 → 0.7.35

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 (397) hide show
  1. package/dist/context/providers/AssistantRuntimeProvider.d.ts +1 -1
  2. package/dist/context/providers/AssistantRuntimeProvider.d.ts.map +1 -1
  3. package/dist/context/providers/AssistantRuntimeProvider.js.map +1 -1
  4. package/dist/context/providers/AssistantRuntimeProvider.mjs +6 -1
  5. package/dist/context/providers/AssistantRuntimeProvider.mjs.map +1 -1
  6. package/dist/context/providers/TextContentPartProvider.d.ts +1 -1
  7. package/dist/context/providers/TextContentPartProvider.d.ts.map +1 -1
  8. package/dist/context/providers/TextContentPartProvider.js.map +1 -1
  9. package/dist/context/providers/TextContentPartProvider.mjs.map +1 -1
  10. package/dist/context/providers/ThreadRuntimeProvider.d.ts.map +1 -1
  11. package/dist/context/providers/ThreadRuntimeProvider.js +1 -0
  12. package/dist/context/providers/ThreadRuntimeProvider.js.map +1 -1
  13. package/dist/context/providers/ThreadRuntimeProvider.mjs +2 -0
  14. package/dist/context/providers/ThreadRuntimeProvider.mjs.map +1 -1
  15. package/dist/context/react/ComposerContext.d.ts.map +1 -1
  16. package/dist/context/react/ComposerContext.js +1 -0
  17. package/dist/context/react/ComposerContext.js.map +1 -1
  18. package/dist/context/react/ComposerContext.mjs +2 -0
  19. package/dist/context/react/ComposerContext.mjs.map +1 -1
  20. package/dist/context/react/index.d.ts.map +1 -1
  21. package/dist/context/react/index.js +1 -0
  22. package/dist/context/react/index.js.map +1 -1
  23. package/dist/context/react/index.mjs +2 -0
  24. package/dist/context/react/index.mjs.map +1 -1
  25. package/dist/context/react/utils/createContextHook.d.ts.map +1 -1
  26. package/dist/context/react/utils/createContextHook.js +1 -0
  27. package/dist/context/react/utils/createContextHook.js.map +1 -1
  28. package/dist/context/react/utils/createContextHook.mjs +2 -0
  29. package/dist/context/react/utils/createContextHook.mjs.map +1 -1
  30. package/dist/context/stores/AssistantToolUIs.d.ts.map +1 -1
  31. package/dist/context/stores/AssistantToolUIs.js +0 -1
  32. package/dist/context/stores/AssistantToolUIs.js.map +1 -1
  33. package/dist/context/stores/AssistantToolUIs.mjs +0 -2
  34. package/dist/context/stores/AssistantToolUIs.mjs.map +1 -1
  35. package/dist/model-config/makeAssistantTool.d.ts.map +1 -1
  36. package/dist/model-config/makeAssistantTool.js.map +1 -1
  37. package/dist/model-config/makeAssistantTool.mjs.map +1 -1
  38. package/dist/model-config/makeAssistantToolUI.d.ts.map +1 -1
  39. package/dist/model-config/makeAssistantToolUI.js.map +1 -1
  40. package/dist/model-config/makeAssistantToolUI.mjs.map +1 -1
  41. package/dist/model-config/useInlineRender.d.ts.map +1 -1
  42. package/dist/model-config/useInlineRender.js +1 -0
  43. package/dist/model-config/useInlineRender.js.map +1 -1
  44. package/dist/model-config/useInlineRender.mjs +2 -0
  45. package/dist/model-config/useInlineRender.mjs.map +1 -1
  46. package/dist/primitive-hooks/actionBar/useActionBarCopy.d.ts +6 -4
  47. package/dist/primitive-hooks/actionBar/useActionBarCopy.d.ts.map +1 -1
  48. package/dist/primitive-hooks/actionBar/useActionBarCopy.js +1 -0
  49. package/dist/primitive-hooks/actionBar/useActionBarCopy.js.map +1 -1
  50. package/dist/primitive-hooks/actionBar/useActionBarCopy.mjs +2 -0
  51. package/dist/primitive-hooks/actionBar/useActionBarCopy.mjs.map +1 -1
  52. package/dist/primitive-hooks/actionBar/useActionBarEdit.d.ts.map +1 -1
  53. package/dist/primitive-hooks/actionBar/useActionBarEdit.js +1 -0
  54. package/dist/primitive-hooks/actionBar/useActionBarEdit.js.map +1 -1
  55. package/dist/primitive-hooks/actionBar/useActionBarEdit.mjs +2 -0
  56. package/dist/primitive-hooks/actionBar/useActionBarEdit.mjs.map +1 -1
  57. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.d.ts.map +1 -1
  58. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.js +1 -0
  59. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.js.map +1 -1
  60. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.mjs +2 -0
  61. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.mjs.map +1 -1
  62. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.d.ts.map +1 -1
  63. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.js +1 -0
  64. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.js.map +1 -1
  65. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.mjs +2 -0
  66. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.mjs.map +1 -1
  67. package/dist/primitive-hooks/actionBar/useActionBarReload.d.ts.map +1 -1
  68. package/dist/primitive-hooks/actionBar/useActionBarReload.js +1 -0
  69. package/dist/primitive-hooks/actionBar/useActionBarReload.js.map +1 -1
  70. package/dist/primitive-hooks/actionBar/useActionBarReload.mjs +2 -0
  71. package/dist/primitive-hooks/actionBar/useActionBarReload.mjs.map +1 -1
  72. package/dist/primitive-hooks/actionBar/useActionBarSpeak.d.ts.map +1 -1
  73. package/dist/primitive-hooks/actionBar/useActionBarSpeak.js +1 -0
  74. package/dist/primitive-hooks/actionBar/useActionBarSpeak.js.map +1 -1
  75. package/dist/primitive-hooks/actionBar/useActionBarSpeak.mjs +2 -0
  76. package/dist/primitive-hooks/actionBar/useActionBarSpeak.mjs.map +1 -1
  77. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.d.ts.map +1 -1
  78. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.js +1 -0
  79. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.js.map +1 -1
  80. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.mjs +2 -0
  81. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.mjs.map +1 -1
  82. package/dist/primitive-hooks/attachment/useAttachmentRemove.d.ts.map +1 -1
  83. package/dist/primitive-hooks/attachment/useAttachmentRemove.js +1 -0
  84. package/dist/primitive-hooks/attachment/useAttachmentRemove.js.map +1 -1
  85. package/dist/primitive-hooks/attachment/useAttachmentRemove.mjs +2 -0
  86. package/dist/primitive-hooks/attachment/useAttachmentRemove.mjs.map +1 -1
  87. package/dist/primitive-hooks/branchPicker/useBranchPickerCount.d.ts.map +1 -1
  88. package/dist/primitive-hooks/branchPicker/useBranchPickerCount.js.map +1 -1
  89. package/dist/primitive-hooks/branchPicker/useBranchPickerCount.mjs.map +1 -1
  90. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.d.ts.map +1 -1
  91. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.js +1 -0
  92. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.js.map +1 -1
  93. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.mjs +2 -0
  94. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.mjs.map +1 -1
  95. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.d.ts.map +1 -1
  96. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.js +1 -0
  97. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.js.map +1 -1
  98. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.mjs +2 -0
  99. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.mjs.map +1 -1
  100. package/dist/primitive-hooks/composer/useComposerAddAttachment.d.ts +7 -1
  101. package/dist/primitive-hooks/composer/useComposerAddAttachment.d.ts.map +1 -1
  102. package/dist/primitive-hooks/composer/useComposerAddAttachment.js +10 -4
  103. package/dist/primitive-hooks/composer/useComposerAddAttachment.js.map +1 -1
  104. package/dist/primitive-hooks/composer/useComposerAddAttachment.mjs +11 -4
  105. package/dist/primitive-hooks/composer/useComposerAddAttachment.mjs.map +1 -1
  106. package/dist/primitive-hooks/composer/useComposerCancel.d.ts.map +1 -1
  107. package/dist/primitive-hooks/composer/useComposerCancel.js +1 -0
  108. package/dist/primitive-hooks/composer/useComposerCancel.js.map +1 -1
  109. package/dist/primitive-hooks/composer/useComposerCancel.mjs +2 -0
  110. package/dist/primitive-hooks/composer/useComposerCancel.mjs.map +1 -1
  111. package/dist/primitive-hooks/composer/useComposerSend.d.ts.map +1 -1
  112. package/dist/primitive-hooks/composer/useComposerSend.js +1 -0
  113. package/dist/primitive-hooks/composer/useComposerSend.js.map +1 -1
  114. package/dist/primitive-hooks/composer/useComposerSend.mjs +2 -0
  115. package/dist/primitive-hooks/composer/useComposerSend.mjs.map +1 -1
  116. package/dist/primitive-hooks/contentPart/useContentPartDisplay.d.ts.map +1 -1
  117. package/dist/primitive-hooks/contentPart/useContentPartDisplay.js +1 -0
  118. package/dist/primitive-hooks/contentPart/useContentPartDisplay.js.map +1 -1
  119. package/dist/primitive-hooks/contentPart/useContentPartDisplay.mjs +2 -0
  120. package/dist/primitive-hooks/contentPart/useContentPartDisplay.mjs.map +1 -1
  121. package/dist/primitive-hooks/contentPart/useContentPartImage.d.ts.map +1 -1
  122. package/dist/primitive-hooks/contentPart/useContentPartImage.js +1 -0
  123. package/dist/primitive-hooks/contentPart/useContentPartImage.js.map +1 -1
  124. package/dist/primitive-hooks/contentPart/useContentPartImage.mjs +2 -0
  125. package/dist/primitive-hooks/contentPart/useContentPartImage.mjs.map +1 -1
  126. package/dist/primitive-hooks/contentPart/useContentPartText.d.ts.map +1 -1
  127. package/dist/primitive-hooks/contentPart/useContentPartText.js +1 -0
  128. package/dist/primitive-hooks/contentPart/useContentPartText.js.map +1 -1
  129. package/dist/primitive-hooks/contentPart/useContentPartText.mjs +2 -0
  130. package/dist/primitive-hooks/contentPart/useContentPartText.mjs.map +1 -1
  131. package/dist/primitive-hooks/message/useMessageIf.d.ts.map +1 -1
  132. package/dist/primitive-hooks/message/useMessageIf.js.map +1 -1
  133. package/dist/primitive-hooks/message/useMessageIf.mjs.map +1 -1
  134. package/dist/primitive-hooks/thread/useThreadEmpty.d.ts.map +1 -1
  135. package/dist/primitive-hooks/thread/useThreadEmpty.js +1 -0
  136. package/dist/primitive-hooks/thread/useThreadEmpty.js.map +1 -1
  137. package/dist/primitive-hooks/thread/useThreadEmpty.mjs +2 -0
  138. package/dist/primitive-hooks/thread/useThreadEmpty.mjs.map +1 -1
  139. package/dist/primitive-hooks/thread/useThreadScrollToBottom.d.ts.map +1 -1
  140. package/dist/primitive-hooks/thread/useThreadScrollToBottom.js +1 -0
  141. package/dist/primitive-hooks/thread/useThreadScrollToBottom.js.map +1 -1
  142. package/dist/primitive-hooks/thread/useThreadScrollToBottom.mjs +2 -0
  143. package/dist/primitive-hooks/thread/useThreadScrollToBottom.mjs.map +1 -1
  144. package/dist/primitive-hooks/thread/useThreadSuggestion.d.ts +8 -6
  145. package/dist/primitive-hooks/thread/useThreadSuggestion.d.ts.map +1 -1
  146. package/dist/primitive-hooks/thread/useThreadSuggestion.js +1 -0
  147. package/dist/primitive-hooks/thread/useThreadSuggestion.js.map +1 -1
  148. package/dist/primitive-hooks/thread/useThreadSuggestion.mjs +2 -0
  149. package/dist/primitive-hooks/thread/useThreadSuggestion.mjs.map +1 -1
  150. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.d.ts +8 -5
  151. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
  152. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.js.map +1 -1
  153. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.mjs.map +1 -1
  154. package/dist/primitives/actionBar/ActionBarCopy.d.ts +1 -1
  155. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  156. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -1
  157. package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
  158. package/dist/primitives/actionBar/useActionBarFloatStatus.mjs.map +1 -1
  159. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts.map +1 -1
  160. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
  161. package/dist/primitives/assistantModal/AssistantModalAnchor.mjs.map +1 -1
  162. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts.map +1 -1
  163. package/dist/primitives/assistantModal/AssistantModalTrigger.js +0 -1
  164. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  165. package/dist/primitives/assistantModal/AssistantModalTrigger.mjs +0 -2
  166. package/dist/primitives/assistantModal/AssistantModalTrigger.mjs.map +1 -1
  167. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -1
  168. package/dist/primitives/branchPicker/BranchPickerRoot.js +0 -1
  169. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  170. package/dist/primitives/branchPicker/BranchPickerRoot.mjs +0 -2
  171. package/dist/primitives/branchPicker/BranchPickerRoot.mjs.map +1 -1
  172. package/dist/primitives/composer/ComposerAddAttachment.d.ts +1 -1
  173. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  174. package/dist/primitives/composer/ComposerAddAttachment.js +2 -1
  175. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  176. package/dist/primitives/composer/ComposerAddAttachment.mjs +2 -1
  177. package/dist/primitives/composer/ComposerAddAttachment.mjs.map +1 -1
  178. package/dist/primitives/contentPart/ContentPartDisplay.d.ts.map +1 -1
  179. package/dist/primitives/contentPart/ContentPartDisplay.js +1 -0
  180. package/dist/primitives/contentPart/ContentPartDisplay.js.map +1 -1
  181. package/dist/primitives/contentPart/ContentPartDisplay.mjs +2 -0
  182. package/dist/primitives/contentPart/ContentPartDisplay.mjs.map +1 -1
  183. package/dist/primitives/contentPart/ContentPartImage.d.ts.map +1 -1
  184. package/dist/primitives/contentPart/ContentPartImage.js +1 -0
  185. package/dist/primitives/contentPart/ContentPartImage.js.map +1 -1
  186. package/dist/primitives/contentPart/ContentPartImage.mjs +2 -0
  187. package/dist/primitives/contentPart/ContentPartImage.mjs.map +1 -1
  188. package/dist/primitives/contentPart/ContentPartInProgress.d.ts.map +1 -1
  189. package/dist/primitives/contentPart/ContentPartInProgress.js +1 -0
  190. package/dist/primitives/contentPart/ContentPartInProgress.js.map +1 -1
  191. package/dist/primitives/contentPart/ContentPartInProgress.mjs +2 -0
  192. package/dist/primitives/contentPart/ContentPartInProgress.mjs.map +1 -1
  193. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
  194. package/dist/primitives/thread/ThreadRoot.js +0 -1
  195. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  196. package/dist/primitives/thread/ThreadRoot.mjs +0 -2
  197. package/dist/primitives/thread/ThreadRoot.mjs.map +1 -1
  198. package/dist/primitives/thread/ThreadSuggestion.d.ts +1 -1
  199. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  200. package/dist/primitives/thread/ThreadViewport.d.ts +3 -3
  201. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -1
  202. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  203. package/dist/primitives/thread/ThreadViewport.mjs +1 -3
  204. package/dist/primitives/thread/ThreadViewport.mjs.map +1 -1
  205. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts +2 -2
  206. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  207. package/dist/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
  208. package/dist/primitives/threadListItem/ThreadListItemTitle.mjs.map +1 -1
  209. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.d.ts.map +1 -1
  210. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js +1 -0
  211. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js.map +1 -1
  212. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.mjs +2 -0
  213. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.mjs.map +1 -1
  214. package/dist/runtimes/edge/useEdgeRuntime.d.ts.map +1 -1
  215. package/dist/runtimes/edge/useEdgeRuntime.js +1 -0
  216. package/dist/runtimes/edge/useEdgeRuntime.js.map +1 -1
  217. package/dist/runtimes/edge/useEdgeRuntime.mjs +2 -0
  218. package/dist/runtimes/edge/useEdgeRuntime.mjs.map +1 -1
  219. package/dist/runtimes/external-store/external-message-converter.d.ts.map +1 -1
  220. package/dist/runtimes/external-store/external-message-converter.js +1 -0
  221. package/dist/runtimes/external-store/external-message-converter.js.map +1 -1
  222. package/dist/runtimes/external-store/external-message-converter.mjs +2 -0
  223. package/dist/runtimes/external-store/external-message-converter.mjs.map +1 -1
  224. package/dist/runtimes/external-store/useExternalStoreRuntime.d.ts.map +1 -1
  225. package/dist/runtimes/external-store/useExternalStoreRuntime.js +1 -0
  226. package/dist/runtimes/external-store/useExternalStoreRuntime.js.map +1 -1
  227. package/dist/runtimes/external-store/useExternalStoreRuntime.mjs +2 -0
  228. package/dist/runtimes/external-store/useExternalStoreRuntime.mjs.map +1 -1
  229. package/dist/runtimes/local/ChatModelAdapter.d.ts.map +1 -1
  230. package/dist/runtimes/local/ChatModelAdapter.js +0 -1
  231. package/dist/runtimes/local/ChatModelAdapter.js.map +1 -1
  232. package/dist/runtimes/local/ChatModelAdapter.mjs +0 -1
  233. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  234. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js +1 -0
  235. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js.map +1 -1
  236. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.mjs +2 -0
  237. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.mjs.map +1 -1
  238. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  239. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +1 -0
  240. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  241. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs +2 -0
  242. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs.map +1 -1
  243. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.d.ts +4 -0
  244. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.d.ts.map +1 -1
  245. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.js +5 -0
  246. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.js.map +1 -1
  247. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.mjs +5 -0
  248. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.mjs.map +1 -1
  249. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.d.ts +11 -0
  250. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.d.ts.map +1 -0
  251. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.js +38 -0
  252. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.js.map +1 -0
  253. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.mjs +13 -0
  254. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.mjs.map +1 -0
  255. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.d.ts.map +1 -1
  256. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js +1 -0
  257. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js.map +1 -1
  258. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.mjs +2 -0
  259. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.mjs.map +1 -1
  260. package/dist/types/ContentPartComponentTypes.d.ts.map +1 -1
  261. package/dist/types/ContentPartComponentTypes.js +0 -1
  262. package/dist/types/ContentPartComponentTypes.js.map +1 -1
  263. package/dist/types/ContentPartComponentTypes.mjs +0 -1
  264. package/dist/ui/base/avatar.d.ts.map +1 -1
  265. package/dist/ui/base/avatar.js +0 -1
  266. package/dist/ui/base/avatar.js.map +1 -1
  267. package/dist/ui/base/avatar.mjs +0 -2
  268. package/dist/ui/base/avatar.mjs.map +1 -1
  269. package/dist/ui/base/button.d.ts +2 -1
  270. package/dist/ui/base/button.d.ts.map +1 -1
  271. package/dist/ui/base/button.js.map +1 -1
  272. package/dist/ui/base/button.mjs.map +1 -1
  273. package/dist/ui/base/dialog.d.ts +6 -7
  274. package/dist/ui/base/dialog.d.ts.map +1 -1
  275. package/dist/ui/base/dialog.js +3 -4
  276. package/dist/ui/base/dialog.js.map +1 -1
  277. package/dist/ui/base/dialog.mjs +3 -5
  278. package/dist/ui/base/dialog.mjs.map +1 -1
  279. package/dist/ui/base/tooltip-icon-button.d.ts.map +1 -1
  280. package/dist/ui/base/tooltip-icon-button.js +0 -1
  281. package/dist/ui/base/tooltip-icon-button.js.map +1 -1
  282. package/dist/ui/base/tooltip-icon-button.mjs +0 -2
  283. package/dist/ui/base/tooltip-icon-button.mjs.map +1 -1
  284. package/dist/ui/base/tooltip.d.ts.map +1 -1
  285. package/dist/ui/base/tooltip.js +0 -1
  286. package/dist/ui/base/tooltip.js.map +1 -1
  287. package/dist/ui/base/tooltip.mjs +0 -2
  288. package/dist/ui/base/tooltip.mjs.map +1 -1
  289. package/dist/ui/content-part.d.ts.map +1 -1
  290. package/dist/ui/content-part.js +1 -0
  291. package/dist/ui/content-part.js.map +1 -1
  292. package/dist/ui/content-part.mjs +2 -0
  293. package/dist/ui/content-part.mjs.map +1 -1
  294. package/dist/ui/thread.d.ts +1 -1
  295. package/dist/ui/user-message.d.ts.map +1 -1
  296. package/dist/ui/user-message.js +0 -1
  297. package/dist/ui/user-message.js.map +1 -1
  298. package/dist/ui/user-message.mjs +0 -2
  299. package/dist/ui/user-message.mjs.map +1 -1
  300. package/dist/utils/RequireAtLeastOne.d.ts.map +1 -1
  301. package/dist/utils/RequireAtLeastOne.js +0 -1
  302. package/dist/utils/RequireAtLeastOne.js.map +1 -1
  303. package/dist/utils/RequireAtLeastOne.mjs +0 -1
  304. package/dist/utils/combined/useCombinedStore.d.ts.map +1 -1
  305. package/dist/utils/combined/useCombinedStore.js +1 -0
  306. package/dist/utils/combined/useCombinedStore.js.map +1 -1
  307. package/dist/utils/combined/useCombinedStore.mjs +2 -0
  308. package/dist/utils/combined/useCombinedStore.mjs.map +1 -1
  309. package/dist/utils/createActionButton.d.ts.map +1 -1
  310. package/dist/utils/createActionButton.js +0 -1
  311. package/dist/utils/createActionButton.js.map +1 -1
  312. package/dist/utils/createActionButton.mjs +0 -2
  313. package/dist/utils/createActionButton.mjs.map +1 -1
  314. package/dist/utils/hooks/useOnScrollToBottom.d.ts.map +1 -1
  315. package/dist/utils/hooks/useOnScrollToBottom.js +1 -0
  316. package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -1
  317. package/dist/utils/hooks/useOnScrollToBottom.mjs +2 -0
  318. package/dist/utils/hooks/useOnScrollToBottom.mjs.map +1 -1
  319. package/dist/utils/smooth/SmoothContext.d.ts.map +1 -1
  320. package/dist/utils/smooth/SmoothContext.js +1 -0
  321. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  322. package/dist/utils/smooth/SmoothContext.mjs +2 -0
  323. package/dist/utils/smooth/SmoothContext.mjs.map +1 -1
  324. package/dist/utils/smooth/index.d.ts +1 -2
  325. package/dist/utils/smooth/index.d.ts.map +1 -1
  326. package/dist/utils/smooth/index.js +2 -2
  327. package/dist/utils/smooth/index.js.map +1 -1
  328. package/dist/utils/smooth/index.mjs +3 -2
  329. package/dist/utils/smooth/index.mjs.map +1 -1
  330. package/package.json +3 -3
  331. package/src/context/providers/AssistantRuntimeProvider.tsx +8 -2
  332. package/src/context/providers/TextContentPartProvider.tsx +1 -2
  333. package/src/context/providers/ThreadRuntimeProvider.tsx +2 -0
  334. package/src/context/react/ComposerContext.ts +2 -0
  335. package/src/context/react/index.ts +4 -0
  336. package/src/context/react/utils/createContextHook.ts +2 -0
  337. package/src/context/stores/AssistantToolUIs.ts +0 -2
  338. package/src/model-config/makeAssistantTool.tsx +1 -0
  339. package/src/model-config/makeAssistantToolUI.tsx +1 -0
  340. package/src/model-config/useInlineRender.tsx +2 -0
  341. package/src/primitive-hooks/actionBar/useActionBarCopy.tsx +8 -4
  342. package/src/primitive-hooks/actionBar/useActionBarEdit.tsx +2 -0
  343. package/src/primitive-hooks/actionBar/useActionBarFeedbackNegative.tsx +2 -0
  344. package/src/primitive-hooks/actionBar/useActionBarFeedbackPositive.tsx +2 -0
  345. package/src/primitive-hooks/actionBar/useActionBarReload.tsx +2 -0
  346. package/src/primitive-hooks/actionBar/useActionBarSpeak.tsx +2 -0
  347. package/src/primitive-hooks/actionBar/useActionBarStopSpeaking.tsx +2 -0
  348. package/src/primitive-hooks/attachment/useAttachmentRemove.ts +2 -0
  349. package/src/primitive-hooks/branchPicker/useBranchPickerCount.tsx +1 -0
  350. package/src/primitive-hooks/branchPicker/useBranchPickerNext.tsx +2 -0
  351. package/src/primitive-hooks/branchPicker/useBranchPickerPrevious.tsx +2 -0
  352. package/src/primitive-hooks/composer/useComposerAddAttachment.tsx +18 -4
  353. package/src/primitive-hooks/composer/useComposerCancel.tsx +2 -0
  354. package/src/primitive-hooks/composer/useComposerSend.tsx +2 -0
  355. package/src/primitive-hooks/contentPart/useContentPartDisplay.tsx +2 -0
  356. package/src/primitive-hooks/contentPart/useContentPartImage.tsx +2 -0
  357. package/src/primitive-hooks/contentPart/useContentPartText.tsx +2 -0
  358. package/src/primitive-hooks/message/useMessageIf.tsx +1 -0
  359. package/src/primitive-hooks/thread/useThreadEmpty.tsx +2 -0
  360. package/src/primitive-hooks/thread/useThreadScrollToBottom.tsx +2 -0
  361. package/src/primitive-hooks/thread/useThreadSuggestion.tsx +10 -6
  362. package/src/primitive-hooks/thread/useThreadViewportAutoScroll.tsx +9 -6
  363. package/src/primitives/actionBar/useActionBarFloatStatus.tsx +1 -0
  364. package/src/primitives/assistantModal/AssistantModalAnchor.tsx +1 -0
  365. package/src/primitives/assistantModal/AssistantModalTrigger.tsx +0 -2
  366. package/src/primitives/branchPicker/BranchPickerRoot.tsx +0 -2
  367. package/src/primitives/composer/ComposerAddAttachment.tsx +1 -0
  368. package/src/primitives/contentPart/ContentPartDisplay.tsx +2 -0
  369. package/src/primitives/contentPart/ContentPartImage.tsx +2 -0
  370. package/src/primitives/contentPart/ContentPartInProgress.tsx +2 -0
  371. package/src/primitives/thread/ThreadRoot.tsx +0 -2
  372. package/src/primitives/thread/ThreadViewport.tsx +2 -5
  373. package/src/primitives/threadListItem/ThreadListItemTitle.tsx +2 -2
  374. package/src/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.ts +2 -0
  375. package/src/runtimes/edge/useEdgeRuntime.ts +2 -0
  376. package/src/runtimes/external-store/external-message-converter.tsx +2 -0
  377. package/src/runtimes/external-store/useExternalStoreRuntime.tsx +2 -0
  378. package/src/runtimes/local/ChatModelAdapter.tsx +0 -2
  379. package/src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx +2 -0
  380. package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +2 -0
  381. package/src/runtimes/remote-thread-list/cloud/AssistantCloud.tsx +5 -0
  382. package/src/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.tsx +13 -0
  383. package/src/runtimes/remote-thread-list/useRemoteThreadListRuntime.tsx +2 -0
  384. package/src/types/ContentPartComponentTypes.tsx +0 -1
  385. package/src/ui/base/avatar.tsx +0 -2
  386. package/src/ui/base/button.tsx +2 -4
  387. package/src/ui/base/dialog.tsx +15 -17
  388. package/src/ui/base/tooltip-icon-button.tsx +0 -2
  389. package/src/ui/base/tooltip.tsx +0 -2
  390. package/src/ui/content-part.tsx +2 -0
  391. package/src/ui/user-message.tsx +0 -2
  392. package/src/utils/RequireAtLeastOne.tsx +0 -1
  393. package/src/utils/combined/useCombinedStore.ts +2 -0
  394. package/src/utils/createActionButton.tsx +0 -2
  395. package/src/utils/hooks/useOnScrollToBottom.tsx +2 -0
  396. package/src/utils/smooth/SmoothContext.tsx +2 -0
  397. package/src/utils/smooth/index.ts +5 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/contentPart/ContentPartImage.tsx"],"sourcesContent":["import { Primitive } from \"@radix-ui/react-primitive\";\nimport { type ElementRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport { useContentPartImage } from \"../../primitive-hooks/contentPart/useContentPartImage\";\n\nexport namespace ContentPartPrimitiveImage {\n export type Element = ElementRef<typeof Primitive.img>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.img>;\n}\n\nexport const ContentPartPrimitiveImage = forwardRef<\n ContentPartPrimitiveImage.Element,\n ContentPartPrimitiveImage.Props\n>((props, forwardedRef) => {\n const { image } = useContentPartImage();\n return <Primitive.img src={image} {...props} ref={forwardedRef} />;\n});\n\nContentPartPrimitiveImage.displayName = \"ContentPartPrimitive.Image\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAA0B;AAC1B,mBAAsE;AACtE,iCAAoC;AAY3B;AALF,IAAM,gCAA4B,yBAGvC,CAAC,OAAO,iBAAiB;AACzB,QAAM,EAAE,MAAM,QAAI,gDAAoB;AACtC,SAAO,4CAAC,iCAAU,KAAV,EAAc,KAAK,OAAQ,GAAG,OAAO,KAAK,cAAc;AAClE,CAAC;AAED,0BAA0B,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/contentPart/ContentPartImage.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { type ElementRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport { useContentPartImage } from \"../../primitive-hooks/contentPart/useContentPartImage\";\n\nexport namespace ContentPartPrimitiveImage {\n export type Element = ElementRef<typeof Primitive.img>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.img>;\n}\n\nexport const ContentPartPrimitiveImage = forwardRef<\n ContentPartPrimitiveImage.Element,\n ContentPartPrimitiveImage.Props\n>((props, forwardedRef) => {\n const { image } = useContentPartImage();\n return <Primitive.img src={image} {...props} ref={forwardedRef} />;\n});\n\nContentPartPrimitiveImage.displayName = \"ContentPartPrimitive.Image\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,6BAA0B;AAC1B,mBAAsE;AACtE,iCAAoC;AAY3B;AALF,IAAM,gCAA4B,yBAGvC,CAAC,OAAO,iBAAiB;AACzB,QAAM,EAAE,MAAM,QAAI,gDAAoB;AACtC,SAAO,4CAAC,iCAAU,KAAV,EAAc,KAAK,OAAQ,GAAG,OAAO,KAAK,cAAc;AAClE,CAAC;AAED,0BAA0B,cAAc;","names":[]}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  // src/primitives/contentPart/ContentPartImage.tsx
2
4
  import { Primitive } from "@radix-ui/react-primitive";
3
5
  import { forwardRef } from "react";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/contentPart/ContentPartImage.tsx"],"sourcesContent":["import { Primitive } from \"@radix-ui/react-primitive\";\nimport { type ElementRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport { useContentPartImage } from \"../../primitive-hooks/contentPart/useContentPartImage\";\n\nexport namespace ContentPartPrimitiveImage {\n export type Element = ElementRef<typeof Primitive.img>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.img>;\n}\n\nexport const ContentPartPrimitiveImage = forwardRef<\n ContentPartPrimitiveImage.Element,\n ContentPartPrimitiveImage.Props\n>((props, forwardedRef) => {\n const { image } = useContentPartImage();\n return <Primitive.img src={image} {...props} ref={forwardedRef} />;\n});\n\nContentPartPrimitiveImage.displayName = \"ContentPartPrimitive.Image\";\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,SAA0B,kBAA4C;AACtE,SAAS,2BAA2B;AAY3B;AALF,IAAM,4BAA4B,WAGvC,CAAC,OAAO,iBAAiB;AACzB,QAAM,EAAE,MAAM,IAAI,oBAAoB;AACtC,SAAO,oBAAC,UAAU,KAAV,EAAc,KAAK,OAAQ,GAAG,OAAO,KAAK,cAAc;AAClE,CAAC;AAED,0BAA0B,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/contentPart/ContentPartImage.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { type ElementRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport { useContentPartImage } from \"../../primitive-hooks/contentPart/useContentPartImage\";\n\nexport namespace ContentPartPrimitiveImage {\n export type Element = ElementRef<typeof Primitive.img>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.img>;\n}\n\nexport const ContentPartPrimitiveImage = forwardRef<\n ContentPartPrimitiveImage.Element,\n ContentPartPrimitiveImage.Props\n>((props, forwardedRef) => {\n const { image } = useContentPartImage();\n return <Primitive.img src={image} {...props} ref={forwardedRef} />;\n});\n\nContentPartPrimitiveImage.displayName = \"ContentPartPrimitive.Image\";\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B,SAA0B,kBAA4C;AACtE,SAAS,2BAA2B;AAY3B;AALF,IAAM,4BAA4B,WAGvC,CAAC,OAAO,iBAAiB;AACzB,QAAM,EAAE,MAAM,IAAI,oBAAoB;AACtC,SAAO,oBAAC,UAAU,KAAV,EAAc,KAAK,OAAQ,GAAG,OAAO,KAAK,cAAc;AAClE,CAAC;AAED,0BAA0B,cAAc;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPartInProgress.d.ts","sourceRoot":"","sources":["../../../src/primitives/contentPart/ContentPartInProgress.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG9C,yBAAiB,8BAA8B,CAAC;IAC9C,KAAY,KAAK,GAAG,iBAAiB,CAAC;CACvC;AAGD,eAAO,MAAM,8BAA8B,EAAE,EAAE,CAC7C,8BAA8B,CAAC,KAAK,CAKrC,CAAC"}
1
+ {"version":3,"file":"ContentPartInProgress.d.ts","sourceRoot":"","sources":["../../../src/primitives/contentPart/ContentPartInProgress.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG9C,yBAAiB,8BAA8B,CAAC;IAC9C,KAAY,KAAK,GAAG,iBAAiB,CAAC;CACvC;AAGD,eAAO,MAAM,8BAA8B,EAAE,EAAE,CAC7C,8BAA8B,CAAC,KAAK,CAKrC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/contentPart/ContentPartInProgress.tsx"],"sourcesContent":["import { FC, PropsWithChildren } from \"react\";\nimport { useContentPart } from \"../../context\";\n\nexport namespace ContentPartPrimitiveInProgress {\n export type Props = PropsWithChildren;\n}\n\n// TODO should this be renamed to IsRunning?\nexport const ContentPartPrimitiveInProgress: FC<\n ContentPartPrimitiveInProgress.Props\n> = ({ children }) => {\n const isInProgress = useContentPart((c) => c.status.type === \"running\");\n\n return isInProgress ? children : null;\n};\n\nContentPartPrimitiveInProgress.displayName = \"ContentPartPrimitive.InProgress\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAA+B;AAOxB,IAAM,iCAET,CAAC,EAAE,SAAS,MAAM;AACpB,QAAM,mBAAe,+BAAe,CAAC,MAAM,EAAE,OAAO,SAAS,SAAS;AAEtE,SAAO,eAAe,WAAW;AACnC;AAEA,+BAA+B,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/contentPart/ContentPartInProgress.tsx"],"sourcesContent":["\"use client\";\n\nimport { FC, PropsWithChildren } from \"react\";\nimport { useContentPart } from \"../../context\";\n\nexport namespace ContentPartPrimitiveInProgress {\n export type Props = PropsWithChildren;\n}\n\n// TODO should this be renamed to IsRunning?\nexport const ContentPartPrimitiveInProgress: FC<\n ContentPartPrimitiveInProgress.Props\n> = ({ children }) => {\n const isInProgress = useContentPart((c) => c.status.type === \"running\");\n\n return isInProgress ? children : null;\n};\n\nContentPartPrimitiveInProgress.displayName = \"ContentPartPrimitive.InProgress\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAA+B;AAOxB,IAAM,iCAET,CAAC,EAAE,SAAS,MAAM;AACpB,QAAM,mBAAe,+BAAe,CAAC,MAAM,EAAE,OAAO,SAAS,SAAS;AAEtE,SAAO,eAAe,WAAW;AACnC;AAEA,+BAA+B,cAAc;","names":[]}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  // src/primitives/contentPart/ContentPartInProgress.tsx
2
4
  import { useContentPart } from "../../context/index.mjs";
3
5
  var ContentPartPrimitiveInProgress = ({ children }) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/contentPart/ContentPartInProgress.tsx"],"sourcesContent":["import { FC, PropsWithChildren } from \"react\";\nimport { useContentPart } from \"../../context\";\n\nexport namespace ContentPartPrimitiveInProgress {\n export type Props = PropsWithChildren;\n}\n\n// TODO should this be renamed to IsRunning?\nexport const ContentPartPrimitiveInProgress: FC<\n ContentPartPrimitiveInProgress.Props\n> = ({ children }) => {\n const isInProgress = useContentPart((c) => c.status.type === \"running\");\n\n return isInProgress ? children : null;\n};\n\nContentPartPrimitiveInProgress.displayName = \"ContentPartPrimitive.InProgress\";\n"],"mappings":";AACA,SAAS,sBAAsB;AAOxB,IAAM,iCAET,CAAC,EAAE,SAAS,MAAM;AACpB,QAAM,eAAe,eAAe,CAAC,MAAM,EAAE,OAAO,SAAS,SAAS;AAEtE,SAAO,eAAe,WAAW;AACnC;AAEA,+BAA+B,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/contentPart/ContentPartInProgress.tsx"],"sourcesContent":["\"use client\";\n\nimport { FC, PropsWithChildren } from \"react\";\nimport { useContentPart } from \"../../context\";\n\nexport namespace ContentPartPrimitiveInProgress {\n export type Props = PropsWithChildren;\n}\n\n// TODO should this be renamed to IsRunning?\nexport const ContentPartPrimitiveInProgress: FC<\n ContentPartPrimitiveInProgress.Props\n> = ({ children }) => {\n const isInProgress = useContentPart((c) => c.status.type === \"running\");\n\n return isInProgress ? children : null;\n};\n\nContentPartPrimitiveInProgress.displayName = \"ContentPartPrimitive.InProgress\";\n"],"mappings":";;;AAGA,SAAS,sBAAsB;AAOxB,IAAM,iCAET,CAAC,EAAE,SAAS,MAAM;AACpB,QAAM,eAAe,eAAe,CAAC,MAAM,EAAE,OAAO,SAAS,SAAS;AAEtE,SAAO,eAAe,WAAW;AACnC;AAEA,+BAA+B,cAAc;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadRoot.d.ts","sourceRoot":"","sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,KAAK,UAAU,EAAc,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAE9E,yBAAiB,mBAAmB,CAAC;IACnC,KAAY,OAAO,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACvD,KAAY,KAAK,GAAG,wBAAwB,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;CACpE;AAED,eAAO,MAAM,mBAAmB;;0DAK9B,CAAC"}
1
+ {"version":3,"file":"ThreadRoot.d.ts","sourceRoot":"","sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,KAAK,UAAU,EAAc,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAE9E,yBAAiB,mBAAmB,CAAC;IACnC,KAAY,OAAO,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACvD,KAAY,KAAK,GAAG,wBAAwB,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;CACpE;AAED,eAAO,MAAM,mBAAmB;;0DAK9B,CAAC"}
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- "use client";
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { type ElementRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\n\nexport namespace ThreadPrimitiveRoot {\n export type Element = ElementRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\nexport const ThreadPrimitiveRoot = forwardRef<\n ThreadPrimitiveRoot.Element,\n ThreadPrimitiveRoot.Props\n>((props, ref) => {\n return <Primitive.div {...props} ref={ref} />;\n});\n\nThreadPrimitiveRoot.displayName = \"ThreadPrimitive.Root\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,6BAA0B;AAC1B,mBAAsE;AAW7D;AAJF,IAAM,0BAAsB,yBAGjC,CAAC,OAAO,QAAQ;AAChB,SAAO,4CAAC,iCAAU,KAAV,EAAe,GAAG,OAAO,KAAU;AAC7C,CAAC;AAED,oBAAoB,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"sourcesContent":["import { Primitive } from \"@radix-ui/react-primitive\";\nimport { type ElementRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\n\nexport namespace ThreadPrimitiveRoot {\n export type Element = ElementRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\nexport const ThreadPrimitiveRoot = forwardRef<\n ThreadPrimitiveRoot.Element,\n ThreadPrimitiveRoot.Props\n>((props, ref) => {\n return <Primitive.div {...props} ref={ref} />;\n});\n\nThreadPrimitiveRoot.displayName = \"ThreadPrimitive.Root\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAA0B;AAC1B,mBAAsE;AAW7D;AAJF,IAAM,0BAAsB,yBAGjC,CAAC,OAAO,QAAQ;AAChB,SAAO,4CAAC,iCAAU,KAAV,EAAe,GAAG,OAAO,KAAU;AAC7C,CAAC;AAED,oBAAoB,cAAc;","names":[]}
@@ -1,5 +1,3 @@
1
- "use client";
2
-
3
1
  // src/primitives/thread/ThreadRoot.tsx
4
2
  import { Primitive } from "@radix-ui/react-primitive";
5
3
  import { forwardRef } from "react";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { type ElementRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\n\nexport namespace ThreadPrimitiveRoot {\n export type Element = ElementRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\nexport const ThreadPrimitiveRoot = forwardRef<\n ThreadPrimitiveRoot.Element,\n ThreadPrimitiveRoot.Props\n>((props, ref) => {\n return <Primitive.div {...props} ref={ref} />;\n});\n\nThreadPrimitiveRoot.displayName = \"ThreadPrimitive.Root\";\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B,SAA0B,kBAA4C;AAW7D;AAJF,IAAM,sBAAsB,WAGjC,CAAC,OAAO,QAAQ;AAChB,SAAO,oBAAC,UAAU,KAAV,EAAe,GAAG,OAAO,KAAU;AAC7C,CAAC;AAED,oBAAoB,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"sourcesContent":["import { Primitive } from \"@radix-ui/react-primitive\";\nimport { type ElementRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\n\nexport namespace ThreadPrimitiveRoot {\n export type Element = ElementRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\nexport const ThreadPrimitiveRoot = forwardRef<\n ThreadPrimitiveRoot.Element,\n ThreadPrimitiveRoot.Props\n>((props, ref) => {\n return <Primitive.div {...props} ref={ref} />;\n});\n\nThreadPrimitiveRoot.displayName = \"ThreadPrimitive.Root\";\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,SAA0B,kBAA4C;AAW7D;AAJF,IAAM,sBAAsB,WAGjC,CAAC,OAAO,QAAQ;AAChB,SAAO,oBAAC,UAAU,KAAV,EAAe,GAAG,OAAO,KAAU;AAC7C,CAAC;AAED,oBAAoB,cAAc;","names":[]}
@@ -6,5 +6,5 @@ export declare namespace ThreadPrimitiveSuggestion {
6
6
  }
7
7
  export declare const ThreadPrimitiveSuggestion: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & {
8
8
  asChild?: boolean;
9
- }, "ref"> & import("../../primitive-hooks/thread/useThreadSuggestion").UseApplyThreadSuggestionProps & import("react").RefAttributes<HTMLButtonElement>>;
9
+ }, "ref"> & useThreadSuggestion.Options & import("react").RefAttributes<HTMLButtonElement>>;
10
10
  //# sourceMappingURL=ThreadSuggestion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadSuggestion.d.ts","sourceRoot":"","sources":["../../../src/primitives/thread/ThreadSuggestion.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAEvF,yBAAiB,yBAAyB,CAAC;IACzC,KAAY,OAAO,GAAG,mBAAmB,CAAC;IAC1C,KAAY,KAAK,GAAG,iBAAiB,CAAC,OAAO,mBAAmB,CAAC,CAAC;CACnE;AAED,eAAO,MAAM,yBAAyB;;wJAIrC,CAAC"}
1
+ {"version":3,"file":"ThreadSuggestion.d.ts","sourceRoot":"","sources":["../../../src/primitives/thread/ThreadSuggestion.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAEvF,yBAAiB,yBAAyB,CAAC;IACzC,KAAY,OAAO,GAAG,mBAAmB,CAAC;IAC1C,KAAY,KAAK,GAAG,iBAAiB,CAAC,OAAO,mBAAmB,CAAC,CAAC;CACnE;AAED,eAAO,MAAM,yBAAyB;;2FAIrC,CAAC"}
@@ -1,11 +1,11 @@
1
1
  import { Primitive } from "@radix-ui/react-primitive";
2
2
  import { type ElementRef, ComponentPropsWithoutRef } from "react";
3
- import { UseThreadViewportAutoScrollProps } from "../../primitive-hooks/thread/useThreadViewportAutoScroll";
3
+ import { useThreadViewportAutoScroll } from "../../primitive-hooks/thread/useThreadViewportAutoScroll";
4
4
  export declare namespace ThreadPrimitiveViewport {
5
5
  type Element = ElementRef<typeof Primitive.div>;
6
- type Props = ComponentPropsWithoutRef<typeof Primitive.div> & UseThreadViewportAutoScrollProps;
6
+ type Props = ComponentPropsWithoutRef<typeof Primitive.div> & useThreadViewportAutoScroll.Options;
7
7
  }
8
8
  export declare const ThreadPrimitiveViewport: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & {
9
9
  asChild?: boolean;
10
- }, "ref"> & UseThreadViewportAutoScrollProps & import("react").RefAttributes<HTMLDivElement>>;
10
+ }, "ref"> & useThreadViewportAutoScroll.Options & import("react").RefAttributes<HTMLDivElement>>;
11
11
  //# sourceMappingURL=ThreadViewport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadViewport.d.ts","sourceRoot":"","sources":["../../../src/primitives/thread/ThreadViewport.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,KAAK,UAAU,EAAc,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EACL,gCAAgC,EAEjC,MAAM,0DAA0D,CAAC;AAElE,yBAAiB,uBAAuB,CAAC;IACvC,KAAY,OAAO,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACvD,KAAY,KAAK,GAAG,wBAAwB,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,GAChE,gCAAgC,CAAC;CACpC;AAED,eAAO,MAAM,uBAAuB;;6FAelC,CAAC"}
1
+ {"version":3,"file":"ThreadViewport.d.ts","sourceRoot":"","sources":["../../../src/primitives/thread/ThreadViewport.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,KAAK,UAAU,EAAc,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,0DAA0D,CAAC;AAEvG,yBAAiB,uBAAuB,CAAC;IACvC,KAAY,OAAO,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACvD,KAAY,KAAK,GAAG,wBAAwB,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,GAChE,2BAA2B,CAAC,OAAO,CAAC;CACvC;AAED,eAAO,MAAM,uBAAuB;;gGAelC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/thread/ThreadViewport.tsx"],"sourcesContent":["\"use client\";\n\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { type ElementRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport {\n UseThreadViewportAutoScrollProps,\n useThreadViewportAutoScroll,\n} from \"../../primitive-hooks/thread/useThreadViewportAutoScroll\";\n\nexport namespace ThreadPrimitiveViewport {\n export type Element = ElementRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div> &\n UseThreadViewportAutoScrollProps;\n}\n\nexport const ThreadPrimitiveViewport = forwardRef<\n ThreadPrimitiveViewport.Element,\n ThreadPrimitiveViewport.Props\n>(({ autoScroll, children, ...rest }, forwardedRef) => {\n const autoScrollRef = useThreadViewportAutoScroll<HTMLDivElement>({\n autoScroll,\n });\n\n const ref = useComposedRefs(forwardedRef, autoScrollRef);\n\n return (\n <Primitive.div {...rest} ref={ref}>\n {children}\n </Primitive.div>\n );\n});\n\nThreadPrimitiveViewport.displayName = \"ThreadPrimitive.Viewport\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,gCAAgC;AAChC,6BAA0B;AAC1B,mBAAsE;AACtE,yCAGO;AAmBH;AAXG,IAAM,8BAA0B,yBAGrC,CAAC,EAAE,YAAY,UAAU,GAAG,KAAK,GAAG,iBAAiB;AACrD,QAAM,oBAAgB,gEAA4C;AAAA,IAChE;AAAA,EACF,CAAC;AAED,QAAM,UAAM,2CAAgB,cAAc,aAAa;AAEvD,SACE,4CAAC,iCAAU,KAAV,EAAe,GAAG,MAAM,KACtB,UACH;AAEJ,CAAC;AAED,wBAAwB,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/thread/ThreadViewport.tsx"],"sourcesContent":["\"use client\";\n\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { type ElementRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport { useThreadViewportAutoScroll } from \"../../primitive-hooks/thread/useThreadViewportAutoScroll\";\n\nexport namespace ThreadPrimitiveViewport {\n export type Element = ElementRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div> &\n useThreadViewportAutoScroll.Options;\n}\n\nexport const ThreadPrimitiveViewport = forwardRef<\n ThreadPrimitiveViewport.Element,\n ThreadPrimitiveViewport.Props\n>(({ autoScroll, children, ...rest }, forwardedRef) => {\n const autoScrollRef = useThreadViewportAutoScroll<HTMLDivElement>({\n autoScroll,\n });\n\n const ref = useComposedRefs(forwardedRef, autoScrollRef);\n\n return (\n <Primitive.div {...rest} ref={ref}>\n {children}\n </Primitive.div>\n );\n});\n\nThreadPrimitiveViewport.displayName = \"ThreadPrimitive.Viewport\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,gCAAgC;AAChC,6BAA0B;AAC1B,mBAAsE;AACtE,yCAA4C;AAmBxC;AAXG,IAAM,8BAA0B,yBAGrC,CAAC,EAAE,YAAY,UAAU,GAAG,KAAK,GAAG,iBAAiB;AACrD,QAAM,oBAAgB,gEAA4C;AAAA,IAChE;AAAA,EACF,CAAC;AAED,QAAM,UAAM,2CAAgB,cAAc,aAAa;AAEvD,SACE,4CAAC,iCAAU,KAAV,EAAe,GAAG,MAAM,KACtB,UACH;AAEJ,CAAC;AAED,wBAAwB,cAAc;","names":[]}
@@ -4,9 +4,7 @@
4
4
  import { useComposedRefs } from "@radix-ui/react-compose-refs";
5
5
  import { Primitive } from "@radix-ui/react-primitive";
6
6
  import { forwardRef } from "react";
7
- import {
8
- useThreadViewportAutoScroll
9
- } from "../../primitive-hooks/thread/useThreadViewportAutoScroll.mjs";
7
+ import { useThreadViewportAutoScroll } from "../../primitive-hooks/thread/useThreadViewportAutoScroll.mjs";
10
8
  import { jsx } from "react/jsx-runtime";
11
9
  var ThreadPrimitiveViewport = forwardRef(({ autoScroll, children, ...rest }, forwardedRef) => {
12
10
  const autoScrollRef = useThreadViewportAutoScroll({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/thread/ThreadViewport.tsx"],"sourcesContent":["\"use client\";\n\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { type ElementRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport {\n UseThreadViewportAutoScrollProps,\n useThreadViewportAutoScroll,\n} from \"../../primitive-hooks/thread/useThreadViewportAutoScroll\";\n\nexport namespace ThreadPrimitiveViewport {\n export type Element = ElementRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div> &\n UseThreadViewportAutoScrollProps;\n}\n\nexport const ThreadPrimitiveViewport = forwardRef<\n ThreadPrimitiveViewport.Element,\n ThreadPrimitiveViewport.Props\n>(({ autoScroll, children, ...rest }, forwardedRef) => {\n const autoScrollRef = useThreadViewportAutoScroll<HTMLDivElement>({\n autoScroll,\n });\n\n const ref = useComposedRefs(forwardedRef, autoScrollRef);\n\n return (\n <Primitive.div {...rest} ref={ref}>\n {children}\n </Primitive.div>\n );\n});\n\nThreadPrimitiveViewport.displayName = \"ThreadPrimitive.Viewport\";\n"],"mappings":";;;AAEA,SAAS,uBAAuB;AAChC,SAAS,iBAAiB;AAC1B,SAA0B,kBAA4C;AACtE;AAAA,EAEE;AAAA,OACK;AAmBH;AAXG,IAAM,0BAA0B,WAGrC,CAAC,EAAE,YAAY,UAAU,GAAG,KAAK,GAAG,iBAAiB;AACrD,QAAM,gBAAgB,4BAA4C;AAAA,IAChE;AAAA,EACF,CAAC;AAED,QAAM,MAAM,gBAAgB,cAAc,aAAa;AAEvD,SACE,oBAAC,UAAU,KAAV,EAAe,GAAG,MAAM,KACtB,UACH;AAEJ,CAAC;AAED,wBAAwB,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/thread/ThreadViewport.tsx"],"sourcesContent":["\"use client\";\n\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { type ElementRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport { useThreadViewportAutoScroll } from \"../../primitive-hooks/thread/useThreadViewportAutoScroll\";\n\nexport namespace ThreadPrimitiveViewport {\n export type Element = ElementRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div> &\n useThreadViewportAutoScroll.Options;\n}\n\nexport const ThreadPrimitiveViewport = forwardRef<\n ThreadPrimitiveViewport.Element,\n ThreadPrimitiveViewport.Props\n>(({ autoScroll, children, ...rest }, forwardedRef) => {\n const autoScrollRef = useThreadViewportAutoScroll<HTMLDivElement>({\n autoScroll,\n });\n\n const ref = useComposedRefs(forwardedRef, autoScrollRef);\n\n return (\n <Primitive.div {...rest} ref={ref}>\n {children}\n </Primitive.div>\n );\n});\n\nThreadPrimitiveViewport.displayName = \"ThreadPrimitive.Viewport\";\n"],"mappings":";;;AAEA,SAAS,uBAAuB;AAChC,SAAS,iBAAiB;AAC1B,SAA0B,kBAA4C;AACtE,SAAS,mCAAmC;AAmBxC;AAXG,IAAM,0BAA0B,WAGrC,CAAC,EAAE,YAAY,UAAU,GAAG,KAAK,GAAG,iBAAiB;AACrD,QAAM,gBAAgB,4BAA4C;AAAA,IAChE;AAAA,EACF,CAAC;AAED,QAAM,MAAM,gBAAgB,cAAc,aAAa;AAEvD,SACE,oBAAC,UAAU,KAAV,EAAe,GAAG,MAAM,KACtB,UACH;AAEJ,CAAC;AAED,wBAAwB,cAAc;","names":[]}
@@ -1,7 +1,7 @@
1
- import type { FC } from "react";
1
+ import type { FC, ReactNode } from "react";
2
2
  export declare namespace ThreadListItemPrimitiveTitle {
3
3
  type Props = {
4
- fallback?: React.ReactNode;
4
+ fallback?: ReactNode;
5
5
  };
6
6
  }
7
7
  export declare const ThreadListItemPrimitiveTitle: FC<ThreadListItemPrimitiveTitle.Props>;
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListItemTitle.d.ts","sourceRoot":"","sources":["../../../src/primitives/threadListItem/ThreadListItemTitle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,yBAAiB,4BAA4B,CAAC;IAC5C,KAAY,KAAK,GAAG;QAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC5B,CAAC;CACH;AAED,eAAO,MAAM,4BAA4B,EAAE,EAAE,CAC3C,4BAA4B,CAAC,KAAK,CAInC,CAAC"}
1
+ {"version":3,"file":"ThreadListItemTitle.d.ts","sourceRoot":"","sources":["../../../src/primitives/threadListItem/ThreadListItemTitle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG3C,yBAAiB,4BAA4B,CAAC;IAC5C,KAAY,KAAK,GAAG;QAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;KACtB,CAAC;CACH;AAED,eAAO,MAAM,4BAA4B,EAAE,EAAE,CAC3C,4BAA4B,CAAC,KAAK,CAInC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/threadListItem/ThreadListItemTitle.tsx"],"sourcesContent":["\"use client\";\n\nimport type { FC } from \"react\";\nimport { useThreadListItem } from \"../../context/react/ThreadListItemContext\";\n\nexport namespace ThreadListItemPrimitiveTitle {\n export type Props = {\n fallback?: React.ReactNode;\n };\n}\n\nexport const ThreadListItemPrimitiveTitle: FC<\n ThreadListItemPrimitiveTitle.Props\n> = ({ fallback }) => {\n const title = useThreadListItem((t) => t.title);\n return <>{title || fallback}</>;\n};\n\nThreadListItemPrimitiveTitle.displayName = \"ThreadListItemPrimitive.Title\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mCAAkC;AAYzB;AAJF,IAAM,+BAET,CAAC,EAAE,SAAS,MAAM;AACpB,QAAM,YAAQ,gDAAkB,CAAC,MAAM,EAAE,KAAK;AAC9C,SAAO,2EAAG,mBAAS,UAAS;AAC9B;AAEA,6BAA6B,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/threadListItem/ThreadListItemTitle.tsx"],"sourcesContent":["\"use client\";\n\nimport type { FC, ReactNode } from \"react\";\nimport { useThreadListItem } from \"../../context/react/ThreadListItemContext\";\n\nexport namespace ThreadListItemPrimitiveTitle {\n export type Props = {\n fallback?: ReactNode;\n };\n}\n\nexport const ThreadListItemPrimitiveTitle: FC<\n ThreadListItemPrimitiveTitle.Props\n> = ({ fallback }) => {\n const title = useThreadListItem((t) => t.title);\n return <>{title || fallback}</>;\n};\n\nThreadListItemPrimitiveTitle.displayName = \"ThreadListItemPrimitive.Title\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mCAAkC;AAYzB;AAJF,IAAM,+BAET,CAAC,EAAE,SAAS,MAAM;AACpB,QAAM,YAAQ,gDAAkB,CAAC,MAAM,EAAE,KAAK;AAC9C,SAAO,2EAAG,mBAAS,UAAS;AAC9B;AAEA,6BAA6B,cAAc;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/threadListItem/ThreadListItemTitle.tsx"],"sourcesContent":["\"use client\";\n\nimport type { FC } from \"react\";\nimport { useThreadListItem } from \"../../context/react/ThreadListItemContext\";\n\nexport namespace ThreadListItemPrimitiveTitle {\n export type Props = {\n fallback?: React.ReactNode;\n };\n}\n\nexport const ThreadListItemPrimitiveTitle: FC<\n ThreadListItemPrimitiveTitle.Props\n> = ({ fallback }) => {\n const title = useThreadListItem((t) => t.title);\n return <>{title || fallback}</>;\n};\n\nThreadListItemPrimitiveTitle.displayName = \"ThreadListItemPrimitive.Title\";\n"],"mappings":";;;AAGA,SAAS,yBAAyB;AAYzB;AAJF,IAAM,+BAET,CAAC,EAAE,SAAS,MAAM;AACpB,QAAM,QAAQ,kBAAkB,CAAC,MAAM,EAAE,KAAK;AAC9C,SAAO,gCAAG,mBAAS,UAAS;AAC9B;AAEA,6BAA6B,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/threadListItem/ThreadListItemTitle.tsx"],"sourcesContent":["\"use client\";\n\nimport type { FC, ReactNode } from \"react\";\nimport { useThreadListItem } from \"../../context/react/ThreadListItemContext\";\n\nexport namespace ThreadListItemPrimitiveTitle {\n export type Props = {\n fallback?: ReactNode;\n };\n}\n\nexport const ThreadListItemPrimitiveTitle: FC<\n ThreadListItemPrimitiveTitle.Props\n> = ({ fallback }) => {\n const title = useThreadListItem((t) => t.title);\n return <>{title || fallback}</>;\n};\n\nThreadListItemPrimitiveTitle.displayName = \"ThreadListItemPrimitive.Title\";\n"],"mappings":";;;AAGA,SAAS,yBAAyB;AAYzB;AAJF,IAAM,+BAET,CAAC,EAAE,SAAS,MAAM;AACpB,QAAM,QAAQ,kBAAkB,CAAC,MAAM,EAAE,KAAK;AAC9C,SAAO,gCAAG,mBAAS,UAAS;AAC9B;AAEA,6BAA6B,cAAc;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useDangerousInBrowserRuntime.d.ts","sourceRoot":"","sources":["../../../src/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,IAAI,CAAC;AAE1D,OAAO,EAEL,gCAAgC,EACjC,MAAM,6BAA6B,CAAC;AAGrC,MAAM,MAAM,gCAAgC,GAC1C,gCAAgC,GAAG,mBAAmB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,YAC9B,gCAAgC,oDAM1C,CAAC"}
1
+ {"version":3,"file":"useDangerousInBrowserRuntime.d.ts","sourceRoot":"","sources":["../../../src/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,IAAI,CAAC;AAE1D,OAAO,EAEL,gCAAgC,EACjC,MAAM,6BAA6B,CAAC;AAGrC,MAAM,MAAM,gCAAgC,GAC1C,gCAAgC,GAAG,mBAAmB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,YAC9B,gCAAgC,oDAM1C,CAAC"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.ts"],"sourcesContent":["import { LocalRuntimeOptions, useLocalRuntime } from \"..\";\nimport { useState } from \"react\";\nimport {\n DangerousInBrowserAdapter,\n DangerousInBrowserAdapterOptions,\n} from \"./DangerousInBrowserAdapter\";\nimport { splitLocalRuntimeOptions } from \"../local/LocalRuntimeOptions\";\n\nexport type DangerousInBrowserRuntimeOptions =\n DangerousInBrowserAdapterOptions & LocalRuntimeOptions;\n\nexport const useDangerousInBrowserRuntime = (\n options: DangerousInBrowserRuntimeOptions,\n) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n const [adapter] = useState(() => new DangerousInBrowserAdapter(otherOptions));\n return useLocalRuntime(adapter, localRuntimeOptions);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAqD;AACrD,mBAAyB;AACzB,uCAGO;AACP,iCAAyC;AAKlC,IAAM,+BAA+B,CAC1C,YACG;AACH,QAAM,EAAE,qBAAqB,aAAa,QACxC,qDAAyB,OAAO;AAClC,QAAM,CAAC,OAAO,QAAI,uBAAS,MAAM,IAAI,2DAA0B,YAAY,CAAC;AAC5E,aAAO,0BAAgB,SAAS,mBAAmB;AACrD;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.ts"],"sourcesContent":["\"use client\";\n\nimport { LocalRuntimeOptions, useLocalRuntime } from \"..\";\nimport { useState } from \"react\";\nimport {\n DangerousInBrowserAdapter,\n DangerousInBrowserAdapterOptions,\n} from \"./DangerousInBrowserAdapter\";\nimport { splitLocalRuntimeOptions } from \"../local/LocalRuntimeOptions\";\n\nexport type DangerousInBrowserRuntimeOptions =\n DangerousInBrowserAdapterOptions & LocalRuntimeOptions;\n\nexport const useDangerousInBrowserRuntime = (\n options: DangerousInBrowserRuntimeOptions,\n) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n const [adapter] = useState(() => new DangerousInBrowserAdapter(otherOptions));\n return useLocalRuntime(adapter, localRuntimeOptions);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,eAAqD;AACrD,mBAAyB;AACzB,uCAGO;AACP,iCAAyC;AAKlC,IAAM,+BAA+B,CAC1C,YACG;AACH,QAAM,EAAE,qBAAqB,aAAa,QACxC,qDAAyB,OAAO;AAClC,QAAM,CAAC,OAAO,QAAI,uBAAS,MAAM,IAAI,2DAA0B,YAAY,CAAC;AAC5E,aAAO,0BAAgB,SAAS,mBAAmB;AACrD;","names":[]}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  // src/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.ts
2
4
  import { useLocalRuntime } from "../index.mjs";
3
5
  import { useState } from "react";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.ts"],"sourcesContent":["import { LocalRuntimeOptions, useLocalRuntime } from \"..\";\nimport { useState } from \"react\";\nimport {\n DangerousInBrowserAdapter,\n DangerousInBrowserAdapterOptions,\n} from \"./DangerousInBrowserAdapter\";\nimport { splitLocalRuntimeOptions } from \"../local/LocalRuntimeOptions\";\n\nexport type DangerousInBrowserRuntimeOptions =\n DangerousInBrowserAdapterOptions & LocalRuntimeOptions;\n\nexport const useDangerousInBrowserRuntime = (\n options: DangerousInBrowserRuntimeOptions,\n) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n const [adapter] = useState(() => new DangerousInBrowserAdapter(otherOptions));\n return useLocalRuntime(adapter, localRuntimeOptions);\n};\n"],"mappings":";AAAA,SAA8B,uBAAuB;AACrD,SAAS,gBAAgB;AACzB;AAAA,EACE;AAAA,OAEK;AACP,SAAS,gCAAgC;AAKlC,IAAM,+BAA+B,CAC1C,YACG;AACH,QAAM,EAAE,qBAAqB,aAAa,IACxC,yBAAyB,OAAO;AAClC,QAAM,CAAC,OAAO,IAAI,SAAS,MAAM,IAAI,0BAA0B,YAAY,CAAC;AAC5E,SAAO,gBAAgB,SAAS,mBAAmB;AACrD;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.ts"],"sourcesContent":["\"use client\";\n\nimport { LocalRuntimeOptions, useLocalRuntime } from \"..\";\nimport { useState } from \"react\";\nimport {\n DangerousInBrowserAdapter,\n DangerousInBrowserAdapterOptions,\n} from \"./DangerousInBrowserAdapter\";\nimport { splitLocalRuntimeOptions } from \"../local/LocalRuntimeOptions\";\n\nexport type DangerousInBrowserRuntimeOptions =\n DangerousInBrowserAdapterOptions & LocalRuntimeOptions;\n\nexport const useDangerousInBrowserRuntime = (\n options: DangerousInBrowserRuntimeOptions,\n) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n const [adapter] = useState(() => new DangerousInBrowserAdapter(otherOptions));\n return useLocalRuntime(adapter, localRuntimeOptions);\n};\n"],"mappings":";;;AAEA,SAA8B,uBAAuB;AACrD,SAAS,gBAAgB;AACzB;AAAA,EACE;AAAA,OAEK;AACP,SAAS,gCAAgC;AAKlC,IAAM,+BAA+B,CAC1C,YACG;AACH,QAAM,EAAE,qBAAqB,aAAa,IACxC,yBAAyB,OAAO;AAClC,QAAM,CAAC,OAAO,IAAI,SAAS,MAAM,IAAI,0BAA0B,YAAY,CAAC;AAC5E,SAAO,gBAAgB,SAAS,mBAAmB;AACrD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useEdgeRuntime.d.ts","sourceRoot":"","sources":["../../../src/runtimes/edge/useEdgeRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAmB,MAAM,mBAAmB,CAAC;AAG5E,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;AAE9E,eAAO,MAAM,cAAc,YAAa,kBAAkB,oDAQzD,CAAC"}
1
+ {"version":3,"file":"useEdgeRuntime.d.ts","sourceRoot":"","sources":["../../../src/runtimes/edge/useEdgeRuntime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAmB,MAAM,mBAAmB,CAAC;AAG5E,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;AAE9E,eAAO,MAAM,cAAc,YAAa,kBAAkB,oDAQzD,CAAC"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/edge/useEdgeRuntime.ts"],"sourcesContent":["import { LocalRuntimeOptions, useLocalRuntime } from \"..\";\nimport { EdgeChatAdapterOptions, EdgeChatAdapter } from \"./EdgeChatAdapter\";\nimport { splitLocalRuntimeOptions } from \"../local/LocalRuntimeOptions\";\n\nexport type EdgeRuntimeOptions = EdgeChatAdapterOptions & LocalRuntimeOptions;\n\nexport const useEdgeRuntime = (options: EdgeRuntimeOptions) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n\n return useLocalRuntime(\n new EdgeChatAdapter(otherOptions),\n localRuntimeOptions,\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAqD;AACrD,6BAAwD;AACxD,iCAAyC;AAIlC,IAAM,iBAAiB,CAAC,YAAgC;AAC7D,QAAM,EAAE,qBAAqB,aAAa,QACxC,qDAAyB,OAAO;AAElC,aAAO;AAAA,IACL,IAAI,uCAAgB,YAAY;AAAA,IAChC;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/edge/useEdgeRuntime.ts"],"sourcesContent":["\"use client\";\n\nimport { LocalRuntimeOptions, useLocalRuntime } from \"..\";\nimport { EdgeChatAdapterOptions, EdgeChatAdapter } from \"./EdgeChatAdapter\";\nimport { splitLocalRuntimeOptions } from \"../local/LocalRuntimeOptions\";\n\nexport type EdgeRuntimeOptions = EdgeChatAdapterOptions & LocalRuntimeOptions;\n\nexport const useEdgeRuntime = (options: EdgeRuntimeOptions) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n\n return useLocalRuntime(\n new EdgeChatAdapter(otherOptions),\n localRuntimeOptions,\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,eAAqD;AACrD,6BAAwD;AACxD,iCAAyC;AAIlC,IAAM,iBAAiB,CAAC,YAAgC;AAC7D,QAAM,EAAE,qBAAqB,aAAa,QACxC,qDAAyB,OAAO;AAElC,aAAO;AAAA,IACL,IAAI,uCAAgB,YAAY;AAAA,IAChC;AAAA,EACF;AACF;","names":[]}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  // src/runtimes/edge/useEdgeRuntime.ts
2
4
  import { useLocalRuntime } from "../index.mjs";
3
5
  import { EdgeChatAdapter } from "./EdgeChatAdapter.mjs";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/edge/useEdgeRuntime.ts"],"sourcesContent":["import { LocalRuntimeOptions, useLocalRuntime } from \"..\";\nimport { EdgeChatAdapterOptions, EdgeChatAdapter } from \"./EdgeChatAdapter\";\nimport { splitLocalRuntimeOptions } from \"../local/LocalRuntimeOptions\";\n\nexport type EdgeRuntimeOptions = EdgeChatAdapterOptions & LocalRuntimeOptions;\n\nexport const useEdgeRuntime = (options: EdgeRuntimeOptions) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n\n return useLocalRuntime(\n new EdgeChatAdapter(otherOptions),\n localRuntimeOptions,\n );\n};\n"],"mappings":";AAAA,SAA8B,uBAAuB;AACrD,SAAiC,uBAAuB;AACxD,SAAS,gCAAgC;AAIlC,IAAM,iBAAiB,CAAC,YAAgC;AAC7D,QAAM,EAAE,qBAAqB,aAAa,IACxC,yBAAyB,OAAO;AAElC,SAAO;AAAA,IACL,IAAI,gBAAgB,YAAY;AAAA,IAChC;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/edge/useEdgeRuntime.ts"],"sourcesContent":["\"use client\";\n\nimport { LocalRuntimeOptions, useLocalRuntime } from \"..\";\nimport { EdgeChatAdapterOptions, EdgeChatAdapter } from \"./EdgeChatAdapter\";\nimport { splitLocalRuntimeOptions } from \"../local/LocalRuntimeOptions\";\n\nexport type EdgeRuntimeOptions = EdgeChatAdapterOptions & LocalRuntimeOptions;\n\nexport const useEdgeRuntime = (options: EdgeRuntimeOptions) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n\n return useLocalRuntime(\n new EdgeChatAdapter(otherOptions),\n localRuntimeOptions,\n );\n};\n"],"mappings":";;;AAEA,SAA8B,uBAAuB;AACrD,SAAiC,uBAAuB;AACxD,SAAS,gCAAgC;AAIlC,IAAM,iBAAiB,CAAC,YAAgC;AAC7D,QAAM,EAAE,qBAAqB,aAAa,IACxC,yBAAyB,OAAO;AAElC,SAAO;AAAA,IACL,IAAI,gBAAgB,YAAY;AAAA,IAChC;AAAA,EACF;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"external-message-converter.d.ts","sourceRoot":"","sources":["../../../src/runtimes/external-store/external-message-converter.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAyB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI/E,yBAAiB,2BAA2B,CAAC;IAC3C,KAAY,OAAO,GACf,iBAAiB,GACjB;QACE,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,MAAM,EAAE,GAAG,CAAC;KACb,CAAC;IAEN,KAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC;CAC/D;AAgJD,eAAO,MAAM,2BAA2B,GAAI,CAAC,SAAS,OAAO,sCAI1D;IACD,QAAQ,EAAE,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClD,QAAQ,EAAE,CAAC,EAAE,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB,oCAiEA,CAAC"}
1
+ {"version":3,"file":"external-message-converter.d.ts","sourceRoot":"","sources":["../../../src/runtimes/external-store/external-message-converter.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAyB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI/E,yBAAiB,2BAA2B,CAAC;IAC3C,KAAY,OAAO,GACf,iBAAiB,GACjB;QACE,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,MAAM,EAAE,GAAG,CAAC;KACb,CAAC;IAEN,KAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC;CAC/D;AAgJD,eAAO,MAAM,2BAA2B,GAAI,CAAC,SAAS,OAAO,sCAI1D;IACD,QAAQ,EAAE,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClD,QAAQ,EAAE,CAAC,EAAE,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB,oCAiEA,CAAC"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/external-message-converter.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { ThreadMessageConverter } from \"./ThreadMessageConverter\";\nimport {\n getExternalStoreMessage,\n symbolInnerMessage,\n} from \"./getExternalStoreMessage\";\nimport { fromThreadMessageLike, ThreadMessageLike } from \"./ThreadMessageLike\";\nimport { getAutoStatus, isAutoStatus } from \"./auto-status\";\nimport { ToolCallContentPart } from \"../../types\";\n\nexport namespace useExternalMessageConverter {\n export type Message =\n | ThreadMessageLike\n | {\n role: \"tool\";\n toolCallId: string;\n toolName?: string | undefined;\n result: any;\n };\n\n export type Callback<T> = (message: T) => Message | Message[];\n}\n\ntype CallbackResult<T> = {\n input: T;\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype ChunkResult<T> = {\n inputs: T[];\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\nconst joinExternalMessages = (\n messages: readonly useExternalMessageConverter.Message[],\n): ThreadMessageLike => {\n const assistantMessage: Mutable<Omit<ThreadMessageLike, \"metadata\">> & {\n content: Exclude<ThreadMessageLike[\"content\"][0], string>[];\n metadata?: Mutable<ThreadMessageLike[\"metadata\"]>;\n } = {\n role: \"assistant\",\n content: [],\n };\n for (const output of messages) {\n if (output.role === \"tool\") {\n const toolCallIdx = assistantMessage.content.findIndex(\n (c) => c.type === \"tool-call\" && c.toolCallId === output.toolCallId,\n );\n if (toolCallIdx !== -1) {\n const toolCall = assistantMessage.content[\n toolCallIdx\n ]! as ToolCallContentPart;\n if (output.toolName) {\n if (toolCall.toolName !== output.toolName)\n throw new Error(\n `Tool call name ${output.toolCallId} ${output.toolName} does not match existing tool call ${toolCall.toolName}`,\n );\n }\n assistantMessage.content[toolCallIdx] = {\n ...toolCall,\n result: output.result,\n };\n } else {\n throw new Error(\n `Tool call ${output.toolCallId} ${output.toolName} not found in assistant message`,\n );\n }\n } else {\n const role = output.role;\n switch (role) {\n case \"system\":\n case \"user\":\n return output;\n case \"assistant\":\n if (assistantMessage.content.length === 0) {\n assistantMessage.id = output.id;\n assistantMessage.createdAt ??= output.createdAt;\n assistantMessage.status ??= output.status;\n\n if (output.attachments) {\n assistantMessage.attachments = [\n ...(assistantMessage.attachments ?? []),\n ...output.attachments,\n ];\n }\n\n if (output.metadata) {\n assistantMessage.metadata ??= {};\n if (output.metadata.unstable_data) {\n assistantMessage.metadata.unstable_data = [\n ...(assistantMessage.metadata.unstable_data ?? []),\n ...output.metadata.unstable_data,\n ];\n }\n if (output.metadata.steps) {\n assistantMessage.metadata.steps = [\n ...(assistantMessage.metadata.steps ?? []),\n ...output.metadata.steps,\n ];\n }\n if (output.metadata.custom) {\n assistantMessage.metadata.custom = {\n ...(assistantMessage.metadata.custom ?? {}),\n ...output.metadata.custom,\n };\n }\n }\n // TODO keep this in sync\n }\n\n const content =\n typeof output.content === \"string\"\n ? [{ type: \"text\" as const, text: output.content }]\n : output.content;\n\n assistantMessage.content.push(...content);\n break;\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n }\n }\n return assistantMessage;\n};\n\nconst chunkExternalMessages = <T,>(callbackResults: CallbackResult<T>[]) => {\n const results: ChunkResult<T>[] = [];\n let isAssistant = false;\n let inputs: T[] = [];\n let outputs: useExternalMessageConverter.Message[] = [];\n\n const flush = () => {\n if (outputs.length) {\n results.push({\n inputs,\n outputs,\n });\n }\n inputs = [];\n outputs = [];\n };\n\n for (const callbackResult of callbackResults) {\n for (const output of callbackResult.outputs) {\n if (!isAssistant || output.role === \"user\" || output.role === \"system\") {\n flush();\n }\n isAssistant = output.role === \"assistant\" || output.role === \"tool\";\n\n if (inputs.at(-1) !== callbackResult.input) {\n inputs.push(callbackResult.input);\n }\n outputs.push(output);\n }\n }\n flush();\n return results;\n};\n\nexport const useExternalMessageConverter = <T extends WeakKey>({\n callback,\n messages,\n isRunning,\n}: {\n callback: useExternalMessageConverter.Callback<T>;\n messages: T[];\n isRunning: boolean;\n}) => {\n const state = useMemo(\n () => ({\n callback,\n callbackCache: new WeakMap<T, CallbackResult<T>>(),\n chunkCache: new WeakMap<\n useExternalMessageConverter.Message,\n ChunkResult<T>\n >(),\n converterCache: new ThreadMessageConverter(),\n }),\n [callback],\n );\n\n return useMemo(() => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n let result = state.callbackCache.get(message);\n if (!result) {\n const output = state.callback(message);\n const outputs = Array.isArray(output) ? output : [output];\n result = { input: message, outputs };\n state.callbackCache.set(message, result);\n }\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults).map((m) => {\n const key = m.outputs[0];\n if (!key) return m;\n\n const cached = state.chunkCache.get(key);\n if (cached && shallowArrayEqual(cached.outputs, m.outputs)) return cached;\n state.chunkCache.set(key, m);\n return m;\n });\n\n return state.converterCache.convertMessages(\n chunks,\n (cache, message, idx) => {\n const isLast = idx === chunks.length - 1;\n const autoStatus = getAutoStatus(isLast, isRunning);\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n ) {\n const inputs = getExternalStoreMessage(cache) as T[];\n if (shallowArrayEqual(inputs, message.inputs)) {\n return cache;\n }\n }\n\n const newMessage = fromThreadMessageLike(\n joinExternalMessages(message.outputs),\n idx.toString(),\n autoStatus,\n );\n (newMessage as any)[symbolInnerMessage] = message.inputs;\n return newMessage;\n },\n );\n }, [state, messages, isRunning]);\n};\n\nconst shallowArrayEqual = (a: unknown[], b: unknown[]) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/external-message-converter.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport { ThreadMessageConverter } from \"./ThreadMessageConverter\";\nimport {\n getExternalStoreMessage,\n symbolInnerMessage,\n} from \"./getExternalStoreMessage\";\nimport { fromThreadMessageLike, ThreadMessageLike } from \"./ThreadMessageLike\";\nimport { getAutoStatus, isAutoStatus } from \"./auto-status\";\nimport { ToolCallContentPart } from \"../../types\";\n\nexport namespace useExternalMessageConverter {\n export type Message =\n | ThreadMessageLike\n | {\n role: \"tool\";\n toolCallId: string;\n toolName?: string | undefined;\n result: any;\n };\n\n export type Callback<T> = (message: T) => Message | Message[];\n}\n\ntype CallbackResult<T> = {\n input: T;\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype ChunkResult<T> = {\n inputs: T[];\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\nconst joinExternalMessages = (\n messages: readonly useExternalMessageConverter.Message[],\n): ThreadMessageLike => {\n const assistantMessage: Mutable<Omit<ThreadMessageLike, \"metadata\">> & {\n content: Exclude<ThreadMessageLike[\"content\"][0], string>[];\n metadata?: Mutable<ThreadMessageLike[\"metadata\"]>;\n } = {\n role: \"assistant\",\n content: [],\n };\n for (const output of messages) {\n if (output.role === \"tool\") {\n const toolCallIdx = assistantMessage.content.findIndex(\n (c) => c.type === \"tool-call\" && c.toolCallId === output.toolCallId,\n );\n if (toolCallIdx !== -1) {\n const toolCall = assistantMessage.content[\n toolCallIdx\n ]! as ToolCallContentPart;\n if (output.toolName) {\n if (toolCall.toolName !== output.toolName)\n throw new Error(\n `Tool call name ${output.toolCallId} ${output.toolName} does not match existing tool call ${toolCall.toolName}`,\n );\n }\n assistantMessage.content[toolCallIdx] = {\n ...toolCall,\n result: output.result,\n };\n } else {\n throw new Error(\n `Tool call ${output.toolCallId} ${output.toolName} not found in assistant message`,\n );\n }\n } else {\n const role = output.role;\n switch (role) {\n case \"system\":\n case \"user\":\n return output;\n case \"assistant\":\n if (assistantMessage.content.length === 0) {\n assistantMessage.id = output.id;\n assistantMessage.createdAt ??= output.createdAt;\n assistantMessage.status ??= output.status;\n\n if (output.attachments) {\n assistantMessage.attachments = [\n ...(assistantMessage.attachments ?? []),\n ...output.attachments,\n ];\n }\n\n if (output.metadata) {\n assistantMessage.metadata ??= {};\n if (output.metadata.unstable_data) {\n assistantMessage.metadata.unstable_data = [\n ...(assistantMessage.metadata.unstable_data ?? []),\n ...output.metadata.unstable_data,\n ];\n }\n if (output.metadata.steps) {\n assistantMessage.metadata.steps = [\n ...(assistantMessage.metadata.steps ?? []),\n ...output.metadata.steps,\n ];\n }\n if (output.metadata.custom) {\n assistantMessage.metadata.custom = {\n ...(assistantMessage.metadata.custom ?? {}),\n ...output.metadata.custom,\n };\n }\n }\n // TODO keep this in sync\n }\n\n const content =\n typeof output.content === \"string\"\n ? [{ type: \"text\" as const, text: output.content }]\n : output.content;\n\n assistantMessage.content.push(...content);\n break;\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n }\n }\n return assistantMessage;\n};\n\nconst chunkExternalMessages = <T,>(callbackResults: CallbackResult<T>[]) => {\n const results: ChunkResult<T>[] = [];\n let isAssistant = false;\n let inputs: T[] = [];\n let outputs: useExternalMessageConverter.Message[] = [];\n\n const flush = () => {\n if (outputs.length) {\n results.push({\n inputs,\n outputs,\n });\n }\n inputs = [];\n outputs = [];\n };\n\n for (const callbackResult of callbackResults) {\n for (const output of callbackResult.outputs) {\n if (!isAssistant || output.role === \"user\" || output.role === \"system\") {\n flush();\n }\n isAssistant = output.role === \"assistant\" || output.role === \"tool\";\n\n if (inputs.at(-1) !== callbackResult.input) {\n inputs.push(callbackResult.input);\n }\n outputs.push(output);\n }\n }\n flush();\n return results;\n};\n\nexport const useExternalMessageConverter = <T extends WeakKey>({\n callback,\n messages,\n isRunning,\n}: {\n callback: useExternalMessageConverter.Callback<T>;\n messages: T[];\n isRunning: boolean;\n}) => {\n const state = useMemo(\n () => ({\n callback,\n callbackCache: new WeakMap<T, CallbackResult<T>>(),\n chunkCache: new WeakMap<\n useExternalMessageConverter.Message,\n ChunkResult<T>\n >(),\n converterCache: new ThreadMessageConverter(),\n }),\n [callback],\n );\n\n return useMemo(() => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n let result = state.callbackCache.get(message);\n if (!result) {\n const output = state.callback(message);\n const outputs = Array.isArray(output) ? output : [output];\n result = { input: message, outputs };\n state.callbackCache.set(message, result);\n }\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults).map((m) => {\n const key = m.outputs[0];\n if (!key) return m;\n\n const cached = state.chunkCache.get(key);\n if (cached && shallowArrayEqual(cached.outputs, m.outputs)) return cached;\n state.chunkCache.set(key, m);\n return m;\n });\n\n return state.converterCache.convertMessages(\n chunks,\n (cache, message, idx) => {\n const isLast = idx === chunks.length - 1;\n const autoStatus = getAutoStatus(isLast, isRunning);\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n ) {\n const inputs = getExternalStoreMessage(cache) as T[];\n if (shallowArrayEqual(inputs, message.inputs)) {\n return cache;\n }\n }\n\n const newMessage = fromThreadMessageLike(\n joinExternalMessages(message.outputs),\n idx.toString(),\n autoStatus,\n );\n (newMessage as any)[symbolInnerMessage] = message.inputs;\n return newMessage;\n },\n );\n }, [state, messages, isRunning]);\n};\n\nconst shallowArrayEqual = (a: unknown[], b: unknown[]) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAwB;AACxB,oCAAuC;AACvC,qCAGO;AACP,+BAAyD;AACzD,yBAA4C;AA8B5C,IAAM,uBAAuB,CAC3B,aACsB;AACtB,QAAM,mBAGF;AAAA,IACF,MAAM;AAAA,IACN,SAAS,CAAC;AAAA,EACZ;AACA,aAAW,UAAU,UAAU;AAC7B,QAAI,OAAO,SAAS,QAAQ;AAC1B,YAAM,cAAc,iBAAiB,QAAQ;AAAA,QAC3C,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,eAAe,OAAO;AAAA,MAC3D;AACA,UAAI,gBAAgB,IAAI;AACtB,cAAM,WAAW,iBAAiB,QAChC,WACF;AACA,YAAI,OAAO,UAAU;AACnB,cAAI,SAAS,aAAa,OAAO;AAC/B,kBAAM,IAAI;AAAA,cACR,kBAAkB,OAAO,UAAU,IAAI,OAAO,QAAQ,sCAAsC,SAAS,QAAQ;AAAA,YAC/G;AAAA,QACJ;AACA,yBAAiB,QAAQ,WAAW,IAAI;AAAA,UACtC,GAAG;AAAA,UACH,QAAQ,OAAO;AAAA,QACjB;AAAA,MACF,OAAO;AACL,cAAM,IAAI;AAAA,UACR,aAAa,OAAO,UAAU,IAAI,OAAO,QAAQ;AAAA,QACnD;AAAA,MACF;AAAA,IACF,OAAO;AACL,YAAM,OAAO,OAAO;AACpB,cAAQ,MAAM;AAAA,QACZ,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,cAAI,iBAAiB,QAAQ,WAAW,GAAG;AACzC,6BAAiB,KAAK,OAAO;AAC7B,6BAAiB,cAAc,OAAO;AACtC,6BAAiB,WAAW,OAAO;AAEnC,gBAAI,OAAO,aAAa;AACtB,+BAAiB,cAAc;AAAA,gBAC7B,GAAI,iBAAiB,eAAe,CAAC;AAAA,gBACrC,GAAG,OAAO;AAAA,cACZ;AAAA,YACF;AAEA,gBAAI,OAAO,UAAU;AACnB,+BAAiB,aAAa,CAAC;AAC/B,kBAAI,OAAO,SAAS,eAAe;AACjC,iCAAiB,SAAS,gBAAgB;AAAA,kBACxC,GAAI,iBAAiB,SAAS,iBAAiB,CAAC;AAAA,kBAChD,GAAG,OAAO,SAAS;AAAA,gBACrB;AAAA,cACF;AACA,kBAAI,OAAO,SAAS,OAAO;AACzB,iCAAiB,SAAS,QAAQ;AAAA,kBAChC,GAAI,iBAAiB,SAAS,SAAS,CAAC;AAAA,kBACxC,GAAG,OAAO,SAAS;AAAA,gBACrB;AAAA,cACF;AACA,kBAAI,OAAO,SAAS,QAAQ;AAC1B,iCAAiB,SAAS,SAAS;AAAA,kBACjC,GAAI,iBAAiB,SAAS,UAAU,CAAC;AAAA,kBACzC,GAAG,OAAO,SAAS;AAAA,gBACrB;AAAA,cACF;AAAA,YACF;AAAA,UAEF;AAEA,gBAAM,UACJ,OAAO,OAAO,YAAY,WACtB,CAAC,EAAE,MAAM,QAAiB,MAAM,OAAO,QAAQ,CAAC,IAChD,OAAO;AAEb,2BAAiB,QAAQ,KAAK,GAAG,OAAO;AACxC;AAAA,QACF,SAAS;AACP,gBAAM,kBAAyB;AAC/B,gBAAM,IAAI,MAAM,yBAAyB,eAAe,EAAE;AAAA,QAC5D;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,wBAAwB,CAAK,oBAAyC;AAC1E,QAAM,UAA4B,CAAC;AACnC,MAAI,cAAc;AAClB,MAAI,SAAc,CAAC;AACnB,MAAI,UAAiD,CAAC;AAEtD,QAAM,QAAQ,MAAM;AAClB,QAAI,QAAQ,QAAQ;AAClB,cAAQ,KAAK;AAAA,QACX;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AACA,aAAS,CAAC;AACV,cAAU,CAAC;AAAA,EACb;AAEA,aAAW,kBAAkB,iBAAiB;AAC5C,eAAW,UAAU,eAAe,SAAS;AAC3C,UAAI,CAAC,eAAe,OAAO,SAAS,UAAU,OAAO,SAAS,UAAU;AACtE,cAAM;AAAA,MACR;AACA,oBAAc,OAAO,SAAS,eAAe,OAAO,SAAS;AAE7D,UAAI,OAAO,GAAG,EAAE,MAAM,eAAe,OAAO;AAC1C,eAAO,KAAK,eAAe,KAAK;AAAA,MAClC;AACA,cAAQ,KAAK,MAAM;AAAA,IACrB;AAAA,EACF;AACA,QAAM;AACN,SAAO;AACT;AAEO,IAAM,8BAA8B,CAAoB;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,QAAM,YAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA,eAAe,oBAAI,QAA8B;AAAA,MACjD,YAAY,oBAAI,QAGd;AAAA,MACF,gBAAgB,IAAI,qDAAuB;AAAA,IAC7C;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,aAAO,sBAAQ,MAAM;AACnB,UAAM,kBAAuC,CAAC;AAC9C,eAAW,WAAW,UAAU;AAC9B,UAAI,SAAS,MAAM,cAAc,IAAI,OAAO;AAC5C,UAAI,CAAC,QAAQ;AACX,cAAM,SAAS,MAAM,SAAS,OAAO;AACrC,cAAM,UAAU,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM;AACxD,iBAAS,EAAE,OAAO,SAAS,QAAQ;AACnC,cAAM,cAAc,IAAI,SAAS,MAAM;AAAA,MACzC;AACA,sBAAgB,KAAK,MAAM;AAAA,IAC7B;AAEA,UAAM,SAAS,sBAAsB,eAAe,EAAE,IAAI,CAAC,MAAM;AAC/D,YAAM,MAAM,EAAE,QAAQ,CAAC;AACvB,UAAI,CAAC,IAAK,QAAO;AAEjB,YAAM,SAAS,MAAM,WAAW,IAAI,GAAG;AACvC,UAAI,UAAU,kBAAkB,OAAO,SAAS,EAAE,OAAO,EAAG,QAAO;AACnE,YAAM,WAAW,IAAI,KAAK,CAAC;AAC3B,aAAO;AAAA,IACT,CAAC;AAED,WAAO,MAAM,eAAe;AAAA,MAC1B;AAAA,MACA,CAAC,OAAO,SAAS,QAAQ;AACvB,cAAM,SAAS,QAAQ,OAAO,SAAS;AACvC,cAAM,iBAAa,kCAAc,QAAQ,SAAS;AAElD,YACE,UACC,MAAM,SAAS,eACd,KAAC,iCAAa,MAAM,MAAM,KAC1B,MAAM,WAAW,aACnB;AACA,gBAAM,aAAS,wDAAwB,KAAK;AAC5C,cAAI,kBAAkB,QAAQ,QAAQ,MAAM,GAAG;AAC7C,mBAAO;AAAA,UACT;AAAA,QACF;AAEA,cAAM,iBAAa;AAAA,UACjB,qBAAqB,QAAQ,OAAO;AAAA,UACpC,IAAI,SAAS;AAAA,UACb;AAAA,QACF;AACA,QAAC,WAAmB,iDAAkB,IAAI,QAAQ;AAClD,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,GAAG,CAAC,OAAO,UAAU,SAAS,CAAC;AACjC;AAEA,IAAM,oBAAoB,CAAC,GAAc,MAAiB;AACxD,MAAI,EAAE,WAAW,EAAE,OAAQ,QAAO;AAClC,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,QAAI,EAAE,CAAC,MAAM,EAAE,CAAC,EAAG,QAAO;AAAA,EAC5B;AACA,SAAO;AACT;","names":[]}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  // src/runtimes/external-store/external-message-converter.tsx
2
4
  import { useMemo } from "react";
3
5
  import { ThreadMessageConverter } from "./ThreadMessageConverter.mjs";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/external-message-converter.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { ThreadMessageConverter } from \"./ThreadMessageConverter\";\nimport {\n getExternalStoreMessage,\n symbolInnerMessage,\n} from \"./getExternalStoreMessage\";\nimport { fromThreadMessageLike, ThreadMessageLike } from \"./ThreadMessageLike\";\nimport { getAutoStatus, isAutoStatus } from \"./auto-status\";\nimport { ToolCallContentPart } from \"../../types\";\n\nexport namespace useExternalMessageConverter {\n export type Message =\n | ThreadMessageLike\n | {\n role: \"tool\";\n toolCallId: string;\n toolName?: string | undefined;\n result: any;\n };\n\n export type Callback<T> = (message: T) => Message | Message[];\n}\n\ntype CallbackResult<T> = {\n input: T;\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype ChunkResult<T> = {\n inputs: T[];\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\nconst joinExternalMessages = (\n messages: readonly useExternalMessageConverter.Message[],\n): ThreadMessageLike => {\n const assistantMessage: Mutable<Omit<ThreadMessageLike, \"metadata\">> & {\n content: Exclude<ThreadMessageLike[\"content\"][0], string>[];\n metadata?: Mutable<ThreadMessageLike[\"metadata\"]>;\n } = {\n role: \"assistant\",\n content: [],\n };\n for (const output of messages) {\n if (output.role === \"tool\") {\n const toolCallIdx = assistantMessage.content.findIndex(\n (c) => c.type === \"tool-call\" && c.toolCallId === output.toolCallId,\n );\n if (toolCallIdx !== -1) {\n const toolCall = assistantMessage.content[\n toolCallIdx\n ]! as ToolCallContentPart;\n if (output.toolName) {\n if (toolCall.toolName !== output.toolName)\n throw new Error(\n `Tool call name ${output.toolCallId} ${output.toolName} does not match existing tool call ${toolCall.toolName}`,\n );\n }\n assistantMessage.content[toolCallIdx] = {\n ...toolCall,\n result: output.result,\n };\n } else {\n throw new Error(\n `Tool call ${output.toolCallId} ${output.toolName} not found in assistant message`,\n );\n }\n } else {\n const role = output.role;\n switch (role) {\n case \"system\":\n case \"user\":\n return output;\n case \"assistant\":\n if (assistantMessage.content.length === 0) {\n assistantMessage.id = output.id;\n assistantMessage.createdAt ??= output.createdAt;\n assistantMessage.status ??= output.status;\n\n if (output.attachments) {\n assistantMessage.attachments = [\n ...(assistantMessage.attachments ?? []),\n ...output.attachments,\n ];\n }\n\n if (output.metadata) {\n assistantMessage.metadata ??= {};\n if (output.metadata.unstable_data) {\n assistantMessage.metadata.unstable_data = [\n ...(assistantMessage.metadata.unstable_data ?? []),\n ...output.metadata.unstable_data,\n ];\n }\n if (output.metadata.steps) {\n assistantMessage.metadata.steps = [\n ...(assistantMessage.metadata.steps ?? []),\n ...output.metadata.steps,\n ];\n }\n if (output.metadata.custom) {\n assistantMessage.metadata.custom = {\n ...(assistantMessage.metadata.custom ?? {}),\n ...output.metadata.custom,\n };\n }\n }\n // TODO keep this in sync\n }\n\n const content =\n typeof output.content === \"string\"\n ? [{ type: \"text\" as const, text: output.content }]\n : output.content;\n\n assistantMessage.content.push(...content);\n break;\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n }\n }\n return assistantMessage;\n};\n\nconst chunkExternalMessages = <T,>(callbackResults: CallbackResult<T>[]) => {\n const results: ChunkResult<T>[] = [];\n let isAssistant = false;\n let inputs: T[] = [];\n let outputs: useExternalMessageConverter.Message[] = [];\n\n const flush = () => {\n if (outputs.length) {\n results.push({\n inputs,\n outputs,\n });\n }\n inputs = [];\n outputs = [];\n };\n\n for (const callbackResult of callbackResults) {\n for (const output of callbackResult.outputs) {\n if (!isAssistant || output.role === \"user\" || output.role === \"system\") {\n flush();\n }\n isAssistant = output.role === \"assistant\" || output.role === \"tool\";\n\n if (inputs.at(-1) !== callbackResult.input) {\n inputs.push(callbackResult.input);\n }\n outputs.push(output);\n }\n }\n flush();\n return results;\n};\n\nexport const useExternalMessageConverter = <T extends WeakKey>({\n callback,\n messages,\n isRunning,\n}: {\n callback: useExternalMessageConverter.Callback<T>;\n messages: T[];\n isRunning: boolean;\n}) => {\n const state = useMemo(\n () => ({\n callback,\n callbackCache: new WeakMap<T, CallbackResult<T>>(),\n chunkCache: new WeakMap<\n useExternalMessageConverter.Message,\n ChunkResult<T>\n >(),\n converterCache: new ThreadMessageConverter(),\n }),\n [callback],\n );\n\n return useMemo(() => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n let result = state.callbackCache.get(message);\n if (!result) {\n const output = state.callback(message);\n const outputs = Array.isArray(output) ? output : [output];\n result = { input: message, outputs };\n state.callbackCache.set(message, result);\n }\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults).map((m) => {\n const key = m.outputs[0];\n if (!key) return m;\n\n const cached = state.chunkCache.get(key);\n if (cached && shallowArrayEqual(cached.outputs, m.outputs)) return cached;\n state.chunkCache.set(key, m);\n return m;\n });\n\n return state.converterCache.convertMessages(\n chunks,\n (cache, message, idx) => {\n const isLast = idx === chunks.length - 1;\n const autoStatus = getAutoStatus(isLast, isRunning);\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n ) {\n const inputs = getExternalStoreMessage(cache) as T[];\n if (shallowArrayEqual(inputs, message.inputs)) {\n return cache;\n }\n }\n\n const newMessage = fromThreadMessageLike(\n joinExternalMessages(message.outputs),\n idx.toString(),\n autoStatus,\n );\n (newMessage as any)[symbolInnerMessage] = message.inputs;\n return newMessage;\n },\n );\n }, [state, messages, isRunning]);\n};\n\nconst shallowArrayEqual = (a: unknown[], b: unknown[]) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/external-message-converter.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport { ThreadMessageConverter } from \"./ThreadMessageConverter\";\nimport {\n getExternalStoreMessage,\n symbolInnerMessage,\n} from \"./getExternalStoreMessage\";\nimport { fromThreadMessageLike, ThreadMessageLike } from \"./ThreadMessageLike\";\nimport { getAutoStatus, isAutoStatus } from \"./auto-status\";\nimport { ToolCallContentPart } from \"../../types\";\n\nexport namespace useExternalMessageConverter {\n export type Message =\n | ThreadMessageLike\n | {\n role: \"tool\";\n toolCallId: string;\n toolName?: string | undefined;\n result: any;\n };\n\n export type Callback<T> = (message: T) => Message | Message[];\n}\n\ntype CallbackResult<T> = {\n input: T;\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype ChunkResult<T> = {\n inputs: T[];\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\nconst joinExternalMessages = (\n messages: readonly useExternalMessageConverter.Message[],\n): ThreadMessageLike => {\n const assistantMessage: Mutable<Omit<ThreadMessageLike, \"metadata\">> & {\n content: Exclude<ThreadMessageLike[\"content\"][0], string>[];\n metadata?: Mutable<ThreadMessageLike[\"metadata\"]>;\n } = {\n role: \"assistant\",\n content: [],\n };\n for (const output of messages) {\n if (output.role === \"tool\") {\n const toolCallIdx = assistantMessage.content.findIndex(\n (c) => c.type === \"tool-call\" && c.toolCallId === output.toolCallId,\n );\n if (toolCallIdx !== -1) {\n const toolCall = assistantMessage.content[\n toolCallIdx\n ]! as ToolCallContentPart;\n if (output.toolName) {\n if (toolCall.toolName !== output.toolName)\n throw new Error(\n `Tool call name ${output.toolCallId} ${output.toolName} does not match existing tool call ${toolCall.toolName}`,\n );\n }\n assistantMessage.content[toolCallIdx] = {\n ...toolCall,\n result: output.result,\n };\n } else {\n throw new Error(\n `Tool call ${output.toolCallId} ${output.toolName} not found in assistant message`,\n );\n }\n } else {\n const role = output.role;\n switch (role) {\n case \"system\":\n case \"user\":\n return output;\n case \"assistant\":\n if (assistantMessage.content.length === 0) {\n assistantMessage.id = output.id;\n assistantMessage.createdAt ??= output.createdAt;\n assistantMessage.status ??= output.status;\n\n if (output.attachments) {\n assistantMessage.attachments = [\n ...(assistantMessage.attachments ?? []),\n ...output.attachments,\n ];\n }\n\n if (output.metadata) {\n assistantMessage.metadata ??= {};\n if (output.metadata.unstable_data) {\n assistantMessage.metadata.unstable_data = [\n ...(assistantMessage.metadata.unstable_data ?? []),\n ...output.metadata.unstable_data,\n ];\n }\n if (output.metadata.steps) {\n assistantMessage.metadata.steps = [\n ...(assistantMessage.metadata.steps ?? []),\n ...output.metadata.steps,\n ];\n }\n if (output.metadata.custom) {\n assistantMessage.metadata.custom = {\n ...(assistantMessage.metadata.custom ?? {}),\n ...output.metadata.custom,\n };\n }\n }\n // TODO keep this in sync\n }\n\n const content =\n typeof output.content === \"string\"\n ? [{ type: \"text\" as const, text: output.content }]\n : output.content;\n\n assistantMessage.content.push(...content);\n break;\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n }\n }\n return assistantMessage;\n};\n\nconst chunkExternalMessages = <T,>(callbackResults: CallbackResult<T>[]) => {\n const results: ChunkResult<T>[] = [];\n let isAssistant = false;\n let inputs: T[] = [];\n let outputs: useExternalMessageConverter.Message[] = [];\n\n const flush = () => {\n if (outputs.length) {\n results.push({\n inputs,\n outputs,\n });\n }\n inputs = [];\n outputs = [];\n };\n\n for (const callbackResult of callbackResults) {\n for (const output of callbackResult.outputs) {\n if (!isAssistant || output.role === \"user\" || output.role === \"system\") {\n flush();\n }\n isAssistant = output.role === \"assistant\" || output.role === \"tool\";\n\n if (inputs.at(-1) !== callbackResult.input) {\n inputs.push(callbackResult.input);\n }\n outputs.push(output);\n }\n }\n flush();\n return results;\n};\n\nexport const useExternalMessageConverter = <T extends WeakKey>({\n callback,\n messages,\n isRunning,\n}: {\n callback: useExternalMessageConverter.Callback<T>;\n messages: T[];\n isRunning: boolean;\n}) => {\n const state = useMemo(\n () => ({\n callback,\n callbackCache: new WeakMap<T, CallbackResult<T>>(),\n chunkCache: new WeakMap<\n useExternalMessageConverter.Message,\n ChunkResult<T>\n >(),\n converterCache: new ThreadMessageConverter(),\n }),\n [callback],\n );\n\n return useMemo(() => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n let result = state.callbackCache.get(message);\n if (!result) {\n const output = state.callback(message);\n const outputs = Array.isArray(output) ? output : [output];\n result = { input: message, outputs };\n state.callbackCache.set(message, result);\n }\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults).map((m) => {\n const key = m.outputs[0];\n if (!key) return m;\n\n const cached = state.chunkCache.get(key);\n if (cached && shallowArrayEqual(cached.outputs, m.outputs)) return cached;\n state.chunkCache.set(key, m);\n return m;\n });\n\n return state.converterCache.convertMessages(\n chunks,\n (cache, message, idx) => {\n const isLast = idx === chunks.length - 1;\n const autoStatus = getAutoStatus(isLast, isRunning);\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n ) {\n const inputs = getExternalStoreMessage(cache) as T[];\n if (shallowArrayEqual(inputs, message.inputs)) {\n return cache;\n }\n }\n\n const newMessage = fromThreadMessageLike(\n joinExternalMessages(message.outputs),\n idx.toString(),\n autoStatus,\n );\n (newMessage as any)[symbolInnerMessage] = message.inputs;\n return newMessage;\n },\n );\n }, [state, messages, isRunning]);\n};\n\nconst shallowArrayEqual = (a: unknown[], b: unknown[]) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useExternalStoreRuntime.d.ts","sourceRoot":"","sources":["../../../src/runtimes/external-store/useExternalStoreRuntime.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAU,oBAAoB,CAAC,CAAC,CAAC,qCAWzE,CAAC"}
1
+ {"version":3,"file":"useExternalStoreRuntime.d.ts","sourceRoot":"","sources":["../../../src/runtimes/external-store/useExternalStoreRuntime.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAU,oBAAoB,CAAC,CAAC,CAAC,qCAWzE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/useExternalStoreRuntime.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport { ExternalStoreRuntimeCore } from \"./ExternalStoreRuntimeCore\";\nimport { ExternalStoreAdapter } from \"./ExternalStoreAdapter\";\nimport { AssistantRuntimeImpl } from \"../../api/AssistantRuntime\";\nimport { ThreadRuntimeImpl } from \"../../api/ThreadRuntime\";\n\nexport const useExternalStoreRuntime = <T,>(store: ExternalStoreAdapter<T>) => {\n const [runtime] = useState(() => new ExternalStoreRuntimeCore(store));\n\n useEffect(() => {\n runtime.setAdapter(store);\n });\n\n return useMemo(\n () => AssistantRuntimeImpl.create(runtime, ThreadRuntimeImpl),\n [runtime],\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6C;AAC7C,sCAAyC;AAEzC,8BAAqC;AACrC,2BAAkC;AAE3B,IAAM,0BAA0B,CAAK,UAAmC;AAC7E,QAAM,CAAC,OAAO,QAAI,uBAAS,MAAM,IAAI,yDAAyB,KAAK,CAAC;AAEpE,8BAAU,MAAM;AACd,YAAQ,WAAW,KAAK;AAAA,EAC1B,CAAC;AAED,aAAO;AAAA,IACL,MAAM,6CAAqB,OAAO,SAAS,sCAAiB;AAAA,IAC5D,CAAC,OAAO;AAAA,EACV;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/useExternalStoreRuntime.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useMemo, useState } from \"react\";\nimport { ExternalStoreRuntimeCore } from \"./ExternalStoreRuntimeCore\";\nimport { ExternalStoreAdapter } from \"./ExternalStoreAdapter\";\nimport { AssistantRuntimeImpl } from \"../../api/AssistantRuntime\";\nimport { ThreadRuntimeImpl } from \"../../api/ThreadRuntime\";\n\nexport const useExternalStoreRuntime = <T,>(store: ExternalStoreAdapter<T>) => {\n const [runtime] = useState(() => new ExternalStoreRuntimeCore(store));\n\n useEffect(() => {\n runtime.setAdapter(store);\n });\n\n return useMemo(\n () => AssistantRuntimeImpl.create(runtime, ThreadRuntimeImpl),\n [runtime],\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA6C;AAC7C,sCAAyC;AAEzC,8BAAqC;AACrC,2BAAkC;AAE3B,IAAM,0BAA0B,CAAK,UAAmC;AAC7E,QAAM,CAAC,OAAO,QAAI,uBAAS,MAAM,IAAI,yDAAyB,KAAK,CAAC;AAEpE,8BAAU,MAAM;AACd,YAAQ,WAAW,KAAK;AAAA,EAC1B,CAAC;AAED,aAAO;AAAA,IACL,MAAM,6CAAqB,OAAO,SAAS,sCAAiB;AAAA,IAC5D,CAAC,OAAO;AAAA,EACV;AACF;","names":[]}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  // src/runtimes/external-store/useExternalStoreRuntime.tsx
2
4
  import { useEffect, useMemo, useState } from "react";
3
5
  import { ExternalStoreRuntimeCore } from "./ExternalStoreRuntimeCore.mjs";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/useExternalStoreRuntime.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport { ExternalStoreRuntimeCore } from \"./ExternalStoreRuntimeCore\";\nimport { ExternalStoreAdapter } from \"./ExternalStoreAdapter\";\nimport { AssistantRuntimeImpl } from \"../../api/AssistantRuntime\";\nimport { ThreadRuntimeImpl } from \"../../api/ThreadRuntime\";\n\nexport const useExternalStoreRuntime = <T,>(store: ExternalStoreAdapter<T>) => {\n const [runtime] = useState(() => new ExternalStoreRuntimeCore(store));\n\n useEffect(() => {\n runtime.setAdapter(store);\n });\n\n return useMemo(\n () => AssistantRuntimeImpl.create(runtime, ThreadRuntimeImpl),\n [runtime],\n );\n};\n"],"mappings":";AAAA,SAAS,WAAW,SAAS,gBAAgB;AAC7C,SAAS,gCAAgC;AAEzC,SAAS,4BAA4B;AACrC,SAAS,yBAAyB;AAE3B,IAAM,0BAA0B,CAAK,UAAmC;AAC7E,QAAM,CAAC,OAAO,IAAI,SAAS,MAAM,IAAI,yBAAyB,KAAK,CAAC;AAEpE,YAAU,MAAM;AACd,YAAQ,WAAW,KAAK;AAAA,EAC1B,CAAC;AAED,SAAO;AAAA,IACL,MAAM,qBAAqB,OAAO,SAAS,iBAAiB;AAAA,IAC5D,CAAC,OAAO;AAAA,EACV;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/useExternalStoreRuntime.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useMemo, useState } from \"react\";\nimport { ExternalStoreRuntimeCore } from \"./ExternalStoreRuntimeCore\";\nimport { ExternalStoreAdapter } from \"./ExternalStoreAdapter\";\nimport { AssistantRuntimeImpl } from \"../../api/AssistantRuntime\";\nimport { ThreadRuntimeImpl } from \"../../api/ThreadRuntime\";\n\nexport const useExternalStoreRuntime = <T,>(store: ExternalStoreAdapter<T>) => {\n const [runtime] = useState(() => new ExternalStoreRuntimeCore(store));\n\n useEffect(() => {\n runtime.setAdapter(store);\n });\n\n return useMemo(\n () => AssistantRuntimeImpl.create(runtime, ThreadRuntimeImpl),\n [runtime],\n );\n};\n"],"mappings":";;;AAEA,SAAS,WAAW,SAAS,gBAAgB;AAC7C,SAAS,gCAAgC;AAEzC,SAAS,4BAA4B;AACrC,SAAS,yBAAyB;AAE3B,IAAM,0BAA0B,CAAK,UAAmC;AAC7E,QAAM,CAAC,OAAO,IAAI,SAAS,MAAM,IAAI,yBAAyB,KAAK,CAAC;AAEpE,YAAU,MAAM;AACd,YAAQ,WAAW,KAAK;AAAA,EAC1B,CAAC;AAED,SAAO;AAAA,IACL,MAAM,qBAAqB,OAAO,SAAS,iBAAiB;AAAA,IAC5D,CAAC,OAAO;AAAA,EACV;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatModelAdapter.d.ts","sourceRoot":"","sources":["../../../src/runtimes/local/ChatModelAdapter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,aAAa,EACb,UAAU,EACV,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,0BAA0B,EAAE,GAAG,SAAS,CAAC;IACnD,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QACtC,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;QACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;KAC9C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,GAAG;IACzE,OAAO,EAAE,CAAC,eAAe,GAAG,mBAAmB,CAAC,EAAE,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;IAEpB,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,CACH,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;CAC7E,CAAC"}
1
+ {"version":3,"file":"ChatModelAdapter.d.ts","sourceRoot":"","sources":["../../../src/runtimes/local/ChatModelAdapter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,aAAa,EACb,UAAU,EACV,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,0BAA0B,EAAE,GAAG,SAAS,CAAC;IACnD,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QACtC,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;QACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;KAC9C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,GAAG;IACzE,OAAO,EAAE,CAAC,eAAe,GAAG,mBAAmB,CAAC,EAAE,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;IAEpB,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,CACH,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;CAC7E,CAAC"}
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- "use client";
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/local/ChatModelAdapter.tsx"],"sourcesContent":["\"use client\";\n\nimport type {\n MessageStatus,\n RunConfig,\n TextContentPart,\n ThreadAssistantContentPart,\n ThreadMessage,\n ThreadStep,\n ToolCallContentPart,\n} from \"../../types/AssistantTypes\";\nimport type { ModelConfig } from \"../../types/ModelConfigTypes\";\n\nexport type ChatModelRunUpdate = {\n content: ThreadAssistantContentPart[];\n metadata?: Record<string, unknown>;\n};\n\nexport type ChatModelRunResult = {\n content?: ThreadAssistantContentPart[] | undefined;\n status?: MessageStatus | undefined;\n metadata?: {\n unstable_data?: unknown[] | undefined;\n steps?: ThreadStep[] | undefined;\n custom?: Record<string, unknown> | undefined;\n };\n};\n\nexport type CoreChatModelRunResult = Omit<ChatModelRunResult, \"content\"> & {\n content: (TextContentPart | ToolCallContentPart)[];\n};\n\nexport type ChatModelRunOptions = {\n messages: ThreadMessage[];\n runConfig: RunConfig;\n abortSignal: AbortSignal;\n config: ModelConfig;\n\n unstable_assistantMessageId?: string;\n};\n\nexport type ChatModelAdapter = {\n run: (\n options: ChatModelRunOptions,\n ) => Promise<ChatModelRunResult> | AsyncGenerator<ChatModelRunResult, void>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/local/ChatModelAdapter.tsx"],"sourcesContent":["import type {\n MessageStatus,\n RunConfig,\n TextContentPart,\n ThreadAssistantContentPart,\n ThreadMessage,\n ThreadStep,\n ToolCallContentPart,\n} from \"../../types/AssistantTypes\";\nimport type { ModelConfig } from \"../../types/ModelConfigTypes\";\n\nexport type ChatModelRunUpdate = {\n content: ThreadAssistantContentPart[];\n metadata?: Record<string, unknown>;\n};\n\nexport type ChatModelRunResult = {\n content?: ThreadAssistantContentPart[] | undefined;\n status?: MessageStatus | undefined;\n metadata?: {\n unstable_data?: unknown[] | undefined;\n steps?: ThreadStep[] | undefined;\n custom?: Record<string, unknown> | undefined;\n };\n};\n\nexport type CoreChatModelRunResult = Omit<ChatModelRunResult, \"content\"> & {\n content: (TextContentPart | ToolCallContentPart)[];\n};\n\nexport type ChatModelRunOptions = {\n messages: ThreadMessage[];\n runConfig: RunConfig;\n abortSignal: AbortSignal;\n config: ModelConfig;\n\n unstable_assistantMessageId?: string;\n};\n\nexport type ChatModelAdapter = {\n run: (\n options: ChatModelRunOptions,\n ) => Promise<ChatModelRunResult> | AsyncGenerator<ChatModelRunResult, void>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1,2 +1 @@
1
- "use client";
2
1
  //# sourceMappingURL=ChatModelAdapter.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteThreadListHookInstanceManager.d.ts","sourceRoot":"","sources":["../../../src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAiD,MAAM,OAAO,CAAC;AAM1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAK/C,qBAAa,mCAAoC,SAAQ,gBAAgB;IACvE,OAAO,CAAC,cAAc,CAEpB;IACF,OAAO,CAAC,SAAS,CAAmD;IACpE,OAAO,CAAC,0BAA0B,CAAsB;gBAE5C,WAAW,EAAE,oBAAoB;IAKtC,kBAAkB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwBnC,oBAAoB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASrC,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAKlC,cAAc,CAAC,cAAc,EAAE,oBAAoB;IAO1D,OAAO,CAAC,0BAA0B,CAiChC;IAEF,OAAO,CAAC,0BAA0B,CAchC;IAEK,+BAA+B,EAAE,EAAE,CAUxC;CACH"}
1
+ {"version":3,"file":"RemoteThreadListHookInstanceManager.d.ts","sourceRoot":"","sources":["../../../src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAiD,MAAM,OAAO,CAAC;AAM1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAK/C,qBAAa,mCAAoC,SAAQ,gBAAgB;IACvE,OAAO,CAAC,cAAc,CAEpB;IACF,OAAO,CAAC,SAAS,CAAmD;IACpE,OAAO,CAAC,0BAA0B,CAAsB;gBAE5C,WAAW,EAAE,oBAAoB;IAKtC,kBAAkB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwBnC,oBAAoB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASrC,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAKlC,cAAc,CAAC,cAAc,EAAE,oBAAoB;IAO1D,OAAO,CAAC,0BAA0B,CAiChC;IAEF,OAAO,CAAC,0BAA0B,CAchC;IAEK,+BAA+B,EAAE,EAAE,CAUxC;CACH"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx"],"sourcesContent":["import { FC, useCallback, useRef, useEffect, memo, useMemo } from \"react\";\nimport { UseBoundStore, StoreApi, create } from \"zustand\";\nimport { useAssistantRuntime } from \"../../context\";\nimport { ThreadListItemRuntimeProvider } from \"../../context/providers/ThreadListItemRuntimeProvider\";\nimport { useThreadListItem } from \"../../context/react/ThreadListItemContext\";\nimport { ThreadRuntimeCore, ThreadRuntimeImpl } from \"../../internal\";\nimport { BaseSubscribable } from \"./BaseSubscribable\";\nimport { RemoteThreadListHook } from \"./types\";\n\ntype RemoteThreadListHookInstance = {\n runtime?: ThreadRuntimeCore;\n};\nexport class RemoteThreadListHookInstanceManager extends BaseSubscribable {\n private useRuntimeHook: UseBoundStore<\n StoreApi<{ useRuntime: RemoteThreadListHook }>\n >;\n private instances = new Map<string, RemoteThreadListHookInstance>();\n private useAliveThreadsKeysChanged = create(() => ({}));\n\n constructor(runtimeHook: RemoteThreadListHook) {\n super();\n this.useRuntimeHook = create(() => ({ useRuntime: runtimeHook }));\n }\n\n public startThreadRuntime(threadId: string) {\n if (!this.instances.has(threadId)) {\n this.instances.set(threadId, {});\n this.useAliveThreadsKeysChanged.setState({}, true);\n }\n\n return new Promise<ThreadRuntimeCore>((resolve, reject) => {\n const callback = () => {\n const instance = this.instances.get(threadId);\n if (!instance) {\n dispose();\n reject(new Error(\"Thread was deleted before runtime was started\"));\n } else if (!instance.runtime) {\n return; // misc update\n } else {\n dispose();\n resolve(instance.runtime);\n }\n };\n const dispose = this.subscribe(callback);\n callback();\n });\n }\n\n public getThreadRuntimeCore(threadId: string) {\n const instance = this.instances.get(threadId);\n if (!instance)\n throw new Error(\n \"getThreadRuntimeCore not found. This is a bug in assistant-ui.\",\n );\n return instance.runtime;\n }\n\n public stopThreadRuntime(threadId: string) {\n this.instances.delete(threadId);\n this.useAliveThreadsKeysChanged.setState({}, true);\n }\n\n public setRuntimeHook(newRuntimeHook: RemoteThreadListHook) {\n const prevRuntimeHook = this.useRuntimeHook.getState().useRuntime;\n if (prevRuntimeHook !== newRuntimeHook) {\n this.useRuntimeHook.setState({ useRuntime: newRuntimeHook }, true);\n }\n }\n\n private _InnerActiveThreadProvider: FC = () => {\n const { id } = useThreadListItem();\n\n const { useRuntime } = this.useRuntimeHook();\n const runtime = useRuntime();\n\n const threadBinding = (runtime.thread as ThreadRuntimeImpl)\n .__internal_threadBinding;\n\n const updateRuntime = useCallback(() => {\n const aliveThread = this.instances.get(id);\n if (!aliveThread)\n throw new Error(\"Thread not found. This is a bug in assistant-ui.\");\n\n aliveThread.runtime = threadBinding.getState();\n\n if (isMounted) {\n this._notifySubscribers();\n }\n }, [id, threadBinding]);\n\n const isMounted = useRef(false);\n if (!isMounted.current) {\n updateRuntime();\n }\n\n useEffect(() => {\n isMounted.current = true;\n updateRuntime();\n return threadBinding.outerSubscribe(updateRuntime);\n }, [threadBinding]);\n\n return null;\n };\n\n private _OuterActiveThreadProvider: FC<{ threadId: string }> = memo(\n ({ threadId }) => {\n const assistantRuntime = useAssistantRuntime();\n const threadListItemRuntime = useMemo(\n () => assistantRuntime.threadList.getItemById(threadId),\n [assistantRuntime, threadId],\n );\n\n return (\n <ThreadListItemRuntimeProvider runtime={threadListItemRuntime}>\n <this._InnerActiveThreadProvider />\n </ThreadListItemRuntimeProvider>\n );\n },\n );\n\n public __internal_RenderThreadRuntimes: FC = () => {\n this.useAliveThreadsKeysChanged(); // trigger re-render on alive threads change\n\n return [\n ...this.instances\n .keys()\n .map((threadId) => (\n <this._OuterActiveThreadProvider key={threadId} threadId={threadId} />\n )),\n ];\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx"],"sourcesContent":["\"use client\";\n\nimport { FC, useCallback, useRef, useEffect, memo, useMemo } from \"react\";\nimport { UseBoundStore, StoreApi, create } from \"zustand\";\nimport { useAssistantRuntime } from \"../../context\";\nimport { ThreadListItemRuntimeProvider } from \"../../context/providers/ThreadListItemRuntimeProvider\";\nimport { useThreadListItem } from \"../../context/react/ThreadListItemContext\";\nimport { ThreadRuntimeCore, ThreadRuntimeImpl } from \"../../internal\";\nimport { BaseSubscribable } from \"./BaseSubscribable\";\nimport { RemoteThreadListHook } from \"./types\";\n\ntype RemoteThreadListHookInstance = {\n runtime?: ThreadRuntimeCore;\n};\nexport class RemoteThreadListHookInstanceManager extends BaseSubscribable {\n private useRuntimeHook: UseBoundStore<\n StoreApi<{ useRuntime: RemoteThreadListHook }>\n >;\n private instances = new Map<string, RemoteThreadListHookInstance>();\n private useAliveThreadsKeysChanged = create(() => ({}));\n\n constructor(runtimeHook: RemoteThreadListHook) {\n super();\n this.useRuntimeHook = create(() => ({ useRuntime: runtimeHook }));\n }\n\n public startThreadRuntime(threadId: string) {\n if (!this.instances.has(threadId)) {\n this.instances.set(threadId, {});\n this.useAliveThreadsKeysChanged.setState({}, true);\n }\n\n return new Promise<ThreadRuntimeCore>((resolve, reject) => {\n const callback = () => {\n const instance = this.instances.get(threadId);\n if (!instance) {\n dispose();\n reject(new Error(\"Thread was deleted before runtime was started\"));\n } else if (!instance.runtime) {\n return; // misc update\n } else {\n dispose();\n resolve(instance.runtime);\n }\n };\n const dispose = this.subscribe(callback);\n callback();\n });\n }\n\n public getThreadRuntimeCore(threadId: string) {\n const instance = this.instances.get(threadId);\n if (!instance)\n throw new Error(\n \"getThreadRuntimeCore not found. This is a bug in assistant-ui.\",\n );\n return instance.runtime;\n }\n\n public stopThreadRuntime(threadId: string) {\n this.instances.delete(threadId);\n this.useAliveThreadsKeysChanged.setState({}, true);\n }\n\n public setRuntimeHook(newRuntimeHook: RemoteThreadListHook) {\n const prevRuntimeHook = this.useRuntimeHook.getState().useRuntime;\n if (prevRuntimeHook !== newRuntimeHook) {\n this.useRuntimeHook.setState({ useRuntime: newRuntimeHook }, true);\n }\n }\n\n private _InnerActiveThreadProvider: FC = () => {\n const { id } = useThreadListItem();\n\n const { useRuntime } = this.useRuntimeHook();\n const runtime = useRuntime();\n\n const threadBinding = (runtime.thread as ThreadRuntimeImpl)\n .__internal_threadBinding;\n\n const updateRuntime = useCallback(() => {\n const aliveThread = this.instances.get(id);\n if (!aliveThread)\n throw new Error(\"Thread not found. This is a bug in assistant-ui.\");\n\n aliveThread.runtime = threadBinding.getState();\n\n if (isMounted) {\n this._notifySubscribers();\n }\n }, [id, threadBinding]);\n\n const isMounted = useRef(false);\n if (!isMounted.current) {\n updateRuntime();\n }\n\n useEffect(() => {\n isMounted.current = true;\n updateRuntime();\n return threadBinding.outerSubscribe(updateRuntime);\n }, [threadBinding]);\n\n return null;\n };\n\n private _OuterActiveThreadProvider: FC<{ threadId: string }> = memo(\n ({ threadId }) => {\n const assistantRuntime = useAssistantRuntime();\n const threadListItemRuntime = useMemo(\n () => assistantRuntime.threadList.getItemById(threadId),\n [assistantRuntime, threadId],\n );\n\n return (\n <ThreadListItemRuntimeProvider runtime={threadListItemRuntime}>\n <this._InnerActiveThreadProvider />\n </ThreadListItemRuntimeProvider>\n );\n },\n );\n\n public __internal_RenderThreadRuntimes: FC = () => {\n this.useAliveThreadsKeysChanged(); // trigger re-render on alive threads change\n\n return [\n ...this.instances\n .keys()\n .map((threadId) => (\n <this._OuterActiveThreadProvider key={threadId} threadId={threadId} />\n )),\n ];\n };\n}\n"],"mappings":"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","names":[]}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  // src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx
2
4
  import { useCallback, useRef, useEffect, memo, useMemo } from "react";
3
5
  import { create } from "zustand";