@assistant-ui/react 0.14.18 → 0.14.19

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 (335) hide show
  1. package/dist/client/ExternalThread.d.ts +3 -2
  2. package/dist/client/ExternalThread.d.ts.map +1 -1
  3. package/dist/client/ExternalThread.js +721 -256
  4. package/dist/client/ExternalThread.js.map +1 -1
  5. package/dist/client/InMemoryThreadList.d.ts.map +1 -1
  6. package/dist/client/InMemoryThreadList.js +292 -108
  7. package/dist/client/InMemoryThreadList.js.map +1 -1
  8. package/dist/client/SingleThreadList.js +139 -53
  9. package/dist/client/SingleThreadList.js.map +1 -1
  10. package/dist/context/ReadonlyStore.js.map +1 -1
  11. package/dist/context/providers/MessageProvider.js +38 -5
  12. package/dist/context/providers/MessageProvider.js.map +1 -1
  13. package/dist/context/providers/ThreadViewportProvider.js +76 -20
  14. package/dist/context/providers/ThreadViewportProvider.js.map +1 -1
  15. package/dist/context/react/ThreadViewportContext.js.map +1 -1
  16. package/dist/context/react/utils/createContextHook.js.map +1 -1
  17. package/dist/context/react/utils/createContextStoreHook.js +17 -2
  18. package/dist/context/react/utils/createContextStoreHook.js.map +1 -1
  19. package/dist/context/react/utils/createStateHookForRuntime.js.map +1 -1
  20. package/dist/context/react/utils/ensureBinding.js.map +1 -1
  21. package/dist/context/react/utils/useRuntimeState.js +18 -2
  22. package/dist/context/react/utils/useRuntimeState.js.map +1 -1
  23. package/dist/context/stores/ThreadViewport.js.map +1 -1
  24. package/dist/devtools/DevToolsHooks.js.map +1 -1
  25. package/dist/hooks/useMessageQuote.js.map +1 -1
  26. package/dist/hooks/useMessageTiming.js +4 -1
  27. package/dist/hooks/useMessageTiming.js.map +1 -1
  28. package/dist/hooks/useToolCallElapsed.d.ts +23 -0
  29. package/dist/hooks/useToolCallElapsed.d.ts.map +1 -0
  30. package/dist/hooks/useToolCallElapsed.js +72 -0
  31. package/dist/hooks/useToolCallElapsed.js.map +1 -0
  32. package/dist/index.d.ts +4 -2
  33. package/dist/index.js +3 -1
  34. package/dist/internal.js.map +1 -1
  35. package/dist/legacy-runtime/AssistantRuntimeProvider.js +46 -10
  36. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
  37. package/dist/legacy-runtime/cloud/auiV0.js.map +1 -1
  38. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js +27 -6
  39. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js.map +1 -1
  40. package/dist/legacy-runtime/hooks/AssistantContext.js +13 -2
  41. package/dist/legacy-runtime/hooks/AssistantContext.js.map +1 -1
  42. package/dist/legacy-runtime/hooks/AttachmentContext.js +9 -1
  43. package/dist/legacy-runtime/hooks/AttachmentContext.js.map +1 -1
  44. package/dist/legacy-runtime/hooks/ComposerContext.js +9 -1
  45. package/dist/legacy-runtime/hooks/ComposerContext.js.map +1 -1
  46. package/dist/legacy-runtime/hooks/MessageContext.js +12 -2
  47. package/dist/legacy-runtime/hooks/MessageContext.js.map +1 -1
  48. package/dist/legacy-runtime/hooks/MessagePartContext.js +9 -1
  49. package/dist/legacy-runtime/hooks/MessagePartContext.js.map +1 -1
  50. package/dist/legacy-runtime/hooks/ThreadContext.js +33 -5
  51. package/dist/legacy-runtime/hooks/ThreadContext.js.map +1 -1
  52. package/dist/legacy-runtime/hooks/ThreadListItemContext.js +9 -1
  53. package/dist/legacy-runtime/hooks/ThreadListItemContext.js.map +1 -1
  54. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.js +3 -3
  55. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.js.map +1 -1
  56. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.js +71 -31
  57. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.js.map +1 -1
  58. package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.js.map +1 -1
  59. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +24 -16
  60. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  61. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.js +17 -12
  62. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.js.map +1 -1
  63. package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.js +17 -3
  64. package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.js.map +1 -1
  65. package/dist/mcp-apps/McpAppRenderer.js +6 -6
  66. package/dist/mcp-apps/McpAppRenderer.js.map +1 -1
  67. package/dist/mcp-apps/McpAppsRemoteHost.js +3 -3
  68. package/dist/mcp-apps/McpAppsRemoteHost.js.map +1 -1
  69. package/dist/mcp-apps/app-frame.js +33 -14
  70. package/dist/mcp-apps/app-frame.js.map +1 -1
  71. package/dist/mcp-apps/bridge.js.map +1 -1
  72. package/dist/mcp-apps/types.js.map +1 -1
  73. package/dist/mcp-apps/utils.js.map +1 -1
  74. package/dist/model-context/frame/useAssistantFrameHost.js +32 -14
  75. package/dist/model-context/frame/useAssistantFrameHost.js.map +1 -1
  76. package/dist/model-context/makeAssistantVisible.js +64 -26
  77. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  78. package/dist/primitives/actionBar/ActionBarCopy.js +94 -20
  79. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  80. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  81. package/dist/primitives/actionBar/ActionBarExportMarkdown.js +105 -37
  82. package/dist/primitives/actionBar/ActionBarExportMarkdown.js.map +1 -1
  83. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +60 -11
  84. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  85. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +60 -11
  86. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  87. package/dist/primitives/actionBar/ActionBarInteractionContext.js +3 -1
  88. package/dist/primitives/actionBar/ActionBarInteractionContext.js.map +1 -1
  89. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  90. package/dist/primitives/actionBar/ActionBarRoot.js +84 -25
  91. package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -1
  92. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
  93. package/dist/primitives/actionBar/ActionBarStopSpeaking.js +45 -14
  94. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
  95. package/dist/primitives/actionBar/useActionBarFloatStatus.js +22 -10
  96. package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
  97. package/dist/primitives/actionBar.js.map +1 -1
  98. package/dist/primitives/actionBarMore/ActionBarMoreContent.js +44 -7
  99. package/dist/primitives/actionBarMore/ActionBarMoreContent.js.map +1 -1
  100. package/dist/primitives/actionBarMore/ActionBarMoreItem.js +28 -6
  101. package/dist/primitives/actionBarMore/ActionBarMoreItem.js.map +1 -1
  102. package/dist/primitives/actionBarMore/ActionBarMoreRoot.js +103 -36
  103. package/dist/primitives/actionBarMore/ActionBarMoreRoot.js.map +1 -1
  104. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js +28 -6
  105. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js.map +1 -1
  106. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js +28 -6
  107. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js.map +1 -1
  108. package/dist/primitives/actionBarMore/scope.js.map +1 -1
  109. package/dist/primitives/actionBarMore.js.map +1 -1
  110. package/dist/primitives/assistantModal/AssistantModalAnchor.js +27 -6
  111. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
  112. package/dist/primitives/assistantModal/AssistantModalContent.js +71 -10
  113. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  114. package/dist/primitives/assistantModal/AssistantModalRoot.js +93 -26
  115. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  116. package/dist/primitives/assistantModal/AssistantModalTrigger.js +27 -6
  117. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  118. package/dist/primitives/assistantModal/scope.js.map +1 -1
  119. package/dist/primitives/assistantModal.js.map +1 -1
  120. package/dist/primitives/attachment/AttachmentName.js +13 -1
  121. package/dist/primitives/attachment/AttachmentName.js.map +1 -1
  122. package/dist/primitives/attachment/AttachmentRemove.js +11 -4
  123. package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
  124. package/dist/primitives/attachment/AttachmentRoot.js +13 -4
  125. package/dist/primitives/attachment/AttachmentRoot.js.map +1 -1
  126. package/dist/primitives/attachment/AttachmentThumb.js +20 -9
  127. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
  128. package/dist/primitives/attachment.js.map +1 -1
  129. package/dist/primitives/branchPicker/BranchPickerCount.js +14 -2
  130. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
  131. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  132. package/dist/primitives/branchPicker/BranchPickerNumber.js +14 -2
  133. package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
  134. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  135. package/dist/primitives/branchPicker/BranchPickerRoot.js +34 -6
  136. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  137. package/dist/primitives/branchPicker.js.map +1 -1
  138. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js +16 -5
  139. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js.map +1 -1
  140. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js +13 -4
  141. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js.map +1 -1
  142. package/dist/primitives/chainOfThought.js.map +1 -1
  143. package/dist/primitives/composer/ComposerAddAttachment.js +37 -24
  144. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  145. package/dist/primitives/composer/ComposerAttachmentDropzone.js +124 -49
  146. package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
  147. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  148. package/dist/primitives/composer/ComposerDictate.js.map +1 -1
  149. package/dist/primitives/composer/ComposerDictationTranscript.js +32 -7
  150. package/dist/primitives/composer/ComposerDictationTranscript.js.map +1 -1
  151. package/dist/primitives/composer/ComposerInput.js +26 -26
  152. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  153. package/dist/primitives/composer/ComposerInputPluginContext.js +71 -25
  154. package/dist/primitives/composer/ComposerInputPluginContext.js.map +1 -1
  155. package/dist/primitives/composer/ComposerQuote.js +92 -23
  156. package/dist/primitives/composer/ComposerQuote.js.map +1 -1
  157. package/dist/primitives/composer/ComposerRoot.js +45 -11
  158. package/dist/primitives/composer/ComposerRoot.js.map +1 -1
  159. package/dist/primitives/composer/ComposerSend.js +9 -2
  160. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  161. package/dist/primitives/composer/ComposerStopDictation.js +15 -5
  162. package/dist/primitives/composer/ComposerStopDictation.js.map +1 -1
  163. package/dist/primitives/composer/trigger/TriggerPopover.d.ts.map +1 -1
  164. package/dist/primitives/composer/trigger/TriggerPopover.js +215 -75
  165. package/dist/primitives/composer/trigger/TriggerPopover.js.map +1 -1
  166. package/dist/primitives/composer/trigger/TriggerPopoverAction.js.map +1 -1
  167. package/dist/primitives/composer/trigger/TriggerPopoverBack.js +35 -7
  168. package/dist/primitives/composer/trigger/TriggerPopoverBack.js.map +1 -1
  169. package/dist/primitives/composer/trigger/TriggerPopoverCategories.js +134 -28
  170. package/dist/primitives/composer/trigger/TriggerPopoverCategories.js.map +1 -1
  171. package/dist/primitives/composer/trigger/TriggerPopoverDirective.js.map +1 -1
  172. package/dist/primitives/composer/trigger/TriggerPopoverItems.js +132 -28
  173. package/dist/primitives/composer/trigger/TriggerPopoverItems.js.map +1 -1
  174. package/dist/primitives/composer/trigger/TriggerPopoverResource.js +124 -52
  175. package/dist/primitives/composer/trigger/TriggerPopoverResource.js.map +1 -1
  176. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js +181 -78
  177. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js.map +1 -1
  178. package/dist/primitives/composer/trigger/detectTrigger.js.map +1 -1
  179. package/dist/primitives/composer/trigger/index.js.map +1 -1
  180. package/dist/primitives/composer/trigger/triggerDetectionResource.js +28 -14
  181. package/dist/primitives/composer/trigger/triggerDetectionResource.js.map +1 -1
  182. package/dist/primitives/composer/trigger/triggerKeyboardResource.js +115 -58
  183. package/dist/primitives/composer/trigger/triggerKeyboardResource.js.map +1 -1
  184. package/dist/primitives/composer/trigger/triggerNavigationResource.js +202 -70
  185. package/dist/primitives/composer/trigger/triggerNavigationResource.js.map +1 -1
  186. package/dist/primitives/composer/trigger/triggerSelectionResource.js +49 -13
  187. package/dist/primitives/composer/trigger/triggerSelectionResource.js.map +1 -1
  188. package/dist/primitives/composer.js.map +1 -1
  189. package/dist/primitives/dropdownMenuRenderPrimitives.js.map +1 -1
  190. package/dist/primitives/error/ErrorMessage.js +28 -6
  191. package/dist/primitives/error/ErrorMessage.js.map +1 -1
  192. package/dist/primitives/error/ErrorRoot.js +14 -5
  193. package/dist/primitives/error/ErrorRoot.js.map +1 -1
  194. package/dist/primitives/error.js.map +1 -1
  195. package/dist/primitives/message/MessageError.js +2 -1
  196. package/dist/primitives/message/MessageError.js.map +1 -1
  197. package/dist/primitives/message/MessageIf.js +50 -20
  198. package/dist/primitives/message/MessageIf.js.map +1 -1
  199. package/dist/primitives/message/MessageParts.js +41 -7
  200. package/dist/primitives/message/MessageParts.js.map +1 -1
  201. package/dist/primitives/message/MessagePartsGrouped.js +399 -94
  202. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  203. package/dist/primitives/message/MessageRoot.js +197 -65
  204. package/dist/primitives/message/MessageRoot.js.map +1 -1
  205. package/dist/primitives/message.js.map +1 -1
  206. package/dist/primitives/messagePart/MessagePartImage.js +15 -5
  207. package/dist/primitives/messagePart/MessagePartImage.js.map +1 -1
  208. package/dist/primitives/messagePart/MessagePartText.js +35 -7
  209. package/dist/primitives/messagePart/MessagePartText.js.map +1 -1
  210. package/dist/primitives/messagePart/useMessagePartData.js +5 -4
  211. package/dist/primitives/messagePart/useMessagePartData.js.map +1 -1
  212. package/dist/primitives/messagePart/useMessagePartFile.js +5 -4
  213. package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -1
  214. package/dist/primitives/messagePart/useMessagePartImage.js +5 -4
  215. package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -1
  216. package/dist/primitives/messagePart/useMessagePartReasoning.js +5 -4
  217. package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -1
  218. package/dist/primitives/messagePart/useMessagePartSource.js +5 -4
  219. package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -1
  220. package/dist/primitives/messagePart/useMessagePartText.js +5 -4
  221. package/dist/primitives/messagePart/useMessagePartText.js.map +1 -1
  222. package/dist/primitives/messagePart.js.map +1 -1
  223. package/dist/primitives/queueItem/QueueItemRemove.js +11 -4
  224. package/dist/primitives/queueItem/QueueItemRemove.js.map +1 -1
  225. package/dist/primitives/queueItem/QueueItemSteer.js +11 -4
  226. package/dist/primitives/queueItem/QueueItemSteer.js.map +1 -1
  227. package/dist/primitives/queueItem/QueueItemText.js +20 -6
  228. package/dist/primitives/queueItem/QueueItemText.js.map +1 -1
  229. package/dist/primitives/queueItem.js.map +1 -1
  230. package/dist/primitives/reasoning/useScrollLock.js +61 -43
  231. package/dist/primitives/reasoning/useScrollLock.js.map +1 -1
  232. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js +56 -16
  233. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js.map +1 -1
  234. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js +120 -59
  235. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js.map +1 -1
  236. package/dist/primitives/selectionToolbar.js.map +1 -1
  237. package/dist/primitives/suggestion/SuggestionDescription.js +20 -6
  238. package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -1
  239. package/dist/primitives/suggestion/SuggestionTitle.js +20 -6
  240. package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -1
  241. package/dist/primitives/suggestion/SuggestionTrigger.js +39 -26
  242. package/dist/primitives/suggestion/SuggestionTrigger.js.map +1 -1
  243. package/dist/primitives/suggestion.js.map +1 -1
  244. package/dist/primitives/thread/ThreadEmpty.js +6 -2
  245. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  246. package/dist/primitives/thread/ThreadIf.js +32 -10
  247. package/dist/primitives/thread/ThreadIf.js.map +1 -1
  248. package/dist/primitives/thread/ThreadRoot.js +13 -4
  249. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  250. package/dist/primitives/thread/ThreadScrollToBottom.js +24 -6
  251. package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -1
  252. package/dist/primitives/thread/ThreadSuggestion.js +18 -6
  253. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  254. package/dist/primitives/thread/ThreadViewport.js +185 -47
  255. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  256. package/dist/primitives/thread/ThreadViewportFooter.js +22 -9
  257. package/dist/primitives/thread/ThreadViewportFooter.js.map +1 -1
  258. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.js.map +1 -1
  259. package/dist/primitives/thread/topAnchor/createReserveObservers.js.map +1 -1
  260. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js.map +1 -1
  261. package/dist/primitives/thread/topAnchor/topAnchorTurn.js.map +1 -1
  262. package/dist/primitives/thread/topAnchor/topAnchorUtils.js.map +1 -1
  263. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.js +19 -4
  264. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.js.map +1 -1
  265. package/dist/primitives/thread/useThreadViewportAutoScroll.js +16 -16
  266. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  267. package/dist/primitives/thread.js.map +1 -1
  268. package/dist/primitives/threadList/ThreadListLoadMore.js.map +1 -1
  269. package/dist/primitives/threadList/ThreadListNew.js +53 -11
  270. package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
  271. package/dist/primitives/threadList/ThreadListRoot.js +13 -4
  272. package/dist/primitives/threadList/ThreadListRoot.js.map +1 -1
  273. package/dist/primitives/threadList.js.map +1 -1
  274. package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -1
  275. package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -1
  276. package/dist/primitives/threadListItem/ThreadListItemRoot.js +26 -7
  277. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
  278. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
  279. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -1
  280. package/dist/primitives/threadListItem.js.map +1 -1
  281. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js +44 -7
  282. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js.map +1 -1
  283. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js +28 -6
  284. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js.map +1 -1
  285. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js +25 -5
  286. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js.map +1 -1
  287. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js +28 -6
  288. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js.map +1 -1
  289. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js +28 -6
  290. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js.map +1 -1
  291. package/dist/primitives/threadListItemMore/scope.js.map +1 -1
  292. package/dist/primitives/threadListItemMore.js.map +1 -1
  293. package/dist/sandbox-host/SandboxHost.js.map +1 -1
  294. package/dist/tests/remote-thread-list-test-helpers.js.map +1 -1
  295. package/dist/tests/setup.js.map +1 -1
  296. package/dist/unstable/useComposerInputHistory.js.map +1 -1
  297. package/dist/unstable/useMentionAdapter.js.map +1 -1
  298. package/dist/unstable/useMessageStallDetection.d.ts +29 -0
  299. package/dist/unstable/useMessageStallDetection.d.ts.map +1 -0
  300. package/dist/unstable/useMessageStallDetection.js +69 -0
  301. package/dist/unstable/useMessageStallDetection.js.map +1 -0
  302. package/dist/unstable/useSlashCommandAdapter.js.map +1 -1
  303. package/dist/utils/Primitive.js +57 -12
  304. package/dist/utils/Primitive.js.map +1 -1
  305. package/dist/utils/createActionButton.js +23 -7
  306. package/dist/utils/createActionButton.js.map +1 -1
  307. package/dist/utils/getSelectionMessageId.js.map +1 -1
  308. package/dist/utils/hooks/useManagedRef.js +16 -8
  309. package/dist/utils/hooks/useManagedRef.js.map +1 -1
  310. package/dist/utils/hooks/useMediaQuery.js +25 -10
  311. package/dist/utils/hooks/useMediaQuery.js.map +1 -1
  312. package/dist/utils/hooks/useOnResizeContent.js +29 -19
  313. package/dist/utils/hooks/useOnResizeContent.js.map +1 -1
  314. package/dist/utils/hooks/useOnScrollToBottom.js +20 -4
  315. package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -1
  316. package/dist/utils/hooks/useSizeHandle.js +23 -15
  317. package/dist/utils/hooks/useSizeHandle.js.map +1 -1
  318. package/dist/utils/json/is-json-equal.js.map +1 -1
  319. package/dist/utils/json/is-json.js.map +1 -1
  320. package/dist/utils/smooth/SmoothContext.js +41 -11
  321. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  322. package/dist/utils/smooth/useSmooth.js +5 -5
  323. package/dist/utils/smooth/useSmooth.js.map +1 -1
  324. package/dist/utils/useToolArgsFieldStatus.d.ts +2 -2
  325. package/dist/utils/useToolArgsFieldStatus.d.ts.map +1 -1
  326. package/dist/utils/useToolArgsFieldStatus.js +13 -5
  327. package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
  328. package/package.json +6 -6
  329. package/src/client/ExternalThread.ts +81 -52
  330. package/src/client/InMemoryThreadList.ts +12 -14
  331. package/src/hooks/useToolCallElapsed.ts +52 -0
  332. package/src/index.ts +11 -0
  333. package/src/primitives/composer/trigger/TriggerPopover.tsx +4 -5
  334. package/src/tests/toolCallTiming.test.tsx +221 -0
  335. package/src/unstable/useMessageStallDetection.ts +91 -0
