@assistant-ui/core 0.3.19 → 0.3.21

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 (934) hide show
  1. package/dist/adapters/attachment.d.ts +50 -43
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/attachment.js +52 -21
  4. package/dist/adapters/attachment.js.map +1 -1
  5. package/dist/adapters/directive-formatter.d.ts +2 -5
  6. package/dist/adapters/directive-formatter.d.ts.map +1 -1
  7. package/dist/adapters/feedback.d.ts +7 -8
  8. package/dist/adapters/feedback.d.ts.map +1 -1
  9. package/dist/adapters/index.d.ts +14 -9
  10. package/dist/adapters/index.d.ts.map +1 -0
  11. package/dist/adapters/index.js +1 -1
  12. package/dist/adapters/speech.d.ts +63 -65
  13. package/dist/adapters/speech.d.ts.map +1 -1
  14. package/dist/adapters/speech.js +16 -2
  15. package/dist/adapters/speech.js.map +1 -1
  16. package/dist/adapters/suggestion.d.ts +19 -22
  17. package/dist/adapters/suggestion.d.ts.map +1 -1
  18. package/dist/adapters/thread-history.d.ts +60 -58
  19. package/dist/adapters/thread-history.d.ts.map +1 -1
  20. package/dist/adapters/trigger.d.ts +8 -11
  21. package/dist/adapters/trigger.d.ts.map +1 -1
  22. package/dist/adapters/voice.d.ts +50 -45
  23. package/dist/adapters/voice.d.ts.map +1 -1
  24. package/dist/adapters/voice.js +17 -3
  25. package/dist/adapters/voice.js.map +1 -1
  26. package/dist/index.d.ts +70 -56
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +6 -6
  29. package/dist/index.js.map +1 -1
  30. package/dist/internal/duplicate-detection.d.ts +1 -4
  31. package/dist/internal/duplicate-detection.d.ts.map +1 -1
  32. package/dist/internal.d.ts +27 -58
  33. package/dist/internal.d.ts.map +1 -0
  34. package/dist/internal.js +8 -6
  35. package/dist/model-context/frame/host.d.ts +20 -23
  36. package/dist/model-context/frame/host.d.ts.map +1 -1
  37. package/dist/model-context/frame/host.js +3 -1
  38. package/dist/model-context/frame/host.js.map +1 -1
  39. package/dist/model-context/frame/provider.d.ts +28 -30
  40. package/dist/model-context/frame/provider.d.ts.map +1 -1
  41. package/dist/model-context/frame/provider.js +6 -0
  42. package/dist/model-context/frame/provider.js.map +1 -1
  43. package/dist/model-context/frame/types.d.ts +24 -27
  44. package/dist/model-context/frame/types.d.ts.map +1 -1
  45. package/dist/model-context/frame/validate.d.ts +3 -0
  46. package/dist/model-context/frame/validate.d.ts.map +1 -0
  47. package/dist/model-context/frame/validate.js +26 -0
  48. package/dist/model-context/frame/validate.js.map +1 -0
  49. package/dist/model-context/interactable-composer-metadata.d.ts +51 -39
  50. package/dist/model-context/interactable-composer-metadata.d.ts.map +1 -1
  51. package/dist/model-context/interactable-composer-metadata.js +30 -6
  52. package/dist/model-context/interactable-composer-metadata.js.map +1 -1
  53. package/dist/model-context/registry-handles.d.ts +9 -12
  54. package/dist/model-context/registry-handles.d.ts.map +1 -1
  55. package/dist/model-context/registry.d.ts +15 -18
  56. package/dist/model-context/registry.d.ts.map +1 -1
  57. package/dist/model-context/tool-call-text.d.ts +15 -17
  58. package/dist/model-context/tool-call-text.d.ts.map +1 -1
  59. package/dist/model-context/tool.d.ts +12 -14
  60. package/dist/model-context/tool.d.ts.map +1 -1
  61. package/dist/model-context/types.d.ts +40 -43
  62. package/dist/model-context/types.d.ts.map +1 -1
  63. package/dist/react/AssistantProvider.d.ts +9 -12
  64. package/dist/react/AssistantProvider.d.ts.map +1 -1
  65. package/dist/react/AssistantRuntimeProvider.d.ts +23 -26
  66. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  67. package/dist/react/RuntimeAdapter.d.ts +4 -8
  68. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  69. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +28 -23
  70. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  71. package/dist/react/adapters/LocalStorageThreadListAdapter.js +77 -58
  72. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  73. package/dist/react/adapters/TitleGenerationAdapter.d.ts +4 -7
  74. package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
  75. package/dist/react/client/AdaptedRemoteThread.d.ts +6 -9
  76. package/dist/react/client/AdaptedRemoteThread.d.ts.map +1 -1
  77. package/dist/react/client/DataRenderers.d.ts +2 -5
  78. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  79. package/dist/react/client/InMemoryThreadList.d.ts +9 -12
  80. package/dist/react/client/InMemoryThreadList.d.ts.map +1 -1
  81. package/dist/react/client/Interactables.d.ts +3 -6
  82. package/dist/react/client/Interactables.d.ts.map +1 -1
  83. package/dist/react/client/Interactables.js +306 -101
  84. package/dist/react/client/Interactables.js.map +1 -1
  85. package/dist/react/client/RemoteThreadList.d.ts +34 -37
  86. package/dist/react/client/RemoteThreadList.d.ts.map +1 -1
  87. package/dist/react/client/RemoteThreadList.js +2 -1
  88. package/dist/react/client/RemoteThreadList.js.map +1 -1
  89. package/dist/react/client/Tools.d.ts +10 -12
  90. package/dist/react/client/Tools.d.ts.map +1 -1
  91. package/dist/react/client/Tools.js +4 -8
  92. package/dist/react/client/Tools.js.map +1 -1
  93. package/dist/react/client/interactable-model-context.d.ts +9 -11
  94. package/dist/react/client/interactable-model-context.d.ts.map +1 -1
  95. package/dist/react/client/interactable-model-context.js +32 -22
  96. package/dist/react/client/interactable-model-context.js.map +1 -1
  97. package/dist/react/index.d.ts +160 -122
  98. package/dist/react/index.d.ts.map +1 -0
  99. package/dist/react/index.js +5 -5
  100. package/dist/react/interactables-legacy/Interactables.d.ts +2 -5
  101. package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
  102. package/dist/react/interactables-legacy/Interactables.js +15 -8
  103. package/dist/react/interactables-legacy/Interactables.js.map +1 -1
  104. package/dist/react/interactables-legacy/interactable-model-context.d.ts +6 -9
  105. package/dist/react/interactables-legacy/interactable-model-context.d.ts.map +1 -1
  106. package/dist/react/interactables-legacy/interactable-model-context.js +13 -14
  107. package/dist/react/interactables-legacy/interactable-model-context.js.map +1 -1
  108. package/dist/react/interactables-legacy/scopes.d.ts +42 -46
  109. package/dist/react/interactables-legacy/scopes.d.ts.map +1 -1
  110. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts +8 -11
  111. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts.map +1 -1
  112. package/dist/react/interactables-legacy/useInteractableState.d.ts +7 -9
  113. package/dist/react/interactables-legacy/useInteractableState.d.ts.map +1 -1
  114. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts +23 -14
  115. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts.map +1 -1
  116. package/dist/react/interactables-shared/useInteractablePersistenceQueue.js +54 -25
  117. package/dist/react/interactables-shared/useInteractablePersistenceQueue.js.map +1 -1
  118. package/dist/react/model-context/define-mcp-toolkit.d.ts +15 -18
  119. package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -1
  120. package/dist/react/model-context/define-toolkit.d.ts +13 -6
  121. package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
  122. package/dist/react/model-context/external-tool.d.ts +1 -4
  123. package/dist/react/model-context/external-tool.d.ts.map +1 -1
  124. package/dist/react/model-context/human-tool.d.ts +3 -6
  125. package/dist/react/model-context/human-tool.d.ts.map +1 -1
  126. package/dist/react/model-context/interactableTool.d.ts +26 -29
  127. package/dist/react/model-context/interactableTool.d.ts.map +1 -1
  128. package/dist/react/model-context/makeAssistantDataUI.d.ts +6 -9
  129. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
  130. package/dist/react/model-context/makeAssistantTool.d.ts +6 -9
  131. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  132. package/dist/react/model-context/makeAssistantToolUI.d.ts +6 -9
  133. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  134. package/dist/react/model-context/provider-tool.d.ts +5 -7
  135. package/dist/react/model-context/provider-tool.d.ts.map +1 -1
  136. package/dist/react/model-context/stub-tool.d.ts +1 -4
  137. package/dist/react/model-context/stub-tool.d.ts.map +1 -1
  138. package/dist/react/model-context/toolbox.d.ts +44 -32
  139. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  140. package/dist/react/model-context/useAssistantContext.d.ts +3 -6
  141. package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
  142. package/dist/react/model-context/useAssistantDataUI.d.ts +7 -10
  143. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
  144. package/dist/react/model-context/useAssistantInstructions.d.ts +3 -6
  145. package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
  146. package/dist/react/model-context/useAssistantTool.d.ts +9 -13
  147. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  148. package/dist/react/model-context/useAssistantToolUI.d.ts +13 -16
  149. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  150. package/dist/react/model-context/useAuiToolOverrides.d.ts +3 -5
  151. package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -1
  152. package/dist/react/model-context/useInlineRender.d.ts +3 -6
  153. package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
  154. package/dist/react/model-context/useInteractable.d.ts +40 -40
  155. package/dist/react/model-context/useInteractable.d.ts.map +1 -1
  156. package/dist/react/model-context/useInteractableState.d.ts +10 -9
  157. package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
  158. package/dist/react/model-context/useInteractableVersions.d.ts +4 -7
  159. package/dist/react/model-context/useInteractableVersions.d.ts.map +1 -1
  160. package/dist/react/model-context/useToolArgsStatus.d.ts +7 -9
  161. package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
  162. package/dist/react/primitive-hooks/useActionBarCopy.d.ts +7 -10
  163. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  164. package/dist/react/primitive-hooks/useActionBarEdit.d.ts +3 -6
  165. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
  166. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +6 -9
  167. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
  168. package/dist/react/primitive-hooks/useActionBarReload.d.ts +3 -6
  169. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
  170. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +3 -6
  171. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
  172. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +3 -6
  173. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
  174. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +3 -6
  175. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
  176. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +3 -6
  177. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
  178. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +4 -7
  179. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
  180. package/dist/react/primitive-hooks/useComposerCancel.d.ts +3 -6
  181. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
  182. package/dist/react/primitive-hooks/useComposerDictate.d.ts +3 -6
  183. package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
  184. package/dist/react/primitive-hooks/useComposerSend.d.ts +4 -7
  185. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  186. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +2 -5
  187. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
  188. package/dist/react/primitive-hooks/useEditComposerSend.d.ts +3 -6
  189. package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
  190. package/dist/react/primitive-hooks/useMessageBranching.d.ts +5 -8
  191. package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
  192. package/dist/react/primitive-hooks/useMessageError.d.ts +1 -4
  193. package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
  194. package/dist/react/primitive-hooks/useMessageReload.d.ts +3 -6
  195. package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
  196. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +7 -10
  197. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
  198. package/dist/react/primitive-hooks/useSuggestionTrigger.js +4 -4
  199. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
  200. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +1 -4
  201. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
  202. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +1 -4
  203. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
  204. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +2 -5
  205. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
  206. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +2 -5
  207. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
  208. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +2 -5
  209. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
  210. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +2 -5
  211. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
  212. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +3 -6
  213. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
  214. package/dist/react/primitive-hooks/useThreadListNew.d.ts +2 -5
  215. package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
  216. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts +1 -4
  217. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts.map +1 -1
  218. package/dist/react/primitive-hooks/useThreadMessages.d.ts +2 -5
  219. package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
  220. package/dist/react/primitive-hooks/useVoice.d.ts +8 -11
  221. package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
  222. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +27 -29
  223. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  224. package/dist/react/primitives/composer/ComposerAttachments.d.ts +26 -28
  225. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  226. package/dist/react/primitives/composer/ComposerIf.d.ts +13 -13
  227. package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
  228. package/dist/react/primitives/composer/ComposerQueue.d.ts +13 -17
  229. package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
  230. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +30 -33
  231. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -1
  232. package/dist/react/primitives/generativeUI/GenerativeUI.js +42 -33
  233. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  234. package/dist/react/primitives/message/MessageAttachments.d.ts +30 -28
  235. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
  236. package/dist/react/primitives/message/MessageAttachments.js +14 -15
  237. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  238. package/dist/react/primitives/message/MessageGroupedParts.d.ts +122 -120
  239. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  240. package/dist/react/primitives/message/MessageGroupedParts.js +3 -3
  241. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  242. package/dist/react/primitives/message/MessageParts.d.ts +208 -194
  243. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  244. package/dist/react/primitives/message/MessageParts.js +124 -82
  245. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  246. package/dist/react/primitives/message/MessageQuote.d.ts +8 -11
  247. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
  248. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +4 -7
  249. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  250. package/dist/react/primitives/part/PartMessages.d.ts +16 -19
  251. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  252. package/dist/react/primitives/thread/ThreadMessages.d.ts +61 -64
  253. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  254. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +25 -27
  255. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  256. package/dist/react/primitives/thread/ThreadSuggestions.js +24 -5
  257. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
  258. package/dist/react/primitives/threadList/ThreadListItems.d.ts +26 -28
  259. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  260. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +6 -9
  261. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  262. package/dist/react/providers/AttachmentByIndexProvider.d.ts +5 -8
  263. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  264. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +4 -7
  265. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  266. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +3 -6
  267. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  268. package/dist/react/providers/MessageByIdProvider.d.ts +3 -6
  269. package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
  270. package/dist/react/providers/MessageByIndexProvider.d.ts +3 -6
  271. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
  272. package/dist/react/providers/PartByIndexProvider.d.ts +3 -6
  273. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
  274. package/dist/react/providers/QueueItemByIndexProvider.d.ts +4 -7
  275. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
  276. package/dist/react/providers/ReadonlyThreadProvider.d.ts +7 -10
  277. package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
  278. package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
  279. package/dist/react/providers/SuggestionByIndexProvider.d.ts +4 -7
  280. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  281. package/dist/react/providers/TextMessagePartProvider.d.ts +4 -7
  282. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  283. package/dist/react/providers/TextMessagePartProvider.js +5 -1
  284. package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
  285. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +4 -7
  286. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
  287. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +4 -8
  288. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  289. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +210 -219
  290. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  291. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +70 -46
  292. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  293. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +186 -198
  294. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  295. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +13 -4
  296. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  297. package/dist/react/runtimes/RemoteThreadResource.d.ts +17 -23
  298. package/dist/react/runtimes/RemoteThreadResource.d.ts.map +1 -1
  299. package/dist/react/runtimes/RemoteThreadResource.js +3 -1
  300. package/dist/react/runtimes/RemoteThreadResource.js.map +1 -1
  301. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +10 -11
  302. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  303. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts +11 -14
  304. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts.map +1 -1
  305. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts +6 -8
  306. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts.map +1 -1
  307. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js +9 -2
  308. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js.map +1 -1
  309. package/dist/react/runtimes/assistant-transport/runManager.d.ts +9 -12
  310. package/dist/react/runtimes/assistant-transport/runManager.d.ts.map +1 -1
  311. package/dist/react/runtimes/assistant-transport/runManager.js +4 -1
  312. package/dist/react/runtimes/assistant-transport/runManager.js.map +1 -1
  313. package/dist/react/runtimes/assistant-transport/types.d.ts +123 -118
  314. package/dist/react/runtimes/assistant-transport/types.d.ts.map +1 -1
  315. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts +7 -10
  316. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  317. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js +17 -6
  318. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  319. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts +3 -6
  320. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts.map +1 -1
  321. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts +2 -5
  322. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts.map +1 -1
  323. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +7 -10
  324. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  325. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +426 -216
  326. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  327. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +15 -18
  328. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  329. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +8 -4
  330. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  331. package/dist/react/runtimes/cloud/auiV0.d.ts +146 -125
  332. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  333. package/dist/react/runtimes/cloud/auiV0.js +120 -8
  334. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  335. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts +13 -15
  336. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts.map +1 -1
  337. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts +5 -7
  338. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts.map +1 -1
  339. package/dist/react/runtimes/cloud/sdkIdentity.d.ts +2 -5
  340. package/dist/react/runtimes/cloud/sdkIdentity.d.ts.map +1 -1
  341. package/dist/react/runtimes/cloud/sdkIdentity.js +1 -1
  342. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +3 -6
  343. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  344. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts +9 -11
  345. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  346. package/dist/react/runtimes/createMessageConverter.d.ts +15 -19
  347. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  348. package/dist/react/runtimes/createMessageConverter.js.map +1 -1
  349. package/dist/react/runtimes/createRuntimeExtras.d.ts +14 -17
  350. package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
  351. package/dist/react/runtimes/external-message-converter.d.ts +17 -21
  352. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  353. package/dist/react/runtimes/external-store-history-copy.d.ts +25 -0
  354. package/dist/react/runtimes/external-store-history-copy.d.ts.map +1 -0
  355. package/dist/react/runtimes/external-store-history-copy.js +148 -0
  356. package/dist/react/runtimes/external-store-history-copy.js.map +1 -0
  357. package/dist/react/runtimes/useExternalStoreRuntime.d.ts +3 -6
  358. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
  359. package/dist/react/runtimes/useExternalStoreRuntime.js +72 -35
  360. package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
  361. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +2 -5
  362. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
  363. package/dist/react/runtimes/useLocalRuntime.d.ts +29 -41
  364. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  365. package/dist/react/runtimes/useLocalRuntime.js +142 -34
  366. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  367. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +3 -6
  368. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  369. package/dist/react/runtimes/useRemoteThreadListRuntime.js +2 -2
  370. package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
  371. package/dist/react/runtimes/useRuntimeAdapters.d.ts +5 -7
  372. package/dist/react/runtimes/useRuntimeAdapters.d.ts.map +1 -1
  373. package/dist/react/runtimes/useStreamingTiming.d.ts +4 -6
  374. package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
  375. package/dist/react/types/MessagePartComponentTypes.d.ts +72 -70
  376. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  377. package/dist/react/types/scopes/dataRenderers.d.ts +11 -15
  378. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
  379. package/dist/react/types/scopes/interactables.d.ts +60 -60
  380. package/dist/react/types/scopes/interactables.d.ts.map +1 -1
  381. package/dist/react/types/scopes/tools.d.ts +21 -24
  382. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  383. package/dist/react/types/store-augmentation.d.ts +10 -11
  384. package/dist/react/types/store-augmentation.d.ts.map +1 -1
  385. package/dist/react/utils/getMessageQuote.d.ts +6 -8
  386. package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
  387. package/dist/react/utils/groupParts.d.ts +35 -37
  388. package/dist/react/utils/groupParts.d.ts.map +1 -1
  389. package/dist/react/utils/useJSONEqual.d.ts +3 -6
  390. package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
  391. package/dist/react/utils/useJSONSchemaDependency.d.ts +3 -6
  392. package/dist/react/utils/useJSONSchemaDependency.d.ts.map +1 -1
  393. package/dist/runtime/api/assistant-runtime.d.ts +28 -31
  394. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  395. package/dist/runtime/api/attachment-runtime.d.ts +51 -49
  396. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  397. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  398. package/dist/runtime/api/bindings.d.ts +35 -35
  399. package/dist/runtime/api/bindings.d.ts.map +1 -1
  400. package/dist/runtime/api/composer-runtime.d.ts +215 -201
  401. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  402. package/dist/runtime/api/composer-runtime.js +4 -0
  403. package/dist/runtime/api/composer-runtime.js.map +1 -1
  404. package/dist/runtime/api/message-part-runtime.d.ts +31 -30
  405. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  406. package/dist/runtime/api/message-part-runtime.js +25 -2
  407. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  408. package/dist/runtime/api/message-runtime.d.ts +87 -82
  409. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  410. package/dist/runtime/api/message-runtime.js +4 -3
  411. package/dist/runtime/api/message-runtime.js.map +1 -1
  412. package/dist/runtime/api/paths.d.ts +54 -57
  413. package/dist/runtime/api/paths.d.ts.map +1 -1
  414. package/dist/runtime/api/thread-list-item-runtime.d.ts +70 -72
  415. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  416. package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
  417. package/dist/runtime/api/thread-list-runtime.d.ts +77 -81
  418. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  419. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  420. package/dist/runtime/api/thread-runtime.d.ts +306 -308
  421. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  422. package/dist/runtime/api/thread-runtime.js +2 -1
  423. package/dist/runtime/api/thread-runtime.js.map +1 -1
  424. package/dist/runtime/base/base-assistant-runtime-core.d.ts +9 -12
  425. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  426. package/dist/runtime/base/base-composer-runtime-core.d.ts +150 -101
  427. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  428. package/dist/runtime/base/base-composer-runtime-core.js +400 -122
  429. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  430. package/dist/runtime/base/base-thread-runtime-core.d.ts +121 -104
  431. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  432. package/dist/runtime/base/base-thread-runtime-core.js +174 -62
  433. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  434. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +30 -31
  435. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  436. package/dist/runtime/base/default-edit-composer-runtime-core.js +21 -2
  437. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  438. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +28 -31
  439. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  440. package/dist/runtime/base/default-thread-composer-runtime-core.js +23 -2
  441. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  442. package/dist/runtime/branch/external-thread-branch-adapter.d.ts +15 -18
  443. package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
  444. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +8 -11
  445. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  446. package/dist/runtime/interfaces/composer-runtime-core.d.ts +98 -83
  447. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  448. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +67 -70
  449. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  450. package/dist/runtime/interfaces/thread-runtime-core.d.ts +225 -211
  451. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  452. package/dist/runtime/internal.d.ts +25 -20
  453. package/dist/runtime/internal.d.ts.map +1 -0
  454. package/dist/runtime/queue/external-thread-queue-adapter.d.ts +37 -40
  455. package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
  456. package/dist/runtime/queue/message-queue.d.ts +32 -33
  457. package/dist/runtime/queue/message-queue.d.ts.map +1 -1
  458. package/dist/runtime/queue/message-queue.js +10 -2
  459. package/dist/runtime/queue/message-queue.js.map +1 -1
  460. package/dist/runtime/queue/queue-item.d.ts +7 -10
  461. package/dist/runtime/queue/queue-item.d.ts.map +1 -1
  462. package/dist/runtime/utils/abortable-thread-load.d.ts +9 -11
  463. package/dist/runtime/utils/abortable-thread-load.d.ts.map +1 -1
  464. package/dist/runtime/utils/attachment-add-operations.d.ts +16 -15
  465. package/dist/runtime/utils/attachment-add-operations.d.ts.map +1 -1
  466. package/dist/runtime/utils/attachment-add-operations.js +24 -2
  467. package/dist/runtime/utils/attachment-add-operations.js.map +1 -1
  468. package/dist/runtime/utils/attachment-send-operations.d.ts +12 -0
  469. package/dist/runtime/utils/attachment-send-operations.d.ts.map +1 -0
  470. package/dist/runtime/utils/attachment-send-operations.js +34 -0
  471. package/dist/runtime/utils/attachment-send-operations.js.map +1 -0
  472. package/dist/runtime/utils/auto-status.d.ts +11 -13
  473. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  474. package/dist/runtime/utils/auto-status.js +3 -5
  475. package/dist/runtime/utils/auto-status.js.map +1 -1
  476. package/dist/runtime/utils/chat-model-adapter.d.ts +31 -33
  477. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  478. package/dist/runtime/utils/external-message-conversion.d.ts +47 -48
  479. package/dist/runtime/utils/external-message-conversion.d.ts.map +1 -1
  480. package/dist/runtime/utils/external-message-conversion.js +6 -5
  481. package/dist/runtime/utils/external-message-conversion.js.map +1 -1
  482. package/dist/runtime/utils/external-store-message.d.ts +6 -9
  483. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  484. package/dist/runtime/utils/message-repository-session.d.ts +24 -27
  485. package/dist/runtime/utils/message-repository-session.d.ts.map +1 -1
  486. package/dist/runtime/utils/message-repository.d.ts +52 -54
  487. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  488. package/dist/runtime/utils/message-repository.js +8 -7
  489. package/dist/runtime/utils/message-repository.js.map +1 -1
  490. package/dist/runtime/utils/pending-tool-calls.d.ts +12 -14
  491. package/dist/runtime/utils/pending-tool-calls.d.ts.map +1 -1
  492. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +7 -10
  493. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
  494. package/dist/runtime/utils/runtime-extras-brand.d.ts +6 -9
  495. package/dist/runtime/utils/runtime-extras-brand.d.ts.map +1 -1
  496. package/dist/runtime/utils/stored-message-parts.d.ts +21 -0
  497. package/dist/runtime/utils/stored-message-parts.d.ts.map +1 -0
  498. package/dist/runtime/utils/stored-message-parts.js +103 -0
  499. package/dist/runtime/utils/stored-message-parts.js.map +1 -0
  500. package/dist/runtime/utils/streaming-timing.d.ts +23 -26
  501. package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
  502. package/dist/runtime/utils/thread-message-like.d.ts +38 -34
  503. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  504. package/dist/runtime/utils/thread-message-like.js +16 -6
  505. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  506. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts +5 -7
  507. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts.map +1 -1
  508. package/dist/runtime/utils/thread-runtime-lifecycle.js +31 -4
  509. package/dist/runtime/utils/thread-runtime-lifecycle.js.map +1 -1
  510. package/dist/runtime/utils/tool-call-tree.d.ts +10 -13
  511. package/dist/runtime/utils/tool-call-tree.d.ts.map +1 -1
  512. package/dist/runtime/utils/tool-interactions.d.ts +10 -0
  513. package/dist/runtime/utils/tool-interactions.d.ts.map +1 -0
  514. package/dist/runtime/utils/tool-interactions.js +92 -0
  515. package/dist/runtime/utils/tool-interactions.js.map +1 -0
  516. package/dist/runtimes/assistant-transport/utils.d.ts +1 -4
  517. package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
  518. package/dist/runtimes/external-store/external-store-adapter.d.ts +220 -200
  519. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  520. package/dist/runtimes/external-store/external-store-runtime-core.d.ts +6 -8
  521. package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
  522. package/dist/runtimes/external-store/external-store-runtime-core.js +4 -1
  523. package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
  524. package/dist/runtimes/external-store/external-store-shared-options.d.ts +3 -6
  525. package/dist/runtimes/external-store/external-store-shared-options.d.ts.map +1 -1
  526. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +40 -43
  527. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  528. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +2 -2
  529. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  530. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +119 -125
  531. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  532. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +71 -18
  533. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  534. package/dist/runtimes/external-store/thread-message-converter.d.ts +5 -8
  535. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  536. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts +96 -98
  537. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts.map +1 -1
  538. package/dist/runtimes/inert/InertThreadRuntimeCore.js +3 -0
  539. package/dist/runtimes/inert/InertThreadRuntimeCore.js.map +1 -1
  540. package/dist/runtimes/internal.d.ts +20 -16
  541. package/dist/runtimes/internal.d.ts.map +1 -0
  542. package/dist/runtimes/local/local-runtime-core.d.ts +7 -10
  543. package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
  544. package/dist/runtimes/local/local-runtime-options.d.ts +41 -44
  545. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  546. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +42 -45
  547. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  548. package/dist/runtimes/local/local-thread-runtime-core.d.ts +94 -93
  549. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  550. package/dist/runtimes/local/local-thread-runtime-core.js +220 -29
  551. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  552. package/dist/runtimes/local/should-continue.d.ts +2 -5
  553. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  554. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +77 -55
  555. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  556. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +28 -1
  557. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  558. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +12 -15
  559. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  560. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts +3 -6
  561. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts.map +1 -1
  562. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +2 -5
  563. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  564. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +34 -31
  565. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  566. package/dist/runtimes/remote-thread-list/optimistic-state.js +8 -3
  567. package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
  568. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +60 -63
  569. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  570. package/dist/runtimes/remote-thread-list/remote-thread-state.js +1 -1
  571. package/dist/runtimes/remote-thread-list/title-generation.d.ts +31 -33
  572. package/dist/runtimes/remote-thread-list/title-generation.d.ts.map +1 -1
  573. package/dist/runtimes/remote-thread-list/title.d.ts +5 -8
  574. package/dist/runtimes/remote-thread-list/title.d.ts.map +1 -1
  575. package/dist/runtimes/remote-thread-list/types.d.ts +119 -121
  576. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  577. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +147 -149
  578. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
  579. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +22 -7
  580. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  581. package/dist/store/clients/chain-of-thought-client.d.ts +8 -11
  582. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  583. package/dist/store/clients/external-thread.d.ts +56 -58
  584. package/dist/store/clients/external-thread.d.ts.map +1 -1
  585. package/dist/store/clients/external-thread.js +1270 -741
  586. package/dist/store/clients/external-thread.js.map +1 -1
  587. package/dist/store/clients/model-context-client.d.ts +2 -5
  588. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  589. package/dist/store/clients/no-op-composer-client.d.ts +3 -6
  590. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  591. package/dist/store/clients/no-op-composer-client.js +3 -1
  592. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  593. package/dist/store/clients/runtime-adapter.d.ts +2 -5
  594. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  595. package/dist/store/clients/single-thread-list.d.ts +4 -6
  596. package/dist/store/clients/single-thread-list.d.ts.map +1 -1
  597. package/dist/store/clients/submission-message.d.ts +8 -0
  598. package/dist/store/clients/submission-message.d.ts.map +1 -0
  599. package/dist/store/clients/submission-message.js +22 -0
  600. package/dist/store/clients/submission-message.js.map +1 -0
  601. package/dist/store/clients/suggestions.d.ts +8 -11
  602. package/dist/store/clients/suggestions.d.ts.map +1 -1
  603. package/dist/store/clients/thread-message-client.d.ts +12 -12
  604. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  605. package/dist/store/clients/thread-message-client.js +81 -82
  606. package/dist/store/clients/thread-message-client.js.map +1 -1
  607. package/dist/store/clients/thread-selection-events.d.ts +1 -4
  608. package/dist/store/clients/thread-selection-events.d.ts.map +1 -1
  609. package/dist/store/clients/thread-tasks.d.ts +7 -10
  610. package/dist/store/clients/thread-tasks.d.ts.map +1 -1
  611. package/dist/store/env.d.ts +1 -4
  612. package/dist/store/env.d.ts.map +1 -1
  613. package/dist/store/index.d.ts +33 -36
  614. package/dist/store/index.d.ts.map +1 -0
  615. package/dist/store/index.js +5 -5
  616. package/dist/store/internal.d.ts +12 -12
  617. package/dist/store/internal.d.ts.map +1 -0
  618. package/dist/store/internal.js +2 -2
  619. package/dist/store/primitive-predicates.d.ts +14 -16
  620. package/dist/store/primitive-predicates.d.ts.map +1 -1
  621. package/dist/store/primitive-predicates.js +10 -5
  622. package/dist/store/primitive-predicates.js.map +1 -1
  623. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +4 -7
  624. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  625. package/dist/store/runtime-clients/composer-runtime-client.d.ts +11 -14
  626. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  627. package/dist/store/runtime-clients/composer-runtime-client.js +65 -62
  628. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  629. package/dist/store/runtime-clients/handle-runtime-action.d.ts +1 -4
  630. package/dist/store/runtime-clients/handle-runtime-action.d.ts.map +1 -1
  631. package/dist/store/runtime-clients/handle-thread-list-action.d.ts +1 -4
  632. package/dist/store/runtime-clients/handle-thread-list-action.d.ts.map +1 -1
  633. package/dist/store/runtime-clients/liveRef.d.ts +2 -5
  634. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
  635. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +4 -7
  636. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  637. package/dist/store/runtime-clients/message-part-runtime-client.js +26 -16
  638. package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
  639. package/dist/store/runtime-clients/message-runtime-client.d.ts +10 -11
  640. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  641. package/dist/store/runtime-clients/message-runtime-client.js +121 -113
  642. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  643. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +5 -8
  644. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  645. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +6 -9
  646. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  647. package/dist/store/runtime-clients/thread-runtime-client.d.ts +4 -7
  648. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  649. package/dist/store/runtime-clients/thread-runtime-client.js +221 -158
  650. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  651. package/dist/store/runtime-clients/useSubscribable.d.ts +3 -6
  652. package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
  653. package/dist/store/scope-registration.d.ts +28 -29
  654. package/dist/store/scope-registration.d.ts.map +1 -1
  655. package/dist/store/scopes/attachment.d.ts +19 -22
  656. package/dist/store/scopes/attachment.d.ts.map +1 -1
  657. package/dist/store/scopes/chain-of-thought.d.ts +33 -35
  658. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  659. package/dist/store/scopes/composer.d.ts +147 -135
  660. package/dist/store/scopes/composer.d.ts.map +1 -1
  661. package/dist/store/scopes/message.d.ts +119 -112
  662. package/dist/store/scopes/message.d.ts.map +1 -1
  663. package/dist/store/scopes/model-context.d.ts +10 -13
  664. package/dist/store/scopes/model-context.d.ts.map +1 -1
  665. package/dist/store/scopes/part.d.ts +53 -50
  666. package/dist/store/scopes/part.d.ts.map +1 -1
  667. package/dist/store/scopes/queue-item.d.ts +21 -23
  668. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  669. package/dist/store/scopes/suggestion.d.ts +14 -17
  670. package/dist/store/scopes/suggestion.d.ts.map +1 -1
  671. package/dist/store/scopes/suggestions.d.ts +18 -21
  672. package/dist/store/scopes/suggestions.d.ts.map +1 -1
  673. package/dist/store/scopes/task.d.ts +27 -30
  674. package/dist/store/scopes/task.d.ts.map +1 -1
  675. package/dist/store/scopes/thread-list-item.d.ts +68 -71
  676. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  677. package/dist/store/scopes/thread.d.ts +197 -200
  678. package/dist/store/scopes/thread.d.ts.map +1 -1
  679. package/dist/store/scopes/threads.d.ts +49 -52
  680. package/dist/store/scopes/threads.d.ts.map +1 -1
  681. package/dist/subscribable/subscribable.d.ts +73 -69
  682. package/dist/subscribable/subscribable.d.ts.map +1 -1
  683. package/dist/subscribable/subscribable.js +35 -7
  684. package/dist/subscribable/subscribable.js.map +1 -1
  685. package/dist/types/attachment.d.ts +35 -37
  686. package/dist/types/attachment.d.ts.map +1 -1
  687. package/dist/types/augmentations.d.ts +7 -8
  688. package/dist/types/augmentations.d.ts.map +1 -1
  689. package/dist/types/directive.d.ts +13 -16
  690. package/dist/types/directive.d.ts.map +1 -1
  691. package/dist/types/error.d.ts +15 -17
  692. package/dist/types/error.d.ts.map +1 -1
  693. package/dist/types/index.d.ts +7 -7
  694. package/dist/types/index.d.ts.map +1 -0
  695. package/dist/types/message.d.ts +358 -318
  696. package/dist/types/message.d.ts.map +1 -1
  697. package/dist/types/message.js.map +1 -1
  698. package/dist/types/quote.d.ts +3 -6
  699. package/dist/types/quote.d.ts.map +1 -1
  700. package/dist/types/trigger.d.ts +10 -13
  701. package/dist/types/trigger.d.ts.map +1 -1
  702. package/dist/types/unsubscribe.d.ts +1 -4
  703. package/dist/types/unsubscribe.d.ts.map +1 -1
  704. package/dist/utils/abortable-iterable.d.ts +2 -5
  705. package/dist/utils/abortable-iterable.d.ts.map +1 -1
  706. package/dist/utils/composite-context-provider.d.ts +9 -13
  707. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  708. package/dist/utils/data-url.d.ts +16 -19
  709. package/dist/utils/data-url.d.ts.map +1 -1
  710. package/dist/utils/getGroupStatus.d.ts +19 -21
  711. package/dist/utils/getGroupStatus.d.ts.map +1 -1
  712. package/dist/utils/id.d.ts +3 -6
  713. package/dist/utils/id.d.ts.map +1 -1
  714. package/dist/utils/image-media-type.d.ts +1 -4
  715. package/dist/utils/image-media-type.d.ts.map +1 -1
  716. package/dist/utils/invoke-user-callback.d.ts +1 -4
  717. package/dist/utils/invoke-user-callback.d.ts.map +1 -1
  718. package/dist/utils/json/is-json-equal.d.ts +1 -4
  719. package/dist/utils/json/is-json-equal.d.ts.map +1 -1
  720. package/dist/utils/json/is-json.d.ts +5 -8
  721. package/dist/utils/json/is-json.d.ts.map +1 -1
  722. package/dist/utils/json/stable-stringify-tool-args.d.ts +3 -6
  723. package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -1
  724. package/dist/utils/normalizePartStatus.d.ts +6 -8
  725. package/dist/utils/normalizePartStatus.d.ts.map +1 -1
  726. package/dist/utils/normalizePartStatus.js +3 -2
  727. package/dist/utils/normalizePartStatus.js.map +1 -1
  728. package/dist/utils/notify-event-listeners.d.ts +2 -4
  729. package/dist/utils/notify-event-listeners.d.ts.map +1 -1
  730. package/dist/utils/record.d.ts +1 -4
  731. package/dist/utils/record.d.ts.map +1 -1
  732. package/dist/utils/silent-runtime-action.d.ts +2 -5
  733. package/dist/utils/silent-runtime-action.d.ts.map +1 -1
  734. package/dist/utils/text.d.ts +2 -5
  735. package/dist/utils/text.d.ts.map +1 -1
  736. package/dist/utils/wire-media.d.ts +3 -6
  737. package/dist/utils/wire-media.d.ts.map +1 -1
  738. package/package.json +15 -13
  739. package/src/adapters/attachment.test.ts +98 -1
  740. package/src/adapters/attachment.ts +77 -20
  741. package/src/adapters/feedback.ts +1 -0
  742. package/src/adapters/speech.test.ts +94 -0
  743. package/src/adapters/speech.ts +16 -2
  744. package/src/adapters/thread-history.ts +16 -5
  745. package/src/adapters/voice.test.ts +169 -0
  746. package/src/adapters/voice.ts +25 -4
  747. package/src/index.ts +14 -2
  748. package/src/internal.ts +7 -0
  749. package/src/model-context/frame/host.test.ts +51 -1
  750. package/src/model-context/frame/host.ts +3 -1
  751. package/src/model-context/frame/provider.test.ts +106 -20
  752. package/src/model-context/frame/provider.ts +8 -1
  753. package/src/model-context/frame/validate.ts +57 -0
  754. package/src/model-context/interactable-composer-metadata.test.ts +82 -0
  755. package/src/model-context/interactable-composer-metadata.ts +45 -2
  756. package/src/react/RuntimeAdapter.test.ts +4 -1
  757. package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +711 -0
  758. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +125 -109
  759. package/src/react/client/Interactables.test.ts +865 -8
  760. package/src/react/client/Interactables.ts +325 -45
  761. package/src/react/client/RemoteThreadList.concurrent.test.tsx +9 -3
  762. package/src/react/client/RemoteThreadList.initialize-failure.test.ts +124 -0
  763. package/src/react/client/RemoteThreadList.test.ts +5 -6
  764. package/src/react/client/RemoteThreadList.ts +6 -0
  765. package/src/react/client/Tools.ts +2 -3
  766. package/src/react/client/interactable-model-context.test.ts +56 -13
  767. package/src/react/client/interactable-model-context.ts +48 -23
  768. package/src/react/index.ts +2 -2
  769. package/src/react/interactables-legacy/Interactables.test.ts +221 -4
  770. package/src/react/interactables-legacy/Interactables.ts +25 -14
  771. package/src/react/interactables-legacy/interactable-model-context.ts +26 -24
  772. package/src/react/interactables-legacy/useAssistantInteractable.test.tsx +40 -22
  773. package/src/react/interactables-shared/useInteractablePersistenceQueue.test.tsx +22 -2
  774. package/src/react/interactables-shared/useInteractablePersistenceQueue.ts +63 -11
  775. package/src/react/model-context/useInteractable.test.tsx +56 -29
  776. package/src/react/primitive-hooks/useActionBarCopy.test.ts +5 -5
  777. package/src/react/primitive-hooks/useSuggestionTrigger.test.ts +33 -0
  778. package/src/react/primitive-hooks/useSuggestionTrigger.ts +7 -4
  779. package/src/react/primitives/generativeUI/GenerativeUI.test.tsx +170 -0
  780. package/src/react/primitives/generativeUI/GenerativeUI.tsx +43 -28
  781. package/src/react/primitives/message/MessageAttachments.test.tsx +2 -6
  782. package/src/react/primitives/message/MessageAttachments.tsx +14 -8
  783. package/src/react/primitives/message/MessageGroupedParts.test.tsx +155 -8
  784. package/src/react/primitives/message/MessageGroupedParts.tsx +19 -6
  785. package/src/react/primitives/message/MessageParts.test.tsx +84 -0
  786. package/src/react/primitives/message/MessageParts.tool-interaction.test.tsx +69 -0
  787. package/src/react/primitives/message/MessageParts.tsx +29 -8
  788. package/src/react/primitives/thread/ThreadMessages.test.tsx +25 -7
  789. package/src/react/primitives/thread/ThreadSuggestions.test.tsx +97 -0
  790. package/src/react/primitives/thread/ThreadSuggestions.tsx +29 -6
  791. package/src/react/providers/ReadonlyThreadProvider.tsx +2 -2
  792. package/src/react/providers/TextMessagePartProvider.tsx +3 -0
  793. package/src/react/runtimes/RemoteThreadListHookInstanceManager.layout.test.tsx +62 -0
  794. package/src/react/runtimes/RemoteThreadListHookInstanceManager.retry.test.tsx +2 -2
  795. package/src/react/runtimes/RemoteThreadListHookInstanceManager.running.test.tsx +93 -0
  796. package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +181 -21
  797. package/src/react/runtimes/RemoteThreadListHookInstanceManager.title.test.tsx +62 -17
  798. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +112 -77
  799. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +19 -3
  800. package/src/react/runtimes/RemoteThreadResource.ts +5 -2
  801. package/src/react/runtimes/assistant-transport/replayBoundaryStream.test.ts +3 -1
  802. package/src/react/runtimes/assistant-transport/replayBoundaryStream.ts +10 -2
  803. package/src/react/runtimes/assistant-transport/runManager.ts +3 -0
  804. package/src/react/runtimes/assistant-transport/transport-parentid.test.tsx +57 -0
  805. package/src/react/runtimes/assistant-transport/transport-scheduling.test.ts +73 -46
  806. package/src/react/runtimes/assistant-transport/transport-thread-id.test.tsx +571 -0
  807. package/src/react/runtimes/assistant-transport/types.ts +9 -1
  808. package/src/react/runtimes/assistant-transport/useAssistantTransport.spec.md +10 -0
  809. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.test.tsx +108 -1
  810. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.ts +33 -9
  811. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.integration.test.tsx +289 -0
  812. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.test.tsx +471 -0
  813. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.engagement.test.tsx +330 -0
  814. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.ts +78 -2
  815. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +463 -2
  816. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +595 -227
  817. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +33 -4
  818. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +7 -3
  819. package/src/react/runtimes/cloud/auiV0.ts +275 -6
  820. package/src/react/runtimes/cloud/auiV0DecodeSafely.test.ts +873 -0
  821. package/src/react/runtimes/createMessageConverter.ts +9 -3
  822. package/src/react/runtimes/external-message-converter.test.ts +7 -3
  823. package/src/react/runtimes/external-store-history-copy.ts +223 -0
  824. package/src/react/runtimes/remote-thread-hook-on-tap.test.ts +2 -1
  825. package/src/react/runtimes/useExternalStoreRuntime.history-copy.test.tsx +483 -0
  826. package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +84 -3
  827. package/src/react/runtimes/useExternalStoreRuntime.suggestions.test.tsx +6 -2
  828. package/src/react/runtimes/useExternalStoreRuntime.ts +25 -5
  829. package/src/react/runtimes/useLocalRuntime.test.tsx +145 -1
  830. package/src/react/runtimes/useLocalRuntime.ts +8 -5
  831. package/src/react/runtimes/useRemoteThreadListRuntime.concurrent.test.tsx +84 -4
  832. package/src/react/runtimes/useRemoteThreadListRuntime.ts +5 -1
  833. package/src/react/types/MessagePartComponentTypes.ts +10 -0
  834. package/src/react/types/scopes/interactables.ts +3 -0
  835. package/src/runtime/api/attachment-runtime.ts +10 -5
  836. package/src/runtime/api/bindings.ts +6 -1
  837. package/src/runtime/api/composer-runtime.ts +29 -6
  838. package/src/runtime/api/message-part-runtime.test.ts +215 -0
  839. package/src/runtime/api/message-part-runtime.ts +44 -1
  840. package/src/runtime/api/message-runtime.test.ts +112 -2
  841. package/src/runtime/api/message-runtime.ts +25 -7
  842. package/src/runtime/api/thread-list-item-runtime.ts +5 -5
  843. package/src/runtime/api/thread-list-runtime.ts +3 -3
  844. package/src/runtime/api/thread-runtime.test.ts +59 -0
  845. package/src/runtime/api/thread-runtime.ts +21 -11
  846. package/src/runtime/base/base-composer-runtime-core.ts +548 -153
  847. package/src/runtime/base/base-thread-runtime-core.test.ts +1614 -136
  848. package/src/runtime/base/base-thread-runtime-core.ts +236 -46
  849. package/src/runtime/base/default-edit-composer-runtime-core.ts +24 -2
  850. package/src/runtime/base/default-thread-composer-runtime-core.ts +33 -3
  851. package/src/runtime/interfaces/composer-runtime-core.ts +19 -0
  852. package/src/runtime/interfaces/thread-runtime-core.ts +24 -1
  853. package/src/runtime/queue/message-queue.ts +11 -1
  854. package/src/runtime/utils/attachment-add-operations.ts +45 -2
  855. package/src/runtime/utils/attachment-send-operations.ts +54 -0
  856. package/src/runtime/utils/auto-status.test.ts +54 -0
  857. package/src/runtime/utils/auto-status.ts +3 -10
  858. package/src/runtime/utils/external-message-conversion.test.ts +91 -0
  859. package/src/runtime/utils/external-message-conversion.ts +9 -6
  860. package/src/runtime/utils/message-repository.test.ts +69 -1
  861. package/src/runtime/utils/message-repository.ts +14 -7
  862. package/src/runtime/utils/stored-message-parts.ts +216 -0
  863. package/src/runtime/utils/thread-message-like.test.ts +58 -0
  864. package/src/runtime/utils/thread-message-like.ts +79 -48
  865. package/src/runtime/utils/thread-runtime-lifecycle.test.ts +67 -0
  866. package/src/runtime/utils/thread-runtime-lifecycle.ts +42 -8
  867. package/src/runtime/utils/tool-interactions.test.ts +193 -0
  868. package/src/runtime/utils/tool-interactions.ts +147 -0
  869. package/src/runtimes/external-store/external-store-adapter.ts +25 -0
  870. package/src/runtimes/external-store/external-store-runtime-core.ts +10 -2
  871. package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +2 -2
  872. package/src/runtimes/external-store/external-store-thread-runtime-core.test.ts +49 -0
  873. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +114 -32
  874. package/src/runtimes/inert/InertThreadRuntimeCore.test.ts +127 -56
  875. package/src/runtimes/inert/InertThreadRuntimeCore.ts +10 -1
  876. package/src/runtimes/local/local-thread-runtime-core.edit-cancellation.test.ts +70 -0
  877. package/src/runtimes/local/local-thread-runtime-core.test.ts +1866 -169
  878. package/src/runtimes/local/local-thread-runtime-core.ts +365 -40
  879. package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +53 -1
  880. package/src/runtimes/remote-thread-list/optimistic-state.ts +8 -3
  881. package/src/runtimes/tool-invocations/EDGE_CASES.md +19 -4
  882. package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +392 -39
  883. package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +31 -8
  884. package/src/store/clients/external-thread.test.ts +145 -0
  885. package/src/store/clients/external-thread.ts +669 -144
  886. package/src/store/clients/model-context-client.test.ts +8 -8
  887. package/src/store/clients/no-op-composer-client.ts +2 -0
  888. package/src/store/clients/submission-message.ts +27 -0
  889. package/src/store/clients/thread-message-client.test.ts +39 -0
  890. package/src/store/clients/thread-message-client.ts +13 -6
  891. package/src/store/index.ts +2 -2
  892. package/src/store/internal.ts +1 -0
  893. package/src/store/primitive-predicates.test.ts +119 -0
  894. package/src/store/primitive-predicates.ts +19 -4
  895. package/src/store/runtime-clients/composer-runtime-client.ts +4 -3
  896. package/src/store/runtime-clients/message-part-runtime-client.test.ts +42 -0
  897. package/src/store/runtime-clients/message-part-runtime-client.ts +4 -0
  898. package/src/store/runtime-clients/message-runtime-client.ts +5 -0
  899. package/src/store/runtime-clients/thread-runtime-client.test.tsx +243 -0
  900. package/src/store/runtime-clients/thread-runtime-client.ts +46 -9
  901. package/src/store/scopes/composer.ts +22 -4
  902. package/src/store/scopes/message.ts +12 -1
  903. package/src/store/scopes/part.ts +8 -0
  904. package/src/subscribable/subscribable.test.ts +205 -3
  905. package/src/subscribable/subscribable.ts +49 -7
  906. package/src/tests/RemoteThreadListThreadListRuntimeCore-errors.test.ts +95 -1
  907. package/src/tests/attachment-adapters.test.ts +16 -1
  908. package/src/tests/auiV0Encode.test.ts +412 -1
  909. package/src/tests/base-composer-runtime-core-addAttachment.test.ts +6 -6
  910. package/src/tests/base-composer-runtime-core-send.test.ts +722 -29
  911. package/src/tests/base-composer-runtime-core.test.ts +212 -5
  912. package/src/tests/composer-can-cancel.test.ts +35 -6
  913. package/src/tests/composer-can-send.test.ts +120 -1
  914. package/src/tests/composer-submission.test.tsx +796 -0
  915. package/src/tests/default-edit-composer-runtime-core.test.ts +149 -2
  916. package/src/tests/external-store-thread-list-runtime-core.test.ts +111 -0
  917. package/src/tests/external-store-thread-runtime-core-adapter.test.ts +810 -28
  918. package/src/tests/external-store-thread-runtime-core.test.ts +217 -0
  919. package/src/tests/external-thread-attachments.test.tsx +763 -26
  920. package/src/tests/external-thread-feedback.test.tsx +20 -7
  921. package/src/tests/external-thread-isLast.test.tsx +69 -0
  922. package/src/tests/external-thread-parity.test.tsx +1 -1
  923. package/src/tests/get-thread-state-isRunning.test.ts +2 -2
  924. package/src/tests/message-queue.test.ts +45 -10
  925. package/src/tests/remote-thread-list-adapter-switch.test.ts +45 -1
  926. package/src/tests/thread-switch-events.test.tsx +11 -7
  927. package/src/tests/useRemoteThreadListRuntime-controlled.test.tsx +2 -1
  928. package/src/types/message.test.ts +19 -0
  929. package/src/types/message.ts +65 -10
  930. package/src/utils/normalizePartStatus.ts +14 -1
  931. package/dist/tests/remote-thread-list-test-helpers.d.ts +0 -16
  932. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +0 -1
  933. package/dist/tests/remote-thread-list-test-helpers.js +0 -59
  934. package/dist/tests/remote-thread-list-test-helpers.js.map +0 -1
