@assistant-ui/core 0.3.19 → 0.3.20

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 (664) hide show
  1. package/dist/adapters/attachment.d.ts +9 -10
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/attachment.js +2 -1
  4. package/dist/adapters/attachment.js.map +1 -1
  5. package/dist/adapters/directive-formatter.d.ts +1 -2
  6. package/dist/adapters/directive-formatter.d.ts.map +1 -1
  7. package/dist/adapters/feedback.d.ts +2 -2
  8. package/dist/adapters/feedback.d.ts.map +1 -1
  9. package/dist/adapters/speech.d.ts +6 -7
  10. package/dist/adapters/speech.d.ts.map +1 -1
  11. package/dist/adapters/suggestion.d.ts +5 -6
  12. package/dist/adapters/suggestion.d.ts.map +1 -1
  13. package/dist/adapters/thread-history.d.ts +6 -7
  14. package/dist/adapters/thread-history.d.ts.map +1 -1
  15. package/dist/adapters/trigger.d.ts +1 -2
  16. package/dist/adapters/trigger.d.ts.map +1 -1
  17. package/dist/adapters/voice.d.ts +5 -6
  18. package/dist/adapters/voice.d.ts.map +1 -1
  19. package/dist/internal/duplicate-detection.d.ts +1 -2
  20. package/dist/internal/duplicate-detection.d.ts.map +1 -1
  21. package/dist/model-context/frame/host.d.ts +1 -2
  22. package/dist/model-context/frame/host.d.ts.map +1 -1
  23. package/dist/model-context/frame/provider.d.ts +1 -2
  24. package/dist/model-context/frame/provider.d.ts.map +1 -1
  25. package/dist/model-context/frame/types.d.ts +5 -6
  26. package/dist/model-context/frame/types.d.ts.map +1 -1
  27. package/dist/model-context/interactable-composer-metadata.d.ts +9 -10
  28. package/dist/model-context/interactable-composer-metadata.d.ts.map +1 -1
  29. package/dist/model-context/registry-handles.d.ts +3 -4
  30. package/dist/model-context/registry-handles.d.ts.map +1 -1
  31. package/dist/model-context/registry.d.ts +1 -2
  32. package/dist/model-context/registry.d.ts.map +1 -1
  33. package/dist/model-context/tool-call-text.d.ts +2 -3
  34. package/dist/model-context/tool-call-text.d.ts.map +1 -1
  35. package/dist/model-context/tool.d.ts +2 -3
  36. package/dist/model-context/tool.d.ts.map +1 -1
  37. package/dist/model-context/types.d.ts +8 -9
  38. package/dist/model-context/types.d.ts.map +1 -1
  39. package/dist/react/AssistantProvider.d.ts +3 -4
  40. package/dist/react/AssistantProvider.d.ts.map +1 -1
  41. package/dist/react/AssistantRuntimeProvider.d.ts +1 -2
  42. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  43. package/dist/react/RuntimeAdapter.d.ts +2 -3
  44. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  45. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +4 -5
  46. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  47. package/dist/react/adapters/LocalStorageThreadListAdapter.js +20 -34
  48. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  49. package/dist/react/adapters/TitleGenerationAdapter.d.ts +2 -3
  50. package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
  51. package/dist/react/client/AdaptedRemoteThread.d.ts +1 -2
  52. package/dist/react/client/AdaptedRemoteThread.d.ts.map +1 -1
  53. package/dist/react/client/DataRenderers.d.ts +1 -2
  54. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  55. package/dist/react/client/InMemoryThreadList.d.ts +3 -4
  56. package/dist/react/client/InMemoryThreadList.d.ts.map +1 -1
  57. package/dist/react/client/Interactables.d.ts +1 -2
  58. package/dist/react/client/Interactables.d.ts.map +1 -1
  59. package/dist/react/client/RemoteThreadList.d.ts +2 -3
  60. package/dist/react/client/RemoteThreadList.d.ts.map +1 -1
  61. package/dist/react/client/Tools.d.ts +2 -2
  62. package/dist/react/client/Tools.d.ts.map +1 -1
  63. package/dist/react/client/interactable-model-context.d.ts +2 -3
  64. package/dist/react/client/interactable-model-context.d.ts.map +1 -1
  65. package/dist/react/interactables-legacy/Interactables.d.ts +1 -2
  66. package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
  67. package/dist/react/interactables-legacy/interactable-model-context.d.ts +2 -3
  68. package/dist/react/interactables-legacy/interactable-model-context.d.ts.map +1 -1
  69. package/dist/react/interactables-legacy/scopes.d.ts +9 -10
  70. package/dist/react/interactables-legacy/scopes.d.ts.map +1 -1
  71. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts +2 -3
  72. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts.map +1 -1
  73. package/dist/react/interactables-legacy/useInteractableState.d.ts +1 -2
  74. package/dist/react/interactables-legacy/useInteractableState.d.ts.map +1 -1
  75. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts +1 -2
  76. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts.map +1 -1
  77. package/dist/react/model-context/define-mcp-toolkit.d.ts +4 -5
  78. package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -1
  79. package/dist/react/model-context/define-toolkit.d.ts +2 -3
  80. package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
  81. package/dist/react/model-context/external-tool.d.ts +1 -2
  82. package/dist/react/model-context/external-tool.d.ts.map +1 -1
  83. package/dist/react/model-context/human-tool.d.ts +3 -4
  84. package/dist/react/model-context/human-tool.d.ts.map +1 -1
  85. package/dist/react/model-context/interactableTool.d.ts +3 -4
  86. package/dist/react/model-context/interactableTool.d.ts.map +1 -1
  87. package/dist/react/model-context/makeAssistantDataUI.d.ts +2 -3
  88. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
  89. package/dist/react/model-context/makeAssistantTool.d.ts +2 -3
  90. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  91. package/dist/react/model-context/makeAssistantToolUI.d.ts +2 -3
  92. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  93. package/dist/react/model-context/provider-tool.d.ts +2 -3
  94. package/dist/react/model-context/provider-tool.d.ts.map +1 -1
  95. package/dist/react/model-context/stub-tool.d.ts +1 -2
  96. package/dist/react/model-context/stub-tool.d.ts.map +1 -1
  97. package/dist/react/model-context/toolbox.d.ts +9 -10
  98. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  99. package/dist/react/model-context/useAssistantContext.d.ts +2 -2
  100. package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
  101. package/dist/react/model-context/useAssistantDataUI.d.ts +2 -3
  102. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
  103. package/dist/react/model-context/useAssistantInstructions.d.ts +2 -2
  104. package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
  105. package/dist/react/model-context/useAssistantTool.d.ts +2 -3
  106. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  107. package/dist/react/model-context/useAssistantToolUI.d.ts +2 -3
  108. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  109. package/dist/react/model-context/useAuiToolOverrides.d.ts +1 -2
  110. package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -1
  111. package/dist/react/model-context/useInlineRender.d.ts +1 -2
  112. package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
  113. package/dist/react/model-context/useInteractable.d.ts +4 -5
  114. package/dist/react/model-context/useInteractable.d.ts.map +1 -1
  115. package/dist/react/model-context/useInteractableState.d.ts +1 -2
  116. package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
  117. package/dist/react/model-context/useInteractableVersions.d.ts +1 -2
  118. package/dist/react/model-context/useInteractableVersions.d.ts.map +1 -1
  119. package/dist/react/model-context/useToolArgsStatus.d.ts +2 -3
  120. package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
  121. package/dist/react/primitive-hooks/useActionBarCopy.d.ts +2 -3
  122. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  123. package/dist/react/primitive-hooks/useActionBarEdit.d.ts +1 -2
  124. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
  125. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +2 -3
  126. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
  127. package/dist/react/primitive-hooks/useActionBarReload.d.ts +1 -2
  128. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
  129. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +1 -2
  130. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
  131. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +1 -2
  132. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
  133. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +1 -2
  134. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
  135. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +1 -2
  136. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
  137. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +1 -2
  138. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
  139. package/dist/react/primitive-hooks/useComposerCancel.d.ts +1 -2
  140. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
  141. package/dist/react/primitive-hooks/useComposerDictate.d.ts +1 -2
  142. package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
  143. package/dist/react/primitive-hooks/useComposerSend.d.ts +1 -2
  144. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  145. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +1 -2
  146. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
  147. package/dist/react/primitive-hooks/useEditComposerSend.d.ts +1 -2
  148. package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
  149. package/dist/react/primitive-hooks/useMessageBranching.d.ts +1 -2
  150. package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
  151. package/dist/react/primitive-hooks/useMessageError.d.ts +1 -2
  152. package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
  153. package/dist/react/primitive-hooks/useMessageReload.d.ts +1 -2
  154. package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
  155. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +2 -3
  156. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
  157. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +1 -2
  158. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
  159. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +1 -2
  160. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
  161. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +1 -2
  162. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
  163. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +1 -2
  164. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
  165. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +1 -2
  166. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
  167. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +1 -2
  168. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
  169. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +1 -2
  170. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
  171. package/dist/react/primitive-hooks/useThreadListNew.d.ts +1 -2
  172. package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
  173. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts +1 -2
  174. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts.map +1 -1
  175. package/dist/react/primitive-hooks/useThreadMessages.d.ts +1 -2
  176. package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
  177. package/dist/react/primitive-hooks/useVoice.d.ts +3 -4
  178. package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
  179. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +2 -3
  180. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  181. package/dist/react/primitives/composer/ComposerAttachments.d.ts +4 -5
  182. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  183. package/dist/react/primitives/composer/ComposerIf.d.ts +4 -5
  184. package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
  185. package/dist/react/primitives/composer/ComposerQueue.d.ts +2 -3
  186. package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
  187. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +4 -5
  188. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -1
  189. package/dist/react/primitives/generativeUI/GenerativeUI.js +27 -28
  190. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  191. package/dist/react/primitives/message/MessageAttachments.d.ts +4 -5
  192. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
  193. package/dist/react/primitives/message/MessageGroupedParts.d.ts +2 -3
  194. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  195. package/dist/react/primitives/message/MessageParts.d.ts +10 -10
  196. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  197. package/dist/react/primitives/message/MessageQuote.d.ts +2 -3
  198. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
  199. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +2 -3
  200. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  201. package/dist/react/primitives/part/PartMessages.d.ts +3 -4
  202. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  203. package/dist/react/primitives/thread/ThreadMessages.d.ts +7 -8
  204. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  205. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +5 -6
  206. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  207. package/dist/react/primitives/threadList/ThreadListItems.d.ts +4 -5
  208. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  209. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +2 -3
  210. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  211. package/dist/react/providers/AttachmentByIndexProvider.d.ts +2 -3
  212. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  213. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +1 -2
  214. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  215. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +1 -2
  216. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  217. package/dist/react/providers/MessageByIdProvider.d.ts +1 -2
  218. package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
  219. package/dist/react/providers/MessageByIndexProvider.d.ts +1 -2
  220. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
  221. package/dist/react/providers/PartByIndexProvider.d.ts +1 -2
  222. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
  223. package/dist/react/providers/QueueItemByIndexProvider.d.ts +2 -3
  224. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
  225. package/dist/react/providers/ReadonlyThreadProvider.d.ts +2 -3
  226. package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
  227. package/dist/react/providers/SuggestionByIndexProvider.d.ts +2 -3
  228. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  229. package/dist/react/providers/TextMessagePartProvider.d.ts +1 -2
  230. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  231. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +1 -2
  232. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
  233. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +1 -2
  234. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  235. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +3 -2
  236. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  237. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +17 -7
  238. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  239. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +1 -2
  240. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  241. package/dist/react/runtimes/RemoteThreadResource.d.ts +4 -5
  242. package/dist/react/runtimes/RemoteThreadResource.d.ts.map +1 -1
  243. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +3 -3
  244. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  245. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts +2 -3
  246. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts.map +1 -1
  247. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts +3 -4
  248. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts.map +1 -1
  249. package/dist/react/runtimes/assistant-transport/runManager.d.ts +2 -3
  250. package/dist/react/runtimes/assistant-transport/runManager.d.ts.map +1 -1
  251. package/dist/react/runtimes/assistant-transport/types.d.ts +17 -18
  252. package/dist/react/runtimes/assistant-transport/types.d.ts.map +1 -1
  253. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts +4 -5
  254. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  255. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts +1 -2
  256. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts.map +1 -1
  257. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts +1 -2
  258. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts.map +1 -1
  259. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +2 -3
  260. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  261. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +17 -4
  262. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  263. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +1 -2
  264. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  265. package/dist/react/runtimes/cloud/auiV0.d.ts +11 -3
  266. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  267. package/dist/react/runtimes/cloud/auiV0.js +63 -2
  268. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  269. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts +4 -5
  270. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts.map +1 -1
  271. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts +1 -2
  272. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts.map +1 -1
  273. package/dist/react/runtimes/cloud/sdkIdentity.d.ts +1 -2
  274. package/dist/react/runtimes/cloud/sdkIdentity.d.ts.map +1 -1
  275. package/dist/react/runtimes/cloud/sdkIdentity.js +1 -1
  276. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +1 -2
  277. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  278. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts +1 -2
  279. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  280. package/dist/react/runtimes/createMessageConverter.d.ts +1 -2
  281. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  282. package/dist/react/runtimes/createRuntimeExtras.d.ts +3 -4
  283. package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
  284. package/dist/react/runtimes/external-message-converter.d.ts +6 -6
  285. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  286. package/dist/react/runtimes/useExternalStoreRuntime.d.ts +1 -2
  287. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
  288. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +1 -2
  289. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
  290. package/dist/react/runtimes/useLocalRuntime.d.ts +3 -4
  291. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  292. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +1 -2
  293. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  294. package/dist/react/runtimes/useRemoteThreadListRuntime.js +2 -2
  295. package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
  296. package/dist/react/runtimes/useRuntimeAdapters.d.ts +4 -4
  297. package/dist/react/runtimes/useRuntimeAdapters.d.ts.map +1 -1
  298. package/dist/react/runtimes/useStreamingTiming.d.ts +2 -2
  299. package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
  300. package/dist/react/types/MessagePartComponentTypes.d.ts +26 -27
  301. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  302. package/dist/react/types/scopes/dataRenderers.d.ts +3 -4
  303. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
  304. package/dist/react/types/scopes/interactables.d.ts +10 -11
  305. package/dist/react/types/scopes/interactables.d.ts.map +1 -1
  306. package/dist/react/types/scopes/tools.d.ts +4 -5
  307. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  308. package/dist/react/utils/getMessageQuote.d.ts +1 -2
  309. package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
  310. package/dist/react/utils/groupParts.d.ts +7 -8
  311. package/dist/react/utils/groupParts.d.ts.map +1 -1
  312. package/dist/react/utils/useJSONEqual.d.ts +2 -3
  313. package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
  314. package/dist/react/utils/useJSONSchemaDependency.d.ts +1 -2
  315. package/dist/react/utils/useJSONSchemaDependency.d.ts.map +1 -1
  316. package/dist/runtime/api/assistant-runtime.d.ts +2 -3
  317. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  318. package/dist/runtime/api/attachment-runtime.d.ts +6 -7
  319. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  320. package/dist/runtime/api/bindings.d.ts +5 -6
  321. package/dist/runtime/api/bindings.d.ts.map +1 -1
  322. package/dist/runtime/api/composer-runtime.d.ts +10 -10
  323. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  324. package/dist/runtime/api/message-part-runtime.d.ts +3 -4
  325. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  326. package/dist/runtime/api/message-part-runtime.js +3 -2
  327. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  328. package/dist/runtime/api/message-runtime.d.ts +8 -6
  329. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  330. package/dist/runtime/api/message-runtime.js +3 -2
  331. package/dist/runtime/api/message-runtime.js.map +1 -1
  332. package/dist/runtime/api/paths.d.ts +6 -7
  333. package/dist/runtime/api/paths.d.ts.map +1 -1
  334. package/dist/runtime/api/thread-list-item-runtime.d.ts +8 -8
  335. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  336. package/dist/runtime/api/thread-list-runtime.d.ts +4 -5
  337. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  338. package/dist/runtime/api/thread-runtime.d.ts +10 -11
  339. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  340. package/dist/runtime/base/base-assistant-runtime-core.d.ts +1 -2
  341. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  342. package/dist/runtime/base/base-composer-runtime-core.d.ts +1 -2
  343. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  344. package/dist/runtime/base/base-thread-runtime-core.d.ts +8 -3
  345. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  346. package/dist/runtime/base/base-thread-runtime-core.js +71 -27
  347. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  348. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +1 -2
  349. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  350. package/dist/runtime/base/default-edit-composer-runtime-core.js +12 -2
  351. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  352. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +1 -2
  353. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  354. package/dist/runtime/base/default-thread-composer-runtime-core.js +7 -1
  355. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  356. package/dist/runtime/branch/external-thread-branch-adapter.d.ts +1 -2
  357. package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
  358. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +1 -2
  359. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  360. package/dist/runtime/interfaces/composer-runtime-core.d.ts +10 -11
  361. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  362. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +4 -5
  363. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  364. package/dist/runtime/interfaces/thread-runtime-core.d.ts +17 -16
  365. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  366. package/dist/runtime/queue/external-thread-queue-adapter.d.ts +2 -3
  367. package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
  368. package/dist/runtime/queue/message-queue.d.ts +5 -4
  369. package/dist/runtime/queue/message-queue.d.ts.map +1 -1
  370. package/dist/runtime/queue/message-queue.js +9 -1
  371. package/dist/runtime/queue/message-queue.js.map +1 -1
  372. package/dist/runtime/queue/queue-item.d.ts +2 -3
  373. package/dist/runtime/queue/queue-item.d.ts.map +1 -1
  374. package/dist/runtime/utils/abortable-thread-load.d.ts +2 -3
  375. package/dist/runtime/utils/abortable-thread-load.d.ts.map +1 -1
  376. package/dist/runtime/utils/attachment-add-operations.d.ts +3 -4
  377. package/dist/runtime/utils/attachment-add-operations.d.ts.map +1 -1
  378. package/dist/runtime/utils/auto-status.d.ts +7 -8
  379. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  380. package/dist/runtime/utils/chat-model-adapter.d.ts +5 -6
  381. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  382. package/dist/runtime/utils/external-message-conversion.d.ts +15 -16
  383. package/dist/runtime/utils/external-message-conversion.d.ts.map +1 -1
  384. package/dist/runtime/utils/external-message-conversion.js +3 -2
  385. package/dist/runtime/utils/external-message-conversion.js.map +1 -1
  386. package/dist/runtime/utils/external-store-message.d.ts +4 -5
  387. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  388. package/dist/runtime/utils/message-repository-session.d.ts +3 -4
  389. package/dist/runtime/utils/message-repository-session.d.ts.map +1 -1
  390. package/dist/runtime/utils/message-repository.d.ts +4 -5
  391. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  392. package/dist/runtime/utils/pending-tool-calls.d.ts +2 -3
  393. package/dist/runtime/utils/pending-tool-calls.d.ts.map +1 -1
  394. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +1 -2
  395. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
  396. package/dist/runtime/utils/runtime-extras-brand.d.ts +2 -3
  397. package/dist/runtime/utils/runtime-extras-brand.d.ts.map +1 -1
  398. package/dist/runtime/utils/stored-message-parts.d.ts +21 -0
  399. package/dist/runtime/utils/stored-message-parts.d.ts.map +1 -0
  400. package/dist/runtime/utils/stored-message-parts.js +83 -0
  401. package/dist/runtime/utils/stored-message-parts.js.map +1 -0
  402. package/dist/runtime/utils/streaming-timing.d.ts +4 -5
  403. package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
  404. package/dist/runtime/utils/thread-message-like.d.ts +5 -5
  405. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  406. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  407. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts +3 -4
  408. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts.map +1 -1
  409. package/dist/runtime/utils/tool-call-tree.d.ts +4 -5
  410. package/dist/runtime/utils/tool-call-tree.d.ts.map +1 -1
  411. package/dist/runtimes/assistant-transport/utils.d.ts +1 -2
  412. package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
  413. package/dist/runtimes/external-store/external-store-adapter.d.ts +9 -6
  414. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  415. package/dist/runtimes/external-store/external-store-runtime-core.d.ts +1 -2
  416. package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
  417. package/dist/runtimes/external-store/external-store-shared-options.d.ts +2 -3
  418. package/dist/runtimes/external-store/external-store-shared-options.d.ts.map +1 -1
  419. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +2 -3
  420. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  421. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +4 -3
  422. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  423. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +29 -6
  424. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  425. package/dist/runtimes/external-store/thread-message-converter.d.ts +2 -3
  426. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  427. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts +2 -3
  428. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts.map +1 -1
  429. package/dist/runtimes/local/local-runtime-core.d.ts +1 -2
  430. package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
  431. package/dist/runtimes/local/local-runtime-options.d.ts +1 -2
  432. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  433. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +2 -3
  434. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  435. package/dist/runtimes/local/local-thread-runtime-core.d.ts +9 -4
  436. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  437. package/dist/runtimes/local/local-thread-runtime-core.js +53 -9
  438. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  439. package/dist/runtimes/local/should-continue.d.ts +1 -2
  440. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  441. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +1 -2
  442. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  443. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +1 -2
  444. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  445. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts +1 -2
  446. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts.map +1 -1
  447. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +1 -2
  448. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  449. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +1 -2
  450. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  451. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +16 -17
  452. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  453. package/dist/runtimes/remote-thread-list/title-generation.d.ts +7 -8
  454. package/dist/runtimes/remote-thread-list/title-generation.d.ts.map +1 -1
  455. package/dist/runtimes/remote-thread-list/title.d.ts +2 -3
  456. package/dist/runtimes/remote-thread-list/title.d.ts.map +1 -1
  457. package/dist/runtimes/remote-thread-list/types.d.ts +8 -9
  458. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  459. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +4 -5
  460. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
  461. package/dist/store/clients/chain-of-thought-client.d.ts +1 -2
  462. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  463. package/dist/store/clients/external-thread.d.ts +3 -4
  464. package/dist/store/clients/external-thread.d.ts.map +1 -1
  465. package/dist/store/clients/external-thread.js +15 -11
  466. package/dist/store/clients/external-thread.js.map +1 -1
  467. package/dist/store/clients/model-context-client.d.ts +1 -2
  468. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  469. package/dist/store/clients/no-op-composer-client.d.ts +1 -2
  470. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  471. package/dist/store/clients/runtime-adapter.d.ts +1 -2
  472. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  473. package/dist/store/clients/single-thread-list.d.ts +1 -2
  474. package/dist/store/clients/single-thread-list.d.ts.map +1 -1
  475. package/dist/store/clients/suggestions.d.ts +3 -4
  476. package/dist/store/clients/suggestions.d.ts.map +1 -1
  477. package/dist/store/clients/thread-message-client.d.ts +2 -3
  478. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  479. package/dist/store/clients/thread-selection-events.d.ts +1 -2
  480. package/dist/store/clients/thread-selection-events.d.ts.map +1 -1
  481. package/dist/store/clients/thread-tasks.d.ts +3 -4
  482. package/dist/store/clients/thread-tasks.d.ts.map +1 -1
  483. package/dist/store/env.d.ts +1 -2
  484. package/dist/store/env.d.ts.map +1 -1
  485. package/dist/store/primitive-predicates.d.ts +11 -12
  486. package/dist/store/primitive-predicates.d.ts.map +1 -1
  487. package/dist/store/primitive-predicates.js +2 -2
  488. package/dist/store/primitive-predicates.js.map +1 -1
  489. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +1 -2
  490. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  491. package/dist/store/runtime-clients/composer-runtime-client.d.ts +1 -2
  492. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  493. package/dist/store/runtime-clients/handle-runtime-action.d.ts +1 -2
  494. package/dist/store/runtime-clients/handle-runtime-action.d.ts.map +1 -1
  495. package/dist/store/runtime-clients/handle-thread-list-action.d.ts +1 -2
  496. package/dist/store/runtime-clients/handle-thread-list-action.d.ts.map +1 -1
  497. package/dist/store/runtime-clients/liveRef.d.ts +1 -2
  498. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
  499. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +1 -2
  500. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  501. package/dist/store/runtime-clients/message-runtime-client.d.ts +1 -2
  502. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  503. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +1 -2
  504. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  505. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +1 -2
  506. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  507. package/dist/store/runtime-clients/thread-runtime-client.d.ts +1 -2
  508. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  509. package/dist/store/runtime-clients/useSubscribable.d.ts +1 -2
  510. package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
  511. package/dist/store/scopes/attachment.d.ts +4 -5
  512. package/dist/store/scopes/attachment.d.ts.map +1 -1
  513. package/dist/store/scopes/chain-of-thought.d.ts +5 -6
  514. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  515. package/dist/store/scopes/composer.d.ts +6 -7
  516. package/dist/store/scopes/composer.d.ts.map +1 -1
  517. package/dist/store/scopes/message.d.ts +6 -6
  518. package/dist/store/scopes/message.d.ts.map +1 -1
  519. package/dist/store/scopes/model-context.d.ts +3 -4
  520. package/dist/store/scopes/model-context.d.ts.map +1 -1
  521. package/dist/store/scopes/part.d.ts +4 -5
  522. package/dist/store/scopes/part.d.ts.map +1 -1
  523. package/dist/store/scopes/queue-item.d.ts +4 -4
  524. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  525. package/dist/store/scopes/suggestion.d.ts +4 -5
  526. package/dist/store/scopes/suggestion.d.ts.map +1 -1
  527. package/dist/store/scopes/suggestions.d.ts +5 -6
  528. package/dist/store/scopes/suggestions.d.ts.map +1 -1
  529. package/dist/store/scopes/task.d.ts +4 -5
  530. package/dist/store/scopes/task.d.ts.map +1 -1
  531. package/dist/store/scopes/thread-list-item.d.ts +5 -6
  532. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  533. package/dist/store/scopes/thread.d.ts +5 -6
  534. package/dist/store/scopes/thread.d.ts.map +1 -1
  535. package/dist/store/scopes/threads.d.ts +4 -5
  536. package/dist/store/scopes/threads.d.ts.map +1 -1
  537. package/dist/subscribable/subscribable.d.ts +15 -16
  538. package/dist/subscribable/subscribable.d.ts.map +1 -1
  539. package/dist/tests/remote-thread-list-test-helpers.d.ts +5 -6
  540. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -1
  541. package/dist/types/attachment.d.ts +9 -10
  542. package/dist/types/attachment.d.ts.map +1 -1
  543. package/dist/types/augmentations.d.ts +3 -4
  544. package/dist/types/augmentations.d.ts.map +1 -1
  545. package/dist/types/directive.d.ts +2 -3
  546. package/dist/types/directive.d.ts.map +1 -1
  547. package/dist/types/error.d.ts +8 -9
  548. package/dist/types/error.d.ts.map +1 -1
  549. package/dist/types/message.d.ts +48 -46
  550. package/dist/types/message.d.ts.map +1 -1
  551. package/dist/types/message.js.map +1 -1
  552. package/dist/types/quote.d.ts +1 -2
  553. package/dist/types/quote.d.ts.map +1 -1
  554. package/dist/types/trigger.d.ts +2 -3
  555. package/dist/types/trigger.d.ts.map +1 -1
  556. package/dist/types/unsubscribe.d.ts +1 -2
  557. package/dist/types/unsubscribe.d.ts.map +1 -1
  558. package/dist/utils/abortable-iterable.d.ts +2 -3
  559. package/dist/utils/abortable-iterable.d.ts.map +1 -1
  560. package/dist/utils/composite-context-provider.d.ts +1 -2
  561. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  562. package/dist/utils/data-url.d.ts +6 -7
  563. package/dist/utils/data-url.d.ts.map +1 -1
  564. package/dist/utils/getGroupStatus.d.ts +2 -3
  565. package/dist/utils/getGroupStatus.d.ts.map +1 -1
  566. package/dist/utils/id.d.ts +3 -4
  567. package/dist/utils/id.d.ts.map +1 -1
  568. package/dist/utils/image-media-type.d.ts +1 -2
  569. package/dist/utils/image-media-type.d.ts.map +1 -1
  570. package/dist/utils/invoke-user-callback.d.ts +1 -2
  571. package/dist/utils/invoke-user-callback.d.ts.map +1 -1
  572. package/dist/utils/json/is-json-equal.d.ts +1 -2
  573. package/dist/utils/json/is-json-equal.d.ts.map +1 -1
  574. package/dist/utils/json/is-json.d.ts +4 -5
  575. package/dist/utils/json/is-json.d.ts.map +1 -1
  576. package/dist/utils/json/stable-stringify-tool-args.d.ts +2 -3
  577. package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -1
  578. package/dist/utils/normalizePartStatus.d.ts +4 -5
  579. package/dist/utils/normalizePartStatus.d.ts.map +1 -1
  580. package/dist/utils/notify-event-listeners.d.ts +1 -2
  581. package/dist/utils/notify-event-listeners.d.ts.map +1 -1
  582. package/dist/utils/record.d.ts +1 -2
  583. package/dist/utils/record.d.ts.map +1 -1
  584. package/dist/utils/silent-runtime-action.d.ts +2 -3
  585. package/dist/utils/silent-runtime-action.d.ts.map +1 -1
  586. package/dist/utils/text.d.ts +1 -2
  587. package/dist/utils/text.d.ts.map +1 -1
  588. package/dist/utils/wire-media.d.ts +3 -4
  589. package/dist/utils/wire-media.d.ts.map +1 -1
  590. package/package.json +14 -13
  591. package/src/adapters/attachment.ts +8 -1
  592. package/src/adapters/feedback.ts +1 -0
  593. package/src/model-context/frame/provider.test.ts +45 -20
  594. package/src/react/RuntimeAdapter.test.ts +4 -1
  595. package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +117 -0
  596. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +27 -74
  597. package/src/react/client/Interactables.test.ts +12 -7
  598. package/src/react/client/RemoteThreadList.concurrent.test.tsx +9 -3
  599. package/src/react/client/RemoteThreadList.test.ts +5 -6
  600. package/src/react/interactables-legacy/Interactables.test.ts +9 -3
  601. package/src/react/interactables-legacy/useAssistantInteractable.test.tsx +40 -22
  602. package/src/react/model-context/useInteractable.test.tsx +56 -29
  603. package/src/react/primitive-hooks/useActionBarCopy.test.ts +5 -5
  604. package/src/react/primitives/generativeUI/GenerativeUI.test.tsx +54 -0
  605. package/src/react/primitives/generativeUI/GenerativeUI.tsx +13 -18
  606. package/src/react/primitives/message/MessageGroupedParts.test.tsx +4 -1
  607. package/src/react/primitives/thread/ThreadMessages.test.tsx +25 -7
  608. package/src/react/runtimes/RemoteThreadListHookInstanceManager.layout.test.tsx +62 -0
  609. package/src/react/runtimes/RemoteThreadListHookInstanceManager.retry.test.tsx +2 -2
  610. package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +23 -20
  611. package/src/react/runtimes/RemoteThreadListHookInstanceManager.title.test.tsx +24 -17
  612. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +39 -24
  613. package/src/react/runtimes/assistant-transport/transport-scheduling.test.ts +73 -46
  614. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.test.tsx +66 -1
  615. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +102 -0
  616. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +24 -11
  617. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +8 -4
  618. package/src/react/runtimes/cloud/auiV0.ts +121 -1
  619. package/src/react/runtimes/cloud/auiV0DecodeSafely.test.ts +522 -0
  620. package/src/react/runtimes/external-message-converter.test.ts +7 -3
  621. package/src/react/runtimes/remote-thread-hook-on-tap.test.ts +2 -1
  622. package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +8 -2
  623. package/src/react/runtimes/useExternalStoreRuntime.suggestions.test.tsx +6 -2
  624. package/src/react/runtimes/useRemoteThreadListRuntime.concurrent.test.tsx +84 -4
  625. package/src/react/runtimes/useRemoteThreadListRuntime.ts +5 -1
  626. package/src/runtime/api/message-part-runtime.ts +4 -1
  627. package/src/runtime/api/message-runtime.ts +15 -2
  628. package/src/runtime/base/base-thread-runtime-core.test.ts +761 -18
  629. package/src/runtime/base/base-thread-runtime-core.ts +89 -26
  630. package/src/runtime/base/default-edit-composer-runtime-core.ts +12 -2
  631. package/src/runtime/base/default-thread-composer-runtime-core.ts +12 -1
  632. package/src/runtime/interfaces/thread-runtime-core.ts +2 -0
  633. package/src/runtime/queue/message-queue.ts +11 -1
  634. package/src/runtime/utils/external-message-conversion.test.ts +43 -0
  635. package/src/runtime/utils/external-message-conversion.ts +6 -2
  636. package/src/runtime/utils/stored-message-parts.ts +174 -0
  637. package/src/runtime/utils/thread-message-like.ts +7 -2
  638. package/src/runtimes/external-store/external-store-adapter.ts +4 -0
  639. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +44 -9
  640. package/src/runtimes/local/local-thread-runtime-core.test.ts +168 -12
  641. package/src/runtimes/local/local-thread-runtime-core.ts +80 -9
  642. package/src/store/clients/external-thread.ts +34 -13
  643. package/src/store/primitive-predicates.test.ts +16 -0
  644. package/src/store/primitive-predicates.ts +4 -1
  645. package/src/store/runtime-clients/thread-runtime-client.test.tsx +110 -0
  646. package/src/store/scopes/message.ts +4 -1
  647. package/src/subscribable/subscribable.test.ts +7 -2
  648. package/src/tests/attachment-adapters.test.ts +16 -1
  649. package/src/tests/auiV0Encode.test.ts +4 -0
  650. package/src/tests/base-composer-runtime-core-addAttachment.test.ts +6 -6
  651. package/src/tests/base-composer-runtime-core.test.ts +16 -5
  652. package/src/tests/composer-can-cancel.test.ts +35 -6
  653. package/src/tests/composer-can-send.test.ts +22 -0
  654. package/src/tests/default-edit-composer-runtime-core.test.ts +47 -0
  655. package/src/tests/external-store-thread-runtime-core-adapter.test.ts +229 -27
  656. package/src/tests/external-store-thread-runtime-core.test.ts +31 -0
  657. package/src/tests/external-thread-attachments.test.tsx +22 -23
  658. package/src/tests/external-thread-feedback.test.tsx +20 -7
  659. package/src/tests/external-thread-parity.test.tsx +1 -1
  660. package/src/tests/message-queue.test.ts +45 -10
  661. package/src/tests/thread-switch-events.test.tsx +11 -7
  662. package/src/tests/useRemoteThreadListRuntime-controlled.test.tsx +2 -1
  663. package/src/types/message.test.ts +19 -0
  664. package/src/types/message.ts +16 -8
