@assistant-ui/core 0.3.20 → 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 (905) hide show
  1. package/dist/adapters/attachment.d.ts +42 -34
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/attachment.js +51 -21
  4. package/dist/adapters/attachment.js.map +1 -1
  5. package/dist/adapters/directive-formatter.d.ts +1 -3
  6. package/dist/adapters/directive-formatter.d.ts.map +1 -1
  7. package/dist/adapters/feedback.d.ts +6 -7
  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 +57 -58
  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 +14 -16
  17. package/dist/adapters/suggestion.d.ts.map +1 -1
  18. package/dist/adapters/thread-history.d.ts +54 -51
  19. package/dist/adapters/thread-history.d.ts.map +1 -1
  20. package/dist/adapters/trigger.d.ts +7 -9
  21. package/dist/adapters/trigger.d.ts.map +1 -1
  22. package/dist/adapters/voice.d.ts +46 -40
  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 +0 -2
  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 +19 -21
  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 +27 -28
  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 +19 -21
  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 +42 -29
  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 +6 -8
  54. package/dist/model-context/registry-handles.d.ts.map +1 -1
  55. package/dist/model-context/registry.d.ts +14 -16
  56. package/dist/model-context/registry.d.ts.map +1 -1
  57. package/dist/model-context/tool-call-text.d.ts +13 -14
  58. package/dist/model-context/tool-call-text.d.ts.map +1 -1
  59. package/dist/model-context/tool.d.ts +10 -11
  60. package/dist/model-context/tool.d.ts.map +1 -1
  61. package/dist/model-context/types.d.ts +32 -34
  62. package/dist/model-context/types.d.ts.map +1 -1
  63. package/dist/react/AssistantProvider.d.ts +6 -8
  64. package/dist/react/AssistantProvider.d.ts.map +1 -1
  65. package/dist/react/AssistantRuntimeProvider.d.ts +23 -25
  66. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  67. package/dist/react/RuntimeAdapter.d.ts +2 -5
  68. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  69. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +24 -18
  70. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  71. package/dist/react/adapters/LocalStorageThreadListAdapter.js +58 -25
  72. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  73. package/dist/react/adapters/TitleGenerationAdapter.d.ts +2 -4
  74. package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
  75. package/dist/react/client/AdaptedRemoteThread.d.ts +5 -7
  76. package/dist/react/client/AdaptedRemoteThread.d.ts.map +1 -1
  77. package/dist/react/client/DataRenderers.d.ts +1 -3
  78. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  79. package/dist/react/client/InMemoryThreadList.d.ts +6 -8
  80. package/dist/react/client/InMemoryThreadList.d.ts.map +1 -1
  81. package/dist/react/client/Interactables.d.ts +2 -4
  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 +32 -34
  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 +9 -11
  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 -10
  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 +1 -3
  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 -8
  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 +33 -36
  109. package/dist/react/interactables-legacy/scopes.d.ts.map +1 -1
  110. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts +6 -8
  111. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts.map +1 -1
  112. package/dist/react/interactables-legacy/useInteractableState.d.ts +6 -7
  113. package/dist/react/interactables-legacy/useInteractableState.d.ts.map +1 -1
  114. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts +23 -13
  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 +11 -13
  119. package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -1
  120. package/dist/react/model-context/define-toolkit.d.ts +12 -4
  121. package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
  122. package/dist/react/model-context/external-tool.d.ts +0 -2
  123. package/dist/react/model-context/external-tool.d.ts.map +1 -1
  124. package/dist/react/model-context/human-tool.d.ts +0 -2
  125. package/dist/react/model-context/human-tool.d.ts.map +1 -1
  126. package/dist/react/model-context/interactableTool.d.ts +23 -25
  127. package/dist/react/model-context/interactableTool.d.ts.map +1 -1
  128. package/dist/react/model-context/makeAssistantDataUI.d.ts +4 -6
  129. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
  130. package/dist/react/model-context/makeAssistantTool.d.ts +4 -6
  131. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  132. package/dist/react/model-context/makeAssistantToolUI.d.ts +4 -6
  133. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  134. package/dist/react/model-context/provider-tool.d.ts +3 -4
  135. package/dist/react/model-context/provider-tool.d.ts.map +1 -1
  136. package/dist/react/model-context/stub-tool.d.ts +0 -2
  137. package/dist/react/model-context/stub-tool.d.ts.map +1 -1
  138. package/dist/react/model-context/toolbox.d.ts +37 -24
  139. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  140. package/dist/react/model-context/useAssistantContext.d.ts +2 -5
  141. package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
  142. package/dist/react/model-context/useAssistantDataUI.d.ts +5 -7
  143. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
  144. package/dist/react/model-context/useAssistantInstructions.d.ts +2 -5
  145. package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
  146. package/dist/react/model-context/useAssistantTool.d.ts +8 -11
  147. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  148. package/dist/react/model-context/useAssistantToolUI.d.ts +11 -13
  149. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  150. package/dist/react/model-context/useAuiToolOverrides.d.ts +2 -3
  151. package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -1
  152. package/dist/react/model-context/useInlineRender.d.ts +2 -4
  153. package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
  154. package/dist/react/model-context/useInteractable.d.ts +37 -36
  155. package/dist/react/model-context/useInteractable.d.ts.map +1 -1
  156. package/dist/react/model-context/useInteractableState.d.ts +10 -8
  157. package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
  158. package/dist/react/model-context/useInteractableVersions.d.ts +3 -5
  159. package/dist/react/model-context/useInteractableVersions.d.ts.map +1 -1
  160. package/dist/react/model-context/useToolArgsStatus.d.ts +5 -6
  161. package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
  162. package/dist/react/primitive-hooks/useActionBarCopy.d.ts +6 -8
  163. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  164. package/dist/react/primitive-hooks/useActionBarEdit.d.ts +2 -4
  165. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
  166. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +4 -6
  167. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
  168. package/dist/react/primitive-hooks/useActionBarReload.d.ts +2 -4
  169. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
  170. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +2 -4
  171. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
  172. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +2 -4
  173. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
  174. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +2 -4
  175. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
  176. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +2 -4
  177. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
  178. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +3 -5
  179. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
  180. package/dist/react/primitive-hooks/useComposerCancel.d.ts +2 -4
  181. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
  182. package/dist/react/primitive-hooks/useComposerDictate.d.ts +2 -4
  183. package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
  184. package/dist/react/primitive-hooks/useComposerSend.d.ts +3 -5
  185. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  186. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +1 -3
  187. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
  188. package/dist/react/primitive-hooks/useEditComposerSend.d.ts +2 -4
  189. package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
  190. package/dist/react/primitive-hooks/useMessageBranching.d.ts +4 -6
  191. package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
  192. package/dist/react/primitive-hooks/useMessageError.d.ts +0 -2
  193. package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
  194. package/dist/react/primitive-hooks/useMessageReload.d.ts +2 -4
  195. package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
  196. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +6 -8
  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 +0 -2
  201. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
  202. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +0 -2
  203. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
  204. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +1 -3
  205. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
  206. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +1 -3
  207. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
  208. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +1 -3
  209. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
  210. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +1 -3
  211. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
  212. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +2 -4
  213. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
  214. package/dist/react/primitive-hooks/useThreadListNew.d.ts +1 -3
  215. package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
  216. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts +0 -2
  217. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts.map +1 -1
  218. package/dist/react/primitive-hooks/useThreadMessages.d.ts +1 -3
  219. package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
  220. package/dist/react/primitive-hooks/useVoice.d.ts +5 -7
  221. package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
  222. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +25 -26
  223. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  224. package/dist/react/primitives/composer/ComposerAttachments.d.ts +22 -23
  225. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  226. package/dist/react/primitives/composer/ComposerIf.d.ts +10 -9
  227. package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
  228. package/dist/react/primitives/composer/ComposerQueue.d.ts +11 -14
  229. package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
  230. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +26 -28
  231. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -1
  232. package/dist/react/primitives/generativeUI/GenerativeUI.js +16 -6
  233. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  234. package/dist/react/primitives/message/MessageAttachments.d.ts +26 -23
  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 +120 -117
  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 +199 -185
  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 +6 -8
  247. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
  248. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +2 -4
  249. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  250. package/dist/react/primitives/part/PartMessages.d.ts +13 -15
  251. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  252. package/dist/react/primitives/thread/ThreadMessages.d.ts +54 -56
  253. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  254. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +20 -21
  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 +22 -23
  259. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  260. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +4 -6
  261. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  262. package/dist/react/providers/AttachmentByIndexProvider.d.ts +3 -5
  263. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  264. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +3 -5
  265. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  266. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +2 -4
  267. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  268. package/dist/react/providers/MessageByIdProvider.d.ts +2 -4
  269. package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
  270. package/dist/react/providers/MessageByIndexProvider.d.ts +2 -4
  271. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
  272. package/dist/react/providers/PartByIndexProvider.d.ts +2 -4
  273. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
  274. package/dist/react/providers/QueueItemByIndexProvider.d.ts +2 -4
  275. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
  276. package/dist/react/providers/ReadonlyThreadProvider.d.ts +5 -7
  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 +2 -4
  280. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  281. package/dist/react/providers/TextMessagePartProvider.d.ts +3 -5
  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 +3 -5
  286. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
  287. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +3 -6
  288. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  289. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +209 -219
  290. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  291. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +53 -39
  292. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  293. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +185 -196
  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 +14 -19
  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 +8 -9
  302. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  303. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts +9 -11
  304. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts.map +1 -1
  305. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts +4 -5
  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 +7 -9
  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 +106 -100
  314. package/dist/react/runtimes/assistant-transport/types.d.ts.map +1 -1
  315. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts +3 -5
  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 +2 -4
  320. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts.map +1 -1
  321. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts +1 -3
  322. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts.map +1 -1
  323. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +5 -7
  324. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  325. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +410 -213
  326. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  327. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +14 -16
  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 +136 -123
  332. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  333. package/dist/react/runtimes/cloud/auiV0.js +60 -9
  334. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  335. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts +9 -10
  336. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts.map +1 -1
  337. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts +4 -5
  338. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts.map +1 -1
  339. package/dist/react/runtimes/cloud/sdkIdentity.d.ts +1 -3
  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 +2 -4
  343. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  344. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts +8 -9
  345. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  346. package/dist/react/runtimes/createMessageConverter.d.ts +14 -17
  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 +11 -13
  350. package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
  351. package/dist/react/runtimes/external-message-converter.d.ts +14 -18
  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 +2 -4
  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 +1 -3
  362. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
  363. package/dist/react/runtimes/useLocalRuntime.d.ts +26 -37
  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 +2 -4
  368. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  369. package/dist/react/runtimes/useRuntimeAdapters.d.ts +1 -3
  370. package/dist/react/runtimes/useRuntimeAdapters.d.ts.map +1 -1
  371. package/dist/react/runtimes/useStreamingTiming.d.ts +3 -5
  372. package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
  373. package/dist/react/types/MessagePartComponentTypes.d.ts +46 -43
  374. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  375. package/dist/react/types/scopes/dataRenderers.d.ts +8 -11
  376. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
  377. package/dist/react/types/scopes/interactables.d.ts +50 -49
  378. package/dist/react/types/scopes/interactables.d.ts.map +1 -1
  379. package/dist/react/types/scopes/tools.d.ts +17 -19
  380. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  381. package/dist/react/types/store-augmentation.d.ts +10 -11
  382. package/dist/react/types/store-augmentation.d.ts.map +1 -1
  383. package/dist/react/utils/getMessageQuote.d.ts +5 -6
  384. package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
  385. package/dist/react/utils/groupParts.d.ts +28 -29
  386. package/dist/react/utils/groupParts.d.ts.map +1 -1
  387. package/dist/react/utils/useJSONEqual.d.ts +1 -3
  388. package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
  389. package/dist/react/utils/useJSONSchemaDependency.d.ts +2 -4
  390. package/dist/react/utils/useJSONSchemaDependency.d.ts.map +1 -1
  391. package/dist/runtime/api/assistant-runtime.d.ts +26 -28
  392. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  393. package/dist/runtime/api/attachment-runtime.d.ts +46 -43
  394. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  395. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  396. package/dist/runtime/api/bindings.d.ts +31 -30
  397. package/dist/runtime/api/bindings.d.ts.map +1 -1
  398. package/dist/runtime/api/composer-runtime.d.ts +207 -193
  399. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  400. package/dist/runtime/api/composer-runtime.js +4 -0
  401. package/dist/runtime/api/composer-runtime.js.map +1 -1
  402. package/dist/runtime/api/message-part-runtime.d.ts +28 -26
  403. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  404. package/dist/runtime/api/message-part-runtime.js +22 -0
  405. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  406. package/dist/runtime/api/message-runtime.d.ts +87 -84
  407. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  408. package/dist/runtime/api/message-runtime.js +1 -1
  409. package/dist/runtime/api/message-runtime.js.map +1 -1
  410. package/dist/runtime/api/paths.d.ts +48 -50
  411. package/dist/runtime/api/paths.d.ts.map +1 -1
  412. package/dist/runtime/api/thread-list-item-runtime.d.ts +64 -66
  413. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  414. package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
  415. package/dist/runtime/api/thread-list-runtime.d.ts +73 -76
  416. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  417. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  418. package/dist/runtime/api/thread-runtime.d.ts +299 -300
  419. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  420. package/dist/runtime/api/thread-runtime.js +2 -1
  421. package/dist/runtime/api/thread-runtime.js.map +1 -1
  422. package/dist/runtime/base/base-assistant-runtime-core.d.ts +8 -10
  423. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  424. package/dist/runtime/base/base-composer-runtime-core.d.ts +149 -99
  425. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  426. package/dist/runtime/base/base-composer-runtime-core.js +400 -122
  427. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  428. package/dist/runtime/base/base-thread-runtime-core.d.ts +120 -108
  429. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  430. package/dist/runtime/base/base-thread-runtime-core.js +109 -41
  431. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  432. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +29 -29
  433. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  434. package/dist/runtime/base/default-edit-composer-runtime-core.js +10 -1
  435. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  436. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +27 -29
  437. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  438. package/dist/runtime/base/default-thread-composer-runtime-core.js +21 -6
  439. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  440. package/dist/runtime/branch/external-thread-branch-adapter.d.ts +14 -16
  441. package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
  442. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +7 -9
  443. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  444. package/dist/runtime/interfaces/composer-runtime-core.d.ts +88 -72
  445. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  446. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +63 -65
  447. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  448. package/dist/runtime/interfaces/thread-runtime-core.d.ts +210 -197
  449. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  450. package/dist/runtime/internal.d.ts +25 -20
  451. package/dist/runtime/internal.d.ts.map +1 -0
  452. package/dist/runtime/queue/external-thread-queue-adapter.d.ts +35 -37
  453. package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
  454. package/dist/runtime/queue/message-queue.d.ts +29 -31
  455. package/dist/runtime/queue/message-queue.d.ts.map +1 -1
  456. package/dist/runtime/queue/message-queue.js +1 -1
  457. package/dist/runtime/queue/queue-item.d.ts +5 -7
  458. package/dist/runtime/queue/queue-item.d.ts.map +1 -1
  459. package/dist/runtime/utils/abortable-thread-load.d.ts +7 -8
  460. package/dist/runtime/utils/abortable-thread-load.d.ts.map +1 -1
  461. package/dist/runtime/utils/attachment-add-operations.d.ts +13 -11
  462. package/dist/runtime/utils/attachment-add-operations.d.ts.map +1 -1
  463. package/dist/runtime/utils/attachment-add-operations.js +24 -2
  464. package/dist/runtime/utils/attachment-add-operations.js.map +1 -1
  465. package/dist/runtime/utils/attachment-send-operations.d.ts +12 -0
  466. package/dist/runtime/utils/attachment-send-operations.d.ts.map +1 -0
  467. package/dist/runtime/utils/attachment-send-operations.js +34 -0
  468. package/dist/runtime/utils/attachment-send-operations.js.map +1 -0
  469. package/dist/runtime/utils/auto-status.d.ts +4 -5
  470. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  471. package/dist/runtime/utils/auto-status.js +3 -5
  472. package/dist/runtime/utils/auto-status.js.map +1 -1
  473. package/dist/runtime/utils/chat-model-adapter.d.ts +26 -27
  474. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  475. package/dist/runtime/utils/external-message-conversion.d.ts +32 -32
  476. package/dist/runtime/utils/external-message-conversion.d.ts.map +1 -1
  477. package/dist/runtime/utils/external-message-conversion.js +3 -3
  478. package/dist/runtime/utils/external-message-conversion.js.map +1 -1
  479. package/dist/runtime/utils/external-store-message.d.ts +2 -4
  480. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  481. package/dist/runtime/utils/message-repository-session.d.ts +21 -23
  482. package/dist/runtime/utils/message-repository-session.d.ts.map +1 -1
  483. package/dist/runtime/utils/message-repository.d.ts +50 -51
  484. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  485. package/dist/runtime/utils/message-repository.js +8 -7
  486. package/dist/runtime/utils/message-repository.js.map +1 -1
  487. package/dist/runtime/utils/pending-tool-calls.d.ts +10 -11
  488. package/dist/runtime/utils/pending-tool-calls.d.ts.map +1 -1
  489. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +6 -8
  490. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
  491. package/dist/runtime/utils/runtime-extras-brand.d.ts +4 -6
  492. package/dist/runtime/utils/runtime-extras-brand.d.ts.map +1 -1
  493. package/dist/runtime/utils/stored-message-parts.d.ts +5 -5
  494. package/dist/runtime/utils/stored-message-parts.d.ts.map +1 -1
  495. package/dist/runtime/utils/stored-message-parts.js +22 -2
  496. package/dist/runtime/utils/stored-message-parts.js.map +1 -1
  497. package/dist/runtime/utils/streaming-timing.d.ts +19 -21
  498. package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
  499. package/dist/runtime/utils/thread-message-like.d.ts +36 -32
  500. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  501. package/dist/runtime/utils/thread-message-like.js +16 -6
  502. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  503. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts +4 -5
  504. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts.map +1 -1
  505. package/dist/runtime/utils/thread-runtime-lifecycle.js +31 -4
  506. package/dist/runtime/utils/thread-runtime-lifecycle.js.map +1 -1
  507. package/dist/runtime/utils/tool-call-tree.d.ts +6 -8
  508. package/dist/runtime/utils/tool-call-tree.d.ts.map +1 -1
  509. package/dist/runtime/utils/tool-interactions.d.ts +10 -0
  510. package/dist/runtime/utils/tool-interactions.d.ts.map +1 -0
  511. package/dist/runtime/utils/tool-interactions.js +92 -0
  512. package/dist/runtime/utils/tool-interactions.js.map +1 -0
  513. package/dist/runtimes/assistant-transport/utils.d.ts +0 -2
  514. package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
  515. package/dist/runtimes/external-store/external-store-adapter.d.ts +215 -198
  516. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  517. package/dist/runtimes/external-store/external-store-runtime-core.d.ts +5 -6
  518. package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
  519. package/dist/runtimes/external-store/external-store-runtime-core.js +4 -1
  520. package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
  521. package/dist/runtimes/external-store/external-store-shared-options.d.ts +1 -3
  522. package/dist/runtimes/external-store/external-store-shared-options.d.ts.map +1 -1
  523. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +38 -40
  524. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  525. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +2 -2
  526. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  527. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +117 -124
  528. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  529. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +44 -14
  530. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  531. package/dist/runtimes/external-store/thread-message-converter.d.ts +3 -5
  532. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  533. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts +94 -95
  534. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts.map +1 -1
  535. package/dist/runtimes/inert/InertThreadRuntimeCore.js +3 -0
  536. package/dist/runtimes/inert/InertThreadRuntimeCore.js.map +1 -1
  537. package/dist/runtimes/internal.d.ts +20 -16
  538. package/dist/runtimes/internal.d.ts.map +1 -0
  539. package/dist/runtimes/local/local-runtime-core.d.ts +6 -8
  540. package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
  541. package/dist/runtimes/local/local-runtime-options.d.ts +40 -42
  542. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  543. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +40 -42
  544. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  545. package/dist/runtimes/local/local-thread-runtime-core.d.ts +93 -97
  546. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  547. package/dist/runtimes/local/local-thread-runtime-core.js +178 -31
  548. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  549. package/dist/runtimes/local/should-continue.d.ts +1 -3
  550. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  551. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +76 -53
  552. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  553. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +28 -1
  554. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  555. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +11 -13
  556. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  557. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts +2 -4
  558. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts.map +1 -1
  559. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +1 -3
  560. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  561. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +33 -29
  562. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  563. package/dist/runtimes/remote-thread-list/optimistic-state.js +8 -3
  564. package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
  565. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +44 -46
  566. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  567. package/dist/runtimes/remote-thread-list/remote-thread-state.js +1 -1
  568. package/dist/runtimes/remote-thread-list/title-generation.d.ts +25 -26
  569. package/dist/runtimes/remote-thread-list/title-generation.d.ts.map +1 -1
  570. package/dist/runtimes/remote-thread-list/title.d.ts +3 -5
  571. package/dist/runtimes/remote-thread-list/title.d.ts.map +1 -1
  572. package/dist/runtimes/remote-thread-list/types.d.ts +111 -112
  573. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  574. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +144 -145
  575. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
  576. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +22 -7
  577. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  578. package/dist/store/clients/chain-of-thought-client.d.ts +7 -9
  579. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  580. package/dist/store/clients/external-thread.d.ts +53 -54
  581. package/dist/store/clients/external-thread.d.ts.map +1 -1
  582. package/dist/store/clients/external-thread.js +1256 -731
  583. package/dist/store/clients/external-thread.js.map +1 -1
  584. package/dist/store/clients/model-context-client.d.ts +1 -3
  585. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  586. package/dist/store/clients/no-op-composer-client.d.ts +2 -4
  587. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  588. package/dist/store/clients/no-op-composer-client.js +3 -1
  589. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  590. package/dist/store/clients/runtime-adapter.d.ts +1 -3
  591. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  592. package/dist/store/clients/single-thread-list.d.ts +3 -4
  593. package/dist/store/clients/single-thread-list.d.ts.map +1 -1
  594. package/dist/store/clients/submission-message.d.ts +8 -0
  595. package/dist/store/clients/submission-message.d.ts.map +1 -0
  596. package/dist/store/clients/submission-message.js +22 -0
  597. package/dist/store/clients/submission-message.js.map +1 -0
  598. package/dist/store/clients/suggestions.d.ts +5 -7
  599. package/dist/store/clients/suggestions.d.ts.map +1 -1
  600. package/dist/store/clients/thread-message-client.d.ts +10 -9
  601. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  602. package/dist/store/clients/thread-message-client.js +81 -82
  603. package/dist/store/clients/thread-message-client.js.map +1 -1
  604. package/dist/store/clients/thread-selection-events.d.ts +0 -2
  605. package/dist/store/clients/thread-selection-events.d.ts.map +1 -1
  606. package/dist/store/clients/thread-tasks.d.ts +4 -6
  607. package/dist/store/clients/thread-tasks.d.ts.map +1 -1
  608. package/dist/store/env.d.ts +0 -2
  609. package/dist/store/env.d.ts.map +1 -1
  610. package/dist/store/index.d.ts +33 -36
  611. package/dist/store/index.d.ts.map +1 -0
  612. package/dist/store/index.js +5 -5
  613. package/dist/store/internal.d.ts +12 -12
  614. package/dist/store/internal.d.ts.map +1 -0
  615. package/dist/store/internal.js +2 -2
  616. package/dist/store/primitive-predicates.d.ts +3 -4
  617. package/dist/store/primitive-predicates.d.ts.map +1 -1
  618. package/dist/store/primitive-predicates.js +9 -4
  619. package/dist/store/primitive-predicates.js.map +1 -1
  620. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +3 -5
  621. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  622. package/dist/store/runtime-clients/composer-runtime-client.d.ts +10 -12
  623. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  624. package/dist/store/runtime-clients/composer-runtime-client.js +65 -62
  625. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  626. package/dist/store/runtime-clients/handle-runtime-action.d.ts +0 -2
  627. package/dist/store/runtime-clients/handle-runtime-action.d.ts.map +1 -1
  628. package/dist/store/runtime-clients/handle-thread-list-action.d.ts +0 -2
  629. package/dist/store/runtime-clients/handle-thread-list-action.d.ts.map +1 -1
  630. package/dist/store/runtime-clients/liveRef.d.ts +1 -3
  631. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
  632. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +3 -5
  633. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  634. package/dist/store/runtime-clients/message-part-runtime-client.js +26 -16
  635. package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
  636. package/dist/store/runtime-clients/message-runtime-client.d.ts +9 -9
  637. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  638. package/dist/store/runtime-clients/message-runtime-client.js +121 -113
  639. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  640. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +4 -6
  641. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  642. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +5 -7
  643. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  644. package/dist/store/runtime-clients/thread-runtime-client.d.ts +3 -5
  645. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  646. package/dist/store/runtime-clients/thread-runtime-client.js +221 -158
  647. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  648. package/dist/store/runtime-clients/useSubscribable.d.ts +2 -4
  649. package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
  650. package/dist/store/scope-registration.d.ts +28 -29
  651. package/dist/store/scope-registration.d.ts.map +1 -1
  652. package/dist/store/scopes/attachment.d.ts +15 -17
  653. package/dist/store/scopes/attachment.d.ts.map +1 -1
  654. package/dist/store/scopes/chain-of-thought.d.ts +28 -29
  655. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  656. package/dist/store/scopes/composer.d.ts +141 -128
  657. package/dist/store/scopes/composer.d.ts.map +1 -1
  658. package/dist/store/scopes/message.d.ts +114 -107
  659. package/dist/store/scopes/message.d.ts.map +1 -1
  660. package/dist/store/scopes/model-context.d.ts +7 -9
  661. package/dist/store/scopes/model-context.d.ts.map +1 -1
  662. package/dist/store/scopes/part.d.ts +49 -45
  663. package/dist/store/scopes/part.d.ts.map +1 -1
  664. package/dist/store/scopes/queue-item.d.ts +18 -20
  665. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  666. package/dist/store/scopes/suggestion.d.ts +10 -12
  667. package/dist/store/scopes/suggestion.d.ts.map +1 -1
  668. package/dist/store/scopes/suggestions.d.ts +13 -15
  669. package/dist/store/scopes/suggestions.d.ts.map +1 -1
  670. package/dist/store/scopes/task.d.ts +23 -25
  671. package/dist/store/scopes/task.d.ts.map +1 -1
  672. package/dist/store/scopes/thread-list-item.d.ts +63 -65
  673. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  674. package/dist/store/scopes/thread.d.ts +192 -194
  675. package/dist/store/scopes/thread.d.ts.map +1 -1
  676. package/dist/store/scopes/threads.d.ts +45 -47
  677. package/dist/store/scopes/threads.d.ts.map +1 -1
  678. package/dist/subscribable/subscribable.d.ts +58 -53
  679. package/dist/subscribable/subscribable.d.ts.map +1 -1
  680. package/dist/subscribable/subscribable.js +35 -7
  681. package/dist/subscribable/subscribable.js.map +1 -1
  682. package/dist/types/attachment.d.ts +26 -27
  683. package/dist/types/attachment.d.ts.map +1 -1
  684. package/dist/types/augmentations.d.ts +4 -4
  685. package/dist/types/augmentations.d.ts.map +1 -1
  686. package/dist/types/directive.d.ts +11 -13
  687. package/dist/types/directive.d.ts.map +1 -1
  688. package/dist/types/error.d.ts +7 -8
  689. package/dist/types/error.d.ts.map +1 -1
  690. package/dist/types/index.d.ts +7 -7
  691. package/dist/types/index.d.ts.map +1 -0
  692. package/dist/types/message.d.ts +322 -284
  693. package/dist/types/message.d.ts.map +1 -1
  694. package/dist/types/message.js.map +1 -1
  695. package/dist/types/quote.d.ts +2 -4
  696. package/dist/types/quote.d.ts.map +1 -1
  697. package/dist/types/trigger.d.ts +8 -10
  698. package/dist/types/trigger.d.ts.map +1 -1
  699. package/dist/types/unsubscribe.d.ts +0 -2
  700. package/dist/types/unsubscribe.d.ts.map +1 -1
  701. package/dist/utils/abortable-iterable.d.ts +0 -2
  702. package/dist/utils/abortable-iterable.d.ts.map +1 -1
  703. package/dist/utils/composite-context-provider.d.ts +8 -11
  704. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  705. package/dist/utils/data-url.d.ts +10 -12
  706. package/dist/utils/data-url.d.ts.map +1 -1
  707. package/dist/utils/getGroupStatus.d.ts +17 -18
  708. package/dist/utils/getGroupStatus.d.ts.map +1 -1
  709. package/dist/utils/id.d.ts +0 -2
  710. package/dist/utils/id.d.ts.map +1 -1
  711. package/dist/utils/image-media-type.d.ts +0 -2
  712. package/dist/utils/image-media-type.d.ts.map +1 -1
  713. package/dist/utils/invoke-user-callback.d.ts +0 -2
  714. package/dist/utils/invoke-user-callback.d.ts.map +1 -1
  715. package/dist/utils/json/is-json-equal.d.ts +0 -2
  716. package/dist/utils/json/is-json-equal.d.ts.map +1 -1
  717. package/dist/utils/json/is-json.d.ts +1 -3
  718. package/dist/utils/json/is-json.d.ts.map +1 -1
  719. package/dist/utils/json/stable-stringify-tool-args.d.ts +1 -3
  720. package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -1
  721. package/dist/utils/normalizePartStatus.d.ts +2 -3
  722. package/dist/utils/normalizePartStatus.d.ts.map +1 -1
  723. package/dist/utils/normalizePartStatus.js +3 -2
  724. package/dist/utils/normalizePartStatus.js.map +1 -1
  725. package/dist/utils/notify-event-listeners.d.ts +1 -2
  726. package/dist/utils/notify-event-listeners.d.ts.map +1 -1
  727. package/dist/utils/record.d.ts +0 -2
  728. package/dist/utils/record.d.ts.map +1 -1
  729. package/dist/utils/silent-runtime-action.d.ts +0 -2
  730. package/dist/utils/silent-runtime-action.d.ts.map +1 -1
  731. package/dist/utils/text.d.ts +1 -3
  732. package/dist/utils/text.d.ts.map +1 -1
  733. package/dist/utils/wire-media.d.ts +0 -2
  734. package/dist/utils/wire-media.d.ts.map +1 -1
  735. package/package.json +11 -10
  736. package/src/adapters/attachment.test.ts +98 -1
  737. package/src/adapters/attachment.ts +70 -20
  738. package/src/adapters/speech.test.ts +94 -0
  739. package/src/adapters/speech.ts +16 -2
  740. package/src/adapters/thread-history.ts +16 -5
  741. package/src/adapters/voice.test.ts +169 -0
  742. package/src/adapters/voice.ts +25 -4
  743. package/src/index.ts +14 -2
  744. package/src/internal.ts +7 -0
  745. package/src/model-context/frame/host.test.ts +51 -1
  746. package/src/model-context/frame/host.ts +3 -1
  747. package/src/model-context/frame/provider.test.ts +61 -0
  748. package/src/model-context/frame/provider.ts +8 -1
  749. package/src/model-context/frame/validate.ts +57 -0
  750. package/src/model-context/interactable-composer-metadata.test.ts +82 -0
  751. package/src/model-context/interactable-composer-metadata.ts +45 -2
  752. package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +594 -0
  753. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +98 -35
  754. package/src/react/client/Interactables.test.ts +853 -1
  755. package/src/react/client/Interactables.ts +325 -45
  756. package/src/react/client/RemoteThreadList.initialize-failure.test.ts +124 -0
  757. package/src/react/client/RemoteThreadList.ts +6 -0
  758. package/src/react/client/Tools.ts +2 -3
  759. package/src/react/client/interactable-model-context.test.ts +56 -13
  760. package/src/react/client/interactable-model-context.ts +48 -23
  761. package/src/react/index.ts +2 -2
  762. package/src/react/interactables-legacy/Interactables.test.ts +212 -1
  763. package/src/react/interactables-legacy/Interactables.ts +25 -14
  764. package/src/react/interactables-legacy/interactable-model-context.ts +26 -24
  765. package/src/react/interactables-shared/useInteractablePersistenceQueue.test.tsx +22 -2
  766. package/src/react/interactables-shared/useInteractablePersistenceQueue.ts +63 -11
  767. package/src/react/primitive-hooks/useSuggestionTrigger.test.ts +33 -0
  768. package/src/react/primitive-hooks/useSuggestionTrigger.ts +7 -4
  769. package/src/react/primitives/generativeUI/GenerativeUI.test.tsx +124 -8
  770. package/src/react/primitives/generativeUI/GenerativeUI.tsx +35 -15
  771. package/src/react/primitives/message/MessageAttachments.test.tsx +2 -6
  772. package/src/react/primitives/message/MessageAttachments.tsx +14 -8
  773. package/src/react/primitives/message/MessageGroupedParts.test.tsx +151 -7
  774. package/src/react/primitives/message/MessageGroupedParts.tsx +19 -6
  775. package/src/react/primitives/message/MessageParts.test.tsx +84 -0
  776. package/src/react/primitives/message/MessageParts.tool-interaction.test.tsx +69 -0
  777. package/src/react/primitives/message/MessageParts.tsx +29 -8
  778. package/src/react/primitives/thread/ThreadSuggestions.test.tsx +97 -0
  779. package/src/react/primitives/thread/ThreadSuggestions.tsx +29 -6
  780. package/src/react/providers/ReadonlyThreadProvider.tsx +2 -2
  781. package/src/react/providers/TextMessagePartProvider.tsx +3 -0
  782. package/src/react/runtimes/RemoteThreadListHookInstanceManager.running.test.tsx +93 -0
  783. package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +160 -3
  784. package/src/react/runtimes/RemoteThreadListHookInstanceManager.title.test.tsx +38 -0
  785. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +73 -53
  786. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +19 -3
  787. package/src/react/runtimes/RemoteThreadResource.ts +5 -2
  788. package/src/react/runtimes/assistant-transport/replayBoundaryStream.test.ts +3 -1
  789. package/src/react/runtimes/assistant-transport/replayBoundaryStream.ts +10 -2
  790. package/src/react/runtimes/assistant-transport/runManager.ts +3 -0
  791. package/src/react/runtimes/assistant-transport/transport-parentid.test.tsx +57 -0
  792. package/src/react/runtimes/assistant-transport/transport-thread-id.test.tsx +571 -0
  793. package/src/react/runtimes/assistant-transport/types.ts +9 -1
  794. package/src/react/runtimes/assistant-transport/useAssistantTransport.spec.md +10 -0
  795. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.test.tsx +42 -0
  796. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.ts +33 -9
  797. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.integration.test.tsx +289 -0
  798. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.test.tsx +471 -0
  799. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.engagement.test.tsx +330 -0
  800. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.ts +78 -2
  801. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +361 -2
  802. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +571 -216
  803. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +25 -0
  804. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +7 -3
  805. package/src/react/runtimes/cloud/auiV0.ts +158 -9
  806. package/src/react/runtimes/cloud/auiV0DecodeSafely.test.ts +352 -1
  807. package/src/react/runtimes/createMessageConverter.ts +9 -3
  808. package/src/react/runtimes/external-store-history-copy.ts +223 -0
  809. package/src/react/runtimes/useExternalStoreRuntime.history-copy.test.tsx +483 -0
  810. package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +76 -1
  811. package/src/react/runtimes/useExternalStoreRuntime.ts +25 -5
  812. package/src/react/runtimes/useLocalRuntime.test.tsx +145 -1
  813. package/src/react/runtimes/useLocalRuntime.ts +8 -5
  814. package/src/react/types/MessagePartComponentTypes.ts +10 -0
  815. package/src/react/types/scopes/interactables.ts +3 -0
  816. package/src/runtime/api/attachment-runtime.ts +10 -5
  817. package/src/runtime/api/bindings.ts +6 -1
  818. package/src/runtime/api/composer-runtime.ts +29 -6
  819. package/src/runtime/api/message-part-runtime.test.ts +215 -0
  820. package/src/runtime/api/message-part-runtime.ts +40 -0
  821. package/src/runtime/api/message-runtime.test.ts +112 -2
  822. package/src/runtime/api/message-runtime.ts +10 -5
  823. package/src/runtime/api/thread-list-item-runtime.ts +5 -5
  824. package/src/runtime/api/thread-list-runtime.ts +3 -3
  825. package/src/runtime/api/thread-runtime.test.ts +59 -0
  826. package/src/runtime/api/thread-runtime.ts +21 -11
  827. package/src/runtime/base/base-composer-runtime-core.ts +548 -153
  828. package/src/runtime/base/base-thread-runtime-core.test.ts +744 -9
  829. package/src/runtime/base/base-thread-runtime-core.ts +154 -27
  830. package/src/runtime/base/default-edit-composer-runtime-core.ts +13 -1
  831. package/src/runtime/base/default-thread-composer-runtime-core.ts +29 -10
  832. package/src/runtime/interfaces/composer-runtime-core.ts +19 -0
  833. package/src/runtime/interfaces/thread-runtime-core.ts +22 -1
  834. package/src/runtime/utils/attachment-add-operations.ts +45 -2
  835. package/src/runtime/utils/attachment-send-operations.ts +54 -0
  836. package/src/runtime/utils/auto-status.test.ts +54 -0
  837. package/src/runtime/utils/auto-status.ts +3 -10
  838. package/src/runtime/utils/external-message-conversion.test.ts +48 -0
  839. package/src/runtime/utils/external-message-conversion.ts +3 -4
  840. package/src/runtime/utils/message-repository.test.ts +69 -1
  841. package/src/runtime/utils/message-repository.ts +14 -7
  842. package/src/runtime/utils/stored-message-parts.ts +43 -1
  843. package/src/runtime/utils/thread-message-like.test.ts +58 -0
  844. package/src/runtime/utils/thread-message-like.ts +72 -46
  845. package/src/runtime/utils/thread-runtime-lifecycle.test.ts +67 -0
  846. package/src/runtime/utils/thread-runtime-lifecycle.ts +42 -8
  847. package/src/runtime/utils/tool-interactions.test.ts +193 -0
  848. package/src/runtime/utils/tool-interactions.ts +147 -0
  849. package/src/runtimes/external-store/external-store-adapter.ts +22 -1
  850. package/src/runtimes/external-store/external-store-runtime-core.ts +10 -2
  851. package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +2 -2
  852. package/src/runtimes/external-store/external-store-thread-runtime-core.test.ts +49 -0
  853. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +76 -29
  854. package/src/runtimes/inert/InertThreadRuntimeCore.test.ts +127 -56
  855. package/src/runtimes/inert/InertThreadRuntimeCore.ts +10 -1
  856. package/src/runtimes/local/local-thread-runtime-core.edit-cancellation.test.ts +70 -0
  857. package/src/runtimes/local/local-thread-runtime-core.test.ts +1649 -108
  858. package/src/runtimes/local/local-thread-runtime-core.ts +301 -47
  859. package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +53 -1
  860. package/src/runtimes/remote-thread-list/optimistic-state.ts +8 -3
  861. package/src/runtimes/tool-invocations/EDGE_CASES.md +19 -4
  862. package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +392 -39
  863. package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +31 -8
  864. package/src/store/clients/external-thread.test.ts +145 -0
  865. package/src/store/clients/external-thread.ts +635 -131
  866. package/src/store/clients/model-context-client.test.ts +8 -8
  867. package/src/store/clients/no-op-composer-client.ts +2 -0
  868. package/src/store/clients/submission-message.ts +27 -0
  869. package/src/store/clients/thread-message-client.test.ts +39 -0
  870. package/src/store/clients/thread-message-client.ts +13 -6
  871. package/src/store/index.ts +2 -2
  872. package/src/store/internal.ts +1 -0
  873. package/src/store/primitive-predicates.test.ts +103 -0
  874. package/src/store/primitive-predicates.ts +15 -3
  875. package/src/store/runtime-clients/composer-runtime-client.ts +4 -3
  876. package/src/store/runtime-clients/message-part-runtime-client.test.ts +42 -0
  877. package/src/store/runtime-clients/message-part-runtime-client.ts +4 -0
  878. package/src/store/runtime-clients/message-runtime-client.ts +5 -0
  879. package/src/store/runtime-clients/thread-runtime-client.test.tsx +138 -5
  880. package/src/store/runtime-clients/thread-runtime-client.ts +46 -9
  881. package/src/store/scopes/composer.ts +22 -4
  882. package/src/store/scopes/message.ts +8 -0
  883. package/src/store/scopes/part.ts +8 -0
  884. package/src/subscribable/subscribable.test.ts +198 -1
  885. package/src/subscribable/subscribable.ts +49 -7
  886. package/src/tests/RemoteThreadListThreadListRuntimeCore-errors.test.ts +95 -1
  887. package/src/tests/auiV0Encode.test.ts +408 -1
  888. package/src/tests/base-composer-runtime-core-send.test.ts +722 -29
  889. package/src/tests/base-composer-runtime-core.test.ts +196 -0
  890. package/src/tests/composer-can-send.test.ts +98 -1
  891. package/src/tests/composer-submission.test.tsx +796 -0
  892. package/src/tests/default-edit-composer-runtime-core.test.ts +102 -2
  893. package/src/tests/external-store-thread-list-runtime-core.test.ts +111 -0
  894. package/src/tests/external-store-thread-runtime-core-adapter.test.ts +581 -1
  895. package/src/tests/external-store-thread-runtime-core.test.ts +186 -0
  896. package/src/tests/external-thread-attachments.test.tsx +741 -3
  897. package/src/tests/external-thread-isLast.test.tsx +69 -0
  898. package/src/tests/get-thread-state-isRunning.test.ts +2 -2
  899. package/src/tests/remote-thread-list-adapter-switch.test.ts +45 -1
  900. package/src/types/message.ts +49 -2
  901. package/src/utils/normalizePartStatus.ts +14 -1
  902. package/dist/tests/remote-thread-list-test-helpers.d.ts +0 -15
  903. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +0 -1
  904. package/dist/tests/remote-thread-list-test-helpers.js +0 -59
  905. package/dist/tests/remote-thread-list-test-helpers.js.map +0 -1