@@ -226,7 +226,7 @@ const defaultComponents = {
226
226
  ReasoningGroup: ({ children }) => children
227
227
  };
228
228
  const MessagePartComponent = (t0) => {
229
- const $ = c(41);
229
+ const $ = c(54);
230
230
  const { components: t1 } = t0;
231
231
  let t2;
232
232
  if ($[0] !== t1) {
@@ -255,118 +255,150 @@ const MessagePartComponent = (t0) => {
255
255
  const addResult = aui.part.addToolResult;
256
256
  const resume = aui.part.resumeToolCall;
257
257
  const respondToApproval = aui.part.respondToToolApproval;
258
+ const unstable_recordInteraction = aui.part.unstable_recordInteraction;
258
259
  if ("Override" in tools) {
259
260
  let t11;
260
- if ($[4] !== addResult || $[5] !== part || $[6] !== respondToApproval || $[7] !== resume || $[8] !== tools.Override) {
261
- t11 = /* @__PURE__ */ jsx(tools.Override, {
261
+ if ($[4] !== unstable_recordInteraction) {
262
+ t11 = unstable_recordInteraction && { unstable_recordInteraction };
263
+ $[4] = unstable_recordInteraction;
264
+ $[5] = t11;
265
+ } else t11 = $[5];
266
+ let t12;
267
+ if ($[6] !== addResult || $[7] !== part || $[8] !== respondToApproval || $[9] !== resume || $[10] !== t11 || $[11] !== tools.Override) {
268
+ t12 = /* @__PURE__ */ jsx(tools.Override, {
262
269
  ...part,
263
270
  addResult,
264
271
  resume,
265
- respondToApproval
272
+ respondToApproval,
273
+ ...t11
266
274
  });
267
- $[4] = addResult;
268
- $[5] = part;
269
- $[6] = respondToApproval;
270
- $[7] = resume;
271
- $[8] = tools.Override;
272
- $[9] = t11;
273
- } else t11 = $[9];
274
- return t11;
275
+ $[6] = addResult;
276
+ $[7] = part;
277
+ $[8] = respondToApproval;
278
+ $[9] = resume;
279
+ $[10] = t11;
280
+ $[11] = tools.Override;
281
+ $[12] = t12;
282
+ } else t12 = $[12];
283
+ return t12;
275
284
  }
276
- const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;
277
285
  let t11;
278
- if ($[10] !== Tool || $[11] !== addResult || $[12] !== part || $[13] !== respondToApproval || $[14] !== resume) {
279
- t11 = /* @__PURE__ */ jsx(ToolUIDisplay, {
286
+ if ($[13] !== part.toolName || $[14] !== tools.Fallback || $[15] !== tools.by_name) {
287
+ t11 = (tools.by_name && Object.hasOwn(tools.by_name, part.toolName) ? tools.by_name[part.toolName] : void 0) ?? tools.Fallback;
288
+ $[13] = part.toolName;
289
+ $[14] = tools.Fallback;
290
+ $[15] = tools.by_name;
291
+ $[16] = t11;
292
+ } else t11 = $[16];
293
+ const Tool = t11;
294
+ let t12;
295
+ if ($[17] !== unstable_recordInteraction) {
296
+ t12 = unstable_recordInteraction && { unstable_recordInteraction };
297
+ $[17] = unstable_recordInteraction;
298
+ $[18] = t12;
299
+ } else t12 = $[18];
300
+ let t13;
301
+ if ($[19] !== Tool || $[20] !== addResult || $[21] !== part || $[22] !== respondToApproval || $[23] !== resume || $[24] !== t12) {
302
+ t13 = /* @__PURE__ */ jsx(ToolUIDisplay, {
280
303
  ...part,
281
304
  Fallback: Tool,
282
305
  addResult,
283
306
  resume,
284
- respondToApproval
307
+ respondToApproval,
308
+ ...t12
285
309
  });
286
- $[10] = Tool;
287
- $[11] = addResult;
288
- $[12] = part;
289
- $[13] = respondToApproval;
290
- $[14] = resume;
291
- $[15] = t11;
292
- } else t11 = $[15];
293
- return t11;
310
+ $[19] = Tool;
311
+ $[20] = addResult;
312
+ $[21] = part;
313
+ $[22] = respondToApproval;
314
+ $[23] = resume;
315
+ $[24] = t12;
316
+ $[25] = t13;
317
+ } else t13 = $[25];
318
+ return t13;
294
319
  }
295
320
  if (part.status?.type === "requires-action") throw new Error("Encountered unexpected requires-action status");
296
321
  switch (type) {
297
322
  case "text": {
298
323
  let t11;
299
- if ($[16] !== Text || $[17] !== part) {
324
+ if ($[26] !== Text || $[27] !== part) {
300
325
  t11 = /* @__PURE__ */ jsx(Text, { ...part });
301
- $[16] = Text;
302
- $[17] = part;
303
- $[18] = t11;
304
- } else t11 = $[18];
326
+ $[26] = Text;
327
+ $[27] = part;
328
+ $[28] = t11;
329
+ } else t11 = $[28];
305
330
  return t11;
306
331
  }
307
332
  case "reasoning": {
308
333
  let t11;
309
- if ($[19] !== Reasoning || $[20] !== part) {
334
+ if ($[29] !== Reasoning || $[30] !== part) {
310
335
  t11 = /* @__PURE__ */ jsx(Reasoning, { ...part });
311
- $[19] = Reasoning;
312
- $[20] = part;
313
- $[21] = t11;
314
- } else t11 = $[21];
336
+ $[29] = Reasoning;
337
+ $[30] = part;
338
+ $[31] = t11;
339
+ } else t11 = $[31];
315
340
  return t11;
316
341
  }
317
342
  case "source": {
318
343
  let t11;
319
- if ($[22] !== Source || $[23] !== part) {
344
+ if ($[32] !== Source || $[33] !== part) {
320
345
  t11 = /* @__PURE__ */ jsx(Source, { ...part });
321
- $[22] = Source;
322
- $[23] = part;
323
- $[24] = t11;
324
- } else t11 = $[24];
346
+ $[32] = Source;
347
+ $[33] = part;
348
+ $[34] = t11;
349
+ } else t11 = $[34];
325
350
  return t11;
326
351
  }
327
352
  case "image": {
328
353
  let t11;
329
- if ($[25] !== Image || $[26] !== part) {
354
+ if ($[35] !== Image || $[36] !== part) {
330
355
  t11 = /* @__PURE__ */ jsx(Image, { ...part });
331
- $[25] = Image;
332
- $[26] = part;
333
- $[27] = t11;
334
- } else t11 = $[27];
356
+ $[35] = Image;
357
+ $[36] = part;
358
+ $[37] = t11;
359
+ } else t11 = $[37];
335
360
  return t11;
336
361
  }
337
362
  case "file": {
338
363
  let t11;
339
- if ($[28] !== File || $[29] !== part) {
364
+ if ($[38] !== File || $[39] !== part) {
340
365
  t11 = /* @__PURE__ */ jsx(File, { ...part });
341
- $[28] = File;
342
- $[29] = part;
343
- $[30] = t11;
344
- } else t11 = $[30];
366
+ $[38] = File;
367
+ $[39] = part;
368
+ $[40] = t11;
369
+ } else t11 = $[40];
345
370
  return t11;
346
371
  }
347
372
  case "audio": {
348
373
  let t11;
349
- if ($[31] !== Audio || $[32] !== part) {
374
+ if ($[41] !== Audio || $[42] !== part) {
350
375
  t11 = /* @__PURE__ */ jsx(Audio, { ...part });
351
- $[31] = Audio;
352
- $[32] = part;
353
- $[33] = t11;
354
- } else t11 = $[33];
376
+ $[41] = Audio;
377
+ $[42] = part;
378
+ $[43] = t11;
379
+ } else t11 = $[43];
355
380
  return t11;
356
381
  }
357
382
  case "data": {
358
- const Data = data?.by_name?.[part.name] ?? data?.Fallback;
359
383
  let t11;
360
- if ($[34] !== Data || $[35] !== part) {
361
- t11 = /* @__PURE__ */ jsx(DataUIDisplay, {
384
+ if ($[44] !== data || $[45] !== part.name) {
385
+ t11 = (data?.by_name && Object.hasOwn(data.by_name, part.name) ? data.by_name[part.name] : void 0) ?? data?.Fallback;
386
+ $[44] = data;
387
+ $[45] = part.name;
388
+ $[46] = t11;
389
+ } else t11 = $[46];
390
+ const Data = t11;
391
+ let t12;
392
+ if ($[47] !== Data || $[48] !== part) {
393
+ t12 = /* @__PURE__ */ jsx(DataUIDisplay, {
362
394
  ...part,
363
395
  Fallback: Data
364
396
  });
365
- $[34] = Data;
366
- $[35] = part;
367
- $[36] = t11;
368
- } else t11 = $[36];
369
- return t11;
397
+ $[47] = Data;
398
+ $[48] = part;
399
+ $[49] = t12;
400
+ } else t12 = $[49];
401
+ return t12;
370
402
  }
371
403
  case "generative-ui": {
372
404
  if (!generativeUI?.components) {
@@ -375,17 +407,17 @@ const MessagePartComponent = (t0) => {
375
407
  }
376
408
  const t11 = part;
377
409
  let t12;
378
- if ($[37] !== generativeUI.Fallback || $[38] !== generativeUI.components || $[39] !== t11.spec) {
410
+ if ($[50] !== generativeUI.Fallback || $[51] !== generativeUI.components || $[52] !== t11.spec) {
379
411
  t12 = /* @__PURE__ */ jsx(GenerativeUIRender, {
380
412
  spec: t11.spec,
381
413
  components: generativeUI.components,
382
414
  Fallback: generativeUI.Fallback
383
415
  });
384
- $[37] = generativeUI.Fallback;
385
- $[38] = generativeUI.components;
386
- $[39] = t11.spec;
387
- $[40] = t12;
388
- } else t12 = $[40];
416
+ $[50] = generativeUI.Fallback;
417
+ $[51] = generativeUI.components;
418
+ $[52] = t11.spec;
419
+ $[53] = t12;
420
+ } else t12 = $[53];
389
421
  return t12;
390
422
  }
391
423
  default:
@@ -531,27 +563,36 @@ function resolveToolRender(toolsState, part) {
531
563
  * current part context. Reads tool registry and part state from context.
532
564
  */
533
565
  const RegisteredToolUI = () => {
534
- const $ = c(6);
566
+ const $ = c(9);
535
567
  const aui = useAui();
536
568
  const part = useAuiState(_temp7);
537
569
  const Render = useAuiState(_temp8);
570
+ const unstable_recordInteraction = aui.part.unstable_recordInteraction;
538
571
  if (!Render || part.type !== "tool-call") return null;
539
572
  let t0;
540
- if ($[0] !== Render || $[1] !== aui.part.addToolResult || $[2] !== aui.part.respondToToolApproval || $[3] !== aui.part.resumeToolCall || $[4] !== part) {
541
- t0 = /* @__PURE__ */ jsx(Render, {
573
+ if ($[0] !== unstable_recordInteraction) {
574
+ t0 = unstable_recordInteraction && { unstable_recordInteraction };
575
+ $[0] = unstable_recordInteraction;
576
+ $[1] = t0;
577
+ } else t0 = $[1];
578
+ let t1;
579
+ if ($[2] !== Render || $[3] !== aui.part.addToolResult || $[4] !== aui.part.respondToToolApproval || $[5] !== aui.part.resumeToolCall || $[6] !== part || $[7] !== t0) {
580
+ t1 = /* @__PURE__ */ jsx(Render, {
542
581
  ...part,
543
582
  addResult: aui.part.addToolResult,
544
583
  resume: aui.part.resumeToolCall,
545
- respondToApproval: aui.part.respondToToolApproval
584
+ respondToApproval: aui.part.respondToToolApproval,
585
+ ...t0
546
586
  });
547
- $[0] = Render;
548
- $[1] = aui.part.addToolResult;
549
- $[2] = aui.part.respondToToolApproval;
550
- $[3] = aui.part.resumeToolCall;
551
- $[4] = part;
552
- $[5] = t0;
553
- } else t0 = $[5];
554
- return t0;
587
+ $[2] = Render;
588
+ $[3] = aui.part.addToolResult;
589
+ $[4] = aui.part.respondToToolApproval;
590
+ $[5] = aui.part.resumeToolCall;
591
+ $[6] = part;
592
+ $[7] = t0;
593
+ $[8] = t1;
594
+ } else t1 = $[8];
595
+ return t1;
555
596
  };
556
597
  /**
557
598
  * Stable propless component that renders the registered data renderer UI
@@ -626,7 +667,8 @@ const MessagePartChildrenInner = ({ children }) => {
626
667
  toolUI: hasUI ? /* @__PURE__ */ jsx(RegisteredToolUI, {}) : null,
627
668
  addResult: partMethods.addToolResult,
628
669
  resume: partMethods.resumeToolCall,
629
- respondToApproval: partMethods.respondToToolApproval
670
+ respondToApproval: partMethods.respondToToolApproval,
671
+ ...partMethods.unstable_recordInteraction && { unstable_recordInteraction: partMethods.unstable_recordInteraction }
630
672
  };
631
673
  }
632
674
  if (state.type === "data") {
@@ -888,6 +930,6 @@ function _temp12(s) {
888
930
  return s.message.parts.length;
889
931
  }
890
932
  //#endregion
891
- export { MessagePartChildren, MessagePartComponent, MessagePrimitivePartByIndex, MessagePrimitiveParts, defaultComponents, groupMessageParts };
933
+ export { DefaultPartFallback, MessagePartChildren, MessagePartComponent, MessagePrimitivePartByIndex, MessagePrimitiveParts, defaultComponents, groupMessageParts };
892
934
 
893
935
  //# sourceMappingURL=MessageParts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageParts.js","names":["ComponentType","FC","ReactNode","memo","PropsWithChildren","useMemo","RenderChildrenWithAccessor","useAuiState","useAui","PartState","PartByIndexProvider","TextMessagePartProvider","ChainOfThoughtByIndicesProvider","getMessageQuote","Unstable_AudioMessagePartComponent","DataMessagePartComponent","DataMessagePartProps","EmptyMessagePartComponent","TextMessagePartComponent","ImageMessagePartComponent","SourceMessagePartComponent","ToolCallMessagePartComponent","ToolCallMessagePartProps","FileMessagePartComponent","ReasoningMessagePartComponent","ReasoningGroupComponent","QuoteMessagePartComponent","GenerativeUIComponentRegistry","GenerativeUIRender","isMcpAppUri","MessagePartStatus","GenerativeUIMessagePart","DataRenderersState","ToolsState","useShallowSelector","MessagePartRange","type","index","startIndex","endIndex","idKey","createGroupState","groupType","T","start","startGroup","endGroup","ranges","push","finalize","groupMessageParts","messageTypes","useChainOfThought","partIds","chainOfThoughtGroup","i","length","toolGroup","reasoningGroup","claimed","Set","range","id","undefined","has","add","useMessagePartsGroups","$","_c","_temp2","_temp4","t0","bb0","t1","Symbol","for","t2","MessagePrimitiveParts","DataConfig","by_name","Record","Fallback","BaseComponents","Empty","Text","Source","Image","File","Unstable_Audio","data","Quote","generativeUI","components","component","props","ToolsConfig","Override","StandardComponents","Reasoning","tools","ToolGroup","ReasoningGroup","ChainOfThought","ChainOfThoughtComponents","Props","unstable_showEmptyOnNonTextEnd","children","value","part","EnrichedPartState","ToolUIDisplay","toolName","s","toolUIs","render","Render","getDataRenderer","dataRenderers","name","inlineFallback","named","renderers","fallbacks","DataUIDisplay","defaultComponents","MessagePartComponentProps","MessagePartComponent","t3","t4","t5","t6","t7","t8","t9","Audio","t10","aui","_temp5","addResult","addToolResult","resume","resumeToolCall","respondToApproval","respondToToolApproval","t11","Tool","status","Error","Data","process","env","NODE_ENV","console","warn","t12","spec","MessagePrimitivePartByIndex","prev","next","displayName","EmptyPartFallback","Component","COMPLETE_STATUS","Object","freeze","RUNNING_STATUS","EmptyPartsImpl","_temp6","EmptyParts","ConditionalEmptyImpl","enabled","message","parts","lastPart","shouldShowEmpty","ConditionalEmpty","QuoteRendererImpl","quoteInfo","messageId","text","QuoteRenderer","resolveToolRender","toolsState","Extract","mcp","app","resourceUri","mcpApp","RegisteredToolUI","_temp7","_temp8","RegisteredDataRendererUI","_temp9","_temp0","DefaultPartFallback","partType","_temp1","toolUI","dataRendererUI","Exclude","EMPTY_RUNNING_TEXT_PART","MessagePartChildrenProps","MessagePartChildrenInner","Pick","client","getState","getItem","state","hasUI","partMethods","MessagePartChildren","MessagePrimitivePartsInner","contentLength","_temp10","isRunning","_temp11","isEmptyRunning","_","Array","from","MessagePrimitivePartsCompat","_temp12","messageRanges","toolLeafKey","partIndex","map","ChainOfThoughtComponent","ToolGroupComponent","partIndex_0","__0","i_0","partIndex_1","partsElements","_temp","c","_temp3","c_0","toolCallId","s_0"],"sources":["../../../../src/react/primitives/message/MessageParts.tsx"],"sourcesContent":["import {\n type ComponentType,\n type FC,\n type ReactNode,\n memo,\n type PropsWithChildren,\n useMemo,\n} from \"react\";\nimport {\n RenderChildrenWithAccessor,\n useAuiState,\n useAui,\n} from \"@assistant-ui/store\";\nimport type { PartState } from \"../../../store/scopes/part\";\nimport { PartByIndexProvider } from \"../../providers/PartByIndexProvider\";\nimport { TextMessagePartProvider } from \"../../providers/TextMessagePartProvider\";\nimport { ChainOfThoughtByIndicesProvider } from \"../../providers/ChainOfThoughtByIndicesProvider\";\nimport { getMessageQuote } from \"../../utils/getMessageQuote\";\nimport type {\n Unstable_AudioMessagePartComponent,\n DataMessagePartComponent,\n DataMessagePartProps,\n EmptyMessagePartComponent,\n TextMessagePartComponent,\n ImageMessagePartComponent,\n SourceMessagePartComponent,\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n FileMessagePartComponent,\n ReasoningMessagePartComponent,\n ReasoningGroupComponent,\n QuoteMessagePartComponent,\n GenerativeUIComponentRegistry,\n} from \"../../types/MessagePartComponentTypes\";\nimport { GenerativeUIRender } from \"../generativeUI/GenerativeUI\";\nimport {\n isMcpAppUri,\n type MessagePartStatus,\n type GenerativeUIMessagePart,\n} from \"../../../types/message\";\nimport type { DataRenderersState } from \"../../types/scopes/dataRenderers\";\nimport type { ToolsState } from \"../../types/scopes/tools\";\nimport { useShallowSelector } from \"@assistant-ui/store/internal\";\n\ntype MessagePartRange =\n | { type: \"single\"; index: number }\n | {\n type: \"toolGroup\";\n startIndex: number;\n endIndex: number;\n idKey?: string | undefined;\n }\n | {\n type: \"reasoningGroup\";\n startIndex: number;\n endIndex: number;\n idKey?: string | undefined;\n }\n | {\n type: \"chainOfThoughtGroup\";\n startIndex: number;\n endIndex: number;\n idKey?: string | undefined;\n };\n\n/**\n * Creates a group state manager for a specific part type.\n * Returns functions to start, end, and finalize groups.\n */\nconst createGroupState = <\n T extends \"toolGroup\" | \"reasoningGroup\" | \"chainOfThoughtGroup\",\n>(\n groupType: T,\n) => {\n let start = -1;\n\n return {\n startGroup: (index: number) => {\n if (start === -1) {\n start = index;\n }\n },\n endGroup: (endIndex: number, ranges: MessagePartRange[]) => {\n if (start !== -1) {\n ranges.push({\n type: groupType,\n startIndex: start,\n endIndex,\n } as MessagePartRange);\n start = -1;\n }\n },\n finalize: (endIndex: number, ranges: MessagePartRange[]) => {\n if (start !== -1) {\n ranges.push({\n type: groupType,\n startIndex: start,\n endIndex,\n } as MessagePartRange);\n }\n },\n };\n};\n\n/**\n * Groups consecutive tool-call and reasoning message parts into ranges.\n * Always groups tool calls and reasoning parts, even if there's only one.\n * When useChainOfThought is true, groups tool-call and reasoning parts together.\n * `partIds[i]` optionally carries a stable identity for part `i`; group\n * ranges derive an `idKey` from their first part's id (first claim wins).\n */\nexport const groupMessageParts = (\n messageTypes: readonly string[],\n useChainOfThought: boolean,\n partIds?: readonly (string | undefined)[],\n): MessagePartRange[] => {\n const ranges: MessagePartRange[] = [];\n\n if (useChainOfThought) {\n const chainOfThoughtGroup = createGroupState(\"chainOfThoughtGroup\");\n\n for (let i = 0; i < messageTypes.length; i++) {\n const type = messageTypes[i];\n\n if (type === \"tool-call\" || type === \"reasoning\") {\n chainOfThoughtGroup.startGroup(i);\n } else {\n chainOfThoughtGroup.endGroup(i - 1, ranges);\n ranges.push({ type: \"single\", index: i });\n }\n }\n\n chainOfThoughtGroup.finalize(messageTypes.length - 1, ranges);\n } else {\n const toolGroup = createGroupState(\"toolGroup\");\n const reasoningGroup = createGroupState(\"reasoningGroup\");\n\n for (let i = 0; i < messageTypes.length; i++) {\n const type = messageTypes[i];\n\n if (type === \"tool-call\") {\n reasoningGroup.endGroup(i - 1, ranges);\n toolGroup.startGroup(i);\n } else if (type === \"reasoning\") {\n toolGroup.endGroup(i - 1, ranges);\n reasoningGroup.startGroup(i);\n } else {\n toolGroup.endGroup(i - 1, ranges);\n reasoningGroup.endGroup(i - 1, ranges);\n ranges.push({ type: \"single\", index: i });\n }\n }\n\n toolGroup.finalize(messageTypes.length - 1, ranges);\n reasoningGroup.finalize(messageTypes.length - 1, ranges);\n }\n\n if (partIds) {\n const claimed = new Set<string>();\n for (const range of ranges) {\n if (range.type === \"single\") continue;\n const id = partIds[range.startIndex];\n if (id !== undefined && !claimed.has(id)) {\n claimed.add(id);\n range.idKey = `id:${id}`;\n }\n }\n }\n\n return ranges;\n};\n\nconst useMessagePartsGroups = (\n useChainOfThought: boolean,\n): { ranges: MessagePartRange[]; partIds: (string | undefined)[] } => {\n const messageTypes = useAuiState(\n useShallowSelector((s) => s.message.parts.map((c: any) => c.type)),\n );\n const partIds = useAuiState(\n useShallowSelector((s) =>\n s.message.parts.map((c: any) =>\n c.type === \"tool-call\" ? c.toolCallId : undefined,\n ),\n ),\n );\n\n return useMemo(() => {\n if (messageTypes.length === 0) {\n return { ranges: [], partIds };\n }\n return {\n ranges: groupMessageParts(messageTypes, useChainOfThought, partIds),\n partIds,\n };\n }, [messageTypes, partIds, useChainOfThought]);\n};\n\nexport namespace MessagePrimitiveParts {\n type DataConfig = {\n /** Map data event names to specific components */\n by_name?: Record<string, DataMessagePartComponent | undefined> | undefined;\n /** Fallback component for unmatched data events */\n Fallback?: DataMessagePartComponent | undefined;\n };\n\n type BaseComponents = {\n /** Component for rendering empty messages */\n Empty?: EmptyMessagePartComponent | undefined;\n /** Component for rendering text content */\n Text?: TextMessagePartComponent | undefined;\n /** Component for rendering source content */\n Source?: SourceMessagePartComponent | undefined;\n /** Component for rendering image content */\n Image?: ImageMessagePartComponent | undefined;\n /** Component for rendering file content */\n File?: FileMessagePartComponent | undefined;\n /**\n * Component for rendering audio content.\n *\n * @deprecated Render audio through the `File` slot instead, branching on an\n * `audio/*` mime type.\n */\n Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;\n /** Configuration for data part rendering */\n data?: DataConfig | undefined;\n /** Component for rendering a quoted message reference (from metadata, not parts) */\n Quote?: QuoteMessagePartComponent | undefined;\n /**\n * Configuration for generative-ui part rendering.\n *\n * `components` is the consumer-provided allowlist of React components\n * the agent's JSON spec is permitted to render. Any name not present in\n * the registry is rejected with a typed `GenerativeUIRenderError` —\n * this is the security boundary in the same-realm rendering path.\n */\n generativeUI?:\n | {\n /** The component allowlist (the security boundary). */\n components: GenerativeUIComponentRegistry;\n /** Optional fallback for unknown component names. */\n Fallback?:\n | ComponentType<{ component: string; props?: unknown }>\n | undefined;\n }\n | undefined;\n };\n\n type ToolsConfig =\n | {\n /** Map of tool names to their specific components */\n by_name?:\n | Record<string, ToolCallMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unregistered tools */\n Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;\n }\n | {\n /** Override component that handles all tool calls */\n Override: ComponentType<ToolCallMessagePartProps>;\n };\n\n /**\n * Standard component configuration for rendering reasoning and tool-call parts\n * individually (with optional grouping).\n *\n * Cannot be combined with `ChainOfThought`.\n */\n type StandardComponents = BaseComponents & {\n /** Component for rendering reasoning content (typically hidden) */\n Reasoning?: ReasoningMessagePartComponent | undefined;\n /** Configuration for tool call rendering */\n tools?: ToolsConfig | undefined;\n\n /**\n * Component for rendering grouped consecutive tool calls.\n *\n * @param startIndex - Index of the first tool call in the group\n * @param endIndex - Index of the last tool call in the group\n * @param children - Rendered tool call components to display within the group\n *\n * @deprecated Use `<MessagePrimitive.GroupedParts>` with a custom `groupBy` instead.\n */\n ToolGroup?: ComponentType<\n PropsWithChildren<{ startIndex: number; endIndex: number }>\n >;\n\n /**\n * Component for rendering grouped reasoning parts.\n *\n * @param startIndex - Index of the first reasoning part in the group\n * @param endIndex - Index of the last reasoning part in the group\n * @param children - Rendered reasoning part components\n *\n * @deprecated Use `<MessagePrimitive.GroupedParts>` with a custom `groupBy` instead.\n */\n ReasoningGroup?: ReasoningGroupComponent;\n\n ChainOfThought?: never;\n };\n\n /**\n * Chain of thought component configuration.\n *\n * When `ChainOfThought` is set, it takes control of rendering ALL reasoning and\n * tool-call parts in the message. The `Reasoning`, `tools`, `ReasoningGroup`, and\n * `ToolGroup` components cannot be used alongside it.\n */\n type ChainOfThoughtComponents = BaseComponents & {\n /**\n * @deprecated Use `<MessagePrimitive.GroupedParts>` with a `groupBy`\n * that returns `[\"group-thought\", ...]` for reasoning and tool-call\n * parts. See `@assistant-ui/ui` for a worked example.\n */\n ChainOfThought: ComponentType;\n\n Reasoning?: never;\n tools?: never;\n ToolGroup?: never;\n ReasoningGroup?: never;\n };\n\n export type Props =\n | {\n /**\n * Component configuration for rendering different types of message content.\n *\n * Use either `Reasoning`/`tools`/`ToolGroup`/`ReasoningGroup` for standard rendering,\n * or `ChainOfThought` to group all reasoning and tool-call parts into a single\n * collapsible component. These two modes are mutually exclusive.\n */\n components?: StandardComponents | ChainOfThoughtComponents | undefined;\n /**\n * When enabled, shows the Empty component if the last part in the message\n * is anything other than Text or Reasoning.\n *\n * @experimental This API is experimental and may change in future versions.\n * @default true\n */\n unstable_showEmptyOnNonTextEnd?: boolean | undefined;\n children?: never;\n }\n | {\n /** Render function called for each part. Receives the enriched part state. */\n children: (value: { part: EnrichedPartState }) => ReactNode;\n components?: never;\n unstable_showEmptyOnNonTextEnd?: never;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallMessagePartComponent | undefined;\n} & ToolCallMessagePartProps) => {\n const Render = useAuiState(\n (s) => s.tools.toolUIs[props.toolName]?.[0]?.render ?? Fallback,\n );\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst getDataRenderer = (\n dataRenderers: DataRenderersState,\n name: string,\n inlineFallback: DataMessagePartComponent | undefined,\n): DataMessagePartComponent | undefined => {\n const named = dataRenderers.renderers[name]?.[0];\n if (named) return named;\n return dataRenderers.fallbacks[0] ?? inlineFallback;\n};\n\nconst DataUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: DataMessagePartComponent | undefined;\n} & DataMessagePartProps) => {\n const Render = useAuiState((s) =>\n getDataRenderer(s.dataRenderers, props.name, Fallback),\n );\n if (!Render) return null;\n return <Render {...props} />;\n};\n\n/**\n * Platform-agnostic no-op default components.\n * Each platform (web, RN) wraps MessagePrimitiveParts with its own defaults.\n */\nexport const defaultComponents = {\n Text: () => null,\n Reasoning: () => null,\n Source: () => null,\n Image: () => null,\n File: () => null,\n Unstable_Audio: () => null,\n ToolGroup: ({ children }: PropsWithChildren) => children,\n ReasoningGroup: ({ children }: PropsWithChildren) => children,\n} satisfies MessagePrimitiveParts.Props[\"components\"];\n\ntype MessagePartComponentProps = {\n components: MessagePrimitiveParts.Props[\"components\"];\n};\n\nexport const MessagePartComponent: FC<MessagePartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Reasoning = defaultComponents.Reasoning,\n Image = defaultComponents.Image,\n Source = defaultComponents.Source,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n data,\n generativeUI,\n } = {},\n}) => {\n const aui = useAui();\n const part = useAuiState((s) => s.part);\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = aui.part.addToolResult;\n const resume = aui.part.resumeToolCall;\n const respondToApproval = aui.part.respondToToolApproval;\n if (\"Override\" in tools)\n return (\n <tools.Override\n {...part}\n addResult={addResult}\n resume={resume}\n respondToApproval={respondToApproval}\n />\n );\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return (\n <ToolUIDisplay\n {...part}\n Fallback={Tool}\n addResult={addResult}\n resume={resume}\n respondToApproval={respondToApproval}\n />\n );\n }\n\n if (part.status?.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n return <Text {...part} />;\n\n case \"reasoning\":\n return <Reasoning {...part} />;\n\n case \"source\":\n return <Source {...part} />;\n\n case \"image\":\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n case \"data\": {\n const Data = data?.by_name?.[part.name] ?? data?.Fallback;\n return <DataUIDisplay {...part} Fallback={Data} />;\n }\n\n case \"generative-ui\": {\n if (!generativeUI?.components) {\n if (\n typeof process !== \"undefined\" &&\n process.env?.NODE_ENV !== \"production\"\n ) {\n console.warn(\n \"MessagePrimitive.Parts received a generative-ui part but no \" +\n \"`components.generativeUI.components` allowlist was provided. \" +\n \"Pass an allowlist or render with <MessagePrimitive.GenerativeUI />.\",\n );\n }\n return null;\n }\n return (\n <GenerativeUIRender\n spec={(part as GenerativeUIMessagePart).spec}\n components={generativeUI.components}\n Fallback={generativeUI.Fallback}\n />\n );\n }\n\n default:\n console.warn(`Unknown message part type: ${type}`);\n return null;\n }\n};\n\nexport namespace MessagePrimitivePartByIndex {\n export type Props = {\n index: number;\n components: MessagePrimitiveParts.Props[\"components\"];\n };\n}\n\n/**\n * Renders a single message part at the specified index.\n */\nexport const MessagePrimitivePartByIndex: FC<MessagePrimitivePartByIndex.Props> =\n memo(\n ({ index, components }) => {\n return (\n <PartByIndexProvider index={index}>\n <MessagePartComponent components={components} />\n </PartByIndexProvider>\n );\n },\n (prev, next) =>\n prev.index === next.index &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Reasoning === next.components?.Reasoning &&\n prev.components?.Source === next.components?.Source &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.tools === next.components?.tools &&\n prev.components?.data === next.components?.data &&\n prev.components?.generativeUI === next.components?.generativeUI &&\n prev.components?.ToolGroup === next.components?.ToolGroup &&\n prev.components?.ReasoningGroup === next.components?.ReasoningGroup,\n );\n\nMessagePrimitivePartByIndex.displayName = \"MessagePrimitive.PartByIndex\";\n\nconst EmptyPartFallback: FC<{\n status: MessagePartStatus;\n component: TextMessagePartComponent;\n}> = ({ status, component: Component }) => {\n return (\n <TextMessagePartProvider text=\"\" isRunning={status.type === \"running\"}>\n <Component type=\"text\" text=\"\" status={status} />\n </TextMessagePartProvider>\n );\n};\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst RUNNING_STATUS: MessagePartStatus = Object.freeze({\n type: \"running\",\n});\n\nconst EmptyPartsImpl: FC<MessagePartComponentProps> = ({ components }) => {\n const status = useAuiState(\n (s) => (s.message.status ?? COMPLETE_STATUS) as MessagePartStatus,\n );\n\n if (components?.Empty) return <components.Empty status={status} />;\n\n if (status.type !== \"running\") return null;\n\n return (\n <EmptyPartFallback\n status={status}\n component={components?.Text ?? defaultComponents.Text}\n />\n );\n};\n\nconst EmptyParts = memo(\n EmptyPartsImpl,\n (prev, next) =>\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\nconst ConditionalEmptyImpl: FC<{\n components: MessagePrimitiveParts.Props[\"components\"];\n enabled: boolean;\n}> = ({ components, enabled }) => {\n const shouldShowEmpty = useAuiState((s) => {\n if (!enabled) return false;\n if (s.message.parts.length === 0) return false;\n\n const lastPart = s.message.parts[s.message.parts.length - 1];\n return lastPart?.type !== \"text\" && lastPart?.type !== \"reasoning\";\n });\n\n if (!shouldShowEmpty) return null;\n return <EmptyParts components={components} />;\n};\n\nconst ConditionalEmpty = memo(\n ConditionalEmptyImpl,\n (prev, next) =>\n prev.enabled === next.enabled &&\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\nconst QuoteRendererImpl: FC<{ Quote: QuoteMessagePartComponent }> = ({\n Quote,\n}) => {\n const quoteInfo = useAuiState(getMessageQuote);\n if (!quoteInfo) return null;\n return <Quote text={quoteInfo.text} messageId={quoteInfo.messageId} />;\n};\n\nconst QuoteRenderer = memo(QuoteRendererImpl);\n\nfunction resolveToolRender(\n toolsState: ToolsState,\n part: Extract<PartState, { type: \"tool-call\" }>,\n): ToolCallMessagePartComponent | null {\n const named = toolsState.toolUIs[part.toolName]?.[0]?.render ?? null;\n if (named) return named;\n if (isMcpAppUri(part.mcp?.app?.resourceUri) && toolsState.mcpApp) {\n return toolsState.mcpApp.render;\n }\n return null;\n}\n\n/**\n * Stable propless component that renders the registered tool UI for the\n * current part context. Reads tool registry and part state from context.\n */\nconst RegisteredToolUI: FC = () => {\n const aui = useAui();\n const part = useAuiState((s) => s.part);\n const Render = useAuiState((s) =>\n s.part.type === \"tool-call\" ? resolveToolRender(s.tools, s.part) : null,\n );\n\n if (!Render || part.type !== \"tool-call\") return null;\n\n return (\n <Render\n {...part}\n addResult={aui.part.addToolResult}\n resume={aui.part.resumeToolCall}\n respondToApproval={aui.part.respondToToolApproval}\n />\n );\n};\n\n/**\n * Stable propless component that renders the registered data renderer UI\n * for the current part context.\n */\nconst RegisteredDataRendererUI: FC = () => {\n const part = useAuiState((s) => s.part);\n const Render = useAuiState((s) =>\n s.part.type === \"data\"\n ? (getDataRenderer(s.dataRenderers, s.part.name, undefined) ?? null)\n : null,\n );\n\n if (!Render || part.type !== \"data\") return null;\n\n return <Render {...(part as DataMessagePartProps)} />;\n};\n\n/**\n * Fallback component rendered when the children render function returns null.\n * Renders registered tool/data UIs via context.\n * For all other part types, renders nothing.\n *\n * This allows users to write:\n * {({ part }) => {\n * if (part.type === \"text\") return <MyText />;\n * return null; // tool UIs and data UIs still render via registry\n * }}\n *\n * To explicitly render nothing (suppressing registered UIs), return <></>.\n */\nconst DefaultPartFallback: FC = () => {\n const partType = useAuiState((s) => s.part.type);\n\n if (partType === \"tool-call\") return <RegisteredToolUI />;\n if (partType === \"data\") return <RegisteredDataRendererUI />;\n\n return null;\n};\n\nexport type { PartState };\n\n/**\n * Enriched part state passed to children render functions.\n *\n * For tool-call parts, adds `toolUI`, `addResult`, and `resume`.\n * For data parts, adds `dataRendererUI`.\n *\n * The render function is also invoked once with a synthetic empty text part\n * (`{ type: \"text\", text: \"\", status: { type: \"running\" } }`) when the\n * assistant message has no parts yet but is in the running state, so a\n * loading indicator can render. Differentiate this from a real empty text\n * via `part.status?.type === \"running\" && part.text === \"\"`.\n */\nexport type EnrichedPartState =\n | (Extract<PartState, { type: \"tool-call\" }> & {\n /** The registered tool UI element, or null if none registered. */\n readonly toolUI: ReactNode;\n /** Add a tool result to this tool call. */\n addResult: ToolCallMessagePartProps[\"addResult\"];\n /** Resume a tool call waiting for human input. */\n resume: ToolCallMessagePartProps[\"resume\"];\n /** Respond to a server-side tool approval gate. */\n respondToApproval: ToolCallMessagePartProps[\"respondToApproval\"];\n })\n | (Extract<PartState, { type: \"data\" }> & {\n /** The registered data renderer UI element, or null if none registered. */\n readonly dataRendererUI: ReactNode;\n })\n | Exclude<PartState, { type: \"tool-call\" } | { type: \"data\" }>;\n\nconst EMPTY_RUNNING_TEXT_PART: Extract<EnrichedPartState, { type: \"text\" }> =\n Object.freeze({\n type: \"text\",\n text: \"\",\n status: RUNNING_STATUS,\n });\n\n/**\n * Renders a single part by index, calling `children` with the\n * {@link EnrichedPartState} (tool/data UI enrichments + addResult/resume\n * for tool calls). Shared between `<MessagePrimitive.Parts>` and\n * `<MessagePrimitive.GroupedParts>`. Returns whatever `children`\n * returns — callers decide how to handle a `null` return.\n */\ntype MessagePartChildrenProps = {\n index: number;\n children: (value: { part: EnrichedPartState }) => ReactNode;\n};\n\nconst MessagePartChildrenInner: FC<\n Pick<MessagePartChildrenProps, \"children\">\n> = ({ children }) => {\n const aui = useAui();\n // Subscribed (not snapshotted like `tools`) so fallbacks registered\n // after the first render trigger a re-render and `hasUI` re-evaluates.\n const dataRenderers = useAuiState((s) => s.dataRenderers);\n\n return (\n <RenderChildrenWithAccessor\n getItemState={(client) => client.part.getState()}\n >\n {(getItem) =>\n children({\n get part() {\n const state = getItem();\n if (state.type === \"tool-call\") {\n const toolsState = aui.tools.getState();\n const hasUI = resolveToolRender(toolsState, state) !== null;\n const partMethods = aui.part;\n return {\n ...state,\n toolUI: hasUI ? <RegisteredToolUI /> : null,\n addResult: partMethods.addToolResult,\n resume: partMethods.resumeToolCall,\n respondToApproval: partMethods.respondToToolApproval,\n };\n }\n if (state.type === \"data\") {\n const hasUI =\n getDataRenderer(dataRenderers, state.name, undefined) !==\n undefined;\n return {\n ...state,\n dataRendererUI: hasUI ? <RegisteredDataRendererUI /> : null,\n };\n }\n return state;\n },\n })\n }\n </RenderChildrenWithAccessor>\n );\n};\n\nexport const MessagePartChildren: FC<MessagePartChildrenProps> = ({\n index,\n children,\n}) => {\n return (\n <PartByIndexProvider index={index}>\n <MessagePartChildrenInner>{children}</MessagePartChildrenInner>\n </PartByIndexProvider>\n );\n};\n\nconst MessagePrimitivePartsInner: FC<{\n children: (value: { part: EnrichedPartState }) => ReactNode;\n}> = ({ children }) => {\n const contentLength = useAuiState((s) => s.message.parts.length);\n const isRunning = useAuiState(\n (s) => (s.message.status?.type ?? \"complete\") === \"running\",\n );\n const isEmptyRunning = contentLength === 0 && isRunning;\n\n if (contentLength === 0) {\n if (!isEmptyRunning) return null;\n return (\n <TextMessagePartProvider text=\"\" isRunning>\n {children({ part: EMPTY_RUNNING_TEXT_PART })}\n </TextMessagePartProvider>\n );\n }\n\n return (\n <>\n {Array.from({ length: contentLength }, (_, index) => (\n <MessagePartChildren key={index} index={index}>\n {(value) => children(value) ?? <DefaultPartFallback />}\n </MessagePartChildren>\n ))}\n </>\n );\n};\n\n/**\n * Renders the parts of a message with support for multiple content types.\n *\n * This is the platform-agnostic base. Each platform wraps this with its own\n * default components (web uses `<p>`, `<span>`; RN would use `<Text>`, etc.).\n */\nexport const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props> = ({\n components,\n unstable_showEmptyOnNonTextEnd = true,\n children,\n}) => {\n if (children) {\n return <MessagePrimitivePartsInner>{children}</MessagePrimitivePartsInner>;\n }\n return (\n <MessagePrimitivePartsCompat\n components={components}\n unstable_showEmptyOnNonTextEnd={unstable_showEmptyOnNonTextEnd}\n />\n );\n};\n\nMessagePrimitiveParts.displayName = \"MessagePrimitive.Parts\";\n\nconst MessagePrimitivePartsCompat: FC<{\n components: MessagePrimitiveParts.Props[\"components\"];\n unstable_showEmptyOnNonTextEnd: boolean;\n}> = ({ components, unstable_showEmptyOnNonTextEnd }) => {\n const contentLength = useAuiState((s) => s.message.parts.length);\n const useChainOfThought = !!components?.ChainOfThought;\n const { ranges: messageRanges, partIds } =\n useMessagePartsGroups(useChainOfThought);\n\n const partsElements = useMemo(() => {\n if (contentLength === 0) {\n return <EmptyParts components={components} />;\n }\n\n const claimed = new Set<string>();\n const toolLeafKey = (partIndex: number) => {\n const id = partIds[partIndex];\n if (id !== undefined && !claimed.has(id)) {\n claimed.add(id);\n return `part-id:${id}`;\n }\n return `part-${partIndex}`;\n };\n\n return messageRanges.map((range) => {\n if (range.type === \"single\") {\n return (\n <MessagePrimitivePartByIndex\n key={range.index}\n index={range.index}\n components={components}\n />\n );\n } else if (range.type === \"chainOfThoughtGroup\") {\n const ChainOfThoughtComponent = components?.ChainOfThought;\n if (!ChainOfThoughtComponent) return null;\n return (\n <ChainOfThoughtByIndicesProvider\n key={`chainOfThought-${range.idKey ?? range.startIndex}`}\n startIndex={range.startIndex}\n endIndex={range.endIndex}\n >\n <ChainOfThoughtComponent />\n </ChainOfThoughtByIndicesProvider>\n );\n } else if (range.type === \"toolGroup\") {\n const ToolGroupComponent =\n components?.ToolGroup ?? defaultComponents.ToolGroup;\n return (\n <ToolGroupComponent\n key={`tool-${range.idKey ?? range.startIndex}`}\n startIndex={range.startIndex}\n endIndex={range.endIndex}\n >\n {Array.from(\n { length: range.endIndex - range.startIndex + 1 },\n (_, i) => {\n const partIndex = range.startIndex + i;\n return (\n <MessagePrimitivePartByIndex\n key={toolLeafKey(partIndex)}\n index={partIndex}\n components={components}\n />\n );\n },\n )}\n </ToolGroupComponent>\n );\n } else {\n // reasoningGroup\n const ReasoningGroupComponent =\n components?.ReasoningGroup ?? defaultComponents.ReasoningGroup;\n return (\n <ReasoningGroupComponent\n key={`reasoning-${range.startIndex}`}\n startIndex={range.startIndex}\n endIndex={range.endIndex}\n >\n {Array.from(\n { length: range.endIndex - range.startIndex + 1 },\n (_, i) => {\n const partIndex = range.startIndex + i;\n return (\n <MessagePrimitivePartByIndex\n key={`part-${partIndex}`}\n index={partIndex}\n components={components}\n />\n );\n },\n )}\n </ReasoningGroupComponent>\n );\n }\n });\n }, [messageRanges, partIds, components, contentLength]);\n\n return (\n <>\n {components?.Quote && <QuoteRenderer Quote={components.Quote} />}\n {partsElements}\n <ConditionalEmpty\n components={components}\n enabled={unstable_showEmptyOnNonTextEnd}\n />\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"MessageParts.js","names":["ComponentType","FC","ReactNode","memo","PropsWithChildren","useMemo","RenderChildrenWithAccessor","useAuiState","useAui","PartState","PartByIndexProvider","TextMessagePartProvider","ChainOfThoughtByIndicesProvider","getMessageQuote","Unstable_AudioMessagePartComponent","DataMessagePartComponent","DataMessagePartProps","EmptyMessagePartComponent","TextMessagePartComponent","ImageMessagePartComponent","SourceMessagePartComponent","ToolCallMessagePartComponent","ToolCallMessagePartProps","FileMessagePartComponent","ReasoningMessagePartComponent","ReasoningGroupComponent","QuoteMessagePartComponent","GenerativeUIComponentRegistry","GenerativeUIRender","isMcpAppUri","MessagePartStatus","GenerativeUIMessagePart","DataRenderersState","ToolsState","useShallowSelector","MessagePartRange","type","index","startIndex","endIndex","idKey","createGroupState","groupType","T","start","startGroup","endGroup","ranges","push","finalize","groupMessageParts","messageTypes","useChainOfThought","partIds","chainOfThoughtGroup","i","length","toolGroup","reasoningGroup","claimed","Set","range","id","undefined","has","add","useMessagePartsGroups","$","_c","_temp2","_temp4","t0","bb0","t1","Symbol","for","t2","MessagePrimitiveParts","DataConfig","by_name","Record","Fallback","BaseComponents","Empty","Text","Source","Image","File","Unstable_Audio","data","Quote","generativeUI","components","component","props","ToolsConfig","Override","StandardComponents","Reasoning","tools","ToolGroup","ReasoningGroup","ChainOfThought","ChainOfThoughtComponents","Props","unstable_showEmptyOnNonTextEnd","children","value","part","EnrichedPartState","ToolUIDisplay","toolName","s","toolUIs","render","Render","getDataRenderer","dataRenderers","name","inlineFallback","named","renderers","fallbacks","DataUIDisplay","defaultComponents","MessagePartComponentProps","MessagePartComponent","t3","t4","t5","t6","t7","t8","t9","Audio","t10","aui","_temp5","addResult","addToolResult","resume","resumeToolCall","respondToApproval","respondToToolApproval","unstable_recordInteraction","t11","t12","Object","hasOwn","Tool","t13","status","Error","Data","process","env","NODE_ENV","console","warn","spec","unhandledType","MessagePrimitivePartByIndex","prev","next","displayName","EmptyPartFallback","Component","COMPLETE_STATUS","freeze","RUNNING_STATUS","EmptyPartsImpl","_temp6","EmptyParts","ConditionalEmptyImpl","enabled","message","parts","lastPart","shouldShowEmpty","ConditionalEmpty","QuoteRendererImpl","quoteInfo","messageId","text","QuoteRenderer","resolveToolRender","toolsState","Extract","mcp","app","resourceUri","mcpApp","RegisteredToolUI","_temp7","_temp8","RegisteredDataRendererUI","_temp9","_temp0","DefaultPartFallback","partType","_temp1","toolUI","dataRendererUI","Exclude","EMPTY_RUNNING_TEXT_PART","MessagePartChildrenProps","MessagePartChildrenInner","Pick","client","getState","getItem","state","hasUI","partMethods","MessagePartChildren","MessagePrimitivePartsInner","contentLength","_temp10","isRunning","_temp11","isEmptyRunning","_","Array","from","MessagePrimitivePartsCompat","_temp12","messageRanges","toolLeafKey","partIndex","map","ChainOfThoughtComponent","ToolGroupComponent","partIndex_0","__0","i_0","partIndex_1","partsElements","_temp","c","_temp3","c_0","toolCallId","s_0"],"sources":["../../../../src/react/primitives/message/MessageParts.tsx"],"sourcesContent":["import {\n type ComponentType,\n type FC,\n type ReactNode,\n memo,\n type PropsWithChildren,\n useMemo,\n} from \"react\";\nimport {\n RenderChildrenWithAccessor,\n useAuiState,\n useAui,\n} from \"@assistant-ui/store\";\nimport type { PartState } from \"../../../store/scopes/part\";\nimport { PartByIndexProvider } from \"../../providers/PartByIndexProvider\";\nimport { TextMessagePartProvider } from \"../../providers/TextMessagePartProvider\";\nimport { ChainOfThoughtByIndicesProvider } from \"../../providers/ChainOfThoughtByIndicesProvider\";\nimport { getMessageQuote } from \"../../utils/getMessageQuote\";\nimport type {\n Unstable_AudioMessagePartComponent,\n DataMessagePartComponent,\n DataMessagePartProps,\n EmptyMessagePartComponent,\n TextMessagePartComponent,\n ImageMessagePartComponent,\n SourceMessagePartComponent,\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n FileMessagePartComponent,\n ReasoningMessagePartComponent,\n ReasoningGroupComponent,\n QuoteMessagePartComponent,\n GenerativeUIComponentRegistry,\n} from \"../../types/MessagePartComponentTypes\";\nimport { GenerativeUIRender } from \"../generativeUI/GenerativeUI\";\nimport {\n isMcpAppUri,\n type MessagePartStatus,\n type GenerativeUIMessagePart,\n} from \"../../../types/message\";\nimport type { DataRenderersState } from \"../../types/scopes/dataRenderers\";\nimport type { ToolsState } from \"../../types/scopes/tools\";\nimport { useShallowSelector } from \"@assistant-ui/store/internal\";\n\ntype MessagePartRange =\n | { type: \"single\"; index: number }\n | {\n type: \"toolGroup\";\n startIndex: number;\n endIndex: number;\n idKey?: string | undefined;\n }\n | {\n type: \"reasoningGroup\";\n startIndex: number;\n endIndex: number;\n idKey?: string | undefined;\n }\n | {\n type: \"chainOfThoughtGroup\";\n startIndex: number;\n endIndex: number;\n idKey?: string | undefined;\n };\n\n/**\n * Creates a group state manager for a specific part type.\n * Returns functions to start, end, and finalize groups.\n */\nconst createGroupState = <\n T extends \"toolGroup\" | \"reasoningGroup\" | \"chainOfThoughtGroup\",\n>(\n groupType: T,\n) => {\n let start = -1;\n\n return {\n startGroup: (index: number) => {\n if (start === -1) {\n start = index;\n }\n },\n endGroup: (endIndex: number, ranges: MessagePartRange[]) => {\n if (start !== -1) {\n ranges.push({\n type: groupType,\n startIndex: start,\n endIndex,\n } as MessagePartRange);\n start = -1;\n }\n },\n finalize: (endIndex: number, ranges: MessagePartRange[]) => {\n if (start !== -1) {\n ranges.push({\n type: groupType,\n startIndex: start,\n endIndex,\n } as MessagePartRange);\n }\n },\n };\n};\n\n/**\n * Groups consecutive tool-call and reasoning message parts into ranges.\n * Always groups tool calls and reasoning parts, even if there's only one.\n * When useChainOfThought is true, groups tool-call and reasoning parts together.\n * `partIds[i]` optionally carries a stable identity for part `i`; group\n * ranges derive an `idKey` from their first part's id (first claim wins).\n */\nexport const groupMessageParts = (\n messageTypes: readonly string[],\n useChainOfThought: boolean,\n partIds?: readonly (string | undefined)[],\n): MessagePartRange[] => {\n const ranges: MessagePartRange[] = [];\n\n if (useChainOfThought) {\n const chainOfThoughtGroup = createGroupState(\"chainOfThoughtGroup\");\n\n for (let i = 0; i < messageTypes.length; i++) {\n const type = messageTypes[i];\n\n if (type === \"tool-call\" || type === \"reasoning\") {\n chainOfThoughtGroup.startGroup(i);\n } else {\n chainOfThoughtGroup.endGroup(i - 1, ranges);\n ranges.push({ type: \"single\", index: i });\n }\n }\n\n chainOfThoughtGroup.finalize(messageTypes.length - 1, ranges);\n } else {\n const toolGroup = createGroupState(\"toolGroup\");\n const reasoningGroup = createGroupState(\"reasoningGroup\");\n\n for (let i = 0; i < messageTypes.length; i++) {\n const type = messageTypes[i];\n\n if (type === \"tool-call\") {\n reasoningGroup.endGroup(i - 1, ranges);\n toolGroup.startGroup(i);\n } else if (type === \"reasoning\") {\n toolGroup.endGroup(i - 1, ranges);\n reasoningGroup.startGroup(i);\n } else {\n toolGroup.endGroup(i - 1, ranges);\n reasoningGroup.endGroup(i - 1, ranges);\n ranges.push({ type: \"single\", index: i });\n }\n }\n\n toolGroup.finalize(messageTypes.length - 1, ranges);\n reasoningGroup.finalize(messageTypes.length - 1, ranges);\n }\n\n if (partIds) {\n const claimed = new Set<string>();\n for (const range of ranges) {\n if (range.type === \"single\") continue;\n const id = partIds[range.startIndex];\n if (id !== undefined && !claimed.has(id)) {\n claimed.add(id);\n range.idKey = `id:${id}`;\n }\n }\n }\n\n return ranges;\n};\n\nconst useMessagePartsGroups = (\n useChainOfThought: boolean,\n): { ranges: MessagePartRange[]; partIds: (string | undefined)[] } => {\n const messageTypes = useAuiState(\n useShallowSelector((s) => s.message.parts.map((c: any) => c.type)),\n );\n const partIds = useAuiState(\n useShallowSelector((s) =>\n s.message.parts.map((c: any) =>\n c.type === \"tool-call\" ? c.toolCallId : undefined,\n ),\n ),\n );\n\n return useMemo(() => {\n if (messageTypes.length === 0) {\n return { ranges: [], partIds };\n }\n return {\n ranges: groupMessageParts(messageTypes, useChainOfThought, partIds),\n partIds,\n };\n }, [messageTypes, partIds, useChainOfThought]);\n};\n\nexport namespace MessagePrimitiveParts {\n type DataConfig = {\n /** Map data event names to specific components */\n by_name?: Record<string, DataMessagePartComponent | undefined> | undefined;\n /** Fallback component for unmatched data events */\n Fallback?: DataMessagePartComponent | undefined;\n };\n\n type BaseComponents = {\n /** Component for rendering empty messages */\n Empty?: EmptyMessagePartComponent | undefined;\n /** Component for rendering text content */\n Text?: TextMessagePartComponent | undefined;\n /** Component for rendering source content */\n Source?: SourceMessagePartComponent | undefined;\n /** Component for rendering image content */\n Image?: ImageMessagePartComponent | undefined;\n /** Component for rendering file content */\n File?: FileMessagePartComponent | undefined;\n /**\n * Component for rendering audio content.\n *\n * @deprecated Render audio through the `File` slot instead, branching on an\n * `audio/*` mime type.\n */\n Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;\n /** Configuration for data part rendering */\n data?: DataConfig | undefined;\n /** Component for rendering a quoted message reference (from metadata, not parts) */\n Quote?: QuoteMessagePartComponent | undefined;\n /**\n * Configuration for generative-ui part rendering.\n *\n * `components` is the consumer-provided allowlist of React components\n * the agent's JSON spec is permitted to render. Any name not present in\n * the registry is rejected with a typed `GenerativeUIRenderError` —\n * this is the security boundary in the same-realm rendering path.\n */\n generativeUI?:\n | {\n /** The component allowlist (the security boundary). */\n components: GenerativeUIComponentRegistry;\n /** Optional fallback for unknown component names. */\n Fallback?:\n | ComponentType<{ component: string; props?: unknown }>\n | undefined;\n }\n | undefined;\n };\n\n type ToolsConfig =\n | {\n /** Map of tool names to their specific components */\n by_name?:\n | Record<string, ToolCallMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unregistered tools */\n Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;\n }\n | {\n /** Override component that handles all tool calls */\n Override: ComponentType<ToolCallMessagePartProps>;\n };\n\n /**\n * Standard component configuration for rendering reasoning and tool-call parts\n * individually (with optional grouping).\n *\n * Cannot be combined with `ChainOfThought`.\n */\n type StandardComponents = BaseComponents & {\n /** Component for rendering reasoning content (typically hidden) */\n Reasoning?: ReasoningMessagePartComponent | undefined;\n /** Configuration for tool call rendering */\n tools?: ToolsConfig | undefined;\n\n /**\n * Component for rendering grouped consecutive tool calls.\n *\n * @param startIndex - Index of the first tool call in the group\n * @param endIndex - Index of the last tool call in the group\n * @param children - Rendered tool call components to display within the group\n *\n * @deprecated Use `<MessagePrimitive.GroupedParts>` with a custom `groupBy` instead.\n */\n ToolGroup?: ComponentType<\n PropsWithChildren<{ startIndex: number; endIndex: number }>\n >;\n\n /**\n * Component for rendering grouped reasoning parts.\n *\n * @param startIndex - Index of the first reasoning part in the group\n * @param endIndex - Index of the last reasoning part in the group\n * @param children - Rendered reasoning part components\n *\n * @deprecated Use `<MessagePrimitive.GroupedParts>` with a custom `groupBy` instead.\n */\n ReasoningGroup?: ReasoningGroupComponent;\n\n ChainOfThought?: never;\n };\n\n /**\n * Chain of thought component configuration.\n *\n * When `ChainOfThought` is set, it takes control of rendering ALL reasoning and\n * tool-call parts in the message. The `Reasoning`, `tools`, `ReasoningGroup`, and\n * `ToolGroup` components cannot be used alongside it.\n */\n type ChainOfThoughtComponents = BaseComponents & {\n /**\n * @deprecated Use `<MessagePrimitive.GroupedParts>` with a `groupBy`\n * that returns `[\"group-thought\", ...]` for reasoning and tool-call\n * parts. See `@assistant-ui/ui` for a worked example.\n */\n ChainOfThought: ComponentType;\n\n Reasoning?: never;\n tools?: never;\n ToolGroup?: never;\n ReasoningGroup?: never;\n };\n\n export type Props =\n | {\n /**\n * Component configuration for rendering different types of message content.\n *\n * Use either `Reasoning`/`tools`/`ToolGroup`/`ReasoningGroup` for standard rendering,\n * or `ChainOfThought` to group all reasoning and tool-call parts into a single\n * collapsible component. These two modes are mutually exclusive.\n */\n components?: StandardComponents | ChainOfThoughtComponents | undefined;\n /**\n * When enabled, shows the Empty component if the last part in the message\n * is anything other than Text or Reasoning.\n *\n * @experimental This API is experimental and may change in future versions.\n * @default true\n */\n unstable_showEmptyOnNonTextEnd?: boolean | undefined;\n children?: never;\n }\n | {\n /** Render function called for each part. Receives the enriched part state. */\n children: (value: { part: EnrichedPartState }) => ReactNode;\n components?: never;\n unstable_showEmptyOnNonTextEnd?: never;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallMessagePartComponent | undefined;\n} & ToolCallMessagePartProps) => {\n const Render = useAuiState(\n (s) => s.tools.toolUIs[props.toolName]?.[0]?.render ?? Fallback,\n );\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst getDataRenderer = (\n dataRenderers: DataRenderersState,\n name: string,\n inlineFallback: DataMessagePartComponent | undefined,\n): DataMessagePartComponent | undefined => {\n const named = dataRenderers.renderers[name]?.[0];\n if (named) return named;\n return dataRenderers.fallbacks[0] ?? inlineFallback;\n};\n\nconst DataUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: DataMessagePartComponent | undefined;\n} & DataMessagePartProps) => {\n const Render = useAuiState((s) =>\n getDataRenderer(s.dataRenderers, props.name, Fallback),\n );\n if (!Render) return null;\n return <Render {...props} />;\n};\n\n/**\n * Platform-agnostic no-op default components.\n * Each platform (web, RN) wraps MessagePrimitiveParts with its own defaults.\n */\nexport const defaultComponents = {\n Text: () => null,\n Reasoning: () => null,\n Source: () => null,\n Image: () => null,\n File: () => null,\n Unstable_Audio: () => null,\n ToolGroup: ({ children }: PropsWithChildren) => children,\n ReasoningGroup: ({ children }: PropsWithChildren) => children,\n} satisfies MessagePrimitiveParts.Props[\"components\"];\n\ntype MessagePartComponentProps = {\n components: MessagePrimitiveParts.Props[\"components\"];\n};\n\nexport const MessagePartComponent: FC<MessagePartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Reasoning = defaultComponents.Reasoning,\n Image = defaultComponents.Image,\n Source = defaultComponents.Source,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n data,\n generativeUI,\n } = {},\n}) => {\n const aui = useAui();\n const part = useAuiState((s) => s.part);\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = aui.part.addToolResult;\n const resume = aui.part.resumeToolCall;\n const respondToApproval = aui.part.respondToToolApproval;\n const unstable_recordInteraction = aui.part.unstable_recordInteraction;\n if (\"Override\" in tools)\n return (\n <tools.Override\n {...part}\n addResult={addResult}\n resume={resume}\n respondToApproval={respondToApproval}\n {...(unstable_recordInteraction && { unstable_recordInteraction })}\n />\n );\n const Tool =\n (tools.by_name && Object.hasOwn(tools.by_name, part.toolName)\n ? tools.by_name[part.toolName]\n : undefined) ?? tools.Fallback;\n return (\n <ToolUIDisplay\n {...part}\n Fallback={Tool}\n addResult={addResult}\n resume={resume}\n respondToApproval={respondToApproval}\n {...(unstable_recordInteraction && { unstable_recordInteraction })}\n />\n );\n }\n\n if (part.status?.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n return <Text {...part} />;\n\n case \"reasoning\":\n return <Reasoning {...part} />;\n\n case \"source\":\n return <Source {...part} />;\n\n case \"image\":\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n case \"data\": {\n const Data =\n (data?.by_name && Object.hasOwn(data.by_name, part.name)\n ? data.by_name[part.name]\n : undefined) ?? data?.Fallback;\n return <DataUIDisplay {...part} Fallback={Data} />;\n }\n\n case \"generative-ui\": {\n if (!generativeUI?.components) {\n if (\n typeof process !== \"undefined\" &&\n process.env?.NODE_ENV !== \"production\"\n ) {\n console.warn(\n \"MessagePrimitive.Parts received a generative-ui part but no \" +\n \"`components.generativeUI.components` allowlist was provided. \" +\n \"Pass an allowlist or render with <MessagePrimitive.GenerativeUI />.\",\n );\n }\n return null;\n }\n return (\n <GenerativeUIRender\n spec={(part as GenerativeUIMessagePart).spec}\n components={generativeUI.components}\n Fallback={generativeUI.Fallback}\n />\n );\n }\n\n default: {\n const unhandledType: never = type;\n console.warn(`Unknown message part type: ${unhandledType}`);\n return null;\n }\n }\n};\n\nexport namespace MessagePrimitivePartByIndex {\n export type Props = {\n index: number;\n components: MessagePrimitiveParts.Props[\"components\"];\n };\n}\n\n/**\n * Renders a single message part at the specified index.\n */\nexport const MessagePrimitivePartByIndex: FC<MessagePrimitivePartByIndex.Props> =\n memo(\n ({ index, components }) => {\n return (\n <PartByIndexProvider index={index}>\n <MessagePartComponent components={components} />\n </PartByIndexProvider>\n );\n },\n (prev, next) =>\n prev.index === next.index &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Reasoning === next.components?.Reasoning &&\n prev.components?.Source === next.components?.Source &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.tools === next.components?.tools &&\n prev.components?.data === next.components?.data &&\n prev.components?.generativeUI === next.components?.generativeUI &&\n prev.components?.ToolGroup === next.components?.ToolGroup &&\n prev.components?.ReasoningGroup === next.components?.ReasoningGroup,\n );\n\nMessagePrimitivePartByIndex.displayName = \"MessagePrimitive.PartByIndex\";\n\nconst EmptyPartFallback: FC<{\n status: MessagePartStatus;\n component: TextMessagePartComponent;\n}> = ({ status, component: Component }) => {\n return (\n <TextMessagePartProvider text=\"\" isRunning={status.type === \"running\"}>\n <Component type=\"text\" text=\"\" status={status} />\n </TextMessagePartProvider>\n );\n};\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst RUNNING_STATUS: MessagePartStatus = Object.freeze({\n type: \"running\",\n});\n\nconst EmptyPartsImpl: FC<MessagePartComponentProps> = ({ components }) => {\n const status = useAuiState(\n (s) => (s.message.status ?? COMPLETE_STATUS) as MessagePartStatus,\n );\n\n if (components?.Empty) return <components.Empty status={status} />;\n\n if (status.type !== \"running\") return null;\n\n return (\n <EmptyPartFallback\n status={status}\n component={components?.Text ?? defaultComponents.Text}\n />\n );\n};\n\nconst EmptyParts = memo(\n EmptyPartsImpl,\n (prev, next) =>\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\nconst ConditionalEmptyImpl: FC<{\n components: MessagePrimitiveParts.Props[\"components\"];\n enabled: boolean;\n}> = ({ components, enabled }) => {\n const shouldShowEmpty = useAuiState((s) => {\n if (!enabled) return false;\n if (s.message.parts.length === 0) return false;\n\n const lastPart = s.message.parts[s.message.parts.length - 1];\n return lastPart?.type !== \"text\" && lastPart?.type !== \"reasoning\";\n });\n\n if (!shouldShowEmpty) return null;\n return <EmptyParts components={components} />;\n};\n\nconst ConditionalEmpty = memo(\n ConditionalEmptyImpl,\n (prev, next) =>\n prev.enabled === next.enabled &&\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\nconst QuoteRendererImpl: FC<{ Quote: QuoteMessagePartComponent }> = ({\n Quote,\n}) => {\n const quoteInfo = useAuiState(getMessageQuote);\n if (!quoteInfo) return null;\n return <Quote text={quoteInfo.text} messageId={quoteInfo.messageId} />;\n};\n\nconst QuoteRenderer = memo(QuoteRendererImpl);\n\nfunction resolveToolRender(\n toolsState: ToolsState,\n part: Extract<PartState, { type: \"tool-call\" }>,\n): ToolCallMessagePartComponent | null {\n const named = toolsState.toolUIs[part.toolName]?.[0]?.render ?? null;\n if (named) return named;\n if (isMcpAppUri(part.mcp?.app?.resourceUri) && toolsState.mcpApp) {\n return toolsState.mcpApp.render;\n }\n return null;\n}\n\n/**\n * Stable propless component that renders the registered tool UI for the\n * current part context. Reads tool registry and part state from context.\n */\nconst RegisteredToolUI: FC = () => {\n const aui = useAui();\n const part = useAuiState((s) => s.part);\n const Render = useAuiState((s) =>\n s.part.type === \"tool-call\" ? resolveToolRender(s.tools, s.part) : null,\n );\n const unstable_recordInteraction = aui.part.unstable_recordInteraction;\n\n if (!Render || part.type !== \"tool-call\") return null;\n\n return (\n <Render\n {...part}\n addResult={aui.part.addToolResult}\n resume={aui.part.resumeToolCall}\n respondToApproval={aui.part.respondToToolApproval}\n {...(unstable_recordInteraction && { unstable_recordInteraction })}\n />\n );\n};\n\n/**\n * Stable propless component that renders the registered data renderer UI\n * for the current part context.\n */\nconst RegisteredDataRendererUI: FC = () => {\n const part = useAuiState((s) => s.part);\n const Render = useAuiState((s) =>\n s.part.type === \"data\"\n ? (getDataRenderer(s.dataRenderers, s.part.name, undefined) ?? null)\n : null,\n );\n\n if (!Render || part.type !== \"data\") return null;\n\n return <Render {...(part as DataMessagePartProps)} />;\n};\n\n/**\n * Fallback component rendered when the children render function returns null.\n * Renders registered tool/data UIs via context.\n * For all other part types, renders nothing.\n *\n * This allows users to write:\n * {({ part }) => {\n * if (part.type === \"text\") return <MyText />;\n * return null; // tool UIs and data UIs still render via registry\n * }}\n *\n * To explicitly render nothing (suppressing registered UIs), return <></>.\n */\nexport const DefaultPartFallback: FC = () => {\n const partType = useAuiState((s) => s.part.type);\n\n if (partType === \"tool-call\") return <RegisteredToolUI />;\n if (partType === \"data\") return <RegisteredDataRendererUI />;\n\n return null;\n};\n\nexport type { PartState };\n\n/**\n * Enriched part state passed to children render functions.\n *\n * For tool-call parts, adds `toolUI`, `addResult`, `resume`, and\n * `unstable_recordInteraction`.\n * For data parts, adds `dataRendererUI`.\n *\n * The render function is also invoked once with a synthetic empty text part\n * (`{ type: \"text\", text: \"\", status: { type: \"running\" } }`) when the\n * assistant message has no parts yet but is in the running state, so a\n * loading indicator can render. Differentiate this from a real empty text\n * via `part.status?.type === \"running\" && part.text === \"\"`.\n */\nexport type EnrichedPartState =\n | (Extract<PartState, { type: \"tool-call\" }> & {\n /** The registered tool UI element, or null if none registered. */\n readonly toolUI: ReactNode;\n /** Add a tool result to this tool call. */\n addResult: ToolCallMessagePartProps[\"addResult\"];\n /** Resume a tool call waiting for human input. */\n resume: ToolCallMessagePartProps[\"resume\"];\n /** Respond to a server-side tool approval gate. */\n respondToApproval: ToolCallMessagePartProps[\"respondToApproval\"];\n unstable_recordInteraction?:\n | ToolCallMessagePartProps[\"unstable_recordInteraction\"]\n | undefined;\n })\n | (Extract<PartState, { type: \"data\" }> & {\n /** The registered data renderer UI element, or null if none registered. */\n readonly dataRendererUI: ReactNode;\n })\n | Exclude<PartState, { type: \"tool-call\" } | { type: \"data\" }>;\n\nconst EMPTY_RUNNING_TEXT_PART: Extract<EnrichedPartState, { type: \"text\" }> =\n Object.freeze({\n type: \"text\",\n text: \"\",\n status: RUNNING_STATUS,\n });\n\n/**\n * Renders a single part by index, calling `children` with the\n * {@link EnrichedPartState} (tool/data UI enrichments + tool methods).\n * Shared between `<MessagePrimitive.Parts>` and\n * `<MessagePrimitive.GroupedParts>`. Returns whatever `children`\n * returns — callers decide how to handle a `null` return.\n */\ntype MessagePartChildrenProps = {\n index: number;\n children: (value: { part: EnrichedPartState }) => ReactNode;\n};\n\nconst MessagePartChildrenInner: FC<\n Pick<MessagePartChildrenProps, \"children\">\n> = ({ children }) => {\n const aui = useAui();\n // Subscribed (not snapshotted like `tools`) so fallbacks registered\n // after the first render trigger a re-render and `hasUI` re-evaluates.\n const dataRenderers = useAuiState((s) => s.dataRenderers);\n\n return (\n <RenderChildrenWithAccessor\n getItemState={(client) => client.part.getState()}\n >\n {(getItem) =>\n children({\n get part() {\n const state = getItem();\n if (state.type === \"tool-call\") {\n const toolsState = aui.tools.getState();\n const hasUI = resolveToolRender(toolsState, state) !== null;\n const partMethods = aui.part;\n return {\n ...state,\n toolUI: hasUI ? <RegisteredToolUI /> : null,\n addResult: partMethods.addToolResult,\n resume: partMethods.resumeToolCall,\n respondToApproval: partMethods.respondToToolApproval,\n ...(partMethods.unstable_recordInteraction && {\n unstable_recordInteraction:\n partMethods.unstable_recordInteraction,\n }),\n };\n }\n if (state.type === \"data\") {\n const hasUI =\n getDataRenderer(dataRenderers, state.name, undefined) !==\n undefined;\n return {\n ...state,\n dataRendererUI: hasUI ? <RegisteredDataRendererUI /> : null,\n };\n }\n return state;\n },\n })\n }\n </RenderChildrenWithAccessor>\n );\n};\n\nexport const MessagePartChildren: FC<MessagePartChildrenProps> = ({\n index,\n children,\n}) => {\n return (\n <PartByIndexProvider index={index}>\n <MessagePartChildrenInner>{children}</MessagePartChildrenInner>\n </PartByIndexProvider>\n );\n};\n\nconst MessagePrimitivePartsInner: FC<{\n children: (value: { part: EnrichedPartState }) => ReactNode;\n}> = ({ children }) => {\n const contentLength = useAuiState((s) => s.message.parts.length);\n const isRunning = useAuiState(\n (s) => (s.message.status?.type ?? \"complete\") === \"running\",\n );\n const isEmptyRunning = contentLength === 0 && isRunning;\n\n if (contentLength === 0) {\n if (!isEmptyRunning) return null;\n return (\n <TextMessagePartProvider text=\"\" isRunning>\n {children({ part: EMPTY_RUNNING_TEXT_PART })}\n </TextMessagePartProvider>\n );\n }\n\n return (\n <>\n {Array.from({ length: contentLength }, (_, index) => (\n <MessagePartChildren key={index} index={index}>\n {(value) => children(value) ?? <DefaultPartFallback />}\n </MessagePartChildren>\n ))}\n </>\n );\n};\n\n/**\n * Renders the parts of a message with support for multiple content types.\n *\n * This is the platform-agnostic base. Each platform wraps this with its own\n * default components (web uses `<p>`, `<span>`; RN would use `<Text>`, etc.).\n */\nexport const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props> = ({\n components,\n unstable_showEmptyOnNonTextEnd = true,\n children,\n}) => {\n if (children) {\n return <MessagePrimitivePartsInner>{children}</MessagePrimitivePartsInner>;\n }\n return (\n <MessagePrimitivePartsCompat\n components={components}\n unstable_showEmptyOnNonTextEnd={unstable_showEmptyOnNonTextEnd}\n />\n );\n};\n\nMessagePrimitiveParts.displayName = \"MessagePrimitive.Parts\";\n\nconst MessagePrimitivePartsCompat: FC<{\n components: MessagePrimitiveParts.Props[\"components\"];\n unstable_showEmptyOnNonTextEnd: boolean;\n}> = ({ components, unstable_showEmptyOnNonTextEnd }) => {\n const contentLength = useAuiState((s) => s.message.parts.length);\n const useChainOfThought = !!components?.ChainOfThought;\n const { ranges: messageRanges, partIds } =\n useMessagePartsGroups(useChainOfThought);\n\n const partsElements = useMemo(() => {\n if (contentLength === 0) {\n return <EmptyParts components={components} />;\n }\n\n const claimed = new Set<string>();\n const toolLeafKey = (partIndex: number) => {\n const id = partIds[partIndex];\n if (id !== undefined && !claimed.has(id)) {\n claimed.add(id);\n return `part-id:${id}`;\n }\n return `part-${partIndex}`;\n };\n\n return messageRanges.map((range) => {\n if (range.type === \"single\") {\n return (\n <MessagePrimitivePartByIndex\n key={range.index}\n index={range.index}\n components={components}\n />\n );\n } else if (range.type === \"chainOfThoughtGroup\") {\n const ChainOfThoughtComponent = components?.ChainOfThought;\n if (!ChainOfThoughtComponent) return null;\n return (\n <ChainOfThoughtByIndicesProvider\n key={`chainOfThought-${range.idKey ?? range.startIndex}`}\n startIndex={range.startIndex}\n endIndex={range.endIndex}\n >\n <ChainOfThoughtComponent />\n </ChainOfThoughtByIndicesProvider>\n );\n } else if (range.type === \"toolGroup\") {\n const ToolGroupComponent =\n components?.ToolGroup ?? defaultComponents.ToolGroup;\n return (\n <ToolGroupComponent\n key={`tool-${range.idKey ?? range.startIndex}`}\n startIndex={range.startIndex}\n endIndex={range.endIndex}\n >\n {Array.from(\n { length: range.endIndex - range.startIndex + 1 },\n (_, i) => {\n const partIndex = range.startIndex + i;\n return (\n <MessagePrimitivePartByIndex\n key={toolLeafKey(partIndex)}\n index={partIndex}\n components={components}\n />\n );\n },\n )}\n </ToolGroupComponent>\n );\n } else {\n // reasoningGroup\n const ReasoningGroupComponent =\n components?.ReasoningGroup ?? defaultComponents.ReasoningGroup;\n return (\n <ReasoningGroupComponent\n key={`reasoning-${range.startIndex}`}\n startIndex={range.startIndex}\n endIndex={range.endIndex}\n >\n {Array.from(\n { length: range.endIndex - range.startIndex + 1 },\n (_, i) => {\n const partIndex = range.startIndex + i;\n return (\n <MessagePrimitivePartByIndex\n key={`part-${partIndex}`}\n index={partIndex}\n components={components}\n />\n );\n },\n )}\n </ReasoningGroupComponent>\n );\n }\n });\n }, [messageRanges, partIds, components, contentLength]);\n\n return (\n <>\n {components?.Quote && <QuoteRenderer Quote={components.Quote} />}\n {partsElements}\n <ConditionalEmpty\n components={components}\n enabled={unstable_showEmptyOnNonTextEnd}\n />\n </>\n );\n};\n"],"mappings":"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"}
@@ -1,13 +1,10 @@
1
- import { QuoteInfo } from "../../../types/quote.js";
2
- import { ReactNode } from "react";
3
- //#region src/react/primitives/message/MessageQuote.d.ts
4
- declare namespace MessagePrimitiveQuote {
5
- type Props = {
6
- /** Render function called when a quote is present. Receives quote info. */
7
- children: (value: QuoteInfo) => ReactNode;
8
- };
1
+ import { type ReactNode } from "react";
2
+ import type { QuoteInfo } from "../../../types/quote.js";
3
+ export declare namespace MessagePrimitiveQuote {
4
+ type Props = {
5
+ /** Render function called when a quote is present. Receives quote info. */
6
+ children: (value: QuoteInfo) => ReactNode;
7
+ };
9
8
  }
10
- declare const MessagePrimitiveQuote: import("react").NamedExoticComponent<MessagePrimitiveQuote.Props>;
11
- //#endregion
12
- export { MessagePrimitiveQuote };
9
+ export declare const MessagePrimitiveQuote: import("react").NamedExoticComponent<MessagePrimitiveQuote.Props>;
13
10
  //# sourceMappingURL=MessageQuote.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageQuote.d.ts","names":[],"sources":["../../../../src/react/primitives/message/MessageQuote.tsx"],"mappings":";;;kBAKiB;OACH;;IAEV,WAAW,OAAO,cAAc;;;cA0BvB,uCAAqB,qBAAA,sBAAA"}
1
+ {"version":3,"file":"MessageQuote.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/message/MessageQuote.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAQ,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAE,SAAS,EAAE,gCAA6B;AAEtD,yBAAiB,qBAAqB,CAAC;IACrC,KAAY,KAAK,GAAG;QAClB,2EAA2E;QAC3E,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC;KAC3C,CAAC;CACH;AAwBD,eAAO,MAAM,qBAAqB,mEAAkC,CAAC"}