@assistant-ui/core 0.2.14 → 0.2.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/dist/adapters/attachment.js.map +1 -1
  2. package/dist/adapters/directive-formatter.js.map +1 -1
  3. package/dist/adapters/speech.js.map +1 -1
  4. package/dist/adapters/voice.js.map +1 -1
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/internal/duplicate-detection.js.map +1 -1
  8. package/dist/internal.d.ts +2 -1
  9. package/dist/internal.js +2 -1
  10. package/dist/model-context/frame/host.js.map +1 -1
  11. package/dist/model-context/frame/provider.js.map +1 -1
  12. package/dist/model-context/frame/types.js.map +1 -1
  13. package/dist/model-context/registry.js.map +1 -1
  14. package/dist/model-context/tool.js.map +1 -1
  15. package/dist/model-context/types.d.ts +1 -0
  16. package/dist/model-context/types.d.ts.map +1 -1
  17. package/dist/model-context/types.js.map +1 -1
  18. package/dist/react/AssistantProvider.js +1 -0
  19. package/dist/react/AssistantProvider.js.map +1 -1
  20. package/dist/react/AssistantRuntimeProvider.js +18 -6
  21. package/dist/react/AssistantRuntimeProvider.js.map +1 -1
  22. package/dist/react/RuntimeAdapter.js +26 -7
  23. package/dist/react/RuntimeAdapter.js.map +1 -1
  24. package/dist/react/adapters/LocalStorageThreadListAdapter.js +29 -7
  25. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  26. package/dist/react/adapters/TitleGenerationAdapter.js.map +1 -1
  27. package/dist/react/client/DataRenderers.js +54 -35
  28. package/dist/react/client/DataRenderers.js.map +1 -1
  29. package/dist/react/client/Interactables.js +67 -67
  30. package/dist/react/client/Interactables.js.map +1 -1
  31. package/dist/react/client/Tools.d.ts.map +1 -1
  32. package/dist/react/client/Tools.js +118 -55
  33. package/dist/react/client/Tools.js.map +1 -1
  34. package/dist/react/client/interactable-model-context.js.map +1 -1
  35. package/dist/react/model-context/define-mcp-toolkit.js.map +1 -1
  36. package/dist/react/model-context/define-toolkit.js.map +1 -1
  37. package/dist/react/model-context/external-tool.js.map +1 -1
  38. package/dist/react/model-context/human-tool.js.map +1 -1
  39. package/dist/react/model-context/makeAssistantDataUI.js.map +1 -1
  40. package/dist/react/model-context/makeAssistantTool.js.map +1 -1
  41. package/dist/react/model-context/makeAssistantToolUI.js.map +1 -1
  42. package/dist/react/model-context/provider-tool.js.map +1 -1
  43. package/dist/react/model-context/stub-tool.js.map +1 -1
  44. package/dist/react/model-context/toolbox.js.map +1 -1
  45. package/dist/react/model-context/useAssistantContext.js.map +1 -1
  46. package/dist/react/model-context/useAssistantDataUI.js +27 -8
  47. package/dist/react/model-context/useAssistantDataUI.js.map +1 -1
  48. package/dist/react/model-context/useAssistantInstructions.js +33 -10
  49. package/dist/react/model-context/useAssistantInstructions.js.map +1 -1
  50. package/dist/react/model-context/useAssistantInteractable.js.map +1 -1
  51. package/dist/react/model-context/useAssistantTool.js +59 -17
  52. package/dist/react/model-context/useAssistantTool.js.map +1 -1
  53. package/dist/react/model-context/useAssistantToolUI.js +30 -9
  54. package/dist/react/model-context/useAssistantToolUI.js.map +1 -1
  55. package/dist/react/model-context/useAuiToolOverrides.js.map +1 -1
  56. package/dist/react/model-context/useInlineRender.js +35 -8
  57. package/dist/react/model-context/useInlineRender.js.map +1 -1
  58. package/dist/react/model-context/useInteractableState.js +65 -19
  59. package/dist/react/model-context/useInteractableState.js.map +1 -1
  60. package/dist/react/model-context/useToolArgsStatus.js +42 -14
  61. package/dist/react/model-context/useToolArgsStatus.js.map +1 -1
  62. package/dist/react/primitive-hooks/useActionBarCopy.js +59 -22
  63. package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
  64. package/dist/react/primitive-hooks/useActionBarEdit.js +25 -7
  65. package/dist/react/primitive-hooks/useActionBarEdit.js.map +1 -1
  66. package/dist/react/primitive-hooks/useActionBarFeedback.js +49 -13
  67. package/dist/react/primitive-hooks/useActionBarFeedback.js.map +1 -1
  68. package/dist/react/primitive-hooks/useActionBarReload.js +25 -7
  69. package/dist/react/primitive-hooks/useActionBarReload.js.map +1 -1
  70. package/dist/react/primitive-hooks/useActionBarSpeak.js +28 -9
  71. package/dist/react/primitive-hooks/useActionBarSpeak.js.map +1 -1
  72. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js +25 -7
  73. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js.map +1 -1
  74. package/dist/react/primitive-hooks/useBranchPickerNext.js +27 -11
  75. package/dist/react/primitive-hooks/useBranchPickerNext.js.map +1 -1
  76. package/dist/react/primitive-hooks/useBranchPickerPrevious.js +27 -11
  77. package/dist/react/primitive-hooks/useBranchPickerPrevious.js.map +1 -1
  78. package/dist/react/primitive-hooks/useComposerAddAttachment.js +24 -8
  79. package/dist/react/primitive-hooks/useComposerAddAttachment.js.map +1 -1
  80. package/dist/react/primitive-hooks/useComposerCancel.js +25 -7
  81. package/dist/react/primitive-hooks/useComposerCancel.js.map +1 -1
  82. package/dist/react/primitive-hooks/useComposerDictate.js +25 -7
  83. package/dist/react/primitive-hooks/useComposerDictate.js.map +1 -1
  84. package/dist/react/primitive-hooks/useComposerSend.js +25 -7
  85. package/dist/react/primitive-hooks/useComposerSend.js.map +1 -1
  86. package/dist/react/primitive-hooks/useEditComposerCancel.js +18 -4
  87. package/dist/react/primitive-hooks/useEditComposerCancel.js.map +1 -1
  88. package/dist/react/primitive-hooks/useEditComposerSend.js +25 -7
  89. package/dist/react/primitive-hooks/useEditComposerSend.js.map +1 -1
  90. package/dist/react/primitive-hooks/useMessageBranching.js +41 -9
  91. package/dist/react/primitive-hooks/useMessageBranching.js.map +1 -1
  92. package/dist/react/primitive-hooks/useMessageError.js +4 -1
  93. package/dist/react/primitive-hooks/useMessageError.js.map +1 -1
  94. package/dist/react/primitive-hooks/useMessageReload.js +25 -7
  95. package/dist/react/primitive-hooks/useMessageReload.js.map +1 -1
  96. package/dist/react/primitive-hooks/useSuggestionTrigger.js +31 -13
  97. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
  98. package/dist/react/primitive-hooks/useThreadIsEmpty.js +4 -1
  99. package/dist/react/primitive-hooks/useThreadIsEmpty.js.map +1 -1
  100. package/dist/react/primitive-hooks/useThreadIsRunning.js +4 -1
  101. package/dist/react/primitive-hooks/useThreadIsRunning.js.map +1 -1
  102. package/dist/react/primitive-hooks/useThreadListItemArchive.js +18 -4
  103. package/dist/react/primitive-hooks/useThreadListItemArchive.js.map +1 -1
  104. package/dist/react/primitive-hooks/useThreadListItemDelete.js +18 -4
  105. package/dist/react/primitive-hooks/useThreadListItemDelete.js.map +1 -1
  106. package/dist/react/primitive-hooks/useThreadListItemTrigger.js +18 -4
  107. package/dist/react/primitive-hooks/useThreadListItemTrigger.js.map +1 -1
  108. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js +18 -4
  109. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js.map +1 -1
  110. package/dist/react/primitive-hooks/useThreadListLoadMore.js +25 -7
  111. package/dist/react/primitive-hooks/useThreadListLoadMore.js.map +1 -1
  112. package/dist/react/primitive-hooks/useThreadListNew.js +18 -4
  113. package/dist/react/primitive-hooks/useThreadListNew.js.map +1 -1
  114. package/dist/react/primitive-hooks/useThreadMessages.js +4 -1
  115. package/dist/react/primitive-hooks/useThreadMessages.js.map +1 -1
  116. package/dist/react/primitive-hooks/useVoice.js +63 -13
  117. package/dist/react/primitive-hooks/useVoice.js.map +1 -1
  118. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js +42 -7
  119. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
  120. package/dist/react/primitives/composer/ComposerAttachments.js +67 -16
  121. package/dist/react/primitives/composer/ComposerAttachments.js.map +1 -1
  122. package/dist/react/primitives/composer/ComposerIf.js +30 -9
  123. package/dist/react/primitives/composer/ComposerIf.js.map +1 -1
  124. package/dist/react/primitives/composer/ComposerQueue.js.map +1 -1
  125. package/dist/react/primitives/generativeUI/GenerativeUI.js +55 -13
  126. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  127. package/dist/react/primitives/message/MessageAttachments.js +68 -16
  128. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  129. package/dist/react/primitives/message/MessageGroupedParts.js +3 -3
  130. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  131. package/dist/react/primitives/message/MessageParts.js +649 -181
  132. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  133. package/dist/react/primitives/message/MessageQuote.js +18 -2
  134. package/dist/react/primitives/message/MessageQuote.js.map +1 -1
  135. package/dist/react/primitives/messagePart/MessagePartInProgress.js +6 -2
  136. package/dist/react/primitives/messagePart/MessagePartInProgress.js.map +1 -1
  137. package/dist/react/primitives/part/PartMessages.js +46 -14
  138. package/dist/react/primitives/part/PartMessages.js.map +1 -1
  139. package/dist/react/primitives/thread/ThreadMessages.js +67 -10
  140. package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
  141. package/dist/react/primitives/thread/ThreadSuggestions.js +50 -10
  142. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
  143. package/dist/react/primitives/threadList/ThreadListItems.js +55 -14
  144. package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -1
  145. package/dist/react/primitives/threadListItem/ThreadListItemTitle.js +15 -2
  146. package/dist/react/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
  147. package/dist/react/providers/AttachmentByIndexProvider.js +57 -12
  148. package/dist/react/providers/AttachmentByIndexProvider.js.map +1 -1
  149. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js +33 -11
  150. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js.map +1 -1
  151. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js +29 -6
  152. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js.map +1 -1
  153. package/dist/react/providers/MessageByIndexProvider.js +49 -19
  154. package/dist/react/providers/MessageByIndexProvider.js.map +1 -1
  155. package/dist/react/providers/PartByIndexProvider.js +29 -6
  156. package/dist/react/providers/PartByIndexProvider.js.map +1 -1
  157. package/dist/react/providers/QueueItemByIndexProvider.js +29 -6
  158. package/dist/react/providers/QueueItemByIndexProvider.js.map +1 -1
  159. package/dist/react/providers/ReadonlyThreadProvider.js +83 -28
  160. package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
  161. package/dist/react/providers/SuggestionByIndexProvider.js +29 -6
  162. package/dist/react/providers/SuggestionByIndexProvider.js.map +1 -1
  163. package/dist/react/providers/TextMessagePartProvider.js +73 -25
  164. package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
  165. package/dist/react/providers/ThreadListItemByIndexProvider.js +30 -6
  166. package/dist/react/providers/ThreadListItemByIndexProvider.js.map +1 -1
  167. package/dist/react/providers/ThreadListItemRuntimeProvider.js +28 -5
  168. package/dist/react/providers/ThreadListItemRuntimeProvider.js.map +1 -1
  169. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +19 -4
  170. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  171. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  172. package/dist/react/runtimes/RuntimeAdapterProvider.js +27 -10
  173. package/dist/react/runtimes/RuntimeAdapterProvider.js.map +1 -1
  174. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +10 -1
  175. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  176. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  177. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  178. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +17 -17
  179. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
  180. package/dist/react/runtimes/createMessageConverter.js.map +1 -1
  181. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  182. package/dist/react/runtimes/external-message-converter.js +67 -30
  183. package/dist/react/runtimes/external-message-converter.js.map +1 -1
  184. package/dist/react/runtimes/useExternalStoreRuntime.js +44 -10
  185. package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
  186. package/dist/react/runtimes/useExternalStoreSharedOptions.js +17 -12
  187. package/dist/react/runtimes/useExternalStoreSharedOptions.js.map +1 -1
  188. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  189. package/dist/react/runtimes/useRemoteThreadListRuntime.js +34 -6
  190. package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
  191. package/dist/react/types/MessagePartComponentTypes.d.ts +5 -6
  192. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  193. package/dist/react/utils/getMessageQuote.js.map +1 -1
  194. package/dist/react/utils/groupParts.js.map +1 -1
  195. package/dist/runtime/api/assistant-runtime.js.map +1 -1
  196. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  197. package/dist/runtime/api/composer-runtime.js.map +1 -1
  198. package/dist/runtime/api/message-part-runtime.d.ts +3 -9
  199. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  200. package/dist/runtime/api/message-part-runtime.js +3 -6
  201. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  202. package/dist/runtime/api/message-runtime.js.map +1 -1
  203. package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
  204. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  205. package/dist/runtime/api/thread-runtime.js.map +1 -1
  206. package/dist/runtime/base/base-assistant-runtime-core.js.map +1 -1
  207. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  208. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  209. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  210. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  211. package/dist/runtime/interfaces/thread-runtime-core.d.ts +2 -1
  212. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  213. package/dist/runtime/queue/message-queue.js.map +1 -1
  214. package/dist/runtime/utils/auto-status.js.map +1 -1
  215. package/dist/runtime/utils/external-store-message.js.map +1 -1
  216. package/dist/runtime/utils/message-repository.js.map +1 -1
  217. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +15 -0
  218. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -0
  219. package/dist/runtime/utils/resolveToolApprovalResponse.js +35 -0
  220. package/dist/runtime/utils/resolveToolApprovalResponse.js.map +1 -0
  221. package/dist/runtime/utils/thread-message-like.d.ts +5 -1
  222. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  223. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  224. package/dist/runtimes/assistant-transport/utils.js.map +1 -1
  225. package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
  226. package/dist/runtimes/external-store/external-store-shared-options.js.map +1 -1
  227. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  228. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  229. package/dist/runtimes/external-store/thread-message-converter.js.map +1 -1
  230. package/dist/runtimes/local/local-runtime-core.js.map +1 -1
  231. package/dist/runtimes/local/local-thread-list-runtime-core.js.map +1 -1
  232. package/dist/runtimes/local/local-thread-runtime-core.d.ts +1 -0
  233. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  234. package/dist/runtimes/local/local-thread-runtime-core.js +9 -7
  235. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  236. package/dist/runtimes/local/should-continue.js +1 -1
  237. package/dist/runtimes/local/should-continue.js.map +1 -1
  238. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  239. package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -1
  240. package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
  241. package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
  242. package/dist/runtimes/remote-thread-list/remote-thread-state.js.map +1 -1
  243. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  244. package/dist/store/clients/chain-of-thought-client.js +37 -19
  245. package/dist/store/clients/chain-of-thought-client.js.map +1 -1
  246. package/dist/store/clients/model-context-client.js +64 -14
  247. package/dist/store/clients/model-context-client.js.map +1 -1
  248. package/dist/store/clients/no-op-composer-client.js +94 -53
  249. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  250. package/dist/store/clients/runtime-adapter.js.map +1 -1
  251. package/dist/store/clients/suggestions.d.ts.map +1 -1
  252. package/dist/store/clients/suggestions.js +59 -21
  253. package/dist/store/clients/suggestions.js.map +1 -1
  254. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  255. package/dist/store/clients/thread-message-client.js +176 -69
  256. package/dist/store/clients/thread-message-client.js.map +1 -1
  257. package/dist/store/runtime-clients/attachment-runtime-client.js +29 -6
  258. package/dist/store/runtime-clients/attachment-runtime-client.js.map +1 -1
  259. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  260. package/dist/store/runtime-clients/composer-runtime-client.js +188 -68
  261. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  262. package/dist/store/runtime-clients/liveRef.d.ts +7 -0
  263. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -0
  264. package/dist/store/runtime-clients/liveRef.js +8 -0
  265. package/dist/store/runtime-clients/liveRef.js.map +1 -0
  266. package/dist/store/runtime-clients/message-part-runtime-client.js +47 -8
  267. package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
  268. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  269. package/dist/store/runtime-clients/message-runtime-client.js +214 -52
  270. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  271. package/dist/store/runtime-clients/thread-list-item-runtime-client.js +69 -25
  272. package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -1
  273. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  274. package/dist/store/runtime-clients/thread-list-runtime-client.js +137 -34
  275. package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
  276. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  277. package/dist/store/runtime-clients/thread-runtime-client.js +192 -71
  278. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  279. package/dist/store/runtime-clients/useSubscribable.js +2 -9
  280. package/dist/store/runtime-clients/useSubscribable.js.map +1 -1
  281. package/dist/store/scopes/part.d.ts +5 -6
  282. package/dist/store/scopes/part.d.ts.map +1 -1
  283. package/dist/store/scopes/queue-item.js.map +1 -1
  284. package/dist/subscribable/subscribable.js.map +1 -1
  285. package/dist/tests/remote-thread-list-test-helpers.js.map +1 -1
  286. package/dist/types/message.d.ts +38 -5
  287. package/dist/types/message.d.ts.map +1 -1
  288. package/dist/types/message.js.map +1 -1
  289. package/dist/utils/composite-context-provider.js.map +1 -1
  290. package/dist/utils/id.js.map +1 -1
  291. package/dist/utils/json/is-json-equal.js.map +1 -1
  292. package/dist/utils/json/is-json.js.map +1 -1
  293. package/dist/utils/text.js.map +1 -1
  294. package/package.json +6 -6
  295. package/src/index.ts +4 -0
  296. package/src/internal.ts +1 -0
  297. package/src/model-context/types.ts +1 -0
  298. package/src/react/AssistantProvider.tsx +7 -0
  299. package/src/react/client/Tools.ts +3 -5
  300. package/src/react/runtimes/external-message-converter.ts +3 -1
  301. package/src/react/types/MessagePartComponentTypes.ts +5 -5
  302. package/src/runtime/api/message-part-runtime.ts +14 -11
  303. package/src/runtime/interfaces/thread-runtime-core.ts +2 -0
  304. package/src/runtime/utils/resolveToolApprovalResponse.test.ts +91 -0
  305. package/src/runtime/utils/resolveToolApprovalResponse.ts +55 -0
  306. package/src/runtime/utils/thread-message-like.ts +10 -1
  307. package/src/runtimes/local/local-thread-runtime-core.test.ts +61 -2
  308. package/src/runtimes/local/local-thread-runtime-core.ts +17 -8
  309. package/src/runtimes/local/should-continue.ts +2 -1
  310. package/src/store/clients/suggestions.ts +3 -5
  311. package/src/store/clients/thread-message-client.ts +13 -14
  312. package/src/store/runtime-clients/composer-runtime-client.ts +18 -21
  313. package/src/store/runtime-clients/liveRef.ts +5 -0
  314. package/src/store/runtime-clients/message-runtime-client.ts +16 -21
  315. package/src/store/runtime-clients/thread-list-runtime-client.ts +3 -5
  316. package/src/store/runtime-clients/thread-runtime-client.ts +9 -10
  317. package/src/store/runtime-clients/useSubscribable.ts +2 -10
  318. package/src/store/scopes/part.ts +5 -2
  319. package/src/types/message.ts +45 -3
