@assistant-ui/react 0.7.34 → 0.7.36

Sign up to get free protection for your applications and to get access to all the features.
Files changed (474) 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/internal.d.ts +2 -0
  36. package/dist/internal.d.ts.map +1 -1
  37. package/dist/internal.js +7 -1
  38. package/dist/internal.js.map +1 -1
  39. package/dist/internal.mjs +5 -1
  40. package/dist/internal.mjs.map +1 -1
  41. package/dist/model-config/makeAssistantTool.d.ts.map +1 -1
  42. package/dist/model-config/makeAssistantTool.js.map +1 -1
  43. package/dist/model-config/makeAssistantTool.mjs.map +1 -1
  44. package/dist/model-config/makeAssistantToolUI.d.ts.map +1 -1
  45. package/dist/model-config/makeAssistantToolUI.js.map +1 -1
  46. package/dist/model-config/makeAssistantToolUI.mjs.map +1 -1
  47. package/dist/model-config/useInlineRender.d.ts.map +1 -1
  48. package/dist/model-config/useInlineRender.js +1 -0
  49. package/dist/model-config/useInlineRender.js.map +1 -1
  50. package/dist/model-config/useInlineRender.mjs +2 -0
  51. package/dist/model-config/useInlineRender.mjs.map +1 -1
  52. package/dist/primitive-hooks/actionBar/useActionBarCopy.d.ts +6 -4
  53. package/dist/primitive-hooks/actionBar/useActionBarCopy.d.ts.map +1 -1
  54. package/dist/primitive-hooks/actionBar/useActionBarCopy.js +1 -0
  55. package/dist/primitive-hooks/actionBar/useActionBarCopy.js.map +1 -1
  56. package/dist/primitive-hooks/actionBar/useActionBarCopy.mjs +2 -0
  57. package/dist/primitive-hooks/actionBar/useActionBarCopy.mjs.map +1 -1
  58. package/dist/primitive-hooks/actionBar/useActionBarEdit.d.ts.map +1 -1
  59. package/dist/primitive-hooks/actionBar/useActionBarEdit.js +1 -0
  60. package/dist/primitive-hooks/actionBar/useActionBarEdit.js.map +1 -1
  61. package/dist/primitive-hooks/actionBar/useActionBarEdit.mjs +2 -0
  62. package/dist/primitive-hooks/actionBar/useActionBarEdit.mjs.map +1 -1
  63. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.d.ts.map +1 -1
  64. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.js +1 -0
  65. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.js.map +1 -1
  66. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.mjs +2 -0
  67. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.mjs.map +1 -1
  68. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.d.ts.map +1 -1
  69. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.js +1 -0
  70. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.js.map +1 -1
  71. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.mjs +2 -0
  72. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.mjs.map +1 -1
  73. package/dist/primitive-hooks/actionBar/useActionBarReload.d.ts.map +1 -1
  74. package/dist/primitive-hooks/actionBar/useActionBarReload.js +1 -0
  75. package/dist/primitive-hooks/actionBar/useActionBarReload.js.map +1 -1
  76. package/dist/primitive-hooks/actionBar/useActionBarReload.mjs +2 -0
  77. package/dist/primitive-hooks/actionBar/useActionBarReload.mjs.map +1 -1
  78. package/dist/primitive-hooks/actionBar/useActionBarSpeak.d.ts.map +1 -1
  79. package/dist/primitive-hooks/actionBar/useActionBarSpeak.js +1 -0
  80. package/dist/primitive-hooks/actionBar/useActionBarSpeak.js.map +1 -1
  81. package/dist/primitive-hooks/actionBar/useActionBarSpeak.mjs +2 -0
  82. package/dist/primitive-hooks/actionBar/useActionBarSpeak.mjs.map +1 -1
  83. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.d.ts.map +1 -1
  84. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.js +1 -0
  85. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.js.map +1 -1
  86. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.mjs +2 -0
  87. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.mjs.map +1 -1
  88. package/dist/primitive-hooks/attachment/useAttachmentRemove.d.ts.map +1 -1
  89. package/dist/primitive-hooks/attachment/useAttachmentRemove.js +1 -0
  90. package/dist/primitive-hooks/attachment/useAttachmentRemove.js.map +1 -1
  91. package/dist/primitive-hooks/attachment/useAttachmentRemove.mjs +2 -0
  92. package/dist/primitive-hooks/attachment/useAttachmentRemove.mjs.map +1 -1
  93. package/dist/primitive-hooks/branchPicker/useBranchPickerCount.d.ts.map +1 -1
  94. package/dist/primitive-hooks/branchPicker/useBranchPickerCount.js.map +1 -1
  95. package/dist/primitive-hooks/branchPicker/useBranchPickerCount.mjs.map +1 -1
  96. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.d.ts.map +1 -1
  97. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.js +1 -0
  98. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.js.map +1 -1
  99. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.mjs +2 -0
  100. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.mjs.map +1 -1
  101. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.d.ts.map +1 -1
  102. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.js +1 -0
  103. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.js.map +1 -1
  104. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.mjs +2 -0
  105. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.mjs.map +1 -1
  106. package/dist/primitive-hooks/composer/useComposerAddAttachment.d.ts +7 -1
  107. package/dist/primitive-hooks/composer/useComposerAddAttachment.d.ts.map +1 -1
  108. package/dist/primitive-hooks/composer/useComposerAddAttachment.js +10 -4
  109. package/dist/primitive-hooks/composer/useComposerAddAttachment.js.map +1 -1
  110. package/dist/primitive-hooks/composer/useComposerAddAttachment.mjs +11 -4
  111. package/dist/primitive-hooks/composer/useComposerAddAttachment.mjs.map +1 -1
  112. package/dist/primitive-hooks/composer/useComposerCancel.d.ts.map +1 -1
  113. package/dist/primitive-hooks/composer/useComposerCancel.js +1 -0
  114. package/dist/primitive-hooks/composer/useComposerCancel.js.map +1 -1
  115. package/dist/primitive-hooks/composer/useComposerCancel.mjs +2 -0
  116. package/dist/primitive-hooks/composer/useComposerCancel.mjs.map +1 -1
  117. package/dist/primitive-hooks/composer/useComposerSend.d.ts.map +1 -1
  118. package/dist/primitive-hooks/composer/useComposerSend.js +1 -0
  119. package/dist/primitive-hooks/composer/useComposerSend.js.map +1 -1
  120. package/dist/primitive-hooks/composer/useComposerSend.mjs +2 -0
  121. package/dist/primitive-hooks/composer/useComposerSend.mjs.map +1 -1
  122. package/dist/primitive-hooks/contentPart/useContentPartDisplay.d.ts +3 -0
  123. package/dist/primitive-hooks/contentPart/useContentPartDisplay.d.ts.map +1 -1
  124. package/dist/primitive-hooks/contentPart/useContentPartDisplay.js +1 -0
  125. package/dist/primitive-hooks/contentPart/useContentPartDisplay.js.map +1 -1
  126. package/dist/primitive-hooks/contentPart/useContentPartDisplay.mjs +2 -0
  127. package/dist/primitive-hooks/contentPart/useContentPartDisplay.mjs.map +1 -1
  128. package/dist/primitive-hooks/contentPart/useContentPartImage.d.ts.map +1 -1
  129. package/dist/primitive-hooks/contentPart/useContentPartImage.js +1 -0
  130. package/dist/primitive-hooks/contentPart/useContentPartImage.js.map +1 -1
  131. package/dist/primitive-hooks/contentPart/useContentPartImage.mjs +2 -0
  132. package/dist/primitive-hooks/contentPart/useContentPartImage.mjs.map +1 -1
  133. package/dist/primitive-hooks/contentPart/useContentPartText.d.ts.map +1 -1
  134. package/dist/primitive-hooks/contentPart/useContentPartText.js +1 -0
  135. package/dist/primitive-hooks/contentPart/useContentPartText.js.map +1 -1
  136. package/dist/primitive-hooks/contentPart/useContentPartText.mjs +2 -0
  137. package/dist/primitive-hooks/contentPart/useContentPartText.mjs.map +1 -1
  138. package/dist/primitive-hooks/message/useMessageIf.d.ts.map +1 -1
  139. package/dist/primitive-hooks/message/useMessageIf.js.map +1 -1
  140. package/dist/primitive-hooks/message/useMessageIf.mjs.map +1 -1
  141. package/dist/primitive-hooks/thread/useThreadEmpty.d.ts.map +1 -1
  142. package/dist/primitive-hooks/thread/useThreadEmpty.js +1 -0
  143. package/dist/primitive-hooks/thread/useThreadEmpty.js.map +1 -1
  144. package/dist/primitive-hooks/thread/useThreadEmpty.mjs +2 -0
  145. package/dist/primitive-hooks/thread/useThreadEmpty.mjs.map +1 -1
  146. package/dist/primitive-hooks/thread/useThreadScrollToBottom.d.ts.map +1 -1
  147. package/dist/primitive-hooks/thread/useThreadScrollToBottom.js +1 -0
  148. package/dist/primitive-hooks/thread/useThreadScrollToBottom.js.map +1 -1
  149. package/dist/primitive-hooks/thread/useThreadScrollToBottom.mjs +2 -0
  150. package/dist/primitive-hooks/thread/useThreadScrollToBottom.mjs.map +1 -1
  151. package/dist/primitive-hooks/thread/useThreadSuggestion.d.ts +8 -6
  152. package/dist/primitive-hooks/thread/useThreadSuggestion.d.ts.map +1 -1
  153. package/dist/primitive-hooks/thread/useThreadSuggestion.js +1 -0
  154. package/dist/primitive-hooks/thread/useThreadSuggestion.js.map +1 -1
  155. package/dist/primitive-hooks/thread/useThreadSuggestion.mjs +2 -0
  156. package/dist/primitive-hooks/thread/useThreadSuggestion.mjs.map +1 -1
  157. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.d.ts +8 -5
  158. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
  159. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.js.map +1 -1
  160. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.mjs.map +1 -1
  161. package/dist/primitives/actionBar/ActionBarCopy.d.ts +1 -1
  162. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  163. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -1
  164. package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
  165. package/dist/primitives/actionBar/useActionBarFloatStatus.mjs.map +1 -1
  166. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts.map +1 -1
  167. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
  168. package/dist/primitives/assistantModal/AssistantModalAnchor.mjs.map +1 -1
  169. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts.map +1 -1
  170. package/dist/primitives/assistantModal/AssistantModalTrigger.js +0 -1
  171. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  172. package/dist/primitives/assistantModal/AssistantModalTrigger.mjs +0 -2
  173. package/dist/primitives/assistantModal/AssistantModalTrigger.mjs.map +1 -1
  174. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -1
  175. package/dist/primitives/branchPicker/BranchPickerRoot.js +0 -1
  176. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  177. package/dist/primitives/branchPicker/BranchPickerRoot.mjs +0 -2
  178. package/dist/primitives/branchPicker/BranchPickerRoot.mjs.map +1 -1
  179. package/dist/primitives/composer/ComposerAddAttachment.d.ts +1 -1
  180. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  181. package/dist/primitives/composer/ComposerAddAttachment.js +2 -1
  182. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  183. package/dist/primitives/composer/ComposerAddAttachment.mjs +2 -1
  184. package/dist/primitives/composer/ComposerAddAttachment.mjs.map +1 -1
  185. package/dist/primitives/contentPart/ContentPartDisplay.d.ts.map +1 -1
  186. package/dist/primitives/contentPart/ContentPartDisplay.js +1 -0
  187. package/dist/primitives/contentPart/ContentPartDisplay.js.map +1 -1
  188. package/dist/primitives/contentPart/ContentPartDisplay.mjs +2 -0
  189. package/dist/primitives/contentPart/ContentPartDisplay.mjs.map +1 -1
  190. package/dist/primitives/contentPart/ContentPartImage.d.ts.map +1 -1
  191. package/dist/primitives/contentPart/ContentPartImage.js +1 -0
  192. package/dist/primitives/contentPart/ContentPartImage.js.map +1 -1
  193. package/dist/primitives/contentPart/ContentPartImage.mjs +2 -0
  194. package/dist/primitives/contentPart/ContentPartImage.mjs.map +1 -1
  195. package/dist/primitives/contentPart/ContentPartInProgress.d.ts.map +1 -1
  196. package/dist/primitives/contentPart/ContentPartInProgress.js +1 -0
  197. package/dist/primitives/contentPart/ContentPartInProgress.js.map +1 -1
  198. package/dist/primitives/contentPart/ContentPartInProgress.mjs +2 -0
  199. package/dist/primitives/contentPart/ContentPartInProgress.mjs.map +1 -1
  200. package/dist/primitives/message/MessageContent.d.ts +2 -1
  201. package/dist/primitives/message/MessageContent.d.ts.map +1 -1
  202. package/dist/primitives/message/MessageContent.js +6 -2
  203. package/dist/primitives/message/MessageContent.js.map +1 -1
  204. package/dist/primitives/message/MessageContent.mjs +6 -2
  205. package/dist/primitives/message/MessageContent.mjs.map +1 -1
  206. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
  207. package/dist/primitives/thread/ThreadRoot.js +0 -1
  208. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  209. package/dist/primitives/thread/ThreadRoot.mjs +0 -2
  210. package/dist/primitives/thread/ThreadRoot.mjs.map +1 -1
  211. package/dist/primitives/thread/ThreadSuggestion.d.ts +1 -1
  212. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  213. package/dist/primitives/thread/ThreadViewport.d.ts +3 -3
  214. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -1
  215. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  216. package/dist/primitives/thread/ThreadViewport.mjs +1 -3
  217. package/dist/primitives/thread/ThreadViewport.mjs.map +1 -1
  218. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts +2 -2
  219. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  220. package/dist/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
  221. package/dist/primitives/threadListItem/ThreadListItemTitle.mjs.map +1 -1
  222. package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts.map +1 -1
  223. package/dist/runtimes/composer/BaseComposerRuntimeCore.js +1 -0
  224. package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +1 -1
  225. package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs +1 -0
  226. package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs.map +1 -1
  227. package/dist/runtimes/core/ComposerRuntimeCore.d.ts +1 -1
  228. package/dist/runtimes/core/ComposerRuntimeCore.d.ts.map +1 -1
  229. package/dist/runtimes/core/ComposerRuntimeCore.js.map +1 -1
  230. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.d.ts.map +1 -1
  231. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js +1 -0
  232. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js.map +1 -1
  233. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.mjs +2 -0
  234. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.mjs.map +1 -1
  235. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts +28 -0
  236. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts.map +1 -1
  237. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js +6 -0
  238. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js.map +1 -1
  239. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs +6 -0
  240. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs.map +1 -1
  241. package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts.map +1 -1
  242. package/dist/runtimes/edge/converters/fromLanguageModelMessages.js +8 -1
  243. package/dist/runtimes/edge/converters/fromLanguageModelMessages.js.map +1 -1
  244. package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs +8 -1
  245. package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs.map +1 -1
  246. package/dist/runtimes/edge/converters/toLanguageModelMessages.d.ts.map +1 -1
  247. package/dist/runtimes/edge/converters/toLanguageModelMessages.js +7 -0
  248. package/dist/runtimes/edge/converters/toLanguageModelMessages.js.map +1 -1
  249. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs +7 -0
  250. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs.map +1 -1
  251. package/dist/runtimes/edge/useEdgeRuntime.d.ts.map +1 -1
  252. package/dist/runtimes/edge/useEdgeRuntime.js +1 -0
  253. package/dist/runtimes/edge/useEdgeRuntime.js.map +1 -1
  254. package/dist/runtimes/edge/useEdgeRuntime.mjs +2 -0
  255. package/dist/runtimes/edge/useEdgeRuntime.mjs.map +1 -1
  256. package/dist/runtimes/external-store/ThreadMessageLike.d.ts +3 -3
  257. package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
  258. package/dist/runtimes/external-store/ThreadMessageLike.js +7 -2
  259. package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
  260. package/dist/runtimes/external-store/ThreadMessageLike.mjs +7 -2
  261. package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
  262. package/dist/runtimes/external-store/external-message-converter.d.ts.map +1 -1
  263. package/dist/runtimes/external-store/external-message-converter.js +1 -0
  264. package/dist/runtimes/external-store/external-message-converter.js.map +1 -1
  265. package/dist/runtimes/external-store/external-message-converter.mjs +2 -0
  266. package/dist/runtimes/external-store/external-message-converter.mjs.map +1 -1
  267. package/dist/runtimes/external-store/useExternalStoreRuntime.d.ts.map +1 -1
  268. package/dist/runtimes/external-store/useExternalStoreRuntime.js +1 -0
  269. package/dist/runtimes/external-store/useExternalStoreRuntime.js.map +1 -1
  270. package/dist/runtimes/external-store/useExternalStoreRuntime.mjs +2 -0
  271. package/dist/runtimes/external-store/useExternalStoreRuntime.mjs.map +1 -1
  272. package/dist/runtimes/local/ChatModelAdapter.d.ts.map +1 -1
  273. package/dist/runtimes/local/ChatModelAdapter.js +0 -1
  274. package/dist/runtimes/local/ChatModelAdapter.js.map +1 -1
  275. package/dist/runtimes/local/ChatModelAdapter.mjs +0 -1
  276. package/dist/runtimes/local/LocalRuntimeCore.d.ts +2 -1
  277. package/dist/runtimes/local/LocalRuntimeCore.d.ts.map +1 -1
  278. package/dist/runtimes/local/LocalRuntimeCore.js +7 -2
  279. package/dist/runtimes/local/LocalRuntimeCore.js.map +1 -1
  280. package/dist/runtimes/local/LocalRuntimeCore.mjs +7 -2
  281. package/dist/runtimes/local/LocalRuntimeCore.mjs.map +1 -1
  282. package/dist/runtimes/local/LocalRuntimeOptions.d.ts +3 -3
  283. package/dist/runtimes/local/LocalRuntimeOptions.d.ts.map +1 -1
  284. package/dist/runtimes/local/LocalRuntimeOptions.js.map +1 -1
  285. package/dist/runtimes/local/LocalRuntimeOptions.mjs.map +1 -1
  286. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  287. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js +1 -0
  288. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js.map +1 -1
  289. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.mjs +2 -0
  290. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.mjs.map +1 -1
  291. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  292. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +1 -0
  293. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  294. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs +2 -0
  295. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs.map +1 -1
  296. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.d.ts +4 -0
  297. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.d.ts.map +1 -1
  298. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.js +5 -0
  299. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.js.map +1 -1
  300. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.mjs +5 -0
  301. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.mjs.map +1 -1
  302. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.d.ts +11 -0
  303. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.d.ts.map +1 -0
  304. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.js +38 -0
  305. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.js.map +1 -0
  306. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.mjs +13 -0
  307. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.mjs.map +1 -0
  308. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.d.ts.map +1 -1
  309. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js +1 -0
  310. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js.map +1 -1
  311. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.mjs +2 -0
  312. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.mjs.map +1 -1
  313. package/dist/styles/index.css +1 -0
  314. package/dist/styles/index.css.map +1 -1
  315. package/dist/styles/tailwindcss/thread.css +1 -1
  316. package/dist/styles/tailwindcss/thread.css.json +1 -1
  317. package/dist/types/AssistantTypes.d.ts +44 -2
  318. package/dist/types/AssistantTypes.d.ts.map +1 -1
  319. package/dist/types/AssistantTypes.js.map +1 -1
  320. package/dist/types/ContentPartComponentTypes.d.ts +3 -1
  321. package/dist/types/ContentPartComponentTypes.d.ts.map +1 -1
  322. package/dist/types/ContentPartComponentTypes.js +0 -1
  323. package/dist/types/ContentPartComponentTypes.js.map +1 -1
  324. package/dist/types/ContentPartComponentTypes.mjs +0 -1
  325. package/dist/types/index.d.ts +2 -2
  326. package/dist/types/index.d.ts.map +1 -1
  327. package/dist/types/index.js.map +1 -1
  328. package/dist/ui/base/avatar.d.ts.map +1 -1
  329. package/dist/ui/base/avatar.js +0 -1
  330. package/dist/ui/base/avatar.js.map +1 -1
  331. package/dist/ui/base/avatar.mjs +0 -2
  332. package/dist/ui/base/avatar.mjs.map +1 -1
  333. package/dist/ui/base/button.d.ts +2 -1
  334. package/dist/ui/base/button.d.ts.map +1 -1
  335. package/dist/ui/base/button.js.map +1 -1
  336. package/dist/ui/base/button.mjs.map +1 -1
  337. package/dist/ui/base/dialog.d.ts +6 -7
  338. package/dist/ui/base/dialog.d.ts.map +1 -1
  339. package/dist/ui/base/dialog.js +3 -4
  340. package/dist/ui/base/dialog.js.map +1 -1
  341. package/dist/ui/base/dialog.mjs +3 -5
  342. package/dist/ui/base/dialog.mjs.map +1 -1
  343. package/dist/ui/base/tooltip-icon-button.d.ts.map +1 -1
  344. package/dist/ui/base/tooltip-icon-button.js +0 -1
  345. package/dist/ui/base/tooltip-icon-button.js.map +1 -1
  346. package/dist/ui/base/tooltip-icon-button.mjs +0 -2
  347. package/dist/ui/base/tooltip-icon-button.mjs.map +1 -1
  348. package/dist/ui/base/tooltip.d.ts.map +1 -1
  349. package/dist/ui/base/tooltip.js +0 -1
  350. package/dist/ui/base/tooltip.js.map +1 -1
  351. package/dist/ui/base/tooltip.mjs +0 -2
  352. package/dist/ui/base/tooltip.mjs.map +1 -1
  353. package/dist/ui/content-part.d.ts.map +1 -1
  354. package/dist/ui/content-part.js +1 -0
  355. package/dist/ui/content-part.js.map +1 -1
  356. package/dist/ui/content-part.mjs +2 -0
  357. package/dist/ui/content-part.mjs.map +1 -1
  358. package/dist/ui/thread.d.ts +1 -1
  359. package/dist/ui/user-message.d.ts.map +1 -1
  360. package/dist/ui/user-message.js +0 -1
  361. package/dist/ui/user-message.js.map +1 -1
  362. package/dist/ui/user-message.mjs +0 -2
  363. package/dist/ui/user-message.mjs.map +1 -1
  364. package/dist/utils/RequireAtLeastOne.d.ts.map +1 -1
  365. package/dist/utils/RequireAtLeastOne.js +0 -1
  366. package/dist/utils/RequireAtLeastOne.js.map +1 -1
  367. package/dist/utils/RequireAtLeastOne.mjs +0 -1
  368. package/dist/utils/combined/useCombinedStore.d.ts.map +1 -1
  369. package/dist/utils/combined/useCombinedStore.js +1 -0
  370. package/dist/utils/combined/useCombinedStore.js.map +1 -1
  371. package/dist/utils/combined/useCombinedStore.mjs +2 -0
  372. package/dist/utils/combined/useCombinedStore.mjs.map +1 -1
  373. package/dist/utils/createActionButton.d.ts.map +1 -1
  374. package/dist/utils/createActionButton.js +0 -1
  375. package/dist/utils/createActionButton.js.map +1 -1
  376. package/dist/utils/createActionButton.mjs +0 -2
  377. package/dist/utils/createActionButton.mjs.map +1 -1
  378. package/dist/utils/hooks/useOnScrollToBottom.d.ts.map +1 -1
  379. package/dist/utils/hooks/useOnScrollToBottom.js +1 -0
  380. package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -1
  381. package/dist/utils/hooks/useOnScrollToBottom.mjs +2 -0
  382. package/dist/utils/hooks/useOnScrollToBottom.mjs.map +1 -1
  383. package/dist/utils/smooth/SmoothContext.d.ts.map +1 -1
  384. package/dist/utils/smooth/SmoothContext.js +1 -0
  385. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  386. package/dist/utils/smooth/SmoothContext.mjs +2 -0
  387. package/dist/utils/smooth/SmoothContext.mjs.map +1 -1
  388. package/dist/utils/smooth/index.d.ts +1 -2
  389. package/dist/utils/smooth/index.d.ts.map +1 -1
  390. package/dist/utils/smooth/index.js +2 -2
  391. package/dist/utils/smooth/index.js.map +1 -1
  392. package/dist/utils/smooth/index.mjs +3 -2
  393. package/dist/utils/smooth/index.mjs.map +1 -1
  394. package/package.json +3 -3
  395. package/src/context/providers/AssistantRuntimeProvider.tsx +8 -2
  396. package/src/context/providers/TextContentPartProvider.tsx +1 -2
  397. package/src/context/providers/ThreadRuntimeProvider.tsx +2 -0
  398. package/src/context/react/ComposerContext.ts +2 -0
  399. package/src/context/react/index.ts +4 -0
  400. package/src/context/react/utils/createContextHook.ts +2 -0
  401. package/src/context/stores/AssistantToolUIs.ts +0 -2
  402. package/src/internal.ts +2 -0
  403. package/src/model-config/makeAssistantTool.tsx +1 -0
  404. package/src/model-config/makeAssistantToolUI.tsx +1 -0
  405. package/src/model-config/useInlineRender.tsx +2 -0
  406. package/src/primitive-hooks/actionBar/useActionBarCopy.tsx +8 -4
  407. package/src/primitive-hooks/actionBar/useActionBarEdit.tsx +2 -0
  408. package/src/primitive-hooks/actionBar/useActionBarFeedbackNegative.tsx +2 -0
  409. package/src/primitive-hooks/actionBar/useActionBarFeedbackPositive.tsx +2 -0
  410. package/src/primitive-hooks/actionBar/useActionBarReload.tsx +2 -0
  411. package/src/primitive-hooks/actionBar/useActionBarSpeak.tsx +2 -0
  412. package/src/primitive-hooks/actionBar/useActionBarStopSpeaking.tsx +2 -0
  413. package/src/primitive-hooks/attachment/useAttachmentRemove.ts +2 -0
  414. package/src/primitive-hooks/branchPicker/useBranchPickerCount.tsx +1 -0
  415. package/src/primitive-hooks/branchPicker/useBranchPickerNext.tsx +2 -0
  416. package/src/primitive-hooks/branchPicker/useBranchPickerPrevious.tsx +2 -0
  417. package/src/primitive-hooks/composer/useComposerAddAttachment.tsx +18 -4
  418. package/src/primitive-hooks/composer/useComposerCancel.tsx +2 -0
  419. package/src/primitive-hooks/composer/useComposerSend.tsx +2 -0
  420. package/src/primitive-hooks/contentPart/useContentPartDisplay.tsx +5 -0
  421. package/src/primitive-hooks/contentPart/useContentPartImage.tsx +2 -0
  422. package/src/primitive-hooks/contentPart/useContentPartText.tsx +2 -0
  423. package/src/primitive-hooks/message/useMessageIf.tsx +1 -0
  424. package/src/primitive-hooks/thread/useThreadEmpty.tsx +2 -0
  425. package/src/primitive-hooks/thread/useThreadScrollToBottom.tsx +2 -0
  426. package/src/primitive-hooks/thread/useThreadSuggestion.tsx +10 -6
  427. package/src/primitive-hooks/thread/useThreadViewportAutoScroll.tsx +9 -6
  428. package/src/primitives/actionBar/useActionBarFloatStatus.tsx +1 -0
  429. package/src/primitives/assistantModal/AssistantModalAnchor.tsx +1 -0
  430. package/src/primitives/assistantModal/AssistantModalTrigger.tsx +0 -2
  431. package/src/primitives/branchPicker/BranchPickerRoot.tsx +0 -2
  432. package/src/primitives/composer/ComposerAddAttachment.tsx +1 -0
  433. package/src/primitives/contentPart/ContentPartDisplay.tsx +2 -0
  434. package/src/primitives/contentPart/ContentPartImage.tsx +2 -0
  435. package/src/primitives/contentPart/ContentPartInProgress.tsx +2 -0
  436. package/src/primitives/message/MessageContent.tsx +9 -1
  437. package/src/primitives/thread/ThreadRoot.tsx +0 -2
  438. package/src/primitives/thread/ThreadViewport.tsx +2 -5
  439. package/src/primitives/threadListItem/ThreadListItemTitle.tsx +2 -2
  440. package/src/runtimes/composer/BaseComposerRuntimeCore.tsx +1 -0
  441. package/src/runtimes/core/ComposerRuntimeCore.tsx +1 -1
  442. package/src/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.ts +2 -0
  443. package/src/runtimes/edge/EdgeRuntimeRequestOptions.ts +7 -0
  444. package/src/runtimes/edge/converters/fromLanguageModelMessages.ts +9 -2
  445. package/src/runtimes/edge/converters/toLanguageModelMessages.ts +15 -1
  446. package/src/runtimes/edge/useEdgeRuntime.ts +2 -0
  447. package/src/runtimes/external-store/ThreadMessageLike.tsx +11 -4
  448. package/src/runtimes/external-store/external-message-converter.tsx +2 -0
  449. package/src/runtimes/external-store/useExternalStoreRuntime.tsx +2 -0
  450. package/src/runtimes/local/ChatModelAdapter.tsx +0 -2
  451. package/src/runtimes/local/LocalRuntimeCore.tsx +10 -4
  452. package/src/runtimes/local/LocalRuntimeOptions.tsx +2 -2
  453. package/src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx +2 -0
  454. package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +2 -0
  455. package/src/runtimes/remote-thread-list/cloud/AssistantCloud.tsx +5 -0
  456. package/src/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.tsx +13 -0
  457. package/src/runtimes/remote-thread-list/useRemoteThreadListRuntime.tsx +2 -0
  458. package/src/styles/tailwindcss/thread.css +1 -1
  459. package/src/types/AssistantTypes.ts +45 -0
  460. package/src/types/ContentPartComponentTypes.tsx +4 -1
  461. package/src/types/index.ts +6 -5
  462. package/src/ui/base/avatar.tsx +0 -2
  463. package/src/ui/base/button.tsx +2 -4
  464. package/src/ui/base/dialog.tsx +15 -17
  465. package/src/ui/base/tooltip-icon-button.tsx +0 -2
  466. package/src/ui/base/tooltip.tsx +0 -2
  467. package/src/ui/content-part.tsx +2 -0
  468. package/src/ui/user-message.tsx +0 -2
  469. package/src/utils/RequireAtLeastOne.tsx +0 -1
  470. package/src/utils/combined/useCombinedStore.ts +2 -0
  471. package/src/utils/createActionButton.tsx +0 -2
  472. package/src/utils/hooks/useOnScrollToBottom.tsx +2 -0
  473. package/src/utils/smooth/SmoothContext.tsx +2 -0
  474. package/src/utils/smooth/index.ts +5 -2
