@assistant-ui/core 0.2.19 → 0.2.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (512) hide show
  1. package/dist/adapters/attachment.d.ts +2 -2
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/attachment.js +14 -7
  4. package/dist/adapters/attachment.js.map +1 -1
  5. package/dist/adapters/directive-formatter.d.ts +0 -1
  6. package/dist/adapters/directive-formatter.d.ts.map +1 -1
  7. package/dist/adapters/feedback.d.ts +0 -1
  8. package/dist/adapters/feedback.d.ts.map +1 -1
  9. package/dist/adapters/index.d.ts +2 -2
  10. package/dist/adapters/index.js +2 -1
  11. package/dist/adapters/speech.d.ts +0 -1
  12. package/dist/adapters/speech.d.ts.map +1 -1
  13. package/dist/adapters/suggestion.d.ts +16 -2
  14. package/dist/adapters/suggestion.d.ts.map +1 -1
  15. package/dist/adapters/suggestion.js +36 -0
  16. package/dist/adapters/suggestion.js.map +1 -0
  17. package/dist/adapters/thread-history.d.ts +2 -2
  18. package/dist/adapters/thread-history.d.ts.map +1 -1
  19. package/dist/adapters/trigger.d.ts +5 -3
  20. package/dist/adapters/trigger.d.ts.map +1 -1
  21. package/dist/adapters/voice.d.ts +0 -1
  22. package/dist/adapters/voice.d.ts.map +1 -1
  23. package/dist/index.d.ts +4 -3
  24. package/dist/index.js +3 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/internal/duplicate-detection.d.ts.map +1 -1
  27. package/dist/internal.d.ts +7 -1
  28. package/dist/internal.js +6 -2
  29. package/dist/model-context/frame/host.d.ts +0 -1
  30. package/dist/model-context/frame/host.d.ts.map +1 -1
  31. package/dist/model-context/frame/provider.d.ts +0 -1
  32. package/dist/model-context/frame/provider.d.ts.map +1 -1
  33. package/dist/model-context/frame/types.d.ts.map +1 -1
  34. package/dist/model-context/interactable-composer-metadata.d.ts +4 -2
  35. package/dist/model-context/interactable-composer-metadata.d.ts.map +1 -1
  36. package/dist/model-context/registry-handles.d.ts +0 -1
  37. package/dist/model-context/registry-handles.d.ts.map +1 -1
  38. package/dist/model-context/registry.d.ts +0 -1
  39. package/dist/model-context/registry.d.ts.map +1 -1
  40. package/dist/model-context/tool.d.ts +23 -9
  41. package/dist/model-context/tool.d.ts.map +1 -1
  42. package/dist/model-context/tool.js +0 -25
  43. package/dist/model-context/tool.js.map +1 -1
  44. package/dist/model-context/types.d.ts +0 -1
  45. package/dist/model-context/types.d.ts.map +1 -1
  46. package/dist/react/AssistantProvider.d.ts +0 -1
  47. package/dist/react/AssistantProvider.d.ts.map +1 -1
  48. package/dist/react/AssistantRuntimeProvider.d.ts +1 -6
  49. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  50. package/dist/react/RuntimeAdapter.d.ts +1 -0
  51. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  52. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +13 -2
  53. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  54. package/dist/react/adapters/LocalStorageThreadListAdapter.js +122 -7
  55. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  56. package/dist/react/adapters/TitleGenerationAdapter.d.ts +0 -1
  57. package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
  58. package/dist/react/client/DataRenderers.d.ts +0 -1
  59. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  60. package/dist/react/client/Interactables.d.ts +0 -1
  61. package/dist/react/client/Interactables.d.ts.map +1 -1
  62. package/dist/react/client/Tools.d.ts +3 -2
  63. package/dist/react/client/Tools.d.ts.map +1 -1
  64. package/dist/react/client/interactable-model-context.d.ts +0 -1
  65. package/dist/react/client/interactable-model-context.d.ts.map +1 -1
  66. package/dist/react/index.d.ts +2 -2
  67. package/dist/react/interactables-legacy/Interactables.d.ts +0 -1
  68. package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
  69. package/dist/react/interactables-legacy/interactable-model-context.d.ts +0 -1
  70. package/dist/react/interactables-legacy/interactable-model-context.d.ts.map +1 -1
  71. package/dist/react/interactables-legacy/scopes.d.ts +4 -2
  72. package/dist/react/interactables-legacy/scopes.d.ts.map +1 -1
  73. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts +0 -1
  74. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts.map +1 -1
  75. package/dist/react/interactables-legacy/useInteractableState.d.ts.map +1 -1
  76. package/dist/react/model-context/define-mcp-toolkit.d.ts +19 -4
  77. package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -1
  78. package/dist/react/model-context/define-mcp-toolkit.js +17 -5
  79. package/dist/react/model-context/define-mcp-toolkit.js.map +1 -1
  80. package/dist/react/model-context/define-toolkit.d.ts +1 -2
  81. package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
  82. package/dist/react/model-context/external-tool.d.ts.map +1 -1
  83. package/dist/react/model-context/human-tool.d.ts.map +1 -1
  84. package/dist/react/model-context/interactableTool.d.ts +2 -2
  85. package/dist/react/model-context/interactableTool.d.ts.map +1 -1
  86. package/dist/react/model-context/makeAssistantDataUI.d.ts +2 -2
  87. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
  88. package/dist/react/model-context/makeAssistantTool.d.ts +2 -2
  89. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  90. package/dist/react/model-context/makeAssistantToolUI.d.ts +2 -2
  91. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  92. package/dist/react/model-context/provider-tool.d.ts +0 -1
  93. package/dist/react/model-context/provider-tool.d.ts.map +1 -1
  94. package/dist/react/model-context/stub-tool.d.ts.map +1 -1
  95. package/dist/react/model-context/toolbox.d.ts +5 -5
  96. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  97. package/dist/react/model-context/useAssistantContext.d.ts +1 -0
  98. package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
  99. package/dist/react/model-context/useAssistantDataUI.d.ts +3 -2
  100. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
  101. package/dist/react/model-context/useAssistantInstructions.d.ts +1 -0
  102. package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
  103. package/dist/react/model-context/useAssistantTool.d.ts +4 -2
  104. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  105. package/dist/react/model-context/useAssistantToolUI.d.ts +3 -2
  106. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  107. package/dist/react/model-context/useAuiToolOverrides.d.ts +0 -1
  108. package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -1
  109. package/dist/react/model-context/useInlineRender.d.ts +0 -1
  110. package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
  111. package/dist/react/model-context/useInteractable.d.ts +7 -4
  112. package/dist/react/model-context/useInteractable.d.ts.map +1 -1
  113. package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
  114. package/dist/react/model-context/useInteractableVersions.d.ts +0 -1
  115. package/dist/react/model-context/useInteractableVersions.d.ts.map +1 -1
  116. package/dist/react/model-context/useToolArgsStatus.d.ts +3 -1
  117. package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
  118. package/dist/react/primitive-hooks/useActionBarCopy.d.ts +1 -4
  119. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  120. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
  121. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
  122. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
  123. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
  124. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
  125. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
  126. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
  127. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +0 -1
  128. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
  129. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
  130. package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
  131. package/dist/react/primitive-hooks/useComposerSend.d.ts +0 -1
  132. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  133. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
  134. package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
  135. package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
  136. package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
  137. package/dist/react/primitive-hooks/useMessageError.js +5 -1
  138. package/dist/react/primitive-hooks/useMessageError.js.map +1 -1
  139. package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
  140. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +1 -5
  141. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
  142. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
  143. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
  144. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
  145. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
  146. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
  147. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
  148. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
  149. package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
  150. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts.map +1 -1
  151. package/dist/react/primitive-hooks/useThreadMessages.d.ts +0 -1
  152. package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
  153. package/dist/react/primitive-hooks/useVoice.d.ts +0 -1
  154. package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
  155. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +7 -4
  156. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  157. package/dist/react/primitives/composer/ComposerAttachments.d.ts +4 -3
  158. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  159. package/dist/react/primitives/composer/ComposerIf.d.ts +4 -3
  160. package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
  161. package/dist/react/primitives/composer/ComposerQueue.d.ts +2 -2
  162. package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
  163. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +2 -2
  164. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -1
  165. package/dist/react/primitives/generativeUI/GenerativeUI.js +1 -1
  166. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  167. package/dist/react/primitives/message/MessageAttachments.d.ts +4 -3
  168. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
  169. package/dist/react/primitives/message/MessageGroupedParts.d.ts +1 -6
  170. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  171. package/dist/react/primitives/message/MessageParts.d.ts +42 -24
  172. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  173. package/dist/react/primitives/message/MessageParts.js +2 -1
  174. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  175. package/dist/react/primitives/message/MessageQuote.d.ts +2 -2
  176. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
  177. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +0 -1
  178. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  179. package/dist/react/primitives/part/PartMessages.d.ts +2 -2
  180. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  181. package/dist/react/primitives/thread/ThreadMessages.d.ts +35 -17
  182. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  183. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +6 -4
  184. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  185. package/dist/react/primitives/threadList/ThreadListItems.d.ts +4 -3
  186. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  187. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +0 -1
  188. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  189. package/dist/react/providers/AttachmentByIndexProvider.d.ts +0 -1
  190. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  191. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +0 -1
  192. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  193. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +0 -1
  194. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  195. package/dist/react/providers/MessageByIdProvider.d.ts +0 -1
  196. package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
  197. package/dist/react/providers/MessageByIndexProvider.d.ts +0 -1
  198. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
  199. package/dist/react/providers/PartByIndexProvider.d.ts +0 -1
  200. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
  201. package/dist/react/providers/QueueItemByIndexProvider.d.ts +0 -1
  202. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
  203. package/dist/react/providers/ReadonlyThreadProvider.d.ts +0 -1
  204. package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
  205. package/dist/react/providers/SuggestionByIndexProvider.d.ts +0 -1
  206. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  207. package/dist/react/providers/TextMessagePartProvider.d.ts +0 -1
  208. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  209. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +0 -1
  210. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
  211. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +1 -1
  212. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  213. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +2 -1
  214. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  215. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +1 -1
  216. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  217. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +3 -1
  218. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  219. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +21 -19
  220. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  221. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +0 -1
  222. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  223. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +0 -1
  224. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  225. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +1 -4
  226. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  227. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +6 -3
  228. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  229. package/dist/react/runtimes/cloud/auiV0.d.ts +12 -2
  230. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  231. package/dist/react/runtimes/cloud/auiV0.js +30 -1
  232. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  233. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +0 -1
  234. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  235. package/dist/react/runtimes/createMessageConverter.d.ts +1 -7
  236. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  237. package/dist/react/runtimes/createRuntimeExtras.d.ts +0 -1
  238. package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
  239. package/dist/react/runtimes/external-message-converter.d.ts +1 -8
  240. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  241. package/dist/react/runtimes/external-message-converter.js +42 -44
  242. package/dist/react/runtimes/external-message-converter.js.map +1 -1
  243. package/dist/react/runtimes/useExternalStoreRuntime.d.ts +0 -1
  244. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
  245. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +0 -1
  246. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
  247. package/dist/react/runtimes/useLocalRuntime.d.ts +2 -5
  248. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  249. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +0 -1
  250. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  251. package/dist/react/runtimes/useStreamingTiming.d.ts +0 -1
  252. package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
  253. package/dist/react/types/MessagePartComponentTypes.d.ts +6 -3
  254. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  255. package/dist/react/types/scopes/dataRenderers.d.ts +1 -1
  256. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
  257. package/dist/react/types/scopes/interactables.d.ts +4 -2
  258. package/dist/react/types/scopes/interactables.d.ts.map +1 -1
  259. package/dist/react/types/scopes/tools.d.ts +5 -3
  260. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  261. package/dist/react/types/store-augmentation.d.ts +1 -2
  262. package/dist/react/types/store-augmentation.d.ts.map +1 -1
  263. package/dist/react/utils/getMessageQuote.d.ts +0 -1
  264. package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
  265. package/dist/react/utils/groupParts.d.ts +2 -2
  266. package/dist/react/utils/groupParts.d.ts.map +1 -1
  267. package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
  268. package/dist/runtime/api/assistant-runtime.d.ts +0 -1
  269. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  270. package/dist/runtime/api/attachment-runtime.d.ts +0 -1
  271. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  272. package/dist/runtime/api/bindings.d.ts +0 -1
  273. package/dist/runtime/api/bindings.d.ts.map +1 -1
  274. package/dist/runtime/api/composer-runtime.d.ts +6 -4
  275. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  276. package/dist/runtime/api/message-part-runtime.d.ts +0 -1
  277. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  278. package/dist/runtime/api/message-runtime.d.ts +6 -16
  279. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  280. package/dist/runtime/api/message-runtime.js +1 -1
  281. package/dist/runtime/api/paths.d.ts.map +1 -1
  282. package/dist/runtime/api/thread-list-item-runtime.d.ts +0 -1
  283. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  284. package/dist/runtime/api/thread-list-runtime.d.ts +0 -1
  285. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  286. package/dist/runtime/api/thread-runtime.d.ts +3 -1
  287. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  288. package/dist/runtime/base/base-assistant-runtime-core.d.ts +0 -1
  289. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  290. package/dist/runtime/base/base-composer-runtime-core.d.ts +0 -1
  291. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  292. package/dist/runtime/base/base-composer-runtime-core.js +17 -3
  293. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  294. package/dist/runtime/base/base-thread-runtime-core.d.ts +2 -4
  295. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  296. package/dist/runtime/base/base-thread-runtime-core.js +1 -1
  297. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +1 -5
  298. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  299. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +1 -0
  300. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  301. package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
  302. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +0 -1
  303. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  304. package/dist/runtime/interfaces/composer-runtime-core.d.ts +2 -2
  305. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  306. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +0 -1
  307. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  308. package/dist/runtime/interfaces/thread-runtime-core.d.ts +2 -2
  309. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  310. package/dist/runtime/queue/external-thread-queue-adapter.d.ts +0 -1
  311. package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
  312. package/dist/runtime/queue/message-queue.d.ts +6 -4
  313. package/dist/runtime/queue/message-queue.d.ts.map +1 -1
  314. package/dist/runtime/queue/message-queue.js +1 -1
  315. package/dist/runtime/utils/auto-status.d.ts +0 -1
  316. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  317. package/dist/runtime/utils/chat-model-adapter.d.ts +0 -1
  318. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  319. package/dist/runtime/utils/external-store-message.d.ts +0 -1
  320. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  321. package/dist/runtime/utils/message-repository.d.ts +1 -5
  322. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  323. package/dist/runtime/utils/message-repository.js +3 -1
  324. package/dist/runtime/utils/message-repository.js.map +1 -1
  325. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +0 -1
  326. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
  327. package/dist/runtime/utils/streaming-timing.d.ts +5 -3
  328. package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
  329. package/dist/runtime/utils/thread-message-like.d.ts +2 -2
  330. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  331. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  332. package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
  333. package/dist/runtimes/external-store/external-store-adapter.d.ts +2 -2
  334. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  335. package/dist/runtimes/external-store/external-store-runtime-core.d.ts +0 -1
  336. package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
  337. package/dist/runtimes/external-store/external-store-shared-options.d.ts +0 -1
  338. package/dist/runtimes/external-store/external-store-shared-options.d.ts.map +1 -1
  339. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +0 -1
  340. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  341. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +2 -0
  342. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  343. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +1 -1
  344. package/dist/runtimes/external-store/thread-message-converter.d.ts +0 -1
  345. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  346. package/dist/runtimes/local/local-runtime-core.d.ts +0 -1
  347. package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
  348. package/dist/runtimes/local/local-runtime-options.d.ts +0 -1
  349. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  350. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +0 -1
  351. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  352. package/dist/runtimes/local/local-thread-runtime-core.d.ts +5 -21
  353. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  354. package/dist/runtimes/local/local-thread-runtime-core.js +24 -15
  355. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  356. package/dist/runtimes/local/should-continue.d.ts +0 -1
  357. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  358. package/dist/runtimes/local/should-continue.js +2 -2
  359. package/dist/runtimes/local/should-continue.js.map +1 -1
  360. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +0 -1
  361. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  362. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +1 -2
  363. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  364. package/dist/runtimes/remote-thread-list/adapter/in-memory.js +5 -3
  365. package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -1
  366. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +0 -1
  367. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  368. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +6 -4
  369. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  370. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +0 -1
  371. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  372. package/dist/runtimes/remote-thread-list/types.d.ts +0 -1
  373. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  374. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +2 -2
  375. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
  376. package/dist/store/clients/chain-of-thought-client.d.ts +0 -1
  377. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  378. package/dist/store/clients/model-context-client.d.ts +0 -1
  379. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  380. package/dist/store/clients/no-op-composer-client.d.ts +0 -1
  381. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  382. package/dist/store/clients/runtime-adapter.d.ts +0 -1
  383. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  384. package/dist/store/clients/suggestions.d.ts +0 -1
  385. package/dist/store/clients/suggestions.d.ts.map +1 -1
  386. package/dist/store/clients/thread-message-client.d.ts +0 -1
  387. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  388. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +0 -1
  389. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  390. package/dist/store/runtime-clients/composer-runtime-client.d.ts +0 -1
  391. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  392. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
  393. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +0 -1
  394. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  395. package/dist/store/runtime-clients/message-runtime-client.d.ts +0 -1
  396. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  397. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +0 -1
  398. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  399. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +0 -1
  400. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  401. package/dist/store/runtime-clients/thread-runtime-client.d.ts +0 -1
  402. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  403. package/dist/store/runtime-clients/useSubscribable.d.ts +0 -1
  404. package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
  405. package/dist/store/scope-registration.d.ts +1 -2
  406. package/dist/store/scope-registration.d.ts.map +1 -1
  407. package/dist/store/scopes/attachment.d.ts +0 -1
  408. package/dist/store/scopes/attachment.d.ts.map +1 -1
  409. package/dist/store/scopes/chain-of-thought.d.ts +0 -1
  410. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  411. package/dist/store/scopes/composer.d.ts +0 -1
  412. package/dist/store/scopes/composer.d.ts.map +1 -1
  413. package/dist/store/scopes/message.d.ts +6 -4
  414. package/dist/store/scopes/message.d.ts.map +1 -1
  415. package/dist/store/scopes/model-context.d.ts +0 -1
  416. package/dist/store/scopes/model-context.d.ts.map +1 -1
  417. package/dist/store/scopes/part.d.ts +0 -1
  418. package/dist/store/scopes/part.d.ts.map +1 -1
  419. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  420. package/dist/store/scopes/suggestion.d.ts.map +1 -1
  421. package/dist/store/scopes/suggestions.d.ts +0 -1
  422. package/dist/store/scopes/suggestions.d.ts.map +1 -1
  423. package/dist/store/scopes/thread-list-item.d.ts +0 -1
  424. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  425. package/dist/store/scopes/thread.d.ts +4 -3
  426. package/dist/store/scopes/thread.d.ts.map +1 -1
  427. package/dist/store/scopes/threads.d.ts +0 -1
  428. package/dist/store/scopes/threads.d.ts.map +1 -1
  429. package/dist/subscribable/subscribable.d.ts +0 -1
  430. package/dist/subscribable/subscribable.d.ts.map +1 -1
  431. package/dist/tests/remote-thread-list-test-helpers.d.ts +0 -1
  432. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -1
  433. package/dist/types/attachment.d.ts +1 -1
  434. package/dist/types/attachment.d.ts.map +1 -1
  435. package/dist/types/directive.d.ts +3 -2
  436. package/dist/types/directive.d.ts.map +1 -1
  437. package/dist/types/error.d.ts +15 -0
  438. package/dist/types/error.d.ts.map +1 -0
  439. package/dist/types/error.js +46 -0
  440. package/dist/types/error.js.map +1 -0
  441. package/dist/types/index.d.ts +2 -2
  442. package/dist/types/message.d.ts +70 -33
  443. package/dist/types/message.d.ts.map +1 -1
  444. package/dist/types/message.js.map +1 -1
  445. package/dist/types/quote.d.ts.map +1 -1
  446. package/dist/types/trigger.d.ts +0 -1
  447. package/dist/types/trigger.d.ts.map +1 -1
  448. package/dist/types/unsubscribe.d.ts.map +1 -1
  449. package/dist/utils/composite-context-provider.d.ts +1 -0
  450. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  451. package/dist/utils/id.d.ts.map +1 -1
  452. package/dist/utils/json/is-json-equal.d.ts.map +1 -1
  453. package/dist/utils/json/is-json.d.ts +0 -1
  454. package/dist/utils/json/is-json.d.ts.map +1 -1
  455. package/dist/utils/json/is-json.js +1 -1
  456. package/dist/utils/json/is-json.js.map +1 -1
  457. package/dist/utils/json/stable-stringify-tool-args.d.ts +7 -0
  458. package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -0
  459. package/dist/utils/json/stable-stringify-tool-args.js +32 -0
  460. package/dist/utils/json/stable-stringify-tool-args.js.map +1 -0
  461. package/dist/utils/text.d.ts +0 -1
  462. package/dist/utils/text.d.ts.map +1 -1
  463. package/package.json +12 -9
  464. package/src/adapters/attachment.test.ts +107 -0
  465. package/src/adapters/attachment.ts +20 -10
  466. package/src/adapters/index.ts +6 -1
  467. package/src/adapters/suggestion.test.ts +187 -0
  468. package/src/adapters/suggestion.ts +75 -1
  469. package/src/index.ts +15 -1
  470. package/src/internal.ts +16 -0
  471. package/src/model-context/tool.test.ts +110 -0
  472. package/src/model-context/tool.ts +31 -9
  473. package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +222 -0
  474. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +214 -7
  475. package/src/react/index.ts +2 -0
  476. package/src/react/model-context/define-mcp-toolkit.ts +39 -6
  477. package/src/react/model-context/define-toolkit.test.ts +107 -0
  478. package/src/react/primitive-hooks/useMessageError.test.ts +64 -0
  479. package/src/react/primitive-hooks/useMessageError.ts +19 -6
  480. package/src/react/primitives/generativeUI/GenerativeUI.tsx +5 -1
  481. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +3 -1
  482. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +48 -19
  483. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +111 -0
  484. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +13 -3
  485. package/src/react/runtimes/cloud/auiV0.ts +71 -2
  486. package/src/react/runtimes/external-message-converter.test.tsx +102 -0
  487. package/src/react/runtimes/external-message-converter.ts +35 -10
  488. package/src/runtime/base/base-composer-runtime-core.ts +26 -7
  489. package/src/runtime/utils/message-repository.ts +8 -3
  490. package/src/runtime/utils/thread-message-like.ts +2 -0
  491. package/src/runtimes/local/local-thread-runtime-core.test.ts +127 -3
  492. package/src/runtimes/local/local-thread-runtime-core.ts +25 -23
  493. package/src/runtimes/local/should-continue.ts +5 -2
  494. package/src/runtimes/remote-thread-list/adapter/in-memory.test.ts +14 -0
  495. package/src/runtimes/remote-thread-list/adapter/in-memory.ts +13 -5
  496. package/src/tests/MessageRepository.test.ts +26 -0
  497. package/src/tests/RemoteThreadListThreadListRuntimeCore-errors.test.ts +42 -0
  498. package/src/tests/attachment-adapters.test.ts +14 -2
  499. package/src/tests/auiV0Encode.test.ts +134 -1
  500. package/src/tests/base-composer-runtime-core-addAttachment.test.ts +79 -5
  501. package/src/tests/base-composer-runtime-core-send.test.ts +145 -0
  502. package/src/tests/thread-message-like.test.ts +40 -0
  503. package/src/types/attachment.ts +1 -0
  504. package/src/types/error.test.ts +122 -0
  505. package/src/types/error.ts +74 -0
  506. package/src/types/index.ts +1 -0
  507. package/src/types/message.ts +11 -3
  508. package/src/utils/json/is-json-equal.test.ts +84 -0
  509. package/src/utils/json/is-json.test.ts +123 -0
  510. package/src/utils/json/is-json.ts +1 -1
  511. package/src/utils/json/stable-stringify-tool-args.test.ts +105 -0
  512. package/src/utils/json/stable-stringify-tool-args.ts +70 -0
