@assistant-ui/core 0.2.20 → 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 (509) 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/message/MessageAttachments.d.ts +4 -3
  166. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
  167. package/dist/react/primitives/message/MessageGroupedParts.d.ts +1 -6
  168. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  169. package/dist/react/primitives/message/MessageParts.d.ts +42 -24
  170. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  171. package/dist/react/primitives/message/MessageParts.js +2 -1
  172. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  173. package/dist/react/primitives/message/MessageQuote.d.ts +2 -2
  174. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
  175. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +0 -1
  176. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  177. package/dist/react/primitives/part/PartMessages.d.ts +2 -2
  178. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  179. package/dist/react/primitives/thread/ThreadMessages.d.ts +35 -17
  180. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  181. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +6 -4
  182. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  183. package/dist/react/primitives/threadList/ThreadListItems.d.ts +4 -3
  184. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  185. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +0 -1
  186. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  187. package/dist/react/providers/AttachmentByIndexProvider.d.ts +0 -1
  188. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  189. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +0 -1
  190. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  191. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +0 -1
  192. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  193. package/dist/react/providers/MessageByIdProvider.d.ts +0 -1
  194. package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
  195. package/dist/react/providers/MessageByIndexProvider.d.ts +0 -1
  196. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
  197. package/dist/react/providers/PartByIndexProvider.d.ts +0 -1
  198. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
  199. package/dist/react/providers/QueueItemByIndexProvider.d.ts +0 -1
  200. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
  201. package/dist/react/providers/ReadonlyThreadProvider.d.ts +0 -1
  202. package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
  203. package/dist/react/providers/SuggestionByIndexProvider.d.ts +0 -1
  204. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  205. package/dist/react/providers/TextMessagePartProvider.d.ts +0 -1
  206. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  207. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +0 -1
  208. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
  209. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +1 -1
  210. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  211. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +2 -1
  212. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  213. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +1 -1
  214. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  215. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +3 -1
  216. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  217. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +21 -19
  218. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  219. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +0 -1
  220. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  221. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +0 -1
  222. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  223. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +1 -4
  224. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  225. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +6 -3
  226. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  227. package/dist/react/runtimes/cloud/auiV0.d.ts +12 -2
  228. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  229. package/dist/react/runtimes/cloud/auiV0.js +30 -1
  230. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  231. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +0 -1
  232. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  233. package/dist/react/runtimes/createMessageConverter.d.ts +1 -7
  234. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  235. package/dist/react/runtimes/createRuntimeExtras.d.ts +0 -1
  236. package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
  237. package/dist/react/runtimes/external-message-converter.d.ts +1 -8
  238. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  239. package/dist/react/runtimes/external-message-converter.js +42 -44
  240. package/dist/react/runtimes/external-message-converter.js.map +1 -1
  241. package/dist/react/runtimes/useExternalStoreRuntime.d.ts +0 -1
  242. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
  243. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +0 -1
  244. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
  245. package/dist/react/runtimes/useLocalRuntime.d.ts +2 -5
  246. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  247. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +0 -1
  248. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  249. package/dist/react/runtimes/useStreamingTiming.d.ts +0 -1
  250. package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
  251. package/dist/react/types/MessagePartComponentTypes.d.ts +6 -3
  252. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  253. package/dist/react/types/scopes/dataRenderers.d.ts +1 -1
  254. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
  255. package/dist/react/types/scopes/interactables.d.ts +4 -2
  256. package/dist/react/types/scopes/interactables.d.ts.map +1 -1
  257. package/dist/react/types/scopes/tools.d.ts +5 -3
  258. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  259. package/dist/react/types/store-augmentation.d.ts +1 -2
  260. package/dist/react/types/store-augmentation.d.ts.map +1 -1
  261. package/dist/react/utils/getMessageQuote.d.ts +0 -1
  262. package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
  263. package/dist/react/utils/groupParts.d.ts +2 -2
  264. package/dist/react/utils/groupParts.d.ts.map +1 -1
  265. package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
  266. package/dist/runtime/api/assistant-runtime.d.ts +0 -1
  267. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  268. package/dist/runtime/api/attachment-runtime.d.ts +0 -1
  269. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  270. package/dist/runtime/api/bindings.d.ts +0 -1
  271. package/dist/runtime/api/bindings.d.ts.map +1 -1
  272. package/dist/runtime/api/composer-runtime.d.ts +6 -4
  273. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  274. package/dist/runtime/api/message-part-runtime.d.ts +0 -1
  275. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  276. package/dist/runtime/api/message-runtime.d.ts +6 -16
  277. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  278. package/dist/runtime/api/message-runtime.js +1 -1
  279. package/dist/runtime/api/paths.d.ts.map +1 -1
  280. package/dist/runtime/api/thread-list-item-runtime.d.ts +0 -1
  281. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  282. package/dist/runtime/api/thread-list-runtime.d.ts +0 -1
  283. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  284. package/dist/runtime/api/thread-runtime.d.ts +3 -1
  285. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  286. package/dist/runtime/base/base-assistant-runtime-core.d.ts +0 -1
  287. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  288. package/dist/runtime/base/base-composer-runtime-core.d.ts +0 -1
  289. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  290. package/dist/runtime/base/base-composer-runtime-core.js +17 -3
  291. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  292. package/dist/runtime/base/base-thread-runtime-core.d.ts +2 -4
  293. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  294. package/dist/runtime/base/base-thread-runtime-core.js +1 -1
  295. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +1 -5
  296. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  297. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +1 -0
  298. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  299. package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
  300. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +0 -1
  301. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  302. package/dist/runtime/interfaces/composer-runtime-core.d.ts +2 -2
  303. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  304. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +0 -1
  305. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  306. package/dist/runtime/interfaces/thread-runtime-core.d.ts +2 -2
  307. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  308. package/dist/runtime/queue/external-thread-queue-adapter.d.ts +0 -1
  309. package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
  310. package/dist/runtime/queue/message-queue.d.ts +6 -4
  311. package/dist/runtime/queue/message-queue.d.ts.map +1 -1
  312. package/dist/runtime/queue/message-queue.js +1 -1
  313. package/dist/runtime/utils/auto-status.d.ts +0 -1
  314. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  315. package/dist/runtime/utils/chat-model-adapter.d.ts +0 -1
  316. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  317. package/dist/runtime/utils/external-store-message.d.ts +0 -1
  318. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  319. package/dist/runtime/utils/message-repository.d.ts +1 -5
  320. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  321. package/dist/runtime/utils/message-repository.js +3 -1
  322. package/dist/runtime/utils/message-repository.js.map +1 -1
  323. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +0 -1
  324. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
  325. package/dist/runtime/utils/streaming-timing.d.ts +5 -3
  326. package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
  327. package/dist/runtime/utils/thread-message-like.d.ts +2 -2
  328. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  329. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  330. package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
  331. package/dist/runtimes/external-store/external-store-adapter.d.ts +2 -2
  332. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  333. package/dist/runtimes/external-store/external-store-runtime-core.d.ts +0 -1
  334. package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
  335. package/dist/runtimes/external-store/external-store-shared-options.d.ts +0 -1
  336. package/dist/runtimes/external-store/external-store-shared-options.d.ts.map +1 -1
  337. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +0 -1
  338. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  339. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +2 -0
  340. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  341. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +1 -1
  342. package/dist/runtimes/external-store/thread-message-converter.d.ts +0 -1
  343. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  344. package/dist/runtimes/local/local-runtime-core.d.ts +0 -1
  345. package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
  346. package/dist/runtimes/local/local-runtime-options.d.ts +0 -1
  347. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  348. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +0 -1
  349. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  350. package/dist/runtimes/local/local-thread-runtime-core.d.ts +5 -21
  351. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  352. package/dist/runtimes/local/local-thread-runtime-core.js +24 -15
  353. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  354. package/dist/runtimes/local/should-continue.d.ts +0 -1
  355. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  356. package/dist/runtimes/local/should-continue.js +2 -2
  357. package/dist/runtimes/local/should-continue.js.map +1 -1
  358. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +0 -1
  359. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  360. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +1 -2
  361. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  362. package/dist/runtimes/remote-thread-list/adapter/in-memory.js +5 -3
  363. package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -1
  364. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +0 -1
  365. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  366. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +6 -4
  367. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  368. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +0 -1
  369. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  370. package/dist/runtimes/remote-thread-list/types.d.ts +0 -1
  371. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  372. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +2 -2
  373. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
  374. package/dist/store/clients/chain-of-thought-client.d.ts +0 -1
  375. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  376. package/dist/store/clients/model-context-client.d.ts +0 -1
  377. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  378. package/dist/store/clients/no-op-composer-client.d.ts +0 -1
  379. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  380. package/dist/store/clients/runtime-adapter.d.ts +0 -1
  381. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  382. package/dist/store/clients/suggestions.d.ts +0 -1
  383. package/dist/store/clients/suggestions.d.ts.map +1 -1
  384. package/dist/store/clients/thread-message-client.d.ts +0 -1
  385. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  386. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +0 -1
  387. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  388. package/dist/store/runtime-clients/composer-runtime-client.d.ts +0 -1
  389. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  390. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
  391. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +0 -1
  392. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  393. package/dist/store/runtime-clients/message-runtime-client.d.ts +0 -1
  394. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  395. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +0 -1
  396. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  397. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +0 -1
  398. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  399. package/dist/store/runtime-clients/thread-runtime-client.d.ts +0 -1
  400. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  401. package/dist/store/runtime-clients/useSubscribable.d.ts +0 -1
  402. package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
  403. package/dist/store/scope-registration.d.ts +1 -2
  404. package/dist/store/scope-registration.d.ts.map +1 -1
  405. package/dist/store/scopes/attachment.d.ts +0 -1
  406. package/dist/store/scopes/attachment.d.ts.map +1 -1
  407. package/dist/store/scopes/chain-of-thought.d.ts +0 -1
  408. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  409. package/dist/store/scopes/composer.d.ts +0 -1
  410. package/dist/store/scopes/composer.d.ts.map +1 -1
  411. package/dist/store/scopes/message.d.ts +6 -4
  412. package/dist/store/scopes/message.d.ts.map +1 -1
  413. package/dist/store/scopes/model-context.d.ts +0 -1
  414. package/dist/store/scopes/model-context.d.ts.map +1 -1
  415. package/dist/store/scopes/part.d.ts +0 -1
  416. package/dist/store/scopes/part.d.ts.map +1 -1
  417. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  418. package/dist/store/scopes/suggestion.d.ts.map +1 -1
  419. package/dist/store/scopes/suggestions.d.ts +0 -1
  420. package/dist/store/scopes/suggestions.d.ts.map +1 -1
  421. package/dist/store/scopes/thread-list-item.d.ts +0 -1
  422. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  423. package/dist/store/scopes/thread.d.ts +4 -3
  424. package/dist/store/scopes/thread.d.ts.map +1 -1
  425. package/dist/store/scopes/threads.d.ts +0 -1
  426. package/dist/store/scopes/threads.d.ts.map +1 -1
  427. package/dist/subscribable/subscribable.d.ts +0 -1
  428. package/dist/subscribable/subscribable.d.ts.map +1 -1
  429. package/dist/tests/remote-thread-list-test-helpers.d.ts +0 -1
  430. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -1
  431. package/dist/types/attachment.d.ts +1 -1
  432. package/dist/types/attachment.d.ts.map +1 -1
  433. package/dist/types/directive.d.ts +3 -2
  434. package/dist/types/directive.d.ts.map +1 -1
  435. package/dist/types/error.d.ts +15 -0
  436. package/dist/types/error.d.ts.map +1 -0
  437. package/dist/types/error.js +46 -0
  438. package/dist/types/error.js.map +1 -0
  439. package/dist/types/index.d.ts +2 -2
  440. package/dist/types/message.d.ts +70 -33
  441. package/dist/types/message.d.ts.map +1 -1
  442. package/dist/types/message.js.map +1 -1
  443. package/dist/types/quote.d.ts.map +1 -1
  444. package/dist/types/trigger.d.ts +0 -1
  445. package/dist/types/trigger.d.ts.map +1 -1
  446. package/dist/types/unsubscribe.d.ts.map +1 -1
  447. package/dist/utils/composite-context-provider.d.ts +1 -0
  448. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  449. package/dist/utils/id.d.ts.map +1 -1
  450. package/dist/utils/json/is-json-equal.d.ts.map +1 -1
  451. package/dist/utils/json/is-json.d.ts +0 -1
  452. package/dist/utils/json/is-json.d.ts.map +1 -1
  453. package/dist/utils/json/is-json.js +1 -1
  454. package/dist/utils/json/is-json.js.map +1 -1
  455. package/dist/utils/json/stable-stringify-tool-args.d.ts +7 -0
  456. package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -0
  457. package/dist/utils/json/stable-stringify-tool-args.js +32 -0
  458. package/dist/utils/json/stable-stringify-tool-args.js.map +1 -0
  459. package/dist/utils/text.d.ts +0 -1
  460. package/dist/utils/text.d.ts.map +1 -1
  461. package/package.json +12 -9
  462. package/src/adapters/attachment.test.ts +107 -0
  463. package/src/adapters/attachment.ts +20 -10
  464. package/src/adapters/index.ts +6 -1
  465. package/src/adapters/suggestion.test.ts +187 -0
  466. package/src/adapters/suggestion.ts +75 -1
  467. package/src/index.ts +15 -1
  468. package/src/internal.ts +16 -0
  469. package/src/model-context/tool.test.ts +110 -0
  470. package/src/model-context/tool.ts +31 -9
  471. package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +222 -0
  472. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +214 -7
  473. package/src/react/index.ts +2 -0
  474. package/src/react/model-context/define-mcp-toolkit.ts +39 -6
  475. package/src/react/model-context/define-toolkit.test.ts +107 -0
  476. package/src/react/primitive-hooks/useMessageError.test.ts +64 -0
  477. package/src/react/primitive-hooks/useMessageError.ts +19 -6
  478. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +3 -1
  479. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +48 -19
  480. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +111 -0
  481. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +13 -3
  482. package/src/react/runtimes/cloud/auiV0.ts +71 -2
  483. package/src/react/runtimes/external-message-converter.test.tsx +102 -0
  484. package/src/react/runtimes/external-message-converter.ts +35 -10
  485. package/src/runtime/base/base-composer-runtime-core.ts +26 -7
  486. package/src/runtime/utils/message-repository.ts +8 -3
  487. package/src/runtime/utils/thread-message-like.ts +2 -0
  488. package/src/runtimes/local/local-thread-runtime-core.test.ts +127 -3
  489. package/src/runtimes/local/local-thread-runtime-core.ts +25 -23
  490. package/src/runtimes/local/should-continue.ts +5 -2
  491. package/src/runtimes/remote-thread-list/adapter/in-memory.test.ts +14 -0
  492. package/src/runtimes/remote-thread-list/adapter/in-memory.ts +13 -5
  493. package/src/tests/MessageRepository.test.ts +26 -0
  494. package/src/tests/RemoteThreadListThreadListRuntimeCore-errors.test.ts +42 -0
  495. package/src/tests/attachment-adapters.test.ts +14 -2
  496. package/src/tests/auiV0Encode.test.ts +134 -1
  497. package/src/tests/base-composer-runtime-core-addAttachment.test.ts +79 -5
  498. package/src/tests/base-composer-runtime-core-send.test.ts +145 -0
  499. package/src/tests/thread-message-like.test.ts +40 -0
  500. package/src/types/attachment.ts +1 -0
  501. package/src/types/error.test.ts +122 -0
  502. package/src/types/error.ts +74 -0
  503. package/src/types/index.ts +1 -0
  504. package/src/types/message.ts +11 -3
  505. package/src/utils/json/is-json-equal.test.ts +84 -0
  506. package/src/utils/json/is-json.test.ts +123 -0
  507. package/src/utils/json/is-json.ts +1 -1
  508. package/src/utils/json/stable-stringify-tool-args.test.ts +105 -0
  509. package/src/utils/json/stable-stringify-tool-args.ts +70 -0
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStorageThreadListAdapter.js","names":["AssistantStream","createAssistantStream","FC","PropsWithChildren","useMemo","useAui","RemoteThreadInitializeResponse","RemoteThreadListAdapter","RemoteThreadListResponse","RemoteThreadMetadata","ThreadHistoryAdapter","ThreadMessage","ExportedMessageRepository","ExportedMessageRepositoryItem","RuntimeAdapterProvider","TitleGenerationAdapter","AsyncStorageLike","getItem","key","Promise","setItem","value","removeItem","LocalStorageAdapterOptions","storage","prefix","titleGenerator","StoredThreadMetadata","remoteId","externalId","status","title","custom","Record","AsyncStorageHistoryAdapter","constructor","aui","ReturnType","_messagesKey","load","threadListItem","getState","messages","raw","JSON","parse","append","item","initialize","repo","idx","findIndex","m","message","id","push","headId","stringify","createHistoryProvider","Provider","t0","$","_c","children","t1","history","t2","adapters","t3","createLocalStorageAdapter","options","threadsKey","messagesKey","threadId","loadThreadMetadata","saveThreadMetadata","threads","adapter","unstable_Provider","list","map","t","some","unshift","undefined","rename","newTitle","thread","find","updateCustom","archive","unarchive","delete","filtered","filter","fetch","Error","generateTitle","controller","appendText"],"sources":["../../../src/react/adapters/LocalStorageThreadListAdapter.tsx"],"sourcesContent":["import { type AssistantStream, createAssistantStream } from \"assistant-stream\";\nimport { type FC, type PropsWithChildren, useMemo } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type {\n RemoteThreadInitializeResponse,\n RemoteThreadListAdapter,\n RemoteThreadListResponse,\n RemoteThreadMetadata,\n ThreadHistoryAdapter,\n ThreadMessage,\n} from \"../../index\";\nimport type {\n ExportedMessageRepository,\n ExportedMessageRepositoryItem,\n} from \"../../internal\";\nimport { RuntimeAdapterProvider } from \"../runtimes/RuntimeAdapterProvider\";\nimport type { TitleGenerationAdapter } from \"./TitleGenerationAdapter\";\n\nexport type AsyncStorageLike = {\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n};\n\ntype LocalStorageAdapterOptions = {\n storage: AsyncStorageLike;\n prefix?: string | undefined;\n titleGenerator?: TitleGenerationAdapter | undefined;\n};\n\ntype StoredThreadMetadata = {\n remoteId: string;\n externalId?: string;\n status: \"regular\" | \"archived\";\n title?: string;\n custom?: Record<string, unknown> | undefined;\n};\n\nclass AsyncStorageHistoryAdapter implements ThreadHistoryAdapter {\n constructor(\n private storage: AsyncStorageLike,\n private aui: ReturnType<typeof useAui>,\n private prefix: string,\n ) {}\n\n private _messagesKey(remoteId: string) {\n return `${this.prefix}messages:${remoteId}`;\n }\n\n async load(): Promise<ExportedMessageRepository> {\n const remoteId = this.aui.threadListItem().getState().remoteId;\n if (!remoteId) return { messages: [] };\n\n const raw = await this.storage.getItem(this._messagesKey(remoteId));\n if (!raw) return { messages: [] };\n return JSON.parse(raw) as ExportedMessageRepository;\n }\n\n async append(item: ExportedMessageRepositoryItem): Promise<void> {\n const { remoteId } = await this.aui.threadListItem().initialize();\n\n const key = this._messagesKey(remoteId);\n const raw = await this.storage.getItem(key);\n const repo: ExportedMessageRepository = raw\n ? (JSON.parse(raw) as ExportedMessageRepository)\n : { messages: [] };\n\n const idx = repo.messages.findIndex(\n (m) => m.message.id === item.message.id,\n );\n if (idx >= 0) {\n repo.messages[idx] = item;\n } else {\n repo.messages.push(item);\n }\n repo.headId = item.message.id;\n\n await this.storage.setItem(key, JSON.stringify(repo));\n }\n}\n\nconst createHistoryProvider = (\n storage: AsyncStorageLike,\n prefix: string,\n): FC<PropsWithChildren> => {\n const Provider: FC<PropsWithChildren> = ({ children }) => {\n const aui = useAui();\n const history = useMemo(\n () => new AsyncStorageHistoryAdapter(storage, aui, prefix),\n [aui],\n );\n const adapters = useMemo(() => ({ history }), [history]);\n\n return (\n <RuntimeAdapterProvider adapters={adapters}>\n {children}\n </RuntimeAdapterProvider>\n );\n };\n return Provider;\n};\n\nexport const createLocalStorageAdapter = (\n options: LocalStorageAdapterOptions,\n): RemoteThreadListAdapter => {\n const { storage, prefix = \"@assistant-ui:\", titleGenerator } = options;\n\n const threadsKey = `${prefix}threads`;\n const messagesKey = (threadId: string) => `${prefix}messages:${threadId}`;\n\n const loadThreadMetadata = async (): Promise<StoredThreadMetadata[]> => {\n const raw = await storage.getItem(threadsKey);\n return raw ? (JSON.parse(raw) as StoredThreadMetadata[]) : [];\n };\n\n const saveThreadMetadata = async (\n threads: StoredThreadMetadata[],\n ): Promise<void> => {\n await storage.setItem(threadsKey, JSON.stringify(threads));\n };\n\n const adapter: RemoteThreadListAdapter = {\n unstable_Provider: createHistoryProvider(storage, prefix),\n\n async list(): Promise<RemoteThreadListResponse> {\n const threads = await loadThreadMetadata();\n return {\n threads: threads.map((t) => ({\n remoteId: t.remoteId,\n externalId: t.externalId,\n status: t.status,\n title: t.title,\n custom: t.custom,\n })),\n };\n },\n\n async initialize(\n threadId: string,\n ): Promise<RemoteThreadInitializeResponse> {\n const remoteId = threadId;\n const threads = await loadThreadMetadata();\n\n // Only add if not already present\n if (!threads.some((t) => t.remoteId === remoteId)) {\n threads.unshift({\n remoteId,\n status: \"regular\",\n });\n await saveThreadMetadata(threads);\n }\n\n return { remoteId, externalId: undefined };\n },\n\n async rename(remoteId: string, newTitle: string): Promise<void> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === remoteId);\n if (thread) {\n thread.title = newTitle;\n await saveThreadMetadata(threads);\n }\n },\n\n async updateCustom(\n remoteId: string,\n custom: Record<string, unknown> | undefined,\n ): Promise<void> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === remoteId);\n if (thread) {\n thread.custom = custom;\n await saveThreadMetadata(threads);\n }\n },\n\n async archive(remoteId: string): Promise<void> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === remoteId);\n if (thread) {\n thread.status = \"archived\";\n await saveThreadMetadata(threads);\n }\n },\n\n async unarchive(remoteId: string): Promise<void> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === remoteId);\n if (thread) {\n thread.status = \"regular\";\n await saveThreadMetadata(threads);\n }\n },\n\n async delete(remoteId: string): Promise<void> {\n const threads = await loadThreadMetadata();\n const filtered = threads.filter((t) => t.remoteId !== remoteId);\n await saveThreadMetadata(filtered);\n await storage.removeItem(messagesKey(remoteId));\n },\n\n async fetch(threadId: string): Promise<RemoteThreadMetadata> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === threadId);\n if (!thread) throw new Error(\"Thread not found\");\n return {\n remoteId: thread.remoteId,\n externalId: thread.externalId,\n status: thread.status,\n title: thread.title,\n custom: thread.custom,\n };\n },\n\n async generateTitle(\n remoteId: string,\n messages: readonly ThreadMessage[],\n ): Promise<AssistantStream> {\n if (titleGenerator) {\n const title = await titleGenerator.generateTitle(messages);\n\n // Update the stored title\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === remoteId);\n if (thread) {\n thread.title = title;\n await saveThreadMetadata(threads);\n }\n\n // Return a stream with a single text part\n return createAssistantStream((controller) => {\n controller.appendText(title);\n });\n }\n\n // No title generator — return empty stream\n return createAssistantStream(() => {});\n },\n };\n\n return adapter;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"LocalStorageThreadListAdapter.js","names":["AssistantStream","createAssistantStream","FC","PropsWithChildren","useMemo","useAui","RemoteThreadInitializeResponse","RemoteThreadListAdapter","RemoteThreadListResponse","RemoteThreadMetadata","ThreadHistoryAdapter","ThreadMessage","RunConfig","ExportedMessageRepository","ExportedMessageRepositoryItem","RuntimeAdapterProvider","TitleGenerationAdapter","AsyncStorageLike","getItem","key","Promise","setItem","value","removeItem","LocalStorageAdapterOptions","storage","prefix","titleGenerator","StoredThreadMetadata","remoteId","externalId","status","title","custom","Record","StoredSystemMessage","Extract","role","StoredUserMessage","StoredAssistantMessage","isRecord","Array","isArray","parseJSON","raw","undefined","JSON","parse","parseStoredThread","parseDate","Date","Number","isNaN","getTime","date","isMessageRole","parseStoredThreadMessage","id","content","createdAt","metadata","type","submittedFeedback","submittedFeedbackType","unstable_state","unstable_annotations","unstable_data","steps","timing","NonNullable","isOptimistic","attachments","length","parseStoredThreadMetadata","parsed","flatMap","item","thread","parseStoredMessageRepositoryItem","message","parentId","runConfig","parseStoredMessageRepository","messages","candidateMessages","parsedItem","acceptedIds","Set","has","add","headId","some","AsyncStorageHistoryAdapter","constructor","aui","ReturnType","_messagesKey","load","threadListItem","getState","append","initialize","repo","idx","findIndex","m","push","stringify","createHistoryProvider","Provider","t0","$","_c","children","t1","history","t2","adapters","t3","createLocalStorageAdapter","options","threadsKey","messagesKey","threadId","loadThreadMetadata","saveThreadMetadata","threads","adapter","unstable_Provider","list","map","t","unshift","rename","newTitle","find","updateCustom","archive","unarchive","delete","filtered","filter","fetch","Error","generateTitle","controller","appendText"],"sources":["../../../src/react/adapters/LocalStorageThreadListAdapter.tsx"],"sourcesContent":["import { type AssistantStream, createAssistantStream } from \"assistant-stream\";\nimport { type FC, type PropsWithChildren, useMemo } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type {\n RemoteThreadInitializeResponse,\n RemoteThreadListAdapter,\n RemoteThreadListResponse,\n RemoteThreadMetadata,\n ThreadHistoryAdapter,\n ThreadMessage,\n RunConfig,\n} from \"../../index\";\nimport type {\n ExportedMessageRepository,\n ExportedMessageRepositoryItem,\n} from \"../../internal\";\nimport { RuntimeAdapterProvider } from \"../runtimes/RuntimeAdapterProvider\";\nimport type { TitleGenerationAdapter } from \"./TitleGenerationAdapter\";\n\nexport type AsyncStorageLike = {\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n};\n\ntype LocalStorageAdapterOptions = {\n storage: AsyncStorageLike;\n prefix?: string | undefined;\n titleGenerator?: TitleGenerationAdapter | undefined;\n};\n\ntype StoredThreadMetadata = {\n remoteId: string;\n externalId?: string;\n status: \"regular\" | \"archived\";\n title?: string;\n custom?: Record<string, unknown> | undefined;\n};\n\ntype StoredSystemMessage = Extract<ThreadMessage, { role: \"system\" }>;\ntype StoredUserMessage = Extract<ThreadMessage, { role: \"user\" }>;\ntype StoredAssistantMessage = Extract<ThreadMessage, { role: \"assistant\" }>;\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst parseJSON = (raw: string | null): unknown => {\n if (!raw) return undefined;\n try {\n return JSON.parse(raw) as unknown;\n } catch {\n return undefined;\n }\n};\n\nconst parseStoredThread = (value: unknown): StoredThreadMetadata | null => {\n if (!isRecord(value) || typeof value.remoteId !== \"string\") return null;\n\n const status = value.status ?? \"regular\";\n if (status !== \"regular\" && status !== \"archived\") return null;\n\n return {\n remoteId: value.remoteId,\n status,\n ...(typeof value.externalId === \"string\"\n ? { externalId: value.externalId }\n : undefined),\n ...(typeof value.title === \"string\" ? { title: value.title } : undefined),\n ...(isRecord(value.custom) ? { custom: value.custom } : undefined),\n };\n};\n\nconst parseDate = (value: unknown): Date | null => {\n if (value instanceof Date && !Number.isNaN(value.getTime())) return value;\n if (typeof value !== \"string\" && typeof value !== \"number\") return null;\n\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n};\n\nconst isMessageRole = (value: unknown): value is ThreadMessage[\"role\"] =>\n value === \"system\" || value === \"user\" || value === \"assistant\";\n\nconst parseStoredThreadMessage = (value: unknown): ThreadMessage | null => {\n if (!isRecord(value) || typeof value.id !== \"string\") return null;\n if (!isMessageRole(value.role)) return null;\n if (!Array.isArray(value.content)) return null;\n\n const createdAt = parseDate(value.createdAt);\n if (!createdAt) return null;\n\n const metadata = value.metadata;\n if (!isRecord(metadata) || !isRecord(metadata.custom)) return null;\n\n if (value.role === \"assistant\") {\n const status = value.status;\n if (!isRecord(status) || typeof status.type !== \"string\") return null;\n\n const submittedFeedback = isRecord(metadata.submittedFeedback)\n ? metadata.submittedFeedback\n : undefined;\n const submittedFeedbackType = submittedFeedback?.type;\n\n return {\n id: value.id,\n role: \"assistant\",\n content: value.content as StoredAssistantMessage[\"content\"],\n status: status as StoredAssistantMessage[\"status\"],\n createdAt,\n metadata: {\n unstable_state: (metadata.unstable_state ??\n null) as StoredAssistantMessage[\"metadata\"][\"unstable_state\"],\n unstable_annotations: Array.isArray(metadata.unstable_annotations)\n ? (metadata.unstable_annotations as StoredAssistantMessage[\"metadata\"][\"unstable_annotations\"])\n : [],\n unstable_data: Array.isArray(metadata.unstable_data)\n ? (metadata.unstable_data as StoredAssistantMessage[\"metadata\"][\"unstable_data\"])\n : [],\n steps: Array.isArray(metadata.steps)\n ? (metadata.steps as StoredAssistantMessage[\"metadata\"][\"steps\"])\n : [],\n ...(submittedFeedbackType === \"positive\" ||\n submittedFeedbackType === \"negative\"\n ? {\n submittedFeedback: {\n type: submittedFeedbackType,\n },\n }\n : undefined),\n ...(metadata.timing !== undefined\n ? {\n timing: metadata.timing as NonNullable<\n StoredAssistantMessage[\"metadata\"][\"timing\"]\n >,\n }\n : undefined),\n ...(metadata.isOptimistic === true\n ? { isOptimistic: true }\n : undefined),\n custom: metadata.custom,\n },\n };\n }\n\n if (value.role === \"user\") {\n return {\n id: value.id,\n role: \"user\",\n content: value.content as StoredUserMessage[\"content\"],\n attachments: Array.isArray(value.attachments)\n ? (value.attachments as StoredUserMessage[\"attachments\"])\n : [],\n createdAt,\n metadata: {\n custom: metadata.custom,\n },\n };\n }\n\n if (value.content.length !== 1) return null;\n\n return {\n id: value.id,\n role: \"system\",\n content: [value.content[0] as StoredSystemMessage[\"content\"][0]],\n createdAt,\n metadata: {\n custom: metadata.custom,\n },\n };\n};\n\nexport const parseStoredThreadMetadata = (\n raw: string | null,\n): StoredThreadMetadata[] => {\n const parsed = parseJSON(raw);\n if (!Array.isArray(parsed)) return [];\n\n return parsed.flatMap((item) => {\n const thread = parseStoredThread(item);\n return thread ? [thread] : [];\n });\n};\n\nconst parseStoredMessageRepositoryItem = (\n value: unknown,\n): ExportedMessageRepositoryItem | null => {\n if (!isRecord(value)) return null;\n\n const message = parseStoredThreadMessage(value.message);\n if (!message) return null;\n\n const parentId = value.parentId;\n if (\n parentId !== undefined &&\n parentId !== null &&\n typeof parentId !== \"string\"\n ) {\n return null;\n }\n\n return {\n message,\n parentId: parentId ?? null,\n ...(isRecord(value.runConfig)\n ? { runConfig: value.runConfig as RunConfig }\n : undefined),\n };\n};\n\nexport const parseStoredMessageRepository = (\n raw: string | null,\n): ExportedMessageRepository => {\n const parsed = parseJSON(raw);\n if (!isRecord(parsed) || !Array.isArray(parsed.messages)) {\n return { messages: [] };\n }\n\n const candidateMessages = parsed.messages.flatMap((item) => {\n const parsedItem = parseStoredMessageRepositoryItem(item);\n return parsedItem ? [parsedItem] : [];\n });\n\n const acceptedIds = new Set<string>();\n const messages = candidateMessages.flatMap((item) => {\n if (acceptedIds.has(item.message.id)) return [];\n if (item.parentId !== null && !acceptedIds.has(item.parentId)) return [];\n\n acceptedIds.add(item.message.id);\n return [item];\n });\n\n const headId =\n parsed.headId === null ||\n (typeof parsed.headId === \"string\" &&\n messages.some((item) => item.message.id === parsed.headId))\n ? parsed.headId\n : undefined;\n\n return {\n ...(headId !== undefined ? { headId } : undefined),\n messages,\n };\n};\n\nclass AsyncStorageHistoryAdapter implements ThreadHistoryAdapter {\n constructor(\n private storage: AsyncStorageLike,\n private aui: ReturnType<typeof useAui>,\n private prefix: string,\n ) {}\n\n private _messagesKey(remoteId: string) {\n return `${this.prefix}messages:${remoteId}`;\n }\n\n async load(): Promise<ExportedMessageRepository> {\n const remoteId = this.aui.threadListItem().getState().remoteId;\n if (!remoteId) return { messages: [] };\n\n const raw = await this.storage.getItem(this._messagesKey(remoteId));\n return parseStoredMessageRepository(raw);\n }\n\n async append(item: ExportedMessageRepositoryItem): Promise<void> {\n const { remoteId } = await this.aui.threadListItem().initialize();\n\n const key = this._messagesKey(remoteId);\n const raw = await this.storage.getItem(key);\n const repo = parseStoredMessageRepository(raw);\n\n const idx = repo.messages.findIndex(\n (m) => m.message.id === item.message.id,\n );\n if (idx >= 0) {\n repo.messages[idx] = item;\n } else {\n repo.messages.push(item);\n }\n repo.headId = item.message.id;\n\n await this.storage.setItem(key, JSON.stringify(repo));\n }\n}\n\nconst createHistoryProvider = (\n storage: AsyncStorageLike,\n prefix: string,\n): FC<PropsWithChildren> => {\n const Provider: FC<PropsWithChildren> = ({ children }) => {\n const aui = useAui();\n const history = useMemo(\n () => new AsyncStorageHistoryAdapter(storage, aui, prefix),\n [aui],\n );\n const adapters = useMemo(() => ({ history }), [history]);\n\n return (\n <RuntimeAdapterProvider adapters={adapters}>\n {children}\n </RuntimeAdapterProvider>\n );\n };\n return Provider;\n};\n\nexport const createLocalStorageAdapter = (\n options: LocalStorageAdapterOptions,\n): RemoteThreadListAdapter => {\n const { storage, prefix = \"@assistant-ui:\", titleGenerator } = options;\n\n const threadsKey = `${prefix}threads`;\n const messagesKey = (threadId: string) => `${prefix}messages:${threadId}`;\n\n const loadThreadMetadata = async (): Promise<StoredThreadMetadata[]> => {\n const raw = await storage.getItem(threadsKey);\n return parseStoredThreadMetadata(raw);\n };\n\n const saveThreadMetadata = async (\n threads: StoredThreadMetadata[],\n ): Promise<void> => {\n await storage.setItem(threadsKey, JSON.stringify(threads));\n };\n\n const adapter: RemoteThreadListAdapter = {\n unstable_Provider: createHistoryProvider(storage, prefix),\n\n async list(): Promise<RemoteThreadListResponse> {\n const threads = await loadThreadMetadata();\n return {\n threads: threads.map((t) => ({\n remoteId: t.remoteId,\n externalId: t.externalId,\n status: t.status,\n title: t.title,\n custom: t.custom,\n })),\n };\n },\n\n async initialize(\n threadId: string,\n ): Promise<RemoteThreadInitializeResponse> {\n const remoteId = threadId;\n const threads = await loadThreadMetadata();\n\n // Only add if not already present\n if (!threads.some((t) => t.remoteId === remoteId)) {\n threads.unshift({\n remoteId,\n status: \"regular\",\n });\n await saveThreadMetadata(threads);\n }\n\n return { remoteId, externalId: undefined };\n },\n\n async rename(remoteId: string, newTitle: string): Promise<void> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === remoteId);\n if (thread) {\n thread.title = newTitle;\n await saveThreadMetadata(threads);\n }\n },\n\n async updateCustom(\n remoteId: string,\n custom: Record<string, unknown> | undefined,\n ): Promise<void> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === remoteId);\n if (thread) {\n thread.custom = custom;\n await saveThreadMetadata(threads);\n }\n },\n\n async archive(remoteId: string): Promise<void> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === remoteId);\n if (thread) {\n thread.status = \"archived\";\n await saveThreadMetadata(threads);\n }\n },\n\n async unarchive(remoteId: string): Promise<void> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === remoteId);\n if (thread) {\n thread.status = \"regular\";\n await saveThreadMetadata(threads);\n }\n },\n\n async delete(remoteId: string): Promise<void> {\n const threads = await loadThreadMetadata();\n const filtered = threads.filter((t) => t.remoteId !== remoteId);\n await saveThreadMetadata(filtered);\n await storage.removeItem(messagesKey(remoteId));\n },\n\n async fetch(threadId: string): Promise<RemoteThreadMetadata> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === threadId);\n if (!thread)\n throw new Error(\n `Stored thread \"${threadId}\" not found while fetching thread metadata.`,\n );\n return {\n remoteId: thread.remoteId,\n externalId: thread.externalId,\n status: thread.status,\n title: thread.title,\n custom: thread.custom,\n };\n },\n\n async generateTitle(\n remoteId: string,\n messages: readonly ThreadMessage[],\n ): Promise<AssistantStream> {\n if (titleGenerator) {\n const title = await titleGenerator.generateTitle(messages);\n\n // Update the stored title\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === remoteId);\n if (thread) {\n thread.title = title;\n await saveThreadMetadata(threads);\n }\n\n // Return a stream with a single text part\n return createAssistantStream((controller) => {\n controller.appendText(title);\n });\n }\n\n // No title generator — return empty stream\n return createAssistantStream(() => {});\n },\n };\n\n return adapter;\n};\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { ThreadMessage } from "../../types/message.js";
2
-
3
2
  //#region src/react/adapters/TitleGenerationAdapter.d.ts