@@ -1,148 +1,161 @@
1
- import { MessageStatus, ReasoningMessagePart, SourceProviderMetadata, ThreadMessage, ToolApprovalDisplay, ToolApprovalOption, ToolCallMessagePartMcpMetadata, ToolCallTiming } from "../../../types/message.js";
2
- import { CompleteAttachment } from "../../../types/attachment.js";
3
- import { ExportedMessageRepositoryItem } from "../../../runtime/utils/message-repository.js";
4
- import { ReadonlyJSONObject, ReadonlyJSONValue } from "assistant-stream/utils";
5
- import { CloudMessage } from "assistant-cloud";
6
- //#region src/react/runtimes/cloud/auiV0.d.ts
1
+ import type { MessageStatus, PartProviderMetadata, SourceProviderMetadata, ThreadMessage, ToolCallMessagePartMcpMetadata, ToolCallTiming, ToolApprovalDisplay, ToolApprovalOption, ReasoningMessagePart, TextMessagePart, ImageMessagePart, FileMessagePart, Unstable_ToolInteractionLog } from "../../../types/message.js";
2
+ import type { CompleteAttachment } from "../../../types/attachment.js";
3
+ import type { CloudMessage } from "assistant-cloud";
4
+ import type { ReadonlyJSONObject, ReadonlyJSONValue } from "assistant-stream/utils";
5
+ import type { ToolModelContentPart } from "assistant-stream";
6
+ import type { ExportedMessageRepositoryItem } from "../../../runtime/utils/message-repository.js";
7
7
  type AuiV0ToolApproval = {
8
- readonly id: string;
9
- readonly prompt?: string;
10
- readonly display?: ToolApprovalDisplay;
11
- readonly allowFreeform?: boolean;
12
- readonly approved?: boolean;
13
- readonly reason?: string;
14
- readonly isAutomatic?: boolean;
15
- readonly options?: readonly ToolApprovalOption[];
16
- readonly optionId?: string;
17
- readonly text?: string;
18
- readonly resolution?: "cancelled" | "expired";
8
+ readonly id: string;
9
+ readonly prompt?: string;
10
+ readonly display?: ToolApprovalDisplay;
11
+ readonly allowFreeform?: boolean;
12
+ readonly dismissible?: boolean;
13
+ readonly approved?: boolean;
14
+ readonly reason?: string;
15
+ readonly isAutomatic?: boolean;
16
+ readonly options?: readonly ToolApprovalOption[];
17
+ readonly optionId?: string;
18
+ readonly text?: string;
19
+ readonly resolution?: "cancelled" | "expired";
19
20
  };
