@assistant-ui/core 0.2.4 → 0.2.5

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 (827) hide show
  1. package/dist/adapters/attachment.d.ts +43 -39
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/attachment.js +148 -183
  4. package/dist/adapters/attachment.js.map +1 -1
  5. package/dist/adapters/directive-formatter.d.ts +6 -2
  6. package/dist/adapters/directive-formatter.d.ts.map +1 -1
  7. package/dist/adapters/directive-formatter.js +36 -33
  8. package/dist/adapters/directive-formatter.js.map +1 -1
  9. package/dist/adapters/feedback.d.ts +9 -6
  10. package/dist/adapters/feedback.d.ts.map +1 -1
  11. package/dist/adapters/feedback.js +0 -2
  12. package/dist/adapters/index.d.ts +9 -13
  13. package/dist/adapters/index.js +5 -6
  14. package/dist/adapters/speech.d.ts +66 -63
  15. package/dist/adapters/speech.d.ts.map +1 -1
  16. package/dist/adapters/speech.js +170 -174
  17. package/dist/adapters/speech.js.map +1 -1
  18. package/dist/adapters/suggestion.d.ts +9 -6
  19. package/dist/adapters/suggestion.d.ts.map +1 -1
  20. package/dist/adapters/suggestion.js +0 -2
  21. package/dist/adapters/thread-history.d.ts +40 -37
  22. package/dist/adapters/thread-history.d.ts.map +1 -1
  23. package/dist/adapters/thread-history.js +0 -2
  24. package/dist/adapters/trigger.d.ts +9 -8
  25. package/dist/adapters/trigger.d.ts.map +1 -1
  26. package/dist/adapters/trigger.js +0 -2
  27. package/dist/adapters/voice.d.ts +46 -42
  28. package/dist/adapters/voice.d.ts.map +1 -1
  29. package/dist/adapters/voice.js +98 -107
  30. package/dist/adapters/voice.js.map +1 -1
  31. package/dist/index.d.ts +45 -53
  32. package/dist/index.js +16 -20
  33. package/dist/internal.d.ts +37 -8
  34. package/dist/internal.js +34 -18
  35. package/dist/model-context/frame/host.d.ts +23 -19
  36. package/dist/model-context/frame/host.d.ts.map +1 -1
  37. package/dist/model-context/frame/host.js +121 -135
  38. package/dist/model-context/frame/host.js.map +1 -1
  39. package/dist/model-context/frame/provider.d.ts +20 -16
  40. package/dist/model-context/frame/provider.d.ts.map +1 -1
  41. package/dist/model-context/frame/provider.js +115 -126
  42. package/dist/model-context/frame/provider.js.map +1 -1
  43. package/dist/model-context/frame/types.d.ts +25 -22
  44. package/dist/model-context/frame/types.d.ts.map +1 -1
  45. package/dist/model-context/frame/types.js +5 -1
  46. package/dist/model-context/frame/types.js.map +1 -1
  47. package/dist/model-context/registry-handles.d.ts +13 -9
  48. package/dist/model-context/registry-handles.d.ts.map +1 -1
  49. package/dist/model-context/registry-handles.js +0 -2
  50. package/dist/model-context/registry.d.ts +19 -15
  51. package/dist/model-context/registry.d.ts.map +1 -1
  52. package/dist/model-context/registry.js +93 -107
  53. package/dist/model-context/registry.js.map +1 -1
  54. package/dist/model-context/tool.d.ts +6 -2
  55. package/dist/model-context/tool.d.ts.map +1 -1
  56. package/dist/model-context/tool.js +30 -27
  57. package/dist/model-context/tool.js.map +1 -1
  58. package/dist/model-context/types.d.ts +37 -33
  59. package/dist/model-context/types.d.ts.map +1 -1
  60. package/dist/model-context/types.js +24 -38
  61. package/dist/model-context/types.js.map +1 -1
  62. package/dist/react/AssistantProvider.d.ts +12 -8
  63. package/dist/react/AssistantProvider.d.ts.map +1 -1
  64. package/dist/react/AssistantProvider.js +16 -9
  65. package/dist/react/AssistantProvider.js.map +1 -1
  66. package/dist/react/AssistantRuntimeProvider.d.ts +26 -18
  67. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  68. package/dist/react/AssistantRuntimeProvider.js +33 -25
  69. package/dist/react/AssistantRuntimeProvider.js.map +1 -1
  70. package/dist/react/RuntimeAdapter.d.ts +5 -2
  71. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  72. package/dist/react/RuntimeAdapter.js +11 -11
  73. package/dist/react/RuntimeAdapter.js.map +1 -1
  74. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +14 -11
  75. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  76. package/dist/react/adapters/LocalStorageThreadListAdapter.js +136 -147
  77. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  78. package/dist/react/adapters/TitleGenerationAdapter.d.ts +8 -4
  79. package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
  80. package/dist/react/adapters/TitleGenerationAdapter.js +13 -13
  81. package/dist/react/adapters/TitleGenerationAdapter.js.map +1 -1
  82. package/dist/react/client/DataRenderers.d.ts +6 -2
  83. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  84. package/dist/react/client/DataRenderers.js +53 -51
  85. package/dist/react/client/DataRenderers.js.map +1 -1
  86. package/dist/react/client/Interactables.d.ts +6 -2
  87. package/dist/react/client/Interactables.d.ts.map +1 -1
  88. package/dist/react/client/Interactables.js +251 -257
  89. package/dist/react/client/Interactables.js.map +1 -1
  90. package/dist/react/client/Tools.d.ts +13 -14
  91. package/dist/react/client/Tools.d.ts.map +1 -1
  92. package/dist/react/client/Tools.js +57 -68
  93. package/dist/react/client/Tools.js.map +1 -1
  94. package/dist/react/client/interactable-model-context.d.ts +10 -6
  95. package/dist/react/client/interactable-model-context.d.ts.map +1 -1
  96. package/dist/react/client/interactable-model-context.js +51 -59
  97. package/dist/react/client/interactable-model-context.js.map +1 -1
  98. package/dist/react/index.d.ts +95 -90
  99. package/dist/react/index.js +88 -96
  100. package/dist/react/model-context/makeAssistantDataUI.d.ts +9 -6
  101. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
  102. package/dist/react/model-context/makeAssistantDataUI.js +17 -13
  103. package/dist/react/model-context/makeAssistantDataUI.js.map +1 -1
  104. package/dist/react/model-context/makeAssistantTool.d.ts +9 -6
  105. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  106. package/dist/react/model-context/makeAssistantTool.js +18 -14
  107. package/dist/react/model-context/makeAssistantTool.js.map +1 -1
  108. package/dist/react/model-context/makeAssistantToolUI.d.ts +9 -6
  109. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  110. package/dist/react/model-context/makeAssistantToolUI.js +19 -15
  111. package/dist/react/model-context/makeAssistantToolUI.js.map +1 -1
  112. package/dist/react/model-context/toolbox.d.ts +13 -11
  113. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  114. package/dist/react/model-context/toolbox.js +0 -2
  115. package/dist/react/model-context/useAssistantContext.d.ts +5 -3
  116. package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
  117. package/dist/react/model-context/useAssistantContext.js +13 -14
  118. package/dist/react/model-context/useAssistantContext.js.map +1 -1
  119. package/dist/react/model-context/useAssistantDataUI.d.ts +9 -7
  120. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
  121. package/dist/react/model-context/useAssistantDataUI.js +19 -12
  122. package/dist/react/model-context/useAssistantDataUI.js.map +1 -1
  123. package/dist/react/model-context/useAssistantInstructions.d.ts +5 -3
  124. package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
  125. package/dist/react/model-context/useAssistantInstructions.js +18 -16
  126. package/dist/react/model-context/useAssistantInstructions.js.map +1 -1
  127. package/dist/react/model-context/useAssistantInteractable.d.ts +12 -8
  128. package/dist/react/model-context/useAssistantInteractable.d.ts.map +1 -1
  129. package/dist/react/model-context/useAssistantInteractable.js +36 -26
  130. package/dist/react/model-context/useAssistantInteractable.js.map +1 -1
  131. package/dist/react/model-context/useAssistantTool.d.ts +9 -6
  132. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  133. package/dist/react/model-context/useAssistantTool.js +48 -47
  134. package/dist/react/model-context/useAssistantTool.js.map +1 -1
  135. package/dist/react/model-context/useAssistantToolUI.d.ts +9 -7
  136. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  137. package/dist/react/model-context/useAssistantToolUI.js +22 -15
  138. package/dist/react/model-context/useAssistantToolUI.js.map +1 -1
  139. package/dist/react/model-context/useInlineRender.d.ts +7 -3
  140. package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
  141. package/dist/react/model-context/useInlineRender.js +12 -12
  142. package/dist/react/model-context/useInlineRender.js.map +1 -1
  143. package/dist/react/model-context/useInteractableState.d.ts +9 -7
  144. package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
  145. package/dist/react/model-context/useInteractableState.js +29 -31
  146. package/dist/react/model-context/useInteractableState.js.map +1 -1
  147. package/dist/react/model-context/useToolArgsStatus.d.ts +7 -7
  148. package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
  149. package/dist/react/model-context/useToolArgsStatus.js +44 -50
  150. package/dist/react/model-context/useToolArgsStatus.js.map +1 -1
  151. package/dist/react/primitive-hooks/useActionBarCopy.d.ts +13 -7
  152. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  153. package/dist/react/primitive-hooks/useActionBarCopy.js +31 -23
  154. package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
  155. package/dist/react/primitive-hooks/useActionBarEdit.d.ts +6 -3
  156. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
  157. package/dist/react/primitive-hooks/useActionBarEdit.js +13 -7
  158. package/dist/react/primitive-hooks/useActionBarEdit.js.map +1 -1
  159. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +9 -6
  160. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
  161. package/dist/react/primitive-hooks/useActionBarFeedback.js +22 -14
  162. package/dist/react/primitive-hooks/useActionBarFeedback.js.map +1 -1
  163. package/dist/react/primitive-hooks/useActionBarReload.d.ts +6 -3
  164. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
  165. package/dist/react/primitive-hooks/useActionBarReload.js +13 -9
  166. package/dist/react/primitive-hooks/useActionBarReload.js.map +1 -1
  167. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +6 -3
  168. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
  169. package/dist/react/primitive-hooks/useActionBarSpeak.js +15 -11
  170. package/dist/react/primitive-hooks/useActionBarSpeak.js.map +1 -1
  171. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +6 -3
  172. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
  173. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js +13 -7
  174. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js.map +1 -1
  175. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +6 -3
  176. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
  177. package/dist/react/primitive-hooks/useBranchPickerNext.js +17 -14
  178. package/dist/react/primitive-hooks/useBranchPickerNext.js.map +1 -1
  179. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +6 -3
  180. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
  181. package/dist/react/primitive-hooks/useBranchPickerPrevious.js +17 -14
  182. package/dist/react/primitive-hooks/useBranchPickerPrevious.js.map +1 -1
  183. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +8 -4
  184. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
  185. package/dist/react/primitive-hooks/useComposerAddAttachment.js +13 -7
  186. package/dist/react/primitive-hooks/useComposerAddAttachment.js.map +1 -1
  187. package/dist/react/primitive-hooks/useComposerCancel.d.ts +6 -3
  188. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
  189. package/dist/react/primitive-hooks/useComposerCancel.js +13 -7
  190. package/dist/react/primitive-hooks/useComposerCancel.js.map +1 -1
  191. package/dist/react/primitive-hooks/useComposerDictate.d.ts +6 -3
  192. package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
  193. package/dist/react/primitive-hooks/useComposerDictate.js +13 -9
  194. package/dist/react/primitive-hooks/useComposerDictate.js.map +1 -1
  195. package/dist/react/primitive-hooks/useComposerSend.d.ts +8 -4
  196. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  197. package/dist/react/primitive-hooks/useComposerSend.js +13 -8
  198. package/dist/react/primitive-hooks/useComposerSend.js.map +1 -1
  199. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +5 -2
  200. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
  201. package/dist/react/primitive-hooks/useEditComposerCancel.js +9 -6
  202. package/dist/react/primitive-hooks/useEditComposerCancel.js.map +1 -1
  203. package/dist/react/primitive-hooks/useEditComposerSend.d.ts +6 -3
  204. package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
  205. package/dist/react/primitive-hooks/useEditComposerSend.js +13 -7
  206. package/dist/react/primitive-hooks/useEditComposerSend.js.map +1 -1
  207. package/dist/react/primitive-hooks/useMessageBranching.d.ts +8 -5
  208. package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
  209. package/dist/react/primitive-hooks/useMessageBranching.js +16 -11
  210. package/dist/react/primitive-hooks/useMessageBranching.js.map +1 -1
  211. package/dist/react/primitive-hooks/useMessageError.d.ts +4 -1
  212. package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
  213. package/dist/react/primitive-hooks/useMessageError.js +6 -5
  214. package/dist/react/primitive-hooks/useMessageError.js.map +1 -1
  215. package/dist/react/primitive-hooks/useMessageReload.d.ts +6 -3
  216. package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
  217. package/dist/react/primitive-hooks/useMessageReload.js +13 -7
  218. package/dist/react/primitive-hooks/useMessageReload.js.map +1 -1
  219. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +14 -7
  220. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
  221. package/dist/react/primitive-hooks/useSuggestionTrigger.js +33 -28
  222. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
  223. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +4 -1
  224. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
  225. package/dist/react/primitive-hooks/useThreadIsEmpty.js +6 -2
  226. package/dist/react/primitive-hooks/useThreadIsEmpty.js.map +1 -1
  227. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +4 -1
  228. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
  229. package/dist/react/primitive-hooks/useThreadIsRunning.js +6 -2
  230. package/dist/react/primitive-hooks/useThreadIsRunning.js.map +1 -1
  231. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +5 -2
  232. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
  233. package/dist/react/primitive-hooks/useThreadListItemArchive.js +9 -6
  234. package/dist/react/primitive-hooks/useThreadListItemArchive.js.map +1 -1
  235. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +5 -2
  236. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
  237. package/dist/react/primitive-hooks/useThreadListItemDelete.js +9 -6
  238. package/dist/react/primitive-hooks/useThreadListItemDelete.js.map +1 -1
  239. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +5 -2
  240. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
  241. package/dist/react/primitive-hooks/useThreadListItemTrigger.js +9 -6
  242. package/dist/react/primitive-hooks/useThreadListItemTrigger.js.map +1 -1
  243. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +5 -2
  244. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
  245. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js +9 -6
  246. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js.map +1 -1
  247. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +6 -3
  248. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
  249. package/dist/react/primitive-hooks/useThreadListLoadMore.js +13 -7
  250. package/dist/react/primitive-hooks/useThreadListLoadMore.js.map +1 -1
  251. package/dist/react/primitive-hooks/useThreadListNew.d.ts +5 -2
  252. package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
  253. package/dist/react/primitive-hooks/useThreadListNew.js +9 -6
  254. package/dist/react/primitive-hooks/useThreadListNew.js.map +1 -1
  255. package/dist/react/primitive-hooks/useThreadMessages.d.ts +6 -2
  256. package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
  257. package/dist/react/primitive-hooks/useThreadMessages.js +6 -2
  258. package/dist/react/primitive-hooks/useThreadMessages.js.map +1 -1
  259. package/dist/react/primitive-hooks/useVoice.d.ts +12 -8
  260. package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
  261. package/dist/react/primitive-hooks/useVoice.js +25 -21
  262. package/dist/react/primitive-hooks/useVoice.js.map +1 -1
  263. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +26 -27
  264. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  265. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js +30 -28
  266. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
  267. package/dist/react/primitives/composer/ComposerAttachments.d.ts +27 -26
  268. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  269. package/dist/react/primitives/composer/ComposerAttachments.js +44 -48
  270. package/dist/react/primitives/composer/ComposerAttachments.js.map +1 -1
  271. package/dist/react/primitives/composer/ComposerIf.d.ts +12 -13
  272. package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
  273. package/dist/react/primitives/composer/ComposerIf.js +16 -17
  274. package/dist/react/primitives/composer/ComposerIf.js.map +1 -1
  275. package/dist/react/primitives/composer/ComposerQueue.d.ts +16 -13
  276. package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
  277. package/dist/react/primitives/composer/ComposerQueue.js +31 -23
  278. package/dist/react/primitives/composer/ComposerQueue.js.map +1 -1
  279. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +64 -0
  280. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -0
  281. package/dist/react/primitives/generativeUI/GenerativeUI.js +91 -0
  282. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -0
  283. package/dist/react/primitives/message/MessageAttachments.d.ts +27 -26
  284. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
  285. package/dist/react/primitives/message/MessageAttachments.js +47 -52
  286. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  287. package/dist/react/primitives/message/MessageGroupedParts.d.ts +73 -66
  288. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  289. package/dist/react/primitives/message/MessageGroupedParts.js +64 -61
  290. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  291. package/dist/react/primitives/message/MessageParts.d.ts +147 -145
  292. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  293. package/dist/react/primitives/message/MessageParts.js +358 -335
  294. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  295. package/dist/react/primitives/message/MessageQuote.d.ts +11 -8
  296. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
  297. package/dist/react/primitives/message/MessageQuote.js +24 -21
  298. package/dist/react/primitives/message/MessageQuote.js.map +1 -1
  299. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +8 -4
  300. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  301. package/dist/react/primitives/messagePart/MessagePartInProgress.js +6 -3
  302. package/dist/react/primitives/messagePart/MessagePartInProgress.js.map +1 -1
  303. package/dist/react/primitives/part/PartMessages.d.ts +16 -13
  304. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  305. package/dist/react/primitives/part/PartMessages.js +45 -41
  306. package/dist/react/primitives/part/PartMessages.js.map +1 -1
  307. package/dist/react/primitives/thread/ThreadMessages.d.ts +40 -55
  308. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  309. package/dist/react/primitives/thread/ThreadMessages.js +58 -92
  310. package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
  311. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +25 -25
  312. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  313. package/dist/react/primitives/thread/ThreadSuggestions.js +39 -35
  314. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
  315. package/dist/react/primitives/threadList/ThreadListItems.d.ts +27 -26
  316. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  317. package/dist/react/primitives/threadList/ThreadListItems.js +47 -23
  318. package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -1
  319. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +10 -6
  320. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  321. package/dist/react/primitives/threadListItem/ThreadListItemTitle.js +7 -4
  322. package/dist/react/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
  323. package/dist/react/providers/AttachmentByIndexProvider.d.ts +9 -5
  324. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  325. package/dist/react/providers/AttachmentByIndexProvider.js +30 -20
  326. package/dist/react/providers/AttachmentByIndexProvider.js.map +1 -1
  327. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +8 -4
  328. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  329. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js +19 -17
  330. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js.map +1 -1
  331. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +7 -3
  332. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  333. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js +18 -11
  334. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js.map +1 -1
  335. package/dist/react/providers/MessageByIndexProvider.d.ts +7 -3
  336. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
  337. package/dist/react/providers/MessageByIndexProvider.js +25 -16
  338. package/dist/react/providers/MessageByIndexProvider.js.map +1 -1
  339. package/dist/react/providers/PartByIndexProvider.d.ts +7 -3
  340. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
  341. package/dist/react/providers/PartByIndexProvider.js +18 -11
  342. package/dist/react/providers/PartByIndexProvider.js.map +1 -1
  343. package/dist/react/providers/QueueItemByIndexProvider.d.ts +8 -4
  344. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
  345. package/dist/react/providers/QueueItemByIndexProvider.js +14 -10
  346. package/dist/react/providers/QueueItemByIndexProvider.js.map +1 -1
  347. package/dist/react/providers/ReadonlyThreadProvider.d.ts +11 -7
  348. package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
  349. package/dist/react/providers/ReadonlyThreadProvider.js +46 -42
  350. package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
  351. package/dist/react/providers/SuggestionByIndexProvider.d.ts +8 -4
  352. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  353. package/dist/react/providers/SuggestionByIndexProvider.js +14 -10
  354. package/dist/react/providers/SuggestionByIndexProvider.js.map +1 -1
  355. package/dist/react/providers/TextMessagePartProvider.d.ts +8 -4
  356. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  357. package/dist/react/providers/TextMessagePartProvider.js +29 -22
  358. package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
  359. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +8 -4
  360. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
  361. package/dist/react/providers/ThreadListItemByIndexProvider.js +22 -11
  362. package/dist/react/providers/ThreadListItemByIndexProvider.js.map +1 -1
  363. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +8 -4
  364. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  365. package/dist/react/providers/ThreadListItemRuntimeProvider.js +12 -8
  366. package/dist/react/providers/ThreadListItemRuntimeProvider.js.map +1 -1
  367. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +119 -109
  368. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  369. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +123 -129
  370. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  371. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +147 -135
  372. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  373. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +460 -515
  374. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  375. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +19 -15
  376. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  377. package/dist/react/runtimes/RuntimeAdapterProvider.js +16 -9
  378. package/dist/react/runtimes/RuntimeAdapterProvider.js.map +1 -1
  379. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +8 -4
  380. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  381. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +372 -485
  382. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  383. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +19 -13
  384. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  385. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +83 -80
  386. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  387. package/dist/react/runtimes/cloud/auiV0.d.ts +61 -58
  388. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  389. package/dist/react/runtimes/cloud/auiV0.js +80 -87
  390. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  391. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +10 -7
  392. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  393. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +101 -101
  394. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
  395. package/dist/react/runtimes/createMessageConverter.d.ts +23 -14
  396. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  397. package/dist/react/runtimes/createMessageConverter.js +43 -46
  398. package/dist/react/runtimes/createMessageConverter.js.map +1 -1
  399. package/dist/react/runtimes/external-message-converter.d.ts +40 -31
  400. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  401. package/dist/react/runtimes/external-message-converter.js +222 -296
  402. package/dist/react/runtimes/external-message-converter.js.map +1 -1
  403. package/dist/react/runtimes/useExternalStoreRuntime.d.ts +7 -3
  404. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
  405. package/dist/react/runtimes/useExternalStoreRuntime.js +18 -15
  406. package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
  407. package/dist/react/runtimes/useLocalRuntime.d.ts +41 -26
  408. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  409. package/dist/react/runtimes/useLocalRuntime.js +58 -67
  410. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  411. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +7 -3
  412. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  413. package/dist/react/runtimes/useRemoteThreadListRuntime.js +51 -62
  414. package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
  415. package/dist/react/runtimes/useToolInvocations.d.ts +39 -34
  416. package/dist/react/runtimes/useToolInvocations.d.ts.map +1 -1
  417. package/dist/react/runtimes/useToolInvocations.js +371 -481
  418. package/dist/react/runtimes/useToolInvocations.js.map +1 -1
  419. package/dist/react/types/MessagePartComponentTypes.d.ts +65 -41
  420. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  421. package/dist/react/types/MessagePartComponentTypes.js +0 -2
  422. package/dist/react/types/scopes/dataRenderers.d.ts +15 -11
  423. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
  424. package/dist/react/types/scopes/dataRenderers.js +0 -2
  425. package/dist/react/types/scopes/interactables.d.ts +44 -42
  426. package/dist/react/types/scopes/interactables.d.ts.map +1 -1
  427. package/dist/react/types/scopes/interactables.js +0 -2
  428. package/dist/react/types/scopes/tools.d.ts +16 -12
  429. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  430. package/dist/react/types/scopes/tools.js +0 -2
  431. package/dist/react/types/store-augmentation.d.ts +11 -9
  432. package/dist/react/types/store-augmentation.d.ts.map +1 -1
  433. package/dist/react/types/store-augmentation.js +0 -2
  434. package/dist/react/utils/getMessageQuote.d.ts +9 -6
  435. package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
  436. package/dist/react/utils/getMessageQuote.js +8 -5
  437. package/dist/react/utils/getMessageQuote.js.map +1 -1
  438. package/dist/react/utils/groupParts.d.ts +22 -19
  439. package/dist/react/utils/groupParts.d.ts.map +1 -1
  440. package/dist/react/utils/groupParts.js +62 -89
  441. package/dist/react/utils/groupParts.js.map +1 -1
  442. package/dist/runtime/api/assistant-runtime.d.ts +32 -28
  443. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  444. package/dist/runtime/api/assistant-runtime.js +25 -22
  445. package/dist/runtime/api/assistant-runtime.js.map +1 -1
  446. package/dist/runtime/api/attachment-runtime.d.ts +48 -45
  447. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  448. package/dist/runtime/api/attachment-runtime.js +55 -52
  449. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  450. package/dist/runtime/api/bindings.d.ts +30 -25
  451. package/dist/runtime/api/bindings.d.ts.map +1 -1
  452. package/dist/runtime/api/bindings.js +0 -2
  453. package/dist/runtime/api/composer-runtime.d.ts +184 -182
  454. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  455. package/dist/runtime/api/composer-runtime.js +239 -245
  456. package/dist/runtime/api/composer-runtime.js.map +1 -1
  457. package/dist/runtime/api/message-part-runtime.d.ts +29 -27
  458. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  459. package/dist/runtime/api/message-part-runtime.js +61 -65
  460. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  461. package/dist/runtime/api/message-runtime.d.ts +91 -80
  462. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  463. package/dist/runtime/api/message-runtime.js +169 -194
  464. package/dist/runtime/api/message-runtime.js.map +1 -1
  465. package/dist/runtime/api/paths.d.ts +57 -54
  466. package/dist/runtime/api/paths.d.ts.map +1 -1
  467. package/dist/runtime/api/paths.js +0 -2
  468. package/dist/runtime/api/thread-list-item-runtime.d.ts +68 -61
  469. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  470. package/dist/runtime/api/thread-list-item-runtime.js +85 -84
  471. package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
  472. package/dist/runtime/api/thread-list-runtime.d.ts +57 -48
  473. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  474. package/dist/runtime/api/thread-list-runtime.js +160 -147
  475. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  476. package/dist/runtime/api/thread-runtime.d.ts +278 -272
  477. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  478. package/dist/runtime/api/thread-runtime.js +244 -244
  479. package/dist/runtime/api/thread-runtime.js.map +1 -1
  480. package/dist/runtime/base/base-assistant-runtime-core.d.ts +13 -9
  481. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  482. package/dist/runtime/base/base-assistant-runtime-core.js +13 -9
  483. package/dist/runtime/base/base-assistant-runtime-core.js.map +1 -1
  484. package/dist/runtime/base/base-composer-runtime-core.d.ts +60 -57
  485. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  486. package/dist/runtime/base/base-composer-runtime-core.js +348 -392
  487. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  488. package/dist/runtime/base/base-thread-runtime-core.d.ts +89 -84
  489. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  490. package/dist/runtime/base/base-thread-runtime-core.js +349 -357
  491. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  492. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +37 -30
  493. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  494. package/dist/runtime/base/default-edit-composer-runtime-core.js +70 -77
  495. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  496. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +25 -21
  497. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  498. package/dist/runtime/base/default-thread-composer-runtime-core.js +51 -48
  499. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  500. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +12 -8
  501. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  502. package/dist/runtime/interfaces/assistant-runtime-core.js +0 -2
  503. package/dist/runtime/interfaces/composer-runtime-core.d.ts +70 -67
  504. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  505. package/dist/runtime/interfaces/composer-runtime-core.js +0 -2
  506. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +45 -39
  507. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  508. package/dist/runtime/interfaces/thread-list-runtime-core.js +0 -2
  509. package/dist/runtime/interfaces/thread-runtime-core.d.ts +149 -145
  510. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  511. package/dist/runtime/interfaces/thread-runtime-core.js +0 -2
  512. package/dist/runtime/internal.d.ts +19 -23
  513. package/dist/runtime/internal.js +18 -22
  514. package/dist/runtime/utils/auto-status.d.ts +8 -4
  515. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  516. package/dist/runtime/utils/auto-status.js +18 -22
  517. package/dist/runtime/utils/auto-status.js.map +1 -1
  518. package/dist/runtime/utils/chat-model-adapter.d.ts +34 -31
  519. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  520. package/dist/runtime/utils/chat-model-adapter.js +0 -2
  521. package/dist/runtime/utils/external-store-message.d.ts +9 -5
  522. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  523. package/dist/runtime/utils/external-store-message.js +21 -21
  524. package/dist/runtime/utils/external-store-message.js.map +1 -1
  525. package/dist/runtime/utils/message-repository.d.ts +48 -42
  526. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  527. package/dist/runtime/utils/message-repository.js +213 -267
  528. package/dist/runtime/utils/message-repository.js.map +1 -1
  529. package/dist/runtime/utils/thread-message-like.d.ts +41 -39
  530. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  531. package/dist/runtime/utils/thread-message-like.js +125 -139
  532. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  533. package/dist/runtimes/assistant-transport/utils.d.ts +4 -1
  534. package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
  535. package/dist/runtimes/assistant-transport/utils.js +9 -5
  536. package/dist/runtimes/assistant-transport/utils.js.map +1 -1
  537. package/dist/runtimes/external-store/external-store-adapter.d.ts +100 -97
  538. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  539. package/dist/runtimes/external-store/external-store-adapter.js +0 -2
  540. package/dist/runtimes/external-store/external-store-runtime-core.d.ts +9 -5
  541. package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
  542. package/dist/runtimes/external-store/external-store-runtime-core.js +16 -13
  543. package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
  544. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +46 -40
  545. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  546. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +141 -171
  547. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  548. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +53 -47
  549. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  550. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +212 -288
  551. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  552. package/dist/runtimes/external-store/thread-message-converter.d.ts +9 -5
  553. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  554. package/dist/runtimes/external-store/thread-message-converter.js +14 -11
  555. package/dist/runtimes/external-store/thread-message-converter.js.map +1 -1
  556. package/dist/runtimes/internal.d.ts +15 -19
  557. package/dist/runtimes/internal.js +13 -17
  558. package/dist/runtimes/local/local-runtime-core.d.ts +11 -7
  559. package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
  560. package/dist/runtimes/local/local-runtime-core.js +18 -18
  561. package/dist/runtimes/local/local-runtime-core.js.map +1 -1
  562. package/dist/runtimes/local/local-runtime-options.d.ts +27 -23
  563. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  564. package/dist/runtimes/local/local-runtime-options.js +0 -2
  565. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +46 -42
  566. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  567. package/dist/runtimes/local/local-thread-list-runtime-core.js +84 -83
  568. package/dist/runtimes/local/local-thread-list-runtime-core.js.map +1 -1
  569. package/dist/runtimes/local/local-thread-runtime-core.d.ts +80 -59
  570. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  571. package/dist/runtimes/local/local-thread-runtime-core.js +342 -424
  572. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  573. package/dist/runtimes/local/should-continue.d.ts +6 -2
  574. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  575. package/dist/runtimes/local/should-continue.js +7 -12
  576. package/dist/runtimes/local/should-continue.js.map +1 -1
  577. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +96 -92
  578. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  579. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +164 -176
  580. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  581. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +15 -11
  582. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  583. package/dist/runtimes/remote-thread-list/adapter/in-memory.js +33 -28
  584. package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -1
  585. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +6 -2
  586. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  587. package/dist/runtimes/remote-thread-list/empty-thread-core.js +152 -160
  588. package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
  589. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +27 -27
  590. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  591. package/dist/runtimes/remote-thread-list/optimistic-state.js +63 -73
  592. package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
  593. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +46 -43
  594. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  595. package/dist/runtimes/remote-thread-list/remote-thread-state.js +81 -91
  596. package/dist/runtimes/remote-thread-list/remote-thread-state.js.map +1 -1
  597. package/dist/runtimes/remote-thread-list/types.d.ts +65 -61
  598. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  599. package/dist/runtimes/remote-thread-list/types.js +0 -2
  600. package/dist/store/clients/chain-of-thought-client.d.ts +16 -12
  601. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  602. package/dist/store/clients/chain-of-thought-client.js +24 -15
  603. package/dist/store/clients/chain-of-thought-client.js.map +1 -1
  604. package/dist/store/clients/model-context-client.d.ts +6 -2
  605. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  606. package/dist/store/clients/model-context-client.js +32 -26
  607. package/dist/store/clients/model-context-client.js.map +1 -1
  608. package/dist/store/clients/no-op-composer-client.d.ts +8 -4
  609. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  610. package/dist/store/clients/no-op-composer-client.js +67 -63
  611. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  612. package/dist/store/clients/runtime-adapter.d.ts +8 -4
  613. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  614. package/dist/store/clients/runtime-adapter.js +33 -33
  615. package/dist/store/clients/runtime-adapter.js.map +1 -1
  616. package/dist/store/clients/suggestions.d.ts +12 -8
  617. package/dist/store/clients/suggestions.d.ts.map +1 -1
  618. package/dist/store/clients/suggestions.js +28 -32
  619. package/dist/store/clients/suggestions.js.map +1 -1
  620. package/dist/store/clients/thread-message-client.d.ts +13 -9
  621. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  622. package/dist/store/clients/thread-message-client.js +95 -105
  623. package/dist/store/clients/thread-message-client.js.map +1 -1
  624. package/dist/store/index.d.ts +18 -18
  625. package/dist/store/index.js +6 -8
  626. package/dist/store/internal.d.ts +9 -9
  627. package/dist/store/internal.js +9 -9
  628. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +9 -5
  629. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  630. package/dist/store/runtime-clients/attachment-runtime-client.js +12 -8
  631. package/dist/store/runtime-clients/attachment-runtime-client.js.map +1 -1
  632. package/dist/store/runtime-clients/composer-runtime-client.d.ts +14 -10
  633. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  634. package/dist/store/runtime-clients/composer-runtime-client.js +86 -89
  635. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  636. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +9 -5
  637. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  638. package/dist/store/runtime-clients/message-part-runtime-client.js +13 -9
  639. package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
  640. package/dist/store/runtime-clients/message-runtime-client.d.ts +12 -8
  641. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  642. package/dist/store/runtime-clients/message-runtime-client.js +66 -70
  643. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  644. package/dist/store/runtime-clients/tap-subscribable.d.ts +6 -2
  645. package/dist/store/runtime-clients/tap-subscribable.d.ts.map +1 -1
  646. package/dist/store/runtime-clients/tap-subscribable.js +14 -10
  647. package/dist/store/runtime-clients/tap-subscribable.js.map +1 -1
  648. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +9 -5
  649. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  650. package/dist/store/runtime-clients/thread-list-item-runtime-client.js +33 -38
  651. package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -1
  652. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +12 -8
  653. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  654. package/dist/store/runtime-clients/thread-list-runtime-client.js +53 -53
  655. package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
  656. package/dist/store/runtime-clients/thread-runtime-client.d.ts +9 -5
  657. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  658. package/dist/store/runtime-clients/thread-runtime-client.js +93 -85
  659. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  660. package/dist/store/scope-registration.d.ts +29 -27
  661. package/dist/store/scope-registration.d.ts.map +1 -1
  662. package/dist/store/scope-registration.js +0 -2
  663. package/dist/store/scopes/attachment.d.ts +23 -19
  664. package/dist/store/scopes/attachment.d.ts.map +1 -1
  665. package/dist/store/scopes/attachment.js +0 -2
  666. package/dist/store/scopes/chain-of-thought.d.ts +36 -33
  667. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  668. package/dist/store/scopes/chain-of-thought.js +0 -2
  669. package/dist/store/scopes/composer.d.ts +118 -115
  670. package/dist/store/scopes/composer.d.ts.map +1 -1
  671. package/dist/store/scopes/composer.js +0 -2
  672. package/dist/store/scopes/message.d.ts +81 -81
  673. package/dist/store/scopes/message.d.ts.map +1 -1
  674. package/dist/store/scopes/message.js +0 -2
  675. package/dist/store/scopes/model-context.d.ts +14 -10
  676. package/dist/store/scopes/model-context.d.ts.map +1 -1
  677. package/dist/store/scopes/model-context.js +0 -2
  678. package/dist/store/scopes/part.d.ts +42 -39
  679. package/dist/store/scopes/part.d.ts.map +1 -1
  680. package/dist/store/scopes/part.js +0 -2
  681. package/dist/store/scopes/queue-item.d.ts +18 -15
  682. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  683. package/dist/store/scopes/queue-item.js +0 -2
  684. package/dist/store/scopes/suggestion.d.ts +17 -14
  685. package/dist/store/scopes/suggestion.d.ts.map +1 -1
  686. package/dist/store/scopes/suggestion.js +0 -2
  687. package/dist/store/scopes/suggestions.d.ts +18 -14
  688. package/dist/store/scopes/suggestions.d.ts.map +1 -1
  689. package/dist/store/scopes/suggestions.js +0 -2
  690. package/dist/store/scopes/thread-list-item.d.ts +62 -56
  691. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  692. package/dist/store/scopes/thread-list-item.js +0 -2
  693. package/dist/store/scopes/thread.d.ts +151 -149
  694. package/dist/store/scopes/thread.d.ts.map +1 -1
  695. package/dist/store/scopes/thread.js +0 -2
  696. package/dist/store/scopes/threads.d.ts +36 -30
  697. package/dist/store/scopes/threads.d.ts.map +1 -1
  698. package/dist/store/scopes/threads.js +0 -2
  699. package/dist/subscribable/subscribable.d.ts +62 -58
  700. package/dist/subscribable/subscribable.d.ts.map +1 -1
  701. package/dist/subscribable/subscribable.js +196 -220
  702. package/dist/subscribable/subscribable.js.map +1 -1
  703. package/dist/tests/remote-thread-list-test-helpers.d.ts +13 -9
  704. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -1
  705. package/dist/tests/remote-thread-list-test-helpers.js +49 -42
  706. package/dist/tests/remote-thread-list-test-helpers.js.map +1 -1
  707. package/dist/types/attachment.d.ts +35 -32
  708. package/dist/types/attachment.d.ts.map +1 -1
  709. package/dist/types/attachment.js +0 -2
  710. package/dist/types/directive.d.ts +15 -13
  711. package/dist/types/directive.d.ts.map +1 -1
  712. package/dist/types/directive.js +0 -2
  713. package/dist/types/index.d.ts +7 -7
  714. package/dist/types/index.js +0 -2
  715. package/dist/types/message.d.ts +238 -214
  716. package/dist/types/message.d.ts.map +1 -1
  717. package/dist/types/message.js +6 -2
  718. package/dist/types/message.js.map +1 -1
  719. package/dist/types/quote.d.ts +6 -3
  720. package/dist/types/quote.d.ts.map +1 -1
  721. package/dist/types/quote.js +0 -2
  722. package/dist/types/trigger.d.ts +14 -10
  723. package/dist/types/trigger.d.ts.map +1 -1
  724. package/dist/types/trigger.js +0 -2
  725. package/dist/types/unsubscribe.d.ts +4 -1
  726. package/dist/types/unsubscribe.d.ts.map +1 -1
  727. package/dist/types/unsubscribe.js +0 -2
  728. package/dist/utils/composite-context-provider.d.ts +11 -8
  729. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  730. package/dist/utils/composite-context-provider.js +31 -28
  731. package/dist/utils/composite-context-provider.js.map +1 -1
  732. package/dist/utils/id.d.ts +8 -5
  733. package/dist/utils/id.d.ts.map +1 -1
  734. package/dist/utils/id.js +9 -5
  735. package/dist/utils/id.js.map +1 -1
  736. package/dist/utils/json/is-json-equal.d.ts +4 -1
  737. package/dist/utils/json/is-json-equal.d.ts.map +1 -1
  738. package/dist/utils/json/is-json-equal.js +20 -25
  739. package/dist/utils/json/is-json-equal.js.map +1 -1
  740. package/dist/utils/json/is-json.d.ts +9 -5
  741. package/dist/utils/json/is-json.d.ts.map +1 -1
  742. package/dist/utils/json/is-json.js +17 -28
  743. package/dist/utils/json/is-json.js.map +1 -1
  744. package/dist/utils/text.d.ts +6 -2
  745. package/dist/utils/text.d.ts.map +1 -1
  746. package/dist/utils/text.js +6 -3
  747. package/dist/utils/text.js.map +1 -1
  748. package/package.json +12 -12
  749. package/src/index.ts +3 -0
  750. package/src/react/index.ts +17 -0
  751. package/src/react/primitives/generativeUI/GenerativeUI.tsx +182 -0
  752. package/src/react/primitives/message/MessageParts.tsx +50 -1
  753. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +11 -7
  754. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +7 -2
  755. package/src/react/runtimes/cloud/auiV0.ts +1 -1
  756. package/src/react/types/MessagePartComponentTypes.ts +26 -0
  757. package/src/runtime/api/thread-list-item-runtime.ts +3 -3
  758. package/src/runtime/api/thread-list-runtime.ts +9 -3
  759. package/src/runtime/base/base-thread-runtime-core.ts +8 -0
  760. package/src/runtime/interfaces/thread-list-runtime-core.ts +4 -1
  761. package/src/runtime/interfaces/thread-runtime-core.ts +6 -5
  762. package/src/runtime/utils/thread-message-like.ts +11 -3
  763. package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +4 -1
  764. package/src/store/runtime-clients/thread-list-runtime-client.ts +2 -2
  765. package/src/store/scopes/thread-list-item.ts +1 -1
  766. package/src/store/scopes/threads.ts +1 -1
  767. package/src/tests/RemoteThreadListThreadListRuntimeCore-switchToThread-unarchive.test.ts +88 -0
  768. package/src/tests/external-store-thread-runtime-core.test.ts +83 -0
  769. package/src/types/index.ts +3 -0
  770. package/src/types/message.ts +49 -1
  771. package/dist/adapters/feedback.js.map +0 -1
  772. package/dist/adapters/index.d.ts.map +0 -1
  773. package/dist/adapters/index.js.map +0 -1
  774. package/dist/adapters/suggestion.js.map +0 -1
  775. package/dist/adapters/thread-history.js.map +0 -1
  776. package/dist/adapters/trigger.js.map +0 -1
  777. package/dist/index.d.ts.map +0 -1
  778. package/dist/index.js.map +0 -1
  779. package/dist/internal.d.ts.map +0 -1
  780. package/dist/internal.js.map +0 -1
  781. package/dist/model-context/registry-handles.js.map +0 -1
  782. package/dist/react/index.d.ts.map +0 -1
  783. package/dist/react/index.js.map +0 -1
  784. package/dist/react/model-context/toolbox.js.map +0 -1
  785. package/dist/react/types/MessagePartComponentTypes.js.map +0 -1
  786. package/dist/react/types/scopes/dataRenderers.js.map +0 -1
  787. package/dist/react/types/scopes/interactables.js.map +0 -1
  788. package/dist/react/types/scopes/tools.js.map +0 -1
  789. package/dist/react/types/store-augmentation.js.map +0 -1
  790. package/dist/runtime/api/bindings.js.map +0 -1
  791. package/dist/runtime/api/paths.js.map +0 -1
  792. package/dist/runtime/interfaces/assistant-runtime-core.js.map +0 -1
  793. package/dist/runtime/interfaces/composer-runtime-core.js.map +0 -1
  794. package/dist/runtime/interfaces/thread-list-runtime-core.js.map +0 -1
  795. package/dist/runtime/interfaces/thread-runtime-core.js.map +0 -1
  796. package/dist/runtime/internal.d.ts.map +0 -1
  797. package/dist/runtime/internal.js.map +0 -1
  798. package/dist/runtime/utils/chat-model-adapter.js.map +0 -1
  799. package/dist/runtimes/external-store/external-store-adapter.js.map +0 -1
  800. package/dist/runtimes/internal.d.ts.map +0 -1
  801. package/dist/runtimes/internal.js.map +0 -1
  802. package/dist/runtimes/local/local-runtime-options.js.map +0 -1
  803. package/dist/runtimes/remote-thread-list/types.js.map +0 -1
  804. package/dist/store/index.d.ts.map +0 -1
  805. package/dist/store/index.js.map +0 -1
  806. package/dist/store/internal.d.ts.map +0 -1
  807. package/dist/store/internal.js.map +0 -1
  808. package/dist/store/scope-registration.js.map +0 -1
  809. package/dist/store/scopes/attachment.js.map +0 -1
  810. package/dist/store/scopes/chain-of-thought.js.map +0 -1
  811. package/dist/store/scopes/composer.js.map +0 -1
  812. package/dist/store/scopes/message.js.map +0 -1
  813. package/dist/store/scopes/model-context.js.map +0 -1
  814. package/dist/store/scopes/part.js.map +0 -1
  815. package/dist/store/scopes/queue-item.js.map +0 -1
  816. package/dist/store/scopes/suggestion.js.map +0 -1
  817. package/dist/store/scopes/suggestions.js.map +0 -1
  818. package/dist/store/scopes/thread-list-item.js.map +0 -1
  819. package/dist/store/scopes/thread.js.map +0 -1
  820. package/dist/store/scopes/threads.js.map +0 -1
  821. package/dist/types/attachment.js.map +0 -1
  822. package/dist/types/directive.js.map +0 -1
  823. package/dist/types/index.d.ts.map +0 -1
  824. package/dist/types/index.js.map +0 -1
  825. package/dist/types/quote.js.map +0 -1
  826. package/dist/types/trigger.js.map +0 -1
  827. package/dist/types/unsubscribe.js.map +0 -1