4
3
  type TitleGenerationAdapter = {
5
4
  generateTitle(messages: readonly ThreadMessage[]): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"TitleGenerationAdapter.d.ts","names":[],"sources":["../../../src/react/adapters/TitleGenerationAdapter.ts"],"mappings":";;;KAEY,sBAAA;EACV,aAAA,CAAc,QAAA,WAAmB,aAAA,KAAkB,OAAO;AAAA;AAAA,cAG/C,wBAAA,QAA+B,sBAa3C"}
1
+ {"version":3,"file":"TitleGenerationAdapter.d.ts","names":[],"sources":["../../../src/react/adapters/TitleGenerationAdapter.ts"],"mappings":";;KAEY;EACV,cAAc,mBAAmB,kBAAkB;;cAGxC,gCAA+B"}
@@ -1,5 +1,4 @@
1
1
  import { ClientOutput } from "@assistant-ui/store";
2
-
3
2
  //#region src/react/client/DataRenderers.d.ts
4
3
  declare const DataRenderers: import("@assistant-ui/tap").Resource<ClientOutput<"dataRenderers">, []>;
5
4
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"DataRenderers.d.ts","names":[],"sources":["../../../src/react/client/DataRenderers.ts"],"mappings":";;;cAmEa,aAAA,8BAAa,QAAA,CAAA,YAAA"}
1
+ {"version":3,"file":"DataRenderers.d.ts","names":[],"sources":["../../../src/react/client/DataRenderers.ts"],"mappings":";;cAmEa,2CAAa,SAAA"}
@@ -1,6 +1,5 @@
1
1
  import { Unstable_InteractablesConfig } from "../types/scopes/interactables.js";