20
21
  type AuiV0MessagePart = {
21
- readonly type: "text";
22
- readonly text: string;
23
- readonly parentId?: string;
22
+ readonly type: "text";
23
+ readonly text: string;
24
+ readonly providerMetadata?: NonNullable<TextMessagePart["providerMetadata"]>;
25
+ readonly parentId?: string;
24
26
  } | {
25
- readonly type: "reasoning";
26
- readonly text: string;
27
- readonly unstable_summary?: string;
28
- readonly providerMetadata?: NonNullable<ReasoningMessagePart["providerMetadata"]>;
29
- readonly parentId?: string;
27
+ readonly type: "reasoning";
28
+ readonly text: string;
29
+ readonly unstable_summary?: string;
30
+ readonly providerMetadata?: NonNullable<ReasoningMessagePart["providerMetadata"]>;
31
+ readonly parentId?: string;
30
32
  } | {
31
- readonly type: "source";
32
- readonly sourceType: "url";
33
- readonly id: string;
34
- readonly url: string;
35
- readonly title?: string;
36
- readonly providerMetadata?: SourceProviderMetadata;
37
- readonly parentId?: string;
33
+ readonly type: "source";
34
+ readonly sourceType: "url";
35
+ readonly id: string;
36
+ readonly url: string;
37
+ readonly title?: string;
38
+ readonly providerMetadata?: SourceProviderMetadata;
39
+ readonly parentId?: string;
38
40
  } | {
39
- readonly type: "source";
40
- readonly sourceType: "document";
41
- readonly id: string;
42
- readonly title: string;
43
- readonly mediaType: string;
44
- readonly filename?: string;
45
- readonly providerMetadata?: SourceProviderMetadata;
46
- readonly parentId?: string;
41
+ readonly type: "source";
42
+ readonly sourceType: "document";
43
+ readonly id: string;
44
+ readonly title: string;
45
+ readonly mediaType: string;
46
+ readonly filename?: string;
47
+ readonly providerMetadata?: SourceProviderMetadata;
48
+ readonly parentId?: string;
47
49
  } | (AuiV0ToolCallPart & ({
48
- readonly args: ReadonlyJSONObject;
50
+ readonly args: ReadonlyJSONObject;
49
51
  } | {
50
- readonly argsText: string;
52
+ readonly argsText: string;
51
53
  })) | {
52
- readonly type: "image";
53
- readonly image: string;
54
+ readonly type: "image";
55
+ readonly image: string;
56
+ readonly filename?: string;
57
+ readonly providerMetadata?: NonNullable<ImageMessagePart["providerMetadata"]>;
54
58
  } | {
55
- readonly type: "file";
56
- readonly data: string;
57
- readonly mimeType: string;
58
- readonly filename?: string;
59
- readonly sourceType?: "url" | "id";
60
- readonly parentId?: string;
59
+ readonly type: "file";
60
+ readonly data: string;
61
+ readonly mimeType: string;
62
+ readonly filename?: string;
63
+ readonly sourceType?: "url" | "id";
64
+ readonly providerMetadata?: NonNullable<FileMessagePart["providerMetadata"]>;
65
+ readonly parentId?: string;
61
66
  } | {
62
- readonly type: "data";
63
- readonly name: string;
64
- readonly data: ReadonlyJSONValue;
67
+ readonly type: "data";
68
+ readonly name: string;
69
+ readonly data: ReadonlyJSONValue;
65
70
  } | {
66
- readonly type: "audio";
67
- readonly audio: {
68
- readonly data: string;
69
- readonly format: "mp3" | "wav";
70
- };
71
+ readonly type: "audio";
72
+ readonly audio: {
73
+ readonly data: string;
74
+ readonly format: "mp3" | "wav";
75
+ };
71
76
  } | {
72
- readonly type: "generative-ui";
73
- readonly spec: ReadonlyJSONObject;
74
- readonly id?: string;
75
- readonly parentId?: string;
77
+ readonly type: "generative-ui";
78
+ readonly spec: ReadonlyJSONObject;
79
+ readonly id?: string;
80
+ readonly parentId?: string;
76
81
  };
