@assistant-ui/core 0.1.5 → 0.1.8

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 (577) hide show
  1. package/dist/adapters/attachment.d.ts +1 -1
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/feedback.d.ts +1 -1
  4. package/dist/adapters/feedback.d.ts.map +1 -1
  5. package/dist/adapters/index.d.ts +2 -0
  6. package/dist/adapters/index.d.ts.map +1 -1
  7. package/dist/adapters/index.js +1 -0
  8. package/dist/adapters/index.js.map +1 -1
  9. package/dist/adapters/mention.d.ts +24 -0
  10. package/dist/adapters/mention.d.ts.map +1 -0
  11. package/dist/adapters/mention.js +42 -0
  12. package/dist/adapters/mention.js.map +1 -0
  13. package/dist/adapters/speech.d.ts +1 -1
  14. package/dist/adapters/speech.d.ts.map +1 -1
  15. package/dist/adapters/suggestion.d.ts +1 -1
  16. package/dist/adapters/suggestion.d.ts.map +1 -1
  17. package/dist/index.d.ts +47 -5
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +15 -5
  20. package/dist/index.js.map +1 -1
  21. package/dist/internal.d.ts +5 -2
  22. package/dist/internal.d.ts.map +1 -1
  23. package/dist/internal.js +13 -2
  24. package/dist/internal.js.map +1 -1
  25. package/dist/model-context/frame/host.d.ts +1 -1
  26. package/dist/model-context/frame/host.d.ts.map +1 -1
  27. package/dist/model-context/frame/provider.d.ts +1 -1
  28. package/dist/model-context/frame/provider.d.ts.map +1 -1
  29. package/dist/model-context/registry.d.ts +1 -1
  30. package/dist/model-context/registry.d.ts.map +1 -1
  31. package/dist/model-context/types.d.ts +1 -1
  32. package/dist/model-context/types.d.ts.map +1 -1
  33. package/dist/react/AssistantRuntimeProvider.d.ts +0 -1
  34. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  35. package/dist/react/AssistantRuntimeProvider.js +0 -9
  36. package/dist/react/AssistantRuntimeProvider.js.map +1 -1
  37. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  38. package/dist/react/RuntimeAdapter.js +7 -7
  39. package/dist/react/RuntimeAdapter.js.map +1 -1
  40. package/dist/react/client/Tools.js +5 -6
  41. package/dist/react/client/Tools.js.map +1 -1
  42. package/dist/react/index.d.ts +69 -9
  43. package/dist/react/index.d.ts.map +1 -1
  44. package/dist/react/index.js +69 -8
  45. package/dist/react/index.js.map +1 -1
  46. package/dist/react/model-context/useInlineRender.d.ts +1 -1
  47. package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
  48. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +5 -0
  49. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -0
  50. package/dist/react/primitive-hooks/useActionBarSpeak.js +15 -0
  51. package/dist/react/primitive-hooks/useActionBarSpeak.js.map +1 -0
  52. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +5 -0
  53. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -0
  54. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js +11 -0
  55. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js.map +1 -0
  56. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +5 -0
  57. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -0
  58. package/dist/react/primitive-hooks/useBranchPickerNext.js +18 -0
  59. package/dist/react/primitive-hooks/useBranchPickerNext.js.map +1 -0
  60. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +5 -0
  61. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -0
  62. package/dist/react/primitive-hooks/useBranchPickerPrevious.js +18 -0
  63. package/dist/react/primitive-hooks/useBranchPickerPrevious.js.map +1 -0
  64. package/dist/react/primitive-hooks/useComposerDictate.d.ts +5 -0
  65. package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -0
  66. package/dist/react/primitive-hooks/useComposerDictate.js +13 -0
  67. package/dist/react/primitive-hooks/useComposerDictate.js.map +1 -0
  68. package/dist/react/primitive-hooks/useComposerSend.d.ts +2 -1
  69. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  70. package/dist/react/primitive-hooks/useComposerSend.js +5 -3
  71. package/dist/react/primitive-hooks/useComposerSend.js.map +1 -1
  72. package/dist/react/primitive-hooks/useMessageError.d.ts +2 -0
  73. package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -0
  74. package/dist/react/primitive-hooks/useMessageError.js +8 -0
  75. package/dist/react/primitive-hooks/useMessageError.js.map +1 -0
  76. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +10 -0
  77. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -0
  78. package/dist/react/primitive-hooks/useSuggestionTrigger.js +32 -0
  79. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -0
  80. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +4 -0
  81. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -0
  82. package/dist/react/primitive-hooks/useThreadListItemArchive.js +10 -0
  83. package/dist/react/primitive-hooks/useThreadListItemArchive.js.map +1 -0
  84. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +4 -0
  85. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -0
  86. package/dist/react/primitive-hooks/useThreadListItemDelete.js +10 -0
  87. package/dist/react/primitive-hooks/useThreadListItemDelete.js.map +1 -0
  88. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +4 -0
  89. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -0
  90. package/dist/react/primitive-hooks/useThreadListItemTrigger.js +10 -0
  91. package/dist/react/primitive-hooks/useThreadListItemTrigger.js.map +1 -0
  92. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +4 -0
  93. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -0
  94. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js +10 -0
  95. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js.map +1 -0
  96. package/dist/react/primitive-hooks/useThreadListNew.d.ts +4 -0
  97. package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -0
  98. package/dist/react/primitive-hooks/useThreadListNew.js +10 -0
  99. package/dist/react/primitive-hooks/useThreadListNew.js.map +1 -0
  100. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +23 -13
  101. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  102. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js +16 -8
  103. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
  104. package/dist/react/primitives/composer/ComposerAttachments.d.ts +19 -8
  105. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  106. package/dist/react/primitives/composer/ComposerAttachments.js +19 -7
  107. package/dist/react/primitives/composer/ComposerAttachments.js.map +1 -1
  108. package/dist/react/primitives/composer/ComposerQueue.d.ts +31 -0
  109. package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -0
  110. package/dist/react/primitives/composer/ComposerQueue.js +30 -0
  111. package/dist/react/primitives/composer/ComposerQueue.js.map +1 -0
  112. package/dist/react/primitives/message/MessageAttachments.d.ts +19 -8
  113. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
  114. package/dist/react/primitives/message/MessageAttachments.js +19 -7
  115. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  116. package/dist/react/primitives/message/MessageParts.d.ts +41 -5
  117. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  118. package/dist/react/primitives/message/MessageParts.js +113 -5
  119. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  120. package/dist/react/primitives/message/MessageQuote.d.ts +10 -0
  121. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -0
  122. package/dist/react/primitives/message/MessageQuote.js +27 -0
  123. package/dist/react/primitives/message/MessageQuote.js.map +1 -0
  124. package/dist/react/primitives/part/PartMessages.d.ts +37 -0
  125. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -0
  126. package/dist/react/primitives/part/PartMessages.js +49 -0
  127. package/dist/react/primitives/part/PartMessages.js.map +1 -0
  128. package/dist/react/primitives/thread/ThreadMessages.d.ts +54 -72
  129. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  130. package/dist/react/primitives/thread/ThreadMessages.js +32 -37
  131. package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
  132. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +18 -10
  133. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  134. package/dist/react/primitives/thread/ThreadSuggestions.js +25 -11
  135. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
  136. package/dist/react/primitives/threadList/ThreadListItems.d.ts +18 -6
  137. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  138. package/dist/react/primitives/threadList/ThreadListItems.js +15 -7
  139. package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -1
  140. package/dist/react/providers/QueueItemByIndexProvider.d.ts +6 -0
  141. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -0
  142. package/dist/react/providers/QueueItemByIndexProvider.js +13 -0
  143. package/dist/react/providers/QueueItemByIndexProvider.js.map +1 -0
  144. package/dist/react/providers/ReadonlyThreadProvider.d.ts +9 -0
  145. package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -0
  146. package/dist/react/providers/ReadonlyThreadProvider.js +52 -0
  147. package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -0
  148. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +1 -1
  149. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  150. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +1 -1
  151. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  152. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +1 -1
  153. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  154. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +2 -1
  155. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  156. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +1 -1
  157. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  158. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +1 -1
  159. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  160. package/dist/react/runtimes/cloud/auiV0.d.ts +1 -1
  161. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  162. package/dist/react/runtimes/createMessageConverter.d.ts +1 -1
  163. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  164. package/dist/react/runtimes/external-message-converter.d.ts +2 -1
  165. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  166. package/dist/react/runtimes/useLocalRuntime.d.ts +6 -6
  167. package/dist/react/runtimes/useLocalRuntime.js +1 -1
  168. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  169. package/dist/react/runtimes/useToolInvocations.d.ts +1 -1
  170. package/dist/react/runtimes/useToolInvocations.d.ts.map +1 -1
  171. package/dist/react/types/MessagePartComponentTypes.d.ts +3 -1
  172. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  173. package/dist/react/utils/getMessageQuote.d.ts +9 -0
  174. package/dist/react/utils/getMessageQuote.d.ts.map +1 -0
  175. package/dist/react/utils/getMessageQuote.js +7 -0
  176. package/dist/react/utils/getMessageQuote.js.map +1 -0
  177. package/dist/runtime/api/assistant-runtime.d.ts +2 -2
  178. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  179. package/dist/runtime/api/attachment-runtime.d.ts +2 -1
  180. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  181. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  182. package/dist/runtime/api/bindings.d.ts +1 -1
  183. package/dist/runtime/api/bindings.d.ts.map +1 -1
  184. package/dist/runtime/api/composer-runtime.d.ts +5 -1
  185. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  186. package/dist/runtime/api/composer-runtime.js +2 -1
  187. package/dist/runtime/api/composer-runtime.js.map +1 -1
  188. package/dist/runtime/api/message-part-runtime.d.ts +3 -1
  189. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  190. package/dist/runtime/api/message-runtime.d.ts +3 -1
  191. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  192. package/dist/runtime/api/message-runtime.js +2 -1
  193. package/dist/runtime/api/message-runtime.js.map +1 -1
  194. package/dist/runtime/api/thread-list-item-runtime.d.ts +1 -1
  195. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  196. package/dist/runtime/api/thread-list-runtime.d.ts +1 -1
  197. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  198. package/dist/runtime/api/thread-list-runtime.js +2 -1
  199. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  200. package/dist/runtime/api/thread-runtime.d.ts +18 -10
  201. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  202. package/dist/runtime/api/thread-runtime.js +9 -3
  203. package/dist/runtime/api/thread-runtime.js.map +1 -1
  204. package/dist/runtime/base/base-assistant-runtime-core.d.ts +2 -2
  205. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  206. package/dist/runtime/base/base-composer-runtime-core.d.ts +5 -2
  207. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  208. package/dist/runtime/base/base-composer-runtime-core.js +1 -1
  209. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  210. package/dist/runtime/base/base-thread-runtime-core.d.ts +3 -2
  211. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  212. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  213. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +1 -1
  214. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  215. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +1 -1
  216. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  217. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +2 -2
  218. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  219. package/dist/runtime/interfaces/composer-runtime-core.d.ts +5 -1
  220. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  221. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +1 -1
  222. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  223. package/dist/runtime/interfaces/thread-runtime-core.d.ts +5 -2
  224. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  225. package/dist/runtime/utils/auto-status.d.ts +1 -1
  226. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  227. package/dist/runtime/utils/chat-model-adapter.d.ts +3 -2
  228. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  229. package/dist/runtime/utils/external-store-message.d.ts +1 -1
  230. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  231. package/dist/runtime/utils/message-repository.d.ts +2 -1
  232. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  233. package/dist/runtime/utils/message-repository.js.map +1 -1
  234. package/dist/runtime/utils/thread-message-like.d.ts +3 -1
  235. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  236. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  237. package/dist/runtimes/external-store/external-store-adapter.d.ts +1 -1
  238. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  239. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +1 -1
  240. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  241. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +2 -2
  242. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  243. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +2 -0
  244. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  245. package/dist/runtimes/external-store/thread-message-converter.d.ts +1 -1
  246. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  247. package/dist/runtimes/internal.d.ts +1 -0
  248. package/dist/runtimes/internal.d.ts.map +1 -1
  249. package/dist/runtimes/internal.js +2 -0
  250. package/dist/runtimes/internal.js.map +1 -1
  251. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +1 -1
  252. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  253. package/dist/runtimes/local/local-thread-list-runtime-core.js +1 -1
  254. package/dist/runtimes/local/local-thread-list-runtime-core.js.map +1 -1
  255. package/dist/runtimes/local/local-thread-runtime-core.d.ts +3 -2
  256. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  257. package/dist/runtimes/local/local-thread-runtime-core.js +1 -0
  258. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  259. package/dist/runtimes/local/should-continue.d.ts +1 -1
  260. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  261. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +86 -0
  262. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -0
  263. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +170 -0
  264. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -0
  265. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  266. package/dist/runtimes/remote-thread-list/empty-thread-core.js +1 -0
  267. package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
  268. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +9 -0
  269. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  270. package/dist/runtimes/remote-thread-list/optimistic-state.js +20 -0
  271. package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
  272. package/dist/runtimes/remote-thread-list/types.d.ts +1 -1
  273. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  274. package/dist/store/clients/model-context-client.js +1 -1
  275. package/dist/store/clients/model-context-client.js.map +1 -1
  276. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  277. package/dist/store/clients/no-op-composer-client.js +4 -0
  278. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  279. package/dist/store/clients/runtime-adapter.d.ts +1 -1
  280. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  281. package/dist/store/clients/runtime-adapter.js +20 -27
  282. package/dist/store/clients/runtime-adapter.js.map +1 -1
  283. package/dist/store/clients/suggestions.d.ts.map +1 -1
  284. package/dist/store/clients/suggestions.js.map +1 -1
  285. package/dist/store/clients/thread-message-client.d.ts +1 -1
  286. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  287. package/dist/store/clients/thread-message-client.js.map +1 -1
  288. package/dist/store/index.d.ts +17 -2
  289. package/dist/store/index.d.ts.map +1 -1
  290. package/dist/store/index.js +5 -3
  291. package/dist/store/index.js.map +1 -1
  292. package/dist/store/internal.d.ts +7 -1
  293. package/dist/store/internal.d.ts.map +1 -1
  294. package/dist/store/internal.js +7 -1
  295. package/dist/store/internal.js.map +1 -1
  296. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +1 -1
  297. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  298. package/dist/store/runtime-clients/composer-runtime-client.d.ts +1 -1
  299. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  300. package/dist/store/runtime-clients/composer-runtime-client.js +4 -0
  301. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  302. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +1 -1
  303. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  304. package/dist/store/runtime-clients/message-runtime-client.d.ts +1 -1
  305. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  306. package/dist/store/runtime-clients/tap-subscribable.d.ts +1 -1
  307. package/dist/store/runtime-clients/tap-subscribable.d.ts.map +1 -1
  308. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +1 -1
  309. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  310. package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -1
  311. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +2 -1
  312. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  313. package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
  314. package/dist/store/runtime-clients/thread-runtime-client.d.ts +1 -1
  315. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  316. package/dist/store/runtime-clients/thread-runtime-client.js +2 -1
  317. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  318. package/dist/store/scope-registration.d.ts +2 -0
  319. package/dist/store/scope-registration.d.ts.map +1 -1
  320. package/dist/store/scopes/attachment.d.ts +2 -2
  321. package/dist/store/scopes/attachment.d.ts.map +1 -1
  322. package/dist/store/scopes/chain-of-thought.d.ts +2 -1
  323. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  324. package/dist/store/scopes/composer.d.ts +26 -3
  325. package/dist/store/scopes/composer.d.ts.map +1 -1
  326. package/dist/store/scopes/message.d.ts +4 -2
  327. package/dist/store/scopes/message.d.ts.map +1 -1
  328. package/dist/store/scopes/model-context.d.ts +2 -2
  329. package/dist/store/scopes/model-context.d.ts.map +1 -1
  330. package/dist/store/scopes/part.d.ts +3 -2
  331. package/dist/store/scopes/part.d.ts.map +1 -1
  332. package/dist/store/scopes/queue-item.d.ts +20 -0
  333. package/dist/store/scopes/queue-item.d.ts.map +1 -0
  334. package/dist/store/scopes/queue-item.js +2 -0
  335. package/dist/store/scopes/queue-item.js.map +1 -0
  336. package/dist/store/scopes/thread-list-item.d.ts +2 -1
  337. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  338. package/dist/store/scopes/thread.d.ts +9 -2
  339. package/dist/store/scopes/thread.d.ts.map +1 -1
  340. package/dist/store/scopes/threads.d.ts +1 -1
  341. package/dist/store/scopes/threads.d.ts.map +1 -1
  342. package/dist/subscribable/subscribable.d.ts +1 -1
  343. package/dist/subscribable/subscribable.d.ts.map +1 -1
  344. package/dist/types/index.d.ts +1 -0
  345. package/dist/types/index.d.ts.map +1 -1
  346. package/dist/types/mention.d.ts +32 -0
  347. package/dist/types/mention.d.ts.map +1 -0
  348. package/dist/types/mention.js +2 -0
  349. package/dist/types/mention.js.map +1 -0
  350. package/dist/utils/composite-context-provider.d.ts +1 -1
  351. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  352. package/dist/utils/composite-context-provider.js +1 -1
  353. package/dist/utils/composite-context-provider.js.map +1 -1
  354. package/dist/utils/text.d.ts +1 -1
  355. package/dist/utils/text.d.ts.map +1 -1
  356. package/dist/utils/text.js.map +1 -1
  357. package/package.json +12 -12
  358. package/src/adapters/attachment.ts +1 -1
  359. package/src/adapters/feedback.ts +1 -1
  360. package/src/adapters/index.ts +4 -0
  361. package/src/adapters/mention.ts +77 -0
  362. package/src/adapters/speech.ts +1 -1
  363. package/src/adapters/suggestion.ts +1 -1
  364. package/src/index.ts +265 -5
  365. package/src/internal.ts +37 -2
  366. package/src/model-context/frame/host.ts +1 -1
  367. package/src/model-context/frame/provider.ts +1 -1
  368. package/src/model-context/registry.ts +1 -1
  369. package/src/model-context/types.ts +1 -1
  370. package/src/react/AssistantRuntimeProvider.tsx +1 -12
  371. package/src/react/RuntimeAdapter.ts +7 -8
  372. package/src/react/client/DataRenderers.ts +2 -2
  373. package/src/react/client/Tools.ts +7 -8
  374. package/src/react/index.ts +162 -10
  375. package/src/react/model-context/useInlineRender.ts +1 -1
  376. package/src/react/primitive-hooks/useActionBarSpeak.ts +20 -0
  377. package/src/react/primitive-hooks/useActionBarStopSpeaking.ts +13 -0
  378. package/src/react/primitive-hooks/useBranchPickerNext.ts +19 -0
  379. package/src/react/primitive-hooks/useBranchPickerPrevious.ts +19 -0
  380. package/src/react/primitive-hooks/useComposerDictate.ts +18 -0
  381. package/src/react/primitive-hooks/useComposerSend.ts +11 -4
  382. package/src/react/primitive-hooks/useMessageError.ts +10 -0
  383. package/src/react/primitive-hooks/useSuggestionTrigger.ts +43 -0
  384. package/src/react/primitive-hooks/useThreadListItemArchive.ts +12 -0
  385. package/src/react/primitive-hooks/useThreadListItemDelete.ts +12 -0
  386. package/src/react/primitive-hooks/useThreadListItemTrigger.ts +12 -0
  387. package/src/react/primitive-hooks/useThreadListItemUnarchive.ts +12 -0
  388. package/src/react/primitive-hooks/useThreadListNew.ts +12 -0
  389. package/src/react/primitives/chainOfThought/ChainOfThoughtParts.tsx +72 -28
  390. package/src/react/primitives/composer/ComposerAttachments.tsx +69 -30
  391. package/src/react/primitives/composer/ComposerQueue.tsx +58 -0
  392. package/src/react/primitives/message/MessageAttachments.tsx +69 -30
  393. package/src/react/primitives/message/MessageParts.tsx +212 -24
  394. package/src/react/primitives/message/MessageQuote.tsx +37 -0
  395. package/src/react/primitives/part/PartMessages.tsx +75 -0
  396. package/src/react/primitives/thread/ThreadMessages.tsx +113 -99
  397. package/src/react/primitives/thread/ThreadSuggestions.tsx +72 -28
  398. package/src/react/primitives/threadList/ThreadListItems.tsx +69 -23
  399. package/src/react/providers/QueueItemByIndexProvider.tsx +21 -0
  400. package/src/react/providers/ReadonlyThreadProvider.tsx +84 -0
  401. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +1 -1
  402. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +2 -1
  403. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +1 -1
  404. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +2 -2
  405. package/src/react/runtimes/cloud/auiV0.ts +1 -1
  406. package/src/react/runtimes/createMessageConverter.ts +1 -1
  407. package/src/react/runtimes/external-message-converter.ts +2 -2
  408. package/src/react/runtimes/useLocalRuntime.ts +1 -1
  409. package/src/react/runtimes/useToolInvocations.ts +1 -1
  410. package/src/react/types/MessagePartComponentTypes.ts +4 -0
  411. package/src/react/utils/getMessageQuote.ts +18 -0
  412. package/src/runtime/api/assistant-runtime.ts +2 -2
  413. package/src/runtime/api/attachment-runtime.ts +2 -1
  414. package/src/runtime/api/bindings.ts +1 -1
  415. package/src/runtime/api/composer-runtime.ts +9 -10
  416. package/src/runtime/api/message-part-runtime.ts +3 -3
  417. package/src/runtime/api/message-runtime.ts +5 -6
  418. package/src/runtime/api/thread-list-item-runtime.ts +1 -1
  419. package/src/runtime/api/thread-list-runtime.ts +5 -3
  420. package/src/runtime/api/thread-runtime.ts +19 -11
  421. package/src/runtime/base/base-assistant-runtime-core.ts +2 -2
  422. package/src/runtime/base/base-composer-runtime-core.ts +6 -7
  423. package/src/runtime/base/base-thread-runtime-core.ts +3 -2
  424. package/src/runtime/base/default-edit-composer-runtime-core.ts +1 -1
  425. package/src/runtime/base/default-thread-composer-runtime-core.ts +1 -1
  426. package/src/runtime/interfaces/assistant-runtime-core.ts +2 -2
  427. package/src/runtime/interfaces/composer-runtime-core.ts +5 -8
  428. package/src/runtime/interfaces/thread-list-runtime-core.ts +1 -1
  429. package/src/runtime/interfaces/thread-runtime-core.ts +5 -7
  430. package/src/runtime/utils/auto-status.ts +1 -1
  431. package/src/runtime/utils/chat-model-adapter.ts +7 -5
  432. package/src/runtime/utils/external-store-message.ts +1 -1
  433. package/src/runtime/utils/message-repository.ts +2 -1
  434. package/src/runtime/utils/thread-message-like.ts +3 -4
  435. package/src/runtimes/external-store/external-store-adapter.ts +1 -1
  436. package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +1 -1
  437. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +4 -2
  438. package/src/runtimes/external-store/thread-message-converter.ts +1 -1
  439. package/src/runtimes/internal.ts +3 -0
  440. package/src/runtimes/local/local-thread-list-runtime-core.ts +1 -1
  441. package/src/runtimes/local/local-thread-runtime-core.ts +4 -3
  442. package/src/runtimes/local/should-continue.ts +1 -1
  443. package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +224 -0
  444. package/src/runtimes/remote-thread-list/empty-thread-core.ts +1 -0
  445. package/src/runtimes/remote-thread-list/optimistic-state.ts +27 -0
  446. package/src/runtimes/remote-thread-list/types.ts +1 -1
  447. package/src/store/clients/chain-of-thought-client.ts +1 -1
  448. package/src/store/clients/model-context-client.ts +2 -2
  449. package/src/store/clients/no-op-composer-client.ts +5 -1
  450. package/src/store/clients/runtime-adapter.ts +21 -32
  451. package/src/store/clients/suggestions.ts +2 -1
  452. package/src/store/clients/thread-message-client.ts +4 -3
  453. package/src/store/index.ts +83 -2
  454. package/src/store/internal.ts +7 -1
  455. package/src/store/runtime-clients/attachment-runtime-client.ts +1 -1
  456. package/src/store/runtime-clients/composer-runtime-client.ts +8 -4
  457. package/src/store/runtime-clients/message-part-runtime-client.ts +1 -1
  458. package/src/store/runtime-clients/message-runtime-client.ts +2 -2
  459. package/src/store/runtime-clients/tap-subscribable.ts +1 -1
  460. package/src/store/runtime-clients/thread-list-item-runtime-client.ts +5 -2
  461. package/src/store/runtime-clients/thread-list-runtime-client.ts +3 -2
  462. package/src/store/runtime-clients/thread-runtime-client.ts +6 -4
  463. package/src/store/scope-registration.ts +2 -0
  464. package/src/store/scopes/attachment.ts +2 -2
  465. package/src/store/scopes/chain-of-thought.ts +2 -1
  466. package/src/store/scopes/composer.ts +27 -9
  467. package/src/store/scopes/message.ts +4 -3
  468. package/src/store/scopes/model-context.ts +2 -2
  469. package/src/store/scopes/part.ts +3 -3
  470. package/src/store/scopes/queue-item.ts +20 -0
  471. package/src/store/scopes/thread-list-item.ts +2 -4
  472. package/src/store/scopes/thread.ts +11 -4
  473. package/src/store/scopes/threads.ts +1 -1
  474. package/src/subscribable/subscribable.ts +1 -1
  475. package/src/tests/MessageRepository.test.ts +2 -1
  476. package/src/tests/OptimisticState-list-race.test.ts +256 -0
  477. package/src/tests/external-store-thread-runtime-core.test.ts +1 -1
  478. package/src/tests/mention-formatter.test.ts +112 -0
  479. package/src/types/index.ts +7 -0
  480. package/src/types/mention.ts +50 -0
  481. package/src/utils/composite-context-provider.ts +1 -1
  482. package/src/utils/text.ts +2 -1
  483. package/dist/model-context/frame/index.d.ts +0 -5
  484. package/dist/model-context/frame/index.d.ts.map +0 -1
  485. package/dist/model-context/frame/index.js +0 -4
  486. package/dist/model-context/frame/index.js.map +0 -1
  487. package/dist/model-context/index.d.ts +0 -8
  488. package/dist/model-context/index.d.ts.map +0 -1
  489. package/dist/model-context/index.js +0 -9
  490. package/dist/model-context/index.js.map +0 -1
  491. package/dist/react/client/index.d.ts +0 -3
  492. package/dist/react/client/index.d.ts.map +0 -1
  493. package/dist/react/client/index.js +0 -3
  494. package/dist/react/client/index.js.map +0 -1
  495. package/dist/react/model-context/index.d.ts +0 -12
  496. package/dist/react/model-context/index.d.ts.map +0 -1
  497. package/dist/react/model-context/index.js +0 -11
  498. package/dist/react/model-context/index.js.map +0 -1
  499. package/dist/react/primitive-hooks/index.d.ts +0 -15
  500. package/dist/react/primitive-hooks/index.d.ts.map +0 -1
  501. package/dist/react/primitive-hooks/index.js +0 -15
  502. package/dist/react/primitive-hooks/index.js.map +0 -1
  503. package/dist/react/providers/index.d.ts +0 -10
  504. package/dist/react/providers/index.d.ts.map +0 -1
  505. package/dist/react/providers/index.js +0 -10
  506. package/dist/react/providers/index.js.map +0 -1
  507. package/dist/react/runtimes/cloud/index.d.ts +0 -4
  508. package/dist/react/runtimes/cloud/index.d.ts.map +0 -1
  509. package/dist/react/runtimes/cloud/index.js +0 -4
  510. package/dist/react/runtimes/cloud/index.js.map +0 -1
  511. package/dist/react/runtimes/index.d.ts +0 -11
  512. package/dist/react/runtimes/index.d.ts.map +0 -1
  513. package/dist/react/runtimes/index.js +0 -11
  514. package/dist/react/runtimes/index.js.map +0 -1
  515. package/dist/react/types/index.d.ts +0 -3
  516. package/dist/react/types/index.d.ts.map +0 -1
  517. package/dist/react/types/index.js +0 -2
  518. package/dist/react/types/index.js.map +0 -1
  519. package/dist/react/types/scopes/index.d.ts +0 -3
  520. package/dist/react/types/scopes/index.d.ts.map +0 -1
  521. package/dist/react/types/scopes/index.js +0 -2
  522. package/dist/react/types/scopes/index.js.map +0 -1
  523. package/dist/runtime/index.d.ts +0 -20
  524. package/dist/runtime/index.d.ts.map +0 -1
  525. package/dist/runtime/index.js +0 -7
  526. package/dist/runtime/index.js.map +0 -1
  527. package/dist/runtimes/external-store/index.d.ts +0 -8
  528. package/dist/runtimes/external-store/index.d.ts.map +0 -1
  529. package/dist/runtimes/external-store/index.js +0 -5
  530. package/dist/runtimes/external-store/index.js.map +0 -1
  531. package/dist/runtimes/index.d.ts +0 -6
  532. package/dist/runtimes/index.d.ts.map +0 -1
  533. package/dist/runtimes/index.js +0 -4
  534. package/dist/runtimes/index.js.map +0 -1
  535. package/dist/runtimes/local/index.d.ts +0 -7
  536. package/dist/runtimes/local/index.d.ts.map +0 -1
  537. package/dist/runtimes/local/index.js +0 -5
  538. package/dist/runtimes/local/index.js.map +0 -1
  539. package/dist/store/clients/index.d.ts +0 -6
  540. package/dist/store/clients/index.d.ts.map +0 -1
  541. package/dist/store/clients/index.js +0 -6
  542. package/dist/store/clients/index.js.map +0 -1
  543. package/dist/store/runtime-clients/index.d.ts +0 -8
  544. package/dist/store/runtime-clients/index.d.ts.map +0 -1
  545. package/dist/store/runtime-clients/index.js +0 -8
  546. package/dist/store/runtime-clients/index.js.map +0 -1
  547. package/dist/store/scopes/index.d.ts +0 -12
  548. package/dist/store/scopes/index.d.ts.map +0 -1
  549. package/dist/store/scopes/index.js +0 -2
  550. package/dist/store/scopes/index.js.map +0 -1
  551. package/dist/subscribable/index.d.ts +0 -3
  552. package/dist/subscribable/index.d.ts.map +0 -1
  553. package/dist/subscribable/index.js +0 -8
  554. package/dist/subscribable/index.js.map +0 -1
  555. package/dist/utils/index.d.ts +0 -4
  556. package/dist/utils/index.d.ts.map +0 -1
  557. package/dist/utils/index.js +0 -7
  558. package/dist/utils/index.js.map +0 -1
  559. package/src/model-context/frame/index.ts +0 -10
  560. package/src/model-context/index.ts +0 -35
  561. package/src/react/client/index.ts +0 -2
  562. package/src/react/model-context/index.ts +0 -25
  563. package/src/react/primitive-hooks/index.ts +0 -20
  564. package/src/react/providers/index.ts +0 -15
  565. package/src/react/runtimes/cloud/index.ts +0 -3
  566. package/src/react/runtimes/index.ts +0 -36
  567. package/src/react/types/index.ts +0 -31
  568. package/src/react/types/scopes/index.ts +0 -6
  569. package/src/runtime/index.ts +0 -109
  570. package/src/runtimes/external-store/index.ts +0 -15
  571. package/src/runtimes/index.ts +0 -28
  572. package/src/runtimes/local/index.ts +0 -6
  573. package/src/store/clients/index.ts +0 -8
  574. package/src/store/runtime-clients/index.ts +0 -7
  575. package/src/store/scopes/index.ts +0 -68
  576. package/src/subscribable/index.ts +0 -21
  577. package/src/utils/index.ts +0 -14
