@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 +1 @@
1
- {"version":3,"file":"useInlineRender.js","names":[],"sources":["../../../src/react/model-context/useInlineRender.ts"],"sourcesContent":["import { type FC, useCallback, useEffect, useState } from \"react\";\nimport type { ToolCallMessagePartProps } from \"../types/MessagePartComponentTypes\";\nimport { create } from \"zustand\";\n\nexport const useInlineRender = <TArgs, TResult>(\n toolUI: FC<ToolCallMessagePartProps<TArgs, TResult>>,\n): FC<ToolCallMessagePartProps<TArgs, TResult>> => {\n const [useToolUIStore] = useState(() =>\n create(() => ({\n toolUI,\n })),\n );\n\n useEffect(() => {\n useToolUIStore.setState({ toolUI });\n }, [toolUI, useToolUIStore]);\n\n return useCallback(\n function ToolUI(args) {\n const store = useToolUIStore();\n return store.toolUI(args);\n },\n [useToolUIStore],\n );\n};\n"],"mappings":";;;AAIA,MAAa,mBACX,WACiD;CACjD,MAAM,CAAC,kBAAkB,eACvB,cAAc,EACZ,OACF,EAAE,CACJ;CAEA,gBAAgB;EACd,eAAe,SAAS,EAAE,OAAO,CAAC;CACpC,GAAG,CAAC,QAAQ,cAAc,CAAC;CAE3B,OAAO,YACL,SAAS,OAAO,MAAM;EAEpB,OADc,eACH,CAAC,CAAC,OAAO,IAAI;CAC1B,GACA,CAAC,cAAc,CACjB;AACF"}
1
+ {"version":3,"file":"useInlineRender.js","names":["FC","useCallback","useEffect","useState","ToolCallMessagePartProps","create","useInlineRender","toolUI","$","_c","t0","useToolUIStore","t1","t2","setState","t3","ToolUI","args","store"],"sources":["../../../src/react/model-context/useInlineRender.ts"],"sourcesContent":["import { type FC, useCallback, useEffect, useState } from \"react\";\nimport type { ToolCallMessagePartProps } from \"../types/MessagePartComponentTypes\";\nimport { create } from \"zustand\";\n\nexport const useInlineRender = <TArgs, TResult>(\n toolUI: FC<ToolCallMessagePartProps<TArgs, TResult>>,\n): FC<ToolCallMessagePartProps<TArgs, TResult>> => {\n const [useToolUIStore] = useState(() =>\n create(() => ({\n toolUI,\n })),\n );\n\n useEffect(() => {\n useToolUIStore.setState({ toolUI });\n }, [toolUI, useToolUIStore]);\n\n return useCallback(\n function ToolUI(args) {\n const store = useToolUIStore();\n return store.toolUI(args);\n },\n [useToolUIStore],\n );\n};\n"],"mappings":";;;;AAIA,MAAaM,mBAAkBC,WAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAC;CAAA,IAAAF,EAAA,OAAAD,QAAA;EAGKG,WAChCL,cAAc,EAAAE,OAEd,EAAE;EAACC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAHL,MAAA,CAAAG,kBAAyBR,SAASO,EAIlC;CAAE,IAAAE;CAAA,IAAAC;CAAA,IAAAL,EAAA,OAAAD,UAAAC,EAAA,OAAAG,gBAAA;EAEQC,WAAA;GACRD,eAAcG,SAAU,EAAAP,OAAS,CAAC;EAAC;EAClCM,KAAA,CAACN,QAAQI,cAAc;EAACH,EAAA,KAAAD;EAAAC,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;CAAA,OAAA;EAAAD,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;CAAA;CAF3BN,UAAUU,IAEPC,EAAwB;CAAC,IAAAE;CAAA,IAAAP,EAAA,OAAAG,gBAAA;EAG1BI,KAAA,SAAAC,OAAAC,MAAA;GACiC,OAAjBN,eACPO,CAAK,CAAAX,OAAQU,IAAI;EAAC;EAC1BT,EAAA,KAAAG;EAAAH,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,OAJIO;AAMN"}
@@ -1,5 +1,5 @@
1
- import { useCallback } from "@assistant-ui/tap/react-shim";
2
1
  import { useAui, useAuiState } from "@assistant-ui/store";
2
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
3
3
  //#region src/react/model-context/useInteractableState.ts
4
4
  /**
5
5
  * Reads and writes the state of a registered interactable.
@@ -7,26 +7,72 @@ import { useAui, useAuiState } from "@assistant-ui/store";
7
7
  * Pair with {@link useAssistantInteractable} which handles registration.
8
8
  */
9
9
  const useInteractableState = (id, fallback) => {
10
+ const $ = c(19);
10
11
  const aui = useAui();
11
12
  const state = useAuiState((s) => s.interactables.definitions[id]?.state) ?? fallback;
12
- const persistenceStatus = useAuiState((s) => s.interactables.persistence[id]);
13
- const setState = useCallback((updater) => {
14
- aui.interactables().setState(id, (prev) => {
15
- if (typeof updater === "function") return updater(prev);
16
- return updater;
17
- });
18
- }, [aui, id]);
19
- const setSelected = useCallback((selected) => {
20
- aui.interactables().setSelected(id, selected);
21
- }, [aui, id]);
22
- const flush = useCallback(() => aui.interactables().flush(), [aui]);
23
- return [state, {
24
- setState,
25
- setSelected,
26
- isPending: persistenceStatus?.isPending ?? false,
27
- error: persistenceStatus?.error,
28
- flush
29
- }];
13
+ let t0;
14
+ if ($[0] !== id) {
15
+ t0 = (s_0) => s_0.interactables.persistence[id];
16
+ $[0] = id;
17
+ $[1] = t0;
18
+ } else t0 = $[1];
19
+ const persistenceStatus = useAuiState(t0);
20
+ let t1;
21
+ if ($[2] !== aui || $[3] !== id) {
22
+ t1 = (updater) => {
23
+ aui.interactables().setState(id, (prev) => {
24
+ if (typeof updater === "function") return updater(prev);
25
+ return updater;
26
+ });
27
+ };
28
+ $[2] = aui;
29
+ $[3] = id;
30
+ $[4] = t1;
31
+ } else t1 = $[4];
32
+ const setState = t1;
33
+ let t2;
34
+ if ($[5] !== aui || $[6] !== id) {
35
+ t2 = (selected) => {
36
+ aui.interactables().setSelected(id, selected);
37
+ };
38
+ $[5] = aui;
39
+ $[6] = id;
40
+ $[7] = t2;
41
+ } else t2 = $[7];
42
+ const setSelected = t2;
43
+ let t3;
44
+ if ($[8] !== aui) {
45
+ t3 = () => aui.interactables().flush();
46
+ $[8] = aui;
47
+ $[9] = t3;
48
+ } else t3 = $[9];
49
+ const flush = t3;
50
+ const t4 = persistenceStatus?.isPending ?? false;
51
+ const t5 = persistenceStatus?.error;
52
+ let t6;
53
+ if ($[10] !== flush || $[11] !== setSelected || $[12] !== setState || $[13] !== t4 || $[14] !== t5) {
54
+ t6 = {
55
+ setState,
56
+ setSelected,
57
+ isPending: t4,
58
+ error: t5,
59
+ flush
60
+ };
61
+ $[10] = flush;
62
+ $[11] = setSelected;
63
+ $[12] = setState;
64
+ $[13] = t4;
65
+ $[14] = t5;
66
+ $[15] = t6;
67
+ } else t6 = $[15];
68
+ let t7;
69
+ if ($[16] !== state || $[17] !== t6) {
70
+ t7 = [state, t6];
71
+ $[16] = state;
72
+ $[17] = t6;
73
+ $[18] = t7;
74
+ } else t7 = $[18];
75
+ return t7;
30
76
  };