@@ -28,7 +28,8 @@ var import_createActionButton = require("../../utils/createActionButton.js");
28
28
  var import_useComposerAddAttachment = require("../../primitive-hooks/composer/useComposerAddAttachment.js");
29
29
  var ComposerPrimitiveAddAttachment = (0, import_createActionButton.createActionButton)(
30
30
  "ComposerPrimitive.AddAttachment",
31
- import_useComposerAddAttachment.useComposerAddAttachment
31
+ import_useComposerAddAttachment.useComposerAddAttachment,
32
+ ["multiple"]
32
33
  );
33
34
  // Annotate the CommonJS export names for ESM import in node:
34
35
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/composer/ComposerAddAttachment.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n ActionButtonElement,\n ActionButtonProps,\n createActionButton,\n} from \"../../utils/createActionButton\";\nimport { useComposerAddAttachment } from \"../../primitive-hooks/composer/useComposerAddAttachment\";\n\nexport namespace ComposerPrimitiveAddAttachment {\n export type Element = ActionButtonElement;\n export type Props = ActionButtonProps<typeof useComposerAddAttachment>;\n}\n\nexport const ComposerPrimitiveAddAttachment = createActionButton(\n \"ComposerPrimitive.AddAttachment\",\n useComposerAddAttachment,\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,gCAIO;AACP,sCAAyC;AAOlC,IAAM,qCAAiC;AAAA,EAC5C;AAAA,EACA;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/composer/ComposerAddAttachment.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n ActionButtonElement,\n ActionButtonProps,\n createActionButton,\n} from \"../../utils/createActionButton\";\nimport { useComposerAddAttachment } from \"../../primitive-hooks/composer/useComposerAddAttachment\";\n\nexport namespace ComposerPrimitiveAddAttachment {\n export type Element = ActionButtonElement;\n export type Props = ActionButtonProps<typeof useComposerAddAttachment>;\n}\n\nexport const ComposerPrimitiveAddAttachment = createActionButton(\n \"ComposerPrimitive.AddAttachment\",\n useComposerAddAttachment,\n [\"multiple\"],\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,gCAIO;AACP,sCAAyC;AAOlC,IAAM,qCAAiC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA,CAAC,UAAU;AACb;","names":[]}
@@ -7,7 +7,8 @@ import {
7
7
  import { useComposerAddAttachment } from "../../primitive-hooks/composer/useComposerAddAttachment.mjs";
8
8
  var ComposerPrimitiveAddAttachment = createActionButton(
9
9
  "ComposerPrimitive.AddAttachment",
10
- useComposerAddAttachment
10
+ useComposerAddAttachment,
11
+ ["multiple"]
11
12
  );
12
13
  export {
13
14
  ComposerPrimitiveAddAttachment
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/composer/ComposerAddAttachment.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n ActionButtonElement,\n ActionButtonProps,\n createActionButton,\n} from \"../../utils/createActionButton\";\nimport { useComposerAddAttachment } from \"../../primitive-hooks/composer/useComposerAddAttachment\";\n\nexport namespace ComposerPrimitiveAddAttachment {\n export type Element = ActionButtonElement;\n export type Props = ActionButtonProps<typeof useComposerAddAttachment>;\n}\n\nexport const ComposerPrimitiveAddAttachment = createActionButton(\n \"ComposerPrimitive.AddAttachment\",\n useComposerAddAttachment,\n);\n"],"mappings":";;;AAEA;AAAA,EAGE;AAAA,OACK;AACP,SAAS,gCAAgC;AAOlC,IAAM,iCAAiC;AAAA,EAC5C;AAAA,EACA;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/composer/ComposerAddAttachment.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n ActionButtonElement,\n ActionButtonProps,\n createActionButton,\n} from \"../../utils/createActionButton\";\nimport { useComposerAddAttachment } from \"../../primitive-hooks/composer/useComposerAddAttachment\";\n\nexport namespace ComposerPrimitiveAddAttachment {\n export type Element = ActionButtonElement;\n export type Props = ActionButtonProps<typeof useComposerAddAttachment>;\n}\n\nexport const ComposerPrimitiveAddAttachment = createActionButton(\n \"ComposerPrimitive.AddAttachment\",\n useComposerAddAttachment,\n [\"multiple\"],\n);\n"],"mappings":";;;AAEA;AAAA,EAGE;AAAA,OACK;AACP,SAAS,gCAAgC;AAOlC,IAAM,iCAAiC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA,CAAC,UAAU;AACb;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPartDisplay.d.ts","sourceRoot":"","sources":["../../../src/primitives/contentPart/ContentPartDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,yBAAiB,2BAA2B,CAAC;IAC3C,KAAY,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC3C;AAED,eAAO,MAAM,2BAA2B,EAAE,EAAE,CAC1C,2BAA2B,CAAC,KAAK,CAIlC,CAAC"}
1
+ {"version":3,"file":"ContentPartDisplay.d.ts","sourceRoot":"","sources":["../../../src/primitives/contentPart/ContentPartDisplay.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,yBAAiB,2BAA2B,CAAC;IAC3C,KAAY,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC3C;AAED,eAAO,MAAM,2BAA2B,EAAE,EAAE,CAC1C,2BAA2B,CAAC,KAAK,CAIlC,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/ContentPartDisplay.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useContentPartDisplay } from \"../../primitive-hooks/contentPart/useContentPartDisplay\";\n\nexport namespace ContentPartPrimitiveDisplay {\n export type Props = Record<string, never>;\n}\n\nexport const ContentPartPrimitiveDisplay: FC<\n ContentPartPrimitiveDisplay.Props\n> = () => {\n const { display } = useContentPartDisplay();\n return display ?? null;\n};\n\nContentPartPrimitiveDisplay.displayName = \"ContentPartPrimitive.Display\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mCAAsC;AAM/B,IAAM,8BAET,MAAM;AACR,QAAM,EAAE,QAAQ,QAAI,oDAAsB;AAC1C,SAAO,WAAW;AACpB;AAEA,4BAA4B,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/contentPart/ContentPartDisplay.tsx"],"sourcesContent":["\"use client\";\n\nimport type { FC } from \"react\";\nimport { useContentPartDisplay } from \"../../primitive-hooks/contentPart/useContentPartDisplay\";\n\nexport namespace ContentPartPrimitiveDisplay {\n export type Props = Record<string, never>;\n}\n\nexport const ContentPartPrimitiveDisplay: FC<\n ContentPartPrimitiveDisplay.Props\n> = () => {\n const { display } = useContentPartDisplay();\n return display ?? null;\n};\n\nContentPartPrimitiveDisplay.displayName = \"ContentPartPrimitive.Display\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mCAAsC;AAM/B,IAAM,8BAET,MAAM;AACR,QAAM,EAAE,QAAQ,QAAI,oDAAsB;AAC1C,SAAO,WAAW;AACpB;AAEA,4BAA4B,cAAc;","names":[]}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  // src/primitives/contentPart/ContentPartDisplay.tsx
2
4
  import { useContentPartDisplay } from "../../primitive-hooks/contentPart/useContentPartDisplay.mjs";
3
5
  var ContentPartPrimitiveDisplay = () => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/contentPart/ContentPartDisplay.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useContentPartDisplay } from \"../../primitive-hooks/contentPart/useContentPartDisplay\";\n\nexport namespace ContentPartPrimitiveDisplay {\n export type Props = Record<string, never>;\n}\n\nexport const ContentPartPrimitiveDisplay: FC<\n ContentPartPrimitiveDisplay.Props\n> = () => {\n const { display } = useContentPartDisplay();\n return display ?? null;\n};\n\nContentPartPrimitiveDisplay.displayName = \"ContentPartPrimitive.Display\";\n"],"mappings":";AACA,SAAS,6BAA6B;AAM/B,IAAM,8BAET,MAAM;AACR,QAAM,EAAE,QAAQ,IAAI,sBAAsB;AAC1C,SAAO,WAAW;AACpB;AAEA,4BAA4B,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/contentPart/ContentPartDisplay.tsx"],"sourcesContent":["\"use client\";\n\nimport type { FC } from \"react\";\nimport { useContentPartDisplay } from \"../../primitive-hooks/contentPart/useContentPartDisplay\";\n\nexport namespace ContentPartPrimitiveDisplay {\n export type Props = Record<string, never>;\n}\n\nexport const ContentPartPrimitiveDisplay: FC<\n ContentPartPrimitiveDisplay.Props\n> = () => {\n const { display } = useContentPartDisplay();\n return display ?? null;\n};\n\nContentPartPrimitiveDisplay.displayName = \"ContentPartPrimitive.Display\";\n"],"mappings":";;;AAGA,SAAS,6BAA6B;AAM/B,IAAM,8BAET,MAAM;AACR,QAAM,EAAE,QAAQ,IAAI,sBAAsB;AAC1C,SAAO,WAAW;AACpB;AAEA,4BAA4B,cAAc;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPartImage.d.ts","sourceRoot":"","sources":["../../../src/primitives/contentPart/ContentPartImage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,KAAK,UAAU,EAAc,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAG9E,yBAAiB,yBAAyB,CAAC;IACzC,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,yBAAyB;;4DAMpC,CAAC"}