@@ -1,263 +1,257 @@
1
- import { resource, tapState, tapEffect, tapCallback, tapRef, tapMemo, } from "@assistant-ui/tap";
2
- import { tapAssistantClientRef, attachTransformScopes, } from "@assistant-ui/store";
3
- import { toJSONSchema, toPartialJSONSchema } from "assistant-stream";
4
- import { ModelContext } from "../../store/index.js";
1
+ import { ModelContext } from "../../store/clients/model-context-client.js";
5
2
  import { buildInteractableModelContext } from "./interactable-model-context.js";
3
+ import { toJSONSchema, toPartialJSONSchema } from "assistant-stream";
4
+ import { attachTransformScopes, tapAssistantClientRef } from "@assistant-ui/store";
5
+ import { resource, tapCallback, tapEffect, tapMemo, tapRef, tapState } from "@assistant-ui/tap";
6
+ //#region src/react/client/Interactables.ts
6
7
  const PERSISTENCE_DEBOUNCE_MS = 500;
7
- export const Interactables = resource(() => {
8
- const [state, setState] = tapState(() => ({
9
- definitions: {},
10
- persistence: {},
11
- }));
12
- const clientRef = tapAssistantClientRef();
13
- const stateRef = tapRef(state);
14
- tapEffect(() => {
15
- stateRef.current = state;
16
- }, [state]);
17
- const subscribersRef = tapRef(new Set());
18
- const partialSchemaCacheRef = tapRef(new Map());
19
- const detachedStateRef = tapRef(new Map());
20
- const adapterRef = tapRef(undefined);
21
- const debounceTimerRef = tapRef(undefined);
22
- const syncSeqRef = tapRef(0);
23
- const hasPendingLocalChangeRef = tapRef(false);
24
- const flushResolversRef = tapRef([]);
25
- const dirtyIdsRef = tapRef(new Set());
26
- const runPersistence = tapCallback(async () => {
27
- const adapter = adapterRef.current;
28
- if (!adapter) {
29
- for (const resolve of flushResolversRef.current)
30
- resolve();
31
- flushResolversRef.current = [];
32
- return;
33
- }
34
- const seq = ++syncSeqRef.current;
35
- const dirtyIds = new Set(dirtyIdsRef.current);
36
- dirtyIdsRef.current.clear();
37
- hasPendingLocalChangeRef.current = true;
38
- // Snapshot before any await so unregistered definitions are still included.
39
- const exported = stateRef.current.definitions;
40
- const payload = {};
41
- for (const [id, def] of Object.entries(exported)) {
42
- payload[id] = { name: def.name, state: def.state };
43
- }
44
- setState((prev) => ({
45
- ...prev,
46
- persistence: {
47
- ...prev.persistence,
48
- ...Object.fromEntries([...dirtyIds].map((id) => [
49
- id,
50
- { isPending: true, error: undefined },
51
- ])),
52
- },
53
- }));
54
- try {
55
- await adapter.save(payload);
56
- if (syncSeqRef.current === seq) {
57
- hasPendingLocalChangeRef.current = false;
58
- setState((prev) => {
59
- const persistence = { ...prev.persistence };
60
- for (const id of dirtyIds)
61
- delete persistence[id];
62
- return { ...prev, persistence };
63
- });
64
- }
65
- }
66
- catch (e) {
67
- if (syncSeqRef.current === seq) {
68
- hasPendingLocalChangeRef.current = false;
69
- setState((prev) => ({
70
- ...prev,
71
- persistence: {
72
- ...prev.persistence,
73
- ...Object.fromEntries([...dirtyIds].map((id) => [id, { isPending: false, error: e }])),
74
- },
75
- }));
76
- }
77
- }
78
- finally {
79
- if (dirtyIdsRef.current.size > 0 && adapterRef.current) {
80
- runPersistence();
81
- }
82
- else {
83
- for (const resolve of flushResolversRef.current)
84
- resolve();
85
- flushResolversRef.current = [];
86
- }
87
- }
88
- }, []);
89
- const schedulePersistence = tapCallback((id) => {
90
- if (!adapterRef.current)
91
- return;
92
- dirtyIdsRef.current.add(id);
93
- if (debounceTimerRef.current !== undefined) {
94
- clearTimeout(debounceTimerRef.current);
95
- }
96
- debounceTimerRef.current = setTimeout(() => {
97
- debounceTimerRef.current = undefined;
98
- if (!hasPendingLocalChangeRef.current) {
99
- runPersistence();
100
- }
101
- else {
102
- debounceTimerRef.current = setTimeout(() => {
103
- debounceTimerRef.current = undefined;
104
- runPersistence();
105
- }, PERSISTENCE_DEBOUNCE_MS);
106
- }
107
- }, PERSISTENCE_DEBOUNCE_MS);
108
- }, [runPersistence]);
109
- const exportState = tapCallback(() => {
110
- const result = {};
111
- for (const [id, def] of Object.entries(stateRef.current.definitions)) {
112
- result[id] = { name: def.name, state: def.state };
113
- }
114
- return result;
115
- }, []);
116
- const importState = tapCallback((saved) => {
117
- for (const [id, entry] of Object.entries(saved)) {
118
- detachedStateRef.current.set(id, entry.state);
119
- }
120
- setState((prev) => {
121
- let changed = false;
122
- const definitions = { ...prev.definitions };
123
- for (const [id, entry] of Object.entries(saved)) {
124
- if (definitions[id]) {
125
- definitions[id] = { ...definitions[id], state: entry.state };
126
- changed = true;
127
- }
128
- }
129
- return changed ? { ...prev, definitions } : prev;
130
- });
131
- }, []);
132
- const setPersistenceAdapter = tapCallback((adapter) => {
133
- adapterRef.current = adapter;
134
- }, []);
135
- const flush = tapCallback(async () => {
136
- if (debounceTimerRef.current !== undefined) {
137
- clearTimeout(debounceTimerRef.current);
138
- debounceTimerRef.current = undefined;
139
- }
140
- if (!adapterRef.current)
141
- return;
142
- if (!hasPendingLocalChangeRef.current && dirtyIdsRef.current.size === 0)
143
- return;
144
- const p = new Promise((resolve) => {
145
- flushResolversRef.current.push(resolve);
146
- });
147
- if (!hasPendingLocalChangeRef.current) {
148
- runPersistence();
149
- }
150
- return p;
151
- }, [runPersistence]);
152
- const flushIfPending = tapCallback(() => {
153
- if (adapterRef.current && debounceTimerRef.current !== undefined) {
154
- clearTimeout(debounceTimerRef.current);
155
- debounceTimerRef.current = undefined;
156
- runPersistence();
157
- }
158
- }, [runPersistence]);
159
- const setDefState = tapCallback((id, updater) => {
160
- setState((prev) => {
161
- const existing = prev.definitions[id];
162
- if (!existing)
163
- return prev;
164
- return {
165
- ...prev,
166
- definitions: {
167
- ...prev.definitions,
168
- [id]: { ...existing, state: updater(existing.state) },
169
- },
170
- };
171
- });
172
- if (stateRef.current.definitions[id])
173
- schedulePersistence(id);
174
- }, [schedulePersistence]);
175
- const setDefSelected = tapCallback((id, selected) => {
176
- setState((prev) => {
177
- const existing = prev.definitions[id];
178
- if (!existing)
179
- return prev;
180
- return {
181
- ...prev,
182
- definitions: {
183
- ...prev.definitions,
184
- [id]: { ...existing, selected },
185
- },
186
- };
187
- });
188
- }, []);
189
- const provider = tapMemo(() => ({
190
- getModelContext: () => {
191
- const defs = stateRef.current.definitions;
192
- return (buildInteractableModelContext(defs, partialSchemaCacheRef.current, setDefState) ?? {});
193
- },
194
- subscribe: (callback) => {
195
- subscribersRef.current.add(callback);
196
- return () => {
197
- subscribersRef.current.delete(callback);
198
- };
199
- },
200
- }), [setDefState]);
201
- // biome-ignore lint/correctness/useExhaustiveDependencies: state dep triggers notification
202
- tapEffect(() => {
203
- for (const cb of subscribersRef.current)
204
- cb();
205
- }, [state]);
206
- tapEffect(() => {
207
- return clientRef.current.modelContext().register(provider);
208
- }, [clientRef, provider]);
209
- const register = tapCallback((def) => {
210
- try {
211
- const jsonSchema = toJSONSchema(def.stateSchema);
212
- partialSchemaCacheRef.current.set(def.id, toPartialJSONSchema(jsonSchema));
213
- }
214
- catch (e) {
215
- console.warn(`[Interactables] Failed to create partial schema for "${def.name}". The update tool will require all fields.`, e);
216
- }
217
- const detached = detachedStateRef.current.get(def.id);
218
- detachedStateRef.current.delete(def.id);
219
- setState((prev) => ({
220
- ...prev,
221
- definitions: {
222
- ...prev.definitions,
223
- [def.id]: {
224
- id: def.id,
225
- name: def.name,
226
- description: def.description,
227
- stateSchema: def.stateSchema,
228
- state: prev.definitions[def.id]?.state ?? detached ?? def.initialState,
229
- selected: def.selected,
230
- },
231
- },
232
- }));
233
- return () => {
234
- flushIfPending();
235
- setState((prev) => {
236
- const existing = prev.definitions[def.id];
237
- if (existing) {
238
- detachedStateRef.current.set(def.id, existing.state);
239
- }
240
- partialSchemaCacheRef.current.delete(def.id);
241
- const { [def.id]: _, ...rest } = prev.definitions;
242
- const { [def.id]: __, ...restPersistence } = prev.persistence;
243
- return { ...prev, definitions: rest, persistence: restPersistence };
244
- });
245
- };
246
- }, [flushIfPending]);
247
- return {
248
- getState: () => state,
249
- register,
250
- setState: setDefState,
251
- setSelected: setDefSelected,
252
- exportState,
253
- importState,
254
- setPersistenceAdapter,
255
- flush,
256
- };
8
+ const Interactables = resource(() => {
9
+ const [state, setState] = tapState(() => ({
10
+ definitions: {},
11
+ persistence: {}
12
+ }));
13
+ const clientRef = tapAssistantClientRef();
14
+ const stateRef = tapRef(state);
15
+ tapEffect(() => {
16
+ stateRef.current = state;
17
+ }, [state]);
18
+ const subscribersRef = tapRef(/* @__PURE__ */ new Set());
19
+ const partialSchemaCacheRef = tapRef(/* @__PURE__ */ new Map());
20
+ const detachedStateRef = tapRef(/* @__PURE__ */ new Map());
21
+ const adapterRef = tapRef(void 0);
22
+ const debounceTimerRef = tapRef(void 0);
23
+ const syncSeqRef = tapRef(0);
24
+ const hasPendingLocalChangeRef = tapRef(false);
25
+ const flushResolversRef = tapRef([]);
26
+ const dirtyIdsRef = tapRef(/* @__PURE__ */ new Set());
27
+ const runPersistence = tapCallback(async () => {
28
+ const adapter = adapterRef.current;
29
+ if (!adapter) {
30
+ for (const resolve of flushResolversRef.current) resolve();
31
+ flushResolversRef.current = [];
32
+ return;
33
+ }
34
+ const seq = ++syncSeqRef.current;
35
+ const dirtyIds = new Set(dirtyIdsRef.current);
36
+ dirtyIdsRef.current.clear();
37
+ hasPendingLocalChangeRef.current = true;
38
+ const exported = stateRef.current.definitions;
39
+ const payload = {};
40
+ for (const [id, def] of Object.entries(exported)) payload[id] = {
41
+ name: def.name,
42
+ state: def.state
43
+ };
44
+ setState((prev) => ({
45
+ ...prev,
46
+ persistence: {
47
+ ...prev.persistence,
48
+ ...Object.fromEntries([...dirtyIds].map((id) => [id, {
49
+ isPending: true,
50
+ error: void 0
51
+ }]))
52
+ }
53
+ }));
54
+ try {
55
+ await adapter.save(payload);
56
+ if (syncSeqRef.current === seq) {
57
+ hasPendingLocalChangeRef.current = false;
58
+ setState((prev) => {
59
+ const persistence = { ...prev.persistence };
60
+ for (const id of dirtyIds) delete persistence[id];
61
+ return {
62
+ ...prev,
63
+ persistence
64
+ };
65
+ });
66
+ }
67
+ } catch (e) {
68
+ if (syncSeqRef.current === seq) {
69
+ hasPendingLocalChangeRef.current = false;
70
+ setState((prev) => ({
71
+ ...prev,
72
+ persistence: {
73
+ ...prev.persistence,
74
+ ...Object.fromEntries([...dirtyIds].map((id) => [id, {
75
+ isPending: false,
76
+ error: e
77
+ }]))
78
+ }
79
+ }));
80
+ }
81
+ } finally {
82
+ if (dirtyIdsRef.current.size > 0 && adapterRef.current) runPersistence();
83
+ else {
84
+ for (const resolve of flushResolversRef.current) resolve();
85
+ flushResolversRef.current = [];
86
+ }
87
+ }
88
+ }, []);
89
+ const schedulePersistence = tapCallback((id) => {
90
+ if (!adapterRef.current) return;
91
+ dirtyIdsRef.current.add(id);
92
+ if (debounceTimerRef.current !== void 0) clearTimeout(debounceTimerRef.current);
93
+ debounceTimerRef.current = setTimeout(() => {
94
+ debounceTimerRef.current = void 0;
95
+ if (!hasPendingLocalChangeRef.current) runPersistence();
96
+ else debounceTimerRef.current = setTimeout(() => {
97
+ debounceTimerRef.current = void 0;
98
+ runPersistence();
99
+ }, PERSISTENCE_DEBOUNCE_MS);
100
+ }, PERSISTENCE_DEBOUNCE_MS);
101
+ }, [runPersistence]);
102
+ const exportState = tapCallback(() => {
103
+ const result = {};
104
+ for (const [id, def] of Object.entries(stateRef.current.definitions)) result[id] = {
105
+ name: def.name,
106
+ state: def.state
107
+ };
108
+ return result;
109
+ }, []);
110
+ const importState = tapCallback((saved) => {
111
+ for (const [id, entry] of Object.entries(saved)) detachedStateRef.current.set(id, entry.state);
112
+ setState((prev) => {
113
+ let changed = false;
114
+ const definitions = { ...prev.definitions };
115
+ for (const [id, entry] of Object.entries(saved)) if (definitions[id]) {
116
+ definitions[id] = {
117
+ ...definitions[id],
118
+ state: entry.state
119
+ };
120
+ changed = true;
121
+ }
122
+ return changed ? {
123
+ ...prev,
124
+ definitions
125
+ } : prev;
126
+ });
127
+ }, []);
128
+ const setPersistenceAdapter = tapCallback((adapter) => {
129
+ adapterRef.current = adapter;
130
+ }, []);
131
+ const flush = tapCallback(async () => {
132
+ if (debounceTimerRef.current !== void 0) {
133
+ clearTimeout(debounceTimerRef.current);
134
+ debounceTimerRef.current = void 0;
135
+ }
136
+ if (!adapterRef.current) return;
137
+ if (!hasPendingLocalChangeRef.current && dirtyIdsRef.current.size === 0) return;
138
+ const p = new Promise((resolve) => {
139
+ flushResolversRef.current.push(resolve);
140
+ });
141
+ if (!hasPendingLocalChangeRef.current) runPersistence();
142
+ return p;
143
+ }, [runPersistence]);
144
+ const flushIfPending = tapCallback(() => {
145
+ if (adapterRef.current && debounceTimerRef.current !== void 0) {
146
+ clearTimeout(debounceTimerRef.current);
147
+ debounceTimerRef.current = void 0;
148
+ runPersistence();
149
+ }
150
+ }, [runPersistence]);
151
+ const setDefState = tapCallback((id, updater) => {
152
+ setState((prev) => {
153
+ const existing = prev.definitions[id];
154
+ if (!existing) return prev;
155
+ return {
156
+ ...prev,
157
+ definitions: {
158
+ ...prev.definitions,
159
+ [id]: {
160
+ ...existing,
161
+ state: updater(existing.state)
162
+ }
163
+ }
164
+ };
165
+ });
166
+ if (stateRef.current.definitions[id]) schedulePersistence(id);
167
+ }, [schedulePersistence]);
168
+ const setDefSelected = tapCallback((id, selected) => {
169
+ setState((prev) => {
170
+ const existing = prev.definitions[id];
171
+ if (!existing) return prev;
172
+ return {
173
+ ...prev,
174
+ definitions: {
175
+ ...prev.definitions,
176
+ [id]: {
177
+ ...existing,
178
+ selected
179
+ }
180
+ }
181
+ };
182
+ });
183
+ }, []);
184
+ const provider = tapMemo(() => ({
185
+ getModelContext: () => {
186
+ const defs = stateRef.current.definitions;
187
+ return buildInteractableModelContext(defs, partialSchemaCacheRef.current, setDefState) ?? {};
188
+ },
189
+ subscribe: (callback) => {
190
+ subscribersRef.current.add(callback);
191
+ return () => {
192
+ subscribersRef.current.delete(callback);
193
+ };
194
+ }
195
+ }), [setDefState]);
196
+ tapEffect(() => {
197
+ for (const cb of subscribersRef.current) cb();
198
+ }, [state]);
199
+ tapEffect(() => {
200
+ return clientRef.current.modelContext().register(provider);
201
+ }, [clientRef, provider]);
202
+ return {
203
+ getState: () => state,
204
+ register: tapCallback((def) => {
205
+ try {
206
+ const jsonSchema = toJSONSchema(def.stateSchema);
207
+ partialSchemaCacheRef.current.set(def.id, toPartialJSONSchema(jsonSchema));
208
+ } catch (e) {
209
+ console.warn(`[Interactables] Failed to create partial schema for "${def.name}". The update tool will require all fields.`, e);
210
+ }
211
+ const detached = detachedStateRef.current.get(def.id);
212
+ detachedStateRef.current.delete(def.id);
213
+ setState((prev) => ({
214
+ ...prev,
215
+ definitions: {
216
+ ...prev.definitions,
217
+ [def.id]: {
218
+ id: def.id,
219
+ name: def.name,
220
+ description: def.description,
221
+ stateSchema: def.stateSchema,
222
+ state: prev.definitions[def.id]?.state ?? detached ?? def.initialState,
223
+ selected: def.selected
224
+ }
225
+ }
226
+ }));
227
+ return () => {
228
+ flushIfPending();
229
+ setState((prev) => {
230
+ const existing = prev.definitions[def.id];
231
+ if (existing) detachedStateRef.current.set(def.id, existing.state);
232
+ partialSchemaCacheRef.current.delete(def.id);
233
+ const { [def.id]: _, ...rest } = prev.definitions;
234
+ const { [def.id]: __, ...restPersistence } = prev.persistence;
235
+ return {
236
+ ...prev,
237
+ definitions: rest,
238
+ persistence: restPersistence
239
+ };
240
+ });
241
+ };
242
+ }, [flushIfPending]),
243
+ setState: setDefState,
244
+ setSelected: setDefSelected,
245
+ exportState,
246
+ importState,
247
+ setPersistenceAdapter,
248
+ flush
249
+ };
257
250
  });
258
251
  attachTransformScopes(Interactables, (scopes, parent) => {
259
- if (!scopes.modelContext && parent.modelContext.source === null) {
260
- scopes.modelContext = ModelContext();
261
- }
252
+ if (!scopes.modelContext && parent.modelContext.source === null) scopes.modelContext = ModelContext();
262
253
  });
254
+ //#endregion
255
+ export { Interactables };
256
+
263
257
  //# sourceMappingURL=Interactables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Interactables.js","sourceRoot":"","sources":["../../../src/react/client/Interactables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Interactables.js","names":[],"sources":["../../../src/react/client/Interactables.ts"],"sourcesContent":["import {\n resource,\n tapState,\n tapEffect,\n tapCallback,\n tapRef,\n tapMemo,\n} from \"@assistant-ui/tap\";\nimport {\n tapAssistantClientRef,\n type ClientOutput,\n attachTransformScopes,\n} from \"@assistant-ui/store\";\nimport type {\n InteractablesState,\n InteractableRegistration,\n InteractableStateSchema,\n InteractablePersistedState,\n InteractablePersistenceAdapter,\n} from \"../types/scopes/interactables\";\nimport { toJSONSchema, toPartialJSONSchema } from \"assistant-stream\";\nimport { ModelContext } from \"../../store\";\nimport { buildInteractableModelContext } from \"./interactable-model-context\";\n\nconst PERSISTENCE_DEBOUNCE_MS = 500;\n\nexport const Interactables = resource((): ClientOutput<\"interactables\"> => {\n const [state, setState] = tapState<InteractablesState>(() => ({\n definitions: {},\n persistence: {},\n }));\n\n const clientRef = tapAssistantClientRef();\n\n const stateRef = tapRef(state);\n tapEffect(() => {\n stateRef.current = state;\n }, [state]);\n\n const subscribersRef = tapRef(new Set<() => void>());\n const partialSchemaCacheRef = tapRef(\n new Map<string, InteractableStateSchema>(),\n );\n const detachedStateRef = tapRef(new Map<string, unknown>());\n\n const adapterRef = tapRef<InteractablePersistenceAdapter | undefined>(\n undefined,\n );\n const debounceTimerRef = tapRef<ReturnType<typeof setTimeout> | undefined>(\n undefined,\n );\n const syncSeqRef = tapRef(0);\n const hasPendingLocalChangeRef = tapRef(false);\n const flushResolversRef = tapRef<Array<() => void>>([]);\n const dirtyIdsRef = tapRef(new Set<string>());\n\n const runPersistence = tapCallback(async () => {\n const adapter = adapterRef.current;\n if (!adapter) {\n for (const resolve of flushResolversRef.current) resolve();\n flushResolversRef.current = [];\n return;\n }\n\n const seq = ++syncSeqRef.current;\n const dirtyIds = new Set(dirtyIdsRef.current);\n dirtyIdsRef.current.clear();\n hasPendingLocalChangeRef.current = true;\n\n // Snapshot before any await so unregistered definitions are still included.\n const exported = stateRef.current.definitions;\n const payload: InteractablePersistedState = {};\n for (const [id, def] of Object.entries(exported)) {\n payload[id] = { name: def.name, state: def.state };\n }\n\n setState((prev) => ({\n ...prev,\n persistence: {\n ...prev.persistence,\n ...Object.fromEntries(\n [...dirtyIds].map((id) => [\n id,\n { isPending: true, error: undefined },\n ]),\n ),\n },\n }));\n\n try {\n await adapter.save(payload);\n if (syncSeqRef.current === seq) {\n hasPendingLocalChangeRef.current = false;\n setState((prev) => {\n const persistence = { ...prev.persistence };\n for (const id of dirtyIds) delete persistence[id];\n return { ...prev, persistence };\n });\n }\n } catch (e) {\n if (syncSeqRef.current === seq) {\n hasPendingLocalChangeRef.current = false;\n setState((prev) => ({\n ...prev,\n persistence: {\n ...prev.persistence,\n ...Object.fromEntries(\n [...dirtyIds].map((id) => [id, { isPending: false, error: e }]),\n ),\n },\n }));\n }\n } finally {\n if (dirtyIdsRef.current.size > 0 && adapterRef.current) {\n runPersistence();\n } else {\n for (const resolve of flushResolversRef.current) resolve();\n flushResolversRef.current = [];\n }\n }\n }, []);\n\n const schedulePersistence = tapCallback(\n (id: string) => {\n if (!adapterRef.current) return;\n dirtyIdsRef.current.add(id);\n if (debounceTimerRef.current !== undefined) {\n clearTimeout(debounceTimerRef.current);\n }\n debounceTimerRef.current = setTimeout(() => {\n debounceTimerRef.current = undefined;\n if (!hasPendingLocalChangeRef.current) {\n runPersistence();\n } else {\n debounceTimerRef.current = setTimeout(() => {\n debounceTimerRef.current = undefined;\n runPersistence();\n }, PERSISTENCE_DEBOUNCE_MS);\n }\n }, PERSISTENCE_DEBOUNCE_MS);\n },\n [runPersistence],\n );\n\n const exportState = tapCallback((): InteractablePersistedState => {\n const result: InteractablePersistedState = {};\n for (const [id, def] of Object.entries(stateRef.current.definitions)) {\n result[id] = { name: def.name, state: def.state };\n }\n return result;\n }, []);\n\n const importState = tapCallback((saved: InteractablePersistedState) => {\n for (const [id, entry] of Object.entries(saved)) {\n detachedStateRef.current.set(id, entry.state);\n }\n setState((prev) => {\n let changed = false;\n const definitions = { ...prev.definitions };\n for (const [id, entry] of Object.entries(saved)) {\n if (definitions[id]) {\n definitions[id] = { ...definitions[id], state: entry.state };\n changed = true;\n }\n }\n return changed ? { ...prev, definitions } : prev;\n });\n }, []);\n\n const setPersistenceAdapter = tapCallback(\n (adapter: InteractablePersistenceAdapter | undefined) => {\n adapterRef.current = adapter;\n },\n [],\n );\n\n const flush = tapCallback(async () => {\n if (debounceTimerRef.current !== undefined) {\n clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = undefined;\n }\n if (!adapterRef.current) return;\n if (!hasPendingLocalChangeRef.current && dirtyIdsRef.current.size === 0)\n return;\n const p = new Promise<void>((resolve) => {\n flushResolversRef.current.push(resolve);\n });\n if (!hasPendingLocalChangeRef.current) {\n runPersistence();\n }\n return p;\n }, [runPersistence]);\n\n const flushIfPending = tapCallback(() => {\n if (adapterRef.current && debounceTimerRef.current !== undefined) {\n clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = undefined;\n runPersistence();\n }\n }, [runPersistence]);\n\n const setDefState = tapCallback(\n (id: string, updater: (prev: unknown) => unknown) => {\n setState((prev) => {\n const existing = prev.definitions[id];\n if (!existing) return prev;\n return {\n ...prev,\n definitions: {\n ...prev.definitions,\n [id]: { ...existing, state: updater(existing.state) },\n },\n };\n });\n if (stateRef.current.definitions[id]) schedulePersistence(id);\n },\n [schedulePersistence],\n );\n\n const setDefSelected = tapCallback((id: string, selected: boolean) => {\n setState((prev) => {\n const existing = prev.definitions[id];\n if (!existing) return prev;\n return {\n ...prev,\n definitions: {\n ...prev.definitions,\n [id]: { ...existing, selected },\n },\n };\n });\n }, []);\n\n const provider = tapMemo(\n () => ({\n getModelContext: () => {\n const defs = stateRef.current.definitions;\n return (\n buildInteractableModelContext(\n defs,\n partialSchemaCacheRef.current,\n setDefState,\n ) ?? {}\n );\n },\n subscribe: (callback: () => void) => {\n subscribersRef.current.add(callback);\n return () => {\n subscribersRef.current.delete(callback);\n };\n },\n }),\n [setDefState],\n );\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: state dep triggers notification\n tapEffect(() => {\n for (const cb of subscribersRef.current) cb();\n }, [state]);\n\n tapEffect(() => {\n return clientRef.current!.modelContext().register(provider);\n }, [clientRef, provider]);\n\n const register = tapCallback(\n (def: InteractableRegistration) => {\n try {\n const jsonSchema = toJSONSchema(def.stateSchema);\n partialSchemaCacheRef.current.set(\n def.id,\n toPartialJSONSchema(jsonSchema),\n );\n } catch (e) {\n console.warn(\n `[Interactables] Failed to create partial schema for \"${def.name}\". The update tool will require all fields.`,\n e,\n );\n }\n\n const detached = detachedStateRef.current.get(def.id);\n detachedStateRef.current.delete(def.id);\n\n setState((prev) => ({\n ...prev,\n definitions: {\n ...prev.definitions,\n [def.id]: {\n id: def.id,\n name: def.name,\n description: def.description,\n stateSchema: def.stateSchema,\n state:\n prev.definitions[def.id]?.state ?? detached ?? def.initialState,\n selected: def.selected,\n },\n },\n }));\n\n return () => {\n flushIfPending();\n setState((prev) => {\n const existing = prev.definitions[def.id];\n if (existing) {\n detachedStateRef.current.set(def.id, existing.state);\n }\n partialSchemaCacheRef.current.delete(def.id);\n const { [def.id]: _, ...rest } = prev.definitions;\n const { [def.id]: __, ...restPersistence } = prev.persistence;\n return { ...prev, definitions: rest, persistence: restPersistence };\n });\n };\n },\n [flushIfPending],\n );\n\n return {\n getState: () => state,\n register,\n setState: setDefState,\n setSelected: setDefSelected,\n exportState,\n importState,\n setPersistenceAdapter,\n flush,\n };\n});\n\nattachTransformScopes(Interactables, (scopes, parent) => {\n if (!scopes.modelContext && parent.modelContext.source === null) {\n scopes.modelContext = ModelContext();\n }\n});\n"],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import { type ResourceElement } from "@assistant-ui/tap";
2
- import { type ClientOutput } from "@assistant-ui/store";
3
- import type { McpAppResourceOutput } from "../types/scopes/tools.js";
4
- import type { Toolkit } from "../model-context/toolbox.js";
5
- export type { McpAppResourceOutput };
1
+ import { McpAppResourceOutput } from "../types/scopes/tools.js";
2
+ import { Toolkit } from "../model-context/toolbox.js";
3
+ import { ClientOutput } from "@assistant-ui/store";
4
+ import { ResourceElement } from "@assistant-ui/tap";
5
+
6
+ //#region src/react/client/Tools.d.ts
6
7
  /**
7
8
  * Registers tools with model context and installs tool-call renderers.
8
9
  *
@@ -11,15 +12,13 @@ export type { McpAppResourceOutput };
11
12
  * context, while each tool renderer is registered with the tools scope for
12
13
  * message rendering.
13
14
  */
14
- export declare const Tools: (props: {
15
- /** Tools to expose to the model and optional renderers to install. */
16
- toolkit?: Toolkit;
17
- /** Optional MCP app resource whose tools should be merged into context. */
18
- mcpApp?: ResourceElement<McpAppResourceOutput> | undefined;
15
+ declare const Tools: (props: {
16
+ /** Tools to expose to the model and optional renderers to install. */toolkit?: Toolkit; /** Optional MCP app resource whose tools should be merged into context. */
17
+ mcpApp?: ResourceElement<McpAppResourceOutput> | undefined;
19
18
  }) => ResourceElement<ClientOutput<"tools">, {
20
- /** Tools to expose to the model and optional renderers to install. */
21
- toolkit?: Toolkit;
22
- /** Optional MCP app resource whose tools should be merged into context. */
23
- mcpApp?: ResourceElement<McpAppResourceOutput> | undefined;
19
+ /** Tools to expose to the model and optional renderers to install. */toolkit?: Toolkit; /** Optional MCP app resource whose tools should be merged into context. */
20
+ mcpApp?: ResourceElement<McpAppResourceOutput> | undefined;
24
21
  }>;
22
+ //#endregion
23
+ export { type McpAppResourceOutput, Tools };
25
24
  //# sourceMappingURL=Tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tools.d.ts","sourceRoot":"","sources":["../../../src/react/client/Tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,oBAAoB,EAAc,iCAA8B;AAE9E,OAAO,KAAK,EAAE,OAAO,EAAE,oCAAiC;AAIxD,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAErC;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK;IAKd,sEAAsE;cAC5D,OAAO;IACjB,2EAA2E;aAClE,eAAe,CAAC,oBAAoB,CAAC,GAAG,SAAS;;IAH1D,sEAAsE;cAC5D,OAAO;IACjB,2EAA2E;aAClE,eAAe,CAAC,oBAAoB,CAAC,GAAG,SAAS;EAqF7D,CAAC"}
1
+ {"version":3,"file":"Tools.d.ts","names":[],"sources":["../../../src/react/client/Tools.ts"],"mappings":";;;;;;;AA+BA;;;;;;;cAAa,KAAA,GAAK,KAAA;EAQW,gFAFf,OAAA;WAED,eAAA,CAAgB,oBAAA;AAAA;kFAFf,OAAA;WAED,eAAA,CAAgB,oBAAA;AAAA"}