@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
@@ -1,31 +1,30 @@
1
- import { PartState } from "../../../store/scopes/part.js";
2
- import { ReasoningMessagePartComponent, ToolCallMessagePartComponent } from "../../types/MessagePartComponentTypes.js";
3
- import { ComponentType, FC, PropsWithChildren, ReactNode } from "react";
4
- //#region src/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts
1
+ import { type ComponentType, type FC, type PropsWithChildren, type ReactNode } from "react";
2
+ import type { PartState } from "../../../store/scopes/part.js";
3
+ import type { ReasoningMessagePartComponent, ToolCallMessagePartComponent } from "../../types/MessagePartComponentTypes.js";
5
4
  type ChainOfThoughtPartsComponentConfig = {
6
- /** Component for rendering reasoning parts */
7
- Reasoning?: ReasoningMessagePartComponent | undefined;
8
- /** Fallback component for tool-call parts */
9
- tools?: {
10
- Fallback?: ToolCallMessagePartComponent | undefined;
11
- };
12
- /** Layout component to wrap the rendered parts when expanded */
13
- Layout?: ComponentType<PropsWithChildren> | undefined;
5
+ /** Component for rendering reasoning parts */
6
+ Reasoning?: ReasoningMessagePartComponent | undefined;
7
+ /** Fallback component for tool-call parts */
8
+ tools?: {
9
+ Fallback?: ToolCallMessagePartComponent | undefined;
10
+ };
11
+ /** Layout component to wrap the rendered parts when expanded */
12
+ Layout?: ComponentType<PropsWithChildren> | undefined;
14
13
  };