@@ -1,13 +1,36 @@
1
1
  import { useSubscribable } from "./useSubscribable.js";
2
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
2
3
  import { resource } from "@assistant-ui/tap";
3
4
  //#region src/store/runtime-clients/attachment-runtime-client.ts
4
- const useAttachmentRuntimeClient = ({ runtime }) => {
5
+ const useAttachmentRuntimeClient = (t0) => {
6
+ const $ = c(8);
7
+ const { runtime } = t0;
5
8
  const state = useSubscribable(runtime);
6
- return {
7
- getState: () => state,
8
- remove: runtime.remove,
9
- __internal_getRuntime: () => runtime
10
- };
9
+ let t1;
10
+ if ($[0] !== state) {
11
+ t1 = () => state;
12
+ $[0] = state;
13
+ $[1] = t1;
14
+ } else t1 = $[1];
15
+ let t2;
16
+ if ($[2] !== runtime) {
17
+ t2 = () => runtime;
18
+ $[2] = runtime;
19
+ $[3] = t2;
20
+ } else t2 = $[3];
21
+ let t3;
22
+ if ($[4] !== runtime.remove || $[5] !== t1 || $[6] !== t2) {
23
+ t3 = {
24
+ getState: t1,
25
+ remove: runtime.remove,
26
+ __internal_getRuntime: t2
27
+ };
28
+ $[4] = runtime.remove;
29
+ $[5] = t1;
30
+ $[6] = t2;
31
+ $[7] = t3;
32
+ } else t3 = $[7];
33
+ return t3;
11
34
  };
12
35
  const AttachmentRuntimeClient = resource(useAttachmentRuntimeClient);
13
36
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-runtime-client.js","names":[],"sources":["../../../src/store/runtime-clients/attachment-runtime-client.ts"],"sourcesContent":["import { resource } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport type { AttachmentRuntime } from \"../../runtime/api/attachment-runtime\";\nimport { useSubscribable } from \"./useSubscribable\";\n\nconst useAttachmentRuntimeClient = ({\n runtime,\n}: {\n runtime: AttachmentRuntime;\n}): ClientOutput<\"attachment\"> => {\n const state = useSubscribable(runtime);\n\n return {\n getState: () => state,\n remove: runtime.remove,\n __internal_getRuntime: () => runtime,\n };\n};\n\nexport const AttachmentRuntimeClient = resource(useAttachmentRuntimeClient);\n"],"mappings":";;;AAKA,MAAM,8BAA8B,EAClC,cAGgC;CAChC,MAAM,QAAQ,gBAAgB,OAAO;CAErC,OAAO;EACL,gBAAgB;EAChB,QAAQ,QAAQ;EAChB,6BAA6B;CAC/B;AACF;AAEA,MAAa,0BAA0B,SAAS,0BAA0B"}
1
+ {"version":3,"file":"attachment-runtime-client.js","names":["resource","ClientOutput","AttachmentRuntime","useSubscribable","useAttachmentRuntimeClient","t0","$","_c","runtime","state","t1","t2","t3","remove","getState","__internal_getRuntime","AttachmentRuntimeClient"],"sources":["../../../src/store/runtime-clients/attachment-runtime-client.ts"],"sourcesContent":["import { resource } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport type { AttachmentRuntime } from \"../../runtime/api/attachment-runtime\";\nimport { useSubscribable } from \"./useSubscribable\";\n\nconst useAttachmentRuntimeClient = ({\n runtime,\n}: {\n runtime: AttachmentRuntime;\n}): ClientOutput<\"attachment\"> => {\n const state = useSubscribable(runtime);\n\n return {\n getState: () => state,\n remove: runtime.remove,\n __internal_getRuntime: () => runtime,\n };\n};\n\nexport const AttachmentRuntimeClient = resource(useAttachmentRuntimeClient);\n"],"mappings":";;;;AAKA,MAAMI,8BAA6BC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAC,YAAAH;CAKlC,MAAAI,QAAcN,gBAAgBK,OAAO;CAAE,IAAAE;CAAA,IAAAJ,EAAA,OAAAG,OAAA;EAG3BC,WAAMD;EAAKH,EAAA,KAAAG;EAAAH,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,IAAAK;CAAA,IAAAL,EAAA,OAAAE,SAAA;EAEEG,WAAMH;EAAOF,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,IAAAM;CAAA,IAAAN,EAAA,OAAAE,QAAAK,UAAAP,EAAA,OAAAI,MAAAJ,EAAA,OAAAK,IAAA;EAH/BC,KAAA;GAAAE,UACKJ;GAAWG,QACbL,QAAOK;GAAOE,uBACCJ;EACzB;EAACL,EAAA,KAAAE,QAAAK;EAAAP,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAJMM;AAIN;AAGH,MAAaI,0BAA0BhB,SAASI,0BAA0B"}
@@ -1 +1 @@
1
- {"version":3,"file":"composer-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/composer-runtime-client.ts"],"mappings":";;;;cAqLa,cAAA,8BAAc,QAAA,CAAA,YAAA;;IAtHV,OAAA;EAAA;;IACE,OAAA;EAAA;WACR,eAAe;AAAA"}
1
+ {"version":3,"file":"composer-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/composer-runtime-client.ts"],"mappings":";;;;cAkLa,cAAA,8BAAc,QAAA,CAAA,YAAA;;IAnHV,OAAA;EAAA;;IACE,OAAA;EAAA;WACR,eAAe;AAAA"}
@@ -1,11 +1,28 @@
1
1
  import { useSubscribable } from "./useSubscribable.js";
