@assistant-ui/react 0.12.10 → 0.12.11

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 (944) hide show
  1. package/dist/client/DataRenderers.d.ts +3 -0
  2. package/dist/client/DataRenderers.d.ts.map +1 -0
  3. package/dist/client/DataRenderers.js +33 -0
  4. package/dist/client/DataRenderers.js.map +1 -0
  5. package/dist/client/ExternalThread.d.ts +1 -1
  6. package/dist/client/ExternalThread.d.ts.map +1 -1
  7. package/dist/client/ExternalThread.js +133 -134
  8. package/dist/client/ExternalThread.js.map +1 -1
  9. package/dist/client/InMemoryThreadList.d.ts.map +1 -1
  10. package/dist/client/InMemoryThreadList.js +62 -53
  11. package/dist/client/InMemoryThreadList.js.map +1 -1
  12. package/dist/client/Tools.d.ts.map +1 -1
  13. package/dist/client/Tools.js +10 -10
  14. package/dist/client/Tools.js.map +1 -1
  15. package/dist/client/index.d.ts +4 -3
  16. package/dist/client/index.d.ts.map +1 -1
  17. package/dist/client/index.js +6 -3
  18. package/dist/client/index.js.map +1 -1
  19. package/dist/context/providers/ChainOfThoughtByIndicesProvider.js +1 -1
  20. package/dist/context/providers/ChainOfThoughtByIndicesProvider.js.map +1 -1
  21. package/dist/context/providers/MessageByIndexProvider.js +1 -1
  22. package/dist/context/providers/MessageByIndexProvider.js.map +1 -1
  23. package/dist/context/providers/MessageProvider.d.ts +1 -1
  24. package/dist/context/providers/MessageProvider.d.ts.map +1 -1
  25. package/dist/context/providers/MessageProvider.js +1 -1
  26. package/dist/context/providers/MessageProvider.js.map +1 -1
  27. package/dist/context/providers/TextMessagePartProvider.d.ts.map +1 -1
  28. package/dist/context/providers/TextMessagePartProvider.js +6 -9
  29. package/dist/context/providers/TextMessagePartProvider.js.map +1 -1
  30. package/dist/context/providers/ThreadListItemProvider.js +1 -1
  31. package/dist/context/providers/ThreadListItemProvider.js.map +1 -1
  32. package/dist/context/react/utils/useRuntimeState.d.ts +1 -1
  33. package/dist/context/react/utils/useRuntimeState.d.ts.map +1 -1
  34. package/dist/context/react/utils/useRuntimeState.js.map +1 -1
  35. package/dist/context/stores/ThreadViewport.d.ts +1 -1
  36. package/dist/context/stores/ThreadViewport.d.ts.map +1 -1
  37. package/dist/context/stores/ThreadViewport.js.map +1 -1
  38. package/dist/devtools/DevToolsHooks.d.ts +1 -1
  39. package/dist/devtools/DevToolsHooks.d.ts.map +1 -1
  40. package/dist/hooks/useMessageQuote.d.ts +1 -1
  41. package/dist/hooks/useMessageQuote.d.ts.map +1 -1
  42. package/dist/hooks/useMessageTiming.d.ts +17 -0
  43. package/dist/hooks/useMessageTiming.d.ts.map +1 -0
  44. package/dist/hooks/useMessageTiming.js +20 -0
  45. package/dist/hooks/useMessageTiming.js.map +1 -0
  46. package/dist/internal.d.ts +3 -11
  47. package/dist/internal.d.ts.map +1 -1
  48. package/dist/internal.js +3 -9
  49. package/dist/internal.js.map +1 -1
  50. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -1
  51. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
  52. package/dist/legacy-runtime/RuntimeAdapter.js +37 -24
  53. package/dist/legacy-runtime/RuntimeAdapter.js.map +1 -1
  54. package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.d.ts +2 -2
  55. package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  56. package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.js +384 -80
  57. package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  58. package/dist/legacy-runtime/cloud/auiV0.d.ts +8 -9
  59. package/dist/legacy-runtime/cloud/auiV0.d.ts.map +1 -1
  60. package/dist/legacy-runtime/cloud/auiV0.js +20 -45
  61. package/dist/legacy-runtime/cloud/auiV0.js.map +1 -1
  62. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts +1 -1
  63. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  64. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js +4 -5
  65. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js.map +1 -1
  66. package/dist/legacy-runtime/hooks/AssistantContext.d.ts +11 -11
  67. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts +156 -156
  68. package/dist/legacy-runtime/hooks/ComposerContext.d.ts +11 -11
  69. package/dist/legacy-runtime/hooks/MessageContext.d.ts +22 -22
  70. package/dist/legacy-runtime/hooks/MessagePartContext.d.ts +11 -11
  71. package/dist/legacy-runtime/hooks/ThreadContext.d.ts +22 -22
  72. package/dist/legacy-runtime/hooks/ThreadListItemContext.d.ts +11 -11
  73. package/dist/legacy-runtime/runtime/AssistantRuntime.d.ts +2 -63
  74. package/dist/legacy-runtime/runtime/AssistantRuntime.d.ts.map +1 -1
  75. package/dist/legacy-runtime/runtime/AssistantRuntime.js +1 -45
  76. package/dist/legacy-runtime/runtime/AssistantRuntime.js.map +1 -1
  77. package/dist/legacy-runtime/runtime/AttachmentRuntime.d.ts +2 -62
  78. package/dist/legacy-runtime/runtime/AttachmentRuntime.d.ts.map +1 -1
  79. package/dist/legacy-runtime/runtime/AttachmentRuntime.js +1 -55
  80. package/dist/legacy-runtime/runtime/AttachmentRuntime.js.map +1 -1
  81. package/dist/legacy-runtime/runtime/ComposerRuntime.d.ts +3 -183
  82. package/dist/legacy-runtime/runtime/ComposerRuntime.d.ts.map +1 -1
  83. package/dist/legacy-runtime/runtime/ComposerRuntime.js +1 -249
  84. package/dist/legacy-runtime/runtime/ComposerRuntime.js.map +1 -1
  85. package/dist/legacy-runtime/runtime/MessagePartRuntime.d.ts +2 -39
  86. package/dist/legacy-runtime/runtime/MessagePartRuntime.d.ts.map +1 -1
  87. package/dist/legacy-runtime/runtime/MessagePartRuntime.js +1 -66
  88. package/dist/legacy-runtime/runtime/MessagePartRuntime.js.map +1 -1
  89. package/dist/legacy-runtime/runtime/MessageRuntime.d.ts +3 -91
  90. package/dist/legacy-runtime/runtime/MessageRuntime.d.ts.map +1 -1
  91. package/dist/legacy-runtime/runtime/MessageRuntime.js +1 -200
  92. package/dist/legacy-runtime/runtime/MessageRuntime.js.map +1 -1
  93. package/dist/legacy-runtime/runtime/RuntimeBindings.d.ts +2 -36
  94. package/dist/legacy-runtime/runtime/RuntimeBindings.d.ts.map +1 -1
  95. package/dist/legacy-runtime/runtime/RuntimeBindings.js +3 -0
  96. package/dist/legacy-runtime/runtime/RuntimeBindings.js.map +1 -1
  97. package/dist/legacy-runtime/runtime/RuntimePathTypes.d.ts +1 -63
  98. package/dist/legacy-runtime/runtime/RuntimePathTypes.d.ts.map +1 -1
  99. package/dist/legacy-runtime/runtime/ThreadListItemRuntime.d.ts +4 -49
  100. package/dist/legacy-runtime/runtime/ThreadListItemRuntime.d.ts.map +1 -1
  101. package/dist/legacy-runtime/runtime/ThreadListItemRuntime.js +1 -87
  102. package/dist/legacy-runtime/runtime/ThreadListItemRuntime.js.map +1 -1
  103. package/dist/legacy-runtime/runtime/ThreadListRuntime.d.ts +3 -43
  104. package/dist/legacy-runtime/runtime/ThreadListRuntime.d.ts.map +1 -1
  105. package/dist/legacy-runtime/runtime/ThreadListRuntime.js +1 -138
  106. package/dist/legacy-runtime/runtime/ThreadListRuntime.js.map +1 -1
  107. package/dist/legacy-runtime/runtime/ThreadRuntime.d.ts +3 -272
  108. package/dist/legacy-runtime/runtime/ThreadRuntime.d.ts.map +1 -1
  109. package/dist/legacy-runtime/runtime/ThreadRuntime.js +1 -242
  110. package/dist/legacy-runtime/runtime/ThreadRuntime.js.map +1 -1
  111. package/dist/legacy-runtime/runtime/index.d.ts +1 -8
  112. package/dist/legacy-runtime/runtime/index.d.ts.map +1 -1
  113. package/dist/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.d.ts +1 -2
  114. package/dist/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.d.ts.map +1 -1
  115. package/dist/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.js.map +1 -1
  116. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.d.ts +1 -2
  117. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.d.ts.map +1 -1
  118. package/dist/legacy-runtime/runtime-cores/adapters/attachment/index.d.ts +2 -4
  119. package/dist/legacy-runtime/runtime-cores/adapters/attachment/index.d.ts.map +1 -1
  120. package/dist/legacy-runtime/runtime-cores/adapters/attachment/index.js +2 -3
  121. package/dist/legacy-runtime/runtime-cores/adapters/attachment/index.js.map +1 -1
  122. package/dist/legacy-runtime/runtime-cores/adapters/feedback/index.d.ts +1 -1
  123. package/dist/legacy-runtime/runtime-cores/adapters/feedback/index.d.ts.map +1 -1
  124. package/dist/legacy-runtime/runtime-cores/adapters/speech/index.d.ts +2 -3
  125. package/dist/legacy-runtime/runtime-cores/adapters/speech/index.d.ts.map +1 -1
  126. package/dist/legacy-runtime/runtime-cores/adapters/speech/index.js +1 -2
  127. package/dist/legacy-runtime/runtime-cores/adapters/speech/index.js.map +1 -1
  128. package/dist/legacy-runtime/runtime-cores/adapters/suggestion/index.d.ts +1 -1
  129. package/dist/legacy-runtime/runtime-cores/adapters/suggestion/index.d.ts.map +1 -1
  130. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/index.d.ts +1 -2
  131. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/index.d.ts.map +1 -1
  132. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/index.js +1 -2
  133. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/index.js.map +1 -1
  134. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts +1 -1
  135. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts.map +1 -1
  136. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  137. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +2 -2
  138. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  139. package/dist/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.d.ts.map +1 -1
  140. package/dist/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.js +119 -28
  141. package/dist/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.js.map +1 -1
  142. package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.d.ts +1 -10
  143. package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.d.ts.map +1 -1
  144. package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.js +1 -19
  145. package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.js.map +1 -1
  146. package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.d.ts +1 -57
  147. package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.d.ts.map +1 -1
  148. package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.js +1 -326
  149. package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.js.map +1 -1
  150. package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.d.ts +1 -27
  151. package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.d.ts.map +1 -1
  152. package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.js +1 -49
  153. package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.js.map +1 -1
  154. package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.d.ts +1 -23
  155. package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.d.ts.map +1 -1
  156. package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.js +1 -40
  157. package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.js.map +1 -1
  158. package/dist/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.d.ts +1 -16
  159. package/dist/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.d.ts.map +1 -1
  160. package/dist/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.js.map +1 -1
  161. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.d.ts +1 -11
  162. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.d.ts.map +1 -1
  163. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.js +1 -10
  164. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.js.map +1 -1
  165. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.d.ts +1 -66
  166. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.d.ts.map +1 -1
  167. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.js +1 -159
  168. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.js.map +1 -1
  169. package/dist/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.d.ts +1 -64
  170. package/dist/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.d.ts.map +1 -1
  171. package/dist/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.js.map +1 -1
  172. package/dist/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.d.ts +1 -36
  173. package/dist/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.d.ts.map +1 -1
  174. package/dist/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.js.map +1 -1
  175. package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.d.ts +1 -110
  176. package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.d.ts.map +1 -1
  177. package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.js.map +1 -1
  178. package/dist/legacy-runtime/runtime-cores/core/index.d.ts +1 -2
  179. package/dist/legacy-runtime/runtime-cores/core/index.d.ts.map +1 -1
  180. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.d.ts +1 -80
  181. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.d.ts.map +1 -1
  182. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.js.map +1 -1
  183. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.d.ts +1 -8
  184. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.d.ts.map +1 -1
  185. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.js +1 -18
  186. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.js.map +1 -1
  187. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.d.ts +2 -41
  188. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -1
  189. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.js +1 -173
  190. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -1
  191. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts +1 -46
  192. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
  193. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js +1 -259
  194. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  195. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.d.ts +2 -6
  196. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.d.ts.map +1 -1
  197. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.js +1 -11
  198. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.js.map +1 -1
  199. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts +2 -33
  200. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts.map +1 -1
  201. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.js +1 -126
  202. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.js.map +1 -1
  203. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.d.ts +1 -4
  204. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.d.ts.map +1 -1
  205. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.js +1 -31
  206. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.js.map +1 -1
  207. package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.d.ts +1 -1
  208. package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.d.ts.map +1 -1
  209. package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.js.map +1 -1
  210. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.d.ts +2 -1
  211. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.d.ts.map +1 -1
  212. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.js +4 -1
  213. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.js.map +1 -1
  214. package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.d.ts +2 -8
  215. package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.d.ts.map +1 -1
  216. package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.js +2 -22
  217. package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.js.map +1 -1
  218. package/dist/legacy-runtime/runtime-cores/external-store/index.d.ts +3 -3
  219. package/dist/legacy-runtime/runtime-cores/external-store/index.d.ts.map +1 -1
  220. package/dist/legacy-runtime/runtime-cores/external-store/index.js +2 -1
  221. package/dist/legacy-runtime/runtime-cores/external-store/index.js.map +1 -1
  222. package/dist/legacy-runtime/runtime-cores/external-store/useExternalStoreRuntime.d.ts.map +1 -1
  223. package/dist/legacy-runtime/runtime-cores/external-store/useExternalStoreRuntime.js.map +1 -1
  224. package/dist/legacy-runtime/runtime-cores/index.d.ts +2 -1
  225. package/dist/legacy-runtime/runtime-cores/index.d.ts.map +1 -1
  226. package/dist/legacy-runtime/runtime-cores/index.js +1 -1
  227. package/dist/legacy-runtime/runtime-cores/index.js.map +1 -1
  228. package/dist/legacy-runtime/runtime-cores/local/ChatModelAdapter.d.ts +1 -38
  229. package/dist/legacy-runtime/runtime-cores/local/ChatModelAdapter.d.ts.map +1 -1
  230. package/dist/legacy-runtime/runtime-cores/local/ChatModelAdapter.js.map +1 -1
  231. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.d.ts +1 -10
  232. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.d.ts.map +1 -1
  233. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.js +1 -21
  234. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.js.map +1 -1
  235. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.d.ts +10 -30
  236. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.d.ts.map +1 -1
  237. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.js.map +1 -1
  238. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.d.ts +2 -45
  239. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.d.ts.map +1 -1
  240. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.js +1 -86
  241. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.js.map +1 -1
  242. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts +1 -58
  243. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts.map +1 -1
  244. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js +1 -415
  245. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js.map +1 -1
  246. package/dist/legacy-runtime/runtime-cores/local/index.d.ts +1 -1
  247. package/dist/legacy-runtime/runtime-cores/local/index.d.ts.map +1 -1
  248. package/dist/legacy-runtime/runtime-cores/local/index.js +1 -0
  249. package/dist/legacy-runtime/runtime-cores/local/index.js.map +1 -1
  250. package/dist/legacy-runtime/runtime-cores/local/shouldContinue.d.ts +1 -2
  251. package/dist/legacy-runtime/runtime-cores/local/shouldContinue.d.ts.map +1 -1
  252. package/dist/legacy-runtime/runtime-cores/local/shouldContinue.js +1 -13
  253. package/dist/legacy-runtime/runtime-cores/local/shouldContinue.js.map +1 -1
  254. package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.d.ts +1 -1
  255. package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.d.ts.map +1 -1
  256. package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.js.map +1 -1
  257. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.d.ts +1 -7
  258. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.d.ts.map +1 -1
  259. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.js +1 -37
  260. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.js.map +1 -1
  261. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.d.ts +1 -2
  262. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +1 -1
  263. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.js +1 -145
  264. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.js.map +1 -1
  265. package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.d.ts +1 -22
  266. package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.d.ts.map +1 -1
  267. package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.js +1 -56
  268. package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.js.map +1 -1
  269. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts +39 -39
  270. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  271. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.js +1 -1
  272. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.js.map +1 -1
  273. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +41 -67
  274. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  275. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +13 -72
  276. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  277. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.d.ts +1 -1
  278. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.d.ts.map +1 -1
  279. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.js +10 -3
  280. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.js.map +1 -1
  281. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.d.ts +1 -12
  282. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  283. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.js +1 -28
  284. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.js.map +1 -1
  285. package/dist/legacy-runtime/runtime-cores/remote-thread-list/index.d.ts +2 -2
  286. package/dist/legacy-runtime/runtime-cores/remote-thread-list/index.d.ts.map +1 -1
  287. package/dist/legacy-runtime/runtime-cores/remote-thread-list/index.js +2 -1
  288. package/dist/legacy-runtime/runtime-cores/remote-thread-list/index.js.map +1 -1
  289. package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.d.ts +1 -38
  290. package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.d.ts.map +1 -1
  291. package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.js.map +1 -1
  292. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.d.ts +2 -2
  293. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.d.ts.map +1 -1
  294. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.js +1 -2
  295. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.js.map +1 -1
  296. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.d.ts +3 -163
  297. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.d.ts.map +1 -1
  298. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js +2 -393
  299. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js.map +1 -1
  300. package/dist/model-context/frame/index.d.ts +4 -3
  301. package/dist/model-context/frame/index.d.ts.map +1 -1
  302. package/dist/model-context/frame/index.js +3 -3
  303. package/dist/model-context/frame/index.js.map +1 -1
  304. package/dist/model-context/frame/useAssistantFrameHost.d.ts +2 -2
  305. package/dist/model-context/frame/useAssistantFrameHost.d.ts.map +1 -1
  306. package/dist/model-context/frame/useAssistantFrameHost.js +1 -1
  307. package/dist/model-context/frame/useAssistantFrameHost.js.map +1 -1
  308. package/dist/model-context/index.d.ts +6 -3
  309. package/dist/model-context/index.d.ts.map +1 -1
  310. package/dist/model-context/index.js +5 -2
  311. package/dist/model-context/index.js.map +1 -1
  312. package/dist/model-context/makeAssistantDataUI.d.ts +7 -0
  313. package/dist/model-context/makeAssistantDataUI.d.ts.map +1 -0
  314. package/dist/model-context/makeAssistantDataUI.js +11 -0
  315. package/dist/model-context/makeAssistantDataUI.js.map +1 -0
  316. package/dist/model-context/makeAssistantTool.d.ts.map +1 -1
  317. package/dist/model-context/makeAssistantTool.js.map +1 -1
  318. package/dist/model-context/makeAssistantToolUI.d.ts.map +1 -1
  319. package/dist/model-context/makeAssistantToolUI.js.map +1 -1
  320. package/dist/model-context/makeAssistantVisible.js +1 -1
  321. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  322. package/dist/model-context/registry/index.d.ts +2 -2
  323. package/dist/model-context/registry/index.d.ts.map +1 -1
  324. package/dist/model-context/registry/index.js +1 -2
  325. package/dist/model-context/registry/index.js.map +1 -1
  326. package/dist/model-context/toolbox.d.ts.map +1 -1
  327. package/dist/model-context/toolbox.js.map +1 -1
  328. package/dist/model-context/useAssistantDataUI.d.ts +7 -0
  329. package/dist/model-context/useAssistantDataUI.d.ts.map +1 -0
  330. package/dist/model-context/useAssistantDataUI.js +12 -0
  331. package/dist/model-context/useAssistantDataUI.js.map +1 -0
  332. package/dist/model-context/useAssistantInstructions.d.ts +2 -4
  333. package/dist/model-context/useAssistantInstructions.d.ts.map +1 -1
  334. package/dist/model-context/useAssistantInstructions.js.map +1 -1
  335. package/dist/model-context/useAssistantTool.d.ts +2 -3
  336. package/dist/model-context/useAssistantTool.d.ts.map +1 -1
  337. package/dist/model-context/useAssistantTool.js.map +1 -1
  338. package/dist/model-context/useAssistantToolUI.d.ts.map +1 -1
  339. package/dist/model-context/useAssistantToolUI.js.map +1 -1
  340. package/dist/model-context/useInlineRender.d.ts.map +1 -1
  341. package/dist/model-context/useInlineRender.js.map +1 -1
  342. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
  343. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  344. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
  345. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  346. package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -1
  347. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
  348. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -1
  349. package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
  350. package/dist/primitives/actionBarMore/scope.d.ts.map +1 -1
  351. package/dist/primitives/actionBarMore/scope.js.map +1 -1
  352. package/dist/primitives/assistantModal/scope.d.ts.map +1 -1
  353. package/dist/primitives/assistantModal/scope.js.map +1 -1
  354. package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -1
  355. package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
  356. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
  357. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  358. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
  359. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  360. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts.map +1 -1
  361. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js.map +1 -1
  362. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  363. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  364. package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  365. package/dist/primitives/composer/ComposerAttachments.js.map +1 -1
  366. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
  367. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  368. package/dist/primitives/composer/ComposerDictate.d.ts.map +1 -1
  369. package/dist/primitives/composer/ComposerDictate.js.map +1 -1
  370. package/dist/primitives/composer/ComposerIf.d.ts.map +1 -1
  371. package/dist/primitives/composer/ComposerIf.js.map +1 -1
  372. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
  373. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  374. package/dist/primitives/composer/ComposerStopDictation.d.ts.map +1 -1
  375. package/dist/primitives/composer/ComposerStopDictation.js.map +1 -1
  376. package/dist/primitives/index.d.ts +1 -0
  377. package/dist/primitives/index.d.ts.map +1 -1
  378. package/dist/primitives/index.js +1 -0
  379. package/dist/primitives/index.js.map +1 -1
  380. package/dist/primitives/message/MessageAttachments.d.ts.map +1 -1
  381. package/dist/primitives/message/MessageAttachments.js.map +1 -1
  382. package/dist/primitives/message/MessageError.d.ts.map +1 -1
  383. package/dist/primitives/message/MessageError.js.map +1 -1
  384. package/dist/primitives/message/MessageIf.d.ts.map +1 -1
  385. package/dist/primitives/message/MessageIf.js.map +1 -1
  386. package/dist/primitives/message/MessageParts.d.ts +9 -1
  387. package/dist/primitives/message/MessageParts.d.ts.map +1 -1
  388. package/dist/primitives/message/MessageParts.js +17 -3
  389. package/dist/primitives/message/MessageParts.js.map +1 -1
  390. package/dist/primitives/message/MessagePartsGrouped.d.ts +8 -1
  391. package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
  392. package/dist/primitives/message/MessagePartsGrouped.js +17 -3
  393. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  394. package/dist/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  395. package/dist/primitives/messagePart/MessagePartInProgress.js.map +1 -1
  396. package/dist/primitives/messagePart/useMessagePartData.d.ts +1 -1
  397. package/dist/primitives/messagePart/useMessagePartData.d.ts.map +1 -1
  398. package/dist/primitives/messagePart/useMessagePartData.js.map +1 -1
  399. package/dist/primitives/messagePart/useMessagePartFile.d.ts +2 -2
  400. package/dist/primitives/messagePart/useMessagePartFile.d.ts.map +1 -1
  401. package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -1
  402. package/dist/primitives/messagePart/useMessagePartImage.d.ts +2 -2
  403. package/dist/primitives/messagePart/useMessagePartImage.d.ts.map +1 -1
  404. package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -1
  405. package/dist/primitives/messagePart/useMessagePartReasoning.d.ts +2 -2
  406. package/dist/primitives/messagePart/useMessagePartReasoning.d.ts.map +1 -1
  407. package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -1
  408. package/dist/primitives/messagePart/useMessagePartSource.d.ts +2 -2
  409. package/dist/primitives/messagePart/useMessagePartSource.d.ts.map +1 -1
  410. package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -1
  411. package/dist/primitives/messagePart/useMessagePartText.d.ts +3 -3
  412. package/dist/primitives/messagePart/useMessagePartText.d.ts.map +1 -1
  413. package/dist/primitives/messagePart/useMessagePartText.js.map +1 -1
  414. package/dist/primitives/reasoning/useScrollLock.d.ts.map +1 -1
  415. package/dist/primitives/reasoning/useScrollLock.js.map +1 -1
  416. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js +1 -1
  417. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js.map +1 -1
  418. package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -1
  419. package/dist/primitives/suggestion/SuggestionTrigger.js.map +1 -1
  420. package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -1
  421. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  422. package/dist/primitives/thread/ThreadIf.d.ts.map +1 -1
  423. package/dist/primitives/thread/ThreadIf.js.map +1 -1
  424. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
  425. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  426. package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -1
  427. package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -1
  428. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  429. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  430. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
  431. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  432. package/dist/primitives/threadListItemMore/scope.d.ts.map +1 -1
  433. package/dist/primitives/threadListItemMore/scope.js.map +1 -1
  434. package/dist/types/MessagePartComponentTypes.d.ts +4 -2
  435. package/dist/types/MessagePartComponentTypes.d.ts.map +1 -1
  436. package/dist/types/MessagePartComponentTypes.js.map +1 -1
  437. package/dist/types/index.d.ts +3 -6
  438. package/dist/types/index.d.ts.map +1 -1
  439. package/dist/types/scopes/dataRenderers.d.ts +13 -0
  440. package/dist/types/scopes/dataRenderers.d.ts.map +1 -0
  441. package/dist/types/scopes/dataRenderers.js +2 -0
  442. package/dist/types/scopes/dataRenderers.js.map +1 -0
  443. package/dist/types/scopes/index.d.ts +2 -11
  444. package/dist/types/scopes/index.d.ts.map +1 -1
  445. package/dist/types/scopes/tools.d.ts +1 -2
  446. package/dist/types/scopes/tools.d.ts.map +1 -1
  447. package/dist/types/store-augmentation.d.ts +5 -25
  448. package/dist/types/store-augmentation.d.ts.map +1 -1
  449. package/dist/types/store-augmentation.js +1 -1
  450. package/dist/types/store-augmentation.js.map +1 -1
  451. package/dist/utils/RequireAtLeastOne.d.ts.map +1 -1
  452. package/dist/utils/RequireAtLeastOne.js.map +1 -1
  453. package/dist/utils/hooks/useOnResizeContent.d.ts.map +1 -1
  454. package/dist/utils/hooks/useOnResizeContent.js.map +1 -1
  455. package/dist/utils/hooks/useOnScrollToBottom.d.ts.map +1 -1
  456. package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -1
  457. package/dist/utils/smooth/useSmooth.d.ts +1 -2
  458. package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
  459. package/dist/utils/smooth/useSmooth.js +17 -7
  460. package/dist/utils/smooth/useSmooth.js.map +1 -1
  461. package/dist/utils/useToolArgsFieldStatus.d.ts.map +1 -1
  462. package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
  463. package/package.json +8 -5
  464. package/src/client/DataRenderers.ts +42 -0
  465. package/src/client/ExternalThread.ts +144 -143
  466. package/src/client/InMemoryThreadList.ts +68 -54
  467. package/src/client/Tools.ts +10 -10
  468. package/src/client/index.ts +7 -3
  469. package/src/context/providers/ChainOfThoughtByIndicesProvider.tsx +2 -2
  470. package/src/context/providers/MessageByIndexProvider.tsx +1 -1
  471. package/src/context/providers/MessageProvider.tsx +2 -2
  472. package/src/context/providers/TextMessagePartProvider.tsx +6 -9
  473. package/src/context/providers/ThreadListItemProvider.tsx +1 -1
  474. package/src/context/react/utils/useRuntimeState.ts +1 -1
  475. package/src/context/stores/{ThreadViewport.tsx → ThreadViewport.ts} +1 -1
  476. package/src/devtools/DevToolsHooks.ts +1 -1
  477. package/src/hooks/useMessageQuote.ts +1 -1
  478. package/src/hooks/useMessageTiming.ts +24 -0
  479. package/src/internal.ts +22 -13
  480. package/src/legacy-runtime/AssistantRuntimeProvider.tsx +4 -2
  481. package/src/legacy-runtime/RuntimeAdapter.ts +42 -24
  482. package/src/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.ts +646 -0
  483. package/src/legacy-runtime/cloud/auiV0.ts +29 -53
  484. package/src/legacy-runtime/cloud/{useCloudThreadListRuntime.tsx → useCloudThreadListRuntime.ts} +5 -7
  485. package/src/legacy-runtime/runtime/AssistantRuntime.ts +2 -111
  486. package/src/legacy-runtime/runtime/AttachmentRuntime.ts +7 -119
  487. package/src/legacy-runtime/runtime/ComposerRuntime.ts +15 -497
  488. package/src/legacy-runtime/runtime/MessagePartRuntime.ts +2 -117
  489. package/src/legacy-runtime/runtime/MessageRuntime.ts +3 -335
  490. package/src/legacy-runtime/runtime/RuntimeBindings.ts +12 -69
  491. package/src/legacy-runtime/runtime/RuntimePathTypes.ts +8 -61
  492. package/src/legacy-runtime/runtime/ThreadListItemRuntime.ts +7 -152
  493. package/src/legacy-runtime/runtime/ThreadListRuntime.ts +6 -224
  494. package/src/legacy-runtime/runtime/ThreadRuntime.ts +14 -561
  495. package/src/legacy-runtime/runtime/index.ts +10 -13
  496. package/src/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.tsx +4 -2
  497. package/src/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.ts +4 -4
  498. package/src/legacy-runtime/runtime-cores/adapters/attachment/index.ts +9 -4
  499. package/src/legacy-runtime/runtime-cores/adapters/feedback/index.ts +2 -1
  500. package/src/legacy-runtime/runtime-cores/adapters/speech/index.ts +6 -3
  501. package/src/legacy-runtime/runtime-cores/adapters/suggestion/index.ts +2 -1
  502. package/src/legacy-runtime/runtime-cores/adapters/thread-history/index.ts +9 -2
  503. package/src/legacy-runtime/runtime-cores/assistant-transport/transport-scheduling.test.ts +136 -0
  504. package/src/legacy-runtime/runtime-cores/assistant-transport/types.ts +1 -1
  505. package/src/legacy-runtime/runtime-cores/assistant-transport/{useAssistantTransportRuntime.tsx → useAssistantTransportRuntime.ts} +5 -5
  506. package/src/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.test.ts +223 -0
  507. package/src/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.ts +171 -42
  508. package/src/legacy-runtime/runtime-cores/assistant-transport/utils.ts +5 -37
  509. package/src/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.ts +1 -0
  510. package/src/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.ts +1 -0
  511. package/src/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.ts +1 -0
  512. package/src/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.ts +1 -0
  513. package/src/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.ts +1 -0
  514. package/src/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.ts +1 -0
  515. package/src/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.ts +6 -0
  516. package/src/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.ts +4 -0
  517. package/src/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.ts +13 -0
  518. package/src/legacy-runtime/runtime-cores/core/index.ts +3 -3
  519. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.ts +6 -0
  520. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.ts +1 -0
  521. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.ts +2 -0
  522. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.ts +4 -0
  523. package/src/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.ts +2 -23
  524. package/src/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.ts +2 -0
  525. package/src/legacy-runtime/runtime-cores/external-store/auto-status.ts +1 -0
  526. package/src/legacy-runtime/runtime-cores/external-store/{createMessageConverter.tsx → createMessageConverter.ts} +1 -1
  527. package/src/legacy-runtime/runtime-cores/external-store/{external-message-converter.tsx → external-message-converter.ts} +13 -4
  528. package/src/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.ts +5 -0
  529. package/src/legacy-runtime/runtime-cores/external-store/index.ts +9 -6
  530. package/src/legacy-runtime/runtime-cores/external-store/{useExternalStoreRuntime.tsx → useExternalStoreRuntime.ts} +1 -1
  531. package/src/legacy-runtime/runtime-cores/index.ts +3 -4
  532. package/src/legacy-runtime/runtime-cores/local/ChatModelAdapter.ts +7 -0
  533. package/src/legacy-runtime/runtime-cores/local/LocalRuntimeCore.ts +1 -0
  534. package/src/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.ts +36 -0
  535. package/src/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.ts +2 -0
  536. package/src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.ts +1 -0
  537. package/src/legacy-runtime/runtime-cores/local/index.ts +10 -6
  538. package/src/legacy-runtime/runtime-cores/local/shouldContinue.ts +1 -0
  539. package/src/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.ts +1 -0
  540. package/src/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.ts +1 -0
  541. package/src/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.ts +1 -89
  542. package/src/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.tsx +1 -1
  543. package/src/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +33 -136
  544. package/src/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.tsx +11 -3
  545. package/src/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.ts +1 -0
  546. package/src/legacy-runtime/runtime-cores/remote-thread-list/index.ts +5 -3
  547. package/src/legacy-runtime/runtime-cores/remote-thread-list/types.ts +7 -0
  548. package/src/legacy-runtime/runtime-cores/remote-thread-list/{useRemoteThreadListRuntime.tsx → useRemoteThreadListRuntime.ts} +9 -5
  549. package/src/legacy-runtime/runtime-cores/utils/MessageRepository.ts +3 -0
  550. package/src/model-context/frame/AssistantFrame.test.ts +6 -4
  551. package/src/model-context/frame/index.ts +9 -3
  552. package/src/model-context/frame/useAssistantFrameHost.ts +2 -2
  553. package/src/model-context/index.ts +12 -3
  554. package/src/model-context/makeAssistantDataUI.ts +22 -0
  555. package/src/model-context/makeAssistantVisible.tsx +1 -1
  556. package/src/model-context/registry/index.ts +6 -2
  557. package/src/model-context/useAssistantDataUI.ts +18 -0
  558. package/src/model-context/{useAssistantInstructions.tsx → useAssistantInstructions.ts} +2 -4
  559. package/src/model-context/{useAssistantTool.tsx → useAssistantTool.ts} +2 -3
  560. package/src/primitives/composer/ComposerAttachments.tsx +1 -1
  561. package/src/primitives/index.ts +1 -0
  562. package/src/primitives/message/MessageAttachments.tsx +1 -1
  563. package/src/primitives/message/MessageParts.tsx +33 -3
  564. package/src/primitives/message/MessagePartsGrouped.tsx +35 -3
  565. package/src/primitives/messagePart/{useMessagePartData.tsx → useMessagePartData.ts} +1 -1
  566. package/src/primitives/messagePart/{useMessagePartFile.tsx → useMessagePartFile.ts} +1 -2
  567. package/src/primitives/messagePart/{useMessagePartImage.tsx → useMessagePartImage.ts} +1 -2
  568. package/src/primitives/messagePart/{useMessagePartReasoning.tsx → useMessagePartReasoning.ts} +4 -2
  569. package/src/primitives/messagePart/{useMessagePartSource.tsx → useMessagePartSource.ts} +1 -2
  570. package/src/primitives/messagePart/{useMessagePartText.tsx → useMessagePartText.ts} +5 -2
  571. package/src/primitives/selectionToolbar/SelectionToolbarQuote.tsx +1 -1
  572. package/src/primitives/thread/ThreadMessages.tsx +1 -1
  573. package/src/primitives/threadListItem/ThreadListItemTitle.test.tsx +52 -0
  574. package/src/tests/BaseComposerRuntimeCore.test.ts +318 -0
  575. package/src/tests/BaseSubscribable.test.ts +54 -0
  576. package/src/tests/DataRenderers.test.ts +223 -0
  577. package/src/tests/ExternalStoreThreadRuntimeCore.test.ts +510 -0
  578. package/src/tests/LocalThreadRuntimeCore.test.ts +321 -0
  579. package/src/tests/external-message-converter.test.ts +1 -1
  580. package/src/tests/shouldContinue.test.ts +89 -0
  581. package/src/types/{MessagePartComponentTypes.tsx → MessagePartComponentTypes.ts} +9 -2
  582. package/src/types/index.ts +9 -10
  583. package/src/types/scopes/dataRenderers.ts +15 -0
  584. package/src/types/scopes/index.ts +10 -22
  585. package/src/types/scopes/tools.ts +1 -2
  586. package/src/types/store-augmentation.ts +5 -25
  587. package/src/utils/smooth/SmoothContext.tsx +2 -2
  588. package/src/utils/smooth/{useSmooth.tsx → useSmooth.ts} +21 -10
  589. package/dist/client/ChainOfThoughtClient.d.ts +0 -15
  590. package/dist/client/ChainOfThoughtClient.d.ts.map +0 -1
  591. package/dist/client/ChainOfThoughtClient.js +0 -21
  592. package/dist/client/ChainOfThoughtClient.js.map +0 -1
  593. package/dist/client/ModelContextClient.d.ts +0 -3
  594. package/dist/client/ModelContextClient.d.ts.map +0 -1
  595. package/dist/client/ModelContextClient.js +0 -17
  596. package/dist/client/ModelContextClient.js.map +0 -1
  597. package/dist/client/NoOpComposerClient.d.ts +0 -7
  598. package/dist/client/NoOpComposerClient.d.ts.map +0 -1
  599. package/dist/client/NoOpComposerClient.js +0 -65
  600. package/dist/client/NoOpComposerClient.js.map +0 -1
  601. package/dist/client/Suggestions.d.ts +0 -11
  602. package/dist/client/Suggestions.d.ts.map +0 -1
  603. package/dist/client/Suggestions.js +0 -43
  604. package/dist/client/Suggestions.js.map +0 -1
  605. package/dist/client/ThreadMessageClient.d.ts +0 -11
  606. package/dist/client/ThreadMessageClient.d.ts.map +0 -1
  607. package/dist/client/ThreadMessageClient.js +0 -121
  608. package/dist/client/ThreadMessageClient.js.map +0 -1
  609. package/dist/legacy-runtime/client/AttachmentRuntimeClient.d.ts +0 -8
  610. package/dist/legacy-runtime/client/AttachmentRuntimeClient.d.ts.map +0 -1
  611. package/dist/legacy-runtime/client/AttachmentRuntimeClient.js +0 -14
  612. package/dist/legacy-runtime/client/AttachmentRuntimeClient.js.map +0 -1
  613. package/dist/legacy-runtime/client/ComposerRuntimeClient.d.ts +0 -13
  614. package/dist/legacy-runtime/client/ComposerRuntimeClient.d.ts.map +0 -1
  615. package/dist/legacy-runtime/client/ComposerRuntimeClient.js +0 -86
  616. package/dist/legacy-runtime/client/ComposerRuntimeClient.js.map +0 -1
  617. package/dist/legacy-runtime/client/MessagePartRuntimeClient.d.ts +0 -8
  618. package/dist/legacy-runtime/client/MessagePartRuntimeClient.d.ts.map +0 -1
  619. package/dist/legacy-runtime/client/MessagePartRuntimeClient.js +0 -15
  620. package/dist/legacy-runtime/client/MessagePartRuntimeClient.js.map +0 -1
  621. package/dist/legacy-runtime/client/MessageRuntimeClient.d.ts +0 -11
  622. package/dist/legacy-runtime/client/MessageRuntimeClient.d.ts.map +0 -1
  623. package/dist/legacy-runtime/client/MessageRuntimeClient.js +0 -81
  624. package/dist/legacy-runtime/client/MessageRuntimeClient.js.map +0 -1
  625. package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.d.ts +0 -8
  626. package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.d.ts.map +0 -1
  627. package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.js +0 -44
  628. package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.js.map +0 -1
  629. package/dist/legacy-runtime/client/ThreadListRuntimeClient.d.ts +0 -11
  630. package/dist/legacy-runtime/client/ThreadListRuntimeClient.d.ts.map +0 -1
  631. package/dist/legacy-runtime/client/ThreadListRuntimeClient.js +0 -57
  632. package/dist/legacy-runtime/client/ThreadListRuntimeClient.js.map +0 -1
  633. package/dist/legacy-runtime/client/ThreadRuntimeClient.d.ts +0 -8
  634. package/dist/legacy-runtime/client/ThreadRuntimeClient.d.ts.map +0 -1
  635. package/dist/legacy-runtime/client/ThreadRuntimeClient.js +0 -94
  636. package/dist/legacy-runtime/client/ThreadRuntimeClient.js.map +0 -1
  637. package/dist/legacy-runtime/runtime/subscribable/BaseSubject.d.ts +0 -11
  638. package/dist/legacy-runtime/runtime/subscribable/BaseSubject.d.ts.map +0 -1
  639. package/dist/legacy-runtime/runtime/subscribable/BaseSubject.js +0 -31
  640. package/dist/legacy-runtime/runtime/subscribable/BaseSubject.js.map +0 -1
  641. package/dist/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.d.ts +0 -13
  642. package/dist/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.d.ts.map +0 -1
  643. package/dist/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.js +0 -37
  644. package/dist/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.js.map +0 -1
  645. package/dist/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.d.ts +0 -13
  646. package/dist/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.d.ts.map +0 -1
  647. package/dist/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.js +0 -34
  648. package/dist/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.js.map +0 -1
  649. package/dist/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.d.ts +0 -12
  650. package/dist/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.d.ts.map +0 -1
  651. package/dist/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.js +0 -39
  652. package/dist/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.js.map +0 -1
  653. package/dist/legacy-runtime/runtime/subscribable/SKIP_UPDATE.d.ts +0 -3
  654. package/dist/legacy-runtime/runtime/subscribable/SKIP_UPDATE.d.ts.map +0 -1
  655. package/dist/legacy-runtime/runtime/subscribable/SKIP_UPDATE.js +0 -2
  656. package/dist/legacy-runtime/runtime/subscribable/SKIP_UPDATE.js.map +0 -1
  657. package/dist/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.d.ts +0 -13
  658. package/dist/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.d.ts.map +0 -1
  659. package/dist/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.js +0 -41
  660. package/dist/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.js.map +0 -1
  661. package/dist/legacy-runtime/runtime/subscribable/Subscribable.d.ts +0 -16
  662. package/dist/legacy-runtime/runtime/subscribable/Subscribable.d.ts.map +0 -1
  663. package/dist/legacy-runtime/runtime/subscribable/Subscribable.js +0 -2
  664. package/dist/legacy-runtime/runtime/subscribable/Subscribable.js.map +0 -1
  665. package/dist/legacy-runtime/runtime/subscribable/shallowEqual.d.ts +0 -2
  666. package/dist/legacy-runtime/runtime/subscribable/shallowEqual.d.ts.map +0 -1
  667. package/dist/legacy-runtime/runtime/subscribable/shallowEqual.js +0 -16
  668. package/dist/legacy-runtime/runtime/subscribable/shallowEqual.js.map +0 -1
  669. package/dist/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.d.ts +0 -64
  670. package/dist/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.d.ts.map +0 -1
  671. package/dist/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.js +0 -2
  672. package/dist/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.js.map +0 -1
  673. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.d.ts +0 -13
  674. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.d.ts.map +0 -1
  675. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.js +0 -79
  676. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.js.map +0 -1
  677. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.d.ts +0 -11
  678. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.d.ts.map +0 -1
  679. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.js +0 -35
  680. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.js.map +0 -1
  681. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.d.ts +0 -11
  682. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.d.ts.map +0 -1
  683. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.js +0 -35
  684. package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.js.map +0 -1
  685. package/dist/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.d.ts +0 -43
  686. package/dist/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.d.ts.map +0 -1
  687. package/dist/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.js +0 -2
  688. package/dist/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.js.map +0 -1
  689. package/dist/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.d.ts +0 -110
  690. package/dist/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.d.ts.map +0 -1
  691. package/dist/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.js +0 -2
  692. package/dist/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.js.map +0 -1
  693. package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechDictationAdapter.d.ts +0 -61
  694. package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechDictationAdapter.d.ts.map +0 -1
  695. package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechDictationAdapter.js +0 -152
  696. package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechDictationAdapter.js.map +0 -1
  697. package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.d.ts +0 -5
  698. package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.d.ts.map +0 -1
  699. package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.js +0 -42
  700. package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.js.map +0 -1
  701. package/dist/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.d.ts +0 -10
  702. package/dist/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.d.ts.map +0 -1
  703. package/dist/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.js +0 -2
  704. package/dist/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.js.map +0 -1
  705. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/MessageFormatAdapter.d.ts +0 -21
  706. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/MessageFormatAdapter.d.ts.map +0 -1
  707. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/MessageFormatAdapter.js +0 -2
  708. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/MessageFormatAdapter.js.map +0 -1
  709. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/ThreadHistoryAdapter.d.ts +0 -16
  710. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/ThreadHistoryAdapter.d.ts.map +0 -1
  711. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/ThreadHistoryAdapter.js +0 -2
  712. package/dist/legacy-runtime/runtime-cores/adapters/thread-history/ThreadHistoryAdapter.js.map +0 -1
  713. package/dist/legacy-runtime/util-hooks/tapSubscribable.d.ts +0 -3
  714. package/dist/legacy-runtime/util-hooks/tapSubscribable.d.ts.map +0 -1
  715. package/dist/legacy-runtime/util-hooks/tapSubscribable.js +0 -12
  716. package/dist/legacy-runtime/util-hooks/tapSubscribable.js.map +0 -1
  717. package/dist/model-context/ModelContextTypes.d.ts +0 -29
  718. package/dist/model-context/ModelContextTypes.d.ts.map +0 -1
  719. package/dist/model-context/ModelContextTypes.js +0 -41
  720. package/dist/model-context/ModelContextTypes.js.map +0 -1
  721. package/dist/model-context/frame/AssistantFrameHost.d.ts +0 -37
  722. package/dist/model-context/frame/AssistantFrameHost.d.ts.map +0 -1
  723. package/dist/model-context/frame/AssistantFrameHost.js +0 -161
  724. package/dist/model-context/frame/AssistantFrameHost.js.map +0 -1
  725. package/dist/model-context/frame/AssistantFrameProvider.d.ts +0 -41
  726. package/dist/model-context/frame/AssistantFrameProvider.d.ts.map +0 -1
  727. package/dist/model-context/frame/AssistantFrameProvider.js +0 -167
  728. package/dist/model-context/frame/AssistantFrameProvider.js.map +0 -1
  729. package/dist/model-context/frame/AssistantFrameTypes.d.ts +0 -29
  730. package/dist/model-context/frame/AssistantFrameTypes.d.ts.map +0 -1
  731. package/dist/model-context/frame/AssistantFrameTypes.js +0 -2
  732. package/dist/model-context/frame/AssistantFrameTypes.js.map +0 -1
  733. package/dist/model-context/registry/ModelContextRegistry.d.ts +0 -19
  734. package/dist/model-context/registry/ModelContextRegistry.d.ts.map +0 -1
  735. package/dist/model-context/registry/ModelContextRegistry.js +0 -114
  736. package/dist/model-context/registry/ModelContextRegistry.js.map +0 -1
  737. package/dist/model-context/registry/ModelContextRegistryHandles.d.ts +0 -14
  738. package/dist/model-context/registry/ModelContextRegistryHandles.d.ts.map +0 -1
  739. package/dist/model-context/registry/ModelContextRegistryHandles.js +0 -2
  740. package/dist/model-context/registry/ModelContextRegistryHandles.js.map +0 -1
  741. package/dist/model-context/tool.d.ts +0 -3
  742. package/dist/model-context/tool.d.ts.map +0 -1
  743. package/dist/model-context/tool.js +0 -5
  744. package/dist/model-context/tool.js.map +0 -1
  745. package/dist/types/AssistantTypes.d.ts +0 -108
  746. package/dist/types/AssistantTypes.d.ts.map +0 -1
  747. package/dist/types/AssistantTypes.js +0 -2
  748. package/dist/types/AssistantTypes.js.map +0 -1
  749. package/dist/types/AttachmentTypes.d.ts +0 -35
  750. package/dist/types/AttachmentTypes.d.ts.map +0 -1
  751. package/dist/types/AttachmentTypes.js +0 -2
  752. package/dist/types/AttachmentTypes.js.map +0 -1
  753. package/dist/types/MessagePartTypes.d.ts +0 -62
  754. package/dist/types/MessagePartTypes.d.ts.map +0 -1
  755. package/dist/types/MessagePartTypes.js +0 -2
  756. package/dist/types/MessagePartTypes.js.map +0 -1
  757. package/dist/types/QuoteTypes.d.ts +0 -5
  758. package/dist/types/QuoteTypes.d.ts.map +0 -1
  759. package/dist/types/QuoteTypes.js +0 -2
  760. package/dist/types/QuoteTypes.js.map +0 -1
  761. package/dist/types/Unsubscribe.d.ts +0 -2
  762. package/dist/types/Unsubscribe.d.ts.map +0 -1
  763. package/dist/types/Unsubscribe.js +0 -2
  764. package/dist/types/Unsubscribe.js.map +0 -1
  765. package/dist/types/scopes/attachment.d.ts +0 -22
  766. package/dist/types/scopes/attachment.d.ts.map +0 -1
  767. package/dist/types/scopes/attachment.js +0 -2
  768. package/dist/types/scopes/attachment.js.map +0 -1
  769. package/dist/types/scopes/chainOfThought.d.ts +0 -40
  770. package/dist/types/scopes/chainOfThought.d.ts.map +0 -1
  771. package/dist/types/scopes/chainOfThought.js +0 -2
  772. package/dist/types/scopes/chainOfThought.js.map +0 -1
  773. package/dist/types/scopes/composer.d.ts +0 -77
  774. package/dist/types/scopes/composer.d.ts.map +0 -1
  775. package/dist/types/scopes/composer.js +0 -2
  776. package/dist/types/scopes/composer.js.map +0 -1
  777. package/dist/types/scopes/message.d.ts +0 -87
  778. package/dist/types/scopes/message.d.ts.map +0 -1
  779. package/dist/types/scopes/message.js +0 -2
  780. package/dist/types/scopes/message.js.map +0 -1
  781. package/dist/types/scopes/modelContext.d.ts +0 -12
  782. package/dist/types/scopes/modelContext.d.ts.map +0 -1
  783. package/dist/types/scopes/modelContext.js +0 -2
  784. package/dist/types/scopes/modelContext.js.map +0 -1
  785. package/dist/types/scopes/part.d.ts +0 -43
  786. package/dist/types/scopes/part.d.ts.map +0 -1
  787. package/dist/types/scopes/part.js +0 -2
  788. package/dist/types/scopes/part.js.map +0 -1
  789. package/dist/types/scopes/suggestion.d.ts +0 -20
  790. package/dist/types/scopes/suggestion.d.ts.map +0 -1
  791. package/dist/types/scopes/suggestion.js +0 -2
  792. package/dist/types/scopes/suggestion.js.map +0 -1
  793. package/dist/types/scopes/suggestions.d.ts +0 -20
  794. package/dist/types/scopes/suggestions.d.ts.map +0 -1
  795. package/dist/types/scopes/suggestions.js +0 -2
  796. package/dist/types/scopes/suggestions.js.map +0 -1
  797. package/dist/types/scopes/thread.d.ts +0 -138
  798. package/dist/types/scopes/thread.d.ts.map +0 -1
  799. package/dist/types/scopes/thread.js +0 -2
  800. package/dist/types/scopes/thread.js.map +0 -1
  801. package/dist/types/scopes/threadListItem.d.ts +0 -50
  802. package/dist/types/scopes/threadListItem.d.ts.map +0 -1
  803. package/dist/types/scopes/threadListItem.js +0 -2
  804. package/dist/types/scopes/threadListItem.js.map +0 -1
  805. package/dist/types/scopes/threads.d.ts +0 -28
  806. package/dist/types/scopes/threads.d.ts.map +0 -1
  807. package/dist/types/scopes/threads.js +0 -2
  808. package/dist/types/scopes/threads.js.map +0 -1
  809. package/dist/utils/CompositeContextProvider.d.ts +0 -10
  810. package/dist/utils/CompositeContextProvider.d.ts.map +0 -1
  811. package/dist/utils/CompositeContextProvider.js +0 -29
  812. package/dist/utils/CompositeContextProvider.js.map +0 -1
  813. package/dist/utils/getThreadMessageText.d.ts +0 -3
  814. package/dist/utils/getThreadMessageText.d.ts.map +0 -1
  815. package/dist/utils/getThreadMessageText.js +0 -5
  816. package/dist/utils/getThreadMessageText.js.map +0 -1
  817. package/dist/utils/idUtils.d.ts +0 -6
  818. package/dist/utils/idUtils.d.ts.map +0 -1
  819. package/dist/utils/idUtils.js +0 -9
  820. package/dist/utils/idUtils.js.map +0 -1
  821. package/src/client/ChainOfThoughtClient.ts +0 -43
  822. package/src/client/ModelContextClient.ts +0 -23
  823. package/src/client/NoOpComposerClient.tsx +0 -70
  824. package/src/client/Suggestions.ts +0 -74
  825. package/src/client/ThreadMessageClient.tsx +0 -178
  826. package/src/legacy-runtime/client/AttachmentRuntimeClient.ts +0 -19
  827. package/src/legacy-runtime/client/ComposerRuntimeClient.ts +0 -138
  828. package/src/legacy-runtime/client/MessagePartRuntimeClient.ts +0 -20
  829. package/src/legacy-runtime/client/MessageRuntimeClient.ts +0 -151
  830. package/src/legacy-runtime/client/ThreadListItemRuntimeClient.ts +0 -59
  831. package/src/legacy-runtime/client/ThreadListRuntimeClient.ts +0 -100
  832. package/src/legacy-runtime/client/ThreadRuntimeClient.ts +0 -148
  833. package/src/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.tsx +0 -182
  834. package/src/legacy-runtime/runtime/subscribable/BaseSubject.ts +0 -36
  835. package/src/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.ts +0 -44
  836. package/src/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.ts +0 -42
  837. package/src/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.ts +0 -58
  838. package/src/legacy-runtime/runtime/subscribable/SKIP_UPDATE.ts +0 -2
  839. package/src/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.ts +0 -47
  840. package/src/legacy-runtime/runtime/subscribable/Subscribable.ts +0 -26
  841. package/src/legacy-runtime/runtime/subscribable/shallowEqual.ts +0 -16
  842. package/src/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.ts +0 -71
  843. package/src/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.ts +0 -107
  844. package/src/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.ts +0 -49
  845. package/src/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.ts +0 -50
  846. package/src/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.ts +0 -43
  847. package/src/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.ts +0 -121
  848. package/src/legacy-runtime/runtime-cores/adapters/speech/WebSpeechDictationAdapter.ts +0 -255
  849. package/src/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.ts +0 -48
  850. package/src/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.ts +0 -14
  851. package/src/legacy-runtime/runtime-cores/adapters/thread-history/MessageFormatAdapter.ts +0 -25
  852. package/src/legacy-runtime/runtime-cores/adapters/thread-history/ThreadHistoryAdapter.ts +0 -26
  853. package/src/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.tsx +0 -423
  854. package/src/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.tsx +0 -72
  855. package/src/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.tsx +0 -65
  856. package/src/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.tsx +0 -19
  857. package/src/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.tsx +0 -20
  858. package/src/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.tsx +0 -237
  859. package/src/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.tsx +0 -90
  860. package/src/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.tsx +0 -49
  861. package/src/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.tsx +0 -154
  862. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.tsx +0 -111
  863. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.tsx +0 -26
  864. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.tsx +0 -235
  865. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.tsx +0 -368
  866. package/src/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.tsx +0 -227
  867. package/src/legacy-runtime/runtime-cores/external-store/auto-status.tsx +0 -67
  868. package/src/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.tsx +0 -37
  869. package/src/legacy-runtime/runtime-cores/local/ChatModelAdapter.tsx +0 -64
  870. package/src/legacy-runtime/runtime-cores/local/LocalRuntimeCore.tsx +0 -32
  871. package/src/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.tsx +0 -60
  872. package/src/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.tsx +0 -116
  873. package/src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.tsx +0 -519
  874. package/src/legacy-runtime/runtime-cores/local/shouldContinue.tsx +0 -26
  875. package/src/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.tsx +0 -41
  876. package/src/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.tsx +0 -200
  877. package/src/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.tsx +0 -43
  878. package/src/legacy-runtime/runtime-cores/remote-thread-list/types.tsx +0 -49
  879. package/src/legacy-runtime/runtime-cores/utils/MessageRepository.tsx +0 -551
  880. package/src/legacy-runtime/util-hooks/tapSubscribable.ts +0 -16
  881. package/src/model-context/ModelContextTypes.ts +0 -76
  882. package/src/model-context/frame/AssistantFrameHost.ts +0 -218
  883. package/src/model-context/frame/AssistantFrameProvider.ts +0 -230
  884. package/src/model-context/frame/AssistantFrameTypes.ts +0 -40
  885. package/src/model-context/registry/ModelContextRegistry.ts +0 -165
  886. package/src/model-context/registry/ModelContextRegistryHandles.ts +0 -19
  887. package/src/model-context/tool.ts +0 -9
  888. package/src/tests/MessageRepository.test.ts +0 -786
  889. package/src/types/AssistantTypes.ts +0 -166
  890. package/src/types/AttachmentTypes.ts +0 -45
  891. package/src/types/MessagePartTypes.ts +0 -82
  892. package/src/types/QuoteTypes.ts +0 -4
  893. package/src/types/Unsubscribe.tsx +0 -1
  894. package/src/types/scopes/attachment.ts +0 -22
  895. package/src/types/scopes/chainOfThought.ts +0 -42
  896. package/src/types/scopes/composer.ts +0 -80
  897. package/src/types/scopes/message.ts +0 -78
  898. package/src/types/scopes/modelContext.ts +0 -14
  899. package/src/types/scopes/part.ts +0 -49
  900. package/src/types/scopes/suggestion.ts +0 -20
  901. package/src/types/scopes/suggestions.ts +0 -21
  902. package/src/types/scopes/thread.ts +0 -141
  903. package/src/types/scopes/threadListItem.ts +0 -44
  904. package/src/types/scopes/threads.ts +0 -36
  905. package/src/utils/CompositeContextProvider.ts +0 -36
  906. package/src/utils/getThreadMessageText.tsx +0 -15
  907. package/src/utils/idUtils.tsx +0 -14
  908. /package/src/legacy-runtime/runtime-cores/local/{useLocalRuntime.tsx → useLocalRuntime.ts} +0 -0
  909. /package/src/model-context/{makeAssistantTool.tsx → makeAssistantTool.ts} +0 -0
  910. /package/src/model-context/{makeAssistantToolUI.tsx → makeAssistantToolUI.ts} +0 -0
  911. /package/src/model-context/{toolbox.tsx → toolbox.ts} +0 -0
  912. /package/src/model-context/{useAssistantToolUI.tsx → useAssistantToolUI.ts} +0 -0
  913. /package/src/model-context/{useInlineRender.tsx → useInlineRender.ts} +0 -0
  914. /package/src/primitives/actionBar/{ActionBarEdit.tsx → ActionBarEdit.ts} +0 -0
  915. /package/src/primitives/actionBar/{ActionBarReload.tsx → ActionBarReload.ts} +0 -0
  916. /package/src/primitives/actionBar/{ActionBarSpeak.tsx → ActionBarSpeak.ts} +0 -0
  917. /package/src/primitives/actionBar/{useActionBarFloatStatus.tsx → useActionBarFloatStatus.ts} +0 -0
  918. /package/src/primitives/actionBarMore/{scope.tsx → scope.ts} +0 -0
  919. /package/src/primitives/assistantModal/{scope.tsx → scope.ts} +0 -0
  920. /package/src/primitives/attachment/{AttachmentRemove.tsx → AttachmentRemove.ts} +0 -0
  921. /package/src/primitives/branchPicker/{BranchPickerNext.tsx → BranchPickerNext.ts} +0 -0
  922. /package/src/primitives/branchPicker/{BranchPickerPrevious.tsx → BranchPickerPrevious.ts} +0 -0
  923. /package/src/primitives/chainOfThought/{ChainOfThoughtAccordionTrigger.tsx → ChainOfThoughtAccordionTrigger.ts} +0 -0
  924. /package/src/primitives/composer/{ComposerAddAttachment.tsx → ComposerAddAttachment.ts} +0 -0
  925. /package/src/primitives/composer/{ComposerCancel.tsx → ComposerCancel.ts} +0 -0
  926. /package/src/primitives/composer/{ComposerDictate.tsx → ComposerDictate.ts} +0 -0
  927. /package/src/primitives/composer/{ComposerIf.tsx → ComposerIf.ts} +0 -0
  928. /package/src/primitives/composer/{ComposerSend.tsx → ComposerSend.ts} +0 -0
  929. /package/src/primitives/composer/{ComposerStopDictation.tsx → ComposerStopDictation.ts} +0 -0
  930. /package/src/primitives/message/{MessageError.tsx → MessageError.ts} +0 -0
  931. /package/src/primitives/message/{MessageIf.tsx → MessageIf.ts} +0 -0
  932. /package/src/primitives/messagePart/{MessagePartInProgress.tsx → MessagePartInProgress.ts} +0 -0
  933. /package/src/primitives/reasoning/{useScrollLock.tsx → useScrollLock.ts} +0 -0
  934. /package/src/primitives/suggestion/{SuggestionTrigger.tsx → SuggestionTrigger.ts} +0 -0
  935. /package/src/primitives/thread/{ThreadEmpty.tsx → ThreadEmpty.ts} +0 -0
  936. /package/src/primitives/thread/{ThreadIf.tsx → ThreadIf.ts} +0 -0
  937. /package/src/primitives/thread/{ThreadScrollToBottom.tsx → ThreadScrollToBottom.ts} +0 -0
  938. /package/src/primitives/thread/{ThreadSuggestion.tsx → ThreadSuggestion.ts} +0 -0
  939. /package/src/primitives/thread/{useThreadViewportAutoScroll.tsx → useThreadViewportAutoScroll.ts} +0 -0
  940. /package/src/primitives/threadListItemMore/{scope.tsx → scope.ts} +0 -0
  941. /package/src/utils/{RequireAtLeastOne.tsx → RequireAtLeastOne.ts} +0 -0
  942. /package/src/utils/hooks/{useOnResizeContent.tsx → useOnResizeContent.ts} +0 -0
  943. /package/src/utils/hooks/{useOnScrollToBottom.tsx → useOnScrollToBottom.ts} +0 -0
  944. /package/src/utils/{useToolArgsFieldStatus.tsx → useToolArgsFieldStatus.ts} +0 -0