@@ -4,6 +4,7 @@ import { fromThreadMessageLike } from "../../runtime/utils/thread-message-like.j
4
4
  import { bindExternalStoreMessage, getExternalStoreMessages, symbolInnerMessage } from "../../runtime/utils/external-store-message.js";
5
5
  import { getAutoStatus, isAutoStatus } from "../../runtime/utils/auto-status.js";
6
6
  import { ThreadMessageConverter } from "../../runtimes/external-store/thread-message-converter.js";
7
+ import { useState } from "@assistant-ui/tap/react-shim";
7
8
  import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
8
9
  //#region src/react/runtimes/external-message-converter.ts
9
10
  const isPendingToolCall = (c) => c.type === "tool-call" && c.result === void 0;
@@ -176,8 +177,9 @@ const convertExternalMessages = (messages, callback, isRunning, metadata) => {
176
177
  return result;
177
178
  };
178
179
  const useExternalMessageConverter = (t0) => {
179
- const $ = c(15);
180
+ const $ = c(13);
180
181
  const { callback, messages, isRunning, joinStrategy, metadata } = t0;
182
+ const [caches] = useState(_temp);
181
183
  let t1;
182
184
  if ($[0] !== metadata) {
183
185
  t1 = metadata ?? {};
@@ -185,52 +187,38 @@ const useExternalMessageConverter = (t0) => {
185
187
  $[1] = t1;
186
188
  } else t1 = $[1];
187
189
  let t2;
188
- let t3;
189
- let t4;
190
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
191
- t2 = /* @__PURE__ */ new WeakMap();
192
- t3 = /* @__PURE__ */ new WeakMap();
193
- t4 = new ThreadMessageConverter();
194
- $[2] = t2;
195
- $[3] = t3;
196
- $[4] = t4;
197
- } else {
198
- t2 = $[2];
199
- t3 = $[3];
200
- t4 = $[4];
201
- }
202
- let t5;
203
- if ($[5] !== callback || $[6] !== t1) {
204
- t5 = {
190
+ if ($[2] !== caches || $[3] !== callback || $[4] !== t1) {
191
+ t2 = {
205
192
  metadata: t1,
206
193
  callback,
207
- callbackCache: t2,
208
- chunkCache: t3,
209
- converterCache: t4
194
+ ...caches
210
195
  };
211
- $[5] = callback;
212
- $[6] = t1;
213
- $[7] = t5;
214
- } else t5 = $[7];
215
- const state = t5;
196
+ $[2] = caches;
197
+ $[3] = callback;
198
+ $[4] = t1;
199
+ $[5] = t2;
200
+ } else t2 = $[5];
201
+ const state = t2;
216
202
  let threadMessages;
217
- if ($[8] !== isRunning || $[9] !== joinStrategy || $[10] !== messages || $[11] !== state) {
203
+ if ($[6] !== isRunning || $[7] !== joinStrategy || $[8] !== messages || $[9] !== state) {
218
204
  const callbackResults = [];
219
205
  for (const message of messages) {
220
206
  let result = state.callbackCache.get(message);
221
- if (!result) {
207
+ if (!result || result.metadata !== state.metadata || result.callback !== state.callback) {
222
208
  const output = state.callback(message, state.metadata);
223
209
  result = {
224
210
  input: message,
225
- outputs: Array.isArray(output) ? output : [output]
211
+ outputs: Array.isArray(output) ? output : [output],
212
+ metadata: state.metadata,
213
+ callback: state.callback
226
214
  };
227
215
  state.callbackCache.set(message, result);
228
216
  }
229
217
  callbackResults.push(result);
230
218
  }
231
- let t6;
232
- if ($[13] !== state.chunkCache) {
233
- t6 = (m) => {
219
+ let t3;
220
+ if ($[11] !== state.chunkCache) {
221
+ t3 = (m) => {
234
222
  const key = m.outputs[0];
235
223
  if (!key) return m;
236
224
  const cached = state.chunkCache.get(key);
@@ -238,16 +226,19 @@ const useExternalMessageConverter = (t0) => {
238
226
  state.chunkCache.set(key, m);
239
227
  return m;
240
228
  };
241
- $[13] = state.chunkCache;
242
- $[14] = t6;
243
- } else t6 = $[14];
244
- const chunks = chunkExternalMessages(callbackResults, joinStrategy).map(t6);
229
+ $[11] = state.chunkCache;
230
+ $[12] = t3;
231
+ } else t3 = $[12];
232
+ const chunks = chunkExternalMessages(callbackResults, joinStrategy).map(t3);
245
233
  threadMessages = state.converterCache.convertMessages(chunks, (cache, message_0, idx) => {
246
234
  const isLast = idx === chunks.length - 1;
247
235
  const joined = joinExternalMessages(message_0.outputs);
248
- const autoStatus = getAutoStatus(isLast, isRunning, typeof joined.content === "object" && joined.content.some(isInterruptedToolCall), typeof joined.content === "object" && joined.content.some(isPendingToolCall), isLast ? state.metadata.error : void 0);
236
+ const hasInterruptedToolCalls = typeof joined.content === "object" && joined.content.some(isInterruptedToolCall);
237
+ const hasPendingToolCalls = typeof joined.content === "object" && joined.content.some(isPendingToolCall);
238
+ const autoStatus = getAutoStatus(isLast, isRunning, hasInterruptedToolCalls, hasPendingToolCalls, isLast ? state.metadata.error : void 0);
249
239
  if (cache && (cache.role !== "assistant" || !isAutoStatus(cache.status) || cache.status === autoStatus)) {
250
- if (shallowArrayEqual(getExternalStoreMessages(cache), message_0.inputs)) return cache;
240
+ const inputs = getExternalStoreMessages(cache);
241
+ if (shallowArrayEqual(inputs, message_0.inputs)) return cache;
251
242
  }
252
243
  const newMessage = fromThreadMessageLike(joined, idx.toString(), autoStatus);
253
244
  bindExternalStoreMessage(newMessage, message_0.inputs);
@@ -258,12 +249,12 @@ const useExternalMessageConverter = (t0) => {
258
249
  const lastMessage = threadMessages.at(-1);
259
250
  if (!lastMessage || lastMessage.role !== "assistant") threadMessages.push(createErrorAssistantMessage(state.metadata.error));
260
251
  }
261
- $[8] = isRunning;
262
- $[9] = joinStrategy;
263
- $[10] = messages;
264
- $[11] = state;
265
- $[12] = threadMessages;
266
- } else threadMessages = $[12];
252
+ $[6] = isRunning;
253
+ $[7] = joinStrategy;
254
+ $[8] = messages;
255
+ $[9] = state;
256
+ $[10] = threadMessages;
257
+ } else threadMessages = $[10];
267
258
  return threadMessages;
268
259
  };
269
260
  const shallowArrayEqual = (a, b) => {
@@ -271,6 +262,13 @@ const shallowArrayEqual = (a, b) => {
271
262
  for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;
272
263
  return true;
273
264
  };
265
+ function _temp() {
266
+ return {
267
+ callbackCache: /* @__PURE__ */ new WeakMap(),
268
+ chunkCache: /* @__PURE__ */ new WeakMap(),
269
+ converterCache: new ThreadMessageConverter()
270
+ };
271
+ }
274
272
  //#endregion
275
273
  export { convertExternalMessages, useExternalMessageConverter };
276
274
 
@@ -1 +1 @@
1
- {"version":3,"file":"external-message-converter.js","names":["c","_c","useMemo","ThreadMessageConverter","getExternalStoreMessages","symbolInnerMessage","bindExternalStoreMessage","fromThreadMessageLike","ThreadMessageLike","getAutoStatus","isAutoStatus","ToolExecutionStatus","ReadonlyJSONValue","generateErrorMessageId","ThreadAssistantMessage","ThreadMessage","ToolCallMessagePart","MessageTiming","JoinStrategy","ThreadMessageLikeContentItem","Exclude","isPendingToolCall","type","result","undefined","isInterruptedToolCall","interrupt","approval","approved","resolution","useExternalMessageConverter","Message","convertConfig","joinStrategy","role","toolCallId","toolName","artifact","isError","messages","Metadata","toolStatuses","Record","error","messageTiming","Callback","message","T","metadata","CallbackResult","input","outputs","ChunkResult","inputs","Mutable","P","mergeInnerMessages","existing","incoming","joinExternalMessages","assistantMessage","Omit","content","output","toolCallIdx","findIndex","toolCall","Error","const","text","map","length","id","createdAt","status","attachments","unstable_state","unstable_annotations","unstable_data","steps","custom","timing","submittedFeedback","isOptimistic","part","existingIdx","parentId","push","unsupportedRole","chunkExternalMessages","callbackResults","results","isAssistant","pendingNone","flush","callbackResult","at","createErrorAssistantMessage","msg","reason","Date","convertExternalMessages","WeakKey","callback","isRunning","Array","isArray","chunks","idx","isLast","joined","hasInterruptedToolCalls","some","hasPendingToolCalls","autoStatus","newMessage","toString","lastMessage","t0","$","t1","t2","t3","t4","Symbol","for","WeakMap","t5","callbackCache","chunkCache","converterCache","state","threadMessages","get","set","t6","m","key","cached","shallowArrayEqual","convertMessages","cache","message_0","a","b","i"],"sources":["../../../src/react/runtimes/external-message-converter.ts"],"sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport { ThreadMessageConverter } from \"../../runtimes/external-store/thread-message-converter\";\nimport {\n getExternalStoreMessages,\n symbolInnerMessage,\n bindExternalStoreMessage,\n} from \"../../runtime/utils/external-store-message\";\nimport {\n fromThreadMessageLike,\n type ThreadMessageLike,\n} from \"../../runtime/utils/thread-message-like\";\nimport { getAutoStatus, isAutoStatus } from \"../../runtime/utils/auto-status\";\nimport type { ToolExecutionStatus } from \"../../runtimes/tool-invocations/ToolInvocationTracker\";\nimport type { ReadonlyJSONValue } from \"assistant-stream/utils\";\nimport { generateErrorMessageId } from \"../../utils/id\";\nimport type {\n ThreadAssistantMessage,\n ThreadMessage,\n ToolCallMessagePart,\n} from \"../../types/message\";\nimport type { MessageTiming } from \"../../types/message\";\n\nexport type JoinStrategy = \"concat-content\" | \"none\";\n\ntype ThreadMessageLikeContentItem = Exclude<\n ThreadMessageLike[\"content\"],\n string\n>[number];\n\nconst isPendingToolCall = (c: ThreadMessageLikeContentItem): boolean =>\n c.type === \"tool-call\" && c.result === undefined;\n\nconst isInterruptedToolCall = (c: ThreadMessageLikeContentItem): boolean => {\n if (c.type !== \"tool-call\" || c.result !== undefined) return false;\n return (\n c.interrupt != null ||\n (c.approval != null &&\n c.approval.approved === undefined &&\n c.approval.resolution === undefined)\n );\n};\n\nexport namespace useExternalMessageConverter {\n export type Message =\n | (ThreadMessageLike & {\n readonly convertConfig?: {\n readonly joinStrategy?: JoinStrategy;\n };\n })\n | {\n role: \"tool\";\n toolCallId: string;\n toolName?: string | undefined;\n result: any;\n artifact?: any;\n isError?: boolean;\n messages?: readonly ThreadMessage[];\n };\n\n export type Metadata = {\n readonly toolStatuses?: Record<string, ToolExecutionStatus>;\n readonly error?: ReadonlyJSONValue;\n readonly messageTiming?: Record<string, MessageTiming>;\n };\n\n export type Callback<T> = (\n message: T,\n metadata: Metadata,\n ) => Message | Message[];\n}\n\ntype CallbackResult<T> = {\n input: T;\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype ChunkResult<T> = {\n inputs: T[];\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\nconst mergeInnerMessages = (existing: object, incoming: object) => ({\n [symbolInnerMessage]: [\n ...((existing as any)[symbolInnerMessage] ?? []),\n ...((incoming as any)[symbolInnerMessage] ?? []),\n ],\n});\n\nconst joinExternalMessages = (\n messages: readonly useExternalMessageConverter.Message[],\n): ThreadMessageLike => {\n const assistantMessage: Mutable<Omit<ThreadMessageLike, \"metadata\">> & {\n content: Exclude<ThreadMessageLike[\"content\"][0], string>[];\n metadata?: Mutable<ThreadMessageLike[\"metadata\"]>;\n } = {\n role: \"assistant\",\n content: [],\n };\n for (const output of messages) {\n if (output.role === \"tool\") {\n const toolCallIdx = assistantMessage.content.findIndex(\n (c) => c.type === \"tool-call\" && c.toolCallId === output.toolCallId,\n );\n // Ignore orphaned tool results so one bad tool message does not\n // prevent rendering the rest of the conversation.\n if (toolCallIdx !== -1) {\n const toolCall = assistantMessage.content[\n toolCallIdx\n ]! as ToolCallMessagePart;\n if (output.toolName !== undefined) {\n if (toolCall.toolName !== output.toolName)\n throw new Error(\n `Tool call name ${output.toolCallId} ${output.toolName} does not match existing tool call ${toolCall.toolName}`,\n );\n }\n assistantMessage.content[toolCallIdx] = {\n ...toolCall,\n ...{\n [symbolInnerMessage]: [\n ...((toolCall as any)[symbolInnerMessage] ?? []),\n output,\n ],\n },\n result: output.result,\n artifact: output.artifact,\n isError: output.isError,\n messages: output.messages,\n };\n }\n } else {\n const role = output.role;\n const content = (\n typeof output.content === \"string\"\n ? [{ type: \"text\" as const, text: output.content }]\n : output.content\n ).map((c) => ({\n ...c,\n ...{ [symbolInnerMessage]: [output] },\n }));\n switch (role) {\n case \"system\":\n case \"user\":\n return {\n ...output,\n content,\n };\n case \"assistant\":\n if (assistantMessage.content.length === 0) {\n assistantMessage.id = output.id;\n assistantMessage.createdAt ??= output.createdAt;\n assistantMessage.status ??= output.status;\n\n if (output.attachments) {\n assistantMessage.attachments = [\n ...(assistantMessage.attachments ?? []),\n ...output.attachments,\n ];\n }\n\n if (output.metadata) {\n assistantMessage.metadata ??= {};\n if (output.metadata.unstable_state) {\n assistantMessage.metadata.unstable_state =\n output.metadata.unstable_state;\n }\n if (output.metadata.unstable_annotations) {\n assistantMessage.metadata.unstable_annotations = [\n ...(assistantMessage.metadata.unstable_annotations ?? []),\n ...output.metadata.unstable_annotations,\n ];\n }\n if (output.metadata.unstable_data) {\n assistantMessage.metadata.unstable_data = [\n ...(assistantMessage.metadata.unstable_data ?? []),\n ...output.metadata.unstable_data,\n ];\n }\n if (output.metadata.steps) {\n assistantMessage.metadata.steps = [\n ...(assistantMessage.metadata.steps ?? []),\n ...output.metadata.steps,\n ];\n }\n if (output.metadata.custom) {\n assistantMessage.metadata.custom = {\n ...(assistantMessage.metadata.custom ?? {}),\n ...output.metadata.custom,\n };\n }\n\n if (output.metadata.timing) {\n assistantMessage.metadata.timing = output.metadata.timing;\n }\n\n if (output.metadata.submittedFeedback) {\n assistantMessage.metadata.submittedFeedback =\n output.metadata.submittedFeedback;\n }\n\n if (output.metadata.isOptimistic) {\n assistantMessage.metadata.isOptimistic = true;\n }\n }\n // TODO keep this in sync\n }\n\n // Add content parts, merging reasoning parts with same parentId\n for (const part of content) {\n if (part.type === \"tool-call\") {\n const existingIdx = assistantMessage.content.findIndex(\n (c) =>\n c.type === \"tool-call\" && c.toolCallId === part.toolCallId,\n );\n if (existingIdx !== -1) {\n const existing = assistantMessage.content[\n existingIdx\n ] as typeof part;\n assistantMessage.content[existingIdx] = {\n ...existing,\n ...part,\n ...mergeInnerMessages(existing, part),\n };\n continue;\n }\n }\n\n if (\n part.type === \"reasoning\" &&\n \"parentId\" in part &&\n part.parentId\n ) {\n const existingIdx = assistantMessage.content.findIndex(\n (c) =>\n c.type === \"reasoning\" &&\n \"parentId\" in c &&\n c.parentId === part.parentId,\n );\n if (existingIdx !== -1) {\n const existing = assistantMessage.content[\n existingIdx\n ] as typeof part;\n assistantMessage.content[existingIdx] = {\n ...existing,\n text: `${existing.text}\\n\\n${part.text}`,\n ...mergeInnerMessages(existing, part),\n };\n continue;\n }\n }\n assistantMessage.content.push(part);\n }\n break;\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n }\n }\n return assistantMessage;\n};\n\nconst chunkExternalMessages = <T>(\n callbackResults: CallbackResult<T>[],\n joinStrategy?: JoinStrategy,\n) => {\n const results: ChunkResult<T>[] = [];\n let isAssistant = false;\n let pendingNone = false; // true if the previous assistant message had joinStrategy \"none\"\n let inputs: T[] = [];\n let outputs: useExternalMessageConverter.Message[] = [];\n\n const flush = () => {\n if (outputs.length) {\n results.push({\n inputs,\n outputs,\n });\n }\n inputs = [];\n outputs = [];\n isAssistant = false;\n pendingNone = false;\n };\n\n for (const callbackResult of callbackResults) {\n for (const output of callbackResult.outputs) {\n if (\n (pendingNone && output.role !== \"tool\") ||\n !isAssistant ||\n output.role === \"user\" ||\n output.role === \"system\"\n ) {\n flush();\n }\n isAssistant = output.role === \"assistant\" || output.role === \"tool\";\n\n if (inputs.at(-1) !== callbackResult.input) {\n inputs.push(callbackResult.input);\n }\n outputs.push(output);\n\n if (\n output.role === \"assistant\" &&\n (output.convertConfig?.joinStrategy === \"none\" ||\n joinStrategy === \"none\")\n ) {\n pendingNone = true;\n }\n }\n }\n flush();\n return results;\n};\n\nfunction createErrorAssistantMessage(\n error: ReadonlyJSONValue,\n): ThreadAssistantMessage {\n const msg: ThreadAssistantMessage = {\n id: generateErrorMessageId(),\n role: \"assistant\",\n content: [],\n status: { type: \"incomplete\", reason: \"error\", error },\n createdAt: new Date(),\n metadata: {\n unstable_state: null,\n unstable_annotations: [],\n unstable_data: [],\n custom: {},\n steps: [],\n },\n };\n bindExternalStoreMessage(msg, []);\n return msg;\n}\n\nexport const convertExternalMessages = <T extends WeakKey>(\n messages: T[],\n callback: useExternalMessageConverter.Callback<T>,\n isRunning: boolean,\n metadata: useExternalMessageConverter.Metadata,\n) => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n const output = callback(message, metadata);\n const outputs = Array.isArray(output) ? output : [output];\n const result = { input: message, outputs };\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults);\n\n const result = chunks.map((message, idx) => {\n const isLast = idx === chunks.length - 1;\n const joined = joinExternalMessages(message.outputs);\n const hasInterruptedToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isInterruptedToolCall);\n const hasPendingToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isPendingToolCall);\n const autoStatus = getAutoStatus(\n isLast,\n isRunning,\n hasInterruptedToolCalls,\n hasPendingToolCalls,\n isLast ? metadata.error : undefined,\n );\n const newMessage = fromThreadMessageLike(\n joined,\n idx.toString(),\n autoStatus,\n );\n bindExternalStoreMessage(newMessage, message.inputs);\n return newMessage;\n });\n\n if (metadata.error) {\n const lastMessage = result.at(-1);\n if (!lastMessage || lastMessage.role !== \"assistant\") {\n result.push(createErrorAssistantMessage(metadata.error));\n }\n }\n\n return result;\n};\n\nexport const useExternalMessageConverter = <T extends WeakKey>({\n callback,\n messages,\n isRunning,\n joinStrategy,\n metadata,\n}: {\n callback: useExternalMessageConverter.Callback<T>;\n messages: T[];\n isRunning: boolean;\n joinStrategy?: JoinStrategy | undefined;\n metadata?: useExternalMessageConverter.Metadata | undefined;\n}) => {\n const state = useMemo(\n () => ({\n metadata: metadata ?? {},\n callback,\n callbackCache: new WeakMap<T, CallbackResult<T>>(),\n chunkCache: new WeakMap<\n useExternalMessageConverter.Message,\n ChunkResult<T>\n >(),\n converterCache: new ThreadMessageConverter(),\n }),\n [callback, metadata],\n );\n\n return useMemo(() => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n let result = state.callbackCache.get(message);\n if (!result) {\n const output = state.callback(message, state.metadata);\n const outputs = Array.isArray(output) ? output : [output];\n result = { input: message, outputs };\n state.callbackCache.set(message, result);\n }\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults, joinStrategy).map(\n (m) => {\n const key = m.outputs[0];\n if (!key) return m;\n\n const cached = state.chunkCache.get(key);\n if (cached && shallowArrayEqual(cached.outputs, m.outputs))\n return cached;\n state.chunkCache.set(key, m);\n return m;\n },\n );\n\n const threadMessages = state.converterCache.convertMessages(\n chunks,\n (cache, message, idx) => {\n const isLast = idx === chunks.length - 1;\n\n const joined = joinExternalMessages(message.outputs);\n const hasInterruptedToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isInterruptedToolCall);\n const hasPendingToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isPendingToolCall);\n const autoStatus = getAutoStatus(\n isLast,\n isRunning,\n hasInterruptedToolCalls,\n hasPendingToolCalls,\n isLast ? state.metadata.error : undefined,\n );\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n ) {\n const inputs = getExternalStoreMessages<T>(cache);\n if (shallowArrayEqual(inputs, message.inputs)) {\n return cache;\n }\n }\n\n const newMessage = fromThreadMessageLike(\n joined,\n idx.toString(),\n autoStatus,\n );\n bindExternalStoreMessage(newMessage, message.inputs);\n return newMessage;\n },\n );\n\n bindExternalStoreMessage(threadMessages, messages);\n\n if (state.metadata.error) {\n const lastMessage = threadMessages.at(-1);\n if (!lastMessage || lastMessage.role !== \"assistant\") {\n threadMessages.push(createErrorAssistantMessage(state.metadata.error));\n }\n }\n\n return threadMessages;\n }, [state, messages, isRunning, joinStrategy]);\n};\n\nconst shallowArrayEqual = (a: unknown[], b: unknown[]) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"external-message-converter.js","names":["c","_c","useMemo","useState","ThreadMessageConverter","getExternalStoreMessages","symbolInnerMessage","bindExternalStoreMessage","fromThreadMessageLike","ThreadMessageLike","getAutoStatus","isAutoStatus","ToolExecutionStatus","ReadonlyJSONValue","generateErrorMessageId","ThreadAssistantMessage","ThreadMessage","ToolCallMessagePart","MessageTiming","JoinStrategy","ThreadMessageLikeContentItem","Exclude","isPendingToolCall","type","result","undefined","isInterruptedToolCall","interrupt","approval","approved","resolution","useExternalMessageConverter","Message","convertConfig","joinStrategy","role","toolCallId","toolName","artifact","isError","messages","Metadata","toolStatuses","Record","error","messageTiming","Callback","message","T","metadata","CallbackResult","input","outputs","CallbackCacheEntry","callback","ChunkResult","inputs","Mutable","P","mergeInnerMessages","existing","incoming","joinExternalMessages","assistantMessage","Omit","content","output","toolCallIdx","findIndex","toolCall","Error","const","text","map","length","id","createdAt","status","attachments","unstable_state","unstable_annotations","unstable_data","steps","custom","timing","submittedFeedback","isOptimistic","part","existingIdx","parentId","push","unsupportedRole","chunkExternalMessages","callbackResults","results","isAssistant","pendingNone","flush","callbackResult","at","createErrorAssistantMessage","msg","reason","Date","convertExternalMessages","WeakKey","isRunning","Array","isArray","chunks","idx","isLast","joined","hasInterruptedToolCalls","some","hasPendingToolCalls","autoStatus","newMessage","toString","lastMessage","t0","$","caches","_temp","t1","t2","state","threadMessages","callbackCache","get","set","t3","chunkCache","m","key","cached","shallowArrayEqual","converterCache","convertMessages","cache","message_0","a","b","i","WeakMap"],"sources":["../../../src/react/runtimes/external-message-converter.ts"],"sourcesContent":["\"use client\";\n\nimport { useMemo, useState } from \"react\";\nimport { ThreadMessageConverter } from \"../../runtimes/external-store/thread-message-converter\";\nimport {\n getExternalStoreMessages,\n symbolInnerMessage,\n bindExternalStoreMessage,\n} from \"../../runtime/utils/external-store-message\";\nimport {\n fromThreadMessageLike,\n type ThreadMessageLike,\n} from \"../../runtime/utils/thread-message-like\";\nimport { getAutoStatus, isAutoStatus } from \"../../runtime/utils/auto-status\";\nimport type { ToolExecutionStatus } from \"../../runtimes/tool-invocations/ToolInvocationTracker\";\nimport type { ReadonlyJSONValue } from \"assistant-stream/utils\";\nimport { generateErrorMessageId } from \"../../utils/id\";\nimport type {\n ThreadAssistantMessage,\n ThreadMessage,\n ToolCallMessagePart,\n} from \"../../types/message\";\nimport type { MessageTiming } from \"../../types/message\";\n\nexport type JoinStrategy = \"concat-content\" | \"none\";\n\ntype ThreadMessageLikeContentItem = Exclude<\n ThreadMessageLike[\"content\"],\n string\n>[number];\n\nconst isPendingToolCall = (c: ThreadMessageLikeContentItem): boolean =>\n c.type === \"tool-call\" && c.result === undefined;\n\nconst isInterruptedToolCall = (c: ThreadMessageLikeContentItem): boolean => {\n if (c.type !== \"tool-call\" || c.result !== undefined) return false;\n return (\n c.interrupt != null ||\n (c.approval != null &&\n c.approval.approved === undefined &&\n c.approval.resolution === undefined)\n );\n};\n\nexport namespace useExternalMessageConverter {\n export type Message =\n | (ThreadMessageLike & {\n readonly convertConfig?: {\n readonly joinStrategy?: JoinStrategy;\n };\n })\n | {\n role: \"tool\";\n toolCallId: string;\n toolName?: string | undefined;\n result: any;\n artifact?: any;\n isError?: boolean;\n messages?: readonly ThreadMessage[];\n };\n\n export type Metadata = {\n readonly toolStatuses?: Record<string, ToolExecutionStatus>;\n readonly error?: ReadonlyJSONValue;\n readonly messageTiming?: Record<string, MessageTiming>;\n };\n\n export type Callback<T> = (\n message: T,\n metadata: Metadata,\n ) => Message | Message[];\n}\n\ntype CallbackResult<T> = {\n input: T;\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype CallbackCacheEntry<T> = CallbackResult<T> & {\n metadata: useExternalMessageConverter.Metadata;\n callback: useExternalMessageConverter.Callback<T>;\n};\n\ntype ChunkResult<T> = {\n inputs: T[];\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\nconst mergeInnerMessages = (existing: object, incoming: object) => ({\n [symbolInnerMessage]: [\n ...((existing as any)[symbolInnerMessage] ?? []),\n ...((incoming as any)[symbolInnerMessage] ?? []),\n ],\n});\n\nconst joinExternalMessages = (\n messages: readonly useExternalMessageConverter.Message[],\n): ThreadMessageLike => {\n const assistantMessage: Mutable<Omit<ThreadMessageLike, \"metadata\">> & {\n content: Exclude<ThreadMessageLike[\"content\"][0], string>[];\n metadata?: Mutable<ThreadMessageLike[\"metadata\"]>;\n } = {\n role: \"assistant\",\n content: [],\n };\n for (const output of messages) {\n if (output.role === \"tool\") {\n const toolCallIdx = assistantMessage.content.findIndex(\n (c) => c.type === \"tool-call\" && c.toolCallId === output.toolCallId,\n );\n // Ignore orphaned tool results so one bad tool message does not\n // prevent rendering the rest of the conversation.\n if (toolCallIdx !== -1) {\n const toolCall = assistantMessage.content[\n toolCallIdx\n ]! as ToolCallMessagePart;\n if (output.toolName !== undefined) {\n if (toolCall.toolName !== output.toolName)\n throw new Error(\n `Tool call name ${output.toolCallId} ${output.toolName} does not match existing tool call ${toolCall.toolName}`,\n );\n }\n assistantMessage.content[toolCallIdx] = {\n ...toolCall,\n ...{\n [symbolInnerMessage]: [\n ...((toolCall as any)[symbolInnerMessage] ?? []),\n output,\n ],\n },\n result: output.result,\n artifact: output.artifact,\n isError: output.isError,\n messages: output.messages,\n };\n }\n } else {\n const role = output.role;\n const content = (\n typeof output.content === \"string\"\n ? [{ type: \"text\" as const, text: output.content }]\n : output.content\n ).map((c) => ({\n ...c,\n ...{ [symbolInnerMessage]: [output] },\n }));\n switch (role) {\n case \"system\":\n case \"user\":\n return {\n ...output,\n content,\n };\n case \"assistant\":\n if (assistantMessage.content.length === 0) {\n assistantMessage.id = output.id;\n assistantMessage.createdAt ??= output.createdAt;\n assistantMessage.status ??= output.status;\n\n if (output.attachments) {\n assistantMessage.attachments = [\n ...(assistantMessage.attachments ?? []),\n ...output.attachments,\n ];\n }\n\n if (output.metadata) {\n assistantMessage.metadata ??= {};\n if (output.metadata.unstable_state) {\n assistantMessage.metadata.unstable_state =\n output.metadata.unstable_state;\n }\n if (output.metadata.unstable_annotations) {\n assistantMessage.metadata.unstable_annotations = [\n ...(assistantMessage.metadata.unstable_annotations ?? []),\n ...output.metadata.unstable_annotations,\n ];\n }\n if (output.metadata.unstable_data) {\n assistantMessage.metadata.unstable_data = [\n ...(assistantMessage.metadata.unstable_data ?? []),\n ...output.metadata.unstable_data,\n ];\n }\n if (output.metadata.steps) {\n assistantMessage.metadata.steps = [\n ...(assistantMessage.metadata.steps ?? []),\n ...output.metadata.steps,\n ];\n }\n if (output.metadata.custom) {\n assistantMessage.metadata.custom = {\n ...(assistantMessage.metadata.custom ?? {}),\n ...output.metadata.custom,\n };\n }\n\n if (output.metadata.timing) {\n assistantMessage.metadata.timing = output.metadata.timing;\n }\n\n if (output.metadata.submittedFeedback) {\n assistantMessage.metadata.submittedFeedback =\n output.metadata.submittedFeedback;\n }\n\n if (output.metadata.isOptimistic) {\n assistantMessage.metadata.isOptimistic = true;\n }\n }\n // TODO keep this in sync\n }\n\n // Add content parts, merging reasoning parts with same parentId\n for (const part of content) {\n if (part.type === \"tool-call\") {\n const existingIdx = assistantMessage.content.findIndex(\n (c) =>\n c.type === \"tool-call\" && c.toolCallId === part.toolCallId,\n );\n if (existingIdx !== -1) {\n const existing = assistantMessage.content[\n existingIdx\n ] as typeof part;\n assistantMessage.content[existingIdx] = {\n ...existing,\n ...part,\n ...mergeInnerMessages(existing, part),\n };\n continue;\n }\n }\n\n if (\n part.type === \"reasoning\" &&\n \"parentId\" in part &&\n part.parentId\n ) {\n const existingIdx = assistantMessage.content.findIndex(\n (c) =>\n c.type === \"reasoning\" &&\n \"parentId\" in c &&\n c.parentId === part.parentId,\n );\n if (existingIdx !== -1) {\n const existing = assistantMessage.content[\n existingIdx\n ] as typeof part;\n assistantMessage.content[existingIdx] = {\n ...existing,\n text: `${existing.text}\\n\\n${part.text}`,\n ...mergeInnerMessages(existing, part),\n };\n continue;\n }\n }\n assistantMessage.content.push(part);\n }\n break;\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n }\n }\n return assistantMessage;\n};\n\nconst chunkExternalMessages = <T>(\n callbackResults: CallbackResult<T>[],\n joinStrategy?: JoinStrategy,\n) => {\n const results: ChunkResult<T>[] = [];\n let isAssistant = false;\n let pendingNone = false; // true if the previous assistant message had joinStrategy \"none\"\n let inputs: T[] = [];\n let outputs: useExternalMessageConverter.Message[] = [];\n\n const flush = () => {\n if (outputs.length) {\n results.push({\n inputs,\n outputs,\n });\n }\n inputs = [];\n outputs = [];\n isAssistant = false;\n pendingNone = false;\n };\n\n for (const callbackResult of callbackResults) {\n for (const output of callbackResult.outputs) {\n if (\n (pendingNone && output.role !== \"tool\") ||\n !isAssistant ||\n output.role === \"user\" ||\n output.role === \"system\"\n ) {\n flush();\n }\n isAssistant = output.role === \"assistant\" || output.role === \"tool\";\n\n if (inputs.at(-1) !== callbackResult.input) {\n inputs.push(callbackResult.input);\n }\n outputs.push(output);\n\n if (\n output.role === \"assistant\" &&\n (output.convertConfig?.joinStrategy === \"none\" ||\n joinStrategy === \"none\")\n ) {\n pendingNone = true;\n }\n }\n }\n flush();\n return results;\n};\n\nfunction createErrorAssistantMessage(\n error: ReadonlyJSONValue,\n): ThreadAssistantMessage {\n const msg: ThreadAssistantMessage = {\n id: generateErrorMessageId(),\n role: \"assistant\",\n content: [],\n status: { type: \"incomplete\", reason: \"error\", error },\n createdAt: new Date(),\n metadata: {\n unstable_state: null,\n unstable_annotations: [],\n unstable_data: [],\n custom: {},\n steps: [],\n },\n };\n bindExternalStoreMessage(msg, []);\n return msg;\n}\n\nexport const convertExternalMessages = <T extends WeakKey>(\n messages: T[],\n callback: useExternalMessageConverter.Callback<T>,\n isRunning: boolean,\n metadata: useExternalMessageConverter.Metadata,\n) => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n const output = callback(message, metadata);\n const outputs = Array.isArray(output) ? output : [output];\n const result = { input: message, outputs };\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults);\n\n const result = chunks.map((message, idx) => {\n const isLast = idx === chunks.length - 1;\n const joined = joinExternalMessages(message.outputs);\n const hasInterruptedToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isInterruptedToolCall);\n const hasPendingToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isPendingToolCall);\n const autoStatus = getAutoStatus(\n isLast,\n isRunning,\n hasInterruptedToolCalls,\n hasPendingToolCalls,\n isLast ? metadata.error : undefined,\n );\n const newMessage = fromThreadMessageLike(\n joined,\n idx.toString(),\n autoStatus,\n );\n bindExternalStoreMessage(newMessage, message.inputs);\n return newMessage;\n });\n\n if (metadata.error) {\n const lastMessage = result.at(-1);\n if (!lastMessage || lastMessage.role !== \"assistant\") {\n result.push(createErrorAssistantMessage(metadata.error));\n }\n }\n\n return result;\n};\n\nexport const useExternalMessageConverter = <T extends WeakKey>({\n callback,\n messages,\n isRunning,\n joinStrategy,\n metadata,\n}: {\n callback: useExternalMessageConverter.Callback<T>;\n messages: T[];\n isRunning: boolean;\n joinStrategy?: JoinStrategy | undefined;\n metadata?: useExternalMessageConverter.Metadata | undefined;\n}) => {\n // The caches live for the component lifetime; React Compiler hoists\n // allocations without reactive dependencies out of useMemo, so re-creating\n // them on dependency change would not survive compilation. Staleness is\n // instead tracked per entry via the metadata/callback that produced it,\n // keeping correctness independent of memoization (which React treats as\n // droppable). A \"use no memo\" opt-out would restore the useMemo semantics\n // but leave cache flushing coupled to memo firing.\n const [caches] = useState(() => ({\n callbackCache: new WeakMap<T, CallbackCacheEntry<T>>(),\n chunkCache: new WeakMap<\n useExternalMessageConverter.Message,\n ChunkResult<T>\n >(),\n converterCache: new ThreadMessageConverter(),\n }));\n\n const state = useMemo(\n () => ({\n metadata: metadata ?? {},\n callback,\n ...caches,\n }),\n [callback, metadata, caches],\n );\n\n return useMemo(() => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n let result = state.callbackCache.get(message);\n if (\n !result ||\n result.metadata !== state.metadata ||\n result.callback !== state.callback\n ) {\n const output = state.callback(message, state.metadata);\n const outputs = Array.isArray(output) ? output : [output];\n result = {\n input: message,\n outputs,\n metadata: state.metadata,\n callback: state.callback,\n };\n state.callbackCache.set(message, result);\n }\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults, joinStrategy).map(\n (m) => {\n const key = m.outputs[0];\n if (!key) return m;\n\n const cached = state.chunkCache.get(key);\n if (cached && shallowArrayEqual(cached.outputs, m.outputs))\n return cached;\n state.chunkCache.set(key, m);\n return m;\n },\n );\n\n const threadMessages = state.converterCache.convertMessages(\n chunks,\n (cache, message, idx) => {\n const isLast = idx === chunks.length - 1;\n\n const joined = joinExternalMessages(message.outputs);\n const hasInterruptedToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isInterruptedToolCall);\n const hasPendingToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isPendingToolCall);\n const autoStatus = getAutoStatus(\n isLast,\n isRunning,\n hasInterruptedToolCalls,\n hasPendingToolCalls,\n isLast ? state.metadata.error : undefined,\n );\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n ) {\n const inputs = getExternalStoreMessages<T>(cache);\n if (shallowArrayEqual(inputs, message.inputs)) {\n return cache;\n }\n }\n\n const newMessage = fromThreadMessageLike(\n joined,\n idx.toString(),\n autoStatus,\n );\n bindExternalStoreMessage(newMessage, message.inputs);\n return newMessage;\n },\n );\n\n bindExternalStoreMessage(threadMessages, messages);\n\n if (state.metadata.error) {\n const lastMessage = threadMessages.at(-1);\n if (!lastMessage || lastMessage.role !== \"assistant\") {\n threadMessages.push(createErrorAssistantMessage(state.metadata.error));\n }\n }\n\n return threadMessages;\n }, [state, messages, isRunning, joinStrategy]);\n};\n\nconst shallowArrayEqual = (a: unknown[], b: unknown[]) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { ExternalStoreAdapter } from "../../runtimes/external-store/external-store-adapter.js";
2
2
  import { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
3
-
4
3
  //#region src/react/runtimes/useExternalStoreRuntime.d.ts
5
4
  declare const useExternalStoreRuntime: <T>(store: ExternalStoreAdapter<T>) => AssistantRuntime;
6
5
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"useExternalStoreRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useExternalStoreRuntime.ts"],"mappings":";;;;cASa,uBAAA,MACX,KAAA,EAAO,oBAAA,CAAqB,CAAA,MAC3B,gBAAA"}
1
+ {"version":3,"file":"useExternalStoreRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useExternalStoreRuntime.ts"],"mappings":";;;cASa,0BAA2B,GACtC,OAAO,qBAAqB,OAC3B"}
@@ -1,5 +1,4 @@
1
1
  import { ExternalStoreSharedOptions } from "../../runtimes/external-store/external-store-shared-options.js";
2
-
3
2
  //#region src/react/runtimes/useExternalStoreSharedOptions.d.ts
4
3
  declare const useExternalStoreSharedOptions: (options: ExternalStoreSharedOptions) => ExternalStoreSharedOptions;
5
4
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"useExternalStoreSharedOptions.d.ts","names":[],"sources":["../../../src/react/runtimes/useExternalStoreSharedOptions.ts"],"mappings":";;;cAKa,6BAAA,GACX,OAAA,EAAS,0BAAA,KACR,0BAeF"}
1
+ {"version":3,"file":"useExternalStoreSharedOptions.d.ts","names":[],"sources":["../../../src/react/runtimes/useExternalStoreSharedOptions.ts"],"mappings":";;cAKa,gCACX,SAAS,+BACR"}
@@ -8,8 +8,8 @@ import { SuggestionAdapter } from "../../adapters/suggestion.js";
8
8
  import { ThreadHistoryAdapter } from "../../adapters/thread-history.js";
9
9
  import { LocalRuntimeOptionsBase } from "../../runtimes/local/local-runtime-options.js";
10
10
  import { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
11
+ import "../../index.js";
11
12
  import { AssistantCloud } from "assistant-cloud";
12
-
13
13
  //#region src/react/runtimes/useLocalRuntime.d.ts
14
14
  type LocalRuntimeOptions = Omit<LocalRuntimeOptionsBase, "adapters"> & {
15
15
  cloud?: AssistantCloud | undefined;
@@ -36,10 +36,7 @@ declare const splitLocalRuntimeOptions: <T extends LocalRuntimeOptions>(options:
36
36
  };
37
37
  otherOptions: Omit<T, "adapters" | "maxSteps" | "unstable_humanToolNames" | "unstable_enableMessageQueue" | "cloud" | "initialMessages">;
38
38
  };
39
- declare const useLocalRuntime: (chatModel: ChatModelAdapter, {
40
- cloud,
41
- ...options
42
- }?: LocalRuntimeOptions) => AssistantRuntime;
39
+ declare const useLocalRuntime: (chatModel: ChatModelAdapter, { cloud, ...options }?: LocalRuntimeOptions) => AssistantRuntime;
43
40
  //#endregion
44
41
  export { LocalRuntimeOptions, splitLocalRuntimeOptions, useLocalRuntime };
45
42
  //# sourceMappingURL=useLocalRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"mappings":";;;;;;;;;;;;;KAcY,mBAAA,GAAsB,IAAA,CAAK,uBAAA;EACrC,KAAA,GAAQ,cAAA;EACR,eAAA,YAA2B,iBAAA;EAC3B,QAAA,GAAW,IAAA,CAAK,uBAAA;AAAA;AAAA,cA+CL,wBAAA,aAAsC,mBAAA,EACjD,OAAA,EAAS,CAAA;;;;;;;;;;;;;;;;;;;;cAyBE,eAAA,GACX,SAAA,EAAW,gBAAA;EACX,KAAA;EAAA,GAAA;AAAA,IAAuB,mBAAA,KACtB,gBAAA"}
1
+ {"version":3,"file":"useLocalRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"mappings":";;;;;;;;;;;;;KAcY,sBAAsB,KAAK;EACrC,QAAQ;EACR,2BAA2B;EAC3B,WAAW,KAAK;;cA+CL,2BAA4B,UAAU,qBACjD,SAAS;;;;;;;;;;;;;;;;;;;;cAyBE,kBACX,WAAW,oBACX,UAAA,YAAuB,wBACtB"}
@@ -1,6 +1,5 @@
1
1
  import { RemoteThreadListOptions } from "../../runtimes/remote-thread-list/types.js";
2
2
  import { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
3
-
4
3
  //#region src/react/runtimes/useRemoteThreadListRuntime.d.ts
5
4
  declare const useRemoteThreadListRuntime: (options: RemoteThreadListOptions) => AssistantRuntime;
6
5
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"useRemoteThreadListRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useRemoteThreadListRuntime.ts"],"mappings":";;;;cA+Ca,0BAAA,GACX,OAAA,EAAS,uBAAA,KACR,gBAwDF"}
1
+ {"version":3,"file":"useRemoteThreadListRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useRemoteThreadListRuntime.ts"],"mappings":";;;cA+Ca,6BACX,SAAS,4BACR"}
@@ -1,6 +1,5 @@
1
1
  import { MessageTiming } from "../../types/message.js";
2
2
  import { StreamingTimingAccessors, StreamingTimingOptions, StreamingTimingState } from "../../runtime/utils/streaming-timing.js";
3
-
4
3
  //#region src/react/runtimes/useStreamingTiming.d.ts
5
4
  /**
6
5
  * Tracks per-message streaming timing client-side and returns finalized
@@ -1 +1 @@
1
- {"version":3,"file":"useStreamingTiming.d.ts","names":[],"sources":["../../../src/react/runtimes/useStreamingTiming.ts"],"mappings":";;;;;AAmCA;;;;;;;;;;;;;;;;;cAAa,kBAAA,aACX,QAAA,WAAmB,QAAA,IACnB,SAAA,WACA,SAAA,EAAW,wBAAA,CAAyB,QAAA,GACpC,OAAA,GAAU,sBAAA,KACT,MAAA,SAAe,aAAA"}
1
+ {"version":3,"file":"useStreamingTiming.d.ts","names":[],"sources":["../../../src/react/runtimes/useStreamingTiming.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;cAmCa,qBAAsB,UACjC,mBAAmB,YACnB,oBACA,WAAW,yBAAyB,WACpC,UAAU,2BACT,eAAe"}
@@ -1,9 +1,9 @@
1
1
  import { DataMessagePart, FileMessagePart, GenerativeUIMessagePart, GenerativeUISpec, ImageMessagePart, MessagePartStatus, ReasoningMessagePart, SourceMessagePart, TextMessagePart, ToolApprovalResponse, ToolCallMessagePart, Unstable_AudioMessagePart } from "../../types/message.js";
2
2
  import { QuoteInfo } from "../../types/quote.js";
3
3
  import { MessagePartState } from "../../runtime/api/message-part-runtime.js";
4
+ import "../../index.js";
4
5
  import { ToolResponse } from "assistant-stream";
5
6
  import { ComponentType, PropsWithChildren } from "react";
6
-
7
7
  //#region src/react/types/MessagePartComponentTypes.d.ts
8
8
  type EmptyMessagePartProps = {
9
9
  status: MessagePartStatus;
@@ -65,8 +65,11 @@ type GenerativeUIComponentRegistry = Record<string, ComponentType<any>>;
65
65
  type GenerativeUIMessagePartProps = MessagePartState & GenerativeUIMessagePart;
66
66
  type GenerativeUIMessagePartComponent = ComponentType<GenerativeUIMessagePartProps>;
67
67
  type GenerativeUIRenderProps = {
68
- /** The JSON spec to render. */spec: GenerativeUISpec; /** The component allowlist. */
69
- components: GenerativeUIComponentRegistry; /** Optional fallback for unknown component names. */
68
+ /** The JSON spec to render. */
69
+ spec: GenerativeUISpec;
70
+ /** The component allowlist. */
71
+ components: GenerativeUIComponentRegistry;
72
+ /** Optional fallback for unknown component names. */
70
73
  Fallback?: ComponentType<{
71
74
  component: string;
72
75
  props?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"MessagePartComponentTypes.d.ts","names":[],"sources":["../../../src/react/types/MessagePartComponentTypes.ts"],"mappings":";;;;;;;KAmBY,qBAAA;EACV,MAAA,EAAQ,iBAAiB;AAAA;AAAA,KAEf,yBAAA,GAA4B,aAAa,CAAC,qBAAA;AAAA,KAE1C,oBAAA,GAAuB,gBAAA,GAAmB,eAAe;AAAA,KACzD,wBAAA,GAA2B,aAAa,CAAC,oBAAA;AAAA,KAEzC,yBAAA,GAA4B,gBAAA,GAAmB,oBAAoB;AAAA,KACnE,6BAAA,GACV,aAAa,CAAC,yBAAA;AAAA,KAEJ,mBAAA,GAAsB,iBAAiB;EACjD,UAAA;EACA,QAAA;AAAA;AAAA,KAEU,uBAAA,GAA0B,aAAa,CAAC,mBAAA;AAAA,KAExC,sBAAA,GAAyB,gBAAA,GAAmB,iBAAiB;AAAA,KAC7D,0BAAA,GAA6B,aAAa,CAAC,sBAAA;AAAA,KAE3C,qBAAA,GAAwB,gBAAA,GAAmB,gBAAgB;AAAA,KAC3D,yBAAA,GAA4B,aAAa,CAAC,qBAAA;AAAA,KAE1C,oBAAA,GAAuB,gBAAA,GAAmB,eAAe;AAAA,KACzD,wBAAA,GAA2B,aAAa,CAAC,oBAAA;AAAA,KAEzC,8BAAA,GAAiC,gBAAA,GAC3C,yBAAyB;AAAA,KACf,kCAAA,GACV,aAAa,CAAC,8BAAA;AAAA,KAEJ,oBAAA,YAAgC,gBAAA,GAC1C,eAAA,CAAgB,CAAA;AAAA,KACN,wBAAA,YAAoC,aAAA,CAC9C,oBAAA,CAAqB,CAAA;AAAA,KAGX,wBAAA,mCAGR,gBAAA,GACF,mBAAA,CAAoB,KAAA,EAAO,OAAA;EAlCjB;;;;AAAmE;AAC/E;EAwCI,SAAA,GAAY,MAAA,EAAQ,OAAA,GAAU,YAAA,CAAa,OAAA;;;AAvCN;AAEzC;EA0CI,MAAA,GAAS,OAAA;;;;;;;EAOT,iBAAA,GAAoB,QAAA,EAAU,oBAAA;AAAA;;KAItB,4BAAA,+BAGR,aAAA,CAAc,wBAAA,CAAyB,KAAA,EAAO,OAAA;AAAA,KAEtC,qBAAA,GAAwB,SAAS;AAAA,KACjC,yBAAA,GAA4B,aAAa,CAAC,qBAAA;AArDtD;;;;AAAyE;AACzE;;;AADA,KA+DY,6BAAA,GAAgC,MAAM,SAAS,aAAA;AAAA,KAE/C,4BAAA,GAA+B,gBAAA,GACzC,uBAAuB;AAAA,KACb,gCAAA,GACV,aAAa,CAAC,4BAAA;AAAA,KAEJ,uBAAA;iCAEV,IAAA,EAAM,gBAAA,EArE+D;EAuErE,UAAA,EAAY,6BAAA,EAtEuB;EAwEnC,QAAA,GAAW,aAAA;IAAgB,SAAA;IAAmB,KAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"MessagePartComponentTypes.d.ts","names":[],"sources":["../../../src/react/types/MessagePartComponentTypes.ts"],"mappings":";;;;;;;KAmBY;EACV,QAAQ;;KAEE,4BAA4B,cAAc;KAE1C,uBAAuB,mBAAmB;KAC1C,2BAA2B,cAAc;KAEzC,4BAA4B,mBAAmB;KAC/C,gCACV,cAAc;KAEJ,sBAAsB;EAChC;EACA;;KAEU,0BAA0B,cAAc;KAExC,yBAAyB,mBAAmB;KAC5C,6BAA6B,cAAc;KAE3C,wBAAwB,mBAAmB;KAC3C,4BAA4B,cAAc;KAE1C,uBAAuB,mBAAmB;KAC1C,2BAA2B,cAAc;KAEzC,iCAAiC,mBAC3C;KACU,qCACV,cAAc;KAEJ,qBAAqB,WAAW,mBAC1C,gBAAgB;KACN,yBAAyB,WAAW,cAC9C,qBAAqB;KAGX,yBACV,aACA,qBACE,mBACF,oBAAoB,OAAO;;;;;;;EAOzB,YAAY,QAAQ,UAAU,aAAa;;;;;EAK3C,SAAS;;;;;;;EAOT,oBAAoB,UAAU;;;KAItB,6BACV,aACA,iBACE,cAAc,yBAAyB,OAAO;KAEtC,wBAAwB;KACxB,4BAA4B,cAAc;;;;;;;;;KAU1C,gCAAgC,eAAe;KAE/C,+BAA+B,mBACzC;KACU,mCACV,cAAc;KAEJ;;EAEV,MAAM;;EAEN,YAAY;;EAEZ,WAAW;IAAgB;IAAmB"}
@@ -1,6 +1,6 @@
1
1
  import { Unsubscribe } from "../../../types/unsubscribe.js";
2
+ import "../../../index.js";
2
3
  import { DataMessagePartComponent } from "../MessagePartComponentTypes.js";
3
-
4
4
  //#region src/react/types/scopes/dataRenderers.d.ts
5
5
  type DataRenderersState = {
6
6
  renderers: Record<string, DataMessagePartComponent[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"dataRenderers.d.ts","names":[],"sources":["../../../../src/react/types/scopes/dataRenderers.ts"],"mappings":";;;;KAGY,kBAAA;EACV,SAAA,EAAW,MAAA,SAAe,wBAAA;EAC1B,SAAA,EAAW,wBAAA;AAAA;AAAA,KAGD,oBAAA;EACV,QAAA,IAAY,kBAAA;EACZ,SAAA,CAAU,IAAA,UAAc,MAAA,EAAQ,wBAAA,GAA2B,WAAA;EAC3D,iBAAA,CAAkB,MAAA,EAAQ,wBAAA,GAA2B,WAAA;AAAA;AAAA,KAG3C,yBAAA;EACV,OAAA,EAAS,oBAAoB;AAAA"}
1
+ {"version":3,"file":"dataRenderers.d.ts","names":[],"sources":["../../../../src/react/types/scopes/dataRenderers.ts"],"mappings":";;;;KAGY;EACV,WAAW,eAAe;EAC1B,WAAW;;KAGD;EACV,YAAY;EACZ,UAAU,cAAc,QAAQ,2BAA2B;EAC3D,kBAAkB,QAAQ,2BAA2B;;KAG3C;EACV,SAAS"}
@@ -1,7 +1,7 @@
1
1
  import { Unsubscribe } from "../../../types/unsubscribe.js";
2
+ import "../../../index.js";
2
3
  import { ToolCallMessagePartComponent } from "../MessagePartComponentTypes.js";
3
4
  import { Tool } from "assistant-stream";
4
-
5
5
  //#region src/react/types/scopes/interactables.d.ts
6
6
  /**
7
7
  * Schema type matching Tool["parameters"] from assistant-stream.
@@ -38,7 +38,9 @@ type Unstable_InteractablePersistenceStatus = {
38
38
  error: unknown;
39
39
  };
40
40
  type Unstable_InteractablesState = {
41
- /** Keyed by instance id */definitions: Record<string, Unstable_InteractableDefinition>; /** Per-id persistence sync status */
41
+ /** Keyed by instance id */
42
+ definitions: Record<string, Unstable_InteractableDefinition>;
43
+ /** Per-id persistence sync status */
42
44
  persistence: Record<string, Unstable_InteractablePersistenceStatus>;
43
45
  };
44
46
  type Unstable_InteractablePersistedState = Record<string, {
@@ -1 +1 @@
1
- {"version":3,"file":"interactables.d.ts","names":[],"sources":["../../../../src/react/types/scopes/interactables.ts"],"mappings":";;;;;;;;AAQA;KAAY,gCAAA,GAAmC,WAAA,CAC7C,OAAA,CAAQ,IAAA;EAAQ,UAAA;AAAA;AAAA,KAGb,iBAAA;AAAA,KAEO,+BAAA;EACV,EAAA;EACA,IAAA;EACA,WAAA;EACA,WAAA,EAAa,gCAAA;EACb,KAAA;EACA,YAAA;EACA,KAAA,GAAQ,iBAAiB;AAAA;AAAA,KAGf,iCAAA;EACV,EAAA;EACA,IAAA;EACA,WAAA;EACA,WAAA,EAAa,gCAAA;EACb,YAAA;EAfyC;;;;;EAqBzC,YAAA,GAAe,4BAA4B;AAAA;AAAA,KAGjC,sCAAA;EACV,SAAA;EACA,KAAK;AAAA;AAAA,KAGK,2BAAA;EAtBe,2BAwBzB,WAAA,EAAa,MAAA,SAAe,+BAAA,GArBlB;EAuBV,WAAA,EAAa,MAAA,SAAe,sCAAA;AAAA;AAAA,KAGlB,mCAAA,GAAsC,MAAM;EAEpD,IAAA;EAAc,KAAA;AAAA;AAAA,KAGN,uCAAA;EACV,IAAA,CAAK,KAAA,EAAO,mCAAA,UAA6C,OAAA;EA3BzD;;;;AAM2C;EA2B3C,IAAA,KACI,mCAAA,sBAGA,OAAA,CAAQ,mCAAA;AAAA;AAAA,KAGF,4BAAA;EACV,WAAA,GAAc,uCAAuC;AAAA;AAAA,KAG3C,6BAAA;EACV,QAAA,IAAY,2BAAA;EACZ,QAAA,CAAS,GAAA,EAAK,iCAAA,GAAoC,WAAA;EAClD,QAAA,CAAS,EAAA,UAAY,OAAA,GAAU,IAAA;EAC/B,WAAA,IAAe,mCAAA;EACf,WAAA,CAAY,KAAA,EAAO,mCAAA;EACnB,qBAAA,CACE,OAAA,EAAS,uCAAA;EAEX,KAAA,IAAS,OAAA;AAAA;AAAA,KAGC,kCAAA;EACV,OAAA,EAAS,6BAA6B;AAAA"}
1
+ {"version":3,"file":"interactables.d.ts","names":[],"sources":["../../../../src/react/types/scopes/interactables.ts"],"mappings":";;;;;;;;;KAQY,mCAAmC,YAC7C,QAAQ;EAAQ;;KAGb;KAEO;EACV;EACA;EACA;EACA,aAAa;EACb;EACA;EACA,QAAQ;;KAGE;EACV;EACA;EACA;EACA,aAAa;EACb;;;;;;EAMA,eAAe;;KAGL;EACV;EACA;;KAGU;;EAEV,aAAa,eAAe;;EAE5B,aAAa,eAAe;;KAGlB,sCAAsC;EAE9C;EAAc;;KAGN;EACV,KAAK,OAAO,6CAA6C;;;;;;EAMzD,SACI,yDAGA,QAAQ;;KAGF;EACV,cAAc;;KAGJ;EACV,YAAY;EACZ,SAAS,KAAK,oCAAoC;EAClD,SAAS,YAAY,UAAU;EAC/B,eAAe;EACf,YAAY,OAAO;EACnB,sBACE,SAAS;EAEX,SAAS;;KAGC;EACV,SAAS"}
@@ -1,6 +1,6 @@
1
1
  import { Unsubscribe } from "../../../types/unsubscribe.js";
2
+ import "../../../index.js";
2
3
  import { ToolCallMessagePartComponent } from "../MessagePartComponentTypes.js";
3
-
4
4
  //#region src/react/types/scopes/tools.d.ts
5
5
  type McpAppResourceOutput = {
6
6
  readonly render: ToolCallMessagePartComponent;
@@ -11,11 +11,13 @@ type McpAppResourceOutput = {
11
11
  * registration of it is mounted.
12
12
  */
13
13
  type ToolRegistration = {
14
- readonly render: ToolCallMessagePartComponent; /** Whether this UI renders standalone, outside the chain-of-thought trace. */
14
+ readonly render: ToolCallMessagePartComponent;
15
+ /** Whether this UI renders standalone, outside the chain-of-thought trace. */
15
16
  readonly standalone: boolean;
16
17
  };
17
18
  type ToolsState = {
18
- /** Registered tool UIs (renderer + presentation options) keyed by tool name. */toolUIs: Record<string, readonly ToolRegistration[]>;
19
+ /** Registered tool UIs (renderer + presentation options) keyed by tool name. */
20
+ toolUIs: Record<string, readonly ToolRegistration[]>;
19
21
  mcpApp?: McpAppResourceOutput | undefined;
20
22
  /**
21
23
  * @deprecated Use {@link toolUIs} instead, whose entries carry the renderer
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","names":[],"sources":["../../../../src/react/types/scopes/tools.ts"],"mappings":";;;;KAGY,oBAAA;EAAA,SACD,MAAA,EAAQ,4BAA4B;AAAA;AAD/C;;;;AAC+C;AAD/C,KASK,gBAAA;EAAA,SACM,MAAA,EAAQ,4BAA4B;WAEpC,UAAA;AAAA;AAAA,KAGC,UAAA;EAHD,gFAKT,OAAA,EAAS,MAAA,kBAAwB,gBAAA;EACjC,MAAA,GAAS,oBAAA;EAHC;;;;;EASV,KAAA,EAAO,MAAA,SAAe,4BAAA;AAAA;AAAA,KAGZ,YAAA;EACV,QAAA,IAAY,UAAA;EACZ,SAAA,CACE,QAAA,UACA,MAAA,EAAQ,4BAAA,EACR,OAAA;IAAY,UAAA;EAAA,IACX,WAAA;AAAA;AAAA,KAGO,iBAAA;EACV,OAAA,EAAS,YAAY;AAAA"}
1
+ {"version":3,"file":"tools.d.ts","names":[],"sources":["../../../../src/react/types/scopes/tools.ts"],"mappings":";;;;KAGY;WACD,QAAQ;;;;;;;KAQd;WACM,QAAQ;;WAER;;KAGC;;EAEV,SAAS,wBAAwB;EACjC,SAAS;;;;;;EAMT,OAAO,eAAe;;KAGZ;EACV,YAAY;EACZ,UACE,kBACA,QAAQ,8BACR;IAAY;MACX;;KAGO;EACV,SAAS"}
@@ -2,7 +2,6 @@ import { Unstable_InteractablesClientSchema } from "./scopes/interactables.js";
2
2
  import { ToolsClientSchema } from "./scopes/tools.js";
3
3
  import { InteractablesClientSchema } from "../interactables-legacy/scopes.js";
4
4
  import { DataRenderersClientSchema } from "./scopes/dataRenderers.js";
5
-
6
5
  //#region src/react/types/store-augmentation.d.ts
7
6
  declare module "@assistant-ui/store" {
8
7
  interface ScopeRegistry {
@@ -11,5 +10,5 @@ declare module "@assistant-ui/store" {
11
10
  interactables: InteractablesClientSchema;
12
11
  unstable_interactables: Unstable_InteractablesClientSchema;
13
12
  }
14
- } //# sourceMappingURL=store-augmentation.d.ts.map
13
+ }
15
14
  //# sourceMappingURL=store-augmentation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store-augmentation.d.ts","names":[],"sources":["../../../src/react/types/store-augmentation.ts"],"mappings":";;;;;;;YAMY,aAAA;IACR,KAAA,EAAO,iBAAA;IACP,aAAA,EAAe,yBAAA;IACf,aAAA,EAAe,yBAAA;IACf,sBAAA,EAAwB,kCAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"store-augmentation.d.ts","names":[],"sources":["../../../src/react/types/store-augmentation.ts"],"mappings":";;;;;;YAMY;IACR,OAAO;IACP,eAAe;IACf,eAAe;IACf,wBAAwB"}
@@ -1,5 +1,4 @@
1
1
  import { QuoteInfo } from "../../types/quote.js";
2
-
3
2
  //#region src/react/utils/getMessageQuote.d.ts
4
3
  type MessageQuoteState = {
5
4
  message: {
@@ -1 +1 @@
1
- {"version":3,"file":"getMessageQuote.d.ts","names":[],"sources":["../../../src/react/utils/getMessageQuote.ts"],"mappings":";;;KAEK,iBAAA;EACH,OAAA;IACE,QAAQ;EAAA;AAAA;AAAA,cAIC,eAAA,GACX,KAAA,EAAO,iBAAA,KACN,SAAS"}
1
+ {"version":3,"file":"getMessageQuote.d.ts","names":[],"sources":["../../../src/react/utils/getMessageQuote.ts"],"mappings":";;KAEK;EACH;IACE;;;cAIS,kBACX,OAAO,sBACN"}
@@ -1,6 +1,5 @@
1
1
  import { PartState } from "../../store/scopes/part.js";
2
2
  import { ToolsState } from "../types/scopes/tools.js";
3
-
4
3
  //#region src/react/utils/groupParts.d.ts
5
4
  /**
6
5
  * Registry context passed to a `groupBy` function as its second argument by
@@ -9,7 +8,8 @@ import { ToolsState } from "../types/scopes/tools.js";
9
8
  * without the part itself having to carry that information.
10
9
  */
11
10
  type GroupByContext = {
12
- /** Tool UIs registered in the tool-UI registry, keyed by tool name. */readonly toolUIs?: ToolsState["toolUIs"];
11
+ /** Tool UIs registered in the tool-UI registry, keyed by tool name. */
12
+ readonly toolUIs?: ToolsState["toolUIs"];
13
13
  };
14
14
  /**
15
15
  * Hierarchical adjacent-coalescing grouping for message parts.
@@ -1 +1 @@
1
- {"version":3,"file":"groupParts.d.ts","names":[],"sources":["../../../src/react/utils/groupParts.ts"],"mappings":";;;;;;AAUA;;;;KAAY,cAAA;EAwBC,gFAtBF,OAAA,GAAU,UAAU;AAAA;;AAwB9B;AAAC;;;;AAgB4B;AA4B9B;;;;;;;;;;;cA9Ca,gBAAA;;;;;;;;;;;;;;;KAkBR,aAAA,GAAgB,SAAS;AA6D9B;;;;AAAsD;AAEtD;;;;;;;;;;;;AAauC;AAGvC;;;;;;;;AAlBA,cAjCa,eAAA,mCACX,GAAA,EAAK,OAAA,CAAQ,QAAA,CAAS,MAAA,CAAO,aAAA,WAAwB,IAAA,YAClD,IAAA,EAAM,SAAA,EAAW,OAAA,GAAU,cAAA,cAA4B,IAAA;AAAA,KA+BhD,SAAA,GAAY,cAAA,GAAiB,aAAa;AAAA,UAErC,cAAA;EAAA,SACN,IAAA;;WAEA,GAAA;EAyDT;EAAA,SAvDS,OAAA;EAyDC;;AAAS;;EAAT,SApDD,KAAA;;WAEA,OAAA;EAAA,SACA,QAAA,WAAmB,SAAS;AAAA;AAAA,UAGtB,aAAA;EAAA,SACN,IAAA;;WAEA,KAAA;;WAEA,OAAA;;;;;WAKA,KAAA;AAAA;;;;;;;;cAiCE,cAAA,GACX,KAAA,kCACA,OAAA,gDACU,SAAS"}
1
+ {"version":3,"file":"groupParts.d.ts","names":[],"sources":["../../../src/react/utils/groupParts.ts"],"mappings":";;;;;;;;;KAUY;;WAED,UAAU;;;;;;;;;;;;;;;;;;;;cAsBR;;;;;;;;;;;;;;;KAkBR,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4BR,kBAAmB,gCAC9B,KAAK,QAAQ,SAAS,OAAO,wBAAwB,gBAClD,MAAM,WAAW,UAAU,4BAA4B;KA+BhD,YAAY,iBAAiB;UAExB;WACN;;WAEA;;WAEA;;;;;WAKA;;WAEA;WACA,mBAAmB;;UAGb;WACN;;WAEA;;WAEA;;;;;WAKA;;;;;;;;;cAiCE,iBACX,uCACA,uDACU"}
@@ -1 +1 @@
1
- {"version":3,"file":"useJSONEqual.d.ts","names":[],"sources":["../../../src/react/utils/useJSONEqual.ts"],"mappings":";;AASA;;;;;iBAAgB,YAAA,OAAmB,QAAA,GAAW,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,KAAA,EAAO,CAAA,KAAM,CAAA"}
1
+ {"version":3,"file":"useJSONEqual.d.ts","names":[],"sources":["../../../src/react/utils/useJSONEqual.ts"],"mappings":";;;;;;;iBASgB,aAAa,GAAG,GAAG,WAAW,OAAO,MAAM,KAAK,OAAO,MAAM"}
@@ -3,7 +3,6 @@ import { ModelContextProvider } from "../../model-context/types.js";
3
3
  import { AssistantRuntimeCore } from "../interfaces/assistant-runtime-core.js";
4
4
  import { ThreadListRuntime, ThreadListRuntimeImpl } from "./thread-list-runtime.js";
5
5
  import { ThreadRuntime } from "./thread-runtime.js";
6
-
7
6
  //#region src/runtime/api/assistant-runtime.d.ts
8
7
  type AssistantRuntime = {
9
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"assistant-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/assistant-runtime.ts"],"mappings":";;;;;;;KASY,gBAAA;;AAAZ;;WAIW,OAAA,EAAS,iBAAA;EAAA;;;EAAA,SAKT,MAAA,EAAQ,aAAA;EAOwD;;;;;EAAzE,4BAAA,CAA6B,QAAA,EAAU,oBAAA,GAAuB,WAAA;AAAA;AAAA,cAGnD,oBAAA,YAAgC,gBAAA;EAAA,iBAKP,KAAA;EAAA,SAJpB,OAAA,EAAO,qBAAA;EAAA,SAEP,OAAA,EAAS,aAAA;cAEW,KAAA,EAAO,oBAAA;EAAA,UAOjC,sBAAA;EAAA,IAKC,MAAA,IAAM,aAAA;EAIV,4BAAA,CAA6B,QAAA,EAAU,oBAAA,GAAoB,WAAA;AAAA"}
1
+ {"version":3,"file":"assistant-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/assistant-runtime.ts"],"mappings":";;;;;;KASY;;;;WAID,SAAS;;;;WAKT,QAAQ;;;;;;EAOjB,6BAA6B,UAAU,uBAAuB;;cAGnD,gCAAgC;mBAKP;WAJpB,SAAO;WAEP,SAAS;cAEW,OAAO;YAOjC;MAKC,UAAM;EAIV,6BAA6B,UAAU,uBAAoB"}
@@ -3,7 +3,6 @@ import { Unsubscribe } from "../../types/unsubscribe.js";
3
3
  import { AttachmentRuntimePath } from "./paths.js";
4
4
  import { SubscribableWithState } from "../../subscribable/subscribable.js";
5
5
  import { ComposerRuntimeCoreBinding } from "./bindings.js";
6
-
7
6
  //#region src/runtime/api/attachment-runtime.d.ts
8
7
  type MessageAttachmentState = CompleteAttachment & {
9
8
  readonly source: "message";
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/attachment-runtime.ts"],"mappings":";;;;;;;KAOK,sBAAA,GAAyB,kBAAkB;EAAA,SACrC,MAAM;AAAA;AAAA,KAGZ,6BAAA,GAAgC,UAAU;EAAA,SACpC,MAAM;AAAA;AAAA,KAGZ,2BAAA,GAA8B,UAAU;EAAA,SAClC,MAAM;AAAA;AAAA,KAGL,eAAA,GACR,6BAAA,GACA,2BAAA,GACA,sBAAA;AAAA,KAEC,yBAAA,gBAAyC,uBAAA,IAC5C,qBAAA,CACE,eAAA;EAAoB,MAAA,EAAQ,MAAA;AAAA,GAC5B,qBAAA;EAA0B,gBAAA,EAAkB,MAAA;AAAA;AAAA,KAG3C,uBAAA,GAA0B,eAAe;AAAA,KAElC,iBAAA,iBACM,uBAAA,GAA0B,uBAAA;EAAA,SAEjC,IAAA,EAAM,qBAAA;IAA0B,gBAAA,EAAkB,OAAA;EAAA;EAAA,SAClD,MAAA,EAAQ,OAAA;EACjB,QAAA,IAAY,eAAA;IAAoB,MAAA,EAAQ,OAAA;EAAA;EACxC,MAAA,IAAU,OAAA;EACV,SAAA,CAAU,QAAA,eAAuB,WAAA;AAAA;AAAA,uBAGb,qBAAA,gBACL,uBAAA,GAA0B,uBAAA,aAC9B,iBAAA;EAAA,QAOS,KAAA;EAAA,IANT,IAAA,IAAI,qBAAA;;;eAIK,MAAA,IAAU,MAAA;cAEV,KAAA,EAAO,yBAAA,CAA0B,MAAA;EAAA,UAI3C,sBAAA;EAMH,QAAA,IAAY,eAAA;IAAoB,MAAA,EAAQ,MAAA;EAAA;EAAA,SAI/B,MAAA,IAAU,OAAA;EAEnB,SAAA,CAAU,QAAA,eAAoB,WAAA;AAAA;AAAA,uBAKxB,yBAAA,6DAEL,qBAAA,CAAsB,MAAA;EAAA,QAGpB,YAAA;cADR,IAAA,EAAM,yBAAA,CAA0B,MAAA,GACxB,YAAA,EAAc,0BAAA;EAKjB,MAAA,IAAM,OAAA;AAAA;AAAA,cAOF,mCAAA,SAA4C,yBAAyB;EAAA,IACrE,MAAM;AAAA;AAAA,cAKN,iCAAA,SAA0C,yBAAyB;EAAA,IACnE,MAAM;AAAA;AAAA,cAKN,4BAAA,SAAqC,qBAAqB;EAAA,IAC1D,MAAA;EAIJ,MAAA;AAAA"}
1
+ {"version":3,"file":"attachment-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/attachment-runtime.ts"],"mappings":";;;;;;KAOK,yBAAyB;WACnB;;KAGN,gCAAgC;WAC1B;;KAGN,8BAA8B;WACxB;;KAGC,kBACR,gCACA,8BACA;KAEC,0BAA0B,eAAe,2BAC5C,sBACE;EAAoB,QAAQ;GAC5B;EAA0B,kBAAkB;;KAG3C,0BAA0B;KAEnB,kBACV,gBAAgB,0BAA0B;WAEjC,MAAM;IAA0B,kBAAkB;;WAClD,QAAQ;EACjB,YAAY;IAAoB,QAAQ;;EACxC,UAAU;EACV,UAAU,uBAAuB;;uBAGb,sBACpB,eAAe,0BAA0B,oCAC9B;UAOS;MANT,QAAI;;;eAIK,UAAU;cAEV,OAAO,0BAA0B;YAI3C;EAMH,YAAY;IAAoB,QAAQ;;WAI/B,UAAU;EAEnB,UAAU,uBAAoB;;uBAKxB,0BACb,4DACQ,sBAAsB;UAGpB;cADR,MAAM,0BAA0B,SACxB,cAAc;EAKjB,UAAM;;cAOF,4CAA4C;MAC5C;;cAKA,0CAA0C;MAC1C;;cAKA,qCAAqC;MACrC;EAIJ"}
@@ -4,7 +4,6 @@ import { SpeechState } from "../interfaces/thread-runtime-core.js";
4
4
  import { ComposerRuntimePath, MessageRuntimePath } from "./paths.js";
5
5
  import { ThreadListItemStatus } from "../interfaces/thread-list-runtime-core.js";
6
6
  import { SubscribableWithState } from "../../subscribable/subscribable.js";
7
-
8
7
  //#region src/runtime/api/bindings.d.ts
9
8
  type ComposerRuntimeCoreBinding = SubscribableWithState<ComposerRuntimeCore | undefined, ComposerRuntimePath>;
10
9
  type ThreadComposerRuntimeCoreBinding = SubscribableWithState<ThreadComposerRuntimeCore | undefined, ComposerRuntimePath & {
@@ -1 +1 @@
1
- {"version":3,"file":"bindings.d.ts","names":[],"sources":["../../../src/runtime/api/bindings.ts"],"mappings":";;;;;;;;KAUY,0BAAA,GAA6B,qBAAA,CACvC,mBAAA,cACA,mBAAA;AAAA,KAGU,gCAAA,GAAmC,qBAAA,CAC7C,yBAAA,cACA,mBAAA;EAAwB,cAAA;AAAA;AAAA,KAGd,8BAAA,GAAiC,qBAAA,CAC3C,uBAAA,cACA,mBAAA;EAAwB,cAAA;AAAA;AAAA,KAGd,mBAAA,GAAsB,qBAAA,CAChC,aAAA;EAAA,SACW,QAAA;EAAA,SACA,KAAA;EAAA,SACA,MAAA;EAAA,SACA,YAAA;EAAA,SACA,WAAA;EAAA,SACA,MAAA,EAAQ,WAAA;AAAA,GAEnB,kBAAA;AAAA,KAGU,mBAAA;EAAA,SACD,MAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,UAAA;EAAA,SACA,MAAA,EALoB,oBAAA;EAAA,SAMpB,KAAA;EAAA,SACA,aAAA,GAAgB,IAAA;EAAA,SAChB,MAAA,GAAS,MAAA;AAAA"}
1
+ {"version":3,"file":"bindings.d.ts","names":[],"sources":["../../../src/runtime/api/bindings.ts"],"mappings":";;;;;;;KAUY,6BAA6B,sBACvC,iCACA;KAGU,mCAAmC,sBAC7C,uCACA;EAAwB;;KAGd,iCAAiC,sBAC3C,qCACA;EAAwB;;KAGd,sBAAsB,sBAChC;WACW;WACA;WACA;WACA;WACA;WACA,QAAQ;GAEnB;KAGU;WACD;WACA;WACA;WACA;WACA,QALC;WAMD;WACA,gBAAgB;WAChB,SAAS"}