@assistant-ui/core 0.3.20 → 0.3.21

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 (905) hide show
  1. package/dist/adapters/attachment.d.ts +42 -34
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/attachment.js +51 -21
  4. package/dist/adapters/attachment.js.map +1 -1
  5. package/dist/adapters/directive-formatter.d.ts +1 -3
  6. package/dist/adapters/directive-formatter.d.ts.map +1 -1
  7. package/dist/adapters/feedback.d.ts +6 -7
  8. package/dist/adapters/feedback.d.ts.map +1 -1
  9. package/dist/adapters/index.d.ts +14 -9
  10. package/dist/adapters/index.d.ts.map +1 -0
  11. package/dist/adapters/index.js +1 -1
  12. package/dist/adapters/speech.d.ts +57 -58
  13. package/dist/adapters/speech.d.ts.map +1 -1
  14. package/dist/adapters/speech.js +16 -2
  15. package/dist/adapters/speech.js.map +1 -1
  16. package/dist/adapters/suggestion.d.ts +14 -16
  17. package/dist/adapters/suggestion.d.ts.map +1 -1
  18. package/dist/adapters/thread-history.d.ts +54 -51
  19. package/dist/adapters/thread-history.d.ts.map +1 -1
  20. package/dist/adapters/trigger.d.ts +7 -9
  21. package/dist/adapters/trigger.d.ts.map +1 -1
  22. package/dist/adapters/voice.d.ts +46 -40
  23. package/dist/adapters/voice.d.ts.map +1 -1
  24. package/dist/adapters/voice.js +17 -3
  25. package/dist/adapters/voice.js.map +1 -1
  26. package/dist/index.d.ts +70 -56
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +6 -6
  29. package/dist/index.js.map +1 -1
  30. package/dist/internal/duplicate-detection.d.ts +0 -2
  31. package/dist/internal/duplicate-detection.d.ts.map +1 -1
  32. package/dist/internal.d.ts +27 -58
  33. package/dist/internal.d.ts.map +1 -0
  34. package/dist/internal.js +8 -6
  35. package/dist/model-context/frame/host.d.ts +19 -21
  36. package/dist/model-context/frame/host.d.ts.map +1 -1
  37. package/dist/model-context/frame/host.js +3 -1
  38. package/dist/model-context/frame/host.js.map +1 -1
  39. package/dist/model-context/frame/provider.d.ts +27 -28
  40. package/dist/model-context/frame/provider.d.ts.map +1 -1
  41. package/dist/model-context/frame/provider.js +6 -0
  42. package/dist/model-context/frame/provider.js.map +1 -1
  43. package/dist/model-context/frame/types.d.ts +19 -21
  44. package/dist/model-context/frame/types.d.ts.map +1 -1
  45. package/dist/model-context/frame/validate.d.ts +3 -0
  46. package/dist/model-context/frame/validate.d.ts.map +1 -0
  47. package/dist/model-context/frame/validate.js +26 -0
  48. package/dist/model-context/frame/validate.js.map +1 -0
  49. package/dist/model-context/interactable-composer-metadata.d.ts +42 -29
  50. package/dist/model-context/interactable-composer-metadata.d.ts.map +1 -1
  51. package/dist/model-context/interactable-composer-metadata.js +30 -6
  52. package/dist/model-context/interactable-composer-metadata.js.map +1 -1
  53. package/dist/model-context/registry-handles.d.ts +6 -8
  54. package/dist/model-context/registry-handles.d.ts.map +1 -1
  55. package/dist/model-context/registry.d.ts +14 -16
  56. package/dist/model-context/registry.d.ts.map +1 -1
  57. package/dist/model-context/tool-call-text.d.ts +13 -14
  58. package/dist/model-context/tool-call-text.d.ts.map +1 -1
  59. package/dist/model-context/tool.d.ts +10 -11
  60. package/dist/model-context/tool.d.ts.map +1 -1
  61. package/dist/model-context/types.d.ts +32 -34
  62. package/dist/model-context/types.d.ts.map +1 -1
  63. package/dist/react/AssistantProvider.d.ts +6 -8
  64. package/dist/react/AssistantProvider.d.ts.map +1 -1
  65. package/dist/react/AssistantRuntimeProvider.d.ts +23 -25
  66. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  67. package/dist/react/RuntimeAdapter.d.ts +2 -5
  68. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  69. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +24 -18
  70. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  71. package/dist/react/adapters/LocalStorageThreadListAdapter.js +58 -25
  72. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  73. package/dist/react/adapters/TitleGenerationAdapter.d.ts +2 -4
  74. package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
  75. package/dist/react/client/AdaptedRemoteThread.d.ts +5 -7
  76. package/dist/react/client/AdaptedRemoteThread.d.ts.map +1 -1
  77. package/dist/react/client/DataRenderers.d.ts +1 -3
  78. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  79. package/dist/react/client/InMemoryThreadList.d.ts +6 -8
  80. package/dist/react/client/InMemoryThreadList.d.ts.map +1 -1
  81. package/dist/react/client/Interactables.d.ts +2 -4
  82. package/dist/react/client/Interactables.d.ts.map +1 -1
  83. package/dist/react/client/Interactables.js +306 -101
  84. package/dist/react/client/Interactables.js.map +1 -1
  85. package/dist/react/client/RemoteThreadList.d.ts +32 -34
  86. package/dist/react/client/RemoteThreadList.d.ts.map +1 -1
  87. package/dist/react/client/RemoteThreadList.js +2 -1
  88. package/dist/react/client/RemoteThreadList.js.map +1 -1
  89. package/dist/react/client/Tools.d.ts +9 -11
  90. package/dist/react/client/Tools.d.ts.map +1 -1
  91. package/dist/react/client/Tools.js +4 -8
  92. package/dist/react/client/Tools.js.map +1 -1
  93. package/dist/react/client/interactable-model-context.d.ts +9 -10
  94. package/dist/react/client/interactable-model-context.d.ts.map +1 -1
  95. package/dist/react/client/interactable-model-context.js +32 -22
  96. package/dist/react/client/interactable-model-context.js.map +1 -1
  97. package/dist/react/index.d.ts +160 -122
  98. package/dist/react/index.d.ts.map +1 -0
  99. package/dist/react/index.js +5 -5
  100. package/dist/react/interactables-legacy/Interactables.d.ts +1 -3
  101. package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
  102. package/dist/react/interactables-legacy/Interactables.js +15 -8
  103. package/dist/react/interactables-legacy/Interactables.js.map +1 -1
  104. package/dist/react/interactables-legacy/interactable-model-context.d.ts +6 -8
  105. package/dist/react/interactables-legacy/interactable-model-context.d.ts.map +1 -1
  106. package/dist/react/interactables-legacy/interactable-model-context.js +13 -14
  107. package/dist/react/interactables-legacy/interactable-model-context.js.map +1 -1
  108. package/dist/react/interactables-legacy/scopes.d.ts +33 -36
  109. package/dist/react/interactables-legacy/scopes.d.ts.map +1 -1
  110. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts +6 -8
  111. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts.map +1 -1
  112. package/dist/react/interactables-legacy/useInteractableState.d.ts +6 -7
  113. package/dist/react/interactables-legacy/useInteractableState.d.ts.map +1 -1
  114. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts +23 -13
  115. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts.map +1 -1
  116. package/dist/react/interactables-shared/useInteractablePersistenceQueue.js +54 -25
  117. package/dist/react/interactables-shared/useInteractablePersistenceQueue.js.map +1 -1
  118. package/dist/react/model-context/define-mcp-toolkit.d.ts +11 -13
  119. package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -1
  120. package/dist/react/model-context/define-toolkit.d.ts +12 -4
  121. package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
  122. package/dist/react/model-context/external-tool.d.ts +0 -2
  123. package/dist/react/model-context/external-tool.d.ts.map +1 -1
  124. package/dist/react/model-context/human-tool.d.ts +0 -2
  125. package/dist/react/model-context/human-tool.d.ts.map +1 -1
  126. package/dist/react/model-context/interactableTool.d.ts +23 -25
  127. package/dist/react/model-context/interactableTool.d.ts.map +1 -1
  128. package/dist/react/model-context/makeAssistantDataUI.d.ts +4 -6
  129. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
  130. package/dist/react/model-context/makeAssistantTool.d.ts +4 -6
  131. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  132. package/dist/react/model-context/makeAssistantToolUI.d.ts +4 -6
  133. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  134. package/dist/react/model-context/provider-tool.d.ts +3 -4
  135. package/dist/react/model-context/provider-tool.d.ts.map +1 -1
  136. package/dist/react/model-context/stub-tool.d.ts +0 -2
  137. package/dist/react/model-context/stub-tool.d.ts.map +1 -1
  138. package/dist/react/model-context/toolbox.d.ts +37 -24
  139. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  140. package/dist/react/model-context/useAssistantContext.d.ts +2 -5
  141. package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
  142. package/dist/react/model-context/useAssistantDataUI.d.ts +5 -7
  143. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
  144. package/dist/react/model-context/useAssistantInstructions.d.ts +2 -5
  145. package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
  146. package/dist/react/model-context/useAssistantTool.d.ts +8 -11
  147. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  148. package/dist/react/model-context/useAssistantToolUI.d.ts +11 -13
  149. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  150. package/dist/react/model-context/useAuiToolOverrides.d.ts +2 -3
  151. package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -1
  152. package/dist/react/model-context/useInlineRender.d.ts +2 -4
  153. package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
  154. package/dist/react/model-context/useInteractable.d.ts +37 -36
  155. package/dist/react/model-context/useInteractable.d.ts.map +1 -1
  156. package/dist/react/model-context/useInteractableState.d.ts +10 -8
  157. package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
  158. package/dist/react/model-context/useInteractableVersions.d.ts +3 -5
  159. package/dist/react/model-context/useInteractableVersions.d.ts.map +1 -1
  160. package/dist/react/model-context/useToolArgsStatus.d.ts +5 -6
  161. package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
  162. package/dist/react/primitive-hooks/useActionBarCopy.d.ts +6 -8
  163. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  164. package/dist/react/primitive-hooks/useActionBarEdit.d.ts +2 -4
  165. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
  166. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +4 -6
  167. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
  168. package/dist/react/primitive-hooks/useActionBarReload.d.ts +2 -4
  169. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
  170. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +2 -4
  171. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
  172. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +2 -4
  173. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
  174. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +2 -4
  175. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
  176. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +2 -4
  177. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
  178. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +3 -5
  179. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
  180. package/dist/react/primitive-hooks/useComposerCancel.d.ts +2 -4
  181. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
  182. package/dist/react/primitive-hooks/useComposerDictate.d.ts +2 -4
  183. package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
  184. package/dist/react/primitive-hooks/useComposerSend.d.ts +3 -5
  185. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  186. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +1 -3
  187. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
  188. package/dist/react/primitive-hooks/useEditComposerSend.d.ts +2 -4
  189. package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
  190. package/dist/react/primitive-hooks/useMessageBranching.d.ts +4 -6
  191. package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
  192. package/dist/react/primitive-hooks/useMessageError.d.ts +0 -2
  193. package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
  194. package/dist/react/primitive-hooks/useMessageReload.d.ts +2 -4
  195. package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
  196. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +6 -8
  197. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
  198. package/dist/react/primitive-hooks/useSuggestionTrigger.js +4 -4
  199. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
  200. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +0 -2
  201. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
  202. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +0 -2
  203. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
  204. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +1 -3
  205. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
  206. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +1 -3
  207. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
  208. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +1 -3
  209. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
  210. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +1 -3
  211. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
  212. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +2 -4
  213. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
  214. package/dist/react/primitive-hooks/useThreadListNew.d.ts +1 -3
  215. package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
  216. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts +0 -2
  217. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts.map +1 -1
  218. package/dist/react/primitive-hooks/useThreadMessages.d.ts +1 -3
  219. package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
  220. package/dist/react/primitive-hooks/useVoice.d.ts +5 -7
  221. package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
  222. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +25 -26
  223. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  224. package/dist/react/primitives/composer/ComposerAttachments.d.ts +22 -23
  225. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  226. package/dist/react/primitives/composer/ComposerIf.d.ts +10 -9
  227. package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
  228. package/dist/react/primitives/composer/ComposerQueue.d.ts +11 -14
  229. package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
  230. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +26 -28
  231. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -1
  232. package/dist/react/primitives/generativeUI/GenerativeUI.js +16 -6
  233. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  234. package/dist/react/primitives/message/MessageAttachments.d.ts +26 -23
  235. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
  236. package/dist/react/primitives/message/MessageAttachments.js +14 -15
  237. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  238. package/dist/react/primitives/message/MessageGroupedParts.d.ts +120 -117
  239. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  240. package/dist/react/primitives/message/MessageGroupedParts.js +3 -3
  241. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  242. package/dist/react/primitives/message/MessageParts.d.ts +199 -185
  243. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  244. package/dist/react/primitives/message/MessageParts.js +124 -82
  245. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  246. package/dist/react/primitives/message/MessageQuote.d.ts +6 -8
  247. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
  248. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +2 -4
  249. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  250. package/dist/react/primitives/part/PartMessages.d.ts +13 -15
  251. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  252. package/dist/react/primitives/thread/ThreadMessages.d.ts +54 -56
  253. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  254. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +20 -21
  255. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  256. package/dist/react/primitives/thread/ThreadSuggestions.js +24 -5
  257. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
  258. package/dist/react/primitives/threadList/ThreadListItems.d.ts +22 -23
  259. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  260. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +4 -6
  261. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  262. package/dist/react/providers/AttachmentByIndexProvider.d.ts +3 -5
  263. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  264. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +3 -5
  265. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  266. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +2 -4
  267. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  268. package/dist/react/providers/MessageByIdProvider.d.ts +2 -4
  269. package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
  270. package/dist/react/providers/MessageByIndexProvider.d.ts +2 -4
  271. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
  272. package/dist/react/providers/PartByIndexProvider.d.ts +2 -4
  273. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
  274. package/dist/react/providers/QueueItemByIndexProvider.d.ts +2 -4
  275. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
  276. package/dist/react/providers/ReadonlyThreadProvider.d.ts +5 -7
  277. package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
  278. package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
  279. package/dist/react/providers/SuggestionByIndexProvider.d.ts +2 -4
  280. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  281. package/dist/react/providers/TextMessagePartProvider.d.ts +3 -5
  282. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  283. package/dist/react/providers/TextMessagePartProvider.js +5 -1
  284. package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
  285. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +3 -5
  286. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
  287. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +3 -6
  288. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  289. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +209 -219
  290. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  291. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +53 -39
  292. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  293. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +185 -196
  294. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  295. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +13 -4
  296. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  297. package/dist/react/runtimes/RemoteThreadResource.d.ts +14 -19
  298. package/dist/react/runtimes/RemoteThreadResource.d.ts.map +1 -1
  299. package/dist/react/runtimes/RemoteThreadResource.js +3 -1
  300. package/dist/react/runtimes/RemoteThreadResource.js.map +1 -1
  301. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +8 -9
  302. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  303. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts +9 -11
  304. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts.map +1 -1
  305. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts +4 -5
  306. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts.map +1 -1
  307. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js +9 -2
  308. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js.map +1 -1
  309. package/dist/react/runtimes/assistant-transport/runManager.d.ts +7 -9
  310. package/dist/react/runtimes/assistant-transport/runManager.d.ts.map +1 -1
  311. package/dist/react/runtimes/assistant-transport/runManager.js +4 -1
  312. package/dist/react/runtimes/assistant-transport/runManager.js.map +1 -1
  313. package/dist/react/runtimes/assistant-transport/types.d.ts +106 -100
  314. package/dist/react/runtimes/assistant-transport/types.d.ts.map +1 -1
  315. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts +3 -5
  316. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  317. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js +17 -6
  318. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  319. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts +2 -4
  320. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts.map +1 -1
  321. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts +1 -3
  322. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts.map +1 -1
  323. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +5 -7
  324. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  325. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +410 -213
  326. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  327. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +14 -16
  328. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  329. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +8 -4
  330. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  331. package/dist/react/runtimes/cloud/auiV0.d.ts +136 -123
  332. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  333. package/dist/react/runtimes/cloud/auiV0.js +60 -9
  334. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  335. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts +9 -10
  336. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts.map +1 -1
  337. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts +4 -5
  338. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts.map +1 -1
  339. package/dist/react/runtimes/cloud/sdkIdentity.d.ts +1 -3
  340. package/dist/react/runtimes/cloud/sdkIdentity.d.ts.map +1 -1
  341. package/dist/react/runtimes/cloud/sdkIdentity.js +1 -1
  342. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +2 -4
  343. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  344. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts +8 -9
  345. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  346. package/dist/react/runtimes/createMessageConverter.d.ts +14 -17
  347. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  348. package/dist/react/runtimes/createMessageConverter.js.map +1 -1
  349. package/dist/react/runtimes/createRuntimeExtras.d.ts +11 -13
  350. package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
  351. package/dist/react/runtimes/external-message-converter.d.ts +14 -18
  352. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  353. package/dist/react/runtimes/external-store-history-copy.d.ts +25 -0
  354. package/dist/react/runtimes/external-store-history-copy.d.ts.map +1 -0
  355. package/dist/react/runtimes/external-store-history-copy.js +148 -0
  356. package/dist/react/runtimes/external-store-history-copy.js.map +1 -0
  357. package/dist/react/runtimes/useExternalStoreRuntime.d.ts +2 -4
  358. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
  359. package/dist/react/runtimes/useExternalStoreRuntime.js +72 -35
  360. package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
  361. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +1 -3
  362. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
  363. package/dist/react/runtimes/useLocalRuntime.d.ts +26 -37
  364. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  365. package/dist/react/runtimes/useLocalRuntime.js +142 -34
  366. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  367. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +2 -4
  368. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  369. package/dist/react/runtimes/useRuntimeAdapters.d.ts +1 -3
  370. package/dist/react/runtimes/useRuntimeAdapters.d.ts.map +1 -1
  371. package/dist/react/runtimes/useStreamingTiming.d.ts +3 -5
  372. package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
  373. package/dist/react/types/MessagePartComponentTypes.d.ts +46 -43
  374. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  375. package/dist/react/types/scopes/dataRenderers.d.ts +8 -11
  376. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
  377. package/dist/react/types/scopes/interactables.d.ts +50 -49
  378. package/dist/react/types/scopes/interactables.d.ts.map +1 -1
  379. package/dist/react/types/scopes/tools.d.ts +17 -19
  380. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  381. package/dist/react/types/store-augmentation.d.ts +10 -11
  382. package/dist/react/types/store-augmentation.d.ts.map +1 -1
  383. package/dist/react/utils/getMessageQuote.d.ts +5 -6
  384. package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
  385. package/dist/react/utils/groupParts.d.ts +28 -29
  386. package/dist/react/utils/groupParts.d.ts.map +1 -1
  387. package/dist/react/utils/useJSONEqual.d.ts +1 -3
  388. package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
  389. package/dist/react/utils/useJSONSchemaDependency.d.ts +2 -4
  390. package/dist/react/utils/useJSONSchemaDependency.d.ts.map +1 -1
  391. package/dist/runtime/api/assistant-runtime.d.ts +26 -28
  392. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  393. package/dist/runtime/api/attachment-runtime.d.ts +46 -43
  394. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  395. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  396. package/dist/runtime/api/bindings.d.ts +31 -30
  397. package/dist/runtime/api/bindings.d.ts.map +1 -1
  398. package/dist/runtime/api/composer-runtime.d.ts +207 -193
  399. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  400. package/dist/runtime/api/composer-runtime.js +4 -0
  401. package/dist/runtime/api/composer-runtime.js.map +1 -1
  402. package/dist/runtime/api/message-part-runtime.d.ts +28 -26
  403. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  404. package/dist/runtime/api/message-part-runtime.js +22 -0
  405. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  406. package/dist/runtime/api/message-runtime.d.ts +87 -84
  407. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  408. package/dist/runtime/api/message-runtime.js +1 -1
  409. package/dist/runtime/api/message-runtime.js.map +1 -1
  410. package/dist/runtime/api/paths.d.ts +48 -50
  411. package/dist/runtime/api/paths.d.ts.map +1 -1
  412. package/dist/runtime/api/thread-list-item-runtime.d.ts +64 -66
  413. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  414. package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
  415. package/dist/runtime/api/thread-list-runtime.d.ts +73 -76
  416. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  417. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  418. package/dist/runtime/api/thread-runtime.d.ts +299 -300
  419. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  420. package/dist/runtime/api/thread-runtime.js +2 -1
  421. package/dist/runtime/api/thread-runtime.js.map +1 -1
  422. package/dist/runtime/base/base-assistant-runtime-core.d.ts +8 -10
  423. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  424. package/dist/runtime/base/base-composer-runtime-core.d.ts +149 -99
  425. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  426. package/dist/runtime/base/base-composer-runtime-core.js +400 -122
  427. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  428. package/dist/runtime/base/base-thread-runtime-core.d.ts +120 -108
  429. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  430. package/dist/runtime/base/base-thread-runtime-core.js +109 -41
  431. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  432. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +29 -29
  433. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  434. package/dist/runtime/base/default-edit-composer-runtime-core.js +10 -1
  435. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  436. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +27 -29
  437. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  438. package/dist/runtime/base/default-thread-composer-runtime-core.js +21 -6
  439. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  440. package/dist/runtime/branch/external-thread-branch-adapter.d.ts +14 -16
  441. package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
  442. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +7 -9
  443. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  444. package/dist/runtime/interfaces/composer-runtime-core.d.ts +88 -72
  445. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  446. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +63 -65
  447. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  448. package/dist/runtime/interfaces/thread-runtime-core.d.ts +210 -197
  449. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  450. package/dist/runtime/internal.d.ts +25 -20
  451. package/dist/runtime/internal.d.ts.map +1 -0
  452. package/dist/runtime/queue/external-thread-queue-adapter.d.ts +35 -37
  453. package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
  454. package/dist/runtime/queue/message-queue.d.ts +29 -31
  455. package/dist/runtime/queue/message-queue.d.ts.map +1 -1
  456. package/dist/runtime/queue/message-queue.js +1 -1
  457. package/dist/runtime/queue/queue-item.d.ts +5 -7
  458. package/dist/runtime/queue/queue-item.d.ts.map +1 -1
  459. package/dist/runtime/utils/abortable-thread-load.d.ts +7 -8
  460. package/dist/runtime/utils/abortable-thread-load.d.ts.map +1 -1
  461. package/dist/runtime/utils/attachment-add-operations.d.ts +13 -11
  462. package/dist/runtime/utils/attachment-add-operations.d.ts.map +1 -1
  463. package/dist/runtime/utils/attachment-add-operations.js +24 -2
  464. package/dist/runtime/utils/attachment-add-operations.js.map +1 -1
  465. package/dist/runtime/utils/attachment-send-operations.d.ts +12 -0
  466. package/dist/runtime/utils/attachment-send-operations.d.ts.map +1 -0
  467. package/dist/runtime/utils/attachment-send-operations.js +34 -0
  468. package/dist/runtime/utils/attachment-send-operations.js.map +1 -0
  469. package/dist/runtime/utils/auto-status.d.ts +4 -5
  470. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  471. package/dist/runtime/utils/auto-status.js +3 -5
  472. package/dist/runtime/utils/auto-status.js.map +1 -1
  473. package/dist/runtime/utils/chat-model-adapter.d.ts +26 -27
  474. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  475. package/dist/runtime/utils/external-message-conversion.d.ts +32 -32
  476. package/dist/runtime/utils/external-message-conversion.d.ts.map +1 -1
  477. package/dist/runtime/utils/external-message-conversion.js +3 -3
  478. package/dist/runtime/utils/external-message-conversion.js.map +1 -1
  479. package/dist/runtime/utils/external-store-message.d.ts +2 -4
  480. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  481. package/dist/runtime/utils/message-repository-session.d.ts +21 -23
  482. package/dist/runtime/utils/message-repository-session.d.ts.map +1 -1
  483. package/dist/runtime/utils/message-repository.d.ts +50 -51
  484. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  485. package/dist/runtime/utils/message-repository.js +8 -7
  486. package/dist/runtime/utils/message-repository.js.map +1 -1
  487. package/dist/runtime/utils/pending-tool-calls.d.ts +10 -11
  488. package/dist/runtime/utils/pending-tool-calls.d.ts.map +1 -1
  489. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +6 -8
  490. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
  491. package/dist/runtime/utils/runtime-extras-brand.d.ts +4 -6
  492. package/dist/runtime/utils/runtime-extras-brand.d.ts.map +1 -1
  493. package/dist/runtime/utils/stored-message-parts.d.ts +5 -5
  494. package/dist/runtime/utils/stored-message-parts.d.ts.map +1 -1
  495. package/dist/runtime/utils/stored-message-parts.js +22 -2
  496. package/dist/runtime/utils/stored-message-parts.js.map +1 -1
  497. package/dist/runtime/utils/streaming-timing.d.ts +19 -21
  498. package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
  499. package/dist/runtime/utils/thread-message-like.d.ts +36 -32
  500. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  501. package/dist/runtime/utils/thread-message-like.js +16 -6
  502. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  503. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts +4 -5
  504. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts.map +1 -1
  505. package/dist/runtime/utils/thread-runtime-lifecycle.js +31 -4
  506. package/dist/runtime/utils/thread-runtime-lifecycle.js.map +1 -1
  507. package/dist/runtime/utils/tool-call-tree.d.ts +6 -8
  508. package/dist/runtime/utils/tool-call-tree.d.ts.map +1 -1
  509. package/dist/runtime/utils/tool-interactions.d.ts +10 -0
  510. package/dist/runtime/utils/tool-interactions.d.ts.map +1 -0
  511. package/dist/runtime/utils/tool-interactions.js +92 -0
  512. package/dist/runtime/utils/tool-interactions.js.map +1 -0
  513. package/dist/runtimes/assistant-transport/utils.d.ts +0 -2
  514. package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
  515. package/dist/runtimes/external-store/external-store-adapter.d.ts +215 -198
  516. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  517. package/dist/runtimes/external-store/external-store-runtime-core.d.ts +5 -6
  518. package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
  519. package/dist/runtimes/external-store/external-store-runtime-core.js +4 -1
  520. package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
  521. package/dist/runtimes/external-store/external-store-shared-options.d.ts +1 -3
  522. package/dist/runtimes/external-store/external-store-shared-options.d.ts.map +1 -1
  523. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +38 -40
  524. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  525. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +2 -2
  526. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  527. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +117 -124
  528. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  529. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +44 -14
  530. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  531. package/dist/runtimes/external-store/thread-message-converter.d.ts +3 -5
  532. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  533. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts +94 -95
  534. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts.map +1 -1
  535. package/dist/runtimes/inert/InertThreadRuntimeCore.js +3 -0
  536. package/dist/runtimes/inert/InertThreadRuntimeCore.js.map +1 -1
  537. package/dist/runtimes/internal.d.ts +20 -16
  538. package/dist/runtimes/internal.d.ts.map +1 -0
  539. package/dist/runtimes/local/local-runtime-core.d.ts +6 -8
  540. package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
  541. package/dist/runtimes/local/local-runtime-options.d.ts +40 -42
  542. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  543. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +40 -42
  544. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  545. package/dist/runtimes/local/local-thread-runtime-core.d.ts +93 -97
  546. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  547. package/dist/runtimes/local/local-thread-runtime-core.js +178 -31
  548. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  549. package/dist/runtimes/local/should-continue.d.ts +1 -3
  550. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  551. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +76 -53
  552. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  553. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +28 -1
  554. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  555. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +11 -13
  556. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  557. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts +2 -4
  558. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts.map +1 -1
  559. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +1 -3
  560. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  561. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +33 -29
  562. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  563. package/dist/runtimes/remote-thread-list/optimistic-state.js +8 -3
  564. package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
  565. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +44 -46
  566. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  567. package/dist/runtimes/remote-thread-list/remote-thread-state.js +1 -1
  568. package/dist/runtimes/remote-thread-list/title-generation.d.ts +25 -26
  569. package/dist/runtimes/remote-thread-list/title-generation.d.ts.map +1 -1
  570. package/dist/runtimes/remote-thread-list/title.d.ts +3 -5
  571. package/dist/runtimes/remote-thread-list/title.d.ts.map +1 -1
  572. package/dist/runtimes/remote-thread-list/types.d.ts +111 -112
  573. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  574. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +144 -145
  575. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
  576. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +22 -7
  577. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  578. package/dist/store/clients/chain-of-thought-client.d.ts +7 -9
  579. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  580. package/dist/store/clients/external-thread.d.ts +53 -54
  581. package/dist/store/clients/external-thread.d.ts.map +1 -1
  582. package/dist/store/clients/external-thread.js +1256 -731
  583. package/dist/store/clients/external-thread.js.map +1 -1
  584. package/dist/store/clients/model-context-client.d.ts +1 -3
  585. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  586. package/dist/store/clients/no-op-composer-client.d.ts +2 -4
  587. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  588. package/dist/store/clients/no-op-composer-client.js +3 -1
  589. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  590. package/dist/store/clients/runtime-adapter.d.ts +1 -3
  591. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  592. package/dist/store/clients/single-thread-list.d.ts +3 -4
  593. package/dist/store/clients/single-thread-list.d.ts.map +1 -1
  594. package/dist/store/clients/submission-message.d.ts +8 -0
  595. package/dist/store/clients/submission-message.d.ts.map +1 -0
  596. package/dist/store/clients/submission-message.js +22 -0
  597. package/dist/store/clients/submission-message.js.map +1 -0
  598. package/dist/store/clients/suggestions.d.ts +5 -7
  599. package/dist/store/clients/suggestions.d.ts.map +1 -1
  600. package/dist/store/clients/thread-message-client.d.ts +10 -9
  601. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  602. package/dist/store/clients/thread-message-client.js +81 -82
  603. package/dist/store/clients/thread-message-client.js.map +1 -1
  604. package/dist/store/clients/thread-selection-events.d.ts +0 -2
  605. package/dist/store/clients/thread-selection-events.d.ts.map +1 -1
  606. package/dist/store/clients/thread-tasks.d.ts +4 -6
  607. package/dist/store/clients/thread-tasks.d.ts.map +1 -1
  608. package/dist/store/env.d.ts +0 -2
  609. package/dist/store/env.d.ts.map +1 -1
  610. package/dist/store/index.d.ts +33 -36
  611. package/dist/store/index.d.ts.map +1 -0
  612. package/dist/store/index.js +5 -5
  613. package/dist/store/internal.d.ts +12 -12
  614. package/dist/store/internal.d.ts.map +1 -0
  615. package/dist/store/internal.js +2 -2
  616. package/dist/store/primitive-predicates.d.ts +3 -4
  617. package/dist/store/primitive-predicates.d.ts.map +1 -1
  618. package/dist/store/primitive-predicates.js +9 -4
  619. package/dist/store/primitive-predicates.js.map +1 -1
  620. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +3 -5
  621. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  622. package/dist/store/runtime-clients/composer-runtime-client.d.ts +10 -12
  623. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  624. package/dist/store/runtime-clients/composer-runtime-client.js +65 -62
  625. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  626. package/dist/store/runtime-clients/handle-runtime-action.d.ts +0 -2
  627. package/dist/store/runtime-clients/handle-runtime-action.d.ts.map +1 -1
  628. package/dist/store/runtime-clients/handle-thread-list-action.d.ts +0 -2
  629. package/dist/store/runtime-clients/handle-thread-list-action.d.ts.map +1 -1
  630. package/dist/store/runtime-clients/liveRef.d.ts +1 -3
  631. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
  632. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +3 -5
  633. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  634. package/dist/store/runtime-clients/message-part-runtime-client.js +26 -16
  635. package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
  636. package/dist/store/runtime-clients/message-runtime-client.d.ts +9 -9
  637. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  638. package/dist/store/runtime-clients/message-runtime-client.js +121 -113
  639. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  640. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +4 -6
  641. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  642. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +5 -7
  643. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  644. package/dist/store/runtime-clients/thread-runtime-client.d.ts +3 -5
  645. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  646. package/dist/store/runtime-clients/thread-runtime-client.js +221 -158
  647. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  648. package/dist/store/runtime-clients/useSubscribable.d.ts +2 -4
  649. package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
  650. package/dist/store/scope-registration.d.ts +28 -29
  651. package/dist/store/scope-registration.d.ts.map +1 -1
  652. package/dist/store/scopes/attachment.d.ts +15 -17
  653. package/dist/store/scopes/attachment.d.ts.map +1 -1
  654. package/dist/store/scopes/chain-of-thought.d.ts +28 -29
  655. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  656. package/dist/store/scopes/composer.d.ts +141 -128
  657. package/dist/store/scopes/composer.d.ts.map +1 -1
  658. package/dist/store/scopes/message.d.ts +114 -107
  659. package/dist/store/scopes/message.d.ts.map +1 -1
  660. package/dist/store/scopes/model-context.d.ts +7 -9
  661. package/dist/store/scopes/model-context.d.ts.map +1 -1
  662. package/dist/store/scopes/part.d.ts +49 -45
  663. package/dist/store/scopes/part.d.ts.map +1 -1
  664. package/dist/store/scopes/queue-item.d.ts +18 -20
  665. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  666. package/dist/store/scopes/suggestion.d.ts +10 -12
  667. package/dist/store/scopes/suggestion.d.ts.map +1 -1
  668. package/dist/store/scopes/suggestions.d.ts +13 -15
  669. package/dist/store/scopes/suggestions.d.ts.map +1 -1
  670. package/dist/store/scopes/task.d.ts +23 -25
  671. package/dist/store/scopes/task.d.ts.map +1 -1
  672. package/dist/store/scopes/thread-list-item.d.ts +63 -65
  673. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  674. package/dist/store/scopes/thread.d.ts +192 -194
  675. package/dist/store/scopes/thread.d.ts.map +1 -1
  676. package/dist/store/scopes/threads.d.ts +45 -47
  677. package/dist/store/scopes/threads.d.ts.map +1 -1
  678. package/dist/subscribable/subscribable.d.ts +58 -53
  679. package/dist/subscribable/subscribable.d.ts.map +1 -1
  680. package/dist/subscribable/subscribable.js +35 -7
  681. package/dist/subscribable/subscribable.js.map +1 -1
  682. package/dist/types/attachment.d.ts +26 -27
  683. package/dist/types/attachment.d.ts.map +1 -1
  684. package/dist/types/augmentations.d.ts +4 -4
  685. package/dist/types/augmentations.d.ts.map +1 -1
  686. package/dist/types/directive.d.ts +11 -13
  687. package/dist/types/directive.d.ts.map +1 -1
  688. package/dist/types/error.d.ts +7 -8
  689. package/dist/types/error.d.ts.map +1 -1
  690. package/dist/types/index.d.ts +7 -7
  691. package/dist/types/index.d.ts.map +1 -0
  692. package/dist/types/message.d.ts +322 -284
  693. package/dist/types/message.d.ts.map +1 -1
  694. package/dist/types/message.js.map +1 -1
  695. package/dist/types/quote.d.ts +2 -4
  696. package/dist/types/quote.d.ts.map +1 -1
  697. package/dist/types/trigger.d.ts +8 -10
  698. package/dist/types/trigger.d.ts.map +1 -1
  699. package/dist/types/unsubscribe.d.ts +0 -2
  700. package/dist/types/unsubscribe.d.ts.map +1 -1
  701. package/dist/utils/abortable-iterable.d.ts +0 -2
  702. package/dist/utils/abortable-iterable.d.ts.map +1 -1
  703. package/dist/utils/composite-context-provider.d.ts +8 -11
  704. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  705. package/dist/utils/data-url.d.ts +10 -12
  706. package/dist/utils/data-url.d.ts.map +1 -1
  707. package/dist/utils/getGroupStatus.d.ts +17 -18
  708. package/dist/utils/getGroupStatus.d.ts.map +1 -1
  709. package/dist/utils/id.d.ts +0 -2
  710. package/dist/utils/id.d.ts.map +1 -1
  711. package/dist/utils/image-media-type.d.ts +0 -2
  712. package/dist/utils/image-media-type.d.ts.map +1 -1
  713. package/dist/utils/invoke-user-callback.d.ts +0 -2
  714. package/dist/utils/invoke-user-callback.d.ts.map +1 -1
  715. package/dist/utils/json/is-json-equal.d.ts +0 -2
  716. package/dist/utils/json/is-json-equal.d.ts.map +1 -1
  717. package/dist/utils/json/is-json.d.ts +1 -3
  718. package/dist/utils/json/is-json.d.ts.map +1 -1
  719. package/dist/utils/json/stable-stringify-tool-args.d.ts +1 -3
  720. package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -1
  721. package/dist/utils/normalizePartStatus.d.ts +2 -3
  722. package/dist/utils/normalizePartStatus.d.ts.map +1 -1
  723. package/dist/utils/normalizePartStatus.js +3 -2
  724. package/dist/utils/normalizePartStatus.js.map +1 -1
  725. package/dist/utils/notify-event-listeners.d.ts +1 -2
  726. package/dist/utils/notify-event-listeners.d.ts.map +1 -1
  727. package/dist/utils/record.d.ts +0 -2
  728. package/dist/utils/record.d.ts.map +1 -1
  729. package/dist/utils/silent-runtime-action.d.ts +0 -2
  730. package/dist/utils/silent-runtime-action.d.ts.map +1 -1
  731. package/dist/utils/text.d.ts +1 -3
  732. package/dist/utils/text.d.ts.map +1 -1
  733. package/dist/utils/wire-media.d.ts +0 -2
  734. package/dist/utils/wire-media.d.ts.map +1 -1
  735. package/package.json +11 -10
  736. package/src/adapters/attachment.test.ts +98 -1
  737. package/src/adapters/attachment.ts +70 -20
  738. package/src/adapters/speech.test.ts +94 -0
  739. package/src/adapters/speech.ts +16 -2
  740. package/src/adapters/thread-history.ts +16 -5
  741. package/src/adapters/voice.test.ts +169 -0
  742. package/src/adapters/voice.ts +25 -4
  743. package/src/index.ts +14 -2
  744. package/src/internal.ts +7 -0
  745. package/src/model-context/frame/host.test.ts +51 -1
  746. package/src/model-context/frame/host.ts +3 -1
  747. package/src/model-context/frame/provider.test.ts +61 -0
  748. package/src/model-context/frame/provider.ts +8 -1
  749. package/src/model-context/frame/validate.ts +57 -0
  750. package/src/model-context/interactable-composer-metadata.test.ts +82 -0
  751. package/src/model-context/interactable-composer-metadata.ts +45 -2
  752. package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +594 -0
  753. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +98 -35
  754. package/src/react/client/Interactables.test.ts +853 -1
  755. package/src/react/client/Interactables.ts +325 -45
  756. package/src/react/client/RemoteThreadList.initialize-failure.test.ts +124 -0
  757. package/src/react/client/RemoteThreadList.ts +6 -0
  758. package/src/react/client/Tools.ts +2 -3
  759. package/src/react/client/interactable-model-context.test.ts +56 -13
  760. package/src/react/client/interactable-model-context.ts +48 -23
  761. package/src/react/index.ts +2 -2
  762. package/src/react/interactables-legacy/Interactables.test.ts +212 -1
  763. package/src/react/interactables-legacy/Interactables.ts +25 -14
  764. package/src/react/interactables-legacy/interactable-model-context.ts +26 -24
  765. package/src/react/interactables-shared/useInteractablePersistenceQueue.test.tsx +22 -2
  766. package/src/react/interactables-shared/useInteractablePersistenceQueue.ts +63 -11
  767. package/src/react/primitive-hooks/useSuggestionTrigger.test.ts +33 -0
  768. package/src/react/primitive-hooks/useSuggestionTrigger.ts +7 -4
  769. package/src/react/primitives/generativeUI/GenerativeUI.test.tsx +124 -8
  770. package/src/react/primitives/generativeUI/GenerativeUI.tsx +35 -15
  771. package/src/react/primitives/message/MessageAttachments.test.tsx +2 -6
  772. package/src/react/primitives/message/MessageAttachments.tsx +14 -8
  773. package/src/react/primitives/message/MessageGroupedParts.test.tsx +151 -7
  774. package/src/react/primitives/message/MessageGroupedParts.tsx +19 -6
  775. package/src/react/primitives/message/MessageParts.test.tsx +84 -0
  776. package/src/react/primitives/message/MessageParts.tool-interaction.test.tsx +69 -0
  777. package/src/react/primitives/message/MessageParts.tsx +29 -8
  778. package/src/react/primitives/thread/ThreadSuggestions.test.tsx +97 -0
  779. package/src/react/primitives/thread/ThreadSuggestions.tsx +29 -6
  780. package/src/react/providers/ReadonlyThreadProvider.tsx +2 -2
  781. package/src/react/providers/TextMessagePartProvider.tsx +3 -0
  782. package/src/react/runtimes/RemoteThreadListHookInstanceManager.running.test.tsx +93 -0
  783. package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +160 -3
  784. package/src/react/runtimes/RemoteThreadListHookInstanceManager.title.test.tsx +38 -0
  785. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +73 -53
  786. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +19 -3
  787. package/src/react/runtimes/RemoteThreadResource.ts +5 -2
  788. package/src/react/runtimes/assistant-transport/replayBoundaryStream.test.ts +3 -1
  789. package/src/react/runtimes/assistant-transport/replayBoundaryStream.ts +10 -2
  790. package/src/react/runtimes/assistant-transport/runManager.ts +3 -0
  791. package/src/react/runtimes/assistant-transport/transport-parentid.test.tsx +57 -0
  792. package/src/react/runtimes/assistant-transport/transport-thread-id.test.tsx +571 -0
  793. package/src/react/runtimes/assistant-transport/types.ts +9 -1
  794. package/src/react/runtimes/assistant-transport/useAssistantTransport.spec.md +10 -0
  795. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.test.tsx +42 -0
  796. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.ts +33 -9
  797. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.integration.test.tsx +289 -0
  798. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.test.tsx +471 -0
  799. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.engagement.test.tsx +330 -0
  800. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.ts +78 -2
  801. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +361 -2
  802. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +571 -216
  803. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +25 -0
  804. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +7 -3
  805. package/src/react/runtimes/cloud/auiV0.ts +158 -9
  806. package/src/react/runtimes/cloud/auiV0DecodeSafely.test.ts +352 -1
  807. package/src/react/runtimes/createMessageConverter.ts +9 -3
  808. package/src/react/runtimes/external-store-history-copy.ts +223 -0
  809. package/src/react/runtimes/useExternalStoreRuntime.history-copy.test.tsx +483 -0
  810. package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +76 -1
  811. package/src/react/runtimes/useExternalStoreRuntime.ts +25 -5
  812. package/src/react/runtimes/useLocalRuntime.test.tsx +145 -1
  813. package/src/react/runtimes/useLocalRuntime.ts +8 -5
  814. package/src/react/types/MessagePartComponentTypes.ts +10 -0
  815. package/src/react/types/scopes/interactables.ts +3 -0
  816. package/src/runtime/api/attachment-runtime.ts +10 -5
  817. package/src/runtime/api/bindings.ts +6 -1
  818. package/src/runtime/api/composer-runtime.ts +29 -6
  819. package/src/runtime/api/message-part-runtime.test.ts +215 -0
  820. package/src/runtime/api/message-part-runtime.ts +40 -0
  821. package/src/runtime/api/message-runtime.test.ts +112 -2
  822. package/src/runtime/api/message-runtime.ts +10 -5
  823. package/src/runtime/api/thread-list-item-runtime.ts +5 -5
  824. package/src/runtime/api/thread-list-runtime.ts +3 -3
  825. package/src/runtime/api/thread-runtime.test.ts +59 -0
  826. package/src/runtime/api/thread-runtime.ts +21 -11
  827. package/src/runtime/base/base-composer-runtime-core.ts +548 -153
  828. package/src/runtime/base/base-thread-runtime-core.test.ts +744 -9
  829. package/src/runtime/base/base-thread-runtime-core.ts +154 -27
  830. package/src/runtime/base/default-edit-composer-runtime-core.ts +13 -1
  831. package/src/runtime/base/default-thread-composer-runtime-core.ts +29 -10
  832. package/src/runtime/interfaces/composer-runtime-core.ts +19 -0
  833. package/src/runtime/interfaces/thread-runtime-core.ts +22 -1
  834. package/src/runtime/utils/attachment-add-operations.ts +45 -2
  835. package/src/runtime/utils/attachment-send-operations.ts +54 -0
  836. package/src/runtime/utils/auto-status.test.ts +54 -0
  837. package/src/runtime/utils/auto-status.ts +3 -10
  838. package/src/runtime/utils/external-message-conversion.test.ts +48 -0
  839. package/src/runtime/utils/external-message-conversion.ts +3 -4
  840. package/src/runtime/utils/message-repository.test.ts +69 -1
  841. package/src/runtime/utils/message-repository.ts +14 -7
  842. package/src/runtime/utils/stored-message-parts.ts +43 -1
  843. package/src/runtime/utils/thread-message-like.test.ts +58 -0
  844. package/src/runtime/utils/thread-message-like.ts +72 -46
  845. package/src/runtime/utils/thread-runtime-lifecycle.test.ts +67 -0
  846. package/src/runtime/utils/thread-runtime-lifecycle.ts +42 -8
  847. package/src/runtime/utils/tool-interactions.test.ts +193 -0
  848. package/src/runtime/utils/tool-interactions.ts +147 -0
  849. package/src/runtimes/external-store/external-store-adapter.ts +22 -1
  850. package/src/runtimes/external-store/external-store-runtime-core.ts +10 -2
  851. package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +2 -2
  852. package/src/runtimes/external-store/external-store-thread-runtime-core.test.ts +49 -0
  853. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +76 -29
  854. package/src/runtimes/inert/InertThreadRuntimeCore.test.ts +127 -56
  855. package/src/runtimes/inert/InertThreadRuntimeCore.ts +10 -1
  856. package/src/runtimes/local/local-thread-runtime-core.edit-cancellation.test.ts +70 -0
  857. package/src/runtimes/local/local-thread-runtime-core.test.ts +1649 -108
  858. package/src/runtimes/local/local-thread-runtime-core.ts +301 -47
  859. package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +53 -1
  860. package/src/runtimes/remote-thread-list/optimistic-state.ts +8 -3
  861. package/src/runtimes/tool-invocations/EDGE_CASES.md +19 -4
  862. package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +392 -39
  863. package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +31 -8
  864. package/src/store/clients/external-thread.test.ts +145 -0
  865. package/src/store/clients/external-thread.ts +635 -131
  866. package/src/store/clients/model-context-client.test.ts +8 -8
  867. package/src/store/clients/no-op-composer-client.ts +2 -0
  868. package/src/store/clients/submission-message.ts +27 -0
  869. package/src/store/clients/thread-message-client.test.ts +39 -0
  870. package/src/store/clients/thread-message-client.ts +13 -6
  871. package/src/store/index.ts +2 -2
  872. package/src/store/internal.ts +1 -0
  873. package/src/store/primitive-predicates.test.ts +103 -0
  874. package/src/store/primitive-predicates.ts +15 -3
  875. package/src/store/runtime-clients/composer-runtime-client.ts +4 -3
  876. package/src/store/runtime-clients/message-part-runtime-client.test.ts +42 -0
  877. package/src/store/runtime-clients/message-part-runtime-client.ts +4 -0
  878. package/src/store/runtime-clients/message-runtime-client.ts +5 -0
  879. package/src/store/runtime-clients/thread-runtime-client.test.tsx +138 -5
  880. package/src/store/runtime-clients/thread-runtime-client.ts +46 -9
  881. package/src/store/scopes/composer.ts +22 -4
  882. package/src/store/scopes/message.ts +8 -0
  883. package/src/store/scopes/part.ts +8 -0
  884. package/src/subscribable/subscribable.test.ts +198 -1
  885. package/src/subscribable/subscribable.ts +49 -7
  886. package/src/tests/RemoteThreadListThreadListRuntimeCore-errors.test.ts +95 -1
  887. package/src/tests/auiV0Encode.test.ts +408 -1
  888. package/src/tests/base-composer-runtime-core-send.test.ts +722 -29
  889. package/src/tests/base-composer-runtime-core.test.ts +196 -0
  890. package/src/tests/composer-can-send.test.ts +98 -1
  891. package/src/tests/composer-submission.test.tsx +796 -0
  892. package/src/tests/default-edit-composer-runtime-core.test.ts +102 -2
  893. package/src/tests/external-store-thread-list-runtime-core.test.ts +111 -0
  894. package/src/tests/external-store-thread-runtime-core-adapter.test.ts +581 -1
  895. package/src/tests/external-store-thread-runtime-core.test.ts +186 -0
  896. package/src/tests/external-thread-attachments.test.tsx +741 -3
  897. package/src/tests/external-thread-isLast.test.tsx +69 -0
  898. package/src/tests/get-thread-state-isRunning.test.ts +2 -2
  899. package/src/tests/remote-thread-list-adapter-switch.test.ts +45 -1
  900. package/src/types/message.ts +49 -2
  901. package/src/utils/normalizePartStatus.ts +14 -1
  902. package/dist/tests/remote-thread-list-test-helpers.d.ts +0 -15
  903. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +0 -1
  904. package/dist/tests/remote-thread-list-test-helpers.js +0 -59
  905. package/dist/tests/remote-thread-list-test-helpers.js.map +0 -1