15
- declare namespace ChainOfThoughtPrimitiveParts {
16
- type Props = {
17
- /**
18
- * @deprecated Use the children render function instead.
19
- */
20
- components?: ChainOfThoughtPartsComponentConfig;
21
- children?: never;
22
- } | {
23
- /** Render function called for each part. Receives the part. */
24
- children: (value: {
25
- part: PartState;
26
- }) => ReactNode;
27
- components?: never;
28
- };
14
+ export declare namespace ChainOfThoughtPrimitiveParts {
15
+ type Props = {
16
+ /**
17
+ * @deprecated Use the children render function instead.
18
+ */
19
+ components?: ChainOfThoughtPartsComponentConfig;
20
+ children?: never;
21
+ } | {
22
+ /** Render function called for each part. Receives the part. */
23
+ children: (value: {
24
+ part: PartState;
25
+ }) => ReactNode;
26
+ components?: never;
27
+ };
29
28
  }
30
29
  /**
31
30
  * Renders the parts within a chain of thought, with support for collapsed/expanded states.
@@ -33,7 +32,6 @@ declare namespace ChainOfThoughtPrimitiveParts {
33
32
  * When collapsed, no parts are shown. When expanded, all parts are rendered
34
33
  * using the provided component configuration through the part scope mechanism.
35
34
  */
36
- declare const ChainOfThoughtPrimitiveParts: FC<ChainOfThoughtPrimitiveParts.Props>;
37
- //#endregion
38
- export { ChainOfThoughtPrimitiveParts };
35
+ export declare const ChainOfThoughtPrimitiveParts: FC<ChainOfThoughtPrimitiveParts.Props>;
36
+ export {};
39
37
  //# sourceMappingURL=ChainOfThoughtParts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChainOfThoughtParts.d.ts","names":[],"sources":["../../../../src/react/primitives/chainOfThought/ChainOfThoughtParts.tsx"],"mappings":";;;;KAgBK;;EAEH,YAAY;;EAEZ;IACE,WAAW;;;EAGb,SAAS,cAAc;;kBAGR;OACH;;;;IAKN,aAAa;IACb;;;IAIA,WAAW;MAAS,MAAM;UAAgB;IAC1C;;;;;;;;;cAoCK,8BAA8B,GACzC,6BAA6B"}
1
+ {"version":3,"file":"ChainOfThoughtParts.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/chainOfThought/ChainOfThoughtParts.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,EAAE,EACP,KAAK,iBAAiB,EACtB,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,SAAS,EAAE,sCAAmC;AAG5D,OAAO,KAAK,EACV,6BAA6B,EAC7B,4BAA4B,EAC7B,iDAA8C;AAE/C,KAAK,kCAAkC,GAAG;IACxC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;IACtD,6CAA6C;IAC7C,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;KACrD,CAAC;IACF,gEAAgE;IAChE,MAAM,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;CACvD,CAAC;AAEF,yBAAiB,4BAA4B,CAAC;IAC5C,KAAY,KAAK,GACb;QACE;;WAEG;QACH,UAAU,CAAC,EAAE,kCAAkC,CAAC;QAChD,QAAQ,CAAC,EAAE,KAAK,CAAC;KAClB,GACD;QACE,+DAA+D;QAC/D,QAAQ,EAAE,CAAC,KAAK,EAAE;YAAE,IAAI,EAAE,SAAS,CAAA;SAAE,KAAK,SAAS,CAAC;QACpD,UAAU,CAAC,EAAE,KAAK,CAAC;KACpB,CAAC;CACP;AA4BD;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,EAAE,EAAE,CAC3C,4BAA4B,CAAC,KAAK,CAoCnC,CAAC"}
@@ -1,36 +1,34 @@
1
- import { Attachment } from "../../../types/attachment.js";
2
- import { ComponentType, FC, ReactNode } from "react";
3
- //#region src/react/primitives/composer/ComposerAttachments.d.ts
1
+ import type { Attachment } from "../../../types/attachment.js";
2
+ import { type ComponentType, type FC, type ReactNode } from "react";
4
3
  type ComposerAttachmentsComponentConfig = {
5
- Image?: ComponentType | undefined;
6
- Document?: ComponentType | undefined;
7
- File?: ComponentType | undefined;
8
- Attachment?: ComponentType | undefined;
4
+ Image?: ComponentType | undefined;
5
+ Document?: ComponentType | undefined;
6
+ File?: ComponentType | undefined;
7
+ Attachment?: ComponentType | undefined;
9
8
  };
10
- declare namespace ComposerPrimitiveAttachments {
11
- type Props = {
12
- /** @deprecated Use the children render function instead. */
13
- components: ComposerAttachmentsComponentConfig;
14
- children?: never;
15
- } | {
16
- /** Render function called for each attachment. Receives the attachment. */
17
- children: (value: {
18
- attachment: Attachment;
19
- }) => ReactNode;
20
- components?: never;
21
- };
9
+ export declare namespace ComposerPrimitiveAttachments {
10
+ type Props = {
11
+ /** @deprecated Use the children render function instead. */
12
+ components: ComposerAttachmentsComponentConfig;
13
+ children?: never;
14
+ } | {
15
+ /** Render function called for each attachment. Receives the attachment. */
16
+ children: (value: {
17
+ attachment: Attachment;
18
+ }) => ReactNode;
19
+ components?: never;
20
+ };
22
21
  }
23
- declare namespace ComposerPrimitiveAttachmentByIndex {
24
- type Props = {
25
- index: number;
26
- components?: ComposerAttachmentsComponentConfig;
27
- };
22
+ export declare namespace ComposerPrimitiveAttachmentByIndex {
23
+ type Props = {
24
+ index: number;
25
+ components?: ComposerAttachmentsComponentConfig;
26
+ };
28
27
  }
29
28
  /**
30
29
  * Renders a single attachment at the specified index within the composer.
31
30
  */
32
- declare const ComposerPrimitiveAttachmentByIndex: FC<ComposerPrimitiveAttachmentByIndex.Props>;
33
- declare const ComposerPrimitiveAttachments: FC<ComposerPrimitiveAttachments.Props>;
34
- //#endregion
35
- export { ComposerPrimitiveAttachmentByIndex, ComposerPrimitiveAttachments };
31
+ export declare const ComposerPrimitiveAttachmentByIndex: FC<ComposerPrimitiveAttachmentByIndex.Props>;
32
+ export declare const ComposerPrimitiveAttachments: FC<ComposerPrimitiveAttachments.Props>;
33
+ export {};
36
34
  //# sourceMappingURL=ComposerAttachments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerAttachments.d.ts","names":[],"sources":["../../../../src/react/primitives/composer/ComposerAttachments.tsx"],"mappings":";;;KAYK;EACH,QAAQ;EACR,WAAW;EACX,OAAO;EACP,aAAa;;kBAGE;OACH;;IAGN,YAAY;IACZ;;;IAIA,WAAW;MAAS,YAAY;UAAiB;IACjD;;;kBAgCS;OACH;IACV;IACA,aAAa;;;;;;cAOJ,oCAAoC,GAAG,mCAAmC;cAoD1E,8BAA8B,GACzC,6BAA6B"}
1
+ {"version":3,"file":"ComposerAttachments.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/composer/ComposerAttachments.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,qCAAkC;AAC5D,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,EAAE,EACP,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAKf,KAAK,kCAAkC,GAAG;IACxC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACrC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CACxC,CAAC;AAEF,yBAAiB,4BAA4B,CAAC;IAC5C,KAAY,KAAK,GACb;QACE,4DAA4D;QAC5D,UAAU,EAAE,kCAAkC,CAAC;QAC/C,QAAQ,CAAC,EAAE,KAAK,CAAC;KAClB,GACD;QACE,2EAA2E;QAC3E,QAAQ,EAAE,CAAC,KAAK,EAAE;YAAE,UAAU,EAAE,UAAU,CAAA;SAAE,KAAK,SAAS,CAAC;QAC3D,UAAU,CAAC,EAAE,KAAK,CAAC;KACpB,CAAC;CACP;AA8BD,yBAAiB,kCAAkC,CAAC;IAClD,KAAY,KAAK,GAAG;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,kCAAkC,CAAC;KACjD,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,kCAAkC,EAAE,EAAE,CAAC,kCAAkC,CAAC,KAAK,CAezF,CAAC;AAqCJ,eAAO,MAAM,4BAA4B,EAAE,EAAE,CAC3C,4BAA4B,CAAC,KAAK,CAkBnC,CAAC"}
@@ -1,20 +1,20 @@
1
- import { FC, PropsWithChildren } from "react";
2
- //#region src/react/primitives/composer/ComposerIf.d.ts
1
+ import type { FC, PropsWithChildren } from "react";
3
2
  type ComposerIfFilters = {
4
- /** Whether the composer is in editing mode */
5
- editing: boolean | undefined;
6
- /** Whether dictation is currently active */
7
- dictation: boolean | undefined;
3
+ /** Whether the composer is in editing mode */
4
+ editing: boolean | undefined;
5
+ /** Whether dictation is currently active */
6
+ dictation: boolean | undefined;
8
7
  };
9
- type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & { [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>; }[Keys];
10
- type UseComposerIfProps = RequireAtLeastOne<ComposerIfFilters>;
11
- declare namespace ComposerPrimitiveIf {
12
- type Props = PropsWithChildren<UseComposerIfProps>;
8
+ export type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
9
+ [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
10
+ }[Keys];
11
+ export type UseComposerIfProps = RequireAtLeastOne<ComposerIfFilters>;
12
+ export declare namespace ComposerPrimitiveIf {
13
+ type Props = PropsWithChildren<UseComposerIfProps>;
13
14
  }
14
15
  /**
15
16
  * @deprecated Use `<AuiIf condition={(s) => s.composer...} />` instead.
16
17
  */
17
- declare const ComposerPrimitiveIf: FC<ComposerPrimitiveIf.Props>;
18
- //#endregion
19
- export { ComposerPrimitiveIf, RequireAtLeastOne, UseComposerIfProps };
18
+ export declare const ComposerPrimitiveIf: FC<ComposerPrimitiveIf.Props>;
19
+ export {};
20
20
  //# sourceMappingURL=ComposerIf.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerIf.d.ts","names":[],"sources":["../../../../src/react/primitives/composer/ComposerIf.tsx"],"mappings":";;KAGK;;EAEH;;EAEA;;KAGU,kBAAkB,GAAG,mBAAmB,UAAU,KAAK,KACjE,GACA,cAAc,GAAG,YAGd,KAAK,SAAS,SAAS,KAAK,GAAG,MAAM,QAAQ,KAAK,GAAG,QAAQ,MAAM,QACpE;KAEQ,qBAAqB,kBAAkB;kBAelC;OACH,QAAQ,kBAAkB;;;;;cAM3B,qBAAqB,GAAG,oBAAoB"}
1
+ {"version":3,"file":"ComposerIf.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/composer/ComposerIf.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGnD,KAAK,iBAAiB,GAAG;IACvB,8CAA8C;IAC9C,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,4CAA4C;IAC5C,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,IAAI,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,CACrE,CAAC,EACD,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CACvB,GACC;KACG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;CACzE,CAAC,IAAI,CAAC,CAAC;AAEV,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AAetE,yBAAiB,mBAAmB,CAAC;IACnC,KAAY,KAAK,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAM7D,CAAC"}
@@ -1,14 +1,12 @@
1
- import { QueueItemState } from "../../../runtime/queue/queue-item.js";
2
- import "../../../store/scopes/queue-item.js";
3
- import { ReactNode } from "react";
4
- //#region src/react/primitives/composer/ComposerQueue.d.ts
5
- declare namespace ComposerPrimitiveQueue {
6
- type Props = {
7
- /** Render function called for each queue item. Receives the queue item state. */
8
- children: (value: {
9
- queueItem: QueueItemState;
10
- }) => ReactNode;
11
- };
1
+ import { type ReactNode } from "react";
2
+ import type { QueueItemState } from "../../../store/scopes/queue-item.js";
3
+ export declare namespace ComposerPrimitiveQueue {
4
+ type Props = {
5
+ /** Render function called for each queue item. Receives the queue item state. */
6
+ children: (value: {
7
+ queueItem: QueueItemState;
8
+ }) => ReactNode;
9
+ };
12
10
  }
13
11
  /**
14
12
  * Renders all queue items in the composer.
@@ -25,11 +23,9 @@ declare namespace ComposerPrimitiveQueue {
25
23
  * </ComposerPrimitive.Queue>
26
24
  * ```
27
25
  */
28
- declare const ComposerPrimitiveQueue: import("react").NamedExoticComponent<{
29
- children: (value: {
30
- queueItem: QueueItemState;
31
- }) => ReactNode;
26
+ export declare const ComposerPrimitiveQueue: import("react").NamedExoticComponent<{
27
+ children: (value: {
28
+ queueItem: QueueItemState;
29
+ }) => ReactNode;
32
30
  }>;
33
- //#endregion
34
- export { ComposerPrimitiveQueue };
35
31
  //# sourceMappingURL=ComposerQueue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerQueue.d.ts","names":[],"sources":["../../../../src/react/primitives/composer/ComposerQueue.tsx"],"mappings":";;;;kBAMiB;OACH;;IAEV,WAAW;MAAS,WAAW;UAAqB;;;;;;;;;;;;;;;;;;cA+C3C,wCAAsB;EA1CvB,WAAC;IAAS,WAAW;QAAqB"}
1
+ {"version":3,"file":"ComposerQueue.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/composer/ComposerQueue.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAiB,MAAM,OAAO,CAAC;AAG/D,OAAO,KAAK,EAAE,cAAc,EAAE,4CAAyC;AAGvE,yBAAiB,sBAAsB,CAAC;IACtC,KAAY,KAAK,GAAG;QAClB,iFAAiF;QACjF,QAAQ,EAAE,CAAC,KAAK,EAAE;YAAE,SAAS,EAAE,cAAc,CAAA;SAAE,KAAK,SAAS,CAAC;KAC/D,CAAC;CACH;AA8BD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB;cA1CvB,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,cAAc,CAAA;KAAE,KAAK,SAAS;EA0CQ,CAAC"}
@@ -1,45 +1,44 @@
1
- import { GenerativeUISpec } from "../../../types/message.js";
2
- import { GenerativeUIComponentRegistry, GenerativeUIRenderProps } from "../../types/MessagePartComponentTypes.js";
3
- import { ComponentType, FC } from "react";
4
- //#region src/react/primitives/generativeUI/GenerativeUI.d.ts
1
+ import { type ComponentType, type FC } from "react";
2
+ import type { GenerativeUISpec } from "../../../types/message.js";
3
+ import type { GenerativeUIComponentRegistry, GenerativeUIRenderProps } from "../../types/MessagePartComponentTypes.js";
5
4
  /**
6
5
  * Thrown when a generative-ui spec references a component name that is not
7
6
  * present in the consumer-provided allowlist. The allowlist is the security
8
7
  * boundary in the same-realm rendering path — there is no fallback by
9
8
  * default. Pass `Fallback` to opt into a soft-fail UX.
10
9
  */
11
- declare class GenerativeUIRenderError extends Error {
12
- readonly componentName: string;
13
- constructor(componentName: string, message?: string);
10
+ export declare class GenerativeUIRenderError extends Error {
11
+ readonly componentName: string;
12
+ constructor(componentName: string, message?: string);
14
13
  }
15
14
  /**
16
15
  * Internal renderer. Resolves a {@link GenerativeUISpec} against the consumer
17
16
  * allowlist. Used by `MessagePrimitive.GenerativeUI` and by
18
17
  * `MessagePrimitive.Parts` when handling a `generative-ui` part.
19
18
  */
20
- declare const GenerativeUIRender: FC<GenerativeUIRenderProps>;
21
- declare namespace MessagePrimitiveGenerativeUI {
22
- type Props = {
23
- /**
24
- * The component allowlist. Keys are the names referenced in the spec
25
- * (e.g. `"Card"`, `"Button"`), values are the React components.
26
- *
27
- * This is the security boundary — any name not in the allowlist is
28
- * rejected with {@link GenerativeUIRenderError}.
29
- */
30
- components: GenerativeUIComponentRegistry;
31
- /**
32
- * Optional override spec. If omitted, the primitive reads the
33
- * `generative-ui` part from the surrounding `MessagePartProvider` /
34
- * `PartByIndexProvider` context.
35
- */
36
- spec?: GenerativeUISpec | undefined;
37
- /** Optional fallback for unknown component names. */
38
- Fallback?: ComponentType<{
39
- component: string;
40
- props?: unknown;
41
- }> | undefined;
42
- };
19
+ export declare const GenerativeUIRender: FC<GenerativeUIRenderProps>;
20
+ export declare namespace MessagePrimitiveGenerativeUI {
21
+ type Props = {
22
+ /**
23
+ * The component allowlist. Keys are the names referenced in the spec
24
+ * (e.g. `"Card"`, `"Button"`), values are the React components.
25
+ *
26
+ * This is the security boundary — any name not in the allowlist is
27
+ * rejected with {@link GenerativeUIRenderError}.
28
+ */
29
+ components: GenerativeUIComponentRegistry;
30
+ /**
31
+ * Optional override spec. If omitted, the primitive reads the
32
+ * `generative-ui` part from the surrounding `MessagePartProvider` /
33
+ * `PartByIndexProvider` context.
34
+ */
35
+ spec?: GenerativeUISpec | undefined;
36
+ /** Optional fallback for unknown component names. */
37
+ Fallback?: ComponentType<{
38
+ component: string;
39
+ props?: unknown;
40
+ }> | undefined;
41
+ };
43
42
  }
44
43
  /**
45
44
  * Renders a generative-ui message part using a consumer-provided allowlist.
@@ -58,7 +57,5 @@ declare namespace MessagePrimitiveGenerativeUI {
58
57
  * />
59
58
  * ```
60
59
  */
61
- declare const MessagePrimitiveGenerativeUI: FC<MessagePrimitiveGenerativeUI.Props>;
62
- //#endregion
63
- export { GenerativeUIRender, GenerativeUIRenderError, MessagePrimitiveGenerativeUI };
60
+ export declare const MessagePrimitiveGenerativeUI: FC<MessagePrimitiveGenerativeUI.Props>;
64
61
  //# sourceMappingURL=GenerativeUI.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenerativeUI.d.ts","names":[],"sources":["../../../../src/react/primitives/generativeUI/GenerativeUI.tsx"],"mappings":";;;;;;;;;;cAyBa,gCAAgC;WAC3B;EAGd,YAAA,uBACA;;;;;;;cA2ES,oBAAoB,GAAG;kBAgBnB;OACH;;;;;;;;IAQV,YAAY;;;;;;IAMZ,OAAO;;IAEP,WACI;MAAgB;MAAmB;;;;;;;;;;;;;;;;;;;;;cAsB9B,8BAA8B,GACzC,6BAA6B"}
1
+ {"version":3,"file":"GenerativeUI.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/generativeUI/GenerativeUI.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,EAAE,EAIR,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAEV,gBAAgB,EACjB,kCAA+B;AAChC,OAAO,KAAK,EACV,6BAA6B,EAC7B,uBAAuB,EACxB,iDAA8C;AAE/C;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,SAAgB,aAAa,EAAE,MAAM,CAAC;gBAGpC,aAAa,EAAE,MAAM,EACrB,OAAO,SAAwE;CAMlF;AA+ED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAY1D,CAAC;AAIF,yBAAiB,4BAA4B,CAAC;IAC5C,KAAY,KAAK,GAAG;QAClB;;;;;;WAMG;QACH,UAAU,EAAE,6BAA6B,CAAC;QAC1C;;;;WAIG;QACH,IAAI,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;QACpC,qDAAqD;QACrD,QAAQ,CAAC,EACL,aAAa,CAAC;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,GACrD,SAAS,CAAC;KACf,CAAC;CACH;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,4BAA4B,EAAE,EAAE,CAC3C,4BAA4B,CAAC,KAAK,CAqBnC,CAAC"}
@@ -18,16 +18,30 @@ var GenerativeUIRenderError = class extends Error {
18
18
  this.componentName = componentName;
19
19
  }
20
20
  };
21
- const isObjectNode = (node) => typeof node === "object" && node !== null;
22
- const renderNode = (node, components, Fallback, path) => {
21
+ const isObjectNode = (node) => typeof node === "object" && node !== null && !Array.isArray(node);
22
+ const toNodeList = (value) => {
23
+ if (value === void 0 || value === null) return [];
24
+ return Array.isArray(value) ? value : [value];
25
+ };
26
+ const warn = (message, ...args) => {
27
+ if (typeof process !== "undefined" && process.env?.NODE_ENV !== "production") console.warn(message, ...args);
28
+ };
29
+ /** Bounds recursion so a runaway or adversarial model response cannot overflow the stack. */
30
+ const MAX_DEPTH = 64;
31
+ const renderNode = (node, components, Fallback, path, depth = 0) => {
32
+ if (depth > MAX_DEPTH) {
33
+ warn(`[generative-ui] Skipping node nested past ${MAX_DEPTH} levels at ${path}.`);
34
+ return null;
35
+ }
23
36
  if (node === void 0 || node === null) return null;
24
- if (typeof node === "string") return node;
37
+ if (typeof node === "string" || typeof node === "number") return node;
38
+ if (Array.isArray(node)) return node.map((child, i) => renderNode(child, components, Fallback, `${path}/${i}`, depth + 1));
25
39
  if (!isObjectNode(node) || !("component" in node) || typeof node.component !== "string") {
26
- if (typeof process !== "undefined" && process.env?.NODE_ENV !== "production") console.warn(`[generative-ui] Skipping malformed node at ${path}:`, node);
40
+ warn(`[generative-ui] Skipping malformed node at ${path}:`, node);
27
41
  return null;
28
42
  }
29
43
  const { component, props, children, key } = node;
30
- const Resolved = components[component];
44
+ const Resolved = Object.hasOwn(components, component) ? components[component] : void 0;
31
45
  if (!Resolved) {
32
46
  if (Fallback) return /* @__PURE__ */ jsx(Fallback, {
33
47
  component,
@@ -35,16 +49,10 @@ const renderNode = (node, components, Fallback, path) => {
35
49
  }, key ?? path);
36
50
  throw new GenerativeUIRenderError(component);
37
51
  }
38
- const renderedChildren = children?.length ? children.map((child, i) => renderNode(child, components, Fallback, `${path}/${i}`)) : void 0;
39
52
  return createElement(Resolved, {
40
53
  ...props ?? {},
41
54
  key: key ?? path
42
- }, ...renderedChildren ?? []);
43
- };
44
- const normalizeRoot = (spec) => {
45
- if (!spec || spec.root === void 0 || spec.root === null) return [];
46
- const root = spec.root;
47
- return Array.isArray(root) ? root : [root];
55
+ }, ...toNodeList(children).map((child, i) => renderNode(child, components, Fallback, `${path}/${i}`, depth + 1)));
48
56
  };
49
57
  /**
50
58
  * Internal renderer. Resolves a {@link GenerativeUISpec} against the consumer
@@ -54,35 +62,36 @@ const normalizeRoot = (spec) => {
54
62
  const GenerativeUIRender = (t0) => {
55
63
  const $ = c(11);
56
64
  const { spec, components, Fallback } = t0;
57
- let t1;
58
- if ($[0] !== spec) {
59
- t1 = normalizeRoot(spec);
60
- $[0] = spec;
61
- $[1] = t1;
62
- } else t1 = $[1];
63
- const nodes = t1;
65
+ const t1 = spec?.root;
64
66
  let t2;
67
+ if ($[0] !== t1) {
68
+ t2 = toNodeList(t1);
69
+ $[0] = t1;
70
+ $[1] = t2;
71
+ } else t2 = $[1];
72
+ const nodes = t2;
73
+ let t3;
65
74
  if ($[2] !== Fallback || $[3] !== components || $[4] !== nodes) {
66
- let t3;
75
+ let t4;
67
76
  if ($[6] !== Fallback || $[7] !== components) {
68
- t3 = (node, i) => renderNode(node, components, Fallback, `${i}`);
77
+ t4 = (node, i) => renderNode(node, components, Fallback, `${i}`);
69
78
  $[6] = Fallback;
70
79
  $[7] = components;
71
- $[8] = t3;
72
- } else t3 = $[8];
73
- t2 = nodes.map(t3);
80
+ $[8] = t4;
81
+ } else t4 = $[8];
82
+ t3 = nodes.map(t4);
74
83
  $[2] = Fallback;
75
84
  $[3] = components;
76
85
  $[4] = nodes;
77
- $[5] = t2;
78
- } else t2 = $[5];
79
- let t3;
80
- if ($[9] !== t2) {
81
- t3 = /* @__PURE__ */ jsx(Fragment$1, { children: t2 });
82
- $[9] = t2;
83
- $[10] = t3;
84
- } else t3 = $[10];
85
- return t3;
86
+ $[5] = t3;
87
+ } else t3 = $[5];
88
+ let t4;
89
+ if ($[9] !== t3) {
90
+ t4 = /* @__PURE__ */ jsx(Fragment$1, { children: t3 });
91
+ $[9] = t3;
92
+ $[10] = t4;
93
+ } else t4 = $[10];
94
+ return t4;
86
95
  };
87
96
  GenerativeUIRender.displayName = "GenerativeUIRender";
88
97
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"GenerativeUI.js","names":["c","_c","ComponentType","FC","ReactNode","createElement","useMemo","useAuiState","GenerativeUINode","GenerativeUISpec","GenerativeUIComponentRegistry","GenerativeUIRenderProps","GenerativeUIRenderError","Error","componentName","constructor","message","name","isObjectNode","node","Exclude","renderNode","components","Fallback","path","undefined","component","process","env","NODE_ENV","console","warn","props","children","key","Resolved","renderedChildren","length","map","child","i","normalizeRoot","spec","root","Array","isArray","GenerativeUIRender","t0","$","t1","nodes","t2","t3","displayName","MessagePrimitiveGenerativeUI","Props","storeSpec","_temp","partSpec","s","part","type"],"sources":["../../../../src/react/primitives/generativeUI/GenerativeUI.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ComponentType,\n type FC,\n type ReactNode,\n createElement,\n useMemo,\n} from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport type {\n GenerativeUINode,\n GenerativeUISpec,\n} from \"../../../types/message\";\nimport type {\n GenerativeUIComponentRegistry,\n GenerativeUIRenderProps,\n} from \"../../types/MessagePartComponentTypes\";\n\n/**\n * Thrown when a generative-ui spec references a component name that is not\n * present in the consumer-provided allowlist. The allowlist is the security\n * boundary in the same-realm rendering path — there is no fallback by\n * default. Pass `Fallback` to opt into a soft-fail UX.\n */\nexport class GenerativeUIRenderError extends Error {\n public readonly componentName: string;\n\n constructor(\n componentName: string,\n message = `Component \"${componentName}\" is not in the generative-ui allowlist.`,\n ) {\n super(message);\n this.name = \"GenerativeUIRenderError\";\n this.componentName = componentName;\n }\n}\n\nconst isObjectNode = (\n node: GenerativeUINode,\n): node is Exclude<GenerativeUINode, string> =>\n typeof node === \"object\" && node !== null;\n\nconst renderNode = (\n node: GenerativeUINode | undefined,\n components: GenerativeUIComponentRegistry,\n Fallback: GenerativeUIRenderProps[\"Fallback\"],\n path: string,\n): ReactNode => {\n if (node === undefined || node === null) return null;\n\n if (typeof node === \"string\") return node;\n\n if (\n !isObjectNode(node) ||\n !(\"component\" in node) ||\n typeof node.component !== \"string\"\n ) {\n if (\n typeof process !== \"undefined\" &&\n process.env?.NODE_ENV !== \"production\"\n ) {\n console.warn(`[generative-ui] Skipping malformed node at ${path}:`, node);\n }\n return null;\n }\n\n const { component, props, children, key } = node;\n\n const Resolved = components[component];\n if (!Resolved) {\n if (Fallback) {\n return <Fallback key={key ?? path} component={component} props={props} />;\n }\n throw new GenerativeUIRenderError(component);\n }\n\n const renderedChildren = children?.length\n ? children.map((child, i) =>\n renderNode(child, components, Fallback, `${path}/${i}`),\n )\n : undefined;\n\n return createElement(\n Resolved,\n { ...(props ?? {}), key: key ?? path },\n ...(renderedChildren ?? []),\n );\n};\n\nconst normalizeRoot = (\n spec: GenerativeUISpec | undefined,\n): readonly GenerativeUINode[] => {\n if (!spec || spec.root === undefined || spec.root === null) return [];\n const root = spec.root;\n return Array.isArray(root)\n ? (root as readonly GenerativeUINode[])\n : [root as GenerativeUINode];\n};\n\n/**\n * Internal renderer. Resolves a {@link GenerativeUISpec} against the consumer\n * allowlist. Used by `MessagePrimitive.GenerativeUI` and by\n * `MessagePrimitive.Parts` when handling a `generative-ui` part.\n */\nexport const GenerativeUIRender: FC<GenerativeUIRenderProps> = ({\n spec,\n components,\n Fallback,\n}) => {\n const nodes = useMemo(() => normalizeRoot(spec), [spec]);\n\n return (\n <>\n {nodes.map((node, i) => renderNode(node, components, Fallback, `${i}`))}\n </>\n );\n};\n\nGenerativeUIRender.displayName = \"GenerativeUIRender\";\n\nexport namespace MessagePrimitiveGenerativeUI {\n export type Props = {\n /**\n * The component allowlist. Keys are the names referenced in the spec\n * (e.g. `\"Card\"`, `\"Button\"`), values are the React components.\n *\n * This is the security boundary — any name not in the allowlist is\n * rejected with {@link GenerativeUIRenderError}.\n */\n components: GenerativeUIComponentRegistry;\n /**\n * Optional override spec. If omitted, the primitive reads the\n * `generative-ui` part from the surrounding `MessagePartProvider` /\n * `PartByIndexProvider` context.\n */\n spec?: GenerativeUISpec | undefined;\n /** Optional fallback for unknown component names. */\n Fallback?:\n | ComponentType<{ component: string; props?: unknown }>\n | undefined;\n };\n}\n\n/**\n * Renders a generative-ui message part using a consumer-provided allowlist.\n *\n * The agent emits a `generative-ui` message part containing a JSON spec\n * (see {@link GenerativeUISpec}). This primitive walks the spec and resolves\n * each `component` name against the allowlist. Names not in the allowlist\n * throw {@link GenerativeUIRenderError} unless a `Fallback` is provided.\n *\n * Stream-friendly: a partial spec renders progressively as it is filled in.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.GenerativeUI\n * components={{ Card: MyCard, Button: MyButton }}\n * />\n * ```\n */\nexport const MessagePrimitiveGenerativeUI: FC<\n MessagePrimitiveGenerativeUI.Props\n> = ({ components, spec, Fallback }) => {\n // Selector reads store state only — combining with the `spec` prop inside\n // the selector closes over a value that may change identity per render and\n // would trigger spurious tearing-detection re-renders in\n // `useSyncExternalStore`.\n const storeSpec = useAuiState((s) => {\n const part = s.part as { type?: string; spec?: GenerativeUISpec };\n return part?.type === \"generative-ui\" ? part.spec : undefined;\n });\n const partSpec = spec ?? storeSpec;\n\n if (!partSpec) return null;\n\n return (\n <GenerativeUIRender\n spec={partSpec}\n components={components}\n Fallback={Fallback}\n />\n );\n};\n\nMessagePrimitiveGenerativeUI.displayName = \"MessagePrimitive.GenerativeUI\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"GenerativeUI.js","names":["c","_c","ComponentType","FC","ReactNode","createElement","useMemo","useAuiState","GenerativeUINode","GenerativeUISpec","GenerativeUIComponentRegistry","GenerativeUIRenderProps","GenerativeUIRenderError","Error","componentName","constructor","message","name","isObjectNode","node","Extract","component","Array","isArray","toNodeList","value","undefined","warn","args","process","env","NODE_ENV","console","MAX_DEPTH","renderNode","components","Fallback","path","depth","map","child","i","props","children","key","Resolved","Object","hasOwn","GenerativeUIRender","t0","$","spec","t1","root","t2","nodes","t3","t4","displayName","MessagePrimitiveGenerativeUI","Props","storeSpec","_temp","partSpec","s","part","type"],"sources":["../../../../src/react/primitives/generativeUI/GenerativeUI.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ComponentType,\n type FC,\n type ReactNode,\n createElement,\n useMemo,\n} from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport type {\n GenerativeUINode,\n GenerativeUISpec,\n} from \"../../../types/message\";\nimport type {\n GenerativeUIComponentRegistry,\n GenerativeUIRenderProps,\n} from \"../../types/MessagePartComponentTypes\";\n\n/**\n * Thrown when a generative-ui spec references a component name that is not\n * present in the consumer-provided allowlist. The allowlist is the security\n * boundary in the same-realm rendering path — there is no fallback by\n * default. Pass `Fallback` to opt into a soft-fail UX.\n */\nexport class GenerativeUIRenderError extends Error {\n public readonly componentName: string;\n\n constructor(\n componentName: string,\n message = `Component \"${componentName}\" is not in the generative-ui allowlist.`,\n ) {\n super(message);\n this.name = \"GenerativeUIRenderError\";\n this.componentName = componentName;\n }\n}\n\nconst isObjectNode = (\n node: GenerativeUINode,\n): node is Extract<GenerativeUINode, { component: string }> =>\n typeof node === \"object\" && node !== null && !Array.isArray(node);\n\nconst toNodeList = (\n value: GenerativeUINode | null | undefined,\n): readonly GenerativeUINode[] => {\n if (value === undefined || value === null) return [];\n return Array.isArray(value) ? value : [value];\n};\n\nconst warn = (message: string, ...args: unknown[]) => {\n if (\n typeof process !== \"undefined\" &&\n process.env?.NODE_ENV !== \"production\"\n ) {\n console.warn(message, ...args);\n }\n};\n\n/** Bounds recursion so a runaway or adversarial model response cannot overflow the stack. */\nconst MAX_DEPTH = 64;\n\nconst renderNode = (\n node: GenerativeUINode | undefined,\n components: GenerativeUIComponentRegistry,\n Fallback: GenerativeUIRenderProps[\"Fallback\"],\n path: string,\n depth = 0,\n): ReactNode => {\n if (depth > MAX_DEPTH) {\n warn(\n `[generative-ui] Skipping node nested past ${MAX_DEPTH} levels at ${path}.`,\n );\n return null;\n }\n if (node === undefined || node === null) return null;\n\n if (typeof node === \"string\" || typeof node === \"number\") return node;\n\n if (Array.isArray(node)) {\n return node.map((child, i) =>\n renderNode(child, components, Fallback, `${path}/${i}`, depth + 1),\n );\n }\n\n if (\n !isObjectNode(node) ||\n !(\"component\" in node) ||\n typeof node.component !== \"string\"\n ) {\n warn(`[generative-ui] Skipping malformed node at ${path}:`, node);\n return null;\n }\n\n const { component, props, children, key } = node;\n\n const Resolved = Object.hasOwn(components, component)\n ? components[component]\n : undefined;\n if (!Resolved) {\n if (Fallback) {\n return <Fallback key={key ?? path} component={component} props={props} />;\n }\n throw new GenerativeUIRenderError(component);\n }\n\n return createElement(\n Resolved,\n { ...(props ?? {}), key: key ?? path },\n ...toNodeList(children).map((child, i) =>\n renderNode(child, components, Fallback, `${path}/${i}`, depth + 1),\n ),\n );\n};\n\n/**\n * Internal renderer. Resolves a {@link GenerativeUISpec} against the consumer\n * allowlist. Used by `MessagePrimitive.GenerativeUI` and by\n * `MessagePrimitive.Parts` when handling a `generative-ui` part.\n */\nexport const GenerativeUIRender: FC<GenerativeUIRenderProps> = ({\n spec,\n components,\n Fallback,\n}) => {\n const nodes = useMemo(() => toNodeList(spec?.root), [spec]);\n\n return (\n <>\n {nodes.map((node, i) => renderNode(node, components, Fallback, `${i}`))}\n </>\n );\n};\n\nGenerativeUIRender.displayName = \"GenerativeUIRender\";\n\nexport namespace MessagePrimitiveGenerativeUI {\n export type Props = {\n /**\n * The component allowlist. Keys are the names referenced in the spec\n * (e.g. `\"Card\"`, `\"Button\"`), values are the React components.\n *\n * This is the security boundary — any name not in the allowlist is\n * rejected with {@link GenerativeUIRenderError}.\n */\n components: GenerativeUIComponentRegistry;\n /**\n * Optional override spec. If omitted, the primitive reads the\n * `generative-ui` part from the surrounding `MessagePartProvider` /\n * `PartByIndexProvider` context.\n */\n spec?: GenerativeUISpec | undefined;\n /** Optional fallback for unknown component names. */\n Fallback?:\n | ComponentType<{ component: string; props?: unknown }>\n | undefined;\n };\n}\n\n/**\n * Renders a generative-ui message part using a consumer-provided allowlist.\n *\n * The agent emits a `generative-ui` message part containing a JSON spec\n * (see {@link GenerativeUISpec}). This primitive walks the spec and resolves\n * each `component` name against the allowlist. Names not in the allowlist\n * throw {@link GenerativeUIRenderError} unless a `Fallback` is provided.\n *\n * Stream-friendly: a partial spec renders progressively as it is filled in.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.GenerativeUI\n * components={{ Card: MyCard, Button: MyButton }}\n * />\n * ```\n */\nexport const MessagePrimitiveGenerativeUI: FC<\n MessagePrimitiveGenerativeUI.Props\n> = ({ components, spec, Fallback }) => {\n // Selector reads store state only — combining with the `spec` prop inside\n // the selector closes over a value that may change identity per render and\n // would trigger spurious tearing-detection re-renders in\n // `useSyncExternalStore`.\n const storeSpec = useAuiState((s) => {\n const part = s.part as { type?: string; spec?: GenerativeUISpec };\n return part?.type === \"generative-ui\" ? part.spec : undefined;\n });\n const partSpec = spec ?? storeSpec;\n\n if (!partSpec) return null;\n\n return (\n <GenerativeUIRender\n spec={partSpec}\n components={components}\n Fallback={Fallback}\n />\n );\n};\n\nMessagePrimitiveGenerativeUI.displayName = \"MessagePrimitive.GenerativeUI\";\n"],"mappings":"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"}
@@ -1,36 +1,38 @@
1
- import { CompleteAttachment } from "../../../types/attachment.js";
2
- import { ComponentType, FC, ReactNode } from "react";
3
- //#region src/react/primitives/message/MessageAttachments.d.ts
1
+ import type { Attachment } from "../../../types/attachment.js";
2
+ import { type ComponentType, type FC, type ReactNode } from "react";
4
3
  type MessageAttachmentsComponentConfig = {
5
- Image?: ComponentType | undefined;
6
- Document?: ComponentType | undefined;
7
- File?: ComponentType | undefined;
8
- Attachment?: ComponentType | undefined;
4
+ Image?: ComponentType | undefined;
5
+ Document?: ComponentType | undefined;
6
+ File?: ComponentType | undefined;
7
+ Attachment?: ComponentType | undefined;
9
8
  };
10
- declare namespace MessagePrimitiveAttachments {
11
- type Props = {
12
- /** @deprecated Use the children render function instead. */
13
- components: MessageAttachmentsComponentConfig;
14
- children?: never;
15
- } | {
16
- /** Render function called for each attachment. Receives the attachment. */
17
- children: (value: {
18
- attachment: CompleteAttachment;
19
- }) => ReactNode;
20
- components?: never;
21
- };
9
+ export declare namespace MessagePrimitiveAttachments {
10
+ type Props = {
11
+ /** @deprecated Use the children render function instead. */
12
+ components: MessageAttachmentsComponentConfig;
13
+ children?: never;
14
+ } | {
15
+ /**
16
+ * Render function called for each attachment. Receives the attachment,
17
+ * which is still being prepared while the message is the composer's
18
+ * submission.
19
+ */
20
+ children: (value: {
21
+ attachment: Attachment;
22
+ }) => ReactNode;
23
+ components?: never;
24
+ };
22
25
  }
23
- declare namespace MessagePrimitiveAttachmentByIndex {
24
- type Props = {
25
- index: number;
26
- components?: MessageAttachmentsComponentConfig;
27
- };
26
+ export declare namespace MessagePrimitiveAttachmentByIndex {
27
+ type Props = {
28
+ index: number;
29
+ components?: MessageAttachmentsComponentConfig;
30
+ };
28
31
  }
29
32
  /**
30
33
  * Renders a single attachment at the specified index within the current message.
31
34
  */
32
- declare const MessagePrimitiveAttachmentByIndex: FC<MessagePrimitiveAttachmentByIndex.Props>;
33
- declare const MessagePrimitiveAttachments: FC<MessagePrimitiveAttachments.Props>;
34
- //#endregion
35
- export { MessagePrimitiveAttachmentByIndex, MessagePrimitiveAttachments };
35
+ export declare const MessagePrimitiveAttachmentByIndex: FC<MessagePrimitiveAttachmentByIndex.Props>;
36
+ export declare const MessagePrimitiveAttachments: FC<MessagePrimitiveAttachments.Props>;
37
+ export {};
36
38
  //# sourceMappingURL=MessageAttachments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageAttachments.d.ts","names":[],"sources":["../../../../src/react/primitives/message/MessageAttachments.tsx"],"mappings":";;;KAYK;EACH,QAAQ;EACR,WAAW;EACX,OAAO;EACP,aAAa;;kBAGE;OACH;;IAGN,YAAY;IACZ;;;IAIA,WAAW;MAAS,YAAY;UAAyB;IACzD;;;kBAgCS;OACH;IACV;IACA,aAAa;;;;;;cAOJ,mCAAmC,GAAG,kCAAkC;cAmDxE,6BAA6B,GACxC,4BAA4B"}
1
+ {"version":3,"file":"MessageAttachments.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/message/MessageAttachments.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,qCAAkC;AAC5D,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,EAAE,EACP,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAKf,KAAK,iCAAiC,GAAG;IACvC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACrC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CACxC,CAAC;AAEF,yBAAiB,2BAA2B,CAAC;IAC3C,KAAY,KAAK,GACb;QACE,4DAA4D;QAC5D,UAAU,EAAE,iCAAiC,CAAC;QAC9C,QAAQ,CAAC,EAAE,KAAK,CAAC;KAClB,GACD;QACE;;;;WAIG;QACH,QAAQ,EAAE,CAAC,KAAK,EAAE;YAAE,UAAU,EAAE,UAAU,CAAA;SAAE,KAAK,SAAS,CAAC;QAC3D,UAAU,CAAC,EAAE,KAAK,CAAC;KACpB,CAAC;CACP;AA8BD,yBAAiB,iCAAiC,CAAC;IACjD,KAAY,KAAK,GAAG;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,iCAAiC,CAAC;KAChD,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAAE,EAAE,CAAC,iCAAiC,CAAC,KAAK,CAevF,CAAC;AAsCJ,eAAO,MAAM,2BAA2B,EAAE,EAAE,CAC1C,2BAA2B,CAAC,KAAK,CAkBlC,CAAC"}
@@ -18,23 +18,22 @@ const AttachmentComponent = (t0) => {
18
18
  const { components } = t0;
19
19
  const attachment = useAuiState(_temp);
20
20
  if (!attachment) return null;
21
- const t1 = attachment;
22
- let t2;
23
- if ($[0] !== components || $[1] !== t1) {
24
- t2 = getComponent(components, t1);
25
- $[0] = components;
26
- $[1] = t1;
27
- $[2] = t2;
28
- } else t2 = $[2];
29
- const Component = t2;
21
+ let t1;
22
+ if ($[0] !== attachment || $[1] !== components) {
23
+ t1 = getComponent(components, attachment);
24
+ $[0] = attachment;
25
+ $[1] = components;
26
+ $[2] = t1;
27
+ } else t1 = $[2];
28
+ const Component = t1;
30
29
  if (!Component) return null;
31
- let t3;
30
+ let t2;
32
31
  if ($[3] !== Component) {
33
- t3 = /* @__PURE__ */ jsx(Component, {});
32
+ t2 = /* @__PURE__ */ jsx(Component, {});
34
33
  $[3] = Component;
35
- $[4] = t3;
36
- } else t3 = $[4];
37
- return t3;
34
+ $[4] = t2;
35
+ } else t2 = $[4];
36
+ return t2;
38
37
  };
39
38
  /**
40
39
  * Renders a single attachment at the specified index within the current message.
@@ -64,7 +63,7 @@ MessagePrimitiveAttachmentByIndex.displayName = "MessagePrimitive.AttachmentByIn
64
63
  const MessagePrimitiveAttachmentsInner = ({ children }) => {
65
64
  const attachmentIds = useAuiState(useShallowSelector((s) => {
66
65
  if (s.message.role !== "user") return [];
67
- return (s.message.attachments ?? []).map((attachment) => attachment.id);
66
+ return (s.message.submission?.attachments ?? s.message.attachments ?? []).map((attachment) => attachment.id);
68
67
  }));
69
68
  return useMemo(() => attachmentIds.map((attachmentId, index) => /* @__PURE__ */ jsx(MessageAttachmentByIndexProvider, {
70
69
  index,