1
+ {"version":3,"file":"ContentPartImage.d.ts","sourceRoot":"","sources":["../../../src/primitives/contentPart/ContentPartImage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,KAAK,UAAU,EAAc,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAG9E,yBAAiB,yBAAyB,CAAC;IACzC,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,yBAAyB;;4DAMpC,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/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,11 +1,12 @@
1
1
  import { type ComponentType, type FC } from "react";
2
- import type { Unstable_AudioContentPartComponent, EmptyContentPartComponent, ImageContentPartComponent, TextContentPartComponent, ToolCallContentPartComponent, ToolCallContentPartProps, UIContentPartComponent } from "../../types/ContentPartComponentTypes";
2
+ import type { Unstable_AudioContentPartComponent, EmptyContentPartComponent, ImageContentPartComponent, TextContentPartComponent, ToolCallContentPartComponent, ToolCallContentPartProps, UIContentPartComponent, FileContentPartComponent } from "../../types/ContentPartComponentTypes";
3
3
  export declare namespace MessagePrimitiveContent {
4
4
  type Props = {
5
5
  components?: {
6
6
  Empty?: EmptyContentPartComponent | undefined;
7
7
  Text?: TextContentPartComponent | undefined;
8
8
  Image?: ImageContentPartComponent | undefined;
9
+ File?: FileContentPartComponent | undefined;
9
10
  Unstable_Audio?: Unstable_AudioContentPartComponent | undefined;
10
11
  UI?: UIContentPartComponent | undefined;
11
12
  tools?: {
@@ -1 +1 @@
1
- {"version":3,"file":"MessageContent.d.ts","sourceRoot":"","sources":["../../../src/primitives/message/MessageContent.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,EAAE,EAAiB,MAAM,OAAO,CAAC;AAcnE,OAAO,KAAK,EACV,kCAAkC,EAClC,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,uCAAuC,CAAC;AAI/C,yBAAiB,uBAAuB,CAAC;IACvC,KAAY,KAAK,GAAG;QAClB,UAAU,CAAC,EACP;YACE,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;YAC9C,IAAI,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;YAC5C,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;YAC9C,cAAc,CAAC,EAAE,kCAAkC,GAAG,SAAS,CAAC;YAChE,EAAE,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;YACxC,KAAK,CAAC,EACF;gBACE,OAAO,CAAC,EACJ,MAAM,CAAC,MAAM,EAAE,4BAA4B,GAAG,SAAS,CAAC,GACxD,SAAS,CAAC;gBACd,QAAQ,CAAC,EAAE,aAAa,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC;aAChE,GACD;gBACE,QAAQ,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;aACnD,GACD,SAAS,CAAC;SACf,GACD,SAAS,CAAC;KACf,CAAC;CACH;AAkHD,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAQrE,CAAC"}
1
+ {"version":3,"file":"MessageContent.d.ts","sourceRoot":"","sources":["../../../src/primitives/message/MessageContent.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,EAAE,EAAiB,MAAM,OAAO,CAAC;AAcnE,OAAO,KAAK,EACV,kCAAkC,EAClC,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,uCAAuC,CAAC;AAI/C,yBAAiB,uBAAuB,CAAC;IACvC,KAAY,KAAK,GAAG;QAClB,UAAU,CAAC,EACP;YACE,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;YAC9C,IAAI,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;YAC5C,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;YAC9C,IAAI,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;YAC5C,cAAc,CAAC,EAAE,kCAAkC,GAAG,SAAS,CAAC;YAChE,EAAE,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;YACxC,KAAK,CAAC,EACF;gBACE,OAAO,CAAC,EACJ,MAAM,CAAC,MAAM,EAAE,4BAA4B,GAAG,SAAS,CAAC,GACxD,SAAS,CAAC;gBACd,QAAQ,CAAC,EAAE,aAAa,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC;aAChE,GACD;gBACE,QAAQ,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;aACnD,GACD,SAAS,CAAC;SACf,GACD,SAAS,CAAC;KACf,CAAC;CACH;AAwHD,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAQrE,CAAC"}
@@ -48,6 +48,7 @@ var defaultComponents = {
48
48
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ContentPartInProgress.ContentPartPrimitiveInProgress, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontFamily: "revert" }, children: " \u25CF" }) })
49
49
  ] }),
50
50
  Image: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ContentPartImage.ContentPartPrimitiveImage, {}),
