@assistant-ui/core 0.3.20 → 0.3.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (905) hide show
  1. package/dist/adapters/attachment.d.ts +42 -34
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/attachment.js +51 -21
  4. package/dist/adapters/attachment.js.map +1 -1
  5. package/dist/adapters/directive-formatter.d.ts +1 -3
  6. package/dist/adapters/directive-formatter.d.ts.map +1 -1
  7. package/dist/adapters/feedback.d.ts +6 -7
  8. package/dist/adapters/feedback.d.ts.map +1 -1
  9. package/dist/adapters/index.d.ts +14 -9
  10. package/dist/adapters/index.d.ts.map +1 -0
  11. package/dist/adapters/index.js +1 -1
  12. package/dist/adapters/speech.d.ts +57 -58
  13. package/dist/adapters/speech.d.ts.map +1 -1
  14. package/dist/adapters/speech.js +16 -2
  15. package/dist/adapters/speech.js.map +1 -1
  16. package/dist/adapters/suggestion.d.ts +14 -16
  17. package/dist/adapters/suggestion.d.ts.map +1 -1
  18. package/dist/adapters/thread-history.d.ts +54 -51
  19. package/dist/adapters/thread-history.d.ts.map +1 -1
  20. package/dist/adapters/trigger.d.ts +7 -9
  21. package/dist/adapters/trigger.d.ts.map +1 -1
  22. package/dist/adapters/voice.d.ts +46 -40
  23. package/dist/adapters/voice.d.ts.map +1 -1
  24. package/dist/adapters/voice.js +17 -3
  25. package/dist/adapters/voice.js.map +1 -1
  26. package/dist/index.d.ts +70 -56
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +6 -6
  29. package/dist/index.js.map +1 -1
  30. package/dist/internal/duplicate-detection.d.ts +0 -2
  31. package/dist/internal/duplicate-detection.d.ts.map +1 -1
  32. package/dist/internal.d.ts +27 -58
  33. package/dist/internal.d.ts.map +1 -0
  34. package/dist/internal.js +8 -6
  35. package/dist/model-context/frame/host.d.ts +19 -21
  36. package/dist/model-context/frame/host.d.ts.map +1 -1
  37. package/dist/model-context/frame/host.js +3 -1
  38. package/dist/model-context/frame/host.js.map +1 -1
  39. package/dist/model-context/frame/provider.d.ts +27 -28
  40. package/dist/model-context/frame/provider.d.ts.map +1 -1
  41. package/dist/model-context/frame/provider.js +6 -0
  42. package/dist/model-context/frame/provider.js.map +1 -1
  43. package/dist/model-context/frame/types.d.ts +19 -21
  44. package/dist/model-context/frame/types.d.ts.map +1 -1
  45. package/dist/model-context/frame/validate.d.ts +3 -0
  46. package/dist/model-context/frame/validate.d.ts.map +1 -0
  47. package/dist/model-context/frame/validate.js +26 -0
  48. package/dist/model-context/frame/validate.js.map +1 -0
  49. package/dist/model-context/interactable-composer-metadata.d.ts +42 -29
  50. package/dist/model-context/interactable-composer-metadata.d.ts.map +1 -1
  51. package/dist/model-context/interactable-composer-metadata.js +30 -6
  52. package/dist/model-context/interactable-composer-metadata.js.map +1 -1
  53. package/dist/model-context/registry-handles.d.ts +6 -8
  54. package/dist/model-context/registry-handles.d.ts.map +1 -1
  55. package/dist/model-context/registry.d.ts +14 -16
  56. package/dist/model-context/registry.d.ts.map +1 -1
  57. package/dist/model-context/tool-call-text.d.ts +13 -14
  58. package/dist/model-context/tool-call-text.d.ts.map +1 -1
  59. package/dist/model-context/tool.d.ts +10 -11
  60. package/dist/model-context/tool.d.ts.map +1 -1
  61. package/dist/model-context/types.d.ts +32 -34
  62. package/dist/model-context/types.d.ts.map +1 -1
  63. package/dist/react/AssistantProvider.d.ts +6 -8
  64. package/dist/react/AssistantProvider.d.ts.map +1 -1
  65. package/dist/react/AssistantRuntimeProvider.d.ts +23 -25
  66. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  67. package/dist/react/RuntimeAdapter.d.ts +2 -5
  68. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  69. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +24 -18
  70. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  71. package/dist/react/adapters/LocalStorageThreadListAdapter.js +58 -25
  72. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  73. package/dist/react/adapters/TitleGenerationAdapter.d.ts +2 -4
  74. package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
  75. package/dist/react/client/AdaptedRemoteThread.d.ts +5 -7
  76. package/dist/react/client/AdaptedRemoteThread.d.ts.map +1 -1
  77. package/dist/react/client/DataRenderers.d.ts +1 -3
  78. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  79. package/dist/react/client/InMemoryThreadList.d.ts +6 -8
  80. package/dist/react/client/InMemoryThreadList.d.ts.map +1 -1
  81. package/dist/react/client/Interactables.d.ts +2 -4
  82. package/dist/react/client/Interactables.d.ts.map +1 -1
  83. package/dist/react/client/Interactables.js +306 -101
  84. package/dist/react/client/Interactables.js.map +1 -1
  85. package/dist/react/client/RemoteThreadList.d.ts +32 -34
  86. package/dist/react/client/RemoteThreadList.d.ts.map +1 -1
  87. package/dist/react/client/RemoteThreadList.js +2 -1
  88. package/dist/react/client/RemoteThreadList.js.map +1 -1
  89. package/dist/react/client/Tools.d.ts +9 -11
  90. package/dist/react/client/Tools.d.ts.map +1 -1
  91. package/dist/react/client/Tools.js +4 -8
  92. package/dist/react/client/Tools.js.map +1 -1
  93. package/dist/react/client/interactable-model-context.d.ts +9 -10
  94. package/dist/react/client/interactable-model-context.d.ts.map +1 -1
  95. package/dist/react/client/interactable-model-context.js +32 -22
  96. package/dist/react/client/interactable-model-context.js.map +1 -1
  97. package/dist/react/index.d.ts +160 -122
  98. package/dist/react/index.d.ts.map +1 -0
  99. package/dist/react/index.js +5 -5
  100. package/dist/react/interactables-legacy/Interactables.d.ts +1 -3
  101. package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
  102. package/dist/react/interactables-legacy/Interactables.js +15 -8
  103. package/dist/react/interactables-legacy/Interactables.js.map +1 -1
  104. package/dist/react/interactables-legacy/interactable-model-context.d.ts +6 -8
  105. package/dist/react/interactables-legacy/interactable-model-context.d.ts.map +1 -1
  106. package/dist/react/interactables-legacy/interactable-model-context.js +13 -14
  107. package/dist/react/interactables-legacy/interactable-model-context.js.map +1 -1
  108. package/dist/react/interactables-legacy/scopes.d.ts +33 -36
  109. package/dist/react/interactables-legacy/scopes.d.ts.map +1 -1
  110. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts +6 -8
  111. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts.map +1 -1
  112. package/dist/react/interactables-legacy/useInteractableState.d.ts +6 -7
  113. package/dist/react/interactables-legacy/useInteractableState.d.ts.map +1 -1
  114. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts +23 -13
  115. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts.map +1 -1
  116. package/dist/react/interactables-shared/useInteractablePersistenceQueue.js +54 -25
  117. package/dist/react/interactables-shared/useInteractablePersistenceQueue.js.map +1 -1
  118. package/dist/react/model-context/define-mcp-toolkit.d.ts +11 -13
  119. package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -1
  120. package/dist/react/model-context/define-toolkit.d.ts +12 -4
  121. package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
  122. package/dist/react/model-context/external-tool.d.ts +0 -2
  123. package/dist/react/model-context/external-tool.d.ts.map +1 -1
  124. package/dist/react/model-context/human-tool.d.ts +0 -2
  125. package/dist/react/model-context/human-tool.d.ts.map +1 -1
  126. package/dist/react/model-context/interactableTool.d.ts +23 -25
  127. package/dist/react/model-context/interactableTool.d.ts.map +1 -1
  128. package/dist/react/model-context/makeAssistantDataUI.d.ts +4 -6
  129. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
  130. package/dist/react/model-context/makeAssistantTool.d.ts +4 -6
  131. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  132. package/dist/react/model-context/makeAssistantToolUI.d.ts +4 -6
  133. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  134. package/dist/react/model-context/provider-tool.d.ts +3 -4
  135. package/dist/react/model-context/provider-tool.d.ts.map +1 -1
  136. package/dist/react/model-context/stub-tool.d.ts +0 -2
  137. package/dist/react/model-context/stub-tool.d.ts.map +1 -1
  138. package/dist/react/model-context/toolbox.d.ts +37 -24
  139. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  140. package/dist/react/model-context/useAssistantContext.d.ts +2 -5
  141. package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
  142. package/dist/react/model-context/useAssistantDataUI.d.ts +5 -7
  143. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
  144. package/dist/react/model-context/useAssistantInstructions.d.ts +2 -5
  145. package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
  146. package/dist/react/model-context/useAssistantTool.d.ts +8 -11
  147. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  148. package/dist/react/model-context/useAssistantToolUI.d.ts +11 -13
  149. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  150. package/dist/react/model-context/useAuiToolOverrides.d.ts +2 -3
  151. package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -1
  152. package/dist/react/model-context/useInlineRender.d.ts +2 -4
  153. package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
  154. package/dist/react/model-context/useInteractable.d.ts +37 -36
  155. package/dist/react/model-context/useInteractable.d.ts.map +1 -1
  156. package/dist/react/model-context/useInteractableState.d.ts +10 -8
  157. package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
  158. package/dist/react/model-context/useInteractableVersions.d.ts +3 -5
  159. package/dist/react/model-context/useInteractableVersions.d.ts.map +1 -1
  160. package/dist/react/model-context/useToolArgsStatus.d.ts +5 -6
  161. package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
  162. package/dist/react/primitive-hooks/useActionBarCopy.d.ts +6 -8
  163. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  164. package/dist/react/primitive-hooks/useActionBarEdit.d.ts +2 -4
  165. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
  166. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +4 -6
  167. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
  168. package/dist/react/primitive-hooks/useActionBarReload.d.ts +2 -4
  169. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
  170. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +2 -4
  171. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
  172. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +2 -4
  173. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
  174. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +2 -4
  175. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
  176. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +2 -4
  177. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
  178. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +3 -5
  179. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
  180. package/dist/react/primitive-hooks/useComposerCancel.d.ts +2 -4
  181. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
  182. package/dist/react/primitive-hooks/useComposerDictate.d.ts +2 -4
  183. package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
  184. package/dist/react/primitive-hooks/useComposerSend.d.ts +3 -5
  185. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  186. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +1 -3
  187. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
  188. package/dist/react/primitive-hooks/useEditComposerSend.d.ts +2 -4
  189. package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
  190. package/dist/react/primitive-hooks/useMessageBranching.d.ts +4 -6
  191. package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
  192. package/dist/react/primitive-hooks/useMessageError.d.ts +0 -2
  193. package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
  194. package/dist/react/primitive-hooks/useMessageReload.d.ts +2 -4
  195. package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
  196. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +6 -8
  197. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
  198. package/dist/react/primitive-hooks/useSuggestionTrigger.js +4 -4
  199. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
  200. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +0 -2
  201. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
  202. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +0 -2
  203. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
  204. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +1 -3
  205. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
  206. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +1 -3
  207. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
  208. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +1 -3
  209. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
  210. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +1 -3
  211. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
  212. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +2 -4
  213. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
  214. package/dist/react/primitive-hooks/useThreadListNew.d.ts +1 -3
  215. package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
  216. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts +0 -2
  217. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts.map +1 -1
  218. package/dist/react/primitive-hooks/useThreadMessages.d.ts +1 -3
  219. package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
  220. package/dist/react/primitive-hooks/useVoice.d.ts +5 -7
  221. package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
  222. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +25 -26
  223. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  224. package/dist/react/primitives/composer/ComposerAttachments.d.ts +22 -23
  225. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  226. package/dist/react/primitives/composer/ComposerIf.d.ts +10 -9
  227. package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
  228. package/dist/react/primitives/composer/ComposerQueue.d.ts +11 -14
  229. package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
  230. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +26 -28
  231. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -1
  232. package/dist/react/primitives/generativeUI/GenerativeUI.js +16 -6
  233. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  234. package/dist/react/primitives/message/MessageAttachments.d.ts +26 -23
  235. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
  236. package/dist/react/primitives/message/MessageAttachments.js +14 -15
  237. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  238. package/dist/react/primitives/message/MessageGroupedParts.d.ts +120 -117
  239. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  240. package/dist/react/primitives/message/MessageGroupedParts.js +3 -3
  241. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  242. package/dist/react/primitives/message/MessageParts.d.ts +199 -185
  243. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  244. package/dist/react/primitives/message/MessageParts.js +124 -82
  245. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  246. package/dist/react/primitives/message/MessageQuote.d.ts +6 -8
  247. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
  248. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +2 -4
  249. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  250. package/dist/react/primitives/part/PartMessages.d.ts +13 -15
  251. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  252. package/dist/react/primitives/thread/ThreadMessages.d.ts +54 -56
  253. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  254. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +20 -21
  255. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  256. package/dist/react/primitives/thread/ThreadSuggestions.js +24 -5
  257. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
  258. package/dist/react/primitives/threadList/ThreadListItems.d.ts +22 -23
  259. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  260. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +4 -6
  261. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  262. package/dist/react/providers/AttachmentByIndexProvider.d.ts +3 -5
  263. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  264. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +3 -5
  265. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  266. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +2 -4
  267. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  268. package/dist/react/providers/MessageByIdProvider.d.ts +2 -4
  269. package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
  270. package/dist/react/providers/MessageByIndexProvider.d.ts +2 -4
  271. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
  272. package/dist/react/providers/PartByIndexProvider.d.ts +2 -4
  273. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
  274. package/dist/react/providers/QueueItemByIndexProvider.d.ts +2 -4
  275. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
  276. package/dist/react/providers/ReadonlyThreadProvider.d.ts +5 -7
  277. package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
  278. package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
  279. package/dist/react/providers/SuggestionByIndexProvider.d.ts +2 -4
  280. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  281. package/dist/react/providers/TextMessagePartProvider.d.ts +3 -5
  282. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  283. package/dist/react/providers/TextMessagePartProvider.js +5 -1
  284. package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
  285. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +3 -5
  286. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
  287. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +3 -6
  288. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  289. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +209 -219
  290. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  291. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +53 -39
  292. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  293. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +185 -196
  294. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  295. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +13 -4
  296. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  297. package/dist/react/runtimes/RemoteThreadResource.d.ts +14 -19
  298. package/dist/react/runtimes/RemoteThreadResource.d.ts.map +1 -1
  299. package/dist/react/runtimes/RemoteThreadResource.js +3 -1
  300. package/dist/react/runtimes/RemoteThreadResource.js.map +1 -1
  301. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +8 -9
  302. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  303. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts +9 -11
  304. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts.map +1 -1
  305. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts +4 -5
  306. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts.map +1 -1
  307. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js +9 -2
  308. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js.map +1 -1
  309. package/dist/react/runtimes/assistant-transport/runManager.d.ts +7 -9
  310. package/dist/react/runtimes/assistant-transport/runManager.d.ts.map +1 -1
  311. package/dist/react/runtimes/assistant-transport/runManager.js +4 -1
  312. package/dist/react/runtimes/assistant-transport/runManager.js.map +1 -1
  313. package/dist/react/runtimes/assistant-transport/types.d.ts +106 -100
  314. package/dist/react/runtimes/assistant-transport/types.d.ts.map +1 -1
  315. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts +3 -5
  316. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  317. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js +17 -6
  318. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  319. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts +2 -4
  320. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts.map +1 -1
  321. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts +1 -3
  322. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts.map +1 -1
  323. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +5 -7
  324. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  325. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +410 -213
  326. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  327. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +14 -16
  328. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  329. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +8 -4
  330. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  331. package/dist/react/runtimes/cloud/auiV0.d.ts +136 -123
  332. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  333. package/dist/react/runtimes/cloud/auiV0.js +60 -9
  334. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  335. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts +9 -10
  336. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts.map +1 -1
  337. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts +4 -5
  338. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts.map +1 -1
  339. package/dist/react/runtimes/cloud/sdkIdentity.d.ts +1 -3
  340. package/dist/react/runtimes/cloud/sdkIdentity.d.ts.map +1 -1
  341. package/dist/react/runtimes/cloud/sdkIdentity.js +1 -1
  342. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +2 -4
  343. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  344. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts +8 -9
  345. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  346. package/dist/react/runtimes/createMessageConverter.d.ts +14 -17
  347. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  348. package/dist/react/runtimes/createMessageConverter.js.map +1 -1
  349. package/dist/react/runtimes/createRuntimeExtras.d.ts +11 -13
  350. package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
  351. package/dist/react/runtimes/external-message-converter.d.ts +14 -18
  352. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  353. package/dist/react/runtimes/external-store-history-copy.d.ts +25 -0
  354. package/dist/react/runtimes/external-store-history-copy.d.ts.map +1 -0
  355. package/dist/react/runtimes/external-store-history-copy.js +148 -0
  356. package/dist/react/runtimes/external-store-history-copy.js.map +1 -0
  357. package/dist/react/runtimes/useExternalStoreRuntime.d.ts +2 -4
  358. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
  359. package/dist/react/runtimes/useExternalStoreRuntime.js +72 -35
  360. package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
  361. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +1 -3
  362. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
  363. package/dist/react/runtimes/useLocalRuntime.d.ts +26 -37
  364. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  365. package/dist/react/runtimes/useLocalRuntime.js +142 -34
  366. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  367. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +2 -4
  368. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  369. package/dist/react/runtimes/useRuntimeAdapters.d.ts +1 -3
  370. package/dist/react/runtimes/useRuntimeAdapters.d.ts.map +1 -1
  371. package/dist/react/runtimes/useStreamingTiming.d.ts +3 -5
  372. package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
  373. package/dist/react/types/MessagePartComponentTypes.d.ts +46 -43
  374. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  375. package/dist/react/types/scopes/dataRenderers.d.ts +8 -11
  376. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
  377. package/dist/react/types/scopes/interactables.d.ts +50 -49
  378. package/dist/react/types/scopes/interactables.d.ts.map +1 -1
  379. package/dist/react/types/scopes/tools.d.ts +17 -19
  380. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  381. package/dist/react/types/store-augmentation.d.ts +10 -11
  382. package/dist/react/types/store-augmentation.d.ts.map +1 -1
  383. package/dist/react/utils/getMessageQuote.d.ts +5 -6
  384. package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
  385. package/dist/react/utils/groupParts.d.ts +28 -29
  386. package/dist/react/utils/groupParts.d.ts.map +1 -1
  387. package/dist/react/utils/useJSONEqual.d.ts +1 -3
  388. package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
  389. package/dist/react/utils/useJSONSchemaDependency.d.ts +2 -4
  390. package/dist/react/utils/useJSONSchemaDependency.d.ts.map +1 -1
  391. package/dist/runtime/api/assistant-runtime.d.ts +26 -28
  392. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  393. package/dist/runtime/api/attachment-runtime.d.ts +46 -43
  394. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  395. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  396. package/dist/runtime/api/bindings.d.ts +31 -30
  397. package/dist/runtime/api/bindings.d.ts.map +1 -1
  398. package/dist/runtime/api/composer-runtime.d.ts +207 -193
  399. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  400. package/dist/runtime/api/composer-runtime.js +4 -0
  401. package/dist/runtime/api/composer-runtime.js.map +1 -1
  402. package/dist/runtime/api/message-part-runtime.d.ts +28 -26
  403. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  404. package/dist/runtime/api/message-part-runtime.js +22 -0
  405. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  406. package/dist/runtime/api/message-runtime.d.ts +87 -84
  407. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  408. package/dist/runtime/api/message-runtime.js +1 -1
  409. package/dist/runtime/api/message-runtime.js.map +1 -1
  410. package/dist/runtime/api/paths.d.ts +48 -50
  411. package/dist/runtime/api/paths.d.ts.map +1 -1
  412. package/dist/runtime/api/thread-list-item-runtime.d.ts +64 -66
  413. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  414. package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
  415. package/dist/runtime/api/thread-list-runtime.d.ts +73 -76
  416. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  417. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  418. package/dist/runtime/api/thread-runtime.d.ts +299 -300
  419. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  420. package/dist/runtime/api/thread-runtime.js +2 -1
  421. package/dist/runtime/api/thread-runtime.js.map +1 -1
  422. package/dist/runtime/base/base-assistant-runtime-core.d.ts +8 -10
  423. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  424. package/dist/runtime/base/base-composer-runtime-core.d.ts +149 -99
  425. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  426. package/dist/runtime/base/base-composer-runtime-core.js +400 -122
  427. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  428. package/dist/runtime/base/base-thread-runtime-core.d.ts +120 -108
  429. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  430. package/dist/runtime/base/base-thread-runtime-core.js +109 -41
  431. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  432. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +29 -29
  433. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  434. package/dist/runtime/base/default-edit-composer-runtime-core.js +10 -1
  435. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  436. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +27 -29
  437. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  438. package/dist/runtime/base/default-thread-composer-runtime-core.js +21 -6
  439. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  440. package/dist/runtime/branch/external-thread-branch-adapter.d.ts +14 -16
  441. package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
  442. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +7 -9
  443. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  444. package/dist/runtime/interfaces/composer-runtime-core.d.ts +88 -72
  445. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  446. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +63 -65
  447. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  448. package/dist/runtime/interfaces/thread-runtime-core.d.ts +210 -197
  449. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  450. package/dist/runtime/internal.d.ts +25 -20
  451. package/dist/runtime/internal.d.ts.map +1 -0
  452. package/dist/runtime/queue/external-thread-queue-adapter.d.ts +35 -37
  453. package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
  454. package/dist/runtime/queue/message-queue.d.ts +29 -31
  455. package/dist/runtime/queue/message-queue.d.ts.map +1 -1
  456. package/dist/runtime/queue/message-queue.js +1 -1
  457. package/dist/runtime/queue/queue-item.d.ts +5 -7
  458. package/dist/runtime/queue/queue-item.d.ts.map +1 -1
  459. package/dist/runtime/utils/abortable-thread-load.d.ts +7 -8
  460. package/dist/runtime/utils/abortable-thread-load.d.ts.map +1 -1
  461. package/dist/runtime/utils/attachment-add-operations.d.ts +13 -11
  462. package/dist/runtime/utils/attachment-add-operations.d.ts.map +1 -1
  463. package/dist/runtime/utils/attachment-add-operations.js +24 -2
  464. package/dist/runtime/utils/attachment-add-operations.js.map +1 -1
  465. package/dist/runtime/utils/attachment-send-operations.d.ts +12 -0
  466. package/dist/runtime/utils/attachment-send-operations.d.ts.map +1 -0
  467. package/dist/runtime/utils/attachment-send-operations.js +34 -0
  468. package/dist/runtime/utils/attachment-send-operations.js.map +1 -0
  469. package/dist/runtime/utils/auto-status.d.ts +4 -5
  470. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  471. package/dist/runtime/utils/auto-status.js +3 -5
  472. package/dist/runtime/utils/auto-status.js.map +1 -1
  473. package/dist/runtime/utils/chat-model-adapter.d.ts +26 -27
  474. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  475. package/dist/runtime/utils/external-message-conversion.d.ts +32 -32
  476. package/dist/runtime/utils/external-message-conversion.d.ts.map +1 -1
  477. package/dist/runtime/utils/external-message-conversion.js +3 -3
  478. package/dist/runtime/utils/external-message-conversion.js.map +1 -1
  479. package/dist/runtime/utils/external-store-message.d.ts +2 -4
  480. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  481. package/dist/runtime/utils/message-repository-session.d.ts +21 -23
  482. package/dist/runtime/utils/message-repository-session.d.ts.map +1 -1
  483. package/dist/runtime/utils/message-repository.d.ts +50 -51
  484. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  485. package/dist/runtime/utils/message-repository.js +8 -7
  486. package/dist/runtime/utils/message-repository.js.map +1 -1
  487. package/dist/runtime/utils/pending-tool-calls.d.ts +10 -11
  488. package/dist/runtime/utils/pending-tool-calls.d.ts.map +1 -1
  489. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +6 -8
  490. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
  491. package/dist/runtime/utils/runtime-extras-brand.d.ts +4 -6
  492. package/dist/runtime/utils/runtime-extras-brand.d.ts.map +1 -1
  493. package/dist/runtime/utils/stored-message-parts.d.ts +5 -5
  494. package/dist/runtime/utils/stored-message-parts.d.ts.map +1 -1
  495. package/dist/runtime/utils/stored-message-parts.js +22 -2
  496. package/dist/runtime/utils/stored-message-parts.js.map +1 -1
  497. package/dist/runtime/utils/streaming-timing.d.ts +19 -21
  498. package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
  499. package/dist/runtime/utils/thread-message-like.d.ts +36 -32
  500. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  501. package/dist/runtime/utils/thread-message-like.js +16 -6
  502. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  503. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts +4 -5
  504. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts.map +1 -1
  505. package/dist/runtime/utils/thread-runtime-lifecycle.js +31 -4
  506. package/dist/runtime/utils/thread-runtime-lifecycle.js.map +1 -1
  507. package/dist/runtime/utils/tool-call-tree.d.ts +6 -8
  508. package/dist/runtime/utils/tool-call-tree.d.ts.map +1 -1
  509. package/dist/runtime/utils/tool-interactions.d.ts +10 -0
  510. package/dist/runtime/utils/tool-interactions.d.ts.map +1 -0
  511. package/dist/runtime/utils/tool-interactions.js +92 -0
  512. package/dist/runtime/utils/tool-interactions.js.map +1 -0
  513. package/dist/runtimes/assistant-transport/utils.d.ts +0 -2
  514. package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
  515. package/dist/runtimes/external-store/external-store-adapter.d.ts +215 -198
  516. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  517. package/dist/runtimes/external-store/external-store-runtime-core.d.ts +5 -6
  518. package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
  519. package/dist/runtimes/external-store/external-store-runtime-core.js +4 -1
  520. package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
  521. package/dist/runtimes/external-store/external-store-shared-options.d.ts +1 -3
  522. package/dist/runtimes/external-store/external-store-shared-options.d.ts.map +1 -1
  523. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +38 -40
  524. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  525. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +2 -2
  526. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  527. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +117 -124
  528. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  529. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +44 -14
  530. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  531. package/dist/runtimes/external-store/thread-message-converter.d.ts +3 -5
  532. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  533. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts +94 -95
  534. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts.map +1 -1
  535. package/dist/runtimes/inert/InertThreadRuntimeCore.js +3 -0
  536. package/dist/runtimes/inert/InertThreadRuntimeCore.js.map +1 -1
  537. package/dist/runtimes/internal.d.ts +20 -16
  538. package/dist/runtimes/internal.d.ts.map +1 -0
  539. package/dist/runtimes/local/local-runtime-core.d.ts +6 -8
  540. package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
  541. package/dist/runtimes/local/local-runtime-options.d.ts +40 -42
  542. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  543. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +40 -42
  544. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  545. package/dist/runtimes/local/local-thread-runtime-core.d.ts +93 -97
  546. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  547. package/dist/runtimes/local/local-thread-runtime-core.js +178 -31
  548. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  549. package/dist/runtimes/local/should-continue.d.ts +1 -3
  550. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  551. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +76 -53
  552. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  553. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +28 -1
  554. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  555. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +11 -13
  556. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  557. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts +2 -4
  558. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts.map +1 -1
  559. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +1 -3
  560. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  561. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +33 -29
  562. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  563. package/dist/runtimes/remote-thread-list/optimistic-state.js +8 -3
  564. package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
  565. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +44 -46
  566. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  567. package/dist/runtimes/remote-thread-list/remote-thread-state.js +1 -1
  568. package/dist/runtimes/remote-thread-list/title-generation.d.ts +25 -26
  569. package/dist/runtimes/remote-thread-list/title-generation.d.ts.map +1 -1
  570. package/dist/runtimes/remote-thread-list/title.d.ts +3 -5
  571. package/dist/runtimes/remote-thread-list/title.d.ts.map +1 -1
  572. package/dist/runtimes/remote-thread-list/types.d.ts +111 -112
  573. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  574. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +144 -145
  575. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
  576. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +22 -7
  577. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  578. package/dist/store/clients/chain-of-thought-client.d.ts +7 -9
  579. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  580. package/dist/store/clients/external-thread.d.ts +53 -54
  581. package/dist/store/clients/external-thread.d.ts.map +1 -1
  582. package/dist/store/clients/external-thread.js +1256 -731
  583. package/dist/store/clients/external-thread.js.map +1 -1
  584. package/dist/store/clients/model-context-client.d.ts +1 -3
  585. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  586. package/dist/store/clients/no-op-composer-client.d.ts +2 -4
  587. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  588. package/dist/store/clients/no-op-composer-client.js +3 -1
  589. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  590. package/dist/store/clients/runtime-adapter.d.ts +1 -3
  591. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  592. package/dist/store/clients/single-thread-list.d.ts +3 -4
  593. package/dist/store/clients/single-thread-list.d.ts.map +1 -1
  594. package/dist/store/clients/submission-message.d.ts +8 -0
  595. package/dist/store/clients/submission-message.d.ts.map +1 -0
  596. package/dist/store/clients/submission-message.js +22 -0
  597. package/dist/store/clients/submission-message.js.map +1 -0
  598. package/dist/store/clients/suggestions.d.ts +5 -7
  599. package/dist/store/clients/suggestions.d.ts.map +1 -1
  600. package/dist/store/clients/thread-message-client.d.ts +10 -9
  601. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  602. package/dist/store/clients/thread-message-client.js +81 -82
  603. package/dist/store/clients/thread-message-client.js.map +1 -1
  604. package/dist/store/clients/thread-selection-events.d.ts +0 -2
  605. package/dist/store/clients/thread-selection-events.d.ts.map +1 -1
  606. package/dist/store/clients/thread-tasks.d.ts +4 -6
  607. package/dist/store/clients/thread-tasks.d.ts.map +1 -1
  608. package/dist/store/env.d.ts +0 -2
  609. package/dist/store/env.d.ts.map +1 -1
  610. package/dist/store/index.d.ts +33 -36
  611. package/dist/store/index.d.ts.map +1 -0
  612. package/dist/store/index.js +5 -5
  613. package/dist/store/internal.d.ts +12 -12
  614. package/dist/store/internal.d.ts.map +1 -0
  615. package/dist/store/internal.js +2 -2
  616. package/dist/store/primitive-predicates.d.ts +3 -4
  617. package/dist/store/primitive-predicates.d.ts.map +1 -1
  618. package/dist/store/primitive-predicates.js +9 -4
  619. package/dist/store/primitive-predicates.js.map +1 -1
  620. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +3 -5
  621. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  622. package/dist/store/runtime-clients/composer-runtime-client.d.ts +10 -12
  623. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  624. package/dist/store/runtime-clients/composer-runtime-client.js +65 -62
  625. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  626. package/dist/store/runtime-clients/handle-runtime-action.d.ts +0 -2
  627. package/dist/store/runtime-clients/handle-runtime-action.d.ts.map +1 -1
  628. package/dist/store/runtime-clients/handle-thread-list-action.d.ts +0 -2
  629. package/dist/store/runtime-clients/handle-thread-list-action.d.ts.map +1 -1
  630. package/dist/store/runtime-clients/liveRef.d.ts +1 -3
  631. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
  632. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +3 -5
  633. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  634. package/dist/store/runtime-clients/message-part-runtime-client.js +26 -16
  635. package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
  636. package/dist/store/runtime-clients/message-runtime-client.d.ts +9 -9
  637. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  638. package/dist/store/runtime-clients/message-runtime-client.js +121 -113
  639. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  640. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +4 -6
  641. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  642. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +5 -7
  643. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  644. package/dist/store/runtime-clients/thread-runtime-client.d.ts +3 -5
  645. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  646. package/dist/store/runtime-clients/thread-runtime-client.js +221 -158
  647. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  648. package/dist/store/runtime-clients/useSubscribable.d.ts +2 -4
  649. package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
  650. package/dist/store/scope-registration.d.ts +28 -29
  651. package/dist/store/scope-registration.d.ts.map +1 -1
  652. package/dist/store/scopes/attachment.d.ts +15 -17
  653. package/dist/store/scopes/attachment.d.ts.map +1 -1
  654. package/dist/store/scopes/chain-of-thought.d.ts +28 -29
  655. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  656. package/dist/store/scopes/composer.d.ts +141 -128
  657. package/dist/store/scopes/composer.d.ts.map +1 -1
  658. package/dist/store/scopes/message.d.ts +114 -107
  659. package/dist/store/scopes/message.d.ts.map +1 -1
  660. package/dist/store/scopes/model-context.d.ts +7 -9
  661. package/dist/store/scopes/model-context.d.ts.map +1 -1
  662. package/dist/store/scopes/part.d.ts +49 -45
  663. package/dist/store/scopes/part.d.ts.map +1 -1
  664. package/dist/store/scopes/queue-item.d.ts +18 -20
  665. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  666. package/dist/store/scopes/suggestion.d.ts +10 -12
  667. package/dist/store/scopes/suggestion.d.ts.map +1 -1
  668. package/dist/store/scopes/suggestions.d.ts +13 -15
  669. package/dist/store/scopes/suggestions.d.ts.map +1 -1
  670. package/dist/store/scopes/task.d.ts +23 -25
  671. package/dist/store/scopes/task.d.ts.map +1 -1
  672. package/dist/store/scopes/thread-list-item.d.ts +63 -65
  673. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  674. package/dist/store/scopes/thread.d.ts +192 -194
  675. package/dist/store/scopes/thread.d.ts.map +1 -1
  676. package/dist/store/scopes/threads.d.ts +45 -47
  677. package/dist/store/scopes/threads.d.ts.map +1 -1
  678. package/dist/subscribable/subscribable.d.ts +58 -53
  679. package/dist/subscribable/subscribable.d.ts.map +1 -1
  680. package/dist/subscribable/subscribable.js +35 -7
  681. package/dist/subscribable/subscribable.js.map +1 -1
  682. package/dist/types/attachment.d.ts +26 -27
  683. package/dist/types/attachment.d.ts.map +1 -1
  684. package/dist/types/augmentations.d.ts +4 -4
  685. package/dist/types/augmentations.d.ts.map +1 -1
  686. package/dist/types/directive.d.ts +11 -13
  687. package/dist/types/directive.d.ts.map +1 -1
  688. package/dist/types/error.d.ts +7 -8
  689. package/dist/types/error.d.ts.map +1 -1
  690. package/dist/types/index.d.ts +7 -7
  691. package/dist/types/index.d.ts.map +1 -0
  692. package/dist/types/message.d.ts +322 -284
  693. package/dist/types/message.d.ts.map +1 -1
  694. package/dist/types/message.js.map +1 -1
  695. package/dist/types/quote.d.ts +2 -4
  696. package/dist/types/quote.d.ts.map +1 -1
  697. package/dist/types/trigger.d.ts +8 -10
  698. package/dist/types/trigger.d.ts.map +1 -1
  699. package/dist/types/unsubscribe.d.ts +0 -2
  700. package/dist/types/unsubscribe.d.ts.map +1 -1
  701. package/dist/utils/abortable-iterable.d.ts +0 -2
  702. package/dist/utils/abortable-iterable.d.ts.map +1 -1
  703. package/dist/utils/composite-context-provider.d.ts +8 -11
  704. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  705. package/dist/utils/data-url.d.ts +10 -12
  706. package/dist/utils/data-url.d.ts.map +1 -1
  707. package/dist/utils/getGroupStatus.d.ts +17 -18
  708. package/dist/utils/getGroupStatus.d.ts.map +1 -1
  709. package/dist/utils/id.d.ts +0 -2
  710. package/dist/utils/id.d.ts.map +1 -1
  711. package/dist/utils/image-media-type.d.ts +0 -2
  712. package/dist/utils/image-media-type.d.ts.map +1 -1
  713. package/dist/utils/invoke-user-callback.d.ts +0 -2
  714. package/dist/utils/invoke-user-callback.d.ts.map +1 -1
  715. package/dist/utils/json/is-json-equal.d.ts +0 -2
  716. package/dist/utils/json/is-json-equal.d.ts.map +1 -1
  717. package/dist/utils/json/is-json.d.ts +1 -3
  718. package/dist/utils/json/is-json.d.ts.map +1 -1
  719. package/dist/utils/json/stable-stringify-tool-args.d.ts +1 -3
  720. package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -1
  721. package/dist/utils/normalizePartStatus.d.ts +2 -3
  722. package/dist/utils/normalizePartStatus.d.ts.map +1 -1
  723. package/dist/utils/normalizePartStatus.js +3 -2
  724. package/dist/utils/normalizePartStatus.js.map +1 -1
  725. package/dist/utils/notify-event-listeners.d.ts +1 -2
  726. package/dist/utils/notify-event-listeners.d.ts.map +1 -1
  727. package/dist/utils/record.d.ts +0 -2
  728. package/dist/utils/record.d.ts.map +1 -1
  729. package/dist/utils/silent-runtime-action.d.ts +0 -2
  730. package/dist/utils/silent-runtime-action.d.ts.map +1 -1
  731. package/dist/utils/text.d.ts +1 -3
  732. package/dist/utils/text.d.ts.map +1 -1
  733. package/dist/utils/wire-media.d.ts +0 -2
  734. package/dist/utils/wire-media.d.ts.map +1 -1
  735. package/package.json +11 -10
  736. package/src/adapters/attachment.test.ts +98 -1
  737. package/src/adapters/attachment.ts +70 -20
  738. package/src/adapters/speech.test.ts +94 -0
  739. package/src/adapters/speech.ts +16 -2
  740. package/src/adapters/thread-history.ts +16 -5
  741. package/src/adapters/voice.test.ts +169 -0
  742. package/src/adapters/voice.ts +25 -4
  743. package/src/index.ts +14 -2
  744. package/src/internal.ts +7 -0
  745. package/src/model-context/frame/host.test.ts +51 -1
  746. package/src/model-context/frame/host.ts +3 -1
  747. package/src/model-context/frame/provider.test.ts +61 -0
  748. package/src/model-context/frame/provider.ts +8 -1
  749. package/src/model-context/frame/validate.ts +57 -0
  750. package/src/model-context/interactable-composer-metadata.test.ts +82 -0
  751. package/src/model-context/interactable-composer-metadata.ts +45 -2
  752. package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +594 -0
  753. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +98 -35
  754. package/src/react/client/Interactables.test.ts +853 -1
  755. package/src/react/client/Interactables.ts +325 -45
  756. package/src/react/client/RemoteThreadList.initialize-failure.test.ts +124 -0
  757. package/src/react/client/RemoteThreadList.ts +6 -0
  758. package/src/react/client/Tools.ts +2 -3
  759. package/src/react/client/interactable-model-context.test.ts +56 -13
  760. package/src/react/client/interactable-model-context.ts +48 -23
  761. package/src/react/index.ts +2 -2
  762. package/src/react/interactables-legacy/Interactables.test.ts +212 -1
  763. package/src/react/interactables-legacy/Interactables.ts +25 -14
  764. package/src/react/interactables-legacy/interactable-model-context.ts +26 -24
  765. package/src/react/interactables-shared/useInteractablePersistenceQueue.test.tsx +22 -2
  766. package/src/react/interactables-shared/useInteractablePersistenceQueue.ts +63 -11
  767. package/src/react/primitive-hooks/useSuggestionTrigger.test.ts +33 -0
  768. package/src/react/primitive-hooks/useSuggestionTrigger.ts +7 -4
  769. package/src/react/primitives/generativeUI/GenerativeUI.test.tsx +124 -8
  770. package/src/react/primitives/generativeUI/GenerativeUI.tsx +35 -15
  771. package/src/react/primitives/message/MessageAttachments.test.tsx +2 -6
  772. package/src/react/primitives/message/MessageAttachments.tsx +14 -8
  773. package/src/react/primitives/message/MessageGroupedParts.test.tsx +151 -7
  774. package/src/react/primitives/message/MessageGroupedParts.tsx +19 -6
  775. package/src/react/primitives/message/MessageParts.test.tsx +84 -0
  776. package/src/react/primitives/message/MessageParts.tool-interaction.test.tsx +69 -0
  777. package/src/react/primitives/message/MessageParts.tsx +29 -8
  778. package/src/react/primitives/thread/ThreadSuggestions.test.tsx +97 -0
  779. package/src/react/primitives/thread/ThreadSuggestions.tsx +29 -6
  780. package/src/react/providers/ReadonlyThreadProvider.tsx +2 -2
  781. package/src/react/providers/TextMessagePartProvider.tsx +3 -0
  782. package/src/react/runtimes/RemoteThreadListHookInstanceManager.running.test.tsx +93 -0
  783. package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +160 -3
  784. package/src/react/runtimes/RemoteThreadListHookInstanceManager.title.test.tsx +38 -0
  785. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +73 -53
  786. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +19 -3
  787. package/src/react/runtimes/RemoteThreadResource.ts +5 -2
  788. package/src/react/runtimes/assistant-transport/replayBoundaryStream.test.ts +3 -1
  789. package/src/react/runtimes/assistant-transport/replayBoundaryStream.ts +10 -2
  790. package/src/react/runtimes/assistant-transport/runManager.ts +3 -0
  791. package/src/react/runtimes/assistant-transport/transport-parentid.test.tsx +57 -0
  792. package/src/react/runtimes/assistant-transport/transport-thread-id.test.tsx +571 -0
  793. package/src/react/runtimes/assistant-transport/types.ts +9 -1
  794. package/src/react/runtimes/assistant-transport/useAssistantTransport.spec.md +10 -0
  795. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.test.tsx +42 -0
  796. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.ts +33 -9
  797. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.integration.test.tsx +289 -0
  798. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.test.tsx +471 -0
  799. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.engagement.test.tsx +330 -0
  800. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.ts +78 -2
  801. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +361 -2
  802. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +571 -216
  803. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +25 -0
  804. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +7 -3
  805. package/src/react/runtimes/cloud/auiV0.ts +158 -9
  806. package/src/react/runtimes/cloud/auiV0DecodeSafely.test.ts +352 -1
  807. package/src/react/runtimes/createMessageConverter.ts +9 -3
  808. package/src/react/runtimes/external-store-history-copy.ts +223 -0
  809. package/src/react/runtimes/useExternalStoreRuntime.history-copy.test.tsx +483 -0
  810. package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +76 -1
  811. package/src/react/runtimes/useExternalStoreRuntime.ts +25 -5
  812. package/src/react/runtimes/useLocalRuntime.test.tsx +145 -1
  813. package/src/react/runtimes/useLocalRuntime.ts +8 -5
  814. package/src/react/types/MessagePartComponentTypes.ts +10 -0
  815. package/src/react/types/scopes/interactables.ts +3 -0
  816. package/src/runtime/api/attachment-runtime.ts +10 -5
  817. package/src/runtime/api/bindings.ts +6 -1
  818. package/src/runtime/api/composer-runtime.ts +29 -6
  819. package/src/runtime/api/message-part-runtime.test.ts +215 -0
  820. package/src/runtime/api/message-part-runtime.ts +40 -0
  821. package/src/runtime/api/message-runtime.test.ts +112 -2
  822. package/src/runtime/api/message-runtime.ts +10 -5
  823. package/src/runtime/api/thread-list-item-runtime.ts +5 -5
  824. package/src/runtime/api/thread-list-runtime.ts +3 -3
  825. package/src/runtime/api/thread-runtime.test.ts +59 -0
  826. package/src/runtime/api/thread-runtime.ts +21 -11
  827. package/src/runtime/base/base-composer-runtime-core.ts +548 -153
  828. package/src/runtime/base/base-thread-runtime-core.test.ts +744 -9
  829. package/src/runtime/base/base-thread-runtime-core.ts +154 -27
  830. package/src/runtime/base/default-edit-composer-runtime-core.ts +13 -1
  831. package/src/runtime/base/default-thread-composer-runtime-core.ts +29 -10
  832. package/src/runtime/interfaces/composer-runtime-core.ts +19 -0
  833. package/src/runtime/interfaces/thread-runtime-core.ts +22 -1
  834. package/src/runtime/utils/attachment-add-operations.ts +45 -2
  835. package/src/runtime/utils/attachment-send-operations.ts +54 -0
  836. package/src/runtime/utils/auto-status.test.ts +54 -0
  837. package/src/runtime/utils/auto-status.ts +3 -10
  838. package/src/runtime/utils/external-message-conversion.test.ts +48 -0
  839. package/src/runtime/utils/external-message-conversion.ts +3 -4
  840. package/src/runtime/utils/message-repository.test.ts +69 -1
  841. package/src/runtime/utils/message-repository.ts +14 -7
  842. package/src/runtime/utils/stored-message-parts.ts +43 -1
  843. package/src/runtime/utils/thread-message-like.test.ts +58 -0
  844. package/src/runtime/utils/thread-message-like.ts +72 -46
  845. package/src/runtime/utils/thread-runtime-lifecycle.test.ts +67 -0
  846. package/src/runtime/utils/thread-runtime-lifecycle.ts +42 -8
  847. package/src/runtime/utils/tool-interactions.test.ts +193 -0
  848. package/src/runtime/utils/tool-interactions.ts +147 -0
  849. package/src/runtimes/external-store/external-store-adapter.ts +22 -1
  850. package/src/runtimes/external-store/external-store-runtime-core.ts +10 -2
  851. package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +2 -2
  852. package/src/runtimes/external-store/external-store-thread-runtime-core.test.ts +49 -0
  853. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +76 -29
  854. package/src/runtimes/inert/InertThreadRuntimeCore.test.ts +127 -56
  855. package/src/runtimes/inert/InertThreadRuntimeCore.ts +10 -1
  856. package/src/runtimes/local/local-thread-runtime-core.edit-cancellation.test.ts +70 -0
  857. package/src/runtimes/local/local-thread-runtime-core.test.ts +1649 -108
  858. package/src/runtimes/local/local-thread-runtime-core.ts +301 -47
  859. package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +53 -1
  860. package/src/runtimes/remote-thread-list/optimistic-state.ts +8 -3
  861. package/src/runtimes/tool-invocations/EDGE_CASES.md +19 -4
  862. package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +392 -39
  863. package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +31 -8
  864. package/src/store/clients/external-thread.test.ts +145 -0
  865. package/src/store/clients/external-thread.ts +635 -131
  866. package/src/store/clients/model-context-client.test.ts +8 -8
  867. package/src/store/clients/no-op-composer-client.ts +2 -0
  868. package/src/store/clients/submission-message.ts +27 -0
  869. package/src/store/clients/thread-message-client.test.ts +39 -0
  870. package/src/store/clients/thread-message-client.ts +13 -6
  871. package/src/store/index.ts +2 -2
  872. package/src/store/internal.ts +1 -0
  873. package/src/store/primitive-predicates.test.ts +103 -0
  874. package/src/store/primitive-predicates.ts +15 -3
  875. package/src/store/runtime-clients/composer-runtime-client.ts +4 -3
  876. package/src/store/runtime-clients/message-part-runtime-client.test.ts +42 -0
  877. package/src/store/runtime-clients/message-part-runtime-client.ts +4 -0
  878. package/src/store/runtime-clients/message-runtime-client.ts +5 -0
  879. package/src/store/runtime-clients/thread-runtime-client.test.tsx +138 -5
  880. package/src/store/runtime-clients/thread-runtime-client.ts +46 -9
  881. package/src/store/scopes/composer.ts +22 -4
  882. package/src/store/scopes/message.ts +8 -0
  883. package/src/store/scopes/part.ts +8 -0
  884. package/src/subscribable/subscribable.test.ts +198 -1
  885. package/src/subscribable/subscribable.ts +49 -7
  886. package/src/tests/RemoteThreadListThreadListRuntimeCore-errors.test.ts +95 -1
  887. package/src/tests/auiV0Encode.test.ts +408 -1
  888. package/src/tests/base-composer-runtime-core-send.test.ts +722 -29
  889. package/src/tests/base-composer-runtime-core.test.ts +196 -0
  890. package/src/tests/composer-can-send.test.ts +98 -1
  891. package/src/tests/composer-submission.test.tsx +796 -0
  892. package/src/tests/default-edit-composer-runtime-core.test.ts +102 -2
  893. package/src/tests/external-store-thread-list-runtime-core.test.ts +111 -0
  894. package/src/tests/external-store-thread-runtime-core-adapter.test.ts +581 -1
  895. package/src/tests/external-store-thread-runtime-core.test.ts +186 -0
  896. package/src/tests/external-thread-attachments.test.tsx +741 -3
  897. package/src/tests/external-thread-isLast.test.tsx +69 -0
  898. package/src/tests/get-thread-state-isRunning.test.ts +2 -2
  899. package/src/tests/remote-thread-list-adapter-switch.test.ts +45 -1
  900. package/src/types/message.ts +49 -2
  901. package/src/utils/normalizePartStatus.ts +14 -1
  902. package/dist/tests/remote-thread-list-test-helpers.d.ts +0 -15
  903. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +0 -1
  904. package/dist/tests/remote-thread-list-test-helpers.js +0 -59
  905. package/dist/tests/remote-thread-list-test-helpers.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { isRecord } from "../../utils/json/is-json.js";