2
2
  import { ClientOutput } from "@assistant-ui/store";
3
-
4
3
  //#region src/react/client/Interactables.d.ts
5
4
  /**
6
5
  * Registers the unstable interactables store scope.
@@ -1 +1 @@
1
- {"version":3,"file":"Interactables.d.ts","names":[],"sources":["../../../src/react/client/Interactables.ts"],"mappings":";;;;;;AA6jBA;;;cAAa,sBAAA,8BAAsB,QAAA,CAAA,YAAA,8BAAA,4BAAA"}
1
+ {"version":3,"file":"Interactables.d.ts","names":[],"sources":["../../../src/react/client/Interactables.ts"],"mappings":";;;;;;;;cA6jBa,oDAAsB,SAAA,0CAAA"}
@@ -2,10 +2,11 @@ import { McpAppResourceOutput } from "../types/scopes/tools.js";
2
2
  import { Toolkit } from "../model-context/toolbox.js";
3
3
  import { ClientOutput } from "@assistant-ui/store";
4
4
  import { ResourceElement } from "@assistant-ui/tap";
5
-
6
5
  //#region src/react/client/Tools.d.ts
7
6
  declare const Tools: import("@assistant-ui/tap").Resource<ClientOutput<"tools">, [{
8
- /** Tools to expose to the model and optional renderers to install. */toolkit?: Toolkit; /** Optional MCP app resource whose tools should be merged into context. */
7
+ /** Tools to expose to the model and optional renderers to install. */
8
+ toolkit?: Toolkit;
9
+ /** Optional MCP app resource whose tools should be merged into context. */
9
10
  mcpApp?: ResourceElement<McpAppResourceOutput> | undefined;