@@ -5,7 +5,8 @@ import { MessagePartPrimitiveText } from "../messagePart/MessagePartText.js";
5
5
  import { MessagePartPrimitiveImage } from "../messagePart/MessagePartImage.js";
6
6
  import { MessagePartPrimitiveInProgress } from "../messagePart/MessagePartInProgress.js";
7
7
  import { useAui, useAuiState } from "@assistant-ui/store";
8
- import { memo, useMemo } from "@assistant-ui/tap/react-shim";
8
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
9
+ import { memo } from "@assistant-ui/tap/react-shim";
9
10
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
11
  //#region src/primitives/message/MessagePartsGrouped.tsx
11
12
  /**
@@ -32,29 +33,99 @@ const groupMessagePartsByParentId = (parts) => {
32
33
  return groups;
33
34
  };
34
35
  const useMessagePartsGrouped = (groupingFunction) => {
35
- const parts = useAuiState((s) => s.message.parts);
36
- return useMemo(() => {
37
- if (parts.length === 0) return [];
38
- return groupingFunction(parts);
39
- }, [parts, groupingFunction]);
36
+ const $ = c(4);
37
+ const parts = useAuiState(_temp);
38
+ let t0;
39
+ bb0: {
40
+ if (parts.length === 0) {
41
+ let t1;
42
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
43
+ t1 = [];
44
+ $[0] = t1;
45
+ } else t1 = $[0];
46
+ t0 = t1;
47
+ break bb0;
48
+ }
49
+ let t1;
50
+ if ($[1] !== groupingFunction || $[2] !== parts) {
51
+ t1 = groupingFunction(parts);
52
+ $[1] = groupingFunction;
53
+ $[2] = parts;
54
+ $[3] = t1;
55
+ } else t1 = $[3];
56
+ t0 = t1;
57
+ }
58
+ return t0;
40
59
  };
41
- const ToolUIDisplay = ({ Fallback, ...props }) => {
42
- const Render = useAuiState((s) => {
43
- const Render = s.tools.tools[props.toolName] ?? Fallback;
44
- if (Array.isArray(Render)) return Render[0] ?? Fallback;
45
- return Render;
46
- });
47
- if (!Render) return null;
48
- return /* @__PURE__ */ jsx(Render, { ...props });
60
+ const ToolUIDisplay = (t0) => {
61
+ const $ = c(9);
62
+ let Fallback;
63
+ let props;
64
+ if ($[0] !== t0) {
65
+ ({Fallback, ...props} = t0);
66
+ $[0] = t0;
67
+ $[1] = Fallback;
68
+ $[2] = props;
69
+ } else {
70
+ Fallback = $[1];
71
+ props = $[2];
72
+ }
73
+ let t1;
74
+ if ($[3] !== Fallback || $[4] !== props.toolName) {
75
+ t1 = (s) => {
76
+ const Render = s.tools.tools[props.toolName] ?? Fallback;
77
+ if (Array.isArray(Render)) return Render[0] ?? Fallback;
78
+ return Render;
79
+ };
80
+ $[3] = Fallback;
81
+ $[4] = props.toolName;
82
+ $[5] = t1;
83
+ } else t1 = $[5];
84
+ const Render_0 = useAuiState(t1);
85
+ if (!Render_0) return null;
86
+ let t2;
87
+ if ($[6] !== Render_0 || $[7] !== props) {
88
+ t2 = /* @__PURE__ */ jsx(Render_0, { ...props });
89
+ $[6] = Render_0;
90
+ $[7] = props;
91
+ $[8] = t2;
92
+ } else t2 = $[8];
93
+ return t2;
49
94
  };