@@ -1,5 +1,6 @@
1
- import { isJSONValue } from "../../../utils/json/is-json.js";
1
+ import { isJSONValue, isRecord } from "../../../utils/json/is-json.js";
2
2
  import { fromThreadMessageLike } from "../../../runtime/utils/thread-message-like.js";
3
+ import { isStoredAuiV0RolePart, isStoredMessageRole, parseStoredAttachment, parseStoredDate } from "../../../runtime/utils/stored-message-parts.js";
3
4
  //#region src/react/runtimes/cloud/auiV0.ts
4
5
  const encodeAttachmentPart = (part) => {
5
6
  const type = part.type;
@@ -152,6 +153,66 @@ function auiV0Encode(message) {
152
153
  ...attachments ? { attachments } : void 0
153
154
  };
154
155
  }
156
+ const readableAuiV0Parts = (role, content, depth) => content.flatMap((part) => {
157
+ if (!isStoredAuiV0RolePart(role, part)) return [];
158
+ if (part.type !== "tool-call" || part.messages === void 0) return [part];
159
+ const { messages, ...toolCall } = part;
160
+ if (!Array.isArray(messages) || depth >= 100) return [toolCall];
161
+ return [{
162
+ ...toolCall,
163
+ messages: messages.flatMap((message) => {
164
+ const nested = readableAuiV0Message(message, depth + 1);
165
+ return nested ? [nested] : [];
166
+ })
167
+ }];
168
+ });
169
+ const readableAuiV0Attachments = (attachments) => attachments.flatMap((attachment) => {
170
+ const parsed = parseStoredAttachment(attachment, (value) => isStoredAuiV0RolePart("user", value));
171
+ return parsed ? [parsed] : [];
172
+ });
173
+ const readableAuiV0Message = (value, depth) => {
174
+ if (!isRecord(value) || !isStoredMessageRole(value.role) || !Array.isArray(value.content)) return null;
175
+ const { role } = value;
176
+ const content = readableAuiV0Parts(role, value.content, depth);
177
+ if (role === "system" && content.length !== 1) return null;
178
+ const { attachments, createdAt, status, metadata, ...rest } = value;
179
+ const storedCreatedAt = parseStoredDate(createdAt);
180
+ const readableMetadata = role === "assistant" || !isRecord(metadata) ? metadata : {
181
+ ...metadata,
182
+ steps: void 0
183
+ };
184
+ return {
185
+ ...rest,
186
+ ...storedCreatedAt ? { createdAt } : void 0,
187
+ ...role === "assistant" && status !== void 0 ? { status } : void 0,
188
+ ...metadata !== void 0 ? { metadata: readableMetadata } : void 0,
189
+ content,
190
+ ...role === "user" && Array.isArray(attachments) ? { attachments: readableAuiV0Attachments(attachments) } : void 0
191
+ };
192
+ };
193
+ /**
194
+ * Decodes a stored row, dropping the parts, attachments and nested messages
195
+ * that cannot be read back instead of rejecting the row, and returning null
196
+ * when the row itself is unreadable. Loading a thread must not fail because a
197
+ * single stored row is malformed.
198
+ */
199
+ function auiV0DecodeSafely(cloudMessage) {
200
+ try {
201
+ const payload = readableAuiV0Message(cloudMessage.content, 0);
202
+ if (!payload) throw new Error("stored row is not an aui/v0 message");
203
+ return {
204
+ parentId: cloudMessage.parent_id,
205
+ message: decodeAuiV0Message({
206
+ ...payload,
207
+ id: cloudMessage.id,
208
+ createdAt: cloudMessage.created_at
209
+ }, cloudMessage.id)
210
+ };
211
+ } catch (error) {
212
+ console.warn(`aui/v0: dropping unreadable message ${cloudMessage.id}`, error);
213
+ return null;
214
+ }
215
+ }
155
216
  function auiV0Decode(cloudMessage) {
156
217
  const payload = cloudMessage.content;
157
218
  const message = decodeAuiV0Message({
@@ -186,6 +247,6 @@ const decodeAuiV0Message = (payload, fallbackId) => fromThreadMessageLike({
186
247
  reason: "unknown"
187
248
  });
188
249
  //#endregion
189
- export { auiV0Decode, auiV0Encode };
250
+ export { auiV0Decode, auiV0DecodeSafely, auiV0Encode };
190
251
 
191
252
  //# sourceMappingURL=auiV0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auiV0.js","names":["MessageStatus","SourceProviderMetadata","ThreadMessage","ToolCallMessagePartMcpMetadata","ToolCallTiming","ToolApprovalDisplay","ToolApprovalOption","ReasoningMessagePart","CompleteAttachment","fromThreadMessageLike","ThreadMessageLike","CloudMessage","isJSONValue","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","auiV0Decode","cloudMessage","decodeAuiV0Message","created_at","parent_id","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 } from \"../../../utils/json/is-json\";\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\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","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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"}
@@ -5,14 +5,14 @@ import { AssistantCloud, SdkIdentity } from "assistant-cloud";
5
5
  type ThreadData = {
6
6
  externalId: string | undefined;
7
7
  };
8
- type CloudThreadListAdapterOptions = {
8
+ export type CloudThreadListAdapterOptions = {
9
9
  cloud?: AssistantCloud | undefined;
10
10
  sdk?: SdkIdentity | undefined;
11
11
  create?: (() => Promise<ThreadData>) | undefined;
12
12
  delete?: ((threadId: string) => Promise<void>) | undefined;
13
13
  };
14
- declare const autoCloud: AssistantCloud | undefined;
15
- declare const useCloudRuntimeAdapters: (cloudRef: RefObject<AssistantCloud>) => RuntimeAdapters;
14
+ export declare const autoCloud: AssistantCloud | undefined;
15
+ export declare const useCloudRuntimeAdapters: (cloudRef: RefObject<AssistantCloud>) => RuntimeAdapters;
16
16
  /**
17
17
  * Builds the `RemoteThreadListAdapter` for an assistant-cloud backend without
18
18
  * requiring a hook call site, so plain code (a Vue or Svelte setup function,
@@ -24,7 +24,6 @@ declare const useCloudRuntimeAdapters: (cloudRef: RefObject<AssistantCloud>) =>
24
24
  * in-memory list. `useCloudThreadListAdapter` wraps this for the React
25
25
  * hook signature.
26
26
  */
27
- declare const createCloudThreadListAdapter: (options: CloudThreadListAdapterOptions | (() => CloudThreadListAdapterOptions)) => RemoteThreadListAdapter;
27
+ export declare const createCloudThreadListAdapter: (options: CloudThreadListAdapterOptions | (() => CloudThreadListAdapterOptions)) => RemoteThreadListAdapter;
28
28
  //#endregion
29
- export { CloudThreadListAdapterOptions, autoCloud, createCloudThreadListAdapter, useCloudRuntimeAdapters };
30
29
  //# sourceMappingURL=createCloudThreadListAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createCloudThreadListAdapter.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/createCloudThreadListAdapter.ts"],"mappings":";;;;KAcK;EACH;;KAGU;EACV,QAAQ;EACR,MAAM;EAEN,gBAAgB,QAAQ;EACxB,WAAW,qBAAqB;;cASrB,WAAS;cAIT,0BACX,UAAU,UAAU,oBACnB;;;;;;;;;;;;cAyDU,+BACX,SACI,uCACO,mCACV"}
1
+ {"version":3,"file":"createCloudThreadListAdapter.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/createCloudThreadListAdapter.ts"],"mappings":";;;;KAcK;EACH;;YAGU;EACV,QAAQ;EACR,MAAM;EAEN,gBAAgB,QAAQ;EACxB,WAAW,qBAAqB;;qBASrB,WAAS;qBAIT,0BACX,UAAU,UAAU,oBACnB;;;;;;;;;;;;qBAyDU,+BACX,SACI,uCACO,mCACV"}
@@ -6,7 +6,6 @@ type ThreadListItem = {
6
6
  source: unknown;
7
7
  initialize: () => Promise<ThreadData>;
8
8
  };
9
- declare const createCloudThreadListAdapterCreateFallback: (create: (() => Promise<ThreadData>) | undefined, threadListItem: ThreadListItem) => (() => Promise<ThreadData>);
9
+ export declare const createCloudThreadListAdapterCreateFallback: (create: (() => Promise<ThreadData>) | undefined, threadListItem: ThreadListItem) => (() => Promise<ThreadData>);
10
10
  //#endregion
11
- export { createCloudThreadListAdapterCreateFallback };
12
11
  //# sourceMappingURL=createCloudThreadListAdapterCreateFallback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createCloudThreadListAdapterCreateFallback.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.ts"],"mappings":";KAAK;EACH;;KAGG;EACH;EACA,kBAAkB,QAAQ;;cAGf,6CACX,eAAe,QAAQ,0BACvB,gBAAgB,0BACR,QAAQ"}
1
+ {"version":3,"file":"createCloudThreadListAdapterCreateFallback.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.ts"],"mappings":";KAAK;EACH;;KAGG;EACH;EACA,kBAAkB,QAAQ;;qBAGf,6CACX,eAAe,QAAQ,0BACvB,gBAAgB,0BACR,QAAQ"}
@@ -1,6 +1,5 @@
1
1
  import { SdkIdentity } from "assistant-cloud";
2
2
  //#region src/react/runtimes/cloud/sdkIdentity.d.ts
3
- declare const CORE_SDK: SdkIdentity;
3
+ export declare const CORE_SDK: SdkIdentity;
4
4
  //#endregion
5
- export { CORE_SDK };
6
5
  //# sourceMappingURL=sdkIdentity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdkIdentity.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/sdkIdentity.ts"],"mappings":";;cAEa,UAAU"}
1
+ {"version":3,"file":"sdkIdentity.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/sdkIdentity.ts"],"mappings":";;qBAEa,UAAU"}
@@ -1,7 +1,7 @@
1
1
  //#region src/react/runtimes/cloud/sdkIdentity.ts
2
2
  const CORE_SDK = {
3
3
  name: "@assistant-ui/core",
4
- version: "0.3.19"
4
+ version: "0.3.20"
5
5
  };
6
6
  //#endregion
7
7
  export { CORE_SDK };
@@ -1,7 +1,6 @@
1
1
  import { RemoteThreadListAdapter } from "../../../runtimes/remote-thread-list/types.js";
2
2
  import { CloudThreadListAdapterOptions } from "./createCloudThreadListAdapter.js";
3
3
  //#region src/react/runtimes/cloud/useCloudThreadListAdapter.d.ts
4
- declare const useCloudThreadListAdapter: (adapter: CloudThreadListAdapterOptions) => RemoteThreadListAdapter;
4
+ export declare const useCloudThreadListAdapter: (adapter: CloudThreadListAdapterOptions) => RemoteThreadListAdapter;
5
5
  //#endregion
6
- export { useCloudThreadListAdapter };
7
6
  //# sourceMappingURL=useCloudThreadListAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCloudThreadListAdapter.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/useCloudThreadListAdapter.tsx"],"mappings":";;;cASa,4BACX,SAAS,kCACR"}
1
+ {"version":3,"file":"useCloudThreadListAdapter.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/useCloudThreadListAdapter.tsx"],"mappings":";;;qBASa,4BACX,SAAS,kCACR"}
@@ -10,7 +10,6 @@ type CloudThreadListAdapter = {
10
10
  create?(): Promise<ThreadData>;
11
11
  delete?(threadId: string): Promise<void>;
12
12
  };