@@ -2,7 +2,13 @@ import { nullProtoRecord } from "../../utils/record.js";
2
2
  import { useCallback, useRef } from "@assistant-ui/tap/react-shim";
3
3
  //#region src/react/interactables-shared/useInteractablePersistenceQueue.ts
4
4
  const PERSISTENCE_DEBOUNCE_MS = 500;
5
- const useInteractablePersistenceQueue = ({ adapterRef, snapshot, updatePersistenceStatus }) => {
5
+ /**
6
+ * `load` is caller code with no settling contract, so an awaited `flush` bounds
7
+ * the wait rather than inheriting it. Past this the edit stays queued for the
8
+ * next successful snapshot, which is the same shape a failed load already has.
9
+ */
10
+ const FLUSH_LOAD_TIMEOUT_MS = 5e3;
11
+ const useInteractablePersistenceQueue = ({ adapterRef, adapterGenerationRef, snapshot, updatePersistenceStatus, retainDirtyWithoutAdapter = false }) => {
6
12
  const debounceTimerRef = useRef(void 0);
7
13
  const syncSeqRef = useRef(0);
8
14
  const latestSyncSeqByIdRef = useRef(/* @__PURE__ */ new Map());
@@ -19,11 +25,12 @@ const useInteractablePersistenceQueue = ({ adapterRef, snapshot, updatePersisten
19
25
  for (const id of dirtyIds) latestSyncSeqByIdRef.current.set(id, seq);
20
26
  return {
21
27
  adapter,
28
+ adapterGeneration: adapterGenerationRef.current,
22
29
  payload: snapshot(),
23
30
  dirtyIds,
24
31
  seq
25
32
  };
26
- }, [snapshot]);
33
+ }, [adapterGenerationRef, snapshot]);
27
34
  const enqueuePersistence = useCallback((adapter_0) => {
28
35
  const batch = takeDirtyBatch(adapter_0);
29
36
  if (!batch) return;
@@ -39,7 +46,7 @@ const useInteractablePersistenceQueue = ({ adapterRef, snapshot, updatePersisten
39
46
  }
40
47
  return;
41
48
  }
42
- const { adapter: adapter_1, payload, dirtyIds: dirtyIds_0, seq: seq_0 } = resolved;
49
+ const { adapter: adapter_1, adapterGeneration, payload, dirtyIds: dirtyIds_0, seq: seq_0 } = resolved;
43
50
  inFlightPersistenceRef.current += 1;
44
51
  updatePersistenceStatus((prev) => {
45
52
  const persistence = nullProtoRecord(prev);
@@ -73,10 +80,12 @@ const useInteractablePersistenceQueue = ({ adapterRef, snapshot, updatePersisten
73
80
  await adapter_1.save(payload);
74
81
  settleBatch(void 0);
75
82
  } catch (e) {
76
- settleBatch({
83
+ const isCurrentScope = adapterGenerationRef.current === adapterGeneration;
84
+ if (!isCurrentScope) console.warn("[Interactables] Persistence save failed after the adapter changed.", e);
85
+ settleBatch(isCurrentScope ? {
77
86
  isPending: false,
78
87
  error: e
79
- });
88
+ } : void 0);
80
89
  } finally {
81
90
  inFlightPersistenceRef.current -= 1;
82
91
  const next = outgoingQueueRef.current.shift() ?? (adapterRef.current && dirtyIdsRef.current.size > 0 ? takeDirtyBatch(adapterRef.current) : void 0);
@@ -92,6 +101,7 @@ const useInteractablePersistenceQueue = ({ adapterRef, snapshot, updatePersisten
92
101
  }
93
102
  }
94
103
  }, [
104
+ adapterGenerationRef,
95
105
  adapterRef,
96
106
  takeDirtyBatch,
97
107
  updatePersistenceStatus
@@ -99,35 +109,54 @@ const useInteractablePersistenceQueue = ({ adapterRef, snapshot, updatePersisten
99
109
  runPersistenceRef.current = (nextBatch) => {
100
110
  runPersistence(nextBatch);
101
111
  };
112
+ const flushIfPending = useCallback(() => {
113
+ if (debounceTimerRef.current !== void 0) {
114
+ clearTimeout(debounceTimerRef.current);
115
+ debounceTimerRef.current = void 0;
116
+ }
117
+ if (adapterRef.current) enqueuePersistence(adapterRef.current);
118
+ }, [adapterRef, enqueuePersistence]);
119
+ const schedulePersistence = useCallback((id_3) => {
120
+ if (!adapterRef.current && !retainDirtyWithoutAdapter) return;
121
+ dirtyIdsRef.current.add(id_3);
122
+ if (!adapterRef.current) return;
123
+ if (debounceTimerRef.current !== void 0) clearTimeout(debounceTimerRef.current);
124
+ debounceTimerRef.current = setTimeout(() => {
125
+ debounceTimerRef.current = void 0;
126
+ if (inFlightPersistenceRef.current === 0 && adapterRef.current) enqueuePersistence(adapterRef.current);
127
+ else debounceTimerRef.current = setTimeout(() => {
128
+ debounceTimerRef.current = void 0;
129
+ if (adapterRef.current) enqueuePersistence(adapterRef.current);
130
+ }, 500);
131
+ }, 500);
132
+ }, [
133
+ adapterRef,
134
+ enqueuePersistence,
135
+ retainDirtyWithoutAdapter
136
+ ]);
102
137
  return {
103
- flushIfPending: useCallback(() => {
138
+ discardPending: useCallback(() => {
104
139
  if (debounceTimerRef.current !== void 0) {
105
140
  clearTimeout(debounceTimerRef.current);
106
141
  debounceTimerRef.current = void 0;
107
142
  }
108
- if (adapterRef.current) enqueuePersistence(adapterRef.current);
109
- }, [adapterRef, enqueuePersistence]),
110
- schedulePersistence: useCallback((id_3) => {
111
- if (!adapterRef.current) return;
112
- dirtyIdsRef.current.add(id_3);
113
- if (debounceTimerRef.current !== void 0) clearTimeout(debounceTimerRef.current);
114
- debounceTimerRef.current = setTimeout(() => {
115
- debounceTimerRef.current = void 0;
116
- if (inFlightPersistenceRef.current === 0 && adapterRef.current) enqueuePersistence(adapterRef.current);
117
- else debounceTimerRef.current = setTimeout(() => {
118
- debounceTimerRef.current = void 0;
119
- if (adapterRef.current) enqueuePersistence(adapterRef.current);
120
- }, PERSISTENCE_DEBOUNCE_MS);
121
- }, PERSISTENCE_DEBOUNCE_MS);
122
- }, [adapterRef, enqueuePersistence]),
143
+ dirtyIdsRef.current.clear();
144
+ if (inFlightPersistenceRef.current === 0 && outgoingQueueRef.current.length === 0) {
145
+ for (const resolve_0 of flushResolversRef.current) resolve_0();
146
+ flushResolversRef.current = [];
147
+ }
148
+ }, []),
149
+ flushIfPending,
150
+ getDirtyIds: useCallback(() => new Set(dirtyIdsRef.current), []),
151
+ schedulePersistence,
123
152
  flush: useCallback(async () => {
124
153
  if (debounceTimerRef.current !== void 0) {
125
154
  clearTimeout(debounceTimerRef.current);
126
155
  debounceTimerRef.current = void 0;
127
156
  }
128
- if (!(inFlightPersistenceRef.current > 0 || dirtyIdsRef.current.size > 0 || outgoingQueueRef.current.length > 0)) return;
129
- const p = new Promise((resolve_0) => {
130
- flushResolversRef.current.push(resolve_0);
157
+ if (!(inFlightPersistenceRef.current > 0 || outgoingQueueRef.current.length > 0 || adapterRef.current !== void 0 && dirtyIdsRef.current.size > 0)) return;
158
+ const p = new Promise((resolve_1) => {
159
+ flushResolversRef.current.push(resolve_1);
131
160
  });
132
161
  if (adapterRef.current) enqueuePersistence(adapterRef.current);
133
162
  return p;
@@ -135,6 +164,6 @@ const useInteractablePersistenceQueue = ({ adapterRef, snapshot, updatePersisten
135
164
  };
136
165
  };
137
166
  //#endregion
138
- export { useInteractablePersistenceQueue };
167
+ export { FLUSH_LOAD_TIMEOUT_MS, PERSISTENCE_DEBOUNCE_MS, useInteractablePersistenceQueue };
139
168
 
140
169
  //# sourceMappingURL=useInteractablePersistenceQueue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInteractablePersistenceQueue.js","names":["useCallback","useRef","RefObject","nullProtoRecord","PERSISTENCE_DEBOUNCE_MS","PersistenceAdapter","save","state","State","Promise","PersistenceStatus","isPending","error","PersistenceStatusMap","Record","PersistenceStatusUpdater","updater","prev","UseInteractablePersistenceQueueOptions","adapterRef","snapshot","updatePersistenceStatus","useInteractablePersistenceQueue","debounceTimerRef","ReturnType","setTimeout","undefined","syncSeqRef","latestSyncSeqByIdRef","Map","inFlightPersistenceRef","flushResolversRef","Array","dirtyIdsRef","Set","PersistenceBatch","adapter","payload","dirtyIds","seq","outgoingQueueRef","runPersistenceRef","batch","takeDirtyBatch","current","size","clear","id","set","enqueuePersistence","push","runPersistence","resolved","resolve","persistence","settleBatch","status","settledIds","get","has","delete","length","changed","e","next","shift","clearTimeout","nextBatch","flushIfPending","schedulePersistence","add","flush","hasWork","p"],"sources":["../../../src/react/interactables-shared/useInteractablePersistenceQueue.ts"],"sourcesContent":["import { useCallback, useRef, type RefObject } from \"react\";\nimport { nullProtoRecord } from \"../../utils/record\";\n\nconst PERSISTENCE_DEBOUNCE_MS = 500;\n\ntype PersistenceAdapter<State> = {\n save(state: State): void | Promise<void>;\n};\n\ntype PersistenceStatus = {\n isPending: boolean;\n error: unknown;\n};\n\ntype PersistenceStatusMap = Record<string, PersistenceStatus>;\n\ntype PersistenceStatusUpdater = (\n updater: (prev: PersistenceStatusMap) => PersistenceStatusMap,\n) => void;\n\ntype UseInteractablePersistenceQueueOptions<State> = {\n adapterRef: RefObject<PersistenceAdapter<State> | undefined>;\n snapshot: () => State;\n updatePersistenceStatus: PersistenceStatusUpdater;\n};\n\nexport const useInteractablePersistenceQueue = <State>({\n adapterRef,\n snapshot,\n updatePersistenceStatus,\n}: UseInteractablePersistenceQueueOptions<State>) => {\n const debounceTimerRef = useRef<ReturnType<typeof setTimeout> | undefined>(\n undefined,\n );\n const syncSeqRef = useRef(0);\n const latestSyncSeqByIdRef = useRef(new Map<string, number>());\n const inFlightPersistenceRef = useRef(0);\n const flushResolversRef = useRef<Array<() => void>>([]);\n const dirtyIdsRef = useRef(new Set<string>());\n\n type PersistenceBatch = {\n adapter: PersistenceAdapter<State>;\n payload: State;\n dirtyIds: Set<string>;\n seq: number;\n };\n\n const outgoingQueueRef = useRef<PersistenceBatch[]>([]);\n const runPersistenceRef = useRef<(batch?: PersistenceBatch) => void>(\n () => {},\n );\n\n const takeDirtyBatch = useCallback(\n (adapter: PersistenceAdapter<State>): PersistenceBatch | undefined => {\n if (dirtyIdsRef.current.size === 0) return;\n const dirtyIds = new Set(dirtyIdsRef.current);\n dirtyIdsRef.current.clear();\n const seq = ++syncSeqRef.current;\n for (const id of dirtyIds) latestSyncSeqByIdRef.current.set(id, seq);\n return { adapter, payload: snapshot(), dirtyIds, seq };\n },\n [snapshot],\n );\n\n const enqueuePersistence = useCallback(\n (adapter: PersistenceAdapter<State>) => {\n const batch = takeDirtyBatch(adapter);\n if (!batch) return;\n if (inFlightPersistenceRef.current === 0) {\n runPersistenceRef.current(batch);\n } else {\n outgoingQueueRef.current.push(batch);\n }\n },\n [takeDirtyBatch],\n );\n\n const runPersistence = useCallback(\n async (batch?: PersistenceBatch) => {\n const resolved =\n batch ??\n (adapterRef.current ? takeDirtyBatch(adapterRef.current) : undefined);\n if (!resolved) {\n if (inFlightPersistenceRef.current === 0) {\n for (const resolve of flushResolversRef.current) resolve();\n flushResolversRef.current = [];\n }\n return;\n }\n\n const { adapter, payload, dirtyIds, seq } = resolved;\n inFlightPersistenceRef.current += 1;\n\n updatePersistenceStatus((prev) => {\n const persistence = nullProtoRecord(prev);\n for (const id of dirtyIds) {\n persistence[id] = { isPending: true, error: undefined };\n }\n return persistence;\n });\n\n const settleBatch = (status: PersistenceStatus | undefined) => {\n const settledIds: string[] = [];\n for (const id of dirtyIds) {\n if (\n latestSyncSeqByIdRef.current.get(id) !== seq ||\n dirtyIdsRef.current.has(id)\n )\n continue;\n latestSyncSeqByIdRef.current.delete(id);\n settledIds.push(id);\n }\n if (settledIds.length === 0) return;\n updatePersistenceStatus((prev) => {\n let changed = false;\n const persistence = nullProtoRecord(prev);\n for (const id of settledIds) {\n if (prev[id] === undefined) continue;\n if (status === undefined) delete persistence[id];\n else persistence[id] = status;\n changed = true;\n }\n return changed ? persistence : prev;\n });\n };\n\n try {\n await adapter.save(payload);\n settleBatch(undefined);\n } catch (e) {\n settleBatch({ isPending: false, error: e });\n } finally {\n inFlightPersistenceRef.current -= 1;\n const next =\n outgoingQueueRef.current.shift() ??\n (adapterRef.current && dirtyIdsRef.current.size > 0\n ? takeDirtyBatch(adapterRef.current)\n : undefined);\n if (next) {\n if (debounceTimerRef.current !== undefined) {\n clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = undefined;\n }\n runPersistenceRef.current(next);\n } else if (inFlightPersistenceRef.current === 0) {\n for (const resolve of flushResolversRef.current) resolve();\n flushResolversRef.current = [];\n }\n }\n },\n [adapterRef, takeDirtyBatch, updatePersistenceStatus],\n );\n runPersistenceRef.current = (nextBatch) => {\n void runPersistence(nextBatch);\n };\n\n const flushIfPending = useCallback(() => {\n if (debounceTimerRef.current !== undefined) {\n clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = undefined;\n }\n if (adapterRef.current) enqueuePersistence(adapterRef.current);\n }, [adapterRef, enqueuePersistence]);\n\n const schedulePersistence = useCallback(\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 (inFlightPersistenceRef.current === 0 && adapterRef.current) {\n enqueuePersistence(adapterRef.current);\n } else {\n debounceTimerRef.current = setTimeout(() => {\n debounceTimerRef.current = undefined;\n if (adapterRef.current) enqueuePersistence(adapterRef.current);\n }, PERSISTENCE_DEBOUNCE_MS);\n }\n }, PERSISTENCE_DEBOUNCE_MS);\n },\n [adapterRef, enqueuePersistence],\n );\n\n const flush = useCallback(async () => {\n if (debounceTimerRef.current !== undefined) {\n clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = undefined;\n }\n const hasWork =\n inFlightPersistenceRef.current > 0 ||\n dirtyIdsRef.current.size > 0 ||\n outgoingQueueRef.current.length > 0;\n if (!hasWork) return;\n const p = new Promise<void>((resolve) => {\n flushResolversRef.current.push(resolve);\n });\n if (adapterRef.current) enqueuePersistence(adapterRef.current);\n return p;\n }, [adapterRef, enqueuePersistence]);\n\n return { flushIfPending, schedulePersistence, flush };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"useInteractablePersistenceQueue.js","names":["useCallback","useRef","RefObject","nullProtoRecord","PERSISTENCE_DEBOUNCE_MS","FLUSH_LOAD_TIMEOUT_MS","PersistenceAdapter","save","state","State","Promise","PersistenceStatus","isPending","error","PersistenceStatusMap","Record","PersistenceStatusUpdater","updater","prev","UseInteractablePersistenceQueueOptions","adapterRef","adapterGenerationRef","snapshot","updatePersistenceStatus","retainDirtyWithoutAdapter","useInteractablePersistenceQueue","debounceTimerRef","ReturnType","setTimeout","undefined","syncSeqRef","latestSyncSeqByIdRef","Map","inFlightPersistenceRef","flushResolversRef","Array","dirtyIdsRef","Set","PersistenceBatch","adapter","payload","dirtyIds","seq","adapterGeneration","outgoingQueueRef","runPersistenceRef","batch","takeDirtyBatch","current","size","clear","id","set","enqueuePersistence","push","runPersistence","resolved","resolve","persistence","settleBatch","status","settledIds","get","has","delete","length","changed","e","isCurrentScope","console","warn","next","shift","clearTimeout","nextBatch","flushIfPending","schedulePersistence","add","discardPending","getDirtyIds","flush","hasWork","p"],"sources":["../../../src/react/interactables-shared/useInteractablePersistenceQueue.ts"],"sourcesContent":["import { useCallback, useRef, type RefObject } from \"react\";\nimport { nullProtoRecord } from \"../../utils/record\";\n\nexport const PERSISTENCE_DEBOUNCE_MS = 500;\n\n/**\n * `load` is caller code with no settling contract, so an awaited `flush` bounds\n * the wait rather than inheriting it. Past this the edit stays queued for the\n * next successful snapshot, which is the same shape a failed load already has.\n */\nexport const FLUSH_LOAD_TIMEOUT_MS = 5_000;\n\ntype PersistenceAdapter<State> = {\n save(state: State): void | Promise<void>;\n};\n\ntype PersistenceStatus = {\n isPending: boolean;\n error: unknown;\n};\n\ntype PersistenceStatusMap = Record<string, PersistenceStatus>;\n\ntype PersistenceStatusUpdater = (\n updater: (prev: PersistenceStatusMap) => PersistenceStatusMap,\n) => void;\n\ntype UseInteractablePersistenceQueueOptions<State> = {\n adapterRef: RefObject<PersistenceAdapter<State> | undefined>;\n adapterGenerationRef: RefObject<number>;\n snapshot: () => State;\n updatePersistenceStatus: PersistenceStatusUpdater;\n retainDirtyWithoutAdapter?: boolean;\n};\n\nexport const useInteractablePersistenceQueue = <State>({\n adapterRef,\n adapterGenerationRef,\n snapshot,\n updatePersistenceStatus,\n retainDirtyWithoutAdapter = false,\n}: UseInteractablePersistenceQueueOptions<State>) => {\n const debounceTimerRef = useRef<ReturnType<typeof setTimeout> | undefined>(\n undefined,\n );\n const syncSeqRef = useRef(0);\n const latestSyncSeqByIdRef = useRef(new Map<string, number>());\n const inFlightPersistenceRef = useRef(0);\n const flushResolversRef = useRef<Array<() => void>>([]);\n const dirtyIdsRef = useRef(new Set<string>());\n\n type PersistenceBatch = {\n adapter: PersistenceAdapter<State>;\n payload: State;\n dirtyIds: Set<string>;\n seq: number;\n adapterGeneration: number;\n };\n\n const outgoingQueueRef = useRef<PersistenceBatch[]>([]);\n const runPersistenceRef = useRef<(batch?: PersistenceBatch) => void>(\n () => {},\n );\n\n const takeDirtyBatch = useCallback(\n (adapter: PersistenceAdapter<State>): PersistenceBatch | undefined => {\n if (dirtyIdsRef.current.size === 0) return;\n const dirtyIds = new Set(dirtyIdsRef.current);\n dirtyIdsRef.current.clear();\n const seq = ++syncSeqRef.current;\n for (const id of dirtyIds) latestSyncSeqByIdRef.current.set(id, seq);\n return {\n adapter,\n adapterGeneration: adapterGenerationRef.current,\n payload: snapshot(),\n dirtyIds,\n seq,\n };\n },\n [adapterGenerationRef, snapshot],\n );\n\n const enqueuePersistence = useCallback(\n (adapter: PersistenceAdapter<State>) => {\n const batch = takeDirtyBatch(adapter);\n if (!batch) return;\n if (inFlightPersistenceRef.current === 0) {\n runPersistenceRef.current(batch);\n } else {\n outgoingQueueRef.current.push(batch);\n }\n },\n [takeDirtyBatch],\n );\n\n const runPersistence = useCallback(\n async (batch?: PersistenceBatch) => {\n const resolved =\n batch ??\n (adapterRef.current ? takeDirtyBatch(adapterRef.current) : undefined);\n if (!resolved) {\n if (inFlightPersistenceRef.current === 0) {\n for (const resolve of flushResolversRef.current) resolve();\n flushResolversRef.current = [];\n }\n return;\n }\n\n const { adapter, adapterGeneration, payload, dirtyIds, seq } = resolved;\n inFlightPersistenceRef.current += 1;\n\n updatePersistenceStatus((prev) => {\n const persistence = nullProtoRecord(prev);\n for (const id of dirtyIds) {\n persistence[id] = { isPending: true, error: undefined };\n }\n return persistence;\n });\n\n const settleBatch = (status: PersistenceStatus | undefined) => {\n const settledIds: string[] = [];\n for (const id of dirtyIds) {\n if (\n latestSyncSeqByIdRef.current.get(id) !== seq ||\n dirtyIdsRef.current.has(id)\n )\n continue;\n latestSyncSeqByIdRef.current.delete(id);\n settledIds.push(id);\n }\n if (settledIds.length === 0) return;\n updatePersistenceStatus((prev) => {\n let changed = false;\n const persistence = nullProtoRecord(prev);\n for (const id of settledIds) {\n if (prev[id] === undefined) continue;\n if (status === undefined) delete persistence[id];\n else persistence[id] = status;\n changed = true;\n }\n return changed ? persistence : prev;\n });\n };\n\n try {\n await adapter.save(payload);\n settleBatch(undefined);\n } catch (e) {\n const isCurrentScope =\n adapterGenerationRef.current === adapterGeneration;\n if (!isCurrentScope) {\n console.warn(\n \"[Interactables] Persistence save failed after the adapter changed.\",\n e,\n );\n }\n settleBatch(\n isCurrentScope ? { isPending: false, error: e } : undefined,\n );\n } finally {\n inFlightPersistenceRef.current -= 1;\n const next =\n outgoingQueueRef.current.shift() ??\n (adapterRef.current && dirtyIdsRef.current.size > 0\n ? takeDirtyBatch(adapterRef.current)\n : undefined);\n if (next) {\n if (debounceTimerRef.current !== undefined) {\n clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = undefined;\n }\n runPersistenceRef.current(next);\n } else if (inFlightPersistenceRef.current === 0) {\n for (const resolve of flushResolversRef.current) resolve();\n flushResolversRef.current = [];\n }\n }\n },\n [adapterGenerationRef, adapterRef, takeDirtyBatch, updatePersistenceStatus],\n );\n runPersistenceRef.current = (nextBatch) => {\n void runPersistence(nextBatch);\n };\n\n const flushIfPending = useCallback(() => {\n if (debounceTimerRef.current !== undefined) {\n clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = undefined;\n }\n if (adapterRef.current) enqueuePersistence(adapterRef.current);\n }, [adapterRef, enqueuePersistence]);\n\n const schedulePersistence = useCallback(\n (id: string) => {\n if (!adapterRef.current && !retainDirtyWithoutAdapter) return;\n dirtyIdsRef.current.add(id);\n if (!adapterRef.current) return;\n if (debounceTimerRef.current !== undefined) {\n clearTimeout(debounceTimerRef.current);\n }\n debounceTimerRef.current = setTimeout(() => {\n debounceTimerRef.current = undefined;\n if (inFlightPersistenceRef.current === 0 && adapterRef.current) {\n enqueuePersistence(adapterRef.current);\n } else {\n debounceTimerRef.current = setTimeout(() => {\n debounceTimerRef.current = undefined;\n if (adapterRef.current) enqueuePersistence(adapterRef.current);\n }, PERSISTENCE_DEBOUNCE_MS);\n }\n }, PERSISTENCE_DEBOUNCE_MS);\n },\n [adapterRef, enqueuePersistence, retainDirtyWithoutAdapter],\n );\n\n const discardPending = useCallback(() => {\n if (debounceTimerRef.current !== undefined) {\n clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = undefined;\n }\n dirtyIdsRef.current.clear();\n if (\n inFlightPersistenceRef.current === 0 &&\n outgoingQueueRef.current.length === 0\n ) {\n for (const resolve of flushResolversRef.current) resolve();\n flushResolversRef.current = [];\n }\n }, []);\n\n const getDirtyIds = useCallback(() => new Set(dirtyIdsRef.current), []);\n\n const flush = useCallback(async () => {\n if (debounceTimerRef.current !== undefined) {\n clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = undefined;\n }\n const hasWork =\n inFlightPersistenceRef.current > 0 ||\n outgoingQueueRef.current.length > 0 ||\n (adapterRef.current !== undefined && dirtyIdsRef.current.size > 0);\n if (!hasWork) return;\n const p = new Promise<void>((resolve) => {\n flushResolversRef.current.push(resolve);\n });\n if (adapterRef.current) enqueuePersistence(adapterRef.current);\n return p;\n }, [adapterRef, enqueuePersistence]);\n\n return {\n discardPending,\n flushIfPending,\n getDirtyIds,\n schedulePersistence,\n flush,\n };\n};\n"],"mappings":"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"}
@@ -1,18 +1,17 @@
1
- import { Toolkit } from "./toolbox.js";
2
- import { McpServerConfig } from "assistant-stream";
3
- //#region src/react/model-context/define-mcp-toolkit.d.ts
1
+ import type { McpServerConfig } from "assistant-stream";
2
+ import type { Toolkit } from "./toolbox.js";
4
3
  export type McpToolkitEntry = McpServerConfig | {
5
- server: McpServerConfig;
6
- disabled?: boolean | undefined;
7
- /**
8
- * Prefix applied to every tool name exposed by this MCP server. Useful
9
- * when multiple servers publish the same tool name, such as `search`.
10
- */
11
- prefix?: string | undefined;
12
- tools?: Record<string, McpToolkitToolConfig> | undefined;
4
+ server: McpServerConfig;
5
+ disabled?: boolean | undefined;
6
+ /**
7
+ * Prefix applied to every tool name exposed by this MCP server. Useful
8
+ * when multiple servers publish the same tool name, such as `search`.
9
+ */
10
+ prefix?: string | undefined;
11
+ tools?: Record<string, McpToolkitToolConfig> | undefined;
13
12
  };
14
13
  export type McpToolkitToolConfig = {
15
- disabled?: boolean | undefined;
14
+ disabled?: boolean | undefined;
16
15
  };
17
16
  export type McpToolkitDefinition = Record<string, McpToolkitEntry>;
18
17
  /**
@@ -22,5 +21,4 @@ export type McpToolkitDefinition = Record<string, McpToolkitEntry>;
22
21
  * request.
23
22
  */
24
23
  export declare function defineMcpToolkit(definition: McpToolkitDefinition): Toolkit;
25
- //#endregion
26
24
  //# sourceMappingURL=define-mcp-toolkit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-mcp-toolkit.d.ts","names":[],"sources":["../../../src/react/model-context/define-mcp-toolkit.ts"],"mappings":";;;YAGY,kBACR;EAEE,QAAQ;EACR;;;;;EAKA;EACA,QAAQ,eAAe;;YAGjB;EACV;;YAGU,uBAAuB,eAAe;;;;;;;wBAQlC,iBAAiB,YAAY,uBAAuB"}
1
+ {"version":3,"file":"define-mcp-toolkit.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/define-mcp-toolkit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAkB;AAEzC,MAAM,MAAM,eAAe,GACvB,eAAe,GACf;IACE,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,SAAS,CAAC;CAC1D,CAAC;AAEN,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEnE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAoB1E"}
@@ -1,5 +1,4 @@
1
- import { Toolkit, ToolkitDefinition, ToolkitDefinitionEntryWithParameters } from "./toolbox.js";
2
- //#region src/react/model-context/define-toolkit.d.ts
1
+ import type { Toolkit, ToolkitDefinition, ToolkitDefinitionEntryWithParameters } from "./toolbox.js";
3
2
  /**
4
3
  * Toolkit authoring helper. Accepts the permissive {@link ToolkitDefinition}
5
4
  * (a generative `backend` tool may carry its server `execute`) and types the
@@ -10,7 +9,16 @@ import { Toolkit, ToolkitDefinition, ToolkitDefinitionEntryWithParameters } from
10
9
  * Outside generative compilation, it returns the toolkit unchanged and can be
11
10
  * used for plain frontend/backend/human toolkit objects.
12
11
  */
13
- export declare function defineToolkit<TArgsByName extends { [K in keyof TArgsByName]: Record<string, unknown>; }, TResultByName extends { [K in keyof TArgsByName]: unknown; } = { [K in keyof TArgsByName]: any; }>(_definition: { [K in keyof TArgsByName]: ToolkitDefinitionEntryWithParameters<TArgsByName[K], TResultByName[K]>; }): Toolkit & { [K in keyof TArgsByName]: ToolkitDefinitionEntryWithParameters<TArgsByName[K], TResultByName[K]>; };
12
+ export declare function defineToolkit<TArgsByName extends {
13
+ [K in keyof TArgsByName]: Record<string, unknown>;
14
+ }, TResultByName extends {
15
+ [K in keyof TArgsByName]: unknown;
16
+ } = {
17
+ [K in keyof TArgsByName]: any;
18
+ }>(_definition: {
19
+ [K in keyof TArgsByName]: ToolkitDefinitionEntryWithParameters<TArgsByName[K], TResultByName[K]>;
20
+ }): Toolkit & {
21
+ [K in keyof TArgsByName]: ToolkitDefinitionEntryWithParameters<TArgsByName[K], TResultByName[K]>;
22
+ };
14
23
  export declare function defineToolkit<const TDefinition extends ToolkitDefinition>(_definition: TDefinition): Toolkit & TDefinition;
15
- //#endregion
16
24
  //# sourceMappingURL=define-toolkit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-toolkit.d.ts","names":[],"sources":["../../../src/react/model-context/define-toolkit.ts"],"mappings":";;;;;;;;;;;;wBAgBgB,cACd,uBACG,WAAW,cAAc,4BAE5B,yBAAyB,WAAW,8BACjC,WAAW,sBAEd,gBACC,WAAW,cAAc,qCACxB,YAAY,IACZ,cAAc,SAEd,aACD,WAAW,cAAc,qCACxB,YAAY,IACZ,cAAc;wBAGF,oBAAoB,oBAAoB,mBACtD,aAAa,cACZ,UAAU"}
1
+ {"version":3,"file":"define-toolkit.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/define-toolkit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,oCAAoC,EACrC,qBAAkB;AAEnB;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,WAAW,SAAS;KACjB,CAAC,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAClD,EACD,aAAa,SAAS;KAAG,CAAC,IAAI,MAAM,WAAW,GAAG,OAAO;CAAE,GAAG;KAC3D,CAAC,IAAI,MAAM,WAAW,GAAG,GAAG;CAC9B,EACD,WAAW,EAAE;KACZ,CAAC,IAAI,MAAM,WAAW,GAAG,oCAAoC,CAC5D,WAAW,CAAC,CAAC,CAAC,EACd,aAAa,CAAC,CAAC,CAAC,CACjB;CACF,GAAG,OAAO,GAAG;KACX,CAAC,IAAI,MAAM,WAAW,GAAG,oCAAoC,CAC5D,WAAW,CAAC,CAAC,CAAC,EACd,aAAa,CAAC,CAAC,CAAC,CACjB;CACF,CAAC;AACF,wBAAgB,aAAa,CAAC,KAAK,CAAC,WAAW,SAAS,iBAAiB,EACvE,WAAW,EAAE,WAAW,GACvB,OAAO,GAAG,WAAW,CAAC"}
@@ -1,4 +1,3 @@
1
- //#region src/react/model-context/external-tool.d.ts
2
1
  /**
3
2
  * Marks a generative toolkit entry as an externally executed backend tool.
4
3
  *
@@ -9,5 +8,4 @@
9
8
  * client build.
10
9
  */
11
10
  export declare function externalTool(): never;
12
- //#endregion
13
11
  //# sourceMappingURL=external-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-tool.d.ts","names":[],"sources":["../../../src/react/model-context/external-tool.ts"],"mappings":";;;;;;;;;;wBASgB"}
1
+ {"version":3,"file":"external-tool.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/external-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,KAAK,CAMpC"}
@@ -1,4 +1,3 @@
1
- //#region src/react/model-context/human-tool.d.ts
2
1
  /**
3
2
  * Marks a tool as **human-in-the-loop**: the agent pauses and the UI (`render`)
4
3
  * supplies the result instead of code. Use it as the tool's `execute`:
@@ -22,5 +21,4 @@ export declare const hitlTool: typeof humanTool;
22
21
  * @deprecated Use {@link humanTool}.
23
22
  */
24
23
  export declare const hitl: typeof humanTool;
25
- //#endregion
26
24
  //# sourceMappingURL=human-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"human-tool.d.ts","names":[],"sources":["../../../src/react/model-context/human-tool.ts"],"mappings":";;;;;;;;;;;;;;;wBAcgB;;;;qBAYH,iBAAQ;;;;qBAKR,aAAI"}
1
+ {"version":3,"file":"human-tool.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/human-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,IAAI,KAAK,CAOjC;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,kBAAY,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,IAAI,kBAAY,CAAC"}
@@ -1,29 +1,28 @@
1
- import { ToolDefinition } from "./toolbox.js";
2
- import { Unstable_InteractableStateSchema } from "../types/scopes/interactables.js";
3
- import { Unstable_InferInteractableState, Unstable_InteractableVersionInfo } from "./useInteractable.js";
4
- import { ReactNode } from "react";
5
- //#region src/react/model-context/interactableTool.d.ts
1
+ import type { ReactNode } from "react";
2
+ import type { Unstable_InteractableStateSchema } from "../types/scopes/interactables.js";
3
+ import type { ToolDefinition } from "./toolbox.js";
4
+ import { type Unstable_InferInteractableState, type Unstable_InteractableVersionInfo } from "./useInteractable.js";
6
5
  export type Unstable_InteractableToolRenderProps<TState> = {
7
- /**
8
- * The live state. While `streaming` is true, fields the model has not
9
- * finished generating may still be missing.
10
- */
11
- state: TState;
12
- setState: (updater: TState | ((prev: TState) => TState)) => void;
13
- /**
14
- * This message's version of the instance: its state as of this point in the
15
- * conversation, whether it is the most recent edit, and a `restore()` back
16
- * to it. `undefined` while streaming.
17
- */
18
- version: Unstable_InteractableVersionInfo<TState> | undefined;
19
- id: string;
20
- /** True while the tool call's arguments are still streaming in. */
21
- streaming: boolean;
6
+ /**
7
+ * The live state. While `streaming` is true, fields the model has not
8
+ * finished generating may still be missing.
9
+ */
10
+ state: TState;
11
+ setState: (updater: TState | ((prev: TState) => TState)) => void;
12
+ /**
13
+ * This message's version of the instance: its state as of this point in the
14
+ * conversation, whether it is the most recent edit, and a `restore()` back
15
+ * to it. `undefined` while streaming.
16
+ */
17
+ version: Unstable_InteractableVersionInfo<TState> | undefined;
18
+ id: string;
19
+ /** True while the tool call's arguments are still streaming in. */
20
+ streaming: boolean;
22
21
  };
23
22
  export type Unstable_InteractableToolConfig<TSchema extends Unstable_InteractableStateSchema> = {
24
- description: string;
25
- stateSchema: TSchema;
26
- render: (props: Unstable_InteractableToolRenderProps<Unstable_InferInteractableState<TSchema>>) => ReactNode;
23
+ description: string;
24
+ stateSchema: TSchema;
25
+ render: (props: Unstable_InteractableToolRenderProps<Unstable_InferInteractableState<TSchema>>) => ReactNode;
27
26
  };
28
27
  /**
29
28
  * Defines a tool that creates a thread-scoped interactable from its arguments,
@@ -46,7 +45,6 @@ export type Unstable_InteractableToolConfig<TSchema extends Unstable_Interactabl
46
45
  * @deprecated Unstable / Experimental (not actually removed).
47
46
  */
48
47
  export declare const unstable_interactableTool: <TSchema extends Unstable_InteractableStateSchema>(config: Unstable_InteractableToolConfig<TSchema>) => ToolDefinition<Record<string, unknown>, {
49
- success: true;
48
+ success: true;
50
49
  }>;
51
- //#endregion
52
50
  //# sourceMappingURL=interactableTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactableTool.d.ts","names":[],"sources":["../../../src/react/model-context/interactableTool.tsx"],"mappings":";;;;;YAWY,qCAAqC;;;;;EAK/C,OAAO;EACP,WAAW,SAAS,WAAW,MAAM,WAAW;;;;;;EAMhD,SAAS,iCAAiC;EAC1C;;EAEA;;YAGU,gCACV,gBAAgB;EAEhB;EACA,aAAa;EACb,SACE,OAAO,qCACL,gCAAgC,cAE/B;;;;;;;;;;;;;;;;;;;;;;qBA2BM,4BACX,gBAAgB,kCAEhB,QAAQ,gCAAgC,aACvC,eAAe;EAA2B"}
1
+ {"version":3,"file":"interactableTool.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/interactableTool.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gCAAgC,EAAE,yCAAsC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAkB;AAEhD,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EACtC,6BAA0B;AAG3B,MAAM,MAAM,oCAAoC,CAAC,MAAM,IAAI;IACzD;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC;IACjE;;;;OAIG;IACH,OAAO,EAAE,gCAAgC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,+BAA+B,CACzC,OAAO,SAAS,gCAAgC,IAC9C;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,CACN,KAAK,EAAE,oCAAoC,CACzC,+BAA+B,CAAC,OAAO,CAAC,CACzC,KACE,SAAS,CAAC;CAChB,CAAC;AAMF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,yBAAyB,GACpC,OAAO,SAAS,gCAAgC,EAEhD,QAAQ,+BAA+B,CAAC,OAAO,CAAC,KAC/C,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAyG3D,CAAC"}
@@ -1,6 +1,5 @@
1
- import { AssistantDataUIProps } from "./useAssistantDataUI.js";
2
- import { FC } from "react";
3
- //#region src/react/model-context/makeAssistantDataUI.d.ts
1
+ import type { FC } from "react";
2
+ import { type AssistantDataUIProps } from "./useAssistantDataUI.js";
4
3
  /**
5
4
  * Component returned by {@link makeAssistantDataUI}.
6
5
  *
@@ -8,8 +7,8 @@ import { FC } from "react";
8
7
  * parts.
9
8
  */
10
9
  export type AssistantDataUI = FC & {
11
- /** Data renderer registered by this component. */
12
- unstable_data: AssistantDataUIProps;
10
+ /** Data renderer registered by this component. */
11
+ unstable_data: AssistantDataUIProps;
13
12
  };
14
13
  /**
15
14
  * Creates a React component that registers a named data-part renderer when
@@ -18,5 +17,4 @@ export type AssistantDataUI = FC & {
18
17
  * @param dataUI - Data renderer registration.
19
18
  */
20
19
  export declare const makeAssistantDataUI: <T = any>(dataUI: AssistantDataUIProps<T>) => AssistantDataUI;
21
- //#endregion
22
20
  //# sourceMappingURL=makeAssistantDataUI.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeAssistantDataUI.d.ts","names":[],"sources":["../../../src/react/model-context/makeAssistantDataUI.ts"],"mappings":";;;;;;;;;YAYY,kBAAkB;;EAE5B,eAAe;;;;;;;;qBASJ,sBAAuB,SAClC,QAAQ,qBAAqB,OAAE"}
1
+ {"version":3,"file":"makeAssistantDataUI.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/makeAssistantDataUI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,KAAK,oBAAoB,EAE1B,gCAA6B;AAE9B;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG;IACjC,kDAAkD;IAClD,aAAa,EAAE,oBAAoB,CAAC;CACrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,GAAG,GAAG,EACzC,QAAQ,oBAAoB,CAAC,CAAC,CAAC,oBAQhC,CAAC"}
@@ -1,6 +1,5 @@
1
- import { AssistantToolProps } from "./useAssistantTool.js";
2
- import { FC } from "react";
3
- //#region src/react/model-context/makeAssistantTool.d.ts
1
+ import type { FC } from "react";
2
+ import { type AssistantToolProps } from "./useAssistantTool.js";
4
3
  /**
5
4
  * Component returned by {@link makeAssistantTool}.
6
5
  *
@@ -12,8 +11,8 @@ import { FC } from "react";
12
11
  * https://assistant-ui.com/docs/migrations/toolkit-tools.
13
12
  */
14
13
  export type AssistantTool = FC & {
15
- /** Tool definition registered by this component. */
16
- unstable_tool: AssistantToolProps<any, any>;
14
+ /** Tool definition registered by this component. */
15
+ unstable_tool: AssistantToolProps<any, any>;
17
16
  };
18
17
  /**
19
18
  * Creates a React component that registers an assistant tool when rendered.
@@ -28,5 +27,4 @@ export type AssistantTool = FC & {
28
27
  * https://assistant-ui.com/docs/migrations/toolkit-tools.
29
28
  */
30
29
  export declare const makeAssistantTool: <TArgs extends Record<string, unknown>, TResult>(tool: AssistantToolProps<TArgs, TResult>) => AssistantTool;
31
- //#endregion
32
30
  //# sourceMappingURL=makeAssistantTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeAssistantTool.d.ts","names":[],"sources":["../../../src/react/model-context/makeAssistantTool.ts"],"mappings":";;;;;;;;;;;;;YAaY,gBAAgB;;EAE1B,eAAe;;;;;;;;;;;;;;qBAeJ,oBACX,cAAc,yBACd,SAEA,MAAM,mBAAmB,OAAO,aAAQ"}
1
+ {"version":3,"file":"makeAssistantTool.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/makeAssistantTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,KAAK,kBAAkB,EAAoB,8BAA2B;AAE/E;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,EAAE,GAAG;IAC/B,oDAAoD;IACpD,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CAC7C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,GAC5B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,OAAO,EAEP,MAAM,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,kBAQzC,CAAC"}
@@ -1,6 +1,5 @@
1
- import { AssistantToolUIProps } from "./useAssistantToolUI.js";
2
- import { FC } from "react";
3
- //#region src/react/model-context/makeAssistantToolUI.d.ts
1
+ import type { FC } from "react";
2
+ import { type AssistantToolUIProps } from "./useAssistantToolUI.js";
4
3
  /**
5
4
  * Component returned by {@link makeAssistantToolUI}.
6
5
  *
@@ -12,8 +11,8 @@ import { FC } from "react";
12
11
  * See https://assistant-ui.com/docs/migrations/toolkit-tools.
13
12
  */
14
13
  export type AssistantToolUI = FC & {
15
- /** Tool renderer registered by this component. */
16
- unstable_tool: AssistantToolUIProps<any, any>;
14
+ /** Tool renderer registered by this component. */
15
+ unstable_tool: AssistantToolUIProps<any, any>;
17
16
  };
18
17
  /**
19
18
  * Creates a React component that registers a tool-call renderer when rendered.
@@ -28,5 +27,4 @@ export type AssistantToolUI = FC & {
28
27
  * See https://assistant-ui.com/docs/migrations/toolkit-tools.
29
28
  */
30
29
  export declare const makeAssistantToolUI: <TArgs, TResult>(tool: AssistantToolUIProps<TArgs, TResult>) => AssistantToolUI;
31
- //#endregion
32
30
  //# sourceMappingURL=makeAssistantToolUI.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeAssistantToolUI.d.ts","names":[],"sources":["../../../src/react/model-context/makeAssistantToolUI.ts"],"mappings":";;;;;;;;;;;;;YAgBY,kBAAkB;;EAE5B,eAAe;;;;;;;;;;;;;;qBAeJ,sBAAuB,OAAO,SACzC,MAAM,qBAAqB,OAAO,aAAQ"}
1
+ {"version":3,"file":"makeAssistantToolUI.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/makeAssistantToolUI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,KAAK,oBAAoB,EAE1B,gCAA6B;AAE9B;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG;IACjC,kDAAkD;IAClD,aAAa,EAAE,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CAC/C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,EAAE,OAAO,EAChD,MAAM,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,oBAQ3C,CAAC"}
@@ -1,7 +1,6 @@
1
- import { Tool } from "assistant-stream";
2
- //#region src/react/model-context/provider-tool.d.ts
1
+ import type { Tool } from "assistant-stream";
3
2
  type ProviderToolDefinition<TArgs extends Record<string, unknown>> = Extract<Tool<TArgs, unknown>, {
4
- type: "provider";
3
+ type: "provider";
5
4
  }>;
6
5
  export type ProviderToolConfig<TArgs extends Record<string, unknown> = Record<string, unknown>> = Pick<ProviderToolDefinition<TArgs>, "providerId" | "args" | "parameters" | "providerOptions" | "supportsDeferredResults">;
7
6
  /**
@@ -9,5 +8,5 @@ export type ProviderToolConfig<TArgs extends Record<string, unknown> = Record<st
9
8
  * `execute: providerTool(...)` into a `type: "provider"` tool entry.
10
9
  */
11
10
  export declare function providerTool(_config: ProviderToolConfig): never;
12
- //#endregion
11
+ export {};
13
12
  //# sourceMappingURL=provider-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-tool.d.ts","names":[],"sources":["../../../src/react/model-context/provider-tool.ts"],"mappings":";;KAEK,uBAAuB,cAAc,2BAA2B,QACnE,KAAK;EACH;;YAGQ,mBACV,cAAc,0BAA0B,2BACtC,KACF,uBAAuB;;;;;wBAYT,aAAa,SAAS"}
1
+ {"version":3,"file":"provider-tool.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/provider-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,KAAK,sBAAsB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,OAAO,CAC1E,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EACpB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CACrB,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAC5B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC7D,IAAI,CACN,sBAAsB,CAAC,KAAK,CAAC,EAC3B,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,iBAAiB,GACjB,yBAAyB,CAC5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,KAAK,CAO/D"}
@@ -1,4 +1,3 @@
1
- //#region src/react/model-context/stub-tool.d.ts
2
1
  /**
3
2
  * Marks a generative toolkit entry as a frontend tool whose executor will be
4
3
  * supplied by `useAuiToolOverrides(...)`.
@@ -7,5 +6,4 @@
7
6
  * `"use generative"` toolkit file so the compiler can strip it.
8
7
  */
9
8
  export declare function stubTool(): never;
10
- //#endregion
11
9
  //# sourceMappingURL=stub-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stub-tool.d.ts","names":[],"sources":["../../../src/react/model-context/stub-tool.ts"],"mappings":";;;;;;;;wBAOgB"}
1
+ {"version":3,"file":"stub-tool.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/stub-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,QAAQ,IAAI,KAAK,CAMhC"}