77
82
  type AuiV0ToolCallPart = {
78
- readonly type: "tool-call";
79
- readonly toolCallId: string;
80
- readonly toolName: string;
81
- readonly result?: ReadonlyJSONValue;
82
- readonly isError?: true;
83
- readonly interrupt?: {
84
- readonly type: "human";
85
- readonly payload: ReadonlyJSONValue;
86
- };
87
- readonly timing?: ToolCallTiming;
88
- readonly mcp?: ToolCallMessagePartMcpMetadata;
89
- readonly approval?: AuiV0ToolApproval;
90
- readonly parentId?: string;
91
- readonly messages?: readonly AuiV0Message[];
83
+ readonly type: "tool-call";
84
+ readonly toolCallId: string;
85
+ readonly toolName: string;
86
+ readonly result?: ReadonlyJSONValue;
87
+ readonly artifact?: ReadonlyJSONValue;
88
+ readonly modelContent?: readonly ToolModelContentPart[];
89
+ readonly providerMetadata?: PartProviderMetadata;
90
+ readonly isPreliminary?: true;
91
+ readonly isError?: true;
92
+ readonly interrupt?: {
93
+ readonly type: "human";
94
+ readonly payload: ReadonlyJSONValue;
95
+ };
96
+ readonly timing?: ToolCallTiming;
97
+ readonly mcp?: ToolCallMessagePartMcpMetadata;
98
+ readonly approval?: AuiV0ToolApproval;
99
+ readonly parentId?: string;
100
+ readonly messages?: readonly AuiV0Message[];
101
+ readonly unstable_interactions?: Unstable_ToolInteractionLog;
92
102
  };
93
103
  type AuiV0AttachmentPart = {
94
- readonly type: "text";
95
- readonly text: string;
96
- readonly parentId?: string;
104
+ readonly type: "text";
105
+ readonly text: string;
106
+ readonly providerMetadata?: NonNullable<TextMessagePart["providerMetadata"]>;
107
+ readonly parentId?: string;
97
108
  } | {
98
- readonly type: "image";
99
- readonly image: string;
100
- readonly filename?: string;
109
+ readonly type: "image";
110
+ readonly image: string;
111
+ readonly filename?: string;
112
+ readonly providerMetadata?: NonNullable<ImageMessagePart["providerMetadata"]>;
101
113
  } | {
102
- readonly type: "file";
103
- readonly data: string;
104
- readonly mimeType: string;
105
- readonly filename?: string;
106
- readonly sourceType?: "url" | "id";
107
- readonly parentId?: string;
108
- } | {
109
- readonly type: "audio";
110
- readonly audio: {
114
+ readonly type: "file";
111
115
  readonly data: string;
112
- readonly format: "mp3" | "wav";
113
- };
116
+ readonly mimeType: string;
117
+ readonly filename?: string;
118
+ readonly sourceType?: "url" | "id";
119
+ readonly providerMetadata?: NonNullable<FileMessagePart["providerMetadata"]>;
120
+ readonly parentId?: string;
121
+ } | {
122
+ readonly type: "audio";
123
+ readonly audio: {
124
+ readonly data: string;
125
+ readonly format: "mp3" | "wav";
126
+ };
114
127
  } | {
115
- readonly type: "data";
116
- readonly name: string;
117
- readonly data: ReadonlyJSONValue;
128
+ readonly type: "data";
129
+ readonly name: string;
130
+ readonly data: ReadonlyJSONValue;
118
131
  };
119
132
  type AuiV0Attachment = {
120
- readonly id: string;
121
- readonly type: CompleteAttachment["type"];
122
- readonly name: string;
123
- readonly contentType?: string;
124
- readonly status: CompleteAttachment["status"];
125
- readonly content: readonly AuiV0AttachmentPart[];
133
+ readonly id: string;
134
+ readonly type: CompleteAttachment["type"];
135
+ readonly name: string;
136
+ readonly contentType?: string;
137
+ readonly status: CompleteAttachment["status"];
138
+ readonly content: readonly AuiV0AttachmentPart[];
126
139
  };
