@assistant-ui/core 0.3.18 → 0.3.20

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 (804) hide show
  1. package/dist/adapters/attachment.d.ts +9 -10
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/attachment.js +2 -1
  4. package/dist/adapters/attachment.js.map +1 -1
  5. package/dist/adapters/directive-formatter.d.ts +1 -2
  6. package/dist/adapters/directive-formatter.d.ts.map +1 -1
  7. package/dist/adapters/feedback.d.ts +2 -2
  8. package/dist/adapters/feedback.d.ts.map +1 -1
  9. package/dist/adapters/speech.d.ts +6 -7
  10. package/dist/adapters/speech.d.ts.map +1 -1
  11. package/dist/adapters/speech.js +13 -3
  12. package/dist/adapters/speech.js.map +1 -1
  13. package/dist/adapters/suggestion.d.ts +5 -6
  14. package/dist/adapters/suggestion.d.ts.map +1 -1
  15. package/dist/adapters/thread-history.d.ts +10 -7
  16. package/dist/adapters/thread-history.d.ts.map +1 -1
  17. package/dist/adapters/trigger.d.ts +1 -2
  18. package/dist/adapters/trigger.d.ts.map +1 -1
  19. package/dist/adapters/voice.d.ts +5 -6
  20. package/dist/adapters/voice.d.ts.map +1 -1
  21. package/dist/index.d.ts +2 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/internal/duplicate-detection.d.ts +1 -2
  24. package/dist/internal/duplicate-detection.d.ts.map +1 -1
  25. package/dist/internal.d.ts +1 -1
  26. package/dist/model-context/frame/host.d.ts +1 -2
  27. package/dist/model-context/frame/host.d.ts.map +1 -1
  28. package/dist/model-context/frame/host.js +26 -11
  29. package/dist/model-context/frame/host.js.map +1 -1
  30. package/dist/model-context/frame/provider.d.ts +1 -2
  31. package/dist/model-context/frame/provider.d.ts.map +1 -1
  32. package/dist/model-context/frame/types.d.ts +5 -6
  33. package/dist/model-context/frame/types.d.ts.map +1 -1
  34. package/dist/model-context/interactable-composer-metadata.d.ts +9 -10
  35. package/dist/model-context/interactable-composer-metadata.d.ts.map +1 -1
  36. package/dist/model-context/interactable-composer-metadata.js +11 -9
  37. package/dist/model-context/interactable-composer-metadata.js.map +1 -1
  38. package/dist/model-context/registry-handles.d.ts +3 -4
  39. package/dist/model-context/registry-handles.d.ts.map +1 -1
  40. package/dist/model-context/registry.d.ts +1 -2
  41. package/dist/model-context/registry.d.ts.map +1 -1
  42. package/dist/model-context/tool-call-text.d.ts +2 -3
  43. package/dist/model-context/tool-call-text.d.ts.map +1 -1
  44. package/dist/model-context/tool.d.ts +2 -3
  45. package/dist/model-context/tool.d.ts.map +1 -1
  46. package/dist/model-context/types.d.ts +8 -9
  47. package/dist/model-context/types.d.ts.map +1 -1
  48. package/dist/react/AssistantProvider.d.ts +3 -4
  49. package/dist/react/AssistantProvider.d.ts.map +1 -1
  50. package/dist/react/AssistantRuntimeProvider.d.ts +1 -2
  51. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  52. package/dist/react/RuntimeAdapter.d.ts +2 -3
  53. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  54. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +4 -5
  55. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  56. package/dist/react/adapters/LocalStorageThreadListAdapter.js +43 -19
  57. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  58. package/dist/react/adapters/TitleGenerationAdapter.d.ts +2 -3
  59. package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
  60. package/dist/react/client/AdaptedRemoteThread.d.ts +1 -2
  61. package/dist/react/client/AdaptedRemoteThread.d.ts.map +1 -1
  62. package/dist/react/client/DataRenderers.d.ts +1 -2
  63. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  64. package/dist/react/client/DataRenderers.js +20 -15
  65. package/dist/react/client/DataRenderers.js.map +1 -1
  66. package/dist/react/client/InMemoryThreadList.d.ts +3 -4
  67. package/dist/react/client/InMemoryThreadList.d.ts.map +1 -1
  68. package/dist/react/client/Interactables.d.ts +1 -2
  69. package/dist/react/client/Interactables.d.ts.map +1 -1
  70. package/dist/react/client/Interactables.js +11 -5
  71. package/dist/react/client/Interactables.js.map +1 -1
  72. package/dist/react/client/RemoteThreadList.d.ts +2 -3
  73. package/dist/react/client/RemoteThreadList.d.ts.map +1 -1
  74. package/dist/react/client/RemoteThreadList.js +3 -2
  75. package/dist/react/client/RemoteThreadList.js.map +1 -1
  76. package/dist/react/client/Tools.d.ts +2 -2
  77. package/dist/react/client/Tools.d.ts.map +1 -1
  78. package/dist/react/client/interactable-model-context.d.ts +2 -3
  79. package/dist/react/client/interactable-model-context.d.ts.map +1 -1
  80. package/dist/react/client/interactable-model-context.js +3 -2
  81. package/dist/react/client/interactable-model-context.js.map +1 -1
  82. package/dist/react/index.d.ts +2 -2
  83. package/dist/react/index.js +2 -2
  84. package/dist/react/interactables-legacy/Interactables.d.ts +1 -2
  85. package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
  86. package/dist/react/interactables-legacy/interactable-model-context.d.ts +2 -3
  87. package/dist/react/interactables-legacy/interactable-model-context.d.ts.map +1 -1
  88. package/dist/react/interactables-legacy/scopes.d.ts +9 -10
  89. package/dist/react/interactables-legacy/scopes.d.ts.map +1 -1
  90. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts +2 -3
  91. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts.map +1 -1
  92. package/dist/react/interactables-legacy/useAssistantInteractable.js +3 -0
  93. package/dist/react/interactables-legacy/useAssistantInteractable.js.map +1 -1
  94. package/dist/react/interactables-legacy/useInteractableState.d.ts +1 -2
  95. package/dist/react/interactables-legacy/useInteractableState.d.ts.map +1 -1
  96. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts +1 -2
  97. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts.map +1 -1
  98. package/dist/react/model-context/define-mcp-toolkit.d.ts +4 -5
  99. package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -1
  100. package/dist/react/model-context/define-toolkit.d.ts +2 -3
  101. package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
  102. package/dist/react/model-context/external-tool.d.ts +1 -2
  103. package/dist/react/model-context/external-tool.d.ts.map +1 -1
  104. package/dist/react/model-context/human-tool.d.ts +3 -4
  105. package/dist/react/model-context/human-tool.d.ts.map +1 -1
  106. package/dist/react/model-context/interactableTool.d.ts +3 -4
  107. package/dist/react/model-context/interactableTool.d.ts.map +1 -1
  108. package/dist/react/model-context/makeAssistantDataUI.d.ts +2 -3
  109. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
  110. package/dist/react/model-context/makeAssistantTool.d.ts +2 -3
  111. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  112. package/dist/react/model-context/makeAssistantToolUI.d.ts +2 -3
  113. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  114. package/dist/react/model-context/provider-tool.d.ts +2 -3
  115. package/dist/react/model-context/provider-tool.d.ts.map +1 -1
  116. package/dist/react/model-context/stub-tool.d.ts +1 -2
  117. package/dist/react/model-context/stub-tool.d.ts.map +1 -1
  118. package/dist/react/model-context/toolbox.d.ts +9 -10
  119. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  120. package/dist/react/model-context/useAssistantContext.d.ts +2 -2
  121. package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
  122. package/dist/react/model-context/useAssistantDataUI.d.ts +2 -3
  123. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
  124. package/dist/react/model-context/useAssistantInstructions.d.ts +2 -2
  125. package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
  126. package/dist/react/model-context/useAssistantTool.d.ts +2 -3
  127. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  128. package/dist/react/model-context/useAssistantToolUI.d.ts +2 -3
  129. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  130. package/dist/react/model-context/useAuiToolOverrides.d.ts +1 -2
  131. package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -1
  132. package/dist/react/model-context/useInlineRender.d.ts +1 -2
  133. package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
  134. package/dist/react/model-context/useInteractable.d.ts +4 -5
  135. package/dist/react/model-context/useInteractable.d.ts.map +1 -1
  136. package/dist/react/model-context/useInteractable.js +4 -1
  137. package/dist/react/model-context/useInteractable.js.map +1 -1
  138. package/dist/react/model-context/useInteractableState.d.ts +1 -2
  139. package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
  140. package/dist/react/model-context/useInteractableVersions.d.ts +1 -2
  141. package/dist/react/model-context/useInteractableVersions.d.ts.map +1 -1
  142. package/dist/react/model-context/useInteractableVersions.js +1 -1
  143. package/dist/react/model-context/useToolArgsStatus.d.ts +2 -3
  144. package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
  145. package/dist/react/primitive-hooks/useActionBarCopy.d.ts +2 -3
  146. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  147. package/dist/react/primitive-hooks/useActionBarEdit.d.ts +1 -2
  148. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
  149. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +2 -3
  150. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
  151. package/dist/react/primitive-hooks/useActionBarReload.d.ts +1 -2
  152. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
  153. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +1 -2
  154. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
  155. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +1 -2
  156. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
  157. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +1 -2
  158. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
  159. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +1 -2
  160. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
  161. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +1 -2
  162. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
  163. package/dist/react/primitive-hooks/useComposerCancel.d.ts +1 -2
  164. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
  165. package/dist/react/primitive-hooks/useComposerDictate.d.ts +1 -2
  166. package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
  167. package/dist/react/primitive-hooks/useComposerSend.d.ts +1 -2
  168. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  169. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +1 -2
  170. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
  171. package/dist/react/primitive-hooks/useEditComposerSend.d.ts +1 -2
  172. package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
  173. package/dist/react/primitive-hooks/useMessageBranching.d.ts +1 -2
  174. package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
  175. package/dist/react/primitive-hooks/useMessageError.d.ts +1 -2
  176. package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
  177. package/dist/react/primitive-hooks/useMessageReload.d.ts +1 -2
  178. package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
  179. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +2 -3
  180. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
  181. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +1 -2
  182. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
  183. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +1 -2
  184. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
  185. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +1 -2
  186. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
  187. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +1 -2
  188. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
  189. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +1 -2
  190. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
  191. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +1 -2
  192. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
  193. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +1 -2
  194. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
  195. package/dist/react/primitive-hooks/useThreadListNew.d.ts +1 -2
  196. package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
  197. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts +1 -2
  198. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts.map +1 -1
  199. package/dist/react/primitive-hooks/useThreadMessages.d.ts +1 -2
  200. package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
  201. package/dist/react/primitive-hooks/useVoice.d.ts +3 -4
  202. package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
  203. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +2 -3
  204. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  205. package/dist/react/primitives/composer/ComposerAttachments.d.ts +4 -5
  206. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  207. package/dist/react/primitives/composer/ComposerIf.d.ts +4 -5
  208. package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
  209. package/dist/react/primitives/composer/ComposerQueue.d.ts +2 -3
  210. package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
  211. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +4 -5
  212. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -1
  213. package/dist/react/primitives/generativeUI/GenerativeUI.js +27 -28
  214. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  215. package/dist/react/primitives/message/MessageAttachments.d.ts +4 -5
  216. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
  217. package/dist/react/primitives/message/MessageGroupedParts.d.ts +13 -5
  218. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  219. package/dist/react/primitives/message/MessageGroupedParts.js +3 -2
  220. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  221. package/dist/react/primitives/message/MessageParts.d.ts +10 -10
  222. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  223. package/dist/react/primitives/message/MessageQuote.d.ts +2 -3
  224. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
  225. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +2 -3
  226. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  227. package/dist/react/primitives/part/PartMessages.d.ts +4 -4
  228. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  229. package/dist/react/primitives/part/PartMessages.js +1 -0
  230. package/dist/react/primitives/part/PartMessages.js.map +1 -1
  231. package/dist/react/primitives/thread/ThreadMessages.d.ts +7 -8
  232. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  233. package/dist/react/primitives/thread/ThreadMessages.js +6 -5
  234. package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
  235. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +5 -6
  236. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  237. package/dist/react/primitives/threadList/ThreadListItems.d.ts +4 -5
  238. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  239. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +2 -3
  240. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  241. package/dist/react/providers/AttachmentByIndexProvider.d.ts +2 -3
  242. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  243. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +1 -2
  244. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  245. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +1 -2
  246. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  247. package/dist/react/providers/MessageByIdProvider.d.ts +1 -2
  248. package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
  249. package/dist/react/providers/MessageByIndexProvider.d.ts +1 -2
  250. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
  251. package/dist/react/providers/PartByIndexProvider.d.ts +1 -2
  252. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
  253. package/dist/react/providers/QueueItemByIndexProvider.d.ts +2 -3
  254. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
  255. package/dist/react/providers/ReadonlyThreadProvider.d.ts +2 -3
  256. package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
  257. package/dist/react/providers/SuggestionByIndexProvider.d.ts +2 -3
  258. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  259. package/dist/react/providers/TextMessagePartProvider.d.ts +1 -2
  260. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  261. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +1 -2
  262. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
  263. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +1 -2
  264. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  265. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +3 -2
  266. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  267. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +17 -7
  268. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  269. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +1 -2
  270. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  271. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +2 -1
  272. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  273. package/dist/react/runtimes/RemoteThreadResource.d.ts +4 -5
  274. package/dist/react/runtimes/RemoteThreadResource.d.ts.map +1 -1
  275. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +3 -3
  276. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  277. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts +2 -3
  278. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts.map +1 -1
  279. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts +3 -4
  280. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts.map +1 -1
  281. package/dist/react/runtimes/assistant-transport/runManager.d.ts +2 -3
  282. package/dist/react/runtimes/assistant-transport/runManager.d.ts.map +1 -1
  283. package/dist/react/runtimes/assistant-transport/types.d.ts +17 -18
  284. package/dist/react/runtimes/assistant-transport/types.d.ts.map +1 -1
  285. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts +4 -5
  286. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  287. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts +1 -2
  288. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts.map +1 -1
  289. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts +1 -2
  290. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts.map +1 -1
  291. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +3 -26
  292. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  293. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +152 -378
  294. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  295. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +2 -2
  296. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  297. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +22 -2
  298. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  299. package/dist/react/runtimes/cloud/auiV0.d.ts +51 -18
  300. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  301. package/dist/react/runtimes/cloud/auiV0.js +125 -17
  302. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  303. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts +6 -6
  304. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts.map +1 -1
  305. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.js +4 -0
  306. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.js.map +1 -1
  307. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts +1 -2
  308. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts.map +1 -1
  309. package/dist/react/runtimes/cloud/sdkIdentity.d.ts +5 -0
  310. package/dist/react/runtimes/cloud/sdkIdentity.d.ts.map +1 -0
  311. package/dist/react/runtimes/cloud/sdkIdentity.js +9 -0
  312. package/dist/react/runtimes/cloud/sdkIdentity.js.map +1 -0
  313. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +1 -2
  314. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  315. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts +1 -2
  316. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  317. package/dist/react/runtimes/createMessageConverter.d.ts +1 -2
  318. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  319. package/dist/react/runtimes/createRuntimeExtras.d.ts +3 -4
  320. package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
  321. package/dist/react/runtimes/external-message-converter.d.ts +14 -4
  322. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  323. package/dist/react/runtimes/external-message-converter.js +26 -61
  324. package/dist/react/runtimes/external-message-converter.js.map +1 -1
  325. package/dist/react/runtimes/useExternalStoreRuntime.d.ts +1 -2
  326. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
  327. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +1 -2
  328. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
  329. package/dist/react/runtimes/useLocalRuntime.d.ts +3 -4
  330. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  331. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +1 -2
  332. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  333. package/dist/react/runtimes/useRemoteThreadListRuntime.js +3 -3
  334. package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
  335. package/dist/react/runtimes/useRuntimeAdapters.d.ts +4 -4
  336. package/dist/react/runtimes/useRuntimeAdapters.d.ts.map +1 -1
  337. package/dist/react/runtimes/useStreamingTiming.d.ts +2 -2
  338. package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
  339. package/dist/react/types/MessagePartComponentTypes.d.ts +26 -27
  340. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  341. package/dist/react/types/scopes/dataRenderers.d.ts +3 -4
  342. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
  343. package/dist/react/types/scopes/interactables.d.ts +10 -11
  344. package/dist/react/types/scopes/interactables.d.ts.map +1 -1
  345. package/dist/react/types/scopes/tools.d.ts +4 -5
  346. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  347. package/dist/react/utils/getMessageQuote.d.ts +1 -2
  348. package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
  349. package/dist/react/utils/groupParts.d.ts +13 -9
  350. package/dist/react/utils/groupParts.d.ts.map +1 -1
  351. package/dist/react/utils/groupParts.js +6 -0
  352. package/dist/react/utils/groupParts.js.map +1 -1
  353. package/dist/react/utils/useJSONEqual.d.ts +3 -2
  354. package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
  355. package/dist/react/utils/useJSONEqual.js +6 -1
  356. package/dist/react/utils/useJSONEqual.js.map +1 -1
  357. package/dist/react/utils/useJSONSchemaDependency.d.ts +6 -0
  358. package/dist/react/utils/useJSONSchemaDependency.d.ts.map +1 -0
  359. package/dist/react/utils/useJSONSchemaDependency.js +20 -0
  360. package/dist/react/utils/useJSONSchemaDependency.js.map +1 -0
  361. package/dist/runtime/api/assistant-runtime.d.ts +2 -3
  362. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  363. package/dist/runtime/api/attachment-runtime.d.ts +6 -7
  364. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  365. package/dist/runtime/api/bindings.d.ts +5 -6
  366. package/dist/runtime/api/bindings.d.ts.map +1 -1
  367. package/dist/runtime/api/composer-runtime.d.ts +10 -10
  368. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  369. package/dist/runtime/api/message-part-runtime.d.ts +3 -4
  370. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  371. package/dist/runtime/api/message-part-runtime.js +3 -2
  372. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  373. package/dist/runtime/api/message-runtime.d.ts +8 -6
  374. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  375. package/dist/runtime/api/message-runtime.js +3 -2
  376. package/dist/runtime/api/message-runtime.js.map +1 -1
  377. package/dist/runtime/api/paths.d.ts +6 -7
  378. package/dist/runtime/api/paths.d.ts.map +1 -1
  379. package/dist/runtime/api/thread-list-item-runtime.d.ts +8 -8
  380. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  381. package/dist/runtime/api/thread-list-runtime.d.ts +4 -5
  382. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  383. package/dist/runtime/api/thread-runtime.d.ts +10 -11
  384. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  385. package/dist/runtime/api/thread-runtime.js +2 -5
  386. package/dist/runtime/api/thread-runtime.js.map +1 -1
  387. package/dist/runtime/base/base-assistant-runtime-core.d.ts +1 -2
  388. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  389. package/dist/runtime/base/base-composer-runtime-core.d.ts +2 -2
  390. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  391. package/dist/runtime/base/base-composer-runtime-core.js +46 -10
  392. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  393. package/dist/runtime/base/base-thread-runtime-core.d.ts +10 -3
  394. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  395. package/dist/runtime/base/base-thread-runtime-core.js +212 -77
  396. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  397. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +1 -2
  398. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  399. package/dist/runtime/base/default-edit-composer-runtime-core.js +12 -2
  400. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  401. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +1 -2
  402. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  403. package/dist/runtime/base/default-thread-composer-runtime-core.js +7 -1
  404. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  405. package/dist/runtime/branch/external-thread-branch-adapter.d.ts +1 -2
  406. package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
  407. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +1 -2
  408. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  409. package/dist/runtime/interfaces/composer-runtime-core.d.ts +10 -11
  410. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  411. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +4 -5
  412. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  413. package/dist/runtime/interfaces/thread-runtime-core.d.ts +23 -16
  414. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  415. package/dist/runtime/queue/external-thread-queue-adapter.d.ts +2 -3
  416. package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
  417. package/dist/runtime/queue/message-queue.d.ts +10 -4
  418. package/dist/runtime/queue/message-queue.d.ts.map +1 -1
  419. package/dist/runtime/queue/message-queue.js +70 -7
  420. package/dist/runtime/queue/message-queue.js.map +1 -1
  421. package/dist/runtime/queue/queue-item.d.ts +2 -3
  422. package/dist/runtime/queue/queue-item.d.ts.map +1 -1
  423. package/dist/runtime/utils/abortable-thread-load.d.ts +2 -3
  424. package/dist/runtime/utils/abortable-thread-load.d.ts.map +1 -1
  425. package/dist/runtime/utils/attachment-add-operations.d.ts +3 -4
  426. package/dist/runtime/utils/attachment-add-operations.d.ts.map +1 -1
  427. package/dist/runtime/utils/auto-status.d.ts +9 -6
  428. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  429. package/dist/runtime/utils/auto-status.js +12 -4
  430. package/dist/runtime/utils/auto-status.js.map +1 -1
  431. package/dist/runtime/utils/chat-model-adapter.d.ts +5 -6
  432. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  433. package/dist/runtime/utils/external-message-conversion.d.ts +26 -15
  434. package/dist/runtime/utils/external-message-conversion.d.ts.map +1 -1
  435. package/dist/runtime/utils/external-message-conversion.js +51 -14
  436. package/dist/runtime/utils/external-message-conversion.js.map +1 -1
  437. package/dist/runtime/utils/external-store-message.d.ts +4 -5
  438. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  439. package/dist/runtime/utils/message-repository-session.d.ts +3 -4
  440. package/dist/runtime/utils/message-repository-session.d.ts.map +1 -1
  441. package/dist/runtime/utils/message-repository.d.ts +4 -5
  442. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  443. package/dist/runtime/utils/message-repository.js +3 -3
  444. package/dist/runtime/utils/message-repository.js.map +1 -1
  445. package/dist/runtime/utils/pending-tool-calls.d.ts +2 -3
  446. package/dist/runtime/utils/pending-tool-calls.d.ts.map +1 -1
  447. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +1 -2
  448. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
  449. package/dist/runtime/utils/runtime-extras-brand.d.ts +2 -3
  450. package/dist/runtime/utils/runtime-extras-brand.d.ts.map +1 -1
  451. package/dist/runtime/utils/stored-message-parts.d.ts +21 -0
  452. package/dist/runtime/utils/stored-message-parts.d.ts.map +1 -0
  453. package/dist/runtime/utils/stored-message-parts.js +83 -0
  454. package/dist/runtime/utils/stored-message-parts.js.map +1 -0
  455. package/dist/runtime/utils/streaming-timing.d.ts +4 -5
  456. package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
  457. package/dist/runtime/utils/thread-message-like.d.ts +7 -6
  458. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  459. package/dist/runtime/utils/thread-message-like.js +4 -2
  460. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  461. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts +3 -4
  462. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts.map +1 -1
  463. package/dist/runtime/utils/tool-call-tree.d.ts +4 -5
  464. package/dist/runtime/utils/tool-call-tree.d.ts.map +1 -1
  465. package/dist/runtimes/assistant-transport/utils.d.ts +1 -2
  466. package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
  467. package/dist/runtimes/external-store/external-store-adapter.d.ts +9 -6
  468. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  469. package/dist/runtimes/external-store/external-store-runtime-core.d.ts +1 -2
  470. package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
  471. package/dist/runtimes/external-store/external-store-shared-options.d.ts +2 -3
  472. package/dist/runtimes/external-store/external-store-shared-options.d.ts.map +1 -1
  473. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +2 -3
  474. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  475. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +4 -3
  476. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  477. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +36 -6
  478. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  479. package/dist/runtimes/external-store/thread-message-converter.d.ts +2 -3
  480. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  481. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts +2 -3
  482. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts.map +1 -1
  483. package/dist/runtimes/internal.d.ts +1 -1
  484. package/dist/runtimes/local/local-runtime-core.d.ts +1 -2
  485. package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
  486. package/dist/runtimes/local/local-runtime-options.d.ts +1 -2
  487. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  488. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +2 -3
  489. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  490. package/dist/runtimes/local/local-thread-runtime-core.d.ts +10 -5
  491. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  492. package/dist/runtimes/local/local-thread-runtime-core.js +57 -10
  493. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  494. package/dist/runtimes/local/should-continue.d.ts +1 -2
  495. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  496. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +1 -2
  497. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  498. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +1 -2
  499. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  500. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts +1 -2
  501. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts.map +1 -1
  502. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +1 -2
  503. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  504. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +1 -2
  505. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  506. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +16 -17
  507. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  508. package/dist/runtimes/remote-thread-list/title-generation.d.ts +7 -8
  509. package/dist/runtimes/remote-thread-list/title-generation.d.ts.map +1 -1
  510. package/dist/runtimes/remote-thread-list/title.d.ts +2 -3
  511. package/dist/runtimes/remote-thread-list/title.d.ts.map +1 -1
  512. package/dist/runtimes/remote-thread-list/types.d.ts +8 -9
  513. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  514. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +4 -5
  515. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
  516. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +2 -1
  517. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  518. package/dist/store/clients/chain-of-thought-client.d.ts +1 -2
  519. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  520. package/dist/store/clients/external-thread.d.ts +3 -4
  521. package/dist/store/clients/external-thread.d.ts.map +1 -1
  522. package/dist/store/clients/external-thread.js +256 -211
  523. package/dist/store/clients/external-thread.js.map +1 -1
  524. package/dist/store/clients/model-context-client.d.ts +1 -2
  525. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  526. package/dist/store/clients/no-op-composer-client.d.ts +1 -2
  527. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  528. package/dist/store/clients/runtime-adapter.d.ts +1 -2
  529. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  530. package/dist/store/clients/single-thread-list.d.ts +1 -2
  531. package/dist/store/clients/single-thread-list.d.ts.map +1 -1
  532. package/dist/store/clients/suggestions.d.ts +3 -4
  533. package/dist/store/clients/suggestions.d.ts.map +1 -1
  534. package/dist/store/clients/thread-message-client.d.ts +2 -3
  535. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  536. package/dist/store/clients/thread-selection-events.d.ts +1 -2
  537. package/dist/store/clients/thread-selection-events.d.ts.map +1 -1
  538. package/dist/store/clients/thread-tasks.d.ts +12 -0
  539. package/dist/store/clients/thread-tasks.d.ts.map +1 -0
  540. package/dist/store/clients/thread-tasks.js +69 -0
  541. package/dist/store/clients/thread-tasks.js.map +1 -0
  542. package/dist/store/env.d.ts +1 -2
  543. package/dist/store/env.d.ts.map +1 -1
  544. package/dist/store/index.d.ts +3 -2
  545. package/dist/store/index.js +3 -3
  546. package/dist/store/primitive-predicates.d.ts +11 -12
  547. package/dist/store/primitive-predicates.d.ts.map +1 -1
  548. package/dist/store/primitive-predicates.js +4 -4
  549. package/dist/store/primitive-predicates.js.map +1 -1
  550. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +1 -2
  551. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  552. package/dist/store/runtime-clients/composer-runtime-client.d.ts +1 -2
  553. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  554. package/dist/store/runtime-clients/handle-runtime-action.d.ts +1 -2
  555. package/dist/store/runtime-clients/handle-runtime-action.d.ts.map +1 -1
  556. package/dist/store/runtime-clients/handle-thread-list-action.d.ts +1 -2
  557. package/dist/store/runtime-clients/handle-thread-list-action.d.ts.map +1 -1
  558. package/dist/store/runtime-clients/liveRef.d.ts +1 -2
  559. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
  560. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +1 -2
  561. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  562. package/dist/store/runtime-clients/message-runtime-client.d.ts +1 -2
  563. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  564. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +1 -2
  565. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  566. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +1 -2
  567. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  568. package/dist/store/runtime-clients/thread-runtime-client.d.ts +1 -2
  569. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  570. package/dist/store/runtime-clients/thread-runtime-client.js +176 -128
  571. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  572. package/dist/store/runtime-clients/useSubscribable.d.ts +1 -2
  573. package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
  574. package/dist/store/scope-registration.d.ts +2 -0
  575. package/dist/store/scope-registration.d.ts.map +1 -1
  576. package/dist/store/scopes/attachment.d.ts +4 -5
  577. package/dist/store/scopes/attachment.d.ts.map +1 -1
  578. package/dist/store/scopes/chain-of-thought.d.ts +5 -6
  579. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  580. package/dist/store/scopes/composer.d.ts +6 -7
  581. package/dist/store/scopes/composer.d.ts.map +1 -1
  582. package/dist/store/scopes/message.d.ts +6 -6
  583. package/dist/store/scopes/message.d.ts.map +1 -1
  584. package/dist/store/scopes/model-context.d.ts +3 -4
  585. package/dist/store/scopes/model-context.d.ts.map +1 -1
  586. package/dist/store/scopes/part.d.ts +4 -5
  587. package/dist/store/scopes/part.d.ts.map +1 -1
  588. package/dist/store/scopes/queue-item.d.ts +4 -4
  589. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  590. package/dist/store/scopes/suggestion.d.ts +4 -5
  591. package/dist/store/scopes/suggestion.d.ts.map +1 -1
  592. package/dist/store/scopes/suggestions.d.ts +5 -6
  593. package/dist/store/scopes/suggestions.d.ts.map +1 -1
  594. package/dist/store/scopes/task.d.ts +35 -0
  595. package/dist/store/scopes/task.d.ts.map +1 -0
  596. package/dist/store/scopes/task.js +0 -0
  597. package/dist/store/scopes/thread-list-item.d.ts +5 -6
  598. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  599. package/dist/store/scopes/thread.d.ts +25 -6
  600. package/dist/store/scopes/thread.d.ts.map +1 -1
  601. package/dist/store/scopes/threads.d.ts +4 -5
  602. package/dist/store/scopes/threads.d.ts.map +1 -1
  603. package/dist/subscribable/subscribable.d.ts +15 -15
  604. package/dist/subscribable/subscribable.d.ts.map +1 -1
  605. package/dist/subscribable/subscribable.js +23 -15
  606. package/dist/subscribable/subscribable.js.map +1 -1
  607. package/dist/tests/remote-thread-list-test-helpers.d.ts +5 -6
  608. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -1
  609. package/dist/types/attachment.d.ts +9 -10
  610. package/dist/types/attachment.d.ts.map +1 -1
  611. package/dist/types/augmentations.d.ts +3 -4
  612. package/dist/types/augmentations.d.ts.map +1 -1
  613. package/dist/types/directive.d.ts +2 -3
  614. package/dist/types/directive.d.ts.map +1 -1
  615. package/dist/types/error.d.ts +8 -9
  616. package/dist/types/error.d.ts.map +1 -1
  617. package/dist/types/index.d.ts +2 -2
  618. package/dist/types/message.d.ts +53 -44
  619. package/dist/types/message.d.ts.map +1 -1
  620. package/dist/types/message.js.map +1 -1
  621. package/dist/types/quote.d.ts +1 -2
  622. package/dist/types/quote.d.ts.map +1 -1
  623. package/dist/types/trigger.d.ts +2 -3
  624. package/dist/types/trigger.d.ts.map +1 -1
  625. package/dist/types/unsubscribe.d.ts +1 -2
  626. package/dist/types/unsubscribe.d.ts.map +1 -1
  627. package/dist/utils/abortable-iterable.d.ts +2 -3
  628. package/dist/utils/abortable-iterable.d.ts.map +1 -1
  629. package/dist/utils/abortable-iterable.js +30 -14
  630. package/dist/utils/abortable-iterable.js.map +1 -1
  631. package/dist/utils/composite-context-provider.d.ts +1 -2
  632. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  633. package/dist/utils/data-url.d.ts +6 -7
  634. package/dist/utils/data-url.d.ts.map +1 -1
  635. package/dist/utils/getGroupStatus.d.ts +17 -2
  636. package/dist/utils/getGroupStatus.d.ts.map +1 -1
  637. package/dist/utils/getGroupStatus.js +32 -7
  638. package/dist/utils/getGroupStatus.js.map +1 -1
  639. package/dist/utils/id.d.ts +3 -4
  640. package/dist/utils/id.d.ts.map +1 -1
  641. package/dist/utils/image-media-type.d.ts +1 -2
  642. package/dist/utils/image-media-type.d.ts.map +1 -1
  643. package/dist/utils/invoke-user-callback.d.ts +1 -2
  644. package/dist/utils/invoke-user-callback.d.ts.map +1 -1
  645. package/dist/utils/json/is-json-equal.d.ts +1 -2
  646. package/dist/utils/json/is-json-equal.d.ts.map +1 -1
  647. package/dist/utils/json/is-json.d.ts +4 -5
  648. package/dist/utils/json/is-json.d.ts.map +1 -1
  649. package/dist/utils/json/stable-stringify-tool-args.d.ts +2 -3
  650. package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -1
  651. package/dist/utils/normalizePartStatus.d.ts +4 -5
  652. package/dist/utils/normalizePartStatus.d.ts.map +1 -1
  653. package/dist/utils/notify-event-listeners.d.ts +1 -2
  654. package/dist/utils/notify-event-listeners.d.ts.map +1 -1
  655. package/dist/utils/record.d.ts +1 -2
  656. package/dist/utils/record.d.ts.map +1 -1
  657. package/dist/utils/silent-runtime-action.d.ts +2 -3
  658. package/dist/utils/silent-runtime-action.d.ts.map +1 -1
  659. package/dist/utils/text.d.ts +1 -2
  660. package/dist/utils/text.d.ts.map +1 -1
  661. package/dist/utils/wire-media.d.ts +3 -4
  662. package/dist/utils/wire-media.d.ts.map +1 -1
  663. package/dist/utils/wire-media.js +2 -2
  664. package/dist/utils/wire-media.js.map +1 -1
  665. package/package.json +15 -14
  666. package/src/adapters/attachment.ts +8 -1
  667. package/src/adapters/feedback.ts +1 -0
  668. package/src/adapters/speech.test.ts +236 -0
  669. package/src/adapters/speech.ts +17 -10
  670. package/src/adapters/thread-history.ts +3 -0
  671. package/src/index.ts +1 -0
  672. package/src/model-context/frame/host.test.ts +113 -1
  673. package/src/model-context/frame/host.ts +39 -12
  674. package/src/model-context/frame/provider.test.ts +45 -20
  675. package/src/model-context/interactable-composer-metadata.test.ts +30 -0
  676. package/src/model-context/interactable-composer-metadata.ts +10 -10
  677. package/src/react/RuntimeAdapter.test.ts +4 -1
  678. package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +361 -0
  679. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +69 -19
  680. package/src/react/client/DataRenderers.test.tsx +45 -0
  681. package/src/react/client/DataRenderers.ts +13 -9
  682. package/src/react/client/Interactables.test.ts +52 -4
  683. package/src/react/client/Interactables.ts +7 -1
  684. package/src/react/client/RemoteThreadList.concurrent.test.tsx +9 -3
  685. package/src/react/client/RemoteThreadList.test.ts +46 -7
  686. package/src/react/client/RemoteThreadList.ts +15 -2
  687. package/src/react/client/interactable-model-context.test.ts +44 -0
  688. package/src/react/client/interactable-model-context.ts +3 -2
  689. package/src/react/index.ts +5 -1
  690. package/src/react/interactables-legacy/Interactables.test.ts +9 -3
  691. package/src/react/interactables-legacy/useAssistantInteractable.test.tsx +150 -0
  692. package/src/react/interactables-legacy/useAssistantInteractable.ts +10 -1
  693. package/src/react/model-context/useInteractable.test.tsx +204 -0
  694. package/src/react/model-context/useInteractable.ts +3 -0
  695. package/src/react/primitive-hooks/useActionBarCopy.test.ts +5 -6
  696. package/src/react/primitive-hooks/useSuggestionTrigger.test.ts +0 -1
  697. package/src/react/primitives/generativeUI/GenerativeUI.test.tsx +54 -0
  698. package/src/react/primitives/generativeUI/GenerativeUI.tsx +13 -18
  699. package/src/react/primitives/message/MessageGroupedParts.test.tsx +99 -0
  700. package/src/react/primitives/message/MessageGroupedParts.tsx +15 -4
  701. package/src/react/primitives/part/PartMessages.test.tsx +104 -1
  702. package/src/react/primitives/part/PartMessages.tsx +1 -0
  703. package/src/react/primitives/thread/ThreadMessages.test.tsx +160 -0
  704. package/src/react/primitives/thread/ThreadMessages.tsx +8 -5
  705. package/src/react/providers/ReadonlyThreadProvider.test.tsx +56 -0
  706. package/src/react/runtimes/RemoteThreadListHookInstanceManager.layout.test.tsx +62 -0
  707. package/src/react/runtimes/RemoteThreadListHookInstanceManager.retry.test.tsx +2 -2
  708. package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +23 -20
  709. package/src/react/runtimes/RemoteThreadListHookInstanceManager.title.test.tsx +24 -17
  710. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +39 -24
  711. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +7 -1
  712. package/src/react/runtimes/assistant-transport/transport-scheduling.test.ts +73 -46
  713. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.test.tsx +66 -1
  714. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.ts +20 -14
  715. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +323 -1
  716. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +190 -523
  717. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +81 -0
  718. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +27 -1
  719. package/src/react/runtimes/cloud/auiV0.ts +281 -26
  720. package/src/react/runtimes/cloud/auiV0DecodeSafely.test.ts +522 -0
  721. package/src/react/runtimes/cloud/createCloudThreadListAdapter.test.ts +21 -0
  722. package/src/react/runtimes/cloud/createCloudThreadListAdapter.ts +7 -1
  723. package/src/react/runtimes/cloud/sdkIdentity.ts +9 -0
  724. package/src/react/runtimes/cloud/useCloudThreadListAdapter.test.tsx +18 -4
  725. package/src/react/runtimes/external-message-converter.test.ts +143 -4
  726. package/src/react/runtimes/external-message-converter.ts +39 -93
  727. package/src/react/runtimes/remote-thread-hook-on-tap.test.ts +2 -1
  728. package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +8 -2
  729. package/src/react/runtimes/useExternalStoreRuntime.suggestions.test.tsx +6 -2
  730. package/src/react/runtimes/useRemoteThreadListRuntime.concurrent.test.tsx +84 -4
  731. package/src/react/runtimes/useRemoteThreadListRuntime.ts +6 -2
  732. package/src/react/utils/groupParts.ts +12 -1
  733. package/src/react/utils/useJSONEqual.ts +9 -0
  734. package/src/react/utils/useJSONSchemaDependency.ts +22 -0
  735. package/src/runtime/api/message-part-runtime.ts +4 -1
  736. package/src/runtime/api/message-runtime.ts +15 -2
  737. package/src/runtime/api/thread-runtime.test.ts +58 -0
  738. package/src/runtime/api/thread-runtime.ts +2 -4
  739. package/src/runtime/base/base-composer-runtime-core.ts +69 -16
  740. package/src/runtime/base/base-thread-runtime-core.test.ts +1799 -49
  741. package/src/runtime/base/base-thread-runtime-core.ts +296 -94
  742. package/src/runtime/base/default-edit-composer-runtime-core.ts +12 -2
  743. package/src/runtime/base/default-thread-composer-runtime-core.ts +12 -1
  744. package/src/runtime/interfaces/thread-runtime-core.ts +8 -0
  745. package/src/runtime/queue/message-queue.ts +79 -7
  746. package/src/runtime/utils/auto-status.test.ts +112 -1
  747. package/src/runtime/utils/auto-status.ts +31 -5
  748. package/src/runtime/utils/external-message-conversion.test.ts +177 -0
  749. package/src/runtime/utils/external-message-conversion.ts +128 -33
  750. package/src/runtime/utils/message-repository.test.ts +49 -0
  751. package/src/runtime/utils/message-repository.ts +3 -3
  752. package/src/runtime/utils/stored-message-parts.ts +174 -0
  753. package/src/runtime/utils/thread-message-like.test.ts +52 -0
  754. package/src/runtime/utils/thread-message-like.ts +11 -2
  755. package/src/runtimes/external-store/external-store-adapter.ts +4 -0
  756. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +74 -9
  757. package/src/runtimes/local/local-thread-runtime-core.test.ts +189 -12
  758. package/src/runtimes/local/local-thread-runtime-core.ts +91 -10
  759. package/src/runtimes/tool-invocations/EDGE_CASES.md +2 -6
  760. package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +133 -0
  761. package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +10 -6
  762. package/src/store/clients/external-thread.ts +53 -14
  763. package/src/store/clients/thread-tasks.test.ts +274 -0
  764. package/src/store/clients/thread-tasks.ts +138 -0
  765. package/src/store/index.ts +8 -0
  766. package/src/store/primitive-predicates.test.ts +64 -5
  767. package/src/store/primitive-predicates.ts +10 -2
  768. package/src/store/runtime-clients/thread-runtime-client.test.tsx +110 -0
  769. package/src/store/runtime-clients/thread-runtime-client.ts +31 -1
  770. package/src/store/scope-registration.ts +2 -0
  771. package/src/store/scopes/message.ts +4 -1
  772. package/src/store/scopes/task.ts +34 -0
  773. package/src/store/scopes/thread.ts +16 -0
  774. package/src/store/thread-tasks.test.tsx +209 -0
  775. package/src/subscribable/subscribable.test.ts +161 -1
  776. package/src/subscribable/subscribable.ts +25 -15
  777. package/src/tests/MessageRepository.test.ts +1 -5
  778. package/src/tests/attachment-adapters.test.ts +16 -1
  779. package/src/tests/auiV0Encode.test.ts +304 -0
  780. package/src/tests/base-composer-runtime-core-addAttachment.test.ts +6 -6
  781. package/src/tests/base-composer-runtime-core-send.test.ts +51 -0
  782. package/src/tests/base-composer-runtime-core.test.ts +329 -6
  783. package/src/tests/composer-can-cancel.test.ts +35 -6
  784. package/src/tests/composer-can-send.test.ts +22 -0
  785. package/src/tests/default-edit-composer-runtime-core.test.ts +47 -0
  786. package/src/tests/external-store-thread-runtime-core-adapter.test.ts +369 -16
  787. package/src/tests/external-store-thread-runtime-core.test.ts +31 -0
  788. package/src/tests/external-thread-attachments.test.tsx +91 -23
  789. package/src/tests/external-thread-feedback.test.tsx +20 -7
  790. package/src/tests/external-thread-parity.test.tsx +35 -1
  791. package/src/tests/groupParts.test.ts +71 -0
  792. package/src/tests/message-queue.test.ts +290 -2
  793. package/src/tests/remote-thread-list-reactive-threadId.test.ts +51 -0
  794. package/src/tests/thread-switch-events.test.tsx +11 -7
  795. package/src/tests/useRemoteThreadListRuntime-controlled.test.tsx +45 -1
  796. package/src/types/index.ts +1 -0
  797. package/src/types/message.test.ts +19 -0
  798. package/src/types/message.ts +23 -7
  799. package/src/utils/abortable-iterable.test.ts +115 -0
  800. package/src/utils/abortable-iterable.ts +34 -23
  801. package/src/utils/getGroupStatus.test.ts +70 -4
  802. package/src/utils/getGroupStatus.ts +35 -12
  803. package/src/utils/wire-media.test.ts +10 -0
  804. package/src/utils/wire-media.ts +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","names":["ReadonlyJSONObject","ReadonlyJSONValue","ToolCallTiming","ToolModelContentPart","CompleteAttachment","PartProviderMetadata","providerName","TextMessagePart","type","text","status","MessagePartStreamStatus","providerMetadata","parentId","ReasoningMessagePart","unstable_summary","SourceProviderMetadata","SourceMessagePart","sourceType","id","url","title","mediaType","filename","ImageMessagePart","image","FileMessagePart","data","mimeType","Unstable_AudioMessagePart","audio","format","DataMessagePart","name","T","GenerativeUINode","component","props","Record","children","key","GenerativeUISpec","root","GenerativeUIMessagePart","spec","McpAppMetadata","resourceUri","visibility","serverId","MCP_APP_URI_SCHEME","isMcpAppUri","uri","startsWith","ToolCallMessagePartMcpMetadata","app","ToolApprovalOptionKind","ToolApprovalOption","kind","label","description","grants","confirm","ToolApprovalDisplay","toolApprovalAcceptsText","approval","display","allowFreeform","ToolApprovalResponse","approved","reason","optionId","ToolCallMessagePart","toolCallId","toolName","args","TArgs","result","TResult","isError","argsText","artifact","timing","mcp","modelContent","interrupt","payload","prompt","isAutomatic","options","resolution","messages","ThreadMessage","ThreadUserMessagePart","ThreadAssistantMessagePart","MessagePartStatus","error","ToolCallMessagePartStatus","MessageStatus","MessageTiming","streamStartTime","firstTokenTime","totalStreamTime","tokenCount","tokensPerSecond","totalChunks","toolCallCount","ThreadStep","messageId","usage","inputTokens","outputTokens","MessageCommonProps","createdAt","Date","ThreadSystemMessage","role","content","metadata","unstable_state","unstable_annotations","unstable_data","steps","submittedFeedback","custom","ThreadUserMessage","attachments","isOptimistic","ThreadAssistantMessage","BaseThreadMessage","MessageRole","RunConfig","AppendMessage","Omit","sourceId","runConfig","startRun","steer"],"sources":["../../src/types/message.ts"],"sourcesContent":["import type {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"assistant-stream/utils\";\nimport type { ToolCallTiming, ToolModelContentPart } from \"assistant-stream\";\nimport type { CompleteAttachment } from \"./attachment\";\n\nexport type { ToolCallTiming, ToolModelContentPart };\n\nexport type PartProviderMetadata = {\n readonly [providerName: string]: ReadonlyJSONObject;\n};\n\nexport type TextMessagePart = {\n readonly type: \"text\";\n readonly text: string;\n readonly status?: MessagePartStreamStatus;\n readonly providerMetadata?: PartProviderMetadata;\n readonly parentId?: string;\n};\n\nexport type ReasoningMessagePart = {\n readonly type: \"reasoning\";\n readonly text: string;\n readonly status?: MessagePartStreamStatus;\n readonly unstable_summary?: string;\n readonly providerMetadata?: PartProviderMetadata;\n readonly parentId?: string;\n};\n\nexport type SourceProviderMetadata = PartProviderMetadata;\n\nexport type SourceMessagePart =\n | {\n readonly type: \"source\";\n readonly sourceType: \"url\";\n readonly id: string;\n readonly url: string;\n readonly title?: string;\n readonly providerMetadata?: SourceProviderMetadata;\n readonly parentId?: string;\n }\n | {\n readonly type: \"source\";\n readonly sourceType: \"document\";\n readonly id: string;\n readonly url?: undefined;\n readonly title: string;\n readonly mediaType: string;\n readonly filename?: string;\n readonly providerMetadata?: SourceProviderMetadata;\n readonly parentId?: string;\n };\n\nexport type ImageMessagePart = {\n readonly type: \"image\";\n readonly image: string;\n readonly filename?: string;\n readonly providerMetadata?: PartProviderMetadata;\n};\n\nexport type FileMessagePart = {\n readonly type: \"file\";\n readonly filename?: string;\n readonly data: string;\n readonly mimeType: string;\n /** How `data` goes on the wire: a url or id reference; omitted = inferred (http(s) → url, else base64). \"url\" is honored by the LangChain-family, A2A, AG-UI, and Google ADK runtimes; \"id\" by the LangChain family only. */\n readonly sourceType?: \"url\" | \"id\";\n readonly providerMetadata?: PartProviderMetadata;\n readonly parentId?: string;\n};\n\n/**\n * @deprecated Use {@link FileMessagePart} with an `audio/*` mime type. `file`\n * is the carrier for every non-image binary modality: it is a member of both\n * the user and assistant unions, carries a filename, and can declare how its\n * payload goes on the wire, none of which this shape can express. The payload\n * form a `file` part needs is still adapter specific; see the Part Types\n * section of the message primitive docs. Honored everywhere it is accepted; it\n * will not gain fields.\n */\nexport type Unstable_AudioMessagePart = {\n readonly type: \"audio\";\n readonly audio: {\n readonly data: string;\n readonly format: \"mp3\" | \"wav\";\n };\n};\n\nexport type DataMessagePart<T = any> = {\n readonly type: \"data\";\n readonly name: string;\n readonly data: T;\n};\n\n/**\n * A JSON spec describing a tree of UI components to render.\n *\n * The agent emits a {@link GenerativeUIMessagePart} containing this spec, and\n * the consumer-provided component allowlist is used to resolve `component`\n * names. Any component referenced that is not present in the allowlist is\n * rejected with a typed error — the allowlist is the security boundary in the\n * default same-realm rendering path.\n */\nexport type GenerativeUINode =\n | string\n | {\n /** Allowlisted component name (resolved against the consumer registry). */\n readonly component: string;\n /** Props passed to the resolved component (must be JSON-serializable). */\n readonly props?: Record<string, unknown>;\n /** Optional children — strings render as text, objects recurse. */\n readonly children?: readonly GenerativeUINode[];\n /** Optional stable key for React reconciliation. */\n readonly key?: string;\n };\n\n/**\n * The root spec for a generative UI tree.\n */\nexport type GenerativeUISpec = {\n /** Root node(s) to render. */\n readonly root: GenerativeUINode | readonly GenerativeUINode[];\n};\n\n/**\n * A message part that carries a JSON spec describing UI to render.\n *\n * Render with `<MessagePrimitive.GenerativeUI components={...} />`. The\n * primitive resolves component names against the consumer-provided allowlist\n * — any unknown name throws a typed error rather than rendering. Stream-\n * friendly: a partially-streamed spec renders progressively.\n */\nexport type GenerativeUIMessagePart = {\n readonly type: \"generative-ui\";\n /** The JSON spec describing the UI tree. */\n readonly spec: GenerativeUISpec;\n /** Optional id (useful for replays / stable keys). */\n readonly id?: string;\n readonly parentId?: string;\n};\n\nexport type McpAppMetadata = {\n readonly resourceUri: string;\n readonly mimeType?: string;\n readonly visibility?: readonly (\"model\" | \"app\")[];\n /** Routable server identity emitted by the agent stack when multiple MCP servers back one agent; for @ag-ui/mcp-apps-middleware this is the configured serverId, falling back to its serverHash. */\n readonly serverId?: string;\n};\n\nexport const MCP_APP_URI_SCHEME = \"ui://\";\n\nexport const isMcpAppUri = (uri: string | undefined): boolean =>\n !!uri?.startsWith(MCP_APP_URI_SCHEME);\n\nexport type ToolCallMessagePartMcpMetadata = {\n readonly app?: McpAppMetadata;\n};\n\nexport type ToolApprovalOptionKind =\n | \"allow-once\"\n | \"allow-always\"\n | \"reject-once\"\n | \"reject-always\";\n\nexport type ToolApprovalOption = {\n /** Opaque, host-defined identifier. Scope semantics (session vs project vs global) belong to the option supplier. */\n readonly id: string;\n /**\n * Decision class. Drives approved-resolution and default rendering.\n * Open union: `_`-prefixed custom kinds are never auto-resolved; they must\n * be answered with an explicit `approved` value (optionally alongside the\n * `optionId`), which is what the default kit sends when one is chosen.\n */\n readonly kind: ToolApprovalOptionKind | (string & {});\n /** Human label. Renderers supply defaults per kind when omitted. */\n readonly label?: string;\n readonly description?: string;\n /** Patterns or rules this option would persist, shown before the user commits. Supplied by the host; never derived by the library. */\n readonly grants?: readonly string[];\n /** Opt-in confirmation step before this option resolves. */\n readonly confirm?: boolean | { title?: string; description?: string };\n};\n\n/**\n * How an approval request should be presented, and which answers it accepts.\n * Absent: `\"decision\"`.\n *\n * The approval seam carries a host-owned request addressed by its own id and\n * resolved once; a request wanting an answer these modes cannot express stays\n * on the `interrupt` seam, which hands the tool an arbitrary payload instead.\n * Unlike {@link ToolApprovalOptionKind} the set is closed, because a renderer\n * that cannot cover every mode exhaustively is back to guessing the affordance.\n */\nexport type ToolApprovalDisplay = \"decision\" | \"select\" | \"text\";\n\n/**\n * Whether the request asks for a free-form answer, on its own or alongside its\n * options. Renderers read this to decide whether to offer a text affordance,\n * and the runtime reads it to reject a `text` response the host cannot record.\n */\nexport const toolApprovalAcceptsText = (approval: {\n readonly display?: ToolApprovalDisplay;\n readonly allowFreeform?: boolean;\n}): boolean => approval.display === \"text\" || approval.allowFreeform === true;\n\nexport type ToolApprovalResponse =\n | {\n readonly approved: boolean;\n readonly text?: string;\n readonly reason?: string;\n }\n | {\n readonly optionId: string;\n readonly text?: string;\n readonly reason?: string;\n }\n | {\n readonly approved: boolean;\n readonly optionId: string;\n readonly text?: string;\n readonly reason?: string;\n }\n | {\n /** Answer to a request that asks a question rather than for a decision. */\n readonly text: string;\n readonly reason?: string;\n };\n\nexport type ToolCallMessagePart<\n TArgs = ReadonlyJSONObject,\n TResult = unknown,\n> = {\n /** Identifies this part as a tool call. */\n readonly type: \"tool-call\";\n /** Stable identifier for this invocation of the tool. */\n readonly toolCallId: string;\n /** Name of the tool requested by the model. */\n readonly toolName: string;\n /**\n * Arguments supplied by the model. During streaming this is a partial parse:\n * fields may be missing or incomplete. From a tool-call renderer, use\n * `useToolArgsStatus` to detect which fields are still arriving.\n */\n readonly args: TArgs;\n /** Result returned by the tool, if it has completed. */\n readonly result?: TResult | undefined;\n /** Whether the result represents a tool execution error. */\n readonly isError?: boolean | undefined;\n /** Raw JSON argument text streamed by the model. */\n readonly argsText: string;\n /** UI-only artifact associated with the tool result. */\n readonly artifact?: unknown;\n /** Wall-clock timing for this call, when the runtime or host tracks it. */\n readonly timing?: ToolCallTiming;\n /** MCP app metadata associated with this tool call, when present. */\n readonly mcp?: ToolCallMessagePartMcpMetadata;\n /** Provider metadata associated with this tool call, when present. */\n readonly providerMetadata?: PartProviderMetadata;\n /** Content returned to the model for this tool result. */\n readonly modelContent?: readonly ToolModelContentPart[] | undefined;\n /** Human-input request that must be resolved before the run can continue. */\n readonly interrupt?: { type: \"human\"; payload: unknown };\n /** Server-side approval gate. `respondToApproval` may only be called while `approved` is undefined and no `resolution` is recorded. */\n readonly approval?: {\n readonly id: string;\n /**\n * The question put to the user. A request that asks for something other\n * than permission carries it here, so a renderer can show the question\n * rather than inferring a decision from the tool name.\n */\n readonly prompt?: string;\n /** How the request should be presented. Absent: a plain decision. */\n readonly display?: ToolApprovalDisplay;\n /** Whether a free-form answer is accepted alongside the options. */\n readonly allowFreeform?: boolean;\n readonly approved?: boolean;\n readonly reason?: string;\n readonly isAutomatic?: boolean;\n /** Available decisions for this call. Absent: a plain allow / deny pair. */\n readonly options?: readonly ToolApprovalOption[];\n /** The option chosen at resolution, when options were present. */\n readonly optionId?: string;\n /** The free-form answer recorded at resolution, when one was given. */\n readonly text?: string;\n /** Terminal non-decision state: the request was cancelled or expired without a user decision. Set by the host. */\n readonly resolution?: \"cancelled\" | \"expired\";\n };\n /** Parent message-part ID when this part belongs to a nested structure. */\n readonly parentId?: string;\n /**\n * Nested thread messages produced by this tool call, for example a sub-agent\n * conversation.\n */\n readonly messages?: readonly ThreadMessage[];\n};\n\nexport type ThreadUserMessagePart =\n | TextMessagePart\n | ImageMessagePart\n | FileMessagePart\n | DataMessagePart\n | Unstable_AudioMessagePart;\n\nexport type ThreadAssistantMessagePart =\n | TextMessagePart\n | ReasoningMessagePart\n | ToolCallMessagePart\n | SourceMessagePart\n | FileMessagePart\n | ImageMessagePart\n | DataMessagePart\n | GenerativeUIMessagePart;\n\nexport type MessagePartStatus =\n | {\n readonly type: \"running\";\n }\n | {\n readonly type: \"complete\";\n }\n | {\n readonly type: \"incomplete\";\n readonly reason:\n | \"cancelled\"\n | \"length\"\n | \"content-filter\"\n | \"other\"\n | \"error\";\n readonly error?: unknown;\n };\n\nexport type MessagePartStreamStatus =\n | {\n readonly type: \"running\";\n }\n | {\n readonly type: \"complete\";\n }\n | {\n readonly type: \"incomplete\";\n readonly reason:\n | \"cancelled\"\n | \"length\"\n | \"content-filter\"\n | \"other\"\n | \"error\";\n };\n\nexport type ToolCallMessagePartStatus =\n | {\n /** The tool call is waiting for UI or human input before continuing. */\n readonly type: \"requires-action\";\n /** Reason the tool call requires action. */\n readonly reason: \"tool-calls\" | \"interrupt\";\n }\n | {\n readonly type: \"incomplete\";\n readonly reason: \"tool-calls\";\n readonly error?: ReadonlyJSONValue;\n }\n | MessagePartStatus;\n\nexport type MessageStatus =\n | {\n readonly type: \"running\";\n }\n | {\n readonly type: \"requires-action\";\n readonly reason: \"tool-calls\" | \"interrupt\";\n }\n | {\n readonly type: \"complete\";\n readonly reason: \"stop\" | \"unknown\";\n }\n | {\n readonly type: \"incomplete\";\n readonly reason:\n | \"cancelled\"\n | \"tool-calls\"\n | \"length\"\n | \"content-filter\"\n | \"other\"\n | \"error\";\n readonly error?: ReadonlyJSONValue;\n };\n\nexport type MessageTiming = {\n readonly streamStartTime: number;\n readonly firstTokenTime?: number;\n readonly totalStreamTime?: number;\n readonly tokenCount?: number;\n readonly tokensPerSecond?: number;\n readonly totalChunks: number;\n readonly toolCallCount: number;\n};\n\nexport type ThreadStep = {\n readonly messageId?: string;\n readonly usage?:\n | {\n readonly inputTokens: number;\n readonly outputTokens: number;\n }\n | undefined;\n};\n\ntype MessageCommonProps = {\n readonly id: string;\n readonly createdAt: Date;\n};\n\nexport type ThreadSystemMessage = MessageCommonProps & {\n readonly role: \"system\";\n readonly content: readonly [TextMessagePart];\n readonly metadata: {\n readonly unstable_state?: undefined;\n readonly unstable_annotations?: undefined;\n readonly unstable_data?: undefined;\n readonly steps?: undefined;\n readonly submittedFeedback?: undefined;\n readonly timing?: undefined;\n readonly custom: Record<string, unknown>;\n };\n};\n\nexport type ThreadUserMessage = MessageCommonProps & {\n readonly role: \"user\";\n readonly content: readonly ThreadUserMessagePart[];\n readonly attachments: readonly CompleteAttachment[];\n readonly metadata: {\n readonly unstable_state?: undefined;\n readonly unstable_annotations?: undefined;\n readonly unstable_data?: undefined;\n readonly steps?: undefined;\n readonly submittedFeedback?: undefined;\n readonly timing?: undefined;\n readonly isOptimistic?: boolean;\n readonly custom: Record<string, unknown>;\n };\n};\n\nexport type ThreadAssistantMessage = MessageCommonProps & {\n readonly role: \"assistant\";\n readonly content: readonly ThreadAssistantMessagePart[];\n readonly status: MessageStatus;\n readonly metadata: {\n readonly unstable_state: ReadonlyJSONValue;\n readonly unstable_annotations: readonly ReadonlyJSONValue[];\n readonly unstable_data: readonly ReadonlyJSONValue[];\n readonly steps: readonly ThreadStep[];\n readonly submittedFeedback?: { readonly type: \"positive\" | \"negative\" };\n readonly timing?: MessageTiming;\n /**\n * Marks a client-side optimistic placeholder. Such messages are evicted\n * once off the head branch and are never persisted.\n */\n readonly isOptimistic?: boolean;\n readonly custom: Record<string, unknown>;\n };\n};\n\ntype BaseThreadMessage = {\n readonly status?: ThreadAssistantMessage[\"status\"];\n readonly metadata: {\n readonly unstable_state?: ReadonlyJSONValue;\n readonly unstable_annotations?: readonly ReadonlyJSONValue[];\n readonly unstable_data?: readonly ReadonlyJSONValue[];\n readonly steps?: readonly ThreadStep[];\n readonly submittedFeedback?: { readonly type: \"positive\" | \"negative\" };\n readonly timing?: MessageTiming;\n readonly isOptimistic?: boolean;\n readonly custom: Record<string, unknown>;\n };\n readonly attachments?: ThreadUserMessage[\"attachments\"];\n};\n\nexport type ThreadMessage = BaseThreadMessage &\n (ThreadSystemMessage | ThreadUserMessage | ThreadAssistantMessage);\n\nexport type MessageRole = ThreadMessage[\"role\"];\n\nexport type RunConfig = {\n readonly custom?: Record<string, unknown>;\n};\n\nexport type AppendMessage = Omit<ThreadMessage, \"id\"> & {\n parentId: string | null;\n\n /** The ID of the message that was edited or undefined. */\n sourceId: string | null;\n runConfig: RunConfig | undefined;\n startRun?: boolean | undefined;\n /** Process this message next; only meaningful for queue-capable runtimes. */\n steer?: boolean | undefined;\n};\n"],"mappings":";AAsJA,MAAaiD,qBAAqB;AAElC,MAAaC,eAAeC,QAC1B,CAAC,CAACA,KAAKC,WAAWH,kBAAkB;;;;;;AAgDtC,MAAac,2BAA2BC,aAGzBA,SAASC,YAAY,UAAUD,SAASE,kBAAkB"}