2
2
  import { AttachmentRuntimeClient } from "./attachment-runtime-client.js";
3
- import { useEffect, useMemo } from "@assistant-ui/tap/react-shim";
3
+ import { useEffect } from "@assistant-ui/tap/react-shim";
4
4
  import { useAssistantEmit, useClientLookup } from "@assistant-ui/store";
5
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
5
6
  import { resource, useResource, withKey } from "@assistant-ui/tap";
6
7
  //#region src/store/runtime-clients/composer-runtime-client.ts
7
- const useComposerAttachmentClientByIndex = ({ runtime, index }) => {
8
- return useResource(AttachmentRuntimeClient({ runtime: useMemo(() => runtime.getAttachmentByIndex(index), [runtime, index]) }));
8
+ const useComposerAttachmentClientByIndex = (t0) => {
9
+ const $ = c(5);
10
+ const { runtime, index } = t0;
11
+ let t1;
12
+ if ($[0] !== index || $[1] !== runtime) {
13
+ t1 = runtime.getAttachmentByIndex(index);
14
+ $[0] = index;
15
+ $[1] = runtime;
16
+ $[2] = t1;
17
+ } else t1 = $[2];
18
+ const attachmentRuntime = t1;
19
+ let t2;
20
+ if ($[3] !== attachmentRuntime) {
21
+ t2 = AttachmentRuntimeClient({ runtime: attachmentRuntime });
22
+ $[3] = attachmentRuntime;
23
+ $[4] = t2;
24
+ } else t2 = $[4];
25
+ return useResource(t2);
9
26
  };
10
27
  const ComposerAttachmentClientByIndex = resource(useComposerAttachmentClientByIndex);
11
28
  const useQueueItemClient = ({ item, onSteer, onRemove }) => {
@@ -16,50 +33,95 @@ const useQueueItemClient = ({ item, onSteer, onRemove }) => {
16
33
  };
17
34
  };
18
35
  const QueueItemClient = resource(useQueueItemClient);
19
- const useComposerClient = ({ threadIdRef, messageIdRef, runtime }) => {
36
+ const useComposerClient = (t0) => {
37
+ const $ = c(55);
38
+ const { threadIdRef, messageIdRef, runtime } = t0;
20
39
  const runtimeState = useSubscribable(runtime);
21
40
  const emit = useAssistantEmit();
22
- useEffect(() => {
23
- const unsubscribers = [];
24
- for (const event of ["send", "attachmentAdd"]) {
25
- const unsubscribe = runtime.unstable_on(event, () => {
26
- emit(`composer.${event}`, {
41
+ let t1;
42
+ let t2;
43
+ if ($[0] !== emit || $[1] !== messageIdRef || $[2] !== runtime || $[3] !== threadIdRef) {
44
+ t1 = () => {
45
+ const unsubscribers = [];
46
+ for (const event of ["send", "attachmentAdd"]) {
47
+ const unsubscribe = runtime.unstable_on(event, () => {
48
+ emit(`composer.${event}`, {
49
+ threadId: threadIdRef.current,
50
+ ...messageIdRef && { messageId: messageIdRef.current }
51
+ });
52
+ });
53
+ unsubscribers.push(unsubscribe);
54
+ }
55
+ unsubscribers.push(runtime.unstable_on("attachmentAddError", (payload) => {
56
+ emit("composer.attachmentAddError", {
27
57
  threadId: threadIdRef.current,
28
- ...messageIdRef && { messageId: messageIdRef.current }
58
+ ...messageIdRef && { messageId: messageIdRef.current },
59
+ ...payload.attachmentId && { attachmentId: payload.attachmentId },
60
+ reason: payload.reason,
61
+ message: payload.message
29
62
  });
30
- });
31
- unsubscribers.push(unsubscribe);
32
- }
33
- unsubscribers.push(runtime.unstable_on("attachmentAddError", (payload) => {
34
- emit("composer.attachmentAddError", {
35
- threadId: threadIdRef.current,
36
- ...messageIdRef && { messageId: messageIdRef.current },
37
- ...payload.attachmentId && { attachmentId: payload.attachmentId },
38
- reason: payload.reason,
39
- message: payload.message
40
- });
41
- }));
42
- return () => {
43
- for (const unsub of unsubscribers) unsub();
63
+ }));
64
+ return () => {
65
+ for (const unsub of unsubscribers) unsub();
66
+ };
44
67
  };
45
- }, [
46
- runtime,
47
- emit,
48
- threadIdRef,
49
- messageIdRef
50
- ]);
51
- const attachments = useClientLookup(() => runtimeState.attachments.map((attachment, idx) => withKey(attachment.id, ComposerAttachmentClientByIndex({
52
- runtime,
53
- index: idx
54
- }))), [runtimeState.attachments, runtime]);
68
+ t2 = [
69
+ runtime,
70
+ emit,
71
+ threadIdRef,
72
+ messageIdRef
73
+ ];
74
+ $[0] = emit;
75
+ $[1] = messageIdRef;
76
+ $[2] = runtime;
77
+ $[3] = threadIdRef;
78
+ $[4] = t1;
79
+ $[5] = t2;
80
+ } else {
81
+ t1 = $[4];
82
+ t2 = $[5];
83
+ }
84
+ useEffect(t1, t2);
85
+ let t3;
86
+ if ($[6] !== runtime || $[7] !== runtimeState.attachments) {
87
+ let t4;
88
+ if ($[9] !== runtime) {
89
+ t4 = (attachment, idx) => withKey(attachment.id, ComposerAttachmentClientByIndex({
90
+ runtime,
91
+ index: idx
92
+ }), [runtime, idx]);
93
+ $[9] = runtime;
94
+ $[10] = t4;
95
+ } else t4 = $[10];
96
+ t3 = runtimeState.attachments.map(t4);
97
+ $[6] = runtime;
98
+ $[7] = runtimeState.attachments;
99
+ $[8] = t3;
100
+ } else t3 = $[8];
101
+ const attachments = useClientLookup(t3);
55
102
  const queue = runtimeState.queue;
56
- const queueItems = useClientLookup(() => queue.map((item) => withKey(item.id, QueueItemClient({
57
- item,
58
- onSteer: () => runtime.steerQueueItem(item.id),
59
- onRemove: () => runtime.removeQueueItem(item.id)
60
- }))), [queue, runtime]);
61
- const state = useMemo(() => {
62
- return {
103
+ let t4;
104
+ if ($[11] !== queue || $[12] !== runtime) {
105
+ let t5;
106
+ if ($[14] !== runtime) {
107
+ t5 = (item) => withKey(item.id, QueueItemClient({
108
+ item,
109
+ onSteer: () => runtime.steerQueueItem(item.id),
110
+ onRemove: () => runtime.removeQueueItem(item.id)
111
+ }));
112
+ $[14] = runtime;
113
+ $[15] = t5;
114
+ } else t5 = $[15];
115
+ t4 = queue.map(t5);
116
+ $[11] = queue;
117
+ $[12] = runtime;
118
+ $[13] = t4;
119
+ } else t4 = $[13];
120
+ const queueItems = useClientLookup(t4);
121
+ const t5 = runtimeState.type ?? "thread";
122
+ let t6;
123
+ if ($[16] !== attachments.state || $[17] !== queue || $[18] !== runtimeState.attachmentAccept || $[19] !== runtimeState.canCancel || $[20] !== runtimeState.canSend || $[21] !== runtimeState.dictation || $[22] !== runtimeState.isEditing || $[23] !== runtimeState.isEmpty || $[24] !== runtimeState.quote || $[25] !== runtimeState.role || $[26] !== runtimeState.runConfig || $[27] !== runtimeState.text || $[28] !== t5) {
124
+ t6 = {
63
125
  text: runtimeState.text,
64
126
  role: runtimeState.role,
65
127
  attachments: attachments.state,
@@ -69,41 +131,99 @@ const useComposerClient = ({ threadIdRef, messageIdRef, runtime }) => {
69
131
  canSend: runtimeState.canSend,
70
132
  attachmentAccept: runtimeState.attachmentAccept,
71
133
  isEmpty: runtimeState.isEmpty,
72
- type: runtimeState.type ?? "thread",
134
+ type: t5,
73
135
  dictation: runtimeState.dictation,
74
136
  quote: runtimeState.quote,
75
137
  queue
76
138
  };
77
- }, [
78
- runtimeState,
79
- attachments.state,
80
- queue
81
- ]);
82
- return {
83
- getState: () => state,
84
- setText: runtime.setText,
85
- setRole: runtime.setRole,
86
- setRunConfig: runtime.setRunConfig,
87
- addAttachment: runtime.addAttachment,
88
- reset: runtime.reset,
89
- clearAttachments: runtime.clearAttachments,
90
- send: runtime.send,
91
- cancel: runtime.cancel,
92
- beginEdit: runtime.beginEdit ?? (() => {
93
- throw new Error("beginEdit is not supported in this runtime");
94
- }),
95
- startDictation: runtime.startDictation,
96
- stopDictation: runtime.stopDictation,
97
- setQuote: runtime.setQuote,
98
- attachment: (selector) => {
139
+ $[16] = attachments.state;
140
+ $[17] = queue;
141
+ $[18] = runtimeState.attachmentAccept;
142
+ $[19] = runtimeState.canCancel;
143
+ $[20] = runtimeState.canSend;
144
+ $[21] = runtimeState.dictation;
145
+ $[22] = runtimeState.isEditing;
146
+ $[23] = runtimeState.isEmpty;
147
+ $[24] = runtimeState.quote;
148
+ $[25] = runtimeState.role;
149
+ $[26] = runtimeState.runConfig;
150
+ $[27] = runtimeState.text;
151
+ $[28] = t5;
152
+ $[29] = t6;
153
+ } else t6 = $[29];
154
+ const state = t6;
155
+ let t7;
156
+ if ($[30] !== state) {
157
+ t7 = () => state;
158
+ $[30] = state;
159
+ $[31] = t7;
160
+ } else t7 = $[31];
161
+ const t8 = runtime.beginEdit ?? _temp;
162
+ let t9;
163
+ if ($[32] !== attachments) {
164
+ t9 = (selector) => {
99
165
  if ("id" in selector) return attachments.get({ key: selector.id });
100
166
  else return attachments.get(selector);
101
- },
102
- queueItem: (selector) => queueItems.get(selector),
103
- __internal_getRuntime: () => runtime
104
- };
167
+ };
168
+ $[32] = attachments;
169
+ $[33] = t9;
170
+ } else t9 = $[33];
171
+ let t10;
172
+ if ($[34] !== queueItems) {
173
+ t10 = (selector_0) => queueItems.get(selector_0);
174
+ $[34] = queueItems;
175
+ $[35] = t10;
176
+ } else t10 = $[35];
177
+ let t11;
178
+ if ($[36] !== runtime) {
179
+ t11 = () => runtime;
180
+ $[36] = runtime;
181
+ $[37] = t11;
182
+ } else t11 = $[37];
183
+ let t12;
184
+ if ($[38] !== runtime.addAttachment || $[39] !== runtime.cancel || $[40] !== runtime.clearAttachments || $[41] !== runtime.reset || $[42] !== runtime.send || $[43] !== runtime.setQuote || $[44] !== runtime.setRole || $[45] !== runtime.setRunConfig || $[46] !== runtime.setText || $[47] !== runtime.startDictation || $[48] !== runtime.stopDictation || $[49] !== t10 || $[50] !== t11 || $[51] !== t7 || $[52] !== t8 || $[53] !== t9) {
185
+ t12 = {
186
+ getState: t7,
187
+ setText: runtime.setText,
188
+ setRole: runtime.setRole,
189
+ setRunConfig: runtime.setRunConfig,
190
+ addAttachment: runtime.addAttachment,
191
+ reset: runtime.reset,
192
+ clearAttachments: runtime.clearAttachments,
193
+ send: runtime.send,
194
+ cancel: runtime.cancel,
195
+ beginEdit: t8,
196
+ startDictation: runtime.startDictation,
197
+ stopDictation: runtime.stopDictation,
198
+ setQuote: runtime.setQuote,
199
+ attachment: t9,
200
+ queueItem: t10,
201
+ __internal_getRuntime: t11
202
+ };
203
+ $[38] = runtime.addAttachment;
204
+ $[39] = runtime.cancel;
205
+ $[40] = runtime.clearAttachments;
206
+ $[41] = runtime.reset;
207
+ $[42] = runtime.send;
208
+ $[43] = runtime.setQuote;
209
+ $[44] = runtime.setRole;
210
+ $[45] = runtime.setRunConfig;
211
+ $[46] = runtime.setText;
212
+ $[47] = runtime.startDictation;
213
+ $[48] = runtime.stopDictation;
214
+ $[49] = t10;
215
+ $[50] = t11;
216
+ $[51] = t7;
217
+ $[52] = t8;
218
+ $[53] = t9;
219
+ $[54] = t12;
220
+ } else t12 = $[54];
221
+ return t12;
105
222
  };
106
223
  const ComposerClient = resource(useComposerClient);
224
+ function _temp() {
225
+ throw new Error("beginEdit is not supported in this runtime");
226
+ }
107
227
  //#endregion
108
228
  export { ComposerClient };
109
229
 
@@ -1 +1 @@
1
- {"version":3,"file":"composer-runtime-client.js","names":[],"sources":["../../../src/store/runtime-clients/composer-runtime-client.ts"],"sourcesContent":["import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport { useMemo, useEffect } from \"react\";\nimport { useResource, resource, withKey } from \"@assistant-ui/tap\";\nimport {\n type ClientOutput,\n useAssistantEmit,\n useClientLookup,\n} from \"@assistant-ui/store\";\nimport type {\n ComposerRuntime,\n EditComposerRuntime,\n} from \"../../runtime/api/composer-runtime\";\nimport type { ComposerState } from \"../scopes/composer\";\nimport type { QueueItemState } from \"../scopes/queue-item\";\nimport { AttachmentRuntimeClient } from \"./attachment-runtime-client\";\nimport { useSubscribable } from \"./useSubscribable\";\n\nconst useComposerAttachmentClientByIndex = ({\n runtime,\n index,\n}: {\n runtime: ComposerRuntime;\n index: number;\n}) => {\n const attachmentRuntime = useMemo(\n () => runtime.getAttachmentByIndex(index),\n [runtime, index],\n );\n\n return useResource(\n AttachmentRuntimeClient({\n runtime: attachmentRuntime,\n }),\n );\n};\n\nconst ComposerAttachmentClientByIndex = resource(\n useComposerAttachmentClientByIndex,\n);\n\nconst useQueueItemClient = ({\n item,\n onSteer,\n onRemove,\n}: {\n item: QueueItemState;\n onSteer: () => void;\n onRemove: () => void;\n}): ClientOutput<\"queueItem\"> => {\n return {\n getState: () => item,\n steer: onSteer,\n remove: onRemove,\n };\n};\n\nconst QueueItemClient = resource(useQueueItemClient);\n\nconst useComposerClient = ({\n threadIdRef,\n messageIdRef,\n runtime,\n}: {\n threadIdRef: { current: string };\n messageIdRef?: { current: string };\n runtime: ComposerRuntime;\n}): ClientOutput<\"composer\"> => {\n const runtimeState = useSubscribable(runtime);\n const emit = useAssistantEmit();\n\n // Bind composer events to event manager\n useEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n // Subscribe to composer events\n for (const event of [\"send\", \"attachmentAdd\"] as const) {\n const unsubscribe = runtime.unstable_on(event, () => {\n emit(`composer.${event}`, {\n threadId: threadIdRef.current,\n ...(messageIdRef && { messageId: messageIdRef.current }),\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n unsubscribers.push(\n runtime.unstable_on(\"attachmentAddError\", (payload) => {\n // payload.error omitted: raw Error is not store-serializable; use runtime.unstable_on for it.\n emit(\"composer.attachmentAddError\", {\n threadId: threadIdRef.current,\n ...(messageIdRef && { messageId: messageIdRef.current }),\n ...(payload.attachmentId && { attachmentId: payload.attachmentId }),\n reason: payload.reason,\n message: payload.message,\n });\n }),\n );\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, emit, threadIdRef, messageIdRef]);\n\n const attachments = useClientLookup(\n () =>\n runtimeState.attachments.map((attachment, idx) =>\n withKey(\n attachment.id,\n ComposerAttachmentClientByIndex({\n runtime,\n index: idx,\n }),\n ),\n ),\n [runtimeState.attachments, runtime],\n );\n\n const queue = runtimeState.queue;\n const queueItems = useClientLookup(\n () =>\n queue.map((item) =>\n withKey(\n item.id,\n QueueItemClient({\n item,\n onSteer: () => runtime.steerQueueItem(item.id),\n onRemove: () => runtime.removeQueueItem(item.id),\n }),\n ),\n ),\n [queue, runtime],\n );\n\n const state = useMemo<ComposerState>(() => {\n return {\n text: runtimeState.text,\n role: runtimeState.role,\n attachments: attachments.state,\n runConfig: runtimeState.runConfig,\n isEditing: runtimeState.isEditing,\n canCancel: runtimeState.canCancel,\n canSend: runtimeState.canSend,\n attachmentAccept: runtimeState.attachmentAccept,\n isEmpty: runtimeState.isEmpty,\n type: runtimeState.type ?? \"thread\",\n dictation: runtimeState.dictation,\n quote: runtimeState.quote,\n queue,\n };\n }, [runtimeState, attachments.state, queue]);\n\n return {\n getState: () => state,\n setText: runtime.setText,\n setRole: runtime.setRole,\n setRunConfig: runtime.setRunConfig,\n addAttachment: runtime.addAttachment,\n reset: runtime.reset,\n clearAttachments: runtime.clearAttachments,\n send: runtime.send,\n cancel: runtime.cancel,\n beginEdit:\n (runtime as EditComposerRuntime).beginEdit ??\n (() => {\n throw new Error(\"beginEdit is not supported in this runtime\");\n }),\n startDictation: runtime.startDictation,\n stopDictation: runtime.stopDictation,\n setQuote: runtime.setQuote,\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachments.get({ key: selector.id });\n } else {\n return attachments.get(selector);\n }\n },\n queueItem: (selector) => queueItems.get(selector),\n __internal_getRuntime: () => runtime,\n };\n};\n\nexport const ComposerClient = resource(useComposerClient);\n"],"mappings":";;;;;;AAiBA,MAAM,sCAAsC,EAC1C,SACA,YAII;CAMJ,OAAO,YACL,wBAAwB,EACtB,SAPsB,cAClB,QAAQ,qBAAqB,KAAK,GACxC,CAAC,SAAS,KAAK,CAKY,EAC3B,CAAC,CACH;AACF;AAEA,MAAM,kCAAkC,SACtC,kCACF;AAEA,MAAM,sBAAsB,EAC1B,MACA,SACA,eAK+B;CAC/B,OAAO;EACL,gBAAgB;EAChB,OAAO;EACP,QAAQ;CACV;AACF;AAEA,MAAM,kBAAkB,SAAS,kBAAkB;AAEnD,MAAM,qBAAqB,EACzB,aACA,cACA,cAK8B;CAC9B,MAAM,eAAe,gBAAgB,OAAO;CAC5C,MAAM,OAAO,iBAAiB;CAG9B,gBAAgB;EACd,MAAM,gBAA+B,CAAC;EAGtC,KAAK,MAAM,SAAS,CAAC,QAAQ,eAAe,GAAY;GACtD,MAAM,cAAc,QAAQ,YAAY,aAAa;IACnD,KAAK,YAAY,SAAS;KACxB,UAAU,YAAY;KACtB,GAAI,gBAAgB,EAAE,WAAW,aAAa,QAAQ;IACxD,CAAC;GACH,CAAC;GACD,cAAc,KAAK,WAAW;EAChC;EAEA,cAAc,KACZ,QAAQ,YAAY,uBAAuB,YAAY;GAErD,KAAK,+BAA+B;IAClC,UAAU,YAAY;IACtB,GAAI,gBAAgB,EAAE,WAAW,aAAa,QAAQ;IACtD,GAAI,QAAQ,gBAAgB,EAAE,cAAc,QAAQ,aAAa;IACjE,QAAQ,QAAQ;IAChB,SAAS,QAAQ;GACnB,CAAC;EACH,CAAC,CACH;EAEA,aAAa;GACX,KAAK,MAAM,SAAS,eAAe,MAAM;EAC3C;CACF,GAAG;EAAC;EAAS;EAAM;EAAa;CAAY,CAAC;CAE7C,MAAM,cAAc,sBAEhB,aAAa,YAAY,KAAK,YAAY,QACxC,QACE,WAAW,IACX,gCAAgC;EAC9B;EACA,OAAO;CACT,CAAC,CACH,CACF,GACF,CAAC,aAAa,aAAa,OAAO,CACpC;CAEA,MAAM,QAAQ,aAAa;CAC3B,MAAM,aAAa,sBAEf,MAAM,KAAK,SACT,QACE,KAAK,IACL,gBAAgB;EACd;EACA,eAAe,QAAQ,eAAe,KAAK,EAAE;EAC7C,gBAAgB,QAAQ,gBAAgB,KAAK,EAAE;CACjD,CAAC,CACH,CACF,GACF,CAAC,OAAO,OAAO,CACjB;CAEA,MAAM,QAAQ,cAA6B;EACzC,OAAO;GACL,MAAM,aAAa;GACnB,MAAM,aAAa;GACnB,aAAa,YAAY;GACzB,WAAW,aAAa;GACxB,WAAW,aAAa;GACxB,WAAW,aAAa;GACxB,SAAS,aAAa;GACtB,kBAAkB,aAAa;GAC/B,SAAS,aAAa;GACtB,MAAM,aAAa,QAAQ;GAC3B,WAAW,aAAa;GACxB,OAAO,aAAa;GACpB;EACF;CACF,GAAG;EAAC;EAAc,YAAY;EAAO;CAAK,CAAC;CAE3C,OAAO;EACL,gBAAgB;EAChB,SAAS,QAAQ;EACjB,SAAS,QAAQ;EACjB,cAAc,QAAQ;EACtB,eAAe,QAAQ;EACvB,OAAO,QAAQ;EACf,kBAAkB,QAAQ;EAC1B,MAAM,QAAQ;EACd,QAAQ,QAAQ;EAChB,WACG,QAAgC,oBAC1B;GACL,MAAM,IAAI,MAAM,4CAA4C;EAC9D;EACF,gBAAgB,QAAQ;EACxB,eAAe,QAAQ;EACvB,UAAU,QAAQ;EAClB,aAAa,aAAa;GACxB,IAAI,QAAQ,UACV,OAAO,YAAY,IAAI,EAAE,KAAK,SAAS,GAAG,CAAC;QAE3C,OAAO,YAAY,IAAI,QAAQ;EAEnC;EACA,YAAY,aAAa,WAAW,IAAI,QAAQ;EAChD,6BAA6B;CAC/B;AACF;AAEA,MAAa,iBAAiB,SAAS,iBAAiB"}
1
+ {"version":3,"file":"composer-runtime-client.js","names":["Unsubscribe","useMemo","useEffect","useResource","resource","withKey","ClientOutput","useAssistantEmit","useClientLookup","ComposerRuntime","EditComposerRuntime","ComposerState","QueueItemState","AttachmentRuntimeClient","useSubscribable","useComposerAttachmentClientByIndex","t0","$","_c","runtime","index","t1","getAttachmentByIndex","attachmentRuntime","t2","ComposerAttachmentClientByIndex","useQueueItemClient","item","onSteer","onRemove","getState","steer","remove","QueueItemClient","useComposerClient","threadIdRef","messageIdRef","runtimeState","emit","unsubscribers","event","const","unsubscribe","unstable_on","threadId","current","messageId","push","payload","attachmentId","reason","message","unsub","t3","attachments","t4","attachment","idx","id","map","queue","t5","steerQueueItem","removeQueueItem","queueItems","type","t6","state","attachmentAccept","canCancel","canSend","dictation","isEditing","isEmpty","quote","role","runConfig","text","t7","t8","beginEdit","_temp","t9","selector","get","key","t10","selector_0","t11","t12","addAttachment","cancel","clearAttachments","reset","send","setQuote","setRole","setRunConfig","setText","startDictation","stopDictation","queueItem","__internal_getRuntime","ComposerClient","Error"],"sources":["../../../src/store/runtime-clients/composer-runtime-client.ts"],"sourcesContent":["import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport { useMemo, useEffect } from \"react\";\nimport { useResource, resource, withKey } from \"@assistant-ui/tap\";\nimport {\n type ClientOutput,\n useAssistantEmit,\n useClientLookup,\n} from \"@assistant-ui/store\";\nimport type {\n ComposerRuntime,\n EditComposerRuntime,\n} from \"../../runtime/api/composer-runtime\";\nimport type { ComposerState } from \"../scopes/composer\";\nimport type { QueueItemState } from \"../scopes/queue-item\";\nimport { AttachmentRuntimeClient } from \"./attachment-runtime-client\";\nimport { useSubscribable } from \"./useSubscribable\";\n\nconst useComposerAttachmentClientByIndex = ({\n runtime,\n index,\n}: {\n runtime: ComposerRuntime;\n index: number;\n}) => {\n const attachmentRuntime = useMemo(\n () => runtime.getAttachmentByIndex(index),\n [runtime, index],\n );\n\n return useResource(\n AttachmentRuntimeClient({\n runtime: attachmentRuntime,\n }),\n );\n};\n\nconst ComposerAttachmentClientByIndex = resource(\n useComposerAttachmentClientByIndex,\n);\n\nconst useQueueItemClient = ({\n item,\n onSteer,\n onRemove,\n}: {\n item: QueueItemState;\n onSteer: () => void;\n onRemove: () => void;\n}): ClientOutput<\"queueItem\"> => {\n return {\n getState: () => item,\n steer: onSteer,\n remove: onRemove,\n };\n};\n\nconst QueueItemClient = resource(useQueueItemClient);\n\nconst useComposerClient = ({\n threadIdRef,\n messageIdRef,\n runtime,\n}: {\n threadIdRef: { current: string };\n messageIdRef?: { current: string };\n runtime: ComposerRuntime;\n}): ClientOutput<\"composer\"> => {\n const runtimeState = useSubscribable(runtime);\n const emit = useAssistantEmit();\n\n // Bind composer events to event manager\n useEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n // Subscribe to composer events\n for (const event of [\"send\", \"attachmentAdd\"] as const) {\n const unsubscribe = runtime.unstable_on(event, () => {\n emit(`composer.${event}`, {\n threadId: threadIdRef.current,\n ...(messageIdRef && { messageId: messageIdRef.current }),\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n unsubscribers.push(\n runtime.unstable_on(\"attachmentAddError\", (payload) => {\n // payload.error omitted: raw Error is not store-serializable; use runtime.unstable_on for it.\n emit(\"composer.attachmentAddError\", {\n threadId: threadIdRef.current,\n ...(messageIdRef && { messageId: messageIdRef.current }),\n ...(payload.attachmentId && { attachmentId: payload.attachmentId }),\n reason: payload.reason,\n message: payload.message,\n });\n }),\n );\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, emit, threadIdRef, messageIdRef]);\n\n const attachments = useClientLookup(\n runtimeState.attachments.map((attachment, idx) =>\n withKey(\n attachment.id,\n ComposerAttachmentClientByIndex({\n runtime,\n index: idx,\n }),\n [runtime, idx],\n ),\n ),\n );\n\n const queue = runtimeState.queue;\n const queueItems = useClientLookup(\n queue.map((item) =>\n withKey(\n item.id,\n QueueItemClient({\n item,\n onSteer: () => runtime.steerQueueItem(item.id),\n onRemove: () => runtime.removeQueueItem(item.id),\n }),\n ),\n ),\n );\n\n const state = useMemo<ComposerState>(() => {\n return {\n text: runtimeState.text,\n role: runtimeState.role,\n attachments: attachments.state,\n runConfig: runtimeState.runConfig,\n isEditing: runtimeState.isEditing,\n canCancel: runtimeState.canCancel,\n canSend: runtimeState.canSend,\n attachmentAccept: runtimeState.attachmentAccept,\n isEmpty: runtimeState.isEmpty,\n type: runtimeState.type ?? \"thread\",\n dictation: runtimeState.dictation,\n quote: runtimeState.quote,\n queue,\n };\n }, [runtimeState, attachments.state, queue]);\n\n return {\n getState: () => state,\n setText: runtime.setText,\n setRole: runtime.setRole,\n setRunConfig: runtime.setRunConfig,\n addAttachment: runtime.addAttachment,\n reset: runtime.reset,\n clearAttachments: runtime.clearAttachments,\n send: runtime.send,\n cancel: runtime.cancel,\n beginEdit:\n (runtime as EditComposerRuntime).beginEdit ??\n (() => {\n throw new Error(\"beginEdit is not supported in this runtime\");\n }),\n startDictation: runtime.startDictation,\n stopDictation: runtime.stopDictation,\n setQuote: runtime.setQuote,\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachments.get({ key: selector.id });\n } else {\n return attachments.get(selector);\n }\n },\n queueItem: (selector) => queueItems.get(selector),\n __internal_getRuntime: () => runtime,\n };\n};\n\nexport const ComposerClient = resource(useComposerClient);\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ //#region src/store/runtime-clients/liveRef.d.ts
2
+ declare const liveRef: <T>(get: () => T) => {
3
+ readonly current: T;
4
+ };
5
+ //#endregion
6
+ export { liveRef };
7
+ //# sourceMappingURL=liveRef.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveRef.d.ts","names":[],"sources":["../../../src/store/runtime-clients/liveRef.ts"],"mappings":";cAAa,OAAA,MAAc,GAAA,QAAW,CAAA;EAAA,SAAe,OAAA,EAAS,CAAC;AAAA"}
@@ -0,0 +1,8 @@
1
+ //#region src/store/runtime-clients/liveRef.ts
2
+ const liveRef = (get) => ({ get current() {
3
+ return get();
4
+ } });
5
+ //#endregion
6
+ export { liveRef };
7
+
8
+ //# sourceMappingURL=liveRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveRef.js","names":["liveRef","get","T","current"],"sources":["../../../src/store/runtime-clients/liveRef.ts"],"sourcesContent":["export const liveRef = <T>(get: () => T): { readonly current: T } => ({\n get current() {\n return get();\n },\n});\n"],"mappings":";AAAA,MAAaA,WAAcC,SAA2C,EACpE,IAAIE,UAAU;CACZ,OAAOF,IAAI;AACb,EACF"}
@@ -1,15 +1,54 @@
1
1
  import { useSubscribable } from "./useSubscribable.js";
2
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
2
3
  import { resource } from "@assistant-ui/tap";
3
4
  //#region src/store/runtime-clients/message-part-runtime-client.ts
4
- const useMessagePartClient = ({ runtime }) => {
5
+ const useMessagePartClient = (t0) => {
6
+ const $ = c(13);
7
+ const { runtime } = t0;
5
8
  const state = useSubscribable(runtime);
6
- return {
7
- getState: () => state,
8
- addToolResult: (result) => runtime.addToolResult(result),
9
- resumeToolCall: (payload) => runtime.resumeToolCall(payload),
10
- respondToToolApproval: (response) => runtime.respondToToolApproval(response),
11
- __internal_getRuntime: () => runtime
12
- };
9
+ let t1;
10
+ if ($[0] !== state) {
11
+ t1 = () => state;
12
+ $[0] = state;
13
+ $[1] = t1;
14
+ } else t1 = $[1];
15
+ let t2;
16
+ let t3;
17
+ let t4;
18
+ let t5;
19
+ if ($[2] !== runtime) {
20
+ t2 = (result) => runtime.addToolResult(result);
21
+ t3 = (payload) => runtime.resumeToolCall(payload);
22
+ t4 = (response) => runtime.respondToToolApproval(response);
23
+ t5 = () => runtime;
24
+ $[2] = runtime;
25
+ $[3] = t2;
26
+ $[4] = t3;
27
+ $[5] = t4;
28
+ $[6] = t5;
29
+ } else {
30
+ t2 = $[3];
31
+ t3 = $[4];
32
+ t4 = $[5];
33
+ t5 = $[6];
34
+ }
35
+ let t6;
36
+ if ($[7] !== t1 || $[8] !== t2 || $[9] !== t3 || $[10] !== t4 || $[11] !== t5) {
37
+ t6 = {
38
+ getState: t1,
39
+ addToolResult: t2,
40
+ resumeToolCall: t3,
41
+ respondToToolApproval: t4,
42
+ __internal_getRuntime: t5
43
+ };
44
+ $[7] = t1;
45
+ $[8] = t2;
46
+ $[9] = t3;
47
+ $[10] = t4;
48
+ $[11] = t5;
49
+ $[12] = t6;
50
+ } else t6 = $[12];
51
+ return t6;
13
52
  };
14
53
  const MessagePartClient = resource(useMessagePartClient);
15
54
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"message-part-runtime-client.js","names":[],"sources":["../../../src/store/runtime-clients/message-part-runtime-client.ts"],"sourcesContent":["import { resource } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport type { MessagePartRuntime } from \"../../runtime/api/message-part-runtime\";\nimport { useSubscribable } from \"./useSubscribable\";\n\nconst useMessagePartClient = ({\n runtime,\n}: {\n runtime: MessagePartRuntime;\n}): ClientOutput<\"part\"> => {\n const state = useSubscribable(runtime);\n\n return {\n getState: () => state,\n addToolResult: (result) => runtime.addToolResult(result),\n resumeToolCall: (payload) => runtime.resumeToolCall(payload),\n respondToToolApproval: (response) =>\n runtime.respondToToolApproval(response),\n __internal_getRuntime: () => runtime,\n };\n};\n\nexport const MessagePartClient = resource(useMessagePartClient);\n"],"mappings":";;;AAKA,MAAM,wBAAwB,EAC5B,cAG0B;CAC1B,MAAM,QAAQ,gBAAgB,OAAO;CAErC,OAAO;EACL,gBAAgB;EAChB,gBAAgB,WAAW,QAAQ,cAAc,MAAM;EACvD,iBAAiB,YAAY,QAAQ,eAAe,OAAO;EAC3D,wBAAwB,aACtB,QAAQ,sBAAsB,QAAQ;EACxC,6BAA6B;CAC/B;AACF;AAEA,MAAa,oBAAoB,SAAS,oBAAoB"}
1
+ {"version":3,"file":"message-part-runtime-client.js","names":["resource","ClientOutput","MessagePartRuntime","useSubscribable","useMessagePartClient","t0","$","_c","runtime","state","t1","t2","t3","t4","t5","result","addToolResult","payload","resumeToolCall","response","respondToToolApproval","t6","getState","__internal_getRuntime","MessagePartClient"],"sources":["../../../src/store/runtime-clients/message-part-runtime-client.ts"],"sourcesContent":["import { resource } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport type { MessagePartRuntime } from \"../../runtime/api/message-part-runtime\";\nimport { useSubscribable } from \"./useSubscribable\";\n\nconst useMessagePartClient = ({\n runtime,\n}: {\n runtime: MessagePartRuntime;\n}): ClientOutput<\"part\"> => {\n const state = useSubscribable(runtime);\n\n return {\n getState: () => state,\n addToolResult: (result) => runtime.addToolResult(result),\n resumeToolCall: (payload) => runtime.resumeToolCall(payload),\n respondToToolApproval: (response) =>\n runtime.respondToToolApproval(response),\n __internal_getRuntime: () => runtime,\n };\n};\n\nexport const MessagePartClient = resource(useMessagePartClient);\n"],"mappings":";;;;AAKA,MAAMI,wBAAuBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAC,MAAA,EAAAC,YAAAH;CAK5B,MAAAI,QAAcN,gBAAgBK,OAAO;CAAE,IAAAE;CAAA,IAAAJ,EAAA,OAAAG,OAAA;EAG3BC,WAAMD;EAAKH,EAAA,KAAAG;EAAAH,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,IAAAK;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAR,EAAA,OAAAE,SAAA;EACNG,MAAAI,WAAYP,QAAOQ,cAAeD,MAAM;EACvCH,MAAAK,YAAaT,QAAOU,eAAgBD,OAAO;EACpCJ,MAAAM,aACrBX,QAAOY,sBAAuBD,QAAQ;EACjBL,WAAMN;EAAOF,EAAA,KAAAE;EAAAF,EAAA,KAAAK;EAAAL,EAAA,KAAAM;EAAAN,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;CAAA,OAAA;EAAAH,KAAAL,EAAA;EAAAM,KAAAN,EAAA;EAAAO,KAAAP,EAAA;EAAAQ,KAAAR,EAAA;CAAA;CAAA,IAAAe;CAAA,IAAAf,EAAA,OAAAI,MAAAJ,EAAA,OAAAK,MAAAL,EAAA,OAAAM,MAAAN,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,IAAA;EAN/BO,KAAA;GAAAC,UACKZ;GAAWM,eACNL;GAAyCO,gBACxCN;GAA4CQ,uBACrCP;GACkBU,uBAClBT;EACzB;EAACR,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAAM;EAAAN,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAe;CAAA,OAAAA,KAAAf,EAAA;CAAA,OAPMe;AAON;AAGH,MAAaG,oBAAoBxB,SAASI,oBAAoB"}
@@ -1 +1 @@
1
- {"version":3,"file":"message-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/message-runtime-client.ts"],"mappings":";;;;cAyJa,aAAA,8BAAa,QAAA,CAAA,YAAA;WArGf,cAAc;;IACR,OAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"message-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/message-runtime-client.ts"],"mappings":";;;;cAoJa,aAAA,8BAAa,QAAA,CAAA,YAAA;WA/Ff,cAAc;;IACR,OAAA;EAAA;AAAA"}