127
140
  type AuiV0Message = {
128
- readonly id?: string;
129
- readonly createdAt?: string;
130
- readonly role: "assistant" | "user" | "system";
131
- readonly status?: MessageStatus;
132
- readonly content: readonly AuiV0MessagePart[];
133
- readonly attachments?: readonly AuiV0Attachment[];
134
- readonly metadata: {
135
- readonly unstable_state?: ReadonlyJSONValue;
136
- readonly unstable_annotations: readonly ReadonlyJSONValue[];
137
- readonly unstable_data: readonly ReadonlyJSONValue[];
138
- readonly steps: readonly {
139
- readonly usage?: {
140
- readonly inputTokens: number;
141
- readonly outputTokens: number;
142
- };
143
- }[];
144
- readonly custom: ReadonlyJSONObject;
145
- };
141
+ readonly id?: string;
142
+ readonly createdAt?: string;
143
+ readonly role: "assistant" | "user" | "system";
144
+ readonly status?: MessageStatus;
145
+ readonly content: readonly AuiV0MessagePart[];
146
+ readonly attachments?: readonly AuiV0Attachment[];
147
+ readonly metadata: {
148
+ readonly unstable_state?: ReadonlyJSONValue;
149
+ readonly unstable_annotations: readonly ReadonlyJSONValue[];
150
+ readonly unstable_data: readonly ReadonlyJSONValue[];
151
+ readonly steps: readonly {
152
+ readonly usage?: {
153
+ readonly inputTokens: number;
154
+ readonly outputTokens: number;
155
+ };
156
+ }[];
157
+ readonly custom: ReadonlyJSONObject;
158
+ };
146
159
  };
147
160
  export declare function auiV0Encode(message: ThreadMessage): AuiV0Message;
148
161
  /**
@@ -152,10 +165,10 @@ export declare function auiV0Encode(message: ThreadMessage): AuiV0Message;
152
165
  * single stored row is malformed.
153
166
  */
154
167
  export declare function auiV0DecodeSafely(cloudMessage: CloudMessage & {
155
- format: "aui/v0";
168
+ format: "aui/v0";
156
169
  }): ExportedMessageRepositoryItem | null;
157
170
  export declare function auiV0Decode(cloudMessage: CloudMessage & {
158
- format: "aui/v0";
171
+ format: "aui/v0";
159
172
  }): ExportedMessageRepositoryItem;
160
- //#endregion
173
+ export {};
161
174
  //# sourceMappingURL=auiV0.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auiV0.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/auiV0.ts"],"mappings":";;;;;;KA8BK;WACM;WACA;WACA,UAAU;WACV;WACA;WACA;WACA;WACA,mBAAmB;WACnB;WACA;WACA;;KAGN;WAEU;WACA;WACA;;WAGA;WACA;WACA;WACA,mBAAmB,YAC1B;WAEO;;WAGA;WACA;WACA;WACA;WACA;WACA,mBAAmB;WACnB;;WAGA;WACA;WACA;WACA;WACA;WACA;WACA,mBAAmB;WACnB;KAEV;WACa,MAAM;;WAAkC;;WAE3C;WACA;;WAGA;WACA;WACA;WACA;WACA;WACA;;WAGA;WACA;WACA,MAAM;;WAGN;WACA;aACE;aACA;;;WAIF;WACA,MAAM;WACN;WACA;;KAGV;WACM;WACA;WACA;WACA,SAAS;WACT;WACA;aACE;aACA,SAAS;;WAEX,SAAS;WACT,MAAM;WACN,WAAW;WACX;WACA,oBAAoB;;KAG1B;WAEU;WACA;WACA;;WAGA;WACA;WACA;;WAGA;WACA;WACA;WACA;WACA;WACA;;WAGA;WACA;aACE;aACA;;;WAIF;WACA;WACA,MAAM;;KAGhB;WACM;WACA,MAAM;WACN;WACA;WACA,QAAQ;WACR,kBAAkB;;KAGxB;WACM;WACA;WACA;WACA,SAAS;WACT,kBAAkB;WAClB,uBAAuB;WACvB;aACE,iBAAiB;aACjB,+BAA+B;aAC/B,wBAAwB;aACxB;eACE;iBACE;iBACA;;;aAGJ,QAAQ;;;wBAoFL,YAAY,SAAS,gBAAgB;;;;;;;wBA4PrC,kBACd,cAAc;EAAiB;IAC9B;wBAyBa,YACd,cAAc;EAAiB;IAC9B"}
