@assistant-ui/react 0.10.1 → 0.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/dist/api/AssistantRuntime.js +5 -4
  2. package/dist/api/AssistantRuntime.js.map +1 -1
  3. package/dist/api/AttachmentRuntime.js +11 -10
  4. package/dist/api/AttachmentRuntime.js.map +1 -1
  5. package/dist/api/ComposerRuntime.js +16 -15
  6. package/dist/api/ComposerRuntime.js.map +1 -1
  7. package/dist/api/ContentPartRuntime.js +3 -2
  8. package/dist/api/ContentPartRuntime.js.map +1 -1
  9. package/dist/api/MessageRuntime.js +14 -13
  10. package/dist/api/MessageRuntime.js.map +1 -1
  11. package/dist/api/ThreadListItemRuntime.js +3 -2
  12. package/dist/api/ThreadListItemRuntime.js.map +1 -1
  13. package/dist/api/ThreadListRuntime.js +11 -10
  14. package/dist/api/ThreadListRuntime.js.map +1 -1
  15. package/dist/api/ThreadRuntime.js +14 -13
  16. package/dist/api/ThreadRuntime.js.map +1 -1
  17. package/dist/api/subscribable/BaseSubject.js +3 -2
  18. package/dist/api/subscribable/BaseSubject.js.map +1 -1
  19. package/dist/api/subscribable/EventSubscriptionSubject.js +4 -3
  20. package/dist/api/subscribable/EventSubscriptionSubject.js.map +1 -1
  21. package/dist/api/subscribable/LazyMemoizeSubject.js +5 -4
  22. package/dist/api/subscribable/LazyMemoizeSubject.js.map +1 -1
  23. package/dist/api/subscribable/NestedSubscriptionSubject.js +4 -3
  24. package/dist/api/subscribable/NestedSubscriptionSubject.js.map +1 -1
  25. package/dist/api/subscribable/SKIP_UPDATE.js +2 -1
  26. package/dist/api/subscribable/SKIP_UPDATE.js.map +1 -1
  27. package/dist/api/subscribable/ShallowMemoizeSubject.js +6 -5
  28. package/dist/api/subscribable/ShallowMemoizeSubject.js.map +1 -1
  29. package/dist/api/subscribable/shallowEqual.js +1 -0
  30. package/dist/api/subscribable/shallowEqual.js.map +1 -1
  31. package/dist/cloud/AssistantCloud.js +7 -6
  32. package/dist/cloud/AssistantCloud.js.map +1 -1
  33. package/dist/cloud/AssistantCloudAPI.js +6 -5
  34. package/dist/cloud/AssistantCloudAPI.js.map +1 -1
  35. package/dist/cloud/AssistantCloudAuthStrategy.js +9 -8
  36. package/dist/cloud/AssistantCloudAuthStrategy.js.map +1 -1
  37. package/dist/cloud/AssistantCloudAuthTokens.js +3 -2
  38. package/dist/cloud/AssistantCloudAuthTokens.js.map +1 -1
  39. package/dist/cloud/AssistantCloudRuns.js +3 -2
  40. package/dist/cloud/AssistantCloudRuns.js.map +1 -1
  41. package/dist/cloud/AssistantCloudThreadHistoryAdapter.js +6 -5
  42. package/dist/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  43. package/dist/cloud/AssistantCloudThreadMessages.js +3 -2
  44. package/dist/cloud/AssistantCloudThreadMessages.js.map +1 -1
  45. package/dist/cloud/AssistantCloudThreads.js +4 -3
  46. package/dist/cloud/AssistantCloudThreads.js.map +1 -1
  47. package/dist/cloud/auiV0.js +5 -4
  48. package/dist/cloud/auiV0.js.map +1 -1
  49. package/dist/cloud/index.js +3 -2
  50. package/dist/cloud/index.js.map +1 -1
  51. package/dist/cloud/useCloudThreadListRuntime.js +5 -3
  52. package/dist/cloud/useCloudThreadListRuntime.js.map +1 -1
  53. package/dist/context/ReadonlyStore.js +2 -1
  54. package/dist/context/ReadonlyStore.js.map +1 -1
  55. package/dist/context/index.js +4 -3
  56. package/dist/context/index.js.map +1 -1
  57. package/dist/context/providers/AssistantRuntimeProvider.js +13 -11
  58. package/dist/context/providers/AssistantRuntimeProvider.js.map +1 -1
  59. package/dist/context/providers/AttachmentRuntimeProvider.js +8 -6
  60. package/dist/context/providers/AttachmentRuntimeProvider.js.map +1 -1
  61. package/dist/context/providers/ContentPartRuntimeProvider.js +8 -6
  62. package/dist/context/providers/ContentPartRuntimeProvider.js.map +1 -1
  63. package/dist/context/providers/MessageRuntimeProvider.js +10 -8
  64. package/dist/context/providers/MessageRuntimeProvider.js.map +1 -1
  65. package/dist/context/providers/TextContentPartProvider.js +10 -8
  66. package/dist/context/providers/TextContentPartProvider.js.map +1 -1
  67. package/dist/context/providers/ThreadListItemRuntimeProvider.js +8 -6
  68. package/dist/context/providers/ThreadListItemRuntimeProvider.js.map +1 -1
  69. package/dist/context/providers/ThreadRuntimeProvider.js +10 -8
  70. package/dist/context/providers/ThreadRuntimeProvider.js.map +1 -1
  71. package/dist/context/providers/ThreadViewportProvider.js +8 -6
  72. package/dist/context/providers/ThreadViewportProvider.js.map +1 -1
  73. package/dist/context/providers/index.js +3 -2
  74. package/dist/context/providers/index.js.map +1 -1
  75. package/dist/context/react/AssistantContext.js +10 -8
  76. package/dist/context/react/AssistantContext.js.map +1 -1
  77. package/dist/context/react/AttachmentContext.js +10 -8
  78. package/dist/context/react/AttachmentContext.js.map +1 -1
  79. package/dist/context/react/ComposerContext.js +6 -4
  80. package/dist/context/react/ComposerContext.js.map +1 -1
  81. package/dist/context/react/ContentPartContext.js +7 -5
  82. package/dist/context/react/ContentPartContext.js.map +1 -1
  83. package/dist/context/react/MessageContext.js +11 -9
  84. package/dist/context/react/MessageContext.js.map +1 -1
  85. package/dist/context/react/ThreadContext.js +9 -7
  86. package/dist/context/react/ThreadContext.js.map +1 -1
  87. package/dist/context/react/ThreadListItemContext.js +7 -5
  88. package/dist/context/react/ThreadListItemContext.js.map +1 -1
  89. package/dist/context/react/ThreadViewportContext.js +7 -5
  90. package/dist/context/react/ThreadViewportContext.js.map +1 -1
  91. package/dist/context/react/index.js +11 -9
  92. package/dist/context/react/index.js.map +1 -1
  93. package/dist/context/react/utils/createContextHook.js +2 -0
  94. package/dist/context/react/utils/createContextHook.js.map +1 -1
  95. package/dist/context/react/utils/createContextStoreHook.js +1 -0
  96. package/dist/context/react/utils/createContextStoreHook.js.map +1 -1
  97. package/dist/context/react/utils/createStateHookForRuntime.js +2 -1
  98. package/dist/context/react/utils/createStateHookForRuntime.js.map +1 -1
  99. package/dist/context/react/utils/ensureBinding.js +2 -21
  100. package/dist/context/react/utils/ensureBinding.js.map +1 -1
  101. package/dist/context/react/utils/useRuntimeState.js +3 -2
  102. package/dist/context/react/utils/useRuntimeState.js.map +1 -1
  103. package/dist/context/stores/AssistantToolUIs.js +2 -1
  104. package/dist/context/stores/AssistantToolUIs.js.map +1 -1
  105. package/dist/context/stores/MessageUtils.js +2 -1
  106. package/dist/context/stores/MessageUtils.js.map +1 -1
  107. package/dist/context/stores/ThreadViewport.js +3 -1
  108. package/dist/context/stores/ThreadViewport.js.map +1 -1
  109. package/dist/index.js +9 -8
  110. package/dist/index.js.map +1 -1
  111. package/dist/internal.js +12 -11
  112. package/dist/internal.js.map +1 -1
  113. package/dist/model-context/ModelContextTypes.js +2 -1
  114. package/dist/model-context/ModelContextTypes.js.map +1 -1
  115. package/dist/model-context/index.js +10 -9
  116. package/dist/model-context/index.js.map +1 -1
  117. package/dist/model-context/makeAssistantTool.js +4 -2
  118. package/dist/model-context/makeAssistantTool.js.map +1 -1
  119. package/dist/model-context/makeAssistantToolUI.js +4 -2
  120. package/dist/model-context/makeAssistantToolUI.js.map +1 -1
  121. package/dist/model-context/makeAssistantVisible.js +9 -7
  122. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  123. package/dist/model-context/tool.d.ts +1 -10
  124. package/dist/model-context/tool.d.ts.map +1 -1
  125. package/dist/model-context/tool.js +1 -0
  126. package/dist/model-context/tool.js.map +1 -1
  127. package/dist/model-context/useAssistantInstructions.js +5 -3
  128. package/dist/model-context/useAssistantInstructions.js.map +1 -1
  129. package/dist/model-context/useAssistantTool.d.ts +0 -1
  130. package/dist/model-context/useAssistantTool.d.ts.map +1 -1
  131. package/dist/model-context/useAssistantTool.js +5 -4
  132. package/dist/model-context/useAssistantTool.js.map +1 -1
  133. package/dist/model-context/useAssistantToolUI.js +4 -2
  134. package/dist/model-context/useAssistantToolUI.js.map +1 -1
  135. package/dist/model-context/useInlineRender.js +3 -1
  136. package/dist/model-context/useInlineRender.js.map +1 -1
  137. package/dist/primitives/actionBar/ActionBarCopy.js +8 -6
  138. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  139. package/dist/primitives/actionBar/ActionBarEdit.js +6 -4
  140. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  141. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +7 -5
  142. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  143. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +6 -4
  144. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  145. package/dist/primitives/actionBar/ActionBarReload.js +8 -6
  146. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  147. package/dist/primitives/actionBar/ActionBarRoot.js +5 -3
  148. package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -1
  149. package/dist/primitives/actionBar/ActionBarSpeak.js +6 -4
  150. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
  151. package/dist/primitives/actionBar/ActionBarStopSpeaking.js +6 -4
  152. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
  153. package/dist/primitives/actionBar/index.js +9 -8
  154. package/dist/primitives/actionBar/index.js.map +1 -1
  155. package/dist/primitives/actionBar/useActionBarFloatStatus.js +6 -4
  156. package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
  157. package/dist/primitives/assistantModal/AssistantModalAnchor.js +5 -3
  158. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
  159. package/dist/primitives/assistantModal/AssistantModalContent.js +5 -3
  160. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  161. package/dist/primitives/assistantModal/AssistantModalRoot.js +7 -5
  162. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  163. package/dist/primitives/assistantModal/AssistantModalTrigger.js +4 -3
  164. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  165. package/dist/primitives/assistantModal/index.js +5 -4
  166. package/dist/primitives/assistantModal/index.js.map +1 -1
  167. package/dist/primitives/assistantModal/scope.js +2 -1
  168. package/dist/primitives/assistantModal/scope.js.map +1 -1
  169. package/dist/primitives/attachment/AttachmentName.js +4 -2
  170. package/dist/primitives/attachment/AttachmentName.js.map +1 -1
  171. package/dist/primitives/attachment/AttachmentRemove.js +6 -4
  172. package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
  173. package/dist/primitives/attachment/AttachmentRoot.js +3 -2
  174. package/dist/primitives/attachment/AttachmentRoot.js.map +1 -1
  175. package/dist/primitives/attachment/AttachmentThumb.js +5 -3
  176. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
  177. package/dist/primitives/attachment/index.js +5 -4
  178. package/dist/primitives/attachment/index.js.map +1 -1
  179. package/dist/primitives/branchPicker/BranchPickerCount.js +5 -3
  180. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
  181. package/dist/primitives/branchPicker/BranchPickerNext.js +6 -4
  182. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  183. package/dist/primitives/branchPicker/BranchPickerNumber.js +5 -3
  184. package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
  185. package/dist/primitives/branchPicker/BranchPickerPrevious.js +6 -4
  186. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  187. package/dist/primitives/branchPicker/BranchPickerRoot.js +4 -3
  188. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  189. package/dist/primitives/branchPicker/index.js +6 -5
  190. package/dist/primitives/branchPicker/index.js.map +1 -1
  191. package/dist/primitives/composer/ComposerAddAttachment.js +6 -4
  192. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  193. package/dist/primitives/composer/ComposerAttachments.js +11 -9
  194. package/dist/primitives/composer/ComposerAttachments.js.map +1 -1
  195. package/dist/primitives/composer/ComposerCancel.js +6 -4
  196. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  197. package/dist/primitives/composer/ComposerIf.js +5 -3
  198. package/dist/primitives/composer/ComposerIf.js.map +1 -1
  199. package/dist/primitives/composer/ComposerInput.js +8 -6
  200. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  201. package/dist/primitives/composer/ComposerRoot.js +5 -3
  202. package/dist/primitives/composer/ComposerRoot.js.map +1 -1
  203. package/dist/primitives/composer/ComposerSend.js +8 -6
  204. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  205. package/dist/primitives/composer/index.js +8 -7
  206. package/dist/primitives/composer/index.js.map +1 -1
  207. package/dist/primitives/contentPart/ContentPartImage.js +5 -3
  208. package/dist/primitives/contentPart/ContentPartImage.js.map +1 -1
  209. package/dist/primitives/contentPart/ContentPartInProgress.js +4 -2
  210. package/dist/primitives/contentPart/ContentPartInProgress.js.map +1 -1
  211. package/dist/primitives/contentPart/ContentPartText.js +6 -4
  212. package/dist/primitives/contentPart/ContentPartText.js.map +1 -1
  213. package/dist/primitives/contentPart/index.js +4 -3
  214. package/dist/primitives/contentPart/index.js.map +1 -1
  215. package/dist/primitives/contentPart/useContentPartFile.js +4 -2
  216. package/dist/primitives/contentPart/useContentPartFile.js.map +1 -1
  217. package/dist/primitives/contentPart/useContentPartImage.js +4 -2
  218. package/dist/primitives/contentPart/useContentPartImage.js.map +1 -1
  219. package/dist/primitives/contentPart/useContentPartReasoning.js +4 -2
  220. package/dist/primitives/contentPart/useContentPartReasoning.js.map +1 -1
  221. package/dist/primitives/contentPart/useContentPartSource.js +4 -2
  222. package/dist/primitives/contentPart/useContentPartSource.js.map +1 -1
  223. package/dist/primitives/contentPart/useContentPartText.js +4 -2
  224. package/dist/primitives/contentPart/useContentPartText.js.map +1 -1
  225. package/dist/primitives/index.js +17 -16
  226. package/dist/primitives/index.js.map +1 -1
  227. package/dist/primitives/message/MessageAttachments.js +11 -9
  228. package/dist/primitives/message/MessageAttachments.js.map +1 -1
  229. package/dist/primitives/message/MessageContent.js +19 -17
  230. package/dist/primitives/message/MessageContent.js.map +1 -1
  231. package/dist/primitives/message/MessageIf.js +6 -4
  232. package/dist/primitives/message/MessageIf.js.map +1 -1
  233. package/dist/primitives/message/MessageRoot.js +7 -5
  234. package/dist/primitives/message/MessageRoot.js.map +1 -1
  235. package/dist/primitives/message/index.js +5 -4
  236. package/dist/primitives/message/index.js.map +1 -1
  237. package/dist/primitives/thread/ThreadEmpty.js +4 -2
  238. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  239. package/dist/primitives/thread/ThreadIf.js +5 -3
  240. package/dist/primitives/thread/ThreadIf.js.map +1 -1
  241. package/dist/primitives/thread/ThreadMessages.js +14 -12
  242. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  243. package/dist/primitives/thread/ThreadRoot.js +3 -2
  244. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  245. package/dist/primitives/thread/ThreadScrollToBottom.js +6 -4
  246. package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -1
  247. package/dist/primitives/thread/ThreadSuggestion.js +7 -5
  248. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  249. package/dist/primitives/thread/ThreadViewport.js +7 -5
  250. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  251. package/dist/primitives/thread/index.js +8 -7
  252. package/dist/primitives/thread/index.js.map +1 -1
  253. package/dist/primitives/thread/useThreadViewportAutoScroll.js +9 -7
  254. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  255. package/dist/primitives/threadList/ThreadListItems.js +8 -6
  256. package/dist/primitives/threadList/ThreadListItems.js.map +1 -1
  257. package/dist/primitives/threadList/ThreadListNew.js +6 -4
  258. package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
  259. package/dist/primitives/threadList/ThreadListRoot.js +3 -2
  260. package/dist/primitives/threadList/ThreadListRoot.js.map +1 -1
  261. package/dist/primitives/threadList/index.js +4 -3
  262. package/dist/primitives/threadList/index.js.map +1 -1
  263. package/dist/primitives/threadListItem/ThreadListItemArchive.js +6 -4
  264. package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -1
  265. package/dist/primitives/threadListItem/ThreadListItemDelete.js +6 -4
  266. package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -1
  267. package/dist/primitives/threadListItem/ThreadListItemRoot.js +5 -3
  268. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
  269. package/dist/primitives/threadListItem/ThreadListItemTitle.js +4 -2
  270. package/dist/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
  271. package/dist/primitives/threadListItem/ThreadListItemTrigger.js +6 -4
  272. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
  273. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js +6 -4
  274. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -1
  275. package/dist/primitives/threadListItem/index.js +7 -6
  276. package/dist/primitives/threadListItem/index.js.map +1 -1
  277. package/dist/runtimes/adapters/RuntimeAdapterProvider.js +5 -4
  278. package/dist/runtimes/adapters/RuntimeAdapterProvider.js.map +1 -1
  279. package/dist/runtimes/adapters/attachment/CompositeAttachmentAdapter.js +3 -2
  280. package/dist/runtimes/adapters/attachment/CompositeAttachmentAdapter.js.map +1 -1
  281. package/dist/runtimes/adapters/attachment/SimpleImageAttachmentAdapter.js +4 -3
  282. package/dist/runtimes/adapters/attachment/SimpleImageAttachmentAdapter.js.map +1 -1
  283. package/dist/runtimes/adapters/attachment/SimpleTextAttachmentAdapter.js +4 -3
  284. package/dist/runtimes/adapters/attachment/SimpleTextAttachmentAdapter.js.map +1 -1
  285. package/dist/runtimes/adapters/attachment/index.js +4 -3
  286. package/dist/runtimes/adapters/attachment/index.js.map +1 -1
  287. package/dist/runtimes/adapters/index.js +5 -4
  288. package/dist/runtimes/adapters/index.js.map +1 -1
  289. package/dist/runtimes/adapters/speech/WebSpeechSynthesisAdapter.js +3 -2
  290. package/dist/runtimes/adapters/speech/WebSpeechSynthesisAdapter.js.map +1 -1
  291. package/dist/runtimes/adapters/speech/index.js +2 -1
  292. package/dist/runtimes/adapters/speech/index.js.map +1 -1
  293. package/dist/runtimes/composer/BaseComposerRuntimeCore.js +5 -4
  294. package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +1 -1
  295. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.js +5 -4
  296. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.js.map +1 -1
  297. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.js +4 -3
  298. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.js.map +1 -1
  299. package/dist/runtimes/core/BaseAssistantRuntimeCore.js +4 -3
  300. package/dist/runtimes/core/BaseAssistantRuntimeCore.js.map +1 -1
  301. package/dist/runtimes/core/BaseThreadRuntimeCore.js +7 -6
  302. package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +1 -1
  303. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js +7 -6
  304. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js.map +1 -1
  305. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js +8 -7
  306. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -1
  307. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +11 -10
  308. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  309. package/dist/runtimes/external-store/ThreadMessageConverter.js +3 -2
  310. package/dist/runtimes/external-store/ThreadMessageConverter.js.map +1 -1
  311. package/dist/runtimes/external-store/ThreadMessageLike.js +3 -2
  312. package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
  313. package/dist/runtimes/external-store/auto-status.js +5 -4
  314. package/dist/runtimes/external-store/auto-status.js.map +1 -1
  315. package/dist/runtimes/external-store/createMessageConverter.js +6 -4
  316. package/dist/runtimes/external-store/createMessageConverter.js.map +1 -1
  317. package/dist/runtimes/external-store/external-message-converter.js +11 -9
  318. package/dist/runtimes/external-store/external-message-converter.js.map +1 -1
  319. package/dist/runtimes/external-store/getExternalStoreMessage.js +6 -5
  320. package/dist/runtimes/external-store/getExternalStoreMessage.js.map +1 -1
  321. package/dist/runtimes/external-store/index.js +5 -4
  322. package/dist/runtimes/external-store/index.js.map +1 -1
  323. package/dist/runtimes/external-store/useExternalStoreRuntime.js +6 -4
  324. package/dist/runtimes/external-store/useExternalStoreRuntime.js.map +1 -1
  325. package/dist/runtimes/index.js +7 -6
  326. package/dist/runtimes/index.js.map +1 -1
  327. package/dist/runtimes/local/LocalRuntimeCore.js +7 -6
  328. package/dist/runtimes/local/LocalRuntimeCore.js.map +1 -1
  329. package/dist/runtimes/local/LocalRuntimeOptions.js +2 -1
  330. package/dist/runtimes/local/LocalRuntimeOptions.js.map +1 -1
  331. package/dist/runtimes/local/LocalThreadListRuntimeCore.js +5 -4
  332. package/dist/runtimes/local/LocalThreadListRuntimeCore.js.map +1 -1
  333. package/dist/runtimes/local/LocalThreadRuntimeCore.js +6 -5
  334. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
  335. package/dist/runtimes/local/index.js +2 -1
  336. package/dist/runtimes/local/index.js.map +1 -1
  337. package/dist/runtimes/local/shouldContinue.js +2 -1
  338. package/dist/runtimes/local/shouldContinue.js.map +1 -1
  339. package/dist/runtimes/local/useLocalRuntime.js +9 -7
  340. package/dist/runtimes/local/useLocalRuntime.js.map +1 -1
  341. package/dist/runtimes/remote-thread-list/BaseSubscribable.js +3 -2
  342. package/dist/runtimes/remote-thread-list/BaseSubscribable.js.map +1 -1
  343. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js +3 -2
  344. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js.map +1 -1
  345. package/dist/runtimes/remote-thread-list/OptimisticState.js +5 -4
  346. package/dist/runtimes/remote-thread-list/OptimisticState.js.map +1 -1
  347. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js +9 -7
  348. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js.map +1 -1
  349. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +13 -11
  350. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  351. package/dist/runtimes/remote-thread-list/adapter/cloud.js +9 -8
  352. package/dist/runtimes/remote-thread-list/adapter/cloud.js.map +1 -1
  353. package/dist/runtimes/remote-thread-list/adapter/in-memory.js +3 -2
  354. package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -1
  355. package/dist/runtimes/remote-thread-list/index.js +3 -2
  356. package/dist/runtimes/remote-thread-list/index.js.map +1 -1
  357. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js +8 -6
  358. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js.map +1 -1
  359. package/dist/runtimes/utils/MessageRepository.js +10 -9
  360. package/dist/runtimes/utils/MessageRepository.js.map +1 -1
  361. package/dist/tests/setup.js +2971 -3
  362. package/dist/tests/setup.js.map +1 -1
  363. package/dist/utils/CompositeContextProvider.js +4 -3
  364. package/dist/utils/CompositeContextProvider.js.map +1 -1
  365. package/dist/utils/combined/createCombinedStore.js +3 -1
  366. package/dist/utils/combined/createCombinedStore.js.map +1 -1
  367. package/dist/utils/combined/useCombinedStore.js +4 -2
  368. package/dist/utils/combined/useCombinedStore.js.map +1 -1
  369. package/dist/utils/createActionButton.js +3 -2
  370. package/dist/utils/createActionButton.js.map +1 -1
  371. package/dist/utils/getThreadMessageText.js +2 -1
  372. package/dist/utils/getThreadMessageText.js.map +1 -1
  373. package/dist/utils/hooks/useManagedRef.js +2 -1
  374. package/dist/utils/hooks/useManagedRef.js.map +1 -1
  375. package/dist/utils/hooks/useOnResizeContent.js +3 -2
  376. package/dist/utils/hooks/useOnResizeContent.js.map +1 -1
  377. package/dist/utils/hooks/useOnScrollToBottom.js +4 -2
  378. package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -1
  379. package/dist/utils/idUtils.js +5 -4
  380. package/dist/utils/idUtils.js.map +1 -1
  381. package/dist/utils/json/is-json.js +1 -0
  382. package/dist/utils/json/is-json.js.map +1 -1
  383. package/dist/utils/smooth/SmoothContext.js +10 -8
  384. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  385. package/dist/utils/smooth/index.js +4 -2
  386. package/dist/utils/smooth/index.js.map +1 -1
  387. package/dist/utils/smooth/useSmooth.js +9 -7
  388. package/dist/utils/smooth/useSmooth.js.map +1 -1
  389. package/dist/utils/useToolArgsFieldStatus.js +4 -3
  390. package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
  391. package/package.json +4 -4
  392. package/src/model-context/tool.ts +3 -16
  393. package/src/model-context/useAssistantTool.tsx +1 -4