2
+ import { isStoredMessagePart, isStoredMessageRole, isStoredMessageStatus, parseStoredAttachment, parseStoredDate, parseStoredThreadSteps } from "../../runtime/utils/stored-message-parts.js";
2
3
  import { RuntimeAdapterProvider } from "../runtimes/RuntimeAdapterProvider.js";
3
- import { isStoredMessagePart, isStoredMessageRole, parseStoredAttachment, parseStoredDate } from "../../runtime/utils/stored-message-parts.js";
4
4
  import { createAssistantStream } from "assistant-stream";
5
5
  import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
6
6
  import { useEffect, useMemo, useRef, useState } from "@assistant-ui/tap/react-shim";
@@ -9,6 +9,15 @@ import { jsx } from "react/jsx-runtime";
9
9
  //#region src/react/adapters/LocalStorageThreadListAdapter.tsx
10
10
  var KeyedMutationQueue = class {
11
11
  tails = /* @__PURE__ */ new Map();
12
+ staleKeys = /* @__PURE__ */ new Set();
13
+ markStale(key) {
14
+ this.staleKeys.add(key);
15
+ }
16
+ async removeStale(key, storage) {
17
+ if (!this.staleKeys.has(key)) return;
18
+ await storage.removeItem(key);
19
+ this.staleKeys.delete(key);
20
+ }
12
21
  run(key, mutation) {
13
22
  const previous = this.tails.get(key);
14
23
  const result = previous ? previous.then(mutation) : mutation();
@@ -75,8 +84,10 @@ const parseStoredThreadMessage = (value, depth) => {
75
84
  if (!isRecord(metadata) || !isRecord(metadata.custom)) return null;
76
85
  const modality = isMessageModality(metadata.modality) ? metadata.modality : void 0;
77
86
  if (value.role === "assistant") {
78
- const status = value.status;
79
- if (!isRecord(status) || typeof status.type !== "string") return null;
87
+ const status = isStoredMessageStatus(value.status) ? value.status : {
88
+ type: "complete",
89
+ reason: "unknown"
90
+ };
80
91
  const submittedFeedback = isRecord(metadata.submittedFeedback) ? metadata.submittedFeedback : void 0;
81
92
  const submittedFeedbackType = submittedFeedback?.type;
82
93
  const submittedFeedbackComment = submittedFeedback?.comment;
@@ -90,7 +101,7 @@ const parseStoredThreadMessage = (value, depth) => {
90
101
  unstable_state: metadata.unstable_state ?? null,
91
102
  unstable_annotations: Array.isArray(metadata.unstable_annotations) ? metadata.unstable_annotations : [],
92
103
  unstable_data: Array.isArray(metadata.unstable_data) ? metadata.unstable_data : [],
93
- steps: Array.isArray(metadata.steps) ? metadata.steps : [],
104
+ steps: parseStoredThreadSteps(metadata.steps),
94
105
  ...submittedFeedbackType === "positive" || submittedFeedbackType === "negative" ? { submittedFeedback: {
95
106
  type: submittedFeedbackType,
96
107
  ...typeof submittedFeedbackComment === "string" && submittedFeedbackComment !== "" ? { comment: submittedFeedbackComment } : void 0
@@ -183,33 +194,48 @@ var AsyncStorageHistoryAdapter = class {
183
194
  _messagesKey(remoteId) {
184
195
  return `${this.prefix}messages:${remoteId}`;
185
196
  }
197
+ _threadsKey() {
198
+ return `${this.prefix}threads`;
199
+ }
186
200
  async load() {
187
201
  const remoteId = this.aui.threadListItem.getState().remoteId;
188
202
  if (!remoteId) return { messages: [] };
189
203
  const raw = await this.storage.getItem(this._messagesKey(remoteId));
190
204
  return parseStoredMessageRepository(raw);
191
205
  }
192
- async append(item) {
206
+ async _upsert(item, moveHead) {
193
207
  const { remoteId } = await this.aui.threadListItem.initialize();
194
208
  const key = this._messagesKey(remoteId);
195
209
  await this.mutationQueue.run(key, async () => {
210
+ if (await this.mutationQueue.run(this._threadsKey(), async () => {
211
+ const raw = await this.storage.getItem(this._threadsKey());
212
+ const parsed = parseJSON(raw);
213
+ return Array.isArray(parsed) && !parsed.some((thread) => parseStoredThread(thread)?.remoteId === remoteId);
214
+ })) return;
196
215
  const raw = await this.storage.getItem(key);
197
216
  const repo = parseStoredMessageRepository(raw);
198
217
  const idx = repo.messages.findIndex((m) => m.message.id === item.message.id);
199
218
  if (idx >= 0) repo.messages[idx] = item;
200
219
  else repo.messages.push(item);
201
- repo.headId = item.message.id;
220
+ if (moveHead) repo.headId = item.message.id;
202
221
  await this.storage.setItem(key, JSON.stringify(repo));
203
222
  });
204
223
  }
224
+ async append(item) {
225
+ await this._upsert(item, true);
226
+ }
227
+ async update(item) {
228
+ await this._upsert(item, false);
229
+ }
205
230
  };
231
+ const createLocalStorageHistoryAdapter = (storage, getAui, prefix, mutationQueue = getMutationQueue(storage)) => new AsyncStorageHistoryAdapter(storage, getAui, prefix, mutationQueue);
206
232
  const useLocalStorageThreadAdapters = (storage, prefix, mutationQueue) => {
207
233
  const aui = useAui();
208
234
  const auiRef = useRef(aui);
209
235
  useEffect(() => {
210
236
  auiRef.current = aui;
211
237
  });
212
- const [history] = useState(() => new AsyncStorageHistoryAdapter(storage, () => auiRef.current, prefix, mutationQueue));
238
+ const [history] = useState(() => createLocalStorageHistoryAdapter(storage, () => auiRef.current, prefix, mutationQueue));
213
239
  return useMemo(() => ({ history }), [history]);
214
240
  };
215
241
  const createHistoryProvider = (storage, prefix, mutationQueue) => {
@@ -269,19 +295,23 @@ const createLocalStorageAdapter = (options) => {
269
295
  },
270
296
  async initialize(threadId) {
271
297
  const remoteId = threadId;
272
- return mutationQueue.run(threadsKey, async () => {
273
- const threads = await loadThreadMetadata();
274
- if (!threads.some((t) => t.remoteId === remoteId)) {
275
- threads.unshift({
298
+ const key = messagesKey(remoteId);
299
+ return mutationQueue.run(key, async () => {
300
+ await mutationQueue.removeStale(key, storage);
301
+ return mutationQueue.run(threadsKey, async () => {
302
+ const threads = await loadThreadMetadata();
303
+ if (!threads.some((t) => t.remoteId === remoteId)) {
304
+ threads.unshift({
305
+ remoteId,
306
+ status: "regular"
307
+ });
308
+ await saveThreadMetadata(threads);
309
+ }
310
+ return {
276
311
  remoteId,
277
- status: "regular"
278
- });
279
- await saveThreadMetadata(threads);
280
- }
281
- return {
282
- remoteId,
283
- externalId: void 0
284
- };
312
+ externalId: void 0
313
+ };
314
+ });
285
315
  });
286
316
  },
287
317
  async rename(remoteId, newTitle) {
@@ -305,12 +335,15 @@ const createLocalStorageAdapter = (options) => {
305
335
  });
306
336
  },
307
337
  async delete(remoteId) {
308
- await mutationQueue.run(threadsKey, async () => {
309
- const filtered = (await loadThreadMetadata()).filter((t) => t.remoteId !== remoteId);
310
- await saveThreadMetadata(filtered);
311
- });
312
338
  const key = messagesKey(remoteId);
313
- await mutationQueue.run(key, () => storage.removeItem(key));
339
+ await mutationQueue.run(key, async () => {
340
+ await mutationQueue.run(threadsKey, async () => {
341
+ const filtered = (await loadThreadMetadata()).filter((t) => t.remoteId !== remoteId);
342
+ await saveThreadMetadata(filtered);
343
+ });
344
+ mutationQueue.markStale(key);
345
+ await mutationQueue.removeStale(key, storage);
346
+ });
314
347
  },
315
348
  async fetch(threadId) {
316
349
  const thread = (await loadThreadMetadata()).find((t) => t.remoteId === threadId);
@@ -338,6 +371,6 @@ const createLocalStorageAdapter = (options) => {
338
371
  };
339
372
  };
340
373
  //#endregion
341
- export { createLocalStorageAdapter, parseStoredMessageRepository, parseStoredThreadMetadata };
374
+ export { createLocalStorageAdapter, createLocalStorageHistoryAdapter, parseStoredMessageRepository, parseStoredThreadMetadata };
342
375
 
343
376
  //# sourceMappingURL=LocalStorageThreadListAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStorageThreadListAdapter.js","names":["AssistantStream","createAssistantStream","FC","PropsWithChildren","useEffect","useMemo","useRef","useState","useAui","MessageModality","RemoteThreadInitializeResponse","RemoteThreadListAdapter","RemoteThreadListResponse","RemoteThreadMetadata","ThreadHistoryAdapter","ThreadMessage","RunConfig","ExportedMessageRepository","ExportedMessageRepositoryItem","isRecord","MAX_STORED_MESSAGE_DEPTH","isStoredMessagePart","isStoredMessageRole","parseStoredAttachment","parseStoredDate","RuntimeAdapterProvider","RuntimeAdapters","TitleGenerationAdapter","AsyncStorageLike","getItem","key","Promise","setItem","value","removeItem","KeyedMutationQueue","tails","Map","run","mutation","T","previous","get","result","then","tail","undefined","set","delete","mutationQueues","WeakMap","getMutationQueue","storage","queue","LocalStorageAdapterOptions","prefix","titleGenerator","StoredThreadMetadata","remoteId","externalId","status","title","custom","Record","StoredSystemMessage","Extract","role","StoredUserMessage","StoredAssistantMessage","parseJSON","raw","JSON","parse","parseStoredThread","messageModalities","voice","isMessageModality","Object","hasOwn","parseStoredMessageParts","content","depth","flatMap","part","type","messages","toolCall","Array","isArray","item","message","parseStoredThreadMessage","id","createdAt","metadata","modality","submittedFeedback","submittedFeedbackType","submittedFeedbackComment","comment","unstable_state","unstable_annotations","unstable_data","steps","timing","NonNullable","isOptimistic","attachments","attachment","length","parseStoredThreadMetadata","parsed","thread","parseStoredMessageRepositoryItem","parentId","runConfig","parseStoredMessageRepository","candidateMessages","parsedItem","acceptedIds","Set","has","add","headId","some","AsyncStorageHistoryAdapter","getAui","ReturnType","mutationQueue","constructor","aui","_messagesKey","load","threadListItem","getState","append","initialize","repo","idx","findIndex","m","push","stringify","useLocalStorageThreadAdapters","auiRef","current","history","createHistoryProvider","Provider","t0","$","_c","children","adapters","t1","createLocalStorageAdapter","options","threadsKey","messagesKey","threadId","loadThreadMetadata","saveThreadMetadata","threads","updateThreadMetadata","update","find","adapter","unstable_Provider","unstable_useAdapters","useLocalStorageAdapters","list","map","t","unshift","rename","newTitle","updateCustom","archive","unarchive","filtered","filter","fetch","Error","generateTitle","controller","appendText"],"sources":["../../../src/react/adapters/LocalStorageThreadListAdapter.tsx"],"sourcesContent":["import { type AssistantStream, createAssistantStream } from \"assistant-stream\";\nimport {\n type FC,\n type PropsWithChildren,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type {\n MessageModality,\n RemoteThreadInitializeResponse,\n RemoteThreadListAdapter,\n RemoteThreadListResponse,\n RemoteThreadMetadata,\n ThreadHistoryAdapter,\n ThreadMessage,\n RunConfig,\n} from \"../../index\";\nimport type {\n ExportedMessageRepository,\n ExportedMessageRepositoryItem,\n} from \"../../internal\";\nimport { isRecord } from \"../../utils/json/is-json\";\nimport {\n MAX_STORED_MESSAGE_DEPTH,\n isStoredMessagePart,\n isStoredMessageRole,\n parseStoredAttachment,\n parseStoredDate,\n} from \"../../runtime/utils/stored-message-parts\";\nimport {\n RuntimeAdapterProvider,\n type RuntimeAdapters,\n} from \"../runtimes/RuntimeAdapterProvider\";\nimport type { TitleGenerationAdapter } from \"./TitleGenerationAdapter\";\n\nexport type AsyncStorageLike = {\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n};\n\nclass KeyedMutationQueue {\n private readonly tails = new Map<string, Promise<void>>();\n\n run<T>(key: string, mutation: () => Promise<T>): Promise<T> {\n const previous = this.tails.get(key);\n const result = previous ? previous.then(mutation) : mutation();\n const tail = result.then(\n () => undefined,\n () => undefined,\n );\n\n this.tails.set(key, tail);\n void tail.then(() => {\n if (this.tails.get(key) === tail) this.tails.delete(key);\n });\n\n return result;\n }\n}\n\nconst mutationQueues = new WeakMap<AsyncStorageLike, KeyedMutationQueue>();\n\nconst getMutationQueue = (storage: AsyncStorageLike): KeyedMutationQueue => {\n let queue = mutationQueues.get(storage);\n if (!queue) {\n queue = new KeyedMutationQueue();\n mutationQueues.set(storage, queue);\n }\n return queue;\n};\n\ntype LocalStorageAdapterOptions = {\n storage: AsyncStorageLike;\n prefix?: string | undefined;\n titleGenerator?: TitleGenerationAdapter | undefined;\n};\n\ntype StoredThreadMetadata = {\n remoteId: string;\n externalId?: string;\n status: \"regular\" | \"archived\";\n title?: string;\n custom?: Record<string, unknown> | undefined;\n};\n\ntype StoredSystemMessage = Extract<ThreadMessage, { role: \"system\" }>;\ntype StoredUserMessage = Extract<ThreadMessage, { role: \"user\" }>;\ntype StoredAssistantMessage = Extract<ThreadMessage, { role: \"assistant\" }>;\n\nconst parseJSON = (raw: string | null): unknown => {\n if (!raw) return undefined;\n try {\n return JSON.parse(raw) as unknown;\n } catch {\n return undefined;\n }\n};\n\nconst parseStoredThread = (value: unknown): StoredThreadMetadata | null => {\n if (!isRecord(value) || typeof value.remoteId !== \"string\") return null;\n\n const status = value.status ?? \"regular\";\n if (status !== \"regular\" && status !== \"archived\") return null;\n\n return {\n remoteId: value.remoteId,\n status,\n ...(typeof value.externalId === \"string\"\n ? { externalId: value.externalId }\n : undefined),\n ...(typeof value.title === \"string\" ? { title: value.title } : undefined),\n ...(isRecord(value.custom) ? { custom: value.custom } : undefined),\n };\n};\n\nconst messageModalities = {\n voice: true,\n} satisfies Record<MessageModality, true>;\n\nconst isMessageModality = (value: unknown): value is MessageModality =>\n typeof value === \"string\" && Object.hasOwn(messageModalities, value);\n\nconst parseStoredMessageParts = (\n content: unknown[],\n depth: number,\n): unknown[] =>\n content.flatMap((part) => {\n if (!isStoredMessagePart(part)) return [];\n if (part.type !== \"tool-call\" || part.messages === undefined) return [part];\n\n const { messages, ...toolCall } = part;\n if (!Array.isArray(messages)) return [toolCall];\n return [\n {\n ...toolCall,\n messages: messages.flatMap((item) => {\n const message = parseStoredThreadMessage(item, depth + 1);\n return message ? [message] : [];\n }),\n },\n ];\n });\n\nconst parseStoredThreadMessage = (\n value: unknown,\n depth: number,\n): ThreadMessage | null => {\n if (depth > MAX_STORED_MESSAGE_DEPTH) return null;\n if (!isRecord(value) || typeof value.id !== \"string\") return null;\n if (!isStoredMessageRole(value.role)) return null;\n if (!Array.isArray(value.content)) return null;\n\n const createdAt = parseStoredDate(value.createdAt);\n if (!createdAt) return null;\n\n const metadata = value.metadata;\n if (!isRecord(metadata) || !isRecord(metadata.custom)) return null;\n\n const modality = isMessageModality(metadata.modality)\n ? metadata.modality\n : undefined;\n\n if (value.role === \"assistant\") {\n const status = value.status;\n if (!isRecord(status) || typeof status.type !== \"string\") return null;\n\n const submittedFeedback = isRecord(metadata.submittedFeedback)\n ? metadata.submittedFeedback\n : undefined;\n const submittedFeedbackType = submittedFeedback?.type;\n const submittedFeedbackComment = submittedFeedback?.comment;\n\n return {\n id: value.id,\n role: \"assistant\",\n content: parseStoredMessageParts(\n value.content,\n depth,\n ) as StoredAssistantMessage[\"content\"],\n status: status as StoredAssistantMessage[\"status\"],\n createdAt,\n metadata: {\n unstable_state: (metadata.unstable_state ??\n null) as StoredAssistantMessage[\"metadata\"][\"unstable_state\"],\n unstable_annotations: Array.isArray(metadata.unstable_annotations)\n ? (metadata.unstable_annotations as StoredAssistantMessage[\"metadata\"][\"unstable_annotations\"])\n : [],\n unstable_data: Array.isArray(metadata.unstable_data)\n ? (metadata.unstable_data as StoredAssistantMessage[\"metadata\"][\"unstable_data\"])\n : [],\n steps: Array.isArray(metadata.steps)\n ? (metadata.steps as StoredAssistantMessage[\"metadata\"][\"steps\"])\n : [],\n ...(submittedFeedbackType === \"positive\" ||\n submittedFeedbackType === \"negative\"\n ? {\n submittedFeedback: {\n type: submittedFeedbackType,\n ...(typeof submittedFeedbackComment === \"string\" &&\n submittedFeedbackComment !== \"\"\n ? { comment: submittedFeedbackComment }\n : undefined),\n },\n }\n : undefined),\n ...(metadata.timing !== undefined\n ? {\n timing: metadata.timing as NonNullable<\n StoredAssistantMessage[\"metadata\"][\"timing\"]\n >,\n }\n : undefined),\n ...(metadata.isOptimistic === true\n ? { isOptimistic: true }\n : undefined),\n ...(modality !== undefined ? { modality } : undefined),\n custom: metadata.custom,\n },\n };\n }\n\n if (value.role === \"user\") {\n return {\n id: value.id,\n role: \"user\",\n content: parseStoredMessageParts(\n value.content,\n depth,\n ) as StoredUserMessage[\"content\"],\n attachments: Array.isArray(value.attachments)\n ? value.attachments.flatMap((item) => {\n const attachment = parseStoredAttachment(item, isStoredMessagePart);\n return attachment ? [attachment] : [];\n })\n : [],\n createdAt,\n metadata: {\n ...(modality !== undefined ? { modality } : undefined),\n custom: metadata.custom,\n },\n };\n }\n\n const content = parseStoredMessageParts(value.content, depth);\n if (content.length !== 1) return null;\n\n return {\n id: value.id,\n role: \"system\",\n content: [content[0] as StoredSystemMessage[\"content\"][0]],\n createdAt,\n metadata: {\n custom: metadata.custom,\n },\n };\n};\n\nexport const parseStoredThreadMetadata = (\n raw: string | null,\n): StoredThreadMetadata[] => {\n const parsed = parseJSON(raw);\n if (!Array.isArray(parsed)) return [];\n\n return parsed.flatMap((item) => {\n const thread = parseStoredThread(item);\n return thread ? [thread] : [];\n });\n};\n\nconst parseStoredMessageRepositoryItem = (\n value: unknown,\n): ExportedMessageRepositoryItem | null => {\n if (!isRecord(value)) return null;\n\n const message = parseStoredThreadMessage(value.message, 0);\n if (!message) return null;\n\n const parentId = value.parentId;\n if (\n parentId !== undefined &&\n parentId !== null &&\n typeof parentId !== \"string\"\n ) {\n return null;\n }\n\n return {\n message,\n parentId: parentId ?? null,\n ...(isRecord(value.runConfig)\n ? { runConfig: value.runConfig as RunConfig }\n : undefined),\n };\n};\n\nexport const parseStoredMessageRepository = (\n raw: string | null,\n): ExportedMessageRepository => {\n const parsed = parseJSON(raw);\n if (!isRecord(parsed) || !Array.isArray(parsed.messages)) {\n return { messages: [] };\n }\n\n const candidateMessages = parsed.messages.flatMap((item) => {\n const parsedItem = parseStoredMessageRepositoryItem(item);\n return parsedItem ? [parsedItem] : [];\n });\n\n const acceptedIds = new Set<string>();\n const messages = candidateMessages.flatMap((item) => {\n if (acceptedIds.has(item.message.id)) return [];\n if (item.parentId !== null && !acceptedIds.has(item.parentId)) return [];\n\n acceptedIds.add(item.message.id);\n return [item];\n });\n\n const headId =\n parsed.headId === null ||\n (typeof parsed.headId === \"string\" &&\n messages.some((item) => item.message.id === parsed.headId))\n ? parsed.headId\n : undefined;\n\n return {\n ...(headId !== undefined ? { headId } : undefined),\n messages,\n };\n};\n\nclass AsyncStorageHistoryAdapter implements ThreadHistoryAdapter {\n private storage: AsyncStorageLike;\n private getAui: () => ReturnType<typeof useAui>;\n private prefix: string;\n private mutationQueue: KeyedMutationQueue;\n\n constructor(\n storage: AsyncStorageLike,\n getAui: () => ReturnType<typeof useAui>,\n prefix: string,\n mutationQueue: KeyedMutationQueue,\n ) {\n this.storage = storage;\n this.getAui = getAui;\n this.prefix = prefix;\n this.mutationQueue = mutationQueue;\n }\n\n private get aui(): ReturnType<typeof useAui> {\n return this.getAui();\n }\n\n private _messagesKey(remoteId: string) {\n return `${this.prefix}messages:${remoteId}`;\n }\n\n async load(): Promise<ExportedMessageRepository> {\n const remoteId = this.aui.threadListItem.getState().remoteId;\n if (!remoteId) return { messages: [] };\n\n const raw = await this.storage.getItem(this._messagesKey(remoteId));\n return parseStoredMessageRepository(raw);\n }\n\n async append(item: ExportedMessageRepositoryItem): Promise<void> {\n const { remoteId } = await this.aui.threadListItem.initialize();\n\n const key = this._messagesKey(remoteId);\n await this.mutationQueue.run(key, async () => {\n const raw = await this.storage.getItem(key);\n const repo = parseStoredMessageRepository(raw);\n\n const idx = repo.messages.findIndex(\n (m) => m.message.id === item.message.id,\n );\n if (idx >= 0) {\n repo.messages[idx] = item;\n } else {\n repo.messages.push(item);\n }\n repo.headId = item.message.id;\n\n await this.storage.setItem(key, JSON.stringify(repo));\n });\n }\n}\n\nconst useLocalStorageThreadAdapters = (\n storage: AsyncStorageLike,\n prefix: string,\n mutationQueue: KeyedMutationQueue,\n): RuntimeAdapters => {\n const aui = useAui();\n // Not useEffectEvent: history adapter methods run during render (SSR load).\n const auiRef = useRef(aui);\n useEffect(() => {\n auiRef.current = aui;\n });\n const [history] = useState(\n () =>\n new AsyncStorageHistoryAdapter(\n storage,\n () => auiRef.current,\n prefix,\n mutationQueue,\n ),\n );\n return useMemo(() => ({ history }), [history]);\n};\n\nconst createHistoryProvider = (\n storage: AsyncStorageLike,\n prefix: string,\n mutationQueue: KeyedMutationQueue,\n): FC<PropsWithChildren> => {\n const Provider: FC<PropsWithChildren> = ({ children }) => {\n const adapters = useLocalStorageThreadAdapters(\n storage,\n prefix,\n mutationQueue,\n );\n return (\n <RuntimeAdapterProvider adapters={adapters}>\n {children}\n </RuntimeAdapterProvider>\n );\n };\n return Provider;\n};\n\nexport const createLocalStorageAdapter = (\n options: LocalStorageAdapterOptions,\n): RemoteThreadListAdapter => {\n const { storage, prefix = \"@assistant-ui:\", titleGenerator } = options;\n\n const threadsKey = `${prefix}threads`;\n const messagesKey = (threadId: string) => `${prefix}messages:${threadId}`;\n const mutationQueue = getMutationQueue(storage);\n\n const loadThreadMetadata = async (): Promise<StoredThreadMetadata[]> => {\n const raw = await storage.getItem(threadsKey);\n return parseStoredThreadMetadata(raw);\n };\n\n const saveThreadMetadata = async (\n threads: StoredThreadMetadata[],\n ): Promise<void> => {\n await storage.setItem(threadsKey, JSON.stringify(threads));\n };\n\n const updateThreadMetadata = async (\n remoteId: string,\n update: (thread: StoredThreadMetadata) => void,\n ): Promise<void> => {\n await mutationQueue.run(threadsKey, async () => {\n const threads = await loadThreadMetadata();\n const thread = threads.find((item) => item.remoteId === remoteId);\n if (thread) {\n update(thread);\n await saveThreadMetadata(threads);\n }\n });\n };\n\n const adapter: RemoteThreadListAdapter = {\n unstable_Provider: createHistoryProvider(storage, prefix, mutationQueue),\n unstable_useAdapters: function useLocalStorageAdapters() {\n return useLocalStorageThreadAdapters(storage, prefix, mutationQueue);\n },\n\n async list(): Promise<RemoteThreadListResponse> {\n const threads = await loadThreadMetadata();\n return {\n threads: threads.map((t) => ({\n remoteId: t.remoteId,\n externalId: t.externalId,\n status: t.status,\n title: t.title,\n custom: t.custom,\n })),\n };\n },\n\n async initialize(\n threadId: string,\n ): Promise<RemoteThreadInitializeResponse> {\n const remoteId = threadId;\n return mutationQueue.run(threadsKey, async () => {\n const threads = await loadThreadMetadata();\n\n // Only add if not already present\n if (!threads.some((t) => t.remoteId === remoteId)) {\n threads.unshift({\n remoteId,\n status: \"regular\",\n });\n await saveThreadMetadata(threads);\n }\n\n return { remoteId, externalId: undefined };\n });\n },\n\n async rename(remoteId: string, newTitle: string): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.title = newTitle;\n });\n },\n\n async updateCustom(\n remoteId: string,\n custom: Record<string, unknown> | undefined,\n ): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.custom = custom;\n });\n },\n\n async archive(remoteId: string): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.status = \"archived\";\n });\n },\n\n async unarchive(remoteId: string): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.status = \"regular\";\n });\n },\n\n async delete(remoteId: string): Promise<void> {\n await mutationQueue.run(threadsKey, async () => {\n const threads = await loadThreadMetadata();\n const filtered = threads.filter((t) => t.remoteId !== remoteId);\n await saveThreadMetadata(filtered);\n });\n const key = messagesKey(remoteId);\n await mutationQueue.run(key, () => storage.removeItem(key));\n },\n\n async fetch(threadId: string): Promise<RemoteThreadMetadata> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === threadId);\n if (!thread)\n throw new Error(\n `Stored thread \"${threadId}\" not found while fetching thread metadata.`,\n );\n return {\n remoteId: thread.remoteId,\n externalId: thread.externalId,\n status: thread.status,\n title: thread.title,\n custom: thread.custom,\n };\n },\n\n async generateTitle(\n remoteId: string,\n messages: readonly ThreadMessage[],\n ): Promise<AssistantStream> {\n if (titleGenerator) {\n const title = await titleGenerator.generateTitle(messages);\n\n // Update the stored title\n await updateThreadMetadata(remoteId, (thread) => {\n thread.title = title;\n });\n\n // Return a stream with a single text part\n return createAssistantStream((controller) => {\n controller.appendText(title);\n });\n }\n\n // No title generator — return empty stream\n return createAssistantStream(() => {});\n },\n };\n\n return adapter;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"LocalStorageThreadListAdapter.js","names":["AssistantStream","createAssistantStream","FC","PropsWithChildren","useEffect","useMemo","useRef","useState","useAui","MessageModality","RemoteThreadInitializeResponse","RemoteThreadListAdapter","RemoteThreadListResponse","RemoteThreadMetadata","ThreadHistoryAdapter","ThreadMessage","RunConfig","ExportedMessageRepository","ExportedMessageRepositoryItem","isRecord","MAX_STORED_MESSAGE_DEPTH","isStoredMessageStatus","isStoredMessagePart","isStoredMessageRole","parseStoredAttachment","parseStoredDate","parseStoredThreadSteps","RuntimeAdapterProvider","RuntimeAdapters","TitleGenerationAdapter","AsyncStorageLike","getItem","key","Promise","setItem","value","removeItem","KeyedMutationQueue","tails","Map","staleKeys","Set","markStale","add","removeStale","storage","has","delete","run","mutation","T","previous","get","result","then","tail","undefined","set","mutationQueues","WeakMap","getMutationQueue","queue","LocalStorageAdapterOptions","prefix","titleGenerator","StoredThreadMetadata","remoteId","externalId","status","title","custom","Record","StoredSystemMessage","Extract","role","StoredUserMessage","StoredAssistantMessage","parseJSON","raw","JSON","parse","parseStoredThread","messageModalities","voice","isMessageModality","Object","hasOwn","parseStoredMessageParts","content","depth","flatMap","part","type","messages","toolCall","Array","isArray","item","message","parseStoredThreadMessage","id","createdAt","metadata","modality","reason","const","submittedFeedback","submittedFeedbackType","submittedFeedbackComment","comment","unstable_state","unstable_annotations","unstable_data","steps","timing","NonNullable","isOptimistic","attachments","attachment","length","parseStoredThreadMetadata","parsed","thread","parseStoredMessageRepositoryItem","parentId","runConfig","parseStoredMessageRepository","candidateMessages","parsedItem","acceptedIds","headId","some","AsyncStorageHistoryAdapter","getAui","ReturnType","mutationQueue","constructor","aui","_messagesKey","_threadsKey","load","threadListItem","getState","_upsert","moveHead","initialize","deleted","repo","idx","findIndex","m","push","stringify","append","update","createLocalStorageHistoryAdapter","useLocalStorageThreadAdapters","auiRef","current","history","createHistoryProvider","Provider","t0","$","_c","children","adapters","t1","createLocalStorageAdapter","options","threadsKey","messagesKey","threadId","loadThreadMetadata","saveThreadMetadata","threads","updateThreadMetadata","find","adapter","unstable_Provider","unstable_useAdapters","useLocalStorageAdapters","list","map","t","unshift","rename","newTitle","updateCustom","archive","unarchive","filtered","filter","fetch","Error","generateTitle","controller","appendText"],"sources":["../../../src/react/adapters/LocalStorageThreadListAdapter.tsx"],"sourcesContent":["import { type AssistantStream, createAssistantStream } from \"assistant-stream\";\nimport {\n type FC,\n type PropsWithChildren,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type {\n MessageModality,\n RemoteThreadInitializeResponse,\n RemoteThreadListAdapter,\n RemoteThreadListResponse,\n RemoteThreadMetadata,\n ThreadHistoryAdapter,\n ThreadMessage,\n RunConfig,\n} from \"../../index\";\nimport type {\n ExportedMessageRepository,\n ExportedMessageRepositoryItem,\n} from \"../../internal\";\nimport { isRecord } from \"../../utils/json/is-json\";\nimport {\n MAX_STORED_MESSAGE_DEPTH,\n isStoredMessageStatus,\n isStoredMessagePart,\n isStoredMessageRole,\n parseStoredAttachment,\n parseStoredDate,\n parseStoredThreadSteps,\n} from \"../../runtime/utils/stored-message-parts\";\nimport {\n RuntimeAdapterProvider,\n type RuntimeAdapters,\n} from \"../runtimes/RuntimeAdapterProvider\";\nimport type { TitleGenerationAdapter } from \"./TitleGenerationAdapter\";\n\nexport type AsyncStorageLike = {\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n};\n\nclass KeyedMutationQueue {\n private readonly tails = new Map<string, Promise<void>>();\n private readonly staleKeys = new Set<string>();\n\n markStale(key: string) {\n this.staleKeys.add(key);\n }\n\n async removeStale(key: string, storage: AsyncStorageLike) {\n if (!this.staleKeys.has(key)) return;\n await storage.removeItem(key);\n this.staleKeys.delete(key);\n }\n\n // Mutations may acquire another key but must never re-enter the key they\n // already hold. Thread lifecycle mutations acquire messages before metadata.\n run<T>(key: string, mutation: () => Promise<T>): Promise<T> {\n const previous = this.tails.get(key);\n const result = previous ? previous.then(mutation) : mutation();\n const tail = result.then(\n () => undefined,\n () => undefined,\n );\n\n this.tails.set(key, tail);\n void tail.then(() => {\n if (this.tails.get(key) === tail) this.tails.delete(key);\n });\n\n return result;\n }\n}\n\nconst mutationQueues = new WeakMap<AsyncStorageLike, KeyedMutationQueue>();\n\nconst getMutationQueue = (storage: AsyncStorageLike): KeyedMutationQueue => {\n let queue = mutationQueues.get(storage);\n if (!queue) {\n queue = new KeyedMutationQueue();\n mutationQueues.set(storage, queue);\n }\n return queue;\n};\n\ntype LocalStorageAdapterOptions = {\n storage: AsyncStorageLike;\n prefix?: string | undefined;\n titleGenerator?: TitleGenerationAdapter | undefined;\n};\n\ntype StoredThreadMetadata = {\n remoteId: string;\n externalId?: string;\n status: \"regular\" | \"archived\";\n title?: string;\n custom?: Record<string, unknown> | undefined;\n};\n\ntype StoredSystemMessage = Extract<ThreadMessage, { role: \"system\" }>;\ntype StoredUserMessage = Extract<ThreadMessage, { role: \"user\" }>;\ntype StoredAssistantMessage = Extract<ThreadMessage, { role: \"assistant\" }>;\n\nconst parseJSON = (raw: string | null): unknown => {\n if (!raw) return undefined;\n try {\n return JSON.parse(raw) as unknown;\n } catch {\n return undefined;\n }\n};\n\nconst parseStoredThread = (value: unknown): StoredThreadMetadata | null => {\n if (!isRecord(value) || typeof value.remoteId !== \"string\") return null;\n\n const status = value.status ?? \"regular\";\n if (status !== \"regular\" && status !== \"archived\") return null;\n\n return {\n remoteId: value.remoteId,\n status,\n ...(typeof value.externalId === \"string\"\n ? { externalId: value.externalId }\n : undefined),\n ...(typeof value.title === \"string\" ? { title: value.title } : undefined),\n ...(isRecord(value.custom) ? { custom: value.custom } : undefined),\n };\n};\n\nconst messageModalities = {\n voice: true,\n} satisfies Record<MessageModality, true>;\n\nconst isMessageModality = (value: unknown): value is MessageModality =>\n typeof value === \"string\" && Object.hasOwn(messageModalities, value);\n\nconst parseStoredMessageParts = (\n content: unknown[],\n depth: number,\n): unknown[] =>\n content.flatMap((part) => {\n if (!isStoredMessagePart(part)) return [];\n if (part.type !== \"tool-call\" || part.messages === undefined) return [part];\n\n const { messages, ...toolCall } = part;\n if (!Array.isArray(messages)) return [toolCall];\n return [\n {\n ...toolCall,\n messages: messages.flatMap((item) => {\n const message = parseStoredThreadMessage(item, depth + 1);\n return message ? [message] : [];\n }),\n },\n ];\n });\n\nconst parseStoredThreadMessage = (\n value: unknown,\n depth: number,\n): ThreadMessage | null => {\n if (depth > MAX_STORED_MESSAGE_DEPTH) return null;\n if (!isRecord(value) || typeof value.id !== \"string\") return null;\n if (!isStoredMessageRole(value.role)) return null;\n if (!Array.isArray(value.content)) return null;\n\n const createdAt = parseStoredDate(value.createdAt);\n if (!createdAt) return null;\n\n const metadata = value.metadata;\n if (!isRecord(metadata) || !isRecord(metadata.custom)) return null;\n\n const modality = isMessageModality(metadata.modality)\n ? metadata.modality\n : undefined;\n\n if (value.role === \"assistant\") {\n const status = isStoredMessageStatus(value.status)\n ? value.status\n : { type: \"complete\", reason: \"unknown\" as const };\n\n const submittedFeedback = isRecord(metadata.submittedFeedback)\n ? metadata.submittedFeedback\n : undefined;\n const submittedFeedbackType = submittedFeedback?.type;\n const submittedFeedbackComment = submittedFeedback?.comment;\n\n return {\n id: value.id,\n role: \"assistant\",\n content: parseStoredMessageParts(\n value.content,\n depth,\n ) as StoredAssistantMessage[\"content\"],\n status: status as StoredAssistantMessage[\"status\"],\n createdAt,\n metadata: {\n unstable_state: (metadata.unstable_state ??\n null) as StoredAssistantMessage[\"metadata\"][\"unstable_state\"],\n unstable_annotations: Array.isArray(metadata.unstable_annotations)\n ? (metadata.unstable_annotations as StoredAssistantMessage[\"metadata\"][\"unstable_annotations\"])\n : [],\n unstable_data: Array.isArray(metadata.unstable_data)\n ? (metadata.unstable_data as StoredAssistantMessage[\"metadata\"][\"unstable_data\"])\n : [],\n steps: parseStoredThreadSteps(metadata.steps),\n ...(submittedFeedbackType === \"positive\" ||\n submittedFeedbackType === \"negative\"\n ? {\n submittedFeedback: {\n type: submittedFeedbackType,\n ...(typeof submittedFeedbackComment === \"string\" &&\n submittedFeedbackComment !== \"\"\n ? { comment: submittedFeedbackComment }\n : undefined),\n },\n }\n : undefined),\n ...(metadata.timing !== undefined\n ? {\n timing: metadata.timing as NonNullable<\n StoredAssistantMessage[\"metadata\"][\"timing\"]\n >,\n }\n : undefined),\n ...(metadata.isOptimistic === true\n ? { isOptimistic: true }\n : undefined),\n ...(modality !== undefined ? { modality } : undefined),\n custom: metadata.custom,\n },\n };\n }\n\n if (value.role === \"user\") {\n return {\n id: value.id,\n role: \"user\",\n content: parseStoredMessageParts(\n value.content,\n depth,\n ) as StoredUserMessage[\"content\"],\n attachments: Array.isArray(value.attachments)\n ? value.attachments.flatMap((item) => {\n const attachment = parseStoredAttachment(item, isStoredMessagePart);\n return attachment ? [attachment] : [];\n })\n : [],\n createdAt,\n metadata: {\n ...(modality !== undefined ? { modality } : undefined),\n custom: metadata.custom,\n },\n };\n }\n\n const content = parseStoredMessageParts(value.content, depth);\n if (content.length !== 1) return null;\n\n return {\n id: value.id,\n role: \"system\",\n content: [content[0] as StoredSystemMessage[\"content\"][0]],\n createdAt,\n metadata: {\n custom: metadata.custom,\n },\n };\n};\n\nexport const parseStoredThreadMetadata = (\n raw: string | null,\n): StoredThreadMetadata[] => {\n const parsed = parseJSON(raw);\n if (!Array.isArray(parsed)) return [];\n\n return parsed.flatMap((item) => {\n const thread = parseStoredThread(item);\n return thread ? [thread] : [];\n });\n};\n\nconst parseStoredMessageRepositoryItem = (\n value: unknown,\n): ExportedMessageRepositoryItem | null => {\n if (!isRecord(value)) return null;\n\n const message = parseStoredThreadMessage(value.message, 0);\n if (!message) return null;\n\n const parentId = value.parentId;\n if (\n parentId !== undefined &&\n parentId !== null &&\n typeof parentId !== \"string\"\n ) {\n return null;\n }\n\n return {\n message,\n parentId: parentId ?? null,\n ...(isRecord(value.runConfig)\n ? { runConfig: value.runConfig as RunConfig }\n : undefined),\n };\n};\n\nexport const parseStoredMessageRepository = (\n raw: string | null,\n): ExportedMessageRepository => {\n const parsed = parseJSON(raw);\n if (!isRecord(parsed) || !Array.isArray(parsed.messages)) {\n return { messages: [] };\n }\n\n const candidateMessages = parsed.messages.flatMap((item) => {\n const parsedItem = parseStoredMessageRepositoryItem(item);\n return parsedItem ? [parsedItem] : [];\n });\n\n const acceptedIds = new Set<string>();\n const messages = candidateMessages.flatMap((item) => {\n if (acceptedIds.has(item.message.id)) return [];\n if (item.parentId !== null && !acceptedIds.has(item.parentId)) return [];\n\n acceptedIds.add(item.message.id);\n return [item];\n });\n\n const headId =\n parsed.headId === null ||\n (typeof parsed.headId === \"string\" &&\n messages.some((item) => item.message.id === parsed.headId))\n ? parsed.headId\n : undefined;\n\n return {\n ...(headId !== undefined ? { headId } : undefined),\n messages,\n };\n};\n\nclass AsyncStorageHistoryAdapter implements ThreadHistoryAdapter {\n private storage: AsyncStorageLike;\n private getAui: () => ReturnType<typeof useAui>;\n private prefix: string;\n private mutationQueue: KeyedMutationQueue;\n\n constructor(\n storage: AsyncStorageLike,\n getAui: () => ReturnType<typeof useAui>,\n prefix: string,\n mutationQueue: KeyedMutationQueue,\n ) {\n this.storage = storage;\n this.getAui = getAui;\n this.prefix = prefix;\n this.mutationQueue = mutationQueue;\n }\n\n private get aui(): ReturnType<typeof useAui> {\n return this.getAui();\n }\n\n private _messagesKey(remoteId: string) {\n return `${this.prefix}messages:${remoteId}`;\n }\n\n private _threadsKey() {\n return `${this.prefix}threads`;\n }\n\n async load(): Promise<ExportedMessageRepository> {\n const remoteId = this.aui.threadListItem.getState().remoteId;\n if (!remoteId) return { messages: [] };\n\n const raw = await this.storage.getItem(this._messagesKey(remoteId));\n return parseStoredMessageRepository(raw);\n }\n\n private async _upsert(\n item: ExportedMessageRepositoryItem,\n moveHead: boolean,\n ): Promise<void> {\n // Initialization acquires the same message key, so it must settle before\n // the upsert takes that lock.\n const { remoteId } = await this.aui.threadListItem.initialize();\n const key = this._messagesKey(remoteId);\n\n await this.mutationQueue.run(key, async () => {\n // A missing or unreadable metadata blob is not evidence of deletion, so\n // only a readable list that omits the thread skips the write.\n const deleted = await this.mutationQueue.run(\n this._threadsKey(),\n async () => {\n const raw = await this.storage.getItem(this._threadsKey());\n const parsed = parseJSON(raw);\n return (\n Array.isArray(parsed) &&\n !parsed.some(\n (thread) => parseStoredThread(thread)?.remoteId === remoteId,\n )\n );\n },\n );\n if (deleted) return;\n\n const raw = await this.storage.getItem(key);\n const repo = parseStoredMessageRepository(raw);\n\n const idx = repo.messages.findIndex(\n (m) => m.message.id === item.message.id,\n );\n if (idx >= 0) {\n repo.messages[idx] = item;\n } else {\n repo.messages.push(item);\n }\n if (moveHead) repo.headId = item.message.id;\n\n await this.storage.setItem(key, JSON.stringify(repo));\n });\n }\n\n async append(item: ExportedMessageRepositoryItem): Promise<void> {\n await this._upsert(item, true);\n }\n\n async update(item: ExportedMessageRepositoryItem): Promise<void> {\n await this._upsert(item, false);\n }\n}\n\nexport const createLocalStorageHistoryAdapter = (\n storage: AsyncStorageLike,\n getAui: () => ReturnType<typeof useAui>,\n prefix: string,\n mutationQueue = getMutationQueue(storage),\n): ThreadHistoryAdapter =>\n new AsyncStorageHistoryAdapter(storage, getAui, prefix, mutationQueue);\n\nconst useLocalStorageThreadAdapters = (\n storage: AsyncStorageLike,\n prefix: string,\n mutationQueue: KeyedMutationQueue,\n): RuntimeAdapters => {\n const aui = useAui();\n // Not useEffectEvent: history adapter methods run during render (SSR load).\n const auiRef = useRef(aui);\n useEffect(() => {\n auiRef.current = aui;\n });\n const [history] = useState(() =>\n createLocalStorageHistoryAdapter(\n storage,\n () => auiRef.current,\n prefix,\n mutationQueue,\n ),\n );\n return useMemo(() => ({ history }), [history]);\n};\n\nconst createHistoryProvider = (\n storage: AsyncStorageLike,\n prefix: string,\n mutationQueue: KeyedMutationQueue,\n): FC<PropsWithChildren> => {\n const Provider: FC<PropsWithChildren> = ({ children }) => {\n const adapters = useLocalStorageThreadAdapters(\n storage,\n prefix,\n mutationQueue,\n );\n return (\n <RuntimeAdapterProvider adapters={adapters}>\n {children}\n </RuntimeAdapterProvider>\n );\n };\n return Provider;\n};\n\nexport const createLocalStorageAdapter = (\n options: LocalStorageAdapterOptions,\n): RemoteThreadListAdapter => {\n const { storage, prefix = \"@assistant-ui:\", titleGenerator } = options;\n\n const threadsKey = `${prefix}threads`;\n const messagesKey = (threadId: string) => `${prefix}messages:${threadId}`;\n const mutationQueue = getMutationQueue(storage);\n\n const loadThreadMetadata = async (): Promise<StoredThreadMetadata[]> => {\n const raw = await storage.getItem(threadsKey);\n return parseStoredThreadMetadata(raw);\n };\n\n const saveThreadMetadata = async (\n threads: StoredThreadMetadata[],\n ): Promise<void> => {\n await storage.setItem(threadsKey, JSON.stringify(threads));\n };\n\n const updateThreadMetadata = async (\n remoteId: string,\n update: (thread: StoredThreadMetadata) => void,\n ): Promise<void> => {\n await mutationQueue.run(threadsKey, async () => {\n const threads = await loadThreadMetadata();\n const thread = threads.find((item) => item.remoteId === remoteId);\n if (thread) {\n update(thread);\n await saveThreadMetadata(threads);\n }\n });\n };\n\n const adapter: RemoteThreadListAdapter = {\n unstable_Provider: createHistoryProvider(storage, prefix, mutationQueue),\n unstable_useAdapters: function useLocalStorageAdapters() {\n return useLocalStorageThreadAdapters(storage, prefix, mutationQueue);\n },\n\n async list(): Promise<RemoteThreadListResponse> {\n const threads = await loadThreadMetadata();\n return {\n threads: threads.map((t) => ({\n remoteId: t.remoteId,\n externalId: t.externalId,\n status: t.status,\n title: t.title,\n custom: t.custom,\n })),\n };\n },\n\n async initialize(\n threadId: string,\n ): Promise<RemoteThreadInitializeResponse> {\n const remoteId = threadId;\n const key = messagesKey(remoteId);\n return mutationQueue.run(key, async () => {\n await mutationQueue.removeStale(key, storage);\n\n return mutationQueue.run(threadsKey, async () => {\n const threads = await loadThreadMetadata();\n\n // Only add if not already present\n if (!threads.some((t) => t.remoteId === remoteId)) {\n threads.unshift({\n remoteId,\n status: \"regular\",\n });\n await saveThreadMetadata(threads);\n }\n\n return { remoteId, externalId: undefined };\n });\n });\n },\n\n async rename(remoteId: string, newTitle: string): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.title = newTitle;\n });\n },\n\n async updateCustom(\n remoteId: string,\n custom: Record<string, unknown> | undefined,\n ): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.custom = custom;\n });\n },\n\n async archive(remoteId: string): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.status = \"archived\";\n });\n },\n\n async unarchive(remoteId: string): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.status = \"regular\";\n });\n },\n\n async delete(remoteId: string): Promise<void> {\n const key = messagesKey(remoteId);\n await mutationQueue.run(key, async () => {\n await mutationQueue.run(threadsKey, async () => {\n const threads = await loadThreadMetadata();\n const filtered = threads.filter((t) => t.remoteId !== remoteId);\n await saveThreadMetadata(filtered);\n });\n mutationQueue.markStale(key);\n await mutationQueue.removeStale(key, storage);\n });\n },\n\n async fetch(threadId: string): Promise<RemoteThreadMetadata> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === threadId);\n if (!thread)\n throw new Error(\n `Stored thread \"${threadId}\" not found while fetching thread metadata.`,\n );\n return {\n remoteId: thread.remoteId,\n externalId: thread.externalId,\n status: thread.status,\n title: thread.title,\n custom: thread.custom,\n };\n },\n\n async generateTitle(\n remoteId: string,\n messages: readonly ThreadMessage[],\n ): Promise<AssistantStream> {\n if (titleGenerator) {\n const title = await titleGenerator.generateTitle(messages);\n\n // Update the stored title\n await updateThreadMetadata(remoteId, (thread) => {\n thread.title = title;\n });\n\n // Return a stream with a single text part\n return createAssistantStream((controller) => {\n controller.appendText(title);\n });\n }\n\n // No title generator — return empty stream\n return createAssistantStream(() => {});\n },\n };\n\n return adapter;\n};\n"],"mappings":"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"}
@@ -1,8 +1,6 @@
1
- import { ThreadMessage } from "../../types/message.js";
2
- //#region src/react/adapters/TitleGenerationAdapter.d.ts
1
+ import type { ThreadMessage } from "../../types/message.js";
3
2
  export type TitleGenerationAdapter = {
4
- generateTitle(messages: readonly ThreadMessage[]): Promise<string>;
3
+ generateTitle(messages: readonly ThreadMessage[]): Promise<string>;
5
4
  };
6
5
  export declare const createSimpleTitleAdapter: () => TitleGenerationAdapter;
7
- //#endregion
8
6
  //# sourceMappingURL=TitleGenerationAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TitleGenerationAdapter.d.ts","names":[],"sources":["../../../src/react/adapters/TitleGenerationAdapter.ts"],"mappings":";;YAEY;EACV,cAAc,mBAAmB,kBAAkB;;qBAGxC,gCAA+B"}
1
+ {"version":3,"file":"TitleGenerationAdapter.d.ts","sourceRoot":"","sources":["../../../src/react/adapters/TitleGenerationAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,+BAA4B;AAEzD,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAO,sBAa3C,CAAC"}
@@ -1,10 +1,8 @@
1
- import { RuntimeAdapters } from "../../runtimes/remote-thread-list/types.js";
2
- import { ClientOutput } from "@assistant-ui/store";
3
- import { ResourceElement } from "@assistant-ui/tap";
4
- //#region src/react/client/AdaptedRemoteThread.d.ts
1
+ import { type ResourceElement } from "@assistant-ui/tap";
2
+ import type { ClientOutput } from "@assistant-ui/store";
3
+ import type { RuntimeAdapters } from "../../runtimes/remote-thread-list/types.js";
5
4
  export declare const AdaptedRemoteThread: import("@assistant-ui/tap").Resource<ClientOutput<"thread">, [{
6
- useAdapters: () => RuntimeAdapters | null | undefined;
7
- thread: ResourceElement<ClientOutput<"thread">>;
5
+ useAdapters: () => RuntimeAdapters | null | undefined;
6
+ thread: ResourceElement<ClientOutput<"thread">>;
8
7
  }]>;
9
- //#endregion
10
8
  //# sourceMappingURL=AdaptedRemoteThread.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdaptedRemoteThread.d.ts","names":[],"sources":["../../../src/react/client/AdaptedRemoteThread.ts"],"mappings":";;;;qBAwCa,iDAAmB,SAAA;EAxBjB,mBAAM;EACX,QAAA,gBAAgB"}
1
+ {"version":3,"file":"AdaptedRemoteThread.d.ts","sourceRoot":"","sources":["../../../src/react/client/AdaptedRemoteThread.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,mDAAgD;AAoC/E,eAAO,MAAM,mBAAmB;iBAxBjB,MAAM,eAAe,GAAG,IAAI,GAAG,SAAS;YAC7C,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;GAuBkB,CAAC"}
@@ -1,5 +1,3 @@
1
- import { ClientOutput } from "@assistant-ui/store";
2
- //#region src/react/client/DataRenderers.d.ts
1
+ import type { ClientOutput } from "@assistant-ui/store";
3
2
  export declare const DataRenderers: import("@assistant-ui/tap").Resource<ClientOutput<"dataRenderers">, []>;
4
- //#endregion
5
3
  //# sourceMappingURL=DataRenderers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataRenderers.d.ts","names":[],"sources":["../../../src/react/client/DataRenderers.ts"],"mappings":";;qBAuEa,2CAAa,SAAA"}
1
+ {"version":3,"file":"DataRenderers.d.ts","sourceRoot":"","sources":["../../../src/react/client/DataRenderers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAqExD,eAAO,MAAM,aAAa,yEAA6B,CAAC"}
@@ -1,11 +1,10 @@
1
- import { AssistantClient, ClientOutput, ScopesConfig } from "@assistant-ui/store";
2
- import { ResourceElement } from "@assistant-ui/tap";
3
- //#region src/react/client/InMemoryThreadList.d.ts
1
+ import { type ResourceElement } from "@assistant-ui/tap";
2
+ import type { AssistantClient, ClientOutput, ScopesConfig } from "@assistant-ui/store";
4
3
  export type InMemoryThreadListProps = {
5
- thread: (threadId: string) => ResourceElement<ClientOutput<"thread">>;
6
- onSwitchToThread?: (threadId: string) => void;
7
- onSwitchToNewThread?: () => void;
8
- onDelete?: (threadId: string) => void;
4
+ thread: (threadId: string) => ResourceElement<ClientOutput<"thread">>;
5
+ onSwitchToThread?: (threadId: string) => void;
6
+ onSwitchToNewThread?: () => void;
7
+ onDelete?: (threadId: string) => void;
9
8
  };
10
9
  export declare const InMemoryThreadList: import("@assistant-ui/tap").Resource<ClientOutput<"threads">, [props: InMemoryThreadListProps]>;
11
10
  /**
@@ -14,5 +13,4 @@ export declare const InMemoryThreadList: import("@assistant-ui/tap").Resource<Cl
14
13
  * entry attach this to the wrapping resource for scope parity.
15
14
  */
16
15
  export declare const inMemoryThreadListTransformScopes: (scopes: ScopesConfig, parent: AssistantClient) => void;
17
- //#endregion
18
16
  //# sourceMappingURL=InMemoryThreadList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryThreadList.d.ts","names":[],"sources":["../../../src/react/client/InMemoryThreadList.ts"],"mappings":";;;YAqBY;EACV,SAAS,qBAAqB,gBAAgB;EAC9C,oBAAoB;EACpB;EACA,YAAY;;qBAkOD,gDAAkB,SAAA,0BAAA,OAAA;;;;;;qBAOlB,oCACX,QAAQ,cACR,QAAQ"}
1
+ {"version":3,"file":"InMemoryThreadList.d.ts","sourceRoot":"","sources":["../../../src/react/client/InMemoryThreadList.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACb,MAAM,qBAAqB,CAAC;AAe7B,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,CAAC;AAiOF,eAAO,MAAM,kBAAkB,iGAAkC,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,GAC5C,QAAQ,YAAY,EACpB,QAAQ,eAAe,KACtB,IAiCF,CAAC"}
@@ -1,11 +1,9 @@
1
- import { Unstable_InteractablesConfig } from "../types/scopes/interactables.js";
2
- import { ClientOutput } from "@assistant-ui/store";
3
- //#region src/react/client/Interactables.d.ts
1
+ import type { ClientOutput } from "@assistant-ui/store";
2
+ import type { Unstable_InteractablesConfig } from "../types/scopes/interactables.js";
4
3
  /**
5
4
  * Registers the unstable interactables store scope.
6
5
  *
7
6
  * @deprecated Unstable / Experimental (not actually removed).
8
7
  */
9
8
  export declare const unstable_Interactables: import("@assistant-ui/tap").Resource<ClientOutput<"unstable_interactables">, [(Unstable_InteractablesConfig | undefined)?]>;
10
- //#endregion
11
9
  //# sourceMappingURL=Interactables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Interactables.d.ts","names":[],"sources":["../../../src/react/client/Interactables.ts"],"mappings":";;;;;;;;qBA2hBa,oDAAsB,SAAA,0CAAA"}
1
+ {"version":3,"file":"Interactables.d.ts","sourceRoot":"","sources":["../../../src/react/client/Interactables.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMxD,OAAO,KAAK,EAKV,4BAA4B,EAC7B,yCAAsC;AAgyBvC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,6HAAqC,CAAC"}