51
+ File: () => null,
51
52
  Unstable_Audio: () => null,
52
53
  UI: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ContentPartDisplay.ContentPartPrimitiveDisplay, {})
53
54
  };
@@ -56,8 +57,9 @@ var MessageContentPartComponent = ({
56
57
  Text = defaultComponents.Text,
57
58
  Empty,
58
59
  Image = defaultComponents.Image,
59
- UI = defaultComponents.UI,
60
+ File = defaultComponents.File,
60
61
  Unstable_Audio: Audio = defaultComponents.Unstable_Audio,
62
+ UI = defaultComponents.UI,
61
63
  tools = {}
62
64
  } = {}
63
65
  }) => {
@@ -81,6 +83,8 @@ var MessageContentPartComponent = ({
81
83
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { ...part });
82
84
  case "image":
83
85
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Image, { ...part });
86
+ case "file":
87
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(File, { ...part });
84
88
  case "audio":
85
89
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Audio, { ...part });
86
90
  case "ui":
@@ -103,7 +107,7 @@ var MessageContentPartImpl = ({
103
107
  };
104
108
  var MessageContentPart = (0, import_react.memo)(
105
109
  MessageContentPartImpl,
106
- (prev, next) => prev.partIndex === next.partIndex && prev.components?.Text === next.components?.Text && prev.components?.Image === next.components?.Image && prev.components?.Unstable_Audio === next.components?.Unstable_Audio && prev.components?.UI === next.components?.UI && prev.components?.tools === next.components?.tools
110
+ (prev, next) => prev.partIndex === next.partIndex && prev.components?.Text === next.components?.Text && prev.components?.Image === next.components?.Image && prev.components?.File === next.components?.File && prev.components?.Unstable_Audio === next.components?.Unstable_Audio && prev.components?.UI === next.components?.UI && prev.components?.tools === next.components?.tools
107
111
  );
108
112
  var MessagePrimitiveContent = ({
109
113
  components
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/message/MessageContent.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ComponentType, type FC, memo, useMemo } from \"react\";\nimport {\n useContentPart,\n useContentPartRuntime,\n useToolUIs,\n} from \"../../context\";\nimport {\n useMessage,\n useMessageRuntime,\n} from \"../../context/react/MessageContext\";\nimport { ContentPartRuntimeProvider } from \"../../context/providers/ContentPartRuntimeProvider\";\nimport { ContentPartPrimitiveText } from \"../contentPart/ContentPartText\";\nimport { ContentPartPrimitiveImage } from \"../contentPart/ContentPartImage\";\nimport { ContentPartPrimitiveDisplay } from \"../contentPart/ContentPartDisplay\";\nimport type {\n Unstable_AudioContentPartComponent,\n EmptyContentPartComponent,\n ImageContentPartComponent,\n TextContentPartComponent,\n ToolCallContentPartComponent,\n ToolCallContentPartProps,\n UIContentPartComponent,\n} from \"../../types/ContentPartComponentTypes\";\nimport { ContentPartPrimitiveInProgress } from \"../contentPart/ContentPartInProgress\";\nimport { EMPTY_CONTENT_SYMBOL } from \"../../api/MessageRuntime\";\n\nexport namespace MessagePrimitiveContent {\n export type Props = {\n components?:\n | {\n Empty?: EmptyContentPartComponent | undefined;\n Text?: TextContentPartComponent | undefined;\n Image?: ImageContentPartComponent | undefined;\n Unstable_Audio?: Unstable_AudioContentPartComponent | undefined;\n UI?: UIContentPartComponent | undefined;\n tools?:\n | {\n by_name?:\n | Record<string, ToolCallContentPartComponent | undefined>\n | undefined;\n Fallback?: ComponentType<ToolCallContentPartProps> | undefined;\n }\n | {\n Override: ComponentType<ToolCallContentPartProps>;\n }\n | undefined;\n }\n | undefined;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallContentPartComponent | undefined;\n} & ToolCallContentPartProps) => {\n const Render = useToolUIs((s) => s.getToolUI(props.toolName)) ?? Fallback;\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst defaultComponents = {\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <ContentPartPrimitiveText />\n <ContentPartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </ContentPartPrimitiveInProgress>\n </p>\n ),\n Image: () => <ContentPartPrimitiveImage />,\n Unstable_Audio: () => null,\n UI: () => <ContentPartPrimitiveDisplay />,\n} satisfies MessagePrimitiveContent.Props[\"components\"];\n\ntype MessageContentPartComponentProps = {\n components: MessagePrimitiveContent.Props[\"components\"];\n};\n\nconst MessageContentPartComponent: FC<MessageContentPartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Empty,\n Image = defaultComponents.Image,\n UI = defaultComponents.UI,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n } = {},\n}) => {\n const contentPartRuntime = useContentPartRuntime();\n\n const part = useContentPart();\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = (result: any) => contentPartRuntime.addToolResult(result);\n if (\"Override\" in tools)\n return <tools.Override {...part} addResult={addResult} />;\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return <ToolUIDisplay {...part} Fallback={Tool} addResult={addResult} />;\n }\n\n if (part.status.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n if ((part as any)[EMPTY_CONTENT_SYMBOL] && !!Empty) {\n return <Empty status={part.status} />;\n }\n\n return <Text {...part} />;\n\n case \"image\":\n // eslint-disable-next-line jsx-a11y/alt-text\n return <Image {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n case \"ui\":\n return <UI {...part} />;\n\n default:\n const unhandledType: never = type;\n throw new Error(`Unknown content part type: ${unhandledType}`);\n }\n};\n\ntype MessageContentPartProps = {\n partIndex: number;\n components: MessagePrimitiveContent.Props[\"components\"];\n};\n\nconst MessageContentPartImpl: FC<MessageContentPartProps> = ({\n partIndex,\n components,\n}) => {\n const messageRuntime = useMessageRuntime();\n const runtime = useMemo(\n () => messageRuntime.getContentPartByIndex(partIndex),\n [messageRuntime, partIndex],\n );\n\n return (\n <ContentPartRuntimeProvider runtime={runtime}>\n <MessageContentPartComponent components={components} />\n </ContentPartRuntimeProvider>\n );\n};\n\nconst MessageContentPart = memo(\n MessageContentPartImpl,\n (prev, next) =>\n prev.partIndex === next.partIndex &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.UI === next.components?.UI &&\n prev.components?.tools === next.components?.tools,\n);\n\nexport const MessagePrimitiveContent: FC<MessagePrimitiveContent.Props> = ({\n components,\n}) => {\n const contentLength = useMessage((s) => s.content.length) || 1;\n\n return Array.from({ length: contentLength }, (_, index) => (\n <MessageContentPart key={index} partIndex={index} components={components} />\n ));\n};\n\nMessagePrimitiveContent.displayName = \"MessagePrimitive.Content\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/message/MessageContent.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ComponentType, type FC, memo, useMemo } from \"react\";\nimport {\n useContentPart,\n useContentPartRuntime,\n useToolUIs,\n} from \"../../context\";\nimport {\n useMessage,\n useMessageRuntime,\n} from \"../../context/react/MessageContext\";\nimport { ContentPartRuntimeProvider } from \"../../context/providers/ContentPartRuntimeProvider\";\nimport { ContentPartPrimitiveText } from \"../contentPart/ContentPartText\";\nimport { ContentPartPrimitiveImage } from \"../contentPart/ContentPartImage\";\nimport { ContentPartPrimitiveDisplay } from \"../contentPart/ContentPartDisplay\";\nimport type {\n Unstable_AudioContentPartComponent,\n EmptyContentPartComponent,\n ImageContentPartComponent,\n TextContentPartComponent,\n ToolCallContentPartComponent,\n ToolCallContentPartProps,\n UIContentPartComponent,\n FileContentPartComponent,\n} from \"../../types/ContentPartComponentTypes\";\nimport { ContentPartPrimitiveInProgress } from \"../contentPart/ContentPartInProgress\";\nimport { EMPTY_CONTENT_SYMBOL } from \"../../api/MessageRuntime\";\n\nexport namespace MessagePrimitiveContent {\n export type Props = {\n components?:\n | {\n Empty?: EmptyContentPartComponent | undefined;\n Text?: TextContentPartComponent | undefined;\n Image?: ImageContentPartComponent | undefined;\n File?: FileContentPartComponent | undefined;\n Unstable_Audio?: Unstable_AudioContentPartComponent | undefined;\n UI?: UIContentPartComponent | undefined;\n tools?:\n | {\n by_name?:\n | Record<string, ToolCallContentPartComponent | undefined>\n | undefined;\n Fallback?: ComponentType<ToolCallContentPartProps> | undefined;\n }\n | {\n Override: ComponentType<ToolCallContentPartProps>;\n }\n | undefined;\n }\n | undefined;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallContentPartComponent | undefined;\n} & ToolCallContentPartProps) => {\n const Render = useToolUIs((s) => s.getToolUI(props.toolName)) ?? Fallback;\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst defaultComponents = {\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <ContentPartPrimitiveText />\n <ContentPartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </ContentPartPrimitiveInProgress>\n </p>\n ),\n Image: () => <ContentPartPrimitiveImage />,\n File: () => null,\n Unstable_Audio: () => null,\n UI: () => <ContentPartPrimitiveDisplay />,\n} satisfies MessagePrimitiveContent.Props[\"components\"];\n\ntype MessageContentPartComponentProps = {\n components: MessagePrimitiveContent.Props[\"components\"];\n};\n\nconst MessageContentPartComponent: FC<MessageContentPartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Empty,\n Image = defaultComponents.Image,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n UI = defaultComponents.UI,\n tools = {},\n } = {},\n}) => {\n const contentPartRuntime = useContentPartRuntime();\n\n const part = useContentPart();\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = (result: any) => contentPartRuntime.addToolResult(result);\n if (\"Override\" in tools)\n return <tools.Override {...part} addResult={addResult} />;\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return <ToolUIDisplay {...part} Fallback={Tool} addResult={addResult} />;\n }\n\n if (part.status.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n if ((part as any)[EMPTY_CONTENT_SYMBOL] && !!Empty) {\n return <Empty status={part.status} />;\n }\n\n return <Text {...part} />;\n\n case \"image\":\n // eslint-disable-next-line jsx-a11y/alt-text\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n case \"ui\":\n return <UI {...part} />;\n\n default:\n const unhandledType: never = type;\n throw new Error(`Unknown content part type: ${unhandledType}`);\n }\n};\n\ntype MessageContentPartProps = {\n partIndex: number;\n components: MessagePrimitiveContent.Props[\"components\"];\n};\n\nconst MessageContentPartImpl: FC<MessageContentPartProps> = ({\n partIndex,\n components,\n}) => {\n const messageRuntime = useMessageRuntime();\n const runtime = useMemo(\n () => messageRuntime.getContentPartByIndex(partIndex),\n [messageRuntime, partIndex],\n );\n\n return (\n <ContentPartRuntimeProvider runtime={runtime}>\n <MessageContentPartComponent components={components} />\n </ContentPartRuntimeProvider>\n );\n};\n\nconst MessageContentPart = memo(\n MessageContentPartImpl,\n (prev, next) =>\n prev.partIndex === next.partIndex &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.UI === next.components?.UI &&\n prev.components?.tools === next.components?.tools,\n);\n\nexport const MessagePrimitiveContent: FC<MessagePrimitiveContent.Props> = ({\n components,\n}) => {\n const contentLength = useMessage((s) => s.content.length) || 1;\n\n return Array.from({ length: contentLength }, (_, index) => (\n <MessageContentPart key={index} partIndex={index} components={components} />\n ));\n};\n\nMessagePrimitiveContent.displayName = \"MessagePrimitive.Content\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA2D;AAC3D,qBAIO;AACP,4BAGO;AACP,wCAA2C;AAC3C,6BAAyC;AACzC,8BAA0C;AAC1C,gCAA4C;AAW5C,mCAA+C;AAC/C,4BAAqC;AAoC5B;AART,IAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA,GAAG;AACL,MAEiC;AAC/B,QAAM,aAAS,2BAAW,CAAC,MAAM,EAAE,UAAU,MAAM,QAAQ,CAAC,KAAK;AACjE,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,4CAAC,UAAQ,GAAG,OAAO;AAC5B;AAEA,IAAM,oBAAoB;AAAA,EACxB,MAAM,MACJ,6CAAC,OAAE,OAAO,EAAE,YAAY,WAAW,GACjC;AAAA,gDAAC,mDAAyB;AAAA,IAC1B,4CAAC,+DACC,sDAAC,UAAK,OAAO,EAAE,YAAY,SAAS,GAAI,qBAAU,GACpD;AAAA,KACF;AAAA,EAEF,OAAO,MAAM,4CAAC,qDAA0B;AAAA,EACxC,MAAM,MAAM;AAAA,EACZ,gBAAgB,MAAM;AAAA,EACtB,IAAI,MAAM,4CAAC,yDAA4B;AACzC;AAMA,IAAM,8BAAoE,CAAC;AAAA,EACzE,YAAY;AAAA,IACV,OAAO,kBAAkB;AAAA,IACzB;AAAA,IACA,QAAQ,kBAAkB;AAAA,IAC1B,OAAO,kBAAkB;AAAA,IACzB,gBAAgB,QAAQ,kBAAkB;AAAA,IAC1C,KAAK,kBAAkB;AAAA,IACvB,QAAQ,CAAC;AAAA,EACX,IAAI,CAAC;AACP,MAAM;AACJ,QAAM,yBAAqB,sCAAsB;AAEjD,QAAM,WAAO,+BAAe;AAE5B,QAAM,OAAO,KAAK;AAClB,MAAI,SAAS,aAAa;AACxB,UAAM,YAAY,CAAC,WAAgB,mBAAmB,cAAc,MAAM;AAC1E,QAAI,cAAc;AAChB,aAAO,4CAAC,MAAM,UAAN,EAAgB,GAAG,MAAM,WAAsB;AACzD,UAAM,OAAO,MAAM,UAAU,KAAK,QAAQ,KAAK,MAAM;AACrD,WAAO,4CAAC,iBAAe,GAAG,MAAM,UAAU,MAAM,WAAsB;AAAA,EACxE;AAEA,MAAI,KAAK,OAAO,SAAS;AACvB,UAAM,IAAI,MAAM,+CAA+C;AAEjE,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,UAAK,KAAa,0CAAoB,KAAK,CAAC,CAAC,OAAO;AAClD,eAAO,4CAAC,SAAM,QAAQ,KAAK,QAAQ;AAAA,MACrC;AAEA,aAAO,4CAAC,QAAM,GAAG,MAAM;AAAA,IAEzB,KAAK;AAEH,aAAO,4CAAC,SAAO,GAAG,MAAM;AAAA,IAE1B,KAAK;AACH,aAAO,4CAAC,QAAM,GAAG,MAAM;AAAA,IAEzB,KAAK;AACH,aAAO,4CAAC,SAAO,GAAG,MAAM;AAAA,IAE1B,KAAK;AACH,aAAO,4CAAC,MAAI,GAAG,MAAM;AAAA,IAEvB;AACE,YAAM,gBAAuB;AAC7B,YAAM,IAAI,MAAM,8BAA8B,aAAa,EAAE;AAAA,EACjE;AACF;AAOA,IAAM,yBAAsD,CAAC;AAAA,EAC3D;AAAA,EACA;AACF,MAAM;AACJ,QAAM,qBAAiB,yCAAkB;AACzC,QAAM,cAAU;AAAA,IACd,MAAM,eAAe,sBAAsB,SAAS;AAAA,IACpD,CAAC,gBAAgB,SAAS;AAAA,EAC5B;AAEA,SACE,4CAAC,gEAA2B,SAC1B,sDAAC,+BAA4B,YAAwB,GACvD;AAEJ;AAEA,IAAM,yBAAqB;AAAA,EACzB;AAAA,EACA,CAAC,MAAM,SACL,KAAK,cAAc,KAAK,aACxB,KAAK,YAAY,SAAS,KAAK,YAAY,QAC3C,KAAK,YAAY,UAAU,KAAK,YAAY,SAC5C,KAAK,YAAY,SAAS,KAAK,YAAY,QAC3C,KAAK,YAAY,mBAAmB,KAAK,YAAY,kBACrD,KAAK,YAAY,OAAO,KAAK,YAAY,MACzC,KAAK,YAAY,UAAU,KAAK,YAAY;AAChD;AAEO,IAAM,0BAA6D,CAAC;AAAA,EACzE;AACF,MAAM;AACJ,QAAM,oBAAgB,kCAAW,CAAC,MAAM,EAAE,QAAQ,MAAM,KAAK;AAE7D,SAAO,MAAM,KAAK,EAAE,QAAQ,cAAc,GAAG,CAAC,GAAG,UAC/C,4CAAC,sBAA+B,WAAW,OAAO,cAAzB,KAAiD,CAC3E;AACH;AAEA,wBAAwB,cAAc;","names":[]}
@@ -32,6 +32,7 @@ var defaultComponents = {
32
32
  /* @__PURE__ */ jsx(ContentPartPrimitiveInProgress, { children: /* @__PURE__ */ jsx("span", { style: { fontFamily: "revert" }, children: " \u25CF" }) })
33
33
  ] }),