@@ -1,10 +1,11 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ // src/utils/createActionButton.tsx
2
2
  import {
3
3
  forwardRef
4
4
  } from "react";
5
5
  import { Primitive } from "@radix-ui/react-primitive";
6
6
  import { composeEventHandlers } from "@radix-ui/primitive";
7
- const createActionButton = (displayName, useActionButton, forwardProps = []) => {
7
+ import { jsx } from "react/jsx-runtime";
8
+ var createActionButton = (displayName, useActionButton, forwardProps = []) => {
8
9
  const ActionButton = forwardRef((props, forwardedRef) => {
9
10
  const forwardedProps = {};
10
11
  const primitiveProps = {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/createActionButton.tsx"],"sourcesContent":["import {\n ComponentRef,\n forwardRef,\n ComponentPropsWithoutRef,\n MouseEventHandler,\n} from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\ntype ActionButtonCallback<TProps> = (\n props: TProps,\n) => MouseEventHandler<HTMLButtonElement> | null;\n\ntype PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;\n\nexport type ActionButtonProps<THook> = PrimitiveButtonProps &\n (THook extends (props: infer TProps) => unknown ? TProps : never);\n\nexport type ActionButtonElement = ComponentRef<typeof Primitive.button>;\n\nexport const createActionButton = <TProps,>(\n displayName: string,\n useActionButton: ActionButtonCallback<TProps>,\n forwardProps: (keyof NonNullable<TProps>)[] = [],\n) => {\n const ActionButton = forwardRef<\n ActionButtonElement,\n PrimitiveButtonProps & TProps\n >((props, forwardedRef) => {\n const forwardedProps = {} as TProps;\n const primitiveProps = {} as PrimitiveButtonProps;\n\n (Object.keys(props) as Array<keyof typeof props>).forEach((key) => {\n if (forwardProps.includes(key as keyof TProps)) {\n (forwardedProps as any)[key] = props[key];\n } else {\n (primitiveProps as any)[key] = props[key];\n }\n });\n\n const callback = useActionButton(forwardedProps as TProps) ?? undefined;\n return (\n <Primitive.button\n type=\"button\"\n {...primitiveProps}\n ref={forwardedRef}\n disabled={primitiveProps.disabled || !callback}\n onClick={composeEventHandlers(primitiveProps.onClick, callback)}\n />\n );\n });\n\n ActionButton.displayName = displayName;\n\n return ActionButton;\n};\n"],"mappings":"AA0CM;AA1CN;AAAA,EAEE;AAAA,OAGK;AACP,SAAS,iBAAiB;AAC1B,SAAS,4BAA4B;AAa9B,MAAM,qBAAqB,CAChC,aACA,iBACA,eAA8C,CAAC,MAC5C;AACH,QAAM,eAAe,WAGnB,CAAC,OAAO,iBAAiB;AACzB,UAAM,iBAAiB,CAAC;AACxB,UAAM,iBAAiB,CAAC;AAExB,IAAC,OAAO,KAAK,KAAK,EAAgC,QAAQ,CAAC,QAAQ;AACjE,UAAI,aAAa,SAAS,GAAmB,GAAG;AAC9C,QAAC,eAAuB,GAAG,IAAI,MAAM,GAAG;AAAA,MAC1C,OAAO;AACL,QAAC,eAAuB,GAAG,IAAI,MAAM,GAAG;AAAA,MAC1C;AAAA,IACF,CAAC;AAED,UAAM,WAAW,gBAAgB,cAAwB,KAAK;AAC9D,WACE;AAAA,MAAC,UAAU;AAAA,MAAV;AAAA,QACC,MAAK;AAAA,QACJ,GAAG;AAAA,QACJ,KAAK;AAAA,QACL,UAAU,eAAe,YAAY,CAAC;AAAA,QACtC,SAAS,qBAAqB,eAAe,SAAS,QAAQ;AAAA;AAAA,IAChE;AAAA,EAEJ,CAAC;AAED,eAAa,cAAc;AAE3B,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../src/utils/createActionButton.tsx"],"sourcesContent":["import {\n ComponentRef,\n forwardRef,\n ComponentPropsWithoutRef,\n MouseEventHandler,\n} from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\ntype ActionButtonCallback<TProps> = (\n props: TProps,\n) => MouseEventHandler<HTMLButtonElement> | null;\n\ntype PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;\n\nexport type ActionButtonProps<THook> = PrimitiveButtonProps &\n (THook extends (props: infer TProps) => unknown ? TProps : never);\n\nexport type ActionButtonElement = ComponentRef<typeof Primitive.button>;\n\nexport const createActionButton = <TProps,>(\n displayName: string,\n useActionButton: ActionButtonCallback<TProps>,\n forwardProps: (keyof NonNullable<TProps>)[] = [],\n) => {\n const ActionButton = forwardRef<\n ActionButtonElement,\n PrimitiveButtonProps & TProps\n >((props, forwardedRef) => {\n const forwardedProps = {} as TProps;\n const primitiveProps = {} as PrimitiveButtonProps;\n\n (Object.keys(props) as Array<keyof typeof props>).forEach((key) => {\n if (forwardProps.includes(key as keyof TProps)) {\n (forwardedProps as any)[key] = props[key];\n } else {\n (primitiveProps as any)[key] = props[key];\n }\n });\n\n const callback = useActionButton(forwardedProps as TProps) ?? undefined;\n return (\n <Primitive.button\n type=\"button\"\n {...primitiveProps}\n ref={forwardedRef}\n disabled={primitiveProps.disabled || !callback}\n onClick={composeEventHandlers(primitiveProps.onClick, callback)}\n />\n );\n });\n\n ActionButton.displayName = displayName;\n\n return ActionButton;\n};\n"],"mappings":";AAAA;AAAA,EAEE;AAAA,OAGK;AACP,SAAS,iBAAiB;AAC1B,SAAS,4BAA4B;AAmC/B;AAtBC,IAAM,qBAAqB,CAChC,aACA,iBACA,eAA8C,CAAC,MAC5C;AACH,QAAM,eAAe,WAGnB,CAAC,OAAO,iBAAiB;AACzB,UAAM,iBAAiB,CAAC;AACxB,UAAM,iBAAiB,CAAC;AAExB,IAAC,OAAO,KAAK,KAAK,EAAgC,QAAQ,CAAC,QAAQ;AACjE,UAAI,aAAa,SAAS,GAAmB,GAAG;AAC9C,QAAC,eAAuB,GAAG,IAAI,MAAM,GAAG;AAAA,MAC1C,OAAO;AACL,QAAC,eAAuB,GAAG,IAAI,MAAM,GAAG;AAAA,MAC1C;AAAA,IACF,CAAC;AAED,UAAM,WAAW,gBAAgB,cAAwB,KAAK;AAC9D,WACE;AAAA,MAAC,UAAU;AAAA,MAAV;AAAA,QACC,MAAK;AAAA,QACJ,GAAG;AAAA,QACJ,KAAK;AAAA,QACL,UAAU,eAAe,YAAY,CAAC;AAAA,QACtC,SAAS,qBAAqB,eAAe,SAAS,QAAQ;AAAA;AAAA,IAChE;AAAA,EAEJ,CAAC;AAED,eAAa,cAAc;AAE3B,SAAO;AACT;","names":[]}
@@ -1,4 +1,5 @@
1
- const getThreadMessageText = (message) => {
1
+ // src/utils/getThreadMessageText.tsx
2
+ var getThreadMessageText = (message) => {
2
3
  const textParts = message.content.filter(
3
4
  (part) => part.type === "text"
4
5
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/getThreadMessageText.tsx"],"sourcesContent":["import type {\n AppendMessage,\n TextContentPart,\n ThreadMessage,\n} from \"../types/AssistantTypes\";\n\nexport const getThreadMessageText = (\n message: ThreadMessage | AppendMessage,\n) => {\n const textParts = message.content.filter(\n (part) => part.type === \"text\",\n ) as TextContentPart[];\n\n return textParts.map((part) => part.text).join(\"\\n\\n\");\n};\n"],"mappings":"AAMO,MAAM,uBAAuB,CAClC,YACG;AACH,QAAM,YAAY,QAAQ,QAAQ;AAAA,IAChC,CAAC,SAAS,KAAK,SAAS;AAAA,EAC1B;AAEA,SAAO,UAAU,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,KAAK,MAAM;AACvD;","names":[]}
1
+ {"version":3,"sources":["../../src/utils/getThreadMessageText.tsx"],"sourcesContent":["import type {\n AppendMessage,\n TextContentPart,\n ThreadMessage,\n} from \"../types/AssistantTypes\";\n\nexport const getThreadMessageText = (\n message: ThreadMessage | AppendMessage,\n) => {\n const textParts = message.content.filter(\n (part) => part.type === \"text\",\n ) as TextContentPart[];\n\n return textParts.map((part) => part.text).join(\"\\n\\n\");\n};\n"],"mappings":";AAMO,IAAM,uBAAuB,CAClC,YACG;AACH,QAAM,YAAY,QAAQ,QAAQ;AAAA,IAChC,CAAC,SAAS,KAAK,SAAS;AAAA,EAC1B;AAEA,SAAO,UAAU,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,KAAK,MAAM;AACvD;","names":[]}
@@ -1,5 +1,6 @@
1
+ // src/utils/hooks/useManagedRef.ts
1
2
  import { useCallback, useRef } from "react";
2
- const useManagedRef = (callback) => {
3
+ var useManagedRef = (callback) => {
3
4
  const cleanupRef = useRef(void 0);
4
5
  const ref = useCallback(
5
6
  (el) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/hooks/useManagedRef.ts"],"sourcesContent":["import { useCallback, useRef } from \"react\";\n\nexport const useManagedRef = <TNode>(\n callback: (node: TNode) => (() => void) | void,\n) => {\n const cleanupRef = useRef<(() => void) | void>(undefined);\n\n const ref = useCallback(\n (el: TNode | null) => {\n // Call the previous cleanup function\n if (cleanupRef.current) {\n cleanupRef.current();\n }\n\n // Call the new callback and store its cleanup function\n if (el) {\n cleanupRef.current = callback(el);\n }\n },\n [callback],\n );\n\n return ref;\n};\n"],"mappings":"AAAA,SAAS,aAAa,cAAc;AAE7B,MAAM,gBAAgB,CAC3B,aACG;AACH,QAAM,aAAa,OAA4B,MAAS;AAExD,QAAM,MAAM;AAAA,IACV,CAAC,OAAqB;AAEpB,UAAI,WAAW,SAAS;AACtB,mBAAW,QAAQ;AAAA,MACrB;AAGA,UAAI,IAAI;AACN,mBAAW,UAAU,SAAS,EAAE;AAAA,MAClC;AAAA,IACF;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/utils/hooks/useManagedRef.ts"],"sourcesContent":["import { useCallback, useRef } from \"react\";\n\nexport const useManagedRef = <TNode>(\n callback: (node: TNode) => (() => void) | void,\n) => {\n const cleanupRef = useRef<(() => void) | void>(undefined);\n\n const ref = useCallback(\n (el: TNode | null) => {\n // Call the previous cleanup function\n if (cleanupRef.current) {\n cleanupRef.current();\n }\n\n // Call the new callback and store its cleanup function\n if (el) {\n cleanupRef.current = callback(el);\n }\n },\n [callback],\n );\n\n return ref;\n};\n"],"mappings":";AAAA,SAAS,aAAa,cAAc;AAE7B,IAAM,gBAAgB,CAC3B,aACG;AACH,QAAM,aAAa,OAA4B,MAAS;AAExD,QAAM,MAAM;AAAA,IACV,CAAC,OAAqB;AAEpB,UAAI,WAAW,SAAS;AACtB,mBAAW,QAAQ;AAAA,MACrB;AAGA,UAAI,IAAI;AACN,mBAAW,UAAU,SAAS,EAAE;AAAA,MAClC;AAAA,IACF;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,SAAO;AACT;","names":[]}
@@ -1,7 +1,8 @@
1
+ // src/utils/hooks/useOnResizeContent.tsx
1
2
  import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
2
3
  import { useCallback } from "react";
3
- import { useManagedRef } from "./useManagedRef";
4
- const useOnResizeContent = (callback) => {
4
+ import { useManagedRef } from "./useManagedRef.js";
5
+ var useOnResizeContent = (callback) => {
5
6
  const callbackRef = useCallbackRef(callback);
6
7
  const refCallback = useCallback(
7
8
  (el) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/hooks/useOnResizeContent.tsx"],"sourcesContent":["import { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useCallback } from \"react\";\nimport { useManagedRef } from \"./useManagedRef\";\n\nexport const useOnResizeContent = (callback: () => void) => {\n const callbackRef = useCallbackRef(callback);\n\n const refCallback = useCallback(\n (el: HTMLElement) => {\n const resizeObserver = new ResizeObserver(() => {\n callbackRef();\n });\n\n const mutationObserver = new MutationObserver(() => {\n callbackRef();\n });\n\n resizeObserver.observe(el);\n mutationObserver.observe(el, {\n childList: true,\n subtree: true,\n attributes: true,\n characterData: true,\n });\n\n return () => {\n resizeObserver.disconnect();\n mutationObserver.disconnect();\n };\n },\n [callbackRef],\n );\n\n return useManagedRef(refCallback);\n};\n"],"mappings":"AAAA,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB;AAEvB,MAAM,qBAAqB,CAAC,aAAyB;AAC1D,QAAM,cAAc,eAAe,QAAQ;AAE3C,QAAM,cAAc;AAAA,IAClB,CAAC,OAAoB;AACnB,YAAM,iBAAiB,IAAI,eAAe,MAAM;AAC9C,oBAAY;AAAA,MACd,CAAC;AAED,YAAM,mBAAmB,IAAI,iBAAiB,MAAM;AAClD,oBAAY;AAAA,MACd,CAAC;AAED,qBAAe,QAAQ,EAAE;AACzB,uBAAiB,QAAQ,IAAI;AAAA,QAC3B,WAAW;AAAA,QACX,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB,CAAC;AAED,aAAO,MAAM;AACX,uBAAe,WAAW;AAC1B,yBAAiB,WAAW;AAAA,MAC9B;AAAA,IACF;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AAEA,SAAO,cAAc,WAAW;AAClC;","names":[]}
1
+ {"version":3,"sources":["../../../src/utils/hooks/useOnResizeContent.tsx"],"sourcesContent":["import { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useCallback } from \"react\";\nimport { useManagedRef } from \"./useManagedRef\";\n\nexport const useOnResizeContent = (callback: () => void) => {\n const callbackRef = useCallbackRef(callback);\n\n const refCallback = useCallback(\n (el: HTMLElement) => {\n const resizeObserver = new ResizeObserver(() => {\n callbackRef();\n });\n\n const mutationObserver = new MutationObserver(() => {\n callbackRef();\n });\n\n resizeObserver.observe(el);\n mutationObserver.observe(el, {\n childList: true,\n subtree: true,\n attributes: true,\n characterData: true,\n });\n\n return () => {\n resizeObserver.disconnect();\n mutationObserver.disconnect();\n };\n },\n [callbackRef],\n );\n\n return useManagedRef(refCallback);\n};\n"],"mappings":";AAAA,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB;AAEvB,IAAM,qBAAqB,CAAC,aAAyB;AAC1D,QAAM,cAAc,eAAe,QAAQ;AAE3C,QAAM,cAAc;AAAA,IAClB,CAAC,OAAoB;AACnB,YAAM,iBAAiB,IAAI,eAAe,MAAM;AAC9C,oBAAY;AAAA,MACd,CAAC;AAED,YAAM,mBAAmB,IAAI,iBAAiB,MAAM;AAClD,oBAAY;AAAA,MACd,CAAC;AAED,qBAAe,QAAQ,EAAE;AACzB,uBAAiB,QAAQ,IAAI;AAAA,QAC3B,WAAW;AAAA,QACX,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB,CAAC;AAED,aAAO,MAAM;AACX,uBAAe,WAAW;AAC1B,yBAAiB,WAAW;AAAA,MAC9B;AAAA,IACF;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AAEA,SAAO,cAAc,WAAW;AAClC;","names":[]}
@@ -1,8 +1,10 @@
1
1
  "use client";
2
+
3
+ // src/utils/hooks/useOnScrollToBottom.tsx
2
4
  import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
3
5
  import { useEffect } from "react";
4
- import { useThreadViewport } from "../../context/react/ThreadViewportContext";
5
- const useOnScrollToBottom = (callback) => {
6
+ import { useThreadViewport } from "../../context/react/ThreadViewportContext.js";
7
+ var useOnScrollToBottom = (callback) => {
6
8
  const callbackRef = useCallbackRef(callback);
7
9
  const onScrollToBottom = useThreadViewport((vp) => vp.onScrollToBottom);
8
10
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/hooks/useOnScrollToBottom.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEffect } from \"react\";\nimport { useThreadViewport } from \"../../context/react/ThreadViewportContext\";\n\nexport const useOnScrollToBottom = (callback: () => void) => {\n const callbackRef = useCallbackRef(callback);\n const onScrollToBottom = useThreadViewport((vp) => vp.onScrollToBottom);\n\n useEffect(() => {\n return onScrollToBottom(callbackRef);\n }, [onScrollToBottom, callbackRef]);\n};\n"],"mappings":";AAEA,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAC1B,SAAS,yBAAyB;AAE3B,MAAM,sBAAsB,CAAC,aAAyB;AAC3D,QAAM,cAAc,eAAe,QAAQ;AAC3C,QAAM,mBAAmB,kBAAkB,CAAC,OAAO,GAAG,gBAAgB;AAEtE,YAAU,MAAM;AACd,WAAO,iBAAiB,WAAW;AAAA,EACrC,GAAG,CAAC,kBAAkB,WAAW,CAAC;AACpC;","names":[]}
1
+ {"version":3,"sources":["../../../src/utils/hooks/useOnScrollToBottom.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEffect } from \"react\";\nimport { useThreadViewport } from \"../../context/react/ThreadViewportContext\";\n\nexport const useOnScrollToBottom = (callback: () => void) => {\n const callbackRef = useCallbackRef(callback);\n const onScrollToBottom = useThreadViewport((vp) => vp.onScrollToBottom);\n\n useEffect(() => {\n return onScrollToBottom(callbackRef);\n }, [onScrollToBottom, callbackRef]);\n};\n"],"mappings":";;;AAEA,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAC1B,SAAS,yBAAyB;AAE3B,IAAM,sBAAsB,CAAC,aAAyB;AAC3D,QAAM,cAAc,eAAe,QAAQ;AAC3C,QAAM,mBAAmB,kBAAkB,CAAC,OAAO,GAAG,gBAAgB;AAEtE,YAAU,MAAM;AACd,WAAO,iBAAiB,WAAW;AAAA,EACrC,GAAG,CAAC,kBAAkB,WAAW,CAAC;AACpC;","names":[]}
@@ -1,11 +1,12 @@
1
+ // src/utils/idUtils.tsx
1
2
  import { customAlphabet } from "nanoid/non-secure";
2
- const generateId = customAlphabet(
3
+ var generateId = customAlphabet(
3
4
  "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
4
5
  7
5
6
  );
6
- const optimisticPrefix = "__optimistic__";
7
- const generateOptimisticId = () => `${optimisticPrefix}${generateId()}`;
8
- const isOptimisticId = (id) => id.startsWith(optimisticPrefix);
7
+ var optimisticPrefix = "__optimistic__";
8
+ var generateOptimisticId = () => `${optimisticPrefix}${generateId()}`;
9
+ var isOptimisticId = (id) => id.startsWith(optimisticPrefix);
9
10
  export {
10
11
  generateId,
11
12
  generateOptimisticId,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/idUtils.tsx"],"sourcesContent":["import { customAlphabet } from \"nanoid/non-secure\";\n\nexport const generateId = customAlphabet(\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n 7,\n);\n\nconst optimisticPrefix = \"__optimistic__\";\nexport const generateOptimisticId = () => `${optimisticPrefix}${generateId()}`;\nexport const isOptimisticId = (id: string) => id.startsWith(optimisticPrefix);\n"],"mappings":"AAAA,SAAS,sBAAsB;AAExB,MAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;AAEA,MAAM,mBAAmB;AAClB,MAAM,uBAAuB,MAAM,GAAG,gBAAgB,GAAG,WAAW,CAAC;AACrE,MAAM,iBAAiB,CAAC,OAAe,GAAG,WAAW,gBAAgB;","names":[]}
1
+ {"version":3,"sources":["../../src/utils/idUtils.tsx"],"sourcesContent":["import { customAlphabet } from \"nanoid/non-secure\";\n\nexport const generateId = customAlphabet(\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n 7,\n);\n\nconst optimisticPrefix = \"__optimistic__\";\nexport const generateOptimisticId = () => `${optimisticPrefix}${generateId()}`;\nexport const isOptimisticId = (id: string) => id.startsWith(optimisticPrefix);\n"],"mappings":";AAAA,SAAS,sBAAsB;AAExB,IAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;AAEA,IAAM,mBAAmB;AAClB,IAAM,uBAAuB,MAAM,GAAG,gBAAgB,GAAG,WAAW,CAAC;AACrE,IAAM,iBAAiB,CAAC,OAAe,GAAG,WAAW,gBAAgB;","names":[]}
@@ -1,3 +1,4 @@
1
+ // src/utils/json/is-json.ts
1
2
  function isJSONValue(value, currentDepth = 0) {
2
3
  if (currentDepth > 100) {
3
4
  return false;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/json/is-json.ts"],"sourcesContent":["import {\n ReadonlyJSONArray,\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"./json-value\";\n\nexport function isJSONValue(\n value: unknown,\n currentDepth: number = 0,\n): value is ReadonlyJSONValue {\n // Protect against too deep recursion\n if (currentDepth > 100) {\n return false;\n }\n\n if (\n value === null ||\n typeof value === \"string\" ||\n typeof value === \"boolean\"\n ) {\n return true;\n }\n\n // Handle special number cases\n if (typeof value === \"number\") {\n return !Number.isNaN(value) && Number.isFinite(value);\n }\n\n if (Array.isArray(value)) {\n return value.every((item) => isJSONValue(item, currentDepth + 1));\n }\n\n if (typeof value === \"object\") {\n return Object.entries(value).every(\n ([key, val]) =>\n typeof key === \"string\" && isJSONValue(val, currentDepth + 1),\n );\n }\n\n return false;\n}\n\nexport function isJSONArray(value: unknown): value is ReadonlyJSONArray {\n return Array.isArray(value) && value.every(isJSONValue);\n}\n\nexport function isJSONObject(value: unknown): value is ReadonlyJSONObject {\n return (\n value != null &&\n typeof value === \"object\" &&\n Object.entries(value).every(\n ([key, val]) => typeof key === \"string\" && isJSONValue(val),\n )\n );\n}\n"],"mappings":"AAMO,SAAS,YACd,OACA,eAAuB,GACK;AAE5B,MAAI,eAAe,KAAK;AACtB,WAAO;AAAA,EACT;AAEA,MACE,UAAU,QACV,OAAO,UAAU,YACjB,OAAO,UAAU,WACjB;AACA,WAAO;AAAA,EACT;AAGA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,CAAC,OAAO,MAAM,KAAK,KAAK,OAAO,SAAS,KAAK;AAAA,EACtD;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,MAAM,CAAC,SAAS,YAAY,MAAM,eAAe,CAAC,CAAC;AAAA,EAClE;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,OAAO,QAAQ,KAAK,EAAE;AAAA,MAC3B,CAAC,CAAC,KAAK,GAAG,MACR,OAAO,QAAQ,YAAY,YAAY,KAAK,eAAe,CAAC;AAAA,IAChE;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,YAAY,OAA4C;AACtE,SAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,MAAM,WAAW;AACxD;AAEO,SAAS,aAAa,OAA6C;AACxE,SACE,SAAS,QACT,OAAO,UAAU,YACjB,OAAO,QAAQ,KAAK,EAAE;AAAA,IACpB,CAAC,CAAC,KAAK,GAAG,MAAM,OAAO,QAAQ,YAAY,YAAY,GAAG;AAAA,EAC5D;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/utils/json/is-json.ts"],"sourcesContent":["import {\n ReadonlyJSONArray,\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"./json-value\";\n\nexport function isJSONValue(\n value: unknown,\n currentDepth: number = 0,\n): value is ReadonlyJSONValue {\n // Protect against too deep recursion\n if (currentDepth > 100) {\n return false;\n }\n\n if (\n value === null ||\n typeof value === \"string\" ||\n typeof value === \"boolean\"\n ) {\n return true;\n }\n\n // Handle special number cases\n if (typeof value === \"number\") {\n return !Number.isNaN(value) && Number.isFinite(value);\n }\n\n if (Array.isArray(value)) {\n return value.every((item) => isJSONValue(item, currentDepth + 1));\n }\n\n if (typeof value === \"object\") {\n return Object.entries(value).every(\n ([key, val]) =>\n typeof key === \"string\" && isJSONValue(val, currentDepth + 1),\n );\n }\n\n return false;\n}\n\nexport function isJSONArray(value: unknown): value is ReadonlyJSONArray {\n return Array.isArray(value) && value.every(isJSONValue);\n}\n\nexport function isJSONObject(value: unknown): value is ReadonlyJSONObject {\n return (\n value != null &&\n typeof value === \"object\" &&\n Object.entries(value).every(\n ([key, val]) => typeof key === \"string\" && isJSONValue(val),\n )\n );\n}\n"],"mappings":";AAMO,SAAS,YACd,OACA,eAAuB,GACK;AAE5B,MAAI,eAAe,KAAK;AACtB,WAAO;AAAA,EACT;AAEA,MACE,UAAU,QACV,OAAO,UAAU,YACjB,OAAO,UAAU,WACjB;AACA,WAAO;AAAA,EACT;AAGA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,CAAC,OAAO,MAAM,KAAK,KAAK,OAAO,SAAS,KAAK;AAAA,EACtD;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,MAAM,CAAC,SAAS,YAAY,MAAM,eAAe,CAAC,CAAC;AAAA,EAClE;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,OAAO,QAAQ,KAAK,EAAE;AAAA,MAC3B,CAAC,CAAC,KAAK,GAAG,MACR,OAAO,QAAQ,YAAY,YAAY,KAAK,eAAe,CAAC;AAAA,IAChE;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,YAAY,OAA4C;AACtE,SAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,MAAM,WAAW;AACxD;AAEO,SAAS,aAAa,OAA6C;AACxE,SACE,SAAS,QACT,OAAO,UAAU,YACjB,OAAO,QAAQ,KAAK,EAAE;AAAA,IACpB,CAAC,CAAC,KAAK,GAAG,MAAM,OAAO,QAAQ,YAAY,YAAY,GAAG;AAAA,EAC5D;AAEJ;","names":[]}
@@ -1,5 +1,6 @@
1
1
  "use client";
2
- import { jsx } from "react/jsx-runtime";
2
+
3
+ // src/utils/smooth/SmoothContext.tsx
3
4
  import {
4
5
  createContext,
5
6
  forwardRef,
@@ -7,14 +8,15 @@ import {
7
8
  useState
8
9
  } from "react";
9
10
  import { create } from "zustand";
10
- import { useContentPartRuntime } from "../../context/react/ContentPartContext";
11
- import { createContextStoreHook } from "../../context/react/utils/createContextStoreHook";
12
- const SmoothContext = createContext(null);
13
- const makeSmoothContext = (initialState) => {
11
+ import { useContentPartRuntime } from "../../context/react/ContentPartContext.js";
12
+ import { createContextStoreHook } from "../../context/react/utils/createContextStoreHook.js";
13
+ import { jsx } from "react/jsx-runtime";
14
+ var SmoothContext = createContext(null);
15
+ var makeSmoothContext = (initialState) => {
14
16
  const useSmoothStatus2 = create(() => initialState);
15
17
  return { useSmoothStatus: useSmoothStatus2 };
16
18
  };
17
- const SmoothContextProvider = ({ children }) => {
19
+ var SmoothContextProvider = ({ children }) => {
18
20
  const outer = useSmoothContext({ optional: true });
19
21
  const contentPartRuntime = useContentPartRuntime();
20
22
  const [context] = useState(
@@ -23,7 +25,7 @@ const SmoothContextProvider = ({ children }) => {
23
25
  if (outer) return children;
24
26
  return /* @__PURE__ */ jsx(SmoothContext.Provider, { value: context, children });
25
27
  };
26
- const withSmoothContextProvider = (Component) => {
28
+ var withSmoothContextProvider = (Component) => {
27
29
  const Wrapped = forwardRef((props, ref) => {
28
30
  return /* @__PURE__ */ jsx(SmoothContextProvider, { children: /* @__PURE__ */ jsx(Component, { ...props, ref }) });
29
31
  });
@@ -38,7 +40,7 @@ function useSmoothContext(options) {
38
40
  );
39
41
  return context;
40
42
  }
41
- const { useSmoothStatus, useSmoothStatusStore } = createContextStoreHook(
43
+ var { useSmoothStatus, useSmoothStatusStore } = createContextStoreHook(
42
44
  useSmoothContext,
43
45
  "useSmoothStatus"
44
46
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/smooth/SmoothContext.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n ComponentType,\n createContext,\n FC,\n forwardRef,\n PropsWithChildren,\n useContext,\n useState,\n} from \"react\";\nimport { ReadonlyStore } from \"../../context/ReadonlyStore\";\nimport { create, UseBoundStore } from \"zustand\";\nimport {\n ContentPartStatus,\n ToolCallContentPartStatus,\n} from \"../../types/AssistantTypes\";\nimport { useContentPartRuntime } from \"../../context/react/ContentPartContext\";\nimport { createContextStoreHook } from \"../../context/react/utils/createContextStoreHook\";\n\ntype SmoothContextValue = {\n useSmoothStatus: UseBoundStore<\n ReadonlyStore<ContentPartStatus | ToolCallContentPartStatus>\n >;\n};\n\nconst SmoothContext = createContext<SmoothContextValue | null>(null);\n\nconst makeSmoothContext = (\n initialState: ContentPartStatus | ToolCallContentPartStatus,\n) => {\n const useSmoothStatus = create(() => initialState);\n return { useSmoothStatus };\n};\n\nexport const SmoothContextProvider: FC<PropsWithChildren> = ({ children }) => {\n const outer = useSmoothContext({ optional: true });\n const contentPartRuntime = useContentPartRuntime();\n\n const [context] = useState(() =>\n makeSmoothContext(contentPartRuntime.getState().status),\n );\n\n // do not wrap if there is an outer SmoothContextProvider\n if (outer) return children;\n\n return (\n <SmoothContext.Provider value={context}>{children}</SmoothContext.Provider>\n );\n};\n\nexport const withSmoothContextProvider = <C extends ComponentType<any>>(\n Component: C,\n): C => {\n const Wrapped = forwardRef((props, ref) => {\n return (\n <SmoothContextProvider>\n <Component {...(props as any)} ref={ref} />\n </SmoothContextProvider>\n );\n });\n Wrapped.displayName = Component.displayName;\n return Wrapped as any;\n};\n\nfunction useSmoothContext(options?: {\n optional?: false | undefined;\n}): SmoothContextValue;\nfunction useSmoothContext(options?: {\n optional?: boolean | undefined;\n}): SmoothContextValue | null;\nfunction useSmoothContext(options?: { optional?: boolean | undefined }) {\n const context = useContext(SmoothContext);\n if (!options?.optional && !context)\n throw new Error(\n \"This component must be used within a SmoothContextProvider.\",\n );\n return context;\n}\n\nexport const { useSmoothStatus, useSmoothStatusStore } = createContextStoreHook(\n useSmoothContext,\n \"useSmoothStatus\",\n);\n"],"mappings":";AA+CI;AA7CJ;AAAA,EAEE;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,cAA6B;AAKtC,SAAS,6BAA6B;AACtC,SAAS,8BAA8B;AAQvC,MAAM,gBAAgB,cAAyC,IAAI;AAEnE,MAAM,oBAAoB,CACxB,iBACG;AACH,QAAMA,mBAAkB,OAAO,MAAM,YAAY;AACjD,SAAO,EAAE,iBAAAA,iBAAgB;AAC3B;AAEO,MAAM,wBAA+C,CAAC,EAAE,SAAS,MAAM;AAC5E,QAAM,QAAQ,iBAAiB,EAAE,UAAU,KAAK,CAAC;AACjD,QAAM,qBAAqB,sBAAsB;AAEjD,QAAM,CAAC,OAAO,IAAI;AAAA,IAAS,MACzB,kBAAkB,mBAAmB,SAAS,EAAE,MAAM;AAAA,EACxD;AAGA,MAAI,MAAO,QAAO;AAElB,SACE,oBAAC,cAAc,UAAd,EAAuB,OAAO,SAAU,UAAS;AAEtD;AAEO,MAAM,4BAA4B,CACvC,cACM;AACN,QAAM,UAAU,WAAW,CAAC,OAAO,QAAQ;AACzC,WACE,oBAAC,yBACC,8BAAC,aAAW,GAAI,OAAe,KAAU,GAC3C;AAAA,EAEJ,CAAC;AACD,UAAQ,cAAc,UAAU;AAChC,SAAO;AACT;AAQA,SAAS,iBAAiB,SAA8C;AACtE,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS,YAAY,CAAC;AACzB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO;AACT;AAEO,MAAM,EAAE,iBAAiB,qBAAqB,IAAI;AAAA,EACvD;AAAA,EACA;AACF;","names":["useSmoothStatus"]}
1
+ {"version":3,"sources":["../../../src/utils/smooth/SmoothContext.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n ComponentType,\n createContext,\n FC,\n forwardRef,\n PropsWithChildren,\n useContext,\n useState,\n} from \"react\";\nimport { ReadonlyStore } from \"../../context/ReadonlyStore\";\nimport { create, UseBoundStore } from \"zustand\";\nimport {\n ContentPartStatus,\n ToolCallContentPartStatus,\n} from \"../../types/AssistantTypes\";\nimport { useContentPartRuntime } from \"../../context/react/ContentPartContext\";\nimport { createContextStoreHook } from \"../../context/react/utils/createContextStoreHook\";\n\ntype SmoothContextValue = {\n useSmoothStatus: UseBoundStore<\n ReadonlyStore<ContentPartStatus | ToolCallContentPartStatus>\n >;\n};\n\nconst SmoothContext = createContext<SmoothContextValue | null>(null);\n\nconst makeSmoothContext = (\n initialState: ContentPartStatus | ToolCallContentPartStatus,\n) => {\n const useSmoothStatus = create(() => initialState);\n return { useSmoothStatus };\n};\n\nexport const SmoothContextProvider: FC<PropsWithChildren> = ({ children }) => {\n const outer = useSmoothContext({ optional: true });\n const contentPartRuntime = useContentPartRuntime();\n\n const [context] = useState(() =>\n makeSmoothContext(contentPartRuntime.getState().status),\n );\n\n // do not wrap if there is an outer SmoothContextProvider\n if (outer) return children;\n\n return (\n <SmoothContext.Provider value={context}>{children}</SmoothContext.Provider>\n );\n};\n\nexport const withSmoothContextProvider = <C extends ComponentType<any>>(\n Component: C,\n): C => {\n const Wrapped = forwardRef((props, ref) => {\n return (\n <SmoothContextProvider>\n <Component {...(props as any)} ref={ref} />\n </SmoothContextProvider>\n );\n });\n Wrapped.displayName = Component.displayName;\n return Wrapped as any;\n};\n\nfunction useSmoothContext(options?: {\n optional?: false | undefined;\n}): SmoothContextValue;\nfunction useSmoothContext(options?: {\n optional?: boolean | undefined;\n}): SmoothContextValue | null;\nfunction useSmoothContext(options?: { optional?: boolean | undefined }) {\n const context = useContext(SmoothContext);\n if (!options?.optional && !context)\n throw new Error(\n \"This component must be used within a SmoothContextProvider.\",\n );\n return context;\n}\n\nexport const { useSmoothStatus, useSmoothStatusStore } = createContextStoreHook(\n useSmoothContext,\n \"useSmoothStatus\",\n);\n"],"mappings":";;;AAEA;AAAA,EAEE;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,cAA6B;AAKtC,SAAS,6BAA6B;AACtC,SAAS,8BAA8B;AA6BnC;AArBJ,IAAM,gBAAgB,cAAyC,IAAI;AAEnE,IAAM,oBAAoB,CACxB,iBACG;AACH,QAAMA,mBAAkB,OAAO,MAAM,YAAY;AACjD,SAAO,EAAE,iBAAAA,iBAAgB;AAC3B;AAEO,IAAM,wBAA+C,CAAC,EAAE,SAAS,MAAM;AAC5E,QAAM,QAAQ,iBAAiB,EAAE,UAAU,KAAK,CAAC;AACjD,QAAM,qBAAqB,sBAAsB;AAEjD,QAAM,CAAC,OAAO,IAAI;AAAA,IAAS,MACzB,kBAAkB,mBAAmB,SAAS,EAAE,MAAM;AAAA,EACxD;AAGA,MAAI,MAAO,QAAO;AAElB,SACE,oBAAC,cAAc,UAAd,EAAuB,OAAO,SAAU,UAAS;AAEtD;AAEO,IAAM,4BAA4B,CACvC,cACM;AACN,QAAM,UAAU,WAAW,CAAC,OAAO,QAAQ;AACzC,WACE,oBAAC,yBACC,8BAAC,aAAW,GAAI,OAAe,KAAU,GAC3C;AAAA,EAEJ,CAAC;AACD,UAAQ,cAAc,UAAU;AAChC,SAAO;AACT;AAQA,SAAS,iBAAiB,SAA8C;AACtE,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS,YAAY,CAAC;AACzB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO;AACT;AAEO,IAAM,EAAE,iBAAiB,qBAAqB,IAAI;AAAA,EACvD;AAAA,EACA;AACF;","names":["useSmoothStatus"]}
@@ -1,6 +1,8 @@
1
1
  "use client";
2
- import { useSmooth } from "./useSmooth";
3
- import { useSmoothStatus, withSmoothContextProvider } from "./SmoothContext";
2
+
3
+ // src/utils/smooth/index.ts
4
+ import { useSmooth } from "./useSmooth.js";
5
+ import { useSmoothStatus, withSmoothContextProvider } from "./SmoothContext.js";
4
6
  export {
5
7
  useSmooth,
6
8
  useSmoothStatus,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/smooth/index.ts"],"sourcesContent":["\"use client\";\n// TODO createContextStoreHook does not work well with server-side nextjs bundler\n// use client necessary here for now\n\nexport { useSmooth } from \"./useSmooth\";\nexport { useSmoothStatus, withSmoothContextProvider } from \"./SmoothContext\";\n"],"mappings":";AAIA,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB,iCAAiC;","names":[]}
1
+ {"version":3,"sources":["../../../src/utils/smooth/index.ts"],"sourcesContent":["\"use client\";\n// TODO createContextStoreHook does not work well with server-side nextjs bundler\n// use client necessary here for now\n\nexport { useSmooth } from \"./useSmooth\";\nexport { useSmoothStatus, withSmoothContextProvider } from \"./SmoothContext\";\n"],"mappings":";;;AAIA,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB,iCAAiC;","names":[]}
@@ -1,10 +1,12 @@
1
1
  "use client";
2
+
3
+ // src/utils/smooth/useSmooth.tsx
2
4
  import { useEffect, useMemo, useRef, useState } from "react";
3
- import { useMessage } from "../../context";
5
+ import { useMessage } from "../../context/index.js";
4
6
  import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
5
- import { useSmoothStatusStore } from "./SmoothContext";
6
- import { writableStore } from "../../context/ReadonlyStore";
7
- class TextStreamAnimator {
7
+ import { useSmoothStatusStore } from "./SmoothContext.js";
8
+ import { writableStore } from "../../context/ReadonlyStore.js";
9
+ var TextStreamAnimator = class {
8
10
  constructor(currentText, setText) {
9
11
  this.currentText = currentText;
10
12
  this.setText = setText;
@@ -47,11 +49,11 @@ class TextStreamAnimator {
47
49
  this.lastUpdateTime = currentTime - timeToConsume;
48
50
  this.setText(this.currentText);
49
51
  };
50
- }
51
- const SMOOTH_STATUS = Object.freeze({
52
+ };
53
+ var SMOOTH_STATUS = Object.freeze({
52
54
  type: "running"
53
55
  });
54
- const useSmooth = (state, smooth = false) => {
56
+ var useSmooth = (state, smooth = false) => {
55
57
  const { text } = state;
56
58
  const id = useMessage({
57
59
  optional: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/smooth/useSmooth.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { useMessage } from \"../../context\";\nimport {\n ContentPartStatus,\n ReasoningContentPart,\n TextContentPart,\n} from \"../../types/AssistantTypes\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useSmoothStatusStore } from \"./SmoothContext\";\nimport { writableStore } from \"../../context/ReadonlyStore\";\nimport { ContentPartState } from \"../../api/ContentPartRuntime\";\n\nclass TextStreamAnimator {\n private animationFrameId: number | null = null;\n private lastUpdateTime: number = Date.now();\n\n public targetText: string = \"\";\n\n constructor(\n public currentText: string,\n private setText: (newText: string) => void,\n ) {}\n\n start() {\n if (this.animationFrameId !== null) return;\n this.lastUpdateTime = Date.now();\n this.animate();\n }\n\n stop() {\n if (this.animationFrameId !== null) {\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = null;\n }\n }\n\n private animate = () => {\n const currentTime = Date.now();\n const deltaTime = currentTime - this.lastUpdateTime;\n let timeToConsume = deltaTime;\n\n const remainingChars = this.targetText.length - this.currentText.length;\n const baseTimePerChar = Math.min(5, 250 / remainingChars);\n\n let charsToAdd = 0;\n while (timeToConsume >= baseTimePerChar && charsToAdd < remainingChars) {\n charsToAdd++;\n timeToConsume -= baseTimePerChar;\n }\n\n if (charsToAdd !== remainingChars) {\n this.animationFrameId = requestAnimationFrame(this.animate);\n } else {\n this.animationFrameId = null;\n }\n if (charsToAdd === 0) return;\n\n this.currentText = this.targetText.slice(\n 0,\n this.currentText.length + charsToAdd,\n );\n this.lastUpdateTime = currentTime - timeToConsume;\n this.setText(this.currentText);\n };\n}\n\nconst SMOOTH_STATUS: ContentPartStatus = Object.freeze({\n type: \"running\",\n});\n\nexport const useSmooth = (\n state: ContentPartState & (TextContentPart | ReasoningContentPart),\n smooth: boolean = false,\n): ContentPartState & (TextContentPart | ReasoningContentPart) => {\n const { text } = state;\n const id = useMessage({\n optional: true,\n selector: (m: { id: string }) => m.id,\n });\n\n const idRef = useRef(id);\n const [displayedText, setDisplayedText] = useState(text);\n\n const smoothStatusStore = useSmoothStatusStore({ optional: true });\n const setText = useCallbackRef((text: string) => {\n setDisplayedText(text);\n if (smoothStatusStore) {\n const target =\n displayedText !== text || state.status.type === \"running\"\n ? SMOOTH_STATUS\n : state.status;\n writableStore(smoothStatusStore).setState(target, true);\n }\n });\n\n // TODO this is hacky\n useEffect(() => {\n if (smoothStatusStore) {\n const target =\n displayedText !== text || state.status.type === \"running\"\n ? SMOOTH_STATUS\n : state.status;\n writableStore(smoothStatusStore).setState(target, true);\n }\n }, [smoothStatusStore, text, displayedText, state.status]);\n\n const [animatorRef] = useState<TextStreamAnimator>(\n new TextStreamAnimator(text, setText),\n );\n\n useEffect(() => {\n if (!smooth) {\n animatorRef.stop();\n return;\n }\n\n if (idRef.current !== id || !text.startsWith(animatorRef.targetText)) {\n idRef.current = id;\n setText(text);\n\n animatorRef.currentText = text;\n animatorRef.targetText = text;\n animatorRef.stop();\n\n return;\n }\n\n animatorRef.targetText = text;\n animatorRef.start();\n }, [setText, animatorRef, id, smooth, text]);\n\n useEffect(() => {\n return () => {\n animatorRef.stop();\n };\n }, [animatorRef]);\n\n return useMemo(\n () =>\n smooth\n ? {\n type: \"text\",\n text: displayedText,\n status: text === displayedText ? state.status : SMOOTH_STATUS,\n }\n : state,\n [smooth, displayedText, state, text],\n );\n};\n"],"mappings":"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","names":["text"]}
1
+ {"version":3,"sources":["../../../src/utils/smooth/useSmooth.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { useMessage } from \"../../context\";\nimport {\n ContentPartStatus,\n ReasoningContentPart,\n TextContentPart,\n} from \"../../types/AssistantTypes\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useSmoothStatusStore } from \"./SmoothContext\";\nimport { writableStore } from \"../../context/ReadonlyStore\";\nimport { ContentPartState } from \"../../api/ContentPartRuntime\";\n\nclass TextStreamAnimator {\n private animationFrameId: number | null = null;\n private lastUpdateTime: number = Date.now();\n\n public targetText: string = \"\";\n\n constructor(\n public currentText: string,\n private setText: (newText: string) => void,\n ) {}\n\n start() {\n if (this.animationFrameId !== null) return;\n this.lastUpdateTime = Date.now();\n this.animate();\n }\n\n stop() {\n if (this.animationFrameId !== null) {\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = null;\n }\n }\n\n private animate = () => {\n const currentTime = Date.now();\n const deltaTime = currentTime - this.lastUpdateTime;\n let timeToConsume = deltaTime;\n\n const remainingChars = this.targetText.length - this.currentText.length;\n const baseTimePerChar = Math.min(5, 250 / remainingChars);\n\n let charsToAdd = 0;\n while (timeToConsume >= baseTimePerChar && charsToAdd < remainingChars) {\n charsToAdd++;\n timeToConsume -= baseTimePerChar;\n }\n\n if (charsToAdd !== remainingChars) {\n this.animationFrameId = requestAnimationFrame(this.animate);\n } else {\n this.animationFrameId = null;\n }\n if (charsToAdd === 0) return;\n\n this.currentText = this.targetText.slice(\n 0,\n this.currentText.length + charsToAdd,\n );\n this.lastUpdateTime = currentTime - timeToConsume;\n this.setText(this.currentText);\n };\n}\n\nconst SMOOTH_STATUS: ContentPartStatus = Object.freeze({\n type: \"running\",\n});\n\nexport const useSmooth = (\n state: ContentPartState & (TextContentPart | ReasoningContentPart),\n smooth: boolean = false,\n): ContentPartState & (TextContentPart | ReasoningContentPart) => {\n const { text } = state;\n const id = useMessage({\n optional: true,\n selector: (m: { id: string }) => m.id,\n });\n\n const idRef = useRef(id);\n const [displayedText, setDisplayedText] = useState(text);\n\n const smoothStatusStore = useSmoothStatusStore({ optional: true });\n const setText = useCallbackRef((text: string) => {\n setDisplayedText(text);\n if (smoothStatusStore) {\n const target =\n displayedText !== text || state.status.type === \"running\"\n ? SMOOTH_STATUS\n : state.status;\n writableStore(smoothStatusStore).setState(target, true);\n }\n });\n\n // TODO this is hacky\n useEffect(() => {\n if (smoothStatusStore) {\n const target =\n displayedText !== text || state.status.type === \"running\"\n ? SMOOTH_STATUS\n : state.status;\n writableStore(smoothStatusStore).setState(target, true);\n }\n }, [smoothStatusStore, text, displayedText, state.status]);\n\n const [animatorRef] = useState<TextStreamAnimator>(\n new TextStreamAnimator(text, setText),\n );\n\n useEffect(() => {\n if (!smooth) {\n animatorRef.stop();\n return;\n }\n\n if (idRef.current !== id || !text.startsWith(animatorRef.targetText)) {\n idRef.current = id;\n setText(text);\n\n animatorRef.currentText = text;\n animatorRef.targetText = text;\n animatorRef.stop();\n\n return;\n }\n\n animatorRef.targetText = text;\n animatorRef.start();\n }, [setText, animatorRef, id, smooth, text]);\n\n useEffect(() => {\n return () => {\n animatorRef.stop();\n };\n }, [animatorRef]);\n\n return useMemo(\n () =>\n smooth\n ? {\n type: \"text\",\n text: displayedText,\n status: text === displayedText ? state.status : SMOOTH_STATUS,\n }\n : state,\n [smooth, displayedText, state, text],\n );\n};\n"],"mappings":"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","names":["text"]}
@@ -1,7 +1,8 @@
1
+ // src/utils/useToolArgsFieldStatus.tsx
1
2
  import { getPartialJsonObjectFieldState } from "assistant-stream/utils";
2
- import { useContentPart } from "../context";
3
- const COMPLETE_STATUS = { type: "complete" };
4
- const useToolArgsFieldStatus = (fieldPath) => {
3
+ import { useContentPart } from "../context/index.js";
4
+ var COMPLETE_STATUS = { type: "complete" };
5
+ var useToolArgsFieldStatus = (fieldPath) => {
5
6
  return useContentPart((t) => {
6
7
  if (t.type !== "tool-call")
7
8
  throw new Error(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/useToolArgsFieldStatus.tsx"],"sourcesContent":["import { getPartialJsonObjectFieldState } from \"assistant-stream/utils\";\nimport { useContentPart } from \"../context\";\n\nconst COMPLETE_STATUS = { type: \"complete\" };\n\nexport const useToolArgsFieldStatus = (fieldPath: (string | number)[]) => {\n return useContentPart((t) => {\n if (t.type !== \"tool-call\")\n throw new Error(\n \"useToolArgsFieldStatus can only be used inside tool-call content parts\",\n );\n\n const state = getPartialJsonObjectFieldState(t.args, fieldPath);\n if (state === \"complete\" || t.status.type === \"requires-action\")\n return COMPLETE_STATUS;\n return t.status;\n });\n};\n"],"mappings":"AAAA,SAAS,sCAAsC;AAC/C,SAAS,sBAAsB;AAE/B,MAAM,kBAAkB,EAAE,MAAM,WAAW;AAEpC,MAAM,yBAAyB,CAAC,cAAmC;AACxE,SAAO,eAAe,CAAC,MAAM;AAC3B,QAAI,EAAE,SAAS;AACb,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,UAAM,QAAQ,+BAA+B,EAAE,MAAM,SAAS;AAC9D,QAAI,UAAU,cAAc,EAAE,OAAO,SAAS;AAC5C,aAAO;AACT,WAAO,EAAE;AAAA,EACX,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../src/utils/useToolArgsFieldStatus.tsx"],"sourcesContent":["import { getPartialJsonObjectFieldState } from \"assistant-stream/utils\";\nimport { useContentPart } from \"../context\";\n\nconst COMPLETE_STATUS = { type: \"complete\" };\n\nexport const useToolArgsFieldStatus = (fieldPath: (string | number)[]) => {\n return useContentPart((t) => {\n if (t.type !== \"tool-call\")\n throw new Error(\n \"useToolArgsFieldStatus can only be used inside tool-call content parts\",\n );\n\n const state = getPartialJsonObjectFieldState(t.args, fieldPath);\n if (state === \"complete\" || t.status.type === \"requires-action\")\n return COMPLETE_STATUS;\n return t.status;\n });\n};\n"],"mappings":";AAAA,SAAS,sCAAsC;AAC/C,SAAS,sBAAsB;AAE/B,IAAM,kBAAkB,EAAE,MAAM,WAAW;AAEpC,IAAM,yBAAyB,CAAC,cAAmC;AACxE,SAAO,eAAe,CAAC,MAAM;AAC3B,QAAI,EAAE,SAAS;AACb,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,UAAM,QAAQ,+BAA+B,EAAE,MAAM,SAAS;AAC9D,QAAI,UAAU,cAAc,EAAE,OAAO,SAAS;AAC5C,aAAO;AACT,WAAO,EAAE;AAAA,EACX,CAAC;AACH;","names":[]}
package/package.json CHANGED
@@ -28,7 +28,7 @@
28
28
  "conversational-ui",
29
29
  "conversational-ai"
30
30
  ],
31
- "version": "0.10.1",
31
+ "version": "0.10.3",
32
32
  "license": "MIT",
33
33
  "type": "module",
34
34
  "exports": {
@@ -67,7 +67,7 @@
67
67
  "peerDependencies": {
68
68
  "@types/react": "*",
69
69
  "@types/react-dom": "*",
70
- "assistant-stream": "^0.2.1",
70
+ "assistant-stream": "^0.2.3",
71
71
  "react": "^18 || ^19 || ^19.0.0-rc",
72
72
  "react-dom": "^18 || ^19 || ^19.0.0-rc"
73
73
  },
@@ -88,8 +88,8 @@
88
88
  "eslint-config-next": "15.3.1",
89
89
  "tsx": "^4.19.3",
90
90
  "vitest": "^3.1.1",
91
- "@assistant-ui/tsconfig": "0.0.0",
92
- "@assistant-ui/tsbuildutils": "0.0.1"
91
+ "@assistant-ui/tsbuildutils": "0.0.1",
92
+ "@assistant-ui/tsconfig": "0.0.0"
93
93
  },
94
94
  "publishConfig": {
95
95
  "access": "public",
@@ -1,20 +1,7 @@
1
- import type { StandardSchemaV1 } from "@standard-schema/spec";
2
1
  import { Tool } from "assistant-stream";
3
- import { JSONSchema7 } from "json-schema";
4
2
 
5
- export function tool<
6
- TArgs extends Record<string, unknown>,
7
- TResult = any,
8
- >(tool: {
9
- description?: string | undefined;
10
- parameters: StandardSchemaV1<TArgs> | JSONSchema7;
11
- execute?: (
12
- args: TArgs,
13
- context: {
14
- toolCallId: string;
15
- abortSignal: AbortSignal;
16
- },
17
- ) => TResult | Promise<TResult>;
18
- }): Tool<TArgs, TResult> {
3
+ export function tool<TArgs extends Record<string, unknown>, TResult = any>(
4
+ tool: Tool<TArgs, TResult>,
5
+ ): Tool<TArgs, TResult> {
19
6
  return tool;
20
7
  }
@@ -11,7 +11,6 @@ import type { Tool } from "assistant-stream";
11
11
  export type AssistantToolProps<TArgs, TResult> = Tool<TArgs, TResult> & {
12
12
  toolName: string;
13
13
  render?: ToolCallContentPartComponent<TArgs, TResult> | undefined;
14
- disabled?: boolean | undefined;
15
14
  };
16
15
 
17
16
  export const useAssistantTool = <TArgs, TResult>(
@@ -27,9 +26,7 @@ export const useAssistantTool = <TArgs, TResult>(
27
26
  }, [toolUIsStore, tool.toolName, tool.render]);
28
27
 
29
28
  useEffect(() => {
30
- const { toolName, render, disabled, ...rest } = tool;
31
- if (disabled) return;
32
-
29
+ const { toolName, render, ...rest } = tool;
33
30
  const context = {
34
31
  tools: {
35
32
  [toolName]: rest,