1
+ {"version":3,"file":"message.js","names":["ReadonlyJSONObject","ReadonlyJSONValue","ToolCallTiming","ToolModelContentPart","CompleteAttachment","PartProviderMetadata","providerName","TextMessagePart","type","text","status","MessagePartStreamStatus","providerMetadata","parentId","ReasoningMessagePart","unstable_summary","SourceProviderMetadata","SourceMessagePart","sourceType","id","url","title","mediaType","filename","ImageMessagePart","image","FileMessagePart","data","mimeType","Unstable_AudioMessagePart","audio","format","DataMessagePart","name","T","GenerativeUINode","component","props","Record","children","key","GenerativeUISpec","root","GenerativeUIMessagePart","spec","McpAppMetadata","resourceUri","visibility","serverId","MCP_APP_URI_SCHEME","isMcpAppUri","uri","startsWith","ToolCallMessagePartMcpMetadata","app","ToolApprovalOptionKind","ToolApprovalOption","kind","label","description","grants","confirm","ToolApprovalDisplay","toolApprovalAcceptsText","approval","display","allowFreeform","ToolApprovalResponse","approved","reason","optionId","ToolCallMessagePart","toolCallId","toolName","args","TArgs","result","TResult","isError","argsText","artifact","timing","mcp","modelContent","interrupt","payload","prompt","isAutomatic","options","resolution","messages","ThreadMessage","ThreadUserMessagePart","ThreadAssistantMessagePart","MessagePartStatus","error","ToolCallMessagePartStatus","MessageStatus","MessageTiming","streamStartTime","firstTokenTime","totalStreamTime","tokenCount","tokensPerSecond","totalChunks","toolCallCount","MessageModality","ThreadStep","messageId","usage","inputTokens","outputTokens","MessageCommonProps","createdAt","Date","ThreadSystemMessage","role","content","metadata","unstable_state","unstable_annotations","unstable_data","steps","submittedFeedback","modality","custom","ThreadUserMessage","attachments","isOptimistic","ThreadAssistantMessage","comment","BaseThreadMessage","MessageRole","RunConfig","AppendMessage","Omit","sourceId","runConfig","startRun","steer"],"sources":["../../src/types/message.ts"],"sourcesContent":["import type {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"assistant-stream/utils\";\nimport type { ToolCallTiming, ToolModelContentPart } from \"assistant-stream\";\nimport type { CompleteAttachment } from \"./attachment\";\n\nexport type { ToolCallTiming, ToolModelContentPart };\n\nexport type PartProviderMetadata = {\n readonly [providerName: string]: ReadonlyJSONObject;\n};\n\nexport type TextMessagePart = {\n readonly type: \"text\";\n readonly text: string;\n readonly status?: MessagePartStreamStatus;\n readonly providerMetadata?: PartProviderMetadata;\n readonly parentId?: string;\n};\n\nexport type ReasoningMessagePart = {\n readonly type: \"reasoning\";\n readonly text: string;\n readonly status?: MessagePartStreamStatus;\n readonly unstable_summary?: string;\n readonly providerMetadata?: PartProviderMetadata;\n readonly parentId?: string;\n};\n\nexport type SourceProviderMetadata = PartProviderMetadata;\n\nexport type SourceMessagePart =\n | {\n readonly type: \"source\";\n readonly sourceType: \"url\";\n readonly id: string;\n readonly url: string;\n readonly title?: string;\n readonly providerMetadata?: SourceProviderMetadata;\n readonly parentId?: string;\n }\n | {\n readonly type: \"source\";\n readonly sourceType: \"document\";\n readonly id: string;\n readonly url?: undefined;\n readonly title: string;\n readonly mediaType: string;\n readonly filename?: string;\n readonly providerMetadata?: SourceProviderMetadata;\n readonly parentId?: string;\n };\n\nexport type ImageMessagePart = {\n readonly type: \"image\";\n readonly image: string;\n readonly filename?: string;\n readonly providerMetadata?: PartProviderMetadata;\n};\n\nexport type FileMessagePart = {\n readonly type: \"file\";\n readonly filename?: string;\n readonly data: string;\n readonly mimeType: string;\n /** How `data` goes on the wire: a url or id reference; omitted = inferred (http(s) → url, else base64). \"url\" is honored by the LangChain-family, A2A, AG-UI, and Google ADK runtimes; \"id\" by the LangChain family only. */\n readonly sourceType?: \"url\" | \"id\";\n readonly providerMetadata?: PartProviderMetadata;\n readonly parentId?: string;\n};\n\n/**\n * @deprecated Use {@link FileMessagePart} with an `audio/*` mime type. `file`\n * is the carrier for every non-image binary modality: it is a member of both\n * the user and assistant unions, carries a filename, and can declare how its\n * payload goes on the wire, none of which this shape can express. The payload\n * form a `file` part needs is still adapter specific; see the Part Types\n * section of the message primitive docs. Honored everywhere it is accepted; it\n * will not gain fields.\n */\nexport type Unstable_AudioMessagePart = {\n readonly type: \"audio\";\n readonly audio: {\n readonly data: string;\n readonly format: \"mp3\" | \"wav\";\n };\n};\n\nexport type DataMessagePart<T = any> = {\n readonly type: \"data\";\n readonly name: string;\n readonly data: T;\n};\n\n/**\n * A JSON spec describing a tree of UI components to render.\n *\n * The agent emits a {@link GenerativeUIMessagePart} containing this spec, and\n * the consumer-provided component allowlist is used to resolve `component`\n * names. Any component referenced that is not present in the allowlist is\n * rejected with a typed error — the allowlist is the security boundary in the\n * default same-realm rendering path.\n */\nexport type GenerativeUINode =\n | string\n | {\n /** Allowlisted component name (resolved against the consumer registry). */\n readonly component: string;\n /** Props passed to the resolved component (must be JSON-serializable). */\n readonly props?: Record<string, unknown>;\n /** Optional children — strings render as text, objects recurse. */\n readonly children?: readonly GenerativeUINode[];\n /** Optional stable key for React reconciliation. */\n readonly key?: string;\n };\n\n/**\n * The root spec for a generative UI tree.\n */\nexport type GenerativeUISpec = {\n /** Root node(s) to render. */\n readonly root: GenerativeUINode | readonly GenerativeUINode[];\n};\n\n/**\n * A message part that carries a JSON spec describing UI to render.\n *\n * Render with `<MessagePrimitive.GenerativeUI components={...} />`. The\n * primitive resolves component names against the consumer-provided allowlist\n * — any unknown name throws a typed error rather than rendering. Stream-\n * friendly: a partially-streamed spec renders progressively.\n */\nexport type GenerativeUIMessagePart = {\n readonly type: \"generative-ui\";\n /** The JSON spec describing the UI tree. */\n readonly spec: GenerativeUISpec;\n /** Optional id (useful for replays / stable keys). */\n readonly id?: string;\n readonly parentId?: string;\n};\n\nexport type McpAppMetadata = {\n readonly resourceUri: string;\n readonly mimeType?: string;\n readonly visibility?: readonly (\"model\" | \"app\")[];\n /** Routable server identity emitted by the agent stack when multiple MCP servers back one agent; for @ag-ui/mcp-apps-middleware this is the configured serverId, falling back to its serverHash. */\n readonly serverId?: string;\n};\n\nexport const MCP_APP_URI_SCHEME = \"ui://\";\n\nexport const isMcpAppUri = (uri: string | undefined): boolean =>\n !!uri?.startsWith(MCP_APP_URI_SCHEME);\n\nexport type ToolCallMessagePartMcpMetadata = {\n readonly app?: McpAppMetadata;\n};\n\nexport type ToolApprovalOptionKind =\n | \"allow-once\"\n | \"allow-always\"\n | \"reject-once\"\n | \"reject-always\";\n\nexport type ToolApprovalOption = {\n /** Opaque, host-defined identifier. Scope semantics (session vs project vs global) belong to the option supplier. */\n readonly id: string;\n /**\n * Decision class. Drives approved-resolution and default rendering.\n * Open union: `_`-prefixed custom kinds are never auto-resolved; they must\n * be answered with an explicit `approved` value (optionally alongside the\n * `optionId`), which is what the default kit sends when one is chosen.\n */\n readonly kind: ToolApprovalOptionKind | (string & {});\n /** Human label. Renderers supply defaults per kind when omitted. */\n readonly label?: string;\n readonly description?: string;\n /** Patterns or rules this option would persist, shown before the user commits. Supplied by the host; never derived by the library. */\n readonly grants?: readonly string[];\n /** Opt-in confirmation step before this option resolves. */\n readonly confirm?: boolean | { title?: string; description?: string };\n};\n\n/**\n * How an approval request should be presented, and which answers it accepts.\n * Absent: `\"decision\"`.\n *\n * The approval seam carries a host-owned request addressed by its own id and\n * resolved once; a request wanting an answer these modes cannot express stays\n * on the `interrupt` seam, which hands the tool an arbitrary payload instead.\n * Unlike {@link ToolApprovalOptionKind} the set is closed, because a renderer\n * that cannot cover every mode exhaustively is back to guessing the affordance.\n */\nexport type ToolApprovalDisplay = \"decision\" | \"select\" | \"text\";\n\n/**\n * Whether the request asks for a free-form answer, on its own or alongside its\n * options. Renderers read this to decide whether to offer a text affordance,\n * and the runtime reads it to reject a `text` response the host cannot record.\n */\nexport const toolApprovalAcceptsText = (approval: {\n readonly display?: ToolApprovalDisplay;\n readonly allowFreeform?: boolean;\n}): boolean => approval.display === \"text\" || approval.allowFreeform === true;\n\nexport type ToolApprovalResponse =\n | {\n readonly approved: boolean;\n readonly text?: string;\n readonly reason?: string;\n }\n | {\n readonly optionId: string;\n readonly text?: string;\n readonly reason?: string;\n }\n | {\n readonly approved: boolean;\n readonly optionId: string;\n readonly text?: string;\n readonly reason?: string;\n }\n | {\n /** Answer to a request that asks a question rather than for a decision. */\n readonly text: string;\n readonly reason?: string;\n };\n\nexport type ToolCallMessagePart<\n TArgs = ReadonlyJSONObject,\n TResult = unknown,\n> = {\n /** Identifies this part as a tool call. */\n readonly type: \"tool-call\";\n /** Stable identifier for this invocation of the tool. */\n readonly toolCallId: string;\n /** Name of the tool requested by the model. */\n readonly toolName: string;\n /**\n * Arguments supplied by the model. During streaming this is a partial parse:\n * fields may be missing or incomplete. From a tool-call renderer, use\n * `useToolArgsStatus` to detect which fields are still arriving.\n */\n readonly args: TArgs;\n /** Result returned by the tool, if it has completed. */\n readonly result?: TResult | undefined;\n /** Whether the result represents a tool execution error. */\n readonly isError?: boolean | undefined;\n /** Raw JSON argument text streamed by the model. */\n readonly argsText: string;\n /** UI-only artifact associated with the tool result. */\n readonly artifact?: unknown;\n /** Wall-clock timing for this call, when the runtime or host tracks it. */\n readonly timing?: ToolCallTiming;\n /** MCP app metadata associated with this tool call, when present. */\n readonly mcp?: ToolCallMessagePartMcpMetadata;\n /** Provider metadata associated with this tool call, when present. */\n readonly providerMetadata?: PartProviderMetadata;\n /** Content returned to the model for this tool result. */\n readonly modelContent?: readonly ToolModelContentPart[] | undefined;\n /** Human-input request that must be resolved before the run can continue. */\n readonly interrupt?: { type: \"human\"; payload: unknown };\n /** Server-side approval gate. `respondToApproval` may only be called while `approved` is undefined and no `resolution` is recorded. */\n readonly approval?: {\n readonly id: string;\n /**\n * The question put to the user. A request that asks for something other\n * than permission carries it here, so a renderer can show the question\n * rather than inferring a decision from the tool name.\n */\n readonly prompt?: string;\n /** How the request should be presented. Absent: a plain decision. */\n readonly display?: ToolApprovalDisplay;\n /** Whether a free-form answer is accepted alongside the options. */\n readonly allowFreeform?: boolean;\n readonly approved?: boolean;\n readonly reason?: string;\n readonly isAutomatic?: boolean;\n /** Available decisions for this call. Absent: a plain allow / deny pair. */\n readonly options?: readonly ToolApprovalOption[];\n /** The option chosen at resolution, when options were present. */\n readonly optionId?: string;\n /** The free-form answer recorded at resolution, when one was given. */\n readonly text?: string;\n /** Terminal non-decision state: the request was cancelled or expired without a user decision. Set by the host. */\n readonly resolution?: \"cancelled\" | \"expired\";\n };\n /** Parent message-part ID when this part belongs to a nested structure. */\n readonly parentId?: string;\n /**\n * Nested thread messages produced by this tool call, for example a sub-agent\n * conversation.\n */\n readonly messages?: readonly ThreadMessage[];\n};\n\nexport type ThreadUserMessagePart =\n | TextMessagePart\n | ImageMessagePart\n | FileMessagePart\n | DataMessagePart\n | Unstable_AudioMessagePart;\n\nexport type ThreadAssistantMessagePart =\n | TextMessagePart\n | ReasoningMessagePart\n | ToolCallMessagePart\n | SourceMessagePart\n | FileMessagePart\n | ImageMessagePart\n | DataMessagePart\n | GenerativeUIMessagePart;\n\nexport type MessagePartStatus =\n | {\n readonly type: \"running\";\n }\n | {\n readonly type: \"complete\";\n }\n | {\n readonly type: \"incomplete\";\n readonly reason:\n | \"cancelled\"\n | \"length\"\n | \"content-filter\"\n | \"other\"\n | \"error\";\n readonly error?: unknown;\n };\n\nexport type MessagePartStreamStatus =\n | {\n readonly type: \"running\";\n }\n | {\n readonly type: \"complete\";\n }\n | {\n readonly type: \"incomplete\";\n readonly reason:\n | \"cancelled\"\n | \"length\"\n | \"content-filter\"\n | \"other\"\n | \"error\";\n };\n\nexport type ToolCallMessagePartStatus =\n | {\n /** The tool call is waiting for UI or human input before continuing. */\n readonly type: \"requires-action\";\n /** Reason the tool call requires action. */\n readonly reason: \"tool-calls\" | \"interrupt\";\n }\n | {\n readonly type: \"incomplete\";\n readonly reason: \"tool-calls\";\n readonly error?: ReadonlyJSONValue;\n }\n | MessagePartStatus;\n\nexport type MessageStatus =\n | {\n readonly type: \"running\";\n }\n | {\n readonly type: \"requires-action\";\n readonly reason: \"tool-calls\" | \"interrupt\";\n }\n | {\n readonly type: \"complete\";\n readonly reason: \"stop\" | \"unknown\";\n }\n | {\n readonly type: \"incomplete\";\n readonly reason:\n | \"cancelled\"\n | \"tool-calls\"\n | \"length\"\n | \"content-filter\"\n | \"other\"\n | \"error\";\n readonly error?: ReadonlyJSONValue;\n };\n\nexport type MessageTiming = {\n readonly streamStartTime: number;\n readonly firstTokenTime?: number;\n readonly totalStreamTime?: number;\n readonly tokenCount?: number;\n readonly tokensPerSecond?: number;\n readonly totalChunks: number;\n readonly toolCallCount: number;\n};\n\nexport type MessageModality = \"voice\";\n\nexport type ThreadStep = {\n readonly messageId?: string;\n readonly usage?:\n | {\n readonly inputTokens: number;\n readonly outputTokens: number;\n }\n | undefined;\n};\n\ntype MessageCommonProps = {\n readonly id: string;\n readonly createdAt: Date;\n};\n\nexport type ThreadSystemMessage = MessageCommonProps & {\n readonly role: \"system\";\n readonly content: readonly [TextMessagePart];\n readonly metadata: {\n readonly unstable_state?: undefined;\n readonly unstable_annotations?: undefined;\n readonly unstable_data?: undefined;\n readonly steps?: undefined;\n readonly submittedFeedback?: undefined;\n readonly timing?: undefined;\n readonly modality?: undefined;\n readonly custom: Record<string, unknown>;\n };\n};\n\nexport type ThreadUserMessage = MessageCommonProps & {\n readonly role: \"user\";\n readonly content: readonly ThreadUserMessagePart[];\n readonly attachments: readonly CompleteAttachment[];\n readonly metadata: {\n readonly unstable_state?: undefined;\n readonly unstable_annotations?: undefined;\n readonly unstable_data?: undefined;\n readonly steps?: undefined;\n readonly submittedFeedback?: undefined;\n readonly timing?: undefined;\n readonly isOptimistic?: boolean;\n /** Set when the message was produced by a voice session rather than typed. */\n readonly modality?: MessageModality;\n readonly custom: Record<string, unknown>;\n };\n};\n\nexport type ThreadAssistantMessage = MessageCommonProps & {\n readonly role: \"assistant\";\n readonly content: readonly ThreadAssistantMessagePart[];\n readonly status: MessageStatus;\n readonly metadata: {\n readonly unstable_state: ReadonlyJSONValue;\n readonly unstable_annotations: readonly ReadonlyJSONValue[];\n readonly unstable_data: readonly ReadonlyJSONValue[];\n readonly steps: readonly ThreadStep[];\n readonly submittedFeedback?: {\n readonly type: \"positive\" | \"negative\";\n readonly comment?: string;\n };\n readonly timing?: MessageTiming;\n /**\n * Marks a client-side optimistic placeholder. Such messages are evicted\n * once off the head branch and are never persisted.\n */\n readonly isOptimistic?: boolean;\n /** Set when the message was produced by a voice session rather than typed. */\n readonly modality?: MessageModality;\n readonly custom: Record<string, unknown>;\n };\n};\n\ntype BaseThreadMessage = {\n readonly status?: ThreadAssistantMessage[\"status\"];\n readonly metadata: {\n readonly unstable_state?: ReadonlyJSONValue | undefined;\n readonly unstable_annotations?: readonly ReadonlyJSONValue[] | undefined;\n readonly unstable_data?: readonly ReadonlyJSONValue[] | undefined;\n readonly steps?: readonly ThreadStep[] | undefined;\n readonly submittedFeedback?:\n | {\n readonly type: \"positive\" | \"negative\";\n readonly comment?: string;\n }\n | undefined;\n readonly timing?: MessageTiming | undefined;\n readonly isOptimistic?: boolean;\n readonly modality?: MessageModality | undefined;\n readonly custom: Record<string, unknown>;\n };\n readonly attachments?: ThreadUserMessage[\"attachments\"];\n};\n\nexport type ThreadMessage = BaseThreadMessage &\n (ThreadSystemMessage | ThreadUserMessage | ThreadAssistantMessage);\n\nexport type MessageRole = ThreadMessage[\"role\"];\n\nexport type RunConfig = {\n readonly custom?: Record<string, unknown>;\n};\n\nexport type AppendMessage = Omit<ThreadMessage, \"id\"> & {\n parentId: string | null;\n\n /** The ID of the message that was edited or undefined. */\n sourceId: string | null;\n runConfig: RunConfig | undefined;\n startRun?: boolean | undefined;\n /** Process this message next; only meaningful for queue-capable runtimes. */\n steer?: boolean | undefined;\n};\n"],"mappings":";AAsJA,MAAaiD,qBAAqB;AAElC,MAAaC,eAAeC,QAC1B,CAAC,CAACA,KAAKC,WAAWH,kBAAkB;;;;;;AAgDtC,MAAac,2BAA2BC,aAGzBA,SAASC,YAAY,UAAUD,SAASE,kBAAkB"}
@@ -1,8 +1,7 @@
1
1
  //#region src/types/quote.d.ts