50
- const DataUIDisplay = ({ Fallback, ...props }) => {
51
- const Render = useAuiState((s) => {
52
- const Render = s.dataRenderers.renderers[props.name] ?? Fallback;
53
- if (Array.isArray(Render)) return Render[0] ?? Fallback;
54
- return Render;
55
- });
56
- if (!Render) return null;
57
- return /* @__PURE__ */ jsx(Render, { ...props });
95
+ const DataUIDisplay = (t0) => {
96
+ const $ = c(9);
97
+ let Fallback;
98
+ let props;
99
+ if ($[0] !== t0) {
100
+ ({Fallback, ...props} = t0);
101
+ $[0] = t0;
102
+ $[1] = Fallback;
103
+ $[2] = props;
104
+ } else {
105
+ Fallback = $[1];
106
+ props = $[2];
107
+ }
108
+ let t1;
109
+ if ($[3] !== Fallback || $[4] !== props.name) {
110
+ t1 = (s) => {
111
+ const Render = s.dataRenderers.renderers[props.name] ?? Fallback;
112
+ if (Array.isArray(Render)) return Render[0] ?? Fallback;
113
+ return Render;
114
+ };
115
+ $[3] = Fallback;
116
+ $[4] = props.name;
117
+ $[5] = t1;
118
+ } else t1 = $[5];
119
+ const Render_0 = useAuiState(t1);
120
+ if (!Render_0) return null;
121
+ let t2;
122
+ if ($[6] !== Render_0 || $[7] !== props) {
123
+ t2 = /* @__PURE__ */ jsx(Render_0, { ...props });
124
+ $[6] = Render_0;
125
+ $[7] = props;
126
+ $[8] = t2;
127
+ } else t2 = $[8];
128
+ return t2;
58
129
  };
59
130
  const defaultComponents = {
60
131
  Text: () => /* @__PURE__ */ jsxs("p", {
@@ -71,75 +142,249 @@ const defaultComponents = {
71
142
  Unstable_Audio: () => null,
72
143
  Group: ({ children }) => children
73
144
  };
74
- const MessagePartComponent = ({ components: { Text = defaultComponents.Text, Reasoning = defaultComponents.Reasoning, Image = defaultComponents.Image, Source = defaultComponents.Source, File = defaultComponents.File, Unstable_Audio: Audio = defaultComponents.Unstable_Audio, tools = {}, data } = {} }) => {
145
+ const MessagePartComponent = (t0) => {
146
+ const $ = c(43);
147
+ const { components: t1 } = t0;
148
+ let t2;
149
+ if ($[0] !== t1) {
150
+ t2 = t1 === void 0 ? {} : t1;
151
+ $[0] = t1;
152
+ $[1] = t2;
153
+ } else t2 = $[1];
154
+ const { Text: t3, Reasoning: t4, Image: t5, Source: t6, File: t7, Unstable_Audio: t8, tools: t9, data } = t2;
155
+ const Text = t3 === void 0 ? defaultComponents.Text : t3;
156
+ const Reasoning = t4 === void 0 ? defaultComponents.Reasoning : t4;
157
+ const Image = t5 === void 0 ? defaultComponents.Image : t5;
158
+ const Source = t6 === void 0 ? defaultComponents.Source : t6;
159
+ const File = t7 === void 0 ? defaultComponents.File : t7;
160
+ const Audio = t8 === void 0 ? defaultComponents.Unstable_Audio : t8;
161
+ let t10;
162
+ if ($[2] !== t9) {
163
+ t10 = t9 === void 0 ? {} : t9;
164
+ $[2] = t9;
165
+ $[3] = t10;
166
+ } else t10 = $[3];
167
+ const tools = t10;
75
168
  const aui = useAui();
76
- const part = useAuiState((s) => s.part);
169
+ const part = useAuiState(_temp2);
77
170
  const type = part.type;
78
171
  if (type === "tool-call") {
79
- const addResult = aui.part().addToolResult;
80
- const resume = aui.part().resumeToolCall;
81
- const respondToApproval = aui.part().respondToToolApproval;
82
- if ("Override" in tools) return /* @__PURE__ */ jsx(tools.Override, {
83
- ...part,
84
- addResult,
85
- resume,
86
- respondToApproval
87
- });
172
+ let t11;
173
+ if ($[4] !== aui) {
174
+ t11 = aui.part();
175
+ $[4] = aui;
176
+ $[5] = t11;
177
+ } else t11 = $[5];
178
+ const addResult = t11.addToolResult;
179
+ let t12;
180
+ if ($[6] !== aui) {
181
+ t12 = aui.part();
182
+ $[6] = aui;
183
+ $[7] = t12;
184
+ } else t12 = $[7];
185
+ const resume = t12.resumeToolCall;
186
+ let t13;
187
+ if ($[8] !== aui) {
188
+ t13 = aui.part();
189
+ $[8] = aui;
190
+ $[9] = t13;
191
+ } else t13 = $[9];
192
+ const respondToApproval = t13.respondToToolApproval;
193
+ if ("Override" in tools) {
194
+ let t14;
195
+ if ($[10] !== addResult || $[11] !== part || $[12] !== respondToApproval || $[13] !== resume || $[14] !== tools.Override) {
196
+ t14 = /* @__PURE__ */ jsx(tools.Override, {
197
+ ...part,
198
+ addResult,
199
+ resume,
200
+ respondToApproval
201
+ });
202
+ $[10] = addResult;
203
+ $[11] = part;
204
+ $[12] = respondToApproval;
205
+ $[13] = resume;
206
+ $[14] = tools.Override;
207
+ $[15] = t14;
208
+ } else t14 = $[15];
209
+ return t14;
210
+ }
88
211
  const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;
89
- return /* @__PURE__ */ jsx(ToolUIDisplay, {
90
- ...part,
91
- Fallback: Tool,
92
- addResult,
93
- resume,
94
- respondToApproval
95
- });
212
+ let t14;
213
+ if ($[16] !== Tool || $[17] !== addResult || $[18] !== part || $[19] !== respondToApproval || $[20] !== resume) {
214
+ t14 = /* @__PURE__ */ jsx(ToolUIDisplay, {
215
+ ...part,
216
+ Fallback: Tool,
217
+ addResult,
218
+ resume,
219
+ respondToApproval
220
+ });
221
+ $[16] = Tool;
222
+ $[17] = addResult;
223
+ $[18] = part;
224
+ $[19] = respondToApproval;
225
+ $[20] = resume;
226
+ $[21] = t14;
227
+ } else t14 = $[21];
228
+ return t14;
96
229
  }
97
230
  if (part.status?.type === "requires-action") throw new Error("Encountered unexpected requires-action status");
98
231
  switch (type) {
99
- case "text": return /* @__PURE__ */ jsx(Text, { ...part });
100
- case "reasoning": return /* @__PURE__ */ jsx(Reasoning, { ...part });
101
- case "source": return /* @__PURE__ */ jsx(Source, { ...part });
102
- case "image": return /* @__PURE__ */ jsx(Image, { ...part });
103
- case "file": return /* @__PURE__ */ jsx(File, { ...part });
104
- case "audio": return /* @__PURE__ */ jsx(Audio, { ...part });
232
+ case "text": {
233
+ let t11;
234
+ if ($[22] !== Text || $[23] !== part) {
235
+ t11 = /* @__PURE__ */ jsx(Text, { ...part });
236
+ $[22] = Text;
237
+ $[23] = part;
238
+ $[24] = t11;
239
+ } else t11 = $[24];
240
+ return t11;
241
+ }
242
+ case "reasoning": {
243
+ let t11;
244
+ if ($[25] !== Reasoning || $[26] !== part) {
245
+ t11 = /* @__PURE__ */ jsx(Reasoning, { ...part });
246
+ $[25] = Reasoning;
247
+ $[26] = part;
248
+ $[27] = t11;
249
+ } else t11 = $[27];
250
+ return t11;
251
+ }
252
+ case "source": {
253
+ let t11;
254
+ if ($[28] !== Source || $[29] !== part) {
255
+ t11 = /* @__PURE__ */ jsx(Source, { ...part });
256
+ $[28] = Source;
257
+ $[29] = part;
258
+ $[30] = t11;
259
+ } else t11 = $[30];
260
+ return t11;
261
+ }
262
+ case "image": {
263
+ let t11;
264
+ if ($[31] !== Image || $[32] !== part) {
265
+ t11 = /* @__PURE__ */ jsx(Image, { ...part });
266
+ $[31] = Image;
267
+ $[32] = part;
268
+ $[33] = t11;
269
+ } else t11 = $[33];
270
+ return t11;
271
+ }
272
+ case "file": {
273
+ let t11;
274
+ if ($[34] !== File || $[35] !== part) {
275
+ t11 = /* @__PURE__ */ jsx(File, { ...part });
276
+ $[34] = File;
277
+ $[35] = part;
278
+ $[36] = t11;
279
+ } else t11 = $[36];
280
+ return t11;
281
+ }
282
+ case "audio": {
283
+ let t11;
284
+ if ($[37] !== Audio || $[38] !== part) {
285
+ t11 = /* @__PURE__ */ jsx(Audio, { ...part });
286
+ $[37] = Audio;
287
+ $[38] = part;
288
+ $[39] = t11;
289
+ } else t11 = $[39];
290
+ return t11;
291
+ }
105
292
  case "data": {
106
293
  const Data = data?.by_name?.[part.name] ?? data?.Fallback;
107
- return /* @__PURE__ */ jsx(DataUIDisplay, {
108
- ...part,
109
- Fallback: Data
110
- });
294
+ let t11;
295
+ if ($[40] !== Data || $[41] !== part) {
296
+ t11 = /* @__PURE__ */ jsx(DataUIDisplay, {
297
+ ...part,
298
+ Fallback: Data
299
+ });
300
+ $[40] = Data;
301
+ $[41] = part;
302
+ $[42] = t11;
303
+ } else t11 = $[42];
304
+ return t11;
111
305
  }
112
306
  default:
113
307
  console.warn(`Unknown message part type: ${type}`);
114
308
  return null;
115
309
  }
116
310
  };
117
- const MessagePartImpl = ({ partIndex, components }) => {
118
- return /* @__PURE__ */ jsx(PartByIndexProvider, {
119
- index: partIndex,
120
- children: /* @__PURE__ */ jsx(MessagePartComponent, { components })
121
- });
311
+ const MessagePartImpl = (t0) => {
312
+ const $ = c(5);
313
+ const { partIndex, components } = t0;
314
+ let t1;
315
+ if ($[0] !== components) {
316
+ t1 = /* @__PURE__ */ jsx(MessagePartComponent, { components });
317
+ $[0] = components;
318
+ $[1] = t1;
319
+ } else t1 = $[1];
320
+ let t2;
321
+ if ($[2] !== partIndex || $[3] !== t1) {
322
+ t2 = /* @__PURE__ */ jsx(PartByIndexProvider, {
323
+ index: partIndex,
324
+ children: t1
325
+ });
326
+ $[2] = partIndex;
327
+ $[3] = t1;
328
+ $[4] = t2;
329
+ } else t2 = $[4];
330
+ return t2;
122
331
  };
123
332
  const MessagePart = memo(MessagePartImpl, (prev, next) => prev.partIndex === next.partIndex && prev.components?.Text === next.components?.Text && prev.components?.Reasoning === next.components?.Reasoning && prev.components?.Source === next.components?.Source && prev.components?.Image === next.components?.Image && prev.components?.File === next.components?.File && prev.components?.Unstable_Audio === next.components?.Unstable_Audio && prev.components?.tools === next.components?.tools && prev.components?.data === next.components?.data && prev.components?.Group === next.components?.Group);
124
- const EmptyPartFallback = ({ status, component: Component }) => {
125
- return /* @__PURE__ */ jsx(TextMessagePartProvider, {
126
- text: "",
127
- isRunning: status.type === "running",
128
- children: /* @__PURE__ */ jsx(Component, {
333
+ const EmptyPartFallback = (t0) => {
334
+ const $ = c(6);
335
+ const { status, component: Component } = t0;
336
+ const t1 = status.type === "running";
337
+ let t2;
338
+ if ($[0] !== Component || $[1] !== status) {
339
+ t2 = /* @__PURE__ */ jsx(Component, {
129
340
  type: "text",
130
341
  text: "",
131
342
  status
132
- })
133
- });
343
+ });
344
+ $[0] = Component;
345
+ $[1] = status;
346
+ $[2] = t2;
347
+ } else t2 = $[2];
348
+ let t3;
349
+ if ($[3] !== t1 || $[4] !== t2) {
350
+ t3 = /* @__PURE__ */ jsx(TextMessagePartProvider, {
351
+ text: "",
352
+ isRunning: t1,
353
+ children: t2
354
+ });
355
+ $[3] = t1;
356
+ $[4] = t2;
357
+ $[5] = t3;
358
+ } else t3 = $[5];
359
+ return t3;
134
360
  };
135
361
  const COMPLETE_STATUS = Object.freeze({ type: "complete" });
136
- const EmptyPartsImpl = ({ components }) => {
137
- const status = useAuiState((s) => s.message.status ?? COMPLETE_STATUS);
138
- if (components?.Empty) return /* @__PURE__ */ jsx(components.Empty, { status });
139
- return /* @__PURE__ */ jsx(EmptyPartFallback, {
140
- status,
141
- component: components?.Text ?? defaultComponents.Text
142
- });
362
+ const EmptyPartsImpl = (t0) => {
363
+ const $ = c(6);
364
+ const { components } = t0;
365
+ const status = useAuiState(_temp3);
366
+ if (components?.Empty) {
367
+ let t1;
368
+ if ($[0] !== components.Empty || $[1] !== status) {
369
+ t1 = /* @__PURE__ */ jsx(components.Empty, { status });
370
+ $[0] = components.Empty;
371
+ $[1] = status;
372
+ $[2] = t1;
373
+ } else t1 = $[2];
374
+ return t1;
375
+ }
376
+ const t1 = components?.Text ?? defaultComponents.Text;
377
+ let t2;
378
+ if ($[3] !== status || $[4] !== t1) {
379
+ t2 = /* @__PURE__ */ jsx(EmptyPartFallback, {
380
+ status,
381
+ component: t1
382
+ });
383
+ $[3] = status;
384
+ $[4] = t1;
385
+ $[5] = t2;
386
+ } else t2 = $[5];
387
+ return t2;
143
388
  };
144
389
  const EmptyParts = memo(EmptyPartsImpl, (prev, next) => prev.components?.Empty === next.components?.Empty && prev.components?.Text === next.components?.Text);
145
390
  /**
@@ -175,26 +420,55 @@ const EmptyParts = memo(EmptyPartsImpl, (prev, next) => prev.components?.Empty =
175
420
  * />
176
421
  * ```
177
422
  */
178
- const MessagePrimitiveUnstable_PartsGrouped = ({ groupingFunction, components }) => {
179
- const contentLength = useAuiState((s) => s.message.parts.length);
423
+ const MessagePrimitiveUnstable_PartsGrouped = (t0) => {
424
+ const $ = c(9);
425
+ const { groupingFunction, components } = t0;
426
+ const contentLength = useAuiState(_temp4);
180
427
  const messageGroups = useMessagePartsGrouped(groupingFunction);
181
- return /* @__PURE__ */ jsx(Fragment, { children: useMemo(() => {
182
- if (contentLength === 0) return /* @__PURE__ */ jsx(EmptyParts, { components });
183
- return messageGroups.map((group, groupIndex) => {
184
- return /* @__PURE__ */ jsx(components?.Group ?? defaultComponents.Group, {
185
- groupKey: group.groupKey,
186
- indices: group.indices,
187
- children: group.indices.map((partIndex) => /* @__PURE__ */ jsx(MessagePart, {
188
- partIndex,
189
- components
190
- }, partIndex))
191
- }, `group-${groupIndex}-${group.groupKey ?? "ungrouped"}`);
192
- });
193
- }, [
194
- messageGroups,
195
- components,
196
- contentLength
197
- ]) });
428
+ let t1;
429
+ bb0: {
430
+ if (contentLength === 0) {
431
+ let t2;
432
+ if ($[0] !== components) {
433
+ t2 = /* @__PURE__ */ jsx(EmptyParts, { components });
434
+ $[0] = components;
435
+ $[1] = t2;
436
+ } else t2 = $[1];
437
+ t1 = t2;
438
+ break bb0;
439
+ }
440
+ let t2;
441
+ if ($[2] !== components || $[3] !== messageGroups) {
442
+ let t3;
443
+ if ($[5] !== components) {
444
+ t3 = (group, groupIndex) => {
445
+ return /* @__PURE__ */ jsx(components?.Group ?? defaultComponents.Group, {
446
+ groupKey: group.groupKey,
447
+ indices: group.indices,
448
+ children: group.indices.map((partIndex) => /* @__PURE__ */ jsx(MessagePart, {
449
+ partIndex,
450
+ components
451
+ }, partIndex))
452
+ }, `group-${groupIndex}-${group.groupKey ?? "ungrouped"}`);
453
+ };
454
+ $[5] = components;
455
+ $[6] = t3;
456
+ } else t3 = $[6];
457
+ t2 = messageGroups.map(t3);
458
+ $[2] = components;
459
+ $[3] = messageGroups;
460
+ $[4] = t2;
461
+ } else t2 = $[4];
462
+ t1 = t2;
463
+ }
464
+ const partsElements = t1;
465
+ let t2;
466
+ if ($[7] !== partsElements) {
467
+ t2 = /* @__PURE__ */ jsx(Fragment, { children: partsElements });
468
+ $[7] = partsElements;
469
+ $[8] = t2;
470
+ } else t2 = $[8];
471
+ return t2;
198
472
  };
199
473
  MessagePrimitiveUnstable_PartsGrouped.displayName = "MessagePrimitive.Unstable_PartsGrouped";
200
474
  /**
@@ -203,14 +477,45 @@ MessagePrimitiveUnstable_PartsGrouped.displayName = "MessagePrimitive.Unstable_P
203
477
  *
204
478
  * @deprecated Use MessagePrimitive.Unstable_PartsGrouped instead for more flexibility
205
479
  */
206
- const MessagePrimitiveUnstable_PartsGroupedByParentId = ({ components, ...props }) => {
207
- return /* @__PURE__ */ jsx(MessagePrimitiveUnstable_PartsGrouped, {
208
- ...props,
209
- components,
210
- groupingFunction: groupMessagePartsByParentId
211
- });
480
+ const MessagePrimitiveUnstable_PartsGroupedByParentId = (t0) => {
481
+ const $ = c(6);
482
+ let components;
483
+ let props;
484
+ if ($[0] !== t0) {
485
+ ({components, ...props} = t0);
486
+ $[0] = t0;
487
+ $[1] = components;
488
+ $[2] = props;
489
+ } else {
490
+ components = $[1];
491
+ props = $[2];
492
+ }
493
+ let t1;
494
+ if ($[3] !== components || $[4] !== props) {
495
+ t1 = /* @__PURE__ */ jsx(MessagePrimitiveUnstable_PartsGrouped, {
496
+ ...props,
497
+ components,
498
+ groupingFunction: groupMessagePartsByParentId
499
+ });
500
+ $[3] = components;
501
+ $[4] = props;
502
+ $[5] = t1;
503
+ } else t1 = $[5];
504
+ return t1;
212
505
  };
213
506
  MessagePrimitiveUnstable_PartsGroupedByParentId.displayName = "MessagePrimitive.Unstable_PartsGroupedByParentId";
507
+ function _temp(s) {
508
+ return s.message.parts;
509
+ }
510
+ function _temp2(s) {
511
+ return s.part;
512
+ }
513
+ function _temp3(s) {
514
+ return s.message.status ?? COMPLETE_STATUS;
515
+ }
516
+ function _temp4(s) {
517
+ return s.message.parts.length;
518
+ }
214
519
  //#endregion
215
520
  export { MessagePrimitiveUnstable_PartsGrouped, MessagePrimitiveUnstable_PartsGroupedByParentId };
216
521