@assistant-ui/react 0.14.26 → 0.14.28

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 (496) hide show
  1. package/README.md +1 -1
  2. package/dist/augmentations.d.ts.map +1 -1
  3. package/dist/client/ExternalThread.d.ts +6 -4
  4. package/dist/client/ExternalThread.d.ts.map +1 -1
  5. package/dist/client/ExternalThread.js +4 -3
  6. package/dist/client/ExternalThread.js.map +1 -1
  7. package/dist/client/InMemoryThreadList.d.ts +0 -1
  8. package/dist/client/InMemoryThreadList.d.ts.map +1 -1
  9. package/dist/client/InMemoryThreadList.js +4 -1
  10. package/dist/client/InMemoryThreadList.js.map +1 -1
  11. package/dist/client/SingleThreadList.d.ts +0 -1
  12. package/dist/client/SingleThreadList.d.ts.map +1 -1
  13. package/dist/context/ReadonlyStore.d.ts +0 -1
  14. package/dist/context/ReadonlyStore.d.ts.map +1 -1
  15. package/dist/context/providers/MessageProvider.d.ts +0 -1
  16. package/dist/context/providers/MessageProvider.d.ts.map +1 -1
  17. package/dist/context/providers/ThreadViewportProvider.d.ts +0 -1
  18. package/dist/context/providers/ThreadViewportProvider.d.ts.map +1 -1
  19. package/dist/context/react/ThreadViewportContext.d.ts +15 -16
  20. package/dist/context/react/ThreadViewportContext.d.ts.map +1 -1
  21. package/dist/context/react/utils/createContextHook.d.ts +0 -1
  22. package/dist/context/react/utils/createContextHook.d.ts.map +1 -1
  23. package/dist/context/react/utils/createContextStoreHook.d.ts +2 -3
  24. package/dist/context/react/utils/createContextStoreHook.d.ts.map +1 -1
  25. package/dist/context/react/utils/createStateHookForRuntime.d.ts +0 -1
  26. package/dist/context/react/utils/createStateHookForRuntime.d.ts.map +1 -1
  27. package/dist/context/react/utils/ensureBinding.d.ts.map +1 -1
  28. package/dist/context/react/utils/useRuntimeState.d.ts +0 -1
  29. package/dist/context/react/utils/useRuntimeState.d.ts.map +1 -1
  30. package/dist/context/stores/ThreadViewport.d.ts +25 -15
  31. package/dist/context/stores/ThreadViewport.d.ts.map +1 -1
  32. package/dist/devtools/DevToolsHooks.d.ts +0 -1
  33. package/dist/devtools/DevToolsHooks.d.ts.map +1 -1
  34. package/dist/hooks/useMessageQuote.d.ts +0 -1
  35. package/dist/hooks/useMessageQuote.d.ts.map +1 -1
  36. package/dist/hooks/useMessageTiming.d.ts +0 -1
  37. package/dist/hooks/useMessageTiming.d.ts.map +1 -1
  38. package/dist/hooks/useToolCallElapsed.d.ts.map +1 -1
  39. package/dist/index.d.ts +5 -3
  40. package/dist/internal.d.ts +0 -2
  41. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts +0 -1
  42. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -1
  43. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
  44. package/dist/legacy-runtime/cloud/auiV0.d.ts +11 -2
  45. package/dist/legacy-runtime/cloud/auiV0.d.ts.map +1 -1
  46. package/dist/legacy-runtime/cloud/auiV0.js +31 -2
  47. package/dist/legacy-runtime/cloud/auiV0.js.map +1 -1
  48. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts +1 -5
  49. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  50. package/dist/legacy-runtime/hooks/AssistantContext.d.ts +0 -1
  51. package/dist/legacy-runtime/hooks/AssistantContext.d.ts.map +1 -1
  52. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts +12 -13
  53. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts.map +1 -1
  54. package/dist/legacy-runtime/hooks/ComposerContext.d.ts +0 -1
  55. package/dist/legacy-runtime/hooks/ComposerContext.d.ts.map +1 -1
  56. package/dist/legacy-runtime/hooks/MessageContext.d.ts +0 -1
  57. package/dist/legacy-runtime/hooks/MessageContext.d.ts.map +1 -1
  58. package/dist/legacy-runtime/hooks/MessagePartContext.d.ts +0 -1
  59. package/dist/legacy-runtime/hooks/MessagePartContext.d.ts.map +1 -1
  60. package/dist/legacy-runtime/hooks/ThreadContext.d.ts +0 -1
  61. package/dist/legacy-runtime/hooks/ThreadContext.d.ts.map +1 -1
  62. package/dist/legacy-runtime/hooks/ThreadListItemContext.d.ts +0 -1
  63. package/dist/legacy-runtime/hooks/ThreadListItemContext.d.ts.map +1 -1
  64. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.d.ts +0 -1
  65. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.d.ts.map +1 -1
  66. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.d.ts +1 -4
  67. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.d.ts.map +1 -1
  68. package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.d.ts.map +1 -1
  69. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts +0 -1
  70. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts.map +1 -1
  71. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts +0 -1
  72. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  73. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.d.ts +0 -1
  74. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.d.ts.map +1 -1
  75. package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.d.ts.map +1 -1
  76. package/dist/mcp-apps/McpAppRenderer.d.ts +12 -7
  77. package/dist/mcp-apps/McpAppRenderer.d.ts.map +1 -1
  78. package/dist/mcp-apps/McpAppRenderer.js +29 -7
  79. package/dist/mcp-apps/McpAppRenderer.js.map +1 -1
  80. package/dist/mcp-apps/McpAppsRemoteHost.d.ts +0 -1
  81. package/dist/mcp-apps/McpAppsRemoteHost.d.ts.map +1 -1
  82. package/dist/mcp-apps/McpAppsRemoteHost.js +32 -1
  83. package/dist/mcp-apps/McpAppsRemoteHost.js.map +1 -1
  84. package/dist/mcp-apps/app-frame.d.ts +1 -12
  85. package/dist/mcp-apps/app-frame.d.ts.map +1 -1
  86. package/dist/mcp-apps/app-frame.js +1 -1
  87. package/dist/mcp-apps/app-frame.js.map +1 -1
  88. package/dist/mcp-apps/bridge.d.ts +0 -1
  89. package/dist/mcp-apps/bridge.d.ts.map +1 -1
  90. package/dist/mcp-apps/bridge.js +4 -3
  91. package/dist/mcp-apps/bridge.js.map +1 -1
  92. package/dist/mcp-apps/types.d.ts +10 -7
  93. package/dist/mcp-apps/types.d.ts.map +1 -1
  94. package/dist/mcp-apps/types.js.map +1 -1
  95. package/dist/mcp-apps/utils.d.ts +0 -1
  96. package/dist/mcp-apps/utils.d.ts.map +1 -1
  97. package/dist/model-context/frame/useAssistantFrameHost.d.ts +1 -6
  98. package/dist/model-context/frame/useAssistantFrameHost.d.ts.map +1 -1
  99. package/dist/model-context/makeAssistantVisible.d.ts +0 -1
  100. package/dist/model-context/makeAssistantVisible.d.ts.map +1 -1
  101. package/dist/model-context/makeAssistantVisible.js +7 -1
  102. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  103. package/dist/primitives/actionBar/ActionBarCopy.d.ts +1 -4
  104. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  105. package/dist/primitives/actionBar/ActionBarEdit.d.ts +0 -1
  106. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
  107. package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts +1 -5
  108. package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts.map +1 -1
  109. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +0 -1
  110. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
  111. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +0 -1
  112. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -1
  113. package/dist/primitives/actionBar/ActionBarInteractionContext.d.ts.map +1 -1
  114. package/dist/primitives/actionBar/ActionBarReload.d.ts +0 -1
  115. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
  116. package/dist/primitives/actionBar/ActionBarRoot.d.ts +0 -1
  117. package/dist/primitives/actionBar/ActionBarRoot.d.ts.map +1 -1
  118. package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -1
  119. package/dist/primitives/actionBar/ActionBarSpeak.d.ts +0 -1
  120. package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -1
  121. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +0 -1
  122. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -1
  123. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts +1 -6
  124. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -1
  125. package/dist/primitives/actionBar.d.ts +0 -2
  126. package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts +0 -1
  127. package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts.map +1 -1
  128. package/dist/primitives/actionBarMore/ActionBarMoreContent.js.map +1 -1
  129. package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts +0 -1
  130. package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts.map +1 -1
  131. package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts +0 -1
  132. package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts.map +1 -1
  133. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts +0 -1
  134. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts.map +1 -1
  135. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts +0 -1
  136. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts.map +1 -1
  137. package/dist/primitives/actionBarMore/scope.d.ts +0 -1
  138. package/dist/primitives/actionBarMore/scope.d.ts.map +1 -1
  139. package/dist/primitives/actionBarMore.d.ts +0 -2
  140. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts +6 -4
  141. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts.map +1 -1
  142. package/dist/primitives/assistantModal/AssistantModalAnchor.js +2 -2
  143. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
  144. package/dist/primitives/assistantModal/AssistantModalContent.d.ts +4 -2
  145. package/dist/primitives/assistantModal/AssistantModalContent.d.ts.map +1 -1
  146. package/dist/primitives/assistantModal/AssistantModalContent.js +2 -1
  147. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  148. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts +0 -1
  149. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts.map +1 -1
  150. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts +6 -4
  151. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts.map +1 -1
  152. package/dist/primitives/assistantModal/AssistantModalTrigger.js +2 -2
  153. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  154. package/dist/primitives/assistantModal/popoverRenderPrimitives.d.ts +14 -0
  155. package/dist/primitives/assistantModal/popoverRenderPrimitives.d.ts.map +1 -0
  156. package/dist/primitives/assistantModal/popoverRenderPrimitives.js +10 -0
  157. package/dist/primitives/assistantModal/popoverRenderPrimitives.js.map +1 -0
  158. package/dist/primitives/assistantModal/scope.d.ts +0 -1
  159. package/dist/primitives/assistantModal/scope.d.ts.map +1 -1
  160. package/dist/primitives/assistantModal.d.ts +0 -2
  161. package/dist/primitives/attachment/AttachmentName.d.ts +0 -1
  162. package/dist/primitives/attachment/AttachmentName.d.ts.map +1 -1
  163. package/dist/primitives/attachment/AttachmentRemove.d.ts +0 -1
  164. package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -1
  165. package/dist/primitives/attachment/AttachmentRoot.d.ts +0 -1
  166. package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -1
  167. package/dist/primitives/attachment/AttachmentThumb.d.ts +0 -1
  168. package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -1
  169. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
  170. package/dist/primitives/attachment.d.ts +0 -2
  171. package/dist/primitives/branchPicker/BranchPickerCount.d.ts +0 -1
  172. package/dist/primitives/branchPicker/BranchPickerCount.d.ts.map +1 -1
  173. package/dist/primitives/branchPicker/BranchPickerNext.d.ts +0 -1
  174. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
  175. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts +0 -1
  176. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts.map +1 -1
  177. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +0 -1
  178. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
  179. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts +0 -1
  180. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -1
  181. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  182. package/dist/primitives/branchPicker.d.ts +0 -2
  183. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts +0 -1
  184. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts.map +1 -1
  185. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts +0 -1
  186. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts.map +1 -1
  187. package/dist/primitives/chainOfThought.d.ts +0 -2
  188. package/dist/primitives/composer/ComposerAddAttachment.d.ts +5 -6
  189. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  190. package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts +0 -1
  191. package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts.map +1 -1
  192. package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
  193. package/dist/primitives/composer/ComposerCancel.d.ts +0 -1
  194. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
  195. package/dist/primitives/composer/ComposerCompactContext.d.ts +9 -0
  196. package/dist/primitives/composer/ComposerCompactContext.d.ts.map +1 -0
  197. package/dist/primitives/composer/ComposerCompactContext.js +11 -0
  198. package/dist/primitives/composer/ComposerCompactContext.js.map +1 -0
  199. package/dist/primitives/composer/ComposerDictate.d.ts +0 -1
  200. package/dist/primitives/composer/ComposerDictate.d.ts.map +1 -1
  201. package/dist/primitives/composer/ComposerDictationTranscript.d.ts +0 -1
  202. package/dist/primitives/composer/ComposerDictationTranscript.d.ts.map +1 -1
  203. package/dist/primitives/composer/ComposerDictationTranscript.js.map +1 -1
  204. package/dist/primitives/composer/ComposerInput.d.ts +0 -1
  205. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
  206. package/dist/primitives/composer/ComposerInput.js +17 -2
  207. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  208. package/dist/primitives/composer/ComposerInputPluginContext.d.ts +4 -3
  209. package/dist/primitives/composer/ComposerInputPluginContext.d.ts.map +1 -1
  210. package/dist/primitives/composer/ComposerQuote.d.ts +0 -1
  211. package/dist/primitives/composer/ComposerQuote.d.ts.map +1 -1
  212. package/dist/primitives/composer/ComposerQuote.js.map +1 -1
  213. package/dist/primitives/composer/ComposerRoot.d.ts +27 -3
  214. package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -1
  215. package/dist/primitives/composer/ComposerRoot.js +109 -30
  216. package/dist/primitives/composer/ComposerRoot.js.map +1 -1
  217. package/dist/primitives/composer/ComposerSend.d.ts +0 -1
  218. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
  219. package/dist/primitives/composer/ComposerStopDictation.d.ts +0 -1
  220. package/dist/primitives/composer/ComposerStopDictation.d.ts.map +1 -1
  221. package/dist/primitives/composer/trigger/TriggerPopover.d.ts +10 -5
  222. package/dist/primitives/composer/trigger/TriggerPopover.d.ts.map +1 -1
  223. package/dist/primitives/composer/trigger/TriggerPopover.js.map +1 -1
  224. package/dist/primitives/composer/trigger/TriggerPopoverAction.d.ts +5 -3
  225. package/dist/primitives/composer/trigger/TriggerPopoverAction.d.ts.map +1 -1
  226. package/dist/primitives/composer/trigger/TriggerPopoverAction.js +3 -2
  227. package/dist/primitives/composer/trigger/TriggerPopoverAction.js.map +1 -1
  228. package/dist/primitives/composer/trigger/TriggerPopoverBack.d.ts +0 -1
  229. package/dist/primitives/composer/trigger/TriggerPopoverBack.d.ts.map +1 -1
  230. package/dist/primitives/composer/trigger/TriggerPopoverCategories.d.ts +0 -1
  231. package/dist/primitives/composer/trigger/TriggerPopoverCategories.d.ts.map +1 -1
  232. package/dist/primitives/composer/trigger/TriggerPopoverCategories.js.map +1 -1
  233. package/dist/primitives/composer/trigger/TriggerPopoverDirective.d.ts +3 -2
  234. package/dist/primitives/composer/trigger/TriggerPopoverDirective.d.ts.map +1 -1
  235. package/dist/primitives/composer/trigger/TriggerPopoverItems.d.ts +0 -1
  236. package/dist/primitives/composer/trigger/TriggerPopoverItems.d.ts.map +1 -1
  237. package/dist/primitives/composer/trigger/TriggerPopoverItems.js.map +1 -1
  238. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts +10 -6
  239. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts.map +1 -1
  240. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.d.ts +8 -5
  241. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.d.ts.map +1 -1
  242. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js.map +1 -1
  243. package/dist/primitives/composer/trigger/detectTrigger.d.ts +1 -1
  244. package/dist/primitives/composer/trigger/index.d.ts +0 -1
  245. package/dist/primitives/composer/trigger/index.d.ts.map +1 -1
  246. package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts +5 -2
  247. package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts.map +1 -1
  248. package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts +7 -4
  249. package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts.map +1 -1
  250. package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts +13 -7
  251. package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts.map +1 -1
  252. package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts +7 -4
  253. package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts.map +1 -1
  254. package/dist/primitives/composer/useComposerInputState.d.ts.map +1 -1
  255. package/dist/primitives/composer.d.ts +0 -2
  256. package/dist/primitives/dropdownMenuRenderPrimitives.d.ts +0 -1
  257. package/dist/primitives/dropdownMenuRenderPrimitives.d.ts.map +1 -1
  258. package/dist/primitives/error/ErrorMessage.d.ts +0 -1
  259. package/dist/primitives/error/ErrorMessage.d.ts.map +1 -1
  260. package/dist/primitives/error/ErrorMessage.js.map +1 -1
  261. package/dist/primitives/error/ErrorRoot.d.ts +0 -1
  262. package/dist/primitives/error/ErrorRoot.d.ts.map +1 -1
  263. package/dist/primitives/error.d.ts +0 -2
  264. package/dist/primitives/message/MessageError.d.ts +0 -1
  265. package/dist/primitives/message/MessageError.d.ts.map +1 -1
  266. package/dist/primitives/message/MessageIf.d.ts +0 -1
  267. package/dist/primitives/message/MessageIf.d.ts.map +1 -1
  268. package/dist/primitives/message/MessageParts.d.ts +0 -1
  269. package/dist/primitives/message/MessageParts.d.ts.map +1 -1
  270. package/dist/primitives/message/MessageParts.js.map +1 -1
  271. package/dist/primitives/message/MessagePartsGrouped.d.ts +25 -12
  272. package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
  273. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  274. package/dist/primitives/message/MessageRoot.d.ts +0 -1
  275. package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
  276. package/dist/primitives/message.d.ts +0 -2
  277. package/dist/primitives/messagePart/MessagePartImage.d.ts +0 -1
  278. package/dist/primitives/messagePart/MessagePartImage.d.ts.map +1 -1
  279. package/dist/primitives/messagePart/MessagePartText.d.ts +0 -1
  280. package/dist/primitives/messagePart/MessagePartText.d.ts.map +1 -1
  281. package/dist/primitives/messagePart/MessagePartText.js.map +1 -1
  282. package/dist/primitives/messagePart/useMessagePartData.d.ts +3 -3
  283. package/dist/primitives/messagePart/useMessagePartData.d.ts.map +1 -1
  284. package/dist/primitives/messagePart/useMessagePartData.js +3 -2
  285. package/dist/primitives/messagePart/useMessagePartData.js.map +1 -1
  286. package/dist/primitives/messagePart/useMessagePartFile.d.ts +5 -5
  287. package/dist/primitives/messagePart/useMessagePartFile.d.ts.map +1 -1
  288. package/dist/primitives/messagePart/useMessagePartFile.js +11 -3
  289. package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -1
  290. package/dist/primitives/messagePart/useMessagePartImage.d.ts +5 -5
  291. package/dist/primitives/messagePart/useMessagePartImage.d.ts.map +1 -1
  292. package/dist/primitives/messagePart/useMessagePartImage.js +10 -3
  293. package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -1
  294. package/dist/primitives/messagePart/useMessagePartReasoning.d.ts +5 -5
  295. package/dist/primitives/messagePart/useMessagePartReasoning.d.ts.map +1 -1
  296. package/dist/primitives/messagePart/useMessagePartReasoning.js +10 -3
  297. package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -1
  298. package/dist/primitives/messagePart/useMessagePartSource.d.ts +6 -4
  299. package/dist/primitives/messagePart/useMessagePartSource.d.ts.map +1 -1
  300. package/dist/primitives/messagePart/useMessagePartSource.js +12 -3
  301. package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -1
  302. package/dist/primitives/messagePart/useMessagePartText.d.ts +6 -6
  303. package/dist/primitives/messagePart/useMessagePartText.d.ts.map +1 -1
  304. package/dist/primitives/messagePart/useMessagePartText.js +10 -3
  305. package/dist/primitives/messagePart/useMessagePartText.js.map +1 -1
  306. package/dist/primitives/messagePart.d.ts +0 -2
  307. package/dist/primitives/queueItem/QueueItemRemove.d.ts +0 -1
  308. package/dist/primitives/queueItem/QueueItemRemove.d.ts.map +1 -1
  309. package/dist/primitives/queueItem/QueueItemSteer.d.ts +0 -1
  310. package/dist/primitives/queueItem/QueueItemSteer.d.ts.map +1 -1
  311. package/dist/primitives/queueItem/QueueItemText.d.ts +0 -1
  312. package/dist/primitives/queueItem/QueueItemText.d.ts.map +1 -1
  313. package/dist/primitives/queueItem/QueueItemText.js.map +1 -1
  314. package/dist/primitives/queueItem.d.ts +0 -2
  315. package/dist/primitives/reasoning/useScrollLock.d.ts +0 -1
  316. package/dist/primitives/reasoning/useScrollLock.d.ts.map +1 -1
  317. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.d.ts +0 -1
  318. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.d.ts.map +1 -1
  319. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.d.ts +0 -1
  320. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.d.ts.map +1 -1
  321. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js +2 -1
  322. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js.map +1 -1
  323. package/dist/primitives/selectionToolbar.d.ts +0 -2
  324. package/dist/primitives/suggestion/SuggestionDescription.d.ts +0 -1
  325. package/dist/primitives/suggestion/SuggestionDescription.d.ts.map +1 -1
  326. package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -1
  327. package/dist/primitives/suggestion/SuggestionTitle.d.ts +0 -1
  328. package/dist/primitives/suggestion/SuggestionTitle.d.ts.map +1 -1
  329. package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -1
  330. package/dist/primitives/suggestion/SuggestionTrigger.d.ts +1 -5
  331. package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -1
  332. package/dist/primitives/suggestion.d.ts +0 -2
  333. package/dist/primitives/thread/ThreadEmpty.d.ts +0 -1
  334. package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -1
  335. package/dist/primitives/thread/ThreadIf.d.ts +0 -1
  336. package/dist/primitives/thread/ThreadIf.d.ts.map +1 -1
  337. package/dist/primitives/thread/ThreadRoot.d.ts +0 -1
  338. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
  339. package/dist/primitives/thread/ThreadScrollToBottom.d.ts +1 -4
  340. package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -1
  341. package/dist/primitives/thread/ThreadSuggestion.d.ts +13 -14
  342. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  343. package/dist/primitives/thread/ThreadViewport.d.ts +0 -1
  344. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -1
  345. package/dist/primitives/thread/ThreadViewport.js +53 -19
  346. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  347. package/dist/primitives/thread/ThreadViewportFooter.d.ts +0 -1
  348. package/dist/primitives/thread/ThreadViewportFooter.d.ts.map +1 -1
  349. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.d.ts +2 -11
  350. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.d.ts.map +1 -1
  351. package/dist/primitives/thread/topAnchor/createReserveObservers.d.ts.map +1 -1
  352. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.d.ts +4 -0
  353. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.d.ts.map +1 -1
  354. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js +14 -1
  355. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js.map +1 -1
  356. package/dist/primitives/thread/topAnchor/topAnchorTurn.d.ts +14 -5
  357. package/dist/primitives/thread/topAnchor/topAnchorTurn.d.ts.map +1 -1
  358. package/dist/primitives/thread/topAnchor/topAnchorTurn.js +14 -1
  359. package/dist/primitives/thread/topAnchor/topAnchorTurn.js.map +1 -1
  360. package/dist/primitives/thread/topAnchor/topAnchorUtils.d.ts.map +1 -1
  361. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.d.ts.map +1 -1
  362. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts +1 -7
  363. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
  364. package/dist/primitives/thread/useThreadViewportAutoScroll.js +2 -1
  365. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  366. package/dist/primitives/thread.d.ts +0 -2
  367. package/dist/primitives/threadList/ThreadListLoadMore.d.ts +0 -1
  368. package/dist/primitives/threadList/ThreadListLoadMore.d.ts.map +1 -1
  369. package/dist/primitives/threadList/ThreadListNew.d.ts +0 -1
  370. package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -1
  371. package/dist/primitives/threadList/ThreadListRoot.d.ts +0 -1
  372. package/dist/primitives/threadList/ThreadListRoot.d.ts.map +1 -1
  373. package/dist/primitives/threadList/ThreadListRoot.js.map +1 -1
  374. package/dist/primitives/threadList.d.ts +0 -2
  375. package/dist/primitives/threadListFocusGroup.d.ts +0 -1
  376. package/dist/primitives/threadListFocusGroup.d.ts.map +1 -1
  377. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts +0 -1
  378. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -1
  379. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts +0 -1
  380. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -1
  381. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +0 -1
  382. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -1
  383. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
  384. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +0 -1
  385. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -1
  386. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
  387. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts +0 -1
  388. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -1
  389. package/dist/primitives/threadListItem.d.ts +0 -2
  390. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts +0 -1
  391. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts.map +1 -1
  392. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js.map +1 -1
  393. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts +0 -1
  394. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts.map +1 -1
  395. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts +0 -1
  396. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts.map +1 -1
  397. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js.map +1 -1
  398. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts +0 -1
  399. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts.map +1 -1
  400. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts +0 -1
  401. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts.map +1 -1
  402. package/dist/primitives/threadListItemMore/scope.d.ts +0 -1
  403. package/dist/primitives/threadListItemMore/scope.d.ts.map +1 -1
  404. package/dist/primitives/threadListItemMore.d.ts +0 -2
  405. package/dist/sandbox-host/SandboxHost.d.ts +1 -10
  406. package/dist/sandbox-host/SandboxHost.d.ts.map +1 -1
  407. package/dist/tests/remote-thread-list-test-helpers.d.ts +0 -1
  408. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -1
  409. package/dist/tests/setup.d.ts +1 -1
  410. package/dist/unstable/useComposerInput.d.ts +2 -2
  411. package/dist/unstable/useComposerInput.d.ts.map +1 -1
  412. package/dist/unstable/useComposerInputHistory.d.ts +2 -2
  413. package/dist/unstable/useComposerInputHistory.d.ts.map +1 -1
  414. package/dist/unstable/useLiveCompletionAdapter.d.ts +4 -3
  415. package/dist/unstable/useLiveCompletionAdapter.d.ts.map +1 -1
  416. package/dist/unstable/useMentionAdapter.d.ts +19 -10
  417. package/dist/unstable/useMentionAdapter.d.ts.map +1 -1
  418. package/dist/unstable/useMessageStallDetection.d.ts +3 -1
  419. package/dist/unstable/useMessageStallDetection.d.ts.map +1 -1
  420. package/dist/unstable/useSlashCommandAdapter.d.ts +6 -4
  421. package/dist/unstable/useSlashCommandAdapter.d.ts.map +1 -1
  422. package/dist/utils/Primitive.d.ts +0 -1
  423. package/dist/utils/Primitive.d.ts.map +1 -1
  424. package/dist/utils/Primitive.js.map +1 -1
  425. package/dist/utils/RequireAtLeastOne.d.ts +1 -1
  426. package/dist/utils/RequireAtLeastOne.d.ts.map +1 -1
  427. package/dist/utils/createActionButton.d.ts +0 -1
  428. package/dist/utils/createActionButton.d.ts.map +1 -1
  429. package/dist/utils/getSelectionMessageId.d.ts.map +1 -1
  430. package/dist/utils/getSelectionMessageId.js +32 -7
  431. package/dist/utils/getSelectionMessageId.js.map +1 -1
  432. package/dist/utils/hooks/useManagedRef.d.ts.map +1 -1
  433. package/dist/utils/hooks/useMediaQuery.d.ts.map +1 -1
  434. package/dist/utils/hooks/useOnResizeContent.d.ts.map +1 -1
  435. package/dist/utils/hooks/useOnScrollToBottom.d.ts.map +1 -1
  436. package/dist/utils/hooks/useSizeHandle.d.ts +0 -1
  437. package/dist/utils/hooks/useSizeHandle.d.ts.map +1 -1
  438. package/dist/utils/smooth/SmoothContext.d.ts +71 -72
  439. package/dist/utils/smooth/SmoothContext.d.ts.map +1 -1
  440. package/dist/utils/smooth/useSmooth.d.ts +0 -1
  441. package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
  442. package/dist/utils/useToolArgsFieldStatus.d.ts +2 -2
  443. package/dist/utils/useToolArgsFieldStatus.d.ts.map +1 -1
  444. package/package.json +23 -23
  445. package/src/client/ExternalThread.ts +2 -1
  446. package/src/index.ts +3 -0
  447. package/src/legacy-runtime/cloud/auiV0.ts +72 -3
  448. package/src/mcp-apps/McpAppRenderer.test.tsx +141 -0
  449. package/src/mcp-apps/McpAppRenderer.tsx +48 -10
  450. package/src/mcp-apps/McpAppsRemoteHost.test.ts +126 -0
  451. package/src/mcp-apps/McpAppsRemoteHost.ts +40 -1
  452. package/src/mcp-apps/app-frame.tsx +3 -1
  453. package/src/mcp-apps/bridge.ts +1 -1
  454. package/src/mcp-apps/types.ts +16 -8
  455. package/src/model-context/makeAssistantVisible.test.tsx +146 -0
  456. package/src/model-context/makeAssistantVisible.tsx +18 -1
  457. package/src/primitives/assistantModal/AssistantModalAnchor.tsx +6 -8
  458. package/src/primitives/assistantModal/AssistantModalContent.tsx +5 -5
  459. package/src/primitives/assistantModal/AssistantModalTrigger.test.tsx +80 -0
  460. package/src/primitives/assistantModal/AssistantModalTrigger.tsx +6 -8
  461. package/src/primitives/assistantModal/popoverRenderPrimitives.ts +6 -0
  462. package/src/primitives/composer/ComposerCompactContext.tsx +13 -0
  463. package/src/primitives/composer/ComposerInput.tsx +35 -0
  464. package/src/primitives/composer/ComposerRoot.test.tsx +382 -0
  465. package/src/primitives/composer/ComposerRoot.tsx +86 -7
  466. package/src/primitives/messagePart/useMessagePartData.ts +3 -2
  467. package/src/primitives/messagePart/useMessagePartFile.ts +19 -7
  468. package/src/primitives/messagePart/useMessagePartImage.ts +18 -7
  469. package/src/primitives/messagePart/useMessagePartReasoning.ts +15 -6
  470. package/src/primitives/messagePart/useMessagePartSource.ts +20 -7
  471. package/src/primitives/messagePart/useMessagePartText.ts +15 -5
  472. package/src/primitives/thread/ThreadViewport.tsx +15 -0
  473. package/src/primitives/thread/topAnchor/mountTopAnchorReserve.test.ts +243 -0
  474. package/src/primitives/thread/topAnchor/mountTopAnchorReserve.ts +28 -7
  475. package/src/primitives/thread/topAnchor/topAnchorTurn.test.ts +69 -0
  476. package/src/primitives/thread/topAnchor/topAnchorTurn.ts +29 -0
  477. package/src/primitives/thread/useThreadViewportAutoScroll.test.tsx +86 -1
  478. package/src/primitives/thread/useThreadViewportAutoScroll.ts +6 -1
  479. package/src/tests/BaseComposerRuntimeCore.test.ts +12 -3
  480. package/src/tests/LocalThreadRuntimeCore.test.ts +4 -1
  481. package/src/tests/auiV0Encode.test.ts +134 -1
  482. package/src/tests/external-thread-attachments.test.tsx +81 -0
  483. package/src/tests/messagePartSwitchRace.test.tsx +158 -0
  484. package/src/tests/messagePartTypeMismatch.test.tsx +146 -0
  485. package/src/utils/getSelectionMessageId.test.ts +175 -0
  486. package/src/utils/getSelectionMessageId.ts +57 -6
  487. package/dist/utils/json/is-json-equal.d.ts +0 -5
  488. package/dist/utils/json/is-json-equal.d.ts.map +0 -1
  489. package/dist/utils/json/is-json-equal.js +0 -26
  490. package/dist/utils/json/is-json-equal.js.map +0 -1
  491. package/dist/utils/json/is-json.d.ts +0 -10
  492. package/dist/utils/json/is-json.d.ts.map +0 -1
  493. package/dist/utils/json/is-json.js +0 -22
  494. package/dist/utils/json/is-json.js.map +0 -1
  495. package/src/utils/json/is-json-equal.ts +0 -48
  496. package/src/utils/json/is-json.ts +0 -58
