@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
@@ -2,73 +2,239 @@ import { useSubscribable } from "./useSubscribable.js";
2
2
  import { AttachmentRuntimeClient } from "./attachment-runtime-client.js";
3
3
  import { MessagePartClient } from "./message-part-runtime-client.js";
4
4
  import { ComposerClient } from "./composer-runtime-client.js";
5
- import { useMemo, useState } from "@assistant-ui/tap/react-shim";
5
+ import { liveRef } from "./liveRef.js";
6
+ import { useState } from "@assistant-ui/tap/react-shim";
6
7
  import { useClientLookup, useClientResource } from "@assistant-ui/store";
8
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
7
9
  import { resource, useResource, withKey } from "@assistant-ui/tap";
8
10
  //#region src/store/runtime-clients/message-runtime-client.ts
9
- const MessageAttachmentClientByIndex = resource(function MessageAttachmentClientByIndex({ runtime, index }) {
10
- return useResource(AttachmentRuntimeClient({ runtime: useMemo(() => runtime.getAttachmentByIndex(index), [runtime, index]) }));
11
- });
12
- const MessagePartByIndex = resource(function MessagePartByIndex({ runtime, index }) {
13
- return useResource(MessagePartClient({ runtime: useMemo(() => runtime.getMessagePartByIndex(index), [runtime, index]) }));
14
- });
15
- const MessageClient = resource(function MessageClient({ runtime, threadIdRef }) {
11
+ const useMessageAttachmentClientByIndex = (t0) => {
12
+ const $ = c(5);
13
+ const { runtime, index } = t0;
14
+ let t1;
15
+ if ($[0] !== index || $[1] !== runtime) {
16
+ t1 = runtime.getAttachmentByIndex(index);
17
+ $[0] = index;
18
+ $[1] = runtime;
19
+ $[2] = t1;
20
+ } else t1 = $[2];
21
+ const attachmentRuntime = t1;
22
+ let t2;
23
+ if ($[3] !== attachmentRuntime) {
24
+ t2 = AttachmentRuntimeClient({ runtime: attachmentRuntime });
25
+ $[3] = attachmentRuntime;
26
+ $[4] = t2;
27
+ } else t2 = $[4];
28
+ return useResource(t2);
29
+ };
30
+ const MessageAttachmentClientByIndex = resource(useMessageAttachmentClientByIndex);
31
+ const useMessagePartByIndex = (t0) => {
32
+ const $ = c(5);
33
+ const { runtime, index } = t0;
34
+ let t1;
35
+ if ($[0] !== index || $[1] !== runtime) {
36
+ t1 = runtime.getMessagePartByIndex(index);
37
+ $[0] = index;
38
+ $[1] = runtime;
39
+ $[2] = t1;
40
+ } else t1 = $[2];
41
+ const partRuntime = t1;
42
+ let t2;
43
+ if ($[3] !== partRuntime) {
44
+ t2 = MessagePartClient({ runtime: partRuntime });
45
+ $[3] = partRuntime;
46
+ $[4] = t2;
47
+ } else t2 = $[4];
48
+ return useResource(t2);
49
+ };
50
+ const MessagePartByIndex = resource(useMessagePartByIndex);
51
+ const useMessageClient = (t0) => {
52
+ const $ = c(55);
53
+ const { runtime, threadIdRef } = t0;
16
54
  const runtimeState = useSubscribable(runtime);
17
55
  const [isCopiedState, setIsCopied] = useState(false);
18
56
  const [isHoveringState, setIsHovering] = useState(false);
19
- const messageIdRef = useMemo(() => ({ get current() {
20
- return runtime.getState().id;
21
- } }), [runtime]);
22
- const composer = useClientResource(ComposerClient({
23
- runtime: runtime.composer,
24
- threadIdRef,
25
- messageIdRef
26
- }));
27
- const parts = useClientLookup(() => runtimeState.content.map((part, idx) => withKey("toolCallId" in part && part.toolCallId != null ? `toolCallId-${part.toolCallId}` : `index-${idx}`, MessagePartByIndex({
28
- runtime,
29
- index: idx
30
- }))), [runtimeState.content, runtime]);
31
- const attachments = useClientLookup(() => (runtimeState.attachments ?? []).map((attachment, idx) => withKey(attachment.id, MessageAttachmentClientByIndex({
32
- runtime,
33
- index: idx
34
- }))), [runtimeState.attachments, runtime]);
35
- const state = useMemo(() => {
36
- return {
37
- ...runtimeState,
57
+ let t1;
58
+ if ($[0] !== runtime) {
59
+ t1 = liveRef(() => runtime.getState().id);
60
+ $[0] = runtime;
61
+ $[1] = t1;
62
+ } else t1 = $[1];
63
+ const messageIdRef = t1;
64
+ let t2;
65
+ if ($[2] !== messageIdRef || $[3] !== runtime.composer || $[4] !== threadIdRef) {
66
+ t2 = ComposerClient({
67
+ runtime: runtime.composer,
68
+ threadIdRef,
69
+ messageIdRef
70
+ });
71
+ $[2] = messageIdRef;
72
+ $[3] = runtime.composer;
73
+ $[4] = threadIdRef;
74
+ $[5] = t2;
75
+ } else t2 = $[5];
76
+ const composer = useClientResource(t2);
77
+ let t3;
78
+ if ($[6] !== runtime || $[7] !== runtimeState.content) {
79
+ let t4;
80
+ if ($[9] !== runtime) {
81
+ t4 = (part, idx) => withKey("toolCallId" in part && part.toolCallId != null ? `toolCallId-${part.toolCallId}` : `index-${idx}`, MessagePartByIndex({
82
+ runtime,
83
+ index: idx
84
+ }), [runtime, idx]);
85
+ $[9] = runtime;
86
+ $[10] = t4;
87
+ } else t4 = $[10];
88
+ t3 = runtimeState.content.map(t4);
89
+ $[6] = runtime;
90
+ $[7] = runtimeState.content;
91
+ $[8] = t3;
92
+ } else t3 = $[8];
93
+ const parts = useClientLookup(t3);
94
+ let t4;
95
+ if ($[11] !== runtimeState.attachments) {
96
+ t4 = runtimeState.attachments ?? [];
97
+ $[11] = runtimeState.attachments;
98
+ $[12] = t4;
99
+ } else t4 = $[12];
100
+ let t5;
101
+ if ($[13] !== runtime || $[14] !== t4) {
102
+ let t6;
103
+ if ($[16] !== runtime) {
104
+ t6 = (attachment, idx_0) => withKey(attachment.id, MessageAttachmentClientByIndex({
105
+ runtime,
106
+ index: idx_0
107
+ }), [runtime, idx_0]);
108
+ $[16] = runtime;
109
+ $[17] = t6;
110
+ } else t6 = $[17];
111
+ t5 = t4.map(t6);
112
+ $[13] = runtime;
113
+ $[14] = t4;
114
+ $[15] = t5;
115
+ } else t5 = $[15];
116
+ const attachments = useClientLookup(t5);
117
+ const t6 = runtimeState;
118
+ let t7;
119
+ if ($[18] !== composer.state || $[19] !== isCopiedState || $[20] !== isHoveringState || $[21] !== parts.state || $[22] !== t6) {
120
+ t7 = {
121
+ ...t6,
38
122
  parts: parts.state,
39
123
  composer: composer.state,
40
124
  isCopied: isCopiedState,
41
125
  isHovering: isHoveringState
42
126
  };
43
- }, [
44
- runtimeState,
45
- parts.state,
46
- composer.state,
47
- isCopiedState,
48
- isHoveringState
49
- ]);
50
- return {
51
- getState: () => state,
52
- composer: () => composer.methods,
53
- reload: (config) => runtime.reload(config),
54
- speak: () => runtime.speak(),
55
- stopSpeaking: () => runtime.stopSpeaking(),
56
- submitFeedback: (feedback) => runtime.submitFeedback(feedback),
57
- switchToBranch: (options) => runtime.switchToBranch(options),
58
- getCopyText: () => runtime.unstable_getCopyText(),
59
- part: (selector) => {
127
+ $[18] = composer.state;
128
+ $[19] = isCopiedState;
129
+ $[20] = isHoveringState;
130
+ $[21] = parts.state;
131
+ $[22] = t6;
132
+ $[23] = t7;
133
+ } else t7 = $[23];
134
+ const state = t7;
135
+ let t8;
136
+ if ($[24] !== state) {
137
+ t8 = () => state;
138
+ $[24] = state;
139
+ $[25] = t8;
140
+ } else t8 = $[25];
141
+ let t9;
142
+ if ($[26] !== composer.methods) {
143
+ t9 = () => composer.methods;
144
+ $[26] = composer.methods;
145
+ $[27] = t9;
146
+ } else t9 = $[27];
147
+ let t10;
148
+ let t11;
149
+ let t12;
150
+ let t13;
151
+ let t14;
152
+ let t15;
153
+ let t16;
154
+ if ($[28] !== runtime) {
155
+ t10 = () => runtime.delete();
156
+ t11 = (config) => runtime.reload(config);
157
+ t12 = () => runtime.speak();
158
+ t13 = () => runtime.stopSpeaking();
159
+ t14 = (feedback) => runtime.submitFeedback(feedback);
160
+ t15 = (options) => runtime.switchToBranch(options);
161
+ t16 = () => runtime.unstable_getCopyText();
162
+ $[28] = runtime;
163
+ $[29] = t10;
164
+ $[30] = t11;
165
+ $[31] = t12;
166
+ $[32] = t13;
167
+ $[33] = t14;
168
+ $[34] = t15;
169
+ $[35] = t16;
170
+ } else {
171
+ t10 = $[29];
172
+ t11 = $[30];
173
+ t12 = $[31];
174
+ t13 = $[32];
175
+ t14 = $[33];
176
+ t15 = $[34];
177
+ t16 = $[35];
178
+ }
179
+ let t17;
180
+ if ($[36] !== parts) {
181
+ t17 = (selector) => {
60
182
  if ("index" in selector) return parts.get({ index: selector.index });
61
183
  else return parts.get({ key: `toolCallId-${selector.toolCallId}` });
62
- },
63
- attachment: (selector) => {
64
- if ("id" in selector) return attachments.get({ key: selector.id });
65
- else return attachments.get(selector);
66
- },
67
- setIsCopied,
68
- setIsHovering,
69
- __internal_getRuntime: () => runtime
70
- };
71
- });
184
+ };
185
+ $[36] = parts;
186
+ $[37] = t17;
187
+ } else t17 = $[37];
188
+ let t18;
189
+ if ($[38] !== attachments) {
190
+ t18 = (selector_0) => {
191
+ if ("id" in selector_0) return attachments.get({ key: selector_0.id });
192
+ else return attachments.get(selector_0);
193
+ };
194
+ $[38] = attachments;
195
+ $[39] = t18;
196
+ } else t18 = $[39];
197
+ let t19;
198
+ if ($[40] !== runtime) {
199
+ t19 = () => runtime;
200
+ $[40] = runtime;
201
+ $[41] = t19;
202
+ } else t19 = $[41];
203
+ let t20;
204
+ if ($[42] !== t10 || $[43] !== t11 || $[44] !== t12 || $[45] !== t13 || $[46] !== t14 || $[47] !== t15 || $[48] !== t16 || $[49] !== t17 || $[50] !== t18 || $[51] !== t19 || $[52] !== t8 || $[53] !== t9) {
205
+ t20 = {
206
+ getState: t8,
207
+ composer: t9,
208
+ delete: t10,
209
+ reload: t11,
210
+ speak: t12,
211
+ stopSpeaking: t13,
212
+ submitFeedback: t14,
213
+ switchToBranch: t15,
214
+ getCopyText: t16,
215
+ part: t17,
216
+ attachment: t18,
217
+ setIsCopied,
218
+ setIsHovering,
219
+ __internal_getRuntime: t19
220
+ };
221
+ $[42] = t10;
222
+ $[43] = t11;
223
+ $[44] = t12;
224
+ $[45] = t13;
225
+ $[46] = t14;
226
+ $[47] = t15;
227
+ $[48] = t16;
228
+ $[49] = t17;
229
+ $[50] = t18;
230
+ $[51] = t19;
231
+ $[52] = t8;
232
+ $[53] = t9;
233
+ $[54] = t20;
234
+ } else t20 = $[54];
235
+ return t20;
236
+ };
237
+ const MessageClient = resource(useMessageClient);
72
238
  //#endregion
73
239
  export { MessageClient };
74
240
 
@@ -1 +1 @@
1
- {"version":3,"file":"message-runtime-client.js","names":[],"sources":["../../../src/store/runtime-clients/message-runtime-client.ts"],"sourcesContent":["import { useMemo, useState } 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 { MessageRuntime } from \"../../runtime/api/message-runtime\";\nimport { useSubscribable } from \"./useSubscribable\";\nimport { ComposerClient } from \"./composer-runtime-client\";\nimport { MessagePartClient } from \"./message-part-runtime-client\";\nimport type { MessageState } from \"../scopes/message\";\nimport { AttachmentRuntimeClient } from \"./attachment-runtime-client\";\n\nconst MessageAttachmentClientByIndex = resource(\n function MessageAttachmentClientByIndex({\n runtime,\n index,\n }: {\n runtime: MessageRuntime;\n index: number;\n }) {\n const attachmentRuntime = useMemo(\n () => runtime.getAttachmentByIndex(index),\n [runtime, index],\n );\n return useResource(AttachmentRuntimeClient({ runtime: attachmentRuntime }));\n },\n);\n\nconst MessagePartByIndex = resource(function MessagePartByIndex({\n runtime,\n index,\n}: {\n runtime: MessageRuntime;\n index: number;\n}) {\n const partRuntime = useMemo(\n () => runtime.getMessagePartByIndex(index),\n [runtime, index],\n );\n return useResource(MessagePartClient({ runtime: partRuntime }));\n});\n\nexport const MessageClient = resource(function MessageClient({\n runtime,\n threadIdRef,\n}: {\n runtime: MessageRuntime;\n threadIdRef: { current: string };\n}): ClientOutput<\"message\"> {\n const runtimeState = useSubscribable(runtime);\n\n const [isCopiedState, setIsCopied] = useState(false);\n const [isHoveringState, setIsHovering] = useState(false);\n\n const messageIdRef = useMemo(\n () => ({\n get current() {\n return runtime.getState().id;\n },\n }),\n [runtime],\n );\n\n const composer = useClientResource(\n ComposerClient({\n runtime: runtime.composer,\n threadIdRef,\n messageIdRef,\n }),\n );\n const parts = useClientLookup(\n () =>\n runtimeState.content.map((part, idx) =>\n withKey(\n \"toolCallId\" in part && part.toolCallId != null\n ? `toolCallId-${part.toolCallId}`\n : `index-${idx}`,\n MessagePartByIndex({ runtime, index: idx }),\n ),\n ),\n [runtimeState.content, runtime],\n );\n\n const attachments = useClientLookup(\n () =>\n (runtimeState.attachments ?? []).map((attachment, idx) =>\n withKey(\n attachment.id,\n MessageAttachmentClientByIndex({ runtime, index: idx }),\n ),\n ),\n [runtimeState.attachments, runtime],\n );\n\n const state = useMemo<MessageState>(() => {\n return {\n ...(runtimeState as MessageState),\n\n parts: parts.state,\n composer: composer.state,\n\n isCopied: isCopiedState,\n isHovering: isHoveringState,\n };\n }, [\n runtimeState,\n parts.state,\n composer.state,\n isCopiedState,\n isHoveringState,\n ]);\n\n return {\n getState: () => state,\n\n composer: () => composer.methods,\n\n reload: (config) => runtime.reload(config),\n speak: () => runtime.speak(),\n stopSpeaking: () => runtime.stopSpeaking(),\n submitFeedback: (feedback) => runtime.submitFeedback(feedback),\n switchToBranch: (options) => runtime.switchToBranch(options),\n getCopyText: () => runtime.unstable_getCopyText(),\n part: (selector) => {\n if (\"index\" in selector) {\n return parts.get({ index: selector.index });\n } else {\n return parts.get({ key: `toolCallId-${selector.toolCallId}` });\n }\n },\n\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachments.get({ key: selector.id });\n } else {\n return attachments.get(selector);\n }\n },\n\n setIsCopied,\n setIsHovering,\n\n __internal_getRuntime: () => runtime,\n };\n});\n"],"mappings":";;;;;;;;AAcA,MAAM,iCAAiC,SACrC,SAAS,+BAA+B,EACtC,SACA,SAIC;CAKD,OAAO,YAAY,wBAAwB,EAAE,SAJnB,cAClB,QAAQ,qBAAqB,KAAK,GACxC,CAAC,SAAS,KAAK,CAEqD,EAAE,CAAC,CAAC;AAC5E,CACF;AAEA,MAAM,qBAAqB,SAAS,SAAS,mBAAmB,EAC9D,SACA,SAIC;CAKD,OAAO,YAAY,kBAAkB,EAAE,SAJnB,cACZ,QAAQ,sBAAsB,KAAK,GACzC,CAAC,SAAS,KAAK,CAEyC,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,MAAa,gBAAgB,SAAS,SAAS,cAAc,EAC3D,SACA,eAI0B;CAC1B,MAAM,eAAe,gBAAgB,OAAO;CAE5C,MAAM,CAAC,eAAe,eAAe,SAAS,KAAK;CACnD,MAAM,CAAC,iBAAiB,iBAAiB,SAAS,KAAK;CAEvD,MAAM,eAAe,eACZ,EACL,IAAI,UAAU;EACZ,OAAO,QAAQ,SAAS,CAAC,CAAC;CAC5B,EACF,IACA,CAAC,OAAO,CACV;CAEA,MAAM,WAAW,kBACf,eAAe;EACb,SAAS,QAAQ;EACjB;EACA;CACF,CAAC,CACH;CACA,MAAM,QAAQ,sBAEV,aAAa,QAAQ,KAAK,MAAM,QAC9B,QACE,gBAAgB,QAAQ,KAAK,cAAc,OACvC,cAAc,KAAK,eACnB,SAAS,OACb,mBAAmB;EAAE;EAAS,OAAO;CAAI,CAAC,CAC5C,CACF,GACF,CAAC,aAAa,SAAS,OAAO,CAChC;CAEA,MAAM,cAAc,uBAEf,aAAa,eAAe,CAAC,EAAA,CAAG,KAAK,YAAY,QAChD,QACE,WAAW,IACX,+BAA+B;EAAE;EAAS,OAAO;CAAI,CAAC,CACxD,CACF,GACF,CAAC,aAAa,aAAa,OAAO,CACpC;CAEA,MAAM,QAAQ,cAA4B;EACxC,OAAO;GACL,GAAI;GAEJ,OAAO,MAAM;GACb,UAAU,SAAS;GAEnB,UAAU;GACV,YAAY;EACd;CACF,GAAG;EACD;EACA,MAAM;EACN,SAAS;EACT;EACA;CACF,CAAC;CAED,OAAO;EACL,gBAAgB;EAEhB,gBAAgB,SAAS;EAEzB,SAAS,WAAW,QAAQ,OAAO,MAAM;EACzC,aAAa,QAAQ,MAAM;EAC3B,oBAAoB,QAAQ,aAAa;EACzC,iBAAiB,aAAa,QAAQ,eAAe,QAAQ;EAC7D,iBAAiB,YAAY,QAAQ,eAAe,OAAO;EAC3D,mBAAmB,QAAQ,qBAAqB;EAChD,OAAO,aAAa;GAClB,IAAI,WAAW,UACb,OAAO,MAAM,IAAI,EAAE,OAAO,SAAS,MAAM,CAAC;QAE1C,OAAO,MAAM,IAAI,EAAE,KAAK,cAAc,SAAS,aAAa,CAAC;EAEjE;EAEA,aAAa,aAAa;GACxB,IAAI,QAAQ,UACV,OAAO,YAAY,IAAI,EAAE,KAAK,SAAS,GAAG,CAAC;QAE3C,OAAO,YAAY,IAAI,QAAQ;EAEnC;EAEA;EACA;EAEA,6BAA6B;CAC/B;AACF,CAAC"}
1
+ {"version":3,"file":"message-runtime-client.js","names":["useMemo","useState","useResource","withKey","resource","ClientOutput","useClientLookup","useClientResource","MessageRuntime","useSubscribable","liveRef","ComposerClient","MessagePartClient","MessageState","AttachmentRuntimeClient","useMessageAttachmentClientByIndex","t0","$","_c","runtime","index","t1","getAttachmentByIndex","attachmentRuntime","t2","MessageAttachmentClientByIndex","useMessagePartByIndex","getMessagePartByIndex","partRuntime","MessagePartByIndex","useMessageClient","threadIdRef","runtimeState","isCopiedState","setIsCopied","isHoveringState","setIsHovering","getState","id","messageIdRef","composer","t3","content","t4","part","idx","toolCallId","map","parts","attachments","t5","t6","attachment","idx_0","t7","state","isCopied","isHovering","t8","t9","methods","t10","t11","t12","t13","t14","t15","t16","delete","config","reload","speak","stopSpeaking","feedback","submitFeedback","options","switchToBranch","unstable_getCopyText","t17","selector","get","key","t18","selector_0","t19","t20","getCopyText","__internal_getRuntime","MessageClient"],"sources":["../../../src/store/runtime-clients/message-runtime-client.ts"],"sourcesContent":["import { useMemo, useState } 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 { MessageRuntime } from \"../../runtime/api/message-runtime\";\nimport { useSubscribable } from \"./useSubscribable\";\nimport { liveRef } from \"./liveRef\";\nimport { ComposerClient } from \"./composer-runtime-client\";\nimport { MessagePartClient } from \"./message-part-runtime-client\";\nimport type { MessageState } from \"../scopes/message\";\nimport { AttachmentRuntimeClient } from \"./attachment-runtime-client\";\n\nconst useMessageAttachmentClientByIndex = ({\n runtime,\n index,\n}: {\n runtime: MessageRuntime;\n index: number;\n}) => {\n const attachmentRuntime = useMemo(\n () => runtime.getAttachmentByIndex(index),\n [runtime, index],\n );\n return useResource(AttachmentRuntimeClient({ runtime: attachmentRuntime }));\n};\n\nconst MessageAttachmentClientByIndex = resource(\n useMessageAttachmentClientByIndex,\n);\n\nconst useMessagePartByIndex = ({\n runtime,\n index,\n}: {\n runtime: MessageRuntime;\n index: number;\n}) => {\n const partRuntime = useMemo(\n () => runtime.getMessagePartByIndex(index),\n [runtime, index],\n );\n return useResource(MessagePartClient({ runtime: partRuntime }));\n};\n\nconst MessagePartByIndex = resource(useMessagePartByIndex);\n\nconst useMessageClient = ({\n runtime,\n threadIdRef,\n}: {\n runtime: MessageRuntime;\n threadIdRef: { current: string };\n}): ClientOutput<\"message\"> => {\n const runtimeState = useSubscribable(runtime);\n\n const [isCopiedState, setIsCopied] = useState(false);\n const [isHoveringState, setIsHovering] = useState(false);\n\n const messageIdRef = useMemo(\n () => liveRef(() => runtime.getState().id),\n [runtime],\n );\n\n const composer = useClientResource(\n ComposerClient({\n runtime: runtime.composer,\n threadIdRef,\n messageIdRef,\n }),\n );\n const parts = useClientLookup(\n runtimeState.content.map((part, idx) =>\n withKey(\n \"toolCallId\" in part && part.toolCallId != null\n ? `toolCallId-${part.toolCallId}`\n : `index-${idx}`,\n MessagePartByIndex({ runtime, index: idx }),\n [runtime, idx],\n ),\n ),\n );\n\n const attachments = useClientLookup(\n (runtimeState.attachments ?? []).map((attachment, idx) =>\n withKey(\n attachment.id,\n MessageAttachmentClientByIndex({ runtime, index: idx }),\n [runtime, idx],\n ),\n ),\n );\n\n const state = useMemo<MessageState>(() => {\n return {\n ...(runtimeState as MessageState),\n\n parts: parts.state,\n composer: composer.state,\n\n isCopied: isCopiedState,\n isHovering: isHoveringState,\n };\n }, [\n runtimeState,\n parts.state,\n composer.state,\n isCopiedState,\n isHoveringState,\n ]);\n\n return {\n getState: () => state,\n\n composer: () => composer.methods,\n\n delete: () => runtime.delete(),\n reload: (config) => runtime.reload(config),\n speak: () => runtime.speak(),\n stopSpeaking: () => runtime.stopSpeaking(),\n submitFeedback: (feedback) => runtime.submitFeedback(feedback),\n switchToBranch: (options) => runtime.switchToBranch(options),\n getCopyText: () => runtime.unstable_getCopyText(),\n part: (selector) => {\n if (\"index\" in selector) {\n return parts.get({ index: selector.index });\n } else {\n return parts.get({ key: `toolCallId-${selector.toolCallId}` });\n }\n },\n\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachments.get({ key: selector.id });\n } else {\n return attachments.get(selector);\n }\n },\n\n setIsCopied,\n setIsHovering,\n\n __internal_getRuntime: () => runtime,\n };\n};\n\nexport const MessageClient = resource(useMessageClient);\n"],"mappings":"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"}
@@ -2,11 +2,9 @@ import { ThreadListItemRuntime } from "../../runtime/api/thread-list-item-runtim
2
2
  import { ClientOutput } from "@assistant-ui/store";
3
3
 
4
4
  //#region src/store/runtime-clients/thread-list-item-runtime-client.d.ts
5
- declare const ThreadListItemClient: (props: {
5
+ declare const ThreadListItemClient: import("@assistant-ui/tap").Resource<ClientOutput<"threadListItem">, [{
6
6
  runtime: ThreadListItemRuntime;
7
- }) => import("@assistant-ui/tap").ResourceElement<ClientOutput<"threadListItem">, {
8
- runtime: ThreadListItemRuntime;
9
- }>;
7
+ }]>;
10
8
  //#endregion
11
9
  export { ThreadListItemClient };
12
10
  //# sourceMappingURL=thread-list-item-runtime-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"thread-list-item-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/thread-list-item-runtime-client.ts"],"mappings":";;;;cAUa,oBAAA,GAAoB,KAAA;WAGtB,qBAAA;AAAA;WAAA,qBAAA;AAAA"}
1
+ {"version":3,"file":"thread-list-item-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/thread-list-item-runtime-client.ts"],"mappings":";;;;cAyDa,oBAAA,8BAAoB,QAAA,CAAA,YAAA;WA5CtB,qBAAqB;AAAA"}
@@ -1,37 +1,82 @@
1
1
  import { useSubscribable } from "./useSubscribable.js";
