@assistant-ui/core 0.2.14 → 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 (319) 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/voice.js.map +1 -1
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/internal/duplicate-detection.js.map +1 -1
  8. package/dist/internal.d.ts +2 -1
  9. package/dist/internal.js +2 -1
  10. package/dist/model-context/frame/host.js.map +1 -1
  11. package/dist/model-context/frame/provider.js.map +1 -1
  12. package/dist/model-context/frame/types.js.map +1 -1
  13. package/dist/model-context/registry.js.map +1 -1
  14. package/dist/model-context/tool.js.map +1 -1
  15. package/dist/model-context/types.d.ts +1 -0
  16. package/dist/model-context/types.d.ts.map +1 -1
  17. package/dist/model-context/types.js.map +1 -1
  18. package/dist/react/AssistantProvider.js +1 -0
  19. package/dist/react/AssistantProvider.js.map +1 -1
  20. package/dist/react/AssistantRuntimeProvider.js +18 -6
  21. package/dist/react/AssistantRuntimeProvider.js.map +1 -1
  22. package/dist/react/RuntimeAdapter.js +26 -7
  23. package/dist/react/RuntimeAdapter.js.map +1 -1
  24. package/dist/react/adapters/LocalStorageThreadListAdapter.js +29 -7
  25. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  26. package/dist/react/adapters/TitleGenerationAdapter.js.map +1 -1
  27. package/dist/react/client/DataRenderers.js +54 -35
  28. package/dist/react/client/DataRenderers.js.map +1 -1
  29. package/dist/react/client/Interactables.js +67 -67
  30. package/dist/react/client/Interactables.js.map +1 -1
  31. package/dist/react/client/Tools.d.ts.map +1 -1
  32. package/dist/react/client/Tools.js +118 -55
  33. package/dist/react/client/Tools.js.map +1 -1
  34. package/dist/react/client/interactable-model-context.js.map +1 -1
  35. package/dist/react/model-context/define-mcp-toolkit.js.map +1 -1
  36. package/dist/react/model-context/define-toolkit.js.map +1 -1
  37. package/dist/react/model-context/external-tool.js.map +1 -1
  38. package/dist/react/model-context/human-tool.js.map +1 -1
  39. package/dist/react/model-context/makeAssistantDataUI.js.map +1 -1
  40. package/dist/react/model-context/makeAssistantTool.js.map +1 -1
  41. package/dist/react/model-context/makeAssistantToolUI.js.map +1 -1
  42. package/dist/react/model-context/provider-tool.js.map +1 -1
  43. package/dist/react/model-context/stub-tool.js.map +1 -1
  44. package/dist/react/model-context/toolbox.js.map +1 -1
  45. package/dist/react/model-context/useAssistantContext.js.map +1 -1
  46. package/dist/react/model-context/useAssistantDataUI.js +27 -8
  47. package/dist/react/model-context/useAssistantDataUI.js.map +1 -1
  48. package/dist/react/model-context/useAssistantInstructions.js +33 -10
  49. package/dist/react/model-context/useAssistantInstructions.js.map +1 -1
  50. package/dist/react/model-context/useAssistantInteractable.js.map +1 -1
  51. package/dist/react/model-context/useAssistantTool.js +59 -17
  52. package/dist/react/model-context/useAssistantTool.js.map +1 -1
  53. package/dist/react/model-context/useAssistantToolUI.js +30 -9
  54. package/dist/react/model-context/useAssistantToolUI.js.map +1 -1
  55. package/dist/react/model-context/useAuiToolOverrides.js.map +1 -1
  56. package/dist/react/model-context/useInlineRender.js +35 -8
  57. package/dist/react/model-context/useInlineRender.js.map +1 -1
  58. package/dist/react/model-context/useInteractableState.js +65 -19
  59. package/dist/react/model-context/useInteractableState.js.map +1 -1
  60. package/dist/react/model-context/useToolArgsStatus.js +42 -14
  61. package/dist/react/model-context/useToolArgsStatus.js.map +1 -1
  62. package/dist/react/primitive-hooks/useActionBarCopy.js +59 -22
  63. package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
  64. package/dist/react/primitive-hooks/useActionBarEdit.js +25 -7
  65. package/dist/react/primitive-hooks/useActionBarEdit.js.map +1 -1
  66. package/dist/react/primitive-hooks/useActionBarFeedback.js +49 -13
  67. package/dist/react/primitive-hooks/useActionBarFeedback.js.map +1 -1
  68. package/dist/react/primitive-hooks/useActionBarReload.js +25 -7
  69. package/dist/react/primitive-hooks/useActionBarReload.js.map +1 -1
  70. package/dist/react/primitive-hooks/useActionBarSpeak.js +28 -9
  71. package/dist/react/primitive-hooks/useActionBarSpeak.js.map +1 -1
  72. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js +25 -7
  73. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js.map +1 -1
  74. package/dist/react/primitive-hooks/useBranchPickerNext.js +27 -11
  75. package/dist/react/primitive-hooks/useBranchPickerNext.js.map +1 -1
  76. package/dist/react/primitive-hooks/useBranchPickerPrevious.js +27 -11
  77. package/dist/react/primitive-hooks/useBranchPickerPrevious.js.map +1 -1
  78. package/dist/react/primitive-hooks/useComposerAddAttachment.js +24 -8
  79. package/dist/react/primitive-hooks/useComposerAddAttachment.js.map +1 -1
  80. package/dist/react/primitive-hooks/useComposerCancel.js +25 -7
  81. package/dist/react/primitive-hooks/useComposerCancel.js.map +1 -1
  82. package/dist/react/primitive-hooks/useComposerDictate.js +25 -7
  83. package/dist/react/primitive-hooks/useComposerDictate.js.map +1 -1
  84. package/dist/react/primitive-hooks/useComposerSend.js +25 -7
  85. package/dist/react/primitive-hooks/useComposerSend.js.map +1 -1
  86. package/dist/react/primitive-hooks/useEditComposerCancel.js +18 -4
  87. package/dist/react/primitive-hooks/useEditComposerCancel.js.map +1 -1
  88. package/dist/react/primitive-hooks/useEditComposerSend.js +25 -7
  89. package/dist/react/primitive-hooks/useEditComposerSend.js.map +1 -1
  90. package/dist/react/primitive-hooks/useMessageBranching.js +41 -9
  91. package/dist/react/primitive-hooks/useMessageBranching.js.map +1 -1
  92. package/dist/react/primitive-hooks/useMessageError.js +4 -1
  93. package/dist/react/primitive-hooks/useMessageError.js.map +1 -1
  94. package/dist/react/primitive-hooks/useMessageReload.js +25 -7
  95. package/dist/react/primitive-hooks/useMessageReload.js.map +1 -1
  96. package/dist/react/primitive-hooks/useSuggestionTrigger.js +31 -13
  97. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
  98. package/dist/react/primitive-hooks/useThreadIsEmpty.js +4 -1
  99. package/dist/react/primitive-hooks/useThreadIsEmpty.js.map +1 -1
  100. package/dist/react/primitive-hooks/useThreadIsRunning.js +4 -1
  101. package/dist/react/primitive-hooks/useThreadIsRunning.js.map +1 -1
  102. package/dist/react/primitive-hooks/useThreadListItemArchive.js +18 -4
  103. package/dist/react/primitive-hooks/useThreadListItemArchive.js.map +1 -1
  104. package/dist/react/primitive-hooks/useThreadListItemDelete.js +18 -4
  105. package/dist/react/primitive-hooks/useThreadListItemDelete.js.map +1 -1
  106. package/dist/react/primitive-hooks/useThreadListItemTrigger.js +18 -4
  107. package/dist/react/primitive-hooks/useThreadListItemTrigger.js.map +1 -1
  108. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js +18 -4
  109. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js.map +1 -1
  110. package/dist/react/primitive-hooks/useThreadListLoadMore.js +25 -7
  111. package/dist/react/primitive-hooks/useThreadListLoadMore.js.map +1 -1
  112. package/dist/react/primitive-hooks/useThreadListNew.js +18 -4
  113. package/dist/react/primitive-hooks/useThreadListNew.js.map +1 -1
  114. package/dist/react/primitive-hooks/useThreadMessages.js +4 -1
  115. package/dist/react/primitive-hooks/useThreadMessages.js.map +1 -1
  116. package/dist/react/primitive-hooks/useVoice.js +63 -13
  117. package/dist/react/primitive-hooks/useVoice.js.map +1 -1
  118. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js +42 -7
  119. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
  120. package/dist/react/primitives/composer/ComposerAttachments.js +67 -16
  121. package/dist/react/primitives/composer/ComposerAttachments.js.map +1 -1
  122. package/dist/react/primitives/composer/ComposerIf.js +30 -9
  123. package/dist/react/primitives/composer/ComposerIf.js.map +1 -1
  124. package/dist/react/primitives/composer/ComposerQueue.js.map +1 -1
  125. package/dist/react/primitives/generativeUI/GenerativeUI.js +55 -13
  126. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  127. package/dist/react/primitives/message/MessageAttachments.js +68 -16
  128. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  129. package/dist/react/primitives/message/MessageGroupedParts.js +3 -3
  130. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  131. package/dist/react/primitives/message/MessageParts.js +649 -181
  132. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  133. package/dist/react/primitives/message/MessageQuote.js +18 -2
  134. package/dist/react/primitives/message/MessageQuote.js.map +1 -1
  135. package/dist/react/primitives/messagePart/MessagePartInProgress.js +6 -2
  136. package/dist/react/primitives/messagePart/MessagePartInProgress.js.map +1 -1
  137. package/dist/react/primitives/part/PartMessages.js +46 -14
  138. package/dist/react/primitives/part/PartMessages.js.map +1 -1
  139. package/dist/react/primitives/thread/ThreadMessages.js +67 -10
  140. package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
  141. package/dist/react/primitives/thread/ThreadSuggestions.js +50 -10
  142. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
  143. package/dist/react/primitives/threadList/ThreadListItems.js +55 -14
  144. package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -1
  145. package/dist/react/primitives/threadListItem/ThreadListItemTitle.js +15 -2
  146. package/dist/react/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
  147. package/dist/react/providers/AttachmentByIndexProvider.js +57 -12
  148. package/dist/react/providers/AttachmentByIndexProvider.js.map +1 -1
  149. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js +33 -11
  150. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js.map +1 -1
  151. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js +29 -6
  152. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js.map +1 -1
  153. package/dist/react/providers/MessageByIndexProvider.js +49 -19
  154. package/dist/react/providers/MessageByIndexProvider.js.map +1 -1
  155. package/dist/react/providers/PartByIndexProvider.js +29 -6
  156. package/dist/react/providers/PartByIndexProvider.js.map +1 -1
  157. package/dist/react/providers/QueueItemByIndexProvider.js +29 -6
  158. package/dist/react/providers/QueueItemByIndexProvider.js.map +1 -1
  159. package/dist/react/providers/ReadonlyThreadProvider.js +83 -28
  160. package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
  161. package/dist/react/providers/SuggestionByIndexProvider.js +29 -6
  162. package/dist/react/providers/SuggestionByIndexProvider.js.map +1 -1
  163. package/dist/react/providers/TextMessagePartProvider.js +73 -25
  164. package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
  165. package/dist/react/providers/ThreadListItemByIndexProvider.js +30 -6
  166. package/dist/react/providers/ThreadListItemByIndexProvider.js.map +1 -1
  167. package/dist/react/providers/ThreadListItemRuntimeProvider.js +28 -5
  168. package/dist/react/providers/ThreadListItemRuntimeProvider.js.map +1 -1
  169. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +19 -4
  170. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  171. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  172. package/dist/react/runtimes/RuntimeAdapterProvider.js +27 -10
  173. package/dist/react/runtimes/RuntimeAdapterProvider.js.map +1 -1
  174. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +10 -1
  175. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  176. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  177. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  178. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +17 -17
  179. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
  180. package/dist/react/runtimes/createMessageConverter.js.map +1 -1
  181. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  182. package/dist/react/runtimes/external-message-converter.js +67 -30
  183. package/dist/react/runtimes/external-message-converter.js.map +1 -1
  184. package/dist/react/runtimes/useExternalStoreRuntime.js +44 -10
  185. package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
  186. package/dist/react/runtimes/useExternalStoreSharedOptions.js +17 -12
  187. package/dist/react/runtimes/useExternalStoreSharedOptions.js.map +1 -1
  188. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  189. package/dist/react/runtimes/useRemoteThreadListRuntime.js +34 -6
  190. package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
  191. package/dist/react/types/MessagePartComponentTypes.d.ts +5 -6
  192. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  193. package/dist/react/utils/getMessageQuote.js.map +1 -1
  194. package/dist/react/utils/groupParts.js.map +1 -1
  195. package/dist/runtime/api/assistant-runtime.js.map +1 -1
  196. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  197. package/dist/runtime/api/composer-runtime.js.map +1 -1
  198. package/dist/runtime/api/message-part-runtime.d.ts +3 -9
  199. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  200. package/dist/runtime/api/message-part-runtime.js +3 -6
  201. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  202. package/dist/runtime/api/message-runtime.js.map +1 -1
  203. package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
  204. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  205. package/dist/runtime/api/thread-runtime.js.map +1 -1
  206. package/dist/runtime/base/base-assistant-runtime-core.js.map +1 -1
  207. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  208. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  209. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  210. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  211. package/dist/runtime/interfaces/thread-runtime-core.d.ts +2 -1
  212. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  213. package/dist/runtime/queue/message-queue.js.map +1 -1
  214. package/dist/runtime/utils/auto-status.js.map +1 -1
  215. package/dist/runtime/utils/external-store-message.js.map +1 -1
  216. package/dist/runtime/utils/message-repository.js.map +1 -1
  217. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +15 -0
  218. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -0
  219. package/dist/runtime/utils/resolveToolApprovalResponse.js +35 -0
  220. package/dist/runtime/utils/resolveToolApprovalResponse.js.map +1 -0
  221. package/dist/runtime/utils/thread-message-like.d.ts +5 -1
  222. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  223. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  224. package/dist/runtimes/assistant-transport/utils.js.map +1 -1
  225. package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
  226. package/dist/runtimes/external-store/external-store-shared-options.js.map +1 -1
  227. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  228. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  229. package/dist/runtimes/external-store/thread-message-converter.js.map +1 -1
  230. package/dist/runtimes/local/local-runtime-core.js.map +1 -1
  231. package/dist/runtimes/local/local-thread-list-runtime-core.js.map +1 -1
  232. package/dist/runtimes/local/local-thread-runtime-core.d.ts +1 -0
  233. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  234. package/dist/runtimes/local/local-thread-runtime-core.js +9 -7
  235. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  236. package/dist/runtimes/local/should-continue.js +1 -1
  237. package/dist/runtimes/local/should-continue.js.map +1 -1
  238. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  239. package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -1
  240. package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
  241. package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
  242. package/dist/runtimes/remote-thread-list/remote-thread-state.js.map +1 -1
  243. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  244. package/dist/store/clients/chain-of-thought-client.js +37 -19
  245. package/dist/store/clients/chain-of-thought-client.js.map +1 -1
  246. package/dist/store/clients/model-context-client.js +64 -14
  247. package/dist/store/clients/model-context-client.js.map +1 -1
  248. package/dist/store/clients/no-op-composer-client.js +94 -53
  249. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  250. package/dist/store/clients/runtime-adapter.js.map +1 -1
  251. package/dist/store/clients/suggestions.d.ts.map +1 -1
  252. package/dist/store/clients/suggestions.js +59 -21
  253. package/dist/store/clients/suggestions.js.map +1 -1
  254. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  255. package/dist/store/clients/thread-message-client.js +176 -69
  256. package/dist/store/clients/thread-message-client.js.map +1 -1
  257. package/dist/store/runtime-clients/attachment-runtime-client.js +29 -6
  258. package/dist/store/runtime-clients/attachment-runtime-client.js.map +1 -1
  259. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  260. package/dist/store/runtime-clients/composer-runtime-client.js +188 -68
  261. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  262. package/dist/store/runtime-clients/liveRef.d.ts +7 -0
  263. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -0
  264. package/dist/store/runtime-clients/liveRef.js +8 -0
  265. package/dist/store/runtime-clients/liveRef.js.map +1 -0
  266. package/dist/store/runtime-clients/message-part-runtime-client.js +47 -8
  267. package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
  268. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  269. package/dist/store/runtime-clients/message-runtime-client.js +214 -52
  270. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  271. package/dist/store/runtime-clients/thread-list-item-runtime-client.js +69 -25
  272. package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -1
  273. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  274. package/dist/store/runtime-clients/thread-list-runtime-client.js +137 -34
  275. package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
  276. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  277. package/dist/store/runtime-clients/thread-runtime-client.js +192 -71
  278. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  279. package/dist/store/runtime-clients/useSubscribable.js +2 -9
  280. package/dist/store/runtime-clients/useSubscribable.js.map +1 -1
  281. package/dist/store/scopes/part.d.ts +5 -6
  282. package/dist/store/scopes/part.d.ts.map +1 -1
  283. package/dist/store/scopes/queue-item.js.map +1 -1
  284. package/dist/subscribable/subscribable.js.map +1 -1
  285. package/dist/tests/remote-thread-list-test-helpers.js.map +1 -1
  286. package/dist/types/message.d.ts +38 -5
  287. package/dist/types/message.d.ts.map +1 -1
  288. package/dist/types/message.js.map +1 -1
  289. package/dist/utils/composite-context-provider.js.map +1 -1
  290. package/dist/utils/id.js.map +1 -1
  291. package/dist/utils/json/is-json-equal.js.map +1 -1
  292. package/dist/utils/json/is-json.js.map +1 -1
  293. package/dist/utils/text.js.map +1 -1
  294. package/package.json +6 -6
  295. package/src/index.ts +4 -0
  296. package/src/internal.ts +1 -0
  297. package/src/model-context/types.ts +1 -0
  298. package/src/react/AssistantProvider.tsx +7 -0
  299. package/src/react/client/Tools.ts +3 -5
  300. package/src/react/runtimes/external-message-converter.ts +3 -1
  301. package/src/react/types/MessagePartComponentTypes.ts +5 -5
  302. package/src/runtime/api/message-part-runtime.ts +14 -11
  303. package/src/runtime/interfaces/thread-runtime-core.ts +2 -0
  304. package/src/runtime/utils/resolveToolApprovalResponse.test.ts +91 -0
  305. package/src/runtime/utils/resolveToolApprovalResponse.ts +55 -0
  306. package/src/runtime/utils/thread-message-like.ts +10 -1
  307. package/src/runtimes/local/local-thread-runtime-core.test.ts +61 -2
  308. package/src/runtimes/local/local-thread-runtime-core.ts +17 -8
  309. package/src/runtimes/local/should-continue.ts +2 -1
  310. package/src/store/clients/suggestions.ts +3 -5
  311. package/src/store/clients/thread-message-client.ts +13 -14
  312. package/src/store/runtime-clients/composer-runtime-client.ts +18 -21
  313. package/src/store/runtime-clients/liveRef.ts +5 -0
  314. package/src/store/runtime-clients/message-runtime-client.ts +16 -21
  315. package/src/store/runtime-clients/thread-list-runtime-client.ts +3 -5
  316. package/src/store/runtime-clients/thread-runtime-client.ts +9 -10
  317. package/src/store/runtime-clients/useSubscribable.ts +2 -10
  318. package/src/store/scopes/part.ts +5 -2
  319. package/src/types/message.ts +45 -3
