@assistant-ui/core 0.3.19 → 0.3.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (934) hide show
  1. package/dist/adapters/attachment.d.ts +50 -43
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/attachment.js +52 -21
  4. package/dist/adapters/attachment.js.map +1 -1
  5. package/dist/adapters/directive-formatter.d.ts +2 -5
  6. package/dist/adapters/directive-formatter.d.ts.map +1 -1
  7. package/dist/adapters/feedback.d.ts +7 -8
  8. package/dist/adapters/feedback.d.ts.map +1 -1
  9. package/dist/adapters/index.d.ts +14 -9
  10. package/dist/adapters/index.d.ts.map +1 -0
  11. package/dist/adapters/index.js +1 -1
  12. package/dist/adapters/speech.d.ts +63 -65
  13. package/dist/adapters/speech.d.ts.map +1 -1
  14. package/dist/adapters/speech.js +16 -2
  15. package/dist/adapters/speech.js.map +1 -1
  16. package/dist/adapters/suggestion.d.ts +19 -22
  17. package/dist/adapters/suggestion.d.ts.map +1 -1
  18. package/dist/adapters/thread-history.d.ts +60 -58
  19. package/dist/adapters/thread-history.d.ts.map +1 -1
  20. package/dist/adapters/trigger.d.ts +8 -11
  21. package/dist/adapters/trigger.d.ts.map +1 -1
  22. package/dist/adapters/voice.d.ts +50 -45
  23. package/dist/adapters/voice.d.ts.map +1 -1
  24. package/dist/adapters/voice.js +17 -3
  25. package/dist/adapters/voice.js.map +1 -1
  26. package/dist/index.d.ts +70 -56
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +6 -6
  29. package/dist/index.js.map +1 -1
  30. package/dist/internal/duplicate-detection.d.ts +1 -4
  31. package/dist/internal/duplicate-detection.d.ts.map +1 -1
  32. package/dist/internal.d.ts +27 -58
  33. package/dist/internal.d.ts.map +1 -0
  34. package/dist/internal.js +8 -6
  35. package/dist/model-context/frame/host.d.ts +20 -23
  36. package/dist/model-context/frame/host.d.ts.map +1 -1
  37. package/dist/model-context/frame/host.js +3 -1
  38. package/dist/model-context/frame/host.js.map +1 -1
  39. package/dist/model-context/frame/provider.d.ts +28 -30
  40. package/dist/model-context/frame/provider.d.ts.map +1 -1
  41. package/dist/model-context/frame/provider.js +6 -0
  42. package/dist/model-context/frame/provider.js.map +1 -1
  43. package/dist/model-context/frame/types.d.ts +24 -27
  44. package/dist/model-context/frame/types.d.ts.map +1 -1
  45. package/dist/model-context/frame/validate.d.ts +3 -0
  46. package/dist/model-context/frame/validate.d.ts.map +1 -0
  47. package/dist/model-context/frame/validate.js +26 -0
  48. package/dist/model-context/frame/validate.js.map +1 -0
  49. package/dist/model-context/interactable-composer-metadata.d.ts +51 -39
  50. package/dist/model-context/interactable-composer-metadata.d.ts.map +1 -1
  51. package/dist/model-context/interactable-composer-metadata.js +30 -6
  52. package/dist/model-context/interactable-composer-metadata.js.map +1 -1
  53. package/dist/model-context/registry-handles.d.ts +9 -12
  54. package/dist/model-context/registry-handles.d.ts.map +1 -1
  55. package/dist/model-context/registry.d.ts +15 -18
  56. package/dist/model-context/registry.d.ts.map +1 -1
  57. package/dist/model-context/tool-call-text.d.ts +15 -17
  58. package/dist/model-context/tool-call-text.d.ts.map +1 -1
  59. package/dist/model-context/tool.d.ts +12 -14
  60. package/dist/model-context/tool.d.ts.map +1 -1
  61. package/dist/model-context/types.d.ts +40 -43
  62. package/dist/model-context/types.d.ts.map +1 -1
  63. package/dist/react/AssistantProvider.d.ts +9 -12
  64. package/dist/react/AssistantProvider.d.ts.map +1 -1
  65. package/dist/react/AssistantRuntimeProvider.d.ts +23 -26
  66. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  67. package/dist/react/RuntimeAdapter.d.ts +4 -8
  68. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  69. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +28 -23
  70. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  71. package/dist/react/adapters/LocalStorageThreadListAdapter.js +77 -58
  72. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  73. package/dist/react/adapters/TitleGenerationAdapter.d.ts +4 -7
  74. package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
  75. package/dist/react/client/AdaptedRemoteThread.d.ts +6 -9
  76. package/dist/react/client/AdaptedRemoteThread.d.ts.map +1 -1
  77. package/dist/react/client/DataRenderers.d.ts +2 -5
  78. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  79. package/dist/react/client/InMemoryThreadList.d.ts +9 -12
  80. package/dist/react/client/InMemoryThreadList.d.ts.map +1 -1
  81. package/dist/react/client/Interactables.d.ts +3 -6
  82. package/dist/react/client/Interactables.d.ts.map +1 -1
  83. package/dist/react/client/Interactables.js +306 -101
  84. package/dist/react/client/Interactables.js.map +1 -1
  85. package/dist/react/client/RemoteThreadList.d.ts +34 -37
  86. package/dist/react/client/RemoteThreadList.d.ts.map +1 -1
  87. package/dist/react/client/RemoteThreadList.js +2 -1
  88. package/dist/react/client/RemoteThreadList.js.map +1 -1
  89. package/dist/react/client/Tools.d.ts +10 -12
  90. package/dist/react/client/Tools.d.ts.map +1 -1
  91. package/dist/react/client/Tools.js +4 -8
  92. package/dist/react/client/Tools.js.map +1 -1
  93. package/dist/react/client/interactable-model-context.d.ts +9 -11
  94. package/dist/react/client/interactable-model-context.d.ts.map +1 -1
  95. package/dist/react/client/interactable-model-context.js +32 -22
  96. package/dist/react/client/interactable-model-context.js.map +1 -1
  97. package/dist/react/index.d.ts +160 -122
  98. package/dist/react/index.d.ts.map +1 -0
  99. package/dist/react/index.js +5 -5
  100. package/dist/react/interactables-legacy/Interactables.d.ts +2 -5
  101. package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
  102. package/dist/react/interactables-legacy/Interactables.js +15 -8
  103. package/dist/react/interactables-legacy/Interactables.js.map +1 -1
  104. package/dist/react/interactables-legacy/interactable-model-context.d.ts +6 -9
  105. package/dist/react/interactables-legacy/interactable-model-context.d.ts.map +1 -1
  106. package/dist/react/interactables-legacy/interactable-model-context.js +13 -14
  107. package/dist/react/interactables-legacy/interactable-model-context.js.map +1 -1
  108. package/dist/react/interactables-legacy/scopes.d.ts +42 -46
  109. package/dist/react/interactables-legacy/scopes.d.ts.map +1 -1
  110. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts +8 -11
  111. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts.map +1 -1
  112. package/dist/react/interactables-legacy/useInteractableState.d.ts +7 -9
  113. package/dist/react/interactables-legacy/useInteractableState.d.ts.map +1 -1
  114. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts +23 -14
  115. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts.map +1 -1
  116. package/dist/react/interactables-shared/useInteractablePersistenceQueue.js +54 -25
  117. package/dist/react/interactables-shared/useInteractablePersistenceQueue.js.map +1 -1
  118. package/dist/react/model-context/define-mcp-toolkit.d.ts +15 -18
  119. package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -1
  120. package/dist/react/model-context/define-toolkit.d.ts +13 -6
  121. package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
  122. package/dist/react/model-context/external-tool.d.ts +1 -4
  123. package/dist/react/model-context/external-tool.d.ts.map +1 -1
  124. package/dist/react/model-context/human-tool.d.ts +3 -6
  125. package/dist/react/model-context/human-tool.d.ts.map +1 -1
  126. package/dist/react/model-context/interactableTool.d.ts +26 -29
  127. package/dist/react/model-context/interactableTool.d.ts.map +1 -1
  128. package/dist/react/model-context/makeAssistantDataUI.d.ts +6 -9
  129. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
  130. package/dist/react/model-context/makeAssistantTool.d.ts +6 -9
  131. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  132. package/dist/react/model-context/makeAssistantToolUI.d.ts +6 -9
  133. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  134. package/dist/react/model-context/provider-tool.d.ts +5 -7
  135. package/dist/react/model-context/provider-tool.d.ts.map +1 -1
  136. package/dist/react/model-context/stub-tool.d.ts +1 -4
  137. package/dist/react/model-context/stub-tool.d.ts.map +1 -1
  138. package/dist/react/model-context/toolbox.d.ts +44 -32
  139. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  140. package/dist/react/model-context/useAssistantContext.d.ts +3 -6
  141. package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
  142. package/dist/react/model-context/useAssistantDataUI.d.ts +7 -10
  143. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
  144. package/dist/react/model-context/useAssistantInstructions.d.ts +3 -6
  145. package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
  146. package/dist/react/model-context/useAssistantTool.d.ts +9 -13
  147. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  148. package/dist/react/model-context/useAssistantToolUI.d.ts +13 -16
  149. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  150. package/dist/react/model-context/useAuiToolOverrides.d.ts +3 -5
  151. package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -1
  152. package/dist/react/model-context/useInlineRender.d.ts +3 -6
  153. package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
  154. package/dist/react/model-context/useInteractable.d.ts +40 -40
  155. package/dist/react/model-context/useInteractable.d.ts.map +1 -1
  156. package/dist/react/model-context/useInteractableState.d.ts +10 -9
  157. package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
  158. package/dist/react/model-context/useInteractableVersions.d.ts +4 -7
  159. package/dist/react/model-context/useInteractableVersions.d.ts.map +1 -1
  160. package/dist/react/model-context/useToolArgsStatus.d.ts +7 -9
  161. package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
  162. package/dist/react/primitive-hooks/useActionBarCopy.d.ts +7 -10
  163. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  164. package/dist/react/primitive-hooks/useActionBarEdit.d.ts +3 -6
  165. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
  166. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +6 -9
  167. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
  168. package/dist/react/primitive-hooks/useActionBarReload.d.ts +3 -6
  169. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
  170. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +3 -6
  171. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
  172. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +3 -6
  173. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
  174. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +3 -6
  175. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
  176. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +3 -6
  177. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
  178. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +4 -7
  179. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
  180. package/dist/react/primitive-hooks/useComposerCancel.d.ts +3 -6
  181. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
  182. package/dist/react/primitive-hooks/useComposerDictate.d.ts +3 -6
  183. package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
  184. package/dist/react/primitive-hooks/useComposerSend.d.ts +4 -7
  185. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  186. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +2 -5
  187. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
  188. package/dist/react/primitive-hooks/useEditComposerSend.d.ts +3 -6
  189. package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
  190. package/dist/react/primitive-hooks/useMessageBranching.d.ts +5 -8
  191. package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
  192. package/dist/react/primitive-hooks/useMessageError.d.ts +1 -4
  193. package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
  194. package/dist/react/primitive-hooks/useMessageReload.d.ts +3 -6
  195. package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
  196. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +7 -10
  197. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
  198. package/dist/react/primitive-hooks/useSuggestionTrigger.js +4 -4
  199. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
  200. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +1 -4
  201. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
  202. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +1 -4
  203. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
  204. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +2 -5
  205. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
  206. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +2 -5
  207. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
  208. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +2 -5
  209. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
  210. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +2 -5
  211. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
  212. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +3 -6
  213. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
  214. package/dist/react/primitive-hooks/useThreadListNew.d.ts +2 -5
  215. package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
  216. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts +1 -4
  217. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts.map +1 -1
  218. package/dist/react/primitive-hooks/useThreadMessages.d.ts +2 -5
  219. package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
  220. package/dist/react/primitive-hooks/useVoice.d.ts +8 -11
  221. package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
  222. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +27 -29
  223. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  224. package/dist/react/primitives/composer/ComposerAttachments.d.ts +26 -28
  225. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  226. package/dist/react/primitives/composer/ComposerIf.d.ts +13 -13
  227. package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
  228. package/dist/react/primitives/composer/ComposerQueue.d.ts +13 -17
  229. package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
  230. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +30 -33
  231. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -1
  232. package/dist/react/primitives/generativeUI/GenerativeUI.js +42 -33
  233. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  234. package/dist/react/primitives/message/MessageAttachments.d.ts +30 -28
  235. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
  236. package/dist/react/primitives/message/MessageAttachments.js +14 -15
  237. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  238. package/dist/react/primitives/message/MessageGroupedParts.d.ts +122 -120
  239. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  240. package/dist/react/primitives/message/MessageGroupedParts.js +3 -3
  241. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  242. package/dist/react/primitives/message/MessageParts.d.ts +208 -194
  243. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  244. package/dist/react/primitives/message/MessageParts.js +124 -82
  245. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  246. package/dist/react/primitives/message/MessageQuote.d.ts +8 -11
  247. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
  248. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +4 -7
  249. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  250. package/dist/react/primitives/part/PartMessages.d.ts +16 -19
  251. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  252. package/dist/react/primitives/thread/ThreadMessages.d.ts +61 -64
  253. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  254. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +25 -27
  255. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  256. package/dist/react/primitives/thread/ThreadSuggestions.js +24 -5
  257. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
  258. package/dist/react/primitives/threadList/ThreadListItems.d.ts +26 -28
  259. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  260. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +6 -9
  261. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  262. package/dist/react/providers/AttachmentByIndexProvider.d.ts +5 -8
  263. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  264. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +4 -7
  265. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  266. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +3 -6
  267. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  268. package/dist/react/providers/MessageByIdProvider.d.ts +3 -6
  269. package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
  270. package/dist/react/providers/MessageByIndexProvider.d.ts +3 -6
  271. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
  272. package/dist/react/providers/PartByIndexProvider.d.ts +3 -6
  273. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
  274. package/dist/react/providers/QueueItemByIndexProvider.d.ts +4 -7
  275. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
  276. package/dist/react/providers/ReadonlyThreadProvider.d.ts +7 -10
  277. package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
  278. package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
  279. package/dist/react/providers/SuggestionByIndexProvider.d.ts +4 -7
  280. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  281. package/dist/react/providers/TextMessagePartProvider.d.ts +4 -7
  282. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  283. package/dist/react/providers/TextMessagePartProvider.js +5 -1
  284. package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
  285. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +4 -7
  286. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
  287. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +4 -8
  288. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  289. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +210 -219
  290. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  291. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +70 -46
  292. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  293. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +186 -198
  294. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  295. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +13 -4
  296. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  297. package/dist/react/runtimes/RemoteThreadResource.d.ts +17 -23
  298. package/dist/react/runtimes/RemoteThreadResource.d.ts.map +1 -1
  299. package/dist/react/runtimes/RemoteThreadResource.js +3 -1
  300. package/dist/react/runtimes/RemoteThreadResource.js.map +1 -1
  301. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +10 -11
  302. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  303. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts +11 -14
  304. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts.map +1 -1
  305. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts +6 -8
  306. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts.map +1 -1
  307. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js +9 -2
  308. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js.map +1 -1
  309. package/dist/react/runtimes/assistant-transport/runManager.d.ts +9 -12
  310. package/dist/react/runtimes/assistant-transport/runManager.d.ts.map +1 -1
  311. package/dist/react/runtimes/assistant-transport/runManager.js +4 -1
  312. package/dist/react/runtimes/assistant-transport/runManager.js.map +1 -1
  313. package/dist/react/runtimes/assistant-transport/types.d.ts +123 -118
  314. package/dist/react/runtimes/assistant-transport/types.d.ts.map +1 -1
  315. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts +7 -10
  316. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  317. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js +17 -6
  318. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  319. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts +3 -6
  320. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts.map +1 -1
  321. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts +2 -5
  322. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts.map +1 -1
  323. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +7 -10
  324. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  325. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +426 -216
  326. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  327. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +15 -18
  328. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  329. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +8 -4
  330. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  331. package/dist/react/runtimes/cloud/auiV0.d.ts +146 -125
  332. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  333. package/dist/react/runtimes/cloud/auiV0.js +120 -8
  334. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  335. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts +13 -15
  336. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts.map +1 -1
  337. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts +5 -7
  338. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts.map +1 -1
  339. package/dist/react/runtimes/cloud/sdkIdentity.d.ts +2 -5
  340. package/dist/react/runtimes/cloud/sdkIdentity.d.ts.map +1 -1
  341. package/dist/react/runtimes/cloud/sdkIdentity.js +1 -1
  342. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +3 -6
  343. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  344. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts +9 -11
  345. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  346. package/dist/react/runtimes/createMessageConverter.d.ts +15 -19
  347. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  348. package/dist/react/runtimes/createMessageConverter.js.map +1 -1
  349. package/dist/react/runtimes/createRuntimeExtras.d.ts +14 -17
  350. package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
  351. package/dist/react/runtimes/external-message-converter.d.ts +17 -21
  352. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  353. package/dist/react/runtimes/external-store-history-copy.d.ts +25 -0
  354. package/dist/react/runtimes/external-store-history-copy.d.ts.map +1 -0
  355. package/dist/react/runtimes/external-store-history-copy.js +148 -0
  356. package/dist/react/runtimes/external-store-history-copy.js.map +1 -0
  357. package/dist/react/runtimes/useExternalStoreRuntime.d.ts +3 -6
  358. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
  359. package/dist/react/runtimes/useExternalStoreRuntime.js +72 -35
  360. package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
  361. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +2 -5
  362. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
  363. package/dist/react/runtimes/useLocalRuntime.d.ts +29 -41
  364. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  365. package/dist/react/runtimes/useLocalRuntime.js +142 -34
  366. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  367. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +3 -6
  368. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  369. package/dist/react/runtimes/useRemoteThreadListRuntime.js +2 -2
  370. package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
  371. package/dist/react/runtimes/useRuntimeAdapters.d.ts +5 -7
  372. package/dist/react/runtimes/useRuntimeAdapters.d.ts.map +1 -1
  373. package/dist/react/runtimes/useStreamingTiming.d.ts +4 -6
  374. package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
  375. package/dist/react/types/MessagePartComponentTypes.d.ts +72 -70
  376. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  377. package/dist/react/types/scopes/dataRenderers.d.ts +11 -15
  378. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
  379. package/dist/react/types/scopes/interactables.d.ts +60 -60
  380. package/dist/react/types/scopes/interactables.d.ts.map +1 -1
  381. package/dist/react/types/scopes/tools.d.ts +21 -24
  382. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  383. package/dist/react/types/store-augmentation.d.ts +10 -11
  384. package/dist/react/types/store-augmentation.d.ts.map +1 -1
  385. package/dist/react/utils/getMessageQuote.d.ts +6 -8
  386. package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
  387. package/dist/react/utils/groupParts.d.ts +35 -37
  388. package/dist/react/utils/groupParts.d.ts.map +1 -1
  389. package/dist/react/utils/useJSONEqual.d.ts +3 -6
  390. package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
  391. package/dist/react/utils/useJSONSchemaDependency.d.ts +3 -6
  392. package/dist/react/utils/useJSONSchemaDependency.d.ts.map +1 -1
  393. package/dist/runtime/api/assistant-runtime.d.ts +28 -31
  394. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  395. package/dist/runtime/api/attachment-runtime.d.ts +51 -49
  396. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  397. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  398. package/dist/runtime/api/bindings.d.ts +35 -35
  399. package/dist/runtime/api/bindings.d.ts.map +1 -1
  400. package/dist/runtime/api/composer-runtime.d.ts +215 -201
  401. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  402. package/dist/runtime/api/composer-runtime.js +4 -0
  403. package/dist/runtime/api/composer-runtime.js.map +1 -1
  404. package/dist/runtime/api/message-part-runtime.d.ts +31 -30
  405. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  406. package/dist/runtime/api/message-part-runtime.js +25 -2
  407. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  408. package/dist/runtime/api/message-runtime.d.ts +87 -82
  409. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  410. package/dist/runtime/api/message-runtime.js +4 -3
  411. package/dist/runtime/api/message-runtime.js.map +1 -1
  412. package/dist/runtime/api/paths.d.ts +54 -57
  413. package/dist/runtime/api/paths.d.ts.map +1 -1
  414. package/dist/runtime/api/thread-list-item-runtime.d.ts +70 -72
  415. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  416. package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
  417. package/dist/runtime/api/thread-list-runtime.d.ts +77 -81
  418. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  419. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  420. package/dist/runtime/api/thread-runtime.d.ts +306 -308
  421. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  422. package/dist/runtime/api/thread-runtime.js +2 -1
  423. package/dist/runtime/api/thread-runtime.js.map +1 -1
  424. package/dist/runtime/base/base-assistant-runtime-core.d.ts +9 -12
  425. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  426. package/dist/runtime/base/base-composer-runtime-core.d.ts +150 -101
  427. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  428. package/dist/runtime/base/base-composer-runtime-core.js +400 -122
  429. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  430. package/dist/runtime/base/base-thread-runtime-core.d.ts +121 -104
  431. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  432. package/dist/runtime/base/base-thread-runtime-core.js +174 -62
  433. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  434. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +30 -31
  435. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  436. package/dist/runtime/base/default-edit-composer-runtime-core.js +21 -2
  437. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  438. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +28 -31
  439. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  440. package/dist/runtime/base/default-thread-composer-runtime-core.js +23 -2
  441. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  442. package/dist/runtime/branch/external-thread-branch-adapter.d.ts +15 -18
  443. package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
  444. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +8 -11
  445. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  446. package/dist/runtime/interfaces/composer-runtime-core.d.ts +98 -83
  447. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  448. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +67 -70
  449. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  450. package/dist/runtime/interfaces/thread-runtime-core.d.ts +225 -211
  451. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  452. package/dist/runtime/internal.d.ts +25 -20
  453. package/dist/runtime/internal.d.ts.map +1 -0
  454. package/dist/runtime/queue/external-thread-queue-adapter.d.ts +37 -40
  455. package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
  456. package/dist/runtime/queue/message-queue.d.ts +32 -33
  457. package/dist/runtime/queue/message-queue.d.ts.map +1 -1
  458. package/dist/runtime/queue/message-queue.js +10 -2
  459. package/dist/runtime/queue/message-queue.js.map +1 -1
  460. package/dist/runtime/queue/queue-item.d.ts +7 -10
  461. package/dist/runtime/queue/queue-item.d.ts.map +1 -1
  462. package/dist/runtime/utils/abortable-thread-load.d.ts +9 -11
  463. package/dist/runtime/utils/abortable-thread-load.d.ts.map +1 -1
  464. package/dist/runtime/utils/attachment-add-operations.d.ts +16 -15
  465. package/dist/runtime/utils/attachment-add-operations.d.ts.map +1 -1
  466. package/dist/runtime/utils/attachment-add-operations.js +24 -2
  467. package/dist/runtime/utils/attachment-add-operations.js.map +1 -1
  468. package/dist/runtime/utils/attachment-send-operations.d.ts +12 -0
  469. package/dist/runtime/utils/attachment-send-operations.d.ts.map +1 -0
  470. package/dist/runtime/utils/attachment-send-operations.js +34 -0
  471. package/dist/runtime/utils/attachment-send-operations.js.map +1 -0
  472. package/dist/runtime/utils/auto-status.d.ts +11 -13
  473. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  474. package/dist/runtime/utils/auto-status.js +3 -5
  475. package/dist/runtime/utils/auto-status.js.map +1 -1
  476. package/dist/runtime/utils/chat-model-adapter.d.ts +31 -33
  477. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  478. package/dist/runtime/utils/external-message-conversion.d.ts +47 -48
  479. package/dist/runtime/utils/external-message-conversion.d.ts.map +1 -1
  480. package/dist/runtime/utils/external-message-conversion.js +6 -5
  481. package/dist/runtime/utils/external-message-conversion.js.map +1 -1
  482. package/dist/runtime/utils/external-store-message.d.ts +6 -9
  483. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  484. package/dist/runtime/utils/message-repository-session.d.ts +24 -27
  485. package/dist/runtime/utils/message-repository-session.d.ts.map +1 -1
  486. package/dist/runtime/utils/message-repository.d.ts +52 -54
  487. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  488. package/dist/runtime/utils/message-repository.js +8 -7
  489. package/dist/runtime/utils/message-repository.js.map +1 -1
  490. package/dist/runtime/utils/pending-tool-calls.d.ts +12 -14
  491. package/dist/runtime/utils/pending-tool-calls.d.ts.map +1 -1
  492. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +7 -10
  493. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
  494. package/dist/runtime/utils/runtime-extras-brand.d.ts +6 -9
  495. package/dist/runtime/utils/runtime-extras-brand.d.ts.map +1 -1
  496. package/dist/runtime/utils/stored-message-parts.d.ts +21 -0
  497. package/dist/runtime/utils/stored-message-parts.d.ts.map +1 -0
  498. package/dist/runtime/utils/stored-message-parts.js +103 -0
  499. package/dist/runtime/utils/stored-message-parts.js.map +1 -0
  500. package/dist/runtime/utils/streaming-timing.d.ts +23 -26
  501. package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
  502. package/dist/runtime/utils/thread-message-like.d.ts +38 -34
  503. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  504. package/dist/runtime/utils/thread-message-like.js +16 -6
  505. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  506. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts +5 -7
  507. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts.map +1 -1
  508. package/dist/runtime/utils/thread-runtime-lifecycle.js +31 -4
  509. package/dist/runtime/utils/thread-runtime-lifecycle.js.map +1 -1
  510. package/dist/runtime/utils/tool-call-tree.d.ts +10 -13
  511. package/dist/runtime/utils/tool-call-tree.d.ts.map +1 -1
  512. package/dist/runtime/utils/tool-interactions.d.ts +10 -0
  513. package/dist/runtime/utils/tool-interactions.d.ts.map +1 -0
  514. package/dist/runtime/utils/tool-interactions.js +92 -0
  515. package/dist/runtime/utils/tool-interactions.js.map +1 -0
  516. package/dist/runtimes/assistant-transport/utils.d.ts +1 -4
  517. package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
  518. package/dist/runtimes/external-store/external-store-adapter.d.ts +220 -200
  519. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  520. package/dist/runtimes/external-store/external-store-runtime-core.d.ts +6 -8
  521. package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
  522. package/dist/runtimes/external-store/external-store-runtime-core.js +4 -1
  523. package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
  524. package/dist/runtimes/external-store/external-store-shared-options.d.ts +3 -6
  525. package/dist/runtimes/external-store/external-store-shared-options.d.ts.map +1 -1
  526. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +40 -43
  527. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  528. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +2 -2
  529. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  530. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +119 -125
  531. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  532. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +71 -18
  533. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  534. package/dist/runtimes/external-store/thread-message-converter.d.ts +5 -8
  535. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  536. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts +96 -98
  537. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts.map +1 -1
  538. package/dist/runtimes/inert/InertThreadRuntimeCore.js +3 -0
  539. package/dist/runtimes/inert/InertThreadRuntimeCore.js.map +1 -1
  540. package/dist/runtimes/internal.d.ts +20 -16
  541. package/dist/runtimes/internal.d.ts.map +1 -0
  542. package/dist/runtimes/local/local-runtime-core.d.ts +7 -10
  543. package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
  544. package/dist/runtimes/local/local-runtime-options.d.ts +41 -44
  545. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  546. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +42 -45
  547. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  548. package/dist/runtimes/local/local-thread-runtime-core.d.ts +94 -93
  549. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  550. package/dist/runtimes/local/local-thread-runtime-core.js +220 -29
  551. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  552. package/dist/runtimes/local/should-continue.d.ts +2 -5
  553. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  554. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +77 -55
  555. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  556. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +28 -1
  557. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  558. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +12 -15
  559. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  560. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts +3 -6
  561. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts.map +1 -1
  562. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +2 -5
  563. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  564. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +34 -31
  565. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  566. package/dist/runtimes/remote-thread-list/optimistic-state.js +8 -3
  567. package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
  568. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +60 -63
  569. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  570. package/dist/runtimes/remote-thread-list/remote-thread-state.js +1 -1
  571. package/dist/runtimes/remote-thread-list/title-generation.d.ts +31 -33
  572. package/dist/runtimes/remote-thread-list/title-generation.d.ts.map +1 -1
  573. package/dist/runtimes/remote-thread-list/title.d.ts +5 -8
  574. package/dist/runtimes/remote-thread-list/title.d.ts.map +1 -1
  575. package/dist/runtimes/remote-thread-list/types.d.ts +119 -121
  576. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  577. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +147 -149
  578. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
  579. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +22 -7
  580. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  581. package/dist/store/clients/chain-of-thought-client.d.ts +8 -11
  582. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  583. package/dist/store/clients/external-thread.d.ts +56 -58
  584. package/dist/store/clients/external-thread.d.ts.map +1 -1
  585. package/dist/store/clients/external-thread.js +1270 -741
  586. package/dist/store/clients/external-thread.js.map +1 -1
  587. package/dist/store/clients/model-context-client.d.ts +2 -5
  588. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  589. package/dist/store/clients/no-op-composer-client.d.ts +3 -6
  590. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  591. package/dist/store/clients/no-op-composer-client.js +3 -1
  592. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  593. package/dist/store/clients/runtime-adapter.d.ts +2 -5
  594. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  595. package/dist/store/clients/single-thread-list.d.ts +4 -6
  596. package/dist/store/clients/single-thread-list.d.ts.map +1 -1
  597. package/dist/store/clients/submission-message.d.ts +8 -0
  598. package/dist/store/clients/submission-message.d.ts.map +1 -0
  599. package/dist/store/clients/submission-message.js +22 -0
  600. package/dist/store/clients/submission-message.js.map +1 -0
  601. package/dist/store/clients/suggestions.d.ts +8 -11
  602. package/dist/store/clients/suggestions.d.ts.map +1 -1
  603. package/dist/store/clients/thread-message-client.d.ts +12 -12
  604. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  605. package/dist/store/clients/thread-message-client.js +81 -82
  606. package/dist/store/clients/thread-message-client.js.map +1 -1
  607. package/dist/store/clients/thread-selection-events.d.ts +1 -4
  608. package/dist/store/clients/thread-selection-events.d.ts.map +1 -1
  609. package/dist/store/clients/thread-tasks.d.ts +7 -10
  610. package/dist/store/clients/thread-tasks.d.ts.map +1 -1
  611. package/dist/store/env.d.ts +1 -4
  612. package/dist/store/env.d.ts.map +1 -1
  613. package/dist/store/index.d.ts +33 -36
  614. package/dist/store/index.d.ts.map +1 -0
  615. package/dist/store/index.js +5 -5
  616. package/dist/store/internal.d.ts +12 -12
  617. package/dist/store/internal.d.ts.map +1 -0
  618. package/dist/store/internal.js +2 -2
  619. package/dist/store/primitive-predicates.d.ts +14 -16
  620. package/dist/store/primitive-predicates.d.ts.map +1 -1
  621. package/dist/store/primitive-predicates.js +10 -5
  622. package/dist/store/primitive-predicates.js.map +1 -1
  623. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +4 -7
  624. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  625. package/dist/store/runtime-clients/composer-runtime-client.d.ts +11 -14
  626. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  627. package/dist/store/runtime-clients/composer-runtime-client.js +65 -62
  628. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  629. package/dist/store/runtime-clients/handle-runtime-action.d.ts +1 -4
  630. package/dist/store/runtime-clients/handle-runtime-action.d.ts.map +1 -1
  631. package/dist/store/runtime-clients/handle-thread-list-action.d.ts +1 -4
  632. package/dist/store/runtime-clients/handle-thread-list-action.d.ts.map +1 -1
  633. package/dist/store/runtime-clients/liveRef.d.ts +2 -5
  634. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
  635. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +4 -7
  636. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  637. package/dist/store/runtime-clients/message-part-runtime-client.js +26 -16
  638. package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
  639. package/dist/store/runtime-clients/message-runtime-client.d.ts +10 -11
  640. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  641. package/dist/store/runtime-clients/message-runtime-client.js +121 -113
  642. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  643. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +5 -8
  644. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  645. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +6 -9
  646. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  647. package/dist/store/runtime-clients/thread-runtime-client.d.ts +4 -7
  648. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  649. package/dist/store/runtime-clients/thread-runtime-client.js +221 -158
  650. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  651. package/dist/store/runtime-clients/useSubscribable.d.ts +3 -6
  652. package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
  653. package/dist/store/scope-registration.d.ts +28 -29
  654. package/dist/store/scope-registration.d.ts.map +1 -1
  655. package/dist/store/scopes/attachment.d.ts +19 -22
  656. package/dist/store/scopes/attachment.d.ts.map +1 -1
  657. package/dist/store/scopes/chain-of-thought.d.ts +33 -35
  658. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  659. package/dist/store/scopes/composer.d.ts +147 -135
  660. package/dist/store/scopes/composer.d.ts.map +1 -1
  661. package/dist/store/scopes/message.d.ts +119 -112
  662. package/dist/store/scopes/message.d.ts.map +1 -1
  663. package/dist/store/scopes/model-context.d.ts +10 -13
  664. package/dist/store/scopes/model-context.d.ts.map +1 -1
  665. package/dist/store/scopes/part.d.ts +53 -50
  666. package/dist/store/scopes/part.d.ts.map +1 -1
  667. package/dist/store/scopes/queue-item.d.ts +21 -23
  668. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  669. package/dist/store/scopes/suggestion.d.ts +14 -17
  670. package/dist/store/scopes/suggestion.d.ts.map +1 -1
  671. package/dist/store/scopes/suggestions.d.ts +18 -21
  672. package/dist/store/scopes/suggestions.d.ts.map +1 -1
  673. package/dist/store/scopes/task.d.ts +27 -30
  674. package/dist/store/scopes/task.d.ts.map +1 -1
  675. package/dist/store/scopes/thread-list-item.d.ts +68 -71
  676. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  677. package/dist/store/scopes/thread.d.ts +197 -200
  678. package/dist/store/scopes/thread.d.ts.map +1 -1
  679. package/dist/store/scopes/threads.d.ts +49 -52
  680. package/dist/store/scopes/threads.d.ts.map +1 -1
  681. package/dist/subscribable/subscribable.d.ts +73 -69
  682. package/dist/subscribable/subscribable.d.ts.map +1 -1
  683. package/dist/subscribable/subscribable.js +35 -7
  684. package/dist/subscribable/subscribable.js.map +1 -1
  685. package/dist/types/attachment.d.ts +35 -37
  686. package/dist/types/attachment.d.ts.map +1 -1
  687. package/dist/types/augmentations.d.ts +7 -8
  688. package/dist/types/augmentations.d.ts.map +1 -1
  689. package/dist/types/directive.d.ts +13 -16
  690. package/dist/types/directive.d.ts.map +1 -1
  691. package/dist/types/error.d.ts +15 -17
  692. package/dist/types/error.d.ts.map +1 -1
  693. package/dist/types/index.d.ts +7 -7
  694. package/dist/types/index.d.ts.map +1 -0
  695. package/dist/types/message.d.ts +358 -318
  696. package/dist/types/message.d.ts.map +1 -1
  697. package/dist/types/message.js.map +1 -1
  698. package/dist/types/quote.d.ts +3 -6
  699. package/dist/types/quote.d.ts.map +1 -1
  700. package/dist/types/trigger.d.ts +10 -13
  701. package/dist/types/trigger.d.ts.map +1 -1
  702. package/dist/types/unsubscribe.d.ts +1 -4
  703. package/dist/types/unsubscribe.d.ts.map +1 -1
  704. package/dist/utils/abortable-iterable.d.ts +2 -5
  705. package/dist/utils/abortable-iterable.d.ts.map +1 -1
  706. package/dist/utils/composite-context-provider.d.ts +9 -13
  707. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  708. package/dist/utils/data-url.d.ts +16 -19
  709. package/dist/utils/data-url.d.ts.map +1 -1
  710. package/dist/utils/getGroupStatus.d.ts +19 -21
  711. package/dist/utils/getGroupStatus.d.ts.map +1 -1
  712. package/dist/utils/id.d.ts +3 -6
  713. package/dist/utils/id.d.ts.map +1 -1
  714. package/dist/utils/image-media-type.d.ts +1 -4
  715. package/dist/utils/image-media-type.d.ts.map +1 -1
  716. package/dist/utils/invoke-user-callback.d.ts +1 -4
  717. package/dist/utils/invoke-user-callback.d.ts.map +1 -1
  718. package/dist/utils/json/is-json-equal.d.ts +1 -4
  719. package/dist/utils/json/is-json-equal.d.ts.map +1 -1
  720. package/dist/utils/json/is-json.d.ts +5 -8
  721. package/dist/utils/json/is-json.d.ts.map +1 -1
  722. package/dist/utils/json/stable-stringify-tool-args.d.ts +3 -6
  723. package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -1
  724. package/dist/utils/normalizePartStatus.d.ts +6 -8
  725. package/dist/utils/normalizePartStatus.d.ts.map +1 -1
  726. package/dist/utils/normalizePartStatus.js +3 -2
  727. package/dist/utils/normalizePartStatus.js.map +1 -1
  728. package/dist/utils/notify-event-listeners.d.ts +2 -4
  729. package/dist/utils/notify-event-listeners.d.ts.map +1 -1
  730. package/dist/utils/record.d.ts +1 -4
  731. package/dist/utils/record.d.ts.map +1 -1
  732. package/dist/utils/silent-runtime-action.d.ts +2 -5
  733. package/dist/utils/silent-runtime-action.d.ts.map +1 -1
  734. package/dist/utils/text.d.ts +2 -5
  735. package/dist/utils/text.d.ts.map +1 -1
  736. package/dist/utils/wire-media.d.ts +3 -6
  737. package/dist/utils/wire-media.d.ts.map +1 -1
  738. package/package.json +15 -13
  739. package/src/adapters/attachment.test.ts +98 -1
  740. package/src/adapters/attachment.ts +77 -20
  741. package/src/adapters/feedback.ts +1 -0
  742. package/src/adapters/speech.test.ts +94 -0
  743. package/src/adapters/speech.ts +16 -2
  744. package/src/adapters/thread-history.ts +16 -5
  745. package/src/adapters/voice.test.ts +169 -0
  746. package/src/adapters/voice.ts +25 -4
  747. package/src/index.ts +14 -2
  748. package/src/internal.ts +7 -0
  749. package/src/model-context/frame/host.test.ts +51 -1
  750. package/src/model-context/frame/host.ts +3 -1
  751. package/src/model-context/frame/provider.test.ts +106 -20
  752. package/src/model-context/frame/provider.ts +8 -1
  753. package/src/model-context/frame/validate.ts +57 -0
  754. package/src/model-context/interactable-composer-metadata.test.ts +82 -0
  755. package/src/model-context/interactable-composer-metadata.ts +45 -2
  756. package/src/react/RuntimeAdapter.test.ts +4 -1
  757. package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +711 -0
  758. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +125 -109
  759. package/src/react/client/Interactables.test.ts +865 -8
  760. package/src/react/client/Interactables.ts +325 -45
  761. package/src/react/client/RemoteThreadList.concurrent.test.tsx +9 -3
  762. package/src/react/client/RemoteThreadList.initialize-failure.test.ts +124 -0
  763. package/src/react/client/RemoteThreadList.test.ts +5 -6
  764. package/src/react/client/RemoteThreadList.ts +6 -0
  765. package/src/react/client/Tools.ts +2 -3
  766. package/src/react/client/interactable-model-context.test.ts +56 -13
  767. package/src/react/client/interactable-model-context.ts +48 -23
  768. package/src/react/index.ts +2 -2
  769. package/src/react/interactables-legacy/Interactables.test.ts +221 -4
  770. package/src/react/interactables-legacy/Interactables.ts +25 -14
  771. package/src/react/interactables-legacy/interactable-model-context.ts +26 -24
  772. package/src/react/interactables-legacy/useAssistantInteractable.test.tsx +40 -22
  773. package/src/react/interactables-shared/useInteractablePersistenceQueue.test.tsx +22 -2
  774. package/src/react/interactables-shared/useInteractablePersistenceQueue.ts +63 -11
  775. package/src/react/model-context/useInteractable.test.tsx +56 -29
  776. package/src/react/primitive-hooks/useActionBarCopy.test.ts +5 -5
  777. package/src/react/primitive-hooks/useSuggestionTrigger.test.ts +33 -0
  778. package/src/react/primitive-hooks/useSuggestionTrigger.ts +7 -4
  779. package/src/react/primitives/generativeUI/GenerativeUI.test.tsx +170 -0
  780. package/src/react/primitives/generativeUI/GenerativeUI.tsx +43 -28
  781. package/src/react/primitives/message/MessageAttachments.test.tsx +2 -6
  782. package/src/react/primitives/message/MessageAttachments.tsx +14 -8
  783. package/src/react/primitives/message/MessageGroupedParts.test.tsx +155 -8
  784. package/src/react/primitives/message/MessageGroupedParts.tsx +19 -6
  785. package/src/react/primitives/message/MessageParts.test.tsx +84 -0
  786. package/src/react/primitives/message/MessageParts.tool-interaction.test.tsx +69 -0
  787. package/src/react/primitives/message/MessageParts.tsx +29 -8
  788. package/src/react/primitives/thread/ThreadMessages.test.tsx +25 -7
  789. package/src/react/primitives/thread/ThreadSuggestions.test.tsx +97 -0
  790. package/src/react/primitives/thread/ThreadSuggestions.tsx +29 -6
  791. package/src/react/providers/ReadonlyThreadProvider.tsx +2 -2
  792. package/src/react/providers/TextMessagePartProvider.tsx +3 -0
  793. package/src/react/runtimes/RemoteThreadListHookInstanceManager.layout.test.tsx +62 -0
  794. package/src/react/runtimes/RemoteThreadListHookInstanceManager.retry.test.tsx +2 -2
  795. package/src/react/runtimes/RemoteThreadListHookInstanceManager.running.test.tsx +93 -0
  796. package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +181 -21
  797. package/src/react/runtimes/RemoteThreadListHookInstanceManager.title.test.tsx +62 -17
  798. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +112 -77
  799. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +19 -3
  800. package/src/react/runtimes/RemoteThreadResource.ts +5 -2
  801. package/src/react/runtimes/assistant-transport/replayBoundaryStream.test.ts +3 -1
  802. package/src/react/runtimes/assistant-transport/replayBoundaryStream.ts +10 -2
  803. package/src/react/runtimes/assistant-transport/runManager.ts +3 -0
  804. package/src/react/runtimes/assistant-transport/transport-parentid.test.tsx +57 -0
  805. package/src/react/runtimes/assistant-transport/transport-scheduling.test.ts +73 -46
  806. package/src/react/runtimes/assistant-transport/transport-thread-id.test.tsx +571 -0
  807. package/src/react/runtimes/assistant-transport/types.ts +9 -1
  808. package/src/react/runtimes/assistant-transport/useAssistantTransport.spec.md +10 -0
  809. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.test.tsx +108 -1
  810. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.ts +33 -9
  811. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.integration.test.tsx +289 -0
  812. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.test.tsx +471 -0
  813. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.engagement.test.tsx +330 -0
  814. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.ts +78 -2
  815. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +463 -2
  816. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +595 -227
  817. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +33 -4
  818. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +7 -3
  819. package/src/react/runtimes/cloud/auiV0.ts +275 -6
  820. package/src/react/runtimes/cloud/auiV0DecodeSafely.test.ts +873 -0
  821. package/src/react/runtimes/createMessageConverter.ts +9 -3
  822. package/src/react/runtimes/external-message-converter.test.ts +7 -3
  823. package/src/react/runtimes/external-store-history-copy.ts +223 -0
  824. package/src/react/runtimes/remote-thread-hook-on-tap.test.ts +2 -1
  825. package/src/react/runtimes/useExternalStoreRuntime.history-copy.test.tsx +483 -0
  826. package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +84 -3
  827. package/src/react/runtimes/useExternalStoreRuntime.suggestions.test.tsx +6 -2
  828. package/src/react/runtimes/useExternalStoreRuntime.ts +25 -5
  829. package/src/react/runtimes/useLocalRuntime.test.tsx +145 -1
  830. package/src/react/runtimes/useLocalRuntime.ts +8 -5
  831. package/src/react/runtimes/useRemoteThreadListRuntime.concurrent.test.tsx +84 -4
  832. package/src/react/runtimes/useRemoteThreadListRuntime.ts +5 -1
  833. package/src/react/types/MessagePartComponentTypes.ts +10 -0
  834. package/src/react/types/scopes/interactables.ts +3 -0
  835. package/src/runtime/api/attachment-runtime.ts +10 -5
  836. package/src/runtime/api/bindings.ts +6 -1
  837. package/src/runtime/api/composer-runtime.ts +29 -6
  838. package/src/runtime/api/message-part-runtime.test.ts +215 -0
  839. package/src/runtime/api/message-part-runtime.ts +44 -1
  840. package/src/runtime/api/message-runtime.test.ts +112 -2
  841. package/src/runtime/api/message-runtime.ts +25 -7
  842. package/src/runtime/api/thread-list-item-runtime.ts +5 -5
  843. package/src/runtime/api/thread-list-runtime.ts +3 -3
  844. package/src/runtime/api/thread-runtime.test.ts +59 -0
  845. package/src/runtime/api/thread-runtime.ts +21 -11
  846. package/src/runtime/base/base-composer-runtime-core.ts +548 -153
  847. package/src/runtime/base/base-thread-runtime-core.test.ts +1614 -136
  848. package/src/runtime/base/base-thread-runtime-core.ts +236 -46
  849. package/src/runtime/base/default-edit-composer-runtime-core.ts +24 -2
  850. package/src/runtime/base/default-thread-composer-runtime-core.ts +33 -3
  851. package/src/runtime/interfaces/composer-runtime-core.ts +19 -0
  852. package/src/runtime/interfaces/thread-runtime-core.ts +24 -1
  853. package/src/runtime/queue/message-queue.ts +11 -1
  854. package/src/runtime/utils/attachment-add-operations.ts +45 -2
  855. package/src/runtime/utils/attachment-send-operations.ts +54 -0
  856. package/src/runtime/utils/auto-status.test.ts +54 -0
  857. package/src/runtime/utils/auto-status.ts +3 -10
  858. package/src/runtime/utils/external-message-conversion.test.ts +91 -0
  859. package/src/runtime/utils/external-message-conversion.ts +9 -6
  860. package/src/runtime/utils/message-repository.test.ts +69 -1
  861. package/src/runtime/utils/message-repository.ts +14 -7
  862. package/src/runtime/utils/stored-message-parts.ts +216 -0
  863. package/src/runtime/utils/thread-message-like.test.ts +58 -0
  864. package/src/runtime/utils/thread-message-like.ts +79 -48
  865. package/src/runtime/utils/thread-runtime-lifecycle.test.ts +67 -0
  866. package/src/runtime/utils/thread-runtime-lifecycle.ts +42 -8
  867. package/src/runtime/utils/tool-interactions.test.ts +193 -0
  868. package/src/runtime/utils/tool-interactions.ts +147 -0
  869. package/src/runtimes/external-store/external-store-adapter.ts +25 -0
  870. package/src/runtimes/external-store/external-store-runtime-core.ts +10 -2
  871. package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +2 -2
  872. package/src/runtimes/external-store/external-store-thread-runtime-core.test.ts +49 -0
  873. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +114 -32
  874. package/src/runtimes/inert/InertThreadRuntimeCore.test.ts +127 -56
  875. package/src/runtimes/inert/InertThreadRuntimeCore.ts +10 -1
  876. package/src/runtimes/local/local-thread-runtime-core.edit-cancellation.test.ts +70 -0
  877. package/src/runtimes/local/local-thread-runtime-core.test.ts +1866 -169
  878. package/src/runtimes/local/local-thread-runtime-core.ts +365 -40
  879. package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +53 -1
  880. package/src/runtimes/remote-thread-list/optimistic-state.ts +8 -3
  881. package/src/runtimes/tool-invocations/EDGE_CASES.md +19 -4
  882. package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +392 -39
  883. package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +31 -8
  884. package/src/store/clients/external-thread.test.ts +145 -0
  885. package/src/store/clients/external-thread.ts +669 -144
  886. package/src/store/clients/model-context-client.test.ts +8 -8
  887. package/src/store/clients/no-op-composer-client.ts +2 -0
  888. package/src/store/clients/submission-message.ts +27 -0
  889. package/src/store/clients/thread-message-client.test.ts +39 -0
  890. package/src/store/clients/thread-message-client.ts +13 -6
  891. package/src/store/index.ts +2 -2
  892. package/src/store/internal.ts +1 -0
  893. package/src/store/primitive-predicates.test.ts +119 -0
  894. package/src/store/primitive-predicates.ts +19 -4
  895. package/src/store/runtime-clients/composer-runtime-client.ts +4 -3
  896. package/src/store/runtime-clients/message-part-runtime-client.test.ts +42 -0
  897. package/src/store/runtime-clients/message-part-runtime-client.ts +4 -0
  898. package/src/store/runtime-clients/message-runtime-client.ts +5 -0
  899. package/src/store/runtime-clients/thread-runtime-client.test.tsx +243 -0
  900. package/src/store/runtime-clients/thread-runtime-client.ts +46 -9
  901. package/src/store/scopes/composer.ts +22 -4
  902. package/src/store/scopes/message.ts +12 -1
  903. package/src/store/scopes/part.ts +8 -0
  904. package/src/subscribable/subscribable.test.ts +205 -3
  905. package/src/subscribable/subscribable.ts +49 -7
  906. package/src/tests/RemoteThreadListThreadListRuntimeCore-errors.test.ts +95 -1
  907. package/src/tests/attachment-adapters.test.ts +16 -1
  908. package/src/tests/auiV0Encode.test.ts +412 -1
  909. package/src/tests/base-composer-runtime-core-addAttachment.test.ts +6 -6
  910. package/src/tests/base-composer-runtime-core-send.test.ts +722 -29
  911. package/src/tests/base-composer-runtime-core.test.ts +212 -5
  912. package/src/tests/composer-can-cancel.test.ts +35 -6
  913. package/src/tests/composer-can-send.test.ts +120 -1
  914. package/src/tests/composer-submission.test.tsx +796 -0
  915. package/src/tests/default-edit-composer-runtime-core.test.ts +149 -2
  916. package/src/tests/external-store-thread-list-runtime-core.test.ts +111 -0
  917. package/src/tests/external-store-thread-runtime-core-adapter.test.ts +810 -28
  918. package/src/tests/external-store-thread-runtime-core.test.ts +217 -0
  919. package/src/tests/external-thread-attachments.test.tsx +763 -26
  920. package/src/tests/external-thread-feedback.test.tsx +20 -7
  921. package/src/tests/external-thread-isLast.test.tsx +69 -0
  922. package/src/tests/external-thread-parity.test.tsx +1 -1
  923. package/src/tests/get-thread-state-isRunning.test.ts +2 -2
  924. package/src/tests/message-queue.test.ts +45 -10
  925. package/src/tests/remote-thread-list-adapter-switch.test.ts +45 -1
  926. package/src/tests/thread-switch-events.test.tsx +11 -7
  927. package/src/tests/useRemoteThreadListRuntime-controlled.test.tsx +2 -1
  928. package/src/types/message.test.ts +19 -0
  929. package/src/types/message.ts +65 -10
  930. package/src/utils/normalizePartStatus.ts +14 -1
  931. package/dist/tests/remote-thread-list-test-helpers.d.ts +0 -16
  932. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +0 -1
  933. package/dist/tests/remote-thread-list-test-helpers.js +0 -59
  934. package/dist/tests/remote-thread-list-test-helpers.js.map +0 -1