@@ -0,0 +1,224 @@
1
+ import type { Unsubscribe } from "../../types/unsubscribe";
2
+ import type { ThreadMessage } from "../../types/message";
3
+ import type { ThreadRuntimeCore } from "../../runtime/interfaces/thread-runtime-core";
4
+ import { BaseSubscribable } from "../../subscribable/subscribable";
5
+
6
+ const READONLY_THREAD_ERROR = new Error(
7
+ "This is a readonly thread. You cannot perform mutations on readonly threads.",
8
+ );
9
+
10
+ export class ReadonlyThreadRuntimeCore
11
+ extends BaseSubscribable
12
+ implements ThreadRuntimeCore
13
+ {
14
+ private _messages: readonly ThreadMessage[] = [];
15
+
16
+ get messages() {
17
+ return this._messages;
18
+ }
19
+
20
+ setMessages(messages: readonly ThreadMessage[]) {
21
+ if (this._messages === messages) return;
22
+ this._messages = messages;
23
+ this._notifySubscribers();
24
+ }
25
+
26
+ getMessageById(messageId: string) {
27
+ const idx = this._messages.findIndex((m) => m.id === messageId);
28
+ if (idx === -1) return undefined;
29
+ return {
30
+ parentId: this._messages[idx - 1]?.id ?? null,
31
+ message: this._messages[idx]!,
32
+ index: idx,
33
+ };
34
+ }
35
+
36
+ getBranches(messageId: string) {
37
+ // no branching in readonly threads
38
+ const idx = this._messages.findIndex((m) => m.id === messageId);
39
+ if (idx === -1) return [];
40
+ return [messageId];
41
+ }
42
+
43
+ switchToBranch(): void {
44
+ throw READONLY_THREAD_ERROR;
45
+ }
46
+
47
+ append(): void {
48
+ throw READONLY_THREAD_ERROR;
49
+ }
50
+
51
+ startRun(): void {
52
+ throw READONLY_THREAD_ERROR;
53
+ }
54
+
55
+ resumeRun(): void {
56
+ throw READONLY_THREAD_ERROR;
57
+ }
58
+
59
+ cancelRun(): void {
60
+ // noop - nothing to cancel
61
+ }
62
+
63
+ addToolResult(): void {
64
+ throw READONLY_THREAD_ERROR;
65
+ }
66
+
67
+ resumeToolCall(): void {
68
+ throw READONLY_THREAD_ERROR;
69
+ }
70
+
71
+ speak(): void {
72
+ throw READONLY_THREAD_ERROR;
73
+ }
74
+
75
+ stopSpeaking(): void {
76
+ // noop
77
+ }
78
+
79
+ submitFeedback(): void {
80
+ throw READONLY_THREAD_ERROR;
81
+ }
82
+
83
+ getModelContext() {
84
+ return {};
85
+ }
86
+
87
+ exportExternalState() {
88
+ throw READONLY_THREAD_ERROR;
89
+ }
90
+
91
+ importExternalState(): void {
92
+ throw READONLY_THREAD_ERROR;
93
+ }
94
+
95
+ unstable_loadExternalState(): void {
96
+ throw READONLY_THREAD_ERROR;
97
+ }
98
+
99
+ composer = {
100
+ attachments: [] as never[],
101
+ attachmentAccept: "*",
102
+
103
+ async addAttachment() {
104
+ throw READONLY_THREAD_ERROR;
105
+ },
106
+
107
+ async removeAttachment() {
108
+ throw READONLY_THREAD_ERROR;
109
+ },
110
+
111
+ isEditing: false as const,
112
+ canCancel: false,
113
+ isEmpty: true,
114
+ text: "",
115
+
116
+ setText() {
117
+ throw READONLY_THREAD_ERROR;
118
+ },
119
+
120
+ role: "user" as const,
121
+
122
+ setRole() {
123
+ throw READONLY_THREAD_ERROR;
124
+ },
125
+
126
+ runConfig: {},
127
+
128
+ setRunConfig() {
129
+ throw READONLY_THREAD_ERROR;
130
+ },
131
+
132
+ async reset() {
133
+ // noop
134
+ },
135
+
136
+ async clearAttachments() {
137
+ // noop
138
+ },
139
+
140
+ send() {
141
+ throw READONLY_THREAD_ERROR;
142
+ },
143
+
144
+ cancel() {
145
+ // noop
146
+ },
147
+
148
+ dictation: undefined,
149
+
150
+ startDictation() {
151
+ throw READONLY_THREAD_ERROR;
152
+ },
153
+
154
+ stopDictation() {
155
+ // noop
156
+ },
157
+
158
+ quote: undefined,
159
+
160
+ setQuote() {
161
+ throw READONLY_THREAD_ERROR;
162
+ },
163
+
164
+ subscribe() {
165
+ return () => {};
166
+ },
167
+
168
+ unstable_on() {
169
+ return () => {};
170
+ },
171
+ };
172
+
173
+ getEditComposer() {
174
+ return undefined;
175
+ }
176
+
177
+ beginEdit(): void {
178
+ throw READONLY_THREAD_ERROR;
179
+ }
180
+
181
+ speech = undefined;
182
+
183
+ capabilities = {
184
+ switchToBranch: false,
185
+ switchBranchDuringRun: false,
186
+ edit: false,
187
+ reload: false,
188
+ cancel: false,
189
+ unstable_copy: false,
190
+ speech: false,
191
+ dictation: false,
192
+ attachments: false,
193
+ feedback: false,
194
+ queue: false,
195
+ } as const;
196
+
197
+ isDisabled = false;
198
+ isLoading = false;
199
+
200
+ state = null;
201
+ suggestions = [] as never[];
202
+ extras = undefined;
203
+
204
+ import(): void {
205
+ throw READONLY_THREAD_ERROR;
206
+ }
207
+
208
+ export() {
209
+ return {
210
+ messages: this._messages.map((message, idx) => ({
211
+ message,
212
+ parentId: this._messages[idx - 1]?.id ?? null,
213
+ })),
214
+ };
215
+ }
216
+
217
+ reset(): void {
218
+ throw READONLY_THREAD_ERROR;
219
+ }
220
+
221
+ unstable_on(): Unsubscribe {
222
+ return () => {};
223
+ }
224
+ }
@@ -165,6 +165,7 @@ export const EMPTY_THREAD_CORE: ThreadRuntimeCore = {
165
165
  dictation: false,
166
166
  attachments: false,
167
167
  feedback: false,
168
+ queue: false,
168
169
  },