package/README.md CHANGED
@@ -86,7 +86,7 @@ Broad model support out of the box (OpenAI, Anthropic, Google Gemini, Mistral, P
86
86
 
87
87
  ## Customization
88
88
 
89
- Radix-style: instead of a single monolithic chat component, you compose primitives and bring your own styles. The CLI ships a great starter; you control everything else.
89
+ Instead of a single monolithic chat component, you compose primitives and bring your own styles. The CLI ships a great starter in your choice of Base UI (the default) or Radix UI flavor; you control everything else.
90
90
 
91
91
  ![Overview of components](https://raw.githubusercontent.com/assistant-ui/assistant-ui/main/.github/assets/components.png)
92
92
 
@@ -1 +1 @@
1
- {"version":3,"file":"augmentations.d.ts","names":[],"sources":["../src/augmentations.ts"],"mappings":";;AAuBA;;;;AAGgC;AAGhC;;;;;;;;;AAAsE;AACtE;;;;;;;kBAPiB,SAAA;EAAA,UACE,QAAA;EAAA,UAEA,aAAa;AAAA;AAAA,KAGpB,YAAA,GAAe,SAAA,CAAU,QAAA,OAAe,SAAA,CAAU,QAAQ;AAAA,KAC1D,iBAAA,SAA0B,SAAA,CAAU,aAAA,iBAC5C,MAAA,oBACA,SAAA,CAAU,aAAA,OAAoB,SAAA,CAAU,aAAA"}
1
+ {"version":3,"file":"augmentations.d.ts","names":[],"sources":["../src/augmentations.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;kBAuBiB;YACE;YAEA;;KAGP,eAAe,UAAU,eAAe,UAAU;KAClD,0BAA0B,UAAU,8BAC5C,0BACA,UAAU,oBAAoB,UAAU"}
@@ -1,6 +1,5 @@
1
1
  import { ClientOutput } from "@assistant-ui/store";
2
2
  import { AppendMessage, ExternalThreadBranchAdapter, ExternalThreadQueueAdapter, RespondToToolApprovalOptions, ThreadMessage } from "@assistant-ui/core";
3
-
4
3
  //#region src/client/ExternalThread.d.ts
5
4
  type ExternalThreadMessage = ThreadMessage & {
6
5
  id: string;
@@ -23,9 +22,12 @@ type ExternalThreadProps = {
23
22
  onEdit?: (message: AppendMessage) => void;
24
23
  onReload?: (parentId: string | null) => void;
25
24
  onStartRun?: () => void;
26
- onCancel?: () => void; /** Queue adapter for runtimes that support message queuing and steering. */
27
- queue?: ExternalThreadQueueAdapter; /** Branch adapter for runtimes that track sibling variants of messages. */
28
- branches?: ExternalThreadBranchAdapter; /** Callback for tool approval decisions. Absent: responding to an approval throws a capability error. */
25
+ onCancel?: () => void;
26
+ /** Queue adapter for runtimes that support message queuing and steering. */
27
+ queue?: ExternalThreadQueueAdapter;
28
+ /** Branch adapter for runtimes that track sibling variants of messages. */
29
+ branches?: ExternalThreadBranchAdapter;
30
+ /** Callback for tool approval decisions. Absent: responding to an approval throws a capability error. */
29
31
  onRespondToToolApproval?: (options: RespondToToolApprovalOptions) => void;
30
32
  };
31
33
  declare const ExternalThread: import("@assistant-ui/tap").Resource<ClientOutput<"thread">, [ExternalThreadProps]>;
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalThread.d.ts","names":[],"sources":["../../src/client/ExternalThread.ts"],"mappings":";;;;KAmCY,qBAAA,GAAwB,aAAa;EAC/C,EAAE;AAAA;AAAA,KAGQ,mBAAA;EACV,QAAA,WAAmB,qBAAA;EACnB,SAAA;EALE;AAGJ;;;;;EASE,cAAA;EAWQ;;;;EANR,KAAA,IAAS,OAAA,EAAS,aAAA;EAClB,MAAA,IAAU,OAAA,EAAS,aAAA;EACnB,QAAA,IAAY,QAAA;EACZ,UAAA;EACA,QAAA,eAJA;EAMA,KAAA,GAAQ,0BAAA,EANC;EAQT,QAAA,GAAW,2BAAA,EAPQ;EASnB,uBAAA,IAA2B,OAAA,EAAS,4BAAA;AAAA;AAAA,cA4lBzB,cAAA,8BAAc,QAAA,CAAA,YAAA,aAAA,mBAAA"}
1
+ {"version":3,"file":"ExternalThread.d.ts","names":[],"sources":["../../src/client/ExternalThread.ts"],"mappings":";;;KAoCY,wBAAwB;EAClC;;KAGU;EACV,mBAAmB;EACnB;;;;;;;EAOA;;;;;EAKA,SAAS,SAAS;EAClB,UAAU,SAAS;EACnB,YAAY;EACZ;EACA;;EAEA,QAAQ;;EAER,WAAW;;EAEX,2BAA2B,SAAS;;cA4lBzB,4CAAc,SAAA,yBAAA"}
@@ -5,7 +5,7 @@ import { DataRenderers, Tools } from "@assistant-ui/core/react";
5
5
  import { useEffect, useEffectEvent, useState } from "@assistant-ui/tap/react-shim";
6
6
  import { ModelContext, Suggestions } from "@assistant-ui/core/store";
7
7
  import { resource, withKey } from "@assistant-ui/tap";
8
- import { getThreadMessageText, resolveToolApprovalResponse } from "@assistant-ui/core/internal";
8
+ import { getThreadMessageText, isCreateAttachment, resolveToolApprovalResponse } from "@assistant-ui/core/internal";
9
9
  //#region src/client/ExternalThread.ts
10
10
  const EMPTY_QUEUE_ITEMS = [];
11
11
  const EMPTY_BRANCH_IDS = [];
@@ -327,7 +327,8 @@ const useComposerClientResource = (t0) => {
327
327
  if ($[2] !== message) {
328
328
  t4 = () => {
329
329
  if (message) {
330
- setText(message.content.filter(_temp9).map(_temp0).join("\n\n"));
330
+ const messageText = message.content.filter(_temp9).map(_temp0).join("\n\n");
331
+ setText(messageText);
331
332
  setRole(message.role);
332
333
  setAttachments(message.attachments ?? []);
333
334
  }
@@ -432,7 +433,7 @@ const useComposerClientResource = (t0) => {
432
433
  let t13;
433
434
  if ($[33] !== attachments) {
434
435
  t13 = async (fileOrAttachment) => {
435
- if (fileOrAttachment instanceof File) {
436
+ if (!isCreateAttachment(fileOrAttachment)) {
436
437
  const newAttachment = {
437
438
  id: Math.random().toString(36).substring(7),
438
439
  type: "file",
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalThread.js","names":["useState","useMemo","useEffect","useEffectEvent","resource","withKey","ClientElement","ClientOutput","useClientLookup","attachTransformScopes","useClientResource","Derived","AppendMessage","Attachment","CreateAttachment","RespondToToolApprovalOptions","ThreadAssistantMessagePart","ThreadUserMessagePart","ThreadMessage","ExternalThreadQueueAdapter","ExternalThreadBranchAdapter","QueueItemState","ComposerSendOptions","getThreadMessageText","resolveToolApprovalResponse","ModelContext","Suggestions","Tools","DataRenderers","SingleThreadList","EMPTY_QUEUE_ITEMS","EMPTY_BRANCH_IDS","ExternalThreadMessage","id","ExternalThreadProps","messages","isRunning","isSendDisabled","onNew","message","onEdit","onReload","parentId","onStartRun","onCancel","queue","branches","onRespondToToolApproval","options","MessageClientProps","index","useMessageClient","t0","$","_c","isCopied","setIsCopied","isHovering","setIsHovering","isEditing","setIsEditing","t1","content","t2","part","idx","PartResource","map","partClients","attachments","t3","_temp2","attachmentClients","t4","Symbol","for","handleBeginEdit","t5","handleCancelEdit","t6","msg","clear","sourceId","handleSendEdit","t7","ComposerClientResource","type","canCancel","onBeginEdit","onSend","composerClient","branchIds","t8","getBranches","indexOf","branchIndex","branchNumber","branchCount","length","t9","t10","state","isLast","speech","undefined","parts","composer","t11","t12","methods","t13","t14","t15","position","branchId","target","switchToBranch","t16","selector","get","partIndex","findIndex","p","toolCallId","t17","selector_0","key","t18","getState","delete","_temp3","reload","speak","_temp4","stopSpeaking","_temp5","submitFeedback","_temp6","getCopyText","attachment","MessageClient","PartResourceProps","usePartResource","const","status","response","Error","approval","approved","resolution","addToolResult","_temp7","resumeToolCall","_temp8","respondToToolApproval","AttachmentResourceProps","onRemove","useAttachmentResource","remove","AttachmentResource","ComposerClientResourceProps","useQueueItemClient","item","onSteer","steer","QueueItemClient","useComposerClientResource","text","setText","role","setRole","runConfig","setRunConfig","setAttachments","quote","setQuote","textParts","filter","_temp9","messageText","_temp0","join","updateFromMessage","_","i","queueItems","items","queueItemClients","trim","isEmpty","canSend","attachmentAccept","dictation","fileOrAttachment","File","newAttachment","Math","random","toString","substring","name","contentType","file","newAttachment_0","opts","currentQuote","composedMessage","createdAt","Date","startRun","metadata","custom","enqueue","t19","t20","addAttachment","clearAttachments","reset","send","cancel","beginEdit","startDictation","_temp1","stopDictation","_temp10","queueItem","useExternalThread","messageId","messageIndex","m","handleReload","props","messageClients","handleCancelRun","handleSendNew","hasQueue","hasBranches","_temp11","messageStates","edit","feedback","voice","switchBranchDuringRun","unstable_copy","isDisabled","isLoading","capabilities","suggestions","extras","message_0","appendMessage","at","append","deleteMessage","_temp12","resumeRun","_temp13","cancelRun","getModelContext","_temp14","export","_temp15","import","_temp16","_temp17","_temp18","connectVoice","_temp19","disconnectVoice","_temp20","getVoiceVolume","_temp21","subscribeVoiceVolume","_temp23","muteVoice","_temp24","unmuteVoice","_temp25","ExternalThread","scopes","parent","threads","source","threadElement","thread","query","aui","threadListItem","modelContext","tools","dataRenderers","_temp","part_0","s","arr","config","_temp22"],"sources":["../../src/client/ExternalThread.ts"],"sourcesContent":["import { useState, useMemo, useEffect, useEffectEvent } from \"react\";\nimport { resource, withKey } from \"@assistant-ui/tap\";\nimport {\n type ClientElement,\n type ClientOutput,\n useClientLookup,\n attachTransformScopes,\n useClientResource,\n Derived,\n} from \"@assistant-ui/store\";\n\nimport type {\n AppendMessage,\n Attachment,\n CreateAttachment,\n RespondToToolApprovalOptions,\n ThreadAssistantMessagePart,\n ThreadUserMessagePart,\n ThreadMessage,\n ExternalThreadQueueAdapter,\n ExternalThreadBranchAdapter,\n} from \"@assistant-ui/core\";\nimport type { QueueItemState } from \"@assistant-ui/core/store\";\nimport type { ComposerSendOptions } from \"@assistant-ui/core/store\";\nimport {\n getThreadMessageText,\n resolveToolApprovalResponse,\n} from \"@assistant-ui/core/internal\";\nimport { ModelContext, Suggestions } from \"@assistant-ui/core/store\";\nimport { Tools, DataRenderers } from \"@assistant-ui/core/react\";\nimport { SingleThreadList } from \"./SingleThreadList\";\n\nconst EMPTY_QUEUE_ITEMS: readonly QueueItemState[] = [];\nconst EMPTY_BRANCH_IDS: readonly string[] = [];\n\nexport type ExternalThreadMessage = ThreadMessage & {\n id: string;\n};\n\nexport type ExternalThreadProps = {\n messages: readonly ExternalThreadMessage[];\n isRunning?: boolean;\n /**\n * Whether sending new messages is currently disabled. When `true`, the\n * thread composer's input remains usable but `send()` is a no-op and\n * `composer.canSend` is `false`. Edit composers (saving message edits)\n * intentionally ignore this flag.\n */\n isSendDisabled?: boolean;\n /**\n * Callback for new messages (non-queue runtimes).\n * @note Unused when `queue` is provided — new messages are routed through `queue.enqueue` instead.\n */\n onNew?: (message: AppendMessage) => void;\n onEdit?: (message: AppendMessage) => void;\n onReload?: (parentId: string | null) => void;\n onStartRun?: () => void;\n onCancel?: () => void;\n /** Queue adapter for runtimes that support message queuing and steering. */\n queue?: ExternalThreadQueueAdapter;\n /** Branch adapter for runtimes that track sibling variants of messages. */\n branches?: ExternalThreadBranchAdapter;\n /** Callback for tool approval decisions. Absent: responding to an approval throws a capability error. */\n onRespondToToolApproval?: (options: RespondToToolApprovalOptions) => void;\n};\n\ntype MessageClientProps = {\n message: ExternalThreadMessage;\n index: number;\n onEdit?: (message: AppendMessage) => void;\n onReload?: () => void;\n queue?: ExternalThreadQueueAdapter | undefined;\n branches?: ExternalThreadBranchAdapter | undefined;\n onRespondToToolApproval?:\n | ((options: RespondToToolApprovalOptions) => void)\n | undefined;\n};\n\n// Message Client - minimal implementation\nconst useMessageClient = ({\n message,\n index,\n onEdit,\n onReload,\n queue,\n branches,\n onRespondToToolApproval,\n}: MessageClientProps): ClientOutput<\"message\"> => {\n const [isCopied, setIsCopied] = useState(false);\n const [isHovering, setIsHovering] = useState(false);\n const [isEditing, setIsEditing] = useState(false);\n\n const partClients = useClientLookup(\n message.content.map((part, idx) =>\n withKey(idx, PartResource({ part, onRespondToToolApproval })),\n ),\n );\n\n const attachmentClients = useClientLookup(\n (message.attachments ?? []).map((attachment) =>\n withKey(\n attachment.id,\n AttachmentResource({\n attachment,\n onRemove: () => {},\n }),\n ),\n ),\n );\n\n const handleBeginEdit = () => {\n setIsEditing(true);\n };\n\n const handleCancelEdit = () => {\n setIsEditing(false);\n };\n\n const handleSendEdit = (msg: AppendMessage) => {\n queue?.clear(\"edit\");\n onEdit?.({\n ...msg,\n parentId: message.id,\n sourceId: message.id,\n });\n setIsEditing(false);\n };\n\n const composerClient = useClientResource(\n ComposerClientResource({\n type: \"edit\",\n isEditing,\n canCancel: true,\n onCancel: handleCancelEdit,\n onBeginEdit: handleBeginEdit,\n onSend: handleSendEdit,\n message,\n queue,\n }),\n );\n\n const branchIds = branches?.getBranches(message.id) ?? EMPTY_BRANCH_IDS;\n const branchIndex = branchIds.indexOf(message.id);\n const branchNumber = branchIndex === -1 ? 1 : branchIndex + 1;\n const branchCount = branchIndex === -1 ? 1 : branchIds.length;\n\n const state = useMemo(() => {\n return {\n ...message,\n attachments: message.attachments ?? [],\n parentId: null,\n isLast: false, // Will be set by thread\n branchNumber,\n branchCount,\n speech: undefined,\n parts: partClients.state,\n isCopied,\n isHovering,\n index,\n composer: composerClient.state,\n };\n }, [\n message,\n isCopied,\n isHovering,\n index,\n composerClient.state,\n partClients.state,\n branchNumber,\n branchCount,\n ]);\n\n return {\n getState: () => state,\n composer: () => composerClient.methods,\n delete: () => {},\n reload: () => {\n onReload?.();\n },\n speak: () => {},\n stopSpeaking: () => {},\n submitFeedback: () => {},\n switchToBranch: ({ position, branchId }) => {\n if (!branches) return;\n const target =\n branchId ??\n (branchIndex === -1\n ? undefined\n : position === \"previous\"\n ? branchIds[branchIndex - 1]\n : position === \"next\"\n ? branchIds[branchIndex + 1]\n : undefined);\n if (target !== undefined && target !== message.id)\n branches.switchToBranch(target);\n },\n getCopyText: () => getThreadMessageText(message),\n part: (selector) => {\n if (\"index\" in selector) {\n return partClients.get(selector);\n }\n const partIndex = state.parts.findIndex(\n (p) => p.type === \"tool-call\" && p.toolCallId === selector.toolCallId,\n );\n return partClients.get({ index: partIndex });\n },\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachmentClients.get({ key: selector.id });\n }\n return attachmentClients.get(selector);\n },\n setIsCopied,\n setIsHovering,\n };\n};\n\nconst MessageClient = resource(useMessageClient);\n\ntype PartResourceProps = {\n part: ThreadAssistantMessagePart | ThreadUserMessagePart;\n onRespondToToolApproval?:\n | ((options: RespondToToolApprovalOptions) => void)\n | undefined;\n};\n\n// Part Client - minimal implementation\nconst usePartResource = ({\n part,\n onRespondToToolApproval,\n}: PartResourceProps): ClientOutput<\"part\"> => {\n const state = useMemo(\n () => ({\n ...part,\n status: { type: \"complete\" as const },\n }),\n [part],\n );\n\n return {\n getState: () => state,\n addToolResult: () => {},\n resumeToolCall: () => {},\n respondToToolApproval: (response) => {\n if (!onRespondToToolApproval)\n throw new Error(\"Runtime does not support tool approvals.\");\n\n if (part.type !== \"tool-call\")\n throw new Error(\n \"Tried to respond to tool approval on non-tool message part\",\n );\n\n if (\n !part.approval ||\n part.approval.approved !== undefined ||\n part.approval.resolution !== undefined\n )\n throw new Error(\"Tool call has no pending approval\");\n\n onRespondToToolApproval(\n resolveToolApprovalResponse(part.approval, response),\n );\n },\n };\n};\n\nconst PartResource = resource(usePartResource);\n\ntype AttachmentResourceProps = {\n attachment: Attachment;\n onRemove?: () => void;\n};\n\n// Attachment Client - minimal implementation\nconst useAttachmentResource = ({\n attachment,\n onRemove,\n}: AttachmentResourceProps): ClientOutput<\"attachment\"> => {\n return {\n getState: () => attachment,\n remove: async () => {\n onRemove?.();\n },\n };\n};\n\nconst AttachmentResource = resource(useAttachmentResource);\n\ntype ComposerClientResourceProps = {\n type: \"thread\" | \"edit\";\n isEditing: boolean;\n canCancel: boolean;\n isSendDisabled?: boolean;\n onCancel: () => void;\n onBeginEdit?: () => void;\n onSend?: (message: AppendMessage) => void;\n message?: ExternalThreadMessage;\n queue?: ExternalThreadQueueAdapter | undefined;\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\n// Composer Client - minimal implementation\nconst useComposerClientResource = ({\n type,\n isEditing,\n canCancel,\n isSendDisabled = false,\n onCancel,\n onBeginEdit,\n onSend,\n message,\n queue,\n}: ComposerClientResourceProps): ClientOutput<\"composer\"> => {\n const [text, setText] = useState(\"\");\n const [role, setRole] = useState<\"user\" | \"assistant\" | \"system\">(\"user\");\n const [runConfig, setRunConfig] = useState<Record<string, unknown>>({});\n const [attachments, setAttachments] = useState<readonly Attachment[]>([]);\n const [quote, setQuote] = useState<\n { readonly text: string; readonly messageId: string } | undefined\n >(undefined);\n\n // Update composer values when editing begins\n const updateFromMessage = useEffectEvent(() => {\n if (message) {\n // Extract text from message content (text parts only)\n const textParts = message.content.filter((part) => part.type === \"text\");\n const messageText = textParts\n .map((part) => (\"text\" in part ? part.text : \"\"))\n .join(\"\\n\\n\");\n\n setText(messageText);\n setRole(message.role);\n setAttachments(message.attachments ?? []);\n }\n });\n\n useEffect(() => {\n if (isEditing) {\n updateFromMessage();\n }\n }, [isEditing]);\n\n const attachmentClients = useClientLookup(\n attachments.map((attachment, idx) =>\n withKey(\n attachment.id,\n AttachmentResource({\n attachment,\n onRemove: () => {\n setAttachments(attachments.filter((_, i) => i !== idx));\n },\n }),\n ),\n ),\n );\n\n const queueItems = queue?.items ?? EMPTY_QUEUE_ITEMS;\n const queueItemClients = useClientLookup(\n queueItems.map((item) =>\n withKey(\n item.id,\n QueueItemClient({\n item,\n onSteer: () => queue?.steer(item.id),\n onRemove: () => queue?.remove(item.id),\n }),\n ),\n ),\n );\n\n const state = useMemo(() => {\n const isEmpty = !text.trim() && !attachments.length;\n return {\n text,\n role,\n attachments: attachmentClients.state,\n runConfig,\n isEditing,\n canCancel,\n canSend: isEditing && !isEmpty && !isSendDisabled,\n attachmentAccept: \"*\",\n isEmpty,\n type,\n dictation: undefined,\n quote,\n queue: queueItems,\n };\n }, [\n text,\n role,\n attachmentClients.state,\n runConfig,\n isEditing,\n canCancel,\n isSendDisabled,\n type,\n attachments.length,\n quote,\n queueItems,\n ]);\n\n return {\n getState: () => state,\n setText,\n setRole,\n setRunConfig,\n addAttachment: async (fileOrAttachment: File | CreateAttachment) => {\n if (fileOrAttachment instanceof File) {\n const newAttachment: Attachment = {\n id: Math.random().toString(36).substring(7),\n type: \"file\",\n name: fileOrAttachment.name,\n contentType: fileOrAttachment.type,\n file: fileOrAttachment,\n status: { type: \"complete\" },\n content: [],\n };\n setAttachments([...attachments, newAttachment]);\n } else {\n const newAttachment: Attachment = {\n id: fileOrAttachment.id ?? Math.random().toString(36).substring(7),\n type: fileOrAttachment.type ?? \"document\",\n name: fileOrAttachment.name,\n contentType: fileOrAttachment.contentType,\n content: fileOrAttachment.content,\n status: { type: \"complete\" },\n };\n setAttachments([...attachments, newAttachment]);\n }\n },\n clearAttachments: async () => {\n setAttachments([]);\n },\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachmentClients.get({ key: selector.id });\n }\n return attachmentClients.get(selector);\n },\n reset: async () => {\n setText(\"\");\n setRole(\"user\");\n setRunConfig({});\n setAttachments([]);\n setQuote(undefined);\n },\n send: (opts?: ComposerSendOptions) => {\n if (!state.canSend) return;\n\n const currentQuote = quote;\n const composedMessage: AppendMessage = {\n role,\n content: text ? [{ type: \"text\" as const, text }] : [],\n attachments: attachments as any,\n createdAt: new Date(),\n parentId: null,\n sourceId: null,\n runConfig,\n startRun: opts?.startRun,\n metadata: {\n custom: { ...(currentQuote ? { quote: currentQuote } : {}) },\n },\n };\n if (queue) {\n queue.enqueue(composedMessage, { steer: opts?.steer ?? false });\n } else {\n onSend?.(composedMessage);\n }\n setText(\"\");\n setAttachments([]);\n setQuote(undefined);\n },\n cancel: onCancel,\n beginEdit: () => {\n onBeginEdit?.();\n },\n startDictation: () => {},\n stopDictation: () => {},\n setQuote,\n queueItem: (selector: { index: number }) => {\n return queueItemClients.get(selector);\n },\n };\n};\n\nconst ComposerClientResource = resource(useComposerClientResource);\n\n// External Thread Client\nconst useExternalThread = ({\n messages,\n isRunning = false,\n isSendDisabled = false,\n onNew,\n onEdit,\n onReload,\n onStartRun,\n onCancel,\n queue,\n branches,\n onRespondToToolApproval,\n}: ExternalThreadProps): ClientOutput<\"thread\"> => {\n const handleReload = (messageId: string) => {\n const messageIndex = messages.findIndex((m) => m.id === messageId);\n if (messageIndex === -1) return;\n\n const parentId = messageIndex > 0 ? messages[messageIndex - 1]!.id : null;\n queue?.clear(\"reload\");\n onReload?.(parentId);\n };\n\n const messageClients = useClientLookup(\n messages.map((msg, index) => {\n const props: MessageClientProps = {\n message: msg,\n index,\n onReload: () => handleReload(msg.id),\n queue,\n branches,\n onRespondToToolApproval,\n };\n if (onEdit) props.onEdit = onEdit;\n return withKey(msg.id, MessageClient(props));\n }),\n );\n\n const handleCancelRun = () => {\n queue?.clear(\"cancel-run\");\n onCancel?.();\n };\n\n const handleSendNew = (message: AppendMessage) => {\n onNew?.(message);\n };\n\n const composerClient = useClientResource(\n ComposerClientResource({\n type: \"thread\",\n isEditing: true,\n canCancel: isRunning,\n isSendDisabled,\n onCancel: handleCancelRun,\n onSend: handleSendNew,\n queue,\n }),\n );\n\n const hasQueue = !!queue;\n const hasBranches = !!branches;\n const state = useMemo(() => {\n const messageStates = messageClients.state.map((s, idx, arr) => ({\n ...s,\n isLast: idx === arr.length - 1,\n }));\n\n return {\n isEmpty: messages.length === 0,\n isDisabled: false,\n isLoading: false,\n isRunning,\n capabilities: {\n edit: false,\n delete: false,\n reload: false,\n cancel: isRunning,\n speech: false,\n attachments: false,\n feedback: false,\n voice: false,\n switchToBranch: hasBranches,\n switchBranchDuringRun: false,\n unstable_copy: false,\n dictation: false,\n queue: hasQueue,\n },\n messages: messageStates,\n state: {},\n suggestions: [],\n extras: undefined,\n speech: undefined,\n voice: undefined,\n composer: composerClient.state,\n };\n }, [\n messages,\n isRunning,\n hasQueue,\n hasBranches,\n messageClients.state,\n composerClient.state,\n ]);\n\n return {\n getState: () => state,\n composer: () => composerClient.methods,\n append: (message) => {\n const appendMessage: AppendMessage =\n typeof message === \"string\"\n ? {\n createdAt: new Date(),\n parentId: messages.at(-1)?.id ?? null,\n sourceId: null,\n runConfig: {},\n role: \"user\",\n content: [{ type: \"text\", text: message }],\n attachments: [],\n metadata: { custom: {} },\n }\n : {\n createdAt: message.createdAt ?? new Date(),\n parentId: message.parentId ?? messages.at(-1)?.id ?? null,\n sourceId: message.sourceId ?? null,\n role: message.role ?? \"user\",\n content: message.content,\n attachments: message.attachments ?? [],\n metadata: message.metadata ?? { custom: {} },\n runConfig: message.runConfig ?? {},\n startRun: message.startRun,\n };\n if (queue) {\n queue.enqueue(appendMessage, { steer: false });\n } else {\n onNew?.(appendMessage);\n }\n },\n deleteMessage: () => {},\n startRun: () => {\n onStartRun?.();\n },\n resumeRun: () => {},\n cancelRun: handleCancelRun,\n getModelContext: () => ({ tools: {}, config: {} }),\n export: () => ({ messages: [] }),\n import: () => {},\n reset: () => {},\n message: (selector) => {\n if (\"id\" in selector) {\n return messageClients.get({ key: selector.id });\n }\n return messageClients.get(selector);\n },\n stopSpeaking: () => {},\n connectVoice: () => {},\n disconnectVoice: () => {},\n getVoiceVolume: () => 0,\n subscribeVoiceVolume: () => () => {},\n muteVoice: () => {},\n unmuteVoice: () => {},\n };\n};\n\nexport const ExternalThread = resource(useExternalThread);\n\nattachTransformScopes(useExternalThread, (scopes, parent) => {\n if (!scopes.threads && parent.threads.source === null) {\n const threadElement = scopes.thread as ClientElement<\"thread\">;\n scopes.threads = SingleThreadList({ thread: threadElement });\n scopes.thread = Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads().thread(\"main\"),\n });\n }\n\n if (!scopes.threadListItem && parent.threadListItem.source === null) {\n scopes.threadListItem = Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads().item(\"main\"),\n });\n }\n\n scopes.composer ??= Derived({\n source: \"thread\",\n query: {},\n get: (aui) => aui.thread().composer(),\n });\n\n if (!scopes.modelContext && parent.modelContext.source === null) {\n scopes.modelContext = ModelContext();\n }\n if (!scopes.tools && parent.tools.source === null) {\n scopes.tools = Tools({});\n }\n if (!scopes.dataRenderers && parent.dataRenderers.source === null) {\n scopes.dataRenderers = DataRenderers();\n }\n if (!scopes.suggestions && parent.suggestions.source === null) {\n scopes.suggestions = Suggestions();\n }\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"ExternalThread.js","names":["useState","useMemo","useEffect","useEffectEvent","resource","withKey","ClientElement","ClientOutput","useClientLookup","attachTransformScopes","useClientResource","Derived","AppendMessage","Attachment","CreateAttachment","RespondToToolApprovalOptions","ThreadAssistantMessagePart","ThreadUserMessagePart","ThreadMessage","ExternalThreadQueueAdapter","ExternalThreadBranchAdapter","QueueItemState","ComposerSendOptions","getThreadMessageText","isCreateAttachment","resolveToolApprovalResponse","ModelContext","Suggestions","Tools","DataRenderers","SingleThreadList","EMPTY_QUEUE_ITEMS","EMPTY_BRANCH_IDS","ExternalThreadMessage","id","ExternalThreadProps","messages","isRunning","isSendDisabled","onNew","message","onEdit","onReload","parentId","onStartRun","onCancel","queue","branches","onRespondToToolApproval","options","MessageClientProps","index","useMessageClient","t0","$","_c","isCopied","setIsCopied","isHovering","setIsHovering","isEditing","setIsEditing","t1","content","t2","part","idx","PartResource","map","partClients","attachments","t3","_temp2","attachmentClients","t4","Symbol","for","handleBeginEdit","t5","handleCancelEdit","t6","msg","clear","sourceId","handleSendEdit","t7","ComposerClientResource","type","canCancel","onBeginEdit","onSend","composerClient","branchIds","t8","getBranches","indexOf","branchIndex","branchNumber","branchCount","length","t9","t10","state","isLast","speech","undefined","parts","composer","t11","t12","methods","t13","t14","t15","position","branchId","target","switchToBranch","t16","selector","get","partIndex","findIndex","p","toolCallId","t17","selector_0","key","t18","getState","delete","_temp3","reload","speak","_temp4","stopSpeaking","_temp5","submitFeedback","_temp6","getCopyText","attachment","MessageClient","PartResourceProps","usePartResource","const","status","response","Error","approval","approved","resolution","addToolResult","_temp7","resumeToolCall","_temp8","respondToToolApproval","AttachmentResourceProps","onRemove","useAttachmentResource","remove","AttachmentResource","ComposerClientResourceProps","useQueueItemClient","item","onSteer","steer","QueueItemClient","useComposerClientResource","text","setText","role","setRole","runConfig","setRunConfig","setAttachments","quote","setQuote","textParts","filter","_temp9","messageText","_temp0","join","updateFromMessage","_","i","queueItems","items","queueItemClients","trim","isEmpty","canSend","attachmentAccept","dictation","fileOrAttachment","newAttachment","Math","random","toString","substring","name","contentType","file","newAttachment_0","opts","currentQuote","composedMessage","createdAt","Date","startRun","metadata","custom","enqueue","t19","t20","addAttachment","clearAttachments","reset","send","cancel","beginEdit","startDictation","_temp1","stopDictation","_temp10","queueItem","useExternalThread","messageId","messageIndex","m","handleReload","props","messageClients","handleCancelRun","handleSendNew","hasQueue","hasBranches","_temp11","messageStates","edit","feedback","voice","switchBranchDuringRun","unstable_copy","isDisabled","isLoading","capabilities","suggestions","extras","message_0","appendMessage","at","append","deleteMessage","_temp12","resumeRun","_temp13","cancelRun","getModelContext","_temp14","export","_temp15","import","_temp16","_temp17","_temp18","connectVoice","_temp19","disconnectVoice","_temp20","getVoiceVolume","_temp21","subscribeVoiceVolume","_temp23","muteVoice","_temp24","unmuteVoice","_temp25","ExternalThread","scopes","parent","threads","source","threadElement","thread","query","aui","threadListItem","modelContext","tools","dataRenderers","_temp","part_0","s","arr","config","_temp22"],"sources":["../../src/client/ExternalThread.ts"],"sourcesContent":["import { useState, useMemo, useEffect, useEffectEvent } from \"react\";\nimport { resource, withKey } from \"@assistant-ui/tap\";\nimport {\n type ClientElement,\n type ClientOutput,\n useClientLookup,\n attachTransformScopes,\n useClientResource,\n Derived,\n} from \"@assistant-ui/store\";\n\nimport type {\n AppendMessage,\n Attachment,\n CreateAttachment,\n RespondToToolApprovalOptions,\n ThreadAssistantMessagePart,\n ThreadUserMessagePart,\n ThreadMessage,\n ExternalThreadQueueAdapter,\n ExternalThreadBranchAdapter,\n} from \"@assistant-ui/core\";\nimport type { QueueItemState } from \"@assistant-ui/core/store\";\nimport type { ComposerSendOptions } from \"@assistant-ui/core/store\";\nimport {\n getThreadMessageText,\n isCreateAttachment,\n resolveToolApprovalResponse,\n} from \"@assistant-ui/core/internal\";\nimport { ModelContext, Suggestions } from \"@assistant-ui/core/store\";\nimport { Tools, DataRenderers } from \"@assistant-ui/core/react\";\nimport { SingleThreadList } from \"./SingleThreadList\";\n\nconst EMPTY_QUEUE_ITEMS: readonly QueueItemState[] = [];\nconst EMPTY_BRANCH_IDS: readonly string[] = [];\n\nexport type ExternalThreadMessage = ThreadMessage & {\n id: string;\n};\n\nexport type ExternalThreadProps = {\n messages: readonly ExternalThreadMessage[];\n isRunning?: boolean;\n /**\n * Whether sending new messages is currently disabled. When `true`, the\n * thread composer's input remains usable but `send()` is a no-op and\n * `composer.canSend` is `false`. Edit composers (saving message edits)\n * intentionally ignore this flag.\n */\n isSendDisabled?: boolean;\n /**\n * Callback for new messages (non-queue runtimes).\n * @note Unused when `queue` is provided — new messages are routed through `queue.enqueue` instead.\n */\n onNew?: (message: AppendMessage) => void;\n onEdit?: (message: AppendMessage) => void;\n onReload?: (parentId: string | null) => void;\n onStartRun?: () => void;\n onCancel?: () => void;\n /** Queue adapter for runtimes that support message queuing and steering. */\n queue?: ExternalThreadQueueAdapter;\n /** Branch adapter for runtimes that track sibling variants of messages. */\n branches?: ExternalThreadBranchAdapter;\n /** Callback for tool approval decisions. Absent: responding to an approval throws a capability error. */\n onRespondToToolApproval?: (options: RespondToToolApprovalOptions) => void;\n};\n\ntype MessageClientProps = {\n message: ExternalThreadMessage;\n index: number;\n onEdit?: (message: AppendMessage) => void;\n onReload?: () => void;\n queue?: ExternalThreadQueueAdapter | undefined;\n branches?: ExternalThreadBranchAdapter | undefined;\n onRespondToToolApproval?:\n | ((options: RespondToToolApprovalOptions) => void)\n | undefined;\n};\n\n// Message Client - minimal implementation\nconst useMessageClient = ({\n message,\n index,\n onEdit,\n onReload,\n queue,\n branches,\n onRespondToToolApproval,\n}: MessageClientProps): ClientOutput<\"message\"> => {\n const [isCopied, setIsCopied] = useState(false);\n const [isHovering, setIsHovering] = useState(false);\n const [isEditing, setIsEditing] = useState(false);\n\n const partClients = useClientLookup(\n message.content.map((part, idx) =>\n withKey(idx, PartResource({ part, onRespondToToolApproval })),\n ),\n );\n\n const attachmentClients = useClientLookup(\n (message.attachments ?? []).map((attachment) =>\n withKey(\n attachment.id,\n AttachmentResource({\n attachment,\n onRemove: () => {},\n }),\n ),\n ),\n );\n\n const handleBeginEdit = () => {\n setIsEditing(true);\n };\n\n const handleCancelEdit = () => {\n setIsEditing(false);\n };\n\n const handleSendEdit = (msg: AppendMessage) => {\n queue?.clear(\"edit\");\n onEdit?.({\n ...msg,\n parentId: message.id,\n sourceId: message.id,\n });\n setIsEditing(false);\n };\n\n const composerClient = useClientResource(\n ComposerClientResource({\n type: \"edit\",\n isEditing,\n canCancel: true,\n onCancel: handleCancelEdit,\n onBeginEdit: handleBeginEdit,\n onSend: handleSendEdit,\n message,\n queue,\n }),\n );\n\n const branchIds = branches?.getBranches(message.id) ?? EMPTY_BRANCH_IDS;\n const branchIndex = branchIds.indexOf(message.id);\n const branchNumber = branchIndex === -1 ? 1 : branchIndex + 1;\n const branchCount = branchIndex === -1 ? 1 : branchIds.length;\n\n const state = useMemo(() => {\n return {\n ...message,\n attachments: message.attachments ?? [],\n parentId: null,\n isLast: false, // Will be set by thread\n branchNumber,\n branchCount,\n speech: undefined,\n parts: partClients.state,\n isCopied,\n isHovering,\n index,\n composer: composerClient.state,\n };\n }, [\n message,\n isCopied,\n isHovering,\n index,\n composerClient.state,\n partClients.state,\n branchNumber,\n branchCount,\n ]);\n\n return {\n getState: () => state,\n composer: () => composerClient.methods,\n delete: () => {},\n reload: () => {\n onReload?.();\n },\n speak: () => {},\n stopSpeaking: () => {},\n submitFeedback: () => {},\n switchToBranch: ({ position, branchId }) => {\n if (!branches) return;\n const target =\n branchId ??\n (branchIndex === -1\n ? undefined\n : position === \"previous\"\n ? branchIds[branchIndex - 1]\n : position === \"next\"\n ? branchIds[branchIndex + 1]\n : undefined);\n if (target !== undefined && target !== message.id)\n branches.switchToBranch(target);\n },\n getCopyText: () => getThreadMessageText(message),\n part: (selector) => {\n if (\"index\" in selector) {\n return partClients.get(selector);\n }\n const partIndex = state.parts.findIndex(\n (p) => p.type === \"tool-call\" && p.toolCallId === selector.toolCallId,\n );\n return partClients.get({ index: partIndex });\n },\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachmentClients.get({ key: selector.id });\n }\n return attachmentClients.get(selector);\n },\n setIsCopied,\n setIsHovering,\n };\n};\n\nconst MessageClient = resource(useMessageClient);\n\ntype PartResourceProps = {\n part: ThreadAssistantMessagePart | ThreadUserMessagePart;\n onRespondToToolApproval?:\n | ((options: RespondToToolApprovalOptions) => void)\n | undefined;\n};\n\n// Part Client - minimal implementation\nconst usePartResource = ({\n part,\n onRespondToToolApproval,\n}: PartResourceProps): ClientOutput<\"part\"> => {\n const state = useMemo(\n () => ({\n ...part,\n status: { type: \"complete\" as const },\n }),\n [part],\n );\n\n return {\n getState: () => state,\n addToolResult: () => {},\n resumeToolCall: () => {},\n respondToToolApproval: (response) => {\n if (!onRespondToToolApproval)\n throw new Error(\"Runtime does not support tool approvals.\");\n\n if (part.type !== \"tool-call\")\n throw new Error(\n \"Tried to respond to tool approval on non-tool message part\",\n );\n\n if (\n !part.approval ||\n part.approval.approved !== undefined ||\n part.approval.resolution !== undefined\n )\n throw new Error(\"Tool call has no pending approval\");\n\n onRespondToToolApproval(\n resolveToolApprovalResponse(part.approval, response),\n );\n },\n };\n};\n\nconst PartResource = resource(usePartResource);\n\ntype AttachmentResourceProps = {\n attachment: Attachment;\n onRemove?: () => void;\n};\n\n// Attachment Client - minimal implementation\nconst useAttachmentResource = ({\n attachment,\n onRemove,\n}: AttachmentResourceProps): ClientOutput<\"attachment\"> => {\n return {\n getState: () => attachment,\n remove: async () => {\n onRemove?.();\n },\n };\n};\n\nconst AttachmentResource = resource(useAttachmentResource);\n\ntype ComposerClientResourceProps = {\n type: \"thread\" | \"edit\";\n isEditing: boolean;\n canCancel: boolean;\n isSendDisabled?: boolean;\n onCancel: () => void;\n onBeginEdit?: () => void;\n onSend?: (message: AppendMessage) => void;\n message?: ExternalThreadMessage;\n queue?: ExternalThreadQueueAdapter | undefined;\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\n// Composer Client - minimal implementation\nconst useComposerClientResource = ({\n type,\n isEditing,\n canCancel,\n isSendDisabled = false,\n onCancel,\n onBeginEdit,\n onSend,\n message,\n queue,\n}: ComposerClientResourceProps): ClientOutput<\"composer\"> => {\n const [text, setText] = useState(\"\");\n const [role, setRole] = useState<\"user\" | \"assistant\" | \"system\">(\"user\");\n const [runConfig, setRunConfig] = useState<Record<string, unknown>>({});\n const [attachments, setAttachments] = useState<readonly Attachment[]>([]);\n const [quote, setQuote] = useState<\n { readonly text: string; readonly messageId: string } | undefined\n >(undefined);\n\n // Update composer values when editing begins\n const updateFromMessage = useEffectEvent(() => {\n if (message) {\n // Extract text from message content (text parts only)\n const textParts = message.content.filter((part) => part.type === \"text\");\n const messageText = textParts\n .map((part) => (\"text\" in part ? part.text : \"\"))\n .join(\"\\n\\n\");\n\n setText(messageText);\n setRole(message.role);\n setAttachments(message.attachments ?? []);\n }\n });\n\n useEffect(() => {\n if (isEditing) {\n updateFromMessage();\n }\n }, [isEditing]);\n\n const attachmentClients = useClientLookup(\n attachments.map((attachment, idx) =>\n withKey(\n attachment.id,\n AttachmentResource({\n attachment,\n onRemove: () => {\n setAttachments(attachments.filter((_, i) => i !== idx));\n },\n }),\n ),\n ),\n );\n\n const queueItems = queue?.items ?? EMPTY_QUEUE_ITEMS;\n const queueItemClients = useClientLookup(\n queueItems.map((item) =>\n withKey(\n item.id,\n QueueItemClient({\n item,\n onSteer: () => queue?.steer(item.id),\n onRemove: () => queue?.remove(item.id),\n }),\n ),\n ),\n );\n\n const state = useMemo(() => {\n const isEmpty = !text.trim() && !attachments.length;\n return {\n text,\n role,\n attachments: attachmentClients.state,\n runConfig,\n isEditing,\n canCancel,\n canSend: isEditing && !isEmpty && !isSendDisabled,\n attachmentAccept: \"*\",\n isEmpty,\n type,\n dictation: undefined,\n quote,\n queue: queueItems,\n };\n }, [\n text,\n role,\n attachmentClients.state,\n runConfig,\n isEditing,\n canCancel,\n isSendDisabled,\n type,\n attachments.length,\n quote,\n queueItems,\n ]);\n\n return {\n getState: () => state,\n setText,\n setRole,\n setRunConfig,\n addAttachment: async (fileOrAttachment: File | CreateAttachment) => {\n if (!isCreateAttachment(fileOrAttachment)) {\n const newAttachment: Attachment = {\n id: Math.random().toString(36).substring(7),\n type: \"file\",\n name: fileOrAttachment.name,\n contentType: fileOrAttachment.type,\n file: fileOrAttachment,\n status: { type: \"complete\" },\n content: [],\n };\n setAttachments([...attachments, newAttachment]);\n } else {\n const newAttachment: Attachment = {\n id: fileOrAttachment.id ?? Math.random().toString(36).substring(7),\n type: fileOrAttachment.type ?? \"document\",\n name: fileOrAttachment.name,\n contentType: fileOrAttachment.contentType,\n content: fileOrAttachment.content,\n status: { type: \"complete\" },\n };\n setAttachments([...attachments, newAttachment]);\n }\n },\n clearAttachments: async () => {\n setAttachments([]);\n },\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachmentClients.get({ key: selector.id });\n }\n return attachmentClients.get(selector);\n },\n reset: async () => {\n setText(\"\");\n setRole(\"user\");\n setRunConfig({});\n setAttachments([]);\n setQuote(undefined);\n },\n send: (opts?: ComposerSendOptions) => {\n if (!state.canSend) return;\n\n const currentQuote = quote;\n const composedMessage: AppendMessage = {\n role,\n content: text ? [{ type: \"text\" as const, text }] : [],\n attachments: attachments as any,\n createdAt: new Date(),\n parentId: null,\n sourceId: null,\n runConfig,\n startRun: opts?.startRun,\n metadata: {\n custom: { ...(currentQuote ? { quote: currentQuote } : {}) },\n },\n };\n if (queue) {\n queue.enqueue(composedMessage, { steer: opts?.steer ?? false });\n } else {\n onSend?.(composedMessage);\n }\n setText(\"\");\n setAttachments([]);\n setQuote(undefined);\n },\n cancel: onCancel,\n beginEdit: () => {\n onBeginEdit?.();\n },\n startDictation: () => {},\n stopDictation: () => {},\n setQuote,\n queueItem: (selector: { index: number }) => {\n return queueItemClients.get(selector);\n },\n };\n};\n\nconst ComposerClientResource = resource(useComposerClientResource);\n\n// External Thread Client\nconst useExternalThread = ({\n messages,\n isRunning = false,\n isSendDisabled = false,\n onNew,\n onEdit,\n onReload,\n onStartRun,\n onCancel,\n queue,\n branches,\n onRespondToToolApproval,\n}: ExternalThreadProps): ClientOutput<\"thread\"> => {\n const handleReload = (messageId: string) => {\n const messageIndex = messages.findIndex((m) => m.id === messageId);\n if (messageIndex === -1) return;\n\n const parentId = messageIndex > 0 ? messages[messageIndex - 1]!.id : null;\n queue?.clear(\"reload\");\n onReload?.(parentId);\n };\n\n const messageClients = useClientLookup(\n messages.map((msg, index) => {\n const props: MessageClientProps = {\n message: msg,\n index,\n onReload: () => handleReload(msg.id),\n queue,\n branches,\n onRespondToToolApproval,\n };\n if (onEdit) props.onEdit = onEdit;\n return withKey(msg.id, MessageClient(props));\n }),\n );\n\n const handleCancelRun = () => {\n queue?.clear(\"cancel-run\");\n onCancel?.();\n };\n\n const handleSendNew = (message: AppendMessage) => {\n onNew?.(message);\n };\n\n const composerClient = useClientResource(\n ComposerClientResource({\n type: \"thread\",\n isEditing: true,\n canCancel: isRunning,\n isSendDisabled,\n onCancel: handleCancelRun,\n onSend: handleSendNew,\n queue,\n }),\n );\n\n const hasQueue = !!queue;\n const hasBranches = !!branches;\n const state = useMemo(() => {\n const messageStates = messageClients.state.map((s, idx, arr) => ({\n ...s,\n isLast: idx === arr.length - 1,\n }));\n\n return {\n isEmpty: messages.length === 0,\n isDisabled: false,\n isLoading: false,\n isRunning,\n capabilities: {\n edit: false,\n delete: false,\n reload: false,\n cancel: isRunning,\n speech: false,\n attachments: false,\n feedback: false,\n voice: false,\n switchToBranch: hasBranches,\n switchBranchDuringRun: false,\n unstable_copy: false,\n dictation: false,\n queue: hasQueue,\n },\n messages: messageStates,\n state: {},\n suggestions: [],\n extras: undefined,\n speech: undefined,\n voice: undefined,\n composer: composerClient.state,\n };\n }, [\n messages,\n isRunning,\n hasQueue,\n hasBranches,\n messageClients.state,\n composerClient.state,\n ]);\n\n return {\n getState: () => state,\n composer: () => composerClient.methods,\n append: (message) => {\n const appendMessage: AppendMessage =\n typeof message === \"string\"\n ? {\n createdAt: new Date(),\n parentId: messages.at(-1)?.id ?? null,\n sourceId: null,\n runConfig: {},\n role: \"user\",\n content: [{ type: \"text\", text: message }],\n attachments: [],\n metadata: { custom: {} },\n }\n : {\n createdAt: message.createdAt ?? new Date(),\n parentId: message.parentId ?? messages.at(-1)?.id ?? null,\n sourceId: message.sourceId ?? null,\n role: message.role ?? \"user\",\n content: message.content,\n attachments: message.attachments ?? [],\n metadata: message.metadata ?? { custom: {} },\n runConfig: message.runConfig ?? {},\n startRun: message.startRun,\n };\n if (queue) {\n queue.enqueue(appendMessage, { steer: false });\n } else {\n onNew?.(appendMessage);\n }\n },\n deleteMessage: () => {},\n startRun: () => {\n onStartRun?.();\n },\n resumeRun: () => {},\n cancelRun: handleCancelRun,\n getModelContext: () => ({ tools: {}, config: {} }),\n export: () => ({ messages: [] }),\n import: () => {},\n reset: () => {},\n message: (selector) => {\n if (\"id\" in selector) {\n return messageClients.get({ key: selector.id });\n }\n return messageClients.get(selector);\n },\n stopSpeaking: () => {},\n connectVoice: () => {},\n disconnectVoice: () => {},\n getVoiceVolume: () => 0,\n subscribeVoiceVolume: () => () => {},\n muteVoice: () => {},\n unmuteVoice: () => {},\n };\n};\n\nexport const ExternalThread = resource(useExternalThread);\n\nattachTransformScopes(useExternalThread, (scopes, parent) => {\n if (!scopes.threads && parent.threads.source === null) {\n const threadElement = scopes.thread as ClientElement<\"thread\">;\n scopes.threads = SingleThreadList({ thread: threadElement });\n scopes.thread = Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads().thread(\"main\"),\n });\n }\n\n if (!scopes.threadListItem && parent.threadListItem.source === null) {\n scopes.threadListItem = Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads().item(\"main\"),\n });\n }\n\n scopes.composer ??= Derived({\n source: \"thread\",\n query: {},\n get: (aui) => aui.thread().composer(),\n });\n\n if (!scopes.modelContext && parent.modelContext.source === null) {\n scopes.modelContext = ModelContext();\n }\n if (!scopes.tools && parent.tools.source === null) {\n scopes.tools = Tools({});\n }\n if (!scopes.dataRenderers && parent.dataRenderers.source === null) {\n scopes.dataRenderers = DataRenderers();\n }\n if (!scopes.suggestions && parent.suggestions.source === null) {\n scopes.suggestions = Suggestions();\n }\n});\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { ClientOutput } from "@assistant-ui/store";
2
2
  import { ResourceElement } from "@assistant-ui/tap";
3
-
4
3
  //#region src/client/InMemoryThreadList.d.ts
5
4
  type InMemoryThreadListProps = {
6
5
  thread: (threadId: string) => ResourceElement<ClientOutput<"thread">>;
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryThreadList.d.ts","names":[],"sources":["../../src/client/InMemoryThreadList.ts"],"mappings":";;;;KAeY,uBAAA;EACV,MAAA,GAAS,QAAA,aAAqB,eAAe,CAAC,YAAA;EAC9C,gBAAA,IAAoB,QAAA;EACpB,mBAAA;AAAA;AAAA,cA0KW,kBAAA,8BAAkB,QAAA,CAAA,YAAA,cAAA,KAAA,EAAA,uBAAA"}
1
+ {"version":3,"file":"InMemoryThreadList.d.ts","names":[],"sources":["../../src/client/InMemoryThreadList.ts"],"mappings":";;;KAeY;EACV,SAAS,qBAAqB,gBAAgB;EAC9C,oBAAoB;EACpB;;cA0KW,gDAAkB,SAAA,0BAAA,OAAA"}
@@ -119,7 +119,10 @@ const useInMemoryThreadList = (props) => {
119
119
  if ($[5] !== mainThreadId || $[6] !== threads) {
120
120
  t4 = (threadId_3) => {
121
121
  setThreads((prev_2) => prev_2.filter((t_2) => t_2.id !== threadId_3));
122
- if (mainThreadId === threadId_3) setMainThreadId(threads.filter((t_3) => t_3.id !== threadId_3)[0]?.id || "main");
122
+ if (mainThreadId === threadId_3) {
123
+ const remaining = threads.filter((t_3) => t_3.id !== threadId_3);
124
+ setMainThreadId(remaining[0]?.id || "main");
125
+ }
123
126
  };
124
127
  $[5] = mainThreadId;
125
128
  $[6] = threads;
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryThreadList.js","names":["useState","useMemo","resource","withKey","ResourceElement","ClientOutput","useClientLookup","Derived","attachTransformScopes","useClientResource","ModelContext","Suggestions","Tools","DataRenderers","RESOLVED_PROMISE","Promise","resolve","InMemoryThreadListProps","thread","threadId","onSwitchToThread","onSwitchToNewThread","ThreadData","id","title","status","custom","Record","useThreadListItemClient","props","$","_c","data","onSwitchTo","onUpdateCustom","onArchive","onUnarchive","onDelete","t0","remoteId","undefined","externalId","state","t1","t2","t3","getState","switchTo","rename","_temp","updateCustom","archive","unarchive","delete","generateTitle","_temp2","initialize","detach","_temp3","ThreadListItemClient","useInMemoryThreadList","threadFactory","mainThreadId","setMainThreadId","threads","setThreads","_temp4","handleSwitchToThread","Symbol","for","threadId_0","prev","map","t","const","handleArchive","threadId_1","prev_0","t_0","handleUnarchive","threadId_2","prev_1","t_1","handleUpdateCustom","t4","threadId_3","prev_2","filter","t_2","remaining","t_3","handleDelete","t5","newId","Date","now","prev_3","handleSwitchToNewThread","t6","t7","t_4","custom_0","threadListItems","mainThreadClient","t10","t11","t12","t13","t14","t8","t9","regularThreads","_temp5","archivedThreads","_temp6","_temp7","_temp8","t15","newThreadId","isLoading","isLoadingMore","hasMore","threadIds","archivedThreadIds","threadItems","main","t16","t17","selector","index","findIndex","t_9","get","index_0","t_10","t18","methods","t19","switchToThread","switchToNewThread","getLoadThreadsPromise","_temp9","reload","_temp0","loadMore","_temp1","item","InMemoryThreadList","scopes","parent","source","query","type","aui","threadListItem","composer","modelContext","tools","dataRenderers","suggestions","t_5","t_6","t_7","t_8"],"sources":["../../src/client/InMemoryThreadList.ts"],"sourcesContent":["import { useState, useMemo } from \"react\";\nimport { resource, withKey, type ResourceElement } from \"@assistant-ui/tap\";\nimport {\n type ClientOutput,\n useClientLookup,\n Derived,\n attachTransformScopes,\n useClientResource,\n} from \"@assistant-ui/store\";\n\nimport { ModelContext, Suggestions } from \"@assistant-ui/core/store\";\nimport { Tools, DataRenderers } from \"@assistant-ui/core/react\";\n\nconst RESOLVED_PROMISE = Promise.resolve();\n\nexport type InMemoryThreadListProps = {\n thread: (threadId: string) => ResourceElement<ClientOutput<\"thread\">>;\n onSwitchToThread?: (threadId: string) => void;\n onSwitchToNewThread?: () => void;\n};\n\ntype ThreadData = {\n id: string;\n title?: string;\n status: \"regular\" | \"archived\";\n custom?: Record<string, unknown> | undefined;\n};\n\n// ThreadListItem Client\nconst useThreadListItemClient = (props: {\n data: ThreadData;\n onSwitchTo: () => void;\n onUpdateCustom: (custom: Record<string, unknown> | undefined) => void;\n onArchive: () => void;\n onUnarchive: () => void;\n onDelete: () => void;\n}): ClientOutput<\"threadListItem\"> => {\n const { data, onSwitchTo, onUpdateCustom, onArchive, onUnarchive, onDelete } =\n props;\n const state = useMemo(\n () => ({\n id: data.id,\n remoteId: undefined,\n externalId: undefined,\n title: data.title,\n status: data.status,\n custom: data.custom,\n }),\n [data.id, data.title, data.status, data.custom],\n );\n\n return {\n getState: () => state,\n switchTo: onSwitchTo,\n rename: () => {},\n updateCustom: onUpdateCustom,\n archive: onArchive,\n unarchive: onUnarchive,\n delete: onDelete,\n generateTitle: () => {},\n initialize: async () => ({ remoteId: data.id, externalId: undefined }),\n detach: () => {},\n };\n};\n\nconst ThreadListItemClient = resource(useThreadListItemClient);\n\n// InMemoryThreadList Client\nconst useInMemoryThreadList = (\n props: InMemoryThreadListProps,\n): ClientOutput<\"threads\"> => {\n const {\n thread: threadFactory,\n onSwitchToThread,\n onSwitchToNewThread,\n } = props;\n\n const [mainThreadId, setMainThreadId] = useState(\"main\");\n const [threads, setThreads] = useState<readonly ThreadData[]>(() => [\n { id: \"main\", title: \"Main Thread\", status: \"regular\" },\n ]);\n\n const handleSwitchToThread = (threadId: string) => {\n setMainThreadId(threadId);\n onSwitchToThread?.(threadId);\n };\n\n const handleArchive = (threadId: string) => {\n setThreads((prev) =>\n prev.map((t) =>\n t.id === threadId ? { ...t, status: \"archived\" as const } : t,\n ),\n );\n };\n\n const handleUnarchive = (threadId: string) => {\n setThreads((prev) =>\n prev.map((t) =>\n t.id === threadId ? { ...t, status: \"regular\" as const } : t,\n ),\n );\n };\n\n const handleUpdateCustom = (\n threadId: string,\n custom: Record<string, unknown> | undefined,\n ) => {\n setThreads((prev) =>\n prev.map((t) => (t.id === threadId ? { ...t, custom } : t)),\n );\n };\n\n const handleDelete = (threadId: string) => {\n setThreads((prev) => prev.filter((t) => t.id !== threadId));\n if (mainThreadId === threadId) {\n const remaining = threads.filter((t) => t.id !== threadId);\n setMainThreadId(remaining[0]?.id || \"main\");\n }\n };\n\n const handleSwitchToNewThread = () => {\n const newId = `thread-${Date.now()}`;\n setThreads((prev) => [\n ...prev,\n { id: newId, title: \"New Thread\", status: \"regular\" },\n ]);\n setMainThreadId(newId);\n onSwitchToNewThread?.();\n };\n\n const threadListItems = useClientLookup(\n threads.map((t) =>\n withKey(\n t.id,\n ThreadListItemClient({\n data: t,\n onSwitchTo: () => handleSwitchToThread(t.id),\n onUpdateCustom: (custom) => handleUpdateCustom(t.id, custom),\n onArchive: () => handleArchive(t.id),\n onUnarchive: () => handleUnarchive(t.id),\n onDelete: () => handleDelete(t.id),\n }),\n ),\n ),\n );\n\n // Create the main thread\n const mainThreadClient = useClientResource(threadFactory(mainThreadId));\n\n const state = useMemo(() => {\n const regularThreads = threads.filter((t) => t.status === \"regular\");\n const archivedThreads = threads.filter((t) => t.status === \"archived\");\n\n return {\n mainThreadId,\n newThreadId: null,\n isLoading: false,\n isLoadingMore: false,\n hasMore: false,\n threadIds: regularThreads.map((t) => t.id),\n archivedThreadIds: archivedThreads.map((t) => t.id),\n threadItems: threadListItems.state,\n main: mainThreadClient.state,\n };\n }, [mainThreadId, threads, threadListItems.state, mainThreadClient.state]);\n\n return {\n getState: () => state,\n switchToThread: handleSwitchToThread,\n switchToNewThread: handleSwitchToNewThread,\n getLoadThreadsPromise: () => RESOLVED_PROMISE,\n reload: () => RESOLVED_PROMISE,\n loadMore: () => RESOLVED_PROMISE,\n item: (selector) => {\n if (selector === \"main\") {\n const index = threads.findIndex((t) => t.id === mainThreadId);\n return threadListItems.get({ index: index === -1 ? 0 : index });\n }\n if (\"id\" in selector) {\n const index = threads.findIndex((t) => t.id === selector.id);\n return threadListItems.get({ index });\n }\n return threadListItems.get(selector);\n },\n thread: () => mainThreadClient.methods,\n };\n};\n\nexport const InMemoryThreadList = resource(useInMemoryThreadList);\n\nattachTransformScopes(useInMemoryThreadList, (scopes, parent) => {\n scopes.thread ??= Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads().thread(\"main\"),\n });\n scopes.threadListItem ??= Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads().item(\"main\"),\n });\n scopes.composer ??= Derived({\n source: \"thread\",\n query: {},\n get: (aui) => aui.threads().thread(\"main\").composer(),\n });\n\n if (!scopes.modelContext && parent.modelContext.source === null) {\n scopes.modelContext = ModelContext();\n }\n if (!scopes.tools && parent.tools.source === null) {\n scopes.tools = Tools({});\n }\n if (!scopes.dataRenderers && parent.dataRenderers.source === null) {\n scopes.dataRenderers = DataRenderers();\n }\n if (!scopes.suggestions && parent.suggestions.source === null) {\n scopes.suggestions = Suggestions();\n }\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"InMemoryThreadList.js","names":["useState","useMemo","resource","withKey","ResourceElement","ClientOutput","useClientLookup","Derived","attachTransformScopes","useClientResource","ModelContext","Suggestions","Tools","DataRenderers","RESOLVED_PROMISE","Promise","resolve","InMemoryThreadListProps","thread","threadId","onSwitchToThread","onSwitchToNewThread","ThreadData","id","title","status","custom","Record","useThreadListItemClient","props","$","_c","data","onSwitchTo","onUpdateCustom","onArchive","onUnarchive","onDelete","t0","remoteId","undefined","externalId","state","t1","t2","t3","getState","switchTo","rename","_temp","updateCustom","archive","unarchive","delete","generateTitle","_temp2","initialize","detach","_temp3","ThreadListItemClient","useInMemoryThreadList","threadFactory","mainThreadId","setMainThreadId","threads","setThreads","_temp4","handleSwitchToThread","Symbol","for","threadId_0","prev","map","t","const","handleArchive","threadId_1","prev_0","t_0","handleUnarchive","threadId_2","prev_1","t_1","handleUpdateCustom","t4","threadId_3","prev_2","filter","t_2","remaining","t_3","handleDelete","t5","newId","Date","now","prev_3","handleSwitchToNewThread","t6","t7","t_4","custom_0","threadListItems","mainThreadClient","t10","t11","t12","t13","t14","t8","t9","regularThreads","_temp5","archivedThreads","_temp6","_temp7","_temp8","t15","newThreadId","isLoading","isLoadingMore","hasMore","threadIds","archivedThreadIds","threadItems","main","t16","t17","selector","index","findIndex","t_9","get","index_0","t_10","t18","methods","t19","switchToThread","switchToNewThread","getLoadThreadsPromise","_temp9","reload","_temp0","loadMore","_temp1","item","InMemoryThreadList","scopes","parent","source","query","type","aui","threadListItem","composer","modelContext","tools","dataRenderers","suggestions","t_5","t_6","t_7","t_8"],"sources":["../../src/client/InMemoryThreadList.ts"],"sourcesContent":["import { useState, useMemo } from \"react\";\nimport { resource, withKey, type ResourceElement } from \"@assistant-ui/tap\";\nimport {\n type ClientOutput,\n useClientLookup,\n Derived,\n attachTransformScopes,\n useClientResource,\n} from \"@assistant-ui/store\";\n\nimport { ModelContext, Suggestions } from \"@assistant-ui/core/store\";\nimport { Tools, DataRenderers } from \"@assistant-ui/core/react\";\n\nconst RESOLVED_PROMISE = Promise.resolve();\n\nexport type InMemoryThreadListProps = {\n thread: (threadId: string) => ResourceElement<ClientOutput<\"thread\">>;\n onSwitchToThread?: (threadId: string) => void;\n onSwitchToNewThread?: () => void;\n};\n\ntype ThreadData = {\n id: string;\n title?: string;\n status: \"regular\" | \"archived\";\n custom?: Record<string, unknown> | undefined;\n};\n\n// ThreadListItem Client\nconst useThreadListItemClient = (props: {\n data: ThreadData;\n onSwitchTo: () => void;\n onUpdateCustom: (custom: Record<string, unknown> | undefined) => void;\n onArchive: () => void;\n onUnarchive: () => void;\n onDelete: () => void;\n}): ClientOutput<\"threadListItem\"> => {\n const { data, onSwitchTo, onUpdateCustom, onArchive, onUnarchive, onDelete } =\n props;\n const state = useMemo(\n () => ({\n id: data.id,\n remoteId: undefined,\n externalId: undefined,\n title: data.title,\n status: data.status,\n custom: data.custom,\n }),\n [data.id, data.title, data.status, data.custom],\n );\n\n return {\n getState: () => state,\n switchTo: onSwitchTo,\n rename: () => {},\n updateCustom: onUpdateCustom,\n archive: onArchive,\n unarchive: onUnarchive,\n delete: onDelete,\n generateTitle: () => {},\n initialize: async () => ({ remoteId: data.id, externalId: undefined }),\n detach: () => {},\n };\n};\n\nconst ThreadListItemClient = resource(useThreadListItemClient);\n\n// InMemoryThreadList Client\nconst useInMemoryThreadList = (\n props: InMemoryThreadListProps,\n): ClientOutput<\"threads\"> => {\n const {\n thread: threadFactory,\n onSwitchToThread,\n onSwitchToNewThread,\n } = props;\n\n const [mainThreadId, setMainThreadId] = useState(\"main\");\n const [threads, setThreads] = useState<readonly ThreadData[]>(() => [\n { id: \"main\", title: \"Main Thread\", status: \"regular\" },\n ]);\n\n const handleSwitchToThread = (threadId: string) => {\n setMainThreadId(threadId);\n onSwitchToThread?.(threadId);\n };\n\n const handleArchive = (threadId: string) => {\n setThreads((prev) =>\n prev.map((t) =>\n t.id === threadId ? { ...t, status: \"archived\" as const } : t,\n ),\n );\n };\n\n const handleUnarchive = (threadId: string) => {\n setThreads((prev) =>\n prev.map((t) =>\n t.id === threadId ? { ...t, status: \"regular\" as const } : t,\n ),\n );\n };\n\n const handleUpdateCustom = (\n threadId: string,\n custom: Record<string, unknown> | undefined,\n ) => {\n setThreads((prev) =>\n prev.map((t) => (t.id === threadId ? { ...t, custom } : t)),\n );\n };\n\n const handleDelete = (threadId: string) => {\n setThreads((prev) => prev.filter((t) => t.id !== threadId));\n if (mainThreadId === threadId) {\n const remaining = threads.filter((t) => t.id !== threadId);\n setMainThreadId(remaining[0]?.id || \"main\");\n }\n };\n\n const handleSwitchToNewThread = () => {\n const newId = `thread-${Date.now()}`;\n setThreads((prev) => [\n ...prev,\n { id: newId, title: \"New Thread\", status: \"regular\" },\n ]);\n setMainThreadId(newId);\n onSwitchToNewThread?.();\n };\n\n const threadListItems = useClientLookup(\n threads.map((t) =>\n withKey(\n t.id,\n ThreadListItemClient({\n data: t,\n onSwitchTo: () => handleSwitchToThread(t.id),\n onUpdateCustom: (custom) => handleUpdateCustom(t.id, custom),\n onArchive: () => handleArchive(t.id),\n onUnarchive: () => handleUnarchive(t.id),\n onDelete: () => handleDelete(t.id),\n }),\n ),\n ),\n );\n\n // Create the main thread\n const mainThreadClient = useClientResource(threadFactory(mainThreadId));\n\n const state = useMemo(() => {\n const regularThreads = threads.filter((t) => t.status === \"regular\");\n const archivedThreads = threads.filter((t) => t.status === \"archived\");\n\n return {\n mainThreadId,\n newThreadId: null,\n isLoading: false,\n isLoadingMore: false,\n hasMore: false,\n threadIds: regularThreads.map((t) => t.id),\n archivedThreadIds: archivedThreads.map((t) => t.id),\n threadItems: threadListItems.state,\n main: mainThreadClient.state,\n };\n }, [mainThreadId, threads, threadListItems.state, mainThreadClient.state]);\n\n return {\n getState: () => state,\n switchToThread: handleSwitchToThread,\n switchToNewThread: handleSwitchToNewThread,\n getLoadThreadsPromise: () => RESOLVED_PROMISE,\n reload: () => RESOLVED_PROMISE,\n loadMore: () => RESOLVED_PROMISE,\n item: (selector) => {\n if (selector === \"main\") {\n const index = threads.findIndex((t) => t.id === mainThreadId);\n return threadListItems.get({ index: index === -1 ? 0 : index });\n }\n if (\"id\" in selector) {\n const index = threads.findIndex((t) => t.id === selector.id);\n return threadListItems.get({ index });\n }\n return threadListItems.get(selector);\n },\n thread: () => mainThreadClient.methods,\n };\n};\n\nexport const InMemoryThreadList = resource(useInMemoryThreadList);\n\nattachTransformScopes(useInMemoryThreadList, (scopes, parent) => {\n scopes.thread ??= Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads().thread(\"main\"),\n });\n scopes.threadListItem ??= Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads().item(\"main\"),\n });\n scopes.composer ??= Derived({\n source: \"thread\",\n query: {},\n get: (aui) => aui.threads().thread(\"main\").composer(),\n });\n\n if (!scopes.modelContext && parent.modelContext.source === null) {\n scopes.modelContext = ModelContext();\n }\n if (!scopes.tools && parent.tools.source === null) {\n scopes.tools = Tools({});\n }\n if (!scopes.dataRenderers && parent.dataRenderers.source === null) {\n scopes.dataRenderers = DataRenderers();\n }\n if (!scopes.suggestions && parent.suggestions.source === null) {\n scopes.suggestions = Suggestions();\n }\n});\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { ClientElement, ClientOutput } from "@assistant-ui/store";
2
-
3
2
  //#region src/client/SingleThreadList.d.ts
4
3
  type SingleThreadListProps = {
5
4
  thread: ClientElement<"thread">;
@@ -1 +1 @@
1
- {"version":3,"file":"SingleThreadList.d.ts","names":[],"sources":["../../src/client/SingleThreadList.ts"],"mappings":";;;KAqCK,qBAAA;EACH,MAAA,EAAQ,aAAa;AAAA;AAAA,cAuEV,gBAAA,8BAAgB,QAAA,CAAA,YAAA,cAAA,qBAAA"}
1
+ {"version":3,"file":"SingleThreadList.d.ts","names":[],"sources":["../../src/client/SingleThreadList.ts"],"mappings":";;KAqCK;EACH,QAAQ;;cAuEG,8CAAgB,SAAA,0BAAA"}
@@ -1,5 +1,4 @@
1
1
  import { StoreApi } from "zustand";
2
-
3
2
  //#region src/context/ReadonlyStore.d.ts
4
3
  type ReadonlyStore<T> = Omit<StoreApi<T>, "setState" | "destroy">;
5
4
  declare const writableStore: <T>(store: ReadonlyStore<T> | undefined) => StoreApi<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"ReadonlyStore.d.ts","names":[],"sources":["../../src/context/ReadonlyStore.ts"],"mappings":";;;KAEY,aAAA,MAAmB,IAAA,CAAK,QAAA,CAAS,CAAA;AAAA,cAEhC,aAAA,MAAoB,KAAA,EAAO,aAAA,CAAc,CAAA,kBACzB,QAAA,CAAS,CAAA"}
1
+ {"version":3,"file":"ReadonlyStore.d.ts","names":[],"sources":["../../src/context/ReadonlyStore.ts"],"mappings":";;KAEY,cAAc,KAAK,KAAK,SAAS;cAEhC,gBAAiB,GAAG,OAAO,cAAc,mBACzB,SAAS"}
@@ -1,6 +1,5 @@
1
1
  import { FC, PropsWithChildren } from "react";
2
2
  import { ThreadMessageClientProps } from "@assistant-ui/core/store";
3
-
4
3
  //#region src/context/providers/MessageProvider.d.ts
5
4
  declare const MessageProvider: FC<PropsWithChildren<ThreadMessageClientProps>>;
6
5
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"MessageProvider.d.ts","names":[],"sources":["../../../src/context/providers/MessageProvider.tsx"],"mappings":";;;;cASa,eAAA,EAAiB,EAAA,CAC5B,iBAAA,CAAkB,wBAAA"}
1
+ {"version":3,"file":"MessageProvider.d.ts","names":[],"sources":["../../../src/context/providers/MessageProvider.tsx"],"mappings":";;;cASa,iBAAiB,GAC5B,kBAAkB"}
@@ -1,6 +1,5 @@
1
1
  import { ThreadViewportStoreOptions } from "../stores/ThreadViewport.js";
2
2
  import { FC, PropsWithChildren } from "react";
3
-
4
3
  //#region src/context/providers/ThreadViewportProvider.d.ts
5
4
  type ThreadViewportProviderProps = PropsWithChildren<{
6
5
  options?: ThreadViewportStoreOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadViewportProvider.d.ts","names":[],"sources":["../../../src/context/providers/ThreadViewportProvider.tsx"],"mappings":";;;;KAeY,2BAAA,GAA8B,iBAAiB;EACzD,OAAA,GAAU,0BAAA;AAAA;AAAA,cA4BC,+BAAA,EAAiC,EAAE,CAC9C,2BAAA"}
1
+ {"version":3,"file":"ThreadViewportProvider.d.ts","names":[],"sources":["../../../src/context/providers/ThreadViewportProvider.tsx"],"mappings":";;;KAeY,8BAA8B;EACxC,UAAU;;cA4BC,iCAAiC,GAC5C"}
@@ -1,28 +1,27 @@
1
1
  import { ReadonlyStore } from "../ReadonlyStore.js";
2
2
  import { ThreadViewportState } from "../stores/ThreadViewport.js";
3
3
  import { UseBoundStore } from "zustand";
4
-
5
4
  //#region src/context/react/ThreadViewportContext.d.ts
6
5
  type ThreadViewportContextValue = {
7
6
  useThreadViewport: UseBoundStore<ReadonlyStore<ThreadViewportState>>;
8
7
  };
9
8
  declare const ThreadViewportContext: import("react").Context<ThreadViewportContextValue | null>;
10
9
  declare const useThreadViewport: {
11
- (): ThreadViewportState;
12
- <TSelected>(selector: (state: ThreadViewportState) => TSelected): TSelected;
13
- (options: {
14
- optional: true;
15
- }): ThreadViewportState | null;
16
- <TSelected>(options: {
17
- optional: true;
18
- selector?: (state: ThreadViewportState) => TSelected;
19
- }): TSelected | null;
20
- }, useThreadViewportStore: {
21
- (): ReadonlyStore<ThreadViewportState>;
22
- (options: {
23
- optional: true;
24
- }): ReadonlyStore<ThreadViewportState> | null;
25
- };
10
+ (): ThreadViewportState;
11
+ <TSelected>(selector: (state: ThreadViewportState) => TSelected): TSelected;
12
+ (options: {
13
+ optional: true;
14
+ }): ThreadViewportState | null;
15
+ <TSelected>(options: {
16
+ optional: true;
17
+ selector?: (state: ThreadViewportState) => TSelected;
18
+ }): TSelected | null;
19
+ }, useThreadViewportStore: {
20
+ (): ReadonlyStore<ThreadViewportState>;
21
+ (options: {
22
+ optional: true;
23
+ }): ReadonlyStore<ThreadViewportState> | null;
24
+ };
26
25
  //#endregion
27
26
  export { ThreadViewportContext, ThreadViewportContextValue, useThreadViewport, useThreadViewportStore };
28
27
  //# sourceMappingURL=ThreadViewportContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadViewportContext.d.ts","names":[],"sources":["../../../src/context/react/ThreadViewportContext.ts"],"mappings":";;;;;KASY,0BAAA;EACV,iBAAA,EAAmB,aAAA,CAAc,aAAA,CAAc,mBAAA;AAAA;AAAA,cAGpC,qBAAA,kBAAqB,OAAA,CAAA,0BAAA;AAAA,cAQnB,iBAAA;IAAA"}
1
+ {"version":3,"file":"ThreadViewportContext.d.ts","names":[],"sources":["../../../src/context/react/ThreadViewportContext.ts"],"mappings":";;;;KASY;EACV,mBAAmB,cAAc,cAAc;;cAGpC,uCAAqB,QAAA;cAQnB;;;;;;;;;;GAAmB"}
@@ -1,5 +1,4 @@
1
1
  import { Context } from "react";
2
-
3
2
  //#region src/context/react/utils/createContextHook.d.ts
4
3
  /**
5
4
  * Creates a context hook with optional support.
@@ -1 +1 @@
1
- {"version":3,"file":"createContextHook.d.ts","names":[],"sources":["../../../../src/context/react/utils/createContextHook.ts"],"mappings":";;;;;AAUA;;;;iBAAgB,iBAAA,IACd,OAAA,EAAS,OAAA,CAAQ,CAAA,UACjB,YAAA,YAAoB,OAAA;EAGlB,QAAA;AAAA,MACE,CAAA"}
1
+ {"version":3,"file":"createContextHook.d.ts","names":[],"sources":["../../../../src/context/react/utils/createContextHook.ts"],"mappings":";;;;;;;;iBAUgB,kBAAkB,GAChC,SAAS,QAAQ,WACjB,wBAAoB;EAGlB;MACE"}
@@ -1,5 +1,4 @@
1
1
  import { ReadonlyStore } from "../../ReadonlyStore.js";
2
-
3
2
  //#region src/context/react/utils/createContextStoreHook.d.ts
4
3
  /**
5
4
  * Creates hooks for accessing a store within a context.
@@ -19,12 +18,12 @@ declare function createContextStoreHook<T, K extends keyof T & string>(contextHo
19
18
  optional: true;
20
19
  selector?: (state: T[K] extends ReadonlyStore<infer S> ? S : never) => TSelected;
21
20
  }): TSelected | null;
22
- } } & { [P in `${K}Store`]: {
21
+ }; } & { [P in `${K}Store`]: {
23
22
  (): ReadonlyStore<T[K] extends ReadonlyStore<infer S> ? S : never>;
24
23
  (options: {
25
24
  optional: true;
26
25
  }): ReadonlyStore<T[K] extends ReadonlyStore<infer S> ? S : never> | null;
27
- } };
26
+ }; };
28
27
  //#endregion
29
28
  export { createContextStoreHook };
30
29
  //# sourceMappingURL=createContextStoreHook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createContextStoreHook.d.ts","names":[],"sources":["../../../../src/context/react/utils/createContextStoreHook.ts"],"mappings":";;;;;AASA;;;;iBAAgB,sBAAA,oBAA0C,CAAA,WACxD,WAAA,GAAc,OAAA;EAAY,QAAA;AAAA,MAAyB,CAAA,SACnD,UAAA,EAAY,CAAA,WA2DJ,CAAA;EAAA,0CAxDgD,CAAA;EAAA,YAiBzB,QAAA,GAClB,KAAA,EAAK,CAAA,CAAA,CAAA,UAAA,aAAA,YAlBsC,CAAA,aAkBtB,SAAA,GAC/B,SAAA;EAAA;IAC8B,QAAA;EAAA,KAAmB,CAAA,CAAA,CAAA,UAAA,aAAA,YApBI,CAAA;EAAA,YAqBzB,OAAA;IAC7B,QAAA;IACA,QAAA,IAAY,KAAA,EAAK,CAAA,CAAA,CAAA,UAAA,aAAA,YAvBqC,CAAA,aAuBrB,SAAA;EAAA,IAC/B,SAAA;AAAA,iBAkCO,CAAA;EAAA,IAvDmB,aAAA,CAAa,CAAA,CAAA,CAAA,UAAA,aAAA,YAHa,CAAA;EAAA;IAKtD,QAAA;EAAA,IACE,aAAA,CAAa,CAAA,CAAA,CAAA,UAAA,aAAA,YANuC,CAAA;AAAA"}
1
+ {"version":3,"file":"createContextStoreHook.d.ts","names":[],"sources":["../../../../src/context/react/utils/createContextStoreHook.ts"],"mappings":";;;;;;;;iBASgB,uBAAuB,GAAG,gBAAgB,YACxD,cAAc;EAAY;MAAyB,UACnD,YAAY,OA2DT,KAAK;MAxD+C,EAAA,WAAA,oBAAA,KAAC;GAiBlC,WAAS,WAClB,OAAK,EAAA,WAAA,oBAlBqC,KAAC,cAkBtB,YAC/B;GAC4B;IAAE;OAAmB,EAAA,WAAA,oBApBG,KAAC;GAqBlC,WAAS;IAC7B;IACA,YAAY,OAAK,EAAA,WAAA,oBAvBoC,KAAC,cAuBrB;MAC/B;UAkCD,QAAQ;MAvDmB,cAAa,EAAA,WAAA,oBAHY,KAAC;GAIpB;IAClC;MACE,cAAa,EAAA,WAAA,oBANsC,KAAC"}
@@ -1,5 +1,4 @@
1
1
  import { SubscribableRuntime } from "./useRuntimeState.js";
2
-
3
2
  //#region src/context/react/utils/createStateHookForRuntime.d.ts
4
3
  declare function createStateHookForRuntime<TState>(useRuntime: (options: {
5
4
  optional: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"createStateHookForRuntime.d.ts","names":[],"sources":["../../../../src/context/react/utils/createStateHookForRuntime.ts"],"mappings":";;;iBAKgB,yBAAA,SACd,UAAA,GAAa,OAAA;EACX,QAAA;AAAA,MACI,mBAAA,CAAoB,MAAA;EAAA,IAGD,MAAA;EAAA,YAGM,QAAA,GAClB,KAAA,EAAO,MAAA,KAAW,SAAA,GAC5B,SAAA;EAAA,YAG4B,QAAA,IACjB,KAAA,EAAO,MAAA,KAAW,SAAA,gBAC7B,SAAA,GAAY,MAAA;EAAA;IAGkB,QAAA;EAAA,IAAiC,MAAA;EAAA;IAIhE,QAAA;EAAA,IACE,MAAA;EAAA,YAG2B,OAAA;IAC7B,QAAA;IACA,QAAA,GAAW,KAAA,EAAO,MAAA,KAAW,SAAA;EAAA,IAC3B,SAAA;EAAA,YAG2B,OAAA;IAC7B,QAAA;IACA,QAAA,IAAY,KAAA,EAAO,MAAA,KAAW,SAAA;EAAA,IAC5B,SAAA,GAAY,MAAA;EAAA,YAGe,OAAA;IAC7B,QAAA;IACA,QAAA,GAAW,KAAA,EAAO,MAAA,KAAW,SAAA;EAAA,IAC3B,SAAA;EAAA,YAG2B,OAAA;IAC7B,QAAA;IACA,QAAA,IAAY,KAAA,EAAO,MAAA,KAAW,SAAA;EAAA,IAC5B,SAAA,GAAY,MAAA;AAAA"}
1
+ {"version":3,"file":"createStateHookForRuntime.d.ts","names":[],"sources":["../../../../src/context/react/utils/createStateHookForRuntime.ts"],"mappings":";;iBAKgB,0BAA0B,QACxC,aAAa;EACX;MACI,oBAAoB;MAGD;GAGH,WAAS,WAClB,OAAO,WAAW,YAC5B;GAGmB,WAAS,YACjB,OAAO,WAAW,yBAC7B,YAAY;GAGgB;IAAE;MAAiC;GAGnC;IAC7B;MACE;GAGkB,WAAS;IAC7B;IACA,WAAW,OAAO,WAAW;MAC3B;GAGkB,WAAS;IAC7B;IACA,YAAY,OAAO,WAAW;MAC5B,YAAY;GAGM,WAAS;IAC7B;IACA,WAAW,OAAO,WAAW;MAC3B;GAGkB,WAAS;IAC7B;IACA,YAAY,OAAO,WAAW;MAC5B,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"ensureBinding.d.ts","names":[],"sources":["../../../../src/context/react/utils/ensureBinding.ts"],"mappings":";cAmCa,aAAA,GAAiB,CAAU"}
1
+ {"version":3,"file":"ensureBinding.d.ts","names":[],"sources":["../../../../src/context/react/utils/ensureBinding.ts"],"mappings":";cAmCa,gBAAiB"}
@@ -1,5 +1,4 @@
1
1
  import { Unsubscribe } from "@assistant-ui/core";
2
-
3
2
  //#region src/context/react/utils/useRuntimeState.d.ts
4
3
  type SubscribableRuntime<TState> = {
5
4
  getState: () => TState;