@assistant-ui/core 0.2.12 → 0.2.15

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 (445) hide show
  1. package/dist/adapters/attachment.js.map +1 -1
  2. package/dist/adapters/directive-formatter.js.map +1 -1
  3. package/dist/adapters/speech.js.map +1 -1
  4. package/dist/adapters/thread-history.d.ts +3 -1
  5. package/dist/adapters/thread-history.d.ts.map +1 -1
  6. package/dist/adapters/voice.js.map +1 -1
  7. package/dist/index.d.ts +3 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/internal/duplicate-detection.js.map +1 -1
  10. package/dist/internal.d.ts +2 -1
  11. package/dist/internal.js +2 -1
  12. package/dist/model-context/frame/host.js.map +1 -1
  13. package/dist/model-context/frame/provider.js.map +1 -1
  14. package/dist/model-context/frame/types.js.map +1 -1
  15. package/dist/model-context/registry.js.map +1 -1
  16. package/dist/model-context/tool.js.map +1 -1
  17. package/dist/model-context/types.d.ts +1 -0
  18. package/dist/model-context/types.d.ts.map +1 -1
  19. package/dist/model-context/types.js.map +1 -1
  20. package/dist/react/AssistantProvider.js +7 -1
  21. package/dist/react/AssistantProvider.js.map +1 -1
  22. package/dist/react/AssistantRuntimeProvider.js +18 -6
  23. package/dist/react/AssistantRuntimeProvider.js.map +1 -1
  24. package/dist/react/RuntimeAdapter.d.ts +1 -1
  25. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  26. package/dist/react/RuntimeAdapter.js +35 -6
  27. package/dist/react/RuntimeAdapter.js.map +1 -1
  28. package/dist/react/adapters/LocalStorageThreadListAdapter.js +29 -7
  29. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  30. package/dist/react/adapters/TitleGenerationAdapter.js.map +1 -1
  31. package/dist/react/client/DataRenderers.d.ts +1 -8
  32. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  33. package/dist/react/client/DataRenderers.js +56 -36
  34. package/dist/react/client/DataRenderers.js.map +1 -1
  35. package/dist/react/client/Interactables.d.ts +1 -1
  36. package/dist/react/client/Interactables.d.ts.map +1 -1
  37. package/dist/react/client/Interactables.js +71 -70
  38. package/dist/react/client/Interactables.js.map +1 -1
  39. package/dist/react/client/Tools.d.ts +2 -13
  40. package/dist/react/client/Tools.d.ts.map +1 -1
  41. package/dist/react/client/Tools.js +121 -57
  42. package/dist/react/client/Tools.js.map +1 -1
  43. package/dist/react/client/interactable-model-context.js.map +1 -1
  44. package/dist/react/model-context/define-mcp-toolkit.js.map +1 -1
  45. package/dist/react/model-context/define-toolkit.js.map +1 -1
  46. package/dist/react/model-context/external-tool.js.map +1 -1
  47. package/dist/react/model-context/human-tool.js.map +1 -1
  48. package/dist/react/model-context/makeAssistantDataUI.js.map +1 -1
  49. package/dist/react/model-context/makeAssistantTool.js.map +1 -1
  50. package/dist/react/model-context/makeAssistantToolUI.js.map +1 -1
  51. package/dist/react/model-context/provider-tool.js.map +1 -1
  52. package/dist/react/model-context/stub-tool.js.map +1 -1
  53. package/dist/react/model-context/toolbox.js.map +1 -1
  54. package/dist/react/model-context/useAssistantContext.js.map +1 -1
  55. package/dist/react/model-context/useAssistantDataUI.js +27 -8
  56. package/dist/react/model-context/useAssistantDataUI.js.map +1 -1
  57. package/dist/react/model-context/useAssistantInstructions.js +33 -10
  58. package/dist/react/model-context/useAssistantInstructions.js.map +1 -1
  59. package/dist/react/model-context/useAssistantInteractable.js.map +1 -1
  60. package/dist/react/model-context/useAssistantTool.js +59 -17
  61. package/dist/react/model-context/useAssistantTool.js.map +1 -1
  62. package/dist/react/model-context/useAssistantToolUI.js +30 -9
  63. package/dist/react/model-context/useAssistantToolUI.js.map +1 -1
  64. package/dist/react/model-context/useAuiToolOverrides.js.map +1 -1
  65. package/dist/react/model-context/useInlineRender.js +35 -8
  66. package/dist/react/model-context/useInlineRender.js.map +1 -1
  67. package/dist/react/model-context/useInteractableState.js +65 -19
  68. package/dist/react/model-context/useInteractableState.js.map +1 -1
  69. package/dist/react/model-context/useToolArgsStatus.js +42 -14
  70. package/dist/react/model-context/useToolArgsStatus.js.map +1 -1
  71. package/dist/react/primitive-hooks/useActionBarCopy.js +59 -22
  72. package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
  73. package/dist/react/primitive-hooks/useActionBarEdit.js +25 -7
  74. package/dist/react/primitive-hooks/useActionBarEdit.js.map +1 -1
  75. package/dist/react/primitive-hooks/useActionBarFeedback.js +49 -13
  76. package/dist/react/primitive-hooks/useActionBarFeedback.js.map +1 -1
  77. package/dist/react/primitive-hooks/useActionBarReload.js +25 -7
  78. package/dist/react/primitive-hooks/useActionBarReload.js.map +1 -1
  79. package/dist/react/primitive-hooks/useActionBarSpeak.js +28 -9
  80. package/dist/react/primitive-hooks/useActionBarSpeak.js.map +1 -1
  81. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js +25 -7
  82. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js.map +1 -1
  83. package/dist/react/primitive-hooks/useBranchPickerNext.js +27 -11
  84. package/dist/react/primitive-hooks/useBranchPickerNext.js.map +1 -1
  85. package/dist/react/primitive-hooks/useBranchPickerPrevious.js +27 -11
  86. package/dist/react/primitive-hooks/useBranchPickerPrevious.js.map +1 -1
  87. package/dist/react/primitive-hooks/useComposerAddAttachment.js +24 -8
  88. package/dist/react/primitive-hooks/useComposerAddAttachment.js.map +1 -1
  89. package/dist/react/primitive-hooks/useComposerCancel.js +25 -7
  90. package/dist/react/primitive-hooks/useComposerCancel.js.map +1 -1
  91. package/dist/react/primitive-hooks/useComposerDictate.js +25 -7
  92. package/dist/react/primitive-hooks/useComposerDictate.js.map +1 -1
  93. package/dist/react/primitive-hooks/useComposerSend.js +25 -7
  94. package/dist/react/primitive-hooks/useComposerSend.js.map +1 -1
  95. package/dist/react/primitive-hooks/useEditComposerCancel.js +18 -4
  96. package/dist/react/primitive-hooks/useEditComposerCancel.js.map +1 -1
  97. package/dist/react/primitive-hooks/useEditComposerSend.js +25 -7
  98. package/dist/react/primitive-hooks/useEditComposerSend.js.map +1 -1
  99. package/dist/react/primitive-hooks/useMessageBranching.js +41 -9
  100. package/dist/react/primitive-hooks/useMessageBranching.js.map +1 -1
  101. package/dist/react/primitive-hooks/useMessageError.js +4 -1
  102. package/dist/react/primitive-hooks/useMessageError.js.map +1 -1
  103. package/dist/react/primitive-hooks/useMessageReload.js +25 -7
  104. package/dist/react/primitive-hooks/useMessageReload.js.map +1 -1
  105. package/dist/react/primitive-hooks/useSuggestionTrigger.js +31 -13
  106. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
  107. package/dist/react/primitive-hooks/useThreadIsEmpty.js +4 -1
  108. package/dist/react/primitive-hooks/useThreadIsEmpty.js.map +1 -1
  109. package/dist/react/primitive-hooks/useThreadIsRunning.js +4 -1
  110. package/dist/react/primitive-hooks/useThreadIsRunning.js.map +1 -1
  111. package/dist/react/primitive-hooks/useThreadListItemArchive.js +18 -4
  112. package/dist/react/primitive-hooks/useThreadListItemArchive.js.map +1 -1
  113. package/dist/react/primitive-hooks/useThreadListItemDelete.js +18 -4
  114. package/dist/react/primitive-hooks/useThreadListItemDelete.js.map +1 -1
  115. package/dist/react/primitive-hooks/useThreadListItemTrigger.js +18 -4
  116. package/dist/react/primitive-hooks/useThreadListItemTrigger.js.map +1 -1
  117. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js +18 -4
  118. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js.map +1 -1
  119. package/dist/react/primitive-hooks/useThreadListLoadMore.js +25 -7
  120. package/dist/react/primitive-hooks/useThreadListLoadMore.js.map +1 -1
  121. package/dist/react/primitive-hooks/useThreadListNew.js +18 -4
  122. package/dist/react/primitive-hooks/useThreadListNew.js.map +1 -1
  123. package/dist/react/primitive-hooks/useThreadMessages.js +4 -1
  124. package/dist/react/primitive-hooks/useThreadMessages.js.map +1 -1
  125. package/dist/react/primitive-hooks/useVoice.js +63 -13
  126. package/dist/react/primitive-hooks/useVoice.js.map +1 -1
  127. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js +42 -7
  128. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
  129. package/dist/react/primitives/composer/ComposerAttachments.js +67 -16
  130. package/dist/react/primitives/composer/ComposerAttachments.js.map +1 -1
  131. package/dist/react/primitives/composer/ComposerIf.js +30 -9
  132. package/dist/react/primitives/composer/ComposerIf.js.map +1 -1
  133. package/dist/react/primitives/composer/ComposerQueue.js.map +1 -1
  134. package/dist/react/primitives/generativeUI/GenerativeUI.js +55 -13
  135. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  136. package/dist/react/primitives/message/MessageAttachments.js +68 -16
  137. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  138. package/dist/react/primitives/message/MessageGroupedParts.d.ts +3 -2
  139. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  140. package/dist/react/primitives/message/MessageGroupedParts.js +6 -6
  141. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  142. package/dist/react/primitives/message/MessageParts.d.ts +28 -1
  143. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  144. package/dist/react/primitives/message/MessageParts.js +665 -163
  145. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  146. package/dist/react/primitives/message/MessageQuote.js +18 -2
  147. package/dist/react/primitives/message/MessageQuote.js.map +1 -1
  148. package/dist/react/primitives/messagePart/MessagePartInProgress.js +6 -2
  149. package/dist/react/primitives/messagePart/MessagePartInProgress.js.map +1 -1
  150. package/dist/react/primitives/part/PartMessages.js +46 -14
  151. package/dist/react/primitives/part/PartMessages.js.map +1 -1
  152. package/dist/react/primitives/thread/ThreadMessages.js +67 -10
  153. package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
  154. package/dist/react/primitives/thread/ThreadSuggestions.js +50 -10
  155. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
  156. package/dist/react/primitives/threadList/ThreadListItems.js +55 -14
  157. package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -1
  158. package/dist/react/primitives/threadListItem/ThreadListItemTitle.js +15 -2
  159. package/dist/react/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
  160. package/dist/react/providers/AttachmentByIndexProvider.js +57 -12
  161. package/dist/react/providers/AttachmentByIndexProvider.js.map +1 -1
  162. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js +33 -11
  163. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js.map +1 -1
  164. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js +29 -6
  165. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js.map +1 -1
  166. package/dist/react/providers/MessageByIndexProvider.js +49 -19
  167. package/dist/react/providers/MessageByIndexProvider.js.map +1 -1
  168. package/dist/react/providers/PartByIndexProvider.js +29 -6
  169. package/dist/react/providers/PartByIndexProvider.js.map +1 -1
  170. package/dist/react/providers/QueueItemByIndexProvider.js +29 -6
  171. package/dist/react/providers/QueueItemByIndexProvider.js.map +1 -1
  172. package/dist/react/providers/ReadonlyThreadProvider.js +83 -28
  173. package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
  174. package/dist/react/providers/SuggestionByIndexProvider.js +29 -6
  175. package/dist/react/providers/SuggestionByIndexProvider.js.map +1 -1
  176. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  177. package/dist/react/providers/TextMessagePartProvider.js +75 -26
  178. package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
  179. package/dist/react/providers/ThreadListItemByIndexProvider.js +30 -6
  180. package/dist/react/providers/ThreadListItemByIndexProvider.js.map +1 -1
  181. package/dist/react/providers/ThreadListItemRuntimeProvider.js +28 -5
  182. package/dist/react/providers/ThreadListItemRuntimeProvider.js.map +1 -1
  183. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +2 -0
  184. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  185. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +19 -4
  186. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  187. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +2 -0
  188. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  189. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +1 -0
  190. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  191. package/dist/react/runtimes/RuntimeAdapterProvider.js +27 -10
  192. package/dist/react/runtimes/RuntimeAdapterProvider.js.map +1 -1
  193. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  194. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +16 -1
  195. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  196. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  197. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  198. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  199. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +19 -17
  200. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
  201. package/dist/react/runtimes/createMessageConverter.js.map +1 -1
  202. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  203. package/dist/react/runtimes/external-message-converter.js +67 -30
  204. package/dist/react/runtimes/external-message-converter.js.map +1 -1
  205. package/dist/react/runtimes/useExternalStoreRuntime.js +44 -10
  206. package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
  207. package/dist/react/runtimes/useExternalStoreSharedOptions.js +17 -12
  208. package/dist/react/runtimes/useExternalStoreSharedOptions.js.map +1 -1
  209. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  210. package/dist/react/runtimes/useRemoteThreadListRuntime.js +34 -6
  211. package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
  212. package/dist/react/types/MessagePartComponentTypes.d.ts +5 -6
  213. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  214. package/dist/react/utils/getMessageQuote.js.map +1 -1
  215. package/dist/react/utils/groupParts.d.ts +13 -1
  216. package/dist/react/utils/groupParts.d.ts.map +1 -1
  217. package/dist/react/utils/groupParts.js +17 -5
  218. package/dist/react/utils/groupParts.js.map +1 -1
  219. package/dist/runtime/api/assistant-runtime.js.map +1 -1
  220. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  221. package/dist/runtime/api/bindings.d.ts +1 -0
  222. package/dist/runtime/api/bindings.d.ts.map +1 -1
  223. package/dist/runtime/api/composer-runtime.js.map +1 -1
  224. package/dist/runtime/api/message-part-runtime.d.ts +3 -9
  225. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  226. package/dist/runtime/api/message-part-runtime.js +3 -6
  227. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  228. package/dist/runtime/api/message-runtime.d.ts +2 -0
  229. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  230. package/dist/runtime/api/message-runtime.js +5 -0
  231. package/dist/runtime/api/message-runtime.js.map +1 -1
  232. package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
  233. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  234. package/dist/runtime/api/thread-list-runtime.js +1 -0
  235. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  236. package/dist/runtime/api/thread-runtime.d.ts +3 -0
  237. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  238. package/dist/runtime/api/thread-runtime.js +4 -0
  239. package/dist/runtime/api/thread-runtime.js.map +1 -1
  240. package/dist/runtime/base/base-assistant-runtime-core.js.map +1 -1
  241. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  242. package/dist/runtime/base/base-thread-runtime-core.d.ts +1 -0
  243. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  244. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  245. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  246. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  247. package/dist/runtime/branch/external-thread-branch-adapter.d.ts +30 -0
  248. package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -0
  249. package/dist/runtime/branch/external-thread-branch-adapter.js +0 -0
  250. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +1 -0
  251. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  252. package/dist/runtime/interfaces/thread-runtime-core.d.ts +4 -1
  253. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  254. package/dist/runtime/queue/message-queue.js.map +1 -1
  255. package/dist/runtime/utils/auto-status.js.map +1 -1
  256. package/dist/runtime/utils/external-store-message.js.map +1 -1
  257. package/dist/runtime/utils/message-repository.js.map +1 -1
  258. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +15 -0
  259. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -0
  260. package/dist/runtime/utils/resolveToolApprovalResponse.js +35 -0
  261. package/dist/runtime/utils/resolveToolApprovalResponse.js.map +1 -0
  262. package/dist/runtime/utils/thread-message-like.d.ts +5 -1
  263. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  264. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  265. package/dist/runtimes/assistant-transport/utils.js.map +1 -1
  266. package/dist/runtimes/external-store/external-store-adapter.d.ts +1 -0
  267. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  268. package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
  269. package/dist/runtimes/external-store/external-store-shared-options.js.map +1 -1
  270. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  271. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +1 -0
  272. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  273. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +13 -0
  274. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  275. package/dist/runtimes/external-store/thread-message-converter.js.map +1 -1
  276. package/dist/runtimes/local/local-runtime-core.js.map +1 -1
  277. package/dist/runtimes/local/local-runtime-options.d.ts +1 -1
  278. package/dist/runtimes/local/local-thread-list-runtime-core.js.map +1 -1
  279. package/dist/runtimes/local/local-thread-runtime-core.d.ts +9 -1
  280. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  281. package/dist/runtimes/local/local-thread-runtime-core.js +65 -5
  282. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  283. package/dist/runtimes/local/should-continue.js +4 -2
  284. package/dist/runtimes/local/should-continue.js.map +1 -1
  285. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +2 -0
  286. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  287. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +4 -0
  288. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  289. package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -1
  290. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  291. package/dist/runtimes/remote-thread-list/empty-thread-core.js +4 -0
  292. package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
  293. package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
  294. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +1 -0
  295. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  296. package/dist/runtimes/remote-thread-list/remote-thread-state.js +1 -0
  297. package/dist/runtimes/remote-thread-list/remote-thread-state.js.map +1 -1
  298. package/dist/runtimes/remote-thread-list/types.d.ts +1 -0
  299. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  300. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  301. package/dist/store/clients/chain-of-thought-client.d.ts +2 -7
  302. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  303. package/dist/store/clients/chain-of-thought-client.js +39 -20
  304. package/dist/store/clients/chain-of-thought-client.js.map +1 -1
  305. package/dist/store/clients/model-context-client.d.ts +1 -1
  306. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  307. package/dist/store/clients/model-context-client.js +67 -16
  308. package/dist/store/clients/model-context-client.js.map +1 -1
  309. package/dist/store/clients/no-op-composer-client.d.ts +2 -4
  310. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  311. package/dist/store/clients/no-op-composer-client.js +96 -54
  312. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  313. package/dist/store/clients/runtime-adapter.d.ts +1 -3
  314. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  315. package/dist/store/clients/runtime-adapter.js +2 -15
  316. package/dist/store/clients/runtime-adapter.js.map +1 -1
  317. package/dist/store/clients/suggestions.d.ts +1 -4
  318. package/dist/store/clients/suggestions.d.ts.map +1 -1
  319. package/dist/store/clients/suggestions.js +63 -23
  320. package/dist/store/clients/suggestions.js.map +1 -1
  321. package/dist/store/clients/thread-message-client.d.ts +1 -1
  322. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  323. package/dist/store/clients/thread-message-client.js +184 -73
  324. package/dist/store/clients/thread-message-client.js.map +1 -1
  325. package/dist/store/internal.d.ts +2 -2
  326. package/dist/store/internal.js +2 -2
  327. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +2 -4
  328. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  329. package/dist/store/runtime-clients/attachment-runtime-client.js +31 -7
  330. package/dist/store/runtime-clients/attachment-runtime-client.js.map +1 -1
  331. package/dist/store/runtime-clients/composer-runtime-client.d.ts +2 -10
  332. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  333. package/dist/store/runtime-clients/composer-runtime-client.js +195 -72
  334. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  335. package/dist/store/runtime-clients/liveRef.d.ts +7 -0
  336. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -0
  337. package/dist/store/runtime-clients/liveRef.js +8 -0
  338. package/dist/store/runtime-clients/liveRef.js.map +1 -0
  339. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +2 -4
  340. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  341. package/dist/store/runtime-clients/message-part-runtime-client.js +49 -9
  342. package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
  343. package/dist/store/runtime-clients/message-runtime-client.d.ts +2 -7
  344. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  345. package/dist/store/runtime-clients/message-runtime-client.js +220 -54
  346. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  347. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +2 -4
  348. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  349. package/dist/store/runtime-clients/thread-list-item-runtime-client.js +71 -26
  350. package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -1
  351. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +2 -5
  352. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  353. package/dist/store/runtime-clients/thread-list-runtime-client.js +141 -36
  354. package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
  355. package/dist/store/runtime-clients/thread-runtime-client.d.ts +2 -4
  356. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  357. package/dist/store/runtime-clients/thread-runtime-client.js +196 -72
  358. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  359. package/dist/store/runtime-clients/useSubscribable.js +2 -9
  360. package/dist/store/runtime-clients/useSubscribable.js.map +1 -1
  361. package/dist/store/scopes/message.d.ts +1 -0
  362. package/dist/store/scopes/message.d.ts.map +1 -1
  363. package/dist/store/scopes/part.d.ts +5 -6
  364. package/dist/store/scopes/part.d.ts.map +1 -1
  365. package/dist/store/scopes/queue-item.js.map +1 -1
  366. package/dist/store/scopes/thread-list-item.d.ts +1 -0
  367. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  368. package/dist/store/scopes/thread.d.ts +1 -0
  369. package/dist/store/scopes/thread.d.ts.map +1 -1
  370. package/dist/subscribable/subscribable.js.map +1 -1
  371. package/dist/tests/remote-thread-list-test-helpers.js.map +1 -1
  372. package/dist/types/message.d.ts +38 -5
  373. package/dist/types/message.d.ts.map +1 -1
  374. package/dist/types/message.js.map +1 -1
  375. package/dist/utils/composite-context-provider.js.map +1 -1
  376. package/dist/utils/id.js.map +1 -1
  377. package/dist/utils/json/is-json-equal.js.map +1 -1
  378. package/dist/utils/json/is-json.js.map +1 -1
  379. package/dist/utils/text.js.map +1 -1
  380. package/package.json +6 -6
  381. package/src/adapters/thread-history.ts +2 -0
  382. package/src/index.ts +5 -0
  383. package/src/internal.ts +1 -0
  384. package/src/model-context/types.ts +1 -0
  385. package/src/react/AssistantProvider.tsx +10 -1
  386. package/src/react/RuntimeAdapter.ts +25 -8
  387. package/src/react/client/DataRenderers.ts +42 -45
  388. package/src/react/client/Interactables.ts +261 -261
  389. package/src/react/client/Tools.ts +9 -9
  390. package/src/react/primitives/message/MessageGroupedParts.tsx +19 -7
  391. package/src/react/primitives/message/MessageParts.tsx +64 -13
  392. package/src/react/providers/TextMessagePartProvider.tsx +5 -3
  393. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +1 -0
  394. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +11 -0
  395. package/src/react/runtimes/cloud/useCloudThreadListAdapter.tsx +6 -0
  396. package/src/react/runtimes/external-message-converter.ts +3 -1
  397. package/src/react/types/MessagePartComponentTypes.ts +5 -5
  398. package/src/react/utils/groupParts.ts +27 -0
  399. package/src/runtime/api/bindings.ts +1 -0
  400. package/src/runtime/api/message-part-runtime.ts +14 -11
  401. package/src/runtime/api/message-runtime.ts +7 -0
  402. package/src/runtime/api/thread-list-runtime.ts +1 -0
  403. package/src/runtime/api/thread-runtime.ts +7 -0
  404. package/src/runtime/base/base-thread-runtime-core.ts +1 -0
  405. package/src/runtime/branch/external-thread-branch-adapter.ts +26 -0
  406. package/src/runtime/interfaces/thread-list-runtime-core.ts +1 -0
  407. package/src/runtime/interfaces/thread-runtime-core.ts +4 -0
  408. package/src/runtime/utils/resolveToolApprovalResponse.test.ts +91 -0
  409. package/src/runtime/utils/resolveToolApprovalResponse.ts +55 -0
  410. package/src/runtime/utils/thread-message-like.ts +10 -1
  411. package/src/runtimes/external-store/external-store-adapter.ts +1 -0
  412. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +24 -0
  413. package/src/runtimes/local/local-runtime-options.ts +1 -1
  414. package/src/runtimes/local/local-thread-runtime-core.test.ts +370 -0
  415. package/src/runtimes/local/local-thread-runtime-core.ts +113 -7
  416. package/src/runtimes/local/should-continue.ts +24 -13
  417. package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +5 -0
  418. package/src/runtimes/remote-thread-list/empty-thread-core.ts +5 -0
  419. package/src/runtimes/remote-thread-list/remote-thread-state.ts +2 -0
  420. package/src/runtimes/remote-thread-list/types.ts +1 -0
  421. package/src/store/clients/chain-of-thought-client.ts +5 -3
  422. package/src/store/clients/model-context-client.test.ts +5 -4
  423. package/src/store/clients/model-context-client.ts +21 -21
  424. package/src/store/clients/no-op-composer-client.ts +5 -3
  425. package/src/store/clients/runtime-adapter.ts +0 -24
  426. package/src/store/clients/suggestions.ts +12 -23
  427. package/src/store/clients/thread-message-client.ts +42 -40
  428. package/src/store/internal.ts +1 -4
  429. package/src/store/runtime-clients/attachment-runtime-client.ts +14 -14
  430. package/src/store/runtime-clients/composer-runtime-client.ts +48 -45
  431. package/src/store/runtime-clients/liveRef.ts +5 -0
  432. package/src/store/runtime-clients/message-part-runtime-client.ts +5 -3
  433. package/src/store/runtime-clients/message-runtime-client.ts +42 -40
  434. package/src/store/runtime-clients/thread-list-item-runtime-client.ts +5 -3
  435. package/src/store/runtime-clients/thread-list-runtime-client.ts +13 -11
  436. package/src/store/runtime-clients/thread-runtime-client.ts +20 -16
  437. package/src/store/runtime-clients/useSubscribable.ts +2 -10
  438. package/src/store/scopes/message.ts +1 -0
  439. package/src/store/scopes/part.ts +5 -2
  440. package/src/store/scopes/thread-list-item.ts +1 -0
  441. package/src/store/scopes/thread.ts +1 -0
  442. package/src/tests/external-store-thread-runtime-core.test.ts +57 -0
  443. package/src/tests/groupMessageParts.test.ts +84 -0
  444. package/src/tests/groupParts.test.ts +55 -0
  445. package/src/types/message.ts +45 -3