169
170
 
170
171
  isDisabled: false,
@@ -30,6 +30,17 @@ const pipeTransforms = <TState, TExtra>(
30
30
  export class OptimisticState<TState> extends BaseSubscribable {
31
31
  private readonly _pendingTransforms: Array<PendingTransform<TState, any>> =
32
32
  [];
33
+
34
+ /**
35
+ * `optimistic` callbacks from transforms that have already resolved.
36
+ * Re-applied after every `then` callback so that a wholesale state
37
+ * replacement (e.g. list()) cannot erase earlier completed effects
38
+ * (e.g. delete). Cleared when no pending transforms remain.
39
+ *
40
+ * Correctness requirement: `optimistic` callbacks must be idempotent.
41
+ */
42
+ private readonly _completedOptimistics: Array<(state: TState) => TState> = [];
43
+
33
44
  private _baseValue: TState;
34
45
  private _cachedValue: TState;
35
46
 
@@ -77,12 +88,28 @@ export class OptimisticState<TState> extends BaseSubscribable {
77
88
  transform.optimistic,
78
89
  transform.then,
79
90
  ]);
91
+
92
+ // Re-apply previously completed optimistic callbacks so that a
93
+ // then() that does wholesale replacement cannot erase their effects.
94
+ for (const fn of this._completedOptimistics) {
95
+ this._baseValue = fn(this._baseValue);
96
+ }
97
+
98
+ if (transform.optimistic) {
99
+ this._completedOptimistics.push(transform.optimistic);
100
+ }
101
+
80
102
  return result;
81
103
  } finally {
82
104
  const index = this._pendingTransforms.indexOf(pendingTransform);
83
105
  if (index > -1) {
84
106
  this._pendingTransforms.splice(index, 1);
85
107
  }
108
+
109
+ if (this._pendingTransforms.length === 0) {
110
+ this._completedOptimistics.length = 0;
111
+ }
112
+
86
113
  this._updateState();
87
114
  }