13
- declare function useCloudThreadListRuntime({ runtimeHook, ...adapterOptions }: CloudThreadListAdapter): AssistantRuntime;
13
+ export declare function useCloudThreadListRuntime({ runtimeHook, ...adapterOptions }: CloudThreadListAdapter): AssistantRuntime;
14
14
  //#endregion
15
- export { useCloudThreadListRuntime };
16
15
  //# sourceMappingURL=useCloudThreadListRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCloudThreadListRuntime.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/useCloudThreadListRuntime.ts"],"mappings":";;;KAOK;EACH;;KAGG;EACH,OAAO;EAEP,mBAAmB;EAEnB,WAAW,QAAQ;EACnB,QAAQ,mBAAmB;;iBAGb,4BACd,gBACG,kBACF,yBAAsB"}
1
+ {"version":3,"file":"useCloudThreadListRuntime.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/useCloudThreadListRuntime.ts"],"mappings":";;;KAOK;EACH;;KAGG;EACH,OAAO;EAEP,mBAAmB;EAEnB,WAAW,QAAQ;EACnB,QAAQ,mBAAmB;;wBAGb,4BACd,gBACG,kBACF,yBAAsB"}
@@ -3,7 +3,7 @@ import { JoinStrategy } from "../../runtime/utils/external-message-conversion.js
3
3
  import { useExternalMessageConverter } from "./external-message-converter.js";