1
+ {"version":3,"file":"auiV0.d.ts","sourceRoot":"","sources":["../../../../src/react/runtimes/cloud/auiV0.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { isJSONValue, isRecord } from "../../../utils/json/is-json.js";
2
+ import { readToolInteractionLog } from "../../../runtime/utils/tool-interactions.js";
2
3
  import { fromThreadMessageLike } from "../../../runtime/utils/thread-message-like.js";
3
- import { isStoredAuiV0RolePart, isStoredMessageRole, parseStoredAttachment, parseStoredDate } from "../../../runtime/utils/stored-message-parts.js";
4
+ import { isStoredAuiV0RolePart, isStoredMessageRole, isStoredMessageStatus, parseStoredAttachment, parseStoredDate, parseStoredThreadSteps } from "../../../runtime/utils/stored-message-parts.js";
4
5
  //#region src/react/runtimes/cloud/auiV0.ts
5
6
  const encodeAttachmentPart = (part) => {
6
7
  const type = part.type;
@@ -8,12 +9,14 @@ const encodeAttachmentPart = (part) => {
8
9
  case "text": return {
9
10
  type: "text",
10
11
  text: part.text,
12
+ ...part.providerMetadata !== void 0 ? { providerMetadata: part.providerMetadata } : void 0,
11
13
  ...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
12
14
  };
13
15
  case "image": return {
14
16
  type: "image",
15
17
  image: part.image,
16
- ...part.filename != null ? { filename: part.filename } : void 0
18
+ ...part.filename != null ? { filename: part.filename } : void 0,
19
+ ...part.providerMetadata !== void 0 ? { providerMetadata: part.providerMetadata } : void 0
17
20
  };
18
21
  case "file": return {
19
22
  type: "file",
@@ -21,6 +24,7 @@ const encodeAttachmentPart = (part) => {
21
24
  mimeType: part.mimeType,
22
25
  ...part.filename != null ? { filename: part.filename } : void 0,
23
26
  ...part.sourceType != null ? { sourceType: part.sourceType } : void 0,
27
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0,
24
28
  ...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
25
29
  };
26
30
  case "audio": return {
@@ -51,6 +55,36 @@ const encodeAttachments = (message) => {
51
55
  content: content.map(encodeAttachmentPart)
52
56
  }));
53
57
  };
58
+ const serializableArtifact = (artifact) => {
59
+ if (artifact === void 0) return void 0;
60
+ try {
61
+ const serialized = JSON.stringify(artifact);
62
+ return serialized === void 0 ? void 0 : JSON.parse(serialized);
63
+ } catch {
64
+ return;
65
+ }
66
+ };
67
+ const hasLosslessJSONShape = (value, depth = 0) => {
68
+ if (depth > 100) return false;
69
+ if (value === void 0 || typeof value === "function") return false;
70
+ if (typeof value === "number") return Number.isFinite(value);
71
+ if (typeof value !== "object" || value === null) return true;
72
+ if (typeof value.toJSON === "function") return true;
73
+ if ((value instanceof Map || value instanceof Set) && value.size > 0) return false;
74
+ if (Array.isArray(value)) {
75
+ if (Reflect.ownKeys(value).length !== value.length + 1) return false;
76
+ for (let index = 0; index < value.length; index++) if (!Object.hasOwn(value, index) || !hasLosslessJSONShape(value[index], depth + 1)) return false;
77
+ return true;
78
+ }
79
+ return Reflect.ownKeys(value).every((key) => typeof key === "string" && Object.getOwnPropertyDescriptor(value, key)?.enumerable === true && hasLosslessJSONShape(value[key], depth + 1));
80
+ };
81
+ const losesDataInJSON = (value) => {
82
+ try {
83
+ return !hasLosslessJSONShape(value);
84
+ } catch {
85
+ return true;
86
+ }
87
+ };
54
88
  function auiV0Encode(message) {
55
89
  const status = message.status?.type === "running" ? {
56
90
  type: "incomplete",
@@ -65,6 +99,7 @@ function auiV0Encode(message) {
65
99
  case "text": return {
66
100
  type: "text",
67
101
  text: part.text,
102
+ ...part.providerMetadata !== void 0 ? { providerMetadata: part.providerMetadata } : void 0,
68
103
  ...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
69
104
  };
70
105
  case "reasoning": return {
@@ -94,14 +129,22 @@ function auiV0Encode(message) {
94
129
  ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0,
95
130
  ...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
96
131
  };
97
- case "tool-call":
98
- if (part.result !== void 0 && !isJSONValue(part.result)) console.warn(`tool-call result is not JSON! ${JSON.stringify(part)}`);
132
+ case "tool-call": {
133
+ const result = serializableArtifact(part.result);
134
+ if (part.result !== void 0 && (result === void 0 || losesDataInJSON(part.result))) console.warn(result === void 0 ? `tool-call result for ${part.toolCallId} cannot be serialized as JSON; omitted` : `tool-call result for ${part.toolCallId} loses data in JSON; persisted as its JSON form`);
135
+ const artifact = serializableArtifact(part.artifact);
136
+ if (part.artifact !== void 0 && artifact === void 0) console.warn(`tool-call artifact is not JSON for ${part.toolCallId}`);
137
+ const interactions = readToolInteractionLog(part.unstable_interactions);
99
138
  return {
100
139
  type: "tool-call",
101
140
  toolCallId: part.toolCallId,
102
141
  toolName: part.toolName,
103
142
  ...JSON.stringify(part.args) === part.argsText ? { args: part.args } : { argsText: part.argsText },
104
- ...part.result !== void 0 ? { result: part.result } : void 0,
143
+ ...result !== void 0 ? { result } : void 0,
144
+ ...artifact !== void 0 ? { artifact } : void 0,
145
+ ...part.modelContent !== void 0 ? { modelContent: part.modelContent } : void 0,
146
+ ...part.providerMetadata !== void 0 ? { providerMetadata: part.providerMetadata } : void 0,
147
+ ...part.isPreliminary ? { isPreliminary: true } : void 0,
105
148
  ...part.isError ? { isError: true } : void 0,
106
149
  ...part.interrupt !== void 0 ? { interrupt: {
107
150
  type: part.interrupt.type,
@@ -111,11 +154,15 @@ function auiV0Encode(message) {
111
154
  ...part.mcp !== void 0 ? { mcp: part.mcp } : void 0,
112
155
  ...part.approval ? { approval: part.approval } : void 0,
113
156
  ...part.parentId !== void 0 ? { parentId: part.parentId } : void 0,
114
- ...part.messages !== void 0 ? { messages: part.messages.map(encodeNestedMessage) } : void 0
157
+ ...part.messages !== void 0 ? { messages: part.messages.map(encodeNestedMessage) } : void 0,
158
+ ...interactions !== void 0 ? { unstable_interactions: interactions } : void 0
115
159
  };
160
+ }
116
161
  case "image": return {
117
162
  type: "image",
118
- image: part.image
163
+ image: part.image,
164
+ ...part.filename != null ? { filename: part.filename } : void 0,
165
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0
119
166
  };
120
167
  case "file": return {
121
168
  type: "file",
@@ -123,6 +170,7 @@ function auiV0Encode(message) {
123
170
  mimeType: part.mimeType,
124
171
  ...part.filename ? { filename: part.filename } : void 0,
125
172
  ...part.sourceType ? { sourceType: part.sourceType } : void 0,
173
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0,
126
174
  ...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
127
175
  };
128
176
  case "data":
@@ -177,14 +225,17 @@ const readableAuiV0Message = (value, depth) => {
177
225
  if (role === "system" && content.length !== 1) return null;
178
226
  const { attachments, createdAt, status, metadata, ...rest } = value;
179
227
  const storedCreatedAt = parseStoredDate(createdAt);
180
- const readableMetadata = role === "assistant" || !isRecord(metadata) ? metadata : {
228
+ const readableMetadata = !isRecord(metadata) ? metadata : role === "assistant" ? {
229
+ ...metadata,
230
+ steps: parseStoredThreadSteps(metadata.steps)
231
+ } : {
181
232
  ...metadata,
182
233
  steps: void 0
183
234
  };
184
235
  return {
185
236
  ...rest,
186
237
  ...storedCreatedAt ? { createdAt } : void 0,
187
- ...role === "assistant" && status !== void 0 ? { status } : void 0,
238
+ ...role === "assistant" && isStoredMessageStatus(status) ? { status } : void 0,
188
239
  ...metadata !== void 0 ? { metadata: readableMetadata } : void 0,
189
240
  content,
190
241
  ...role === "user" && Array.isArray(attachments) ? { attachments: readableAuiV0Attachments(attachments) } : void 0
@@ -1 +1 @@
1
- {"version":3,"file":"auiV0.js","names":["MessageStatus","SourceProviderMetadata","ThreadMessage","ToolCallMessagePartMcpMetadata","ToolCallTiming","ToolApprovalDisplay","ToolApprovalOption","ReasoningMessagePart","CompleteAttachment","fromThreadMessageLike","ThreadMessageLike","CloudMessage","isJSONValue","isRecord","MAX_STORED_MESSAGE_DEPTH","isStoredAuiV0RolePart","isStoredMessageRole","parseStoredAttachment","parseStoredDate","ReadonlyJSONObject","ReadonlyJSONValue","ExportedMessageRepositoryItem","AuiV0ToolApproval","id","prompt","display","allowFreeform","approved","reason","isAutomatic","options","optionId","text","resolution","AuiV0MessagePart","type","parentId","unstable_summary","providerMetadata","NonNullable","sourceType","url","title","mediaType","filename","AuiV0ToolCallPart","args","argsText","image","data","mimeType","name","audio","format","spec","toolCallId","toolName","result","isError","interrupt","payload","timing","mcp","approval","messages","AuiV0Message","AuiV0AttachmentPart","AuiV0Attachment","contentType","status","content","createdAt","role","attachments","metadata","unstable_state","unstable_annotations","unstable_data","steps","usage","inputTokens","outputTokens","custom","encodeAttachmentPart","part","undefined","console","warn","JSON","stringify","unhandledType","Error","encodeAttachments","message","length","map","auiV0Encode","encodeNestedMessage","readableAuiV0Parts","depth","flatMap","toolCall","Array","isArray","nested","readableAuiV0Message","readableAuiV0Attachments","attachment","parsed","value","rest","storedCreatedAt","readableMetadata","auiV0DecodeSafely","cloudMessage","parent_id","decodeAuiV0Message","created_at","error","auiV0Decode","toISOString","Omit","Date","fallbackId","index","nestedIndex"],"sources":["../../../../src/react/runtimes/cloud/auiV0.ts"],"sourcesContent":["import type {\n MessageStatus,\n SourceProviderMetadata,\n ThreadMessage,\n ToolCallMessagePartMcpMetadata,\n ToolCallTiming,\n ToolApprovalDisplay,\n ToolApprovalOption,\n ReasoningMessagePart,\n} from \"../../../types/message\";\nimport type { CompleteAttachment } from \"../../../types/attachment\";\nimport {\n fromThreadMessageLike,\n type ThreadMessageLike,\n} from \"../../../runtime/utils/thread-message-like\";\nimport type { CloudMessage } from \"assistant-cloud\";\nimport { isJSONValue, isRecord } from \"../../../utils/json/is-json\";\nimport {\n MAX_STORED_MESSAGE_DEPTH,\n isStoredAuiV0RolePart,\n isStoredMessageRole,\n parseStoredAttachment,\n parseStoredDate,\n} from \"../../../runtime/utils/stored-message-parts\";\nimport type {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"assistant-stream/utils\";\nimport type { ExportedMessageRepositoryItem } from \"../../../runtime/utils/message-repository\";\n\ntype AuiV0ToolApproval = {\n readonly id: string;\n readonly prompt?: string;\n readonly display?: ToolApprovalDisplay;\n readonly allowFreeform?: boolean;\n readonly approved?: boolean;\n readonly reason?: string;\n readonly isAutomatic?: boolean;\n readonly options?: readonly ToolApprovalOption[];\n readonly optionId?: string;\n readonly text?: string;\n readonly resolution?: \"cancelled\" | \"expired\";\n};\n\ntype AuiV0MessagePart =\n | {\n readonly type: \"text\";\n readonly text: string;\n readonly parentId?: string;\n }\n | {\n readonly type: \"reasoning\";\n readonly text: string;\n readonly unstable_summary?: string;\n readonly providerMetadata?: NonNullable<\n ReasoningMessagePart[\"providerMetadata\"]\n >;\n readonly parentId?: string;\n }\n | {\n readonly type: \"source\";\n readonly sourceType: \"url\";\n readonly id: string;\n readonly url: string;\n readonly title?: string;\n readonly providerMetadata?: SourceProviderMetadata;\n readonly parentId?: string;\n }\n | {\n readonly type: \"source\";\n readonly sourceType: \"document\";\n readonly id: string;\n readonly title: string;\n readonly mediaType: string;\n readonly filename?: string;\n readonly providerMetadata?: SourceProviderMetadata;\n readonly parentId?: string;\n }\n | (AuiV0ToolCallPart &\n ({ readonly args: ReadonlyJSONObject } | { readonly argsText: string }))\n | {\n readonly type: \"image\";\n readonly image: string;\n }\n | {\n readonly type: \"file\";\n readonly data: string;\n readonly mimeType: string;\n readonly filename?: string;\n readonly sourceType?: \"url\" | \"id\";\n readonly parentId?: string;\n }\n | {\n readonly type: \"data\";\n readonly name: string;\n readonly data: ReadonlyJSONValue;\n }\n | {\n readonly type: \"audio\";\n readonly audio: {\n readonly data: string;\n readonly format: \"mp3\" | \"wav\";\n };\n }\n | {\n readonly type: \"generative-ui\";\n readonly spec: ReadonlyJSONObject;\n readonly id?: string;\n readonly parentId?: string;\n };\n\ntype AuiV0ToolCallPart = {\n readonly type: \"tool-call\";\n readonly toolCallId: string;\n readonly toolName: string;\n readonly result?: ReadonlyJSONValue;\n readonly isError?: true;\n readonly interrupt?: {\n readonly type: \"human\";\n readonly payload: ReadonlyJSONValue;\n };\n readonly timing?: ToolCallTiming;\n readonly mcp?: ToolCallMessagePartMcpMetadata;\n readonly approval?: AuiV0ToolApproval;\n readonly parentId?: string;\n readonly messages?: readonly AuiV0Message[];\n};\n\ntype AuiV0AttachmentPart =\n | {\n readonly type: \"text\";\n readonly text: string;\n readonly parentId?: string;\n }\n | {\n readonly type: \"image\";\n readonly image: string;\n readonly filename?: string;\n }\n | {\n readonly type: \"file\";\n readonly data: string;\n readonly mimeType: string;\n readonly filename?: string;\n readonly sourceType?: \"url\" | \"id\";\n readonly parentId?: string;\n }\n | {\n readonly type: \"audio\";\n readonly audio: {\n readonly data: string;\n readonly format: \"mp3\" | \"wav\";\n };\n }\n | {\n readonly type: \"data\";\n readonly name: string;\n readonly data: ReadonlyJSONValue;\n };\n\ntype AuiV0Attachment = {\n readonly id: string;\n readonly type: CompleteAttachment[\"type\"];\n readonly name: string;\n readonly contentType?: string;\n readonly status: CompleteAttachment[\"status\"];\n readonly content: readonly AuiV0AttachmentPart[];\n};\n\ntype AuiV0Message = {\n readonly id?: string;\n readonly createdAt?: string;\n readonly role: \"assistant\" | \"user\" | \"system\";\n readonly status?: MessageStatus;\n readonly content: readonly AuiV0MessagePart[];\n readonly attachments?: readonly AuiV0Attachment[];\n readonly metadata: {\n readonly unstable_state?: ReadonlyJSONValue;\n readonly unstable_annotations: readonly ReadonlyJSONValue[];\n readonly unstable_data: readonly ReadonlyJSONValue[];\n readonly steps: readonly {\n readonly usage?: {\n readonly inputTokens: number;\n readonly outputTokens: number;\n };\n }[];\n readonly custom: ReadonlyJSONObject;\n };\n};\n\nconst encodeAttachmentPart = (\n part: CompleteAttachment[\"content\"][number],\n): AuiV0AttachmentPart => {\n const type = part.type;\n switch (type) {\n case \"text\":\n return {\n type: \"text\",\n text: part.text,\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"image\":\n return {\n type: \"image\",\n image: part.image,\n ...(part.filename != null ? { filename: part.filename } : undefined),\n };\n\n case \"file\":\n return {\n type: \"file\",\n data: part.data,\n mimeType: part.mimeType,\n ...(part.filename != null ? { filename: part.filename } : undefined),\n ...(part.sourceType != null\n ? { sourceType: part.sourceType }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"audio\":\n return {\n type: \"audio\",\n audio: { data: part.audio.data, format: part.audio.format },\n };\n\n case \"data\": {\n if (!isJSONValue(part.data)) {\n console.warn(`attachment data is not JSON! ${JSON.stringify(part)}`);\n }\n return {\n type: \"data\",\n name: part.name,\n data: part.data as ReadonlyJSONValue,\n };\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(\n `Attachment part type not supported by aui/v0: ${unhandledType}`,\n );\n }\n }\n};\n\nconst encodeAttachments = (\n message: ThreadMessage,\n): readonly AuiV0Attachment[] | undefined => {\n if (message.role !== \"user\" || message.attachments.length === 0) {\n return undefined;\n }\n\n return message.attachments.map(\n ({ id, type, name, contentType, status, content }) => ({\n id,\n type,\n name,\n status,\n ...(contentType != null ? { contentType } : undefined),\n content: content.map(encodeAttachmentPart),\n }),\n );\n};\n\nexport function auiV0Encode(message: ThreadMessage): AuiV0Message {\n // info: ID and createdAt are ignored (we use the server value instead)\n const status: MessageStatus | undefined =\n message.status?.type === \"running\"\n ? { type: \"incomplete\", reason: \"cancelled\" }\n : message.status;\n const attachments = encodeAttachments(message);\n\n return {\n role: message.role,\n content: message.content.map((part) => {\n const type = part.type;\n switch (type) {\n case \"text\":\n return {\n type: \"text\",\n text: part.text,\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"reasoning\":\n return {\n type: \"reasoning\",\n text: part.text,\n ...(part.unstable_summary !== undefined\n ? { unstable_summary: part.unstable_summary }\n : undefined),\n ...(part.providerMetadata !== undefined\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"source\":\n if (part.sourceType === \"url\") {\n return {\n type: \"source\",\n sourceType: \"url\",\n id: part.id,\n url: part.url,\n ...(part.title != null ? { title: part.title } : undefined),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n }\n\n return {\n type: \"source\",\n sourceType: \"document\",\n id: part.id,\n title: part.title,\n mediaType: part.mediaType,\n ...(part.filename != null\n ? { filename: part.filename }\n : undefined),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"tool-call\": {\n if (part.result !== undefined && !isJSONValue(part.result)) {\n console.warn(\n `tool-call result is not JSON! ${JSON.stringify(part)}`,\n );\n }\n return {\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n ...(JSON.stringify(part.args) === part.argsText\n ? { args: part.args }\n : { argsText: part.argsText }),\n ...(part.result !== undefined\n ? { result: part.result as ReadonlyJSONValue }\n : undefined),\n ...(part.isError ? { isError: true } : undefined),\n ...(part.interrupt !== undefined\n ? {\n interrupt: {\n type: part.interrupt.type,\n payload: part.interrupt.payload as ReadonlyJSONValue,\n },\n }\n : undefined),\n ...(part.timing !== undefined\n ? { timing: part.timing }\n : undefined),\n ...(part.mcp !== undefined ? { mcp: part.mcp } : undefined),\n ...(part.approval ? { approval: part.approval } : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n ...(part.messages !== undefined\n ? { messages: part.messages.map(encodeNestedMessage) }\n : undefined),\n };\n }\n\n case \"image\":\n return { type: \"image\", image: part.image };\n\n case \"file\":\n return {\n type: \"file\",\n data: part.data,\n mimeType: part.mimeType,\n ...(part.filename ? { filename: part.filename } : undefined),\n ...(part.sourceType ? { sourceType: part.sourceType } : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"data\": {\n if (!isJSONValue(part.data)) {\n console.warn(`data part is not JSON! ${JSON.stringify(part)}`);\n }\n return {\n type: \"data\",\n name: part.name,\n data: part.data as ReadonlyJSONValue,\n };\n }\n\n case \"audio\":\n return {\n type: \"audio\",\n audio: { data: part.audio.data, format: part.audio.format },\n };\n\n case \"generative-ui\":\n return {\n type: \"generative-ui\",\n spec: part.spec as unknown as ReadonlyJSONObject,\n ...(part.id !== undefined ? { id: part.id } : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n default: {\n const unhandledType: never = type;\n throw new Error(\n `Message part type not supported by aui/v0: ${unhandledType}`,\n );\n }\n }\n }),\n metadata: message.metadata as AuiV0Message[\"metadata\"],\n ...(status ? { status } : undefined),\n ...(attachments ? { attachments } : undefined),\n };\n}\n\nconst readableAuiV0Parts = (\n role: AuiV0Message[\"role\"],\n content: readonly unknown[],\n depth: number,\n): AuiV0MessagePart[] =>\n content.flatMap((part) => {\n if (!isStoredAuiV0RolePart(role, part)) return [];\n if (part.type !== \"tool-call\" || part.messages === undefined)\n return [part as unknown as AuiV0MessagePart];\n\n const { messages, ...toolCall } = part;\n if (!Array.isArray(messages) || depth >= MAX_STORED_MESSAGE_DEPTH)\n return [toolCall as unknown as AuiV0MessagePart];\n return [\n {\n ...toolCall,\n messages: messages.flatMap((message) => {\n const nested = readableAuiV0Message(message, depth + 1);\n return nested ? [nested] : [];\n }),\n } as unknown as AuiV0MessagePart,\n ];\n });\n\nconst readableAuiV0Attachments = (\n attachments: readonly unknown[],\n): AuiV0Attachment[] =>\n attachments.flatMap((attachment) => {\n const parsed = parseStoredAttachment(attachment, (value) =>\n isStoredAuiV0RolePart(\"user\", value),\n );\n return parsed ? [parsed as unknown as AuiV0Attachment] : [];\n });\n\nconst readableAuiV0Message = (\n value: unknown,\n depth: number,\n): AuiV0Message | null => {\n if (\n !isRecord(value) ||\n !isStoredMessageRole(value.role) ||\n !Array.isArray(value.content)\n ) {\n return null;\n }\n\n const { role } = value;\n const content = readableAuiV0Parts(role, value.content, depth);\n // fromThreadMessageLike takes a system row only with exactly one text part,\n // so one that no longer matches after filtering is dropped here rather than\n // costing the row or the tool call that carries it.\n if (role === \"system\" && content.length !== 1) return null;\n\n const { attachments, createdAt, status, metadata, ...rest } = value;\n // decodeAuiV0Message turns a nested createdAt into a Date without checking\n // it, and encodeNestedMessage later calls toISOString on the result, so an\n // unparseable one would reject the next write to the message that holds it.\n // Dropping the field falls back to the parent's timestamp.\n const storedCreatedAt = parseStoredDate(createdAt);\n const readableMetadata =\n role === \"assistant\" || !isRecord(metadata)\n ? metadata\n : { ...metadata, steps: undefined };\n\n return {\n ...rest,\n ...(storedCreatedAt ? { createdAt } : undefined),\n // fromThreadMessageLike throws on a status, a metadata.steps or an\n // attachments list carried by a row whose role cannot hold one, and\n // auiV0Encode only ever writes each onto the role that can, so dropping a\n // misplaced field costs no valid data and saves the row.\n ...(role === \"assistant\" && status !== undefined ? { status } : undefined),\n ...(metadata !== undefined ? { metadata: readableMetadata } : undefined),\n content,\n ...(role === \"user\" && Array.isArray(attachments)\n ? { attachments: readableAuiV0Attachments(attachments) }\n : undefined),\n } as unknown as AuiV0Message;\n};\n\n/**\n * Decodes a stored row, dropping the parts, attachments and nested messages\n * that cannot be read back instead of rejecting the row, and returning null\n * when the row itself is unreadable. Loading a thread must not fail because a\n * single stored row is malformed.\n */\nexport function auiV0DecodeSafely(\n cloudMessage: CloudMessage & { format: \"aui/v0\" },\n): ExportedMessageRepositoryItem | null {\n try {\n const payload = readableAuiV0Message(cloudMessage.content, 0);\n if (!payload) throw new Error(\"stored row is not an aui/v0 message\");\n\n return {\n parentId: cloudMessage.parent_id,\n message: decodeAuiV0Message(\n {\n ...payload,\n id: cloudMessage.id,\n createdAt: cloudMessage.created_at,\n },\n cloudMessage.id,\n ),\n };\n } catch (error) {\n console.warn(\n `aui/v0: dropping unreadable message ${cloudMessage.id}`,\n error,\n );\n return null;\n }\n}\n\nexport function auiV0Decode(\n cloudMessage: CloudMessage & { format: \"aui/v0\" },\n): ExportedMessageRepositoryItem {\n const payload = cloudMessage.content as unknown as AuiV0Message;\n const message = decodeAuiV0Message(\n {\n ...payload,\n id: cloudMessage.id,\n createdAt: cloudMessage.created_at,\n },\n cloudMessage.id,\n );\n\n return {\n parentId: cloudMessage.parent_id,\n message,\n };\n}\n\nconst encodeNestedMessage = (message: ThreadMessage): AuiV0Message => ({\n ...auiV0Encode(message),\n id: message.id,\n createdAt: message.createdAt.toISOString(),\n});\n\nconst decodeAuiV0Message = (\n payload: Omit<AuiV0Message, \"createdAt\"> & {\n readonly createdAt?: Date | undefined;\n },\n fallbackId: string,\n): ThreadMessage =>\n fromThreadMessageLike(\n {\n ...payload,\n content: payload.content.map((part, index) => {\n if (part.type !== \"tool-call\" || part.messages === undefined)\n return part;\n return {\n ...part,\n messages: part.messages.map((message, nestedIndex) =>\n decodeAuiV0Message(\n {\n ...message,\n createdAt:\n message.createdAt !== undefined\n ? new Date(message.createdAt)\n : payload.createdAt,\n },\n message.id ??\n `${fallbackId}-${part.toolCallId}-${index}-${nestedIndex}`,\n ),\n ),\n };\n }),\n } as ThreadMessageLike,\n fallbackId,\n { type: \"complete\", reason: \"unknown\" },\n );\n"],"mappings":"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"}
1
+ {"version":3,"file":"auiV0.js","names":["MessageStatus","PartProviderMetadata","SourceProviderMetadata","ThreadMessage","ToolCallMessagePartMcpMetadata","ToolCallTiming","ToolApprovalDisplay","ToolApprovalOption","ReasoningMessagePart","TextMessagePart","ImageMessagePart","FileMessagePart","Unstable_ToolInteractionLog","CompleteAttachment","fromThreadMessageLike","ThreadMessageLike","readToolInteractionLog","CloudMessage","isJSONValue","isRecord","MAX_STORED_MESSAGE_DEPTH","isStoredAuiV0RolePart","isStoredMessageStatus","isStoredMessageRole","parseStoredAttachment","parseStoredDate","parseStoredThreadSteps","ReadonlyJSONObject","ReadonlyJSONValue","ToolModelContentPart","ExportedMessageRepositoryItem","AuiV0ToolApproval","id","prompt","display","allowFreeform","dismissible","approved","reason","isAutomatic","options","optionId","text","resolution","AuiV0MessagePart","type","providerMetadata","NonNullable","parentId","unstable_summary","sourceType","url","title","mediaType","filename","AuiV0ToolCallPart","args","argsText","image","data","mimeType","name","audio","format","spec","toolCallId","toolName","result","artifact","modelContent","isPreliminary","isError","interrupt","payload","timing","mcp","approval","messages","AuiV0Message","unstable_interactions","AuiV0AttachmentPart","AuiV0Attachment","contentType","status","content","createdAt","role","attachments","metadata","unstable_state","unstable_annotations","unstable_data","steps","usage","inputTokens","outputTokens","custom","encodeAttachmentPart","part","undefined","console","warn","JSON","stringify","unhandledType","Error","encodeAttachments","message","length","map","serializableArtifact","serialized","parse","hasLosslessJSONShape","value","depth","Number","isFinite","toJSON","Map","Set","size","Array","isArray","Reflect","ownKeys","index","Object","hasOwn","every","key","getOwnPropertyDescriptor","enumerable","Record","losesDataInJSON","auiV0Encode","interactions","encodeNestedMessage","readableAuiV0Parts","flatMap","toolCall","nested","readableAuiV0Message","readableAuiV0Attachments","attachment","parsed","rest","storedCreatedAt","readableMetadata","auiV0DecodeSafely","cloudMessage","parent_id","decodeAuiV0Message","created_at","error","auiV0Decode","toISOString","Omit","Date","fallbackId","nestedIndex"],"sources":["../../../../src/react/runtimes/cloud/auiV0.ts"],"sourcesContent":["import type {\n MessageStatus,\n PartProviderMetadata,\n SourceProviderMetadata,\n ThreadMessage,\n ToolCallMessagePartMcpMetadata,\n ToolCallTiming,\n ToolApprovalDisplay,\n ToolApprovalOption,\n ReasoningMessagePart,\n TextMessagePart,\n ImageMessagePart,\n FileMessagePart,\n Unstable_ToolInteractionLog,\n} from \"../../../types/message\";\nimport type { CompleteAttachment } from \"../../../types/attachment\";\nimport {\n fromThreadMessageLike,\n type ThreadMessageLike,\n} from \"../../../runtime/utils/thread-message-like\";\nimport { readToolInteractionLog } from \"../../../runtime/utils/tool-interactions\";\nimport type { CloudMessage } from \"assistant-cloud\";\nimport { isJSONValue, isRecord } from \"../../../utils/json/is-json\";\nimport {\n MAX_STORED_MESSAGE_DEPTH,\n isStoredAuiV0RolePart,\n isStoredMessageStatus,\n isStoredMessageRole,\n parseStoredAttachment,\n parseStoredDate,\n parseStoredThreadSteps,\n} from \"../../../runtime/utils/stored-message-parts\";\nimport type {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"assistant-stream/utils\";\nimport type { ToolModelContentPart } from \"assistant-stream\";\nimport type { ExportedMessageRepositoryItem } from \"../../../runtime/utils/message-repository\";\n\ntype AuiV0ToolApproval = {\n readonly id: string;\n readonly prompt?: string;\n readonly display?: ToolApprovalDisplay;\n readonly allowFreeform?: boolean;\n readonly dismissible?: boolean;\n readonly approved?: boolean;\n readonly reason?: string;\n readonly isAutomatic?: boolean;\n readonly options?: readonly ToolApprovalOption[];\n readonly optionId?: string;\n readonly text?: string;\n readonly resolution?: \"cancelled\" | \"expired\";\n};\n\ntype AuiV0MessagePart =\n | {\n readonly type: \"text\";\n readonly text: string;\n readonly providerMetadata?: NonNullable<\n TextMessagePart[\"providerMetadata\"]\n >;\n readonly parentId?: string;\n }\n | {\n readonly type: \"reasoning\";\n readonly text: string;\n readonly unstable_summary?: string;\n readonly providerMetadata?: NonNullable<\n ReasoningMessagePart[\"providerMetadata\"]\n >;\n readonly parentId?: string;\n }\n | {\n readonly type: \"source\";\n readonly sourceType: \"url\";\n readonly id: string;\n readonly url: string;\n readonly title?: string;\n readonly providerMetadata?: SourceProviderMetadata;\n readonly parentId?: string;\n }\n | {\n readonly type: \"source\";\n readonly sourceType: \"document\";\n readonly id: string;\n readonly title: string;\n readonly mediaType: string;\n readonly filename?: string;\n readonly providerMetadata?: SourceProviderMetadata;\n readonly parentId?: string;\n }\n | (AuiV0ToolCallPart &\n ({ readonly args: ReadonlyJSONObject } | { readonly argsText: string }))\n | {\n readonly type: \"image\";\n readonly image: string;\n readonly filename?: string;\n readonly providerMetadata?: NonNullable<\n ImageMessagePart[\"providerMetadata\"]\n >;\n }\n | {\n readonly type: \"file\";\n readonly data: string;\n readonly mimeType: string;\n readonly filename?: string;\n readonly sourceType?: \"url\" | \"id\";\n readonly providerMetadata?: NonNullable<\n FileMessagePart[\"providerMetadata\"]\n >;\n readonly parentId?: string;\n }\n | {\n readonly type: \"data\";\n readonly name: string;\n readonly data: ReadonlyJSONValue;\n }\n | {\n readonly type: \"audio\";\n readonly audio: {\n readonly data: string;\n readonly format: \"mp3\" | \"wav\";\n };\n }\n | {\n readonly type: \"generative-ui\";\n readonly spec: ReadonlyJSONObject;\n readonly id?: string;\n readonly parentId?: string;\n };\n\ntype AuiV0ToolCallPart = {\n readonly type: \"tool-call\";\n readonly toolCallId: string;\n readonly toolName: string;\n readonly result?: ReadonlyJSONValue;\n readonly artifact?: ReadonlyJSONValue;\n readonly modelContent?: readonly ToolModelContentPart[];\n readonly providerMetadata?: PartProviderMetadata;\n readonly isPreliminary?: true;\n readonly isError?: true;\n readonly interrupt?: {\n readonly type: \"human\";\n readonly payload: ReadonlyJSONValue;\n };\n readonly timing?: ToolCallTiming;\n readonly mcp?: ToolCallMessagePartMcpMetadata;\n readonly approval?: AuiV0ToolApproval;\n readonly parentId?: string;\n readonly messages?: readonly AuiV0Message[];\n readonly unstable_interactions?: Unstable_ToolInteractionLog;\n};\n\ntype AuiV0AttachmentPart =\n | {\n readonly type: \"text\";\n readonly text: string;\n readonly providerMetadata?: NonNullable<\n TextMessagePart[\"providerMetadata\"]\n >;\n readonly parentId?: string;\n }\n | {\n readonly type: \"image\";\n readonly image: string;\n readonly filename?: string;\n readonly providerMetadata?: NonNullable<\n ImageMessagePart[\"providerMetadata\"]\n >;\n }\n | {\n readonly type: \"file\";\n readonly data: string;\n readonly mimeType: string;\n readonly filename?: string;\n readonly sourceType?: \"url\" | \"id\";\n readonly providerMetadata?: NonNullable<\n FileMessagePart[\"providerMetadata\"]\n >;\n readonly parentId?: string;\n }\n | {\n readonly type: \"audio\";\n readonly audio: {\n readonly data: string;\n readonly format: \"mp3\" | \"wav\";\n };\n }\n | {\n readonly type: \"data\";\n readonly name: string;\n readonly data: ReadonlyJSONValue;\n };\n\ntype AuiV0Attachment = {\n readonly id: string;\n readonly type: CompleteAttachment[\"type\"];\n readonly name: string;\n readonly contentType?: string;\n readonly status: CompleteAttachment[\"status\"];\n readonly content: readonly AuiV0AttachmentPart[];\n};\n\ntype AuiV0Message = {\n readonly id?: string;\n readonly createdAt?: string;\n readonly role: \"assistant\" | \"user\" | \"system\";\n readonly status?: MessageStatus;\n readonly content: readonly AuiV0MessagePart[];\n readonly attachments?: readonly AuiV0Attachment[];\n readonly metadata: {\n readonly unstable_state?: ReadonlyJSONValue;\n readonly unstable_annotations: readonly ReadonlyJSONValue[];\n readonly unstable_data: readonly ReadonlyJSONValue[];\n readonly steps: readonly {\n readonly usage?: {\n readonly inputTokens: number;\n readonly outputTokens: number;\n };\n }[];\n readonly custom: ReadonlyJSONObject;\n };\n};\n\nconst encodeAttachmentPart = (\n part: CompleteAttachment[\"content\"][number],\n): AuiV0AttachmentPart => {\n const type = part.type;\n switch (type) {\n case \"text\":\n return {\n type: \"text\",\n text: part.text,\n ...(part.providerMetadata !== undefined\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"image\":\n return {\n type: \"image\",\n image: part.image,\n ...(part.filename != null ? { filename: part.filename } : undefined),\n ...(part.providerMetadata !== undefined\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n };\n\n case \"file\":\n return {\n type: \"file\",\n data: part.data,\n mimeType: part.mimeType,\n ...(part.filename != null ? { filename: part.filename } : undefined),\n ...(part.sourceType != null\n ? { sourceType: part.sourceType }\n : undefined),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"audio\":\n return {\n type: \"audio\",\n audio: { data: part.audio.data, format: part.audio.format },\n };\n\n case \"data\": {\n if (!isJSONValue(part.data)) {\n console.warn(`attachment data is not JSON! ${JSON.stringify(part)}`);\n }\n return {\n type: \"data\",\n name: part.name,\n data: part.data as ReadonlyJSONValue,\n };\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(\n `Attachment part type not supported by aui/v0: ${unhandledType}`,\n );\n }\n }\n};\n\nconst encodeAttachments = (\n message: ThreadMessage,\n): readonly AuiV0Attachment[] | undefined => {\n if (message.role !== \"user\" || message.attachments.length === 0) {\n return undefined;\n }\n\n return message.attachments.map(\n ({ id, type, name, contentType, status, content }) => ({\n id,\n type,\n name,\n status,\n ...(contentType != null ? { contentType } : undefined),\n content: content.map(encodeAttachmentPart),\n }),\n );\n};\n\nconst serializableArtifact = (\n artifact: unknown,\n): ReadonlyJSONValue | undefined => {\n if (artifact === undefined) return undefined;\n try {\n const serialized = JSON.stringify(artifact);\n return serialized === undefined ? undefined : JSON.parse(serialized);\n } catch {\n return undefined;\n }\n};\n\n// Diagnostic only: names the data JSON.stringify silently loses (Map and Set\n// entries, symbol-keyed or non-enumerable own data, extra array properties,\n// undefined, functions, non-finite numbers). A wrapper that keeps its data\n// behind prototype getters or a Map from another realm has no own keys and is\n// indistinguishable from an empty object here, so it passes exactly as it does\n// on main.\nconst hasLosslessJSONShape = (value: unknown, depth = 0): boolean => {\n if (depth > 100) return false;\n if (value === undefined || typeof value === \"function\") return false;\n if (typeof value === \"number\") return Number.isFinite(value);\n if (typeof value !== \"object\" || value === null) return true;\n // A toJSON is the value's own serializer, so whatever it emits is intended.\n if (typeof (value as { toJSON?: unknown }).toJSON === \"function\") return true;\n if ((value instanceof Map || value instanceof Set) && value.size > 0) {\n return false;\n }\n\n if (Array.isArray(value)) {\n if (Reflect.ownKeys(value).length !== value.length + 1) return false;\n for (let index = 0; index < value.length; index++) {\n if (\n !Object.hasOwn(value, index) ||\n !hasLosslessJSONShape(value[index], depth + 1)\n ) {\n return false;\n }\n }\n return true;\n }\n\n return Reflect.ownKeys(value).every(\n (key) =>\n typeof key === \"string\" &&\n Object.getOwnPropertyDescriptor(value, key)?.enumerable === true &&\n hasLosslessJSONShape((value as Record<string, unknown>)[key], depth + 1),\n );\n};\n\n// Reading a getter a second time can throw where JSON.stringify's read did\n// not; a diagnostic that throws is reported as loss rather than failing the\n// write.\nconst losesDataInJSON = (value: unknown): boolean => {\n try {\n return !hasLosslessJSONShape(value);\n } catch {\n return true;\n }\n};\n\nexport function auiV0Encode(message: ThreadMessage): AuiV0Message {\n // info: ID and createdAt are ignored (we use the server value instead)\n const status: MessageStatus | undefined =\n message.status?.type === \"running\"\n ? { type: \"incomplete\", reason: \"cancelled\" }\n : message.status;\n const attachments = encodeAttachments(message);\n\n return {\n role: message.role,\n content: message.content.map((part) => {\n const type = part.type;\n switch (type) {\n case \"text\":\n return {\n type: \"text\",\n text: part.text,\n ...(part.providerMetadata !== undefined\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"reasoning\":\n return {\n type: \"reasoning\",\n text: part.text,\n ...(part.unstable_summary !== undefined\n ? { unstable_summary: part.unstable_summary }\n : undefined),\n ...(part.providerMetadata !== undefined\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"source\":\n if (part.sourceType === \"url\") {\n return {\n type: \"source\",\n sourceType: \"url\",\n id: part.id,\n url: part.url,\n ...(part.title != null ? { title: part.title } : undefined),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n }\n\n return {\n type: \"source\",\n sourceType: \"document\",\n id: part.id,\n title: part.title,\n mediaType: part.mediaType,\n ...(part.filename != null\n ? { filename: part.filename }\n : undefined),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"tool-call\": {\n // Persisting what JSON can carry keeps the tool call answered on\n // reload; a part with no result is rejected by providers as an\n // unanswered call, which is worse than a hollowed-out result.\n const result = serializableArtifact(part.result);\n if (\n part.result !== undefined &&\n (result === undefined || losesDataInJSON(part.result))\n ) {\n console.warn(\n result === undefined\n ? `tool-call result for ${part.toolCallId} cannot be serialized as JSON; omitted`\n : `tool-call result for ${part.toolCallId} loses data in JSON; persisted as its JSON form`,\n );\n }\n const artifact = serializableArtifact(part.artifact);\n if (part.artifact !== undefined && artifact === undefined) {\n console.warn(\n `tool-call artifact is not JSON for ${part.toolCallId}`,\n );\n }\n const interactions = readToolInteractionLog(\n part.unstable_interactions,\n );\n return {\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n ...(JSON.stringify(part.args) === part.argsText\n ? { args: part.args }\n : { argsText: part.argsText }),\n ...(result !== undefined ? { result } : undefined),\n ...(artifact !== undefined ? { artifact } : undefined),\n ...(part.modelContent !== undefined\n ? { modelContent: part.modelContent }\n : undefined),\n ...(part.providerMetadata !== undefined\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.isPreliminary ? { isPreliminary: true } : undefined),\n ...(part.isError ? { isError: true } : undefined),\n ...(part.interrupt !== undefined\n ? {\n interrupt: {\n type: part.interrupt.type,\n payload: part.interrupt.payload as ReadonlyJSONValue,\n },\n }\n : undefined),\n ...(part.timing !== undefined\n ? { timing: part.timing }\n : undefined),\n ...(part.mcp !== undefined ? { mcp: part.mcp } : undefined),\n ...(part.approval ? { approval: part.approval } : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n ...(part.messages !== undefined\n ? { messages: part.messages.map(encodeNestedMessage) }\n : undefined),\n ...(interactions !== undefined\n ? { unstable_interactions: interactions }\n : undefined),\n };\n }\n\n case \"image\":\n return {\n type: \"image\",\n image: part.image,\n ...(part.filename != null\n ? { filename: part.filename }\n : undefined),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n };\n\n case \"file\":\n return {\n type: \"file\",\n data: part.data,\n mimeType: part.mimeType,\n ...(part.filename ? { filename: part.filename } : undefined),\n ...(part.sourceType ? { sourceType: part.sourceType } : undefined),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"data\": {\n if (!isJSONValue(part.data)) {\n console.warn(`data part is not JSON! ${JSON.stringify(part)}`);\n }\n return {\n type: \"data\",\n name: part.name,\n data: part.data as ReadonlyJSONValue,\n };\n }\n\n case \"audio\":\n return {\n type: \"audio\",\n audio: { data: part.audio.data, format: part.audio.format },\n };\n\n case \"generative-ui\":\n return {\n type: \"generative-ui\",\n spec: part.spec as unknown as ReadonlyJSONObject,\n ...(part.id !== undefined ? { id: part.id } : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n default: {\n const unhandledType: never = type;\n throw new Error(\n `Message part type not supported by aui/v0: ${unhandledType}`,\n );\n }\n }\n }),\n metadata: message.metadata as AuiV0Message[\"metadata\"],\n ...(status ? { status } : undefined),\n ...(attachments ? { attachments } : undefined),\n };\n}\n\nconst readableAuiV0Parts = (\n role: AuiV0Message[\"role\"],\n content: readonly unknown[],\n depth: number,\n): AuiV0MessagePart[] =>\n content.flatMap((part) => {\n if (!isStoredAuiV0RolePart(role, part)) return [];\n if (part.type !== \"tool-call\" || part.messages === undefined)\n return [part as unknown as AuiV0MessagePart];\n\n const { messages, ...toolCall } = part;\n if (!Array.isArray(messages) || depth >= MAX_STORED_MESSAGE_DEPTH)\n return [toolCall as unknown as AuiV0MessagePart];\n return [\n {\n ...toolCall,\n messages: messages.flatMap((message) => {\n const nested = readableAuiV0Message(message, depth + 1);\n return nested ? [nested] : [];\n }),\n } as unknown as AuiV0MessagePart,\n ];\n });\n\nconst readableAuiV0Attachments = (\n attachments: readonly unknown[],\n): AuiV0Attachment[] =>\n attachments.flatMap((attachment) => {\n const parsed = parseStoredAttachment(attachment, (value) =>\n isStoredAuiV0RolePart(\"user\", value),\n );\n return parsed ? [parsed as unknown as AuiV0Attachment] : [];\n });\n\nconst readableAuiV0Message = (\n value: unknown,\n depth: number,\n): AuiV0Message | null => {\n if (\n !isRecord(value) ||\n !isStoredMessageRole(value.role) ||\n !Array.isArray(value.content)\n ) {\n return null;\n }\n\n const { role } = value;\n const content = readableAuiV0Parts(role, value.content, depth);\n // fromThreadMessageLike takes a system row only with exactly one text part,\n // so one that no longer matches after filtering is dropped here rather than\n // costing the row or the tool call that carries it.\n if (role === \"system\" && content.length !== 1) return null;\n\n const { attachments, createdAt, status, metadata, ...rest } = value;\n // decodeAuiV0Message turns a nested createdAt into a Date without checking\n // it, and encodeNestedMessage later calls toISOString on the result, so an\n // unparseable one would reject the next write to the message that holds it.\n // Dropping the field falls back to the parent's timestamp.\n const storedCreatedAt = parseStoredDate(createdAt);\n const readableMetadata = !isRecord(metadata)\n ? metadata\n : role === \"assistant\"\n ? { ...metadata, steps: parseStoredThreadSteps(metadata.steps) }\n : { ...metadata, steps: undefined };\n\n return {\n ...rest,\n ...(storedCreatedAt ? { createdAt } : undefined),\n // fromThreadMessageLike throws on a status, a metadata.steps or an\n // attachments list carried by a row whose role cannot hold one, and\n // auiV0Encode only ever writes each onto the role that can, so dropping a\n // misplaced field costs no valid data and saves the row.\n ...(role === \"assistant\" && isStoredMessageStatus(status)\n ? { status }\n : undefined),\n ...(metadata !== undefined ? { metadata: readableMetadata } : undefined),\n content,\n ...(role === \"user\" && Array.isArray(attachments)\n ? { attachments: readableAuiV0Attachments(attachments) }\n : undefined),\n } as unknown as AuiV0Message;\n};\n\n/**\n * Decodes a stored row, dropping the parts, attachments and nested messages\n * that cannot be read back instead of rejecting the row, and returning null\n * when the row itself is unreadable. Loading a thread must not fail because a\n * single stored row is malformed.\n */\nexport function auiV0DecodeSafely(\n cloudMessage: CloudMessage & { format: \"aui/v0\" },\n): ExportedMessageRepositoryItem | null {\n try {\n const payload = readableAuiV0Message(cloudMessage.content, 0);\n if (!payload) throw new Error(\"stored row is not an aui/v0 message\");\n\n return {\n parentId: cloudMessage.parent_id,\n message: decodeAuiV0Message(\n {\n ...payload,\n id: cloudMessage.id,\n createdAt: cloudMessage.created_at,\n },\n cloudMessage.id,\n ),\n };\n } catch (error) {\n console.warn(\n `aui/v0: dropping unreadable message ${cloudMessage.id}`,\n error,\n );\n return null;\n }\n}\n\nexport function auiV0Decode(\n cloudMessage: CloudMessage & { format: \"aui/v0\" },\n): ExportedMessageRepositoryItem {\n const payload = cloudMessage.content as unknown as AuiV0Message;\n const message = decodeAuiV0Message(\n {\n ...payload,\n id: cloudMessage.id,\n createdAt: cloudMessage.created_at,\n },\n cloudMessage.id,\n );\n\n return {\n parentId: cloudMessage.parent_id,\n message,\n };\n}\n\nconst encodeNestedMessage = (message: ThreadMessage): AuiV0Message => ({\n ...auiV0Encode(message),\n id: message.id,\n createdAt: message.createdAt.toISOString(),\n});\n\nconst decodeAuiV0Message = (\n payload: Omit<AuiV0Message, \"createdAt\"> & {\n readonly createdAt?: Date | undefined;\n },\n fallbackId: string,\n): ThreadMessage =>\n fromThreadMessageLike(\n {\n ...payload,\n content: payload.content.map((part, index) => {\n if (part.type !== \"tool-call\" || part.messages === undefined)\n return part;\n return {\n ...part,\n messages: part.messages.map((message, nestedIndex) =>\n decodeAuiV0Message(\n {\n ...message,\n createdAt:\n message.createdAt !== undefined\n ? new Date(message.createdAt)\n : payload.createdAt,\n },\n message.id ??\n `${fallbackId}-${part.toolCallId}-${index}-${nestedIndex}`,\n ),\n ),\n };\n }),\n } as ThreadMessageLike,\n fallbackId,\n { type: \"complete\", reason: \"unknown\" },\n );\n"],"mappings":"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"}