88
115
  }
@@ -1,4 +1,4 @@
1
- import type { ThreadMessage } from "../../types";
1
+ import type { ThreadMessage } from "../../types/message";
2
2
  import type { AssistantRuntime } from "../../runtime/api/assistant-runtime";
3
3
  import { AssistantStream } from "assistant-stream";
4
4
 
@@ -4,7 +4,7 @@ import type {
4
4
  ChainOfThoughtState,
5
5
  ChainOfThoughtPart,
6
6
  } from "../scopes/chain-of-thought";
7
- import type { MessagePartStatus } from "../../types";
7
+ import type { MessagePartStatus } from "../../types/message";
8
8
  import type { PartMethods } from "../scopes/part";
9
9
 
10
10
  const COMPLETE_STATUS: MessagePartStatus = Object.freeze({
@@ -1,7 +1,7 @@
1
1
  import { resource, tapMemo, tapState } from "@assistant-ui/tap";
2
2
  import type { ClientOutput } from "@assistant-ui/store";
3
- import { CompositeContextProvider } from "../../utils";
4
- import type { ModelContextState } from "../scopes";
3
+ import { CompositeContextProvider } from "../../utils/composite-context-provider";
4
+ import type { ModelContextState } from "../scopes/model-context";
5
5
 
6
6
  const version = 1;
7
7
 
@@ -1,6 +1,6 @@
1
1
  import { resource, tapMemo } from "@assistant-ui/tap";
2
2
  import type { ClientOutput } from "@assistant-ui/store";
3
- import type { ComposerState } from "../scopes";
3
+ import type { ComposerState } from "../scopes/composer";
4
4
 
5
5
  export const NoOpComposerClient = resource(
6
6
  ({ type }: { type: "edit" | "thread" }): ClientOutput<"composer"> => {
@@ -17,6 +17,7 @@ export const NoOpComposerClient = resource(
17
17
  type: type,
18
18
  dictation: undefined,
19
19
  quote: undefined,
20
+ queue: [],
20
21
  };
21
22
  }, [type]);
22
23
 
@@ -61,6 +62,9 @@ export const NoOpComposerClient = resource(
61
62
  setQuote: () => {
62
63
  throw new Error("Not supported");
63
64
  },
65
+ queueItem: () => {
66
+ throw new Error("Not supported");
67
+ },
64
68
  };
65
69
  },
66
70
  );