31
77
  //#endregion
32
78
  export { useInteractableState };
@@ -1 +1 @@
1
- {"version":3,"file":"useInteractableState.js","names":[],"sources":["../../../src/react/model-context/useInteractableState.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\ntype StateUpdater<TState> = TState | ((prev: TState) => TState);\n\n/**\n * Reads and writes the state of a registered interactable.\n *\n * Pair with {@link useAssistantInteractable} which handles registration.\n */\nexport const useInteractableState = <TState>(\n id: string,\n fallback: TState,\n): [\n TState,\n {\n setState: (updater: StateUpdater<TState>) => void;\n setSelected: (selected: boolean) => void;\n isPending: boolean;\n error: unknown;\n flush: () => Promise<void>;\n },\n] => {\n const aui = useAui();\n\n const state =\n (useAuiState((s) => s.interactables.definitions[id]?.state) as TState) ??\n (fallback as TState);\n\n const persistenceStatus = useAuiState((s) => s.interactables.persistence[id]);\n\n const setState = useCallback(\n (updater: StateUpdater<TState>) => {\n aui.interactables().setState(id, (prev) => {\n if (typeof updater === \"function\") {\n return (updater as (prev: TState) => TState)(prev as TState);\n }\n return updater;\n });\n },\n [aui, id],\n );\n\n const setSelected = useCallback(\n (selected: boolean) => {\n aui.interactables().setSelected(id, selected);\n },\n [aui, id],\n );\n\n const flush = useCallback(() => aui.interactables().flush(), [aui]);\n\n return [\n state,\n {\n setState,\n setSelected,\n isPending: persistenceStatus?.isPending ?? false,\n error: persistenceStatus?.error,\n flush,\n },\n ];\n};\n"],"mappings":";;;;;;;;AAUA,MAAa,wBACX,IACA,aAUG;CACH,MAAM,MAAM,OAAO;CAEnB,MAAM,QACH,aAAa,MAAM,EAAE,cAAc,YAAY,GAAG,EAAE,KAAK,KACzD;CAEH,MAAM,oBAAoB,aAAa,MAAM,EAAE,cAAc,YAAY,GAAG;CAE5E,MAAM,WAAW,aACd,YAAkC;EACjC,IAAI,cAAc,CAAC,CAAC,SAAS,KAAK,SAAS;GACzC,IAAI,OAAO,YAAY,YACrB,OAAQ,QAAqC,IAAc;GAE7D,OAAO;EACT,CAAC;CACH,GACA,CAAC,KAAK,EAAE,CACV;CAEA,MAAM,cAAc,aACjB,aAAsB;EACrB,IAAI,cAAc,CAAC,CAAC,YAAY,IAAI,QAAQ;CAC9C,GACA,CAAC,KAAK,EAAE,CACV;CAEA,MAAM,QAAQ,kBAAkB,IAAI,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC;CAElE,OAAO,CACL,OACA;EACE;EACA;EACA,WAAW,mBAAmB,aAAa;EAC3C,OAAO,mBAAmB;EAC1B;CACF,CACF;AACF"}
1
+ {"version":3,"file":"useInteractableState.js","names":["useCallback","useAui","useAuiState","StateUpdater","TState","prev","useInteractableState","id","fallback","$","_c","aui","state","s","interactables","definitions","t0","s_0","persistence","persistenceStatus","t1","updater","setState","t2","selected","setSelected","t3","flush","t4","isPending","t5","error","t6","t7"],"sources":["../../../src/react/model-context/useInteractableState.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\ntype StateUpdater<TState> = TState | ((prev: TState) => TState);\n\n/**\n * Reads and writes the state of a registered interactable.\n *\n * Pair with {@link useAssistantInteractable} which handles registration.\n */\nexport const useInteractableState = <TState>(\n id: string,\n fallback: TState,\n): [\n TState,\n {\n setState: (updater: StateUpdater<TState>) => void;\n setSelected: (selected: boolean) => void;\n isPending: boolean;\n error: unknown;\n flush: () => Promise<void>;\n },\n] => {\n const aui = useAui();\n\n const state =\n (useAuiState((s) => s.interactables.definitions[id]?.state) as TState) ??\n (fallback as TState);\n\n const persistenceStatus = useAuiState((s) => s.interactables.persistence[id]);\n\n const setState = useCallback(\n (updater: StateUpdater<TState>) => {\n aui.interactables().setState(id, (prev) => {\n if (typeof updater === \"function\") {\n return (updater as (prev: TState) => TState)(prev as TState);\n }\n return updater;\n });\n },\n [aui, id],\n );\n\n const setSelected = useCallback(\n (selected: boolean) => {\n aui.interactables().setSelected(id, selected);\n },\n [aui, id],\n );\n\n const flush = useCallback(() => aui.interactables().flush(), [aui]);\n\n return [\n state,\n {\n setState,\n setSelected,\n isPending: persistenceStatus?.isPending ?? false,\n error: persistenceStatus?.error,\n flush,\n },\n ];\n};\n"],"mappings":";;;;;;;;AAUA,MAAaM,wBAAuBC,IAAAC,aAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAalC,MAAAC,MAAYV,OAAO;CAEnB,MAAAW,QACGV,aAAYW,MAAOA,EAACC,cAAcC,YAAaR,GAAU,EAAAK,KAAA,KACzDJ;CAAoB,IAAAQ;CAAA,IAAAP,EAAA,OAAAF,IAAA;EAEeS,MAAAC,QAAOJ,IAACC,cAAcI,YAAaX;EAAGE,EAAA,KAAAF;EAAAE,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAA5E,MAAAU,oBAA0BjB,YAAYc,EAAsC;CAAE,IAAAI;CAAA,IAAAX,EAAA,OAAAE,OAAAF,EAAA,OAAAF,IAAA;EAG5Ea,MAAAC,YAAA;GACEV,IAAGG,cAAe,CAAC,CAAAQ,SAAUf,KAAIF,SAAA;IAC/B,IAAI,OAAOgB,YAAY,YAAU,OACvBA,QAAqChB,IAAc;IAC5D,OACMgB;GAAO,CACf;EAAC;EACHZ,EAAA,KAAAE;EAAAF,EAAA,KAAAF;EAAAE,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CARH,MAAAa,WAAiBF;CAUf,IAAAG;CAAA,IAAAd,EAAA,OAAAE,OAAAF,EAAA,OAAAF,IAAA;EAGAgB,MAAAC,aAAA;GACEb,IAAGG,cAAe,CAAC,CAAAW,YAAalB,IAAIiB,QAAQ;EAAC;EAC9Cf,EAAA,KAAAE;EAAAF,EAAA,KAAAF;EAAAE,EAAA,KAAAc;CAAA,OAAAA,KAAAd,EAAA;CAHH,MAAAgB,cAAoBF;CAKlB,IAAAG;CAAA,IAAAjB,EAAA,OAAAE,KAAA;EAEwBe,WAAMf,IAAGG,cAAe,CAAC,CAAAa,MAAO;EAAClB,EAAA,KAAAE;EAAAF,EAAA,KAAAiB;CAAA,OAAAA,KAAAjB,EAAA;CAA3D,MAAAkB,QAAcD;CAOC,MAAAE,KAAAT,mBAAiBU,aAAjB;CACJ,MAAAC,KAAAX,mBAAiBY;CAAO,IAAAC;CAAA,IAAAvB,EAAA,QAAAkB,SAAAlB,EAAA,QAAAgB,eAAAhB,EAAA,QAAAa,YAAAb,EAAA,QAAAmB,MAAAnB,EAAA,QAAAqB,IAAA;EAJjCE,KAAA;GAAAV;GAAAG;GAAAI,WAGaD;GAAqCG,OACzCD;GAAwBH;EAEjC;EAAClB,EAAA,MAAAkB;EAAAlB,EAAA,MAAAgB;EAAAhB,EAAA,MAAAa;EAAAb,EAAA,MAAAmB;EAAAnB,EAAA,MAAAqB;EAAArB,EAAA,MAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CAAA,IAAAwB;CAAA,IAAAxB,EAAA,QAAAG,SAAAH,EAAA,QAAAuB,IAAA;EARIC,KAAA,CACLrB,OACAoB,EAMC;EACFvB,EAAA,MAAAG;EAAAH,EAAA,MAAAuB;EAAAvB,EAAA,MAAAwB;CAAA,OAAAA,KAAAxB,EAAA;CAAA,OATMwB;AASN"}
@@ -1,6 +1,6 @@
1
1
  import { getPartialJsonObjectFieldState, getPartialJsonObjectMeta } from "assistant-stream/utils";