4
4
  import { ThreadState } from "../../runtime/api/thread-runtime.js";
5
5
  //#region src/react/runtimes/createMessageConverter.d.ts
6
- declare const createMessageConverter: <T extends object>(callback: useExternalMessageConverter.Callback<T>) => {
6
+ export declare const createMessageConverter: <T extends object>(callback: useExternalMessageConverter.Callback<T>) => {
7
7
  useThreadMessages: ({ messages, isRunning, joinStrategy, metadata }: {
8
8
  messages: T[];
9
9
  isRunning: boolean;
@@ -17,5 +17,4 @@ declare const createMessageConverter: <T extends object>(callback: useExternalMe
17
17
  useOriginalMessages: () => unknown[];
18
18
  };
19
19
  //#endregion
20
- export { createMessageConverter };
21
20
  //# sourceMappingURL=createMessageConverter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createMessageConverter.d.ts","names":[],"sources":["../../../src/react/runtimes/createMessageConverter.ts"],"mappings":";;;;;cAWa,yBAA0B,kBACrC,UAAU,4BAA4B,SAAS;EAQ1C,sBAAA,UAAA,WAAA,cAAA;IACD,UAAU;IACV;IACA,eAAe;IACf,WAAW,4BAA4B;QACxC;EAUW,mBAAA,UAAA,KAAG,qBAAA,WAEH,4BAA4B,aAAQ;EAKvC,qBAAA,OAAA,cAAc,gBAAgB;EAO9B,oBAAA,OAAA,cAAc,gBAAgB"}
1
+ {"version":3,"file":"createMessageConverter.d.ts","names":[],"sources":["../../../src/react/runtimes/createMessageConverter.ts"],"mappings":";;;;;qBAWa,yBAA0B,kBACrC,UAAU,4BAA4B,SAAS;EAQ1C,sBAAA,UAAA,WAAA,cAAA;IACD,UAAU;IACV;IACA,eAAe;IACf,WAAW,4BAA4B;QACxC;EAUW,mBAAA,UAAA,KAAG,qBAAA,WAEH,4BAA4B,aAAQ;EAKvC,qBAAA,OAAA,cAAc,gBAAgB;EAO9B,oBAAA,OAAA,cAAc,gBAAgB"}
@@ -2,7 +2,7 @@ import { RuntimeExtrasBrand } from "../../runtime/utils/runtime-extras-brand.js"
2
2
  import { AssistantClient } from "@assistant-ui/store";
3
3
  //#region src/react/runtimes/createRuntimeExtras.d.ts
4
4
  /** @deprecated Internal API for external-store adapter authors. Not part of the public API; may change or be removed without notice. */
5
- type RuntimeExtras<T extends object> = {
5
+ export type RuntimeExtras<T extends object> = {
6
6
  provide: (value: T) => T;
7
7
  is: (extras: unknown) => extras is T;
8
8
  tryGet: (extras: unknown) => T | undefined;
@@ -14,9 +14,8 @@ type RuntimeExtras<T extends object> = {
14
14
  };
15
15
  };
16
16
  /** @deprecated Internal API for external-store adapter authors. Not part of the public API; may change or be removed without notice. */
17
- declare const unstable_createRuntimeExtrasFromBrand: <T extends object>(brand: RuntimeExtrasBrand<T>) => RuntimeExtras<T>;
17
+ export declare const unstable_createRuntimeExtrasFromBrand: <T extends object>(brand: RuntimeExtrasBrand<T>) => RuntimeExtras<T>;
18
18
  /** @deprecated Internal API for external-store adapter authors. Not part of the public API; may change or be removed without notice. */
19
- declare const createRuntimeExtras: <T extends object>(runtimeName: string) => RuntimeExtras<T>;
19
+ export declare const createRuntimeExtras: <T extends object>(runtimeName: string) => RuntimeExtras<T>;
20
20
  //#endregion
21
- export { RuntimeExtras, createRuntimeExtras, unstable_createRuntimeExtrasFromBrand };
22
21
  //# sourceMappingURL=createRuntimeExtras.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createRuntimeExtras.d.ts","names":[],"sources":["../../../src/react/runtimes/createRuntimeExtras.ts"],"mappings":";;;;KAUY,cAAc;EACxB,UAAU,OAAO,MAAM;EACvB,KAAK,oBAAoB,UAAU;EACnC,SAAS,oBAAoB;EAC7B,MAAM,QAAQ,oBAAoB;EAClC;QACM;KACH,GAAG,SAAS,QAAQ,MAAM,IAAI;KAC9B,GAAG,SAAS,QAAQ,MAAM,GAAG,UAAU,IAAI;;;;cAKnC,wCAAyC,kBACpD,OAAO,mBAAmB,OACzB,cAAc;;cA0BJ,sBAAuB,kBAClC,wBACC,cAAc"}
1
+ {"version":3,"file":"createRuntimeExtras.d.ts","names":[],"sources":["../../../src/react/runtimes/createRuntimeExtras.ts"],"mappings":";;;;YAUY,cAAc;EACxB,UAAU,OAAO,MAAM;EACvB,KAAK,oBAAoB,UAAU;EACnC,SAAS,oBAAoB;EAC7B,MAAM,QAAQ,oBAAoB;EAClC;QACM;KACH,GAAG,SAAS,QAAQ,MAAM,IAAI;KAC9B,GAAG,SAAS,QAAQ,MAAM,GAAG,UAAU,IAAI;;;;qBAKnC,wCAAyC,kBACpD,OAAO,mBAAmB,OACzB,cAAc;;qBA0BJ,sBAAuB,kBAClC,wBACC,cAAc"}
@@ -2,7 +2,7 @@ import { ThreadMessage } from "../../types/message.js";
2
2
  import { ExternalMessageConverterCallback, ExternalMessageConverterMessage, ExternalMessageConverterMetadata, JoinStrategy } from "../../runtime/utils/external-message-conversion.js";
3
3
  import "../../index.js";
4
4
  //#region src/react/runtimes/external-message-converter.d.ts
5
- type ExternalMessageConversionCache = {
5
+ export type ExternalMessageConversionCache = {
6
6
  readonly __brand: unique symbol;
7
7
  };
8
8
  /**
@@ -10,14 +10,14 @@ type ExternalMessageConversionCache = {
10
10
  *
11
11
  * Entries are keyed by source message identity and rebuilt whenever `callback` or `metadata` is a different object than on the previous call, so keep both referentially stable.
12
12
  */
13
- declare const createExternalMessageConversionCache: () => ExternalMessageConversionCache;
14
- declare namespace useExternalMessageConverter {
13
+ export declare const createExternalMessageConversionCache: () => ExternalMessageConversionCache;
14
+ export declare namespace useExternalMessageConverter {
15
15
  type Message = ExternalMessageConverterMessage;
16
16
  type Metadata = ExternalMessageConverterMetadata;
17
17
  type Callback<T> = ExternalMessageConverterCallback<T>;
18
18
  }
19
- declare const convertExternalMessages: <T extends WeakKey>(messages: T[], callback: useExternalMessageConverter.Callback<T>, isRunning: boolean, metadata: useExternalMessageConverter.Metadata, cache?: ExternalMessageConversionCache) => ThreadMessage[];
20
- declare const useExternalMessageConverter: <T extends WeakKey>({ callback, messages, isRunning, joinStrategy, metadata }: {
19
+ export declare const convertExternalMessages: <T extends WeakKey>(messages: T[], callback: useExternalMessageConverter.Callback<T>, isRunning: boolean, metadata: useExternalMessageConverter.Metadata, cache?: ExternalMessageConversionCache) => ThreadMessage[];
20
+ export declare const useExternalMessageConverter: <T extends WeakKey>({ callback, messages, isRunning, joinStrategy, metadata }: {
21
21
  callback: useExternalMessageConverter.Callback<T>;
22
22
  messages: T[];
23
23
  isRunning: boolean;
@@ -25,5 +25,5 @@ declare const useExternalMessageConverter: <T extends WeakKey>({ callback, messa
25
25
  metadata?: useExternalMessageConverter.Metadata | undefined;
26
26
  }) => ThreadMessage[];
27
27
  //#endregion
28
- export { ExternalMessageConversionCache, type JoinStrategy, convertExternalMessages, createExternalMessageConversionCache, useExternalMessageConverter };
28
+ export type { JoinStrategy };
29
29
  //# sourceMappingURL=external-message-converter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-message-converter.d.ts","names":[],"sources":["../../../src/react/runtimes/external-message-converter.ts"],"mappings":";;;;KAeY;WACD;;;;;;;cAQE,4CACP;kBAGW;OACH,UAAU;OACV,WAAW;OACX,SAAS,KAAK,iCAAiC;;cAGhD,0BAA2B,UAAU,SAChD,UAAU,KACV,UAAU,4BAA4B,SAAS,IAC/C,oBACA,UAAU,4BAA4B,UACtC,QAAQ,mCAAA;cAWG,8BAA+B,UAAU,WAAS,UAAA,UAAA,WAAA,cAAA;EAO7D,UAAU,4BAA4B,SAAS;EAC/C,UAAU;EACV;EACA,eAAe;EACf,WAAW,4BAA4B;MAAA"}
1
+ {"version":3,"file":"external-message-converter.d.ts","names":[],"sources":["../../../src/react/runtimes/external-message-converter.ts"],"mappings":";;;;YAeY;WACD;;;;;;;qBAQE,4CACP;yBAGW;OACH,UAAU;OACV,WAAW;OACX,SAAS,KAAK,iCAAiC;;qBAGhD,0BAA2B,UAAU,SAChD,UAAU,KACV,UAAU,4BAA4B,SAAS,IAC/C,oBACA,UAAU,4BAA4B,UACtC,QAAQ,mCAAA;qBAWG,8BAA+B,UAAU,WAAS,UAAA,UAAA,WAAA,cAAA;EAO7D,UAAU,4BAA4B,SAAS;EAC/C,UAAU;EACV;EACA,eAAe;EACf,WAAW,4BAA4B;MAAA"}
@@ -1,7 +1,6 @@
1
1
  import { ExternalStoreAdapter } from "../../runtimes/external-store/external-store-adapter.js";
2
2
  import { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
3
3
  //#region src/react/runtimes/useExternalStoreRuntime.d.ts
4
- declare const useExternalStoreRuntime: <T>(store: ExternalStoreAdapter<T>) => AssistantRuntime;
4
+ export declare const useExternalStoreRuntime: <T>(store: ExternalStoreAdapter<T>) => AssistantRuntime;
5
5
  //#endregion
6
- export { useExternalStoreRuntime };
7
6
  //# sourceMappingURL=useExternalStoreRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useExternalStoreRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useExternalStoreRuntime.ts"],"mappings":";;;cAUa,0BAA2B,GACtC,OAAO,qBAAqB,OAC3B"}
1
+ {"version":3,"file":"useExternalStoreRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useExternalStoreRuntime.ts"],"mappings":";;;qBAUa,0BAA2B,GACtC,OAAO,qBAAqB,OAC3B"}
@@ -1,6 +1,5 @@
1
1
  import { ExternalStoreSharedOptions } from "../../runtimes/external-store/external-store-shared-options.js";
2
2
  //#region src/react/runtimes/useExternalStoreSharedOptions.d.ts
3
- declare const useExternalStoreSharedOptions: (options: ExternalStoreSharedOptions) => ExternalStoreSharedOptions;
3
+ export declare const useExternalStoreSharedOptions: (options: ExternalStoreSharedOptions) => ExternalStoreSharedOptions;
4
4
  //#endregion
5
- export { useExternalStoreSharedOptions };
6
5
  //# sourceMappingURL=useExternalStoreSharedOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useExternalStoreSharedOptions.d.ts","names":[],"sources":["../../../src/react/runtimes/useExternalStoreSharedOptions.ts"],"mappings":";;cAKa,gCACX,SAAS,+BACR"}
1
+ {"version":3,"file":"useExternalStoreSharedOptions.d.ts","names":[],"sources":["../../../src/react/runtimes/useExternalStoreSharedOptions.ts"],"mappings":";;qBAKa,gCACX,SAAS,+BACR"}
@@ -11,12 +11,12 @@ import { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
11
11
  import "../../index.js";
12
12
  import { AssistantCloud } from "assistant-cloud";
13
13
  //#region src/react/runtimes/useLocalRuntime.d.ts
14
- type LocalRuntimeOptions = Omit<LocalRuntimeOptionsBase, "adapters"> & {
14
+ export type LocalRuntimeOptions = Omit<LocalRuntimeOptionsBase, "adapters"> & {
15
15
  cloud?: AssistantCloud | undefined;
16
16
  initialMessages?: readonly ThreadMessageLike[] | undefined;
17
17
  adapters?: Omit<LocalRuntimeOptionsBase["adapters"], "chatModel"> | undefined;
18
18
  };
19
- declare const splitLocalRuntimeOptions: <T extends LocalRuntimeOptions>(options: T) => {
19
+ export declare const splitLocalRuntimeOptions: <T extends LocalRuntimeOptions>(options: T) => {
20
20
  localRuntimeOptions: {
21
21
  cloud: AssistantCloud | undefined;
22
22
  initialMessages: readonly ThreadMessageLike[] | undefined;
@@ -38,7 +38,6 @@ declare const splitLocalRuntimeOptions: <T extends LocalRuntimeOptions>(options:
38
38
  };
39
39
  otherOptions: Omit<T, "adapters" | "maxSteps" | "unstable_humanToolNames" | "unstable_enableMessageQueue" | "unstable_queueClearOnRewind" | "unstable_queueClearOnCancel" | "cloud" | "initialMessages">;
40
40
  };
41
- declare const useLocalRuntime: (chatModel: ChatModelAdapter, { cloud, ...options }?: LocalRuntimeOptions) => AssistantRuntime;
41
+ export declare const useLocalRuntime: (chatModel: ChatModelAdapter, { cloud, ...options }?: LocalRuntimeOptions) => AssistantRuntime;
42
42
  //#endregion
43
- export { LocalRuntimeOptions, splitLocalRuntimeOptions, useLocalRuntime };
44
43
  //# sourceMappingURL=useLocalRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"mappings":";;;;;;;;;;;;;KAcY,sBAAsB,KAAK;EACrC,QAAQ;EACR,2BAA2B;EAC3B,WAAW,KAAK;;cA2DL,2BAA4B,UAAU,qBACjD,SAAS;;;;;;;;;;;;;;;;;;;;;;cA6BE,kBACX,WAAW,oBACX,UAAA,YAAuB,wBACtB"}
1
+ {"version":3,"file":"useLocalRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"mappings":";;;;;;;;;;;;;YAcY,sBAAsB,KAAK;EACrC,QAAQ;EACR,2BAA2B;EAC3B,WAAW,KAAK;;qBA2DL,2BAA4B,UAAU,qBACjD,SAAS;;;;;;;;;;;;;;;;;;;;;;qBA6BE,kBACX,WAAW,oBACX,UAAA,YAAuB,wBACtB"}
@@ -1,7 +1,6 @@
1
1
  import { RemoteThreadListOptions } from "../../runtimes/remote-thread-list/types.js";
2
2
  import { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
3
3
  //#region src/react/runtimes/useRemoteThreadListRuntime.d.ts
4
- declare const useRemoteThreadListRuntime: (options: RemoteThreadListOptions) => AssistantRuntime;
4
+ export declare const useRemoteThreadListRuntime: (options: RemoteThreadListOptions) => AssistantRuntime;
5
5
  //#endregion
6
- export { useRemoteThreadListRuntime };
7
6
  //# sourceMappingURL=useRemoteThreadListRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRemoteThreadListRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useRemoteThreadListRuntime.ts"],"mappings":";;;cAkFa,6BACX,SAAS,4BACR"}
1
+ {"version":3,"file":"useRemoteThreadListRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useRemoteThreadListRuntime.ts"],"mappings":";;;qBAmFa,6BACX,SAAS,4BACR"}
@@ -4,7 +4,7 @@ import { AssistantRuntimeImpl } from "../../runtime/api/assistant-runtime.js";
4
4
  import { useSubscribable } from "../../store/runtime-clients/useSubscribable.js";
5
5
  import { RemoteThreadListThreadListRuntimeCore } from "./RemoteThreadListThreadListRuntimeCore.js";
6
6
  import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
7
- import { useCallback, useEffect, useEffectEvent, useInsertionEffect, useMemo, useRef, useState } from "@assistant-ui/tap/react-shim";
7
+ import { useCallback, useEffect, useEffectEvent, useInsertionEffect, useLayoutEffect, useMemo, useRef, useState } from "@assistant-ui/tap/react-shim";
8
8
  import { useAui } from "@assistant-ui/store";
9
9
  //#region src/react/runtimes/useRemoteThreadListRuntime.ts
10
10
  var RemoteThreadListRuntimeCore = class extends BaseAssistantRuntimeCore {
@@ -94,7 +94,7 @@ const useRemoteThreadListRuntimeImpl = (options) => {
94
94
  };
95
95
  const useRemoteThreadListRuntime = (options) => {
96
96
  const [runtimeHookStore] = useState(() => new WritableSubscribable(options.runtimeHook));
97
- useEffect(() => {
97
+ useLayoutEffect(() => {
98
98
  runtimeHookStore.setState(options.runtimeHook);
99
99
  }, [runtimeHookStore, options.runtimeHook]);
100
100
  const initialThreadIdRef = useRef(options.initialThreadId);
@@ -1 +1 @@
1
- {"version":3,"file":"useRemoteThreadListRuntime.js","names":["useState","useEffect","useInsertionEffect","useMemo","useRef","useCallback","useEffectEvent","BaseAssistantRuntimeCore","AssistantRuntimeImpl","RemoteThreadListOptions","AssistantRuntimeCore","AssistantRuntime","RemoteThreadListThreadListRuntimeCore","WritableSubscribable","useSubscribable","useAui","RemoteThreadListRuntimeCore","threads","constructor","options","_contextProvider","RenderComponent","__internal_RenderComponent","useRemoteThreadListRuntimeImpl","$","_c","t0","runtime","t1","queueMicrotask","__internal_dispose","t2","t3","__internal_setOptions","__internal_load","t4","t5","window","document","reloadAfterError","loadError","undefined","reload","reloadAfterVisible","visibilityState","addEventListener","removeEventListener","t6","t7","useRemoteThreadListRuntime","runtimeHookStore","runtimeHook","setState","initialThreadIdRef","initialThreadId","stableRuntimeHook","useCommittedRuntimeHook","subscribe","getState","getServerSnapshot","onThreadIdChange","threadId","stableOptions","adapter","allowNesting","current","aui","isNested","threadListItem","source","Error"],"sources":["../../../src/react/runtimes/useRemoteThreadListRuntime.ts"],"sourcesContent":["import {\n useState,\n useEffect,\n useInsertionEffect,\n useMemo,\n useRef,\n useCallback,\n useEffectEvent,\n} from \"react\";\nimport { BaseAssistantRuntimeCore } from \"../../runtime/base/base-assistant-runtime-core\";\nimport { AssistantRuntimeImpl } from \"../../runtime/api/assistant-runtime\";\nimport type { RemoteThreadListOptions } from \"../../runtimes/remote-thread-list/types\";\nimport type { AssistantRuntimeCore } from \"../../runtime/interfaces/assistant-runtime-core\";\nimport type { AssistantRuntime } from \"../../runtime/api/assistant-runtime\";\nimport { RemoteThreadListThreadListRuntimeCore } from \"./RemoteThreadListThreadListRuntimeCore\";\nimport { WritableSubscribable } from \"../../subscribable/subscribable\";\nimport { useSubscribable } from \"../../store/runtime-clients/useSubscribable\";\nimport { useAui } from \"@assistant-ui/store\";\n\nclass RemoteThreadListRuntimeCore\n extends BaseAssistantRuntimeCore\n implements AssistantRuntimeCore\n{\n public readonly threads;\n\n constructor(options: RemoteThreadListOptions) {\n super();\n this.threads = new RemoteThreadListThreadListRuntimeCore(\n options,\n this._contextProvider,\n );\n }\n\n public get RenderComponent() {\n return this.threads.__internal_RenderComponent;\n }\n}\n\nconst useRemoteThreadListRuntimeImpl = (\n options: RemoteThreadListOptions,\n): AssistantRuntime => {\n const [runtime] = useState(() => new RemoteThreadListRuntimeCore(options));\n\n // Insertion-effect cleanup runs only when React deletes the fiber, so a\n // hidden <Activity> or a re-suspended boundary keeps the threads alive; the\n // disposal is deferred to a microtask because it notifies subscribers and\n // React forbids scheduling updates from an insertion effect.\n useInsertionEffect(\n () => () => queueMicrotask(() => runtime.threads.__internal_dispose()),\n [runtime],\n );\n\n useEffect(() => {\n runtime.threads.__internal_setOptions(options);\n runtime.threads.__internal_load();\n }, [runtime, options]);\n\n useEffect(() => {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n const reloadAfterError = () => {\n if (runtime.threads.loadError !== undefined) {\n void runtime.threads.reload();\n }\n };\n const reloadAfterVisible = () => {\n if (document.visibilityState === \"visible\") reloadAfterError();\n };\n\n window.addEventListener(\"online\", reloadAfterError);\n document.addEventListener(\"visibilitychange\", reloadAfterVisible);\n return () => {\n window.removeEventListener(\"online\", reloadAfterError);\n document.removeEventListener(\"visibilitychange\", reloadAfterVisible);\n };\n }, [runtime]);\n\n return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);\n};\n\nexport const useRemoteThreadListRuntime = (\n options: RemoteThreadListOptions,\n): AssistantRuntime => {\n const [runtimeHookStore] = useState(\n () => new WritableSubscribable(options.runtimeHook),\n );\n useEffect(() => {\n runtimeHookStore.setState(options.runtimeHook);\n }, [runtimeHookStore, options.runtimeHook]);\n\n const initialThreadIdRef = useRef(options.initialThreadId);\n\n // Thread resources subscribe to the store rather than reading a ref, so a\n // hook published at commit reaches exactly the resources that use it and an\n // abandoned render publishes nothing. The store pins its server snapshot to\n // the constructor value for hydration, which tap reads on any never-mounted\n // fiber, so the live state serves as the server snapshot here.\n const stableRuntimeHook = useCallback(\n function useCommittedRuntimeHook() {\n return useSubscribable({\n subscribe: runtimeHookStore.subscribe,\n getState: runtimeHookStore.getState,\n getServerSnapshot: runtimeHookStore.getState,\n })();\n },\n [runtimeHookStore],\n );\n\n const onThreadIdChange = useEffectEvent((threadId: string | undefined) => {\n return options.onThreadIdChange?.(threadId);\n });\n\n const stableOptions = useMemo<RemoteThreadListOptions>(\n () => ({\n adapter: options.adapter,\n allowNesting: options.allowNesting,\n threadId: options.threadId,\n initialThreadId: initialThreadIdRef.current,\n runtimeHook: stableRuntimeHook,\n onThreadIdChange,\n }),\n [\n options.adapter,\n options.allowNesting,\n options.threadId,\n stableRuntimeHook,\n ],\n );\n\n const aui = useAui();\n const isNested = aui.threadListItem.source !== null;\n\n if (isNested) {\n if (!stableOptions.allowNesting) {\n throw new Error(\n \"useRemoteThreadListRuntime cannot be nested inside another RemoteThreadListRuntime. \" +\n \"Set allowNesting: true to allow nesting (the inner runtime will become a no-op).\",\n );\n }\n\n // If allowNesting is true and already inside a thread list context,\n // just call the runtimeHook directly (no-op behavior)\n return options.runtimeHook();\n }\n\n const runtime = useRemoteThreadListRuntimeImpl(stableOptions);\n\n return runtime;\n};\n"],"mappings":";;;;;;;;;AAmBA,IAAMgB,8BAAN,cACUT,yBAEV;CACE;CAEAW,YAAYC,SAAkC;EAC5C,MAAM;EACN,KAAKF,UAAU,IAAIL,sCACjBO,SACA,KAAKC,gBACP;CACF;CAEA,IAAWC,kBAAkB;EAC3B,OAAO,KAAKJ,QAAQK;CACtB;AACF;AAEA,MAAMC,kCAAiCJ,YAAA;CAAA,MAAAK,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAF,EAAA,OAAAL,SAAA;EAGVO,WAAM,IAAIV,4BAA4BG,OAAO;EAACK,EAAA,KAAAL;EAAAK,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAAzE,MAAA,CAAAG,WAAkB3B,SAAS0B,EAA8C;CAAE,IAAAE;CAAA,IAAAJ,EAAA,OAAAG,QAAAV,SAAA;EAOzEW,iBAAYC,qBAAqBF,QAAOV,QAAQa,mBAAoB,CAAC;EAACN,EAAA,KAAAG,QAAAV;EAAAO,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,IAAAO;CAAA,IAAAP,EAAA,OAAAG,SAAA;EACtEI,KAAA,CAACJ,OAAO;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAFXtB,mBACE0B,IACAG,EACF;CAAC,IAAAC;CAAA,IAAAR,EAAA,OAAAL,WAAAK,EAAA,OAAAG,QAAAV,SAAA;EAESe,WAAA;GACRL,QAAOV,QAAQgB,sBAAuBd,OAAO;GAC7CQ,QAAOV,QAAQiB,gBAAiB;EAAC;EAClCV,EAAA,KAAAL;EAAAK,EAAA,KAAAG,QAAAV;EAAAO,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAW;CAAA,IAAAX,EAAA,OAAAL,WAAAK,EAAA,QAAAG,SAAA;EAAEQ,KAAA,CAACR,SAASR,OAAO;EAACK,EAAA,KAAAL;EAAAK,EAAA,MAAAG;EAAAH,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAHrBvB,UAAU+B,IAGPG,EAAkB;CAAC,IAAAC;CAAA,IAAAZ,EAAA,QAAAG,QAAAV,SAAA;EAEZmB,WAAA;GACR,IAAI,OAAOC,WAAW,eAAe,OAAOC,aAAa,aAAW;GAIpE,MAAAC,yBAAyB;IACvB,IAAIZ,QAAOV,QAAQuB,cAAeC,KAAAA,GAC3Bd,QAAOV,QAAQyB,OAAQ;GAC7B;GAEH,MAAAC,2BAA2B;IACzB,IAAIL,SAAQM,oBAAqB,WAAWL,iBAAiB;GAAE;GAGjEF,OAAMQ,iBAAkB,UAAUN,gBAAgB;GAClDD,SAAQO,iBAAkB,oBAAoBF,kBAAkB;GAAC,aAC1D;IACLN,OAAMS,oBAAqB,UAAUP,gBAAgB;IACrDD,SAAQQ,oBAAqB,oBAAoBH,kBAAkB;GAAC;EACrE;EACFnB,EAAA,MAAAG,QAAAV;EAAAO,EAAA,MAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,IAAAuB;CAAA,IAAAvB,EAAA,QAAAG,SAAA;EAAEoB,KAAA,CAACpB,OAAO;EAACH,EAAA,MAAAG;EAAAH,EAAA,MAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CApBZvB,UAAUmC,IAoBPW,EAAS;CAAC,IAAAC;CAAA,IAAAxB,EAAA,QAAAG,SAAA;EAEQqB,KAAA,IAAIxC,qBAAqBmB,OAAO;EAACH,EAAA,MAAAG;EAAAH,EAAA,MAAAwB;CAAA,OAAAA,KAAAxB,EAAA;CAAA,OAAjCwB;AAAiC;AAGxD,MAAaC,8BACX9B,YACqB;CACrB,MAAM,CAAC+B,oBAAoBlD,eACnB,IAAIa,qBAAqBM,QAAQgC,WAAW,CACpD;CACAlD,gBAAgB;EACdiD,iBAAiBE,SAASjC,QAAQgC,WAAW;CAC/C,GAAG,CAACD,kBAAkB/B,QAAQgC,WAAW,CAAC;CAE1C,MAAME,qBAAqBjD,OAAOe,QAAQmC,eAAe;CAOzD,MAAMC,oBAAoBlD,YACxB,SAASmD,0BAA0B;EACjC,OAAO1C,gBAAgB;GACrB2C,WAAWP,iBAAiBO;GAC5BC,UAAUR,iBAAiBQ;GAC3BC,mBAAmBT,iBAAiBQ;EACtC,CAAC,CAAC,CAAC;CACL,GACA,CAACR,gBAAgB,CACnB;CAEA,MAAMU,mBAAmBtD,gBAAgBuD,aAAiC;EACxE,OAAO1C,QAAQyC,mBAAmBC,QAAQ;CAC5C,CAAC;CAED,MAAMC,gBAAgB3D,eACb;EACL4D,SAAS5C,QAAQ4C;EACjBC,cAAc7C,QAAQ6C;EACtBH,UAAU1C,QAAQ0C;EAClBP,iBAAiBD,mBAAmBY;EACpCd,aAAaI;EACbK;CACF,IACA;EACEzC,QAAQ4C;EACR5C,QAAQ6C;EACR7C,QAAQ0C;EACRN;CAAiB,CAErB;CAKA,IAHYxC,OACKmD,CAAG,CAACE,eAAeC,WAAW,MAEjC;EACZ,IAAI,CAACP,cAAcE,cACjB,MAAM,IAAIM,MACR,sKAEF;EAKF,OAAOnD,QAAQgC,YAAY;CAC7B;CAIA,OAFgB5B,+BAA+BuC,aAExCnC;AACT"}
1
+ {"version":3,"file":"useRemoteThreadListRuntime.js","names":["useState","useEffect","useInsertionEffect","useLayoutEffect","useMemo","useRef","useCallback","useEffectEvent","BaseAssistantRuntimeCore","AssistantRuntimeImpl","RemoteThreadListOptions","AssistantRuntimeCore","AssistantRuntime","RemoteThreadListThreadListRuntimeCore","WritableSubscribable","useSubscribable","useAui","RemoteThreadListRuntimeCore","threads","constructor","options","_contextProvider","RenderComponent","__internal_RenderComponent","useRemoteThreadListRuntimeImpl","$","_c","t0","runtime","t1","queueMicrotask","__internal_dispose","t2","t3","__internal_setOptions","__internal_load","t4","t5","window","document","reloadAfterError","loadError","undefined","reload","reloadAfterVisible","visibilityState","addEventListener","removeEventListener","t6","t7","useRemoteThreadListRuntime","runtimeHookStore","runtimeHook","setState","initialThreadIdRef","initialThreadId","stableRuntimeHook","useCommittedRuntimeHook","subscribe","getState","getServerSnapshot","onThreadIdChange","threadId","stableOptions","adapter","allowNesting","current","aui","isNested","threadListItem","source","Error"],"sources":["../../../src/react/runtimes/useRemoteThreadListRuntime.ts"],"sourcesContent":["import {\n useState,\n useEffect,\n useInsertionEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useCallback,\n useEffectEvent,\n} from \"react\";\nimport { BaseAssistantRuntimeCore } from \"../../runtime/base/base-assistant-runtime-core\";\nimport { AssistantRuntimeImpl } from \"../../runtime/api/assistant-runtime\";\nimport type { RemoteThreadListOptions } from \"../../runtimes/remote-thread-list/types\";\nimport type { AssistantRuntimeCore } from \"../../runtime/interfaces/assistant-runtime-core\";\nimport type { AssistantRuntime } from \"../../runtime/api/assistant-runtime\";\nimport { RemoteThreadListThreadListRuntimeCore } from \"./RemoteThreadListThreadListRuntimeCore\";\nimport { WritableSubscribable } from \"../../subscribable/subscribable\";\nimport { useSubscribable } from \"../../store/runtime-clients/useSubscribable\";\nimport { useAui } from \"@assistant-ui/store\";\n\nclass RemoteThreadListRuntimeCore\n extends BaseAssistantRuntimeCore\n implements AssistantRuntimeCore\n{\n public readonly threads;\n\n constructor(options: RemoteThreadListOptions) {\n super();\n this.threads = new RemoteThreadListThreadListRuntimeCore(\n options,\n this._contextProvider,\n );\n }\n\n public get RenderComponent() {\n return this.threads.__internal_RenderComponent;\n }\n}\n\nconst useRemoteThreadListRuntimeImpl = (\n options: RemoteThreadListOptions,\n): AssistantRuntime => {\n const [runtime] = useState(() => new RemoteThreadListRuntimeCore(options));\n\n // Insertion-effect cleanup runs only when React deletes the fiber, so a\n // hidden <Activity> or a re-suspended boundary keeps the threads alive; the\n // disposal is deferred to a microtask because it notifies subscribers and\n // React forbids scheduling updates from an insertion effect.\n useInsertionEffect(\n () => () => queueMicrotask(() => runtime.threads.__internal_dispose()),\n [runtime],\n );\n\n useEffect(() => {\n runtime.threads.__internal_setOptions(options);\n runtime.threads.__internal_load();\n }, [runtime, options]);\n\n useEffect(() => {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n const reloadAfterError = () => {\n if (runtime.threads.loadError !== undefined) {\n void runtime.threads.reload();\n }\n };\n const reloadAfterVisible = () => {\n if (document.visibilityState === \"visible\") reloadAfterError();\n };\n\n window.addEventListener(\"online\", reloadAfterError);\n document.addEventListener(\"visibilitychange\", reloadAfterVisible);\n return () => {\n window.removeEventListener(\"online\", reloadAfterError);\n document.removeEventListener(\"visibilitychange\", reloadAfterVisible);\n };\n }, [runtime]);\n\n return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);\n};\n\nexport const useRemoteThreadListRuntime = (\n options: RemoteThreadListOptions,\n): AssistantRuntime => {\n const [runtimeHookStore] = useState(\n () => new WritableSubscribable(options.runtimeHook),\n );\n // The layout phase re-renders hosted threads before this commit yields. An\n // insertion effect cannot notify subscribers, so descendant layout effects\n // of the same commit still see the previous hook.\n useLayoutEffect(() => {\n runtimeHookStore.setState(options.runtimeHook);\n }, [runtimeHookStore, options.runtimeHook]);\n\n const initialThreadIdRef = useRef(options.initialThreadId);\n\n // Thread resources subscribe to the store rather than reading a ref, so a\n // hook published at commit reaches exactly the resources that use it and an\n // abandoned render publishes nothing. The store pins its server snapshot to\n // the constructor value for hydration, which tap reads on any never-mounted\n // fiber, so the live state serves as the server snapshot here.\n const stableRuntimeHook = useCallback(\n function useCommittedRuntimeHook() {\n return useSubscribable({\n subscribe: runtimeHookStore.subscribe,\n getState: runtimeHookStore.getState,\n getServerSnapshot: runtimeHookStore.getState,\n })();\n },\n [runtimeHookStore],\n );\n\n const onThreadIdChange = useEffectEvent((threadId: string | undefined) => {\n return options.onThreadIdChange?.(threadId);\n });\n\n const stableOptions = useMemo<RemoteThreadListOptions>(\n () => ({\n adapter: options.adapter,\n allowNesting: options.allowNesting,\n threadId: options.threadId,\n initialThreadId: initialThreadIdRef.current,\n runtimeHook: stableRuntimeHook,\n onThreadIdChange,\n }),\n [\n options.adapter,\n options.allowNesting,\n options.threadId,\n stableRuntimeHook,\n ],\n );\n\n const aui = useAui();\n const isNested = aui.threadListItem.source !== null;\n\n if (isNested) {\n if (!stableOptions.allowNesting) {\n throw new Error(\n \"useRemoteThreadListRuntime cannot be nested inside another RemoteThreadListRuntime. \" +\n \"Set allowNesting: true to allow nesting (the inner runtime will become a no-op).\",\n );\n }\n\n // If allowNesting is true and already inside a thread list context,\n // just call the runtimeHook directly (no-op behavior)\n return options.runtimeHook();\n }\n\n const runtime = useRemoteThreadListRuntimeImpl(stableOptions);\n\n return runtime;\n};\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { RuntimeAdapters } from "../../runtimes/remote-thread-list/types.js";
2
2
  //#region src/react/runtimes/useRuntimeAdapters.d.ts
3
3
  declare const RuntimeAdaptersContext: import("react").Context<RuntimeAdapters | null>;
4
- declare const useRuntimeAdaptersProvider: <T>(adapters: RuntimeAdapters | null, fn: () => T) => T;
5
- declare const useRuntimeAdapters: () => RuntimeAdapters | null;
6
- declare const useStableRuntimeAdapters: (adapters: RuntimeAdapters | null | undefined) => RuntimeAdapters | null;
4
+ export declare const useRuntimeAdaptersProvider: <T>(adapters: RuntimeAdapters | null, fn: () => T) => T;
5
+ export declare const useRuntimeAdapters: () => RuntimeAdapters | null;
6
+ export declare const useStableRuntimeAdapters: (adapters: RuntimeAdapters | null | undefined) => RuntimeAdapters | null;
7
7
  //#endregion
8
- export { RuntimeAdaptersContext, useRuntimeAdapters, useRuntimeAdaptersProvider, useStableRuntimeAdapters };
8
+ export { RuntimeAdaptersContext };
9
9
  //# sourceMappingURL=useRuntimeAdapters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRuntimeAdapters.d.ts","names":[],"sources":["../../../src/react/runtimes/useRuntimeAdapters.ts"],"mappings":";;cAKM,wCAAsB,QAAA;cAEf,6BAA8B,GACzC,UAAU,wBACV,UAAU,MACT;cAEU,0BAAkB;cAQlB,2BACX,UAAU,uCACT"}
1
+ {"version":3,"file":"useRuntimeAdapters.d.ts","names":[],"sources":["../../../src/react/runtimes/useRuntimeAdapters.ts"],"mappings":";;cAKM,wCAAsB,QAAA;qBAEf,6BAA8B,GACzC,UAAU,wBACV,UAAU,MACT;qBAEU,0BAAkB;qBAQlB,2BACX,UAAU,uCACT"}
@@ -19,7 +19,7 @@ import { StreamingTimingAccessors, StreamingTimingOptions, StreamingTimingState
19
19
  * });
20
20
  * ```
21
21
  */
22
- declare const useStreamingTiming: <TMessage>(messages: readonly TMessage[], isRunning: boolean, accessors: StreamingTimingAccessors<TMessage>, options?: StreamingTimingOptions) => Record<string, MessageTiming>;
22
+ export declare const useStreamingTiming: <TMessage>(messages: readonly TMessage[], isRunning: boolean, accessors: StreamingTimingAccessors<TMessage>, options?: StreamingTimingOptions) => Record<string, MessageTiming>;
23
23
  //#endregion
24
- export { type StreamingTimingAccessors, type StreamingTimingOptions, type StreamingTimingState, useStreamingTiming };
24
+ export type { StreamingTimingAccessors, StreamingTimingOptions, StreamingTimingState };
25
25
  //# sourceMappingURL=useStreamingTiming.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStreamingTiming.d.ts","names":[],"sources":["../../../src/react/runtimes/useStreamingTiming.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;cAmCa,qBAAsB,UACjC,mBAAmB,YACnB,oBACA,WAAW,yBAAyB,WACpC,UAAU,2BACT,eAAe"}
1
+ {"version":3,"file":"useStreamingTiming.d.ts","names":[],"sources":["../../../src/react/runtimes/useStreamingTiming.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;qBAmCa,qBAAsB,UACjC,mBAAmB,YACnB,oBACA,WAAW,yBAAyB,WACpC,UAAU,2BACT,eAAe"}