10
11
  }]>;
11
12
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"Tools.d.ts","names":[],"sources":["../../../src/react/client/Tools.ts"],"mappings":";;;;;;cA6Ja,KAAA,8BAAK,QAAA,CAAA,YAAA;EAAL,gFAxHD,OAAA;WAED,eAAA,CAAgB,oBAAA;AAAA"}
1
+ {"version":3,"file":"Tools.d.ts","names":[],"sources":["../../../src/react/client/Tools.ts"],"mappings":";;;;;cA6Ja,mCAAK,SAAA;;YAxHN;;WAED,gBAAgB"}
@@ -1,6 +1,5 @@
1
1
  import { Unstable_InteractableDefinition } from "../types/scopes/interactables.js";
2
2
  import { Tool, toJSONSchema } from "assistant-stream";
3
-
4
3
  //#region src/react/client/interactable-model-context.d.ts
5
4
  type PartialJSONSchema = ReturnType<typeof toJSONSchema>;
6
5
  declare function buildInteractableModelContext(definitions: Record<string, Unstable_InteractableDefinition>, partialSchemaCache: Map<string, PartialJSONSchema>, setDefState: (id: string, updater: (prev: unknown) => unknown) => void, streamBaselines?: Map<string, {
@@ -1 +1 @@
1
- {"version":3,"file":"interactable-model-context.d.ts","names":[],"sources":["../../../src/react/client/interactable-model-context.ts"],"mappings":";;;;KAWY,iBAAA,GAAoB,UAAU,QAAQ,YAAA;AAAA,iBA2HlC,6BAAA,CACd,WAAA,EAAa,MAAA,SAAe,+BAAA,GAC5B,kBAAA,EAAoB,GAAA,SAAY,iBAAA,GAChC,WAAA,GAAc,EAAA,UAAY,OAAA,GAAU,IAAA,gCACpC,eAAA,GAAe,GAAA;;;;EAGX,KAAA,EAAO,MAAA,SAAe,IAAA;EACtB,yBAAA,GAA4B,MAAA;AAAA"}
1
+ {"version":3,"file":"interactable-model-context.d.ts","names":[],"sources":["../../../src/react/client/interactable-model-context.ts"],"mappings":";;;KAWY,oBAAoB,kBAAkB;iBA2HlC,8BACd,aAAa,eAAe,kCAC5B,oBAAoB,YAAY,oBAChC,cAAc,YAAY,UAAU,oCACpC,kBAAe;;;;EAGX,OAAO,eAAe;EACtB,4BAA4B"}
@@ -30,7 +30,7 @@ import { externalTool } from "./model-context/external-tool.js";
30
30
  import { useAuiToolOverrides } from "./model-context/useAuiToolOverrides.js";
31
31
  import { hitl, hitlTool, humanTool } from "./model-context/human-tool.js";
32
32
  import { ProviderToolConfig, providerTool } from "./model-context/provider-tool.js";
33
- import { McpToolkitDefinition, defineMcpToolkit } from "./model-context/define-mcp-toolkit.js";
33
+ import { McpToolkitDefinition, McpToolkitEntry, McpToolkitToolConfig, defineMcpToolkit } from "./model-context/define-mcp-toolkit.js";
34
34
  import { InteractableDefinition, InteractablePersistedState, InteractablePersistenceAdapter, InteractablePersistenceStatus, InteractableRegistration, InteractableStateSchema, InteractablesClientSchema, InteractablesMethods, InteractablesState } from "./interactables-legacy/scopes.js";
35
35
  import { AssistantInteractableProps, useAssistantInteractable } from "./interactables-legacy/useAssistantInteractable.js";
36
36
  import { useInteractableState } from "./interactables-legacy/useInteractableState.js";
@@ -111,4 +111,4 @@ import { useEditComposerCancel } from "./primitive-hooks/useEditComposerCancel.j
111
111
  import { useEditComposerSend } from "./primitive-hooks/useEditComposerSend.js";
112
112
  import { useMessageError } from "./primitive-hooks/useMessageError.js";
113
113
  import { LocalRuntimeOptions, splitLocalRuntimeOptions, useLocalRuntime } from "./runtimes/useLocalRuntime.js";
114
- export { type AssistantContextConfig, type AssistantDataUI, type AssistantDataUIProps, type AssistantInteractableProps, AssistantProviderBase, type AssistantProviderBaseProps, AssistantRuntimeProvider, type AssistantTool, type AssistantToolProps, type AssistantToolUI, type AssistantToolUIProps, type AsyncStorageLike, ChainOfThoughtByIndicesProvider, ChainOfThoughtPartByIndexProvider, ChainOfThoughtPrimitiveParts, CloudFileAttachmentAdapter, ComposerAttachmentByIndexProvider, ComposerPrimitiveAttachmentByIndex, ComposerPrimitiveAttachments, ComposerPrimitiveIf, ComposerPrimitiveQueue, type DataMessagePartComponent, type DataMessagePartProps, DataRenderers, type DataRenderersClientSchema, type DataRenderersMethods, type DataRenderersState, type EmptyMessagePartComponent, type EmptyMessagePartProps, type EnrichedPartState, type FileMessagePartComponent, type FileMessagePartProps, type GenerativeUIComponentRegistry, type GenerativeUIMessagePartComponent, type GenerativeUIMessagePartProps, GenerativeUIRender, GenerativeUIRenderError, type GenerativeUIRenderProps, type GroupByContext, type ImageMessagePartComponent, type ImageMessagePartProps, type InteractableDefinition, type InteractablePersistedState, type InteractablePersistenceAdapter, type InteractablePersistenceStatus, type InteractableRegistration, type InteractableStateSchema, Interactables, type InteractablesClientSchema, type InteractablesMethods, type InteractablesState, type JoinStrategy, type LocalRuntimeOptions, type McpAppResourceOutput, type McpToolkitDefinition, MessageAttachmentByIndexProvider, MessageByIndexProvider, MessagePartComponent, MessagePartPrimitiveInProgress, MessagePrimitiveAttachmentByIndex, MessagePrimitiveAttachments, MessagePrimitiveGenerativeUI, MessagePrimitiveGroupedParts, MessagePrimitivePartByIndex, MessagePrimitiveParts, MessagePrimitiveQuote, PartByIndexProvider, PartPrimitiveMessages, PartPrimitiveMessagesImpl, type PartState, type ProviderToolConfig, QueueItemByIndexProvider, type QueueItemByIndexProviderProps, type QuoteMessagePartComponent, type QuoteMessagePartProps, ReadonlyThreadProvider, type ReasoningGroupComponent, type ReasoningGroupProps, type ReasoningMessagePartComponent, type ReasoningMessagePartProps, RemoteThreadListHookInstanceManager, RemoteThreadListThreadListRuntimeCore, RuntimeAdapter, RuntimeAdapterProvider, type RuntimeAdapters, type SourceMessagePartComponent, type SourceMessagePartProps, type StreamingTimingAccessors, type StreamingTimingOptions, type StreamingTimingState, SuggestionByIndexProvider, type SuggestionByIndexProviderProps, type TextMessagePartComponent, type TextMessagePartProps, TextMessagePartProvider, ThreadListItemByIndexProvider, ThreadListItemPrimitiveTitle, ThreadListItemRuntimeProvider, ThreadListPrimitiveItemByIndex, ThreadListPrimitiveItems, ThreadPrimitiveMessageByIndex, ThreadPrimitiveMessages, ThreadPrimitiveMessagesImpl, ThreadPrimitiveSuggestionByIndex, ThreadPrimitiveSuggestions, ThreadPrimitiveSuggestionsImpl, ThreadPrimitiveUnstable_MessageById, type TitleGenerationAdapter, type ToolArgsStatus, type ToolCallMessagePartComponent, type ToolCallMessagePartProps, type ToolCallText, type ToolDefinition, type Toolkit, type ToolkitDefinition, type ToolkitDefinitionEntry, Tools, type ToolsClientSchema, type ToolsMethods, type ToolsState, type Unstable_AudioMessagePartComponent, type Unstable_AudioMessagePartProps, type Unstable_InferInteractableState, type Unstable_InteractableConfig, type Unstable_InteractableDefinition, type Unstable_InteractablePersistedState, type Unstable_InteractablePersistenceAdapter, type Unstable_InteractablePersistenceStatus, type Unstable_InteractableRegistration, type Unstable_InteractableStateSchema, type Unstable_InteractableToolConfig, type Unstable_InteractableToolRenderProps, type Unstable_InteractableVersionInfo, type Unstable_InteractablesClientSchema, type Unstable_InteractablesConfig, type Unstable_InteractablesMethods, type Unstable_InteractablesState, type UseActionBarCopyOptions, type UseComposerIfProps, type UseSuggestionTriggerOptions, convertExternalMessages, createLocalStorageAdapter, createMessageConverter, createSimpleTitleAdapter, defineMcpToolkit, defineToolkit, externalTool, getMessageQuote, getRenderComponent, groupPartByType, hitl, hitlTool, humanTool, makeAssistantDataUI, makeAssistantTool, makeAssistantToolUI, defaultComponents as messagePartsDefaultComponents, providerTool, splitLocalRuntimeOptions, stubTool, unstable_Interactables, unstable_interactableTool, unstable_useInteractable, unstable_useInteractableState, unstable_useInteractableVersions, unstable_useThreadMessageIds, useActionBarCopy, useActionBarEdit, useActionBarFeedbackNegative, useActionBarFeedbackPositive, useActionBarReload, useActionBarSpeak, useActionBarStopSpeaking, useAssistantCloudThreadHistoryAdapter, useAssistantContext, useAssistantDataUI, useAssistantInstructions, useAssistantInteractable, useAssistantTool, useAssistantToolUI, useAuiToolOverrides, useBranchPickerNext, useBranchPickerPrevious, useCloudThreadListAdapter, useComposerAddAttachment, useComposerCancel, useComposerDictate, useComposerSend, useEditComposerCancel, useEditComposerSend, useExternalMessageConverter, useExternalStoreRuntime, useExternalStoreSharedOptions, useInlineRender, useInteractableState, useLocalRuntime, useMessageBranching, useMessageError, useMessageReload, useRemoteThreadListRuntime, useRuntimeAdapters, useStreamingTiming, useSuggestionTrigger, useThreadIsEmpty, useThreadIsRunning, useThreadListItemArchive, useThreadListItemDelete, useThreadListItemTrigger, useThreadListItemUnarchive, useThreadListLoadMore, useThreadListNew, useThreadMessages, useToolArgsStatus, useVoiceControls, useVoiceState, useVoiceVolume };
114
+ export { type AssistantContextConfig, type AssistantDataUI, type AssistantDataUIProps, type AssistantInteractableProps, AssistantProviderBase, type AssistantProviderBaseProps, AssistantRuntimeProvider, type AssistantTool, type AssistantToolProps, type AssistantToolUI, type AssistantToolUIProps, type AsyncStorageLike, ChainOfThoughtByIndicesProvider, ChainOfThoughtPartByIndexProvider, ChainOfThoughtPrimitiveParts, CloudFileAttachmentAdapter, ComposerAttachmentByIndexProvider, ComposerPrimitiveAttachmentByIndex, ComposerPrimitiveAttachments, ComposerPrimitiveIf, ComposerPrimitiveQueue, type DataMessagePartComponent, type DataMessagePartProps, DataRenderers, type DataRenderersClientSchema, type DataRenderersMethods, type DataRenderersState, type EmptyMessagePartComponent, type EmptyMessagePartProps, type EnrichedPartState, type FileMessagePartComponent, type FileMessagePartProps, type GenerativeUIComponentRegistry, type GenerativeUIMessagePartComponent, type GenerativeUIMessagePartProps, GenerativeUIRender, GenerativeUIRenderError, type GenerativeUIRenderProps, type GroupByContext, type ImageMessagePartComponent, type ImageMessagePartProps, type InteractableDefinition, type InteractablePersistedState, type InteractablePersistenceAdapter, type InteractablePersistenceStatus, type InteractableRegistration, type InteractableStateSchema, Interactables, type InteractablesClientSchema, type InteractablesMethods, type InteractablesState, type JoinStrategy, type LocalRuntimeOptions, type McpAppResourceOutput, type McpToolkitDefinition, type McpToolkitEntry, type McpToolkitToolConfig, MessageAttachmentByIndexProvider, MessageByIndexProvider, MessagePartComponent, MessagePartPrimitiveInProgress, MessagePrimitiveAttachmentByIndex, MessagePrimitiveAttachments, MessagePrimitiveGenerativeUI, MessagePrimitiveGroupedParts, MessagePrimitivePartByIndex, MessagePrimitiveParts, MessagePrimitiveQuote, PartByIndexProvider, PartPrimitiveMessages, PartPrimitiveMessagesImpl, type PartState, type ProviderToolConfig, QueueItemByIndexProvider, type QueueItemByIndexProviderProps, type QuoteMessagePartComponent, type QuoteMessagePartProps, ReadonlyThreadProvider, type ReasoningGroupComponent, type ReasoningGroupProps, type ReasoningMessagePartComponent, type ReasoningMessagePartProps, RemoteThreadListHookInstanceManager, RemoteThreadListThreadListRuntimeCore, RuntimeAdapter, RuntimeAdapterProvider, type RuntimeAdapters, type SourceMessagePartComponent, type SourceMessagePartProps, type StreamingTimingAccessors, type StreamingTimingOptions, type StreamingTimingState, SuggestionByIndexProvider, type SuggestionByIndexProviderProps, type TextMessagePartComponent, type TextMessagePartProps, TextMessagePartProvider, ThreadListItemByIndexProvider, ThreadListItemPrimitiveTitle, ThreadListItemRuntimeProvider, ThreadListPrimitiveItemByIndex, ThreadListPrimitiveItems, ThreadPrimitiveMessageByIndex, ThreadPrimitiveMessages, ThreadPrimitiveMessagesImpl, ThreadPrimitiveSuggestionByIndex, ThreadPrimitiveSuggestions, ThreadPrimitiveSuggestionsImpl, ThreadPrimitiveUnstable_MessageById, type TitleGenerationAdapter, type ToolArgsStatus, type ToolCallMessagePartComponent, type ToolCallMessagePartProps, type ToolCallText, type ToolDefinition, type Toolkit, type ToolkitDefinition, type ToolkitDefinitionEntry, Tools, type ToolsClientSchema, type ToolsMethods, type ToolsState, type Unstable_AudioMessagePartComponent, type Unstable_AudioMessagePartProps, type Unstable_InferInteractableState, type Unstable_InteractableConfig, type Unstable_InteractableDefinition, type Unstable_InteractablePersistedState, type Unstable_InteractablePersistenceAdapter, type Unstable_InteractablePersistenceStatus, type Unstable_InteractableRegistration, type Unstable_InteractableStateSchema, type Unstable_InteractableToolConfig, type Unstable_InteractableToolRenderProps, type Unstable_InteractableVersionInfo, type Unstable_InteractablesClientSchema, type Unstable_InteractablesConfig, type Unstable_InteractablesMethods, type Unstable_InteractablesState, type UseActionBarCopyOptions, type UseComposerIfProps, type UseSuggestionTriggerOptions, convertExternalMessages, createLocalStorageAdapter, createMessageConverter, createSimpleTitleAdapter, defineMcpToolkit, defineToolkit, externalTool, getMessageQuote, getRenderComponent, groupPartByType, hitl, hitlTool, humanTool, makeAssistantDataUI, makeAssistantTool, makeAssistantToolUI, defaultComponents as messagePartsDefaultComponents, providerTool, splitLocalRuntimeOptions, stubTool, unstable_Interactables, unstable_interactableTool, unstable_useInteractable, unstable_useInteractableState, unstable_useInteractableVersions, unstable_useThreadMessageIds, useActionBarCopy, useActionBarEdit, useActionBarFeedbackNegative, useActionBarFeedbackPositive, useActionBarReload, useActionBarSpeak, useActionBarStopSpeaking, useAssistantCloudThreadHistoryAdapter, useAssistantContext, useAssistantDataUI, useAssistantInstructions, useAssistantInteractable, useAssistantTool, useAssistantToolUI, useAuiToolOverrides, useBranchPickerNext, useBranchPickerPrevious, useCloudThreadListAdapter, useComposerAddAttachment, useComposerCancel, useComposerDictate, useComposerSend, useEditComposerCancel, useEditComposerSend, useExternalMessageConverter, useExternalStoreRuntime, useExternalStoreSharedOptions, useInlineRender, useInteractableState, useLocalRuntime, useMessageBranching, useMessageError, useMessageReload, useRemoteThreadListRuntime, useRuntimeAdapters, useStreamingTiming, useSuggestionTrigger, useThreadIsEmpty, useThreadIsRunning, useThreadListItemArchive, useThreadListItemDelete, useThreadListItemTrigger, useThreadListItemUnarchive, useThreadListLoadMore, useThreadListNew, useThreadMessages, useToolArgsStatus, useVoiceControls, useVoiceState, useVoiceVolume };
@@ -1,5 +1,4 @@
1
1
  import { ClientOutput } from "@assistant-ui/store";
2
-
3
2
  //#region src/react/interactables-legacy/Interactables.d.ts
4
3
  /**
5
4
  * @deprecated Since 2026-06-14 — migrate to the Unstable / Experimental API.
@@ -1 +1 @@
1
- {"version":3,"file":"Interactables.d.ts","names":[],"sources":["../../../src/react/interactables-legacy/Interactables.ts"],"mappings":";;;;;AAqUA;;;cAAa,aAAA,8BAAa,QAAA,CAAA,YAAA"}
1
+ {"version":3,"file":"Interactables.d.ts","names":[],"sources":["../../../src/react/interactables-legacy/Interactables.ts"],"mappings":";;;;;;;cAqUa,2CAAa,SAAA"}
@@ -1,6 +1,5 @@
1
1
  import { InteractableDefinition, InteractableStateSchema } from "./scopes.js";
2
2
  import { Tool } from "assistant-stream";
3
-
4
3
  //#region src/react/interactables-legacy/interactable-model-context.d.ts
5
4
  declare function shallowMerge(prev: unknown, partial: unknown): unknown;
6
5
  declare function buildInteractableModelContext(definitions: Record<string, InteractableDefinition>, partialSchemaCache: Map<string, InteractableStateSchema>, setDefState: (id: string, updater: (prev: unknown) => unknown) => void): {
@@ -1 +1 @@
1
- {"version":3,"file":"interactable-model-context.d.ts","names":[],"sources":["../../../src/react/interactables-legacy/interactable-model-context.ts"],"mappings":";;;;iBAGgB,YAAA,CAAa,IAAA,WAAe,OAAgB;AAAA,iBAiB5C,6BAAA,CACd,WAAA,EAAa,MAAA,SAAe,sBAAA,GAC5B,kBAAA,EAAoB,GAAA,SAAY,uBAAA,GAChC,WAAA,GAAc,EAAA,UAAY,OAAA,GAAU,IAAA;EACjC,MAAA;EAAgB,KAAA,EAAO,MAAA,SAAe,IAAA;AAAA"}
1
+ {"version":3,"file":"interactable-model-context.d.ts","names":[],"sources":["../../../src/react/interactables-legacy/interactable-model-context.ts"],"mappings":";;;iBAGgB,aAAa,eAAe;iBAiB5B,8BACd,aAAa,eAAe,yBAC5B,oBAAoB,YAAY,0BAChC,cAAc,YAAY,UAAU;EACjC;EAAgB,OAAO,eAAe"}
@@ -1,6 +1,6 @@
1
1
  import { Unsubscribe } from "../../types/unsubscribe.js";
2
+ import "../../index.js";
2
3
  import { Tool } from "assistant-stream";
3
-
4
4
  //#region src/react/interactables-legacy/scopes.d.ts
5
5
  /**
6
6
  * Schema type matching Tool["parameters"] from assistant-stream.
@@ -30,7 +30,9 @@ type InteractablePersistenceStatus = {
30
30
  error: unknown;
31
31
  };
32
32
  type InteractablesState = {
33
- /** Keyed by instance id */definitions: Record<string, InteractableDefinition>; /** Per-id persistence sync status */
33
+ /** Keyed by instance id */
34
+ definitions: Record<string, InteractableDefinition>;
35
+ /** Per-id persistence sync status */
34
36
  persistence: Record<string, InteractablePersistenceStatus>;
35
37
  };
36
38
  type InteractablePersistedState = Record<string, {
@@ -1 +1 @@
1
- {"version":3,"file":"scopes.d.ts","names":[],"sources":["../../../src/react/interactables-legacy/scopes.ts"],"mappings":";;;;;;;AAOA;KAAY,uBAAA,GAA0B,WAAA,CACpC,OAAA,CAAQ,IAAA;EAAQ,UAAA;AAAA;AAAA,KAGN,sBAAA;EACV,EAAA;EACA,IAAA;EACA,WAAA;EACA,WAAA,EAAa,uBAAuB;EACpC,KAAA;EACA,QAAA;AAAA;AAAA,KAGU,wBAAA;EACV,EAAA;EACA,IAAA;EACA,WAAA;EACA,WAAA,EAAa,uBAAuB;EACpC,YAAA;EACA,QAAA;AAAA;AAAA,KAGU,6BAAA;EACV,SAAA;EACA,KAAK;AAAA;AAAA,KAGK,kBAAA;EAjBF,2BAmBR,WAAA,EAAa,MAAA,SAAe,sBAAA,GAhBlB;EAkBV,WAAA,EAAa,MAAA,SAAe,6BAAA;AAAA;AAAA,KAGlB,0BAAA,GAA6B,MAAM;EAE3C,IAAA;EAAc,KAAA;AAAA;AAAA,KAGN,8BAAA;EACV,IAAA,CAAK,KAAA,EAAO,0BAAA,UAAoC,OAAO;AAAA;AAAA,KAG7C,oBAAA;EACV,QAAA,IAAY,kBAAA;EACZ,QAAA,CAAS,GAAA,EAAK,wBAAA,GAA2B,WAAA;EACzC,QAAA,CAAS,EAAA,UAAY,OAAA,GAAU,IAAA;EAC/B,WAAA,CAAY,EAAA,UAAY,QAAA;EACxB,WAAA,IAAe,0BAAA;EACf,WAAA,CAAY,KAAA,EAAO,0BAAA;EACnB,qBAAA,CACE,OAAA,EAAS,8BAAA;EAEX,KAAA,IAAS,OAAA;AAAA;AAAA,KAGC,yBAAA;EACV,OAAA,EAAS,oBAAoB;AAAA"}
1
+ {"version":3,"file":"scopes.d.ts","names":[],"sources":["../../../src/react/interactables-legacy/scopes.ts"],"mappings":";;;;;;;;KAOY,0BAA0B,YACpC,QAAQ;EAAQ;;KAGN;EACV;EACA;EACA;EACA,aAAa;EACb;EACA;;KAGU;EACV;EACA;EACA;EACA,aAAa;EACb;EACA;;KAGU;EACV;EACA;;KAGU;;EAEV,aAAa,eAAe;;EAE5B,aAAa,eAAe;;KAGlB,6BAA6B;EAErC;EAAc;;KAGN;EACV,KAAK,OAAO,oCAAoC;;KAGtC;EACV,YAAY;EACZ,SAAS,KAAK,2BAA2B;EACzC,SAAS,YAAY,UAAU;EAC/B,YAAY,YAAY;EACxB,eAAe;EACf,YAAY,OAAO;EACnB,sBACE,SAAS;EAEX,SAAS;;KAGC;EACV,SAAS"}
@@ -1,5 +1,4 @@
1
1
  import { InteractableStateSchema } from "./scopes.js";
2
-
3
2
  //#region src/react/interactables-legacy/useAssistantInteractable.d.ts
4
3
  /**
5
4
  * @deprecated Since 2026-06-14 — migrate to the Unstable / Experimental API.
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantInteractable.d.ts","names":[],"sources":["../../../src/react/interactables-legacy/useAssistantInteractable.ts"],"mappings":";;;;;AASA;;;KAAY,0BAAA;EACV,WAAA;EACA,WAAA,EAAa,uBAAuB;EACpC,YAAA;EACA,EAAA;EACA,QAAA;AAAA;;AAAQ;AAeV;;;;;;;;AAEoC;;cAFvB,wBAAA,GACX,IAAA,UACA,MAAA,EAAQ,0BAA0B"}
1
+ {"version":3,"file":"useAssistantInteractable.d.ts","names":[],"sources":["../../../src/react/interactables-legacy/useAssistantInteractable.ts"],"mappings":";;;;;;;KASY;EACV;EACA,aAAa;EACb;EACA;EACA;;;;;;;;;;;;;;cAeW,2BACX,cACA,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"useInteractableState.d.ts","names":[],"sources":["../../../src/react/interactables-legacy/useInteractableState.ts"],"mappings":";KAGK,YAAA,WAAuB,MAAA,KAAW,IAAA,EAAM,MAAA,KAAW,MAAA;;;;;;;;;;cAW3C,oBAAA,WACX,EAAA,UACA,QAAA,EAAU,MAAA,MAEV,MAAA;EAEE,QAAA,GAAW,OAAA,EAAS,YAAA,CAAa,MAAA;EACjC,WAAA,GAAc,QAAA;EACd,SAAA;EACA,KAAA;EACA,KAAA,QAAa,OAAA;AAAA"}
1
+ {"version":3,"file":"useInteractableState.d.ts","names":[],"sources":["../../../src/react/interactables-legacy/useInteractableState.ts"],"mappings":";KAGK,aAAa,UAAU,WAAW,MAAM,WAAW;;;;;;;;;;cAW3C,uBAAwB,QACnC,YACA,UAAU,YAEV;EAEE,WAAW,SAAS,aAAa;EACjC,cAAc;EACd;EACA;EACA,aAAa"}
@@ -1,12 +1,27 @@
1
1
  import { Toolkit } from "./toolbox.js";
2
2
  import { McpServerConfig } from "assistant-stream";
3
-
4
3
  //#region src/react/model-context/define-mcp-toolkit.d.ts
5
- type McpToolkitDefinition = Record<string, McpServerConfig>;
4
+ type McpToolkitEntry = McpServerConfig | {
5
+ server: McpServerConfig;
6
+ disabled?: boolean | undefined;
7
+ /**
8
+ * Prefix applied to every tool name exposed by this MCP server. Useful
9
+ * when multiple servers publish the same tool name, such as `search`.
10
+ */
11
+ prefix?: string | undefined;
12
+ tools?: Record<string, McpToolkitToolConfig> | undefined;
13
+ };
14
+ type McpToolkitToolConfig = {
15
+ disabled?: boolean | undefined;
16
+ };
17
+ type McpToolkitDefinition = Record<string, McpToolkitEntry>;
6
18
  /**
7
- * Defines MCP server tools as a spreadable toolkit fragment.
19
+ * Defines MCP server tools as a spreadable toolkit fragment. Pass a raw
20
+ * `McpServerConfig` for always-on servers, or `{ server, disabled, tools }`
21
+ * when a server should stay configured but not expose all tools for the current
22
+ * request.
8
23
  */
9
24
  declare function defineMcpToolkit(definition: McpToolkitDefinition): Toolkit;
10
25
  //#endregion
11
- export { McpToolkitDefinition, defineMcpToolkit };
26
+ export { McpToolkitDefinition, McpToolkitEntry, McpToolkitToolConfig, defineMcpToolkit };
12
27
  //# sourceMappingURL=define-mcp-toolkit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-mcp-toolkit.d.ts","names":[],"sources":["../../../src/react/model-context/define-mcp-toolkit.ts"],"mappings":";;;;KAGY,oBAAA,GAAuB,MAAM,SAAS,eAAA;;AAAlD;;iBAKgB,gBAAA,CAAiB,UAAA,EAAY,oBAAA,GAAuB,OAAO"}
1
+ {"version":3,"file":"define-mcp-toolkit.d.ts","names":[],"sources":["../../../src/react/model-context/define-mcp-toolkit.ts"],"mappings":";;;KAGY,kBACR;EAEE,QAAQ;EACR;;;;;EAKA;EACA,QAAQ,eAAe;;KAGjB;EACV;;KAGU,uBAAuB,eAAe;;;;;;;iBAQlC,iBAAiB,YAAY,uBAAuB"}
@@ -1,12 +1,24 @@
1
1
  //#region src/react/model-context/define-mcp-toolkit.ts
2
2
  /**
3
- * Defines MCP server tools as a spreadable toolkit fragment.
3
+ * Defines MCP server tools as a spreadable toolkit fragment. Pass a raw
4
+ * `McpServerConfig` for always-on servers, or `{ server, disabled, tools }`
5
+ * when a server should stay configured but not expose all tools for the current
6
+ * request.
4
7
  */
5
8
  function defineMcpToolkit(definition) {
6
- return Object.fromEntries(Object.entries(definition).map(([name, server]) => [name, {
7
- type: "mcp",
8
- server
9
- }]));
9
+ return Object.fromEntries(Object.entries(definition).map(([name, entry]) => {
10
+ const server = "server" in entry ? entry.server : entry;
11
+ const disabled = "server" in entry ? entry.disabled : void 0;
12
+ const prefix = "server" in entry ? entry.prefix : void 0;
13
+ const tools = "server" in entry ? entry.tools : void 0;
14
+ return [name, {
15
+ type: "mcp",
16
+ server,
17
+ ...disabled !== void 0 && { disabled },
18
+ ...prefix !== void 0 && { prefix },
19
+ ...tools !== void 0 && { tools }
20
+ }];
21
+ }));
10
22
  }
11
23
  //#endregion
12
24
  export { defineMcpToolkit };
@@ -1 +1 @@
1
- {"version":3,"file":"define-mcp-toolkit.js","names":["McpServerConfig","Toolkit","McpToolkitDefinition","Record","defineMcpToolkit","definition","Object","fromEntries","entries","map","name","server","type"],"sources":["../../../src/react/model-context/define-mcp-toolkit.ts"],"sourcesContent":["import type { McpServerConfig } from \"assistant-stream\";\nimport type { Toolkit } from \"./toolbox\";\n\nexport type McpToolkitDefinition = Record<string, McpServerConfig>;\n\n/**\n * Defines MCP server tools as a spreadable toolkit fragment.\n */\nexport function defineMcpToolkit(definition: McpToolkitDefinition): Toolkit {\n return Object.fromEntries(\n Object.entries(definition).map(([name, server]) => [\n name,\n { type: \"mcp\", server },\n ]),\n ) as Toolkit;\n}\n"],"mappings":";;;;AAQA,SAAgBI,iBAAiBC,YAA2C;CAC1E,OAAOC,OAAOC,YACZD,OAAOE,QAAQH,UAAU,CAAC,CAACI,KAAK,CAACC,MAAMC,YAAY,CACjDD,MACA;EAAEE,MAAM;EAAOD;CAAO,CAAC,CACxB,CACH;AACF"}
1
+ {"version":3,"file":"define-mcp-toolkit.js","names":["McpServerConfig","Toolkit","McpToolkitEntry","server","disabled","prefix","tools","Record","McpToolkitToolConfig","McpToolkitDefinition","defineMcpToolkit","definition","Object","fromEntries","entries","map","name","entry","undefined","type"],"sources":["../../../src/react/model-context/define-mcp-toolkit.ts"],"sourcesContent":["import type { McpServerConfig } from \"assistant-stream\";\nimport type { Toolkit } from \"./toolbox\";\n\nexport type McpToolkitEntry =\n | McpServerConfig\n | {\n server: McpServerConfig;\n disabled?: boolean | undefined;\n /**\n * Prefix applied to every tool name exposed by this MCP server. Useful\n * when multiple servers publish the same tool name, such as `search`.\n */\n prefix?: string | undefined;\n tools?: Record<string, McpToolkitToolConfig> | undefined;\n };\n\nexport type McpToolkitToolConfig = {\n disabled?: boolean | undefined;\n};\n\nexport type McpToolkitDefinition = Record<string, McpToolkitEntry>;\n\n/**\n * Defines MCP server tools as a spreadable toolkit fragment. Pass a raw\n * `McpServerConfig` for always-on servers, or `{ server, disabled, tools }`\n * when a server should stay configured but not expose all tools for the current\n * request.\n */\nexport function defineMcpToolkit(definition: McpToolkitDefinition): Toolkit {\n return Object.fromEntries(\n Object.entries(definition).map(([name, entry]) => {\n const server = \"server\" in entry ? entry.server : entry;\n const disabled = \"server\" in entry ? entry.disabled : undefined;\n const prefix = \"server\" in entry ? entry.prefix : undefined;\n const tools = \"server\" in entry ? entry.tools : undefined;\n\n return [\n name,\n {\n type: \"mcp\",\n server,\n ...(disabled !== undefined && { disabled }),\n ...(prefix !== undefined && { prefix }),\n ...(tools !== undefined && { tools }),\n },\n ];\n }),\n ) as Toolkit;\n}\n"],"mappings":";;;;;;;AA4BA,SAAgBU,iBAAiBC,YAA2C;CAC1E,OAAOC,OAAOC,YACZD,OAAOE,QAAQH,UAAU,CAAC,CAACI,KAAK,CAACC,MAAMC,WAAW;EAChD,MAAMd,SAAS,YAAYc,QAAQA,MAAMd,SAASc;EAClD,MAAMb,WAAW,YAAYa,QAAQA,MAAMb,WAAWc,KAAAA;EACtD,MAAMb,SAAS,YAAYY,QAAQA,MAAMZ,SAASa,KAAAA;EAClD,MAAMZ,QAAQ,YAAYW,QAAQA,MAAMX,QAAQY,KAAAA;EAEhD,OAAO,CACLF,MACA;GACEG,MAAM;GACNhB;GACA,GAAIC,aAAac,KAAAA,KAAa,EAAEd,SAAS;GACzC,GAAIC,WAAWa,KAAAA,KAAa,EAAEb,OAAO;GACrC,GAAIC,UAAUY,KAAAA,KAAa,EAAEZ,MAAM;EACrC,CAAC;CAEL,CAAC,CACH;AACF"}
@@ -1,5 +1,4 @@
1
1
  import { Toolkit, ToolkitDefinition, ToolkitDefinitionEntryWithParameters } from "./toolbox.js";
2
-
3
2
  //#region src/react/model-context/define-toolkit.d.ts
4
3
  /**
5
4
  * Toolkit authoring helper. Accepts the permissive {@link ToolkitDefinition}
@@ -11,7 +10,7 @@ import { Toolkit, ToolkitDefinition, ToolkitDefinitionEntryWithParameters } from
11
10
  * Outside generative compilation, it returns the toolkit unchanged and can be
12
11
  * used for plain frontend/backend/human toolkit objects.
13
12
  */
14
- declare function defineToolkit<TArgsByName extends { [K in keyof TArgsByName]: Record<string, unknown> }, TResultByName extends { [K in keyof TArgsByName]: unknown } = { [K in keyof TArgsByName]: any }>(_definition: { [K in keyof TArgsByName]: ToolkitDefinitionEntryWithParameters<TArgsByName[K], TResultByName[K]> }): Toolkit & { [K in keyof TArgsByName]: ToolkitDefinitionEntryWithParameters<TArgsByName[K], TResultByName[K]> };
13
+ declare function defineToolkit<TArgsByName extends { [K in keyof TArgsByName]: Record<string, unknown>; }, TResultByName extends { [K in keyof TArgsByName]: unknown; } = { [K in keyof TArgsByName]: any; }>(_definition: { [K in keyof TArgsByName]: ToolkitDefinitionEntryWithParameters<TArgsByName[K], TResultByName[K]>; }): Toolkit & { [K in keyof TArgsByName]: ToolkitDefinitionEntryWithParameters<TArgsByName[K], TResultByName[K]>; };
15
14
  declare function defineToolkit<const TDefinition extends ToolkitDefinition>(_definition: TDefinition): Toolkit & TDefinition;
16
15
  //#endregion
17
16
  export { defineToolkit };
@@ -1 +1 @@
1
- {"version":3,"file":"define-toolkit.d.ts","names":[],"sources":["../../../src/react/model-context/define-toolkit.ts"],"mappings":";;;;;AAgBA;;;;;;;;iBAAgB,aAAA,mCAEA,WAAA,GAAc,MAAA,yDAEQ,WAAA,6BACtB,WAAA,UAEd,WAAA,gBACY,WAAA,GAAc,oCAAA,CACxB,WAAA,CAAY,CAAA,GACZ,aAAA,CAAc,CAAA,OAEd,OAAA,iBACU,WAAA,GAAc,oCAAA,CACxB,WAAA,CAAY,CAAA,GACZ,aAAA,CAAc,CAAA;AAAA,iBAGF,aAAA,2BAAwC,iBAAA,EACtD,WAAA,EAAa,WAAA,GACZ,OAAA,GAAU,WAAA"}
1
+ {"version":3,"file":"define-toolkit.d.ts","names":[],"sources":["../../../src/react/model-context/define-toolkit.ts"],"mappings":";;;;;;;;;;;;iBAgBgB,cACd,uBACG,WAAW,cAAc,4BAE5B,yBAAyB,WAAW,8BACjC,WAAW,sBAEd,gBACC,WAAW,cAAc,qCACxB,YAAY,IACZ,cAAc,SAEd,aACD,WAAW,cAAc,qCACxB,YAAY,IACZ,cAAc;iBAGF,oBAAoB,oBAAoB,mBACtD,aAAa,cACZ,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"external-tool.d.ts","names":[],"sources":["../../../src/react/model-context/external-tool.ts"],"mappings":";;AASA;;;;AAA4B;;;;iBAAZ,YAAA"}
1
+ {"version":3,"file":"external-tool.d.ts","names":[],"sources":["../../../src/react/model-context/external-tool.ts"],"mappings":";;;;;;;;;;iBASgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"human-tool.d.ts","names":[],"sources":["../../../src/react/model-context/human-tool.ts"],"mappings":";;AAcA;;;;AAAyB;AAYzB;;;;AAAiC;AAKjC;;;iBAjBgB,SAAA;AAiBa;;;AAAA,cALhB,QAAA,SAAQ,SAAY;;;;cAKpB,IAAA,SAAI,SAAY"}
1
+ {"version":3,"file":"human-tool.d.ts","names":[],"sources":["../../../src/react/model-context/human-tool.ts"],"mappings":";;;;;;;;;;;;;;;iBAcgB;;;;cAYH,iBAAQ;;;;cAKR,aAAI"}
@@ -2,7 +2,6 @@ import { Unstable_InteractableStateSchema } from "../types/scopes/interactables.
2
2
  import { ToolDefinition } from "./toolbox.js";
3
3
  import { Unstable_InferInteractableState, Unstable_InteractableVersionInfo } from "./useInteractable.js";
4
4
  import { ReactNode } from "react";
5
-
6
5
  //#region src/react/model-context/interactableTool.d.ts
7
6
  type Unstable_InteractableToolRenderProps<TState> = {
8
7
  /**
@@ -17,7 +16,8 @@ type Unstable_InteractableToolRenderProps<TState> = {
17
16
  * to it. `undefined` while streaming.
18
17
  */
19
18
  version: Unstable_InteractableVersionInfo<TState> | undefined;
20
- id: string; /** True while the tool call's arguments are still streaming in. */
19
+ id: string;
20
+ /** True while the tool call's arguments are still streaming in. */
21
21
  streaming: boolean;
22
22
  };
23
23
  type Unstable_InteractableToolConfig<TSchema extends Unstable_InteractableStateSchema> = {
@@ -1 +1 @@
1
- {"version":3,"file":"interactableTool.d.ts","names":[],"sources":["../../../src/react/model-context/interactableTool.tsx"],"mappings":";;;;;;KAWY,oCAAA;;AAAZ;;;EAKE,KAAA,EAAO,MAAA;EACP,QAAA,GAAW,OAAA,EAAS,MAAA,KAAW,IAAA,EAAM,MAAA,KAAW,MAAA;EAAX;;;;;EAMrC,OAAA,EAAS,gCAAA,CAAiC,MAAA;EAC1C,EAAA,UARA;EAUA,SAAA;AAAA;AAAA,KAGU,+BAAA,iBACM,gCAAA;EAEhB,WAAA;EACA,WAAA,EAAa,OAAA;EACb,MAAA,GACE,KAAA,EAAO,oCAAA,CACL,+BAAA,CAAgC,OAAA,OAE/B,SAAA;AAAA;;;;;;;AAZI;AAGX;;;;;;;;;;;;;cAoCa,yBAAA,mBACK,gCAAA,EAEhB,MAAA,EAAQ,+BAAA,CAAgC,OAAA,MACvC,cAAA,CAAe,MAAA;EAA2B,OAAA;AAAA"}
1
+ {"version":3,"file":"interactableTool.d.ts","names":[],"sources":["../../../src/react/model-context/interactableTool.tsx"],"mappings":";;;;;KAWY,qCAAqC;;;;;EAK/C,OAAO;EACP,WAAW,SAAS,WAAW,MAAM,WAAW;;;;;;EAMhD,SAAS,iCAAiC;EAC1C;;EAEA;;KAGU,gCACV,gBAAgB;EAEhB;EACA,aAAa;EACb,SACE,OAAO,qCACL,gCAAgC,cAE/B;;;;;;;;;;;;;;;;;;;;;;cA2BM,4BACX,gBAAgB,kCAEhB,QAAQ,gCAAgC,aACvC,eAAe;EAA2B"}
@@ -1,6 +1,5 @@
1
1
  import { AssistantDataUIProps } from "./useAssistantDataUI.js";
2
2
  import { FC } from "react";
3
-
4
3
  //#region src/react/model-context/makeAssistantDataUI.d.ts
5
4
  /**
6
5
  * Component returned by {@link makeAssistantDataUI}.
@@ -9,7 +8,8 @@ import { FC } from "react";
9
8
  * parts.
10
9
  */
11
10
  type AssistantDataUI = FC & {
12
- /** Data renderer registered by this component. */unstable_data: AssistantDataUIProps;
11
+ /** Data renderer registered by this component. */
12
+ unstable_data: AssistantDataUIProps;
13
13
  };
14
14
  /**
15
15
  * Creates a React component that registers a named data-part renderer when
@@ -1 +1 @@
1
- {"version":3,"file":"makeAssistantDataUI.d.ts","names":[],"sources":["../../../src/react/model-context/makeAssistantDataUI.ts"],"mappings":";;;;;;AAYA;;;;KAAY,eAAA,GAAkB,EAAA;EAE5B,kDAAA,aAAA,EAAe,oBAAoB;AAAA;AAAA;AASrC;;;;;AATqC,cASxB,mBAAA,YACX,MAAA,EAAQ,oBAAA,CAAqB,CAAA,MAAE,eAAA"}
1
+ {"version":3,"file":"makeAssistantDataUI.d.ts","names":[],"sources":["../../../src/react/model-context/makeAssistantDataUI.ts"],"mappings":";;;;;;;;;KAYY,kBAAkB;;EAE5B,eAAe;;;;;;;;cASJ,sBAAuB,SAClC,QAAQ,qBAAqB,OAAE"}
@@ -1,6 +1,5 @@
1
1
  import { AssistantToolProps } from "./useAssistantTool.js";
2
2
  import { FC } from "react";
3
-
4
3
  //#region src/react/model-context/makeAssistantTool.d.ts
5
4
  /**
6
5
  * Component returned by {@link makeAssistantTool}.
@@ -13,7 +12,8 @@ import { FC } from "react";
13
12
  * https://assistant-ui.com/docs/migrations/toolkit-tools.
14
13
  */
15
14
  type AssistantTool = FC & {
16
- /** Tool definition registered by this component. */unstable_tool: AssistantToolProps<any, any>;
15
+ /** Tool definition registered by this component. */
16
+ unstable_tool: AssistantToolProps<any, any>;
17
17
  };
18
18
  /**
19
19
  * Creates a React component that registers an assistant tool when rendered.
@@ -1 +1 @@
1
- {"version":3,"file":"makeAssistantTool.d.ts","names":[],"sources":["../../../src/react/model-context/makeAssistantTool.ts"],"mappings":";;;;;;AAaA;;;;;;;;KAAY,aAAA,GAAgB,EAAA;EAiBf,oDAfX,aAAA,EAAe,kBAAkB;AAAA;;;;;;;;;;;;;cAetB,iBAAA,iBACG,MAAA,4BAGd,IAAA,EAAM,kBAAA,CAAmB,KAAA,EAAO,OAAA,MAAQ,aAAA"}
1
+ {"version":3,"file":"makeAssistantTool.d.ts","names":[],"sources":["../../../src/react/model-context/makeAssistantTool.ts"],"mappings":";;;;;;;;;;;;;KAaY,gBAAgB;;EAE1B,eAAe;;;;;;;;;;;;;;cAeJ,oBACX,cAAc,yBACd,SAEA,MAAM,mBAAmB,OAAO,aAAQ"}
@@ -1,6 +1,5 @@
1
1
  import { AssistantToolUIProps } from "./useAssistantToolUI.js";
2
2
  import { FC } from "react";
3
-
4
3
  //#region src/react/model-context/makeAssistantToolUI.d.ts
5
4
  /**
6
5
  * Component returned by {@link makeAssistantToolUI}.
@@ -13,7 +12,8 @@ import { FC } from "react";
13
12
  * See https://assistant-ui.com/docs/migrations/toolkit-tools.
14
13
  */
15
14
  type AssistantToolUI = FC & {
16
- /** Tool renderer registered by this component. */unstable_tool: AssistantToolUIProps<any, any>;
15
+ /** Tool renderer registered by this component. */
16
+ unstable_tool: AssistantToolUIProps<any, any>;
17
17
  };
18
18
  /**
19
19
  * Creates a React component that registers a tool-call renderer when rendered.
@@ -1 +1 @@
1
- {"version":3,"file":"makeAssistantToolUI.d.ts","names":[],"sources":["../../../src/react/model-context/makeAssistantToolUI.ts"],"mappings":";;;;;;AAgBA;;;;;;;;KAAY,eAAA,GAAkB,EAAA;EAiBjB,kDAfX,aAAA,EAAe,oBAAoB;AAAA;;;;;;;;;;;;;cAexB,mBAAA,mBACX,IAAA,EAAM,oBAAA,CAAqB,KAAA,EAAO,OAAA,MAAQ,eAAA"}
1
+ {"version":3,"file":"makeAssistantToolUI.d.ts","names":[],"sources":["../../../src/react/model-context/makeAssistantToolUI.ts"],"mappings":";;;;;;;;;;;;;KAgBY,kBAAkB;;EAE5B,eAAe;;;;;;;;;;;;;;cAeJ,sBAAuB,OAAO,SACzC,MAAM,qBAAqB,OAAO,aAAQ"}
@@ -1,5 +1,4 @@
1
1
  import { Tool } from "assistant-stream";
2
-
3
2
  //#region src/react/model-context/provider-tool.d.ts
4
3
  type ProviderToolDefinition<TArgs extends Record<string, unknown>> = Extract<Tool<TArgs, unknown>, {
5
4
  type: "provider";
@@ -1 +1 @@
1
- {"version":3,"file":"provider-tool.d.ts","names":[],"sources":["../../../src/react/model-context/provider-tool.ts"],"mappings":";;;KAEK,sBAAA,eAAqC,MAAA,qBAA2B,OAAA,CACnE,IAAA,CAAK,KAAA;EACH,IAAA;AAAA;AAAA,KAGQ,kBAAA,eACI,MAAA,oBAA0B,MAAA,qBACtC,IAAA,CACF,sBAAA,CAAuB,KAAA;;;;;iBAYT,YAAA,CAAa,OAA2B,EAAlB,kBAAkB"}
1
+ {"version":3,"file":"provider-tool.d.ts","names":[],"sources":["../../../src/react/model-context/provider-tool.ts"],"mappings":";;KAEK,uBAAuB,cAAc,2BAA2B,QACnE,KAAK;EACH;;KAGQ,mBACV,cAAc,0BAA0B,2BACtC,KACF,uBAAuB;;;;;iBAYT,aAAa,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"stub-tool.d.ts","names":[],"sources":["../../../src/react/model-context/stub-tool.ts"],"mappings":";;AAOA;;;;AAAwB;;iBAAR,QAAA"}
1
+ {"version":3,"file":"stub-tool.d.ts","names":[],"sources":["../../../src/react/model-context/stub-tool.ts"],"mappings":";;;;;;;;iBAOgB"}
@@ -1,7 +1,6 @@
1
1
  import { ToolCallMessagePartComponent, ToolCallMessagePartProps } from "../types/MessagePartComponentTypes.js";
2
2
  import { Tool, ToolCallReader, ToolDeclaration, ToolModelOutputFunction } from "assistant-stream";
3
3
  import { ReactNode } from "react";
4
-
5
4
  //#region src/react/model-context/toolbox.d.ts
6
5
  /**
7
6
  * Resolves whether a tool's UI should be presented standalone (outside the
@@ -84,13 +83,13 @@ type Toolkit = Record<string, ToolDefinition<any, any>>;
84
83
  * directive → frontend; otherwise backend) and writes it back — so declaring it
85
84
  * here is a type error.
86
85
  */
87
- type OverrideOptionalField<T, TKey extends keyof T, TValue> = undefined extends T[TKey] ? Exclude<T[TKey], undefined> extends never ? { [K in TKey]?: undefined } : { [K in TKey]?: TValue | undefined } : { [K in TKey]: TValue };
86
+ type OverrideOptionalField<T, TKey extends keyof T, TValue> = undefined extends T[TKey] ? Exclude<T[TKey], undefined> extends never ? { [K in TKey]?: undefined; } : { [K in TKey]?: TValue | undefined; } : { [K in TKey]: TValue; };
88
87
  type OverrideToolDeclarationCallbacks<T extends {
89
88
  streamCall?: unknown;
90
89
  }, TArgs extends Record<string, unknown>, TResult> = Omit<T, "type" | "execute" | "toModelOutput" | "experimental_onSchemaValidationError" | "streamCall"> & {
91
90
  type?: never;
92
91
  } & ("execute" extends keyof T ? OverrideOptionalField<T, "execute", ToolExecute<NoInfer<TArgs>, TResult>> : {}) & ("toModelOutput" extends keyof T ? OverrideOptionalField<T, "toModelOutput", ToolModelOutputFunction<NoInfer<TArgs>, NoInfer<TResult>>> : {}) & ("experimental_onSchemaValidationError" extends keyof T ? OverrideOptionalField<T, "experimental_onSchemaValidationError", (args: unknown, context: ToolExecuteContext) => NoInfer<TResult> | Promise<NoInfer<TResult>>> : {}) & OverrideOptionalField<T, "streamCall", ToolStreamCall<TArgs, unknown>>;
93
- type ToolkitDefinitionInput<TArgs extends Record<string, unknown>, TResult> = WithRender<ToolDeclaration<TArgs, TResult> extends infer T ? T extends {
92
+ type ToolkitDefinitionInput<TArgs extends Record<string, unknown>, TResult> = WithRender<ToolDeclaration<TArgs, TResult> extends (infer T) ? T extends {
94
93
  streamCall?: unknown;
95
94
  } ? OverrideToolDeclarationCallbacks<T, TArgs, TResult> : never : never, TArgs, TResult>;
96
95
  /**
@@ -111,10 +110,11 @@ type ToolkitDefinitionEntryWithParameters<TArgs extends Record<string, unknown>
111
110
  * {@link defineToolkit}. Backend entries may carry their server `execute` here;
112
111
  * the canonical {@link Toolkit} keeps those fields `undefined`.
113
112
  */
114
- type ToolkitDefinition<TArgsByName extends { [K in keyof TArgsByName]: Record<string, unknown> } = Record<string, any>, TResultByName extends { [K in keyof TArgsByName]: unknown } = { [K in keyof TArgsByName]: any }> = { [K in keyof TArgsByName]: ToolkitDefinitionEntry<TArgsByName[K], TResultByName[K]> };
113
+ type ToolkitDefinition<TArgsByName extends { [K in keyof TArgsByName]: Record<string, unknown>; } = Record<string, any>, TResultByName extends { [K in keyof TArgsByName]: unknown; } = { [K in keyof TArgsByName]: any; }> = { [K in keyof TArgsByName]: ToolkitDefinitionEntry<TArgsByName[K], TResultByName[K]>; };
115
114
  /** Configuration for the {@link Tools} resource. */
116
115
  type ToolsConfig = {
117
- /** Tools to register with model context and, when provided, message renderers. */toolkit: Toolkit;
116
+ /** Tools to register with model context and, when provided, message renderers. */
117
+ toolkit: Toolkit;
118
118
  };
119
119
  //#endregion
120
120
  export { ToolCallText, ToolDefinition, Toolkit, ToolkitDefinition, ToolkitDefinitionEntry, ToolkitDefinitionEntryWithParameters, ToolsConfig, isStandaloneToolDisplay, makeToolCallTextComponent };
@@ -1 +1 @@
1
- {"version":3,"file":"toolbox.d.ts","names":[],"sources":["../../../src/react/model-context/toolbox.ts"],"mappings":"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"}
1
+ {"version":3,"file":"toolbox.d.ts","names":[],"sources":["../../../src/react/model-context/toolbox.ts"],"mappings":";;;;;;;;;;;;;cAqBa,0BACX,MAAM,KAAK;KAMR,WAAW,GAAG,cAAc,yBAAyB,WAAW;EACnE;IAEE,KACG;EAAY;;EAEH,QAAQ,6BAA6B,OAAO;;EAE5C,SAAS,6BAA6B,OAAO;EAC7C,YAAY,aAAa,OAAO;;EAEpC,QAAQ,6BAA6B,OAAO;KACpD;EACE,SAAS,6BAA6B,OAAO;EAC7C,aAAa,aAAa,OAAO;;KAGlC,eAAe,cAAc,2BAChC,gBAAgB;KAGb,qBAAqB,WACxB,YAAY;KAGT,YAAY,cAAc,yBAAyB,YACtD,MAAM,OACN,SAAS,uBACN,UAAU,QAAQ;KAElB,eAAe,cAAc,yBAAyB,YACzD,QAAQ,eAAe,OAAO,UAC9B,SAAS;KAGN,oBAAoB,cAAc,2BACnC,cACE;EAAW,MAAM;MAAY;KAE9B,qBAAqB,cAAc,yBAAyB,WAC7D,cACE;EAAW,MAAM;EAAO,QAAQ;MAA0B;KAEpD,aAAa,cAAc,yBAAyB;EAE1D,SAAS,oBAAoB;EAC7B,WAAW,qBAAqB,OAAO;;EAGvC,UAAU,oBAAoB;EAC9B,UAAU,qBAAqB,OAAO;;cAqB/B,4BACX,cAAc,yBACd,SAEA,MAAM,aAAa,OAAO,eACvB,MAAM,yBAAyB,OAAO,aAAa;;;;;;;;;KAc5C,eACV,cAAc,0BAA0B,yBACxC,qBACE,WAAW,KAAK,OAAO,UAAU,OAAO;;;;;;;;;;;;;;;;;;;KAoBhC,UAAU,eAAe;;;;;;;;;;KAWhC,sBACH,GACA,mBAAmB,GACnB,4BACoB,EAAE,QAGpB,QAAQ,EAAE,qCACL,KAAK,0BACL,KAAK,QAAQ,2BACf,KAAK,OAAO;KAEd,iCACH;EAAY;GACZ,cAAc,yBACd,WACE,KACF;EAOA;6BAC2B,IACvB,sBAAsB,cAAc,YAAY,QAAQ,QAAQ,iDAErC,IAC3B,sBACE,oBAEA,wBAAwB,QAAQ,QAAQ,QAAQ,yEAGA,IAClD,sBACE,4CAGE,eACA,SAAS,uBACN,QAAQ,WAAW,QAAQ,QAAQ,mBAG9C,sBAAsB,iBAAiB,eAAe;KAInD,uBACH,cAAc,yBACd,WACE,WACF,gBAAgB,OAAO,wBAAuB,KAC1C;EAAY;IACV,iCAAiC,GAAG,OAAO,0BAGjD,OACA;;;;;;;;;;KAYU,uBACV,cAAc,0BAA0B,yBACxC,qBACE,uBAAuB,OAAO,WAAW;KAEjC,qCACV,cAAc,0BAA0B,yBACxC,qBACE,uBAAuB,OAAO;EAChC,YAAY,YAAY,eAAe;;;;;;;KAQ7B,kBACV,uBACG,WAAW,cAAc,6BACxB,qBACJ,yBAAyB,WAAW,8BACjC,WAAW,2BAGb,WAAW,cAAc,uBACxB,YAAY,IACZ,cAAc;;KAKN;;EAEV,SAAS"}
@@ -1,4 +1,5 @@
1
1
  import { AssistantContextConfig } from "../../model-context/types.js";
2
+ import "../../index.js";
2
3
  //#region src/react/model-context/useAssistantContext.d.ts
3
4
  declare const useAssistantContext: (config: AssistantContextConfig) => void;
4
5
  //#endregion