@@ -1,57 +1,54 @@
1
- import { ThreadListItemMethods, ThreadListItemState } from "./thread-list-item.js";
2
- import { ThreadMethods, ThreadState } from "./thread.js";
3
- import { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
4
- //#region src/store/scopes/threads.d.ts
5
- type ThreadsState = {
6
- readonly mainThreadId: string;
7
- readonly newThreadId: string | null;
8
- readonly isLoading: boolean;
9
- readonly loadError: unknown;
10
- readonly isLoadingMore: boolean;
11
- readonly hasMore: boolean;
12
- readonly threadIds: readonly string[];
13
- readonly archivedThreadIds: readonly string[];
14
- readonly threadItems: readonly ThreadListItemState[];
15
- readonly main: ThreadState;
1
+ import type { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
2
+ import type { ThreadListItemMethods, ThreadListItemState } from "./thread-list-item.js";
3
+ import type { ThreadMethods, ThreadState } from "./thread.js";
4
+ export type ThreadsState = {
5
+ readonly mainThreadId: string;
6
+ readonly newThreadId: string | null;
7
+ readonly isLoading: boolean;
8
+ readonly loadError: unknown;
9
+ readonly isLoadingMore: boolean;
10
+ readonly hasMore: boolean;
11
+ readonly threadIds: readonly string[];
12
+ readonly archivedThreadIds: readonly string[];
13
+ readonly threadItems: readonly ThreadListItemState[];
14
+ readonly main: ThreadState;
16
15
  };
17
- type ThreadsMethods = {
18
- getState(): ThreadsState;
19
- switchToThread(threadId: string, options?: {
20
- unarchive?: boolean;
21
- }): void;
22
- switchToNewThread(): void;
23
- item(threadIdOrOptions: "main" | {
24
- id: string;
25
- } | {
26
- index: number;
27
- archived?: boolean;
28
- }): ThreadListItemMethods;
29
- thread(selector: "main"): ThreadMethods;
30
- getLoadThreadsPromise(): Promise<void>;
31
- reload(): Promise<void>;
32
- reloadMainThread(): Promise<void>;
33
- loadMore(): Promise<void>;
34
- __internal_getAssistantRuntime?(): AssistantRuntime;
16
+ export type ThreadsMethods = {
17
+ getState(): ThreadsState;
18
+ switchToThread(threadId: string, options?: {
19
+ unarchive?: boolean;
20
+ }): void;
21
+ switchToNewThread(): void;
22
+ item(threadIdOrOptions: "main" | {
23
+ id: string;
24
+ } | {
25
+ index: number;
26
+ archived?: boolean;
27
+ }): ThreadListItemMethods;
28
+ thread(selector: "main"): ThreadMethods;
29
+ getLoadThreadsPromise(): Promise<void>;
30
+ reload(): Promise<void>;
31
+ reloadMainThread(): Promise<void>;
32
+ loadMore(): Promise<void>;
33
+ __internal_getAssistantRuntime?(): AssistantRuntime;
35
34
  };
36
- type ThreadsEvents = {
37
- /**
38
- * The main thread selection changed. Fires once per switch with the newly
39
- * selected thread and the thread that was selected before. Does not fire
40
- * for the initially selected thread on mount. Runtimes that resolve a
41
- * deep-linked `threadId`/`initialThreadId` after mount (such as
42
- * `useRemoteThreadListRuntime`) start on a placeholder new thread, so the
43
- * deep link's resolution fires this event with the placeholder as
44
- * `previousThreadId`.
45
- */
46
- "threads.selectionChanged": {
47
- threadId: string;
48
- previousThreadId: string;
49
- };
35
+ export type ThreadsEvents = {
36
+ /**
37
+ * The main thread selection changed. Fires once per switch with the newly
38
+ * selected thread and the thread that was selected before. Does not fire
39
+ * for the initially selected thread on mount. Runtimes that resolve a
40
+ * deep-linked `threadId`/`initialThreadId` after mount (such as
41
+ * `useRemoteThreadListRuntime`) start on a placeholder new thread, so the
42
+ * deep link's resolution fires this event with the placeholder as
43
+ * `previousThreadId`.
44
+ */
45
+ "threads.selectionChanged": {
46
+ threadId: string;
47
+ previousThreadId: string;
48
+ };
50
49
  };
51
- type ThreadsClientSchema = {
52
- methods: ThreadsMethods;
53
- events: ThreadsEvents;
50
+ export type ThreadsClientSchema = {
51
+ methods: ThreadsMethods;
52
+ events: ThreadsEvents;
54
53
  };
55
- //#endregion
56
- export { ThreadsClientSchema, ThreadsEvents, ThreadsMethods, ThreadsState };
57
54
  //# sourceMappingURL=threads.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"threads.d.ts","names":[],"sources":["../../../src/store/scopes/threads.ts"],"mappings":";;;;KAOY;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,sBAAsB;WACtB,MAAM;;KAGL;EACV,YAAY;EACZ,eAAe,kBAAkB;IAAY;;EAC7C;EACA,KACE;IAEM;;IACA;IAAe;MACpB;EACH,OAAO,mBAAmB;EAC1B,yBAAyB;EACzB,UAAU;EACV,oBAAoB;EACpB,YAAY;EACZ,mCAAmC;;KAGzB;;;;;;;;;;EAUV;IAA8B;IAAkB;;;KAGtC;EACV,SAAS;EACT,QAAQ"}
1
+ {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../../src/store/scopes/threads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,+CAA4C;AAC5E,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACpB,8BAA2B;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAiB;AAE3D,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,IAAI,YAAY,CAAC;IACzB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1E,iBAAiB,IAAI,IAAI,CAAC;IAC1B,IAAI,CACF,iBAAiB,EACb,MAAM,GACN;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GACd;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GACxC,qBAAqB,CAAC;IACzB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;IACxC,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,8BAA8B,CAAC,IAAI,gBAAgB,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;;;;;OAQG;IACH,0BAA0B,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5E,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;CACvB,CAAC"}
@@ -1,80 +1,84 @@
1
- import { Unsubscribe } from "../types/unsubscribe.js";
2
- //#region src/subscribable/subscribable.d.ts
3
- declare const SKIP_UPDATE: unique symbol;
4
- type SKIP_UPDATE = typeof SKIP_UPDATE;
5
- type Subscribable = {
6
- subscribe: (callback: () => void) => Unsubscribe;
1
+ import type { Unsubscribe } from "../types/unsubscribe.js";
2
+ export declare const SKIP_UPDATE: unique symbol;
3
+ export type SKIP_UPDATE = typeof SKIP_UPDATE;
4
+ export type Subscribable = {
5
+ subscribe: (callback: () => void) => Unsubscribe;
7
6
  };
8
- type SubscribableWithState<TState, TPath> = Subscribable & {
9
- path: TPath;
10
- getState: () => TState;
7
+ export type SubscribableWithState<TState, TPath> = Subscribable & {
8
+ path: TPath;
9
+ getState: () => TState;
11
10
  };
12
- type NestedSubscribable<TState extends Subscribable | undefined, TPath> = SubscribableWithState<TState, TPath>;
13
- type EventSubscribable<TEvent extends string> = {
14
- event: TEvent;
15
- binding: SubscribableWithState<{
16
- unstable_on: (event: TEvent, callback: (payload?: unknown) => void) => Unsubscribe;
17
- } | undefined, unknown>;
11
+ export type NestedSubscribable<TState extends Subscribable | undefined, TPath> = SubscribableWithState<TState, TPath>;
12
+ export type EventSubscribable<TEvent extends string> = {
13
+ event: TEvent;
14
+ binding: SubscribableWithState<{
15
+ unstable_on: (event: TEvent, callback: (payload?: unknown) => void) => Unsubscribe;
16
+ } | undefined, unknown>;
17
+ /**
18
+ * Notifies subscribers with an empty payload when the binding swaps to a
19
+ * different source. For an event that reports a change to a value read off
20
+ * the source rather than an occurrence in time, the swap is itself such a
21
+ * change, and the previous source never announces it.
22
+ */
23
+ notifyOnRebind?: boolean;
18
24
  };
19
- declare const notifySubscribers: <TArgs extends unknown[]>(subscribers: Iterable<(...args: TArgs) => void>, ...args: TArgs) => void;
20
- declare const runCleanups: (cleanups: Iterable<Unsubscribe>) => void;
21
- declare class BaseSubscribable {
22
- private _subscribers;
23
- subscribe(callback: () => void): Unsubscribe;
24
- waitForUpdate(): Promise<void>;
25
- protected _notifySubscribers(): void;
25
+ export declare const notifySubscribers: <TArgs extends unknown[]>(subscribers: Iterable<(...args: TArgs) => void>, ...args: TArgs) => void;
26
+ export declare const runCleanups: (cleanups: Iterable<Unsubscribe>) => void;
27
+ export declare class BaseSubscribable {
28
+ private _subscribers;
29
+ subscribe(callback: () => void): Unsubscribe;
30
+ waitForUpdate(): Promise<void>;
31
+ protected _notifySubscribers(): void;
26
32
  }
27
- declare class WritableSubscribable<TState> extends BaseSubscribable {
28
- private _state;
29
- constructor(state: TState);
30
- getState(): TState;
31
- getServerSnapshot: () => TState;
32
- setState(state: TState): void;
33
+ export declare class WritableSubscribable<TState> extends BaseSubscribable {
34
+ private _state;
35
+ constructor(state: TState);
36
+ getState(): TState;
37
+ getServerSnapshot: () => TState;
38
+ setState(state: TState): void;
33
39
  }
34
- declare abstract class BaseSubject {
35
- private _subscriptions;
36
- private _connection;
37
- protected get isConnected(): boolean;
38
- protected abstract _connect(): Unsubscribe;
39
- protected notifySubscribers(payload?: unknown, errorContext?: string): void;
40
- private _updateConnection;
41
- subscribe(callback: (payload?: unknown) => void): () => void;
40
+ export declare abstract class BaseSubject {
41
+ private _subscriptions;
42
+ private _connection;
43
+ protected get isConnected(): boolean;
44
+ protected abstract _connect(): Unsubscribe;
45
+ protected notifySubscribers(payload?: unknown, errorContext?: string): void;
46
+ private _updateConnection;
47
+ subscribe(callback: (payload?: unknown) => void): () => void;
42
48
  }
43
- declare class ShallowMemoizeSubject<TState extends object, TPath> extends BaseSubject implements SubscribableWithState<TState, TPath> {
44
- get path(): TPath;
45
- private binding;
46
- constructor(binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>);
47
- private _previousState;
48
- getState: () => TState;
49
- private _syncState;
50
- protected _connect(): Unsubscribe;
49
+ export declare class ShallowMemoizeSubject<TState extends object, TPath> extends BaseSubject implements SubscribableWithState<TState, TPath> {
50
+ get path(): TPath;
51
+ private binding;
52
+ constructor(binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>);
53
+ private _previousState;
54
+ getState: () => TState;
55
+ private _syncState;
56
+ protected _connect(): Unsubscribe;
51
57
  }
52
- declare class LazyMemoizeSubject<TState extends object, TPath> extends BaseSubject implements SubscribableWithState<TState, TPath> {
53
- get path(): TPath;
54
- private binding;
55
- constructor(binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>);
56
- private _previousStateDirty;
57
- private _previousState;
58
- getState: () => TState;
59
- protected _connect(): Unsubscribe;
58
+ export declare class LazyMemoizeSubject<TState extends object, TPath> extends BaseSubject implements SubscribableWithState<TState, TPath> {
59
+ get path(): TPath;
60
+ private binding;
61
+ constructor(binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>);
62
+ private _previousStateDirty;
63
+ private _previousState;
64
+ getState: () => TState;
65
+ protected _connect(): Unsubscribe;
60
66
  }
61
- declare class NestedSubscriptionSubject<TState extends Subscribable | undefined, TPath> extends BaseSubject implements SubscribableWithState<TState, TPath>, NestedSubscribable<TState, TPath> {
62
- get path(): TPath;
63
- private binding;
64
- constructor(binding: NestedSubscribable<TState, TPath>);
65
- getState(): TState;
66
- outerSubscribe(callback: () => void): Unsubscribe;
67
- protected _connect(): Unsubscribe;
67
+ export declare class NestedSubscriptionSubject<TState extends Subscribable | undefined, TPath> extends BaseSubject implements SubscribableWithState<TState, TPath>, NestedSubscribable<TState, TPath> {
68
+ get path(): TPath;
69
+ private binding;
70
+ constructor(binding: NestedSubscribable<TState, TPath>);
71
+ getState(): TState;
72
+ outerSubscribe(callback: () => void): Unsubscribe;
73
+ protected _connect(): Unsubscribe;
68
74
  }
69
- declare class EventSubscriptionSubject<TEvent extends string> extends BaseSubject {
70
- private config;
71
- constructor(config: EventSubscribable<TEvent>);
72
- getState(): {
73
- unstable_on: (event: TEvent, callback: (payload?: unknown) => void) => Unsubscribe;
74
- } | undefined;
75
- outerSubscribe(callback: () => void): Unsubscribe;
76
- protected _connect(): Unsubscribe;
75
+ export declare class EventSubscriptionSubject<TEvent extends string> extends BaseSubject {
76
+ private config;
77
+ constructor(config: EventSubscribable<TEvent>);
78
+ getState(): {
79
+ unstable_on: (event: TEvent, callback: (payload?: unknown) => void) => Unsubscribe;
80
+ } | undefined;
81
+ outerSubscribe(callback: () => void): Unsubscribe;
82
+ protected _connect(): Unsubscribe;
77
83
  }
78
- //#endregion
79
- export { BaseSubject, BaseSubscribable, EventSubscribable, EventSubscriptionSubject, LazyMemoizeSubject, NestedSubscribable, NestedSubscriptionSubject, SKIP_UPDATE, ShallowMemoizeSubject, Subscribable, SubscribableWithState, WritableSubscribable, notifySubscribers, runCleanups };
80
84
  //# sourceMappingURL=subscribable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscribable.d.ts","names":[],"sources":["../../src/subscribable/subscribable.ts"],"mappings":";;cAIa;KACD,qBAAqB;KAErB;EACV,YAAY,yBAAyB;;KAG3B,sBAAsB,QAAQ,SAAS;EACjD,MAAM;EACN,gBAAgB;;KAGN,mBACV,eAAe,0BACf,SACE,sBAAsB,QAAQ;KAEtB,kBAAkB;EAC5B,OAAO;EACP,SAAS;IAEH,cACE,OAAO,QACP,WAAW,+BACR;;;cAOA,oBAAqB,yBAChC,aAAa,aAAa,MAAM,oBAC7B,MAAM;cAuBE,cAAe,UAAU,SAAS;cASlC;UACH;EAED,UAAU,uBAAuB;EAKjC,iBAAa;YASV;;cAKC,qBAAqB,gBAAgB;UACxC;EAEI,YAAA,OAAO;EAUZ,YAAY;EAIZ,yBAAyB;EAEzB,SAAS,OAAO;;uBAQH;UACZ;UACA;gBAEM;qBAIK,YAAY;YAErB,kBAAkB,mBAAmB;UASvC;EAWD,UAAU,WAAW;;cAWjB,sBAAsB,uBAAuB,eAChD,uBACG,sBAAsB,QAAQ;MAE9B,QAAI;UAIP;EAEI,YAAA,SAAS,sBAAsB,SAAS,aAAa;UASzD;EACD,gBAAQ;UAKP;YAQE,YAAQ;;cAaP,mBAAmB,uBAAuB,eAC7C,uBACG,sBAAsB,QAAQ;MAE9B,QAAI;UAIP;EAEI,YAAA,SAAS,sBAAsB,SAAS,aAAa;UAKzD;UACA;EACD,gBAAQ;YAiBL,YAAQ;;cAYP,0BACX,eAAe,0BACf,eAEQ,uBAEN,sBAAsB,QAAQ,QAC9B,mBAAmB,QAAQ;MAElB,QAAI;UAIP;EAEI,YAAA,SAAS,mBAAmB,QAAQ;EAKzC,YAAQ;EAIR,eAAe,uBAAoB;YAIhC,YAAY;;cA4BX,yBACX,+BACQ;UACA;EAEI,YAAA,QAAQ,kBAAkB;EAK/B;IAlSW,cAAA,OAAA,QAAA,WAAC,+BACR;;EAqSJ,eAAe,uBAAoB;YAIhC,YAAY"}
1
+ {"version":3,"file":"subscribable.d.ts","sourceRoot":"","sources":["../../src/subscribable/subscribable.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,14 @@ const notifySubscribers = (subscribers, ...args) => {
18
18
  const runCleanups = (cleanups) => {
19
19
  notifySubscribers(cleanups);
20
20
  };
21
+ const rollbackSubscription = (cleanup, connectionError) => {
22
+ try {
23
+ cleanup();
24
+ } catch (cleanupError) {
25
+ console.error("[assistant-ui] Subscription rollback cleanup threw", cleanupError);
26
+ }
27
+ throw connectionError;
28
+ };
21
29
  const shallowEqualOrUndefined = (a, b) => a === void 0 || b === void 0 ? a === b : shallowEqual(a, b);
22
30
  var BaseSubscribable = class {
23
31
  _subscribers = /* @__PURE__ */ new Set();
@@ -81,7 +89,12 @@ var BaseSubject = class {
81
89
  }
82
90
  subscribe(callback) {
83
91
  this._subscriptions.add(callback);
84
- this._updateConnection();
92
+ try {
93
+ this._updateConnection();
94
+ } catch (error) {
95
+ this._subscriptions.delete(callback);
96
+ throw error;
97
+ }
85
98
  return () => {
86
99
  this._subscriptions.delete(callback);
87
100
  this._updateConnection();
@@ -117,8 +130,12 @@ var ShallowMemoizeSubject = class extends BaseSubject {
117
130
  if (this._syncState()) this.notifySubscribers();
118
131
  };
119
132
  const unsubscribe = this.binding.subscribe(callback);
120
- this._syncState();
121
- return unsubscribe;
133
+ try {
134
+ this._syncState();
135
+ return unsubscribe;
136
+ } catch (error) {
137
+ throw rollbackSubscription(unsubscribe, error);
138
+ }
122
139
  }
123
140
  };
124
141
  var LazyMemoizeSubject = class extends BaseSubject {
@@ -185,8 +202,13 @@ var NestedSubscriptionSubject = class extends BaseSubject {
185
202
  callback();
186
203
  }
187
204
  };
188
- const outerUnsubscribe = this.outerSubscribe(onRuntimeUpdate);
189
- return () => runCleanups([() => outerUnsubscribe?.(), () => innerUnsubscribe?.()]);
205
+ let outerUnsubscribe;
206
+ try {
207
+ outerUnsubscribe = this.outerSubscribe(onRuntimeUpdate);
208
+ } catch (error) {
209
+ throw rollbackSubscription(() => innerUnsubscribe?.(), error);
210
+ }
211
+ return () => runCleanups([() => outerUnsubscribe(), () => innerUnsubscribe?.()]);
190
212
  }
191
213
  };
192
214
  var EventSubscriptionSubject = class extends BaseSubject {
@@ -218,10 +240,16 @@ var EventSubscriptionSubject = class extends BaseSubject {
218
240
  previousInner?.();
219
241
  } finally {
220
242
  innerUnsubscribe = newState?.unstable_on(this.config.event, callback);
243
+ if (this.config.notifyOnRebind) callback({});
221
244
  }
222
245
  };
223
- const outerUnsubscribe = this.outerSubscribe(onRuntimeUpdate);
224
- return () => runCleanups([() => outerUnsubscribe?.(), () => innerUnsubscribe?.()]);
246
+ let outerUnsubscribe;
247
+ try {
248
+ outerUnsubscribe = this.outerSubscribe(onRuntimeUpdate);
249
+ } catch (error) {
250
+ throw rollbackSubscription(() => innerUnsubscribe?.(), error);
251
+ }
252
+ return () => runCleanups([() => outerUnsubscribe(), () => innerUnsubscribe?.()]);
225
253
  }
226
254
  };
227
255
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"subscribable.js","names":["shallowEqual","Unsubscribe","notifyEventListeners","SKIP_UPDATE","Symbol","Subscribable","subscribe","callback","SubscribableWithState","path","TPath","getState","TState","NestedSubscribable","EventSubscribable","event","TEvent","binding","unstable_on","payload","notifySubscribers","subscribers","Iterable","args","TArgs","errors","error","push","length","console","AggregateError","runCleanups","cleanups","shallowEqualOrUndefined","a","T","b","undefined","BaseSubscribable","_subscribers","Set","add","delete","waitForUpdate","Promise","resolve","unsubscribe","_notifySubscribers","WritableSubscribable","_state","constructor","state","bind","getServerSnapshot","setState","Object","is","BaseSubject","_subscriptions","_connection","isConnected","_connect","errorContext","_updateConnection","size","connection","ShallowMemoizeSubject","Error","_previousState","_syncState","LazyMemoizeSubject","_previousStateDirty","newState","NestedSubscriptionSubject","outerSubscribe","lastState","innerUnsubscribe","onRuntimeUpdate","previousInner","outerUnsubscribe","EventSubscriptionSubject","config"],"sources":["../../src/subscribable/subscribable.ts"],"sourcesContent":["import { shallowEqual } from \"@assistant-ui/store/client\";\nimport type { Unsubscribe } from \"../types/unsubscribe\";\nimport { notifyEventListeners } from \"../utils/notify-event-listeners\";\n\nexport const SKIP_UPDATE = Symbol(\"skip-update\");\nexport type SKIP_UPDATE = typeof SKIP_UPDATE;\n\nexport type Subscribable = {\n subscribe: (callback: () => void) => Unsubscribe;\n};\n\nexport type SubscribableWithState<TState, TPath> = Subscribable & {\n path: TPath;\n getState: () => TState;\n};\n\nexport type NestedSubscribable<\n TState extends Subscribable | undefined,\n TPath,\n> = SubscribableWithState<TState, TPath>;\n\nexport type EventSubscribable<TEvent extends string> = {\n event: TEvent;\n binding: SubscribableWithState<\n | {\n unstable_on: (\n event: TEvent,\n callback: (payload?: unknown) => void,\n ) => Unsubscribe;\n }\n | undefined,\n unknown\n >;\n};\n\nexport const notifySubscribers = <TArgs extends unknown[]>(\n subscribers: Iterable<(...args: TArgs) => void>,\n ...args: TArgs\n): void => {\n const errors: unknown[] = [];\n for (const callback of subscribers) {\n try {\n callback(...args);\n } catch (error) {\n errors.push(error);\n }\n }\n\n if (errors.length === 1) {\n throw errors[0];\n }\n\n if (errors.length > 1) {\n for (const error of errors) {\n console.error(error);\n }\n throw new AggregateError(errors);\n }\n};\n\nexport const runCleanups = (cleanups: Iterable<Unsubscribe>): void => {\n notifySubscribers(cleanups);\n};\n\nconst shallowEqualOrUndefined = <T extends object>(\n a: T | undefined,\n b: T | undefined,\n) => (a === undefined || b === undefined ? a === b : shallowEqual(a, b));\n\nexport class BaseSubscribable {\n private _subscribers = new Set<() => void>();\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscribers.add(callback);\n return () => this._subscribers.delete(callback);\n }\n\n public waitForUpdate() {\n return new Promise<void>((resolve) => {\n const unsubscribe = this.subscribe(() => {\n unsubscribe();\n resolve();\n });\n });\n }\n\n protected _notifySubscribers() {\n notifySubscribers(this._subscribers);\n }\n}\n\nexport class WritableSubscribable<TState> extends BaseSubscribable {\n private _state: TState;\n\n constructor(state: TState) {\n super();\n this._state = state;\n this.subscribe = this.subscribe.bind(this);\n this.getState = this.getState.bind(this);\n // Hydration has to agree with what the server rendered, so the server\n // snapshot stays at the creation-time state rather than following writes.\n this.getServerSnapshot = () => state;\n }\n\n public getState(): TState {\n return this._state;\n }\n\n public getServerSnapshot: () => TState;\n\n public setState(state: TState): void {\n if (Object.is(state, this._state)) return;\n this._state = state;\n this._notifySubscribers();\n }\n}\n\n// lazy connect/disconnect: only opens upstream subscription while it has subscribers\nexport abstract class BaseSubject {\n private _subscriptions = new Set<(payload?: unknown) => void>();\n private _connection: Unsubscribe | undefined;\n\n protected get isConnected() {\n return !!this._connection;\n }\n\n protected abstract _connect(): Unsubscribe;\n\n protected notifySubscribers(payload?: unknown, errorContext?: string) {\n if (errorContext) {\n notifyEventListeners(this._subscriptions, payload, errorContext);\n return;\n }\n\n notifySubscribers(this._subscriptions, payload);\n }\n\n private _updateConnection() {\n if (this._subscriptions.size > 0) {\n if (this._connection) return;\n this._connection = this._connect();\n } else {\n const connection = this._connection;\n this._connection = undefined;\n connection?.();\n }\n }\n\n public subscribe(callback: (payload?: unknown) => void) {\n this._subscriptions.add(callback);\n this._updateConnection();\n\n return () => {\n this._subscriptions.delete(callback);\n this._updateConnection();\n };\n }\n}\n\nexport class ShallowMemoizeSubject<TState extends object, TPath>\n extends BaseSubject\n implements SubscribableWithState<TState, TPath>\n{\n public get path() {\n return this.binding.path;\n }\n\n private binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>;\n\n constructor(binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>) {\n super();\n this.binding = binding;\n const state = binding.getState();\n if (state === SKIP_UPDATE)\n throw new Error(\"Entry not available in the store\");\n this._previousState = state;\n }\n\n private _previousState: TState;\n public getState = () => {\n if (!this.isConnected) this._syncState();\n return this._previousState;\n };\n\n private _syncState() {\n const state = this.binding.getState();\n if (state === SKIP_UPDATE) return false;\n if (shallowEqualOrUndefined(state, this._previousState)) return false;\n this._previousState = state;\n return true;\n }\n\n protected _connect() {\n const callback = () => {\n if (this._syncState()) {\n this.notifySubscribers();\n }\n };\n\n const unsubscribe = this.binding.subscribe(callback);\n this._syncState();\n return unsubscribe;\n }\n}\n\nexport class LazyMemoizeSubject<TState extends object, TPath>\n extends BaseSubject\n implements SubscribableWithState<TState, TPath>\n{\n public get path() {\n return this.binding.path;\n }\n\n private binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>;\n\n constructor(binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>) {\n super();\n this.binding = binding;\n }\n\n private _previousStateDirty = true;\n private _previousState: TState | undefined;\n public getState = () => {\n if (!this.isConnected || this._previousStateDirty) {\n const newState = this.binding.getState();\n if (\n newState !== SKIP_UPDATE &&\n (this._previousState === undefined ||\n !shallowEqualOrUndefined(newState, this._previousState))\n ) {\n this._previousState = newState;\n }\n this._previousStateDirty = false;\n }\n if (this._previousState === undefined)\n throw new Error(\"Entry not available in the store\");\n return this._previousState;\n };\n\n protected _connect() {\n const callback = () => {\n this._previousStateDirty = true;\n this.notifySubscribers();\n };\n\n const unsubscribe = this.binding.subscribe(callback);\n this._previousStateDirty = true;\n return unsubscribe;\n }\n}\n\nexport class NestedSubscriptionSubject<\n TState extends Subscribable | undefined,\n TPath,\n>\n extends BaseSubject\n implements\n SubscribableWithState<TState, TPath>,\n NestedSubscribable<TState, TPath>\n{\n public get path() {\n return this.binding.path;\n }\n\n private binding: NestedSubscribable<TState, TPath>;\n\n constructor(binding: NestedSubscribable<TState, TPath>) {\n super();\n this.binding = binding;\n }\n\n public getState() {\n return this.binding.getState();\n }\n\n public outerSubscribe(callback: () => void) {\n return this.binding.subscribe(callback);\n }\n\n protected _connect(): Unsubscribe {\n const callback = () => {\n this.notifySubscribers();\n };\n\n let lastState = this.binding.getState();\n let innerUnsubscribe = lastState?.subscribe(callback);\n const onRuntimeUpdate = () => {\n const newState = this.binding.getState();\n if (newState === lastState) return;\n lastState = newState;\n\n const previousInner = innerUnsubscribe;\n innerUnsubscribe = undefined;\n try {\n previousInner?.();\n } finally {\n innerUnsubscribe = newState?.subscribe(callback);\n callback();\n }\n };\n\n const outerUnsubscribe = this.outerSubscribe(onRuntimeUpdate);\n return () =>\n runCleanups([() => outerUnsubscribe?.(), () => innerUnsubscribe?.()]);\n }\n}\n\nexport class EventSubscriptionSubject<\n TEvent extends string,\n> extends BaseSubject {\n private config: EventSubscribable<TEvent>;\n\n constructor(config: EventSubscribable<TEvent>) {\n super();\n this.config = config;\n }\n\n public getState() {\n return this.config.binding.getState();\n }\n\n public outerSubscribe(callback: () => void) {\n return this.config.binding.subscribe(callback);\n }\n\n protected _connect(): Unsubscribe {\n const errorContext = `Runtime event \"${this.config.event}\"`;\n const callback = (payload?: unknown) => {\n this.notifySubscribers(payload, errorContext);\n };\n\n let lastState = this.config.binding.getState();\n let innerUnsubscribe = lastState?.unstable_on(this.config.event, callback);\n const onRuntimeUpdate = () => {\n const newState = this.config.binding.getState();\n if (newState === lastState) return;\n lastState = newState;\n\n const previousInner = innerUnsubscribe;\n innerUnsubscribe = undefined;\n try {\n previousInner?.();\n } finally {\n innerUnsubscribe = newState?.unstable_on(this.config.event, callback);\n }\n };\n\n const outerUnsubscribe = this.outerSubscribe(onRuntimeUpdate);\n return () =>\n runCleanups([() => outerUnsubscribe?.(), () => innerUnsubscribe?.()]);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"subscribable.js","names":["shallowEqual","Unsubscribe","notifyEventListeners","SKIP_UPDATE","Symbol","Subscribable","subscribe","callback","SubscribableWithState","path","TPath","getState","TState","NestedSubscribable","EventSubscribable","event","TEvent","binding","unstable_on","payload","notifyOnRebind","notifySubscribers","subscribers","Iterable","args","TArgs","errors","error","push","length","console","AggregateError","runCleanups","cleanups","rollbackSubscription","cleanup","connectionError","cleanupError","shallowEqualOrUndefined","a","T","b","undefined","BaseSubscribable","_subscribers","Set","add","delete","waitForUpdate","Promise","resolve","unsubscribe","_notifySubscribers","WritableSubscribable","_state","constructor","state","bind","getServerSnapshot","setState","Object","is","BaseSubject","_subscriptions","_connection","isConnected","_connect","errorContext","_updateConnection","size","connection","ShallowMemoizeSubject","Error","_previousState","_syncState","LazyMemoizeSubject","_previousStateDirty","newState","NestedSubscriptionSubject","outerSubscribe","lastState","innerUnsubscribe","onRuntimeUpdate","previousInner","outerUnsubscribe","EventSubscriptionSubject","config"],"sources":["../../src/subscribable/subscribable.ts"],"sourcesContent":["import { shallowEqual } from \"@assistant-ui/store/client\";\nimport type { Unsubscribe } from \"../types/unsubscribe\";\nimport { notifyEventListeners } from \"../utils/notify-event-listeners\";\n\nexport const SKIP_UPDATE = Symbol(\"skip-update\");\nexport type SKIP_UPDATE = typeof SKIP_UPDATE;\n\nexport type Subscribable = {\n subscribe: (callback: () => void) => Unsubscribe;\n};\n\nexport type SubscribableWithState<TState, TPath> = Subscribable & {\n path: TPath;\n getState: () => TState;\n};\n\nexport type NestedSubscribable<\n TState extends Subscribable | undefined,\n TPath,\n> = SubscribableWithState<TState, TPath>;\n\nexport type EventSubscribable<TEvent extends string> = {\n event: TEvent;\n binding: SubscribableWithState<\n | {\n unstable_on: (\n event: TEvent,\n callback: (payload?: unknown) => void,\n ) => Unsubscribe;\n }\n | undefined,\n unknown\n >;\n /**\n * Notifies subscribers with an empty payload when the binding swaps to a\n * different source. For an event that reports a change to a value read off\n * the source rather than an occurrence in time, the swap is itself such a\n * change, and the previous source never announces it.\n */\n notifyOnRebind?: boolean;\n};\n\nexport const notifySubscribers = <TArgs extends unknown[]>(\n subscribers: Iterable<(...args: TArgs) => void>,\n ...args: TArgs\n): void => {\n const errors: unknown[] = [];\n for (const callback of subscribers) {\n try {\n callback(...args);\n } catch (error) {\n errors.push(error);\n }\n }\n\n if (errors.length === 1) {\n throw errors[0];\n }\n\n if (errors.length > 1) {\n for (const error of errors) {\n console.error(error);\n }\n throw new AggregateError(errors);\n }\n};\n\nexport const runCleanups = (cleanups: Iterable<Unsubscribe>): void => {\n notifySubscribers(cleanups);\n};\n\nconst rollbackSubscription = (\n cleanup: Unsubscribe,\n connectionError: unknown,\n): never => {\n try {\n cleanup();\n } catch (cleanupError) {\n console.error(\n \"[assistant-ui] Subscription rollback cleanup threw\",\n cleanupError,\n );\n }\n throw connectionError;\n};\n\nconst shallowEqualOrUndefined = <T extends object>(\n a: T | undefined,\n b: T | undefined,\n) => (a === undefined || b === undefined ? a === b : shallowEqual(a, b));\n\nexport class BaseSubscribable {\n private _subscribers = new Set<() => void>();\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscribers.add(callback);\n return () => this._subscribers.delete(callback);\n }\n\n public waitForUpdate() {\n return new Promise<void>((resolve) => {\n const unsubscribe = this.subscribe(() => {\n unsubscribe();\n resolve();\n });\n });\n }\n\n protected _notifySubscribers() {\n notifySubscribers(this._subscribers);\n }\n}\n\nexport class WritableSubscribable<TState> extends BaseSubscribable {\n private _state: TState;\n\n constructor(state: TState) {\n super();\n this._state = state;\n this.subscribe = this.subscribe.bind(this);\n this.getState = this.getState.bind(this);\n // Hydration has to agree with what the server rendered, so the server\n // snapshot stays at the creation-time state rather than following writes.\n this.getServerSnapshot = () => state;\n }\n\n public getState(): TState {\n return this._state;\n }\n\n public getServerSnapshot: () => TState;\n\n public setState(state: TState): void {\n if (Object.is(state, this._state)) return;\n this._state = state;\n this._notifySubscribers();\n }\n}\n\n// lazy connect/disconnect: only opens upstream subscription while it has subscribers\nexport abstract class BaseSubject {\n private _subscriptions = new Set<(payload?: unknown) => void>();\n private _connection: Unsubscribe | undefined;\n\n protected get isConnected() {\n return !!this._connection;\n }\n\n protected abstract _connect(): Unsubscribe;\n\n protected notifySubscribers(payload?: unknown, errorContext?: string) {\n if (errorContext) {\n notifyEventListeners(this._subscriptions, payload, errorContext);\n return;\n }\n\n notifySubscribers(this._subscriptions, payload);\n }\n\n private _updateConnection() {\n if (this._subscriptions.size > 0) {\n if (this._connection) return;\n this._connection = this._connect();\n } else {\n const connection = this._connection;\n this._connection = undefined;\n connection?.();\n }\n }\n\n public subscribe(callback: (payload?: unknown) => void) {\n this._subscriptions.add(callback);\n try {\n this._updateConnection();\n } catch (error) {\n this._subscriptions.delete(callback);\n throw error;\n }\n\n return () => {\n this._subscriptions.delete(callback);\n this._updateConnection();\n };\n }\n}\n\nexport class ShallowMemoizeSubject<TState extends object, TPath>\n extends BaseSubject\n implements SubscribableWithState<TState, TPath>\n{\n public get path() {\n return this.binding.path;\n }\n\n private binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>;\n\n constructor(binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>) {\n super();\n this.binding = binding;\n const state = binding.getState();\n if (state === SKIP_UPDATE)\n throw new Error(\"Entry not available in the store\");\n this._previousState = state;\n }\n\n private _previousState: TState;\n public getState = () => {\n if (!this.isConnected) this._syncState();\n return this._previousState;\n };\n\n private _syncState() {\n const state = this.binding.getState();\n if (state === SKIP_UPDATE) return false;\n if (shallowEqualOrUndefined(state, this._previousState)) return false;\n this._previousState = state;\n return true;\n }\n\n protected _connect() {\n const callback = () => {\n if (this._syncState()) {\n this.notifySubscribers();\n }\n };\n\n const unsubscribe = this.binding.subscribe(callback);\n try {\n this._syncState();\n return unsubscribe;\n } catch (error) {\n throw rollbackSubscription(unsubscribe, error);\n }\n }\n}\n\nexport class LazyMemoizeSubject<TState extends object, TPath>\n extends BaseSubject\n implements SubscribableWithState<TState, TPath>\n{\n public get path() {\n return this.binding.path;\n }\n\n private binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>;\n\n constructor(binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>) {\n super();\n this.binding = binding;\n }\n\n private _previousStateDirty = true;\n private _previousState: TState | undefined;\n public getState = () => {\n if (!this.isConnected || this._previousStateDirty) {\n const newState = this.binding.getState();\n if (\n newState !== SKIP_UPDATE &&\n (this._previousState === undefined ||\n !shallowEqualOrUndefined(newState, this._previousState))\n ) {\n this._previousState = newState;\n }\n this._previousStateDirty = false;\n }\n if (this._previousState === undefined)\n throw new Error(\"Entry not available in the store\");\n return this._previousState;\n };\n\n protected _connect() {\n const callback = () => {\n this._previousStateDirty = true;\n this.notifySubscribers();\n };\n\n const unsubscribe = this.binding.subscribe(callback);\n this._previousStateDirty = true;\n return unsubscribe;\n }\n}\n\nexport class NestedSubscriptionSubject<\n TState extends Subscribable | undefined,\n TPath,\n>\n extends BaseSubject\n implements\n SubscribableWithState<TState, TPath>,\n NestedSubscribable<TState, TPath>\n{\n public get path() {\n return this.binding.path;\n }\n\n private binding: NestedSubscribable<TState, TPath>;\n\n constructor(binding: NestedSubscribable<TState, TPath>) {\n super();\n this.binding = binding;\n }\n\n public getState() {\n return this.binding.getState();\n }\n\n public outerSubscribe(callback: () => void) {\n return this.binding.subscribe(callback);\n }\n\n protected _connect(): Unsubscribe {\n const callback = () => {\n this.notifySubscribers();\n };\n\n let lastState = this.binding.getState();\n let innerUnsubscribe = lastState?.subscribe(callback);\n const onRuntimeUpdate = () => {\n const newState = this.binding.getState();\n if (newState === lastState) return;\n lastState = newState;\n\n const previousInner = innerUnsubscribe;\n innerUnsubscribe = undefined;\n try {\n previousInner?.();\n } finally {\n innerUnsubscribe = newState?.subscribe(callback);\n callback();\n }\n };\n\n let outerUnsubscribe: Unsubscribe;\n try {\n outerUnsubscribe = this.outerSubscribe(onRuntimeUpdate);\n } catch (error) {\n throw rollbackSubscription(() => innerUnsubscribe?.(), error);\n }\n return () =>\n runCleanups([() => outerUnsubscribe(), () => innerUnsubscribe?.()]);\n }\n}\n\nexport class EventSubscriptionSubject<\n TEvent extends string,\n> extends BaseSubject {\n private config: EventSubscribable<TEvent>;\n\n constructor(config: EventSubscribable<TEvent>) {\n super();\n this.config = config;\n }\n\n public getState() {\n return this.config.binding.getState();\n }\n\n public outerSubscribe(callback: () => void) {\n return this.config.binding.subscribe(callback);\n }\n\n protected _connect(): Unsubscribe {\n const errorContext = `Runtime event \"${this.config.event}\"`;\n const callback = (payload?: unknown) => {\n this.notifySubscribers(payload, errorContext);\n };\n\n let lastState = this.config.binding.getState();\n let innerUnsubscribe = lastState?.unstable_on(this.config.event, callback);\n const onRuntimeUpdate = () => {\n const newState = this.config.binding.getState();\n if (newState === lastState) return;\n lastState = newState;\n\n const previousInner = innerUnsubscribe;\n innerUnsubscribe = undefined;\n try {\n previousInner?.();\n } finally {\n innerUnsubscribe = newState?.unstable_on(this.config.event, callback);\n if (this.config.notifyOnRebind) callback({});\n }\n };\n\n let outerUnsubscribe: Unsubscribe;\n try {\n outerUnsubscribe = this.outerSubscribe(onRuntimeUpdate);\n } catch (error) {\n throw rollbackSubscription(() => innerUnsubscribe?.(), error);\n }\n return () =>\n runCleanups([() => outerUnsubscribe(), () => innerUnsubscribe?.()]);\n }\n}\n"],"mappings":"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"}
@@ -1,47 +1,45 @@
1
- import { ThreadUserMessagePart } from "./message.js";
2
- //#region src/types/attachment.d.ts
3
- type PendingAttachmentStatus = {
4
- type: "running";
5
- reason: "uploading";
6
- progress: number;
1
+ import type { ThreadUserMessagePart } from "./message.js";
2
+ export type PendingAttachmentStatus = {
3
+ type: "running";
4
+ reason: "uploading";
5
+ progress: number;
7
6
  } | {
8
- type: "requires-action";
9
- reason: "composer-send";
7
+ type: "requires-action";
8
+ reason: "composer-send";
10
9
  } | {
11
- type: "incomplete";
12
- reason: "error" | "upload-paused";
13
- message?: string;
10
+ type: "incomplete";
11
+ reason: "error" | "upload-paused";
12
+ message?: string;
14
13
  };
15
- type CompleteAttachmentStatus = {
16
- type: "complete";
14
+ export type CompleteAttachmentStatus = {
15
+ type: "complete";
17
16
  };
18
- type AttachmentStatus = PendingAttachmentStatus | CompleteAttachmentStatus;
17
+ export type AttachmentStatus = PendingAttachmentStatus | CompleteAttachmentStatus;
19
18
  type BaseAttachment = {
20
- id: string;
21
- type: "image" | "document" | "file" | (string & {});
22
- name: string;
23
- contentType?: string | undefined;
24
- file?: File;
25
- content?: ThreadUserMessagePart[];
19
+ id: string;
20
+ type: "image" | "document" | "file" | (string & {});
21
+ name: string;
22
+ contentType?: string | undefined;
23
+ file?: File;
24
+ content?: ThreadUserMessagePart[];
26
25
  };
27
- type PendingAttachment = BaseAttachment & {
28
- status: PendingAttachmentStatus;
29
- file: File;
26
+ export type PendingAttachment = BaseAttachment & {
27
+ status: PendingAttachmentStatus;
28
+ file: File;
30
29
  };
31
- type CompleteAttachment = BaseAttachment & {
32
- status: CompleteAttachmentStatus;
33
- content: ThreadUserMessagePart[];
30
+ export type CompleteAttachment = BaseAttachment & {
31
+ status: CompleteAttachmentStatus;
32
+ content: ThreadUserMessagePart[];
34
33
  };
35
- type Attachment = PendingAttachment | CompleteAttachment;
36
- type CreateAttachment = {
37
- id?: string;
38
- type?: "image" | "document" | "file" | (string & {});
39
- name: string;
40
- contentType?: string;
41
- content: ThreadUserMessagePart[];
34
+ export type Attachment = PendingAttachment | CompleteAttachment;
35
+ export type CreateAttachment = {
36
+ id?: string;
37
+ type?: "image" | "document" | "file" | (string & {});
38
+ name: string;
39
+ contentType?: string;
40
+ content: ThreadUserMessagePart[];
42
41
  };
43
- declare const isCreateAttachment: (attachment: File | CreateAttachment) => attachment is CreateAttachment;
44
- declare const isAttachmentComplete: (attachment: Attachment) => attachment is CompleteAttachment;
45
- //#endregion
46
- export { Attachment, AttachmentStatus, CompleteAttachment, CompleteAttachmentStatus, CreateAttachment, PendingAttachment, PendingAttachmentStatus, isAttachmentComplete, isCreateAttachment };
42
+ export declare const isCreateAttachment: (attachment: File | CreateAttachment) => attachment is CreateAttachment;
43
+ export declare const isAttachmentComplete: (attachment: Attachment) => attachment is CompleteAttachment;
44
+ export {};
47
45
  //# sourceMappingURL=attachment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachment.d.ts","names":[],"sources":["../../src/types/attachment.ts"],"mappings":";;KAEY;EAEN;EACA;EACA;;EAGA;EACA;;EAGA;EACA;EACA;;KAGM;EACV;;KAGU,mBACR,0BACA;KAEC;EACH;EACA;EACA;EACA;EACA,OAAO;EACP,UAAU;;KAGA,oBAAoB;EAC9B,QAAQ;EACR,MAAM;;KAGI,qBAAqB;EAC/B,QAAQ;EACR,SAAS;;KAGC,aAAa,oBAAoB;KAEjC;EACV;EACA;EACA;EACA;EACA,SAAS;;cAGE,qBACX,YAAY,OAAO,qBAClB,cAAc;cAGJ,uBACX,YAAY,eACX,cAAc"}
1
+ {"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../src/types/attachment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAkB;AAEvD,MAAM,MAAM,uBAAuB,GAC/B;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;CACzB,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,OAAO,GAAG,eAAe,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEN,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,uBAAuB,GACvB,wBAAwB,CAAC;AAE7B,KAAK,cAAc,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,MAAM,EAAE,uBAAuB,CAAC;IAChC,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG;IAChD,MAAM,EAAE,wBAAwB,CAAC;IACjC,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,YAAY,IAAI,GAAG,gBAAgB,KAClC,UAAU,IAAI,gBAC2C,CAAC;AAE7D,eAAO,MAAM,oBAAoB,GAC/B,YAAY,UAAU,KACrB,UAAU,IAAI,kBAA2D,CAAC"}
@@ -1,4 +1,3 @@
1
- //#region src/types/augmentations.d.ts
2
1
  /**
3
2
  * Module augmentation namespace for assistant-ui type extensions.
4
3
  *
@@ -22,12 +21,12 @@
22
21
  * }
23
22
  * ```
24
23
  */
25
- declare namespace Assistant {
26
- interface Commands {}
27
- interface ExternalState {}
24
+ export declare namespace Assistant {
25
+ interface Commands {
26
+ }
27
+ interface ExternalState {
28
+ }
28
29
  }
29
- type UserCommands = Assistant.Commands[keyof Assistant.Commands];
30
- type UserExternalState = keyof Assistant.ExternalState extends never ? Record<string, unknown> : Assistant.ExternalState[keyof Assistant.ExternalState];
31
- //#endregion
32
- export { Assistant, UserCommands, UserExternalState };
30
+ export type UserCommands = Assistant.Commands[keyof Assistant.Commands];
31
+ export type UserExternalState = keyof Assistant.ExternalState extends never ? Record<string, unknown> : Assistant.ExternalState[keyof Assistant.ExternalState];
33
32
  //# sourceMappingURL=augmentations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"augmentations.d.ts","names":[],"sources":["../../src/types/augmentations.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;kBAuBiB;YACE;YAEA;;KAGP,eAAe,UAAU,eAAe,UAAU;KAClD,0BAA0B,UAAU,8BAC5C,0BACA,UAAU,oBAAoB,UAAU"}
1
+ {"version":3,"file":"augmentations.d.ts","sourceRoot":"","sources":["../../src/types/augmentations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,yBAAiB,SAAS,CAAC;IACzB,UAAiB,QAAQ;KAAG;IAE5B,UAAiB,aAAa;KAAG;CAClC;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,MAAM,SAAS,CAAC,aAAa,SAAS,KAAK,GACvE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,SAAS,CAAC,aAAa,CAAC,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC"}
@@ -1,22 +1,19 @@
1
- import { Unstable_TriggerItem } from "./trigger.js";
2
- //#region src/types/directive.d.ts
1
+ import type { Unstable_TriggerItem } from "./trigger.js";
3
2
  /** Parsed segment from directive text: either literal text or a resolved directive. */
4
- type Unstable_DirectiveSegment = {
5
- readonly kind: "text";
6
- readonly text: string;
3
+ export type Unstable_DirectiveSegment = {
4
+ readonly kind: "text";
5
+ readonly text: string;
7
6
  } | {
8
- readonly kind: "mention";
9
- readonly type: string;
10
- readonly label: string;
11
- readonly id: string;
7
+ readonly kind: "mention";
8
+ readonly type: string;
9
+ readonly label: string;
10
+ readonly id: string;
12
11
  };
13
12
  /** Configurable formatter for directive serialization and parsing. */
14
- type Unstable_DirectiveFormatter = {
15
- /** Serialize a trigger item to directive text. */
16
- serialize(item: Unstable_TriggerItem): string;
17
- /** Parse text into alternating text and directive segments. */
18
- parse(text: string): readonly Unstable_DirectiveSegment[];
13
+ export type Unstable_DirectiveFormatter = {
14
+ /** Serialize a trigger item to directive text. */
15
+ serialize(item: Unstable_TriggerItem): string;
16
+ /** Parse text into alternating text and directive segments. */
17
+ parse(text: string): readonly Unstable_DirectiveSegment[];
19
18
  };
20
- //#endregion
21
- export { Unstable_DirectiveFormatter, Unstable_DirectiveSegment };
22
19
  //# sourceMappingURL=directive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directive.d.ts","names":[],"sources":["../../src/types/directive.ts"],"mappings":";;;KAGY;WACG;WAAuB;;WAEvB;WACA;WACA;WACA;;;KAIH;;EAEV,UAAU,MAAM;;EAEhB,MAAM,wBAAwB"}
1
+ {"version":3,"file":"directive.d.ts","sourceRoot":"","sources":["../../src/types/directive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAkB;AAEtD,uFAAuF;AACvF,MAAM,MAAM,yBAAyB,GACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN,sEAAsE;AACtE,MAAM,MAAM,2BAA2B,GAAG;IACxC,kDAAkD;IAClD,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAAC;IAC9C,+DAA+D;IAC/D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,yBAAyB,EAAE,CAAC;CAC3D,CAAC"}