2
- type QuoteInfo = {
2
+ export type QuoteInfo = {
3
3
  readonly text: string;
4
4
  readonly messageId: string;
5
5
  };
6
6
  //#endregion
7
- export { QuoteInfo };
8
7
  //# sourceMappingURL=quote.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quote.d.ts","names":[],"sources":["../../src/types/quote.ts"],"mappings":";KAAY;WACD;WACA"}
1
+ {"version":3,"file":"quote.d.ts","names":[],"sources":["../../src/types/quote.ts"],"mappings":";YAAY;WACD;WACA"}
@@ -1,7 +1,7 @@
1
1
  import { ReadonlyJSONObject } from "assistant-stream/utils";
2
2
  //#region src/types/trigger.d.ts
3
3
  /** A selectable item displayed inside a trigger popover (e.g. mention, slash command). */
4
- type Unstable_TriggerItem = {
4
+ export type Unstable_TriggerItem = {
5
5
  readonly id: string;
6
6
  readonly type: string;
7
7
  readonly label: string;
@@ -9,10 +9,9 @@ type Unstable_TriggerItem = {
9
9
  readonly metadata?: ReadonlyJSONObject | undefined;
10
10
  };
11
11
  /** A grouping of trigger items shown in a trigger popover. */
12
- type Unstable_TriggerCategory = {
12
+ export type Unstable_TriggerCategory = {
13
13
  readonly id: string;
14
14
  readonly label: string;
15
15
  };
16
16
  //#endregion
17
- export { Unstable_TriggerCategory, Unstable_TriggerItem };
18
17
  //# sourceMappingURL=trigger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"trigger.d.ts","names":[],"sources":["../../src/types/trigger.ts"],"mappings":";;;KAGY;WACD;WACA;WACA;WACA;WACA,WAAW;;;KAIV;WACD;WACA"}
1
+ {"version":3,"file":"trigger.d.ts","names":[],"sources":["../../src/types/trigger.ts"],"mappings":";;;YAGY;WACD;WACA;WACA;WACA;WACA,WAAW;;;YAIV;WACD;WACA"}
@@ -1,5 +1,4 @@
1
1
  //#region src/types/unsubscribe.d.ts
2
- type Unsubscribe = () => void;
2
+ export type Unsubscribe = () => void;
3
3
  //#endregion
4
- export { Unsubscribe };
5
4
  //# sourceMappingURL=unsubscribe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unsubscribe.d.ts","names":[],"sources":["../../src/types/unsubscribe.ts"],"mappings":";KAAY"}
1
+ {"version":3,"file":"unsubscribe.d.ts","names":[],"sources":["../../src/types/unsubscribe.ts"],"mappings":";YAAY"}
@@ -1,5 +1,5 @@
1
1
  //#region src/utils/abortable-iterable.d.ts
2
- declare const openAbortableIterable: <T>(source: AsyncIterable<T> | Promise<AsyncIterable<T>>, signal: AbortSignal) => Promise<AsyncIterable<T> | undefined>;
2
+ export declare const openAbortableIterable: <T>(source: AsyncIterable<T> | Promise<AsyncIterable<T>>, signal: AbortSignal) => Promise<AsyncIterable<T> | undefined>;
3
3
  /**
4
4
  * Presents a stream as exhausted once the signal aborts, so a consumer stops
5
5
  * waiting on it.
@@ -13,7 +13,6 @@ declare const openAbortableIterable: <T>(source: AsyncIterable<T> | Promise<Asyn
13
13
  * The source is finalized on the way out, but never awaited, since a stream
14
14
  * that is already parked would not settle that either.
15
15
  */
16
- declare const abortableIterable: <T>(source: AsyncIterable<T>, signal: AbortSignal) => AsyncIterable<T>;
16
+ export declare const abortableIterable: <T>(source: AsyncIterable<T>, signal: AbortSignal) => AsyncIterable<T>;
17
17
  //#endregion
18
- export { abortableIterable, openAbortableIterable };
19
18
  //# sourceMappingURL=abortable-iterable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abortable-iterable.d.ts","names":[],"sources":["../../src/utils/abortable-iterable.ts"],"mappings":";cASa,wBAA+B,GAC1C,QAAQ,cAAc,KAAK,QAAQ,cAAc,KACjD,QAAQ,gBACP,QAAQ,cAAc;;;;;;;;;;;;;;cAwBZ,oBAAqB,GAChC,QAAQ,cAAc,IACtB,QAAQ,gBACP,cAAc"}
1
+ {"version":3,"file":"abortable-iterable.d.ts","names":[],"sources":["../../src/utils/abortable-iterable.ts"],"mappings":";qBAEa,wBAA+B,GAC1C,QAAQ,cAAc,KAAK,QAAQ,cAAc,KACjD,QAAQ,gBACP,QAAQ,cAAc;;;;;;;;;;;;;;qBAmCZ,oBAAqB,GAChC,QAAQ,cAAc,IACtB,QAAQ,gBACP,cAAc"}
@@ -3,16 +3,22 @@ const done = () => ({
3
3
  done: true,
4
4
  value: void 0
5
5
  });
6
- /** Resolves at cancellation, so an await on a stream can stop being the only way out. */
7
- const whenAborted = (signal) => new Promise((resolve) => {
8
- if (signal.aborted) return resolve(void 0);
9
- signal.addEventListener("abort", () => resolve(void 0), { once: true });
10
- });
11
6
  const openAbortableIterable = async (source, signal) => {
12
7
  const opened = Promise.resolve(source);
13
- const iterable = await Promise.race([opened, whenAborted(signal)]);
14
- if (!iterable) opened.then((late) => late[Symbol.asyncIterator]().return?.(void 0)).catch(() => {});
15
- return iterable;
8
+ let release = () => {};
9
+ const aborted = new Promise((resolve) => {
10
+ const onAbort = () => resolve(void 0);
11
+ if (signal.aborted) return onAbort();
12
+ signal.addEventListener("abort", onAbort, { once: true });
13
+ release = () => signal.removeEventListener("abort", onAbort);
14
+ });
15
+ try {
16
+ const iterable = await Promise.race([opened, aborted]);
17
+ if (!iterable) opened.then((late) => late[Symbol.asyncIterator]().return?.(void 0)).catch(() => {});
18
+ return iterable;
19
+ } finally {
20
+ release();
21
+ }
16
22
  };
17
23
  /**
18
24
  * Presents a stream as exhausted once the signal aborts, so a consumer stops
@@ -29,7 +35,10 @@ const openAbortableIterable = async (source, signal) => {
29
35
  */
30
36
  const abortableIterable = (source, signal) => ({ [Symbol.asyncIterator]: () => {
31
37
  const iterator = source[Symbol.asyncIterator]();
38
+ let finished = false;
32
39
  const finalize = () => {
40
+ if (finished) return;
41
+ finished = true;
33
42
  try {
34
43
  iterator.return?.(void 0)?.catch(() => {});
35
44
  } catch {}
@@ -39,7 +48,7 @@ const abortableIterable = (source, signal) => ({ [Symbol.asyncIterator]: () => {
39
48
  return this;
40
49
  },
41
50
  next: () => {
42
- if (signal.aborted) {
51
+ if (finished || signal.aborted) {
43
52
  finalize();
44
53
  return Promise.resolve(done());
45
54
  }
@@ -50,14 +59,21 @@ const abortableIterable = (source, signal) => ({ [Symbol.asyncIterator]: () => {
50
59
  };
51
60
  signal.addEventListener("abort", onAbort, { once: true });
52
61
  const release = () => signal.removeEventListener("abort", onAbort);
53
- iterator.next().then((result) => {
54
- release();
55
- resolve(result);
56
- }, (error) => {
62
+ const onError = (error) => {
57
63
  release();
58
64
  finalize();
59
65
  reject(error);
60
- });
66
+ };
67
+ try {
68
+ iterator.next().then((result) => {
69
+ release();
70
+ if (finished) return resolve(done());
71
+ if (result.done) finished = true;
72
+ resolve(result);
73
+ }, onError);
74
+ } catch (error) {
75
+ onError(error);
76
+ }
61
77
  });
62
78
  },
63
79
  return: async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"abortable-iterable.js","names":["done","IteratorResult","T","value","undefined","whenAborted","signal","AbortSignal","Promise","resolve","aborted","addEventListener","once","openAbortableIterable","source","AsyncIterable","opened","iterable","race","then","late","Symbol","asyncIterator","return","catch","abortableIterable","iterator","finalize","next","reject","onAbort","release","removeEventListener","result","error"],"sources":["../../src/utils/abortable-iterable.ts"],"sourcesContent":["const done = <T>(): IteratorResult<T> => ({ done: true, value: undefined });\n\n/** Resolves at cancellation, so an await on a stream can stop being the only way out. */\nconst whenAborted = (signal: AbortSignal): Promise<undefined> =>\n new Promise((resolve) => {\n if (signal.aborted) return resolve(undefined);\n signal.addEventListener(\"abort\", () => resolve(undefined), { once: true });\n });\n\nexport const openAbortableIterable = async <T>(\n source: AsyncIterable<T> | Promise<AsyncIterable<T>>,\n signal: AbortSignal,\n): Promise<AsyncIterable<T> | undefined> => {\n const opened = Promise.resolve(source);\n const iterable = await Promise.race([opened, whenAborted(signal)]);\n if (!iterable) {\n void opened\n .then((late) => late[Symbol.asyncIterator]().return?.(undefined))\n .catch(() => {});\n }\n return iterable;\n};\n\n/**\n * Presents a stream as exhausted once the signal aborts, so a consumer stops\n * waiting on it.\n *\n * A caller's stream is free to ignore the abort signal it is handed. One that\n * also stops yielding, because it is awaiting its own work, leaves `for await`\n * parked on `next()` with nothing left to wake it: the run never settles and\n * whatever is serialized behind it never starts. Reporting the stream as\n * exhausted ends the loop at cancellation instead.\n *\n * The source is finalized on the way out, but never awaited, since a stream\n * that is already parked would not settle that either.\n */\nexport const abortableIterable = <T>(\n source: AsyncIterable<T>,\n signal: AbortSignal,\n): AsyncIterable<T> => ({\n [Symbol.asyncIterator]: () => {\n const iterator = source[Symbol.asyncIterator]();\n const finalize = () => {\n try {\n iterator.return?.(undefined)?.catch(() => {});\n } catch {\n // a source that throws on finalize has nothing left to clean up\n }\n };\n\n return {\n [Symbol.asyncIterator]() {\n return this;\n },\n next: () => {\n if (signal.aborted) {\n finalize();\n return Promise.resolve(done<T>());\n }\n\n return new Promise<IteratorResult<T>>((resolve, reject) => {\n // Registered per chunk and released as soon as the chunk settles, so\n // a long stream does not accumulate one reaction per chunk.\n const onAbort = () => {\n finalize();\n resolve(done<T>());\n };\n signal.addEventListener(\"abort\", onAbort, { once: true });\n const release = () => signal.removeEventListener(\"abort\", onAbort);\n\n iterator.next().then(\n (result) => {\n release();\n resolve(result);\n },\n (error: unknown) => {\n release();\n finalize();\n reject(error);\n },\n );\n });\n },\n // The consumer breaks out of the loop to stop a cancelled run, so this is\n // reached on the same path as an abort and finalizes the same way: a\n // source whose own cleanup parks must not stall the break either.\n return: async () => {\n finalize();\n return done<T>();\n },\n };\n },\n});\n"],"mappings":";AAAA,MAAMA,cAAoC;CAAEA,MAAM;CAAMG,OAAOC,KAAAA;AAAU;;AAGzE,MAAMC,eAAeC,WACnB,IAAIE,SAASC,YAAY;CACvB,IAAIH,OAAOI,SAAS,OAAOD,QAAQL,KAAAA,CAAS;CAC5CE,OAAOK,iBAAiB,eAAeF,QAAQL,KAAAA,CAAS,GAAG,EAAEQ,MAAM,KAAK,CAAC;AAC3E,CAAC;AAEH,MAAaC,wBAAwB,OACnCC,QACAR,WAC0C;CAC1C,MAAMU,SAASR,QAAQC,QAAQK,MAAM;CACrC,MAAMG,WAAW,MAAMT,QAAQU,KAAK,CAACF,QAAQX,YAAYC,MAAM,CAAC,CAAC;CACjE,IAAI,CAACW,UACH,OACGE,MAAMC,SAASA,KAAKC,OAAOC,cAAc,CAAC,CAAC,CAACC,SAASnB,KAAAA,CAAS,CAAC,CAAC,CAChEoB,YAAY,CAAC,CAAC;CAEnB,OAAOP;AACT;;;;;;;;;;;;;;AAeA,MAAaQ,qBACXX,QACAR,YACsB,GACrBe,OAAOC,sBAAsB;CAC5B,MAAMI,WAAWZ,OAAOO,OAAOC,cAAc,CAAC;CAC9C,MAAMK,iBAAiB;EACrB,IAAI;GACFD,SAASH,SAASnB,KAAAA,CAAS,CAAC,EAAEoB,YAAY,CAAC,CAAC;EAC9C,QAAQ,CACN;CAEJ;CAEA,OAAO;EACL,CAACH,OAAOC,iBAAiB;GACvB,OAAO;EACT;EACAM,YAAY;GACV,IAAItB,OAAOI,SAAS;IAClBiB,SAAS;IACT,OAAOnB,QAAQC,QAAQT,KAAQ,CAAC;GAClC;GAEA,OAAO,IAAIQ,SAA4BC,SAASoB,WAAW;IAGzD,MAAMC,gBAAgB;KACpBH,SAAS;KACTlB,QAAQT,KAAQ,CAAC;IACnB;IACAM,OAAOK,iBAAiB,SAASmB,SAAS,EAAElB,MAAM,KAAK,CAAC;IACxD,MAAMmB,gBAAgBzB,OAAO0B,oBAAoB,SAASF,OAAO;IAEjEJ,SAASE,KAAK,CAAC,CAACT,MACbc,WAAW;KACVF,QAAQ;KACRtB,QAAQwB,MAAM;IAChB,IACCC,UAAmB;KAClBH,QAAQ;KACRJ,SAAS;KACTE,OAAOK,KAAK;IACd,CACF;GACF,CAAC;EACH;EAIAX,QAAQ,YAAY;GAClBI,SAAS;GACT,OAAO3B,KAAQ;EACjB;CACF;AACF,EACF"}
1
+ {"version":3,"file":"abortable-iterable.js","names":["done","IteratorResult","T","value","undefined","openAbortableIterable","source","AsyncIterable","Promise","signal","AbortSignal","opened","resolve","release","aborted","onAbort","addEventListener","once","removeEventListener","iterable","race","then","late","Symbol","asyncIterator","return","catch","abortableIterable","iterator","finished","finalize","next","reject","onError","error","result"],"sources":["../../src/utils/abortable-iterable.ts"],"sourcesContent":["const done = <T>(): IteratorResult<T> => ({ done: true, value: undefined });\n\nexport const openAbortableIterable = async <T>(\n source: AsyncIterable<T> | Promise<AsyncIterable<T>>,\n signal: AbortSignal,\n): Promise<AsyncIterable<T> | undefined> => {\n const opened = Promise.resolve(source);\n let release = () => {};\n const aborted = new Promise<undefined>((resolve) => {\n const onAbort = () => resolve(undefined);\n if (signal.aborted) return onAbort();\n signal.addEventListener(\"abort\", onAbort, { once: true });\n release = () => signal.removeEventListener(\"abort\", onAbort);\n });\n try {\n const iterable = await Promise.race([opened, aborted]);\n if (!iterable) {\n void opened\n .then((late) => late[Symbol.asyncIterator]().return?.(undefined))\n .catch(() => {});\n }\n return iterable;\n } finally {\n release();\n }\n};\n\n/**\n * Presents a stream as exhausted once the signal aborts, so a consumer stops\n * waiting on it.\n *\n * A caller's stream is free to ignore the abort signal it is handed. One that\n * also stops yielding, because it is awaiting its own work, leaves `for await`\n * parked on `next()` with nothing left to wake it: the run never settles and\n * whatever is serialized behind it never starts. Reporting the stream as\n * exhausted ends the loop at cancellation instead.\n *\n * The source is finalized on the way out, but never awaited, since a stream\n * that is already parked would not settle that either.\n */\nexport const abortableIterable = <T>(\n source: AsyncIterable<T>,\n signal: AbortSignal,\n): AsyncIterable<T> => ({\n [Symbol.asyncIterator]: () => {\n const iterator = source[Symbol.asyncIterator]();\n let finished = false;\n const finalize = () => {\n if (finished) return;\n finished = true;\n try {\n iterator.return?.(undefined)?.catch(() => {});\n } catch {\n // a source that throws on finalize has nothing left to clean up\n }\n };\n\n return {\n [Symbol.asyncIterator]() {\n return this;\n },\n next: () => {\n if (finished || signal.aborted) {\n finalize();\n return Promise.resolve(done<T>());\n }\n\n return new Promise<IteratorResult<T>>((resolve, reject) => {\n // Registered per chunk and released as soon as the chunk settles, so\n // a long stream does not accumulate one reaction per chunk.\n const onAbort = () => {\n finalize();\n resolve(done<T>());\n };\n signal.addEventListener(\"abort\", onAbort, { once: true });\n const release = () => signal.removeEventListener(\"abort\", onAbort);\n\n const onError = (error: unknown) => {\n release();\n finalize();\n reject(error);\n };\n try {\n void iterator.next().then((result) => {\n release();\n if (finished) return resolve(done<T>());\n if (result.done) finished = true;\n resolve(result);\n }, onError);\n } catch (error) {\n onError(error);\n }\n });\n },\n // The consumer breaks out of the loop to stop a cancelled run, so this is\n // reached on the same path as an abort and finalizes the same way: a\n // source whose own cleanup parks must not stall the break either.\n return: async () => {\n finalize();\n return done<T>();\n },\n };\n },\n});\n"],"mappings":";AAAA,MAAMA,cAAoC;CAAEA,MAAM;CAAMG,OAAOC,KAAAA;AAAU;AAEzE,MAAaC,wBAAwB,OACnCC,QACAG,WAC0C;CAC1C,MAAME,SAASH,QAAQI,QAAQN,MAAM;CACrC,IAAIO,gBAAgB,CAAC;CACrB,MAAMC,UAAU,IAAIN,SAAoBI,YAAY;EAClD,MAAMG,gBAAgBH,QAAQR,KAAAA,CAAS;EACvC,IAAIK,OAAOK,SAAS,OAAOC,QAAQ;EACnCN,OAAOO,iBAAiB,SAASD,SAAS,EAAEE,MAAM,KAAK,CAAC;EACxDJ,gBAAgBJ,OAAOS,oBAAoB,SAASH,OAAO;CAC7D,CAAC;CACD,IAAI;EACF,MAAMI,WAAW,MAAMX,QAAQY,KAAK,CAACT,QAAQG,OAAO,CAAC;EACrD,IAAI,CAACK,UACH,OACGE,MAAMC,SAASA,KAAKC,OAAOC,cAAc,CAAC,CAAC,CAACC,SAASrB,KAAAA,CAAS,CAAC,CAAC,CAChEsB,YAAY,CAAC,CAAC;EAEnB,OAAOP;CACT,UAAU;EACRN,QAAQ;CACV;AACF;;;;;;;;;;;;;;AAeA,MAAac,qBACXrB,QACAG,YACsB,GACrBc,OAAOC,sBAAsB;CAC5B,MAAMI,WAAWtB,OAAOiB,OAAOC,cAAc,CAAC;CAC9C,IAAIK,WAAW;CACf,MAAMC,iBAAiB;EACrB,IAAID,UAAU;EACdA,WAAW;EACX,IAAI;GACFD,SAASH,SAASrB,KAAAA,CAAS,CAAC,EAAEsB,YAAY,CAAC,CAAC;EAC9C,QAAQ,CACN;CAEJ;CAEA,OAAO;EACL,CAACH,OAAOC,iBAAiB;GACvB,OAAO;EACT;EACAO,YAAY;GACV,IAAIF,YAAYpB,OAAOK,SAAS;IAC9BgB,SAAS;IACT,OAAOtB,QAAQI,QAAQZ,KAAQ,CAAC;GAClC;GAEA,OAAO,IAAIQ,SAA4BI,SAASoB,WAAW;IAGzD,MAAMjB,gBAAgB;KACpBe,SAAS;KACTlB,QAAQZ,KAAQ,CAAC;IACnB;IACAS,OAAOO,iBAAiB,SAASD,SAAS,EAAEE,MAAM,KAAK,CAAC;IACxD,MAAMJ,gBAAgBJ,OAAOS,oBAAoB,SAASH,OAAO;IAEjE,MAAMkB,WAAWC,UAAmB;KAClCrB,QAAQ;KACRiB,SAAS;KACTE,OAAOE,KAAK;IACd;IACA,IAAI;KACF,SAAcH,KAAK,CAAC,CAACV,MAAMc,WAAW;MACpCtB,QAAQ;MACR,IAAIgB,UAAU,OAAOjB,QAAQZ,KAAQ,CAAC;MACtC,IAAImC,OAAOnC,MAAM6B,WAAW;MAC5BjB,QAAQuB,MAAM;KAChB,GAAGF,OAAO;IACZ,SAASC,OAAO;KACdD,QAAQC,KAAK;IACf;GACF,CAAC;EACH;EAIAT,QAAQ,YAAY;GAClBK,SAAS;GACT,OAAO9B,KAAQ;EACjB;CACF;AACF,EACF"}
@@ -1,7 +1,7 @@
1
1
  import { ModelContext, ModelContextProvider } from "../model-context/types.js";
2
2
  import "../index.js";
3
3
  //#region src/utils/composite-context-provider.d.ts
4
- declare class CompositeContextProvider implements ModelContextProvider {
4
+ export declare class CompositeContextProvider implements ModelContextProvider {
5
5
  private _providers;
6
6
  private _providerUnsubscribes;
7
7
  getModelContext(): ModelContext;
@@ -11,5 +11,4 @@ declare class CompositeContextProvider implements ModelContextProvider {
11
11
  subscribe(callback: () => void): () => void;
12
12
  }
13
13
  //#endregion
14
- export { CompositeContextProvider };
15
14
  //# sourceMappingURL=composite-context-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"composite-context-provider.d.ts","names":[],"sources":["../../src/utils/composite-context-provider.ts"],"mappings":";;;cAOa,oCAAoC;UACvC;UACA;EAER,mBAJW;EAQX,6BAA6B,UAAU;UAiD/B;EAER;EAIA,UAAU"}
1
+ {"version":3,"file":"composite-context-provider.d.ts","names":[],"sources":["../../src/utils/composite-context-provider.ts"],"mappings":";;;qBAOa,oCAAoC;UACvC;UACA;EAER,mBAJW;EAQX,6BAA6B,UAAU;UAiD/B;EAER;EAIA,UAAU"}
@@ -1,6 +1,6 @@
1
1
  //#region src/utils/data-url.d.ts
2
- declare const httpUrlPattern: RegExp;
3
- type FilePartSource = {
2
+ export declare const httpUrlPattern: RegExp;
3
+ export type FilePartSource = {
4
4
  kind: "url";
5
5
  url: string;
6
6
  } | {
@@ -8,11 +8,11 @@ type FilePartSource = {
8
8
  data: string;
9
9
  mimeType: string;
10
10
  };
11
- declare function parseDataUrl(value: string): {
11
+ export declare function parseDataUrl(value: string): {
12
12
  mimeType: string;
13
13
  data: string;
14
14
  } | null;
15
- declare const resolveFilePartSource: (part: {
15
+ export declare const resolveFilePartSource: (part: {
16
16
  data: string;
17
17
  mimeType: string;
18
18
  sourceType?: string | undefined;
@@ -23,13 +23,12 @@ declare const resolveFilePartSource: (part: {
23
23
  * whether it has to be wrapped in a data URL envelope first; base64 cannot
24
24
  * contain a colon, so a real payload is never misread as a url.
25
25
  */
26
- declare function isParsableUrl(value: string): boolean;
26
+ export declare function isParsableUrl(value: string): boolean;
27
27
  /**
28
28
  * The media type a data URL declares, whether or not its payload is base64.
29
29
  * `parseDataUrl` only matches base64 payloads because it also returns the
30
30
  * bytes; this reads the declaration alone.
31
31
  */
32
- declare function dataUrlMediaType(value: string): string | undefined;
32
+ export declare function dataUrlMediaType(value: string): string | undefined;
33
33
  //#endregion
34
- export { FilePartSource, dataUrlMediaType, httpUrlPattern, isParsableUrl, parseDataUrl, resolveFilePartSource };
35
34
  //# sourceMappingURL=data-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-url.d.ts","names":[],"sources":["../../src/utils/data-url.ts"],"mappings":";cAAa,gBAAc;KAEf;EACN;EAAa;;EACb;EAAc;EAAc;;iBAElB,aACd;EACG;EAAkB;;cAMV,wBAAyB;EACpC;EACA;EACA;MACE;;;;;;;iBAmBY,cAAc;;;;;;iBAcd,iBAAiB"}
1
+ {"version":3,"file":"data-url.d.ts","names":[],"sources":["../../src/utils/data-url.ts"],"mappings":";qBAAa,gBAAc;YAEf;EACN;EAAa;;EACb;EAAc;EAAc;;wBAElB,aACd;EACG;EAAkB;;qBAMV,wBAAyB;EACpC;EACA;EACA;MACE;;;;;;;wBAmBY,cAAc;;;;;;wBAcd,iBAAiB"}
@@ -3,7 +3,22 @@ import { MessagePartStatus, ToolCallMessagePartStatus } from "../types/message.j
3
3
  type PartWithStatus = {
4
4
  readonly status: MessagePartStatus | ToolCallMessagePartStatus;
5
5
  };
6
- declare const getGroupStatus: (parts: readonly (PartWithStatus | undefined)[], indices?: readonly number[]) => MessagePartStatus | ToolCallMessagePartStatus;
6
+ export declare const getGroupStatus: (parts: readonly (PartWithStatus | undefined)[]) => MessagePartStatus | ToolCallMessagePartStatus;
7
+ export declare const getGroupSummary: (parts: readonly (PartWithStatus | undefined)[], indices: readonly number[]) => {
8
+ status: MessagePartStatus | {
9
+ readonly type: "requires-action";
10
+ readonly reason: "tool-calls" | "interrupt";
11
+ } | {
12
+ readonly type: "incomplete";
13
+ readonly reason: "tool-calls";
14
+ readonly error?: import("assistant-stream/utils").ReadonlyJSONValue;
15
+ };
16
+ counts: {
17
+ running: number;
18
+ complete: number;
19
+ incomplete: number;
20
+ requiresAction: number;
21
+ };
22
+ };
7
23
  //#endregion
8
- export { getGroupStatus };
9
24
  //# sourceMappingURL=getGroupStatus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getGroupStatus.d.ts","names":[],"sources":["../../src/utils/getGroupStatus.ts"],"mappings":";;KAMK;WACM,QAAQ,oBAAoB;;cAG1B,iBACX,iBAAiB,+BACjB,gCACC,oBAAoB"}
1
+ {"version":3,"file":"getGroupStatus.d.ts","names":[],"sources":["../../src/utils/getGroupStatus.ts"],"mappings":";;KAMK;WACM,QAAQ,oBAAoB;;qBAG1B,iBACX,iBAAiB,kCAChB,oBAAoB;qBAQV,kBACX,iBAAiB,+BACjB;UADiB"}
@@ -1,15 +1,40 @@
1
1
  import { COMPLETE_STATUS, RUNNING_STATUS } from "./normalizePartStatus.js";
2
2
  //#region src/utils/getGroupStatus.ts
3
- const getGroupStatus = (parts, indices) => {
4
- if (indices) {
5
- for (const index of indices) if (parts[index]?.status.type === "running") return RUNNING_STATUS;
6
- const lastIndex = indices.at(-1);
7
- return lastIndex === void 0 ? COMPLETE_STATUS : parts[lastIndex]?.status ?? COMPLETE_STATUS;
8
- }
3
+ const getGroupStatus = (parts) => {
9
4
  for (const part of parts) if (part?.status.type === "running") return RUNNING_STATUS;
10
5
  return parts.at(-1)?.status ?? COMPLETE_STATUS;
11
6
  };
7
+ const getGroupSummary = (parts, indices) => {
8
+ const counts = {
9
+ running: 0,
10
+ complete: 0,
11
+ incomplete: 0,
12
+ requiresAction: 0
13
+ };
14
+ let status = COMPLETE_STATUS;
15
+ let isRunning = false;
16
+ for (const index of indices) {
17
+ status = parts[index]?.status ?? COMPLETE_STATUS;
18
+ switch (status.type) {
19
+ case "running":
20
+ counts.running++;
21
+ isRunning = true;
22
+ break;
23
+ case "complete":
24
+ counts.complete++;
25
+ break;
26
+ case "incomplete":
27
+ counts.incomplete++;
28
+ break;
29
+ case "requires-action": counts.requiresAction++;
30
+ }
31
+ }
32
+ return {
33
+ status: isRunning ? RUNNING_STATUS : status,
34
+ counts
35
+ };
36
+ };
12
37
  //#endregion
13
- export { getGroupStatus };
38
+ export { getGroupStatus, getGroupSummary };
14
39
 
15
40
  //# sourceMappingURL=getGroupStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getGroupStatus.js","names":["MessagePartStatus","ToolCallMessagePartStatus","COMPLETE_STATUS","RUNNING_STATUS","PartWithStatus","status","getGroupStatus","parts","indices","index","type","lastIndex","at","undefined","part"],"sources":["../../src/utils/getGroupStatus.ts"],"sourcesContent":["import type {\n MessagePartStatus,\n ToolCallMessagePartStatus,\n} from \"../types/message\";\nimport { COMPLETE_STATUS, RUNNING_STATUS } from \"./normalizePartStatus\";\n\ntype PartWithStatus = {\n readonly status: MessagePartStatus | ToolCallMessagePartStatus;\n};\n\nexport const getGroupStatus = (\n parts: readonly (PartWithStatus | undefined)[],\n indices?: readonly number[],\n): MessagePartStatus | ToolCallMessagePartStatus => {\n if (indices) {\n for (const index of indices) {\n if (parts[index]?.status.type === \"running\") return RUNNING_STATUS;\n }\n\n const lastIndex = indices.at(-1);\n return lastIndex === undefined\n ? COMPLETE_STATUS\n : (parts[lastIndex]?.status ?? COMPLETE_STATUS);\n }\n\n for (const part of parts) {\n if (part?.status.type === \"running\") return RUNNING_STATUS;\n }\n\n return parts.at(-1)?.status ?? COMPLETE_STATUS;\n};\n"],"mappings":";;AAUA,MAAaM,kBACXC,OACAC,YACkD;CAClD,IAAIA,SAAS;EACX,KAAK,MAAMC,SAASD,SAClB,IAAID,MAAME,MAAM,EAAEJ,OAAOK,SAAS,WAAW,OAAOP;EAGtD,MAAMQ,YAAYH,QAAQI,GAAG,EAAE;EAC/B,OAAOD,cAAcE,KAAAA,IACjBX,kBACCK,MAAMI,UAAU,EAAEN,UAAUH;CACnC;CAEA,KAAK,MAAMY,QAAQP,OACjB,IAAIO,MAAMT,OAAOK,SAAS,WAAW,OAAOP;CAG9C,OAAOI,MAAMK,GAAG,EAAE,CAAC,EAAEP,UAAUH;AACjC"}
1
+ {"version":3,"file":"getGroupStatus.js","names":["MessagePartStatus","ToolCallMessagePartStatus","COMPLETE_STATUS","RUNNING_STATUS","PartWithStatus","status","getGroupStatus","parts","part","type","at","getGroupSummary","indices","counts","running","complete","incomplete","requiresAction","isRunning","index"],"sources":["../../src/utils/getGroupStatus.ts"],"sourcesContent":["import type {\n MessagePartStatus,\n ToolCallMessagePartStatus,\n} from \"../types/message\";\nimport { COMPLETE_STATUS, RUNNING_STATUS } from \"./normalizePartStatus\";\n\ntype PartWithStatus = {\n readonly status: MessagePartStatus | ToolCallMessagePartStatus;\n};\n\nexport const getGroupStatus = (\n parts: readonly (PartWithStatus | undefined)[],\n): MessagePartStatus | ToolCallMessagePartStatus => {\n for (const part of parts) {\n if (part?.status.type === \"running\") return RUNNING_STATUS;\n }\n\n return parts.at(-1)?.status ?? COMPLETE_STATUS;\n};\n\nexport const getGroupSummary = (\n parts: readonly (PartWithStatus | undefined)[],\n indices: readonly number[],\n) => {\n const counts = {\n running: 0,\n complete: 0,\n incomplete: 0,\n requiresAction: 0,\n };\n let status: MessagePartStatus | ToolCallMessagePartStatus = COMPLETE_STATUS;\n let isRunning = false;\n\n for (const index of indices) {\n status = parts[index]?.status ?? COMPLETE_STATUS;\n switch (status.type) {\n case \"running\":\n counts.running++;\n isRunning = true;\n break;\n case \"complete\":\n counts.complete++;\n break;\n case \"incomplete\":\n counts.incomplete++;\n break;\n case \"requires-action\":\n counts.requiresAction++;\n break;\n }\n }\n\n return { status: isRunning ? RUNNING_STATUS : status, counts };\n};\n"],"mappings":";;AAUA,MAAaM,kBACXC,UACkD;CAClD,KAAK,MAAMC,QAAQD,OACjB,IAAIC,MAAMH,OAAOI,SAAS,WAAW,OAAON;CAG9C,OAAOI,MAAMG,GAAG,EAAE,CAAC,EAAEL,UAAUH;AACjC;AAEA,MAAaS,mBACXJ,OACAK,YACG;CACH,MAAMC,SAAS;EACbC,SAAS;EACTC,UAAU;EACVC,YAAY;EACZC,gBAAgB;CAClB;CACA,IAAIZ,SAAwDH;CAC5D,IAAIgB,YAAY;CAEhB,KAAK,MAAMC,SAASP,SAAS;EAC3BP,SAASE,MAAMY,MAAM,EAAEd,UAAUH;EACjC,QAAQG,OAAOI,MAAf;GACE,KAAK;IACHI,OAAOC;IACPI,YAAY;IACZ;GACF,KAAK;IACHL,OAAOE;IACP;GACF,KAAK;IACHF,OAAOG;IACP;GACF,KAAK,mBACHH,OAAOI;EAEX;CACF;CAEA,OAAO;EAAEZ,QAAQa,YAAYf,iBAAiBE;EAAQQ;CAAO;AAC/D"}
@@ -2,9 +2,8 @@
2
2
  /**
3
3
  * @deprecated This API is experimental and may change without notice.
4
4
  */
5
- declare const generateId: (size?: number) => string;
6
- declare const generateErrorMessageId: () => string;
7
- declare const isErrorMessageId: (id: string) => boolean;
5
+ export declare const generateId: (size?: number) => string;
6
+ export declare const generateErrorMessageId: () => string;
7
+ export declare const isErrorMessageId: (id: string) => boolean;
8
8
  //#endregion
9
- export { generateErrorMessageId, generateId, isErrorMessageId };
10
9
  //# sourceMappingURL=id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"id.d.ts","names":[],"sources":["../../src/utils/id.ts"],"mappings":";;;;cAKa,aAAU;cAMV;cACA,mBAAoB"}
1
+ {"version":3,"file":"id.d.ts","names":[],"sources":["../../src/utils/id.ts"],"mappings":";;;;qBAKa,aAAU;qBAMV;qBACA,mBAAoB"}
@@ -7,7 +7,6 @@
7
7
  * one on the wire reads it from the bytes rather than assuming a format. Never
8
8
  * throws: the input is whatever a caller put on the part.
9
9
  */
10
- declare function detectImageMediaType(base64: string): string | undefined;
10
+ export declare function detectImageMediaType(base64: string): string | undefined;
11
11
  //#endregion
12
- export { detectImageMediaType };
13
12
  //# sourceMappingURL=image-media-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-media-type.d.ts","names":[],"sources":["../../src/utils/image-media-type.ts"],"mappings":";;;;;;;;;iBA4GgB,qBAAqB"}
1
+ {"version":3,"file":"image-media-type.d.ts","names":[],"sources":["../../src/utils/image-media-type.ts"],"mappings":";;;;;;;;;wBA4GgB,qBAAqB"}
@@ -1,5 +1,4 @@
1
1
  //#region src/utils/invoke-user-callback.d.ts
2
- declare function invokeUserCallback<TArgs extends readonly unknown[]>(tag: string, name: string, callback: ((...args: TArgs) => unknown) | undefined, ...args: TArgs): void | Promise<void>;
2
+ export declare function invokeUserCallback<TArgs extends readonly unknown[]>(tag: string, name: string, callback: ((...args: TArgs) => unknown) | undefined, ...args: TArgs): void | Promise<void>;
3
3
  //#endregion
4
- export { invokeUserCallback };
5
4
  //# sourceMappingURL=invoke-user-callback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoke-user-callback.d.ts","names":[],"sources":["../../src/utils/invoke-user-callback.ts"],"mappings":";iBAAgB,mBAAmB,kCACjC,aACA,cACA,eAAe,MAAM,mCAClB,MAAM,eACD"}
1
+ {"version":3,"file":"invoke-user-callback.d.ts","names":[],"sources":["../../src/utils/invoke-user-callback.ts"],"mappings":";wBAAgB,mBAAmB,kCACjC,aACA,cACA,eAAe,MAAM,mCAClB,MAAM,eACD"}
@@ -1,5 +1,4 @@
1
1
  //#region src/utils/json/is-json-equal.d.ts
2
- declare const isJSONValueEqual: (a: unknown, b: unknown) => boolean;
2
+ export declare const isJSONValueEqual: (a: unknown, b: unknown) => boolean;
3
3
  //#endregion
4
- export { isJSONValueEqual };
5
4
  //# sourceMappingURL=is-json-equal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-json-equal.d.ts","names":[],"sources":["../../../src/utils/json/is-json-equal.ts"],"mappings":";cA4Ca,mBAAoB,YAAY"}
1
+ {"version":3,"file":"is-json-equal.d.ts","names":[],"sources":["../../../src/utils/json/is-json-equal.ts"],"mappings":";qBA4Ca,mBAAoB,YAAY"}
@@ -1,9 +1,8 @@
1
1
  import { ReadonlyJSONArray, ReadonlyJSONObject, ReadonlyJSONValue } from "assistant-stream/utils";
2
2
  //#region src/utils/json/is-json.d.ts
3
- declare function isRecord(value: unknown): value is Record<string, unknown>;
4
- declare function isJSONValue(value: unknown, currentDepth?: number): value is ReadonlyJSONValue;
5
- declare function isJSONArray(value: unknown): value is ReadonlyJSONArray;
6
- declare function isJSONObject(value: unknown): value is ReadonlyJSONObject;
3
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
4
+ export declare function isJSONValue(value: unknown, currentDepth?: number): value is ReadonlyJSONValue;
5
+ export declare function isJSONArray(value: unknown): value is ReadonlyJSONArray;
6
+ export declare function isJSONObject(value: unknown): value is ReadonlyJSONObject;
7
7
  //#endregion
8
- export { isJSONArray, isJSONObject, isJSONValue, isRecord };
9
8
  //# sourceMappingURL=is-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-json.d.ts","names":[],"sources":["../../../src/utils/json/is-json.ts"],"mappings":";;iBAMgB,SAAS,iBAAiB,SAAS;iBAInC,YACd,gBACA,wBACC,SAAS;iBAiCI,YAAY,iBAAiB,SAAS;iBAItC,aAAa,iBAAiB,SAAS"}
1
+ {"version":3,"file":"is-json.d.ts","names":[],"sources":["../../../src/utils/json/is-json.ts"],"mappings":";;wBAMgB,SAAS,iBAAiB,SAAS;wBAInC,YACd,gBACA,wBACC,SAAS;wBAiCI,YAAY,iBAAiB,SAAS;wBAItC,aAAa,iBAAiB,SAAS"}
@@ -1,7 +1,6 @@
1
1
  import { ReadonlyJSONObject } from "assistant-stream/utils";
2
2
  //#region src/utils/json/stable-stringify-tool-args.d.ts
3
- declare const trackToolArgsKeyOrder: (keyOrderCache: Map<string, Map<string, string[]>> | undefined, cacheKey: string, args: ReadonlyJSONObject) => void;
4
- declare const stableStringifyToolArgs: (keyOrderCache: Map<string, Map<string, string[]>> | undefined, cacheKey: string, args: ReadonlyJSONObject) => string;
3
+ export declare const trackToolArgsKeyOrder: (keyOrderCache: Map<string, Map<string, string[]>> | undefined, cacheKey: string, args: ReadonlyJSONObject) => void;
4
+ export declare const stableStringifyToolArgs: (keyOrderCache: Map<string, Map<string, string[]>> | undefined, cacheKey: string, args: ReadonlyJSONObject) => string;
5
5
  //#endregion
6
- export { stableStringifyToolArgs, trackToolArgsKeyOrder };
7
6
  //# sourceMappingURL=stable-stringify-tool-args.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stable-stringify-tool-args.d.ts","names":[],"sources":["../../../src/utils/json/stable-stringify-tool-args.ts"],"mappings":";;cAgDa,wBACX,eAAe,YAAY,oCAC3B,kBACA,MAAM;cAMK,0BACX,eAAe,YAAY,oCAC3B,kBACA,MAAM"}
1
+ {"version":3,"file":"stable-stringify-tool-args.d.ts","names":[],"sources":["../../../src/utils/json/stable-stringify-tool-args.ts"],"mappings":";;qBAgDa,wBACX,eAAe,YAAY,oCAC3B,kBACA,MAAM;qBAMK,0BACX,eAAe,YAAY,oCAC3B,kBACA,MAAM"}
@@ -1,9 +1,8 @@
1
1
  import { MessagePartStatus, ThreadAssistantMessagePart, ThreadMessage, ThreadUserMessagePart, ToolCallMessagePartStatus } from "../types/message.js";
2
2
  //#region src/utils/normalizePartStatus.d.ts
3
- declare const COMPLETE_STATUS: MessagePartStatus;
4
- declare const RUNNING_STATUS: MessagePartStatus;
5
- declare const normalizePartStatus: (part: ThreadUserMessagePart | ThreadAssistantMessagePart) => MessagePartStatus | undefined;
6
- declare const toMessagePartStatus: (message: ThreadMessage, partIndex: number, part: ThreadUserMessagePart | ThreadAssistantMessagePart) => ToolCallMessagePartStatus;
3
+ export declare const COMPLETE_STATUS: MessagePartStatus;
4
+ export declare const RUNNING_STATUS: MessagePartStatus;
5
+ export declare const normalizePartStatus: (part: ThreadUserMessagePart | ThreadAssistantMessagePart) => MessagePartStatus | undefined;
6
+ export declare const toMessagePartStatus: (message: ThreadMessage, partIndex: number, part: ThreadUserMessagePart | ThreadAssistantMessagePart) => ToolCallMessagePartStatus;
7
7
  //#endregion
8
- export { COMPLETE_STATUS, RUNNING_STATUS, normalizePartStatus, toMessagePartStatus };
9
8
  //# sourceMappingURL=normalizePartStatus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizePartStatus.d.ts","names":[],"sources":["../../src/utils/normalizePartStatus.ts"],"mappings":";;cASa,iBAAiB;cAGjB,gBAAgB;cAoBhB,sBACX,MAAM,wBAAwB,+BAC7B;cAwBU,sBACX,SAAS,eACT,mBACA,MAAM,wBAAwB,+BAC7B"}
1
+ {"version":3,"file":"normalizePartStatus.d.ts","names":[],"sources":["../../src/utils/normalizePartStatus.ts"],"mappings":";;qBASa,iBAAiB;qBAGjB,gBAAgB;qBAoBhB,sBACX,MAAM,wBAAwB,+BAC7B;qBAwBU,sBACX,SAAS,eACT,mBACA,MAAM,wBAAwB,+BAC7B"}
@@ -1,6 +1,5 @@
1
1
  //#region src/utils/notify-event-listeners.d.ts
2
2
  type EventListener<T> = (payload: T) => unknown;
3
- declare const notifyEventListeners: <T>(listeners: Iterable<EventListener<T>>, payloadOrFactory: T | (() => T), errorContext: string) => void;
3
+ export declare const notifyEventListeners: <T>(listeners: Iterable<EventListener<T>>, payloadOrFactory: T | (() => T), errorContext: string) => void;
4
4
  //#endregion
5
- export { notifyEventListeners };
6
5
  //# sourceMappingURL=notify-event-listeners.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-event-listeners.d.ts","names":[],"sources":["../../src/utils/notify-event-listeners.ts"],"mappings":";KAAK,cAAc,MAAM,SAAS;cAGrB,uBAAwB,GACnC,WAAW,SAAS,cAAc,KAClC,kBAAkB,WAAW,IAC7B"}
1
+ {"version":3,"file":"notify-event-listeners.d.ts","names":[],"sources":["../../src/utils/notify-event-listeners.ts"],"mappings":";KAAK,cAAc,MAAM,SAAS;qBAGrB,uBAAwB,GACnC,WAAW,SAAS,cAAc,KAClC,kBAAkB,WAAW,IAC7B"}
@@ -5,7 +5,6 @@
5
5
  * `Object.prototype` setter instead of defining an own property, so a record
6
6
  * assigned into by a key the app does not control is built this way.
7
7
  */
8
- declare const nullProtoRecord: <T>(base?: Readonly<Record<string, T>>, ...rest: readonly (Readonly<Record<string, NoInfer<T>>> | undefined)[]) => Record<string, T>;
8
+ export declare const nullProtoRecord: <T>(base?: Readonly<Record<string, T>>, ...rest: readonly (Readonly<Record<string, NoInfer<T>>> | undefined)[]) => Record<string, T>;
9
9
  //#endregion
10
- export { nullProtoRecord };
11
10
  //# sourceMappingURL=record.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","names":[],"sources":["../../src/utils/record.ts"],"mappings":";;;;;;;cAMa,kBAAmB,GAC9B,OAAO,SAAS,eAAe,QAC5B,gBAAgB,SAAS,eAAe,QAAQ,wBAClD,eAAe"}
1
+ {"version":3,"file":"record.d.ts","names":[],"sources":["../../src/utils/record.ts"],"mappings":";;;;;;;qBAMa,kBAAmB,GAC9B,OAAO,SAAS,eAAe,QAC5B,gBAAgB,SAAS,eAAe,QAAQ,wBAClD,eAAe"}