34
34
  Image: () => /* @__PURE__ */ jsx(ContentPartPrimitiveImage, {}),
35
+ File: () => null,
35
36
  Unstable_Audio: () => null,
36
37
  UI: () => /* @__PURE__ */ jsx(ContentPartPrimitiveDisplay, {})
37
38
  };
@@ -40,8 +41,9 @@ var MessageContentPartComponent = ({
40
41
  Text = defaultComponents.Text,
41
42
  Empty,
42
43
  Image = defaultComponents.Image,
43
- UI = defaultComponents.UI,
44
+ File = defaultComponents.File,
44
45
  Unstable_Audio: Audio = defaultComponents.Unstable_Audio,
46
+ UI = defaultComponents.UI,
45
47
  tools = {}
46
48
  } = {}
47
49
  }) => {
@@ -65,6 +67,8 @@ var MessageContentPartComponent = ({
65
67
  return /* @__PURE__ */ jsx(Text, { ...part });
66
68
  case "image":
67
69
  return /* @__PURE__ */ jsx(Image, { ...part });
70
+ case "file":
71
+ return /* @__PURE__ */ jsx(File, { ...part });
68
72
  case "audio":
69
73
  return /* @__PURE__ */ jsx(Audio, { ...part });
70
74
  case "ui":
@@ -87,7 +91,7 @@ var MessageContentPartImpl = ({
87
91
  };
88
92
  var MessageContentPart = memo(
89
93
  MessageContentPartImpl,
90
- (prev, next) => prev.partIndex === next.partIndex && prev.components?.Text === next.components?.Text && prev.components?.Image === next.components?.Image && prev.components?.Unstable_Audio === next.components?.Unstable_Audio && prev.components?.UI === next.components?.UI && prev.components?.tools === next.components?.tools
94
+ (prev, next) => prev.partIndex === next.partIndex && prev.components?.Text === next.components?.Text && prev.components?.Image === next.components?.Image && prev.components?.File === next.components?.File && prev.components?.Unstable_Audio === next.components?.Unstable_Audio && prev.components?.UI === next.components?.UI && prev.components?.tools === next.components?.tools
91
95
  );
92
96
  var MessagePrimitiveContent = ({
93
97
  components
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/primitives/message/MessageContent.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ComponentType, type FC, memo, useMemo } from \"react\";\nimport {\n useContentPart,\n useContentPartRuntime,\n useToolUIs,\n} from \"../../context\";\nimport {\n useMessage,\n useMessageRuntime,\n} from \"../../context/react/MessageContext\";\nimport { ContentPartRuntimeProvider } from \"../../context/providers/ContentPartRuntimeProvider\";\nimport { ContentPartPrimitiveText } from \"../contentPart/ContentPartText\";\nimport { ContentPartPrimitiveImage } from \"../contentPart/ContentPartImage\";\nimport { ContentPartPrimitiveDisplay } from \"../contentPart/ContentPartDisplay\";\nimport type {\n Unstable_AudioContentPartComponent,\n EmptyContentPartComponent,\n ImageContentPartComponent,\n TextContentPartComponent,\n ToolCallContentPartComponent,\n ToolCallContentPartProps,\n UIContentPartComponent,\n} from \"../../types/ContentPartComponentTypes\";\nimport { ContentPartPrimitiveInProgress } from \"../contentPart/ContentPartInProgress\";\nimport { EMPTY_CONTENT_SYMBOL } from \"../../api/MessageRuntime\";\n\nexport namespace MessagePrimitiveContent {\n export type Props = {\n components?:\n | {\n Empty?: EmptyContentPartComponent | undefined;\n Text?: TextContentPartComponent | undefined;\n Image?: ImageContentPartComponent | undefined;\n Unstable_Audio?: Unstable_AudioContentPartComponent | undefined;\n UI?: UIContentPartComponent | undefined;\n tools?:\n | {\n by_name?:\n | Record<string, ToolCallContentPartComponent | undefined>\n | undefined;\n Fallback?: ComponentType<ToolCallContentPartProps> | undefined;\n }\n | {\n Override: ComponentType<ToolCallContentPartProps>;\n }\n | undefined;\n }\n | undefined;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallContentPartComponent | undefined;\n} & ToolCallContentPartProps) => {\n const Render = useToolUIs((s) => s.getToolUI(props.toolName)) ?? Fallback;\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst defaultComponents = {\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <ContentPartPrimitiveText />\n <ContentPartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </ContentPartPrimitiveInProgress>\n </p>\n ),\n Image: () => <ContentPartPrimitiveImage />,\n Unstable_Audio: () => null,\n UI: () => <ContentPartPrimitiveDisplay />,\n} satisfies MessagePrimitiveContent.Props[\"components\"];\n\ntype MessageContentPartComponentProps = {\n components: MessagePrimitiveContent.Props[\"components\"];\n};\n\nconst MessageContentPartComponent: FC<MessageContentPartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Empty,\n Image = defaultComponents.Image,\n UI = defaultComponents.UI,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n } = {},\n}) => {\n const contentPartRuntime = useContentPartRuntime();\n\n const part = useContentPart();\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = (result: any) => contentPartRuntime.addToolResult(result);\n if (\"Override\" in tools)\n return <tools.Override {...part} addResult={addResult} />;\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return <ToolUIDisplay {...part} Fallback={Tool} addResult={addResult} />;\n }\n\n if (part.status.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n if ((part as any)[EMPTY_CONTENT_SYMBOL] && !!Empty) {\n return <Empty status={part.status} />;\n }\n\n return <Text {...part} />;\n\n case \"image\":\n // eslint-disable-next-line jsx-a11y/alt-text\n return <Image {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n case \"ui\":\n return <UI {...part} />;\n\n default:\n const unhandledType: never = type;\n throw new Error(`Unknown content part type: ${unhandledType}`);\n }\n};\n\ntype MessageContentPartProps = {\n partIndex: number;\n components: MessagePrimitiveContent.Props[\"components\"];\n};\n\nconst MessageContentPartImpl: FC<MessageContentPartProps> = ({\n partIndex,\n components,\n}) => {\n const messageRuntime = useMessageRuntime();\n const runtime = useMemo(\n () => messageRuntime.getContentPartByIndex(partIndex),\n [messageRuntime, partIndex],\n );\n\n return (\n <ContentPartRuntimeProvider runtime={runtime}>\n <MessageContentPartComponent components={components} />\n </ContentPartRuntimeProvider>\n );\n};\n\nconst MessageContentPart = memo(\n MessageContentPartImpl,\n (prev, next) =>\n prev.partIndex === next.partIndex &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.UI === next.components?.UI &&\n prev.components?.tools === next.components?.tools,\n);\n\nexport const MessagePrimitiveContent: FC<MessagePrimitiveContent.Props> = ({\n components,\n}) => {\n const contentLength = useMessage((s) => s.content.length) || 1;\n\n return Array.from({ length: contentLength }, (_, index) => (\n <MessageContentPart key={index} partIndex={index} components={components} />\n ));\n};\n\nMessagePrimitiveContent.displayName = \"MessagePrimitive.Content\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/primitives/message/MessageContent.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ComponentType, type FC, memo, useMemo } from \"react\";\nimport {\n useContentPart,\n useContentPartRuntime,\n useToolUIs,\n} from \"../../context\";\nimport {\n useMessage,\n useMessageRuntime,\n} from \"../../context/react/MessageContext\";\nimport { ContentPartRuntimeProvider } from \"../../context/providers/ContentPartRuntimeProvider\";\nimport { ContentPartPrimitiveText } from \"../contentPart/ContentPartText\";\nimport { ContentPartPrimitiveImage } from \"../contentPart/ContentPartImage\";\nimport { ContentPartPrimitiveDisplay } from \"../contentPart/ContentPartDisplay\";\nimport type {\n Unstable_AudioContentPartComponent,\n EmptyContentPartComponent,\n ImageContentPartComponent,\n TextContentPartComponent,\n ToolCallContentPartComponent,\n ToolCallContentPartProps,\n UIContentPartComponent,\n FileContentPartComponent,\n} from \"../../types/ContentPartComponentTypes\";\nimport { ContentPartPrimitiveInProgress } from \"../contentPart/ContentPartInProgress\";\nimport { EMPTY_CONTENT_SYMBOL } from \"../../api/MessageRuntime\";\n\nexport namespace MessagePrimitiveContent {\n export type Props = {\n components?:\n | {\n Empty?: EmptyContentPartComponent | undefined;\n Text?: TextContentPartComponent | undefined;\n Image?: ImageContentPartComponent | undefined;\n File?: FileContentPartComponent | undefined;\n Unstable_Audio?: Unstable_AudioContentPartComponent | undefined;\n UI?: UIContentPartComponent | undefined;\n tools?:\n | {\n by_name?:\n | Record<string, ToolCallContentPartComponent | undefined>\n | undefined;\n Fallback?: ComponentType<ToolCallContentPartProps> | undefined;\n }\n | {\n Override: ComponentType<ToolCallContentPartProps>;\n }\n | undefined;\n }\n | undefined;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallContentPartComponent | undefined;\n} & ToolCallContentPartProps) => {\n const Render = useToolUIs((s) => s.getToolUI(props.toolName)) ?? Fallback;\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst defaultComponents = {\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <ContentPartPrimitiveText />\n <ContentPartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </ContentPartPrimitiveInProgress>\n </p>\n ),\n Image: () => <ContentPartPrimitiveImage />,\n File: () => null,\n Unstable_Audio: () => null,\n UI: () => <ContentPartPrimitiveDisplay />,\n} satisfies MessagePrimitiveContent.Props[\"components\"];\n\ntype MessageContentPartComponentProps = {\n components: MessagePrimitiveContent.Props[\"components\"];\n};\n\nconst MessageContentPartComponent: FC<MessageContentPartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Empty,\n Image = defaultComponents.Image,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n UI = defaultComponents.UI,\n tools = {},\n } = {},\n}) => {\n const contentPartRuntime = useContentPartRuntime();\n\n const part = useContentPart();\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = (result: any) => contentPartRuntime.addToolResult(result);\n if (\"Override\" in tools)\n return <tools.Override {...part} addResult={addResult} />;\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return <ToolUIDisplay {...part} Fallback={Tool} addResult={addResult} />;\n }\n\n if (part.status.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n if ((part as any)[EMPTY_CONTENT_SYMBOL] && !!Empty) {\n return <Empty status={part.status} />;\n }\n\n return <Text {...part} />;\n\n case \"image\":\n // eslint-disable-next-line jsx-a11y/alt-text\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n case \"ui\":\n return <UI {...part} />;\n\n default:\n const unhandledType: never = type;\n throw new Error(`Unknown content part type: ${unhandledType}`);\n }\n};\n\ntype MessageContentPartProps = {\n partIndex: number;\n components: MessagePrimitiveContent.Props[\"components\"];\n};\n\nconst MessageContentPartImpl: FC<MessageContentPartProps> = ({\n partIndex,\n components,\n}) => {\n const messageRuntime = useMessageRuntime();\n const runtime = useMemo(\n () => messageRuntime.getContentPartByIndex(partIndex),\n [messageRuntime, partIndex],\n );\n\n return (\n <ContentPartRuntimeProvider runtime={runtime}>\n <MessageContentPartComponent components={components} />\n </ContentPartRuntimeProvider>\n );\n};\n\nconst MessageContentPart = memo(\n MessageContentPartImpl,\n (prev, next) =>\n prev.partIndex === next.partIndex &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.UI === next.components?.UI &&\n prev.components?.tools === next.components?.tools,\n);\n\nexport const MessagePrimitiveContent: FC<MessagePrimitiveContent.Props> = ({\n components,\n}) => {\n const contentLength = useMessage((s) => s.content.length) || 1;\n\n return Array.from({ length: contentLength }, (_, index) => (\n <MessageContentPart key={index} partIndex={index} components={components} />\n ));\n};\n\nMessagePrimitiveContent.displayName = \"MessagePrimitive.Content\";\n"],"mappings":"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","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":"BaseComposerRuntimeCore.d.ts","sourceRoot":"","sources":["../../../src/runtimes/composer/BaseComposerRuntimeCore.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAGX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAK1E,8BAAsB,uBACpB,SAAQ,gBACR,YAAW,mBAAmB;IAE9B,SAAgB,SAAS,QAAQ;IAEjC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;IAEjE,mBAAmB,IAAI,MAAM;IAIpC,OAAO,CAAC,YAAY,CAA6B;IACjD,IAAW,WAAW,0BAErB;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE;IAKrD,aAAoB,SAAS,IAAI,OAAO,CAAC;IAEzC,IAAW,OAAO,YAEjB;IAED,OAAO,CAAC,KAAK,CAAM;IAEnB,IAAI,IAAI,WAEP;IAED,OAAO,CAAC,KAAK,CAAuB;IAEpC,IAAI,IAAI,gBAEP;IAED,OAAO,CAAC,UAAU,CAAiB;IAEnC,IAAI,SAAS,cAEZ;IAEM,OAAO,CAAC,KAAK,EAAE,MAAM;IAOrB,OAAO,CAAC,IAAI,EAAE,WAAW;IAOzB,YAAY,CAAC,SAAS,EAAE,SAAS;IAOxC,OAAO,CAAC,wBAAwB;YAMlB,mBAAmB;IAOpB,KAAK;IAkBL,gBAAgB;IAOhB,IAAI;IAyBV,MAAM;IAIb,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,IAAI;IAC7E,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI;IAEjC,aAAa,CAAC,IAAI,EAAE,IAAI;IAUxB,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAc3C,OAAO,CAAC,iBAAiB,CAGrB;IAEJ,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,wBAAwB;IAO1D,WAAW,CAAC,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,IAAI;CAczE"}
1
+ {"version":3,"file":"BaseComposerRuntimeCore.d.ts","sourceRoot":"","sources":["../../../src/runtimes/composer/BaseComposerRuntimeCore.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAGX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAK1E,8BAAsB,uBACpB,SAAQ,gBACR,YAAW,mBAAmB;IAE9B,SAAgB,SAAS,QAAQ;IAEjC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;IAEjE,mBAAmB,IAAI,MAAM;IAIpC,OAAO,CAAC,YAAY,CAA6B;IACjD,IAAW,WAAW,0BAErB;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE;IAKrD,aAAoB,SAAS,IAAI,OAAO,CAAC;IAEzC,IAAW,OAAO,YAEjB;IAED,OAAO,CAAC,KAAK,CAAM;IAEnB,IAAI,IAAI,WAEP;IAED,OAAO,CAAC,KAAK,CAAuB;IAEpC,IAAI,IAAI,gBAEP;IAED,OAAO,CAAC,UAAU,CAAiB;IAEnC,IAAI,SAAS,cAEZ;IAEM,OAAO,CAAC,KAAK,EAAE,MAAM;IAOrB,OAAO,CAAC,IAAI,EAAE,WAAW;IAOzB,YAAY,CAAC,SAAS,EAAE,SAAS;IAOxC,OAAO,CAAC,wBAAwB;YAMlB,mBAAmB;IAOpB,KAAK;IAkBL,gBAAgB;IAOhB,IAAI;IAyBV,MAAM;IAIb,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,IAAI;IAC7E,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI;IAEjC,aAAa,CAAC,IAAI,EAAE,IAAI;IAWxB,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAc3C,OAAO,CAAC,iBAAiB,CAGrB;IAEJ,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,wBAAwB;IAO1D,WAAW,CAAC,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,IAAI;CAczE"}
@@ -121,6 +121,7 @@ var BaseComposerRuntimeCore = class extends import_BaseSubscribable.BaseSubscrib
121
121
  if (!adapter) throw new Error("Attachments are not supported");
122
122
  const attachment = await adapter.add({ file });
123
123
  this._attachments = [...this._attachments, attachment];
124
+ this._notifyEventSubscribers("attachment_add");
124
125
  this._notifySubscribers();
125
126
  }
126
127
  async removeAttachment(attachmentId) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/composer/BaseComposerRuntimeCore.tsx"],"sourcesContent":["import {\n Attachment,\n CompleteAttachment,\n PendingAttachment,\n} from \"../../types/AttachmentTypes\";\nimport { AppendMessage } from \"../../types\";\nimport { AttachmentAdapter } from \"../attachment\";\nimport {\n ComposerRuntimeCore,\n ComposerRuntimeEventType,\n} from \"../core/ComposerRuntimeCore\";\nimport { MessageRole, RunConfig } from \"../../types/AssistantTypes\";\nimport { BaseSubscribable } from \"../remote-thread-list/BaseSubscribable\";\n\nconst isAttachmentComplete = (a: Attachment): a is CompleteAttachment =>\n a.status.type === \"complete\";\n\nexport abstract class BaseComposerRuntimeCore\n extends BaseSubscribable\n implements ComposerRuntimeCore\n{\n public readonly isEditing = true;\n\n protected abstract getAttachmentAdapter(): AttachmentAdapter | undefined;\n\n public getAttachmentAccept(): string {\n return this.getAttachmentAdapter()?.accept ?? \"*\";\n }\n\n private _attachments: readonly Attachment[] = [];\n public get attachments() {\n return this._attachments;\n }\n\n protected setAttachments(value: readonly Attachment[]) {\n this._attachments = value;\n this._notifySubscribers();\n }\n\n public abstract get canCancel(): boolean;\n\n public get isEmpty() {\n return !this.text.trim() && !this.attachments.length;\n }\n\n private _text = \"\";\n\n get text() {\n return this._text;\n }\n\n private _role: MessageRole = \"user\";\n\n get role() {\n return this._role;\n }\n\n private _runConfig: RunConfig = {};\n\n get runConfig() {\n return this._runConfig;\n }\n\n public setText(value: string) {\n if (this._text === value) return;\n\n this._text = value;\n this._notifySubscribers();\n }\n\n public setRole(role: MessageRole) {\n if (this._role === role) return;\n\n this._role = role;\n this._notifySubscribers();\n }\n\n public setRunConfig(runConfig: RunConfig) {\n if (this._runConfig === runConfig) return;\n\n this._runConfig = runConfig;\n this._notifySubscribers();\n }\n\n private _emptyTextAndAttachments() {\n this._attachments = [];\n this._text = \"\";\n this._notifySubscribers();\n }\n\n private async _onClearAttachments() {\n const adapter = this.getAttachmentAdapter();\n if (adapter) {\n await Promise.all(this._attachments.map((a) => adapter.remove(a)));\n }\n }\n\n public async reset() {\n if (\n this._attachments.length === 0 &&\n this._text === \"\" &&\n this._role === \"user\" &&\n Object.keys(this._runConfig).length === 0\n ) {\n return;\n }\n\n this._role = \"user\";\n this._runConfig = {};\n\n const task = this._onClearAttachments();\n this._emptyTextAndAttachments();\n await task;\n }\n\n public async clearAttachments() {\n const task = this._onClearAttachments();\n this.setAttachments([]);\n\n await task;\n }\n\n public async send() {\n const adapter = this.getAttachmentAdapter();\n const attachments =\n adapter && this.attachments.length > 0\n ? await Promise.all(\n this.attachments.map(async (a) => {\n if (isAttachmentComplete(a)) return a;\n const result = await adapter.send(a);\n return result as CompleteAttachment;\n }),\n )\n : [];\n\n const message: Omit<AppendMessage, \"parentId\"> = {\n role: this.role,\n content: this.text ? [{ type: \"text\", text: this.text }] : [],\n attachments,\n runConfig: this.runConfig,\n };\n this._emptyTextAndAttachments();\n\n this.handleSend(message);\n this._notifyEventSubscribers(\"send\");\n }\n\n public cancel() {\n this.handleCancel();\n }\n\n protected abstract handleSend(message: Omit<AppendMessage, \"parentId\">): void;\n protected abstract handleCancel(): void;\n\n async addAttachment(file: File) {\n const adapter = this.getAttachmentAdapter();\n if (!adapter) throw new Error(\"Attachments are not supported\");\n\n const attachment = await adapter.add({ file });\n\n this._attachments = [...this._attachments, attachment as PendingAttachment];\n this._notifySubscribers();\n }\n\n async removeAttachment(attachmentId: string) {\n const adapter = this.getAttachmentAdapter();\n if (!adapter) throw new Error(\"Attachments are not supported\");\n\n const index = this._attachments.findIndex((a) => a.id === attachmentId);\n if (index === -1) throw new Error(\"Attachment not found\");\n const attachment = this._attachments[index]!;\n\n await adapter.remove(attachment);\n\n this._attachments = this._attachments.toSpliced(index, 1);\n this._notifySubscribers();\n }\n\n private _eventSubscribers = new Map<\n ComposerRuntimeEventType,\n Set<() => void>\n >();\n\n protected _notifyEventSubscribers(event: ComposerRuntimeEventType) {\n const subscribers = this._eventSubscribers.get(event);\n if (!subscribers) return;\n\n for (const callback of subscribers) callback();\n }\n\n public unstable_on(event: ComposerRuntimeEventType, callback: () => void) {\n const subscribers = this._eventSubscribers.get(event);\n if (!subscribers) {\n this._eventSubscribers.set(event, new Set([callback]));\n } else {\n subscribers.add(callback);\n }\n\n return () => {\n const subscribers = this._eventSubscribers.get(event);\n if (!subscribers) return;\n subscribers.delete(callback);\n };\n }\n}\n"],"mappings":"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","names":["subscribers"]}
1
+ {"version":3,"sources":["../../../src/runtimes/composer/BaseComposerRuntimeCore.tsx"],"sourcesContent":["import {\n Attachment,\n CompleteAttachment,\n PendingAttachment,\n} from \"../../types/AttachmentTypes\";\nimport { AppendMessage } from \"../../types\";\nimport { AttachmentAdapter } from \"../attachment\";\nimport {\n ComposerRuntimeCore,\n ComposerRuntimeEventType,\n} from \"../core/ComposerRuntimeCore\";\nimport { MessageRole, RunConfig } from \"../../types/AssistantTypes\";\nimport { BaseSubscribable } from \"../remote-thread-list/BaseSubscribable\";\n\nconst isAttachmentComplete = (a: Attachment): a is CompleteAttachment =>\n a.status.type === \"complete\";\n\nexport abstract class BaseComposerRuntimeCore\n extends BaseSubscribable\n implements ComposerRuntimeCore\n{\n public readonly isEditing = true;\n\n protected abstract getAttachmentAdapter(): AttachmentAdapter | undefined;\n\n public getAttachmentAccept(): string {\n return this.getAttachmentAdapter()?.accept ?? \"*\";\n }\n\n private _attachments: readonly Attachment[] = [];\n public get attachments() {\n return this._attachments;\n }\n\n protected setAttachments(value: readonly Attachment[]) {\n this._attachments = value;\n this._notifySubscribers();\n }\n\n public abstract get canCancel(): boolean;\n\n public get isEmpty() {\n return !this.text.trim() && !this.attachments.length;\n }\n\n private _text = \"\";\n\n get text() {\n return this._text;\n }\n\n private _role: MessageRole = \"user\";\n\n get role() {\n return this._role;\n }\n\n private _runConfig: RunConfig = {};\n\n get runConfig() {\n return this._runConfig;\n }\n\n public setText(value: string) {\n if (this._text === value) return;\n\n this._text = value;\n this._notifySubscribers();\n }\n\n public setRole(role: MessageRole) {\n if (this._role === role) return;\n\n this._role = role;\n this._notifySubscribers();\n }\n\n public setRunConfig(runConfig: RunConfig) {\n if (this._runConfig === runConfig) return;\n\n this._runConfig = runConfig;\n this._notifySubscribers();\n }\n\n private _emptyTextAndAttachments() {\n this._attachments = [];\n this._text = \"\";\n this._notifySubscribers();\n }\n\n private async _onClearAttachments() {\n const adapter = this.getAttachmentAdapter();\n if (adapter) {\n await Promise.all(this._attachments.map((a) => adapter.remove(a)));\n }\n }\n\n public async reset() {\n if (\n this._attachments.length === 0 &&\n this._text === \"\" &&\n this._role === \"user\" &&\n Object.keys(this._runConfig).length === 0\n ) {\n return;\n }\n\n this._role = \"user\";\n this._runConfig = {};\n\n const task = this._onClearAttachments();\n this._emptyTextAndAttachments();\n await task;\n }\n\n public async clearAttachments() {\n const task = this._onClearAttachments();\n this.setAttachments([]);\n\n await task;\n }\n\n public async send() {\n const adapter = this.getAttachmentAdapter();\n const attachments =\n adapter && this.attachments.length > 0\n ? await Promise.all(\n this.attachments.map(async (a) => {\n if (isAttachmentComplete(a)) return a;\n const result = await adapter.send(a);\n return result as CompleteAttachment;\n }),\n )\n : [];\n\n const message: Omit<AppendMessage, \"parentId\"> = {\n role: this.role,\n content: this.text ? [{ type: \"text\", text: this.text }] : [],\n attachments,\n runConfig: this.runConfig,\n };\n this._emptyTextAndAttachments();\n\n this.handleSend(message);\n this._notifyEventSubscribers(\"send\");\n }\n\n public cancel() {\n this.handleCancel();\n }\n\n protected abstract handleSend(message: Omit<AppendMessage, \"parentId\">): void;\n protected abstract handleCancel(): void;\n\n async addAttachment(file: File) {\n const adapter = this.getAttachmentAdapter();\n if (!adapter) throw new Error(\"Attachments are not supported\");\n\n const attachment = await adapter.add({ file });\n\n this._attachments = [...this._attachments, attachment as PendingAttachment];\n this._notifyEventSubscribers(\"attachment_add\");\n this._notifySubscribers();\n }\n\n async removeAttachment(attachmentId: string) {\n const adapter = this.getAttachmentAdapter();\n if (!adapter) throw new Error(\"Attachments are not supported\");\n\n const index = this._attachments.findIndex((a) => a.id === attachmentId);\n if (index === -1) throw new Error(\"Attachment not found\");\n const attachment = this._attachments[index]!;\n\n await adapter.remove(attachment);\n\n this._attachments = this._attachments.toSpliced(index, 1);\n this._notifySubscribers();\n }\n\n private _eventSubscribers = new Map<\n ComposerRuntimeEventType,\n Set<() => void>\n >();\n\n protected _notifyEventSubscribers(event: ComposerRuntimeEventType) {\n const subscribers = this._eventSubscribers.get(event);\n if (!subscribers) return;\n\n for (const callback of subscribers) callback();\n }\n\n public unstable_on(event: ComposerRuntimeEventType, callback: () => void) {\n const subscribers = this._eventSubscribers.get(event);\n if (!subscribers) {\n this._eventSubscribers.set(event, new Set([callback]));\n } else {\n subscribers.add(callback);\n }\n\n return () => {\n const subscribers = this._eventSubscribers.get(event);\n if (!subscribers) return;\n subscribers.delete(callback);\n };\n }\n}\n"],"mappings":"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","names":["subscribers"]}
@@ -97,6 +97,7 @@ var BaseComposerRuntimeCore = class extends BaseSubscribable {
97
97
  if (!adapter) throw new Error("Attachments are not supported");
98
98
  const attachment = await adapter.add({ file });
99
99
  this._attachments = [...this._attachments, attachment];
100
+ this._notifyEventSubscribers("attachment_add");
100
101
  this._notifySubscribers();
101
102
  }
102
103
  async removeAttachment(attachmentId) {