@@ -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"}
@@ -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/useActionBarStopSpeaking.ts
4
4
  const useActionBarStopSpeaking = () => {
5
+ const $ = c(5);
5
6
  const aui = useAui();
6
- const disabled = useAuiState((s) => s.message.speech == null);
7
- return {
8
- stopSpeaking: useCallback(() => {
7
+ const disabled = useAuiState(_temp);
8
+ let t0;
9
+ if ($[0] !== aui) {
10
+ t0 = () => {
9
11
  aui.message().stopSpeaking();
10
- }, [aui]),
11
- disabled
12
- };
12
+ };
13
+ $[0] = aui;
14
+ $[1] = t0;
15
+ } else t0 = $[1];
16
+ const stopSpeaking = t0;
17
+ let t1;
18
+ if ($[2] !== disabled || $[3] !== stopSpeaking) {
19
+ t1 = {
20
+ stopSpeaking,
21
+ disabled
22
+ };
23
+ $[2] = disabled;
24
+ $[3] = stopSpeaking;
25
+ $[4] = t1;
26
+ } else t1 = $[4];
27
+ return t1;
13
28
  };
29
+ function _temp(s) {
30
+ return s.message.speech == null;
31
+ }
14
32
  //#endregion
15
33
  export { useActionBarStopSpeaking };