@@ -1,786 +0,0 @@
1
- import { describe, it, expect, beforeEach, vi, afterEach } from "vitest";
2
- import {
3
- MessageRepository,
4
- ExportedMessageRepository,
5
- } from "../legacy-runtime/runtime-cores/utils/MessageRepository";
6
- import type { ThreadMessage, TextMessagePart } from "../types/AssistantTypes";
7
- import type { ThreadMessageLike } from "../legacy-runtime/runtime-cores";
8
-
9
- // Mock generateId and generateOptimisticId to make tests deterministic
10
- const mockGenerateId = vi.fn();
11
- const mockGenerateOptimisticId = vi.fn();
12
- const mockIsOptimisticId = vi.fn((id: string) =>
13
- id.startsWith("__optimistic__"),
14
- );
15
-
16
- vi.mock("../utils/idUtils", () => ({
17
- generateId: () => mockGenerateId(),
18
- generateOptimisticId: () => mockGenerateOptimisticId(),
19
- isOptimisticId: (id: string) => mockIsOptimisticId(id),
20
- }));
21
-
22
- /**
23
- * Tests for the MessageRepository class, which manages message threads with branching capabilities.
24
- *
25
- * This suite verifies that the repository:
26
- * - Correctly manages message additions, updates, and deletions
27
- * - Properly maintains parent-child relationships between messages
28
- * - Handles branch creation and switching between branches
29
- * - Successfully imports and exports repository state
30
- * - Correctly manages optimistic messages in the thread
31
- * - Handles edge cases and error conditions gracefully
32
- */
33
- describe("MessageRepository", () => {
34
- let repository: MessageRepository;
35
- let nextMockId = 1;
36
-
37
- /**
38
- * Creates a test ThreadMessage with the given overrides.
39
- */
40
- const createTestMessage = (overrides = {}): ThreadMessage => ({
41
- id: "test-id",
42
- role: "assistant",
43
- createdAt: new Date(),
44
- content: [{ type: "text", text: "Test message" }],
45
- status: { type: "complete", reason: "stop" },
46
- metadata: {
47
- unstable_state: null,
48
- unstable_annotations: [],
49
- unstable_data: [],
50
- steps: [],
51
- custom: {},
52
- },
53
- ...overrides,
54
- });
55
-
56
- /**
57
- * Creates a test CoreMessage with the given overrides.
58
- */
59
- const createThreadMessageLike = (overrides = {}): ThreadMessageLike => ({
60
- role: "assistant",
61
- content: [{ type: "text", text: "Test message" }],
62
- ...overrides,
63
- });
64
-
65
- beforeEach(() => {
66
- repository = new MessageRepository();
67
- // Reset mocks with predictable counter-based values
68
- nextMockId = 1;
69
- mockGenerateId.mockImplementation(() => `mock-id-${nextMockId++}`);
70
- mockGenerateOptimisticId.mockImplementation(
71
- () => `__optimistic__mock-id-${nextMockId++}`,
72
- );
73
- });
74
-
75
- afterEach(() => {
76
- vi.clearAllMocks();
77
- });
78
-
79
- // Core functionality tests - these test the public contract
80
- describe("Basic CRUD operations", () => {
81
- /**
82
- * Tests the ability to add a new message to the repository.
83
- * The message should be retrievable from the repository.
84
- */
85
- it("should add a new message to the repository", () => {
86
- const message = createTestMessage({ id: "message-id" });
87
- repository.addOrUpdateMessage(null, message);
88
-
89
- const messages = repository.getMessages();
90
- expect(messages).toContain(message);
91
- });
92
-
93
- /**
94
- * Tests the ability to update an existing message in the repository.
95
- * The update should replace the message content while maintaining its position.
96
- */
97
- it("should update an existing message", () => {
98
- const message = createTestMessage({ id: "message-id" });
99
- repository.addOrUpdateMessage(null, message);
100
-
101
- const updatedContent = [
102
- { type: "text", text: "Updated message" },
103
- ] as const;
104
- const updatedMessage = createTestMessage({
105
- id: "message-id",
106
- content: updatedContent,
107
- });
108
-
109
- repository.addOrUpdateMessage(null, updatedMessage);
110
-
111
- const retrievedMessage = repository.getMessage("message-id").message;
112
- expect(retrievedMessage.content).toEqual(updatedContent);
113
- });
114
-
115
- /**
116
- * Tests that the repository correctly establishes parent-child relationships.
117
- * The child message should reference its parent properly.
118
- */
119
- it("should establish parent-child relationships between messages", () => {
120
- const parent = createTestMessage({ id: "parent-id" });
121
- const child = createTestMessage({ id: "child-id" });
122
-
123
- repository.addOrUpdateMessage(null, parent);
124
- repository.addOrUpdateMessage("parent-id", child);
125
-
126
- const childWithParent = repository.getMessage("child-id");
127
- expect(childWithParent.parentId).toBe("parent-id");
128
- });
129
-
130
- /**
131
- * Tests that adding a message with a non-existent parent ID throws an error.
132
- * This maintains data integrity in the repository.
133
- */
134
- it("should throw an error when parent message is not found", () => {
135
- const message = createTestMessage();
136
-
137
- expect(() => {
138
- repository.addOrUpdateMessage("non-existent-id", message);
139
- }).toThrow(/Parent message not found/);
140
- });
141
-
142
- /**
143
- * Tests that getMessages() returns all messages in the active branch in the correct order.
144
- * The order should be from root to head.
145
- */
146
- it("should retrieve all messages in the current branch", () => {
147
- const parent = createTestMessage({ id: "parent-id" });
148
- const child = createTestMessage({ id: "child-id" });
149
- const grandchild = createTestMessage({ id: "grandchild-id" });
150
-
151
- repository.addOrUpdateMessage(null, parent);
152
- repository.addOrUpdateMessage("parent-id", child);
153
- repository.addOrUpdateMessage("child-id", grandchild);
154
-
155
- const messages = repository.getMessages();
156
-
157
- // Should return messages in order from root to head
158
- expect(messages.map((m) => m.id)).toEqual([
159
- "parent-id",
160
- "child-id",
161
- "grandchild-id",
162
- ]);
163
- });
164
-
165
- /**
166
- * Tests that the head message is updated correctly as messages are added.
167
- * The head should always point to the most recently added message in the active branch.
168
- */
169
- it("should track the head message", () => {
170
- const parent = createTestMessage({ id: "parent-id" });
171
- const child = createTestMessage({ id: "child-id" });
172
-
173
- repository.addOrUpdateMessage(null, parent);
174
- expect(repository.headId).toBe("parent-id");
175
-
176
- repository.addOrUpdateMessage("parent-id", child);
177
- expect(repository.headId).toBe("child-id");
178
- });
179
-
180
- /**
181
- * Tests that deleting a message adjusts the head pointer correctly.
182
- * After deleting the head, the head should point to its parent.
183
- */
184
- it("should delete a message and adjust the head", () => {
185
- const parent = createTestMessage({ id: "parent-id" });
186
- const child = createTestMessage({ id: "child-id" });
187
-
188
- repository.addOrUpdateMessage(null, parent);
189
- repository.addOrUpdateMessage("parent-id", child);
190
-
191
- // Initial head should be child
192
- expect(repository.headId).toBe("child-id");
193
-
194
- // Delete child
195
- repository.deleteMessage("child-id");
196
-
197
- // Head should now be parent
198
- expect(repository.headId).toBe("parent-id");
199
-
200
- // Child should be gone
201
- const messages = repository.getMessages();
202
- expect(messages.map((m) => m.id)).toEqual(["parent-id"]);
203
- });
204
-
205
- /**
206
- * Tests that clearing the repository removes all messages.
207
- * The repository should be empty and the head should be null after clearing.
208
- */
209
- it("should clear all messages", () => {
210
- const message = createTestMessage();
211
- repository.addOrUpdateMessage(null, message);
212
-
213
- repository.clear();
214
-
215
- expect(repository.getMessages()).toHaveLength(0);
216
- expect(repository.headId).toBeNull();
217
- });
218
- });
219
-
220
- describe("Branch management", () => {
221
- /**
222
- * Tests creating multiple branches from a parent message.
223
- * Both branches should have the same parent and be separately accessible.
224
- */
225
- it("should create multiple branches from a parent message", () => {
226
- const parent = createTestMessage({ id: "parent-id" });
227
- const branch1 = createTestMessage({ id: "branch1-id" });
228
- const branch2 = createTestMessage({ id: "branch2-id" });
229
-
230
- repository.addOrUpdateMessage(null, parent);
231
- repository.addOrUpdateMessage("parent-id", branch1);
232
- repository.addOrUpdateMessage("parent-id", branch2);
233
-
234
- // Test we can switch between branches
235
- repository.switchToBranch("branch1-id");
236
- expect(repository.headId).toBe("branch1-id");
237
-
238
- repository.switchToBranch("branch2-id");
239
- expect(repository.headId).toBe("branch2-id");
240
-
241
- // Get branches from a child to verify siblings
242
- const branches = repository.getBranches("branch1-id");
243
- expect(branches).toContain("branch1-id");
244
- expect(branches).toContain("branch2-id");
245
- });
246
-
247
- /**
248
- * Tests switching between branches and verifying each branch's content.
249
- * Each branch should maintain its own path of messages.
250
- */
251
- it("should switch between branches and maintain branch state", () => {
252
- const parent = createTestMessage({ id: "parent-id" });
253
- const branch1 = createTestMessage({ id: "branch1-id" });
254
- const branch2 = createTestMessage({ id: "branch2-id" });
255
-
256
- repository.addOrUpdateMessage(null, parent);
257
- repository.addOrUpdateMessage("parent-id", branch1);
258
- repository.addOrUpdateMessage("parent-id", branch2);
259
-
260
- // Switch to first branch
261
- repository.switchToBranch("branch1-id");
262
- expect(repository.headId).toBe("branch1-id");
263
-
264
- // Messages should show parent -> branch1 path
265
- const messages1 = repository.getMessages();
266
- expect(messages1.map((m) => m.id)).toEqual(["parent-id", "branch1-id"]);
267
-
268
- // Switch to second branch
269
- repository.switchToBranch("branch2-id");
270
- expect(repository.headId).toBe("branch2-id");
271
-
272
- // Messages should show parent -> branch2 path
273
- const messages2 = repository.getMessages();
274
- expect(messages2.map((m) => m.id)).toEqual(["parent-id", "branch2-id"]);
275
- });
276
-
277
- /**
278
- * Tests that trying to switch to a non-existent branch throws an error.
279
- * This ensures that the repository maintains valid state.
280
- */
281
- it("should throw error when switching to a non-existent branch", () => {
282
- expect(() => {
283
- repository.switchToBranch("non-existent-id");
284
- }).toThrow(/Branch not found/);
285
- });
286
-
287
- /**
288
- * Tests resetting the head to an earlier message in the tree.
289
- * This should truncate the active branch at the specified message.
290
- */
291
- it("should reset head to an earlier message in the tree", () => {
292
- const parent = createTestMessage({ id: "parent-id" });
293
- const child = createTestMessage({ id: "child-id" });
294
- const grandchild = createTestMessage({ id: "grandchild-id" });
295
-
296
- repository.addOrUpdateMessage(null, parent);
297
- repository.addOrUpdateMessage("parent-id", child);
298
- repository.addOrUpdateMessage("child-id", grandchild);
299
-
300
- // Reset to parent
301
- repository.resetHead("parent-id");
302
-
303
- // Head should be parent
304
- expect(repository.headId).toBe("parent-id");
305
-
306
- // Messages should only include parent
307
- const messages = repository.getMessages();
308
- expect(messages.map((m) => m.id)).toEqual(["parent-id"]);
309
- });
310
-
311
- /**
312
- * Tests that resetting head to a message with children removes those children.
313
- * All descendants should be deleted from the repository.
314
- */
315
- it("should remove children when resetting head to a message with children", () => {
316
- const parent = createTestMessage({ id: "parent-id" });
317
- const child = createTestMessage({ id: "child-id" });
318
- const grandchild1 = createTestMessage({ id: "grandchild1-id" });
319
- const grandchild2 = createTestMessage({ id: "grandchild2-id" });
320
- const greatGrandchild = createTestMessage({ id: "greatgrandchild-id" });
321
-
322
- // Build tree: parent -> child -> grandchild1
323
- // \-> grandchild2 -> greatGrandchild
324
- repository.addOrUpdateMessage(null, parent);
325
- repository.addOrUpdateMessage("parent-id", child);
326
- repository.addOrUpdateMessage("child-id", grandchild1);
327
- repository.addOrUpdateMessage("child-id", grandchild2);
328
- repository.addOrUpdateMessage("grandchild2-id", greatGrandchild);
329
-
330
- // Reset to child (which has children)
331
- repository.resetHead("child-id");
332
-
333
- // Head should be child
334
- expect(repository.headId).toBe("child-id");
335
-
336
- // Messages should only include parent and child
337
- const messages = repository.getMessages();
338
- expect(messages.map((m) => m.id)).toEqual(["parent-id", "child-id"]);
339
-
340
- // Verify children are removed from repository
341
- expect(() => repository.getMessage("grandchild1-id")).toThrow(
342
- /Message not found/,
343
- );
344
- expect(() => repository.getMessage("grandchild2-id")).toThrow(
345
- /Message not found/,
346
- );
347
- expect(() => repository.getMessage("greatgrandchild-id")).toThrow(
348
- /Message not found/,
349
- );
350
-
351
- // Verify branches are empty for the child
352
- const branches = repository.getBranches("child-id");
353
- expect(branches).toEqual(["child-id"]);
354
- });
355
-
356
- /**
357
- * Tests resetting the head to null.
358
- * This should clear the active branch completely.
359
- */
360
- it("should reset head to null when null is passed", () => {
361
- const message = createTestMessage();
362
- repository.addOrUpdateMessage(null, message);
363
-
364
- repository.resetHead(null);
365
-
366
- expect(repository.headId).toBeNull();
367
- expect(repository.getMessages()).toHaveLength(0);
368
- });
369
- });
370
-
371
- describe("Optimistic messages", () => {
372
- /**
373
- * Tests creating an optimistic message with a unique ID.
374
- * The message should have a running status and the correct ID.
375
- */
376
- it("should create an optimistic message with a unique ID", () => {
377
- mockGenerateOptimisticId.mockReturnValue("__optimistic__generated-id");
378
-
379
- const coreMessage = createThreadMessageLike();
380
- const optimisticId = repository.appendOptimisticMessage(
381
- null,
382
- coreMessage,
383
- );
384
-
385
- expect(optimisticId).toBe("__optimistic__generated-id");
386
- expect(repository.getMessage(optimisticId).message.status?.type).toBe(
387
- "running",
388
- );
389
- });
390
-
391
- /**
392
- * Tests creating an optimistic message as a child of a specified parent.
393
- * The message should have the correct parent relationship.
394
- */
395
- it("should create an optimistic message as a child of a specified parent", () => {
396
- const parent = createTestMessage({ id: "parent-id" });
397
- repository.addOrUpdateMessage(null, parent);
398
-
399
- const coreMessage = createThreadMessageLike();
400
- const optimisticId = repository.appendOptimisticMessage(
401
- "parent-id",
402
- coreMessage,
403
- );
404
-
405
- // Verify parent relationship
406
- const result = repository.getMessage(optimisticId);
407
- expect(result.parentId).toBe("parent-id");
408
- });
409
-
410
- /**
411
- * Tests that optimistic IDs are unique even if the first generated ID
412
- * already exists in the repository.
413
- */
414
- it("should retry generating unique optimistic IDs if initial one exists", () => {
415
- // First call returns an ID that already exists
416
- mockGenerateOptimisticId.mockReturnValueOnce("__optimistic__existing-id");
417
-
418
- // Create a message with the ID that will conflict
419
- const existingMessage = createTestMessage({
420
- id: "__optimistic__existing-id",
421
- });
422
- repository.addOrUpdateMessage(null, existingMessage);
423
-
424
- // Second call returns a unique ID
425
- mockGenerateOptimisticId.mockReturnValueOnce("__optimistic__unique-id");
426
-
427
- const coreMessage = createThreadMessageLike();
428
- const optimisticId = repository.appendOptimisticMessage(
429
- null,
430
- coreMessage,
431
- );
432
-
433
- // Should have used the second ID
434
- expect(optimisticId).toBe("__optimistic__unique-id");
435
- expect(mockGenerateOptimisticId).toHaveBeenCalledTimes(2);
436
- });
437
- });
438
-
439
- describe("Export and import", () => {
440
- /**
441
- * Tests exporting the repository state.
442
- * The exported state should correctly represent all messages and relationships.
443
- */
444
- it("should export the repository state", () => {
445
- const parent = createTestMessage({ id: "parent-id" });
446
- const child = createTestMessage({ id: "child-id" });
447
-
448
- repository.addOrUpdateMessage(null, parent);
449
- repository.addOrUpdateMessage("parent-id", child);
450
-
451
- const exported = repository.export();
452
-
453
- expect(exported.headId).toBe("child-id");
454
- expect(exported.messages).toHaveLength(2);
455
- expect(
456
- exported.messages.find((m) => m.message.id === "parent-id")?.parentId,
457
- ).toBeNull();
458
- expect(
459
- exported.messages.find((m) => m.message.id === "child-id")?.parentId,
460
- ).toBe("parent-id");
461
- });
462
-
463
- /**
464
- * Tests importing repository state.
465
- * The imported state should correctly restore all messages and relationships.
466
- */
467
- it("should import repository state", () => {
468
- const parent = createTestMessage({ id: "parent-id" });
469
- const child = createTestMessage({ id: "child-id" });
470
-
471
- const exported = {
472
- headId: "child-id",
473
- messages: [
474
- { message: parent, parentId: null },
475
- { message: child, parentId: "parent-id" },
476
- ],
477
- };
478
-
479
- repository.import(exported);
480
-
481
- expect(repository.headId).toBe("child-id");
482
- const messages = repository.getMessages();
483
- expect(messages.map((m) => m.id)).toEqual(["parent-id", "child-id"]);
484
- });
485
-
486
- /**
487
- * Tests importing with a specified head that is not the most recent message.
488
- * This simulates restoring a specific branch even if it's not the latest one.
489
- */
490
- it("should import with a specified head that is not the most recent message", () => {
491
- const parent = createTestMessage({ id: "parent-id" });
492
- const child1 = createTestMessage({ id: "child1-id" });
493
- const child2 = createTestMessage({ id: "child2-id" });
494
-
495
- const exported = {
496
- headId: "child1-id", // Specify child1 as head, not the last message
497
- messages: [
498
- { message: parent, parentId: null },
499
- { message: child1, parentId: "parent-id" },
500
- { message: child2, parentId: "parent-id" }, // Sibling of child1
501
- ],
502
- };
503
-
504
- repository.import(exported);
505
-
506
- // Head should be as specified
507
- expect(repository.headId).toBe("child1-id");
508
-
509
- // Active branch should be parent -> child1
510
- const messages = repository.getMessages();
511
- expect(messages.map((m) => m.id)).toEqual(["parent-id", "child1-id"]);
512
-
513
- // We should be able to switch to child2
514
- repository.switchToBranch("child2-id");
515
- expect(repository.headId).toBe("child2-id");
516
- });
517
-
518
- /**
519
- * Tests that importing with invalid parent references throws an error.
520
- * This ensures data integrity during import.
521
- */
522
- it("should throw an error when importing with invalid parent references", () => {
523
- const child = createTestMessage({ id: "child-id" });
524
-
525
- const exported = {
526
- headId: "child-id",
527
- messages: [{ message: child, parentId: "non-existent-id" }],
528
- };
529
-
530
- expect(() => {
531
- repository.import(exported);
532
- }).toThrow(/Parent message not found/);
533
- });
534
- });
535
-
536
- describe("ExportedMessageRepository utility", () => {
537
- /**
538
- * Tests converting an array of messages to repository format.
539
- * The converted format should establish proper parent-child relationships.
540
- */
541
- it("should convert an array of messages to repository format", () => {
542
- mockGenerateId.mockReturnValue("generated-id");
543
-
544
- const messages: ThreadMessageLike[] = [
545
- {
546
- role: "user" as const,
547
- content: [
548
- { type: "text" as const, text: "Hello" },
549
- ] as TextMessagePart[],
550
- },
551
- {
552
- role: "assistant" as const,
553
- content: [
554
- { type: "text" as const, text: "Hi there" },
555
- ] as TextMessagePart[],
556
- },
557
- ];
558
-
559
- const result = ExportedMessageRepository.fromArray(messages);
560
-
561
- expect(result.messages).toHaveLength(2);
562
- expect(result.messages[0]!.parentId).toBeNull();
563
- expect(result.messages[1]!.parentId).toBe("generated-id");
564
- });
565
-
566
- /**
567
- * Tests handling empty message arrays.
568
- * The repository should handle this gracefully.
569
- */
570
- it("should handle empty message arrays", () => {
571
- const result = ExportedMessageRepository.fromArray([]);
572
- expect(result.messages).toHaveLength(0);
573
- });
574
- });
575
-
576
- describe("Complex scenarios", () => {
577
- /**
578
- * Tests that the tree structure is maintained after deleting nodes.
579
- * Child nodes should be preserved and accessible after deleting a sibling.
580
- */
581
- it("should maintain tree structure after deletions", () => {
582
- // Create tree:
583
- // root
584
- // └── A
585
- // ├── B
586
- // └── C
587
-
588
- const root = createTestMessage({ id: "root-id" });
589
- const nodeA = createTestMessage({ id: "A-id" });
590
- const nodeB = createTestMessage({ id: "B-id" });
591
- const nodeC = createTestMessage({ id: "C-id" });
592
-
593
- repository.addOrUpdateMessage(null, root);
594
- repository.addOrUpdateMessage("root-id", nodeA);
595
- repository.addOrUpdateMessage("A-id", nodeB);
596
- repository.addOrUpdateMessage("A-id", nodeC);
597
-
598
- // Delete B
599
- repository.deleteMessage("B-id");
600
-
601
- // Verify A still has C as child
602
- repository.switchToBranch("C-id");
603
- expect(repository.headId).toBe("C-id");
604
-
605
- // Check that we still have root -> A -> C path
606
- const messages = repository.getMessages();
607
- expect(messages.map((m) => m.id)).toEqual(["root-id", "A-id", "C-id"]);
608
- });
609
-
610
- /**
611
- * Tests relinking children when deleting a middle node.
612
- * Children of the deleted node should be relinked to the specified replacement.
613
- */
614
- it("should relink children when deleting a middle node", () => {
615
- // Create: root -> A -> B -> C
616
- const root = createTestMessage({ id: "root-id" });
617
- const nodeA = createTestMessage({ id: "A-id" });
618
- const nodeB = createTestMessage({ id: "B-id" });
619
- const nodeC = createTestMessage({ id: "C-id" });
620
-
621
- repository.addOrUpdateMessage(null, root);
622
- repository.addOrUpdateMessage("root-id", nodeA);
623
- repository.addOrUpdateMessage("A-id", nodeB);
624
- repository.addOrUpdateMessage("B-id", nodeC);
625
-
626
- // Delete B, specifying A as the new parent for B's children
627
- repository.deleteMessage("B-id", "A-id");
628
-
629
- // Verify C is now a child of A directly
630
- const c = repository.getMessage("C-id");
631
- expect(c.parentId).toBe("A-id");
632
-
633
- // Check that we have a path from root to C
634
- repository.switchToBranch("C-id");
635
- const messages = repository.getMessages();
636
-
637
- // Must contain root, A, and C (B was deleted)
638
- expect(messages.some((m) => m.id === "root-id")).toBe(true);
639
- expect(messages.some((m) => m.id === "A-id")).toBe(true);
640
- expect(messages.some((m) => m.id === "C-id")).toBe(true);
641
- expect(messages.some((m) => m.id === "B-id")).toBe(false);
642
- });
643
-
644
- /**
645
- * Tests deleting a node with multiple children and ensuring all children
646
- * are properly relinked to the specified replacement.
647
- */
648
- it("should relink multiple children when deleting a parent node", () => {
649
- // Create: root -> A -> B (and A -> C, A -> D)
650
- const root = createTestMessage({ id: "root-id" });
651
- const nodeA = createTestMessage({ id: "A-id" });
652
- const nodeB = createTestMessage({ id: "B-id" });
653
- const nodeC = createTestMessage({ id: "C-id" });
654
- const nodeD = createTestMessage({ id: "D-id" });
655
-
656
- repository.addOrUpdateMessage(null, root);
657
- repository.addOrUpdateMessage("root-id", nodeA);
658
- repository.addOrUpdateMessage("A-id", nodeB);
659
- repository.addOrUpdateMessage("A-id", nodeC);
660
- repository.addOrUpdateMessage("A-id", nodeD);
661
-
662
- // Delete A, specifying root as the new parent for A's children
663
- repository.deleteMessage("A-id", "root-id");
664
-
665
- // Verify B, C, D are now children of root
666
- expect(repository.getMessage("B-id").parentId).toBe("root-id");
667
- expect(repository.getMessage("C-id").parentId).toBe("root-id");
668
- expect(repository.getMessage("D-id").parentId).toBe("root-id");
669
-
670
- // This test is checking specifically that after deletion and relinking,
671
- // we can still access each branch. The exact message structure may vary depending
672
- // on implementation details of MessageRepository's internal tree management.
673
- // Instead of checking array length and order exactly, we'll verify that:
674
- // 1. We can access each branch
675
- // 2. Each branch contains both root and the target message
676
-
677
- // Verify B branch
678
- repository.switchToBranch("B-id");
679
- const bMessages = repository.getMessages();
680
- expect(bMessages.some((m) => m.id === "root-id")).toBe(true);
681
- expect(bMessages.some((m) => m.id === "B-id")).toBe(true);
682
- expect(bMessages.some((m) => m.id === "A-id")).toBe(false);
683
-
684
- // Verify C branch
685
- repository.switchToBranch("C-id");
686
- const cMessages = repository.getMessages();
687
- expect(cMessages.some((m) => m.id === "root-id")).toBe(true);
688
- expect(cMessages.some((m) => m.id === "C-id")).toBe(true);
689
- expect(cMessages.some((m) => m.id === "A-id")).toBe(false);
690
-
691
- // Verify D branch
692
- repository.switchToBranch("D-id");
693
- const dMessages = repository.getMessages();
694
- expect(dMessages.some((m) => m.id === "root-id")).toBe(true);
695
- expect(dMessages.some((m) => m.id === "D-id")).toBe(true);
696
- expect(dMessages.some((m) => m.id === "A-id")).toBe(false);
697
- });
698
-
699
- /**
700
- * Tests that updating a message preserves its position in the tree.
701
- */
702
- it("should preserve message position when updating content", () => {
703
- const parent = createTestMessage({ id: "parent-id" });
704
- const child1 = createTestMessage({ id: "child1-id" });
705
- const child2 = createTestMessage({ id: "child2-id" });
706
-
707
- repository.addOrUpdateMessage(null, parent);
708
- repository.addOrUpdateMessage("parent-id", child1);
709
- repository.addOrUpdateMessage("child1-id", child2);
710
-
711
- // Update child1 with new content
712
- const updatedChild1 = createTestMessage({
713
- id: "child1-id",
714
- content: [{ type: "text", text: "Updated content" }],
715
- });
716
-
717
- repository.addOrUpdateMessage("parent-id", updatedChild1);
718
-
719
- // Verify structure is preserved
720
- const messages = repository.getMessages();
721
- expect(messages.map((m) => m.id)).toEqual([
722
- "parent-id",
723
- "child1-id",
724
- "child2-id",
725
- ]);
726
-
727
- // Verify content was updated
728
- const MessagePart = messages[1]!.content[0];
729
- expect(MessagePart.type).toBe("text");
730
- expect((MessagePart as TextMessagePart).text).toBe("Updated content");
731
- });
732
-
733
- /**
734
- * Tests re-parenting a root message when new messages are inserted at the start.
735
- * This simulates the external store runtime scenario where new messages are
736
- * prepended to the list, requiring the previous root to be re-parented.
737
- *
738
- * Scenario:
739
- * 1. Initial state: A -> B -> C (A is root at level 0)
740
- * 2. New messages inserted: X -> Y -> A -> B -> C (X is new root, A needs re-parenting to Y)
741
- * 3. A should be updated to have Y as parent and level should be recalculated
742
- */
743
- it("should handle re-parenting when messages are inserted at the start", () => {
744
- // Initial state: A -> B -> C
745
- const messageA = createTestMessage({ id: "A" });
746
- const messageB = createTestMessage({ id: "B" });
747
- const messageC = createTestMessage({ id: "C" });
748
-
749
- repository.addOrUpdateMessage(null, messageA);
750
- repository.addOrUpdateMessage("A", messageB);
751
- repository.addOrUpdateMessage("B", messageC);
752
-
753
- // Verify initial state
754
- expect(repository.getMessages().map((m) => m.id)).toEqual([
755
- "A",
756
- "B",
757
- "C",
758
- ]);
759
- expect(repository.headId).toBe("C");
760
-
761
- // Now insert new messages at the start: X -> Y
762
- const messageX = createTestMessage({ id: "X" });
763
- const messageY = createTestMessage({ id: "Y" });
764
-
765
- repository.addOrUpdateMessage(null, messageX);
766
- repository.addOrUpdateMessage("X", messageY);
767
-
768
- // Re-parent A to be a child of Y instead of root
769
- repository.addOrUpdateMessage("Y", messageA);
770
-
771
- // Expected structure: X -> Y -> A -> B -> C
772
- const messages = repository.getMessages();
773
- expect(messages.map((m) => m.id)).toEqual(["X", "Y", "A", "B", "C"]);
774
-
775
- // Verify parent relationships
776
- expect(repository.getMessage("X").parentId).toBeNull();
777
- expect(repository.getMessage("Y").parentId).toBe("X");
778
- expect(repository.getMessage("A").parentId).toBe("Y");
779
- expect(repository.getMessage("B").parentId).toBe("A");
780
- expect(repository.getMessage("C").parentId).toBe("B");
781
-
782
- // Verify head is still C
783
- expect(repository.headId).toBe("C");
784
- });
785
- });
786
- });