@@ -1,6 +1,6 @@
1
1
  import { resource, tapEffect, tapResource } from "@assistant-ui/tap";
2
2
  import type { AssistantRuntime } from "../../runtime/api/assistant-runtime";
3
- import { ThreadListClient } from "../runtime-clients";
3
+ import { ThreadListClient } from "../runtime-clients/thread-list-runtime-client";
4
4
  import {
5
5
  tapAssistantClientRef,
6
6
  Derived,
@@ -30,38 +30,27 @@ export const RuntimeAdapterResource = resource((runtime: AssistantRuntime) => {
30
30
  export const baseRuntimeAdapterTransformScopes = (
31
31
  scopes: ScopesConfig,
32
32
  parent: AssistantClient,
33
- ): ScopesConfig => {
34
- const result = {
35
- ...scopes,
36
- thread:
37
- scopes.thread ??
38
- Derived({
39
- source: "threads",
40
- query: { type: "main" },
41
- get: (aui) => aui.threads().thread("main"),
42
- }),
43
- threadListItem:
44
- scopes.threadListItem ??
45
- Derived({
46
- source: "threads",
47
- query: { type: "main" },
48
- get: (aui) => aui.threads().item("main"),
49
- }),
50
- composer:
51
- scopes.composer ??
52
- Derived({
53
- source: "thread",
54
- query: {},
55
- get: (aui) => aui.threads().thread("main").composer(),
56
- }),
57
- };
33
+ ): void => {
34
+ scopes.thread ??= Derived({
35
+ source: "threads",
36
+ query: { type: "main" },
37
+ get: (aui) => aui.threads().thread("main"),
38
+ });
39
+ scopes.threadListItem ??= Derived({
40
+ source: "threads",
41
+ query: { type: "main" },
42
+ get: (aui) => aui.threads().item("main"),
43
+ });
44
+ scopes.composer ??= Derived({
45
+ source: "thread",
46
+ query: {},
47
+ get: (aui) => aui.threads().thread("main").composer(),
48
+ });
58
49
 
59
- if (!result.modelContext && parent.modelContext.source === null) {
60
- result.modelContext = ModelContext();
50
+ if (!scopes.modelContext && parent.modelContext.source === null) {
51
+ scopes.modelContext = ModelContext();
61
52
  }
62
- if (!result.suggestions && parent.suggestions.source === null) {
63
- result.suggestions = Suggestions();
53
+ if (!scopes.suggestions && parent.suggestions.source === null) {
54
+ scopes.suggestions = Suggestions();
64
55
  }
65
-
66
- return result;
67
56
  };
@@ -1,7 +1,8 @@
1
1
  import { resource, tapState, withKey } from "@assistant-ui/tap";
2
2
  import type { ClientOutput } from "@assistant-ui/store";
3
3
  import { tapClientLookup } from "@assistant-ui/store";
4
- import type { SuggestionsState, SuggestionState } from "../scopes";
4
+ import type { SuggestionsState } from "../scopes/suggestions";
5
+ import type { SuggestionState } from "../scopes/suggestion";
5
6
 
6
7
  export type SuggestionConfig =
7
8
  | string
@@ -1,9 +1,9 @@
1
1
  import type {
2
2
  ThreadAssistantMessagePart,
3
3
  ThreadUserMessagePart,
4
- Attachment,
5
4
  ThreadMessage,
6
- } from "../../types";
5
+ } from "../../types/message";
6
+ import type { Attachment } from "../../types/attachment";
7
7
  import {
8
8
  resource,
9
9
  tapMemo,
@@ -13,7 +13,8 @@ import {
13
13
  } from "@assistant-ui/tap";
14
14
  import type { ClientOutput } from "@assistant-ui/store";
15
15
  import { tapClientLookup } from "@assistant-ui/store";
16
- import type { MessageState, PartState } from "../scopes";
16
+ import type { MessageState } from "../scopes/message";
17
+ import type { PartState } from "../scopes/part";
17
18
  import { NoOpComposerClient } from "./no-op-composer-client";
18
19
 
19
20
  const ThreadMessagePartClient = resource(
@@ -1,7 +1,88 @@
1
1
  /// <reference path="./scope-registration.ts" />
2
2
 
3
3
  // scopes
4
- export * from "./scopes";
4
+ export type {
5
+ ThreadsState,
6
+ ThreadsMethods,
7
+ ThreadsClientSchema,
8
+ } from "./scopes/threads";
9
+ export type {
10
+ ThreadListItemState,
11
+ ThreadListItemMethods,
12
+ ThreadListItemMeta,
13
+ ThreadListItemEvents,
14
+ ThreadListItemClientSchema,
15
+ } from "./scopes/thread-list-item";
16
+ export type {
17
+ ThreadState,
18
+ ThreadMethods,
19
+ ThreadMeta,
20
+ ThreadEvents,
21
+ ThreadClientSchema,
22
+ } from "./scopes/thread";
23
+ export type {
24
+ MessageState,
25
+ MessageMethods,
26
+ MessageMeta,
27
+ MessageClientSchema,
28
+ } from "./scopes/message";
29
+ export type {
30
+ PartState,
31
+ PartMethods,
32
+ PartMeta,
33
+ PartClientSchema,
34
+ } from "./scopes/part";
35
+ export type {
36
+ ComposerState,
37
+ ComposerMethods,
38
+ ComposerSendOptions,
39
+ ComposerMeta,
40
+ ComposerEvents,
41
+ ComposerClientSchema,
42
+ } from "./scopes/composer";
43
+ export type {
44
+ QueueItemState,
45
+ QueueItemMethods,
46
+ QueueItemMeta,
47
+ QueueItemClientSchema,
48
+ } from "./scopes/queue-item";
49
+ export type {
50
+ AttachmentState,
51
+ AttachmentMethods,
52
+ AttachmentMeta,
53
+ AttachmentClientSchema,
54
+ } from "./scopes/attachment";
55
+ export type {
56
+ SuggestionsState,
57
+ SuggestionsMethods,
58
+ SuggestionsClientSchema,
59
+ Suggestion,
60
+ } from "./scopes/suggestions";
61
+ export type {
62
+ SuggestionState,
63
+ SuggestionMethods,
64
+ SuggestionMeta,
65
+ SuggestionClientSchema,
66
+ } from "./scopes/suggestion";
67
+ export type {
68
+ ModelContextState,
69
+ ModelContextMethods,
70
+ ModelContextClientSchema,
71
+ } from "./scopes/model-context";
72
+ export type {
73
+ ChainOfThoughtState,
74
+ ChainOfThoughtMethods,
75
+ ChainOfThoughtMeta,
76
+ ChainOfThoughtClientSchema,
77
+ ChainOfThoughtPart,
78
+ } from "./scopes/chain-of-thought";
5
79
 
6
80
  // clients
7
- export * from "./clients";
81
+ export { NoOpComposerClient } from "./clients/no-op-composer-client";
82
+ export { Suggestions, type SuggestionConfig } from "./clients/suggestions";
83
+ export { ChainOfThoughtClient } from "./clients/chain-of-thought-client";
84
+ export {
85
+ ThreadMessageClient,
86
+ type ThreadMessageClientProps,
87
+ } from "./clients/thread-message-client";
88
+ export { ModelContext } from "./clients/model-context-client";
@@ -1,4 +1,10 @@
1
- export * from "./runtime-clients";
1
+ export { AttachmentRuntimeClient } from "./runtime-clients/attachment-runtime-client";
2
+ export { MessagePartClient } from "./runtime-clients/message-part-runtime-client";
3
+ export { ComposerClient } from "./runtime-clients/composer-runtime-client";
4
+ export { MessageClient } from "./runtime-clients/message-runtime-client";
5
+ export { ThreadClient } from "./runtime-clients/thread-runtime-client";
6
+ export { ThreadListItemClient } from "./runtime-clients/thread-list-item-runtime-client";
7
+ export { ThreadListClient } from "./runtime-clients/thread-list-runtime-client";
2
8
  export {
3
9
  RuntimeAdapterResource,
4
10
  baseRuntimeAdapterTransformScopes,
@@ -1,6 +1,6 @@
1
1
  import { resource } from "@assistant-ui/tap";
2
2
  import { type ClientOutput } from "@assistant-ui/store";
3
- import { AttachmentRuntime } from "../../runtime";
3
+ import { AttachmentRuntime } from "../../runtime/api/attachment-runtime";
4
4
  import { tapSubscribable } from "./tap-subscribable";
5
5
 
6
6
  export const AttachmentRuntimeClient = resource(
@@ -1,4 +1,4 @@
1
- import type { Unsubscribe } from "../../types";
1
+ import type { Unsubscribe } from "../../types/unsubscribe";
2
2
  import {
3
3
  resource,
4
4
  tapMemo,
@@ -15,9 +15,9 @@ import {
15
15
  import {
16
16
  ComposerRuntime,
17
17
  EditComposerRuntime,
18
- ComposerRuntimeEventType,
19
- } from "../../runtime";
20
- import { ComposerState } from "../scopes";
18
+ } from "../../runtime/api/composer-runtime";
19
+ import { ComposerRuntimeEventType } from "../../runtime/interfaces/composer-runtime-core";
20
+ import { ComposerState } from "../scopes/composer";
21
21
  import { AttachmentRuntimeClient } from "./attachment-runtime-client";
22
22
  import { tapSubscribable } from "./tap-subscribable";
23
23
 
@@ -101,6 +101,7 @@ export const ComposerClient = resource(
101
101
  type: runtimeState.type ?? "thread",
102
102
  dictation: runtimeState.dictation,
103
103
  quote: runtimeState.quote,
104
+ queue: [],
104
105
  };
105
106
  }, [runtimeState, attachments.state]);
106
107
 
@@ -129,6 +130,9 @@ export const ComposerClient = resource(
129
130
  return attachments.get(selector);
130
131
  }
131
132
  },
133
+ queueItem: () => {
134
+ throw new Error("Queue is not supported in this runtime");
135
+ },
132
136
  __internal_getRuntime: () => runtime,
133
137
  };
134
138
  },
@@ -1,6 +1,6 @@
1
1
  import { resource } from "@assistant-ui/tap";
2
2
  import { type ClientOutput } from "@assistant-ui/store";
3
- import { MessagePartRuntime } from "../../runtime";
3
+ import { MessagePartRuntime } from "../../runtime/api/message-part-runtime";
4
4
  import { tapSubscribable } from "./tap-subscribable";
5
5
 
6
6
  export const MessagePartClient = resource(
@@ -11,11 +11,11 @@ import {
11
11
  tapClientLookup,
12
12
  tapClientResource,
13
13
  } from "@assistant-ui/store";
14
- import { MessageRuntime } from "../../runtime";
14
+ import { MessageRuntime } from "../../runtime/api/message-runtime";
15
15
  import { tapSubscribable } from "./tap-subscribable";
16
16
  import { ComposerClient } from "./composer-runtime-client";
17
17
  import { MessagePartClient } from "./message-part-runtime-client";
18
- import { MessageState } from "../scopes";
18
+ import { MessageState } from "../scopes/message";
19
19
  import { AttachmentRuntimeClient } from "./attachment-runtime-client";
20
20
 
21
21
  const MessageAttachmentClientByIndex = resource(
@@ -1,5 +1,5 @@
1
1
  import { tapState, tapEffect } from "@assistant-ui/tap";
2
- import type { SubscribableWithState } from "../../subscribable";
2
+ import type { SubscribableWithState } from "../../subscribable/subscribable";
3
3
 
4
4
  export const tapSubscribable = <T>(
5
5
  subscribable: Omit<SubscribableWithState<T, any>, "path">,
@@ -1,7 +1,10 @@
1
- import type { Unsubscribe } from "../../types";
1
+ import type { Unsubscribe } from "../../types/unsubscribe";
2
2
  import { resource, tapEffect } from "@assistant-ui/tap";
3
3
  import { type ClientOutput, tapAssistantEmit } from "@assistant-ui/store";
4
- import { ThreadListItemEventType, ThreadListItemRuntime } from "../../runtime";
4
+ import {
5
+ ThreadListItemEventType,
6
+ ThreadListItemRuntime,
7
+ } from "../../runtime/api/thread-list-item-runtime";
5
8
  import { tapSubscribable } from "./tap-subscribable";
6
9
 
7
10
  export const ThreadListItemClient = resource(
@@ -4,11 +4,12 @@ import {
4
4
  tapClientLookup,
5
5
  tapClientResource,
6
6
  } from "@assistant-ui/store";
7
- import { ThreadListRuntime, AssistantRuntime } from "../../runtime";
7
+ import { ThreadListRuntime } from "../../runtime/api/thread-list-runtime";
8
+ import { AssistantRuntime } from "../../runtime/api/assistant-runtime";
8
9
  import { tapSubscribable } from "./tap-subscribable";
9
10
  import { ThreadListItemClient } from "./thread-list-item-runtime-client";
10
11
  import { ThreadClient } from "./thread-runtime-client";
11
- import { ThreadsState } from "../scopes";
12
+ import { ThreadsState } from "../scopes/threads";
12
13
 
13
14
  const ThreadListItemClientById = resource(
14
15
  ({ runtime, id }: { runtime: ThreadListRuntime; id: string }) => {
@@ -1,5 +1,6 @@
1
- import type { Unsubscribe } from "../../types";
2
- import { ThreadRuntimeEventType, ThreadRuntime } from "../../runtime";
1
+ import type { Unsubscribe } from "../../types/unsubscribe";
2
+ import { ThreadRuntimeEventType } from "../../runtime/interfaces/thread-runtime-core";
3
+ import { ThreadRuntime } from "../../runtime/api/thread-runtime";
3
4
  import {
4
5
  resource,
5
6
  tapResource,
@@ -17,7 +18,7 @@ import {
17
18
  import { ComposerClient } from "./composer-runtime-client";
18
19
  import { MessageClient } from "./message-runtime-client";
19
20
  import { tapSubscribable } from "./tap-subscribable";
20
- import { ThreadState } from "../scopes";
21
+ import { ThreadState } from "../scopes/thread";
21
22
 
22
23
  const MessageClientById = resource(
23
24
  ({
@@ -115,7 +116,8 @@ export const ThreadClient = resource(
115
116
  composer: () => composer.methods,
116
117
  append: runtime.append,
117
118
  startRun: runtime.startRun,
118
- unstable_resumeRun: runtime.unstable_resumeRun,
119
+ resumeRun: runtime.resumeRun,
120
+ unstable_resumeRun: runtime.resumeRun,
119
121
  cancelRun: runtime.cancelRun,
120
122
  getModelContext: runtime.getModelContext,
121
123
  export: runtime.export,