16
34
 
@@ -1 +1 @@
1
- {"version":3,"file":"useActionBarStopSpeaking.js","names":[],"sources":["../../../src/react/primitive-hooks/useActionBarStopSpeaking.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarStopSpeaking = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.message.speech == null);\n\n const stopSpeaking = useCallback(() => {\n aui.message().stopSpeaking();\n }, [aui]);\n\n return { stopSpeaking, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,iCAAiC;CAC5C,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM,EAAE,QAAQ,UAAU,IAAI;CAM5D,OAAO;EAAE,cAJY,kBAAkB;GACrC,IAAI,QAAQ,CAAC,CAAC,aAAa;EAC7B,GAAG,CAAC,GAAG,CAEa;EAAG;CAAS;AAClC"}
1
+ {"version":3,"file":"useActionBarStopSpeaking.js","names":["useCallback","useAui","useAuiState","useActionBarStopSpeaking","$","_c","aui","disabled","_temp","t0","message","stopSpeaking","t1","s","speech"],"sources":["../../../src/react/primitive-hooks/useActionBarStopSpeaking.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarStopSpeaking = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.message.speech == null);\n\n const stopSpeaking = useCallback(() => {\n aui.message().stopSpeaking();\n }, [aui]);\n\n return { stopSpeaking, disabled };\n};\n"],"mappings":";;;AAGA,MAAaG,iCAA2B;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACtC,MAAAC,MAAYL,OAAO;CACnB,MAAAM,WAAiBL,YAAYM,KAA+B;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAE7BG,WAAA;GAC/BH,IAAGI,QAAS,CAAC,CAAAC,aAAc;EAAC;EAC7BP,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAO,eAAqBF;CAEX,IAAAG;CAAA,IAAAR,EAAA,OAAAG,YAAAH,EAAA,OAAAO,cAAA;EAEHC,KAAA;GAAAD;GAAAJ;EAAyB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAA1BQ;AAA0B;AARK,SAAAJ,MAAAK,GAAA;CAAA,OAEFA,EAACH,QAAQI,UAAW;AAAI"}