@assistant-ui/core 0.2.9 → 0.2.11

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 (437) hide show
  1. package/dist/adapters/attachment.d.ts.map +1 -1
  2. package/dist/adapters/attachment.js +22 -12
  3. package/dist/adapters/attachment.js.map +1 -1
  4. package/dist/adapters/directive-formatter.js.map +1 -1
  5. package/dist/adapters/speech.js.map +1 -1
  6. package/dist/index.d.ts +3 -1
  7. package/dist/index.js +2 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/internal.js +1 -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/registry.js.map +1 -1
  13. package/dist/model-context/tool.d.ts +1 -1
  14. package/dist/model-context/tool.js +1 -1
  15. package/dist/model-context/tool.js.map +1 -1
  16. package/dist/model-context/types.js +17 -2
  17. package/dist/model-context/types.js.map +1 -1
  18. package/dist/react/AssistantProvider.js +1 -1
  19. package/dist/react/AssistantRuntimeProvider.d.ts +1 -1
  20. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  21. package/dist/react/AssistantRuntimeProvider.js +1 -1
  22. package/dist/react/RuntimeAdapter.js +4 -2
  23. package/dist/react/RuntimeAdapter.js.map +1 -1
  24. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  25. package/dist/react/adapters/LocalStorageThreadListAdapter.js +13 -3
  26. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  27. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  28. package/dist/react/client/DataRenderers.js +6 -5
  29. package/dist/react/client/DataRenderers.js.map +1 -1
  30. package/dist/react/client/Interactables.d.ts.map +1 -1
  31. package/dist/react/client/Interactables.js +30 -29
  32. package/dist/react/client/Interactables.js.map +1 -1
  33. package/dist/react/client/Tools.d.ts.map +1 -1
  34. package/dist/react/client/Tools.js +19 -12
  35. package/dist/react/client/Tools.js.map +1 -1
  36. package/dist/react/index.d.ts +10 -5
  37. package/dist/react/index.js +7 -2
  38. package/dist/react/model-context/define-mcp-toolkit.d.ts +12 -0
  39. package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -0
  40. package/dist/react/model-context/define-mcp-toolkit.js +14 -0
  41. package/dist/react/model-context/define-mcp-toolkit.js.map +1 -0
  42. package/dist/react/model-context/define-toolkit.d.ts +10 -12
  43. package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
  44. package/dist/react/model-context/define-toolkit.js +2 -15
  45. package/dist/react/model-context/define-toolkit.js.map +1 -1
  46. package/dist/react/model-context/external-tool.d.ts +14 -0
  47. package/dist/react/model-context/external-tool.d.ts.map +1 -0
  48. package/dist/react/model-context/external-tool.js +17 -0
  49. package/dist/react/model-context/external-tool.js.map +1 -0
  50. package/dist/react/model-context/human-tool.d.ts +27 -0
  51. package/dist/react/model-context/human-tool.d.ts.map +1 -0
  52. package/dist/react/model-context/human-tool.js +30 -0
  53. package/dist/react/model-context/human-tool.js.map +1 -0
  54. package/dist/react/model-context/makeAssistantTool.d.ts +8 -0
  55. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  56. package/dist/react/model-context/makeAssistantTool.js +4 -0
  57. package/dist/react/model-context/makeAssistantTool.js.map +1 -1
  58. package/dist/react/model-context/makeAssistantToolUI.d.ts +8 -0
  59. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  60. package/dist/react/model-context/makeAssistantToolUI.js +4 -0
  61. package/dist/react/model-context/makeAssistantToolUI.js.map +1 -1
  62. package/dist/react/model-context/provider-tool.d.ts +15 -0
  63. package/dist/react/model-context/provider-tool.d.ts.map +1 -0
  64. package/dist/react/model-context/provider-tool.js +12 -0
  65. package/dist/react/model-context/provider-tool.js.map +1 -0
  66. package/dist/react/model-context/stub-tool.d.ts +12 -0
  67. package/dist/react/model-context/stub-tool.d.ts.map +1 -0
  68. package/dist/react/model-context/stub-tool.js +15 -0
  69. package/dist/react/model-context/stub-tool.js.map +1 -0
  70. package/dist/react/model-context/toolbox.d.ts +64 -17
  71. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  72. package/dist/react/model-context/toolbox.js +19 -1
  73. package/dist/react/model-context/toolbox.js.map +1 -1
  74. package/dist/react/model-context/useAssistantContext.js +1 -1
  75. package/dist/react/model-context/useAssistantContext.js.map +1 -1
  76. package/dist/react/model-context/useAssistantDataUI.js +1 -1
  77. package/dist/react/model-context/useAssistantDataUI.js.map +1 -1
  78. package/dist/react/model-context/useAssistantInstructions.js +1 -1
  79. package/dist/react/model-context/useAssistantInstructions.js.map +1 -1
  80. package/dist/react/model-context/useAssistantInteractable.js +1 -1
  81. package/dist/react/model-context/useAssistantInteractable.js.map +1 -1
  82. package/dist/react/model-context/useAssistantTool.d.ts +11 -1
  83. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  84. package/dist/react/model-context/useAssistantTool.js +12 -6
  85. package/dist/react/model-context/useAssistantTool.js.map +1 -1
  86. package/dist/react/model-context/useAssistantToolUI.d.ts +13 -4
  87. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  88. package/dist/react/model-context/useAssistantToolUI.js +7 -4
  89. package/dist/react/model-context/useAssistantToolUI.js.map +1 -1
  90. package/dist/react/model-context/useAuiToolOverrides.d.ts +22 -0
  91. package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -0
  92. package/dist/react/model-context/useAuiToolOverrides.js +31 -0
  93. package/dist/react/model-context/useAuiToolOverrides.js.map +1 -0
  94. package/dist/react/model-context/useInlineRender.js +1 -1
  95. package/dist/react/model-context/useInlineRender.js.map +1 -1
  96. package/dist/react/model-context/useInteractableState.js +1 -1
  97. package/dist/react/model-context/useInteractableState.js.map +1 -1
  98. package/dist/react/model-context/useToolArgsStatus.js +1 -1
  99. package/dist/react/primitive-hooks/useActionBarCopy.js +1 -1
  100. package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
  101. package/dist/react/primitive-hooks/useActionBarEdit.js +1 -1
  102. package/dist/react/primitive-hooks/useActionBarEdit.js.map +1 -1
  103. package/dist/react/primitive-hooks/useActionBarFeedback.js +1 -1
  104. package/dist/react/primitive-hooks/useActionBarFeedback.js.map +1 -1
  105. package/dist/react/primitive-hooks/useActionBarReload.js +1 -1
  106. package/dist/react/primitive-hooks/useActionBarReload.js.map +1 -1
  107. package/dist/react/primitive-hooks/useActionBarSpeak.js +1 -1
  108. package/dist/react/primitive-hooks/useActionBarSpeak.js.map +1 -1
  109. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js +1 -1
  110. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js.map +1 -1
  111. package/dist/react/primitive-hooks/useBranchPickerNext.js +1 -1
  112. package/dist/react/primitive-hooks/useBranchPickerNext.js.map +1 -1
  113. package/dist/react/primitive-hooks/useBranchPickerPrevious.js +1 -1
  114. package/dist/react/primitive-hooks/useBranchPickerPrevious.js.map +1 -1
  115. package/dist/react/primitive-hooks/useComposerAddAttachment.js +1 -1
  116. package/dist/react/primitive-hooks/useComposerAddAttachment.js.map +1 -1
  117. package/dist/react/primitive-hooks/useComposerCancel.js +1 -1
  118. package/dist/react/primitive-hooks/useComposerCancel.js.map +1 -1
  119. package/dist/react/primitive-hooks/useComposerDictate.js +1 -1
  120. package/dist/react/primitive-hooks/useComposerDictate.js.map +1 -1
  121. package/dist/react/primitive-hooks/useComposerSend.js +1 -1
  122. package/dist/react/primitive-hooks/useComposerSend.js.map +1 -1
  123. package/dist/react/primitive-hooks/useEditComposerCancel.js +1 -1
  124. package/dist/react/primitive-hooks/useEditComposerCancel.js.map +1 -1
  125. package/dist/react/primitive-hooks/useEditComposerSend.js +1 -1
  126. package/dist/react/primitive-hooks/useEditComposerSend.js.map +1 -1
  127. package/dist/react/primitive-hooks/useMessageBranching.js +1 -1
  128. package/dist/react/primitive-hooks/useMessageBranching.js.map +1 -1
  129. package/dist/react/primitive-hooks/useMessageReload.js +1 -1
  130. package/dist/react/primitive-hooks/useMessageReload.js.map +1 -1
  131. package/dist/react/primitive-hooks/useSuggestionTrigger.js +1 -1
  132. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
  133. package/dist/react/primitive-hooks/useThreadListItemArchive.js +1 -1
  134. package/dist/react/primitive-hooks/useThreadListItemArchive.js.map +1 -1
  135. package/dist/react/primitive-hooks/useThreadListItemDelete.js +1 -1
  136. package/dist/react/primitive-hooks/useThreadListItemDelete.js.map +1 -1
  137. package/dist/react/primitive-hooks/useThreadListItemTrigger.js +1 -1
  138. package/dist/react/primitive-hooks/useThreadListItemTrigger.js.map +1 -1
  139. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js +1 -1
  140. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js.map +1 -1
  141. package/dist/react/primitive-hooks/useThreadListLoadMore.js +1 -1
  142. package/dist/react/primitive-hooks/useThreadListLoadMore.js.map +1 -1
  143. package/dist/react/primitive-hooks/useThreadListNew.js +1 -1
  144. package/dist/react/primitive-hooks/useThreadListNew.js.map +1 -1
  145. package/dist/react/primitive-hooks/useVoice.js +1 -1
  146. package/dist/react/primitive-hooks/useVoice.js.map +1 -1
  147. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +1 -1
  148. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js +1 -1
  149. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
  150. package/dist/react/primitives/composer/ComposerAttachments.js +1 -1
  151. package/dist/react/primitives/composer/ComposerAttachments.js.map +1 -1
  152. package/dist/react/primitives/composer/ComposerQueue.js +1 -1
  153. package/dist/react/primitives/composer/ComposerQueue.js.map +1 -1
  154. package/dist/react/primitives/generativeUI/GenerativeUI.js +1 -1
  155. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  156. package/dist/react/primitives/message/MessageAttachments.js +1 -1
  157. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  158. package/dist/react/primitives/message/MessageGroupedParts.js +1 -1
  159. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  160. package/dist/react/primitives/message/MessageParts.d.ts +1 -1
  161. package/dist/react/primitives/message/MessageParts.js +1 -1
  162. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  163. package/dist/react/primitives/message/MessageQuote.js +1 -1
  164. package/dist/react/primitives/part/PartMessages.d.ts +12 -10
  165. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  166. package/dist/react/primitives/part/PartMessages.js +13 -11
  167. package/dist/react/primitives/part/PartMessages.js.map +1 -1
  168. package/dist/react/primitives/thread/ThreadMessages.js +1 -1
  169. package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
  170. package/dist/react/primitives/thread/ThreadSuggestions.js +1 -1
  171. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
  172. package/dist/react/primitives/threadList/ThreadListItems.js +1 -1
  173. package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -1
  174. package/dist/react/providers/AttachmentByIndexProvider.js.map +1 -1
  175. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js.map +1 -1
  176. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js.map +1 -1
  177. package/dist/react/providers/MessageByIndexProvider.js.map +1 -1
  178. package/dist/react/providers/PartByIndexProvider.js.map +1 -1
  179. package/dist/react/providers/QueueItemByIndexProvider.js.map +1 -1
  180. package/dist/react/providers/ReadonlyThreadProvider.js +1 -1
  181. package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
  182. package/dist/react/providers/SuggestionByIndexProvider.js.map +1 -1
  183. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  184. package/dist/react/providers/TextMessagePartProvider.js +4 -3
  185. package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
  186. package/dist/react/providers/ThreadListItemByIndexProvider.js.map +1 -1
  187. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +7 -0
  188. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  189. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +1 -1
  190. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  191. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +8 -0
  192. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  193. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +29 -1
  194. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  195. package/dist/react/runtimes/RuntimeAdapterProvider.js +1 -1
  196. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +1 -1
  197. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  198. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  199. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +10 -3
  200. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
  201. package/dist/react/runtimes/createMessageConverter.d.ts +2 -2
  202. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  203. package/dist/react/runtimes/createMessageConverter.js.map +1 -1
  204. package/dist/react/runtimes/external-message-converter.d.ts +4 -3
  205. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  206. package/dist/react/runtimes/external-message-converter.js +1 -1
  207. package/dist/react/runtimes/external-message-converter.js.map +1 -1
  208. package/dist/react/runtimes/useExternalStoreRuntime.js +1 -1
  209. package/dist/react/runtimes/useExternalStoreSharedOptions.js +1 -1
  210. package/dist/react/runtimes/useLocalRuntime.d.ts +2 -1
  211. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  212. package/dist/react/runtimes/useLocalRuntime.js +4 -3
  213. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  214. package/dist/react/runtimes/useRemoteThreadListRuntime.js +1 -1
  215. package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
  216. package/dist/react/utils/groupParts.d.ts +1 -1
  217. package/dist/react/utils/groupParts.js.map +1 -1
  218. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  219. package/dist/runtime/api/composer-runtime.d.ts +8 -2
  220. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  221. package/dist/runtime/api/composer-runtime.js +14 -0
  222. package/dist/runtime/api/composer-runtime.js.map +1 -1
  223. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  224. package/dist/runtime/api/message-runtime.js +1 -1
  225. package/dist/runtime/api/message-runtime.js.map +1 -1
  226. package/dist/runtime/api/thread-list-item-runtime.d.ts +2 -0
  227. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  228. package/dist/runtime/api/thread-list-item-runtime.js +6 -0
  229. package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
  230. package/dist/runtime/api/thread-runtime.d.ts +7 -0
  231. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  232. package/dist/runtime/api/thread-runtime.js.map +1 -1
  233. package/dist/runtime/base/base-composer-runtime-core.d.ts +4 -0
  234. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  235. package/dist/runtime/base/base-composer-runtime-core.js +7 -1
  236. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  237. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  238. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +4 -0
  239. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  240. package/dist/runtime/base/default-thread-composer-runtime-core.js +17 -1
  241. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  242. package/dist/runtime/interfaces/composer-runtime-core.d.ts +6 -1
  243. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  244. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +1 -0
  245. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  246. package/dist/runtime/interfaces/thread-runtime-core.d.ts +4 -0
  247. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  248. package/dist/runtime/queue/external-thread-queue-adapter.d.ts +20 -0
  249. package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -0
  250. package/dist/runtime/queue/external-thread-queue-adapter.js +0 -0
  251. package/dist/runtime/queue/message-queue.d.ts +20 -0
  252. package/dist/runtime/queue/message-queue.d.ts.map +1 -0
  253. package/dist/runtime/queue/message-queue.js +97 -0
  254. package/dist/runtime/queue/message-queue.js.map +1 -0
  255. package/dist/runtime/utils/message-repository.js.map +1 -1
  256. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  257. package/dist/runtimes/external-store/external-store-adapter.d.ts +5 -1
  258. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  259. package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
  260. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +1 -0
  261. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  262. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +5 -0
  263. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  264. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +4 -0
  265. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  266. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +20 -2
  267. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  268. package/dist/runtimes/local/local-runtime-core.js.map +1 -1
  269. package/dist/runtimes/local/local-runtime-options.d.ts +5 -0
  270. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  271. package/dist/runtimes/local/local-thread-runtime-core.d.ts +7 -0
  272. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  273. package/dist/runtimes/local/local-thread-runtime-core.js +45 -0
  274. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  275. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +3 -0
  276. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  277. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +3 -0
  278. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  279. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +1 -0
  280. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  281. package/dist/runtimes/remote-thread-list/adapter/in-memory.js +3 -0
  282. package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -1
  283. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  284. package/dist/runtimes/remote-thread-list/empty-thread-core.js +3 -0
  285. package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
  286. package/dist/runtimes/remote-thread-list/remote-thread-state.js.map +1 -1
  287. package/dist/runtimes/remote-thread-list/types.d.ts +1 -0
  288. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  289. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  290. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  291. package/dist/store/clients/chain-of-thought-client.js +6 -5
  292. package/dist/store/clients/chain-of-thought-client.js.map +1 -1
  293. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  294. package/dist/store/clients/model-context-client.js +6 -5
  295. package/dist/store/clients/model-context-client.js.map +1 -1
  296. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  297. package/dist/store/clients/no-op-composer-client.js +4 -3
  298. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  299. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  300. package/dist/store/clients/runtime-adapter.js +7 -6
  301. package/dist/store/clients/runtime-adapter.js.map +1 -1
  302. package/dist/store/clients/suggestions.d.ts.map +1 -1
  303. package/dist/store/clients/suggestions.js +7 -6
  304. package/dist/store/clients/suggestions.js.map +1 -1
  305. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  306. package/dist/store/clients/thread-message-client.js +13 -12
  307. package/dist/store/clients/thread-message-client.js.map +1 -1
  308. package/dist/store/index.d.ts +1 -1
  309. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  310. package/dist/store/runtime-clients/attachment-runtime-client.js +3 -3
  311. package/dist/store/runtime-clients/attachment-runtime-client.js.map +1 -1
  312. package/dist/store/runtime-clients/composer-runtime-client.d.ts +12 -5
  313. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  314. package/dist/store/runtime-clients/composer-runtime-client.js +32 -16
  315. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  316. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  317. package/dist/store/runtime-clients/message-part-runtime-client.js +3 -3
  318. package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
  319. package/dist/store/runtime-clients/message-runtime-client.d.ts +6 -3
  320. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  321. package/dist/store/runtime-clients/message-runtime-client.js +17 -16
  322. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  323. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  324. package/dist/store/runtime-clients/thread-list-item-runtime-client.js +9 -7
  325. package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -1
  326. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  327. package/dist/store/runtime-clients/thread-list-runtime-client.js +11 -10
  328. package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
  329. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  330. package/dist/store/runtime-clients/thread-runtime-client.js +15 -14
  331. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  332. package/dist/store/runtime-clients/useSubscribable.d.ts +7 -0
  333. package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -0
  334. package/dist/store/runtime-clients/useSubscribable.js +16 -0
  335. package/dist/store/runtime-clients/useSubscribable.js.map +1 -0
  336. package/dist/store/scope-registration.d.ts +1 -1
  337. package/dist/store/scopes/composer.d.ts +1 -1
  338. package/dist/store/scopes/queue-item.d.ts +2 -1
  339. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  340. package/dist/store/scopes/queue-item.js +6 -0
  341. package/dist/store/scopes/queue-item.js.map +1 -0
  342. package/dist/store/scopes/thread-list-item.d.ts +1 -0
  343. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  344. package/dist/store/scopes/thread.d.ts +1 -1
  345. package/dist/store/scopes/threads.d.ts +1 -1
  346. package/dist/types/message.d.ts +2 -1
  347. package/dist/types/message.d.ts.map +1 -1
  348. package/dist/types/message.js.map +1 -1
  349. package/dist/utils/composite-context-provider.d.ts +1 -1
  350. package/dist/utils/composite-context-provider.js +3 -1
  351. package/dist/utils/composite-context-provider.js.map +1 -1
  352. package/dist/utils/json/is-json.js.map +1 -1
  353. package/dist/utils/text.js.map +1 -1
  354. package/package.json +15 -11
  355. package/src/adapters/attachment.ts +24 -4
  356. package/src/index.ts +8 -0
  357. package/src/model-context/tool.ts +1 -1
  358. package/src/model-context/types.ts +21 -3
  359. package/src/react/RuntimeAdapter.ts +6 -4
  360. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +15 -2
  361. package/src/react/client/DataRenderers.ts +48 -42
  362. package/src/react/client/Interactables.ts +263 -267
  363. package/src/react/client/Tools.ts +123 -115
  364. package/src/react/index.ts +16 -3
  365. package/src/react/model-context/define-mcp-toolkit.ts +16 -0
  366. package/src/react/model-context/define-toolkit.test.ts +101 -6
  367. package/src/react/model-context/define-toolkit.ts +35 -18
  368. package/src/react/model-context/external-tool.ts +16 -0
  369. package/src/react/model-context/human-tool.ts +32 -0
  370. package/src/react/model-context/makeAssistantTool.ts +8 -0
  371. package/src/react/model-context/makeAssistantToolUI.ts +8 -0
  372. package/src/react/model-context/provider-tool.ts +30 -0
  373. package/src/react/model-context/stub-tool.ts +14 -0
  374. package/src/react/model-context/toolbox.test.ts +182 -0
  375. package/src/react/model-context/toolbox.ts +191 -23
  376. package/src/react/model-context/useAssistantTool.ts +28 -8
  377. package/src/react/model-context/useAssistantToolUI.ts +13 -4
  378. package/src/react/model-context/useAuiToolOverrides.ts +38 -0
  379. package/src/react/primitives/message/MessageGroupedParts.tsx +1 -1
  380. package/src/react/primitives/part/PartMessages.tsx +12 -10
  381. package/src/react/providers/TextMessagePartProvider.tsx +31 -32
  382. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +43 -0
  383. package/src/react/runtimes/cloud/useCloudThreadListAdapter.tsx +9 -0
  384. package/src/react/runtimes/createMessageConverter.ts +2 -1
  385. package/src/react/runtimes/external-message-converter.ts +5 -3
  386. package/src/react/runtimes/useLocalRuntime.ts +2 -0
  387. package/src/runtime/api/composer-runtime.ts +26 -0
  388. package/src/runtime/api/thread-list-item-runtime.ts +15 -0
  389. package/src/runtime/base/base-composer-runtime-core.ts +11 -0
  390. package/src/runtime/base/default-thread-composer-runtime-core.ts +22 -0
  391. package/src/runtime/interfaces/composer-runtime-core.ts +7 -0
  392. package/src/runtime/interfaces/thread-list-runtime-core.ts +4 -0
  393. package/src/runtime/interfaces/thread-runtime-core.ts +5 -0
  394. package/src/runtime/queue/external-thread-queue-adapter.ts +14 -0
  395. package/src/runtime/queue/message-queue.ts +128 -0
  396. package/src/runtimes/external-store/external-store-adapter.ts +10 -0
  397. package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +13 -0
  398. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +31 -2
  399. package/src/runtimes/local/local-runtime-options.ts +6 -0
  400. package/src/runtimes/local/local-thread-runtime-core.ts +70 -0
  401. package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +4 -0
  402. package/src/runtimes/remote-thread-list/adapter/in-memory.ts +4 -0
  403. package/src/runtimes/remote-thread-list/empty-thread-core.ts +4 -0
  404. package/src/runtimes/remote-thread-list/types.ts +4 -0
  405. package/src/store/clients/chain-of-thought-client.ts +24 -25
  406. package/src/store/clients/model-context-client.test.ts +87 -2
  407. package/src/store/clients/model-context-client.ts +22 -19
  408. package/src/store/clients/no-op-composer-client.ts +69 -66
  409. package/src/store/clients/runtime-adapter.ts +9 -6
  410. package/src/store/clients/suggestions.ts +41 -40
  411. package/src/store/clients/thread-message-client.ts +127 -132
  412. package/src/store/runtime-clients/attachment-runtime-client.ts +7 -3
  413. package/src/store/runtime-clients/composer-runtime-client.ts +142 -113
  414. package/src/store/runtime-clients/message-part-runtime-client.ts +16 -14
  415. package/src/store/runtime-clients/message-runtime-client.ts +124 -122
  416. package/src/store/runtime-clients/thread-list-item-runtime-client.ts +44 -44
  417. package/src/store/runtime-clients/thread-list-runtime-client.ts +83 -80
  418. package/src/store/runtime-clients/thread-runtime-client.ts +113 -119
  419. package/src/store/runtime-clients/{tap-subscribable.ts → useSubscribable.ts} +4 -4
  420. package/src/store/scopes/queue-item.ts +2 -0
  421. package/src/store/scopes/thread-list-item.ts +1 -0
  422. package/src/tests/RemoteThreadListThreadListRuntimeCore-custom-metadata.test.ts +69 -1
  423. package/src/tests/attachment-adapters.test.ts +86 -0
  424. package/src/tests/external-store-thread-runtime-core.test.ts +125 -0
  425. package/src/tests/message-queue.test.ts +168 -0
  426. package/src/tests/thread-list-runtime-getLoadThreadsPromise.test.ts +1 -0
  427. package/src/types/message.ts +2 -0
  428. package/src/utils/composite-context-provider.ts +3 -1
  429. package/dist/react/model-context/hitl.d.ts +0 -19
  430. package/dist/react/model-context/hitl.d.ts.map +0 -1
  431. package/dist/react/model-context/hitl.js +0 -22
  432. package/dist/react/model-context/hitl.js.map +0 -1
  433. package/dist/store/runtime-clients/tap-subscribable.d.ts +0 -7
  434. package/dist/store/runtime-clients/tap-subscribable.d.ts.map +0 -1
  435. package/dist/store/runtime-clients/tap-subscribable.js +0 -16
  436. package/dist/store/runtime-clients/tap-subscribable.js.map +0 -1
  437. package/src/react/model-context/hitl.ts +0 -22
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantContext.js","names":[],"sources":["../../../src/react/model-context/useAssistantContext.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { AssistantContextConfig } from \"../..\";\n\nexport type { AssistantContextConfig };\n\nexport const useAssistantContext = (config: AssistantContextConfig) => {\n const { getContext, disabled = false } = config;\n const aui = useAui();\n const getContextRef = useRef(getContext);\n getContextRef.current = getContext;\n\n useEffect(() => {\n if (disabled) return;\n\n return aui.modelContext().register({\n getModelContext: () => ({\n system: getContextRef.current(),\n }),\n });\n }, [aui, disabled]);\n};\n"],"mappings":";;;AAMA,MAAa,uBAAuB,WAAmC;CACrE,MAAM,EAAE,YAAY,WAAW,UAAU;CACzC,MAAM,MAAM,OAAO;CACnB,MAAM,gBAAgB,OAAO,UAAU;CACvC,cAAc,UAAU;CAExB,gBAAgB;EACd,IAAI,UAAU;EAEd,OAAO,IAAI,aAAa,EAAE,SAAS,EACjC,wBAAwB,EACtB,QAAQ,cAAc,QAAQ,EAChC,GACF,CAAC;CACH,GAAG,CAAC,KAAK,QAAQ,CAAC;AACpB"}
1
+ {"version":3,"file":"useAssistantContext.js","names":[],"sources":["../../../src/react/model-context/useAssistantContext.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { AssistantContextConfig } from \"../..\";\n\nexport type { AssistantContextConfig };\n\nexport const useAssistantContext = (config: AssistantContextConfig) => {\n const { getContext, disabled = false } = config;\n const aui = useAui();\n const getContextRef = useRef(getContext);\n getContextRef.current = getContext;\n\n useEffect(() => {\n if (disabled) return;\n\n return aui.modelContext().register({\n getModelContext: () => ({\n system: getContextRef.current(),\n }),\n });\n }, [aui, disabled]);\n};\n"],"mappings":";;;AAMA,MAAa,uBAAuB,WAAmC;CACrE,MAAM,EAAE,YAAY,WAAW,UAAU;CACzC,MAAM,MAAM,OAAO;CACnB,MAAM,gBAAgB,OAAO,UAAU;CACvC,cAAc,UAAU;CAExB,gBAAgB;EACd,IAAI,UAAU;EAEd,OAAO,IAAI,aAAa,CAAC,CAAC,SAAS,EACjC,wBAAwB,EACtB,QAAQ,cAAc,QAAQ,EAChC,GACF,CAAC;CACH,GAAG,CAAC,KAAK,QAAQ,CAAC;AACpB"}
@@ -1,4 +1,4 @@
1
- import { useEffect } from "react";
1
+ import { useEffect } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui } from "@assistant-ui/store";
3
3
  //#region src/react/model-context/useAssistantDataUI.ts
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantDataUI.js","names":[],"sources":["../../../src/react/model-context/useAssistantDataUI.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { DataMessagePartComponent } from \"../types/MessagePartComponentTypes\";\n\n/** Props used to register a renderer for `data` message parts. */\nexport type AssistantDataUIProps<T = any> = {\n /** Data part name this renderer handles. */\n name: string;\n /** Component rendered for matching data message parts. */\n render: DataMessagePartComponent<T>;\n};\n\n/**\n * Registers a renderer for named `data` message parts while the component is\n * mounted.\n *\n * @param dataUI - Data renderer registration, or `null` to skip registration.\n */\nexport const useAssistantDataUI = (dataUI: AssistantDataUIProps | null) => {\n const aui = useAui();\n useEffect(() => {\n if (!dataUI?.name || !dataUI?.render) return undefined;\n return aui.dataRenderers().setDataUI(dataUI.name, dataUI.render);\n }, [aui, dataUI?.name, dataUI?.render]);\n};\n"],"mappings":";;;;;;;;;AAkBA,MAAa,sBAAsB,WAAwC;CACzE,MAAM,MAAM,OAAO;CACnB,gBAAgB;EACd,IAAI,CAAC,QAAQ,QAAQ,CAAC,QAAQ,QAAQ,OAAO,KAAA;EAC7C,OAAO,IAAI,cAAc,EAAE,UAAU,OAAO,MAAM,OAAO,MAAM;CACjE,GAAG;EAAC;EAAK,QAAQ;EAAM,QAAQ;CAAM,CAAC;AACxC"}
1
+ {"version":3,"file":"useAssistantDataUI.js","names":[],"sources":["../../../src/react/model-context/useAssistantDataUI.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { DataMessagePartComponent } from \"../types/MessagePartComponentTypes\";\n\n/** Props used to register a renderer for `data` message parts. */\nexport type AssistantDataUIProps<T = any> = {\n /** Data part name this renderer handles. */\n name: string;\n /** Component rendered for matching data message parts. */\n render: DataMessagePartComponent<T>;\n};\n\n/**\n * Registers a renderer for named `data` message parts while the component is\n * mounted.\n *\n * @param dataUI - Data renderer registration, or `null` to skip registration.\n */\nexport const useAssistantDataUI = (dataUI: AssistantDataUIProps | null) => {\n const aui = useAui();\n useEffect(() => {\n if (!dataUI?.name || !dataUI?.render) return undefined;\n return aui.dataRenderers().setDataUI(dataUI.name, dataUI.render);\n }, [aui, dataUI?.name, dataUI?.render]);\n};\n"],"mappings":";;;;;;;;;AAkBA,MAAa,sBAAsB,WAAwC;CACzE,MAAM,MAAM,OAAO;CACnB,gBAAgB;EACd,IAAI,CAAC,QAAQ,QAAQ,CAAC,QAAQ,QAAQ,OAAO,KAAA;EAC7C,OAAO,IAAI,cAAc,CAAC,CAAC,UAAU,OAAO,MAAM,OAAO,MAAM;CACjE,GAAG;EAAC;EAAK,QAAQ;EAAM,QAAQ;CAAM,CAAC;AACxC"}
@@ -1,4 +1,4 @@
1
- import { useEffect } from "react";
1
+ import { useEffect } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui } from "@assistant-ui/store";
3
3
  //#region src/react/model-context/useAssistantInstructions.ts