@@ -1,24 +1,58 @@
1
1
  import { useSubscribable } from "./useSubscribable.js";
2
2
  import { ThreadClient } from "./thread-runtime-client.js";
3
3
  import { ThreadListItemClient } from "./thread-list-item-runtime-client.js";
4
- import { useMemo } from "@assistant-ui/tap/react-shim";
5
4
  import { useClientLookup, useClientResource } from "@assistant-ui/store";
5
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
6
6
  import { resource, useResource, withKey } from "@assistant-ui/tap";
7
7
  //#region src/store/runtime-clients/thread-list-runtime-client.ts
8
- const ThreadListItemClientById = resource(function ThreadListItemClientById({ runtime, id }) {
9
- return useResource(ThreadListItemClient({ runtime: useMemo(() => runtime.getItemById(id), [runtime, id]) }));
10
- });
11
- const ThreadListClient = resource(function ThreadListClient({ runtime, __internal_assistantRuntime }) {
8
+ const useThreadListItemClientById = (t0) => {
9
+ const $ = c(5);
10
+ const { runtime, id } = t0;
11
+ let t1;
12
+ if ($[0] !== id || $[1] !== runtime) {
13
+ t1 = runtime.getItemById(id);
14
+ $[0] = id;
15
+ $[1] = runtime;
16
+ $[2] = t1;
17
+ } else t1 = $[2];
18
+ const threadListItemRuntime = t1;
19
+ let t2;
20
+ if ($[3] !== threadListItemRuntime) {
21
+ t2 = ThreadListItemClient({ runtime: threadListItemRuntime });
22
+ $[3] = threadListItemRuntime;
23
+ $[4] = t2;
24
+ } else t2 = $[4];
25
+ return useResource(t2);
26
+ };
27
+ const ThreadListItemClientById = resource(useThreadListItemClientById);
28
+ const useThreadListClient = (t0) => {
29
+ const $ = c(40);
30
+ const { runtime, __internal_assistantRuntime } = t0;
12
31
  const runtimeState = useSubscribable(runtime);
13
- const main = useClientResource(ThreadClient({ runtime: runtime.main }));
14
- const threadItems = useClientLookup(() => Object.keys(runtimeState.threadItems).map((id) => withKey(id, ThreadListItemClientById({
15
- runtime,
16
- id
17
- }))), [runtimeState.threadItems, runtime]);
18
- const state = useMemo(() => {
19
- return {
32
+ let t1;
33
+ if ($[0] !== runtime.main) {
34
+ t1 = ThreadClient({ runtime: runtime.main });
35
+ $[0] = runtime.main;
36
+ $[1] = t1;
37
+ } else t1 = $[1];
38
+ const main = useClientResource(t1);
39
+ let t2;
40
+ if ($[2] !== runtime || $[3] !== runtimeState.threadItems) {
41
+ t2 = Object.keys(runtimeState.threadItems).map((id) => withKey(id, ThreadListItemClientById({
42
+ runtime,
43
+ id
44
+ }), [runtime, id]));
45
+ $[2] = runtime;
46
+ $[3] = runtimeState.threadItems;
47
+ $[4] = t2;
48
+ } else t2 = $[4];
49
+ const threadItems = useClientLookup(t2);
50
+ const t3 = runtimeState.newThreadId ?? null;
51
+ let t4;
52
+ if ($[5] !== main.state || $[6] !== runtimeState.archivedThreadIds || $[7] !== runtimeState.hasMore || $[8] !== runtimeState.isLoading || $[9] !== runtimeState.isLoadingMore || $[10] !== runtimeState.mainThreadId || $[11] !== runtimeState.threadIds || $[12] !== t3 || $[13] !== threadItems.state) {
53
+ t4 = {
20
54
  mainThreadId: runtimeState.mainThreadId,
21
- newThreadId: runtimeState.newThreadId ?? null,
55
+ newThreadId: t3,
22
56
  isLoading: runtimeState.isLoading,
23
57
  isLoadingMore: runtimeState.isLoadingMore,
24
58
  hasMore: runtimeState.hasMore,
@@ -27,33 +61,104 @@ const ThreadListClient = resource(function ThreadListClient({ runtime, __interna
27
61
  threadItems: threadItems.state,
28
62
  main: main.state
29
63
  };
30
- }, [
31
- runtimeState,
32
- threadItems.state,
33
- main.state
34
- ]);
35
- return {
36
- getState: () => state,
37
- thread: () => main.methods,
38
- item: (threadIdOrOptions) => {
64
+ $[5] = main.state;
65
+ $[6] = runtimeState.archivedThreadIds;
66
+ $[7] = runtimeState.hasMore;
67
+ $[8] = runtimeState.isLoading;
68
+ $[9] = runtimeState.isLoadingMore;
69
+ $[10] = runtimeState.mainThreadId;
70
+ $[11] = runtimeState.threadIds;
71
+ $[12] = t3;
72
+ $[13] = threadItems.state;
73
+ $[14] = t4;
74
+ } else t4 = $[14];
75
+ const state = t4;
76
+ let t5;
77
+ if ($[15] !== state) {
78
+ t5 = () => state;
79
+ $[15] = state;
80
+ $[16] = t5;
81
+ } else t5 = $[16];
82
+ let t6;
83
+ if ($[17] !== main.methods) {
84
+ t6 = () => main.methods;
85
+ $[17] = main.methods;
86
+ $[18] = t6;
87
+ } else t6 = $[18];
88
+ let t7;
89
+ if ($[19] !== state || $[20] !== threadItems) {
90
+ t7 = (threadIdOrOptions) => {
39
91
  if (threadIdOrOptions === "main") return threadItems.get({ key: state.mainThreadId });
40
92
  if ("id" in threadIdOrOptions) return threadItems.get({ key: threadIdOrOptions.id });
41
- const { index, archived = false } = threadIdOrOptions;
42
- const id = archived ? state.archivedThreadIds[index] : state.threadIds[index];
43
- return threadItems.get({ key: id });
44
- },
45
- switchToThread: async (threadId, options) => {
93
+ const { index, archived: t8 } = threadIdOrOptions;
94
+ const id_0 = (t8 === void 0 ? false : t8) ? state.archivedThreadIds[index] : state.threadIds[index];
95
+ return threadItems.get({ key: id_0 });
96
+ };
97
+ $[19] = state;
98
+ $[20] = threadItems;
99
+ $[21] = t7;
100
+ } else t7 = $[21];
101
+ let t10;
102
+ let t11;
103
+ let t12;
104
+ let t8;
105
+ let t9;
106
+ if ($[22] !== runtime) {
107
+ t8 = async (threadId, options) => {
46
108
  await runtime.switchToThread(threadId, options);
47
- },
48
- switchToNewThread: async () => {
109
+ };
110
+ t9 = async () => {
49
111
  await runtime.switchToNewThread();
50
- },
51
- getLoadThreadsPromise: () => runtime.getLoadThreadsPromise(),
52
- reload: () => runtime.reload(),
53
- loadMore: () => runtime.loadMore(),
54
- __internal_getAssistantRuntime: () => __internal_assistantRuntime
55
- };
56
- });
112
+ };
113
+ t10 = () => runtime.getLoadThreadsPromise();
114
+ t11 = () => runtime.reload();
115
+ t12 = () => runtime.loadMore();
116
+ $[22] = runtime;
117
+ $[23] = t10;
118
+ $[24] = t11;
119
+ $[25] = t12;
120
+ $[26] = t8;
121
+ $[27] = t9;
122
+ } else {
123
+ t10 = $[23];
124
+ t11 = $[24];
125
+ t12 = $[25];
126
+ t8 = $[26];
127
+ t9 = $[27];
128
+ }
129
+ let t13;
130
+ if ($[28] !== __internal_assistantRuntime) {
131
+ t13 = () => __internal_assistantRuntime;
132
+ $[28] = __internal_assistantRuntime;
133
+ $[29] = t13;
134
+ } else t13 = $[29];
135
+ let t14;
136
+ if ($[30] !== t10 || $[31] !== t11 || $[32] !== t12 || $[33] !== t13 || $[34] !== t5 || $[35] !== t6 || $[36] !== t7 || $[37] !== t8 || $[38] !== t9) {
137
+ t14 = {
138
+ getState: t5,
139
+ thread: t6,
140
+ item: t7,
141
+ switchToThread: t8,
142
+ switchToNewThread: t9,
143
+ getLoadThreadsPromise: t10,
144
+ reload: t11,
145
+ loadMore: t12,
146
+ __internal_getAssistantRuntime: t13
147
+ };
148
+ $[30] = t10;
149
+ $[31] = t11;
150
+ $[32] = t12;
151
+ $[33] = t13;
152
+ $[34] = t5;
153
+ $[35] = t6;
154
+ $[36] = t7;
155
+ $[37] = t8;
156
+ $[38] = t9;
157
+ $[39] = t14;
158
+ } else t14 = $[39];
159
+ return t14;
160
+ };
161
+ const ThreadListClient = resource(useThreadListClient);
57
162
  //#endregion
58
163
  export { ThreadListClient };
59
164
 
@@ -1 +1 @@
1
- {"version":3,"file":"thread-list-runtime-client.js","names":[],"sources":["../../../src/store/runtime-clients/thread-list-runtime-client.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useResource, withKey, resource } from \"@assistant-ui/tap\";\nimport {\n type ClientOutput,\n useClientLookup,\n useClientResource,\n} from \"@assistant-ui/store\";\nimport type { ThreadListRuntime } from \"../../runtime/api/thread-list-runtime\";\nimport type { AssistantRuntime } from \"../../runtime/api/assistant-runtime\";\nimport { useSubscribable } from \"./useSubscribable\";\nimport { ThreadListItemClient } from \"./thread-list-item-runtime-client\";\nimport { ThreadClient } from \"./thread-runtime-client\";\nimport type { ThreadsState } from \"../scopes/threads\";\n\nconst ThreadListItemClientById = resource(function ThreadListItemClientById({\n runtime,\n id,\n}: {\n runtime: ThreadListRuntime;\n id: string;\n}) {\n const threadListItemRuntime = useMemo(\n () => runtime.getItemById(id),\n [runtime, id],\n );\n return useResource(\n ThreadListItemClient({\n runtime: threadListItemRuntime,\n }),\n );\n});\n\nexport const ThreadListClient = resource(function ThreadListClient({\n runtime,\n __internal_assistantRuntime,\n}: {\n runtime: ThreadListRuntime;\n __internal_assistantRuntime: AssistantRuntime;\n}): ClientOutput<\"threads\"> {\n const runtimeState = useSubscribable(runtime);\n\n const main = useClientResource(\n ThreadClient({\n runtime: runtime.main,\n }),\n );\n const threadItems = useClientLookup(\n () =>\n Object.keys(runtimeState.threadItems).map((id) =>\n withKey(id, ThreadListItemClientById({ runtime, id })),\n ),\n [runtimeState.threadItems, runtime],\n );\n\n const state = useMemo<ThreadsState>(() => {\n return {\n mainThreadId: runtimeState.mainThreadId,\n newThreadId: runtimeState.newThreadId ?? null,\n isLoading: runtimeState.isLoading,\n isLoadingMore: runtimeState.isLoadingMore,\n hasMore: runtimeState.hasMore,\n threadIds: runtimeState.threadIds,\n archivedThreadIds: runtimeState.archivedThreadIds,\n threadItems: threadItems.state,\n\n main: main.state,\n };\n }, [runtimeState, threadItems.state, main.state]);\n\n return {\n getState: () => state,\n thread: () => main.methods,\n item: (threadIdOrOptions) => {\n if (threadIdOrOptions === \"main\") {\n return threadItems.get({ key: state.mainThreadId });\n }\n\n if (\"id\" in threadIdOrOptions) {\n return threadItems.get({ key: threadIdOrOptions.id });\n }\n\n const { index, archived = false } = threadIdOrOptions;\n const id = archived\n ? state.archivedThreadIds[index]!\n : state.threadIds[index]!;\n return threadItems.get({ key: id });\n },\n switchToThread: async (threadId, options) => {\n await runtime.switchToThread(threadId, options);\n },\n switchToNewThread: async () => {\n await runtime.switchToNewThread();\n },\n getLoadThreadsPromise: () => runtime.getLoadThreadsPromise(),\n reload: () => runtime.reload(),\n loadMore: () => runtime.loadMore(),\n __internal_getAssistantRuntime: () => __internal_assistantRuntime,\n };\n});\n"],"mappings":";;;;;;;AAcA,MAAM,2BAA2B,SAAS,SAAS,yBAAyB,EAC1E,SACA,MAIC;CAKD,OAAO,YACL,qBAAqB,EACnB,SAN0B,cACtB,QAAQ,YAAY,EAAE,GAC5B,CAAC,SAAS,EAAE,CAImB,EAC/B,CAAC,CACH;AACF,CAAC;AAED,MAAa,mBAAmB,SAAS,SAAS,iBAAiB,EACjE,SACA,+BAI0B;CAC1B,MAAM,eAAe,gBAAgB,OAAO;CAE5C,MAAM,OAAO,kBACX,aAAa,EACX,SAAS,QAAQ,KACnB,CAAC,CACH;CACA,MAAM,cAAc,sBAEhB,OAAO,KAAK,aAAa,WAAW,CAAC,CAAC,KAAK,OACzC,QAAQ,IAAI,yBAAyB;EAAE;EAAS;CAAG,CAAC,CAAC,CACvD,GACF,CAAC,aAAa,aAAa,OAAO,CACpC;CAEA,MAAM,QAAQ,cAA4B;EACxC,OAAO;GACL,cAAc,aAAa;GAC3B,aAAa,aAAa,eAAe;GACzC,WAAW,aAAa;GACxB,eAAe,aAAa;GAC5B,SAAS,aAAa;GACtB,WAAW,aAAa;GACxB,mBAAmB,aAAa;GAChC,aAAa,YAAY;GAEzB,MAAM,KAAK;EACb;CACF,GAAG;EAAC;EAAc,YAAY;EAAO,KAAK;CAAK,CAAC;CAEhD,OAAO;EACL,gBAAgB;EAChB,cAAc,KAAK;EACnB,OAAO,sBAAsB;GAC3B,IAAI,sBAAsB,QACxB,OAAO,YAAY,IAAI,EAAE,KAAK,MAAM,aAAa,CAAC;GAGpD,IAAI,QAAQ,mBACV,OAAO,YAAY,IAAI,EAAE,KAAK,kBAAkB,GAAG,CAAC;GAGtD,MAAM,EAAE,OAAO,WAAW,UAAU;GACpC,MAAM,KAAK,WACP,MAAM,kBAAkB,SACxB,MAAM,UAAU;GACpB,OAAO,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC;EACpC;EACA,gBAAgB,OAAO,UAAU,YAAY;GAC3C,MAAM,QAAQ,eAAe,UAAU,OAAO;EAChD;EACA,mBAAmB,YAAY;GAC7B,MAAM,QAAQ,kBAAkB;EAClC;EACA,6BAA6B,QAAQ,sBAAsB;EAC3D,cAAc,QAAQ,OAAO;EAC7B,gBAAgB,QAAQ,SAAS;EACjC,sCAAsC;CACxC;AACF,CAAC"}
1
+ {"version":3,"file":"thread-list-runtime-client.js","names":["useMemo","useResource","withKey","resource","ClientOutput","useClientLookup","useClientResource","ThreadListRuntime","AssistantRuntime","useSubscribable","ThreadListItemClient","ThreadClient","ThreadsState","useThreadListItemClientById","t0","$","_c","runtime","id","t1","getItemById","threadListItemRuntime","t2","ThreadListItemClientById","useThreadListClient","__internal_assistantRuntime","runtimeState","main","threadItems","Object","keys","map","t3","newThreadId","t4","state","archivedThreadIds","hasMore","isLoading","isLoadingMore","mainThreadId","threadIds","t5","t6","methods","t7","threadIdOrOptions","get","key","index","archived","t8","undefined","id_0","t10","t11","t12","t9","threadId","options","switchToThread","switchToNewThread","getLoadThreadsPromise","reload","loadMore","t13","t14","getState","thread","item","__internal_getAssistantRuntime","ThreadListClient"],"sources":["../../../src/store/runtime-clients/thread-list-runtime-client.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useResource, withKey, resource } from \"@assistant-ui/tap\";\nimport {\n type ClientOutput,\n useClientLookup,\n useClientResource,\n} from \"@assistant-ui/store\";\nimport type { ThreadListRuntime } from \"../../runtime/api/thread-list-runtime\";\nimport type { AssistantRuntime } from \"../../runtime/api/assistant-runtime\";\nimport { useSubscribable } from \"./useSubscribable\";\nimport { ThreadListItemClient } from \"./thread-list-item-runtime-client\";\nimport { ThreadClient } from \"./thread-runtime-client\";\nimport type { ThreadsState } from \"../scopes/threads\";\n\nconst useThreadListItemClientById = ({\n runtime,\n id,\n}: {\n runtime: ThreadListRuntime;\n id: string;\n}) => {\n const threadListItemRuntime = useMemo(\n () => runtime.getItemById(id),\n [runtime, id],\n );\n return useResource(\n ThreadListItemClient({\n runtime: threadListItemRuntime,\n }),\n );\n};\n\nconst ThreadListItemClientById = resource(useThreadListItemClientById);\n\nconst useThreadListClient = ({\n runtime,\n __internal_assistantRuntime,\n}: {\n runtime: ThreadListRuntime;\n __internal_assistantRuntime: AssistantRuntime;\n}): ClientOutput<\"threads\"> => {\n const runtimeState = useSubscribable(runtime);\n\n const main = useClientResource(\n ThreadClient({\n runtime: runtime.main,\n }),\n );\n const threadItems = useClientLookup(\n Object.keys(runtimeState.threadItems).map((id) =>\n withKey(id, ThreadListItemClientById({ runtime, id }), [runtime, id]),\n ),\n );\n\n const state = useMemo<ThreadsState>(() => {\n return {\n mainThreadId: runtimeState.mainThreadId,\n newThreadId: runtimeState.newThreadId ?? null,\n isLoading: runtimeState.isLoading,\n isLoadingMore: runtimeState.isLoadingMore,\n hasMore: runtimeState.hasMore,\n threadIds: runtimeState.threadIds,\n archivedThreadIds: runtimeState.archivedThreadIds,\n threadItems: threadItems.state,\n\n main: main.state,\n };\n }, [runtimeState, threadItems.state, main.state]);\n\n return {\n getState: () => state,\n thread: () => main.methods,\n item: (threadIdOrOptions) => {\n if (threadIdOrOptions === \"main\") {\n return threadItems.get({ key: state.mainThreadId });\n }\n\n if (\"id\" in threadIdOrOptions) {\n return threadItems.get({ key: threadIdOrOptions.id });\n }\n\n const { index, archived = false } = threadIdOrOptions;\n const id = archived\n ? state.archivedThreadIds[index]!\n : state.threadIds[index]!;\n return threadItems.get({ key: id });\n },\n switchToThread: async (threadId, options) => {\n await runtime.switchToThread(threadId, options);\n },\n switchToNewThread: async () => {\n await runtime.switchToNewThread();\n },\n getLoadThreadsPromise: () => runtime.getLoadThreadsPromise(),\n reload: () => runtime.reload(),\n loadMore: () => runtime.loadMore(),\n __internal_getAssistantRuntime: () => __internal_assistantRuntime,\n };\n};\n\nexport const ThreadListClient = resource(useThreadListClient);\n"],"mappings":"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"}
@@ -2,11 +2,9 @@ import { ThreadRuntime } from "../../runtime/api/thread-runtime.js";
2
2
  import { ClientOutput } from "@assistant-ui/store";
3
3
 
4
4
  //#region src/store/runtime-clients/thread-runtime-client.d.ts
5
- declare const ThreadClient: (props: {
5
+ declare const ThreadClient: import("@assistant-ui/tap").Resource<ClientOutput<"thread">, [{
6
6
  runtime: ThreadRuntime;
7
- }) => import("@assistant-ui/tap").ResourceElement<ClientOutput<"thread">, {
8
- runtime: ThreadRuntime;
9
- }>;
7
+ }]>;
10
8
  //#endregion
11
9
  export { ThreadClient };
12
10
  //# sourceMappingURL=thread-runtime-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"thread-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/thread-runtime-client.ts"],"mappings":";;;;cAiCa,YAAA,GAAY,KAAA;WAGd,aAAA;AAAA;WAAA,aAAA;AAAA"}
1
+ {"version":3,"file":"thread-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/thread-runtime-client.ts"],"mappings":";;;;cA0Ia,YAAA,8BAAY,QAAA,CAAA,YAAA;WAnGd,aAAa;AAAA"}
@@ -1,56 +1,119 @@
1
1
  import { useSubscribable } from "./useSubscribable.js";
2
2
  import { ComposerClient } from "./composer-runtime-client.js";
3
+ import { liveRef } from "./liveRef.js";
3
4
  import { MessageClient } from "./message-runtime-client.js";
4
- import { useEffect, useMemo } from "@assistant-ui/tap/react-shim";
5
+ import { useEffect } from "@assistant-ui/tap/react-shim";
5
6
  import { useAssistantEmit, useClientLookup, useClientResource } from "@assistant-ui/store";
7
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
6
8
  import { resource, useResource, withKey } from "@assistant-ui/tap";
7
9
  //#region src/store/runtime-clients/thread-runtime-client.ts
8
- const MessageClientById = resource(function MessageClientById({ runtime, id, threadIdRef }) {
9
- return useResource(MessageClient({
10
- runtime: useMemo(() => runtime.getMessageById(id), [runtime, id]),
11
- threadIdRef
12
- }));
13
- });
14
- const ThreadClient = resource(function ThreadClient({ runtime }) {
10
+ const useMessageClientById = (t0) => {
11
+ const $ = c(6);
12
+ const { runtime, id, threadIdRef } = t0;
13
+ let t1;
14
+ if ($[0] !== id || $[1] !== runtime) {
15
+ t1 = runtime.getMessageById(id);
16
+ $[0] = id;
17
+ $[1] = runtime;
18
+ $[2] = t1;
19
+ } else t1 = $[2];
20
+ const messageRuntime = t1;
21
+ let t2;
22
+ if ($[3] !== messageRuntime || $[4] !== threadIdRef) {
23
+ t2 = MessageClient({
24
+ runtime: messageRuntime,
25
+ threadIdRef
26
+ });
27
+ $[3] = messageRuntime;
28
+ $[4] = threadIdRef;
29
+ $[5] = t2;
30
+ } else t2 = $[5];
31
+ return useResource(t2);
32
+ };
33
+ const MessageClientById = resource(useMessageClientById);
34
+ const useThreadClient = (t0) => {
35
+ const $ = c(58);
36
+ const { runtime } = t0;
15
37
  const runtimeState = useSubscribable(runtime);
16
38
  const emit = useAssistantEmit();
17
- useEffect(() => {
18
- const unsubscribers = [];
19
- for (const event of [
20
- "runStart",
21
- "runEnd",
22
- "initialize",
23
- "modelContextUpdate"
24
- ]) {
25
- const unsubscribe = runtime.unstable_on(event, () => {
26
- const threadId = runtime.getState()?.threadId || "unknown";
27
- emit(`thread.${event}`, { threadId });
28
- });
29
- unsubscribers.push(unsubscribe);
30
- }
31
- return () => {
32
- for (const unsub of unsubscribers) unsub();
39
+ let t1;
40
+ let t2;
41
+ if ($[0] !== emit || $[1] !== runtime) {
42
+ t1 = () => {
43
+ const unsubscribers = [];
44
+ for (const event of [
45
+ "runStart",
46
+ "runEnd",
47
+ "initialize",
48
+ "modelContextUpdate"
49
+ ]) {
50
+ const unsubscribe = runtime.unstable_on(event, () => {
51
+ const threadId = runtime.getState()?.threadId || "unknown";
52
+ emit(`thread.${event}`, { threadId });
53
+ });
54
+ unsubscribers.push(unsubscribe);
55
+ }
56
+ return () => {
57
+ for (const unsub of unsubscribers) unsub();
58
+ };
33
59
  };
34
- }, [runtime, emit]);
35
- const threadIdRef = useMemo(() => ({ get current() {
36
- return runtime.getState().threadId;
37
- } }), [runtime]);
38
- const composer = useClientResource(ComposerClient({
39
- runtime: runtime.composer,
40
- threadIdRef
41
- }));
42
- const messages = useClientLookup(() => runtimeState.messages.map((m) => withKey(m.id, MessageClientById({
43
- runtime,
44
- id: m.id,
45
- threadIdRef
46
- }))), [
47
- runtimeState.messages,
48
- runtime,
49
- threadIdRef
50
- ]);
51
- const state = useMemo(() => {
52
- return {
53
- isEmpty: messages.state.length === 0 && !runtimeState.isLoading,
60
+ t2 = [runtime, emit];
61
+ $[0] = emit;
62
+ $[1] = runtime;
63
+ $[2] = t1;
64
+ $[3] = t2;
65
+ } else {
66
+ t1 = $[2];
67
+ t2 = $[3];
68
+ }
69
+ useEffect(t1, t2);
70
+ let t3;
71
+ if ($[4] !== runtime) {
72
+ t3 = liveRef(() => runtime.getState().threadId);
73
+ $[4] = runtime;
74
+ $[5] = t3;
75
+ } else t3 = $[5];
76
+ const threadIdRef = t3;
77
+ let t4;
78
+ if ($[6] !== runtime.composer || $[7] !== threadIdRef) {
79
+ t4 = ComposerClient({
80
+ runtime: runtime.composer,
81
+ threadIdRef
82
+ });
83
+ $[6] = runtime.composer;
84
+ $[7] = threadIdRef;
85
+ $[8] = t4;
86
+ } else t4 = $[8];
87
+ const composer = useClientResource(t4);
88
+ let t5;
89
+ if ($[9] !== runtime || $[10] !== runtimeState.messages || $[11] !== threadIdRef) {
90
+ let t6;
91
+ if ($[13] !== runtime || $[14] !== threadIdRef) {
92
+ t6 = (m) => withKey(m.id, MessageClientById({
93
+ runtime,
94
+ id: m.id,
95
+ threadIdRef
96
+ }), [
97
+ runtime,
98
+ m.id,
99
+ threadIdRef
100
+ ]);
101
+ $[13] = runtime;
102
+ $[14] = threadIdRef;
103
+ $[15] = t6;
104
+ } else t6 = $[15];
105
+ t5 = runtimeState.messages.map(t6);
106
+ $[9] = runtime;
107
+ $[10] = runtimeState.messages;
108
+ $[11] = threadIdRef;
109
+ $[12] = t5;
110
+ } else t5 = $[12];
111
+ const messages = useClientLookup(t5);
112
+ const t6 = messages.state.length === 0 && !runtimeState.isLoading;
113
+ let t7;
114
+ if ($[16] !== composer.state || $[17] !== messages.state || $[18] !== runtimeState.capabilities || $[19] !== runtimeState.extras || $[20] !== runtimeState.isDisabled || $[21] !== runtimeState.isLoading || $[22] !== runtimeState.isRunning || $[23] !== runtimeState.speech || $[24] !== runtimeState.state || $[25] !== runtimeState.suggestions || $[26] !== runtimeState.voice || $[27] !== t6) {
115
+ t7 = {
116
+ isEmpty: t6,
54
117
  isDisabled: runtimeState.isDisabled,
55
118
  isLoading: runtimeState.isLoading,
56
119
  isRunning: runtimeState.isRunning,
@@ -63,36 +126,97 @@ const ThreadClient = resource(function ThreadClient({ runtime }) {
63
126
  composer: composer.state,
64
127
  messages: messages.state
65
128
  };
66
- }, [
67
- runtimeState,
68
- messages,
69
- composer.state
70
- ]);
71
- return {
72
- getState: () => state,
73
- composer: () => composer.methods,
74
- append: runtime.append,
75
- startRun: runtime.startRun,
76
- resumeRun: runtime.resumeRun,
77
- cancelRun: runtime.cancelRun,
78
- getModelContext: runtime.getModelContext,
79
- export: runtime.export,
80
- import: runtime.import,
81
- reset: runtime.reset,
82
- stopSpeaking: runtime.stopSpeaking,
83
- connectVoice: runtime.connectVoice,
84
- disconnectVoice: runtime.disconnectVoice,
85
- getVoiceVolume: runtime.getVoiceVolume,
86
- subscribeVoiceVolume: runtime.subscribeVoiceVolume,
87
- muteVoice: runtime.muteVoice,
88
- unmuteVoice: runtime.unmuteVoice,
89
- message: (selector) => {
129
+ $[16] = composer.state;
130
+ $[17] = messages.state;
131
+ $[18] = runtimeState.capabilities;
132
+ $[19] = runtimeState.extras;
133
+ $[20] = runtimeState.isDisabled;
134
+ $[21] = runtimeState.isLoading;
135
+ $[22] = runtimeState.isRunning;
136
+ $[23] = runtimeState.speech;
137
+ $[24] = runtimeState.state;
138
+ $[25] = runtimeState.suggestions;
139
+ $[26] = runtimeState.voice;
140
+ $[27] = t6;
141
+ $[28] = t7;
142
+ } else t7 = $[28];
143
+ const state = t7;
144
+ let t8;
145
+ if ($[29] !== state) {
146
+ t8 = () => state;
147
+ $[29] = state;
148
+ $[30] = t8;
149
+ } else t8 = $[30];
150
+ let t9;
151
+ if ($[31] !== composer.methods) {
152
+ t9 = () => composer.methods;
153
+ $[31] = composer.methods;
154
+ $[32] = t9;
155
+ } else t9 = $[32];
156
+ let t10;
157
+ if ($[33] !== messages) {
158
+ t10 = (selector) => {
90
159
  if ("id" in selector) return messages.get({ key: selector.id });
91
160
  else return messages.get(selector);
92
- },
93
- __internal_getRuntime: () => runtime
94
- };
95
- });
161
+ };
162
+ $[33] = messages;
163
+ $[34] = t10;
164
+ } else t10 = $[34];
165
+ let t11;
166
+ if ($[35] !== runtime) {
167
+ t11 = () => runtime;
168
+ $[35] = runtime;
169
+ $[36] = t11;
170
+ } else t11 = $[36];
171
+ let t12;
172
+ if ($[37] !== runtime.append || $[38] !== runtime.cancelRun || $[39] !== runtime.connectVoice || $[40] !== runtime.deleteMessage || $[41] !== runtime.disconnectVoice || $[42] !== runtime.export || $[43] !== runtime.getModelContext || $[44] !== runtime.getVoiceVolume || $[45] !== runtime.import || $[46] !== runtime.muteVoice || $[47] !== runtime.reset || $[48] !== runtime.resumeRun || $[49] !== runtime.startRun || $[50] !== runtime.stopSpeaking || $[51] !== runtime.subscribeVoiceVolume || $[52] !== runtime.unmuteVoice || $[53] !== t10 || $[54] !== t11 || $[55] !== t8 || $[56] !== t9) {
173
+ t12 = {
174
+ getState: t8,
175
+ composer: t9,
176
+ append: runtime.append,
177
+ deleteMessage: runtime.deleteMessage,
178
+ startRun: runtime.startRun,
179
+ resumeRun: runtime.resumeRun,
180
+ cancelRun: runtime.cancelRun,
181
+ getModelContext: runtime.getModelContext,
182
+ export: runtime.export,
183
+ import: runtime.import,
184
+ reset: runtime.reset,
185
+ stopSpeaking: runtime.stopSpeaking,
186
+ connectVoice: runtime.connectVoice,
187
+ disconnectVoice: runtime.disconnectVoice,
188
+ getVoiceVolume: runtime.getVoiceVolume,
189
+ subscribeVoiceVolume: runtime.subscribeVoiceVolume,
190
+ muteVoice: runtime.muteVoice,
191
+ unmuteVoice: runtime.unmuteVoice,
192
+ message: t10,
193
+ __internal_getRuntime: t11
194
+ };
195
+ $[37] = runtime.append;
196
+ $[38] = runtime.cancelRun;
197
+ $[39] = runtime.connectVoice;
198
+ $[40] = runtime.deleteMessage;
199
+ $[41] = runtime.disconnectVoice;
200
+ $[42] = runtime.export;
201
+ $[43] = runtime.getModelContext;
202
+ $[44] = runtime.getVoiceVolume;
203
+ $[45] = runtime.import;
204
+ $[46] = runtime.muteVoice;
205
+ $[47] = runtime.reset;
206
+ $[48] = runtime.resumeRun;
207
+ $[49] = runtime.startRun;
208
+ $[50] = runtime.stopSpeaking;
209
+ $[51] = runtime.subscribeVoiceVolume;
210
+ $[52] = runtime.unmuteVoice;
211
+ $[53] = t10;
212
+ $[54] = t11;
213
+ $[55] = t8;
214
+ $[56] = t9;
215
+ $[57] = t12;
216
+ } else t12 = $[57];
217
+ return t12;
218
+ };
219
+ const ThreadClient = resource(useThreadClient);
96
220
  //#endregion
97
221
  export { ThreadClient };
98
222
 
@@ -1 +1 @@
1
- {"version":3,"file":"thread-runtime-client.js","names":[],"sources":["../../../src/store/runtime-clients/thread-runtime-client.ts"],"sourcesContent":["import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { ThreadRuntimeEventType } from \"../../runtime/interfaces/thread-runtime-core\";\nimport type { ThreadRuntime } from \"../../runtime/api/thread-runtime\";\nimport { useMemo, useEffect, RefObject } from \"react\";\nimport { useResource, resource, withKey } from \"@assistant-ui/tap\";\nimport {\n type ClientOutput,\n useAssistantEmit,\n useClientLookup,\n useClientResource,\n} from \"@assistant-ui/store\";\nimport { ComposerClient } from \"./composer-runtime-client\";\nimport { MessageClient } from \"./message-runtime-client\";\nimport { useSubscribable } from \"./useSubscribable\";\nimport type { ThreadState } from \"../scopes/thread\";\n\nconst MessageClientById = resource(function MessageClientById({\n runtime,\n id,\n threadIdRef,\n}: {\n runtime: ThreadRuntime;\n id: string;\n threadIdRef: RefObject<string>;\n}) {\n const messageRuntime = useMemo(\n () => runtime.getMessageById(id),\n [runtime, id],\n );\n\n return useResource(MessageClient({ runtime: messageRuntime, threadIdRef }));\n});\n\nexport const ThreadClient = resource(function ThreadClient({\n runtime,\n}: {\n runtime: ThreadRuntime;\n}): ClientOutput<\"thread\"> {\n const runtimeState = useSubscribable(runtime);\n const emit = useAssistantEmit();\n\n useEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n const threadEvents: ThreadRuntimeEventType[] = [\n \"runStart\",\n \"runEnd\",\n \"initialize\",\n \"modelContextUpdate\",\n ];\n\n for (const event of threadEvents) {\n const unsubscribe = runtime.unstable_on(event, () => {\n const threadId = runtime.getState()?.threadId || \"unknown\";\n emit(`thread.${event}`, {\n threadId,\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, emit]);\n\n const threadIdRef = useMemo(\n () => ({\n get current() {\n return runtime.getState()!.threadId;\n },\n }),\n [runtime],\n );\n\n const composer = useClientResource(\n ComposerClient({\n runtime: runtime.composer,\n threadIdRef,\n }),\n );\n const messages = useClientLookup(\n () =>\n runtimeState.messages.map((m) =>\n withKey(m.id, MessageClientById({ runtime, id: m.id, threadIdRef })),\n ),\n [runtimeState.messages, runtime, threadIdRef],\n );\n\n const state = useMemo<ThreadState>(() => {\n return {\n isEmpty: messages.state.length === 0 && !runtimeState.isLoading,\n isDisabled: runtimeState.isDisabled,\n isLoading: runtimeState.isLoading,\n isRunning: runtimeState.isRunning,\n capabilities: runtimeState.capabilities,\n state: runtimeState.state,\n suggestions: runtimeState.suggestions,\n extras: runtimeState.extras,\n speech: runtimeState.speech,\n voice: runtimeState.voice,\n\n composer: composer.state,\n messages: messages.state,\n };\n }, [runtimeState, messages, composer.state]);\n\n return {\n getState: () => state,\n composer: () => composer.methods,\n append: runtime.append,\n startRun: runtime.startRun,\n resumeRun: runtime.resumeRun,\n cancelRun: runtime.cancelRun,\n getModelContext: runtime.getModelContext,\n export: runtime.export,\n import: runtime.import,\n reset: runtime.reset,\n stopSpeaking: runtime.stopSpeaking,\n connectVoice: runtime.connectVoice,\n disconnectVoice: runtime.disconnectVoice,\n getVoiceVolume: runtime.getVoiceVolume,\n subscribeVoiceVolume: runtime.subscribeVoiceVolume,\n muteVoice: runtime.muteVoice,\n unmuteVoice: runtime.unmuteVoice,\n message: (selector) => {\n if (\"id\" in selector) {\n return messages.get({ key: selector.id });\n } else {\n return messages.get(selector);\n }\n },\n __internal_getRuntime: () => runtime,\n };\n});\n"],"mappings":";;;;;;;AAgBA,MAAM,oBAAoB,SAAS,SAAS,kBAAkB,EAC5D,SACA,IACA,eAKC;CAMD,OAAO,YAAY,cAAc;EAAE,SALZ,cACf,QAAQ,eAAe,EAAE,GAC/B,CAAC,SAAS,EAAE,CAG2C;EAAG;CAAY,CAAC,CAAC;AAC5E,CAAC;AAED,MAAa,eAAe,SAAS,SAAS,aAAa,EACzD,WAGyB;CACzB,MAAM,eAAe,gBAAgB,OAAO;CAC5C,MAAM,OAAO,iBAAiB;CAE9B,gBAAgB;EACd,MAAM,gBAA+B,CAAC;EAStC,KAAK,MAAM,SAAS;GANlB;GACA;GACA;GACA;EAG6B,GAAG;GAChC,MAAM,cAAc,QAAQ,YAAY,aAAa;IACnD,MAAM,WAAW,QAAQ,SAAS,CAAC,EAAE,YAAY;IACjD,KAAK,UAAU,SAAS,EACtB,SACF,CAAC;GACH,CAAC;GACD,cAAc,KAAK,WAAW;EAChC;EAEA,aAAa;GACX,KAAK,MAAM,SAAS,eAAe,MAAM;EAC3C;CACF,GAAG,CAAC,SAAS,IAAI,CAAC;CAElB,MAAM,cAAc,eACX,EACL,IAAI,UAAU;EACZ,OAAO,QAAQ,SAAS,CAAC,CAAE;CAC7B,EACF,IACA,CAAC,OAAO,CACV;CAEA,MAAM,WAAW,kBACf,eAAe;EACb,SAAS,QAAQ;EACjB;CACF,CAAC,CACH;CACA,MAAM,WAAW,sBAEb,aAAa,SAAS,KAAK,MACzB,QAAQ,EAAE,IAAI,kBAAkB;EAAE;EAAS,IAAI,EAAE;EAAI;CAAY,CAAC,CAAC,CACrE,GACF;EAAC,aAAa;EAAU;EAAS;CAAW,CAC9C;CAEA,MAAM,QAAQ,cAA2B;EACvC,OAAO;GACL,SAAS,SAAS,MAAM,WAAW,KAAK,CAAC,aAAa;GACtD,YAAY,aAAa;GACzB,WAAW,aAAa;GACxB,WAAW,aAAa;GACxB,cAAc,aAAa;GAC3B,OAAO,aAAa;GACpB,aAAa,aAAa;GAC1B,QAAQ,aAAa;GACrB,QAAQ,aAAa;GACrB,OAAO,aAAa;GAEpB,UAAU,SAAS;GACnB,UAAU,SAAS;EACrB;CACF,GAAG;EAAC;EAAc;EAAU,SAAS;CAAK,CAAC;CAE3C,OAAO;EACL,gBAAgB;EAChB,gBAAgB,SAAS;EACzB,QAAQ,QAAQ;EAChB,UAAU,QAAQ;EAClB,WAAW,QAAQ;EACnB,WAAW,QAAQ;EACnB,iBAAiB,QAAQ;EACzB,QAAQ,QAAQ;EAChB,QAAQ,QAAQ;EAChB,OAAO,QAAQ;EACf,cAAc,QAAQ;EACtB,cAAc,QAAQ;EACtB,iBAAiB,QAAQ;EACzB,gBAAgB,QAAQ;EACxB,sBAAsB,QAAQ;EAC9B,WAAW,QAAQ;EACnB,aAAa,QAAQ;EACrB,UAAU,aAAa;GACrB,IAAI,QAAQ,UACV,OAAO,SAAS,IAAI,EAAE,KAAK,SAAS,GAAG,CAAC;QAExC,OAAO,SAAS,IAAI,QAAQ;EAEhC;EACA,6BAA6B;CAC/B;AACF,CAAC"}
1
+ {"version":3,"file":"thread-runtime-client.js","names":["Unsubscribe","ThreadRuntimeEventType","ThreadRuntime","useMemo","useEffect","RefObject","useResource","resource","withKey","liveRef","ClientOutput","useAssistantEmit","useClientLookup","useClientResource","ComposerClient","MessageClient","useSubscribable","ThreadState","useMessageClientById","t0","$","_c","runtime","id","threadIdRef","t1","getMessageById","messageRuntime","t2","MessageClientById","useThreadClient","runtimeState","emit","unsubscribers","threadEvents","event","unsubscribe","unstable_on","threadId","getState","push","unsub","t3","t4","composer","t5","messages","t6","m","map","state","length","isLoading","t7","capabilities","extras","isDisabled","isRunning","speech","suggestions","voice","isEmpty","t8","t9","methods","t10","selector","get","key","t11","t12","append","cancelRun","connectVoice","deleteMessage","disconnectVoice","export","getModelContext","getVoiceVolume","import","muteVoice","reset","resumeRun","startRun","stopSpeaking","subscribeVoiceVolume","unmuteVoice","message","__internal_getRuntime","ThreadClient"],"sources":["../../../src/store/runtime-clients/thread-runtime-client.ts"],"sourcesContent":["import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { ThreadRuntimeEventType } from \"../../runtime/interfaces/thread-runtime-core\";\nimport type { ThreadRuntime } from \"../../runtime/api/thread-runtime\";\nimport { useMemo, useEffect, RefObject } from \"react\";\nimport { useResource, resource, withKey } from \"@assistant-ui/tap\";\nimport { liveRef } from \"./liveRef\";\nimport {\n type ClientOutput,\n useAssistantEmit,\n useClientLookup,\n useClientResource,\n} from \"@assistant-ui/store\";\nimport { ComposerClient } from \"./composer-runtime-client\";\nimport { MessageClient } from \"./message-runtime-client\";\nimport { useSubscribable } from \"./useSubscribable\";\nimport type { ThreadState } from \"../scopes/thread\";\n\nconst useMessageClientById = ({\n runtime,\n id,\n threadIdRef,\n}: {\n runtime: ThreadRuntime;\n id: string;\n threadIdRef: RefObject<string>;\n}) => {\n const messageRuntime = useMemo(\n () => runtime.getMessageById(id),\n [runtime, id],\n );\n\n return useResource(MessageClient({ runtime: messageRuntime, threadIdRef }));\n};\n\nconst MessageClientById = resource(useMessageClientById);\n\nconst useThreadClient = ({\n runtime,\n}: {\n runtime: ThreadRuntime;\n}): ClientOutput<\"thread\"> => {\n const runtimeState = useSubscribable(runtime);\n const emit = useAssistantEmit();\n\n useEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n const threadEvents: ThreadRuntimeEventType[] = [\n \"runStart\",\n \"runEnd\",\n \"initialize\",\n \"modelContextUpdate\",\n ];\n\n for (const event of threadEvents) {\n const unsubscribe = runtime.unstable_on(event, () => {\n const threadId = runtime.getState()?.threadId || \"unknown\";\n emit(`thread.${event}`, {\n threadId,\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, emit]);\n\n const threadIdRef = useMemo(\n () => liveRef(() => runtime.getState()!.threadId),\n [runtime],\n );\n\n const composer = useClientResource(\n ComposerClient({\n runtime: runtime.composer,\n threadIdRef,\n }),\n );\n const messages = useClientLookup(\n runtimeState.messages.map((m) =>\n withKey(m.id, MessageClientById({ runtime, id: m.id, threadIdRef }), [\n runtime,\n m.id,\n threadIdRef,\n ]),\n ),\n );\n\n const state = useMemo<ThreadState>(() => {\n return {\n isEmpty: messages.state.length === 0 && !runtimeState.isLoading,\n isDisabled: runtimeState.isDisabled,\n isLoading: runtimeState.isLoading,\n isRunning: runtimeState.isRunning,\n capabilities: runtimeState.capabilities,\n state: runtimeState.state,\n suggestions: runtimeState.suggestions,\n extras: runtimeState.extras,\n speech: runtimeState.speech,\n voice: runtimeState.voice,\n\n composer: composer.state,\n messages: messages.state,\n };\n }, [runtimeState, messages, composer.state]);\n\n return {\n getState: () => state,\n composer: () => composer.methods,\n append: runtime.append,\n deleteMessage: runtime.deleteMessage,\n startRun: runtime.startRun,\n resumeRun: runtime.resumeRun,\n cancelRun: runtime.cancelRun,\n getModelContext: runtime.getModelContext,\n export: runtime.export,\n import: runtime.import,\n reset: runtime.reset,\n stopSpeaking: runtime.stopSpeaking,\n connectVoice: runtime.connectVoice,\n disconnectVoice: runtime.disconnectVoice,\n getVoiceVolume: runtime.getVoiceVolume,\n subscribeVoiceVolume: runtime.subscribeVoiceVolume,\n muteVoice: runtime.muteVoice,\n unmuteVoice: runtime.unmuteVoice,\n message: (selector) => {\n if (\"id\" in selector) {\n return messages.get({ key: selector.id });\n } else {\n return messages.get(selector);\n }\n },\n __internal_getRuntime: () => runtime,\n };\n};\n\nexport const ThreadClient = resource(useThreadClient);\n"],"mappings":"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"}
@@ -1,14 +1,7 @@
1
- import { useEffect, useState } from "@assistant-ui/tap/react-shim";
1
+ import { useSyncExternalStore } from "@assistant-ui/tap/react-shim";
2
2
  //#region src/store/runtime-clients/useSubscribable.ts
3
3
  const useSubscribable = (subscribable) => {
4
- const [, setState] = useState(subscribable.getState);
5
- useEffect(() => {
6
- setState(subscribable.getState());
7
- return subscribable.subscribe(() => {
8
- setState(subscribable.getState());
9
- });
10
- }, [subscribable]);
11
- return subscribable.getState();
4
+ return useSyncExternalStore(subscribable.subscribe, subscribable.getState);
12
5
  };
13
6
  //#endregion
14
7
  export { useSubscribable };
@@ -1 +1 @@
1
- {"version":3,"file":"useSubscribable.js","names":[],"sources":["../../../src/store/runtime-clients/useSubscribable.ts"],"sourcesContent":["import { useState, useEffect } from \"react\";\nimport type { SubscribableWithState } from \"../../subscribable/subscribable\";\n\nexport const useSubscribable = <T>(\n subscribable: Omit<SubscribableWithState<T, any>, \"path\">,\n) => {\n const [, setState] = useState(subscribable.getState);\n useEffect(() => {\n setState(subscribable.getState());\n return subscribable.subscribe(() => {\n setState(subscribable.getState());\n });\n }, [subscribable]);\n\n return subscribable.getState();\n};\n"],"mappings":";;AAGA,MAAa,mBACX,iBACG;CACH,MAAM,GAAG,YAAY,SAAS,aAAa,QAAQ;CACnD,gBAAgB;EACd,SAAS,aAAa,SAAS,CAAC;EAChC,OAAO,aAAa,gBAAgB;GAClC,SAAS,aAAa,SAAS,CAAC;EAClC,CAAC;CACH,GAAG,CAAC,YAAY,CAAC;CAEjB,OAAO,aAAa,SAAS;AAC/B"}
1
+ {"version":3,"file":"useSubscribable.js","names":["useSyncExternalStore","SubscribableWithState","useSubscribable","subscribable","subscribe","getState"],"sources":["../../../src/store/runtime-clients/useSubscribable.ts"],"sourcesContent":["import { useSyncExternalStore } from \"react\";\nimport type { SubscribableWithState } from \"../../subscribable/subscribable\";\n\nexport const useSubscribable = <T>(\n subscribable: Omit<SubscribableWithState<T, any>, \"path\">,\n) => {\n return useSyncExternalStore(subscribable.subscribe, subscribable.getState);\n};\n"],"mappings":";;AAGA,MAAaE,mBAAkBC,iBAAA;CAAA,OAGtBH,qBAAqBG,aAAYC,WAAYD,aAAYE,QAAS;AAAC"}
@@ -40,6 +40,7 @@ type MessageMethods = {
40
40
  */
41
41
  getState(): MessageState;
42
42
  composer(): ComposerMethods;
43
+ delete(): void | Promise<void>;
43
44
  reload(config?: {
44
45
  runConfig?: RunConfig;
45
46
  }): void; /** @deprecated This API is still under active development and might change without notice. */
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","names":[],"sources":["../../../src/store/scopes/message.ts"],"mappings":";;;;;;;;KAQY,YAAA,GAAe,aAAA;EAAA,SAChB,QAAA;EAAA,SACA,MAAA;EAAA,SACA,YAAA;EAAA,SACA,WAAA;EAiBQ;;;;;;;;;;;;;;;;EAAA,SAAR,MAAA,EAAQ,WAAA;EAAA,SACR,QAAA,EAAU,aAAA;EAAA,SACV,KAAA,WAAgB,SAAA;EAAA,SAChB,QAAA;EAAA,SACA,UAAA,WAKC;EAAA,SAHD,KAAA;AAAA;AAAA,KAGC,cAAA;EAKE;;;EADZ,QAAA,IAAY,YAAA;EACZ,QAAA,IAAY,eAAA;EACZ,MAAA,CAAO,MAAA;IAAW,SAAA,GAAY,SAAA;EAAA,UAFlB;EAIZ,KAAA,UAHY;EAKZ,YAAA;EACA,cAAA,CAAe,QAAA;IAAY,IAAA;EAAA;EAC3B,cAAA,CAAe,OAAA;IACb,QAAA;IACA,QAAA;EAAA;EAEF,WAAA;EACA,IAAA,CAAK,QAAA;IAAY,KAAA;EAAA;IAAoB,UAAA;EAAA,IAAuB,WAAA;EAC5D,UAAA,CAAW,QAAA;IAAY,KAAA;EAAA;IAAoB,EAAA;EAAA,IAAe,iBAAA;EAC1D,WAAA,CAAY,KAAA;EACZ,aAAA,CAAc,KAAA;EACd,qBAAA,KAA0B,cAAA;AAAA;AAAA,KAGhB,WAAA;EACV,MAAA;EACA,KAAA;IAAS,IAAA;IAAY,EAAA;EAAA;IAAiB,IAAA;IAAe,KAAA;EAAA;AAAA;AAAA,KAG3C,mBAAA;EACV,OAAA,EAAS,cAAA;EACT,IAAA,EAAM,WAAW;AAAA"}
1
+ {"version":3,"file":"message.d.ts","names":[],"sources":["../../../src/store/scopes/message.ts"],"mappings":";;;;;;;;KAQY,YAAA,GAAe,aAAA;EAAA,SAChB,QAAA;EAAA,SACA,MAAA;EAAA,SACA,YAAA;EAAA,SACA,WAAA;EAiBQ;;;;;;;;;;;;;;;;EAAA,SAAR,MAAA,EAAQ,WAAA;EAAA,SACR,QAAA,EAAU,aAAA;EAAA,SACV,KAAA,WAAgB,SAAA;EAAA,SAChB,QAAA;EAAA,SACA,UAAA,WAKC;EAAA,SAHD,KAAA;AAAA;AAAA,KAGC,cAAA;EAKE;;;EADZ,QAAA,IAAY,YAAA;EACZ,QAAA,IAAY,eAAA;EACZ,MAAA,WAAiB,OAAA;EACjB,MAAA,CAAO,MAAA;IAAW,SAAA,GAAY,SAAA;EAAA,UAHlB;EAKZ,KAAA,UAJY;EAMZ,YAAA;EACA,cAAA,CAAe,QAAA;IAAY,IAAA;EAAA;EAC3B,cAAA,CAAe,OAAA;IACb,QAAA;IACA,QAAA;EAAA;EAEF,WAAA;EACA,IAAA,CAAK,QAAA;IAAY,KAAA;EAAA;IAAoB,UAAA;EAAA,IAAuB,WAAA;EAC5D,UAAA,CAAW,QAAA;IAAY,KAAA;EAAA;IAAoB,EAAA;EAAA,IAAe,iBAAA;EAC1D,WAAA,CAAY,KAAA;EACZ,aAAA,CAAc,KAAA;EACd,qBAAA,KAA0B,cAAA;AAAA;AAAA,KAGhB,WAAA;EACV,MAAA;EACA,KAAA;IAAS,IAAA;IAAY,EAAA;EAAA;IAAiB,IAAA;IAAe,KAAA;EAAA;AAAA;AAAA,KAG3C,mBAAA;EACV,OAAA,EAAS,cAAA;EACT,IAAA,EAAM,WAAW;AAAA"}