2
- import { useMemo } from "@assistant-ui/tap/react-shim";
3
2
  import { useAuiState } from "@assistant-ui/store";
3
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
4
4
  //#region src/react/model-context/useToolArgsStatus.ts
5
5
  /**
6
6
  * Reads whether each argument field for the current tool-call message part is
@@ -27,22 +27,50 @@ import { useAuiState } from "@assistant-ui/store";
27
27
  * ```
28
28
  */
29
29
  const useToolArgsStatus = () => {
30
- const part = useAuiState((s) => s.part);
31
- return useMemo(() => {
32
- const statusType = part.status.type;
33
- if (part.type !== "tool-call") throw new Error("useToolArgsStatus can only be used inside tool-call message parts");
34
- const isStreaming = statusType === "running";
35
- const args = part.args;
36
- const meta = getPartialJsonObjectMeta(args);
37
- const propStatus = {};
38
- for (const key of Object.keys(args)) if (meta) propStatus[key] = getPartialJsonObjectFieldState(args, [key]) === "complete" || !isStreaming ? "complete" : "streaming";
39
- else propStatus[key] = isStreaming ? "streaming" : "complete";
40
- return {
30
+ const $ = c(9);
31
+ const part = useAuiState(_temp);
32
+ let t0;
33
+ const statusType = part.status.type;
34
+ if (part.type !== "tool-call") throw new Error("useToolArgsStatus can only be used inside tool-call message parts");
35
+ const isStreaming = statusType === "running";
36
+ const args = part.args;
37
+ const t1 = args;
38
+ let t2;
39
+ if ($[0] !== t1) {
40
+ t2 = getPartialJsonObjectMeta(t1);
41
+ $[0] = t1;
42
+ $[1] = t2;
43
+ } else t2 = $[1];
44
+ const meta = t2;
45
+ let propStatus;
46
+ if ($[2] !== args || $[3] !== isStreaming || $[4] !== meta) {
47
+ propStatus = {};
48
+ for (const key of Object.keys(args)) if (meta) {
49
+ const fieldState = getPartialJsonObjectFieldState(args, [key]);
50
+ propStatus[key] = fieldState === "complete" || !isStreaming ? "complete" : "streaming";
51
+ } else propStatus[key] = isStreaming ? "streaming" : "complete";
52
+ $[2] = args;
53
+ $[3] = isStreaming;
54
+ $[4] = meta;
55
+ $[5] = propStatus;
56
+ } else propStatus = $[5];
57
+ const t3 = propStatus;
58
+ let t4;
59
+ if ($[6] !== statusType || $[7] !== t3) {
60
+ t4 = {
41
61
  status: statusType,
42
- propStatus
62
+ propStatus: t3
43
63
  };
44
- }, [part]);
64
+ $[6] = statusType;
65
+ $[7] = t3;
66
+ $[8] = t4;
67
+ } else t4 = $[8];
68
+ t0 = t4;
69
+ return t0;
45
70
  };
71
+ function _temp(s) {
72
+ return s.part;
73
+ }
46
74
  //#endregion
47
75
  export { useToolArgsStatus };
48
76
 
@@ -1 +1 @@
1
- {"version":3,"file":"useToolArgsStatus.js","names":[],"sources":["../../../src/react/model-context/useToolArgsStatus.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport {\n getPartialJsonObjectFieldState,\n getPartialJsonObjectMeta,\n} from \"assistant-stream/utils\";\n\ntype PropFieldStatus = \"streaming\" | \"complete\";\n\n/**\n * Streaming completion status for the arguments of the current tool call.\n */\nexport type ToolArgsStatus<\n TArgs extends Record<string, unknown> = Record<string, unknown>,\n> = {\n /** Overall lifecycle state of the tool-call part. */\n status: \"running\" | \"complete\" | \"incomplete\" | \"requires-action\";\n /** Per-argument status keyed by argument name. */\n propStatus: Partial<Record<keyof TArgs, PropFieldStatus>>;\n};\n\n/**\n * Reads whether each argument field for the current tool-call message part is\n * still streaming or complete.\n *\n * Use inside a tool-call renderer to avoid showing incomplete argument values\n * as final.\n *\n * @throws If called outside a tool-call message part.\n *\n * @example\n * ```tsx\n * function WeatherToolUI({\n * args,\n * }: ToolCallMessagePartProps<{ city: string }>) {\n * const { propStatus } = useToolArgsStatus<{ city: string }>();\n *\n * return (\n * <span>\n * {propStatus.city === \"streaming\" ? \"Reading city...\" : args.city}\n * </span>\n * );\n * }\n * ```\n */\nexport const useToolArgsStatus = <\n TArgs extends Record<string, unknown> = Record<string, unknown>,\n>(): ToolArgsStatus<TArgs> => {\n const part = useAuiState((s) => s.part);\n\n return useMemo(() => {\n const statusType = part.status.type;\n\n if (part.type !== \"tool-call\") {\n throw new Error(\n \"useToolArgsStatus can only be used inside tool-call message parts\",\n );\n }\n\n const isStreaming = statusType === \"running\";\n const args = part.args as Record<string, unknown>;\n const meta = getPartialJsonObjectMeta(args as Record<symbol, unknown>);\n const propStatus: Partial<Record<string, PropFieldStatus>> = {};\n\n for (const key of Object.keys(args)) {\n if (meta) {\n const fieldState = getPartialJsonObjectFieldState(args, [key]);\n propStatus[key] =\n fieldState === \"complete\" || !isStreaming ? \"complete\" : \"streaming\";\n } else {\n propStatus[key] = isStreaming ? \"streaming\" : \"complete\";\n }\n }\n\n return {\n status: statusType,\n propStatus: propStatus as Partial<Record<keyof TArgs, PropFieldStatus>>,\n };\n }, [part]);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAa,0BAEiB;CAC5B,MAAM,OAAO,aAAa,MAAM,EAAE,IAAI;CAEtC,OAAO,cAAc;EACnB,MAAM,aAAa,KAAK,OAAO;EAE/B,IAAI,KAAK,SAAS,aAChB,MAAM,IAAI,MACR,mEACF;EAGF,MAAM,cAAc,eAAe;EACnC,MAAM,OAAO,KAAK;EAClB,MAAM,OAAO,yBAAyB,IAA+B;EACrE,MAAM,aAAuD,CAAC;EAE9D,KAAK,MAAM,OAAO,OAAO,KAAK,IAAI,GAChC,IAAI,MAEF,WAAW,OADQ,+BAA+B,MAAM,CAAC,GAAG,CAEjD,MAAM,cAAc,CAAC,cAAc,aAAa;OAE3D,WAAW,OAAO,cAAc,cAAc;EAIlD,OAAO;GACL,QAAQ;GACI;EACd;CACF,GAAG,CAAC,IAAI,CAAC;AACX"}
1
+ {"version":3,"file":"useToolArgsStatus.js","names":["useMemo","useAuiState","getPartialJsonObjectFieldState","getPartialJsonObjectMeta","PropFieldStatus","ToolArgsStatus","Record","status","propStatus","Partial","TArgs","useToolArgsStatus","$","_c","part","_temp","t0","statusType","type","Error","isStreaming","args","t1","t2","meta","key","Object","keys","fieldState","t3","t4","s"],"sources":["../../../src/react/model-context/useToolArgsStatus.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport {\n getPartialJsonObjectFieldState,\n getPartialJsonObjectMeta,\n} from \"assistant-stream/utils\";\n\ntype PropFieldStatus = \"streaming\" | \"complete\";\n\n/**\n * Streaming completion status for the arguments of the current tool call.\n */\nexport type ToolArgsStatus<\n TArgs extends Record<string, unknown> = Record<string, unknown>,\n> = {\n /** Overall lifecycle state of the tool-call part. */\n status: \"running\" | \"complete\" | \"incomplete\" | \"requires-action\";\n /** Per-argument status keyed by argument name. */\n propStatus: Partial<Record<keyof TArgs, PropFieldStatus>>;\n};\n\n/**\n * Reads whether each argument field for the current tool-call message part is\n * still streaming or complete.\n *\n * Use inside a tool-call renderer to avoid showing incomplete argument values\n * as final.\n *\n * @throws If called outside a tool-call message part.\n *\n * @example\n * ```tsx\n * function WeatherToolUI({\n * args,\n * }: ToolCallMessagePartProps<{ city: string }>) {\n * const { propStatus } = useToolArgsStatus<{ city: string }>();\n *\n * return (\n * <span>\n * {propStatus.city === \"streaming\" ? \"Reading city...\" : args.city}\n * </span>\n * );\n * }\n * ```\n */\nexport const useToolArgsStatus = <\n TArgs extends Record<string, unknown> = Record<string, unknown>,\n>(): ToolArgsStatus<TArgs> => {\n const part = useAuiState((s) => s.part);\n\n return useMemo(() => {\n const statusType = part.status.type;\n\n if (part.type !== \"tool-call\") {\n throw new Error(\n \"useToolArgsStatus can only be used inside tool-call message parts\",\n );\n }\n\n const isStreaming = statusType === \"running\";\n const args = part.args as Record<string, unknown>;\n const meta = getPartialJsonObjectMeta(args as Record<symbol, unknown>);\n const propStatus: Partial<Record<string, PropFieldStatus>> = {};\n\n for (const key of Object.keys(args)) {\n if (meta) {\n const fieldState = getPartialJsonObjectFieldState(args, [key]);\n propStatus[key] =\n fieldState === \"complete\" || !isStreaming ? \"complete\" : \"streaming\";\n } else {\n propStatus[key] = isStreaming ? \"streaming\" : \"complete\";\n }\n }\n\n return {\n status: statusType,\n propStatus: propStatus as Partial<Record<keyof TArgs, PropFieldStatus>>,\n };\n }, [part]);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAaW,0BAAoB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAG/B,MAAAC,OAAab,YAAYc,KAAa;CAAE,IAAAC;CAGtC,MAAAC,aAAmBH,KAAIP,OAAOW;CAE9B,IAAIJ,KAAII,SAAU,aAChB,MAAM,IAAIC,MACR,mEACF;CAGF,MAAAC,cAAoBH,eAAe;CACnC,MAAAI,OAAaP,KAAIO;CACqB,MAAAC,KAAAD;CAA+B,IAAAE;CAAA,IAAAX,EAAA,OAAAU,IAAA;EAAxDC,KAAApB,yBAAyBmB,EAA+B;EAACV,EAAA,KAAAU;EAAAV,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAtE,MAAAY,OAAaD;CAA0D,IAAAf;CAAA,IAAAI,EAAA,OAAAS,QAAAT,EAAA,OAAAQ,eAAAR,EAAA,OAAAY,MAAA;EACvEhB,aAA6D,CAAC;EAE9D,KAAK,MAAAiB,OAAaC,OAAMC,KAAMN,IAAI,GAChC,IAAIG,MAAI;GACN,MAAAI,aAAmB1B,+BAA+BmB,MAAM,CAACI,GAAG,CAAC;GAC7DjB,WAAWiB,OACTG,eAAe,cAAf,CAA8BR,cAA9B,aAAA;EADa,OAGfZ,WAAWiB,OAAOL,cAAA,cAAA;EAErBR,EAAA,KAAAS;EAAAT,EAAA,KAAAQ;EAAAR,EAAA,KAAAY;EAAAZ,EAAA,KAAAJ;CAAA,OAAAA,aAAAI,EAAA;CAIa,MAAAiB,KAAArB;CAA2D,IAAAsB;CAAA,IAAAlB,EAAA,OAAAK,cAAAL,EAAA,OAAAiB,IAAA;EAFlEC,KAAA;GAAAvB,QACGU;GAAUT,YACNqB;EACd;EAACjB,EAAA,KAAAK;EAAAL,EAAA,KAAAiB;EAAAjB,EAAA,KAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CAHDI,KAAOc;CAGL,OA3BGd;AA4BG;AAjCqB,SAAAD,MAAAgB,GAAA;CAAA,OAGCA,EAACjB;AAAK"}
@@ -1,34 +1,71 @@
1
- import { useCallback } from "@assistant-ui/tap/react-shim";
2
1
  import { useAui, useAuiState } from "@assistant-ui/store";
2
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
3
3
  //#region src/react/primitive-hooks/useActionBarCopy.ts
4
- const useActionBarCopy = ({ copiedDuration = 3e3, copyToClipboard } = {}) => {
4
+ const useActionBarCopy = (t0) => {
5
+ const $ = c(12);
6
+ let t1;
7
+ if ($[0] !== t0) {
8
+ t1 = t0 === void 0 ? {} : t0;
9
+ $[0] = t0;
10
+ $[1] = t1;
11
+ } else t1 = $[1];
12
+ const { copiedDuration: t2, copyToClipboard } = t1;
13
+ const copiedDuration = t2 === void 0 ? 3e3 : t2;
5
14
  const aui = useAui();
6
- const disabled = useAuiState((s) => {
7
- return !((s.message.role !== "assistant" || s.message.status?.type !== "running") && s.message.parts.some((c) => c.type === "text" && c.text.length > 0));
8
- });
9
- const isCopied = useAuiState((s) => s.message.isCopied);
10
- const isEditing = useAuiState((s) => s.composer.isEditing);
11
- const composerValue = useAuiState((s) => s.composer.text);
12
- return {
13
- copy: useCallback(() => {
15
+ const disabled = useAuiState(_temp2);
16
+ const isCopied = useAuiState(_temp3);
17
+ const isEditing = useAuiState(_temp4);
18
+ const composerValue = useAuiState(_temp5);
19
+ let t3;
20
+ if ($[2] !== aui || $[3] !== composerValue || $[4] !== copiedDuration || $[5] !== copyToClipboard || $[6] !== isEditing) {
21
+ t3 = () => {
14
22
  const valueToCopy = isEditing ? composerValue : aui.message().getCopyText();
15
23
  if (!valueToCopy) return;
16
- const write = copyToClipboard ?? (() => {});
24
+ const write = copyToClipboard ?? _temp6;
17
25
  Promise.resolve(write(valueToCopy)).then(() => {
18
26
  aui.message().setIsCopied(true);
19
27
  setTimeout(() => aui.message().setIsCopied(false), copiedDuration);
20
- }, () => {});
21
- }, [
22
- aui,
23
- isEditing,
24
- composerValue,
25
- copiedDuration,
26
- copyToClipboard
27
- ]),
28
- disabled,
29
- isCopied
30
- };
28
+ }, _temp7);
29
+ };
30
+ $[2] = aui;
31
+ $[3] = composerValue;
32
+ $[4] = copiedDuration;
33
+ $[5] = copyToClipboard;
34
+ $[6] = isEditing;
35
+ $[7] = t3;
36
+ } else t3 = $[7];
37
+ const copy = t3;
38
+ let t4;
39
+ if ($[8] !== copy || $[9] !== disabled || $[10] !== isCopied) {
40
+ t4 = {
41
+ copy,
42
+ disabled,
43
+ isCopied
44
+ };
45
+ $[8] = copy;
46
+ $[9] = disabled;
47
+ $[10] = isCopied;
48
+ $[11] = t4;
49
+ } else t4 = $[11];
50
+ return t4;
31
51
  };
52
+ function _temp(c) {
53
+ return c.type === "text" && c.text.length > 0;
54
+ }
55
+ function _temp2(s) {
56
+ return !((s.message.role !== "assistant" || s.message.status?.type !== "running") && s.message.parts.some(_temp));
57
+ }
58
+ function _temp3(s_0) {
59
+ return s_0.message.isCopied;
60
+ }
61
+ function _temp4(s_1) {
62
+ return s_1.composer.isEditing;
63
+ }
64
+ function _temp5(s_2) {
65
+ return s_2.composer.text;
66
+ }
67
+ function _temp6() {}
68
+ function _temp7() {}
32
69
  //#endregion
33
70
  export { useActionBarCopy };
34
71
 
@@ -1 +1 @@
1
- {"version":3,"file":"useActionBarCopy.js","names":[],"sources":["../../../src/react/primitive-hooks/useActionBarCopy.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport type UseActionBarCopyOptions = {\n copiedDuration?: number | undefined;\n copyToClipboard?: ((text: string) => void | Promise<void>) | undefined;\n};\n\nexport const useActionBarCopy = ({\n copiedDuration = 3000,\n copyToClipboard,\n}: UseActionBarCopyOptions = {}) => {\n const aui = useAui();\n const disabled = useAuiState((s) => {\n return !(\n (s.message.role !== \"assistant\" ||\n s.message.status?.type !== \"running\") &&\n s.message.parts.some((c) => c.type === \"text\" && c.text.length > 0)\n );\n });\n const isCopied = useAuiState((s) => s.message.isCopied);\n const isEditing = useAuiState((s) => s.composer.isEditing);\n const composerValue = useAuiState((s) => s.composer.text);\n\n const copy = useCallback(() => {\n const valueToCopy = isEditing ? composerValue : aui.message().getCopyText();\n if (!valueToCopy) return;\n\n const write = copyToClipboard ?? (() => {});\n // The rejection handler swallows clipboard write failures (permission denied,\n // API unavailable) so they don't surface as unhandled promise rejections.\n Promise.resolve(write(valueToCopy)).then(\n () => {\n aui.message().setIsCopied(true);\n setTimeout(() => aui.message().setIsCopied(false), copiedDuration);\n },\n () => {},\n );\n }, [aui, isEditing, composerValue, copiedDuration, copyToClipboard]);\n\n return { copy, disabled, isCopied };\n};\n"],"mappings":";;;AAQA,MAAa,oBAAoB,EAC/B,iBAAiB,KACjB,oBAC2B,CAAC,MAAM;CAClC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM;EAClC,OAAO,GACJ,EAAE,QAAQ,SAAS,eAClB,EAAE,QAAQ,QAAQ,SAAS,cAC7B,EAAE,QAAQ,MAAM,MAAM,MAAM,EAAE,SAAS,UAAU,EAAE,KAAK,SAAS,CAAC;CAEtE,CAAC;CACD,MAAM,WAAW,aAAa,MAAM,EAAE,QAAQ,QAAQ;CACtD,MAAM,YAAY,aAAa,MAAM,EAAE,SAAS,SAAS;CACzD,MAAM,gBAAgB,aAAa,MAAM,EAAE,SAAS,IAAI;CAkBxD,OAAO;EAAE,MAhBI,kBAAkB;GAC7B,MAAM,cAAc,YAAY,gBAAgB,IAAI,QAAQ,CAAC,CAAC,YAAY;GAC1E,IAAI,CAAC,aAAa;GAElB,MAAM,QAAQ,0BAA0B,CAAC;GAGzC,QAAQ,QAAQ,MAAM,WAAW,CAAC,CAAC,CAAC,WAC5B;IACJ,IAAI,QAAQ,CAAC,CAAC,YAAY,IAAI;IAC9B,iBAAiB,IAAI,QAAQ,CAAC,CAAC,YAAY,KAAK,GAAG,cAAc;GACnE,SACM,CAAC,CACT;EACF,GAAG;GAAC;GAAK;GAAW;GAAe;GAAgB;EAAe,CAEtD;EAAG;EAAU;CAAS;AACpC"}
1
+ {"version":3,"file":"useActionBarCopy.js","names":["useCallback","useAui","useAuiState","UseActionBarCopyOptions","copiedDuration","copyToClipboard","text","Promise","useActionBarCopy","t0","$","_c","t1","undefined","t2","aui","disabled","_temp2","isCopied","_temp3","isEditing","_temp4","composerValue","_temp5","t3","valueToCopy","message","getCopyText","write","_temp6","resolve","then","setIsCopied","setTimeout","_temp7","copy","t4","_temp","c","type","length","s","role","status","parts","some","s_0","s_1","composer","s_2"],"sources":["../../../src/react/primitive-hooks/useActionBarCopy.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport type UseActionBarCopyOptions = {\n copiedDuration?: number | undefined;\n copyToClipboard?: ((text: string) => void | Promise<void>) | undefined;\n};\n\nexport const useActionBarCopy = ({\n copiedDuration = 3000,\n copyToClipboard,\n}: UseActionBarCopyOptions = {}) => {\n const aui = useAui();\n const disabled = useAuiState((s) => {\n return !(\n (s.message.role !== \"assistant\" ||\n s.message.status?.type !== \"running\") &&\n s.message.parts.some((c) => c.type === \"text\" && c.text.length > 0)\n );\n });\n const isCopied = useAuiState((s) => s.message.isCopied);\n const isEditing = useAuiState((s) => s.composer.isEditing);\n const composerValue = useAuiState((s) => s.composer.text);\n\n const copy = useCallback(() => {\n const valueToCopy = isEditing ? composerValue : aui.message().getCopyText();\n if (!valueToCopy) return;\n\n const write = copyToClipboard ?? (() => {});\n // The rejection handler swallows clipboard write failures (permission denied,\n // API unavailable) so they don't surface as unhandled promise rejections.\n Promise.resolve(write(valueToCopy)).then(\n () => {\n aui.message().setIsCopied(true);\n setTimeout(() => aui.message().setIsCopied(false), copiedDuration);\n },\n () => {},\n );\n }, [aui, isEditing, composerValue, copiedDuration, copyToClipboard]);\n\n return { copy, disabled, isCopied };\n};\n"],"mappings":";;;AAQA,MAAaQ,oBAAmBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAACG,KAAAH,OAAAI,KAAAA,IAAA,CAGH,IAHGJ;EAGFC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAHE,MAAA,EAAAN,gBAAAU,IAAAT,oBAAAO;CAC/B,MAAAR,iBAAAU,OAAAD,KAAAA,IAAA,MAAAC;CAGA,MAAAC,MAAYd,OAAO;CACnB,MAAAe,WAAiBd,YAAYe,MAM5B;CACD,MAAAC,WAAiBhB,YAAYiB,MAAyB;CACtD,MAAAC,YAAkBlB,YAAYmB,MAA2B;CACzD,MAAAC,gBAAsBpB,YAAYqB,MAAsB;CAAE,IAAAC;CAAA,IAAAd,EAAA,OAAAK,OAAAL,EAAA,OAAAY,iBAAAZ,EAAA,OAAAN,kBAAAM,EAAA,OAAAL,mBAAAK,EAAA,OAAAU,WAAA;EAEjCI,WAAA;GACvB,MAAAC,cAAoBL,YAAAE,gBAA4BP,IAAGW,QAAS,CAAC,CAAAC,YAAa;GAC1E,IAAI,CAACF,aAAW;GAEhB,MAAAG,QAAcvB,mBAAAwB;GAGdtB,QAAOuB,QAASF,MAAMH,WAAW,CAAC,CAAC,CAAAM,WACjC;IACEhB,IAAGW,QAAS,CAAC,CAAAM,YAAa,IAAI;IAC9BC,iBAAiBlB,IAAGW,QAAS,CAAC,CAAAM,YAAa,KAAK,GAAG5B,cAAc;GAAC,GAEpE8B,MACF;EAAC;EACFxB,EAAA,KAAAK;EAAAL,EAAA,KAAAY;EAAAZ,EAAA,KAAAN;EAAAM,EAAA,KAAAL;EAAAK,EAAA,KAAAU;EAAAV,EAAA,KAAAc;CAAA,OAAAA,KAAAd,EAAA;CAdD,MAAAyB,OAAaX;CAcwD,IAAAY;CAAA,IAAA1B,EAAA,OAAAyB,QAAAzB,EAAA,OAAAM,YAAAN,EAAA,QAAAQ,UAAA;EAE9DkB,KAAA;GAAAD;GAAAnB;GAAAE;EAA2B;EAACR,EAAA,KAAAyB;EAAAzB,EAAA,KAAAM;EAAAN,EAAA,MAAAQ;EAAAR,EAAA,MAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAAA,OAA5B0B;AAA4B;AAhCL,SAAAC,MAAAC,GAAA;CAAA,OASEA,EAACC,SAAU,UAAUD,EAAChC,KAAKkC,SAAU;AAAC;AATxC,SAAAvB,OAAAwB,GAAA;CAAA,OAMrB,GACJA,EAACf,QAAQgB,SAAU,eAClBD,EAACf,QAAQiB,QAAaJ,SAAK,cAC7BE,EAACf,QAAQkB,MAAMC,KAAMR,KAA6C;AACnE;AAV2B,SAAAlB,OAAA2B,KAAA;CAAA,OAYML,IAACf,QAAQR;AAAS;AAZxB,SAAAG,OAAA0B,KAAA;CAAA,OAaON,IAACO,SAAS5B;AAAU;AAb3B,SAAAG,OAAA0B,KAAA;CAAA,OAcWR,IAACO,SAAS1C;AAAK;AAd1B,SAAAuB,SAAA,CAAA;AAAA,SAAAK,SAAA,CAAA"}
@@ -1,16 +1,34 @@
1
- import { useCallback } from "@assistant-ui/tap/react-shim";
2
1
  import { useAui, useAuiState } from "@assistant-ui/store";
2
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
3
3
  //#region src/react/primitive-hooks/useActionBarEdit.ts
4
4
  const useActionBarEdit = () => {
5
+ const $ = c(5);
5
6
  const aui = useAui();
6
- const disabled = useAuiState((s) => s.composer.isEditing);
7
- return {
8
- edit: useCallback(() => {
7
+ const disabled = useAuiState(_temp);
8
+ let t0;
9
+ if ($[0] !== aui) {
10
+ t0 = () => {
9
11
  aui.composer().beginEdit();
10
- }, [aui]),
11
- disabled
12
- };
12
+ };
13
+ $[0] = aui;
14
+ $[1] = t0;
15
+ } else t0 = $[1];
16
+ const edit = t0;
17
+ let t1;
18
+ if ($[2] !== disabled || $[3] !== edit) {
19
+ t1 = {
20
+ edit,
21
+ disabled
22
+ };
23
+ $[2] = disabled;
24
+ $[3] = edit;
25
+ $[4] = t1;
26
+ } else t1 = $[4];
27
+ return t1;
13
28
  };
29
+ function _temp(s) {
30
+ return s.composer.isEditing;
31
+ }
14
32
  //#endregion
15
33
  export { useActionBarEdit };
16
34
 
@@ -1 +1 @@
1
- {"version":3,"file":"useActionBarEdit.js","names":[],"sources":["../../../src/react/primitive-hooks/useActionBarEdit.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarEdit = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.composer.isEditing);\n\n const edit = useCallback(() => {\n aui.composer().beginEdit();\n }, [aui]);\n\n return { edit, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,yBAAyB;CACpC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM,EAAE,SAAS,SAAS;CAMxD,OAAO;EAAE,MAJI,kBAAkB;GAC7B,IAAI,SAAS,CAAC,CAAC,UAAU;EAC3B,GAAG,CAAC,GAAG,CAEK;EAAG;CAAS;AAC1B"}
1
+ {"version":3,"file":"useActionBarEdit.js","names":["useCallback","useAui","useAuiState","useActionBarEdit","$","_c","aui","disabled","_temp","t0","composer","beginEdit","edit","t1","s","isEditing"],"sources":["../../../src/react/primitive-hooks/useActionBarEdit.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarEdit = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.composer.isEditing);\n\n const edit = useCallback(() => {\n aui.composer().beginEdit();\n }, [aui]);\n\n return { edit, disabled };\n};\n"],"mappings":";;;AAGA,MAAaG,yBAAmB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAC9B,MAAAC,MAAYL,OAAO;CACnB,MAAAM,WAAiBL,YAAYM,KAA2B;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEjCG,WAAA;GACvBH,IAAGI,SAAU,CAAC,CAAAC,UAAW;EAAC;EAC3BP,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAQ,OAAaH;CAEH,IAAAI;CAAA,IAAAT,EAAA,OAAAG,YAAAH,EAAA,OAAAQ,MAAA;EAEHC,KAAA;GAAAD;GAAAL;EAAiB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAQ;EAAAR,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,OAAlBS;AAAkB;AARK,SAAAL,MAAAM,GAAA;CAAA,OAEMA,EAACJ,SAASK;AAAU"}
@@ -1,26 +1,62 @@
1
- import { useCallback } from "@assistant-ui/tap/react-shim";
2
1
  import { useAui, useAuiState } from "@assistant-ui/store";
2
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
3
3
  //#region src/react/primitive-hooks/useActionBarFeedback.ts
4
4
  const useActionBarFeedbackPositive = () => {
5
+ const $ = c(5);
5
6
  const aui = useAui();
6
- const isSubmitted = useAuiState((s) => s.message.metadata.submittedFeedback?.type === "positive");
7
- return {
8
- submit: useCallback(() => {
7
+ const isSubmitted = useAuiState(_temp);
8
+ let t0;
9
+ if ($[0] !== aui) {
10
+ t0 = () => {
9
11
  aui.message().submitFeedback({ type: "positive" });
10
- }, [aui]),
11
- isSubmitted
12
- };
12
+ };
13
+ $[0] = aui;
14
+ $[1] = t0;
15
+ } else t0 = $[1];
16
+ const submit = t0;
17
+ let t1;
18
+ if ($[2] !== isSubmitted || $[3] !== submit) {
19
+ t1 = {
20
+ submit,
21
+ isSubmitted
22
+ };
23
+ $[2] = isSubmitted;
24
+ $[3] = submit;
25
+ $[4] = t1;
26
+ } else t1 = $[4];
27
+ return t1;
13
28
  };
14
29
  const useActionBarFeedbackNegative = () => {
30
+ const $ = c(5);
15
31
  const aui = useAui();
16
- const isSubmitted = useAuiState((s) => s.message.metadata.submittedFeedback?.type === "negative");
17
- return {
18
- submit: useCallback(() => {
32
+ const isSubmitted = useAuiState(_temp2);
33
+ let t0;
34
+ if ($[0] !== aui) {
35
+ t0 = () => {
19
36
  aui.message().submitFeedback({ type: "negative" });
20
- }, [aui]),
21
- isSubmitted
22
- };
37
+ };
38
+ $[0] = aui;
39
+ $[1] = t0;
40
+ } else t0 = $[1];
41
+ const submit = t0;
42
+ let t1;
43
+ if ($[2] !== isSubmitted || $[3] !== submit) {
44
+ t1 = {
45
+ submit,
46
+ isSubmitted
47
+ };
48
+ $[2] = isSubmitted;
49
+ $[3] = submit;
50
+ $[4] = t1;
51
+ } else t1 = $[4];
52
+ return t1;
23
53
  };
54
+ function _temp(s) {
55
+ return s.message.metadata.submittedFeedback?.type === "positive";
56
+ }
57
+ function _temp2(s) {
58
+ return s.message.metadata.submittedFeedback?.type === "negative";
59
+ }
24
60
  //#endregion
25
61
  export { useActionBarFeedbackNegative, useActionBarFeedbackPositive };
26
62
 
@@ -1 +1 @@
1
- {"version":3,"file":"useActionBarFeedback.js","names":[],"sources":["../../../src/react/primitive-hooks/useActionBarFeedback.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarFeedbackPositive = () => {\n const aui = useAui();\n const isSubmitted = useAuiState(\n (s) => s.message.metadata.submittedFeedback?.type === \"positive\",\n );\n\n const submit = useCallback(() => {\n aui.message().submitFeedback({ type: \"positive\" });\n }, [aui]);\n\n return { submit, isSubmitted };\n};\n\nexport const useActionBarFeedbackNegative = () => {\n const aui = useAui();\n const isSubmitted = useAuiState(\n (s) => s.message.metadata.submittedFeedback?.type === \"negative\",\n );\n\n const submit = useCallback(() => {\n aui.message().submitFeedback({ type: \"negative\" });\n }, [aui]);\n\n return { submit, isSubmitted };\n};\n"],"mappings":";;;AAGA,MAAa,qCAAqC;CAChD,MAAM,MAAM,OAAO;CACnB,MAAM,cAAc,aACjB,MAAM,EAAE,QAAQ,SAAS,mBAAmB,SAAS,UACxD;CAMA,OAAO;EAAE,QAJM,kBAAkB;GAC/B,IAAI,QAAQ,CAAC,CAAC,eAAe,EAAE,MAAM,WAAW,CAAC;EACnD,GAAG,CAAC,GAAG,CAEO;EAAG;CAAY;AAC/B;AAEA,MAAa,qCAAqC;CAChD,MAAM,MAAM,OAAO;CACnB,MAAM,cAAc,aACjB,MAAM,EAAE,QAAQ,SAAS,mBAAmB,SAAS,UACxD;CAMA,OAAO;EAAE,QAJM,kBAAkB;GAC/B,IAAI,QAAQ,CAAC,CAAC,eAAe,EAAE,MAAM,WAAW,CAAC;EACnD,GAAG,CAAC,GAAG,CAEO;EAAG;CAAY;AAC/B"}
1
+ {"version":3,"file":"useActionBarFeedback.js","names":["useCallback","useAui","useAuiState","useActionBarFeedbackPositive","$","_c","aui","isSubmitted","_temp","t0","message","submitFeedback","type","submit","t1","useActionBarFeedbackNegative","_temp2","s","metadata","submittedFeedback"],"sources":["../../../src/react/primitive-hooks/useActionBarFeedback.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarFeedbackPositive = () => {\n const aui = useAui();\n const isSubmitted = useAuiState(\n (s) => s.message.metadata.submittedFeedback?.type === \"positive\",\n );\n\n const submit = useCallback(() => {\n aui.message().submitFeedback({ type: \"positive\" });\n }, [aui]);\n\n return { submit, isSubmitted };\n};\n\nexport const useActionBarFeedbackNegative = () => {\n const aui = useAui();\n const isSubmitted = useAuiState(\n (s) => s.message.metadata.submittedFeedback?.type === \"negative\",\n );\n\n const submit = useCallback(() => {\n aui.message().submitFeedback({ type: \"negative\" });\n }, [aui]);\n\n return { submit, isSubmitted };\n};\n"],"mappings":";;;AAGA,MAAaG,qCAA+B;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAC1C,MAAAC,MAAYL,OAAO;CACnB,MAAAM,cAAoBL,YAClBM,KACF;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEyBG,WAAA;GACzBH,IAAGI,QAAS,CAAC,CAAAC,eAAgB,EAAAC,MAAQ,WAAW,CAAC;EAAC;EACnDR,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAS,SAAeJ;CAEL,IAAAK;CAAA,IAAAV,EAAA,OAAAG,eAAAH,EAAA,OAAAS,QAAA;EAEHC,KAAA;GAAAD;GAAAN;EAAsB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAS;EAAAT,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAAvBU;AAAuB;AAGhC,MAAaC,qCAA+B;CAAA,MAAAX,IAAAC,EAAA,CAAA;CAC1C,MAAAC,MAAYL,OAAO;CACnB,MAAAM,cAAoBL,YAClBc,MACF;CAAE,IAAAP;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEyBG,WAAA;GACzBH,IAAGI,QAAS,CAAC,CAAAC,eAAgB,EAAAC,MAAQ,WAAW,CAAC;EAAC;EACnDR,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAS,SAAeJ;CAEL,IAAAK;CAAA,IAAAV,EAAA,OAAAG,eAAAH,EAAA,OAAAS,QAAA;EAEHC,KAAA;GAAAD;GAAAN;EAAsB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAS;EAAAT,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAAvBU;AAAuB;AAvBY,SAAAN,MAAAS,GAAA;CAAA,OAGjCA,EAACP,QAAQQ,SAASC,mBAAwBP,SAAK;AAAU;AAUxB,SAAAI,OAAAC,GAAA;CAAA,OAGjCA,EAACP,QAAQQ,SAASC,mBAAwBP,SAAK;AAAU"}
@@ -1,16 +1,34 @@
1
- import { useCallback } from "@assistant-ui/tap/react-shim";
2
1
  import { useAui, useAuiState } from "@assistant-ui/store";
2
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
3
3
  //#region src/react/primitive-hooks/useActionBarReload.ts
4
4
  const useActionBarReload = () => {
5
+ const $ = c(5);
5
6
  const aui = useAui();
6
- const disabled = useAuiState((s) => s.thread.isRunning || s.thread.isDisabled || s.message.role !== "assistant");
7
- return {
8
- reload: useCallback(() => {
7
+ const disabled = useAuiState(_temp);
8
+ let t0;
9
+ if ($[0] !== aui) {
10
+ t0 = () => {
9
11
  aui.message().reload();
10
- }, [aui]),
11
- disabled
12
- };
12
+ };
13
+ $[0] = aui;
14
+ $[1] = t0;
15
+ } else t0 = $[1];
16
+ const reload = t0;
17
+ let t1;
18
+ if ($[2] !== disabled || $[3] !== reload) {
19
+ t1 = {
20
+ reload,
21
+ disabled
22
+ };
23
+ $[2] = disabled;
24
+ $[3] = reload;
25
+ $[4] = t1;
26
+ } else t1 = $[4];
27
+ return t1;
13
28
  };
29
+ function _temp(s) {
30
+ return s.thread.isRunning || s.thread.isDisabled || s.message.role !== "assistant";
31
+ }
14
32
  //#endregion
15
33
  export { useActionBarReload };
16
34
 
@@ -1 +1 @@
1
- {"version":3,"file":"useActionBarReload.js","names":[],"sources":["../../../src/react/primitive-hooks/useActionBarReload.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarReload = () => {\n const aui = useAui();\n const disabled = useAuiState(\n (s) =>\n s.thread.isRunning ||\n s.thread.isDisabled ||\n s.message.role !== \"assistant\",\n );\n\n const reload = useCallback(() => {\n aui.message().reload();\n }, [aui]);\n\n return { reload, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,2BAA2B;CACtC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aACd,MACC,EAAE,OAAO,aACT,EAAE,OAAO,cACT,EAAE,QAAQ,SAAS,WACvB;CAMA,OAAO;EAAE,QAJM,kBAAkB;GAC/B,IAAI,QAAQ,CAAC,CAAC,OAAO;EACvB,GAAG,CAAC,GAAG,CAEO;EAAG;CAAS;AAC5B"}
1
+ {"version":3,"file":"useActionBarReload.js","names":["useCallback","useAui","useAuiState","useActionBarReload","$","_c","aui","disabled","_temp","t0","message","reload","t1","s","thread","isRunning","isDisabled","role"],"sources":["../../../src/react/primitive-hooks/useActionBarReload.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarReload = () => {\n const aui = useAui();\n const disabled = useAuiState(\n (s) =>\n s.thread.isRunning ||\n s.thread.isDisabled ||\n s.message.role !== \"assistant\",\n );\n\n const reload = useCallback(() => {\n aui.message().reload();\n }, [aui]);\n\n return { reload, disabled };\n};\n"],"mappings":";;;AAGA,MAAaG,2BAAqB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAChC,MAAAC,MAAYL,OAAO;CACnB,MAAAM,WAAiBL,YACfM,KAIF;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEyBG,WAAA;GACzBH,IAAGI,QAAS,CAAC,CAAAC,OAAQ;EAAC;EACvBP,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAO,SAAeF;CAEL,IAAAG;CAAA,IAAAR,EAAA,OAAAG,YAAAH,EAAA,OAAAO,QAAA;EAEHC,KAAA;GAAAD;GAAAJ;EAAmB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAApBQ;AAAoB;AAbK,SAAAJ,MAAAK,GAAA;CAAA,OAI5BA,EAACC,OAAOC,aACRF,EAACC,OAAOE,cACRH,EAACH,QAAQO,SAAU;AAAW"}
@@ -1,18 +1,37 @@
1
- import { useCallback } from "@assistant-ui/tap/react-shim";
2
1
  import { useAui, useAuiState } from "@assistant-ui/store";
2
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
3
3
  //#region src/react/primitive-hooks/useActionBarSpeak.ts
4
4
  const useActionBarSpeak = () => {
5
+ const $ = c(5);
5
6
  const aui = useAui();
6
- const disabled = useAuiState((s) => {
7
- return !((s.message.role !== "assistant" || s.message.status?.type !== "running") && s.message.parts.some((c) => c.type === "text" && c.text.length > 0));
8
- });
9
- return {
10
- speak: useCallback(async () => {
7
+ const disabled = useAuiState(_temp2);
8
+ let t0;
9
+ if ($[0] !== aui) {
10
+ t0 = async () => {
11
11
  aui.message().speak();
12
- }, [aui]),
13
- disabled
14
- };
12
+ };
13
+ $[0] = aui;
14
+ $[1] = t0;
15
+ } else t0 = $[1];
16
+ const speak = t0;
17
+ let t1;
18
+ if ($[2] !== disabled || $[3] !== speak) {
19
+ t1 = {
20
+ speak,
21
+ disabled
22
+ };
23
+ $[2] = disabled;
24
+ $[3] = speak;
25
+ $[4] = t1;
26
+ } else t1 = $[4];
27
+ return t1;
15
28
  };
29
+ function _temp(c) {
30
+ return c.type === "text" && c.text.length > 0;
31
+ }
32
+ function _temp2(s) {
33
+ return !((s.message.role !== "assistant" || s.message.status?.type !== "running") && s.message.parts.some(_temp));
34
+ }
16
35
  //#endregion
17
36
  export { useActionBarSpeak };
18
37
 
@@ -1 +1 @@
1
- {"version":3,"file":"useActionBarSpeak.js","names":[],"sources":["../../../src/react/primitive-hooks/useActionBarSpeak.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarSpeak = () => {\n const aui = useAui();\n\n const disabled = useAuiState((s) => {\n return !(\n (s.message.role !== \"assistant\" ||\n s.message.status?.type !== \"running\") &&\n s.message.parts.some((c) => c.type === \"text\" && c.text.length > 0)\n );\n });\n\n const speak = useCallback(async () => {\n aui.message().speak();\n }, [aui]);\n\n return { speak, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,0BAA0B;CACrC,MAAM,MAAM,OAAO;CAEnB,MAAM,WAAW,aAAa,MAAM;EAClC,OAAO,GACJ,EAAE,QAAQ,SAAS,eAClB,EAAE,QAAQ,QAAQ,SAAS,cAC7B,EAAE,QAAQ,MAAM,MAAM,MAAM,EAAE,SAAS,UAAU,EAAE,KAAK,SAAS,CAAC;CAEtE,CAAC;CAMD,OAAO;EAAE,OAJK,YAAY,YAAY;GACpC,IAAI,QAAQ,CAAC,CAAC,MAAM;EACtB,GAAG,CAAC,GAAG,CAEM;EAAG;CAAS;AAC3B"}
1
+ {"version":3,"file":"useActionBarSpeak.js","names":["useCallback","useAui","useAuiState","useActionBarSpeak","$","_c","aui","disabled","_temp2","t0","message","speak","t1","_temp","c","type","text","length","s","role","status","parts","some"],"sources":["../../../src/react/primitive-hooks/useActionBarSpeak.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarSpeak = () => {\n const aui = useAui();\n\n const disabled = useAuiState((s) => {\n return !(\n (s.message.role !== \"assistant\" ||\n s.message.status?.type !== \"running\") &&\n s.message.parts.some((c) => c.type === \"text\" && c.text.length > 0)\n );\n });\n\n const speak = useCallback(async () => {\n aui.message().speak();\n }, [aui]);\n\n return { speak, disabled };\n};\n"],"mappings":";;;AAGA,MAAaG,0BAAoB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAC/B,MAAAC,MAAYL,OAAO;CAEnB,MAAAM,WAAiBL,YAAYM,MAM5B;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEuBG,KAAA,YAAA;GACxBH,IAAGI,QAAS,CAAC,CAAAC,MAAO;EAAC;EACtBP,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAO,QAAcF;CAEJ,IAAAG;CAAA,IAAAR,EAAA,OAAAG,YAAAH,EAAA,OAAAO,OAAA;EAEHC,KAAA;GAAAD;GAAAJ;EAAkB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAAnBQ;AAAmB;AAfK,SAAAC,MAAAC,GAAA;CAAA,OAOCA,EAACC,SAAU,UAAUD,EAACE,KAAKC,SAAU;AAAC;AAPvC,SAAAT,OAAAU,GAAA;CAAA,OAItB,GACJA,EAACR,QAAQS,SAAU,eAClBD,EAACR,QAAQU,QAAaL,SAAK,cAC7BG,EAACR,QAAQW,MAAMC,KAAMT,KAA6C;AACnE"}