4
4
  const getInstructions = (instruction) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantInstructions.js","names":[],"sources":["../../../src/react/model-context/useAssistantInstructions.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { AssistantInstructionsConfig } from \"../..\";\n\nexport type { AssistantInstructionsConfig };\n\nconst getInstructions = (\n instruction: string | AssistantInstructionsConfig,\n): AssistantInstructionsConfig => {\n if (typeof instruction === \"string\") return { instruction };\n return instruction;\n};\n\nexport const useAssistantInstructions = (\n config: string | AssistantInstructionsConfig,\n) => {\n const { instruction, disabled = false } = getInstructions(config);\n const aui = useAui();\n\n useEffect(() => {\n if (disabled) return;\n\n const config = {\n system: instruction,\n };\n return aui.modelContext().register({\n getModelContext: () => config,\n });\n }, [aui, instruction, disabled]);\n};\n"],"mappings":";;;AAMA,MAAM,mBACJ,gBACgC;CAChC,IAAI,OAAO,gBAAgB,UAAU,OAAO,EAAE,YAAY;CAC1D,OAAO;AACT;AAEA,MAAa,4BACX,WACG;CACH,MAAM,EAAE,aAAa,WAAW,UAAU,gBAAgB,MAAM;CAChE,MAAM,MAAM,OAAO;CAEnB,gBAAgB;EACd,IAAI,UAAU;EAEd,MAAM,SAAS,EACb,QAAQ,YACV;EACA,OAAO,IAAI,aAAa,EAAE,SAAS,EACjC,uBAAuB,OACzB,CAAC;CACH,GAAG;EAAC;EAAK;EAAa;CAAQ,CAAC;AACjC"}