2
2
  import { useEffect } from "@assistant-ui/tap/react-shim";
3
3
  import { useAssistantEmit } from "@assistant-ui/store";
4
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
4
5
  import { resource } from "@assistant-ui/tap";
5
6
  //#region src/store/runtime-clients/thread-list-item-runtime-client.ts
6
- const ThreadListItemClient = resource(function ThreadListItemClient({ runtime }) {
7
+ const useThreadListItemClient = (t0) => {
8
+ const $ = c(20);
9
+ const { runtime } = t0;
7
10
  const state = useSubscribable(runtime);
8
11
  const emit = useAssistantEmit();
9
- useEffect(() => {
10
- const unsubscribers = [];
11
- for (const event of ["switchedTo", "switchedAway"]) {
12
- const unsubscribe = runtime.unstable_on(event, () => {
13
- emit(`threadListItem.${event}`, { threadId: runtime.getState().id });
14
- });
15
- unsubscribers.push(unsubscribe);
16
- }
17
- return () => {
18
- for (const unsub of unsubscribers) unsub();
12
+ let t1;
13
+ let t2;
14
+ if ($[0] !== emit || $[1] !== runtime) {
15
+ t1 = () => {
16
+ const unsubscribers = [];
17
+ for (const event of ["switchedTo", "switchedAway"]) {
18
+ const unsubscribe = runtime.unstable_on(event, () => {
19
+ emit(`threadListItem.${event}`, { threadId: runtime.getState().id });
20
+ });
21
+ unsubscribers.push(unsubscribe);
22
+ }
23
+ return () => {
24
+ for (const unsub of unsubscribers) unsub();
25
+ };
19
26
  };
20
- }, [runtime, emit]);
21
- return {
22
- getState: () => state,
23
- switchTo: runtime.switchTo,
24
- rename: runtime.rename,
25
- updateCustom: runtime.updateCustom,
26
- archive: runtime.archive,
27
- unarchive: runtime.unarchive,
28
- delete: runtime.delete,
29
- generateTitle: runtime.generateTitle,
30
- initialize: runtime.initialize,
31
- detach: runtime.detach,
32
- __internal_getRuntime: () => runtime
33
- };
34
- });
27
+ t2 = [runtime, emit];
28
+ $[0] = emit;
29
+ $[1] = runtime;
30
+ $[2] = t1;
31
+ $[3] = t2;
32
+ } else {
33
+ t1 = $[2];
34
+ t2 = $[3];
35
+ }
36
+ useEffect(t1, t2);
37
+ let t3;
38
+ if ($[4] !== state) {
39
+ t3 = () => state;
40
+ $[4] = state;
41
+ $[5] = t3;
42
+ } else t3 = $[5];
43
+ let t4;
44
+ if ($[6] !== runtime) {
45
+ t4 = () => runtime;
46
+ $[6] = runtime;
47
+ $[7] = t4;
48
+ } else t4 = $[7];
49
+ let t5;
50
+ if ($[8] !== runtime.archive || $[9] !== runtime.delete || $[10] !== runtime.detach || $[11] !== runtime.generateTitle || $[12] !== runtime.initialize || $[13] !== runtime.rename || $[14] !== runtime.switchTo || $[15] !== runtime.unarchive || $[16] !== runtime.updateCustom || $[17] !== t3 || $[18] !== t4) {
51
+ t5 = {
52
+ getState: t3,
53
+ switchTo: runtime.switchTo,
54
+ rename: runtime.rename,
55
+ updateCustom: runtime.updateCustom,
56
+ archive: runtime.archive,
57
+ unarchive: runtime.unarchive,
58
+ delete: runtime.delete,
59
+ generateTitle: runtime.generateTitle,
60
+ initialize: runtime.initialize,
61
+ detach: runtime.detach,
62
+ __internal_getRuntime: t4
63
+ };
64
+ $[8] = runtime.archive;
65
+ $[9] = runtime.delete;
66
+ $[10] = runtime.detach;
67
+ $[11] = runtime.generateTitle;
68
+ $[12] = runtime.initialize;
69
+ $[13] = runtime.rename;
70
+ $[14] = runtime.switchTo;
71
+ $[15] = runtime.unarchive;
72
+ $[16] = runtime.updateCustom;
73
+ $[17] = t3;
74
+ $[18] = t4;
75
+ $[19] = t5;
76
+ } else t5 = $[19];
77
+ return t5;
78
+ };
79
+ const ThreadListItemClient = resource(useThreadListItemClient);
35
80
  //#endregion
36
81
  export { ThreadListItemClient };
37
82
 
@@ -1 +1 @@
1
- {"version":3,"file":"thread-list-item-runtime-client.js","names":[],"sources":["../../../src/store/runtime-clients/thread-list-item-runtime-client.ts"],"sourcesContent":["import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport { useEffect } from \"react\";\nimport { resource } from \"@assistant-ui/tap\";\nimport { type ClientOutput, useAssistantEmit } from \"@assistant-ui/store\";\nimport type {\n ThreadListItemEventType,\n ThreadListItemRuntime,\n} from \"../../runtime/api/thread-list-item-runtime\";\nimport { useSubscribable } from \"./useSubscribable\";\n\nexport const ThreadListItemClient = resource(function ThreadListItemClient({\n runtime,\n}: {\n runtime: ThreadListItemRuntime;\n}): ClientOutput<\"threadListItem\"> {\n const state = useSubscribable(runtime);\n const emit = useAssistantEmit();\n\n // Bind thread list item events to event manager\n useEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n // Subscribe to thread list item events\n const threadListItemEvents: ThreadListItemEventType[] = [\n \"switchedTo\",\n \"switchedAway\",\n ];\n\n for (const event of threadListItemEvents) {\n const unsubscribe = runtime.unstable_on(event, () => {\n emit(`threadListItem.${event}`, {\n threadId: runtime.getState()!.id,\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, emit]);\n\n return {\n getState: () => state,\n switchTo: runtime.switchTo,\n rename: runtime.rename,\n updateCustom: runtime.updateCustom,\n archive: runtime.archive,\n unarchive: runtime.unarchive,\n delete: runtime.delete,\n generateTitle: runtime.generateTitle,\n initialize: runtime.initialize,\n detach: runtime.detach,\n __internal_getRuntime: () => runtime,\n };\n});\n"],"mappings":";;;;;AAUA,MAAa,uBAAuB,SAAS,SAAS,qBAAqB,EACzE,WAGiC;CACjC,MAAM,QAAQ,gBAAgB,OAAO;CACrC,MAAM,OAAO,iBAAiB;CAG9B,gBAAgB;EACd,MAAM,gBAA+B,CAAC;EAQtC,KAAK,MAAM,SAAS,CAJlB,cACA,cAGqC,GAAG;GACxC,MAAM,cAAc,QAAQ,YAAY,aAAa;IACnD,KAAK,kBAAkB,SAAS,EAC9B,UAAU,QAAQ,SAAS,CAAC,CAAE,GAChC,CAAC;GACH,CAAC;GACD,cAAc,KAAK,WAAW;EAChC;EAEA,aAAa;GACX,KAAK,MAAM,SAAS,eAAe,MAAM;EAC3C;CACF,GAAG,CAAC,SAAS,IAAI,CAAC;CAElB,OAAO;EACL,gBAAgB;EAChB,UAAU,QAAQ;EAClB,QAAQ,QAAQ;EAChB,cAAc,QAAQ;EACtB,SAAS,QAAQ;EACjB,WAAW,QAAQ;EACnB,QAAQ,QAAQ;EAChB,eAAe,QAAQ;EACvB,YAAY,QAAQ;EACpB,QAAQ,QAAQ;EAChB,6BAA6B;CAC/B;AACF,CAAC"}
1
+ {"version":3,"file":"thread-list-item-runtime-client.js","names":["Unsubscribe","useEffect","resource","ClientOutput","useAssistantEmit","ThreadListItemEventType","ThreadListItemRuntime","useSubscribable","useThreadListItemClient","t0","$","_c","runtime","state","emit","t1","t2","unsubscribers","threadListItemEvents","event","unsubscribe","unstable_on","threadId","getState","id","push","unsub","t3","t4","t5","archive","delete","detach","generateTitle","initialize","rename","switchTo","unarchive","updateCustom","__internal_getRuntime","ThreadListItemClient"],"sources":["../../../src/store/runtime-clients/thread-list-item-runtime-client.ts"],"sourcesContent":["import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport { useEffect } from \"react\";\nimport { resource } from \"@assistant-ui/tap\";\nimport { type ClientOutput, useAssistantEmit } from \"@assistant-ui/store\";\nimport type {\n ThreadListItemEventType,\n ThreadListItemRuntime,\n} from \"../../runtime/api/thread-list-item-runtime\";\nimport { useSubscribable } from \"./useSubscribable\";\n\nconst useThreadListItemClient = ({\n runtime,\n}: {\n runtime: ThreadListItemRuntime;\n}): ClientOutput<\"threadListItem\"> => {\n const state = useSubscribable(runtime);\n const emit = useAssistantEmit();\n\n // Bind thread list item events to event manager\n useEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n // Subscribe to thread list item events\n const threadListItemEvents: ThreadListItemEventType[] = [\n \"switchedTo\",\n \"switchedAway\",\n ];\n\n for (const event of threadListItemEvents) {\n const unsubscribe = runtime.unstable_on(event, () => {\n emit(`threadListItem.${event}`, {\n threadId: runtime.getState()!.id,\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, emit]);\n\n return {\n getState: () => state,\n switchTo: runtime.switchTo,\n rename: runtime.rename,\n updateCustom: runtime.updateCustom,\n archive: runtime.archive,\n unarchive: runtime.unarchive,\n delete: runtime.delete,\n generateTitle: runtime.generateTitle,\n initialize: runtime.initialize,\n detach: runtime.detach,\n __internal_getRuntime: () => runtime,\n };\n};\n\nexport const ThreadListItemClient = resource(useThreadListItemClient);\n"],"mappings":";;;;;;AAUA,MAAMQ,2BAA0BC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAC,MAAA,EAAAC,YAAAH;CAK/B,MAAAI,QAAcN,gBAAgBK,OAAO;CACrC,MAAAE,OAAaV,iBAAiB;CAAE,IAAAW;CAAA,IAAAC;CAAA,IAAAN,EAAA,OAAAI,QAAAJ,EAAA,OAAAE,SAAA;EAGtBG,WAAA;GACR,MAAAE,gBAAqC,CAAA;GAQrC,KAAK,MAAAE,SAAeD,CAJlB,cACA,cAGkBA,GAAoB;IACtC,MAAAE,cAAoBR,QAAOS,YAAaF,aAAO;KAC7CL,KAAK,kBAAkBK,SAAS,EAAAG,UACpBV,QAAOW,SAAU,CAAC,CAAAC,GAC9B,CAAC;IAAC,CACH;IACDP,cAAaQ,KAAML,WAAW;GAAC;GAChC,aAEM;IACL,KAAK,MAAAM,SAAeT,eAAeS,MAAM;GAAE;EAC5C;EACAV,KAAA,CAACJ,SAASE,IAAI;EAACJ,EAAA,KAAAI;EAAAJ,EAAA,KAAAE;EAAAF,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAA;EAAAD,KAAAL,EAAA;EAAAM,KAAAN,EAAA;CAAA;CArBlBT,UAAUc,IAqBPC,EAAe;CAAC,IAAAW;CAAA,IAAAjB,EAAA,OAAAG,OAAA;EAGPc,WAAMd;EAAKH,EAAA,KAAAG;EAAAH,EAAA,KAAAiB;CAAA,OAAAA,KAAAjB,EAAA;CAAA,IAAAkB;CAAA,IAAAlB,EAAA,OAAAE,SAAA;EAUEgB,WAAMhB;EAAOF,EAAA,KAAAE;EAAAF,EAAA,KAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CAAA,IAAAmB;CAAA,IAAAnB,EAAA,OAAAE,QAAAkB,WAAApB,EAAA,OAAAE,QAAAmB,UAAArB,EAAA,QAAAE,QAAAoB,UAAAtB,EAAA,QAAAE,QAAAqB,iBAAAvB,EAAA,QAAAE,QAAAsB,cAAAxB,EAAA,QAAAE,QAAAuB,UAAAzB,EAAA,QAAAE,QAAAwB,YAAA1B,EAAA,QAAAE,QAAAyB,aAAA3B,EAAA,QAAAE,QAAA0B,gBAAA5B,EAAA,QAAAiB,MAAAjB,EAAA,QAAAkB,IAAA;EAX/BC,KAAA;GAAAN,UACKI;GAAWS,UACXxB,QAAOwB;GAASD,QAClBvB,QAAOuB;GAAOG,cACR1B,QAAO0B;GAAaR,SACzBlB,QAAOkB;GAAQO,WACbzB,QAAOyB;GAAUN,QACpBnB,QAAOmB;GAAOE,eACPrB,QAAOqB;GAAcC,YACxBtB,QAAOsB;GAAWF,QACtBpB,QAAOoB;GAAOO,uBACCX;EACzB;EAAClB,EAAA,KAAAE,QAAAkB;EAAApB,EAAA,KAAAE,QAAAmB;EAAArB,EAAA,MAAAE,QAAAoB;EAAAtB,EAAA,MAAAE,QAAAqB;EAAAvB,EAAA,MAAAE,QAAAsB;EAAAxB,EAAA,MAAAE,QAAAuB;EAAAzB,EAAA,MAAAE,QAAAwB;EAAA1B,EAAA,MAAAE,QAAAyB;EAAA3B,EAAA,MAAAE,QAAA0B;EAAA5B,EAAA,MAAAiB;EAAAjB,EAAA,MAAAkB;EAAAlB,EAAA,MAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,OAZMmB;AAYN;AAGH,MAAaW,uBAAuBtC,SAASM,uBAAuB"}
@@ -3,13 +3,10 @@ import { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
3
3
  import { ClientOutput } from "@assistant-ui/store";
4
4
 
5
5
  //#region src/store/runtime-clients/thread-list-runtime-client.d.ts
6
- declare const ThreadListClient: (props: {
6
+ declare const ThreadListClient: import("@assistant-ui/tap").Resource<ClientOutput<"threads">, [{
7
7
  runtime: ThreadListRuntime;
8
8
  __internal_assistantRuntime: AssistantRuntime;
9
- }) => import("@assistant-ui/tap").ResourceElement<ClientOutput<"threads">, {
10
- runtime: ThreadListRuntime;
11
- __internal_assistantRuntime: AssistantRuntime;
12
- }>;
9
+ }]>;
13
10
  //#endregion
14
11
  export { ThreadListClient };
15
12
  //# sourceMappingURL=thread-list-runtime-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"thread-list-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/thread-list-runtime-client.ts"],"mappings":";;;;;cAgCa,gBAAA,GAAgB,KAAA;WAIlB,iBAAA;+BACoB,gBAAA;AAAA;WADpB,iBAAA;+BACoB,gBAAA;AAAA"}
1
+ {"version":3,"file":"thread-list-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/thread-list-runtime-client.ts"],"mappings":";;;;;cAoGa,gBAAA,8BAAgB,QAAA,CAAA,YAAA;WA9DlB,iBAAA;+BACoB,gBAAA;AAAA"}