1
+ {"version":3,"file":"useAssistantInstructions.js","names":[],"sources":["../../../src/react/model-context/useAssistantInstructions.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { AssistantInstructionsConfig } from \"../..\";\n\nexport type { AssistantInstructionsConfig };\n\nconst getInstructions = (\n instruction: string | AssistantInstructionsConfig,\n): AssistantInstructionsConfig => {\n if (typeof instruction === \"string\") return { instruction };\n return instruction;\n};\n\nexport const useAssistantInstructions = (\n config: string | AssistantInstructionsConfig,\n) => {\n const { instruction, disabled = false } = getInstructions(config);\n const aui = useAui();\n\n useEffect(() => {\n if (disabled) return;\n\n const config = {\n system: instruction,\n };\n return aui.modelContext().register({\n getModelContext: () => config,\n });\n }, [aui, instruction, disabled]);\n};\n"],"mappings":";;;AAMA,MAAM,mBACJ,gBACgC;CAChC,IAAI,OAAO,gBAAgB,UAAU,OAAO,EAAE,YAAY;CAC1D,OAAO;AACT;AAEA,MAAa,4BACX,WACG;CACH,MAAM,EAAE,aAAa,WAAW,UAAU,gBAAgB,MAAM;CAChE,MAAM,MAAM,OAAO;CAEnB,gBAAgB;EACd,IAAI,UAAU;EAEd,MAAM,SAAS,EACb,QAAQ,YACV;EACA,OAAO,IAAI,aAAa,CAAC,CAAC,SAAS,EACjC,uBAAuB,OACzB,CAAC;CACH,GAAG;EAAC;EAAK;EAAa;CAAQ,CAAC;AACjC"}
@@ -1,4 +1,4 @@
1
- import { useEffect, useId, useRef } from "react";
1
+ import { useEffect, useId, useRef } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui } from "@assistant-ui/store";
3
3
  //#region src/react/model-context/useAssistantInteractable.ts
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantInteractable.js","names":[],"sources":["../../../src/react/model-context/useAssistantInteractable.ts"],"sourcesContent":["import { useEffect, useId, useRef } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { InteractableStateSchema } from \"../types/scopes/interactables\";\n\nexport type AssistantInteractableProps = {\n description: string;\n stateSchema: InteractableStateSchema;\n initialState: unknown;\n id?: string;\n selected?: boolean;\n};\n\n/**\n * Registers an interactable with the AI assistant.\n *\n * This hook handles registration only. To read and write the interactable's\n * state, use {@link useInteractableState} with the returned id.\n *\n * @returns The interactable instance id.\n */\nexport const useAssistantInteractable = (\n name: string,\n config: AssistantInteractableProps,\n): string => {\n const aui = useAui();\n\n const autoId = useId().replace(/[^a-zA-Z0-9]/g, \"\");\n const id = config.id ?? autoId;\n\n const stateSchemaRef = useRef(config.stateSchema);\n stateSchemaRef.current = config.stateSchema;\n const initialStateRef = useRef(config.initialState);\n initialStateRef.current = config.initialState;\n\n useEffect(() => {\n return aui.interactables().register({\n id,\n name,\n description: config.description,\n stateSchema: stateSchemaRef.current,\n initialState: initialStateRef.current,\n selected: config.selected,\n });\n }, [aui, id, name, config.description, config.selected]);\n\n return id;\n};\n"],"mappings":";;;;;;;;;;;AAoBA,MAAa,4BACX,MACA,WACW;CACX,MAAM,MAAM,OAAO;CAEnB,MAAM,SAAS,MAAM,EAAE,QAAQ,iBAAiB,EAAE;CAClD,MAAM,KAAK,OAAO,MAAM;CAExB,MAAM,iBAAiB,OAAO,OAAO,WAAW;CAChD,eAAe,UAAU,OAAO;CAChC,MAAM,kBAAkB,OAAO,OAAO,YAAY;CAClD,gBAAgB,UAAU,OAAO;CAEjC,gBAAgB;EACd,OAAO,IAAI,cAAc,EAAE,SAAS;GAClC;GACA;GACA,aAAa,OAAO;GACpB,aAAa,eAAe;GAC5B,cAAc,gBAAgB;GAC9B,UAAU,OAAO;EACnB,CAAC;CACH,GAAG;EAAC;EAAK;EAAI;EAAM,OAAO;EAAa,OAAO;CAAQ,CAAC;CAEvD,OAAO;AACT"}
1
+ {"version":3,"file":"useAssistantInteractable.js","names":[],"sources":["../../../src/react/model-context/useAssistantInteractable.ts"],"sourcesContent":["import { useEffect, useId, useRef } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { InteractableStateSchema } from \"../types/scopes/interactables\";\n\nexport type AssistantInteractableProps = {\n description: string;\n stateSchema: InteractableStateSchema;\n initialState: unknown;\n id?: string;\n selected?: boolean;\n};\n\n/**\n * Registers an interactable with the AI assistant.\n *\n * This hook handles registration only. To read and write the interactable's\n * state, use {@link useInteractableState} with the returned id.\n *\n * @returns The interactable instance id.\n */\nexport const useAssistantInteractable = (\n name: string,\n config: AssistantInteractableProps,\n): string => {\n const aui = useAui();\n\n const autoId = useId().replace(/[^a-zA-Z0-9]/g, \"\");\n const id = config.id ?? autoId;\n\n const stateSchemaRef = useRef(config.stateSchema);\n stateSchemaRef.current = config.stateSchema;\n const initialStateRef = useRef(config.initialState);\n initialStateRef.current = config.initialState;\n\n useEffect(() => {\n return aui.interactables().register({\n id,\n name,\n description: config.description,\n stateSchema: stateSchemaRef.current,\n initialState: initialStateRef.current,\n selected: config.selected,\n });\n }, [aui, id, name, config.description, config.selected]);\n\n return id;\n};\n"],"mappings":";;;;;;;;;;;AAoBA,MAAa,4BACX,MACA,WACW;CACX,MAAM,MAAM,OAAO;CAEnB,MAAM,SAAS,MAAM,CAAC,CAAC,QAAQ,iBAAiB,EAAE;CAClD,MAAM,KAAK,OAAO,MAAM;CAExB,MAAM,iBAAiB,OAAO,OAAO,WAAW;CAChD,eAAe,UAAU,OAAO;CAChC,MAAM,kBAAkB,OAAO,OAAO,YAAY;CAClD,gBAAgB,UAAU,OAAO;CAEjC,gBAAgB;EACd,OAAO,IAAI,cAAc,CAAC,CAAC,SAAS;GAClC;GACA;GACA,aAAa,OAAO;GACpB,aAAa,eAAe;GAC5B,cAAc,gBAAgB;GAC9B,UAAU,OAAO;EACnB,CAAC;CACH,GAAG;EAAC;EAAK;EAAI;EAAM,OAAO;EAAa,OAAO;CAAQ,CAAC;CAEvD,OAAO;AACT"}
@@ -1,12 +1,18 @@
1
1
  import { AssistantToolProps as AssistantToolProps$1 } from "../../model-context/types.js";
2
2
  import { ToolCallMessagePartComponent } from "../types/MessagePartComponentTypes.js";
3
+ import { ToolCallText } from "./toolbox.js";
3
4
 
4
5
  //#region src/react/model-context/useAssistantTool.d.ts
5
6
  /**
6
7
  * Props used to register a tool from React.
8
+ *
9
+ * @deprecated Use a toolkit with `Tools({ toolkit })` and register it via
10
+ * `useAui({ tools: Tools({ toolkit }) })` instead. See
11
+ * https://assistant-ui.com/docs/migrations/toolkit-tools.
7
12
  */
8
13
  type AssistantToolProps<TArgs extends Record<string, unknown>, TResult> = AssistantToolProps$1<TArgs, TResult> & {
9
- /** Component used to render calls to this tool in assistant messages. */render?: ToolCallMessagePartComponent<TArgs, TResult> | undefined;
14
+ /** Component used to render calls to this tool in assistant messages. */render?: ToolCallMessagePartComponent<TArgs, TResult> | undefined; /** Lightweight text rendered while a tool call is running or complete. */
15
+ renderText?: ToolCallText<TArgs, TResult> | undefined;
10
16
  };
11
17
  /**
12
18
  * Registers a tool with the assistant model context while the component is
@@ -21,6 +27,10 @@ type AssistantToolProps<TArgs extends Record<string, unknown>, TResult> = Assist
21
27
  *
22
28
  * @param tool - Tool definition and name to register.
23
29
  *
30
+ * @deprecated Use a toolkit with `Tools({ toolkit })` and register it via
31
+ * `useAui({ tools: Tools({ toolkit }) })` instead. See
32
+ * https://assistant-ui.com/docs/migrations/toolkit-tools.
33
+ *
24
34
  * @example
25
35
  * ```tsx
26
36
  * const weatherTool = {
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantTool.d.ts","names":[],"sources":["../../../src/react/model-context/useAssistantTool.ts"],"mappings":";;;;;;;KASY,kBAAA,eACI,MAAA,8BAEZ,oBAAA,CAAuB,KAAA,EAAO,OAAA;EAHJ,yEAK5B,MAAA,GAAS,4BAAA,CAA6B,KAAA,EAAO,OAAA;AAAA;;;;;;;;;;;;;;;;;;;;AAAO;AAiCtD;;;;;;;;;;cAAa,gBAAA,iBACG,MAAA,4BAGd,IAAA,EAAM,kBAAA,CAAmB,KAAA,EAAO,OAAA"}
1
+ {"version":3,"file":"useAssistantTool.d.ts","names":[],"sources":["../../../src/react/model-context/useAssistantTool.ts"],"mappings":";;;;;;;;AAiBA;;;;KAAY,kBAAA,eACI,MAAA,8BAEZ,oBAAA,CAAuB,KAAA,EAAO,OAAA;EAAA,yEAEhC,MAAA,GAAS,4BAAA,CAA6B,KAAA,EAAO,OAAA,eAAP;EAEtC,UAAA,GAAa,YAAA,CAAa,KAAA,EAAO,OAAA;AAAA;;;;;;;;;;;;;;;;;;;;;AAAO;AAqC1C;;;;;;;;;;;;;cAAa,gBAAA,iBACG,MAAA,4BAGd,IAAA,EAAM,kBAAA,CAAmB,KAAA,EAAO,OAAA"}
@@ -1,5 +1,5 @@
1
- import { isStandaloneToolDisplay } from "./toolbox.js";
2
- import { useEffect } from "react";
1
+ import { isStandaloneToolDisplay, makeToolCallTextComponent } from "./toolbox.js";
2
+ import { useEffect, useMemo } from "@assistant-ui/tap/react-shim";
3
3
  import { useAui } from "@assistant-ui/store";
4
4
  //#region src/react/model-context/useAssistantTool.ts
5
5
  /**
@@ -15,6 +15,10 @@ import { useAui } from "@assistant-ui/store";
15
15
  *
16
16
  * @param tool - Tool definition and name to register.
17
17
  *
18
+ * @deprecated Use a toolkit with `Tools({ toolkit })` and register it via
19
+ * `useAui({ tools: Tools({ toolkit }) })` instead. See
20
+ * https://assistant-ui.com/docs/migrations/toolkit-tools.
21
+ *
18
22
  * @example
19
23
  * ```tsx
20
24
  * const weatherTool = {
@@ -35,17 +39,19 @@ import { useAui } from "@assistant-ui/store";
35
39
  const useAssistantTool = (tool) => {
36
40
  const aui = useAui();
37
41
  const standalone = isStandaloneToolDisplay(tool);
42
+ const renderTextComponent = useMemo(() => tool.renderText ? makeToolCallTextComponent(tool.renderText) : void 0, [tool.renderText]);
43
+ const render = tool.render ?? renderTextComponent;
38
44
  useEffect(() => {
39
- if (!tool.render) return void 0;
40
- return aui.tools().setToolUI(tool.toolName, tool.render, { standalone });
45
+ if (!render) return void 0;
46
+ return aui.tools().setToolUI(tool.toolName, render, { standalone });
41
47
  }, [
42
48
  aui,
43
49
  tool.toolName,
44
- tool.render,
50
+ render,
45
51
  standalone
46
52
  ]);
47
53
  useEffect(() => {
48
- const { toolName, render, display, ...rest } = tool;
54
+ const { toolName, render, renderText, display, ...rest } = tool;
49
55
  const context = { tools: { [toolName]: rest } };
50
56
  return aui.modelContext().register({ getModelContext: () => context });
51
57
  }, [aui, tool]);
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantTool.js","names":[],"sources":["../../../src/react/model-context/useAssistantTool.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { ToolCallMessagePartComponent } from \"../types/MessagePartComponentTypes\";\nimport type { AssistantToolProps as CoreAssistantToolProps } from \"../..\";\nimport { isStandaloneToolDisplay } from \"./toolbox\";\n\n/**\n * Props used to register a tool from React.\n */\nexport type AssistantToolProps<\n TArgs extends Record<string, unknown>,\n TResult,\n> = CoreAssistantToolProps<TArgs, TResult> & {\n /** Component used to render calls to this tool in assistant messages. */\n render?: ToolCallMessagePartComponent<TArgs, TResult> | undefined;\n};\n\n/**\n * Registers a tool with the assistant model context while the component is\n * mounted.\n *\n * If `render` is provided, it is also installed as the renderer for matching\n * tool-call message parts. The registration is removed automatically when the\n * component unmounts or the tool definition changes.\n *\n * Pass a referentially stable tool object, such as one declared at module\n * scope or memoized with `useMemo`, to avoid re-registering on every render.\n *\n * @param tool - Tool definition and name to register.\n *\n * @example\n * ```tsx\n * const weatherTool = {\n * toolName: \"get_weather\",\n * type: \"frontend\",\n * description: \"Get the weather for a city.\",\n * parameters: weatherSchema,\n * execute: async ({ city }: { city: string }) => fetchWeather(city),\n * render: WeatherToolUI,\n * } satisfies AssistantToolProps<{ city: string }, Weather>;\n *\n * function WeatherToolRegistration() {\n * useAssistantTool(weatherTool);\n * return null;\n * }\n * ```\n */\nexport const useAssistantTool = <\n TArgs extends Record<string, unknown>,\n TResult,\n>(\n tool: AssistantToolProps<TArgs, TResult>,\n) => {\n const aui = useAui();\n\n const standalone = isStandaloneToolDisplay(tool);\n\n useEffect(() => {\n if (!tool.render) return undefined;\n return aui.tools().setToolUI(tool.toolName, tool.render, { standalone });\n }, [aui, tool.toolName, tool.render, standalone]);\n\n useEffect(() => {\n // `render` and `display` are client-only presentation concerns and never\n // reach the model.\n const { toolName, render, display, ...rest } = tool;\n const context = {\n tools: {\n [toolName]: rest,\n },\n };\n return aui.modelContext().register({\n getModelContext: () => context,\n });\n }, [aui, tool]);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAa,oBAIX,SACG;CACH,MAAM,MAAM,OAAO;CAEnB,MAAM,aAAa,wBAAwB,IAAI;CAE/C,gBAAgB;EACd,IAAI,CAAC,KAAK,QAAQ,OAAO,KAAA;EACzB,OAAO,IAAI,MAAM,EAAE,UAAU,KAAK,UAAU,KAAK,QAAQ,EAAE,WAAW,CAAC;CACzE,GAAG;EAAC;EAAK,KAAK;EAAU,KAAK;EAAQ;CAAU,CAAC;CAEhD,gBAAgB;EAGd,MAAM,EAAE,UAAU,QAAQ,SAAS,GAAG,SAAS;EAC/C,MAAM,UAAU,EACd,OAAO,GACJ,WAAW,KACd,EACF;EACA,OAAO,IAAI,aAAa,EAAE,SAAS,EACjC,uBAAuB,QACzB,CAAC;CACH,GAAG,CAAC,KAAK,IAAI,CAAC;AAChB"}
1
+ {"version":3,"file":"useAssistantTool.js","names":[],"sources":["../../../src/react/model-context/useAssistantTool.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { ToolCallMessagePartComponent } from \"../types/MessagePartComponentTypes\";\nimport type { AssistantToolProps as CoreAssistantToolProps } from \"../..\";\nimport {\n isStandaloneToolDisplay,\n makeToolCallTextComponent,\n type ToolCallText,\n} from \"./toolbox\";\n\n/**\n * Props used to register a tool from React.\n *\n * @deprecated Use a toolkit with `Tools({ toolkit })` and register it via\n * `useAui({ tools: Tools({ toolkit }) })` instead. See\n * https://assistant-ui.com/docs/migrations/toolkit-tools.\n */\nexport type AssistantToolProps<\n TArgs extends Record<string, unknown>,\n TResult,\n> = CoreAssistantToolProps<TArgs, TResult> & {\n /** Component used to render calls to this tool in assistant messages. */\n render?: ToolCallMessagePartComponent<TArgs, TResult> | undefined;\n /** Lightweight text rendered while a tool call is running or complete. */\n renderText?: ToolCallText<TArgs, TResult> | undefined;\n};\n\n/**\n * Registers a tool with the assistant model context while the component is\n * mounted.\n *\n * If `render` is provided, it is also installed as the renderer for matching\n * tool-call message parts. The registration is removed automatically when the\n * component unmounts or the tool definition changes.\n *\n * Pass a referentially stable tool object, such as one declared at module\n * scope or memoized with `useMemo`, to avoid re-registering on every render.\n *\n * @param tool - Tool definition and name to register.\n *\n * @deprecated Use a toolkit with `Tools({ toolkit })` and register it via\n * `useAui({ tools: Tools({ toolkit }) })` instead. See\n * https://assistant-ui.com/docs/migrations/toolkit-tools.\n *\n * @example\n * ```tsx\n * const weatherTool = {\n * toolName: \"get_weather\",\n * type: \"frontend\",\n * description: \"Get the weather for a city.\",\n * parameters: weatherSchema,\n * execute: async ({ city }: { city: string }) => fetchWeather(city),\n * render: WeatherToolUI,\n * } satisfies AssistantToolProps<{ city: string }, Weather>;\n *\n * function WeatherToolRegistration() {\n * useAssistantTool(weatherTool);\n * return null;\n * }\n * ```\n */\nexport const useAssistantTool = <\n TArgs extends Record<string, unknown>,\n TResult,\n>(\n tool: AssistantToolProps<TArgs, TResult>,\n) => {\n const aui = useAui();\n\n const standalone = isStandaloneToolDisplay(tool);\n const renderTextComponent = useMemo(\n () =>\n tool.renderText ? makeToolCallTextComponent(tool.renderText) : undefined,\n [tool.renderText],\n );\n const render = tool.render ?? renderTextComponent;\n\n useEffect(() => {\n if (!render) return undefined;\n return aui.tools().setToolUI(tool.toolName, render, { standalone });\n }, [aui, tool.toolName, render, standalone]);\n\n useEffect(() => {\n // `render`, `renderText`, and `display` are client-only presentation\n // concerns and never reach the model.\n const { toolName, render, renderText, display, ...rest } = tool;\n const context = {\n tools: {\n [toolName]: rest,\n },\n };\n return aui.modelContext().register({\n getModelContext: () => context,\n });\n }, [aui, tool]);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,MAAa,oBAIX,SACG;CACH,MAAM,MAAM,OAAO;CAEnB,MAAM,aAAa,wBAAwB,IAAI;CAC/C,MAAM,sBAAsB,cAExB,KAAK,aAAa,0BAA0B,KAAK,UAAU,IAAI,KAAA,GACjE,CAAC,KAAK,UAAU,CAClB;CACA,MAAM,SAAS,KAAK,UAAU;CAE9B,gBAAgB;EACd,IAAI,CAAC,QAAQ,OAAO,KAAA;EACpB,OAAO,IAAI,MAAM,CAAC,CAAC,UAAU,KAAK,UAAU,QAAQ,EAAE,WAAW,CAAC;CACpE,GAAG;EAAC;EAAK,KAAK;EAAU;EAAQ;CAAU,CAAC;CAE3C,gBAAgB;EAGd,MAAM,EAAE,UAAU,QAAQ,YAAY,SAAS,GAAG,SAAS;EAC3D,MAAM,UAAU,EACd,OAAO,GACJ,WAAW,KACd,EACF;EACA,OAAO,IAAI,aAAa,CAAC,CAAC,SAAS,EACjC,uBAAuB,QACzB,CAAC;CACH,GAAG,CAAC,KAAK,IAAI,CAAC;AAChB"}
@@ -1,7 +1,13 @@
1
1
  import { ToolCallMessagePartComponent } from "../types/MessagePartComponentTypes.js";
2
2
 
3
3
  //#region src/react/model-context/useAssistantToolUI.d.ts
4
- /** Props used to register a renderer for tool-call message parts. */
4
+ /**
5
+ * Props used to register a renderer for tool-call message parts.
6
+ *
7
+ * @deprecated Put `render`/`renderText` on the matching toolkit entry, or use
8
+ * `MessagePrimitive.Parts` inline tool render overrides for per-message UI.
9
+ * See https://assistant-ui.com/docs/migrations/toolkit-tools.
10
+ */
5
11
  type AssistantToolUIProps<TArgs, TResult> = {
6
12
  /** Name of the tool whose calls should use this renderer. */toolName: string; /** Component rendered for matching tool-call message parts. */
7
13
  render: ToolCallMessagePartComponent<TArgs, TResult>;
@@ -15,11 +21,14 @@ type AssistantToolUIProps<TArgs, TResult> = {
15
21
  /**
16
22
  * Registers a tool-call renderer while the component is mounted.
17
23
  *
18
- * This only affects rendering. Pair it with {@link useAssistantTool},
19
- * {@link Tools}, or a backend tool registry to expose the actual tool
20
- * definition to the model.
24
+ * This only affects rendering. Pair it with {@link Tools} or a backend tool
25
+ * registry to expose the actual tool definition to the model.
21
26
  *
22
27
  * @param tool - Tool renderer registration, or `null` to skip registration.
28
+ *
29
+ * @deprecated Put `render`/`renderText` on the matching toolkit entry, or use
30
+ * `MessagePrimitive.Parts` inline tool render overrides for per-message UI.
31
+ * See https://assistant-ui.com/docs/migrations/toolkit-tools.
23
32
  */
24
33
  declare const useAssistantToolUI: (tool: AssistantToolUIProps<any, any> | null) => void;
25
34
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantToolUI.d.ts","names":[],"sources":["../../../src/react/model-context/useAssistantToolUI.ts"],"mappings":";;;;KAKY,oBAAA;EAAA,6DAEV,QAAA,UAF8B;EAI9B,MAAA,EAAQ,4BAAA,CAA6B,KAAA,EAAO,OAAA;EAAA;;;;;EAM5C,OAAA;AAAA;;;;;;;AAAO;AAYT;;cAAa,kBAAA,GACX,IAA2C,EAArC,oBAAoB"}
1
+ {"version":3,"file":"useAssistantToolUI.d.ts","names":[],"sources":["../../../src/react/model-context/useAssistantToolUI.ts"],"mappings":";;;;;AAWA;;;;;KAAY,oBAAA;EAI0B,6DAFpC,QAAA,UAF+B;EAI/B,MAAA,EAAQ,4BAAA,CAA6B,KAAA,EAAO,OAAA;EAF5C;;;;;EAQA,OAAA;AAAA;AAAO;AAeT;;;;AAC6C;;;;;;;AAhBpC,cAeI,kBAAA,GACX,IAA2C,EAArC,oBAAoB"}
@@ -1,14 +1,17 @@
1
- import { useEffect } from "react";
1
+ import { useEffect } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui } from "@assistant-ui/store";
3
3
  //#region src/react/model-context/useAssistantToolUI.ts
4
4
  /**
5
5
  * Registers a tool-call renderer while the component is mounted.
6
6
  *
7
- * This only affects rendering. Pair it with {@link useAssistantTool},
8
- * {@link Tools}, or a backend tool registry to expose the actual tool
9
- * definition to the model.
7
+ * This only affects rendering. Pair it with {@link Tools} or a backend tool
8
+ * registry to expose the actual tool definition to the model.
10
9
  *
11
10
  * @param tool - Tool renderer registration, or `null` to skip registration.
11
+ *
12
+ * @deprecated Put `render`/`renderText` on the matching toolkit entry, or use
13
+ * `MessagePrimitive.Parts` inline tool render overrides for per-message UI.
14
+ * See https://assistant-ui.com/docs/migrations/toolkit-tools.
12
15
  */
13
16
  const useAssistantToolUI = (tool) => {
14
17
  const aui = useAui();
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantToolUI.js","names":[],"sources":["../../../src/react/model-context/useAssistantToolUI.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { ToolCallMessagePartComponent } from \"../types/MessagePartComponentTypes\";\n\n/** Props used to register a renderer for tool-call message parts. */\nexport type AssistantToolUIProps<TArgs, TResult> = {\n /** Name of the tool whose calls should use this renderer. */\n toolName: string;\n /** Component rendered for matching tool-call message parts. */\n render: ToolCallMessagePartComponent<TArgs, TResult>;\n /**\n * How the UI is presented relative to the chain-of-thought trace. Set\n * `\"standalone\"` to surface it on its own (e.g. human-in-the-loop or\n * generative UI for a backend/MCP tool). Defaults to `\"inline\"`.\n */\n display?: \"standalone\" | \"inline\";\n};\n\n/**\n * Registers a tool-call renderer while the component is mounted.\n *\n * This only affects rendering. Pair it with {@link useAssistantTool},\n * {@link Tools}, or a backend tool registry to expose the actual tool\n * definition to the model.\n *\n * @param tool - Tool renderer registration, or `null` to skip registration.\n */\nexport const useAssistantToolUI = (\n tool: AssistantToolUIProps<any, any> | null,\n) => {\n const aui = useAui();\n const standalone = tool?.display === \"standalone\";\n useEffect(() => {\n if (!tool?.toolName || !tool?.render) return undefined;\n return aui.tools().setToolUI(tool.toolName, tool.render, { standalone });\n }, [aui, tool?.toolName, tool?.render, standalone]);\n};\n"],"mappings":";;;;;;;;;;;;AA2BA,MAAa,sBACX,SACG;CACH,MAAM,MAAM,OAAO;CACnB,MAAM,aAAa,MAAM,YAAY;CACrC,gBAAgB;EACd,IAAI,CAAC,MAAM,YAAY,CAAC,MAAM,QAAQ,OAAO,KAAA;EAC7C,OAAO,IAAI,MAAM,EAAE,UAAU,KAAK,UAAU,KAAK,QAAQ,EAAE,WAAW,CAAC;CACzE,GAAG;EAAC;EAAK,MAAM;EAAU,MAAM;EAAQ;CAAU,CAAC;AACpD"}
1
+ {"version":3,"file":"useAssistantToolUI.js","names":[],"sources":["../../../src/react/model-context/useAssistantToolUI.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { ToolCallMessagePartComponent } from \"../types/MessagePartComponentTypes\";\n\n/**\n * Props used to register a renderer for tool-call message parts.\n *\n * @deprecated Put `render`/`renderText` on the matching toolkit entry, or use\n * `MessagePrimitive.Parts` inline tool render overrides for per-message UI.\n * See https://assistant-ui.com/docs/migrations/toolkit-tools.\n */\nexport type AssistantToolUIProps<TArgs, TResult> = {\n /** Name of the tool whose calls should use this renderer. */\n toolName: string;\n /** Component rendered for matching tool-call message parts. */\n render: ToolCallMessagePartComponent<TArgs, TResult>;\n /**\n * How the UI is presented relative to the chain-of-thought trace. Set\n * `\"standalone\"` to surface it on its own (e.g. human-in-the-loop or\n * generative UI for a backend/MCP tool). Defaults to `\"inline\"`.\n */\n display?: \"standalone\" | \"inline\";\n};\n\n/**\n * Registers a tool-call renderer while the component is mounted.\n *\n * This only affects rendering. Pair it with {@link Tools} or a backend tool\n * registry to expose the actual tool definition to the model.\n *\n * @param tool - Tool renderer registration, or `null` to skip registration.\n *\n * @deprecated Put `render`/`renderText` on the matching toolkit entry, or use\n * `MessagePrimitive.Parts` inline tool render overrides for per-message UI.\n * See https://assistant-ui.com/docs/migrations/toolkit-tools.\n */\nexport const useAssistantToolUI = (\n tool: AssistantToolUIProps<any, any> | null,\n) => {\n const aui = useAui();\n const standalone = tool?.display === \"standalone\";\n useEffect(() => {\n if (!tool?.toolName || !tool?.render) return undefined;\n return aui.tools().setToolUI(tool.toolName, tool.render, { standalone });\n }, [aui, tool?.toolName, tool?.render, standalone]);\n};\n"],"mappings":";;;;;;;;;;;;;;;AAoCA,MAAa,sBACX,SACG;CACH,MAAM,MAAM,OAAO;CACnB,MAAM,aAAa,MAAM,YAAY;CACrC,gBAAgB;EACd,IAAI,CAAC,MAAM,YAAY,CAAC,MAAM,QAAQ,OAAO,KAAA;EAC7C,OAAO,IAAI,MAAM,CAAC,CAAC,UAAU,KAAK,UAAU,KAAK,QAAQ,EAAE,WAAW,CAAC;CACzE,GAAG;EAAC;EAAK,MAAM;EAAU,MAAM;EAAQ;CAAU,CAAC;AACpD"}
@@ -0,0 +1,22 @@
1
+ import { Tool } from "assistant-stream";
2
+
3
+ //#region src/react/model-context/useAuiToolOverrides.d.ts
4
+ type AuiToolOverride<TArgs extends Record<string, unknown> = Record<string, unknown>, TResult = unknown> = Partial<Tool<TArgs, TResult>>;
5
+ type AuiToolOverrides = Record<string, AuiToolOverride<any, any>>;
6
+ /**
7
+ * Overrides toolkit entries for the current assistant scope.
8
+ *
9
+ * This is intended for dynamic local-state tools whose model-facing contract is
10
+ * declared in a `"use generative"` toolkit file with `execute: stubTool()`, but
11
+ * whose actual executor must close over React state in the mounted component.
12
+ * Keep the override keys stable after mount; dynamic key addition/removal is not
13
+ * currently observed.
14
+ * Overrides are registered at priority 1000, above toolkit defaults. Only one
15
+ * mounted override provider may define a given tool name at a time.
16
+ *
17
+ * @deprecated Experimental, API may change.
18
+ */
19
+ declare function useAuiToolOverrides(overrides: AuiToolOverrides): void;
20
+ //#endregion
21
+ export { useAuiToolOverrides };
22
+ //# sourceMappingURL=useAuiToolOverrides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuiToolOverrides.d.ts","names":[],"sources":["../../../src/react/model-context/useAuiToolOverrides.ts"],"mappings":";;;KAIK,eAAA,eACW,MAAA,oBAA0B,MAAA,wCAEtC,OAAA,CAAQ,IAAA,CAAK,KAAA,EAAO,OAAA;AAAA,KAEnB,gBAAA,GAAmB,MAAM,SAAS,eAAA;AAPM;;;;;;;;;;;;;AAAA,iBAsB7B,mBAAA,CAAoB,SAA2B,EAAhB,gBAAgB"}
@@ -0,0 +1,31 @@
1
+ import { useEffect, useRef } from "@assistant-ui/tap/react-shim";
2
+ import { useAui } from "@assistant-ui/store";
3
+ //#region src/react/model-context/useAuiToolOverrides.ts
4
+ /**
5
+ * Overrides toolkit entries for the current assistant scope.
6
+ *
7
+ * This is intended for dynamic local-state tools whose model-facing contract is
8
+ * declared in a `"use generative"` toolkit file with `execute: stubTool()`, but
9
+ * whose actual executor must close over React state in the mounted component.
10
+ * Keep the override keys stable after mount; dynamic key addition/removal is not
11
+ * currently observed.
12
+ * Overrides are registered at priority 1000, above toolkit defaults. Only one
13
+ * mounted override provider may define a given tool name at a time.
14
+ *
15
+ * @deprecated Experimental, API may change.
16
+ */
17
+ function useAuiToolOverrides(overrides) {
18
+ const aui = useAui();
19
+ const overridesRef = useRef(overrides);
20
+ overridesRef.current = overrides;
21
+ useEffect(() => {
22
+ return aui.modelContext().register({ getModelContext: () => ({
23
+ priority: 1e3,
24
+ tools: overridesRef.current
25
+ }) });
26
+ }, [aui]);
27
+ }
28
+ //#endregion
29
+ export { useAuiToolOverrides };
30
+
31
+ //# sourceMappingURL=useAuiToolOverrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuiToolOverrides.js","names":[],"sources":["../../../src/react/model-context/useAuiToolOverrides.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { Tool } from \"assistant-stream\";\n\ntype AuiToolOverride<\n TArgs extends Record<string, unknown> = Record<string, unknown>,\n TResult = unknown,\n> = Partial<Tool<TArgs, TResult>>;\n\ntype AuiToolOverrides = Record<string, AuiToolOverride<any, any>>;\n\n/**\n * Overrides toolkit entries for the current assistant scope.\n *\n * This is intended for dynamic local-state tools whose model-facing contract is\n * declared in a `\"use generative\"` toolkit file with `execute: stubTool()`, but\n * whose actual executor must close over React state in the mounted component.\n * Keep the override keys stable after mount; dynamic key addition/removal is not\n * currently observed.\n * Overrides are registered at priority 1000, above toolkit defaults. Only one\n * mounted override provider may define a given tool name at a time.\n *\n * @deprecated Experimental, API may change.\n */\nexport function useAuiToolOverrides(overrides: AuiToolOverrides): void {\n const aui = useAui();\n const overridesRef = useRef(overrides);\n overridesRef.current = overrides;\n\n useEffect(() => {\n return aui.modelContext().register({\n getModelContext: () => ({\n priority: 1000,\n tools: overridesRef.current as Record<string, Tool<any, any>>,\n }),\n });\n }, [aui]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAwBA,SAAgB,oBAAoB,WAAmC;CACrE,MAAM,MAAM,OAAO;CACnB,MAAM,eAAe,OAAO,SAAS;CACrC,aAAa,UAAU;CAEvB,gBAAgB;EACd,OAAO,IAAI,aAAa,CAAC,CAAC,SAAS,EACjC,wBAAwB;GACtB,UAAU;GACV,OAAO,aAAa;EACtB,GACF,CAAC;CACH,GAAG,CAAC,GAAG,CAAC;AACV"}
@@ -1,4 +1,4 @@
1
- import { useCallback, useEffect, useState } from "react";
1
+ import { useCallback, useEffect, useState } from "@assistant-ui/tap/react-shim";
2
2
  import { create } from "zustand";
3
3
  //#region src/react/model-context/useInlineRender.ts
4
4
  const useInlineRender = (toolUI) => {
@@ -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,EAAE,OAAO,IAAI;CAC1B,GACA,CAAC,cAAc,CACjB;AACF"}
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,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/model-context/useInteractableState.ts
4
4
  /**
@@ -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,KAAK,KAAK,KACzD;CAEH,MAAM,oBAAoB,aAAa,MAAM,EAAE,cAAc,YAAY,GAAG;CAE5E,MAAM,WAAW,aACd,YAAkC;EACjC,IAAI,cAAc,EAAE,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,EAAE,YAAY,IAAI,QAAQ;CAC9C,GACA,CAAC,KAAK,EAAE,CACV;CAEA,MAAM,QAAQ,kBAAkB,IAAI,cAAc,EAAE,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":[],"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,5 +1,5 @@
1
1
  import { getPartialJsonObjectFieldState, getPartialJsonObjectMeta } from "assistant-stream/utils";
2
- import { useMemo } from "react";
2
+ import { useMemo } from "@assistant-ui/tap/react-shim";
3
3
  import { useAuiState } from "@assistant-ui/store";
4
4
  //#region src/react/model-context/useToolArgsStatus.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useActionBarCopy.ts
4
4
  const useActionBarCopy = ({ copiedDuration = 3e3, copyToClipboard } = {}) => {
@@ -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,EAAE,YAAY;GAC1E,IAAI,CAAC,aAAa;GAElB,MAAM,QAAQ,0BAA0B,CAAC;GAGzC,QAAQ,QAAQ,MAAM,WAAW,CAAC,EAAE,WAC5B;IACJ,IAAI,QAAQ,EAAE,YAAY,IAAI;IAC9B,iBAAiB,IAAI,QAAQ,EAAE,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":[],"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,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useActionBarEdit.ts
4
4
  const useActionBarEdit = () => {
@@ -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,EAAE,UAAU;EAC3B,GAAG,CAAC,GAAG,CAEK;EAAG;CAAS;AAC1B"}
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,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useActionBarFeedback.ts
4
4
  const useActionBarFeedbackPositive = () => {
@@ -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,EAAE,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,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;EACnD,GAAG,CAAC,GAAG,CAEO;EAAG;CAAY;AAC/B"}
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,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useActionBarReload.ts
4
4
  const useActionBarReload = () => {
@@ -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,EAAE,OAAO;EACvB,GAAG,CAAC,GAAG,CAEO;EAAG;CAAS;AAC5B"}
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,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useActionBarSpeak.ts
4
4
  const useActionBarSpeak = () => {
@@ -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,EAAE,MAAM;EACtB,GAAG,CAAC,GAAG,CAEM;EAAG;CAAS;AAC3B"}
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,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useActionBarStopSpeaking.ts
4
4
  const useActionBarStopSpeaking = () => {
@@ -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,EAAE,aAAa;EAC7B,GAAG,CAAC,GAAG,CAEa;EAAG;CAAS;AAClC"}
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,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useBranchPickerNext.ts
4
4
  const useBranchPickerNext = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useBranchPickerNext.js","names":[],"sources":["../../../src/react/primitive-hooks/useBranchPickerNext.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useBranchPickerNext = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => {\n if (s.message.branchNumber >= s.message.branchCount) return true;\n if (s.thread.isRunning && !s.thread.capabilities.switchBranchDuringRun) {\n return true;\n }\n return false;\n });\n\n const next = useCallback(() => {\n aui.message().switchToBranch({ position: \"next\" });\n }, [aui]);\n\n return { next, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,4BAA4B;CACvC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM;EAClC,IAAI,EAAE,QAAQ,gBAAgB,EAAE,QAAQ,aAAa,OAAO;EAC5D,IAAI,EAAE,OAAO,aAAa,CAAC,EAAE,OAAO,aAAa,uBAC/C,OAAO;EAET,OAAO;CACT,CAAC;CAMD,OAAO;EAAE,MAJI,kBAAkB;GAC7B,IAAI,QAAQ,EAAE,eAAe,EAAE,UAAU,OAAO,CAAC;EACnD,GAAG,CAAC,GAAG,CAEK;EAAG;CAAS;AAC1B"}
1
+ {"version":3,"file":"useBranchPickerNext.js","names":[],"sources":["../../../src/react/primitive-hooks/useBranchPickerNext.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useBranchPickerNext = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => {\n if (s.message.branchNumber >= s.message.branchCount) return true;\n if (s.thread.isRunning && !s.thread.capabilities.switchBranchDuringRun) {\n return true;\n }\n return false;\n });\n\n const next = useCallback(() => {\n aui.message().switchToBranch({ position: \"next\" });\n }, [aui]);\n\n return { next, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,4BAA4B;CACvC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM;EAClC,IAAI,EAAE,QAAQ,gBAAgB,EAAE,QAAQ,aAAa,OAAO;EAC5D,IAAI,EAAE,OAAO,aAAa,CAAC,EAAE,OAAO,aAAa,uBAC/C,OAAO;EAET,OAAO;CACT,CAAC;CAMD,OAAO;EAAE,MAJI,kBAAkB;GAC7B,IAAI,QAAQ,CAAC,CAAC,eAAe,EAAE,UAAU,OAAO,CAAC;EACnD,GAAG,CAAC,GAAG,CAEK;EAAG;CAAS;AAC1B"}
@@ -1,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useBranchPickerPrevious.ts
4
4
  const useBranchPickerPrevious = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useBranchPickerPrevious.js","names":[],"sources":["../../../src/react/primitive-hooks/useBranchPickerPrevious.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useBranchPickerPrevious = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => {\n if (s.message.branchNumber <= 1) return true;\n if (s.thread.isRunning && !s.thread.capabilities.switchBranchDuringRun) {\n return true;\n }\n return false;\n });\n\n const previous = useCallback(() => {\n aui.message().switchToBranch({ position: \"previous\" });\n }, [aui]);\n\n return { previous, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,gCAAgC;CAC3C,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM;EAClC,IAAI,EAAE,QAAQ,gBAAgB,GAAG,OAAO;EACxC,IAAI,EAAE,OAAO,aAAa,CAAC,EAAE,OAAO,aAAa,uBAC/C,OAAO;EAET,OAAO;CACT,CAAC;CAMD,OAAO;EAAE,UAJQ,kBAAkB;GACjC,IAAI,QAAQ,EAAE,eAAe,EAAE,UAAU,WAAW,CAAC;EACvD,GAAG,CAAC,GAAG,CAES;EAAG;CAAS;AAC9B"}
1
+ {"version":3,"file":"useBranchPickerPrevious.js","names":[],"sources":["../../../src/react/primitive-hooks/useBranchPickerPrevious.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useBranchPickerPrevious = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => {\n if (s.message.branchNumber <= 1) return true;\n if (s.thread.isRunning && !s.thread.capabilities.switchBranchDuringRun) {\n return true;\n }\n return false;\n });\n\n const previous = useCallback(() => {\n aui.message().switchToBranch({ position: \"previous\" });\n }, [aui]);\n\n return { previous, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,gCAAgC;CAC3C,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM;EAClC,IAAI,EAAE,QAAQ,gBAAgB,GAAG,OAAO;EACxC,IAAI,EAAE,OAAO,aAAa,CAAC,EAAE,OAAO,aAAa,uBAC/C,OAAO;EAET,OAAO;CACT,CAAC;CAMD,OAAO;EAAE,UAJQ,kBAAkB;GACjC,IAAI,QAAQ,CAAC,CAAC,eAAe,EAAE,UAAU,WAAW,CAAC;EACvD,GAAG,CAAC,GAAG,CAES;EAAG;CAAS;AAC9B"}
@@ -1,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useComposerAddAttachment.ts
4
4
  const useComposerAddAttachment = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useComposerAddAttachment.js","names":[],"sources":["../../../src/react/primitive-hooks/useComposerAddAttachment.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport type { CreateAttachment } from \"../../types/attachment\";\n\nexport const useComposerAddAttachment = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => !s.composer.isEditing);\n\n const addAttachment = useCallback(\n (file: File | CreateAttachment) => {\n return aui.composer().addAttachment(file);\n },\n [aui],\n );\n\n return { addAttachment, disabled };\n};\n"],"mappings":";;;AAIA,MAAa,iCAAiC;CAC5C,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM,CAAC,EAAE,SAAS,SAAS;CASzD,OAAO;EAAE,eAPa,aACnB,SAAkC;GACjC,OAAO,IAAI,SAAS,EAAE,cAAc,IAAI;EAC1C,GACA,CAAC,GAAG,CAGe;EAAG;CAAS;AACnC"}
1
+ {"version":3,"file":"useComposerAddAttachment.js","names":[],"sources":["../../../src/react/primitive-hooks/useComposerAddAttachment.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport type { CreateAttachment } from \"../../types/attachment\";\n\nexport const useComposerAddAttachment = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => !s.composer.isEditing);\n\n const addAttachment = useCallback(\n (file: File | CreateAttachment) => {\n return aui.composer().addAttachment(file);\n },\n [aui],\n );\n\n return { addAttachment, disabled };\n};\n"],"mappings":";;;AAIA,MAAa,iCAAiC;CAC5C,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM,CAAC,EAAE,SAAS,SAAS;CASzD,OAAO;EAAE,eAPa,aACnB,SAAkC;GACjC,OAAO,IAAI,SAAS,CAAC,CAAC,cAAc,IAAI;EAC1C,GACA,CAAC,GAAG,CAGe;EAAG;CAAS;AACnC"}
@@ -1,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useComposerCancel.ts
4
4
  const useComposerCancel = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useComposerCancel.js","names":[],"sources":["../../../src/react/primitive-hooks/useComposerCancel.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useComposerCancel = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => !s.composer.canCancel);\n\n const cancel = useCallback(() => {\n aui.composer().cancel();\n }, [aui]);\n\n return { cancel, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,0BAA0B;CACrC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM,CAAC,EAAE,SAAS,SAAS;CAMzD,OAAO;EAAE,QAJM,kBAAkB;GAC/B,IAAI,SAAS,EAAE,OAAO;EACxB,GAAG,CAAC,GAAG,CAEO;EAAG;CAAS;AAC5B"}
1
+ {"version":3,"file":"useComposerCancel.js","names":[],"sources":["../../../src/react/primitive-hooks/useComposerCancel.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useComposerCancel = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => !s.composer.canCancel);\n\n const cancel = useCallback(() => {\n aui.composer().cancel();\n }, [aui]);\n\n return { cancel, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,0BAA0B;CACrC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM,CAAC,EAAE,SAAS,SAAS;CAMzD,OAAO;EAAE,QAJM,kBAAkB;GAC/B,IAAI,SAAS,CAAC,CAAC,OAAO;EACxB,GAAG,CAAC,GAAG,CAEO;EAAG;CAAS;AAC5B"}
@@ -1,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useComposerDictate.ts
4
4
  const useComposerDictate = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useComposerDictate.js","names":[],"sources":["../../../src/react/primitive-hooks/useComposerDictate.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useComposerDictate = () => {\n const aui = useAui();\n const disabled = useAuiState(\n (s) =>\n s.composer.dictation != null ||\n !s.thread.capabilities.dictation ||\n !s.composer.isEditing,\n );\n\n const startDictation = useCallback(() => {\n aui.composer().startDictation();\n }, [aui]);\n\n return { startDictation, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,2BAA2B;CACtC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aACd,MACC,EAAE,SAAS,aAAa,QACxB,CAAC,EAAE,OAAO,aAAa,aACvB,CAAC,EAAE,SAAS,SAChB;CAMA,OAAO;EAAE,gBAJc,kBAAkB;GACvC,IAAI,SAAS,EAAE,eAAe;EAChC,GAAG,CAAC,GAAG,CAEe;EAAG;CAAS;AACpC"}
1
+ {"version":3,"file":"useComposerDictate.js","names":[],"sources":["../../../src/react/primitive-hooks/useComposerDictate.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useComposerDictate = () => {\n const aui = useAui();\n const disabled = useAuiState(\n (s) =>\n s.composer.dictation != null ||\n !s.thread.capabilities.dictation ||\n !s.composer.isEditing,\n );\n\n const startDictation = useCallback(() => {\n aui.composer().startDictation();\n }, [aui]);\n\n return { startDictation, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,2BAA2B;CACtC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aACd,MACC,EAAE,SAAS,aAAa,QACxB,CAAC,EAAE,OAAO,aAAa,aACvB,CAAC,EAAE,SAAS,SAChB;CAMA,OAAO;EAAE,gBAJc,kBAAkB;GACvC,IAAI,SAAS,CAAC,CAAC,eAAe;EAChC,GAAG,CAAC,GAAG,CAEe;EAAG;CAAS;AACpC"}
@@ -1,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useComposerSend.ts
4
4
  const useComposerSend = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useComposerSend.js","names":[],"sources":["../../../src/react/primitive-hooks/useComposerSend.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport type { ComposerSendOptions } from \"../../store/scopes/composer\";\n\nexport const useComposerSend = () => {\n const aui = useAui();\n const disabled = useAuiState(\n (s) =>\n !s.composer.canSend ||\n (s.thread.isRunning && !s.thread.capabilities.queue),\n );\n\n const send = useCallback(\n (opts?: ComposerSendOptions) => {\n aui.composer().send(opts);\n },\n [aui],\n );\n\n return { send, disabled };\n};\n"],"mappings":";;;AAIA,MAAa,wBAAwB;CACnC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aACd,MACC,CAAC,EAAE,SAAS,WACX,EAAE,OAAO,aAAa,CAAC,EAAE,OAAO,aAAa,KAClD;CASA,OAAO;EAAE,MAPI,aACV,SAA+B;GAC9B,IAAI,SAAS,EAAE,KAAK,IAAI;EAC1B,GACA,CAAC,GAAG,CAGM;EAAG;CAAS;AAC1B"}
1
+ {"version":3,"file":"useComposerSend.js","names":[],"sources":["../../../src/react/primitive-hooks/useComposerSend.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport type { ComposerSendOptions } from \"../../store/scopes/composer\";\n\nexport const useComposerSend = () => {\n const aui = useAui();\n const disabled = useAuiState(\n (s) =>\n !s.composer.canSend ||\n (s.thread.isRunning && !s.thread.capabilities.queue),\n );\n\n const send = useCallback(\n (opts?: ComposerSendOptions) => {\n aui.composer().send(opts);\n },\n [aui],\n );\n\n return { send, disabled };\n};\n"],"mappings":";;;AAIA,MAAa,wBAAwB;CACnC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aACd,MACC,CAAC,EAAE,SAAS,WACX,EAAE,OAAO,aAAa,CAAC,EAAE,OAAO,aAAa,KAClD;CASA,OAAO;EAAE,MAPI,aACV,SAA+B;GAC9B,IAAI,SAAS,CAAC,CAAC,KAAK,IAAI;EAC1B,GACA,CAAC,GAAG,CAGM;EAAG;CAAS;AAC1B"}
@@ -1,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useEditComposerCancel.ts
4
4
  const useEditComposerCancel = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useEditComposerCancel.js","names":[],"sources":["../../../src/react/primitive-hooks/useEditComposerCancel.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\n\nexport const useEditComposerCancel = () => {\n const aui = useAui();\n\n const cancel = useCallback(() => {\n aui.composer().cancel();\n }, [aui]);\n\n return { cancel };\n};\n"],"mappings":";;;AAGA,MAAa,8BAA8B;CACzC,MAAM,MAAM,OAAO;CAMnB,OAAO,EAAE,QAJM,kBAAkB;EAC/B,IAAI,SAAS,EAAE,OAAO;CACxB,GAAG,CAAC,GAAG,CAEO,EAAE;AAClB"}
1
+ {"version":3,"file":"useEditComposerCancel.js","names":[],"sources":["../../../src/react/primitive-hooks/useEditComposerCancel.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\n\nexport const useEditComposerCancel = () => {\n const aui = useAui();\n\n const cancel = useCallback(() => {\n aui.composer().cancel();\n }, [aui]);\n\n return { cancel };\n};\n"],"mappings":";;;AAGA,MAAa,8BAA8B;CACzC,MAAM,MAAM,OAAO;CAMnB,OAAO,EAAE,QAJM,kBAAkB;EAC/B,IAAI,SAAS,CAAC,CAAC,OAAO;CACxB,GAAG,CAAC,GAAG,CAEO,EAAE;AAClB"}
@@ -1,4 +1,4 @@
1
- import { useCallback } from "react";
1
+ import { useCallback } from "@assistant-ui/tap/react-shim";
2
2
  import { useAui, useAuiState } from "@assistant-ui/store";
3
3
  //#region src/react/primitive-hooks/useEditComposerSend.ts
4
4
  const useEditComposerSend = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useEditComposerSend.js","names":[],"sources":["../../../src/react/primitive-hooks/useEditComposerSend.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useEditComposerSend = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.composer.isEmpty);\n\n const send = useCallback(() => {\n aui.composer().send();\n }, [aui]);\n\n return { send, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,4BAA4B;CACvC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM,EAAE,SAAS,OAAO;CAMtD,OAAO;EAAE,MAJI,kBAAkB;GAC7B,IAAI,SAAS,EAAE,KAAK;EACtB,GAAG,CAAC,GAAG,CAEK;EAAG;CAAS;AAC1B"}
1
+ {"version":3,"file":"useEditComposerSend.js","names":[],"sources":["../../../src/react/primitive-hooks/useEditComposerSend.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useEditComposerSend = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.composer.isEmpty);\n\n const send = useCallback(() => {\n aui.composer().send();\n }, [aui]);\n\n return { send, disabled };\n};\n"],"mappings":";;;AAGA,MAAa,4BAA4B;CACvC,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM,EAAE,SAAS,OAAO;CAMtD,OAAO;EAAE,MAJI,kBAAkB;GAC7B,IAAI,SAAS,CAAC,CAAC,KAAK;EACtB,GAAG,CAAC,GAAG,CAEK;EAAG;CAAS;AAC1B"}